about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.github/CODEOWNERS23
-rw-r--r--.github/ISSUE_TEMPLATE/bug_report.md8
-rw-r--r--.github/PULL_REQUEST_TEMPLATE.md2
-rw-r--r--.github/labeler.yml2
-rw-r--r--.github/workflows/basic-eval.yml2
-rw-r--r--.github/workflows/editorconfig.yml21
-rw-r--r--.github/workflows/manual-nixos.yml2
-rw-r--r--.github/workflows/manual-nixpkgs.yml2
-rw-r--r--.github/workflows/nixos-manual.yml2
-rw-r--r--.github/workflows/periodic-merge-24h.yml4
-rw-r--r--.gitignore5
-rw-r--r--.version2
-rw-r--r--CONTRIBUTING.md16
-rw-r--r--README.md4
-rw-r--r--doc/builders/images/dockertools.section.md6
-rw-r--r--doc/builders/packages/linux.section.md2
-rw-r--r--doc/contributing/submitting-changes.chapter.md24
-rw-r--r--doc/languages-frameworks/beam.section.md11
-rw-r--r--doc/languages-frameworks/dotnet.section.md32
-rw-r--r--doc/languages-frameworks/emscripten.section.md4
-rw-r--r--doc/languages-frameworks/gnome.section.md2
-rw-r--r--doc/languages-frameworks/idris.section.md5
-rw-r--r--doc/languages-frameworks/lua.section.md2
-rw-r--r--doc/languages-frameworks/octave.section.md12
-rw-r--r--doc/languages-frameworks/perl.section.md12
-rw-r--r--doc/languages-frameworks/python.section.md33
-rw-r--r--doc/languages-frameworks/ruby.section.md13
-rw-r--r--doc/languages-frameworks/rust.section.md2
-rw-r--r--doc/languages-frameworks/vim.section.md4
-rw-r--r--doc/stdenv/stdenv.chapter.md12
-rw-r--r--lib/default.nix2
-rw-r--r--lib/meta.nix27
-rw-r--r--lib/modules.nix70
-rw-r--r--lib/systems/doubles.nix4
-rw-r--r--lib/systems/examples.nix1
-rw-r--r--lib/systems/supported.nix5
-rw-r--r--lib/tests/misc.nix2
-rwxr-xr-xlib/tests/modules.sh229
-rw-r--r--lib/tests/modules/declare-attrsOf.nix9
-rw-r--r--lib/tests/modules/declare-variants.nix9
-rw-r--r--lib/tests/modules/define-variant.nix22
-rw-r--r--lib/tests/modules/freeform-nested.nix9
-rwxr-xr-xlib/tests/sources.sh14
-rw-r--r--lib/trivial.nix2
-rw-r--r--maintainers/maintainer-list.nix290
-rwxr-xr-xmaintainers/scripts/check-maintainer-github-handles.sh18
-rw-r--r--maintainers/scripts/haskell/test-configurations.nix136
-rw-r--r--maintainers/scripts/luarocks-packages.csv2
-rw-r--r--maintainers/scripts/pluginupdate.py4
-rwxr-xr-xmaintainers/scripts/vanity.sh38
-rw-r--r--maintainers/team-list.nix31
-rw-r--r--nixos/doc/manual/administration/declarative-containers.section.md2
-rw-r--r--nixos/doc/manual/configuration/renaming-interfaces.section.md2
-rw-r--r--nixos/doc/manual/default.nix2
-rw-r--r--nixos/doc/manual/from_md/administration/declarative-containers.section.xml2
-rw-r--r--nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml2
-rw-r--r--nixos/doc/manual/from_md/installation/upgrading.chapter.xml16
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2111.section.xml108
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2205.section.xml285
-rw-r--r--nixos/doc/manual/installation/upgrading.chapter.md16
-rw-r--r--nixos/doc/manual/man-nixos-install.xml13
-rw-r--r--nixos/doc/manual/man-nixos-rebuild.xml8
-rw-r--r--nixos/doc/manual/release-notes/rl-2111.section.md32
-rw-r--r--nixos/doc/manual/release-notes/rl-2205.section.md109
-rw-r--r--nixos/lib/eval-config.nix55
-rw-r--r--nixos/lib/make-disk-image.nix2
-rw-r--r--nixos/lib/make-options-doc/default.nix130
-rw-r--r--nixos/lib/make-options-doc/generateAsciiDoc.py37
-rw-r--r--nixos/lib/make-options-doc/generateCommonMark.py27
-rw-r--r--nixos/lib/make-options-doc/options-to-docbook.xsl4
-rw-r--r--nixos/lib/make-options-doc/optionsJSONtoXML.nix6
-rw-r--r--nixos/lib/make-options-doc/sortXML.py1
-rw-r--r--nixos/lib/make-squashfs.nix9
-rw-r--r--nixos/lib/qemu-common.nix2
-rw-r--r--nixos/lib/systemd-lib.nix (renamed from nixos/modules/system/boot/systemd-lib.nix)0
-rw-r--r--nixos/lib/systemd-unit-options.nix (renamed from nixos/modules/system/boot/systemd-unit-options.nix)4
-rw-r--r--nixos/lib/test-driver/default.nix32
-rw-r--r--nixos/lib/test-driver/setup.py13
-rwxr-xr-xnixos/lib/test-driver/test_driver/__init__.py100
-rw-r--r--nixos/lib/test-driver/test_driver/driver.py161
-rw-r--r--nixos/lib/test-driver/test_driver/logger.py101
-rw-r--r--[-rwxr-xr-x]nixos/lib/test-driver/test_driver/machine.py (renamed from nixos/lib/test-driver/test-driver.py)517
-rw-r--r--nixos/lib/test-driver/test_driver/vlan.py58
-rw-r--r--nixos/lib/testing-python.nix73
-rw-r--r--nixos/lib/utils.nix7
-rw-r--r--nixos/modules/config/fonts/fontdir.nix1
-rw-r--r--nixos/modules/config/gtk/gtk-icon-cache.nix1
-rw-r--r--nixos/modules/config/i18n.nix6
-rw-r--r--nixos/modules/config/networking.nix8
-rw-r--r--nixos/modules/config/system-path.nix22
-rw-r--r--nixos/modules/config/users-groups.nix1
-rw-r--r--nixos/modules/hardware/cpu/intel-sgx.nix47
-rw-r--r--nixos/modules/hardware/gpgsmartcards.nix37
-rw-r--r--nixos/modules/hardware/keyboard/zsa.nix3
-rw-r--r--nixos/modules/hardware/pcmcia.nix1
-rw-r--r--nixos/modules/hardware/system-76.nix8
-rw-r--r--nixos/modules/hardware/video/hidpi.nix1
-rw-r--r--nixos/modules/hardware/video/nvidia.nix2
-rw-r--r--nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh7
-rw-r--r--nixos/modules/installer/tools/nixos-enter.sh1
-rw-r--r--nixos/modules/installer/tools/nixos-install.sh3
-rw-r--r--nixos/modules/installer/tools/nixos-version.sh1
-rw-r--r--nixos/modules/misc/documentation.nix89
-rw-r--r--nixos/modules/misc/extra-arguments.nix4
-rw-r--r--nixos/modules/misc/ids.nix4
-rw-r--r--nixos/modules/misc/locate.nix24
-rw-r--r--nixos/modules/misc/man-db.nix73
-rw-r--r--nixos/modules/misc/mandoc.nix61
-rw-r--r--nixos/modules/misc/meta.nix2
-rw-r--r--nixos/modules/misc/version.nix4
-rw-r--r--nixos/modules/module-list.nix15
-rw-r--r--nixos/modules/programs/bcc.nix6
-rw-r--r--nixos/modules/programs/captive-browser.nix26
-rw-r--r--nixos/modules/programs/gnupg.nix1
-rw-r--r--nixos/modules/programs/qt5ct.nix2
-rw-r--r--nixos/modules/programs/ssh.nix11
-rw-r--r--nixos/modules/programs/zsh/zsh-autosuggestions.nix8
-rw-r--r--nixos/modules/programs/zsh/zsh.nix4
-rw-r--r--nixos/modules/security/acme.nix319
-rw-r--r--nixos/modules/security/acme.xml165
-rw-r--r--nixos/modules/security/dhparams.nix6
-rw-r--r--nixos/modules/security/pam.nix65
-rw-r--r--nixos/modules/security/systemd-confinement.nix6
-rw-r--r--nixos/modules/security/wrappers/default.nix2
-rw-r--r--nixos/modules/services/audio/icecast.nix1
-rw-r--r--nixos/modules/services/audio/mpdscribble.nix13
-rw-r--r--nixos/modules/services/audio/navidrome.nix2
-rw-r--r--nixos/modules/services/audio/snapserver.nix4
-rw-r--r--nixos/modules/services/audio/ympd.nix1
-rw-r--r--nixos/modules/services/backup/bacula.nix3
-rw-r--r--nixos/modules/services/backup/duplicati.nix35
-rw-r--r--nixos/modules/services/backup/restic.nix4
-rw-r--r--nixos/modules/services/backup/tarsnap.nix35
-rw-r--r--nixos/modules/services/cluster/hadoop/default.nix14
-rw-r--r--nixos/modules/services/cluster/kubernetes/addon-manager.nix2
-rw-r--r--nixos/modules/services/cluster/kubernetes/addons/dashboard.nix332
-rw-r--r--nixos/modules/services/cluster/kubernetes/addons/dns.nix6
-rw-r--r--nixos/modules/services/cluster/kubernetes/apiserver.nix7
-rw-r--r--nixos/modules/services/cluster/kubernetes/controller-manager.nix6
-rw-r--r--nixos/modules/services/cluster/kubernetes/default.nix5
-rw-r--r--nixos/modules/services/cluster/kubernetes/kubelet.nix8
-rw-r--r--nixos/modules/services/cluster/kubernetes/pki.nix1
-rw-r--r--nixos/modules/services/cluster/kubernetes/proxy.nix5
-rw-r--r--nixos/modules/services/cluster/kubernetes/scheduler.nix4
-rw-r--r--nixos/modules/services/computing/slurm/slurm.nix10
-rw-r--r--nixos/modules/services/continuous-integration/buildbot/master.nix4
-rw-r--r--nixos/modules/services/continuous-integration/buildbot/worker.nix4
-rw-r--r--nixos/modules/services/continuous-integration/github-runner.nix61
-rw-r--r--nixos/modules/services/continuous-integration/gocd-agent/default.nix12
-rw-r--r--nixos/modules/services/continuous-integration/gocd-server/default.nix17
-rw-r--r--nixos/modules/services/continuous-integration/hydra/default.nix1
-rw-r--r--nixos/modules/services/databases/couchdb.nix16
-rw-r--r--nixos/modules/services/databases/hbase.nix21
-rw-r--r--nixos/modules/services/databases/influxdb2.nix19
-rw-r--r--nixos/modules/services/databases/mysql.nix380
-rw-r--r--nixos/modules/services/databases/neo4j.nix8
-rw-r--r--nixos/modules/services/databases/postgresql.nix8
-rw-r--r--nixos/modules/services/databases/postgresql.xml86
-rw-r--r--nixos/modules/services/databases/redis.nix488
-rw-r--r--nixos/modules/services/desktops/gvfs.nix2
-rw-r--r--nixos/modules/services/development/hoogle.nix1
-rw-r--r--nixos/modules/services/games/factorio.nix4
-rw-r--r--nixos/modules/services/games/quake3-server.nix1
-rw-r--r--nixos/modules/services/games/terraria.nix5
-rw-r--r--nixos/modules/services/hardware/bluetooth.nix4
-rw-r--r--nixos/modules/services/hardware/rasdaemon.nix1
-rw-r--r--nixos/modules/services/hardware/spacenavd.nix1
-rw-r--r--nixos/modules/services/hardware/tcsd.nix6
-rw-r--r--nixos/modules/services/hardware/thinkfan.nix4
-rw-r--r--nixos/modules/services/logging/filebeat.nix253
-rw-r--r--nixos/modules/services/logging/journalbeat.nix19
-rw-r--r--nixos/modules/services/logging/journalwatch.nix1
-rw-r--r--nixos/modules/services/logging/klogd.nix1
-rw-r--r--nixos/modules/services/logging/logrotate.nix4
-rw-r--r--nixos/modules/services/mail/maddy.nix247
-rw-r--r--nixos/modules/services/mail/opendkim.nix1
-rw-r--r--nixos/modules/services/mail/rspamd.nix5
-rw-r--r--nixos/modules/services/misc/airsonic.nix5
-rw-r--r--nixos/modules/services/misc/dysnomia.nix6
-rw-r--r--nixos/modules/services/misc/etcd.nix10
-rw-r--r--nixos/modules/services/misc/exhibitor.nix5
-rw-r--r--nixos/modules/services/misc/gitea.nix15
-rw-r--r--nixos/modules/services/misc/gitlab.nix7
-rw-r--r--nixos/modules/services/misc/gitweb.nix1
-rw-r--r--nixos/modules/services/misc/gogs.nix5
-rw-r--r--nixos/modules/services/misc/gollum.nix1
-rw-r--r--nixos/modules/services/misc/headphones.nix4
-rw-r--r--nixos/modules/services/misc/home-assistant.nix9
-rw-r--r--nixos/modules/services/misc/matrix-appservice-discord.nix7
-rw-r--r--nixos/modules/services/misc/matrix-synapse.nix42
-rw-r--r--nixos/modules/services/misc/mautrix-telegram.nix5
-rw-r--r--nixos/modules/services/misc/mediatomb.nix10
-rw-r--r--nixos/modules/services/misc/moonraker.nix5
-rw-r--r--nixos/modules/services/misc/mwlib.nix12
-rw-r--r--nixos/modules/services/misc/mx-puppet-discord.nix9
-rw-r--r--nixos/modules/services/misc/nitter.nix2
-rw-r--r--nixos/modules/services/misc/nix-daemon.nix56
-rw-r--r--nixos/modules/services/misc/rippled.nix6
-rw-r--r--nixos/modules/services/misc/sickbeard.nix4
-rw-r--r--nixos/modules/services/misc/sourcehut/builds.nix6
-rw-r--r--nixos/modules/services/misc/sourcehut/default.nix1452
-rw-r--r--nixos/modules/services/misc/sourcehut/dispatch.nix4
-rw-r--r--nixos/modules/services/misc/sourcehut/git.nix4
-rw-r--r--nixos/modules/services/misc/sourcehut/hg.nix4
-rw-r--r--nixos/modules/services/misc/sourcehut/hub.nix4
-rw-r--r--nixos/modules/services/misc/sourcehut/lists.nix4
-rw-r--r--nixos/modules/services/misc/sourcehut/man.nix4
-rw-r--r--nixos/modules/services/misc/sourcehut/meta.nix4
-rw-r--r--nixos/modules/services/misc/sourcehut/paste.nix4
-rw-r--r--nixos/modules/services/misc/sourcehut/service.nix431
-rw-r--r--nixos/modules/services/misc/sourcehut/sourcehut.xml24
-rw-r--r--nixos/modules/services/misc/sourcehut/todo.nix4
-rw-r--r--nixos/modules/services/misc/subsonic.nix9
-rw-r--r--nixos/modules/services/misc/xmrig.nix1
-rw-r--r--nixos/modules/services/misc/zigbee2mqtt.nix11
-rw-r--r--nixos/modules/services/misc/zoneminder.nix2
-rw-r--r--nixos/modules/services/monitoring/collectd.nix26
-rw-r--r--nixos/modules/services/monitoring/grafana.nix1
-rw-r--r--nixos/modules/services/monitoring/graphite.nix13
-rw-r--r--nixos/modules/services/monitoring/nagios.nix1
-rw-r--r--nixos/modules/services/monitoring/parsedmarc.nix7
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters.nix1
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/fastly.nix6
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/nginx.nix10
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/postfix.nix3
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/smartctl.nix64
-rw-r--r--nixos/modules/services/monitoring/smartd.nix7
-rw-r--r--nixos/modules/services/monitoring/thanos.nix3
-rw-r--r--nixos/modules/services/monitoring/uptime.nix10
-rw-r--r--nixos/modules/services/monitoring/zabbix-proxy.nix8
-rw-r--r--nixos/modules/services/monitoring/zabbix-server.nix8
-rw-r--r--nixos/modules/services/network-filesystems/drbd.nix12
-rw-r--r--nixos/modules/services/network-filesystems/glusterfs.nix2
-rw-r--r--nixos/modules/services/network-filesystems/ipfs.nix5
-rw-r--r--nixos/modules/services/network-filesystems/openafs/server.nix2
-rw-r--r--nixos/modules/services/network-filesystems/webdav-server-rs.nix144
-rw-r--r--nixos/modules/services/network-filesystems/webdav.nix6
-rw-r--r--nixos/modules/services/networking/adguardhome.nix2
-rw-r--r--nixos/modules/services/networking/amuled.nix6
-rw-r--r--nixos/modules/services/networking/bind.nix1
-rw-r--r--nixos/modules/services/networking/charybdis.nix9
-rw-r--r--nixos/modules/services/networking/consul.nix4
-rw-r--r--nixos/modules/services/networking/coturn.nix1
-rw-r--r--nixos/modules/services/networking/ddclient.nix4
-rw-r--r--nixos/modules/services/networking/dhcpcd.nix9
-rw-r--r--nixos/modules/services/networking/dnscrypt-wrapper.nix1
-rw-r--r--nixos/modules/services/networking/ergo.nix6
-rw-r--r--nixos/modules/services/networking/eternal-terminal.nix2
-rw-r--r--nixos/modules/services/networking/firewall.nix1
-rw-r--r--nixos/modules/services/networking/flannel.nix3
-rw-r--r--nixos/modules/services/networking/freeradius.nix2
-rw-r--r--nixos/modules/services/networking/jibri/default.nix2
-rw-r--r--nixos/modules/services/networking/jitsi-videobridge.nix2
-rw-r--r--nixos/modules/services/networking/kea.nix6
-rw-r--r--nixos/modules/services/networking/knot.nix49
-rw-r--r--nixos/modules/services/networking/lxd-image-server.nix3
-rw-r--r--nixos/modules/services/networking/monero.nix2
-rw-r--r--nixos/modules/services/networking/ncdns.nix1
-rw-r--r--nixos/modules/services/networking/nix-serve.nix14
-rw-r--r--nixos/modules/services/networking/nsd.nix1
-rw-r--r--nixos/modules/services/networking/ntopng.nix7
-rw-r--r--nixos/modules/services/networking/ntp/chrony.nix1
-rw-r--r--nixos/modules/services/networking/ntp/ntpd.nix1
-rw-r--r--nixos/modules/services/networking/ntp/openntpd.nix1
-rw-r--r--nixos/modules/services/networking/pleroma.nix11
-rw-r--r--nixos/modules/services/networking/prosody.xml2
-rw-r--r--nixos/modules/services/networking/quassel.nix6
-rw-r--r--nixos/modules/services/networking/quorum.nix4
-rw-r--r--nixos/modules/services/networking/radicale.nix1
-rw-r--r--nixos/modules/services/networking/resilio.nix1
-rw-r--r--nixos/modules/services/networking/seafile.nix1
-rw-r--r--nixos/modules/services/networking/shairport-sync.nix31
-rw-r--r--nixos/modules/services/networking/skydns.nix1
-rw-r--r--nixos/modules/services/networking/smokeping.nix6
-rw-r--r--nixos/modules/services/networking/soju.nix1
-rw-r--r--nixos/modules/services/networking/stubby.nix220
-rw-r--r--nixos/modules/services/networking/syncthing.nix24
-rw-r--r--nixos/modules/services/networking/unifi.nix11
-rw-r--r--nixos/modules/services/networking/wasabibackend.nix6
-rw-r--r--nixos/modules/services/networking/wireguard.nix4
-rw-r--r--nixos/modules/services/networking/wpa_supplicant.nix4
-rw-r--r--nixos/modules/services/networking/xrdp.nix9
-rw-r--r--nixos/modules/services/search/kibana.nix6
-rw-r--r--nixos/modules/services/security/aesmd.nix227
-rw-r--r--nixos/modules/services/security/oauth2_proxy_nginx.nix1
-rw-r--r--nixos/modules/services/security/privacyidea.nix7
-rw-r--r--nixos/modules/services/security/step-ca.nix4
-rw-r--r--nixos/modules/services/security/tor.nix8
-rw-r--r--nixos/modules/services/security/torsocks.nix1
-rw-r--r--nixos/modules/services/security/vault.nix8
-rw-r--r--nixos/modules/services/torrent/peerflix.nix4
-rw-r--r--nixos/modules/services/torrent/rtorrent.nix4
-rw-r--r--nixos/modules/services/torrent/transmission.nix48
-rw-r--r--nixos/modules/services/video/epgstation/default.nix10
-rw-r--r--nixos/modules/services/video/mirakurun.nix2
-rw-r--r--nixos/modules/services/video/rtsp-simple-server.nix80
-rw-r--r--nixos/modules/services/video/unifi-video.nix4
-rw-r--r--nixos/modules/services/wayland/cage.nix2
-rw-r--r--nixos/modules/services/web-apps/discourse.nix19
-rw-r--r--nixos/modules/services/web-apps/discourse.xml4
-rw-r--r--nixos/modules/services/web-apps/dokuwiki.nix4
-rw-r--r--nixos/modules/services/web-apps/galene.nix6
-rw-r--r--nixos/modules/services/web-apps/hedgedoc.nix2
-rw-r--r--nixos/modules/services/web-apps/ihatemoney/default.nix1
-rw-r--r--nixos/modules/services/web-apps/invidious.nix3
-rw-r--r--nixos/modules/services/web-apps/jitsi-meet.xml4
-rw-r--r--nixos/modules/services/web-apps/keycloak.nix5
-rw-r--r--nixos/modules/services/web-apps/matomo.nix14
-rw-r--r--nixos/modules/services/web-apps/moodle.nix2
-rw-r--r--nixos/modules/services/web-apps/nextcloud.nix13
-rw-r--r--nixos/modules/services/web-apps/nextcloud.xml2
-rw-r--r--nixos/modules/services/web-apps/openwebrx.nix1
-rw-r--r--nixos/modules/services/web-apps/peertube.nix20
-rw-r--r--nixos/modules/services/web-apps/pgpkeyserver-lite.nix5
-rw-r--r--nixos/modules/services/web-apps/powerdns-admin.nix149
-rw-r--r--nixos/modules/services/web-apps/tt-rss.nix8
-rw-r--r--nixos/modules/services/web-apps/youtrack.nix1
-rw-r--r--nixos/modules/services/web-apps/zabbix.nix8
-rw-r--r--nixos/modules/services/web-servers/apache-httpd/default.nix13
-rw-r--r--nixos/modules/services/web-servers/apache-httpd/vhost-options.nix7
-rw-r--r--nixos/modules/services/web-servers/caddy/default.nix346
-rw-r--r--nixos/modules/services/web-servers/caddy/vhost-options.nix71
-rw-r--r--nixos/modules/services/web-servers/lighttpd/collectd.nix6
-rw-r--r--nixos/modules/services/web-servers/nginx/default.nix34
-rw-r--r--nixos/modules/services/web-servers/nginx/location-options.nix2
-rw-r--r--nixos/modules/services/web-servers/nginx/vhost-options.nix20
-rw-r--r--nixos/modules/services/web-servers/uwsgi.nix2
-rw-r--r--nixos/modules/services/web-servers/varnish/default.nix1
-rw-r--r--nixos/modules/services/x11/desktop-managers/cinnamon.nix7
-rw-r--r--nixos/modules/services/x11/desktop-managers/gnome.xml15
-rw-r--r--nixos/modules/services/x11/desktop-managers/pantheon.nix11
-rw-r--r--nixos/modules/services/x11/desktop-managers/pantheon.xml8
-rw-r--r--nixos/modules/services/x11/desktop-managers/plasma5.nix233
-rw-r--r--nixos/modules/services/x11/desktop-managers/xfce.nix2
-rw-r--r--nixos/modules/services/x11/display-managers/default.nix14
-rw-r--r--nixos/modules/services/x11/display-managers/gdm.nix6
-rw-r--r--nixos/modules/services/x11/display-managers/lightdm.nix2
-rw-r--r--nixos/modules/services/x11/hardware/synaptics.nix7
-rw-r--r--nixos/modules/services/x11/picom.nix14
-rw-r--r--nixos/modules/services/x11/window-managers/xmonad.nix5
-rw-r--r--nixos/modules/system/activation/activation-script.nix3
-rw-r--r--nixos/modules/system/activation/switch-to-configuration.pl216
-rw-r--r--nixos/modules/system/activation/top-level.nix33
-rw-r--r--nixos/modules/system/boot/loader/grub/grub.nix1
-rw-r--r--nixos/modules/system/boot/loader/grub/install-grub.pl176
-rw-r--r--nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py20
-rw-r--r--nixos/modules/system/boot/networkd.nix52
-rw-r--r--nixos/modules/system/boot/plymouth.nix8
-rw-r--r--nixos/modules/system/boot/resolved.nix1
-rw-r--r--nixos/modules/system/boot/stage-1-init.sh28
-rw-r--r--nixos/modules/system/boot/stage-1.nix4
-rwxr-xr-x[-rw-r--r--]nixos/modules/system/boot/stage-2-init.sh1
-rw-r--r--nixos/modules/system/boot/systemd-nspawn.nix6
-rw-r--r--nixos/modules/system/boot/systemd.nix5
-rw-r--r--nixos/modules/system/boot/timesyncd.nix2
-rw-r--r--nixos/modules/tasks/filesystems/zfs.nix5
-rw-r--r--nixos/modules/tasks/network-interfaces.nix4
-rw-r--r--nixos/modules/tasks/snapraid.nix4
-rw-r--r--nixos/modules/virtualisation/amazon-ec2-amis.nix444
-rw-r--r--nixos/modules/virtualisation/amazon-options.nix3
-rw-r--r--nixos/modules/virtualisation/cri-o.nix4
-rw-r--r--nixos/modules/virtualisation/docker-rootless.nix98
-rw-r--r--nixos/modules/virtualisation/docker.nix37
-rw-r--r--nixos/modules/virtualisation/ec2-amis.nix380
-rw-r--r--nixos/modules/virtualisation/kubevirt.nix30
-rw-r--r--nixos/modules/virtualisation/nixos-containers.nix4
-rw-r--r--nixos/modules/virtualisation/oci-containers.nix2
-rw-r--r--nixos/modules/virtualisation/podman/default.nix (renamed from nixos/modules/virtualisation/podman.nix)4
-rw-r--r--nixos/modules/virtualisation/podman/dnsname.nix (renamed from nixos/modules/virtualisation/podman-dnsname.nix)0
-rw-r--r--nixos/modules/virtualisation/podman/network-socket-ghostunnel.nix (renamed from nixos/modules/virtualisation/podman-network-socket-ghostunnel.nix)0
-rw-r--r--nixos/modules/virtualisation/podman/network-socket.nix (renamed from nixos/modules/virtualisation/podman-network-socket.nix)4
-rw-r--r--nixos/modules/virtualisation/qemu-vm.nix5
-rw-r--r--nixos/modules/virtualisation/vmware-guest.nix5
-rw-r--r--nixos/modules/virtualisation/waydroid.nix9
-rw-r--r--nixos/tests/acme.nix576
-rw-r--r--nixos/tests/aesmd.nix62
-rw-r--r--nixos/tests/all-tests.nix31
-rw-r--r--nixos/tests/bpf.nix25
-rw-r--r--nixos/tests/brscan5.nix1
-rw-r--r--nixos/tests/collectd.nix33
-rw-r--r--nixos/tests/common/acme/client/default.nix6
-rw-r--r--nixos/tests/common/acme/server/default.nix5
-rw-r--r--nixos/tests/couchdb.nix3
-rw-r--r--nixos/tests/custom-ca.nix9
-rw-r--r--nixos/tests/docker-rootless.nix41
-rw-r--r--nixos/tests/docker-tools.nix31
-rw-r--r--nixos/tests/drbd.nix87
-rw-r--r--nixos/tests/elk.nix90
-rw-r--r--nixos/tests/hibernate.nix1
-rw-r--r--nixos/tests/home-assistant.nix7
-rw-r--r--nixos/tests/hydra/default.nix2
-rw-r--r--nixos/tests/initrd-secrets.nix10
-rw-r--r--nixos/tests/installer.nix30
-rw-r--r--nixos/tests/knot.nix6
-rw-r--r--nixos/tests/kubernetes/base.nix1
-rw-r--r--nixos/tests/kubernetes/default.nix2
-rw-r--r--nixos/tests/kubernetes/dns.nix6
-rw-r--r--nixos/tests/kubernetes/e2e.nix2
-rw-r--r--nixos/tests/kubernetes/rbac.nix14
-rw-r--r--nixos/tests/maddy.nix58
-rw-r--r--nixos/tests/man.nix100
-rw-r--r--nixos/tests/nextcloud/default.nix10
-rw-r--r--nixos/tests/nix-serve-ssh.nix (renamed from nixos/tests/nix-ssh-serve.nix)2
-rw-r--r--nixos/tests/os-prober.nix6
-rw-r--r--nixos/tests/pam/pam-file-contents.nix25
-rw-r--r--nixos/tests/pam/pam-oath-login.nix (renamed from nixos/tests/pam-oath-login.nix)2
-rw-r--r--nixos/tests/pam/pam-u2f.nix (renamed from nixos/tests/pam-u2f.nix)2
-rw-r--r--nixos/tests/pam/test_chfn.py27
-rw-r--r--nixos/tests/parsedmarc/default.nix27
-rw-r--r--nixos/tests/podman/default.nix (renamed from nixos/tests/podman.nix)18
-rw-r--r--nixos/tests/podman/dnsname.nix (renamed from nixos/tests/podman-dnsname.nix)4
-rw-r--r--nixos/tests/podman/tls-ghostunnel.nix (renamed from nixos/tests/podman-tls-ghostunnel.nix)4
-rw-r--r--nixos/tests/powerdns-admin.nix117
-rw-r--r--nixos/tests/prometheus-exporters.nix37
-rw-r--r--nixos/tests/pulseaudio.nix71
-rw-r--r--nixos/tests/redis.nix36
-rw-r--r--nixos/tests/sabnzbd.nix22
-rw-r--r--nixos/tests/samba-wsdd.nix2
-rw-r--r--nixos/tests/snapcast.nix8
-rw-r--r--nixos/tests/sourcehut.nix188
-rw-r--r--nixos/tests/step-ca.nix76
-rw-r--r--nixos/tests/switch-test.nix339
-rw-r--r--nixos/tests/systemd-boot.nix4
-rw-r--r--nixos/tests/systemd-networkd-dhcpserver-static-leases.nix81
-rw-r--r--nixos/tests/systemd.nix12
-rw-r--r--nixos/tests/txredisapi.nix10
-rw-r--r--nixos/tests/unifi.nix35
-rw-r--r--nixos/tests/vault-postgresql.nix2
-rw-r--r--nixos/tests/vengi-tools.nix29
-rw-r--r--pkgs/applications/audio/CHOWTapeModel/default.nix72
-rw-r--r--pkgs/applications/audio/ChowKick/default.nix4
-rw-r--r--pkgs/applications/audio/ardour/default.nix2
-rw-r--r--pkgs/applications/audio/ashuffle/default.nix4
-rw-r--r--pkgs/applications/audio/audacious/default.nix10
-rw-r--r--pkgs/applications/audio/audacity/0001-Use-a-different-approach-to-estimate-the-disk-space-.patch355
-rw-r--r--pkgs/applications/audio/audacity/default.nix79
-rw-r--r--pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix4
-rw-r--r--pkgs/applications/audio/callaudiod/default.nix4
-rw-r--r--pkgs/applications/audio/fluidsynth/default.nix4
-rw-r--r--pkgs/applications/audio/fomp/default.nix4
-rw-r--r--pkgs/applications/audio/ft2-clone/default.nix4
-rw-r--r--pkgs/applications/audio/gmu/default.nix20
-rw-r--r--pkgs/applications/audio/gnome-podcasts/default.nix6
-rw-r--r--pkgs/applications/audio/helio-workstation/default.nix10
-rw-r--r--pkgs/applications/audio/helvum/default.nix64
-rw-r--r--pkgs/applications/audio/hybridreverb2/default.nix4
-rw-r--r--pkgs/applications/audio/hydrogen/default.nix4
-rw-r--r--pkgs/applications/audio/jamulus/default.nix4
-rw-r--r--pkgs/applications/audio/jmusicbot/default.nix4
-rw-r--r--pkgs/applications/audio/kid3/default.nix4
-rw-r--r--pkgs/applications/audio/libopenmpt/default.nix12
-rw-r--r--pkgs/applications/audio/linuxband/default.nix37
-rw-r--r--pkgs/applications/audio/lmms/default.nix2
-rw-r--r--pkgs/applications/audio/losslessaudiochecker/default.nix29
-rw-r--r--pkgs/applications/audio/lsp-plugins/default.nix4
-rw-r--r--pkgs/applications/audio/mi2ly/default.nix41
-rw-r--r--pkgs/applications/audio/mi2ly/default.upstream3
-rw-r--r--pkgs/applications/audio/milkytracker/default.nix4
-rw-r--r--pkgs/applications/audio/mod-arpeggiator-lv2/default.nix26
-rw-r--r--pkgs/applications/audio/molot-lite/default.nix9
-rw-r--r--pkgs/applications/audio/mopidy/default.nix2
-rw-r--r--pkgs/applications/audio/mopidy/iris.nix4
-rw-r--r--pkgs/applications/audio/mopidy/jellyfin.nix25
-rw-r--r--pkgs/applications/audio/mpc/default.nix4
-rw-r--r--pkgs/applications/audio/musescore/default.nix8
-rw-r--r--pkgs/applications/audio/musikcube/default.nix21
-rw-r--r--pkgs/applications/audio/ncmpc/default.nix4
-rw-r--r--pkgs/applications/audio/ncspot/default.nix6
-rw-r--r--pkgs/applications/audio/netease-music-tui/default.nix6
-rw-r--r--pkgs/applications/audio/noisetorch/default.nix2
-rw-r--r--pkgs/applications/audio/non/default.nix14
-rw-r--r--pkgs/applications/audio/ocenaudio/default.nix4
-rw-r--r--pkgs/applications/audio/padthv1/default.nix4
-rw-r--r--pkgs/applications/audio/pamix/default.nix16
-rw-r--r--pkgs/applications/audio/patchmatrix/default.nix45
-rw-r--r--pkgs/applications/audio/praat/default.nix4
-rw-r--r--pkgs/applications/audio/ptcollab/default.nix17
-rw-r--r--pkgs/applications/audio/pulseaudio-ctl/default.nix4
-rw-r--r--pkgs/applications/audio/pulseaudio-dlna/0001-setup.py-remove-dbus-python-from-list.patch25
-rw-r--r--pkgs/applications/audio/pulseaudio-dlna/default.nix87
-rw-r--r--pkgs/applications/audio/qpwgraph/default.nix34
-rw-r--r--pkgs/applications/audio/reaper/default.nix8
-rw-r--r--pkgs/applications/audio/rofi-pulse-select/default.nix40
-rw-r--r--pkgs/applications/audio/schismtracker/default.nix6
-rw-r--r--pkgs/applications/audio/setbfree/default.nix10
-rw-r--r--pkgs/applications/audio/sfizz/default.nix24
-rwxr-xr-xpkgs/applications/audio/soundwireserver/default.nix39
-rw-r--r--pkgs/applications/audio/spot/default.nix6
-rw-r--r--pkgs/applications/audio/spotifyd/default.nix6
-rw-r--r--pkgs/applications/audio/surge-XT/default.nix82
-rw-r--r--pkgs/applications/audio/tenacity/default.nix4
-rw-r--r--pkgs/applications/audio/transcribe/default.nix63
-rw-r--r--pkgs/applications/audio/vmpk/default.nix4
-rw-r--r--pkgs/applications/audio/zrythm/default.nix7
-rw-r--r--pkgs/applications/backup/deja-dup/default.nix4
-rw-r--r--pkgs/applications/backup/vorta/default.nix5
-rw-r--r--pkgs/applications/blockchains/alfis/default.nix6
-rw-r--r--pkgs/applications/blockchains/bisq-desktop/default.nix4
-rw-r--r--pkgs/applications/blockchains/btcpayserver/default.nix4
-rw-r--r--pkgs/applications/blockchains/btcpayserver/deps.nix853
-rw-r--r--pkgs/applications/blockchains/dero/default.nix25
-rw-r--r--pkgs/applications/blockchains/dogecoin/default.nix4
-rw-r--r--pkgs/applications/blockchains/electrs/default.nix6
-rw-r--r--pkgs/applications/blockchains/elements/default.nix4
-rw-r--r--pkgs/applications/blockchains/ergo/default.nix4
-rw-r--r--pkgs/applications/blockchains/go-ethereum/default.nix6
-rw-r--r--pkgs/applications/blockchains/ledger-live-desktop/default.nix4
-rw-r--r--pkgs/applications/blockchains/lightning-loop/default.nix6
-rw-r--r--pkgs/applications/blockchains/lightning-pool/default.nix6
-rw-r--r--pkgs/applications/blockchains/lnd/default.nix6
-rw-r--r--pkgs/applications/blockchains/lndmanage/default.nix4
-rw-r--r--pkgs/applications/blockchains/monero-cli/default.nix (renamed from pkgs/applications/blockchains/monero/default.nix)6
-rw-r--r--pkgs/applications/blockchains/monero-cli/use-system-libraries.patch (renamed from pkgs/applications/blockchains/monero/use-system-libraries.patch)35
-rw-r--r--pkgs/applications/blockchains/monero-gui/default.nix12
-rw-r--r--pkgs/applications/blockchains/nbxplorer/default.nix4
-rw-r--r--pkgs/applications/blockchains/nbxplorer/deps.nix435
-rwxr-xr-xpkgs/applications/blockchains/nbxplorer/util/create-deps.sh4
-rwxr-xr-xpkgs/applications/blockchains/nbxplorer/util/update-common.sh4
-rw-r--r--pkgs/applications/blockchains/polkadot/default.nix6
-rw-r--r--pkgs/applications/blockchains/trezor-suite/default.nix6
-rw-r--r--pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix4
-rw-r--r--pkgs/applications/editors/android-studio/common.nix2
-rw-r--r--pkgs/applications/editors/android-studio/default.nix12
-rw-r--r--pkgs/applications/editors/bluefish/default.nix2
-rw-r--r--pkgs/applications/editors/bviplus/default.nix14
-rw-r--r--pkgs/applications/editors/code-browser/default.nix51
-rw-r--r--pkgs/applications/editors/cpeditor/default.nix40
-rw-r--r--pkgs/applications/editors/cudatext/default.nix6
-rw-r--r--pkgs/applications/editors/cudatext/deps.json16
-rwxr-xr-xpkgs/applications/editors/cudatext/update.sh23
-rw-r--r--pkgs/applications/editors/deadpixi-sam/default.nix14
-rw-r--r--pkgs/applications/editors/eclipse/build-eclipse.nix5
-rw-r--r--pkgs/applications/editors/eclipse/default.nix30
-rw-r--r--pkgs/applications/editors/eclipse/plugins.nix4
-rw-r--r--pkgs/applications/editors/emacs/27.nix1
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix8
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix220
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix29
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix118
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/org-generated.nix12
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/org-packages.nix33
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/prolog/default.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json3683
-rwxr-xr-xpkgs/applications/editors/emacs/elisp-packages/update-from-overlay4
-rwxr-xr-xpkgs/applications/editors/emacs/elisp-packages/update-org4
-rw-r--r--pkgs/applications/editors/emacs/generic.nix18
-rw-r--r--pkgs/applications/editors/emacs/macport.nix9
-rw-r--r--pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch14
-rw-r--r--pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch11
-rw-r--r--pkgs/applications/editors/featherpad/default.nix4
-rw-r--r--pkgs/applications/editors/ghostwriter/default.nix4
-rw-r--r--pkgs/applications/editors/gnome-builder/default.nix4
-rw-r--r--pkgs/applications/editors/gobby/default.nix2
-rw-r--r--pkgs/applications/editors/jetbrains/common.nix3
-rw-r--r--pkgs/applications/editors/jetbrains/default.nix57
-rw-r--r--pkgs/applications/editors/jucipp/default.nix4
-rw-r--r--pkgs/applications/editors/kakoune/default.nix1
-rw-r--r--pkgs/applications/editors/kdevelop5/kdev-php.nix10
-rw-r--r--pkgs/applications/editors/kdevelop5/kdev-python.nix10
-rw-r--r--pkgs/applications/editors/lifeograph/default.nix40
-rw-r--r--pkgs/applications/editors/lite-xl/0001-replace-unpack-with-table-unpack.patch91
-rw-r--r--pkgs/applications/editors/lite-xl/default.nix21
-rw-r--r--pkgs/applications/editors/marker/default.nix4
-rw-r--r--pkgs/applications/editors/nano/default.nix4
-rw-r--r--pkgs/applications/editors/ne/default.nix4
-rw-r--r--pkgs/applications/editors/neovim/default.nix4
-rw-r--r--pkgs/applications/editors/neovim/utils.nix2
-rw-r--r--pkgs/applications/editors/neovim/wrapper.nix5
-rw-r--r--pkgs/applications/editors/netbeans/default.nix4
-rw-r--r--pkgs/applications/editors/nvpy/default.nix18
-rw-r--r--pkgs/applications/editors/okteta/default.nix4
-rw-r--r--pkgs/applications/editors/poke/default.nix14
-rw-r--r--pkgs/applications/editors/setzer/default.nix5
-rw-r--r--pkgs/applications/editors/sigil/default.nix4
-rw-r--r--pkgs/applications/editors/spacevim/default.nix4
-rw-r--r--pkgs/applications/editors/standardnotes/default.nix17
-rw-r--r--pkgs/applications/editors/sublime/4/common.nix2
-rw-r--r--pkgs/applications/editors/sublime/4/packages.nix12
-rw-r--r--pkgs/applications/editors/texstudio/default.nix4
-rw-r--r--pkgs/applications/editors/vim/common.nix4
-rw-r--r--pkgs/applications/editors/vscode/generic.nix2
-rw-r--r--pkgs/applications/editors/vscode/vscode.nix12
-rw-r--r--pkgs/applications/editors/vscode/vscodium.nix10
-rw-r--r--pkgs/applications/editors/your-editor/default.nix11
-rw-r--r--pkgs/applications/finance/odoo/default.nix5
-rw-r--r--pkgs/applications/gis/gmt/dcw.nix4
-rw-r--r--pkgs/applications/gis/qgis/unwrapped.nix6
-rw-r--r--pkgs/applications/gis/qmapshack/default.nix4
-rw-r--r--pkgs/applications/gis/whitebox-tools/default.nix12
-rw-r--r--pkgs/applications/gis/whitebox-tools/update-cargo-lock.patch578
-rw-r--r--pkgs/applications/graphics/ImageMagick/7.0.nix12
-rw-r--r--pkgs/applications/graphics/ascii-image-converter/default.nix23
-rw-r--r--pkgs/applications/graphics/avocode/default.nix4
-rw-r--r--pkgs/applications/graphics/digikam/default.nix6
-rw-r--r--pkgs/applications/graphics/drawio/default.nix4
-rw-r--r--pkgs/applications/graphics/f3d/default.nix6
-rw-r--r--pkgs/applications/graphics/fbida/default.nix4
-rw-r--r--pkgs/applications/graphics/geeqie/default.nix12
-rw-r--r--pkgs/applications/graphics/gimp/default.nix8
-rw-r--r--pkgs/applications/graphics/gimp/plugins/default.nix14
-rw-r--r--pkgs/applications/graphics/grafx2/default.nix2
-rw-r--r--pkgs/applications/graphics/gscan2pdf/default.nix4
-rw-r--r--pkgs/applications/graphics/hdr-plus/default.nix22
-rw-r--r--pkgs/applications/graphics/hydrus/default.nix4
-rw-r--r--pkgs/applications/graphics/icon-library/default.nix31
-rw-r--r--pkgs/applications/graphics/image-roll/default.nix12
-rw-r--r--pkgs/applications/graphics/imv/default.nix11
-rw-r--r--pkgs/applications/graphics/krita/beta.nix7
-rw-r--r--pkgs/applications/graphics/krita/default.nix4
-rw-r--r--pkgs/applications/graphics/lightburn/default.nix4
-rw-r--r--pkgs/applications/graphics/mcomix3/default.nix3
-rw-r--r--pkgs/applications/graphics/megapixels/default.nix8
-rw-r--r--pkgs/applications/graphics/pbrt/default.nix2
-rw-r--r--pkgs/applications/graphics/pdfcpu/default.nix10
-rw-r--r--pkgs/applications/graphics/pinta/default.nix8
-rw-r--r--pkgs/applications/graphics/pixeluvo/default.nix55
-rw-r--r--pkgs/applications/graphics/sane/backends/brscan5/default.nix8
-rw-r--r--pkgs/applications/graphics/scantailor/default.nix10
-rw-r--r--pkgs/applications/graphics/symbolic-preview/default.nix31
-rw-r--r--pkgs/applications/graphics/tev/default.nix8
-rw-r--r--pkgs/applications/graphics/vengi-tools/default.nix119
-rw-r--r--pkgs/applications/graphics/vengi-tools/test-voxconvert-roundtrip.nix15
-rw-r--r--pkgs/applications/graphics/viewnior/default.nix4
-rw-r--r--pkgs/applications/graphics/weylus/default.nix17
-rw-r--r--pkgs/applications/kde/akonadi/default.nix7
-rw-r--r--pkgs/applications/kde/bovo.nix2
-rw-r--r--pkgs/applications/kde/fetch.sh2
-rw-r--r--pkgs/applications/kde/k3b.nix2
-rw-r--r--pkgs/applications/kde/kalzium.nix2
-rw-r--r--pkgs/applications/kde/kipi-plugins.nix2
-rw-r--r--pkgs/applications/kde/kitinerary.nix12
-rw-r--r--pkgs/applications/kde/klettres.nix2
-rw-r--r--pkgs/applications/kde/krfb.nix15
-rw-r--r--pkgs/applications/kde/kturtle.nix2
-rw-r--r--pkgs/applications/kde/picmi.nix13
-rw-r--r--pkgs/applications/kde/srcs.nix1840
-rw-r--r--pkgs/applications/misc/1password/default.nix2
-rw-r--r--pkgs/applications/misc/ArchiSteamFarm/default.nix2
-rw-r--r--pkgs/applications/misc/ArchiSteamFarm/deps.nix564
-rw-r--r--pkgs/applications/misc/OSCAR/default.nix4
-rw-r--r--pkgs/applications/misc/anytype/default.nix4
-rw-r--r--pkgs/applications/misc/appeditor/default.nix4
-rw-r--r--pkgs/applications/misc/apvlv/default.nix4
-rw-r--r--pkgs/applications/misc/archivy/default.nix4
-rw-r--r--pkgs/applications/misc/audio/soxr/default.nix23
-rw-r--r--pkgs/applications/misc/auto-multiple-choice/default.nix4
-rw-r--r--pkgs/applications/misc/azuredatastudio/default.nix4
-rw-r--r--pkgs/applications/misc/batsignal/default.nix4
-rw-r--r--pkgs/applications/misc/bemenu/default.nix13
-rw-r--r--pkgs/applications/misc/binance/default.nix4
-rw-r--r--pkgs/applications/misc/bottles/default.nix26
-rw-r--r--pkgs/applications/misc/calibre/default.nix6
-rw-r--r--pkgs/applications/misc/cfm/default.nix26
-rw-r--r--pkgs/applications/misc/charm/default.nix6
-rw-r--r--pkgs/applications/misc/cherrytree/default.nix4
-rw-r--r--pkgs/applications/misc/clifm/default.nix15
-rw-r--r--pkgs/applications/misc/cobalt/default.nix6
-rw-r--r--pkgs/applications/misc/cointop/default.nix12
-rw-r--r--pkgs/applications/misc/corectrl/default.nix6
-rw-r--r--pkgs/applications/misc/crow-translate/default.nix8
-rw-r--r--pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch8
-rw-r--r--pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch16
-rw-r--r--pkgs/applications/misc/cura/default.nix4
-rw-r--r--pkgs/applications/misc/cura/stable.nix21
-rw-r--r--pkgs/applications/misc/curaengine/default.nix4
-rw-r--r--pkgs/applications/misc/curaengine/stable.nix18
-rw-r--r--pkgs/applications/misc/dbeaver/default.nix14
-rw-r--r--pkgs/applications/misc/dozenal/default.nix8
-rw-r--r--pkgs/applications/misc/dunst/default.nix4
-rw-r--r--pkgs/applications/misc/dupeguru/default.nix2
-rw-r--r--pkgs/applications/misc/electrum/default.nix9
-rw-r--r--pkgs/applications/misc/electrum/ltc.nix175
-rw-r--r--pkgs/applications/misc/fetchmail/default.nix4
-rw-r--r--pkgs/applications/misc/free42/default.nix4
-rw-r--r--pkgs/applications/misc/fspy/default.nix27
-rw-r--r--pkgs/applications/misc/gallery-dl/default.nix8
-rw-r--r--pkgs/applications/misc/gnome-passwordsafe/default.nix8
-rw-r--r--pkgs/applications/misc/golden-cheetah/default.nix4
-rw-r--r--pkgs/applications/misc/gpsprune/default.nix49
-rw-r--r--pkgs/applications/misc/gpxsee/default.nix12
-rw-r--r--pkgs/applications/misc/gramps/default.nix4
-rw-r--r--pkgs/applications/misc/gremlin-console/default.nix4
-rw-r--r--pkgs/applications/misc/grip/default.nix4
-rw-r--r--pkgs/applications/misc/gsimplecal/default.nix10
-rw-r--r--pkgs/applications/misc/heimer/default.nix4
-rw-r--r--pkgs/applications/misc/hubstaff/default.nix6
-rw-r--r--pkgs/applications/misc/hugo/default.nix6
-rw-r--r--pkgs/applications/misc/index-fm/default.nix2
-rw-r--r--pkgs/applications/misc/inherd-quake/default.nix40
-rw-r--r--pkgs/applications/misc/jgmenu/default.nix4
-rw-r--r--pkgs/applications/misc/joplin-desktop/default.nix6
-rw-r--r--pkgs/applications/misc/jotta-cli/default.nix4
-rw-r--r--pkgs/applications/misc/jp2a/default.nix4
-rw-r--r--pkgs/applications/misc/jrnl/default.nix5
-rw-r--r--pkgs/applications/misc/keepass-plugins/charactercopy/default.nix41
-rw-r--r--pkgs/applications/misc/keepass-plugins/keetraytotp/default.nix40
-rw-r--r--pkgs/applications/misc/keepass-plugins/qrcodeview/default.nix39
-rw-r--r--pkgs/applications/misc/keepass/default.nix12
-rw-r--r--pkgs/applications/misc/koreader/default.nix4
-rw-r--r--pkgs/applications/misc/kratos/default.nix6
-rw-r--r--pkgs/applications/misc/latte-dock/default.nix4
-rw-r--r--pkgs/applications/misc/logseq/default.nix8
-rw-r--r--pkgs/applications/misc/loxodo/default.nix16
-rw-r--r--pkgs/applications/misc/lutris/fhsenv.nix7
-rw-r--r--pkgs/applications/misc/maliit-framework/default.nix68
-rw-r--r--pkgs/applications/misc/maliit-keyboard/default.nix82
-rw-r--r--pkgs/applications/misc/marktext/default.nix1
-rw-r--r--pkgs/applications/misc/masterpdfeditor/default.nix4
-rw-r--r--pkgs/applications/misc/megasync/default.nix17
-rw-r--r--pkgs/applications/misc/megasync/ffmpeg_44.patch14
-rw-r--r--pkgs/applications/misc/metadata-cleaner/default.nix8
-rw-r--r--pkgs/applications/misc/mkgmap/default.nix6
-rw-r--r--pkgs/applications/misc/mkgmap/splitter/default.nix6
-rw-r--r--pkgs/applications/misc/mob/default.nix4
-rw-r--r--pkgs/applications/misc/mobilecoin-wallet/default.nix39
-rw-r--r--pkgs/applications/misc/moolticute/default.nix4
-rw-r--r--pkgs/applications/misc/moz-phab/default.nix57
-rw-r--r--pkgs/applications/misc/mysql-workbench/default.nix4
-rw-r--r--pkgs/applications/misc/navi/default.nix10
-rw-r--r--pkgs/applications/misc/neo/default.nix25
-rw-r--r--pkgs/applications/misc/nnn/default.nix4
-rw-r--r--pkgs/applications/misc/noice/default.nix6
-rw-r--r--pkgs/applications/misc/nwg-panel/default.nix4
-rw-r--r--pkgs/applications/misc/obsidian/default.nix4
-rw-r--r--pkgs/applications/misc/octoprint/default.nix52
-rw-r--r--pkgs/applications/misc/openrgb/default.nix8
-rw-r--r--pkgs/applications/misc/openring/default.nix8
-rw-r--r--pkgs/applications/misc/orca/default.nix4
-rw-r--r--pkgs/applications/misc/otpclient/default.nix4
-rw-r--r--pkgs/applications/misc/p2pool/default.nix43
-rw-r--r--pkgs/applications/misc/pdfarranger/default.nix4
-rw-r--r--pkgs/applications/misc/pdfsam-basic/default.nix4
-rw-r--r--pkgs/applications/misc/pdfstudio/default.nix91
-rw-r--r--pkgs/applications/misc/phoc/default.nix17
-rw-r--r--pkgs/applications/misc/plover/default.nix18
-rw-r--r--pkgs/applications/misc/privacyidea/default.nix19
-rw-r--r--pkgs/applications/misc/prusa-slicer/default.nix21
-rw-r--r--pkgs/applications/misc/prusa-slicer/super-slicer.nix7
-rw-r--r--pkgs/applications/misc/pwsafe/default.nix14
-rw-r--r--pkgs/applications/misc/qtbitcointrader/default.nix17
-rw-r--r--pkgs/applications/misc/redshift/575.patch2
-rw-r--r--pkgs/applications/misc/redshift/default.nix2
-rw-r--r--pkgs/applications/misc/remarkable/remarkable-mouse/default.nix4
-rw-r--r--pkgs/applications/misc/remarkable/restream/default.nix27
-rw-r--r--pkgs/applications/misc/remarkable/rmapi/default.nix4
-rw-r--r--pkgs/applications/misc/remarkable/rmview/default.nix6
-rw-r--r--pkgs/applications/misc/rofi/default.nix9
-rw-r--r--pkgs/applications/misc/skate/default.nix26
-rw-r--r--pkgs/applications/misc/snapmaker-luban/default.nix4
-rw-r--r--pkgs/applications/misc/solaar/default.nix4
-rw-r--r--pkgs/applications/misc/spicetify-cli/default.nix4
-rw-r--r--pkgs/applications/misc/spotify-tray/default.nix25
-rw-r--r--pkgs/applications/misc/stog/default.nix40
-rw-r--r--pkgs/applications/misc/stog/install.patch18
-rw-r--r--pkgs/applications/misc/stog/uri.patch13
-rw-r--r--pkgs/applications/misc/stork/default.nix6
-rw-r--r--pkgs/applications/misc/stretchly/default.nix8
-rw-r--r--pkgs/applications/misc/terminal-typeracer/default.nix8
-rw-r--r--pkgs/applications/misc/thedesk/default.nix50
-rw-r--r--pkgs/applications/misc/ticker/default.nix6
-rw-r--r--pkgs/applications/misc/timew-sync-server/default.nix6
-rw-r--r--pkgs/applications/misc/tint2/default.nix4
-rw-r--r--pkgs/applications/misc/tiramisu/default.nix14
-rw-r--r--pkgs/applications/misc/tmatrix/default.nix4
-rw-r--r--pkgs/applications/misc/todoist/default.nix10
-rw-r--r--pkgs/applications/misc/toggldesktop/default.nix6
-rw-r--r--pkgs/applications/misc/tootle/default.nix24
-rw-r--r--pkgs/applications/misc/translate-shell/default.nix3
-rw-r--r--pkgs/applications/misc/ttyper/default.nix8
-rw-r--r--pkgs/applications/misc/tut/default.nix6
-rw-r--r--pkgs/applications/misc/upwork/default.nix6
-rw-r--r--pkgs/applications/misc/viking/default.nix4
-rw-r--r--pkgs/applications/misc/visidata/default.nix4
-rw-r--r--pkgs/applications/misc/weather/default.nix4
-rw-r--r--pkgs/applications/misc/whalebird/default.nix4
-rw-r--r--pkgs/applications/misc/wike/default.nix4
-rw-r--r--pkgs/applications/misc/worker/default.nix4
-rw-r--r--pkgs/applications/misc/wtf/default.nix9
-rw-r--r--pkgs/applications/misc/xastir/default.nix12
-rw-r--r--pkgs/applications/misc/xdg-launch/default.nix4
-rw-r--r--pkgs/applications/misc/xkblayout-state/default.nix10
-rw-r--r--pkgs/applications/misc/xmrig/default.nix4
-rw-r--r--pkgs/applications/misc/xmrig/moneroocean.nix4
-rw-r--r--pkgs/applications/misc/xmrig/proxy.nix4
-rw-r--r--pkgs/applications/misc/xrandr-invert-colors/default.nix13
-rw-r--r--pkgs/applications/misc/yambar/default.nix34
-rw-r--r--pkgs/applications/misc/zathura/wrapper.nix1
-rw-r--r--pkgs/applications/misc/zola/default.nix14
-rw-r--r--pkgs/applications/networking/appgate-sdp/default.nix5
-rw-r--r--pkgs/applications/networking/browsers/amfora/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/chromium/browser.nix2
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix4
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.json40
-rw-r--r--pkgs/applications/networking/browsers/elinks/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/eolie/default.nix2
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix786
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix786
-rw-r--r--pkgs/applications/networking/browsers/firefox-bin/release_sources.nix786
-rw-r--r--pkgs/applications/networking/browsers/firefox/common.nix19
-rw-r--r--pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx95.patch27
-rw-r--r--pkgs/applications/networking/browsers/firefox/packages.nix8
-rw-r--r--pkgs/applications/networking/browsers/google-chrome/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/lagrange/default.nix12
-rw-r--r--pkgs/applications/networking/browsers/links2/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/opera/default.nix11
-rw-r--r--pkgs/applications/networking/browsers/palemoon/default.nix140
-rw-r--r--pkgs/applications/networking/browsers/palemoon/mozconfig46
-rw-r--r--pkgs/applications/networking/browsers/telescope/default.nix9
-rw-r--r--pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix21
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/default.nix8
-rw-r--r--pkgs/applications/networking/cloudflared/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/argo/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/argocd/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/arkade/default.nix64
-rw-r--r--pkgs/applications/networking/cluster/assign-lb-ip/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/cilium/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/clusterctl/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/driftctl/default.nix56
-rw-r--r--pkgs/applications/networking/cluster/fluxcd/default.nix23
-rw-r--r--pkgs/applications/networking/cluster/fluxcd/patches/disable-tests-ssh_key.patch12
-rw-r--r--pkgs/applications/networking/cluster/fluxctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/fn-cli/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/helm/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/helmfile/default.nix4
-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/k9s/default.nix12
-rw-r--r--pkgs/applications/networking/cluster/kbst/default.nix40
-rw-r--r--pkgs/applications/networking/cluster/kn/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kops/default.nix18
-rw-r--r--pkgs/applications/networking/cluster/kpt/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/krane/Gemfile.lock8
-rw-r--r--pkgs/applications/networking/cluster/krane/gemset.nix30
-rw-r--r--pkgs/applications/networking/cluster/kube3d/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubecolor/default.nix23
-rw-r--r--pkgs/applications/networking/cluster/kubectl-tree/default.nix23
-rw-r--r--pkgs/applications/networking/cluster/kubedb-cli/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubelogin-oidc/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubeone/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubergrunt/default.nix33
-rw-r--r--pkgs/applications/networking/cluster/kubernetes/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubeseal/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubeval/default.nix14
-rw-r--r--pkgs/applications/networking/cluster/kuma/default.nix65
-rw-r--r--pkgs/applications/networking/cluster/kumactl/default.nix34
-rw-r--r--pkgs/applications/networking/cluster/minikube/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/nerdctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/nixops/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix28
-rw-r--r--pkgs/applications/networking/cluster/nixops/poetry.lock194
-rw-r--r--pkgs/applications/networking/cluster/nixops/pyproject.toml6
-rw-r--r--pkgs/applications/networking/cluster/nomad-autoscaler/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/nomad/1.0.nix4
-rw-r--r--pkgs/applications/networking/cluster/nomad/1.1.nix6
-rw-r--r--pkgs/applications/networking/cluster/octant/default.nix10
-rw-r--r--pkgs/applications/networking/cluster/pgo-client/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/rancher/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/sonobuoy/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/spark/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix2
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix9
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/providers.json314
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix12
-rw-r--r--pkgs/applications/networking/cluster/terragrunt/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/tfswitch/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/tilt/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/velero/default.nix9
-rw-r--r--pkgs/applications/networking/dnscontrol/default.nix6
-rw-r--r--pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix54
-rw-r--r--pkgs/applications/networking/feedreaders/newsboat/default.nix9
-rw-r--r--pkgs/applications/networking/flexget/default.nix4
-rw-r--r--pkgs/applications/networking/gmailctl/default.nix9
-rw-r--r--pkgs/applications/networking/gopher/sacc/default.nix6
-rw-r--r--pkgs/applications/networking/hydroxide/default.nix6
-rw-r--r--pkgs/applications/networking/ids/suricata/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/SkypeExport/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/alfaview/default.nix78
-rw-r--r--pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/bluejeans/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix33
-rw-r--r--pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json16
-rwxr-xr-xpkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh6
-rw-r--r--pkgs/applications/networking/instant-messengers/dino/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop-package.json6
-rw-r--r--pkgs/applications/networking/instant-messengers/element/pin.json8
-rw-r--r--pkgs/applications/networking/instant-messengers/ferdi/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/jackline/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common1
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches1
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/kdeltachat/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/nheko/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/psi-plus/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/qtox/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/schildichat/pin.json8
-rw-r--r--pkgs/applications/networking/instant-messengers/scudcloud/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix10
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signald/default.nix41
-rw-r--r--pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/slack/default.nix12
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/torchat/default.nix2
-rw-r--r--pkgs/applications/networking/instant-messengers/twinkle/default.nix22
-rw-r--r--pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/zulip-term/default.nix1
-rw-r--r--pkgs/applications/networking/ipfs/default.nix4
-rw-r--r--pkgs/applications/networking/irc/catgirl/default.nix4
-rw-r--r--pkgs/applications/networking/irc/convos/default.nix11
-rw-r--r--pkgs/applications/networking/irc/quassel/default.nix2
-rw-r--r--pkgs/applications/networking/irc/senpai/default.nix8
-rw-r--r--pkgs/applications/networking/irc/srain/default.nix4
-rw-r--r--pkgs/applications/networking/jmeter/default.nix4
-rw-r--r--pkgs/applications/networking/libcoap/default.nix20
-rw-r--r--pkgs/applications/networking/maestral-qt/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/aerc/default.nix8
-rw-r--r--pkgs/applications/networking/mailreaders/claws-mail/default.nix41
-rw-r--r--pkgs/applications/networking/mailreaders/evolution/evolution/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/mblaze/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/mutt/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix151
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix522
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch13
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/packages.nix6
-rw-r--r--pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/mullvad-vpn/default.nix5
-rw-r--r--pkgs/applications/networking/ncgopher/default.nix6
-rw-r--r--pkgs/applications/networking/nextcloud-client/0001-When-creating-the-autostart-entry-do-not-use-an-abso.patch28
-rw-r--r--pkgs/applications/networking/nextcloud-client/default.nix4
-rw-r--r--pkgs/applications/networking/owncloud-client/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix4
-rw-r--r--pkgs/applications/networking/p2p/rqbit/default.nix6
-rw-r--r--pkgs/applications/networking/p2p/stig/default.nix5
-rw-r--r--pkgs/applications/networking/p2p/tixati/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/torrential/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/tribler/default.nix66
-rw-r--r--pkgs/applications/networking/powerdns-admin/default.nix23
-rw-r--r--pkgs/applications/networking/powerdns-admin/package.json2
-rw-r--r--pkgs/applications/networking/powerdns-admin/yarndeps.nix16
-rw-r--r--pkgs/applications/networking/protonmail-bridge/default.nix6
-rw-r--r--pkgs/applications/networking/remote/citrix-workspace/generic.nix9
-rw-r--r--pkgs/applications/networking/remote/citrix-workspace/sources.nix11
-rw-r--r--pkgs/applications/networking/remote/nice-dcv-client/default.nix29
-rw-r--r--pkgs/applications/networking/remote/remmina/default.nix4
-rw-r--r--pkgs/applications/networking/remote/teamviewer/default.nix4
-rw-r--r--pkgs/applications/networking/remote/waypipe/default.nix6
-rw-r--r--pkgs/applications/networking/remote/wayvnc/default.nix4
-rw-r--r--pkgs/applications/networking/shellhub-agent/default.nix6
-rw-r--r--pkgs/applications/networking/sniffers/wireshark/default.nix10
-rw-r--r--pkgs/applications/networking/sniffers/wireshark/wireshark-lookup-dumpcap-in-path.patch17
-rw-r--r--pkgs/applications/networking/soulseek/nicotine-plus/default.nix17
-rw-r--r--pkgs/applications/networking/sync/unison/default.nix4
-rw-r--r--pkgs/applications/networking/syncplay/default.nix2
-rw-r--r--pkgs/applications/networking/syncthing/default.nix4
-rw-r--r--pkgs/applications/networking/tmpmail/default.nix6
-rw-r--r--pkgs/applications/networking/tsung/default.nix29
-rw-r--r--pkgs/applications/office/beamerpresenter/default.nix4
-rw-r--r--pkgs/applications/office/calligra/default.nix2
-rw-r--r--pkgs/applications/office/clockify/default.nix47
-rw-r--r--pkgs/applications/office/gnucash/0001-changes.patch43
-rw-r--r--pkgs/applications/office/gnucash/default.nix36
-rw-r--r--pkgs/applications/office/grisbi/default.nix4
-rw-r--r--pkgs/applications/office/hledger-check-fancyassertions/default.nix17
-rw-r--r--pkgs/applications/office/kalendar/default.nix94
-rw-r--r--pkgs/applications/office/khronos/default.nix4
-rw-r--r--pkgs/applications/office/libreoffice/default.nix18
-rw-r--r--pkgs/applications/office/libreoffice/src-fresh/download.nix42
-rw-r--r--pkgs/applications/office/libreoffice/src-fresh/primary.nix10
-rw-r--r--pkgs/applications/office/libreoffice/src-still/download.nix8
-rw-r--r--pkgs/applications/office/libreoffice/src-still/primary.nix10
-rw-r--r--pkgs/applications/office/notes-up/default.nix46
-rw-r--r--pkgs/applications/office/notion-app-enhanced/default.nix32
-rw-r--r--pkgs/applications/office/paperwork/openpaperwork-core.nix3
-rw-r--r--pkgs/applications/office/paperwork/openpaperwork-gtk.nix1
-rw-r--r--pkgs/applications/office/paperwork/paperwork-backend.nix8
-rw-r--r--pkgs/applications/office/paperwork/src.nix8
-rw-r--r--pkgs/applications/office/portfolio/default.nix4
-rw-r--r--pkgs/applications/office/pympress/default.nix14
-rw-r--r--pkgs/applications/office/qownnotes/default.nix4
-rw-r--r--pkgs/applications/office/scribus/unstable.nix19
-rw-r--r--pkgs/applications/office/super-productivity/default.nix9
-rw-r--r--pkgs/applications/office/teapot/001-fix-warning.patch11
-rw-r--r--pkgs/applications/office/teapot/002-remove-help.patch49
-rw-r--r--pkgs/applications/office/teapot/default.nix73
-rw-r--r--pkgs/applications/office/todoman/default.nix4
-rw-r--r--pkgs/applications/office/trilium/default.nix19
-rw-r--r--pkgs/applications/office/zanshin/default.nix30
-rw-r--r--pkgs/applications/office/zk/default.nix4
-rw-r--r--pkgs/applications/plasma-mobile/default.nix1
-rw-r--r--pkgs/applications/plasma-mobile/plasma-settings.nix42
-rw-r--r--pkgs/applications/printing/pappl/default.nix4
-rw-r--r--pkgs/applications/radio/chirp/default.nix4
-rw-r--r--pkgs/applications/radio/fldigi/default.nix9
-rw-r--r--pkgs/applications/radio/flex-ncat/default.nix6
-rw-r--r--pkgs/applications/radio/gnuradio/3.8.nix5
-rw-r--r--pkgs/applications/radio/gnuradio/default.nix12
-rw-r--r--pkgs/applications/radio/gqrx/default.nix25
-rw-r--r--pkgs/applications/radio/guglielmo/default.nix55
-rw-r--r--pkgs/applications/radio/qradiolink/default.nix6
-rw-r--r--pkgs/applications/radio/rtl_433/default.nix4
-rw-r--r--pkgs/applications/radio/tlf/default.nix14
-rw-r--r--pkgs/applications/radio/uhd/default.nix32
-rw-r--r--pkgs/applications/radio/urh/default.nix3
-rw-r--r--pkgs/applications/radio/wsjtx/default.nix4
-rw-r--r--pkgs/applications/science/astronomy/astrolog/default.nix44
-rw-r--r--pkgs/applications/science/astronomy/celestia/default.nix1
-rw-r--r--pkgs/applications/science/astronomy/kstars/default.nix4
-rw-r--r--pkgs/applications/science/astronomy/stellarium/default.nix4
-rw-r--r--pkgs/applications/science/biology/delly/default.nix4
-rw-r--r--pkgs/applications/science/biology/diamond/default.nix10
-rw-r--r--pkgs/applications/science/biology/fastp/default.nix4
-rw-r--r--pkgs/applications/science/biology/genmap/default.nix40
-rw-r--r--pkgs/applications/science/biology/genmap/gtest.patch30
-rw-r--r--pkgs/applications/science/biology/kssd/default.nix10
-rw-r--r--pkgs/applications/science/biology/messer-slim/default.nix10
-rw-r--r--pkgs/applications/science/biology/minimap2/default.nix4
-rw-r--r--pkgs/applications/science/biology/mrtrix/default.nix11
-rw-r--r--pkgs/applications/science/biology/niftyseg/default.nix11
-rw-r--r--pkgs/applications/science/biology/picard-tools/default.nix4
-rw-r--r--pkgs/applications/science/biology/samtools/default.nix11
-rw-r--r--pkgs/applications/science/biology/seaview/default.nix4
-rw-r--r--pkgs/applications/science/biology/subread/default.nix40
-rw-r--r--pkgs/applications/science/chemistry/cp2k/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.nix4
-rw-r--r--pkgs/applications/science/chemistry/octopus/default.nix4
-rw-r--r--pkgs/applications/science/electronics/flatcam/default.nix1
-rw-r--r--pkgs/applications/science/electronics/horizon-eda/default.nix4
-rw-r--r--pkgs/applications/science/electronics/kicad/base.nix59
-rw-r--r--pkgs/applications/science/electronics/kicad/default.nix99
-rw-r--r--pkgs/applications/science/electronics/kicad/i18n.nix18
-rwxr-xr-xpkgs/applications/science/electronics/kicad/update.sh62
-rw-r--r--pkgs/applications/science/electronics/kicad/versions.nix52
-rw-r--r--pkgs/applications/science/electronics/picoscope/default.nix3
-rw-r--r--pkgs/applications/science/electronics/picoscope/sources.json72
-rw-r--r--pkgs/applications/science/geometry/gama/default.nix4
-rw-r--r--pkgs/applications/science/logic/abc/default.nix10
-rw-r--r--pkgs/applications/science/logic/coq/default.nix7
-rw-r--r--pkgs/applications/science/logic/cryptoverif/default.nix4
-rw-r--r--pkgs/applications/science/logic/ekrhyper/default.nix40
-rw-r--r--pkgs/applications/science/logic/ekrhyper/default.upstream3
-rw-r--r--pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch6
-rw-r--r--pkgs/applications/science/logic/elan/default.nix4
-rw-r--r--pkgs/applications/science/logic/fast-downward/default.nix2
-rw-r--r--pkgs/applications/science/logic/logisim-evolution/default.nix4
-rw-r--r--pkgs/applications/science/logic/potassco/clingcon.nix24
-rw-r--r--pkgs/applications/science/logic/potassco/clingo.nix12
-rw-r--r--pkgs/applications/science/logic/proverif/default.nix4
-rw-r--r--pkgs/applications/science/logic/symbiyosys/default.nix10
-rw-r--r--pkgs/applications/science/logic/tlaplus/default.nix36
-rw-r--r--pkgs/applications/science/logic/why3/with-provers.nix4
-rwxr-xr-x[-rw-r--r--]pkgs/applications/science/machine-learning/streamlit/default.nix77
-rw-r--r--pkgs/applications/science/math/calc/default.nix4
-rw-r--r--pkgs/applications/science/math/geogebra/default.nix4
-rw-r--r--pkgs/applications/science/math/geogebra/geogebra6.nix14
-rw-r--r--pkgs/applications/science/math/gmsh/default.nix4
-rw-r--r--pkgs/applications/science/math/gretl/default.nix4
-rw-r--r--pkgs/applications/science/math/mathematica/default.nix11
-rw-r--r--pkgs/applications/science/math/mathematica/l10ns.nix53
-rw-r--r--pkgs/applications/science/math/maxima/default.nix55
-rw-r--r--pkgs/applications/science/math/mxnet/default.nix33
-rw-r--r--pkgs/applications/science/math/polymake/default.nix4
-rw-r--r--pkgs/applications/science/math/programmer-calculator/default.nix4
-rw-r--r--pkgs/applications/science/math/qalculate-gtk/default.nix4
-rw-r--r--pkgs/applications/science/math/sage/default.nix16
-rw-r--r--pkgs/applications/science/math/sage/env-locations.nix9
-rw-r--r--pkgs/applications/science/math/sage/patches/fonttools-deprecation-warnings.patch39
-rw-r--r--pkgs/applications/science/math/sage/sage-env.nix7
-rw-r--r--pkgs/applications/science/math/sage/sage-src.nix32
-rw-r--r--pkgs/applications/science/math/sage/sage-with-env.nix4
-rw-r--r--pkgs/applications/science/math/sage/sagedoc.nix4
-rw-r--r--pkgs/applications/science/math/sage/sagelib.nix6
-rw-r--r--pkgs/applications/science/math/singular/default.nix7
-rw-r--r--pkgs/applications/science/math/singular/disable-vspace-on-aarch64.patch15
-rw-r--r--pkgs/applications/science/math/singular/vspace-MAX_PROCESS.patch35
-rw-r--r--pkgs/applications/science/math/speedcrunch/default.nix16
-rw-r--r--pkgs/applications/science/math/wxmaxima/default.nix31
-rw-r--r--pkgs/applications/science/math/yacas/default.nix69
-rw-r--r--pkgs/applications/science/math/yacas/fix-test-script.patch26
-rw-r--r--pkgs/applications/science/math/yacas/jsoncpp-fix-include.patch63
-rw-r--r--pkgs/applications/science/misc/boinc/default.nix17
-rw-r--r--pkgs/applications/science/misc/fityk/default.nix2
-rw-r--r--pkgs/applications/science/misc/golly/default.nix42
-rw-r--r--pkgs/applications/science/misc/openmvg/default.nix4
-rw-r--r--pkgs/applications/science/misc/rink/default.nix6
-rw-r--r--pkgs/applications/science/misc/root/5.nix22
-rw-r--r--pkgs/applications/science/misc/root/default.nix1
-rw-r--r--pkgs/applications/science/molecular-dynamics/gromacs/default.nix2
-rw-r--r--pkgs/applications/science/physics/elmerfem/default.nix10
-rw-r--r--pkgs/applications/science/physics/elmerfem/fix-cmake.patch13
-rw-r--r--pkgs/applications/science/programming/groove/default.nix8
-rw-r--r--pkgs/applications/science/programming/scyther/cli.nix29
-rw-r--r--pkgs/applications/science/programming/scyther/default.nix80
-rw-r--r--pkgs/applications/science/robotics/betaflight-configurator/default.nix4
-rw-r--r--pkgs/applications/science/robotics/mavproxy/default.nix4
-rw-r--r--pkgs/applications/system/glances/default.nix7
-rw-r--r--pkgs/applications/system/systemdgenie/default.nix32
-rw-r--r--pkgs/applications/terminal-emulators/contour/default.nix3
-rw-r--r--pkgs/applications/terminal-emulators/foot/default.nix12
-rw-r--r--pkgs/applications/terminal-emulators/iterm2/default.nix8
-rw-r--r--pkgs/applications/terminal-emulators/lxterminal/default.nix16
-rw-r--r--pkgs/applications/terminal-emulators/roxterm/default.nix4
-rw-r--r--pkgs/applications/terminal-emulators/wezterm/default.nix10
-rw-r--r--pkgs/applications/version-management/cvs-fast-export/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/delta/default.nix12
-rw-r--r--pkgs/applications/version-management/git-and-tools/gg/default.nix55
-rw-r--r--pkgs/applications/version-management/git-and-tools/gg/skip-broken-revert-tests.patch12
-rw-r--r--pkgs/applications/version-management/git-and-tools/gh/default.nix7
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-branchless/default.nix11
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-chglog/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-cliff/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-credential-1password/default.nix23
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-delete-merged-branches/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix28
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-quickfix/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix21
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitflow/default.nix3
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitin/default.nix32
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitin/deps.nix121
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitty/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitui/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/glitter/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/subgit/default.nix4
-rw-r--r--pkgs/applications/version-management/git-repo/default.nix4
-rw-r--r--pkgs/applications/version-management/git-review/default.nix22
-rw-r--r--pkgs/applications/version-management/gitea/default.nix4
-rw-r--r--pkgs/applications/version-management/github-desktop/default.nix4
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix7
-rw-r--r--pkgs/applications/version-management/gitlab/data.json16
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/Gemfile10
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock23
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/default.nix22
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/gemset.nix68
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-shell/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile47
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock129
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix225
-rwxr-xr-xpkgs/applications/version-management/gitlab/update.py1
-rw-r--r--pkgs/applications/version-management/got/default.nix6
-rw-r--r--pkgs/applications/version-management/guitone/default.nix34
-rw-r--r--pkgs/applications/version-management/guitone/parallel-building.patch7
-rw-r--r--pkgs/applications/version-management/p4/default.nix10
-rw-r--r--pkgs/applications/version-management/pijul/default.nix6
-rw-r--r--pkgs/applications/version-management/sourcehut/builds.nix27
-rw-r--r--pkgs/applications/version-management/sourcehut/core.nix7
-rw-r--r--pkgs/applications/version-management/sourcehut/default.nix2
-rw-r--r--pkgs/applications/version-management/sourcehut/dispatch.nix8
-rw-r--r--pkgs/applications/version-management/sourcehut/git.nix12
-rw-r--r--pkgs/applications/version-management/sourcehut/hg.nix8
-rw-r--r--pkgs/applications/version-management/sourcehut/hub.nix7
-rw-r--r--pkgs/applications/version-management/sourcehut/lists.nix8
-rw-r--r--pkgs/applications/version-management/sourcehut/man.nix8
-rw-r--r--pkgs/applications/version-management/sourcehut/meta.nix15
-rw-r--r--pkgs/applications/version-management/sourcehut/pages.nix30
-rw-r--r--pkgs/applications/version-management/sourcehut/paste.nix8
-rw-r--r--pkgs/applications/version-management/sourcehut/patches/redis-socket/build/0001-Revert-Add-build-submission-and-queue-monitoring.patch69
-rw-r--r--pkgs/applications/version-management/sourcehut/patches/redis-socket/meta/0001-Revert-Add-webhook-queue-monitoring.patch48
-rw-r--r--pkgs/applications/version-management/sourcehut/scm.nix10
-rw-r--r--pkgs/applications/version-management/sourcehut/todo.nix7
-rwxr-xr-xpkgs/applications/version-management/sourcehut/update.sh62
-rw-r--r--pkgs/applications/version-management/sublime-merge/common.nix2
-rw-r--r--pkgs/applications/version-management/sublime-merge/default.nix8
-rw-r--r--pkgs/applications/video/bino3d/default.nix4
-rw-r--r--pkgs/applications/video/bombono/default.nix4
-rw-r--r--pkgs/applications/video/celluloid/default.nix4
-rw-r--r--pkgs/applications/video/clapper/default.nix4
-rw-r--r--pkgs/applications/video/clipgrab/default.nix4
-rw-r--r--pkgs/applications/video/corrscope/default.nix26
-rw-r--r--pkgs/applications/video/droidcam/default.nix4
-rw-r--r--pkgs/applications/video/entangle/default.nix4
-rw-r--r--pkgs/applications/video/f1viewer/default.nix23
-rw-r--r--pkgs/applications/video/giph/default.nix2
-rw-r--r--pkgs/applications/video/haruna/default.nix4
-rw-r--r--pkgs/applications/video/jellyfin-mpv-shim/default.nix4
-rw-r--r--pkgs/applications/video/kaffeine/default.nix50
-rw-r--r--pkgs/applications/video/kodi/addons/a4ksubtitles/default.nix (renamed from pkgs/applications/video/kodi-packages/a4ksubtitles/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/addon-update-script/default.nix (renamed from pkgs/applications/video/kodi-packages/addon-update-script/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/archive_tool/default.nix (renamed from pkgs/applications/video/kodi-packages/archive_tool/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/certifi/default.nix (renamed from pkgs/applications/video/kodi-packages/certifi/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/chardet/default.nix (renamed from pkgs/applications/video/kodi-packages/chardet/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/controllers/default.nix (renamed from pkgs/applications/video/kodi-packages/controllers/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/dateutil/default.nix (renamed from pkgs/applications/video/kodi-packages/dateutil/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/defusedxml/default.nix (renamed from pkgs/applications/video/kodi-packages/defusedxml/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/iagl/default.nix (renamed from pkgs/applications/video/kodi-packages/iagl/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/idna/default.nix (renamed from pkgs/applications/video/kodi-packages/idna/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/inputstream-adaptive/default.nix (renamed from pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix)4
-rw-r--r--pkgs/applications/video/kodi/addons/inputstream-ffmpegdirect/default.nix (renamed from pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix)4
-rw-r--r--pkgs/applications/video/kodi/addons/inputstream-rtmp/default.nix (renamed from pkgs/applications/video/kodi-packages/inputstream-rtmp/default.nix)4
-rw-r--r--pkgs/applications/video/kodi/addons/inputstreamhelper/default.nix (renamed from pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/jellyfin/default.nix (renamed from pkgs/applications/video/kodi-packages/jellyfin/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/joystick/default.nix (renamed from pkgs/applications/video/kodi-packages/joystick/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/keymap/default.nix (renamed from pkgs/applications/video/kodi-packages/keymap/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/kodi-platform/default.nix (renamed from pkgs/applications/video/kodi-packages/kodi-platform/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/kodi-six/default.nix (renamed from pkgs/applications/video/kodi-packages/kodi-six/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/libretro-genplus/default.nix (renamed from pkgs/applications/video/kodi-packages/libretro-genplus/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/libretro-mgba/default.nix (renamed from pkgs/applications/video/kodi-packages/libretro-mgba/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/libretro-snes9x/default.nix (renamed from pkgs/applications/video/kodi-packages/libretro-snes9x/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/libretro/default.nix (renamed from pkgs/applications/video/kodi-packages/libretro/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/myconnpy/default.nix (renamed from pkgs/applications/video/kodi-packages/myconnpy/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/netflix/default.nix (renamed from pkgs/applications/video/kodi-packages/netflix/default.nix)4
-rw-r--r--pkgs/applications/video/kodi/addons/osmc-skin/default.nix (renamed from pkgs/applications/video/kodi-packages/osmc-skin/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/pdfreader/default.nix (renamed from pkgs/applications/video/kodi-packages/pdfreader/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/pvr-hdhomerun/default.nix (renamed from pkgs/applications/video/kodi-packages/pvr-hdhomerun/default.nix)4
-rw-r--r--pkgs/applications/video/kodi/addons/pvr-hts/default.nix (renamed from pkgs/applications/video/kodi-packages/pvr-hts/default.nix)4
-rw-r--r--pkgs/applications/video/kodi/addons/pvr-iptvsimple/default.nix (renamed from pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix)4
-rw-r--r--pkgs/applications/video/kodi/addons/requests-cache/default.nix (renamed from pkgs/applications/video/kodi-packages/requests-cache/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/requests/default.nix (renamed from pkgs/applications/video/kodi-packages/requests/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/routing/default.nix (renamed from pkgs/applications/video/kodi-packages/routing/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/signals/default.nix (renamed from pkgs/applications/video/kodi-packages/signals/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/six/default.nix (renamed from pkgs/applications/video/kodi-packages/six/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/steam-controller/default.nix (renamed from pkgs/applications/video/kodi-packages/steam-controller/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/steam-launcher/default.nix (renamed from pkgs/applications/video/kodi-packages/steam-launcher/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/steam-library/default.nix (renamed from pkgs/applications/video/kodi-packages/steam-library/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/svtplay/default.nix (renamed from pkgs/applications/video/kodi-packages/svtplay/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/urllib3/default.nix (renamed from pkgs/applications/video/kodi-packages/urllib3/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/vfs-libarchive/default.nix (renamed from pkgs/applications/video/kodi-packages/vfs-libarchive/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/vfs-sftp/default.nix (renamed from pkgs/applications/video/kodi-packages/vfs-sftp/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/websocket/default.nix (renamed from pkgs/applications/video/kodi-packages/websocket/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/addons/youtube/default.nix (renamed from pkgs/applications/video/kodi-packages/youtube/default.nix)0
-rw-r--r--pkgs/applications/video/kodi/unwrapped.nix4
-rw-r--r--pkgs/applications/video/kodi/wrapper.nix2
-rw-r--r--pkgs/applications/video/kooha/default.nix66
-rw-r--r--pkgs/applications/video/mediathekview/default.nix7
-rw-r--r--pkgs/applications/video/minitube/default.nix4
-rw-r--r--pkgs/applications/video/mkvtoolnix/default.nix9
-rw-r--r--pkgs/applications/video/mpv/scripts/cutter.nix47
-rw-r--r--pkgs/applications/video/mpv/wrapper.nix5
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-nvfbc.nix4
-rw-r--r--pkgs/applications/video/obs-studio/plugins/obs-websocket.nix4
-rw-r--r--pkgs/applications/video/qarte/default.nix6
-rw-r--r--pkgs/applications/video/qmplay2/default.nix4
-rw-r--r--pkgs/applications/video/streamlink/default.nix4
-rw-r--r--pkgs/applications/video/stremio/default.nix44
-rw-r--r--pkgs/applications/video/ustreamer/default.nix4
-rw-r--r--pkgs/applications/video/vcs/default.nix8
-rw-r--r--pkgs/applications/video/vlc/default.nix12
-rw-r--r--pkgs/applications/video/xine-ui/default.nix4
-rw-r--r--pkgs/applications/virtualization/buildkit-nix/default.nix27
-rw-r--r--pkgs/applications/virtualization/cloud-hypervisor/default.nix6
-rw-r--r--pkgs/applications/virtualization/colima/default.nix41
-rw-r--r--pkgs/applications/virtualization/conmon/default.nix4
-rw-r--r--pkgs/applications/virtualization/containerd/default.nix4
-rw-r--r--pkgs/applications/virtualization/crun/default.nix4
-rw-r--r--pkgs/applications/virtualization/docker-slim/default.nix4
-rw-r--r--pkgs/applications/virtualization/docker/buildx.nix4
-rw-r--r--pkgs/applications/virtualization/docker/compose.nix6
-rw-r--r--pkgs/applications/virtualization/docker/default.nix10
-rw-r--r--pkgs/applications/virtualization/lima/default.nix6
-rw-r--r--pkgs/applications/virtualization/podman-compose/default.nix17
-rw-r--r--pkgs/applications/virtualization/podman/default.nix4
-rw-r--r--pkgs/applications/virtualization/qemu/default.nix46
-rw-r--r--pkgs/applications/virtualization/runc/default.nix4
-rw-r--r--pkgs/applications/virtualization/singularity/default.nix4
-rw-r--r--pkgs/applications/virtualization/virt-manager/default.nix4
-rw-r--r--pkgs/applications/window-managers/afterstep/default.nix6
-rw-r--r--pkgs/applications/window-managers/cagebreak/default.nix12
-rw-r--r--pkgs/applications/window-managers/eww/default.nix2
-rw-r--r--pkgs/applications/window-managers/i3/default.nix6
-rw-r--r--pkgs/applications/window-managers/i3/gaps.nix4
-rw-r--r--pkgs/applications/window-managers/i3/status-rust.nix6
-rw-r--r--pkgs/applications/window-managers/i3/status.nix17
-rw-r--r--pkgs/applications/window-managers/i3/wmfocus.nix6
-rw-r--r--pkgs/applications/window-managers/leftwm/default.nix6
-rw-r--r--pkgs/applications/window-managers/pekwm/default.nix2
-rw-r--r--pkgs/applications/window-managers/phosh/default.nix4
-rw-r--r--pkgs/applications/window-managers/qtile/default.nix4
-rw-r--r--pkgs/applications/window-managers/sawfish/default.nix4
-rw-r--r--pkgs/applications/window-managers/sway/default.nix4
-rw-r--r--pkgs/applications/window-managers/vwm/default.nix7
-rw-r--r--pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix2
-rw-r--r--pkgs/build-support/bintools-wrapper/default.nix2
-rw-r--r--pkgs/build-support/build-bazel-package/default.nix1
-rw-r--r--pkgs/build-support/build-dotnet-module/default.nix168
-rw-r--r--pkgs/build-support/build-dotnet-package/default.nix6
-rw-r--r--pkgs/build-support/build-fhs-userenv/chrootenv/default.nix2
-rw-r--r--pkgs/build-support/build-graalvm-native-image/default.nix57
-rw-r--r--pkgs/build-support/dhall/directory-to-nix.nix25
-rw-r--r--pkgs/build-support/dhall/package-to-nix.nix36
-rw-r--r--pkgs/build-support/dhall/to-nix.nix (renamed from pkgs/build-support/dhall-to-nix.nix)0
-rw-r--r--pkgs/build-support/docker/default.nix33
-rw-r--r--pkgs/build-support/docker/examples.nix45
-rw-r--r--pkgs/build-support/emacs/generic.nix2
-rw-r--r--pkgs/build-support/emacs/melpa2nix.el3
-rw-r--r--pkgs/build-support/emacs/mk-wrapper-subdirs.el6
-rw-r--r--pkgs/build-support/emacs/wrapper.nix9
-rwxr-xr-xpkgs/build-support/fetchgit/nix-prefetch-git2
-rw-r--r--pkgs/build-support/fetchmtn/builder.sh48
-rw-r--r--pkgs/build-support/fetchnuget/default.nix6
-rw-r--r--pkgs/build-support/mono-dll-fixer/builder.sh4
-rw-r--r--pkgs/build-support/mono-dll-fixer/default.nix7
-rwxr-xr-xpkgs/build-support/node/fetch-yarn-deps/index.js42
-rwxr-xr-xpkgs/build-support/nuget-to-nix/nuget-to-nix.sh2
-rw-r--r--pkgs/build-support/pkg-config-wrapper/default.nix3
-rw-r--r--pkgs/build-support/pkg-config-wrapper/pkg-config-wrapper.sh8
-rw-r--r--pkgs/build-support/rust/build-rust-package/sysroot/default.nix13
-rwxr-xr-xpkgs/build-support/rust/build-rust-package/sysroot/update-lockfile.sh21
-rw-r--r--pkgs/build-support/rust/sysroot/Cargo.lock (renamed from pkgs/build-support/rust/build-rust-package/sysroot/Cargo.lock)17
-rw-r--r--pkgs/build-support/rust/sysroot/cargo.py (renamed from pkgs/build-support/rust/build-rust-package/sysroot/cargo.py)16
-rw-r--r--pkgs/build-support/rust/sysroot/src.nix26
-rwxr-xr-xpkgs/build-support/rust/sysroot/update-lockfile.sh27
-rw-r--r--pkgs/build-support/setup-hooks/make-binary-wrapper.sh391
-rw-r--r--pkgs/build-support/setup-hooks/role.bash4
-rw-r--r--pkgs/build-support/setup-hooks/separate-debug-info.sh14
-rw-r--r--pkgs/build-support/setup-hooks/shorten-perl-shebang.sh6
-rw-r--r--pkgs/build-support/upstream-updater/update-walker-service-specific.sh2
-rwxr-xr-xpkgs/build-support/upstream-updater/update-walker.sh4
-rw-r--r--pkgs/build-support/vm/default.nix22
-rw-r--r--pkgs/build-support/vm/test.nix13
-rw-r--r--pkgs/build-support/wrapper-common/utils.bash16
-rw-r--r--pkgs/build-support/writers/aliases.nix35
-rw-r--r--pkgs/build-support/writers/default.nix47
-rw-r--r--pkgs/build-support/writers/test.nix31
-rw-r--r--pkgs/data/documentation/gnome-user-docs/default.nix4
-rw-r--r--pkgs/data/documentation/man-pages/default.nix4
-rw-r--r--pkgs/data/documentation/s6-man-pages/default.nix4
-rw-r--r--pkgs/data/documentation/stdman/default.nix4
-rw-r--r--pkgs/data/fonts/cascadia-code/default.nix5
-rw-r--r--pkgs/data/fonts/fira-code/default.nix4
-rwxr-xr-xpkgs/data/fonts/iosevka/update-bin.sh20
-rw-r--r--pkgs/data/fonts/junicode/default.nix20
-rw-r--r--pkgs/data/fonts/last-resort/default.nix4
-rw-r--r--pkgs/data/fonts/noto-fonts/default.nix5
-rw-r--r--pkgs/data/fonts/recursive/default.nix4
-rw-r--r--pkgs/data/fonts/sarasa-gothic/default.nix4
-rw-r--r--pkgs/data/fonts/scheherazade/default.nix9
-rw-r--r--pkgs/data/fonts/sudo/default.nix4
-rw-r--r--pkgs/data/fonts/unfonts-core/default.nix28
-rw-r--r--pkgs/data/icons/bibata-cursors/default.nix61
-rw-r--r--pkgs/data/icons/bibata-cursors/extra.nix61
-rw-r--r--pkgs/data/icons/bibata-cursors/translucent.nix27
-rw-r--r--pkgs/data/icons/flat-remix-icon-theme/default.nix8
-rw-r--r--pkgs/data/icons/kora-icon-theme/default.nix4
-rw-r--r--pkgs/data/icons/luna-icons/default.nix4
-rw-r--r--pkgs/data/icons/nordzy-cursor-theme/default.nix37
-rw-r--r--pkgs/data/icons/numix-cursor-theme/default.nix20
-rw-r--r--pkgs/data/icons/numix-icon-theme-circle/default.nix4
-rw-r--r--pkgs/data/icons/numix-icon-theme-square/default.nix4
-rw-r--r--pkgs/data/icons/papirus-icon-theme/default.nix4
-rw-r--r--pkgs/data/icons/pop-icon-theme/default.nix19
-rw-r--r--pkgs/data/icons/tela-icon-theme/default.nix4
-rw-r--r--pkgs/data/misc/conway_polynomials/default.nix10
-rw-r--r--pkgs/data/misc/elliptic_curves/default.nix4
-rw-r--r--pkgs/data/misc/geolite-legacy/builder.sh12
-rw-r--r--pkgs/data/misc/hackage/pin.json8
-rw-r--r--pkgs/data/misc/iana-etc/default.nix4
-rw-r--r--pkgs/data/misc/publicsuffix-list/default.nix6
-rw-r--r--pkgs/data/misc/rime-data/default.nix2
-rw-r--r--pkgs/data/misc/scowl/default.nix4
-rw-r--r--pkgs/data/misc/spdx-license-list-data/default.nix4
-rw-r--r--pkgs/data/misc/v2ray-domain-list-community/default.nix8
-rw-r--r--pkgs/data/misc/v2ray-geoip/default.nix28
-rwxr-xr-xpkgs/data/misc/v2ray-geoip/update.sh6
-rw-r--r--pkgs/data/themes/adwaita-qt/default.nix4
-rw-r--r--pkgs/data/themes/flat-remix-gnome/default.nix8
-rw-r--r--pkgs/data/themes/flat-remix-gtk/default.nix4
-rw-r--r--pkgs/data/themes/marwaita/default.nix4
-rw-r--r--pkgs/data/themes/matcha/default.nix4
-rw-r--r--pkgs/data/themes/materia-theme/default.nix23
-rw-r--r--pkgs/data/themes/material-kwin-decoration/default.nix48
-rw-r--r--pkgs/data/themes/nordic/default.nix17
-rw-r--r--pkgs/data/themes/obsidian2/default.nix4
-rw-r--r--pkgs/data/themes/orchis-theme/default.nix20
-rw-r--r--pkgs/data/themes/pop-gtk/default.nix9
-rw-r--r--pkgs/data/themes/qogir/default.nix4
-rw-r--r--pkgs/data/themes/sweet/default.nix26
-rw-r--r--pkgs/data/themes/whitesur/default.nix4
-rw-r--r--pkgs/desktops/arcan/arcan/default.nix6
-rw-r--r--pkgs/desktops/arcan/durden/default.nix6
-rw-r--r--pkgs/desktops/arcan/pipeworld/default.nix6
-rw-r--r--pkgs/desktops/arcan/xarcan/default.nix4
-rw-r--r--pkgs/desktops/cdesktopenv/default.nix11
-rw-r--r--pkgs/desktops/cinnamon/bulky/default.nix8
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-common/default.nix16
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-control-center/default.nix15
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-desktop/default.nix7
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix20
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-menus/default.nix7
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix7
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-session/default.nix9
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix9
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-translations/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/cjs/default.nix8
-rw-r--r--pkgs/desktops/cinnamon/default.nix8
-rw-r--r--pkgs/desktops/cinnamon/mint-artwork/default.nix13
-rw-r--r--pkgs/desktops/cinnamon/mint-themes/default.nix11
-rw-r--r--pkgs/desktops/cinnamon/mint-x-icons/default.nix11
-rw-r--r--pkgs/desktops/cinnamon/mint-y-icons/default.nix11
-rw-r--r--pkgs/desktops/cinnamon/muffin/default.nix7
-rw-r--r--pkgs/desktops/cinnamon/nemo/default.nix10
-rw-r--r--pkgs/desktops/cinnamon/pix/default.nix75
-rw-r--r--pkgs/desktops/cinnamon/warpinator/default.nix10
-rw-r--r--pkgs/desktops/cinnamon/xapps/default.nix9
-rw-r--r--pkgs/desktops/cinnamon/xreader/default.nix76
-rw-r--r--pkgs/desktops/cinnamon/xviewer/default.nix9
-rw-r--r--pkgs/desktops/gnome-2/platform/ORBit2/default.nix10
-rw-r--r--pkgs/desktops/gnome/apps/cheese/default.nix4
-rw-r--r--pkgs/desktops/gnome/apps/ghex/default.nix4
-rw-r--r--pkgs/desktops/gnome/apps/gnome-boxes/default.nix4
-rw-r--r--pkgs/desktops/gnome/apps/gnome-calendar/default.nix4
-rw-r--r--pkgs/desktops/gnome/apps/gnome-connections/default.nix4
-rw-r--r--pkgs/desktops/gnome/apps/gnome-maps/default.nix4
-rw-r--r--pkgs/desktops/gnome/apps/gnome-power-manager/default.nix2
-rw-r--r--pkgs/desktops/gnome/apps/gnome-text-editor/default.nix77
-rw-r--r--pkgs/desktops/gnome/core/caribou/default.nix9
-rw-r--r--pkgs/desktops/gnome/core/eog/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/epiphany/default.nix16
-rw-r--r--pkgs/desktops/gnome/core/evince/default.nix17
-rw-r--r--pkgs/desktops/gnome/core/evince/pantheon-dark-style.patch86
-rw-r--r--pkgs/desktops/gnome/core/evolution-data-server/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-calculator/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-control-center/default.nix8
-rw-r--r--pkgs/desktops/gnome/core/gnome-desktop/default.nix2
-rw-r--r--pkgs/desktops/gnome/core/gnome-initial-setup/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-screenshot/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-session/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-shell/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-software/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-terminal/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/mutter/default.nix6
-rw-r--r--pkgs/desktops/gnome/core/simple-scan/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/sushi/default.nix12
-rw-r--r--pkgs/desktops/gnome/core/yelp-xsl/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/yelp/default.nix4
-rw-r--r--pkgs/desktops/gnome/extensions/README.md3
-rw-r--r--pkgs/desktops/gnome/extensions/arcmenu/default.nix4
-rw-r--r--pkgs/desktops/gnome/extensions/extensionOverrides.nix59
-rw-r--r--pkgs/desktops/gnome/extensions/extensions.json188
-rw-r--r--pkgs/desktops/gnome/extensions/freon/default.nix27
-rw-r--r--pkgs/desktops/gnome/extensions/freon/fix_paths.patch85
-rw-r--r--pkgs/desktops/gnome/extensions/manuallyPackaged.nix1
-rw-r--r--pkgs/desktops/gnome/extensions/pop-shell/default.nix36
-rw-r--r--pkgs/desktops/gnome/extensions/pop-shell/fix-gjs.patch67
-rw-r--r--pkgs/desktops/gnome/games/aisleriot/default.nix4
-rw-r--r--pkgs/desktops/gnome/misc/gnome-flashback/default.nix4
-rw-r--r--pkgs/desktops/gnome/misc/gpaste/default.nix4
-rw-r--r--pkgs/desktops/gnustep/make/builder.sh60
-rw-r--r--pkgs/desktops/gnustep/make/setup-hook.sh36
-rw-r--r--pkgs/desktops/mate/mate-session-manager/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/appcenter/add-packagekit-backend-option.patch240
-rw-r--r--pkgs/desktops/pantheon/apps/appcenter/default.nix24
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calculator/default.nix24
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calendar/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-camera/default.nix12
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-code/default.nix17
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-dock/default.nix14
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-feedback/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-files/default.nix29
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-files/filechooser-portal-hardcode-gsettings-for-nixos.patch24
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-mail/default.nix24
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-music/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-photos/default.nix6
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-screenshot/default.nix24
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-tasks/default.nix24
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-terminal/default.nix34
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-videos/default.nix9
-rw-r--r--pkgs/desktops/pantheon/apps/sideload/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix6
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix15
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch17
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix40
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix30
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix6
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix34
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix30
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard/default.nix6
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix20
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix20
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix27
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix4
-rw-r--r--pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix21
-rw-r--r--pkgs/desktops/pantheon/default.nix65
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix1
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix12
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix29
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix1
-rw-r--r--pkgs/desktops/pantheon/desktop/extra-elementary-contracts/default.nix43
-rw-r--r--pkgs/desktops/pantheon/desktop/file-roller-contract/default.nix46
-rw-r--r--pkgs/desktops/pantheon/desktop/file-roller-contract/exec-path.patch (renamed from pkgs/desktops/pantheon/desktop/extra-elementary-contracts/exec-path.patch)28
-rw-r--r--pkgs/desktops/pantheon/desktop/gala/default.nix34
-rw-r--r--pkgs/desktops/pantheon/desktop/gnome-bluetooth-contract/default.nix46
-rw-r--r--pkgs/desktops/pantheon/desktop/gnome-bluetooth-contract/exec-path.patch11
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/a11y/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix12
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix8
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-incorrect-month.patch26
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-paths.patch17
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix17
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix8
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix1
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel/default.nix20
-rw-r--r--pkgs/desktops/pantheon/granite/default.nix20
-rw-r--r--pkgs/desktops/pantheon/services/contractor/default.nix4
-rw-r--r--pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix4
-rw-r--r--pkgs/desktops/pantheon/services/elementary-notifications/default.nix4
-rw-r--r--pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix4
-rw-r--r--pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix8
-rw-r--r--pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix4
-rw-r--r--pkgs/desktops/pantheon/services/xdg-desktop-portal-pantheon/default.nix (renamed from pkgs/development/libraries/xdg-desktop-portal-pantheon/default.nix)6
-rw-r--r--pkgs/desktops/pantheon/third-party/pantheon-tweaks/default.nix (renamed from pkgs/applications/system/pantheon-tweaks/default.nix)4
-rw-r--r--pkgs/desktops/pantheon/third-party/pantheon-tweaks/fix-paths.patch (renamed from pkgs/applications/system/pantheon-tweaks/fix-paths.patch)0
-rw-r--r--pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/default.nix55
-rw-r--r--pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/fix-libapplication-dir.patch13
-rw-r--r--pkgs/desktops/plasma-5/3rdparty/addons/bismuth/0001-Avoid-usage-of-npx.patch37
-rw-r--r--pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix9
-rw-r--r--pkgs/desktops/plasma-5/3rdparty/lightly/default.nix46
-rw-r--r--pkgs/desktops/plasma-5/default.nix3
-rw-r--r--pkgs/desktops/plasma-5/fetch.sh2
-rw-r--r--pkgs/desktops/plasma-5/kwin/default.nix4
-rw-r--r--pkgs/desktops/plasma-5/plasma-nano/default.nix13
-rw-r--r--pkgs/desktops/plasma-5/plasma-phone-components/default.nix43
-rw-r--r--pkgs/desktops/plasma-5/srcs.nix424
-rw-r--r--pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix4
-rw-r--r--pkgs/desktops/xfce/applications/catfish/default.nix2
-rw-r--r--pkgs/desktops/xfce/applications/gigolo/default.nix5
-rw-r--r--pkgs/desktops/xfce/applications/mousepad/default.nix9
-rw-r--r--pkgs/desktops/xfce/applications/orage/default.nix1
-rw-r--r--pkgs/desktops/xfce/applications/parole/default.nix5
-rw-r--r--pkgs/desktops/xfce/applications/ristretto/default.nix9
-rw-r--r--pkgs/desktops/xfce/applications/xfburn/default.nix7
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-dict/default.nix5
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix5
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-panel-profiles/default.nix3
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix5
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix5
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-terminal/default.nix5
-rw-r--r--pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix2
-rw-r--r--pkgs/desktops/xfce/applications/xfdashboard/default.nix6
-rw-r--r--pkgs/desktops/xfce/art/xfce4-icon-theme/default.nix2
-rw-r--r--pkgs/desktops/xfce/art/xfwm4-themes/default.nix2
-rw-r--r--pkgs/desktops/xfce/core/exo/default.nix9
-rw-r--r--pkgs/desktops/xfce/core/garcon/default.nix5
-rw-r--r--pkgs/desktops/xfce/core/libxfce4ui/default.nix5
-rw-r--r--pkgs/desktops/xfce/core/libxfce4util/default.nix1
-rw-r--r--pkgs/desktops/xfce/core/thunar-volman/default.nix5
-rw-r--r--pkgs/desktops/xfce/core/thunar/default.nix3
-rw-r--r--pkgs/desktops/xfce/core/thunar/wrapper.nix2
-rw-r--r--pkgs/desktops/xfce/core/tumbler/default.nix6
-rw-r--r--pkgs/desktops/xfce/core/xfce4-appfinder/default.nix5
-rw-r--r--pkgs/desktops/xfce/core/xfce4-dev-tools/default.nix6
-rw-r--r--pkgs/desktops/xfce/core/xfce4-panel/default.nix6
-rw-r--r--pkgs/desktops/xfce/core/xfce4-power-manager/default.nix5
-rw-r--r--pkgs/desktops/xfce/core/xfce4-session/default.nix5
-rw-r--r--pkgs/desktops/xfce/core/xfce4-settings/default.nix5
-rw-r--r--pkgs/desktops/xfce/core/xfconf/default.nix5
-rw-r--r--pkgs/desktops/xfce/core/xfdesktop/default.nix5
-rw-r--r--pkgs/desktops/xfce/core/xfwm4/default.nix7
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-battery-plugin/default.nix5
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix5
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin/default.nix5
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix6
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-fsguard-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-genmon-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-i3-workspaces-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-mpc-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin/default.nix12
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-netload-plugin/default.nix5
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix6
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix9
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/panel-plugins/xfce4-xkb-plugin/default.nix2
-rw-r--r--pkgs/desktops/xfce/thunar-plugins/archive/default.nix1
-rw-r--r--pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix1
-rw-r--r--pkgs/desktops/xfce/thunar-plugins/media-tags/default.nix2
-rw-r--r--pkgs/development/beam-modules/default.nix16
-rw-r--r--pkgs/development/beam-modules/elixir-ls/default.nix14
-rw-r--r--pkgs/development/beam-modules/elixir-ls/pin.json5
-rwxr-xr-xpkgs/development/beam-modules/elixir-ls/update.sh35
-rw-r--r--pkgs/development/beam-modules/hex/default.nix4
-rw-r--r--pkgs/development/compilers/carp/default.nix4
-rw-r--r--pkgs/development/compilers/chez-racket/default.nix52
-rw-r--r--pkgs/development/compilers/chez-racket/setup-hook.sh5
-rw-r--r--pkgs/development/compilers/chez-racket/shared.nix41
-rw-r--r--pkgs/development/compilers/chez/default.nix4
-rw-r--r--pkgs/development/compilers/chicken/5/chicken.nix4
-rw-r--r--pkgs/development/compilers/ciao/default.nix1
-rw-r--r--pkgs/development/compilers/closure/default.nix4
-rw-r--r--pkgs/development/compilers/copper/default.nix5
-rw-r--r--pkgs/development/compilers/dictu/default.nix1
-rw-r--r--pkgs/development/compilers/dotnet/build-dotnet.nix18
-rw-r--r--pkgs/development/compilers/ecl/16.1.2.nix66
-rw-r--r--pkgs/development/compilers/ecl/default.nix59
-rw-r--r--pkgs/development/compilers/ecl/default.upstream2
-rw-r--r--pkgs/development/compilers/edk2/default.nix41
-rw-r--r--pkgs/development/compilers/elm/default.nix20
-rw-r--r--pkgs/development/compilers/elm/packages/elm-test-rs.nix18
-rwxr-xr-xpkgs/development/compilers/elm/packages/generate-node-packages.sh2
-rw-r--r--pkgs/development/compilers/elm/packages/node-packages.json3
-rw-r--r--pkgs/development/compilers/elm/packages/node-packages.nix1486
-rw-r--r--pkgs/development/compilers/factor-lang/adjust-paths-in-unit-tests.patch31
-rw-r--r--pkgs/development/compilers/factor-lang/default.nix105
-rw-r--r--pkgs/development/compilers/factor-lang/factor98.nix218
-rw-r--r--pkgs/development/compilers/factor-lang/fuel-dir.patch20
-rw-r--r--pkgs/development/compilers/factor-lang/scope.nix16
-rw-r--r--pkgs/development/compilers/fasm/bin.nix4
-rw-r--r--pkgs/development/compilers/flutter/default.nix8
-rw-r--r--pkgs/development/compilers/flutter/flutter.nix2
-rw-r--r--pkgs/development/compilers/flutter/patches/move-cache.patch53
-rw-r--r--pkgs/development/compilers/fstar/default.nix21
-rw-r--r--pkgs/development/compilers/gambit/bootstrap.nix11
-rw-r--r--pkgs/development/compilers/gambit/build.nix9
-rw-r--r--pkgs/development/compilers/gcc-arm-embedded/6/default.nix4
-rw-r--r--pkgs/development/compilers/gcc-arm-embedded/7/default.nix4
-rw-r--r--pkgs/development/compilers/gcc-arm-embedded/8/default.nix4
-rw-r--r--pkgs/development/compilers/gcc/10/default.nix1
-rw-r--r--pkgs/development/compilers/gcc/11/default.nix1
-rw-r--r--pkgs/development/compilers/gcc/9/default.nix5
-rw-r--r--pkgs/development/compilers/gcc/no-sys-dirs-riscv.patch12
-rw-r--r--pkgs/development/compilers/gerbil/build.nix9
-rw-r--r--pkgs/development/compilers/ghc/8.10.2-binary.nix34
-rw-r--r--pkgs/development/compilers/ghc/8.10.7-binary.nix32
-rw-r--r--pkgs/development/compilers/ghc/8.10.7.nix72
-rw-r--r--pkgs/development/compilers/ghc/8.6.5-binary.nix33
-rw-r--r--pkgs/development/compilers/ghc/8.8.4.nix61
-rw-r--r--pkgs/development/compilers/ghc/9.0.1.nix72
-rw-r--r--pkgs/development/compilers/ghc/9.2.1.nix74
-rw-r--r--pkgs/development/compilers/ghc/head.nix93
-rw-r--r--pkgs/development/compilers/ghcjs/8.10/configured-ghcjs-src.nix3
-rw-r--r--pkgs/development/compilers/ghcjs/8.10/default.nix5
-rw-r--r--pkgs/development/compilers/gleam/default.nix6
-rw-r--r--pkgs/development/compilers/go-jsonnet/default.nix6
-rw-r--r--pkgs/development/compilers/go/1.15.nix2
-rw-r--r--pkgs/development/compilers/go/1.16.nix11
-rw-r--r--pkgs/development/compilers/go/1.17.nix10
-rw-r--r--pkgs/development/compilers/go/2-dev.nix2
-rw-r--r--pkgs/development/compilers/go/binary.nix2
-rwxr-xr-xpkgs/development/compilers/go/print-hashes.sh2
-rw-r--r--pkgs/development/compilers/graalvm/community-edition/mkGraal.nix206
-rw-r--r--pkgs/development/compilers/gwt/2.4.0.nix7
-rw-r--r--pkgs/development/compilers/hip/default.nix201
-rw-r--r--pkgs/development/compilers/idris2/default.nix6
-rw-r--r--pkgs/development/compilers/idris2/tests.nix67
-rw-r--r--pkgs/development/compilers/ios-cross-compile/9.2_builder.sh78
-rw-r--r--pkgs/development/compilers/julia/1.0.nix4
-rw-r--r--pkgs/development/compilers/julia/1.5.nix4
-rw-r--r--pkgs/development/compilers/julia/1.6-bin.nix7
-rw-r--r--pkgs/development/compilers/julia/1.7-bin.nix (renamed from pkgs/development/compilers/julia/1.0-bin.nix)37
-rw-r--r--pkgs/development/compilers/julia/patches/1.0-bin/0002-nix-Skip-tests-that-require-network-access.patch87
-rw-r--r--pkgs/development/compilers/julia/patches/1.6-bin/0002-nix-Skip-tempname-test-broken-in-sandbox.patch28
-rw-r--r--pkgs/development/compilers/julia/patches/1.7-bin/0005-nix-Enable-parallel-unit-tests-for-sandbox.patch30
-rw-r--r--pkgs/development/compilers/kaitai-struct-compiler/default.nix36
-rw-r--r--pkgs/development/compilers/koka/default.nix4
-rw-r--r--pkgs/development/compilers/kotlin/default.nix4
-rw-r--r--pkgs/development/compilers/kotlin/native.nix8
-rw-r--r--pkgs/development/compilers/ldc/generic.nix2
-rw-r--r--pkgs/development/compilers/llvm/10/libcxx/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/10/llvm/default.nix14
-rw-r--r--pkgs/development/compilers/llvm/11/libcxx/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/11/libcxxabi/default.nix7
-rw-r--r--pkgs/development/compilers/llvm/11/llvm/default.nix20
-rw-r--r--pkgs/development/compilers/llvm/12/libcxx/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/12/libcxxabi/default.nix8
-rw-r--r--pkgs/development/compilers/llvm/13/clang/default.nix7
-rw-r--r--pkgs/development/compilers/llvm/13/clang/revert-malloc-alignment-assumption.patch78
-rw-r--r--pkgs/development/compilers/llvm/13/compiler-rt/armv7l.patch15
-rw-r--r--pkgs/development/compilers/llvm/13/default.nix20
-rw-r--r--pkgs/development/compilers/llvm/13/libcxx/default.nix43
-rw-r--r--pkgs/development/compilers/llvm/13/libcxxabi/default.nix12
-rw-r--r--pkgs/development/compilers/llvm/5/llvm/default.nix8
-rw-r--r--pkgs/development/compilers/llvm/6/libcxx/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/6/llvm/default.nix8
-rw-r--r--pkgs/development/compilers/llvm/7/libcxx/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/7/llvm/default.nix8
-rw-r--r--pkgs/development/compilers/llvm/8/libcxx/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/8/llvm/default.nix8
-rw-r--r--pkgs/development/compilers/llvm/9/libcxx/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/9/llvm/default.nix8
-rw-r--r--pkgs/development/compilers/llvm/git/clang/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/git/default.nix13
-rw-r--r--pkgs/development/compilers/llvm/git/libcxx/default.nix40
-rw-r--r--pkgs/development/compilers/llvm/git/libcxxabi/default.nix5
-rw-r--r--pkgs/development/compilers/llvm/rocm/compiler-rt/68d5235cb58f988c71b403334cd9482d663841ab.patch78
-rw-r--r--pkgs/development/compilers/llvm/rocm/compiler-rt/default.nix8
-rw-r--r--pkgs/development/compilers/llvm/rocm/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/rocm/llvm/default.nix3
-rw-r--r--pkgs/development/compilers/microscheme/default.nix2
-rw-r--r--pkgs/development/compilers/mint/default.nix4
-rw-r--r--pkgs/development/compilers/mozart/default.nix5
-rw-r--r--pkgs/development/compilers/nextpnr/default.nix12
-rw-r--r--pkgs/development/compilers/nim/default.nix4
-rw-r--r--pkgs/development/compilers/ocaml/ber-metaocaml.nix2
-rw-r--r--pkgs/development/compilers/ocaml/generic.nix10
-rw-r--r--pkgs/development/compilers/open-watcom/bin.nix (renamed from pkgs/development/compilers/open-watcom-bin/default.nix)1
-rw-r--r--pkgs/development/compilers/open-watcom/v2.nix124
-rw-r--r--pkgs/development/compilers/open-watcom/wrapper.nix130
-rw-r--r--pkgs/development/compilers/opendylan/bin.nix9
-rw-r--r--pkgs/development/compilers/openjdk/darwin/11.nix28
-rw-r--r--pkgs/development/compilers/openjdk/darwin/16.nix92
-rw-r--r--pkgs/development/compilers/openjdk/darwin/17.nix (renamed from pkgs/development/compilers/openjdk/darwin/default.nix)19
-rw-r--r--pkgs/development/compilers/openjdk/darwin/8.nix28
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/11.nix6
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/15.nix6
-rw-r--r--pkgs/development/compilers/polyml/default.nix4
-rw-r--r--pkgs/development/compilers/qbe/default.nix6
-rw-r--r--pkgs/development/compilers/rust/1_57.nix (renamed from pkgs/development/compilers/rust/1_56.nix)30
-rw-r--r--pkgs/development/compilers/rust/rust-src.nix21
-rw-r--r--pkgs/development/compilers/sbcl/2.1.10.nix4
-rw-r--r--pkgs/development/compilers/sbcl/2.1.11.nix4
-rw-r--r--pkgs/development/compilers/shaderc/default.nix5
-rw-r--r--pkgs/development/compilers/swift/default.nix6
-rw-r--r--pkgs/development/compilers/vala/default.nix32
-rw-r--r--pkgs/development/compilers/vala/disable-graphviz-0.44.3.patch261
-rw-r--r--pkgs/development/compilers/vlang/default.nix10
-rw-r--r--pkgs/development/compilers/yosys/default.nix10
-rw-r--r--pkgs/development/coq-modules/ITree/default.nix2
-rw-r--r--pkgs/development/coq-modules/StructTact/default.nix2
-rw-r--r--pkgs/development/coq-modules/bignums/default.nix1
-rw-r--r--pkgs/development/coq-modules/category-theory/default.nix4
-rw-r--r--pkgs/development/coq-modules/compcert/default.nix12
-rw-r--r--pkgs/development/coq-modules/coq-record-update/default.nix16
-rw-r--r--pkgs/development/coq-modules/coqeal/default.nix2
-rw-r--r--pkgs/development/coq-modules/coqhammer/default.nix14
-rw-r--r--pkgs/development/coq-modules/coqprime/default.nix3
-rw-r--r--pkgs/development/coq-modules/equations/default.nix4
-rw-r--r--pkgs/development/coq-modules/gappalib/default.nix2
-rw-r--r--pkgs/development/coq-modules/graph-theory/default.nix2
-rw-r--r--pkgs/development/coq-modules/interval/default.nix2
-rw-r--r--pkgs/development/coq-modules/iris/default.nix2
-rw-r--r--pkgs/development/coq-modules/mathcomp-bigenough/default.nix10
-rw-r--r--pkgs/development/coq-modules/mathcomp-word/default.nix27
-rw-r--r--pkgs/development/coq-modules/paco/default.nix4
-rw-r--r--pkgs/development/coq-modules/semantics/default.nix3
-rw-r--r--pkgs/development/coq-modules/serapi/default.nix8
-rw-r--r--pkgs/development/coq-modules/stdpp/default.nix2
-rw-r--r--pkgs/development/dhall-modules/dhall-grafana.nix4
-rwxr-xr-xpkgs/development/dotnet-modules/python-language-server/create_deps.sh38
-rw-r--r--pkgs/development/dotnet-modules/python-language-server/default.nix102
-rw-r--r--pkgs/development/dotnet-modules/python-language-server/deps.nix1350
-rwxr-xr-xpkgs/development/dotnet-modules/python-language-server/format-deps.sh40
-rw-r--r--pkgs/development/dotnet-modules/python-language-server/manual_deps.txt2
-rwxr-xr-xpkgs/development/dotnet-modules/python-language-server/process_lockfile.py37
-rwxr-xr-xpkgs/development/dotnet-modules/python-language-server/updater.sh41
-rw-r--r--pkgs/development/embedded/arduino/arduino-core/chrootenv.nix36
-rw-r--r--pkgs/development/embedded/arduino/arduino-core/default.nix51
-rw-r--r--pkgs/development/embedded/fpga/icestorm/default.nix2
-rw-r--r--pkgs/development/embedded/fpga/openfpgaloader/default.nix4
-rw-r--r--pkgs/development/embedded/fpga/trellis/default.nix11
-rw-r--r--pkgs/development/embedded/platformio/core.nix16
-rw-r--r--pkgs/development/embedded/platformio/default.nix4
-rw-r--r--pkgs/development/embedded/platformio/use-local-spdx-license-list.patch2
-rw-r--r--pkgs/development/gnuradio-modules/ais/default.nix8
-rw-r--r--pkgs/development/gnuradio-modules/grnet/default.nix84
-rw-r--r--pkgs/development/go-modules/generic/default.nix1
-rw-r--r--pkgs/development/haskell-modules/configuration-arm.nix9
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix289
-rw-r--r--pkgs/development/haskell-modules/configuration-darwin.nix4
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix3
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix3
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix3
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix57
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix85
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-head.nix5
-rw-r--r--pkgs/development/haskell-modules/configuration-ghcjs.nix5
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml36
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml39
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml309
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml32
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix50
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix8655
-rw-r--r--pkgs/development/haskell-modules/lib/compose.nix11
-rw-r--r--pkgs/development/haskell-modules/patches/graphviz-hardcode-graphviz-store-path.patch40
-rw-r--r--pkgs/development/haskell-modules/patches/xmonad_0_17_0-nix.patch34
-rw-r--r--pkgs/development/haskell-modules/with-packages-wrapper.nix9
-rw-r--r--pkgs/development/idris-modules/build-idris-package.nix3
-rw-r--r--pkgs/development/interpreters/alda/default.nix33
-rw-r--r--pkgs/development/interpreters/angelscript/2.22.nix34
-rw-r--r--pkgs/development/interpreters/asmrepl/Gemfile3
-rw-r--r--pkgs/development/interpreters/asmrepl/Gemfile.lock18
-rw-r--r--pkgs/development/interpreters/asmrepl/default.nix17
-rw-r--r--pkgs/development/interpreters/asmrepl/gemset.nix23
-rw-r--r--pkgs/development/interpreters/bqn/cbqn/default.nix10
-rw-r--r--pkgs/development/interpreters/bqn/dzaima-bqn/default.nix7
-rw-r--r--pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix6
-rw-r--r--pkgs/development/interpreters/bwbasic/default.nix37
-rw-r--r--pkgs/development/interpreters/clojure/babashka.nix56
-rw-r--r--pkgs/development/interpreters/clojure/default.nix4
-rw-r--r--pkgs/development/interpreters/dhall/generate-dhall-directory-package.nix27
-rw-r--r--pkgs/development/interpreters/dzaima-apl/default.nix1
-rw-r--r--pkgs/development/interpreters/elixir/1.13.nix9
-rw-r--r--pkgs/development/interpreters/elixir/1.7.nix7
-rw-r--r--pkgs/development/interpreters/elixir/1.8.nix7
-rw-r--r--pkgs/development/interpreters/erlang/R24.nix4
-rw-r--r--pkgs/development/interpreters/evcxr/default.nix6
-rw-r--r--pkgs/development/interpreters/jruby/default.nix4
-rw-r--r--pkgs/development/interpreters/kona/default.nix4
-rw-r--r--pkgs/development/interpreters/lfe/generic-builder.nix2
-rw-r--r--pkgs/development/interpreters/love/0.7.nix6
-rw-r--r--pkgs/development/interpreters/love/0.9.nix6
-rw-r--r--pkgs/development/interpreters/lunatic/default.nix19
-rw-r--r--pkgs/development/interpreters/lush/default.nix29
-rw-r--r--pkgs/development/interpreters/lush/default.upstream4
-rw-r--r--pkgs/development/interpreters/metamath/default.nix4
-rw-r--r--pkgs/development/interpreters/mujs/default.nix4
-rw-r--r--pkgs/development/interpreters/ngn-k/default.nix15
-rw-r--r--pkgs/development/interpreters/ngn-k/repl-license-path.patch18
-rw-r--r--pkgs/development/interpreters/octave/default.nix7
-rw-r--r--pkgs/development/interpreters/perl/default.nix20
-rw-r--r--pkgs/development/interpreters/php/7.4.nix4
-rw-r--r--pkgs/development/interpreters/php/8.0.nix4
-rw-r--r--pkgs/development/interpreters/php/8.1.nix51
-rw-r--r--pkgs/development/interpreters/php/fix-tokenizer-php81.patch12
-rw-r--r--pkgs/development/interpreters/php/generic.nix1
-rw-r--r--pkgs/development/interpreters/python/cpython/3.11/no-ldconfig.patch107
-rw-r--r--pkgs/development/interpreters/python/cpython/docs/2.7-html.nix8
-rw-r--r--pkgs/development/interpreters/python/cpython/docs/2.7-pdf-a4.nix8
-rw-r--r--pkgs/development/interpreters/python/cpython/docs/2.7-pdf-letter.nix8
-rw-r--r--pkgs/development/interpreters/python/cpython/docs/2.7-text.nix8
-rw-r--r--pkgs/development/interpreters/python/cpython/docs/3.7-html.nix8
-rw-r--r--pkgs/development/interpreters/python/cpython/docs/3.7-pdf-a4.nix8
-rw-r--r--pkgs/development/interpreters/python/cpython/docs/3.7-pdf-letter.nix8
-rw-r--r--pkgs/development/interpreters/python/cpython/docs/3.7-text.nix8
-rw-r--r--pkgs/development/interpreters/python/default.nix37
-rw-r--r--pkgs/development/interpreters/python/hooks/python-namespaces-hook.sh11
-rw-r--r--pkgs/development/interpreters/python/rustpython/default.nix44
-rw-r--r--pkgs/development/interpreters/python/tests.nix10
-rwxr-xr-xpkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py27
-rw-r--r--pkgs/development/interpreters/rakudo/default.nix12
-rw-r--r--pkgs/development/interpreters/rakudo/moarvm.nix21
-rw-r--r--pkgs/development/interpreters/rakudo/nqp.nix12
-rw-r--r--pkgs/development/interpreters/rakudo/zef.nix4
-rw-r--r--pkgs/development/interpreters/ruby/default.nix12
-rw-r--r--pkgs/development/interpreters/ruby/patchsets.nix4
-rw-r--r--pkgs/development/interpreters/spidermonkey/78.nix4
-rw-r--r--pkgs/development/interpreters/spidermonkey/91.nix4
-rw-r--r--pkgs/development/interpreters/tinyscheme/default.nix1
-rw-r--r--pkgs/development/interpreters/wasmer/default.nix8
-rw-r--r--pkgs/development/libraries/CGAL/4.nix24
-rw-r--r--pkgs/development/libraries/CGAL/default.nix4
-rw-r--r--pkgs/development/libraries/SDL_image/default.nix3
-rw-r--r--pkgs/development/libraries/SDL_mixer/default.nix3
-rw-r--r--pkgs/development/libraries/SDL_net/default.nix3
-rw-r--r--pkgs/development/libraries/Xaw3d/default.nix24
-rw-r--r--pkgs/development/libraries/aalib/default.nix7
-rw-r--r--pkgs/development/libraries/ace/default.nix4
-rw-r--r--pkgs/development/libraries/acl/default.nix5
-rw-r--r--pkgs/development/libraries/agda/agda-categories/default.nix7
-rw-r--r--pkgs/development/libraries/agda/cubical/default.nix6
-rw-r--r--pkgs/development/libraries/agda/standard-library/default.nix4
-rw-r--r--pkgs/development/libraries/agg/default.nix6
-rw-r--r--pkgs/development/libraries/amdvlk/default.nix26
-rw-r--r--pkgs/development/libraries/apache-activemq/default.nix6
-rw-r--r--pkgs/development/libraries/apr/default.nix2
-rw-r--r--pkgs/development/libraries/arb/default.nix4
-rw-r--r--pkgs/development/libraries/armadillo/default.nix4
-rw-r--r--pkgs/development/libraries/arrow-cpp/default.nix18
-rw-r--r--pkgs/development/libraries/aspell/dictionaries.nix6
-rw-r--r--pkgs/development/libraries/assimp/default.nix7
-rw-r--r--pkgs/development/libraries/aubio/default.nix5
-rw-r--r--pkgs/development/libraries/audio/libbass/default.nix2
-rw-r--r--pkgs/development/libraries/audio/ntk/default.nix10
-rw-r--r--pkgs/development/libraries/audio/rtmidi/default.nix3
-rw-r--r--pkgs/development/libraries/audio/rtmidi/macos_include_targetconditionals.patch13
-rw-r--r--pkgs/development/libraries/audio/suil/default.nix2
-rw-r--r--pkgs/development/libraries/audiofile/default.nix5
-rw-r--r--pkgs/development/libraries/avro-c++/default.nix6
-rw-r--r--pkgs/development/libraries/aws-c-auth/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-cal/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-common/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-http/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-io/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-mqtt/default.nix4
-rw-r--r--pkgs/development/libraries/aws-crt-cpp/default.nix4
-rw-r--r--pkgs/development/libraries/bashup-events/generic.nix5
-rw-r--r--pkgs/development/libraries/bctoolbox/default.nix4
-rw-r--r--pkgs/development/libraries/beecrypt/default.nix8
-rw-r--r--pkgs/development/libraries/boost-process/default.nix11
-rw-r--r--pkgs/development/libraries/boost/1.55.nix4
-rw-r--r--pkgs/development/libraries/boost/1.59.nix4
-rw-r--r--pkgs/development/libraries/boost/1.60.nix4
-rw-r--r--pkgs/development/libraries/boost/1.65.nix4
-rw-r--r--pkgs/development/libraries/boost/1.66.nix4
-rw-r--r--pkgs/development/libraries/boost/1.68.nix4
-rw-r--r--pkgs/development/libraries/boost/1.69.nix4
-rw-r--r--pkgs/development/libraries/boost/1.70.nix4
-rw-r--r--pkgs/development/libraries/boost/1.72.nix5
-rw-r--r--pkgs/development/libraries/boost/1.73.nix5
-rw-r--r--pkgs/development/libraries/boost/1.74.nix4
-rw-r--r--pkgs/development/libraries/boost/1.75.nix4
-rw-r--r--pkgs/development/libraries/boost/1.77.nix15
-rw-r--r--pkgs/development/libraries/boost/default.nix1
-rw-r--r--pkgs/development/libraries/boost/generic.nix1
-rw-r--r--pkgs/development/libraries/boringssl/default.nix6
-rw-r--r--pkgs/development/libraries/bzrtp/default.nix4
-rw-r--r--pkgs/development/libraries/capnproto/default.nix10
-rw-r--r--pkgs/development/libraries/ccrtp/default.nix5
-rw-r--r--pkgs/development/libraries/cdk/default.nix8
-rw-r--r--pkgs/development/libraries/cdk/parallel.patch13
-rw-r--r--pkgs/development/libraries/cgreen/default.nix4
-rw-r--r--pkgs/development/libraries/clearsilver/default.nix5
-rw-r--r--pkgs/development/libraries/cloog/0.18.0.nix5
-rw-r--r--pkgs/development/libraries/clucene-core/2.x.nix5
-rw-r--r--pkgs/development/libraries/clucene-core/default.nix5
-rw-r--r--pkgs/development/libraries/cminpack/default.nix5
-rw-r--r--pkgs/development/libraries/codec2/default.nix4
-rw-r--r--pkgs/development/libraries/coeurl/default.nix4
-rw-r--r--pkgs/development/libraries/cpp-utilities/default.nix4
-rw-r--r--pkgs/development/libraries/cpptest/default.nix5
-rw-r--r--pkgs/development/libraries/crypto++/default.nix19
-rw-r--r--pkgs/development/libraries/dbus-glib/default.nix5
-rw-r--r--pkgs/development/libraries/dbus/default.nix25
-rw-r--r--pkgs/development/libraries/dclib/default.nix7
-rw-r--r--pkgs/development/libraries/dclxvi/default.nix3
-rw-r--r--pkgs/development/libraries/dconf/default.nix4
-rw-r--r--pkgs/development/libraries/doctest/default.nix4
-rw-r--r--pkgs/development/libraries/draco/default.nix32
-rw-r--r--pkgs/development/libraries/drogon/default.nix4
-rw-r--r--pkgs/development/libraries/drumstick/default.nix4
-rw-r--r--pkgs/development/libraries/duckdb/default.nix4
-rw-r--r--pkgs/development/libraries/eccodes/default.nix4
-rw-r--r--pkgs/development/libraries/elfio/default.nix34
-rw-r--r--pkgs/development/libraries/elpa/default.nix95
-rw-r--r--pkgs/development/libraries/elpa/pkg-config.patch13
-rw-r--r--pkgs/development/libraries/entt/default.nix5
-rw-r--r--pkgs/development/libraries/epoxy/default.nix41
-rw-r--r--pkgs/development/libraries/ethash/default.nix4
-rw-r--r--pkgs/development/libraries/exiv2/default.nix4
-rw-r--r--pkgs/development/libraries/exosip/default.nix4
-rw-r--r--pkgs/development/libraries/fcft/default.nix6
-rw-r--r--pkgs/development/libraries/flatbuffers/2.0.nix12
-rw-r--r--pkgs/development/libraries/flint/default.nix4
-rw-r--r--pkgs/development/libraries/fltk/1.4.nix6
-rw-r--r--pkgs/development/libraries/fltk/default.nix4
-rw-r--r--pkgs/development/libraries/freealut/default.nix5
-rw-r--r--pkgs/development/libraries/freetds/default.nix4
-rw-r--r--pkgs/development/libraries/gaia/default.nix87
-rw-r--r--pkgs/development/libraries/gamin/default.nix20
-rw-r--r--pkgs/development/libraries/gd/default.nix26
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/default.nix19
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/setup-hook.sh22
-rw-r--r--pkgs/development/libraries/gegl/default.nix4
-rw-r--r--pkgs/development/libraries/getdata/default.nix20
-rw-r--r--pkgs/development/libraries/getdns/default.nix112
-rw-r--r--pkgs/development/libraries/gf2x/default.nix2
-rw-r--r--pkgs/development/libraries/giblib/default.nix5
-rw-r--r--pkgs/development/libraries/giflib/4.1.nix7
-rw-r--r--pkgs/development/libraries/giflib/default.nix5
-rw-r--r--pkgs/development/libraries/gle/default.nix9
-rw-r--r--pkgs/development/libraries/glew/1.10.nix5
-rw-r--r--pkgs/development/libraries/glfw/2.x.nix5
-rw-r--r--pkgs/development/libraries/glfw/3.x.nix8
-rw-r--r--pkgs/development/libraries/glfw/x11.patch18
-rw-r--r--pkgs/development/libraries/glibc/2.33-master.patch.gzbin63411 -> 65714 bytes
-rw-r--r--pkgs/development/libraries/glibc/common.nix4
-rw-r--r--pkgs/development/libraries/glm/default.nix15
-rw-r--r--pkgs/development/libraries/gmp/4.3.2.nix5
-rw-r--r--pkgs/development/libraries/gmp/5.1.x.nix5
-rw-r--r--pkgs/development/libraries/gmp/6.x.nix5
-rw-r--r--pkgs/development/libraries/gnutls/default.nix15
-rw-r--r--pkgs/development/libraries/grantlee/5/default.nix2
-rw-r--r--pkgs/development/libraries/grantlee/default.nix9
-rw-r--r--pkgs/development/libraries/graphene/default.nix14
-rw-r--r--pkgs/development/libraries/grpc/default.nix13
-rw-r--r--pkgs/development/libraries/gsl/default.nix2
-rw-r--r--pkgs/development/libraries/gsl/gsl-1_16.nix12
-rw-r--r--pkgs/development/libraries/gss/default.nix11
-rw-r--r--pkgs/development/libraries/gssdp/default.nix8
-rw-r--r--pkgs/development/libraries/gstreamer/bad/default.nix1
-rw-r--r--pkgs/development/libraries/gtdialog/default.nix45
-rw-r--r--pkgs/development/libraries/gtdialog/default.upstream3
-rw-r--r--pkgs/development/libraries/gtest/default.nix2
-rw-r--r--pkgs/development/libraries/gthree/default.nix4
-rw-r--r--pkgs/development/libraries/gtk-engine-bluecurve/default.nix7
-rw-r--r--pkgs/development/libraries/gtk-engines/default.nix7
-rw-r--r--pkgs/development/libraries/gtk/2.x.nix6
-rw-r--r--pkgs/development/libraries/gtk/3.x.nix4
-rw-r--r--pkgs/development/libraries/gtk/4.x.nix5
-rw-r--r--pkgs/development/libraries/gtkmm/3.x.nix4
-rw-r--r--pkgs/development/libraries/gtkmm/4.x.nix4
-rw-r--r--pkgs/development/libraries/gtksourceviewmm/4.x.nix2
-rw-r--r--pkgs/development/libraries/gtksourceviewmm/default.nix2
-rw-r--r--pkgs/development/libraries/gupnp-igd/default.nix10
-rw-r--r--pkgs/development/libraries/gupnp/default.nix10
-rw-r--r--pkgs/development/libraries/hamlib/4.nix4
-rw-r--r--pkgs/development/libraries/harfbuzz/default.nix4
-rw-r--r--pkgs/development/libraries/hotpatch/default.nix3
-rw-r--r--pkgs/development/libraries/hunspell/dictionaries.nix81
-rw-r--r--pkgs/development/libraries/hwloc/default.nix4
-rw-r--r--pkgs/development/libraries/imgui/default.nix32
-rw-r--r--pkgs/development/libraries/incrtcl/default.nix4
-rw-r--r--pkgs/development/libraries/intel-gmmlib/default.nix4
-rw-r--r--pkgs/development/libraries/intel-media-driver/default.nix7
-rw-r--r--pkgs/development/libraries/intel-media-sdk/default.nix4
-rw-r--r--pkgs/development/libraries/ip2location-c/default.nix4
-rw-r--r--pkgs/development/libraries/irrlicht/mac_device.patch18
-rw-r--r--pkgs/development/libraries/java/commons/bsf/default.nix7
-rw-r--r--pkgs/development/libraries/java/commons/io/default.nix4
-rw-r--r--pkgs/development/libraries/java/commons/logging/default.nix7
-rw-r--r--pkgs/development/libraries/java/commons/math/default.nix2
-rw-r--r--pkgs/development/libraries/java/dbus-java/default.nix17
-rw-r--r--pkgs/development/libraries/java/geoipjava/default.nix8
-rw-r--r--pkgs/development/libraries/java/hsqldb/default.nix4
-rwxr-xr-xpkgs/development/libraries/java/httpunit/builder.sh5
-rw-r--r--pkgs/development/libraries/java/httpunit/default.nix14
-rwxr-xr-xpkgs/development/libraries/java/jdom/builder.sh6
-rw-r--r--pkgs/development/libraries/java/jdom/default.nix14
-rw-r--r--pkgs/development/libraries/java/jflex/default.nix7
-rw-r--r--pkgs/development/libraries/java/libmatthew-java/default.nix8
-rw-r--r--pkgs/development/libraries/java/lombok/default.nix5
-rwxr-xr-xpkgs/development/libraries/java/lucene/builder.sh6
-rw-r--r--pkgs/development/libraries/java/lucene/default.nix10
-rw-r--r--pkgs/development/libraries/java/mockobjects/default.nix9
-rw-r--r--pkgs/development/libraries/java/smack/default.nix9
-rw-r--r--pkgs/development/libraries/jemalloc/common.nix50
-rw-r--r--pkgs/development/libraries/jemalloc/default.nix58
-rw-r--r--pkgs/development/libraries/jemalloc/jemalloc450.nix4
-rw-r--r--pkgs/development/libraries/judy/default.nix6
-rw-r--r--pkgs/development/libraries/kddockwidgets/default.nix4
-rw-r--r--pkgs/development/libraries/kde-frameworks/kdeclarative.nix4
-rw-r--r--pkgs/development/libraries/khronos-ocl-icd-loader/default.nix4
-rw-r--r--pkgs/development/libraries/kimageannotator/default.nix4
-rw-r--r--pkgs/development/libraries/kronosnet/default.nix4
-rw-r--r--pkgs/development/libraries/ldns/default.nix4
-rw-r--r--pkgs/development/libraries/leptonica/default.nix4
-rw-r--r--pkgs/development/libraries/leveldb/default.nix52
-rw-r--r--pkgs/development/libraries/libAfterImage/default.nix10
-rw-r--r--pkgs/development/libraries/libabigail/default.nix6
-rw-r--r--pkgs/development/libraries/libadwaita/default.nix8
-rw-r--r--pkgs/development/libraries/libaec/default.nix4
-rw-r--r--pkgs/development/libraries/libargs/default.nix4
-rw-r--r--pkgs/development/libraries/libavif/default.nix4
-rw-r--r--pkgs/development/libraries/libb64/default.nix6
-rw-r--r--pkgs/development/libraries/libcacard/default.nix11
-rw-r--r--pkgs/development/libraries/libcamera/default.nix7
-rw-r--r--pkgs/development/libraries/libcanberra/default.nix3
-rw-r--r--pkgs/development/libraries/libcdio/default.nix12
-rw-r--r--pkgs/development/libraries/libcint/default.nix7
-rw-r--r--pkgs/development/libraries/libcyaml/default.nix7
-rw-r--r--pkgs/development/libraries/libdeflate/default.nix14
-rw-r--r--pkgs/development/libraries/libdeltachat/default.nix6
-rw-r--r--pkgs/development/libraries/libdevil/default.nix2
-rw-r--r--pkgs/development/libraries/libdrm/default.nix4
-rw-r--r--pkgs/development/libraries/libe-book/default.nix56
-rw-r--r--pkgs/development/libraries/libe-book/default.upstream4
-rw-r--r--pkgs/development/libraries/libepoxy/default.nix74
-rw-r--r--pkgs/development/libraries/libepoxy/libgl-path.patch (renamed from pkgs/development/libraries/epoxy/libgl-path.patch)0
-rw-r--r--pkgs/development/libraries/libexif/default.nix4
-rw-r--r--pkgs/development/libraries/libexttextcat/default.nix4
-rw-r--r--pkgs/development/libraries/libfabric/default.nix4
-rw-r--r--pkgs/development/libraries/libff/default.nix5
-rw-r--r--pkgs/development/libraries/libfilezilla/default.nix4
-rw-r--r--pkgs/development/libraries/libfyaml/default.nix4
-rw-r--r--pkgs/development/libraries/libgbinder/default.nix4
-rw-r--r--pkgs/development/libraries/libgit2-glib/default.nix4
-rw-r--r--pkgs/development/libraries/libgpg-error/default.nix4
-rw-r--r--pkgs/development/libraries/libgphoto2/default.nix41
-rw-r--r--pkgs/development/libraries/libgudev/default.nix13
-rw-r--r--pkgs/development/libraries/libhandy/default.nix32
-rw-r--r--pkgs/development/libraries/libime/default.nix8
-rw-r--r--pkgs/development/libraries/libinfinity/default.nix2
-rw-r--r--pkgs/development/libraries/libinotify-kqueue/default.nix2
-rw-r--r--pkgs/development/libraries/libiodbc/default.nix4
-rw-r--r--pkgs/development/libraries/liblastfm/default.nix2
-rw-r--r--pkgs/development/libraries/liblcf/default.nix2
-rw-r--r--pkgs/development/libraries/liblouis/default.nix4
-rw-r--r--pkgs/development/libraries/liblscp/default.nix4
-rw-r--r--pkgs/development/libraries/libmwaw/default.nix43
-rw-r--r--pkgs/development/libraries/libmwaw/default.upstream4
-rw-r--r--pkgs/development/libraries/libnest2d/default.nix2
-rw-r--r--pkgs/development/libraries/libnetfilter_log/default.nix4
-rw-r--r--pkgs/development/libraries/libnftnl/default.nix6
-rw-r--r--pkgs/development/libraries/libnice/default.nix6
-rw-r--r--pkgs/development/libraries/libnotify/default.nix16
-rw-r--r--pkgs/development/libraries/libodfgen/default.nix44
-rw-r--r--pkgs/development/libraries/libodfgen/default.upstream4
-rw-r--r--pkgs/development/libraries/liboping/default.nix16
-rw-r--r--pkgs/development/libraries/liboping/ncurses-6.3.patch21
-rw-r--r--pkgs/development/libraries/libosmium/default.nix8
-rw-r--r--pkgs/development/libraries/libplacebo/default.nix4
-rw-r--r--pkgs/development/libraries/libplctag/default.nix4
-rw-r--r--pkgs/development/libraries/libpsl/default.nix6
-rw-r--r--pkgs/development/libraries/libqalculate/default.nix4
-rw-r--r--pkgs/development/libraries/libqb/default.nix4
-rw-r--r--pkgs/development/libraries/librevenge/default.nix40
-rw-r--r--pkgs/development/libraries/librevenge/default.upstream4
-rw-r--r--pkgs/development/libraries/librime/default.nix16
-rw-r--r--pkgs/development/libraries/librsb/default.nix2
-rw-r--r--pkgs/development/libraries/librsvg/default.nix3
-rw-r--r--pkgs/development/libraries/libsass/default.nix2
-rw-r--r--pkgs/development/libraries/libsidplayfp/default.nix14
-rw-r--r--pkgs/development/libraries/libsolv/default.nix4
-rw-r--r--pkgs/development/libraries/libspatialaudio/default.nix25
-rw-r--r--pkgs/development/libraries/libspf2/default.nix27
-rw-r--r--pkgs/development/libraries/libspng/default.nix4
-rw-r--r--pkgs/development/libraries/libstatgrab/default.nix4
-rw-r--r--pkgs/development/libraries/libthreadar/default.nix4
-rw-r--r--pkgs/development/libraries/libtiff/default.nix21
-rw-r--r--pkgs/development/libraries/libtiff/rename-version.patch20
-rw-r--r--pkgs/development/libraries/libtorrent-rasterbar/1.1.nix2
-rw-r--r--pkgs/development/libraries/libtorrent-rasterbar/1.2.nix2
-rw-r--r--pkgs/development/libraries/libtorrent-rasterbar/default.nix6
-rw-r--r--pkgs/development/libraries/libtoxcore/default.nix4
-rw-r--r--pkgs/development/libraries/libudev-zero/default.nix38
-rw-r--r--pkgs/development/libraries/libuninameslist/default.nix4
-rw-r--r--pkgs/development/libraries/libunwind/backtrace-only-with-glibc.patch45
-rw-r--r--pkgs/development/libraries/libunwind/default.nix24
-rw-r--r--pkgs/development/libraries/libvdpau/default.nix2
-rw-r--r--pkgs/development/libraries/libviper/default.nix12
-rw-r--r--pkgs/development/libraries/libvncserver/default.nix46
-rw-r--r--pkgs/development/libraries/libwebp/default.nix6
-rw-r--r--pkgs/development/libraries/libwebsockets/default.nix5
-rw-r--r--pkgs/development/libraries/libwpe/fdo.nix4
-rw-r--r--pkgs/development/libraries/libxc/default.nix18
-rw-r--r--pkgs/development/libraries/libxklavier/default.nix12
-rw-r--r--pkgs/development/libraries/libxmlxx/default.nix2
-rw-r--r--pkgs/development/libraries/log4cplus/default.nix4
-rw-r--r--pkgs/development/libraries/lyra/default.nix4
-rw-r--r--pkgs/development/libraries/lzlib/default.nix26
-rw-r--r--pkgs/development/libraries/malcontent/default.nix4
-rw-r--r--pkgs/development/libraries/mdds/default.nix4
-rw-r--r--pkgs/development/libraries/mesa/default.nix7
-rw-r--r--pkgs/development/libraries/movit/default.nix4
-rw-r--r--pkgs/development/libraries/mpich/default.nix4
-rw-r--r--pkgs/development/libraries/mtxclient/default.nix4
-rw-r--r--pkgs/development/libraries/muparserx/default.nix4
-rw-r--r--pkgs/development/libraries/ndn-cxx/default.nix24
-rw-r--r--pkgs/development/libraries/netcdf-fortran/default.nix5
-rw-r--r--pkgs/development/libraries/nghttp3/default.nix34
-rw-r--r--pkgs/development/libraries/ngtcp2/default.nix36
-rw-r--r--pkgs/development/libraries/nix-plugins/default.nix4
-rw-r--r--pkgs/development/libraries/nlopt/default.nix4
-rw-r--r--pkgs/development/libraries/nss/default.nix4
-rw-r--r--pkgs/development/libraries/nsss/default.nix4
-rw-r--r--pkgs/development/libraries/ntirpc/default.nix4
-rw-r--r--pkgs/development/libraries/ntl/default.nix4
-rw-r--r--pkgs/development/libraries/oatpp/default.nix4
-rw-r--r--pkgs/development/libraries/ocl-icd/default.nix5
-rw-r--r--pkgs/development/libraries/odpic/default.nix4
-rw-r--r--pkgs/development/libraries/okapi/default.nix31
-rw-r--r--pkgs/development/libraries/olm/default.nix4
-rw-r--r--pkgs/development/libraries/opencl-clhpp/default.nix4
-rw-r--r--pkgs/development/libraries/opencl-headers/default.nix4
-rw-r--r--pkgs/development/libraries/openfst/default.nix2
-rw-r--r--pkgs/development/libraries/opengrm-ngram/default.nix2
-rw-r--r--pkgs/development/libraries/openh264/default.nix5
-rw-r--r--pkgs/development/libraries/openmpi/default.nix4
-rw-r--r--pkgs/development/libraries/openssl/default.nix5
-rw-r--r--pkgs/development/libraries/openwsman/default.nix4
-rw-r--r--pkgs/development/libraries/osip/default.nix4
-rw-r--r--pkgs/development/libraries/p11-kit/default.nix6
-rw-r--r--pkgs/development/libraries/pango/default.nix20
-rw-r--r--pkgs/development/libraries/pangomm/2.48.nix4
-rw-r--r--pkgs/development/libraries/pcre/default.nix15
-rw-r--r--pkgs/development/libraries/physics/apfel/default.nix4
-rw-r--r--pkgs/development/libraries/physics/cernlib/default.nix43
-rw-r--r--pkgs/development/libraries/physics/geant4/datasets.nix30
-rw-r--r--pkgs/development/libraries/physics/geant4/default.nix18
-rwxr-xr-xpkgs/development/libraries/physics/lhapdf/maintainer.sh6
-rw-r--r--pkgs/development/libraries/physics/yoda/default.nix16
-rw-r--r--pkgs/development/libraries/pipewire/0.2.nix4
-rw-r--r--pkgs/development/libraries/pipewire/default.nix43
-rw-r--r--pkgs/development/libraries/portaudio/default.nix6
-rw-r--r--pkgs/development/libraries/ptex/default.nix4
-rw-r--r--pkgs/development/libraries/qca-qt5/default.nix8
-rw-r--r--pkgs/development/libraries/qgnomeplatform/default.nix4
-rw-r--r--pkgs/development/libraries/qrencode/default.nix2
-rw-r--r--pkgs/development/libraries/qt-4.x/4.8/default.nix12
-rw-r--r--pkgs/development/libraries/qt-5/5.12/default.nix23
-rw-r--r--pkgs/development/libraries/qt-5/5.14/default.nix11
-rw-r--r--pkgs/development/libraries/qt-5/5.15/default.nix21
-rw-r--r--pkgs/development/libraries/qt-5/5.15/qtwebkit-darwin-no-readline.patch15
-rw-r--r--pkgs/development/libraries/qt-5/5.15/srcs.nix6
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtbase.nix11
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtgamepad.nix5
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtwebengine.nix8
-rw-r--r--pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix4
-rw-r--r--pkgs/development/libraries/qtstyleplugin-kvantum/default.nix5
-rw-r--r--pkgs/development/libraries/qtutilities/default.nix4
-rw-r--r--pkgs/development/libraries/quazip/default.nix4
-rw-r--r--pkgs/development/libraries/quictls/default.nix170
-rw-r--r--pkgs/development/libraries/rdkafka/default.nix4
-rw-r--r--pkgs/development/libraries/re2/default.nix13
-rw-r--r--pkgs/development/libraries/relibc/default.nix2
-rw-r--r--pkgs/development/libraries/restinio/default.nix4
-rw-r--r--pkgs/development/libraries/retro-gtk/default.nix4
-rw-r--r--pkgs/development/libraries/rocclr/default.nix41
-rw-r--r--pkgs/development/libraries/rocksdb/default.nix4
-rw-r--r--pkgs/development/libraries/rocm-comgr/default.nix4
-rw-r--r--pkgs/development/libraries/rocm-device-libs/default.nix4
-rw-r--r--pkgs/development/libraries/rocm-opencl-runtime/default.nix20
-rw-r--r--pkgs/development/libraries/rocm-runtime/default.nix4
-rw-r--r--pkgs/development/libraries/rocm-thunk/default.nix7
-rw-r--r--pkgs/development/libraries/s2n-tls/default.nix13
-rw-r--r--pkgs/development/libraries/science/astronomy/cfitsio/default.nix2
-rw-r--r--pkgs/development/libraries/science/astronomy/indilib/default.nix4
-rw-r--r--pkgs/development/libraries/science/astronomy/indilib/indi-full.nix4
-rw-r--r--pkgs/development/libraries/science/biology/bicgl/default.nix12
-rw-r--r--pkgs/development/libraries/science/chemistry/cppe/default.nix26
-rw-r--r--pkgs/development/libraries/science/chemistry/xcfun/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/openblas/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/petsc/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/primecount/default.nix25
-rw-r--r--pkgs/development/libraries/science/math/primesieve/default.nix4
-rw-r--r--pkgs/development/libraries/sentry-native/default.nix4
-rw-r--r--pkgs/development/libraries/simdjson/default.nix4
-rw-r--r--pkgs/development/libraries/simpleitk/default.nix8
-rw-r--r--pkgs/development/libraries/skalibs/default.nix4
-rw-r--r--pkgs/development/libraries/slib/setup-hook.sh10
-rw-r--r--pkgs/development/libraries/snappy/default.nix8
-rw-r--r--pkgs/development/libraries/sope/default.nix4
-rw-r--r--pkgs/development/libraries/spdk/default.nix21
-rw-r--r--pkgs/development/libraries/spdk/ncurses-6.3.patch48
-rw-r--r--pkgs/development/libraries/spdk/spdk-dpdk-meson.patch17
-rw-r--r--pkgs/development/libraries/spglib/default.nix4
-rw-r--r--pkgs/development/libraries/spice-gtk/default.nix4
-rw-r--r--pkgs/development/libraries/spice/default.nix13
-rw-r--r--pkgs/development/libraries/sqlite/default.nix4
-rw-r--r--pkgs/development/libraries/sqlite/tools.nix4
-rw-r--r--pkgs/development/libraries/stfl/default.nix15
-rw-r--r--pkgs/development/libraries/t1lib/default.nix7
-rw-r--r--pkgs/development/libraries/tclap/default.nix4
-rw-r--r--pkgs/development/libraries/tdb/default.nix4
-rw-r--r--pkgs/development/libraries/tdlib/default.nix8
-rw-r--r--pkgs/development/libraries/tecla/default.nix5
-rw-r--r--pkgs/development/libraries/telepathy/qt/default.nix22
-rw-r--r--pkgs/development/libraries/termcolor/default.nix37
-rw-r--r--pkgs/development/libraries/tkrzw/default.nix4
-rw-r--r--pkgs/development/libraries/tokyo-tyrant/default.nix9
-rw-r--r--pkgs/development/libraries/tracker/default.nix12
-rw-r--r--pkgs/development/libraries/tremor/default.nix3
-rw-r--r--pkgs/development/libraries/trompeloeil/default.nix4
-rw-r--r--pkgs/development/libraries/tsocks/default.nix2
-rw-r--r--pkgs/development/libraries/ucl/default.nix8
-rw-r--r--pkgs/development/libraries/ucx/default.nix24
-rw-r--r--pkgs/development/libraries/uhttpmock/default.nix6
-rw-r--r--pkgs/development/libraries/uid_wrapper/default.nix7
-rw-r--r--pkgs/development/libraries/umockdev/default.nix4
-rw-r--r--pkgs/development/libraries/unicorn/default.nix4
-rw-r--r--pkgs/development/libraries/usbredir/default.nix4
-rw-r--r--pkgs/development/libraries/ustr/default.nix2
-rw-r--r--pkgs/development/libraries/utf8proc/default.nix12
-rw-r--r--pkgs/development/libraries/utmps/default.nix4
-rw-r--r--pkgs/development/libraries/v8/plv8_6_x.nix189
-rw-r--r--pkgs/development/libraries/virglrenderer/default.nix4
-rw-r--r--pkgs/development/libraries/wayland/default.nix1
-rw-r--r--pkgs/development/libraries/wayland/protocols.nix4
-rw-r--r--pkgs/development/libraries/webkitgtk/default.nix8
-rw-r--r--pkgs/development/libraries/webrtc-audio-processing/default.nix5
-rw-r--r--pkgs/development/libraries/wlroots/protocols.nix47
-rw-r--r--pkgs/development/libraries/wt/default.nix12
-rw-r--r--pkgs/development/libraries/xml-security-c/default.nix4
-rw-r--r--pkgs/development/libraries/zlib-ng/default.nix4
-rw-r--r--pkgs/development/libraries/zydis/default.nix17
-rw-r--r--pkgs/development/lisp-modules/asdf/2.26.nix34
-rw-r--r--pkgs/development/lisp-modules/asdf/3.1.nix36
-rw-r--r--pkgs/development/lisp-modules/asdf/default.nix37
-rw-r--r--pkgs/development/lisp-modules/asdf/default.upstream2
-rwxr-xr-xpkgs/development/lisp-modules/clwrapper/cl-wrapper.sh70
-rwxr-xr-xpkgs/development/lisp-modules/from-quicklisp/asdf-description.sh4
-rwxr-xr-xpkgs/development/lisp-modules/from-quicklisp/barebones-quicklisp-expression.sh6
-rw-r--r--pkgs/development/lisp-modules/lisp-packages.nix18
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/alexandria.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/anaphora.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-form-types.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-l10n.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-qrencode.nix30
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-shellwords.nix29
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-webkit2.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/cl_plus_ssl.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-socket.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/clack.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/closer-mop.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/dexador.nix28
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/djula.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/enchant.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/fiveam.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_common-lisp.nix29
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_common.nix37
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_def.nix36
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_def_plus_swank.nix37
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_defclass-star.nix27
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def.nix37
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def_plus_swank.nix43
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_stefil_plus_swank.nix34
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/hunchensocket.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-component.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-middleware-backtrace.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-util.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/lack.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/lift.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/log4cl.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/mgl-pax.nix29
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/named-readtables.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/nibbles.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/osicat.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/postmodern.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/rove.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sql.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/serapeum.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/spinneret.nix67
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/static-dispatch.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/stumpwm.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-features.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-utf-8.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/uax-15.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/vas-string-metrics.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-output/woo.nix14
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix12
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt3
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix.nix190
-rw-r--r--pkgs/development/lisp-modules/quicklisp-to-nix/system-info.lisp5
-rw-r--r--pkgs/development/lua-modules/generated-packages.nix129
-rw-r--r--pkgs/development/misc/haskell/hasura/graphql-engine.nix4
-rw-r--r--pkgs/development/mobile/imgpatchtools/default.nix2
-rw-r--r--pkgs/development/mobile/titaniumenv/titaniumsdk-7.5.nix27
-rw-r--r--pkgs/development/mobile/titaniumenv/titaniumsdk-8.2.nix27
-rw-r--r--pkgs/development/mobile/titaniumenv/titaniumsdk-8.3.nix27
-rw-r--r--pkgs/development/nim-packages/build-nim-package/default.nix2
-rw-r--r--pkgs/development/nim-packages/nim_builder/nim_builder.nim19
-rw-r--r--pkgs/development/nim-packages/python/default.nix25
-rw-r--r--pkgs/development/nim-packages/snappy/default.nix1
-rw-r--r--pkgs/development/nim-packages/spry/default.nix6
-rw-r--r--pkgs/development/nim-packages/spry/python.patch43
-rw-r--r--pkgs/development/node-packages/composition.nix2
-rw-r--r--pkgs/development/node-packages/default.nix16
-rwxr-xr-xpkgs/development/node-packages/generate.sh13
-rw-r--r--pkgs/development/node-packages/node-packages.json6
-rw-r--r--pkgs/development/node-packages/node-packages.nix13122
-rw-r--r--pkgs/development/ocaml-modules/awa/default.nix11
-rw-r--r--pkgs/development/ocaml-modules/batteries/default.nix18
-rw-r--r--pkgs/development/ocaml-modules/bin_prot/default.nix28
-rw-r--r--pkgs/development/ocaml-modules/bitv/default.nix12
-rw-r--r--pkgs/development/ocaml-modules/bolt/default.nix13
-rw-r--r--pkgs/development/ocaml-modules/ca-certs-nss/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/calendar/default.nix18
-rw-r--r--pkgs/development/ocaml-modules/cil/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/comparelib/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/conduit/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/config-file/default.nix9
-rw-r--r--pkgs/development/ocaml-modules/containers/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/cryptokit/default.nix12
-rw-r--r--pkgs/development/ocaml-modules/csv/1.5.nix10
-rw-r--r--pkgs/development/ocaml-modules/ctypes/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/dolmen/default.nix3
-rw-r--r--pkgs/development/ocaml-modules/dolog/default.nix19
-rw-r--r--pkgs/development/ocaml-modules/easy-format/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/eliom/default.nix39
-rw-r--r--pkgs/development/ocaml-modules/enumerate/default.nix9
-rw-r--r--pkgs/development/ocaml-modules/erm_xml/default.nix19
-rw-r--r--pkgs/development/ocaml-modules/estring/default.nix21
-rw-r--r--pkgs/development/ocaml-modules/faillib/default.nix28
-rw-r--r--pkgs/development/ocaml-modules/fieldslib/default.nix29
-rw-r--r--pkgs/development/ocaml-modules/fontconfig/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/fpath/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/graphics/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/herelib/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/higlo/default.nix24
-rw-r--r--pkgs/development/ocaml-modules/higlo/install.patch14
-rw-r--r--pkgs/development/ocaml-modules/inifiles/default.nix17
-rw-r--r--pkgs/development/ocaml-modules/iri/default.nix24
-rw-r--r--pkgs/development/ocaml-modules/iso8601/default.nix19
-rw-r--r--pkgs/development/ocaml-modules/iter/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/janestreet/async-rpc-kernel.nix18
-rw-r--r--pkgs/development/ocaml-modules/janestreet/bin_prot.nix17
-rw-r--r--pkgs/development/ocaml-modules/janestreet/buildOcamlJane.nix35
-rw-r--r--pkgs/development/ocaml-modules/janestreet/core_bench.nix20
-rw-r--r--pkgs/development/ocaml-modules/janestreet/fieldslib.nix19
-rw-r--r--pkgs/development/ocaml-modules/janestreet/js-build-tools-darwin.patch11
-rw-r--r--pkgs/development/ocaml-modules/janestreet/js-build-tools.nix31
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-assert.nix16
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-bench.nix18
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-bin-prot.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-compare.nix15
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-custom-printf.nix15
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-enumerate.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-expect.nix19
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-fields-conv.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-here.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-inline-test.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-jane.nix22
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-let.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-optcomp.nix15
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-pipebang.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-sexp-conv.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-sexp-message.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-sexp-value.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-typerep-conv.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/ppx-variants-conv.nix14
-rw-r--r--pkgs/development/ocaml-modules/janestreet/sexplib.nix18
-rw-r--r--pkgs/development/ocaml-modules/janestreet/typerep.nix20
-rw-r--r--pkgs/development/ocaml-modules/janestreet/variantslib.nix19
-rw-r--r--pkgs/development/ocaml-modules/javalib/default.nix22
-rw-r--r--pkgs/development/ocaml-modules/lablgl/default.nix34
-rw-r--r--pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix10
-rw-r--r--pkgs/development/ocaml-modules/lablgtk-extras/default.nix14
-rw-r--r--pkgs/development/ocaml-modules/letsencrypt/app.nix2
-rw-r--r--pkgs/development/ocaml-modules/letsencrypt/default.nix12
-rw-r--r--pkgs/development/ocaml-modules/lwt/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/lwt_ssl/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/macaque/default.nix18
-rw-r--r--pkgs/development/ocaml-modules/magick/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/markup/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/mdx/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/menhir/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/menhir/lib.nix4
-rw-r--r--pkgs/development/ocaml-modules/mirage-crypto/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/mirage-crypto/pk.nix4
-rw-r--r--pkgs/development/ocaml-modules/mirage/runtime.nix4
-rw-r--r--pkgs/development/ocaml-modules/ocaml-lsp/default.nix5
-rw-r--r--pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix12
-rw-r--r--pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.x.nix6
-rw-r--r--pkgs/development/ocaml-modules/ocb-stubblr/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/ocf/default.nix33
-rw-r--r--pkgs/development/ocaml-modules/ocf/ppx.nix14
-rw-r--r--pkgs/development/ocaml-modules/ocplib-endian/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-deriving/default.nix50
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-start/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocurl/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/odn/default.nix16
-rw-r--r--pkgs/development/ocaml-modules/omd/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/optcomp/META12
-rw-r--r--pkgs/development/ocaml-modules/optcomp/default.nix47
-rw-r--r--pkgs/development/ocaml-modules/otr/default.nix12
-rw-r--r--pkgs/development/ocaml-modules/pa_bench/default.nix23
-rw-r--r--pkgs/development/ocaml-modules/pa_ounit/default.nix24
-rw-r--r--pkgs/development/ocaml-modules/paf/default.nix18
-rw-r--r--pkgs/development/ocaml-modules/paf/le.nix2
-rw-r--r--pkgs/development/ocaml-modules/parany/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/pipebang/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/pycaml/default.nix13
-rw-r--r--pkgs/development/ocaml-modules/react/default.nix11
-rw-r--r--pkgs/development/ocaml-modules/reactivedata/default.nix18
-rw-r--r--pkgs/development/ocaml-modules/seq/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/sha/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/tls/async.nix3
-rw-r--r--pkgs/development/ocaml-modules/tls/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/type_conv/108.08.00.nix15
-rw-r--r--pkgs/development/ocaml-modules/type_conv/109.60.01.nix15
-rw-r--r--pkgs/development/ocaml-modules/typerep/default.nix25
-rw-r--r--pkgs/development/ocaml-modules/uchar/default.nix9
-rw-r--r--pkgs/development/ocaml-modules/variantslib/default.nix28
-rw-r--r--pkgs/development/ocaml-modules/wayland/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/x509/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/xtmpl/default.nix30
-rw-r--r--pkgs/development/ocaml-modules/xtmpl/jsoo.patch26
-rw-r--r--pkgs/development/ocaml-modules/xtmpl/ppx.nix14
-rw-r--r--pkgs/development/ocaml-modules/yaml/default.nix6
-rw-r--r--pkgs/development/octave-modules/arduino/default.nix5
-rw-r--r--pkgs/development/octave-modules/gsl/default.nix4
-rw-r--r--pkgs/development/octave-modules/level-set/default.nix3
-rw-r--r--pkgs/development/octave-modules/ocl/default.nix3
-rw-r--r--pkgs/development/octave-modules/strings/default.nix3
-rw-r--r--pkgs/development/octave-modules/tisean/default.nix3
-rw-r--r--pkgs/development/octave-modules/video/default.nix3
-rwxr-xr-xpkgs/development/perl-modules/expression-generator/filtered-requirements.sh12
-rwxr-xr-xpkgs/development/perl-modules/expression-generator/full-requirements.sh18
-rwxr-xr-xpkgs/development/perl-modules/expression-generator/grab-url.sh13
-rw-r--r--pkgs/development/perl-modules/expression-generator/lib-cache.sh21
-rwxr-xr-xpkgs/development/perl-modules/expression-generator/requirements.sh12
-rwxr-xr-xpkgs/development/perl-modules/expression-generator/retrieve-file-link.sh8
-rwxr-xr-xpkgs/development/perl-modules/expression-generator/retrieve-meta-yaml.sh8
-rwxr-xr-xpkgs/development/perl-modules/expression-generator/source-download-link.sh10
-rwxr-xr-xpkgs/development/perl-modules/expression-generator/write-nix-expression.sh20
-rw-r--r--pkgs/development/php-packages/apcu/default.nix4
-rw-r--r--pkgs/development/php-packages/ast/default.nix4
-rw-r--r--pkgs/development/php-packages/composer/default.nix4
-rw-r--r--pkgs/development/php-packages/couchbase/default.nix4
-rw-r--r--pkgs/development/php-packages/event/default.nix4
-rw-r--r--pkgs/development/php-packages/gnupg/default.nix37
-rw-r--r--pkgs/development/php-packages/igbinary/default.nix4
-rw-r--r--pkgs/development/php-packages/imagick/default.nix4
-rw-r--r--pkgs/development/php-packages/mailparse/default.nix4
-rw-r--r--pkgs/development/php-packages/maxminddb/default.nix4
-rw-r--r--pkgs/development/php-packages/mongodb/default.nix4
-rw-r--r--pkgs/development/php-packages/pcov/default.nix4
-rw-r--r--pkgs/development/php-packages/php-cs-fixer/default.nix4
-rw-r--r--pkgs/development/php-packages/phpstan/default.nix4
-rw-r--r--pkgs/development/php-packages/protobuf/default.nix4
-rw-r--r--pkgs/development/php-packages/psalm/default.nix6
-rw-r--r--pkgs/development/php-packages/psysh/default.nix4
-rw-r--r--pkgs/development/php-packages/rdkafka/default.nix4
-rw-r--r--pkgs/development/php-packages/redis/default.nix4
-rw-r--r--pkgs/development/php-packages/swoole/default.nix4
-rw-r--r--pkgs/development/php-packages/xdebug/default.nix4
-rw-r--r--pkgs/development/php-packages/yaml/default.nix4
-rw-r--r--pkgs/development/python-modules/Mako/default.nix4
-rw-r--r--pkgs/development/python-modules/Markups/default.nix4
-rw-r--r--pkgs/development/python-modules/Nikola/default.nix4
-rw-r--r--pkgs/development/python-modules/ROPGadget/default.nix21
-rw-r--r--pkgs/development/python-modules/absl-py/default.nix4
-rw-r--r--pkgs/development/python-modules/actdiag/default.nix42
-rw-r--r--pkgs/development/python-modules/adafruit-platformdetect/default.nix4
-rw-r--r--pkgs/development/python-modules/adal/default.nix2
-rw-r--r--pkgs/development/python-modules/adblock/default.nix49
-rw-r--r--pkgs/development/python-modules/adjusttext/default.nix23
-rw-r--r--pkgs/development/python-modules/afdko/default.nix58
-rw-r--r--pkgs/development/python-modules/afdko/no-pypi-build-tools.patch24
-rw-r--r--pkgs/development/python-modules/afdko/use-dynamic-system-antlr4-runtime.patch43
-rw-r--r--pkgs/development/python-modules/ailment/default.nix4
-rw-r--r--pkgs/development/python-modules/aioambient/default.nix4
-rw-r--r--pkgs/development/python-modules/aiobroadlink/default.nix37
-rw-r--r--pkgs/development/python-modules/aiocoap/default.nix10
-rw-r--r--pkgs/development/python-modules/aiocron/default.nix5
-rw-r--r--pkgs/development/python-modules/aiocurrencylayer/default.nix50
-rw-r--r--pkgs/development/python-modules/aioesphomeapi/default.nix4
-rw-r--r--pkgs/development/python-modules/aiofiles/default.nix14
-rw-r--r--pkgs/development/python-modules/aioflo/default.nix21
-rw-r--r--pkgs/development/python-modules/aioftp/default.nix36
-rw-r--r--pkgs/development/python-modules/aiohomekit/default.nix11
-rw-r--r--pkgs/development/python-modules/aiohttp-apispec/unstable.nix37
-rw-r--r--pkgs/development/python-modules/aiohttp-socks/default.nix5
-rw-r--r--pkgs/development/python-modules/aiohttp-wsgi/default.nix6
-rw-r--r--pkgs/development/python-modules/aiohttp/default.nix44
-rw-r--r--pkgs/development/python-modules/aiohue/default.nix6
-rw-r--r--pkgs/development/python-modules/aiojobs/default.nix21
-rw-r--r--pkgs/development/python-modules/aiomusiccast/default.nix4
-rw-r--r--pkgs/development/python-modules/aionanoleaf/default.nix9
-rw-r--r--pkgs/development/python-modules/aionotify/default.nix2
-rw-r--r--pkgs/development/python-modules/aiopulse/default.nix12
-rw-r--r--pkgs/development/python-modules/aiopvapi/default.nix24
-rw-r--r--pkgs/development/python-modules/aiopvpc/default.nix4
-rw-r--r--pkgs/development/python-modules/aiosenz/default.nix42
-rw-r--r--pkgs/development/python-modules/aioshelly/default.nix13
-rw-r--r--pkgs/development/python-modules/aiostream/default.nix4
-rw-r--r--pkgs/development/python-modules/aioymaps/default.nix4
-rw-r--r--pkgs/development/python-modules/airthings-cloud/default.nix8
-rw-r--r--pkgs/development/python-modules/allure-pytest/default.nix80
-rw-r--r--pkgs/development/python-modules/allure-python-commons-test/default.nix45
-rw-r--r--pkgs/development/python-modules/allure-python-commons/default.nix43
-rw-r--r--pkgs/development/python-modules/amazon_kclpy/default.nix4
-rw-r--r--pkgs/development/python-modules/androguard/default.nix11
-rw-r--r--pkgs/development/python-modules/angr/default.nix7
-rw-r--r--pkgs/development/python-modules/angrcli/default.nix10
-rw-r--r--pkgs/development/python-modules/angrop/default.nix4
-rw-r--r--pkgs/development/python-modules/ansible-lint/default.nix6
-rw-r--r--pkgs/development/python-modules/ansible-runner/default.nix4
-rw-r--r--pkgs/development/python-modules/ansible/base.nix4
-rw-r--r--pkgs/development/python-modules/ansible/core.nix8
-rw-r--r--pkgs/development/python-modules/anyio/default.nix4
-rw-r--r--pkgs/development/python-modules/aocd/default.nix58
-rw-r--r--pkgs/development/python-modules/apache-airflow/default.nix2
-rw-r--r--pkgs/development/python-modules/apispec/3.nix47
-rw-r--r--pkgs/development/python-modules/apprise/default.nix4
-rw-r--r--pkgs/development/python-modules/aprslib/default.nix4
-rw-r--r--pkgs/development/python-modules/apsw/default.nix45
-rw-r--r--pkgs/development/python-modules/apycula/default.nix4
-rw-r--r--pkgs/development/python-modules/archinfo/default.nix4
-rw-r--r--pkgs/development/python-modules/argh/default.nix32
-rw-r--r--pkgs/development/python-modules/arrow/default.nix4
-rw-r--r--pkgs/development/python-modules/ascii-magic/default.nix36
-rw-r--r--pkgs/development/python-modules/ase/default.nix4
-rw-r--r--pkgs/development/python-modules/astroid/default.nix23
-rw-r--r--pkgs/development/python-modules/async-upnp-client/default.nix4
-rw-r--r--pkgs/development/python-modules/async_stagger/default.nix11
-rw-r--r--pkgs/development/python-modules/async_timeout/default.nix13
-rw-r--r--pkgs/development/python-modules/asyncio-nats-client/default.nix4
-rw-r--r--pkgs/development/python-modules/asyncio-rlock/default.nix28
-rw-r--r--pkgs/development/python-modules/asyncmy/default.nix42
-rw-r--r--pkgs/development/python-modules/asyncpg/default.nix4
-rw-r--r--pkgs/development/python-modules/atom/default.nix4
-rw-r--r--pkgs/development/python-modules/atomman/default.nix4
-rw-r--r--pkgs/development/python-modules/aubio/default.nix4
-rw-r--r--pkgs/development/python-modules/authcaptureproxy/default.nix4
-rw-r--r--pkgs/development/python-modules/autobahn/default.nix14
-rw-r--r--pkgs/development/python-modules/autoit-ripper/default.nix20
-rw-r--r--pkgs/development/python-modules/automate-home/default.nix56
-rw-r--r--pkgs/development/python-modules/autopep8/default.nix4
-rw-r--r--pkgs/development/python-modules/av/default.nix4
-rw-r--r--pkgs/development/python-modules/avro/default.nix46
-rw-r--r--pkgs/development/python-modules/awesomeversion/default.nix17
-rw-r--r--pkgs/development/python-modules/awkward/default.nix4
-rw-r--r--pkgs/development/python-modules/aws-lambda-builders/default.nix4
-rw-r--r--pkgs/development/python-modules/aws-sam-translator/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-core/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-eventgrid/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-keyvault/default.nix5
-rw-r--r--pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-containerservice/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-datafactory/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-keyvault/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-redis/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-servicelinker/default.nix36
-rw-r--r--pkgs/development/python-modules/azure-mgmt-subscription/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-storage-blob/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-synapse-artifacts/default.nix4
-rw-r--r--pkgs/development/python-modules/b2sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/baron/default.nix4
-rw-r--r--pkgs/development/python-modules/bellows/default.nix11
-rw-r--r--pkgs/development/python-modules/bids-validator/default.nix4
-rw-r--r--pkgs/development/python-modules/bimmer-connected/default.nix10
-rw-r--r--pkgs/development/python-modules/bitlist/default.nix14
-rw-r--r--pkgs/development/python-modules/bitstruct/default.nix4
-rw-r--r--pkgs/development/python-modules/blinkpy/default.nix4
-rw-r--r--pkgs/development/python-modules/blockdiag/default.nix52
-rw-r--r--pkgs/development/python-modules/blspy/default.nix17
-rw-r--r--pkgs/development/python-modules/blspy/dont_fetch_dependencies.patch14
-rw-r--r--pkgs/development/python-modules/bokeh/default.nix4
-rw-r--r--pkgs/development/python-modules/boschshcpy/default.nix10
-rw-r--r--pkgs/development/python-modules/boto3/default.nix4
-rw-r--r--pkgs/development/python-modules/botocore/default.nix4
-rw-r--r--pkgs/development/python-modules/bpython/clipboard-make-which-substitutable.patch27
-rw-r--r--pkgs/development/python-modules/bpython/default.nix26
-rw-r--r--pkgs/development/python-modules/braintree/default.nix4
-rw-r--r--pkgs/development/python-modules/brelpy/default.nix38
-rw-r--r--pkgs/development/python-modules/brother-ql/default.nix37
-rw-r--r--pkgs/development/python-modules/buienradar/default.nix7
-rw-r--r--pkgs/development/python-modules/build/default.nix36
-rw-r--r--pkgs/development/python-modules/buildbot/default.nix19
-rw-r--r--pkgs/development/python-modules/buildbot/pkg.nix2
-rw-r--r--pkgs/development/python-modules/buildbot/plugins.nix10
-rw-r--r--pkgs/development/python-modules/buildbot/worker.nix2
-rw-r--r--pkgs/development/python-modules/buildout-nix/default.nix22
-rw-r--r--pkgs/development/python-modules/buildout-nix/nix.patch28
-rw-r--r--pkgs/development/python-modules/bumps/default.nix4
-rw-r--r--pkgs/development/python-modules/bx-python/default.nix8
-rw-r--r--pkgs/development/python-modules/caldav/default.nix20
-rw-r--r--pkgs/development/python-modules/capstone/default.nix2
-rw-r--r--pkgs/development/python-modules/cart/default.nix47
-rw-r--r--pkgs/development/python-modules/cartopy/default.nix4
-rw-r--r--pkgs/development/python-modules/casbin/default.nix4
-rw-r--r--pkgs/development/python-modules/castepxbin/default.nix4
-rw-r--r--pkgs/development/python-modules/celery/default.nix97
-rw-r--r--pkgs/development/python-modules/cement/default.nix21
-rw-r--r--pkgs/development/python-modules/certbot/default.nix4
-rw-r--r--pkgs/development/python-modules/certifi/default.nix2
-rw-r--r--pkgs/development/python-modules/certifi/python2.nix2
-rw-r--r--pkgs/development/python-modules/cffi/default.nix31
-rw-r--r--pkgs/development/python-modules/cfn-lint/default.nix9
-rw-r--r--pkgs/development/python-modules/chalice/default.nix7
-rw-r--r--pkgs/development/python-modules/channels-redis/default.nix4
-rw-r--r--pkgs/development/python-modules/charset-normalizer/default.nix4
-rw-r--r--pkgs/development/python-modules/chart-studio/default.nix4
-rw-r--r--pkgs/development/python-modules/chess/default.nix4
-rw-r--r--pkgs/development/python-modules/circuitbreaker/default.nix38
-rw-r--r--pkgs/development/python-modules/claripy/default.nix4
-rw-r--r--pkgs/development/python-modules/cle/default.nix4
-rw-r--r--pkgs/development/python-modules/click-repl/default.nix27
-rw-r--r--pkgs/development/python-modules/clickgen/default.nix45
-rw-r--r--pkgs/development/python-modules/clickhouse-driver/default.nix6
-rw-r--r--pkgs/development/python-modules/cliff/default.nix4
-rw-r--r--pkgs/development/python-modules/cloudsmith-api/default.nix4
-rw-r--r--pkgs/development/python-modules/cloudsplaining/default.nix4
-rw-r--r--pkgs/development/python-modules/cmd2/default.nix4
-rw-r--r--pkgs/development/python-modules/cocotb/default.nix4
-rw-r--r--pkgs/development/python-modules/cogapp/default.nix4
-rw-r--r--pkgs/development/python-modules/colorcet/default.nix4
-rw-r--r--pkgs/development/python-modules/colorclass/default.nix4
-rw-r--r--pkgs/development/python-modules/cometblue-lite/default.nix39
-rw-r--r--pkgs/development/python-modules/configparser/default.nix4
-rw-r--r--pkgs/development/python-modules/construct/2.10.54.nix15
-rw-r--r--pkgs/development/python-modules/cppe/default.nix54
-rw-r--r--pkgs/development/python-modules/cpyparsing/default.nix6
-rw-r--r--pkgs/development/python-modules/crccheck/default.nix4
-rw-r--r--pkgs/development/python-modules/crownstone-sse/default.nix6
-rw-r--r--pkgs/development/python-modules/cryptography/default.nix4
-rw-r--r--pkgs/development/python-modules/crytic-compile/default.nix4
-rw-r--r--pkgs/development/python-modules/cssselect2/default.nix14
-rw-r--r--pkgs/development/python-modules/curtsies/default.nix4
-rw-r--r--pkgs/development/python-modules/cvxpy/default.nix4
-rw-r--r--pkgs/development/python-modules/cwcwidth/default.nix9
-rw-r--r--pkgs/development/python-modules/cx_freeze/default.nix4
-rw-r--r--pkgs/development/python-modules/cx_oracle/default.nix4
-rw-r--r--pkgs/development/python-modules/cycler/default.nix4
-rw-r--r--pkgs/development/python-modules/cyclonedx-python-lib/default.nix4
-rw-r--r--pkgs/development/python-modules/cysignals/default.nix7
-rw-r--r--pkgs/development/python-modules/cytoolz/default.nix16
-rw-r--r--pkgs/development/python-modules/dask-image/default.nix4
-rw-r--r--pkgs/development/python-modules/dask-ml/default.nix4
-rw-r--r--pkgs/development/python-modules/dask-mpi/default.nix4
-rw-r--r--pkgs/development/python-modules/databricks-connect/default.nix4
-rw-r--r--pkgs/development/python-modules/datamodeldict/default.nix4
-rw-r--r--pkgs/development/python-modules/datasets/default.nix4
-rw-r--r--pkgs/development/python-modules/datasette/default.nix8
-rw-r--r--pkgs/development/python-modules/datashader/default.nix20
-rw-r--r--pkgs/development/python-modules/datatable/default.nix5
-rw-r--r--pkgs/development/python-modules/dbus/default.nix4
-rw-r--r--pkgs/development/python-modules/dbutils/default.nix4
-rw-r--r--pkgs/development/python-modules/debugpy/default.nix3
-rw-r--r--pkgs/development/python-modules/deemix/default.nix4
-rw-r--r--pkgs/development/python-modules/deep-translator/default.nix33
-rw-r--r--pkgs/development/python-modules/deepdish/default.nix41
-rw-r--r--pkgs/development/python-modules/deepmerge/default.nix6
-rw-r--r--pkgs/development/python-modules/deezer-py/default.nix4
-rw-r--r--pkgs/development/python-modules/deezer-python/default.nix4
-rw-r--r--pkgs/development/python-modules/defcon/default.nix4
-rw-r--r--pkgs/development/python-modules/detect-secrets/default.nix16
-rw-r--r--pkgs/development/python-modules/devolo-plc-api/default.nix4
-rw-r--r--pkgs/development/python-modules/digi-xbee/default.nix4
-rw-r--r--pkgs/development/python-modules/dingz/default.nix43
-rw-r--r--pkgs/development/python-modules/discordpy/default.nix13
-rw-r--r--pkgs/development/python-modules/diskcache/default.nix9
-rw-r--r--pkgs/development/python-modules/distributed/default.nix9
-rw-r--r--pkgs/development/python-modules/django-configurations/default.nix47
-rw-r--r--pkgs/development/python-modules/django-csp/default.nix4
-rw-r--r--pkgs/development/python-modules/django-formtools/default.nix29
-rw-r--r--pkgs/development/python-modules/django-ipware/default.nix4
-rw-r--r--pkgs/development/python-modules/django-jinja2/default.nix4
-rw-r--r--pkgs/development/python-modules/django-prometheus/default.nix2
-rw-r--r--pkgs/development/python-modules/django-redis/default.nix42
-rw-r--r--pkgs/development/python-modules/django-rq/default.nix4
-rw-r--r--pkgs/development/python-modules/django-sites/default.nix47
-rw-r--r--pkgs/development/python-modules/django-statici18n/default.nix4
-rw-r--r--pkgs/development/python-modules/django_compressor/default.nix10
-rw-r--r--pkgs/development/python-modules/django_reversion/default.nix4
-rw-r--r--pkgs/development/python-modules/djangoql/default.nix4
-rw-r--r--pkgs/development/python-modules/djangorestframework-simplejwt/default.nix4
-rw-r--r--pkgs/development/python-modules/dm-tree/default.nix47
-rw-r--r--pkgs/development/python-modules/doc8/default.nix39
-rw-r--r--pkgs/development/python-modules/docstring-to-markdown/default.nix4
-rw-r--r--pkgs/development/python-modules/dotmap/default.nix4
-rw-r--r--pkgs/development/python-modules/dropbox/default.nix4
-rw-r--r--pkgs/development/python-modules/dsmr-parser/default.nix12
-rw-r--r--pkgs/development/python-modules/easy-thumbnails/default.nix43
-rw-r--r--pkgs/development/python-modules/ecs-logging/default.nix40
-rw-r--r--pkgs/development/python-modules/edward/default.nix4
-rw-r--r--pkgs/development/python-modules/eggdeps/default.nix4
-rw-r--r--pkgs/development/python-modules/einops/default.nix2
-rw-r--r--pkgs/development/python-modules/elastic-apm/default.nix90
-rw-r--r--pkgs/development/python-modules/elasticsearch/default.nix4
-rw-r--r--pkgs/development/python-modules/eliot/default.nix4
-rw-r--r--pkgs/development/python-modules/elmax-api/default.nix43
-rw-r--r--pkgs/development/python-modules/elmax/default.nix4
-rw-r--r--pkgs/development/python-modules/emoji/default.nix4
-rw-r--r--pkgs/development/python-modules/empy/default.nix17
-rw-r--r--pkgs/development/python-modules/emv/default.nix42
-rw-r--r--pkgs/development/python-modules/enturclient/default.nix10
-rw-r--r--pkgs/development/python-modules/env-canada/default.nix4
-rw-r--r--pkgs/development/python-modules/envoy-reader/default.nix15
-rw-r--r--pkgs/development/python-modules/ephem/default.nix9
-rw-r--r--pkgs/development/python-modules/esprima/default.nix40
-rw-r--r--pkgs/development/python-modules/eventlet/default.nix4
-rw-r--r--pkgs/development/python-modules/exchangelib/default.nix4
-rw-r--r--pkgs/development/python-modules/exchangelib/skip_failing_test.patch18
-rw-r--r--pkgs/development/python-modules/factory_boy/default.nix23
-rw-r--r--pkgs/development/python-modules/fakeredis/default.nix10
-rw-r--r--pkgs/development/python-modules/faraday-agent-parameters-types/default.nix4
-rw-r--r--pkgs/development/python-modules/faraday-plugins/default.nix4
-rw-r--r--pkgs/development/python-modules/fastcore/default.nix40
-rw-r--r--pkgs/development/python-modules/fastecdsa/default.nix4
-rw-r--r--pkgs/development/python-modules/fastnumbers/default.nix44
-rw-r--r--pkgs/development/python-modules/fe25519/default.nix9
-rw-r--r--pkgs/development/python-modules/ffmpeg-progress-yield/default.nix4
-rw-r--r--pkgs/development/python-modules/fields/default.nix20
-rw-r--r--pkgs/development/python-modules/filebrowser_safe/default.nix4
-rw-r--r--pkgs/development/python-modules/filelock/3.2.nix6
-rw-r--r--pkgs/development/python-modules/filetype/default.nix4
-rw-r--r--pkgs/development/python-modules/finitude/default.nix43
-rw-r--r--pkgs/development/python-modules/flake8-future-import/default.nix10
-rw-r--r--pkgs/development/python-modules/flake8-future-import/fix-annotations-version-10.patch (renamed from pkgs/development/python-modules/flake8-future-import/fix-annotations-version.patch)0
-rw-r--r--pkgs/development/python-modules/flake8-future-import/fix-annotations-version-11.patch13
-rw-r--r--pkgs/development/python-modules/flake8-length/default.nix4
-rw-r--r--pkgs/development/python-modules/flake8-polyfill/default.nix37
-rw-r--r--pkgs/development/python-modules/flake8/default.nix6
-rw-r--r--pkgs/development/python-modules/flask-appbuilder/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-httpauth/default.nix19
-rw-r--r--pkgs/development/python-modules/flask-openid/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-session/default.nix27
-rw-r--r--pkgs/development/python-modules/flux-led/default.nix4
-rw-r--r--pkgs/development/python-modules/folium/default.nix4
-rw-r--r--pkgs/development/python-modules/fontparts/default.nix4
-rw-r--r--pkgs/development/python-modules/fonttools/default.nix49
-rw-r--r--pkgs/development/python-modules/formbox/default.nix26
-rw-r--r--pkgs/development/python-modules/fountains/default.nix11
-rw-r--r--pkgs/development/python-modules/fpyutils/default.nix14
-rw-r--r--pkgs/development/python-modules/freezegun/default.nix10
-rw-r--r--pkgs/development/python-modules/frigidaire/default.nix4
-rw-r--r--pkgs/development/python-modules/frozendict/default.nix13
-rw-r--r--pkgs/development/python-modules/fs/default.nix7
-rw-r--r--pkgs/development/python-modules/funcparserlib/default.nix45
-rw-r--r--pkgs/development/python-modules/funcy/default.nix4
-rw-r--r--pkgs/development/python-modules/future-fstrings/default.nix4
-rw-r--r--pkgs/development/python-modules/future-typing/default.nix28
-rw-r--r--pkgs/development/python-modules/gdown/default.nix19
-rw-r--r--pkgs/development/python-modules/ge25519/default.nix9
-rw-r--r--pkgs/development/python-modules/gehomesdk/default.nix50
-rw-r--r--pkgs/development/python-modules/gekitchen/default.nix53
-rw-r--r--pkgs/development/python-modules/genanki/default.nix36
-rw-r--r--pkgs/development/python-modules/geoalchemy2/default.nix4
-rw-r--r--pkgs/development/python-modules/geoip2/default.nix4
-rw-r--r--pkgs/development/python-modules/geventhttpclient/default.nix4
-rw-r--r--pkgs/development/python-modules/ghapi/default.nix42
-rw-r--r--pkgs/development/python-modules/ghp-import/default.nix4
-rw-r--r--pkgs/development/python-modules/ghrepo-stats/default.nix41
-rw-r--r--pkgs/development/python-modules/gitdb/default.nix4
-rw-r--r--pkgs/development/python-modules/github-to-sqlite/default.nix4
-rw-r--r--pkgs/development/python-modules/glances-api/default.nix39
-rw-r--r--pkgs/development/python-modules/glean-parser/default.nix61
-rw-r--r--pkgs/development/python-modules/glean-sdk/default.nix53
-rw-r--r--pkgs/development/python-modules/glean-sdk/fix-spawned-process-environment.patch20
-rw-r--r--pkgs/development/python-modules/glfw/default.nix4
-rw-r--r--pkgs/development/python-modules/glymur/default.nix2
-rw-r--r--pkgs/development/python-modules/goodwe/default.nix4
-rw-r--r--pkgs/development/python-modules/google-api-core/default.nix35
-rw-r--r--pkgs/development/python-modules/google-api-python-client/default.nix37
-rw-r--r--pkgs/development/python-modules/google-auth/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-access-context-manager/default.nix23
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery/default.nix7
-rw-r--r--pkgs/development/python-modules/google-cloud-core/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-datacatalog/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-dlp/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-monitoring/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-pubsub/default.nix3
-rw-r--r--pkgs/development/python-modules/google-cloud-resource-manager/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-spanner/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-storage/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-testutils/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-texttospeech/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-vision/default.nix4
-rw-r--r--pkgs/development/python-modules/google-nest-sdm/default.nix51
-rw-r--r--pkgs/development/python-modules/goveelights/default.nix37
-rw-r--r--pkgs/development/python-modules/gplaycli/default.nix8
-rw-r--r--pkgs/development/python-modules/gradient-utils/default.nix4
-rw-r--r--pkgs/development/python-modules/gradient/default.nix4
-rw-r--r--pkgs/development/python-modules/grammalecte/default.nix18
-rw-r--r--pkgs/development/python-modules/graph-tool/2.x.x.nix4
-rw-r--r--pkgs/development/python-modules/graphene/default.nix4
-rw-r--r--pkgs/development/python-modules/graphql-core/default.nix8
-rw-r--r--pkgs/development/python-modules/graphviz/default.nix21
-rw-r--r--pkgs/development/python-modules/graphviz/paths.patch58
-rw-r--r--pkgs/development/python-modules/grappelli_safe/default.nix4
-rw-r--r--pkgs/development/python-modules/graspologic/default.nix4
-rw-r--r--pkgs/development/python-modules/greeclimate/default.nix6
-rw-r--r--pkgs/development/python-modules/green/default.nix17
-rw-r--r--pkgs/development/python-modules/grpcio-status/default.nix41
-rw-r--r--pkgs/development/python-modules/grpcio-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/gruut-ipa/default.nix4
-rw-r--r--pkgs/development/python-modules/gsd/default.nix4
-rw-r--r--pkgs/development/python-modules/gspread/default.nix4
-rw-r--r--pkgs/development/python-modules/gssapi/default.nix4
-rw-r--r--pkgs/development/python-modules/guessit/default.nix33
-rw-r--r--pkgs/development/python-modules/gviz-api/default.nix4
-rw-r--r--pkgs/development/python-modules/h5py/default.nix4
-rw-r--r--pkgs/development/python-modules/hacking/default.nix4
-rw-r--r--pkgs/development/python-modules/hahomematic/default.nix43
-rw-r--r--pkgs/development/python-modules/hangups/default.nix1
-rw-r--r--pkgs/development/python-modules/hatasmota/default.nix12
-rw-r--r--pkgs/development/python-modules/heatzypy/default.nix40
-rw-r--r--pkgs/development/python-modules/hg-evolve/default.nix4
-rw-r--r--pkgs/development/python-modules/hg-git/default.nix4
-rw-r--r--pkgs/development/python-modules/hjson/default.nix5
-rw-r--r--pkgs/development/python-modules/hole/default.nix16
-rw-r--r--pkgs/development/python-modules/holoviews/default.nix13
-rw-r--r--pkgs/development/python-modules/homematicip/default.nix21
-rw-r--r--pkgs/development/python-modules/hstspreload/default.nix16
-rw-r--r--pkgs/development/python-modules/html5lib/default.nix22
-rw-r--r--pkgs/development/python-modules/httpcore/default.nix16
-rw-r--r--pkgs/development/python-modules/httplib2/default.nix37
-rw-r--r--pkgs/development/python-modules/httpx-socks/default.nix14
-rw-r--r--pkgs/development/python-modules/httpx/default.nix17
-rw-r--r--pkgs/development/python-modules/huawei-lte-api/default.nix4
-rw-r--r--pkgs/development/python-modules/huggingface-hub/default.nix6
-rw-r--r--pkgs/development/python-modules/humanize/default.nix35
-rw-r--r--pkgs/development/python-modules/hydra-check/default.nix8
-rw-r--r--pkgs/development/python-modules/hyperopt/default.nix44
-rw-r--r--pkgs/development/python-modules/hypothesis/default.nix4
-rw-r--r--pkgs/development/python-modules/hypothesmith/default.nix4
-rw-r--r--pkgs/development/python-modules/hyppo/default.nix13
-rw-r--r--pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix4
-rw-r--r--pkgs/development/python-modules/identify/default.nix4
-rw-r--r--pkgs/development/python-modules/idna/default.nix4
-rw-r--r--pkgs/development/python-modules/ignite/default.nix8
-rw-r--r--pkgs/development/python-modules/imageio/default.nix20
-rw-r--r--pkgs/development/python-modules/imagesize/default.nix4
-rw-r--r--pkgs/development/python-modules/imap-tools/default.nix6
-rw-r--r--pkgs/development/python-modules/importlib-metadata/default.nix15
-rw-r--r--pkgs/development/python-modules/influxdb-client/default.nix4
-rw-r--r--pkgs/development/python-modules/injector/default.nix4
-rw-r--r--pkgs/development/python-modules/internetarchive/default.nix6
-rw-r--r--pkgs/development/python-modules/ipfshttpclient/default.nix12
-rw-r--r--pkgs/development/python-modules/ipydatawidgets/default.nix7
-rw-r--r--pkgs/development/python-modules/ipykernel/default.nix4
-rw-r--r--pkgs/development/python-modules/ipympl/default.nix15
-rw-r--r--pkgs/development/python-modules/ipython/default.nix4
-rw-r--r--pkgs/development/python-modules/ipyvue/default.nix4
-rw-r--r--pkgs/development/python-modules/ircrobots/default.nix8
-rw-r--r--pkgs/development/python-modules/iso4217/default.nix23
-rw-r--r--pkgs/development/python-modules/isodate/default.nix4
-rw-r--r--pkgs/development/python-modules/iterm2/default.nix4
-rw-r--r--pkgs/development/python-modules/jaconv/default.nix38
-rw-r--r--pkgs/development/python-modules/janus/default.nix12
-rw-r--r--pkgs/development/python-modules/jaraco-context/default.nix44
-rw-r--r--pkgs/development/python-modules/jaraco_functools/default.nix4
-rw-r--r--pkgs/development/python-modules/jaraco_text/default.nix32
-rw-r--r--pkgs/development/python-modules/jax/cache-fix.patch12
-rw-r--r--pkgs/development/python-modules/jax/default.nix11
-rw-r--r--pkgs/development/python-modules/jaxlib/bin.nix90
-rw-r--r--pkgs/development/python-modules/jaxlib/default.nix345
-rw-r--r--pkgs/development/python-modules/jc/default.nix4
-rw-r--r--pkgs/development/python-modules/jdatetime/default.nix4
-rw-r--r--pkgs/development/python-modules/jedi-language-server/default.nix4
-rw-r--r--pkgs/development/python-modules/jellyfin-apiclient-python/default.nix6
-rw-r--r--pkgs/development/python-modules/jenkins-job-builder/default.nix4
-rw-r--r--pkgs/development/python-modules/jinja2/2.nix5
-rw-r--r--pkgs/development/python-modules/jinja2/default.nix4
-rw-r--r--pkgs/development/python-modules/josepy/default.nix4
-rw-r--r--pkgs/development/python-modules/jproperties/default.nix59
-rw-r--r--pkgs/development/python-modules/jschema-to-python/default.nix39
-rw-r--r--pkgs/development/python-modules/jsonpointer/default.nix4
-rw-r--r--pkgs/development/python-modules/jsonrpc-websocket/default.nix24
-rw-r--r--pkgs/development/python-modules/jupyter-client/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyter-sphinx/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyter_core/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix22
-rw-r--r--pkgs/development/python-modules/jupyterlab-git/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterlab/default.nix4
-rw-r--r--pkgs/development/python-modules/jupyterlab_server/default.nix4
-rw-r--r--pkgs/development/python-modules/jupytext/default.nix42
-rw-r--r--pkgs/development/python-modules/k5test/default.nix4
-rw-r--r--pkgs/development/python-modules/kajiki/default.nix4
-rw-r--r--pkgs/development/python-modules/karton-autoit-ripper/default.nix4
-rw-r--r--pkgs/development/python-modules/karton-dashboard/default.nix6
-rw-r--r--pkgs/development/python-modules/keepkey/default.nix16
-rw-r--r--pkgs/development/python-modules/keras-preprocessing/default.nix4
-rw-r--r--pkgs/development/python-modules/keras/default.nix9
-rw-r--r--pkgs/development/python-modules/keyboard/default.nix30
-rw-r--r--pkgs/development/python-modules/keyring/2.nix33
-rw-r--r--pkgs/development/python-modules/keyring/default.nix11
-rw-r--r--pkgs/development/python-modules/keystone-engine/default.nix4
-rw-r--r--pkgs/development/python-modules/knack/default.nix4
-rw-r--r--pkgs/development/python-modules/kombu/default.nix4
-rw-r--r--pkgs/development/python-modules/kubernetes/default.nix4
-rw-r--r--pkgs/development/python-modules/labelbox/default.nix4
-rw-r--r--pkgs/development/python-modules/labgrid/default.nix4
-rw-r--r--pkgs/development/python-modules/langcodes/default.nix40
-rw-r--r--pkgs/development/python-modules/language-data/default.nix44
-rw-r--r--pkgs/development/python-modules/lc7001/default.nix4
-rw-r--r--pkgs/development/python-modules/ldap/default.nix4
-rw-r--r--pkgs/development/python-modules/ldappool/default.nix4
-rw-r--r--pkgs/development/python-modules/ledgerblue/default.nix4
-rw-r--r--pkgs/development/python-modules/ledgerwallet/default.nix11
-rw-r--r--pkgs/development/python-modules/ledgerwallet/remove-iterateints.patch19
-rw-r--r--pkgs/development/python-modules/levenshtein/default.nix5
-rw-r--r--pkgs/development/python-modules/libarchive-c/default.nix4
-rw-r--r--pkgs/development/python-modules/libarcus/default.nix4
-rw-r--r--pkgs/development/python-modules/libcst/default.nix17
-rw-r--r--pkgs/development/python-modules/libnacl/default.nix10
-rw-r--r--pkgs/development/python-modules/libsavitar/default.nix4
-rw-r--r--pkgs/development/python-modules/lightwave2/default.nix37
-rw-r--r--pkgs/development/python-modules/limnoria/default.nix4
-rw-r--r--pkgs/development/python-modules/linkify-it-py/default.nix4
-rw-r--r--pkgs/development/python-modules/livelossplot/default.nix18
-rw-r--r--pkgs/development/python-modules/losant-rest/default.nix47
-rw-r--r--pkgs/development/python-modules/lsassy/default.nix4
-rw-r--r--pkgs/development/python-modules/luftdaten/default.nix41
-rw-r--r--pkgs/development/python-modules/luhn/default.nix36
-rw-r--r--pkgs/development/python-modules/lupupy/default.nix12
-rw-r--r--pkgs/development/python-modules/luxor/default.nix41
-rw-r--r--pkgs/development/python-modules/lxml/default.nix6
-rw-r--r--pkgs/development/python-modules/lz4/default.nix6
-rw-r--r--pkgs/development/python-modules/m3u8/default.nix15
-rw-r--r--pkgs/development/python-modules/maestral/default.nix4
-rw-r--r--pkgs/development/python-modules/mahotas/default.nix35
-rw-r--r--pkgs/development/python-modules/manimpango/default.nix4
-rw-r--r--pkgs/development/python-modules/mariadb/default.nix30
-rw-r--r--pkgs/development/python-modules/markdown-it-py/default.nix29
-rw-r--r--pkgs/development/python-modules/markdown/default.nix11
-rw-r--r--pkgs/development/python-modules/mask-rcnn/default.nix25
-rw-r--r--pkgs/development/python-modules/matlink-gpapi/default.nix35
-rw-r--r--pkgs/development/python-modules/matplotlib/default.nix73
-rw-r--r--pkgs/development/python-modules/matrix-nio/default.nix7
-rw-r--r--pkgs/development/python-modules/mautrix/default.nix7
-rw-r--r--pkgs/development/python-modules/mayavi/default.nix4
-rw-r--r--pkgs/development/python-modules/mcstatus/default.nix22
-rw-r--r--pkgs/development/python-modules/md-toc/default.nix14
-rw-r--r--pkgs/development/python-modules/mdformat/default.nix15
-rw-r--r--pkgs/development/python-modules/mdit-py-plugins/default.nix18
-rw-r--r--pkgs/development/python-modules/mdurl/default.nix41
-rw-r--r--pkgs/development/python-modules/mediafile/default.nix41
-rw-r--r--pkgs/development/python-modules/memory-allocator/default.nix4
-rw-r--r--pkgs/development/python-modules/meross-iot/default.nix46
-rw-r--r--pkgs/development/python-modules/meshtastic/default.nix36
-rw-r--r--pkgs/development/python-modules/metakernel/default.nix4
-rw-r--r--pkgs/development/python-modules/minio/default.nix12
-rw-r--r--pkgs/development/python-modules/mistletoe/default.nix4
-rw-r--r--pkgs/development/python-modules/mizani/default.nix37
-rw-r--r--pkgs/development/python-modules/ml-collections/default.nix53
-rw-r--r--pkgs/development/python-modules/mlflow/default.nix4
-rw-r--r--pkgs/development/python-modules/mne-python/default.nix4
-rw-r--r--pkgs/development/python-modules/mnemonic/default.nix4
-rw-r--r--pkgs/development/python-modules/mocket/default.nix4
-rw-r--r--pkgs/development/python-modules/mockito/default.nix4
-rw-r--r--pkgs/development/python-modules/monkeyhex/default.nix4
-rw-r--r--pkgs/development/python-modules/monty/default.nix4
-rw-r--r--pkgs/development/python-modules/moonraker-api/default.nix43
-rw-r--r--pkgs/development/python-modules/more-itertools/default.nix4
-rw-r--r--pkgs/development/python-modules/mouseinfo/default.nix40
-rw-r--r--pkgs/development/python-modules/mouseinfo/fix-xlib-version.patch14
-rw-r--r--pkgs/development/python-modules/mouseinfo/pillow-version.patch20
-rw-r--r--pkgs/development/python-modules/ms-active-directory/default.nix49
-rw-r--r--pkgs/development/python-modules/msgpack/default.nix4
-rw-r--r--pkgs/development/python-modules/msoffcrypto-tool/default.nix55
-rw-r--r--pkgs/development/python-modules/mutf8/default.nix9
-rw-r--r--pkgs/development/python-modules/myfitnesspal/default.nix61
-rw-r--r--pkgs/development/python-modules/myhome/default.nix50
-rw-r--r--pkgs/development/python-modules/mypy-boto3-s3/default.nix4
-rw-r--r--pkgs/development/python-modules/mypy/default.nix60
-rw-r--r--pkgs/development/python-modules/mypy/extensions.nix8
-rw-r--r--pkgs/development/python-modules/mysqlclient/default.nix4
-rw-r--r--pkgs/development/python-modules/natsort/default.nix57
-rw-r--r--pkgs/development/python-modules/nbclient/default.nix11
-rw-r--r--pkgs/development/python-modules/nbconvert/default.nix4
-rw-r--r--pkgs/development/python-modules/neo4j-driver/default.nix39
-rw-r--r--pkgs/development/python-modules/netdata/default.nix43
-rw-r--r--pkgs/development/python-modules/nexia/default.nix4
-rw-r--r--pkgs/development/python-modules/nilearn/default.nix1
-rw-r--r--pkgs/development/python-modules/nipype/default.nix4
-rw-r--r--pkgs/development/python-modules/nitransforms/default.nix45
-rw-r--r--pkgs/development/python-modules/nltk/default.nix4
-rw-r--r--pkgs/development/python-modules/nmapthon2/default.nix34
-rw-r--r--pkgs/development/python-modules/notebook/default.nix10
-rw-r--r--pkgs/development/python-modules/notifications-python-client/default.nix58
-rw-r--r--pkgs/development/python-modules/nuitka/default.nix2
-rw-r--r--pkgs/development/python-modules/numexpr/default.nix4
-rw-r--r--pkgs/development/python-modules/numpy/default.nix9
-rw-r--r--pkgs/development/python-modules/nunavut/default.nix4
-rw-r--r--pkgs/development/python-modules/nwdiag/default.nix47
-rw-r--r--pkgs/development/python-modules/obfsproxy/default.nix2
-rw-r--r--pkgs/development/python-modules/ocrmypdf/default.nix11
-rw-r--r--pkgs/development/python-modules/ocrmypdf/paths.patch61
-rw-r--r--pkgs/development/python-modules/oletools/default.nix57
-rw-r--r--pkgs/development/python-modules/omnikinverter/default.nix59
-rw-r--r--pkgs/development/python-modules/open-meteo/default.nix60
-rw-r--r--pkgs/development/python-modules/openai/default.nix55
-rw-r--r--pkgs/development/python-modules/opensensemap-api/default.nix16
-rw-r--r--pkgs/development/python-modules/openstacksdk/default.nix4
-rw-r--r--pkgs/development/python-modules/optuna/default.nix4
-rw-r--r--pkgs/development/python-modules/oslo-concurrency/default.nix4
-rw-r--r--pkgs/development/python-modules/oslo-db/default.nix4
-rw-r--r--pkgs/development/python-modules/oslo-log/default.nix4
-rw-r--r--pkgs/development/python-modules/oslo-utils/default.nix4
-rw-r--r--pkgs/development/python-modules/osmpythontools/default.nix10
-rw-r--r--pkgs/development/python-modules/osmpythontools/remove-test-only-dependencies.patch13
-rw-r--r--pkgs/development/python-modules/packbits/default.nix26
-rw-r--r--pkgs/development/python-modules/packet-python/default.nix4
-rw-r--r--pkgs/development/python-modules/pandas-stubs/default.nix39
-rw-r--r--pkgs/development/python-modules/pandas/default.nix30
-rw-r--r--pkgs/development/python-modules/panel/default.nix4
-rw-r--r--pkgs/development/python-modules/papis-python-rofi/default.nix4
-rw-r--r--pkgs/development/python-modules/paramiko/default.nix7
-rw-r--r--pkgs/development/python-modules/parsy/default.nix4
-rw-r--r--pkgs/development/python-modules/parts/default.nix10
-rw-r--r--pkgs/development/python-modules/paste/default.nix3
-rw-r--r--pkgs/development/python-modules/pastescript/default.nix16
-rw-r--r--pkgs/development/python-modules/pbr/default.nix4
-rw-r--r--pkgs/development/python-modules/pc-ble-driver-py/default.nix4
-rw-r--r--pkgs/development/python-modules/pcodedmp/default.nix41
-rw-r--r--pkgs/development/python-modules/pdftotext/default.nix11
-rw-r--r--pkgs/development/python-modules/pebble/default.nix4
-rw-r--r--pkgs/development/python-modules/pep440/default.nix32
-rw-r--r--pkgs/development/python-modules/pep8-naming/default.nix10
-rw-r--r--pkgs/development/python-modules/pescea/default.nix58
-rw-r--r--pkgs/development/python-modules/pex/default.nix10
-rw-r--r--pkgs/development/python-modules/pglast/default.nix4
-rw-r--r--pkgs/development/python-modules/phonenumbers/default.nix4
-rw-r--r--pkgs/development/python-modules/pikepdf/default.nix6
-rw-r--r--pkgs/development/python-modules/pillow/default.nix4
-rw-r--r--pkgs/development/python-modules/pint/default.nix8
-rw-r--r--pkgs/development/python-modules/pip-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/pipx/default.nix4
-rw-r--r--pkgs/development/python-modules/pkginfo/default.nix4
-rw-r--r--pkgs/development/python-modules/pkutils/default.nix37
-rw-r--r--pkgs/development/python-modules/plac/default.nix4
-rw-r--r--pkgs/development/python-modules/plaid-python/default.nix4
-rw-r--r--pkgs/development/python-modules/platformdirs/2.nix43
-rw-r--r--pkgs/development/python-modules/plotly/default.nix4
-rw-r--r--pkgs/development/python-modules/plugwise/default.nix10
-rw-r--r--pkgs/development/python-modules/plumbum/default.nix4
-rw-r--r--pkgs/development/python-modules/plyvel/default.nix4
-rw-r--r--pkgs/development/python-modules/poetry/default.nix4
-rw-r--r--pkgs/development/python-modules/polarizationsolver/default.nix38
-rw-r--r--pkgs/development/python-modules/policy-sentry/default.nix4
-rw-r--r--pkgs/development/python-modules/potentials/default.nix34
-rw-r--r--pkgs/development/python-modules/pre-commit-hooks/default.nix18
-rw-r--r--pkgs/development/python-modules/pre-commit/hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch15
-rw-r--r--pkgs/development/python-modules/precis-i18n/default.nix4
-rw-r--r--pkgs/development/python-modules/prettytable/default.nix4
-rw-r--r--pkgs/development/python-modules/prometheus-client/default.nix13
-rw-r--r--pkgs/development/python-modules/prompt-toolkit/default.nix23
-rw-r--r--pkgs/development/python-modules/proto-plus/default.nix4
-rw-r--r--pkgs/development/python-modules/protobuf/default.nix30
-rw-r--r--pkgs/development/python-modules/proxy-py/default.nix63
-rw-r--r--pkgs/development/python-modules/proxy_tools/default.nix25
-rw-r--r--pkgs/development/python-modules/psautohint/default.nix4
-rw-r--r--pkgs/development/python-modules/psycopg2/default.nix4
-rw-r--r--pkgs/development/python-modules/pubnub/default.nix4
-rw-r--r--pkgs/development/python-modules/pudb/default.nix22
-rw-r--r--pkgs/development/python-modules/pulp/default.nix4
-rw-r--r--pkgs/development/python-modules/pvo/default.nix61
-rw-r--r--pkgs/development/python-modules/pwntools/default.nix4
-rw-r--r--pkgs/development/python-modules/py/default.nix4
-rw-r--r--pkgs/development/python-modules/py17track/default.nix18
-rw-r--r--pkgs/development/python-modules/py4j/default.nix4
-rw-r--r--pkgs/development/python-modules/pyahocorasick/default.nix12
-rw-r--r--pkgs/development/python-modules/pyaml/default.nix4
-rw-r--r--pkgs/development/python-modules/pyarrow/default.nix19
-rw-r--r--pkgs/development/python-modules/pyathena/default.nix4
-rw-r--r--pkgs/development/python-modules/pyatspi/default.nix4
-rw-r--r--pkgs/development/python-modules/pyatv/default.nix19
-rw-r--r--pkgs/development/python-modules/pyautogui/default.nix59
-rw-r--r--pkgs/development/python-modules/pyautogui/fix-locateOnWindow-and-xlib.patch30
-rw-r--r--pkgs/development/python-modules/pybase64/default.nix4
-rw-r--r--pkgs/development/python-modules/pybids/default.nix4
-rw-r--r--pkgs/development/python-modules/pybind11/default.nix8
-rw-r--r--pkgs/development/python-modules/pycairo/1.18.nix5
-rw-r--r--pkgs/development/python-modules/pycairo/default.nix5
-rw-r--r--pkgs/development/python-modules/pycapnp/default.nix4
-rw-r--r--pkgs/development/python-modules/pycarwings2/default.nix7
-rw-r--r--pkgs/development/python-modules/pychromecast/default.nix42
-rw-r--r--pkgs/development/python-modules/pycocotools/default.nix4
-rw-r--r--pkgs/development/python-modules/pycodestyle/default.nix4
-rw-r--r--pkgs/development/python-modules/pycparser/default.nix4
-rw-r--r--pkgs/development/python-modules/pydeck/default.nix4
-rw-r--r--pkgs/development/python-modules/pydelijn/default.nix15
-rw-r--r--pkgs/development/python-modules/pydexcom/default.nix4
-rw-r--r--pkgs/development/python-modules/pydicom/default.nix28
-rw-r--r--pkgs/development/python-modules/pydmd/default.nix4
-rw-r--r--pkgs/development/python-modules/pydocstyle/2.nix33
-rw-r--r--pkgs/development/python-modules/pydocstyle/default.nix31
-rw-r--r--pkgs/development/python-modules/pyduke-energy/default.nix51
-rw-r--r--pkgs/development/python-modules/pyeclib/default.nix13
-rw-r--r--pkgs/development/python-modules/pyecowitt/default.nix39
-rw-r--r--pkgs/development/python-modules/pyefergy/default.nix4
-rw-r--r--pkgs/development/python-modules/pyenvisalink/default.nix4
-rw-r--r--pkgs/development/python-modules/pyfaidx/default.nix36
-rw-r--r--pkgs/development/python-modules/pyfakefs/default.nix4
-rw-r--r--pkgs/development/python-modules/pyfronius/default.nix4
-rw-r--r--pkgs/development/python-modules/pygetwindow/default.nix29
-rw-r--r--pkgs/development/python-modules/pygit2/default.nix4
-rw-r--r--pkgs/development/python-modules/pygogo/default.nix28
-rw-r--r--pkgs/development/python-modules/pyhaversion/default.nix19
-rw-r--r--pkgs/development/python-modules/pyhomeworks/default.nix33
-rw-r--r--pkgs/development/python-modules/pyisy/default.nix4
-rw-r--r--pkgs/development/python-modules/pyjwt/1.nix22
-rw-r--r--pkgs/development/python-modules/pykakasi/default.nix62
-rw-r--r--pkgs/development/python-modules/pykeyatome/default.nix59
-rw-r--r--pkgs/development/python-modules/pykrakenapi/default.nix4
-rw-r--r--pkgs/development/python-modules/pykulersky/default.nix10
-rw-r--r--pkgs/development/python-modules/pylama/default.nix58
-rw-r--r--pkgs/development/python-modules/pylama/paths.patch13
-rw-r--r--pkgs/development/python-modules/pylast/default.nix19
-rw-r--r--pkgs/development/python-modules/pylint-django/default.nix41
-rw-r--r--pkgs/development/python-modules/pylint/default.nix7
-rw-r--r--pkgs/development/python-modules/pylsp-mypy/default.nix6
-rw-r--r--pkgs/development/python-modules/pymatgen/default.nix4
-rw-r--r--pkgs/development/python-modules/pymavlink/default.nix4
-rw-r--r--pkgs/development/python-modules/pymongo/default.nix4
-rw-r--r--pkgs/development/python-modules/pympler/default.nix4
-rw-r--r--pkgs/development/python-modules/pymsgbox/default.nix6
-rw-r--r--pkgs/development/python-modules/pymunk/default.nix4
-rw-r--r--pkgs/development/python-modules/pynest2d/default.nix4
-rw-r--r--pkgs/development/python-modules/pynetbox/default.nix4
-rw-r--r--pkgs/development/python-modules/pynetdicom/default.nix13
-rw-r--r--pkgs/development/python-modules/pynput/default.nix4
-rw-r--r--pkgs/development/python-modules/pynvml/default.nix4
-rw-r--r--pkgs/development/python-modules/pyoctoprintapi/default.nix47
-rw-r--r--pkgs/development/python-modules/pyopencl/default.nix4
-rw-r--r--pkgs/development/python-modules/pypandoc/default.nix12
-rw-r--r--pkgs/development/python-modules/pyperclip/default.nix19
-rw-r--r--pkgs/development/python-modules/pypoolstation/default.nix8
-rw-r--r--pkgs/development/python-modules/pyramid_mako/default.nix13
-rw-r--r--pkgs/development/python-modules/pyrect/default.nix29
-rw-r--r--pkgs/development/python-modules/pyro-ppl/default.nix4
-rw-r--r--pkgs/development/python-modules/pyro5/default.nix10
-rw-r--r--pkgs/development/python-modules/pysam/default.nix4
-rw-r--r--pkgs/development/python-modules/pysaml2/default.nix79
-rw-r--r--pkgs/development/python-modules/pysatochip/default.nix4
-rw-r--r--pkgs/development/python-modules/pyscf/default.nix91
-rw-r--r--pkgs/development/python-modules/pyscf/h5py.patch13
-rw-r--r--pkgs/development/python-modules/pyscreeze/default.nix37
-rw-r--r--pkgs/development/python-modules/pyside/apiextractor.nix10
-rw-r--r--pkgs/development/python-modules/pysimplegui/default.nix27
-rw-r--r--pkgs/development/python-modules/pyskyqremote/default.nix45
-rw-r--r--pkgs/development/python-modules/pysma/default.nix15
-rw-r--r--pkgs/development/python-modules/pysmappee/default.nix4
-rw-r--r--pkgs/development/python-modules/pysmartthings/default.nix17
-rw-r--r--pkgs/development/python-modules/pysnooper/default.nix4
-rw-r--r--pkgs/development/python-modules/pysolcast/default.nix61
-rw-r--r--pkgs/development/python-modules/pystache/default.nix4
-rw-r--r--pkgs/development/python-modules/pystray/default.nix4
-rw-r--r--pkgs/development/python-modules/pytado/default.nix33
-rw-r--r--pkgs/development/python-modules/pytaglib/default.nix4
-rw-r--r--pkgs/development/python-modules/pytenable/default.nix6
-rw-r--r--pkgs/development/python-modules/pytest-aio/default.nix57
-rw-r--r--pkgs/development/python-modules/pytest-annotate/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-asyncio/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-doctestplus/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-flake8/default.nix12
-rw-r--r--pkgs/development/python-modules/pytest-flakes/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-httpserver/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-httpx/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-json-report/default.nix49
-rw-r--r--pkgs/development/python-modules/pytest-localserver/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-raisin/default.nix37
-rw-r--r--pkgs/development/python-modules/pytest-snapshot/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-xdist/default.nix2
-rw-r--r--pkgs/development/python-modules/python-cinderclient/default.nix4
-rw-r--r--pkgs/development/python-modules/python-datemath/default.nix47
-rw-r--r--pkgs/development/python-modules/python-didl-lite/default.nix4
-rw-r--r--pkgs/development/python-modules/python-dotenv/default.nix4
-rw-r--r--pkgs/development/python-modules/python-ecobee-api/default.nix4
-rw-r--r--pkgs/development/python-modules/python-gnupg/default.nix4
-rw-r--r--pkgs/development/python-modules/python-google-nest/default.nix37
-rw-r--r--pkgs/development/python-modules/python-gvm/default.nix4
-rw-r--r--pkgs/development/python-modules/python-hglib/default.nix32
-rw-r--r--pkgs/development/python-modules/python-http-client/default.nix11
-rw-r--r--pkgs/development/python-modules/python-izone/default.nix23
-rw-r--r--pkgs/development/python-modules/python-lsp-black/default.nix4
-rw-r--r--pkgs/development/python-modules/python-lsp-server/default.nix4
-rw-r--r--pkgs/development/python-modules/python-lzo/default.nix4
-rw-r--r--pkgs/development/python-modules/python-manilaclient/default.nix4
-rw-r--r--pkgs/development/python-modules/python-opendata-transport/default.nix14
-rw-r--r--pkgs/development/python-modules/python-pidfile/default.nix2
-rw-r--r--pkgs/development/python-modules/python-sat/default.nix17
-rw-r--r--pkgs/development/python-modules/python-smarttub/default.nix10
-rw-r--r--pkgs/development/python-modules/python-socks/default.nix45
-rw-r--r--pkgs/development/python-modules/python-swiftclient/default.nix4
-rw-r--r--pkgs/development/python-modules/python-vipaccess/default.nix4
-rw-r--r--pkgs/development/python-modules/pythonegardia/default.nix29
-rw-r--r--pkgs/development/python-modules/pythonnet/default.nix8
-rw-r--r--pkgs/development/python-modules/pytibber/default.nix4
-rw-r--r--pkgs/development/python-modules/pytile/default.nix4
-rw-r--r--pkgs/development/python-modules/pytmx/default.nix6
-rw-r--r--pkgs/development/python-modules/pytradfri/default.nix4
-rw-r--r--pkgs/development/python-modules/pytube/default.nix4
-rw-r--r--pkgs/development/python-modules/pytweening/default.nix25
-rw-r--r--pkgs/development/python-modules/pytwitchapi/default.nix4
-rw-r--r--pkgs/development/python-modules/pytz-deprecation-shim/default.nix49
-rw-r--r--pkgs/development/python-modules/pyupgrade/default.nix4
-rw-r--r--pkgs/development/python-modules/pyvex/default.nix8
-rw-r--r--pkgs/development/python-modules/pyvips/default.nix4
-rw-r--r--pkgs/development/python-modules/pywal/default.nix21
-rw-r--r--pkgs/development/python-modules/pywavelets/default.nix4
-rw-r--r--pkgs/development/python-modules/pywbem/default.nix4
-rw-r--r--pkgs/development/python-modules/pyweatherflowrest/default.nix44
-rw-r--r--pkgs/development/python-modules/pywebview/default.nix8
-rw-r--r--pkgs/development/python-modules/pywemo/default.nix4
-rw-r--r--pkgs/development/python-modules/pywick/default.nix4
-rw-r--r--pkgs/development/python-modules/pywilight/default.nix15
-rw-r--r--pkgs/development/python-modules/pywizlight/default.nix8
-rw-r--r--pkgs/development/python-modules/pyzerproc/default.nix12
-rw-r--r--pkgs/development/python-modules/qcelemental/default.nix25
-rw-r--r--pkgs/development/python-modules/qcengine/default.nix29
-rw-r--r--pkgs/development/python-modules/qcs-api-client/default.nix4
-rw-r--r--pkgs/development/python-modules/qiskit-aqua/default.nix4
-rw-r--r--pkgs/development/python-modules/qiskit-ibmq-provider/default.nix4
-rw-r--r--pkgs/development/python-modules/qiskit/default.nix4
-rw-r--r--pkgs/development/python-modules/qtawesome/default.nix4
-rw-r--r--pkgs/development/python-modules/qtconsole/default.nix4
-rw-r--r--pkgs/development/python-modules/quantum-gateway/default.nix48
-rw-r--r--pkgs/development/python-modules/questionary/default.nix18
-rw-r--r--pkgs/development/python-modules/r2pipe/default.nix4
-rw-r--r--pkgs/development/python-modules/rapidfuzz/default.nix4
-rw-r--r--pkgs/development/python-modules/rcssmin/default.nix4
-rw-r--r--pkgs/development/python-modules/rdkit/default.nix6
-rw-r--r--pkgs/development/python-modules/regex/default.nix4
-rw-r--r--pkgs/development/python-modules/reikna/default.nix4
-rw-r--r--pkgs/development/python-modules/renault-api/default.nix4
-rw-r--r--pkgs/development/python-modules/reolink/default.nix69
-rw-r--r--pkgs/development/python-modules/reportlab/default.nix4
-rw-r--r--pkgs/development/python-modules/requests-cache/default.nix15
-rw-r--r--pkgs/development/python-modules/requests-kerberos/default.nix17
-rw-r--r--pkgs/development/python-modules/requests-kerberos/fix_setup.patch9
-rw-r--r--pkgs/development/python-modules/requests-toolbelt/default.nix4
-rw-r--r--pkgs/development/python-modules/responses/default.nix4
-rw-r--r--pkgs/development/python-modules/respx/default.nix4
-rw-r--r--pkgs/development/python-modules/rfc6555/default.nix43
-rw-r--r--pkgs/development/python-modules/rfc6555/disable_network_tests.patch31
-rw-r--r--pkgs/development/python-modules/rflink/default.nix25
-rw-r--r--pkgs/development/python-modules/rich/default.nix4
-rw-r--r--pkgs/development/python-modules/ring-doorbell/default.nix4
-rw-r--r--pkgs/development/python-modules/rjsmin/default.nix4
-rw-r--r--pkgs/development/python-modules/rki-covid-parser/default.nix51
-rw-r--r--pkgs/development/python-modules/rnginline/default.nix28
-rw-r--r--pkgs/development/python-modules/robotframework-sshlibrary/default.nix4
-rw-r--r--pkgs/development/python-modules/robotframework/default.nix4
-rw-r--r--pkgs/development/python-modules/rokuecp/default.nix18
-rw-r--r--pkgs/development/python-modules/roombapy/default.nix4
-rw-r--r--pkgs/development/python-modules/ropgadget/default.nix35
-rw-r--r--pkgs/development/python-modules/rpcq/default.nix10
-rw-r--r--pkgs/development/python-modules/rq/default.nix4
-rw-r--r--pkgs/development/python-modules/rsa/default.nix4
-rw-r--r--pkgs/development/python-modules/ruyaml/default.nix10
-rw-r--r--pkgs/development/python-modules/s3fs/default.nix4
-rw-r--r--pkgs/development/python-modules/sagemaker/default.nix4
-rw-r--r--pkgs/development/python-modules/sanic-auth/default.nix30
-rw-r--r--pkgs/development/python-modules/sanic/default.nix16
-rw-r--r--pkgs/development/python-modules/sarge/default.nix28
-rw-r--r--pkgs/development/python-modules/sarif-om/default.nix35
-rw-r--r--pkgs/development/python-modules/schema-salad/default.nix4
-rw-r--r--pkgs/development/python-modules/schema/default.nix4
-rw-r--r--pkgs/development/python-modules/scikit-hep-testdata/default.nix4
-rw-r--r--pkgs/development/python-modules/scikit-learn/default.nix13
-rw-r--r--pkgs/development/python-modules/scipy/default.nix4
-rw-r--r--pkgs/development/python-modules/scp/default.nix4
-rw-r--r--pkgs/development/python-modules/screeninfo/default.nix4
-rw-r--r--pkgs/development/python-modules/screenlogicpy/default.nix15
-rw-r--r--pkgs/development/python-modules/seaborn/default.nix46
-rw-r--r--pkgs/development/python-modules/seatconnect/default.nix63
-rw-r--r--pkgs/development/python-modules/secp256k1/default.nix4
-rw-r--r--pkgs/development/python-modules/send2trash/default.nix5
-rw-r--r--pkgs/development/python-modules/sendgrid/default.nix19
-rw-r--r--pkgs/development/python-modules/sentry-sdk/default.nix131
-rw-r--r--pkgs/development/python-modules/sepaxml/default.nix28
-rw-r--r--pkgs/development/python-modules/seqdiag/default.nix48
-rw-r--r--pkgs/development/python-modules/setupmeta/default.nix51
-rw-r--r--pkgs/development/python-modules/shamir-mnemonic/default.nix9
-rw-r--r--pkgs/development/python-modules/shap/default.nix4
-rw-r--r--pkgs/development/python-modules/shortuuid/default.nix10
-rw-r--r--pkgs/development/python-modules/simple-di/default.nix4
-rw-r--r--pkgs/development/python-modules/simple-rest-client/default.nix5
-rw-r--r--pkgs/development/python-modules/simplejson/default.nix4
-rw-r--r--pkgs/development/python-modules/simplenote/default.nix26
-rw-r--r--pkgs/development/python-modules/simplisafe-python/default.nix27
-rw-r--r--pkgs/development/python-modules/siosocks/default.nix43
-rw-r--r--pkgs/development/python-modules/skodaconnect/default.nix61
-rw-r--r--pkgs/development/python-modules/slack-sdk/default.nix10
-rw-r--r--pkgs/development/python-modules/slicer/default.nix3
-rw-r--r--pkgs/development/python-modules/slither-analyzer/default.nix7
-rw-r--r--pkgs/development/python-modules/smbprotocol/default.nix10
-rw-r--r--pkgs/development/python-modules/smpplib/default.nix4
-rw-r--r--pkgs/development/python-modules/snowballstemmer/default.nix4
-rw-r--r--pkgs/development/python-modules/snowflake-connector-python/default.nix4
-rw-r--r--pkgs/development/python-modules/snowflake-sqlalchemy/default.nix4
-rw-r--r--pkgs/development/python-modules/socialscan/default.nix43
-rw-r--r--pkgs/development/python-modules/socid-extractor/default.nix43
-rw-r--r--pkgs/development/python-modules/soco/default.nix4
-rw-r--r--pkgs/development/python-modules/softlayer/default.nix4
-rw-r--r--pkgs/development/python-modules/solax/default.nix4
-rw-r--r--pkgs/development/python-modules/somajo/default.nix4
-rw-r--r--pkgs/development/python-modules/soupsieve/default.nix4
-rw-r--r--pkgs/development/python-modules/spacy-alignments/default.nix18
-rw-r--r--pkgs/development/python-modules/spacy-transformers/default.nix4
-rw-r--r--pkgs/development/python-modules/spacy/default.nix4
-rw-r--r--pkgs/development/python-modules/spglib/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinx-material/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinx/0001-test-images-Use-normalization-equivalent-character.patch35
-rw-r--r--pkgs/development/python-modules/sphinx/default.nix34
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-actdiag/default.nix20
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-nwdiag/default.nix20
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-seqdiag/default.nix24
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-spelling/default.nix4
-rw-r--r--pkgs/development/python-modules/sphinxext-opengraph/default.nix11
-rw-r--r--pkgs/development/python-modules/spiderpy/default.nix4
-rw-r--r--pkgs/development/python-modules/splinter/default.nix4
-rw-r--r--pkgs/development/python-modules/spur/default.nix39
-rw-r--r--pkgs/development/python-modules/spyder-kernels/default.nix4
-rw-r--r--pkgs/development/python-modules/spyder/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlalchemy-mixins/default.nix45
-rw-r--r--pkgs/development/python-modules/sqlalchemy/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlite-utils/default.nix14
-rw-r--r--pkgs/development/python-modules/sqlmap/default.nix4
-rw-r--r--pkgs/development/python-modules/srpenergy/default.nix4
-rw-r--r--pkgs/development/python-modules/ssdeep/default.nix48
-rw-r--r--pkgs/development/python-modules/sslyze/default.nix83
-rw-r--r--pkgs/development/python-modules/starkbank-ecdsa/default.nix4
-rw-r--r--pkgs/development/python-modules/stem/default.nix2
-rw-r--r--pkgs/development/python-modules/stickytape/default.nix37
-rw-r--r--pkgs/development/python-modules/strictyaml/default.nix4
-rw-r--r--pkgs/development/python-modules/stripe/default.nix4
-rw-r--r--pkgs/development/python-modules/striprtf/default.nix4
-rw-r--r--pkgs/development/python-modules/structlog/default.nix27
-rw-r--r--pkgs/development/python-modules/stumpy/default.nix4
-rw-r--r--pkgs/development/python-modules/subarulink/default.nix13
-rw-r--r--pkgs/development/python-modules/subzerod/default.nix37
-rw-r--r--pkgs/development/python-modules/sunpy/default.nix4
-rw-r--r--pkgs/development/python-modules/supervisor/default.nix4
-rw-r--r--pkgs/development/python-modules/surepy/default.nix9
-rw-r--r--pkgs/development/python-modules/swagger-ui-bundle/default.nix4
-rw-r--r--pkgs/development/python-modules/tableaudocumentapi/default.nix4
-rw-r--r--pkgs/development/python-modules/tago/default.nix47
-rw-r--r--pkgs/development/python-modules/tailscale/default.nix6
-rw-r--r--pkgs/development/python-modules/taskw/default.nix4
-rw-r--r--pkgs/development/python-modules/telethon/default.nix4
-rw-r--r--pkgs/development/python-modules/tensorflow-estimator/default.nix4
-rw-r--r--pkgs/development/python-modules/tensorflow/bin.nix31
-rw-r--r--pkgs/development/python-modules/tensorflow/binary-hashes.nix46
-rw-r--r--pkgs/development/python-modules/tensorflow/default.nix155
-rw-r--r--pkgs/development/python-modules/tensorflow/llvm_bazel_fix_macos_10_12_sdk.patch12
-rwxr-xr-xpkgs/development/python-modules/tensorflow/prefetcher.sh12
-rw-r--r--pkgs/development/python-modules/tensorflow/relax-dependencies-metadata.patch46
-rw-r--r--pkgs/development/python-modules/tensorflow/relax-dependencies.patch51
-rw-r--r--pkgs/development/python-modules/tensorflow/system-protobuf.patch13
-rw-r--r--pkgs/development/python-modules/tensorflow/workspace.patch18
-rw-r--r--pkgs/development/python-modules/tesla-wall-connector/default.nix54
-rw-r--r--pkgs/development/python-modules/teslajsonpy/default.nix4
-rw-r--r--pkgs/development/python-modules/thinc/default.nix27
-rw-r--r--pkgs/development/python-modules/tifffile/default.nix4
-rw-r--r--pkgs/development/python-modules/time-machine/default.nix11
-rw-r--r--pkgs/development/python-modules/tokenizers/default.nix6
-rw-r--r--pkgs/development/python-modules/tololib/default.nix49
-rw-r--r--pkgs/development/python-modules/tomli/default.nix9
-rw-r--r--pkgs/development/python-modules/tomli/fix-backwards-compatibility-load.patch21
-rw-r--r--pkgs/development/python-modules/toolz/default.nix12
-rw-r--r--pkgs/development/python-modules/torchvision/default.nix4
-rw-r--r--pkgs/development/python-modules/total-connect-client/default.nix13
-rw-r--r--pkgs/development/python-modules/traitlets/default.nix4
-rw-r--r--pkgs/development/python-modules/transformers/default.nix4
-rw-r--r--pkgs/development/python-modules/trezor/default.nix19
-rw-r--r--pkgs/development/python-modules/trezor_agent/default.nix6
-rw-r--r--pkgs/development/python-modules/trimesh/default.nix4
-rw-r--r--pkgs/development/python-modules/trio-asyncio/default.nix47
-rw-r--r--pkgs/development/python-modules/trio/default.nix3
-rw-r--r--pkgs/development/python-modules/trytond/default.nix4
-rw-r--r--pkgs/development/python-modules/tumpa/default.nix10
-rw-r--r--pkgs/development/python-modules/tuya-iot-py-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/tweedledum/default.nix1
-rw-r--r--pkgs/development/python-modules/twentemilieu/default.nix18
-rw-r--r--pkgs/development/python-modules/twilio/default.nix5
-rw-r--r--pkgs/development/python-modules/twill/default.nix4
-rw-r--r--pkgs/development/python-modules/twitterapi/default.nix4
-rw-r--r--pkgs/development/python-modules/typed-ast/default.nix40
-rw-r--r--pkgs/development/python-modules/typeguard/default.nix4
-rw-r--r--pkgs/development/python-modules/types-decorator/default.nix9
-rw-r--r--pkgs/development/python-modules/types-protobuf/default.nix22
-rw-r--r--pkgs/development/python-modules/types-pytz/default.nix9
-rw-r--r--pkgs/development/python-modules/types-requests/default.nix4
-rw-r--r--pkgs/development/python-modules/types-setuptools/default.nix8
-rw-r--r--pkgs/development/python-modules/types-typed-ast/default.nix26
-rw-r--r--pkgs/development/python-modules/typical/default.nix80
-rw-r--r--pkgs/development/python-modules/typical/use-poetry-core.patch13
-rw-r--r--pkgs/development/python-modules/tzlocal/2.nix36
-rw-r--r--pkgs/development/python-modules/tzlocal/default.nix33
-rw-r--r--pkgs/development/python-modules/ujson/default.nix4
-rw-r--r--pkgs/development/python-modules/umap-learn/default.nix8
-rw-r--r--pkgs/development/python-modules/uranium/default.nix4
-rw-r--r--pkgs/development/python-modules/validators/default.nix8
-rw-r--r--pkgs/development/python-modules/vehicle/default.nix6
-rw-r--r--pkgs/development/python-modules/velbus-aio/default.nix3
-rw-r--r--pkgs/development/python-modules/vilfo-api-client/default.nix8
-rw-r--r--pkgs/development/python-modules/virtualenv-clone/default.nix4
-rw-r--r--pkgs/development/python-modules/virtualenv/default.nix7
-rw-r--r--pkgs/development/python-modules/vispy/default.nix4
-rw-r--r--pkgs/development/python-modules/volkszaehler/default.nix24
-rw-r--r--pkgs/development/python-modules/voluptuous-serialize/default.nix4
-rw-r--r--pkgs/development/python-modules/vowpalwabbit/default.nix13
-rw-r--r--pkgs/development/python-modules/vpk/default.nix28
-rw-r--r--pkgs/development/python-modules/vt-py/default.nix6
-rw-r--r--pkgs/development/python-modules/wasabi/default.nix4
-rw-r--r--pkgs/development/python-modules/watchdog/default.nix13
-rw-r--r--pkgs/development/python-modules/wavinsentio/default.nix37
-rw-r--r--pkgs/development/python-modules/webargs/default.nix2
-rw-r--r--pkgs/development/python-modules/websockets/default.nix12
-rw-r--r--pkgs/development/python-modules/webssh/default.nix24
-rw-r--r--pkgs/development/python-modules/weconnect-mqtt/default.nix51
-rw-r--r--pkgs/development/python-modules/weconnect/default.nix58
-rw-r--r--pkgs/development/python-modules/werkzeug/default.nix7
-rw-r--r--pkgs/development/python-modules/wheel/0001-tests-Rename-a-a-o-_-.py-_-.py.patch37
-rw-r--r--pkgs/development/python-modules/wheel/default.nix8
-rw-r--r--pkgs/development/python-modules/widgetsnbextension/default.nix4
-rw-r--r--pkgs/development/python-modules/wiffi/default.nix15
-rw-r--r--pkgs/development/python-modules/winacl/default.nix4
-rw-r--r--pkgs/development/python-modules/wled/default.nix23
-rw-r--r--pkgs/development/python-modules/wrapt/default.nix4
-rw-r--r--pkgs/development/python-modules/wtf-peewee/default.nix4
-rw-r--r--pkgs/development/python-modules/xapp/default.nix4
-rw-r--r--pkgs/development/python-modules/xattr/default.nix4
-rw-r--r--pkgs/development/python-modules/xdot/default.nix4
-rw-r--r--pkgs/development/python-modules/xknx/default.nix4
-rw-r--r--pkgs/development/python-modules/xmind/default.nix34
-rw-r--r--pkgs/development/python-modules/xml2rfc/default.nix4
-rw-r--r--pkgs/development/python-modules/xmlschema/default.nix4
-rw-r--r--pkgs/development/python-modules/xpybutil/default.nix9
-rw-r--r--pkgs/development/python-modules/xstatic-jquery-ui/default.nix4
-rw-r--r--pkgs/development/python-modules/yalexs/default.nix13
-rw-r--r--pkgs/development/python-modules/yamlfix/default.nix55
-rw-r--r--pkgs/development/python-modules/yarl/default.nix4
-rw-r--r--pkgs/development/python-modules/yfinance/default.nix15
-rw-r--r--pkgs/development/python-modules/youless-api/default.nix4
-rw-r--r--pkgs/development/python-modules/youtube-search-python/default.nix4
-rw-r--r--pkgs/development/python-modules/youtube-transcript-api/default.nix4
-rw-r--r--pkgs/development/python-modules/yq/default.nix4
-rw-r--r--pkgs/development/python-modules/ytmusicapi/default.nix4
-rw-r--r--pkgs/development/python-modules/z3c-checkversions/default.nix4
-rw-r--r--pkgs/development/python-modules/zarr/default.nix4
-rw-r--r--pkgs/development/python-modules/zeroconf/default.nix6
-rw-r--r--pkgs/development/python-modules/zeversolarlocal/default.nix58
-rw-r--r--pkgs/development/python-modules/zha-quirks/default.nix4
-rw-r--r--pkgs/development/python-modules/zigpy-deconz/default.nix28
-rw-r--r--pkgs/development/python-modules/zigpy-znp/default.nix11
-rw-r--r--pkgs/development/python-modules/zigpy/default.nix7
-rw-r--r--pkgs/development/python-modules/zope_proxy/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_schema/default.nix4
-rw-r--r--pkgs/development/python-modules/zope_testrunner/default.nix4
-rw-r--r--pkgs/development/python-modules/zwave-js-server-python/default.nix11
-rw-r--r--pkgs/development/quickemu/default.nix29
-rw-r--r--pkgs/development/quickemu/efi_vars_ensure_writable.patch13
-rw-r--r--pkgs/development/quickemu/input_overrides.patch28
-rw-r--r--pkgs/development/r-modules/bioc-annotation-packages.nix6
-rw-r--r--pkgs/development/r-modules/bioc-experiment-packages.nix10
-rw-r--r--pkgs/development/r-modules/bioc-packages.nix155
-rw-r--r--pkgs/development/r-modules/cran-packages.nix1982
-rw-r--r--pkgs/development/r-modules/default.nix89
-rw-r--r--pkgs/development/r-modules/generic-builder.nix2
-rw-r--r--pkgs/development/ruby-modules/gem-config/default.nix15
-rw-r--r--pkgs/development/ruby-modules/gem-config/zookeeper-ftbfs-with-gcc-8.patch11
-rw-r--r--pkgs/development/ruby-modules/with-packages/Gemfile1
-rw-r--r--pkgs/development/tools/air/default.nix6
-rw-r--r--pkgs/development/tools/alloy/default.nix44
-rw-r--r--pkgs/development/tools/ammonite/default.nix8
-rw-r--r--pkgs/development/tools/analysis/actionlint/default.nix6
-rw-r--r--pkgs/development/tools/analysis/checkov/default.nix15
-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/cpplint/0001-Remove-pytest-runner-version-pin.patch16
-rw-r--r--pkgs/development/tools/analysis/cpplint/default.nix6
-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/include-what-you-use/default.nix4
-rw-r--r--pkgs/development/tools/analysis/pmd/default.nix4
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix14
-rw-r--r--pkgs/development/tools/analysis/tartan/default.nix52
-rw-r--r--pkgs/development/tools/analysis/tflint/default.nix6
-rw-r--r--pkgs/development/tools/analysis/tfsec/default.nix4
-rw-r--r--pkgs/development/tools/analysis/valgrind/default.nix18
-rw-r--r--pkgs/development/tools/aws-sam-cli/default.nix6
-rw-r--r--pkgs/development/tools/azure-functions-core-tools/default.nix2
-rw-r--r--pkgs/development/tools/backblaze-b2/default.nix14
-rw-r--r--pkgs/development/tools/bacon/default.nix6
-rw-r--r--pkgs/development/tools/bazelisk/default.nix6
-rw-r--r--pkgs/development/tools/boost-build/darwin-default-toolset.patch12
-rw-r--r--pkgs/development/tools/boost-build/default.nix9
-rw-r--r--pkgs/development/tools/build-managers/apache-ant/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/apache-maven/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/bazel/README.md7
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix8
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_1/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_3/default.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_4/actions_path.patch41
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_4/default.nix102
-rw-r--r--pkgs/development/tools/build-managers/bazel/buildtools/default.nix8
-rw-r--r--pkgs/development/tools/build-managers/bazel/cpp-test.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/java-test.nix2
-rw-r--r--pkgs/development/tools/build-managers/bazel/protobuf-test.nix2
-rw-r--r--pkgs/development/tools/build-managers/bear/default.nix3
-rw-r--r--pkgs/development/tools/build-managers/bloop/default.nix54
-rw-r--r--pkgs/development/tools/build-managers/cmake/2.8.nix5
-rw-r--r--pkgs/development/tools/build-managers/cmake/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/conan/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/corrosion/default.nix11
-rw-r--r--pkgs/development/tools/build-managers/gn/default.nix58
-rw-r--r--pkgs/development/tools/build-managers/gn/generic.nix60
-rw-r--r--pkgs/development/tools/build-managers/gn/rev1924.nix8
-rw-r--r--pkgs/development/tools/build-managers/gradle/default.nix177
-rw-r--r--pkgs/development/tools/build-managers/gradle/gradle-4.10.3-spec.nix5
-rw-r--r--pkgs/development/tools/build-managers/gradle/gradle-5.6.4-spec.nix5
-rw-r--r--pkgs/development/tools/build-managers/gradle/gradle-6.9.1-spec.nix5
-rw-r--r--pkgs/development/tools/build-managers/gradle/gradle-7.2-spec.nix5
-rw-r--r--pkgs/development/tools/build-managers/gradle/gradle-7.3-spec.nix5
-rw-r--r--pkgs/development/tools/build-managers/mage/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/meson/0.57/allow-dirs-outside-of-prefix.patch (renamed from pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch)0
-rw-r--r--pkgs/development/tools/build-managers/meson/0.57/boost-Do-not-add-system-paths-on-nix.patch (renamed from pkgs/development/tools/build-managers/meson/boost-Do-not-add-system-paths-on-nix.patch)0
-rw-r--r--pkgs/development/tools/build-managers/meson/0.57/clear-old-rpath.patch (renamed from pkgs/development/tools/build-managers/meson/clear-old-rpath.patch)0
-rw-r--r--pkgs/development/tools/build-managers/meson/0.57/default.nix (renamed from pkgs/development/tools/build-managers/meson/default.nix)1
-rw-r--r--pkgs/development/tools/build-managers/meson/0.57/fix-rpath.patch (renamed from pkgs/development/tools/build-managers/meson/fix-rpath.patch)0
-rw-r--r--pkgs/development/tools/build-managers/meson/0.57/gir-fallback-path.patch (renamed from pkgs/development/tools/build-managers/meson/gir-fallback-path.patch)0
-rw-r--r--pkgs/development/tools/build-managers/meson/0.57/more-env-vars.patch (renamed from pkgs/development/tools/build-managers/meson/more-env-vars.patch)0
-rw-r--r--pkgs/development/tools/build-managers/meson/0.57/setup-hook.sh (renamed from pkgs/development/tools/build-managers/meson/setup-hook.sh)0
-rw-r--r--pkgs/development/tools/build-managers/meson/0.60/allow-dirs-outside-of-prefix.patch19
-rw-r--r--pkgs/development/tools/build-managers/meson/0.60/boost-Do-not-add-system-paths-on-nix.patch21
-rw-r--r--pkgs/development/tools/build-managers/meson/0.60/clear-old-rpath.patch20
-rw-r--r--pkgs/development/tools/build-managers/meson/0.60/default.nix109
-rw-r--r--pkgs/development/tools/build-managers/meson/0.60/fix-rpath.patch24
-rw-r--r--pkgs/development/tools/build-managers/meson/0.60/gir-fallback-path.patch21
-rw-r--r--pkgs/development/tools/build-managers/meson/0.60/more-env-vars.patch12
-rw-r--r--pkgs/development/tools/build-managers/meson/0.60/setup-hook.sh37
-rw-r--r--pkgs/development/tools/build-managers/mill/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/qbs/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/redo-apenwarr/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/rocm-cmake/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/sbt/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/scala-cli/default.nix14
-rw-r--r--pkgs/development/tools/build-managers/tup/setup-hook.sh52
-rw-r--r--pkgs/development/tools/build-managers/wafHook/setup-hook.sh5
-rw-r--r--pkgs/development/tools/buildkit/default.nix4
-rw-r--r--pkgs/development/tools/buildpack/default.nix6
-rw-r--r--pkgs/development/tools/bunyan-rs/default.nix6
-rw-r--r--pkgs/development/tools/cargo-flamegraph/default.nix6
-rw-r--r--pkgs/development/tools/checkmate/default.nix6
-rw-r--r--pkgs/development/tools/clang-tools/default.nix2
-rw-r--r--pkgs/development/tools/clj-kondo/default.nix40
-rw-r--r--pkgs/development/tools/cloud-nuke/default.nix6
-rw-r--r--pkgs/development/tools/cloudsmith-cli/default.nix4
-rw-r--r--pkgs/development/tools/compass/Gemfile.lock12
-rw-r--r--pkgs/development/tools/compass/gemset.nix20
-rw-r--r--pkgs/development/tools/conftest/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/github-runner/default.nix21
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/0001-gitlab-runner-don-t-checked-for-fixed-runtime.patch30
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/default.nix25
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/fix-shell-path.patch17
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix4
-rw-r--r--pkgs/development/tools/crd2pulumi/default.nix26
-rw-r--r--pkgs/development/tools/database/clickhouse-backup/default.nix27
-rw-r--r--pkgs/development/tools/database/litestream/default.nix4
-rw-r--r--pkgs/development/tools/database/prisma-engines/default.nix6
-rw-r--r--pkgs/development/tools/database/sqlfluff/default.nix4
-rw-r--r--pkgs/development/tools/datree/default.nix30
-rw-r--r--pkgs/development/tools/ddosify/default.nix8
-rw-r--r--pkgs/development/tools/delve/default.nix4
-rw-r--r--pkgs/development/tools/devpi-client/default.nix10
-rw-r--r--pkgs/development/tools/doctl/default.nix4
-rw-r--r--pkgs/development/tools/documentation/gi-docgen/default.nix4
-rw-r--r--pkgs/development/tools/dprint/default.nix6
-rw-r--r--pkgs/development/tools/dstp/default.nix6
-rw-r--r--pkgs/development/tools/dtools/default.nix37
-rw-r--r--pkgs/development/tools/dyff/default.nix6
-rw-r--r--pkgs/development/tools/earthly/default.nix6
-rw-r--r--pkgs/development/tools/efm-langserver/default.nix4
-rw-r--r--pkgs/development/tools/electron/default.nix64
-rw-r--r--pkgs/development/tools/esbuild/default.nix4
-rw-r--r--pkgs/development/tools/faas-cli/default.nix6
-rw-r--r--pkgs/development/tools/flatpak-builder/default.nix69
-rw-r--r--pkgs/development/tools/fnm/default.nix18
-rw-r--r--pkgs/development/tools/fq/default.nix35
-rw-r--r--pkgs/development/tools/frugal/default.nix6
-rw-r--r--pkgs/development/tools/gir/default.nix15
-rw-r--r--pkgs/development/tools/go-task/default.nix12
-rw-r--r--pkgs/development/tools/go-tools/default.nix4
-rw-r--r--pkgs/development/tools/gojsontoyaml/default.nix6
-rw-r--r--pkgs/development/tools/google-java-format/default.nix4
-rw-r--r--pkgs/development/tools/gopls/default.nix6
-rw-r--r--pkgs/development/tools/gosec/default.nix25
-rw-r--r--pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix6
-rw-r--r--pkgs/development/tools/hcloud/default.nix6
-rw-r--r--pkgs/development/tools/hjson-go/default.nix22
-rw-r--r--pkgs/development/tools/hostess/default.nix23
-rw-r--r--pkgs/development/tools/hover/default.nix8
-rw-r--r--pkgs/development/tools/iaca/2.1.nix7
-rw-r--r--pkgs/development/tools/iaca/3.0.nix7
-rw-r--r--pkgs/development/tools/java/cfr/default.nix4
-rw-r--r--pkgs/development/tools/jet/default.nix50
-rw-r--r--pkgs/development/tools/jql/default.nix6
-rw-r--r--pkgs/development/tools/jtc/default.nix6
-rw-r--r--pkgs/development/tools/just/default.nix12
-rw-r--r--pkgs/development/tools/k6/default.nix24
-rw-r--r--pkgs/development/tools/kafka-delta-ingest/default.nix45
-rw-r--r--pkgs/development/tools/kexpand/default.nix3
-rw-r--r--pkgs/development/tools/konstraint/default.nix6
-rw-r--r--pkgs/development/tools/kotlin-language-server/default.nix32
-rw-r--r--pkgs/development/tools/krankerl/default.nix6
-rw-r--r--pkgs/development/tools/ktlint/default.nix4
-rw-r--r--pkgs/development/tools/kubie/default.nix6
-rw-r--r--pkgs/development/tools/kustomize/default.nix11
-rw-r--r--pkgs/development/tools/lazygit/default.nix4
-rw-r--r--pkgs/development/tools/mani/default.nix45
-rw-r--r--pkgs/development/tools/manul/default.nix3
-rw-r--r--pkgs/development/tools/metal-cli/default.nix6
-rw-r--r--pkgs/development/tools/misc/act/default.nix6
-rw-r--r--pkgs/development/tools/misc/autoconf/2.13.nix7
-rw-r--r--pkgs/development/tools/misc/autoconf/2.64.nix7
-rw-r--r--pkgs/development/tools/misc/autoconf/2.69.nix7
-rw-r--r--pkgs/development/tools/misc/autoconf/2.71-fix-race.patch36
-rw-r--r--pkgs/development/tools/misc/autoconf/default.nix5
-rw-r--r--pkgs/development/tools/misc/autogen/default.nix36
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.11.x.nix5
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.15.x.nix5
-rw-r--r--pkgs/development/tools/misc/automake/automake-1.16.x.nix5
-rw-r--r--pkgs/development/tools/misc/blackfire/default.nix4
-rw-r--r--pkgs/development/tools/misc/blackfire/php-probe.nix5
-rw-r--r--pkgs/development/tools/misc/circleci-cli/default.nix4
-rw-r--r--pkgs/development/tools/misc/cl-launch/default.nix34
-rw-r--r--pkgs/development/tools/misc/cl-launch/default.upstream2
-rw-r--r--pkgs/development/tools/misc/clojure-lsp/default.nix49
-rw-r--r--pkgs/development/tools/misc/coreboot-toolchain/default.nix131
-rw-r--r--pkgs/development/tools/misc/cproto/default.nix4
-rw-r--r--pkgs/development/tools/misc/cvise/default.nix8
-rw-r--r--pkgs/development/tools/misc/debugedit/default.nix10
-rw-r--r--pkgs/development/tools/misc/editorconfig-checker/default.nix6
-rw-r--r--pkgs/development/tools/misc/elfutils/default.nix5
-rw-r--r--pkgs/development/tools/misc/elfutils/musl-cdefs_h.patch15
-rw-r--r--pkgs/development/tools/misc/gdb/default.nix9
-rw-r--r--pkgs/development/tools/misc/gede/default.nix4
-rw-r--r--pkgs/development/tools/misc/gengetopt/default.nix3
-rw-r--r--pkgs/development/tools/misc/gperf/3.0.x.nix7
-rw-r--r--pkgs/development/tools/misc/help2man/default.nix6
-rw-r--r--pkgs/development/tools/misc/indent/default.nix8
-rw-r--r--pkgs/development/tools/misc/itstool/default.nix6
-rw-r--r--pkgs/development/tools/misc/kibana/6.x.nix12
-rw-r--r--pkgs/development/tools/misc/kibana/7.x.nix10
-rw-r--r--pkgs/development/tools/misc/libtree/default.nix57
-rw-r--r--pkgs/development/tools/misc/lit/default.nix4
-rw-r--r--pkgs/development/tools/misc/lttng-tools/default.nix4
-rw-r--r--pkgs/development/tools/misc/lttng-ust/2.12.nix4
-rw-r--r--pkgs/development/tools/misc/lttng-ust/default.nix44
-rw-r--r--pkgs/development/tools/misc/lttng-ust/generic.nix44
-rw-r--r--pkgs/development/tools/misc/netcoredbg/deps.nix164
-rw-r--r--pkgs/development/tools/misc/pahole/default.nix15
-rw-r--r--pkgs/development/tools/misc/patchelf/0.9.nix5
-rw-r--r--pkgs/development/tools/misc/patchelf/unstable.nix6
-rw-r--r--pkgs/development/tools/misc/pkgconf/default.nix4
-rw-r--r--pkgs/development/tools/misc/polylith/default.nix4
-rw-r--r--pkgs/development/tools/misc/premake/default.nix2
-rw-r--r--pkgs/development/tools/misc/pwndbg/default.nix5
-rw-r--r--pkgs/development/tools/misc/spruce/default.nix6
-rw-r--r--pkgs/development/tools/misc/strace/default.nix4
-rw-r--r--pkgs/development/tools/misc/tcptrack/default.nix18
-rw-r--r--pkgs/development/tools/misc/terraform-ls/default.nix6
-rw-r--r--pkgs/development/tools/mold/default.nix4
-rw-r--r--pkgs/development/tools/nwjs/default.nix24
-rw-r--r--pkgs/development/tools/ocaml/camlp4/default.nix17
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix12
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix3
-rw-r--r--pkgs/development/tools/ocaml/merlin/4.x.nix13
-rw-r--r--pkgs/development/tools/ocaml/obelisk/default.nix12
-rw-r--r--pkgs/development/tools/ocaml/opam/default.nix8
-rw-r--r--pkgs/development/tools/open-policy-agent/default.nix4
-rw-r--r--pkgs/development/tools/oq/default.nix4
-rw-r--r--pkgs/development/tools/packer/default.nix8
-rw-r--r--pkgs/development/tools/parsing/antlr/2.7.7.nix7
-rw-r--r--pkgs/development/tools/parsing/antlr/4.8.nix4
-rw-r--r--pkgs/development/tools/parsing/antlr/4.9.nix95
-rw-r--r--pkgs/development/tools/parsing/flex/2.5.35.nix7
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/default.nix6
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/default.nix37
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-bibtex.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cmake.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-commonlisp.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cuda.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-devicetree.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-dockerfile.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elm.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-erlang.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fortran.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gdscript.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-glimmer.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-glsl.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-godot-resource.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gomod.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-graphql.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-hjson.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-http.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json5.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-kotlin.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ledger.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-llvm.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-make.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-norg.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-perl.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pioasm.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-prisma.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pug.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-query.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-r.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scss.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-sparql.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-supercollider.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-surface.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-tlaplus.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-turtle.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-vue.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yang.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/update.nix201
-rw-r--r--pkgs/development/tools/perseus-cli/default.nix28
-rw-r--r--pkgs/development/tools/pet/default.nix6
-rw-r--r--pkgs/development/tools/pgformatter/default.nix4
-rw-r--r--pkgs/development/tools/pipenv/default.nix4
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/default.nix54
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/fetch_from_legacy.py34
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix23
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/hooks/pyproject-without-path.py25
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/hooks/pyproject-without-special-deps.py52
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/hooks/remove-path-dependencies.sh12
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/hooks/remove-special-dependencies.sh20
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/lib.nix16
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix6
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix171
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock387
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml9
-rw-r--r--pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json4
-rwxr-xr-xpkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update1
-rw-r--r--pkgs/development/tools/profiling/heaptrack/default.nix4
-rw-r--r--pkgs/development/tools/profiling/sysprof/default.nix13
-rw-r--r--pkgs/development/tools/protoc-gen-go-vtproto/default.nix26
-rw-r--r--pkgs/development/tools/protoc-gen-twirp/default.nix4
-rw-r--r--pkgs/development/tools/pscale/default.nix6
-rw-r--r--pkgs/development/tools/pup/default.nix2
-rw-r--r--pkgs/development/tools/py-spy/default.nix6
-rw-r--r--pkgs/development/tools/rnix-lsp/default.nix6
-rw-r--r--pkgs/development/tools/rocminfo/default.nix4
-rw-r--r--pkgs/development/tools/rust/bindgen/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-cache/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-deny/default.nix15
-rw-r--r--pkgs/development/tools/rust/cargo-deny/zstd-pkg-config.patch29
-rw-r--r--pkgs/development/tools/rust/cargo-embed/default.nix7
-rw-r--r--pkgs/development/tools/rust/cargo-expand/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-feature/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-flash/default.nix7
-rw-r--r--pkgs/development/tools/rust/cargo-fuzz/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-generate/default.nix12
-rw-r--r--pkgs/development/tools/rust/cargo-make/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-msrv/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-sort/default.nix7
-rw-r--r--pkgs/development/tools/rust/cargo-spellcheck/default.nix8
-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-wipe/default.nix6
-rw-r--r--pkgs/development/tools/rust/probe-run/default.nix14
-rw-r--r--pkgs/development/tools/rust/rust-analyzer/default.nix37
-rwxr-xr-xpkgs/development/tools/rust/rust-analyzer/update.sh42
-rw-r--r--pkgs/development/tools/rust/rust-script/default.nix6
-rw-r--r--pkgs/development/tools/sassc/default.nix6
-rw-r--r--pkgs/development/tools/scalafmt/default.nix4
-rw-r--r--pkgs/development/tools/scenebuilder/default.nix6
-rw-r--r--pkgs/development/tools/scenic-view/default.nix5
-rw-r--r--pkgs/development/tools/selenium/server/default.nix2
-rw-r--r--pkgs/development/tools/shellcheck/default.nix6
-rw-r--r--pkgs/development/tools/skaffold/default.nix8
-rw-r--r--pkgs/development/tools/skopeo/default.nix4
-rw-r--r--pkgs/development/tools/slimerjs/default.nix43
-rw-r--r--pkgs/development/tools/slimerjs/default.upstream2
-rw-r--r--pkgs/development/tools/slimerjs/default.upstream.git3
-rw-r--r--pkgs/development/tools/stagit/default.nix4
-rw-r--r--pkgs/development/tools/sumneko-lua-language-server/default.nix40
-rw-r--r--pkgs/development/tools/symfony-cli/default.nix35
-rw-r--r--pkgs/development/tools/taplo-cli/default.nix8
-rw-r--r--pkgs/development/tools/treefmt/default.nix6
-rw-r--r--pkgs/development/tools/turbogit/default.nix6
-rw-r--r--pkgs/development/tools/typos/default.nix6
-rw-r--r--pkgs/development/tools/vala-language-server/default.nix4
-rw-r--r--pkgs/development/tools/vala-lint/default.nix27
-rw-r--r--pkgs/development/tools/vultr-cli/default.nix4
-rw-r--r--pkgs/development/tools/wabt/default.nix4
-rw-r--r--pkgs/development/tools/wasm-pack/default.nix6
-rw-r--r--pkgs/development/tools/wrangler/default.nix6
-rw-r--r--pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix25
-rwxr-xr-xpkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_yarn_lock.js4
-rw-r--r--pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/generateNix.js6
-rw-r--r--pkgs/development/tools/yq-go/default.nix6
-rw-r--r--pkgs/development/tools/zprint/default.nix45
-rw-r--r--pkgs/development/web/cypress/default.nix4
-rw-r--r--pkgs/development/web/deno/default.nix10
-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/insomnia/default.nix9
-rw-r--r--pkgs/development/web/nodejs/nodejs.nix34
-rw-r--r--pkgs/development/web/nodejs/v12.nix4
-rw-r--r--pkgs/development/web/nodejs/v16.nix16
-rw-r--r--pkgs/development/web/nodejs/v17.nix16
-rw-r--r--pkgs/development/web/postman/default.nix4
-rw-r--r--pkgs/development/web/twitter-bootstrap/default.nix4
-rw-r--r--pkgs/games/0ad/game.nix4
-rw-r--r--pkgs/games/arx-libertatis/default.nix4
-rw-r--r--pkgs/games/asc/default.nix2
-rw-r--r--pkgs/games/astromenace/default.nix16
-rw-r--r--pkgs/games/augustus/default.nix4
-rw-r--r--pkgs/games/cataclysm-dda/stable.nix6
-rw-r--r--pkgs/games/cbonsai/default.nix8
-rw-r--r--pkgs/games/cdogs-sdl/default.nix1
-rw-r--r--pkgs/games/chiaki/default.nix4
-rw-r--r--pkgs/games/crispy-doom/default.nix6
-rw-r--r--pkgs/games/ddnet/default.nix6
-rwxr-xr-xpkgs/games/dwarf-fortress/update.sh34
-rw-r--r--pkgs/games/easyrpg-player/default.nix2
-rw-r--r--pkgs/games/endgame-singularity/default.nix9
-rw-r--r--pkgs/games/endless-sky/default.nix15
-rw-r--r--pkgs/games/eternity-engine/default.nix13
-rw-r--r--pkgs/games/factorio/versions.json40
-rw-r--r--pkgs/games/fheroes2/default.nix5
-rw-r--r--pkgs/games/fishfight/default.nix23
-rw-r--r--pkgs/games/fishfight/use-system-sdl2.patch39
-rw-r--r--pkgs/games/freeciv/default.nix4
-rw-r--r--pkgs/games/freesweep/default.nix21
-rw-r--r--pkgs/games/frogatto/data.nix6
-rw-r--r--pkgs/games/frogatto/engine.nix11
-rw-r--r--pkgs/games/gcompris/default.nix4
-rw-r--r--pkgs/games/gnome-hexgl/default.nix4
-rw-r--r--pkgs/games/gnonograms/default.nix6
-rw-r--r--pkgs/games/gnuchess/default.nix35
-rw-r--r--pkgs/games/gnuchess/default.upstream1
-rw-r--r--pkgs/games/gotypist/default.nix26
-rw-r--r--pkgs/games/gzdoom/default.nix4
-rw-r--r--pkgs/games/heroic/default.nix38
-rw-r--r--pkgs/games/keen4/builder.sh36
-rw-r--r--pkgs/games/keen4/default.nix35
-rw-r--r--pkgs/games/legendary-gl/default.nix4
-rw-r--r--pkgs/games/lunar-client/default.nix7
-rw-r--r--pkgs/games/mindustry/default.nix36
-rw-r--r--pkgs/games/minecraft-server/default.nix6
-rw-r--r--pkgs/games/mudlet/default.nix2
-rw-r--r--pkgs/games/nanosaur/default.nix48
-rw-r--r--pkgs/games/odamex/default.nix4
-rw-r--r--pkgs/games/openrct2/default.nix7
-rw-r--r--pkgs/games/openrw/default.nix5
-rw-r--r--pkgs/games/osu-lazer/default.nix6
-rw-r--r--pkgs/games/osu-lazer/deps.nix720
-rw-r--r--pkgs/games/papermc/default.nix6
-rw-r--r--pkgs/games/pentobi/default.nix4
-rw-r--r--pkgs/games/performous/default.nix4
-rw-r--r--pkgs/games/pokerth/default.nix2
-rw-r--r--pkgs/games/quake3/quake3e/default.nix1
-rw-r--r--pkgs/games/quakespasm/default.nix4
-rw-r--r--pkgs/games/quakespasm/vulkan.nix4
-rw-r--r--pkgs/games/quantumminigolf/default.nix44
-rw-r--r--pkgs/games/quantumminigolf/default.upstream4
-rw-r--r--pkgs/games/residualvm/default.nix29
-rw-r--r--pkgs/games/rpg-cli/default.nix2
-rw-r--r--pkgs/games/sauerbraten/default.nix50
-rw-r--r--pkgs/games/scummvm/default.nix4
-rw-r--r--pkgs/games/shattered-pixel-dungeon/default.nix8
-rw-r--r--pkgs/games/shticker-book-unwritten/default.nix7
-rw-r--r--pkgs/games/sm64ex/default.nix8
-rw-r--r--pkgs/games/space-cadet-pinball/default.nix51
-rw-r--r--pkgs/games/spring/default.nix2
-rw-r--r--pkgs/games/spring/springlobby.nix2
-rw-r--r--pkgs/games/starsector/default.nix4
-rw-r--r--pkgs/games/steam-tui/default.nix2
-rw-r--r--pkgs/games/steam/fhsenv.nix1
-rw-r--r--pkgs/games/steam/runtime.nix4
-rw-r--r--pkgs/games/steam/steam.nix7
-rw-r--r--pkgs/games/vintagestory/default.nix4
-rw-r--r--pkgs/games/warzone2100/default.nix23
-rw-r--r--pkgs/games/wesnoth/default.nix3
-rw-r--r--pkgs/games/xboard/default.nix74
-rw-r--r--pkgs/games/xboard/default.upstream1
-rw-r--r--pkgs/games/xsnow/default.nix4
-rw-r--r--pkgs/misc/arm-trusted-firmware/default.nix4
-rw-r--r--pkgs/misc/autotiling/default.nix4
-rw-r--r--pkgs/misc/cliscord/default.nix2
-rw-r--r--pkgs/misc/cups/0001-TargetConditionals.patch29
-rw-r--r--pkgs/misc/cups/default.nix2
-rw-r--r--pkgs/misc/cups/drivers/estudio/default.nix2
-rw-r--r--pkgs/misc/cups/drivers/hll2350dw/default.nix94
-rw-r--r--pkgs/misc/cups/drivers/mfcj470dwcupswrapper/default.nix16
-rw-r--r--pkgs/misc/cups/drivers/mfcl2740dwcupswrapper/default.nix2
-rw-r--r--pkgs/misc/cups/drivers/mfcl2740dwlpr/default.nix2
-rw-r--r--pkgs/misc/drivers/epson-escpr2/default.nix10
-rw-r--r--pkgs/misc/drivers/utsushi/default.nix36
-rw-r--r--pkgs/misc/drivers/utsushi/networkscan.nix31
-rw-r--r--pkgs/misc/emulators/ares/default.nix84
-rw-r--r--pkgs/misc/emulators/ares/fix-ruby.patch27
-rw-r--r--pkgs/misc/emulators/citra/default.nix66
-rw-r--r--pkgs/misc/emulators/dolphin-emu/master.nix19
-rw-r--r--pkgs/misc/emulators/dolphin-emu/primehack.nix151
-rw-r--r--pkgs/misc/emulators/duckstation/default.nix55
-rw-r--r--pkgs/misc/emulators/epsxe/default.nix2
-rw-r--r--pkgs/misc/emulators/mame/default.nix4
-rw-r--r--pkgs/misc/emulators/mednaffe/default.nix18
-rw-r--r--pkgs/misc/emulators/melonDS/default.nix4
-rw-r--r--pkgs/misc/emulators/mgba/default.nix12
-rw-r--r--pkgs/misc/emulators/nestopia/default.nix4
-rw-r--r--pkgs/misc/emulators/pcsx2/default.nix16
-rw-r--r--pkgs/misc/emulators/retroarch/cores.nix256
-rw-r--r--pkgs/misc/emulators/retroarch/default.nix15
-rw-r--r--pkgs/misc/emulators/retroarch/hashes.json231
-rwxr-xr-xpkgs/misc/emulators/retroarch/update.py39
-rw-r--r--pkgs/misc/emulators/ryujinx/deps.nix448
-rw-r--r--pkgs/misc/emulators/snes9x-gtk/default.nix4
-rw-r--r--pkgs/misc/emulators/vice/default.nix69
-rw-r--r--pkgs/misc/emulators/wine/sources.nix16
-rw-r--r--pkgs/misc/emulators/yuzu/default.nix4
-rw-r--r--pkgs/misc/ghostscript/default.nix43
-rw-r--r--pkgs/misc/logging/beats/6.x.nix2
-rw-r--r--pkgs/misc/logging/beats/7.x.nix24
-rw-r--r--pkgs/misc/openrussian-cli/default.nix6
-rw-r--r--pkgs/misc/plasma-hud/default.nix41
-rw-r--r--pkgs/misc/present/default.nix2
-rw-r--r--pkgs/misc/scrcpy/default.nix6
-rw-r--r--pkgs/misc/screensavers/xlockmore/default.nix4
-rw-r--r--pkgs/misc/vim-plugins/deprecated.json8
-rw-r--r--pkgs/misc/vim-plugins/generated.nix1549
-rw-r--r--pkgs/misc/vim-plugins/overrides.nix19
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names196
-rw-r--r--pkgs/misc/vscode-extensions/default.nix60
-rw-r--r--pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json4
-rw-r--r--pkgs/misc/vscode-extensions/rust-analyzer/default.nix40
-rw-r--r--pkgs/misc/vscode-extensions/terraform/default.nix4
-rw-r--r--pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch4
-rw-r--r--pkgs/misc/wiki-tui/default.nix2
-rw-r--r--pkgs/os-specific/bsd/netbsd/default.nix12
-rw-r--r--pkgs/os-specific/darwin/apple-sdk/default.nix6
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/Libc/0001-Define-TARGET_OS_EMBEDDED-in-std-lib-io-if-not-defin.patch47
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix4
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix30
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/xnu/python3.patch2
-rw-r--r--pkgs/os-specific/darwin/swift-corelibs/0001-Add-missing-TARGET_OS_-defines.patch30
-rw-r--r--pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix25
-rw-r--r--pkgs/os-specific/darwin/yabai/default.nix15
-rw-r--r--pkgs/os-specific/linux/acpi-call/default.nix2
-rw-r--r--pkgs/os-specific/linux/acpid/default.nix12
-rw-r--r--pkgs/os-specific/linux/alsa-project/alsa-utils/default.nix4
-rw-r--r--pkgs/os-specific/linux/amdgpu-pro/default.nix6
-rw-r--r--pkgs/os-specific/linux/apparmor/default.nix104
-rw-r--r--pkgs/os-specific/linux/asus-ec-sensors/default.nix34
-rw-r--r--pkgs/os-specific/linux/audit/default.nix15
-rw-r--r--pkgs/os-specific/linux/autofs/default.nix8
-rw-r--r--pkgs/os-specific/linux/bcc/absolute-ausyscall.patch43
-rw-r--r--pkgs/os-specific/linux/bcc/default.nix32
-rw-r--r--pkgs/os-specific/linux/bpftrace/btf-dump-new-0.6.0.patch39
-rw-r--r--pkgs/os-specific/linux/bpftrace/default.nix35
-rw-r--r--pkgs/os-specific/linux/bpftrace/fix-kernel-include-dir.patch22
-rw-r--r--pkgs/os-specific/linux/brillo/default.nix4
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/default.nix2
-rw-r--r--pkgs/os-specific/linux/checkpolicy/default.nix8
-rw-r--r--pkgs/os-specific/linux/cifs-utils/default.nix4
-rw-r--r--pkgs/os-specific/linux/conspy/default.nix44
-rw-r--r--pkgs/os-specific/linux/conspy/default.upstream5
-rw-r--r--pkgs/os-specific/linux/cpuid/default.nix9
-rw-r--r--pkgs/os-specific/linux/cpustat/default.nix15
-rw-r--r--pkgs/os-specific/linux/ddcci/default.nix16
-rw-r--r--pkgs/os-specific/linux/dpdk/default.nix19
-rw-r--r--pkgs/os-specific/linux/drbd/default.nix133
-rw-r--r--pkgs/os-specific/linux/drbd/fix-glibc-compilation.patch24
-rw-r--r--pkgs/os-specific/linux/drbd/pass-force.patch15
-rw-r--r--pkgs/os-specific/linux/ell/default.nix6
-rw-r--r--pkgs/os-specific/linux/erofs-utils/default.nix4
-rw-r--r--pkgs/os-specific/linux/eventstat/default.nix26
-rw-r--r--pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix6
-rw-r--r--pkgs/os-specific/linux/firmware/fwupd/default.nix7
-rw-r--r--pkgs/os-specific/linux/firmware/fwupd/efi-app-path.patch13
-rw-r--r--pkgs/os-specific/linux/firmware/sof-firmware/default.nix6
-rw-r--r--pkgs/os-specific/linux/forkstat/default.nix27
-rw-r--r--pkgs/os-specific/linux/forktty/default.nix39
-rw-r--r--pkgs/os-specific/linux/forktty/default.upstream2
-rw-r--r--pkgs/os-specific/linux/fscrypt/default.nix6
-rw-r--r--pkgs/os-specific/linux/fswebcam/default.nix4
-rw-r--r--pkgs/os-specific/linux/gogoclient/default.nix11
-rw-r--r--pkgs/os-specific/linux/greetd/default.nix6
-rw-r--r--pkgs/os-specific/linux/health-check/default.nix15
-rw-r--r--pkgs/os-specific/linux/hostapd/default.nix2
-rw-r--r--pkgs/os-specific/linux/intel-cmt-cat/default.nix4
-rw-r--r--pkgs/os-specific/linux/iw/default.nix4
-rw-r--r--pkgs/os-specific/linux/iwd/default.nix13
-rw-r--r--pkgs/os-specific/linux/kernel-headers/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix11
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/patches.json60
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.19.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.10.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.14.nix18
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.15.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-libre.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-lqx.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.10.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-5.4.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix10
-rw-r--r--pkgs/os-specific/linux/kernel/linux-xanmod.nix14
-rw-r--r--pkgs/os-specific/linux/kernel/linux-zen.nix4
-rw-r--r--pkgs/os-specific/linux/libbpf/default.nix36
-rw-r--r--pkgs/os-specific/linux/libselinux/default.nix37
-rw-r--r--pkgs/os-specific/linux/libsemanage/default.nix8
-rw-r--r--pkgs/os-specific/linux/libsepol/default.nix25
-rw-r--r--pkgs/os-specific/linux/libtraceevent/default.nix4
-rw-r--r--pkgs/os-specific/linux/liquidtux/default.nix33
-rw-r--r--pkgs/os-specific/linux/lm-sensors/default.nix2
-rw-r--r--pkgs/os-specific/linux/lxcfs/default.nix4
-rw-r--r--pkgs/os-specific/linux/mcelog/default.nix4
-rw-r--r--pkgs/os-specific/linux/mdevd/default.nix4
-rw-r--r--pkgs/os-specific/linux/mxu11x0/default.nix18
-rw-r--r--pkgs/os-specific/linux/mxu11x0/srcs.nix18
-rw-r--r--pkgs/os-specific/linux/nftables/default.nix7
-rwxr-xr-xpkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh28
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/default.nix19
-rw-r--r--pkgs/os-specific/linux/nvme-cli/default.nix4
-rw-r--r--pkgs/os-specific/linux/ocf-resource-agents/default.nix56
-rw-r--r--pkgs/os-specific/linux/pam_u2f/default.nix4
-rw-r--r--pkgs/os-specific/linux/pax-utils/default.nix6
-rw-r--r--pkgs/os-specific/linux/phc-intel/default.nix3
-rw-r--r--pkgs/os-specific/linux/pktgen/default.nix7
-rw-r--r--pkgs/os-specific/linux/policycoreutils/default.nix10
-rw-r--r--pkgs/os-specific/linux/power-calibrate/default.nix15
-rw-r--r--pkgs/os-specific/linux/powercap/default.nix4
-rw-r--r--pkgs/os-specific/linux/powerstat/default.nix25
-rw-r--r--pkgs/os-specific/linux/pps-tools/default.nix11
-rw-r--r--pkgs/os-specific/linux/prl-tools/default.nix2
-rw-r--r--pkgs/os-specific/linux/psftools/default.nix4
-rw-r--r--pkgs/os-specific/linux/radeontop/default.nix7
-rw-r--r--pkgs/os-specific/linux/rdma-core/default.nix9
-rw-r--r--pkgs/os-specific/linux/rtl8821ce/default.nix8
-rw-r--r--pkgs/os-specific/linux/rtl88xxau-aircrack/default.nix2
-rw-r--r--pkgs/os-specific/linux/s6-linux-init/default.nix4
-rw-r--r--pkgs/os-specific/linux/s6-linux-utils/default.nix4
-rw-r--r--pkgs/os-specific/linux/selinux-python/default.nix9
-rw-r--r--pkgs/os-specific/linux/selinux-sandbox/default.nix8
-rw-r--r--pkgs/os-specific/linux/semodule-utils/default.nix8
-rw-r--r--pkgs/os-specific/linux/sepolgen/default.nix24
-rwxr-xr-xpkgs/os-specific/linux/service-wrapper/service-wrapper.sh70
-rw-r--r--pkgs/os-specific/linux/setools/default.nix12
-rw-r--r--pkgs/os-specific/linux/seturgent/default.nix24
-rw-r--r--pkgs/os-specific/linux/sgx-sdk/default.nix159
-rw-r--r--pkgs/os-specific/linux/sgx-sdk/ipp-crypto.nix24
-rw-r--r--pkgs/os-specific/linux/sgx/psw/default.nix190
-rw-r--r--pkgs/os-specific/linux/sgx/sdk/default.nix269
-rw-r--r--pkgs/os-specific/linux/sgx/sdk/ipp-crypto.nix36
-rw-r--r--pkgs/os-specific/linux/sgx/sdk/samples.nix63
-rw-r--r--pkgs/os-specific/linux/smemstat/default.nix34
-rw-r--r--pkgs/os-specific/linux/sssd/default.nix18
-rw-r--r--pkgs/os-specific/linux/sysdig/default.nix37
-rw-r--r--pkgs/os-specific/linux/system76-power/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.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0012-inherit-systemd-environment-when-calling-generators.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0013-add-rootprefix-to-lookup-dir-paths.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0014-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0015-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0016-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0017-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0018-pkg-config-derive-prefix-from-prefix.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0019-core-handle-lookup-paths-being-symlinks.patch4
-rw-r--r--pkgs/os-specific/linux/systemd/0020-sd-boot-Unify-error-handling.patch401
-rw-r--r--pkgs/os-specific/linux/systemd/0021-sd-boot-Rework-console-input-handling.patch320
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix20
-rw-r--r--pkgs/os-specific/linux/sysvinit/default.nix4
-rw-r--r--pkgs/os-specific/linux/uclibc/default.nix10
-rw-r--r--pkgs/os-specific/linux/udisks/2-default.nix14
-rw-r--r--pkgs/os-specific/linux/udisks/fix-paths.patch70
-rw-r--r--pkgs/os-specific/linux/udisks/force-path.patch14
-rw-r--r--pkgs/os-specific/linux/util-linux/default.nix21
-rw-r--r--pkgs/os-specific/linux/v86d/default.nix10
-rw-r--r--pkgs/os-specific/linux/vendor-reset/default.nix4
-rw-r--r--pkgs/os-specific/linux/virtualbox/default.nix3
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/gui.nix3
-rw-r--r--pkgs/os-specific/linux/x86_energy_perf_policy/default.nix3
-rw-r--r--pkgs/os-specific/linux/xsos/default.nix52
-rw-r--r--pkgs/os-specific/linux/zfs/default.nix20
-rw-r--r--pkgs/os-specific/linux/zsa-udev-rules/default.nix11
-rw-r--r--pkgs/os-specific/solo5/default.nix7
-rw-r--r--pkgs/os-specific/windows/pthread-w32/default.nix2
-rw-r--r--pkgs/servers/adguardhome/bins.nix16
-rw-r--r--pkgs/servers/adguardhome/default.nix2
-rw-r--r--pkgs/servers/apache-kafka/default.nix2
-rw-r--r--pkgs/servers/caddy/default.nix23
-rw-r--r--pkgs/servers/calibre-web/default.nix20
-rw-r--r--pkgs/servers/clickhouse/default.nix4
-rw-r--r--pkgs/servers/computing/slurm/default.nix4
-rw-r--r--pkgs/servers/computing/storm/default.nix6
-rw-r--r--pkgs/servers/corosync/default.nix4
-rw-r--r--pkgs/servers/dico/default.nix6
-rw-r--r--pkgs/servers/dict/default.nix4
-rw-r--r--pkgs/servers/dns/knot-dns/default.nix12
-rw-r--r--pkgs/servers/dns/knot-resolver/default.nix14
-rw-r--r--pkgs/servers/dns/nsd/default.nix4
-rw-r--r--pkgs/servers/dns/pdns-recursor/default.nix4
-rw-r--r--pkgs/servers/domoticz/default.nix1
-rw-r--r--pkgs/servers/duckling-proxy/default.nix21
-rw-r--r--pkgs/servers/felix/default.nix4
-rw-r--r--pkgs/servers/ftp/pure-ftpd/default.nix23
-rw-r--r--pkgs/servers/gemini/agate/default.nix4
-rw-r--r--pkgs/servers/heisenbridge/default.nix29
-rw-r--r--pkgs/servers/hitch/default.nix4
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix34
-rw-r--r--pkgs/servers/home-assistant/default.nix175
-rw-r--r--pkgs/servers/home-assistant/frontend.nix4
-rw-r--r--pkgs/servers/home-assistant/patches/ffmpeg-path.patch84
-rw-r--r--pkgs/servers/home-assistant/patches/tests-ignore-OSErrors-in-hass-fixture.patch (renamed from pkgs/servers/home-assistant/0001-tests-ignore-OSErrors-in-hass-fixture.patch)0
-rw-r--r--pkgs/servers/home-assistant/patches/tests-mock-source-ip.patch13
-rwxr-xr-xpkgs/servers/home-assistant/update.sh2
-rw-r--r--pkgs/servers/http/apache-modules/mod_itk/default.nix39
-rw-r--r--pkgs/servers/http/couchdb/3.nix2
-rw-r--r--pkgs/servers/http/dave/default.nix28
-rw-r--r--pkgs/servers/http/envoy/default.nix14
-rw-r--r--pkgs/servers/http/gitlab-pages/default.nix6
-rw-r--r--pkgs/servers/http/nginx/generic.nix3
-rw-r--r--pkgs/servers/http/nginx/modules.nix6
-rw-r--r--pkgs/servers/http/nginx/quic.nix7
-rw-r--r--pkgs/servers/http/pomerium/default.nix67
-rw-r--r--pkgs/servers/http/trafficserver/default.nix8
-rw-r--r--pkgs/servers/http/unit/default.nix4
-rw-r--r--pkgs/servers/icingaweb2/default.nix4
-rw-r--r--pkgs/servers/imgproxy/default.nix6
-rw-r--r--pkgs/servers/invidious/lsquic.nix10
-rw-r--r--pkgs/servers/irc/ircd-hybrid/default.nix4
-rw-r--r--pkgs/servers/irc/solanum/default.nix6
-rw-r--r--pkgs/servers/jackett/default.nix21
-rw-r--r--pkgs/servers/jackett/deps.nix605
-rwxr-xr-xpkgs/servers/jackett/updater.sh7
-rw-r--r--pkgs/servers/janus-gateway/default.nix10
-rw-r--r--pkgs/servers/jellyfin/default.nix6
-rw-r--r--pkgs/servers/jellyfin/nuget-deps.nix906
-rw-r--r--pkgs/servers/jetbrains/youtrack.nix10
-rw-r--r--pkgs/servers/keycloak/default.nix4
-rw-r--r--pkgs/servers/klipper/default.nix6
-rw-r--r--pkgs/servers/libreddit/default.nix8
-rw-r--r--pkgs/servers/ma1sd/default.nix8
-rw-r--r--pkgs/servers/maddy/default.nix4
-rw-r--r--pkgs/servers/mail/dovecot/default.nix4
-rw-r--r--pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix8
-rw-r--r--pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix6
-rw-r--r--pkgs/servers/mastodon/package.json6
-rw-r--r--pkgs/servers/mastodon/source.nix4
-rw-r--r--pkgs/servers/mastodon/update.nix36
-rw-r--r--pkgs/servers/mastodon/version.nix2
-rw-r--r--pkgs/servers/mastodon/version.patch4
-rw-r--r--pkgs/servers/matrix-synapse/0001-setup-add-homeserver-as-console-script.patch33
-rw-r--r--pkgs/servers/matrix-synapse/0002-Expose-generic-worker-as-binary-under-NixOS.patch43
-rw-r--r--pkgs/servers/matrix-synapse/default.nix9
-rw-r--r--pkgs/servers/matrix-synapse/matrix-appservice-irc/REVISION1
-rw-r--r--pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix7
-rw-r--r--pkgs/servers/matrix-synapse/matrix-appservice-irc/node-packages.nix915
-rw-r--r--pkgs/servers/matrix-synapse/matrix-appservice-irc/package.json20
-rw-r--r--pkgs/servers/matrix-synapse/matrix-appservice-irc/src.json10
-rwxr-xr-xpkgs/servers/matrix-synapse/matrix-appservice-irc/update.sh11
-rw-r--r--pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix4
-rwxr-xr-xpkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh6
-rw-r--r--pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix829
-rw-r--r--pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix4
-rw-r--r--pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state.nix16
-rw-r--r--pkgs/servers/matrix-synapse/tools/synadm.nix4
-rw-r--r--pkgs/servers/matterbridge/default.nix4
-rw-r--r--pkgs/servers/mattermost/default.nix6
-rw-r--r--pkgs/servers/mattermost/matterircd.nix4
-rw-r--r--pkgs/servers/mautrix-telegram/0001-Re-add-entrypoint.patch16
-rw-r--r--pkgs/servers/mautrix-telegram/default.nix31
-rw-r--r--pkgs/servers/mautrix-whatsapp/default.nix6
-rw-r--r--pkgs/servers/mbtileserver/default.nix6
-rw-r--r--pkgs/servers/mediatomb/default.nix2
-rw-r--r--pkgs/servers/memcached/default.nix4
-rw-r--r--pkgs/servers/metabase/default.nix9
-rw-r--r--pkgs/servers/meteor/default.nix2
-rw-r--r--pkgs/servers/miniflux/default.nix8
-rw-r--r--pkgs/servers/minio/default.nix6
-rw-r--r--pkgs/servers/misc/gobgpd/default.nix4
-rw-r--r--pkgs/servers/monitoring/alertmanager-irc-relay/default.nix4
-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-image-renderer/default.nix4
-rw-r--r--pkgs/servers/monitoring/grafana-image-renderer/package.json2
-rw-r--r--pkgs/servers/monitoring/grafana-image-renderer/yarn.lock7696
-rw-r--r--pkgs/servers/monitoring/grafana-image-renderer/yarn.nix56
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix25
-rw-r--r--pkgs/servers/monitoring/matrix-alertmanager/default.nix39
-rw-r--r--pkgs/servers/monitoring/matrix-alertmanager/package.json41
-rwxr-xr-xpkgs/servers/monitoring/matrix-alertmanager/update.nix32
-rw-r--r--pkgs/servers/monitoring/matrix-alertmanager/yarn-hash1
-rw-r--r--pkgs/servers/monitoring/matrix-alertmanager/yarn.lock3560
-rw-r--r--pkgs/servers/monitoring/munin/default.nix4
-rw-r--r--pkgs/servers/monitoring/prometheus/default.nix14
-rw-r--r--pkgs/servers/monitoring/prometheus/fastly-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix8
-rw-r--r--pkgs/servers/monitoring/prometheus/node-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/promscale/0001-remove-jaeger-test-dep.patch17
-rw-r--r--pkgs/servers/monitoring/prometheus/promscale/default.nix (renamed from pkgs/servers/monitoring/prometheus/promscale.nix)26
-rw-r--r--pkgs/servers/monitoring/prometheus/redis-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/smartctl-exporter/0001-Return-the-cached-value-if-it-s-not-time-to-scan-aga.patch51
-rw-r--r--pkgs/servers/monitoring/prometheus/smartctl-exporter/default.nix41
-rw-r--r--pkgs/servers/monitoring/telegraf/default.nix10
-rw-r--r--pkgs/servers/monitoring/thanos/default.nix6
-rw-r--r--pkgs/servers/monitoring/zabbix/agent.nix1
-rw-r--r--pkgs/servers/monitoring/zabbix/agent2.nix1
-rw-r--r--pkgs/servers/monitoring/zabbix/proxy.nix1
-rw-r--r--pkgs/servers/monitoring/zabbix/server.nix1
-rw-r--r--pkgs/servers/mpd/libmpdclient.nix4
-rw-r--r--pkgs/servers/mqtt/mosquitto/default.nix10
-rw-r--r--pkgs/servers/mycorrhiza/default.nix6
-rw-r--r--pkgs/servers/neard/default.nix61
-rw-r--r--pkgs/servers/nextcloud/default.nix9
-rw-r--r--pkgs/servers/nfd/default.nix55
-rw-r--r--pkgs/servers/nfs-ganesha/default.nix6
-rw-r--r--pkgs/servers/nfs-ganesha/sysstatedir.patch22
-rw-r--r--pkgs/servers/nitter/default.nix1
-rw-r--r--pkgs/servers/nosql/apache-jena/binary.nix6
-rw-r--r--pkgs/servers/nosql/apache-jena/fuseki-binary.nix6
-rwxr-xr-xpkgs/servers/nosql/eventstore/create-deps.sh6
-rw-r--r--pkgs/servers/nosql/eventstore/deps.nix252
-rw-r--r--pkgs/servers/nosql/influxdb2/cli.nix33
-rw-r--r--pkgs/servers/nosql/influxdb2/combined.nix12
-rw-r--r--pkgs/servers/nosql/influxdb2/default.nix63
-rw-r--r--pkgs/servers/nosql/influxdb2/influx-ui-package.json201
-rw-r--r--pkgs/servers/nosql/influxdb2/influx-ui-yarndeps.nix13389
-rwxr-xr-xpkgs/servers/nosql/influxdb2/update-influxdb2.sh17
-rw-r--r--pkgs/servers/nosql/mongodb/v3_6.nix4
-rw-r--r--pkgs/servers/nosql/mongodb/v4_0.nix4
-rw-r--r--pkgs/servers/nosql/mongodb/v4_2.nix4
-rw-r--r--pkgs/servers/oauth2-proxy/default.nix6
-rw-r--r--pkgs/servers/openafs/1.8/default.nix39
-rw-r--r--pkgs/servers/openafs/1.8/module.nix41
-rw-r--r--pkgs/servers/openafs/1.8/srcs.nix12
-rw-r--r--pkgs/servers/openafs/1.9/module.nix5
-rw-r--r--pkgs/servers/openvscode-server/default.nix6
-rw-r--r--pkgs/servers/piping-server-rust/default.nix10
-rw-r--r--pkgs/servers/pleroma/0001-move-result-into-with-guard.patch26
-rw-r--r--pkgs/servers/pleroma/default.nix4
-rw-r--r--pkgs/servers/plex/raw.nix6
-rw-r--r--pkgs/servers/polipo/default.nix2
-rw-r--r--pkgs/servers/prowlarr/default.nix8
-rw-r--r--pkgs/servers/psitransfer/default.nix42
-rwxr-xr-xpkgs/servers/psitransfer/generate.sh10
-rw-r--r--pkgs/servers/psitransfer/node-composition.nix17
-rw-r--r--pkgs/servers/psitransfer/node-packages.json3
-rw-r--r--pkgs/servers/psitransfer/node-packages.nix1713
-rw-r--r--pkgs/servers/pulseaudio/default.nix15
-rw-r--r--pkgs/servers/radicale/3.x.nix6
-rw-r--r--pkgs/servers/roon-server/default.nix9
-rw-r--r--pkgs/servers/roundcube/default.nix4
-rw-r--r--pkgs/servers/rtsp-simple-server/default.nix6
-rw-r--r--pkgs/servers/sabnzbd/default.nix13
-rw-r--r--pkgs/servers/samba/4.x.nix4
-rw-r--r--pkgs/servers/search/elasticsearch/6.x.nix4
-rw-r--r--pkgs/servers/search/elasticsearch/7.x.nix6
-rw-r--r--pkgs/servers/search/elasticsearch/plugins.nix44
-rw-r--r--pkgs/servers/search/groonga/default.nix19
-rw-r--r--pkgs/servers/shairport-sync/default.nix4
-rw-r--r--pkgs/servers/smcroute/default.nix4
-rw-r--r--pkgs/servers/soft-serve/default.nix33
-rw-r--r--pkgs/servers/sql/mariadb/connector-c/default.nix8
-rw-r--r--pkgs/servers/sql/mariadb/default.nix3
-rw-r--r--pkgs/servers/sql/materialize/default.nix11
-rw-r--r--pkgs/servers/sql/monetdb/default.nix8
-rw-r--r--pkgs/servers/sql/mssql/jdbc/jtds.nix27
-rw-r--r--pkgs/servers/sql/pgbouncer/default.nix4
-rw-r--r--pkgs/servers/sql/postgresql/default.nix32
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix12
-rw-r--r--pkgs/servers/sql/postgresql/ext/pg_partman.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgroonga.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgrouting.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/pgtap.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/plpgsql_check.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/plr.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/plv8.nix30
-rw-r--r--pkgs/servers/sql/postgresql/ext/postgis.nix4
-rw-r--r--pkgs/servers/sql/postgresql/ext/timescaledb.nix4
-rw-r--r--pkgs/servers/sql/postgresql/packages.nix6
-rw-r--r--pkgs/servers/tailscale/default.nix6
-rw-r--r--pkgs/servers/tautulli/default.nix4
-rw-r--r--pkgs/servers/teleport/default.nix63
-rw-r--r--pkgs/servers/tmate-ssh-server/default.nix1
-rw-r--r--pkgs/servers/traefik/default.nix6
-rw-r--r--pkgs/servers/unifi/default.nix22
-rw-r--r--pkgs/servers/unifiedpush-common-proxies/default.nix6
-rw-r--r--pkgs/servers/uwsgi/default.nix8
-rw-r--r--pkgs/servers/uwsgi/missing-arginfo-php8.patch49
-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/bookstack/php-packages.nix402
-rw-r--r--pkgs/servers/web-apps/discourse/auto_generated_path.patch4
-rw-r--r--pkgs/servers/web-apps/discourse/default.nix43
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/README4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock8
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix24
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-canned-replies/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile3
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock6
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/gemset.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock2
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/prometheus_exporter_version1
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix4
-rw-r--r--pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix4
-rwxr-xr-xpkgs/servers/web-apps/discourse/plugins/up-plugin.sh39
-rw-r--r--pkgs/servers/web-apps/discourse/public_dir_path.patch13
-rw-r--r--pkgs/servers/web-apps/discourse/rubyEnv/Gemfile45
-rw-r--r--pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock275
-rw-r--r--pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix466
-rwxr-xr-xpkgs/servers/web-apps/discourse/update.py165
-rw-r--r--pkgs/servers/web-apps/dokuwiki/default.nix6
-rw-r--r--pkgs/servers/web-apps/hedgedoc/default.nix4
-rw-r--r--pkgs/servers/web-apps/lemmy/package.json79
-rw-r--r--pkgs/servers/web-apps/lemmy/pin.json10
-rwxr-xr-xpkgs/servers/web-apps/lemmy/update.sh31
-rw-r--r--pkgs/servers/web-apps/mediawiki/default.nix6
-rw-r--r--pkgs/servers/web-apps/sogo/default.nix16
-rw-r--r--pkgs/servers/web-apps/whitebophir/node-packages-generated.nix961
-rw-r--r--pkgs/servers/web-apps/whitebophir/node-packages.json2
-rw-r--r--pkgs/servers/web-apps/wiki-js/default.nix4
-rw-r--r--pkgs/servers/webdav-server-rs/default.nix47
-rw-r--r--pkgs/servers/webdav/default.nix2
-rw-r--r--pkgs/servers/wsdd/default.nix4
-rw-r--r--pkgs/servers/x11/xorg/default.nix15
-rw-r--r--pkgs/servers/x11/xorg/overrides.nix41
-rw-r--r--pkgs/servers/x11/xorg/tarballs.list1
-rw-r--r--pkgs/servers/x11/xorg/xcb-util-xrm.nix5
-rw-r--r--pkgs/servers/x11/xorg/xwayland.nix4
-rw-r--r--pkgs/servers/zigbee2mqtt/default.nix12
-rw-r--r--pkgs/servers/zigbee2mqtt/node-env.nix548
-rw-r--r--pkgs/servers/zigbee2mqtt/node-packages.nix9570
-rw-r--r--pkgs/servers/zigbee2mqtt/node.nix12
-rwxr-xr-xpkgs/servers/zigbee2mqtt/update.sh34
-rw-r--r--pkgs/shells/bash/bash-5.1-patches.nix4
-rw-r--r--pkgs/shells/bash/nix-bash-completions/default.nix2
-rwxr-xr-xpkgs/shells/bash/update-patch-set.sh2
-rw-r--r--pkgs/shells/elvish/default.nix6
-rw-r--r--pkgs/shells/fish/default.nix5
-rw-r--r--pkgs/shells/fish/plugins/fzf-fish.nix4
-rw-r--r--pkgs/shells/hilbish/default.nix6
-rw-r--r--pkgs/shells/loksh/default.nix4
-rw-r--r--pkgs/shells/nushell/default.nix6
-rw-r--r--pkgs/shells/oil/default.nix4
-rw-r--r--pkgs/shells/pash/default.nix2
-rw-r--r--pkgs/shells/powershell/default.nix4
-rw-r--r--pkgs/shells/xonsh/default.nix7
-rw-r--r--pkgs/shells/zsh/antigen/default.nix2
-rw-r--r--pkgs/shells/zsh/oh-my-zsh/default.nix6
-rw-r--r--pkgs/shells/zsh/zinit/default.nix2
-rw-r--r--pkgs/shells/zsh/zsh-better-npm-completion/default.nix25
-rw-r--r--pkgs/shells/zsh/zsh-deer/default.nix6
-rw-r--r--pkgs/shells/zsh/zsh-fzf-tab/default.nix6
-rw-r--r--pkgs/stdenv/darwin/default.nix11
-rw-r--r--pkgs/stdenv/darwin/make-bootstrap-tools.nix74
-rw-r--r--pkgs/stdenv/default.nix1
-rw-r--r--pkgs/stdenv/generic/default.nix13
-rw-r--r--pkgs/stdenv/generic/make-derivation.nix2
-rw-r--r--pkgs/stdenv/generic/setup.sh13
-rw-r--r--pkgs/stdenv/linux/bootstrap-files/riscv64.nix12
-rw-r--r--pkgs/stdenv/linux/default.nix5
-rw-r--r--pkgs/stdenv/linux/make-bootstrap-tools.nix5
-rw-r--r--pkgs/test/default.nix4
-rw-r--r--pkgs/test/dhall/default.nix1
-rw-r--r--pkgs/test/dhall/generateDhallDirectoryPackage/default.nix17
-rw-r--r--pkgs/test/make-binary-wrapper/add-flags.c21
-rw-r--r--pkgs/test/make-binary-wrapper/add-flags.cmdline2
-rw-r--r--pkgs/test/make-binary-wrapper/add-flags.env6
-rw-r--r--pkgs/test/make-binary-wrapper/argv0.c7
-rw-r--r--pkgs/test/make-binary-wrapper/argv0.cmdline1
-rw-r--r--pkgs/test/make-binary-wrapper/argv0.env2
-rw-r--r--pkgs/test/make-binary-wrapper/basic.c7
-rw-r--r--pkgs/test/make-binary-wrapper/basic.cmdline0
-rw-r--r--pkgs/test/make-binary-wrapper/basic.env2
-rw-r--r--pkgs/test/make-binary-wrapper/chdir.c11
-rw-r--r--pkgs/test/make-binary-wrapper/chdir.cmdline1
-rw-r--r--pkgs/test/make-binary-wrapper/chdir.env2
-rw-r--r--pkgs/test/make-binary-wrapper/combination.c53
-rw-r--r--pkgs/test/make-binary-wrapper/combination.cmdline6
-rw-r--r--pkgs/test/make-binary-wrapper/combination.env8
-rw-r--r--pkgs/test/make-binary-wrapper/default.nix54
-rw-r--r--pkgs/test/make-binary-wrapper/env.c14
-rw-r--r--pkgs/test/make-binary-wrapper/env.cmdline4
-rw-r--r--pkgs/test/make-binary-wrapper/env.env6
-rw-r--r--pkgs/test/make-binary-wrapper/envcheck.c22
-rw-r--r--pkgs/test/make-binary-wrapper/inherit-argv0.c6
-rw-r--r--pkgs/test/make-binary-wrapper/inherit-argv0.cmdline1
-rw-r--r--pkgs/test/make-binary-wrapper/inherit-argv0.env2
-rw-r--r--pkgs/test/make-binary-wrapper/invalid-env.c14
-rw-r--r--pkgs/test/make-binary-wrapper/invalid-env.cmdline2
-rw-r--r--pkgs/test/make-binary-wrapper/prefix.c26
-rw-r--r--pkgs/test/make-binary-wrapper/prefix.cmdline2
-rw-r--r--pkgs/test/make-binary-wrapper/prefix.env3
-rw-r--r--pkgs/test/make-binary-wrapper/suffix.c26
-rw-r--r--pkgs/test/make-binary-wrapper/suffix.cmdline2
-rw-r--r--pkgs/test/make-binary-wrapper/suffix.env3
-rw-r--r--pkgs/tools/X11/alttab/default.nix4
-rw-r--r--pkgs/tools/X11/dex/default.nix5
-rw-r--r--pkgs/tools/X11/nx-libs/default.nix11
-rw-r--r--pkgs/tools/X11/opentabletdriver/default.nix120
-rw-r--r--pkgs/tools/X11/opentabletdriver/deps.nix266
-rw-r--r--pkgs/tools/X11/opentabletdriver/shell.nix13
-rwxr-xr-xpkgs/tools/X11/opentabletdriver/update.sh40
-rw-r--r--pkgs/tools/X11/sct/default.nix3
-rw-r--r--pkgs/tools/X11/virtualgl/default.nix3
-rw-r--r--pkgs/tools/X11/xgeometry-select/default.nix7
-rw-r--r--pkgs/tools/X11/xob/default.nix20
-rw-r--r--pkgs/tools/admin/aliyun-cli/default.nix14
-rw-r--r--pkgs/tools/admin/awscli/default.nix7
-rw-r--r--pkgs/tools/admin/azure-cli/default.nix8
-rw-r--r--pkgs/tools/admin/azure-cli/python-packages.nix110
-rw-r--r--pkgs/tools/admin/certigo/default.nix6
-rw-r--r--pkgs/tools/admin/chamber/default.nix4
-rw-r--r--pkgs/tools/admin/clair/default.nix6
-rw-r--r--pkgs/tools/admin/colmena/default.nix42
-rw-r--r--pkgs/tools/admin/eksctl/default.nix6
-rw-r--r--pkgs/tools/admin/exoscale-cli/default.nix4
-rw-r--r--pkgs/tools/admin/fioctl/default.nix4
-rw-r--r--pkgs/tools/admin/fits-cloudctl/default.nix6
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/data.nix32
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/default.nix37
-rwxr-xr-xpkgs/tools/admin/google-cloud-sdk/update.sh47
-rw-r--r--pkgs/tools/admin/gtk-vnc/default.nix6
-rw-r--r--pkgs/tools/admin/lxd/default.nix4
-rw-r--r--pkgs/tools/admin/meshcentral/default.nix4
-rw-r--r--pkgs/tools/admin/meshcentral/package.json3
-rw-r--r--pkgs/tools/admin/meshcentral/yarn.lock148
-rw-r--r--pkgs/tools/admin/meshcentral/yarn.nix184
-rw-r--r--pkgs/tools/admin/procs/default.nix8
-rw-r--r--pkgs/tools/admin/pulumi/data.nix366
-rwxr-xr-xpkgs/tools/admin/pulumi/update.sh2
-rw-r--r--pkgs/tools/admin/salt/default.nix26
-rw-r--r--pkgs/tools/admin/scaleway-cli/default.nix15
-rw-r--r--pkgs/tools/admin/stripe-cli/default.nix6
-rw-r--r--pkgs/tools/admin/tigervnc/default.nix4
-rw-r--r--pkgs/tools/admin/tightvnc/default.nix4
-rw-r--r--pkgs/tools/admin/trinsic-cli/default.nix26
-rw-r--r--pkgs/tools/admin/trivy/default.nix10
-rw-r--r--pkgs/tools/admin/turbovnc/default.nix4
-rw-r--r--pkgs/tools/admin/winbox/default.nix6
-rw-r--r--pkgs/tools/archivers/cpio/default.nix2
-rw-r--r--pkgs/tools/archivers/tarlz/default.nix28
-rw-r--r--pkgs/tools/archivers/torrent7z/default.nix53
-rw-r--r--pkgs/tools/archivers/unrar/default.nix4
-rw-r--r--pkgs/tools/archivers/wimlib/default.nix4
-rw-r--r--pkgs/tools/archivers/zpaq/default.upstream6
-rw-r--r--pkgs/tools/archivers/zpaq/zpaqd.nix20
-rw-r--r--pkgs/tools/archivers/zpaq/zpaqd.upstream5
-rw-r--r--pkgs/tools/audio/abcmidi/default.nix4
-rw-r--r--pkgs/tools/audio/alsaequal/default.nix2
-rw-r--r--pkgs/tools/audio/beets/bash-completion-always-print.patch29
-rw-r--r--pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch65
-rw-r--r--pkgs/tools/audio/beets/default.nix58
-rw-r--r--pkgs/tools/audio/beets/imagemagick-nix-path.patch20
-rw-r--r--pkgs/tools/audio/beets/keyfinder-default-bin.patch26
-rw-r--r--pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch14
-rw-r--r--pkgs/tools/audio/kaldi/default.nix12
-rw-r--r--pkgs/tools/audio/yabridge/default.nix98
-rw-r--r--pkgs/tools/audio/yabridge/hardcode-dependencies.patch43
-rw-r--r--pkgs/tools/audio/yabridge/hardcode-wine.patch13
-rw-r--r--pkgs/tools/audio/yabridgectl/default.nix2
-rw-r--r--pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch8
-rw-r--r--pkgs/tools/backup/autorestic/default.nix4
-rw-r--r--pkgs/tools/backup/bakelite/default.nix29
-rw-r--r--pkgs/tools/backup/burp/default.nix11
-rw-r--r--pkgs/tools/backup/discordchatexporter-cli/deps.nix28
-rw-r--r--pkgs/tools/backup/kopia/default.nix10
-rw-r--r--pkgs/tools/backup/s3ql/default.nix4
-rw-r--r--pkgs/tools/backup/zfs-prune-snapshots/default.nix4
-rw-r--r--pkgs/tools/backup/znapzend/default.nix20
-rw-r--r--pkgs/tools/bluetooth/blueberry/default.nix4
-rw-r--r--pkgs/tools/bluetooth/blueman/default.nix4
-rw-r--r--pkgs/tools/bluetooth/bluez-tools/default.nix7
-rw-r--r--pkgs/tools/cd-dvd/ccd2iso/default.nix2
-rw-r--r--pkgs/tools/cd-dvd/cdrkit/cdrkit-1.1.11-fno-common.patch11
-rw-r--r--pkgs/tools/cd-dvd/cdrkit/default.nix2
-rw-r--r--pkgs/tools/cd-dvd/cdrtools/default.nix4
-rw-r--r--pkgs/tools/cd-dvd/nrg2iso/default.nix4
-rw-r--r--pkgs/tools/cd-dvd/xorriso/default.nix4
-rw-r--r--pkgs/tools/compression/advancecomp/default.nix7
-rw-r--r--pkgs/tools/compression/imagelol/default.nix8
-rw-r--r--pkgs/tools/filesystems/apfsprogs/default.nix10
-rw-r--r--pkgs/tools/filesystems/bcachefs-tools/default.nix6
-rw-r--r--pkgs/tools/filesystems/btrfs-snap/default.nix32
-rw-r--r--pkgs/tools/filesystems/ceph/default.nix22
-rw-r--r--pkgs/tools/filesystems/cryfs/default.nix62
-rw-r--r--pkgs/tools/filesystems/cryfs/use-macfuse.patch207
-rw-r--r--pkgs/tools/filesystems/davfs2/default.nix4
-rw-r--r--pkgs/tools/filesystems/exfatprogs/default.nix4
-rw-r--r--pkgs/tools/filesystems/fatsort/default.nix4
-rw-r--r--pkgs/tools/filesystems/fuse-overlayfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/gcsfuse/default.nix4
-rw-r--r--pkgs/tools/filesystems/glusterfs/default.nix17
-rw-r--r--pkgs/tools/filesystems/goofys/default.nix2
-rw-r--r--pkgs/tools/filesystems/hfsprogs/default.nix13
-rw-r--r--pkgs/tools/filesystems/httpdirfs/default.nix26
-rw-r--r--pkgs/tools/filesystems/lfs/default.nix6
-rw-r--r--pkgs/tools/filesystems/mergerfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/mp3fs/default.nix42
-rw-r--r--pkgs/tools/filesystems/mp3fs/fix-statfs-operation.patch39
-rw-r--r--pkgs/tools/filesystems/mtools/default.nix4
-rw-r--r--pkgs/tools/filesystems/netatalk/default.nix13
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/default.nix10
-rw-r--r--pkgs/tools/filesystems/nixpart/0.4/lvm2.nix9
-rw-r--r--pkgs/tools/filesystems/snapraid/default.nix4
-rw-r--r--pkgs/tools/filesystems/wiimms-iso-tools/default.nix18
-rw-r--r--pkgs/tools/games/ajour/default.nix8
-rw-r--r--pkgs/tools/games/joystickwake/default.nix4
-rw-r--r--pkgs/tools/games/jpsxdec/0001-jpsxdec-hackfix-build-with-newer-JDKs.patch43
-rw-r--r--pkgs/tools/games/jpsxdec/default.nix84
-rw-r--r--pkgs/tools/games/minecraft/fabric-installer/default.nix4
-rw-r--r--pkgs/tools/games/minecraft/optifine/default.nix4
-rw-r--r--pkgs/tools/games/opentracker/default.nix1
-rw-r--r--pkgs/tools/games/opentracker/deps.nix452
-rw-r--r--pkgs/tools/graphics/aaphoto/default.nix48
-rw-r--r--pkgs/tools/graphics/agi/default.nix4
-rw-r--r--pkgs/tools/graphics/astc-encoder/default.nix4
-rw-r--r--pkgs/tools/graphics/blockhash/default.nix10
-rw-r--r--pkgs/tools/graphics/escrotum/default.nix29
-rw-r--r--pkgs/tools/graphics/facedetect/default.nix18
-rw-r--r--pkgs/tools/graphics/fgallery/default.nix2
-rw-r--r--pkgs/tools/graphics/flam3/default.nix36
-rw-r--r--pkgs/tools/graphics/gifski/default.nix6
-rw-r--r--pkgs/tools/graphics/gmic/default.nix4
-rw-r--r--pkgs/tools/graphics/goverlay/default.nix11
-rw-r--r--pkgs/tools/graphics/goverlay/find-xdg-data-files.patch10
-rw-r--r--pkgs/tools/graphics/graphviz/2.32.nix5
-rw-r--r--pkgs/tools/graphics/graphviz/base.nix96
-rw-r--r--pkgs/tools/graphics/graphviz/default.nix115
-rw-r--r--pkgs/tools/graphics/gromit-mpx/default.nix4
-rw-r--r--pkgs/tools/graphics/ibniz/default.nix2
-rw-r--r--pkgs/tools/graphics/imageworsener/default.nix6
-rw-r--r--pkgs/tools/graphics/oxipng/default.nix6
-rw-r--r--pkgs/tools/graphics/pfstools/default.nix4
-rw-r--r--pkgs/tools/graphics/pngquant/default.nix4
-rw-r--r--pkgs/tools/graphics/pstoedit/default.nix4
-rw-r--r--pkgs/tools/graphics/vips/default.nix4
-rw-r--r--pkgs/tools/graphics/viu/default.nix6
-rw-r--r--pkgs/tools/graphics/wdisplays/default.nix5
-rw-r--r--pkgs/tools/graphics/zxing/zxing.sh26
-rw-r--r--pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix2
-rw-r--r--pkgs/tools/inputmethods/fcitx5/default.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix8
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-m17n.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix4
-rw-r--r--pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix4
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix4
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-libthai/default.nix4
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix2
-rw-r--r--pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix4
-rw-r--r--pkgs/tools/inputmethods/ibus/default.nix2
-rw-r--r--pkgs/tools/inputmethods/interception-tools/default.nix4
-rw-r--r--pkgs/tools/inputmethods/m17n-lib/default.nix8
-rw-r--r--pkgs/tools/inputmethods/remote-touchpad/default.nix6
-rw-r--r--pkgs/tools/misc/0x0/default.nix31
-rw-r--r--pkgs/tools/misc/antimicrox/default.nix (renamed from pkgs/tools/misc/antimicroX/default.nix)23
-rw-r--r--pkgs/tools/misc/apkeep/default.nix6
-rw-r--r--pkgs/tools/misc/atuin/default.nix23
-rw-r--r--pkgs/tools/misc/autorandr/default.nix16
-rw-r--r--pkgs/tools/misc/barman/default.nix5
-rw-r--r--pkgs/tools/misc/bash_unit/default.nix4
-rw-r--r--pkgs/tools/misc/bibutils/default.nix4
-rw-r--r--pkgs/tools/misc/birdfont/default.nix4
-rw-r--r--pkgs/tools/misc/blink1-tool/default.nix10
-rw-r--r--pkgs/tools/misc/bottom-rs/default.nix2
-rw-r--r--pkgs/tools/misc/broot/default.nix12
-rw-r--r--pkgs/tools/misc/bunnyfetch/default.nix8
-rw-r--r--pkgs/tools/misc/byobu/default.nix2
-rw-r--r--pkgs/tools/misc/chezmoi/default.nix6
-rw-r--r--pkgs/tools/misc/cht.sh/default.nix6
-rw-r--r--pkgs/tools/misc/clickclack/default.nix4
-rw-r--r--pkgs/tools/misc/cloc/default.nix14
-rw-r--r--pkgs/tools/misc/cloud-sql-proxy/default.nix9
-rw-r--r--pkgs/tools/misc/code-minimap/default.nix6
-rw-r--r--pkgs/tools/misc/coreutils/coreutils-8.23-4.cygwin.patch1259
-rw-r--r--pkgs/tools/misc/coreutils/default.nix21
-rw-r--r--pkgs/tools/misc/cpufetch/default.nix20
-rw-r--r--pkgs/tools/misc/cpuminer-multi/default.nix9
-rw-r--r--pkgs/tools/misc/czkawka/default.nix6
-rw-r--r--pkgs/tools/misc/datefmt/default.nix23
-rw-r--r--pkgs/tools/misc/dateutils/default.nix2
-rw-r--r--pkgs/tools/misc/ddcutil/default.nix4
-rw-r--r--pkgs/tools/misc/debootstrap/default.nix4
-rw-r--r--pkgs/tools/misc/depotdownloader/deps.nix14
-rw-r--r--pkgs/tools/misc/desktop-file-utils/default.nix8
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix4
-rw-r--r--pkgs/tools/misc/diffoscope/fix-tests.patch19
-rw-r--r--pkgs/tools/misc/direnv/default.nix6
-rw-r--r--pkgs/tools/misc/dpt-rp1-py/default.nix4
-rw-r--r--pkgs/tools/misc/esphome/dashboard.nix4
-rw-r--r--pkgs/tools/misc/esphome/default.nix8
-rw-r--r--pkgs/tools/misc/etcher/default.nix4
-rw-r--r--pkgs/tools/misc/ethminer/default.nix4
-rw-r--r--pkgs/tools/misc/execline/default.nix4
-rw-r--r--pkgs/tools/misc/fbcat/default.nix23
-rw-r--r--pkgs/tools/misc/fbmark/default.nix23
-rw-r--r--pkgs/tools/misc/fd/default.nix6
-rw-r--r--pkgs/tools/misc/fdupes/default.nix8
-rw-r--r--pkgs/tools/misc/fend/default.nix6
-rw-r--r--pkgs/tools/misc/flameshot/default.nix7
-rw-r--r--pkgs/tools/misc/flashrom/default.nix11
-rw-r--r--pkgs/tools/misc/fluent-bit/default.nix18
-rw-r--r--pkgs/tools/misc/fluent-bit/fix-cmetrics-darwin.patch23
-rw-r--r--pkgs/tools/misc/fluentd/Gemfile.lock159
-rw-r--r--pkgs/tools/misc/fluentd/gemset.nix285
-rw-r--r--pkgs/tools/misc/fortune/default.nix4
-rw-r--r--pkgs/tools/misc/fpart/default.nix4
-rw-r--r--pkgs/tools/misc/fselect/default.nix6
-rw-r--r--pkgs/tools/misc/fx_cast/default.nix2
-rw-r--r--pkgs/tools/misc/fzf/default.nix4
-rw-r--r--pkgs/tools/misc/geekbench/default.nix4
-rw-r--r--pkgs/tools/misc/git-town/default.nix4
-rw-r--r--pkgs/tools/misc/gitlint/default.nix54
-rw-r--r--pkgs/tools/misc/goaccess/default.nix54
-rw-r--r--pkgs/tools/misc/goreleaser/default.nix6
-rw-r--r--pkgs/tools/misc/gotify-cli/default.nix8
-rw-r--r--pkgs/tools/misc/graylog/default.nix4
-rw-r--r--pkgs/tools/misc/grub/2.0x.nix18
-rwxr-xr-xpkgs/tools/misc/grub/grub1.patches.sh68
-rw-r--r--pkgs/tools/misc/gwe/default.nix4
-rw-r--r--pkgs/tools/misc/hdf5/default.nix7
-rw-r--r--pkgs/tools/misc/hdf5/hdf5-more-determinism.patch15
-rw-r--r--pkgs/tools/misc/heimdall/default.nix16
-rw-r--r--pkgs/tools/misc/jdupes/default.nix4
-rw-r--r--pkgs/tools/misc/jsonwatch/default.nix (renamed from pkgs/development/python-modules/jsonwatch/default.nix)29
-rw-r--r--pkgs/tools/misc/jugglinglab/default.nix2
-rw-r--r--pkgs/tools/misc/kak-lsp/default.nix6
-rw-r--r--pkgs/tools/misc/kepubify/default.nix6
-rw-r--r--pkgs/tools/misc/keymapviz/default.nix2
-rw-r--r--pkgs/tools/misc/ksnip/default.nix4
-rw-r--r--pkgs/tools/misc/libbitcoin/libbitcoin-network.nix2
-rw-r--r--pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix2
-rw-r--r--pkgs/tools/misc/libbitcoin/libbitcoin.nix2
-rw-r--r--pkgs/tools/misc/libcpuid/default.nix8
-rw-r--r--pkgs/tools/misc/lilo/default.nix7
-rw-r--r--pkgs/tools/misc/loadlibrary/default.nix2
-rw-r--r--pkgs/tools/misc/logstash/6.x.nix8
-rw-r--r--pkgs/tools/misc/logstash/7.x.nix12
-rw-r--r--pkgs/tools/misc/macchina/default.nix6
-rw-r--r--pkgs/tools/misc/man-db/default.nix6
-rw-r--r--pkgs/tools/misc/mandoc/default.nix8
-rw-r--r--pkgs/tools/misc/mbuffer/default.nix32
-rw-r--r--pkgs/tools/misc/mc/default.nix14
-rw-r--r--pkgs/tools/misc/mcfly/default.nix12
-rw-r--r--pkgs/tools/misc/mdbtools/default.nix4
-rw-r--r--pkgs/tools/misc/me_cleaner/default.nix4
-rw-r--r--pkgs/tools/misc/memtest86-efi/default.nix30
-rw-r--r--pkgs/tools/misc/miniserve/default.nix2
-rw-r--r--pkgs/tools/misc/mktorrent/default.nix4
-rw-r--r--pkgs/tools/misc/mmctl/default.nix24
-rw-r--r--pkgs/tools/misc/mongodb-compass/default.nix4
-rw-r--r--pkgs/tools/misc/moreutils/default.nix4
-rw-r--r--pkgs/tools/misc/mstflint/default.nix25
-rw-r--r--pkgs/tools/misc/multitail/default.nix14
-rw-r--r--pkgs/tools/misc/mysqltuner/default.nix6
-rw-r--r--pkgs/tools/misc/neo-cowsay/default.nix6
-rw-r--r--pkgs/tools/misc/nncp/default.nix34
-rw-r--r--pkgs/tools/misc/ntfy/default.nix13
-rw-r--r--pkgs/tools/misc/nux/default.nix35
-rw-r--r--pkgs/tools/misc/opencbm/default.nix52
-rw-r--r--pkgs/tools/misc/opencorsairlink/default.nix4
-rw-r--r--pkgs/tools/misc/opentelemetry-collector/default.nix6
-rw-r--r--pkgs/tools/misc/os-prober/default.nix4
-rw-r--r--pkgs/tools/misc/ostree/default.nix4
-rw-r--r--pkgs/tools/misc/pandoc-lua-filters/default.nix4
-rw-r--r--pkgs/tools/misc/parallel/default.nix4
-rw-r--r--pkgs/tools/misc/parquet-tools/default.nix2
-rw-r--r--pkgs/tools/misc/phoronix-test-suite/default.nix4
-rw-r--r--pkgs/tools/misc/pipe-rename/default.nix6
-rw-r--r--pkgs/tools/misc/pistol/default.nix6
-rw-r--r--pkgs/tools/misc/plantuml/default.nix4
-rw-r--r--pkgs/tools/misc/pmbootstrap/default.nix85
-rw-r--r--pkgs/tools/misc/ponysay/default.nix2
-rw-r--r--pkgs/tools/misc/pre-commit/default.nix (renamed from pkgs/development/python-modules/pre-commit/default.nix)41
-rw-r--r--pkgs/tools/misc/pre-commit/hook-tmpl.patch15
-rw-r--r--pkgs/tools/misc/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch (renamed from pkgs/development/python-modules/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch)0
-rw-r--r--pkgs/tools/misc/profile-cleaner/default.nix4
-rw-r--r--pkgs/tools/misc/pspg/default.nix4
-rw-r--r--pkgs/tools/misc/qflipper/default.nix31
-rw-r--r--pkgs/tools/misc/recoverjpeg/default.nix4
-rw-r--r--pkgs/tools/misc/remind/default.nix4
-rw-r--r--pkgs/tools/misc/rpm-ostree/default.nix4
-rw-r--r--pkgs/tools/misc/s6-portable-utils/default.nix4
-rw-r--r--pkgs/tools/misc/screen/default.nix6
-rw-r--r--pkgs/tools/misc/sfeed/default.nix15
-rw-r--r--pkgs/tools/misc/sharedown/default.nix4
-rwxr-xr-xpkgs/tools/misc/sharedown/update.sh4
-rw-r--r--pkgs/tools/misc/sharedown/yarn.lock504
-rw-r--r--pkgs/tools/misc/sharedown/yarndeps.nix472
-rw-r--r--pkgs/tools/misc/smenu/default.nix4
-rw-r--r--pkgs/tools/misc/starship/default.nix8
-rw-r--r--pkgs/tools/misc/stderred/default.nix31
-rw-r--r--pkgs/tools/misc/steampipe/default.nix6
-rw-r--r--pkgs/tools/misc/svtplay-dl/default.nix4
-rw-r--r--pkgs/tools/misc/synth/default.nix6
-rw-r--r--pkgs/tools/misc/timidity/default.nix20
-rw-r--r--pkgs/tools/misc/tio/default.nix2
-rw-r--r--pkgs/tools/misc/tldr/default.nix4
-rw-r--r--pkgs/tools/misc/topgrade/default.nix6
-rw-r--r--pkgs/tools/misc/toybox/default.nix4
-rw-r--r--pkgs/tools/misc/trillian/default.nix6
-rw-r--r--pkgs/tools/misc/vector/default.nix9
-rw-r--r--pkgs/tools/misc/veikk-linux-driver-gui/default.nix4
-rw-r--r--pkgs/tools/misc/vial/default.nix6
-rw-r--r--pkgs/tools/misc/viddy/default.nix6
-rw-r--r--pkgs/tools/misc/websocat/default.nix6
-rw-r--r--pkgs/tools/misc/wlc/default.nix1
-rw-r--r--pkgs/tools/misc/woeusb-ng/default.nix32
-rw-r--r--pkgs/tools/misc/x11idle/default.nix3
-rw-r--r--pkgs/tools/misc/xcp/default.nix2
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix6
-rw-r--r--pkgs/tools/misc/yt-dlp/default.nix4
-rw-r--r--pkgs/tools/misc/ytarchive/default.nix24
-rw-r--r--pkgs/tools/misc/ytfzf/default.nix20
-rw-r--r--pkgs/tools/misc/ytfzf/no-update.patch29
-rw-r--r--pkgs/tools/misc/zellij/default.nix11
-rw-r--r--pkgs/tools/misc/zoxide/default.nix6
-rw-r--r--pkgs/tools/networking/amass/default.nix6
-rw-r--r--pkgs/tools/networking/atinout/default.nix2
-rw-r--r--pkgs/tools/networking/axel/default.nix4
-rw-r--r--pkgs/tools/networking/bacnet-stack/default.nix2
-rw-r--r--pkgs/tools/networking/badvpn/default.nix42
-rw-r--r--pkgs/tools/networking/badvpn/default.upstream3
-rw-r--r--pkgs/tools/networking/bgpq3/default.nix4
-rw-r--r--pkgs/tools/networking/bgpq4/default.nix4
-rw-r--r--pkgs/tools/networking/bore/default.nix11
-rw-r--r--pkgs/tools/networking/burpsuite/default.nix4
-rw-r--r--pkgs/tools/networking/calendar-cli/default.nix4
-rw-r--r--pkgs/tools/networking/checkip/default.nix11
-rw-r--r--pkgs/tools/networking/cjdns/default.nix10
-rw-r--r--pkgs/tools/networking/croc/default.nix6
-rw-r--r--pkgs/tools/networking/curl/default.nix20
-rw-r--r--pkgs/tools/networking/dd-agent/datadog-agent.nix6
-rw-r--r--pkgs/tools/networking/dhcp/default.nix13
-rw-r--r--pkgs/tools/networking/dhcpcd/default.nix34
-rw-r--r--pkgs/tools/networking/dnsperf/default.nix45
-rw-r--r--pkgs/tools/networking/dnsproxy/default.nix4
-rw-r--r--pkgs/tools/networking/dnstwist/default.nix10
-rw-r--r--pkgs/tools/networking/driftnet/default.nix4
-rw-r--r--pkgs/tools/networking/driftnet/fix-darwin-build.patch61
-rw-r--r--pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch12
-rw-r--r--pkgs/tools/networking/easyrsa/2.x.nix10
-rw-r--r--pkgs/tools/networking/eggdrop/default.nix2
-rw-r--r--pkgs/tools/networking/fakeroute/default.nix12
-rw-r--r--pkgs/tools/networking/fast-ssh/default.nix29
-rw-r--r--pkgs/tools/networking/findomain/default.nix6
-rw-r--r--pkgs/tools/networking/flannel/default.nix23
-rw-r--r--pkgs/tools/networking/globalprotect-openconnect/default.nix18
-rw-r--r--pkgs/tools/networking/gobgp/default.nix4
-rw-r--r--pkgs/tools/networking/godns/default.nix6
-rw-r--r--pkgs/tools/networking/godspeed/default.nix34
-rw-r--r--pkgs/tools/networking/goimapnotify/default.nix6
-rw-r--r--pkgs/tools/networking/goimapnotify/deps.nix66
-rw-r--r--pkgs/tools/networking/gping/default.nix8
-rw-r--r--pkgs/tools/networking/gupnp-tools/default.nix18
-rw-r--r--pkgs/tools/networking/httping/default.nix11
-rw-r--r--pkgs/tools/networking/httplz/default.nix6
-rw-r--r--pkgs/tools/networking/hurl/default.nix6
-rw-r--r--pkgs/tools/networking/i2pd/default.nix4
-rw-r--r--pkgs/tools/networking/innernet/default.nix38
-rw-r--r--pkgs/tools/networking/ipinfo/default.nix4
-rw-r--r--pkgs/tools/networking/isync/default.nix4
-rw-r--r--pkgs/tools/networking/jnettop/default.nix10
-rw-r--r--pkgs/tools/networking/kapp/default.nix4
-rw-r--r--pkgs/tools/networking/kea/default.nix4
-rw-r--r--pkgs/tools/networking/linkchecker/default.nix4
-rw-r--r--pkgs/tools/networking/lldpd/default.nix6
-rw-r--r--pkgs/tools/networking/mailsend/default.nix36
-rw-r--r--pkgs/tools/networking/mailsend/default.upstream3
-rw-r--r--pkgs/tools/networking/minio-client/default.nix6
-rw-r--r--pkgs/tools/networking/mqttui/default.nix29
-rw-r--r--pkgs/tools/networking/ndn-tools/default.nix14
-rw-r--r--pkgs/tools/networking/nebula/default.nix12
-rw-r--r--pkgs/tools/networking/netboot/default.nix2
-rw-r--r--pkgs/tools/networking/networkmanager/applet/default.nix2
-rw-r--r--pkgs/tools/networking/networkmanager/default.nix2
-rw-r--r--pkgs/tools/networking/nfstrace/default.nix12
-rw-r--r--pkgs/tools/networking/ngrok-2/default.nix7
-rw-r--r--pkgs/tools/networking/oapi-codegen/default.nix6
-rw-r--r--pkgs/tools/networking/obfs4/default.nix8
-rw-r--r--pkgs/tools/networking/ofono/default.nix4
-rw-r--r--pkgs/tools/networking/ookla-speedtest/default.nix10
-rw-r--r--pkgs/tools/networking/oonf-olsrd2/default.nix33
-rw-r--r--pkgs/tools/networking/openfortivpn/default.nix4
-rw-r--r--pkgs/tools/networking/opensnitch/daemon.nix17
-rw-r--r--pkgs/tools/networking/openssh/common.nix55
-rw-r--r--pkgs/tools/networking/p2p/amule/default.nix2
-rw-r--r--pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix2
-rw-r--r--pkgs/tools/networking/p2p/jesec-rtorrent/rtorrent.nix2
-rw-r--r--pkgs/tools/networking/pcapfix/default.nix4
-rw-r--r--pkgs/tools/networking/pirate-get/default.nix4
-rw-r--r--pkgs/tools/networking/prettyping/default.nix5
-rw-r--r--pkgs/tools/networking/privoxy/default.nix6
-rw-r--r--pkgs/tools/networking/proxify/default.nix6
-rw-r--r--pkgs/tools/networking/redsocks/default.nix9
-rw-r--r--pkgs/tools/networking/rp-pppoe/default.nix8
-rw-r--r--pkgs/tools/networking/s6-dns/default.nix4
-rw-r--r--pkgs/tools/networking/s6-networking/default.nix4
-rw-r--r--pkgs/tools/networking/shadowsocks-rust/default.nix6
-rw-r--r--pkgs/tools/networking/slowlorust/default.nix26
-rw-r--r--pkgs/tools/networking/socat/default.nix11
-rw-r--r--pkgs/tools/networking/socat/socat-fix-feature-check-tcpinfo.patch21
-rw-r--r--pkgs/tools/networking/stubby/default.nix33
-rw-r--r--pkgs/tools/networking/stunnel/default.nix4
-rw-r--r--pkgs/tools/networking/swagger-codegen3/default.nix4
-rw-r--r--pkgs/tools/networking/tcpreplay/default.nix2
-rw-r--r--pkgs/tools/networking/tdns-cli/default.nix6
-rw-r--r--pkgs/tools/networking/tendermint/default.nix6
-rw-r--r--pkgs/tools/networking/tgt/default.nix6
-rw-r--r--pkgs/tools/networking/toxvpn/default.nix2
-rw-r--r--pkgs/tools/networking/unbound/default.nix17
-rw-r--r--pkgs/tools/networking/v2ray/default.nix38
-rwxr-xr-xpkgs/tools/networking/v2ray/update.sh26
-rw-r--r--pkgs/tools/networking/vopono/default.nix6
-rw-r--r--pkgs/tools/networking/vpn-slice/default.nix4
-rw-r--r--pkgs/tools/networking/vpnc-scripts/default.nix8
-rw-r--r--pkgs/tools/networking/waitron/default.nix4
-rw-r--r--pkgs/tools/networking/wireguard-go/default.nix2
-rw-r--r--pkgs/tools/networking/wireguard-tools/default.nix2
-rw-r--r--pkgs/tools/networking/wormhole-william/default.nix6
-rw-r--r--pkgs/tools/networking/wrk/default.nix4
-rw-r--r--pkgs/tools/networking/xh/default.nix23
-rw-r--r--pkgs/tools/networking/yrd/default.nix28
-rw-r--r--pkgs/tools/networking/ytcc/default.nix13
-rw-r--r--pkgs/tools/networking/zap/default.nix4
-rw-r--r--pkgs/tools/networking/zerotierone/default.nix4
-rw-r--r--pkgs/tools/nix/nix-output-monitor/default.nix4
-rw-r--r--pkgs/tools/nix/statix/default.nix11
-rw-r--r--pkgs/tools/package-management/apk-tools/default.nix4
-rw-r--r--pkgs/tools/package-management/cargo-about/default.nix16
-rw-r--r--pkgs/tools/package-management/cargo-about/zstd-pkg-config.patch39
-rw-r--r--pkgs/tools/package-management/cargo-audit/default.nix6
-rw-r--r--pkgs/tools/package-management/cargo-outdated/default.nix6
-rw-r--r--pkgs/tools/package-management/cargo-release/default.nix6
-rw-r--r--pkgs/tools/package-management/cargo-update/default.nix6
-rw-r--r--pkgs/tools/package-management/disnix/dydisnix/default.nix2
-rw-r--r--pkgs/tools/package-management/dpkg/default.nix16
-rw-r--r--pkgs/tools/package-management/emplace/default.nix6
-rw-r--r--pkgs/tools/package-management/libdnf/default.nix4
-rw-r--r--pkgs/tools/package-management/microdnf/default.nix4
-rw-r--r--pkgs/tools/package-management/micromamba/default.nix7
-rw-r--r--pkgs/tools/package-management/nfpm/default.nix6
-rw-r--r--pkgs/tools/package-management/nix-doc/default.nix6
-rw-r--r--pkgs/tools/package-management/nix-eval-jobs/default.nix8
-rw-r--r--pkgs/tools/package-management/nix-serve/default.nix5
-rw-r--r--pkgs/tools/package-management/nix-template/default.nix6
-rw-r--r--pkgs/tools/package-management/nix-universal-prefetch/default.nix4
-rw-r--r--pkgs/tools/package-management/nix/default.nix53
-rw-r--r--pkgs/tools/package-management/nixpkgs-review/default.nix4
-rw-r--r--pkgs/tools/package-management/nox/default.nix2
-rw-r--r--pkgs/tools/package-management/opkg/default.nix4
-rw-r--r--pkgs/tools/package-management/protontricks/default.nix9
-rw-r--r--pkgs/tools/package-management/protontricks/steam-run.patch26
-rw-r--r--pkgs/tools/package-management/rpm/default.nix3
-rw-r--r--pkgs/tools/security/afl/qemu.nix10
-rw-r--r--pkgs/tools/security/aflplusplus/qemu.nix4
-rw-r--r--pkgs/tools/security/age-plugin-yubikey/default.nix37
-rw-r--r--pkgs/tools/security/arsenal/default.nix37
-rw-r--r--pkgs/tools/security/b3sum/default.nix6
-rw-r--r--pkgs/tools/security/beyond-identity/default.nix89
-rw-r--r--pkgs/tools/security/bitwarden/default.nix4
-rw-r--r--pkgs/tools/security/boofuzz/default.nix54
-rw-r--r--pkgs/tools/security/cariddi/default.nix6
-rw-r--r--pkgs/tools/security/ccid/default.nix4
-rw-r--r--pkgs/tools/security/cdk-go/default.nix2
-rw-r--r--pkgs/tools/security/chopchop/default.nix25
-rw-r--r--pkgs/tools/security/clamav/default.nix2
-rw-r--r--pkgs/tools/security/cosign/default.nix16
-rw-r--r--pkgs/tools/security/cve-bin-tool/default.nix4
-rw-r--r--pkgs/tools/security/dalfox/default.nix6
-rw-r--r--pkgs/tools/security/dnsrecon/default.nix17
-rw-r--r--pkgs/tools/security/doppler/default.nix4
-rw-r--r--pkgs/tools/security/echidna/default.nix12
-rw-r--r--pkgs/tools/security/enum4linux/default.nix36
-rw-r--r--pkgs/tools/security/expliot/default.nix12
-rw-r--r--pkgs/tools/security/exploitdb/default.nix4
-rw-r--r--pkgs/tools/security/fierce/default.nix27
-rw-r--r--pkgs/tools/security/fprot/default.nix2
-rw-r--r--pkgs/tools/security/genpass/default.nix6
-rw-r--r--pkgs/tools/security/ghdorker/default.nix35
-rw-r--r--pkgs/tools/security/ghidra/default.nix8
-rw-r--r--pkgs/tools/security/gitleaks/default.nix15
-rw-r--r--pkgs/tools/security/gnupg/1compat.nix3
-rw-r--r--pkgs/tools/security/gomapenum/default.nix29
-rw-r--r--pkgs/tools/security/gosh/default.nix2
-rw-r--r--pkgs/tools/security/gospider/default.nix12
-rw-r--r--pkgs/tools/security/gpg-tui/default.nix6
-rw-r--r--pkgs/tools/security/grype/default.nix6
-rw-r--r--pkgs/tools/security/hashcat/default.nix4
-rw-r--r--pkgs/tools/security/hcxtools/default.nix4
-rw-r--r--pkgs/tools/security/httpx/default.nix6
-rw-r--r--pkgs/tools/security/inql/default.nix34
-rw-r--r--pkgs/tools/security/jadx/default.nix15
-rw-r--r--pkgs/tools/security/kube-hunter/default.nix57
-rw-r--r--pkgs/tools/security/kubeaudit/default.nix32
-rw-r--r--pkgs/tools/security/kubescape/default.nix6
-rw-r--r--pkgs/tools/security/lethe/default.nix6
-rw-r--r--pkgs/tools/security/libtpms/default.nix4
-rw-r--r--pkgs/tools/security/lmp/default.nix25
-rw-r--r--pkgs/tools/security/log4j-detect/default.nix38
-rw-r--r--pkgs/tools/security/log4j-scan/default.nix44
-rw-r--r--pkgs/tools/security/log4j-sniffer/default.nix36
-rw-r--r--pkgs/tools/security/log4j-vuln-scanner/default.nix30
-rw-r--r--pkgs/tools/security/log4jcheck/default.nix34
-rw-r--r--pkgs/tools/security/log4shell-detector/default.nix40
-rw-r--r--pkgs/tools/security/logmap/default.nix34
-rw-r--r--pkgs/tools/security/maigret/default.nix92
-rw-r--r--pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--pkgs/tools/security/metasploit/Gemfile.lock78
-rw-r--r--pkgs/tools/security/metasploit/default.nix4
-rw-r--r--pkgs/tools/security/metasploit/gemset.nix90
-rw-r--r--pkgs/tools/security/nmap/default.nix2
-rw-r--r--pkgs/tools/security/nuclei/default.nix6
-rw-r--r--pkgs/tools/security/onioncircuits/default.nix2
-rw-r--r--pkgs/tools/security/open-ecard/default.nix11
-rw-r--r--pkgs/tools/security/passff-host/default.nix7
-rw-r--r--pkgs/tools/security/pcsctools/default.nix4
-rw-r--r--pkgs/tools/security/pgpdump/default.nix4
-rw-r--r--pkgs/tools/security/polkit-gnome/default.nix2
-rw-r--r--pkgs/tools/security/qdigidoc/default.nix25
-rw-r--r--pkgs/tools/security/qdigidoc/qt5.15.patch39
-rw-r--r--pkgs/tools/security/rekor/default.nix19
-rw-r--r--pkgs/tools/security/rhash/default.nix30
-rw-r--r--pkgs/tools/security/ripasso/cursive.nix6
-rw-r--r--pkgs/tools/security/safe/default.nix14
-rw-r--r--pkgs/tools/security/sammler/default.nix2
-rw-r--r--pkgs/tools/security/scorecard/default.nix6
-rw-r--r--pkgs/tools/security/scrypt/default.nix10
-rw-r--r--pkgs/tools/security/sn0int/default.nix6
-rw-r--r--pkgs/tools/security/snallygaster/default.nix4
-rw-r--r--pkgs/tools/security/snowcrash/default.nix2
-rw-r--r--pkgs/tools/security/srm/default.nix5
-rw-r--r--pkgs/tools/security/sslscan/default.nix4
-rw-r--r--pkgs/tools/security/stacs/default.nix42
-rw-r--r--pkgs/tools/security/step-ca/default.nix9
-rw-r--r--pkgs/tools/security/swtpm/default.nix25
-rw-r--r--pkgs/tools/security/tboot/default.nix4
-rw-r--r--pkgs/tools/security/theharvester/default.nix4
-rw-r--r--pkgs/tools/security/tor/default.nix15
-rw-r--r--pkgs/tools/security/tor/disable-monotonic-timer-tests.patch28
-rw-r--r--pkgs/tools/security/tor/torsocks.nix2
-rw-r--r--pkgs/tools/security/vault/default.nix8
-rw-r--r--pkgs/tools/security/vault/vault-bin.nix18
-rw-r--r--pkgs/tools/security/vaultwarden/default.nix6
-rw-r--r--pkgs/tools/security/vaultwarden/vault.nix4
-rw-r--r--pkgs/tools/security/verifpal/default.nix6
-rw-r--r--pkgs/tools/security/wad/default.nix29
-rw-r--r--pkgs/tools/security/wapiti/default.nix36
-rw-r--r--pkgs/tools/security/whispers/default.nix52
-rw-r--r--pkgs/tools/system/bottom/default.nix6
-rw-r--r--pkgs/tools/system/bpytop/default.nix6
-rw-r--r--pkgs/tools/system/btop/default.nix28
-rw-r--r--pkgs/tools/system/collectd/default.nix14
-rw-r--r--pkgs/tools/system/fcron/default.nix4
-rw-r--r--pkgs/tools/system/gdu/default.nix4
-rw-r--r--pkgs/tools/system/gotop/default.nix1
-rw-r--r--pkgs/tools/system/gptfdisk/default.nix6
-rw-r--r--pkgs/tools/system/gptfdisk/ncurses-6.3.patch96
-rw-r--r--pkgs/tools/system/htop/default.nix4
-rw-r--r--pkgs/tools/system/htop/htop-vim.nix22
-rw-r--r--pkgs/tools/system/hwinfo/default.nix35
-rw-r--r--pkgs/tools/system/ipmiutil/default.nix5
-rw-r--r--pkgs/tools/system/localtime/default.nix40
-rw-r--r--pkgs/tools/system/lshw/default.nix10
-rw-r--r--pkgs/tools/system/natscli/default.nix4
-rw-r--r--pkgs/tools/system/openipmi/default.nix10
-rw-r--r--pkgs/tools/system/openipmi/fix-collectd-assertion.diff11
-rw-r--r--pkgs/tools/system/plan9port/default.nix1
-rw-r--r--pkgs/tools/system/rocm-smi/default.nix4
-rw-r--r--pkgs/tools/system/rsyslog/default.nix4
-rw-r--r--pkgs/tools/system/s6-rc/default.nix4
-rw-r--r--pkgs/tools/system/s6/default.nix4
-rw-r--r--pkgs/tools/system/stress-ng/default.nix18
-rw-r--r--pkgs/tools/text/crowdin-cli/default.nix4
-rw-r--r--pkgs/tools/text/csvdiff/default.nix25
-rw-r--r--pkgs/tools/text/csview/default.nix6
-rw-r--r--pkgs/tools/text/dcs/default.nix3
-rw-r--r--pkgs/tools/text/difftastic/default.nix7
-rw-r--r--pkgs/tools/text/fanficfare/default.nix6
-rw-r--r--pkgs/tools/text/gawk/default.nix4
-rw-r--r--pkgs/tools/text/grin/default.nix21
-rw-r--r--pkgs/tools/text/groff/default.nix3
-rw-r--r--pkgs/tools/text/hck/default.nix15
-rw-r--r--pkgs/tools/text/hyx/default.nix4
-rw-r--r--pkgs/tools/text/mark/default.nix6
-rw-r--r--pkgs/tools/text/mdbook-graphviz/default.nix6
-rw-r--r--pkgs/tools/text/mdbook-plantuml/default.nix28
-rw-r--r--pkgs/tools/text/mdcat/default.nix6
-rw-r--r--pkgs/tools/text/mecab/default.nix3
-rw-r--r--pkgs/tools/text/mecab/nodic.nix3
-rw-r--r--pkgs/tools/text/miller/default.nix4
-rw-r--r--pkgs/tools/text/morsel/default.nix22
-rw-r--r--pkgs/tools/text/opencc/default.nix4
-rw-r--r--pkgs/tools/text/papertrail/default.nix3
-rw-r--r--pkgs/tools/text/poedit/default.nix4
-rw-r--r--pkgs/tools/text/popfile/default.nix2
-rw-r--r--pkgs/tools/text/replace/default.nix6
-rw-r--r--pkgs/tools/text/sgml/jade/default.nix7
-rw-r--r--pkgs/tools/text/sgml/opensp/default.nix23
-rw-r--r--pkgs/tools/text/shfmt/default.nix4
-rw-r--r--pkgs/tools/text/smu/default.nix2
-rw-r--r--pkgs/tools/text/source-highlight/default.nix9
-rw-r--r--pkgs/tools/text/transifex-client/default.nix4
-rw-r--r--pkgs/tools/text/ugrep/default.nix4
-rw-r--r--pkgs/tools/text/vale/default.nix6
-rw-r--r--pkgs/tools/text/vgrep/default.nix4
-rw-r--r--pkgs/tools/text/xml/jing-trang/default.nix16
-rw-r--r--pkgs/tools/text/xml/jing-trang/no-git-during-build.patch47
-rw-r--r--pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile11
-rw-r--r--pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock131
-rw-r--r--pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix29
-rw-r--r--pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix538
-rw-r--r--pkgs/tools/typesetting/asciidoctor/Gemfile4
-rw-r--r--pkgs/tools/typesetting/asciidoctor/Gemfile.lock45
-rw-r--r--pkgs/tools/typesetting/asciidoctor/default.nix53
-rw-r--r--pkgs/tools/typesetting/asciidoctor/gemset.nix194
-rw-r--r--pkgs/tools/typesetting/docbook2x/default.nix6
-rw-r--r--pkgs/tools/typesetting/docbookrx/Gemfile2
-rw-r--r--pkgs/tools/typesetting/docbookrx/Gemfile.lock33
-rw-r--r--pkgs/tools/typesetting/docbookrx/default.nix11
-rw-r--r--pkgs/tools/typesetting/docbookrx/gemset.nix98
-rw-r--r--pkgs/tools/typesetting/halibut/default.nix24
-rw-r--r--pkgs/tools/typesetting/htmldoc/default.nix4
-rwxr-xr-xpkgs/tools/typesetting/lout/builder.sh32
-rw-r--r--pkgs/tools/typesetting/pdftk/default.nix6
-rw-r--r--pkgs/tools/typesetting/tex/blahtexml/default.nix48
-rw-r--r--pkgs/tools/video/rav1e/default.nix2
-rw-r--r--pkgs/tools/virtualization/alpine-make-vm-image/default.nix4
-rw-r--r--pkgs/tools/virtualization/cloud-init/default.nix51
-rw-r--r--pkgs/tools/virtualization/cloudmonkey/default.nix6
-rw-r--r--pkgs/tools/virtualization/ec2-utils/default.nix2
-rw-r--r--pkgs/tools/virtualization/google-compute-engine/default.nix91
-rw-r--r--pkgs/tools/virtualization/linode-cli/default.nix8
-rw-r--r--pkgs/tools/virtualization/nixos-shell/default.nix4
-rw-r--r--pkgs/tools/wayland/clipman/default.nix4
-rw-r--r--pkgs/tools/wayland/swaycwd/default.nix5
-rw-r--r--pkgs/tools/wayland/swayr/default.nix6
-rw-r--r--pkgs/tools/wayland/wayland-proxy-virtwl/default.nix14
-rw-r--r--pkgs/tools/wayland/wl-clipboard-x11/default.nix29
-rw-r--r--pkgs/tools/wayland/wl-mirror/default.nix45
-rw-r--r--pkgs/tools/wayland/wluma/default.nix35
-rw-r--r--pkgs/top-level/aliases.nix26
-rw-r--r--pkgs/top-level/all-packages.nix1223
-rw-r--r--pkgs/top-level/beam-packages.nix4
-rw-r--r--pkgs/top-level/coq-packages.nix18
-rw-r--r--pkgs/top-level/dhall-packages.nix4
-rw-r--r--pkgs/top-level/dotnet-packages.nix52
-rw-r--r--pkgs/top-level/emacs-packages.nix6
-rw-r--r--pkgs/top-level/gnuradio-packages.nix2
-rw-r--r--pkgs/top-level/haskell-packages.nix28
-rw-r--r--pkgs/top-level/impure.nix27
-rw-r--r--pkgs/top-level/java-packages.nix168
-rw-r--r--pkgs/top-level/kodi-packages.nix104
-rw-r--r--pkgs/top-level/linux-kernels.nix21
-rw-r--r--pkgs/top-level/nim-packages.nix2
-rw-r--r--pkgs/top-level/nixpkgs-basic-release-checks.nix2
-rw-r--r--pkgs/top-level/ocaml-packages.nix168
-rw-r--r--pkgs/top-level/octave-packages.nix2
-rw-r--r--pkgs/top-level/packages-config.nix7
-rw-r--r--pkgs/top-level/perl-packages.nix183
-rw-r--r--pkgs/top-level/php-packages.nix15
-rw-r--r--pkgs/top-level/python-aliases.nix7
-rw-r--r--pkgs/top-level/python-packages.nix380
-rw-r--r--pkgs/top-level/python2-packages.nix23
-rw-r--r--pkgs/top-level/qt5-packages.nix2
-rw-r--r--pkgs/top-level/release-cross.nix39
-rw-r--r--pkgs/top-level/release-haskell.nix34
-rw-r--r--pkgs/top-level/release.nix7
-rw-r--r--pkgs/top-level/ruby-packages.nix121
-rw-r--r--pkgs/top-level/splice.nix6
5177 files changed, 104321 insertions, 75182 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 7dc14a61cbaed..3e527f9529e2d 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -6,6 +6,13 @@
 #
 # For documentation on this file, see https://help.github.com/articles/about-codeowners/
 # Mentioned users will get code review requests.
+#
+# IMPORTANT NOTE: in order to actually get pinged, commit access is required.
+# This also holds true for GitHub teams. Since almost none of our teams have write
+# permissions, you need to list all members of the team with commit access individually.
+# We still add the team to the list next to its members, this helps keeping things
+# in sync. (Put non team members before the team to distinguish them.)
+# See https://github.com/NixOS/nixpkgs/issues/124085 for more details
 
 # This file
 /.github/CODEOWNERS @edolstra
@@ -32,7 +39,7 @@
 /pkgs/top-level/stage.nix                        @nbp @Ericson2314 @matthewbauer
 /pkgs/top-level/splice.nix                       @Ericson2314 @matthewbauer
 /pkgs/top-level/release-cross.nix                @Ericson2314 @matthewbauer
-/pkgs/stdenv/generic                             @Ericson2314 @matthewbauer
+/pkgs/stdenv/generic                             @Ericson2314 @matthewbauer @cab404
 /pkgs/stdenv/cross                               @Ericson2314 @matthewbauer
 /pkgs/build-support/cc-wrapper                   @Ericson2314 @orivej
 /pkgs/build-support/bintools-wrapper             @Ericson2314 @orivej
@@ -210,11 +217,11 @@
 /pkgs/top-level/php-packages.nix         @jtojnar @NixOS/php @aanderse @etu @globin @ma27 @talyz
 
 # Podman, CRI-O modules and related
-/nixos/modules/virtualisation/containers.nix @NixOS/podman @zowoq
-/nixos/modules/virtualisation/cri-o.nix      @NixOS/podman @zowoq
-/nixos/modules/virtualisation/podman.nix     @NixOS/podman @zowoq
-/nixos/tests/cri-o.nix                       @NixOS/podman @zowoq
-/nixos/tests/podman.nix                      @NixOS/podman @zowoq
+/nixos/modules/virtualisation/containers.nix @NixOS/podman @zowoq @adisbladis
+/nixos/modules/virtualisation/cri-o.nix      @NixOS/podman @zowoq @adisbladis
+/nixos/modules/virtualisation/podman         @NixOS/podman @zowoq @adisbladis
+/nixos/tests/cri-o.nix                       @NixOS/podman @zowoq @adisbladis
+/nixos/tests/podman                          @NixOS/podman @zowoq @adisbladis
 
 # Docker tools
 /pkgs/build-support/docker                   @roberth @utdemir
@@ -230,6 +237,10 @@
 /pkgs/development/go-modules   @kalbasit @Mic92 @zowoq
 /pkgs/development/go-packages  @kalbasit @Mic92 @zowoq
 
+# GNOME
+/pkgs/desktops/gnome                              @NixOS/GNOME @jtojnar @hedning
+/pkgs/desktops/gnome/extensions       @piegamesde @NixOS/GNOME @jtojnar @hedning
+
 # Cinnamon
 /pkgs/desktops/cinnamon @mkg20001
 
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index fa1140a7e335f..c197f03402397 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -38,11 +38,3 @@ Please run `nix-shell -p nix-info --run "nix-info -m"` and paste the result.
 [user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 output here
 ```
-
-Maintainer information:
-```yaml
-# a list of nixpkgs attributes affected by the problem
-attribute:
-# a list of nixos modules affected by the problem
-module:
-```
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 35c70da769f12..268b1594de715 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -28,7 +28,7 @@ Reviewing guidelines: https://nixos.org/manual/nixpkgs/unstable/#chap-reviewing-
   - made sure NixOS tests are [linked](https://nixos.org/manual/nixpkgs/unstable/#ssec-nixos-tests-linking) to the relevant packages
 - [ ] Tested compilation of all packages that depend on this change using `nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"`. Note: all changes have to be committed, also see [nixpkgs-review usage](https://github.com/Mic92/nixpkgs-review#usage)
 - [ ] Tested basic functionality of all binary files (usually in `./result/bin/`)
-- [21.11 Release Notes (or backporting 21.05 Release notes)](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#generating-2111-release-notes)
+- [22.05 Release Notes (or backporting 21.11 Release notes)](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#generating-2205-release-notes)
   - [ ] (Package updates) Added a release notes entry if the change is major or breaking
   - [ ] (Module updates) Added a release notes entry if the change is significant
   - [ ] (Module addition) Added a release notes entry if adding a new NixOS module
diff --git a/.github/labeler.yml b/.github/labeler.yml
index 780843a2a5533..e23cd9598ff9a 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -143,6 +143,8 @@
   - doc/languages-frameworks/vim.section.md
   - pkgs/applications/editors/vim/**/*
   - pkgs/misc/vim-plugins/**/*
+  - nixos/modules/programs/neovim.nix
+  - pkgs/applications/editors/neovim/**/*
 
 "6.topic: xfce":
   - nixos/doc/manual/configuration/xfce.xml
diff --git a/.github/workflows/basic-eval.yml b/.github/workflows/basic-eval.yml
index c5e17faea8651..67634af51f625 100644
--- a/.github/workflows/basic-eval.yml
+++ b/.github/workflows/basic-eval.yml
@@ -15,6 +15,6 @@ jobs:
     # we don't limit this action to only NixOS repo since the checks are cheap and useful developer feedback
     steps:
     - uses: actions/checkout@v2
-    - uses: cachix/install-nix-action@v15
+    - uses: cachix/install-nix-action@v16
     # explicit list of supportedSystems is needed until aarch64-darwin becomes part of the trunk jobset
     - run: nix-build pkgs/top-level/release.nix -A tarball.nixpkgs-basic-release-checks --arg supportedSystems '[ "aarch64-darwin" "aarch64-linux" "x86_64-linux" "x86_64-darwin"  ]'
diff --git a/.github/workflows/editorconfig.yml b/.github/workflows/editorconfig.yml
index c0303ca80b9d0..28e20d6c94581 100644
--- a/.github/workflows/editorconfig.yml
+++ b/.github/workflows/editorconfig.yml
@@ -11,36 +11,33 @@ on:
 jobs:
   tests:
     runs-on: ubuntu-latest
-    if: github.repository_owner == 'NixOS'
+    if: "github.repository_owner == 'NixOS' && !contains(github.event.pull_request.title, '[skip editorconfig]')"
     steps:
     - name: Get list of changed files from PR
       env:
         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
       run: |
-        echo 'PR_DIFF<<EOF' >> $GITHUB_ENV
         gh api \
           repos/NixOS/nixpkgs/pulls/${{github.event.number}}/files --paginate \
           | jq '.[] | select(.status != "removed") | .filename' \
-          >> $GITHUB_ENV
-        echo 'EOF' >> $GITHUB_ENV
+          > "$HOME/changed_files"
+    - name: print list of changed files
+      run: |
+        cat "$HOME/changed_files"
     - uses: actions/checkout@v2
       with:
         # pull_request_target checks out the base branch by default
         ref: refs/pull/${{ github.event.pull_request.number }}/merge
-      if: env.PR_DIFF
-    - uses: cachix/install-nix-action@v15
-      if: env.PR_DIFF
+    - uses: cachix/install-nix-action@v16
       with:
         # nixpkgs commit is pinned so that it doesn't break
-        nix_path: nixpkgs=https://github.com/NixOS/nixpkgs/archive/f93ecc4f6bc60414d8b73dbdf615ceb6a2c604df.tar.gz
+        # editorconfig-checker 2.4.0
+        nix_path: nixpkgs=https://github.com/NixOS/nixpkgs/archive/c473cc8714710179df205b153f4e9fa007107ff9.tar.gz
     - name: install editorconfig-checker
       run: nix-env -iA editorconfig-checker -f '<nixpkgs>'
-      if: env.PR_DIFF
     - name: Checking EditorConfig
-      if: env.PR_DIFF
       run: |
-        echo "$PR_DIFF" | xargs editorconfig-checker -disable-indent-size
+        cat "$HOME/changed_files" | xargs -r editorconfig-checker -disable-indent-size
     - if: ${{ failure() }}
       run: |
         echo "::error :: Hey! It looks like your changes don't follow our editorconfig settings. Read https://editorconfig.org/#download to configure your editor so you never see this error again."
-
diff --git a/.github/workflows/manual-nixos.yml b/.github/workflows/manual-nixos.yml
index e134f263c8843..b9181c5f3bbc0 100644
--- a/.github/workflows/manual-nixos.yml
+++ b/.github/workflows/manual-nixos.yml
@@ -18,7 +18,7 @@ jobs:
         with:
           # pull_request_target checks out the base branch by default
           ref: refs/pull/${{ github.event.pull_request.number }}/merge
-      - uses: cachix/install-nix-action@v15
+      - uses: cachix/install-nix-action@v16
         with:
           # explicitly enable sandbox
           extra_nix_config: sandbox = true
diff --git a/.github/workflows/manual-nixpkgs.yml b/.github/workflows/manual-nixpkgs.yml
index 6866bc3af61a0..3bdbd7f78fc44 100644
--- a/.github/workflows/manual-nixpkgs.yml
+++ b/.github/workflows/manual-nixpkgs.yml
@@ -18,7 +18,7 @@ jobs:
         with:
           # pull_request_target checks out the base branch by default
           ref: refs/pull/${{ github.event.pull_request.number }}/merge
-      - uses: cachix/install-nix-action@v15
+      - uses: cachix/install-nix-action@v16
         with:
           # explicitly enable sandbox
           extra_nix_config: sandbox = true
diff --git a/.github/workflows/nixos-manual.yml b/.github/workflows/nixos-manual.yml
index eade07427d39a..e1c5b4dc93b9c 100644
--- a/.github/workflows/nixos-manual.yml
+++ b/.github/workflows/nixos-manual.yml
@@ -19,7 +19,7 @@ jobs:
       with:
         # pull_request_target checks out the base branch by default
         ref: refs/pull/${{ github.event.pull_request.number }}/merge
-    - uses: cachix/install-nix-action@v15
+    - uses: cachix/install-nix-action@v16
     - name: Check DocBook files generated from Markdown are consistent
       run: |
         nixos/doc/manual/md-to-db.sh
diff --git a/.github/workflows/periodic-merge-24h.yml b/.github/workflows/periodic-merge-24h.yml
index 9032b3d7d9100..b8535fdf9527e 100644
--- a/.github/workflows/periodic-merge-24h.yml
+++ b/.github/workflows/periodic-merge-24h.yml
@@ -32,6 +32,10 @@ jobs:
             into: staging-next-21.05
           - from: staging-next-21.05
             into: staging-21.05
+          - from: release-21.11
+            into: staging-next-21.11
+          - from: staging-next-21.11
+            into: staging-21.11
     name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
     steps:
       - uses: actions/checkout@v2
diff --git a/.gitignore b/.gitignore
index 1a41704c9be3d..85b94d8825214 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,8 +3,10 @@
 .*.swp
 .*.swo
 .idea/
+outputs/
 result
 result-*
+source/
 /doc/NEWS.html
 /doc/NEWS.txt
 /doc/manual.html
@@ -21,3 +23,6 @@ __pycache__
 
 # generated by pkgs/common-updater/update-script.nix
 update-git-commits.txt
+
+# JetBrains IDEA module declaration file
+/nixpkgs.iml
diff --git a/.version b/.version
index 835ab5d1893f6..a01c758c1898e 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-21.11
\ No newline at end of file
+22.05
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 0219aec7f528a..e3a18c6e7eb40 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -53,10 +53,10 @@ For package version upgrades and such a one-line commit message is usually suffi
 Follow these steps to backport a change into a release branch in compliance with the [commit policy](https://nixos.org/nixpkgs/manual/#submitting-changes-stable-release-branches).
 
 1. Take note of the commits in which the change was introduced into `master` branch.
-2. Check out the target _release branch_, e.g. `release-20.09`. Do not use a _channel branch_ like `nixos-20.09` or `nixpkgs-20.09`.
+2. Check out the target _release branch_, e.g. `release-21.11`. Do not use a _channel branch_ like `nixos-21.11` or `nixpkgs-21.11-darwin`.
 3. Create a branch for your change, e.g. `git checkout -b backport`.
 4. When the reason to backport is not obvious from the original commit message, use `git cherry-pick -xe <original commit>` and add a reason. Otherwise use `git cherry-pick -x <original commit>`. That's fine for minor version updates that only include security and bug fixes, commits that fixes an otherwise broken package or similar. Please also ensure the commits exists on the master branch; in the case of squashed or rebased merges, the commit hash will change and the new commits can be found in the merge message at the bottom of the master pull request.
-5. Push to GitHub and open a backport pull request. Make sure to select the release branch (e.g. `release-20.09`) as the target branch of the pull request, and link to the pull request in which the original change was comitted to `master`. The pull request title should be the commit title with the release version as prefix, e.g. `[20.09]`.
+5. Push to GitHub and open a backport pull request. Make sure to select the release branch (e.g. `release-21.11`) as the target branch of the pull request, and link to the pull request in which the original change was comitted to `master`. The pull request title should be the commit title with the release version as prefix, e.g. `[21.11]`.
 6. When the backport pull request is merged and you have the necessary privileges you can also replace the label `9.needs: port to stable` with `8.has: port to stable` on the original pull request. This way maintainers can keep track of missing backports easier.
 
 ## Criteria for Backporting changes
@@ -68,17 +68,17 @@ Anything that does not cause user or downstream dependency regressions can be ba
 - Services which require a client to be up-to-date regardless. (E.g. `spotify`, `steam`, or `discord`)
 - Security critical applications (E.g. `firefox`)
 
-## Generating 21.11 Release Notes
+## Generating 22.05 Release Notes
 
-(This section also applies to backporting 21.05 release notes: substitute "rl-2111" for "rl-2105".)
+(This section also applies to backporting 21.11 release notes: substitute "rl-2205" for "rl-2111".)
 
 Documentation in nixpkgs is transitioning to a markdown-centric workflow. Release notes now require a translation step to convert from markdown to a compatible docbook document.
 
-Steps for updating 21.11 Release notes:
+Steps for updating 22.05 Release notes:
 
-1. Edit `nixos/doc/manual/release-notes/rl-2111.section.md` with the desired changes
-2. Run `./nixos/doc/manual/md-to-db.sh` to render `nixos/doc/manual/from_md/release-notes/rl-2111.section.xml`
-3. Include changes to `rl-2111.section.md` and `rl-2111.section.xml` in the same commit.
+1. Edit `nixos/doc/manual/release-notes/rl-2205.section.md` with the desired changes
+2. Run `./nixos/doc/manual/md-to-db.sh` to render `nixos/doc/manual/from_md/release-notes/rl-2205.section.xml`
+3. Include changes to `rl-2205.section.md` and `rl-2205.section.xml` in the same commit.
 
 ## Reviewing contributions
 
diff --git a/README.md b/README.md
index a09b7d92e3e58..e0970f85ff234 100644
--- a/README.md
+++ b/README.md
@@ -46,9 +46,9 @@ Nixpkgs and NixOS are built and tested by our continuous integration
 system, [Hydra](https://hydra.nixos.org/).
 
 * [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined)
-* [Continuous package builds for the NixOS 21.05 release](https://hydra.nixos.org/jobset/nixos/release-21.05)
+* [Continuous package builds for the NixOS 21.11 release](https://hydra.nixos.org/jobset/nixos/release-21.11)
 * [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents)
-* [Tests for the NixOS 21.05 release](https://hydra.nixos.org/job/nixos/release-21.05/tested#tabs-constituents)
+* [Tests for the NixOS 21.11 release](https://hydra.nixos.org/job/nixos/release-21.11/tested#tabs-constituents)
 
 Artifacts successfully built with Hydra are published to cache at
 https://cache.nixos.org/. When successful build and test criteria are
diff --git a/doc/builders/images/dockertools.section.md b/doc/builders/images/dockertools.section.md
index bfe1d17a60674..7ff4b2aeb3690 100644
--- a/doc/builders/images/dockertools.section.md
+++ b/doc/builders/images/dockertools.section.md
@@ -151,6 +151,12 @@ Create a Docker image with many of the store paths being on their own layer to i
 
 : Shell commands to run while creating the archive for the final layer in a fakeroot environment. Unlike `extraCommands`, you can run `chown` to change the owners of the files in the archive, changing fakeroot's state instead of the real filesystem. The latter would require privileges that the build user does not have. Static binaries do not interact with the fakeroot environment. By default all files in the archive will be owned by root.
 
+`enableFakechroot` _optional_
+
+: Whether to run in `fakeRootCommands` in `fakechroot`, making programs behave as though `/` is the root of the image being created, while files in the Nix store are available as usual. This allows scripts that perform installation in `/` to work as expected. Considering that `fakechroot` is implemented via the same mechanism as `fakeroot`, the same caveats apply.
+
+    *Default:* `false`
+
 ### Behavior of `contents` in the final image {#dockerTools-buildLayeredImage-arg-contents}
 
 Each path directly listed in `contents` will have a symlink in the root of the image.
diff --git a/doc/builders/packages/linux.section.md b/doc/builders/packages/linux.section.md
index d8f0d0ad445fa..f669c720710c8 100644
--- a/doc/builders/packages/linux.section.md
+++ b/doc/builders/packages/linux.section.md
@@ -29,7 +29,7 @@ How to add a new (major) version of the Linux kernel to Nixpkgs:
     4.  If needed you can also run `make menuconfig`:
 
         ```ShellSession
-        $ nix-env -i ncurses
+        $ nix-env -f "<nixpkgs>" -iA ncurses
         $ export NIX_CFLAGS_LINK=-lncurses
         $ make menuconfig ARCH=arch
         ```
diff --git a/doc/contributing/submitting-changes.chapter.md b/doc/contributing/submitting-changes.chapter.md
index 221ba3006194a..09ffba3dc6fc5 100644
--- a/doc/contributing/submitting-changes.chapter.md
+++ b/doc/contributing/submitting-changes.chapter.md
@@ -43,13 +43,13 @@
   - nixpkgs:
 
     - update pkg
-      - `nix-env -i pkg-name -f <path to your local nixpkgs folder>`
+      - `nix-env -iA pkg-attribute-name -f <path to your local nixpkgs folder>`
     - add pkg
       - Make sure it’s in `pkgs/top-level/all-packages.nix`
-      - `nix-env -i pkg-name -f <path to your local nixpkgs folder>`
+      - `nix-env -iA pkg-attribute-name -f <path to your local nixpkgs folder>`
     - _If you don’t want to install pkg in you profile_.
-      - `nix-build -A pkg-attribute-name <path to your local nixpkgs folder>/default.nix` and check results in the folder `result`. It will appear in the same directory where you did `nix-build`.
-    - If you did `nix-env -i pkg-name` you can do `nix-env -e pkg-name` to uninstall it from your system.
+      - `nix-build -A pkg-attribute-name <path to your local nixpkgs folder>` and check results in the folder `result`. It will appear in the same directory where you did `nix-build`.
+    - If you installed your package with `nix-env`, you can run `nix-env -e pkg-name` where `pkg-name` is as reported by `nix-env -q` to uninstall it from your system.
 
   - NixOS and its modules:
     - You can add new module to your NixOS configuration file (usually it’s `/etc/nixos/configuration.nix`). And do `sudo nixos-rebuild test -I nixpkgs=<path to your local nixpkgs folder> --fast`.
@@ -246,11 +246,21 @@ If the branch is already in a broken state, please refrain from adding extra new
 
 ### Stable release branches {#submitting-changes-stable-release-branches}
 
-For cherry-picking a commit to a stable release branch (“backporting”), use `git cherry-pick -x <original commit>` so that the original commit id is included in the commit.
+The same staging workflow applies to stable release branches, but the main branch is called `release-*` instead of `master`.
 
-Add a reason for the backport by using `git cherry-pick -xe <original commit>` instead when it is not obvious from the original commit message. It is not needed when it's a minor version update that includes security and bug fixes but don't add new features or when the commit fixes an otherwise broken package.
+Example branch names: `release-21.11`, `staging-21.11`, `staging-next-21.11`.
 
-For backporting Pull Requests to stable branches, assign label `backport <branch>` to the original Pull Requests and automation should take care of the rest once the Pull Requests is merged.
+Most changes added to the stable release branches are cherry-picked (“backported”) from the `master` and staging branches.
+
+#### Automatically backporting a Pull Request {#submitting-changes-stable-release-branches-automatic-backports}
+
+Assign label `backport <branch>` (e.g. `backport release-21.11`) to the PR and a backport PR is automatically created after the PR is merged.
+
+#### Manually backporting changes {#submitting-changes-stable-release-branches-manual-backports}
+
+Cherry-pick changes via `git cherry-pick -x <original commit>` so that the original commit id is included in the commit message.
+
+Add a reason for the backport when it is not obvious from the original commit message. You can do this by cherry picking with `git cherry-pick -xe <original commit>`, which allows editing the commit message. This is not needed for minor version updates that include security and bug fixes but don't add new features or when the commit fixes an otherwise broken package.
 
 Here is an example of a cherry-picked commit message with good reason description:
 
diff --git a/doc/languages-frameworks/beam.section.md b/doc/languages-frameworks/beam.section.md
index fb608932dfc3e..9b09d0329c5f2 100644
--- a/doc/languages-frameworks/beam.section.md
+++ b/doc/languages-frameworks/beam.section.md
@@ -291,10 +291,10 @@ let
   # define packages to install
   basePackages = [
     git
-    # replace with beam.packages.erlang.elixir_1_11 if you need
+    # replace with beam.packages.erlang.elixir_1_13 if you need
     beam.packages.erlang.elixir
     nodejs
-    postgresql_13
+    postgresql_14
     # only used for frontend dependencies
     # you are free to use yarn2nix as well
     nodePackages.node2nix
@@ -312,10 +312,11 @@ let
     mkdir -p .nix-mix .nix-hex
     export MIX_HOME=$PWD/.nix-mix
     export HEX_HOME=$PWD/.nix-mix
+    # make hex from Nixpkgs available
+    # `mix local.hex` will install hex into MIX_HOME and should take precedence
+    export MIX_PATH="${beam.packages.erlang.hex}/lib/erlang/lib/hex/ebin"
     export PATH=$MIX_HOME/bin:$HEX_HOME/bin:$PATH
-    # TODO: not sure how to make hex available without installing it afterwards.
-    mix local.hex --if-missing
-    export LANG=en_US.UTF-8
+    export LANG=C.UTF-8
     # keep your shell history in iex
     export ERL_AFLAGS="-kernel shell_history enabled"
 
diff --git a/doc/languages-frameworks/dotnet.section.md b/doc/languages-frameworks/dotnet.section.md
index f2a5efd05db6c..88e1a0b295968 100644
--- a/doc/languages-frameworks/dotnet.section.md
+++ b/doc/languages-frameworks/dotnet.section.md
@@ -71,34 +71,52 @@ The `dotnetCorePackages.sdk` contains both a runtime and the full sdk of a given
 
 To package Dotnet applications, you can use `buildDotnetModule`. This has similar arguments to `stdenv.mkDerivation`, with the following additions:
 
-* `projectFile` has to be used for specifying the dotnet project file relative to the source root. These usually have `.sln` or `.csproj` file extensions.
-* `nugetDeps` has to be used to specify the NuGet dependency file. Unfortunately, these cannot be deterministically fetched without a lockfile. This file should be generated using `nuget-to-nix` tool, which is available in nixpkgs.
+* `projectFile` has to be used for specifying the dotnet project file relative to the source root. These usually have `.sln` or `.csproj` file extensions. This can be an array of multiple projects as well.
+* `nugetDeps` has to be used to specify the NuGet dependency file. Unfortunately, these cannot be deterministically fetched without a lockfile. A script to fetch these is available as `passthru.fetch-deps`. This file can also be generated manually using `nuget-to-nix` tool, which is available in nixpkgs.
+* `packNupkg` is used to pack project as a `nupkg`, and installs it to `$out/share`. If set to `true`, the derivation can be used as a dependency for another dotnet project by adding it to `projectReferences`.
+* `projectReferences` can be used to resolve `ProjectReference` project items. Referenced projects can be packed with `buildDotnetModule` by setting the `packNupkg = true` attribute and passing a list of derivations to `projectReferences`. Since we are sharing referenced projects as NuGets they must be added to csproj/fsproj files as `PackageReference` as well.
+ For example, your project has a local dependency:
+ ```xml
+     <ProjectReference Include="../foo/bar.fsproj" />
+ ```
+ To enable discovery through `projectReferences` you would need to add:
+ ```xml
+     <ProjectReference Include="../foo/bar.fsproj" />
+     <PackageReference Include="bar" Version="*" Condition=" '$(ContinuousIntegrationBuild)'=='true' "/>
+  ```
 * `executables` is used to specify which executables get wrapped to `$out/bin`, relative to `$out/lib/$pname`. If this is unset, all executables generated will get installed. If you do not want to install any, set this to `[]`.
 * `runtimeDeps` is used to wrap libraries into `LD_LIBRARY_PATH`. This is how dotnet usually handles runtime dependencies.
 * `buildType` is used to change the type of build. Possible values are `Release`, `Debug`, etc. By default, this is set to `Release`.
 * `dotnet-sdk` is useful in cases where you need to change what dotnet SDK is being used.
 * `dotnet-runtime` is useful in cases where you need to change what dotnet runtime is being used. This can be either a regular dotnet runtime, or an aspnetcore.
 * `dotnet-test-sdk` is useful in cases where unit tests expect a different dotnet SDK. By default, this is set to the `dotnet-sdk` attribute.
-* `testProjectFile` is useful in cases where the regular project file does not contain the unit tests. By default, this is set to the `projectFile` attribute.
+* `testProjectFile` is useful in cases where the regular project file does not contain the unit tests. It gets restored and build, but not installed. You may need to regenerate your nuget lockfile after setting this.
 * `disabledTests` is used to disable running specific unit tests. This gets passed as: `dotnet test --filter "FullyQualifiedName!={}"`, to ensure compatibility with all unit test frameworks.
 * `dotnetRestoreFlags` can be used to pass flags to `dotnet restore`.
 * `dotnetBuildFlags` can be used to pass flags to `dotnet build`.
-* `dotnetTestFlags` can be used to pass flags to `dotnet test`.
+* `dotnetTestFlags` can be used to pass flags to `dotnet test`. Used only if `doCheck` is set to `true`.
 * `dotnetInstallFlags` can be used to pass flags to `dotnet install`.
+* `dotnetPackFlags` can be used to pass flags to `dotnet pack`. Used only if `packNupkg` is set to `true`.
 * `dotnetFlags` can be used to pass flags to all of the above phases.
 
+When packaging a new application, you need to fetch it's dependencies. You can set `nugetDeps` to an empty string to make the derivation temporarily evaluate, and then run `nix-build -A package.passthru.fetch-deps` to generate it's dependency fetching script. After running the script, you should have the location of the generated lockfile printed to the console. This can be copied to a stable directory. Note that if either `projectFile` or `nugetDeps` are unset, this script cannot be generated!
+
 Here is an example `default.nix`, using some of the previously discussed arguments:
 ```nix
 { lib, buildDotnetModule, dotnetCorePackages, ffmpeg }:
 
-buildDotnetModule rec {
+let
+  referencedProject = import ../../bar { ... };
+in buildDotnetModule rec {
   pname = "someDotnetApplication";
   version = "0.1";
 
   src = ./.;
 
   projectFile = "src/project.sln";
-  nugetDeps = ./deps.nix; # File generated with `nuget-to-nix path/to/src > deps.nix`.
+  nugetDeps = ./deps.nix; # File generated with `nix-build -A package.passthru.fetch-deps`.
+
+  projectReferences = [ referencedProject ]; # `referencedProject` must contain `nupkg` in the folder structure.
 
   dotnet-sdk = dotnetCorePackages.sdk_3_1;
   dotnet-runtime = dotnetCorePackages.net_5_0;
@@ -107,6 +125,8 @@ buildDotnetModule rec {
   executables = [ "foo" ]; # This wraps "$out/lib/$pname/foo" to `$out/bin/foo`.
   executables = []; # Don't install any executables.
 
+  packNupkg = true; # This packs the project as "foo-0.1.nupkg" at `$out/share`.
+
   runtimeDeps = [ ffmpeg ]; # This will wrap ffmpeg's library path into `LD_LIBRARY_PATH`.
 }
 ```
diff --git a/doc/languages-frameworks/emscripten.section.md b/doc/languages-frameworks/emscripten.section.md
index b3ddf0cedaea7..c96f689c4c00f 100644
--- a/doc/languages-frameworks/emscripten.section.md
+++ b/doc/languages-frameworks/emscripten.section.md
@@ -15,12 +15,12 @@ Modes of use of `emscripten`:
 
    If you want to work with `emcc`, `emconfigure` and `emmake` as you are used to from Ubuntu and similar distributions you can use these commands:
 
-    * `nix-env -i emscripten`
+    * `nix-env -f "<nixpkgs>" -iA emscripten`
     * `nix-shell -p emscripten`
 
 * **Declarative usage**:
 
-    This mode is far more power full since this makes use of `nix` for dependency management of emscripten libraries and targets by using the `mkDerivation` which is implemented by `pkgs.emscriptenStdenv` and `pkgs.buildEmscriptenPackage`. The source for the packages is in `pkgs/top-level/emscripten-packages.nix` and the abstraction behind it in `pkgs/development/em-modules/generic/default.nix`.
+    This mode is far more power full since this makes use of `nix` for dependency management of emscripten libraries and targets by using the `mkDerivation` which is implemented by `pkgs.emscriptenStdenv` and `pkgs.buildEmscriptenPackage`. The source for the packages is in `pkgs/top-level/emscripten-packages.nix` and the abstraction behind it in `pkgs/development/em-modules/generic/default.nix`. From the root of the nixpkgs repository:
     * build and install all packages:
         * `nix-env -iA emscriptenPackages`
 
diff --git a/doc/languages-frameworks/gnome.section.md b/doc/languages-frameworks/gnome.section.md
index 11b49f4f235a0..29cb2e0e464a2 100644
--- a/doc/languages-frameworks/gnome.section.md
+++ b/doc/languages-frameworks/gnome.section.md
@@ -92,7 +92,7 @@ For convenience, it also adds `dconf.lib` for a GIO module implementing a GSetti
 
 - []{#ssec-gnome-hooks-glib} `glib` setup hook will populate `GSETTINGS_SCHEMAS_PATH` and then `wrapGAppsHook` will prepend it to `XDG_DATA_DIRS`.
 
-- []{#ssec-gnome-hooks-gdk-pixbuf} `gdk-pixbuf` setup hook will populate `GDK_PIXBUF_MODULE_FILE` with the path to biggest `loaders.cache` file from the dependencies containing [GdkPixbuf loaders](ssec-gnome-gdk-pixbuf-loaders). This works fine when there are only two packages containing loaders (`gdk-pixbuf` and e.g. `librsvg`) – it will choose the second one, reasonably expecting that it will be bigger since it describes extra loader in addition to the default ones. But when there are more than two loader packages, this logic will break. One possible solution would be constructing a custom cache file for each package containing a program like `services/x11/gdk-pixbuf.nix` NixOS module does. `wrapGAppsHook` copies the `GDK_PIXBUF_MODULE_FILE` environment variable into the produced wrapper.
+- []{#ssec-gnome-hooks-gdk-pixbuf} `gdk-pixbuf` setup hook will populate `GDK_PIXBUF_MODULE_FILE` with the path to biggest `loaders.cache` file from the dependencies containing [GdkPixbuf loaders](#ssec-gnome-gdk-pixbuf-loaders). This works fine when there are only two packages containing loaders (`gdk-pixbuf` and e.g. `librsvg`) – it will choose the second one, reasonably expecting that it will be bigger since it describes extra loader in addition to the default ones. But when there are more than two loader packages, this logic will break. One possible solution would be constructing a custom cache file for each package containing a program like `services/x11/gdk-pixbuf.nix` NixOS module does. `wrapGAppsHook` copies the `GDK_PIXBUF_MODULE_FILE` environment variable into the produced wrapper.
 
 - []{#ssec-gnome-hooks-gtk-drop-icon-theme-cache} One of `gtk3`’s setup hooks will remove `icon-theme.cache` files from package’s icon theme directories to avoid conflicts. Icon theme packages should prevent this with `dontDropIconThemeCache = true;`.
 
diff --git a/doc/languages-frameworks/idris.section.md b/doc/languages-frameworks/idris.section.md
index ffdd706eb0b76..19146844cff55 100644
--- a/doc/languages-frameworks/idris.section.md
+++ b/doc/languages-frameworks/idris.section.md
@@ -5,10 +5,7 @@
 The easiest way to get a working idris version is to install the `idris` attribute:
 
 ```ShellSession
-$ # On NixOS
-$ nix-env -i nixos.idris
-$ # On non-NixOS
-$ nix-env -i nixpkgs.idris
+$ nix-env -f "<nixpkgs>" -iA idris
 ```
 
 This however only provides the `prelude` and `base` libraries. To install idris with additional libraries, you can use the `idrisPackages.with-packages` function, e.g. in an overlay in `~/.config/nixpkgs/overlays/my-idris.nix`:
diff --git a/doc/languages-frameworks/lua.section.md b/doc/languages-frameworks/lua.section.md
index 41fe0de04b4dc..17b80f07d3e15 100644
--- a/doc/languages-frameworks/lua.section.md
+++ b/doc/languages-frameworks/lua.section.md
@@ -128,7 +128,7 @@ Let's present the luarocks way first and the manual one in a second time.
 
 ### Packaging a library on luarocks {#packaging-a-library-on-luarocks}
 
-[Luarocks.org](www.luarocks.org) is the main repository of lua packages.
+[Luarocks.org](https://luarocks.org/) is the main repository of lua packages.
 The site proposes two types of packages, the rockspec and the src.rock
 (equivalent of a [rockspec](https://github.com/luarocks/luarocks/wiki/Rockspec-format) but with the source).
 These packages can have different build types such as `cmake`, `builtin` etc .
diff --git a/doc/languages-frameworks/octave.section.md b/doc/languages-frameworks/octave.section.md
index ff872f4a75588..4ad2cb0d5fbfd 100644
--- a/doc/languages-frameworks/octave.section.md
+++ b/doc/languages-frameworks/octave.section.md
@@ -24,18 +24,10 @@ You can test building an Octave package as follows:
 $ nix-build -A octavePackages.symbolic
 ```
 
-When building Octave packages with `nix-build`, the `buildOctavePackage` function adds `octave-octaveVersion` to; the start of the package's name attribute.
-
-This can be required when installing the package using `nix-env`:
-
-```ShellSession
-$ nix-env -i octave-6.2.0-symbolic
-```
-
-Although, you can also install it using the attribute name:
+To install it into your user profile, run this command from the root of the repository:
 
 ```ShellSession
-$ nix-env -i -A octavePackages.symbolic
+$ nix-env -f. -iA octavePackages.symbolic
 ```
 
 You can build Octave with packages by using the `withPackages` passed-through function.
diff --git a/doc/languages-frameworks/perl.section.md b/doc/languages-frameworks/perl.section.md
index c992b9d658bb8..9bfd209fec5a4 100644
--- a/doc/languages-frameworks/perl.section.md
+++ b/doc/languages-frameworks/perl.section.md
@@ -58,13 +58,7 @@ in `all-packages.nix`. You can test building a Perl package as follows:
 $ nix-build -A perlPackages.ClassC3
 ```
 
-`buildPerlPackage` adds `perl-` to the start of the name attribute, so the package above is actually called `perl-Class-C3-0.21`. So to install it, you can say:
-
-```ShellSession
-$ nix-env -i perl-Class-C3
-```
-
-(Of course you can also install using the attribute name: `nix-env -i -A perlPackages.ClassC3`.)
+To install it with `nix-env` instead: `nix-env -f. -iA perlPackages.ClassC3`.
 
 So what does `buildPerlPackage` do? It does the following:
 
@@ -135,9 +129,11 @@ This will remove the `-I` flags from the shebang line, rewrite them in the `use
 Nix expressions for Perl packages can be generated (almost) automatically from CPAN. This is done by the program `nix-generate-from-cpan`, which can be installed as follows:
 
 ```ShellSession
-$ nix-env -i nix-generate-from-cpan
+$ nix-env -f "<nixpkgs>" -iA nix-generate-from-cpan
 ```
 
+Substitute `<nixpkgs>` by the path of a nixpkgs clone to use the latest version.
+
 This program takes a Perl module name, looks it up on CPAN, fetches and unpacks the corresponding package, and prints a Nix expression on standard output. For example:
 
 ```ShellSession
diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md
index 53466921887c7..9f9ace513c301 100644
--- a/doc/languages-frameworks/python.section.md
+++ b/doc/languages-frameworks/python.section.md
@@ -764,7 +764,7 @@ and in this case the `python38` interpreter is automatically used.
 
 ### Interpreters {#interpreters}
 
-Versions 2.7, 3.6, 3.7, 3.8 and 3.9 of the CPython interpreter are available as
+Versions 2.7, 3.7, 3.8 and 3.9 of the CPython interpreter are available as
 respectively `python27`, `python37`, `python38` and `python39`. The
 aliases `python2` and `python3` correspond to respectively `python27` and
 `python39`. The attribute `python` maps to `python2`. The PyPy interpreters
@@ -834,6 +834,7 @@ sets are
 * `pkgs.python38Packages`
 * `pkgs.python39Packages`
 * `pkgs.python310Packages`
+* `pkgs.python311Packages`
 * `pkgs.pypyPackages`
 
 and the aliases
@@ -995,18 +996,18 @@ called with `callPackage` and passed `python` or `pythonPackages` (possibly
 specifying an interpreter version), like this:
 
 ```nix
-{ lib, python3Packages }:
+{ lib, python3 }:
 
-python3Packages.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "luigi";
   version = "2.7.9";
 
-  src = python3Packages.fetchPypi {
+  src = python3.pkgs.fetchPypi {
     inherit pname version;
     sha256 = "035w8gqql36zlan0xjrzz9j4lh9hs0qrsgnbyw07qs7lnkvbdv9x";
   };
 
-  propagatedBuildInputs = with python3Packages; [ tornado_4 python-daemon ];
+  propagatedBuildInputs = with python3.pkgs; [ tornado python-daemon ];
 
   meta = with lib; {
     ...
@@ -1632,3 +1633,25 @@ would be:
 ```ShellSession
 $ maintainers/scripts/update-python-libraries --target minor --commit --use-pkgs-prefix pkgs/development/python-modules/**/default.nix
 ```
+
+## CPython Update Schedule
+
+With [PEP 602](https://www.python.org/dev/peps/pep-0602/), CPython now
+follows a yearly release cadence. In nixpkgs, all supported interpreters
+are made available, but only the most recent two
+interpreters package sets are built; this is a compromise between being
+the latest interpreter, and what the majority of the Python packages support.
+
+New CPython interpreters are released in October. Generally, it takes some
+time for the majority of active Python projects to support the latest stable
+interpreter. To help ease the migration for Nixpkgs users
+between Python interpreters the schedule below will be used:
+
+| When | Event |
+| --- | --- |
+| After YY.11 Release | Bump CPython package set window. The latest and previous latest stable should now be built. |
+| After YY.05 Release | Bump default CPython interpreter to latest stable. |
+
+In practice, this means that the Python community will have had a stable interpreter
+for ~2 months before attempting to update the package set. And this will
+allow for ~7 months for Python applications to support the latest interpreter.
diff --git a/doc/languages-frameworks/ruby.section.md b/doc/languages-frameworks/ruby.section.md
index 5e2f72ed61ec7..e29f97c566c17 100644
--- a/doc/languages-frameworks/ruby.section.md
+++ b/doc/languages-frameworks/ruby.section.md
@@ -201,6 +201,19 @@ $ nix-shell --run 'ruby -rpg -e "puts PG.library_version"'
 
 Of course for this use-case one could also use overlays since the configuration for `pg` depends on the `postgresql` alias, but for demonstration purposes this has to suffice.
 
+### Platform-specific gems
+
+Right now, bundix has some issues with pre-built, platform-specific gems: [bundix PR #68](https://github.com/nix-community/bundix/pull/68).
+Until this is solved, you can tell bundler to not use platform-specific gems and instead build them from source each time:
+- globally (will be set in `~/.config/.bundle/config`):
+```shell
+$ bundle config set force_ruby_platform true
+```
+- locally (will be set in `<project-root>/.bundle/config`):
+```shell
+$ bundle config set --local force_ruby_platform true
+```
+
 ### Adding a gem to the default gemset {#adding-a-gem-to-the-default-gemset}
 
 Now that you know how to get a working Ruby environment with Nix, it's time to go forward and start actually developing with Ruby. We will first have a look at how Ruby gems are packaged on Nix. Then, we will look at how you can use development mode with your code.
diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md
index 7959685af6d50..56faf636df10e 100644
--- a/doc/languages-frameworks/rust.section.md
+++ b/doc/languages-frameworks/rust.section.md
@@ -293,7 +293,7 @@ Test flags, e.g., `--package foo`, can be passed to `cargo test` via the
 
 Another attribute, called `checkFlags`, is used to pass arguments to the test
 binary itself, as stated
-(here)[https://doc.rust-lang.org/cargo/commands/cargo-test.html].
+[here](https://doc.rust-lang.org/cargo/commands/cargo-test.html).
 
 #### Tests relying on the structure of the `target/` directory {#tests-relying-on-the-structure-of-the-target-directory}
 
diff --git a/doc/languages-frameworks/vim.section.md b/doc/languages-frameworks/vim.section.md
index cb5311fc95f15..4ffd6736e238a 100644
--- a/doc/languages-frameworks/vim.section.md
+++ b/doc/languages-frameworks/vim.section.md
@@ -309,9 +309,9 @@ Sample output2:
 
 ## Adding new plugins to nixpkgs {#adding-new-plugins-to-nixpkgs}
 
-Nix expressions for Vim plugins are stored in [pkgs/misc/vim-plugins](/pkgs/misc/vim-plugins). For the vast majority of plugins, Nix expressions are automatically generated by running [`./update.py`](/pkgs/misc/vim-plugins/update.py). This creates a [generated.nix](/pkgs/misc/vim-plugins/generated.nix) file based on the plugins listed in [vim-plugin-names](/pkgs/misc/vim-plugins/vim-plugin-names). Plugins are listed in alphabetical order in `vim-plugin-names` using the format `[github username]/[repository]@[gitref]`. For example https://github.com/scrooloose/nerdtree becomes `scrooloose/nerdtree`.
+Nix expressions for Vim plugins are stored in [pkgs/misc/vim-plugins](https://github.com/NixOS/nixpkgs/tree/master/pkgs/misc/vim-plugins). For the vast majority of plugins, Nix expressions are automatically generated by running [`./update.py`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/misc/vim-plugins/update.py). This creates a [generated.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/misc/vim-plugins/generated.nix) file based on the plugins listed in [vim-plugin-names](https://github.com/NixOS/nixpkgs/blob/master/pkgs/misc/vim-plugins/vim-plugin-names). Plugins are listed in alphabetical order in `vim-plugin-names` using the format `[github username]/[repository]@[gitref]`. For example https://github.com/scrooloose/nerdtree becomes `scrooloose/nerdtree`.
 
-Some plugins require overrides in order to function properly. Overrides are placed in [overrides.nix](/pkgs/misc/vim-plugins/overrides.nix). Overrides are most often required when a plugin requires some dependencies, or extra steps are required during the build process. For example `deoplete-fish` requires both `deoplete-nvim` and `vim-fish`, and so the following override was added:
+Some plugins require overrides in order to function properly. Overrides are placed in [overrides.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/misc/vim-plugins/overrides.nix). Overrides are most often required when a plugin requires some dependencies, or extra steps are required during the build process. For example `deoplete-fish` requires both `deoplete-nvim` and `vim-fish`, and so the following override was added:
 
 ```nix
 deoplete-fish = super.deoplete-fish.overrideAttrs(old: {
diff --git a/doc/stdenv/stdenv.chapter.md b/doc/stdenv/stdenv.chapter.md
index c108fffd1b01b..6d72bd0deb4f8 100644
--- a/doc/stdenv/stdenv.chapter.md
+++ b/doc/stdenv/stdenv.chapter.md
@@ -796,7 +796,7 @@ The standard environment provides a number of useful functions.
 
 ### `makeWrapper` \<executable\> \<wrapperfile\> \<args\> {#fun-makeWrapper}
 
-Constructs a wrapper for a program with various possible arguments. For example:
+Constructs a wrapper for a program with various possible arguments. It is defined as part of 2 setup-hooks named `makeWrapper` and `makeBinaryWrapper` that implement the same bash functions. Hence, to use it you have to add `makeWrapper` to your `nativeBuildInputs`. Here's an example usage:
 
 ```bash
 # adds `FOOBAR=baz` to `$out/bin/foo`’s environment
@@ -808,9 +808,11 @@ makeWrapper $out/bin/foo $wrapperfile --set FOOBAR baz
 makeWrapper $out/bin/foo $wrapperfile --prefix PATH : ${lib.makeBinPath [ hello git ]}
 ```
 
-There’s many more kinds of arguments, they are documented in `nixpkgs/pkgs/build-support/setup-hooks/make-wrapper.sh`.
+There’s many more kinds of arguments, they are documented in `nixpkgs/pkgs/build-support/setup-hooks/make-wrapper.sh` for the `makeWrapper` implementation and in `nixpkgs/pkgs/build-support/setup-hooks/make-binary-wrapper.sh` for the `makeBinaryWrapper` implementation.
 
-`wrapProgram` is a convenience function you probably want to use most of the time.
+`wrapProgram` is a convenience function you probably want to use most of the time, implemented by both `makeWrapper` and `makeBinaryWrapper`.
+
+Using the `makeBinaryWrapper` implementation is usually preferred, as it creates a tiny _compiled_ wrapper executable, that can be used as a shebang interpreter. This is needed mostly on Darwin, where shebangs cannot point to scripts, [due to a limitation with the `execve`-syscall](https://stackoverflow.com/questions/67100831/macos-shebang-with-absolute-path-not-working). Compiled wrappers generated by `makeBinaryWrapper` can be inspected with `less <path-to-wrapper>` - by scrolling past the binary data you should be able to see the shell command that generated the executable and there see the environment variables that were injected into the wrapper.
 
 ### `substitute` \<infile\> \<outfile\> \<subs\> {#fun-substitute}
 
@@ -885,9 +887,9 @@ someVar=$(stripHash $name)
 
 ### `wrapProgram` \<executable\> \<makeWrapperArgs\> {#fun-wrapProgram}
 
-Convenience function for `makeWrapper` that automatically creates a sane wrapper file. It takes all the same arguments as `makeWrapper`, except for `--argv0`.
+Convenience function for `makeWrapper` that replaces `<\executable\>` with a wrapper that executes the original program. It takes all the same arguments as `makeWrapper`, except for `--inherit-argv0` (used by the `makeBinaryWrapper` implementation) and `--argv0` (used by both `makeWrapper` and `makeBinaryWrapper` wrapper implementations).
 
-It cannot be applied multiple times, since it will overwrite the wrapper file.
+If you will apply it multiple times, it will overwrite the wrapper file and you will end up with double wrapping, which should be avoided.
 
 ## Package setup hooks {#ssec-setup-hooks}
 
diff --git a/lib/default.nix b/lib/default.nix
index 68d73220fa9a1..626a751cb10a1 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -105,7 +105,7 @@ let
       makeScope makeScopeWithSplicing;
     inherit (self.meta) addMetaAttrs dontDistribute setName updateName
       appendToName mapDerivationAttrset setPrio lowPrio lowPrioSet hiPrio
-      hiPrioSet;
+      hiPrioSet getLicenseFromSpdxId;
     inherit (self.sources) pathType pathIsDirectory cleanSourceFilter
       cleanSource sourceByRegex sourceFilesBySuffices
       commitIdFromGitRepo cleanSourceWith pathHasContext
diff --git a/lib/meta.nix b/lib/meta.nix
index bc04394dcf0b5..bc3387646f264 100644
--- a/lib/meta.nix
+++ b/lib/meta.nix
@@ -99,4 +99,31 @@ rec {
   availableOn = platform: pkg:
     lib.any (platformMatch platform) pkg.meta.platforms &&
     lib.all (elem: !platformMatch platform elem) (pkg.meta.badPlatforms or []);
+
+  /* Get the corresponding attribute in lib.licenses
+     from the SPDX ID.
+     For SPDX IDs, see
+     https://spdx.org/licenses
+
+     Type:
+       getLicenseFromSpdxId :: str -> AttrSet
+
+     Example:
+       lib.getLicenseFromSpdxId "MIT" == lib.licenses.mit
+       => true
+       lib.getLicenseFromSpdxId "mIt" == lib.licenses.mit
+       => true
+       lib.getLicenseFromSpdxId "MY LICENSE"
+       => trace: warning: getLicenseFromSpdxId: No license matches the given SPDX ID: MY LICENSE
+       => { shortName = "MY LICENSE"; }
+  */
+  getLicenseFromSpdxId =
+    let
+      spdxLicenses = lib.mapAttrs (id: ls: assert lib.length ls == 1; builtins.head ls)
+        (lib.groupBy (l: lib.toLower l.spdxId) (lib.filter (l: l ? spdxId) (lib.attrValues lib.licenses)));
+    in licstr:
+      spdxLicenses.${ lib.toLower licstr } or (
+        lib.warn "getLicenseFromSpdxId: No license matches the given SPDX ID: ${licstr}"
+        { shortName = licstr; }
+      );
 }
diff --git a/lib/modules.nix b/lib/modules.nix
index 92ddc8c5bc70c..573bf40e4b341 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -13,8 +13,6 @@ let
     elem
     filter
     findFirst
-    flip
-    foldl
     foldl'
     getAttrFromPath
     head
@@ -62,6 +60,8 @@ rec {
       ‘type’: A module system type representing the module set as a submodule,
             to be extended by configuration from the containing module set.
 
+            This is also available as the module argument ‘moduleType’.
+
       ‘extendModules’: A function similar to ‘evalModules’ but building on top
             of the module set. Its arguments, ‘modules’ and ‘specialArgs’ are
             added to the existing values.
@@ -74,6 +74,8 @@ rec {
             override existing configuration fundamentally requires a new
             fixpoint to be constructed.
 
+            This is also available as a module argument.
+
       ‘_module’: A portion of the configuration tree which is elided from
             ‘config’. It contains some values that are mostly internal to the
             module system implementation.
@@ -97,9 +99,31 @@ rec {
                   check ? true
                 }:
     let
+      withWarnings = x:
+        lib.warnIf (evalModulesArgs?args) "The args argument to evalModules is deprecated. Please set config._module.args instead."
+        lib.warnIf (evalModulesArgs?check) "The check argument to evalModules is deprecated. Please set config._module.check instead."
+        x;
+
+      legacyModules =
+        optional (evalModulesArgs?args) {
+          config = {
+            _module.args = args;
+          };
+        }
+        ++ optional (evalModulesArgs?check) {
+          config = {
+            _module.check = mkDefault check;
+          };
+        };
+      regularModules = modules ++ legacyModules;
+
       # This internal module declare internal options under the `_module'
       # attribute.  These options are fragile, as they are used by the
       # module system to change the interpretation of modules.
+      #
+      # When extended with extendModules or moduleType, a fresh instance of
+      # this module is used, to avoid conflicts and allow chaining of
+      # extendModules.
       internalModule = rec {
         _file = ./modules.nix;
 
@@ -121,7 +145,7 @@ rec {
           _module.check = mkOption {
             type = types.bool;
             internal = true;
-            default = check;
+            default = true;
             description = "Whether to check whether all option definitions have matching declarations.";
           };
 
@@ -146,14 +170,15 @@ rec {
         config = {
           _module.args = {
             inherit extendModules;
-          } // args;
+            moduleType = type;
+          };
         };
       };
 
       merged =
         let collected = collectModules
           (specialArgs.modulesPath or "")
-          (modules ++ [ internalModule ])
+          (regularModules ++ [ internalModule ])
           ({ inherit lib options config specialArgs; } // specialArgs);
         in mergeModules prefix (reverseList collected);
 
@@ -217,7 +242,7 @@ rec {
         prefix ? [],
         }:
           evalModules (evalModulesArgs // {
-            modules = evalModulesArgs.modules ++ modules;
+            modules = regularModules ++ modules;
             specialArgs = evalModulesArgs.specialArgs or {} // specialArgs;
             prefix = extendArgs.prefix or evalModulesArgs.prefix;
           });
@@ -226,7 +251,7 @@ rec {
         inherit modules specialArgs;
       };
 
-      result = {
+      result = withWarnings {
         options = checked options;
         config = checked (removeAttrs config [ "_module" ]);
         _module = checked (config._module);
@@ -447,7 +472,7 @@ rec {
           [{ inherit (module) file; inherit value; }]
         ) configs;
 
-      resultsByName = flip mapAttrs declsByName (name: decls:
+      resultsByName = mapAttrs (name: decls:
         # We're descending into attribute ‘name’.
         let
           loc = prefix ++ [name];
@@ -468,7 +493,7 @@ rec {
             in
               throw "The option `${showOption loc}' in `${firstOption._file}' is a prefix of options in `${firstNonOption._file}'."
           else
-            mergeModules' loc decls defns);
+            mergeModules' loc decls defns) declsByName;
 
       matchedOptions = mapAttrs (n: v: v.matchedOptions) resultsByName;
 
@@ -482,12 +507,19 @@ rec {
       inherit matchedOptions;
 
       # Transforms unmatchedDefnsByName into a list of definitions
-      unmatchedDefns = concatLists (mapAttrsToList (name: defs:
-        map (def: def // {
-          # Set this so we know when the definition first left unmatched territory
-          prefix = [name] ++ (def.prefix or []);
-        }) defs
-      ) unmatchedDefnsByName);
+      unmatchedDefns =
+        if configs == []
+        then
+          # When no config values exist, there can be no unmatched config, so
+          # we short circuit and avoid evaluating more _options_ than necessary.
+          []
+        else
+          concatLists (mapAttrsToList (name: defs:
+            map (def: def // {
+              # Set this so we know when the definition first left unmatched territory
+              prefix = [name] ++ (def.prefix or []);
+            }) defs
+          ) unmatchedDefnsByName);
     };
 
   /* Merge multiple option declarations into a single declaration.  In
@@ -582,6 +614,8 @@ rec {
         definitions = map (def: def.value) res.defsFinal;
         files = map (def: def.file) res.defsFinal;
         inherit (res) isDefined;
+        # This allows options to be correctly displayed using `${options.path.to.it}`
+        __toString = _: showOption loc;
       };
 
   # Merge definitions of a value of a given type.
@@ -901,7 +935,7 @@ rec {
   mkMergedOptionModule = from: to: mergeFn:
     { config, options, ... }:
     {
-      options = foldl recursiveUpdate {} (map (path: setAttrByPath path (mkOption {
+      options = foldl' recursiveUpdate {} (map (path: setAttrByPath path (mkOption {
         visible = false;
         # To use the value in mergeFn without triggering errors
         default = "_mkMergedOptionModule";
@@ -1005,7 +1039,7 @@ rec {
 
   /* Use this function to import a JSON file as NixOS configuration.
 
-     importJSON -> path -> attrs
+     modules.importJSON :: path -> attrs
   */
   importJSON = file: {
     _file = file;
@@ -1014,7 +1048,7 @@ rec {
 
   /* Use this function to import a TOML file as NixOS configuration.
 
-     importTOML -> path -> attrs
+     modules.importTOML :: path -> attrs
   */
   importTOML = file: {
     _file = file;
diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix
index 8af3377fb5bfc..00e57339a3102 100644
--- a/lib/systems/doubles.nix
+++ b/lib/systems/doubles.nix
@@ -39,8 +39,8 @@ let
     "riscv32-netbsd" "riscv64-netbsd" "x86_64-netbsd"
 
     # none
-    "aarch64-none" "arm-none" "armv6l-none" "avr-none" "i686-none"
-    "msp430-none" "or1k-none" "m68k-none" "powerpc-none"
+    "aarch64_be-none" "aarch64-none" "arm-none" "armv6l-none" "avr-none" "i686-none"
+    "msp430-none" "or1k-none" "m68k-none" "powerpc-none" "powerpcle-none"
     "riscv32-none" "riscv64-none" "s390-none" "s390x-none" "vc4-none"
     "x86_64-none"
 
diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix
index f2469f9bf7ffe..9c0c91617e8a1 100644
--- a/lib/systems/examples.nix
+++ b/lib/systems/examples.nix
@@ -290,6 +290,7 @@ rec {
     libc = "nblibc";
   };
 
+  # this is broken and never worked fully
   x86_64-netbsd-llvm = {
     config = "x86_64-unknown-netbsd";
     libc = "nblibc";
diff --git a/lib/systems/supported.nix b/lib/systems/supported.nix
index ef429454f046b..a1c038a5c8bc0 100644
--- a/lib/systems/supported.nix
+++ b/lib/systems/supported.nix
@@ -4,7 +4,9 @@
 { lib }:
 rec {
   # List of systems that are built by Hydra.
-  hydra = tier1 ++ tier2 ++ tier3;
+  hydra = tier1 ++ tier2 ++ tier3 ++ [
+    "aarch64-darwin"
+  ];
 
   tier1 = [
     "x86_64-linux"
@@ -16,7 +18,6 @@ rec {
   ];
 
   tier3 = [
-    "aarch64-darwin"
     "armv6l-linux"
     "armv7l-linux"
     "i686-linux"
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix
index 7b3a6b4e60b89..5fa95828df691 100644
--- a/lib/tests/misc.nix
+++ b/lib/tests/misc.nix
@@ -496,7 +496,7 @@ runTests {
 
   testToPretty =
     let
-      deriv = derivation { name = "test"; builder = "/bin/sh"; system = builtins.currentSystem; };
+      deriv = derivation { name = "test"; builder = "/bin/sh"; system = "aarch64-linux"; };
     in {
     expr = mapAttrs (const (generators.toPretty { multiline = false; })) rec {
       int = 42;
diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh
index aba3f08122f5b..590937da5b8f0 100755
--- a/lib/tests/modules.sh
+++ b/lib/tests/modules.sh
@@ -1,8 +1,11 @@
-#!/bin/sh
+#!/usr/bin/env bash
 #
 # This script is used to test that the module system is working as expected.
 # By default it test the version of nixpkgs which is defined in the NIX_PATH.
 
+set -o errexit -o noclobber -o nounset -o pipefail
+shopt -s failglob inherit_errexit
+
 # https://stackoverflow.com/a/246128/6605742
 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
 
@@ -13,101 +16,96 @@ fail=0
 
 evalConfig() {
     local attr=$1
-    shift;
-    local script="import ./default.nix { modules = [ $@ ];}"
+    shift
+    local script="import ./default.nix { modules = [ $* ];}"
     nix-instantiate --timeout 1 -E "$script" -A "$attr" --eval-only --show-trace --read-write-mode
 }
 
 reportFailure() {
     local attr=$1
-    shift;
-    local script="import ./default.nix { modules = [ $@ ];}"
+    shift
+    local script="import ./default.nix { modules = [ $* ];}"
     echo 2>&1 "$ nix-instantiate -E '$script' -A '$attr' --eval-only"
-    evalConfig "$attr" "$@"
-    fail=$((fail + 1))
+    evalConfig "$attr" "$@" || true
+    ((++fail))
 }
 
 checkConfigOutput() {
     local outputContains=$1
-    shift;
+    shift
     if evalConfig "$@" 2>/dev/null | grep --silent "$outputContains" ; then
-        pass=$((pass + 1))
-        return 0;
+        ((++pass))
     else
         echo 2>&1 "error: Expected result matching '$outputContains', while evaluating"
         reportFailure "$@"
-        return 1
     fi
 }
 
 checkConfigError() {
     local errorContains=$1
     local err=""
-    shift;
-    if err==$(evalConfig "$@" 2>&1 >/dev/null); then
+    shift
+    if err="$(evalConfig "$@" 2>&1 >/dev/null)"; then
         echo 2>&1 "error: Expected error code, got exit code 0, while evaluating"
         reportFailure "$@"
-        return 1
     else
         if echo "$err" | grep -zP --silent "$errorContains" ; then
-            pass=$((pass + 1))
-            return 0;
+            ((++pass))
         else
             echo 2>&1 "error: Expected error matching '$errorContains', while evaluating"
             reportFailure "$@"
-            return 1
         fi
     fi
 }
 
 # Check boolean option.
-checkConfigOutput "false" config.enable ./declare-enable.nix
+checkConfigOutput '^false$' config.enable ./declare-enable.nix
 checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*: true' config.enable ./define-enable.nix
 
 # Check integer types.
 # unsigned
-checkConfigOutput "42" config.value ./declare-int-unsigned-value.nix ./define-value-int-positive.nix
+checkConfigOutput '^42$' config.value ./declare-int-unsigned-value.nix ./define-value-int-positive.nix
 checkConfigError 'A definition for option .* is not of type.*unsigned integer.*. Definition values:\n\s*- In .*: -23' config.value ./declare-int-unsigned-value.nix ./define-value-int-negative.nix
 # positive
 checkConfigError 'A definition for option .* is not of type.*positive integer.*. Definition values:\n\s*- In .*: 0' config.value ./declare-int-positive-value.nix ./define-value-int-zero.nix
 # between
-checkConfigOutput "42" config.value ./declare-int-between-value.nix ./define-value-int-positive.nix
+checkConfigOutput '^42$' config.value ./declare-int-between-value.nix ./define-value-int-positive.nix
 checkConfigError 'A definition for option .* is not of type.*between.*-21 and 43.*inclusive.*. Definition values:\n\s*- In .*: -23' config.value ./declare-int-between-value.nix ./define-value-int-negative.nix
 
 # Check either types
 # types.either
-checkConfigOutput "42" config.value ./declare-either.nix ./define-value-int-positive.nix
-checkConfigOutput "\"24\"" config.value ./declare-either.nix ./define-value-string.nix
+checkConfigOutput '^42$' config.value ./declare-either.nix ./define-value-int-positive.nix
+checkConfigOutput '^"24"$' config.value ./declare-either.nix ./define-value-string.nix
 # types.oneOf
-checkConfigOutput "42" config.value ./declare-oneOf.nix ./define-value-int-positive.nix
-checkConfigOutput "[ ]" config.value ./declare-oneOf.nix ./define-value-list.nix
-checkConfigOutput "\"24\"" config.value ./declare-oneOf.nix ./define-value-string.nix
+checkConfigOutput '^42$' config.value ./declare-oneOf.nix ./define-value-int-positive.nix
+checkConfigOutput '^\[ \]$' config.value ./declare-oneOf.nix ./define-value-list.nix
+checkConfigOutput '^"24"$' config.value ./declare-oneOf.nix ./define-value-string.nix
 
 # Check mkForce without submodules.
 set -- config.enable ./declare-enable.nix ./define-enable.nix
-checkConfigOutput "true" "$@"
-checkConfigOutput "false" "$@" ./define-force-enable.nix
-checkConfigOutput "false" "$@" ./define-enable-force.nix
+checkConfigOutput '^true$' "$@"
+checkConfigOutput '^false$' "$@" ./define-force-enable.nix
+checkConfigOutput '^false$' "$@" ./define-enable-force.nix
 
 # Check mkForce with option and submodules.
 checkConfigError 'attribute .*foo.* .* not found' config.attrsOfSub.foo.enable ./declare-attrsOfSub-any-enable.nix
-checkConfigOutput 'false' config.attrsOfSub.foo.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix
+checkConfigOutput '^false$' config.attrsOfSub.foo.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix
 set -- config.attrsOfSub.foo.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo-enable.nix
-checkConfigOutput 'true' "$@"
-checkConfigOutput 'false' "$@" ./define-force-attrsOfSub-foo-enable.nix
-checkConfigOutput 'false' "$@" ./define-attrsOfSub-force-foo-enable.nix
-checkConfigOutput 'false' "$@" ./define-attrsOfSub-foo-force-enable.nix
-checkConfigOutput 'false' "$@" ./define-attrsOfSub-foo-enable-force.nix
+checkConfigOutput '^true$' "$@"
+checkConfigOutput '^false$' "$@" ./define-force-attrsOfSub-foo-enable.nix
+checkConfigOutput '^false$' "$@" ./define-attrsOfSub-force-foo-enable.nix
+checkConfigOutput '^false$' "$@" ./define-attrsOfSub-foo-force-enable.nix
+checkConfigOutput '^false$' "$@" ./define-attrsOfSub-foo-enable-force.nix
 
 # Check overriding effect of mkForce on submodule definitions.
 checkConfigError 'attribute .*bar.* .* not found' config.attrsOfSub.bar.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix
-checkConfigOutput 'false' config.attrsOfSub.bar.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix ./define-attrsOfSub-bar.nix
+checkConfigOutput '^false$' config.attrsOfSub.bar.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix ./define-attrsOfSub-bar.nix
 set -- config.attrsOfSub.bar.enable ./declare-attrsOfSub-any-enable.nix ./define-attrsOfSub-foo.nix ./define-attrsOfSub-bar-enable.nix
-checkConfigOutput 'true' "$@"
+checkConfigOutput '^true$' "$@"
 checkConfigError 'attribute .*bar.* .* not found' "$@" ./define-force-attrsOfSub-foo-enable.nix
 checkConfigError 'attribute .*bar.* .* not found' "$@" ./define-attrsOfSub-force-foo-enable.nix
-checkConfigOutput 'true' "$@" ./define-attrsOfSub-foo-force-enable.nix
-checkConfigOutput 'true' "$@" ./define-attrsOfSub-foo-enable-force.nix
+checkConfigOutput '^true$' "$@" ./define-attrsOfSub-foo-force-enable.nix
+checkConfigOutput '^true$' "$@" ./define-attrsOfSub-foo-enable-force.nix
 
 # Check mkIf with submodules.
 checkConfigError 'attribute .*foo.* .* not found' config.attrsOfSub.foo.enable ./declare-enable.nix ./declare-attrsOfSub-any-enable.nix
@@ -115,16 +113,16 @@ set -- config.attrsOfSub.foo.enable ./declare-enable.nix ./declare-attrsOfSub-an
 checkConfigError 'attribute .*foo.* .* not found' "$@" ./define-if-attrsOfSub-foo-enable.nix
 checkConfigError 'attribute .*foo.* .* not found' "$@" ./define-attrsOfSub-if-foo-enable.nix
 checkConfigError 'attribute .*foo.* .* not found' "$@" ./define-attrsOfSub-foo-if-enable.nix
-checkConfigOutput 'false' "$@" ./define-attrsOfSub-foo-enable-if.nix
-checkConfigOutput 'true' "$@" ./define-enable.nix ./define-if-attrsOfSub-foo-enable.nix
-checkConfigOutput 'true' "$@" ./define-enable.nix ./define-attrsOfSub-if-foo-enable.nix
-checkConfigOutput 'true' "$@" ./define-enable.nix ./define-attrsOfSub-foo-if-enable.nix
-checkConfigOutput 'true' "$@" ./define-enable.nix ./define-attrsOfSub-foo-enable-if.nix
+checkConfigOutput '^false$' "$@" ./define-attrsOfSub-foo-enable-if.nix
+checkConfigOutput '^true$' "$@" ./define-enable.nix ./define-if-attrsOfSub-foo-enable.nix
+checkConfigOutput '^true$' "$@" ./define-enable.nix ./define-attrsOfSub-if-foo-enable.nix
+checkConfigOutput '^true$' "$@" ./define-enable.nix ./define-attrsOfSub-foo-if-enable.nix
+checkConfigOutput '^true$' "$@" ./define-enable.nix ./define-attrsOfSub-foo-enable-if.nix
 
 # Check disabledModules with config definitions and option declarations.
 set -- config.enable ./define-enable.nix ./declare-enable.nix
-checkConfigOutput "true" "$@"
-checkConfigOutput "false" "$@" ./disable-define-enable.nix
+checkConfigOutput '^true$' "$@"
+checkConfigOutput '^false$' "$@" ./disable-define-enable.nix
 checkConfigError "The option .*enable.* does not exist. Definition values:\n\s*- In .*: true" "$@" ./disable-declare-enable.nix
 checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-define-enable.nix ./disable-declare-enable.nix
 checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-enable-modules.nix
@@ -132,7 +130,7 @@ checkConfigError "attribute .*enable.* in selection path .*config.enable.* not f
 # Check _module.args.
 set -- config.enable ./declare-enable.nix ./define-enable-with-custom-arg.nix
 checkConfigError 'while evaluating the module argument .*custom.* in .*define-enable-with-custom-arg.nix.*:' "$@"
-checkConfigOutput "true" "$@" ./define-_module-args-custom.nix
+checkConfigOutput '^true$' "$@" ./define-_module-args-custom.nix
 
 # Check that using _module.args on imports cause infinite recursions, with
 # the proper error context.
@@ -143,77 +141,77 @@ checkConfigError 'infinite recursion encountered' "$@"
 # Check _module.check.
 set -- config.enable ./declare-enable.nix ./define-enable.nix ./define-attrsOfSub-foo.nix
 checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*' "$@"
-checkConfigOutput "true" "$@" ./define-module-check.nix
+checkConfigOutput '^true$' "$@" ./define-module-check.nix
 
 # Check coerced value.
-checkConfigOutput "\"42\"" config.value ./declare-coerced-value.nix
-checkConfigOutput "\"24\"" config.value ./declare-coerced-value.nix ./define-value-string.nix
+checkConfigOutput '^"42"$' config.value ./declare-coerced-value.nix
+checkConfigOutput '^"24"$' config.value ./declare-coerced-value.nix ./define-value-string.nix
 checkConfigError 'A definition for option .* is not.*string or signed integer convertible to it.*. Definition values:\n\s*- In .*: \[ \]' config.value ./declare-coerced-value.nix ./define-value-list.nix
 
 # Check coerced value with unsound coercion
-checkConfigOutput "12" config.value ./declare-coerced-value-unsound.nix
+checkConfigOutput '^12$' config.value ./declare-coerced-value-unsound.nix
 checkConfigError 'A definition for option .* is not of type .*. Definition values:\n\s*- In .*: "1000"' config.value ./declare-coerced-value-unsound.nix ./define-value-string-bigint.nix
 checkConfigError 'json.exception.parse_error' config.value ./declare-coerced-value-unsound.nix ./define-value-string-arbitrary.nix
 
 # Check mkAliasOptionModule.
-checkConfigOutput "true" config.enable ./alias-with-priority.nix
-checkConfigOutput "true" config.enableAlias ./alias-with-priority.nix
-checkConfigOutput "false" config.enable ./alias-with-priority-can-override.nix
-checkConfigOutput "false" config.enableAlias ./alias-with-priority-can-override.nix
+checkConfigOutput '^true$' config.enable ./alias-with-priority.nix
+checkConfigOutput '^true$' config.enableAlias ./alias-with-priority.nix
+checkConfigOutput '^false$' config.enable ./alias-with-priority-can-override.nix
+checkConfigOutput '^false$' config.enableAlias ./alias-with-priority-can-override.nix
 
 # submoduleWith
 
 ## specialArgs should work
-checkConfigOutput "foo" config.submodule.foo ./declare-submoduleWith-special.nix
+checkConfigOutput '^"foo"$' config.submodule.foo ./declare-submoduleWith-special.nix
 
 ## shorthandOnlyDefines config behaves as expected
-checkConfigOutput "true" config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-shorthand.nix
+checkConfigOutput '^true$' config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-shorthand.nix
 checkConfigError 'is not of type `boolean' config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-noshorthand.nix
 checkConfigError "You're trying to declare a value of type \`bool'\n\s*rather than an attribute-set for the option" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-shorthand.nix
-checkConfigOutput "true" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-noshorthand.nix
+checkConfigOutput '^true$' config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-noshorthand.nix
 
 ## submoduleWith should merge all modules in one swoop
-checkConfigOutput "true" config.submodule.inner ./declare-submoduleWith-modules.nix
-checkConfigOutput "true" config.submodule.outer ./declare-submoduleWith-modules.nix
+checkConfigOutput '^true$' config.submodule.inner ./declare-submoduleWith-modules.nix
+checkConfigOutput '^true$' config.submodule.outer ./declare-submoduleWith-modules.nix
 # Should also be able to evaluate the type name (which evaluates freeformType,
 # which evaluates all the modules defined by the type)
-checkConfigOutput "submodule" options.submodule.type.description ./declare-submoduleWith-modules.nix
+checkConfigOutput '^"submodule"$' options.submodule.type.description ./declare-submoduleWith-modules.nix
 
 ## submodules can be declared using (evalModules {...}).type
-checkConfigOutput "true" config.submodule.inner ./declare-submodule-via-evalModules.nix
-checkConfigOutput "true" config.submodule.outer ./declare-submodule-via-evalModules.nix
+checkConfigOutput '^true$' config.submodule.inner ./declare-submodule-via-evalModules.nix
+checkConfigOutput '^true$' config.submodule.outer ./declare-submodule-via-evalModules.nix
 # Should also be able to evaluate the type name (which evaluates freeformType,
 # which evaluates all the modules defined by the type)
-checkConfigOutput "submodule" options.submodule.type.description ./declare-submodule-via-evalModules.nix
+checkConfigOutput '^"submodule"$' options.submodule.type.description ./declare-submodule-via-evalModules.nix
 
 ## Paths should be allowed as values and work as expected
-checkConfigOutput "true" config.submodule.enable ./declare-submoduleWith-path.nix
+checkConfigOutput '^true$' config.submodule.enable ./declare-submoduleWith-path.nix
 
 # Check that disabledModules works recursively and correctly
-checkConfigOutput "true" config.enable ./disable-recursive/main.nix
-checkConfigOutput "true" config.enable ./disable-recursive/{main.nix,disable-foo.nix}
-checkConfigOutput "true" config.enable ./disable-recursive/{main.nix,disable-bar.nix}
+checkConfigOutput '^true$' config.enable ./disable-recursive/main.nix
+checkConfigOutput '^true$' config.enable ./disable-recursive/{main.nix,disable-foo.nix}
+checkConfigOutput '^true$' config.enable ./disable-recursive/{main.nix,disable-bar.nix}
 checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*: true' config.enable ./disable-recursive/{main.nix,disable-foo.nix,disable-bar.nix}
 
 # Check that imports can depend on derivations
-checkConfigOutput "true" config.enable ./import-from-store.nix
+checkConfigOutput '^true$' config.enable ./import-from-store.nix
 
 # Check that configs can be conditional on option existence
-checkConfigOutput true config.enable ./define-option-dependently.nix ./declare-enable.nix ./declare-int-positive-value.nix
-checkConfigOutput 360 config.value ./define-option-dependently.nix ./declare-enable.nix ./declare-int-positive-value.nix
-checkConfigOutput 7 config.value ./define-option-dependently.nix ./declare-int-positive-value.nix
-checkConfigOutput true config.set.enable ./define-option-dependently-nested.nix ./declare-enable-nested.nix ./declare-int-positive-value-nested.nix
-checkConfigOutput 360 config.set.value ./define-option-dependently-nested.nix ./declare-enable-nested.nix ./declare-int-positive-value-nested.nix
-checkConfigOutput 7 config.set.value ./define-option-dependently-nested.nix ./declare-int-positive-value-nested.nix
+checkConfigOutput '^true$' config.enable ./define-option-dependently.nix ./declare-enable.nix ./declare-int-positive-value.nix
+checkConfigOutput '^360$' config.value ./define-option-dependently.nix ./declare-enable.nix ./declare-int-positive-value.nix
+checkConfigOutput '^7$' config.value ./define-option-dependently.nix ./declare-int-positive-value.nix
+checkConfigOutput '^true$' config.set.enable ./define-option-dependently-nested.nix ./declare-enable-nested.nix ./declare-int-positive-value-nested.nix
+checkConfigOutput '^360$' config.set.value ./define-option-dependently-nested.nix ./declare-enable-nested.nix ./declare-int-positive-value-nested.nix
+checkConfigOutput '^7$' config.set.value ./define-option-dependently-nested.nix ./declare-int-positive-value-nested.nix
 
 # Check attrsOf and lazyAttrsOf. Only lazyAttrsOf should be lazy, and only
 # attrsOf should work with conditional definitions
 # In addition, lazyAttrsOf should honor an options emptyValue
 checkConfigError "is not lazy" config.isLazy ./declare-attrsOf.nix ./attrsOf-lazy-check.nix
-checkConfigOutput "true" config.isLazy ./declare-lazyAttrsOf.nix ./attrsOf-lazy-check.nix
-checkConfigOutput "true" config.conditionalWorks ./declare-attrsOf.nix ./attrsOf-conditional-check.nix
-checkConfigOutput "false" config.conditionalWorks ./declare-lazyAttrsOf.nix ./attrsOf-conditional-check.nix
-checkConfigOutput "empty" config.value.foo ./declare-lazyAttrsOf.nix ./attrsOf-conditional-check.nix
+checkConfigOutput '^true$' config.isLazy ./declare-lazyAttrsOf.nix ./attrsOf-lazy-check.nix
+checkConfigOutput '^true$' config.conditionalWorks ./declare-attrsOf.nix ./attrsOf-conditional-check.nix
+checkConfigOutput '^false$' config.conditionalWorks ./declare-lazyAttrsOf.nix ./attrsOf-conditional-check.nix
+checkConfigOutput '^"empty"$' config.value.foo ./declare-lazyAttrsOf.nix ./attrsOf-conditional-check.nix
 
 
 # Even with multiple assignments, a type error should be thrown if any of them aren't valid
@@ -222,64 +220,69 @@ checkConfigError 'A definition for option .* is not of type .*' \
 
 ## Freeform modules
 # Assigning without a declared option should work
-checkConfigOutput 24 config.value ./freeform-attrsOf.nix ./define-value-string.nix
+checkConfigOutput '^"24"$' config.value ./freeform-attrsOf.nix ./define-value-string.nix
 # No freeform assigments shouldn't make it error
-checkConfigOutput '{ }' config ./freeform-attrsOf.nix
+checkConfigOutput '^{ }$' config ./freeform-attrsOf.nix
 # but only if the type matches
 checkConfigError 'A definition for option .* is not of type .*' config.value ./freeform-attrsOf.nix ./define-value-list.nix
 # and properties should be applied
-checkConfigOutput yes config.value ./freeform-attrsOf.nix ./define-value-string-properties.nix
+checkConfigOutput '^"yes"$' config.value ./freeform-attrsOf.nix ./define-value-string-properties.nix
 # Options should still be declarable, and be able to have a type that doesn't match the freeform type
-checkConfigOutput false config.enable ./freeform-attrsOf.nix ./define-value-string.nix ./declare-enable.nix
-checkConfigOutput 24 config.value ./freeform-attrsOf.nix ./define-value-string.nix ./declare-enable.nix
+checkConfigOutput '^false$' config.enable ./freeform-attrsOf.nix ./define-value-string.nix ./declare-enable.nix
+checkConfigOutput '^"24"$' config.value ./freeform-attrsOf.nix ./define-value-string.nix ./declare-enable.nix
 # and this should work too with nested values
-checkConfigOutput false config.nest.foo ./freeform-attrsOf.nix ./freeform-nested.nix
-checkConfigOutput bar config.nest.bar ./freeform-attrsOf.nix ./freeform-nested.nix
+checkConfigOutput '^false$' config.nest.foo ./freeform-attrsOf.nix ./freeform-nested.nix
+checkConfigOutput '^"bar"$' config.nest.bar ./freeform-attrsOf.nix ./freeform-nested.nix
 # Check whether a declared option can depend on an freeform-typed one
-checkConfigOutput null config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix
-checkConfigOutput 24 config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix ./define-value-string.nix
+checkConfigOutput '^null$' config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix
+checkConfigOutput '^"24"$' config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix ./define-value-string.nix
 # Check whether an freeform-typed value can depend on a declared option, this can only work with lazyAttrsOf
 checkConfigError 'infinite recursion encountered' config.foo ./freeform-attrsOf.nix ./freeform-unstr-dep-str.nix
 checkConfigError 'The option .* is used but not defined' config.foo ./freeform-lazyAttrsOf.nix ./freeform-unstr-dep-str.nix
-checkConfigOutput 24 config.foo ./freeform-lazyAttrsOf.nix ./freeform-unstr-dep-str.nix ./define-value-string.nix
+checkConfigOutput '^"24"$' config.foo ./freeform-lazyAttrsOf.nix ./freeform-unstr-dep-str.nix ./define-value-string.nix
 
 ## types.anything
 # Check that attribute sets are merged recursively
-checkConfigOutput null config.value.foo ./types-anything/nested-attrs.nix
-checkConfigOutput null config.value.l1.foo ./types-anything/nested-attrs.nix
-checkConfigOutput null config.value.l1.l2.foo ./types-anything/nested-attrs.nix
-checkConfigOutput null config.value.l1.l2.l3.foo ./types-anything/nested-attrs.nix
+checkConfigOutput '^null$' config.value.foo ./types-anything/nested-attrs.nix
+checkConfigOutput '^null$' config.value.l1.foo ./types-anything/nested-attrs.nix
+checkConfigOutput '^null$' config.value.l1.l2.foo ./types-anything/nested-attrs.nix
+checkConfigOutput '^null$' config.value.l1.l2.l3.foo ./types-anything/nested-attrs.nix
 # Attribute sets that are coercible to strings shouldn't be recursed into
-checkConfigOutput foo config.value.outPath ./types-anything/attrs-coercible.nix
+checkConfigOutput '^"foo"$' config.value.outPath ./types-anything/attrs-coercible.nix
 # Multiple lists aren't concatenated together
 checkConfigError 'The option .* has conflicting definitions' config.value ./types-anything/lists.nix
 # Check that all equalizable atoms can be used as long as all definitions are equal
-checkConfigOutput 0 config.value.int ./types-anything/equal-atoms.nix
-checkConfigOutput false config.value.bool ./types-anything/equal-atoms.nix
-checkConfigOutput '""' config.value.string ./types-anything/equal-atoms.nix
-checkConfigOutput / config.value.path ./types-anything/equal-atoms.nix
-checkConfigOutput null config.value.null ./types-anything/equal-atoms.nix
-checkConfigOutput 0.1 config.value.float ./types-anything/equal-atoms.nix
+checkConfigOutput '^0$' config.value.int ./types-anything/equal-atoms.nix
+checkConfigOutput '^false$' config.value.bool ./types-anything/equal-atoms.nix
+checkConfigOutput '^""$' config.value.string ./types-anything/equal-atoms.nix
+checkConfigOutput '^/$' config.value.path ./types-anything/equal-atoms.nix
+checkConfigOutput '^null$' config.value.null ./types-anything/equal-atoms.nix
+checkConfigOutput '^0.1$' config.value.float ./types-anything/equal-atoms.nix
 # Functions can't be merged together
 checkConfigError "The option .value.multiple-lambdas.<function body>. has conflicting option types" config.applied.multiple-lambdas ./types-anything/functions.nix
-checkConfigOutput '<LAMBDA>' config.value.single-lambda ./types-anything/functions.nix
-checkConfigOutput 'null' config.applied.merging-lambdas.x ./types-anything/functions.nix
-checkConfigOutput 'null' config.applied.merging-lambdas.y ./types-anything/functions.nix
+checkConfigOutput '^<LAMBDA>$' config.value.single-lambda ./types-anything/functions.nix
+checkConfigOutput '^null$' config.applied.merging-lambdas.x ./types-anything/functions.nix
+checkConfigOutput '^null$' config.applied.merging-lambdas.y ./types-anything/functions.nix
 # Check that all mk* modifiers are applied
 checkConfigError 'attribute .* not found' config.value.mkiffalse ./types-anything/mk-mods.nix
-checkConfigOutput '{ }' config.value.mkiftrue ./types-anything/mk-mods.nix
-checkConfigOutput 1 config.value.mkdefault ./types-anything/mk-mods.nix
-checkConfigOutput '{ }' config.value.mkmerge ./types-anything/mk-mods.nix
-checkConfigOutput true config.value.mkbefore ./types-anything/mk-mods.nix
-checkConfigOutput 1 config.value.nested.foo ./types-anything/mk-mods.nix
-checkConfigOutput baz config.value.nested.bar.baz ./types-anything/mk-mods.nix
+checkConfigOutput '^{ }$' config.value.mkiftrue ./types-anything/mk-mods.nix
+checkConfigOutput '^1$' config.value.mkdefault ./types-anything/mk-mods.nix
+checkConfigOutput '^{ }$' config.value.mkmerge ./types-anything/mk-mods.nix
+checkConfigOutput '^true$' config.value.mkbefore ./types-anything/mk-mods.nix
+checkConfigOutput '^1$' config.value.nested.foo ./types-anything/mk-mods.nix
+checkConfigOutput '^"baz"$' config.value.nested.bar.baz ./types-anything/mk-mods.nix
 
 ## types.functionTo
-checkConfigOutput "input is input" config.result ./functionTo/trivial.nix
-checkConfigOutput "a b" config.result ./functionTo/merging-list.nix
+checkConfigOutput '^"input is input"$' config.result ./functionTo/trivial.nix
+checkConfigOutput '^"a b"$' config.result ./functionTo/merging-list.nix
 checkConfigError 'A definition for option .fun.\[function body\]. is not of type .string.. Definition values:\n\s*- In .*wrong-type.nix' config.result ./functionTo/wrong-type.nix
-checkConfigOutput "b a" config.result ./functionTo/list-order.nix
-checkConfigOutput "a c" config.result ./functionTo/merging-attrs.nix
+checkConfigOutput '^"b a"$' config.result ./functionTo/list-order.nix
+checkConfigOutput '^"a c"$' config.result ./functionTo/merging-attrs.nix
+
+# moduleType
+checkConfigOutput '^"a b"$' config.resultFoo ./declare-variants.nix ./define-variant.nix
+checkConfigOutput '^"a y z"$' config.resultFooBar ./declare-variants.nix ./define-variant.nix
+checkConfigOutput '^"a b c"$' config.resultFooFoo ./declare-variants.nix ./define-variant.nix
 
 cat <<EOF
 ====== module tests ======
@@ -287,7 +290,7 @@ $pass Pass
 $fail Fail
 EOF
 
-if test $fail -ne 0; then
+if [ "$fail" -ne 0 ]; then
     exit 1
 fi
 exit 0
diff --git a/lib/tests/modules/declare-attrsOf.nix b/lib/tests/modules/declare-attrsOf.nix
index b3999de7e5fba..d19964064b219 100644
--- a/lib/tests/modules/declare-attrsOf.nix
+++ b/lib/tests/modules/declare-attrsOf.nix
@@ -1,6 +1,13 @@
-{ lib, ... }: {
+{ lib, ... }:
+let
+  deathtrapArgs = lib.mapAttrs
+    (k: _: throw "The module system is too strict, accessing an unused option's ${k} mkOption-attribute.")
+    (lib.functionArgs lib.mkOption);
+in
+{
   options.value = lib.mkOption {
     type = lib.types.attrsOf lib.types.str;
     default = {};
   };
+  options.testing-laziness-so-don't-read-me = lib.mkOption deathtrapArgs;
 }
diff --git a/lib/tests/modules/declare-variants.nix b/lib/tests/modules/declare-variants.nix
new file mode 100644
index 0000000000000..3ed6fa689e21e
--- /dev/null
+++ b/lib/tests/modules/declare-variants.nix
@@ -0,0 +1,9 @@
+{ lib, moduleType, ... }:
+let inherit (lib) mkOption types;
+in
+{
+  options.variants = mkOption {
+    type = types.lazyAttrsOf moduleType;
+    default = {};
+  };
+}
diff --git a/lib/tests/modules/define-variant.nix b/lib/tests/modules/define-variant.nix
new file mode 100644
index 0000000000000..423cb0e37cb5f
--- /dev/null
+++ b/lib/tests/modules/define-variant.nix
@@ -0,0 +1,22 @@
+{ config, lib, ... }:
+let inherit (lib) types mkOption attrNames;
+in
+{
+  options = {
+    attrs = mkOption { type = types.attrsOf lib.types.int; };
+    result = mkOption { };
+    resultFoo = mkOption { };
+    resultFooBar = mkOption { };
+    resultFooFoo = mkOption { };
+  };
+  config = {
+    attrs.a = 1;
+    variants.foo.attrs.b = 1;
+    variants.bar.attrs.y = 1;
+    variants.foo.variants.bar.attrs.z = 1;
+    variants.foo.variants.foo.attrs.c = 3;
+    resultFoo = lib.concatMapStringsSep " " toString (attrNames config.variants.foo.attrs);
+    resultFooBar = lib.concatMapStringsSep " " toString (attrNames config.variants.foo.variants.bar.attrs);
+    resultFooFoo = lib.concatMapStringsSep " " toString (attrNames config.variants.foo.variants.foo.attrs);
+  };
+}
diff --git a/lib/tests/modules/freeform-nested.nix b/lib/tests/modules/freeform-nested.nix
index 5da27f5a8b4f9..b81fa7f0d222b 100644
--- a/lib/tests/modules/freeform-nested.nix
+++ b/lib/tests/modules/freeform-nested.nix
@@ -1,7 +1,14 @@
-{ lib, ... }: {
+{ lib, ... }:
+let
+  deathtrapArgs = lib.mapAttrs
+    (k: _: throw "The module system is too strict, accessing an unused option's ${k} mkOption-attribute.")
+    (lib.functionArgs lib.mkOption);
+in
+{
   options.nest.foo = lib.mkOption {
     type = lib.types.bool;
     default = false;
   };
+  options.nest.unused = lib.mkOption deathtrapArgs;
   config.nest.bar = "bar";
 }
diff --git a/lib/tests/sources.sh b/lib/tests/sources.sh
index 1f63cac5005af..a7f490a79d744 100755
--- a/lib/tests/sources.sh
+++ b/lib/tests/sources.sh
@@ -1,5 +1,6 @@
 #!/usr/bin/env bash
 set -euo pipefail
+shopt -s inherit_errexit
 
 # Use
 #     || die
@@ -9,17 +10,18 @@ die() {
 }
 
 if test -n "${TEST_LIB:-}"; then
-  export NIX_PATH=nixpkgs="$(dirname "$TEST_LIB")"
+  NIX_PATH=nixpkgs="$(dirname "$TEST_LIB")"
 else
-  export NIX_PATH=nixpkgs="$(cd $(dirname ${BASH_SOURCE[0]})/../..; pwd)"
+  NIX_PATH=nixpkgs="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.."; pwd)"
 fi
+export NIX_PATH
 
 work="$(mktemp -d)"
 clean_up() {
   rm -rf "$work"
 }
 trap clean_up EXIT
-cd $work
+cd "$work"
 
 touch {README.md,module.o,foo.bar}
 
@@ -29,7 +31,7 @@ touch {README.md,module.o,foo.bar}
 dir="$(nix eval --impure --raw --expr '(with import <nixpkgs/lib>; "${
   cleanSource ./.
 }")')"
-(cd $dir; find) | sort -f | diff -U10 - <(cat <<EOF
+(cd "$dir"; find) | sort -f | diff -U10 - <(cat <<EOF
 .
 ./foo.bar
 ./README.md
@@ -40,7 +42,7 @@ EOF
 dir="$(nix eval --impure --raw --expr '(with import <nixpkgs/lib>; "${
   cleanSourceWith { src = '"$work"'; filter = path: type: ! hasSuffix ".bar" path; }
 }")')"
-(cd $dir; find) | sort -f | diff -U10 - <(cat <<EOF
+(cd "$dir"; find) | sort -f | diff -U10 - <(cat <<EOF
 .
 ./module.o
 ./README.md
@@ -50,7 +52,7 @@ EOF
 dir="$(nix eval --impure --raw --expr '(with import <nixpkgs/lib>; "${
   cleanSourceWith { src = cleanSource '"$work"'; filter = path: type: ! hasSuffix ".bar" path; }
 }")')"
-(cd $dir; find) | sort -f | diff -U10 - <(cat <<EOF
+(cd "$dir"; find) | sort -f | diff -U10 - <(cat <<EOF
 .
 ./README.md
 EOF
diff --git a/lib/trivial.nix b/lib/trivial.nix
index a389c7cdfacbf..33b553ac4191f 100644
--- a/lib/trivial.nix
+++ b/lib/trivial.nix
@@ -171,7 +171,7 @@ rec {
      On each release the first letter is bumped and a new animal is chosen
      starting with that new letter.
   */
-  codeName = "Porcupine";
+  codeName = "Quokka";
 
   /* Returns the current nixpkgs version suffix as string. */
   versionSuffix =
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index efcb9eb7509ff..f82c1ce6c267a 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -119,6 +119,12 @@
     githubId = 241628;
     name = "Adam Russell";
   };
+  aadibajpai = {
+    email = "hello@aadibajpai.com";
+    github = "aadibajpai";
+    githubId = 27063113;
+    name = "Aadi Bajpai";
+  };
   aanderse = {
     email = "aaron@fosslib.net";
     matrix = "@aanderse:nixos.dev";
@@ -278,6 +284,12 @@
     githubId = 1250775;
     name = "Adolfo E. García Castro";
   };
+  AdsonCicilioti = {
+    name = "Adson Cicilioti";
+    email = "adson.cicilioti@live.com";
+    github = "AdsonCicilioti";
+    githubId = 6278398;
+  };
   adsr = {
     email = "as@php.net";
     github = "adsr";
@@ -351,10 +363,10 @@
     name = "AmirHossein Roozbahani";
   };
   ahuzik = {
-    email = "ales.guzik@gmail.com";
-    github = "alesguzik";
+    email = "ah1990au@gmail.com";
+    github = "alesya-h";
     githubId = 209175;
-    name = "Ales Huzik";
+    name = "Alesya Huzik";
   };
   aij = {
     email = "aij+git@mrph.org";
@@ -1408,6 +1420,12 @@
     githubId = 251106;
     name = "Daniel Bergey";
   };
+  bergkvist = {
+    email = "tobias@bergkv.ist";
+    github = "bergkvist";
+    githubId = 410028;
+    name = "Tobias Bergkvist";
+  };
   betaboon = {
     email = "betaboon@0x80.ninja";
     github = "betaboon";
@@ -1678,6 +1696,12 @@
       fingerprint = "BF4FCB85C69989B4ED95BF938AE74787A4B7C07E";
     }];
   };
+  broke = {
+    email = "broke@in-fucking.space";
+    github = "broke";
+    githubId = 1071610;
+    name = "Gunnar Nitsche";
+  };
   bryanasdev000 = {
     email = "bryanasdev000@gmail.com";
     matrix = "@bryanasdev000:matrix.org";
@@ -2092,6 +2116,17 @@
     githubId = 12386805;
     name = "Chua Hou";
   };
+  chuangzhu = {
+    name = "Chuang Zhu";
+    email = "chuang@melty.land";
+    matrix = "@chuangzhu:matrix.org";
+    github = "chuangzhu";
+    githubId = 31200881;
+    keys = [{
+      longkeyid = "rsa4096/E838CED81CFFD3F9";
+      fingerprint = "5D03 A5E6 0754 A3E3 CA57 5037 E838 CED8 1CFF D3F9";
+    }];
+  };
   chvp = {
     email = "nixpkgs@cvpetegem.be";
     matrix = "@charlotte:vanpetegem.me";
@@ -2105,6 +2140,12 @@
     githubId = 3956062;
     name = "Simon Lackerbauer";
   };
+  cirno-999 = {
+    email = "reverene@protonmail.com";
+    github = "cirno-999";
+    githubId = 73712874;
+    name = "cirno-999";
+  };
   citadelcore = {
     email = "alex@arctarus.co.uk";
     github = "citadelcore";
@@ -2553,6 +2594,17 @@
     githubId = 1298344;
     name = "Daniel Fullmer";
   };
+  danth = {
+    name = "Daniel Thwaites";
+    email = "danthwaites30@btinternet.com";
+    matrix = "@danth:matrix.org";
+    github = "danth";
+    githubId = 28959268;
+    keys = [{
+      longkeyid = "rsa3072/0xD8AFC4BF05670F9D";
+      fingerprint = "4779 D1D5 3C97 2EAE 34A5  ED3D D8AF C4BF 0567 0F9D";
+    }];
+  };
   dan4ik605743 = {
     email = "6057430gu@gmail.com";
     github = "dan4ik605743";
@@ -3084,6 +3136,12 @@
       fingerprint = "85F3 72DF 4AF3 EF13 ED34  72A3 0AAF 2901 E804 0715";
     }];
   };
+  drzoidberg = {
+    email = "jakob@mast3rsoft.com";
+    github = "jakobneufeld";
+    githubId = 24791219;
+    name = "Jakob Neufeld";
+  };
   dschrempf = {
     name = "Dominik Schrempf";
     email = "dominik.schrempf@gmail.com";
@@ -3343,6 +3401,12 @@
     githubId = 103082;
     name = "Ed Brindley";
   };
+  elliot = {
+    email = "hack00mind@gmail.com";
+    github = "Eliot00";
+    githubId = 18375468;
+    name = "Elliot Xu";
+  };
   elliottvillars = {
     email = "elliottvillars@gmail.com";
     github = "elliottvillars";
@@ -3441,9 +3505,9 @@
     githubId = 5493775;
     name = "Ente";
   };
-  enzime = {
+  Enzime = {
     email = "enzime@users.noreply.github.com";
-    github = "enzime";
+    github = "Enzime";
     githubId = 10492681;
     name = "Michael Hoang";
   };
@@ -3655,6 +3719,7 @@
   };
   evils = {
     email = "evils.devils@protonmail.com";
+    matrix = "@evils:nixos.dev";
     github = "evils";
     githubId = 30512529;
     name = "Evils";
@@ -3908,6 +3973,12 @@
     githubId = 183879;
     name = "Florian Klink";
   };
+  florentc = {
+    email = "florentc@users.noreply.github.com";
+    github = "florentc";
+    githubId = 1149048;
+    name = "Florent Ch.";
+  };
   FlorianFranzen = {
     email = "Florian.Franzen@gmail.com";
     github = "FlorianFranzen";
@@ -4822,6 +4893,16 @@
     githubId = 12491746;
     name = "Masato Yonekawa";
   };
+  hyshka = {
+    name = "Bryan Hyshka";
+    email = "bryan@hyshka.com";
+    github = "hyshka";
+    githubId = 2090758;
+    keys = [{
+      longkeyid = "rsa2048/0xDB2D93D1BFAAA6EA";
+      fingerprint = "24F4 1925 28C4 8797 E539  F247 DB2D 93D1 BFAA A6EA";
+    }];
+  };
   hyzual = {
     email = "hyzual@gmail.com";
     github = "Hyzual";
@@ -5004,6 +5085,12 @@
     githubId = 4085046;
     name = "Imuli";
   };
+  ineol = {
+    email = "leo.stefanesco@gmail.com";
+    github = "ineol";
+    githubId = 37965;
+    name = "Léo Stefanesco";
+  };
   infinisil = {
     email = "contact@infinisil.com";
     matrix = "@infinisil:matrix.org";
@@ -5048,6 +5135,13 @@
       fingerprint = "1412 816B A9FA F62F D051 1975 D3E1 B013 B463 1293";
     }];
   };
+  ius = {
+    email = "j.de.gram@gmail.com";
+    name = "Joerie de Gram";
+    matrix = "@ius:nltrix.net";
+    github = "ius";
+    githubId = 529626;
+  };
   ivan = {
     email = "ivan@ludios.org";
     github = "ivan";
@@ -5081,7 +5175,7 @@
     }];
   };
   ivankovnatsky = {
-    email = "ikovnatsky@protonmail.ch";
+    email = "75213+ivankovnatsky@users.noreply.github.com";
     github = "ivankovnatsky";
     githubId = 75213;
     name = "Ivan Kovnatsky";
@@ -5265,6 +5359,12 @@
     githubId = 221929;
     name = "Jean-Baptiste Giraudeau";
   };
+  jceb = {
+    name = "jceb";
+    email = "jceb@e-jc.de";
+    github = "jceb";
+    githubId = 101593;
+  };
   jchw = {
     email = "johnwchadwick@gmail.com";
     github = "jchv";
@@ -5954,6 +6054,12 @@
     githubId = 3831860;
     name = "Arnold Krille";
   };
+  kanashimia = {
+    email = "chad@redpilled.dev";
+    github = "kanashimia";
+    githubId = 56224949;
+    name = "Mia Kanashi";
+  };
   karantan = {
     name = "Gasper Vozel";
     email = "karantan@gmail.com";
@@ -6166,6 +6272,12 @@
     email = "tierpluspluslists@gmail.com";
     name = "Karn Kallio";
   };
+  klden = {
+    name = "Kenzyme Le";
+    email = "kl@kenzymele.com";
+    github = "klDen";
+    githubId = 5478260;
+  };
   klntsky = {
     email = "klntsky@gmail.com";
     name = "Vladimir Kalnitsky";
@@ -6250,6 +6362,12 @@
     githubId = 15692230;
     name = "Muhammad Herdiansyah";
   };
+  koozz = {
+    email = "koozz@linux.com";
+    github = "koozz";
+    githubId = 264372;
+    name = "Jan van den Berg";
+  };
   koral = {
     email = "koral@mailoo.org";
     github = "k0ral";
@@ -6364,6 +6482,13 @@
     githubId = 449813;
     name = "Roman Kuznetsov";
   };
+  kvark = {
+    name = "Dzmitry Malyshau";
+    email = "kvark@fastmail.com";
+    matrix = "@kvark:matrix.org";
+    github = "kvark";
+    githubId = 107301;
+  };
   kwohlfahrt = {
     email = "kai.wohlfahrt@gmail.com";
     github = "kwohlfahrt";
@@ -6555,7 +6680,7 @@
     githubId = 4158274;
     name = "Michiel Leenaars";
   };
-  legendofmiracles = {
+  lom = {
     email = "legendofmiracles@protonmail.com";
     matrix = "@legendofmiracles:matrix.org";
     github = "legendofmiracles";
@@ -6959,6 +7084,12 @@
       fingerprint = "BA3A 5886 AE6D 526E 20B4  57D6 6A37 DF94 8318 8492";
     }];
   };
+  lux = {
+    email = "lux@lux.name";
+    githubId = 1208273;
+    matrix = "@lux:ontheblueplanet.com";
+    name = "Lux";
+  };
   luz = {
     email = "luz666@daum.net";
     github = "Luz";
@@ -7022,6 +7153,12 @@
     githubId = 109141;
     name = "Georges Dubus";
   };
+  Madouura = {
+    email = "madouura@gmail.com";
+    github = "Madouura";
+    githubId = 93990818;
+    name = "Madoura";
+  };
   mafo = {
     email = "Marc.Fontaine@gmx.de";
     github = "MarcFontaine";
@@ -7160,6 +7297,12 @@
     githubId = 623509;
     name = "Martijn Vermaat";
   };
+  martinetd = {
+    email = "f.ktfhrvnznqxacf@noclue.notk.org";
+    github = "martinetd";
+    githubId = 1729331;
+    name = "Dominique Martinet";
+  };
   martingms = {
     email = "martin@mg.am";
     github = "martingms";
@@ -7581,6 +7724,12 @@
     githubId = 21156022;
     name = "Michal Minář";
   };
+  michzappa = {
+    email = "me@michzappa.com";
+    github = "michzappa";
+    githubId = 59343378;
+    name = "Michael Zappa";
+  };
   mickours = {
     email = "mickours@gmail.com<";
     github = "mickours";
@@ -8166,6 +8315,17 @@
     githubId = 56316606;
     name = "Amneesh Singh";
   };
+  nazarewk = {
+    name = "Krzysztof Nazarewski";
+    email = "3494992+nazarewk@users.noreply.github.com";
+    matrix = "@nazarewk:matrix.org";
+    github = "nazarewk";
+    githubId = 3494992;
+    keys = [{
+      longkeyid = "rsa4096/0x916D8B67241892AE";
+      fingerprint = "4BFF 0614 03A2 47F0 AA0B 4BC4 916D 8B67 2418 92AE";
+    }];
+  };
   nbren12 = {
     email = "nbren12@gmail.com";
     github = "nbren12";
@@ -8419,6 +8579,12 @@
     githubId = 7588406;
     name = "Andrew R. M.";
   };
+  nkalupahana = {
+    email = "hello@nisa.la";
+    github = "nkalupahana";
+    githubId = 7347290;
+    name = "Nisala Kalupahana";
+  };
   nloomans = {
     email = "noah@nixos.noahloomans.com";
     github = "nloomans";
@@ -8887,7 +9053,7 @@
     name = "pasqui23";
   };
   patryk27 = {
-    email = "wychowaniec.patryk@gmail.com";
+    email = "pwychowaniec@pm.me";
     github = "Patryk27";
     githubId = 3395477;
     name = "Patryk Wychowaniec";
@@ -8914,6 +9080,12 @@
     githubId = 116740;
     name = "Paweł Pacana";
   };
+  pb- = {
+    email = "pbaecher@gmail.com";
+    github = "pb-";
+    githubId = 84886;
+    name = "Paul Baecher";
+  };
   pbogdan = {
     email = "ppbogdan@gmail.com";
     github = "pbogdan";
@@ -8938,12 +9110,6 @@
     githubId = 8641;
     name = "Pierre Carrier";
   };
-  pengmeiyu = {
-    email = "pengmyu@gmail.com";
-    github = "pmeiyu";
-    githubId = 8529551;
-    name = "Peng Mei Yu";
-  };
   penguwin = {
     email = "penguwin@penguwin.eu";
     github = "penguwin";
@@ -9054,12 +9220,6 @@
     githubId = 301903;
     name = "Chip Collier";
   };
-  phreedom = {
-    email = "phreedom@yandex.ru";
-    github = "phreedom";
-    githubId = 62577;
-    name = "Evgeny Egorochkin";
-  };
   phryneas = {
     email = "mail@lenzw.de";
     github = "phryneas";
@@ -9219,6 +9379,12 @@
     githubId = 178496;
     name = "Philipp Middendorf";
   };
+  pmy = {
+    email = "pmy@xqzp.net";
+    github = "pmeiyu";
+    githubId = 8529551;
+    name = "Peng Mei Yu";
+  };
   pmyjavec = {
     email = "pauly@myjavec.com";
     github = "pmyjavec";
@@ -9293,6 +9459,12 @@
       fingerprint = "48AD DE10 F27B AFB4 7BB0  CCAF 2D25 95A0 0D08 ACE0";
     }];
   };
+  ppom = {
+    name = "Paco Pompeani";
+    email = "paco@ecomail.io";
+    github = "aopom";
+    githubId = 38916722;
+  };
   pradeepchhetri = {
     email = "pradeep.chhetri89@gmail.com";
     github = "pradeepchhetri";
@@ -11296,6 +11468,16 @@
     githubId = 321799;
     name = "Paul Colomiets";
   };
+  taikx4 = {
+    email = "taikx4@taikx4szlaj2rsdupcwabg35inbny4jk322ngeb7qwbbhd5i55nf5yyd.onion";
+    github = "taikx4";
+    githubId = 94917129;
+    name = "taikx4";
+    keys = [{
+      longkeyid = "ed25519/0xCCD52C7B37BB837E";
+      fingerprint = "6B02 8103 C4E5 F68C D77C  9E54 CCD5 2C7B 37BB 837E";
+    }];
+  };
   takagiy = {
     email = "takagiy.4dev@gmail.com";
     github = "takagiy";
@@ -11677,6 +11859,12 @@
       fingerprint = "556A 403F B0A2 D423 F656  3424 8489 B911 F9ED 617B";
     }];
   };
+  tmarkovski = {
+    email = "tmarkovski@gmail.com";
+    github = "tmarkovski";
+    githubId = 1280118;
+    name = "Tomislav Markovski";
+  };
   tmountain = {
     email = "tinymountain@gmail.com";
     github = "tmountain";
@@ -11978,6 +12166,12 @@
     githubId = 122319;
     name = "Renato Alves";
   };
+  unrooted = {
+    name = "Konrad Klawikowski";
+    email = "konrad.root.klawikowski@gmail.com";
+    github = "unrooted";
+    githubId = 30440603;
+  };
   uralbash = {
     email = "root@uralbash.ru";
     github = "uralbash";
@@ -12421,12 +12615,18 @@
     githubId = 6016963;
     name = "Patrick Winter";
   };
-  winterqt = {
+  winter = {
     email = "nixos@winter.cafe";
     github = "winterqt";
     githubId = 78392041;
     name = "Winter";
   };
+  wintrmvte = {
+    name = "Jakub Lutczyn";
+    email = "kubalutczyn@gmail.com";
+    github = "wintrmvte";
+    githubId = 41823252;
+  };
   wirew0rm = {
     email = "alex@wirew0rm.de";
     github = "wirew0rm";
@@ -12505,6 +12705,12 @@
     githubId = 28888242;
     name = "WORLDofPEACE";
   };
+  wr0belj = {
+    name = "Jakub Wróbel";
+    email = "wrobel.jakub@protonmail.com";
+    github = "wr0belj";
+    githubId = 40501814;
+  };
   wscott = {
     email = "wsc9tt@gmail.com";
     github = "wscott";
@@ -12645,6 +12851,12 @@
     githubId = 2242427;
     name = "Yoann Ono";
   };
+  yana = {
+    email = "yana@riseup.net";
+    github = "alpakido";
+    githubId = 1643293;
+    name = "Yana Timoshenko";
+  };
   yarny = {
     email = "41838844+Yarny0@users.noreply.github.com";
     github = "Yarny0";
@@ -12664,12 +12876,6 @@
     githubId = 73759599;
     name = "Lara A.";
   };
-  yegortimoshenko = {
-    email = "yegortimoshenko@riseup.net";
-    github = "yegortimoshenko";
-    githubId = 1643293;
-    name = "Yegor Timoshenko";
-  };
   yesbox = {
     email = "jesper.geertsen.jonsson@gmail.com";
     github = "yesbox";
@@ -12682,6 +12888,12 @@
     githubId = 11229748;
     name = "Lin Yinfeng";
   };
+  ylecornec = {
+    email = "yves.stan.lecornec@tweag.io";
+    github = "ylecornec";
+    githubId = 5978566;
+    name = "Yves-Stan Le Cornec";
+  };
   ylwghst = {
     email = "ylwghst@onionmail.info";
     github = "ylwghst";
@@ -12904,12 +13116,6 @@
     githubId = 1772064;
     name = "Tim Zook";
   };
-  zoomulator = {
-    email = "zoomulator@gmail.com";
-    github = "zoomulator";
-    githubId = 1069303;
-    name = "Kim Simmons";
-  };
   zopieux = {
     email = "zopieux@gmail.com";
     github = "zopieux";
@@ -13228,6 +13434,12 @@
     github = "zeri42";
     githubId = 68825133;
   };
+  zombiezen = {
+    name = "Ross Light";
+    email = "ross@zombiezen.com";
+    github = "zombiezen";
+    githubId = 181535;
+  };
   zseri = {
     name = "zseri";
     email = "zseri.devel@ytrizja.de";
@@ -13256,4 +13468,16 @@
     github = "vdot0x23";
     githubId = 40716069;
   };
+  jpagex = {
+    name = "Jérémy Pagé";
+    email = "contact@jeremypage.me";
+    github = "jpagex";
+    githubId = 635768;
+  };
+  pwoelfel = {
+    name = "Philipp Woelfel";
+    email = "philipp.woelfel@gmail.com";
+    github = "PhilippWoelfel";
+    githubId = 19400064;
+  };
 }
diff --git a/maintainers/scripts/check-maintainer-github-handles.sh b/maintainers/scripts/check-maintainer-github-handles.sh
index 879a2e452cb33..a5555ca9e909e 100755
--- a/maintainers/scripts/check-maintainer-github-handles.sh
+++ b/maintainers/scripts/check-maintainer-github-handles.sh
@@ -4,20 +4,19 @@
 # Example how to work with the `lib.maintainers` attrset.
 # Can be used to check whether all user handles are still valid.
 
-set -e
-
-# nixpkgs='<nixpkgs>'
-# if [ -n "$1" ]; then
+set -o errexit -o noclobber -o nounset -o pipefail
+shopt -s failglob inherit_errexit
 
 function checkCommits {
-    local user="$1"
-    local tmp=$(mktemp)
+    local ret status tmp user
+    user="$1"
+    tmp=$(mktemp)
     curl --silent -w "%{http_code}" \
          "https://github.com/NixOS/nixpkgs/commits?author=$user" \
          > "$tmp"
     # the last line of tmp contains the http status
-    local status=$(tail -n1 "$tmp")
-    local ret=
+    status=$(tail -n1 "$tmp")
+    ret=
     case $status in
         200) if <"$tmp" grep -i "no commits found" > /dev/null; then
                  ret=1
@@ -31,7 +30,7 @@ function checkCommits {
              checkCommits "$user"
              ret=$?
              ;;
-        *)   printf "BAD STATUS: $(tail -n1 $tmp) for %s\n" "$user"; ret=1
+        *)   printf "BAD STATUS: $(tail -n1 "$tmp") for %s\n" "$user"; ret=1
              ret=1
              ;;
     esac
@@ -63,4 +62,5 @@ nix-instantiate -A lib.maintainers --eval --strict --json \
     | jq -r '.[]|.github|select(.)' \
     | parallel -j5 checkUser
 
+# To check some arbitrary users:
 # parallel -j100 checkUser ::: "eelco" "profpatsch" "Profpatsch" "a"
diff --git a/maintainers/scripts/haskell/test-configurations.nix b/maintainers/scripts/haskell/test-configurations.nix
new file mode 100644
index 0000000000000..12287896b50df
--- /dev/null
+++ b/maintainers/scripts/haskell/test-configurations.nix
@@ -0,0 +1,136 @@
+/* Nix expression to test for regressions in the Haskell configuration overlays.
+
+   test-configurations.nix determines all attributes touched by given Haskell
+   configuration overlays (i. e. pkgs/development/haskell-modules/configuration-*.nix)
+   and builds all derivations (or at least a reasonable subset) affected by
+   these overrides.
+
+   By default, it checks `configuration-{common,nix,ghc-8.10.x}.nix`. You can
+   invoke it like this:
+
+     nix-build maintainers/scripts/haskell/test-configurations.nix --keep-going
+
+   It is possible to specify other configurations:
+
+     nix-build maintainers/scripts/haskell/test-configurations.nix \
+       --arg files '[ "configuration-ghc-9.0.x.nix" "configuration-ghc-9.2.x.nix" ]' \
+       --keep-going
+
+   You can also just supply a single string:
+
+     nix-build maintainers/scripts/haskell/test-configurations.nix \
+       --argstr files "configuration-arm.nix" --keep-going
+
+   You can even supply full paths which is handy, as it allows for tab-completing
+   the configurations:
+
+     nix-build maintainers/scripts/haskell/test-configurations.nix \
+       --argstr files pkgs/development/haskell-modules/configuration-arm.nix \
+       --keep-going
+
+   By default, derivation that fail to evaluate are skipped, unless they are
+   “just” marked as broken. You can check for other eval errors like this:
+
+     nix-build maintainers/scripts/haskell/test-configurations.nix \
+       --arg skipEvalErrors false --keep-going
+
+   You can also disable checking broken packages by passing a nixpkgs config:
+
+     nix-build maintainers/scripts/haskell/test-configurations.nix \
+       --arg config '{ allowBroken = false; }' --keep-going
+
+   By default the haskell.packages.ghc*Binary sets used for bootstrapping GHC
+   are _not_ tested. You can change this using:
+
+     nix-build maintainers/scripts/haskell/test-configurations.nix \
+       --arg skipBinaryGHCs false --keep-going
+
+*/
+{ files ? [
+    "configuration-common.nix"
+    "configuration-nix.nix"
+    "configuration-ghc-8.10.x.nix"
+  ]
+, nixpkgsPath ? ../../..
+, config ? { allowBroken = true; }
+, skipEvalErrors ? true
+, skipBinaryGHCs ? true
+}:
+
+let
+  pkgs = import nixpkgsPath { inherit config; };
+  inherit (pkgs) lib;
+
+  # see usage explanation for the input format `files` allows
+  files' = builtins.map builtins.baseNameOf (
+    if !builtins.isList files then [ files ] else files
+  );
+
+  setsForFile = fileName:
+    let
+      # extract the unique part of the config's file name
+      configName = builtins.head (
+        builtins.match "configuration-(.+).nix" fileName
+      );
+      # match the major and minor version of the GHC the config is intended for, if any
+      configVersion = lib.concatStrings (
+        builtins.match "ghc-([0-9]+).([0-9]+).x" configName
+      );
+      # return all package sets under haskell.packages matching the version components
+      setsForVersion =  builtins.map (name: pkgs.haskell.packages.${name}) (
+        builtins.filter (setName:
+          lib.hasPrefix "ghc${configVersion}" setName
+          && (skipBinaryGHCs -> !(lib.hasInfix "Binary" setName))
+        ) (
+          builtins.attrNames pkgs.haskell.packages
+        )
+      );
+
+      defaultSets = [ pkgs.haskellPackages ];
+    in {
+      # use plain haskellPackages for the version-agnostic files
+      # TODO(@sternenseemann): also consider currently selected versioned sets
+      "common" = defaultSets;
+      "nix" = defaultSets;
+      "arm" = defaultSets;
+      "darwin" = defaultSets;
+    }.${configName} or setsForVersion;
+
+  # attribute set that has all the attributes of haskellPackages set to null
+  availableHaskellPackages = builtins.listToAttrs (
+    builtins.map (attr: lib.nameValuePair attr null) (
+      builtins.attrNames pkgs.haskellPackages
+    )
+  );
+
+  # evaluate a configuration and only return the attributes changed by it,
+  # pass availableHaskellPackages as super in case intersectAttrs is used
+  overriddenAttrs = fileName: builtins.attrNames (
+    lib.fix (self:
+      import (nixpkgsPath + "/pkgs/development/haskell-modules/${fileName}") {
+        haskellLib = pkgs.haskell.lib.compose;
+        inherit pkgs;
+      } self availableHaskellPackages
+    )
+  );
+
+  # list of derivations that are affected by overrides in the given configuration
+  # overlays. For common, nix, darwin etc. only the derivation from the default
+  # package set will be emitted.
+  packages = builtins.filter (v:
+    lib.warnIf (v.meta.broken or false) "${v.pname} is marked as broken" (
+      v != null
+      && (skipEvalErrors -> (builtins.tryEval (v.outPath or v)).success)
+    )
+  ) (
+    lib.concatMap (fileName:
+      let
+        sets = setsForFile fileName;
+        attrs = overriddenAttrs fileName;
+      in
+        lib.concatMap (set: builtins.map (attr: set.${attr}) attrs) sets
+    ) files'
+  );
+in
+
+packages
diff --git a/maintainers/scripts/luarocks-packages.csv b/maintainers/scripts/luarocks-packages.csv
index d4a5f83d011b8..23303d22c471a 100644
--- a/maintainers/scripts/luarocks-packages.csv
+++ b/maintainers/scripts/luarocks-packages.csv
@@ -73,7 +73,7 @@ lyaml,,,,,,lblasc
 markdown,,,,,,
 mediator_lua,,,,,,
 mpack,,,,,,
-moonscript,,,,,,arobyn
+moonscript,https://github.com/leafo/moonscript.git,dev-1,,,,arobyn
 nvim-client,https://github.com/neovim/lua-client.git,,,,,
 penlight,https://github.com/lunarmodules/Penlight.git,,,,,alerque
 plenary.nvim,https://github.com/nvim-lua/plenary.nvim.git,,,,lua5_1,
diff --git a/maintainers/scripts/pluginupdate.py b/maintainers/scripts/pluginupdate.py
index 2c2cb3b6dd362..9eabcfcebc6e4 100644
--- a/maintainers/scripts/pluginupdate.py
+++ b/maintainers/scripts/pluginupdate.py
@@ -385,7 +385,7 @@ def check_results(
         sys.exit(1)
 
 def parse_plugin_line(line: str) -> PluginDesc:
-    branch = "master"
+    branch = "HEAD"
     alias = None
     name, repo = line.split("/")
     if " as " in repo:
@@ -401,6 +401,8 @@ def load_plugin_spec(plugin_file: str) -> List[PluginDesc]:
     plugins = []
     with open(plugin_file) as f:
         for line in f:
+            if line.startswith("#"):
+                continue
             plugin = parse_plugin_line(line)
             if not plugin.owner:
                 msg = f"Invalid repository {line}, must be in the format owner/repo[ as alias]"
diff --git a/maintainers/scripts/vanity.sh b/maintainers/scripts/vanity.sh
index aa7d4ec967daf..b879488165dfa 100755
--- a/maintainers/scripts/vanity.sh
+++ b/maintainers/scripts/vanity.sh
@@ -30,7 +30,7 @@ fetchGithubName () {
         curl https://github.com/NixOS/nixpkgs/commit/"$commitid" 2>/dev/null |
         grep committed -B10 | grep 'href="/' |
         sed -re 's@.* href="/@@; s@".*@@' |
-	grep -v "/commit/"
+        grep -v "/commit/"
     )";
     echo "$userid"
 }
@@ -38,7 +38,7 @@ fetchGithubName () {
 [ -n "$NIXPKGS_GITHUB_NAME_CACHE" ] && {
     echo "$emails" | while read email; do
         line="$(grep "$email	" "$NIXPKGS_GITHUB_NAME_CACHE")"
-	[ -z "$line" ] && {
+        [ -z "$line" ] && {
             echo "$email	$(fetchGithubName "$email")" >> \
                 "$NIXPKGS_GITHUB_NAME_CACHE"
         }
@@ -47,11 +47,11 @@ fetchGithubName () {
 
 # For RDF
 normalize_name () {
-	sed -e 's/%/%25/g; s/ /%20/g; s/'\''/%27/g; s/"/%22/g; s/`/%60/g; s/\^/%5e/g; '
+    sed -e 's/%/%25/g; s/ /%20/g; s/'\''/%27/g; s/"/%22/g; s/`/%60/g; s/\^/%5e/g; '
 }
 
 denormalize_name () {
-	sed -e 's/%20/ /g; s/%27/'\''/g; s/%22/"/g; s/%60/`/g; s/%5e/^/g; s/%25/%/g;';
+    sed -e 's/%20/ /g; s/%27/'\''/g; s/%22/"/g; s/%60/`/g; s/%5e/^/g; s/%25/%/g;';
 }
 
 n3="$(mktemp --suffix .n3)"
@@ -75,22 +75,22 @@ echo "$maintainers" | cut -f 2 | sed -e 's@.*@<my://name/&>	<my://is-name>	<my:/
 # Get transitive closure
 sparql="$(nix-build '<nixpkgs>' -Q -A apache-jena --no-out-link)/bin/sparql"
 name_list="$(
-	"$sparql" --results=TSV --data="$n3" "
-	select ?x ?y ?g where {
-	  ?x <my://can-be>+ ?y.
-	  ?x <my://is-name> ?g.
+    "$sparql" --results=TSV --data="$n3" "
+    select ?x ?y ?g where {
+      ?x <my://can-be>+ ?y.
+      ?x <my://is-name> ?g.
         }
-	" | tail -n +2 |
-	sed -re 's@<my://name/@@g; s@<my://@@g; s@>@@g;' |
-	sort -k 2,3 -t '	'
+    " | tail -n +2 |
+    sed -re 's@<my://name/@@g; s@<my://@@g; s@>@@g;' |
+    sort -k 2,3 -t '	'
 )"
 github_name_list="$(
-	"$sparql" --results=TSV --data="$n3" "
-	select ?x ?y where {
-	  ?x (<my://can-be>+ / <my://at-github>) ?y.
+    "$sparql" --results=TSV --data="$n3" "
+    select ?x ?y where {
+      ?x (<my://can-be>+ / <my://at-github>) ?y.
         }
-	" | tail -n +2 |
-	sed -re 's@<my://(name|github)/@@g; s@<my://@@g; s@>@@g;'
+    " | tail -n +2 |
+    sed -re 's@<my://(name|github)/@@g; s@<my://@@g; s@>@@g;'
 )"
 
 # Take first spelling option for every person
@@ -104,10 +104,10 @@ if [ -n "$NIXPKGS_GITHUB_NAME_CACHE" ]; then
     github_adder_script="$(mktemp)"
     echo "$github_name_list" |
         grep -E "$(echo "$name_list_canonical" | cut -f 2 |
-	    tr '\n' '|' )" |
-	sort | uniq |
+        tr '\n' '|' )" |
+    sort | uniq |
         sed -re 's/(.*)\t(.*)/s| \1$| \1\t\2|g;/' |
-	denormalize_name > "$github_adder_script"
+    denormalize_name > "$github_adder_script"
 else
     github_adder_script='/dev/null'
 fi
diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix
index fecea9e414835..0743c80ec4f62 100644
--- a/maintainers/team-list.nix
+++ b/maintainers/team-list.nix
@@ -29,6 +29,20 @@ with lib.maintainers; {
     scope = "Maintain ACME-related packages and modules.";
   };
 
+  bazel = {
+    members = [
+      mboes
+      marsam
+      uri-canva
+      cbley
+      olebedev
+      groodt
+      aherrmann
+      ylecornec
+    ];
+    scope = "Bazel build tool & related tools https://bazel.build/";
+  };
+
   beam = {
     members = [
       ankhers
@@ -93,7 +107,6 @@ with lib.maintainers; {
       cstrahan
       Frostman
       kalbasit
-      mdlayher
       mic92
       orivej
       rvolosatovs
@@ -234,6 +247,15 @@ with lib.maintainers; {
     scope = "Maintain Podman and CRI-O related packages and modules.";
   };
 
+  redcodelabs = {
+    members = [
+      unrooted
+      wr0belj
+      wintrmvte
+    ];
+    scope = "Maintain Red Code Labs related packages and modules.";
+  };
+
   sage = {
     members = [
       timokau
@@ -260,4 +282,11 @@ with lib.maintainers; {
     ];
     scope = "coqui-ai TTS (formerly Mozilla TTS) and leaf packages";
   };
+
+  xfce = {
+    members = [
+      romildo
+    ];
+    scope = "Maintain Xfce desktop environment and related packages.";
+  };
 }
diff --git a/nixos/doc/manual/administration/declarative-containers.section.md b/nixos/doc/manual/administration/declarative-containers.section.md
index 273672fc10ca9..0d9d4017ed81b 100644
--- a/nixos/doc/manual/administration/declarative-containers.section.md
+++ b/nixos/doc/manual/administration/declarative-containers.section.md
@@ -9,7 +9,7 @@ containers.database =
   { config =
       { config, pkgs, ... }:
       { services.postgresql.enable = true;
-      services.postgresql.package = pkgs.postgresql_9_6;
+      services.postgresql.package = pkgs.postgresql_10;
       };
   };
 ```
diff --git a/nixos/doc/manual/configuration/renaming-interfaces.section.md b/nixos/doc/manual/configuration/renaming-interfaces.section.md
index b124e8303feed..18390c959b242 100644
--- a/nixos/doc/manual/configuration/renaming-interfaces.section.md
+++ b/nixos/doc/manual/configuration/renaming-interfaces.section.md
@@ -26,7 +26,7 @@ we assign the name `wan` to the interface with MAC address
 
 ```nix
 systemd.network.links."10-wan" = {
-  matchConfig.MACAddress = "52:54:00:12:01:01";
+  matchConfig.PermanentMACAddress = "52:54:00:12:01:01";
   linkConfig.Name = "wan";
 };
 ```
diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix
index 151743d9fb580..31b6da01c6bd0 100644
--- a/nixos/doc/manual/default.nix
+++ b/nixos/doc/manual/default.nix
@@ -161,7 +161,7 @@ let
 in rec {
   inherit generatedSources;
 
-  inherit (optionsDoc) optionsJSON optionsXML optionsDocBook;
+  inherit (optionsDoc) optionsJSON optionsDocBook;
 
   # Generate the NixOS manual.
   manualHTML = runCommand "nixos-manual-html"
diff --git a/nixos/doc/manual/from_md/administration/declarative-containers.section.xml b/nixos/doc/manual/from_md/administration/declarative-containers.section.xml
index a918314a2723e..7b35520d567bf 100644
--- a/nixos/doc/manual/from_md/administration/declarative-containers.section.xml
+++ b/nixos/doc/manual/from_md/administration/declarative-containers.section.xml
@@ -11,7 +11,7 @@ containers.database =
   { config =
       { config, pkgs, ... }:
       { services.postgresql.enable = true;
-      services.postgresql.package = pkgs.postgresql_9_6;
+      services.postgresql.package = pkgs.postgresql_10;
       };
   };
 </programlisting>
diff --git a/nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml b/nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml
index 1c32e30b3f850..88c9e624c82ff 100644
--- a/nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml
+++ b/nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml
@@ -32,7 +32,7 @@
     </para>
     <programlisting language="bash">
 systemd.network.links.&quot;10-wan&quot; = {
-  matchConfig.MACAddress = &quot;52:54:00:12:01:01&quot;;
+  matchConfig.PermanentMACAddress = &quot;52:54:00:12:01:01&quot;;
   linkConfig.Name = &quot;wan&quot;;
 };
 </programlisting>
diff --git a/nixos/doc/manual/from_md/installation/upgrading.chapter.xml b/nixos/doc/manual/from_md/installation/upgrading.chapter.xml
index c0c5a2190fb2a..e3b77d4c3650b 100644
--- a/nixos/doc/manual/from_md/installation/upgrading.chapter.xml
+++ b/nixos/doc/manual/from_md/installation/upgrading.chapter.xml
@@ -12,7 +12,7 @@
     <listitem>
       <para>
         <emphasis>Stable channels</emphasis>, such as
-        <link xlink:href="https://nixos.org/channels/nixos-21.05"><literal>nixos-21.05</literal></link>.
+        <link xlink:href="https://nixos.org/channels/nixos-21.11"><literal>nixos-21.11</literal></link>.
         These only get conservative bug fixes and package upgrades. For
         instance, a channel update may cause the Linux kernel on your
         system to be upgraded from 4.19.34 to 4.19.38 (a minor bug fix),
@@ -33,7 +33,7 @@
     <listitem>
       <para>
         <emphasis>Small channels</emphasis>, such as
-        <link xlink:href="https://nixos.org/channels/nixos-21.05-small"><literal>nixos-21.05-small</literal></link>
+        <link xlink:href="https://nixos.org/channels/nixos-21.11-small"><literal>nixos-21.11-small</literal></link>
         or
         <link xlink:href="https://nixos.org/channels/nixos-unstable-small"><literal>nixos-unstable-small</literal></link>.
         These are identical to the stable and unstable channels
@@ -60,8 +60,8 @@
   <para>
     When you first install NixOS, you’re automatically subscribed to the
     NixOS channel that corresponds to your installation source. For
-    instance, if you installed from a 21.05 ISO, you will be subscribed
-    to the <literal>nixos-21.05</literal> channel. To see which NixOS
+    instance, if you installed from a 21.11 ISO, you will be subscribed
+    to the <literal>nixos-21.11</literal> channel. To see which NixOS
     channel you’re subscribed to, run the following as root:
   </para>
   <programlisting>
@@ -76,17 +76,17 @@ nixos https://nixos.org/channels/nixos-unstable
 </programlisting>
   <para>
     (Be sure to include the <literal>nixos</literal> parameter at the
-    end.) For instance, to use the NixOS 21.05 stable channel:
+    end.) For instance, to use the NixOS 21.11 stable channel:
   </para>
   <programlisting>
-# nix-channel --add https://nixos.org/channels/nixos-21.05 nixos
+# nix-channel --add https://nixos.org/channels/nixos-21.11 nixos
 </programlisting>
   <para>
     If you have a server, you may want to use the <quote>small</quote>
     channel instead:
   </para>
   <programlisting>
-# nix-channel --add https://nixos.org/channels/nixos-21.05-small nixos
+# nix-channel --add https://nixos.org/channels/nixos-21.11-small nixos
 </programlisting>
   <para>
     And if you want to live on the bleeding edge:
@@ -146,7 +146,7 @@ system.autoUpgrade.allowReboot = true;
       also specify a channel explicitly, e.g.
     </para>
     <programlisting language="bash">
-system.autoUpgrade.channel = https://nixos.org/channels/nixos-21.05;
+system.autoUpgrade.channel = https://nixos.org/channels/nixos-21.11;
 </programlisting>
   </section>
 </chapter>
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
index f1d803136aa00..e2bda7604e48f 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
@@ -1,9 +1,5 @@
 <section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-release-21.11">
-  <title>Release 21.11 (“Porcupine”, 2021.11/??)</title>
-  <para>
-    In addition to numerous new and upgraded packages, this release has
-    the following highlights:
-  </para>
+  <title>Release 21.11 (“Porcupine”, 2021/11/30)</title>
   <itemizedlist spacing="compact">
     <listitem>
       <para>
@@ -14,6 +10,10 @@
   </itemizedlist>
   <section xml:id="sec-release-21.11-highlights">
     <title>Highlights</title>
+    <para>
+      In addition to numerous new and upgraded packages, this release
+      has the following highlights:
+    </para>
     <itemizedlist>
       <listitem>
         <para>
@@ -37,7 +37,7 @@
       </listitem>
       <listitem>
         <para>
-          kOps now defaults to 1.21.1, which uses containerd as the
+          kops now defaults to 1.21.1, which uses containerd as the
           default runtime.
         </para>
       </listitem>
@@ -84,13 +84,13 @@
       </listitem>
       <listitem>
         <para>
-          Activation scripts can now opt int to be run when running
-          <literal>nixos-rebuild dry-activate</literal> and detect the
-          dry activation by reading <literal>$NIXOS_ACTION</literal>.
-          This allows activation scripts to output what they would
-          change if the activation was really run. The users/modules
-          activation script supports this and outputs some of is
-          actions.
+          Activation scripts can now, optionally, be run during a
+          <literal>nixos-rebuild dry-activate</literal> and can detect
+          the dry activation by reading
+          <literal>$NIXOS_ACTION</literal>. This allows activation
+          scripts to output what they would change if the activation was
+          really run. The users/modules activation script supports this
+          and outputs some of is actions.
         </para>
       </listitem>
       <listitem>
@@ -172,6 +172,41 @@
           </listitem>
         </itemizedlist>
       </listitem>
+      <listitem>
+        <para>
+          ORY Kratos was updated to version 0.8.0-alpha.3
+        </para>
+        <itemizedlist spacing="compact">
+          <listitem>
+            <para>
+              This release requires you to run SQL migrations. Please,
+              as always, create a backup of your database first!
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              The SDKs are now generated with tag v0alpha2 to reflect
+              that some signatures have changed in a breaking fashion.
+              Please update your imports from v0alpha1 to v0alpha2.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              The SMTPS scheme used in courier config URL with
+              cleartext/StartTLS/TLS SMTP connection types is now only
+              supporting implicit TLS. For StartTLS and cleartext SMTP,
+              please use the SMTP scheme instead.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              for more details, see
+              <link xlink:href="https://github.com/ory/kratos/releases/tag/v0.8.0-alpha.1">Release
+              Notes</link>.
+            </para>
+          </listitem>
+        </itemizedlist>
+      </listitem>
     </itemizedlist>
   </section>
   <section xml:id="sec-release-21.11-new-services">
@@ -220,14 +255,14 @@
         <para>
           <link xlink:href="https://www.isc.org/kea/">Kea</link>, ISCs
           2nd generation DHCP and DDNS server suite. Available at
-          <link xlink:href="options.html#opt-services.kea">services.kea</link>.
+          <link xlink:href="options.html#opt-services.kea.dhcp4">services.kea</link>.
         </para>
       </listitem>
       <listitem>
         <para>
           <link xlink:href="https://owncast.online/">owncast</link>,
           self-hosted video live streaming solution. Available at
-          <link xlink:href="options.html#opt-services.owncast">services.owncast</link>.
+          <link xlink:href="options.html#opt-services.owncast.enable">services.owncast</link>.
         </para>
       </listitem>
       <listitem>
@@ -235,7 +270,14 @@
           <link xlink:href="https://joinpeertube.org/">PeerTube</link>,
           developed by Framasoft, is the free and decentralized
           alternative to video platforms. Available at
-          <link xlink:href="options.html#opt-services.peertube">services.peertube</link>.
+          <link xlink:href="options.html#opt-services.peertube.enable">services.peertube</link>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <link xlink:href="https://maddy.email">maddy</link>, a
+          composable all-in-one mail server. Available as
+          <link xlink:href="options.html#opt-services.maddy.enable">services.maddy</link>.
         </para>
       </listitem>
       <listitem>
@@ -489,6 +531,15 @@
           <link linkend="opt-services.ananicy.enable">services.ananicy</link>.
         </para>
       </listitem>
+      <listitem>
+        <para>
+          <link xlink:href="https://github.com/prometheus-community/smartctl_exporter">smartctl_exporter</link>,
+          a Prometheus exporter for
+          <link xlink:href="https://en.wikipedia.org/wiki/S.M.A.R.T.">S.M.A.R.T.</link>
+          data. Available as
+          <link xlink:href="options.html#opt-services.prometheus.exporters.smartctl.enable">services.prometheus.exporters.smartctl</link>.
+        </para>
+      </listitem>
     </itemizedlist>
   </section>
   <section xml:id="sec-release-21.11-incompatibilities">
@@ -1827,15 +1878,6 @@ Superuser created successfully.
       </listitem>
       <listitem>
         <para>
-          Changing systemd <literal>.socket</literal> units now restarts
-          them and stops the service that is activated by them.
-          Additionally, services with
-          <literal>stopOnChange = false</literal> don’t break anymore
-          when they are socket-activated.
-        </para>
-      </listitem>
-      <listitem>
-        <para>
           The <literal>virtualisation.libvirtd</literal> module has been
           refactored and updated with new options:
         </para>
@@ -1987,6 +2029,22 @@ Superuser created successfully.
           file.
         </para>
       </listitem>
+      <listitem>
+        <para>
+          hydrus has been upgraded from version <literal>438</literal>
+          to <literal>463</literal>. Since upgrading between releases
+          this old is advised against, be sure to have a backup of your
+          data before upgrading. For details, see
+          <link xlink:href="https://hydrusnetwork.github.io/hydrus/help/getting_started_installing.html#big_updates">the
+          hydrus manual</link>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          More jdk and jre versions are now exposed via
+          <literal>java-packages.compiler</literal>.
+        </para>
+      </listitem>
     </itemizedlist>
   </section>
 </section>
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
new file mode 100644
index 0000000000000..82965ff187546
--- /dev/null
+++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
@@ -0,0 +1,285 @@
+<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-release-22.05">
+  <title>Release 22.05 (“Quokka”, 2022.05/??)</title>
+  <para>
+    In addition to numerous new and upgraded packages, this release has
+    the following highlights:
+  </para>
+  <itemizedlist spacing="compact">
+    <listitem>
+      <para>
+        Support is planned until the end of December 2022, handing over
+        to 22.11.
+      </para>
+    </listitem>
+  </itemizedlist>
+  <section xml:id="sec-release-22.05-highlights">
+    <title>Highlights</title>
+    <itemizedlist>
+      <listitem>
+        <para>
+          <literal>security.acme.defaults</literal> has been added to
+          simplify configuring settings for many certificates at once.
+          This also opens up the the option to use DNS-01 validation
+          when using <literal>enableACME</literal> on web server virtual
+          hosts (e.g.
+          <literal>services.nginx.virtualHosts.*.enableACME</literal>).
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          PHP 8.1 is now available
+        </para>
+      </listitem>
+    </itemizedlist>
+  </section>
+  <section xml:id="sec-release-22.05-new-services">
+    <title>New Services</title>
+    <itemizedlist>
+      <listitem>
+        <para>
+          <link xlink:href="https://github.com/intel/linux-sgx#install-the-intelr-sgx-psw">aesmd</link>,
+          the Intel SGX Architectural Enclave Service Manager. Available
+          as
+          <link linkend="opt-services.aesmd.enable">services.aesmd</link>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <link xlink:href="https://docs.docker.com/engine/security/rootless/">rootless
+          Docker</link>, a <literal>systemd --user</literal> Docker
+          service which runs without root permissions. Available as
+          <link xlink:href="options.html#opt-virtualisation.docker.rootless.enable">virtualisation.docker.rootless.enable</link>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html">filebeat</link>,
+          a lightweight shipper for forwarding and centralizing log
+          data. Available as
+          <link linkend="opt-services.filebeat.enable">services.filebeat</link>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <link xlink:href="https://github.com/ngoduykhanh/PowerDNS-Admin">PowerDNS-Admin</link>,
+          a web interface for the PowerDNS server. Available at
+          <link xlink:href="options.html#opt-services.powerdns-admin.enable">services.powerdns-admin</link>.
+        </para>
+      </listitem>
+    </itemizedlist>
+  </section>
+  <section xml:id="sec-release-22.05-incompatibilities">
+    <title>Backward Incompatibilities</title>
+    <itemizedlist>
+      <listitem>
+        <para>
+          <literal>pkgs.ghc</literal> now refers to
+          <literal>pkgs.targetPackages.haskellPackages.ghc</literal>.
+          This <emphasis>only</emphasis> makes a difference if you are
+          cross-compiling and will ensure that
+          <literal>pkgs.ghc</literal> always runs on the host platform
+          and compiles for the target platform (similar to
+          <literal>pkgs.gcc</literal> for example).
+          <literal>haskellPackages.ghc</literal> still behaves as
+          before, running on the build platform and compiling for the
+          host platform (similar to <literal>stdenv.cc</literal>). This
+          means you don’t have to adjust your derivations if you use
+          <literal>haskellPackages.callPackage</literal>, but when using
+          <literal>pkgs.callPackage</literal> and taking
+          <literal>ghc</literal> as an input, you should now use
+          <literal>buildPackages.ghc</literal> instead to ensure cross
+          compilation keeps working (or switch to
+          <literal>haskellPackages.callPackage</literal>).
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <literal>pkgs.emacsPackages.orgPackages</literal> is removed
+          because org elpa is deprecated. The packages in the top level
+          of <literal>pkgs.emacsPackages</literal>, such as org and
+          org-contrib, refer to the ones in
+          <literal>pkgs.emacsPackages.elpaPackages</literal> and
+          <literal>pkgs.emacsPackages.nongnuPackages</literal> where the
+          new versions will release.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <literal>services.kubernetes.addons.dashboard</literal> was
+          removed due to it being an outdated version.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          The <literal>wafHook</literal> hook now honors
+          <literal>NIX_BUILD_CORES</literal> when
+          <literal>enableParallelBuilding</literal> is not set
+          explicitly. Packages can restore the old behaviour by setting
+          <literal>enableParallelBuilding=false</literal>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <literal>pkgs.claws-mail-gtk2</literal>, representing Claws
+          Mail’s older release version three, was removed in order to
+          get rid of Python 2. Please switch to
+          <literal>claws-mail</literal>, which is Claws Mail’s latest
+          release based on GTK+3 and Python 3.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          The <literal>writers.writePython2</literal> and corresponding
+          <literal>writers.writePython2Bin</literal> convenience
+          functions to create executable Python 2 scripts in the store
+          were removed in preparation of removal of the Python 2
+          interpreter. Scripts have to be converted to Python 3 for use
+          with <literal>writers.writePython3</literal> or
+          <literal>writers.writePyPy2</literal> needs to be used.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          If you previously used
+          <literal>/etc/docker/daemon.json</literal>, you need to
+          incorporate the changes into the new option
+          <literal>virtualisation.docker.daemon.settings</literal>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          The <literal>autorestic</literal> package has been upgraded
+          from 1.3.0 to 1.5.0 which introduces breaking changes in
+          config file, check
+          <link xlink:href="https://autorestic.vercel.app/migration/1.4_1.5">their
+          migration guide</link> for more details.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          For <literal>pkgs.python3.pkgs.ipython</literal>, its direct
+          dependency
+          <literal>pkgs.python3.pkgs.matplotlib-inline</literal> (which
+          is really an adapter to integrate matplotlib in ipython if it
+          is installed) does not depend on
+          <literal>pkgs.python3.pkgs.matplotlib</literal> anymore. This
+          is closer to a non-Nix install of ipython. This has the added
+          benefit to reduce the closure size of
+          <literal>ipython</literal> from ~400MB to ~160MB (including
+          ~100MB for python itself).
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <literal>documentation.man</literal> has been refactored to
+          support choosing a man implementation other than GNU’s
+          <literal>man-db</literal>. For this,
+          <literal>documentation.man.manualPages</literal> has been
+          renamed to
+          <literal>documentation.man.man-db.manualPages</literal>. If
+          you want to use the new alternative man implementation
+          <literal>mandoc</literal>, add
+          <literal>documentation.man = { enable = true; man-db.enable = false; mandoc.enable = true; }</literal>
+          to your configuration.
+        </para>
+      </listitem>
+    </itemizedlist>
+  </section>
+  <section xml:id="sec-release-22.05-notable-changes">
+    <title>Other Notable Changes</title>
+    <itemizedlist>
+      <listitem>
+        <para>
+          The option
+          <link linkend="opt-services.redis.servers">services.redis.servers</link>
+          was added to support per-application
+          <literal>redis-server</literal> which is more secure since
+          Redis databases are only mere key prefixes without any
+          configuration or ACL of their own. Backward-compatibility is
+          preserved by mapping old
+          <literal>services.redis.settings</literal> to
+          <literal>services.redis.servers.&quot;&quot;.settings</literal>,
+          but you are strongly encouraged to name each
+          <literal>redis-server</literal> instance after the application
+          using it, instead of keeping that nameless one. Except for the
+          nameless
+          <literal>services.redis.servers.&quot;&quot;</literal> still
+          accessible at <literal>127.0.0.1:6379</literal>, and to the
+          members of the Unix group <literal>redis</literal> through the
+          Unix socket <literal>/run/redis/redis.sock</literal>, all
+          other <literal>services.redis.servers.${serverName}</literal>
+          are only accessible by default to the members of the Unix
+          group <literal>redis-${serverName}</literal> through the Unix
+          socket <literal>/run/redis-${serverName}/redis.sock</literal>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          The
+          <literal>writers.writePyPy2</literal>/<literal>writers.writePyPy3</literal>
+          and corresponding
+          <literal>writers.writePyPy2Bin</literal>/<literal>writers.writePyPy3Bin</literal>
+          convenience functions to create executable Python 2/3 scripts
+          using the PyPy interpreter were added.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          The <literal>influxdb2</literal> package was split into
+          <literal>influxdb2-server</literal> and
+          <literal>influxdb2-cli</literal>, matching the split that took
+          place upstream. A combined <literal>influxdb2</literal>
+          package is still provided in this release for backwards
+          compatibilty, but will be removed at a later date.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          The <literal>services.unifi.openPorts</literal> option default
+          value of <literal>true</literal> is now deprecated and will be
+          changed to <literal>false</literal> in 22.11. Configurations
+          using this default will print a warning when rebuilt.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <literal>security.acme</literal> certificates will now
+          correctly check for CA revokation before reaching their
+          minimum age.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          Removing domains from
+          <literal>security.acme.certs._name_.extraDomainNames</literal>
+          will now correctly remove those domains during rebuild/renew.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          The option
+          <link linkend="opt-services.ssh.enableAskPassword">services.ssh.enableAskPassword</link>
+          was added, decoupling the setting of
+          <literal>SSH_ASKPASS</literal> from
+          <literal>services.xserver.enable</literal>. This allows easy
+          usage in non-X11 environments, e.g. Wayland.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          The <literal>services.stubby</literal> module was converted to
+          a
+          <link xlink:href="https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md">settings-style</link>
+          configuration.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          The option <literal>services.duplicati.dataDir</literal> has
+          been added to allow changing the location of duplicati’s
+          files.
+        </para>
+      </listitem>
+    </itemizedlist>
+  </section>
+</section>
diff --git a/nixos/doc/manual/installation/upgrading.chapter.md b/nixos/doc/manual/installation/upgrading.chapter.md
index b7903b9d3cbb3..faeefc4451dc9 100644
--- a/nixos/doc/manual/installation/upgrading.chapter.md
+++ b/nixos/doc/manual/installation/upgrading.chapter.md
@@ -6,7 +6,7 @@ expressions and associated binaries. The NixOS channels are updated
 automatically from NixOS's Git repository after certain tests have
 passed and all packages have been built. These channels are:
 
--   *Stable channels*, such as [`nixos-21.05`](https://nixos.org/channels/nixos-21.05).
+-   *Stable channels*, such as [`nixos-21.11`](https://nixos.org/channels/nixos-21.11).
     These only get conservative bug fixes and package upgrades. For
     instance, a channel update may cause the Linux kernel on your system
     to be upgraded from 4.19.34 to 4.19.38 (a minor bug fix), but not
@@ -19,7 +19,7 @@ passed and all packages have been built. These channels are:
     radical changes between channel updates. It's not recommended for
     production systems.
 
--   *Small channels*, such as [`nixos-21.05-small`](https://nixos.org/channels/nixos-21.05-small)
+-   *Small channels*, such as [`nixos-21.11-small`](https://nixos.org/channels/nixos-21.11-small)
     or [`nixos-unstable-small`](https://nixos.org/channels/nixos-unstable-small).
     These are identical to the stable and unstable channels described above,
     except that they contain fewer binary packages. This means they get updated
@@ -38,8 +38,8 @@ newest supported stable release.
 
 When you first install NixOS, you're automatically subscribed to the
 NixOS channel that corresponds to your installation source. For
-instance, if you installed from a 21.05 ISO, you will be subscribed to
-the `nixos-21.05` channel. To see which NixOS channel you're subscribed
+instance, if you installed from a 21.11 ISO, you will be subscribed to
+the `nixos-21.11` channel. To see which NixOS channel you're subscribed
 to, run the following as root:
 
 ```ShellSession
@@ -54,16 +54,16 @@ To switch to a different NixOS channel, do
 ```
 
 (Be sure to include the `nixos` parameter at the end.) For instance, to
-use the NixOS 21.05 stable channel:
+use the NixOS 21.11 stable channel:
 
 ```ShellSession
-# nix-channel --add https://nixos.org/channels/nixos-21.05 nixos
+# nix-channel --add https://nixos.org/channels/nixos-21.11 nixos
 ```
 
 If you have a server, you may want to use the "small" channel instead:
 
 ```ShellSession
-# nix-channel --add https://nixos.org/channels/nixos-21.05-small nixos
+# nix-channel --add https://nixos.org/channels/nixos-21.11-small nixos
 ```
 
 And if you want to live on the bleeding edge:
@@ -114,5 +114,5 @@ the new generation contains a different kernel, initrd or kernel
 modules. You can also specify a channel explicitly, e.g.
 
 ```nix
-system.autoUpgrade.channel = https://nixos.org/channels/nixos-21.05;
+system.autoUpgrade.channel = https://nixos.org/channels/nixos-21.11;
 ```
diff --git a/nixos/doc/manual/man-nixos-install.xml b/nixos/doc/manual/man-nixos-install.xml
index 91542d37cbd55..eb6680b65677e 100644
--- a/nixos/doc/manual/man-nixos-install.xml
+++ b/nixos/doc/manual/man-nixos-install.xml
@@ -69,9 +69,14 @@
    </arg>
 
    <arg>
-    <arg choice='plain'>
-     <option>--no-root-passwd</option>
-    </arg>
+    <group choice='req'>
+     <arg choice='plain'>
+      <option>--no-root-password</option>
+     </arg>
+     <arg choice='plain'>
+      <option>--no-root-passwd</option>
+     </arg>
+    </group>
    </arg>
 
    <arg>
@@ -157,7 +162,7 @@
     <listitem>
      <para>
       It prompts you for a password for the root account (unless
-      <option>--no-root-passwd</option> is specified).
+      <option>--no-root-password</option> is specified).
      </para>
     </listitem>
    </itemizedlist>
diff --git a/nixos/doc/manual/man-nixos-rebuild.xml b/nixos/doc/manual/man-nixos-rebuild.xml
index 0e0ea5d74b0b5..6c7fc57f8d83c 100644
--- a/nixos/doc/manual/man-nixos-rebuild.xml
+++ b/nixos/doc/manual/man-nixos-rebuild.xml
@@ -535,12 +535,8 @@
      </para>
 
      <para>
-      If <option>--build-host</option> is not explicitly specified,
-      <option>--build-host</option> will implicitly be set to the same value as
-      <option>--target-host</option>. So, if you only specify
-      <option>--target-host</option> both building and activation will take
-      place remotely (and no build artifacts will be copied to the local
-      machine).
+      If <option>--build-host</option> is not explicitly specified, building
+      will take place locally.
      </para>
 
      <para>
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md
index 275ee7142d0ec..2520d176096aa 100644
--- a/nixos/doc/manual/release-notes/rl-2111.section.md
+++ b/nixos/doc/manual/release-notes/rl-2111.section.md
@@ -1,18 +1,18 @@
-# Release 21.11 (“Porcupine”, 2021.11/??) {#sec-release-21.11}
-
-In addition to numerous new and upgraded packages, this release has the following highlights:
+# Release 21.11 (“Porcupine”, 2021/11/30) {#sec-release-21.11}
 
 - Support is planned until the end of June 2022, handing over to 22.05.
 
 ## Highlights {#sec-release-21.11-highlights}
 
+In addition to numerous new and upgraded packages, this release has the following highlights:
+
 - Nix has been updated to version 2.4, reference its [release notes](https://discourse.nixos.org/t/nix-2-4-released/15822) for more information on what has changed. The previous version of Nix, 2.3.16, remains available for the time being in the `nix_2_3` package.
 
 - `iptables` now uses `nf_tables` backend.
 
 - PHP now defaults to PHP 8.0, updated from 7.4.
 
-- kOps now defaults to 1.21.1, which uses containerd as the default runtime.
+- kops now defaults to 1.21.1, which uses containerd as the default runtime.
 
 - `python3` now defaults to Python 3.9, updated from Python 3.8.
 
@@ -25,7 +25,7 @@ In addition to numerous new and upgraded packages, this release has the followin
   - Hadoop now defaults to Hadoop 3, updated from 2.
   - JournalNode, ZKFS and HTTPFS services have been added.
 
-- Activation scripts can now opt int to be run when running `nixos-rebuild dry-activate` and detect the dry activation by reading `$NIXOS_ACTION`.
+- Activation scripts can now, optionally, be run during a `nixos-rebuild dry-activate` and can detect the dry activation by reading `$NIXOS_ACTION`.
   This allows activation scripts to output what they would change if the activation was really run.
   The users/modules activation script supports this and outputs some of is actions.
 
@@ -50,6 +50,12 @@ In addition to numerous new and upgraded packages, this release has the followin
   - This breaks connections to old SSH daemons as ssh-rsa host keys and ssh-rsa public keys that were signed with SHA-1 are disabled by default now
   - These can be re-enabled, see the [OpenSSH changelog](https://www.openssh.com/txt/release-8.8) for details
 
+- ORY Kratos was updated to version 0.8.0-alpha.3
+  - This release requires you to run SQL migrations. Please, as always, create a backup of your database first!
+  - The SDKs are now generated with tag v0alpha2 to reflect that some signatures have changed in a breaking fashion. Please update your imports from v0alpha1 to v0alpha2.
+  - The SMTPS scheme used in courier config URL with cleartext/StartTLS/TLS SMTP connection types is now only supporting implicit TLS. For StartTLS and cleartext SMTP, please use the SMTP scheme instead.
+  - for more details, see [Release Notes](https://github.com/ory/kratos/releases/tag/v0.8.0-alpha.1).
+
 ## New Services {#sec-release-21.11-new-services}
 
 - [btrbk](https://digint.ch/btrbk/index.html), a backup tool for btrfs subvolumes, taking advantage of btrfs specific capabilities to create atomic snapshots and transfer them incrementally to your backup locations. Available as [services.btrbk](options.html#opt-services.brtbk.instances).
@@ -62,11 +68,13 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - [Jibri](https://github.com/jitsi/jibri), a service for recording or streaming a Jitsi Meet conference. Available as [services.jibri](options.html#opt-services.jibri.enable).
 
-- [Kea](https://www.isc.org/kea/), ISCs 2nd generation DHCP and DDNS server suite. Available at [services.kea](options.html#opt-services.kea).
+- [Kea](https://www.isc.org/kea/), ISCs 2nd generation DHCP and DDNS server suite. Available at [services.kea](options.html#opt-services.kea.dhcp4).
 
-- [owncast](https://owncast.online/), self-hosted video live streaming solution. Available at [services.owncast](options.html#opt-services.owncast).
+- [owncast](https://owncast.online/), self-hosted video live streaming solution. Available at [services.owncast](options.html#opt-services.owncast.enable).
 
-- [PeerTube](https://joinpeertube.org/), developed by Framasoft, is the free and decentralized alternative to video platforms. Available at [services.peertube](options.html#opt-services.peertube).
+- [PeerTube](https://joinpeertube.org/), developed by Framasoft, is the free and decentralized alternative to video platforms. Available at [services.peertube](options.html#opt-services.peertube.enable).
+
+- [maddy](https://maddy.email), a composable all-in-one mail server. Available as [services.maddy](options.html#opt-services.maddy.enable).
 
 - [sourcehut](https://sr.ht), a collection of tools useful for software development. Available as [services.sourcehut](options.html#opt-services.sourcehut.enable).
 
@@ -141,6 +149,8 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - Auto nice daemons [ananicy](https://github.com/Nefelim4ag/Ananicy) and [ananicy-cpp](https://gitlab.com/ananicy-cpp/ananicy-cpp/). Available as [services.ananicy](#opt-services.ananicy.enable).
 
+- [smartctl_exporter](https://github.com/prometheus-community/smartctl_exporter), a Prometheus exporter for [S.M.A.R.T.](https://en.wikipedia.org/wiki/S.M.A.R.T.) data. Available as [services.prometheus.exporters.smartctl](options.html#opt-services.prometheus.exporters.smartctl.enable).
+
 ## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
 
 - The NixOS VM test framework, `pkgs.nixosTest`/`make-test-python.nix`, now requires detaching commands such as `succeed("foo &")` and `succeed("foo | xclip -i")` to close stdout.
@@ -514,8 +524,6 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - `networking.sits` now supports Foo-over-UDP encapsulation.
 
-- Changing systemd `.socket` units now restarts them and stops the service that is activated by them. Additionally, services with `stopOnChange = false` don't break anymore when they are socket-activated.
-
 -  The `virtualisation.libvirtd` module has been refactored and updated with new options:
     - `virtualisation.libvirtd.qemu*` options (e.g.: `virtualisation.libvirtd.qemuRunAsRoot`) were moved to [`virtualisation.libvirtd.qemu`](options.html#opt-virtualisation.libvirtd.qemu) submodule,
     - software TPM1/TPM2 support (e.g.: Windows 11 guests) ([`virtualisation.libvirtd.qemu.swtpm`](options.html#opt-virtualisation.libvirtd.qemu.swtpm)),
@@ -543,3 +551,7 @@ In addition to numerous new and upgraded packages, this release has the followin
 - `julia` now refers to `julia-stable` instead of `julia-lts`. In practice this means it has been upgraded from `1.0.4` to `1.5.4`.
 
 - RetroArch has been upgraded from version `1.8.5` to `1.9.13.2`. Since the previous release was quite old, if you're having issues after the upgrade, please delete your `$XDG_CONFIG_HOME/retroarch/retroarch.cfg` file.
+
+- hydrus has been upgraded from version `438` to `463`. Since upgrading between releases this old is advised against, be sure to have a backup of your data before upgrading. For details, see [the hydrus manual](https://hydrusnetwork.github.io/hydrus/help/getting_started_installing.html#big_updates).
+
+- More jdk and jre versions are now exposed via `java-packages.compiler`.
diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md
new file mode 100644
index 0000000000000..be9b57d1afeaf
--- /dev/null
+++ b/nixos/doc/manual/release-notes/rl-2205.section.md
@@ -0,0 +1,109 @@
+# Release 22.05 (“Quokka”, 2022.05/??) {#sec-release-22.05}
+
+In addition to numerous new and upgraded packages, this release has the following highlights:
+
+- Support is planned until the end of December 2022, handing over to 22.11.
+
+## Highlights {#sec-release-22.05-highlights}
+
+- `security.acme.defaults` has been added to simplify configuring
+  settings for many certificates at once. This also opens up the
+  the option to use DNS-01 validation when using `enableACME` on
+  web server virtual hosts (e.g. `services.nginx.virtualHosts.*.enableACME`).
+
+- PHP 8.1 is now available
+
+## New Services {#sec-release-22.05-new-services}
+
+- [aesmd](https://github.com/intel/linux-sgx#install-the-intelr-sgx-psw), the Intel SGX Architectural Enclave Service Manager. Available as [services.aesmd](#opt-services.aesmd.enable).
+- [rootless Docker](https://docs.docker.com/engine/security/rootless/), a `systemd --user` Docker service which runs without root permissions. Available as [virtualisation.docker.rootless.enable](options.html#opt-virtualisation.docker.rootless.enable).
+
+- [filebeat](https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html), a lightweight shipper for forwarding and centralizing log data. Available as [services.filebeat](#opt-services.filebeat.enable).
+
+- [PowerDNS-Admin](https://github.com/ngoduykhanh/PowerDNS-Admin), a web interface for the PowerDNS server. Available at [services.powerdns-admin](options.html#opt-services.powerdns-admin.enable).
+
+## Backward Incompatibilities {#sec-release-22.05-incompatibilities}
+
+- `pkgs.ghc` now refers to `pkgs.targetPackages.haskellPackages.ghc`.
+  This *only* makes a difference if you are cross-compiling and will
+  ensure that `pkgs.ghc` always runs on the host platform and compiles
+  for the target platform (similar to `pkgs.gcc` for example).
+  `haskellPackages.ghc` still behaves as before, running on the build
+  platform and compiling for the host platform (similar to `stdenv.cc`).
+  This means you don't have to adjust your derivations if you use
+  `haskellPackages.callPackage`, but when using `pkgs.callPackage` and
+  taking `ghc` as an input, you should now use `buildPackages.ghc`
+  instead to ensure cross compilation keeps working (or switch to
+  `haskellPackages.callPackage`).
+
+- `pkgs.emacsPackages.orgPackages` is removed because org elpa is deprecated.
+  The packages in the top level of `pkgs.emacsPackages`, such as org and
+  org-contrib, refer to the ones in `pkgs.emacsPackages.elpaPackages` and
+  `pkgs.emacsPackages.nongnuPackages` where the new versions will release.
+
+- `services.kubernetes.addons.dashboard` was removed due to it being an outdated version.
+
+- The `wafHook` hook now honors `NIX_BUILD_CORES` when `enableParallelBuilding` is not set explicitly. Packages can restore the old behaviour by setting `enableParallelBuilding=false`.
+
+- `pkgs.claws-mail-gtk2`, representing Claws Mail's older release version three, was removed in order to get rid of Python 2.
+  Please switch to `claws-mail`, which is Claws Mail's latest release based on GTK+3 and Python 3.
+
+- The `writers.writePython2` and corresponding `writers.writePython2Bin` convenience functions to create executable Python 2 scripts in the store were removed in preparation of removal of the Python 2 interpreter.
+  Scripts have to be converted to Python 3 for use with `writers.writePython3` or `writers.writePyPy2` needs to be used.
+
+- If you previously used `/etc/docker/daemon.json`, you need to incorporate the changes into the new option `virtualisation.docker.daemon.settings`.
+
+- The `autorestic` package has been upgraded from 1.3.0 to 1.5.0 which introduces breaking changes in config file, check [their migration guide](https://autorestic.vercel.app/migration/1.4_1.5) for more details.
+
+- For `pkgs.python3.pkgs.ipython`, its direct dependency `pkgs.python3.pkgs.matplotlib-inline`
+  (which is really an adapter to integrate matplotlib in ipython if it is installed) does
+  not depend on `pkgs.python3.pkgs.matplotlib` anymore.
+  This is closer to a non-Nix install of ipython.
+  This has the added benefit to reduce the closure size of `ipython` from ~400MB to ~160MB
+  (including ~100MB for python itself).
+
+- `documentation.man` has been refactored to support choosing a man implementation other than GNU's `man-db`. For this, `documentation.man.manualPages` has been renamed to `documentation.man.man-db.manualPages`. If you want to use the new alternative man implementation `mandoc`, add `documentation.man = { enable = true; man-db.enable = false; mandoc.enable = true; }` to your configuration.
+
+## Other Notable Changes {#sec-release-22.05-notable-changes}
+
+- The option [services.redis.servers](#opt-services.redis.servers) was added
+  to support per-application `redis-server` which is more secure since Redis databases
+  are only mere key prefixes without any configuration or ACL of their own.
+  Backward-compatibility is preserved by mapping old `services.redis.settings`
+  to `services.redis.servers."".settings`, but you are strongly encouraged
+  to name each `redis-server` instance after the application using it,
+  instead of keeping that nameless one.
+  Except for the nameless `services.redis.servers.""`
+  still accessible at `127.0.0.1:6379`,
+  and to the members of the Unix group `redis`
+  through the Unix socket `/run/redis/redis.sock`,
+  all other `services.redis.servers.${serverName}`
+  are only accessible by default
+  to the members of the Unix group `redis-${serverName}`
+  through the Unix socket `/run/redis-${serverName}/redis.sock`.
+
+- The `writers.writePyPy2`/`writers.writePyPy3` and corresponding `writers.writePyPy2Bin`/`writers.writePyPy3Bin` convenience functions to create executable Python 2/3 scripts using the PyPy interpreter were added.
+
+- The `influxdb2` package was split into `influxdb2-server` and
+  `influxdb2-cli`, matching the split that took place upstream. A
+  combined `influxdb2` package is still provided in this release for
+  backwards compatibilty, but will be removed at a later date.
+
+- The `services.unifi.openPorts` option default value of `true` is now deprecated and will be changed to `false` in 22.11.
+  Configurations using this default will print a warning when rebuilt.
+
+- `security.acme` certificates will now correctly check for CA
+  revokation before reaching their minimum age.
+
+- Removing domains from `security.acme.certs._name_.extraDomainNames`
+  will now correctly remove those domains during rebuild/renew.
+
+- The option
+  [services.ssh.enableAskPassword](#opt-services.ssh.enableAskPassword) was
+  added, decoupling the setting of `SSH_ASKPASS` from
+  `services.xserver.enable`. This allows easy usage in non-X11 environments,
+  e.g. Wayland.
+
+- The `services.stubby` module was converted to a [settings-style](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) configuration.
+
+- The option `services.duplicati.dataDir` has been added to allow changing the location of duplicati's files.
diff --git a/nixos/lib/eval-config.nix b/nixos/lib/eval-config.nix
index 69e0a2afdba3d..62d09b8173bda 100644
--- a/nixos/lib/eval-config.nix
+++ b/nixos/lib/eval-config.nix
@@ -8,6 +8,7 @@
 # as subcomponents (e.g. the container feature, or nixops if network
 # expressions are ever made modular at the top level) can just use
 # types.submodule instead of using eval-config.nix
+evalConfigArgs@
 { # !!! system can be set modularly, would be nice to remove
   system ? builtins.currentSystem
 , # !!! is this argument needed any more? The pkgs argument can
@@ -28,7 +29,7 @@
                  in if e == "" then [] else [(import e)]
 }:
 
-let extraArgs_ = extraArgs; pkgs_ = pkgs;
+let pkgs_ = pkgs;
 in
 
 let
@@ -51,23 +52,49 @@ let
     };
   };
 
-in rec {
+  withWarnings = x:
+    lib.warnIf (evalConfigArgs?extraArgs) "The extraArgs argument to eval-config.nix is deprecated. Please set config._module.args instead."
+    lib.warnIf (evalConfigArgs?check) "The check argument to eval-config.nix is deprecated. Please set config._module.check instead."
+    x;
 
-  # Merge the option definitions in all modules, forming the full
-  # system configuration.
-  inherit (lib.evalModules {
-    inherit prefix check;
-    modules = baseModules ++ extraModules ++ [ pkgsModule ] ++ modules;
-    args = extraArgs;
+  legacyModules =
+    lib.optional (evalConfigArgs?extraArgs) {
+      config = {
+        _module.args = extraArgs;
+      };
+    }
+    ++ lib.optional (evalConfigArgs?check) {
+      config = {
+        _module.check = lib.mkDefault check;
+      };
+    };
+  allUserModules = modules ++ legacyModules;
+
+  noUserModules = lib.evalModules ({
+    inherit prefix;
+    modules = baseModules ++ extraModules ++ [ pkgsModule modulesModule ];
     specialArgs =
       { modulesPath = builtins.toString ../modules; } // specialArgs;
-  }) config options _module type;
+  });
 
-  # These are the extra arguments passed to every module.  In
-  # particular, Nixpkgs is passed through the "pkgs" argument.
-  extraArgs = extraArgs_ // {
-    inherit baseModules extraModules modules;
+  # Extra arguments that are useful for constructing a similar configuration.
+  modulesModule = {
+    config = {
+      _module.args = {
+        inherit noUserModules baseModules extraModules modules;
+      };
+    };
   };
 
-  inherit (_module.args) pkgs;
+  nixosWithUserModules = noUserModules.extendModules { modules = allUserModules; };
+
+in withWarnings {
+
+  # Merge the option definitions in all modules, forming the full
+  # system configuration.
+  inherit (nixosWithUserModules) config options _module type;
+
+  inherit extraArgs;
+
+  inherit (nixosWithUserModules._module.args) pkgs;
 }
diff --git a/nixos/lib/make-disk-image.nix b/nixos/lib/make-disk-image.nix
index 0a4a71fadc422..15302ae824144 100644
--- a/nixos/lib/make-disk-image.nix
+++ b/nixos/lib/make-disk-image.nix
@@ -281,7 +281,7 @@ let format' = format; in let
       --substituters ""
 
     ${optionalString (additionalPaths' != []) ''
-      nix copy --to $root --no-check-sigs ${concatStringsSep " " additionalPaths'}
+      nix --extra-experimental-features nix-command copy --to $root --no-check-sigs ${concatStringsSep " " additionalPaths'}
     ''}
 
     diskImage=nixos.raw
diff --git a/nixos/lib/make-options-doc/default.nix b/nixos/lib/make-options-doc/default.nix
index e058e70f3888e..44bc25be92384 100644
--- a/nixos/lib/make-options-doc/default.nix
+++ b/nixos/lib/make-options-doc/default.nix
@@ -24,18 +24,25 @@
 }:
 
 let
-  # Replace functions by the string <function>
-  substFunction = x:
-    if builtins.isAttrs x then lib.mapAttrs (name: substFunction) x
-    else if builtins.isList x then map substFunction x
+  # Make a value safe for JSON. Functions are replaced by the string "<function>",
+  # derivations are replaced with an attrset
+  # { _type = "derivation"; name = <name of that derivation>; }.
+  # We need to handle derivations specially because consumers want to know about them,
+  # but we can't easily use the type,name subset of keys (since type is often used as
+  # a module option and might cause confusion). Use _type,name instead to the same
+  # effect, since _type is already used by the module system.
+  substSpecial = x:
+    if lib.isDerivation x then { _type = "derivation"; name = x.name; }
+    else if builtins.isAttrs x then lib.mapAttrs (name: substSpecial) x
+    else if builtins.isList x then map substSpecial x
     else if lib.isFunction x then "<function>"
     else x;
 
-  optionsListDesc = lib.flip map optionsListVisible
+  optionsList = lib.flip map optionsListVisible
    (opt: transformOptions opt
-    // lib.optionalAttrs (opt ? example) { example = substFunction opt.example; }
-    // lib.optionalAttrs (opt ? default) { default = substFunction opt.default; }
-    // lib.optionalAttrs (opt ? type) { type = substFunction opt.type; }
+    // lib.optionalAttrs (opt ? example) { example = substSpecial opt.example; }
+    // lib.optionalAttrs (opt ? default) { default = substSpecial opt.default; }
+    // lib.optionalAttrs (opt ? type) { type = substSpecial opt.type; }
     // lib.optionalAttrs (opt ? relatedPackages && opt.relatedPackages != []) { relatedPackages = genRelatedPackages opt.relatedPackages opt.name; }
    );
 
@@ -69,96 +76,25 @@ let
         + "</listitem>";
     in "<itemizedlist>${lib.concatStringsSep "\n" (map (p: describe (unpack p)) packages)}</itemizedlist>";
 
-  # Custom "less" that pushes up all the things ending in ".enable*"
-  # and ".package*"
-  optionLess = a: b:
-    let
-      ise = lib.hasPrefix "enable";
-      isp = lib.hasPrefix "package";
-      cmp = lib.splitByAndCompare ise lib.compare
-                                 (lib.splitByAndCompare isp lib.compare lib.compare);
-    in lib.compareLists cmp a.loc b.loc < 0;
-
   # Remove invisible and internal options.
   optionsListVisible = lib.filter (opt: opt.visible && !opt.internal) (lib.optionAttrSetToDocList options);
 
-  # Customly sort option list for the man page.
-  # Always ensure that the sort order matches sortXML.py!
-  optionsList = lib.sort optionLess optionsListDesc;
-
-  # Convert the list of options into an XML file.
-  # This file is *not* sorted sorted to save on eval time, since the docbook XML
-  # and the manpage depend on it and thus we evaluate this on every system rebuild.
-  optionsXML = builtins.toFile "options.xml" (builtins.toXML optionsListDesc);
-
   optionsNix = builtins.listToAttrs (map (o: { name = o.name; value = removeAttrs o ["name" "visible" "internal"]; }) optionsList);
 
-  # TODO: declarations: link to github
-  singleAsciiDoc = name: value: ''
-    == ${name}
-
-    ${value.description}
-
-    [discrete]
-    === details
-
-    Type:: ${value.type}
-    ${ if lib.hasAttr "default" value
-       then ''
-        Default::
-        +
-        ----
-        ${builtins.toJSON value.default}
-        ----
-      ''
-      else "No Default:: {blank}"
-    }
-    ${ if value.readOnly
-       then "Read Only:: {blank}"
-      else ""
-    }
-    ${ if lib.hasAttr "example" value
-       then ''
-        Example::
-        +
-        ----
-        ${builtins.toJSON value.example}
-        ----
-      ''
-      else "No Example:: {blank}"
-    }
-  '';
-
-  singleMDDoc = name: value: ''
-    ## ${lib.escape [ "<" ">" ] name}
-    ${value.description}
-
-    ${lib.optionalString (value ? type) ''
-      *_Type_*:
-      ${value.type}
-    ''}
-
-    ${lib.optionalString (value ? default) ''
-      *_Default_*
-      ```
-      ${builtins.toJSON value.default}
-      ```
-    ''}
-
-    ${lib.optionalString (value ? example) ''
-      *_Example_*
-      ```
-      ${builtins.toJSON value.example}
-      ```
-    ''}
-  '';
-
-in {
+in rec {
   inherit optionsNix;
 
-  optionsAsciiDoc = lib.concatStringsSep "\n" (lib.mapAttrsToList singleAsciiDoc optionsNix);
+  optionsAsciiDoc = pkgs.runCommand "options.adoc" {} ''
+    ${pkgs.python3Minimal}/bin/python ${./generateAsciiDoc.py} \
+      < ${optionsJSON}/share/doc/nixos/options.json \
+      > $out
+  '';
 
-  optionsMDDoc = lib.concatStringsSep "\n" (lib.mapAttrsToList singleMDDoc optionsNix);
+  optionsCommonMark = pkgs.runCommand "options.md" {} ''
+    ${pkgs.python3Minimal}/bin/python ${./generateCommonMark.py} \
+      < ${optionsJSON}/share/doc/nixos/options.json \
+      > $out
+  '';
 
   optionsJSON = pkgs.runCommand "options.json"
     { meta.description = "List of NixOS options in JSON format";
@@ -176,7 +112,19 @@ in {
       mkdir -p $out/nix-support
       echo "file json $dst/options.json" >> $out/nix-support/hydra-build-products
       echo "file json-br $dst/options.json.br" >> $out/nix-support/hydra-build-products
-    ''; # */
+    '';
+
+  # Convert options.json into an XML file.
+  # The actual generation of the xml file is done in nix purely for the convenience
+  # of not having to generate the xml some other way
+  optionsXML = pkgs.runCommand "options.xml" {} ''
+    export NIX_STORE_DIR=$TMPDIR/store
+    export NIX_STATE_DIR=$TMPDIR/state
+    ${pkgs.nix}/bin/nix-instantiate \
+      --eval --xml --strict ${./optionsJSONtoXML.nix} \
+      --argstr file ${optionsJSON}/share/doc/nixos/options.json \
+      > "$out"
+  '';
 
   optionsDocBook = pkgs.runCommand "options-docbook.xml" {} ''
     optionsXML=${optionsXML}
diff --git a/nixos/lib/make-options-doc/generateAsciiDoc.py b/nixos/lib/make-options-doc/generateAsciiDoc.py
new file mode 100644
index 0000000000000..48eadd248c5a0
--- /dev/null
+++ b/nixos/lib/make-options-doc/generateAsciiDoc.py
@@ -0,0 +1,37 @@
+import json
+import sys
+
+options = json.load(sys.stdin)
+# TODO: declarations: link to github
+for (name, value) in options.items():
+    print(f'== {name}')
+    print()
+    print(value['description'])
+    print()
+    print('[discrete]')
+    print('=== details')
+    print()
+    print(f'Type:: {value["type"]}')
+    if 'default' in value:
+        print('Default::')
+        print('+')
+        print('----')
+        print(json.dumps(value['default'], ensure_ascii=False, separators=(',', ':')))
+        print('----')
+        print()
+    else:
+        print('No Default:: {blank}')
+    if value['readOnly']:
+        print('Read Only:: {blank}')
+    else:
+        print()
+    if 'example' in value:
+        print('Example::')
+        print('+')
+        print('----')
+        print(json.dumps(value['example'], ensure_ascii=False, separators=(',', ':')))
+        print('----')
+        print()
+    else:
+        print('No Example:: {blank}')
+    print()
diff --git a/nixos/lib/make-options-doc/generateCommonMark.py b/nixos/lib/make-options-doc/generateCommonMark.py
new file mode 100644
index 0000000000000..404e53b0df9c2
--- /dev/null
+++ b/nixos/lib/make-options-doc/generateCommonMark.py
@@ -0,0 +1,27 @@
+import json
+import sys
+
+options = json.load(sys.stdin)
+for (name, value) in options.items():
+    print('##', name.replace('<', '\\<').replace('>', '\\>'))
+    print(value['description'])
+    print()
+    if 'type' in value:
+        print('*_Type_*:')
+        print(value['type'])
+        print()
+    print()
+    if 'default' in value:
+        print('*_Default_*')
+        print('```')
+        print(json.dumps(value['default'], ensure_ascii=False, separators=(',', ':')))
+        print('```')
+    print()
+    print()
+    if 'example' in value:
+        print('*_Example_*')
+        print('```')
+        print(json.dumps(value['example'], ensure_ascii=False, separators=(',', ':')))
+        print('```')
+    print()
+    print()
diff --git a/nixos/lib/make-options-doc/options-to-docbook.xsl b/nixos/lib/make-options-doc/options-to-docbook.xsl
index da4cd164bf206..b286f7b5e2c0a 100644
--- a/nixos/lib/make-options-doc/options-to-docbook.xsl
+++ b/nixos/lib/make-options-doc/options-to-docbook.xsl
@@ -20,7 +20,7 @@
       <title>Configuration Options</title>
       <variablelist xml:id="configuration-variable-list">
         <xsl:for-each select="attrs">
-          <xsl:variable name="id" select="concat('opt-', str:replace(str:replace(str:replace(attr[@name = 'name']/string/@value, '*', '_'), '&lt;', '_'), '>', '_'))" />
+          <xsl:variable name="id" select="concat('opt-', str:replace(str:replace(str:replace(str:replace(attr[@name = 'name']/string/@value, '*', '_'), '&lt;', '_'), '>', '_'), ':', '_'))" />
           <varlistentry>
             <term xlink:href="#{$id}">
               <xsl:attribute name="xml:id"><xsl:value-of select="$id"/></xsl:attribute>
@@ -189,7 +189,7 @@
   </xsl:template>
 
 
-  <xsl:template match="derivation">
+  <xsl:template match="attrs[attr[@name = '_type' and string[@value = 'derivation']]]">
     <replaceable>(build of <xsl:value-of select="attr[@name = 'name']/string/@value" />)</replaceable>
   </xsl:template>
 
diff --git a/nixos/lib/make-options-doc/optionsJSONtoXML.nix b/nixos/lib/make-options-doc/optionsJSONtoXML.nix
new file mode 100644
index 0000000000000..ba50c5f898b5a
--- /dev/null
+++ b/nixos/lib/make-options-doc/optionsJSONtoXML.nix
@@ -0,0 +1,6 @@
+{ file }:
+
+builtins.attrValues
+  (builtins.mapAttrs
+    (name: def: def // { inherit name; })
+    (builtins.fromJSON (builtins.readFile file)))
diff --git a/nixos/lib/make-options-doc/sortXML.py b/nixos/lib/make-options-doc/sortXML.py
index 717820788c944..e63ff3538b3fe 100644
--- a/nixos/lib/make-options-doc/sortXML.py
+++ b/nixos/lib/make-options-doc/sortXML.py
@@ -19,7 +19,6 @@ def sortKey(opt):
         for p in opt.findall('attr[@name="loc"]/list/string')
     ]
 
-# always ensure that the sort order matches the order used in the nix expression!
 options.sort(key=sortKey)
 
 doc = ET.Element("expr")
diff --git a/nixos/lib/make-squashfs.nix b/nixos/lib/make-squashfs.nix
index 8690c42e7ac93..170d315fb7517 100644
--- a/nixos/lib/make-squashfs.nix
+++ b/nixos/lib/make-squashfs.nix
@@ -21,8 +21,15 @@ stdenv.mkDerivation {
       # for nix-store --load-db.
       cp $closureInfo/registration nix-path-registration
 
+      # 64 cores on i686 does not work
+      # fails with FATAL ERROR: mangle2:: xz compress failed with error code 5
+      if ((NIX_BUILD_CORES > 48)); then
+        NIX_BUILD_CORES=48
+      fi
+
       # Generate the squashfs image.
       mksquashfs nix-path-registration $(cat $closureInfo/store-paths) $out \
-        -no-hardlinks -keep-as-directory -all-root -b 1048576 -comp ${comp}
+        -no-hardlinks -keep-as-directory -all-root -b 1048576 -comp ${comp} \
+        -processors $NIX_BUILD_CORES
     '';
 }
diff --git a/nixos/lib/qemu-common.nix b/nixos/lib/qemu-common.nix
index 1a1f7531feb0b..f3af85040bd62 100644
--- a/nixos/lib/qemu-common.nix
+++ b/nixos/lib/qemu-common.nix
@@ -22,7 +22,7 @@ rec {
         else throw "Unknown QEMU serial device for system '${pkgs.stdenv.hostPlatform.system}'";
 
   qemuBinary = qemuPkg: {
-    x86_64-linux = "${qemuPkg}/bin/qemu-kvm -cpu max";
+    x86_64-linux = "${qemuPkg}/bin/qemu-kvm -cpu qemu64";
     armv7l-linux = "${qemuPkg}/bin/qemu-system-arm -enable-kvm -machine virt -cpu host";
     aarch64-linux = "${qemuPkg}/bin/qemu-system-aarch64 -enable-kvm -machine virt,gic-version=host -cpu host";
     powerpc64le-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv";
diff --git a/nixos/modules/system/boot/systemd-lib.nix b/nixos/lib/systemd-lib.nix
index 6c4d27018eed8..6c4d27018eed8 100644
--- a/nixos/modules/system/boot/systemd-lib.nix
+++ b/nixos/lib/systemd-lib.nix
diff --git a/nixos/modules/system/boot/systemd-unit-options.nix b/nixos/lib/systemd-unit-options.nix
index 4154389b2ce5f..01f954a4d3e01 100644
--- a/nixos/modules/system/boot/systemd-unit-options.nix
+++ b/nixos/lib/systemd-unit-options.nix
@@ -1,7 +1,7 @@
-{ config, lib }:
+{ lib, systemdUtils }:
 
+with systemdUtils.lib;
 with lib;
-with import ./systemd-lib.nix { inherit config lib pkgs; };
 
 let
   checkService = checkUnitConfig "Service" [
diff --git a/nixos/lib/test-driver/default.nix b/nixos/lib/test-driver/default.nix
new file mode 100644
index 0000000000000..3f63bc705b902
--- /dev/null
+++ b/nixos/lib/test-driver/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, python3Packages
+, enableOCR ? false
+, qemu_pkg ? qemu_test
+, coreutils
+, imagemagick_light
+, libtiff
+, netpbm
+, qemu_test
+, socat
+, tesseract4
+, vde2
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "nixos-test-driver";
+  version = "1.0";
+  src = ./.;
+
+  propagatedBuildInputs = [ coreutils netpbm python3Packages.colorama python3Packages.ptpython qemu_pkg socat vde2 ]
+    ++ (lib.optionals enableOCR [ imagemagick_light tesseract4 ]);
+
+  doCheck = true;
+  checkInputs = with python3Packages; [ mypy pylint black ];
+  checkPhase = ''
+    mypy --disallow-untyped-defs \
+          --no-implicit-optional \
+          --ignore-missing-imports ${src}/test_driver
+    pylint --errors-only ${src}/test_driver
+    black --check --diff ${src}/test_driver
+  '';
+}
diff --git a/nixos/lib/test-driver/setup.py b/nixos/lib/test-driver/setup.py
new file mode 100644
index 0000000000000..156995472169e
--- /dev/null
+++ b/nixos/lib/test-driver/setup.py
@@ -0,0 +1,13 @@
+from setuptools import setup, find_packages
+
+setup(
+  name="nixos-test-driver",
+  version='1.0',
+  packages=find_packages(),
+  entry_points={
+    "console_scripts": [
+      "nixos-test-driver=test_driver:main",
+      "generate-driver-symbols=test_driver:generate_driver_symbols"
+    ]
+  },
+)
diff --git a/nixos/lib/test-driver/test_driver/__init__.py b/nixos/lib/test-driver/test_driver/__init__.py
new file mode 100755
index 0000000000000..5477ab5cd038e
--- /dev/null
+++ b/nixos/lib/test-driver/test_driver/__init__.py
@@ -0,0 +1,100 @@
+from pathlib import Path
+import argparse
+import ptpython.repl
+import os
+import time
+
+from test_driver.logger import rootlog
+from test_driver.driver import Driver
+
+
+class EnvDefault(argparse.Action):
+    """An argpars Action that takes values from the specified
+    environment variable as the flags default value.
+    """
+
+    def __init__(self, envvar, required=False, default=None, nargs=None, **kwargs):  # type: ignore
+        if not default and envvar:
+            if envvar in os.environ:
+                if nargs is not None and (nargs.isdigit() or nargs in ["*", "+"]):
+                    default = os.environ[envvar].split()
+                else:
+                    default = os.environ[envvar]
+                kwargs["help"] = (
+                    kwargs["help"] + f" (default from environment: {default})"
+                )
+        if required and default:
+            required = False
+        super(EnvDefault, self).__init__(
+            default=default, required=required, nargs=nargs, **kwargs
+        )
+
+    def __call__(self, parser, namespace, values, option_string=None):  # type: ignore
+        setattr(namespace, self.dest, values)
+
+
+def main() -> None:
+    arg_parser = argparse.ArgumentParser(prog="nixos-test-driver")
+    arg_parser.add_argument(
+        "-K",
+        "--keep-vm-state",
+        help="re-use a VM state coming from a previous run",
+        action="store_true",
+    )
+    arg_parser.add_argument(
+        "-I",
+        "--interactive",
+        help="drop into a python repl and run the tests interactively",
+        action="store_true",
+    )
+    arg_parser.add_argument(
+        "--start-scripts",
+        metavar="START-SCRIPT",
+        action=EnvDefault,
+        envvar="startScripts",
+        nargs="*",
+        help="start scripts for participating virtual machines",
+    )
+    arg_parser.add_argument(
+        "--vlans",
+        metavar="VLAN",
+        action=EnvDefault,
+        envvar="vlans",
+        nargs="*",
+        help="vlans to span by the driver",
+    )
+    arg_parser.add_argument(
+        "testscript",
+        action=EnvDefault,
+        envvar="testScript",
+        help="the test script to run",
+        type=Path,
+    )
+
+    args = arg_parser.parse_args()
+
+    if not args.keep_vm_state:
+        rootlog.info("Machine state will be reset. To keep it, pass --keep-vm-state")
+
+    with Driver(
+        args.start_scripts, args.vlans, args.testscript.read_text(), args.keep_vm_state
+    ) as driver:
+        if args.interactive:
+            ptpython.repl.embed(driver.test_symbols(), {})
+        else:
+            tic = time.time()
+            driver.run_tests()
+            toc = time.time()
+            rootlog.info(f"test script finished in {(toc-tic):.2f}s")
+
+
+def generate_driver_symbols() -> None:
+    """
+    This generates a file with symbols of the test-driver code that can be used
+    in user's test scripts. That list is then used by pyflakes to lint those
+    scripts.
+    """
+    d = Driver([], [], "")
+    test_symbols = d.test_symbols()
+    with open("driver-symbols", "w") as fp:
+        fp.write(",".join(test_symbols.keys()))
diff --git a/nixos/lib/test-driver/test_driver/driver.py b/nixos/lib/test-driver/test_driver/driver.py
new file mode 100644
index 0000000000000..f3af98537ad67
--- /dev/null
+++ b/nixos/lib/test-driver/test_driver/driver.py
@@ -0,0 +1,161 @@
+from contextlib import contextmanager
+from pathlib import Path
+from typing import Any, Dict, Iterator, List
+import os
+import tempfile
+
+from test_driver.logger import rootlog
+from test_driver.machine import Machine, NixStartScript, retry
+from test_driver.vlan import VLan
+
+
+class Driver:
+    """A handle to the driver that sets up the environment
+    and runs the tests"""
+
+    tests: str
+    vlans: List[VLan]
+    machines: List[Machine]
+
+    def __init__(
+        self,
+        start_scripts: List[str],
+        vlans: List[int],
+        tests: str,
+        keep_vm_state: bool = False,
+    ):
+        self.tests = tests
+
+        tmp_dir = Path(os.environ.get("TMPDIR", tempfile.gettempdir()))
+        tmp_dir.mkdir(mode=0o700, exist_ok=True)
+
+        with rootlog.nested("start all VLans"):
+            self.vlans = [VLan(nr, tmp_dir) for nr in vlans]
+
+        def cmd(scripts: List[str]) -> Iterator[NixStartScript]:
+            for s in scripts:
+                yield NixStartScript(s)
+
+        self.machines = [
+            Machine(
+                start_command=cmd,
+                keep_vm_state=keep_vm_state,
+                name=cmd.machine_name,
+                tmp_dir=tmp_dir,
+            )
+            for cmd in cmd(start_scripts)
+        ]
+
+    def __enter__(self) -> "Driver":
+        return self
+
+    def __exit__(self, *_: Any) -> None:
+        with rootlog.nested("cleanup"):
+            for machine in self.machines:
+                machine.release()
+
+    def subtest(self, name: str) -> Iterator[None]:
+        """Group logs under a given test name"""
+        with rootlog.nested(name):
+            try:
+                yield
+                return True
+            except Exception as e:
+                rootlog.error(f'Test "{name}" failed with error: "{e}"')
+                raise e
+
+    def test_symbols(self) -> Dict[str, Any]:
+        @contextmanager
+        def subtest(name: str) -> Iterator[None]:
+            return self.subtest(name)
+
+        general_symbols = dict(
+            start_all=self.start_all,
+            test_script=self.test_script,
+            machines=self.machines,
+            vlans=self.vlans,
+            driver=self,
+            log=rootlog,
+            os=os,
+            create_machine=self.create_machine,
+            subtest=subtest,
+            run_tests=self.run_tests,
+            join_all=self.join_all,
+            retry=retry,
+            serial_stdout_off=self.serial_stdout_off,
+            serial_stdout_on=self.serial_stdout_on,
+            Machine=Machine,  # for typing
+        )
+        machine_symbols = {m.name: m for m in self.machines}
+        # If there's exactly one machine, make it available under the name
+        # "machine", even if it's not called that.
+        if len(self.machines) == 1:
+            (machine_symbols["machine"],) = self.machines
+        vlan_symbols = {
+            f"vlan{v.nr}": self.vlans[idx] for idx, v in enumerate(self.vlans)
+        }
+        print(
+            "additionally exposed symbols:\n    "
+            + ", ".join(map(lambda m: m.name, self.machines))
+            + ",\n    "
+            + ", ".join(map(lambda v: f"vlan{v.nr}", self.vlans))
+            + ",\n    "
+            + ", ".join(list(general_symbols.keys()))
+        )
+        return {**general_symbols, **machine_symbols, **vlan_symbols}
+
+    def test_script(self) -> None:
+        """Run the test script"""
+        with rootlog.nested("run the VM test script"):
+            symbols = self.test_symbols()  # call eagerly
+            exec(self.tests, symbols, None)
+
+    def run_tests(self) -> None:
+        """Run the test script (for non-interactive test runs)"""
+        self.test_script()
+        # TODO: Collect coverage data
+        for machine in self.machines:
+            if machine.is_up():
+                machine.execute("sync")
+
+    def start_all(self) -> None:
+        """Start all machines"""
+        with rootlog.nested("start all VMs"):
+            for machine in self.machines:
+                machine.start()
+
+    def join_all(self) -> None:
+        """Wait for all machines to shut down"""
+        with rootlog.nested("wait for all VMs to finish"):
+            for machine in self.machines:
+                machine.wait_for_shutdown()
+
+    def create_machine(self, args: Dict[str, Any]) -> Machine:
+        rootlog.warning(
+            "Using legacy create_machine(), please instantiate the"
+            "Machine class directly, instead"
+        )
+        tmp_dir = Path(os.environ.get("TMPDIR", tempfile.gettempdir()))
+        tmp_dir.mkdir(mode=0o700, exist_ok=True)
+
+        if args.get("startCommand"):
+            start_command: str = args.get("startCommand", "")
+            cmd = NixStartScript(start_command)
+            name = args.get("name", cmd.machine_name)
+        else:
+            cmd = Machine.create_startcommand(args)  # type: ignore
+            name = args.get("name", "machine")
+
+        return Machine(
+            tmp_dir=tmp_dir,
+            start_command=cmd,
+            name=name,
+            keep_vm_state=args.get("keep_vm_state", False),
+            allow_reboot=args.get("allow_reboot", False),
+        )
+
+    def serial_stdout_on(self) -> None:
+        rootlog._print_serial_logs = True
+
+    def serial_stdout_off(self) -> None:
+        rootlog._print_serial_logs = False
diff --git a/nixos/lib/test-driver/test_driver/logger.py b/nixos/lib/test-driver/test_driver/logger.py
new file mode 100644
index 0000000000000..5b3091a5129c3
--- /dev/null
+++ b/nixos/lib/test-driver/test_driver/logger.py
@@ -0,0 +1,101 @@
+from colorama import Style
+from contextlib import contextmanager
+from typing import Any, Dict, Iterator
+from queue import Queue, Empty
+from xml.sax.saxutils import XMLGenerator
+import codecs
+import os
+import sys
+import time
+import unicodedata
+
+
+class Logger:
+    def __init__(self) -> None:
+        self.logfile = os.environ.get("LOGFILE", "/dev/null")
+        self.logfile_handle = codecs.open(self.logfile, "wb")
+        self.xml = XMLGenerator(self.logfile_handle, encoding="utf-8")
+        self.queue: "Queue[Dict[str, str]]" = Queue()
+
+        self.xml.startDocument()
+        self.xml.startElement("logfile", attrs={})
+
+        self._print_serial_logs = True
+
+    @staticmethod
+    def _eprint(*args: object, **kwargs: Any) -> None:
+        print(*args, file=sys.stderr, **kwargs)
+
+    def close(self) -> None:
+        self.xml.endElement("logfile")
+        self.xml.endDocument()
+        self.logfile_handle.close()
+
+    def sanitise(self, message: str) -> str:
+        return "".join(ch for ch in message if unicodedata.category(ch)[0] != "C")
+
+    def maybe_prefix(self, message: str, attributes: Dict[str, str]) -> str:
+        if "machine" in attributes:
+            return "{}: {}".format(attributes["machine"], message)
+        return message
+
+    def log_line(self, message: str, attributes: Dict[str, str]) -> None:
+        self.xml.startElement("line", attributes)
+        self.xml.characters(message)
+        self.xml.endElement("line")
+
+    def info(self, *args, **kwargs) -> None:  # type: ignore
+        self.log(*args, **kwargs)
+
+    def warning(self, *args, **kwargs) -> None:  # type: ignore
+        self.log(*args, **kwargs)
+
+    def error(self, *args, **kwargs) -> None:  # type: ignore
+        self.log(*args, **kwargs)
+        sys.exit(1)
+
+    def log(self, message: str, attributes: Dict[str, str] = {}) -> None:
+        self._eprint(self.maybe_prefix(message, attributes))
+        self.drain_log_queue()
+        self.log_line(message, attributes)
+
+    def log_serial(self, message: str, machine: str) -> None:
+        self.enqueue({"msg": message, "machine": machine, "type": "serial"})
+        if self._print_serial_logs:
+            self._eprint(
+                Style.DIM + "{} # {}".format(machine, message) + Style.RESET_ALL
+            )
+
+    def enqueue(self, item: Dict[str, str]) -> None:
+        self.queue.put(item)
+
+    def drain_log_queue(self) -> None:
+        try:
+            while True:
+                item = self.queue.get_nowait()
+                msg = self.sanitise(item["msg"])
+                del item["msg"]
+                self.log_line(msg, item)
+        except Empty:
+            pass
+
+    @contextmanager
+    def nested(self, message: str, attributes: Dict[str, str] = {}) -> Iterator[None]:
+        self._eprint(self.maybe_prefix(message, attributes))
+
+        self.xml.startElement("nest", attrs={})
+        self.xml.startElement("head", attributes)
+        self.xml.characters(message)
+        self.xml.endElement("head")
+
+        tic = time.time()
+        self.drain_log_queue()
+        yield
+        self.drain_log_queue()
+        toc = time.time()
+        self.log("(finished: {}, in {:.2f} seconds)".format(message, toc - tic))
+
+        self.xml.endElement("nest")
+
+
+rootlog = Logger()
diff --git a/nixos/lib/test-driver/test-driver.py b/nixos/lib/test-driver/test_driver/machine.py
index 643446f313e3a..b3dbe5126fcc6 100755..100644
--- a/nixos/lib/test-driver/test-driver.py
+++ b/nixos/lib/test-driver/test_driver/machine.py
@@ -1,19 +1,11 @@
-#! /somewhere/python3
-from contextlib import contextmanager, _GeneratorContextManager
-from queue import Queue, Empty
-from typing import Tuple, Any, Callable, Dict, Iterator, Optional, List, Iterable
-from xml.sax.saxutils import XMLGenerator
-from colorama import Style
+from contextlib import _GeneratorContextManager
 from pathlib import Path
-import queue
-import io
-import threading
-import argparse
+from queue import Queue
+from typing import Any, Callable, Dict, Iterable, List, Optional, Tuple
 import base64
-import codecs
+import io
 import os
-import ptpython.repl
-import pty
+import queue
 import re
 import shlex
 import shutil
@@ -21,8 +13,10 @@ import socket
 import subprocess
 import sys
 import tempfile
+import threading
 import time
-import unicodedata
+
+from test_driver.logger import rootlog
 
 CHAR_TO_KEY = {
     "A": "shift-a",
@@ -88,115 +82,10 @@ CHAR_TO_KEY = {
 }
 
 
-class Logger:
-    def __init__(self) -> None:
-        self.logfile = os.environ.get("LOGFILE", "/dev/null")
-        self.logfile_handle = codecs.open(self.logfile, "wb")
-        self.xml = XMLGenerator(self.logfile_handle, encoding="utf-8")
-        self.queue: "Queue[Dict[str, str]]" = Queue()
-
-        self.xml.startDocument()
-        self.xml.startElement("logfile", attrs={})
-
-        self._print_serial_logs = True
-
-    @staticmethod
-    def _eprint(*args: object, **kwargs: Any) -> None:
-        print(*args, file=sys.stderr, **kwargs)
-
-    def close(self) -> None:
-        self.xml.endElement("logfile")
-        self.xml.endDocument()
-        self.logfile_handle.close()
-
-    def sanitise(self, message: str) -> str:
-        return "".join(ch for ch in message if unicodedata.category(ch)[0] != "C")
-
-    def maybe_prefix(self, message: str, attributes: Dict[str, str]) -> str:
-        if "machine" in attributes:
-            return "{}: {}".format(attributes["machine"], message)
-        return message
-
-    def log_line(self, message: str, attributes: Dict[str, str]) -> None:
-        self.xml.startElement("line", attributes)
-        self.xml.characters(message)
-        self.xml.endElement("line")
-
-    def info(self, *args, **kwargs) -> None:  # type: ignore
-        self.log(*args, **kwargs)
-
-    def warning(self, *args, **kwargs) -> None:  # type: ignore
-        self.log(*args, **kwargs)
-
-    def error(self, *args, **kwargs) -> None:  # type: ignore
-        self.log(*args, **kwargs)
-        sys.exit(1)
-
-    def log(self, message: str, attributes: Dict[str, str] = {}) -> None:
-        self._eprint(self.maybe_prefix(message, attributes))
-        self.drain_log_queue()
-        self.log_line(message, attributes)
-
-    def log_serial(self, message: str, machine: str) -> None:
-        self.enqueue({"msg": message, "machine": machine, "type": "serial"})
-        if self._print_serial_logs:
-            self._eprint(
-                Style.DIM + "{} # {}".format(machine, message) + Style.RESET_ALL
-            )
-
-    def enqueue(self, item: Dict[str, str]) -> None:
-        self.queue.put(item)
-
-    def drain_log_queue(self) -> None:
-        try:
-            while True:
-                item = self.queue.get_nowait()
-                msg = self.sanitise(item["msg"])
-                del item["msg"]
-                self.log_line(msg, item)
-        except Empty:
-            pass
-
-    @contextmanager
-    def nested(self, message: str, attributes: Dict[str, str] = {}) -> Iterator[None]:
-        self._eprint(self.maybe_prefix(message, attributes))
-
-        self.xml.startElement("nest", attrs={})
-        self.xml.startElement("head", attributes)
-        self.xml.characters(message)
-        self.xml.endElement("head")
-
-        tic = time.time()
-        self.drain_log_queue()
-        yield
-        self.drain_log_queue()
-        toc = time.time()
-        self.log("({:.2f} seconds)".format(toc - tic))
-
-        self.xml.endElement("nest")
-
-
-rootlog = Logger()
-
-
 def make_command(args: list) -> str:
     return " ".join(map(shlex.quote, (map(str, args))))
 
 
-def retry(fn: Callable, timeout: int = 900) -> None:
-    """Call the given function repeatedly, with 1 second intervals,
-    until it returns True or a timeout is reached.
-    """
-
-    for _ in range(timeout):
-        if fn(False):
-            return
-        time.sleep(1)
-
-    if not fn(True):
-        raise Exception(f"action timed out after {timeout} seconds")
-
-
 def _perform_ocr_on_screenshot(
     screenshot_path: str, model_ids: Iterable[int]
 ) -> List[str]:
@@ -228,6 +117,20 @@ def _perform_ocr_on_screenshot(
     return model_results
 
 
+def retry(fn: Callable, timeout: int = 900) -> None:
+    """Call the given function repeatedly, with 1 second intervals,
+    until it returns True or a timeout is reached.
+    """
+
+    for _ in range(timeout):
+        if fn(False):
+            return
+        time.sleep(1)
+
+    if not fn(True):
+        raise Exception(f"action timed out after {timeout} seconds")
+
+
 class StartCommand:
     """The Base Start Command knows how to append the necesary
     runtime qemu options as determined by a particular test driver
@@ -490,23 +393,24 @@ class Machine:
         return rootlog.nested(msg, my_attrs)
 
     def wait_for_monitor_prompt(self) -> str:
-        assert self.monitor is not None
-        answer = ""
-        while True:
-            undecoded_answer = self.monitor.recv(1024)
-            if not undecoded_answer:
-                break
-            answer += undecoded_answer.decode()
-            if answer.endswith("(qemu) "):
-                break
-        return answer
+        with self.nested("waiting for monitor prompt"):
+            assert self.monitor is not None
+            answer = ""
+            while True:
+                undecoded_answer = self.monitor.recv(1024)
+                if not undecoded_answer:
+                    break
+                answer += undecoded_answer.decode()
+                if answer.endswith("(qemu) "):
+                    break
+            return answer
 
     def send_monitor_command(self, command: str) -> str:
-        message = ("{}\n".format(command)).encode()
-        self.log("sending monitor command: {}".format(command))
-        assert self.monitor is not None
-        self.monitor.send(message)
-        return self.wait_for_monitor_prompt()
+        with self.nested("sending monitor command: {}".format(command)):
+            message = ("{}\n".format(command)).encode()
+            assert self.monitor is not None
+            self.monitor.send(message)
+            return self.wait_for_monitor_prompt()
 
     def wait_for_unit(self, unit: str, user: Optional[str] = None) -> None:
         """Wait for a systemd unit to get into "active" state.
@@ -533,7 +437,12 @@ class Machine:
 
             return state == "active"
 
-        retry(check_active)
+        with self.nested(
+            "waiting for unit {}{}".format(
+                unit, f" with user {user}" if user is not None else ""
+            )
+        ):
+            retry(check_active)
 
     def get_unit_info(self, unit: str, user: Optional[str] = None) -> Dict[str, str]:
         status, lines = self.systemctl('--no-pager show "{}"'.format(unit), user)
@@ -597,9 +506,14 @@ class Machine:
                 break
         return "".join(output_buffer)
 
-    def execute(self, command: str, check_return: bool = True) -> Tuple[int, str]:
+    def execute(
+        self, command: str, check_return: bool = True, timeout: Optional[int] = 900
+    ) -> Tuple[int, str]:
         self.connect()
 
+        if timeout is not None:
+            command = "timeout {} sh -c {}".format(timeout, shlex.quote(command))
+
         out_command = f"( set -euo pipefail; {command} ) | (base64 --wrap 0; echo)\n"
         assert self.shell
         self.shell.send(out_command.encode())
@@ -629,12 +543,12 @@ class Machine:
             pass_fds=[self.shell.fileno()],
         )
 
-    def succeed(self, *commands: str) -> str:
+    def succeed(self, *commands: str, timeout: Optional[int] = None) -> str:
         """Execute each command and check that it succeeds."""
         output = ""
         for command in commands:
             with self.nested("must succeed: {}".format(command)):
-                (status, out) = self.execute(command)
+                (status, out) = self.execute(command, timeout=timeout)
                 if status != 0:
                     self.log("output: {}".format(out))
                     raise Exception(
@@ -643,12 +557,12 @@ class Machine:
                 output += out
         return output
 
-    def fail(self, *commands: str) -> str:
+    def fail(self, *commands: str, timeout: Optional[int] = None) -> str:
         """Execute each command and check that it fails."""
         output = ""
         for command in commands:
             with self.nested("must fail: {}".format(command)):
-                (status, out) = self.execute(command)
+                (status, out) = self.execute(command, timeout=timeout)
                 if status == 0:
                     raise Exception(
                         "command `{}` unexpectedly succeeded".format(command)
@@ -664,14 +578,14 @@ class Machine:
 
         def check_success(_: Any) -> bool:
             nonlocal output
-            status, output = self.execute(command)
+            status, output = self.execute(command, timeout=timeout)
             return status == 0
 
         with self.nested("waiting for success: {}".format(command)):
             retry(check_success, timeout)
             return output
 
-    def wait_until_fails(self, command: str) -> str:
+    def wait_until_fails(self, command: str, timeout: int = 900) -> str:
         """Wait until a command returns failure.
         Throws an exception on timeout.
         """
@@ -679,7 +593,7 @@ class Machine:
 
         def check_failure(_: Any) -> bool:
             nonlocal output
-            status, output = self.execute(command)
+            status, output = self.execute(command, timeout=timeout)
             return status != 0
 
         with self.nested("waiting for failure: {}".format(command)):
@@ -752,7 +666,8 @@ class Machine:
             status, _ = self.execute("nc -z localhost {}".format(port))
             return status != 0
 
-        retry(port_is_closed)
+        with self.nested("waiting for TCP port {} to be closed"):
+            retry(port_is_closed)
 
     def start_job(self, jobname: str, user: Optional[str] = None) -> Tuple[int, str]:
         return self.systemctl("start {}".format(jobname), user)
@@ -886,24 +801,25 @@ class Machine:
             retry(screen_matches)
 
     def wait_for_console_text(self, regex: str) -> None:
-        self.log("waiting for {} to appear on console".format(regex))
-        # Buffer the console output, this is needed
-        # to match multiline regexes.
-        console = io.StringIO()
-        while True:
-            try:
-                console.write(self.last_lines.get())
-            except queue.Empty:
-                self.sleep(1)
-                continue
-            console.seek(0)
-            matches = re.search(regex, console.read())
-            if matches is not None:
-                return
+        with self.nested("waiting for {} to appear on console".format(regex)):
+            # Buffer the console output, this is needed
+            # to match multiline regexes.
+            console = io.StringIO()
+            while True:
+                try:
+                    console.write(self.last_lines.get())
+                except queue.Empty:
+                    self.sleep(1)
+                    continue
+                console.seek(0)
+                matches = re.search(regex, console.read())
+                if matches is not None:
+                    return
 
     def send_key(self, key: str) -> None:
         key = CHAR_TO_KEY.get(key, key)
         self.send_monitor_command("sendkey {}".format(key))
+        time.sleep(0.01)
 
     def start(self) -> None:
         if self.booted:
@@ -1014,7 +930,7 @@ class Machine:
                 )
             return any(pattern.search(name) for name in names)
 
-        with self.nested("Waiting for a window to appear"):
+        with self.nested("waiting for a window to appear"):
             retry(window_is_visible)
 
     def sleep(self, secs: int) -> None:
@@ -1053,286 +969,3 @@ class Machine:
         self.shell.close()
         self.monitor.close()
         self.serial_thread.join()
-
-
-class VLan:
-    """This class handles a VLAN that the run-vm scripts identify via its
-    number handles. The network's lifetime equals the object's lifetime.
-    """
-
-    nr: int
-    socket_dir: Path
-
-    process: subprocess.Popen
-    pid: int
-    fd: io.TextIOBase
-
-    def __repr__(self) -> str:
-        return f"<Vlan Nr. {self.nr}>"
-
-    def __init__(self, nr: int, tmp_dir: Path):
-        self.nr = nr
-        self.socket_dir = tmp_dir / f"vde{self.nr}.ctl"
-
-        # TODO: don't side-effect environment here
-        os.environ[f"QEMU_VDE_SOCKET_{self.nr}"] = str(self.socket_dir)
-
-        rootlog.info("start vlan")
-        pty_master, pty_slave = pty.openpty()
-
-        self.process = subprocess.Popen(
-            ["vde_switch", "-s", self.socket_dir, "--dirmode", "0700"],
-            stdin=pty_slave,
-            stdout=subprocess.PIPE,
-            stderr=subprocess.PIPE,
-            shell=False,
-        )
-        self.pid = self.process.pid
-        self.fd = os.fdopen(pty_master, "w")
-        self.fd.write("version\n")
-
-        # TODO: perl version checks if this can be read from
-        # an if not, dies. we could hang here forever. Fix it.
-        assert self.process.stdout is not None
-        self.process.stdout.readline()
-        if not (self.socket_dir / "ctl").exists():
-            rootlog.error("cannot start vde_switch")
-
-        rootlog.info(f"running vlan (pid {self.pid})")
-
-    def __del__(self) -> None:
-        rootlog.info(f"kill vlan (pid {self.pid})")
-        self.fd.close()
-        self.process.terminate()
-
-
-class Driver:
-    """A handle to the driver that sets up the environment
-    and runs the tests"""
-
-    tests: str
-    vlans: List[VLan]
-    machines: List[Machine]
-
-    def __init__(
-        self,
-        start_scripts: List[str],
-        vlans: List[int],
-        tests: str,
-        keep_vm_state: bool = False,
-    ):
-        self.tests = tests
-
-        tmp_dir = Path(os.environ.get("TMPDIR", tempfile.gettempdir()))
-        tmp_dir.mkdir(mode=0o700, exist_ok=True)
-
-        with rootlog.nested("start all VLans"):
-            self.vlans = [VLan(nr, tmp_dir) for nr in vlans]
-
-        def cmd(scripts: List[str]) -> Iterator[NixStartScript]:
-            for s in scripts:
-                yield NixStartScript(s)
-
-        self.machines = [
-            Machine(
-                start_command=cmd,
-                keep_vm_state=keep_vm_state,
-                name=cmd.machine_name,
-                tmp_dir=tmp_dir,
-            )
-            for cmd in cmd(start_scripts)
-        ]
-
-    def __enter__(self) -> "Driver":
-        return self
-
-    def __exit__(self, *_: Any) -> None:
-        with rootlog.nested("cleanup"):
-            for machine in self.machines:
-                machine.release()
-
-    def subtest(self, name: str) -> Iterator[None]:
-        """Group logs under a given test name"""
-        with rootlog.nested(name):
-            try:
-                yield
-                return True
-            except Exception as e:
-                rootlog.error(f'Test "{name}" failed with error: "{e}"')
-                raise e
-
-    def test_symbols(self) -> Dict[str, Any]:
-        @contextmanager
-        def subtest(name: str) -> Iterator[None]:
-            return self.subtest(name)
-
-        general_symbols = dict(
-            start_all=self.start_all,
-            test_script=self.test_script,
-            machines=self.machines,
-            vlans=self.vlans,
-            driver=self,
-            log=rootlog,
-            os=os,
-            create_machine=self.create_machine,
-            subtest=subtest,
-            run_tests=self.run_tests,
-            join_all=self.join_all,
-            retry=retry,
-            serial_stdout_off=self.serial_stdout_off,
-            serial_stdout_on=self.serial_stdout_on,
-            Machine=Machine,  # for typing
-        )
-        machine_symbols = {m.name: m for m in self.machines}
-        # If there's exactly one machine, make it available under the name
-        # "machine", even if it's not called that.
-        if len(self.machines) == 1:
-            (machine_symbols["machine"],) = self.machines
-        vlan_symbols = {
-            f"vlan{v.nr}": self.vlans[idx] for idx, v in enumerate(self.vlans)
-        }
-        print(
-            "additionally exposed symbols:\n    "
-            + ", ".join(map(lambda m: m.name, self.machines))
-            + ",\n    "
-            + ", ".join(map(lambda v: f"vlan{v.nr}", self.vlans))
-            + ",\n    "
-            + ", ".join(list(general_symbols.keys()))
-        )
-        return {**general_symbols, **machine_symbols, **vlan_symbols}
-
-    def test_script(self) -> None:
-        """Run the test script"""
-        with rootlog.nested("run the VM test script"):
-            symbols = self.test_symbols()  # call eagerly
-            exec(self.tests, symbols, None)
-
-    def run_tests(self) -> None:
-        """Run the test script (for non-interactive test runs)"""
-        self.test_script()
-        # TODO: Collect coverage data
-        for machine in self.machines:
-            if machine.is_up():
-                machine.execute("sync")
-
-    def start_all(self) -> None:
-        """Start all machines"""
-        with rootlog.nested("start all VMs"):
-            for machine in self.machines:
-                machine.start()
-
-    def join_all(self) -> None:
-        """Wait for all machines to shut down"""
-        with rootlog.nested("wait for all VMs to finish"):
-            for machine in self.machines:
-                machine.wait_for_shutdown()
-
-    def create_machine(self, args: Dict[str, Any]) -> Machine:
-        rootlog.warning(
-            "Using legacy create_machine(), please instantiate the"
-            "Machine class directly, instead"
-        )
-        tmp_dir = Path(os.environ.get("TMPDIR", tempfile.gettempdir()))
-        tmp_dir.mkdir(mode=0o700, exist_ok=True)
-
-        if args.get("startCommand"):
-            start_command: str = args.get("startCommand", "")
-            cmd = NixStartScript(start_command)
-            name = args.get("name", cmd.machine_name)
-        else:
-            cmd = Machine.create_startcommand(args)  # type: ignore
-            name = args.get("name", "machine")
-
-        return Machine(
-            tmp_dir=tmp_dir,
-            start_command=cmd,
-            name=name,
-            keep_vm_state=args.get("keep_vm_state", False),
-            allow_reboot=args.get("allow_reboot", False),
-        )
-
-    def serial_stdout_on(self) -> None:
-        rootlog._print_serial_logs = True
-
-    def serial_stdout_off(self) -> None:
-        rootlog._print_serial_logs = False
-
-
-class EnvDefault(argparse.Action):
-    """An argpars Action that takes values from the specified
-    environment variable as the flags default value.
-    """
-
-    def __init__(self, envvar, required=False, default=None, nargs=None, **kwargs):  # type: ignore
-        if not default and envvar:
-            if envvar in os.environ:
-                if nargs is not None and (nargs.isdigit() or nargs in ["*", "+"]):
-                    default = os.environ[envvar].split()
-                else:
-                    default = os.environ[envvar]
-                kwargs["help"] = (
-                    kwargs["help"] + f" (default from environment: {default})"
-                )
-        if required and default:
-            required = False
-        super(EnvDefault, self).__init__(
-            default=default, required=required, nargs=nargs, **kwargs
-        )
-
-    def __call__(self, parser, namespace, values, option_string=None):  # type: ignore
-        setattr(namespace, self.dest, values)
-
-
-if __name__ == "__main__":
-    arg_parser = argparse.ArgumentParser(prog="nixos-test-driver")
-    arg_parser.add_argument(
-        "-K",
-        "--keep-vm-state",
-        help="re-use a VM state coming from a previous run",
-        action="store_true",
-    )
-    arg_parser.add_argument(
-        "-I",
-        "--interactive",
-        help="drop into a python repl and run the tests interactively",
-        action="store_true",
-    )
-    arg_parser.add_argument(
-        "--start-scripts",
-        metavar="START-SCRIPT",
-        action=EnvDefault,
-        envvar="startScripts",
-        nargs="*",
-        help="start scripts for participating virtual machines",
-    )
-    arg_parser.add_argument(
-        "--vlans",
-        metavar="VLAN",
-        action=EnvDefault,
-        envvar="vlans",
-        nargs="*",
-        help="vlans to span by the driver",
-    )
-    arg_parser.add_argument(
-        "testscript",
-        action=EnvDefault,
-        envvar="testScript",
-        help="the test script to run",
-        type=Path,
-    )
-
-    args = arg_parser.parse_args()
-
-    if not args.keep_vm_state:
-        rootlog.info("Machine state will be reset. To keep it, pass --keep-vm-state")
-
-    with Driver(
-        args.start_scripts, args.vlans, args.testscript.read_text(), args.keep_vm_state
-    ) as driver:
-        if args.interactive:
-            ptpython.repl.embed(driver.test_symbols(), {})
-        else:
-            tic = time.time()
-            driver.run_tests()
-            toc = time.time()
-            rootlog.info(f"test script finished in {(toc-tic):.2f}s")
diff --git a/nixos/lib/test-driver/test_driver/vlan.py b/nixos/lib/test-driver/test_driver/vlan.py
new file mode 100644
index 0000000000000..e5c8f07b4edf4
--- /dev/null
+++ b/nixos/lib/test-driver/test_driver/vlan.py
@@ -0,0 +1,58 @@
+from pathlib import Path
+import io
+import os
+import pty
+import subprocess
+
+from test_driver.logger import rootlog
+
+
+class VLan:
+    """This class handles a VLAN that the run-vm scripts identify via its
+    number handles. The network's lifetime equals the object's lifetime.
+    """
+
+    nr: int
+    socket_dir: Path
+
+    process: subprocess.Popen
+    pid: int
+    fd: io.TextIOBase
+
+    def __repr__(self) -> str:
+        return f"<Vlan Nr. {self.nr}>"
+
+    def __init__(self, nr: int, tmp_dir: Path):
+        self.nr = nr
+        self.socket_dir = tmp_dir / f"vde{self.nr}.ctl"
+
+        # TODO: don't side-effect environment here
+        os.environ[f"QEMU_VDE_SOCKET_{self.nr}"] = str(self.socket_dir)
+
+        rootlog.info("start vlan")
+        pty_master, pty_slave = pty.openpty()
+
+        self.process = subprocess.Popen(
+            ["vde_switch", "-s", self.socket_dir, "--dirmode", "0700"],
+            stdin=pty_slave,
+            stdout=subprocess.PIPE,
+            stderr=subprocess.PIPE,
+            shell=False,
+        )
+        self.pid = self.process.pid
+        self.fd = os.fdopen(pty_master, "w")
+        self.fd.write("version\n")
+
+        # TODO: perl version checks if this can be read from
+        # an if not, dies. we could hang here forever. Fix it.
+        assert self.process.stdout is not None
+        self.process.stdout.readline()
+        if not (self.socket_dir / "ctl").exists():
+            rootlog.error("cannot start vde_switch")
+
+        rootlog.info(f"running vlan (pid {self.pid})")
+
+    def __del__(self) -> None:
+        rootlog.info(f"kill vlan (pid {self.pid})")
+        self.fd.close()
+        self.process.terminate()
diff --git a/nixos/lib/testing-python.nix b/nixos/lib/testing-python.nix
index 4306d102b2d64..365e22714573e 100644
--- a/nixos/lib/testing-python.nix
+++ b/nixos/lib/testing-python.nix
@@ -16,65 +16,6 @@ rec {
 
   inherit pkgs;
 
-  # Reifies and correctly wraps the python test driver for
-  # the respective qemu version and with or without ocr support
-  pythonTestDriver = {
-      qemu_pkg ? pkgs.qemu_test
-    , enableOCR ? false
-  }:
-    let
-      name = "nixos-test-driver";
-      testDriverScript = ./test-driver/test-driver.py;
-      ocrProg = tesseract4.override { enableLanguages = [ "eng" ]; };
-      imagemagick_tiff = imagemagick_light.override { inherit libtiff; };
-    in stdenv.mkDerivation {
-      inherit name;
-
-      nativeBuildInputs = [ makeWrapper ];
-      buildInputs = [ (python3.withPackages (p: [ p.ptpython p.colorama ])) ];
-      checkInputs = with python3Packages; [ pylint black mypy ];
-
-      dontUnpack = true;
-
-      preferLocalBuild = true;
-
-      buildPhase = ''
-        python <<EOF
-        from pydoc import importfile
-        with open('driver-symbols', 'w') as fp:
-          t = importfile('${testDriverScript}')
-          d = t.Driver([],[],"")
-          test_symbols = d.test_symbols()
-          fp.write(','.join(test_symbols.keys()))
-        EOF
-      '';
-
-      doCheck = true;
-      checkPhase = ''
-        mypy --disallow-untyped-defs \
-             --no-implicit-optional \
-             --ignore-missing-imports ${testDriverScript}
-        pylint --errors-only ${testDriverScript}
-        black --check --diff ${testDriverScript}
-      '';
-
-      installPhase =
-        ''
-          mkdir -p $out/bin
-          cp ${testDriverScript} $out/bin/nixos-test-driver
-          chmod u+x $out/bin/nixos-test-driver
-          # TODO: copy user script part into this file (append)
-
-          wrapProgram $out/bin/nixos-test-driver \
-            --argv0 ${name} \
-            --prefix PATH : "${lib.makeBinPath [ qemu_pkg vde2 netpbm coreutils socat ]}" \
-            ${lib.optionalString enableOCR
-              "--prefix PATH : '${ocrProg}/bin:${imagemagick_tiff}/bin'"} \
-
-          install -m 0644 -vD driver-symbols $out/nix-support/driver-symbols
-        '';
-    };
-
   # Run an automated test suite in the given virtual network.
   runTests = { driver, pos }:
     stdenv.mkDerivation {
@@ -112,8 +53,15 @@ rec {
     , passthru ? {}
   }:
     let
-      # FIXME: get this pkg from the module system
-      testDriver = pythonTestDriver { inherit qemu_pkg enableOCR;};
+      # Reifies and correctly wraps the python test driver for
+      # the respective qemu version and with or without ocr support
+      testDriver = pkgs.callPackage ./test-driver {
+        inherit enableOCR;
+        qemu_pkg = qemu_test;
+        imagemagick_light = imagemagick_light.override { inherit libtiff; };
+        tesseract4 = tesseract4.override { enableLanguages = [ "eng" ]; };
+      };
+
 
       testDriverName =
         let
@@ -178,10 +126,11 @@ rec {
         echo -n "$testScript" > $out/test-script
         ln -s ${testDriver}/bin/nixos-test-driver $out/bin/nixos-test-driver
 
+        ${testDriver}/bin/generate-driver-symbols
         ${lib.optionalString (!skipLint) ''
           PYFLAKES_BUILTINS="$(
             echo -n ${lib.escapeShellArg (lib.concatStringsSep "," nodeHostNames)},
-            < ${lib.escapeShellArg "${testDriver}/nix-support/driver-symbols"}
+            < ${lib.escapeShellArg "driver-symbols"}
           )" ${python3Packages.pyflakes}/bin/pyflakes $out/test-script
         ''}
 
diff --git a/nixos/lib/utils.nix b/nixos/lib/utils.nix
index f1fa9f07a9742..bbebf8ba35a01 100644
--- a/nixos/lib/utils.nix
+++ b/nixos/lib/utils.nix
@@ -1,4 +1,4 @@
-pkgs: with pkgs.lib;
+{ lib, config, pkgs }: with lib;
 
 rec {
 
@@ -165,4 +165,9 @@ rec {
       ${builtins.toJSON set}
       EOF
     '';
+
+  systemdUtils = {
+    lib = import ./systemd-lib.nix { inherit lib config pkgs; };
+    unitOptions = import ./systemd-unit-options.nix { inherit lib systemdUtils; };
+  };
 }
diff --git a/nixos/modules/config/fonts/fontdir.nix b/nixos/modules/config/fonts/fontdir.nix
index db4b6c638ab4d..560918302ca66 100644
--- a/nixos/modules/config/fonts/fontdir.nix
+++ b/nixos/modules/config/fonts/fontdir.nix
@@ -39,6 +39,7 @@ in
       decompressFonts = mkOption {
         type = types.bool;
         default = config.programs.xwayland.enable;
+        defaultText = literalExpression "config.programs.xwayland.enable";
         description = ''
           Whether to decompress fonts in
           <filename>/run/current-system/sw/share/X11/fonts</filename>.
diff --git a/nixos/modules/config/gtk/gtk-icon-cache.nix b/nixos/modules/config/gtk/gtk-icon-cache.nix
index 7441f4de40eb8..ff9aa7c6a0477 100644
--- a/nixos/modules/config/gtk/gtk-icon-cache.nix
+++ b/nixos/modules/config/gtk/gtk-icon-cache.nix
@@ -6,6 +6,7 @@ with lib;
     gtk.iconCache.enable = mkOption {
       type = types.bool;
       default = config.services.xserver.enable;
+      defaultText = literalExpression "config.services.xserver.enable";
       description = ''
         Whether to build icon theme caches for GTK applications.
       '';
diff --git a/nixos/modules/config/i18n.nix b/nixos/modules/config/i18n.nix
index 545d4a3dca61e..5b8d5b214496b 100644
--- a/nixos/modules/config/i18n.nix
+++ b/nixos/modules/config/i18n.nix
@@ -14,6 +14,12 @@ with lib;
           allLocales = any (x: x == "all") config.i18n.supportedLocales;
           locales = config.i18n.supportedLocales;
         };
+        defaultText = literalExpression ''
+          pkgs.buildPackages.glibcLocales.override {
+            allLocales = any (x: x == "all") config.i18n.supportedLocales;
+            locales = config.i18n.supportedLocales;
+          }
+        '';
         example = literalExpression "pkgs.glibcLocales";
         description = ''
           Customized pkg.glibcLocales package.
diff --git a/nixos/modules/config/networking.nix b/nixos/modules/config/networking.nix
index 11307e331200b..133a150df82c3 100644
--- a/nixos/modules/config/networking.nix
+++ b/nixos/modules/config/networking.nix
@@ -1,12 +1,13 @@
 # /etc files related to networking, such as /etc/services.
 
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
 
   cfg = config.networking;
+  opt = options.networking;
 
   localhostMultiple = any (elem "localhost") (attrValues (removeAttrs cfg.hosts [ "127.0.0.1" "::1" ]));
 
@@ -78,6 +79,7 @@ in
       httpProxy = lib.mkOption {
         type = types.nullOr types.str;
         default = cfg.proxy.default;
+        defaultText = literalExpression "config.${opt.proxy.default}";
         description = ''
           This option specifies the http_proxy environment variable.
         '';
@@ -87,6 +89,7 @@ in
       httpsProxy = lib.mkOption {
         type = types.nullOr types.str;
         default = cfg.proxy.default;
+        defaultText = literalExpression "config.${opt.proxy.default}";
         description = ''
           This option specifies the https_proxy environment variable.
         '';
@@ -96,6 +99,7 @@ in
       ftpProxy = lib.mkOption {
         type = types.nullOr types.str;
         default = cfg.proxy.default;
+        defaultText = literalExpression "config.${opt.proxy.default}";
         description = ''
           This option specifies the ftp_proxy environment variable.
         '';
@@ -105,6 +109,7 @@ in
       rsyncProxy = lib.mkOption {
         type = types.nullOr types.str;
         default = cfg.proxy.default;
+        defaultText = literalExpression "config.${opt.proxy.default}";
         description = ''
           This option specifies the rsync_proxy environment variable.
         '';
@@ -114,6 +119,7 @@ in
       allProxy = lib.mkOption {
         type = types.nullOr types.str;
         default = cfg.proxy.default;
+        defaultText = literalExpression "config.${opt.proxy.default}";
         description = ''
           This option specifies the all_proxy environment variable.
         '';
diff --git a/nixos/modules/config/system-path.nix b/nixos/modules/config/system-path.nix
index 6ff4ec2921cf8..875c4c9c44155 100644
--- a/nixos/modules/config/system-path.nix
+++ b/nixos/modules/config/system-path.nix
@@ -41,12 +41,17 @@ let
       pkgs.zstd
     ];
 
-    defaultPackages = map (pkg: setPrio ((pkg.meta.priority or 5) + 3) pkg)
-      [ pkgs.nano
-        pkgs.perl
-        pkgs.rsync
-        pkgs.strace
-      ];
+  defaultPackageNames =
+    [ "nano"
+      "perl"
+      "rsync"
+      "strace"
+    ];
+  defaultPackages =
+    map
+      (n: let pkg = pkgs.${n}; in setPrio ((pkg.meta.priority or 5) + 3) pkg)
+      defaultPackageNames;
+  defaultPackagesText = "[ ${concatMapStringsSep " " (n: "pkgs.${n}") defaultPackageNames } ]";
 
 in
 
@@ -73,6 +78,11 @@ in
       defaultPackages = mkOption {
         type = types.listOf types.package;
         default = defaultPackages;
+        defaultText = literalDocBook ''
+          these packages, with their <literal>meta.priority</literal> numerically increased
+          (thus lowering their installation priority):
+          <programlisting>${defaultPackagesText}</programlisting>
+        '';
         example = [];
         description = ''
           Set of default packages that aren't strictly necessary
diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix
index 629905e609559..a34d281434185 100644
--- a/nixos/modules/config/users-groups.nix
+++ b/nixos/modules/config/users-groups.nix
@@ -558,6 +558,7 @@ in {
       input.gid = ids.gids.input;
       kvm.gid = ids.gids.kvm;
       render.gid = ids.gids.render;
+      sgx.gid = ids.gids.sgx;
       shadow.gid = ids.gids.shadow;
     };
 
diff --git a/nixos/modules/hardware/cpu/intel-sgx.nix b/nixos/modules/hardware/cpu/intel-sgx.nix
new file mode 100644
index 0000000000000..046479400587f
--- /dev/null
+++ b/nixos/modules/hardware/cpu/intel-sgx.nix
@@ -0,0 +1,47 @@
+{ config, lib, ... }:
+with lib;
+let
+  cfg = config.hardware.cpu.intel.sgx.provision;
+  defaultGroup = "sgx_prv";
+in
+{
+  options.hardware.cpu.intel.sgx.provision = {
+    enable = mkEnableOption "access to the Intel SGX provisioning device";
+    user = mkOption {
+      description = "Owner to assign to the SGX provisioning device.";
+      type = types.str;
+      default = "root";
+    };
+    group = mkOption {
+      description = "Group to assign to the SGX provisioning device.";
+      type = types.str;
+      default = defaultGroup;
+    };
+    mode = mkOption {
+      description = "Mode to set for the SGX provisioning device.";
+      type = types.str;
+      default = "0660";
+    };
+  };
+
+  config = mkIf cfg.enable {
+    assertions = [
+      {
+        assertion = hasAttr cfg.user config.users.users;
+        message = "Given user does not exist";
+      }
+      {
+        assertion = (cfg.group == defaultGroup) || (hasAttr cfg.group config.users.groups);
+        message = "Given group does not exist";
+      }
+    ];
+
+    users.groups = optionalAttrs (cfg.group == defaultGroup) {
+      "${cfg.group}" = { };
+    };
+
+    services.udev.extraRules = ''
+      SUBSYSTEM=="misc", KERNEL=="sgx_provision", OWNER="${cfg.user}", GROUP="${cfg.group}", MODE="${cfg.mode}"
+    '';
+  };
+}
diff --git a/nixos/modules/hardware/gpgsmartcards.nix b/nixos/modules/hardware/gpgsmartcards.nix
new file mode 100644
index 0000000000000..6e5fcda6b8519
--- /dev/null
+++ b/nixos/modules/hardware/gpgsmartcards.nix
@@ -0,0 +1,37 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  # gnupg's manual describes how to setup ccid udev rules:
+  #   https://www.gnupg.org/howtos/card-howto/en/ch02s03.html
+  # gnupg folks advised me (https://dev.gnupg.org/T5409) to look at debian's rules:
+  # https://salsa.debian.org/debian/gnupg2/-/blob/debian/main/debian/scdaemon.udev
+
+  # the latest rev of the entire debian gnupg2 repo as of 2021-04-28
+  # the scdaemon.udev file was last commited on 2021-01-05 (7817a03):
+  scdaemonUdevRev = "01898735a015541e3ffb43c7245ac1e612f40836";
+
+  scdaemonRules = pkgs.fetchurl {
+    url = "https://salsa.debian.org/debian/gnupg2/-/raw/${scdaemonUdevRev}/debian/scdaemon.udev";
+    sha256 = "08v0vp6950bz7galvc92zdss89y9vcwbinmbfcdldy8x72w6rqr3";
+  };
+
+  # per debian's udev deb hook (https://man7.org/linux/man-pages/man1/dh_installudev.1.html)
+  destination = "60-scdaemon.rules";
+
+  scdaemonUdevRulesPkg = pkgs.runCommandNoCC "scdaemon-udev-rules" {} ''
+    loc="$out/lib/udev/rules.d/"
+    mkdir -p "''${loc}"
+    cp "${scdaemonRules}" "''${loc}/${destination}"
+  '';
+
+  cfg = config.hardware.gpgSmartcards;
+in {
+  options.hardware.gpgSmartcards = {
+    enable = mkEnableOption "udev rules for gnupg smart cards";
+  };
+
+  config = mkIf cfg.enable {
+    services.udev.packages = [ scdaemonUdevRulesPkg ];
+  };
+}
diff --git a/nixos/modules/hardware/keyboard/zsa.nix b/nixos/modules/hardware/keyboard/zsa.nix
index 5cb09e5af499f..bb69cfa0bf091 100644
--- a/nixos/modules/hardware/keyboard/zsa.nix
+++ b/nixos/modules/hardware/keyboard/zsa.nix
@@ -5,7 +5,6 @@ let
   cfg = config.hardware.keyboard.zsa;
 in
 {
-  # TODO: make group configurable like in https://github.com/NixOS/nixpkgs/blob/0b2b4b8c4e729535a61db56468809c5c2d3d175c/pkgs/tools/security/nitrokey-app/udev-rules.nix ?
   options.hardware.keyboard.zsa = {
     enable = mkOption {
       type = types.bool;
@@ -14,7 +13,6 @@ in
         Enables udev rules for keyboards from ZSA like the ErgoDox EZ, Planck EZ and Moonlander Mark I.
         You need it when you want to flash a new configuration on the keyboard
         or use their live training in the browser.
-        Access to the keyboard is granted to users in the "plugdev" group.
         You may want to install the wally-cli package.
       '';
     };
@@ -22,6 +20,5 @@ in
 
   config = mkIf cfg.enable {
     services.udev.packages = [ pkgs.zsa-udev-rules ];
-    users.groups.plugdev = {};
   };
 }
diff --git a/nixos/modules/hardware/pcmcia.nix b/nixos/modules/hardware/pcmcia.nix
index d7d002ae6c8a7..aef35a28e54da 100644
--- a/nixos/modules/hardware/pcmcia.nix
+++ b/nixos/modules/hardware/pcmcia.nix
@@ -35,6 +35,7 @@ in
 
       config = mkOption {
         default = null;
+        type = types.nullOr types.path;
         description = ''
           Path to the configuration file which maps the memory, IRQs
           and ports used by the PCMCIA hardware.
diff --git a/nixos/modules/hardware/system-76.nix b/nixos/modules/hardware/system-76.nix
index d4896541dbae4..ca40ee0ebb37a 100644
--- a/nixos/modules/hardware/system-76.nix
+++ b/nixos/modules/hardware/system-76.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 let
-  inherit (lib) mkOption mkEnableOption types mkIf mkMerge optional versionOlder;
+  inherit (lib) literalExpression mkOption mkEnableOption types mkIf mkMerge optional versionOlder;
   cfg = config.hardware.system76;
+  opt = options.hardware.system76;
 
   kpkgs = config.boot.kernelPackages;
   modules = [ "system76" "system76-io" ] ++ (optional (versionOlder kpkgs.kernel.version "5.5") "system76-acpi");
@@ -60,6 +61,7 @@ in {
 
       firmware-daemon.enable = mkOption {
         default = cfg.enableAll;
+        defaultText = literalExpression "config.${opt.enableAll}";
         example = true;
         description = "Whether to enable the system76 firmware daemon";
         type = types.bool;
@@ -67,6 +69,7 @@ in {
 
       kernel-modules.enable = mkOption {
         default = cfg.enableAll;
+        defaultText = literalExpression "config.${opt.enableAll}";
         example = true;
         description = "Whether to make the system76 out-of-tree kernel modules available";
         type = types.bool;
@@ -74,6 +77,7 @@ in {
 
       power-daemon.enable = mkOption {
         default = cfg.enableAll;
+        defaultText = literalExpression "config.${opt.enableAll}";
         example = true;
         description = "Whether to enable the system76 power daemon";
         type = types.bool;
diff --git a/nixos/modules/hardware/video/hidpi.nix b/nixos/modules/hardware/video/hidpi.nix
index c480cc481dfc6..ac72b652504ec 100644
--- a/nixos/modules/hardware/video/hidpi.nix
+++ b/nixos/modules/hardware/video/hidpi.nix
@@ -12,6 +12,5 @@ with lib;
     boot.loader.systemd-boot.consoleMode = mkDefault "1";
 
     # TODO Find reasonable defaults X11 & wayland
-    services.xserver.dpi = lib.mkDefault 192;
   };
 }
diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix
index 5b379505608a4..ff4225dc29adb 100644
--- a/nixos/modules/hardware/video/nvidia.nix
+++ b/nixos/modules/hardware/video/nvidia.nix
@@ -179,7 +179,7 @@ in
   in mkIf enabled {
     assertions = [
       {
-        assertion = with config.services.xserver.displayManager; gdm.nvidiaWayland -> cfg.modesetting.enable;
+        assertion = with config.services.xserver.displayManager; (gdm.enable && gdm.nvidiaWayland) -> cfg.modesetting.enable;
         message = "You cannot use wayland with GDM without modesetting enabled for NVIDIA drivers, set `hardware.nvidia.modesetting.enable = true`";
       }
 
diff --git a/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh b/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh
index 2a6c3ab11497f..490ede04e6bb0 100644
--- a/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh
+++ b/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh
@@ -1,4 +1,5 @@
 #! @runtimeShell@ -e
+# shellcheck shell=bash
 
 # Shows the usage of this command to the user
 
@@ -29,12 +30,12 @@ while [ $# -gt 0 ]; do
         nixBuildArgs+=("--option" "$1" "$2"); shift
         ;;
       *)
-        if [ ! -z "$networkExpr" ]; then
+        if [ -n "$networkExpr" ]; then
           echo "Network expression already set!"
           showUsage
           exit 1
         fi
-        networkExpr="$(readlink -f $1)"
+        networkExpr="$(readlink -f "$1")"
         ;;
     esac
 
@@ -49,4 +50,4 @@ fi
 
 # Build a network of VMs
 nix-build '<nixpkgs/nixos/modules/installer/tools/nixos-build-vms/build-vms.nix>' \
-    --argstr networkExpr $networkExpr "${nixBuildArgs[@]}"
+    --argstr networkExpr "$networkExpr" "${nixBuildArgs[@]}"
diff --git a/nixos/modules/installer/tools/nixos-enter.sh b/nixos/modules/installer/tools/nixos-enter.sh
index 00883205e8b5d..6469d9faa0386 100644
--- a/nixos/modules/installer/tools/nixos-enter.sh
+++ b/nixos/modules/installer/tools/nixos-enter.sh
@@ -1,4 +1,5 @@
 #! @runtimeShell@
+# shellcheck shell=bash
 
 set -e
 
diff --git a/nixos/modules/installer/tools/nixos-install.sh b/nixos/modules/installer/tools/nixos-install.sh
index ea9667995e13f..fc4a69aa17d34 100644
--- a/nixos/modules/installer/tools/nixos-install.sh
+++ b/nixos/modules/installer/tools/nixos-install.sh
@@ -1,4 +1,5 @@
 #! @runtimeShell@
+# shellcheck shell=bash
 
 set -e
 shopt -s nullglob
@@ -58,7 +59,7 @@ while [ "$#" -gt 0 ]; do
         --no-channel-copy)
             noChannelCopy=1
             ;;
-        --no-root-passwd)
+        --no-root-password|--no-root-passwd)
             noRootPasswd=1
             ;;
         --no-bootloader)
diff --git a/nixos/modules/installer/tools/nixos-version.sh b/nixos/modules/installer/tools/nixos-version.sh
index f5e3f32b3c632..59a9c572b4184 100644
--- a/nixos/modules/installer/tools/nixos-version.sh
+++ b/nixos/modules/installer/tools/nixos-version.sh
@@ -1,4 +1,5 @@
 #! @runtimeShell@
+# shellcheck shell=bash
 
 case "$1" in
   -h|--help)
diff --git a/nixos/modules/misc/documentation.nix b/nixos/modules/misc/documentation.nix
index c3ded4f1ea340..bb294addccd96 100644
--- a/nixos/modules/misc/documentation.nix
+++ b/nixos/modules/misc/documentation.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, baseModules, extraModules, modules, modulesPath, ... }:
+{ config, lib, pkgs, extendModules, noUserModules, ... }:
 
 with lib;
 
@@ -6,11 +6,8 @@ let
 
   cfg = config.documentation;
 
-  manualModules =
-    baseModules
-    # Modules for which to show options even when not imported
-    ++ [ ../virtualisation/qemu-vm.nix ]
-    ++ optionals cfg.nixos.includeAllModules (extraModules ++ modules);
+  /* Modules for which to show options even when not imported. */
+  extraDocModules = [ ../virtualisation/qemu-vm.nix ];
 
   /* For the purpose of generating docs, evaluate options with each derivation
     in `pkgs` (recursively) replaced by a fake with path "\${pkgs.attribute.path}".
@@ -24,13 +21,10 @@ let
     extraSources = cfg.nixos.extraModuleSources;
     options =
       let
-        scrubbedEval = evalModules {
-          modules = [ { nixpkgs.localSystem = config.nixpkgs.localSystem; } ] ++ manualModules;
-          args = (config._module.args) // { modules = [ ]; };
-          specialArgs = {
-            pkgs = scrubDerivations "pkgs" pkgs;
-            inherit modulesPath;
-          };
+        extendNixOS = if cfg.nixos.includeAllModules then extendModules else noUserModules.extendModules;
+        scrubbedEval = extendNixOS {
+          modules = extraDocModules;
+          specialArgs.pkgs = scrubDerivations "pkgs" pkgs;
         };
         scrubDerivations = namePrefix: pkgSet: mapAttrs
           (name: value:
@@ -109,8 +103,8 @@ in
         type = types.bool;
         default = true;
         description = ''
-          Whether to install manual pages and the <command>man</command> command.
-          This also includes "man" outputs.
+          Whether to install manual pages.
+          This also includes <literal>man</literal> outputs.
         '';
       };
 
@@ -118,27 +112,18 @@ in
         type = types.bool;
         default = false;
         description = ''
-          Whether to generate the manual page index caches using
-          <literal>mandb(8)</literal>. This allows searching for a page or
-          keyword using utilities like <literal>apropos(1)</literal>.
-        '';
-      };
-
-      man.manualPages = mkOption {
-        type = types.path;
-        default = pkgs.buildEnv {
-          name = "man-paths";
-          paths = config.environment.systemPackages;
-          pathsToLink = [ "/share/man" ];
-          extraOutputsToInstall = ["man"];
-          ignoreCollisions = true;
-        };
-        defaultText = literalDocBook "all man pages in <option>config.environment.systemPackages</option>";
-        description = ''
-          The manual pages to generate caches for if <option>generateCaches</option>
-          is enabled. Must be a path to a directory with man pages under
-          <literal>/share/man</literal>; see the source for an example.
-          Advanced users can make this a content-addressed derivation to save a few rebuilds.
+          Whether to generate the manual page index caches.
+          This allows searching for a page or
+          keyword using utilities like
+          <citerefentry>
+            <refentrytitle>apropos</refentrytitle>
+            <manvolnum>1</manvolnum>
+          </citerefentry>
+          and the <literal>-k</literal> option of
+          <citerefentry>
+            <refentrytitle>man</refentrytitle>
+            <manvolnum>1</manvolnum>
+          </citerefentry>.
         '';
       };
 
@@ -222,30 +207,22 @@ in
   };
 
   config = mkIf cfg.enable (mkMerge [
+    {
+      assertions = [
+        {
+          assertion = !(cfg.man.man-db.enable && cfg.man.mandoc.enable);
+          message = ''
+            man-db and mandoc can't be used as the default man page viewer at the same time!
+          '';
+        }
+      ];
+    }
 
+    # The actual implementation for this lives in man-db.nix or mandoc.nix,
+    # depending on which backend is active.
     (mkIf cfg.man.enable {
-      environment.systemPackages = [ pkgs.man-db ];
       environment.pathsToLink = [ "/share/man" ];
       environment.extraOutputsToInstall = [ "man" ] ++ optional cfg.dev.enable "devman";
-      environment.etc."man_db.conf".text =
-        let
-          manualCache = pkgs.runCommandLocal "man-cache" { } ''
-            echo "MANDB_MAP ${cfg.man.manualPages}/share/man $out" > man.conf
-            ${pkgs.man-db}/bin/mandb -C man.conf -psc >/dev/null 2>&1
-          '';
-        in
-        ''
-          # Manual pages paths for NixOS
-          MANPATH_MAP /run/current-system/sw/bin /run/current-system/sw/share/man
-          MANPATH_MAP /run/wrappers/bin          /run/current-system/sw/share/man
-
-          ${optionalString cfg.man.generateCaches ''
-          # Generated manual pages cache for NixOS (immutable)
-          MANDB_MAP /run/current-system/sw/share/man ${manualCache}
-          ''}
-          # Manual pages caches for NixOS
-          MANDB_MAP /run/current-system/sw/share/man /var/cache/man/nixos
-        '';
     })
 
     (mkIf cfg.info.enable {
diff --git a/nixos/modules/misc/extra-arguments.nix b/nixos/modules/misc/extra-arguments.nix
index 8716e3d9fef22..48891b4404986 100644
--- a/nixos/modules/misc/extra-arguments.nix
+++ b/nixos/modules/misc/extra-arguments.nix
@@ -1,7 +1,7 @@
-{ pkgs, ... }:
+{ lib, config, pkgs, ... }:
 
 {
   _module.args = {
-    utils = import ../../lib/utils.nix pkgs;
+    utils = import ../../lib/utils.nix { inherit lib config pkgs; };
   };
 }
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index f392ca52566fb..a9f2031d1e1af 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -351,6 +351,7 @@ in
       hqplayer = 319;
       moonraker = 320;
       distcc = 321;
+      webdav = 322;
 
       # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
 
@@ -638,7 +639,7 @@ in
       qemu-libvirtd = 301;
       kvm = 302; # default udev rules from systemd requires these
       render = 303; # default udev rules from systemd requires these
-      # zeronet = 304; # removed 2019-01-03
+      sgx = 304; # default udev rules from systemd requires these
       lirc = 305;
       lidarr = 306;
       slurm = 307;
@@ -656,6 +657,7 @@ in
       hqplayer = 319;
       moonraker = 320;
       distcc = 321;
+      webdav = 322;
 
       # When adding a gid, make sure it doesn't match an existing
       # uid. Users and groups with the same name should have equal
diff --git a/nixos/modules/misc/locate.nix b/nixos/modules/misc/locate.nix
index 3638bebed931b..5fd82aa963bff 100644
--- a/nixos/modules/misc/locate.nix
+++ b/nixos/modules/misc/locate.nix
@@ -84,12 +84,15 @@ in {
         "bdev"
         "binfmt"
         "binfmt_misc"
+        "ceph"
         "cgroup"
+        "cgroup2"
         "cifs"
         "coda"
         "configfs"
         "cramfs"
         "cpuset"
+        "curlftpfs"
         "debugfs"
         "devfs"
         "devpts"
@@ -101,6 +104,13 @@ in {
         "ftpfs"
         "fuse"
         "fusectl"
+        "fusesmb"
+        "fuse.ceph"
+        "fuse.glusterfs"
+        "fuse.gvfsd-fuse"
+        "fuse.mfs"
+        "fuse.rclone"
+        "fuse.rozofs"
         "fuse.sshfs"
         "gfs"
         "gfs2"
@@ -110,9 +120,15 @@ in {
         "iso9660"
         "jffs2"
         "lustre"
+        "lustre_lite"
         "misc"
+        "mfs"
         "mqueue"
         "ncpfs"
+        "nfs"
+        "NFS"
+        "nfs4"
+        "nfsd"
         "nnpfs"
         "ocfs"
         "ocfs2"
@@ -127,16 +143,14 @@ in {
         "smbfs"
         "sockfs"
         "spufs"
-        "nfs"
-        "NFS"
-        "nfs4"
-        "nfsd"
         "sshfs"
         "subfs"
         "supermount"
         "sysfs"
         "tmpfs"
+        "tracefs"
         "ubifs"
+        "udev"
         "udf"
         "usbfs"
         "vboxsf"
@@ -202,7 +216,7 @@ in {
           PRUNEFS="${lib.concatStringsSep " " cfg.pruneFS}"
           PRUNENAMES="${lib.concatStringsSep " " cfg.pruneNames}"
           PRUNEPATHS="${lib.concatStringsSep " " cfg.prunePaths}"
-          PRUNE_BIND_MOUNTSFR="${lib.boolToString cfg.pruneBindMounts}"
+          PRUNE_BIND_MOUNTS="${if cfg.pruneBindMounts then "yes" else "no"}"
         '';
       };
     };
diff --git a/nixos/modules/misc/man-db.nix b/nixos/modules/misc/man-db.nix
new file mode 100644
index 0000000000000..8bd329bc4e0c3
--- /dev/null
+++ b/nixos/modules/misc/man-db.nix
@@ -0,0 +1,73 @@
+{ config, pkgs, lib, ... }:
+
+let
+  cfg = config.documentation.man.man-db;
+in
+
+{
+  options = {
+    documentation.man.man-db = {
+      enable = lib.mkEnableOption "man-db as the default man page viewer" // {
+        default = config.documentation.man.enable;
+        defaultText = lib.literalExpression "config.documentation.man.enable";
+        example = false;
+      };
+
+      manualPages = lib.mkOption {
+        type = lib.types.path;
+        default = pkgs.buildEnv {
+          name = "man-paths";
+          paths = config.environment.systemPackages;
+          pathsToLink = [ "/share/man" ];
+          extraOutputsToInstall = [ "man" ]
+            ++ lib.optionals config.documentation.dev.enable [ "devman" ];
+          ignoreCollisions = true;
+        };
+        defaultText = lib.literalDocBook "all man pages in <option>config.environment.systemPackages</option>";
+        description = ''
+          The manual pages to generate caches for if <option>documentation.man.generateCaches</option>
+          is enabled. Must be a path to a directory with man pages under
+          <literal>/share/man</literal>; see the source for an example.
+          Advanced users can make this a content-addressed derivation to save a few rebuilds.
+        '';
+      };
+
+      package = lib.mkOption {
+        type = lib.types.package;
+        default = pkgs.man-db;
+        defaultText = lib.literalExpression "pkgs.man-db";
+        description = ''
+          The <literal>man-db</literal> derivation to use. Useful to override
+          configuration options used for the package.
+        '';
+      };
+    };
+  };
+
+  imports = [
+    (lib.mkRenamedOptionModule [ "documentation" "man" "manualPages" ] [ "documentation" "man" "man-db" "manualPages" ])
+  ];
+
+  config = lib.mkIf cfg.enable {
+    environment.systemPackages = [ cfg.package ];
+    environment.etc."man_db.conf".text =
+      let
+        manualCache = pkgs.runCommandLocal "man-cache" { } ''
+          echo "MANDB_MAP ${cfg.manualPages}/share/man $out" > man.conf
+          ${cfg.package}/bin/mandb -C man.conf -psc >/dev/null 2>&1
+        '';
+      in
+      ''
+        # Manual pages paths for NixOS
+        MANPATH_MAP /run/current-system/sw/bin /run/current-system/sw/share/man
+        MANPATH_MAP /run/wrappers/bin          /run/current-system/sw/share/man
+
+        ${lib.optionalString config.documentation.man.generateCaches ''
+        # Generated manual pages cache for NixOS (immutable)
+        MANDB_MAP /run/current-system/sw/share/man ${manualCache}
+        ''}
+        # Manual pages caches for NixOS
+        MANDB_MAP /run/current-system/sw/share/man /var/cache/man/nixos
+      '';
+  };
+}
diff --git a/nixos/modules/misc/mandoc.nix b/nixos/modules/misc/mandoc.nix
new file mode 100644
index 0000000000000..3da60f2f8e65f
--- /dev/null
+++ b/nixos/modules/misc/mandoc.nix
@@ -0,0 +1,61 @@
+{ config, lib, pkgs, ... }:
+
+let
+  makewhatis = "${lib.getBin cfg.package}/bin/makewhatis";
+
+  cfg = config.documentation.man.mandoc;
+
+in {
+  meta.maintainers = [ lib.maintainers.sternenseemann ];
+
+  options = {
+    documentation.man.mandoc = {
+      enable = lib.mkEnableOption "mandoc as the default man page viewer";
+
+      manPath = lib.mkOption {
+        type = with lib.types; listOf str;
+        default = [ "share/man" ];
+        example = lib.literalExpression "[ \"share/man\" \"share/man/fr\" ]";
+        description = ''
+          Change the manpath, i. e. the directories where
+          <citerefentry><refentrytitle>man</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+          looks for section-specific directories of man pages.
+          You only need to change this setting if you want extra man pages
+          (e. g. in non-english languages). All values must be strings that
+          are a valid path from the target prefix (without including it).
+          The first value given takes priority.
+        '';
+      };
+
+      package = lib.mkOption {
+        type = lib.types.package;
+        default = pkgs.mandoc;
+        defaultText = lib.literalExpression "pkgs.mandoc";
+        description = ''
+          The <literal>mandoc</literal> derivation to use. Useful to override
+          configuration options used for the package.
+        '';
+      };
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    environment = {
+      systemPackages = [ cfg.package ];
+
+      # tell mandoc about man pages
+      etc."man.conf".text = lib.concatMapStrings (path: ''
+        manpath /run/current-system/sw/${path}
+      '') cfg.manPath;
+
+      # create mandoc.db for whatis(1), apropos(1) and man(1) -k
+      # TODO(@sternenseemman): fix symlinked directories not getting indexed,
+      # see: https://inbox.vuxu.org/mandoc-tech/20210906171231.GF83680@athene.usta.de/T/#e85f773c1781e3fef85562b2794f9cad7b2909a3c
+      extraSetup = lib.mkIf config.documentation.man.generateCaches ''
+        ${makewhatis} -T utf8 ${
+          lib.concatMapStringsSep " " (path: "\"$out/${path}\"") cfg.manPath
+        }
+      '';
+    };
+  };
+}
diff --git a/nixos/modules/misc/meta.nix b/nixos/modules/misc/meta.nix
index 1410e33342a6b..3dd97cbec235e 100644
--- a/nixos/modules/misc/meta.nix
+++ b/nixos/modules/misc/meta.nix
@@ -37,7 +37,7 @@ in
         type = listOfMaintainers;
         internal = true;
         default = [];
-        example = [ lib.maintainers.all ];
+        example = literalExpression ''[ lib.maintainers.all ]'';
         description = ''
           List of maintainers of each module.  This option should be defined at
           most once per module.
diff --git a/nixos/modules/misc/version.nix b/nixos/modules/misc/version.nix
index 8f246a9278b70..fc0d65d5148eb 100644
--- a/nixos/modules/misc/version.nix
+++ b/nixos/modules/misc/version.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.system.nixos;
+  opt = options.system.nixos;
 in
 
 {
@@ -53,6 +54,7 @@ in
     stateVersion = mkOption {
       type = types.str;
       default = cfg.release;
+      defaultText = literalExpression "config.${opt.release}";
       description = ''
         Every once in a while, a new NixOS release may change
         configuration defaults in a way incompatible with stateful
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 9eca0b8d65f23..6fe6b41c6098e 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -45,11 +45,13 @@
   ./hardware/ckb-next.nix
   ./hardware/cpu/amd-microcode.nix
   ./hardware/cpu/intel-microcode.nix
+  ./hardware/cpu/intel-sgx.nix
   ./hardware/corectrl.nix
   ./hardware/digitalbitbox.nix
   ./hardware/device-tree.nix
   ./hardware/gkraken.nix
   ./hardware/flirc.nix
+  ./hardware/gpgsmartcards.nix
   ./hardware/i2c.nix
   ./hardware/sensor/hddtemp.nix
   ./hardware/sensor/iio.nix
@@ -106,6 +108,8 @@
   ./misc/lib.nix
   ./misc/label.nix
   ./misc/locate.nix
+  ./misc/man-db.nix
+  ./misc/mandoc.nix
   ./misc/meta.nix
   ./misc/nixpkgs.nix
   ./misc/passthru.nix
@@ -294,7 +298,6 @@
   ./services/cluster/hadoop/default.nix
   ./services/cluster/k3s/default.nix
   ./services/cluster/kubernetes/addons/dns.nix
-  ./services/cluster/kubernetes/addons/dashboard.nix
   ./services/cluster/kubernetes/addon-manager.nix
   ./services/cluster/kubernetes/apiserver.nix
   ./services/cluster/kubernetes/controller-manager.nix
@@ -446,6 +449,7 @@
   ./services/hardware/xow.nix
   ./services/logging/SystemdJournal2Gelf.nix
   ./services/logging/awstats.nix
+  ./services/logging/filebeat.nix
   ./services/logging/fluentd.nix
   ./services/logging/graylog.nix
   ./services/logging/heartbeat.nix
@@ -467,6 +471,7 @@
   ./services/mail/dovecot.nix
   ./services/mail/dspam.nix
   ./services/mail/exim.nix
+  ./services/mail/maddy.nix
   ./services/mail/mail.nix
   ./services/mail/mailcatcher.nix
   ./services/mail/mailhog.nix
@@ -685,6 +690,7 @@
   ./services/network-filesystems/diod.nix
   ./services/network-filesystems/u9fs.nix
   ./services/network-filesystems/webdav.nix
+  ./services/network-filesystems/webdav-server-rs.nix
   ./services/network-filesystems/yandex-disk.nix
   ./services/network-filesystems/xtreemfs.nix
   ./services/network-filesystems/ceph.nix
@@ -897,6 +903,7 @@
   ./services/networking/unbound.nix
   ./services/networking/unifi.nix
   ./services/video/unifi-video.nix
+  ./services/video/rtsp-simple-server.nix
   ./services/networking/v2ray.nix
   ./services/networking/vsftpd.nix
   ./services/networking/wasabibackend.nix
@@ -924,6 +931,7 @@
   ./services/search/kibana.nix
   ./services/search/meilisearch.nix
   ./services/search/solr.nix
+  ./services/security/aesmd.nix
   ./services/security/certmgr.nix
   ./services/security/cfssl.nix
   ./services/security/clamav.nix
@@ -1019,6 +1027,7 @@
   ./services/web-apps/plantuml-server.nix
   ./services/web-apps/plausible.nix
   ./services/web-apps/pgpkeyserver-lite.nix
+  ./services/web-apps/powerdns-admin.nix
   ./services/web-apps/matomo.nix
   ./services/web-apps/moinmoin.nix
   ./services/web-apps/openwebrx.nix
@@ -1179,6 +1188,7 @@
   ./virtualisation/oci-containers.nix
   ./virtualisation/cri-o.nix
   ./virtualisation/docker.nix
+  ./virtualisation/docker-rootless.nix
   ./virtualisation/ecs-agent.nix
   ./virtualisation/libvirtd.nix
   ./virtualisation/lxc.nix
@@ -1189,8 +1199,7 @@
   ./virtualisation/kvmgt.nix
   ./virtualisation/openvswitch.nix
   ./virtualisation/parallels-guest.nix
-  ./virtualisation/podman.nix
-  ./virtualisation/podman-network-socket-ghostunnel.nix
+  ./virtualisation/podman/default.nix
   ./virtualisation/qemu-guest-agent.nix
   ./virtualisation/railcar.nix
   ./virtualisation/spice-usb-redirection.nix
diff --git a/nixos/modules/programs/bcc.nix b/nixos/modules/programs/bcc.nix
index d76249bb5cab4..e475c6ceaa6cc 100644
--- a/nixos/modules/programs/bcc.nix
+++ b/nixos/modules/programs/bcc.nix
@@ -1,9 +1,9 @@
-{ config, lib, ... }:
+{ config, pkgs, lib, ... }:
 {
   options.programs.bcc.enable = lib.mkEnableOption "bcc";
 
   config = lib.mkIf config.programs.bcc.enable {
-    environment.systemPackages = [ config.boot.kernelPackages.bcc ];
-    boot.extraModulePackages = [ config.boot.kernelPackages.bcc ];
+    environment.systemPackages = [ pkgs.bcc ];
+    boot.extraModulePackages = [ pkgs.bcc ];
   };
 }
diff --git a/nixos/modules/programs/captive-browser.nix b/nixos/modules/programs/captive-browser.nix
index 0f5d087e8d87e..dc054504ea48c 100644
--- a/nixos/modules/programs/captive-browser.nix
+++ b/nixos/modules/programs/captive-browser.nix
@@ -3,6 +3,18 @@
 with lib;
 let
   cfg = config.programs.captive-browser;
+  browserDefault = chromium: concatStringsSep " " [
+    ''env XDG_CONFIG_HOME="$PREV_CONFIG_HOME"''
+    ''${chromium}/bin/chromium''
+    ''--user-data-dir=''${XDG_DATA_HOME:-$HOME/.local/share}/chromium-captive''
+    ''--proxy-server="socks5://$PROXY"''
+    ''--host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE localhost"''
+    ''--no-first-run''
+    ''--new-window''
+    ''--incognito''
+    ''-no-default-browser-check''
+    ''http://cache.nixos.org/''
+  ];
 in
 {
   ###### interface
@@ -26,18 +38,8 @@ in
       # the options below are the same as in "captive-browser.toml"
       browser = mkOption {
         type = types.str;
-        default = concatStringsSep " " [
-          ''env XDG_CONFIG_HOME="$PREV_CONFIG_HOME"''
-          ''${pkgs.chromium}/bin/chromium''
-          ''--user-data-dir=''${XDG_DATA_HOME:-$HOME/.local/share}/chromium-captive''
-          ''--proxy-server="socks5://$PROXY"''
-          ''--host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE localhost"''
-          ''--no-first-run''
-          ''--new-window''
-          ''--incognito''
-          ''-no-default-browser-check''
-          ''http://cache.nixos.org/''
-        ];
+        default = browserDefault pkgs.chromium;
+        defaultText = literalExpression (browserDefault "\${pkgs.chromium}");
         description = ''
           The shell (/bin/sh) command executed once the proxy starts.
           When browser exits, the proxy exits. An extra env var PROXY is available.
diff --git a/nixos/modules/programs/gnupg.nix b/nixos/modules/programs/gnupg.nix
index 06f49182e4df1..fe5d7bd834b22 100644
--- a/nixos/modules/programs/gnupg.nix
+++ b/nixos/modules/programs/gnupg.nix
@@ -71,6 +71,7 @@ in
       type = types.nullOr (types.enum pkgs.pinentry.flavors);
       example = "gnome3";
       default = defaultPinentryFlavor;
+      defaultText = literalDocBook ''matching the configured desktop environment'';
       description = ''
         Which pinentry interface to use. If not null, the path to the
         pinentry binary will be passed to gpg-agent via commandline and
diff --git a/nixos/modules/programs/qt5ct.nix b/nixos/modules/programs/qt5ct.nix
index 3f2bcf6228369..88e861bf4031a 100644
--- a/nixos/modules/programs/qt5ct.nix
+++ b/nixos/modules/programs/qt5ct.nix
@@ -26,6 +26,6 @@ with lib;
   ###### implementation
   config = mkIf config.programs.qt5ct.enable {
     environment.variables.QT_QPA_PLATFORMTHEME = "qt5ct";
-    environment.systemPackages = with pkgs; [ qt5ct ];
+    environment.systemPackages = with pkgs; [ libsForQt5.qt5ct ];
   };
 }
diff --git a/nixos/modules/programs/ssh.nix b/nixos/modules/programs/ssh.nix
index 5da15b68cf7d7..c680063a47c34 100644
--- a/nixos/modules/programs/ssh.nix
+++ b/nixos/modules/programs/ssh.nix
@@ -33,6 +33,13 @@ in
 
     programs.ssh = {
 
+      enableAskPassword = mkOption {
+        type = types.bool;
+        default = config.services.xserver.enable;
+        defaultText = literalExpression "config.services.xserver.enable";
+        description = "Whether to configure SSH_ASKPASS in the environment.";
+      };
+
       askPassword = mkOption {
         type = types.str;
         default = "${pkgs.x11_ssh_askpass}/libexec/x11-ssh-askpass";
@@ -287,7 +294,7 @@ in
         # Allow ssh-agent to ask for confirmation. This requires the
         # unit to know about the user's $DISPLAY (via ‘systemctl
         # import-environment’).
-        environment.SSH_ASKPASS = optionalString config.services.xserver.enable askPasswordWrapper;
+        environment.SSH_ASKPASS = optionalString cfg.enableAskPassword askPasswordWrapper;
         environment.DISPLAY = "fake"; # required to make ssh-agent start $SSH_ASKPASS
       };
 
@@ -298,7 +305,7 @@ in
         fi
       '';
 
-    environment.variables.SSH_ASKPASS = optionalString config.services.xserver.enable askPassword;
+    environment.variables.SSH_ASKPASS = optionalString cfg.enableAskPassword askPassword;
 
   };
 }
diff --git a/nixos/modules/programs/zsh/zsh-autosuggestions.nix b/nixos/modules/programs/zsh/zsh-autosuggestions.nix
index a8fcfff95e594..fee324cc73264 100644
--- a/nixos/modules/programs/zsh/zsh-autosuggestions.nix
+++ b/nixos/modules/programs/zsh/zsh-autosuggestions.nix
@@ -36,6 +36,13 @@ in
       '';
     };
 
+    async = mkOption {
+      type = types.bool;
+      default = true;
+      description = "Whether to fetch suggestions asynchronously";
+      example = false;
+    };
+
     extraConfig = mkOption {
       type = with types; attrsOf str;
       default = {};
@@ -56,6 +63,7 @@ in
 
       export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="${cfg.highlightStyle}"
       export ZSH_AUTOSUGGEST_STRATEGY=("${cfg.strategy}")
+      ${optionalString (!cfg.async) "unset ZSH_AUTOSUGGEST_USE_ASYNC"}
 
       ${concatStringsSep "\n" (mapAttrsToList (key: value: ''export ${key}="${value}"'') cfg.extraConfig)}
     '';
diff --git a/nixos/modules/programs/zsh/zsh.nix b/nixos/modules/programs/zsh/zsh.nix
index e5c5b08f8d4da..5fe98b6801bbb 100644
--- a/nixos/modules/programs/zsh/zsh.nix
+++ b/nixos/modules/programs/zsh/zsh.nix
@@ -1,6 +1,6 @@
 # This module defines global configuration for the zshell.
 
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
@@ -9,6 +9,7 @@ let
   cfge = config.environment;
 
   cfg = config.programs.zsh;
+  opt = options.programs.zsh;
 
   zshAliases = concatStringsSep "\n" (
     mapAttrsFlatten (k: v: "alias ${k}=${escapeShellArg v}")
@@ -147,6 +148,7 @@ in
 
       enableGlobalCompInit = mkOption {
         default = cfg.enableCompletion;
+        defaultText = literalExpression "config.${opt.enableCompletion}";
         description = ''
           Enable execution of compinit call for all interactive zsh shells.
 
diff --git a/nixos/modules/security/acme.nix b/nixos/modules/security/acme.nix
index cfbc8e91903ef..e244989d64086 100644
--- a/nixos/modules/security/acme.nix
+++ b/nixos/modules/security/acme.nix
@@ -2,6 +2,8 @@
 with lib;
 let
   cfg = config.security.acme;
+  opt = options.security.acme;
+  user = if cfg.useRoot then "root" else "acme";
 
   # Used to calculate timer accuracy for coalescing
   numCerts = length (builtins.attrNames cfg.certs);
@@ -22,7 +24,7 @@ let
   # security.acme.certs.<cert>.group on some of the services.
   commonServiceConfig = {
     Type = "oneshot";
-    User = "acme";
+    User = user;
     Group = mkDefault "acme";
     UMask = 0022;
     StateDirectoryMode = 750;
@@ -77,6 +79,7 @@ let
 
     unitConfig = {
       ConditionPathExists = "!/var/lib/acme/.minica/key.pem";
+      StartLimitIntervalSec = 0;
     };
 
     serviceConfig = commonServiceConfig // {
@@ -99,12 +102,12 @@ let
   # is configurable on a per-cert basis.
   userMigrationService = let
     script = with builtins; ''
-      chown -R acme .lego/accounts
+      chown -R ${user} .lego/accounts
     '' + (concatStringsSep "\n" (mapAttrsToList (cert: data: ''
       for fixpath in ${escapeShellArg cert} .lego/${escapeShellArg cert}; do
         if [ -d "$fixpath" ]; then
           chmod -R u=rwX,g=rX,o= "$fixpath"
-          chown -R acme:${data.group} "$fixpath"
+          chown -R ${user}:${data.group} "$fixpath"
         fi
       done
     '') certConfigs));
@@ -126,7 +129,7 @@ let
   };
 
   certToConfig = cert: data: let
-    acmeServer = if data.server != null then data.server else cfg.server;
+    acmeServer = data.server;
     useDns = data.dnsProvider != null;
     destPath = "/var/lib/acme/${cert}";
     selfsignedDeps = optionals (cfg.preliminarySelfsigned) [ "acme-selfsigned-${cert}.service" ];
@@ -154,6 +157,7 @@ let
       ${toString data.ocspMustStaple} ${data.keyType}
     '';
     certDir = mkHash hashData;
+    # TODO remove domainHash usage entirely. Waiting on go-acme/lego#1532
     domainHash = mkHash "${concatStringsSep " " extraDomains} ${data.domain}";
     accountHash = (mkAccountHash acmeServer data);
     accountDir = accountDirRoot + accountHash;
@@ -162,9 +166,8 @@ let
       [ "--dns" data.dnsProvider ]
       ++ optionals (!data.dnsPropagationCheck) [ "--dns.disable-cp" ]
       ++ optionals (data.dnsResolver != null) [ "--dns.resolvers" data.dnsResolver ]
-    ) else (
-      [ "--http" "--http.webroot" data.webroot ]
-    );
+    ) else if data.listenHTTP != null then [ "--http" "--http.port" data.listenHTTP ]
+    else [ "--http" "--http.webroot" data.webroot ];
 
     commonOpts = [
       "--accept-tos" # Checking the option is covered by the assertions
@@ -209,7 +212,7 @@ let
       description = "Renew ACME Certificate for ${cert}";
       wantedBy = [ "timers.target" ];
       timerConfig = {
-        OnCalendar = cfg.renewInterval;
+        OnCalendar = data.renewInterval;
         Unit = "acme-${cert}.service";
         Persistent = "yes";
 
@@ -235,6 +238,7 @@ let
 
       unitConfig = {
         ConditionPathExists = "!/var/lib/acme/${cert}/key.pem";
+        StartLimitIntervalSec = 0;
       };
 
       serviceConfig = commonServiceConfig // {
@@ -265,7 +269,7 @@ let
         cat key.pem fullchain.pem > full.pem
 
         # Group might change between runs, re-apply it
-        chown 'acme:${data.group}' *
+        chown '${user}:${data.group}' *
 
         # Default permissions make the files unreadable by group + anon
         # Need to be readable by group
@@ -314,13 +318,19 @@ let
           if [ -e renewed ]; then
             rm renewed
             ${data.postRun}
+            ${optionalString (data.reloadServices != [])
+                "systemctl --no-block try-reload-or-restart ${escapeShellArgs data.reloadServices}"
+            }
           fi
         '');
+      } // optionalAttrs (data.listenHTTP != null && toInt (elemAt (splitString ":" data.listenHTTP) 1) < 1024) {
+        CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
       };
 
       # Working directory will be /tmp
       script = ''
-        set -euxo pipefail
+        ${optionalString data.enableDebugLogs "set -x"}
+        set -euo pipefail
 
         # This reimplements the expiration date check, but without querying
         # the acme server first. By doing this offline, we avoid errors
@@ -347,7 +357,7 @@ let
           expiration_s=$[expiration_date - now]
           expiration_days=$[expiration_s / (3600 * 24)]   # rounds down
 
-          [[ $expiration_days -gt ${toString cfg.validMinDays} ]]
+          [[ $expiration_days -gt ${toString data.validMinDays} ]]
         }
 
         ${optionalString (data.webroot != null) ''
@@ -364,37 +374,40 @@ let
 
         echo '${domainHash}' > domainhash.txt
 
-        # Check if we can renew
-        if [ -e 'certificates/${keyName}.key' -a -e 'certificates/${keyName}.crt' -a -n "$(ls -1 accounts)" ]; then
+        # Check if we can renew.
+        # We can only renew if the list of domains has not changed.
+        if cmp -s domainhash.txt certificates/domainhash.txt && [ -e 'certificates/${keyName}.key' -a -e 'certificates/${keyName}.crt' -a -n "$(ls -1 accounts)" ]; then
 
-          # When domains are updated, there's no need to do a full
-          # Lego run, but it's likely renew won't work if days is too low.
-          if [ -e certificates/domainhash.txt ] && cmp -s domainhash.txt certificates/domainhash.txt; then
+          # Even if a cert is not expired, it may be revoked by the CA.
+          # Try to renew, and silently fail if the cert is not expired.
+          # Avoids #85794 and resolves #129838
+          if ! lego ${renewOpts} --days ${toString data.validMinDays}; then
             if is_expiration_skippable out/full.pem; then
-              echo 1>&2 "nixos-acme: skipping renewal because expiration isn't within the coming ${toString cfg.validMinDays} days"
+              echo 1>&2 "nixos-acme: Ignoring failed renewal because expiration isn't within the coming ${toString data.validMinDays} days"
             else
-              echo 1>&2 "nixos-acme: renewing now, because certificate expires within the configured ${toString cfg.validMinDays} days"
-              lego ${renewOpts} --days ${toString cfg.validMinDays}
+              # High number to avoid Systemd reserved codes.
+              exit 11
             fi
-          else
-            echo 1>&2 "certificate domain(s) have changed; will renew now"
-            # Any number > 90 works, but this one is over 9000 ;-)
-            lego ${renewOpts} --days 9001
           fi
 
         # Otherwise do a full run
-        else
-          lego ${runOpts}
+        elif ! lego ${runOpts}; then
+          # Produce a nice error for those doing their first nixos-rebuild with these certs
+          echo Failed to fetch certificates. \
+            This may mean your DNS records are set up incorrectly. \
+            ${optionalString (cfg.preliminarySelfsigned) "Selfsigned certs are in place and dependant services will still start."}
+          # Exit 10 so that users can potentially amend SuccessExitStatus to ignore this error.
+          # High number to avoid Systemd reserved codes.
+          exit 10
         fi
 
         mv domainhash.txt certificates/
 
         # Group might change between runs, re-apply it
-        chown 'acme:${data.group}' certificates/*
+        chown '${user}:${data.group}' certificates/*
 
         # Copy all certs to the "real" certs directory
-        CERT='certificates/${keyName}.crt'
-        if [ -e "$CERT" ] && ! cmp -s "$CERT" out/fullchain.pem; then
+        if ! cmp -s 'certificates/${keyName}.crt' out/fullchain.pem; then
           touch out/renewed
           echo Installing new certificate
           cp -vp 'certificates/${keyName}.crt' out/fullchain.pem
@@ -413,29 +426,45 @@ let
 
   certConfigs = mapAttrs certToConfig cfg.certs;
 
-  certOpts = { name, ... }: {
+  # These options can be specified within
+  # security.acme.defaults or security.acme.certs.<name>
+  inheritableModule = isDefaults: { config, ... }: let
+    defaultAndText = name: default: {
+      # When ! isDefaults then this is the option declaration for the
+      # security.acme.certs.<name> path, which has the extra inheritDefaults
+      # option, which if disabled means that we can't inherit it
+      default = if isDefaults || ! config.inheritDefaults then default else cfg.defaults.${name};
+      # The docs however don't need to depend on inheritDefaults, they should
+      # stay constant. Though notably it wouldn't matter much, because to get
+      # the option information, a submodule with name `<name>` is evaluated
+      # without any definitions.
+      defaultText = if isDefaults then default else literalExpression "config.security.acme.defaults.${name}";
+    };
+  in {
     options = {
-      # user option has been removed
-      user = mkOption {
-        visible = false;
-        default = "_mkRemovedOptionModule";
+      validMinDays = mkOption {
+        type = types.int;
+        inherit (defaultAndText "validMinDays" 30) default defaultText;
+        description = "Minimum remaining validity before renewal in days.";
       };
 
-      # allowKeysForGroup option has been removed
-      allowKeysForGroup = mkOption {
-        visible = false;
-        default = "_mkRemovedOptionModule";
+      renewInterval = mkOption {
+        type = types.str;
+        inherit (defaultAndText "renewInterval" "daily") default defaultText;
+        description = ''
+          Systemd calendar expression when to check for renewal. See
+          <citerefentry><refentrytitle>systemd.time</refentrytitle>
+          <manvolnum>7</manvolnum></citerefentry>.
+        '';
       };
 
-      # extraDomains was replaced with extraDomainNames
-      extraDomains = mkOption {
-        visible = false;
-        default = "_mkMergedOptionModule";
+      enableDebugLogs = mkEnableOption "debug logging for this certificate" // {
+        inherit (defaultAndText "enableDebugLogs" true) default defaultText;
       };
 
       webroot = mkOption {
         type = types.nullOr types.str;
-        default = null;
+        inherit (defaultAndText "webroot" null) default defaultText;
         example = "/var/lib/acme/acme-challenge";
         description = ''
           Where the webroot of the HTTP vhost is located.
@@ -448,7 +477,7 @@ let
 
       server = mkOption {
         type = types.nullOr types.str;
-        default = null;
+        inherit (defaultAndText "server" null) default defaultText;
         description = ''
           ACME Directory Resource URI. Defaults to Let's Encrypt's
           production endpoint,
@@ -456,27 +485,34 @@ let
         '';
       };
 
-      domain = mkOption {
-        type = types.str;
-        default = name;
-        description = "Domain to fetch certificate for (defaults to the entry name).";
-      };
-
       email = mkOption {
-        type = types.nullOr types.str;
-        default = cfg.email;
-        description = "Contact email address for the CA to be able to reach you.";
+        type = types.str;
+        inherit (defaultAndText "email" null) default defaultText;
+        description = ''
+          Email address for account creation and correspondence from the CA.
+          It is recommended to use the same email for all certs to avoid account
+          creation limits.
+        '';
       };
 
       group = mkOption {
         type = types.str;
-        default = "acme";
+        inherit (defaultAndText "group" "acme") default defaultText;
         description = "Group running the ACME client.";
       };
 
+      reloadServices = mkOption {
+        type = types.listOf types.str;
+        inherit (defaultAndText "reloadServices" []) default defaultText;
+        description = ''
+          The list of systemd services to call <code>systemctl try-reload-or-restart</code>
+          on.
+        '';
+      };
+
       postRun = mkOption {
         type = types.lines;
-        default = "";
+        inherit (defaultAndText "postRun" "") default defaultText;
         example = "cp full.pem backup.pem";
         description = ''
           Commands to run after new certificates go live. Note that
@@ -486,30 +522,9 @@ let
         '';
       };
 
-      directory = mkOption {
-        type = types.str;
-        readOnly = true;
-        default = "/var/lib/acme/${name}";
-        description = "Directory where certificate and other state is stored.";
-      };
-
-      extraDomainNames = mkOption {
-        type = types.listOf types.str;
-        default = [];
-        example = literalExpression ''
-          [
-            "example.org"
-            "mydomain.org"
-          ]
-        '';
-        description = ''
-          A list of extra domain names, which are included in the one certificate to be issued.
-        '';
-      };
-
       keyType = mkOption {
         type = types.str;
-        default = "ec256";
+        inherit (defaultAndText "keyType" "ec256") default defaultText;
         description = ''
           Key type to use for private keys.
           For an up to date list of supported values check the --key-type option
@@ -519,7 +534,7 @@ let
 
       dnsProvider = mkOption {
         type = types.nullOr types.str;
-        default = null;
+        inherit (defaultAndText "dnsProvider" null) default defaultText;
         example = "route53";
         description = ''
           DNS Challenge provider. For a list of supported providers, see the "code"
@@ -529,7 +544,7 @@ let
 
       dnsResolver = mkOption {
         type = types.nullOr types.str;
-        default = null;
+        inherit (defaultAndText "dnsResolver" null) default defaultText;
         example = "1.1.1.1:53";
         description = ''
           Set the resolver to use for performing recursive DNS queries. Supported:
@@ -540,6 +555,7 @@ let
 
       credentialsFile = mkOption {
         type = types.path;
+        inherit (defaultAndText "credentialsFile" null) default defaultText;
         description = ''
           Path to an EnvironmentFile for the cert's service containing any required and
           optional environment variables for your selected dnsProvider.
@@ -551,7 +567,7 @@ let
 
       dnsPropagationCheck = mkOption {
         type = types.bool;
-        default = true;
+        inherit (defaultAndText "dnsPropagationCheck" true) default defaultText;
         description = ''
           Toggles lego DNS propagation check, which is used alongside DNS-01
           challenge to ensure the DNS entries required are available.
@@ -560,7 +576,7 @@ let
 
       ocspMustStaple = mkOption {
         type = types.bool;
-        default = false;
+        inherit (defaultAndText "ocspMustStaple" false) default defaultText;
         description = ''
           Turns on the OCSP Must-Staple TLS extension.
           Make sure you know what you're doing! See:
@@ -573,7 +589,7 @@ let
 
       extraLegoFlags = mkOption {
         type = types.listOf types.str;
-        default = [];
+        inherit (defaultAndText "extraLegoFlags" []) default defaultText;
         description = ''
           Additional global flags to pass to all lego commands.
         '';
@@ -581,7 +597,7 @@ let
 
       extraLegoRenewFlags = mkOption {
         type = types.listOf types.str;
-        default = [];
+        inherit (defaultAndText "extraLegoRenewFlags" []) default defaultText;
         description = ''
           Additional flags to pass to lego renew.
         '';
@@ -589,7 +605,7 @@ let
 
       extraLegoRunFlags = mkOption {
         type = types.listOf types.str;
-        default = [];
+        inherit (defaultAndText "extraLegoRunFlags" []) default defaultText;
         description = ''
           Additional flags to pass to lego run.
         '';
@@ -597,43 +613,80 @@ let
     };
   };
 
-in {
+  certOpts = { name, config, ... }: {
+    options = {
+      # user option has been removed
+      user = mkOption {
+        visible = false;
+        default = "_mkRemovedOptionModule";
+      };
 
-  options = {
-    security.acme = {
+      # allowKeysForGroup option has been removed
+      allowKeysForGroup = mkOption {
+        visible = false;
+        default = "_mkRemovedOptionModule";
+      };
 
-      validMinDays = mkOption {
-        type = types.int;
-        default = 30;
-        description = "Minimum remaining validity before renewal in days.";
+      # extraDomains was replaced with extraDomainNames
+      extraDomains = mkOption {
+        visible = false;
+        default = "_mkMergedOptionModule";
       };
 
-      email = mkOption {
-        type = types.nullOr types.str;
-        default = null;
-        description = "Contact email address for the CA to be able to reach you.";
+      directory = mkOption {
+        type = types.str;
+        readOnly = true;
+        default = "/var/lib/acme/${name}";
+        description = "Directory where certificate and other state is stored.";
       };
 
-      renewInterval = mkOption {
+      domain = mkOption {
         type = types.str;
-        default = "daily";
+        default = name;
+        description = "Domain to fetch certificate for (defaults to the entry name).";
+      };
+
+      extraDomainNames = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        example = literalExpression ''
+          [
+            "example.org"
+            "mydomain.org"
+          ]
+        '';
         description = ''
-          Systemd calendar expression when to check for renewal. See
-          <citerefentry><refentrytitle>systemd.time</refentrytitle>
-          <manvolnum>7</manvolnum></citerefentry>.
+          A list of extra domain names, which are included in the one certificate to be issued.
         '';
       };
 
-      server = mkOption {
+      # This setting must be different for each configured certificate, otherwise
+      # two or more renewals may fail to bind to the address. Hence, it is not in
+      # the inheritableOpts.
+      listenHTTP = mkOption {
         type = types.nullOr types.str;
         default = null;
+        example = ":1360";
         description = ''
-          ACME Directory Resource URI. Defaults to Let's Encrypt's
-          production endpoint,
-          <link xlink:href="https://acme-v02.api.letsencrypt.org/directory"/>, if unset.
+          Interface and port to listen on to solve HTTP challenges
+          in the form [INTERFACE]:PORT.
+          If you use a port other than 80, you must proxy port 80 to this port.
         '';
       };
 
+      inheritDefaults = mkOption {
+        default = true;
+        example = true;
+        description = "Whether to inherit values set in `security.acme.defaults` or not.";
+        type = lib.types.bool;
+      };
+    };
+  };
+
+in {
+
+  options = {
+    security.acme = {
       preliminarySelfsigned = mkOption {
         type = types.bool;
         default = true;
@@ -656,9 +709,31 @@ in {
         '';
       };
 
+      useRoot = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to use the root user when generating certs. This is not recommended
+          for security + compatiblity reasons. If a service requires root owned certificates
+          consider following the guide on "Using ACME with services demanding root
+          owned certificates" in the NixOS manual, and only using this as a fallback
+          or for testing.
+        '';
+      };
+
+      defaults = mkOption {
+        type = types.submodule (inheritableModule true);
+        description = ''
+          Default values inheritable by all configured certs. You can
+          use this to define options shared by all your certs. These defaults
+          can also be ignored on a per-cert basis using the
+          `security.acme.certs.''${cert}.inheritDefaults' option.
+        '';
+      };
+
       certs = mkOption {
         default = { };
-        type = with types; attrsOf (submodule certOpts);
+        type = with types; attrsOf (submodule [ (inheritableModule false) certOpts ]);
         description = ''
           Attribute set of certificates to get signed and renewed. Creates
           <literal>acme-''${cert}.{service,timer}</literal> systemd units for
@@ -689,12 +764,16 @@ in {
 
       To use the let's encrypt staging server, use security.acme.server =
       "https://acme-staging-v02.api.letsencrypt.org/directory".
-    ''
-    )
+    '')
     (mkRemovedOptionModule [ "security" "acme" "directory" ] "ACME Directory is now hardcoded to /var/lib/acme and its permisisons are managed by systemd. See https://github.com/NixOS/nixpkgs/issues/53852 for more info.")
     (mkRemovedOptionModule [ "security" "acme" "preDelay" ] "This option has been removed. If you want to make sure that something executes before certificates are provisioned, add a RequiredBy=acme-\${cert}.service to the service you want to execute before the cert renewal")
     (mkRemovedOptionModule [ "security" "acme" "activationDelay" ] "This option has been removed. If you want to make sure that something executes before certificates are provisioned, add a RequiredBy=acme-\${cert}.service to the service you want to execute before the cert renewal")
-    (mkChangedOptionModule [ "security" "acme" "validMin" ] [ "security" "acme" "validMinDays" ] (config: config.security.acme.validMin / (24 * 3600)))
+    (mkChangedOptionModule [ "security" "acme" "validMin" ] [ "security" "acme" "defaults" "validMinDays" ] (config: config.security.acme.validMin / (24 * 3600)))
+    (mkChangedOptionModule [ "security" "acme" "validMinDays" ] [ "security" "acme" "defaults" "validMinDays" ] (config: config.security.acme.validMinDays))
+    (mkChangedOptionModule [ "security" "acme" "renewInterval" ] [ "security" "acme" "defaults" "renewInterval" ] (config: config.security.acme.renewInterval))
+    (mkChangedOptionModule [ "security" "acme" "email" ] [ "security" "acme" "defaults" "email" ] (config: config.security.acme.email))
+    (mkChangedOptionModule [ "security" "acme" "server" ] [ "security" "acme" "defaults" "server" ] (config: config.security.acme.server))
+    (mkChangedOptionModule [ "security" "acme" "enableDebugLogs" ] [ "security" "acme" "defaults" "enableDebugLogs" ] (config: config.security.acme.enableDebugLogs))
   ];
 
   config = mkMerge [
@@ -764,6 +843,28 @@ in {
             `security.acme.certs.${cert}.webroot` are mutually exclusive.
           '';
         }
+        {
+          assertion = data.webroot == null || data.listenHTTP == null;
+          message = ''
+            Options `security.acme.certs.${cert}.webroot` and
+            `security.acme.certs.${cert}.listenHTTP` are mutually exclusive.
+          '';
+        }
+        {
+          assertion = data.listenHTTP == null || data.dnsProvider == null;
+          message = ''
+            Options `security.acme.certs.${cert}.listenHTTP` and
+            `security.acme.certs.${cert}.dnsProvider` are mutually exclusive.
+          '';
+        }
+        {
+          assertion = data.dnsProvider != null || data.webroot != null || data.listenHTTP != null;
+          message = ''
+            One of `security.acme.certs.${cert}.dnsProvider`,
+            `security.acme.certs.${cert}.webroot`, or
+            `security.acme.certs.${cert}.listenHTTP` must be provided.
+          '';
+        }
       ]) cfg.certs));
 
       users.users.acme = {
@@ -787,8 +888,8 @@ in {
         # Create some targets which can be depended on to be "active" after cert renewals
         finishedTargets = mapAttrs' (cert: conf: nameValuePair "acme-finished-${cert}" {
           wantedBy = [ "default.target" ];
-          requires = [ "acme-${cert}.service" ] ++ conf.selfsignedDeps;
-          after = [ "acme-${cert}.service" ] ++ conf.selfsignedDeps;
+          requires = [ "acme-${cert}.service" ];
+          after = [ "acme-${cert}.service" ];
         }) certConfigs;
 
         # Create targets to limit the number of simultaneous account creations
diff --git a/nixos/modules/security/acme.xml b/nixos/modules/security/acme.xml
index 8249da948c6d8..f623cc509be69 100644
--- a/nixos/modules/security/acme.xml
+++ b/nixos/modules/security/acme.xml
@@ -7,8 +7,9 @@
  <para>
   NixOS supports automatic domain validation &amp; certificate retrieval and
   renewal using the ACME protocol. Any provider can be used, but by default
-  NixOS uses Let's Encrypt. The alternative ACME client <literal>lego</literal>
-  is used under the hood.
+  NixOS uses Let's Encrypt. The alternative ACME client
+  <link xlink:href="https://go-acme.github.io/lego/">lego</link> is used under
+  the hood.
  </para>
  <para>
   Automatic cert validation and configuration for Apache and Nginx virtual
@@ -29,7 +30,7 @@
   <para>
    You must also set an email address to be used when creating accounts with
    Let's Encrypt. You can set this for all certs with
-   <literal><xref linkend="opt-security.acme.email" /></literal>
+   <literal><xref linkend="opt-security.acme.defaults.email" /></literal>
    and/or on a per-cert basis with
    <literal><xref linkend="opt-security.acme.certs._name_.email" /></literal>.
    This address is only used for registration and renewal reminders,
@@ -38,7 +39,7 @@
 
   <para>
    Alternatively, you can use a different ACME server by changing the
-   <literal><xref linkend="opt-security.acme.server" /></literal> option
+   <literal><xref linkend="opt-security.acme.defaults.server" /></literal> option
    to a provider of your choosing, or just change the server for one cert with
    <literal><xref linkend="opt-security.acme.certs._name_.server" /></literal>.
   </para>
@@ -60,12 +61,12 @@
    = true;</literal> in a virtualHost config. We first create self-signed
    placeholder certificates in place of the real ACME certs. The placeholder
    certs are overwritten when the ACME certs arrive. For
-   <literal>foo.example.com</literal> the config would look like.
+   <literal>foo.example.com</literal> the config would look like this:
   </para>
 
 <programlisting>
 <xref linkend="opt-security.acme.acceptTerms" /> = true;
-<xref linkend="opt-security.acme.email" /> = "admin+acme@example.com";
+<xref linkend="opt-security.acme.defaults.email" /> = "admin+acme@example.com";
 services.nginx = {
   <link linkend="opt-services.nginx.enable">enable</link> = true;
   <link linkend="opt-services.nginx.virtualHosts">virtualHosts</link> = {
@@ -114,7 +115,7 @@ services.nginx = {
 
 <programlisting>
 <xref linkend="opt-security.acme.acceptTerms" /> = true;
-<xref linkend="opt-security.acme.email" /> = "admin+acme@example.com";
+<xref linkend="opt-security.acme.defaults.email" /> = "admin+acme@example.com";
 
 # /var/lib/acme/.challenges must be writable by the ACME user
 # and readable by the Nginx user. The easiest way to achieve
@@ -218,7 +219,7 @@ services.bind = {
 
 # Now we can configure ACME
 <xref linkend="opt-security.acme.acceptTerms" /> = true;
-<xref linkend="opt-security.acme.email" /> = "admin+acme@example.com";
+<xref linkend="opt-security.acme.defaults.email" /> = "admin+acme@example.com";
 <xref linkend="opt-security.acme.certs" />."example.com" = {
   <link linkend="opt-security.acme.certs._name_.domain">domain</link> = "*.example.com";
   <link linkend="opt-security.acme.certs._name_.dnsProvider">dnsProvider</link> = "rfc2136";
@@ -231,33 +232,147 @@ services.bind = {
   <para>
    The <filename>dnskeys.conf</filename> and <filename>certs.secret</filename>
    must be kept secure and thus you should not keep their contents in your
-   Nix config. Instead, generate them one time with these commands:
+   Nix config. Instead, generate them one time with a systemd service:
   </para>
 
 <programlisting>
-mkdir -p /var/lib/secrets
-tsig-keygen rfc2136key.example.com &gt; /var/lib/secrets/dnskeys.conf
-chown named:root /var/lib/secrets/dnskeys.conf
-chmod 400 /var/lib/secrets/dnskeys.conf
-
-# Copy the secret value from the dnskeys.conf, and put it in
-# RFC2136_TSIG_SECRET below
-
-cat &gt; /var/lib/secrets/certs.secret &lt;&lt; EOF
-RFC2136_NAMESERVER='127.0.0.1:53'
-RFC2136_TSIG_ALGORITHM='hmac-sha256.'
-RFC2136_TSIG_KEY='rfc2136key.example.com'
-RFC2136_TSIG_SECRET='your secret key'
-EOF
-chmod 400 /var/lib/secrets/certs.secret
+systemd.services.dns-rfc2136-conf = {
+  requiredBy = ["acme-example.com.service", "bind.service"];
+  before = ["acme-example.com.service", "bind.service"];
+  unitConfig = {
+    ConditionPathExists = "!/var/lib/secrets/dnskeys.conf";
+  };
+  serviceConfig = {
+    Type = "oneshot";
+    UMask = 0077;
+  };
+  path = [ pkgs.bind ];
+  script = ''
+    mkdir -p /var/lib/secrets
+    tsig-keygen rfc2136key.example.com &gt; /var/lib/secrets/dnskeys.conf
+    chown named:root /var/lib/secrets/dnskeys.conf
+    chmod 400 /var/lib/secrets/dnskeys.conf
+
+    # Copy the secret value from the dnskeys.conf, and put it in
+    # RFC2136_TSIG_SECRET below
+
+    cat &gt; /var/lib/secrets/certs.secret &lt;&lt; EOF
+    RFC2136_NAMESERVER='127.0.0.1:53'
+    RFC2136_TSIG_ALGORITHM='hmac-sha256.'
+    RFC2136_TSIG_KEY='rfc2136key.example.com'
+    RFC2136_TSIG_SECRET='your secret key'
+    EOF
+    chmod 400 /var/lib/secrets/certs.secret
+  '';
+};
 </programlisting>
 
   <para>
-   Now you're all set to generate certs! You should monitor the first invokation
+   Now you're all set to generate certs! You should monitor the first invocation
    by running <literal>systemctl start acme-example.com.service &amp;
    journalctl -fu acme-example.com.service</literal> and watching its log output.
   </para>
  </section>
+
+ <section xml:id="module-security-acme-config-dns-with-vhosts">
+  <title>Using DNS validation with web server virtual hosts</title>
+
+  <para>
+   It is possible to use DNS-01 validation with all certificates,
+   including those automatically configured via the Nginx/Apache
+   <literal><link linkend="opt-services.nginx.virtualHosts._name_.enableACME">enableACME</link></literal>
+   option. This configuration pattern is fully
+   supported and part of the module's test suite for Nginx + Apache.
+  </para>
+
+  <para>
+   You must follow the guide above on configuring DNS-01 validation
+   first, however instead of setting the options for one certificate
+   (e.g. <xref linkend="opt-security.acme.certs._name_.dnsProvider" />)
+   you will set them as defaults
+   (e.g. <xref linkend="opt-security.acme.defaults.dnsProvider" />).
+  </para>
+
+<programlisting>
+# Configure ACME appropriately
+<xref linkend="opt-security.acme.acceptTerms" /> = true;
+<xref linkend="opt-security.acme.defaults.email" /> = "admin+acme@example.com";
+<xref linkend="opt-security.acme.defaults" /> = {
+  <link linkend="opt-security.acme.defaults.dnsProvider">dnsProvider</link> = "rfc2136";
+  <link linkend="opt-security.acme.defaults.credentialsFile">credentialsFile</link> = "/var/lib/secrets/certs.secret";
+  # We don't need to wait for propagation since this is a local DNS server
+  <link linkend="opt-security.acme.defaults.dnsPropagationCheck">dnsPropagationCheck</link> = false;
+};
+
+# For each virtual host you would like to use DNS-01 validation with,
+# set acmeRoot = null
+services.nginx = {
+  <link linkend="opt-services.nginx.enable">enable</link> = true;
+  <link linkend="opt-services.nginx.virtualHosts">virtualHosts</link> = {
+    "foo.example.com" = {
+      <link linkend="opt-services.nginx.virtualHosts._name_.enableACME">enableACME</link> = true;
+      <link linkend="opt-services.nginx.virtualHosts._name_.acmeRoot">acmeRoot</link> = null;
+    };
+  };
+}
+</programlisting>
+
+  <para>
+   And that's it! Next time your configuration is rebuilt, or when
+   you add a new virtualHost, it will be DNS-01 validated.
+  </para>
+ </section>
+
+ <section xml:id="module-security-acme-root-owned">
+  <title>Using ACME with services demanding root owned certificates</title>
+
+  <para>
+   Some services refuse to start if the configured certificate files
+   are not owned by root. PostgreSQL and OpenSMTPD are examples of these.
+   There is no way to change the user the ACME module uses (it will always be
+   <literal>acme</literal>), however you can use systemd's
+   <literal>LoadCredential</literal> feature to resolve this elegantly.
+   Below is an example configuration for OpenSMTPD, but this pattern
+   can be applied to any service.
+  </para>
+
+<programlisting>
+# Configure ACME however you like (DNS or HTTP validation), adding
+# the following configuration for the relevant certificate.
+# Note: You cannot use `systemctl reload` here as that would mean
+# the LoadCredential configuration below would be skipped and
+# the service would continue to use old certificates.
+security.acme.certs."mail.example.com".postRun = ''
+  systemctl restart opensmtpd
+'';
+
+# Now you must augment OpenSMTPD's systemd service to load
+# the certificate files.
+<link linkend="opt-systemd.services._name_.requires">systemd.services.opensmtpd.requires</link> = ["acme-finished-mail.example.com.target"];
+<link linkend="opt-systemd.services._name_.serviceConfig">systemd.services.opensmtpd.serviceConfig.LoadCredential</link> = let
+  certDir = config.security.acme.certs."mail.example.com".directory;
+in [
+  "cert.pem:${certDir}/cert.pem"
+  "key.pem:${certDir}/key.pem"
+];
+
+# Finally, configure OpenSMTPD to use these certs.
+services.opensmtpd = let
+  credsDir = "/run/credentials/opensmtpd.service";
+in {
+  enable = true;
+  setSendmail = false;
+  serverConfiguration = ''
+    pki mail.example.com cert "${credsDir}/cert.pem"
+    pki mail.example.com key "${credsDir}/key.pem"
+    listen on localhost tls pki mail.example.com
+    action act1 relay host smtp://127.0.0.1:10027
+    match for local action act1
+  '';
+};
+</programlisting>
+ </section>
+
  <section xml:id="module-security-acme-regenerate">
   <title>Regenerating certificates</title>
 
diff --git a/nixos/modules/security/dhparams.nix b/nixos/modules/security/dhparams.nix
index 012be2887d898..cfa9003f12fb6 100644
--- a/nixos/modules/security/dhparams.nix
+++ b/nixos/modules/security/dhparams.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 let
-  inherit (lib) mkOption types;
+  inherit (lib) literalExpression mkOption types;
   cfg = config.security.dhparams;
+  opt = options.security.dhparams;
 
   bitType = types.addCheck types.int (b: b >= 16) // {
     name = "bits";
@@ -13,6 +14,7 @@ let
     options.bits = mkOption {
       type = bitType;
       default = cfg.defaultBitSize;
+      defaultText = literalExpression "config.${opt.defaultBitSize}";
       description = ''
         The bit size for the prime that is used during a Diffie-Hellman
         key exchange.
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index 70bce783a90b6..0944b36c6d197 100644
--- a/nixos/modules/security/pam.nix
+++ b/nixos/modules/security/pam.nix
@@ -38,6 +38,7 @@ let
 
       p11Auth = mkOption {
         default = config.security.pam.p11.enable;
+        defaultText = literalExpression "config.security.pam.p11.enable";
         type = types.bool;
         description = ''
           If set, keys listed in
@@ -49,6 +50,7 @@ let
 
       u2fAuth = mkOption {
         default = config.security.pam.u2f.enable;
+        defaultText = literalExpression "config.security.pam.u2f.enable";
         type = types.bool;
         description = ''
           If set, users listed in
@@ -61,6 +63,7 @@ let
 
       yubicoAuth = mkOption {
         default = config.security.pam.yubico.enable;
+        defaultText = literalExpression "config.security.pam.yubico.enable";
         type = types.bool;
         description = ''
           If set, users listed in
@@ -83,6 +86,7 @@ let
 
       usbAuth = mkOption {
         default = config.security.pam.usb.enable;
+        defaultText = literalExpression "config.security.pam.usb.enable";
         type = types.bool;
         description = ''
           If set, users listed in
@@ -93,6 +97,7 @@ let
 
       otpwAuth = mkOption {
         default = config.security.pam.enableOTPW;
+        defaultText = literalExpression "config.security.pam.enableOTPW";
         type = types.bool;
         description = ''
           If set, the OTPW system will be used (if
@@ -126,6 +131,7 @@ let
 
       fprintAuth = mkOption {
         default = config.services.fprintd.enable;
+        defaultText = literalExpression "config.services.fprintd.enable";
         type = types.bool;
         description = ''
           If set, fingerprint reader will be used (if exists and
@@ -135,6 +141,7 @@ let
 
       oathAuth = mkOption {
         default = config.security.pam.oath.enable;
+        defaultText = literalExpression "config.security.pam.oath.enable";
         type = types.bool;
         description = ''
           If set, the OATH Toolkit will be used.
@@ -249,6 +256,7 @@ let
 
       pamMount = mkOption {
         default = config.security.pam.mount.enable;
+        defaultText = literalExpression "config.security.pam.mount.enable";
         type = types.bool;
         description = ''
           Enable PAM mount (pam_mount) system to mount fileystems on user login.
@@ -287,9 +295,14 @@ let
       };
 
       limits = mkOption {
+        default = [];
+        type = limitsType;
         description = ''
           Attribute set describing resource limits.  Defaults to the
           value of <option>security.pam.loginLimits</option>.
+          The meaning of the values is explained in <citerefentry>
+          <refentrytitle>limits.conf</refentrytitle><manvolnum>5</manvolnum>
+          </citerefentry>.
         '';
       };
 
@@ -401,6 +414,9 @@ let
 
     };
 
+    # The resulting /etc/pam.d/* file contents are verified in
+    # nixos/tests/pam/pam-file-contents.nix. Please update tests there when
+    # changing the derivation.
     config = {
       name = mkDefault name;
       setLoginUid = mkDefault cfg.startSession;
@@ -637,6 +653,51 @@ let
          "${domain} ${type} ${item} ${toString value}\n")
          limits);
 
+  limitsType = with lib.types; listOf (submodule ({ ... }: {
+    options = {
+      domain = mkOption {
+        description = "Username, groupname, or wildcard this limit applies to";
+        example = "@wheel";
+        type = str;
+      };
+
+      type = mkOption {
+        description = "Type of this limit";
+        type = enum [ "-" "hard" "soft" ];
+        default = "-";
+      };
+
+      item = mkOption {
+        description = "Item this limit applies to";
+        type = enum [
+          "core"
+          "data"
+          "fsize"
+          "memlock"
+          "nofile"
+          "rss"
+          "stack"
+          "cpu"
+          "nproc"
+          "as"
+          "maxlogins"
+          "maxsyslogins"
+          "priority"
+          "locks"
+          "sigpending"
+          "msgqueue"
+          "nice"
+          "rtprio"
+        ];
+      };
+
+      value = mkOption {
+        description = "Value of this limit";
+        type = oneOf [ str int ];
+      };
+    };
+  }));
+
   motd = pkgs.writeText "motd" config.users.motd;
 
   makePAMService = name: service:
@@ -658,6 +719,7 @@ in
 
     security.pam.loginLimits = mkOption {
       default = [];
+      type = limitsType;
       example =
         [ { domain = "ftp";
             type   = "hard";
@@ -677,7 +739,8 @@ in
           <varname>domain</varname>, <varname>type</varname>,
           <varname>item</varname>, and <varname>value</varname>
           attribute.  The syntax and semantics of these attributes
-          must be that described in the limits.conf(5) man page.
+          must be that described in <citerefentry><refentrytitle>limits.conf</refentrytitle>
+          <manvolnum>5</manvolnum></citerefentry>.
 
           Note that these limits do not apply to systemd services,
           whose limits can be changed via <option>systemd.extraConfig</option>
diff --git a/nixos/modules/security/systemd-confinement.nix b/nixos/modules/security/systemd-confinement.nix
index d859c45c74f7a..0e3ec5af323ee 100644
--- a/nixos/modules/security/systemd-confinement.nix
+++ b/nixos/modules/security/systemd-confinement.nix
@@ -1,11 +1,9 @@
-{ config, pkgs, lib, ... }:
+{ config, pkgs, lib, utils, ... }:
 
 let
   toplevelConfig = config;
   inherit (lib) types;
-  inherit (import ../system/boot/systemd-lib.nix {
-    inherit config pkgs lib;
-  }) mkPathSafeName;
+  inherit (utils.systemdUtils.lib) mkPathSafeName;
 in {
   options.systemd.services = lib.mkOption {
     type = types.attrsOf (types.submodule ({ name, config, ... }: {
diff --git a/nixos/modules/security/wrappers/default.nix b/nixos/modules/security/wrappers/default.nix
index a47de7e04f7af..66a47bcaab6c9 100644
--- a/nixos/modules/security/wrappers/default.nix
+++ b/nixos/modules/security/wrappers/default.nix
@@ -244,8 +244,6 @@ in
     security.apparmor.includes."nixos/security.wrappers" = ''
       include "${pkgs.apparmorRulesFromClosure { name="security.wrappers"; } [
         securityWrapper
-        pkgs.stdenv.cc.cc
-        pkgs.stdenv.cc.libc
       ]}"
     '';
 
diff --git a/nixos/modules/services/audio/icecast.nix b/nixos/modules/services/audio/icecast.nix
index 6ca20a7a10866..5ee5bd745f96e 100644
--- a/nixos/modules/services/audio/icecast.nix
+++ b/nixos/modules/services/audio/icecast.nix
@@ -50,6 +50,7 @@ in {
         type = types.nullOr types.str;
         description = "DNS name or IP address that will be used for the stream directory lookups or possibily the playlist generation if a Host header is not provided.";
         default = config.networking.domain;
+        defaultText = literalExpression "config.networking.domain";
       };
 
       admin = {
diff --git a/nixos/modules/services/audio/mpdscribble.nix b/nixos/modules/services/audio/mpdscribble.nix
index 1368543ae1a4a..333ffb709410a 100644
--- a/nixos/modules/services/audio/mpdscribble.nix
+++ b/nixos/modules/services/audio/mpdscribble.nix
@@ -1,10 +1,11 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.mpdscribble;
   mpdCfg = config.services.mpd;
+  mpdOpt = options.services.mpd;
 
   endpointUrls = {
     "last.fm" = "http://post.audioscrobbler.com";
@@ -108,6 +109,11 @@ in {
         mpdCfg.network.listenAddress
       else
         "localhost");
+      defaultText = literalExpression ''
+        if config.${mpdOpt.network.listenAddress} != "any"
+        then config.${mpdOpt.network.listenAddress}
+        else "localhost"
+      '';
       type = types.str;
       description = ''
         Host for the mpdscribble daemon to search for a mpd daemon on.
@@ -122,6 +128,10 @@ in {
           mpdCfg.credentials).passwordFile
       else
         null;
+      defaultText = literalDocBook ''
+        The first password file with read access configured for MPD when using a local instance,
+        otherwise <literal>null</literal>.
+      '';
       type = types.nullOr types.str;
       description = ''
         File containing the password for the mpd daemon.
@@ -132,6 +142,7 @@ in {
 
     port = mkOption {
       default = mpdCfg.network.port;
+      defaultText = literalExpression "config.${mpdOpt.network.port}";
       type = types.port;
       description = ''
         Port for the mpdscribble daemon to search for a mpd daemon on.
diff --git a/nixos/modules/services/audio/navidrome.nix b/nixos/modules/services/audio/navidrome.nix
index c2fe429f9844e..3660e05310be1 100644
--- a/nixos/modules/services/audio/navidrome.nix
+++ b/nixos/modules/services/audio/navidrome.nix
@@ -9,7 +9,7 @@ in {
   options = {
     services.navidrome = {
 
-      enable = mkEnableOption pkgs.navidrome.meta.description;
+      enable = mkEnableOption "Navidrome music server";
 
       settings = mkOption rec {
         type = settingsFormat.type;
diff --git a/nixos/modules/services/audio/snapserver.nix b/nixos/modules/services/audio/snapserver.nix
index d3e97719f3576..b82aca3976f0c 100644
--- a/nixos/modules/services/audio/snapserver.nix
+++ b/nixos/modules/services/audio/snapserver.nix
@@ -54,12 +54,12 @@ let
     # tcp json rpc
     ++ [ "--tcp.enabled ${toString cfg.tcp.enable}" ]
     ++ optionals cfg.tcp.enable [
-      "--tcp.address ${cfg.tcp.listenAddress}"
+      "--tcp.bind_to_address ${cfg.tcp.listenAddress}"
       "--tcp.port ${toString cfg.tcp.port}" ]
      # http json rpc
     ++ [ "--http.enabled ${toString cfg.http.enable}" ]
     ++ optionals cfg.http.enable [
-      "--http.address ${cfg.http.listenAddress}"
+      "--http.bind_to_address ${cfg.http.listenAddress}"
       "--http.port ${toString cfg.http.port}"
     ] ++ optional (cfg.http.docRoot != null) "--http.doc_root \"${toString cfg.http.docRoot}\"");
 
diff --git a/nixos/modules/services/audio/ympd.nix b/nixos/modules/services/audio/ympd.nix
index 36c5527027ffa..84b72d1425132 100644
--- a/nixos/modules/services/audio/ympd.nix
+++ b/nixos/modules/services/audio/ympd.nix
@@ -31,6 +31,7 @@ in {
         port = mkOption {
           type = types.int;
           default = config.services.mpd.network.port;
+          defaultText = literalExpression "config.services.mpd.network.port";
           description = "The port where MPD is listening.";
           example = 6600;
         };
diff --git a/nixos/modules/services/backup/bacula.nix b/nixos/modules/services/backup/bacula.nix
index cc8b77cbfbe8e..5989020423463 100644
--- a/nixos/modules/services/backup/bacula.nix
+++ b/nixos/modules/services/backup/bacula.nix
@@ -302,6 +302,7 @@ in {
 
       name = mkOption {
         default = "${config.networking.hostName}-fd";
+        defaultText = literalExpression ''"''${config.networking.hostName}-fd"'';
         type = types.str;
         description = ''
           The client name that must be used by the Director when connecting.
@@ -364,6 +365,7 @@ in {
 
       name = mkOption {
         default = "${config.networking.hostName}-sd";
+        defaultText = literalExpression ''"''${config.networking.hostName}-sd"'';
         type = types.str;
         description = ''
           Specifies the Name of the Storage daemon.
@@ -439,6 +441,7 @@ in {
 
       name = mkOption {
         default = "${config.networking.hostName}-dir";
+        defaultText = literalExpression ''"''${config.networking.hostName}-dir"'';
         type = types.str;
         description = ''
           The director name used by the system administrator. This directive is
diff --git a/nixos/modules/services/backup/duplicati.nix b/nixos/modules/services/backup/duplicati.nix
index cf5aebdecd281..97864c44691b0 100644
--- a/nixos/modules/services/backup/duplicati.nix
+++ b/nixos/modules/services/backup/duplicati.nix
@@ -18,6 +18,20 @@ in
         '';
       };
 
+      dataDir = mkOption {
+        type = types.str;
+        default = "/var/lib/duplicati";
+        description = ''
+          The directory where Duplicati stores its data files.
+
+          <note><para>
+            If left as the default value this directory will automatically be created
+            before the Duplicati server starts, otherwise you are responsible for ensuring
+            the directory exists with appropriate ownership and permissions.
+          </para></note>
+        '';
+      };
+
       interface = mkOption {
         default = "127.0.0.1";
         type = types.str;
@@ -45,20 +59,23 @@ in
       description = "Duplicati backup";
       after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
-      serviceConfig = {
-        User = cfg.user;
-        Group = "duplicati";
-        StateDirectory = "duplicati";
-        ExecStart = "${pkgs.duplicati}/bin/duplicati-server --webservice-interface=${cfg.interface} --webservice-port=${toString cfg.port} --server-datafolder=/var/lib/duplicati";
-        Restart = "on-failure";
-      };
+      serviceConfig = mkMerge [
+        {
+          User = cfg.user;
+          Group = "duplicati";
+          ExecStart = "${pkgs.duplicati}/bin/duplicati-server --webservice-interface=${cfg.interface} --webservice-port=${toString cfg.port} --server-datafolder=${cfg.dataDir}";
+          Restart = "on-failure";
+        }
+        (mkIf (cfg.dataDir == "/var/lib/duplicati") {
+          StateDirectory = "duplicati";
+        })
+      ];
     };
 
     users.users = lib.optionalAttrs (cfg.user == "duplicati") {
       duplicati = {
         uid = config.ids.uids.duplicati;
-        home = "/var/lib/duplicati";
-        createHome = true;
+        home = cfg.dataDir;
         group = "duplicati";
       };
     };
diff --git a/nixos/modules/services/backup/restic.nix b/nixos/modules/services/backup/restic.nix
index 67fef55614b38..8ff8e31864be2 100644
--- a/nixos/modules/services/backup/restic.nix
+++ b/nixos/modules/services/backup/restic.nix
@@ -1,10 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, utils, ... }:
 
 with lib;
 
 let
   # Type for a valid systemd unit option. Needed for correctly passing "timerConfig" to "systemd.timers"
-  unitOption = (import ../../system/boot/systemd-unit-options.nix { inherit config lib; }).unitOption;
+  inherit (utils.systemdUtils.unitOptions) unitOption;
 in
 {
   options.services.restic.backups = mkOption {
diff --git a/nixos/modules/services/backup/tarsnap.nix b/nixos/modules/services/backup/tarsnap.nix
index 9cce868366123..9b5fd90012e0e 100644
--- a/nixos/modules/services/backup/tarsnap.nix
+++ b/nixos/modules/services/backup/tarsnap.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, utils, ... }:
+{ config, lib, options, pkgs, utils, ... }:
 
 with lib;
 
 let
   gcfg = config.services.tarsnap;
+  opt = options.services.tarsnap;
 
   configFile = name: cfg: ''
     keyfile ${cfg.keyfile}
@@ -59,12 +60,13 @@ in
       };
 
       archives = mkOption {
-        type = types.attrsOf (types.submodule ({ config, ... }:
+        type = types.attrsOf (types.submodule ({ config, options, ... }:
           {
             options = {
               keyfile = mkOption {
                 type = types.str;
                 default = gcfg.keyfile;
+                defaultText = literalExpression "config.${opt.keyfile}";
                 description = ''
                   Set a specific keyfile for this archive. This defaults to
                   <literal>"/root/tarsnap.key"</literal> if left unspecified.
@@ -87,6 +89,9 @@ in
               cachedir = mkOption {
                 type = types.nullOr types.path;
                 default = "/var/cache/tarsnap/${utils.escapeSystemdPath config.keyfile}";
+                defaultText = literalExpression ''
+                  "/var/cache/tarsnap/''${utils.escapeSystemdPath config.${options.keyfile}}"
+                '';
                 description = ''
                   The cache allows tarsnap to identify previously stored data
                   blocks, reducing archival time and bandwidth usage.
@@ -320,21 +325,22 @@ in
                         ${optionalString cfg.explicitSymlinks "-H"} \
                         ${optionalString cfg.followSymlinks "-L"} \
                         ${concatStringsSep " " cfg.directories}'';
+          cachedir = escapeShellArg cfg.cachedir;
           in if (cfg.cachedir != null) then ''
-            mkdir -p ${cfg.cachedir}
-            chmod 0700 ${cfg.cachedir}
+            mkdir -p ${cachedir}
+            chmod 0700 ${cachedir}
 
             ( flock 9
-              if [ ! -e ${cfg.cachedir}/firstrun ]; then
+              if [ ! -e ${cachedir}/firstrun ]; then
                 ( flock 10
                   flock -u 9
                   ${tarsnap} --fsck
                   flock 9
-                ) 10>${cfg.cachedir}/firstrun
+                ) 10>${cachedir}/firstrun
               fi
-            ) 9>${cfg.cachedir}/lockf
+            ) 9>${cachedir}/lockf
 
-             exec flock ${cfg.cachedir}/firstrun ${run}
+             exec flock ${cachedir}/firstrun ${run}
           '' else "exec ${run}";
 
         serviceConfig = {
@@ -356,22 +362,23 @@ in
           tarsnap = ''tarsnap --configfile "/etc/tarsnap/${name}.conf"'';
           lastArchive = "$(${tarsnap} --list-archives | sort | tail -1)";
           run = ''${tarsnap} -x -f "${lastArchive}" ${optionalString cfg.verbose "-v"}'';
+          cachedir = escapeShellArg cfg.cachedir;
 
         in if (cfg.cachedir != null) then ''
-          mkdir -p ${cfg.cachedir}
-          chmod 0700 ${cfg.cachedir}
+          mkdir -p ${cachedir}
+          chmod 0700 ${cachedir}
 
           ( flock 9
-            if [ ! -e ${cfg.cachedir}/firstrun ]; then
+            if [ ! -e ${cachedir}/firstrun ]; then
               ( flock 10
                 flock -u 9
                 ${tarsnap} --fsck
                 flock 9
-              ) 10>${cfg.cachedir}/firstrun
+              ) 10>${cachedir}/firstrun
             fi
-          ) 9>${cfg.cachedir}/lockf
+          ) 9>${cachedir}/lockf
 
-           exec flock ${cfg.cachedir}/firstrun ${run}
+           exec flock ${cachedir}/firstrun ${run}
         '' else "exec ${run}";
 
         serviceConfig = {
diff --git a/nixos/modules/services/cluster/hadoop/default.nix b/nixos/modules/services/cluster/hadoop/default.nix
index 90f22c48e0552..a1a95fe31cac5 100644
--- a/nixos/modules/services/cluster/hadoop/default.nix
+++ b/nixos/modules/services/cluster/hadoop/default.nix
@@ -1,6 +1,7 @@
-{ config, lib, pkgs, ...}:
+{ config, lib, options, pkgs, ...}:
 let
   cfg = config.services.hadoop;
+  opt = options.services.hadoop;
 in
 with lib;
 {
@@ -44,6 +45,14 @@ with lib;
         "mapreduce.map.env" = "HADOOP_MAPRED_HOME=${cfg.package}/lib/${cfg.package.untarDir}";
         "mapreduce.reduce.env" = "HADOOP_MAPRED_HOME=${cfg.package}/lib/${cfg.package.untarDir}";
       };
+      defaultText = literalExpression ''
+        {
+          "mapreduce.framework.name" = "yarn";
+          "yarn.app.mapreduce.am.env" = "HADOOP_MAPRED_HOME=''${config.${opt.package}}/lib/''${config.${opt.package}.untarDir}";
+          "mapreduce.map.env" = "HADOOP_MAPRED_HOME=''${config.${opt.package}}/lib/''${config.${opt.package}.untarDir}";
+          "mapreduce.reduce.env" = "HADOOP_MAPRED_HOME=''${config.${opt.package}}/lib/''${config.${opt.package}.untarDir}";
+        }
+      '';
       type = types.attrsOf types.anything;
       example = literalExpression ''
         options.services.hadoop.mapredSite.default // {
@@ -98,6 +107,9 @@ with lib;
 
     log4jProperties = mkOption {
       default = "${cfg.package}/lib/${cfg.package.untarDir}/etc/hadoop/log4j.properties";
+      defaultText = literalExpression ''
+        "''${config.${opt.package}}/lib/''${config.${opt.package}.untarDir}/etc/hadoop/log4j.properties"
+      '';
       type = types.path;
       example = literalExpression ''
         "''${pkgs.hadoop}/lib/''${pkgs.hadoop.untarDir}/etc/hadoop/log4j.properties";
diff --git a/nixos/modules/services/cluster/kubernetes/addon-manager.nix b/nixos/modules/services/cluster/kubernetes/addon-manager.nix
index 3d988dc2479ac..9159d5915eb77 100644
--- a/nixos/modules/services/cluster/kubernetes/addon-manager.nix
+++ b/nixos/modules/services/cluster/kubernetes/addon-manager.nix
@@ -58,7 +58,7 @@ in
             "spec" = { ... };
           };
         }
-        // import <nixpkgs/nixos/modules/services/cluster/kubernetes/dashboard.nix> { cfg = config.services.kubernetes; };
+        // import <nixpkgs/nixos/modules/services/cluster/kubernetes/dns.nix> { cfg = config.services.kubernetes; };
       '';
     };
 
diff --git a/nixos/modules/services/cluster/kubernetes/addons/dashboard.nix b/nixos/modules/services/cluster/kubernetes/addons/dashboard.nix
deleted file mode 100644
index 2ed7742eda09b..0000000000000
--- a/nixos/modules/services/cluster/kubernetes/addons/dashboard.nix
+++ /dev/null
@@ -1,332 +0,0 @@
-{ config, pkgs, lib, ... }:
-
-with lib;
-
-let
-  cfg = config.services.kubernetes.addons.dashboard;
-in {
-  imports = [
-    (mkRenamedOptionModule [ "services" "kubernetes" "addons" "dashboard" "enableRBAC" ] [ "services" "kubernetes" "addons" "dashboard" "rbac" "enable" ])
-  ];
-
-  options.services.kubernetes.addons.dashboard = {
-    enable = mkEnableOption "kubernetes dashboard addon";
-
-    extraArgs = mkOption {
-      description = "Extra arguments to append to the dashboard cmdline";
-      type = types.listOf types.str;
-      default = [];
-      example = ["--enable-skip-login"];
-    };
-
-    rbac = mkOption {
-      description = "Role-based access control (RBAC) options";
-      default = {};
-      type = types.submodule {
-        options = {
-          enable = mkOption {
-            description = "Whether to enable role based access control is enabled for kubernetes dashboard";
-            type = types.bool;
-            default = elem "RBAC" config.services.kubernetes.apiserver.authorizationMode;
-          };
-
-          clusterAdmin = mkOption {
-            description = "Whether to assign cluster admin rights to the kubernetes dashboard";
-            type = types.bool;
-            default = false;
-          };
-        };
-      };
-    };
-
-    version = mkOption {
-      description = "Which version of the kubernetes dashboard to deploy";
-      type = types.str;
-      default = "v1.10.1";
-    };
-
-    image = mkOption {
-      description = "Docker image to seed for the kubernetes dashboard container.";
-      type = types.attrs;
-      default = {
-        imageName = "k8s.gcr.io/kubernetes-dashboard-amd64";
-        imageDigest = "sha256:0ae6b69432e78069c5ce2bcde0fe409c5c4d6f0f4d9cd50a17974fea38898747";
-        finalImageTag = cfg.version;
-        sha256 = "01xrr4pwgr2hcjrjsi3d14ifpzdfbxzqpzxbk2fkbjb9zkv38zxy";
-      };
-    };
-  };
-
-  config = mkIf cfg.enable {
-    services.kubernetes.kubelet.seedDockerImages = [(pkgs.dockerTools.pullImage cfg.image)];
-
-    services.kubernetes.addonManager.addons = {
-      kubernetes-dashboard-deployment = {
-        kind = "Deployment";
-        apiVersion = "apps/v1";
-        metadata = {
-          labels = {
-            k8s-addon = "kubernetes-dashboard.addons.k8s.io";
-            k8s-app = "kubernetes-dashboard";
-            version = cfg.version;
-            "kubernetes.io/cluster-service" = "true";
-            "addonmanager.kubernetes.io/mode" = "Reconcile";
-          };
-          name = "kubernetes-dashboard";
-          namespace = "kube-system";
-        };
-        spec = {
-          replicas = 1;
-          revisionHistoryLimit = 10;
-          selector.matchLabels.k8s-app = "kubernetes-dashboard";
-          template = {
-            metadata = {
-              labels = {
-                k8s-addon = "kubernetes-dashboard.addons.k8s.io";
-                k8s-app = "kubernetes-dashboard";
-                version = cfg.version;
-                "kubernetes.io/cluster-service" = "true";
-              };
-              annotations = {
-                "scheduler.alpha.kubernetes.io/critical-pod" = "";
-              };
-            };
-            spec = {
-              priorityClassName = "system-cluster-critical";
-              containers = [{
-                name = "kubernetes-dashboard";
-                image = with cfg.image; "${imageName}:${finalImageTag}";
-                ports = [{
-                  containerPort = 8443;
-                  protocol = "TCP";
-                }];
-                resources = {
-                  limits = {
-                    cpu = "100m";
-                    memory = "300Mi";
-                  };
-                  requests = {
-                    cpu = "100m";
-                    memory = "100Mi";
-                  };
-                };
-                args = ["--auto-generate-certificates"] ++ cfg.extraArgs;
-                volumeMounts = [{
-                  name = "tmp-volume";
-                  mountPath = "/tmp";
-                } {
-                  name = "kubernetes-dashboard-certs";
-                  mountPath = "/certs";
-                }];
-                livenessProbe = {
-                  httpGet = {
-                    scheme = "HTTPS";
-                    path = "/";
-                    port = 8443;
-                  };
-                  initialDelaySeconds = 30;
-                  timeoutSeconds = 30;
-                };
-              }];
-              volumes = [{
-                name = "kubernetes-dashboard-certs";
-                secret = {
-                  secretName = "kubernetes-dashboard-certs";
-                };
-              } {
-                name = "tmp-volume";
-                emptyDir = {};
-              }];
-              serviceAccountName = "kubernetes-dashboard";
-              tolerations = [{
-                key = "node-role.kubernetes.io/master";
-                effect = "NoSchedule";
-              } {
-                key = "CriticalAddonsOnly";
-                operator = "Exists";
-              }];
-            };
-          };
-        };
-      };
-
-      kubernetes-dashboard-svc = {
-        apiVersion = "v1";
-        kind = "Service";
-        metadata = {
-          labels = {
-            k8s-addon = "kubernetes-dashboard.addons.k8s.io";
-            k8s-app = "kubernetes-dashboard";
-            "kubernetes.io/cluster-service" = "true";
-            "kubernetes.io/name" = "KubeDashboard";
-            "addonmanager.kubernetes.io/mode" = "Reconcile";
-          };
-          name = "kubernetes-dashboard";
-          namespace  = "kube-system";
-        };
-        spec = {
-          ports = [{
-            port = 443;
-            targetPort = 8443;
-          }];
-          selector.k8s-app = "kubernetes-dashboard";
-        };
-      };
-
-      kubernetes-dashboard-sa = {
-        apiVersion = "v1";
-        kind = "ServiceAccount";
-        metadata = {
-          labels = {
-            k8s-app = "kubernetes-dashboard";
-            k8s-addon = "kubernetes-dashboard.addons.k8s.io";
-            "addonmanager.kubernetes.io/mode" = "Reconcile";
-          };
-          name = "kubernetes-dashboard";
-          namespace = "kube-system";
-        };
-      };
-      kubernetes-dashboard-sec-certs = {
-        apiVersion = "v1";
-        kind = "Secret";
-        metadata = {
-          labels = {
-            k8s-app = "kubernetes-dashboard";
-            # Allows editing resource and makes sure it is created first.
-            "addonmanager.kubernetes.io/mode" = "EnsureExists";
-          };
-          name = "kubernetes-dashboard-certs";
-          namespace = "kube-system";
-        };
-        type = "Opaque";
-      };
-      kubernetes-dashboard-sec-kholder = {
-        apiVersion = "v1";
-        kind = "Secret";
-        metadata = {
-          labels = {
-            k8s-app = "kubernetes-dashboard";
-            # Allows editing resource and makes sure it is created first.
-            "addonmanager.kubernetes.io/mode" = "EnsureExists";
-          };
-          name = "kubernetes-dashboard-key-holder";
-          namespace = "kube-system";
-        };
-        type = "Opaque";
-      };
-      kubernetes-dashboard-cm = {
-        apiVersion = "v1";
-        kind = "ConfigMap";
-        metadata = {
-          labels = {
-            k8s-app = "kubernetes-dashboard";
-            # Allows editing resource and makes sure it is created first.
-            "addonmanager.kubernetes.io/mode" = "EnsureExists";
-          };
-          name = "kubernetes-dashboard-settings";
-          namespace = "kube-system";
-        };
-      };
-    } // (optionalAttrs cfg.rbac.enable
-      (let
-        subjects = [{
-          kind = "ServiceAccount";
-          name = "kubernetes-dashboard";
-          namespace = "kube-system";
-        }];
-        labels = {
-          k8s-app = "kubernetes-dashboard";
-          k8s-addon = "kubernetes-dashboard.addons.k8s.io";
-          "addonmanager.kubernetes.io/mode" = "Reconcile";
-        };
-      in
-        (if cfg.rbac.clusterAdmin then {
-          kubernetes-dashboard-crb = {
-            apiVersion = "rbac.authorization.k8s.io/v1";
-            kind = "ClusterRoleBinding";
-            metadata = {
-              name = "kubernetes-dashboard";
-              inherit labels;
-            };
-            roleRef = {
-              apiGroup = "rbac.authorization.k8s.io";
-              kind = "ClusterRole";
-              name = "cluster-admin";
-            };
-            inherit subjects;
-          };
-        }
-        else
-        {
-          # Upstream role- and rolebinding as per:
-          # https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/alternative/kubernetes-dashboard.yaml
-          kubernetes-dashboard-role = {
-            apiVersion = "rbac.authorization.k8s.io/v1";
-            kind = "Role";
-            metadata = {
-              name = "kubernetes-dashboard-minimal";
-              namespace = "kube-system";
-              inherit labels;
-            };
-            rules = [
-              # Allow Dashboard to create 'kubernetes-dashboard-key-holder' secret.
-              {
-                apiGroups = [""];
-                resources = ["secrets"];
-                verbs = ["create"];
-              }
-              # Allow Dashboard to create 'kubernetes-dashboard-settings' config map.
-              {
-                apiGroups = [""];
-                resources = ["configmaps"];
-                verbs = ["create"];
-              }
-              # Allow Dashboard to get, update and delete Dashboard exclusive secrets.
-              {
-                apiGroups = [""];
-                resources = ["secrets"];
-                resourceNames = ["kubernetes-dashboard-key-holder"];
-                verbs = ["get" "update" "delete"];
-              }
-              # Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map.
-              {
-                apiGroups = [""];
-                resources = ["configmaps"];
-                resourceNames = ["kubernetes-dashboard-settings"];
-                verbs = ["get" "update"];
-              }
-              # Allow Dashboard to get metrics from heapster.
-              {
-                apiGroups = [""];
-                resources = ["services"];
-                resourceNames = ["heapster"];
-                verbs = ["proxy"];
-              }
-              {
-                apiGroups = [""];
-                resources = ["services/proxy"];
-                resourceNames = ["heapster" "http:heapster:" "https:heapster:"];
-                verbs = ["get"];
-              }
-            ];
-          };
-
-          kubernetes-dashboard-rb = {
-            apiVersion = "rbac.authorization.k8s.io/v1";
-            kind = "RoleBinding";
-            metadata = {
-              name = "kubernetes-dashboard-minimal";
-              namespace = "kube-system";
-              inherit labels;
-            };
-            roleRef = {
-              apiGroup = "rbac.authorization.k8s.io";
-              kind = "Role";
-              name = "kubernetes-dashboard-minimal";
-            };
-            inherit subjects;
-          };
-        })
-    ));
-  };
-}
diff --git a/nixos/modules/services/cluster/kubernetes/addons/dns.nix b/nixos/modules/services/cluster/kubernetes/addons/dns.nix
index 34943fddd3d10..10f45db7883f4 100644
--- a/nixos/modules/services/cluster/kubernetes/addons/dns.nix
+++ b/nixos/modules/services/cluster/kubernetes/addons/dns.nix
@@ -1,4 +1,4 @@
-{ config, pkgs, lib, ... }:
+{ config, options, pkgs, lib, ... }:
 
 with lib;
 
@@ -23,6 +23,10 @@ in {
           take 3 (splitString "." config.services.kubernetes.apiserver.serviceClusterIpRange
         ))
       ) + ".254";
+      defaultText = literalDocBook ''
+        The <literal>x.y.z.254</literal> IP of
+        <literal>config.${options.services.kubernetes.apiserver.serviceClusterIpRange}</literal>.
+      '';
       type = types.str;
     };
 
diff --git a/nixos/modules/services/cluster/kubernetes/apiserver.nix b/nixos/modules/services/cluster/kubernetes/apiserver.nix
index 2c89310beb5ab..5b97c571d7639 100644
--- a/nixos/modules/services/cluster/kubernetes/apiserver.nix
+++ b/nixos/modules/services/cluster/kubernetes/apiserver.nix
@@ -1,9 +1,10 @@
-  { config, lib, pkgs, ... }:
+  { config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   top = config.services.kubernetes;
+  otop = options.services.kubernetes;
   cfg = top.apiserver;
 
   isRBACEnabled = elem "RBAC" cfg.authorizationMode;
@@ -84,6 +85,7 @@ in
     clientCaFile = mkOption {
       description = "Kubernetes apiserver CA file for client auth.";
       default = top.caFile;
+      defaultText = literalExpression "config.${otop.caFile}";
       type = nullOr path;
     };
 
@@ -138,6 +140,7 @@ in
       caFile = mkOption {
         description = "Etcd ca file.";
         default = top.caFile;
+        defaultText = literalExpression "config.${otop.caFile}";
         type = types.nullOr types.path;
       };
     };
@@ -157,6 +160,7 @@ in
     featureGates = mkOption {
       description = "List set of feature gates";
       default = top.featureGates;
+      defaultText = literalExpression "config.${otop.featureGates}";
       type = listOf str;
     };
 
@@ -175,6 +179,7 @@ in
     kubeletClientCaFile = mkOption {
       description = "Path to a cert file for connecting to kubelet.";
       default = top.caFile;
+      defaultText = literalExpression "config.${otop.caFile}";
       type = nullOr path;
     };
 
diff --git a/nixos/modules/services/cluster/kubernetes/controller-manager.nix b/nixos/modules/services/cluster/kubernetes/controller-manager.nix
index 7128b5f70b1a3..ed25715fab7d7 100644
--- a/nixos/modules/services/cluster/kubernetes/controller-manager.nix
+++ b/nixos/modules/services/cluster/kubernetes/controller-manager.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   top = config.services.kubernetes;
+  otop = options.services.kubernetes;
   cfg = top.controllerManager;
 in
 {
@@ -30,6 +31,7 @@ in
     clusterCidr = mkOption {
       description = "Kubernetes CIDR Range for Pods in cluster.";
       default = top.clusterCidr;
+      defaultText = literalExpression "config.${otop.clusterCidr}";
       type = str;
     };
 
@@ -44,6 +46,7 @@ in
     featureGates = mkOption {
       description = "List set of feature gates";
       default = top.featureGates;
+      defaultText = literalExpression "config.${otop.featureGates}";
       type = listOf str;
     };
 
@@ -67,6 +70,7 @@ in
         service account's token secret.
       '';
       default = top.caFile;
+      defaultText = literalExpression "config.${otop.caFile}";
       type = nullOr path;
     };
 
diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index 433adf4d488c8..227c69fec36d4 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.kubernetes;
+  opt = options.services.kubernetes;
 
   defaultContainerdSettings = {
     version = 2;
@@ -87,6 +88,7 @@ let
       description = "${prefix} certificate authority file used to connect to kube-apiserver.";
       type = types.nullOr types.path;
       default = cfg.caFile;
+      defaultText = literalExpression "config.${opt.caFile}";
     };
 
     certFile = mkOption {
@@ -104,6 +106,7 @@ let
 in {
 
   imports = [
+    (mkRemovedOptionModule [ "services" "kubernetes" "addons" "dashboard" ] "Removed due to it being an outdated version")
     (mkRemovedOptionModule [ "services" "kubernetes" "verbose" ] "")
   ];
 
diff --git a/nixos/modules/services/cluster/kubernetes/kubelet.nix b/nixos/modules/services/cluster/kubernetes/kubelet.nix
index eb0cb1f3dbc0c..3e8eac96f6bac 100644
--- a/nixos/modules/services/cluster/kubernetes/kubelet.nix
+++ b/nixos/modules/services/cluster/kubernetes/kubelet.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   top = config.services.kubernetes;
+  otop = options.services.kubernetes;
   cfg = top.kubelet;
 
   cniConfig =
@@ -35,6 +36,7 @@ let
       key = mkOption {
         description = "Key of taint.";
         default = name;
+        defaultText = literalDocBook "Name of this submodule.";
         type = str;
       };
       value = mkOption {
@@ -76,12 +78,14 @@ in
     clusterDomain = mkOption {
       description = "Use alternative domain.";
       default = config.services.kubernetes.addons.dns.clusterDomain;
+      defaultText = literalExpression "config.${options.services.kubernetes.addons.dns.clusterDomain}";
       type = str;
     };
 
     clientCaFile = mkOption {
       description = "Kubernetes apiserver CA file for client authentication.";
       default = top.caFile;
+      defaultText = literalExpression "config.${otop.caFile}";
       type = nullOr path;
     };
 
@@ -148,6 +152,7 @@ in
     featureGates = mkOption {
       description = "List set of feature gates";
       default = top.featureGates;
+      defaultText = literalExpression "config.${otop.featureGates}";
       type = listOf str;
     };
 
@@ -168,6 +173,7 @@ in
     hostname = mkOption {
       description = "Kubernetes kubelet hostname override.";
       default = config.networking.hostName;
+      defaultText = literalExpression "config.networking.hostName";
       type = str;
     };
 
diff --git a/nixos/modules/services/cluster/kubernetes/pki.nix b/nixos/modules/services/cluster/kubernetes/pki.nix
index faf951d815741..76ab03cd520ba 100644
--- a/nixos/modules/services/cluster/kubernetes/pki.nix
+++ b/nixos/modules/services/cluster/kubernetes/pki.nix
@@ -98,6 +98,7 @@ in
         the public and private keys respectively.
       '';
       default = "${config.services.cfssl.dataDir}/ca";
+      defaultText = literalExpression ''"''${config.services.cfssl.dataDir}/ca"'';
       type = str;
     };
 
diff --git a/nixos/modules/services/cluster/kubernetes/proxy.nix b/nixos/modules/services/cluster/kubernetes/proxy.nix
index a92043d52597c..5f3da034120b7 100644
--- a/nixos/modules/services/cluster/kubernetes/proxy.nix
+++ b/nixos/modules/services/cluster/kubernetes/proxy.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   top = config.services.kubernetes;
+  otop = options.services.kubernetes;
   cfg = top.proxy;
 in
 {
@@ -31,12 +32,14 @@ in
     featureGates = mkOption {
       description = "List set of feature gates";
       default = top.featureGates;
+      defaultText = literalExpression "config.${otop.featureGates}";
       type = listOf str;
     };
 
     hostname = mkOption {
       description = "Kubernetes proxy hostname override.";
       default = config.networking.hostName;
+      defaultText = literalExpression "config.networking.hostName";
       type = str;
     };
 
diff --git a/nixos/modules/services/cluster/kubernetes/scheduler.nix b/nixos/modules/services/cluster/kubernetes/scheduler.nix
index 1b0c22a11426a..87263ee72fa43 100644
--- a/nixos/modules/services/cluster/kubernetes/scheduler.nix
+++ b/nixos/modules/services/cluster/kubernetes/scheduler.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   top = config.services.kubernetes;
+  otop = options.services.kubernetes;
   cfg = top.scheduler;
 in
 {
@@ -27,6 +28,7 @@ in
     featureGates = mkOption {
       description = "List set of feature gates";
       default = top.featureGates;
+      defaultText = literalExpression "config.${otop.featureGates}";
       type = listOf str;
     };
 
diff --git a/nixos/modules/services/computing/slurm/slurm.nix b/nixos/modules/services/computing/slurm/slurm.nix
index 0c96f32313297..7686ff99bfc03 100644
--- a/nixos/modules/services/computing/slurm/slurm.nix
+++ b/nixos/modules/services/computing/slurm/slurm.nix
@@ -1,10 +1,11 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
 
   cfg = config.services.slurm;
+  opt = options.services.slurm;
   # configuration file can be generated by http://slurm.schedmd.com/configurator.html
 
   defaultUser = "slurm";
@@ -80,6 +81,7 @@ in
         dbdHost = mkOption {
           type = types.str;
           default = config.networking.hostName;
+          defaultText = literalExpression "config.networking.hostName";
           description = ''
             Hostname of the machine where <literal>slurmdbd</literal>
             is running (i.e. name returned by <literal>hostname -s</literal>).
@@ -89,6 +91,7 @@ in
         storageUser = mkOption {
           type = types.str;
           default = cfg.user;
+          defaultText = literalExpression "config.${opt.user}";
           description = ''
             Database user name.
           '';
@@ -153,6 +156,7 @@ in
       controlAddr = mkOption {
         type = types.nullOr types.str;
         default = cfg.controlMachine;
+        defaultText = literalExpression "config.${opt.controlMachine}";
         example = null;
         description = ''
           Name that ControlMachine should be referred to in establishing a
@@ -278,6 +282,10 @@ in
         type = types.path;
         internal = true;
         default = etcSlurm;
+        defaultText = literalDocBook ''
+          Directory created from generated config files and
+          <literal>config.${opt.extraConfigPaths}</literal>.
+        '';
         description = ''
           Path to directory with slurm config files. This option is set by default from the
           Slurm module and is meant to make the Slurm config file available to other modules.
diff --git a/nixos/modules/services/continuous-integration/buildbot/master.nix b/nixos/modules/services/continuous-integration/buildbot/master.nix
index 2dc61c21ac71b..aaa159d3cb18c 100644
--- a/nixos/modules/services/continuous-integration/buildbot/master.nix
+++ b/nixos/modules/services/continuous-integration/buildbot/master.nix
@@ -1,11 +1,12 @@
 # NixOS module for Buildbot continous integration server.
 
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.buildbot-master;
+  opt = options.services.buildbot-master;
 
   python = cfg.package.pythonModule;
 
@@ -152,6 +153,7 @@ in {
 
       buildbotDir = mkOption {
         default = "${cfg.home}/master";
+        defaultText = literalExpression ''"''${config.${opt.home}}/master"'';
         type = types.path;
         description = "Specifies the Buildbot directory.";
       };
diff --git a/nixos/modules/services/continuous-integration/buildbot/worker.nix b/nixos/modules/services/continuous-integration/buildbot/worker.nix
index dd4f4a4a74a9c..1d7f53bb6559a 100644
--- a/nixos/modules/services/continuous-integration/buildbot/worker.nix
+++ b/nixos/modules/services/continuous-integration/buildbot/worker.nix
@@ -1,11 +1,12 @@
 # NixOS module for Buildbot Worker.
 
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.buildbot-worker;
+  opt = options.services.buildbot-worker;
 
   python = cfg.package.pythonModule;
 
@@ -77,6 +78,7 @@ in {
 
       buildbotDir = mkOption {
         default = "${cfg.home}/worker";
+        defaultText = literalExpression ''"''${config.${opt.home}}/worker"'';
         type = types.path;
         description = "Specifies the Buildbot directory.";
       };
diff --git a/nixos/modules/services/continuous-integration/github-runner.nix b/nixos/modules/services/continuous-integration/github-runner.nix
index 943c1e4598df5..afd85c972b56e 100644
--- a/nixos/modules/services/continuous-integration/github-runner.nix
+++ b/nixos/modules/services/continuous-integration/github-runner.nix
@@ -10,6 +10,8 @@ let
   stateDir = "%S/${systemdDir}";
   # %L: Log directory root (usually /var/log); see systemd.unit(5)
   logsDir = "%L/${systemdDir}";
+  # Name of file stored in service state directory
+  currentConfigTokenFilename = ".current-token";
 in
 {
   options.services.github-runner = {
@@ -58,6 +60,7 @@ in
       '';
       example = "nixos";
       default = config.networking.hostName;
+      defaultText = literalExpression "config.networking.hostName";
     };
 
     runnerGroup = mkOption {
@@ -143,13 +146,11 @@ in
         ExecStart = "${cfg.package}/bin/runsvc.sh";
 
         # Does the following, sequentially:
-        # - Copy the current and the previous `tokenFile` to the $RUNTIME_DIRECTORY
-        #   and make it accessible to the service user to allow for a content
-        #   comparison.
-        # - If the module configuration or the token has changed, clear the state directory.
-        # - Configure the runner.
-        # - Copy the configured `tokenFile` to the $STATE_DIRECTORY and make it
-        #   inaccessible to the service user.
+        # - If the module configuration or the token has changed, purge the state directory,
+        #   and create the current and the new token file with the contents of the configured
+        #   token. While both files have the same content, only the later is accessible by
+        #   the service user.
+        # - Configure the runner using the new token file. When finished, delete it.
         # - Set up the directory structure by creating the necessary symlinks.
         ExecStartPre =
           let
@@ -172,37 +173,20 @@ in
             currentConfigPath = "$STATE_DIRECTORY/.nixos-current-config.json";
             runnerRegistrationConfig = getAttrs [ "name" "tokenFile" "url" "runnerGroup" "extraLabels" ] cfg;
             newConfigPath = builtins.toFile "${svcName}-config.json" (builtins.toJSON runnerRegistrationConfig);
-            currentConfigTokenFilename = ".current-token";
             newConfigTokenFilename = ".new-token";
             runnerCredFiles = [
               ".credentials"
               ".credentials_rsaparams"
               ".runner"
             ];
-            ownConfigTokens = writeScript "own-config-tokens" ''
-              # Copy current and new token file to runtime dir and make it accessible to the service user
-              cp ${escapeShellArg cfg.tokenFile} "$RUNTIME_DIRECTORY/${newConfigTokenFilename}"
-              chmod 600 "$RUNTIME_DIRECTORY/${newConfigTokenFilename}"
-              chown "$USER" "$RUNTIME_DIRECTORY/${newConfigTokenFilename}"
-
-              if [[ -e "$STATE_DIRECTORY/${currentConfigTokenFilename}" ]]; then
-                cp "$STATE_DIRECTORY/${currentConfigTokenFilename}" "$RUNTIME_DIRECTORY/${currentConfigTokenFilename}"
-                chmod 600 "$RUNTIME_DIRECTORY/${currentConfigTokenFilename}"
-                chown "$USER" "$RUNTIME_DIRECTORY/${currentConfigTokenFilename}"
-              fi
-            '';
-            disownConfigTokens = writeScript "disown-config-tokens" ''
-              # Make the token inaccessible to the runner service user
-              chmod 600 "$STATE_DIRECTORY/${currentConfigTokenFilename}"
-              chown root:root "$STATE_DIRECTORY/${currentConfigTokenFilename}"
-            '';
             unconfigureRunner = writeScript "unconfigure" ''
               differs=
               # Set `differs = 1` if current and new runner config differ or if `currentConfigPath` does not exist
               ${pkgs.diffutils}/bin/diff -q '${newConfigPath}' "${currentConfigPath}" >/dev/null 2>&1 || differs=1
               # Also trigger a registration if the token content changed
               ${pkgs.diffutils}/bin/diff -q \
-                "$RUNTIME_DIRECTORY"/{${currentConfigTokenFilename},${newConfigTokenFilename}} \
+                "$STATE_DIRECTORY"/${currentConfigTokenFilename} \
+                ${escapeShellArg cfg.tokenFile} \
                 >/dev/null 2>&1 || differs=1
 
               if [[ -n "$differs" ]]; then
@@ -210,13 +194,18 @@ in
                 echo "The old runner will still appear in the GitHub Actions UI." \
                   "You have to remove it manually."
                 find "$STATE_DIRECTORY/" -mindepth 1 -delete
+
+                # Copy the configured token file to the state dir and allow the service user to read the file
+                install --mode=666 ${escapeShellArg cfg.tokenFile} "$STATE_DIRECTORY/${newConfigTokenFilename}"
+                # Also copy current file to allow for a diff on the next start
+                install --mode=600 ${escapeShellArg cfg.tokenFile} "$STATE_DIRECTORY/${currentConfigTokenFilename}"
               fi
             '';
             configureRunner = writeScript "configure" ''
-              empty=$(ls -A "$STATE_DIRECTORY")
-              if [[ -z "$empty" ]]; then
+              if [[ -e "$STATE_DIRECTORY/${newConfigTokenFilename}" ]]; then
                 echo "Configuring GitHub Actions Runner"
-                token=$(< "$RUNTIME_DIRECTORY"/${newConfigTokenFilename})
+
+                token=$(< "$STATE_DIRECTORY"/${newConfigTokenFilename})
                 RUNNER_ROOT="$STATE_DIRECTORY" ${cfg.package}/bin/config.sh \
                   --unattended \
                   --work "$RUNTIME_DIRECTORY" \
@@ -233,8 +222,7 @@ in
                 rm    -rf "$STATE_DIRECTORY/_diag/"
 
                 # Cleanup token from config
-                rm -f "$RUNTIME_DIRECTORY"/${currentConfigTokenFilename}
-                mv    "$RUNTIME_DIRECTORY"/${newConfigTokenFilename} "$STATE_DIRECTORY/${currentConfigTokenFilename}"
+                rm "$STATE_DIRECTORY/${newConfigTokenFilename}"
 
                 # Symlink to new config
                 ln -s '${newConfigPath}' "${currentConfigPath}"
@@ -249,10 +237,8 @@ in
             '';
           in
           map (x: "${x} ${escapeShellArgs [ stateDir runtimeDir logsDir ]}") [
-            "+${ownConfigTokens}" # runs as root
-            unconfigureRunner
+            "+${unconfigureRunner}" # runs as root
             configureRunner
-            "+${disownConfigTokens}" # runs as root
             setupRuntimeDir
           ];
 
@@ -265,6 +251,13 @@ in
         StateDirectoryMode = "0700";
         WorkingDirectory = runtimeDir;
 
+        InaccessiblePaths = [
+          # Token file path given in the configuration
+          cfg.tokenFile
+          # Token file in the state directory
+          "${stateDir}/${currentConfigTokenFilename}"
+        ];
+
         # By default, use a dynamically allocated user
         DynamicUser = true;
 
diff --git a/nixos/modules/services/continuous-integration/gocd-agent/default.nix b/nixos/modules/services/continuous-integration/gocd-agent/default.nix
index acc3fb12484a5..c63998c6736a6 100644
--- a/nixos/modules/services/continuous-integration/gocd-agent/default.nix
+++ b/nixos/modules/services/continuous-integration/gocd-agent/default.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.gocd-agent;
+  opt = options.services.gocd-agent;
 in {
   options = {
     services.gocd-agent = {
@@ -98,6 +99,15 @@ in {
           "-Dcruise.console.publish.interval=10"
           "-Djava.security.egd=file:/dev/./urandom"
         ];
+        defaultText = literalExpression ''
+          [
+            "-Xms''${config.${opt.initialJavaHeapSize}}"
+            "-Xmx''${config.${opt.maxJavaHeapMemory}}"
+            "-Djava.io.tmpdir=/tmp"
+            "-Dcruise.console.publish.interval=10"
+            "-Djava.security.egd=file:/dev/./urandom"
+          ]
+        '';
         description = ''
           Specifies startup command line arguments to pass to Go.CD agent
           java process.
diff --git a/nixos/modules/services/continuous-integration/gocd-server/default.nix b/nixos/modules/services/continuous-integration/gocd-server/default.nix
index 646bf13ac67ad..3540656f93448 100644
--- a/nixos/modules/services/continuous-integration/gocd-server/default.nix
+++ b/nixos/modules/services/continuous-integration/gocd-server/default.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.gocd-server;
+  opt = options.services.gocd-server;
 in {
   options = {
     services.gocd-server = {
@@ -106,6 +107,20 @@ in {
           "-Dcruise.server.port=${toString cfg.port}"
           "-Dcruise.server.ssl.port=${toString cfg.sslPort}"
         ];
+        defaultText = literalExpression ''
+          [
+            "-Xms''${config.${opt.initialJavaHeapSize}}"
+            "-Xmx''${config.${opt.maxJavaHeapMemory}}"
+            "-Dcruise.listen.host=''${config.${opt.listenAddress}}"
+            "-Duser.language=en"
+            "-Djruby.rack.request.size.threshold.bytes=30000000"
+            "-Duser.country=US"
+            "-Dcruise.config.dir=''${config.${opt.workDir}}/conf"
+            "-Dcruise.config.file=''${config.${opt.workDir}}/conf/cruise-config.xml"
+            "-Dcruise.server.port=''${toString config.${opt.port}}"
+            "-Dcruise.server.ssl.port=''${toString config.${opt.sslPort}}"
+          ]
+        '';
 
         description = ''
           Specifies startup command line arguments to pass to Go.CD server
diff --git a/nixos/modules/services/continuous-integration/hydra/default.nix b/nixos/modules/services/continuous-integration/hydra/default.nix
index d6cde77c0a3f5..ccb7cc21734eb 100644
--- a/nixos/modules/services/continuous-integration/hydra/default.nix
+++ b/nixos/modules/services/continuous-integration/hydra/default.nix
@@ -203,6 +203,7 @@ in
       buildMachinesFiles = mkOption {
         type = types.listOf types.path;
         default = optional (config.nix.buildMachines != []) "/etc/nix/machines";
+        defaultText = literalExpression ''optional (config.nix.buildMachines != []) "/etc/nix/machines"'';
         example = [ "/etc/nix/machines" "/var/lib/hydra/provisioner/machines" ];
         description = "List of files containing build machines.";
       };
diff --git a/nixos/modules/services/databases/couchdb.nix b/nixos/modules/services/databases/couchdb.nix
index 16dd64f2373e6..266bc82b69678 100644
--- a/nixos/modules/services/databases/couchdb.nix
+++ b/nixos/modules/services/databases/couchdb.nix
@@ -43,8 +43,8 @@ in {
 
       package = mkOption {
         type = types.package;
-        default = pkgs.couchdb;
-        defaultText = literalExpression "pkgs.couchdb";
+        default = pkgs.couchdb3;
+        defaultText = literalExpression "pkgs.couchdb3";
         description = ''
           CouchDB package to use.
         '';
@@ -150,6 +150,14 @@ in {
         '';
       };
 
+      argsFile = mkOption {
+        type = types.path;
+        default = "${cfg.package}/etc/vm.args";
+        description = ''
+          vm.args configuration. Overrides Couchdb's Erlang VM parameters file.
+        '';
+      };
+
       configFile = mkOption {
         type = types.path;
         description = ''
@@ -186,12 +194,14 @@ in {
       '';
 
       environment = {
-        # we are actually specifying 4 configuration files:
+        # we are actually specifying 5 configuration files:
         # 1. the preinstalled default.ini
         # 2. the module configuration
         # 3. the extraConfig from the module options
         # 4. the locally writable config file, which couchdb itself writes to
         ERL_FLAGS= ''-couch_ini ${cfg.package}/etc/default.ini ${configFile} ${pkgs.writeText "couchdb-extra.ini" cfg.extraConfig} ${cfg.configFile}'';
+        # 5. the vm.args file
+        COUCHDB_ARGS_FILE=''${cfg.argsFile}'';
       };
 
       serviceConfig = {
diff --git a/nixos/modules/services/databases/hbase.nix b/nixos/modules/services/databases/hbase.nix
index 181be2d6b0b87..fe4f05eec643c 100644
--- a/nixos/modules/services/databases/hbase.nix
+++ b/nixos/modules/services/databases/hbase.nix
@@ -1,14 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, options, lib, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.hbase;
-
-  defaultConfig = {
-    "hbase.rootdir" = "file://${cfg.dataDir}/hbase";
-    "hbase.zookeeper.property.dataDir" = "${cfg.dataDir}/zookeeper";
-  };
+  opt = options.services.hbase;
 
   buildProperty = configAttr:
     (builtins.concatStringsSep "\n"
@@ -23,7 +19,7 @@ let
 
   configFile = pkgs.writeText "hbase-site.xml"
     ''<configuration>
-        ${buildProperty (defaultConfig // cfg.settings)}
+        ${buildProperty (opt.settings.default // cfg.settings)}
       </configuration>
     '';
 
@@ -96,7 +92,16 @@ in {
 
       settings = mkOption {
         type = with lib.types; attrsOf (oneOf [ str int bool ]);
-        default = defaultConfig;
+        default = {
+          "hbase.rootdir" = "file://${cfg.dataDir}/hbase";
+          "hbase.zookeeper.property.dataDir" = "${cfg.dataDir}/zookeeper";
+        };
+        defaultText = literalExpression ''
+          {
+            "hbase.rootdir" = "file://''${config.${opt.dataDir}}/hbase";
+            "hbase.zookeeper.property.dataDir" = "''${config.${opt.dataDir}}/zookeeper";
+          }
+        '';
         description = ''
           configurations in hbase-site.xml, see <link xlink:href="https://github.com/apache/hbase/blob/master/hbase-server/src/test/resources/hbase-site.xml"/> for details.
         '';
diff --git a/nixos/modules/services/databases/influxdb2.nix b/nixos/modules/services/databases/influxdb2.nix
index 15f008cbc6d6c..340c515bbb434 100644
--- a/nixos/modules/services/databases/influxdb2.nix
+++ b/nixos/modules/services/databases/influxdb2.nix
@@ -1,5 +1,7 @@
 { config, lib, pkgs, ... }:
+
 with lib;
+
 let
   format = pkgs.formats.json { };
   cfg = config.services.influxdb2;
@@ -9,12 +11,14 @@ in
   options = {
     services.influxdb2 = {
       enable = mkEnableOption "the influxdb2 server";
+
       package = mkOption {
-        default = pkgs.influxdb2;
+        default = pkgs.influxdb2-server;
         defaultText = literalExpression "pkgs.influxdb2";
         description = "influxdb2 derivation to use.";
         type = types.package;
       };
+
       settings = mkOption {
         default = { };
         description = ''configuration options for influxdb2, see <link xlink:href="https://docs.influxdata.com/influxdb/v2.0/reference/config-options"/> for details.'';
@@ -28,18 +32,20 @@ in
       assertion = !(builtins.hasAttr "bolt-path" cfg.settings) && !(builtins.hasAttr "engine-path" cfg.settings);
       message = "services.influxdb2.config: bolt-path and engine-path should not be set as they are managed by systemd";
     }];
+
     systemd.services.influxdb2 = {
       description = "InfluxDB is an open-source, distributed, time series database";
       documentation = [ "https://docs.influxdata.com/influxdb/" ];
       wantedBy = [ "multi-user.target" ];
       after = [ "network.target" ];
       environment = {
-        INFLUXD_CONFIG_PATH = "${configFile}";
+        INFLUXD_CONFIG_PATH = configFile;
       };
       serviceConfig = {
         ExecStart = "${cfg.package}/bin/influxd --bolt-path \${STATE_DIRECTORY}/influxd.bolt --engine-path \${STATE_DIRECTORY}/engine";
         StateDirectory = "influxdb2";
-        DynamicUser = true;
+        User = "influxdb2";
+        Group = "influxdb2";
         CapabilityBoundingSet = "";
         SystemCallFilter = "@system-service";
         LimitNOFILE = 65536;
@@ -47,6 +53,13 @@ in
         Restart = "on-failure";
       };
     };
+
+    users.extraUsers.influxdb2 = {
+      isSystemUser = true;
+      group = "influxdb2";
+    };
+
+    users.extraGroups.influxdb2 = {};
   };
 
   meta.maintainers = with lib.maintainers; [ nickcao ];
diff --git a/nixos/modules/services/databases/mysql.nix b/nixos/modules/services/databases/mysql.nix
index a9d9a6d80588e..625b31d081c9a 100644
--- a/nixos/modules/services/databases/mysql.nix
+++ b/nixos/modules/services/databases/mysql.nix
@@ -11,10 +11,8 @@ let
   mysqldOptions =
     "--user=${cfg.user} --datadir=${cfg.dataDir} --basedir=${cfg.package}";
 
-  settingsFile = pkgs.writeText "my.cnf" (
-    generators.toINI { listsAsDuplicateKeys = true; } cfg.settings +
-    optionalString (cfg.extraOptions != null) "[mysqld]\n${cfg.extraOptions}"
-  );
+  format = pkgs.formats.ini { listsAsDuplicateKeys = true; };
+  configFile = format.generate "my.cnf" cfg.settings;
 
 in
 
@@ -22,6 +20,9 @@ in
   imports = [
     (mkRemovedOptionModule [ "services" "mysql" "pidDir" ] "Don't wait for pidfiles, describe dependencies through systemd.")
     (mkRemovedOptionModule [ "services" "mysql" "rootPassword" ] "Use socket authentication or set the password outside of the nix store.")
+    (mkRemovedOptionModule [ "services" "mysql" "extraOptions" ] "Use services.mysql.settings.mysqld instead.")
+    (mkRemovedOptionModule [ "services" "mysql" "bind" ] "Use services.mysql.settings.mysqld.bind-address instead.")
+    (mkRemovedOptionModule [ "services" "mysql" "port" ] "Use services.mysql.settings.mysqld.port instead.")
   ];
 
   ###### interface
@@ -40,41 +41,53 @@ in
         ";
       };
 
-      bind = mkOption {
-        type = types.nullOr types.str;
-        default = null;
-        example = "0.0.0.0";
-        description = "Address to bind to. The default is to bind to all addresses.";
-      };
-
-      port = mkOption {
-        type = types.port;
-        default = 3306;
-        description = "Port of MySQL.";
-      };
-
       user = mkOption {
         type = types.str;
         default = "mysql";
-        description = "User account under which MySQL runs.";
+        description = ''
+          User account under which MySQL runs.
+
+          <note><para>
+          If left as the default value this user will automatically be created
+          on system activation, otherwise you are responsible for
+          ensuring the user exists before the MySQL service starts.
+          </para></note>
+        '';
       };
 
       group = mkOption {
         type = types.str;
         default = "mysql";
-        description = "Group under which MySQL runs.";
+        description = ''
+          Group account under which MySQL runs.
+
+          <note><para>
+          If left as the default value this group will automatically be created
+          on system activation, otherwise you are responsible for
+          ensuring the user exists before the MySQL service starts.
+          </para></note>
+        '';
       };
 
       dataDir = mkOption {
         type = types.path;
         example = "/var/lib/mysql";
-        description = "Location where MySQL stores its table files.";
+        description = ''
+          The data directory for MySQL.
+
+          <note><para>
+          If left as the default value of <literal>/var/lib/mysql</literal> this directory will automatically be created before the MySQL
+          server starts, otherwise you are responsible for ensuring the directory exists with appropriate ownership and permissions.
+          </para></note>
+        '';
       };
 
       configFile = mkOption {
         type = types.path;
-        default = settingsFile;
-        defaultText = literalExpression "settingsFile";
+        default = configFile;
+        defaultText = ''
+          A configuration file automatically generated by NixOS.
+        '';
         description = ''
           Override the configuration file used by MySQL. By default,
           NixOS generates one automatically from <option>services.mysql.settings</option>.
@@ -92,7 +105,7 @@ in
       };
 
       settings = mkOption {
-        type = with types; attrsOf (attrsOf (oneOf [ bool int str (listOf str) ]));
+        type = format.type;
         default = {};
         description = ''
           MySQL configuration. Refer to
@@ -125,23 +138,6 @@ in
         '';
       };
 
-      extraOptions = mkOption {
-        type = with types; nullOr lines;
-        default = null;
-        example = ''
-          key_buffer_size = 6G
-          table_cache = 1600
-          log-error = /var/log/mysql_err.log
-        '';
-        description = ''
-          Provide extra options to the MySQL configuration file.
-
-          Please note, that these options are added to the
-          <literal>[mysqld]</literal> section so you don't need to explicitly
-          state it again.
-        '';
-      };
-
       initialDatabases = mkOption {
         type = types.listOf (types.submodule {
           options = {
@@ -287,7 +283,7 @@ in
         };
 
         masterPort = mkOption {
-          type = types.int;
+          type = types.port;
           default = 3306;
           description = "Port number on which the MySQL master server runs.";
         };
@@ -299,9 +295,7 @@ in
 
   ###### implementation
 
-  config = mkIf config.services.mysql.enable {
-
-    warnings = optional (cfg.extraOptions != null) "services.mysql.`extraOptions` is deprecated, please use services.mysql.`settings`.";
+  config = mkIf cfg.enable {
 
     services.mysql.dataDir =
       mkDefault (if versionAtLeast config.system.stateVersion "17.09" then "/var/lib/mysql"
@@ -310,8 +304,7 @@ in
     services.mysql.settings.mysqld = mkMerge [
       {
         datadir = cfg.dataDir;
-        bind-address = mkIf (cfg.bind != null) cfg.bind;
-        port = cfg.port;
+        port = mkDefault 3306;
       }
       (mkIf (cfg.replication.role == "master" || cfg.replication.role == "slave") {
         log-bin = "mysql-bin-${toString cfg.replication.serverId}";
@@ -341,156 +334,150 @@ in
 
     environment.etc."my.cnf".source = cfg.configFile;
 
-    systemd.tmpfiles.rules = [
-      "d '${cfg.dataDir}' 0700 '${cfg.user}' '${cfg.group}' - -"
-      "z '${cfg.dataDir}' 0700 '${cfg.user}' '${cfg.group}' - -"
-    ];
-
-    systemd.services.mysql = let
-      hasNotify = isMariaDB;
-    in {
-        description = "MySQL Server";
-
-        after = [ "network.target" ];
-        wantedBy = [ "multi-user.target" ];
-        restartTriggers = [ cfg.configFile ];
-
-        unitConfig.RequiresMountsFor = "${cfg.dataDir}";
-
-        path = [
-          # Needed for the mysql_install_db command in the preStart script
-          # which calls the hostname command.
-          pkgs.nettools
-        ];
-
-        preStart = if isMariaDB then ''
-          if ! test -e ${cfg.dataDir}/mysql; then
-            ${cfg.package}/bin/mysql_install_db --defaults-file=/etc/my.cnf ${mysqldOptions}
-            touch ${cfg.dataDir}/mysql_init
-          fi
-        '' else ''
-          if ! test -e ${cfg.dataDir}/mysql; then
-            ${cfg.package}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} --initialize-insecure
-            touch ${cfg.dataDir}/mysql_init
-          fi
-        '';
-
-        script = ''
-          # https://mariadb.com/kb/en/getting-started-with-mariadb-galera-cluster/#systemd-and-galera-recovery
-          if test -n "''${_WSREP_START_POSITION}"; then
-            if test -e "${cfg.package}/bin/galera_recovery"; then
-              VAR=$(cd ${cfg.package}/bin/..; ${cfg.package}/bin/galera_recovery); [[ $? -eq 0 ]] && export _WSREP_START_POSITION=$VAR || exit 1
-            fi
-          fi
-
-          # The last two environment variables are used for starting Galera clusters
-          exec ${cfg.package}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION
-        '';
-
-        postStart = let
-          # The super user account to use on *first* run of MySQL server
-          superUser = if isMariaDB then cfg.user else "root";
-        in ''
-          ${optionalString (!hasNotify) ''
-            # Wait until the MySQL server is available for use
-            count=0
-            while [ ! -e /run/mysqld/mysqld.sock ]
-            do
-                if [ $count -eq 30 ]
-                then
-                    echo "Tried 30 times, giving up..."
-                    exit 1
-                fi
-
-                echo "MySQL daemon not yet started. Waiting for 1 second..."
-                count=$((count++))
-                sleep 1
-            done
-          ''}
-
-          if [ -f ${cfg.dataDir}/mysql_init ]
-          then
-              # While MariaDB comes with a 'mysql' super user account since 10.4.x, MySQL does not
-              # Since we don't want to run this service as 'root' we need to ensure the account exists on first run
-              ( echo "CREATE USER IF NOT EXISTS '${cfg.user}'@'localhost' IDENTIFIED WITH ${if isMariaDB then "unix_socket" else "auth_socket"};"
-                echo "GRANT ALL PRIVILEGES ON *.* TO '${cfg.user}'@'localhost' WITH GRANT OPTION;"
-              ) | ${cfg.package}/bin/mysql -u ${superUser} -N
-
-              ${concatMapStrings (database: ''
-                # Create initial databases
-                if ! test -e "${cfg.dataDir}/${database.name}"; then
-                    echo "Creating initial database: ${database.name}"
-                    ( echo 'create database `${database.name}`;'
-
-                      ${optionalString (database.schema != null) ''
-                      echo 'use `${database.name}`;'
-
-                      # TODO: this silently falls through if database.schema does not exist,
-                      # we should catch this somehow and exit, but can't do it here because we're in a subshell.
-                      if [ -f "${database.schema}" ]
-                      then
-                          cat ${database.schema}
-                      elif [ -d "${database.schema}" ]
-                      then
-                          cat ${database.schema}/mysql-databases/*.sql
-                      fi
-                      ''}
-                    ) | ${cfg.package}/bin/mysql -u ${superUser} -N
-                fi
-              '') cfg.initialDatabases}
-
-              ${optionalString (cfg.replication.role == "master")
-                ''
-                  # Set up the replication master
-
-                  ( echo "use mysql;"
-                    echo "CREATE USER '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}' IDENTIFIED WITH mysql_native_password;"
-                    echo "SET PASSWORD FOR '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}' = PASSWORD('${cfg.replication.masterPassword}');"
-                    echo "GRANT REPLICATION SLAVE ON *.* TO '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}';"
-                  ) | ${cfg.package}/bin/mysql -u ${superUser} -N
-                ''}
-
-              ${optionalString (cfg.replication.role == "slave")
-                ''
-                  # Set up the replication slave
-
-                  ( echo "stop slave;"
-                    echo "change master to master_host='${cfg.replication.masterHost}', master_user='${cfg.replication.masterUser}', master_password='${cfg.replication.masterPassword}';"
-                    echo "start slave;"
-                  ) | ${cfg.package}/bin/mysql -u ${superUser} -N
-                ''}
-
-              ${optionalString (cfg.initialScript != null)
-                ''
-                  # Execute initial script
-                  # using toString to avoid copying the file to nix store if given as path instead of string,
-                  # as it might contain credentials
-                  cat ${toString cfg.initialScript} | ${cfg.package}/bin/mysql -u ${superUser} -N
-                ''}
-
-              rm ${cfg.dataDir}/mysql_init
+    systemd.services.mysql = {
+      description = "MySQL Server";
+
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      restartTriggers = [ cfg.configFile ];
+
+      unitConfig.RequiresMountsFor = cfg.dataDir;
+
+      path = [
+        # Needed for the mysql_install_db command in the preStart script
+        # which calls the hostname command.
+        pkgs.nettools
+      ];
+
+      preStart = if isMariaDB then ''
+        if ! test -e ${cfg.dataDir}/mysql; then
+          ${cfg.package}/bin/mysql_install_db --defaults-file=/etc/my.cnf ${mysqldOptions}
+          touch ${cfg.dataDir}/mysql_init
+        fi
+      '' else ''
+        if ! test -e ${cfg.dataDir}/mysql; then
+          ${cfg.package}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} --initialize-insecure
+          touch ${cfg.dataDir}/mysql_init
+        fi
+      '';
+
+      script = ''
+        # https://mariadb.com/kb/en/getting-started-with-mariadb-galera-cluster/#systemd-and-galera-recovery
+        if test -n "''${_WSREP_START_POSITION}"; then
+          if test -e "${cfg.package}/bin/galera_recovery"; then
+            VAR=$(cd ${cfg.package}/bin/..; ${cfg.package}/bin/galera_recovery); [[ $? -eq 0 ]] && export _WSREP_START_POSITION=$VAR || exit 1
           fi
+        fi
+
+        # The last two environment variables are used for starting Galera clusters
+        exec ${cfg.package}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION
+      '';
+
+      postStart = let
+        # The super user account to use on *first* run of MySQL server
+        superUser = if isMariaDB then cfg.user else "root";
+      in ''
+        ${optionalString (!isMariaDB) ''
+          # Wait until the MySQL server is available for use
+          count=0
+          while [ ! -e /run/mysqld/mysqld.sock ]
+          do
+              if [ $count -eq 30 ]
+              then
+                  echo "Tried 30 times, giving up..."
+                  exit 1
+              fi
+
+              echo "MySQL daemon not yet started. Waiting for 1 second..."
+              count=$((count++))
+              sleep 1
+          done
+        ''}
+
+        if [ -f ${cfg.dataDir}/mysql_init ]
+        then
+            # While MariaDB comes with a 'mysql' super user account since 10.4.x, MySQL does not
+            # Since we don't want to run this service as 'root' we need to ensure the account exists on first run
+            ( echo "CREATE USER IF NOT EXISTS '${cfg.user}'@'localhost' IDENTIFIED WITH ${if isMariaDB then "unix_socket" else "auth_socket"};"
+              echo "GRANT ALL PRIVILEGES ON *.* TO '${cfg.user}'@'localhost' WITH GRANT OPTION;"
+            ) | ${cfg.package}/bin/mysql -u ${superUser} -N
 
-          ${optionalString (cfg.ensureDatabases != []) ''
-            (
             ${concatMapStrings (database: ''
-              echo "CREATE DATABASE IF NOT EXISTS \`${database}\`;"
-            '') cfg.ensureDatabases}
+              # Create initial databases
+              if ! test -e "${cfg.dataDir}/${database.name}"; then
+                  echo "Creating initial database: ${database.name}"
+                  ( echo 'create database `${database.name}`;'
+
+                    ${optionalString (database.schema != null) ''
+                    echo 'use `${database.name}`;'
+
+                    # TODO: this silently falls through if database.schema does not exist,
+                    # we should catch this somehow and exit, but can't do it here because we're in a subshell.
+                    if [ -f "${database.schema}" ]
+                    then
+                        cat ${database.schema}
+                    elif [ -d "${database.schema}" ]
+                    then
+                        cat ${database.schema}/mysql-databases/*.sql
+                    fi
+                    ''}
+                  ) | ${cfg.package}/bin/mysql -u ${superUser} -N
+              fi
+            '') cfg.initialDatabases}
+
+            ${optionalString (cfg.replication.role == "master")
+              ''
+                # Set up the replication master
+
+                ( echo "use mysql;"
+                  echo "CREATE USER '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}' IDENTIFIED WITH mysql_native_password;"
+                  echo "SET PASSWORD FOR '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}' = PASSWORD('${cfg.replication.masterPassword}');"
+                  echo "GRANT REPLICATION SLAVE ON *.* TO '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}';"
+                ) | ${cfg.package}/bin/mysql -u ${superUser} -N
+              ''}
+
+            ${optionalString (cfg.replication.role == "slave")
+              ''
+                # Set up the replication slave
+
+                ( echo "stop slave;"
+                  echo "change master to master_host='${cfg.replication.masterHost}', master_user='${cfg.replication.masterUser}', master_password='${cfg.replication.masterPassword}';"
+                  echo "start slave;"
+                ) | ${cfg.package}/bin/mysql -u ${superUser} -N
+              ''}
+
+            ${optionalString (cfg.initialScript != null)
+              ''
+                # Execute initial script
+                # using toString to avoid copying the file to nix store if given as path instead of string,
+                # as it might contain credentials
+                cat ${toString cfg.initialScript} | ${cfg.package}/bin/mysql -u ${superUser} -N
+              ''}
+
+            rm ${cfg.dataDir}/mysql_init
+        fi
+
+        ${optionalString (cfg.ensureDatabases != []) ''
+          (
+          ${concatMapStrings (database: ''
+            echo "CREATE DATABASE IF NOT EXISTS \`${database}\`;"
+          '') cfg.ensureDatabases}
+          ) | ${cfg.package}/bin/mysql -N
+        ''}
+
+        ${concatMapStrings (user:
+          ''
+            ( echo "CREATE USER IF NOT EXISTS '${user.name}'@'localhost' IDENTIFIED WITH ${if isMariaDB then "unix_socket" else "auth_socket"};"
+              ${concatStringsSep "\n" (mapAttrsToList (database: permission: ''
+                echo "GRANT ${permission} ON ${database} TO '${user.name}'@'localhost';"
+              '') user.ensurePermissions)}
             ) | ${cfg.package}/bin/mysql -N
-          ''}
-
-          ${concatMapStrings (user:
-            ''
-              ( echo "CREATE USER IF NOT EXISTS '${user.name}'@'localhost' IDENTIFIED WITH ${if isMariaDB then "unix_socket" else "auth_socket"};"
-                ${concatStringsSep "\n" (mapAttrsToList (database: permission: ''
-                  echo "GRANT ${permission} ON ${database} TO '${user.name}'@'localhost';"
-                '') user.ensurePermissions)}
-              ) | ${cfg.package}/bin/mysql -N
-            '') cfg.ensureUsers}
-        '';
+          '') cfg.ensureUsers}
+      '';
 
-        serviceConfig = {
-          Type = if hasNotify then "notify" else "simple";
+      serviceConfig = mkMerge [
+        {
+          Type = if isMariaDB then "notify" else "simple";
           Restart = "on-abort";
           RestartSec = "5s";
 
@@ -523,9 +510,12 @@ in
           PrivateMounts = true;
           # System Call Filtering
           SystemCallArchitectures = "native";
-        };
-      };
-
+        }
+        (mkIf (cfg.dataDir == "/var/lib/mysql") {
+          StateDirectory = "mysql";
+          StateDirectoryMode = "0700";
+        })
+      ];
+    };
   };
-
 }
diff --git a/nixos/modules/services/databases/neo4j.nix b/nixos/modules/services/databases/neo4j.nix
index f37e5ad16939b..8816f3b2e4b64 100644
--- a/nixos/modules/services/databases/neo4j.nix
+++ b/nixos/modules/services/databases/neo4j.nix
@@ -4,6 +4,7 @@ with lib;
 
 let
   cfg = config.services.neo4j;
+  opt = options.services.neo4j;
   certDirOpt = options.services.neo4j.directories.certificates;
   isDefaultPathOption = opt: isOption opt && opt.type == types.path && opt.highestPrio >= 1500;
 
@@ -256,6 +257,7 @@ in {
       certificates = mkOption {
         type = types.path;
         default = "${cfg.directories.home}/certificates";
+        defaultText = literalExpression ''"''${config.${opt.directories.home}}/certificates"'';
         description = ''
           Directory for storing certificates to be used by Neo4j for
           TLS connections.
@@ -280,6 +282,7 @@ in {
       data = mkOption {
         type = types.path;
         default = "${cfg.directories.home}/data";
+        defaultText = literalExpression ''"''${config.${opt.directories.home}}/data"'';
         description = ''
           Path of the data directory. You must not configure more than one
           Neo4j installation to use the same data directory.
@@ -305,6 +308,7 @@ in {
       imports = mkOption {
         type = types.path;
         default = "${cfg.directories.home}/import";
+        defaultText = literalExpression ''"''${config.${opt.directories.home}}/import"'';
         description = ''
           The root directory for file URLs used with the Cypher
           <literal>LOAD CSV</literal> clause. Only meaningful when
@@ -321,6 +325,7 @@ in {
       plugins = mkOption {
         type = types.path;
         default = "${cfg.directories.home}/plugins";
+        defaultText = literalExpression ''"''${config.${opt.directories.home}}/plugins"'';
         description = ''
           Path of the database plugin directory. Compiled Java JAR files that
           contain database procedures will be loaded if they are placed in
@@ -432,6 +437,7 @@ in {
           baseDirectory = mkOption {
             type = types.path;
             default = "${cfg.directories.certificates}/${name}";
+            defaultText = literalExpression ''"''${config.${opt.directories.certificates}}/''${name}"'';
             description = ''
               The mandatory base directory for cryptographic objects of this
               policy. This path is only automatically generated when this
@@ -493,6 +499,7 @@ in {
           revokedDir = mkOption {
             type = types.path;
             default = "${config.baseDirectory}/revoked";
+            defaultText = literalExpression ''"''${config.${options.baseDirectory}}/revoked"'';
             description = ''
               Path to directory of CRLs (Certificate Revocation Lists) in
               PEM format. Must be an absolute path. The existence of this
@@ -528,6 +535,7 @@ in {
           trustedDir = mkOption {
             type = types.path;
             default = "${config.baseDirectory}/trusted";
+            defaultText = literalExpression ''"''${config.${options.baseDirectory}}/trusted"'';
             description = ''
               Path to directory of X.509 certificates in PEM format for
               trusted parties. Must be an absolute path. The existence of this
diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix
index d49cb4c51a729..2919022496a36 100644
--- a/nixos/modules/services/databases/postgresql.nix
+++ b/nixos/modules/services/databases/postgresql.nix
@@ -289,14 +289,16 @@ in
         port = cfg.port;
       };
 
-    services.postgresql.package =
+    services.postgresql.package = let
+        mkThrow = ver: throw "postgresql_${ver} was removed, please upgrade your postgresql version.";
+    in
       # Note: when changing the default, make it conditional on
       # ‘system.stateVersion’ to maintain compatibility with existing
       # systems!
       mkDefault (if versionAtLeast config.system.stateVersion "21.11" then pkgs.postgresql_13
             else if versionAtLeast config.system.stateVersion "20.03" then pkgs.postgresql_11
-            else if versionAtLeast config.system.stateVersion "17.09" then pkgs.postgresql_9_6
-            else throw "postgresql_9_5 was removed, please upgrade your postgresql version.");
+            else if versionAtLeast config.system.stateVersion "17.09" then mkThrow "9_6"
+            else mkThrow "9_5");
 
     services.postgresql.dataDir = mkDefault "/var/lib/postgresql/${cfg.package.psqlSchema}";
 
diff --git a/nixos/modules/services/databases/postgresql.xml b/nixos/modules/services/databases/postgresql.xml
index 07af4c937f037..0ca9f3faed212 100644
--- a/nixos/modules/services/databases/postgresql.xml
+++ b/nixos/modules/services/databases/postgresql.xml
@@ -52,37 +52,51 @@ Type "help" for help.
  <section xml:id="module-services-postgres-upgrading">
   <title>Upgrading</title>
 
+  <note>
+   <para>
+    The steps below demonstrate how to upgrade from an older version to <package>pkgs.postgresql_13</package>.
+    These instructions are also applicable to other versions.
+   </para>
+  </note>
   <para>
-   Major PostgreSQL upgrade requires PostgreSQL downtime and a few imperative steps to be called. To simplify this process, use the following NixOS module:
+   Major PostgreSQL upgrades require a downtime and a few imperative steps to be called. This is the case because
+   each major version has some internal changes in the databases' state during major releases. Because of that,
+   NixOS places the state into <filename>/var/lib/postgresql/&lt;version&gt;</filename> where each <literal>version</literal>
+   can be obtained like this:
 <programlisting>
-  containers.temp-pg.config.services.postgresql = {
-    enable = true;
-    package = pkgs.postgresql_12;
-    ## set a custom new dataDir
-    # dataDir = "/some/data/dir";
-  };
-  environment.systemPackages =
-    let newpg = config.containers.temp-pg.config.services.postgresql;
-    in [
-      (pkgs.writeScriptBin "upgrade-pg-cluster" ''
-        set -x
-        export OLDDATA="${config.services.postgresql.dataDir}"
-        export NEWDATA="${newpg.dataDir}"
-        export OLDBIN="${config.services.postgresql.package}/bin"
-        export NEWBIN="${newpg.package}/bin"
-
-        install -d -m 0700 -o postgres -g postgres "$NEWDATA"
-        cd "$NEWDATA"
-        sudo -u postgres $NEWBIN/initdb -D "$NEWDATA"
-
-        systemctl stop postgresql    # old one
-
-        sudo -u postgres $NEWBIN/pg_upgrade \
-          --old-datadir "$OLDDATA" --new-datadir "$NEWDATA" \
-          --old-bindir $OLDBIN --new-bindir $NEWBIN \
-          "$@"
-      '')
-    ];
+<prompt>$ </prompt>nix-instantiate --eval -A postgresql_13.psqlSchema
+"13"
+</programlisting>
+   For an upgrade, a script like this can be used to simplify the process:
+<programlisting>
+{ config, pkgs, ... }:
+{
+  <xref linkend="opt-environment.systemPackages" /> = [
+    (pkgs.writeScriptBin "upgrade-pg-cluster" ''
+      set -eux
+      # XXX it's perhaps advisable to stop all services that depend on postgresql
+      systemctl stop postgresql
+
+      # XXX replace `&lt;new version&gt;` with the psqlSchema here
+      export NEWDATA="/var/lib/postgresql/&lt;new version&gt;"
+
+      # XXX specify the postgresql package you'd like to upgrade to
+      export NEWBIN="${pkgs.postgresql_13}/bin"
+
+      export OLDDATA="${config.<xref linkend="opt-services.postgresql.dataDir"/>}"
+      export OLDBIN="${config.<xref linkend="opt-services.postgresql.package"/>}/bin"
+
+      install -d -m 0700 -o postgres -g postgres "$NEWDATA"
+      cd "$NEWDATA"
+      sudo -u postgres $NEWBIN/initdb -D "$NEWDATA"
+
+      sudo -u postgres $NEWBIN/pg_upgrade \
+        --old-datadir "$OLDDATA" --new-datadir "$NEWDATA" \
+        --old-bindir $OLDBIN --new-bindir $NEWBIN \
+        "$@"
+    '')
+  ];
+}
 </programlisting>
   </para>
 
@@ -103,17 +117,25 @@ Type "help" for help.
    </listitem>
    <listitem>
     <para>
-     Run <literal>upgrade-pg-cluster</literal>. It will stop old postgresql, initialize new one and migrate old one to new one. You may supply arguments like <literal>--jobs 4</literal> and <literal>--link</literal> to speedup migration process. See <link xlink:href="https://www.postgresql.org/docs/current/pgupgrade.html" /> for details.
+     Run <literal>upgrade-pg-cluster</literal>. It will stop old postgresql, initialize a new one and migrate the old one to the new one. You may supply arguments like <literal>--jobs 4</literal> and <literal>--link</literal> to speedup migration process. See <link xlink:href="https://www.postgresql.org/docs/current/pgupgrade.html" /> for details.
     </para>
    </listitem>
    <listitem>
     <para>
-     Change postgresql package in NixOS configuration to the one you were upgrading to, and change <literal>dataDir</literal> to the one you have migrated to. Rebuild NixOS. This should start new postgres using upgraded data directory.
+     Change postgresql package in NixOS configuration to the one you were upgrading to via <xref linkend="opt-services.postgresql.package" />. Rebuild NixOS. This should start new postgres using upgraded data directory and all services you stopped during the upgrade.
     </para>
    </listitem>
    <listitem>
     <para>
-     After upgrade you may want to <literal>ANALYZE</literal> new db.
+     After the upgrade it's advisable to analyze the new cluster (as <literal>su -l postgres</literal> in the
+     <xref linkend="opt-services.postgresql.dataDir" />, in this example <filename>/var/lib/postgresql/13</filename>):
+<programlisting>
+<prompt>$ </prompt>./analyze_new_cluster.sh
+</programlisting>
+     <warning><para>The next step removes the old state-directory!</para></warning>
+<programlisting>
+<prompt>$ </prompt>./delete_old_cluster.sh
+</programlisting>
     </para>
    </listitem>
   </orderedlist>
diff --git a/nixos/modules/services/databases/redis.nix b/nixos/modules/services/databases/redis.nix
index 578d9d9ec8d78..c5513635392cd 100644
--- a/nixos/modules/services/databases/redis.nix
+++ b/nixos/modules/services/databases/redis.nix
@@ -5,17 +5,18 @@ with lib;
 let
   cfg = config.services.redis;
 
-  ulimitNofile = cfg.maxclients + 32;
-
   mkValueString = value:
     if value == true then "yes"
     else if value == false then "no"
     else generators.mkValueStringDefault { } value;
 
-  redisConfig = pkgs.writeText "redis.conf" (generators.toKeyValue {
+  redisConfig = settings: pkgs.writeText "redis.conf" (generators.toKeyValue {
     listsAsDuplicateKeys = true;
     mkKeyValue = generators.mkKeyValueDefault { inherit mkValueString; } " ";
-  } cfg.settings);
+  } settings);
+
+  redisName = name: "redis" + optionalString (name != "") ("-"+name);
+  enabledServers = filterAttrs (name: conf: conf.enable) config.services.redis.servers;
 
 in {
   imports = [
@@ -24,7 +25,28 @@ in {
     (mkRemovedOptionModule [ "services" "redis" "dbFilename" ] "The redis module now uses /var/lib/redis/dump.rdb as database dump location.")
     (mkRemovedOptionModule [ "services" "redis" "appendOnlyFilename" ] "This option was never used.")
     (mkRemovedOptionModule [ "services" "redis" "pidFile" ] "This option was removed.")
-    (mkRemovedOptionModule [ "services" "redis" "extraConfig" ] "Use services.redis.settings instead.")
+    (mkRemovedOptionModule [ "services" "redis" "extraConfig" ] "Use services.redis.servers.*.settings instead.")
+    (mkRenamedOptionModule [ "services" "redis" "enable"] [ "services" "redis" "servers" "" "enable" ])
+    (mkRenamedOptionModule [ "services" "redis" "port"] [ "services" "redis" "servers" "" "port" ])
+    (mkRenamedOptionModule [ "services" "redis" "openFirewall"] [ "services" "redis" "servers" "" "openFirewall" ])
+    (mkRenamedOptionModule [ "services" "redis" "bind"] [ "services" "redis" "servers" "" "bind" ])
+    (mkRenamedOptionModule [ "services" "redis" "unixSocket"] [ "services" "redis" "servers" "" "unixSocket" ])
+    (mkRenamedOptionModule [ "services" "redis" "unixSocketPerm"] [ "services" "redis" "servers" "" "unixSocketPerm" ])
+    (mkRenamedOptionModule [ "services" "redis" "logLevel"] [ "services" "redis" "servers" "" "logLevel" ])
+    (mkRenamedOptionModule [ "services" "redis" "logfile"] [ "services" "redis" "servers" "" "logfile" ])
+    (mkRenamedOptionModule [ "services" "redis" "syslog"] [ "services" "redis" "servers" "" "syslog" ])
+    (mkRenamedOptionModule [ "services" "redis" "databases"] [ "services" "redis" "servers" "" "databases" ])
+    (mkRenamedOptionModule [ "services" "redis" "maxclients"] [ "services" "redis" "servers" "" "maxclients" ])
+    (mkRenamedOptionModule [ "services" "redis" "save"] [ "services" "redis" "servers" "" "save" ])
+    (mkRenamedOptionModule [ "services" "redis" "slaveOf"] [ "services" "redis" "servers" "" "slaveOf" ])
+    (mkRenamedOptionModule [ "services" "redis" "masterAuth"] [ "services" "redis" "servers" "" "masterAuth" ])
+    (mkRenamedOptionModule [ "services" "redis" "requirePass"] [ "services" "redis" "servers" "" "requirePass" ])
+    (mkRenamedOptionModule [ "services" "redis" "requirePassFile"] [ "services" "redis" "servers" "" "requirePassFile" ])
+    (mkRenamedOptionModule [ "services" "redis" "appendOnly"] [ "services" "redis" "servers" "" "appendOnly" ])
+    (mkRenamedOptionModule [ "services" "redis" "appendFsync"] [ "services" "redis" "servers" "" "appendFsync" ])
+    (mkRenamedOptionModule [ "services" "redis" "slowLogLogSlowerThan"] [ "services" "redis" "servers" "" "slowLogLogSlowerThan" ])
+    (mkRenamedOptionModule [ "services" "redis" "slowLogMaxLen"] [ "services" "redis" "servers" "" "slowLogMaxLen" ])
+    (mkRenamedOptionModule [ "services" "redis" "settings"] [ "services" "redis" "servers" "" "settings" ])
   ];
 
   ###### interface
@@ -32,18 +54,6 @@ in {
   options = {
 
     services.redis = {
-
-      enable = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Whether to enable the Redis server. Note that the NixOS module for
-          Redis disables kernel support for Transparent Huge Pages (THP),
-          because this features causes major performance problems for Redis,
-          e.g. (https://redis.io/topics/latency).
-        '';
-      };
-
       package = mkOption {
         type = types.package;
         default = pkgs.redis;
@@ -51,176 +61,226 @@ in {
         description = "Which Redis derivation to use.";
       };
 
-      port = mkOption {
-        type = types.port;
-        default = 6379;
-        description = "The port for Redis to listen to.";
-      };
-
-      vmOverCommit = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Set vm.overcommit_memory to 1 (Suggested for Background Saving: http://redis.io/topics/faq)
-        '';
-      };
+      vmOverCommit = mkEnableOption ''
+        setting of vm.overcommit_memory to 1
+        (Suggested for Background Saving: http://redis.io/topics/faq)
+      '';
 
-      openFirewall = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Whether to open ports in the firewall for the server.
-        '';
-      };
+      servers = mkOption {
+        type = with types; attrsOf (submodule ({config, name, ...}@args: {
+          options = {
+            enable = mkEnableOption ''
+              Redis server.
+
+              Note that the NixOS module for Redis disables kernel support
+              for Transparent Huge Pages (THP),
+              because this features causes major performance problems for Redis,
+              e.g. (https://redis.io/topics/latency).
+            '';
+
+            user = mkOption {
+              type = types.str;
+              default = redisName name;
+              defaultText = "\"redis\" or \"redis-\${name}\" if name != \"\"";
+              description = "The username and groupname for redis-server.";
+            };
 
-      bind = mkOption {
-        type = with types; nullOr str;
-        default = "127.0.0.1";
-        description = ''
-          The IP interface to bind to.
-          <literal>null</literal> means "all interfaces".
-        '';
-        example = "192.0.2.1";
-      };
+            port = mkOption {
+              type = types.port;
+              default = 6379;
+              description = "The port for Redis to listen to.";
+            };
 
-      unixSocket = mkOption {
-        type = with types; nullOr path;
-        default = null;
-        description = "The path to the socket to bind to.";
-        example = "/run/redis/redis.sock";
-      };
+            openFirewall = mkOption {
+              type = types.bool;
+              default = false;
+              description = ''
+                Whether to open ports in the firewall for the server.
+              '';
+            };
 
-      unixSocketPerm = mkOption {
-        type = types.int;
-        default = 750;
-        description = "Change permissions for the socket";
-        example = 700;
-      };
+            bind = mkOption {
+              type = with types; nullOr str;
+              default = if name == "" then "127.0.0.1" else null;
+              defaultText = "127.0.0.1 or null if name != \"\"";
+              description = ''
+                The IP interface to bind to.
+                <literal>null</literal> means "all interfaces".
+              '';
+              example = "192.0.2.1";
+            };
 
-      logLevel = mkOption {
-        type = types.str;
-        default = "notice"; # debug, verbose, notice, warning
-        example = "debug";
-        description = "Specify the server verbosity level, options: debug, verbose, notice, warning.";
-      };
+            unixSocket = mkOption {
+              type = with types; nullOr path;
+              default = "/run/${redisName name}/redis.sock";
+              defaultText = "\"/run/redis/redis.sock\" or \"/run/redis-\${name}/redis.sock\" if name != \"\"";
+              description = "The path to the socket to bind to.";
+            };
 
-      logfile = mkOption {
-        type = types.str;
-        default = "/dev/null";
-        description = "Specify the log file name. Also 'stdout' can be used to force Redis to log on the standard output.";
-        example = "/var/log/redis.log";
-      };
+            unixSocketPerm = mkOption {
+              type = types.int;
+              default = 660;
+              description = "Change permissions for the socket";
+              example = 600;
+            };
 
-      syslog = mkOption {
-        type = types.bool;
-        default = true;
-        description = "Enable logging to the system logger.";
-      };
+            logLevel = mkOption {
+              type = types.str;
+              default = "notice"; # debug, verbose, notice, warning
+              example = "debug";
+              description = "Specify the server verbosity level, options: debug, verbose, notice, warning.";
+            };
 
-      databases = mkOption {
-        type = types.int;
-        default = 16;
-        description = "Set the number of databases.";
-      };
+            logfile = mkOption {
+              type = types.str;
+              default = "/dev/null";
+              description = "Specify the log file name. Also 'stdout' can be used to force Redis to log on the standard output.";
+              example = "/var/log/redis.log";
+            };
 
-      maxclients = mkOption {
-        type = types.int;
-        default = 10000;
-        description = "Set the max number of connected clients at the same time.";
-      };
+            syslog = mkOption {
+              type = types.bool;
+              default = true;
+              description = "Enable logging to the system logger.";
+            };
 
-      save = mkOption {
-        type = with types; listOf (listOf int);
-        default = [ [900 1] [300 10] [60 10000] ];
-        description = "The schedule in which data is persisted to disk, represented as a list of lists where the first element represent the amount of seconds and the second the number of changes.";
-      };
+            databases = mkOption {
+              type = types.int;
+              default = 16;
+              description = "Set the number of databases.";
+            };
 
-      slaveOf = mkOption {
-        type = with types; nullOr (submodule ({ ... }: {
-          options = {
-            ip = mkOption {
-              type = str;
-              description = "IP of the Redis master";
-              example = "192.168.1.100";
+            maxclients = mkOption {
+              type = types.int;
+              default = 10000;
+              description = "Set the max number of connected clients at the same time.";
             };
 
-            port = mkOption {
-              type = port;
-              description = "port of the Redis master";
-              default = 6379;
+            save = mkOption {
+              type = with types; listOf (listOf int);
+              default = [ [900 1] [300 10] [60 10000] ];
+              description = "The schedule in which data is persisted to disk, represented as a list of lists where the first element represent the amount of seconds and the second the number of changes.";
             };
-          };
-        }));
 
-        default = null;
-        description = "IP and port to which this redis instance acts as a slave.";
-        example = { ip = "192.168.1.100"; port = 6379; };
-      };
+            slaveOf = mkOption {
+              type = with types; nullOr (submodule ({ ... }: {
+                options = {
+                  ip = mkOption {
+                    type = str;
+                    description = "IP of the Redis master";
+                    example = "192.168.1.100";
+                  };
+
+                  port = mkOption {
+                    type = port;
+                    description = "port of the Redis master";
+                    default = 6379;
+                  };
+                };
+              }));
+
+              default = null;
+              description = "IP and port to which this redis instance acts as a slave.";
+              example = { ip = "192.168.1.100"; port = 6379; };
+            };
 
-      masterAuth = mkOption {
-        type = with types; nullOr str;
-        default = null;
-        description = ''If the master is password protected (using the requirePass configuration)
-        it is possible to tell the slave to authenticate before starting the replication synchronization
-        process, otherwise the master will refuse the slave request.
-        (STORED PLAIN TEXT, WORLD-READABLE IN NIX STORE)'';
-      };
+            masterAuth = mkOption {
+              type = with types; nullOr str;
+              default = null;
+              description = ''If the master is password protected (using the requirePass configuration)
+              it is possible to tell the slave to authenticate before starting the replication synchronization
+              process, otherwise the master will refuse the slave request.
+              (STORED PLAIN TEXT, WORLD-READABLE IN NIX STORE)'';
+            };
 
-      requirePass = mkOption {
-        type = with types; nullOr str;
-        default = null;
-        description = ''
-          Password for database (STORED PLAIN TEXT, WORLD-READABLE IN NIX STORE).
-          Use requirePassFile to store it outside of the nix store in a dedicated file.
-        '';
-        example = "letmein!";
-      };
+            requirePass = mkOption {
+              type = with types; nullOr str;
+              default = null;
+              description = ''
+                Password for database (STORED PLAIN TEXT, WORLD-READABLE IN NIX STORE).
+                Use requirePassFile to store it outside of the nix store in a dedicated file.
+              '';
+              example = "letmein!";
+            };
 
-      requirePassFile = mkOption {
-        type = with types; nullOr path;
-        default = null;
-        description = "File with password for the database.";
-        example = "/run/keys/redis-password";
-      };
+            requirePassFile = mkOption {
+              type = with types; nullOr path;
+              default = null;
+              description = "File with password for the database.";
+              example = "/run/keys/redis-password";
+            };
 
-      appendOnly = mkOption {
-        type = types.bool;
-        default = false;
-        description = "By default data is only periodically persisted to disk, enable this option to use an append-only file for improved persistence.";
-      };
+            appendOnly = mkOption {
+              type = types.bool;
+              default = false;
+              description = "By default data is only periodically persisted to disk, enable this option to use an append-only file for improved persistence.";
+            };
 
-      appendFsync = mkOption {
-        type = types.str;
-        default = "everysec"; # no, always, everysec
-        description = "How often to fsync the append-only log, options: no, always, everysec.";
-      };
+            appendFsync = mkOption {
+              type = types.str;
+              default = "everysec"; # no, always, everysec
+              description = "How often to fsync the append-only log, options: no, always, everysec.";
+            };
 
-      slowLogLogSlowerThan = mkOption {
-        type = types.int;
-        default = 10000;
-        description = "Log queries whose execution take longer than X in milliseconds.";
-        example = 1000;
-      };
+            slowLogLogSlowerThan = mkOption {
+              type = types.int;
+              default = 10000;
+              description = "Log queries whose execution take longer than X in milliseconds.";
+              example = 1000;
+            };
 
-      slowLogMaxLen = mkOption {
-        type = types.int;
-        default = 128;
-        description = "Maximum number of items to keep in slow log.";
-      };
+            slowLogMaxLen = mkOption {
+              type = types.int;
+              default = 128;
+              description = "Maximum number of items to keep in slow log.";
+            };
 
-      settings = mkOption {
-        type = with types; attrsOf (oneOf [ bool int str (listOf str) ]);
+            settings = mkOption {
+              # TODO: this should be converted to freeformType
+              type = with types; attrsOf (oneOf [ bool int str (listOf str) ]);
+              default = {};
+              description = ''
+                Redis configuration. Refer to
+                <link xlink:href="https://redis.io/topics/config"/>
+                for details on supported values.
+              '';
+              example = literalExpression ''
+                {
+                  loadmodule = [ "/path/to/my_module.so" "/path/to/other_module.so" ];
+                }
+              '';
+            };
+          };
+          config.settings = mkMerge [
+            {
+              port = if config.bind == null then 0 else config.port;
+              daemonize = false;
+              supervised = "systemd";
+              loglevel = config.logLevel;
+              logfile = config.logfile;
+              syslog-enabled = config.syslog;
+              databases = config.databases;
+              maxclients = config.maxclients;
+              save = map (d: "${toString (builtins.elemAt d 0)} ${toString (builtins.elemAt d 1)}") config.save;
+              dbfilename = "dump.rdb";
+              dir = "/var/lib/${redisName name}";
+              appendOnly = config.appendOnly;
+              appendfsync = config.appendFsync;
+              slowlog-log-slower-than = config.slowLogLogSlowerThan;
+              slowlog-max-len = config.slowLogMaxLen;
+            }
+            (mkIf (config.bind != null) { bind = config.bind; })
+            (mkIf (config.unixSocket != null) {
+              unixsocket = config.unixSocket;
+              unixsocketperm = toString config.unixSocketPerm;
+            })
+            (mkIf (config.slaveOf != null) { slaveof = "${config.slaveOf.ip} ${toString config.slaveOf.port}"; })
+            (mkIf (config.masterAuth != null) { masterauth = config.masterAuth; })
+            (mkIf (config.requirePass != null) { requirepass = config.requirePass; })
+          ];
+        }));
+        description = "Configuration of multiple <literal>redis-server</literal> instances.";
         default = {};
-        description = ''
-          Redis configuration. Refer to
-          <link xlink:href="https://redis.io/topics/config"/>
-          for details on supported values.
-        '';
-        example = literalExpression ''
-          {
-            loadmodule = [ "/path/to/my_module.so" "/path/to/other_module.so" ];
-          }
-        '';
       };
     };
 
@@ -229,78 +289,61 @@ in {
 
   ###### implementation
 
-  config = mkIf config.services.redis.enable {
-    assertions = [{
-      assertion = cfg.requirePass != null -> cfg.requirePassFile == null;
-      message = "You can only set one services.redis.requirePass or services.redis.requirePassFile";
-    }];
-    boot.kernel.sysctl = (mkMerge [
+  config = mkIf (enabledServers != {}) {
+
+    assertions = attrValues (mapAttrs (name: conf: {
+      assertion = conf.requirePass != null -> conf.requirePassFile == null;
+      message = ''
+        You can only set one services.redis.servers.${name}.requirePass
+        or services.redis.servers.${name}.requirePassFile
+      '';
+    }) enabledServers);
+
+    boot.kernel.sysctl = mkMerge [
       { "vm.nr_hugepages" = "0"; }
       ( mkIf cfg.vmOverCommit { "vm.overcommit_memory" = "1"; } )
-    ]);
+    ];
 
-    networking.firewall = mkIf cfg.openFirewall {
-      allowedTCPPorts = [ cfg.port ];
-    };
-
-    users.users.redis = {
-      description = "Redis database user";
-      group = "redis";
-      isSystemUser = true;
-    };
-    users.groups.redis = {};
+    networking.firewall.allowedTCPPorts = concatMap (conf:
+      optional conf.openFirewall conf.port
+    ) (attrValues enabledServers);
 
     environment.systemPackages = [ cfg.package ];
 
-    services.redis.settings = mkMerge [
-      {
-        port = cfg.port;
-        daemonize = false;
-        supervised = "systemd";
-        loglevel = cfg.logLevel;
-        logfile = cfg.logfile;
-        syslog-enabled = cfg.syslog;
-        databases = cfg.databases;
-        maxclients = cfg.maxclients;
-        save = map (d: "${toString (builtins.elemAt d 0)} ${toString (builtins.elemAt d 1)}") cfg.save;
-        dbfilename = "dump.rdb";
-        dir = "/var/lib/redis";
-        appendOnly = cfg.appendOnly;
-        appendfsync = cfg.appendFsync;
-        slowlog-log-slower-than = cfg.slowLogLogSlowerThan;
-        slowlog-max-len = cfg.slowLogMaxLen;
-      }
-      (mkIf (cfg.bind != null) { bind = cfg.bind; })
-      (mkIf (cfg.unixSocket != null) { unixsocket = cfg.unixSocket; unixsocketperm = "${toString cfg.unixSocketPerm}"; })
-      (mkIf (cfg.slaveOf != null) { slaveof = "${cfg.slaveOf.ip} ${toString cfg.slaveOf.port}"; })
-      (mkIf (cfg.masterAuth != null) { masterauth = cfg.masterAuth; })
-      (mkIf (cfg.requirePass != null) { requirepass = cfg.requirePass; })
-    ];
+    users.users = mapAttrs' (name: conf: nameValuePair (redisName name) {
+      description = "System user for the redis-server instance ${name}";
+      isSystemUser = true;
+      group = redisName name;
+    }) enabledServers;
+    users.groups = mapAttrs' (name: conf: nameValuePair (redisName name) {
+    }) enabledServers;
 
-    systemd.services.redis = {
-      description = "Redis Server";
+    systemd.services = mapAttrs' (name: conf: nameValuePair (redisName name) {
+      description = "Redis Server - ${redisName name}";
 
       wantedBy = [ "multi-user.target" ];
       after = [ "network.target" ];
 
-      preStart = ''
-        install -m 600 ${redisConfig} /run/redis/redis.conf
-      '' + optionalString (cfg.requirePassFile != null) ''
-        password=$(cat ${escapeShellArg cfg.requirePassFile})
-        echo "requirePass $password" >> /run/redis/redis.conf
-      '';
-
       serviceConfig = {
-        ExecStart = "${cfg.package}/bin/redis-server /run/redis/redis.conf";
+        ExecStart = "${cfg.package}/bin/redis-server /run/${redisName name}/redis.conf";
+        ExecStartPre = [("+"+pkgs.writeShellScript "${redisName name}-credentials" (''
+            install -o '${conf.user}' -m 600 ${redisConfig conf.settings} /run/${redisName name}/redis.conf
+          '' + optionalString (conf.requirePassFile != null) ''
+            {
+              printf requirePass' '
+              cat ${escapeShellArg conf.requirePassFile}
+            } >>/run/${redisName name}/redis.conf
+          '')
+        )];
         Type = "notify";
         # User and group
-        User = "redis";
-        Group = "redis";
+        User = conf.user;
+        Group = conf.user;
         # Runtime directory and mode
-        RuntimeDirectory = "redis";
+        RuntimeDirectory = redisName name;
         RuntimeDirectoryMode = "0750";
         # State directory and mode
-        StateDirectory = "redis";
+        StateDirectory = redisName name;
         StateDirectoryMode = "0700";
         # Access write directories
         UMask = "0077";
@@ -309,7 +352,7 @@ in {
         # Security
         NoNewPrivileges = true;
         # Process Properties
-        LimitNOFILE = "${toString ulimitNofile}";
+        LimitNOFILE = mkDefault "${toString (conf.maxclients + 32)}";
         # Sandboxing
         ProtectSystem = "strict";
         ProtectHome = true;
@@ -322,7 +365,9 @@ in {
         ProtectKernelModules = true;
         ProtectKernelTunables = true;
         ProtectControlGroups = true;
-        RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
+        RestrictAddressFamilies =
+          optionals (conf.bind != null) ["AF_INET" "AF_INET6"] ++
+          optional (conf.unixSocket != null) "AF_UNIX";
         RestrictNamespaces = true;
         LockPersonality = true;
         MemoryDenyWriteExecute = true;
@@ -333,6 +378,7 @@ in {
         SystemCallArchitectures = "native";
         SystemCallFilter = "~@cpu-emulation @debug @keyring @memlock @mount @obsolete @privileged @resources @setuid";
       };
-    };
+    }) enabledServers;
+
   };
 }
diff --git a/nixos/modules/services/desktops/gvfs.nix b/nixos/modules/services/desktops/gvfs.nix
index b6a27279bdf8e..cc9a460327059 100644
--- a/nixos/modules/services/desktops/gvfs.nix
+++ b/nixos/modules/services/desktops/gvfs.nix
@@ -54,7 +54,7 @@ in
 
     systemd.packages = [ cfg.package ];
 
-    services.udev.packages = [ pkgs.libmtp.bin ];
+    services.udev.packages = [ pkgs.libmtp ];
 
     # Needed for unwrapped applications
     environment.variables.GIO_EXTRA_MODULES = [ "${cfg.package}/lib/gio/modules" ];
diff --git a/nixos/modules/services/development/hoogle.nix b/nixos/modules/services/development/hoogle.nix
index 7c635f7a5b8d7..7c2a1c8e16247 100644
--- a/nixos/modules/services/development/hoogle.nix
+++ b/nixos/modules/services/development/hoogle.nix
@@ -40,6 +40,7 @@ in {
 
     haskellPackages = mkOption {
       description = "Which haskell package set to use.";
+      type = types.attrs;
       default = pkgs.haskellPackages;
       defaultText = literalExpression "pkgs.haskellPackages";
     };
diff --git a/nixos/modules/services/games/factorio.nix b/nixos/modules/services/games/factorio.nix
index 0e8860a02819c..96fcd6d2c8b30 100644
--- a/nixos/modules/services/games/factorio.nix
+++ b/nixos/modules/services/games/factorio.nix
@@ -75,8 +75,8 @@ in
         description = ''
           The name of the savegame that will be used by the server.
 
-          When not present in ${stateDir}/saves, a new map with default
-          settings will be generated before starting the service.
+          When not present in /var/lib/''${config.services.factorio.stateDirName}/saves,
+          a new map with default settings will be generated before starting the service.
         '';
       };
       # TODO Add more individual settings as nixos-options?
diff --git a/nixos/modules/services/games/quake3-server.nix b/nixos/modules/services/games/quake3-server.nix
index 1dc01260e8fad..175af4a838289 100644
--- a/nixos/modules/services/games/quake3-server.nix
+++ b/nixos/modules/services/games/quake3-server.nix
@@ -71,6 +71,7 @@ in {
       baseq3 = mkOption {
         type = types.either types.package types.path;
         default = defaultBaseq3;
+        defaultText = literalDocBook "Manually downloaded Quake 3 installation directory.";
         example = "/var/lib/q3ds";
         description = ''
           Path to the baseq3 files (pak*.pk3). If this is on the nix store (type = package) all .pk3 files should be saved
diff --git a/nixos/modules/services/games/terraria.nix b/nixos/modules/services/games/terraria.nix
index 7312c7e6b6352..29f976b3c2aec 100644
--- a/nixos/modules/services/games/terraria.nix
+++ b/nixos/modules/services/games/terraria.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg   = config.services.terraria;
+  opt   = options.services.terraria;
   worldSizeMap = { small = 1; medium = 2; large = 3; };
   valFlag = name: val: optionalString (val != null) "-${name} \"${escape ["\\" "\""] (toString val)}\"";
   boolFlag = name: val: optionalString val "-${name}";
@@ -36,7 +37,7 @@ in
         type        = types.bool;
         default     = false;
         description = ''
-          If enabled, starts a Terraria server. The server can be connected to via <literal>tmux -S ${cfg.dataDir}/terraria.sock attach</literal>
+          If enabled, starts a Terraria server. The server can be connected to via <literal>tmux -S ''${config.${opt.dataDir}}/terraria.sock attach</literal>
           for administration by users who are a part of the <literal>terraria</literal> group (use <literal>C-b d</literal> shortcut to detach again).
         '';
       };
diff --git a/nixos/modules/services/hardware/bluetooth.nix b/nixos/modules/services/hardware/bluetooth.nix
index 7f75ac272d405..69a66723e76cb 100644
--- a/nixos/modules/services/hardware/bluetooth.nix
+++ b/nixos/modules/services/hardware/bluetooth.nix
@@ -11,12 +11,8 @@ let
 
   cfgFmt = pkgs.formats.ini { };
 
-  # bluez will complain if some of the sections are not found, so just make them
-  # empty (but present in the file) for now
   defaults = {
     General.ControllerMode = "dual";
-    Controller = { };
-    GATT = { };
     Policy.AutoEnable = cfg.powerOnBoot;
   };
 
diff --git a/nixos/modules/services/hardware/rasdaemon.nix b/nixos/modules/services/hardware/rasdaemon.nix
index b1efe0f18c88b..2d4c6d2ce959e 100644
--- a/nixos/modules/services/hardware/rasdaemon.nix
+++ b/nixos/modules/services/hardware/rasdaemon.nix
@@ -137,7 +137,6 @@ in
         description = "the RAS logging daemon";
         documentation = [ "man:rasdaemon(1)" ];
         wantedBy = [ "multi-user.target" ];
-        after = [ "syslog.target" ];
 
         serviceConfig = {
           StateDirectory = optionalString (cfg.record) "rasdaemon";
diff --git a/nixos/modules/services/hardware/spacenavd.nix b/nixos/modules/services/hardware/spacenavd.nix
index 74725dd23d25c..69ca6f102efe7 100644
--- a/nixos/modules/services/hardware/spacenavd.nix
+++ b/nixos/modules/services/hardware/spacenavd.nix
@@ -15,7 +15,6 @@ in {
   config = mkIf cfg.enable {
     systemd.user.services.spacenavd = {
       description = "Daemon for the Spacenavigator 6DOF mice by 3Dconnexion";
-      after = [ "syslog.target" ];
       wantedBy = [ "graphical.target" ];
       serviceConfig = {
         ExecStart = "${pkgs.spacenavd}/bin/spacenavd -d -l syslog";
diff --git a/nixos/modules/services/hardware/tcsd.nix b/nixos/modules/services/hardware/tcsd.nix
index c549a67750136..e414b9647c9bb 100644
--- a/nixos/modules/services/hardware/tcsd.nix
+++ b/nixos/modules/services/hardware/tcsd.nix
@@ -1,11 +1,12 @@
 # tcsd daemon.
 
-{ config, pkgs, lib, ... }:
+{ config, options, pkgs, lib, ... }:
 
 with lib;
 let
 
   cfg = config.services.tcsd;
+  opt = options.services.tcsd;
 
   tcsdConf = pkgs.writeText "tcsd.conf" ''
     port = 30003
@@ -83,6 +84,7 @@ in
 
       platformCred = mkOption {
         default = "${cfg.stateDir}/platform.cert";
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/platform.cert"'';
         type = types.path;
         description = ''
           Path to the platform credential for your TPM. Your TPM
@@ -96,6 +98,7 @@ in
 
       conformanceCred = mkOption {
         default = "${cfg.stateDir}/conformance.cert";
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/conformance.cert"'';
         type = types.path;
         description = ''
           Path to the conformance credential for your TPM.
@@ -104,6 +107,7 @@ in
 
       endorsementCred = mkOption {
         default = "${cfg.stateDir}/endorsement.cert";
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/endorsement.cert"'';
         type = types.path;
         description = ''
           Path to the endorsement credential for your TPM.
diff --git a/nixos/modules/services/hardware/thinkfan.nix b/nixos/modules/services/hardware/thinkfan.nix
index 7a5a7e1c41ce2..4ea829e496e88 100644
--- a/nixos/modules/services/hardware/thinkfan.nix
+++ b/nixos/modules/services/hardware/thinkfan.nix
@@ -19,7 +19,7 @@ let
         description = "tuple of" + concatMapStrings (t: " (${t.description})") ts;
       };
       level = ints.unsigned;
-      special = enum [ "level auto" "level full-speed" "level disengage" ];
+      special = enum [ "level auto" "level full-speed" "level disengaged" ];
     in
       tuple [ (either level special) level level ];
 
@@ -164,7 +164,7 @@ in {
 
           LEVEL is the fan level to use: it can be an integer (0-7 with thinkpad_acpi),
           "level auto" (to keep the default firmware behavior), "level full-speed" or
-          "level disengage" (to run the fan as fast as possible).
+          "level disengaged" (to run the fan as fast as possible).
           LOW is the temperature at which to step down to the previous level.
           HIGH is the temperature at which to step up to the next level.
           All numbers are integers.
diff --git a/nixos/modules/services/logging/filebeat.nix b/nixos/modules/services/logging/filebeat.nix
new file mode 100644
index 0000000000000..223a993c505b4
--- /dev/null
+++ b/nixos/modules/services/logging/filebeat.nix
@@ -0,0 +1,253 @@
+{ config, lib, utils, pkgs, ... }:
+
+let
+  inherit (lib)
+    attrValues
+    literalExpression
+    mkEnableOption
+    mkIf
+    mkOption
+    types;
+
+  cfg = config.services.filebeat;
+
+  json = pkgs.formats.json {};
+in
+{
+  options = {
+
+    services.filebeat = {
+
+      enable = mkEnableOption "filebeat";
+
+      package = mkOption {
+        type = types.package;
+        default = pkgs.filebeat;
+        defaultText = literalExpression "pkgs.filebeat";
+        example = literalExpression "pkgs.filebeat7";
+        description = ''
+          The filebeat package to use.
+        '';
+      };
+
+      inputs = mkOption {
+        description = ''
+          Inputs specify how Filebeat locates and processes input data.
+
+          This is like <literal>services.filebeat.settings.filebeat.inputs</literal>,
+          but structured as an attribute set. This has the benefit
+          that multiple NixOS modules can contribute settings to a
+          single filebeat input.
+
+          An input type can be specified multiple times by choosing a
+          different <literal>&lt;name></literal> for each, but setting
+          <xref linkend="opt-services.filebeat.inputs._name_.type"/>
+          to the same value.
+
+          See <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html"/>.
+        '';
+        default = {};
+        type = types.attrsOf (types.submodule ({ name, ... }: {
+          freeformType = json.type;
+          options = {
+            type = mkOption {
+              type = types.str;
+              default = name;
+              description = ''
+                The input type.
+
+                Look for the value after <literal>type:</literal> on
+                the individual input pages linked from
+                <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html"/>.
+              '';
+            };
+          };
+        }));
+        example = literalExpression ''
+          {
+            journald.id = "everything";  # Only for filebeat7
+            log = {
+              enabled = true;
+              paths = [
+                "/var/log/*.log"
+              ];
+            };
+          };
+        '';
+      };
+
+      modules = mkOption {
+        description = ''
+          Filebeat modules provide a quick way to get started
+          processing common log formats. They contain default
+          configurations, Elasticsearch ingest pipeline definitions,
+          and Kibana dashboards to help you implement and deploy a log
+          monitoring solution.
+
+          This is like <literal>services.filebeat.settings.filebeat.modules</literal>,
+          but structured as an attribute set. This has the benefit
+          that multiple NixOS modules can contribute settings to a
+          single filebeat module.
+
+          A module can be specified multiple times by choosing a
+          different <literal>&lt;name></literal> for each, but setting
+          <xref linkend="opt-services.filebeat.modules._name_.module"/>
+          to the same value.
+
+          See <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-modules.html"/>.
+        '';
+        default = {};
+        type = types.attrsOf (types.submodule ({ name, ... }: {
+          freeformType = json.type;
+          options = {
+            module = mkOption {
+              type = types.str;
+              default = name;
+              description = ''
+                The name of the module.
+
+                Look for the value after <literal>module:</literal> on
+                the individual input pages linked from
+                <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-modules.html"/>.
+              '';
+            };
+          };
+        }));
+        example = literalExpression ''
+          {
+            nginx = {
+              access = {
+                enabled = true;
+                var.paths = [ "/path/to/log/nginx/access.log*" ];
+              };
+              error = {
+                enabled = true;
+                var.paths = [ "/path/to/log/nginx/error.log*" ];
+              };
+            };
+          };
+        '';
+      };
+
+      settings = mkOption {
+        type = types.submodule {
+          freeformType = json.type;
+
+          options = {
+
+            output.elasticsearch.hosts = mkOption {
+              type = with types; listOf str;
+              default = [ "127.0.0.1:9200" ];
+              example = [ "myEShost:9200" ];
+              description = ''
+                The list of Elasticsearch nodes to connect to.
+
+                The events are distributed to these nodes in round
+                robin order. If one node becomes unreachable, the
+                event is automatically sent to another node. Each
+                Elasticsearch node can be defined as a URL or
+                IP:PORT. For example:
+                <literal>http://192.15.3.2</literal>,
+                <literal>https://es.found.io:9230</literal> or
+                <literal>192.24.3.2:9300</literal>. If no port is
+                specified, <literal>9200</literal> is used.
+              '';
+            };
+
+            filebeat = {
+              inputs = mkOption {
+                type = types.listOf json.type;
+                default = [];
+                internal = true;
+                description = ''
+                  Inputs specify how Filebeat locates and processes
+                  input data. Use <xref
+                  linkend="opt-services.filebeat.inputs"/> instead.
+
+                  See <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html"/>.
+                '';
+              };
+              modules = mkOption {
+                type = types.listOf json.type;
+                default = [];
+                internal = true;
+                description = ''
+                  Filebeat modules provide a quick way to get started
+                  processing common log formats. They contain default
+                  configurations, Elasticsearch ingest pipeline
+                  definitions, and Kibana dashboards to help you
+                  implement and deploy a log monitoring solution.
+
+                  Use <xref linkend="opt-services.filebeat.modules"/> instead.
+
+                  See <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-modules.html"/>.
+                '';
+              };
+            };
+          };
+        };
+        default = {};
+        example = literalExpression ''
+          {
+            settings = {
+              output.elasticsearch = {
+                hosts = [ "myEShost:9200" ];
+                username = "filebeat_internal";
+                password = { _secret = "/var/keys/elasticsearch_password"; };
+              };
+              logging.level = "info";
+            };
+          };
+        '';
+
+        description = ''
+          Configuration for filebeat. See
+          <link xlink:href="https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-reference-yml.html"/>
+          for supported values.
+
+          Options containing secret data should be set to an attribute
+          set containing the attribute <literal>_secret</literal> - a
+          string pointing to a file containing the value the option
+          should be set to. See the example to get a better picture of
+          this: in the resulting
+          <filename>filebeat.yml</filename> file, the
+          <literal>output.elasticsearch.password</literal>
+          key will be set to the contents of the
+          <filename>/var/keys/elasticsearch_password</filename> file.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+
+    services.filebeat.settings.filebeat.inputs = attrValues cfg.inputs;
+    services.filebeat.settings.filebeat.modules = attrValues cfg.modules;
+
+    systemd.services.filebeat = {
+      description = "Filebeat log shipper";
+      wantedBy = [ "multi-user.target" ];
+      wants = [ "elasticsearch.service" ];
+      after = [ "elasticsearch.service" ];
+      serviceConfig = {
+        ExecStartPre = pkgs.writeShellScript "filebeat-exec-pre" ''
+          set -euo pipefail
+
+          umask u=rwx,g=,o=
+
+          ${utils.genJqSecretsReplacementSnippet
+              cfg.settings
+              "/var/lib/filebeat/filebeat.yml"
+           }
+        '';
+        ExecStart = ''
+          ${cfg.package}/bin/filebeat -e \
+            -c "/var/lib/filebeat/filebeat.yml" \
+            --path.data "/var/lib/filebeat"
+        '';
+        Restart = "always";
+        StateDirectory = "filebeat";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/logging/journalbeat.nix b/nixos/modules/services/logging/journalbeat.nix
index 2d98598c1bee0..4035ab48b4b87 100644
--- a/nixos/modules/services/logging/journalbeat.nix
+++ b/nixos/modules/services/logging/journalbeat.nix
@@ -5,14 +5,10 @@ with lib;
 let
   cfg = config.services.journalbeat;
 
-  lt6 = builtins.compareVersions cfg.package.version "6" < 0;
-
   journalbeatYml = pkgs.writeText "journalbeat.yml" ''
     name: ${cfg.name}
     tags: ${builtins.toJSON cfg.tags}
 
-    ${optionalString lt6 "journalbeat.cursor_state_file: /var/lib/${cfg.stateDir}/cursor-state"}
-
     ${cfg.extraConfig}
   '';
 
@@ -28,7 +24,6 @@ in
         type = types.package;
         default = pkgs.journalbeat;
         defaultText = literalExpression "pkgs.journalbeat";
-        example = literalExpression "pkgs.journalbeat7";
         description = ''
           The journalbeat package to use
         '';
@@ -58,17 +53,7 @@ in
 
       extraConfig = mkOption {
         type = types.lines;
-        default = optionalString lt6 ''
-          journalbeat:
-            seek_position: cursor
-            cursor_seek_fallback: tail
-            write_cursor_state: true
-            cursor_flush_period: 5s
-            clean_field_names: true
-            convert_to_numbers: false
-            move_metadata_to_field: journal
-            default_type: journal
-        '';
+        default = "";
         description = "Any other configuration options you want to add";
       };
 
@@ -89,6 +74,8 @@ in
     systemd.services.journalbeat = {
       description = "Journalbeat log shipper";
       wantedBy = [ "multi-user.target" ];
+      wants = [ "elasticsearch.service" ];
+      after = [ "elasticsearch.service" ];
       preStart = ''
         mkdir -p ${cfg.stateDir}/data
         mkdir -p ${cfg.stateDir}/logs
diff --git a/nixos/modules/services/logging/journalwatch.nix b/nixos/modules/services/logging/journalwatch.nix
index 576c646c0f58b..fb86904d1ea29 100644
--- a/nixos/modules/services/logging/journalwatch.nix
+++ b/nixos/modules/services/logging/journalwatch.nix
@@ -74,6 +74,7 @@ in {
       mailFrom = mkOption {
         type = types.str;
         default = "journalwatch@${config.networking.hostName}";
+        defaultText = literalExpression ''"journalwatch@''${config.networking.hostName}"'';
         description = ''
           Mail address to send journalwatch reports from.
         '';
diff --git a/nixos/modules/services/logging/klogd.nix b/nixos/modules/services/logging/klogd.nix
index 2d1f515da9209..8d371c161eb18 100644
--- a/nixos/modules/services/logging/klogd.nix
+++ b/nixos/modules/services/logging/klogd.nix
@@ -10,6 +10,7 @@ with lib;
     services.klogd.enable = mkOption {
       type = types.bool;
       default = versionOlder (getVersion config.boot.kernelPackages.kernel) "3.5";
+      defaultText = literalExpression ''versionOlder (getVersion config.boot.kernelPackages.kernel) "3.5"'';
       description = ''
         Whether to enable klogd, the kernel log message processing
         daemon.  Since systemd handles logging of kernel messages on
diff --git a/nixos/modules/services/logging/logrotate.nix b/nixos/modules/services/logging/logrotate.nix
index 624b6cfb12159..ba5d6e29d0bd3 100644
--- a/nixos/modules/services/logging/logrotate.nix
+++ b/nixos/modules/services/logging/logrotate.nix
@@ -40,7 +40,7 @@ let
       };
 
       frequency = mkOption {
-        type = types.enum [ "daily" "weekly" "monthly" "yearly" ];
+        type = types.enum [ "hourly" "daily" "weekly" "monthly" "yearly" ];
         default = "daily";
         description = ''
           How often to rotate the logs.
@@ -155,7 +155,7 @@ in
     systemd.services.logrotate = {
       description = "Logrotate Service";
       wantedBy = [ "multi-user.target" ];
-      startAt = "*-*-* *:05:00";
+      startAt = "hourly";
       script = ''
         exec ${pkgs.logrotate}/sbin/logrotate ${configFile}
       '';
diff --git a/nixos/modules/services/mail/maddy.nix b/nixos/modules/services/mail/maddy.nix
new file mode 100644
index 0000000000000..44cfa3c2908d7
--- /dev/null
+++ b/nixos/modules/services/mail/maddy.nix
@@ -0,0 +1,247 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  name = "maddy";
+  cfg = config.services.maddy;
+  defaultConfig = ''
+    tls off
+
+    auth.pass_table local_authdb {
+      table sql_table {
+        driver sqlite3
+        dsn credentials.db
+        table_name passwords
+      }
+    }
+
+    storage.imapsql local_mailboxes {
+      driver sqlite3
+      dsn imapsql.db
+    }
+
+    table.chain local_rewrites {
+      optional_step regexp "(.+)\+(.+)@(.+)" "$1@$3"
+      optional_step static {
+        entry postmaster postmaster@$(primary_domain)
+      }
+      optional_step file /etc/maddy/aliases
+    }
+    msgpipeline local_routing {
+      destination postmaster $(local_domains) {
+        modify {
+          replace_rcpt &local_rewrites
+        }
+        deliver_to &local_mailboxes
+      }
+      default_destination {
+        reject 550 5.1.1 "User doesn't exist"
+      }
+    }
+
+    smtp tcp://0.0.0.0:25 {
+      limits {
+        all rate 20 1s
+        all concurrency 10
+      }
+      dmarc yes
+      check {
+        require_mx_record
+        dkim
+        spf
+      }
+      source $(local_domains) {
+        reject 501 5.1.8 "Use Submission for outgoing SMTP"
+      }
+      default_source {
+        destination postmaster $(local_domains) {
+          deliver_to &local_routing
+        }
+        default_destination {
+          reject 550 5.1.1 "User doesn't exist"
+        }
+      }
+    }
+
+    submission tcp://0.0.0.0:587 {
+      limits {
+        all rate 50 1s
+      }
+      auth &local_authdb
+      source $(local_domains) {
+        check {
+            authorize_sender {
+                prepare_email &local_rewrites
+                user_to_email identity
+            }
+        }
+        destination postmaster $(local_domains) {
+            deliver_to &local_routing
+        }
+        default_destination {
+            modify {
+                dkim $(primary_domain) $(local_domains) default
+            }
+            deliver_to &remote_queue
+        }
+      }
+      default_source {
+        reject 501 5.1.8 "Non-local sender domain"
+      }
+    }
+
+    target.remote outbound_delivery {
+      limits {
+        destination rate 20 1s
+        destination concurrency 10
+      }
+      mx_auth {
+        dane
+        mtasts {
+          cache fs
+          fs_dir mtasts_cache/
+        }
+        local_policy {
+            min_tls_level encrypted
+            min_mx_level none
+        }
+      }
+    }
+
+    target.queue remote_queue {
+      target &outbound_delivery
+      autogenerated_msg_domain $(primary_domain)
+      bounce {
+        destination postmaster $(local_domains) {
+          deliver_to &local_routing
+        }
+        default_destination {
+            reject 550 5.0.0 "Refusing to send DSNs to non-local addresses"
+        }
+      }
+    }
+
+    imap tcp://0.0.0.0:143 {
+      auth &local_authdb
+      storage &local_mailboxes
+    }
+  '';
+
+in {
+  options = {
+    services.maddy = {
+      enable = mkEnableOption "Maddy, a free an open source mail server";
+
+      user = mkOption {
+        default = "maddy";
+        type = with types; uniq string;
+        description = ''
+          Name of the user under which maddy will run. If not specified, a
+          default user will be created.
+        '';
+      };
+      group = mkOption {
+        default = "maddy";
+        type = with types; uniq string;
+        description = ''
+          Name of the group under which maddy will run. If not specified, a
+          default group will be created.
+        '';
+      };
+
+      hostname = mkOption {
+        default = "localhost";
+        type = with types; uniq string;
+        example = ''example.com'';
+        description = ''
+          Hostname to use. It should be FQDN.
+        '';
+      };
+      primaryDomain = mkOption {
+        default = "localhost";
+        type = with types; uniq string;
+        example = ''mail.example.com'';
+        description = ''
+          Primary MX domain to use. It should be FQDN.
+        '';
+      };
+      localDomains = mkOption {
+        type = with types; listOf str;
+        default = ["$(primary_domain)"];
+        example = [
+          "$(primary_domain)"
+          "example.com"
+          "other.example.com"
+        ];
+        description = ''
+          Define list of allowed domains.
+        '';
+      };
+      config = mkOption {
+        type = with types; nullOr lines;
+        default = defaultConfig;
+        description = ''
+          Server configuration.
+        '';
+      };
+
+      openFirewall = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Open the configured incoming and outgoing mail server ports.
+        '';
+      };
+
+    };
+  };
+
+  config = mkIf cfg.enable {
+
+    systemd = {
+      packages = [ pkgs.maddy ];
+      services.maddy = {
+        serviceConfig = {
+          User = "${cfg.user}";
+          Group = "${cfg.group}";
+        };
+        wantedBy = [ "multi-user.target" ];
+      };
+    };
+
+    environment.etc."maddy/maddy.conf" = {
+      text = ''
+        $(hostname) = ${cfg.hostname}
+        $(primary_domain) = ${cfg.primaryDomain}
+        $(local_domains) = ${toString cfg.localDomains}
+        hostname ${cfg.hostname}
+        ${cfg.config}
+      '';
+    };
+
+    users.users = optionalAttrs (cfg.user == "maddy") {
+      maddy = {
+        description = "Maddy service user";
+        group = cfg.group;
+        home = "/var/lib/maddy";
+        createHome = true;
+        isSystemUser = true;
+      };
+    };
+
+    users.groups = mkIf (cfg.group == "maddy") {
+      maddy = pkgs.lib.mkForce {
+        name = cfg.group;
+      };
+    };
+
+    networking.firewall = mkIf cfg.openFirewall {
+      allowedTCPPorts = [ 25 143 587 ];
+    };
+
+    environment.systemPackages = [
+      pkgs.maddy
+    ];
+  };
+}
diff --git a/nixos/modules/services/mail/opendkim.nix b/nixos/modules/services/mail/opendkim.nix
index beff57613afc5..f1ffc5d3aeef2 100644
--- a/nixos/modules/services/mail/opendkim.nix
+++ b/nixos/modules/services/mail/opendkim.nix
@@ -55,6 +55,7 @@ in {
       domains = mkOption {
         type = types.str;
         default = "csl:${config.networking.hostName}";
+        defaultText = literalExpression ''"csl:''${config.networking.hostName}"'';
         example = "csl:example.com,mydomain.net";
         description = ''
           Local domains set (see <literal>opendkim(8)</literal> for more information on datasets).
diff --git a/nixos/modules/services/mail/rspamd.nix b/nixos/modules/services/mail/rspamd.nix
index 50208cbeb00a8..a570e137a55a7 100644
--- a/nixos/modules/services/mail/rspamd.nix
+++ b/nixos/modules/services/mail/rspamd.nix
@@ -5,6 +5,7 @@ with lib;
 let
 
   cfg = config.services.rspamd;
+  opt = options.services.rspamd;
   postfixCfg = config.services.postfix;
 
   bindSocketOpts = {options, config, ... }: {
@@ -285,8 +286,8 @@ in
               bindSockets = [{
                 socket = "/run/rspamd/rspamd.sock";
                 mode = "0660";
-                owner = "${cfg.user}";
-                group = "${cfg.group}";
+                owner = "''${config.${opt.user}}";
+                group = "''${config.${opt.group}}";
               }];
             };
             controller = {
diff --git a/nixos/modules/services/misc/airsonic.nix b/nixos/modules/services/misc/airsonic.nix
index 533a3d367a32a..5a5c30a412330 100644
--- a/nixos/modules/services/misc/airsonic.nix
+++ b/nixos/modules/services/misc/airsonic.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.airsonic;
+  opt = options.services.airsonic;
 in {
   options = {
 
@@ -78,7 +79,7 @@ in {
         description = ''
           List of paths to transcoder executables that should be accessible
           from Airsonic. Symlinks will be created to each executable inside
-          ${cfg.home}/transcoders.
+          ''${config.${opt.home}}/transcoders.
         '';
       };
 
diff --git a/nixos/modules/services/misc/dysnomia.nix b/nixos/modules/services/misc/dysnomia.nix
index 333ba651cde22..7d9c39a697370 100644
--- a/nixos/modules/services/misc/dysnomia.nix
+++ b/nixos/modules/services/misc/dysnomia.nix
@@ -104,31 +104,37 @@ in
       properties = mkOption {
         description = "An attribute set in which each attribute represents a machine property. Optionally, these values can be shell substitutions.";
         default = {};
+        type = types.attrs;
       };
 
       containers = mkOption {
         description = "An attribute set in which each key represents a container and each value an attribute set providing its configuration properties";
         default = {};
+        type = types.attrsOf types.attrs;
       };
 
       components = mkOption {
         description = "An atttribute set in which each key represents a container and each value an attribute set in which each key represents a component and each value a derivation constructing its initial state";
         default = {};
+        type = types.attrsOf types.attrs;
       };
 
       extraContainerProperties = mkOption {
         description = "An attribute set providing additional container settings in addition to the default properties";
         default = {};
+        type = types.attrs;
       };
 
       extraContainerPaths = mkOption {
         description = "A list of paths containing additional container configurations that are added to the search folders";
         default = [];
+        type = types.listOf types.path;
       };
 
       extraModulePaths = mkOption {
         description = "A list of paths containing additional modules that are added to the search folders";
         default = [];
+        type = types.listOf types.path;
       };
 
       enableLegacyModules = mkOption {
diff --git a/nixos/modules/services/misc/etcd.nix b/nixos/modules/services/misc/etcd.nix
index c4ea091a03802..3925b7dd16367 100644
--- a/nixos/modules/services/misc/etcd.nix
+++ b/nixos/modules/services/misc/etcd.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.etcd;
+  opt = options.services.etcd;
 
 in {
 
@@ -17,12 +18,14 @@ in {
     name = mkOption {
       description = "Etcd unique node name.";
       default = config.networking.hostName;
+      defaultText = literalExpression "config.networking.hostName";
       type = types.str;
     };
 
     advertiseClientUrls = mkOption {
       description = "Etcd list of this member's client URLs to advertise to the rest of the cluster.";
       default = cfg.listenClientUrls;
+      defaultText = literalExpression "config.${opt.listenClientUrls}";
       type = types.listOf types.str;
     };
 
@@ -41,12 +44,14 @@ in {
     initialAdvertisePeerUrls = mkOption {
       description = "Etcd list of this member's peer URLs to advertise to rest of the cluster.";
       default = cfg.listenPeerUrls;
+      defaultText = literalExpression "config.${opt.listenPeerUrls}";
       type = types.listOf types.str;
     };
 
     initialCluster = mkOption {
       description = "Etcd initial cluster configuration for bootstrapping.";
       default = ["${cfg.name}=http://127.0.0.1:2380"];
+      defaultText = literalExpression ''["''${config.${opt.name}}=http://127.0.0.1:2380"]'';
       type = types.listOf types.str;
     };
 
@@ -95,18 +100,21 @@ in {
     peerCertFile = mkOption {
       description = "Cert file to use for peer to peer communication";
       default = cfg.certFile;
+      defaultText = literalExpression "config.${opt.certFile}";
       type = types.nullOr types.path;
     };
 
     peerKeyFile = mkOption {
       description = "Key file to use for peer to peer communication";
       default = cfg.keyFile;
+      defaultText = literalExpression "config.${opt.keyFile}";
       type = types.nullOr types.path;
     };
 
     peerTrustedCaFile = mkOption {
       description = "Certificate authority file to use for peer to peer communication";
       default = cfg.trustedCaFile;
+      defaultText = literalExpression "config.${opt.trustedCaFile}";
       type = types.nullOr types.path;
     };
 
diff --git a/nixos/modules/services/misc/exhibitor.nix b/nixos/modules/services/misc/exhibitor.nix
index 28c98edf47afe..4c935efbd8440 100644
--- a/nixos/modules/services/misc/exhibitor.nix
+++ b/nixos/modules/services/misc/exhibitor.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.exhibitor;
+  opt = options.services.exhibitor;
   exhibitorConfig = ''
     zookeeper-install-directory=${cfg.baseDir}/zookeeper
     zookeeper-data-directory=${cfg.zkDataDir}
@@ -165,6 +166,7 @@ in
       zkDataDir = mkOption {
         type = types.str;
         default = "${cfg.baseDir}/zkData";
+        defaultText = literalExpression ''"''${config.${opt.baseDir}}/zkData"'';
         description = ''
           The Zookeeper data directory
         '';
@@ -172,6 +174,7 @@ in
       zkLogDir = mkOption {
         type = types.path;
         default = "${cfg.baseDir}/zkLogs";
+        defaultText = literalExpression ''"''${config.${opt.baseDir}}/zkLogs"'';
         description = ''
           The Zookeeper logs directory
         '';
diff --git a/nixos/modules/services/misc/gitea.nix b/nixos/modules/services/misc/gitea.nix
index c0f7661c5698b..0096286701f43 100644
--- a/nixos/modules/services/misc/gitea.nix
+++ b/nixos/modules/services/misc/gitea.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.gitea;
+  opt = options.services.gitea;
   gitea = cfg.package;
   pg = config.services.postgresql;
   useMysql = cfg.database.type == "mysql";
@@ -51,6 +52,7 @@ in
       log = {
         rootPath = mkOption {
           default = "${cfg.stateDir}/log";
+          defaultText = literalExpression ''"''${config.${opt.stateDir}}/log"'';
           type = types.str;
           description = "Root path for log files.";
         };
@@ -84,6 +86,11 @@ in
         port = mkOption {
           type = types.port;
           default = (if !usePostgresql then 3306 else pg.port);
+          defaultText = literalExpression ''
+            if config.${opt.database.type} != "postgresql"
+            then 3306
+            else config.${options.services.postgresql.port}
+          '';
           description = "Database host port.";
         };
 
@@ -130,6 +137,7 @@ in
         path = mkOption {
           type = types.str;
           default = "${cfg.stateDir}/data/gitea.db";
+          defaultText = literalExpression ''"''${config.${opt.stateDir}}/data/gitea.db"'';
           description = "Path to the sqlite3 database file.";
         };
 
@@ -166,6 +174,7 @@ in
         backupDir = mkOption {
           type = types.str;
           default = "${cfg.stateDir}/dump";
+          defaultText = literalExpression ''"''${config.${opt.stateDir}}/dump"'';
           description = "Path to the dump files.";
         };
       };
@@ -199,6 +208,7 @@ in
         contentDir = mkOption {
           type = types.str;
           default = "${cfg.stateDir}/data/lfs";
+          defaultText = literalExpression ''"''${config.${opt.stateDir}}/data/lfs"'';
           description = "Where to store LFS files.";
         };
       };
@@ -212,6 +222,7 @@ in
       repositoryRoot = mkOption {
         type = types.str;
         default = "${cfg.stateDir}/repositories";
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/repositories"'';
         description = "Path to the git repositories.";
       };
 
@@ -299,7 +310,7 @@ in
               ENABLED = true;
               MAILER_TYPE = "sendmail";
               FROM = "do-not-reply@example.org";
-              SENDMAIL_PATH = "${pkgs.system-sendmail}/bin/sendmail";
+              SENDMAIL_PATH = "''${pkgs.system-sendmail}/bin/sendmail";
             };
             other = {
               SHOW_FOOTER_VERSION = false;
diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix
index b2abe70627d0d..219155777db95 100644
--- a/nixos/modules/services/misc/gitlab.nix
+++ b/nixos/modules/services/misc/gitlab.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, utils, ... }:
+{ config, lib, options, pkgs, utils, ... }:
 
 with lib;
 
 let
   cfg = config.services.gitlab;
+  opt = options.services.gitlab;
 
   ruby = cfg.packages.gitlab.ruby;
 
@@ -309,6 +310,7 @@ in {
       backup.path = mkOption {
         type = types.str;
         default = cfg.statePath + "/backup";
+        defaultText = literalExpression ''config.${opt.statePath} + "/backup"'';
         description = "GitLab path for backups.";
       };
 
@@ -475,6 +477,7 @@ in {
       host = mkOption {
         type = types.str;
         default = config.networking.hostName;
+        defaultText = literalExpression "config.networking.hostName";
         description = "GitLab host name. Used e.g. for copy-paste URLs.";
       };
 
@@ -534,6 +537,7 @@ in {
         host = mkOption {
           type = types.str;
           default = config.services.gitlab.host;
+          defaultText = literalExpression "config.services.gitlab.host";
           description = "GitLab container registry host name.";
         };
         port = mkOption {
@@ -552,6 +556,7 @@ in {
         defaultForProjects = mkOption {
           type = types.bool;
           default = cfg.registry.enable;
+          defaultText = literalExpression "config.${opt.registry.enable}";
           description = "If GitLab container registry should be enabled by default for projects.";
         };
         issuer = mkOption {
diff --git a/nixos/modules/services/misc/gitweb.nix b/nixos/modules/services/misc/gitweb.nix
index 13396bf2eb028..a1180716e36bb 100644
--- a/nixos/modules/services/misc/gitweb.nix
+++ b/nixos/modules/services/misc/gitweb.nix
@@ -47,6 +47,7 @@ in
         $highlight_bin = "${pkgs.highlight}/bin/highlight";
         ${cfg.extraConfig}
       '';
+      defaultText = literalDocBook "generated config file";
       type = types.path;
       readOnly = true;
       internal = true;
diff --git a/nixos/modules/services/misc/gogs.nix b/nixos/modules/services/misc/gogs.nix
index d7233f10c7cb8..c7ae4f494071b 100644
--- a/nixos/modules/services/misc/gogs.nix
+++ b/nixos/modules/services/misc/gogs.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.gogs;
+  opt = options.services.gogs;
   configFile = pkgs.writeText "app.ini" ''
     APP_NAME = ${cfg.appName}
     RUN_USER = ${cfg.user}
@@ -129,6 +130,7 @@ in
         path = mkOption {
           type = types.str;
           default = "${cfg.stateDir}/data/gogs.db";
+          defaultText = literalExpression ''"''${config.${opt.stateDir}}/data/gogs.db"'';
           description = "Path to the sqlite3 database file.";
         };
       };
@@ -142,6 +144,7 @@ in
       repositoryRoot = mkOption {
         type = types.str;
         default = "${cfg.stateDir}/repositories";
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/repositories"'';
         description = "Path to the git repositories.";
       };
 
diff --git a/nixos/modules/services/misc/gollum.nix b/nixos/modules/services/misc/gollum.nix
index 4053afa69be56..cad73a871ba6b 100644
--- a/nixos/modules/services/misc/gollum.nix
+++ b/nixos/modules/services/misc/gollum.nix
@@ -100,6 +100,7 @@ in
       serviceConfig = {
         User = config.users.users.gollum.name;
         Group = config.users.groups.gollum.name;
+        WorkingDirectory = cfg.stateDir;
         ExecStart = ''
           ${pkgs.gollum}/bin/gollum \
             --port ${toString cfg.port} \
diff --git a/nixos/modules/services/misc/headphones.nix b/nixos/modules/services/misc/headphones.nix
index 3ee0a4458bd0e..31bd61cb4c200 100644
--- a/nixos/modules/services/misc/headphones.nix
+++ b/nixos/modules/services/misc/headphones.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
@@ -7,6 +7,7 @@ let
   name = "headphones";
 
   cfg = config.services.headphones;
+  opt = options.services.headphones;
 
 in
 
@@ -29,6 +30,7 @@ in
       configFile = mkOption {
         type = types.path;
         default = "${cfg.dataDir}/config.ini";
+        defaultText = literalExpression ''"''${config.${opt.dataDir}}/config.ini"'';
         description = "Path to config file.";
       };
       host = mkOption {
diff --git a/nixos/modules/services/misc/home-assistant.nix b/nixos/modules/services/misc/home-assistant.nix
index 8279d075bafbc..2de25d87ed398 100644
--- a/nixos/modules/services/misc/home-assistant.nix
+++ b/nixos/modules/services/misc/home-assistant.nix
@@ -24,6 +24,8 @@ let
 
   availableComponents = cfg.package.availableComponents;
 
+  explicitComponents = cfg.package.extraComponents;
+
   usedPlatforms = config:
     if isAttrs config then
       optional (config ? platform) config.platform
@@ -42,10 +44,13 @@ let
   # } ];
   useComponentPlatform = component: elem component (usedPlatforms cfg.config);
 
-  # Returns whether component is used in config
+  useExplicitComponent = component: elem component explicitComponents;
+
+  # Returns whether component is used in config or explicitly passed into package
   useComponent = component:
     hasAttrByPath (splitString "." component) cfg.config
-    || useComponentPlatform component;
+    || useComponentPlatform component
+    || useExplicitComponent component;
 
   # List of components used in config
   extraComponents = filter useComponent availableComponents;
diff --git a/nixos/modules/services/misc/matrix-appservice-discord.nix b/nixos/modules/services/misc/matrix-appservice-discord.nix
index c448614eca328..8a8c7f41e3cbb 100644
--- a/nixos/modules/services/misc/matrix-appservice-discord.nix
+++ b/nixos/modules/services/misc/matrix-appservice-discord.nix
@@ -1,4 +1,4 @@
-{ config, pkgs, lib, ... }:
+{ config, options, pkgs, lib, ... }:
 
 with lib;
 
@@ -7,6 +7,7 @@ let
   registrationFile = "${dataDir}/discord-registration.yaml";
   appDir = "${pkgs.matrix-appservice-discord}/${pkgs.matrix-appservice-discord.passthru.nodeAppDir}";
   cfg = config.services.matrix-appservice-discord;
+  opt = options.services.matrix-appservice-discord;
   # TODO: switch to configGen.json once RFC42 is implemented
   settingsFile = pkgs.writeText "matrix-appservice-discord-settings.json" (builtins.toJSON cfg.settings);
 
@@ -74,6 +75,7 @@ in {
       url = mkOption {
         type = types.str;
         default = "http://localhost:${toString cfg.port}";
+        defaultText = literalExpression ''"http://localhost:''${toString config.${opt.port}}"'';
         description = ''
           The URL where the application service is listening for HS requests.
         '';
@@ -98,6 +100,9 @@ in {
       serviceDependencies = mkOption {
         type = with types; listOf str;
         default = optional config.services.matrix-synapse.enable "matrix-synapse.service";
+        defaultText = literalExpression ''
+          optional config.services.matrix-synapse.enable "matrix-synapse.service"
+        '';
         description = ''
           List of Systemd services to require and wait for when starting the application service,
           such as the Matrix homeserver if it's running on the same host.
diff --git a/nixos/modules/services/misc/matrix-synapse.nix b/nixos/modules/services/misc/matrix-synapse.nix
index 950c72c6e589b..404163d2de6c5 100644
--- a/nixos/modules/services/misc/matrix-synapse.nix
+++ b/nixos/modules/services/misc/matrix-synapse.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.matrix-synapse;
+  opt = options.services.matrix-synapse;
   pg = config.services.postgresql;
   usePostgresql = cfg.database_type == "psycopg2";
   logConfigFile = pkgs.writeText "log_config.yaml" cfg.logConfig;
@@ -197,7 +198,7 @@ in {
       tls_certificate_path = mkOption {
         type = types.nullOr types.str;
         default = null;
-        example = "${cfg.dataDir}/homeserver.tls.crt";
+        example = "/var/lib/matrix-synapse/homeserver.tls.crt";
         description = ''
           PEM encoded X509 certificate for TLS.
           You can replace the self-signed certificate that synapse
@@ -209,7 +210,7 @@ in {
       tls_private_key_path = mkOption {
         type = types.nullOr types.str;
         default = null;
-        example = "${cfg.dataDir}/homeserver.tls.key";
+        example = "/var/lib/matrix-synapse/homeserver.tls.key";
         description = ''
           PEM encoded private key for TLS. Specify null if synapse is not
           speaking TLS directly.
@@ -218,7 +219,7 @@ in {
       tls_dh_params_path = mkOption {
         type = types.nullOr types.str;
         default = null;
-        example = "${cfg.dataDir}/homeserver.tls.dh";
+        example = "/var/lib/matrix-synapse/homeserver.tls.dh";
         description = ''
           PEM dh parameters for ephemeral keys
         '';
@@ -227,6 +228,7 @@ in {
         type = types.str;
         example = "example.com";
         default = config.networking.hostName;
+        defaultText = literalExpression "config.networking.hostName";
         description = ''
           The domain name of the server, with optional explicit port.
           This is used by remote servers to look up the server address.
@@ -379,6 +381,11 @@ in {
         default = if versionAtLeast config.system.stateVersion "18.03"
           then "psycopg2"
           else "sqlite3";
+        defaultText = literalExpression ''
+          if versionAtLeast config.system.stateVersion "18.03"
+            then "psycopg2"
+            else "sqlite3"
+        '';
         description = ''
           The database engine name. Can be sqlite or psycopg2.
         '';
@@ -402,6 +409,29 @@ in {
             database = cfg.database_name;
           };
         }.${cfg.database_type};
+        defaultText = literalDocBook ''
+          <variablelist>
+            <varlistentry>
+              <term>using sqlite3</term>
+              <listitem>
+                <programlisting>
+                  { database = "''${config.${opt.dataDir}}/homeserver.db"; }
+                </programlisting>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term>using psycopg2</term>
+              <listitem>
+                <programlisting>
+                  psycopg2 = {
+                    user = config.${opt.database_user};
+                    database = config.${opt.database_name};
+                  }
+                </programlisting>
+              </listitem>
+            </varlistentry>
+          </variablelist>
+        '';
         description = ''
           Arguments to pass to the engine.
         '';
@@ -733,7 +763,7 @@ in {
       after = [ "network.target" ] ++ optional hasLocalPostgresDB "postgresql.service";
       wantedBy = [ "multi-user.target" ];
       preStart = ''
-        ${cfg.package}/bin/homeserver \
+        ${cfg.package}/bin/synapse_homeserver \
           --config-path ${configFile} \
           --keys-directory ${cfg.dataDir} \
           --generate-keys
@@ -753,7 +783,7 @@ in {
           chmod 0600 ${cfg.dataDir}/homeserver.signing.key
         '')) ];
         ExecStart = ''
-          ${cfg.package}/bin/homeserver \
+          ${cfg.package}/bin/synapse_homeserver \
             ${ concatMapStringsSep "\n  " (x: "--config-path ${x} \\") ([ configFile ] ++ cfg.extraConfigFiles) }
             --keys-directory ${cfg.dataDir}
         '';
diff --git a/nixos/modules/services/misc/mautrix-telegram.nix b/nixos/modules/services/misc/mautrix-telegram.nix
index 59d0b6824090c..794c4dd9ddcd7 100644
--- a/nixos/modules/services/misc/mautrix-telegram.nix
+++ b/nixos/modules/services/misc/mautrix-telegram.nix
@@ -108,6 +108,9 @@ in {
       serviceDependencies = mkOption {
         type = with types; listOf str;
         default = optional config.services.matrix-synapse.enable "matrix-synapse.service";
+        defaultText = literalExpression ''
+          optional config.services.matrix-synapse.enable "matrix-synapse.service"
+        '';
         description = ''
           List of Systemd services to require and wait for when starting the application service.
         '';
@@ -142,7 +145,7 @@ in {
             --config='${settingsFile}' \
             --registration='${registrationFile}'
         fi
-
+      '' + lib.optionalString (pkgs.mautrix-telegram ? alembic) ''
         # run automatic database init and migration scripts
         ${pkgs.mautrix-telegram.alembic}/bin/alembic -x config='${settingsFile}' upgrade head
       '';
diff --git a/nixos/modules/services/misc/mediatomb.nix b/nixos/modules/services/misc/mediatomb.nix
index 383090575b22a..ea9ffbb867751 100644
--- a/nixos/modules/services/misc/mediatomb.nix
+++ b/nixos/modules/services/misc/mediatomb.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
@@ -6,6 +6,7 @@ let
 
   gid = config.ids.gids.mediatomb;
   cfg = config.services.mediatomb;
+  opt = options.services.mediatomb;
   name = cfg.package.pname;
   pkg = cfg.package;
   optionYesNo = option: if option then "yes" else "no";
@@ -261,6 +262,7 @@ in {
       dataDir = mkOption {
         type = types.path;
         default = "/var/lib/${name}";
+        defaultText = literalExpression ''"/var/lib/''${config.${opt.package}.pname}"'';
         description = ''
           The directory where Gerbera/Mediatomb stores its state, data, etc.
         '';
@@ -277,13 +279,13 @@ in {
       user = mkOption {
         type = types.str;
         default = "mediatomb";
-        description = "User account under which ${name} runs.";
+        description = "User account under which the service runs.";
       };
 
       group = mkOption {
         type = types.str;
         default = "mediatomb";
-        description = "Group account under which ${name} runs.";
+        description = "Group account under which the service runs.";
       };
 
       port = mkOption {
@@ -340,7 +342,7 @@ in {
         type = types.bool;
         default = false;
         description = ''
-          Allow ${name} to create and use its own config file inside the <literal>dataDir</literal> as
+          Allow the service to create and use its own config file inside the <literal>dataDir</literal> as
           configured by <option>services.mediatomb.dataDir</option>.
           Deactivated by default, the service then runs with the configuration generated from this module.
           Otherwise, when enabled, no service configuration is generated. Gerbera/Mediatomb then starts using
diff --git a/nixos/modules/services/misc/moonraker.nix b/nixos/modules/services/misc/moonraker.nix
index de8668a0c066e..ae57aaa6d4795 100644
--- a/nixos/modules/services/misc/moonraker.nix
+++ b/nixos/modules/services/misc/moonraker.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 with lib;
 let
   pkg = pkgs.moonraker;
   cfg = config.services.moonraker;
+  opt = options.services.moonraker;
   format = pkgs.formats.ini {
     # https://github.com/NixOS/nixpkgs/pull/121613#issuecomment-885241996
     listToValue = l:
@@ -18,6 +19,7 @@ in {
       klipperSocket = mkOption {
         type = types.path;
         default = config.services.klipper.apiSocket;
+        defaultText = literalExpression "config.services.klipper.apiSocket";
         description = "Path to Klipper's API socket.";
       };
 
@@ -30,6 +32,7 @@ in {
       configDir = mkOption {
         type = types.path;
         default = cfg.stateDir + "/config";
+        defaultText = literalExpression ''config.${opt.stateDir} + "/config"'';
         description = ''
           The directory containing client-writable configuration files.
 
diff --git a/nixos/modules/services/misc/mwlib.nix b/nixos/modules/services/misc/mwlib.nix
index 8dd17c06c0b35..fedc1e5542a4c 100644
--- a/nixos/modules/services/misc/mwlib.nix
+++ b/nixos/modules/services/misc/mwlib.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.mwlib;
+  opt = options.services.mwlib;
   pypkgs = pkgs.python27Packages;
 
   inherit (pypkgs) python mwlib;
@@ -46,6 +47,9 @@ in
 
       qserve = mkOption {
         default = [ "${cfg.qserve.address}:${toString cfg.qserve.port}" ];
+        defaultText = literalExpression ''
+          [ "''${config.${opt.qserve.address}}:''${toString config.${opt.qserve.port}}"
+        ]'';
         type = types.listOf types.str;
         description = "Register qserve instance.";
       }; # nserve.qserve
@@ -96,6 +100,7 @@ in
     nslave = {
       enable = mkOption {
         default = cfg.qserve.enable;
+        defaultText = literalExpression "config.${opt.qserve.enable}";
         type = types.bool;
         description = ''
           Pulls new jobs from exactly one qserve instance
@@ -127,7 +132,7 @@ in
           You have to enable it, or use your own way for serving files
           and set the http.url option accordingly.
           '';
-        type = types.submodule ({
+        type = types.submodule ({ config, options, ... }: {
           options = {
             enable = mkOption {
               default = true;
@@ -148,7 +153,8 @@ in
             }; # nslave.http.address
 
             url = mkOption {
-              default = "http://localhost:${toString cfg.nslave.http.port}/cache";
+              default = "http://localhost:${toString config.port}/cache";
+              defaultText = literalExpression ''"http://localhost:''${toString config.${options.port}}/cache"'';
               type = types.str;
               description = ''
                 Specify URL for accessing generated files from cache.
diff --git a/nixos/modules/services/misc/mx-puppet-discord.nix b/nixos/modules/services/misc/mx-puppet-discord.nix
index c34803f97223f..b6f5e04511ae3 100644
--- a/nixos/modules/services/misc/mx-puppet-discord.nix
+++ b/nixos/modules/services/misc/mx-puppet-discord.nix
@@ -39,7 +39,7 @@ in {
 
           #defaults to sqlite but can be configured to use postgresql with
           #connstring
-          database.filename = "${dataDir}/mx-puppet-discord/database.db";
+          database.filename = "${dataDir}/database.db";
           logging = {
             console = "info";
             lineDateFormat = "MMM-D HH:mm:ss.SSS";
@@ -67,6 +67,9 @@ in {
       serviceDependencies = mkOption {
         type = with types; listOf str;
         default = optional config.services.matrix-synapse.enable "matrix-synapse.service";
+        defaultText = literalExpression ''
+          optional config.services.matrix-synapse.enable "matrix-synapse.service"
+        '';
         description = ''
           List of Systemd services to require and wait for when starting the application service.
         '';
@@ -110,7 +113,9 @@ in {
         UMask = 0027;
 
         ExecStart = ''
-          ${pkgs.mx-puppet-discord}/bin/mx-puppet-discord -c ${settingsFile}
+          ${pkgs.mx-puppet-discord}/bin/mx-puppet-discord \
+            -c ${settingsFile} \
+            -f ${registrationFile}
         '';
       };
     };
diff --git a/nixos/modules/services/misc/nitter.nix b/nixos/modules/services/misc/nitter.nix
index 0c562343d85d3..6a9eeb02095cc 100644
--- a/nixos/modules/services/misc/nitter.nix
+++ b/nixos/modules/services/misc/nitter.nix
@@ -299,7 +299,7 @@ in
     systemd.services.nitter = {
         description = "Nitter (An alternative Twitter front-end)";
         wantedBy = [ "multi-user.target" ];
-        after = [ "syslog.target" "network.target" ];
+        after = [ "network.target" ];
         serviceConfig = {
           DynamicUser = true;
           StateDirectory = "nitter";
diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix
index 4ea45888e5fc5..869feb05eb7b3 100644
--- a/nixos/modules/services/misc/nix-daemon.nix
+++ b/nixos/modules/services/misc/nix-daemon.nix
@@ -74,6 +74,8 @@ in
   imports = [
     (mkRenamedOptionModule [ "nix" "useChroot" ] [ "nix" "useSandbox" ])
     (mkRenamedOptionModule [ "nix" "chrootDirs" ] [ "nix" "sandboxPaths" ])
+    (mkRenamedOptionModule [ "nix" "daemonIONiceLevel" ] [ "nix" "daemonIOSchedPriority" ])
+    (mkRemovedOptionModule [ "nix" "daemonNiceLevel" ] "Consider nix.daemonCPUSchedPolicy instead.")
   ];
 
   ###### interface
@@ -190,15 +192,28 @@ in
         example = "batch";
         description = ''
           Nix daemon process CPU scheduling policy. This policy propagates to
-          build processes. other is the default scheduling policy for regular
-          tasks. The batch policy is similar to other, but optimised for
-          non-interactive tasks. idle is for extremely low-priority tasks
-          that should only be run when no other task requires CPU time.
-
-          Please note that while using the idle policy may greatly improve
-          responsiveness of a system performing expensive builds, it may also
-          slow down and potentially starve crucial configuration updates
-          during load.
+          build processes. <literal>other</literal> is the default scheduling
+          policy for regular tasks. The <literal>batch</literal> policy is
+          similar to <literal>other</literal>, but optimised for
+          non-interactive tasks. <literal>idle</literal> is for extremely
+          low-priority tasks that should only be run when no other task
+          requires CPU time.
+
+          Please note that while using the <literal>idle</literal> policy may
+          greatly improve responsiveness of a system performing expensive
+          builds, it may also slow down and potentially starve crucial
+          configuration updates during load.
+
+          <literal>idle</literal> may therefore be a sensible policy for
+          systems that experience only intermittent phases of high CPU load,
+          such as desktop or portable computers used interactively. Other
+          systems should use the <literal>other</literal> or
+          <literal>batch</literal> policy instead.
+
+          For more fine-grained resource control, please refer to
+          <citerefentry><refentrytitle>systemd.resource-control
+          </refentrytitle><manvolnum>5</manvolnum></citerefentry> and adjust
+          <option>systemd.services.nix-daemon</option> directly.
       '';
       };
 
@@ -208,13 +223,20 @@ in
         example = "idle";
         description = ''
           Nix daemon process I/O scheduling class. This class propagates to
-          build processes. best-effort is the default class for regular tasks.
-          The idle class is for extremely low-priority tasks that should only
-          perform I/O when no other task does.
-
-          Please note that while using the idle scheduling class can improve
-          responsiveness of a system performing expensive builds, it might also
-          slow down or starve crucial configuration updates during load.
+          build processes. <literal>best-effort</literal> is the default
+          class for regular tasks. The <literal>idle</literal> class is for
+          extremely low-priority tasks that should only perform I/O when no
+          other task does.
+
+          Please note that while using the <literal>idle</literal> scheduling
+          class can improve responsiveness of a system performing expensive
+          builds, it might also slow down or starve crucial configuration
+          updates during load.
+
+          <literal>idle</literal> may therefore be a sensible class for
+          systems that experience only intermittent phases of high I/O load,
+          such as desktop or portable computers used interactively. Other
+          systems should use the <literal>best-effort</literal> class.
       '';
       };
 
@@ -546,7 +568,7 @@ in
       [ nix
         pkgs.nix-info
       ]
-      ++ optional (config.programs.bash.enableCompletion && !versionAtLeast nixVersion "2.4pre") pkgs.nix-bash-completions;
+      ++ optional (config.programs.bash.enableCompletion) pkgs.nix-bash-completions;
 
     environment.etc."nix/nix.conf".source = nixConf;
 
diff --git a/nixos/modules/services/misc/rippled.nix b/nixos/modules/services/misc/rippled.nix
index 9c66df2fce1c3..f6ec0677774b3 100644
--- a/nixos/modules/services/misc/rippled.nix
+++ b/nixos/modules/services/misc/rippled.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.rippled;
+  opt = options.services.rippled;
 
   b2i = val: if val then "1" else "0";
 
@@ -165,6 +166,7 @@ let
         description = "Location to store the database.";
         type = types.path;
         default = cfg.databasePath;
+        defaultText = literalExpression "config.${opt.databasePath}";
       };
 
       compression = mkOption {
@@ -177,6 +179,7 @@ let
         description = "Enable automatic purging of older ledger information.";
         type = types.nullOr (types.addCheck types.int (v: v > 256));
         default = cfg.ledgerHistory;
+        defaultText = literalExpression "config.${opt.ledgerHistory}";
       };
 
       advisoryDelete = mkOption {
@@ -398,6 +401,7 @@ in
       config = mkOption {
         internal = true;
         default = pkgs.writeText "rippled.conf" rippledCfg;
+        defaultText = literalDocBook "generated config file";
       };
     };
   };
diff --git a/nixos/modules/services/misc/sickbeard.nix b/nixos/modules/services/misc/sickbeard.nix
index 8e871309c98e8..a3db992863426 100644
--- a/nixos/modules/services/misc/sickbeard.nix
+++ b/nixos/modules/services/misc/sickbeard.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
@@ -7,6 +7,7 @@ let
   name = "sickbeard";
 
   cfg = config.services.sickbeard;
+  opt = options.services.sickbeard;
   sickbeard = cfg.package;
 
 in
@@ -39,6 +40,7 @@ in
       configFile = mkOption {
         type = types.path;
         default = "${cfg.dataDir}/config.ini";
+        defaultText = literalExpression ''"''${config.${opt.dataDir}}/config.ini"'';
         description = "Path to config file.";
       };
       port = mkOption {
diff --git a/nixos/modules/services/misc/sourcehut/builds.nix b/nixos/modules/services/misc/sourcehut/builds.nix
index f806e8c51b99e..685a132d35070 100644
--- a/nixos/modules/services/misc/sourcehut/builds.nix
+++ b/nixos/modules/services/misc/sourcehut/builds.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   scfg = cfg.builds;
   rcfg = config.services.redis;
   iniKey = "builds.sr.ht";
@@ -38,6 +39,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/buildsrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/buildsrht"'';
       description = ''
         State path for builds.sr.ht.
       '';
@@ -61,7 +63,7 @@ in
               rev = "ff96a0fa5635770390b184ae74debea75c3fd534";
               ref = "nixos-unstable";
           };
-          image_from_nixpkgs = pkgs_unstable: (import ("${pkgs.sourcehut.buildsrht}/lib/images/nixos/image.nix") {
+          image_from_nixpkgs = pkgs_unstable: (import ("''${pkgs.sourcehut.buildsrht}/lib/images/nixos/image.nix") {
             pkgs = (import pkgs_unstable {});
           });
         in
diff --git a/nixos/modules/services/misc/sourcehut/default.nix b/nixos/modules/services/misc/sourcehut/default.nix
index 9c812d6b043c4..1bd21c278e000 100644
--- a/nixos/modules/services/misc/sourcehut/default.nix
+++ b/nixos/modules/services/misc/sourcehut/default.nix
@@ -1,14 +1,90 @@
 { config, pkgs, lib, ... }:
-
 with lib;
 let
+  inherit (config.services) nginx postfix postgresql redis;
+  inherit (config.users) users groups;
   cfg = config.services.sourcehut;
-  cfgIni = cfg.settings;
-  settingsFormat = pkgs.formats.ini { };
+  domain = cfg.settings."sr.ht".global-domain;
+  settingsFormat = pkgs.formats.ini {
+    listToValue = concatMapStringsSep "," (generators.mkValueStringDefault {});
+    mkKeyValue = k: v:
+      if v == null then ""
+      else generators.mkKeyValueDefault {
+        mkValueString = v:
+          if v == true then "yes"
+          else if v == false then "no"
+          else generators.mkValueStringDefault {} v;
+      } "=" k v;
+  };
+  configIniOfService = srv: settingsFormat.generate "sourcehut-${srv}-config.ini"
+    # Each service needs access to only a subset of sections (and secrets).
+    (filterAttrs (k: v: v != null)
+    (mapAttrs (section: v:
+      let srvMatch = builtins.match "^([a-z]*)\\.sr\\.ht(::.*)?$" section; in
+      if srvMatch == null # Include sections shared by all services
+      || head srvMatch == srv # Include sections for the service being configured
+      then v
+      # Enable Web links and integrations between services.
+      else if tail srvMatch == [ null ] && elem (head srvMatch) cfg.services
+      then {
+        inherit (v) origin;
+        # mansrht crashes without it
+        oauth-client-id = v.oauth-client-id or null;
+      }
+      # Drop sub-sections of other services
+      else null)
+    (recursiveUpdate cfg.settings {
+      # Those paths are mounted using BindPaths= or BindReadOnlyPaths=
+      # for services needing access to them.
+      "builds.sr.ht::worker".buildlogs = "/var/log/sourcehut/buildsrht-worker";
+      "git.sr.ht".post-update-script = "/usr/bin/gitsrht-update-hook";
+      "git.sr.ht".repos = "/var/lib/sourcehut/gitsrht/repos";
+      "hg.sr.ht".changegroup-script = "/usr/bin/hgsrht-hook-changegroup";
+      "hg.sr.ht".repos = "/var/lib/sourcehut/hgsrht/repos";
+      # Making this a per service option despite being in a global section,
+      # so that it uses the redis-server used by the service.
+      "sr.ht".redis-host = cfg.${srv}.redis.host;
+    })));
+  commonServiceSettings = srv: {
+    origin = mkOption {
+      description = "URL ${srv}.sr.ht is being served at (protocol://domain)";
+      type = types.str;
+      default = "https://${srv}.${domain}";
+      defaultText = "https://${srv}.example.com";
+    };
+    debug-host = mkOption {
+      description = "Address to bind the debug server to.";
+      type = with types; nullOr str;
+      default = null;
+    };
+    debug-port = mkOption {
+      description = "Port to bind the debug server to.";
+      type = with types; nullOr str;
+      default = null;
+    };
+    connection-string = mkOption {
+      description = "SQLAlchemy connection string for the database.";
+      type = types.str;
+      default = "postgresql:///localhost?user=${srv}srht&host=/run/postgresql";
+    };
+    migrate-on-upgrade = mkEnableOption "automatic migrations on package upgrade" // { default = true; };
+    oauth-client-id = mkOption {
+      description = "${srv}.sr.ht's OAuth client id for meta.sr.ht.";
+      type = types.str;
+    };
+    oauth-client-secret = mkOption {
+      description = "${srv}.sr.ht's OAuth client secret for meta.sr.ht.";
+      type = types.path;
+      apply = s: "<" + toString s;
+    };
+  };
 
   # Specialized python containing all the modules
   python = pkgs.sourcehut.python.withPackages (ps: with ps; [
     gunicorn
+    eventlet
+    # For monitoring Celery: sudo -u listssrht celery --app listssrht.process -b redis+socket:///run/redis-sourcehut/redis.sock?virtual_host=5 flower
+    flower
     # Sourcehut services
     srht
     buildsrht
@@ -19,69 +95,37 @@ let
     listssrht
     mansrht
     metasrht
+    # Not a python package
+    #pagessrht
     pastesrht
     todosrht
   ]);
+  mkOptionNullOrStr = description: mkOption {
+    inherit description;
+    type = with types; nullOr str;
+    default = null;
+  };
 in
 {
-  imports =
-    [
-      ./git.nix
-      ./hg.nix
-      ./hub.nix
-      ./todo.nix
-      ./man.nix
-      ./meta.nix
-      ./paste.nix
-      ./builds.nix
-      ./lists.nix
-      ./dispatch.nix
-      (mkRemovedOptionModule [ "services" "sourcehut" "nginx" "enable" ] ''
-        The sourcehut module supports `nginx` as a local reverse-proxy by default and doesn't
-        support other reverse-proxies officially.
-
-        However it's possible to use an alternative reverse-proxy by
-
-          * disabling nginx
-          * adjusting the relevant settings for server addresses and ports directly
-
-        Further details about this can be found in the `Sourcehut`-section of the NixOS-manual.
-      '')
-    ];
-
   options.services.sourcehut = {
-    enable = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-        Enable sourcehut - git hosting, continuous integration, mailing list, ticket tracking,
-        task dispatching, wiki and account management services
-      '';
-    };
+    enable = mkEnableOption ''
+      sourcehut - git hosting, continuous integration, mailing list, ticket tracking,
+      task dispatching, wiki and account management services
+    '';
 
     services = mkOption {
-      type = types.nonEmptyListOf (types.enum [ "builds" "dispatch" "git" "hub" "hg" "lists" "man" "meta" "paste" "todo" ]);
-      default = [ "man" "meta" "paste" ];
-      example = [ "builds" "dispatch" "git" "hub" "hg" "lists" "man" "meta" "paste" "todo" ];
+      type = with types; listOf (enum
+        [ "builds" "dispatch" "git" "hg" "hub" "lists" "man" "meta" "pages" "paste" "todo" ]);
+      defaultText = "locally enabled services";
       description = ''
-        Services to enable on the sourcehut network.
+        Services that may be displayed as links in the title bar of the Web interface.
       '';
     };
 
-    originBase = mkOption {
+    listenAddress = mkOption {
       type = types.str;
-      default = with config.networking; hostName + lib.optionalString (domain != null) ".${domain}";
-      description = ''
-        Host name used by reverse-proxy and for default settings. Will host services at git."''${originBase}". For example: git.sr.ht
-      '';
-    };
-
-    address = mkOption {
-      type = types.str;
-      default = "127.0.0.1";
-      description = ''
-        Address to bind to.
-      '';
+      default = "localhost";
+      description = "Address to bind to.";
     };
 
     python = mkOption {
@@ -94,105 +138,1247 @@ in
       '';
     };
 
-    statePath = mkOption {
-      type = types.path;
-      default = "/var/lib/sourcehut";
-      description = ''
-        Root state path for the sourcehut network. If left as the default value
-        this directory will automatically be created before the sourcehut server
-        starts, otherwise the sysadmin is responsible for ensuring the
-        directory exists with appropriate ownership and permissions.
-      '';
+    minio = {
+      enable = mkEnableOption ''local minio integration'';
+    };
+
+    nginx = {
+      enable = mkEnableOption ''local nginx integration'';
+      virtualHost = mkOption {
+        type = types.attrs;
+        default = {};
+        description = "Virtual-host configuration merged with all Sourcehut's virtual-hosts.";
+      };
+    };
+
+    postfix = {
+      enable = mkEnableOption ''local postfix integration'';
+    };
+
+    postgresql = {
+      enable = mkEnableOption ''local postgresql integration'';
+    };
+
+    redis = {
+      enable = mkEnableOption ''local redis integration in a dedicated redis-server'';
     };
 
     settings = mkOption {
       type = lib.types.submodule {
         freeformType = settingsFormat.type;
+        options."sr.ht" = {
+          global-domain = mkOption {
+            description = "Global domain name.";
+            type = types.str;
+            example = "example.com";
+          };
+          environment = mkOption {
+            description = "Values other than \"production\" adds a banner to each page.";
+            type = types.enum [ "development" "production" ];
+            default = "development";
+          };
+          network-key = mkOption {
+            description = ''
+              An absolute file path (which should be outside the Nix-store)
+              to a secret key to encrypt internal messages with. Use <code>srht-keygen network</code> to
+              generate this key. It must be consistent between all services and nodes.
+            '';
+            type = types.path;
+            apply = s: "<" + toString s;
+          };
+          owner-email = mkOption {
+            description = "Owner's email.";
+            type = types.str;
+            default = "contact@example.com";
+          };
+          owner-name = mkOption {
+            description = "Owner's name.";
+            type = types.str;
+            default = "John Doe";
+          };
+          site-blurb = mkOption {
+            description = "Blurb for your site.";
+            type = types.str;
+            default = "the hacker's forge";
+          };
+          site-info = mkOption {
+            description = "The top-level info page for your site.";
+            type = types.str;
+            default = "https://sourcehut.org";
+          };
+          service-key = mkOption {
+            description = ''
+              An absolute file path (which should be outside the Nix-store)
+              to a key used for encrypting session cookies. Use <code>srht-keygen service</code> to
+              generate the service key. This must be shared between each node of the same
+              service (e.g. git1.sr.ht and git2.sr.ht), but different services may use
+              different keys. If you configure all of your services with the same
+              config.ini, you may use the same service-key for all of them.
+            '';
+            type = types.path;
+            apply = s: "<" + toString s;
+          };
+          site-name = mkOption {
+            description = "The name of your network of sr.ht-based sites.";
+            type = types.str;
+            default = "sourcehut";
+          };
+          source-url = mkOption {
+            description = "The source code for your fork of sr.ht.";
+            type = types.str;
+            default = "https://git.sr.ht/~sircmpwn/srht";
+          };
+        };
+        options.mail = {
+          smtp-host = mkOptionNullOrStr "Outgoing SMTP host.";
+          smtp-port = mkOption {
+            description = "Outgoing SMTP port.";
+            type = with types; nullOr port;
+            default = null;
+          };
+          smtp-user = mkOptionNullOrStr "Outgoing SMTP user.";
+          smtp-password = mkOptionNullOrStr "Outgoing SMTP password.";
+          smtp-from = mkOptionNullOrStr "Outgoing SMTP FROM.";
+          error-to = mkOptionNullOrStr "Address receiving application exceptions";
+          error-from = mkOptionNullOrStr "Address sending application exceptions";
+          pgp-privkey = mkOptionNullOrStr ''
+            An absolute file path (which should be outside the Nix-store)
+            to an OpenPGP private key.
+
+            Your PGP key information (DO NOT mix up pub and priv here)
+            You must remove the password from your secret key, if present.
+            You can do this with <code>gpg --edit-key [key-id]</code>,
+            then use the <code>passwd</code> command and do not enter a new password.
+          '';
+          pgp-pubkey = mkOptionNullOrStr "OpenPGP public key.";
+          pgp-key-id = mkOptionNullOrStr "OpenPGP key identifier.";
+        };
+        options.objects = {
+          s3-upstream = mkOption {
+            description = "Configure the S3-compatible object storage service.";
+            type = with types; nullOr str;
+            default = null;
+          };
+          s3-access-key = mkOption {
+            description = "Access key to the S3-compatible object storage service";
+            type = with types; nullOr str;
+            default = null;
+          };
+          s3-secret-key = mkOption {
+            description = ''
+              An absolute file path (which should be outside the Nix-store)
+              to the secret key of the S3-compatible object storage service.
+            '';
+            type = with types; nullOr path;
+            default = null;
+            apply = mapNullable (s: "<" + toString s);
+          };
+        };
+        options.webhooks = {
+          private-key = mkOption {
+            description = ''
+              An absolute file path (which should be outside the Nix-store)
+              to a base64-encoded Ed25519 key for signing webhook payloads.
+              This should be consistent for all *.sr.ht sites,
+              as this key will be used to verify signatures
+              from other sites in your network.
+              Use the <code>srht-keygen webhook</code> command to generate a key.
+            '';
+            type = types.path;
+            apply = s: "<" + toString s;
+          };
+        };
+
+        options."dispatch.sr.ht" = commonServiceSettings "dispatch" // {
+        };
+        options."dispatch.sr.ht::github" = {
+          oauth-client-id = mkOptionNullOrStr "OAuth client id.";
+          oauth-client-secret = mkOptionNullOrStr "OAuth client secret.";
+        };
+        options."dispatch.sr.ht::gitlab" = {
+          enabled = mkEnableOption "GitLab integration";
+          canonical-upstream = mkOption {
+            type = types.str;
+            description = "Canonical upstream.";
+            default = "gitlab.com";
+          };
+          repo-cache = mkOption {
+            type = types.str;
+            description = "Repository cache directory.";
+            default = "./repo-cache";
+          };
+          "gitlab.com" = mkOption {
+            type = with types; nullOr str;
+            description = "GitLab id and secret.";
+            default = null;
+            example = "GitLab:application id:secret";
+          };
+        };
+
+        options."builds.sr.ht" = commonServiceSettings "builds" // {
+          allow-free = mkEnableOption "nonpaying users to submit builds";
+          redis = mkOption {
+            description = "The Redis connection used for the Celery worker.";
+            type = types.str;
+            default = "redis+socket:///run/redis-sourcehut-buildsrht/redis.sock?virtual_host=2";
+          };
+          shell = mkOption {
+            description = ''
+              Scripts used to launch on SSH connection.
+              <literal>/usr/bin/master-shell</literal> on master,
+              <literal>/usr/bin/runner-shell</literal> on runner.
+              If master and worker are on the same system
+              set to <literal>/usr/bin/runner-shell</literal>.
+            '';
+            type = types.enum ["/usr/bin/master-shell" "/usr/bin/runner-shell"];
+            default = "/usr/bin/master-shell";
+          };
+        };
+        options."builds.sr.ht::worker" = {
+          bind-address = mkOption {
+            description = ''
+              HTTP bind address for serving local build information/monitoring.
+            '';
+            type = types.str;
+            default = "localhost:8080";
+          };
+          buildlogs = mkOption {
+            description = "Path to write build logs.";
+            type = types.str;
+            default = "/var/log/sourcehut/buildsrht-worker";
+          };
+          name = mkOption {
+            description = ''
+              Listening address and listening port
+              of the build runner (with HTTP port if not 80).
+            '';
+            type = types.str;
+            default = "localhost:5020";
+          };
+          timeout = mkOption {
+            description = ''
+              Max build duration.
+              See <link xlink:href="https://golang.org/pkg/time/#ParseDuration"/>.
+            '';
+            type = types.str;
+            default = "3m";
+          };
+        };
+
+        options."git.sr.ht" = commonServiceSettings "git" // {
+          outgoing-domain = mkOption {
+            description = "Outgoing domain.";
+            type = types.str;
+            default = "https://git.localhost.localdomain";
+          };
+          post-update-script = mkOption {
+            description = ''
+              A post-update script which is installed in every git repo.
+              This setting is propagated to newer and existing repositories.
+            '';
+            type = types.path;
+            default = "${pkgs.sourcehut.gitsrht}/bin/gitsrht-update-hook";
+            defaultText = "\${pkgs.sourcehut.gitsrht}/bin/gitsrht-update-hook";
+          };
+          repos = mkOption {
+            description = ''
+              Path to git repositories on disk.
+              If changing the default, you must ensure that
+              the gitsrht's user as read and write access to it.
+            '';
+            type = types.str;
+            default = "/var/lib/sourcehut/gitsrht/repos";
+          };
+          webhooks = mkOption {
+            description = "The Redis connection used for the webhooks worker.";
+            type = types.str;
+            default = "redis+socket:///run/redis-sourcehut-gitsrht/redis.sock?virtual_host=1";
+          };
+        };
+        options."git.sr.ht::api" = {
+          internal-ipnet = mkOption {
+            description = ''
+              Set of IP subnets which are permitted to utilize internal API
+              authentication. This should be limited to the subnets
+              from which your *.sr.ht services are running.
+              See <xref linkend="opt-services.sourcehut.listenAddress"/>.
+            '';
+            type = with types; listOf str;
+            default = [ "127.0.0.0/8" "::1/128" ];
+          };
+        };
+
+        options."hg.sr.ht" = commonServiceSettings "hg" // {
+          changegroup-script = mkOption {
+            description = ''
+              A changegroup script which is installed in every mercurial repo.
+              This setting is propagated to newer and existing repositories.
+            '';
+            type = types.str;
+            default = "${cfg.python}/bin/hgsrht-hook-changegroup";
+            defaultText = "\${cfg.python}/bin/hgsrht-hook-changegroup";
+          };
+          repos = mkOption {
+            description = ''
+              Path to mercurial repositories on disk.
+              If changing the default, you must ensure that
+              the hgsrht's user as read and write access to it.
+            '';
+            type = types.str;
+            default = "/var/lib/sourcehut/hgsrht/repos";
+          };
+          srhtext = mkOptionNullOrStr ''
+            Path to the srht mercurial extension
+            (defaults to where the hgsrht code is)
+          '';
+          clone_bundle_threshold = mkOption {
+            description = ".hg/store size (in MB) past which the nightly job generates clone bundles.";
+            type = types.ints.unsigned;
+            default = 50;
+          };
+          hg_ssh = mkOption {
+            description = "Path to hg-ssh (if not in $PATH).";
+            type = types.str;
+            default = "${pkgs.mercurial}/bin/hg-ssh";
+            defaultText = "\${pkgs.mercurial}/bin/hg-ssh";
+          };
+          webhooks = mkOption {
+            description = "The Redis connection used for the webhooks worker.";
+            type = types.str;
+            default = "redis+socket:///run/redis-sourcehut-hgsrht/redis.sock?virtual_host=1";
+          };
+        };
+
+        options."hub.sr.ht" = commonServiceSettings "hub" // {
+        };
+
+        options."lists.sr.ht" = commonServiceSettings "lists" // {
+          allow-new-lists = mkEnableOption "Allow creation of new lists.";
+          notify-from = mkOption {
+            description = "Outgoing email for notifications generated by users.";
+            type = types.str;
+            default = "lists-notify@localhost.localdomain";
+          };
+          posting-domain = mkOption {
+            description = "Posting domain.";
+            type = types.str;
+            default = "lists.localhost.localdomain";
+          };
+          redis = mkOption {
+            description = "The Redis connection used for the Celery worker.";
+            type = types.str;
+            default = "redis+socket:///run/redis-sourcehut-listssrht/redis.sock?virtual_host=2";
+          };
+          webhooks = mkOption {
+            description = "The Redis connection used for the webhooks worker.";
+            type = types.str;
+            default = "redis+socket:///run/redis-sourcehut-listssrht/redis.sock?virtual_host=1";
+          };
+        };
+        options."lists.sr.ht::worker" = {
+          reject-mimetypes = mkOption {
+            description = ''
+              Comma-delimited list of Content-Types to reject. Messages with Content-Types
+              included in this list are rejected. Multipart messages are always supported,
+              and each part is checked against this list.
+
+              Uses fnmatch for wildcard expansion.
+            '';
+            type = with types; listOf str;
+            default = ["text/html"];
+          };
+          reject-url = mkOption {
+            description = "Reject URL.";
+            type = types.str;
+            default = "https://man.sr.ht/lists.sr.ht/etiquette.md";
+          };
+          sock = mkOption {
+            description = ''
+              Path for the lmtp daemon's unix socket. Direct incoming mail to this socket.
+              Alternatively, specify IP:PORT and an SMTP server will be run instead.
+            '';
+            type = types.str;
+            default = "/tmp/lists.sr.ht-lmtp.sock";
+          };
+          sock-group = mkOption {
+            description = ''
+              The lmtp daemon will make the unix socket group-read/write
+              for users in this group.
+            '';
+            type = types.str;
+            default = "postfix";
+          };
+        };
+
+        options."man.sr.ht" = commonServiceSettings "man" // {
+        };
+
+        options."meta.sr.ht" =
+          removeAttrs (commonServiceSettings "meta")
+            ["oauth-client-id" "oauth-client-secret"] // {
+          api-origin = mkOption {
+            description = "Origin URL for API, 100 more than web.";
+            type = types.str;
+            default = "http://${cfg.listenAddress}:${toString (cfg.meta.port + 100)}";
+            defaultText = ''http://<xref linkend="opt-services.sourcehut.listenAddress"/>:''${toString (<xref linkend="opt-services.sourcehut.meta.port"/> + 100)}'';
+          };
+          webhooks = mkOption {
+            description = "The Redis connection used for the webhooks worker.";
+            type = types.str;
+            default = "redis+socket:///run/redis-sourcehut-metasrht/redis.sock?virtual_host=1";
+          };
+          welcome-emails = mkEnableOption "sending stock sourcehut welcome emails after signup";
+        };
+        options."meta.sr.ht::api" = {
+          internal-ipnet = mkOption {
+            description = ''
+              Set of IP subnets which are permitted to utilize internal API
+              authentication. This should be limited to the subnets
+              from which your *.sr.ht services are running.
+              See <xref linkend="opt-services.sourcehut.listenAddress"/>.
+            '';
+            type = with types; listOf str;
+            default = [ "127.0.0.0/8" "::1/128" ];
+          };
+        };
+        options."meta.sr.ht::aliases" = mkOption {
+          description = "Aliases for the client IDs of commonly used OAuth clients.";
+          type = with types; attrsOf int;
+          default = {};
+          example = { "git.sr.ht" = 12345; };
+        };
+        options."meta.sr.ht::billing" = {
+          enabled = mkEnableOption "the billing system";
+          stripe-public-key = mkOptionNullOrStr "Public key for Stripe. Get your keys at https://dashboard.stripe.com/account/apikeys";
+          stripe-secret-key = mkOptionNullOrStr ''
+            An absolute file path (which should be outside the Nix-store)
+            to a secret key for Stripe. Get your keys at https://dashboard.stripe.com/account/apikeys
+          '' // {
+            apply = mapNullable (s: "<" + toString s);
+          };
+        };
+        options."meta.sr.ht::settings" = {
+          registration = mkEnableOption "public registration";
+          onboarding-redirect = mkOption {
+            description = "Where to redirect new users upon registration.";
+            type = types.str;
+            default = "https://meta.localhost.localdomain";
+          };
+          user-invites = mkOption {
+            description = ''
+              How many invites each user is issued upon registration
+              (only applicable if open registration is disabled).
+            '';
+            type = types.ints.unsigned;
+            default = 5;
+          };
+        };
+
+        options."pages.sr.ht" = commonServiceSettings "pages" // {
+          gemini-certs = mkOption {
+            description = ''
+              An absolute file path (which should be outside the Nix-store)
+              to Gemini certificates.
+            '';
+            type = with types; nullOr path;
+            default = null;
+          };
+          max-site-size = mkOption {
+            description = "Maximum size of any given site (post-gunzip), in MiB.";
+            type = types.int;
+            default = 1024;
+          };
+          user-domain = mkOption {
+            description = ''
+              Configures the user domain, if enabled.
+              All users are given &lt;username&gt;.this.domain.
+            '';
+            type = with types; nullOr str;
+            default = null;
+          };
+        };
+        options."pages.sr.ht::api" = {
+          internal-ipnet = mkOption {
+            description = ''
+              Set of IP subnets which are permitted to utilize internal API
+              authentication. This should be limited to the subnets
+              from which your *.sr.ht services are running.
+              See <xref linkend="opt-services.sourcehut.listenAddress"/>.
+            '';
+            type = with types; listOf str;
+            default = [ "127.0.0.0/8" "::1/128" ];
+          };
+        };
+
+        options."paste.sr.ht" = commonServiceSettings "paste" // {
+        };
+
+        options."todo.sr.ht" = commonServiceSettings "todo" // {
+          notify-from = mkOption {
+            description = "Outgoing email for notifications generated by users.";
+            type = types.str;
+            default = "todo-notify@localhost.localdomain";
+          };
+          webhooks = mkOption {
+            description = "The Redis connection used for the webhooks worker.";
+            type = types.str;
+            default = "redis+socket:///run/redis-sourcehut-todosrht/redis.sock?virtual_host=1";
+          };
+        };
+        options."todo.sr.ht::mail" = {
+          posting-domain = mkOption {
+            description = "Posting domain.";
+            type = types.str;
+            default = "todo.localhost.localdomain";
+          };
+          sock = mkOption {
+            description = ''
+              Path for the lmtp daemon's unix socket. Direct incoming mail to this socket.
+              Alternatively, specify IP:PORT and an SMTP server will be run instead.
+            '';
+            type = types.str;
+            default = "/tmp/todo.sr.ht-lmtp.sock";
+          };
+          sock-group = mkOption {
+            description = ''
+              The lmtp daemon will make the unix socket group-read/write
+              for users in this group.
+            '';
+            type = types.str;
+            default = "postfix";
+          };
+        };
       };
       default = { };
       description = ''
         The configuration for the sourcehut network.
       '';
     };
+
+    builds = {
+      enableWorker = mkEnableOption ''
+        worker for builds.sr.ht
+
+        <warning><para>
+        For smaller deployments, job runners can be installed alongside the master server
+        but even if you only build your own software, integration with other services
+        may cause you to run untrusted builds
+        (e.g. automatic testing of patches via listssrht).
+        See <link xlink:href="https://man.sr.ht/builds.sr.ht/configuration.md#security-model"/>.
+        </para></warning>
+      '';
+
+      images = mkOption {
+        type = with types; attrsOf (attrsOf (attrsOf package));
+        default = { };
+        example = lib.literalExpression ''(let
+            # Pinning unstable to allow usage with flakes and limit rebuilds.
+            pkgs_unstable = builtins.fetchGit {
+                url = "https://github.com/NixOS/nixpkgs";
+                rev = "ff96a0fa5635770390b184ae74debea75c3fd534";
+                ref = "nixos-unstable";
+            };
+            image_from_nixpkgs = (import ("${pkgs.sourcehut.buildsrht}/lib/images/nixos/image.nix") {
+              pkgs = (import pkgs_unstable {});
+            });
+          in
+          {
+            nixos.unstable.x86_64 = image_from_nixpkgs;
+          }
+        )'';
+        description = ''
+          Images for builds.sr.ht. Each package should be distro.release.arch and point to a /nix/store/package/root.img.qcow2.
+        '';
+      };
+    };
+
+    git = {
+      package = mkOption {
+        type = types.package;
+        default = pkgs.git;
+        example = literalExpression "pkgs.gitFull";
+        description = ''
+          Git package for git.sr.ht. This can help silence collisions.
+        '';
+      };
+      fcgiwrap.preforkProcess = mkOption {
+        description = "Number of fcgiwrap processes to prefork.";
+        type = types.int;
+        default = 4;
+      };
+    };
+
+    hg = {
+      package = mkOption {
+        type = types.package;
+        default = pkgs.mercurial;
+        description = ''
+          Mercurial package for hg.sr.ht. This can help silence collisions.
+        '';
+      };
+      cloneBundles = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Generate clonebundles (which require more disk space but dramatically speed up cloning large repositories).
+        '';
+      };
+    };
+
+    lists = {
+      process = {
+        extraArgs = mkOption {
+          type = with types; listOf str;
+          default = [ "--loglevel DEBUG" "--pool eventlet" "--without-heartbeat" ];
+          description = "Extra arguments passed to the Celery responsible for processing mails.";
+        };
+        celeryConfig = mkOption {
+          type = types.lines;
+          default = "";
+          description = "Content of the <literal>celeryconfig.py</literal> used by the Celery of <literal>listssrht-process</literal>.";
+        };
+      };
+    };
   };
 
-  config = mkIf cfg.enable {
-    assertions =
-      [
+  config = mkIf cfg.enable (mkMerge [
+    {
+      environment.systemPackages = [ pkgs.sourcehut.coresrht ];
+
+      services.sourcehut.settings = {
+        "git.sr.ht".outgoing-domain = mkDefault "https://git.${domain}";
+        "lists.sr.ht".notify-from = mkDefault "lists-notify@${domain}";
+        "lists.sr.ht".posting-domain = mkDefault "lists.${domain}";
+        "meta.sr.ht::settings".onboarding-redirect = mkDefault "https://meta.${domain}";
+        "todo.sr.ht".notify-from = mkDefault "todo-notify@${domain}";
+        "todo.sr.ht::mail".posting-domain = mkDefault "todo.${domain}";
+      };
+    }
+    (mkIf cfg.postgresql.enable {
+      assertions = [
+        { assertion = postgresql.enable;
+          message = "postgresql must be enabled and configured";
+        }
+      ];
+    })
+    (mkIf cfg.postfix.enable {
+      assertions = [
+        { assertion = postfix.enable;
+          message = "postfix must be enabled and configured";
+        }
+      ];
+      # Needed for sharing the LMTP sockets with JoinsNamespaceOf=
+      systemd.services.postfix.serviceConfig.PrivateTmp = true;
+    })
+    (mkIf cfg.redis.enable {
+      services.redis.vmOverCommit = mkDefault true;
+    })
+    (mkIf cfg.nginx.enable {
+      assertions = [
+        { assertion = nginx.enable;
+          message = "nginx must be enabled and configured";
+        }
+      ];
+      # For proxyPass= in virtual-hosts for Sourcehut services.
+      services.nginx.recommendedProxySettings = mkDefault true;
+    })
+    (mkIf (cfg.builds.enable || cfg.git.enable || cfg.hg.enable) {
+      services.openssh = {
+        # Note that sshd will continue to honor AuthorizedKeysFile.
+        # Note that you may want automatically rotate
+        # or link to /dev/null the following log files:
+        # - /var/log/gitsrht-dispatch
+        # - /var/log/{build,git,hg}srht-keys
+        # - /var/log/{git,hg}srht-shell
+        # - /var/log/gitsrht-update-hook
+        authorizedKeysCommand = ''/etc/ssh/sourcehut/subdir/srht-dispatch "%u" "%h" "%t" "%k"'';
+        # srht-dispatch will setuid/setgid according to [git.sr.ht::dispatch]
+        authorizedKeysCommandUser = "root";
+        extraConfig = ''
+          PermitUserEnvironment SRHT_*
+        '';
+      };
+      environment.etc."ssh/sourcehut/config.ini".source =
+        settingsFormat.generate "sourcehut-dispatch-config.ini"
+          (filterAttrs (k: v: k == "git.sr.ht::dispatch")
+          cfg.settings);
+      environment.etc."ssh/sourcehut/subdir/srht-dispatch" = {
+        # sshd_config(5): The program must be owned by root, not writable by group or others
+        mode = "0755";
+        source = pkgs.writeShellScript "srht-dispatch" ''
+          set -e
+          cd /etc/ssh/sourcehut/subdir
+          ${cfg.python}/bin/gitsrht-dispatch "$@"
+        '';
+      };
+      systemd.services.sshd = {
+        #path = optional cfg.git.enable [ cfg.git.package ];
+        serviceConfig = {
+          BindReadOnlyPaths =
+            # Note that those /usr/bin/* paths are hardcoded in multiple places in *.sr.ht,
+            # for instance to get the user from the [git.sr.ht::dispatch] settings.
+            # *srht-keys needs to:
+            # - access a redis-server in [sr.ht] redis-host,
+            # - access the PostgreSQL server in [*.sr.ht] connection-string,
+            # - query metasrht-api (through the HTTP API).
+            # Using this has the side effect of creating empty files in /usr/bin/
+            optionals cfg.builds.enable [
+              "${pkgs.writeShellScript "buildsrht-keys-wrapper" ''
+                set -e
+                cd /run/sourcehut/buildsrht/subdir
+                set -x
+                exec -a "$0" ${pkgs.sourcehut.buildsrht}/bin/buildsrht-keys "$@"
+              ''}:/usr/bin/buildsrht-keys"
+              "${pkgs.sourcehut.buildsrht}/bin/master-shell:/usr/bin/master-shell"
+              "${pkgs.sourcehut.buildsrht}/bin/runner-shell:/usr/bin/runner-shell"
+            ] ++
+            optionals cfg.git.enable [
+              # /path/to/gitsrht-keys calls /path/to/gitsrht-shell,
+              # or [git.sr.ht] shell= if set.
+              "${pkgs.writeShellScript "gitsrht-keys-wrapper" ''
+                set -e
+                cd /run/sourcehut/gitsrht/subdir
+                set -x
+                exec -a "$0" ${pkgs.sourcehut.gitsrht}/bin/gitsrht-keys "$@"
+              ''}:/usr/bin/gitsrht-keys"
+              "${pkgs.writeShellScript "gitsrht-shell-wrapper" ''
+                set -e
+                cd /run/sourcehut/gitsrht/subdir
+                set -x
+                exec -a "$0" ${pkgs.sourcehut.gitsrht}/bin/gitsrht-shell "$@"
+              ''}:/usr/bin/gitsrht-shell"
+              "${pkgs.writeShellScript "gitsrht-update-hook" ''
+                set -e
+                test -e "''${PWD%/*}"/config.ini ||
+                # Git hooks are run relative to their repository's directory,
+                # but gitsrht-update-hook looks up ../config.ini
+                ln -s /run/sourcehut/gitsrht/config.ini "''${PWD%/*}"/config.ini
+                # hooks/post-update calls /usr/bin/gitsrht-update-hook as hooks/stage-3
+                # but this wrapper being a bash script, it overrides $0 with /usr/bin/gitsrht-update-hook
+                # hence this hack to put hooks/stage-3 back into gitsrht-update-hook's $0
+                if test "''${STAGE3:+set}"
+                then
+                  set -x
+                  exec -a hooks/stage-3 ${pkgs.sourcehut.gitsrht}/bin/gitsrht-update-hook "$@"
+                else
+                  export STAGE3=set
+                  set -x
+                  exec -a "$0" ${pkgs.sourcehut.gitsrht}/bin/gitsrht-update-hook "$@"
+                fi
+              ''}:/usr/bin/gitsrht-update-hook"
+            ] ++
+            optionals cfg.hg.enable [
+              # /path/to/hgsrht-keys calls /path/to/hgsrht-shell,
+              # or [hg.sr.ht] shell= if set.
+              "${pkgs.writeShellScript "hgsrht-keys-wrapper" ''
+                set -e
+                cd /run/sourcehut/hgsrht/subdir
+                set -x
+                exec -a "$0" ${pkgs.sourcehut.hgsrht}/bin/hgsrht-keys "$@"
+              ''}:/usr/bin/hgsrht-keys"
+              "${pkgs.writeShellScript "hgsrht-shell-wrapper" ''
+                set -e
+                cd /run/sourcehut/hgsrht/subdir
+                set -x
+                exec -a "$0" ${pkgs.sourcehut.hgsrht}/bin/hgsrht-shell "$@"
+              ''}:/usr/bin/hgsrht-shell"
+              # Mercurial's changegroup hooks are run relative to their repository's directory,
+              # but hgsrht-hook-changegroup looks up ./config.ini
+              "${pkgs.writeShellScript "hgsrht-hook-changegroup" ''
+                set -e
+                test -e "''$PWD"/config.ini ||
+                ln -s /run/sourcehut/hgsrht/config.ini "''$PWD"/config.ini
+                set -x
+                exec -a "$0" ${cfg.python}/bin/hgsrht-hook-changegroup "$@"
+              ''}:/usr/bin/hgsrht-hook-changegroup"
+            ];
+        };
+      };
+    })
+  ]);
+
+  imports = [
+
+    (import ./service.nix "builds" {
+      inherit configIniOfService;
+      srvsrht = "buildsrht";
+      port = 5002;
+      # TODO: a celery worker on the master and worker are apparently needed
+      extraServices.buildsrht-worker = let
+        qemuPackage = pkgs.qemu_kvm;
+        serviceName = "buildsrht-worker";
+        statePath = "/var/lib/sourcehut/${serviceName}";
+        in mkIf cfg.builds.enableWorker {
+        path = [ pkgs.openssh pkgs.docker ];
+        preStart = ''
+          set -x
+          if test -z "$(docker images -q qemu:latest 2>/dev/null)" \
+          || test "$(cat ${statePath}/docker-image-qemu)" != "${qemuPackage.version}"
+          then
+            # Create and import qemu:latest image for docker
+            ${pkgs.dockerTools.streamLayeredImage {
+              name = "qemu";
+              tag = "latest";
+              contents = [ qemuPackage ];
+            }} | docker load
+            # Mark down current package version
+            echo '${qemuPackage.version}' >${statePath}/docker-image-qemu
+          fi
+        '';
+        serviceConfig = {
+          ExecStart = "${pkgs.sourcehut.buildsrht}/bin/builds.sr.ht-worker";
+          BindPaths = [ cfg.settings."builds.sr.ht::worker".buildlogs ];
+          LogsDirectory = [ "sourcehut/${serviceName}" ];
+          RuntimeDirectory = [ "sourcehut/${serviceName}/subdir" ];
+          StateDirectory = [ "sourcehut/${serviceName}" ];
+          TimeoutStartSec = "1800s";
+          # builds.sr.ht-worker looks up ../config.ini
+          WorkingDirectory = "-"+"/run/sourcehut/${serviceName}/subdir";
+        };
+      };
+      extraConfig = let
+        image_dirs = flatten (
+          mapAttrsToList (distro: revs:
+            mapAttrsToList (rev: archs:
+              mapAttrsToList (arch: image:
+                pkgs.runCommand "buildsrht-images" { } ''
+                  mkdir -p $out/${distro}/${rev}/${arch}
+                  ln -s ${image}/*.qcow2 $out/${distro}/${rev}/${arch}/root.img.qcow2
+                ''
+              ) archs
+            ) revs
+          ) cfg.builds.images
+        );
+        image_dir_pre = pkgs.symlinkJoin {
+          name = "builds.sr.ht-worker-images-pre";
+          paths = image_dirs;
+            # FIXME: not working, apparently because ubuntu/latest is a broken link
+            # ++ [ "${pkgs.sourcehut.buildsrht}/lib/images" ];
+        };
+        image_dir = pkgs.runCommand "builds.sr.ht-worker-images" { } ''
+          mkdir -p $out/images
+          cp -Lr ${image_dir_pre}/* $out/images
+        '';
+        in mkMerge [
         {
-          assertion = with cfgIni.webhooks; private-key != null && stringLength private-key == 44;
-          message = "The webhook's private key must be defined and of a 44 byte length.";
+          users.users.${cfg.builds.user}.shell = pkgs.bash;
+
+          virtualisation.docker.enable = true;
+
+          services.sourcehut.settings = mkMerge [
+            { # Note that git.sr.ht::dispatch is not a typo,
+              # gitsrht-dispatch always use this section
+              "git.sr.ht::dispatch"."/usr/bin/buildsrht-keys" =
+                mkDefault "${cfg.builds.user}:${cfg.builds.group}";
+            }
+            (mkIf cfg.builds.enableWorker {
+              "builds.sr.ht::worker".shell = "/usr/bin/runner-shell";
+              "builds.sr.ht::worker".images = mkDefault "${image_dir}/images";
+              "builds.sr.ht::worker".controlcmd = mkDefault "${image_dir}/images/control";
+            })
+          ];
         }
+        (mkIf cfg.builds.enableWorker {
+          users.groups = {
+            docker.members = [ cfg.builds.user ];
+          };
+        })
+        (mkIf (cfg.builds.enableWorker && cfg.nginx.enable) {
+          # Allow nginx access to buildlogs
+          users.users.${nginx.user}.extraGroups = [ cfg.builds.group ];
+          systemd.services.nginx = {
+            serviceConfig.BindReadOnlyPaths = [ cfg.settings."builds.sr.ht::worker".buildlogs ];
+          };
+          services.nginx.virtualHosts."logs.${domain}" = mkMerge [ {
+            /* FIXME: is a listen needed?
+            listen = with builtins;
+              # FIXME: not compatible with IPv6
+              let address = split ":" cfg.settings."builds.sr.ht::worker".name; in
+              [{ addr = elemAt address 0; port = lib.toInt (elemAt address 2); }];
+            */
+            locations."/logs/".alias = cfg.settings."builds.sr.ht::worker".buildlogs + "/";
+          } cfg.nginx.virtualHost ];
+        })
+      ];
+    })
+
+    (import ./service.nix "dispatch" {
+      inherit configIniOfService;
+      port = 5005;
+    })
 
+    (import ./service.nix "git" (let
+      baseService = {
+        path = [ cfg.git.package ];
+        serviceConfig.BindPaths = [ "${cfg.settings."git.sr.ht".repos}:/var/lib/sourcehut/gitsrht/repos" ];
+      };
+      in {
+      inherit configIniOfService;
+      mainService = mkMerge [ baseService {
+        serviceConfig.StateDirectory = [ "sourcehut/gitsrht" "sourcehut/gitsrht/repos" ];
+        preStart = mkIf (!versionAtLeast config.system.stateVersion "22.05") (mkBefore ''
+          # Fix Git hooks of repositories pre-dating https://github.com/NixOS/nixpkgs/pull/133984
+          (
+          set +f
+          shopt -s nullglob
+          for h in /var/lib/sourcehut/gitsrht/repos/~*/*/hooks/{pre-receive,update,post-update}
+          do ln -fnsv /usr/bin/gitsrht-update-hook "$h"; done
+          )
+        '');
+      } ];
+      port = 5001;
+      webhooks = true;
+      extraTimers.gitsrht-periodic = {
+        service = baseService;
+        timerConfig.OnCalendar = ["*:0/20"];
+      };
+      extraConfig = mkMerge [
         {
-          assertion = hasAttrByPath [ "meta.sr.ht" "origin" ] cfgIni && cfgIni."meta.sr.ht".origin != null;
-          message = "meta.sr.ht's origin must be defined.";
+          # https://stackoverflow.com/questions/22314298/git-push-results-in-fatal-protocol-error-bad-line-length-character-this
+          # Probably could use gitsrht-shell if output is restricted to just parameters...
+          users.users.${cfg.git.user}.shell = pkgs.bash;
+          services.sourcehut.settings = {
+            "git.sr.ht::dispatch"."/usr/bin/gitsrht-keys" =
+              mkDefault "${cfg.git.user}:${cfg.git.group}";
+          };
+          systemd.services.sshd = baseService;
         }
+        (mkIf cfg.nginx.enable {
+          services.nginx.virtualHosts."git.${domain}" = {
+            locations."/authorize" = {
+              proxyPass = "http://${cfg.listenAddress}:${toString cfg.git.port}";
+              extraConfig = ''
+                proxy_pass_request_body off;
+                proxy_set_header Content-Length "";
+                proxy_set_header X-Original-URI $request_uri;
+              '';
+            };
+            locations."~ ^/([^/]+)/([^/]+)/(HEAD|info/refs|objects/info/.*|git-upload-pack).*$" = {
+              root = "/var/lib/sourcehut/gitsrht/repos";
+              fastcgiParams = {
+                GIT_HTTP_EXPORT_ALL = "";
+                GIT_PROJECT_ROOT = "$document_root";
+                PATH_INFO = "$uri";
+                SCRIPT_FILENAME = "${cfg.git.package}/bin/git-http-backend";
+              };
+              extraConfig = ''
+                auth_request /authorize;
+                fastcgi_read_timeout 500s;
+                fastcgi_pass unix:/run/gitsrht-fcgiwrap.sock;
+                gzip off;
+              '';
+            };
+          };
+          systemd.sockets.gitsrht-fcgiwrap = {
+            before = [ "nginx.service" ];
+            wantedBy = [ "sockets.target" "gitsrht.service" ];
+            # This path remains accessible to nginx.service, which has no RootDirectory=
+            socketConfig.ListenStream = "/run/gitsrht-fcgiwrap.sock";
+            socketConfig.SocketUser = nginx.user;
+            socketConfig.SocketMode = "600";
+          };
+        })
       ];
+      extraServices.gitsrht-fcgiwrap = mkIf cfg.nginx.enable {
+        serviceConfig = {
+          # Socket is passed by gitsrht-fcgiwrap.socket
+          ExecStart = "${pkgs.fcgiwrap}/sbin/fcgiwrap -c ${toString cfg.git.fcgiwrap.preforkProcess}";
+          # No need for config.ini
+          ExecStartPre = mkForce [];
+          User = null;
+          DynamicUser = true;
+          BindReadOnlyPaths = [ "${cfg.settings."git.sr.ht".repos}:/var/lib/sourcehut/gitsrht/repos" ];
+          IPAddressDeny = "any";
+          InaccessiblePaths = [ "-+/run/postgresql" "-+/run/redis-sourcehut" ];
+          PrivateNetwork = true;
+          RestrictAddressFamilies = mkForce [ "none" ];
+          SystemCallFilter = mkForce [
+            "@system-service"
+            "~@aio" "~@keyring" "~@memlock" "~@privileged" "~@resources" "~@setuid"
+            # @timer is needed for alarm()
+          ];
+        };
+      };
+    }))
+
+    (import ./service.nix "hg" (let
+      baseService = {
+        path = [ cfg.hg.package ];
+        serviceConfig.BindPaths = [ "${cfg.settings."hg.sr.ht".repos}:/var/lib/sourcehut/hgsrht/repos" ];
+      };
+      in {
+      inherit configIniOfService;
+      mainService = mkMerge [ baseService {
+        serviceConfig.StateDirectory = [ "sourcehut/hgsrht" "sourcehut/hgsrht/repos" ];
+      } ];
+      port = 5010;
+      webhooks = true;
+      extraTimers.hgsrht-periodic = {
+        service = baseService;
+        timerConfig.OnCalendar = ["*:0/20"];
+      };
+      extraTimers.hgsrht-clonebundles = mkIf cfg.hg.cloneBundles {
+        service = baseService;
+        timerConfig.OnCalendar = ["daily"];
+        timerConfig.AccuracySec = "1h";
+      };
+      extraConfig = mkMerge [
+        {
+          users.users.${cfg.hg.user}.shell = pkgs.bash;
+          services.sourcehut.settings = {
+            # Note that git.sr.ht::dispatch is not a typo,
+            # gitsrht-dispatch always uses this section.
+            "git.sr.ht::dispatch"."/usr/bin/hgsrht-keys" =
+              mkDefault "${cfg.hg.user}:${cfg.hg.group}";
+          };
+          systemd.services.sshd = baseService;
+        }
+        (mkIf cfg.nginx.enable {
+          # Allow nginx access to repositories
+          users.users.${nginx.user}.extraGroups = [ cfg.hg.group ];
+          services.nginx.virtualHosts."hg.${domain}" = {
+            locations."/authorize" = {
+              proxyPass = "http://${cfg.listenAddress}:${toString cfg.hg.port}";
+              extraConfig = ''
+                proxy_pass_request_body off;
+                proxy_set_header Content-Length "";
+                proxy_set_header X-Original-URI $request_uri;
+              '';
+            };
+            # Let clients reach pull bundles. We don't really need to lock this down even for
+            # private repos because the bundles are named after the revision hashes...
+            # so someone would need to know or guess a SHA value to download anything.
+            # TODO: proxyPass to an hg serve service?
+            locations."~ ^/[~^][a-z0-9_]+/[a-zA-Z0-9_.-]+/\\.hg/bundles/.*$" = {
+              root = "/var/lib/nginx/hgsrht/repos";
+              extraConfig = ''
+                auth_request /authorize;
+                gzip off;
+              '';
+            };
+          };
+          systemd.services.nginx = {
+            serviceConfig.BindReadOnlyPaths = [ "${cfg.settings."hg.sr.ht".repos}:/var/lib/nginx/hgsrht/repos" ];
+          };
+        })
+      ];
+    }))
+
+    (import ./service.nix "hub" {
+      inherit configIniOfService;
+      port = 5014;
+      extraConfig = {
+        services.nginx = mkIf cfg.nginx.enable {
+          virtualHosts."hub.${domain}" = mkMerge [ {
+            serverAliases = [ domain ];
+          } cfg.nginx.virtualHost ];
+        };
+      };
+    })
+
+    (import ./service.nix "lists" (let
+      srvsrht = "listssrht";
+      in {
+      inherit configIniOfService;
+      port = 5006;
+      webhooks = true;
+      # Receive the mail from Postfix and enqueue them into Redis and PostgreSQL
+      extraServices.listssrht-lmtp = {
+        wants = [ "postfix.service" ];
+        unitConfig.JoinsNamespaceOf = optional cfg.postfix.enable "postfix.service";
+        serviceConfig.ExecStart = "${cfg.python}/bin/listssrht-lmtp";
+        # Avoid crashing: os.chown(sock, os.getuid(), sock_gid)
+        serviceConfig.PrivateUsers = mkForce false;
+      };
+      # Dequeue the mails from Redis and dispatch them
+      extraServices.listssrht-process = {
+        serviceConfig = {
+          preStart = ''
+            cp ${pkgs.writeText "${srvsrht}-webhooks-celeryconfig.py" cfg.lists.process.celeryConfig} \
+               /run/sourcehut/${srvsrht}-webhooks/celeryconfig.py
+          '';
+          ExecStart = "${cfg.python}/bin/celery --app listssrht.process worker --hostname listssrht-process@%%h " + concatStringsSep " " cfg.lists.process.extraArgs;
+          # Avoid crashing: os.getloadavg()
+          ProcSubset = mkForce "all";
+        };
+      };
+      extraConfig = mkIf cfg.postfix.enable {
+        users.groups.${postfix.group}.members = [ cfg.lists.user ];
+        services.sourcehut.settings."lists.sr.ht::mail".sock-group = postfix.group;
+        services.postfix = {
+          destination = [ "lists.${domain}" ];
+          # FIXME: an accurate recipient list should be queried
+          # from the lists.sr.ht PostgreSQL database to avoid backscattering.
+          # But usernames are unfortunately not in that database but in meta.sr.ht.
+          # Note that two syntaxes are allowed:
+          # - ~username/list-name@lists.${domain}
+          # - u.username.list-name@lists.${domain}
+          localRecipients = [ "@lists.${domain}" ];
+          transport = ''
+            lists.${domain} lmtp:unix:${cfg.settings."lists.sr.ht::worker".sock}
+          '';
+        };
+      };
+    }))
+
+    (import ./service.nix "man" {
+      inherit configIniOfService;
+      port = 5004;
+    })
+
+    (import ./service.nix "meta" {
+      inherit configIniOfService;
+      port = 5000;
+      webhooks = true;
+      extraServices.metasrht-api = {
+        serviceConfig.Restart = "always";
+        serviceConfig.RestartSec = "2s";
+        preStart = "set -x\n" + concatStringsSep "\n\n" (attrValues (mapAttrs (k: s:
+          let srvMatch = builtins.match "^([a-z]*)\\.sr\\.ht$" k;
+              srv = head srvMatch;
+          in
+          # Configure client(s) as "preauthorized"
+          optionalString (srvMatch != null && cfg.${srv}.enable && ((s.oauth-client-id or null) != null)) ''
+            # Configure ${srv}'s OAuth client as "preauthorized"
+            ${postgresql.package}/bin/psql '${cfg.settings."meta.sr.ht".connection-string}' \
+              -c "UPDATE oauthclient SET preauthorized = true WHERE client_id = '${s.oauth-client-id}'"
+          ''
+          ) cfg.settings));
+        serviceConfig.ExecStart = "${pkgs.sourcehut.metasrht}/bin/metasrht-api -b ${cfg.listenAddress}:${toString (cfg.meta.port + 100)}";
+      };
+      extraTimers.metasrht-daily.timerConfig = {
+        OnCalendar = ["daily"];
+        AccuracySec = "1h";
+      };
+      extraConfig = mkMerge [
+        {
+          assertions = [
+            { assertion = let s = cfg.settings."meta.sr.ht::billing"; in
+                          s.enabled == "yes" -> (s.stripe-public-key != null && s.stripe-secret-key != null);
+              message = "If meta.sr.ht::billing is enabled, the keys must be defined.";
+            }
+          ];
+          environment.systemPackages = optional cfg.meta.enable
+            (pkgs.writeShellScriptBin "metasrht-manageuser" ''
+              set -eux
+              if test "$(${pkgs.coreutils}/bin/id -n -u)" != '${cfg.meta.user}'
+              then exec sudo -u '${cfg.meta.user}' "$0" "$@"
+              else
+                # In order to load config.ini
+                if cd /run/sourcehut/metasrht
+                then exec ${cfg.python}/bin/metasrht-manageuser "$@"
+                else cat <<EOF
+                  Please run: sudo systemctl start metasrht
+              EOF
+                  exit 1
+                fi
+              fi
+            '');
+        }
+        (mkIf cfg.nginx.enable {
+          services.nginx.virtualHosts."meta.${domain}" = {
+            locations."/query" = {
+              proxyPass = cfg.settings."meta.sr.ht".api-origin;
+              extraConfig = ''
+                if ($request_method = 'OPTIONS') {
+                  add_header 'Access-Control-Allow-Origin' '*';
+                  add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
+                  add_header 'Access-Control-Allow-Headers' 'User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
+                  add_header 'Access-Control-Max-Age' 1728000;
+                  add_header 'Content-Type' 'text/plain; charset=utf-8';
+                  add_header 'Content-Length' 0;
+                  return 204;
+                }
+
+                add_header 'Access-Control-Allow-Origin' '*';
+                add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
+                add_header 'Access-Control-Allow-Headers' 'User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
+                add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
+              '';
+            };
+          };
+        })
+      ];
+    })
+
+    (import ./service.nix "pages" {
+      inherit configIniOfService;
+      port = 5112;
+      mainService = let
+        srvsrht = "pagessrht";
+        version = pkgs.sourcehut.${srvsrht}.version;
+        stateDir = "/var/lib/sourcehut/${srvsrht}";
+        iniKey = "pages.sr.ht";
+        in {
+        preStart = mkBefore ''
+          set -x
+          # Use the /run/sourcehut/${srvsrht}/config.ini
+          # installed by a previous ExecStartPre= in baseService
+          cd /run/sourcehut/${srvsrht}
+
+          if test ! -e ${stateDir}/db; then
+            ${postgresql.package}/bin/psql '${cfg.settings.${iniKey}.connection-string}' -f ${pkgs.sourcehut.pagessrht}/share/sql/schema.sql
+            echo ${version} >${stateDir}/db
+          fi
+
+          ${optionalString cfg.settings.${iniKey}.migrate-on-upgrade ''
+            # Just try all the migrations because they're not linked to the version
+            for sql in ${pkgs.sourcehut.pagessrht}/share/sql/migrations/*.sql; do
+              ${postgresql.package}/bin/psql '${cfg.settings.${iniKey}.connection-string}' -f "$sql" || true
+            done
+          ''}
+
+          # Disable webhook
+          touch ${stateDir}/webhook
+        '';
+        serviceConfig = {
+          ExecStart = mkForce "${pkgs.sourcehut.pagessrht}/bin/pages.sr.ht -b ${cfg.listenAddress}:${toString cfg.pages.port}";
+        };
+      };
+    })
+
+    (import ./service.nix "paste" {
+      inherit configIniOfService;
+      port = 5011;
+    })
+
+    (import ./service.nix "todo" {
+      inherit configIniOfService;
+      port = 5003;
+      webhooks = true;
+      extraServices.todosrht-lmtp = {
+        wants = [ "postfix.service" ];
+        unitConfig.JoinsNamespaceOf = optional cfg.postfix.enable "postfix.service";
+        serviceConfig.ExecStart = "${cfg.python}/bin/todosrht-lmtp";
+        # Avoid crashing: os.chown(sock, os.getuid(), sock_gid)
+        serviceConfig.PrivateUsers = mkForce false;
+      };
+      extraConfig = mkIf cfg.postfix.enable {
+        users.groups.${postfix.group}.members = [ cfg.todo.user ];
+        services.sourcehut.settings."todo.sr.ht::mail".sock-group = postfix.group;
+        services.postfix = {
+          destination = [ "todo.${domain}" ];
+          # FIXME: an accurate recipient list should be queried
+          # from the todo.sr.ht PostgreSQL database to avoid backscattering.
+          # But usernames are unfortunately not in that database but in meta.sr.ht.
+          # Note that two syntaxes are allowed:
+          # - ~username/tracker-name@todo.${domain}
+          # - u.username.tracker-name@todo.${domain}
+          localRecipients = [ "@todo.${domain}" ];
+          transport = ''
+            todo.${domain} lmtp:unix:${cfg.settings."todo.sr.ht::mail".sock}
+          '';
+        };
+      };
+    })
+
+    (mkRenamedOptionModule [ "services" "sourcehut" "originBase" ]
+                           [ "services" "sourcehut" "settings" "sr.ht" "global-domain" ])
+    (mkRenamedOptionModule [ "services" "sourcehut" "address" ]
+                           [ "services" "sourcehut" "listenAddress" ])
+
+  ];
 
-    virtualisation.docker.enable = true;
-    environment.etc."sr.ht/config.ini".source =
-      settingsFormat.generate "sourcehut-config.ini" (mapAttrsRecursive
-        (
-          path: v: if v == null then "" else v
-        )
-        cfg.settings);
-
-    environment.systemPackages = [ pkgs.sourcehut.coresrht ];
-
-    # PostgreSQL server
-    services.postgresql.enable = mkOverride 999 true;
-    # Mail server
-    services.postfix.enable = mkOverride 999 true;
-    # Cron daemon
-    services.cron.enable = mkOverride 999 true;
-    # Redis server
-    services.redis.enable = mkOverride 999 true;
-    services.redis.bind = mkOverride 999 "127.0.0.1";
-
-    services.sourcehut.settings = {
-      # The name of your network of sr.ht-based sites
-      "sr.ht".site-name = mkDefault "sourcehut";
-      # The top-level info page for your site
-      "sr.ht".site-info = mkDefault "https://sourcehut.org";
-      # {{ site-name }}, {{ site-blurb }}
-      "sr.ht".site-blurb = mkDefault "the hacker's forge";
-      # If this != production, we add a banner to each page
-      "sr.ht".environment = mkDefault "development";
-      # Contact information for the site owners
-      "sr.ht".owner-name = mkDefault "Drew DeVault";
-      "sr.ht".owner-email = mkDefault "sir@cmpwn.com";
-      # The source code for your fork of sr.ht
-      "sr.ht".source-url = mkDefault "https://git.sr.ht/~sircmpwn/srht";
-      # A secret key to encrypt session cookies with
-      "sr.ht".secret-key = mkDefault null;
-      "sr.ht".global-domain = mkDefault null;
-
-      # Outgoing SMTP settings
-      mail.smtp-host = mkDefault null;
-      mail.smtp-port = mkDefault null;
-      mail.smtp-user = mkDefault null;
-      mail.smtp-password = mkDefault null;
-      mail.smtp-from = mkDefault null;
-      # Application exceptions are emailed to this address
-      mail.error-to = mkDefault null;
-      mail.error-from = mkDefault null;
-      # Your PGP key information (DO NOT mix up pub and priv here)
-      # You must remove the password from your secret key, if present.
-      # You can do this with gpg --edit-key [key-id], then use the passwd
-      # command and do not enter a new password.
-      mail.pgp-privkey = mkDefault null;
-      mail.pgp-pubkey = mkDefault null;
-      mail.pgp-key-id = mkDefault null;
-
-      # base64-encoded Ed25519 key for signing webhook payloads. This should be
-      # consistent for all *.sr.ht sites, as we'll use this key to verify signatures
-      # from other sites in your network.
-      #
-      # Use the srht-webhook-keygen command to generate a key.
-      webhooks.private-key = mkDefault null;
-    };
-  };
   meta.doc = ./sourcehut.xml;
-  meta.maintainers = with maintainers; [ tomberek ];
+  meta.maintainers = with maintainers; [ julm tomberek ];
 }
diff --git a/nixos/modules/services/misc/sourcehut/dispatch.nix b/nixos/modules/services/misc/sourcehut/dispatch.nix
index a9db17bebe8e5..292a51d3e1c5d 100644
--- a/nixos/modules/services/misc/sourcehut/dispatch.nix
+++ b/nixos/modules/services/misc/sourcehut/dispatch.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   cfgIni = cfg.settings;
   scfg = cfg.dispatch;
   iniKey = "dispatch.sr.ht";
@@ -38,6 +39,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/dispatchsrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/dispatchsrht"'';
       description = ''
         State path for dispatch.sr.ht.
       '';
diff --git a/nixos/modules/services/misc/sourcehut/git.nix b/nixos/modules/services/misc/sourcehut/git.nix
index 2653d77876dca..5ce16df8cd87c 100644
--- a/nixos/modules/services/misc/sourcehut/git.nix
+++ b/nixos/modules/services/misc/sourcehut/git.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   scfg = cfg.git;
   iniKey = "git.sr.ht";
 
@@ -41,6 +42,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/gitsrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/gitsrht"'';
       description = ''
         State path for git.sr.ht.
       '';
diff --git a/nixos/modules/services/misc/sourcehut/hg.nix b/nixos/modules/services/misc/sourcehut/hg.nix
index 5cd36bb04550b..6ba1df8b6ddb7 100644
--- a/nixos/modules/services/misc/sourcehut/hg.nix
+++ b/nixos/modules/services/misc/sourcehut/hg.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   scfg = cfg.hg;
   iniKey = "hg.sr.ht";
 
@@ -40,6 +41,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/hgsrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/hgsrht"'';
       description = ''
         State path for hg.sr.ht.
       '';
diff --git a/nixos/modules/services/misc/sourcehut/hub.nix b/nixos/modules/services/misc/sourcehut/hub.nix
index be3ea21011c7d..7d137a765056c 100644
--- a/nixos/modules/services/misc/sourcehut/hub.nix
+++ b/nixos/modules/services/misc/sourcehut/hub.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   cfgIni = cfg.settings;
   scfg = cfg.hub;
   iniKey = "hub.sr.ht";
@@ -38,6 +39,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/hubsrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/hubsrht"'';
       description = ''
         State path for hub.sr.ht.
       '';
diff --git a/nixos/modules/services/misc/sourcehut/lists.nix b/nixos/modules/services/misc/sourcehut/lists.nix
index 7b1fe9fd4630e..76f155caa05bc 100644
--- a/nixos/modules/services/misc/sourcehut/lists.nix
+++ b/nixos/modules/services/misc/sourcehut/lists.nix
@@ -1,11 +1,12 @@
 # Email setup is fairly involved, useful references:
 # https://drewdevault.com/2018/08/05/Local-mail-server.html
 
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   cfgIni = cfg.settings;
   scfg = cfg.lists;
   iniKey = "lists.sr.ht";
@@ -42,6 +43,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/listssrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/listssrht"'';
       description = ''
         State path for lists.sr.ht.
       '';
diff --git a/nixos/modules/services/misc/sourcehut/man.nix b/nixos/modules/services/misc/sourcehut/man.nix
index 7693396d187c3..8ca271c32ee3a 100644
--- a/nixos/modules/services/misc/sourcehut/man.nix
+++ b/nixos/modules/services/misc/sourcehut/man.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   cfgIni = cfg.settings;
   scfg = cfg.man;
   iniKey = "man.sr.ht";
@@ -38,6 +39,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/mansrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/mansrht"'';
       description = ''
         State path for man.sr.ht.
       '';
diff --git a/nixos/modules/services/misc/sourcehut/meta.nix b/nixos/modules/services/misc/sourcehut/meta.nix
index 56127a824eb44..33e4f2332b53c 100644
--- a/nixos/modules/services/misc/sourcehut/meta.nix
+++ b/nixos/modules/services/misc/sourcehut/meta.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   cfgIni = cfg.settings;
   scfg = cfg.meta;
   iniKey = "meta.sr.ht";
@@ -39,6 +40,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/metasrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/metasrht"'';
       description = ''
         State path for meta.sr.ht.
       '';
diff --git a/nixos/modules/services/misc/sourcehut/paste.nix b/nixos/modules/services/misc/sourcehut/paste.nix
index b2d5151969eab..b481ebaf89178 100644
--- a/nixos/modules/services/misc/sourcehut/paste.nix
+++ b/nixos/modules/services/misc/sourcehut/paste.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   cfgIni = cfg.settings;
   scfg = cfg.paste;
   iniKey = "paste.sr.ht";
@@ -39,6 +40,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/pastesrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/pastesrht"'';
       description = ''
         State path for pastesrht.sr.ht.
       '';
diff --git a/nixos/modules/services/misc/sourcehut/service.nix b/nixos/modules/services/misc/sourcehut/service.nix
index 65b4ad020f9a6..f1706ad0a6a8a 100644
--- a/nixos/modules/services/misc/sourcehut/service.nix
+++ b/nixos/modules/services/misc/sourcehut/service.nix
@@ -1,66 +1,375 @@
-{ config, pkgs, lib }:
-serviceCfg: serviceDrv: iniKey: attrs:
+srv:
+{ configIniOfService
+, srvsrht ? "${srv}srht" # Because "buildsrht" does not follow that pattern (missing an "s").
+, iniKey ? "${srv}.sr.ht"
+, webhooks ? false
+, extraTimers ? {}
+, mainService ? {}
+, extraServices ? {}
+, extraConfig ? {}
+, port
+}:
+{ config, lib, pkgs, ... }:
+
+with lib;
 let
+  inherit (config.services) postgresql;
+  redis = config.services.redis.servers."sourcehut-${srvsrht}";
+  inherit (config.users) users;
   cfg = config.services.sourcehut;
-  cfgIni = cfg.settings."${iniKey}";
-  pgSuperUser = config.services.postgresql.superUser;
-
-  setupDB = pkgs.writeScript "${serviceDrv.pname}-gen-db" ''
-    #! ${cfg.python}/bin/python
-    from ${serviceDrv.pname}.app import db
-    db.create()
-  '';
+  configIni = configIniOfService srv;
+  srvCfg = cfg.${srv};
+  baseService = serviceName: { allowStripe ? false }: extraService: let
+    runDir = "/run/sourcehut/${serviceName}";
+    rootDir = "/run/sourcehut/chroots/${serviceName}";
+    in
+    mkMerge [ extraService {
+    after = [ "network.target" ] ++
+      optional cfg.postgresql.enable "postgresql.service" ++
+      optional cfg.redis.enable "redis-sourcehut-${srvsrht}.service";
+    requires =
+      optional cfg.postgresql.enable "postgresql.service" ++
+      optional cfg.redis.enable "redis-sourcehut-${srvsrht}.service";
+    path = [ pkgs.gawk ];
+    environment.HOME = runDir;
+    serviceConfig = {
+      User = mkDefault srvCfg.user;
+      Group = mkDefault srvCfg.group;
+      RuntimeDirectory = [
+        "sourcehut/${serviceName}"
+        # Used by *srht-keys which reads ../config.ini
+        "sourcehut/${serviceName}/subdir"
+        "sourcehut/chroots/${serviceName}"
+      ];
+      RuntimeDirectoryMode = "2750";
+      # No need for the chroot path once inside the chroot
+      InaccessiblePaths = [ "-+${rootDir}" ];
+      # g+rx is for group members (eg. fcgiwrap or nginx)
+      # to read Git/Mercurial repositories, buildlogs, etc.
+      # o+x is for intermediate directories created by BindPaths= and like,
+      # as they're owned by root:root.
+      UMask = "0026";
+      RootDirectory = rootDir;
+      RootDirectoryStartOnly = true;
+      PrivateTmp = true;
+      MountAPIVFS = true;
+      # config.ini is looked up in there, before /etc/srht/config.ini
+      # Note that it fails to be set in ExecStartPre=
+      WorkingDirectory = mkDefault ("-"+runDir);
+      BindReadOnlyPaths = [
+        builtins.storeDir
+        "/etc"
+        "/run/booted-system"
+        "/run/current-system"
+        "/run/systemd"
+        ] ++
+        optional cfg.postgresql.enable "/run/postgresql" ++
+        optional cfg.redis.enable "/run/redis-sourcehut-${srvsrht}";
+      # LoadCredential= are unfortunately not available in ExecStartPre=
+      # Hence this one is run as root (the +) with RootDirectoryStartOnly=
+      # to reach credentials wherever they are.
+      # Note that each systemd service gets its own ${runDir}/config.ini file.
+      ExecStartPre = mkBefore [("+"+pkgs.writeShellScript "${serviceName}-credentials" ''
+        set -x
+        # Replace values begining with a '<' by the content of the file whose name is after.
+        gawk '{ if (match($0,/^([^=]+=)<(.+)/,m)) { getline f < m[2]; print m[1] f } else print $0 }' ${configIni} |
+        ${optionalString (!allowStripe) "gawk '!/^stripe-secret-key=/' |"}
+        install -o ${srvCfg.user} -g root -m 400 /dev/stdin ${runDir}/config.ini
+      '')];
+      # The following options are only for optimizing:
+      # systemd-analyze security
+      AmbientCapabilities = "";
+      CapabilityBoundingSet = "";
+      # ProtectClock= adds DeviceAllow=char-rtc r
+      DeviceAllow = "";
+      LockPersonality = true;
+      MemoryDenyWriteExecute = true;
+      NoNewPrivileges = true;
+      PrivateDevices = true;
+      PrivateMounts = true;
+      PrivateNetwork = mkDefault false;
+      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_UNIX" "AF_INET" "AF_INET6" ];
+      RestrictNamespaces = true;
+      RestrictRealtime = true;
+      RestrictSUIDSGID = true;
+      #SocketBindAllow = [ "tcp:${toString srvCfg.port}" "tcp:${toString srvCfg.prometheusPort}" ];
+      #SocketBindDeny = "any";
+      SystemCallFilter = [
+        "@system-service"
+        "~@aio" "~@keyring" "~@memlock" "~@privileged" "~@resources" "~@timer"
+        "@chown" "@setuid"
+      ];
+      SystemCallArchitectures = "native";
+    };
+  } ];
 in
-with serviceCfg; with lib; recursiveUpdate
 {
-  environment.HOME = statePath;
-  path = [ config.services.postgresql.package ] ++ (attrs.path or [ ]);
-  restartTriggers = [ config.environment.etc."sr.ht/config.ini".source ];
-  serviceConfig = {
-    Type = "simple";
-    User = user;
-    Group = user;
-    Restart = "always";
-    WorkingDirectory = statePath;
-  } // (if (cfg.statePath == "/var/lib/sourcehut/${serviceDrv.pname}") then {
-          StateDirectory = [ "sourcehut/${serviceDrv.pname}" ];
-        } else {})
-  ;
-
-  preStart = ''
-    if ! test -e ${statePath}/db; then
-      # Setup the initial database
-      ${setupDB}
-
-      # Set the initial state of the database for future database upgrades
-      if test -e ${cfg.python}/bin/${serviceDrv.pname}-migrate; then
-        # Run alembic stamp head once to tell alembic the schema is up-to-date
-        ${cfg.python}/bin/${serviceDrv.pname}-migrate stamp head
-      fi
-
-      printf "%s" "${serviceDrv.version}" > ${statePath}/db
-    fi
-
-    # Update copy of each users' profile to the latest
-    # See https://lists.sr.ht/~sircmpwn/sr.ht-admins/<20190302181207.GA13778%40cirno.my.domain>
-    if ! test -e ${statePath}/webhook; then
-      # Update ${iniKey}'s users' profile copy to the latest
-      ${cfg.python}/bin/srht-update-profiles ${iniKey}
-
-      touch ${statePath}/webhook
-    fi
-
-    ${optionalString (builtins.hasAttr "migrate-on-upgrade" cfgIni && cfgIni.migrate-on-upgrade == "yes") ''
-      if [ "$(cat ${statePath}/db)" != "${serviceDrv.version}" ]; then
-        # Manage schema migrations using alembic
-        ${cfg.python}/bin/${serviceDrv.pname}-migrate -a upgrade head
-
-        # Mark down current package version
-        printf "%s" "${serviceDrv.version}" > ${statePath}/db
-      fi
-    ''}
-
-    ${attrs.preStart or ""}
-  '';
+  options.services.sourcehut.${srv} = {
+    enable = mkEnableOption "${srv} service";
+
+    user = mkOption {
+      type = types.str;
+      default = srvsrht;
+      description = ''
+        User for ${srv}.sr.ht.
+      '';
+    };
+
+    group = mkOption {
+      type = types.str;
+      default = srvsrht;
+      description = ''
+        Group for ${srv}.sr.ht.
+        Membership grants access to the Git/Mercurial repositories by default,
+        but not to the config.ini file (where secrets are).
+      '';
+    };
+
+    port = mkOption {
+      type = types.port;
+      default = port;
+      description = ''
+        Port on which the "${srv}" backend should listen.
+      '';
+    };
+
+    redis = {
+      host = mkOption {
+        type = types.str;
+        default = "unix:/run/redis-sourcehut-${srvsrht}/redis.sock?db=0";
+        example = "redis://shared.wireguard:6379/0";
+        description = ''
+          The redis host URL. This is used for caching and temporary storage, and must
+          be shared between nodes (e.g. git1.sr.ht and git2.sr.ht), but need not be
+          shared between services. It may be shared between services, however, with no
+          ill effect, if this better suits your infrastructure.
+        '';
+      };
+    };
+
+    postgresql = {
+      database = mkOption {
+        type = types.str;
+        default = "${srv}.sr.ht";
+        description = ''
+          PostgreSQL database name for the ${srv}.sr.ht service,
+          used if <xref linkend="opt-services.sourcehut.postgresql.enable"/> is <literal>true</literal>.
+        '';
+      };
+    };
+
+    gunicorn = {
+      extraArgs = mkOption {
+        type = with types; listOf str;
+        default = ["--timeout 120" "--workers 1" "--log-level=info"];
+        description = "Extra arguments passed to Gunicorn.";
+      };
+    };
+  } // optionalAttrs webhooks {
+    webhooks = {
+      extraArgs = mkOption {
+        type = with types; listOf str;
+        default = ["--loglevel DEBUG" "--pool eventlet" "--without-heartbeat"];
+        description = "Extra arguments passed to the Celery responsible for webhooks.";
+      };
+      celeryConfig = mkOption {
+        type = types.lines;
+        default = "";
+        description = "Content of the <literal>celeryconfig.py</literal> used by the Celery responsible for webhooks.";
+      };
+    };
+  };
+
+  config = lib.mkIf (cfg.enable && srvCfg.enable) (mkMerge [ extraConfig {
+    users = {
+      users = {
+        "${srvCfg.user}" = {
+          isSystemUser = true;
+          group = mkDefault srvCfg.group;
+          description = mkDefault "sourcehut user for ${srv}.sr.ht";
+        };
+      };
+      groups = {
+        "${srvCfg.group}" = { };
+      } // optionalAttrs (cfg.postgresql.enable
+        && hasSuffix "0" (postgresql.settings.unix_socket_permissions or "")) {
+        "postgres".members = [ srvCfg.user ];
+      } // optionalAttrs (cfg.redis.enable
+        && hasSuffix "0" (redis.settings.unixsocketperm or "")) {
+        "redis-sourcehut-${srvsrht}".members = [ srvCfg.user ];
+      };
+    };
+
+    services.nginx = mkIf cfg.nginx.enable {
+      virtualHosts."${srv}.${cfg.settings."sr.ht".global-domain}" = mkMerge [ {
+        forceSSL = mkDefault true;
+        locations."/".proxyPass = "http://${cfg.listenAddress}:${toString srvCfg.port}";
+        locations."/static" = {
+          root = "${pkgs.sourcehut.${srvsrht}}/${pkgs.sourcehut.python.sitePackages}/${srvsrht}";
+          extraConfig = mkDefault ''
+            expires 30d;
+          '';
+        };
+      } cfg.nginx.virtualHost ];
+    };
+
+    services.postgresql = mkIf cfg.postgresql.enable {
+      authentication = ''
+        local ${srvCfg.postgresql.database} ${srvCfg.user} trust
+      '';
+      ensureDatabases = [ srvCfg.postgresql.database ];
+      ensureUsers = map (name: {
+          inherit name;
+          ensurePermissions = { "DATABASE \"${srvCfg.postgresql.database}\"" = "ALL PRIVILEGES"; };
+        }) [srvCfg.user];
+    };
+
+    services.sourcehut.services = mkDefault (filter (s: cfg.${s}.enable)
+      [ "builds" "dispatch" "git" "hg" "hub" "lists" "man" "meta" "pages" "paste" "todo" ]);
+
+    services.sourcehut.settings = mkMerge [
+      {
+        "${srv}.sr.ht".origin = mkDefault "https://${srv}.${cfg.settings."sr.ht".global-domain}";
+      }
+
+      (mkIf cfg.postgresql.enable {
+        "${srv}.sr.ht".connection-string = mkDefault "postgresql:///${srvCfg.postgresql.database}?user=${srvCfg.user}&host=/run/postgresql";
+      })
+    ];
+
+    services.redis.servers."sourcehut-${srvsrht}" = mkIf cfg.redis.enable {
+      enable = true;
+      databases = 3;
+      syslog = true;
+      # TODO: set a more informed value
+      save = mkDefault [ [1800 10] [300 100] ];
+      settings = {
+        # TODO: set a more informed value
+        maxmemory = "128MB";
+        maxmemory-policy = "volatile-ttl";
+      };
+    };
+
+    systemd.services = mkMerge [
+      {
+        "${srvsrht}" = baseService srvsrht { allowStripe = srv == "meta"; } (mkMerge [
+        {
+          description = "sourcehut ${srv}.sr.ht website service";
+          before = optional cfg.nginx.enable "nginx.service";
+          wants = optional cfg.nginx.enable "nginx.service";
+          wantedBy = [ "multi-user.target" ];
+          path = optional cfg.postgresql.enable postgresql.package;
+          # Beware: change in credentials' content will not trigger restart.
+          restartTriggers = [ configIni ];
+          serviceConfig = {
+            Type = "simple";
+            Restart = mkDefault "always";
+            #RestartSec = mkDefault "2min";
+            StateDirectory = [ "sourcehut/${srvsrht}" ];
+            StateDirectoryMode = "2750";
+            ExecStart = "${cfg.python}/bin/gunicorn ${srvsrht}.app:app --name ${srvsrht} --bind ${cfg.listenAddress}:${toString srvCfg.port} " + concatStringsSep " " srvCfg.gunicorn.extraArgs;
+          };
+          preStart = let
+            version = pkgs.sourcehut.${srvsrht}.version;
+            stateDir = "/var/lib/sourcehut/${srvsrht}";
+            in mkBefore ''
+            set -x
+            # Use the /run/sourcehut/${srvsrht}/config.ini
+            # installed by a previous ExecStartPre= in baseService
+            cd /run/sourcehut/${srvsrht}
+
+            if test ! -e ${stateDir}/db; then
+              # Setup the initial database.
+              # Note that it stamps the alembic head afterward
+              ${cfg.python}/bin/${srvsrht}-initdb
+              echo ${version} >${stateDir}/db
+            fi
+
+            ${optionalString cfg.settings.${iniKey}.migrate-on-upgrade ''
+              if [ "$(cat ${stateDir}/db)" != "${version}" ]; then
+                # Manage schema migrations using alembic
+                ${cfg.python}/bin/${srvsrht}-migrate -a upgrade head
+                echo ${version} >${stateDir}/db
+              fi
+            ''}
+
+            # Update copy of each users' profile to the latest
+            # See https://lists.sr.ht/~sircmpwn/sr.ht-admins/<20190302181207.GA13778%40cirno.my.domain>
+            if test ! -e ${stateDir}/webhook; then
+              # Update ${iniKey}'s users' profile copy to the latest
+              ${cfg.python}/bin/srht-update-profiles ${iniKey}
+              touch ${stateDir}/webhook
+            fi
+          '';
+        } mainService ]);
+      }
+
+      (mkIf webhooks {
+        "${srvsrht}-webhooks" = baseService "${srvsrht}-webhooks" {}
+          {
+            description = "sourcehut ${srv}.sr.ht webhooks service";
+            after = [ "${srvsrht}.service" ];
+            wantedBy = [ "${srvsrht}.service" ];
+            partOf = [ "${srvsrht}.service" ];
+            preStart = ''
+              cp ${pkgs.writeText "${srvsrht}-webhooks-celeryconfig.py" srvCfg.webhooks.celeryConfig} \
+                 /run/sourcehut/${srvsrht}-webhooks/celeryconfig.py
+            '';
+            serviceConfig = {
+              Type = "simple";
+              Restart = "always";
+              ExecStart = "${cfg.python}/bin/celery --app ${srvsrht}.webhooks worker --hostname ${srvsrht}-webhooks@%%h " + concatStringsSep " " srvCfg.webhooks.extraArgs;
+              # Avoid crashing: os.getloadavg()
+              ProcSubset = mkForce "all";
+            };
+          };
+      })
+
+      (mapAttrs (timerName: timer: (baseService timerName {} (mkMerge [
+        {
+          description = "sourcehut ${timerName} service";
+          after = [ "network.target" "${srvsrht}.service" ];
+          serviceConfig = {
+            Type = "oneshot";
+            ExecStart = "${cfg.python}/bin/${timerName}";
+          };
+        }
+        (timer.service or {})
+      ]))) extraTimers)
+
+      (mapAttrs (serviceName: extraService: baseService serviceName {} (mkMerge [
+        {
+          description = "sourcehut ${serviceName} service";
+          # So that extraServices have the PostgreSQL database initialized.
+          after = [ "${srvsrht}.service" ];
+          wantedBy = [ "${srvsrht}.service" ];
+          partOf = [ "${srvsrht}.service" ];
+          serviceConfig = {
+            Type = "simple";
+            Restart = mkDefault "always";
+          };
+        }
+        extraService
+      ])) extraServices)
+    ];
+
+    systemd.timers = mapAttrs (timerName: timer:
+      {
+        description = "sourcehut timer for ${timerName}";
+        wantedBy = [ "timers.target" ];
+        inherit (timer) timerConfig;
+      }) extraTimers;
+  } ]);
 }
-  (builtins.removeAttrs attrs [ "path" "preStart" ])
diff --git a/nixos/modules/services/misc/sourcehut/sourcehut.xml b/nixos/modules/services/misc/sourcehut/sourcehut.xml
index ab9a8c6cb4be0..41094f65a94d9 100644
--- a/nixos/modules/services/misc/sourcehut/sourcehut.xml
+++ b/nixos/modules/services/misc/sourcehut/sourcehut.xml
@@ -14,13 +14,12 @@
   <title>Basic usage</title>
   <para>
    Sourcehut is a Python and Go based set of applications.
-   <literal><link linkend="opt-services.sourcehut.enable">services.sourcehut</link></literal>
-   by default will use
+   This NixOS module also provides basic configuration integrating Sourcehut into locally running
    <literal><link linkend="opt-services.nginx.enable">services.nginx</link></literal>,
-   <literal><link linkend="opt-services.nginx.enable">services.redis</link></literal>,
-   <literal><link linkend="opt-services.nginx.enable">services.cron</link></literal>,
+   <literal><link linkend="opt-services.redis.servers">services.redis.servers.sourcehut</link></literal>,
+   <literal><link linkend="opt-services.postfix.enable">services.postfix</link></literal>
    and
-   <literal><link linkend="opt-services.postgresql.enable">services.postgresql</link></literal>.
+   <literal><link linkend="opt-services.postgresql.enable">services.postgresql</link></literal> services.
   </para>
 
   <para>
@@ -42,18 +41,23 @@ in {
 
   services.sourcehut = {
     <link linkend="opt-services.sourcehut.enable">enable</link> = true;
-    <link linkend="opt-services.sourcehut.originBase">originBase</link> = fqdn;
-    <link linkend="opt-services.sourcehut.services">services</link> = [ "meta" "man" "git" ];
+    <link linkend="opt-services.sourcehut.git.enable">git.enable</link> = true;
+    <link linkend="opt-services.sourcehut.man.enable">man.enable</link> = true;
+    <link linkend="opt-services.sourcehut.meta.enable">meta.enable</link> = true;
+    <link linkend="opt-services.sourcehut.nginx.enable">nginx.enable</link> = true;
+    <link linkend="opt-services.sourcehut.postfix.enable">postfix.enable</link> = true;
+    <link linkend="opt-services.sourcehut.postgresql.enable">postgresql.enable</link> = true;
+    <link linkend="opt-services.sourcehut.redis.enable">redis.enable</link> = true;
     <link linkend="opt-services.sourcehut.settings">settings</link> = {
         "sr.ht" = {
           environment = "production";
           global-domain = fqdn;
           origin = "https://${fqdn}";
           # Produce keys with srht-keygen from <package>sourcehut.coresrht</package>.
-          network-key = "SECRET";
-          service-key = "SECRET";
+          network-key = "/run/keys/path/to/network-key";
+          service-key = "/run/keys/path/to/service-key";
         };
-        webhooks.private-key= "SECRET";
+        webhooks.private-key= "/run/keys/path/to/webhook-key";
     };
   };
 
diff --git a/nixos/modules/services/misc/sourcehut/todo.nix b/nixos/modules/services/misc/sourcehut/todo.nix
index aec773b066923..262fa48f59d4d 100644
--- a/nixos/modules/services/misc/sourcehut/todo.nix
+++ b/nixos/modules/services/misc/sourcehut/todo.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.sourcehut;
+  opt = options.services.sourcehut;
   cfgIni = cfg.settings;
   scfg = cfg.todo;
   iniKey = "todo.sr.ht";
@@ -39,6 +40,7 @@ in
     statePath = mkOption {
       type = types.path;
       default = "${cfg.statePath}/todosrht";
+      defaultText = literalExpression ''"''${config.${opt.statePath}}/todosrht"'';
       description = ''
         State path for todo.sr.ht.
       '';
diff --git a/nixos/modules/services/misc/subsonic.nix b/nixos/modules/services/misc/subsonic.nix
index 98b85918ad180..2dda8970dd306 100644
--- a/nixos/modules/services/misc/subsonic.nix
+++ b/nixos/modules/services/misc/subsonic.nix
@@ -1,8 +1,11 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
-let cfg = config.services.subsonic; in {
+let
+  cfg = config.services.subsonic;
+  opt = options.services.subsonic;
+in {
   options = {
     services.subsonic = {
       enable = mkEnableOption "Subsonic daemon";
@@ -97,7 +100,7 @@ let cfg = config.services.subsonic; in {
         description = ''
           List of paths to transcoder executables that should be accessible
           from Subsonic. Symlinks will be created to each executable inside
-          ${cfg.home}/transcoders.
+          ''${config.${opt.home}}/transcoders.
         '';
       };
     };
diff --git a/nixos/modules/services/misc/xmrig.nix b/nixos/modules/services/misc/xmrig.nix
index cf01bb119e894..c5c3803920c8d 100644
--- a/nixos/modules/services/misc/xmrig.nix
+++ b/nixos/modules/services/misc/xmrig.nix
@@ -18,6 +18,7 @@ with lib;
       package = mkOption {
         type = types.package;
         default = pkgs.xmrig;
+        defaultText = literalExpression "pkgs.xmrig";
         example = literalExpression "pkgs.xmrig-mo";
         description = "XMRig package to use.";
       };
diff --git a/nixos/modules/services/misc/zigbee2mqtt.nix b/nixos/modules/services/misc/zigbee2mqtt.nix
index b378d9f362fe3..ff6d595e5a6e3 100644
--- a/nixos/modules/services/misc/zigbee2mqtt.nix
+++ b/nixos/modules/services/misc/zigbee2mqtt.nix
@@ -22,13 +22,9 @@ in
 
     package = mkOption {
       description = "Zigbee2mqtt package to use";
-      default = pkgs.zigbee2mqtt.override {
-        dataDir = cfg.dataDir;
-      };
+      default = pkgs.zigbee2mqtt;
       defaultText = literalExpression ''
-        pkgs.zigbee2mqtt {
-          dataDir = services.zigbee2mqtt.dataDir
-        }
+        pkgs.zigbee2mqtt
       '';
       type = types.package;
     };
@@ -41,7 +37,7 @@ in
 
     settings = mkOption {
       type = format.type;
-      default = {};
+      default = { };
       example = literalExpression ''
         {
           homeassistant = config.services.home-assistant.enable;
@@ -83,6 +79,7 @@ in
       serviceConfig = {
         ExecStart = "${cfg.package}/bin/zigbee2mqtt";
         User = "zigbee2mqtt";
+        Group = "zigbee2mqtt";
         WorkingDirectory = cfg.dataDir;
         Restart = "on-failure";
 
diff --git a/nixos/modules/services/misc/zoneminder.nix b/nixos/modules/services/misc/zoneminder.nix
index 378da7b87442a..407742f72ad5a 100644
--- a/nixos/modules/services/misc/zoneminder.nix
+++ b/nixos/modules/services/misc/zoneminder.nix
@@ -171,7 +171,7 @@ in {
         example = "/storage/tank";
         description = ''
           ZoneMinder can generate quite a lot of data, so in case you don't want
-          to use the default ${home}, you can override the path here.
+          to use the default ${defaultDir}, you can override the path here.
         '';
       };
 
diff --git a/nixos/modules/services/monitoring/collectd.nix b/nixos/modules/services/monitoring/collectd.nix
index 6af04d22f0f70..8d81737a3ef0d 100644
--- a/nixos/modules/services/monitoring/collectd.nix
+++ b/nixos/modules/services/monitoring/collectd.nix
@@ -5,7 +5,7 @@ with lib;
 let
   cfg = config.services.collectd;
 
-  conf = pkgs.writeText "collectd.conf" ''
+  unvalidated_conf = pkgs.writeText "collectd-unvalidated.conf" ''
     BaseDir "${cfg.dataDir}"
     AutoLoadPlugin ${boolToString cfg.autoLoadPlugin}
     Hostname "${config.networking.hostName}"
@@ -30,6 +30,15 @@ let
     ${cfg.extraConfig}
   '';
 
+  conf = if cfg.validateConfig then
+    pkgs.runCommand "collectd.conf" {} ''
+      echo testing ${unvalidated_conf}
+      # collectd -t fails if BaseDir does not exist.
+      sed '1s/^BaseDir.*$/BaseDir "."/' ${unvalidated_conf} > collectd.conf
+      ${package}/bin/collectd -t -C collectd.conf
+      cp ${unvalidated_conf} $out
+    '' else unvalidated_conf;
+
   package =
     if cfg.buildMinimalPackage
     then minimalPackage
@@ -43,6 +52,16 @@ in {
   options.services.collectd = with types; {
     enable = mkEnableOption "collectd agent";
 
+    validateConfig = mkOption {
+      default = true;
+      description = ''
+        Validate the syntax of collectd configuration file at build time.
+        Disable this if you use the Include directive on files unavailable in
+        the build sandbox, or when cross-compiling.
+      '';
+      type = types.bool;
+    };
+
     package = mkOption {
       default = pkgs.collectd;
       defaultText = literalExpression "pkgs.collectd";
@@ -132,7 +151,12 @@ in {
     users.users = optionalAttrs (cfg.user == "collectd") {
       collectd = {
         isSystemUser = true;
+        group = "collectd";
       };
     };
+
+    users.groups = optionalAttrs (cfg.user == "collectd") {
+      collectd = {};
+    };
   };
 }
diff --git a/nixos/modules/services/monitoring/grafana.nix b/nixos/modules/services/monitoring/grafana.nix
index 5067047e9690e..81fca33f5fec4 100644
--- a/nixos/modules/services/monitoring/grafana.nix
+++ b/nixos/modules/services/monitoring/grafana.nix
@@ -404,6 +404,7 @@ in {
       path = mkOption {
         description = "Database path.";
         default = "${cfg.dataDir}/data/grafana.db";
+        defaultText = literalExpression ''"''${config.${opt.dataDir}}/data/grafana.db"'';
         type = types.path;
       };
 
diff --git a/nixos/modules/services/monitoring/graphite.nix b/nixos/modules/services/monitoring/graphite.nix
index 4690a252c9259..baa943302a00f 100644
--- a/nixos/modules/services/monitoring/graphite.nix
+++ b/nixos/modules/services/monitoring/graphite.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.graphite;
+  opt = options.services.graphite;
   writeTextOrNull = f: t: mapNullable (pkgs.writeTextDir f) t;
 
   dataDir = cfg.dataDir;
@@ -171,6 +172,13 @@ in {
             directories:
                 - ${dataDir}/whisper
         '';
+        defaultText = literalExpression ''
+          '''
+            whisper:
+              directories:
+                - ''${config.${opt.dataDir}}/whisper
+          '''
+        '';
         example = ''
           allowed_origins:
             - dashboard.example.com
@@ -312,18 +320,21 @@ in {
 
       seyrenUrl = mkOption {
         default = "http://localhost:${toString cfg.seyren.port}/";
+        defaultText = literalExpression ''"http://localhost:''${toString config.${opt.seyren.port}}/"'';
         description = "Host where seyren is accessible.";
         type = types.str;
       };
 
       graphiteUrl = mkOption {
         default = "http://${cfg.web.listenAddress}:${toString cfg.web.port}";
+        defaultText = literalExpression ''"http://''${config.${opt.web.listenAddress}}:''${toString config.${opt.web.port}}"'';
         description = "Host where graphite service runs.";
         type = types.str;
       };
 
       mongoUrl = mkOption {
         default = "mongodb://${config.services.mongodb.bind_ip}:27017/seyren";
+        defaultText = literalExpression ''"mongodb://''${config.services.mongodb.bind_ip}:27017/seyren"'';
         description = "Mongodb connection string.";
         type = types.str;
       };
diff --git a/nixos/modules/services/monitoring/nagios.nix b/nixos/modules/services/monitoring/nagios.nix
index 83020d52fc82b..2c7f0ed196688 100644
--- a/nixos/modules/services/monitoring/nagios.nix
+++ b/nixos/modules/services/monitoring/nagios.nix
@@ -131,6 +131,7 @@ in
       validateConfig = mkOption {
         type = types.bool;
         default = pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform;
+        defaultText = literalExpression "pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform";
         description = "if true, the syntax of the nagios configuration file is checked at build time";
       };
 
diff --git a/nixos/modules/services/monitoring/parsedmarc.nix b/nixos/modules/services/monitoring/parsedmarc.nix
index eeee04b4400ca..ec71365ba3c1c 100644
--- a/nixos/modules/services/monitoring/parsedmarc.nix
+++ b/nixos/modules/services/monitoring/parsedmarc.nix
@@ -1,7 +1,8 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 let
   cfg = config.services.parsedmarc;
+  opt = options.services.parsedmarc;
   ini = pkgs.formats.ini {};
 in
 {
@@ -80,6 +81,9 @@ in
         datasource = lib.mkOption {
           type = lib.types.bool;
           default = cfg.provision.elasticsearch && config.services.grafana.enable;
+          defaultText = lib.literalExpression ''
+            config.${opt.provision.elasticsearch} && config.${options.services.grafana.enable}
+          '';
           apply = x: x && cfg.provision.elasticsearch;
           description = ''
             Whether the automatically provisioned Elasticsearch
@@ -93,6 +97,7 @@ in
         dashboard = lib.mkOption {
           type = lib.types.bool;
           default = config.services.grafana.enable;
+          defaultText = lib.literalExpression "config.services.grafana.enable";
           description = ''
             Whether the official parsedmarc grafana dashboard should
             be provisioned to the local grafana instance.
diff --git a/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix
index 62e90232e114c..d29d50706ef60 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters.nix
@@ -61,6 +61,7 @@ let
     "rtl_433"
     "script"
     "snmp"
+    "smartctl"
     "smokeping"
     "sql"
     "surfboard"
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix b/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix
index 5b35bb29a301a..55a61c4949ee5 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/fastly.nix
@@ -32,10 +32,10 @@ in
     script = ''
       ${optionalString (cfg.tokenPath != null)
       "export FASTLY_API_TOKEN=$(cat ${toString cfg.tokenPath})"}
-      ${pkgs.fastly-exporter}/bin/fastly-exporter \
-        -endpoint http://${cfg.listenAddress}:${cfg.port}/metrics
+      ${pkgs.prometheus-fastly-exporter}/bin/fastly-exporter \
+        -listen http://${cfg.listenAddress}:${toString cfg.port}
         ${optionalString cfg.debug "-debug true"} \
-        ${optionalString cfg.configFile "-config-file ${cfg.configFile}"}
+        ${optionalString (cfg.configFile != null) "-config-file ${cfg.configFile}"}
     '';
   };
 }
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix b/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix
index 3cdd7866bd4db..6f69f5919d1e0 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/nginx.nix
@@ -46,11 +46,11 @@ in
     serviceConfig = {
       ExecStart = ''
         ${pkgs.prometheus-nginx-exporter}/bin/nginx-prometheus-exporter \
-          --nginx.scrape-uri '${cfg.scrapeUri}' \
-          --nginx.ssl-verify ${boolToString cfg.sslVerify} \
-          --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
-          --web.telemetry-path ${cfg.telemetryPath} \
-          --prometheus.const-labels ${concatStringsSep "," cfg.constLabels} \
+          --nginx.scrape-uri='${cfg.scrapeUri}' \
+          --nginx.ssl-verify=${boolToString cfg.sslVerify} \
+          --web.listen-address=${cfg.listenAddress}:${toString cfg.port} \
+          --web.telemetry-path=${cfg.telemetryPath} \
+          --prometheus.const-labels=${concatStringsSep "," cfg.constLabels} \
           ${concatStringsSep " \\\n  " cfg.extraFlags}
       '';
     };
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix b/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix
index f57589a59c7bc..4d3c1fa267e5f 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix
@@ -76,6 +76,9 @@ in
   serviceOpts = {
     serviceConfig = {
       DynamicUser = false;
+      # By default, each prometheus exporter only gets AF_INET & AF_INET6,
+      # but AF_UNIX is needed to read from the `showq`-socket.
+      RestrictAddressFamilies = [ "AF_UNIX" ];
       ExecStart = ''
         ${pkgs.prometheus-postfix-exporter}/bin/postfix_exporter \
           --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/smartctl.nix b/nixos/modules/services/monitoring/prometheus/exporters/smartctl.nix
new file mode 100644
index 0000000000000..b6416b93e69c4
--- /dev/null
+++ b/nixos/modules/services/monitoring/prometheus/exporters/smartctl.nix
@@ -0,0 +1,64 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.smartctl;
+  format = pkgs.formats.yaml {};
+  configFile = format.generate "smartctl-exporter.yml" {
+    smartctl_exporter = {
+      bind_to = "${cfg.listenAddress}:${toString cfg.port}";
+      url_path = "/metrics";
+      smartctl_location = "${pkgs.smartmontools}/bin/smartctl";
+      collect_not_more_than_period = cfg.maxInterval;
+      devices = cfg.devices;
+    };
+  };
+in {
+  port = 9633;
+
+  extraOpts = {
+    devices = mkOption {
+      type = types.listOf types.str;
+      default = [];
+      example = literalExpression ''
+        [ "/dev/sda", "/dev/nvme0n1" ];
+      '';
+      description = ''
+        Paths to disks that will be monitored.
+      '';
+    };
+    maxInterval = mkOption {
+      type = types.str;
+      default = "60s";
+      example = "2m";
+      description = ''
+        Interval that limits how often a disk can be queried.
+      '';
+    };
+  };
+
+  serviceOpts = {
+    serviceConfig = {
+      AmbientCapabilities = [
+        "CAP_SYS_ADMIN"
+      ];
+      CapabilityBoundingSet = [
+        "CAP_SYS_ADMIN"
+      ];
+      DevicePolicy = "closed";
+      DeviceAllow = lib.mkForce cfg.devices;
+      ExecStart = ''
+        ${pkgs.prometheus-smartctl-exporter}/bin/smartctl_exporter -config ${configFile}
+      '';
+      PrivateDevices = lib.mkForce false;
+      ProtectProc = "invisible";
+      ProcSubset = "pid";
+      SupplementaryGroups = [ "disk" ];
+      SystemCallFilter = [
+        "@system-service"
+        "~@privileged @resources"
+      ];
+    };
+  };
+}
diff --git a/nixos/modules/services/monitoring/smartd.nix b/nixos/modules/services/monitoring/smartd.nix
index 3ea254371142b..6d39cc3e4e6bb 100644
--- a/nixos/modules/services/monitoring/smartd.nix
+++ b/nixos/modules/services/monitoring/smartd.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
@@ -8,6 +8,7 @@ let
        + optionalString (config.networking.domain != null) ".${config.networking.domain}";
 
   cfg = config.services.smartd;
+  opt = options.services.smartd;
 
   nm = cfg.notifications.mail;
   nw = cfg.notifications.wall;
@@ -125,6 +126,7 @@ in
         mail = {
           enable = mkOption {
             default = config.services.mail.sendmailSetuidWrapper != null;
+            defaultText = literalExpression "config.services.mail.sendmailSetuidWrapper != null";
             type = types.bool;
             description = "Whenever to send e-mail notifications.";
           };
@@ -169,12 +171,14 @@ in
         x11 = {
           enable = mkOption {
             default = config.services.xserver.enable;
+            defaultText = literalExpression "config.services.xserver.enable";
             type = types.bool;
             description = "Whenever to send X11 xmessage notifications.";
           };
 
           display = mkOption {
             default = ":${toString config.services.xserver.display}";
+            defaultText = literalExpression ''":''${toString config.services.xserver.display}"'';
             type = types.str;
             description = "DISPLAY to send X11 notifications to.";
           };
@@ -208,6 +212,7 @@ in
 
         autodetected = mkOption {
           default = cfg.defaults.monitored;
+          defaultText = literalExpression "config.${opt.defaults.monitored}";
           type = types.separatedString " ";
           description = ''
             Like <option>services.smartd.defaults.monitored</option>, but for the
diff --git a/nixos/modules/services/monitoring/thanos.nix b/nixos/modules/services/monitoring/thanos.nix
index da626788d827c..9e93d8dbb0efd 100644
--- a/nixos/modules/services/monitoring/thanos.nix
+++ b/nixos/modules/services/monitoring/thanos.nix
@@ -83,6 +83,9 @@ let
   mkArgumentsOption = cmd: mkOption {
     type = types.listOf types.str;
     default = argumentsOf cmd;
+    defaultText = literalDocBook ''
+      calculated from <literal>config.services.thanos.${cmd}</literal>
+    '';
     description = ''
       Arguments to the <literal>thanos ${cmd}</literal> command.
 
diff --git a/nixos/modules/services/monitoring/uptime.nix b/nixos/modules/services/monitoring/uptime.nix
index 245badc3e44f9..79b86be6cc715 100644
--- a/nixos/modules/services/monitoring/uptime.nix
+++ b/nixos/modules/services/monitoring/uptime.nix
@@ -1,8 +1,9 @@
-{ config, pkgs, lib, ... }:
+{ config, options, pkgs, lib, ... }:
 let
-  inherit (lib) mkOption mkEnableOption mkIf mkMerge types optional;
+  inherit (lib) literalExpression mkOption mkEnableOption mkIf mkMerge types optional;
 
   cfg = config.services.uptime;
+  opt = options.services.uptime;
 
   configDir = pkgs.runCommand "config" { preferLocalBuild = true; }
   (if cfg.configFile != null then ''
@@ -52,7 +53,10 @@ in {
 
     enableWebService = mkEnableOption "the uptime monitoring program web service";
 
-    enableSeparateMonitoringService = mkEnableOption "the uptime monitoring service" // { default = cfg.enableWebService; };
+    enableSeparateMonitoringService = mkEnableOption "the uptime monitoring service" // {
+      default = cfg.enableWebService;
+      defaultText = literalExpression "config.${opt.enableWebService}";
+    };
 
     nodeEnv = mkOption {
       description = "The node environment to run in (development, production, etc.)";
diff --git a/nixos/modules/services/monitoring/zabbix-proxy.nix b/nixos/modules/services/monitoring/zabbix-proxy.nix
index b5009f47f175c..0ebd7bcff8343 100644
--- a/nixos/modules/services/monitoring/zabbix-proxy.nix
+++ b/nixos/modules/services/monitoring/zabbix-proxy.nix
@@ -1,7 +1,8 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 let
   cfg = config.services.zabbixProxy;
+  opt = options.services.zabbixProxy;
   pgsql = config.services.postgresql;
   mysql = config.services.mysql;
 
@@ -103,6 +104,11 @@ in
         port = mkOption {
           type = types.int;
           default = if cfg.database.type == "mysql" then mysql.port else pgsql.port;
+          defaultText = literalExpression ''
+            if config.${opt.database.type} == "mysql"
+            then config.${options.services.mysql.port}
+            else config.${options.services.postgresql.port}
+          '';
           description = "Database host port.";
         };
 
diff --git a/nixos/modules/services/monitoring/zabbix-server.nix b/nixos/modules/services/monitoring/zabbix-server.nix
index 0141c073da25d..9f960517a81b0 100644
--- a/nixos/modules/services/monitoring/zabbix-server.nix
+++ b/nixos/modules/services/monitoring/zabbix-server.nix
@@ -1,7 +1,8 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 let
   cfg = config.services.zabbixServer;
+  opt = options.services.zabbixServer;
   pgsql = config.services.postgresql;
   mysql = config.services.mysql;
 
@@ -95,6 +96,11 @@ in
         port = mkOption {
           type = types.int;
           default = if cfg.database.type == "mysql" then mysql.port else pgsql.port;
+          defaultText = literalExpression ''
+            if config.${opt.database.type} == "mysql"
+            then config.${options.services.mysql.port}
+            else config.${options.services.postgresql.port}
+          '';
           description = "Database host port.";
         };
 
diff --git a/nixos/modules/services/network-filesystems/drbd.nix b/nixos/modules/services/network-filesystems/drbd.nix
index 916e7eaaaa949..c730e0b34e90b 100644
--- a/nixos/modules/services/network-filesystems/drbd.nix
+++ b/nixos/modules/services/network-filesystems/drbd.nix
@@ -47,19 +47,17 @@ let cfg = config.services.drbd; in
         options drbd usermode_helper=/run/current-system/sw/bin/drbdadm
       '';
 
-    environment.etc.drbd.conf =
+    environment.etc."drbd.conf" =
       { source = pkgs.writeText "drbd.conf" cfg.config; };
 
     systemd.services.drbd = {
       after = [ "systemd-udev.settle.service" "network.target" ];
       wants = [ "systemd-udev.settle.service" ];
       wantedBy = [ "multi-user.target" ];
-      script = ''
-        ${pkgs.drbd}/sbin/drbdadm up all
-      '';
-      serviceConfig.ExecStop = ''
-        ${pkgs.drbd}/sbin/drbdadm down all
-      '';
+      serviceConfig = {
+        ExecStart = "${pkgs.drbd}/sbin/drbdadm up all";
+        ExecStop = "${pkgs.drbd}/sbin/drbdadm down all";
+      };
     };
   };
 }
diff --git a/nixos/modules/services/network-filesystems/glusterfs.nix b/nixos/modules/services/network-filesystems/glusterfs.nix
index bc8be05ca8cb1..38be098de5d90 100644
--- a/nixos/modules/services/network-filesystems/glusterfs.nix
+++ b/nixos/modules/services/network-filesystems/glusterfs.nix
@@ -187,7 +187,7 @@ in
 
       wantedBy = [ "multi-user.target" ];
 
-      after = [ "syslog.target" "network.target" ];
+      after = [ "network.target" ];
 
       preStart = ''
         install -m 0755 -d /var/log/glusterfs
diff --git a/nixos/modules/services/network-filesystems/ipfs.nix b/nixos/modules/services/network-filesystems/ipfs.nix
index 36b72ca48b2c3..5482b2aaf88cc 100644
--- a/nixos/modules/services/network-filesystems/ipfs.nix
+++ b/nixos/modules/services/network-filesystems/ipfs.nix
@@ -79,6 +79,11 @@ in
           if versionAtLeast config.system.stateVersion "17.09"
           then "/var/lib/ipfs"
           else "/var/lib/ipfs/.ipfs";
+        defaultText = literalExpression ''
+          if versionAtLeast config.system.stateVersion "17.09"
+          then "/var/lib/ipfs"
+          else "/var/lib/ipfs/.ipfs"
+        '';
         description = "The data dir for IPFS";
       };
 
diff --git a/nixos/modules/services/network-filesystems/openafs/server.nix b/nixos/modules/services/network-filesystems/openafs/server.nix
index c1bf83be77b91..9c974335defae 100644
--- a/nixos/modules/services/network-filesystems/openafs/server.nix
+++ b/nixos/modules/services/network-filesystems/openafs/server.nix
@@ -248,7 +248,7 @@ in {
     systemd.services = {
       openafs-server = {
         description = "OpenAFS server";
-        after = [ "syslog.target" "network.target" ];
+        after = [ "network.target" ];
         wantedBy = [ "multi-user.target" ];
         restartIfChanged = false;
         unitConfig.ConditionPathExists = [
diff --git a/nixos/modules/services/network-filesystems/webdav-server-rs.nix b/nixos/modules/services/network-filesystems/webdav-server-rs.nix
new file mode 100644
index 0000000000000..1c5c299cb6735
--- /dev/null
+++ b/nixos/modules/services/network-filesystems/webdav-server-rs.nix
@@ -0,0 +1,144 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.services.webdav-server-rs;
+  format = pkgs.formats.toml { };
+  settings = recursiveUpdate
+    {
+      server.uid = config.users.users."${cfg.user}".uid;
+      server.gid = config.users.groups."${cfg.group}".gid;
+    }
+    cfg.settings;
+in
+{
+  options = {
+    services.webdav-server-rs = {
+      enable = mkEnableOption "WebDAV server";
+
+      user = mkOption {
+        type = types.str;
+        default = "webdav";
+        description = "User to run under when setuid is not enabled.";
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = "webdav";
+        description = "Group to run under when setuid is not enabled.";
+      };
+
+      settings = mkOption {
+        type = format.type;
+        default = { };
+        description = ''
+          Attrset that is converted and passed as config file. Available
+          options can be found at
+          <link xlink:href="https://github.com/miquels/webdav-server-rs/blob/master/webdav-server.toml">here</link>.
+        '';
+        example = literalExpression ''
+          {
+            server.listen = [ "0.0.0.0:4918" "[::]:4918" ];
+            accounts = {
+              auth-type = "htpasswd.default";
+              acct-type = "unix";
+            };
+            htpasswd.default = {
+              htpasswd = "/etc/htpasswd";
+            };
+            location = [
+              {
+                route = [ "/public/*path" ];
+                directory = "/srv/public";
+                handler = "filesystem";
+                methods = [ "webdav-ro" ];
+                autoindex = true;
+                auth = "false";
+              }
+              {
+                route = [ "/user/:user/*path" ];
+                directory = "~";
+                handler = "filesystem";
+                methods = [ "webdav-rw" ];
+                autoindex = true;
+                auth = "true";
+                setuid = true;
+              }
+            ];
+          }
+        '';
+      };
+
+      configFile = mkOption {
+        type = types.path;
+        default = format.generate "webdav-server.toml" settings;
+        defaultText = "Config file generated from services.webdav-server-rs.settings";
+        description = ''
+          Path to config file. If this option is set, it will override any
+          configuration done in services.webdav-server-rs.settings.
+        '';
+        example = "/etc/webdav-server.toml";
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    assertions = [
+      {
+        assertion = hasAttr cfg.user config.users.users && config.users.users."${cfg.user}".uid != null;
+        message = "users.users.${cfg.user} and users.users.${cfg.user}.uid must be defined.";
+      }
+      {
+        assertion = hasAttr cfg.group config.users.groups && config.users.groups."${cfg.group}".gid != null;
+        message = "users.groups.${cfg.group} and users.groups.${cfg.group}.gid must be defined.";
+      }
+    ];
+
+    users.users = optionalAttrs (cfg.user == "webdav") {
+      webdav = {
+        description = "WebDAV user";
+        group = cfg.group;
+        uid = config.ids.uids.webdav;
+      };
+    };
+
+    users.groups = optionalAttrs (cfg.group == "webdav") {
+      webdav.gid = config.ids.gids.webdav;
+    };
+
+    systemd.services.webdav-server-rs = {
+      description = "WebDAV server";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        ExecStart = "${pkgs.webdav-server-rs}/bin/webdav-server -c ${cfg.configFile}";
+
+        CapabilityBoundingSet = [
+          "CAP_SETUID"
+          "CAP_SETGID"
+        ];
+
+        NoExecPaths = [ "/" ];
+        ExecPaths = [ "/nix/store" ];
+
+        # This program actively detects if it is running in root user account
+        # when it starts and uses root privilege to switch process uid to
+        # respective unix user when a user logs in.  Maybe we can enable
+        # DynamicUser in the future when it's able to detect CAP_SETUID and
+        # CAP_SETGID capabilities.
+
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateTmp = true;
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectSystem = true;
+      };
+    };
+  };
+
+  meta.maintainers = with maintainers; [ pmy ];
+}
diff --git a/nixos/modules/services/network-filesystems/webdav.nix b/nixos/modules/services/network-filesystems/webdav.nix
index 4086a0f5d5620..a810af40fd478 100644
--- a/nixos/modules/services/network-filesystems/webdav.nix
+++ b/nixos/modules/services/network-filesystems/webdav.nix
@@ -80,13 +80,13 @@ in
     users.users = mkIf (cfg.user == "webdav") {
       webdav = {
         description = "WebDAV daemon user";
-        isSystemUser = true;
         group = cfg.group;
+        uid = config.ids.uids.webdav;
       };
     };
 
     users.groups = mkIf (cfg.group == "webdav") {
-      webdav = { };
+      webdav.gid = config.ids.gids.webdav;
     };
 
     systemd.services.webdav = {
@@ -103,5 +103,5 @@ in
     };
   };
 
-  meta.maintainers = with maintainers; [ pengmeiyu ];
+  meta.maintainers = with maintainers; [ pmy ];
 }
diff --git a/nixos/modules/services/networking/adguardhome.nix b/nixos/modules/services/networking/adguardhome.nix
index 4388ef2b7e576..03f9b9f9bad45 100644
--- a/nixos/modules/services/networking/adguardhome.nix
+++ b/nixos/modules/services/networking/adguardhome.nix
@@ -56,7 +56,7 @@ in
   config = mkIf cfg.enable {
     systemd.services.adguardhome = {
       description = "AdGuard Home: Network-level blocker";
-      after = [ "syslog.target" "network.target" ];
+      after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
       unitConfig = {
         StartLimitIntervalSec = 5;
diff --git a/nixos/modules/services/networking/amuled.nix b/nixos/modules/services/networking/amuled.nix
index 39320643dd5e1..e55ac7a6b18b7 100644
--- a/nixos/modules/services/networking/amuled.nix
+++ b/nixos/modules/services/networking/amuled.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.amule;
+  opt = options.services.amule;
   user = if cfg.user != null then cfg.user else "amule";
 in
 
@@ -26,6 +27,9 @@ in
       dataDir = mkOption {
         type = types.str;
         default = "/home/${user}/";
+        defaultText = literalExpression ''
+          "/home/''${config.${opt.user}}/"
+        '';
         description = ''
           The directory holding configuration, incoming and temporary files.
         '';
diff --git a/nixos/modules/services/networking/bind.nix b/nixos/modules/services/networking/bind.nix
index f2b2e4c4d5d4f..e44f8d4cf3026 100644
--- a/nixos/modules/services/networking/bind.nix
+++ b/nixos/modules/services/networking/bind.nix
@@ -144,6 +144,7 @@ in
 
       forwarders = mkOption {
         default = config.networking.nameservers;
+        defaultText = literalExpression "config.networking.nameservers";
         type = types.listOf types.str;
         description = "
           List of servers we should forward requests to.
diff --git a/nixos/modules/services/networking/charybdis.nix b/nixos/modules/services/networking/charybdis.nix
index 43829d36e4176..ff09c0160cb67 100644
--- a/nixos/modules/services/networking/charybdis.nix
+++ b/nixos/modules/services/networking/charybdis.nix
@@ -85,14 +85,21 @@ in
         "d ${cfg.statedir} - ${cfg.user} ${cfg.group} - -"
       ];
 
+      environment.etc."charybdis/ircd.conf".source = configFile;
+
       systemd.services.charybdis = {
         description = "Charybdis IRC daemon";
         wantedBy = [ "multi-user.target" ];
+        reloadIfChanged = true;
+        restartTriggers = [
+          configFile
+        ];
         environment = {
           BANDB_DBPATH = "${cfg.statedir}/ban.db";
         };
         serviceConfig = {
-          ExecStart   = "${charybdis}/bin/charybdis -foreground -logfile /dev/stdout -configfile ${configFile}";
+          ExecStart   = "${charybdis}/bin/charybdis -foreground -logfile /dev/stdout -configfile /etc/charybdis/ircd.conf";
+          ExecReload = "${coreutils}/bin/kill -HUP $MAINPID";
           Group = cfg.group;
           User = cfg.user;
         };
diff --git a/nixos/modules/services/networking/consul.nix b/nixos/modules/services/networking/consul.nix
index 792b2e7f5dfeb..ca9c422e6d7cb 100644
--- a/nixos/modules/services/networking/consul.nix
+++ b/nixos/modules/services/networking/consul.nix
@@ -8,7 +8,9 @@ let
 
   configOptions = {
     data_dir = dataDir;
-    ui = cfg.webUi;
+    ui_config = {
+      enabled = cfg.webUi;
+    };
   } // cfg.extraConfig;
 
   configFiles = [ "/etc/consul.json" "/etc/consul-addrs.json" ]
diff --git a/nixos/modules/services/networking/coturn.nix b/nixos/modules/services/networking/coturn.nix
index 610754e9bd39d..ce563c31136f6 100644
--- a/nixos/modules/services/networking/coturn.nix
+++ b/nixos/modules/services/networking/coturn.nix
@@ -193,6 +193,7 @@ in {
       realm = mkOption {
         type = types.str;
         default = config.networking.hostName;
+        defaultText = literalExpression "config.networking.hostName";
         example = "example.com";
         description = ''
           The default realm to be used for the users when no explicit
diff --git a/nixos/modules/services/networking/ddclient.nix b/nixos/modules/services/networking/ddclient.nix
index fd9c216b06029..8a2c0fc7080cf 100644
--- a/nixos/modules/services/networking/ddclient.nix
+++ b/nixos/modules/services/networking/ddclient.nix
@@ -31,8 +31,8 @@ let
   preStart = ''
     install ${configFile} /run/${RuntimeDirectory}/ddclient.conf
     ${lib.optionalString (cfg.configFile == null) (if (cfg.passwordFile != null) then ''
-      password=$(head -n 1 ${cfg.passwordFile})
-      sed -i "s/^password=$/password=$password/" /run/${RuntimeDirectory}/ddclient.conf
+      password=$(printf "%q" "$(head -n 1 "${cfg.passwordFile}")")
+      sed -i "s|^password=$|password=$password|" /run/${RuntimeDirectory}/ddclient.conf
     '' else ''
       sed -i '/^password=$/d' /run/${RuntimeDirectory}/ddclient.conf
     '')}
diff --git a/nixos/modules/services/networking/dhcpcd.nix b/nixos/modules/services/networking/dhcpcd.nix
index 31e4b6ad2988c..2c339350acd34 100644
--- a/nixos/modules/services/networking/dhcpcd.nix
+++ b/nixos/modules/services/networking/dhcpcd.nix
@@ -207,13 +207,20 @@ in
 
         serviceConfig =
           { Type = "forking";
-            PIDFile = "/run/dhcpcd.pid";
+            PIDFile = "/run/dhcpcd/pid";
+            RuntimeDirectory = "dhcpcd";
             ExecStart = "@${dhcpcd}/sbin/dhcpcd dhcpcd --quiet ${optionalString cfg.persistent "--persistent"} --config ${dhcpcdConf}";
             ExecReload = "${dhcpcd}/sbin/dhcpcd --rebind";
             Restart = "always";
           };
       };
 
+    users.users.dhcpcd = {
+      isSystemUser = true;
+      group = "dhcpcd";
+    };
+    users.groups.dhcpcd = {};
+
     environment.systemPackages = [ dhcpcd ];
 
     environment.etc."dhcpcd.exit-hook".source = exitHook;
diff --git a/nixos/modules/services/networking/dnscrypt-wrapper.nix b/nixos/modules/services/networking/dnscrypt-wrapper.nix
index 400d6e67044e2..c2add170e9cc7 100644
--- a/nixos/modules/services/networking/dnscrypt-wrapper.nix
+++ b/nixos/modules/services/networking/dnscrypt-wrapper.nix
@@ -145,6 +145,7 @@ in {
     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 = ''
         The name that will be given to this DNSCrypt resolver.
diff --git a/nixos/modules/services/networking/ergo.nix b/nixos/modules/services/networking/ergo.nix
index c52de30dc361e..6e55a7cfff6c8 100644
--- a/nixos/modules/services/networking/ergo.nix
+++ b/nixos/modules/services/networking/ergo.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 let
   cfg = config.services.ergo;
+  opt = options.services.ergo;
 
-  inherit (lib) mkEnableOption mkIf mkOption optionalString types;
+  inherit (lib) literalExpression mkEnableOption mkIf mkOption optionalString types;
 
   configFile = pkgs.writeText "ergo.conf" (''
 ergo {
@@ -92,6 +93,7 @@ in {
       group = mkOption {
         type = types.str;
         default = cfg.user;
+        defaultText = literalExpression "config.${opt.user}";
         description = "The group as which to run the Ergo node.";
       };
 
diff --git a/nixos/modules/services/networking/eternal-terminal.nix b/nixos/modules/services/networking/eternal-terminal.nix
index a2e5b30dc0f02..88b4cd90540f4 100644
--- a/nixos/modules/services/networking/eternal-terminal.nix
+++ b/nixos/modules/services/networking/eternal-terminal.nix
@@ -67,7 +67,7 @@ in
       eternal-terminal = {
         description = "Eternal Terminal server.";
         wantedBy = [ "multi-user.target" ];
-        after = [ "syslog.target" "network.target" ];
+        after = [ "network.target" ];
         serviceConfig = {
           Type = "forking";
           ExecStart = "${pkgs.eternal-terminal}/bin/etserver --daemon --cfgfile=${pkgs.writeText "et.cfg" ''
diff --git a/nixos/modules/services/networking/firewall.nix b/nixos/modules/services/networking/firewall.nix
index b5b46fe6042cd..ff023a888f268 100644
--- a/nixos/modules/services/networking/firewall.nix
+++ b/nixos/modules/services/networking/firewall.nix
@@ -421,6 +421,7 @@ in
       checkReversePath = mkOption {
         type = types.either types.bool (types.enum ["strict" "loose"]);
         default = kernelHasRPFilter;
+        defaultText = literalDocBook "<literal>true</literal> if supported by the chosen kernel";
         example = "loose";
         description =
           ''
diff --git a/nixos/modules/services/networking/flannel.nix b/nixos/modules/services/networking/flannel.nix
index b15339870ee2d..ac84b3d35a3d8 100644
--- a/nixos/modules/services/networking/flannel.nix
+++ b/nixos/modules/services/networking/flannel.nix
@@ -93,6 +93,9 @@ in {
       '';
       type = types.nullOr types.str;
       default = with config.networking; (hostName + optionalString (domain != null) ".${domain}");
+      defaultText = literalExpression ''
+        with config.networking; (hostName + optionalString (domain != null) ".''${domain}")
+      '';
       example = "node1.example.com";
     };
 
diff --git a/nixos/modules/services/networking/freeradius.nix b/nixos/modules/services/networking/freeradius.nix
index f3fdd576b65c0..7fa3a8fa17fa7 100644
--- a/nixos/modules/services/networking/freeradius.nix
+++ b/nixos/modules/services/networking/freeradius.nix
@@ -28,6 +28,7 @@ let
         ProtectHome = "on";
         Restart = "on-failure";
         RestartSec = 2;
+        LogsDirectory = "radius";
     };
   };
 
@@ -73,6 +74,7 @@ in
       users.radius = {
         /*uid = config.ids.uids.radius;*/
         description = "Radius daemon user";
+        isSystemUser = true;
       };
     };
 
diff --git a/nixos/modules/services/networking/jibri/default.nix b/nixos/modules/services/networking/jibri/default.nix
index 96832b0eb552b..113a7aa4384ab 100644
--- a/nixos/modules/services/networking/jibri/default.nix
+++ b/nixos/modules/services/networking/jibri/default.nix
@@ -132,7 +132,7 @@ in
         pkgs.writeScript "finalize_recording.sh" ''''''
         #!/bin/sh
         RECORDINGS_DIR=$1
-        ${pkgs.rclone}/bin/rclone copy $RECORDINGS_DIR RCLONE_REMOTE:jibri-recordings/ -v --log-file=/var/log/jitsi/jibri/recording-upload.txt
+        ''${pkgs.rclone}/bin/rclone copy $RECORDINGS_DIR RCLONE_REMOTE:jibri-recordings/ -v --log-file=/var/log/jitsi/jibri/recording-upload.txt
         exit 0
         '''''';
       '';
diff --git a/nixos/modules/services/networking/jitsi-videobridge.nix b/nixos/modules/services/networking/jitsi-videobridge.nix
index dd06ad98a9730..abb0bd0a25e18 100644
--- a/nixos/modules/services/networking/jitsi-videobridge.nix
+++ b/nixos/modules/services/networking/jitsi-videobridge.nix
@@ -217,6 +217,8 @@ in
         "-Dnet.java.sip.communicator.SC_HOME_DIR_NAME" = "videobridge";
         "-Djava.util.logging.config.file" = "/etc/jitsi/videobridge/logging.properties";
         "-Dconfig.file" = pkgs.writeText "jvb.conf" (toHOCON jvbConfig);
+        # Mitigate CVE-2021-44228
+        "-Dlog4j2.formatMsgNoLookups" = true;
       } // (mapAttrs' (k: v: nameValuePair "-D${k}" v) cfg.extraProperties);
     in
     {
diff --git a/nixos/modules/services/networking/kea.nix b/nixos/modules/services/networking/kea.nix
index b11402204aec9..4da47f575f79f 100644
--- a/nixos/modules/services/networking/kea.nix
+++ b/nixos/modules/services/networking/kea.nix
@@ -236,6 +236,7 @@ in
 
       environment = {
         KEA_PIDFILE_DIR = "/run/kea";
+        KEA_LOCKFILE_DIR = "/run/kea";
       };
 
       restartTriggers = [
@@ -271,6 +272,7 @@ in
 
       environment = {
         KEA_PIDFILE_DIR = "/run/kea";
+        KEA_LOCKFILE_DIR = "/run/kea";
       };
 
       restartTriggers = [
@@ -313,6 +315,7 @@ in
 
       environment = {
         KEA_PIDFILE_DIR = "/run/kea";
+        KEA_LOCKFILE_DIR = "/run/kea";
       };
 
       restartTriggers = [
@@ -353,6 +356,7 @@ in
 
       environment = {
         KEA_PIDFILE_DIR = "/run/kea";
+        KEA_LOCKFILE_DIR = "/run/kea";
       };
 
       restartTriggers = [
@@ -361,7 +365,7 @@ in
 
       serviceConfig = {
         ExecStart = "${package}/bin/kea-dhcp-ddns -c /etc/kea/dhcp-ddns.conf ${lib.escapeShellArgs cfg.dhcp-ddns.extraArgs}";
-        AmbientCapabilites = [
+        AmbientCapabilities = [
           "CAP_NET_BIND_SERVICE"
         ];
         CapabilityBoundingSet = [
diff --git a/nixos/modules/services/networking/knot.nix b/nixos/modules/services/networking/knot.nix
index 67eadbd767024..a58a03997b3b8 100644
--- a/nixos/modules/services/networking/knot.nix
+++ b/nixos/modules/services/networking/knot.nix
@@ -80,13 +80,13 @@ in {
   };
 
   config = mkIf config.services.knot.enable {
+    users.groups.knot = {};
     users.users.knot = {
       isSystemUser = true;
       group = "knot";
       description = "Knot daemon user";
     };
 
-    users.groups.knot.gid = null;
     systemd.services.knot = {
       unitConfig.Documentation = "man:knotd(8) man:knot.conf(5) man:knotc(8) https://www.knot-dns.cz/docs/${cfg.package.version}/html/";
       description = cfg.package.meta.description;
@@ -98,17 +98,52 @@ in {
         Type = "notify";
         ExecStart = "${cfg.package}/bin/knotd --config=${configFile} --socket=${socketFile} ${concatStringsSep " " cfg.extraArgs}";
         ExecReload = "${knot-cli-wrappers}/bin/knotc reload";
-        CapabilityBoundingSet = "CAP_NET_BIND_SERVICE CAP_SETPCAP";
-        AmbientCapabilities = "CAP_NET_BIND_SERVICE CAP_SETPCAP";
-        NoNewPrivileges = true;
         User = "knot";
+        Group = "knot";
+
+        AmbientCapabilities = [
+          "CAP_NET_BIND_SERVICE"
+        ];
+        CapabilityBoundingSet = [
+          "CAP_NET_BIND_SERVICE"
+        ];
+        DeviceAllow = "";
+        DevicePolicy = "closed";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateTmp = true;
+        PrivateUsers = false; # breaks capability passing
+        ProcSubset = "pid";
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "invisible";
+        ProtectSystem = "strict";
+        RemoveIPC = true;
+        Restart = "on-abort";
+        RestrictAddressFamilies = [
+          "AF_INET"
+          "AF_INET6"
+          "AF_UNIX"
+        ];
+        RestrictNamespaces = true;
+        RestrictRealtime =true;
+        RestrictSUIDSGID = true;
         RuntimeDirectory = "knot";
         StateDirectory = "knot";
         StateDirectoryMode = "0700";
-        PrivateDevices = true;
-        RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6";
         SystemCallArchitectures = "native";
-        Restart = "on-abort";
+        SystemCallFilter = [
+          "@system-service"
+          "~@privileged"
+        ];
+        UMask = "0077";
       };
     };
 
diff --git a/nixos/modules/services/networking/lxd-image-server.nix b/nixos/modules/services/networking/lxd-image-server.nix
index 5ec6cacffa497..b119ba8acf634 100644
--- a/nixos/modules/services/networking/lxd-image-server.nix
+++ b/nixos/modules/services/networking/lxd-image-server.nix
@@ -55,9 +55,8 @@ in
         path = "/var/log/lxd-image-server/lxd-image-server.log";
         frequency = "daily";
         keep = 21;
-        user = "lxd-image-server";
-        group = cfg.group;
         extraConfig = ''
+          create 755 lxd-image-server ${cfg.group}
           missingok
           compress
           delaycompress
diff --git a/nixos/modules/services/networking/monero.nix b/nixos/modules/services/networking/monero.nix
index 9a9084e4ce1a3..8bed89917c855 100644
--- a/nixos/modules/services/networking/monero.nix
+++ b/nixos/modules/services/networking/monero.nix
@@ -222,7 +222,7 @@ in
       serviceConfig = {
         User  = "monero";
         Group = "monero";
-        ExecStart = "${pkgs.monero}/bin/monerod --config-file=${configFile} --non-interactive";
+        ExecStart = "${pkgs.monero-cli}/bin/monerod --config-file=${configFile} --non-interactive";
         Restart = "always";
         SuccessExitStatus = [ 0 1 ];
       };
diff --git a/nixos/modules/services/networking/ncdns.nix b/nixos/modules/services/networking/ncdns.nix
index af17fc0814b2e..82c285d051607 100644
--- a/nixos/modules/services/networking/ncdns.nix
+++ b/nixos/modules/services/networking/ncdns.nix
@@ -76,6 +76,7 @@ in
       identity.hostname = mkOption {
         type = types.str;
         default = config.networking.hostName;
+        defaultText = literalExpression "config.networking.hostName";
         example = "example.com";
         description = ''
           The hostname of this ncdns instance, which defaults to the machine
diff --git a/nixos/modules/services/networking/nix-serve.nix b/nixos/modules/services/networking/nix-serve.nix
index 7fc145f2303d7..390f0ddaee83c 100644
--- a/nixos/modules/services/networking/nix-serve.nix
+++ b/nixos/modules/services/networking/nix-serve.nix
@@ -37,8 +37,6 @@ in
           nix-store --generate-binary-cache-key key-name secret-key-file public-key-file
           ```
 
-          Make sure user `nix-serve` has read access to the private key file.
-
           For more details see <citerefentry><refentrytitle>nix-store</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
         '';
       };
@@ -61,16 +59,22 @@ in
 
       path = [ config.nix.package.out pkgs.bzip2.bin ];
       environment.NIX_REMOTE = "daemon";
-      environment.NIX_SECRET_KEY_FILE = cfg.secretKeyFile;
+
+      script = ''
+        ${lib.optionalString (cfg.secretKeyFile != null) ''
+          export NIX_SECRET_KEY_FILE="$CREDENTIALS_DIRECTORY/NIX_SECRET_KEY_FILE"
+        ''}
+        exec ${pkgs.nix-serve}/bin/nix-serve --listen ${cfg.bindAddress}:${toString cfg.port} ${cfg.extraParams}
+      '';
 
       serviceConfig = {
         Restart = "always";
         RestartSec = "5s";
-        ExecStart = "${pkgs.nix-serve}/bin/nix-serve " +
-          "--listen ${cfg.bindAddress}:${toString cfg.port} ${cfg.extraParams}";
         User = "nix-serve";
         Group = "nix-serve";
         DynamicUser = true;
+        LoadCredential = lib.optionalString (cfg.secretKeyFile != null)
+          "NIX_SECRET_KEY_FILE:${cfg.secretKeyFile}";
       };
     };
   };
diff --git a/nixos/modules/services/networking/nsd.nix b/nixos/modules/services/networking/nsd.nix
index 893995165b9e4..cf6c9661dc1b0 100644
--- a/nixos/modules/services/networking/nsd.nix
+++ b/nixos/modules/services/networking/nsd.nix
@@ -603,6 +603,7 @@ in
     reuseport = mkOption {
       type = types.bool;
       default = pkgs.stdenv.isLinux;
+      defaultText = literalExpression "pkgs.stdenv.isLinux";
       description = ''
         Whether to enable SO_REUSEPORT on all used sockets. This lets multiple
         processes bind to the same port. This speeds up operation especially
diff --git a/nixos/modules/services/networking/ntopng.nix b/nixos/modules/services/networking/ntopng.nix
index c152571171370..77a004e8ab3a5 100644
--- a/nixos/modules/services/networking/ntopng.nix
+++ b/nixos/modules/services/networking/ntopng.nix
@@ -1,10 +1,11 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
 
   cfg = config.services.ntopng;
+  opt = options.services.ntopng;
   redisCfg = config.services.redis;
 
   configFile = if cfg.configText != "" then
@@ -35,8 +36,8 @@ in
           collection tool.
 
           With the default configuration, ntopng monitors all network
-          interfaces and displays its findings at http://localhost:${toString
-          cfg.http-port}. Default username and password is admin/admin.
+          interfaces and displays its findings at http://localhost:''${toString
+          config.${opt.http-port}}. Default username and password is admin/admin.
 
           See the ntopng(8) manual page and http://www.ntop.org/products/ntop/
           for more info.
diff --git a/nixos/modules/services/networking/ntp/chrony.nix b/nixos/modules/services/networking/ntp/chrony.nix
index d414936a2c2be..34728455a2120 100644
--- a/nixos/modules/services/networking/ntp/chrony.nix
+++ b/nixos/modules/services/networking/ntp/chrony.nix
@@ -52,6 +52,7 @@ in
 
       servers = mkOption {
         default = config.networking.timeServers;
+        defaultText = literalExpression "config.networking.timeServers";
         type = types.listOf types.str;
         description = ''
           The set of NTP servers from which to synchronise.
diff --git a/nixos/modules/services/networking/ntp/ntpd.nix b/nixos/modules/services/networking/ntp/ntpd.nix
index ce4802ce02450..12be0d045a857 100644
--- a/nixos/modules/services/networking/ntp/ntpd.nix
+++ b/nixos/modules/services/networking/ntp/ntpd.nix
@@ -77,6 +77,7 @@ in
 
       servers = mkOption {
         default = config.networking.timeServers;
+        defaultText = literalExpression "config.networking.timeServers";
         type = types.listOf types.str;
         description = ''
           The set of NTP servers from which to synchronise.
diff --git a/nixos/modules/services/networking/ntp/openntpd.nix b/nixos/modules/services/networking/ntp/openntpd.nix
index 9f3892e3b538e..e86b71291f960 100644
--- a/nixos/modules/services/networking/ntp/openntpd.nix
+++ b/nixos/modules/services/networking/ntp/openntpd.nix
@@ -23,6 +23,7 @@ in
 
     servers = mkOption {
       default = config.services.ntp.servers;
+      defaultText = literalExpression "config.services.ntp.servers";
       type = types.listOf types.str;
       inherit (options.services.ntp.servers) description;
     };
diff --git a/nixos/modules/services/networking/pleroma.nix b/nixos/modules/services/networking/pleroma.nix
index 2f32faf387ca6..9b8382392c0a7 100644
--- a/nixos/modules/services/networking/pleroma.nix
+++ b/nixos/modules/services/networking/pleroma.nix
@@ -100,6 +100,7 @@ in {
       after = [ "network-online.target" "postgresql.service" ];
       wantedBy = [ "multi-user.target" ];
       restartTriggers = [ config.environment.etc."/pleroma/config.exs".source ];
+      environment.RELEASE_COOKIE = "/var/lib/pleroma/.cookie";
       serviceConfig = {
         User = cfg.user;
         Group = cfg.group;
@@ -116,8 +117,14 @@ in {
         # has not been updated. But the no-op process is pretty fast.
         # Better be safe than sorry migration-wise.
         ExecStartPre =
-          let preScript = pkgs.writers.writeBashBin "pleromaStartPre"
-            "${cfg.package}/bin/pleroma_ctl migrate";
+          let preScript = pkgs.writers.writeBashBin "pleromaStartPre" ''
+            if [ ! -f /var/lib/pleroma/.cookie ]
+            then
+              echo "Creating cookie file"
+              dd if=/dev/urandom bs=1 count=16 | hexdump -e '16/1 "%02x"' > /var/lib/pleroma/.cookie
+            fi
+            ${cfg.package}/bin/pleroma_ctl migrate
+          '';
           in "${preScript}/bin/pleromaStartPre";
 
         ExecStart = "${cfg.package}/bin/pleroma start";
diff --git a/nixos/modules/services/networking/prosody.xml b/nixos/modules/services/networking/prosody.xml
index 471240cd14752..6358d744ff780 100644
--- a/nixos/modules/services/networking/prosody.xml
+++ b/nixos/modules/services/networking/prosody.xml
@@ -72,7 +72,7 @@ services.prosody = {
    a TLS certificate for the three endponits:
     <programlisting>
 security.acme = {
-  <link linkend="opt-security.acme.email">email</link> = "root@example.org";
+  <link linkend="opt-security.acme.defaults.email">email</link> = "root@example.org";
   <link linkend="opt-security.acme.acceptTerms">acceptTerms</link> = true;
   <link linkend="opt-security.acme.certs">certs</link> = {
     "example.org" = {
diff --git a/nixos/modules/services/networking/quassel.nix b/nixos/modules/services/networking/quassel.nix
index 22940ef7a13a8..844c9a6b8b352 100644
--- a/nixos/modules/services/networking/quassel.nix
+++ b/nixos/modules/services/networking/quassel.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.quassel;
+  opt = options.services.quassel;
   quassel = cfg.package;
   user = if cfg.user != null then cfg.user else "quassel";
 in
@@ -63,6 +64,9 @@ in
 
       dataDir = mkOption {
         default = "/home/${user}/.config/quassel-irc.org";
+        defaultText = literalExpression ''
+          "/home/''${config.${opt.user}}/.config/quassel-irc.org"
+        '';
         type = types.str;
         description = ''
           The directory holding configuration files, the SQlite database and the SSL Cert.
diff --git a/nixos/modules/services/networking/quorum.nix b/nixos/modules/services/networking/quorum.nix
index 50148dc314da0..bddcd18c7fbe1 100644
--- a/nixos/modules/services/networking/quorum.nix
+++ b/nixos/modules/services/networking/quorum.nix
@@ -1,9 +1,10 @@
-{ config, pkgs, lib, ... }:
+{ config, options, pkgs, lib, ... }:
 let
 
   inherit (lib) mkEnableOption mkIf mkOption literalExpression types optionalString;
 
   cfg = config.services.quorum;
+  opt = options.services.quorum;
   dataDir = "/var/lib/quorum";
   genesisFile = pkgs.writeText "genesis.json" (builtins.toJSON cfg.genesis);
   staticNodesFile = pkgs.writeText "static-nodes.json" (builtins.toJSON cfg.staticNodes);
@@ -23,6 +24,7 @@ in {
       group = mkOption {
         type = types.str;
         default = cfg.user;
+        defaultText = literalExpression "config.${opt.user}";
         description = "The group as which to run quorum.";
       };
 
diff --git a/nixos/modules/services/networking/radicale.nix b/nixos/modules/services/networking/radicale.nix
index c121008d5294d..c6c40777ed7cf 100644
--- a/nixos/modules/services/networking/radicale.nix
+++ b/nixos/modules/services/networking/radicale.nix
@@ -195,6 +195,7 @@ in {
         SystemCallArchitectures = "native";
         SystemCallFilter = [ "@system-service" "~@privileged" "~@resources" ];
         UMask = "0027";
+        WorkingDirectory = "/var/lib/radicale";
       };
     };
   };
diff --git a/nixos/modules/services/networking/resilio.nix b/nixos/modules/services/networking/resilio.nix
index 4701b0e8143d2..891278506417d 100644
--- a/nixos/modules/services/networking/resilio.nix
+++ b/nixos/modules/services/networking/resilio.nix
@@ -58,6 +58,7 @@ in
         type = types.str;
         example = "Voltron";
         default = config.networking.hostName;
+        defaultText = literalExpression "config.networking.hostName";
         description = ''
           Name of the Resilio Sync device.
         '';
diff --git a/nixos/modules/services/networking/seafile.nix b/nixos/modules/services/networking/seafile.nix
index 856797b6b0209..d7fb22edebed7 100644
--- a/nixos/modules/services/networking/seafile.nix
+++ b/nixos/modules/services/networking/seafile.nix
@@ -124,6 +124,7 @@ in {
       type = types.package;
       description = "Which package to use for the seafile server.";
       default = pkgs.seafile-server;
+      defaultText = literalExpression "pkgs.seafile-server";
     };
 
     seahubExtraConf = mkOption {
diff --git a/nixos/modules/services/networking/shairport-sync.nix b/nixos/modules/services/networking/shairport-sync.nix
index ac526c0e9f6f4..eb61663e4d922 100644
--- a/nixos/modules/services/networking/shairport-sync.nix
+++ b/nixos/modules/services/networking/shairport-sync.nix
@@ -36,6 +36,14 @@ in
         '';
       };
 
+      openFirewall = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to automatically open ports in the firewall.
+        '';
+      };
+
       user = mkOption {
         type = types.str;
         default = "shairport";
@@ -45,6 +53,15 @@ in
         '';
       };
 
+      group = mkOption {
+        type = types.str;
+        default = "shairport";
+        description = ''
+          Group account name under which to run shairport-sync. The account
+          will be created.
+        '';
+      };
+
     };
 
   };
@@ -58,13 +75,22 @@ in
     services.avahi.publish.enable = true;
     services.avahi.publish.userServices = true;
 
-    users.users.${cfg.user} =
-      { description = "Shairport user";
+    users = {
+      users.${cfg.user} = {
+        description = "Shairport user";
         isSystemUser = true;
         createHome = true;
         home = "/var/lib/shairport-sync";
+        group = cfg.group;
         extraGroups = [ "audio" ] ++ optional config.hardware.pulseaudio.enable "pulse";
       };
+      groups.${cfg.group} = {};
+    };
+
+    networking.firewall = mkIf cfg.openFirewall {
+      allowedTCPPorts = [ 5000 ];
+      allowedUDPPortRanges = [ { from = 6001; to = 6011; } ];
+    };
 
     systemd.services.shairport-sync =
       {
@@ -73,6 +99,7 @@ in
         wantedBy = [ "multi-user.target" ];
         serviceConfig = {
           User = cfg.user;
+          Group = cfg.group;
           ExecStart = "${pkgs.shairport-sync}/bin/shairport-sync ${cfg.arguments}";
           RuntimeDirectory = "shairport-sync";
         };
diff --git a/nixos/modules/services/networking/skydns.nix b/nixos/modules/services/networking/skydns.nix
index c4e959b57bbed..dea60a3862a38 100644
--- a/nixos/modules/services/networking/skydns.nix
+++ b/nixos/modules/services/networking/skydns.nix
@@ -49,6 +49,7 @@ in {
 
     nameservers = mkOption {
       default = map (n: n + ":53") config.networking.nameservers;
+      defaultText = literalExpression ''map (n: n + ":53") config.networking.nameservers'';
       type = types.listOf types.str;
       description = "Skydns list of nameservers to forward DNS requests to when not authoritative for a domain.";
       example = ["8.8.8.8:53" "8.8.4.4:53"];
diff --git a/nixos/modules/services/networking/smokeping.nix b/nixos/modules/services/networking/smokeping.nix
index c075cbbceac9a..bd71b158dbe32 100644
--- a/nixos/modules/services/networking/smokeping.nix
+++ b/nixos/modules/services/networking/smokeping.nix
@@ -241,6 +241,12 @@ in
           + FPing
           binary = ${config.security.wrapperDir}/fping
         '';
+        defaultText = literalExpression ''
+          '''
+            + FPing
+            binary = ''${config.security.wrapperDir}/fping
+          '''
+        '';
         description = "Probe configuration";
       };
       sendmail = mkOption {
diff --git a/nixos/modules/services/networking/soju.nix b/nixos/modules/services/networking/soju.nix
index 68a33e9dccba5..cb0acf4765ff1 100644
--- a/nixos/modules/services/networking/soju.nix
+++ b/nixos/modules/services/networking/soju.nix
@@ -43,6 +43,7 @@ in
     hostName = mkOption {
       type = types.str;
       default = config.networking.hostName;
+      defaultText = literalExpression "config.networking.hostName";
       description = "Server hostname.";
     };
 
diff --git a/nixos/modules/services/networking/stubby.nix b/nixos/modules/services/networking/stubby.nix
index c5e0f929a1267..78c13798dde2a 100644
--- a/nixos/modules/services/networking/stubby.nix
+++ b/nixos/modules/services/networking/stubby.nix
@@ -1,180 +1,51 @@
-{ config, lib, pkgs, ...}:
+{ config, lib, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.stubby;
+  settingsFormat = pkgs.formats.yaml { };
+  confFile = settingsFormat.generate "stubby.yml" cfg.settings;
+in {
+  imports = map (x:
+    (mkRemovedOptionModule [ "services" "stubby" x ]
+      "Stubby configuration moved to services.stubby.settings.")) [
+        "authenticationMode"
+        "fallbackProtocols"
+        "idleTimeout"
+        "listenAddresses"
+        "queryPaddingBlocksize"
+        "roundRobinUpstreams"
+        "subnetPrivate"
+        "upstreamServers"
+      ];
 
-  fallbacks = concatMapStringsSep "\n  " (x: "- ${x}") cfg.fallbackProtocols;
-  listeners = concatMapStringsSep "\n  " (x: "- ${x}") cfg.listenAddresses;
-
-  # By default, the recursive resolvers maintained by the getdns
-  # project itself are enabled. More information about both getdns's servers,
-  # as well as third party options for upstream resolvers, can be found here:
-  # https://dnsprivacy.org/wiki/display/DP/DNS+Privacy+Test+Servers
-  #
-  # You can override these values by supplying a yaml-formatted array of your
-  # preferred upstream resolvers in the following format:
-  #
-  # 106 # - address_data: IPv4 or IPv6 address of the upstream
-  #   port: Port for UDP/TCP (default is 53)
-  #   tls_auth_name: Authentication domain name checked against the server
-  #                  certificate
-  #   tls_pubkey_pinset: An SPKI pinset verified against the keys in the server
-  #                      certificate
-  #     - digest: Only "sha256" is currently supported
-  #       value: Base64 encoded value of the sha256 fingerprint of the public
-  #              key
-  #   tls_port: Port for TLS (default is 853)
-
-  defaultUpstream = ''
-    - address_data: 145.100.185.15
-      tls_auth_name: "dnsovertls.sinodun.com"
-      tls_pubkey_pinset:
-        - digest: "sha256"
-          value: 62lKu9HsDVbyiPenApnc4sfmSYTHOVfFgL3pyB+cBL4=
-    - address_data: 145.100.185.16
-      tls_auth_name: "dnsovertls1.sinodun.com"
-      tls_pubkey_pinset:
-        - digest: "sha256"
-          value: cE2ecALeE5B+urJhDrJlVFmf38cJLAvqekONvjvpqUA=
-    - address_data: 185.49.141.37
-      tls_auth_name: "getdnsapi.net"
-      tls_pubkey_pinset:
-        - digest: "sha256"
-          value: foxZRnIh9gZpWnl+zEiKa0EJ2rdCGroMWm02gaxSc9Q=
-    - address_data: 2001:610:1:40ba:145:100:185:15
-      tls_auth_name: "dnsovertls.sinodun.com"
-      tls_pubkey_pinset:
-        - digest: "sha256"
-          value: 62lKu9HsDVbyiPenApnc4sfmSYTHOVfFgL3pyB+cBL4=
-    - address_data: 2001:610:1:40ba:145:100:185:16
-      tls_auth_name: "dnsovertls1.sinodun.com"
-      tls_pubkey_pinset:
-        - digest: "sha256"
-          value: cE2ecALeE5B+urJhDrJlVFmf38cJLAvqekONvjvpqUA=
-    - address_data: 2a04:b900:0:100::38
-      tls_auth_name: "getdnsapi.net"
-      tls_pubkey_pinset:
-        - digest: "sha256"
-          value: foxZRnIh9gZpWnl+zEiKa0EJ2rdCGroMWm02gaxSc9Q=
-  '';
-
-  # Resolution type is not changeable here because it is required per the
-  # stubby documentation:
-  #
-  # "resolution_type: Work in stub mode only (not recursive mode) - required for Stubby
-  # operation."
-  #
-  # https://dnsprivacy.org/wiki/display/DP/Configuring+Stubby
-
-  confFile = pkgs.writeText "stubby.yml" ''
-    resolution_type: GETDNS_RESOLUTION_STUB
-    dns_transport_list:
-      ${fallbacks}
-    appdata_dir: "/var/cache/stubby"
-    tls_authentication: ${cfg.authenticationMode}
-    tls_query_padding_blocksize: ${toString cfg.queryPaddingBlocksize}
-    edns_client_subnet_private: ${if cfg.subnetPrivate then "1" else "0"}
-    idle_timeout: ${toString cfg.idleTimeout}
-    listen_addresses:
-      ${listeners}
-    round_robin_upstreams: ${if cfg.roundRobinUpstreams then "1" else "0"}
-    ${cfg.extraConfig}
-    upstream_recursive_servers:
-    ${cfg.upstreamServers}
-  '';
-in
-
-{
   options = {
     services.stubby = {
 
       enable = mkEnableOption "Stubby DNS resolver";
 
-      fallbackProtocols = mkOption {
-        default = [ "GETDNS_TRANSPORT_TLS" ];
-        type = with types; listOf (enum [
-          "GETDNS_TRANSPORT_TLS"
-          "GETDNS_TRANSPORT_TCP"
-          "GETDNS_TRANSPORT_UDP"
-        ]);
-        description = ''
-          Ordered list composed of one or more transport protocols.
-          Strict mode should only use <literal>GETDNS_TRANSPORT_TLS</literal>.
-          Other options are <literal>GETDNS_TRANSPORT_UDP</literal> and
-          <literal>GETDNS_TRANSPORT_TCP</literal>.
+      settings = mkOption {
+        type = types.attrsOf settingsFormat.type;
+        example = lib.literalExpression ''
+          pkgs.stubby.passthru.settingsExample // {
+            upstream_recursive_servers = [{
+              address_data = "158.64.1.29";
+              tls_auth_name = "kaitain.restena.lu";
+              tls_pubkey_pinset = [{
+                digest = "sha256";
+                value = "7ftvIkA+UeN/ktVkovd/7rPZ6mbkhVI7/8HnFJIiLa4=";
+              }];
+            }];
+          };
         '';
-      };
-
-      authenticationMode = mkOption {
-        default = "GETDNS_AUTHENTICATION_REQUIRED";
-        type = types.enum [
-          "GETDNS_AUTHENTICATION_REQUIRED"
-          "GETDNS_AUTHENTICATION_NONE"
-        ];
         description = ''
-          Selects the Strict or Opportunistic usage profile.
-          For strict, set to <literal>GETDNS_AUTHENTICATION_REQUIRED</literal>.
-          for opportunistic, use <literal>GETDNS_AUTHENTICATION_NONE</literal>.
-        '';
-      };
-
-      queryPaddingBlocksize = mkOption {
-        default = 128;
-        type = types.int;
-        description = ''
-          EDNS0 option to pad the size of the DNS query to the given blocksize.
-        '';
-      };
-
-      subnetPrivate = mkOption {
-        default = true;
-        type = types.bool;
-        description = ''
-          EDNS0 option for ECS client privacy. Default is
-          <literal>true</literal>. If set, this option prevents the client
-          subnet from being sent to authoritative nameservers.
-        '';
-      };
-
-      idleTimeout = mkOption {
-        default = 10000;
-        type = types.int;
-        description = "EDNS0 option for keepalive idle timeout expressed in
-        milliseconds.";
-      };
-
-      listenAddresses = mkOption {
-        default = [ "127.0.0.1" "0::1" ];
-        type = with types; listOf str;
-        description = ''
-          Sets the listen address for the stubby daemon.
-          Uses port 53 by default.
-          Ise IP@port to specify a different port.
-        '';
-      };
-
-      roundRobinUpstreams = mkOption {
-        default = true;
-        type = types.bool;
-        description = ''
-          Instructs stubby to distribute queries across all available name
-          servers. Default is <literal>true</literal>. Set to
-          <literal>false</literal> in order to use the first available.
-        '';
-      };
-
-      upstreamServers = mkOption {
-        default = defaultUpstream;
-        type = types.lines;
-        description = ''
-          Replace default upstreams. See <citerefentry><refentrytitle>stubby
-          </refentrytitle><manvolnum>1</manvolnum></citerefentry> for an
-          example of the entry formatting. In Strict mode, at least one of the
-          following settings must be supplied for each nameserver:
-          <literal>tls_auth_name</literal> or
-          <literal>tls_pubkey_pinset</literal>.
+          Content of the Stubby configuration file. All Stubby settings may be set or queried
+          here. The default settings are available at
+          <literal>pkgs.stubby.passthru.settingsExample</literal>. See
+          <link xlink:href="https://dnsprivacy.org/wiki/display/DP/Configuring+Stubby"/>.
+          A list of the public recursive servers can be found here:
+          <link xlink:href="https://dnsprivacy.org/wiki/display/DP/DNS+Privacy+Test+Servers"/>.
         '';
       };
 
@@ -184,20 +55,21 @@ in
         description = "Enable or disable debug level logging.";
       };
 
-      extraConfig = mkOption {
-        default = "";
-        type = types.lines;
-        description = ''
-          Add additional configuration options. see <citerefentry>
-          <refentrytitle>stubby</refentrytitle><manvolnum>1</manvolnum>
-          </citerefentry>for more options.
-        '';
-      };
     };
   };
 
   config = mkIf cfg.enable {
-    environment.systemPackages = [ pkgs.stubby ];
+    assertions = [{
+      assertion =
+        (cfg.settings.resolution_type or "") == "GETDNS_RESOLUTION_STUB";
+      message = ''
+        services.stubby.settings.resolution_type must be set to "GETDNS_RESOLUTION_STUB".
+        Is services.stubby.settings unset?
+      '';
+    }];
+
+    services.stubby.settings.appdata_dir = "/var/cache/stubby";
+
     systemd.services.stubby = {
       description = "Stubby local DNS resolver";
       after = [ "network.target" ];
diff --git a/nixos/modules/services/networking/syncthing.nix b/nixos/modules/services/networking/syncthing.nix
index 8c44687a38224..e37e324019e81 100644
--- a/nixos/modules/services/networking/syncthing.nix
+++ b/nixos/modules/services/networking/syncthing.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.syncthing;
+  opt = options.services.syncthing;
   defaultUser = "syncthing";
   defaultGroup = defaultUser;
 
@@ -431,7 +432,26 @@ in {
           The path where the settings and keys will exist.
         '';
         default = cfg.dataDir + optionalString cond "/.config/syncthing";
-        defaultText = literalExpression "dataDir${optionalString cond " + \"/.config/syncthing\""}";
+        defaultText = literalDocBook ''
+          <variablelist>
+            <varlistentry>
+              <term><literal>stateVersion >= 19.03</literal></term>
+              <listitem>
+                <programlisting>
+                  config.${opt.dataDir} + "/.config/syncthing"
+                </programlisting>
+              </listitem>
+            </varlistentry>
+            <varlistentry>
+              <term>otherwise</term>
+              <listitem>
+                <programlisting>
+                  config.${opt.dataDir}
+                </programlisting>
+              </listitem>
+            </varlistentry>
+          </variablelist>
+        '';
       };
 
       extraFlags = mkOption {
diff --git a/nixos/modules/services/networking/unifi.nix b/nixos/modules/services/networking/unifi.nix
index 53ad4df477fcc..a683c537f05b2 100644
--- a/nixos/modules/services/networking/unifi.nix
+++ b/nixos/modules/services/networking/unifi.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, utils, ... }:
+{ config, options, lib, pkgs, utils, ... }:
 with lib;
 let
   cfg = config.services.unifi;
@@ -49,7 +49,7 @@ in
       '';
     };
 
-    services.unifi.openPorts = mkOption {
+    services.unifi.openFirewall = mkOption {
       type = types.bool;
       default = true;
       description = ''
@@ -85,6 +85,10 @@ in
 
   config = mkIf cfg.enable {
 
+    warnings = optional
+      (options.services.unifi.openFirewall.highestPrio >= (mkOptionDefault null).priority)
+      "The current services.unifi.openFirewall = true default is deprecated and will change to false in 22.11. Set it explicitly to silence this warning.";
+
     users.users.unifi = {
       isSystemUser = true;
       group = "unifi";
@@ -93,7 +97,7 @@ in
     };
     users.groups.unifi = {};
 
-    networking.firewall = mkIf cfg.openPorts {
+    networking.firewall = mkIf cfg.openFirewall {
       # https://help.ubnt.com/hc/en-us/articles/218506997
       allowedTCPPorts = [
         8080  # Port for UAP to inform controller.
@@ -191,6 +195,7 @@ in
   };
   imports = [
     (mkRemovedOptionModule [ "services" "unifi" "dataDir" ] "You should move contents of dataDir to /var/lib/unifi/data" )
+    (mkRenamedOptionModule [ "services" "unifi" "openPorts" ] [ "services" "unifi" "openFirewall" ])
   ];
 
   meta.maintainers = with lib.maintainers; [ erictapen pennae ];
diff --git a/nixos/modules/services/networking/wasabibackend.nix b/nixos/modules/services/networking/wasabibackend.nix
index 8482823e197f7..b6dcd940915a9 100644
--- a/nixos/modules/services/networking/wasabibackend.nix
+++ b/nixos/modules/services/networking/wasabibackend.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 let
   cfg = config.services.wasabibackend;
+  opt = options.services.wasabibackend;
 
-  inherit (lib) mkEnableOption mkIf mkOption optionalAttrs optionalString types;
+  inherit (lib) literalExpression mkEnableOption mkIf mkOption optionalAttrs optionalString types;
 
   confOptions = {
       BitcoinRpcConnectionString = "${cfg.rpc.user}:${cfg.rpc.password}";
@@ -103,6 +104,7 @@ in {
       group = mkOption {
         type = types.str;
         default = cfg.user;
+        defaultText = literalExpression "config.${opt.user}";
         description = "The group as which to run the wasabibackend node.";
       };
     };
diff --git a/nixos/modules/services/networking/wireguard.nix b/nixos/modules/services/networking/wireguard.nix
index 55b84935b6cb5..7cd44b2f8a0a8 100644
--- a/nixos/modules/services/networking/wireguard.nix
+++ b/nixos/modules/services/networking/wireguard.nix
@@ -1,10 +1,11 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
 
   cfg = config.networking.wireguard;
+  opt = options.networking.wireguard;
 
   kernel = config.boot.kernelPackages;
 
@@ -438,6 +439,7 @@ in
         type = types.bool;
         # 2019-05-25: Backwards compatibility.
         default = cfg.interfaces != {};
+        defaultText = literalExpression "config.${opt.interfaces} != { }";
         example = true;
       };
 
diff --git a/nixos/modules/services/networking/wpa_supplicant.nix b/nixos/modules/services/networking/wpa_supplicant.nix
index 4aa350d21a2ba..07dec8ea71815 100644
--- a/nixos/modules/services/networking/wpa_supplicant.nix
+++ b/nixos/modules/services/networking/wpa_supplicant.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, utils, ... }:
+{ config, lib, options, pkgs, utils, ... }:
 
 with lib;
 
@@ -8,6 +8,7 @@ let
     else pkgs.wpa_supplicant;
 
   cfg = config.networking.wireless;
+  opt = options.networking.wireless;
 
   # Content of wpa_supplicant.conf
   generatedConfig = concatStringsSep "\n" (
@@ -421,6 +422,7 @@ in {
       dbusControlled = mkOption {
         type = types.bool;
         default = lib.length cfg.interfaces < 2;
+        defaultText = literalExpression "length config.${opt.interfaces} < 2";
         description = ''
           Whether to enable the DBus control interface.
           This is only needed when using NetworkManager or connman.
diff --git a/nixos/modules/services/networking/xrdp.nix b/nixos/modules/services/networking/xrdp.nix
index c4f828f3c5a6b..e9f123a181aec 100644
--- a/nixos/modules/services/networking/xrdp.nix
+++ b/nixos/modules/services/networking/xrdp.nix
@@ -97,6 +97,11 @@ in
         '';
       };
 
+      confDir = mkOption {
+        type = types.path;
+        default = confDir;
+        description = "The location of the config files for xrdp.";
+      };
     };
   };
 
@@ -149,7 +154,7 @@ in
           User = "xrdp";
           Group = "xrdp";
           PermissionsStartOnly = true;
-          ExecStart = "${cfg.package}/bin/xrdp --nodaemon --port ${toString cfg.port} --config ${confDir}/xrdp.ini";
+          ExecStart = "${cfg.package}/bin/xrdp --nodaemon --port ${toString cfg.port} --config ${cfg.confDir}/xrdp.ini";
         };
       };
 
@@ -159,7 +164,7 @@ in
         description = "xrdp session manager";
         restartIfChanged = false; # do not restart on "nixos-rebuild switch". like "display-manager", it can have many interactive programs as children
         serviceConfig = {
-          ExecStart = "${cfg.package}/bin/xrdp-sesman --nodaemon --config ${confDir}/sesman.ini";
+          ExecStart = "${cfg.package}/bin/xrdp-sesman --nodaemon --config ${cfg.confDir}/sesman.ini";
           ExecStop  = "${pkgs.coreutils}/bin/kill -INT $MAINPID";
         };
       };
diff --git a/nixos/modules/services/search/kibana.nix b/nixos/modules/services/search/kibana.nix
index 381f5156ceb6d..e4ab85be9ef15 100644
--- a/nixos/modules/services/search/kibana.nix
+++ b/nixos/modules/services/search/kibana.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.kibana;
+  opt = options.services.kibana;
 
   ge7 = builtins.compareVersions cfg.package.version "7" >= 0;
   lt6_6 = builtins.compareVersions cfg.package.version "6.6" < 0;
@@ -130,6 +131,9 @@ in {
           This defaults to the singleton list [ca] when the <option>ca</option> option is defined.
         '';
         default = if cfg.elasticsearch.ca == null then [] else [ca];
+        defaultText = literalExpression ''
+          if config.${opt.elasticsearch.ca} == null then [ ] else [ ca ]
+        '';
         type = types.listOf types.path;
       };
 
diff --git a/nixos/modules/services/security/aesmd.nix b/nixos/modules/services/security/aesmd.nix
new file mode 100644
index 0000000000000..bb53bc49e259e
--- /dev/null
+++ b/nixos/modules/services/security/aesmd.nix
@@ -0,0 +1,227 @@
+{ config, pkgs, lib, ... }:
+with lib;
+let
+  cfg = config.services.aesmd;
+
+  sgx-psw = pkgs.sgx-psw.override { inherit (cfg) debug; };
+
+  configFile = with cfg.settings; pkgs.writeText "aesmd.conf" (
+    concatStringsSep "\n" (
+      optional (whitelistUrl != null) "whitelist url = ${whitelistUrl}" ++
+      optional (proxy != null) "aesm proxy = ${proxy}" ++
+      optional (proxyType != null) "proxy type = ${proxyType}" ++
+      optional (defaultQuotingType != null) "default quoting type = ${defaultQuotingType}" ++
+      # Newline at end of file
+      [ "" ]
+    )
+  );
+in
+{
+  options.services.aesmd = {
+    enable = mkEnableOption "Intel's Architectural Enclave Service Manager (AESM) for Intel SGX";
+    debug = mkOption {
+      type = types.bool;
+      default = false;
+      description = "Whether to build the PSW package in debug mode.";
+    };
+    settings = mkOption {
+      description = "AESM configuration";
+      default = { };
+      type = types.submodule {
+        options.whitelistUrl = mkOption {
+          type = with types; nullOr str;
+          default = null;
+          example = "http://whitelist.trustedservices.intel.com/SGX/LCWL/Linux/sgx_white_list_cert.bin";
+          description = "URL to retrieve authorized Intel SGX enclave signers.";
+        };
+        options.proxy = mkOption {
+          type = with types; nullOr str;
+          default = null;
+          example = "http://proxy_url:1234";
+          description = "HTTP network proxy.";
+        };
+        options.proxyType = mkOption {
+          type = with types; nullOr (enum [ "default" "direct" "manual" ]);
+          default = if (cfg.settings.proxy != null) then "manual" else null;
+          example = "default";
+          description = ''
+            Type of proxy to use. The <literal>default</literal> uses the system's default proxy.
+            If <literal>direct</literal> is given, uses no proxy.
+            A value of <literal>manual</literal> uses the proxy from
+            <option>services.aesmd.settings.proxy</option>.
+          '';
+        };
+        options.defaultQuotingType = mkOption {
+          type = with types; nullOr (enum [ "ecdsa_256" "epid_linkable" "epid_unlinkable" ]);
+          default = null;
+          example = "ecdsa_256";
+          description = "Attestation quote type.";
+        };
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    assertions = [{
+      assertion = !(config.boot.specialFileSystems."/dev".options ? "noexec");
+      message = "SGX requires exec permission for /dev";
+    }];
+
+    hardware.cpu.intel.sgx.provision.enable = true;
+
+    systemd.services.aesmd =
+      let
+        storeAesmFolder = "${sgx-psw}/aesm";
+        # Hardcoded path AESM_DATA_FOLDER in psw/ae/aesm_service/source/oal/linux/aesm_util.cpp
+        aesmDataFolder = "/var/opt/aesmd/data";
+        aesmStateDirSystemd = "%S/aesmd";
+      in
+      {
+        description = "Intel Architectural Enclave Service Manager";
+        wantedBy = [ "multi-user.target" ];
+
+        after = [
+          "auditd.service"
+          "network.target"
+          "syslog.target"
+        ];
+
+        environment = {
+          NAME = "aesm_service";
+          AESM_PATH = storeAesmFolder;
+          LD_LIBRARY_PATH = storeAesmFolder;
+        };
+
+        # Make sure any of the SGX application enclave devices is available
+        unitConfig.AssertPathExists = [
+          # legacy out-of-tree driver
+          "|/dev/isgx"
+          # DCAP driver
+          "|/dev/sgx/enclave"
+          # in-tree driver
+          "|/dev/sgx_enclave"
+        ];
+
+        serviceConfig = rec {
+          ExecStartPre = pkgs.writeShellScript "copy-aesmd-data-files.sh" ''
+            set -euo pipefail
+            whiteListFile="${aesmDataFolder}/white_list_cert_to_be_verify.bin"
+            if [[ ! -f "$whiteListFile" ]]; then
+              ${pkgs.coreutils}/bin/install -m 644 -D \
+                "${storeAesmFolder}/data/white_list_cert_to_be_verify.bin" \
+                "$whiteListFile"
+            fi
+          '';
+          ExecStart = "${sgx-psw}/bin/aesm_service --no-daemon";
+          ExecReload = ''${pkgs.coreutils}/bin/kill -SIGHUP "$MAINPID"'';
+
+          Restart = "on-failure";
+          RestartSec = "15s";
+
+          DynamicUser = true;
+          Group = "sgx";
+          SupplementaryGroups = [
+            config.hardware.cpu.intel.sgx.provision.group
+          ];
+
+          Type = "simple";
+
+          WorkingDirectory = storeAesmFolder;
+          StateDirectory = "aesmd";
+          StateDirectoryMode = "0700";
+          RuntimeDirectory = "aesmd";
+          RuntimeDirectoryMode = "0750";
+
+          # Hardening
+
+          # chroot into the runtime directory
+          RootDirectory = "%t/aesmd";
+          BindReadOnlyPaths = [
+            builtins.storeDir
+            # Hardcoded path AESM_CONFIG_FILE in psw/ae/aesm_service/source/utils/aesm_config.cpp
+            "${configFile}:/etc/aesmd.conf"
+          ];
+          BindPaths = [
+            # Hardcoded path CONFIG_SOCKET_PATH in psw/ae/aesm_service/source/core/ipc/SocketConfig.h
+            "%t/aesmd:/var/run/aesmd"
+            "%S/aesmd:/var/opt/aesmd"
+          ];
+
+          # PrivateDevices=true will mount /dev noexec which breaks AESM
+          PrivateDevices = false;
+          DevicePolicy = "closed";
+          DeviceAllow = [
+            # legacy out-of-tree driver
+            "/dev/isgx rw"
+            # DCAP driver
+            "/dev/sgx rw"
+            # in-tree driver
+            "/dev/sgx_enclave rw"
+            "/dev/sgx_provision rw"
+          ];
+
+          # Requires Internet access for attestation
+          PrivateNetwork = false;
+
+          RestrictAddressFamilies = [
+            # Allocates the socket /var/run/aesmd/aesm.socket
+            "AF_UNIX"
+            # Uses the HTTP protocol to initialize some services
+            "AF_INET"
+            "AF_INET6"
+          ];
+
+          # True breaks stuff
+          MemoryDenyWriteExecute = false;
+
+          # needs the ipc syscall in order to run
+          SystemCallFilter = [
+            "@system-service"
+            "~@aio"
+            "~@chown"
+            "~@clock"
+            "~@cpu-emulation"
+            "~@debug"
+            "~@keyring"
+            "~@memlock"
+            "~@module"
+            "~@mount"
+            "~@privileged"
+            "~@raw-io"
+            "~@reboot"
+            "~@resources"
+            "~@setuid"
+            "~@swap"
+            "~@sync"
+            "~@timer"
+          ];
+          SystemCallArchitectures = "native";
+          SystemCallErrorNumber = "EPERM";
+
+          CapabilityBoundingSet = "";
+          KeyringMode = "private";
+          LockPersonality = true;
+          NoNewPrivileges = true;
+          NotifyAccess = "none";
+          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;
+          RestrictNamespaces = true;
+          RestrictRealtime = true;
+          RestrictSUIDSGID = true;
+          UMask = "0066";
+        };
+      };
+  };
+}
diff --git a/nixos/modules/services/security/oauth2_proxy_nginx.nix b/nixos/modules/services/security/oauth2_proxy_nginx.nix
index d82ddb894ea55..5853c5a123c6b 100644
--- a/nixos/modules/services/security/oauth2_proxy_nginx.nix
+++ b/nixos/modules/services/security/oauth2_proxy_nginx.nix
@@ -8,6 +8,7 @@ in
     proxy = mkOption {
       type = types.str;
       default = config.services.oauth2_proxy.httpAddress;
+      defaultText = literalExpression "config.services.oauth2_proxy.httpAddress";
       description = ''
         The address of the reverse proxy endpoint for oauth2_proxy
       '';
diff --git a/nixos/modules/services/security/privacyidea.nix b/nixos/modules/services/security/privacyidea.nix
index 05f4995cc4163..b8e2d9a8b0dfc 100644
--- a/nixos/modules/services/security/privacyidea.nix
+++ b/nixos/modules/services/security/privacyidea.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.privacyidea;
+  opt = options.services.privacyidea;
 
   uwsgi = pkgs.uwsgi.override { plugins = [ "python3" ]; };
   python = uwsgi.python3;
@@ -112,6 +113,7 @@ in
       encFile = mkOption {
         type = types.str;
         default = "${cfg.stateDir}/enckey";
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/enckey"'';
         description = ''
           This is used to encrypt the token data and token passwords
         '';
@@ -120,6 +122,7 @@ in
       auditKeyPrivate = mkOption {
         type = types.str;
         default = "${cfg.stateDir}/private.pem";
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/private.pem"'';
         description = ''
           Private Key for signing the audit log.
         '';
@@ -128,6 +131,7 @@ in
       auditKeyPublic = mkOption {
         type = types.str;
         default = "${cfg.stateDir}/public.pem";
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/public.pem"'';
         description = ''
           Public key for checking signatures of the audit log.
         '';
@@ -200,6 +204,7 @@ in
       systemd.services.privacyidea = let
         piuwsgi = pkgs.writeText "uwsgi.json" (builtins.toJSON {
           uwsgi = {
+            buffer-size = 8192;
             plugins = [ "python3" ];
             pythonpath = "${penv}/${uwsgi.python3.sitePackages}";
             socket = "/run/privacyidea/socket";
diff --git a/nixos/modules/services/security/step-ca.nix b/nixos/modules/services/security/step-ca.nix
index db7f81acd2a39..27b2ceed1a430 100644
--- a/nixos/modules/services/security/step-ca.nix
+++ b/nixos/modules/services/security/step-ca.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, nixosTests, ... }:
 let
   cfg = config.services.step-ca;
   settingsFormat = (pkgs.formats.json { });
@@ -82,6 +82,8 @@ in
       });
     in
     {
+      passthru.tests.step-ca = nixosTests.step-ca;
+
       assertions =
         [
           {
diff --git a/nixos/modules/services/security/tor.nix b/nixos/modules/services/security/tor.nix
index c3e3248ee8ab1..f3ed1d160eed9 100644
--- a/nixos/modules/services/security/tor.nix
+++ b/nixos/modules/services/security/tor.nix
@@ -1,10 +1,11 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with builtins;
 with lib;
 
 let
   cfg = config.services.tor;
+  opt = options.services.tor;
   stateDir = "/var/lib/tor";
   runDir = "/run/tor";
   descriptionGeneric = option: ''
@@ -799,6 +800,11 @@ in
           options.SOCKSPort = mkOption {
             description = descriptionGeneric "SOCKSPort";
             default = if cfg.settings.HiddenServiceNonAnonymousMode == true then [{port = 0;}] else [];
+            defaultText = literalExpression ''
+              if config.${opt.settings}.HiddenServiceNonAnonymousMode == true
+              then [ { port = 0; } ]
+              else [ ]
+            '';
             example = [{port = 9090;}];
             type = types.listOf (optionSOCKSPort true);
           };
diff --git a/nixos/modules/services/security/torsocks.nix b/nixos/modules/services/security/torsocks.nix
index 47ac95c4626e0..fdd6ac32cc662 100644
--- a/nixos/modules/services/security/torsocks.nix
+++ b/nixos/modules/services/security/torsocks.nix
@@ -37,6 +37,7 @@ in
       enable = mkOption {
         type        = types.bool;
         default     = config.services.tor.enable && config.services.tor.client.enable;
+        defaultText = literalExpression "config.services.tor.enable && config.services.tor.client.enable";
         description = ''
           Whether to build <literal>/etc/tor/torsocks.conf</literal>
           containing the specified global torsocks configuration.
diff --git a/nixos/modules/services/security/vault.nix b/nixos/modules/services/security/vault.nix
index b0ade62d97c9b..d48bc472cb826 100644
--- a/nixos/modules/services/security/vault.nix
+++ b/nixos/modules/services/security/vault.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.vault;
+  opt = options.services.vault;
 
   configFile = pkgs.writeText "vault.hcl" ''
     listener "tcp" {
@@ -83,6 +84,11 @@ in
       storagePath = mkOption {
         type = types.nullOr types.path;
         default = if cfg.storageBackend == "file" then "/var/lib/vault" else null;
+        defaultText = literalExpression ''
+          if config.${opt.storageBackend} == "file"
+          then "/var/lib/vault"
+          else null
+        '';
         description = "Data directory for file backend";
       };
 
diff --git a/nixos/modules/services/torrent/peerflix.nix b/nixos/modules/services/torrent/peerflix.nix
index 3e5f80960dc7a..821c829f6b4af 100644
--- a/nixos/modules/services/torrent/peerflix.nix
+++ b/nixos/modules/services/torrent/peerflix.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.peerflix;
+  opt = options.services.peerflix;
 
   configFile = pkgs.writeText "peerflix-config.json" ''
     {
@@ -32,6 +33,7 @@ in {
     downloadDir = mkOption {
       description = "Peerflix temporary download directory.";
       default = "${cfg.stateDir}/torrents";
+      defaultText = literalExpression ''"''${config.${opt.stateDir}}/torrents"'';
       type = types.path;
     };
   };
diff --git a/nixos/modules/services/torrent/rtorrent.nix b/nixos/modules/services/torrent/rtorrent.nix
index dd7df623c7391..759dcfe2e6c50 100644
--- a/nixos/modules/services/torrent/rtorrent.nix
+++ b/nixos/modules/services/torrent/rtorrent.nix
@@ -1,10 +1,11 @@
-{ config, pkgs, lib, ... }:
+{ config, options, pkgs, lib, ... }:
 
 with lib;
 
 let
 
   cfg = config.services.rtorrent;
+  opt = options.services.rtorrent;
 
 in {
   options.services.rtorrent = {
@@ -21,6 +22,7 @@ in {
     downloadDir = mkOption {
       type = types.str;
       default = "${cfg.dataDir}/download";
+      defaultText = literalExpression ''"''${config.${opt.dataDir}}/download"'';
       description = ''
         Where to put downloaded files.
       '';
diff --git a/nixos/modules/services/torrent/transmission.nix b/nixos/modules/services/torrent/transmission.nix
index a6ff467914a10..d12d8aa239802 100644
--- a/nixos/modules/services/torrent/transmission.nix
+++ b/nixos/modules/services/torrent/transmission.nix
@@ -4,6 +4,7 @@ with lib;
 
 let
   cfg = config.services.transmission;
+  opt = options.services.transmission;
   inherit (config.environment) etc;
   apparmor = config.security.apparmor;
   rootDir = "/run/transmission";
@@ -47,11 +48,13 @@ in
           options.download-dir = mkOption {
             type = types.path;
             default = "${cfg.home}/${downloadsDir}";
+            defaultText = literalExpression ''"''${config.${opt.home}}/${downloadsDir}"'';
             description = "Directory where to download torrents.";
           };
           options.incomplete-dir = mkOption {
             type = types.path;
             default = "${cfg.home}/${incompleteDir}";
+            defaultText = literalExpression ''"''${config.${opt.home}}/${incompleteDir}"'';
             description = ''
               When enabled with
               services.transmission.home
@@ -67,7 +70,7 @@ in
             description = "";
           };
           options.message-level = mkOption {
-            type = types.ints.between 0 2;
+            type = types.ints.between 0 3;
             default = 2;
             description = "Set verbosity of transmission messages.";
           };
@@ -147,6 +150,7 @@ in
           options.watch-dir = mkOption {
             type = types.path;
             default = "${cfg.home}/${watchDir}";
+            defaultText = literalExpression ''"''${config.${opt.home}}/${watchDir}"'';
             description = "Watch a directory for torrent files and add them to transmission.";
           };
           options.watch-dir-enabled = mkOption {
@@ -167,13 +171,15 @@ in
       };
 
       downloadDirPermissions = mkOption {
-        type = types.str;
-        default = "770";
-        example = "775";
+        type = with types; nullOr str;
+        default = null;
+        example = "770";
         description = ''
-          The permissions set by <literal>systemd.activationScripts.transmission-daemon</literal>
-          on the directories <xref linkend="opt-services.transmission.settings.download-dir"/>
-          and <xref linkend="opt-services.transmission.settings.incomplete-dir"/>.
+          If not <code>null</code>, is used as the permissions
+          set by <literal>systemd.activationScripts.transmission-daemon</literal>
+          on the directories <xref linkend="opt-services.transmission.settings.download-dir"/>,
+          <xref linkend="opt-services.transmission.settings.incomplete-dir"/>.
+          and <xref linkend="opt-services.transmission.settings.watch-dir"/>.
           Note that you may also want to change
           <xref linkend="opt-services.transmission.settings.umask"/>.
         '';
@@ -246,15 +252,17 @@ in
     # when /home/foo is not owned by cfg.user.
     # Note also that using an ExecStartPre= wouldn't work either
     # because BindPaths= needs these directories before.
-    system.activationScripts.transmission-daemon = ''
-      install -d -m 700 '${cfg.home}/${settingsDir}'
-      chown -R '${cfg.user}:${cfg.group}' ${cfg.home}/${settingsDir}
-      install -d -m '${cfg.downloadDirPermissions}' -o '${cfg.user}' -g '${cfg.group}' '${cfg.settings.download-dir}'
-      '' + optionalString cfg.settings.incomplete-dir-enabled ''
-      install -d -m '${cfg.downloadDirPermissions}' -o '${cfg.user}' -g '${cfg.group}' '${cfg.settings.incomplete-dir}'
-      '' + optionalString cfg.settings.watch-dir-enabled ''
-      install -d -m '${cfg.downloadDirPermissions}' -o '${cfg.user}' -g '${cfg.group}' '${cfg.settings.watch-dir}'
-      '';
+    system.activationScripts = mkIf (cfg.downloadDirPermissions != null)
+      { transmission-daemon = ''
+        install -d -m 700 '${cfg.home}/${settingsDir}'
+        chown -R '${cfg.user}:${cfg.group}' ${cfg.home}/${settingsDir}
+        install -d -m '${cfg.downloadDirPermissions}' -o '${cfg.user}' -g '${cfg.group}' '${cfg.settings.download-dir}'
+        '' + optionalString cfg.settings.incomplete-dir-enabled ''
+        install -d -m '${cfg.downloadDirPermissions}' -o '${cfg.user}' -g '${cfg.group}' '${cfg.settings.incomplete-dir}'
+        '' + optionalString cfg.settings.watch-dir-enabled ''
+        install -d -m '${cfg.downloadDirPermissions}' -o '${cfg.user}' -g '${cfg.group}' '${cfg.settings.watch-dir}'
+        '';
+      };
 
     systemd.services.transmission = {
       description = "Transmission BitTorrent Service";
@@ -313,6 +321,14 @@ in
             cfg.settings.script-torrent-done-filename ++
           optional (cfg.settings.watch-dir-enabled && !cfg.settings.trash-original-torrent-files)
             cfg.settings.watch-dir;
+        StateDirectory = [
+          "transmission"
+          "transmission/.config/transmission-daemon"
+          "transmission/.incomplete"
+          "transmission/Downloads"
+          "transmission/watch-dir"
+        ];
+        StateDirectoryMode = mkDefault 750;
         # The following options are only for optimizing:
         # systemd-analyze security transmission
         AmbientCapabilities = "";
diff --git a/nixos/modules/services/video/epgstation/default.nix b/nixos/modules/services/video/epgstation/default.nix
index 36f7b937d5acd..41613dcbb3ba4 100644
--- a/nixos/modules/services/video/epgstation/default.nix
+++ b/nixos/modules/services/video/epgstation/default.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.epgstation;
+  opt = options.services.epgstation;
 
   username = config.users.users.epgstation.name;
   groupname = config.users.users.epgstation.group;
@@ -48,7 +49,7 @@ let
 in
 {
   options.services.epgstation = {
-    enable = mkEnableOption pkgs.epgstation.meta.description;
+    enable = mkEnableOption "EPGStation: DTV Software in Japan";
 
     usePreconfiguredStreaming = mkOption {
       type = types.bool;
@@ -72,6 +73,7 @@ in
     socketioPort = mkOption {
       type = types.port;
       default = cfg.port + 1;
+      defaultText = literalExpression "config.${opt.port} + 1";
       description = ''
         Socket.io port for EPGStation to listen on.
       '';
@@ -80,6 +82,7 @@ in
     clientSocketioPort = mkOption {
       type = types.port;
       default = cfg.socketioPort;
+      defaultText = literalExpression "config.${opt.socketioPort}";
       description = ''
         Socket.io port that the web client is going to connect to. This may be
         different from <option>socketioPort</option> if EPGStation is hidden
@@ -183,6 +186,9 @@ in
         in {
           type = types.str;
           default = "http+unix://${replaceStrings ["/"] ["%2F"] sockPath}";
+          defaultText = literalExpression ''
+            "http+unix://''${replaceStrings ["/"] ["%2F"] config.${options.services.mirakurun.unixSocket}}"
+          '';
           example = "http://localhost:40772";
           description = "URL to connect to Mirakurun.";
         });
diff --git a/nixos/modules/services/video/mirakurun.nix b/nixos/modules/services/video/mirakurun.nix
index 16efb56cfd610..35303b2332c67 100644
--- a/nixos/modules/services/video/mirakurun.nix
+++ b/nixos/modules/services/video/mirakurun.nix
@@ -24,7 +24,7 @@ in
   {
     options = {
       services.mirakurun = {
-        enable = mkEnableOption mirakurun.meta.description;
+        enable = mkEnableOption "the Mirakurun DVR Tuner Server";
 
         port = mkOption {
           type = with types; nullOr port;
diff --git a/nixos/modules/services/video/rtsp-simple-server.nix b/nixos/modules/services/video/rtsp-simple-server.nix
new file mode 100644
index 0000000000000..644b1945a1ecb
--- /dev/null
+++ b/nixos/modules/services/video/rtsp-simple-server.nix
@@ -0,0 +1,80 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.rtsp-simple-server;
+  package = pkgs.rtsp-simple-server;
+  format = pkgs.formats.yaml {};
+in
+{
+  options = {
+    services.rtsp-simple-server = {
+      enable = mkEnableOption "RTSP Simple Server";
+
+      settings = mkOption {
+        description = ''
+          Settings for rtsp-simple-server.
+          Read more at <link xlink:href="https://github.com/aler9/rtsp-simple-server/blob/main/rtsp-simple-server.yml"/>
+        '';
+        type = format.type;
+
+        default = {
+          logLevel = "info";
+          logDestinations = [
+            "stdout"
+          ];
+          # we set this so when the user uses it, it just works (see LogsDirectory below). but it's not used by default.
+          logFile = "/var/log/rtsp-simple-server/rtsp-simple-server.log";
+        };
+
+        example = {
+          paths = {
+            cam = {
+              runOnInit = "ffmpeg -f v4l2 -i /dev/video0 -f rtsp rtsp://localhost:$RTSP_PORT/$RTSP_PATH";
+              runOnInitRestart = true;
+            };
+          };
+        };
+      };
+
+      env = mkOption {
+        type = with types; attrsOf anything;
+        description = "Extra environment variables for RTSP Simple Server";
+        default = {};
+        example = {
+          RTSP_CONFKEY = "mykey";
+        };
+      };
+    };
+  };
+
+  config = mkIf (cfg.enable) {
+    # NOTE: rtsp-simple-server watches this file and automatically reloads if it changes
+    environment.etc."rtsp-simple-server.yaml".source = format.generate "rtsp-simple-server.yaml" cfg.settings;
+
+    systemd.services.rtsp-simple-server = {
+      environment = cfg.env;
+
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+
+      path = with pkgs; [
+        ffmpeg
+      ];
+
+      serviceConfig = {
+        DynamicUser = true;
+        User = "rtsp-simple-server";
+        Group = "rtsp-simple-server";
+
+        LogsDirectory = "rtsp-simple-server";
+
+        # user likely may want to stream cameras, can't hurt to add video group
+        SupplementaryGroups = "video";
+
+        ExecStart = "${package}/bin/rtsp-simple-server /etc/rtsp-simple-server.yaml";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/video/unifi-video.nix b/nixos/modules/services/video/unifi-video.nix
index 17971b23db823..43208a9fe4cfb 100644
--- a/nixos/modules/services/video/unifi-video.nix
+++ b/nixos/modules/services/video/unifi-video.nix
@@ -1,7 +1,8 @@
-{ config, lib, pkgs, utils, ... }:
+{ config, lib, options, pkgs, utils, ... }:
 with lib;
 let
   cfg = config.services.unifi-video;
+  opt = options.services.unifi-video;
   mainClass = "com.ubnt.airvision.Main";
   cmd = ''
     ${pkgs.jsvc}/bin/jsvc \
@@ -164,6 +165,7 @@ in
       pidFile = mkOption {
         type = types.path;
         default = "${cfg.dataDir}/unifi-video.pid";
+        defaultText = literalExpression ''"''${config.${opt.dataDir}}/unifi-video.pid"'';
         description = "Location of unifi-video pid file.";
       };
 
diff --git a/nixos/modules/services/wayland/cage.nix b/nixos/modules/services/wayland/cage.nix
index 273693a3b2fe6..d2bbc4fc057b3 100644
--- a/nixos/modules/services/wayland/cage.nix
+++ b/nixos/modules/services/wayland/cage.nix
@@ -74,6 +74,8 @@ in {
         TTYVTDisallocate = "yes";
         # Fail to start if not controlling the virtual terminal.
         StandardInput = "tty-fail";
+        StandardOutput = "journal";
+        StandardError = "journal";
         # Set up a full (custom) user session for the user, required by Cage.
         PAMName = "cage";
       };
diff --git a/nixos/modules/services/web-apps/discourse.nix b/nixos/modules/services/web-apps/discourse.nix
index c4fb7e2b316f8..2c2911aada3f1 100644
--- a/nixos/modules/services/web-apps/discourse.nix
+++ b/nixos/modules/services/web-apps/discourse.nix
@@ -4,6 +4,7 @@ let
   json = pkgs.formats.json {};
 
   cfg = config.services.discourse;
+  opt = options.services.discourse;
 
   # Keep in sync with https://github.com/discourse/discourse_docker/blob/master/image/base/Dockerfile#L5
   upstreamPostgresqlVersion = lib.getVersion pkgs.postgresql_13;
@@ -327,6 +328,7 @@ in
         useSSL = lib.mkOption {
           type = lib.types.bool;
           default = cfg.redis.host != "localhost";
+          defaultText = lib.literalExpression ''config.${opt.redis.host} != "localhost"'';
           description = ''
             Connect to Redis with SSL.
           '';
@@ -399,6 +401,7 @@ in
           domain = lib.mkOption {
             type = lib.types.str;
             default = cfg.hostname;
+            defaultText = lib.literalExpression "config.${opt.hostname}";
             description = ''
               HELO domain to use for outgoing mail.
             '';
@@ -621,12 +624,13 @@ in
 
       max_user_api_reqs_per_minute = 20;
       max_user_api_reqs_per_day = 2880;
-      max_admin_api_reqs_per_key_per_minute = 60;
+      max_admin_api_reqs_per_minute = 60;
       max_reqs_per_ip_per_minute = 200;
       max_reqs_per_ip_per_10_seconds = 50;
       max_asset_reqs_per_ip_per_10_seconds = 200;
       max_reqs_per_ip_mode = "block";
       max_reqs_rate_limit_on_private = false;
+      skip_per_ip_rate_limit_trust_level = 1;
       force_anonymous_min_queue_seconds = 1;
       force_anonymous_min_per_10_seconds = 3;
       background_requests_max_queue_length = 0.5;
@@ -646,6 +650,9 @@ in
       enable_email_sync_demon = false;
       max_digests_enqueued_per_30_mins_per_site = 10000;
       cluster_name = null;
+      multisite_config_path = "config/multisite.yml";
+      enable_long_polling = null;
+      long_polling_interval = null;
     };
 
     services.redis.enable = lib.mkDefault (cfg.redis.host == "localhost");
@@ -825,7 +832,7 @@ in
 
       appendHttpConfig = ''
         # inactive means we keep stuff around for 1440m minutes regardless of last access (1 week)
-        # levels means it is a 2 deep heirarchy cause we can have lots of files
+        # levels means it is a 2 deep hierarchy cause we can have lots of files
         # max_size limits the size of the cache
         proxy_cache_path /var/cache/nginx inactive=1440m levels=1:2 keys_zone=discourse:10m max_size=600m;
 
@@ -837,7 +844,7 @@ in
         inherit (cfg) sslCertificate sslCertificateKey enableACME;
         forceSSL = lib.mkDefault tlsEnabled;
 
-        root = "/run/discourse/public";
+        root = "${cfg.package}/share/discourse/public";
 
         locations =
           let
@@ -889,7 +896,7 @@ in
               "~ ^/uploads/" = proxy {
                 extraConfig = cache_1y + ''
                   proxy_set_header X-Sendfile-Type X-Accel-Redirect;
-                  proxy_set_header X-Accel-Mapping /run/discourse/public/=/downloads/;
+                  proxy_set_header X-Accel-Mapping ${cfg.package}/share/discourse/public/=/downloads/;
 
                   # custom CSS
                   location ~ /stylesheet-cache/ {
@@ -911,7 +918,7 @@ in
               "~ ^/admin/backups/" = proxy {
                 extraConfig = ''
                   proxy_set_header X-Sendfile-Type X-Accel-Redirect;
-                  proxy_set_header X-Accel-Mapping /run/discourse/public/=/downloads/;
+                  proxy_set_header X-Accel-Mapping ${cfg.package}/share/discourse/public/=/downloads/;
                 '';
               };
               "~ ^/(svg-sprite/|letter_avatar/|letter_avatar_proxy/|user_avatar|highlight-js|stylesheets|theme-javascripts|favicon/proxied|service-worker)" = proxy {
@@ -938,7 +945,7 @@ in
               };
               "/downloads/".extraConfig = ''
                 internal;
-                alias /run/discourse/public/;
+                alias ${cfg.package}/share/discourse/public/;
               '';
             };
       };
diff --git a/nixos/modules/services/web-apps/discourse.xml b/nixos/modules/services/web-apps/discourse.xml
index 184c9c6363e50..ad9b65abf51e0 100644
--- a/nixos/modules/services/web-apps/discourse.xml
+++ b/nixos/modules/services/web-apps/discourse.xml
@@ -25,7 +25,7 @@ services.discourse = {
   };
   <link linkend="opt-services.discourse.secretKeyBaseFile">secretKeyBaseFile</link> = "/path/to/secret_key_base_file";
 };
-<link linkend="opt-security.acme.email">security.acme.email</link> = "me@example.com";
+<link linkend="opt-security.acme.defaults.email">security.acme.email</link> = "me@example.com";
 <link linkend="opt-security.acme.acceptTerms">security.acme.acceptTerms</link> = true;
 </programlisting>
    </para>
@@ -297,7 +297,7 @@ services.discourse = {
       the script:
       <programlisting language="bash">
 ./update.py update-plugins
-</programlisting>.
+</programlisting>
     </para>
 
     <para>
diff --git a/nixos/modules/services/web-apps/dokuwiki.nix b/nixos/modules/services/web-apps/dokuwiki.nix
index fc0e23729b3c4..9b9ae931f9a74 100644
--- a/nixos/modules/services/web-apps/dokuwiki.nix
+++ b/nixos/modules/services/web-apps/dokuwiki.nix
@@ -308,6 +308,9 @@ in
         inherit user;
         group = webserver.group;
 
+        # Not yet compatible with php 8 https://www.dokuwiki.org/requirements
+        # https://github.com/splitbrain/dokuwiki/issues/3545
+        phpPackage = pkgs.php74;
         phpEnv = {
           DOKUWIKI_LOCAL_CONFIG = "${dokuwikiLocalConfig hostName cfg}";
           DOKUWIKI_PLUGINS_LOCAL_CONFIG = "${dokuwikiPluginsLocalConfig hostName cfg}";
@@ -446,5 +449,6 @@ in
   meta.maintainers = with maintainers; [
     _1000101
     onny
+    dandellion
   ];
 }
diff --git a/nixos/modules/services/web-apps/galene.nix b/nixos/modules/services/web-apps/galene.nix
index db9dfeb474995..1d0a620585b0b 100644
--- a/nixos/modules/services/web-apps/galene.nix
+++ b/nixos/modules/services/web-apps/galene.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 let
   cfg = config.services.galene;
+  opt = options.services.galene;
   defaultstateDir = "/var/lib/galene";
   defaultrecordingsDir = "${cfg.stateDir}/recordings";
   defaultgroupsDir = "${cfg.stateDir}/groups";
@@ -88,6 +89,7 @@ in
       recordingsDir = mkOption {
         type = types.str;
         default = defaultrecordingsDir;
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/recordings"'';
         example = "/var/lib/galene/recordings";
         description = "Recordings directory.";
       };
@@ -95,6 +97,7 @@ in
       dataDir = mkOption {
         type = types.str;
         default = defaultdataDir;
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/data"'';
         example = "/var/lib/galene/data";
         description = "Data directory.";
       };
@@ -102,6 +105,7 @@ in
       groupsDir = mkOption {
         type = types.str;
         default = defaultgroupsDir;
+        defaultText = literalExpression ''"''${config.${opt.stateDir}}/groups"'';
         example = "/var/lib/galene/groups";
         description = "Web server directory.";
       };
diff --git a/nixos/modules/services/web-apps/hedgedoc.nix b/nixos/modules/services/web-apps/hedgedoc.nix
index e0c00fe67ea32..9eeabb9d5662b 100644
--- a/nixos/modules/services/web-apps/hedgedoc.nix
+++ b/nixos/modules/services/web-apps/hedgedoc.nix
@@ -33,7 +33,7 @@ in
       type = types.listOf types.str;
       default = [];
       description = ''
-        Groups to which the user ${name} should be added.
+        Groups to which the service user should be added.
       '';
     };
 
diff --git a/nixos/modules/services/web-apps/ihatemoney/default.nix b/nixos/modules/services/web-apps/ihatemoney/default.nix
index 238241854c1ce..ad314c885ba8d 100644
--- a/nixos/modules/services/web-apps/ihatemoney/default.nix
+++ b/nixos/modules/services/web-apps/ihatemoney/default.nix
@@ -79,6 +79,7 @@ in
         email = mkOption {
           type = types.str;
           default = "ihatemoney@${config.networking.hostName}";
+          defaultText = literalExpression ''"ihatemoney@''${config.networking.hostName}"'';
           description = "The email of the sender of ihatemoney emails";
         };
       };
diff --git a/nixos/modules/services/web-apps/invidious.nix b/nixos/modules/services/web-apps/invidious.nix
index 7fb826af5835e..10b30bf1fd1d7 100644
--- a/nixos/modules/services/web-apps/invidious.nix
+++ b/nixos/modules/services/web-apps/invidious.nix
@@ -11,7 +11,7 @@ let
     systemd.services.invidious = {
       description = "Invidious (An alternative YouTube front-end)";
       wants = [ "network-online.target" ];
-      after = [ "syslog.target" "network-online.target" ];
+      after = [ "network-online.target" ];
       wantedBy = [ "multi-user.target" ];
 
       script =
@@ -225,6 +225,7 @@ in
       port = lib.mkOption {
         type = types.port;
         default = options.services.postgresql.port.default;
+        defaultText = lib.literalExpression "options.services.postgresql.port.default";
         description = ''
           The port of the database Invidious should use.
 
diff --git a/nixos/modules/services/web-apps/jitsi-meet.xml b/nixos/modules/services/web-apps/jitsi-meet.xml
index 97373bc6d9a87..ff44c724adf44 100644
--- a/nixos/modules/services/web-apps/jitsi-meet.xml
+++ b/nixos/modules/services/web-apps/jitsi-meet.xml
@@ -20,7 +20,7 @@
   };
   <link linkend="opt-services.jitsi-videobridge.openFirewall">services.jitsi-videobridge.openFirewall</link> = true;
   <link linkend="opt-networking.firewall.allowedTCPPorts">networking.firewall.allowedTCPPorts</link> = [ 80 443 ];
-  <link linkend="opt-security.acme.email">security.acme.email</link> = "me@example.com";
+  <link linkend="opt-security.acme.defaults.email">security.acme.email</link> = "me@example.com";
   <link linkend="opt-security.acme.acceptTerms">security.acme.acceptTerms</link> = true;
 }</programlisting>
    </para>
@@ -46,7 +46,7 @@
   };
   <link linkend="opt-services.jitsi-videobridge.openFirewall">services.jitsi-videobridge.openFirewall</link> = true;
   <link linkend="opt-networking.firewall.allowedTCPPorts">networking.firewall.allowedTCPPorts</link> = [ 80 443 ];
-  <link linkend="opt-security.acme.email">security.acme.email</link> = "me@example.com";
+  <link linkend="opt-security.acme.defaults.email">security.acme.email</link> = "me@example.com";
   <link linkend="opt-security.acme.acceptTerms">security.acme.acceptTerms</link> = true;
 }</programlisting>
    </para>
diff --git a/nixos/modules/services/web-apps/keycloak.nix b/nixos/modules/services/web-apps/keycloak.nix
index df8c7114102fd..e08f6dcabd2f5 100644
--- a/nixos/modules/services/web-apps/keycloak.nix
+++ b/nixos/modules/services/web-apps/keycloak.nix
@@ -1,7 +1,8 @@
-{ config, pkgs, lib, ... }:
+{ config, options, pkgs, lib, ... }:
 
 let
   cfg = config.services.keycloak;
+  opt = options.services.keycloak;
 in
 {
   options.services.keycloak = {
@@ -139,6 +140,7 @@ in
           lib.mkOption {
             type = lib.types.port;
             default = dbPorts.${cfg.database.type};
+            defaultText = lib.literalDocBook "default port of selected database";
             description = ''
               Port of the database to connect to.
             '';
@@ -147,6 +149,7 @@ in
       useSSL = lib.mkOption {
         type = lib.types.bool;
         default = cfg.database.host != "localhost";
+        defaultText = lib.literalExpression ''config.${opt.database.host} != "localhost"'';
         description = ''
           Whether the database connection should be secured by SSL /
           TLS.
diff --git a/nixos/modules/services/web-apps/matomo.nix b/nixos/modules/services/web-apps/matomo.nix
index eba55e7e9befa..8a0ca33b51f03 100644
--- a/nixos/modules/services/web-apps/matomo.nix
+++ b/nixos/modules/services/web-apps/matomo.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 with lib;
 let
   cfg = config.services.matomo;
@@ -12,10 +12,7 @@ let
   phpExecutionUnit = "phpfpm-${pool}";
   databaseService = "mysql.service";
 
-  fqdn =
-    let
-      join = hostName: domain: hostName + optionalString (domain != null) ".${domain}";
-     in join config.networking.hostName config.networking.domain;
+  fqdn = if config.networking.domain != null then config.networking.fqdn else config.networking.hostName;
 
 in {
   imports = [
@@ -81,9 +78,14 @@ in {
       hostname = mkOption {
         type = types.str;
         default = "${user}.${fqdn}";
+        defaultText = literalExpression ''
+          if config.${options.networking.domain} != null
+          then "${user}.''${config.${options.networking.fqdn}}"
+          else "${user}.''${config.${options.networking.hostName}}"
+        '';
         example = "matomo.yourdomain.org";
         description = ''
-          URL of the host, without https prefix. By default, this is ${user}.${fqdn}, but you may want to change it if you
+          URL of the host, without https prefix. You may want to change it if you
           run Matomo on a different URL than matomo.yourdomain.
         '';
       };
diff --git a/nixos/modules/services/web-apps/moodle.nix b/nixos/modules/services/web-apps/moodle.nix
index 6f5cfa2e34815..19f3e754691e0 100644
--- a/nixos/modules/services/web-apps/moodle.nix
+++ b/nixos/modules/services/web-apps/moodle.nix
@@ -57,7 +57,7 @@ let
   pgsqlLocal = cfg.database.createLocally && cfg.database.type == "pgsql";
 
   phpExt = pkgs.php74.withExtensions
-        ({ enabled, all }: with all; [ iconv mbstring curl openssl tokenizer xmlrpc soap ctype zip gd simplexml dom  intl json sqlite3 pgsql pdo_sqlite pdo_pgsql pdo_odbc pdo_mysql pdo mysqli session zlib xmlreader fileinfo filter ]);
+        ({ enabled, all }: with all; [ iconv mbstring curl openssl tokenizer xmlrpc soap ctype zip gd simplexml dom  intl json sqlite3 pgsql pdo_sqlite pdo_pgsql pdo_odbc pdo_mysql pdo mysqli session zlib xmlreader fileinfo filter opcache ]);
 in
 {
   # interface
diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix
index 04ec7888950d5..6692d67081c5a 100644
--- a/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -153,7 +153,7 @@ in {
     package = mkOption {
       type = types.package;
       description = "Which package to use for the Nextcloud instance.";
-      relatedPackages = [ "nextcloud21" "nextcloud22" ];
+      relatedPackages = [ "nextcloud21" "nextcloud22" "nextcloud23" ];
     };
     phpPackage = mkOption {
       type = types.package;
@@ -499,6 +499,7 @@ in {
     occ = mkOption {
       type = types.package;
       default = occ;
+      defaultText = literalDocBook "generated script";
       internal = true;
       description = ''
         The nextcloud-occ program preconfigured to target this Nextcloud instance.
@@ -508,7 +509,7 @@ in {
 
   config = mkIf cfg.enable (mkMerge [
     { warnings = let
-        latest = 22;
+        latest = 23;
         upgradeWarning = major: nixos:
           ''
             A legacy Nextcloud install (from before NixOS ${nixos}) may be installed.
@@ -526,8 +527,8 @@ in {
         # FIXME(@Ma27) remove as soon as nextcloud properly supports
         # mariadb >=10.6.
         isUnsupportedMariadb =
-          # All currently supported Nextcloud versions are affected.
-          (versionOlder cfg.package.version "23")
+          # All currently supported Nextcloud versions are affected (https://github.com/nextcloud/server/issues/25436).
+          (versionOlder cfg.package.version "24")
           # This module uses mysql
           && (cfg.config.dbtype == "mysql")
           # MySQL is managed via NixOS
@@ -543,6 +544,7 @@ in {
         '')
         ++ (optional (versionOlder cfg.package.version "21") (upgradeWarning 20 "21.05"))
         ++ (optional (versionOlder cfg.package.version "22") (upgradeWarning 21 "21.11"))
+        ++ (optional (versionOlder cfg.package.version "23") (upgradeWarning 22 "22.05"))
         ++ (optional isUnsupportedMariadb ''
             You seem to be using MariaDB at an unsupported version (i.e. at least 10.6)!
             Please note that this isn't supported officially by Nextcloud. You can either
@@ -573,7 +575,8 @@ in {
           # nextcloud20 throws an eval-error because it's dropped).
           else if versionOlder stateVersion "21.03" then nextcloud20
           else if versionOlder stateVersion "21.11" then nextcloud21
-          else nextcloud22
+          else if versionOlder stateVersion "22.05" then nextcloud22
+          else nextcloud23
         );
 
       services.nextcloud.datadir = mkOptionDefault config.services.nextcloud.home;
diff --git a/nixos/modules/services/web-apps/nextcloud.xml b/nixos/modules/services/web-apps/nextcloud.xml
index 9d9cb8dfb3f28..8f55086a2bd1f 100644
--- a/nixos/modules/services/web-apps/nextcloud.xml
+++ b/nixos/modules/services/web-apps/nextcloud.xml
@@ -11,7 +11,7 @@
   desktop client is packaged at <literal>pkgs.nextcloud-client</literal>.
  </para>
  <para>
-  The current default by NixOS is <package>nextcloud22</package> which is also the latest
+  The current default by NixOS is <package>nextcloud23</package> which is also the latest
   major version available.
  </para>
  <section xml:id="module-services-nextcloud-basic-usage">
diff --git a/nixos/modules/services/web-apps/openwebrx.nix b/nixos/modules/services/web-apps/openwebrx.nix
index 51005cd1e4972..9e90c01e0bbb0 100644
--- a/nixos/modules/services/web-apps/openwebrx.nix
+++ b/nixos/modules/services/web-apps/openwebrx.nix
@@ -9,6 +9,7 @@ in
     package = mkOption {
       type = types.package;
       default = pkgs.openwebrx;
+      defaultText = literalExpression "pkgs.openwebrx";
       description = "OpenWebRX package to use for the service";
     };
   };
diff --git a/nixos/modules/services/web-apps/peertube.nix b/nixos/modules/services/web-apps/peertube.nix
index 362a3358b7930..a65428018260d 100644
--- a/nixos/modules/services/web-apps/peertube.nix
+++ b/nixos/modules/services/web-apps/peertube.nix
@@ -1,7 +1,8 @@
-{ lib, pkgs, config, ... }:
+{ lib, pkgs, config, options, ... }:
 
 let
   cfg = config.services.peertube;
+  opt = options.services.peertube;
 
   settingsFormat = pkgs.formats.json {};
   configFile = settingsFormat.generate "production.json" cfg.settings;
@@ -153,6 +154,11 @@ in {
       host = lib.mkOption {
         type = lib.types.str;
         default = if cfg.database.createLocally then "/run/postgresql" else null;
+        defaultText = lib.literalExpression ''
+          if config.${opt.database.createLocally}
+          then "/run/postgresql"
+          else null
+        '';
         example = "192.168.15.47";
         description = "Database host address or unix socket.";
       };
@@ -193,12 +199,22 @@ in {
       host = lib.mkOption {
         type = lib.types.nullOr lib.types.str;
         default = if cfg.redis.createLocally && !cfg.redis.enableUnixSocket then "127.0.0.1" else null;
+        defaultText = lib.literalExpression ''
+          if config.${opt.redis.createLocally} && !config.${opt.redis.enableUnixSocket}
+          then "127.0.0.1"
+          else null
+        '';
         description = "Redis host.";
       };
 
       port = lib.mkOption {
         type = lib.types.nullOr lib.types.port;
         default = if cfg.redis.createLocally && cfg.redis.enableUnixSocket then null else 6379;
+        defaultText = lib.literalExpression ''
+          if config.${opt.redis.createLocally} && config.${opt.redis.enableUnixSocket}
+          then null
+          else 6379
+        '';
         description = "Redis port.";
       };
 
@@ -212,6 +228,7 @@ in {
       enableUnixSocket = lib.mkOption {
         type = lib.types.bool;
         default = cfg.redis.createLocally;
+        defaultText = lib.literalExpression "config.${opt.redis.createLocally}";
         description = "Use Unix socket.";
       };
     };
@@ -234,6 +251,7 @@ in {
     package = lib.mkOption {
       type = lib.types.package;
       default = pkgs.peertube;
+      defaultText = lib.literalExpression "pkgs.peertube";
       description = "Peertube package to use.";
     };
   };
diff --git a/nixos/modules/services/web-apps/pgpkeyserver-lite.nix b/nixos/modules/services/web-apps/pgpkeyserver-lite.nix
index 5642627d397df..faf0ce13238e4 100644
--- a/nixos/modules/services/web-apps/pgpkeyserver-lite.nix
+++ b/nixos/modules/services/web-apps/pgpkeyserver-lite.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
@@ -6,6 +6,7 @@ let
 
   cfg = config.services.pgpkeyserver-lite;
   sksCfg = config.services.sks;
+  sksOpt = options.services.sks;
 
   webPkg = cfg.package;
 
@@ -37,6 +38,7 @@ in
 
       hkpAddress = mkOption {
         default = builtins.head sksCfg.hkpAddress;
+        defaultText = literalExpression "head config.${sksOpt.hkpAddress}";
         type = types.str;
         description = "
           Wich ip address the sks-keyserver is listening on.
@@ -45,6 +47,7 @@ in
 
       hkpPort = mkOption {
         default = sksCfg.hkpPort;
+        defaultText = literalExpression "config.${sksOpt.hkpPort}";
         type = types.int;
         description = "
           Which port the sks-keyserver is listening on.
diff --git a/nixos/modules/services/web-apps/powerdns-admin.nix b/nixos/modules/services/web-apps/powerdns-admin.nix
new file mode 100644
index 0000000000000..ce99b606c318c
--- /dev/null
+++ b/nixos/modules/services/web-apps/powerdns-admin.nix
@@ -0,0 +1,149 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.powerdns-admin;
+
+  configText = ''
+    ${cfg.config}
+  ''
+  + optionalString (cfg.secretKeyFile != null) ''
+    with open('${cfg.secretKeyFile}') as file:
+      SECRET_KEY = file.read()
+  ''
+  + optionalString (cfg.saltFile != null) ''
+    with open('${cfg.saltFile}') as file:
+      SALT = file.read()
+  '';
+in
+{
+  options.services.powerdns-admin = {
+    enable = mkEnableOption "the PowerDNS web interface";
+
+    extraArgs = mkOption {
+      type = types.listOf types.str;
+      default = [ ];
+      example = literalExpression ''
+        [ "-b" "127.0.0.1:8000" ]
+      '';
+      description = ''
+        Extra arguments passed to powerdns-admin.
+      '';
+    };
+
+    config = mkOption {
+      type = types.str;
+      default = "";
+      example = ''
+        BIND_ADDRESS = '127.0.0.1'
+        PORT = 8000
+        SQLALCHEMY_DATABASE_URI = 'postgresql://powerdnsadmin@/powerdnsadmin?host=/run/postgresql'
+      '';
+      description = ''
+        Configuration python file.
+        See <link xlink:href="https://github.com/ngoduykhanh/PowerDNS-Admin/blob/v${pkgs.powerdns-admin.version}/configs/development.py">the example configuration</link>
+        for options.
+      '';
+    };
+
+    secretKeyFile = mkOption {
+      type = types.nullOr types.path;
+      example = "/etc/powerdns-admin/secret";
+      description = ''
+        The secret used to create cookies.
+        This needs to be set, otherwise the default is used and everyone can forge valid login cookies.
+        Set this to null to ignore this setting and configure it through another way.
+      '';
+    };
+
+    saltFile = mkOption {
+      type = types.nullOr types.path;
+      example = "/etc/powerdns-admin/salt";
+      description = ''
+        The salt used for serialization.
+        This should be set, otherwise the default is used.
+        Set this to null to ignore this setting and configure it through another way.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.powerdns-admin = {
+      description = "PowerDNS web interface";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "networking.target" ];
+
+      environment.FLASK_CONF = builtins.toFile "powerdns-admin-config.py" configText;
+      environment.PYTHONPATH = pkgs.powerdns-admin.pythonPath;
+      serviceConfig = {
+        ExecStart = "${pkgs.powerdns-admin}/bin/powerdns-admin --pid /run/powerdns-admin/pid ${escapeShellArgs cfg.extraArgs}";
+        ExecStartPre = "${pkgs.coreutils}/bin/env FLASK_APP=${pkgs.powerdns-admin}/share/powerdnsadmin/__init__.py ${pkgs.python3Packages.flask}/bin/flask db upgrade -d ${pkgs.powerdns-admin}/share/migrations";
+        ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+        ExecStop = "${pkgs.coreutils}/bin/kill -TERM $MAINPID";
+        PIDFile = "/run/powerdns-admin/pid";
+        RuntimeDirectory = "powerdns-admin";
+        User = "powerdnsadmin";
+        Group = "powerdnsadmin";
+
+        AmbientCapabilities = "CAP_NET_BIND_SERVICE";
+        BindReadOnlyPaths = [
+          "/nix/store"
+          "-/etc/resolv.conf"
+          "-/etc/nsswitch.conf"
+          "-/etc/hosts"
+          "-/etc/localtime"
+        ]
+        ++ (optional (cfg.secretKeyFile != null) cfg.secretKeyFile)
+        ++ (optional (cfg.saltFile != null) cfg.saltFile);
+        CapabilityBoundingSet = "CAP_NET_BIND_SERVICE";
+        # ProtectClock= adds DeviceAllow=char-rtc r
+        DeviceAllow = "";
+        # Implies ProtectSystem=strict, which re-mounts all paths
+        #DynamicUser = true;
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateMounts = true;
+        # Needs to start a server
+        #PrivateNetwork = true;
+        PrivateTmp = true;
+        PrivateUsers = true;
+        ProcSubset = "pid";
+        ProtectClock = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        # Would re-mount paths ignored by temporary root
+        #ProtectSystem = "strict";
+        ProtectControlGroups = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "invisible";
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SystemCallArchitectures = "native";
+        # gunicorn needs setuid
+        SystemCallFilter = [
+          "@system-service"
+          "~@privileged @resources @keyring"
+          # These got removed by the line above but are needed
+          "@setuid @chown"
+        ];
+        TemporaryFileSystem = "/:ro";
+        # Does not work well with the temporary root
+        #UMask = "0066";
+      };
+    };
+
+    users.groups.powerdnsadmin = { };
+    users.users.powerdnsadmin = {
+      description = "PowerDNS web interface user";
+      isSystemUser = true;
+      group = "powerdnsadmin";
+    };
+  };
+}
diff --git a/nixos/modules/services/web-apps/tt-rss.nix b/nixos/modules/services/web-apps/tt-rss.nix
index 08356cee1dfe7..9aa38ab25c9a3 100644
--- a/nixos/modules/services/web-apps/tt-rss.nix
+++ b/nixos/modules/services/web-apps/tt-rss.nix
@@ -18,11 +18,11 @@ let
   tt-rss-config = let
     password =
       if (cfg.database.password != null) then
-        "${(escape ["'" "\\"] cfg.database.password)}"
+        "'${(escape ["'" "\\"] cfg.database.password)}'"
       else if (cfg.database.passwordFile != null) then
-        "file_get_contents('${cfg.database.passwordFile}'"
+        "file_get_contents('${cfg.database.passwordFile}')"
       else
-        ""
+        null
       ;
   in pkgs.writeText "config.php" ''
     <?php
@@ -40,7 +40,7 @@ let
       putenv('TTRSS_DB_HOST=${optionalString (cfg.database.host != null) cfg.database.host}');
       putenv('TTRSS_DB_USER=${cfg.database.user}');
       putenv('TTRSS_DB_NAME=${cfg.database.name}');
-      putenv('TTRSS_DB_PASS=${password}');
+      putenv('TTRSS_DB_PASS=' ${optionalString (password != null) ". ${password}"});
       putenv('TTRSS_DB_PORT=${toString dbPort}');
 
       putenv('TTRSS_AUTH_AUTO_CREATE=${boolToString cfg.auth.autoCreate}');
diff --git a/nixos/modules/services/web-apps/youtrack.nix b/nixos/modules/services/web-apps/youtrack.nix
index 7a70ae6cd5238..b83265ffeab6c 100644
--- a/nixos/modules/services/web-apps/youtrack.nix
+++ b/nixos/modules/services/web-apps/youtrack.nix
@@ -128,6 +128,7 @@ in
         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}'';
       };
     };
diff --git a/nixos/modules/services/web-apps/zabbix.nix b/nixos/modules/services/web-apps/zabbix.nix
index ff50b95254f90..538dac0d5be22 100644
--- a/nixos/modules/services/web-apps/zabbix.nix
+++ b/nixos/modules/services/web-apps/zabbix.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 let
 
@@ -6,6 +6,7 @@ let
   inherit (lib) literalExpression mapAttrs optionalString versionAtLeast;
 
   cfg = config.services.zabbixWeb;
+  opt = options.services.zabbixWeb;
   fpm = config.services.phpfpm.pools.zabbix;
 
   user = "zabbix";
@@ -82,6 +83,11 @@ in
             if cfg.database.type == "mysql" then config.services.mysql.port
             else if cfg.database.type == "pgsql" then config.services.postgresql.port
             else 1521;
+          defaultText = literalExpression ''
+            if config.${opt.database.type} == "mysql" then config.${options.services.mysql.port}
+            else if config.${opt.database.type} == "pgsql" then config.${options.services.postgresql.port}
+            else 1521
+          '';
           description = "Database host port.";
         };
 
diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix
index 992a58875e435..1a49b4ca15c7c 100644
--- a/nixos/modules/services/web-servers/apache-httpd/default.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/default.nix
@@ -154,7 +154,7 @@ let
       sslServerKey = if useACME then "${sslCertDir}/key.pem" else hostOpts.sslServerKey;
       sslServerChain = if useACME then "${sslCertDir}/chain.pem" else hostOpts.sslServerChain;
 
-      acmeChallenge = optionalString useACME ''
+      acmeChallenge = optionalString (useACME && hostOpts.acmeRoot != null) ''
         Alias /.well-known/acme-challenge/ "${hostOpts.acmeRoot}/.well-known/acme-challenge/"
         <Directory "${hostOpts.acmeRoot}">
             AllowOverride None
@@ -677,9 +677,16 @@ in
     };
 
     security.acme.certs = let
-      acmePairs = map (hostOpts: nameValuePair hostOpts.hostName {
+      acmePairs = map (hostOpts: let
+        hasRoot = hostOpts.acmeRoot != null;
+      in nameValuePair hostOpts.hostName {
         group = mkDefault cfg.group;
-        webroot = hostOpts.acmeRoot;
+        # if acmeRoot is null inherit config.security.acme
+        # Since config.security.acme.certs.<cert>.webroot's own default value
+        # should take precedence set priority higher than mkOptionDefault
+        webroot = mkOverride (if hasRoot then 1000 else 2000) hostOpts.acmeRoot;
+        # Also nudge dnsProvider to null in case it is inherited
+        dnsProvider = mkOverride (if hasRoot then 1000 else 2000) null;
         extraDomainNames = hostOpts.serverAliases;
         # Use the vhost-specific email address if provided, otherwise let
         # security.acme.email or security.acme.certs.<cert>.email be used.
diff --git a/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix b/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix
index 8bb7e91ec9cdb..c52ab2c596e01 100644
--- a/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/vhost-options.nix
@@ -128,9 +128,12 @@ in
     };
 
     acmeRoot = mkOption {
-      type = types.str;
+      type = types.nullOr types.str;
       default = "/var/lib/acme/acme-challenge";
-      description = "Directory for the acme challenge which is PUBLIC, don't put certs or keys in here";
+      description = ''
+        Directory for the acme challenge which is PUBLIC, don't put certs or keys in here.
+        Set to null to inherit from config.security.acme.
+      '';
     };
 
     sslServerCert = mkOption {
diff --git a/nixos/modules/services/web-servers/caddy/default.nix b/nixos/modules/services/web-servers/caddy/default.nix
index cef27e2e59f3f..d51effa31c975 100644
--- a/nixos/modules/services/web-servers/caddy/default.nix
+++ b/nixos/modules/services/web-servers/caddy/default.nix
@@ -4,111 +4,159 @@ with lib;
 
 let
   cfg = config.services.caddy;
-  vhostToConfig = vhostName: vhostAttrs: ''
-    ${vhostName} ${builtins.concatStringsSep " " vhostAttrs.serverAliases} {
-      ${vhostAttrs.extraConfig}
-    }
-  '';
-  configFile = pkgs.writeText "Caddyfile" (builtins.concatStringsSep "\n"
-    ([ cfg.config ] ++ (mapAttrsToList vhostToConfig cfg.virtualHosts)));
-
-  formattedConfig = pkgs.runCommand "formattedCaddyFile" { } ''
-    ${cfg.package}/bin/caddy fmt ${configFile} > $out
-  '';
-
-  tlsConfig = {
-    apps.tls.automation.policies = [{
-      issuers = [{
-        inherit (cfg) ca email;
-        module = "acme";
-      }];
-    }];
-  };
 
-  adaptedConfig = pkgs.runCommand "caddy-config-adapted.json" { } ''
-    ${cfg.package}/bin/caddy adapt \
-      --config ${formattedConfig} --adapter ${cfg.adapter} > $out
-  '';
-  tlsJSON = pkgs.writeText "tls.json" (builtins.toJSON tlsConfig);
-
-  # merge the TLS config options we expose with the ones originating in the Caddyfile
-  configJSON =
-    if cfg.ca != null then
-      let tlsConfigMerge = ''
-        {"apps":
-          {"tls":
-            {"automation":
-              {"policies":
-                (if .[0].apps.tls.automation.policies == .[1]?.apps.tls.automation.policies
-                 then .[0].apps.tls.automation.policies
-                 else (.[0].apps.tls.automation.policies + .[1]?.apps.tls.automation.policies)
-                 end)
-              }
-            }
-          }
-        }'';
-      in
-      pkgs.runCommand "caddy-config.json" { } ''
-        ${pkgs.jq}/bin/jq -s '.[0] * ${tlsConfigMerge}' ${adaptedConfig} ${tlsJSON} > $out
+  virtualHosts = attrValues cfg.virtualHosts;
+  acmeVHosts = filter (hostOpts: hostOpts.useACMEHost != null) virtualHosts;
+
+  mkVHostConf = hostOpts:
+    let
+      sslCertDir = config.security.acme.certs.${hostOpts.useACMEHost}.directory;
+    in
       ''
-    else
-      adaptedConfig;
+        ${hostOpts.hostName} ${concatStringsSep " " hostOpts.serverAliases} {
+          bind ${concatStringsSep " " hostOpts.listenAddresses}
+          ${optionalString (hostOpts.useACMEHost != null) "tls ${sslCertDir}/cert.pem ${sslCertDir}/key.pem"}
+          log {
+            ${hostOpts.logFormat}
+          }
+
+          ${hostOpts.extraConfig}
+        }
+      '';
+
+  configFile =
+    let
+      Caddyfile = pkgs.writeText "Caddyfile" ''
+        {
+          ${optionalString (cfg.email != null) "email ${cfg.email}"}
+          ${optionalString (cfg.acmeCA != null) "acme_ca ${cfg.acmeCA}"}
+          log {
+            ${cfg.logFormat}
+          }
+        }
+        ${cfg.extraConfig}
+      '';
+
+      Caddyfile-formatted = pkgs.runCommand "Caddyfile-formatted" { nativeBuildInputs = [ cfg.package ]; } ''
+        ${cfg.package}/bin/caddy fmt ${Caddyfile} > $out
+      '';
+    in
+      if pkgs.stdenv.buildPlatform == pkgs.stdenv.hostPlatform then Caddyfile-formatted else Caddyfile;
 in
 {
   imports = [
     (mkRemovedOptionModule [ "services" "caddy" "agree" ] "this option is no longer necessary for Caddy 2")
+    (mkRenamedOptionModule [ "services" "caddy" "ca" ] [ "services" "caddy" "acmeCA" ])
+    (mkRenamedOptionModule [ "services" "caddy" "config" ] [ "services" "caddy" "extraConfig" ])
   ];
 
+  # interface
   options.services.caddy = {
     enable = mkEnableOption "Caddy web server";
 
-    config = mkOption {
-      default = "";
-      example = ''
-        example.com {
-          encode gzip
-          log
-          root /srv/http
-        }
+    user = mkOption {
+      default = "caddy";
+      type = types.str;
+      description = ''
+        User account under which caddy runs.
+
+        <note><para>
+          If left as the default value this user will automatically be created
+          on system activation, otherwise you are responsible for
+          ensuring the user exists before the Caddy service starts.
+        </para></note>
       '';
-      type = types.lines;
+    };
+
+    group = mkOption {
+      default = "caddy";
+      type = types.str;
       description = ''
-        Verbatim Caddyfile to use.
-        Caddy v2 supports multiple config formats via adapters (see <option>services.caddy.adapter</option>).
+        Group account under which caddy runs.
+
+        <note><para>
+          If left as the default value this user will automatically be created
+          on system activation, otherwise you are responsible for
+          ensuring the user exists before the Caddy service starts.
+        </para></note>
       '';
     };
 
-    virtualHosts = mkOption {
-      type = types.attrsOf (types.submodule (import ./vhost-options.nix {
-        inherit config lib;
-      }));
-      default = { };
-      example = literalExpression ''
-        {
-          "hydra.example.com" = {
-            serverAliases = [ "www.hydra.example.com" ];
-            extraConfig = ''''''
-              encode gzip
-              log
-              root /srv/http
-            '''''';
-          };
-        };
+    package = mkOption {
+      default = pkgs.caddy;
+      defaultText = literalExpression "pkgs.caddy";
+      type = types.package;
+      description = ''
+        Caddy package to use.
       '';
-      description = "Declarative vhost config";
     };
 
+    dataDir = mkOption {
+      type = types.path;
+      default = "/var/lib/caddy";
+      description = ''
+        The data directory for caddy.
 
-    user = mkOption {
-      default = "caddy";
-      type = types.str;
-      description = "User account under which caddy runs.";
+        <note>
+          <para>
+            If left as the default value this directory will automatically be created
+            before the Caddy server starts, otherwise you are responsible for ensuring
+            the directory exists with appropriate ownership and permissions.
+          </para>
+          <para>
+            Caddy v2 replaced <literal>CADDYPATH</literal> with XDG directories.
+            See <link xlink:href="https://caddyserver.com/docs/conventions#file-locations"/>.
+          </para>
+        </note>
+      '';
     };
 
-    group = mkOption {
-      default = "caddy";
-      type = types.str;
-      description = "Group account under which caddy runs.";
+    logDir = mkOption {
+      type = types.path;
+      default = "/var/log/caddy";
+      description = ''
+        Directory for storing Caddy access logs.
+
+        <note><para>
+          If left as the default value this directory will automatically be created
+          before the Caddy server starts, otherwise the sysadmin is responsible for
+          ensuring the directory exists with appropriate ownership and permissions.
+        </para></note>
+      '';
+    };
+
+    logFormat = mkOption {
+      type = types.lines;
+      default = ''
+        level ERROR
+      '';
+      example = literalExpression ''
+        mkForce "level INFO";
+      '';
+      description = ''
+        Configuration for the default logger. See
+        <link xlink:href="https://caddyserver.com/docs/caddyfile/options#log"/>
+        for details.
+      '';
+    };
+
+    configFile = mkOption {
+      type = types.path;
+      default = configFile;
+      defaultText = "A Caddyfile automatically generated by values from services.caddy.*";
+      example = literalExpression ''
+        pkgs.writeText "Caddyfile" '''
+          example.com
+
+          root * /var/www/wordpress
+          php_fastcgi unix//run/php/php-version-fpm.sock
+          file_server
+        ''';
+      '';
+      description = ''
+        Override the configuration file used by Caddy. By default,
+        NixOS generates one automatically.
+      '';
     };
 
     adapter = mkOption {
@@ -117,7 +165,13 @@ in
       type = types.str;
       description = ''
         Name of the config adapter to use.
-        See https://caddyserver.com/docs/config-adapters for the full list.
+        See <link xlink:href="https://caddyserver.com/docs/config-adapters"/>
+        for the full list.
+
+        <note><para>
+          Any value other than <literal>caddyfile</literal> is only valid when
+          providing your own <option>configFile</option>.
+        </para></note>
       '';
     };
 
@@ -125,80 +179,110 @@ in
       default = false;
       type = types.bool;
       description = ''
-        Use saved config, if any (and prefer over configuration passed with <option>services.caddy.config</option>).
+        Use saved config, if any (and prefer over any specified configuration passed with <literal>--config</literal>).
       '';
     };
 
-    ca = mkOption {
-      default = "https://acme-v02.api.letsencrypt.org/directory";
-      example = "https://acme-staging-v02.api.letsencrypt.org/directory";
-      type = types.nullOr types.str;
+    extraConfig = mkOption {
+      type = types.lines;
+      default = "";
+      example = ''
+        example.com {
+          encode gzip
+          log
+          root /srv/http
+        }
+      '';
       description = ''
-        Certificate authority ACME server. The default (Let's Encrypt
-        production server) should be fine for most people. Set it to null if
-        you don't want to include any authority (or if you want to write a more
-        fine-graned configuration manually)
+        Additional lines of configuration appended to the automatically
+        generated <literal>Caddyfile</literal>.
       '';
     };
 
-    email = mkOption {
-      default = "";
-      type = types.str;
-      description = "Email address (for Let's Encrypt certificate)";
+    virtualHosts = mkOption {
+      type = with types; attrsOf (submodule (import ./vhost-options.nix { inherit cfg; }));
+      default = {};
+      example = literalExpression ''
+        {
+          "hydra.example.com" = {
+            serverAliases = [ "www.hydra.example.com" ];
+            extraConfig = '''
+              encode gzip
+              root /srv/http
+            ''';
+          };
+        };
+      '';
+      description = ''
+        Declarative specification of virtual hosts served by Caddy.
+      '';
     };
 
-    dataDir = mkOption {
-      default = "/var/lib/caddy";
-      type = types.path;
+    acmeCA = mkOption {
+      default = "https://acme-v02.api.letsencrypt.org/directory";
+      example = "https://acme-staging-v02.api.letsencrypt.org/directory";
+      type = with types; nullOr str;
       description = ''
-        The data directory, for storing certificates. Before 17.09, this
-        would create a .caddy directory. With 17.09 the contents of the
-        .caddy directory are in the specified data directory instead.
+        The URL to the ACME CA's directory. It is strongly recommended to set
+        this to Let's Encrypt's staging endpoint for testing or development.
 
-        Caddy v2 replaced CADDYPATH with XDG directories.
-        See https://caddyserver.com/docs/conventions#file-locations.
+        Set it to <literal>null</literal> if you want to write a more
+        fine-grained configuration manually.
       '';
     };
 
-    package = mkOption {
-      default = pkgs.caddy;
-      defaultText = literalExpression "pkgs.caddy";
-      type = types.package;
+    email = mkOption {
+      default = null;
+      type = with types; nullOr str;
       description = ''
-        Caddy package to use.
+        Your email address. Mainly used when creating an ACME account with your
+        CA, and is highly recommended in case there are problems with your
+        certificates.
       '';
     };
+
   };
 
+  # implementation
   config = mkIf cfg.enable {
+
+    assertions = [
+      { assertion = cfg.adapter != "caddyfile" -> cfg.configFile != configFile;
+        message = "Any value other than 'caddyfile' is only valid when providing your own `services.caddy.configFile`";
+      }
+    ];
+
+    services.caddy.extraConfig = concatMapStringsSep "\n" mkVHostConf virtualHosts;
+
+    systemd.packages = [ cfg.package ];
     systemd.services.caddy = {
-      description = "Caddy web server";
-      # upstream unit: https://github.com/caddyserver/dist/blob/master/init/caddy.service
-      after = [ "network-online.target" ];
-      wants = [ "network-online.target" ]; # systemd-networkd-wait-online.service
+      wants = map (hostOpts: "acme-finished-${hostOpts.useACMEHost}.target") acmeVHosts;
+      after = map (hostOpts: "acme-selfsigned-${hostOpts.useACMEHost}.service") acmeVHosts;
+      before = map (hostOpts: "acme-${hostOpts.useACMEHost}.service") acmeVHosts;
+
       wantedBy = [ "multi-user.target" ];
       startLimitIntervalSec = 14400;
       startLimitBurst = 10;
+
       serviceConfig = {
-        ExecStart = "${cfg.package}/bin/caddy run ${optionalString cfg.resume "--resume"} --config ${configJSON}";
-        ExecReload = "${cfg.package}/bin/caddy reload --config ${configJSON}";
-        Type = "simple";
+        # https://www.freedesktop.org/software/systemd/man/systemd.service.html#ExecStart=
+        # If the empty string is assigned to this option, the list of commands to start is reset, prior assignments of this option will have no effect.
+        ExecStart = [ "" "${cfg.package}/bin/caddy run --config ${cfg.configFile} --adapter ${cfg.adapter} ${optionalString cfg.resume "--resume"}" ];
+        ExecReload = [ "" "${cfg.package}/bin/caddy reload --config ${cfg.configFile} --adapter ${cfg.adapter}" ];
+
+        ExecStartPre = "${cfg.package}/bin/caddy validate --config ${cfg.configFile} --adapter ${cfg.adapter}";
         User = cfg.user;
         Group = cfg.group;
+        ReadWriteDirectories = cfg.dataDir;
+        StateDirectory = mkIf (cfg.dataDir == "/var/lib/caddy") [ "caddy" ];
+        LogsDirectory = mkIf (cfg.logDir == "/var/log/caddy") [ "caddy" ];
         Restart = "on-abnormal";
-        AmbientCapabilities = "cap_net_bind_service";
-        CapabilityBoundingSet = "cap_net_bind_service";
+        SupplementaryGroups = mkIf (length acmeVHosts != 0) [ "acme" ];
+
+        # TODO: attempt to upstream these options
         NoNewPrivileges = true;
-        LimitNPROC = 512;
-        LimitNOFILE = 1048576;
-        PrivateTmp = true;
         PrivateDevices = true;
         ProtectHome = true;
-        ProtectSystem = "full";
-        ReadWriteDirectories = cfg.dataDir;
-        KillMode = "mixed";
-        KillSignal = "SIGQUIT";
-        TimeoutStopSec = "5s";
       };
     };
 
@@ -207,7 +291,6 @@ in
         group = cfg.group;
         uid = config.ids.uids.caddy;
         home = cfg.dataDir;
-        createHome = true;
       };
     };
 
@@ -215,5 +298,12 @@ in
       caddy.gid = config.ids.gids.caddy;
     };
 
+    security.acme.certs =
+      let
+        eachACMEHost = unique (catAttrs "useACMEHost" acmeVHosts);
+        reloads = map (useACMEHost: nameValuePair useACMEHost { reloadServices = [ "caddy.service" ]; }) eachACMEHost;
+      in
+        listToAttrs reloads;
+
   };
 }
diff --git a/nixos/modules/services/web-servers/caddy/vhost-options.nix b/nixos/modules/services/web-servers/caddy/vhost-options.nix
index 1f74295fc9a2e..f240ec605c293 100644
--- a/nixos/modules/services/web-servers/caddy/vhost-options.nix
+++ b/nixos/modules/services/web-servers/caddy/vhost-options.nix
@@ -1,15 +1,19 @@
-# This file defines the options that can be used both for the Nginx
-# main server configuration, and for the virtual hosts.  (The latter
-# has additional options that affect the web server as a whole, like
-# the user/group to run under.)
-
-{ lib, ... }:
-
-with lib;
+{ cfg }:
+{ config, lib, name, ... }:
+let
+  inherit (lib) literalExpression mkOption types;
+in
 {
   options = {
+
+    hostName = mkOption {
+      type = types.str;
+      default = name;
+      description = "Canonical hostname for the server.";
+    };
+
     serverAliases = mkOption {
-      type = types.listOf types.str;
+      type = with types; listOf str;
       default = [ ];
       example = [ "www.example.org" "example.org" ];
       description = ''
@@ -17,12 +21,59 @@ with lib;
       '';
     };
 
+    listenAddresses = mkOption {
+      type = with types; listOf str;
+      description = ''
+        A list of host interfaces to bind to for this virtual host.
+      '';
+      default = [ ];
+      example = [ "127.0.0.1" "::1" ];
+    };
+
+    useACMEHost = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      description = ''
+        A host of an existing Let's Encrypt certificate to use.
+        This is mostly useful if you use DNS challenges but Caddy does not
+        currently support your provider.
+
+        <emphasis>Note that this option does not create any certificates, nor
+        does it add subdomains to existing ones – you will need to create them
+        manually using <xref linkend="opt-security.acme.certs"/>. Additionally,
+        you should probably add the <literal>caddy</literal> user to the
+        <literal>acme</literal> group to grant access to the certificates.</emphasis>
+      '';
+    };
+
+    logFormat = mkOption {
+      type = types.lines;
+      default = ''
+        output file ${cfg.logDir}/access-${config.hostName}.log
+      '';
+      defaultText = ''
+        output file ''${config.services.caddy.logDir}/access-''${hostName}.log
+      '';
+      example = literalExpression ''
+        mkForce '''
+          output discard
+        ''';
+      '';
+      description = ''
+        Configuration for HTTP request logging (also known as access logs). See
+        <link xlink:href="https://caddyserver.com/docs/caddyfile/directives/log#log"/>
+        for details.
+      '';
+    };
+
     extraConfig = mkOption {
       type = types.lines;
       default = "";
       description = ''
-        These lines go into the vhost verbatim
+        Additional lines of configuration appended to this virtual host in the
+        automatically generated <literal>Caddyfile</literal>.
       '';
     };
+
   };
 }
diff --git a/nixos/modules/services/web-servers/lighttpd/collectd.nix b/nixos/modules/services/web-servers/lighttpd/collectd.nix
index 3f262451c2cb7..5f091591daf91 100644
--- a/nixos/modules/services/web-servers/lighttpd/collectd.nix
+++ b/nixos/modules/services/web-servers/lighttpd/collectd.nix
@@ -1,9 +1,10 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
   cfg = config.services.lighttpd.collectd;
+  opt = options.services.lighttpd.collectd;
 
   collectionConf = pkgs.writeText "collection.conf" ''
     datadir: "${config.services.collectd.dataDir}"
@@ -29,6 +30,9 @@ in
     collectionCgi = mkOption {
       type = types.path;
       default = defaultCollectionCgi;
+      defaultText = literalDocBook ''
+        <literal>config.${options.services.collectd.package}</literal> configured for lighttpd
+      '';
       description = ''
         Path to collection.cgi script from (collectd sources)/contrib/collection.cgi
         This option allows to use a customized version
diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix
index 5717b86b3bea6..05b7870fc3a13 100644
--- a/nixos/modules/services/web-servers/nginx/default.nix
+++ b/nixos/modules/services/web-servers/nginx/default.nix
@@ -79,6 +79,11 @@ let
       # we use a list of mime types from the mailcap package, which is also
       # used by most other Linux distributions by default.
       include ${pkgs.mailcap}/etc/nginx/mime.types;
+      # When recommendedOptimisation is disabled nginx fails to start because the mailmap mime.types database
+      # contains 1026 enries and the default is only 1024. Setting to a higher number to remove the need to
+      # overwrite it because nginx does not allow duplicated settings.
+      types_hash_max_size 4096;
+
       include ${cfg.package}/conf/fastcgi.conf;
       include ${cfg.package}/conf/uwsgi_params;
 
@@ -113,7 +118,6 @@ let
         tcp_nopush on;
         tcp_nodelay on;
         keepalive_timeout 65;
-        types_hash_max_size 4096;
       ''}
 
       ssl_protocols ${cfg.sslProtocols};
@@ -274,7 +278,7 @@ let
         acmeLocation = optionalString (vhost.enableACME || vhost.useACMEHost != null) ''
           location /.well-known/acme-challenge {
             ${optionalString (vhost.acmeFallbackHost != null) "try_files $uri @acme-fallback;"}
-            root ${vhost.acmeRoot};
+            ${optionalString (vhost.acmeRoot != null) "root ${vhost.acmeRoot};"}
             auth_basic off;
           }
           ${optionalString (vhost.acmeFallbackHost != null) ''
@@ -313,9 +317,12 @@ let
           ${optionalString (hasSSL && vhost.sslTrustedCertificate != null) ''
             ssl_trusted_certificate ${vhost.sslTrustedCertificate};
           ''}
-          ${optionalString vhost.rejectSSL ''
+          ${optionalString (hasSSL && vhost.rejectSSL) ''
             ssl_reject_handshake on;
           ''}
+          ${optionalString (hasSSL && vhost.kTLS) ''
+            ssl_conf_command Options KTLS;
+          ''}
 
           ${mkBasicAuth vhostName vhost}
 
@@ -821,6 +828,14 @@ in
       }
 
       {
+        assertion = any (host: host.kTLS) (attrValues virtualHosts) -> versionAtLeast cfg.package.version "1.21.4";
+        message = ''
+          services.nginx.virtualHosts.<name>.kTLS requires nginx version
+          1.21.4 or above; see the documentation for services.nginx.package.
+        '';
+      }
+
+      {
         assertion = all (host: !(host.enableACME && host.useACMEHost != null)) (attrValues virtualHosts);
         message = ''
           Options services.nginx.service.virtualHosts.<name>.enableACME and
@@ -896,7 +911,7 @@ in
         PrivateMounts = true;
         # System Call Filtering
         SystemCallArchitectures = "native";
-        SystemCallFilter = "~@cpu-emulation @debug @keyring @ipc @mount @obsolete @privileged @setuid @mincore";
+        SystemCallFilter = [ "~@cpu-emulation @debug @keyring @mount @obsolete @privileged @setuid @mincore" ] ++ optionals (cfg.package != pkgs.tengine) [ "~@ipc" ];
       };
     };
 
@@ -933,9 +948,16 @@ in
     };
 
     security.acme.certs = let
-      acmePairs = map (vhostConfig: nameValuePair vhostConfig.serverName {
+      acmePairs = map (vhostConfig: let
+        hasRoot = vhostConfig.acmeRoot != null;
+      in nameValuePair vhostConfig.serverName {
         group = mkDefault cfg.group;
-        webroot = vhostConfig.acmeRoot;
+        # if acmeRoot is null inherit config.security.acme
+        # Since config.security.acme.certs.<cert>.webroot's own default value
+        # should take precedence set priority higher than mkOptionDefault
+        webroot = mkOverride (if hasRoot then 1000 else 2000) vhostConfig.acmeRoot;
+        # Also nudge dnsProvider to null in case it is inherited
+        dnsProvider = mkOverride (if hasRoot then 1000 else 2000) null;
         extraDomainNames = vhostConfig.serverAliases;
       # Filter for enableACME-only vhosts. Don't want to create dud certs
       }) (filter (vhostConfig: vhostConfig.useACMEHost == null) acmeEnabledVhosts);
diff --git a/nixos/modules/services/web-servers/nginx/location-options.nix b/nixos/modules/services/web-servers/nginx/location-options.nix
index 56a5381e05c83..6fd00b3869745 100644
--- a/nixos/modules/services/web-servers/nginx/location-options.nix
+++ b/nixos/modules/services/web-servers/nginx/location-options.nix
@@ -102,7 +102,7 @@ with lib;
     };
 
     fastcgiParams = mkOption {
-      type = types.attrsOf types.str;
+      type = types.attrsOf (types.either types.str types.path);
       default = {};
       description = ''
         FastCGI parameters to override.  Unlike in the Nginx
diff --git a/nixos/modules/services/web-servers/nginx/vhost-options.nix b/nixos/modules/services/web-servers/nginx/vhost-options.nix
index 7ee041d372113..c4e8285dc48bd 100644
--- a/nixos/modules/services/web-servers/nginx/vhost-options.nix
+++ b/nixos/modules/services/web-servers/nginx/vhost-options.nix
@@ -3,7 +3,7 @@
 # has additional options that affect the web server as a whole, like
 # the user/group to run under.)
 
-{ lib, ... }:
+{ config, lib, ... }:
 
 with lib;
 {
@@ -85,9 +85,12 @@ with lib;
     };
 
     acmeRoot = mkOption {
-      type = types.str;
+      type = types.nullOr types.str;
       default = "/var/lib/acme/acme-challenge";
-      description = "Directory for the acme challenge which is PUBLIC, don't put certs or keys in here";
+      description = ''
+        Directory for the acme challenge which is PUBLIC, don't put certs or keys in here.
+        Set to null to inherit from config.security.acme.
+      '';
     };
 
     acmeFallbackHost = mkOption {
@@ -147,6 +150,17 @@ with lib;
       '';
     };
 
+    kTLS = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Whether to enable kTLS support.
+        Implementing TLS in the kernel (kTLS) improves performance by significantly
+        reducing the need for copying operations between user space and the kernel.
+        Required Nginx version 1.21.4 or later.
+      '';
+    };
+
     sslCertificate = mkOption {
       type = types.path;
       example = "/var/host.cert";
diff --git a/nixos/modules/services/web-servers/uwsgi.nix b/nixos/modules/services/web-servers/uwsgi.nix
index ac435951310eb..a1cad17336d8d 100644
--- a/nixos/modules/services/web-servers/uwsgi.nix
+++ b/nixos/modules/services/web-servers/uwsgi.nix
@@ -121,7 +121,7 @@ in {
               moin = {
                 type = "normal";
                 pythonPackages = self: with self; [ moinmoin ];
-                socket = "${config.services.uwsgi.runDir}/uwsgi.sock";
+                socket = "''${config.services.uwsgi.runDir}/uwsgi.sock";
               };
             };
           }
diff --git a/nixos/modules/services/web-servers/varnish/default.nix b/nixos/modules/services/web-servers/varnish/default.nix
index 0ebf58eb9f616..fe817313a993b 100644
--- a/nixos/modules/services/web-servers/varnish/default.nix
+++ b/nixos/modules/services/web-servers/varnish/default.nix
@@ -42,6 +42,7 @@ in
       stateDir = mkOption {
         type = types.path;
         default = "/var/spool/varnish/${config.networking.hostName}";
+        defaultText = literalExpression ''"/var/spool/varnish/''${config.networking.hostName}"'';
         description = "
           Directory holding all state for Varnish to run.
         ";
diff --git a/nixos/modules/services/x11/desktop-managers/cinnamon.nix b/nixos/modules/services/x11/desktop-managers/cinnamon.nix
index a0a5873f72fec..82b07206a8b62 100644
--- a/nixos/modules/services/x11/desktop-managers/cinnamon.nix
+++ b/nixos/modules/services/x11/desktop-managers/cinnamon.nix
@@ -202,6 +202,13 @@ in
         blueberry
         warpinator
 
+        # cinnamon xapps
+        xviewer
+        xreader
+        xed
+        xplayer
+        pix
+
         # external apps shipped with linux-mint
         hexchat
         gnome-calculator
diff --git a/nixos/modules/services/x11/desktop-managers/gnome.xml b/nixos/modules/services/x11/desktop-managers/gnome.xml
index 6c53bacacb322..e5da7740196e1 100644
--- a/nixos/modules/services/x11/desktop-managers/gnome.xml
+++ b/nixos/modules/services/x11/desktop-managers/gnome.xml
@@ -126,21 +126,6 @@
 </programlisting>
 
  </section>
- <section xml:id="sec-gnome-gdm">
-  <title>GDM</title>
-
-  <para>
-   If you want to use GNOME Wayland session on Nvidia hardware, you need to enable:
-  </para>
-
-<programlisting>
-<xref linkend="opt-services.xserver.displayManager.gdm.nvidiaWayland"/> = true;
-</programlisting>
-
-  <para>
-   as the default configuration will forbid this.
-  </para>
- </section>
 
  <section xml:id="sec-gnome-icons-and-gtk-themes">
   <title>Icons and GTK Themes</title>
diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix
index 5a41f96497f2b..980a6b939d5a4 100644
--- a/nixos/modules/services/x11/desktop-managers/pantheon.nix
+++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix
@@ -227,9 +227,9 @@ in
       environment.sessionVariables.GTK_CSD = "1";
       environment.etc."gtk-3.0/settings.ini".source = "${pkgs.pantheon.elementary-default-settings}/etc/gtk-3.0/settings.ini";
 
-      xdg.portal.extraPortals = with pkgs; [
-        pantheon.elementary-files
-        pantheon.elementary-settings-daemon
+      xdg.portal.extraPortals = with pkgs.pantheon; [
+        elementary-files
+        elementary-settings-daemon
         xdg-desktop-portal-pantheon
       ];
 
@@ -296,9 +296,10 @@ in
     })
 
     (mkIf serviceCfg.contractor.enable {
-      environment.systemPackages = with  pkgs.pantheon; [
+      environment.systemPackages = with pkgs.pantheon; [
         contractor
-        extra-elementary-contracts
+        file-roller-contract
+        gnome-bluetooth-contract
       ];
 
       environment.pathsToLink = [
diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.xml b/nixos/modules/services/x11/desktop-managers/pantheon.xml
index 64933349e7988..fe0a1c4962231 100644
--- a/nixos/modules/services/x11/desktop-managers/pantheon.xml
+++ b/nixos/modules/services/x11/desktop-managers/pantheon.xml
@@ -105,8 +105,14 @@ switchboard-with-plugs.override {
     </term>
     <listitem>
      <para>
-      AppCenter has been available since 20.03, but it is of little use. This is because there is no functioning PackageKit backend for Nix 2.0. The Flatpak backend will not work before <link xlink:href="https://github.com/elementary/appcenter/issues/1076">flag for Flatpak-only</link> is provided. See this <link xlink:href="https://github.com/NixOS/nixpkgs/issues/70214">issue</link>.
+      AppCenter has been available since 20.03, but it is of little use. This is because there is no functioning PackageKit backend for Nix 2.0. Starting from 21.11, the Flatpak backend should work so you can install some Flatpak applications using it. See this <link xlink:href="https://github.com/NixOS/nixpkgs/issues/70214">issue</link>.
      </para>
+     <para>
+      To use AppCenter on NixOS, add <literal>pantheon.appcenter</literal> to <xref linkend="opt-environment.systemPackages" />, <link linkend="module-services-flatpak">enable Flatpak support</link> and optionally add the <literal>appcenter</literal> Flatpak remote:
+     </para>
+<screen>
+<prompt>$ </prompt>flatpak remote-add --if-not-exists appcenter https://flatpak.elementary.io/repo.flatpakrepo
+</screen>
     </listitem>
    </varlistentry>
   </variablelist>
diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix
index 8a1793484e23e..9bacdaa9be984 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -4,6 +4,28 @@ let
   xcfg = config.services.xserver;
   cfg = xcfg.desktopManager.plasma5;
 
+  # Use only for **internal** options.
+  # This is not exactly user-friendly.
+  kdeConfigurationType = with types;
+    let
+      valueTypes = (oneOf [
+        bool
+        float
+        int
+        str
+      ]) // {
+        description = "KDE Configuration value";
+        emptyValue.value = "";
+      };
+      set = (nullOr (lazyAttrsOf valueTypes)) // {
+        description = "KDE Configuration set";
+        emptyValue.value = {};
+      };
+    in (lazyAttrsOf set) // {
+        description = "KDE Configuration file";
+        emptyValue.value = {};
+      };
+
   libsForQt5 = pkgs.plasma5Packages;
   inherit (libsForQt5) kdeGear kdeFrameworks plasma5;
   inherit (pkgs) writeText;
@@ -169,6 +191,37 @@ in
       type = types.bool;
       default = false;
     };
+
+    # Internally allows configuring kdeglobals globally
+    kdeglobals = mkOption {
+      internal = true;
+      default = {};
+      type = kdeConfigurationType;
+    };
+
+    # Internally allows configuring kwin globally
+    kwinrc = mkOption {
+      internal = true;
+      default = {};
+      type = kdeConfigurationType;
+    };
+
+    mobile.enable = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Enable support for running the Plasma Mobile shell.
+      '';
+    };
+
+    mobile.installRecommendedSoftware = mkOption {
+      type = types.bool;
+      default = true;
+      description = ''
+        Installs software recommended for use with Plasma Mobile, but which
+        is not strictly required for Plasma Mobile to run.
+      '';
+    };
   };
 
   imports = [
@@ -177,22 +230,8 @@ in
   ];
 
   config = mkMerge [
-    (mkIf cfg.enable {
-
-      # Seed our configuration into nixos-generate-config
-      system.nixos-generate-config.desktopConfiguration = [
-        ''
-          # Enable the Plasma 5 Desktop Environment.
-          services.xserver.displayManager.sddm.enable = true;
-          services.xserver.desktopManager.plasma5.enable = true;
-        ''
-      ];
-
-      services.xserver.displayManager.sessionPackages = [ pkgs.libsForQt5.plasma5.plasma-workspace ];
-      # Default to be `plasma` (X11) instead of `plasmawayland`, since plasma wayland currently has
-      # many tiny bugs.
-      # See: https://github.com/NixOS/nixpkgs/issues/143272
-      services.xserver.displayManager.defaultSession = mkDefault "plasma";
+    # Common Plasma dependencies
+    (mkIf (cfg.enable || cfg.mobile.enable) {
 
       security.wrappers = {
         kcheckpass = {
@@ -278,37 +317,24 @@ in
           kdeplasma-addons
           kgamma5
           khotkeys
-          kinfocenter
-          kmenuedit
           kscreen
           kscreenlocker
-          ksystemstats
           kwayland
           kwin
           kwrited
           libkscreen
           libksysguard
           milou
-          plasma-systemmonitor
           plasma-browser-integration
           plasma-integration
           polkit-kde-agent
-          spectacle
-          systemsettings
 
           plasma-desktop
           plasma-workspace
           plasma-workspace-wallpapers
 
-          dolphin
-          dolphin-plugins
-          ffmpegthumbs
-          kdegraphics-thumbnailers
-          khelpcenter
-          kio-extras
           konsole
           oxygen
-          print-manager
 
           breeze-icons
           pkgs.hicolor-icon-theme
@@ -319,10 +345,6 @@ in
           qtvirtualkeyboard
 
           pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
-
-          elisa
-          gwenview
-          okular
         ]
 
         # Phonon audio backend
@@ -396,7 +418,67 @@ in
           serviceConfig.Type = "oneshot";
           script = activationScript;
         };
+      };
+
+      xdg.portal.enable = true;
+      xdg.portal.extraPortals = [ plasma5.xdg-desktop-portal-kde ];
+
+      # Update the start menu for each user that is currently logged in
+      system.userActivationScripts.plasmaSetup = activationScript;
+      services.xserver.displayManager.setupCommands = startplasma;
+
+      nixpkgs.config.firefox.enablePlasmaBrowserIntegration = true;
+
+      environment.etc = {
+        "xdg/kwinrc".text     = lib.generators.toINI {} cfg.kwinrc;
+        "xdg/kdeglobals".text = lib.generators.toINI {} cfg.kdeglobals;
+      };
+    })
+
+    # Plasma Desktop
+    (mkIf cfg.enable {
+
+      # Seed our configuration into nixos-generate-config
+      system.nixos-generate-config.desktopConfiguration = [
+        ''
+          # Enable the Plasma 5 Desktop Environment.
+          services.xserver.displayManager.sddm.enable = true;
+          services.xserver.desktopManager.plasma5.enable = true;
+        ''
+      ];
 
+      services.xserver.displayManager.sessionPackages = [ pkgs.libsForQt5.plasma5.plasma-workspace ];
+      # Default to be `plasma` (X11) instead of `plasmawayland`, since plasma wayland currently has
+      # many tiny bugs.
+      # See: https://github.com/NixOS/nixpkgs/issues/143272
+      services.xserver.displayManager.defaultSession = mkDefault "plasma";
+
+      environment.systemPackages =
+        with libsForQt5;
+        with plasma5; with kdeGear; with kdeFrameworks;
+        [
+          ksystemstats
+          kinfocenter
+          kmenuedit
+          plasma-systemmonitor
+          spectacle
+          systemsettings
+
+          dolphin
+          dolphin-plugins
+          ffmpegthumbs
+          kdegraphics-thumbnailers
+          khelpcenter
+          kio-extras
+          print-manager
+
+          elisa
+          gwenview
+          okular
+        ]
+      ;
+
+      systemd.user.services = {
         plasma-run-with-systemd = {
           description = "Run KDE Plasma via systemd";
           wantedBy = [ "basic.target" ];
@@ -409,15 +491,88 @@ in
           '';
         };
       };
+    })
 
-      xdg.portal.enable = true;
-      xdg.portal.extraPortals = [ plasma5.xdg-desktop-portal-kde ];
+    # Plasma Mobile
+    (mkIf cfg.mobile.enable {
+      assertions = [
+        {
+          # The user interface breaks without NetworkManager
+          assertion = config.networking.networkmanager.enable;
+          message = "Plasma Mobile requires NetworkManager.";
+        }
+        {
+          # The user interface breaks without bluetooth
+          assertion = config.hardware.bluetooth.enable;
+          message = "Plasma Mobile requires Bluetooth.";
+        }
+        {
+          # The user interface breaks without pulse
+          assertion = config.hardware.pulseaudio.enable;
+          message = "Plasma Mobile requires pulseaudio.";
+        }
+      ];
 
-      # Update the start menu for each user that is currently logged in
-      system.userActivationScripts.plasmaSetup = activationScript;
-      services.xserver.displayManager.setupCommands = startplasma;
+      environment.systemPackages =
+        with libsForQt5;
+        with plasma5; with kdeApplications; with kdeFrameworks;
+        [
+          # Basic packages without which Plasma Mobile fails to work properly.
+          plasma-phone-components
+          plasma-nano
+          pkgs.maliit-framework
+          pkgs.maliit-keyboard
+        ]
+        ++ lib.optionals (cfg.mobile.installRecommendedSoftware) (with libsForQt5.plasmaMobileGear;[
+          # Additional software made for Plasma Mobile.
+          alligator
+          angelfish
+          audiotube
+          calindori
+          kalk
+          kasts
+          kclock
+          keysmith
+          koko
+          krecorder
+          ktrip
+          kweather
+          plasma-dialer
+          plasma-phonebook
+          plasma-settings
+          spacebar
+        ])
+      ;
+
+      # The following services are needed or the UI is broken.
+      hardware.bluetooth.enable = true;
+      hardware.pulseaudio.enable = true;
+      networking.networkmanager.enable = true;
+
+      # Recommendations can be found here:
+      #  - https://invent.kde.org/plasma-mobile/plasma-phone-settings/-/tree/master/etc/xdg
+      # This configuration is the minimum required for Plasma Mobile to *work*.
+      services.xserver.desktopManager.plasma5 = {
+        kdeglobals = {
+          KDE = {
+            # This forces a numeric PIN for the lockscreen, which is the
+            # recommendation from upstream.
+            LookAndFeelPackage = lib.mkDefault "org.kde.plasma.phone";
+          };
+        };
+        kwinrc = {
+          Windows = {
+            # Forces windows to be maximized
+            Placement = lib.mkDefault "Maximizing";
+          };
+          "org.kde.kdecoration2" = {
+            # No decorations (title bar)
+            NoPlugin = lib.mkDefault "true";
+          };
+        };
+      };
 
-      nixpkgs.config.firefox.enablePlasmaBrowserIntegration = true;
+      services.xserver.displayManager.sessionPackages = [ pkgs.libsForQt5.plasma5.plasma-phone-components ];
     })
   ];
 }
diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix
index 25276e1d649ec..3cf92f98c56fd 100644
--- a/nixos/modules/services/x11/desktop-managers/xfce.nix
+++ b/nixos/modules/services/x11/desktop-managers/xfce.nix
@@ -9,7 +9,7 @@ in
 {
 
   meta = {
-    maintainers = with maintainers; [ ];
+    maintainers = teams.xfce.members;
   };
 
   imports = [
diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix
index bdc46faa7fd0c..92b3af8527f1b 100644
--- a/nixos/modules/services/x11/display-managers/default.nix
+++ b/nixos/modules/services/x11/display-managers/default.nix
@@ -7,13 +7,14 @@
 # (e.g., KDE, Gnome or a plain xterm), and optionally the *window
 # manager* (e.g. kwin or twm).
 
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
 
   cfg = config.services.xserver;
+  opt = options.services.xserver;
   xorg = pkgs.xorg;
 
   fontconfig = config.fonts.fontconfig;
@@ -147,6 +148,7 @@ in
       xauthBin = mkOption {
         internal = true;
         default = "${xorg.xauth}/bin/xauth";
+        defaultText = literalExpression ''"''${pkgs.xorg.xauth}/bin/xauth"'';
         description = "Path to the <command>xauth</command> program used by display managers.";
       };
 
@@ -278,6 +280,9 @@ in
             defaultSessionFromLegacyOptions
           else
             null;
+        defaultText = literalDocBook ''
+          Taken from display manager settings or window manager settings, if either is set.
+        '';
         example = "gnome";
         description = ''
           Graphical session to pre-select in the session chooser (only effective for GDM, LightDM and SDDM).
@@ -337,11 +342,12 @@ in
 
       # Configuration for automatic login. Common for all DM.
       autoLogin = mkOption {
-        type = types.submodule {
+        type = types.submodule ({ config, options, ... }: {
           options = {
             enable = mkOption {
               type = types.bool;
-              default = cfg.displayManager.autoLogin.user != null;
+              default = config.user != null;
+              defaultText = literalExpression "config.${options.user} != null";
               description = ''
                 Automatically log in as <option>autoLogin.user</option>.
               '';
@@ -355,7 +361,7 @@ in
               '';
             };
           };
-        };
+        });
 
         default = {};
         description = ''
diff --git a/nixos/modules/services/x11/display-managers/gdm.nix b/nixos/modules/services/x11/display-managers/gdm.nix
index e036c684c886a..6f0d645725e9d 100644
--- a/nixos/modules/services/x11/display-managers/gdm.nix
+++ b/nixos/modules/services/x11/display-managers/gdm.nix
@@ -83,14 +83,14 @@ in
         default = true;
         description = ''
           Allow GDM to run on Wayland instead of Xserver.
-          Note to enable Wayland with Nvidia you need to
-          enable the <option>nvidiaWayland</option>.
+          Note to enable Wayland with Nvidia the <option>nvidiaWayland</option>
+          must not be disabled.
         '';
       };
 
       nvidiaWayland = mkOption {
         type = types.bool;
-        default = false;
+        default = true;
         description = ''
           Whether to allow wayland to be used with the proprietary
           NVidia graphics driver.
diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix
index 9a7532b476415..84b75c83aeab4 100644
--- a/nixos/modules/services/x11/display-managers/lightdm.nix
+++ b/nixos/modules/services/x11/display-managers/lightdm.nix
@@ -312,7 +312,7 @@ in
     };
 
     systemd.tmpfiles.rules = [
-      "d /run/lightdm 0711 lightdm lightdm 0"
+      "d /run/lightdm 0711 lightdm lightdm -"
       "d /var/cache/lightdm 0711 root lightdm -"
       "d /var/lib/lightdm 1770 lightdm lightdm -"
       "d /var/lib/lightdm-data 1775 lightdm lightdm -"
diff --git a/nixos/modules/services/x11/hardware/synaptics.nix b/nixos/modules/services/x11/hardware/synaptics.nix
index 22af869f1f8aa..93dd560bca407 100644
--- a/nixos/modules/services/x11/hardware/synaptics.nix
+++ b/nixos/modules/services/x11/hardware/synaptics.nix
@@ -1,8 +1,9 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let cfg = config.services.xserver.synaptics;
+    opt = options.services.xserver.synaptics;
     tapConfig = if cfg.tapButtons then enabledTapConfig else disabledTapConfig;
     enabledTapConfig = ''
       Option "MaxTapTime" "180"
@@ -77,24 +78,28 @@ in {
       horizTwoFingerScroll = mkOption {
         type = types.bool;
         default = cfg.twoFingerScroll;
+        defaultText = literalExpression "config.${opt.twoFingerScroll}";
         description = "Whether to enable horizontal two-finger drag-scrolling.";
       };
 
       vertTwoFingerScroll = mkOption {
         type = types.bool;
         default = cfg.twoFingerScroll;
+        defaultText = literalExpression "config.${opt.twoFingerScroll}";
         description = "Whether to enable vertical two-finger drag-scrolling.";
       };
 
       horizEdgeScroll = mkOption {
         type = types.bool;
         default = ! cfg.horizTwoFingerScroll;
+        defaultText = literalExpression "! config.${opt.horizTwoFingerScroll}";
         description = "Whether to enable horizontal edge drag-scrolling.";
       };
 
       vertEdgeScroll = mkOption {
         type = types.bool;
         default = ! cfg.vertTwoFingerScroll;
+        defaultText = literalExpression "! config.${opt.vertTwoFingerScroll}";
         description = "Whether to enable vertical edge drag-scrolling.";
       };
 
diff --git a/nixos/modules/services/x11/picom.nix b/nixos/modules/services/x11/picom.nix
index dbd4b1cefef18..b40e20bcd3572 100644
--- a/nixos/modules/services/x11/picom.nix
+++ b/nixos/modules/services/x11/picom.nix
@@ -1,10 +1,11 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
 let
 
   cfg = config.services.picom;
+  opt = options.services.picom;
 
   pairOf = x: with types;
     addCheck (listOf x) (y: length y == 2)
@@ -178,7 +179,16 @@ in {
 
     wintypes = mkOption {
       type = types.attrs;
-      default = { popup_menu = { opacity = cfg.menuOpacity; }; dropdown_menu = { opacity = cfg.menuOpacity; }; };
+      default = {
+        popup_menu = { opacity = cfg.menuOpacity; };
+        dropdown_menu = { opacity = cfg.menuOpacity; };
+      };
+      defaultText = literalExpression ''
+        {
+          popup_menu = { opacity = config.${opt.menuOpacity}; };
+          dropdown_menu = { opacity = config.${opt.menuOpacity}; };
+        }
+      '';
       example = {};
       description = ''
         Rules for specific window types.
diff --git a/nixos/modules/services/x11/window-managers/xmonad.nix b/nixos/modules/services/x11/window-managers/xmonad.nix
index 6aa0d5f76f264..ecad411ff6835 100644
--- a/nixos/modules/services/x11/window-managers/xmonad.nix
+++ b/nixos/modules/services/x11/window-managers/xmonad.nix
@@ -29,7 +29,6 @@ let
       } ''
         install -D ${xmonadEnv}/share/man/man1/xmonad.1.gz $out/share/man/man1/xmonad.1.gz
         makeWrapper ${configured}/bin/xmonad $out/bin/xmonad \
-          --set NIX_GHC "${xmonadEnv}/bin/ghc" \
           --set XMONAD_XMESSAGE "${pkgs.xorg.xmessage}/bin/xmessage"
       '';
 
@@ -40,10 +39,12 @@ in {
   options = {
     services.xserver.windowManager.xmonad = {
       enable = mkEnableOption "xmonad";
+
       haskellPackages = mkOption {
         default = pkgs.haskellPackages;
         defaultText = literalExpression "pkgs.haskellPackages";
         example = literalExpression "pkgs.haskell.packages.ghc784";
+        type = types.attrs;
         description = ''
           haskellPackages used to build Xmonad and other packages.
           This can be used to change the GHC version used to build
@@ -93,6 +94,8 @@ in {
           <literal>(restart "xmonad" True)</literal> instead, which will just restart
           xmonad from PATH. This allows e.g. switching to the new xmonad binary
           after rebuilding your system with nixos-rebuild.
+          For the same reason, ghc is not added to the environment when this
+          option is set.
 
           If you actually want to run xmonad with a config specified here, but
           also be able to recompile and restart it from a copy of that source in
diff --git a/nixos/modules/system/activation/activation-script.nix b/nixos/modules/system/activation/activation-script.nix
index 8dbfe393f109b..d6f14d01dbaa6 100644
--- a/nixos/modules/system/activation/activation-script.nix
+++ b/nixos/modules/system/activation/activation-script.nix
@@ -142,6 +142,7 @@ in
       readOnly = true;
       internal = true;
       default = systemActivationScript (removeAttrs config.system.activationScripts [ "script" ]) true;
+      defaultText = literalDocBook "generated activation script";
     };
 
     system.userActivationScripts = mkOption {
@@ -150,7 +151,7 @@ in
       example = literalExpression ''
         { plasmaSetup = {
             text = '''
-              ${pkgs.libsForQt5.kservice}/bin/kbuildsycoca5"
+              ''${pkgs.libsForQt5.kservice}/bin/kbuildsycoca5"
             ''';
             deps = [];
           };
diff --git a/nixos/modules/system/activation/switch-to-configuration.pl b/nixos/modules/system/activation/switch-to-configuration.pl
index e105502cf3a48..3fbab8b94c932 100644
--- a/nixos/modules/system/activation/switch-to-configuration.pl
+++ b/nixos/modules/system/activation/switch-to-configuration.pl
@@ -18,14 +18,11 @@ my $startListFile = "/run/nixos/start-list";
 my $restartListFile = "/run/nixos/restart-list";
 my $reloadListFile = "/run/nixos/reload-list";
 
-# Parse restart/reload requests by the activation script.
-# Activation scripts may write newline-separated units to this
-# file and switch-to-configuration will handle them. While
-# `stopIfChanged = true` is ignored, switch-to-configuration will
-# handle `restartIfChanged = false` and `reloadIfChanged = true`.
-# This also works for socket-activated units.
+# Parse restart/reload requests by the activation script
 my $restartByActivationFile = "/run/nixos/activation-restart-list";
+my $reloadByActivationFile = "/run/nixos/activation-reload-list";
 my $dryRestartByActivationFile = "/run/nixos/dry-activation-restart-list";
+my $dryReloadByActivationFile = "/run/nixos/dry-activation-reload-list";
 
 make_path("/run/nixos", { mode => oct(755) });
 
@@ -152,8 +149,9 @@ sub fingerprintUnit {
 sub handleModifiedUnit {
     my ($unit, $baseName, $newUnitFile, $activePrev, $unitsToStop, $unitsToStart, $unitsToReload, $unitsToRestart, $unitsToSkip) = @_;
 
-    if ($unit eq "sysinit.target" || $unit eq "basic.target" || $unit eq "multi-user.target" || $unit eq "graphical.target" || $unit =~ /\.slice$/ || $unit =~ /\.path$/) {
+    if ($unit eq "sysinit.target" || $unit eq "basic.target" || $unit eq "multi-user.target" || $unit eq "graphical.target" || $unit =~ /\.path$/ || $unit =~ /\.slice$/) {
         # Do nothing.  These cannot be restarted directly.
+
         # Slices and Paths don't have to be restarted since
         # properties (resource limits and inotify watches)
         # seem to get applied on daemon-reload.
@@ -161,6 +159,11 @@ sub handleModifiedUnit {
         # Reload the changed mount unit to force a remount.
         $unitsToReload->{$unit} = 1;
         recordUnit($reloadListFile, $unit);
+    } elsif ($unit =~ /\.socket$/) {
+        # FIXME: do something?
+        # Attempt to fix this: https://github.com/NixOS/nixpkgs/pull/141192
+        # Revert of the attempt: https://github.com/NixOS/nixpkgs/pull/147609
+        # More details: https://github.com/NixOS/nixpkgs/issues/74899#issuecomment-981142430
     } else {
         my $unitInfo = parseUnit($newUnitFile);
         if (boolIsTrue($unitInfo->{'X-ReloadIfChanged'} // "no")) {
@@ -170,66 +173,47 @@ sub handleModifiedUnit {
         elsif (!boolIsTrue($unitInfo->{'X-RestartIfChanged'} // "yes") || boolIsTrue($unitInfo->{'RefuseManualStop'} // "no") || boolIsTrue($unitInfo->{'X-OnlyManualStart'} // "no")) {
             $unitsToSkip->{$unit} = 1;
         } else {
-            # If this unit is socket-activated, then stop it instead
-            # of restarting it to make sure the new version of it is
-            # socket-activated.
-            my $socketActivated = 0;
-            if ($unit =~ /\.service$/) {
-                my @sockets = split / /, ($unitInfo->{Sockets} // "");
-                if (scalar @sockets == 0) {
-                    @sockets = ("$baseName.socket");
-                }
-                foreach my $socket (@sockets) {
-                    if (-e "$out/etc/systemd/system/$socket") {
-                        $socketActivated = 1;
-                        $unitsToStop->{$unit} = 1;
-                        # If the socket was not running previously,
-                        # start it now.
-                        if (not defined $activePrev->{$socket}) {
-                            $unitsToStart->{$socket} = 1;
+            # It doesn't make sense to stop and start non-services because
+            # they can't have ExecStop=
+            if (!boolIsTrue($unitInfo->{'X-StopIfChanged'} // "yes") || $unit !~ /\.service$/) {
+                # This unit should be restarted instead of
+                # stopped and started.
+                $unitsToRestart->{$unit} = 1;
+                recordUnit($restartListFile, $unit);
+            } else {
+                # If this unit is socket-activated, then stop the
+                # socket unit(s) as well, and restart the
+                # socket(s) instead of the service.
+                my $socketActivated = 0;
+                if ($unit =~ /\.service$/) {
+                    my @sockets = split / /, ($unitInfo->{Sockets} // "");
+                    if (scalar @sockets == 0) {
+                        @sockets = ("$baseName.socket");
+                    }
+                    foreach my $socket (@sockets) {
+                        if (defined $activePrev->{$socket}) {
+                            $unitsToStop->{$socket} = 1;
+                            # Only restart sockets that actually
+                            # exist in new configuration:
+                            if (-e "$out/etc/systemd/system/$socket") {
+                                $unitsToStart->{$socket} = 1;
+                                recordUnit($startListFile, $socket);
+                                $socketActivated = 1;
+                            }
                         }
                     }
                 }
-            }
 
-            # Don't do the rest of this for socket-activated units
-            # because we handled these above where we stop the unit.
-            # Since only services can be socket-activated, the
-            # following condition always evaluates to `true` for
-            # non-service units.
-            if ($socketActivated) {
-                return;
-            }
-
-            # If we are restarting a socket, also stop the corresponding
-            # service. This is required because restarting a socket
-            # when the service is already activated fails.
-            if ($unit =~ /\.socket$/) {
-                my $service = $unitInfo->{Service} // "";
-                if ($service eq "") {
-                    $service = "$baseName.service";
-                }
-                if (defined $activePrev->{$service}) {
-                    $unitsToStop->{$service} = 1;
-                }
-                $unitsToRestart->{$unit} = 1;
-                recordUnit($restartListFile, $unit);
-            } else {
-                # Always restart non-services instead of stopping and starting them
-                # because it doesn't make sense to stop them with a config from
-                # the old evaluation.
-                if (!boolIsTrue($unitInfo->{'X-StopIfChanged'} // "yes") || $unit !~ /\.service$/) {
-                    # This unit should be restarted instead of
-                    # stopped and started.
-                    $unitsToRestart->{$unit} = 1;
-                    recordUnit($restartListFile, $unit);
-                } else {
-                    # We write to a file to ensure that the
-                    # service gets restarted if we're interrupted.
+                # If the unit is not socket-activated, record
+                # that this unit needs to be started below.
+                # We write this to a file to ensure that the
+                # service gets restarted if we're interrupted.
+                if (!$socketActivated) {
                     $unitsToStart->{$unit} = 1;
                     recordUnit($startListFile, $unit);
-                    $unitsToStop->{$unit} = 1;
                 }
+
+                $unitsToStop->{$unit} = 1;
             }
         }
     }
@@ -307,7 +291,7 @@ while (my ($unit, $state) = each %{$activePrev}) {
         }
 
         elsif (fingerprintUnit($prevUnitFile) ne fingerprintUnit($newUnitFile)) {
-            handleModifiedUnit($unit, $baseName, $newUnitFile, $activePrev, \%unitsToStop, \%unitsToStart, \%unitsToReload, \%unitsToRestart, %unitsToSkip);
+            handleModifiedUnit($unit, $baseName, $newUnitFile, $activePrev, \%unitsToStop, \%unitsToStart, \%unitsToReload, \%unitsToRestart, \%unitsToSkip);
         }
     }
 }
@@ -378,8 +362,14 @@ foreach my $device (keys %$prevSwaps) {
 
 # Should we have systemd re-exec itself?
 my $prevSystemd = abs_path("/proc/1/exe") // "/unknown";
+my $prevSystemdSystemConfig = abs_path("/etc/systemd/system.conf") // "/unknown";
 my $newSystemd = abs_path("@systemd@/lib/systemd/systemd") or die;
+my $newSystemdSystemConfig = abs_path("$out/etc/systemd/system.conf") // "/unknown";
+
 my $restartSystemd = $prevSystemd ne $newSystemd;
+if ($prevSystemdSystemConfig ne $newSystemdSystemConfig) {
+    $restartSystemd = 1;
+}
 
 
 sub filterUnits {
@@ -392,6 +382,8 @@ sub filterUnits {
 }
 
 my @unitsToStopFiltered = filterUnits(\%unitsToStop);
+my @unitsToStartFiltered = filterUnits(\%unitsToStart);
+
 
 # Show dry-run actions.
 if ($action eq "dry-activate") {
@@ -403,44 +395,21 @@ if ($action eq "dry-activate") {
     print STDERR "would activate the configuration...\n";
     system("$out/dry-activate", "$out");
 
-    # Handle the activation script requesting the restart or reload of a unit.
-    my %unitsToAlsoStop;
-    my %unitsToAlsoSkip;
-    foreach (split('\n', read_file($dryRestartByActivationFile, err_mode => 'quiet') // "")) {
-        my $unit = $_;
-        my $baseUnit = $unit;
-        my $newUnitFile = "$out/etc/systemd/system/$baseUnit";
-
-        # Detect template instances.
-        if (!-e $newUnitFile && $unit =~ /^(.*)@[^\.]*\.(.*)$/) {
-          $baseUnit = "$1\@.$2";
-          $newUnitFile = "$out/etc/systemd/system/$baseUnit";
-        }
-
-        my $baseName = $baseUnit;
-        $baseName =~ s/\.[a-z]*$//;
-
-        handleModifiedUnit($unit, $baseName, $newUnitFile, $activePrev, \%unitsToAlsoStop, \%unitsToStart, \%unitsToReload, \%unitsToRestart, %unitsToAlsoSkip);
-    }
-    unlink($dryRestartByActivationFile);
-
-    my @unitsToAlsoStopFiltered = filterUnits(\%unitsToAlsoStop);
-    if (scalar(keys %unitsToAlsoStop) > 0) {
-        print STDERR "would stop the following units as well: ", join(", ", @unitsToAlsoStopFiltered), "\n"
-            if scalar @unitsToAlsoStopFiltered;
-    }
+    $unitsToRestart{$_} = 1 foreach
+        split('\n', read_file($dryRestartByActivationFile, err_mode => 'quiet') // "");
 
-    print STDERR "would NOT restart the following changed units as well: ", join(", ", sort(keys %unitsToAlsoSkip)), "\n"
-        if scalar(keys %unitsToAlsoSkip) > 0;
+    $unitsToReload{$_} = 1 foreach
+        split('\n', read_file($dryReloadByActivationFile, err_mode => 'quiet') // "");
 
     print STDERR "would restart systemd\n" if $restartSystemd;
     print STDERR "would reload the following units: ", join(", ", sort(keys %unitsToReload)), "\n"
         if scalar(keys %unitsToReload) > 0;
     print STDERR "would restart the following units: ", join(", ", sort(keys %unitsToRestart)), "\n"
         if scalar(keys %unitsToRestart) > 0;
-    my @unitsToStartFiltered = filterUnits(\%unitsToStart);
     print STDERR "would start the following units: ", join(", ", @unitsToStartFiltered), "\n"
         if scalar @unitsToStartFiltered;
+    unlink($dryRestartByActivationFile);
+    unlink($dryReloadByActivationFile);
     exit 0;
 }
 
@@ -465,38 +434,12 @@ system("$out/activate", "$out") == 0 or $res = 2;
 
 # Handle the activation script requesting the restart or reload of a unit.
 # We can only restart and reload (not stop/start) because the units to be
-# stopped are already stopped before the activation script is run. We do however
-# make an exception for services that are socket-activated and that have to be stopped
-# instead of being restarted.
-my %unitsToAlsoStop;
-my %unitsToAlsoSkip;
-foreach (split('\n', read_file($restartByActivationFile, err_mode => 'quiet') // "")) {
-    my $unit = $_;
-    my $baseUnit = $unit;
-    my $newUnitFile = "$out/etc/systemd/system/$baseUnit";
-
-    # Detect template instances.
-    if (!-e $newUnitFile && $unit =~ /^(.*)@[^\.]*\.(.*)$/) {
-      $baseUnit = "$1\@.$2";
-      $newUnitFile = "$out/etc/systemd/system/$baseUnit";
-    }
-
-    my $baseName = $baseUnit;
-    $baseName =~ s/\.[a-z]*$//;
-
-    handleModifiedUnit($unit, $baseName, $newUnitFile, $activePrev, \%unitsToAlsoStop, \%unitsToStart, \%unitsToReload, \%unitsToRestart, %unitsToAlsoSkip);
-}
-unlink($restartByActivationFile);
-
-my @unitsToAlsoStopFiltered = filterUnits(\%unitsToAlsoStop);
-if (scalar(keys %unitsToAlsoStop) > 0) {
-    print STDERR "stopping the following units as well: ", join(", ", @unitsToAlsoStopFiltered), "\n"
-        if scalar @unitsToAlsoStopFiltered;
-    system("$curSystemd/systemctl", "stop", "--", sort(keys %unitsToAlsoStop));
-}
+# stopped are already stopped before the activation script is run.
+$unitsToRestart{$_} = 1 foreach
+    split('\n', read_file($restartByActivationFile, err_mode => 'quiet') // "");
 
-print STDERR "NOT restarting the following changed units as well: ", join(", ", sort(keys %unitsToAlsoSkip)), "\n"
-    if scalar(keys %unitsToAlsoSkip) > 0;
+$unitsToReload{$_} = 1 foreach
+    split('\n', read_file($reloadByActivationFile, err_mode => 'quiet') // "");
 
 # Restart systemd if necessary. Note that this is done using the
 # current version of systemd, just in case the new one has trouble
@@ -537,40 +480,14 @@ if (scalar(keys %unitsToReload) > 0) {
     print STDERR "reloading the following units: ", join(", ", sort(keys %unitsToReload)), "\n";
     system("@systemd@/bin/systemctl", "reload", "--", sort(keys %unitsToReload)) == 0 or $res = 4;
     unlink($reloadListFile);
+    unlink($reloadByActivationFile);
 }
 
 # Restart changed services (those that have to be restarted rather
 # than stopped and started).
 if (scalar(keys %unitsToRestart) > 0) {
     print STDERR "restarting the following units: ", join(", ", sort(keys %unitsToRestart)), "\n";
-
-    # We split the units to be restarted into sockets and non-sockets.
-    # This is because restarting sockets may fail which is not bad by
-    # itself but which will prevent changes on the sockets. We usually
-    # restart the socket and stop the service before that. Restarting
-    # the socket will fail however when the service was re-activated
-    # in the meantime. There is no proper way to prevent that from happening.
-    my @unitsWithErrorHandling = grep { $_ !~ /\.socket$/ } sort(keys %unitsToRestart);
-    my @unitsWithoutErrorHandling = grep { $_ =~ /\.socket$/ } sort(keys %unitsToRestart);
-
-    if (scalar(@unitsWithErrorHandling) > 0) {
-        system("@systemd@/bin/systemctl", "restart", "--", @unitsWithErrorHandling) == 0 or $res = 4;
-    }
-    if (scalar(@unitsWithoutErrorHandling) > 0) {
-        # Don't print warnings from systemctl
-        no warnings 'once';
-        open(OLDERR, ">&", \*STDERR);
-        close(STDERR);
-
-        my $ret = system("@systemd@/bin/systemctl", "restart", "--", @unitsWithoutErrorHandling);
-
-        # Print stderr again
-        open(STDERR, ">&OLDERR");
-
-        if ($ret ne 0) {
-            print STDERR "warning: some sockets failed to restart. Please check your journal (journalctl -eb) and act accordingly.\n";
-        }
-    }
+    system("@systemd@/bin/systemctl", "restart", "--", sort(keys %unitsToRestart)) == 0 or $res = 4;
     unlink($restartListFile);
     unlink($restartByActivationFile);
 }
@@ -581,7 +498,6 @@ if (scalar(keys %unitsToRestart) > 0) {
 # that are symlinks to other units.  We shouldn't start both at the
 # same time because we'll get a "Failed to add path to set" error from
 # systemd.
-my @unitsToStartFiltered = filterUnits(\%unitsToStart);
 print STDERR "starting the following units: ", join(", ", @unitsToStartFiltered), "\n"
     if scalar @unitsToStartFiltered;
 system("@systemd@/bin/systemctl", "start", "--", sort(keys %unitsToStart)) == 0 or $res = 4;
diff --git a/nixos/modules/system/activation/top-level.nix b/nixos/modules/system/activation/top-level.nix
index 68da910d29cc8..501998fa399e2 100644
--- a/nixos/modules/system/activation/top-level.nix
+++ b/nixos/modules/system/activation/top-level.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, modules, baseModules, specialArgs, ... }:
+{ config, lib, pkgs, extendModules, noUserModules, ... }:
 
 with lib;
 
@@ -11,16 +11,10 @@ let
   # you can provide an easy way to boot the same configuration
   # as you use, but with another kernel
   # !!! fix this
-  children = mapAttrs (childName: childConfig:
-      (import ../../../lib/eval-config.nix {
-        inherit lib baseModules specialArgs;
-        system = config.nixpkgs.initialSystem;
-        modules =
-           (optionals childConfig.inheritParentConfig modules)
-        ++ [ ./no-clone.nix ]
-        ++ [ childConfig.configuration ];
-      }).config.system.build.toplevel
-    ) config.specialisation;
+  children =
+    mapAttrs
+      (childName: childConfig: childConfig.configuration.system.build.toplevel)
+      config.specialisation;
 
   systemBuilder =
     let
@@ -176,7 +170,11 @@ in
         </screen>
       '';
       type = types.attrsOf (types.submodule (
-        { ... }: {
+        local@{ ... }: let
+          extend = if local.config.inheritParentConfig
+            then extendModules
+            else noUserModules.extendModules;
+        in {
           options.inheritParentConfig = mkOption {
             type = types.bool;
             default = true;
@@ -185,7 +183,15 @@ in
 
           options.configuration = mkOption {
             default = {};
-            description = "Arbitrary NixOS configuration options.";
+            description = ''
+              Arbitrary NixOS configuration.
+
+              Anything you can add to a normal NixOS configuration, you can add
+              here, including imports and config values, although nested
+              specialisations will be ignored.
+            '';
+            visible = "shallow";
+            inherit (extend { modules = [ ./no-clone.nix ]; }) type;
           };
         })
       );
@@ -202,6 +208,7 @@ in
     system.boot.loader.kernelFile = mkOption {
       internal = true;
       default = pkgs.stdenv.hostPlatform.linux-kernel.target;
+      defaultText = literalExpression "pkgs.stdenv.hostPlatform.linux-kernel.target";
       type = types.str;
       description = ''
         Name of the kernel file to be passed to the bootloader.
diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix
index fa8500dd42bdc..8db271f871352 100644
--- a/nixos/modules/system/boot/loader/grub/grub.nix
+++ b/nixos/modules/system/boot/loader/grub/grub.nix
@@ -99,6 +99,7 @@ in
 
       enable = mkOption {
         default = !config.boot.isContainer;
+        defaultText = literalExpression "!config.boot.isContainer";
         type = types.bool;
         description = ''
           Whether to enable the GNU GRUB boot loader.
diff --git a/nixos/modules/system/boot/loader/grub/install-grub.pl b/nixos/modules/system/boot/loader/grub/install-grub.pl
index 4d8537d4c327e..0c93b288fc654 100644
--- a/nixos/modules/system/boot/loader/grub/install-grub.pl
+++ b/nixos/modules/system/boot/loader/grub/install-grub.pl
@@ -103,10 +103,10 @@ if (stat($bootPath)->dev != stat("/nix/store")->dev) {
 
 # Discover information about the location of the bootPath
 struct(Fs => {
-        device => '$',
-        type => '$',
-        mount => '$',
-    });
+    device => '$',
+    type => '$',
+    mount => '$',
+});
 sub PathInMount {
     my ($path, $mount) = @_;
     my @splitMount = split /\//, $mount;
@@ -155,9 +155,9 @@ sub GetFs {
     return $bestFs;
 }
 struct (Grub => {
-        path => '$',
-        search => '$',
-    });
+    path => '$',
+    search => '$',
+});
 my $driveid = 1;
 sub GrubFs {
     my ($dir) = @_;
@@ -254,8 +254,8 @@ if ($grubVersion == 1) {
     # $defaultEntry might be "saved", indicating that we want to use the last selected configuration as default.
     # Incidentally this is already the correct value for the grub 1 config to achieve this behaviour.
     $conf .= "
-    default $defaultEntry
-    timeout $timeout
+        default $defaultEntry
+        timeout $timeout
     ";
     if ($splashImage) {
         copy $splashImage, "$bootPath/background.xpm.gz" or die "cannot copy $splashImage to $bootPath: $!\n";
@@ -305,7 +305,7 @@ else {
 
     if ($copyKernels == 0) {
         $conf .= "
-        " . $grubStore->search;
+            " . $grubStore->search;
     }
     # FIXME: should use grub-mkconfig.
     my $defaultEntryText = $defaultEntry;
@@ -313,55 +313,55 @@ else {
         $defaultEntryText = "\"\${saved_entry}\"";
     }
     $conf .= "
-    " . $grubBoot->search . "
-    if [ -s \$prefix/grubenv ]; then
-    load_env
-    fi
-
-    # ‘grub-reboot’ sets a one-time saved entry, which we process here and
-    # then delete.
-    if [ \"\${next_entry}\" ]; then
-    set default=\"\${next_entry}\"
-    set next_entry=
-    save_env next_entry
-    set timeout=1
-    set boot_once=true
-    else
-    set default=$defaultEntryText
-    set timeout=$timeout
-    fi
-
-    function savedefault {
-        if [ -z \"\${boot_once}\"]; then
-        saved_entry=\"\${chosen}\"
-        save_env saved_entry
+        " . $grubBoot->search . "
+        if [ -s \$prefix/grubenv ]; then
+          load_env
         fi
-    }
 
-    # Setup the graphics stack for bios and efi systems
-    if [ \"\${grub_platform}\" = \"efi\" ]; then
-    insmod efi_gop
-    insmod efi_uga
-    else
-    insmod vbe
-    fi
+        # ‘grub-reboot’ sets a one-time saved entry, which we process here and
+        # then delete.
+        if [ \"\${next_entry}\" ]; then
+          set default=\"\${next_entry}\"
+          set next_entry=
+          save_env next_entry
+          set timeout=1
+          set boot_once=true
+        else
+          set default=$defaultEntryText
+          set timeout=$timeout
+        fi
+
+        function savedefault {
+            if [ -z \"\${boot_once}\"]; then
+            saved_entry=\"\${chosen}\"
+            save_env saved_entry
+            fi
+        }
+
+        # Setup the graphics stack for bios and efi systems
+        if [ \"\${grub_platform}\" = \"efi\" ]; then
+          insmod efi_gop
+          insmod efi_uga
+        else
+          insmod vbe
+        fi
     ";
 
     if ($font) {
         copy $font, "$bootPath/converted-font.pf2" or die "cannot copy $font to $bootPath: $!\n";
         $conf .= "
-        insmod font
-        if loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/converted-font.pf2; then
-        insmod gfxterm
-        if [ \"\${grub_platform}\" = \"efi\" ]; then
-        set gfxmode=$gfxmodeEfi
-        set gfxpayload=$gfxpayloadEfi
-        else
-        set gfxmode=$gfxmodeBios
-        set gfxpayload=$gfxpayloadBios
-        fi
-        terminal_output gfxterm
-        fi
+            insmod font
+            if loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/converted-font.pf2; then
+              insmod gfxterm
+              if [ \"\${grub_platform}\" = \"efi\" ]; then
+                set gfxmode=$gfxmodeEfi
+                set gfxpayload=$gfxpayloadEfi
+              else
+                set gfxmode=$gfxmodeBios
+                set gfxpayload=$gfxpayloadBios
+              fi
+              terminal_output gfxterm
+            fi
         ";
     }
     if ($splashImage) {
@@ -378,14 +378,14 @@ else {
         }
         copy $splashImage, "$bootPath/background$suffix" or die "cannot copy $splashImage to $bootPath: $!\n";
         $conf .= "
-        insmod " . substr($suffix, 1) . "
-        if background_image --mode '$splashMode' " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/background$suffix; then
-        set color_normal=white/black
-        set color_highlight=black/white
-        else
-        set menu_color_normal=cyan/blue
-        set menu_color_highlight=white/blue
-        fi
+            insmod " . substr($suffix, 1) . "
+            if background_image --mode '$splashMode' " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/background$suffix; then
+              set color_normal=white/black
+              set color_highlight=black/white
+            else
+              set menu_color_normal=cyan/blue
+              set menu_color_highlight=white/blue
+            fi
         ";
     }
 
@@ -395,20 +395,20 @@ else {
         # Copy theme
         rcopy($theme, "$bootPath/theme") or die "cannot copy $theme to $bootPath\n";
         $conf .= "
-        # Sets theme.
-        set theme=" . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/theme.txt
-        export theme
-        # Load theme fonts, if any
+            # Sets theme.
+            set theme=" . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/theme.txt
+            export theme
+            # Load theme fonts, if any
         ";
 
         find( { wanted => sub {
-                    if ($_ =~ /\.pf2$/i) {
-                        $font = File::Spec->abs2rel($File::Find::name, $theme);
-                        $conf .= "
-                        loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/$font
-                        ";
-                    }
-                }, no_chdir => 1 }, $theme );
+            if ($_ =~ /\.pf2$/i) {
+                $font = File::Spec->abs2rel($File::Find::name, $theme);
+                $conf .= "
+                    loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/$font
+                ";
+            }
+        }, no_chdir => 1 }, $theme );
     }
 }
 
@@ -474,8 +474,8 @@ sub addEntry {
     # FIXME: $confName
 
     my $kernelParams =
-    "init=" . Cwd::abs_path("$path/init") . " " .
-    readFile("$path/kernel-params");
+        "init=" . Cwd::abs_path("$path/init") . " " .
+        readFile("$path/kernel-params");
     my $xenParams = $xen && -e "$path/xen-params" ? readFile("$path/xen-params") : "";
 
     if ($grubVersion == 1) {
@@ -524,9 +524,9 @@ foreach my $link (@links) {
 
     my $date = strftime("%F", localtime(lstat($link)->mtime));
     my $version =
-    -e "$link/nixos-version"
-    ? readFile("$link/nixos-version")
-    : basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
+        -e "$link/nixos-version"
+        ? readFile("$link/nixos-version")
+        : basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
 
     if ($cfgName) {
         $entryName = $cfgName;
@@ -551,8 +551,8 @@ sub addProfile {
     sub nrFromGen { my ($x) = @_; $x =~ /\/\w+-(\d+)-link/; return $1; }
 
     my @links = sort
-    { nrFromGen($b) <=> nrFromGen($a) }
-    (glob "$profile-*-link");
+        { nrFromGen($b) <=> nrFromGen($a) }
+        (glob "$profile-*-link");
 
     my $curEntry = 0;
     foreach my $link (@links) {
@@ -563,9 +563,9 @@ sub addProfile {
         }
         my $date = strftime("%F", localtime(lstat($link)->mtime));
         my $version =
-        -e "$link/nixos-version"
-        ? readFile("$link/nixos-version")
-        : basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
+            -e "$link/nixos-version"
+            ? readFile("$link/nixos-version")
+            : basename((glob(dirname(Cwd::abs_path("$link/kernel")) . "/lib/modules/*"))[0]);
         addEntry("NixOS - Configuration " . nrFromGen($link) . " ($date - $version)", $link);
     }
 
@@ -653,13 +653,13 @@ foreach my $fn (glob "$bootPath/kernels/*") {
 #
 
 struct(GrubState => {
-        name => '$',
-        version => '$',
-        efi => '$',
-        devices => '$',
-        efiMountPoint => '$',
-        extraGrubInstallArgs => '@',
-    });
+    name => '$',
+    version => '$',
+    efi => '$',
+    devices => '$',
+    efiMountPoint => '$',
+    extraGrubInstallArgs => '@',
+});
 # If you add something to the state file, only add it to the end
 # because it is read line-by-line.
 sub readGrubState {
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 c38bef9d6d4b7..e9697b5f0e64f 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
@@ -244,19 +244,27 @@ def main() -> None:
         subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@"] + flags + ["install"])
     else:
         # Update bootloader to latest if needed
-        systemd_version = subprocess.check_output(["@systemd@/bin/bootctl", "--version"], universal_newlines=True).split()[1]
+        systemd_version = subprocess.check_output(["@systemd@/bin/bootctl", "--version"], universal_newlines=True).split()[2]
         sdboot_status = subprocess.check_output(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "status"], universal_newlines=True)
 
         # See status_binaries() in systemd bootctl.c for code which generates this
-        m = re.search("^\W+File:.*/EFI/(BOOT|systemd)/.*\.efi \(systemd-boot (\d+)\)$",
+        m = re.search("^\W+File:.*/EFI/(BOOT|systemd)/.*\.efi \(systemd-boot ([\d.]+[^)]*)\)$",
                       sdboot_status, re.IGNORECASE | re.MULTILINE)
+
+        needs_install = False
+
         if m is None:
-            print("could not find any previously installed systemd-boot")
+            print("could not find any previously installed systemd-boot, installing.")
+            # Let systemd-boot attempt an installation if a previous one wasn't found
+            needs_install = True
         else:
-            sdboot_version = m.group(2)
-            if systemd_version > sdboot_version:
+            sdboot_version = f'({m.group(2)})'
+            if systemd_version != sdboot_version:
                 print("updating systemd-boot from %s to %s" % (sdboot_version, systemd_version))
-                subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "update"])
+                needs_install = True
+
+        if needs_install:
+            subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "update"])
 
     mkdir_p("@efiSysMountPoint@/efi/nixos")
     mkdir_p("@efiSysMountPoint@/loader/entries")
diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix
index 2e17bdf6bb659..1145831ee2eaa 100644
--- a/nixos/modules/system/boot/networkd.nix
+++ b/nixos/modules/system/boot/networkd.nix
@@ -1,8 +1,8 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, utils, ... }:
 
+with utils.systemdUtils.unitOptions;
+with utils.systemdUtils.lib;
 with lib;
-with import ./systemd-unit-options.nix { inherit config lib; };
-with import ./systemd-lib.nix { inherit config lib pkgs; };
 
 let
 
@@ -572,6 +572,7 @@ let
           "Family"
           "User"
           "SuppressPrefixLength"
+          "Type"
         ])
         (assertInt "TypeOfService")
         (assertRange "TypeOfService" 0 255)
@@ -584,6 +585,7 @@ let
         (assertValueOneOf "Family" ["ipv4" "ipv6" "both"])
         (assertInt "SuppressPrefixLength")
         (assertRange "SuppressPrefixLength" 0 128)
+        (assertValueOneOf "Type" ["blackhole" "unreachable" "prohibit"])
       ];
 
       sectionRoute = checkUnitConfig "Route" [
@@ -821,6 +823,16 @@ let
         (assertValueOneOf "OnLink" boolValues)
       ];
 
+      sectionDHCPServerStaticLease = checkUnitConfig "DHCPServerStaticLease" [
+        (assertOnlyFields [
+          "MACAddress"
+          "Address"
+        ])
+        (assertHasField "MACAddress")
+        (assertHasField "Address")
+        (assertMacAddress "MACAddress")
+      ];
+
     };
   };
 
@@ -1161,6 +1173,25 @@ let
     };
   };
 
+  dhcpServerStaticLeaseOptions = {
+    options = {
+      dhcpServerStaticLeaseConfig = mkOption {
+        default = {};
+        example = { MACAddress = "65:43:4a:5b:d8:5f"; Address = "192.168.1.42"; };
+        type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPServerStaticLease;
+        description = ''
+          Each attribute in this set specifies an option in the
+          <literal>[DHCPServerStaticLease]</literal> section of the unit.  See
+          <citerefentry><refentrytitle>systemd.network</refentrytitle>
+          <manvolnum>5</manvolnum></citerefentry> for details.
+
+          Make sure to configure the corresponding client interface to use
+          <literal>ClientIdentifier=mac</literal>.
+        '';
+      };
+    };
+  };
+
   networkOptions = commonNetworkOptions // {
 
     linkConfig = mkOption {
@@ -1273,6 +1304,17 @@ let
       '';
     };
 
+    dhcpServerStaticLeases = mkOption {
+      default = [];
+      example = [ { MACAddress = "65:43:4a:5b:d8:5f"; Address = "192.168.1.42"; } ];
+      type = with types; listOf (submodule dhcpServerStaticLeaseOptions);
+      description = ''
+        A list of DHCPServerStaticLease sections to be added to the unit.  See
+        <citerefentry><refentrytitle>systemd.network</refentrytitle>
+        <manvolnum>5</manvolnum></citerefentry> for details.
+      '';
+    };
+
     ipv6Prefixes = mkOption {
       default = [];
       example = [ { AddressAutoconfiguration = true; OnLink = true; } ];
@@ -1644,6 +1686,10 @@ let
           [IPv6Prefix]
           ${attrsToSection x.ipv6PrefixConfig}
         '')
+        + flip concatMapStrings def.dhcpServerStaticLeases (x: ''
+          [DHCPServerStaticLease]
+          ${attrsToSection x.dhcpServerStaticLeaseConfig}
+        '')
         + def.extraConfig;
     };
 
diff --git a/nixos/modules/system/boot/plymouth.nix b/nixos/modules/system/boot/plymouth.nix
index 4b8194d2f85c1..78ae8e9d20b77 100644
--- a/nixos/modules/system/boot/plymouth.nix
+++ b/nixos/modules/system/boot/plymouth.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
@@ -7,6 +7,7 @@ let
   inherit (pkgs) plymouth nixos-icons;
 
   cfg = config.boot.plymouth;
+  opt = options.boot.plymouth;
 
   nixosBreezePlymouth = pkgs.plasma5Packages.breeze-plymouth.override {
     logoFile = cfg.logo;
@@ -71,6 +72,11 @@ in
 
       themePackages = mkOption {
         default = lib.optional (cfg.theme == "breeze") nixosBreezePlymouth;
+        defaultText = literalDocBook ''
+          A NixOS branded variant of the breeze theme when
+          <literal>config.${opt.theme} == "breeze"</literal>, otherwise
+          <literal>[ ]</literal>.
+        '';
         type = types.listOf types.package;
         description = ''
           Extra theme packages for plymouth.
diff --git a/nixos/modules/system/boot/resolved.nix b/nixos/modules/system/boot/resolved.nix
index a6fc07da0abbf..21d3fab2f35df 100644
--- a/nixos/modules/system/boot/resolved.nix
+++ b/nixos/modules/system/boot/resolved.nix
@@ -32,6 +32,7 @@ in
 
     services.resolved.domains = mkOption {
       default = config.networking.search;
+      defaultText = literalExpression "config.networking.search";
       example = [ "example.com" ];
       type = types.listOf types.str;
       description = ''
diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh
index 3dfcc010b64e8..98409ed6ae525 100644
--- a/nixos/modules/system/boot/stage-1-init.sh
+++ b/nixos/modules/system/boot/stage-1-init.sh
@@ -119,6 +119,18 @@ specialMount() {
 }
 source @earlyMountScript@
 
+# Copy initrd secrets from /.initrd-secrets to their actual destinations
+if [ -d "/.initrd-secrets" ]; then
+    #
+    # Secrets are named by their full destination pathname and stored
+    # under /.initrd-secrets/
+    #
+    for secret in $(cd "/.initrd-secrets"; find . -type f); do
+        mkdir -p $(dirname "/$secret")
+        cp "/.initrd-secrets/$secret" "$secret"
+    done
+fi
+
 # Log the script output to /dev/kmsg or /run/log/stage-1-init.log.
 mkdir -p /tmp
 mkfifo /tmp/stage-1-init.log.fifo
@@ -251,15 +263,6 @@ if test -n "$debug1devices"; then fail; fi
 @postDeviceCommands@
 
 
-# Return true if the machine is on AC power, or if we can't determine
-# whether it's on AC power.
-onACPower() {
-    ! test -d "/proc/acpi/battery" ||
-    ! ls /proc/acpi/battery/BAT[0-9]* > /dev/null 2>&1 ||
-    ! cat /proc/acpi/battery/BAT*/state | grep "^charging state" | grep -q "discharg"
-}
-
-
 # Check the specified file system, if appropriate.
 checkFS() {
     local device="$1"
@@ -304,13 +307,6 @@ checkFS() {
         return 0
     fi
 
-    # Don't run `fsck' if the machine is on battery power.  !!! Is
-    # this a good idea?
-    if ! onACPower; then
-        echo "on battery power, so no \`fsck' will be performed on \`$device'"
-        return 0
-    fi
-
     echo "checking $device..."
 
     fsckFlags=
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index adbed9d8d58e7..409424a5b0f65 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -411,8 +411,8 @@ let
         ${lib.concatStringsSep "\n" (mapAttrsToList (dest: source:
             let source' = if source == null then dest else toString source; in
               ''
-                mkdir -p $(dirname "$tmp/${dest}")
-                cp -a ${source'} "$tmp/${dest}"
+                mkdir -p $(dirname "$tmp/.initrd-secrets/${dest}")
+                cp -a ${source'} "$tmp/.initrd-secrets/${dest}"
               ''
           ) config.boot.initrd.secrets)
          }
diff --git a/nixos/modules/system/boot/stage-2-init.sh b/nixos/modules/system/boot/stage-2-init.sh
index afaca2e4158d7..a90f58042d2d6 100644..100755
--- a/nixos/modules/system/boot/stage-2-init.sh
+++ b/nixos/modules/system/boot/stage-2-init.sh
@@ -172,4 +172,5 @@ echo "starting systemd..."
 
 PATH=/run/current-system/systemd/lib/systemd:@fsPackagesPath@ \
     LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive @systemdUnitPathEnvVar@ \
+    TZDIR=/etc/zoneinfo \
     exec @systemdExecutable@
diff --git a/nixos/modules/system/boot/systemd-nspawn.nix b/nixos/modules/system/boot/systemd-nspawn.nix
index b450d77429b21..02d2660add897 100644
--- a/nixos/modules/system/boot/systemd-nspawn.nix
+++ b/nixos/modules/system/boot/systemd-nspawn.nix
@@ -1,8 +1,8 @@
-{ config, lib , pkgs, ...}:
+{ config, lib, pkgs, utils, ...}:
 
+with utils.systemdUtils.unitOptions;
+with utils.systemdUtils.lib;
 with lib;
-with import ./systemd-unit-options.nix { inherit config lib; };
-with import ./systemd-lib.nix { inherit config lib pkgs; };
 
 let
   cfg = config.systemd.nspawn;
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index 8fcf62d7fbffd..ec5dea075bbce 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -1,9 +1,9 @@
 { config, lib, pkgs, utils, ... }:
 
 with utils;
+with systemdUtils.unitOptions;
+with systemdUtils.lib;
 with lib;
-with import ./systemd-unit-options.nix { inherit config lib; };
-with import ./systemd-lib.nix { inherit config lib pkgs; };
 
 let
 
@@ -67,6 +67,7 @@ let
       "systemd-user-sessions.service"
       "dbus-org.freedesktop.import1.service"
       "dbus-org.freedesktop.machine1.service"
+      "dbus-org.freedesktop.login1.service"
       "user@.service"
       "user-runtime-dir@.service"
 
diff --git a/nixos/modules/system/boot/timesyncd.nix b/nixos/modules/system/boot/timesyncd.nix
index 692315dbe99c4..5f35a15476965 100644
--- a/nixos/modules/system/boot/timesyncd.nix
+++ b/nixos/modules/system/boot/timesyncd.nix
@@ -9,6 +9,7 @@ with lib;
     services.timesyncd = {
       enable = mkOption {
         default = !config.boot.isContainer;
+        defaultText = literalExpression "!config.boot.isContainer";
         type = types.bool;
         description = ''
           Enables the systemd NTP client daemon.
@@ -16,6 +17,7 @@ with lib;
       };
       servers = mkOption {
         default = config.networking.timeServers;
+        defaultText = literalExpression "config.networking.timeServers";
         type = types.listOf types.str;
         description = ''
           The set of NTP servers from which to synchronise.
diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix
index 65364801c32aa..3bc0dedec00e2 100644
--- a/nixos/modules/tasks/filesystems/zfs.nix
+++ b/nixos/modules/tasks/filesystems/zfs.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, utils, ... }:
+{ config, lib, options, pkgs, utils, ... }:
 #
 # TODO: zfs tunables
 
@@ -8,6 +8,7 @@ with lib;
 let
 
   cfgZfs = config.boot.zfs;
+  optZfs = options.boot.zfs;
   cfgExpandOnBoot = config.services.zfs.expandOnBoot;
   cfgSnapshots = config.services.zfs.autoSnapshot;
   cfgSnapFlags = cfgSnapshots.flags;
@@ -112,6 +113,7 @@ in
         readOnly = true;
         type = types.bool;
         default = inInitrd || inSystem;
+        defaultText = literalDocBook "<literal>true</literal> if ZFS filesystem support is enabled";
         description = "True if ZFS filesystem support is enabled";
       };
 
@@ -346,6 +348,7 @@ in
     services.zfs.zed = {
       enableMail = mkEnableOption "ZED's ability to send emails" // {
         default = cfgZfs.package.enableMail;
+        defaultText = literalExpression "config.${optZfs.package}.enableMail";
       };
 
       settings = mkOption {
diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix
index 49901cda848df..3d1fa793eb378 100644
--- a/nixos/modules/tasks/network-interfaces.nix
+++ b/nixos/modules/tasks/network-interfaces.nix
@@ -6,6 +6,7 @@ with utils;
 let
 
   cfg = config.networking;
+  opt = options.networking;
   interfaces = attrValues cfg.interfaces;
   hasVirtuals = any (i: i.virtual) interfaces;
   hasSits = cfg.sits != { };
@@ -1169,6 +1170,9 @@ in
 
     networking.tempAddresses = mkOption {
       default = if cfg.enableIPv6 then "default" else "disabled";
+      defaultText = literalExpression ''
+        if ''${config.${opt.enableIPv6}} then "default" else "disabled"
+      '';
       type = types.enum (lib.attrNames tempaddrValues);
       description = ''
         Whether to enable IPv6 Privacy Extensions for interfaces not
diff --git a/nixos/modules/tasks/snapraid.nix b/nixos/modules/tasks/snapraid.nix
index 4529009930fcb..c8dde5b48993a 100644
--- a/nixos/modules/tasks/snapraid.nix
+++ b/nixos/modules/tasks/snapraid.nix
@@ -193,7 +193,6 @@ in
             LockPersonality = true;
             MemoryDenyWriteExecute = true;
             NoNewPrivileges = true;
-            PrivateDevices = true;
             PrivateTmp = true;
             ProtectClock = true;
             ProtectControlGroups = true;
@@ -208,7 +207,8 @@ in
             SystemCallArchitectures = "native";
             SystemCallFilter = "@system-service";
             SystemCallErrorNumber = "EPERM";
-            CapabilityBoundingSet = "CAP_DAC_OVERRIDE";
+            CapabilityBoundingSet = "CAP_DAC_OVERRIDE" +
+              lib.optionalString cfg.touchBeforeSync " CAP_FOWNER";
 
             ProtectSystem = "strict";
             ProtectHome = "read-only";
diff --git a/nixos/modules/virtualisation/amazon-ec2-amis.nix b/nixos/modules/virtualisation/amazon-ec2-amis.nix
new file mode 100644
index 0000000000000..91b5237e3371d
--- /dev/null
+++ b/nixos/modules/virtualisation/amazon-ec2-amis.nix
@@ -0,0 +1,444 @@
+let self = {
+  "14.04".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-71c6f470";
+  "14.04".ap-northeast-1.x86_64-linux.pv-ebs = "ami-4dcbf84c";
+  "14.04".ap-northeast-1.x86_64-linux.pv-s3 = "ami-8fc4f68e";
+  "14.04".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-da280888";
+  "14.04".ap-southeast-1.x86_64-linux.pv-ebs = "ami-7a9dbc28";
+  "14.04".ap-southeast-1.x86_64-linux.pv-s3 = "ami-c4290996";
+  "14.04".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-ab523e91";
+  "14.04".ap-southeast-2.x86_64-linux.pv-ebs = "ami-6769055d";
+  "14.04".ap-southeast-2.x86_64-linux.pv-s3 = "ami-15533f2f";
+  "14.04".eu-central-1.x86_64-linux.hvm-ebs = "ami-ba0234a7";
+  "14.04".eu-west-1.x86_64-linux.hvm-ebs = "ami-96cb63e1";
+  "14.04".eu-west-1.x86_64-linux.pv-ebs = "ami-b48c25c3";
+  "14.04".eu-west-1.x86_64-linux.pv-s3 = "ami-06cd6571";
+  "14.04".sa-east-1.x86_64-linux.hvm-ebs = "ami-01b90e1c";
+  "14.04".sa-east-1.x86_64-linux.pv-ebs = "ami-69e35474";
+  "14.04".sa-east-1.x86_64-linux.pv-s3 = "ami-61b90e7c";
+  "14.04".us-east-1.x86_64-linux.hvm-ebs = "ami-58ba3a30";
+  "14.04".us-east-1.x86_64-linux.pv-ebs = "ami-9e0583f6";
+  "14.04".us-east-1.x86_64-linux.pv-s3 = "ami-9cbe3ef4";
+  "14.04".us-west-1.x86_64-linux.hvm-ebs = "ami-0bc3d74e";
+  "14.04".us-west-1.x86_64-linux.pv-ebs = "ami-8b1703ce";
+  "14.04".us-west-1.x86_64-linux.pv-s3 = "ami-27ccd862";
+  "14.04".us-west-2.x86_64-linux.hvm-ebs = "ami-3bf1bf0b";
+  "14.04".us-west-2.x86_64-linux.pv-ebs = "ami-259bd515";
+  "14.04".us-west-2.x86_64-linux.pv-s3 = "ami-07094037";
+
+  "14.12".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-24435f25";
+  "14.12".ap-northeast-1.x86_64-linux.pv-ebs = "ami-b0425eb1";
+  "14.12".ap-northeast-1.x86_64-linux.pv-s3 = "ami-fed3c6ff";
+  "14.12".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-6c765d3e";
+  "14.12".ap-southeast-1.x86_64-linux.pv-ebs = "ami-6a765d38";
+  "14.12".ap-southeast-1.x86_64-linux.pv-s3 = "ami-d1bf9183";
+  "14.12".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-af86f395";
+  "14.12".ap-southeast-2.x86_64-linux.pv-ebs = "ami-b386f389";
+  "14.12".ap-southeast-2.x86_64-linux.pv-s3 = "ami-69c5ae53";
+  "14.12".eu-central-1.x86_64-linux.hvm-ebs = "ami-4a497a57";
+  "14.12".eu-central-1.x86_64-linux.pv-ebs = "ami-4c497a51";
+  "14.12".eu-central-1.x86_64-linux.pv-s3 = "ami-60f2c27d";
+  "14.12".eu-west-1.x86_64-linux.hvm-ebs = "ami-d126a5a6";
+  "14.12".eu-west-1.x86_64-linux.pv-ebs = "ami-0126a576";
+  "14.12".eu-west-1.x86_64-linux.pv-s3 = "ami-deda5fa9";
+  "14.12".sa-east-1.x86_64-linux.hvm-ebs = "ami-2d239e30";
+  "14.12".sa-east-1.x86_64-linux.pv-ebs = "ami-35239e28";
+  "14.12".sa-east-1.x86_64-linux.pv-s3 = "ami-81e3519c";
+  "14.12".us-east-1.x86_64-linux.hvm-ebs = "ami-0c463a64";
+  "14.12".us-east-1.x86_64-linux.pv-ebs = "ami-ac473bc4";
+  "14.12".us-east-1.x86_64-linux.pv-s3 = "ami-00e18a68";
+  "14.12".us-west-1.x86_64-linux.hvm-ebs = "ami-ca534a8f";
+  "14.12".us-west-1.x86_64-linux.pv-ebs = "ami-3e534a7b";
+  "14.12".us-west-1.x86_64-linux.pv-s3 = "ami-2905196c";
+  "14.12".us-west-2.x86_64-linux.hvm-ebs = "ami-fb9dc3cb";
+  "14.12".us-west-2.x86_64-linux.pv-ebs = "ami-899dc3b9";
+  "14.12".us-west-2.x86_64-linux.pv-s3 = "ami-cb7f2dfb";
+
+  "15.09".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-58cac236";
+  "15.09".ap-northeast-1.x86_64-linux.hvm-s3 = "ami-39c8c057";
+  "15.09".ap-northeast-1.x86_64-linux.pv-ebs = "ami-5ac9c134";
+  "15.09".ap-northeast-1.x86_64-linux.pv-s3 = "ami-03cec66d";
+  "15.09".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-2fc2094c";
+  "15.09".ap-southeast-1.x86_64-linux.hvm-s3 = "ami-9ec308fd";
+  "15.09".ap-southeast-1.x86_64-linux.pv-ebs = "ami-95c00bf6";
+  "15.09".ap-southeast-1.x86_64-linux.pv-s3 = "ami-bfc00bdc";
+  "15.09".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-996c4cfa";
+  "15.09".ap-southeast-2.x86_64-linux.hvm-s3 = "ami-3f6e4e5c";
+  "15.09".ap-southeast-2.x86_64-linux.pv-ebs = "ami-066d4d65";
+  "15.09".ap-southeast-2.x86_64-linux.pv-s3 = "ami-cc6e4eaf";
+  "15.09".eu-central-1.x86_64-linux.hvm-ebs = "ami-3f8c6b50";
+  "15.09".eu-central-1.x86_64-linux.hvm-s3 = "ami-5b836434";
+  "15.09".eu-central-1.x86_64-linux.pv-ebs = "ami-118c6b7e";
+  "15.09".eu-central-1.x86_64-linux.pv-s3 = "ami-2c977043";
+  "15.09".eu-west-1.x86_64-linux.hvm-ebs = "ami-9cf04aef";
+  "15.09".eu-west-1.x86_64-linux.hvm-s3 = "ami-2bea5058";
+  "15.09".eu-west-1.x86_64-linux.pv-ebs = "ami-c9e852ba";
+  "15.09".eu-west-1.x86_64-linux.pv-s3 = "ami-c6f64cb5";
+  "15.09".sa-east-1.x86_64-linux.hvm-ebs = "ami-6e52df02";
+  "15.09".sa-east-1.x86_64-linux.hvm-s3 = "ami-1852df74";
+  "15.09".sa-east-1.x86_64-linux.pv-ebs = "ami-4368e52f";
+  "15.09".sa-east-1.x86_64-linux.pv-s3 = "ami-f15ad79d";
+  "15.09".us-east-1.x86_64-linux.hvm-ebs = "ami-84a6a0ee";
+  "15.09".us-east-1.x86_64-linux.hvm-s3 = "ami-06a7a16c";
+  "15.09".us-east-1.x86_64-linux.pv-ebs = "ami-a4a1a7ce";
+  "15.09".us-east-1.x86_64-linux.pv-s3 = "ami-5ba8ae31";
+  "15.09".us-west-1.x86_64-linux.hvm-ebs = "ami-22c8bb42";
+  "15.09".us-west-1.x86_64-linux.hvm-s3 = "ami-a2ccbfc2";
+  "15.09".us-west-1.x86_64-linux.pv-ebs = "ami-10cebd70";
+  "15.09".us-west-1.x86_64-linux.pv-s3 = "ami-fa30429a";
+  "15.09".us-west-2.x86_64-linux.hvm-ebs = "ami-ce57b9ae";
+  "15.09".us-west-2.x86_64-linux.hvm-s3 = "ami-2956b849";
+  "15.09".us-west-2.x86_64-linux.pv-ebs = "ami-005fb160";
+  "15.09".us-west-2.x86_64-linux.pv-s3 = "ami-cd55bbad";
+
+  "16.03".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-40619d21";
+  "16.03".ap-northeast-1.x86_64-linux.hvm-s3 = "ami-ce629eaf";
+  "16.03".ap-northeast-1.x86_64-linux.pv-ebs = "ami-ef639f8e";
+  "16.03".ap-northeast-1.x86_64-linux.pv-s3 = "ami-a1609cc0";
+  "16.03".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-deca00b0";
+  "16.03".ap-northeast-2.x86_64-linux.hvm-s3 = "ami-a3b77dcd";
+  "16.03".ap-northeast-2.x86_64-linux.pv-ebs = "ami-7bcb0115";
+  "16.03".ap-northeast-2.x86_64-linux.pv-s3 = "ami-a2b77dcc";
+  "16.03".ap-south-1.x86_64-linux.hvm-ebs = "ami-0dff9562";
+  "16.03".ap-south-1.x86_64-linux.hvm-s3 = "ami-13f69c7c";
+  "16.03".ap-south-1.x86_64-linux.pv-ebs = "ami-0ef39961";
+  "16.03".ap-south-1.x86_64-linux.pv-s3 = "ami-e0c8a28f";
+  "16.03".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-5e964a3d";
+  "16.03".ap-southeast-1.x86_64-linux.hvm-s3 = "ami-4d964a2e";
+  "16.03".ap-southeast-1.x86_64-linux.pv-ebs = "ami-ec9b478f";
+  "16.03".ap-southeast-1.x86_64-linux.pv-s3 = "ami-999b47fa";
+  "16.03".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-9f7359fc";
+  "16.03".ap-southeast-2.x86_64-linux.hvm-s3 = "ami-987359fb";
+  "16.03".ap-southeast-2.x86_64-linux.pv-ebs = "ami-a2705ac1";
+  "16.03".ap-southeast-2.x86_64-linux.pv-s3 = "ami-a3705ac0";
+  "16.03".eu-central-1.x86_64-linux.hvm-ebs = "ami-17a45178";
+  "16.03".eu-central-1.x86_64-linux.hvm-s3 = "ami-f9a55096";
+  "16.03".eu-central-1.x86_64-linux.pv-ebs = "ami-c8a550a7";
+  "16.03".eu-central-1.x86_64-linux.pv-s3 = "ami-6ea45101";
+  "16.03".eu-west-1.x86_64-linux.hvm-ebs = "ami-b5b3d5c6";
+  "16.03".eu-west-1.x86_64-linux.hvm-s3 = "ami-c986e0ba";
+  "16.03".eu-west-1.x86_64-linux.pv-ebs = "ami-b083e5c3";
+  "16.03".eu-west-1.x86_64-linux.pv-s3 = "ami-3c83e54f";
+  "16.03".sa-east-1.x86_64-linux.hvm-ebs = "ami-f6eb7f9a";
+  "16.03".sa-east-1.x86_64-linux.hvm-s3 = "ami-93e773ff";
+  "16.03".sa-east-1.x86_64-linux.pv-ebs = "ami-cbb82ca7";
+  "16.03".sa-east-1.x86_64-linux.pv-s3 = "ami-abb82cc7";
+  "16.03".us-east-1.x86_64-linux.hvm-ebs = "ami-c123a3d6";
+  "16.03".us-east-1.x86_64-linux.hvm-s3 = "ami-bc25a5ab";
+  "16.03".us-east-1.x86_64-linux.pv-ebs = "ami-bd25a5aa";
+  "16.03".us-east-1.x86_64-linux.pv-s3 = "ami-a325a5b4";
+  "16.03".us-west-1.x86_64-linux.hvm-ebs = "ami-748bcd14";
+  "16.03".us-west-1.x86_64-linux.hvm-s3 = "ami-a68dcbc6";
+  "16.03".us-west-1.x86_64-linux.pv-ebs = "ami-048acc64";
+  "16.03".us-west-1.x86_64-linux.pv-s3 = "ami-208dcb40";
+  "16.03".us-west-2.x86_64-linux.hvm-ebs = "ami-8263a0e2";
+  "16.03".us-west-2.x86_64-linux.hvm-s3 = "ami-925c9ff2";
+  "16.03".us-west-2.x86_64-linux.pv-ebs = "ami-5e61a23e";
+  "16.03".us-west-2.x86_64-linux.pv-s3 = "ami-734c8f13";
+
+  # 16.09.1508.3909827
+  "16.09".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-68453b0f";
+  "16.09".ap-northeast-1.x86_64-linux.hvm-s3 = "ami-f9bec09e";
+  "16.09".ap-northeast-1.x86_64-linux.pv-ebs = "ami-254a3442";
+  "16.09".ap-northeast-1.x86_64-linux.pv-s3 = "ami-ef473988";
+  "16.09".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-18ae7f76";
+  "16.09".ap-northeast-2.x86_64-linux.hvm-s3 = "ami-9eac7df0";
+  "16.09".ap-northeast-2.x86_64-linux.pv-ebs = "ami-57aa7b39";
+  "16.09".ap-northeast-2.x86_64-linux.pv-s3 = "ami-5cae7f32";
+  "16.09".ap-south-1.x86_64-linux.hvm-ebs = "ami-b3f98fdc";
+  "16.09".ap-south-1.x86_64-linux.hvm-s3 = "ami-98e690f7";
+  "16.09".ap-south-1.x86_64-linux.pv-ebs = "ami-aef98fc1";
+  "16.09".ap-south-1.x86_64-linux.pv-s3 = "ami-caf88ea5";
+  "16.09".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-80fb51e3";
+  "16.09".ap-southeast-1.x86_64-linux.hvm-s3 = "ami-2df3594e";
+  "16.09".ap-southeast-1.x86_64-linux.pv-ebs = "ami-37f05a54";
+  "16.09".ap-southeast-1.x86_64-linux.pv-s3 = "ami-27f35944";
+  "16.09".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-57ece834";
+  "16.09".ap-southeast-2.x86_64-linux.hvm-s3 = "ami-87f4f0e4";
+  "16.09".ap-southeast-2.x86_64-linux.pv-ebs = "ami-d8ede9bb";
+  "16.09".ap-southeast-2.x86_64-linux.pv-s3 = "ami-a6ebefc5";
+  "16.09".ca-central-1.x86_64-linux.hvm-ebs = "ami-9f863bfb";
+  "16.09".ca-central-1.x86_64-linux.hvm-s3 = "ami-ea85388e";
+  "16.09".ca-central-1.x86_64-linux.pv-ebs = "ami-ce8a37aa";
+  "16.09".ca-central-1.x86_64-linux.pv-s3 = "ami-448a3720";
+  "16.09".eu-central-1.x86_64-linux.hvm-ebs = "ami-1b884774";
+  "16.09".eu-central-1.x86_64-linux.hvm-s3 = "ami-b08c43df";
+  "16.09".eu-central-1.x86_64-linux.pv-ebs = "ami-888946e7";
+  "16.09".eu-central-1.x86_64-linux.pv-s3 = "ami-06874869";
+  "16.09".eu-west-1.x86_64-linux.hvm-ebs = "ami-1ed3e76d";
+  "16.09".eu-west-1.x86_64-linux.hvm-s3 = "ami-73d1e500";
+  "16.09".eu-west-1.x86_64-linux.pv-ebs = "ami-44c0f437";
+  "16.09".eu-west-1.x86_64-linux.pv-s3 = "ami-f3d8ec80";
+  "16.09".eu-west-2.x86_64-linux.hvm-ebs = "ami-2c9c9648";
+  "16.09".eu-west-2.x86_64-linux.hvm-s3 = "ami-6b9e940f";
+  "16.09".eu-west-2.x86_64-linux.pv-ebs = "ami-f1999395";
+  "16.09".eu-west-2.x86_64-linux.pv-s3 = "ami-bb9f95df";
+  "16.09".sa-east-1.x86_64-linux.hvm-ebs = "ami-a11882cd";
+  "16.09".sa-east-1.x86_64-linux.hvm-s3 = "ami-7726bc1b";
+  "16.09".sa-east-1.x86_64-linux.pv-ebs = "ami-9725bffb";
+  "16.09".sa-east-1.x86_64-linux.pv-s3 = "ami-b027bddc";
+  "16.09".us-east-1.x86_64-linux.hvm-ebs = "ami-854ca593";
+  "16.09".us-east-1.x86_64-linux.hvm-s3 = "ami-2241a834";
+  "16.09".us-east-1.x86_64-linux.pv-ebs = "ami-a441a8b2";
+  "16.09".us-east-1.x86_64-linux.pv-s3 = "ami-e841a8fe";
+  "16.09".us-east-2.x86_64-linux.hvm-ebs = "ami-3f41645a";
+  "16.09".us-east-2.x86_64-linux.hvm-s3 = "ami-804065e5";
+  "16.09".us-east-2.x86_64-linux.pv-ebs = "ami-f1466394";
+  "16.09".us-east-2.x86_64-linux.pv-s3 = "ami-05426760";
+  "16.09".us-west-1.x86_64-linux.hvm-ebs = "ami-c2efbca2";
+  "16.09".us-west-1.x86_64-linux.hvm-s3 = "ami-d71042b7";
+  "16.09".us-west-1.x86_64-linux.pv-ebs = "ami-04e8bb64";
+  "16.09".us-west-1.x86_64-linux.pv-s3 = "ami-31e9ba51";
+  "16.09".us-west-2.x86_64-linux.hvm-ebs = "ami-6449f504";
+  "16.09".us-west-2.x86_64-linux.hvm-s3 = "ami-344af654";
+  "16.09".us-west-2.x86_64-linux.pv-ebs = "ami-6d4af60d";
+  "16.09".us-west-2.x86_64-linux.pv-s3 = "ami-de48f4be";
+
+  # 17.03.885.6024dd4067
+  "17.03".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-dbd0f7bc";
+  "17.03".ap-northeast-1.x86_64-linux.hvm-s3 = "ami-7cdff81b";
+  "17.03".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-c59a48ab";
+  "17.03".ap-northeast-2.x86_64-linux.hvm-s3 = "ami-0b944665";
+  "17.03".ap-south-1.x86_64-linux.hvm-ebs = "ami-4f413220";
+  "17.03".ap-south-1.x86_64-linux.hvm-s3 = "ami-864033e9";
+  "17.03".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-e08c3383";
+  "17.03".ap-southeast-1.x86_64-linux.hvm-s3 = "ami-c28f30a1";
+  "17.03".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-fca9a69f";
+  "17.03".ap-southeast-2.x86_64-linux.hvm-s3 = "ami-3daaa55e";
+  "17.03".ca-central-1.x86_64-linux.hvm-ebs = "ami-9b00bdff";
+  "17.03".ca-central-1.x86_64-linux.hvm-s3 = "ami-e800bd8c";
+  "17.03".eu-central-1.x86_64-linux.hvm-ebs = "ami-5450803b";
+  "17.03".eu-central-1.x86_64-linux.hvm-s3 = "ami-6e2efe01";
+  "17.03".eu-west-1.x86_64-linux.hvm-ebs = "ami-10754c76";
+  "17.03".eu-west-1.x86_64-linux.hvm-s3 = "ami-11734a77";
+  "17.03".eu-west-2.x86_64-linux.hvm-ebs = "ami-ff1d099b";
+  "17.03".eu-west-2.x86_64-linux.hvm-s3 = "ami-fe1d099a";
+  "17.03".sa-east-1.x86_64-linux.hvm-ebs = "ami-d95d3eb5";
+  "17.03".sa-east-1.x86_64-linux.hvm-s3 = "ami-fca2c190";
+  "17.03".us-east-1.x86_64-linux.hvm-ebs = "ami-0940c61f";
+  "17.03".us-east-1.x86_64-linux.hvm-s3 = "ami-674fc971";
+  "17.03".us-east-2.x86_64-linux.hvm-ebs = "ami-afc2e6ca";
+  "17.03".us-east-2.x86_64-linux.hvm-s3 = "ami-a1cde9c4";
+  "17.03".us-west-1.x86_64-linux.hvm-ebs = "ami-587b2138";
+  "17.03".us-west-1.x86_64-linux.hvm-s3 = "ami-70411b10";
+  "17.03".us-west-2.x86_64-linux.hvm-ebs = "ami-a93daac9";
+  "17.03".us-west-2.x86_64-linux.hvm-s3 = "ami-5139ae31";
+
+  # 17.09.2681.59661f21be6
+  "17.09".eu-west-1.x86_64-linux.hvm-ebs = "ami-a30192da";
+  "17.09".eu-west-2.x86_64-linux.hvm-ebs = "ami-295a414d";
+  "17.09".eu-west-3.x86_64-linux.hvm-ebs = "ami-8c0eb9f1";
+  "17.09".eu-central-1.x86_64-linux.hvm-ebs = "ami-266cfe49";
+  "17.09".us-east-1.x86_64-linux.hvm-ebs = "ami-40bee63a";
+  "17.09".us-east-2.x86_64-linux.hvm-ebs = "ami-9d84aff8";
+  "17.09".us-west-1.x86_64-linux.hvm-ebs = "ami-d14142b1";
+  "17.09".us-west-2.x86_64-linux.hvm-ebs = "ami-3eb40346";
+  "17.09".ca-central-1.x86_64-linux.hvm-ebs = "ami-ca8207ae";
+  "17.09".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-84bccff8";
+  "17.09".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-0dc5386f";
+  "17.09".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-89b921ef";
+  "17.09".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-179b3b79";
+  "17.09".sa-east-1.x86_64-linux.hvm-ebs = "ami-4762202b";
+  "17.09".ap-south-1.x86_64-linux.hvm-ebs = "ami-4e376021";
+
+  # 18.03.132946.1caae7247b8
+  "18.03".eu-west-1.x86_64-linux.hvm-ebs = "ami-065c46ec";
+  "18.03".eu-west-2.x86_64-linux.hvm-ebs = "ami-64f31903";
+  "18.03".eu-west-3.x86_64-linux.hvm-ebs = "ami-5a8d3d27";
+  "18.03".eu-central-1.x86_64-linux.hvm-ebs = "ami-09faf9e2";
+  "18.03".us-east-1.x86_64-linux.hvm-ebs = "ami-8b3538f4";
+  "18.03".us-east-2.x86_64-linux.hvm-ebs = "ami-150b3170";
+  "18.03".us-west-1.x86_64-linux.hvm-ebs = "ami-ce06ebad";
+  "18.03".us-west-2.x86_64-linux.hvm-ebs = "ami-586c3520";
+  "18.03".ca-central-1.x86_64-linux.hvm-ebs = "ami-aca72ac8";
+  "18.03".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-aa0b4d40";
+  "18.03".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-d0f254b2";
+  "18.03".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-456511a8";
+  "18.03".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-3366d15d";
+  "18.03".sa-east-1.x86_64-linux.hvm-ebs = "ami-163e1f7a";
+  "18.03".ap-south-1.x86_64-linux.hvm-ebs = "ami-6a390b05";
+
+  # 18.09.910.c15e342304a
+  "18.09".eu-west-1.x86_64-linux.hvm-ebs = "ami-0f412186fb8a0ec97";
+  "18.09".eu-west-2.x86_64-linux.hvm-ebs = "ami-0dada3805ce43c55e";
+  "18.09".eu-west-3.x86_64-linux.hvm-ebs = "ami-074df85565f2e02e2";
+  "18.09".eu-central-1.x86_64-linux.hvm-ebs = "ami-07c9b884e679df4f8";
+  "18.09".us-east-1.x86_64-linux.hvm-ebs = "ami-009c9c3f1af480ff3";
+  "18.09".us-east-2.x86_64-linux.hvm-ebs = "ami-08199961085ea8bc6";
+  "18.09".us-west-1.x86_64-linux.hvm-ebs = "ami-07aa7f56d612ddd38";
+  "18.09".us-west-2.x86_64-linux.hvm-ebs = "ami-01c84b7c368ac24d1";
+  "18.09".ca-central-1.x86_64-linux.hvm-ebs = "ami-04f66113f76198f6c";
+  "18.09".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-0892c7e24ebf2194f";
+  "18.09".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-010730f36424b0a2c";
+  "18.09".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-0cdba8e998f076547";
+  "18.09".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-0400a698e6a9f4a15";
+  "18.09".sa-east-1.x86_64-linux.hvm-ebs = "ami-0e4a8a47fd6db6112";
+  "18.09".ap-south-1.x86_64-linux.hvm-ebs = "ami-0880a678d3f555313";
+
+  # 19.03.172286.8ea36d73256
+  "19.03".eu-west-1.x86_64-linux.hvm-ebs = "ami-0fe40176548ff0940";
+  "19.03".eu-west-2.x86_64-linux.hvm-ebs = "ami-03a40fd3a02fe95ba";
+  "19.03".eu-west-3.x86_64-linux.hvm-ebs = "ami-0436f9da0f20a638e";
+  "19.03".eu-central-1.x86_64-linux.hvm-ebs = "ami-0022b8ea9efde5de4";
+  "19.03".us-east-1.x86_64-linux.hvm-ebs = "ami-0efc58fb70ae9a217";
+  "19.03".us-east-2.x86_64-linux.hvm-ebs = "ami-0abf711b1b34da1af";
+  "19.03".us-west-1.x86_64-linux.hvm-ebs = "ami-07d126e8838c40ec5";
+  "19.03".us-west-2.x86_64-linux.hvm-ebs = "ami-03f8a737546e47fb0";
+  "19.03".ca-central-1.x86_64-linux.hvm-ebs = "ami-03f9fd0ef2e035ede";
+  "19.03".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-0cff66114c652c262";
+  "19.03".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-054c73a7f8d773ea9";
+  "19.03".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-00db62688900456a4";
+  "19.03".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-0485cdd1a5fdd2117";
+  "19.03".sa-east-1.x86_64-linux.hvm-ebs = "ami-0c6a43c6e0ad1f4e2";
+  "19.03".ap-south-1.x86_64-linux.hvm-ebs = "ami-0303deb1b5890f878";
+
+  # 19.09.2243.84af403f54f
+  "19.09".eu-west-1.x86_64-linux.hvm-ebs = "ami-071082f0fa035374f";
+  "19.09".eu-west-2.x86_64-linux.hvm-ebs = "ami-0d9dc33c54d1dc4c3";
+  "19.09".eu-west-3.x86_64-linux.hvm-ebs = "ami-09566799591d1bfed";
+  "19.09".eu-central-1.x86_64-linux.hvm-ebs = "ami-015f8efc2be419b79";
+  "19.09".eu-north-1.x86_64-linux.hvm-ebs = "ami-07fc0a32d885e01ed";
+  "19.09".us-east-1.x86_64-linux.hvm-ebs = "ami-03330d8b51287412f";
+  "19.09".us-east-2.x86_64-linux.hvm-ebs = "ami-0518b4c84972e967f";
+  "19.09".us-west-1.x86_64-linux.hvm-ebs = "ami-06ad07e61a353b4a6";
+  "19.09".us-west-2.x86_64-linux.hvm-ebs = "ami-0e31e30925cf3ce4e";
+  "19.09".ca-central-1.x86_64-linux.hvm-ebs = "ami-07df50fc76702a36d";
+  "19.09".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-0f71ae5d4b0b78d95";
+  "19.09".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-057bbf2b4bd62d210";
+  "19.09".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-02a62555ca182fb5b";
+  "19.09".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-0219dde0e6b7b7b93";
+  "19.09".ap-south-1.x86_64-linux.hvm-ebs = "ami-066f7f2a895c821a1";
+  "19.09".ap-east-1.x86_64-linux.hvm-ebs = "ami-055b2348db2827ff1";
+  "19.09".sa-east-1.x86_64-linux.hvm-ebs = "ami-018aab68377227e06";
+
+  # 20.03.1554.94e39623a49
+  "20.03".eu-west-1.x86_64-linux.hvm-ebs = "ami-02c34db5766cc7013";
+  "20.03".eu-west-2.x86_64-linux.hvm-ebs = "ami-0e32bd8c7853883f1";
+  "20.03".eu-west-3.x86_64-linux.hvm-ebs = "ami-061edb1356c1d69fd";
+  "20.03".eu-central-1.x86_64-linux.hvm-ebs = "ami-0a1a94722dcbff94c";
+  "20.03".eu-north-1.x86_64-linux.hvm-ebs = "ami-02699abfacbb6464b";
+  "20.03".us-east-1.x86_64-linux.hvm-ebs = "ami-0c5e7760748b74e85";
+  "20.03".us-east-2.x86_64-linux.hvm-ebs = "ami-030296bb256764655";
+  "20.03".us-west-1.x86_64-linux.hvm-ebs = "ami-050be818e0266b741";
+  "20.03".us-west-2.x86_64-linux.hvm-ebs = "ami-06562f78dca68eda2";
+  "20.03".ca-central-1.x86_64-linux.hvm-ebs = "ami-02365684a173255c7";
+  "20.03".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-0dbf353e168d155f7";
+  "20.03".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-04c0f3a75f63daddd";
+  "20.03".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-093d9cc49c191eb6c";
+  "20.03".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-0087df91a7b6ebd45";
+  "20.03".ap-south-1.x86_64-linux.hvm-ebs = "ami-0a1a6b569af04af9d";
+  "20.03".ap-east-1.x86_64-linux.hvm-ebs = "ami-0d18fdd309cdefa86";
+  "20.03".sa-east-1.x86_64-linux.hvm-ebs = "ami-09859378158ae971d";
+  # 20.03.2351.f8248ab6d9e-aarch64-linux
+  "20.03".eu-west-1.aarch64-linux.hvm-ebs = "ami-0a4c46dfdfe921aab";
+  "20.03".eu-west-2.aarch64-linux.hvm-ebs = "ami-0b47871912b7d36f9";
+  "20.03".eu-west-3.aarch64-linux.hvm-ebs = "ami-01031e1aa505b8935";
+  "20.03".eu-central-1.aarch64-linux.hvm-ebs = "ami-0bb4669de1f477fd1";
+  # missing "20.03".eu-north-1.aarch64-linux.hvm-ebs = "ami-";
+  "20.03".us-east-1.aarch64-linux.hvm-ebs = "ami-01d2de16a1878271c";
+  "20.03".us-east-2.aarch64-linux.hvm-ebs = "ami-0eade0158b1ff49c0";
+  "20.03".us-west-1.aarch64-linux.hvm-ebs = "ami-0913bf30cb9a764a4";
+  "20.03".us-west-2.aarch64-linux.hvm-ebs = "ami-073449580ff8e82b5";
+  "20.03".ca-central-1.aarch64-linux.hvm-ebs = "ami-050f2e923c4d703c0";
+  "20.03".ap-southeast-1.aarch64-linux.hvm-ebs = "ami-0d11ef6705a9a11a7";
+  "20.03".ap-southeast-2.aarch64-linux.hvm-ebs = "ami-05446a2f818cd3263";
+  "20.03".ap-northeast-1.aarch64-linux.hvm-ebs = "ami-0c057f010065d2453";
+  "20.03".ap-northeast-2.aarch64-linux.hvm-ebs = "ami-0e90eda7f24eb33ab";
+  "20.03".ap-south-1.aarch64-linux.hvm-ebs = "ami-03ba7e9f093f568bc";
+  "20.03".sa-east-1.aarch64-linux.hvm-ebs = "ami-0a8344c6ce6d0c902";
+
+  # 20.09.2016.19db3e5ea27
+  "20.09".eu-west-1.x86_64-linux.hvm-ebs = "ami-0057cb7d614329fa2";
+  "20.09".eu-west-2.x86_64-linux.hvm-ebs = "ami-0d46f16e0bb0ec8fd";
+  "20.09".eu-west-3.x86_64-linux.hvm-ebs = "ami-0e8985c3ea42f87fe";
+  "20.09".eu-central-1.x86_64-linux.hvm-ebs = "ami-0eed77c38432886d2";
+  "20.09".eu-north-1.x86_64-linux.hvm-ebs = "ami-0be5bcadd632bea14";
+  "20.09".us-east-1.x86_64-linux.hvm-ebs = "ami-0a2cce52b42daccc8";
+  "20.09".us-east-2.x86_64-linux.hvm-ebs = "ami-09378bf487b07a4d8";
+  "20.09".us-west-1.x86_64-linux.hvm-ebs = "ami-09b4337b2a9e77485";
+  "20.09".us-west-2.x86_64-linux.hvm-ebs = "ami-081d3bb5fbee0a1ac";
+  "20.09".ca-central-1.x86_64-linux.hvm-ebs = "ami-020c24c6c607e7ac7";
+  "20.09".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-08f648d5db009e67d";
+  "20.09".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-0be390efaccbd40f9";
+  "20.09".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-0c3311601cbe8f927";
+  "20.09".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-0020146701f4d56cf";
+  "20.09".ap-south-1.x86_64-linux.hvm-ebs = "ami-0117e2bd876bb40d1";
+  "20.09".ap-east-1.x86_64-linux.hvm-ebs = "ami-0c42f97e5b1fda92f";
+  "20.09".sa-east-1.x86_64-linux.hvm-ebs = "ami-021637976b094959d";
+  # 20.09.2016.19db3e5ea27-aarch64-linux
+  "20.09".eu-west-1.aarch64-linux.hvm-ebs = "ami-00a02608ff45ff8f9";
+  "20.09".eu-west-2.aarch64-linux.hvm-ebs = "ami-0e991d0f8dca21e20";
+  "20.09".eu-west-3.aarch64-linux.hvm-ebs = "ami-0d18eec4dc48c6f3b";
+  "20.09".eu-central-1.aarch64-linux.hvm-ebs = "ami-01691f25d08f48c9e";
+  "20.09".eu-north-1.aarch64-linux.hvm-ebs = "ami-09bb5aabe567ec6f4";
+  "20.09".us-east-1.aarch64-linux.hvm-ebs = "ami-0504bd006f9eaae42";
+  "20.09".us-east-2.aarch64-linux.hvm-ebs = "ami-00f0f8f2ab2d695ad";
+  "20.09".us-west-1.aarch64-linux.hvm-ebs = "ami-02d147d2cb992f878";
+  "20.09".us-west-2.aarch64-linux.hvm-ebs = "ami-07f40006cf4d4820e";
+  "20.09".ca-central-1.aarch64-linux.hvm-ebs = "ami-0e5f563919a987894";
+  "20.09".ap-southeast-1.aarch64-linux.hvm-ebs = "ami-083e35d1acecae5c1";
+  "20.09".ap-southeast-2.aarch64-linux.hvm-ebs = "ami-052cdc008b245b067";
+  "20.09".ap-northeast-1.aarch64-linux.hvm-ebs = "ami-05e137f373bd72c0c";
+  "20.09".ap-northeast-2.aarch64-linux.hvm-ebs = "ami-020791fe4c32f851a";
+  "20.09".ap-south-1.aarch64-linux.hvm-ebs = "ami-0285bb96a0f2c3955";
+  "20.09".sa-east-1.aarch64-linux.hvm-ebs = "ami-0a55ab650c32be058";
+
+
+  # 21.05.740.aa576357673
+  "21.05".eu-west-1.x86_64-linux.hvm-ebs = "ami-048dbc738074a3083";
+  "21.05".eu-west-2.x86_64-linux.hvm-ebs = "ami-0234cf81fec68315d";
+  "21.05".eu-west-3.x86_64-linux.hvm-ebs = "ami-020e459baf709107d";
+  "21.05".eu-central-1.x86_64-linux.hvm-ebs = "ami-0857d5d1309ab8b77";
+  "21.05".eu-north-1.x86_64-linux.hvm-ebs = "ami-05403e3ae53d3716f";
+  "21.05".us-east-1.x86_64-linux.hvm-ebs = "ami-0d3002ba40b5b9897";
+  "21.05".us-east-2.x86_64-linux.hvm-ebs = "ami-069a0ca1bde6dea52";
+  "21.05".us-west-1.x86_64-linux.hvm-ebs = "ami-0b415460a84bcf9bc";
+  "21.05".us-west-2.x86_64-linux.hvm-ebs = "ami-093cba49754abd7f8";
+  "21.05".ca-central-1.x86_64-linux.hvm-ebs = "ami-065c13e1d52d60b33";
+  "21.05".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-04f570c70ff9b665e";
+  "21.05".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-02a3d1df595df5ef6";
+  "21.05".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-027836fddb5c56012";
+  "21.05".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-0edacd41dc7700c39";
+  "21.05".ap-south-1.x86_64-linux.hvm-ebs = "ami-0b279b5bb55288059";
+  "21.05".ap-east-1.x86_64-linux.hvm-ebs = "ami-06dc98082bc55c1fc";
+  "21.05".sa-east-1.x86_64-linux.hvm-ebs = "ami-04737dd49b98936c6";
+
+  # 21.11.333823.96b4157790f-x86_64-linux
+  "21.11".eu-west-1.x86_64-linux.hvm-ebs = "ami-01d0304a712f2f3f0";
+  "21.11".eu-west-2.x86_64-linux.hvm-ebs = "ami-00e828bfc1e5d09ac";
+  "21.11".eu-west-3.x86_64-linux.hvm-ebs = "ami-0e1ea64430d8103f2";
+  "21.11".eu-central-1.x86_64-linux.hvm-ebs = "ami-0fcf28c07e86142c5";
+  "21.11".eu-north-1.x86_64-linux.hvm-ebs = "ami-0ee83a3c6590fd6b1";
+  "21.11".us-east-1.x86_64-linux.hvm-ebs = "ami-099756bfda4540da0";
+  "21.11".us-east-2.x86_64-linux.hvm-ebs = "ami-0b20a80b82052d23f";
+  "21.11".us-west-1.x86_64-linux.hvm-ebs = "ami-088ea590004b01752";
+  "21.11".us-west-2.x86_64-linux.hvm-ebs = "ami-0025b9d4831b911a7";
+  "21.11".ca-central-1.x86_64-linux.hvm-ebs = "ami-0e67089f898e74443";
+  "21.11".ap-southeast-1.x86_64-linux.hvm-ebs = "ami-0dc8d718279d3402d";
+  "21.11".ap-southeast-2.x86_64-linux.hvm-ebs = "ami-0155e842329970187";
+  "21.11".ap-northeast-1.x86_64-linux.hvm-ebs = "ami-07c95eda953bf5435";
+  "21.11".ap-northeast-2.x86_64-linux.hvm-ebs = "ami-04167df3cd952b3bd";
+  "21.11".ap-south-1.x86_64-linux.hvm-ebs = "ami-0680e05531b3db677";
+  "21.11".ap-east-1.x86_64-linux.hvm-ebs = "ami-0835a3e481dc240f9";
+  "21.11".sa-east-1.x86_64-linux.hvm-ebs = "ami-0f7c354c421348e51";
+
+  # 21.11.333823.96b4157790f-aarch64-linux
+  "21.11".eu-west-1.aarch64-linux.hvm-ebs = "ami-048f3eea6a12c4b3b";
+  "21.11".eu-west-2.aarch64-linux.hvm-ebs = "ami-0e6f18f2009806add";
+  "21.11".eu-west-3.aarch64-linux.hvm-ebs = "ami-0a28d593f5e938d80";
+  "21.11".eu-central-1.aarch64-linux.hvm-ebs = "ami-0b9c95d926ab9474c";
+  "21.11".eu-north-1.aarch64-linux.hvm-ebs = "ami-0f2d400b4a2368a1a";
+  "21.11".us-east-1.aarch64-linux.hvm-ebs = "ami-05afb75585567d386";
+  "21.11".us-east-2.aarch64-linux.hvm-ebs = "ami-07f360673c2fccf8d";
+  "21.11".us-west-1.aarch64-linux.hvm-ebs = "ami-0a6892c61d85774db";
+  "21.11".us-west-2.aarch64-linux.hvm-ebs = "ami-04eaf20283432e852";
+  "21.11".ca-central-1.aarch64-linux.hvm-ebs = "ami-036b69828502e7fdf";
+  "21.11".ap-southeast-1.aarch64-linux.hvm-ebs = "ami-0d52e51e68b6954ef";
+  "21.11".ap-southeast-2.aarch64-linux.hvm-ebs = "ami-000a3019e003f4fb9";
+  "21.11".ap-northeast-1.aarch64-linux.hvm-ebs = "ami-09b0c7928780e25b6";
+  "21.11".ap-northeast-2.aarch64-linux.hvm-ebs = "ami-05f80f3c83083ff62";
+  "21.11".ap-south-1.aarch64-linux.hvm-ebs = "ami-05b2a3ff8489c3f59";
+  "21.11".ap-east-1.aarch64-linux.hvm-ebs = "ami-0aa3b50a4f2822a00";
+  "21.11".sa-east-1.aarch64-linux.hvm-ebs = "ami-00f68eff453d3fe69";
+
+  latest = self."21.11";
+}; in self
diff --git a/nixos/modules/virtualisation/amazon-options.nix b/nixos/modules/virtualisation/amazon-options.nix
index 698edcd835a6d..0465571ca9262 100644
--- a/nixos/modules/virtualisation/amazon-options.nix
+++ b/nixos/modules/virtualisation/amazon-options.nix
@@ -1,6 +1,6 @@
 { config, lib, pkgs, ... }:
 let
-  inherit (lib) types;
+  inherit (lib) literalExpression types;
 in {
   options = {
     ec2 = {
@@ -50,6 +50,7 @@ in {
       };
       efi = lib.mkOption {
         default = pkgs.stdenv.hostPlatform.isAarch64;
+        defaultText = literalExpression "pkgs.stdenv.hostPlatform.isAarch64";
         internal = true;
         description = ''
           Whether the EC2 instance is using EFI.
diff --git a/nixos/modules/virtualisation/cri-o.nix b/nixos/modules/virtualisation/cri-o.nix
index 38766113f3916..cf51100015033 100644
--- a/nixos/modules/virtualisation/cri-o.nix
+++ b/nixos/modules/virtualisation/cri-o.nix
@@ -71,6 +71,10 @@ in
     package = mkOption {
       type = types.package;
       default = crioPackage;
+      defaultText = literalDocBook ''
+        <literal>pkgs.cri-o</literal> built with
+        <literal>config.${opt.extraPackages}</literal>.
+      '';
       internal = true;
       description = ''
         The final CRI-O package (including extra packages).
diff --git a/nixos/modules/virtualisation/docker-rootless.nix b/nixos/modules/virtualisation/docker-rootless.nix
new file mode 100644
index 0000000000000..0e7f050314208
--- /dev/null
+++ b/nixos/modules/virtualisation/docker-rootless.nix
@@ -0,0 +1,98 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  cfg = config.virtualisation.docker.rootless;
+  proxy_env = config.networking.proxy.envVars;
+  settingsFormat = pkgs.formats.json {};
+  daemonSettingsFile = settingsFormat.generate "daemon.json" cfg.daemon.settings;
+
+in
+
+{
+  ###### interface
+
+  options.virtualisation.docker.rootless = {
+    enable = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        This option enables docker in a rootless mode, a daemon that manages
+        linux containers. To interact with the daemon, one needs to set
+        <command>DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock</command>.
+      '';
+    };
+
+    setSocketVariable = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Point <command>DOCKER_HOST</command> to rootless Docker instance for
+        normal users by default.
+      '';
+    };
+
+    daemon.settings = mkOption {
+      type = settingsFormat.type;
+      default = { };
+      example = {
+        ipv6 = true;
+        "fixed-cidr-v6" = "fd00::/80";
+      };
+      description = ''
+        Configuration for docker daemon. The attributes are serialized to JSON used as daemon.conf.
+        See https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file
+      '';
+    };
+
+    package = mkOption {
+      default = pkgs.docker;
+      defaultText = literalExpression "pkgs.docker";
+      type = types.package;
+      example = literalExpression "pkgs.docker-edge";
+      description = ''
+        Docker package to be used in the module.
+      '';
+    };
+  };
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ cfg.package ];
+
+    environment.extraInit = optionalString cfg.setSocketVariable ''
+      if [ -z "$DOCKER_HOST" -a -n "$XDG_RUNTIME_DIR" ]; then
+        export DOCKER_HOST="unix://$XDG_RUNTIME_DIR/docker.sock"
+      fi
+    '';
+
+    # Taken from https://github.com/moby/moby/blob/master/contrib/dockerd-rootless-setuptool.sh
+    systemd.user.services.docker = {
+      wantedBy = [ "default.target" ];
+      description = "Docker Application Container Engine (Rootless)";
+      # needs newuidmap from pkgs.shadow
+      path = [ "/run/wrappers" ];
+      environment = proxy_env;
+      unitConfig.StartLimitInterval = "60s";
+      serviceConfig = {
+        Type = "notify";
+        ExecStart = "${cfg.package}/bin/dockerd-rootless --config-file=${daemonSettingsFile}";
+        ExecReload = "${pkgs.procps}/bin/kill -s HUP $MAINPID";
+        TimeoutSec = 0;
+        RestartSec = 2;
+        Restart = "always";
+        StartLimitBurst = 3;
+        LimitNOFILE = "infinity";
+        LimitNPROC = "infinity";
+        LimitCORE = "infinity";
+        Delegate = true;
+        NotifyAccess = "all";
+        KillMode = "mixed";
+      };
+    };
+  };
+
+}
diff --git a/nixos/modules/virtualisation/docker.nix b/nixos/modules/virtualisation/docker.nix
index 06858e150309c..a69cbe55c7845 100644
--- a/nixos/modules/virtualisation/docker.nix
+++ b/nixos/modules/virtualisation/docker.nix
@@ -8,7 +8,8 @@ let
 
   cfg = config.virtualisation.docker;
   proxy_env = config.networking.proxy.envVars;
-
+  settingsFormat = pkgs.formats.json {};
+  daemonSettingsFile = settingsFormat.generate "daemon.json" cfg.daemon.settings;
 in
 
 {
@@ -52,6 +53,20 @@ in
           '';
       };
 
+    daemon.settings =
+      mkOption {
+        type = settingsFormat.type;
+        default = { };
+        example = {
+          ipv6 = true;
+          "fixed-cidr-v6" = "fd00::/80";
+        };
+        description = ''
+          Configuration for docker daemon. The attributes are serialized to JSON used as daemon.conf.
+          See https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file
+        '';
+      };
+
     enableNvidia =
       mkOption {
         type = types.bool;
@@ -171,12 +186,7 @@ in
             ""
             ''
               ${cfg.package}/bin/dockerd \
-                --group=docker \
-                --host=fd:// \
-                --log-driver=${cfg.logDriver} \
-                ${optionalString (cfg.storageDriver != null) "--storage-driver=${cfg.storageDriver}"} \
-                ${optionalString cfg.liveRestore "--live-restore" } \
-                ${optionalString cfg.enableNvidia "--add-runtime nvidia=${pkgs.nvidia-docker}/bin/nvidia-container-runtime" } \
+                --config-file=${daemonSettingsFile} \
                 ${cfg.extraOptions}
             ''];
           ExecReload=[
@@ -219,6 +229,19 @@ in
         { assertion = cfg.enableNvidia -> config.hardware.opengl.driSupport32Bit or false;
           message = "Option enableNvidia requires 32bit support libraries";
         }];
+
+      virtualisation.docker.daemon.settings = {
+        group = "docker";
+        hosts = [ "fd://" ];
+        log-driver = mkDefault cfg.logDriver;
+        storage-driver = mkIf (cfg.storageDriver != null) (mkDefault cfg.storageDriver);
+        live-restore = mkDefault cfg.liveRestore;
+        runtimes = mkIf cfg.enableNvidia {
+          nvidia = {
+            path = "${pkgs.nvidia-docker}/bin/nvidia-container-runtime";
+          };
+        };
+      };
     }
   ]);
 
diff --git a/nixos/modules/virtualisation/ec2-amis.nix b/nixos/modules/virtualisation/ec2-amis.nix
index d38f41ab39d72..1ffb326ba7a87 100644
--- a/nixos/modules/virtualisation/ec2-amis.nix
+++ b/nixos/modules/virtualisation/ec2-amis.nix
@@ -1,371 +1,9 @@
-let self = {
-  "14.04".ap-northeast-1.hvm-ebs = "ami-71c6f470";
-  "14.04".ap-northeast-1.pv-ebs = "ami-4dcbf84c";
-  "14.04".ap-northeast-1.pv-s3 = "ami-8fc4f68e";
-  "14.04".ap-southeast-1.hvm-ebs = "ami-da280888";
-  "14.04".ap-southeast-1.pv-ebs = "ami-7a9dbc28";
-  "14.04".ap-southeast-1.pv-s3 = "ami-c4290996";
-  "14.04".ap-southeast-2.hvm-ebs = "ami-ab523e91";
-  "14.04".ap-southeast-2.pv-ebs = "ami-6769055d";
-  "14.04".ap-southeast-2.pv-s3 = "ami-15533f2f";
-  "14.04".eu-central-1.hvm-ebs = "ami-ba0234a7";
-  "14.04".eu-west-1.hvm-ebs = "ami-96cb63e1";
-  "14.04".eu-west-1.pv-ebs = "ami-b48c25c3";
-  "14.04".eu-west-1.pv-s3 = "ami-06cd6571";
-  "14.04".sa-east-1.hvm-ebs = "ami-01b90e1c";
-  "14.04".sa-east-1.pv-ebs = "ami-69e35474";
-  "14.04".sa-east-1.pv-s3 = "ami-61b90e7c";
-  "14.04".us-east-1.hvm-ebs = "ami-58ba3a30";
-  "14.04".us-east-1.pv-ebs = "ami-9e0583f6";
-  "14.04".us-east-1.pv-s3 = "ami-9cbe3ef4";
-  "14.04".us-west-1.hvm-ebs = "ami-0bc3d74e";
-  "14.04".us-west-1.pv-ebs = "ami-8b1703ce";
-  "14.04".us-west-1.pv-s3 = "ami-27ccd862";
-  "14.04".us-west-2.hvm-ebs = "ami-3bf1bf0b";
-  "14.04".us-west-2.pv-ebs = "ami-259bd515";
-  "14.04".us-west-2.pv-s3 = "ami-07094037";
-
-  "14.12".ap-northeast-1.hvm-ebs = "ami-24435f25";
-  "14.12".ap-northeast-1.pv-ebs = "ami-b0425eb1";
-  "14.12".ap-northeast-1.pv-s3 = "ami-fed3c6ff";
-  "14.12".ap-southeast-1.hvm-ebs = "ami-6c765d3e";
-  "14.12".ap-southeast-1.pv-ebs = "ami-6a765d38";
-  "14.12".ap-southeast-1.pv-s3 = "ami-d1bf9183";
-  "14.12".ap-southeast-2.hvm-ebs = "ami-af86f395";
-  "14.12".ap-southeast-2.pv-ebs = "ami-b386f389";
-  "14.12".ap-southeast-2.pv-s3 = "ami-69c5ae53";
-  "14.12".eu-central-1.hvm-ebs = "ami-4a497a57";
-  "14.12".eu-central-1.pv-ebs = "ami-4c497a51";
-  "14.12".eu-central-1.pv-s3 = "ami-60f2c27d";
-  "14.12".eu-west-1.hvm-ebs = "ami-d126a5a6";
-  "14.12".eu-west-1.pv-ebs = "ami-0126a576";
-  "14.12".eu-west-1.pv-s3 = "ami-deda5fa9";
-  "14.12".sa-east-1.hvm-ebs = "ami-2d239e30";
-  "14.12".sa-east-1.pv-ebs = "ami-35239e28";
-  "14.12".sa-east-1.pv-s3 = "ami-81e3519c";
-  "14.12".us-east-1.hvm-ebs = "ami-0c463a64";
-  "14.12".us-east-1.pv-ebs = "ami-ac473bc4";
-  "14.12".us-east-1.pv-s3 = "ami-00e18a68";
-  "14.12".us-west-1.hvm-ebs = "ami-ca534a8f";
-  "14.12".us-west-1.pv-ebs = "ami-3e534a7b";
-  "14.12".us-west-1.pv-s3 = "ami-2905196c";
-  "14.12".us-west-2.hvm-ebs = "ami-fb9dc3cb";
-  "14.12".us-west-2.pv-ebs = "ami-899dc3b9";
-  "14.12".us-west-2.pv-s3 = "ami-cb7f2dfb";
-
-  "15.09".ap-northeast-1.hvm-ebs = "ami-58cac236";
-  "15.09".ap-northeast-1.hvm-s3 = "ami-39c8c057";
-  "15.09".ap-northeast-1.pv-ebs = "ami-5ac9c134";
-  "15.09".ap-northeast-1.pv-s3 = "ami-03cec66d";
-  "15.09".ap-southeast-1.hvm-ebs = "ami-2fc2094c";
-  "15.09".ap-southeast-1.hvm-s3 = "ami-9ec308fd";
-  "15.09".ap-southeast-1.pv-ebs = "ami-95c00bf6";
-  "15.09".ap-southeast-1.pv-s3 = "ami-bfc00bdc";
-  "15.09".ap-southeast-2.hvm-ebs = "ami-996c4cfa";
-  "15.09".ap-southeast-2.hvm-s3 = "ami-3f6e4e5c";
-  "15.09".ap-southeast-2.pv-ebs = "ami-066d4d65";
-  "15.09".ap-southeast-2.pv-s3 = "ami-cc6e4eaf";
-  "15.09".eu-central-1.hvm-ebs = "ami-3f8c6b50";
-  "15.09".eu-central-1.hvm-s3 = "ami-5b836434";
-  "15.09".eu-central-1.pv-ebs = "ami-118c6b7e";
-  "15.09".eu-central-1.pv-s3 = "ami-2c977043";
-  "15.09".eu-west-1.hvm-ebs = "ami-9cf04aef";
-  "15.09".eu-west-1.hvm-s3 = "ami-2bea5058";
-  "15.09".eu-west-1.pv-ebs = "ami-c9e852ba";
-  "15.09".eu-west-1.pv-s3 = "ami-c6f64cb5";
-  "15.09".sa-east-1.hvm-ebs = "ami-6e52df02";
-  "15.09".sa-east-1.hvm-s3 = "ami-1852df74";
-  "15.09".sa-east-1.pv-ebs = "ami-4368e52f";
-  "15.09".sa-east-1.pv-s3 = "ami-f15ad79d";
-  "15.09".us-east-1.hvm-ebs = "ami-84a6a0ee";
-  "15.09".us-east-1.hvm-s3 = "ami-06a7a16c";
-  "15.09".us-east-1.pv-ebs = "ami-a4a1a7ce";
-  "15.09".us-east-1.pv-s3 = "ami-5ba8ae31";
-  "15.09".us-west-1.hvm-ebs = "ami-22c8bb42";
-  "15.09".us-west-1.hvm-s3 = "ami-a2ccbfc2";
-  "15.09".us-west-1.pv-ebs = "ami-10cebd70";
-  "15.09".us-west-1.pv-s3 = "ami-fa30429a";
-  "15.09".us-west-2.hvm-ebs = "ami-ce57b9ae";
-  "15.09".us-west-2.hvm-s3 = "ami-2956b849";
-  "15.09".us-west-2.pv-ebs = "ami-005fb160";
-  "15.09".us-west-2.pv-s3 = "ami-cd55bbad";
-
-  "16.03".ap-northeast-1.hvm-ebs = "ami-40619d21";
-  "16.03".ap-northeast-1.hvm-s3 = "ami-ce629eaf";
-  "16.03".ap-northeast-1.pv-ebs = "ami-ef639f8e";
-  "16.03".ap-northeast-1.pv-s3 = "ami-a1609cc0";
-  "16.03".ap-northeast-2.hvm-ebs = "ami-deca00b0";
-  "16.03".ap-northeast-2.hvm-s3 = "ami-a3b77dcd";
-  "16.03".ap-northeast-2.pv-ebs = "ami-7bcb0115";
-  "16.03".ap-northeast-2.pv-s3 = "ami-a2b77dcc";
-  "16.03".ap-south-1.hvm-ebs = "ami-0dff9562";
-  "16.03".ap-south-1.hvm-s3 = "ami-13f69c7c";
-  "16.03".ap-south-1.pv-ebs = "ami-0ef39961";
-  "16.03".ap-south-1.pv-s3 = "ami-e0c8a28f";
-  "16.03".ap-southeast-1.hvm-ebs = "ami-5e964a3d";
-  "16.03".ap-southeast-1.hvm-s3 = "ami-4d964a2e";
-  "16.03".ap-southeast-1.pv-ebs = "ami-ec9b478f";
-  "16.03".ap-southeast-1.pv-s3 = "ami-999b47fa";
-  "16.03".ap-southeast-2.hvm-ebs = "ami-9f7359fc";
-  "16.03".ap-southeast-2.hvm-s3 = "ami-987359fb";
-  "16.03".ap-southeast-2.pv-ebs = "ami-a2705ac1";
-  "16.03".ap-southeast-2.pv-s3 = "ami-a3705ac0";
-  "16.03".eu-central-1.hvm-ebs = "ami-17a45178";
-  "16.03".eu-central-1.hvm-s3 = "ami-f9a55096";
-  "16.03".eu-central-1.pv-ebs = "ami-c8a550a7";
-  "16.03".eu-central-1.pv-s3 = "ami-6ea45101";
-  "16.03".eu-west-1.hvm-ebs = "ami-b5b3d5c6";
-  "16.03".eu-west-1.hvm-s3 = "ami-c986e0ba";
-  "16.03".eu-west-1.pv-ebs = "ami-b083e5c3";
-  "16.03".eu-west-1.pv-s3 = "ami-3c83e54f";
-  "16.03".sa-east-1.hvm-ebs = "ami-f6eb7f9a";
-  "16.03".sa-east-1.hvm-s3 = "ami-93e773ff";
-  "16.03".sa-east-1.pv-ebs = "ami-cbb82ca7";
-  "16.03".sa-east-1.pv-s3 = "ami-abb82cc7";
-  "16.03".us-east-1.hvm-ebs = "ami-c123a3d6";
-  "16.03".us-east-1.hvm-s3 = "ami-bc25a5ab";
-  "16.03".us-east-1.pv-ebs = "ami-bd25a5aa";
-  "16.03".us-east-1.pv-s3 = "ami-a325a5b4";
-  "16.03".us-west-1.hvm-ebs = "ami-748bcd14";
-  "16.03".us-west-1.hvm-s3 = "ami-a68dcbc6";
-  "16.03".us-west-1.pv-ebs = "ami-048acc64";
-  "16.03".us-west-1.pv-s3 = "ami-208dcb40";
-  "16.03".us-west-2.hvm-ebs = "ami-8263a0e2";
-  "16.03".us-west-2.hvm-s3 = "ami-925c9ff2";
-  "16.03".us-west-2.pv-ebs = "ami-5e61a23e";
-  "16.03".us-west-2.pv-s3 = "ami-734c8f13";
-
-  # 16.09.1508.3909827
-  "16.09".ap-northeast-1.hvm-ebs = "ami-68453b0f";
-  "16.09".ap-northeast-1.hvm-s3 = "ami-f9bec09e";
-  "16.09".ap-northeast-1.pv-ebs = "ami-254a3442";
-  "16.09".ap-northeast-1.pv-s3 = "ami-ef473988";
-  "16.09".ap-northeast-2.hvm-ebs = "ami-18ae7f76";
-  "16.09".ap-northeast-2.hvm-s3 = "ami-9eac7df0";
-  "16.09".ap-northeast-2.pv-ebs = "ami-57aa7b39";
-  "16.09".ap-northeast-2.pv-s3 = "ami-5cae7f32";
-  "16.09".ap-south-1.hvm-ebs = "ami-b3f98fdc";
-  "16.09".ap-south-1.hvm-s3 = "ami-98e690f7";
-  "16.09".ap-south-1.pv-ebs = "ami-aef98fc1";
-  "16.09".ap-south-1.pv-s3 = "ami-caf88ea5";
-  "16.09".ap-southeast-1.hvm-ebs = "ami-80fb51e3";
-  "16.09".ap-southeast-1.hvm-s3 = "ami-2df3594e";
-  "16.09".ap-southeast-1.pv-ebs = "ami-37f05a54";
-  "16.09".ap-southeast-1.pv-s3 = "ami-27f35944";
-  "16.09".ap-southeast-2.hvm-ebs = "ami-57ece834";
-  "16.09".ap-southeast-2.hvm-s3 = "ami-87f4f0e4";
-  "16.09".ap-southeast-2.pv-ebs = "ami-d8ede9bb";
-  "16.09".ap-southeast-2.pv-s3 = "ami-a6ebefc5";
-  "16.09".ca-central-1.hvm-ebs = "ami-9f863bfb";
-  "16.09".ca-central-1.hvm-s3 = "ami-ea85388e";
-  "16.09".ca-central-1.pv-ebs = "ami-ce8a37aa";
-  "16.09".ca-central-1.pv-s3 = "ami-448a3720";
-  "16.09".eu-central-1.hvm-ebs = "ami-1b884774";
-  "16.09".eu-central-1.hvm-s3 = "ami-b08c43df";
-  "16.09".eu-central-1.pv-ebs = "ami-888946e7";
-  "16.09".eu-central-1.pv-s3 = "ami-06874869";
-  "16.09".eu-west-1.hvm-ebs = "ami-1ed3e76d";
-  "16.09".eu-west-1.hvm-s3 = "ami-73d1e500";
-  "16.09".eu-west-1.pv-ebs = "ami-44c0f437";
-  "16.09".eu-west-1.pv-s3 = "ami-f3d8ec80";
-  "16.09".eu-west-2.hvm-ebs = "ami-2c9c9648";
-  "16.09".eu-west-2.hvm-s3 = "ami-6b9e940f";
-  "16.09".eu-west-2.pv-ebs = "ami-f1999395";
-  "16.09".eu-west-2.pv-s3 = "ami-bb9f95df";
-  "16.09".sa-east-1.hvm-ebs = "ami-a11882cd";
-  "16.09".sa-east-1.hvm-s3 = "ami-7726bc1b";
-  "16.09".sa-east-1.pv-ebs = "ami-9725bffb";
-  "16.09".sa-east-1.pv-s3 = "ami-b027bddc";
-  "16.09".us-east-1.hvm-ebs = "ami-854ca593";
-  "16.09".us-east-1.hvm-s3 = "ami-2241a834";
-  "16.09".us-east-1.pv-ebs = "ami-a441a8b2";
-  "16.09".us-east-1.pv-s3 = "ami-e841a8fe";
-  "16.09".us-east-2.hvm-ebs = "ami-3f41645a";
-  "16.09".us-east-2.hvm-s3 = "ami-804065e5";
-  "16.09".us-east-2.pv-ebs = "ami-f1466394";
-  "16.09".us-east-2.pv-s3 = "ami-05426760";
-  "16.09".us-west-1.hvm-ebs = "ami-c2efbca2";
-  "16.09".us-west-1.hvm-s3 = "ami-d71042b7";
-  "16.09".us-west-1.pv-ebs = "ami-04e8bb64";
-  "16.09".us-west-1.pv-s3 = "ami-31e9ba51";
-  "16.09".us-west-2.hvm-ebs = "ami-6449f504";
-  "16.09".us-west-2.hvm-s3 = "ami-344af654";
-  "16.09".us-west-2.pv-ebs = "ami-6d4af60d";
-  "16.09".us-west-2.pv-s3 = "ami-de48f4be";
-
-  # 17.03.885.6024dd4067
-  "17.03".ap-northeast-1.hvm-ebs = "ami-dbd0f7bc";
-  "17.03".ap-northeast-1.hvm-s3 = "ami-7cdff81b";
-  "17.03".ap-northeast-2.hvm-ebs = "ami-c59a48ab";
-  "17.03".ap-northeast-2.hvm-s3 = "ami-0b944665";
-  "17.03".ap-south-1.hvm-ebs = "ami-4f413220";
-  "17.03".ap-south-1.hvm-s3 = "ami-864033e9";
-  "17.03".ap-southeast-1.hvm-ebs = "ami-e08c3383";
-  "17.03".ap-southeast-1.hvm-s3 = "ami-c28f30a1";
-  "17.03".ap-southeast-2.hvm-ebs = "ami-fca9a69f";
-  "17.03".ap-southeast-2.hvm-s3 = "ami-3daaa55e";
-  "17.03".ca-central-1.hvm-ebs = "ami-9b00bdff";
-  "17.03".ca-central-1.hvm-s3 = "ami-e800bd8c";
-  "17.03".eu-central-1.hvm-ebs = "ami-5450803b";
-  "17.03".eu-central-1.hvm-s3 = "ami-6e2efe01";
-  "17.03".eu-west-1.hvm-ebs = "ami-10754c76";
-  "17.03".eu-west-1.hvm-s3 = "ami-11734a77";
-  "17.03".eu-west-2.hvm-ebs = "ami-ff1d099b";
-  "17.03".eu-west-2.hvm-s3 = "ami-fe1d099a";
-  "17.03".sa-east-1.hvm-ebs = "ami-d95d3eb5";
-  "17.03".sa-east-1.hvm-s3 = "ami-fca2c190";
-  "17.03".us-east-1.hvm-ebs = "ami-0940c61f";
-  "17.03".us-east-1.hvm-s3 = "ami-674fc971";
-  "17.03".us-east-2.hvm-ebs = "ami-afc2e6ca";
-  "17.03".us-east-2.hvm-s3 = "ami-a1cde9c4";
-  "17.03".us-west-1.hvm-ebs = "ami-587b2138";
-  "17.03".us-west-1.hvm-s3 = "ami-70411b10";
-  "17.03".us-west-2.hvm-ebs = "ami-a93daac9";
-  "17.03".us-west-2.hvm-s3 = "ami-5139ae31";
-
-  # 17.09.2681.59661f21be6
-  "17.09".eu-west-1.hvm-ebs = "ami-a30192da";
-  "17.09".eu-west-2.hvm-ebs = "ami-295a414d";
-  "17.09".eu-west-3.hvm-ebs = "ami-8c0eb9f1";
-  "17.09".eu-central-1.hvm-ebs = "ami-266cfe49";
-  "17.09".us-east-1.hvm-ebs = "ami-40bee63a";
-  "17.09".us-east-2.hvm-ebs = "ami-9d84aff8";
-  "17.09".us-west-1.hvm-ebs = "ami-d14142b1";
-  "17.09".us-west-2.hvm-ebs = "ami-3eb40346";
-  "17.09".ca-central-1.hvm-ebs = "ami-ca8207ae";
-  "17.09".ap-southeast-1.hvm-ebs = "ami-84bccff8";
-  "17.09".ap-southeast-2.hvm-ebs = "ami-0dc5386f";
-  "17.09".ap-northeast-1.hvm-ebs = "ami-89b921ef";
-  "17.09".ap-northeast-2.hvm-ebs = "ami-179b3b79";
-  "17.09".sa-east-1.hvm-ebs = "ami-4762202b";
-  "17.09".ap-south-1.hvm-ebs = "ami-4e376021";
-
-  # 18.03.132946.1caae7247b8
-  "18.03".eu-west-1.hvm-ebs = "ami-065c46ec";
-  "18.03".eu-west-2.hvm-ebs = "ami-64f31903";
-  "18.03".eu-west-3.hvm-ebs = "ami-5a8d3d27";
-  "18.03".eu-central-1.hvm-ebs = "ami-09faf9e2";
-  "18.03".us-east-1.hvm-ebs = "ami-8b3538f4";
-  "18.03".us-east-2.hvm-ebs = "ami-150b3170";
-  "18.03".us-west-1.hvm-ebs = "ami-ce06ebad";
-  "18.03".us-west-2.hvm-ebs = "ami-586c3520";
-  "18.03".ca-central-1.hvm-ebs = "ami-aca72ac8";
-  "18.03".ap-southeast-1.hvm-ebs = "ami-aa0b4d40";
-  "18.03".ap-southeast-2.hvm-ebs = "ami-d0f254b2";
-  "18.03".ap-northeast-1.hvm-ebs = "ami-456511a8";
-  "18.03".ap-northeast-2.hvm-ebs = "ami-3366d15d";
-  "18.03".sa-east-1.hvm-ebs = "ami-163e1f7a";
-  "18.03".ap-south-1.hvm-ebs = "ami-6a390b05";
-
-  # 18.09.910.c15e342304a
-  "18.09".eu-west-1.hvm-ebs = "ami-0f412186fb8a0ec97";
-  "18.09".eu-west-2.hvm-ebs = "ami-0dada3805ce43c55e";
-  "18.09".eu-west-3.hvm-ebs = "ami-074df85565f2e02e2";
-  "18.09".eu-central-1.hvm-ebs = "ami-07c9b884e679df4f8";
-  "18.09".us-east-1.hvm-ebs = "ami-009c9c3f1af480ff3";
-  "18.09".us-east-2.hvm-ebs = "ami-08199961085ea8bc6";
-  "18.09".us-west-1.hvm-ebs = "ami-07aa7f56d612ddd38";
-  "18.09".us-west-2.hvm-ebs = "ami-01c84b7c368ac24d1";
-  "18.09".ca-central-1.hvm-ebs = "ami-04f66113f76198f6c";
-  "18.09".ap-southeast-1.hvm-ebs = "ami-0892c7e24ebf2194f";
-  "18.09".ap-southeast-2.hvm-ebs = "ami-010730f36424b0a2c";
-  "18.09".ap-northeast-1.hvm-ebs = "ami-0cdba8e998f076547";
-  "18.09".ap-northeast-2.hvm-ebs = "ami-0400a698e6a9f4a15";
-  "18.09".sa-east-1.hvm-ebs = "ami-0e4a8a47fd6db6112";
-  "18.09".ap-south-1.hvm-ebs = "ami-0880a678d3f555313";
-
-  # 19.03.172286.8ea36d73256
-  "19.03".eu-west-1.hvm-ebs = "ami-0fe40176548ff0940";
-  "19.03".eu-west-2.hvm-ebs = "ami-03a40fd3a02fe95ba";
-  "19.03".eu-west-3.hvm-ebs = "ami-0436f9da0f20a638e";
-  "19.03".eu-central-1.hvm-ebs = "ami-0022b8ea9efde5de4";
-  "19.03".us-east-1.hvm-ebs = "ami-0efc58fb70ae9a217";
-  "19.03".us-east-2.hvm-ebs = "ami-0abf711b1b34da1af";
-  "19.03".us-west-1.hvm-ebs = "ami-07d126e8838c40ec5";
-  "19.03".us-west-2.hvm-ebs = "ami-03f8a737546e47fb0";
-  "19.03".ca-central-1.hvm-ebs = "ami-03f9fd0ef2e035ede";
-  "19.03".ap-southeast-1.hvm-ebs = "ami-0cff66114c652c262";
-  "19.03".ap-southeast-2.hvm-ebs = "ami-054c73a7f8d773ea9";
-  "19.03".ap-northeast-1.hvm-ebs = "ami-00db62688900456a4";
-  "19.03".ap-northeast-2.hvm-ebs = "ami-0485cdd1a5fdd2117";
-  "19.03".sa-east-1.hvm-ebs = "ami-0c6a43c6e0ad1f4e2";
-  "19.03".ap-south-1.hvm-ebs = "ami-0303deb1b5890f878";
-
-  # 19.09.2243.84af403f54f
-  "19.09".eu-west-1.hvm-ebs = "ami-071082f0fa035374f";
-  "19.09".eu-west-2.hvm-ebs = "ami-0d9dc33c54d1dc4c3";
-  "19.09".eu-west-3.hvm-ebs = "ami-09566799591d1bfed";
-  "19.09".eu-central-1.hvm-ebs = "ami-015f8efc2be419b79";
-  "19.09".eu-north-1.hvm-ebs = "ami-07fc0a32d885e01ed";
-  "19.09".us-east-1.hvm-ebs = "ami-03330d8b51287412f";
-  "19.09".us-east-2.hvm-ebs = "ami-0518b4c84972e967f";
-  "19.09".us-west-1.hvm-ebs = "ami-06ad07e61a353b4a6";
-  "19.09".us-west-2.hvm-ebs = "ami-0e31e30925cf3ce4e";
-  "19.09".ca-central-1.hvm-ebs = "ami-07df50fc76702a36d";
-  "19.09".ap-southeast-1.hvm-ebs = "ami-0f71ae5d4b0b78d95";
-  "19.09".ap-southeast-2.hvm-ebs = "ami-057bbf2b4bd62d210";
-  "19.09".ap-northeast-1.hvm-ebs = "ami-02a62555ca182fb5b";
-  "19.09".ap-northeast-2.hvm-ebs = "ami-0219dde0e6b7b7b93";
-  "19.09".ap-south-1.hvm-ebs = "ami-066f7f2a895c821a1";
-  "19.09".ap-east-1.hvm-ebs = "ami-055b2348db2827ff1";
-  "19.09".sa-east-1.hvm-ebs = "ami-018aab68377227e06";
-
-  # 20.03.1554.94e39623a49
-  "20.03".eu-west-1.hvm-ebs = "ami-02c34db5766cc7013";
-  "20.03".eu-west-2.hvm-ebs = "ami-0e32bd8c7853883f1";
-  "20.03".eu-west-3.hvm-ebs = "ami-061edb1356c1d69fd";
-  "20.03".eu-central-1.hvm-ebs = "ami-0a1a94722dcbff94c";
-  "20.03".eu-north-1.hvm-ebs = "ami-02699abfacbb6464b";
-  "20.03".us-east-1.hvm-ebs = "ami-0c5e7760748b74e85";
-  "20.03".us-east-2.hvm-ebs = "ami-030296bb256764655";
-  "20.03".us-west-1.hvm-ebs = "ami-050be818e0266b741";
-  "20.03".us-west-2.hvm-ebs = "ami-06562f78dca68eda2";
-  "20.03".ca-central-1.hvm-ebs = "ami-02365684a173255c7";
-  "20.03".ap-southeast-1.hvm-ebs = "ami-0dbf353e168d155f7";
-  "20.03".ap-southeast-2.hvm-ebs = "ami-04c0f3a75f63daddd";
-  "20.03".ap-northeast-1.hvm-ebs = "ami-093d9cc49c191eb6c";
-  "20.03".ap-northeast-2.hvm-ebs = "ami-0087df91a7b6ebd45";
-  "20.03".ap-south-1.hvm-ebs = "ami-0a1a6b569af04af9d";
-  "20.03".ap-east-1.hvm-ebs = "ami-0d18fdd309cdefa86";
-  "20.03".sa-east-1.hvm-ebs = "ami-09859378158ae971d";
-
-  # 20.09.2016.19db3e5ea27
-  "20.09".eu-west-1.hvm-ebs = "ami-0057cb7d614329fa2";
-  "20.09".eu-west-2.hvm-ebs = "ami-0d46f16e0bb0ec8fd";
-  "20.09".eu-west-3.hvm-ebs = "ami-0e8985c3ea42f87fe";
-  "20.09".eu-central-1.hvm-ebs = "ami-0eed77c38432886d2";
-  "20.09".eu-north-1.hvm-ebs = "ami-0be5bcadd632bea14";
-  "20.09".us-east-1.hvm-ebs = "ami-0a2cce52b42daccc8";
-  "20.09".us-east-2.hvm-ebs = "ami-09378bf487b07a4d8";
-  "20.09".us-west-1.hvm-ebs = "ami-09b4337b2a9e77485";
-  "20.09".us-west-2.hvm-ebs = "ami-081d3bb5fbee0a1ac";
-  "20.09".ca-central-1.hvm-ebs = "ami-020c24c6c607e7ac7";
-  "20.09".ap-southeast-1.hvm-ebs = "ami-08f648d5db009e67d";
-  "20.09".ap-southeast-2.hvm-ebs = "ami-0be390efaccbd40f9";
-  "20.09".ap-northeast-1.hvm-ebs = "ami-0c3311601cbe8f927";
-  "20.09".ap-northeast-2.hvm-ebs = "ami-0020146701f4d56cf";
-  "20.09".ap-south-1.hvm-ebs = "ami-0117e2bd876bb40d1";
-  "20.09".ap-east-1.hvm-ebs = "ami-0c42f97e5b1fda92f";
-  "20.09".sa-east-1.hvm-ebs = "ami-021637976b094959d";
-
-  # 21.05.740.aa576357673
-  "21.05".eu-west-1.hvm-ebs = "ami-048dbc738074a3083";
-  "21.05".eu-west-2.hvm-ebs = "ami-0234cf81fec68315d";
-  "21.05".eu-west-3.hvm-ebs = "ami-020e459baf709107d";
-  "21.05".eu-central-1.hvm-ebs = "ami-0857d5d1309ab8b77";
-  "21.05".eu-north-1.hvm-ebs = "ami-05403e3ae53d3716f";
-  "21.05".us-east-1.hvm-ebs = "ami-0d3002ba40b5b9897";
-  "21.05".us-east-2.hvm-ebs = "ami-069a0ca1bde6dea52";
-  "21.05".us-west-1.hvm-ebs = "ami-0b415460a84bcf9bc";
-  "21.05".us-west-2.hvm-ebs = "ami-093cba49754abd7f8";
-  "21.05".ca-central-1.hvm-ebs = "ami-065c13e1d52d60b33";
-  "21.05".ap-southeast-1.hvm-ebs = "ami-04f570c70ff9b665e";
-  "21.05".ap-southeast-2.hvm-ebs = "ami-02a3d1df595df5ef6";
-  "21.05".ap-northeast-1.hvm-ebs = "ami-027836fddb5c56012";
-  "21.05".ap-northeast-2.hvm-ebs = "ami-0edacd41dc7700c39";
-  "21.05".ap-south-1.hvm-ebs = "ami-0b279b5bb55288059";
-  "21.05".ap-east-1.hvm-ebs = "ami-06dc98082bc55c1fc";
-  "21.05".sa-east-1.hvm-ebs = "ami-04737dd49b98936c6";
-
-  latest = self."21.05";
-}; in self
+# Compatibility shim
+let
+  lib = import ../../../lib;
+  inherit (lib) mapAttrs;
+  everything = import ./amazon-ec2-amis.nix;
+  doAllVersions = mapAttrs (versionName: doRegion);
+  doRegion = mapAttrs (regionName: systems: systems.x86_64-linux);
+in
+  doAllVersions everything
diff --git a/nixos/modules/virtualisation/kubevirt.nix b/nixos/modules/virtualisation/kubevirt.nix
new file mode 100644
index 0000000000000..408822b6af0bd
--- /dev/null
+++ b/nixos/modules/virtualisation/kubevirt.nix
@@ -0,0 +1,30 @@
+{ config, lib, pkgs, ... }:
+
+{
+  imports = [
+    ../profiles/qemu-guest.nix
+  ];
+
+  config = {
+    fileSystems."/" = {
+      device = "/dev/disk/by-label/nixos";
+      fsType = "ext4";
+      autoResize = true;
+    };
+
+    boot.growPartition = true;
+    boot.kernelParams = [ "console=ttyS0" ];
+    boot.loader.grub.device = "/dev/vda";
+    boot.loader.timeout = 0;
+
+    services.qemuGuest.enable = true;
+    services.openssh.enable = true;
+    services.cloud-init.enable = true;
+    systemd.services."serial-getty@ttyS0".enable = true;
+
+    system.build.kubevirtImage = import ../../lib/make-disk-image.nix {
+      inherit lib config pkgs;
+      format = "qcow2";
+    };
+  };
+}
diff --git a/nixos/modules/virtualisation/nixos-containers.nix b/nixos/modules/virtualisation/nixos-containers.nix
index 279c965673539..0838a57f0f372 100644
--- a/nixos/modules/virtualisation/nixos-containers.nix
+++ b/nixos/modules/virtualisation/nixos-containers.nix
@@ -716,9 +716,9 @@ in
               { config =
                   { config, pkgs, ... }:
                   { services.postgresql.enable = true;
-                    services.postgresql.package = pkgs.postgresql_9_6;
+                    services.postgresql.package = pkgs.postgresql_10;
 
-                    system.stateVersion = "17.03";
+                    system.stateVersion = "21.05";
                   };
               };
           }
diff --git a/nixos/modules/virtualisation/oci-containers.nix b/nixos/modules/virtualisation/oci-containers.nix
index 24573bba48000..5af9baff8bc1b 100644
--- a/nixos/modules/virtualisation/oci-containers.nix
+++ b/nixos/modules/virtualisation/oci-containers.nix
@@ -28,7 +28,7 @@ let
             You still need to set the <literal>image</literal> attribute, as it
             will be used as the image name for docker to start a container.
           '';
-          example = literalExpression "pkgs.dockerTools.buildDockerImage {...};";
+          example = literalExpression "pkgs.dockerTools.buildImage {...};";
         };
 
         login = {
diff --git a/nixos/modules/virtualisation/podman.nix b/nixos/modules/virtualisation/podman/default.nix
index 385475c84a1aa..94fd727a4b564 100644
--- a/nixos/modules/virtualisation/podman.nix
+++ b/nixos/modules/virtualisation/podman/default.nix
@@ -39,8 +39,8 @@ let
 in
 {
   imports = [
-    ./podman-dnsname.nix
-    ./podman-network-socket.nix
+    ./dnsname.nix
+    ./network-socket.nix
     (lib.mkRenamedOptionModule [ "virtualisation" "podman" "libpod" ] [ "virtualisation" "containers" "containersConf" ])
   ];
 
diff --git a/nixos/modules/virtualisation/podman-dnsname.nix b/nixos/modules/virtualisation/podman/dnsname.nix
index beef19755079c..beef19755079c 100644
--- a/nixos/modules/virtualisation/podman-dnsname.nix
+++ b/nixos/modules/virtualisation/podman/dnsname.nix
diff --git a/nixos/modules/virtualisation/podman-network-socket-ghostunnel.nix b/nixos/modules/virtualisation/podman/network-socket-ghostunnel.nix
index a0e7e433164a4..a0e7e433164a4 100644
--- a/nixos/modules/virtualisation/podman-network-socket-ghostunnel.nix
+++ b/nixos/modules/virtualisation/podman/network-socket-ghostunnel.nix
diff --git a/nixos/modules/virtualisation/podman-network-socket.nix b/nixos/modules/virtualisation/podman/network-socket.nix
index 1429164630b3e..94d8da9d2b614 100644
--- a/nixos/modules/virtualisation/podman-network-socket.nix
+++ b/nixos/modules/virtualisation/podman/network-socket.nix
@@ -9,6 +9,10 @@ let
 
 in
 {
+  imports = [
+    ./network-socket-ghostunnel.nix
+  ];
+
   options.virtualisation.podman.networkSocket = {
     enable = mkOption {
       type = types.bool;
diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix
index 493c407222f7c..fa3e25afb03eb 100644
--- a/nixos/modules/virtualisation/qemu-vm.nix
+++ b/nixos/modules/virtualisation/qemu-vm.nix
@@ -306,7 +306,7 @@ in
     virtualisation.msize =
       mkOption {
         type = types.ints.positive;
-        default = pkgs.vmTools.default9PMsizeBytes;
+        default = 16384;
         description =
           ''
             The msize (maximum packet size) option passed to 9p file systems, in
@@ -329,6 +329,7 @@ in
       mkOption {
         type = types.str;
         default = "./${config.system.name}.qcow2";
+        defaultText = literalExpression ''"./''${config.system.name}.qcow2"'';
         description =
           ''
             Path to the disk image containing the root filesystem.
@@ -678,6 +679,7 @@ in
       mkOption {
         type = types.str;
         default = "./${config.system.name}-efi-vars.fd";
+        defaultText = literalExpression ''"./''${config.system.name}-efi-vars.fd"'';
         description =
           ''
             Path to nvram image containing UEFI variables.  The will be created
@@ -833,6 +835,7 @@ in
 
     # FIXME: Consolidate this one day.
     virtualisation.qemu.options = mkMerge [
+      [ "-device virtio-keyboard" ]
       (mkIf pkgs.stdenv.hostPlatform.isx86 [
         "-usb" "-device usb-tablet,bus=usb-bus.0"
       ])
diff --git a/nixos/modules/virtualisation/vmware-guest.nix b/nixos/modules/virtualisation/vmware-guest.nix
index 09b26eeb33a92..481dedf840544 100644
--- a/nixos/modules/virtualisation/vmware-guest.nix
+++ b/nixos/modules/virtualisation/vmware-guest.nix
@@ -34,6 +34,8 @@ in
     systemd.services.vmware =
       { description = "VMWare Guest Service";
         wantedBy = [ "multi-user.target" ];
+        after = [ "display-manager.service" ];
+        unitConfig.ConditionVirtualization = "vmware";
         serviceConfig.ExecStart = "${open-vm-tools}/bin/vmtoolsd";
       };
 
@@ -42,8 +44,7 @@ in
       {
         description = "VMware vmblock fuse mount";
         documentation = [ "https://github.com/vmware/open-vm-tools/blob/master/open-vm-tools/vmblock-fuse/design.txt" ];
-        before = [ "vmware.service" ];
-        wants = [ "vmware.service" ];
+        unitConfig.ConditionVirtualization = "vmware";
         what = "${open-vm-tools}/bin/vmware-vmblock-fuse";
         where = "/run/vmblock-fuse";
         type = "fuse";
diff --git a/nixos/modules/virtualisation/waydroid.nix b/nixos/modules/virtualisation/waydroid.nix
index 854ab056dbb84..4fc798ff39f89 100644
--- a/nixos/modules/virtualisation/waydroid.nix
+++ b/nixos/modules/virtualisation/waydroid.nix
@@ -18,7 +18,8 @@ let
     /dev/hwbinder = hidl
   '';
 
-in {
+in
+{
 
   options.virtualisation.waydroid = {
     enable = mkEnableOption "Waydroid";
@@ -36,6 +37,12 @@ in {
       (isEnabled "ASHMEM")
     ];
 
+    /* NOTE: we always enable this flag even if CONFIG_PSI_DEFAULT_DISABLED is not on
+      as reading the kernel config is not always possible and on kernels where it's
+      already on it will be no-op
+    */
+    boot.kernelParams = [ "psi=1" ];
+
     environment.etc."gbinder.d/waydroid.conf".source = waydroidGbinderConf;
 
     environment.systemPackages = with pkgs; [ waydroid ];
diff --git a/nixos/tests/acme.nix b/nixos/tests/acme.nix
index 72b7bb8a396a3..0dd7743c52b67 100644
--- a/nixos/tests/acme.nix
+++ b/nixos/tests/acme.nix
@@ -1,9 +1,9 @@
-let
+import ./make-test-python.nix ({ pkgs, lib, ... }: let
   commonConfig = ./common/acme/client;
 
   dnsServerIP = nodes: nodes.dnsserver.config.networking.primaryIPAddress;
 
-  dnsScript = {pkgs, nodes}: let
+  dnsScript = nodes: let
     dnsAddress = dnsServerIP nodes;
   in pkgs.writeShellScript "dns-hook.sh" ''
     set -euo pipefail
@@ -15,30 +15,137 @@ let
     fi
   '';
 
-  documentRoot = pkgs: pkgs.runCommand "docroot" {} ''
+  dnsConfig = nodes: {
+    dnsProvider = "exec";
+    dnsPropagationCheck = false;
+    credentialsFile = pkgs.writeText "wildcard.env" ''
+      EXEC_PATH=${dnsScript nodes}
+      EXEC_POLLING_INTERVAL=1
+      EXEC_PROPAGATION_TIMEOUT=1
+      EXEC_SEQUENCE_INTERVAL=1
+    '';
+  };
+
+  documentRoot = pkgs.runCommand "docroot" {} ''
     mkdir -p "$out"
     echo hello world > "$out/index.html"
   '';
 
-  vhostBase = pkgs: {
+  vhostBase = {
     forceSSL = true;
-    locations."/".root = documentRoot pkgs;
+    locations."/".root = documentRoot;
+  };
+
+  vhostBaseHttpd = {
+    forceSSL = true;
+    inherit documentRoot;
+  };
+
+  # Base specialisation config for testing general ACME features
+  webserverBasicConfig = {
+    services.nginx.enable = true;
+    services.nginx.virtualHosts."a.example.test" = vhostBase // {
+      enableACME = true;
+    };
   };
 
-in import ./make-test-python.nix ({ lib, ... }: {
+  # Generate specialisations for testing a web server
+  mkServerConfigs = { server, group, vhostBaseData, extraConfig ? {} }: let
+    baseConfig = { nodes, config, specialConfig ? {} }: lib.mkMerge [
+      {
+        security.acme = {
+          defaults = (dnsConfig nodes) // {
+            inherit group;
+          };
+          # One manual wildcard cert
+          certs."example.test" = {
+            domain = "*.example.test";
+          };
+        };
+
+        services."${server}" = {
+          enable = true;
+          virtualHosts = {
+            # Run-of-the-mill vhost using HTTP-01 validation
+            "${server}-http.example.test" = vhostBaseData // {
+              serverAliases = [ "${server}-http-alias.example.test" ];
+              enableACME = true;
+            };
+
+            # Another which inherits the DNS-01 config
+            "${server}-dns.example.test" = vhostBaseData // {
+              serverAliases = [ "${server}-dns-alias.example.test" ];
+              enableACME = true;
+              # Set acmeRoot to null instead of using the default of "/var/lib/acme/acme-challenge"
+              # webroot + dnsProvider are mutually exclusive.
+              acmeRoot = null;
+            };
+
+            # One using the wildcard certificate
+            "${server}-wildcard.example.test" = vhostBaseData // {
+              serverAliases = [ "${server}-wildcard-alias.example.test" ];
+              useACMEHost = "example.test";
+            };
+          };
+        };
+
+        # Used to determine if service reload was triggered
+        systemd.targets."test-renew-${server}" = {
+          wants = [ "acme-${server}-http.example.test.service" ];
+          after = [ "acme-${server}-http.example.test.service" "${server}-config-reload.service" ];
+        };
+      }
+      specialConfig
+      extraConfig
+    ];
+  in {
+    "${server}".configuration = { nodes, config, ... }: baseConfig {
+      inherit nodes config;
+    };
+
+    # Test that server reloads when an alias is removed (and subsequently test removal works in acme)
+    "${server}-remove-alias".configuration = { nodes, config, ... }: baseConfig {
+      inherit nodes config;
+      specialConfig = {
+        # Remove an alias, but create a standalone vhost in its place for testing.
+        # This configuration results in certificate errors as useACMEHost does not imply
+        # append extraDomains, and thus we can validate the SAN is removed.
+        services."${server}" = {
+          virtualHosts."${server}-http.example.test".serverAliases = lib.mkForce [];
+          virtualHosts."${server}-http-alias.example.test" = vhostBaseData // {
+            useACMEHost = "${server}-http.example.test";
+          };
+        };
+      };
+    };
+
+    # Test that the server reloads when only the acme configuration is changed.
+    "${server}-change-acme-conf".configuration = { nodes, config, ... }: baseConfig {
+      inherit nodes config;
+      specialConfig = {
+        security.acme.certs."${server}-http.example.test" = {
+          keyType = "ec384";
+          # Also test that postRun is exec'd as root
+          postRun = "id | grep root";
+        };
+      };
+    };
+  };
+
+in {
   name = "acme";
   meta.maintainers = lib.teams.acme.members;
 
   nodes = {
     # The fake ACME server which will respond to client requests
-    acme = { nodes, lib, ... }: {
+    acme = { nodes, ... }: {
       imports = [ ./common/acme/server ];
       networking.nameservers = lib.mkForce [ (dnsServerIP nodes) ];
     };
 
     # A fake DNS server which can be configured with records as desired
     # Used to test DNS-01 challenge
-    dnsserver = { nodes, pkgs, ... }: {
+    dnsserver = { nodes, ... }: {
       networking.firewall.allowedTCPPorts = [ 8055 53 ];
       networking.firewall.allowedUDPPorts = [ 53 ];
       systemd.services.pebble-challtestsrv = {
@@ -54,7 +161,7 @@ in import ./make-test-python.nix ({ lib, ... }: {
     };
 
     # A web server which will be the node requesting certs
-    webserver = { pkgs, nodes, lib, config, ... }: {
+    webserver = { nodes, config, ... }: {
       imports = [ commonConfig ];
       networking.nameservers = lib.mkForce [ (dnsServerIP nodes) ];
       networking.firewall.allowedTCPPorts = [ 80 443 ];
@@ -63,130 +170,142 @@ in import ./make-test-python.nix ({ lib, ... }: {
       environment.systemPackages = [ pkgs.openssl ];
 
       # Set log level to info so that we can see when the service is reloaded
-      services.nginx.enable = true;
       services.nginx.logError = "stderr info";
 
-      # First tests configure a basic cert and run a bunch of openssl checks
-      services.nginx.virtualHosts."a.example.test" = (vhostBase pkgs) // {
-        enableACME = true;
-      };
-
-      # Used to determine if service reload was triggered
-      systemd.targets.test-renew-nginx = {
-        wants = [ "acme-a.example.test.service" ];
-        after = [ "acme-a.example.test.service" "nginx-config-reload.service" ];
-      };
-
-      # Test that account creation is collated into one service
-      specialisation.account-creation.configuration = { nodes, pkgs, lib, ... }: let
-        email = "newhostmaster@example.test";
-        caDomain = nodes.acme.config.test-support.acme.caDomain;
-        # Exit 99 to make it easier to track if this is the reason a renew failed
-        testScript = ''
-          test -e accounts/${caDomain}/${email}/account.json || exit 99
-        '';
-      in {
-        security.acme.email = lib.mkForce email;
-        systemd.services."b.example.test".preStart = testScript;
-        systemd.services."c.example.test".preStart = testScript;
-
-        services.nginx.virtualHosts."b.example.test" = (vhostBase pkgs) // {
-          enableACME = true;
-        };
-        services.nginx.virtualHosts."c.example.test" = (vhostBase pkgs) // {
-          enableACME = true;
-        };
-      };
-
-      # Cert config changes will not cause the nginx configuration to change.
-      # This tests that the reload service is correctly triggered.
-      # It also tests that postRun is exec'd as root
-      specialisation.cert-change.configuration = { pkgs, ... }: {
-        security.acme.certs."a.example.test".keyType = "ec384";
-        security.acme.certs."a.example.test".postRun = ''
-          set -euo pipefail
-          touch /home/test
-          chown root:root /home/test
-          echo testing > /home/test
-        '';
-      };
-
-      # Now adding an alias to ensure that the certs are updated
-      specialisation.nginx-aliases.configuration = { pkgs, ... }: {
-        services.nginx.virtualHosts."a.example.test" = {
-          serverAliases = [ "b.example.test" ];
-        };
-      };
-
-      # Test OCSP Stapling
-      specialisation.ocsp-stapling.configuration = { pkgs, ... }: {
-        security.acme.certs."a.example.test" = {
-          ocspMustStaple = true;
-        };
-        services.nginx.virtualHosts."a.example.com" = {
-          extraConfig = ''
-            ssl_stapling on;
-            ssl_stapling_verify on;
+      specialisation = {
+        # First derivation used to test general ACME features
+        general.configuration = { ... }: let
+          caDomain = nodes.acme.config.test-support.acme.caDomain;
+          email = config.security.acme.defaults.email;
+          # Exit 99 to make it easier to track if this is the reason a renew failed
+          accountCreateTester = ''
+            test -e accounts/${caDomain}/${email}/account.json || exit 99
           '';
-        };
-      };
-
-      # Test using Apache HTTPD
-      specialisation.httpd-aliases.configuration = { pkgs, config, lib, ... }: {
-        services.nginx.enable = lib.mkForce false;
-        services.httpd.enable = true;
-        services.httpd.adminAddr = config.security.acme.email;
-        services.httpd.virtualHosts."c.example.test" = {
-          serverAliases = [ "d.example.test" ];
-          forceSSL = true;
-          enableACME = true;
-          documentRoot = documentRoot pkgs;
-        };
-
-        # Used to determine if service reload was triggered
-        systemd.targets.test-renew-httpd = {
-          wants = [ "acme-c.example.test.service" ];
-          after = [ "acme-c.example.test.service" "httpd-config-reload.service" ];
-        };
-      };
-
-      # Validation via DNS-01 challenge
-      specialisation.dns-01.configuration = { pkgs, config, nodes, ... }: {
-        security.acme.certs."example.test" = {
-          domain = "*.example.test";
-          group = config.services.nginx.group;
-          dnsProvider = "exec";
-          dnsPropagationCheck = false;
-          credentialsFile = pkgs.writeText "wildcard.env" ''
-            EXEC_PATH=${dnsScript { inherit pkgs nodes; }}
-          '';
-        };
-
-        services.nginx.virtualHosts."dns.example.test" = (vhostBase pkgs) // {
-          useACMEHost = "example.test";
-        };
-      };
-
-      # Validate service relationships by adding a slow start service to nginx' wants.
-      # Reproducer for https://github.com/NixOS/nixpkgs/issues/81842
-      specialisation.slow-startup.configuration = { pkgs, config, nodes, lib, ... }: {
-        systemd.services.my-slow-service = {
-          wantedBy = [ "multi-user.target" "nginx.service" ];
-          before = [ "nginx.service" ];
-          preStart = "sleep 5";
-          script = "${pkgs.python3}/bin/python -m http.server";
+        in lib.mkMerge [
+          webserverBasicConfig
+          {
+            # Used to test that account creation is collated into one service.
+            # These should not run until after acme-finished-a.example.test.target
+            systemd.services."b.example.test".preStart = accountCreateTester;
+            systemd.services."c.example.test".preStart = accountCreateTester;
+
+            services.nginx.virtualHosts."b.example.test" = vhostBase // {
+              enableACME = true;
+            };
+            services.nginx.virtualHosts."c.example.test" = vhostBase // {
+              enableACME = true;
+            };
+          }
+        ];
+
+        # Test OCSP Stapling
+        ocsp-stapling.configuration = { ... }: lib.mkMerge [
+          webserverBasicConfig
+          {
+            security.acme.certs."a.example.test".ocspMustStaple = true;
+            services.nginx.virtualHosts."a.example.test" = {
+              extraConfig = ''
+                ssl_stapling on;
+                ssl_stapling_verify on;
+              '';
+            };
+          }
+        ];
+
+        # Validate service relationships by adding a slow start service to nginx' wants.
+        # Reproducer for https://github.com/NixOS/nixpkgs/issues/81842
+        slow-startup.configuration = { ... }: lib.mkMerge [
+          webserverBasicConfig
+          {
+            systemd.services.my-slow-service = {
+              wantedBy = [ "multi-user.target" "nginx.service" ];
+              before = [ "nginx.service" ];
+              preStart = "sleep 5";
+              script = "${pkgs.python3}/bin/python -m http.server";
+            };
+
+            services.nginx.virtualHosts."slow.example.test" = {
+              forceSSL = true;
+              enableACME = true;
+              locations."/".proxyPass = "http://localhost:8000";
+            };
+          }
+        ];
+
+        # Test lego internal server (listenHTTP option)
+        # Also tests useRoot option
+        lego-server.configuration = { ... }: {
+          security.acme.useRoot = true;
+          security.acme.certs."lego.example.test" = {
+            listenHTTP = ":80";
+            group = "nginx";
+          };
+          services.nginx.enable = true;
+          services.nginx.virtualHosts."lego.example.test" = {
+            useACMEHost = "lego.example.test";
+            onlySSL = true;
+          };
         };
 
-        services.nginx.virtualHosts."slow.example.com" = {
-          forceSSL = true;
-          enableACME = true;
-          locations."/".proxyPass = "http://localhost:8000";
+      # Test compatiblity with Caddy
+      # It only supports useACMEHost, hence not using mkServerConfigs
+      } // (let
+        baseCaddyConfig = { nodes, config, ... }: {
+          security.acme = {
+            defaults = (dnsConfig nodes) // {
+              group = config.services.caddy.group;
+            };
+            # One manual wildcard cert
+            certs."example.test" = {
+              domain = "*.example.test";
+            };
+          };
+
+          services.caddy = {
+            enable = true;
+            virtualHosts."a.exmaple.test" = {
+              useACMEHost = "example.test";
+              extraConfig = ''
+                root * ${documentRoot}
+              '';
+            };
+          };
         };
-      };
+      in {
+        caddy.configuration = baseCaddyConfig;
+
+        # Test that the server reloads when only the acme configuration is changed.
+        "caddy-change-acme-conf".configuration = { nodes, config, ... }: lib.mkMerge [
+          (baseCaddyConfig {
+            inherit nodes config;
+          })
+          {
+            security.acme.certs."example.test" = {
+              keyType = "ec384";
+            };
+          }
+        ];
+
+      # Test compatibility with Nginx
+      }) // (mkServerConfigs {
+          server = "nginx";
+          group = "nginx";
+          vhostBaseData = vhostBase;
+        })
+
+      # Test compatibility with Apache HTTPD
+        // (mkServerConfigs {
+          server = "httpd";
+          group = "wwwrun";
+          vhostBaseData = vhostBaseHttpd;
+          extraConfig = {
+            services.httpd.adminAddr = config.security.acme.defaults.email;
+          };
+        });
     };
 
     # The client will be used to curl the webserver to validate configuration
-    client = {nodes, lib, pkgs, ...}: {
+    client = { nodes, ... }: {
       imports = [ commonConfig ];
       networking.nameservers = lib.mkForce [ (dnsServerIP nodes) ];
 
@@ -195,7 +314,7 @@ in import ./make-test-python.nix ({ lib, ... }: {
     };
   };
 
-  testScript = {nodes, ...}:
+  testScript = { nodes, ... }:
     let
       caDomain = nodes.acme.config.test-support.acme.caDomain;
       newServerSystem = nodes.webserver.config.system.build.toplevel;
@@ -204,23 +323,26 @@ in import ./make-test-python.nix ({ lib, ... }: {
     # Note, wait_for_unit does not work for oneshot services that do not have RemainAfterExit=true,
     # this is because a oneshot goes from inactive => activating => inactive, and never
     # reaches the active state. Targets do not have this issue.
-
     ''
       import time
 
 
-      has_switched = False
+      def switch_to(node, name):
+          # On first switch, this will create a symlink to the current system so that we can
+          # quickly switch between derivations
+          root_specs = "/tmp/specialisation"
+          node.execute(
+            f"test -e {root_specs}"
+            f" || ln -s $(readlink /run/current-system)/specialisation {root_specs}"
+          )
 
+          switcher_path = f"/run/current-system/specialisation/{name}/bin/switch-to-configuration"
+          rc, _ = node.execute(f"test -e '{switcher_path}'")
+          if rc > 0:
+              switcher_path = f"/tmp/specialisation/{name}/bin/switch-to-configuration"
 
-      def switch_to(node, name):
-          global has_switched
-          if has_switched:
-              node.succeed(
-                  "${switchToNewServer}"
-              )
-          has_switched = True
           node.succeed(
-              f"/run/current-system/specialisation/{name}/bin/switch-to-configuration test"
+              f"{switcher_path} test"
           )
 
 
@@ -310,8 +432,7 @@ in import ./make-test-python.nix ({ lib, ... }: {
               return download_ca_certs(node, retries - 1)
 
 
-      client.start()
-      dnsserver.start()
+      start_all()
 
       dnsserver.wait_for_unit("pebble-challtestsrv.service")
       client.wait_for_unit("default.target")
@@ -320,19 +441,30 @@ in import ./make-test-python.nix ({ lib, ... }: {
           'curl --data \'{"host": "${caDomain}", "addresses": ["${nodes.acme.config.networking.primaryIPAddress}"]}\' http://${dnsServerIP nodes}:8055/add-a'
       )
 
-      acme.start()
-      webserver.start()
-
       acme.wait_for_unit("network-online.target")
       acme.wait_for_unit("pebble.service")
 
       download_ca_certs(client)
 
-      with subtest("Can request certificate with HTTPS-01 challenge"):
+      # Perform general tests first
+      switch_to(webserver, "general")
+
+      with subtest("Can request certificate with HTTP-01 challenge"):
           webserver.wait_for_unit("acme-finished-a.example.test.target")
+          check_fullchain(webserver, "a.example.test")
+          check_issuer(webserver, "a.example.test", "pebble")
+          webserver.wait_for_unit("nginx.service")
+          check_connection(client, "a.example.test")
+
+      with subtest("Runs 1 cert for account creation before others"):
+          webserver.wait_for_unit("acme-finished-b.example.test.target")
+          webserver.wait_for_unit("acme-finished-c.example.test.target")
+          check_connection(client, "b.example.test")
+          check_connection(client, "c.example.test")
 
       with subtest("Certificates and accounts have safe + valid permissions"):
-          group = "${nodes.webserver.config.security.acme.certs."a.example.test".group}"
+          # Nginx will set the group appropriately when enableACME is used
+          group = "nginx"
           webserver.succeed(
               f"test $(stat -L -c '%a %U %G' /var/lib/acme/a.example.test/*.pem | tee /dev/stderr | grep '640 acme {group}' | wc -l) -eq 5"
           )
@@ -346,12 +478,6 @@ in import ./make-test-python.nix ({ lib, ... }: {
               f"test $(find /var/lib/acme/accounts -type f -exec stat -L -c '%a %U %G' {{}} \\; | tee /dev/stderr | grep -v '600 acme {group}' | wc -l) -eq 0"
           )
 
-      with subtest("Certs are accepted by web server"):
-          webserver.succeed("systemctl start nginx.service")
-          check_fullchain(webserver, "a.example.test")
-          check_issuer(webserver, "a.example.test", "pebble")
-          check_connection(client, "a.example.test")
-
       # Selfsigned certs tests happen late so we aren't fighting the system init triggering cert renewal
       with subtest("Can generate valid selfsigned certs"):
           webserver.succeed("systemctl clean acme-a.example.test.service --what=state")
@@ -365,77 +491,107 @@ in import ./make-test-python.nix ({ lib, ... }: {
           # Will succeed if nginx can load the certs
           webserver.succeed("systemctl start nginx-config-reload.service")
 
-      with subtest("Can reload nginx when timer triggers renewal"):
-          webserver.succeed("systemctl start test-renew-nginx.target")
-          check_issuer(webserver, "a.example.test", "pebble")
-          check_connection(client, "a.example.test")
-
-      with subtest("Runs 1 cert for account creation before others"):
-          switch_to(webserver, "account-creation")
-          webserver.wait_for_unit("acme-finished-a.example.test.target")
-          check_connection(client, "a.example.test")
-          webserver.wait_for_unit("acme-finished-b.example.test.target")
-          webserver.wait_for_unit("acme-finished-c.example.test.target")
-          check_connection(client, "b.example.test")
-          check_connection(client, "c.example.test")
-
-      with subtest("Can reload web server when cert configuration changes"):
-          switch_to(webserver, "cert-change")
-          webserver.wait_for_unit("acme-finished-a.example.test.target")
-          check_connection_key_bits(client, "a.example.test", "384")
-          webserver.succeed("grep testing /home/test")
-          # Clean to remove the testing file (and anything else messy we did)
-          webserver.succeed("systemctl clean acme-a.example.test.service --what=state")
-
       with subtest("Correctly implements OCSP stapling"):
           switch_to(webserver, "ocsp-stapling")
           webserver.wait_for_unit("acme-finished-a.example.test.target")
           check_stapling(client, "a.example.test")
 
-      with subtest("Can request certificate with HTTPS-01 when nginx startup is delayed"):
+      with subtest("Can request certificate with HTTP-01 using lego's internal web server"):
+          switch_to(webserver, "lego-server")
+          webserver.wait_for_unit("acme-finished-lego.example.test.target")
+          webserver.wait_for_unit("nginx.service")
+          webserver.succeed("echo HENLO && systemctl cat nginx.service")
+          webserver.succeed("test \"$(stat -c '%U' /var/lib/acme/* | uniq)\" = \"root\"")
+          check_connection(client, "a.example.test")
+          check_connection(client, "lego.example.test")
+
+      with subtest("Can request certificate with HTTP-01 when nginx startup is delayed"):
+          webserver.execute("systemctl stop nginx")
           switch_to(webserver, "slow-startup")
-          webserver.wait_for_unit("acme-finished-slow.example.com.target")
-          check_issuer(webserver, "slow.example.com", "pebble")
-          check_connection(client, "slow.example.com")
+          webserver.wait_for_unit("acme-finished-slow.example.test.target")
+          check_issuer(webserver, "slow.example.test", "pebble")
+          webserver.wait_for_unit("nginx.service")
+          check_connection(client, "slow.example.test")
 
-      with subtest("Can request certificate for vhost + aliases (nginx)"):
-          # Check the key hash before and after adding an alias. It should not change.
-          # The previous test reverts the ed384 change
-          webserver.wait_for_unit("acme-finished-a.example.test.target")
-          switch_to(webserver, "nginx-aliases")
-          webserver.wait_for_unit("acme-finished-a.example.test.target")
-          check_issuer(webserver, "a.example.test", "pebble")
+      with subtest("Works with caddy"):
+          switch_to(webserver, "caddy")
+          webserver.wait_for_unit("acme-finished-example.test.target")
+          webserver.wait_for_unit("caddy.service")
+          # FIXME reloading caddy is not sufficient to load new certs.
+          # Restart it manually until this is fixed.
+          webserver.succeed("systemctl restart caddy.service")
           check_connection(client, "a.example.test")
-          check_connection(client, "b.example.test")
 
-      with subtest("Can request certificates for vhost + aliases (apache-httpd)"):
-          try:
-              switch_to(webserver, "httpd-aliases")
-              webserver.wait_for_unit("acme-finished-c.example.test.target")
-          except Exception as err:
-              _, output = webserver.execute(
-                  "cat /var/log/httpd/*.log && ls -al /var/lib/acme/acme-challenge"
-              )
-              print(output)
-              raise err
-          check_issuer(webserver, "c.example.test", "pebble")
-          check_connection(client, "c.example.test")
-          check_connection(client, "d.example.test")
-
-      with subtest("Can reload httpd when timer triggers renewal"):
-          # Switch to selfsigned first
-          webserver.succeed("systemctl clean acme-c.example.test.service --what=state")
-          webserver.succeed("systemctl start acme-selfsigned-c.example.test.service")
-          check_issuer(webserver, "c.example.test", "minica")
-          webserver.succeed("systemctl start httpd-config-reload.service")
-          webserver.succeed("systemctl start test-renew-httpd.target")
-          check_issuer(webserver, "c.example.test", "pebble")
-          check_connection(client, "c.example.test")
-
-      with subtest("Can request wildcard certificates using DNS-01 challenge"):
-          switch_to(webserver, "dns-01")
+      with subtest("security.acme changes reflect on caddy"):
+          switch_to(webserver, "caddy-change-acme-conf")
           webserver.wait_for_unit("acme-finished-example.test.target")
-          check_issuer(webserver, "example.test", "pebble")
-          check_connection(client, "dns.example.test")
+          webserver.wait_for_unit("caddy.service")
+          # FIXME reloading caddy is not sufficient to load new certs.
+          # Restart it manually until this is fixed.
+          webserver.succeed("systemctl restart caddy.service")
+          check_connection_key_bits(client, "a.example.test", "384")
+
+      domains = ["http", "dns", "wildcard"]
+      for server, logsrc in [
+          ("nginx", "journalctl -n 30 -u nginx.service"),
+          ("httpd", "tail -n 30 /var/log/httpd/*.log"),
+      ]:
+          wait_for_server = lambda: webserver.wait_for_unit(f"{server}.service")
+          with subtest(f"Works with {server}"):
+              try:
+                  switch_to(webserver, server)
+                  # Skip wildcard domain for this check ([:-1])
+                  for domain in domains[:-1]:
+                      webserver.wait_for_unit(
+                          f"acme-finished-{server}-{domain}.example.test.target"
+                      )
+              except Exception as err:
+                  _, output = webserver.execute(
+                      f"{logsrc} && ls -al /var/lib/acme/acme-challenge"
+                  )
+                  print(output)
+                  raise err
+
+              wait_for_server()
+
+              for domain in domains[:-1]:
+                  check_issuer(webserver, f"{server}-{domain}.example.test", "pebble")
+              for domain in domains:
+                  check_connection(client, f"{server}-{domain}.example.test")
+                  check_connection(client, f"{server}-{domain}-alias.example.test")
+
+          test_domain = f"{server}-{domains[0]}.example.test"
+
+          with subtest(f"Can reload {server} when timer triggers renewal"):
+              # Switch to selfsigned first
+              webserver.succeed(f"systemctl clean acme-{test_domain}.service --what=state")
+              webserver.succeed(f"systemctl start acme-selfsigned-{test_domain}.service")
+              check_issuer(webserver, test_domain, "minica")
+              webserver.succeed(f"systemctl start {server}-config-reload.service")
+              webserver.succeed(f"systemctl start test-renew-{server}.target")
+              check_issuer(webserver, test_domain, "pebble")
+              check_connection(client, test_domain)
+
+          with subtest("Can remove an alias from a domain + cert is updated"):
+              test_alias = f"{server}-{domains[0]}-alias.example.test"
+              switch_to(webserver, f"{server}-remove-alias")
+              webserver.wait_for_unit(f"acme-finished-{test_domain}.target")
+              wait_for_server()
+              check_connection(client, test_domain)
+              rc, _ = client.execute(
+                  f"openssl s_client -CAfile /tmp/ca.crt -connect {test_alias}:443"
+                  " </dev/null 2>/dev/null | openssl x509 -noout -text"
+                  f" | grep DNS: | grep {test_alias}"
+              )
+              assert rc > 0, "Removed extraDomainName was not removed from the cert"
+
+          with subtest("security.acme changes reflect on web server"):
+              # Switch back to normal server config first, reset everything.
+              switch_to(webserver, server)
+              wait_for_server()
+              switch_to(webserver, f"{server}-change-acme-conf")
+              webserver.wait_for_unit(f"acme-finished-{test_domain}.target")
+              wait_for_server()
+              check_connection_key_bits(client, test_domain, "384")
     '';
 })
diff --git a/nixos/tests/aesmd.nix b/nixos/tests/aesmd.nix
new file mode 100644
index 0000000000000..59c04fe7e96a3
--- /dev/null
+++ b/nixos/tests/aesmd.nix
@@ -0,0 +1,62 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
+  name = "aesmd";
+  meta = {
+    maintainers = with lib.maintainers; [ veehaitch ];
+  };
+
+  machine = { lib, ... }: {
+    services.aesmd = {
+      enable = true;
+      settings = {
+        defaultQuotingType = "ecdsa_256";
+        proxyType = "direct";
+        whitelistUrl = "http://nixos.org";
+      };
+    };
+
+    # Should have access to the AESM socket
+    users.users."sgxtest" = {
+      isNormalUser = true;
+      extraGroups = [ "sgx" ];
+    };
+
+    # Should NOT have access to the AESM socket
+    users.users."nosgxtest".isNormalUser = true;
+
+    # We don't have a real SGX machine in NixOS tests
+    systemd.services.aesmd.unitConfig.AssertPathExists = lib.mkForce [ ];
+  };
+
+  testScript = ''
+    with subtest("aesmd.service starts"):
+      machine.wait_for_unit("aesmd.service")
+      status, main_pid = machine.systemctl("show --property MainPID --value aesmd.service")
+      assert status == 0, "Could not get MainPID of aesmd.service"
+      main_pid = main_pid.strip()
+
+    with subtest("aesmd.service runtime directory permissions"):
+      runtime_dir = "/run/aesmd";
+      res = machine.succeed(f"stat -c '%a %U %G' {runtime_dir}").strip()
+      assert "750 aesmd sgx" == res, f"{runtime_dir} does not have the expected permissions: {res}"
+
+    with subtest("aesm.socket available on host"):
+      socket_path = "/var/run/aesmd/aesm.socket"
+      machine.wait_until_succeeds(f"test -S {socket_path}")
+      machine.succeed(f"test 777 -eq $(stat -c '%a' {socket_path})")
+      for op in [ "-r", "-w", "-x" ]:
+        machine.succeed(f"sudo -u sgxtest test {op} {socket_path}")
+        machine.fail(f"sudo -u nosgxtest test {op} {socket_path}")
+
+    with subtest("Copies white_list_cert_to_be_verify.bin"):
+      whitelist_path = "/var/opt/aesmd/data/white_list_cert_to_be_verify.bin"
+      whitelist_perms = machine.succeed(
+        f"nsenter -m -t {main_pid} ${pkgs.coreutils}/bin/stat -c '%a' {whitelist_path}"
+      ).strip()
+      assert "644" == whitelist_perms, f"white_list_cert_to_be_verify.bin has permissions {whitelist_perms}"
+
+    with subtest("Writes and binds aesm.conf in service namespace"):
+      aesmd_config = machine.succeed(f"nsenter -m -t {main_pid} ${pkgs.coreutils}/bin/cat /etc/aesmd.conf")
+
+      assert aesmd_config == "whitelist url = http://nixos.org\nproxy type = direct\ndefault quoting type = ecdsa_256\n", "aesmd.conf differs"
+  '';
+})
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index b8219416dc42a..0dbd367187716 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -23,6 +23,7 @@ in
 {
   _3proxy = handleTest ./3proxy.nix {};
   acme = handleTest ./acme.nix {};
+  aesmd = handleTest ./aesmd.nix {};
   agda = handleTest ./agda.nix {};
   airsonic = handleTest ./airsonic.nix {};
   amazon-init-shell = handleTest ./amazon-init-shell.nix {};
@@ -44,6 +45,7 @@ in
   boot-stage1 = handleTest ./boot-stage1.nix {};
   borgbackup = handleTest ./borgbackup.nix {};
   botamusique = handleTest ./botamusique.nix {};
+  bpf = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bpf.nix {};
   btrbk = handleTest ./btrbk.nix {};
   buildbot = handleTest ./buildbot.nix {};
   buildkite-agents = handleTest ./buildkite-agents.nix {};
@@ -68,6 +70,7 @@ in
   cloud-init = handleTest ./cloud-init.nix {};
   cntr = handleTest ./cntr.nix {};
   cockroachdb = handleTestOn ["x86_64-linux"] ./cockroachdb.nix {};
+  collectd = handleTest ./collectd.nix {};
   consul = handleTest ./consul.nix {};
   containers-bridge = handleTest ./containers-bridge.nix {};
   containers-custom-pkgs.nix = handleTest ./containers-custom-pkgs.nix {};
@@ -102,6 +105,7 @@ in
   dnscrypt-wrapper = handleTestOn ["x86_64-linux"] ./dnscrypt-wrapper {};
   doas = handleTest ./doas.nix {};
   docker = handleTestOn ["x86_64-linux"] ./docker.nix {};
+  docker-rootless = handleTestOn ["x86_64-linux"] ./docker-rootless.nix {};
   docker-edge = handleTestOn ["x86_64-linux"] ./docker-edge.nix {};
   docker-registry = handleTest ./docker-registry.nix {};
   docker-tools = handleTestOn ["x86_64-linux"] ./docker-tools.nix {};
@@ -111,6 +115,7 @@ in
   dokuwiki = handleTest ./dokuwiki.nix {};
   domination = handleTest ./domination.nix {};
   dovecot = handleTest ./dovecot.nix {};
+  drbd = handleTest ./drbd.nix {};
   ec2-config = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-config or {};
   ec2-nixops = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-nixops or {};
   ecryptfs = handleTest ./ecryptfs.nix {};
@@ -245,10 +250,12 @@ in
   lxd-image-server = handleTest ./lxd-image-server.nix {};
   #logstash = handleTest ./logstash.nix {};
   lorri = handleTest ./lorri/default.nix {};
+  maddy = handleTest ./maddy.nix {};
   magic-wormhole-mailbox-server = handleTest ./magic-wormhole-mailbox-server.nix {};
   magnetico = handleTest ./magnetico.nix {};
   mailcatcher = handleTest ./mailcatcher.nix {};
   mailhog = handleTest ./mailhog.nix {};
+  man = handleTest ./man.nix {};
   mariadb-galera-mariabackup = handleTest ./mysql/mariadb-galera-mariabackup.nix {};
   mariadb-galera-rsync = handleTest ./mysql/mariadb-galera-rsync.nix {};
   matomo = handleTest ./matomo.nix {};
@@ -315,8 +322,8 @@ in
   nginx-sso = handleTest ./nginx-sso.nix {};
   nginx-variants = handleTest ./nginx-variants.nix {};
   nitter = handleTest ./nitter.nix {};
-  nix-serve = handleTest ./nix-ssh-serve.nix {};
-  nix-ssh-serve = handleTest ./nix-ssh-serve.nix {};
+  nix-serve = handleTest ./nix-serve.nix {};
+  nix-serve-ssh = handleTest ./nix-serve-ssh.nix {};
   nixops = handleTest ./nixops/default.nix {};
   nixos-generate-config = handleTest ./nixos-generate-config.nix {};
   node-red = handleTest ./node-red.nix {};
@@ -343,8 +350,9 @@ in
   osrm-backend = handleTest ./osrm-backend.nix {};
   overlayfs = handleTest ./overlayfs.nix {};
   packagekit = handleTest ./packagekit.nix {};
-  pam-oath-login = handleTest ./pam-oath-login.nix {};
-  pam-u2f = handleTest ./pam-u2f.nix {};
+  pam-file-contents = handleTest ./pam/pam-file-contents.nix {};
+  pam-oath-login = handleTest ./pam/pam-oath-login.nix {};
+  pam-u2f = handleTest ./pam/pam-u2f.nix {};
   pantalaimon = handleTest ./matrix/pantalaimon.nix {};
   pantheon = handleTest ./pantheon.nix {};
   paperless-ng = handleTest ./paperless-ng.nix {};
@@ -357,6 +365,7 @@ in
   php = handleTest ./php {};
   php74 = handleTest ./php { php = pkgs.php74; };
   php80 = handleTest ./php { php = pkgs.php80; };
+  php81 = handleTest ./php { php = pkgs.php81; };
   pinnwand = handleTest ./pinnwand.nix {};
   plasma5 = handleTest ./plasma5.nix {};
   plasma5-systemd-start = handleTest ./plasma5-systemd-start.nix {};
@@ -365,9 +374,9 @@ in
   plikd = handleTest ./plikd.nix {};
   plotinus = handleTest ./plotinus.nix {};
   podgrab = handleTest ./podgrab.nix {};
-  podman = handleTestOn ["x86_64-linux"] ./podman.nix {};
-  podman-dnsname = handleTestOn ["x86_64-linux"] ./podman-dnsname.nix {};
-  podman-tls-ghostunnel = handleTestOn ["x86_64-linux"] ./podman-tls-ghostunnel.nix {};
+  podman = handleTestOn ["x86_64-linux"] ./podman/default.nix {};
+  podman-dnsname = handleTestOn ["x86_64-linux"] ./podman/dnsname.nix {};
+  podman-tls-ghostunnel = handleTestOn ["x86_64-linux"] ./podman/tls-ghostunnel.nix {};
   pomerium = handleTestOn ["x86_64-linux"] ./pomerium.nix {};
   postfix = handleTest ./postfix.nix {};
   postfix-raise-smtpd-tls-security-level = handleTest ./postfix-raise-smtpd-tls-security-level.nix {};
@@ -376,6 +385,7 @@ in
   postgresql = handleTest ./postgresql.nix {};
   postgresql-wal-receiver = handleTest ./postgresql-wal-receiver.nix {};
   powerdns = handleTest ./powerdns.nix {};
+  powerdns-admin = handleTest ./powerdns-admin.nix {};
   power-profiles-daemon = handleTest ./power-profiles-daemon.nix {};
   pppd = handleTest ./pppd.nix {};
   predictable-interface-names = handleTest ./predictable-interface-names.nix {};
@@ -389,6 +399,7 @@ in
   proxy = handleTest ./proxy.nix {};
   prowlarr = handleTest ./prowlarr.nix {};
   pt2-clone = handleTest ./pt2-clone.nix {};
+  pulseaudio = discoverTests (import ./pulseaudio.nix);
   qboot = handleTestOn ["x86_64-linux" "i686-linux"] ./qboot.nix {};
   quorum = handleTest ./quorum.nix {};
   rabbitmq = handleTest ./rabbitmq.nix {};
@@ -405,6 +416,7 @@ in
   rss2email = handleTest ./rss2email.nix {};
   rsyslogd = handleTest ./rsyslogd.nix {};
   rxe = handleTest ./rxe.nix {};
+  sabnzbd = handleTest ./sabnzbd.nix {};
   samba = handleTest ./samba.nix {};
   samba-wsdd = handleTest ./samba-wsdd.nix {};
   sanoid = handleTest ./sanoid.nix {};
@@ -426,11 +438,13 @@ in
   solanum = handleTest ./solanum.nix {};
   solr = handleTest ./solr.nix {};
   sonarr = handleTest ./sonarr.nix {};
+  sourcehut = handleTest ./sourcehut.nix {};
   spacecookie = handleTest ./spacecookie.nix {};
   spark = handleTestOn ["x86_64-linux"] ./spark {};
   sslh = handleTest ./sslh.nix {};
   sssd = handleTestOn ["x86_64-linux"] ./sssd.nix {};
   sssd-ldap = handleTestOn ["x86_64-linux"] ./sssd-ldap.nix {};
+  step-ca = handleTestOn ["x86_64-linux"] ./step-ca.nix {};
   strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
   sudo = handleTest ./sudo.nix {};
   sway = handleTest ./sway.nix {};
@@ -448,6 +462,7 @@ in
   systemd-journal = handleTest ./systemd-journal.nix {};
   systemd-networkd = handleTest ./systemd-networkd.nix {};
   systemd-networkd-dhcpserver = handleTest ./systemd-networkd-dhcpserver.nix {};
+  systemd-networkd-dhcpserver-static-leases = handleTest ./systemd-networkd-dhcpserver-static-leases.nix {};
   systemd-networkd-ipv6-prefix-delegation = handleTest ./systemd-networkd-ipv6-prefix-delegation.nix {};
   systemd-networkd-vrf = handleTest ./systemd-networkd-vrf.nix {};
   systemd-nspawn = handleTest ./systemd-nspawn.nix {};
@@ -476,6 +491,7 @@ in
   ucarp = handleTest ./ucarp.nix {};
   udisks2 = handleTest ./udisks2.nix {};
   unbound = handleTest ./unbound.nix {};
+  unifi = handleTest ./unifi.nix {};
   unit-php = handleTest ./web-servers/unit-php.nix {};
   upnp = handleTest ./upnp.nix {};
   usbguard = handleTest ./usbguard.nix {};
@@ -486,6 +502,7 @@ in
   vault-postgresql = handleTest ./vault-postgresql.nix {};
   vaultwarden = handleTest ./vaultwarden.nix {};
   vector = handleTest ./vector.nix {};
+  vengi-tools = handleTest ./vengi-tools.nix {};
   victoriametrics = handleTest ./victoriametrics.nix {};
   vikunja = handleTest ./vikunja.nix {};
   virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
diff --git a/nixos/tests/bpf.nix b/nixos/tests/bpf.nix
new file mode 100644
index 0000000000000..233c7dab1ee22
--- /dev/null
+++ b/nixos/tests/bpf.nix
@@ -0,0 +1,25 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "bpf";
+  meta.maintainers = with pkgs.lib.maintainers; [ martinetd ];
+
+  machine = { pkgs, ... }: {
+    programs.bcc.enable = true;
+    environment.systemPackages = with pkgs; [ bpftrace ];
+  };
+
+  testScript = ''
+    ## bcc
+    # syscount -d 1 stops 1s after probe started so is good for that
+    print(machine.succeed("syscount -d 1"))
+
+    ## bpftrace
+    # list probes
+    machine.succeed("bpftrace -l")
+    # simple BEGIN probe (user probe on bpftrace itself)
+    print(machine.succeed("bpftrace -e 'BEGIN { print(\"ok\"); exit(); }'"))
+    # tracepoint
+    print(machine.succeed("bpftrace -e 'tracepoint:syscalls:sys_enter_* { print(probe); exit(); }'"))
+    # kprobe
+    print(machine.succeed("bpftrace -e 'kprobe:schedule { print(probe); exit() }'"))
+  '';
+})
diff --git a/nixos/tests/brscan5.nix b/nixos/tests/brscan5.nix
index 715191b383cb6..9aed742f6de79 100644
--- a/nixos/tests/brscan5.nix
+++ b/nixos/tests/brscan5.nix
@@ -23,6 +23,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
     };
 
   testScript = ''
+    import re
     # sane loads libsane-brother5.so.1 successfully, and scanimage doesn't die
     strace = machine.succeed('strace scanimage -L 2>&1').split("\n")
     regexp = 'openat\(.*libsane-brother5.so.1", O_RDONLY|O_CLOEXEC\) = \d\d*$'
diff --git a/nixos/tests/collectd.nix b/nixos/tests/collectd.nix
new file mode 100644
index 0000000000000..cb196224a2317
--- /dev/null
+++ b/nixos/tests/collectd.nix
@@ -0,0 +1,33 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "collectd";
+  meta = { };
+
+  machine =
+    { pkgs, ... }:
+
+    {
+      services.collectd = {
+        enable = true;
+        plugins = {
+          rrdtool = ''
+            DataDir "/var/lib/collectd/rrd"
+          '';
+          load = "";
+        };
+      };
+      environment.systemPackages = [ pkgs.rrdtool ];
+    };
+
+  testScript = ''
+    machine.wait_for_unit("collectd.service")
+    hostname = machine.succeed("hostname").strip()
+    file = f"/var/lib/collectd/rrd/{hostname}/load/load.rrd"
+    machine.wait_for_file(file);
+    machine.succeed(f"rrdinfo {file} | logger")
+    # check that this file contains a shortterm metric
+    machine.succeed(f"rrdinfo {file} | grep -F 'ds[shortterm].min = '")
+    # check that there are frequent updates
+    machine.succeed(f"cp {file} before")
+    machine.wait_until_fails(f"cmp before {file}")
+  '';
+})
diff --git a/nixos/tests/common/acme/client/default.nix b/nixos/tests/common/acme/client/default.nix
index 1e9885e375c7f..9dbe345e7a011 100644
--- a/nixos/tests/common/acme/client/default.nix
+++ b/nixos/tests/common/acme/client/default.nix
@@ -5,9 +5,11 @@ let
 
 in {
   security.acme = {
-    server = "https://${caDomain}/dir";
-    email = "hostmaster@example.test";
     acceptTerms = true;
+    defaults = {
+      server = "https://${caDomain}/dir";
+      email = "hostmaster@example.test";
+    };
   };
 
   security.pki.certificateFiles = [ caCert ];
diff --git a/nixos/tests/common/acme/server/default.nix b/nixos/tests/common/acme/server/default.nix
index 1c3bfdf76b7e7..450d49e603996 100644
--- a/nixos/tests/common/acme/server/default.nix
+++ b/nixos/tests/common/acme/server/default.nix
@@ -120,6 +120,11 @@ in {
         enable = true;
         description = "Pebble ACME server";
         wantedBy = [ "network.target" ];
+        environment = {
+          # We're not testing lego, we're just testing our configuration.
+          # No need to sleep.
+          PEBBLE_VA_NOSLEEP = "1";
+        };
 
         serviceConfig = {
           RuntimeDirectory = "pebble";
diff --git a/nixos/tests/couchdb.nix b/nixos/tests/couchdb.nix
index 049532481b15f..453f5dcd66e86 100644
--- a/nixos/tests/couchdb.nix
+++ b/nixos/tests/couchdb.nix
@@ -56,5 +56,8 @@ with lib;
     couchdb3.succeed(
         "${curlJqCheck testlogin "GET" "_all_dbs" ". | length" "0"}"
     )
+    couchdb3.succeed(
+        "${curlJqCheck testlogin "GET" "_node/couchdb@127.0.0.1" ".couchdb" "Welcome"}"
+    )
   '';
 })
diff --git a/nixos/tests/custom-ca.nix b/nixos/tests/custom-ca.nix
index 0ab49f3b34306..a55449a397a7c 100644
--- a/nixos/tests/custom-ca.nix
+++ b/nixos/tests/custom-ca.nix
@@ -82,6 +82,9 @@ in
       # chromium-based browsers refuse to run as root
       test-support.displayManager.auto.user = "alice";
 
+      # browsers may hang with the default memory
+      virtualisation.memorySize = 600;
+
       networking.hosts."127.0.0.1" = [ "good.example.com" "bad.example.com" ];
       security.pki.certificateFiles = [ "${example-good-cert}/ca.crt" ];
 
@@ -160,7 +163,7 @@ in
         browser = command.split()[0]
         with subtest("Good certificate is trusted in " + browser):
             execute_as(
-                "alice", f"env P11_KIT_DEBUG=trust {command} https://good.example.com & >&2"
+                "alice", f"{command} https://good.example.com >&2 &"
             )
             wait_for_window_as("alice", browser)
             machine.wait_for_text("It works!")
@@ -168,9 +171,9 @@ in
             execute_as("alice", "xdotool key ctrl+w")  # close tab
 
         with subtest("Unknown CA is untrusted in " + browser):
-            execute_as("alice", f"{command} https://bad.example.com & >&2")
+            execute_as("alice", f"{command} https://bad.example.com >&2 &")
             machine.wait_for_text(error)
             machine.screenshot("bad" + browser)
-            machine.succeed("pkill " + browser)
+            machine.succeed("pkill -f " + browser)
   '';
 })
diff --git a/nixos/tests/docker-rootless.nix b/nixos/tests/docker-rootless.nix
new file mode 100644
index 0000000000000..e2a926eb3cb0e
--- /dev/null
+++ b/nixos/tests/docker-rootless.nix
@@ -0,0 +1,41 @@
+# This test runs docker and checks if simple container starts
+
+import ./make-test-python.nix ({ lib, pkgs, ...} : {
+  name = "docker-rootless";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ abbradar ];
+  };
+
+  nodes = {
+    machine = { pkgs, ... }: {
+      virtualisation.docker.rootless.enable = true;
+
+      users.users.alice = {
+        uid = 1000;
+        isNormalUser = true;
+      };
+    };
+  };
+
+  testScript = { nodes, ... }:
+    let
+      user = nodes.machine.config.users.users.alice;
+      sudo = lib.concatStringsSep " " [
+        "XDG_RUNTIME_DIR=/run/user/${toString user.uid}"
+        "DOCKER_HOST=unix:///run/user/${toString user.uid}/docker.sock"
+        "sudo" "--preserve-env=XDG_RUNTIME_DIR,DOCKER_HOST" "-u" "alice"
+      ];
+    in ''
+      machine.wait_for_unit("multi-user.target")
+
+      machine.succeed("loginctl enable-linger alice")
+      machine.wait_until_succeeds("${sudo} systemctl --user is-active docker.service")
+
+      machine.succeed("tar cv --files-from /dev/null | ${sudo} docker import - scratchimg")
+      machine.succeed(
+          "${sudo} docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
+      )
+      machine.succeed("${sudo} docker ps | grep sleeping")
+      machine.succeed("${sudo} docker stop sleeping")
+    '';
+})
diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix
index 7110187e8d764..8a240ddb17f24 100644
--- a/nixos/tests/docker-tools.nix
+++ b/nixos/tests/docker-tools.nix
@@ -215,6 +215,12 @@ import ./make-test-python.nix ({ pkgs, ... }: {
                 f"docker run --rm  ${examples.layersOrder.imageName} cat /tmp/layer{index}"
             )
 
+    with subtest("Ensure layers unpacked in correct order before runAsRoot runs"):
+        assert "abc" in docker.succeed(
+            "docker load --input='${examples.layersUnpackOrder}'",
+            "docker run --rm ${examples.layersUnpackOrder.imageName} cat /layer-order"
+        )
+
     with subtest("Ensure environment variables are correctly inherited"):
         docker.succeed(
             "docker load --input='${examples.environmentVariables}'"
@@ -276,15 +282,22 @@ import ./make-test-python.nix ({ pkgs, ... }: {
         # Ensure the image has the correct number of layers
         assert len(set_of_layers("layered-bulk-layer")) == 4
 
-    with subtest("Ensure correct behavior when no store is needed"):
+    with subtest("Ensure only minimal paths are added to the store"):
+        # TODO: make an example that has no store paths, for example by making
+        #       busybox non-self-referential.
+
         # This check tests that buildLayeredImage can build images that don't need a store.
         docker.succeed(
             "docker load --input='${pkgs.dockerTools.examples.no-store-paths}'"
         )
 
-        # This check may be loosened to allow an *empty* store rather than *no* store.
-        docker.succeed("docker run --rm no-store-paths ls /")
-        docker.fail("docker run --rm no-store-paths ls /nix/store")
+        docker.succeed("docker run --rm no-store-paths ls / >/dev/console")
+
+        # If busybox isn't self-referential, we need this line
+        #   docker.fail("docker run --rm no-store-paths ls /nix/store >/dev/console")
+        # However, it currently is self-referential, so we check that it is the
+        # only store path.
+        docker.succeed("diff <(docker run --rm no-store-paths ls /nix/store) <(basename ${pkgs.pkgsStatic.busybox}) >/dev/console")
 
     with subtest("Ensure buildLayeredImage does not change store path contents."):
         docker.succeed(
@@ -379,11 +392,21 @@ import ./make-test-python.nix ({ pkgs, ... }: {
             "docker run --rm ${examples.layeredImageWithFakeRootCommands.imageName} sh -c 'stat -c '%u' /home/jane | grep -E ^1000$'"
         )
 
+    with subtest("The image contains store paths referenced by the fakeRootCommands output"):
+        docker.succeed(
+            "docker run --rm ${examples.layeredImageWithFakeRootCommands.imageName} /hello/bin/layeredImageWithFakeRootCommands-hello"
+        )
+
     with subtest("exportImage produces a valid tarball"):
         docker.succeed(
             "tar -tf ${examples.exportBash} | grep '\./bin/bash' > /dev/null"
         )
 
+    with subtest("layered image fakeRootCommands with fakechroot works"):
+        docker.succeed("${examples.imageViaFakeChroot} | docker load")
+        docker.succeed("docker run --rm image-via-fake-chroot | grep -i hello")
+        docker.succeed("docker image rm image-via-fake-chroot:latest")
+
     with subtest("Ensure bare paths in contents are loaded correctly"):
         docker.succeed(
             "docker load --input='${examples.build-image-with-path}'",
diff --git a/nixos/tests/drbd.nix b/nixos/tests/drbd.nix
new file mode 100644
index 0000000000000..bede7206d706c
--- /dev/null
+++ b/nixos/tests/drbd.nix
@@ -0,0 +1,87 @@
+import ./make-test-python.nix (
+  { pkgs, lib, ... }:
+  let
+    drbdPort = 7789;
+
+    drbdConfig =
+      { nodes, ... }:
+      {
+        virtualisation.emptyDiskImages = [ 1 ];
+        networking.firewall.allowedTCPPorts = [ drbdPort ];
+
+        services.drbd = {
+          enable = true;
+          config = ''
+            global {
+              usage-count yes;
+            }
+
+            common {
+              net {
+                protocol C;
+                ping-int 1;
+              }
+            }
+
+            resource r0 {
+              volume 0 {
+                device    /dev/drbd0;
+                disk      /dev/vdb;
+                meta-disk internal;
+              }
+
+              on drbd1 {
+                address ${nodes.drbd1.config.networking.primaryIPAddress}:${toString drbdPort};
+              }
+
+              on drbd2 {
+                address ${nodes.drbd2.config.networking.primaryIPAddress}:${toString drbdPort};
+              }
+            }
+          '';
+        };
+      };
+  in
+  {
+    name = "drbd";
+    meta = with pkgs.lib.maintainers; {
+      maintainers = [ ryantm astro ];
+    };
+
+    nodes.drbd1 = drbdConfig;
+    nodes.drbd2 = drbdConfig;
+
+    testScript = { nodes }: ''
+      drbd1.start()
+      drbd2.start()
+
+      drbd1.wait_for_unit("network.target")
+      drbd2.wait_for_unit("network.target")
+
+      drbd1.succeed(
+          "drbdadm create-md r0",
+          "drbdadm up r0",
+          "drbdadm primary r0 --force",
+      )
+
+      drbd2.succeed("drbdadm create-md r0", "drbdadm up r0")
+
+      drbd1.succeed(
+          "mkfs.ext4 /dev/drbd0",
+          "mkdir -p /mnt/drbd",
+          "mount /dev/drbd0 /mnt/drbd",
+          "touch /mnt/drbd/hello",
+          "umount /mnt/drbd",
+          "drbdadm secondary r0",
+      )
+      drbd1.sleep(1)
+
+      drbd2.succeed(
+          "drbdadm primary r0",
+          "mkdir -p /mnt/drbd",
+          "mount /dev/drbd0 /mnt/drbd",
+          "ls /mnt/drbd/hello",
+      )
+    '';
+  }
+)
diff --git a/nixos/tests/elk.nix b/nixos/tests/elk.nix
index ae746d7e1f03d..f42be00f23b82 100644
--- a/nixos/tests/elk.nix
+++ b/nixos/tests/elk.nix
@@ -40,9 +40,8 @@ let
 
             services = {
 
-              journalbeat = let lt6 = builtins.compareVersions
-                                        elk.journalbeat.version "6" < 0; in {
-                enable = true;
+              journalbeat = {
+                enable = elk ? journalbeat;
                 package = elk.journalbeat;
                 extraConfig = pkgs.lib.mkOptionDefault (''
                   logging:
@@ -51,14 +50,29 @@ let
                     metrics.enabled: false
                   output.elasticsearch:
                     hosts: [ "127.0.0.1:9200" ]
-                    ${pkgs.lib.optionalString lt6 "template.enabled: false"}
-                '' + pkgs.lib.optionalString (!lt6) ''
                   journalbeat.inputs:
                   - paths: []
                     seek: cursor
                 '');
               };
 
+              filebeat = {
+                enable = elk ? filebeat;
+                package = elk.filebeat;
+                inputs.journald.id = "everything";
+
+                inputs.log = {
+                  enabled = true;
+                  paths = [
+                    "/var/lib/filebeat/test"
+                  ];
+                };
+
+                settings = {
+                  logging.level = "info";
+                };
+              };
+
               metricbeat = {
                 enable = true;
                 package = elk.metricbeat;
@@ -142,27 +156,43 @@ let
       };
 
     passthru.elkPackages = elk;
-    testScript = ''
+    testScript =
+      let
+        valueObject = lib.optionalString (lib.versionAtLeast elk.elasticsearch.version "7") ".value";
+      in ''
       import json
 
 
-      def total_hits(message):
+      def expect_hits(message):
+          dictionary = {"query": {"match": {"message": message}}}
+          return (
+              "curl --silent --show-error --fail-with-body '${esUrl}/_search' "
+              + "-H 'Content-Type: application/json' "
+              + "-d '{}' ".format(json.dumps(dictionary))
+              + " | tee /dev/console"
+              + " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} > 0 end'"
+          )
+
+
+      def expect_no_hits(message):
           dictionary = {"query": {"match": {"message": message}}}
           return (
-              "curl --silent --show-error '${esUrl}/_search' "
+              "curl --silent --show-error --fail-with-body '${esUrl}/_search' "
               + "-H 'Content-Type: application/json' "
               + "-d '{}' ".format(json.dumps(dictionary))
-              + "| jq .hits.total"
+              + " | tee /dev/console"
+              + " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} == 0 end'"
           )
 
 
       def has_metricbeat():
           dictionary = {"query": {"match": {"event.dataset": {"query": "system.cpu"}}}}
           return (
-              "curl --silent --show-error '${esUrl}/_search' "
+              "curl --silent --show-error --fail-with-body '${esUrl}/_search' "
               + "-H 'Content-Type: application/json' "
               + "-d '{}' ".format(json.dumps(dictionary))
-              + "| jq '.hits.total > 0'"
+              + " | tee /dev/console"
+              + " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} > 0 end'"
           )
 
 
@@ -178,7 +208,8 @@ let
       # TODO: extend this test with multiple elasticsearch nodes
       #       and see if the status turns "green".
       one.wait_until_succeeds(
-          "curl --silent --show-error '${esUrl}/_cluster/health' | jq .status | grep -v red"
+          "curl --silent --show-error --fail-with-body '${esUrl}/_cluster/health'"
+          + " | jq -es 'if . == [] then null else .[] | .status != \"red\" end'"
       )
 
       with subtest("Perform some simple logstash tests"):
@@ -189,33 +220,50 @@ let
       with subtest("Kibana is healthy"):
           one.wait_for_unit("kibana.service")
           one.wait_until_succeeds(
-              "curl --silent --show-error 'http://localhost:5601/api/status' | jq .status.overall.state | grep green"
+              "curl --silent --show-error --fail-with-body 'http://localhost:5601/api/status'"
+              + " | jq -es 'if . == [] then null else .[] | .status.overall.state == \"green\" end'"
           )
 
       with subtest("Metricbeat is running"):
           one.wait_for_unit("metricbeat.service")
 
       with subtest("Metricbeat metrics arrive in elasticsearch"):
-          one.wait_until_succeeds(has_metricbeat() + " | tee /dev/console | grep 'true'")
+          one.wait_until_succeeds(has_metricbeat())
 
       with subtest("Logstash messages arive in elasticsearch"):
-          one.wait_until_succeeds(total_hits("flowers") + " | grep -v 0")
-          one.wait_until_succeeds(total_hits("dragons") + " | grep 0")
+          one.wait_until_succeeds(expect_hits("flowers"))
+          one.wait_until_succeeds(expect_no_hits("dragons"))
 
+    '' + lib.optionalString (elk ? journalbeat) ''
       with subtest(
           "A message logged to the journal is ingested by elasticsearch via journalbeat"
       ):
           one.wait_for_unit("journalbeat.service")
           one.execute("echo 'Supercalifragilisticexpialidocious' | systemd-cat")
           one.wait_until_succeeds(
-              total_hits("Supercalifragilisticexpialidocious") + " | grep -v 0"
+              expect_hits("Supercalifragilisticexpialidocious")
           )
-
+    '' + lib.optionalString (elk ? filebeat) ''
+      with subtest(
+          "A message logged to the journal is ingested by elasticsearch via filebeat"
+      ):
+          one.wait_for_unit("filebeat.service")
+          one.execute("echo 'Superdupercalifragilisticexpialidocious' | systemd-cat")
+          one.wait_until_succeeds(
+              expect_hits("Superdupercalifragilisticexpialidocious")
+          )
+          one.execute(
+              "echo 'SuperdupercalifragilisticexpialidociousIndeed' >> /var/lib/filebeat/test"
+          )
+          one.wait_until_succeeds(
+              expect_hits("SuperdupercalifragilisticexpialidociousIndeed")
+          )
+    '' + ''
       with subtest("Elasticsearch-curator works"):
           one.systemctl("stop logstash")
           one.systemctl("start elasticsearch-curator")
           one.wait_until_succeeds(
-              '! curl --silent --show-error "${esUrl}/_cat/indices" | grep logstash | grep ^'
+              '! curl --silent --show-error --fail-with-body "${esUrl}/_cat/indices" | grep logstash | grep ^'
           )
     '';
   }) { inherit pkgs system; };
@@ -235,7 +283,7 @@ in {
   #   elasticsearch = pkgs.elasticsearch7-oss;
   #   logstash      = pkgs.logstash7-oss;
   #   kibana        = pkgs.kibana7-oss;
-  #   journalbeat   = pkgs.journalbeat7;
+  #   filebeat      = pkgs.filebeat7;
   #   metricbeat    = pkgs.metricbeat7;
   # };
   unfree = lib.dontRecurseIntoAttrs {
@@ -250,7 +298,7 @@ in {
       elasticsearch = pkgs.elasticsearch7;
       logstash      = pkgs.logstash7;
       kibana        = pkgs.kibana7;
-      journalbeat   = pkgs.journalbeat7;
+      filebeat      = pkgs.filebeat7;
       metricbeat    = pkgs.metricbeat7;
     };
   };
diff --git a/nixos/tests/hibernate.nix b/nixos/tests/hibernate.nix
index fc6857e2fd024..4f05b99a5a116 100644
--- a/nixos/tests/hibernate.nix
+++ b/nixos/tests/hibernate.nix
@@ -51,7 +51,6 @@ in makeTest {
         connect-timeout = 1
       '';
 
-      virtualisation.memorySize = 2048;
       virtualisation.diskSize = 8 * 1024;
       virtualisation.emptyDiskImages = [
         # Small root disk for installer
diff --git a/nixos/tests/home-assistant.nix b/nixos/tests/home-assistant.nix
index 0894736bac9c3..1ab5755863f74 100644
--- a/nixos/tests/home-assistant.nix
+++ b/nixos/tests/home-assistant.nix
@@ -24,6 +24,11 @@ in {
     services.home-assistant = {
       inherit configDir;
       enable = true;
+      package = (pkgs.home-assistant.override {
+        extraComponents = [ "zha" ];
+      }).overrideAttrs (oldAttrs: {
+        doInstallCheck = false;
+      });
       config = {
         homeassistant = {
           name = "Home";
@@ -87,6 +92,8 @@ in {
     with subtest("Check that capabilities are passed for emulated_hue to bind to port 80"):
         hass.wait_for_open_port(80)
         hass.succeed("curl --fail http://localhost:80/description.xml")
+    with subtest("Check extra components are considered in systemd unit hardening"):
+        hass.succeed("systemctl show -p DeviceAllow home-assistant.service | grep -q char-ttyUSB")
     with subtest("Print log to ease debugging"):
         output_log = hass.succeed("cat ${configDir}/home-assistant.log")
         print("\n### home-assistant.log ###\n")
diff --git a/nixos/tests/hydra/default.nix b/nixos/tests/hydra/default.nix
index d92f032b82922..ef5e677953dcd 100644
--- a/nixos/tests/hydra/default.nix
+++ b/nixos/tests/hydra/default.nix
@@ -17,7 +17,7 @@ let
   makeHydraTest = with pkgs.lib; name: package: makeTest {
     name = "hydra-${name}";
     meta = with pkgs.lib.maintainers; {
-      maintainers = [ pstn lewo ma27 ];
+      maintainers = [ lewo ma27 ];
     };
 
     machine = { pkgs, lib, ... }: {
diff --git a/nixos/tests/initrd-secrets.nix b/nixos/tests/initrd-secrets.nix
index 10dd908502d5b..113a9cebf7880 100644
--- a/nixos/tests/initrd-secrets.nix
+++ b/nixos/tests/initrd-secrets.nix
@@ -13,7 +13,12 @@ let
 
     machine = { ... }: {
       virtualisation.useBootLoader = true;
-      boot.initrd.secrets."/test" = secretInStore;
+      boot.initrd.secrets = {
+        "/test" = secretInStore;
+
+        # This should *not* need to be copied in postMountCommands
+        "/run/keys/test" = secretInStore;
+      };
       boot.initrd.postMountCommands = ''
         cp /test /mnt-root/secret-from-initramfs
       '';
@@ -26,7 +31,8 @@ let
       start_all()
       machine.wait_for_unit("multi-user.target")
       machine.succeed(
-          "cmp ${secretInStore} /secret-from-initramfs"
+          "cmp ${secretInStore} /secret-from-initramfs",
+          "cmp ${secretInStore} /run/keys/test",
       )
     '';
   };
diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix
index 0748a74ee1763..bc41b6efc2e77 100644
--- a/nixos/tests/installer.nix
+++ b/nixos/tests/installer.nix
@@ -76,8 +76,8 @@ let
       def assemble_qemu_flags():
           flags = "-cpu max"
           ${if (system == "x86_64-linux" || system == "i686-linux")
-            then ''flags += " -m 1500"''
-            else ''flags += " -m 1000 -enable-kvm -machine virt,gic-version=host"''
+            then ''flags += " -m 1024"''
+            else ''flags += " -m 768 -enable-kvm -machine virt,gic-version=host"''
           }
           return flags
 
@@ -288,7 +288,7 @@ let
           # builds stuff in the VM, needs more juice
           virtualisation.diskSize = 8 * 1024;
           virtualisation.cores = 8;
-          virtualisation.memorySize = 3096;
+          virtualisation.memorySize = 1536;
 
           # Use a small /dev/vdb as the root disk for the
           # installer. This ensures the target disk (/dev/vda) is
@@ -354,8 +354,8 @@ let
       createPartitions = ''
         machine.succeed(
             "flock /dev/vda parted --script /dev/vda -- mklabel msdos"
-            + " mkpart primary ext2 1M 50MB"  # /boot
-            + " mkpart primary linux-swap 50M 1024M"
+            + " mkpart primary ext2 1M 100MB"  # /boot
+            + " mkpart primary linux-swap 100M 1024M"
             + " mkpart primary 1024M -1s",  # LUKS
             "udevadm settle",
             "mkswap /dev/vda2 -L swap",
@@ -456,9 +456,9 @@ in {
     createPartitions = ''
       machine.succeed(
           "flock /dev/vda parted --script /dev/vda -- mklabel gpt"
-          + " mkpart ESP fat32 1M 50MiB"  # /boot
+          + " mkpart ESP fat32 1M 100MiB"  # /boot
           + " set 1 boot on"
-          + " mkpart primary linux-swap 50MiB 1024MiB"
+          + " mkpart primary linux-swap 100MiB 1024MiB"
           + " mkpart primary ext2 1024MiB -1MiB",  # /
           "udevadm settle",
           "mkswap /dev/vda2 -L swap",
@@ -483,8 +483,8 @@ in {
     createPartitions = ''
       machine.succeed(
           "flock /dev/vda parted --script /dev/vda -- mklabel msdos"
-          + " mkpart primary ext2 1M 50MB"  # /boot
-          + " mkpart primary linux-swap 50MB 1024M"
+          + " mkpart primary ext2 1M 100MB"  # /boot
+          + " mkpart primary linux-swap 100MB 1024M"
           + " mkpart primary ext2 1024M -1s",  # /
           "udevadm settle",
           "mkswap /dev/vda2 -L swap",
@@ -503,8 +503,8 @@ in {
     createPartitions = ''
       machine.succeed(
           "flock /dev/vda parted --script /dev/vda -- mklabel msdos"
-          + " mkpart primary ext2 1M 50MB"  # /boot
-          + " mkpart primary linux-swap 50MB 1024M"
+          + " mkpart primary ext2 1M 100MB"  # /boot
+          + " mkpart primary linux-swap 100MB 1024M"
           + " mkpart primary ext2 1024M -1s",  # /
           "udevadm settle",
           "mkswap /dev/vda2 -L swap",
@@ -599,8 +599,8 @@ in {
     createPartitions = ''
       machine.succeed(
           "flock /dev/vda parted --script /dev/vda -- mklabel msdos"
-          + " mkpart primary ext2 1M 50MB"  # /boot
-          + " mkpart primary linux-swap 50M 1024M"
+          + " mkpart primary ext2 1M 100MB"  # /boot
+          + " mkpart primary linux-swap 100M 1024M"
           + " mkpart primary 1024M 1280M"  # LUKS with keyfile
           + " mkpart primary 1280M -1s",
           "udevadm settle",
@@ -674,8 +674,8 @@ in {
       machine.succeed(
           "flock /dev/vda parted --script /dev/vda --"
           + " mklabel msdos"
-          + " mkpart primary ext2 1M 50MB"  # /boot
-          + " mkpart primary 50MB 512MB  "  # swap
+          + " mkpart primary ext2 1M 100MB"  # /boot
+          + " mkpart primary 100MB 512MB  "  # swap
           + " mkpart primary 512MB 1024MB"  # Cache (typically SSD)
           + " mkpart primary 1024MB -1s ",  # Backing device (typically HDD)
           "modprobe bcache",
diff --git a/nixos/tests/knot.nix b/nixos/tests/knot.nix
index 22279292f77f9..203fd03fac26f 100644
--- a/nixos/tests/knot.nix
+++ b/nixos/tests/knot.nix
@@ -45,6 +45,10 @@ in {
   nodes = {
     master = { lib, ... }: {
       imports = [ common ];
+
+      # trigger sched_setaffinity syscall
+      virtualisation.cores = 2;
+
       networking.interfaces.eth1 = {
         ipv4.addresses = lib.mkForce [
           { address = "192.168.0.1"; prefixLength = 24; }
@@ -206,5 +210,7 @@ in {
 
             test(host, "RRSIG", "www.example.com", r"RR set signature is")
             test(host, "DNSKEY", "example.com", r"DNSSEC key is")
+
+    master.log(master.succeed("systemd-analyze security knot.service | grep -v '✓'"))
   '';
 })
diff --git a/nixos/tests/kubernetes/base.nix b/nixos/tests/kubernetes/base.nix
index 1f23ca55fb234..e1736f6fe1726 100644
--- a/nixos/tests/kubernetes/base.nix
+++ b/nixos/tests/kubernetes/base.nix
@@ -51,7 +51,6 @@ let
               environment.systemPackages = [ kubectl ];
               services.flannel.iface = "eth1";
               services.kubernetes = {
-                addons.dashboard.enable = true;
                 proxy.hostname = "${masterName}.${domain}";
 
                 easyCerts = true;
diff --git a/nixos/tests/kubernetes/default.nix b/nixos/tests/kubernetes/default.nix
index 90b73c68a76de..60ba482758fbe 100644
--- a/nixos/tests/kubernetes/default.nix
+++ b/nixos/tests/kubernetes/default.nix
@@ -1,5 +1,5 @@
 { system ? builtins.currentSystem
-, pkgs ? import <nixpkgs> { inherit system; }
+, pkgs ? import ../../.. { inherit system; }
 }:
 let
   dns = import ./dns.nix { inherit system pkgs; };
diff --git a/nixos/tests/kubernetes/dns.nix b/nixos/tests/kubernetes/dns.nix
index b6cd811c5aefd..3fd1dd31f746b 100644
--- a/nixos/tests/kubernetes/dns.nix
+++ b/nixos/tests/kubernetes/dns.nix
@@ -1,4 +1,4 @@
-{ system ? builtins.currentSystem, pkgs ? import <nixpkgs> { inherit system; } }:
+{ system ? builtins.currentSystem, pkgs ? import ../../.. { inherit system; } }:
 with import ./base.nix { inherit system; };
 let
   domain = "my.zyx";
@@ -100,7 +100,7 @@ let
       machine1.succeed("host redis.default.svc.cluster.local")
 
       # check dns inside the container
-      machine1.succeed("kubectl exec -ti probe -- /bin/host redis.default.svc.cluster.local")
+      machine1.succeed("kubectl exec probe -- /bin/host redis.default.svc.cluster.local")
     '';
   };
 
@@ -142,7 +142,7 @@ let
       machine2.succeed("host redis.default.svc.cluster.local")
 
       # check dns inside the container
-      machine1.succeed("kubectl exec -ti probe -- /bin/host redis.default.svc.cluster.local")
+      machine1.succeed("kubectl exec probe -- /bin/host redis.default.svc.cluster.local")
     '';
   };
 in {
diff --git a/nixos/tests/kubernetes/e2e.nix b/nixos/tests/kubernetes/e2e.nix
index 175d8413045ed..fb29d9cc6953f 100644
--- a/nixos/tests/kubernetes/e2e.nix
+++ b/nixos/tests/kubernetes/e2e.nix
@@ -1,4 +1,4 @@
-{ system ? builtins.currentSystem, pkgs ? import <nixpkgs> { inherit system; } }:
+{ system ? builtins.currentSystem, pkgs ? import ../../.. { inherit system; } }:
 with import ./base.nix { inherit system; };
 let
   domain = "my.zyx";
diff --git a/nixos/tests/kubernetes/rbac.nix b/nixos/tests/kubernetes/rbac.nix
index 3fc8ed0fbe389..ca73562256e47 100644
--- a/nixos/tests/kubernetes/rbac.nix
+++ b/nixos/tests/kubernetes/rbac.nix
@@ -1,4 +1,4 @@
-{ system ? builtins.currentSystem, pkgs ? import <nixpkgs> { inherit system; } }:
+{ system ? builtins.currentSystem, pkgs ? import ../../.. { inherit system; } }:
 with import ./base.nix { inherit system; };
 let
 
@@ -115,9 +115,9 @@ let
 
       machine1.wait_until_succeeds("kubectl get pod kubectl | grep Running")
 
-      machine1.wait_until_succeeds("kubectl exec -ti kubectl -- kubectl get pods")
-      machine1.fail("kubectl exec -ti kubectl -- kubectl create -f /kubectl-pod-2.json")
-      machine1.fail("kubectl exec -ti kubectl -- kubectl delete pods -l name=kubectl")
+      machine1.wait_until_succeeds("kubectl exec kubectl -- kubectl get pods")
+      machine1.fail("kubectl exec kubectl -- kubectl create -f /kubectl-pod-2.json")
+      machine1.fail("kubectl exec kubectl -- kubectl delete pods -l name=kubectl")
     '';
   };
 
@@ -152,9 +152,9 @@ let
 
       machine1.wait_until_succeeds("kubectl get pod kubectl | grep Running")
 
-      machine1.wait_until_succeeds("kubectl exec -ti kubectl -- kubectl get pods")
-      machine1.fail("kubectl exec -ti kubectl -- kubectl create -f /kubectl-pod-2.json")
-      machine1.fail("kubectl exec -ti kubectl -- kubectl delete pods -l name=kubectl")
+      machine1.wait_until_succeeds("kubectl exec kubectl -- kubectl get pods")
+      machine1.fail("kubectl exec kubectl -- kubectl create -f /kubectl-pod-2.json")
+      machine1.fail("kubectl exec kubectl -- kubectl delete pods -l name=kubectl")
     '';
   };
 
diff --git a/nixos/tests/maddy.nix b/nixos/tests/maddy.nix
new file mode 100644
index 0000000000000..581748c1fa59b
--- /dev/null
+++ b/nixos/tests/maddy.nix
@@ -0,0 +1,58 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "maddy";
+  meta = with pkgs.lib.maintainers; { maintainers = [ onny ]; };
+
+  nodes = {
+    server = { ... }: {
+      services.maddy = {
+        enable = true;
+        hostname = "server";
+        primaryDomain = "server";
+        openFirewall = true;
+      };
+    };
+
+    client = { ... }: {
+      environment.systemPackages = [
+        (pkgs.writers.writePython3Bin "send-testmail" { } ''
+          import smtplib
+          from email.mime.text import MIMEText
+
+          msg = MIMEText("Hello World")
+          msg['Subject'] = 'Test'
+          msg['From'] = "postmaster@server"
+          msg['To'] = "postmaster@server"
+          with smtplib.SMTP('server', 587) as smtp:
+              smtp.login('postmaster@server', 'test')
+              smtp.sendmail('postmaster@server', 'postmaster@server', msg.as_string())
+        '')
+        (pkgs.writers.writePython3Bin "test-imap" { } ''
+          import imaplib
+
+          with imaplib.IMAP4('server') as imap:
+              imap.login('postmaster@server', 'test')
+              imap.select()
+              status, refs = imap.search(None, 'ALL')
+              assert status == 'OK'
+              assert len(refs) == 1
+              status, msg = imap.fetch(refs[0], 'BODY[TEXT]')
+              assert status == 'OK'
+              assert msg[0][1].strip() == b"Hello World"
+        '')
+      ];
+    };
+  };
+
+  testScript = ''
+    start_all()
+    server.wait_for_unit("maddy.service")
+    server.wait_for_open_port(143)
+    server.wait_for_open_port(587)
+
+    server.succeed("echo test | maddyctl creds create postmaster@server")
+    server.succeed("maddyctl imap-acct create postmaster@server")
+
+    client.succeed("send-testmail")
+    client.succeed("test-imap")
+  '';
+})
diff --git a/nixos/tests/man.nix b/nixos/tests/man.nix
new file mode 100644
index 0000000000000..1ff5af4e80591
--- /dev/null
+++ b/nixos/tests/man.nix
@@ -0,0 +1,100 @@
+
+import ./make-test-python.nix ({ pkgs, lib, ... }: let
+  manImplementations = [
+    "mandoc"
+    "man-db"
+  ];
+
+  machineNames = builtins.map machineSafe manImplementations;
+
+  makeConfig = useImpl: {
+    # Note: mandoc currently can't index symlinked section directories.
+    # So if a man section comes from one package exclusively (e. g.
+    # 1p from man-pages-posix and 2 from man-pages), it isn't searchable.
+    environment.systemPackages = [
+      pkgs.man-pages
+      pkgs.openssl
+      pkgs.libunwind
+    ];
+
+    documentation = {
+      enable = true;
+      nixos.enable = lib.mkForce true;
+      dev.enable = true;
+      man = {
+        enable = true;
+        generateCaches = true;
+      } // lib.listToAttrs (builtins.map (impl: {
+        name = impl;
+        value = {
+          enable = useImpl == impl;
+        };
+      }) manImplementations);
+    };
+  };
+
+  machineSafe = builtins.replaceStrings [ "-" ] [ "_" ];
+in {
+  name = "man";
+  meta.maintainers = [ lib.maintainers.sternenseemann ];
+
+  nodes = lib.listToAttrs (builtins.map (i: {
+    name = machineSafe i;
+    value = makeConfig i;
+  }) manImplementations);
+
+  testScript = ''
+    import re
+    start_all()
+
+    def match_man_k(page, section, haystack):
+      """
+      Check if the man page {page}({section}) occurs in
+      the output of `man -k` given as haystack. Note:
+      This is not super reliable, e. g. it can't deal
+      with man pages that are in multiple sections.
+      """
+
+      for line in haystack.split("\n"):
+        # man -k can look like this:
+        # page(3) - bla
+        # page (3) - bla
+        # pagea, pageb (3, 3P) - foo
+        # pagea, pageb, pagec(3) - bar
+        pages = line.split("(")[0]
+        sections = re.search("\\([a-zA-Z1-9, ]+\\)", line)
+        if sections is None:
+          continue
+        else:
+          sections = sections.group(0)[1:-1]
+
+        if page in pages and f'{section}' in sections:
+          return True
+
+      return False
+
+  '' + lib.concatMapStrings (machine: ''
+    with subtest("Test direct man page lookups in ${machine}"):
+      # man works
+      ${machine}.succeed("man man > /dev/null")
+      # devman works
+      ${machine}.succeed("man 3 libunwind > /dev/null")
+      # NixOS configuration man page is installed
+      ${machine}.succeed("man configuration.nix > /dev/null")
+
+    with subtest("Test generateCaches via man -k in ${machine}"):
+      expected = [
+        ("openssl", "ssl", 3),
+        ("unwind", "libunwind", 3),
+        ("user", "useradd", 8),
+        ("user", "userdel", 8),
+        ("mem", "free", 3),
+        ("mem", "free", 1),
+      ]
+
+      for (keyword, page, section) in expected:
+        matches = ${machine}.succeed(f"man -k {keyword}")
+        if not match_man_k(page, section, matches):
+          raise Exception(f"{page}({section}) missing in matches: {matches}")
+  '') machineNames;
+})
diff --git a/nixos/tests/nextcloud/default.nix b/nixos/tests/nextcloud/default.nix
index bd7a7aacdc91a..34d3c345354c7 100644
--- a/nixos/tests/nextcloud/default.nix
+++ b/nixos/tests/nextcloud/default.nix
@@ -1,6 +1,6 @@
-{ system ? builtins.currentSystem,
-  config ? {},
-  pkgs ? import ../../.. { inherit system config; }
+{ system ? builtins.currentSystem
+, config ? { }
+, pkgs ? import ../../.. { inherit system config; }
 }:
 
 with pkgs.lib;
@@ -17,5 +17,5 @@ foldl
       nextcloudVersion = ver;
     };
   })
-  {}
-  [ 21 22 ]
+{ }
+  [ 21 22 23 ]
diff --git a/nixos/tests/nix-ssh-serve.nix b/nixos/tests/nix-serve-ssh.nix
index 03f83542c7c11..1eb8d5b395b1f 100644
--- a/nixos/tests/nix-ssh-serve.nix
+++ b/nixos/tests/nix-serve-ssh.nix
@@ -35,7 +35,7 @@ in
 
        client.fail("diff /root/other-store$(cat mach-id-path) /etc/machine-id")
        # Currently due to shared store this is a noop :(
-       client.succeed("nix copy --to ssh-ng://nix-ssh@server $(cat mach-id-path)")
+       client.succeed("nix copy --experimental-features 'nix-command' --to ssh-ng://nix-ssh@server $(cat mach-id-path)")
        client.succeed(
            "nix-store --realise $(cat mach-id-path) --store /root/other-store --substituters ssh-ng://nix-ssh@server"
        )
diff --git a/nixos/tests/os-prober.nix b/nixos/tests/os-prober.nix
index a7b955d447215..c1e29b0f68b41 100644
--- a/nixos/tests/os-prober.nix
+++ b/nixos/tests/os-prober.nix
@@ -53,12 +53,12 @@ let
   };
   # /etc/nixos/configuration.nix for the vm
   configFile = pkgs.writeText "configuration.nix"  ''
-    {config, pkgs, ...}: ({
+    {config, pkgs, lib, ...}: ({
     imports =
           [ ./hardware-configuration.nix
             <nixpkgs/nixos/modules/testing/test-instrumentation.nix>
           ];
-    } // pkgs.lib.importJSON ${
+    } // lib.importJSON ${
       pkgs.writeText "simpleConfig.json" (builtins.toJSON simpleConfig)
     })
   '';
@@ -114,7 +114,7 @@ in {
         "${configFile}",
         "/etc/nixos/configuration.nix",
     )
-    machine.succeed("nixos-rebuild boot >&2")
+    machine.succeed("nixos-rebuild boot --show-trace >&2")
 
     machine.succeed("egrep 'menuentry.*debian' /boot/grub/grub.cfg")
   '';
diff --git a/nixos/tests/pam/pam-file-contents.nix b/nixos/tests/pam/pam-file-contents.nix
new file mode 100644
index 0000000000000..86c61003aeb6e
--- /dev/null
+++ b/nixos/tests/pam/pam-file-contents.nix
@@ -0,0 +1,25 @@
+let
+  name = "pam";
+in
+import ../make-test-python.nix ({ pkgs, ... }: {
+
+  nodes.machine = { ... }: {
+    imports = [ ../../modules/profiles/minimal.nix ];
+
+    krb5.enable = true;
+
+    users = {
+      mutableUsers = false;
+      users = {
+        user = {
+          isNormalUser = true;
+        };
+      };
+    };
+  };
+
+  testScript = builtins.replaceStrings
+    [ "@@pam_ccreds@@" "@@pam_krb5@@" ]
+    [ pkgs.pam_ccreds.outPath pkgs.pam_krb5.outPath ]
+    (builtins.readFile ./test_chfn.py);
+})
diff --git a/nixos/tests/pam-oath-login.nix b/nixos/tests/pam/pam-oath-login.nix
index 6d48199eda97f..597596b211b11 100644
--- a/nixos/tests/pam-oath-login.nix
+++ b/nixos/tests/pam/pam-oath-login.nix
@@ -1,4 +1,4 @@
-import ./make-test-python.nix ({ ... }:
+import ../make-test-python.nix ({ ... }:
 
 let
   oathSnakeoilSecret = "cdd4083ef8ff1fa9178c6d46bfb1a3";
diff --git a/nixos/tests/pam-u2f.nix b/nixos/tests/pam/pam-u2f.nix
index f492baa9e139d..0ac6ac17be823 100644
--- a/nixos/tests/pam-u2f.nix
+++ b/nixos/tests/pam/pam-u2f.nix
@@ -1,4 +1,4 @@
-import ./make-test-python.nix ({ ... }:
+import ../make-test-python.nix ({ ... }:
 
 {
   name = "pam-u2f";
diff --git a/nixos/tests/pam/test_chfn.py b/nixos/tests/pam/test_chfn.py
new file mode 100644
index 0000000000000..b108a9423caf2
--- /dev/null
+++ b/nixos/tests/pam/test_chfn.py
@@ -0,0 +1,27 @@
+expected_lines = {
+    "account required pam_unix.so",
+    "account sufficient @@pam_krb5@@/lib/security/pam_krb5.so",
+    "auth [default=die success=done] @@pam_ccreds@@/lib/security/pam_ccreds.so action=validate use_first_pass",
+    "auth [default=ignore success=1 service_err=reset] @@pam_krb5@@/lib/security/pam_krb5.so use_first_pass",
+    "auth required pam_deny.so",
+    "auth sufficient @@pam_ccreds@@/lib/security/pam_ccreds.so action=store use_first_pass",
+    "auth sufficient pam_rootok.so",
+    "auth sufficient pam_unix.so   likeauth try_first_pass",
+    "password sufficient @@pam_krb5@@/lib/security/pam_krb5.so use_first_pass",
+    "password sufficient pam_unix.so nullok sha512",
+    "session optional @@pam_krb5@@/lib/security/pam_krb5.so",
+    "session required pam_env.so conffile=/etc/pam/environment readenv=0",
+    "session required pam_unix.so",
+}
+actual_lines = set(machine.succeed("cat /etc/pam.d/chfn").splitlines())
+
+missing_lines = expected_lines - actual_lines
+extra_lines = actual_lines - expected_lines
+non_functional_lines = set([line for line in extra_lines if (line == "" or line.startswith("#"))])
+unexpected_functional_lines = extra_lines - non_functional_lines
+
+with subtest("All expected lines are in the file"):
+    assert not missing_lines, f"Missing lines: {missing_lines}"
+
+with subtest("All remaining lines are empty or comments"):
+    assert not unexpected_functional_lines, f"Unexpected lines: {unexpected_functional_lines}"
diff --git a/nixos/tests/parsedmarc/default.nix b/nixos/tests/parsedmarc/default.nix
index d838d3b6a39c6..50b977723e9c7 100644
--- a/nixos/tests/parsedmarc/default.nix
+++ b/nixos/tests/parsedmarc/default.nix
@@ -4,6 +4,7 @@
 { pkgs, ... }@args:
 let
   inherit (import ../../lib/testing-python.nix args) makeTest;
+  inherit (pkgs) lib;
 
   dmarcTestReport = builtins.fetchurl {
     name = "dmarc-test-report";
@@ -54,7 +55,7 @@ in
   localMail = makeTest
     {
       name = "parsedmarc-local-mail";
-      meta = with pkgs.lib.maintainers; {
+      meta = with lib.maintainers; {
         maintainers = [ talyz ];
       };
 
@@ -83,7 +84,7 @@ in
             };
           };
 
-          services.elasticsearch.package = pkgs.elasticsearch7-oss;
+          services.elasticsearch.package = pkgs.elasticsearch-oss;
 
           environment.systemPackages = [
             (sendEmail "dmarc@localhost")
@@ -94,6 +95,7 @@ in
       testScript = { nodes }:
         let
           esPort = toString nodes.parsedmarc.config.services.elasticsearch.port;
+          valueObject = lib.optionalString (lib.versionAtLeast nodes.parsedmarc.config.services.elasticsearch.package.version "7") ".value";
         in ''
           parsedmarc.start()
           parsedmarc.wait_for_unit("postfix.service")
@@ -104,11 +106,15 @@ in
           )
 
           parsedmarc.fail(
-              "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940 | jq -e 'if .hits.total.value > 0 then true else null end'"
+              "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940"
+              + " | tee /dev/console"
+              + " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} > 0 end'"
           )
           parsedmarc.succeed("send-email")
           parsedmarc.wait_until_succeeds(
-              "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940 | jq -e 'if .hits.total.value > 0 then true else null end'"
+              "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940"
+              + " | tee /dev/console"
+              + " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} > 0 end'"
           )
         '';
     };
@@ -121,7 +127,7 @@ in
     in
       makeTest {
         name = "parsedmarc-external-mail";
-        meta = with pkgs.lib.maintainers; {
+        meta = with lib.maintainers; {
           maintainers = [ talyz ];
         };
 
@@ -153,7 +159,7 @@ in
                 };
               };
 
-              services.elasticsearch.package = pkgs.elasticsearch7-oss;
+              services.elasticsearch.package = pkgs.elasticsearch-oss;
 
               environment.systemPackages = [
                 pkgs.jq
@@ -201,6 +207,7 @@ in
         testScript = { nodes }:
           let
             esPort = toString nodes.parsedmarc.config.services.elasticsearch.port;
+            valueObject = lib.optionalString (lib.versionAtLeast nodes.parsedmarc.config.services.elasticsearch.package.version "7") ".value";
           in ''
             mail.start()
             mail.wait_for_unit("postfix.service")
@@ -213,11 +220,15 @@ in
             )
 
             parsedmarc.fail(
-                "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940 | jq -e 'if .hits.total.value > 0 then true else null end'"
+                "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940"
+                + " | tee /dev/console"
+                + " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} > 0 end'"
             )
             mail.succeed("send-email")
             parsedmarc.wait_until_succeeds(
-                "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940 | jq -e 'if .hits.total.value > 0 then true else null end'"
+                "curl -sS -f http://localhost:${esPort}/_search?q=report_id:2940"
+                + " | tee /dev/console"
+                + " | jq -es 'if . == [] then null else .[] | .hits.total${valueObject} > 0 end'"
             )
           '';
       };
diff --git a/nixos/tests/podman.nix b/nixos/tests/podman/default.nix
index 6184561e6dddf..b52a7f060ad66 100644
--- a/nixos/tests/podman.nix
+++ b/nixos/tests/podman/default.nix
@@ -1,6 +1,6 @@
 # This test runs podman and checks if simple container starts
 
-import ./make-test-python.nix (
+import ../make-test-python.nix (
   { pkgs, lib, ... }: {
     name = "podman";
     meta = {
@@ -48,7 +48,7 @@ import ./make-test-python.nix (
       start_all()
 
       with subtest("Run container as root with runc"):
-          podman.succeed("tar cvf scratchimg.tar --files-from /dev/null && podman import scratchimg.tar scratchimg")
+          podman.succeed("tar cv --files-from /dev/null | podman import - scratchimg")
           podman.succeed(
               "podman run --runtime=runc -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
           )
@@ -57,7 +57,7 @@ import ./make-test-python.nix (
           podman.succeed("podman rm sleeping")
 
       with subtest("Run container as root with crun"):
-          podman.succeed("tar cvf scratchimg.tar --files-from /dev/null && podman import scratchimg.tar scratchimg")
+          podman.succeed("tar cv --files-from /dev/null | podman import - scratchimg")
           podman.succeed(
               "podman run --runtime=crun -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
           )
@@ -66,7 +66,7 @@ import ./make-test-python.nix (
           podman.succeed("podman rm sleeping")
 
       with subtest("Run container as root with the default backend"):
-          podman.succeed("tar cvf scratchimg.tar --files-from /dev/null && podman import scratchimg.tar scratchimg")
+          podman.succeed("tar cv --files-from /dev/null | podman import - scratchimg")
           podman.succeed(
               "podman run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
           )
@@ -78,7 +78,7 @@ import ./make-test-python.nix (
       podman.succeed("loginctl enable-linger alice")
 
       with subtest("Run container rootless with runc"):
-          podman.succeed(su_cmd("tar cvf scratchimg.tar --files-from /dev/null && podman import scratchimg.tar scratchimg"))
+          podman.succeed(su_cmd("tar cv --files-from /dev/null | podman import - scratchimg"))
           podman.succeed(
               su_cmd(
                   "podman run --runtime=runc -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
@@ -89,7 +89,7 @@ import ./make-test-python.nix (
           podman.succeed(su_cmd("podman rm sleeping"))
 
       with subtest("Run container rootless with crun"):
-          podman.succeed(su_cmd("tar cvf scratchimg.tar --files-from /dev/null && podman import scratchimg.tar scratchimg"))
+          podman.succeed(su_cmd("tar cv --files-from /dev/null | podman import - scratchimg"))
           podman.succeed(
               su_cmd(
                   "podman run --runtime=crun -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
@@ -100,7 +100,7 @@ import ./make-test-python.nix (
           podman.succeed(su_cmd("podman rm sleeping"))
 
       with subtest("Run container rootless with the default backend"):
-          podman.succeed(su_cmd("tar cvf scratchimg.tar --files-from /dev/null && podman import scratchimg.tar scratchimg"))
+          podman.succeed(su_cmd("tar cv --files-from /dev/null | podman import - scratchimg"))
           podman.succeed(
               su_cmd(
                   "podman run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
@@ -112,7 +112,7 @@ import ./make-test-python.nix (
 
       with subtest("Run container with init"):
           podman.succeed(
-              "tar cvf busybox.tar -C ${pkgs.pkgsStatic.busybox} . && podman import busybox.tar busybox"
+              "tar cv -C ${pkgs.pkgsStatic.busybox} . | podman import - busybox"
           )
           pid = podman.succeed("podman run --rm busybox readlink /proc/self").strip()
           assert pid == "1"
@@ -124,7 +124,7 @@ import ./make-test-python.nix (
 
       with subtest("Run container via docker cli"):
           podman.succeed("docker network create default")
-          podman.succeed("tar cvf scratchimg.tar --files-from /dev/null && podman import scratchimg.tar scratchimg")
+          podman.succeed("tar cv --files-from /dev/null | podman import - scratchimg")
           podman.succeed(
             "docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
           )
diff --git a/nixos/tests/podman-dnsname.nix b/nixos/tests/podman/dnsname.nix
index 9e4e8fdb08a2f..3768ae79e0676 100644
--- a/nixos/tests/podman-dnsname.nix
+++ b/nixos/tests/podman/dnsname.nix
@@ -1,4 +1,4 @@
-import ./make-test-python.nix (
+import ../make-test-python.nix (
   { pkgs, lib, ... }:
   let
     inherit (pkgs) writeTextDir python3 curl;
@@ -21,7 +21,7 @@ import ./make-test-python.nix (
       podman.wait_for_unit("sockets.target")
 
       with subtest("DNS works"): # also tests inter-container tcp routing
-        podman.succeed("tar cvf scratchimg.tar --files-from /dev/null && podman import scratchimg.tar scratchimg")
+        podman.succeed("tar cv --files-from /dev/null | podman import - scratchimg")
         podman.succeed(
           "podman run -d --name=webserver -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin -w ${webroot} scratchimg ${python3}/bin/python -m http.server 8000"
         )
diff --git a/nixos/tests/podman-tls-ghostunnel.nix b/nixos/tests/podman/tls-ghostunnel.nix
index b5836c436497b..c0bc47cc40b1b 100644
--- a/nixos/tests/podman-tls-ghostunnel.nix
+++ b/nixos/tests/podman/tls-ghostunnel.nix
@@ -1,7 +1,7 @@
 /*
   This test runs podman as a backend for the Docker CLI.
  */
-import ./make-test-python.nix (
+import ../make-test-python.nix (
   { pkgs, lib, ... }:
 
   let gen-ca = pkgs.writeScript "gen-ca" ''
@@ -126,7 +126,7 @@ import ./make-test-python.nix (
           client.succeed("docker version")
 
           # via socket would be nicer
-          podman.succeed("tar cvf scratchimg.tar --files-from /dev/null && podman import scratchimg.tar scratchimg")
+          podman.succeed("tar cv --files-from /dev/null | podman import - scratchimg")
 
           client.succeed(
             "docker run -d --name=sleeping -v /nix/store:/nix/store -v /run/current-system/sw/bin:/bin scratchimg /bin/sleep 10"
diff --git a/nixos/tests/powerdns-admin.nix b/nixos/tests/powerdns-admin.nix
new file mode 100644
index 0000000000000..4d763c9c6f6e8
--- /dev/null
+++ b/nixos/tests/powerdns-admin.nix
@@ -0,0 +1,117 @@
+# Test powerdns-admin
+{ system ? builtins.currentSystem
+, config ? { }
+, pkgs ? import ../.. { inherit system config; }
+}:
+
+with import ../lib/testing-python.nix { inherit system pkgs; };
+with pkgs.lib;
+let
+  defaultConfig = ''
+    BIND_ADDRESS = '127.0.0.1'
+    PORT = 8000
+  '';
+
+  makeAppTest = name: configs: makeTest {
+    name = "powerdns-admin-${name}";
+    meta = with pkgs.lib.maintainers; {
+      maintainers = [ Flakebi zhaofengli ];
+    };
+
+    nodes.server = { pkgs, config, ... }: mkMerge ([
+      {
+        services.powerdns-admin = {
+          enable = true;
+          secretKeyFile = "/etc/powerdns-admin/secret";
+          saltFile = "/etc/powerdns-admin/salt";
+        };
+        # It's insecure to have secrets in the world-readable nix store, but this is just a test
+        environment.etc."powerdns-admin/secret".text = "secret key";
+        environment.etc."powerdns-admin/salt".text = "salt";
+        environment.systemPackages = [
+          (pkgs.writeShellScriptBin "run-test" config.system.build.testScript)
+        ];
+      }
+    ] ++ configs);
+
+    testScript = ''
+      server.wait_for_unit("powerdns-admin.service")
+      server.wait_until_succeeds("run-test", timeout=10)
+    '';
+  };
+
+  matrix = {
+    backend = {
+      mysql = {
+        services.powerdns-admin = {
+          config = ''
+            ${defaultConfig}
+            SQLALCHEMY_DATABASE_URI = 'mysql://powerdnsadmin@/powerdnsadmin?unix_socket=/run/mysqld/mysqld.sock'
+          '';
+        };
+        systemd.services.powerdns-admin = {
+          after = [ "mysql.service" ];
+          serviceConfig.BindPaths = "/run/mysqld";
+        };
+
+        services.mysql = {
+          enable = true;
+          package = pkgs.mariadb;
+          ensureDatabases = [ "powerdnsadmin" ];
+          ensureUsers = [
+            {
+              name = "powerdnsadmin";
+              ensurePermissions = {
+                "powerdnsadmin.*" = "ALL PRIVILEGES";
+              };
+            }
+          ];
+        };
+      };
+      postgresql = {
+        services.powerdns-admin = {
+          config = ''
+            ${defaultConfig}
+            SQLALCHEMY_DATABASE_URI = 'postgresql://powerdnsadmin@/powerdnsadmin?host=/run/postgresql'
+          '';
+        };
+        systemd.services.powerdns-admin = {
+          after = [ "postgresql.service" ];
+          serviceConfig.BindPaths = "/run/postgresql";
+        };
+
+        services.postgresql = {
+          enable = true;
+          ensureDatabases = [ "powerdnsadmin" ];
+          ensureUsers = [
+            {
+              name = "powerdnsadmin";
+              ensurePermissions = {
+                "DATABASE powerdnsadmin" = "ALL PRIVILEGES";
+              };
+            }
+          ];
+        };
+      };
+    };
+    listen = {
+      tcp = {
+        services.powerdns-admin.extraArgs = [ "-b" "127.0.0.1:8000" ];
+        system.build.testScript = ''
+          curl -sSf http://127.0.0.1:8000/
+        '';
+      };
+      unix = {
+        services.powerdns-admin.extraArgs = [ "-b" "unix:/run/powerdns-admin/http.sock" ];
+        system.build.testScript = ''
+          curl -sSf --unix-socket /run/powerdns-admin/http.sock http://somehost/
+        '';
+      };
+    };
+  };
+in
+with matrix; {
+  postgresql = makeAppTest "postgresql" [ backend.postgresql listen.tcp ];
+  mysql = makeAppTest "mysql" [ backend.mysql listen.tcp ];
+  unix-listener = makeAppTest "unix-listener" [ backend.postgresql listen.unix ];
+}
diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix
index d069854328a2c..036c037e426c4 100644
--- a/nixos/tests/prometheus-exporters.nix
+++ b/nixos/tests/prometheus-exporters.nix
@@ -259,6 +259,19 @@ let
       '';
     };
 
+    fastly = {
+      exporterConfig = {
+        enable = true;
+        tokenPath = pkgs.writeText "token" "abc123";
+      };
+
+      # noop: fastly's exporter can't start without first talking to fastly
+      # see: https://github.com/peterbourgon/fastly-exporter/issues/87
+      exporterTest = ''
+        succeed("true");
+      '';
+    };
+
     fritzbox = {
       # TODO add proper test case
       exporterConfig = {
@@ -861,6 +874,9 @@ let
         wait_for_unit("prometheus-postfix-exporter.service")
         wait_for_file("/var/lib/postfix/queue/public/showq")
         wait_for_open_port(9154)
+        wait_until_succeeds(
+            "curl -sSf http://localhost:9154/metrics | grep 'postfix_up{path=\"/var/lib/postfix/queue/public/showq\"} 1'"
+        )
         succeed(
             "curl -sSf http://localhost:9154/metrics | grep 'postfix_smtpd_connects_total 0'"
         )
@@ -936,7 +952,7 @@ let
       exporterConfig = {
         enable = true;
       };
-      metricProvider.services.redis.enable = true;
+      metricProvider.services.redis.servers."".enable = true;
       exporterTest = ''
         wait_for_unit("redis.service")
         wait_for_unit("prometheus-redis-exporter.service")
@@ -1015,6 +1031,25 @@ let
       '';
     };
 
+    smartctl = {
+      exporterConfig = {
+        enable = true;
+        devices = [
+          "/dev/vda"
+        ];
+      };
+      exporterTest = ''
+        wait_for_unit("prometheus-smartctl-exporter.service")
+        wait_for_open_port("9633")
+        wait_until_succeeds(
+          "curl -sSf 'localhost:9633/metrics'"
+        )
+        wait_until_succeeds(
+            'journalctl -eu prometheus-smartctl-exporter.service -o cat | grep "/dev/vda: Unable to detect device type"'
+        )
+      '';
+    };
+
     smokeping = {
       exporterConfig = {
         enable = true;
diff --git a/nixos/tests/pulseaudio.nix b/nixos/tests/pulseaudio.nix
new file mode 100644
index 0000000000000..4e2ce679acd71
--- /dev/null
+++ b/nixos/tests/pulseaudio.nix
@@ -0,0 +1,71 @@
+let
+  mkTest = { systemWide ? false }:
+    import ./make-test-python.nix ({ pkgs, lib, ... }:
+      let
+        testFile = pkgs.fetchurl {
+          url =
+            "https://file-examples-com.github.io/uploads/2017/11/file_example_MP3_700KB.mp3";
+          hash = "sha256-+iggJW8s0/LfA/okfXsB550/55Q0Sq3OoIzuBrzOPJQ=";
+        };
+
+        makeTestPlay = key:
+          { sox, alsa-utils }:
+          pkgs.writeScriptBin key ''
+            set -euxo pipefail
+            ${sox}/bin/play ${testFile}
+            ${sox}/bin/sox ${testFile} -t wav - | ${alsa-utils}/bin/aplay
+            touch /tmp/${key}_success
+          '';
+
+        testers = builtins.mapAttrs makeTestPlay {
+          testPlay = { inherit (pkgs) sox alsa-utils; };
+          testPlay32 = { inherit (pkgs.pkgsi686Linux) sox alsa-utils; };
+        };
+      in {
+        name = "pulseaudio${lib.optionalString systemWide "-systemWide"}";
+        meta = with pkgs.lib.maintainers; {
+          maintainers = [ synthetica ] ++ pkgs.pulseaudio.meta.maintainers;
+        };
+
+        machine = { ... }:
+
+          {
+            imports = [ ./common/wayland-cage.nix ];
+            hardware.pulseaudio = {
+              enable = true;
+              support32Bit = true;
+              inherit systemWide;
+            };
+
+            environment.systemPackages = [ testers.testPlay pkgs.pavucontrol ]
+              ++ lib.optional pkgs.stdenv.isx86_64 testers.testPlay32;
+          } // lib.optionalAttrs systemWide {
+            users.users.alice.extraGroups = [ "audio" ];
+            systemd.services.pulseaudio.wantedBy = [ "multi-user.target" ];
+          };
+
+        enableOCR = true;
+
+        testScript = { ... }: ''
+          machine.wait_until_succeeds("pgrep xterm")
+          machine.wait_for_text("alice@machine")
+
+          machine.send_chars("testPlay \n")
+          machine.wait_for_file("/tmp/testPlay_success")
+          ${lib.optionalString pkgs.stdenv.isx86_64 ''
+            machine.send_chars("testPlay32 \n")
+            machine.wait_for_file("/tmp/testPlay32_success")
+          ''}
+          machine.screenshot("testPlay")
+
+          # Pavucontrol only loads when Pulseaudio is running. If it isn't, the
+          # text "Playback" (one of the tabs) will never show.
+          machine.send_chars("pavucontrol\n")
+          machine.wait_for_text("Playback")
+          machine.screenshot("Pavucontrol")
+        '';
+      });
+in builtins.mapAttrs (key: val: mkTest val) {
+  user = { systemWide = false; };
+  system = { systemWide = true; };
+}
diff --git a/nixos/tests/redis.nix b/nixos/tests/redis.nix
index 28b6058c2c026..7b70c239ad6ed 100644
--- a/nixos/tests/redis.nix
+++ b/nixos/tests/redis.nix
@@ -1,7 +1,4 @@
 import ./make-test-python.nix ({ pkgs, ... }:
-let
-  redisSocket = "/run/redis/redis.sock";
-in
 {
   name = "redis";
   meta = with pkgs.lib.maintainers; {
@@ -10,35 +7,40 @@ in
 
   nodes = {
     machine =
-      { pkgs, ... }:
+      { pkgs, lib, ... }: with lib;
 
       {
-        services.redis.enable = true;
-        services.redis.unixSocket = redisSocket;
+        services.redis.servers."".enable = true;
+        services.redis.servers."test".enable = true;
 
-        # Allow access to the unix socket for the "redis" group.
-        services.redis.unixSocketPerm = 770;
-
-        users.users."member" = {
+        users.users = listToAttrs (map (suffix: nameValuePair "member${suffix}" {
           createHome = false;
-          description = "A member of the redis group";
+          description = "A member of the redis${suffix} group";
           isNormalUser = true;
-          extraGroups = [
-            "redis"
-          ];
-        };
+          extraGroups = [ "redis${suffix}" ];
+        }) ["" "-test"]);
       };
   };
 
-  testScript = ''
+  testScript = { nodes, ... }: let
+    inherit (nodes.machine.config.services) redis;
+    in ''
     start_all()
     machine.wait_for_unit("redis")
+    machine.wait_for_unit("redis-test")
+
+    # The unnamed Redis server still opens a port for backward-compatibility
     machine.wait_for_open_port("6379")
 
+    machine.wait_for_file("${redis.servers."".unixSocket}")
+    machine.wait_for_file("${redis.servers."test".unixSocket}")
+
     # The unix socket is accessible to the redis group
     machine.succeed('su member -c "redis-cli ping | grep PONG"')
+    machine.succeed('su member-test -c "redis-cli ping | grep PONG"')
 
     machine.succeed("redis-cli ping | grep PONG")
-    machine.succeed("redis-cli -s ${redisSocket} ping | grep PONG")
+    machine.succeed("redis-cli -s ${redis.servers."".unixSocket} ping | grep PONG")
+    machine.succeed("redis-cli -s ${redis.servers."test".unixSocket} ping | grep PONG")
   '';
 })
diff --git a/nixos/tests/sabnzbd.nix b/nixos/tests/sabnzbd.nix
new file mode 100644
index 0000000000000..fb35b212b493b
--- /dev/null
+++ b/nixos/tests/sabnzbd.nix
@@ -0,0 +1,22 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }: {
+  name = "sabnzbd";
+  meta = with pkgs.lib; {
+    maintainers = with maintainers; [ jojosch ];
+  };
+
+  machine = { pkgs, ... }: {
+    services.sabnzbd = {
+      enable = true;
+    };
+
+    # unrar is unfree
+    nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "unrar" ];
+  };
+
+  testScript = ''
+    machine.wait_for_unit("sabnzbd.service")
+    machine.wait_until_succeeds(
+        "curl --fail -L http://localhost:8080/"
+    )
+  '';
+})
diff --git a/nixos/tests/samba-wsdd.nix b/nixos/tests/samba-wsdd.nix
index e7dd17c089a3e..0e3185b0c6849 100644
--- a/nixos/tests/samba-wsdd.nix
+++ b/nixos/tests/samba-wsdd.nix
@@ -38,7 +38,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
     server_wsdd.wait_for_unit("samba-wsdd")
 
     client_wsdd.wait_until_succeeds(
-        "echo list | ${pkgs.libressl.nc}/bin/nc -U /run/wsdd/wsdd.sock | grep -i SERVER-WSDD"
+        "echo list | ${pkgs.libressl.nc}/bin/nc -N -U /run/wsdd/wsdd.sock | grep -i SERVER-WSDD"
     )
   '';
 })
diff --git a/nixos/tests/snapcast.nix b/nixos/tests/snapcast.nix
index 8d960b4cc069c..30b8343e2ffee 100644
--- a/nixos/tests/snapcast.nix
+++ b/nixos/tests/snapcast.nix
@@ -40,6 +40,7 @@ in {
           };
         };
       };
+      environment.systemPackages = [ pkgs.snapcast ];
     };
     client = {
       environment.systemPackages = [ pkgs.snapcast ];
@@ -71,6 +72,13 @@ in {
             "curl --fail http://localhost:${toString httpPort}/jsonrpc -d '{json.dumps(get_rpc_version)}'"
         )
 
+    with subtest("test a ipv6 connection"):
+        server.execute("systemd-run --unit=snapcast-local-client snapclient -h ::1 -p ${toString port}")
+        server.wait_until_succeeds(
+            "journalctl -o cat -u snapserver.service | grep -q 'Hello from'"
+        )
+        server.wait_until_succeeds("journalctl -o cat -u snapcast-local-client | grep -q 'buffer: ${toString bufferSize}'")
+
     with subtest("test a connection"):
         client.execute("systemd-run --unit=snapcast-client snapclient -h server -p ${toString port}")
         server.wait_until_succeeds(
diff --git a/nixos/tests/sourcehut.nix b/nixos/tests/sourcehut.nix
index b56a14ebf85ea..d1536c5932259 100644
--- a/nixos/tests/sourcehut.nix
+++ b/nixos/tests/sourcehut.nix
@@ -1,29 +1,197 @@
-import ./make-test-python.nix ({ pkgs, ... }:
+import ./make-test-python.nix ({ pkgs, lib, ... }:
+let
+  domain = "sourcehut.localdomain";
 
+  # Note that wildcard certificates just under the TLD (eg. *.com)
+  # would be rejected by clients like curl.
+  tls-cert = pkgs.runCommand "selfSignedCerts" { buildInputs = [ pkgs.openssl ]; } ''
+    openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes -days 36500 \
+      -subj '/CN=${domain}' -extensions v3_req \
+      -addext 'subjectAltName = DNS:*.${domain}'
+    install -D -t $out key.pem cert.pem
+  '';
+
+  images = {
+    nixos.unstable.x86_64 =
+      let
+        systemConfig = { pkgs, ... }: {
+          # passwordless ssh server
+          services.openssh = {
+            enable = true;
+            permitRootLogin = "yes";
+            extraConfig = "PermitEmptyPasswords yes";
+          };
+
+          users = {
+            mutableUsers = false;
+            # build user
+            extraUsers."build" = {
+              isNormalUser = true;
+              uid = 1000;
+              extraGroups = [ "wheel" ];
+              password = "";
+            };
+            users.root.password = "";
+          };
+
+          security.sudo.wheelNeedsPassword = false;
+          nix.trustedUsers = [ "root" "build" ];
+          documentation.nixos.enable = false;
+
+          # builds.sr.ht-image-specific network settings
+          networking = {
+            hostName = "build";
+            dhcpcd.enable = false;
+            defaultGateway.address = "10.0.2.2";
+            usePredictableInterfaceNames = false;
+            interfaces."eth0".ipv4.addresses = [{
+              address = "10.0.2.15";
+              prefixLength = 25;
+            }];
+            enableIPv6 = false;
+            nameservers = [
+              # OpenNIC anycast
+              "185.121.177.177"
+              "169.239.202.202"
+              # Google
+              "8.8.8.8"
+            ];
+            firewall.allowedTCPPorts = [ 22 ];
+          };
+
+          environment.systemPackages = [
+            pkgs.gitMinimal
+            #pkgs.mercurial
+            pkgs.curl
+            pkgs.gnupg
+          ];
+        };
+        qemuConfig = { pkgs, ... }: {
+          imports = [ systemConfig ];
+          fileSystems."/".device = "/dev/disk/by-label/nixos";
+          boot.initrd.availableKernelModules = [
+            "ahci"
+            "ehci_pci"
+            "sd_mod"
+            "usb_storage"
+            "usbhid"
+            "virtio_balloon"
+            "virtio_blk"
+            "virtio_pci"
+            "virtio_ring"
+            "xhci_pci"
+          ];
+          boot.loader = {
+            grub = {
+              version = 2;
+              device = "/dev/vda";
+            };
+            timeout = 0;
+          };
+        };
+        config = (import (pkgs.path + "/nixos/lib/eval-config.nix") {
+          inherit pkgs; modules = [ qemuConfig ];
+          system = "x86_64-linux";
+        }).config;
+      in
+      import (pkgs.path + "/nixos/lib/make-disk-image.nix") {
+        inherit pkgs lib config;
+        diskSize = 16000;
+        format = "qcow2-compressed";
+        contents = [
+          { source = pkgs.writeText "gitconfig" ''
+              [user]
+                name = builds.sr.ht
+                email = build@sr.ht
+            '';
+            target = "/home/build/.gitconfig";
+            user = "build";
+            group = "users";
+            mode = "644";
+          }
+        ];
+      };
+  };
+
+in
 {
   name = "sourcehut";
 
   meta.maintainers = [ pkgs.lib.maintainers.tomberek ];
 
-  machine = { config, pkgs, ... }: {
-    virtualisation.memorySize = 2048;
-    networking.firewall.allowedTCPPorts = [ 80 ];
+  machine = { config, pkgs, nodes, ... }: {
+    # buildsrht needs space
+    virtualisation.diskSize = 4 * 1024;
+    virtualisation.memorySize = 2 * 1024;
+    networking.domain = domain;
+    networking.extraHosts = ''
+      ${config.networking.primaryIPAddress} meta.${domain}
+      ${config.networking.primaryIPAddress} builds.${domain}
+    '';
 
     services.sourcehut = {
       enable = true;
-      services = [ "meta" ];
-      originBase = "sourcehut";
-      settings."sr.ht".service-key =   "8888888888888888888888888888888888888888888888888888888888888888";
-      settings."sr.ht".network-key = "0000000000000000000000000000000000000000000=";
-      settings.webhooks.private-key = "0000000000000000000000000000000000000000000=";
+      services = [ "meta" "builds" ];
+      nginx.enable = true;
+      nginx.virtualHost = {
+        forceSSL = true;
+        sslCertificate = "${tls-cert}/cert.pem";
+        sslCertificateKey = "${tls-cert}/key.pem";
+      };
+      postgresql.enable = true;
+      redis.enable = true;
+
+      meta.enable = true;
+      builds = {
+        enable = true;
+        # FIXME: see why it does not seem to activate fully.
+        #enableWorker = true;
+        inherit images;
+      };
+      settings."sr.ht" = {
+        global-domain = config.networking.domain;
+        service-key = pkgs.writeText "service-key" "8b327279b77e32a3620e2fc9aabce491cc46e7d821fd6713b2a2e650ce114d01";
+        network-key = pkgs.writeText "network-key" "cEEmc30BRBGkgQZcHFksiG7hjc6_dK1XR2Oo5Jb9_nQ=";
+      };
+      settings."builds.sr.ht" = {
+        oauth-client-secret = pkgs.writeText "buildsrht-oauth-client-secret" "2260e9c4d9b8dcedcef642860e0504bc";
+        oauth-client-id = "299db9f9c2013170";
+      };
+      settings.webhooks.private-key = pkgs.writeText "webhook-key" "Ra3IjxgFiwG9jxgp4WALQIZw/BMYt30xWiOsqD0J7EA=";
+    };
+
+    networking.firewall.allowedTCPPorts = [ 443 ];
+    security.pki.certificateFiles = [ "${tls-cert}/cert.pem" ];
+    services.nginx = {
+      enable = true;
+      recommendedGzipSettings = true;
+      recommendedOptimisation = true;
+      recommendedTlsSettings = true;
+      recommendedProxySettings = true;
+    };
+
+    services.postgresql = {
+      enable = true;
+      enableTCPIP = false;
+      settings.unix_socket_permissions = "0770";
     };
   };
 
   testScript = ''
     start_all()
     machine.wait_for_unit("multi-user.target")
+
+    # Testing metasrht
+    machine.wait_for_unit("metasrht-api.service")
     machine.wait_for_unit("metasrht.service")
     machine.wait_for_open_port(5000)
-    machine.succeed("curl -sL http://localhost:5000 | grep meta.sourcehut")
+    machine.succeed("curl -sL http://localhost:5000 | grep meta.${domain}")
+    machine.succeed("curl -sL http://meta.${domain} | grep meta.${domain}")
+
+    # Testing buildsrht
+    machine.wait_for_unit("buildsrht.service")
+    machine.wait_for_open_port(5002)
+    machine.succeed("curl -sL http://localhost:5002 | grep builds.${domain}")
+    #machine.wait_for_unit("buildsrht-worker.service")
   '';
 })
diff --git a/nixos/tests/step-ca.nix b/nixos/tests/step-ca.nix
new file mode 100644
index 0000000000000..b22bcb060f2bf
--- /dev/null
+++ b/nixos/tests/step-ca.nix
@@ -0,0 +1,76 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+  let
+    test-certificates = pkgs.runCommandLocal "test-certificates" { } ''
+      mkdir -p $out
+      echo insecure-root-password > $out/root-password-file
+      echo insecure-intermediate-password > $out/intermediate-password-file
+      ${pkgs.step-cli}/bin/step certificate create "Example Root CA" $out/root_ca.crt $out/root_ca.key --password-file=$out/root-password-file --profile root-ca
+      ${pkgs.step-cli}/bin/step certificate create "Example Intermediate CA 1" $out/intermediate_ca.crt $out/intermediate_ca.key --password-file=$out/intermediate-password-file --ca-password-file=$out/root-password-file --profile intermediate-ca --ca $out/root_ca.crt --ca-key $out/root_ca.key
+    '';
+  in
+  {
+    nodes =
+      {
+        caserver =
+          { config, pkgs, ... }: {
+            services.step-ca = {
+              enable = true;
+              address = "0.0.0.0";
+              port = 8443;
+              openFirewall = true;
+              intermediatePasswordFile = "${test-certificates}/intermediate-password-file";
+              settings = {
+                dnsNames = [ "caserver" ];
+                root = "${test-certificates}/root_ca.crt";
+                crt = "${test-certificates}/intermediate_ca.crt";
+                key = "${test-certificates}/intermediate_ca.key";
+                db = {
+                  type = "badger";
+                  dataSource = "/var/lib/step-ca/db";
+                };
+                authority = {
+                  provisioners = [
+                    {
+                      type = "ACME";
+                      name = "acme";
+                    }
+                  ];
+                };
+              };
+            };
+          };
+
+        caclient =
+          { config, pkgs, ... }: {
+            security.acme.server = "https://caserver:8443/acme/acme/directory";
+            security.acme.email = "root@example.org";
+            security.acme.acceptTerms = true;
+
+            security.pki.certificateFiles = [ "${test-certificates}/root_ca.crt" ];
+
+            networking.firewall.allowedTCPPorts = [ 80 443 ];
+
+            services.nginx = {
+              enable = true;
+              virtualHosts = {
+                "caclient" = {
+                  forceSSL = true;
+                  enableACME = true;
+                };
+              };
+            };
+          };
+
+        catester = { config, pkgs, ... }: {
+          security.pki.certificateFiles = [ "${test-certificates}/root_ca.crt" ];
+        };
+      };
+
+    testScript =
+      ''
+        catester.start()
+        caserver.wait_for_unit("step-ca.service")
+        caclient.wait_for_unit("acme-finished-caclient.target")
+        catester.succeed("curl https://caclient/ | grep \"Welcome to nginx!\"")
+      '';
+  })
diff --git a/nixos/tests/switch-test.nix b/nixos/tests/switch-test.nix
index 7ea07a390b808..daad9134885f7 100644
--- a/nixos/tests/switch-test.nix
+++ b/nixos/tests/switch-test.nix
@@ -3,81 +3,16 @@
 import ./make-test-python.nix ({ pkgs, ...} : {
   name = "switch-test";
   meta = with pkgs.lib.maintainers; {
-    maintainers = [ gleber ];
+    maintainers = [ gleber das_j ];
   };
 
   nodes = {
-    machine = { config, pkgs, lib, ... }: {
-      environment.systemPackages = [ pkgs.socat ]; # for the socket activation stuff
+    machine = { pkgs, lib, ... }: {
       users.mutableUsers = false;
 
-      specialisation = {
-        # A system with a simple socket-activated unit
-        simple-socket.configuration = {
-          systemd.services.socket-activated.serviceConfig = {
-            ExecStart = pkgs.writeScript "socket-test.py" /* python */ ''
-              #!${pkgs.python3}/bin/python3
-
-              from socketserver import TCPServer, StreamRequestHandler
-              import socket
-
-              class Handler(StreamRequestHandler):
-                  def handle(self):
-                      self.wfile.write("hello".encode("utf-8"))
-
-              class Server(TCPServer):
-                  def __init__(self, server_address, handler_cls):
-                      # Invoke base but omit bind/listen steps (performed by systemd activation!)
-                      TCPServer.__init__(
-                          self, server_address, handler_cls, bind_and_activate=False)
-                      # Override socket
-                      self.socket = socket.fromfd(3, self.address_family, self.socket_type)
-
-              if __name__ == "__main__":
-                  server = Server(("localhost", 1234), Handler)
-                  server.serve_forever()
-            '';
-          };
-          systemd.sockets.socket-activated = {
-            wantedBy = [ "sockets.target" ];
-            listenStreams = [ "/run/test.sock" ];
-            socketConfig.SocketMode = lib.mkDefault "0777";
-          };
-        };
-
-        # The same system but the socket is modified
-        modified-socket.configuration = {
-          imports = [ config.specialisation.simple-socket.configuration ];
-          systemd.sockets.socket-activated.socketConfig.SocketMode = "0666";
-        };
-
-        # The same system but the service is modified
-        modified-service.configuration = {
-          imports = [ config.specialisation.simple-socket.configuration ];
-          systemd.services.socket-activated.serviceConfig.X-Test = "test";
-        };
-
-        # The same system but both service and socket are modified
-        modified-service-and-socket.configuration = {
-          imports = [ config.specialisation.simple-socket.configuration ];
-          systemd.services.socket-activated.serviceConfig.X-Test = "some_value";
-          systemd.sockets.socket-activated.socketConfig.SocketMode = "0444";
-        };
-
-        # A system with a socket-activated service and some simple services
-        service-and-socket.configuration = {
-          imports = [ config.specialisation.simple-socket.configuration ];
-          systemd.services.simple-service = {
-            wantedBy = [ "multi-user.target" ];
-            serviceConfig = {
-              Type = "oneshot";
-              RemainAfterExit = true;
-              ExecStart = "${pkgs.coreutils}/bin/true";
-            };
-          };
-
-          systemd.services.simple-restart-service = {
-            stopIfChanged = false;
+      specialisation = rec {
+        simpleService.configuration = {
+          systemd.services.test = {
             wantedBy = [ "multi-user.target" ];
             serviceConfig = {
               Type = "oneshot";
@@ -85,74 +20,32 @@ import ./make-test-python.nix ({ pkgs, ...} : {
               ExecStart = "${pkgs.coreutils}/bin/true";
             };
           };
+        };
 
-          systemd.services.simple-reload-service = {
-            reloadIfChanged = true;
-            wantedBy = [ "multi-user.target" ];
-            serviceConfig = {
-              Type = "oneshot";
-              RemainAfterExit = true;
-              ExecStart = "${pkgs.coreutils}/bin/true";
-              ExecReload = "${pkgs.coreutils}/bin/true";
-            };
-          };
-
-          systemd.services.no-restart-service = {
-            restartIfChanged = false;
-            wantedBy = [ "multi-user.target" ];
-            serviceConfig = {
-              Type = "oneshot";
-              RemainAfterExit = true;
-              ExecStart = "${pkgs.coreutils}/bin/true";
-            };
-          };
+        simpleServiceModified.configuration = {
+          imports = [ simpleService.configuration ];
+          systemd.services.test.serviceConfig.X-Test = true;
         };
 
-        # The same system but with an activation script that restarts all services
-        restart-and-reload-by-activation-script.configuration = {
-          imports = [ config.specialisation.service-and-socket.configuration ];
-          system.activationScripts.restart-and-reload-test = {
-            supportsDryActivation = true;
-            deps = [];
-            text = ''
-              if [ "$NIXOS_ACTION" = dry-activate ]; then
-                f=/run/nixos/dry-activation-restart-list
-              else
-                f=/run/nixos/activation-restart-list
-              fi
-              cat <<EOF >> "$f"
-              simple-service.service
-              simple-restart-service.service
-              simple-reload-service.service
-              no-restart-service.service
-              socket-activated.service
-              EOF
-            '';
-          };
+        simpleServiceNostop.configuration = {
+          imports = [ simpleService.configuration ];
+          systemd.services.test.stopIfChanged = false;
         };
 
-        # A system with a timer
-        with-timer.configuration = {
-          systemd.timers.test-timer = {
-            wantedBy = [ "timers.target" ];
-            timerConfig.OnCalendar = "@1395716396"; # chosen by fair dice roll
-          };
-          systemd.services.test-timer = {
-            serviceConfig = {
-              Type = "oneshot";
-              ExecStart = "${pkgs.coreutils}/bin/true";
-            };
+        simpleServiceReload.configuration = {
+          imports = [ simpleService.configuration ];
+          systemd.services.test = {
+            reloadIfChanged = true;
+            serviceConfig.ExecReload = "${pkgs.coreutils}/bin/true";
           };
         };
 
-        # The same system but with another time
-        with-timer-modified.configuration = {
-          imports = [ config.specialisation.with-timer.configuration ];
-          systemd.timers.test-timer.timerConfig.OnCalendar = lib.mkForce "Fri 2012-11-23 16:00:00";
+        simpleServiceNorestart.configuration = {
+          imports = [ simpleService.configuration ];
+          systemd.services.test.restartIfChanged = false;
         };
 
-        # A system with a systemd mount
-        with-mount.configuration = {
+        mount.configuration = {
           systemd.mounts = [
             {
               description = "Testmount";
@@ -165,8 +58,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
           ];
         };
 
-        # The same system but with another time
-        with-mount-modified.configuration = {
+        mountModified.configuration = {
           systemd.mounts = [
             {
               description = "Testmount";
@@ -179,8 +71,25 @@ import ./make-test-python.nix ({ pkgs, ...} : {
           ];
         };
 
-        # A system with a path unit
-        with-path.configuration = {
+        timer.configuration = {
+          systemd.timers.test-timer = {
+            wantedBy = [ "timers.target" ];
+            timerConfig.OnCalendar = "@1395716396"; # chosen by fair dice roll
+          };
+          systemd.services.test-timer = {
+            serviceConfig = {
+              Type = "oneshot";
+              ExecStart = "${pkgs.coreutils}/bin/true";
+            };
+          };
+        };
+
+        timerModified.configuration = {
+          imports = [ timer.configuration ];
+          systemd.timers.test-timer.timerConfig.OnCalendar = lib.mkForce "Fri 2012-11-23 16:00:00";
+        };
+
+        path.configuration = {
           systemd.paths.test-watch = {
             wantedBy = [ "paths.target" ];
             pathConfig.PathExists = "/testpath";
@@ -193,14 +102,12 @@ import ./make-test-python.nix ({ pkgs, ...} : {
           };
         };
 
-        # The same system but watching another file
-        with-path-modified.configuration = {
-          imports = [ config.specialisation.with-path.configuration ];
+        pathModified.configuration = {
+          imports = [ path.configuration ];
           systemd.paths.test-watch.pathConfig.PathExists = lib.mkForce "/testpath2";
         };
 
-        # A system with a slice
-        with-slice.configuration = {
+        slice.configuration = {
           systemd.slices.testslice.sliceConfig.MemoryMax = "1"; # don't allow memory allocation
           systemd.services.testservice = {
             serviceConfig = {
@@ -212,14 +119,14 @@ import ./make-test-python.nix ({ pkgs, ...} : {
           };
         };
 
-        # The same system but the slice allows to allocate memory
-        with-slice-non-crashing.configuration = {
-          imports = [ config.specialisation.with-slice.configuration ];
+        sliceModified.configuration = {
+          imports = [ slice.configuration ];
           systemd.slices.testslice.sliceConfig.MemoryMax = lib.mkForce null;
         };
       };
     };
-    other = { ... }: {
+
+    other = {
       users.mutableUsers = true;
     };
   };
@@ -227,6 +134,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
   testScript = { nodes, ... }: let
     originalSystem = nodes.machine.config.system.build.toplevel;
     otherSystem = nodes.other.config.system.build.toplevel;
+    machine = nodes.machine.config.system.build.toplevel;
 
     # Ensures failures pass through using pipefail, otherwise failing to
     # switch-to-configuration is hidden by the success of `tee`.
@@ -237,8 +145,12 @@ import ./make-test-python.nix ({ pkgs, ...} : {
       exec env -i "$@" | tee /dev/stderr
     '';
   in /* python */ ''
-    def switch_to_specialisation(name, action="test"):
-        out = machine.succeed(f"${originalSystem}/specialisation/{name}/bin/switch-to-configuration {action} 2>&1")
+    def switch_to_specialisation(system, name, action="test"):
+        if name == "":
+            stc = f"{system}/bin/switch-to-configuration"
+        else:
+            stc = f"{system}/specialisation/{name}/bin/switch-to-configuration"
+        out = machine.succeed(f"{stc} {action} 2>&1")
         assert_lacks(out, "switch-to-configuration line")  # Perl warnings
         return out
 
@@ -266,101 +178,98 @@ import ./make-test-python.nix ({ pkgs, ...} : {
         "${stderrRunner} ${otherSystem}/bin/switch-to-configuration test"
     )
 
-    with subtest("systemd sockets"):
-        machine.succeed("${originalSystem}/bin/switch-to-configuration test")
+    with subtest("services"):
+        switch_to_specialisation("${machine}", "")
+        # Nothing happens when nothing is changed
+        out = switch_to_specialisation("${machine}", "")
+        assert_lacks(out, "stopping the following units:")
+        assert_lacks(out, "NOT restarting the following changed units:")
+        assert_lacks(out, "reloading the following units:")
+        assert_lacks(out, "\nrestarting the following units:")
+        assert_lacks(out, "\nstarting the following units:")
+        assert_lacks(out, "the following new units were started:")
+        assert_lacks(out, "as well:")
 
-        # Simple socket is created
-        out = switch_to_specialisation("simple-socket")
+        # Start a simple service
+        out = switch_to_specialisation("${machine}", "simpleService")
         assert_lacks(out, "stopping the following units:")
-        # not checking for reload because dbus gets reloaded
-        assert_lacks(out, "restarting the following units:")
+        assert_lacks(out, "NOT restarting the following changed units:")
+        assert_contains(out, "reloading the following units: dbus.service\n")  # huh
+        assert_lacks(out, "\nrestarting the following units:")
         assert_lacks(out, "\nstarting the following units:")
-        assert_contains(out, "the following new units were started: socket-activated.socket\n")
+        assert_contains(out, "the following new units were started: test.service\n")
         assert_lacks(out, "as well:")
-        machine.succeed("[ $(stat -c%a /run/test.sock) = 777 ]")
 
-        # Changing the socket restarts it
-        out = switch_to_specialisation("modified-socket")
+        # Not changing anything doesn't do anything
+        out = switch_to_specialisation("${machine}", "simpleService")
         assert_lacks(out, "stopping the following units:")
-        #assert_lacks(out, "reloading the following units:")
-        assert_contains(out, "restarting the following units: socket-activated.socket\n")
+        assert_lacks(out, "NOT restarting the following changed units:")
+        assert_lacks(out, "reloading the following units:")
+        assert_lacks(out, "\nrestarting the following units:")
         assert_lacks(out, "\nstarting the following units:")
         assert_lacks(out, "the following new units were started:")
         assert_lacks(out, "as well:")
-        machine.succeed("[ $(stat -c%a /run/test.sock) = 666 ]")  # change was applied
-
-        # The unit is properly activated when the socket is accessed
-        if machine.succeed("socat - UNIX-CONNECT:/run/test.sock") != "hello":
-            raise Exception("Socket was not properly activated")
 
-        # Changing the socket restarts it and ignores the active service
-        out = switch_to_specialisation("simple-socket")
-        assert_contains(out, "stopping the following units: socket-activated.service\n")
+        # Restart the simple service
+        out = switch_to_specialisation("${machine}", "simpleServiceModified")
+        assert_contains(out, "stopping the following units: test.service\n")
+        assert_lacks(out, "NOT restarting the following changed units:")
         assert_lacks(out, "reloading the following units:")
-        assert_contains(out, "restarting the following units: socket-activated.socket\n")
-        assert_lacks(out, "\nstarting the following units:")
+        assert_lacks(out, "\nrestarting the following units:")
+        assert_contains(out, "\nstarting the following units: test.service\n")
         assert_lacks(out, "the following new units were started:")
         assert_lacks(out, "as well:")
-        machine.succeed("[ $(stat -c%a /run/test.sock) = 777 ]")  # change was applied
 
-        # Changing the service does nothing when the service is not active
-        out = switch_to_specialisation("modified-service")
+        # Restart the service with stopIfChanged=false
+        out = switch_to_specialisation("${machine}", "simpleServiceNostop")
         assert_lacks(out, "stopping the following units:")
+        assert_lacks(out, "NOT restarting the following changed units:")
         assert_lacks(out, "reloading the following units:")
-        assert_lacks(out, "restarting the following units:")
+        assert_contains(out, "\nrestarting the following units: test.service\n")
         assert_lacks(out, "\nstarting the following units:")
         assert_lacks(out, "the following new units were started:")
         assert_lacks(out, "as well:")
 
-        # Activating the service and modifying it stops it but leaves the socket untouched
-        machine.succeed("socat - UNIX-CONNECT:/run/test.sock")
-        out = switch_to_specialisation("simple-socket")
-        assert_contains(out, "stopping the following units: socket-activated.service\n")
-        assert_lacks(out, "reloading the following units:")
-        assert_lacks(out, "restarting the following units:")
+        # Reload the service with reloadIfChanged=true
+        out = switch_to_specialisation("${machine}", "simpleServiceReload")
+        assert_lacks(out, "stopping the following units:")
+        assert_lacks(out, "NOT restarting the following changed units:")
+        assert_contains(out, "reloading the following units: test.service\n")
+        assert_lacks(out, "\nrestarting the following units:")
         assert_lacks(out, "\nstarting the following units:")
         assert_lacks(out, "the following new units were started:")
         assert_lacks(out, "as well:")
 
-        # Activating the service and both the service and the socket stops the service and restarts the socket
-        machine.succeed("socat - UNIX-CONNECT:/run/test.sock")
-        out = switch_to_specialisation("modified-service-and-socket")
-        assert_contains(out, "stopping the following units: socket-activated.service\n")
+        # Nothing happens when restartIfChanged=false
+        out = switch_to_specialisation("${machine}", "simpleServiceNorestart")
+        assert_lacks(out, "stopping the following units:")
+        assert_contains(out, "NOT restarting the following changed units: test.service\n")
         assert_lacks(out, "reloading the following units:")
-        assert_contains(out, "restarting the following units: socket-activated.socket\n")
+        assert_lacks(out, "\nrestarting the following units:")
         assert_lacks(out, "\nstarting the following units:")
         assert_lacks(out, "the following new units were started:")
         assert_lacks(out, "as well:")
 
-    with subtest("restart and reload by activation file"):
-        out = switch_to_specialisation("service-and-socket")
-        # Switch to a system where the example services get restarted
-        # by the activation script
-        out = switch_to_specialisation("restart-and-reload-by-activation-script")
+        # Dry mode shows different messages
+        out = switch_to_specialisation("${machine}", "simpleService", action="dry-activate")
         assert_lacks(out, "stopping the following units:")
-        assert_contains(out, "stopping the following units as well: simple-service.service, socket-activated.service\n")
-        assert_contains(out, "reloading the following units: simple-reload-service.service\n")
-        assert_contains(out, "restarting the following units: simple-restart-service.service\n")
-        assert_contains(out, "\nstarting the following units: simple-service.service")
-
-        # The same, but in dry mode
-        switch_to_specialisation("service-and-socket")
-        out = switch_to_specialisation("restart-and-reload-by-activation-script", action="dry-activate")
-        assert_lacks(out, "would stop the following units:")
-        assert_contains(out, "would stop the following units as well: simple-service.service, socket-activated.service\n")
-        assert_contains(out, "would reload the following units: simple-reload-service.service\n")
-        assert_contains(out, "would restart the following units: simple-restart-service.service\n")
-        assert_contains(out, "\nwould start the following units: simple-service.service")
+        assert_lacks(out, "NOT restarting the following changed units:")
+        assert_lacks(out, "reloading the following units:")
+        assert_lacks(out, "\nrestarting the following units:")
+        assert_lacks(out, "\nstarting the following units:")
+        assert_lacks(out, "the following new units were started:")
+        assert_lacks(out, "as well:")
+        assert_contains(out, "would start the following units: test.service\n")
 
     with subtest("mounts"):
-        switch_to_specialisation("with-mount")
+        switch_to_specialisation("${machine}", "mount")
         out = machine.succeed("mount | grep 'on /testmount'")
         assert_contains(out, "size=1024k")
-
-        out = switch_to_specialisation("with-mount-modified")
+        out = switch_to_specialisation("${machine}", "mountModified")
         assert_lacks(out, "stopping the following units:")
+        assert_lacks(out, "NOT restarting the following changed units:")
         assert_contains(out, "reloading the following units: testmount.mount\n")
-        assert_lacks(out, "restarting the following units:")
+        assert_lacks(out, "\nrestarting the following units:")
         assert_lacks(out, "\nstarting the following units:")
         assert_lacks(out, "the following new units were started:")
         assert_lacks(out, "as well:")
@@ -369,11 +278,10 @@ import ./make-test-python.nix ({ pkgs, ...} : {
         assert_contains(out, "size=10240k")
 
     with subtest("timers"):
-        switch_to_specialisation("with-timer")
+        switch_to_specialisation("${machine}", "timer")
         out = machine.succeed("systemctl show test-timer.timer")
         assert_contains(out, "OnCalendar=2014-03-25 02:59:56 UTC")
-
-        out = switch_to_specialisation("with-timer-modified")
+        out = switch_to_specialisation("${machine}", "timerModified")
         assert_lacks(out, "stopping the following units:")
         assert_lacks(out, "reloading the following units:")
         assert_contains(out, "restarting the following units: test-timer.timer\n")
@@ -385,17 +293,21 @@ import ./make-test-python.nix ({ pkgs, ...} : {
         assert_contains(out, "OnCalendar=Fri 2012-11-23 16:00:00")
 
     with subtest("paths"):
-        switch_to_specialisation("with-path")
+        out = switch_to_specialisation("${machine}", "path")
+        assert_contains(out, "stopping the following units: test-timer.timer\n")
+        assert_lacks(out, "NOT restarting the following changed units:")
+        assert_lacks(out, "reloading the following units:")
+        assert_lacks(out, "\nrestarting the following units:")
+        assert_lacks(out, "\nstarting the following units:")
+        assert_contains(out, "the following new units were started: test-watch.path")
+        assert_lacks(out, "as well:")
         machine.fail("test -f /testpath-modified")
 
         # touch the file, unit should be triggered
         machine.succeed("touch /testpath")
         machine.wait_until_succeeds("test -f /testpath-modified")
-
-        machine.succeed("rm /testpath")
-        machine.succeed("rm /testpath-modified")
-        switch_to_specialisation("with-path-modified")
-
+        machine.succeed("rm /testpath /testpath-modified")
+        switch_to_specialisation("${machine}", "pathModified")
         machine.succeed("touch /testpath")
         machine.fail("test -f /testpath-modified")
         machine.succeed("touch /testpath2")
@@ -408,11 +320,10 @@ import ./make-test-python.nix ({ pkgs, ...} : {
     # service should successfully start.
     with subtest("slices"):
         machine.succeed("echo 0 > /proc/sys/vm/panic_on_oom")  # allow OOMing
-        out = switch_to_specialisation("with-slice")
+        out = switch_to_specialisation("${machine}", "slice")
         machine.fail("systemctl start testservice.service")
-        out = switch_to_specialisation("with-slice-non-crashing")
+        out = switch_to_specialisation("${machine}", "sliceModified")
         machine.succeed("systemctl start testservice.service")
         machine.succeed("echo 1 > /proc/sys/vm/panic_on_oom")  # disallow OOMing
-
   '';
 })
diff --git a/nixos/tests/systemd-boot.nix b/nixos/tests/systemd-boot.nix
index a6742606dbefc..c3899b58d6b33 100644
--- a/nixos/tests/systemd-boot.nix
+++ b/nixos/tests/systemd-boot.nix
@@ -102,12 +102,12 @@ in
       machine.succeed(
           """
         find /boot -iname '*.efi' -print0 | \
-        xargs -0 -I '{}' sed -i 's/#### LoaderInfo: systemd-boot .* ####/#### LoaderInfo: systemd-boot 001 ####/' '{}'
+        xargs -0 -I '{}' sed -i 's/#### LoaderInfo: systemd-boot .* ####/#### LoaderInfo: systemd-boot 000.0-1-notnixos ####/' '{}'
       """
       )
 
       output = machine.succeed("/run/current-system/bin/switch-to-configuration boot")
-      assert "updating systemd-boot from 001 to " in output
+      assert "updating systemd-boot from (000.0-1-notnixos) to " in output
     '';
   };
 }
diff --git a/nixos/tests/systemd-networkd-dhcpserver-static-leases.nix b/nixos/tests/systemd-networkd-dhcpserver-static-leases.nix
new file mode 100644
index 0000000000000..a8254a158016b
--- /dev/null
+++ b/nixos/tests/systemd-networkd-dhcpserver-static-leases.nix
@@ -0,0 +1,81 @@
+# In contrast to systemd-networkd-dhcpserver, this test configures
+# the router with a static DHCP lease for the client's MAC address.
+import ./make-test-python.nix ({ lib, ... }: {
+  name = "systemd-networkd-dhcpserver-static-leases";
+  meta = with lib.maintainers; {
+    maintainers = [ veehaitch tomfitzhenry ];
+  };
+  nodes = {
+    router = {
+      virtualisation.vlans = [ 1 ];
+      systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug";
+      networking = {
+        useNetworkd = true;
+        useDHCP = false;
+        firewall.enable = false;
+      };
+      systemd.network = {
+        networks = {
+          # systemd-networkd will load the first network unit file
+          # that matches, ordered lexiographically by filename.
+          # /etc/systemd/network/{40-eth1,99-main}.network already
+          # exists. This network unit must be loaded for the test,
+          # however, hence why this network is named such.
+          "01-eth1" = {
+            name = "eth1";
+            networkConfig = {
+              DHCPServer = true;
+              Address = "10.0.0.1/24";
+            };
+            dhcpServerStaticLeases = [{
+              dhcpServerStaticLeaseConfig = {
+                MACAddress = "02:de:ad:be:ef:01";
+                Address = "10.0.0.10";
+              };
+            }];
+          };
+        };
+      };
+    };
+
+    client = {
+      virtualisation.vlans = [ 1 ];
+      systemd.services.systemd-networkd.environment.SYSTEMD_LOG_LEVEL = "debug";
+      networking = {
+        useNetworkd = true;
+        useDHCP = false;
+        firewall.enable = false;
+        interfaces.eth1 = {
+          useDHCP = true;
+          macAddress = "02:de:ad:be:ef:01";
+        };
+      };
+
+      # This setting is important to have the router assign the
+      # configured lease based on the client's MAC address. Also see:
+      # https://github.com/systemd/systemd/issues/21368#issuecomment-982193546
+      systemd.network.networks."40-eth1".dhcpV4Config.ClientIdentifier = "mac";
+    };
+  };
+  testScript = ''
+    start_all()
+
+    with subtest("check router network configuration"):
+      router.wait_for_unit("systemd-networkd-wait-online.service")
+      eth1_status = router.succeed("networkctl status eth1")
+      assert "Network File: /etc/systemd/network/01-eth1.network" in eth1_status, \
+        "The router interface eth1 is not using the expected network file"
+      assert "10.0.0.1" in eth1_status, "Did not find expected router IPv4"
+
+    with subtest("check client network configuration"):
+      client.wait_for_unit("systemd-networkd-wait-online.service")
+      eth1_status = client.succeed("networkctl status eth1")
+      assert "Network File: /etc/systemd/network/40-eth1.network" in eth1_status, \
+        "The client interface eth1 is not using the expected network file"
+      assert "10.0.0.10" in eth1_status, "Did not find expected client IPv4"
+
+    with subtest("router and client can reach each other"):
+      client.wait_until_succeeds("ping -c 5 10.0.0.1")
+      router.wait_until_succeeds("ping -c 5 10.0.0.10")
+  '';
+})
diff --git a/nixos/tests/systemd.nix b/nixos/tests/systemd.nix
index 6561f7efe1a5f..f86daa5eea974 100644
--- a/nixos/tests/systemd.nix
+++ b/nixos/tests/systemd.nix
@@ -31,6 +31,13 @@ import ./make-test-python.nix ({ pkgs, ... }: {
       umount /tmp/shared
     '';
 
+    systemd.services.oncalendar-test = {
+      description = "calendar test";
+      # Japan does not have DST which makes the test a little bit simpler
+      startAt = "Wed 10:00 Asia/Tokyo";
+      script = "true";
+    };
+
     systemd.services.testservice1 = {
       description = "Test Service 1";
       wantedBy = [ "multi-user.target" ];
@@ -69,6 +76,11 @@ import ./make-test-python.nix ({ pkgs, ... }: {
     # wait for user services
     machine.wait_for_unit("default.target", "alice")
 
+    # Regression test for https://github.com/NixOS/nixpkgs/issues/105049
+    with subtest("systemd reads timezone database in /etc/zoneinfo"):
+        timer = machine.succeed("TZ=UTC systemctl show --property=TimersCalendar oncalendar-test.timer")
+        assert re.search("next_elapse=Wed ....-..-.. 01:00:00 UTC", timer), f"got {timer.strip()}"
+
     # Regression test for https://github.com/NixOS/nixpkgs/issues/35415
     with subtest("configuration files are recognized by systemd"):
         machine.succeed("test -e /system_conf_read")
diff --git a/nixos/tests/txredisapi.nix b/nixos/tests/txredisapi.nix
index bc3814a713750..7c6b36a5c47d5 100644
--- a/nixos/tests/txredisapi.nix
+++ b/nixos/tests/txredisapi.nix
@@ -10,17 +10,19 @@ import ./make-test-python.nix ({ pkgs, ... }:
       { pkgs, ... }:
 
       {
-        services.redis.enable = true;
-        services.redis.unixSocket = "/run/redis/redis.sock";
+        services.redis.servers."".enable = true;
 
         environment.systemPackages = with pkgs; [ (python38.withPackages (ps: [ ps.twisted ps.txredisapi ps.mock ]))];
       };
   };
 
-  testScript = ''
+  testScript = { nodes, ... }: let
+    inherit (nodes.machine.config.services) redis;
+    in ''
     start_all()
     machine.wait_for_unit("redis")
-    machine.wait_for_open_port("6379")
+    machine.wait_for_file("${redis.servers."".unixSocket}")
+    machine.succeed("ln -s ${redis.servers."".unixSocket} /tmp/redis.sock")
 
     tests = machine.succeed("PYTHONPATH=\"${pkgs.python3Packages.txredisapi.src}\" python -m twisted.trial ${pkgs.python3Packages.txredisapi.src}/tests")
   '';
diff --git a/nixos/tests/unifi.nix b/nixos/tests/unifi.nix
new file mode 100644
index 0000000000000..34284811abfb0
--- /dev/null
+++ b/nixos/tests/unifi.nix
@@ -0,0 +1,35 @@
+# Test UniFi controller
+
+{ system ? builtins.currentSystem
+, config ? { allowUnfree = true; }
+, pkgs ? import ../.. { inherit system config; }
+}:
+
+with import ../lib/testing-python.nix { inherit system pkgs; };
+with pkgs.lib;
+
+let
+  makeAppTest = unifi: makeTest {
+    name = "unifi-controller-${unifi.version}";
+    meta = with pkgs.lib.maintainers; {
+      maintainers = [ zhaofengli ];
+    };
+
+    nodes.server = {
+      services.unifi = {
+        enable = true;
+        unifiPackage = unifi;
+        openFirewall = false;
+      };
+    };
+
+    testScript = ''
+      server.wait_for_unit("unifi.service")
+      server.wait_until_succeeds("curl -Lk https://localhost:8443 >&2", timeout=300)
+    '';
+  };
+in with pkgs; {
+  unifiLTS = makeAppTest unifiLTS;
+  unifi5 = makeAppTest unifi5;
+  unifi6 = makeAppTest unifi6;
+}
diff --git a/nixos/tests/vault-postgresql.nix b/nixos/tests/vault-postgresql.nix
index 071cfd106ffbc..2847af13cbf05 100644
--- a/nixos/tests/vault-postgresql.nix
+++ b/nixos/tests/vault-postgresql.nix
@@ -64,6 +64,6 @@ import ./make-test-python.nix ({ pkgs, ... }:
       machine.wait_for_unit("vault.service")
       machine.wait_for_open_port(8200)
       machine.succeed("vault operator init")
-      machine.succeed("vault status | grep Sealed | grep true")
+      machine.succeed("vault status || test $? -eq 2")
     '';
 })
diff --git a/nixos/tests/vengi-tools.nix b/nixos/tests/vengi-tools.nix
new file mode 100644
index 0000000000000..6b90542887d51
--- /dev/null
+++ b/nixos/tests/vengi-tools.nix
@@ -0,0 +1,29 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "vengi-tools";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ fgaz ];
+  };
+
+  machine = { config, pkgs, ... }: {
+    imports = [
+      ./common/x11.nix
+    ];
+
+    services.xserver.enable = true;
+    environment.systemPackages = [ pkgs.vengi-tools ];
+  };
+
+  enableOCR = true;
+
+  testScript =
+    ''
+      machine.wait_for_x()
+      machine.execute("vengi-voxedit >&2 &")
+      machine.wait_for_window("voxedit")
+      # OCR on voxedit's window is very expensive, so we avoid wasting a try
+      # by letting the window load fully first
+      machine.sleep(15)
+      machine.wait_for_text("Palette")
+      machine.screenshot("screen")
+    '';
+})
diff --git a/pkgs/applications/audio/CHOWTapeModel/default.nix b/pkgs/applications/audio/CHOWTapeModel/default.nix
index 9b9649cf9f8a8..3eff818cca903 100644
--- a/pkgs/applications/audio/CHOWTapeModel/default.nix
+++ b/pkgs/applications/audio/CHOWTapeModel/default.nix
@@ -1,68 +1,76 @@
-{ alsa-lib
-, curl
-, fetchFromGitHub
-, freeglut
-, freetype
-, libGL
-, libXcursor
-, libXext
-, libXinerama
-, libXrandr
-, libjack2
-, pkg-config
-, python3
-, stdenv
-, lib
-}:
+{ alsa-lib, at-spi2-core, cmake, curl, dbus, libepoxy, fetchFromGitHub, freeglut
+, freetype, gcc-unwrapped, gtk3, lib, libGL, libXcursor, libXdmcp, libXext
+, libXinerama, libXrandr, libXtst, libdatrie, libjack2, libpsl, libselinux
+, libsepol, libsysprof-capture, libthai, libxkbcommon, lv2, pcre, pkg-config
+, python3, sqlite, stdenv }:
 
 stdenv.mkDerivation rec {
   pname = "CHOWTapeModel";
-  version = "unstable-2020-12-12";
+  version = "2.10.0";
 
   src = fetchFromGitHub {
     owner = "jatinchowdhury18";
     repo = "AnalogTapeModel";
-    rev = "a7cf10c3f790d306ce5743bb731e4bc2c1230d70";
-    sha256 = "09nq8x2dwabncbp039dqm1brzcz55zg9kpxd4p5348xlaz5m4661";
+    rev = "v${version}";
+    sha256 = "sha256-iuT7OBRBtMkjcTHayCcne1mNqkcxzKnEYl62n65V7Z4=";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [
-    pkg-config
-  ];
+  nativeBuildInputs = [ pkg-config cmake ];
 
   buildInputs = [
     alsa-lib
+    at-spi2-core
     curl
+    dbus
+    libepoxy
     freeglut
     freetype
+    gtk3
     libGL
     libXcursor
+    libXdmcp
     libXext
     libXinerama
     libXrandr
+    libXtst
+    libdatrie
     libjack2
+    libpsl
+    libselinux
+    libsepol
+    libsysprof-capture
+    libthai
+    libxkbcommon
+    lv2
+    pcre
     python3
+    sqlite
+    gcc-unwrapped
   ];
 
-  buildPhase = ''
-    cd Plugin/
-    ./build_linux.sh
-  '';
+  cmakeFlags = [
+    "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
+    "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
+    "-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
+  ];
+
+  postPatch = "cd Plugin";
 
   installPhase = ''
     mkdir -p $out/lib/lv2 $out/lib/vst3 $out/bin $out/share/doc/CHOWTapeModel/
-    cd Builds/LinuxMakefile/build/
-    cp CHOWTapeModel.a  $out/lib
-    cp -r CHOWTapeModel.lv2 $out/lib/lv2
-    cp -r CHOWTapeModel.vst3 $out/lib/vst3
-    cp CHOWTapeModel  $out/bin
+    cd CHOWTapeModel_artefacts/Release
+    cp libCHOWTapeModel_SharedCode.a  $out/lib
+    cp -r LV2/CHOWTapeModel.lv2 $out/lib/lv2
+    cp -r VST3/CHOWTapeModel.vst3 $out/lib/vst3
+    cp Standalone/CHOWTapeModel  $out/bin
     cp ../../../../Manual/ChowTapeManual.pdf $out/share/doc/CHOWTapeModel/
   '';
 
   meta = with lib; {
     homepage = "https://github.com/jatinchowdhury18/AnalogTapeModel";
-    description = "Physical modelling signal processing for analog tape recording. LV2, VST3 and standalone";
+    description =
+      "Physical modelling signal processing for analog tape recording. LV2, VST3 and standalone";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ magnetophon ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/ChowKick/default.nix b/pkgs/applications/audio/ChowKick/default.nix
index 135ed3a11a1c9..b3ad00bf63a8a 100644
--- a/pkgs/applications/audio/ChowKick/default.nix
+++ b/pkgs/applications/audio/ChowKick/default.nix
@@ -4,7 +4,7 @@
 , cmake
 , curl
 , dbus
-, epoxy
+, libepoxy
 , fetchFromGitHub
 , freeglut
 , freetype
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
     brotli
     curl
     dbus
-    epoxy
+    libepoxy
     freeglut
     freetype
     gtk2-x11
diff --git a/pkgs/applications/audio/ardour/default.nix b/pkgs/applications/audio/ardour/default.nix
index 2bd6cf03cc085..d5afcac86cd48 100644
--- a/pkgs/applications/audio/ardour/default.nix
+++ b/pkgs/applications/audio/ardour/default.nix
@@ -52,7 +52,7 @@
 , vamp-plugin-sdk
 , wafHook
 , xjadeo
-, videoSupport ? false
+, videoSupport ? true
 }:
 stdenv.mkDerivation rec {
   pname = "ardour";
diff --git a/pkgs/applications/audio/ashuffle/default.nix b/pkgs/applications/audio/ashuffle/default.nix
index 5a1be2eaf0c3c..90a2abe8adfb4 100644
--- a/pkgs/applications/audio/ashuffle/default.nix
+++ b/pkgs/applications/audio/ashuffle/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ashuffle";
-  version = "3.12.3";
+  version = "3.12.5";
 
   src = fetchFromGitHub {
     owner = "joshkunz";
     repo = "ashuffle";
     rev = "v${version}";
-    sha256 = "sha256-y2DH8SjSZ8hV6DAC4uDw5Wn7O0oj/WIhIr4BE/+jUxM=";
+    sha256 = "sha256-dPgv6EzRxRdHkGvys601Bkg9Srd8oEjoE9jbAin74Vk=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/audio/audacious/default.nix b/pkgs/applications/audio/audacious/default.nix
index a6c8221c9f722..7cd22d2583157 100644
--- a/pkgs/applications/audio/audacious/default.nix
+++ b/pkgs/applications/audio/audacious/default.nix
@@ -11,15 +11,15 @@
 
 mkDerivation rec {
   pname = "audacious";
-  version = "4.0.5";
+  version = "4.1";
 
   src = fetchurl {
     url = "http://distfiles.audacious-media-player.org/audacious-${version}.tar.bz2";
-    sha256 = "028zjgz0p7ys15lk2a30m5zcv9xrx3ga50wjsh4m4zxilgkakbji";
+    sha256 = "0p734psjjvjcmla2hg5h6a9v1prvy63jj9xm2g2ngs49jy7qan0z";
   };
   pluginsSrc = fetchurl {
     url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}.tar.bz2";
-    sha256 = "0ny5w1agr9jaz5w3wyyxf1ygmzmd1sivaf97lcm4z4w6529520lz";
+    sha256 = "0k0xnqmxi5lna034i2cnzvfzrykxmv4fbs1nkrc9sd2ma1igrmns";
   };
 
   nativeBuildInputs = [ gettext pkg-config ];
@@ -36,8 +36,10 @@ mkDerivation rec {
     libopenmpt
   ];
 
+  configureFlags = [ "--disable-gtk" ];
+
   # Here we build both audacious and audacious-plugins in one
-  # derivations, since they really expect to be in the same prefix.
+  # derivation, since they really expect to be in the same prefix.
   # This is slighly tricky.
   builder = builtins.toFile "builder.sh" ''
     # First build audacious.
diff --git a/pkgs/applications/audio/audacity/0001-Use-a-different-approach-to-estimate-the-disk-space-.patch b/pkgs/applications/audio/audacity/0001-Use-a-different-approach-to-estimate-the-disk-space-.patch
new file mode 100644
index 0000000000000..33b7554db4483
--- /dev/null
+++ b/pkgs/applications/audio/audacity/0001-Use-a-different-approach-to-estimate-the-disk-space-.patch
@@ -0,0 +1,355 @@
+From deeb435829d73524df851f6f4c2d4be552c99230 Mon Sep 17 00:00:00 2001
+From: Dmitry Vedenko <dmitry@crsib.me>
+Date: Fri, 1 Oct 2021 16:21:22 +0300
+Subject: [PATCH] Use a different approach to estimate the disk space usage
+
+New a approach is a bit less precise, but removes the requirement for the "private" SQLite3 table and allows Audacity to be built against system SQLite3.
+---
+ cmake-proxies/sqlite/CMakeLists.txt |   5 -
+ src/DBConnection.h                  |   4 +-
+ src/ProjectFileIO.cpp               | 269 +++++-----------------------
+ 3 files changed, 44 insertions(+), 234 deletions(-)
+
+diff --git a/cmake-proxies/sqlite/CMakeLists.txt b/cmake-proxies/sqlite/CMakeLists.txt
+index 63d70637c..d7b9b95ef 100644
+--- a/cmake-proxies/sqlite/CMakeLists.txt
++++ b/cmake-proxies/sqlite/CMakeLists.txt
+@@ -19,11 +19,6 @@ list( APPEND INCLUDES
+ 
+ list( APPEND DEFINES
+    PRIVATE
+-      #
+-      # We need the dbpage table for space calculations.
+-      #
+-      SQLITE_ENABLE_DBPAGE_VTAB=1
+-
+       # Can't be set after a WAL mode database is initialized, so change
+       # the default here to ensure all project files get the same page 
+       # size.
+diff --git a/src/DBConnection.h b/src/DBConnection.h
+index 16a7fc9d4..07d3af95e 100644
+--- a/src/DBConnection.h
++++ b/src/DBConnection.h
+@@ -75,8 +75,8 @@ public:
+       LoadSampleBlock,
+       InsertSampleBlock,
+       DeleteSampleBlock,
+-      GetRootPage,
+-      GetDBPage
++      GetSampleBlockSize,
++      GetAllSampleBlocksSize
+    };
+    sqlite3_stmt *Prepare(enum StatementID id, const char *sql);
+ 
+diff --git a/src/ProjectFileIO.cpp b/src/ProjectFileIO.cpp
+index 3b3e2e1fd..c9bc45af4 100644
+--- a/src/ProjectFileIO.cpp
++++ b/src/ProjectFileIO.cpp
+@@ -35,6 +35,7 @@ Paul Licameli split from AudacityProject.cpp
+ #include "widgets/ProgressDialog.h"
+ #include "wxFileNameWrapper.h"
+ #include "xml/XMLFileReader.h"
++#include "MemoryX.h"`
+ 
+ #undef NO_SHM
+ #if !defined(__WXMSW__)
+@@ -2357,255 +2358,69 @@ int64_t ProjectFileIO::GetTotalUsage()
+ }
+ 
+ //
+-// Returns the amount of disk space used by the specified sample blockid or all
+-// of the sample blocks if the blockid is 0.  It does this by using the raw SQLite
+-// pages available from the "sqlite_dbpage" virtual table to traverse the SQLite
+-// table b-tree described here:  https://www.sqlite.org/fileformat.html
++// Returns the estimation of disk space used by the specified sample blockid or all
++// of the sample blocks if the blockid is 0. This does not include small overhead
++// of the internal SQLite structures, only the size used by the data
+ //
+ int64_t ProjectFileIO::GetDiskUsage(DBConnection &conn, SampleBlockID blockid /* = 0 */)
+ {
+-   // Information we need to track our travels through the b-tree
+-   typedef struct
+-   {
+-      int64_t pgno;
+-      int currentCell;
+-      int numCells;
+-      unsigned char data[65536];
+-   } page;
+-   std::vector<page> stack;
+-
+-   int64_t total = 0;
+-   int64_t found = 0;
+-   int64_t right = 0;
+-   int rc;
++   sqlite3_stmt* stmt = nullptr;
+ 
+-   // Get the rootpage for the sampleblocks table.
+-   sqlite3_stmt *stmt =
+-      conn.Prepare(DBConnection::GetRootPage,
+-                    "SELECT rootpage FROM sqlite_master WHERE tbl_name = 'sampleblocks';");
+-   if (stmt == nullptr || sqlite3_step(stmt) != SQLITE_ROW)
++   if (blockid == 0)
+    {
+-      return 0;
+-   }
+-
+-   // And store it in our first stack frame
+-   stack.push_back({sqlite3_column_int64(stmt, 0)});
++      static const char* statement =
++R"(SELECT 
++	sum(length(blockid) + length(sampleformat) + 
++	length(summin) + length(summax) + length(sumrms) + 
++	length(summary256) + length(summary64k) +
++	length(samples))
++FROM sampleblocks;)";
+ 
+-   // All done with the statement
+-   sqlite3_clear_bindings(stmt);
+-   sqlite3_reset(stmt);
+-
+-   // Prepare/retrieve statement to read raw database page
+-   stmt = conn.Prepare(DBConnection::GetDBPage,
+-      "SELECT data FROM sqlite_dbpage WHERE pgno = ?1;");
+-   if (stmt == nullptr)
+-   {
+-      return 0;
++      stmt = conn.Prepare(DBConnection::GetAllSampleBlocksSize, statement);
+    }
+-
+-   // Traverse the b-tree until we've visited all of the leaf pages or until
+-   // we find the one corresponding to the passed in sample blockid. Because we
+-   // use an integer primary key for the sampleblocks table, the traversal will
+-   // be in ascending blockid sequence.
+-   do
++   else
+    {
+-      // Acces the top stack frame
+-      page &pg = stack.back();
++      static const char* statement =
++R"(SELECT 
++	length(blockid) + length(sampleformat) + 
++	length(summin) + length(summax) + length(sumrms) + 
++	length(summary256) + length(summary64k) +
++	length(samples)
++FROM sampleblocks WHERE blockid = ?1;)";
+ 
+-      // Read the page from the sqlite_dbpage table if it hasn't yet been loaded
+-      if (pg.numCells == 0)
+-      {
+-         // Bind the page number
+-         sqlite3_bind_int64(stmt, 1, pg.pgno);
++      stmt = conn.Prepare(DBConnection::GetSampleBlockSize, statement);
++   }
+ 
+-         // And retrieve the page
+-         if (sqlite3_step(stmt) != SQLITE_ROW)
++   auto cleanup = finally(
++      [stmt]() {
++         // Clear statement bindings and rewind statement
++         if (stmt != nullptr)
+          {
+-            // REVIEW: Likely harmless failure - says size is zero on
+-            // this error.
+-            // LLL: Yea, but not much else we can do.
+-            return 0;
++            sqlite3_clear_bindings(stmt);
++            sqlite3_reset(stmt);
+          }
++      });
+ 
+-         // Copy the page content to the stack frame
+-         memcpy(&pg.data,
+-                sqlite3_column_blob(stmt, 0),
+-                sqlite3_column_bytes(stmt, 0));
+-
+-         // And retrieve the total number of cells within it
+-         pg.numCells = get2(&pg.data[3]);
+-
+-         // Reset statement for next usage
+-         sqlite3_clear_bindings(stmt);
+-         sqlite3_reset(stmt);
+-      }
+-
+-      //wxLogDebug("%*.*spgno %lld currentCell %d numCells %d", (stack.size() - 1) * 2, (stack.size() - 1) * 2, "", pg.pgno, pg.currentCell, pg.numCells);
+-
+-      // Process an interior table b-tree page
+-      if (pg.data[0] == 0x05)
+-      {
+-         // Process the next cell if we haven't examined all of them yet
+-         if (pg.currentCell < pg.numCells)
+-         {
+-            // Remember the right-most leaf page number.
+-            right = get4(&pg.data[8]);
+-
+-            // Iterate over the cells.
+-            //
+-            // If we're not looking for a specific blockid, then we always push the
+-            // target page onto the stack and leave the loop after a single iteration.
+-            //
+-            // Otherwise, we match the blockid against the highest integer key contained
+-            // within the cell and if the blockid falls within the cell, we stack the
+-            // page and stop the iteration.
+-            //
+-            // In theory, we could do a binary search for a specific blockid here, but
+-            // because our sample blocks are always large, we will get very few cells
+-            // per page...usually 6 or less.
+-            //
+-            // In both cases, the stacked page can be either an internal or leaf page.
+-            bool stacked = false;
+-            while (pg.currentCell < pg.numCells)
+-            {
+-               // Get the offset to this cell using the offset in the cell pointer
+-               // array.
+-               //
+-               // The cell pointer array starts immediately after the page header
+-               // at offset 12 and the retrieved offset is from the beginning of
+-               // the page.
+-               int celloff = get2(&pg.data[12 + (pg.currentCell * 2)]);
+-
+-               // Bump to the next cell for the next iteration.
+-               pg.currentCell++;
+-
+-               // Get the page number this cell describes
+-               int pagenum = get4(&pg.data[celloff]);
+-
+-               // And the highest integer key, which starts at offset 4 within the cell.
+-               int64_t intkey = 0;
+-               get_varint(&pg.data[celloff + 4], &intkey);
+-
+-               //wxLogDebug("%*.*sinternal - right %lld celloff %d pagenum %d intkey %lld", (stack.size() - 1) * 2, (stack.size() - 1) * 2, " ", right, celloff, pagenum, intkey);
+-
+-               // Stack the described page if we're not looking for a specific blockid
+-               // or if this page contains the given blockid.
+-               if (!blockid || blockid <= intkey)
+-               {
+-                  stack.push_back({pagenum, 0, 0});
+-                  stacked = true;
+-                  break;
+-               }
+-            }
+-
+-            // If we pushed a new page onto the stack, we need to jump back up
+-            // to read the page
+-            if (stacked)
+-            {
+-               continue;
+-            }
+-         }
++   if (blockid != 0)
++   {
++      int rc = sqlite3_bind_int64(stmt, 1, blockid);
+ 
+-         // We've exhausted all the cells with this page, so we stack the right-most
+-         // leaf page.  Ensure we only process it once.
+-         if (right)
+-         {
+-            stack.push_back({right, 0, 0});
+-            right = 0;
+-            continue;
+-         }
+-      }
+-      // Process a leaf table b-tree page
+-      else if (pg.data[0] == 0x0d)
++      if (rc != SQLITE_OK)
+       {
+-         // Iterate over the cells
+-         //
+-         // If we're not looking for a specific blockid, then just accumulate the
+-         // payload sizes. We will be reading every leaf page in the sampleblocks
+-         // table.
+-         //
+-         // Otherwise we break out when we find the matching blockid. In this case,
+-         // we only ever look at 1 leaf page.
+-         bool stop = false;
+-         for (int i = 0; i < pg.numCells; i++)
+-         {
+-            // Get the offset to this cell using the offset in the cell pointer
+-            // array.
+-            //
+-            // The cell pointer array starts immediately after the page header
+-            // at offset 8 and the retrieved offset is from the beginning of
+-            // the page.
+-            int celloff = get2(&pg.data[8 + (i * 2)]);
+-
+-            // Get the total payload size in bytes of the described row.
+-            int64_t payload = 0;
+-            int digits = get_varint(&pg.data[celloff], &payload);
+-
+-            // Get the integer key for this row.
+-            int64_t intkey = 0;
+-            get_varint(&pg.data[celloff + digits], &intkey);
+-
+-            //wxLogDebug("%*.*sleaf - celloff %4d intkey %lld payload %lld", (stack.size() - 1) * 2, (stack.size() - 1) * 2, " ", celloff, intkey, payload);
+-
+-            // Add this payload size to the total if we're not looking for a specific
+-            // blockid
+-            if (!blockid)
+-            {
+-               total += payload;
+-            }
+-            // Otherwise, return the payload size for a matching row
+-            else if (blockid == intkey)
+-            {
+-               return payload;
+-            }
+-         }
++         conn.ThrowException(false);
+       }
++   }
+ 
+-      // Done with the current branch, so pop back up to the previous one (if any)
+-      stack.pop_back();
+-   } while (!stack.empty());
+-
+-   // Return the total used for all sample blocks
+-   return total;
+-}
+-
+-// Retrieves a 2-byte big-endian integer from the page data
+-unsigned int ProjectFileIO::get2(const unsigned char *ptr)
+-{
+-   return (ptr[0] << 8) | ptr[1];
+-}
+-
+-// Retrieves a 4-byte big-endian integer from the page data
+-unsigned int ProjectFileIO::get4(const unsigned char *ptr)
+-{
+-   return ((unsigned int) ptr[0] << 24) |
+-          ((unsigned int) ptr[1] << 16) |
+-          ((unsigned int) ptr[2] << 8)  |
+-          ((unsigned int) ptr[3]);
+-}
+-
+-// Retrieves a variable length integer from the page data. Returns the
+-// number of digits used to encode the integer and the stores the
+-// value at the given location.
+-int ProjectFileIO::get_varint(const unsigned char *ptr, int64_t *out)
+-{
+-   int64_t val = 0;
+-   int i;
++   int rc = sqlite3_step(stmt);
+ 
+-   for (i = 0; i < 8; ++i)
++   if (rc != SQLITE_ROW)
+    {
+-      val = (val << 7) + (ptr[i] & 0x7f);
+-      if ((ptr[i] & 0x80) == 0)
+-      {
+-         *out = val;
+-         return i + 1;
+-      }
++      conn.ThrowException(false);
+    }
+ 
+-   val = (val << 8) + (ptr[i] & 0xff);
+-   *out = val;
++   const int64_t size = sqlite3_column_int64(stmt, 0);
+ 
+-   return 9;
++   return size;
+ }
+ 
+ InvisibleTemporaryProject::InvisibleTemporaryProject()
+-- 
+2.33.1
+
diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix
index 566024881b4a6..0e4afa4af7cfb 100644
--- a/pkgs/applications/audio/audacity/default.nix
+++ b/pkgs/applications/audio/audacity/default.nix
@@ -3,7 +3,6 @@
 , fetchFromGitHub
 , fetchpatch
 , cmake
-, wxGTK
 , pkg-config
 , python3
 , gettext
@@ -18,7 +17,6 @@
 , sqlite
 , sratom
 , suil
-, alsa-lib
 , libsndfile
 , soxr
 , flac
@@ -28,11 +26,13 @@
 , libopus
 , ffmpeg
 , soundtouch
-, pcre /*, portaudio - given up fighting their portaudio.patch */
+, pcre
+/*, portaudio - given up fighting their portaudio.patch */
 , linuxHeaders
+, alsa-lib
 , at-spi2-core
 , dbus
-, epoxy
+, libepoxy
 , libXdmcp
 , libXtst
 , libpthreadstubs
@@ -40,6 +40,16 @@
 , libsepol
 , libxkbcommon
 , util-linux
+, wxGTK
+, AppKit ? null
+, AudioToolbox ? null
+, AudioUnit ? null
+, Carbon ? null
+, Cocoa ? null
+, CoreAudio ? null
+, CoreAudioKit ? null
+, CoreServices ? null
+, wxmac
 }:
 
 # TODO
@@ -49,14 +59,20 @@
 let
   inherit (lib) optionals;
 
+  wxWidgets_src = fetchFromGitHub {
+    owner = "audacity";
+    repo = "wxWidgets";
+    rev = "07e7d832c7a337aedba3537b90b2c98c4d8e2985";
+    sha256 = "1mawnkcrmqj98jp0jxlnh9xkc950ca033ccb51c7035pzmi9if9a";
+    fetchSubmodules = true;
+  };
+
   wxGTK' = wxGTK.overrideAttrs (oldAttrs: rec {
-    src = fetchFromGitHub {
-      owner = "audacity";
-      repo = "wxWidgets";
-      rev = "07e7d832c7a337aedba3537b90b2c98c4d8e2985";
-      sha256 = "1mawnkcrmqj98jp0jxlnh9xkc950ca033ccb51c7035pzmi9if9a";
-      fetchSubmodules = true;
-    };
+    src = wxWidgets_src;
+  });
+
+  wxmac' = wxmac.overrideAttrs (oldAttrs: rec {
+    src = wxWidgets_src;
   });
 
 in
@@ -84,28 +100,18 @@ stdenv.mkDerivation rec {
       sha256 = "0zp2iydd46analda9cfnbmzdkjphz5m7dynrdj5qdnmq6j3px9fw";
       name = "audacity_xdg_paths.patch";
     })
+    # This is required to make audacity work with nixpkgs’ sqlite
+    # https://github.com/audacity/audacity/pull/1802 rebased onto 3.0.2
+    ./0001-Use-a-different-approach-to-estimate-the-disk-space-.patch
   ];
 
   postPatch = ''
     touch src/RevisionIdent.h
-
+  '' + lib.optionalString stdenv.isLinux ''
     substituteInPlace src/FileNames.cpp \
       --replace /usr/include/linux/magic.h ${linuxHeaders}/include/linux/magic.h
   '';
 
-  # audacity only looks for ffmpeg at runtime, so we need to link it in manually
-  NIX_LDFLAGS = toString [
-    "-lavcodec"
-    "-lavdevice"
-    "-lavfilter"
-    "-lavformat"
-    "-lavresample"
-    "-lavutil"
-    "-lpostproc"
-    "-lswresample"
-    "-lswscale"
-  ];
-
   nativeBuildInputs = [
     cmake
     gettext
@@ -116,7 +122,6 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    alsa-lib
     expat
     ffmpeg
     file
@@ -138,12 +143,11 @@ stdenv.mkDerivation rec {
     sratom
     suil
     twolame
-    wxGTK'
-    wxGTK'.gtk
   ] ++ optionals stdenv.isLinux [
+    alsa-lib # for portaudio
     at-spi2-core
     dbus
-    epoxy
+    libepoxy
     libXdmcp
     libXtst
     libpthreadstubs
@@ -151,6 +155,19 @@ stdenv.mkDerivation rec {
     libselinux
     libsepol
     util-linux
+    wxGTK'
+    wxGTK'.gtk
+  ] ++ optionals stdenv.isDarwin [
+    wxmac'
+    AppKit
+    Cocoa
+    CoreAudioKit
+    AudioUnit AudioToolbox CoreAudio CoreServices Carbon # for portaudio
+  ];
+
+  cmakeFlags = [
+    "-Daudacity_use_ffmpeg=linked"
+    "-DDISABLE_DYNAMIC_LOADING_FFMPEG=ON"
   ];
 
   doCheck = false; # Test fails
@@ -159,7 +176,7 @@ stdenv.mkDerivation rec {
     description = "Sound editor with graphical UI";
     homepage = "https://www.audacityteam.org/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ lheckemann ];
-    platforms = platforms.linux;
+    maintainers = with maintainers; [ lheckemann veprbl ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix b/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
index aa9290d9477fc..003608ea60208 100644
--- a/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
+++ b/pkgs/applications/audio/bitwig-studio/bitwig-studio4.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bitwig-studio";
-  version = "4.0.7";
+  version = "4.1.2";
 
   src = fetchurl {
     url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
-    sha256 = "sha256-NAiwHLYhTAQH6xZw5u8bM7MOILcMclQMKtJc7MGJb+Q=";
+    sha256 = "sha256-fXrpTOA6Uh4DgGU+3A7SV23Sb+Z2Ud4rCPmMk5I1MnA=";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
diff --git a/pkgs/applications/audio/callaudiod/default.nix b/pkgs/applications/audio/callaudiod/default.nix
index e7cd257f257e8..bba86afcfc260 100644
--- a/pkgs/applications/audio/callaudiod/default.nix
+++ b/pkgs/applications/audio/callaudiod/default.nix
@@ -11,14 +11,14 @@
 
 stdenv.mkDerivation rec {
   pname = "callaudiod";
-  version = "0.1.0";
+  version = "0.1.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.com";
     owner = "mobian1";
     repo = pname;
     rev = version;
-    sha256 = "087589z45xvldn2m1g79y0xbwzylwkjmfk83s5xjixyq0wqmfppd";
+    sha256 = "sha256-VASBYx/SZo2GJ8znthFIdjtZKbYVssWO1xhYcZMz9hI=";
   };
 
   strictDeps = true;
diff --git a/pkgs/applications/audio/fluidsynth/default.nix b/pkgs/applications/audio/fluidsynth/default.nix
index 0af7b6b1f9592..ad57b6a690ff0 100644
--- a/pkgs/applications/audio/fluidsynth/default.nix
+++ b/pkgs/applications/audio/fluidsynth/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, pkg-config, cmake
+{ stdenv, lib, fetchFromGitHub, buildPackages, pkg-config, cmake
 , alsa-lib, glib, libjack2, libsndfile, libpulseaudio
 , AudioUnit, CoreAudio, CoreMIDI, CoreServices
 }:
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     sha256 = "0x5808d03ym23np17nl8gfbkx3c4y3d7jyyr2222wn2prswbb6x3";
   };
 
-  nativeBuildInputs = [ pkg-config cmake ];
+  nativeBuildInputs = [ buildPackages.stdenv.cc pkg-config cmake ];
 
   buildInputs = [ glib libsndfile libpulseaudio libjack2 ]
     ++ lib.optionals stdenv.isLinux [ alsa-lib ]
diff --git a/pkgs/applications/audio/fomp/default.nix b/pkgs/applications/audio/fomp/default.nix
index f9f57b1ed55b5..bb421886f5d37 100644
--- a/pkgs/applications/audio/fomp/default.nix
+++ b/pkgs/applications/audio/fomp/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, lv2, pkg-config, python2, wafHook }:
+{ lib, stdenv, fetchurl, lv2, pkg-config, python3, wafHook }:
 
 stdenv.mkDerivation rec {
   pname = "fomp";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config wafHook ];
-  buildInputs = [ lv2 python2 ];
+  buildInputs = [ lv2 python3 ];
 
   meta = with lib; {
     homepage = "http://drobilla.net/software/fomp/";
diff --git a/pkgs/applications/audio/ft2-clone/default.nix b/pkgs/applications/audio/ft2-clone/default.nix
index 5155a91e725ed..b357fc07d09fe 100644
--- a/pkgs/applications/audio/ft2-clone/default.nix
+++ b/pkgs/applications/audio/ft2-clone/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ft2-clone";
-  version = "1.47";
+  version = "1.48";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "ft2-clone";
     rev = "v${version}";
-    sha256 = "sha256-KLHJROOtRPtGHBYEMByY7LG6FY4vES6WndCiz7okan8=";
+    sha256 = "sha256-ZE9uid/srHHuTRqzgbtHcfmM0VkVsdrK1CJ3Qwbvtao=";
   };
 
   # Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh)
diff --git a/pkgs/applications/audio/gmu/default.nix b/pkgs/applications/audio/gmu/default.nix
index b2b9f5e34750d..cc2b46cd6ace6 100644
--- a/pkgs/applications/audio/gmu/default.nix
+++ b/pkgs/applications/audio/gmu/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl, SDL, SDL_gfx, SDL_image, tremor, flac, mpg123, libmikmod
+{lib, stdenv, fetchurl, fetchpatch, SDL, SDL_gfx, SDL_image, tremor, flac, mpg123, libmikmod
 , speex, ncurses
 , keymap ? "default"
 , conf ? "unknown"
@@ -13,6 +13,24 @@ stdenv.mkDerivation rec {
     sha256 = "03x0mc0xw2if0bpf0a15yprcyx1xccki039zvl2099dagwk6xskv";
   };
 
+  patches = [
+     # pull pending upstream inclusion fix for ncurses-6.3:
+     #  https://github.com/jhe2/gmu/pull/7
+     (fetchpatch {
+       name = "ncurses-6.3.patch";
+       url = "https://github.com/jhe2/gmu/commit/c8b3a10afee136feb333754ef6ec26383b11072f.patch";
+       sha256 = "0xp2j3jp8pkmv6yvnzi378m2dylbfsaqrsrkw7hbxw6kglzj399r";
+     })
+
+     # pull upstream fix for -fno-common toolchains like
+     # upstream gcc-10 of clang-13.
+     (fetchpatch {
+       name = "fno-common.patch";
+       url = "https://github.com/jhe2/gmu/commit/b705209f08ddfda141ad358ccd0c3d2d099be5e6.patch";
+       sha256 = "1ci2b8kz3r58rzmivlfhqjmcgqwlkwlzzhnyxlk36vmk240a3gqq";
+     })
+  ];
+
   buildInputs = [ SDL SDL_gfx SDL_image tremor flac mpg123 libmikmod speex ncurses ];
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/applications/audio/gnome-podcasts/default.nix b/pkgs/applications/audio/gnome-podcasts/default.nix
index a053dda46a3bb..b91e861c5d5af 100644
--- a/pkgs/applications/audio/gnome-podcasts/default.nix
+++ b/pkgs/applications/audio/gnome-podcasts/default.nix
@@ -21,20 +21,20 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-podcasts";
-  version = "0.4.9";
+  version = "0.5.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "podcasts";
     rev = version;
-    sha256 = "1ah59ac3xm3sqai8zhil8ar30pviw83cm8in1n4id77rv24xkvgm";
+    hash = "sha256-Jk++/QrQt/fjOz2OaEIr1Imq2DmqTjcormCebjO4/Kk=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    sha256 = "1iihpfvkli09ysn46cnif53xizkwzk0m91bljmlzsygp3ip5i5yw";
+    hash = "sha256-jlXpeVabc1h2GU1j9Ff6GZJec+JgFyOdJzsOtdkrEWI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/helio-workstation/default.nix b/pkgs/applications/audio/helio-workstation/default.nix
index 012838eb436d2..b36d977b2bdf1 100644
--- a/pkgs/applications/audio/helio-workstation/default.nix
+++ b/pkgs/applications/audio/helio-workstation/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "helio-workstation";
-  version = "3.6";
+  version = "3.8";
 
   src = fetchFromGitHub {
     owner = "helio-fm";
     repo = pname;
     rev = version;
     fetchSubmodules = true;
-    sha256 = "sha256-qW39g6rQ5VPQ3Hx9NmwLbpZiITnzFZDZlcLkE+pJKPc=";
+    sha256 = "sha256-uwRSOJ5WvDH4mfL9pCTCGzuSRT8SIBrI+Wsbumzejv0=";
   };
 
   buildInputs = [
@@ -30,13 +30,13 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     mkdir -p $out/bin
-    install -Dm755 build/Helio $out/bin
-    wrapProgram $out/bin/Helio --prefix PATH ":" ${gnome.zenity}/bin
+    install -Dm755 build/helio $out/bin
+    wrapProgram $out/bin/helio --prefix PATH ":" ${gnome.zenity}/bin
 
     mkdir -p $out/share
     cp -r ../Deployment/Linux/Debian/x64/usr/share/* $out/share
     substituteInPlace $out/share/applications/Helio.desktop \
-      --replace "/usr/bin/helio" "$out/bin/Helio"
+      --replace "/usr/bin/helio" "$out/bin/helio"
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/audio/helvum/default.nix b/pkgs/applications/audio/helvum/default.nix
index 757b83cd4d572..30dc359731f59 100644
--- a/pkgs/applications/audio/helvum/default.nix
+++ b/pkgs/applications/audio/helvum/default.nix
@@ -1,47 +1,73 @@
 { lib
-, fetchFromGitLab
-, makeDesktopItem
-, copyDesktopItems
-, rustPlatform
-, pkg-config
 , clang
-, libclang
+, desktop-file-utils
+, fetchFromGitLab
+, fetchpatch
 , glib
 , gtk4
+, libclang
+, meson
+, ninja
 , pipewire
+, pkg-config
+, rustPlatform
+, stdenv
 }:
 
-rustPlatform.buildRustPackage rec {
+stdenv.mkDerivation rec {
   pname = "helvum";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "ryuukyu";
     repo = pname;
     rev = version;
-    sha256 = "sha256-f6+6Qicg5J6oWcafG4DF0HovTmF4r6yfw6p/3dJHmB4=";
+    sha256 = "sha256-Kt6gnMRTOVXqjAjEZKlylcGhzl52ZzPNVbJhwzLhzkM=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-kxJRY9GSPwnb431iYCfJdGcl5HjpFr2KkWrFDpGajp8=";
   };
 
-  cargoSha256 = "sha256-zGa6nAmOOrpiMr865J06Ez3L6lPL0j18/lW8lw1jPyU=";
+  nativeBuildInputs = [
+    clang
+    meson
+    ninja
+    pkg-config
+    rustPlatform.cargoSetupHook
+    rustPlatform.rust.cargo
+    rustPlatform.rust.rustc
+  ];
 
-  nativeBuildInputs = [ clang copyDesktopItems pkg-config ];
-  buildInputs = [ glib gtk4 pipewire ];
+  buildInputs = [
+    desktop-file-utils
+    glib
+    gtk4
+    pipewire
+  ];
 
   LIBCLANG_PATH = "${libclang.lib}/lib";
 
-  desktopItems = makeDesktopItem {
-    name = "Helvum";
-    exec = pname;
-    desktopName = "Helvum";
-    genericName = "Helvum";
-    categories = "AudioVideo;";
-  };
+  patches = [
+    # enables us to use gtk4-update-icon-cache instead of gtk3 one
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/ryuukyu/helvum/-/merge_requests/24.patch";
+      sha256 = "sha256-WmI6taBL/6t587j06n0mwByQ8x0eUA5ECvGNjg2/vtk=";
+    })
+  ];
+
+  postPatch = ''
+    patchShebangs build-aux/cargo.sh
+  '';
 
   meta = with lib; {
     description = "A GTK patchbay for pipewire";
     homepage = "https://gitlab.freedesktop.org/ryuukyu/helvum";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fufexan ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/hybridreverb2/default.nix b/pkgs/applications/audio/hybridreverb2/default.nix
index b83eb591d8130..d281ec11c7d16 100644
--- a/pkgs/applications/audio/hybridreverb2/default.nix
+++ b/pkgs/applications/audio/hybridreverb2/default.nix
@@ -13,7 +13,7 @@
 , libpthreadstubs
 , libXdmcp
 , libxkbcommon
-, epoxy
+, libepoxy
 , at-spi2-core
 , dbus
 , curl
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
     libpthreadstubs
     libXdmcp
     libxkbcommon
-    epoxy
+    libepoxy
     at-spi2-core
     dbus
     curl
diff --git a/pkgs/applications/audio/hydrogen/default.nix b/pkgs/applications/audio/hydrogen/default.nix
index 842d2ad93fa46..694734e36f4a8 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.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "hydrogen-music";
     repo = pname;
     rev = version;
-    sha256 = "sha256-G+7vTUxYiPNKJ0Qxf/E/t0d6vC/lDs9vNfSbvUXTQgI=";
+    sha256 = "sha256-to24PB9cs4vun93uXEWNVsmSLFRuLGfC4hCh7+mbvIo=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
diff --git a/pkgs/applications/audio/jamulus/default.nix b/pkgs/applications/audio/jamulus/default.nix
index 185df48ff6f70..f30b188c39171 100644
--- a/pkgs/applications/audio/jamulus/default.nix
+++ b/pkgs/applications/audio/jamulus/default.nix
@@ -3,12 +3,12 @@
 
 mkDerivation rec {
   pname = "jamulus";
-  version = "3.8.0";
+  version = "3.8.1";
   src = fetchFromGitHub {
     owner = "jamulussoftware";
     repo = "jamulus";
     rev = "r${lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "sha256-Ni6N7XW34OFNuEkqBEgMcYGmIqb+UZ0uhLt/shRkWRs=";
+    sha256 = "sha256-QtlvcKVqKgRAO/leHy4CgvjNW49HAyZLI2JtKERP7HQ=";
   };
 
   nativeBuildInputs = [ pkg-config qmake ];
diff --git a/pkgs/applications/audio/jmusicbot/default.nix b/pkgs/applications/audio/jmusicbot/default.nix
index 299fe547366a6..3bc06abcbffa3 100644
--- a/pkgs/applications/audio/jmusicbot/default.nix
+++ b/pkgs/applications/audio/jmusicbot/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "JMusicBot";
-  version = "0.3.4";
+  version = "0.3.6";
 
   src = fetchurl {
     url = "https://github.com/jagrosh/MusicBot/releases/download/${version}/JMusicBot-${version}.jar";
-    sha256 = "sha256-++/ot9k74pkN9Wl7IEjiMIv/q5zklIEdU6uFjam0tmU=";
+    sha256 = "sha256-Hc3dsOADC+jVZScY19OYDkHimntMjdw/BoB3EUS/d0k=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/applications/audio/kid3/default.nix b/pkgs/applications/audio/kid3/default.nix
index 7dd5594a9a932..ba3d921751b55 100644
--- a/pkgs/applications/audio/kid3/default.nix
+++ b/pkgs/applications/audio/kid3/default.nix
@@ -28,11 +28,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kid3";
-  version = "3.8.7";
+  version = "3.9.0";
 
   src = fetchurl {
     url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-Dr+NLh5ajG42jRKt1Swq6mccPfuAXRvhhoTNuO8lnI0=";
+    sha256 = "sha256-d0Y+swzzGk1FzQ3EK8sN8i1Nf6CRIPMAYgTUYN71FXU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/libopenmpt/default.nix b/pkgs/applications/audio/libopenmpt/default.nix
index ef5c080133b08..b2b5ebecd7e23 100644
--- a/pkgs/applications/audio/libopenmpt/default.nix
+++ b/pkgs/applications/audio/libopenmpt/default.nix
@@ -1,4 +1,4 @@
-{ config, lib, stdenv, fetchurl, zlib, pkg-config, mpg123, libogg, libvorbis, portaudio, libsndfile, flac
+{ config, lib, stdenv, fetchurl, fetchpatch, zlib, pkg-config, mpg123, libogg, libvorbis, portaudio, libsndfile, flac
 , usePulseAudio ? config.pulseaudio or stdenv.isLinux, libpulseaudio }:
 
 stdenv.mkDerivation rec {
@@ -12,6 +12,16 @@ stdenv.mkDerivation rec {
     sha256 = "1c54lldr2imjzhlhq5lvwhj7d5794xm97cby9pznr5wdjjay0sa4";
   };
 
+  patches = [
+    # Fix pending upstream inclusion for gcc-12 include headers:
+    #  https://github.com/OpenMPT/openmpt/pull/8
+    (fetchpatch {
+      name = "gcc-12.patch";
+      url = "https://github.com/OpenMPT/openmpt/commit/6e7a43190ef2f9ba0b3efc19b9527261b69ec8f7.patch";
+      sha256 = "081m1rf09bbrlg52aihaajmld5dcnwbp6y7zpyik92mm332r330h";
+    })
+  ];
+
   enableParallelBuilding = true;
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/audio/linuxband/default.nix b/pkgs/applications/audio/linuxband/default.nix
deleted file mode 100644
index ec034ae238de4..0000000000000
--- a/pkgs/applications/audio/linuxband/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib, stdenv, fetchurl, makeWrapper, pkg-config, MMA, libjack2, libsmf, python2Packages }:
-
-let
-  inherit (python2Packages) pyGtkGlade pygtksourceview python;
-in stdenv.mkDerivation rec {
-  version = "12.02.1";
-  pname = "linuxband";
-
-  src = fetchurl {
-    url = "https://linuxband.org/assets/sources/${pname}-${version}.tar.gz";
-    sha256 = "1r71h4yg775m4gax4irrvygmrsclgn503ykmc2qwjsxa42ri4n2n";
-  };
-
-  nativeBuildInputs = [ pkg-config makeWrapper ];
-  buildInputs = [ MMA libjack2 libsmf python pyGtkGlade pygtksourceview ];
-
-  patchPhase = ''
-    sed -i 's@/usr/@${MMA}/@g' src/main/config/linuxband.rc.in
-    cat src/main/config/linuxband.rc.in
-  '';
-
-  postFixup = ''
-    PYTHONPATH=$pyGtkGlade/share/:pygtksourceview/share/:$PYTHONPATH
-    for f in $out/bin/*; do
-      wrapProgram $f \
-      --prefix PYTHONPATH : $PYTHONPATH
-    done
-  '';
-
-  meta = {
-    description = "A GUI front-end for MMA: Type in the chords, choose the groove and it will play an accompaniment";
-    homepage = "https://linuxband.org/";
-    license = lib.licenses.gpl2;
-    maintainers = [ lib.maintainers.magnetophon ];
-    platforms = lib.platforms.linux;
-  };
-}
diff --git a/pkgs/applications/audio/lmms/default.nix b/pkgs/applications/audio/lmms/default.nix
index 4830476af2c8e..22d9b3fed976a 100644
--- a/pkgs/applications/audio/lmms/default.nix
+++ b/pkgs/applications/audio/lmms/default.nix
@@ -43,6 +43,6 @@ mkDerivation rec {
     homepage = "https://lmms.io";
     license = licenses.gpl2Plus;
     platforms = [ "x86_64-linux" "i686-linux" ];
-    maintainers = with maintainers; [ goibhniu yegortimoshenko ];
+    maintainers = with maintainers; [ goibhniu yana ];
   };
 }
diff --git a/pkgs/applications/audio/losslessaudiochecker/default.nix b/pkgs/applications/audio/losslessaudiochecker/default.nix
new file mode 100644
index 0000000000000..551f56a3ce145
--- /dev/null
+++ b/pkgs/applications/audio/losslessaudiochecker/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchurl, autoPatchelfHook }:
+
+stdenv.mkDerivation {
+  pname = "losslessaudiochecker";
+  version = "2.0.5";
+
+  src = fetchurl {
+    url = "https://web.archive.org/web/20211119122205/https://losslessaudiochecker.com/dl/LAC-Linux-64bit.tar.gz";
+    sha256 = "1i1zbl7sqwxwmhw89lgz922l5k85in3y76zb06h8j3zd0lb20wkq";
+  };
+
+  nativeBuildInputs = [ autoPatchelfHook ];
+
+  setSourceRoot = "sourceRoot=$PWD";
+
+  dontBuild = true;
+
+  installPhase = ''
+    install LAC -D -t $out/bin
+  '';
+
+  meta = {
+    description = "Utility to check whether audio is truly lossless or not";
+    homepage = "https://losslessaudiochecker.com";
+    license = lib.licenses.unfree;
+    platforms = lib.platforms.x86_64;
+    maintainers = with lib.maintainers; [ p-h ];
+  };
+}
diff --git a/pkgs/applications/audio/lsp-plugins/default.nix b/pkgs/applications/audio/lsp-plugins/default.nix
index 2bf47786ef534..f6f3237d6f07f 100644
--- a/pkgs/applications/audio/lsp-plugins/default.nix
+++ b/pkgs/applications/audio/lsp-plugins/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lsp-plugins";
-  version = "1.1.30";
+  version = "1.1.31";
 
   src = fetchFromGitHub {
     owner = "sadko4u";
     repo = pname;
     rev = version;
-    sha256 = "0g0nx05dyjwz2149v3pj6sa9divr26jyqvg2kk1qk48s2n4najkz";
+    sha256 = "sha256-P1woSkenSlVUwWr3q0sNv8K2fVtTa6zWwKfSHQgg9Xw=";
   };
 
   nativeBuildInputs = [ pkg-config php makeWrapper ];
diff --git a/pkgs/applications/audio/mi2ly/default.nix b/pkgs/applications/audio/mi2ly/default.nix
index b4f7668394f1f..9a046a2e11aac 100644
--- a/pkgs/applications/audio/mi2ly/default.nix
+++ b/pkgs/applications/audio/mi2ly/default.nix
@@ -1,28 +1,20 @@
-{lib, stdenv, fetchurl}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="mi2ly";
-    version="0.12";
-    name="${baseName}-${version}";
-    hash="1b14zcwlvnxhjxr3ymyzg0mg4sbijkinzpxm641s859jxcgylmll";
-    url="https://download.savannah.gnu.org/releases/mi2ly/mi2ly.0.12.tar.bz2";
-    sha256="1b14zcwlvnxhjxr3ymyzg0mg4sbijkinzpxm641s859jxcgylmll";
-  };
-  buildInputs = [
-  ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "mi2ly";
+  version = "0.12";
+
   src = fetchurl {
-    inherit (s) url sha256;
+    url = "https://download.savannah.gnu.org/releases/mi2ly/mi2ly.${version}.tar.bz2";
+    sha256 = "sha256-lFbqH+syFaQDMbXfb+OUcWnyKnjfVz9yl7DbTTn7JKw=";
   };
 
-  sourceRoot=".";
+  sourceRoot = ".";
 
   hardeningDisable = [ "format" ];
 
+  NIX_CFLAGS_COMPILE = [ "-fgnu89-inline" ];
+
   buildPhase = "./cc";
   installPhase = ''
     mkdir -p "$out"/{bin,share/doc/mi2ly}
@@ -30,12 +22,11 @@ stdenv.mkDerivation {
     cp README Doc.txt COPYING Manual.txt "$out/share/doc/mi2ly"
   '';
 
-  meta = {
-    inherit (s) version;
+  meta = with lib; {
     description = "MIDI to Lilypond converter";
-    license = lib.licenses.gpl2Plus ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
-    broken = true; # 2018-04-11
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
+    homepage = "https://www.nongnu.org/mi2ly/";
   };
 }
diff --git a/pkgs/applications/audio/mi2ly/default.upstream b/pkgs/applications/audio/mi2ly/default.upstream
deleted file mode 100644
index 0b2607989aa2f..0000000000000
--- a/pkgs/applications/audio/mi2ly/default.upstream
+++ /dev/null
@@ -1,3 +0,0 @@
-url https://download.savannah.gnu.org/releases/mi2ly/
-ensure_choice
-version '.*/mi2ly[.]([0-9.]+)[.]tar.*' '\1'
diff --git a/pkgs/applications/audio/milkytracker/default.nix b/pkgs/applications/audio/milkytracker/default.nix
index ce29a587d232c..47fbd5794ea08 100644
--- a/pkgs/applications/audio/milkytracker/default.nix
+++ b/pkgs/applications/audio/milkytracker/default.nix
@@ -27,9 +27,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Music tracker application, similar to Fasttracker II";
-    homepage = "http://milkytracker.org";
+    homepage = "https://milkytracker.org/";
     license = licenses.gpl3Plus;
     platforms = [ "x86_64-linux" "i686-linux" ];
-    maintainers = with maintainers; [ zoomulator ];
+    maintainers = with maintainers; [];
   };
 }
diff --git a/pkgs/applications/audio/mod-arpeggiator-lv2/default.nix b/pkgs/applications/audio/mod-arpeggiator-lv2/default.nix
new file mode 100644
index 0000000000000..3896545dc41c2
--- /dev/null
+++ b/pkgs/applications/audio/mod-arpeggiator-lv2/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, lv2, pkg-config }:
+
+stdenv.mkDerivation rec {
+
+  pname = "mod-arpeggiator-lv2";
+  version = "unstable-2021-11-09";
+
+  src = fetchFromGitHub {
+    owner = "moddevices";
+    repo = pname;
+    rev = "82f3d9f159ce216454656a8782362c3d5ed48bed";
+    sha256 = "sha256-1KiWMTVTTf1/iR4AzJ1Oe0mOrWN5edsZN0tQMidgnRA=";
+  };
+
+  buildInputs = [ lv2 pkg-config ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "a LV2 arpeggiator";
+    homepage = "https://github.com/moddevices/mod-arpeggiator-lv2";
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/molot-lite/default.nix b/pkgs/applications/audio/molot-lite/default.nix
index c44f597ef30c8..da1e3702bacc8 100644
--- a/pkgs/applications/audio/molot-lite/default.nix
+++ b/pkgs/applications/audio/molot-lite/default.nix
@@ -1,18 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, lv2 }:
+{ lib, stdenv, fetchFromGitHub, lv2, cairo, pkg-config }:
 
 stdenv.mkDerivation rec {
 
   pname = "molot-lite";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "magnetophon";
     repo = pname;
     rev = version;
-    sha256 = "0xbvicfk1rgp01nlg6hlym9bnygry0nrbv88mv7w6hnacvl63ba4";
+    sha256 = "sha256-0tmobsdCNon6udbkbQw7+EYQKBg2oaXlHIgNEf9U3XE=";
   };
 
-  buildInputs = [ lv2 ];
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ lv2 cairo ];
 
   makeFlags = [ "INSTALL_DIR=$out/lib/lv2" ];
 
diff --git a/pkgs/applications/audio/mopidy/default.nix b/pkgs/applications/audio/mopidy/default.nix
index 971b226bc81d4..d1b43bc4489be 100644
--- a/pkgs/applications/audio/mopidy/default.nix
+++ b/pkgs/applications/audio/mopidy/default.nix
@@ -9,6 +9,8 @@ lib.makeScope newScope (self: with self; {
 
   mopidy-iris = callPackage ./iris.nix { };
 
+  mopidy-jellyfin = callPackage ./jellyfin.nix { };
+
   mopidy-local = callPackage ./local.nix { };
 
   mopidy-moped = callPackage ./moped.nix { };
diff --git a/pkgs/applications/audio/mopidy/iris.nix b/pkgs/applications/audio/mopidy/iris.nix
index d02ca3d747ebd..5b2cbe031c67d 100644
--- a/pkgs/applications/audio/mopidy/iris.nix
+++ b/pkgs/applications/audio/mopidy/iris.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "Mopidy-Iris";
-  version = "3.59.0";
+  version = "3.60.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0llvn0khl07ni34jvb3a1r6rnkf0ljizhpqrs5bdishfhpwyhm0j";
+    sha256 = "18w6qqmxzn8psiacybryxailm826f3j1wgiv0c03fbdsy6kr5f7l";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/audio/mopidy/jellyfin.nix b/pkgs/applications/audio/mopidy/jellyfin.nix
new file mode 100644
index 0000000000000..7790380f9b76a
--- /dev/null
+++ b/pkgs/applications/audio/mopidy/jellyfin.nix
@@ -0,0 +1,25 @@
+{ lib, python3Packages, mopidy }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "mopidy-jellyfin";
+  version = "1.0.2";
+
+  src = python3Packages.fetchPypi {
+    inherit version;
+    pname = "Mopidy-Jellyfin";
+    sha256 = "0j7v5xx3c401r5dw1sqm1n2263chjga1d3ml85rg79hjhhhacy75";
+  };
+
+  propagatedBuildInputs = [ mopidy python3Packages.unidecode python3Packages.websocket-client ];
+
+  # no tests implemented
+  doCheck = false;
+  pythonImportsCheck = [ "mopidy_jellyfin" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/jellyfin/mopidy-jellyfin";
+    description = "Mopidy extension for playing audio files from Jellyfin";
+    license = licenses.asl20;
+    maintainers = [ maintainers.pstn ];
+  };
+}
diff --git a/pkgs/applications/audio/mpc/default.nix b/pkgs/applications/audio/mpc/default.nix
index e4ecc92024763..0511367db3b82 100644
--- a/pkgs/applications/audio/mpc/default.nix
+++ b/pkgs/applications/audio/mpc/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mpc";
-  version = "0.33";
+  version = "0.34";
 
   src = fetchFromGitHub {
     owner  = "MusicPlayerDaemon";
     repo   = "mpc";
     rev    = "v${version}";
-    sha256 = "1qbi0i9cq54rj8z2kapk8x8g1jkw2jz781niwb9i7kw4xfhvy5zx";
+    sha256 = "sha256-2FjYBfak0IjibuU+CNQ0y9Ei8hTZhynS/BK2DNerhVw=";
   };
 
   buildInputs = [ libmpdclient ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
diff --git a/pkgs/applications/audio/musescore/default.nix b/pkgs/applications/audio/musescore/default.nix
index 4b784272c35b0..7662eadc4983e 100644
--- a/pkgs/applications/audio/musescore/default.nix
+++ b/pkgs/applications/audio/musescore/default.nix
@@ -29,9 +29,9 @@ mkDerivation rec {
   qtWrapperArgs = [
     # MuseScore JACK backend loads libjack at runtime.
     "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libjack2 ]}"
-    # Work around crash on update from 3.4.2 to 3.5.0
-    # https://bugreports.qt.io/browse/QTBUG-85967
-    "--set QML_DISABLE_DISK_CACHE 1"
+    # There are some issues with using the wayland backend, see:
+    # https://musescore.org/en/node/321936
+    "--set QT_QPA_PLATFORM xcb"
   ];
 
   nativeBuildInputs = [ cmake pkg-config ];
@@ -49,7 +49,7 @@ mkDerivation rec {
     description = "Music notation and composition software";
     homepage = "https://musescore.org/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ vandenoever turion ];
+    maintainers = with maintainers; [ vandenoever turion doronbehar ];
     platforms = platforms.linux;
     repositories.git = "https://github.com/musescore/MuseScore";
   };
diff --git a/pkgs/applications/audio/musikcube/default.nix b/pkgs/applications/audio/musikcube/default.nix
index 2824832ef604b..bf34e8cbe5bf9 100644
--- a/pkgs/applications/audio/musikcube/default.nix
+++ b/pkgs/applications/audio/musikcube/default.nix
@@ -4,28 +4,41 @@
 , boost
 , curl
 , fetchFromGitHub
+, fetchpatch
 , ffmpeg
 , lame
 , libev
 , libmicrohttpd
 , ncurses
 , pulseaudio
-, lib, stdenv
+, lib
+, stdenv
 , taglib
-, systemdSupport ? stdenv.isLinux, systemd
+, systemdSupport ? stdenv.isLinux
+, systemd
 }:
 
 stdenv.mkDerivation rec {
   pname = "musikcube";
-  version = "0.96.7";
+  version = "0.96.10";
 
   src = fetchFromGitHub {
     owner = "clangen";
     repo = pname;
     rev = version;
-    sha256 = "1y00vwn1h10cfflxrm5bk271ak9gilhjycgi44hlkkhmf5bdgn35";
+    sha256 = "sha256-Aa52pRGq99Pt++aEVZdmVNhhQuBajgfZp39L1AfKvho=";
   };
 
+  patches = [
+    # Fix pending upstream inclusion for ncuurses-6.3 support:
+    #  https://github.com/clangen/musikcube/pull/474
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/clangen/musikcube/commit/1240720e27232fdb199a4da93ca6705864442026.patch";
+      sha256 = "0bhjgwnj6d24wb1m9xz1vi1k9xk27arba1absjbcimggn54pinid";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
     pkg-config
diff --git a/pkgs/applications/audio/ncmpc/default.nix b/pkgs/applications/audio/ncmpc/default.nix
index e397534d126cd..67c4efc04be3f 100644
--- a/pkgs/applications/audio/ncmpc/default.nix
+++ b/pkgs/applications/audio/ncmpc/default.nix
@@ -18,13 +18,13 @@ assert pcreSupport -> pcre != null;
 
 stdenv.mkDerivation rec {
   pname = "ncmpc";
-  version = "0.45";
+  version = "0.46";
 
   src = fetchFromGitHub {
     owner  = "MusicPlayerDaemon";
     repo   = "ncmpc";
     rev    = "v${version}";
-    sha256 = "sha256-KDSHbEZ2PJLEIlXqPvBQ2ZPWno+IoajTjkl9faAXIko=";
+    sha256 = "sha256-FyuN0jkHaJLXqcVbW+OggHkNBjmqH7bS7W/QXUoDjJk=";
   };
 
   buildInputs = [ glib ncurses libmpdclient boost ]
diff --git a/pkgs/applications/audio/ncspot/default.nix b/pkgs/applications/audio/ncspot/default.nix
index 29a244f19d7aa..6ba52306e8c47 100644
--- a/pkgs/applications/audio/ncspot/default.nix
+++ b/pkgs/applications/audio/ncspot/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ncspot";
-  version = "0.9.0";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
     owner = "hrkfdn";
     repo = "ncspot";
     rev = "v${version}";
-    sha256 = "07qqs5q64zaxl3b2091vjihqb35fm0136cm4zibrgpx21akmbvr2";
+    sha256 = "sha256-k4EGyQjjJCvUhp56OjYl63n+giI05GiIS2++I1SVhCg=";
   };
 
-  cargoSha256 = "0sdbba32f56z2q7kha5fxw2f00hikbz9sf4zl4wfl2i9b13j7mj0";
+  cargoSha256 = "sha256-YsjInqmkPnAwqgRBDiwcLH0DDqCF0NElrn+WO2v+ATM=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/audio/netease-music-tui/default.nix b/pkgs/applications/audio/netease-music-tui/default.nix
index bf7d680ff157e..f6ccee3e535ea 100644
--- a/pkgs/applications/audio/netease-music-tui/default.nix
+++ b/pkgs/applications/audio/netease-music-tui/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "netease-music-tui";
-  version = "0.1.3";
+  version = "0.1.4";
 
   src = fetchFromGitHub {
     owner = "betta-cyber";
     repo = "netease-music-tui";
     rev = "v${version}";
-    sha256 = "09355a6d197ckayh9833y39dsarklgpgrq3raapiv25z59di30qq";
+    sha256 = "sha256-ILJkejRKG2DRXgR6O2tAFbrbd8HtnLZJmITq7hF41DQ=";
   };
 
   cargoPatches = [ ./cargo-lock.patch ];
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ alsa-lib openssl ];
 
-  cargoSha256 = "1pca0sz4rz8qls6k2vhf70ixhnvgk81c4hbx81q3pv106g5k205f";
+  cargoSha256 = "sha256-/JQDUtSSkuO9nrYVSkQOaZjps1BUuH8Bc1SMyDSSJS4=";
 
   meta = with lib; {
     homepage = "https://github.com/betta-cyber/netease-music-tui";
diff --git a/pkgs/applications/audio/noisetorch/default.nix b/pkgs/applications/audio/noisetorch/default.nix
index b24c2eebcf7a8..b18f2b52f94c7 100644
--- a/pkgs/applications/audio/noisetorch/default.nix
+++ b/pkgs/applications/audio/noisetorch/default.nix
@@ -37,6 +37,6 @@ buildGoModule rec {
     homepage = "https://github.com/lawl/NoiseTorch";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ panaeon legendofmiracles ];
+    maintainers = with maintainers; [ panaeon lom ];
   };
 }
diff --git a/pkgs/applications/audio/non/default.nix b/pkgs/applications/audio/non/default.nix
index 9dd377a601b8b..39b8ecf7a6afb 100644
--- a/pkgs/applications/audio/non/default.nix
+++ b/pkgs/applications/audio/non/default.nix
@@ -1,20 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, python2, cairo, libjpeg, ntk, libjack2
+{ lib, stdenv, fetchFromGitHub, pkg-config, python3, cairo, libjpeg, ntk, libjack2
 , libsndfile, ladspaH, liblo, libsigcxx, lrdf, wafHook
 }:
 
 stdenv.mkDerivation {
   pname = "non";
-  version = "2018-02-15";
+  version = "unstable-2021-01-28";
   src = fetchFromGitHub {
-    owner = "original-male";
+    owner = "linuxaudio";
     repo = "non";
-    rev = "5ae43bb27c42387052a73e5ffc5d33efb9d946a9";
-    sha256 = "1cljkkyi9dxqpqhx8y6l2ja4zjmlya26m26kqxml8gx08vyvddhx";
+    rev = "cdad26211b301d2fad55a26812169ab905b85bbb";
+    sha256 = "sha256-iMJNMDytNXpEkUhL0RILSd25ixkm8HL/edtOZta0Pf4=";
   };
 
   nativeBuildInputs = [ pkg-config wafHook ];
-  buildInputs = [ python2 cairo libjpeg ntk libjack2 libsndfile
-    ladspaH liblo libsigcxx lrdf
+  buildInputs = [ python3 cairo libjpeg ntk libjack2 libsndfile
+                  ladspaH liblo libsigcxx lrdf
   ];
 
   meta = {
diff --git a/pkgs/applications/audio/ocenaudio/default.nix b/pkgs/applications/audio/ocenaudio/default.nix
index 7ad1e319bffe0..30011b2be3eac 100644
--- a/pkgs/applications/audio/ocenaudio/default.nix
+++ b/pkgs/applications/audio/ocenaudio/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ocenaudio";
-  version = "3.10.6";
+  version = "3.11.2";
 
   src = fetchurl {
     url = "https://www.ocenaudio.com/downloads/index.php/ocenaudio_debian9_64.deb?version=${version}";
-    sha256 = "0fgvm1xw2kgrqj3w6slpfxbb3pw9k8i0dz16q9d5d8gyyvr2mh8g";
+    sha256 = "sha256-kvmBOw8fQZSC1jC8FRVq4v+i7mM6ol2IrDTqfJtuZYc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/padthv1/default.nix b/pkgs/applications/audio/padthv1/default.nix
index 90e80f13ac482..2c4581cc7319b 100644
--- a/pkgs/applications/audio/padthv1/default.nix
+++ b/pkgs/applications/audio/padthv1/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "padthv1";
-  version = "0.9.18";
+  version = "0.9.23";
 
   src = fetchurl {
     url = "mirror://sourceforge/padthv1/${pname}-${version}.tar.gz";
-    sha256 = "1karrprb3ijrbiwpr43rl3nxnzc33lnmwrd1832psgr3flnr9fp5";
+    sha256 = "sha256-9yFfvlskOYnGraou2S3Qffl8RoYJqE0wnDlOP8mxQgg=";
   };
 
   buildInputs = [ libjack2 alsa-lib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftwFloat ];
diff --git a/pkgs/applications/audio/pamix/default.nix b/pkgs/applications/audio/pamix/default.nix
index fb076797fb5f7..4a2ad9ab779ea 100644
--- a/pkgs/applications/audio/pamix/default.nix
+++ b/pkgs/applications/audio/pamix/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib, stdenv, fetchFromGitHub, fetchpatch
 , pkg-config, cmake
 , libpulseaudio, ncurses }:
 
@@ -13,6 +13,20 @@ stdenv.mkDerivation rec {
     sha256 = "1d44ggnwkf2gff62959pj45v3a2k091q8v154wc5pmzamam458wp";
   };
 
+  patches = [
+    # ncurses-6.3 support, included in next release
+    (fetchpatch {
+      name = "ncurses-6.3-p1.patch";
+      url = "https://github.com/patroclos/PAmix/commit/3400b9c048706c572373e4617b4d5fcdb8dd2505.patch";
+      sha256 = "0rw56a844pz876ad9p8hfvn2fkd5rh29gpp47h55g08spf0vwb2z";
+    })
+    (fetchpatch {
+      name = "ncurses-6.3-p2.patch";
+      url = "https://github.com/patroclos/PAmix/commit/5ef67fc5ef6fc0dc0b48ff07ba48093881561d9c.patch";
+      sha256 = "0f8shpdv2swxdz04bkqgmkvl6c17r5mn4slzr7xd6pvw8hh51p4h";
+    })
+  ];
+
   preConfigure = ''
     substituteInPlace CMakeLists.txt --replace "/etc" "$out/etc/xdg"
   '';
diff --git a/pkgs/applications/audio/patchmatrix/default.nix b/pkgs/applications/audio/patchmatrix/default.nix
new file mode 100644
index 0000000000000..a5d135ce9d45a
--- /dev/null
+++ b/pkgs/applications/audio/patchmatrix/default.nix
@@ -0,0 +1,45 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, libjack2
+, lv2
+, meson
+, ninja
+, pkg-config
+, glew
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "patchmatrix";
+  version = "0.26.0";
+
+  src = fetchFromGitHub {
+    owner = "OpenMusicKontrollers";
+    repo = pname;
+    rev = version;
+    hash = "sha256-rR3y5rGzmib//caPmhthvMelAdHRvV0lMRfvcj9kcCg=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    glew
+    libjack2
+    lv2
+    xorg.libX11
+    xorg.libXext
+  ];
+
+  meta = with lib; {
+    description = "A JACK patchbay in flow matrix style";
+    homepage = "https://github.com/OpenMusicKontrollers/patchmatrix";
+    license = licenses.artistic2;
+    maintainers = with maintainers; [ pennae ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/praat/default.nix b/pkgs/applications/audio/praat/default.nix
index ac7f4206dbeb8..3fd0619ec29c7 100644
--- a/pkgs/applications/audio/praat/default.nix
+++ b/pkgs/applications/audio/praat/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "praat";
-  version = "6.1.55";
+  version = "6.2.03";
 
   src = fetchFromGitHub {
     owner = "praat";
     repo = "praat";
     rev = "v${version}";
-    sha256 = "sha256-PQVbrohIlmzKcG/8TzOBgyQWWaMH88voMNWAqEfyUWI=";
+    sha256 = "sha256-0WTbLEPEqPm7BI02mjlwcsewkrmIsHtNlhccqK1d6SI=";
   };
 
   configurePhase = ''
diff --git a/pkgs/applications/audio/ptcollab/default.nix b/pkgs/applications/audio/ptcollab/default.nix
index 71c574490f0a0..16ef4ed6e45e6 100644
--- a/pkgs/applications/audio/ptcollab/default.nix
+++ b/pkgs/applications/audio/ptcollab/default.nix
@@ -13,19 +13,30 @@
 
 mkDerivation rec {
   pname = "ptcollab";
-  version = "0.5.0.1";
+  version = "0.5.0.3";
 
   src = fetchFromGitHub {
     owner = "yuxshao";
     repo = "ptcollab";
     rev = "v${version}";
-    sha256 = "10v310smm0df233wlh1kqv8i36lsg1m36v0flrhs2202k50d69ri";
+    sha256 = "sha256-8bgi621psvUlhiLyZ15tKGmGOs6HTf5/6Ru2Z9l8QIo=";
   };
 
   nativeBuildInputs = [ qmake pkg-config ];
 
   buildInputs = [ qtbase qtmultimedia libvorbis rtmidi ];
 
+  postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
+    # Move appbundles to Applications before wrapping happens
+    mkdir $out/Applications
+    mv $out/{bin,Applications}/ptcollab.app
+  '';
+
+  postFixup = lib.optionalString stdenv.hostPlatform.isDarwin ''
+    # Link to now-wrapped binary inside appbundle
+    ln -s $out/{Applications/ptcollab.app/Contents/MacOS,bin}/ptcollab
+  '';
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = pname;
@@ -38,7 +49,5 @@ mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ OPNA2608 ];
     platforms = platforms.all;
-    # Requires Qt5.15
-    broken = stdenv.hostPlatform.isDarwin;
   };
 }
diff --git a/pkgs/applications/audio/pulseaudio-ctl/default.nix b/pkgs/applications/audio/pulseaudio-ctl/default.nix
index 9d1d6df1da508..1b21aa9d41634 100644
--- a/pkgs/applications/audio/pulseaudio-ctl/default.nix
+++ b/pkgs/applications/audio/pulseaudio-ctl/default.nix
@@ -7,13 +7,13 @@ let
 
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
-  version = "1.69";
+  version = "1.70";
 
   src = fetchFromGitHub {
     owner = "graysky2";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5WRhVIQlSwWuyvkzrnNW0rdVet9ZzM47gISJpznM8mU=";
+    sha256 = "sha256-ZB1jrr31PF7+vNB+Xo5CATJmYbuDAPwewpDxCVnAowY=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/audio/pulseaudio-dlna/0001-setup.py-remove-dbus-python-from-list.patch b/pkgs/applications/audio/pulseaudio-dlna/0001-setup.py-remove-dbus-python-from-list.patch
new file mode 100644
index 0000000000000..2f38386f96c0b
--- /dev/null
+++ b/pkgs/applications/audio/pulseaudio-dlna/0001-setup.py-remove-dbus-python-from-list.patch
@@ -0,0 +1,25 @@
+From a4bf7df795146c843696daee8c02826ba0034298 Mon Sep 17 00:00:00 2001
+From: Florian Klink <flokli@flokli.de>
+Date: Sun, 21 Nov 2021 12:04:48 +0100
+Subject: [PATCH] setup.py: remove dbus-python from list
+
+I wasn't able to convince setuptools to find this.
+---
+ setup.py | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 61d6831..013fff3 100644
+--- a/setup.py
++++ b/setup.py
+@@ -42,7 +42,6 @@ setuptools.setup(
+     install_requires=[
+     'docopt',
+     'chardet',
+-    'dbus-python',
+     'docopt',
+     'requests',
+     'setproctitle',
+-- 
+2.33.1
+
diff --git a/pkgs/applications/audio/pulseaudio-dlna/default.nix b/pkgs/applications/audio/pulseaudio-dlna/default.nix
index 83de192c6b316..384718f1db541 100644
--- a/pkgs/applications/audio/pulseaudio-dlna/default.nix
+++ b/pkgs/applications/audio/pulseaudio-dlna/default.nix
@@ -1,43 +1,64 @@
-{ fetchFromGitHub, lib, pythonPackages
-, mp3Support ? true, lame ? null
-, opusSupport ? true, opusTools ? null
-, faacSupport ? false, faac ? null
-, flacSupport ? true, flac ? null
-, soxSupport ? true, sox ? null
-, vorbisSupport ? true, vorbis-tools ? null
+{ fetchFromGitHub
+, lib
+, python3Packages
+, mp3Support ? true
+, lame
+, opusSupport ? true
+, opusTools
+, faacSupport ? false
+, faac
+, flacSupport ? true
+, flac
+, soxSupport ? true
+, sox
+, vorbisSupport ? true
+, vorbis-tools
+, pulseaudio
 }:
 
-assert mp3Support -> lame != null;
-assert opusSupport -> opusTools != null;
-assert faacSupport -> faac != null;
-assert flacSupport -> flac != null;
-assert soxSupport -> sox != null;
-assert vorbisSupport -> vorbis-tools != null;
-
-let
-  zeroconf = pythonPackages.callPackage ./zeroconf.nix { };
-in
-pythonPackages.buildPythonApplication {
+python3Packages.buildPythonApplication {
   pname = "pulseaudio-dlna";
-  version = "unstable-2017-11-01";
+  version = "unstable-2021-11-09";
 
   src = fetchFromGitHub {
-    owner = "masmu";
+    owner = "Cygn";
     repo = "pulseaudio-dlna";
-    rev = "4472928dd23f274193f14289f59daec411023ab0";
-    sha256 = "1dfn7036vrq49kxv4an7rayypnm5dlawsf02pfsldw877hzdamqk";
+    rev = "637a2e7bba2277137c5f12fb58e63100dab7cbe6";
+    sha256 = "sha256-Oda+zQQJE2D3fiNWTzxYvI8cZVHG5JAoV2Wf5Z6IU3M=";
   };
 
-  propagatedBuildInputs = with pythonPackages; [
-    dbus-python docopt requests setproctitle protobuf psutil futures
-    chardet notify2 netifaces pyroute2 pygobject2 lxml setuptools ]
-    ++ [ zeroconf ]
-    ++ lib.optional mp3Support lame
-    ++ lib.optional opusSupport opusTools
-    ++ lib.optional faacSupport faac
-    ++ lib.optional flacSupport flac
-    ++ lib.optional soxSupport sox
-    ++ lib.optional vorbisSupport vorbis-tools;
+  patches = [
+    ./0001-setup.py-remove-dbus-python-from-list.patch
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    dbus-python
+    docopt
+    requests
+    setproctitle
+    protobuf
+    psutil
+    chardet
+    netifaces
+    notify2
+    pyroute2
+    pygobject3
+    PyChromecast
+    lxml
+    setuptools
+    zeroconf
+  ]
+  ++ lib.optional mp3Support lame
+  ++ lib.optional opusSupport opusTools
+  ++ lib.optional faacSupport faac
+  ++ lib.optional flacSupport flac
+  ++ lib.optional soxSupport sox
+  ++ lib.optional vorbisSupport vorbis-tools;
+
+  # pulseaudio-dlna shells out to pactl to configure sinks and sources.
+  # As pactl might not be in $PATH, add --suffix it (so pactl configured by the
+  # user get priority)
+  makeWrapperArgs = [ "--suffix PATH : ${lib.makeBinPath [ pulseaudio ]}" ];
 
   # upstream has no tests
   checkPhase = ''
@@ -46,7 +67,7 @@ pythonPackages.buildPythonApplication {
 
   meta = with lib; {
     description = "A lightweight streaming server which brings DLNA / UPNP and Chromecast support to PulseAudio and Linux";
-    homepage = "https://github.com/masmu/pulseaudio-dlna";
+    homepage = "https://github.com/Cygn/pulseaudio-dlna";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mog ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/qpwgraph/default.nix b/pkgs/applications/audio/qpwgraph/default.nix
new file mode 100644
index 0000000000000..f805a2d345d9f
--- /dev/null
+++ b/pkgs/applications/audio/qpwgraph/default.nix
@@ -0,0 +1,34 @@
+{ lib, mkDerivation, fetchFromGitLab
+, cmake, pkg-config
+, alsa-lib, pipewire
+}:
+
+mkDerivation rec {
+  pname = "qpwgraph";
+  version = "0.1.1";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "rncbc";
+    repo = "qpwgraph";
+    rev = "v${version}";
+    sha256 = "sha256-r3FoAV0wah9fwnqyMyu8927c4Uj0zZoQNvLoXP5AP/E=";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [ alsa-lib pipewire ];
+
+  meta = with lib; {
+    description = "Qt graph manager for PipeWire, similar to QjackCtl.";
+    longDescription = ''
+      qpwgraph is a graph manager dedicated for PipeWire,
+      using the Qt C++ framework, based and pretty much like
+      the same of QjackCtl.
+    '';
+    homepage = "https://gitlab.freedesktop.org/rncbc/qpwgraph";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ kanashimia ];
+  };
+}
diff --git a/pkgs/applications/audio/reaper/default.nix b/pkgs/applications/audio/reaper/default.nix
index a7063b9f3e254..b7f6bb3ee3735 100644
--- a/pkgs/applications/audio/reaper/default.nix
+++ b/pkgs/applications/audio/reaper/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "reaper";
-  version = "6.38";
+  version = "6.43";
 
   src = fetchurl {
     url = "https://www.reaper.fm/files/${lib.versions.major version}.x/reaper${builtins.replaceStrings ["."] [""] version}_linux_${stdenv.hostPlatform.qemuArch}.tar.xz";
     hash = {
-      x86_64-linux = "sha256-K5EnrmzP8pyW9dR1fbMzkPzpS6aHm8JF1+m3afnH4rU=";
-      aarch64-linux = "sha256-6wNWDXjQNyfU2l9Xi9JtmAuoKtHuIY5cvNMjYkwh2Sk=";
+      x86_64-linux = "sha256-VQ91px9YZWbrw31fFQxS+H/6fsjkLDrYU6FtI8eSq6E=";
+      aarch64-linux = "sha256-x6z5+H7ASWiuNL0maNGK05VmJptHdFGRiFf6DgwlZDw=";
     }.${stdenv.hostPlatform.system};
   };
 
@@ -78,6 +78,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.reaper.fm/";
     license = licenses.unfree;
     platforms = [ "x86_64-linux" "aarch64-linux" ];
-    maintainers = with maintainers; [ jfrankenau ilian orivej ];
+    maintainers = with maintainers; [ jfrankenau ilian orivej uniquepointer ];
   };
 }
diff --git a/pkgs/applications/audio/rofi-pulse-select/default.nix b/pkgs/applications/audio/rofi-pulse-select/default.nix
new file mode 100644
index 0000000000000..f4f70a9d1c332
--- /dev/null
+++ b/pkgs/applications/audio/rofi-pulse-select/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, fetchFromGitLab
+, lib
+, makeWrapper
+, ponymix
+, rofi-unwrapped
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rofi-pulse-select";
+  version = "0.2.0";
+
+  src = fetchFromGitLab {
+    owner = "DamienCassou";
+    repo = pname;
+    rev = "${version}";
+    sha256 = "1405v0bh2m8ip9c23l95i8iq2gfrpanc6f4dz17nysdcff2ay2p3";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D --target-directory=$out/bin/ ./rofi-pulse-select
+
+    wrapProgram $out/bin/rofi-pulse-select \
+      --prefix PATH ":" ${lib.makeBinPath [ rofi-unwrapped ponymix ]}
+
+    runHook postInstall
+  '';
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  meta = with lib; {
+    description = "Rofi-based interface to select source/sink (aka input/output) with PulseAudio";
+    homepage = "https://gitlab.com/DamienCassou/rofi-pulse-select";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ DamienCassou ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/schismtracker/default.nix b/pkgs/applications/audio/schismtracker/default.nix
index ba193f70194d8..bf74dd64f9268 100644
--- a/pkgs/applications/audio/schismtracker/default.nix
+++ b/pkgs/applications/audio/schismtracker/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "schismtracker";
-  version = "20210525";
+  version = "20211116";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "06ybkbqry7f7lmzgwb9s7ipafshl5gdj98lcjsjkcbnywj8r9b3h";
+    sha256 = "1kcw4rwphyqh0hwwjsydzwg484xj17rb5lc8pfsixsg77z50ayzz";
   };
 
   configureFlags = [ "--enable-dependency-tracking" ]
@@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ SDL ] ++ lib.optional stdenv.isLinux alsa-lib;
 
+  enableParallelBuilding = true;
+
   meta = with lib; {
     description = "Music tracker application, free reimplementation of Impulse Tracker";
     homepage = "http://schismtracker.org/";
diff --git a/pkgs/applications/audio/setbfree/default.nix b/pkgs/applications/audio/setbfree/default.nix
index 67851611f76ef..0edd45f240964 100644
--- a/pkgs/applications/audio/setbfree/default.nix
+++ b/pkgs/applications/audio/setbfree/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip, alsa-lib, freetype, ftgl, libjack2, libX11, lv2
+{ lib, stdenv, fetchFromGitHub, alsa-lib, freetype, ftgl, libjack2, libX11, lv2
 , libGLU, libGL, pkg-config, ttf_bitstream_vera
 }:
 
@@ -6,9 +6,11 @@ stdenv.mkDerivation  rec {
   pname = "setbfree";
   version = "0.8.11";
 
-  src = fetchzip {
-    url = "https://github.com/pantherb/setBfree/archive/v${version}.tar.gz";
-    sha256 = "0c2wc8nkrzsy0yic4y7hjz320m3d20r8152j9dk8nsnmgjmyr2ir";
+  src = fetchFromGitHub {
+    owner = "pantherb";
+    repo = "setBfree";
+    rev = "v${version}";
+    sha256 = "sha256-OYrsq3zVaotmS1KUgDIQbVQgxpfweMKiB17/PC1iXDA=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/audio/sfizz/default.nix b/pkgs/applications/audio/sfizz/default.nix
index 702f5c3982a26..d579e78b35e7c 100644
--- a/pkgs/applications/audio/sfizz/default.nix
+++ b/pkgs/applications/audio/sfizz/default.nix
@@ -1,18 +1,16 @@
-{ lib, stdenv, fetchFromGitHub
-, libjack2, libsndfile, xorg, freetype, libxkbcommon
-, cairo, glib, gnome, flac, libogg, libvorbis, libopus
-, cmake, pkg-config
-}:
+{ lib, stdenv, fetchFromGitHub, libjack2, libsndfile, xorg, freetype
+, libxkbcommon, cairo, glib, gnome, flac, libogg, libvorbis, libopus, cmake
+, pango, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "sfizz";
-  version = "0.5.1";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "sfztools";
     repo = pname;
     rev = version;
-    sha256 = "sha256-3RdY5+BPsdk6vctDy24w5aJsVOV9qzSgXs62Pm5UEKs=";
+    sha256 = "1gzpbns89j6ggzfjjvyhgigynsv20synrs7lmc32hwp4g73l0j7n";
     fetchSubmodules = true;
   };
 
@@ -37,18 +35,18 @@ stdenv.mkDerivation rec {
     glib
     gnome.zenity
     freetype
+    pango
   ];
   nativeBuildInputs = [ cmake pkg-config ];
 
   postPatch = ''
-  substituteInPlace editor/external/vstgui4/vstgui/lib/platform/linux/x11fileselector.cpp \
-    --replace '"/usr/bin/zenity' '"${gnome.zenity}/bin/zenity'
+    substituteInPlace plugins/editor/external/vstgui4/vstgui/lib/platform/linux/x11fileselector.cpp \
+      --replace 'zenitypath = "zenity"' 'zenitypath = "${gnome.zenity}/bin/zenity"'
+    substituteInPlace plugins/editor/src/editor/NativeHelpers.cpp \
+      --replace '/usr/bin/zenity' '${gnome.zenity}/bin/zenity'
   '';
 
-  cmakeFlags = [
-    "-DCMAKE_BUILD_TYPE=Release"
-    "-DSFIZZ_TESTS=ON"
-  ];
+  cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" "-DSFIZZ_TESTS=ON" ];
 
   meta = with lib; {
     homepage = "https://github.com/sfztools/sfizz";
diff --git a/pkgs/applications/audio/soundwireserver/default.nix b/pkgs/applications/audio/soundwireserver/default.nix
new file mode 100755
index 0000000000000..17660599b6890
--- /dev/null
+++ b/pkgs/applications/audio/soundwireserver/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, qt5
+, autoPatchelfHook
+, unzip
+, fetchzip
+, portaudio
+}:
+
+qt5.mkDerivation {
+  pname = "soundwire";
+  version = "3.0";
+
+  src = fetchzip {
+    url = "https://web.archive.org/web/20211120182526/https://georgielabs.net/SoundWire_Server_linux64.tar.gz";
+    hash = "sha256-TECuQ5WXpeikc9tXEE/wVBnRbdYd0OaIFFhsBRmaukA=";
+  };
+
+  nativeBuildInputs = [
+    unzip
+    autoPatchelfHook
+  ];
+
+  buildInputs = [
+    portaudio
+  ];
+
+  installPhase = ''
+    install -D SoundWire-Server.desktop $out/share/applications/SoundWireServer.desktop
+    install -D SoundWireServer $out/bin/SoundWireServer
+    install -D sw-icon.xpm $out/share/icons/hicolor/256x256/apps/sw-icon.xpm
+  '';
+
+  meta = with lib; {
+    description = "Turn your Android device into wireless headphones / wireless speaker";
+    homepage = "https://georgielabs.net/";
+    maintainers = with maintainers; [ mkg20001 ];
+    license = licenses.unfree;
+  };
+}
diff --git a/pkgs/applications/audio/spot/default.nix b/pkgs/applications/audio/spot/default.nix
index aa7a041f40c7a..e17e85036949b 100644
--- a/pkgs/applications/audio/spot/default.nix
+++ b/pkgs/applications/audio/spot/default.nix
@@ -21,19 +21,19 @@
 
 stdenv.mkDerivation rec {
   pname = "spot";
-  version = "0.2.0";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "xou816";
     repo = "spot";
     rev = version;
-    sha256 = "16pri0in514xzy21bsijyvyyjwa0f6lg4zyizmdcmcdw4glrs11m";
+    hash = "sha256-g0oVhlfez9i+Vv8lt/aNftCVqdgPMDySBBeLyOv7Zl8=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    sha256 = "1fvnidxh4rnkzqg3qjk3zlkp2d41qdamm0bfavk8jrazw8sgih84";
+    hash = "sha256-n10aYzkRqEe1h2WPAfARjH79Npvv+3fdX9jCtxv2a34=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/spotifyd/default.nix b/pkgs/applications/audio/spotifyd/default.nix
index dacf91e562290..bfeb8a7dab3a3 100644
--- a/pkgs/applications/audio/spotifyd/default.nix
+++ b/pkgs/applications/audio/spotifyd/default.nix
@@ -9,16 +9,16 @@
 
 rustPackages.rustPlatform.buildRustPackage rec {
   pname = "spotifyd";
-  version = "0.3.2";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = "Spotifyd";
     repo = "spotifyd";
     rev = "v${version}";
-    sha256 = "1a578h13iv8gqmskzlncfr42jlg5gp0zfcizv4wbd48y9hl8fh2l";
+    sha256 = "1liql2wp7cx0x4ha1578wx3m4byd295m4ph268s05yw2wrnr3v6c";
   };
 
-  cargoSha256 = "07dxfc0csrnfl01p9vdrqvca9f574svlf37dk3dz8p6q08ki0n1z";
+  cargoSha256 = "1plvqd55d1gj0ydimv3154pwgj2sh1fqx2182nw8akzdfmzg1150";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/audio/surge-XT/default.nix b/pkgs/applications/audio/surge-XT/default.nix
index 6445723d7781c..a08c25f016aa1 100644
--- a/pkgs/applications/audio/surge-XT/default.nix
+++ b/pkgs/applications/audio/surge-XT/default.nix
@@ -1,27 +1,87 @@
-{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, cairo, libxkbcommon, xcbutilcursor, xcbutilkeysyms, xcbutil, libXrandr, libXinerama, libXcursor, alsa-lib, libjack2
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, pkg-config
+, alsa-lib
+, freetype
+, libjack2
+, lv2
+, libX11
+, libXcursor
+, libXext
+, libXinerama
+, libXrandr
 }:
 
+let
+  juce-lv2 = stdenv.mkDerivation {
+    pname = "juce-lv2";
+    version = "unstable-2021-12-11";
+
+    # lv2 branch
+    src = fetchFromGitHub {
+      owner = "lv2-porting-project";
+      repo = "JUCE";
+      rev = "5106d9d77b892c22afcb9379c13982f270429e2e";
+      sha256 = "sha256-bpZJ5NEDRfMtmx0RkKQFZWqS/SnYAFRhrDg9MSphh4c=";
+    };
+
+    dontConfigure = true;
+    dontBuild = true;
+
+    installPhase = ''
+      cp -r . $out
+    '';
+  };
+in
 stdenv.mkDerivation rec {
   pname = "surge-XT";
-  version = "unstable-2021-11-07";
+  version = "unstable-2021-12-11";
 
   src = fetchFromGitHub {
     owner = "surge-synthesizer";
     repo = "surge";
-    rev = "ed93833eb44b177c977e3a7b878ffdd9bf9f24e5";
-    sha256 = "0b164659ksl6h5nn7jja5zccx2mwzibqs6b7hg8l98gpcy9fi5r2";
+    rev = "320f68543d0279c11cea8dc7f5170399cccc9602";
     fetchSubmodules = true;
+    sha256 = "sha256-Jcs5FpX5AZl72aKYNbRcfYqb2PRt0r1pQXk957xk0aM=";
   };
 
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ cairo libxkbcommon xcbutilcursor xcbutilkeysyms xcbutil libXrandr libXinerama libXcursor alsa-lib libjack2 ];
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
 
-  installPhase = ''
-    cd ..
-    cmake --build build --config Release --target install
-  '';
+  buildInputs = [
+    alsa-lib
+    freetype
+    libjack2
+    lv2
+    libX11
+    libXcursor
+    libXext
+    libXinerama
+    libXrandr
+  ];
+
+  cmakeFlags = [
+    "-DJUCE_SUPPORTS_LV2=ON"
+    "-DSURGE_JUCE_PATH=${juce-lv2}"
+  ];
 
-  doInstallCheck = false;
+  # JUCE dlopen's these at runtime, crashes without them
+  NIX_LDFLAGS = (toString [
+    "-lX11"
+    "-lXext"
+    "-lXcursor"
+    "-lXinerama"
+    "-lXrandr"
+  ]);
+
+  # see https://github.com/NixOS/nixpkgs/pull/149487#issuecomment-991747333
+  postPatch = ''
+    export XDG_DOCUMENTS_DIR=$(mktemp -d)
+  '';
 
   meta = with lib; {
     description = "LV2 & VST3 synthesizer plug-in (previously released as Vember Audio Surge)";
diff --git a/pkgs/applications/audio/tenacity/default.nix b/pkgs/applications/audio/tenacity/default.nix
index 160243cdf34f8..fbf13c1748ff4 100644
--- a/pkgs/applications/audio/tenacity/default.nix
+++ b/pkgs/applications/audio/tenacity/default.nix
@@ -35,7 +35,7 @@
 , linuxHeaders
 , at-spi2-core
 , dbus
-, epoxy
+, libepoxy
 , libXdmcp
 , libXtst
 , libpthreadstubs
@@ -128,7 +128,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals stdenv.isLinux [
     at-spi2-core
     dbus
-    epoxy
+    libepoxy
     libXdmcp
     libXtst
     libpthreadstubs
diff --git a/pkgs/applications/audio/transcribe/default.nix b/pkgs/applications/audio/transcribe/default.nix
index 9061c38f19c31..d10a0d8794180 100644
--- a/pkgs/applications/audio/transcribe/default.nix
+++ b/pkgs/applications/audio/transcribe/default.nix
@@ -1,27 +1,64 @@
-{ stdenv, fetchzip, lib, wrapGAppsHook, alsa-lib, atk, cairo, gdk-pixbuf
-, glib, gst_all_1,  gtk3, libSM, libX11, libpng12, pango, zlib }:
+{ stdenv
+, fetchzip
+, lib
+, wrapGAppsHook
+, alsa-lib
+, atk
+, cairo
+, fontconfig
+, gdk-pixbuf
+, glib
+, gst_all_1
+, gtk3
+, libSM
+, libX11
+, libXtst
+, libpng12
+, pango
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "transcribe";
-  version = "9.00";
+  version = "9.10";
 
-  src = if stdenv.hostPlatform.system == "x86_64-linux" then
-    fetchzip {
-      url = "https://www.seventhstring.com/xscribe/downlo/xscsetup-9.00.0.tar.gz";
-      sha256 = "0mgjx0hnps3jmc2d9hkskxbmwcqf7f9jx595j5sc501br1l84sdf";
-    }
-  else throw "Platform not supported";
+  src =
+    if stdenv.hostPlatform.system == "x86_64-linux" then
+      fetchzip
+        {
+          url = "https://www.seventhstring.com/xscribe/downlo/xscsetup-9.10.0.tar.gz";
+          sha256 = "sha256-6+P2qdjyvCzwrXYgw2yeG+hu8W5t6E0RCZx6Znkvj3g=";
+        }
+    else throw "Platform not supported";
 
   nativeBuildInputs = [ wrapGAppsHook ];
 
-  buildInputs = with gst_all_1; [ gst-plugins-base gst-plugins-good
-    gst-plugins-bad gst-plugins-ugly ];
+  buildInputs = with gst_all_1; [
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-bad
+    gst-plugins-ugly
+  ];
 
   dontPatchELF = true;
 
   libPath = with gst_all_1; lib.makeLibraryPath [
-    stdenv.cc.cc glib gtk3 atk pango cairo gdk-pixbuf alsa-lib
-    libX11 libSM libpng12 gstreamer gst-plugins-base zlib
+    stdenv.cc.cc
+    glib
+    gtk3
+    atk
+    fontconfig
+    pango
+    cairo
+    gdk-pixbuf
+    alsa-lib
+    libX11
+    libXtst
+    libSM
+    libpng12
+    gstreamer
+    gst-plugins-base
+    zlib
   ];
 
   installPhase = ''
diff --git a/pkgs/applications/audio/vmpk/default.nix b/pkgs/applications/audio/vmpk/default.nix
index a9b1ac96f1065..a68ed3ceae5dd 100644
--- a/pkgs/applications/audio/vmpk/default.nix
+++ b/pkgs/applications/audio/vmpk/default.nix
@@ -5,11 +5,11 @@
 
 mkDerivation rec {
   pname = "vmpk";
-  version = "0.8.4";
+  version = "0.8.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-SSdD8dyn6abti8qkd7N5n8EYr5yMW+EPYUnRm7S9CE4=";
+    sha256 = "sha256-SPome4UKGOWQLT9RMoGZ0wUdwodG8mSIaGFCg0i5CmY=";
   };
 
   nativeBuildInputs = [ cmake pkg-config qttools docbook-xsl-nons ];
diff --git a/pkgs/applications/audio/zrythm/default.nix b/pkgs/applications/audio/zrythm/default.nix
index ee6eef5527f9d..00af572215ee1 100644
--- a/pkgs/applications/audio/zrythm/default.nix
+++ b/pkgs/applications/audio/zrythm/default.nix
@@ -12,7 +12,7 @@
 , cmake
 , curl
 , dconf
-, epoxy
+, libepoxy
 , ffmpeg
 , fftw
 , fftwFloat
@@ -94,7 +94,7 @@ stdenv.mkDerivation rec {
     chromaprint
     curl
     dconf
-    epoxy
+    libepoxy
     ffmpeg
     fftw
     fftwFloat
@@ -141,12 +141,15 @@ stdenv.mkDerivation rec {
     # "-Duser_manual=true" # needs sphinx-intl
     "-Dlsp_dsp=disabled"
     "-Db_lto=false"
+    "-Ddebug=true"
   ];
 
   NIX_LDFLAGS = ''
     -lfftw3_threads -lfftw3f_threads
   '';
 
+  dontStrip = true;
+
   postPatch = ''
     chmod +x scripts/meson-post-install.sh
     patchShebangs ext/sh-manpage-completions/run.sh scripts/generic_guile_wrap.sh \
diff --git a/pkgs/applications/backup/deja-dup/default.nix b/pkgs/applications/backup/deja-dup/default.nix
index 337ee31f03d63..5e0e6580bf9be 100644
--- a/pkgs/applications/backup/deja-dup/default.nix
+++ b/pkgs/applications/backup/deja-dup/default.nix
@@ -21,14 +21,14 @@
 
 stdenv.mkDerivation rec {
   pname = "deja-dup";
-  version = "42.7";
+  version = "42.8";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = pname;
     rev = version;
-    sha256 = "1q66wccnph78cp1r5mln2iq4bcqdrrchxq3c1pjrzkmzwc6l93gz";
+    sha256 = "sha256-DkRqZAj47wzt4lDvhAbO0PYcRA7oHEo2k69IMLOD3Ps=";
   };
 
   patches = [
diff --git a/pkgs/applications/backup/vorta/default.nix b/pkgs/applications/backup/vorta/default.nix
index 675ebf7d349bb..7434c12cba295 100644
--- a/pkgs/applications/backup/vorta/default.nix
+++ b/pkgs/applications/backup/vorta/default.nix
@@ -8,13 +8,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "vorta";
-  version = "0.7.8";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "borgbase";
     repo = "vorta";
     rev = "v${version}";
-    sha256 = "sha256-qNBswy1dsCE6TEQLr/r7nnZWegDD8BD9pMkcpcuT7Q0=";
+    sha256 = "sha256-ut4HCfLU/P22y5QbNakTV4d4CnFRxJvn+cnJ0ZGpTlw=";
   };
 
   nativeBuildInputs = [ wrapQtAppsHook ];
@@ -24,7 +24,6 @@ python3Packages.buildPythonApplication rec {
     peewee
     pyqt5
     python-dateutil
-    APScheduler
     psutil
     qdarkstyle
     secretstorage
diff --git a/pkgs/applications/blockchains/alfis/default.nix b/pkgs/applications/blockchains/alfis/default.nix
index ee64b7907aa02..2c8526c6292e6 100644
--- a/pkgs/applications/blockchains/alfis/default.nix
+++ b/pkgs/applications/blockchains/alfis/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "alfis";
-  version = "0.6.9";
+  version = "0.6.10";
 
   src = fetchFromGitHub {
     owner = "Revertron";
     repo = "Alfis";
     rev = "v${version}";
-    sha256 = "1nnzy46hp1q9kcxzjx24d60frjhn3x46nksbqvdfcfrfn5pqrabh";
+    sha256 = "sha256-JJTU3wZ3cG5TmgHYShWJaNAZBA4z3qZXPfb7WUX6/80=";
   };
 
-  cargoSha256 = "02liz8sqnqla77bqxfa8hj93qfj2x482q2bijz66rmazfig3b045";
+  cargoSha256 = "sha256-BsFe1Fp+Q5Gqa1w4xov0tVLDKV7S+6b5fKBl09ggLB0=";
 
   checkFlags = [
     # these want internet access, disable them
diff --git a/pkgs/applications/blockchains/bisq-desktop/default.nix b/pkgs/applications/blockchains/bisq-desktop/default.nix
index 2781e69c56ad7..a215e600bbd90 100644
--- a/pkgs/applications/blockchains/bisq-desktop/default.nix
+++ b/pkgs/applications/blockchains/bisq-desktop/default.nix
@@ -35,11 +35,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "bisq-desktop";
-  version = "1.7.5";
+  version = "1.8.0";
 
   src = fetchurl {
     url = "https://github.com/bisq-network/bisq/releases/download/v${version}/Bisq-64bit-${version}.deb";
-    sha256 = "0mwlmya53xaps8x8c5cvk9zxy0ddijkrba8x3jp2glql34wac3ri";
+    sha256 = "1q6x6w8mp5ax852hlvi2p61xgckb2lpr2ml21a9mfs9421b6m8h2";
   };
 
   nativeBuildInputs = [ makeWrapper copyDesktopItems imagemagick dpkg gnutar zip xz ];
diff --git a/pkgs/applications/blockchains/btcpayserver/default.nix b/pkgs/applications/blockchains/btcpayserver/default.nix
index 0d9da9b3cedc6..691979c4de5d7 100644
--- a/pkgs/applications/blockchains/btcpayserver/default.nix
+++ b/pkgs/applications/blockchains/btcpayserver/default.nix
@@ -3,13 +3,13 @@
 
 buildDotnetModule rec {
   pname = "btcpayserver";
-  version = "1.3.3";
+  version = "1.3.7";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-IBdQlVZx7Bt4y7B7FvHJihHUWO15a89hs+SGwcobDqY=";
+    sha256 = "sha256-W8WRw42hMNUaQZlfrl73REGIvLcj6Vso9Axx53ENkx0=";
   };
 
   projectFile = "BTCPayServer/BTCPayServer.csproj";
diff --git a/pkgs/applications/blockchains/btcpayserver/deps.nix b/pkgs/applications/blockchains/btcpayserver/deps.nix
index c3406494aeb44..b0bbd448d55a1 100644
--- a/pkgs/applications/blockchains/btcpayserver/deps.nix
+++ b/pkgs/applications/blockchains/btcpayserver/deps.nix
@@ -1,2091 +1,2096 @@
 { fetchNuGet }: [
   (fetchNuGet {
-    name = "AngleSharp.Css";
+    pname = "AngleSharp.Css";
     version = "0.14.2";
     sha256 = "1d34a8ab5dri4wlw07jvk7b1z0d0zizwihwpdfva3sxhb4279ahd";
   })
   (fetchNuGet {
-    name = "AngleSharp";
+    pname = "AngleSharp";
     version = "0.14.0";
     sha256 = "1zgwhh1fp2mmaplvpgm86rpmslix3wqfxf0d3hxx1gxwfgr6wxm6";
   })
   (fetchNuGet {
-    name = "AWSSDK.Core";
+    pname = "AWSSDK.Core";
     version = "3.3.104.14";
     sha256 = "157694kb63z1szbsv861515fvjv7amrjrfmgbm3idpyw31afk650";
   })
   (fetchNuGet {
-    name = "AWSSDK.S3";
+    pname = "AWSSDK.S3";
     version = "3.3.110.10";
     sha256 = "1lf1hfbx792dpa1hxgn0a0jrrvldd16hgbxx229dk2qcz5qlnc38";
   })
   (fetchNuGet {
-    name = "BIP78.Sender";
+    pname = "BIP78.Sender";
     version = "0.2.2";
     sha256 = "12pm2s35c0qzc06099q2z1pxwq94rq85n74yz8fs8gwvm2ksgp4p";
   })
   (fetchNuGet {
-    name = "BTCPayServer.Hwi";
+    pname = "BTCPayServer.Hwi";
     version = "2.0.2";
     sha256 = "0lh3n1qncqs4kbrmx65xs271f0d9c7irrs9qnsa9q51cbbqbljh9";
   })
   (fetchNuGet {
-    name = "BTCPayServer.Lightning.All";
-    version = "1.2.14";
-    sha256 = "0avb0jlisx1nv0ary2nc82aamn95qmrrqshwbk8szzjqgvxzv4k2";
+    pname = "BTCPayServer.Lightning.All";
+    version = "1.2.16";
+    sha256 = "1dq8xzvg51iskvak28ishxm98b5r1qlybh2r36a079764vl5prn1";
   })
   (fetchNuGet {
-    name = "BTCPayServer.Lightning.Charge";
+    pname = "BTCPayServer.Lightning.Charge";
     version = "1.2.8";
     sha256 = "0ldk7kyipgmg0mj1444ins5n014z149j1qa40h12pncr6q1fb0xf";
   })
   (fetchNuGet {
-    name = "BTCPayServer.Lightning.CLightning";
+    pname = "BTCPayServer.Lightning.CLightning";
     version = "1.2.9";
     sha256 = "0r855lnh6cyj6hpwhdpdhpp39332v7lmk93ri2q8gs9lsnwdyjr8";
   })
   (fetchNuGet {
-    name = "BTCPayServer.Lightning.Common";
+    pname = "BTCPayServer.Lightning.Common";
     version = "1.2.7";
     sha256 = "1hz4bn3aw537r253ipdpa6sydwhb6dh3r82xp1jizn9a6mnw54x6";
   })
   (fetchNuGet {
-    name = "BTCPayServer.Lightning.Eclair";
-    version = "1.2.7";
-    sha256 = "1h15gic45wps4nvmxyfmfils9nicbz3xkli705hq69g0mafy0f23";
+    pname = "BTCPayServer.Lightning.Eclair";
+    version = "1.2.8";
+    sha256 = "01462fjc0zmgafqk7w0cl880wir9mah90r68xyw607ij28pdc2zf";
   })
   (fetchNuGet {
-    name = "BTCPayServer.Lightning.LND";
-    version = "1.2.10";
-    sha256 = "10m8kw7598l9ap6y17znvm43cz5ca6qxbrh105knyb6hfzpsyqwp";
+    pname = "BTCPayServer.Lightning.LND";
+    version = "1.2.12";
+    sha256 = "1dqg682lxv61rfwxxqqlc5fal8y5sz7dmf7p70rg7l9csgzgn67r";
   })
   (fetchNuGet {
-    name = "BTCPayServer.Lightning.Ptarmigan";
+    pname = "BTCPayServer.Lightning.Ptarmigan";
     version = "1.2.7";
     sha256 = "1mmj8bi32kzgda8v7qdfpm2qlpffv5223c2xnq7351h8ih4bbcvb";
   })
   (fetchNuGet {
-    name = "BuildBundlerMinifier";
+    pname = "BuildBundlerMinifier";
     version = "3.2.449";
     sha256 = "1dcjlfl5w2vfppx2hq3jj6xy24id2x3hcajwylhphlz9jw2bnhsv";
   })
   (fetchNuGet {
-    name = "BundlerMinifier.Core";
+    pname = "BundlerMinifier.Core";
     version = "3.2.435";
     sha256 = "17338x8ycr7hjzq16kr0ri30k19802hsn1sy259k3v694mxk59vd";
   })
   (fetchNuGet {
-    name = "BundlerMinifier.TagHelpers";
+    pname = "BundlerMinifier.TagHelpers";
     version = "3.2.435";
     sha256 = "0ksmby0lzgsxkv0xfzr840262kcqra9vds91mcx0rf20blksfvsk";
   })
   (fetchNuGet {
-    name = "Common.Logging.Core";
+    pname = "Common.Logging.Core";
     version = "3.4.1";
     sha256 = "06h80c7l12nh6gnkzskcs4w8741xhprv72vf88f33ilzfy37h5jy";
   })
   (fetchNuGet {
-    name = "CsvHelper";
+    pname = "CsvHelper";
     version = "15.0.5";
     sha256 = "01y8bhsnxghn3flz0pr11vj6wjrpmia8rpdrsp7kjfc1zmhqlgma";
   })
   (fetchNuGet {
-    name = "DigitalRuby.ExchangeSharp";
+    pname = "DigitalRuby.ExchangeSharp";
     version = "0.6.3";
     sha256 = "1vb7ahafcd3lcbiiz552aisilwm1yq3j600gkf1wik8vhvsk02fs";
   })
   (fetchNuGet {
-    name = "Fido2.AspNet";
+    pname = "Fido2.AspNet";
     version = "2.0.1";
     sha256 = "1d6bjyck3mlhb9b4c75xhzr2pcs47vdqg2ayi5wnjh1aszyam3nq";
   })
   (fetchNuGet {
-    name = "Fido2.Models";
+    pname = "Fido2.Models";
     version = "2.0.1";
     sha256 = "0llpzkik82n5gpgjawx181j85d2lizimkbdkxj1wyrjvxb2xbg3q";
   })
   (fetchNuGet {
-    name = "Fido2";
+    pname = "Fido2";
     version = "2.0.1";
     sha256 = "1s829n970lxngbhac9lvarwa9n9hqxr79kwv8i12amnmg6ir8ny5";
   })
   (fetchNuGet {
-    name = "Google.Api.Gax.Rest";
+    pname = "Google.Api.Gax.Rest";
     version = "2.5.0";
     sha256 = "1zkjl5zh6qwdz4qmnxnk5877pas638i2qi25znilhqqf3mrkp0rp";
   })
   (fetchNuGet {
-    name = "Google.Api.Gax";
+    pname = "Google.Api.Gax";
     version = "2.5.0";
     sha256 = "0q6pi53px998i3gdndla8v0zqdpyi9gnsy9mdcfpkrg09vfbdsl9";
   })
   (fetchNuGet {
-    name = "Google.Apis.Auth";
+    pname = "Google.Apis.Auth";
     version = "1.35.1";
     sha256 = "1qdnd1nq9bfgyljmiww91pfi0iz1n29rz2dlizhxcijqya2ldha3";
   })
   (fetchNuGet {
-    name = "Google.Apis.Auth";
+    pname = "Google.Apis.Auth";
     version = "1.38.0";
     sha256 = "0x3bdwiyqjxw5df99bfasmsv09kb47wzisag938631cijl0g277y";
   })
   (fetchNuGet {
-    name = "Google.Apis.Core";
+    pname = "Google.Apis.Core";
     version = "1.35.1";
     sha256 = "01dfw2kxknlc5pm7x1q88lv9j979509lkkgvlffjry5bawsxsja4";
   })
   (fetchNuGet {
-    name = "Google.Apis.Core";
+    pname = "Google.Apis.Core";
     version = "1.38.0";
     sha256 = "012gslhnx65vqfyzjnqx4bqk9kb8bwbx966q2f9fdgrfcn26gj9j";
   })
   (fetchNuGet {
-    name = "Google.Apis.Storage.v1";
+    pname = "Google.Apis.Storage.v1";
     version = "1.38.0.1470";
     sha256 = "0mfrz7fmpfbjvp4zfpjasmnfbgxgxrrjkf8xgp9p6h9g8qh2f2h2";
   })
   (fetchNuGet {
-    name = "Google.Apis";
+    pname = "Google.Apis";
     version = "1.35.1";
     sha256 = "1022l8m7v9f3rkjc9l11mkzwsbmqx9sk5f4aym035vn9hdr16d49";
   })
   (fetchNuGet {
-    name = "Google.Apis";
+    pname = "Google.Apis";
     version = "1.38.0";
     sha256 = "01j3d1lv106cqw9n0lwgclrxghy852fsibv6av4xr03ivrkm8g40";
   })
   (fetchNuGet {
-    name = "Google.Cloud.Storage.V1";
+    pname = "Google.Cloud.Storage.V1";
     version = "2.3.0";
     sha256 = "01jhrd6m6md8m28chzg2dkdfd4yris79j1xi7r1ydm1cfjhmlj64";
   })
   (fetchNuGet {
-    name = "HtmlSanitizer";
+    pname = "HtmlSanitizer";
     version = "5.0.372";
     sha256 = "1gllp58vdbql2ybwf05i2178x7p4g8zyyk64317d1pyss5217g7r";
   })
   (fetchNuGet {
-    name = "libsodium";
+    pname = "libsodium";
     version = "1.0.18";
     sha256 = "15qzl5k31yaaapqlijr336lh4lzz1qqxlimgxy8fdyig8jdmgszn";
   })
   (fetchNuGet {
-    name = "LNURL";
+    pname = "LNURL";
     version = "0.0.14";
     sha256 = "0b2v87k3yi2lyka5zy3sbvxsa7yp04nn72l7dk27cm9i1d9914sq";
   })
   (fetchNuGet {
-    name = "McMaster.NETCore.Plugins.Mvc";
+    pname = "McMaster.NETCore.Plugins.Mvc";
     version = "1.4.0";
     sha256 = "07i0p6236hyh1c3cb5v6zkayq5807rd6msc341v2jh6yd5radasy";
   })
   (fetchNuGet {
-    name = "McMaster.NETCore.Plugins";
+    pname = "McMaster.NETCore.Plugins";
     version = "1.4.0";
     sha256 = "1k2qz0qnf2b1kfwbzcynivy93jm7dcwl866d0fl7qlgq5vql7niy";
   })
   (fetchNuGet {
-    name = "Microsoft.AspNet.SignalR.Client";
+    pname = "Microsoft.AspNet.SignalR.Client";
     version = "2.3.0";
     sha256 = "1xyj8b88bc6sc7fxgqyalzfmlfgbagfk7adyk29if9hr8ki9bic4";
   })
   (fetchNuGet {
-    name = "Microsoft.AspNet.WebApi.Client";
+    pname = "Microsoft.AspNet.WebApi.Client";
     version = "5.2.7";
     sha256 = "1j0wbdmycj5xbk06p32f7xrddc40sbj3yca4d7ywg611yk26mvi1";
   })
   (fetchNuGet {
-    name = "Microsoft.AspNetCore.Cryptography.Internal";
+    pname = "Microsoft.AspNetCore.Cryptography.Internal";
     version = "3.1.19";
     sha256 = "1b20hksk2qk2jnkwin4g0n9ap3ma7724pd518fh9qcakf7vfpkl1";
   })
   (fetchNuGet {
-    name = "Microsoft.AspNetCore.Cryptography.KeyDerivation";
+    pname = "Microsoft.AspNetCore.Cryptography.KeyDerivation";
     version = "3.1.19";
     sha256 = "1ksi2h3904932igh1g27l91fqdsfxg8zr6y82ym8pqb62m0906a4";
   })
   (fetchNuGet {
-    name = "Microsoft.AspNetCore.Hosting.Abstractions";
+    pname = "Microsoft.AspNetCore.Hosting.Abstractions";
     version = "2.0.0";
     sha256 = "0x6vw7kiy9z7cdmgbqav0d9wq66032wg39l2c9cv6xvxxvdpbkz7";
   })
   (fetchNuGet {
-    name = "Microsoft.AspNetCore.Hosting.Server.Abstractions";
+    pname = "Microsoft.AspNetCore.Hosting.Server.Abstractions";
     version = "2.0.0";
     sha256 = "1k4dr6l32swi8zasfvzxixnjvgbrra7v6lgpri0929vb3r5lagjb";
   })
   (fetchNuGet {
-    name = "Microsoft.AspNetCore.Http.Abstractions";
+    pname = "Microsoft.AspNetCore.Http.Abstractions";
     version = "2.0.0";
     sha256 = "1hgmnd5mj35g8cqq3mdhjf9cmi3wm5lqiyrj5mgfscnig6i686xr";
   })
   (fetchNuGet {
-    name = "Microsoft.AspNetCore.Http.Features";
+    pname = "Microsoft.AspNetCore.Http.Features";
     version = "2.0.0";
     sha256 = "1zk5ad3laa7ma83md8r80kijqzps6dcrvv0k1015nddfk1qd74s6";
   })
   (fetchNuGet {
-    name = "Microsoft.AspNetCore.Identity.EntityFrameworkCore";
+    pname = "Microsoft.AspNetCore.Identity.EntityFrameworkCore";
     version = "3.1.19";
     sha256 = "0sm7cpccpygwgplbkp0j1q5ilkkiw0dx76qwy3xharv4himakrfm";
   })
   (fetchNuGet {
-    name = "Microsoft.AspNetCore.JsonPatch";
+    pname = "Microsoft.AspNetCore.JsonPatch";
     version = "3.1.19";
     sha256 = "1fh3k85k988jw35sf5hvm6jwmvzmslzpfvf3jk3sn3f3s6gyk0an";
   })
   (fetchNuGet {
-    name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
+    pname = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
     version = "3.1.19";
     sha256 = "1nh08kjdc152m85ycwxn1q8r69f0l02p6cac6q57nzlyy5gyj2rs";
   })
   (fetchNuGet {
-    name = "Microsoft.AspNetCore.Mvc.Razor.Extensions";
+    pname = "Microsoft.AspNetCore.Mvc.Razor.Extensions";
     version = "3.1.19";
     sha256 = "1n22q10n9xlhcjxsm1apd0b7j3j97dd5jmpw6nvymwbv2bw88af4";
   })
   (fetchNuGet {
-    name = "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation";
+    pname = "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation";
     version = "3.1.19";
     sha256 = "1glmlgrwksv0h8g41wy43wv94ndllq4ihxhdaagig9szvivdh8c1";
   })
   (fetchNuGet {
-    name = "Microsoft.AspNetCore.Razor.Language";
+    pname = "Microsoft.AspNetCore.Razor.Language";
     version = "3.1.19";
     sha256 = "059v85f2qbj403wcnp5mspzvhkbf6d8hsjl26xvfd5s8svnaz4ax";
   })
   (fetchNuGet {
-    name = "Microsoft.Bcl.AsyncInterfaces";
+    pname = "Microsoft.Bcl.AsyncInterfaces";
     version = "1.1.1";
     sha256 = "0a1ahssqds2ympr7s4xcxv5y8jgxs7ahd6ah6fbgglj4rki1f1vw";
   })
   (fetchNuGet {
-    name = "Microsoft.Bcl.HashCode";
+    pname = "Microsoft.Bcl.HashCode";
     version = "1.1.1";
     sha256 = "0xwfph92p92d8hgrdiaka4cazqsjpg4ywfxfx6qbk3939f29kzl0";
   })
   (fetchNuGet {
-    name = "Microsoft.CodeAnalysis.Analyzers";
+    pname = "Microsoft.CodeAnalysis.Analyzers";
     version = "2.9.3";
     sha256 = "1kskwc9gyd2sx3zwx52qwfsl7s0xhaclmlnxvjsb4jgvpydv3xii";
   })
   (fetchNuGet {
-    name = "Microsoft.CodeAnalysis.Analyzers";
+    pname = "Microsoft.CodeAnalysis.Analyzers";
     version = "3.3.2";
     sha256 = "162vb5894zxps0cf5n9gc08an7gwybzz87allx3lsszvllr9ldx4";
   })
   (fetchNuGet {
-    name = "Microsoft.CodeAnalysis.Common";
+    pname = "Microsoft.CodeAnalysis.Common";
     version = "3.11.0";
     sha256 = "0pwidgg4ifm7cirdy3hf61dyvg6lk4vgb6q7lyb4y0h0b6mvkrcl";
   })
   (fetchNuGet {
-    name = "Microsoft.CodeAnalysis.Common";
+    pname = "Microsoft.CodeAnalysis.Common";
     version = "3.3.0";
     sha256 = "1vwhsp3pjgcfnpapkps9a3z9n2ryiv5bbhzycfljngj5grj63rg2";
   })
   (fetchNuGet {
-    name = "Microsoft.CodeAnalysis.CSharp";
+    pname = "Microsoft.CodeAnalysis.CSharp";
     version = "3.11.0";
     sha256 = "1h16b7dsp1mq7d7picyfhkssqr6xiyywi5x1fd4jwclyrvanyl81";
   })
   (fetchNuGet {
-    name = "Microsoft.CodeAnalysis.CSharp";
+    pname = "Microsoft.CodeAnalysis.CSharp";
     version = "3.3.0";
     sha256 = "09nmd5h1r2q0dwp1dfpn4anvs8sfi3rwcgpcv28lrhky8vc51424";
   })
   (fetchNuGet {
-    name = "Microsoft.CodeAnalysis.Razor";
+    pname = "Microsoft.CodeAnalysis.Razor";
     version = "3.1.19";
     sha256 = "18l0gcpl7i0bfnyzhpm7h72ng2h8bh46fr2azk7d3ns507gi3xmp";
   })
   (fetchNuGet {
-    name = "Microsoft.CodeCoverage";
+    pname = "Microsoft.CodeCoverage";
     version = "16.11.0";
     sha256 = "0f41l3kks6wk5vjaxpjh8m2flnrvlbvqgqflamhv8rfz4y8ifgdv";
   })
   (fetchNuGet {
-    name = "Microsoft.CSharp";
+    pname = "Microsoft.CSharp";
     version = "4.0.1";
     sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj";
   })
   (fetchNuGet {
-    name = "Microsoft.CSharp";
+    pname = "Microsoft.CSharp";
     version = "4.3.0";
     sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb";
   })
   (fetchNuGet {
-    name = "Microsoft.CSharp";
+    pname = "Microsoft.CSharp";
     version = "4.5.0";
     sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l";
   })
   (fetchNuGet {
-    name = "Microsoft.CSharp";
+    pname = "Microsoft.CSharp";
     version = "4.7.0";
     sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j";
   })
   (fetchNuGet {
-    name = "Microsoft.Data.Sqlite.Core";
+    pname = "Microsoft.Data.Sqlite.Core";
     version = "3.1.19";
     sha256 = "0ns3rrk011gjw4g1kwr625390yj0mcadb3py49750sji72my7l7s";
   })
   (fetchNuGet {
-    name = "Microsoft.DotNet.PlatformAbstractions";
+    pname = "Microsoft.DotNet.PlatformAbstractions";
     version = "2.0.4";
     sha256 = "1fdzln4im9hb55agzwchbfgm3vmngigmbpci5j89b0gqcxixmv8j";
   })
   (fetchNuGet {
-    name = "Microsoft.DotNet.PlatformAbstractions";
+    pname = "Microsoft.DotNet.PlatformAbstractions";
     version = "3.1.6";
     sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5";
   })
   (fetchNuGet {
-    name = "Microsoft.EntityFrameworkCore.Abstractions";
+    pname = "Microsoft.EntityFrameworkCore.Abstractions";
     version = "3.1.18";
     sha256 = "0d00d6wx2mm5bav39bjsikjq0sx6qmp183dbwimfda7wav2bwya8";
   })
   (fetchNuGet {
-    name = "Microsoft.EntityFrameworkCore.Abstractions";
+    pname = "Microsoft.EntityFrameworkCore.Abstractions";
     version = "3.1.19";
     sha256 = "0na2jgxs5k2gxqh99ha4v0blya3pwh2qha49iz0qkw0r3kq0vdvv";
   })
   (fetchNuGet {
-    name = "Microsoft.EntityFrameworkCore.Analyzers";
+    pname = "Microsoft.EntityFrameworkCore.Analyzers";
     version = "3.1.19";
     sha256 = "02xjz4c6f71mcmdwihi9klrqm28xk84x19vcqi8cgpw50q7d0rly";
   })
   (fetchNuGet {
-    name = "Microsoft.EntityFrameworkCore.Design";
+    pname = "Microsoft.EntityFrameworkCore.Design";
     version = "3.1.19";
     sha256 = "128md0ijqa1wvpdicf09i7kcb2aq2b07skc6j0vddz2jhcbi0irr";
   })
   (fetchNuGet {
-    name = "Microsoft.EntityFrameworkCore.Relational";
+    pname = "Microsoft.EntityFrameworkCore.Relational";
     version = "3.1.18";
     sha256 = "0mlq9gmxrmix68mdh0lv803cx15lzrhs5d9622vj8wwdlngg3xdx";
   })
   (fetchNuGet {
-    name = "Microsoft.EntityFrameworkCore.Relational";
+    pname = "Microsoft.EntityFrameworkCore.Relational";
     version = "3.1.19";
     sha256 = "13rbnd441r4zb52y99zwida0n0phvvw7hmccjy2kpnk1jfrr8xi1";
   })
   (fetchNuGet {
-    name = "Microsoft.EntityFrameworkCore.Sqlite.Core";
+    pname = "Microsoft.EntityFrameworkCore.Sqlite.Core";
     version = "3.1.19";
     sha256 = "1w8ja5daglnr3ycfwlyskrnacb66p8yz730k838v6bpmpsdybn71";
   })
   (fetchNuGet {
-    name = "Microsoft.EntityFrameworkCore.Sqlite";
+    pname = "Microsoft.EntityFrameworkCore.Sqlite";
     version = "3.1.19";
     sha256 = "0iwwa44dr2lg9mh5hmnpnkzbhi5v3vi6xy3xlnqg4hja37ji0xyw";
   })
   (fetchNuGet {
-    name = "Microsoft.EntityFrameworkCore";
+    pname = "Microsoft.EntityFrameworkCore";
     version = "3.1.19";
     sha256 = "0gl43zk7ashjx49h35w58cn7dfl1ap3nyq9ws8575jcjhcx3c94h";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Caching.Abstractions";
+    pname = "Microsoft.Extensions.Caching.Abstractions";
     version = "2.2.0";
     sha256 = "0hhxc5dp52faha1bdqw0k426zicsv6x1kfqi30m9agr0b2hixj52";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Caching.Abstractions";
+    pname = "Microsoft.Extensions.Caching.Abstractions";
     version = "3.1.19";
     sha256 = "1y1is16yl69ja67i9n98r44cr0z8b8f8k31d5ighi9djj4yhz4k2";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Caching.Memory";
+    pname = "Microsoft.Extensions.Caching.Memory";
     version = "3.1.19";
     sha256 = "1iysxrmchw5ripyrcfi4nv5a00b9a7agsgvbb7y9fwbfq838v3mp";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration.Abstractions";
+    pname = "Microsoft.Extensions.Configuration.Abstractions";
     version = "1.1.2";
     sha256 = "0z83kxfzsgqlshg4x1mhdnhlrprrwsgnnibvwk257drzy9079994";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration.Abstractions";
+    pname = "Microsoft.Extensions.Configuration.Abstractions";
     version = "2.0.0";
     sha256 = "1ilz2yrgg9rbjyhn6a5zh9pr51nmh11z7sixb4p7vivgydj9gxwf";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration.Abstractions";
+    pname = "Microsoft.Extensions.Configuration.Abstractions";
     version = "2.1.0";
     sha256 = "03gzlr3z9j1xnr1k6y91zgxpz3pj27i3zsvjwj7i8jqnlqmk7pxd";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration.Abstractions";
+    pname = "Microsoft.Extensions.Configuration.Abstractions";
     version = "3.1.19";
     sha256 = "19s5dpswyad55p191280510sb8cr2b6zyx9zlx79p0lq4zaxwaq6";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration.Abstractions";
+    pname = "Microsoft.Extensions.Configuration.Abstractions";
     version = "3.1.5";
     sha256 = "03jwqjrfyx11ax19bq84c28qzaiyj4whrx7vayy4hr7sv0p28h8k";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration.Binder";
+    pname = "Microsoft.Extensions.Configuration.Binder";
     version = "2.0.0";
     sha256 = "1prvdbma6r18n5agbhhabv6g357p1j70gq4m9g0vs859kf44nrgc";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration.Binder";
+    pname = "Microsoft.Extensions.Configuration.Binder";
     version = "3.1.19";
     sha256 = "0dw1qiyc8j7rk13x6wfm1xnc7drnlvk8xv607hja0af2m0y7a3p2";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration.Binder";
+    pname = "Microsoft.Extensions.Configuration.Binder";
     version = "3.1.5";
     sha256 = "0310pvrwbbqak7k4s32syryqxlkwli8w8bwlpnqmz42svh2302wv";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration.EnvironmentVariables";
+    pname = "Microsoft.Extensions.Configuration.EnvironmentVariables";
     version = "2.1.0";
     sha256 = "0xx3idb1l5y1da5zynlys5gyarijmw5pc9hgci8xdxbrcv6rzbjb";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration.FileExtensions";
+    pname = "Microsoft.Extensions.Configuration.FileExtensions";
     version = "2.1.0";
     sha256 = "1lz2xwm63clbh9dfhmygbqvcp4dsrwh5jihv82dmqd5h7lqngl40";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration.Ini";
+    pname = "Microsoft.Extensions.Configuration.Ini";
     version = "2.1.0";
     sha256 = "0bchsljywcq36si4zs2dcx2gj8x98ww93dh2bx2z6x5ilxyjnfip";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration";
+    pname = "Microsoft.Extensions.Configuration";
     version = "2.0.0";
     sha256 = "0yssxq9di5h6xw2cayp5hj3l9b2p0jw9wcjz73rwk4586spac9s9";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration";
+    pname = "Microsoft.Extensions.Configuration";
     version = "2.1.0";
     sha256 = "04rjl38wlr1jjjpbzgf64jp0ql6sbzbil0brwq9mgr3hdgwd7vx2";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration";
+    pname = "Microsoft.Extensions.Configuration";
     version = "3.1.19";
     sha256 = "04zadl7q5vcak9d77jm5ivfzhhp2zvz5apywvfzrca4h0q38fs45";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration";
+    pname = "Microsoft.Extensions.Configuration";
     version = "3.1.5";
     sha256 = "1i7zm8ghgxwp655anyfm910qm7rcpvrz48fxjyzw9w63hj4sv6bk";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+    pname = "Microsoft.Extensions.DependencyInjection.Abstractions";
     version = "2.0.0";
     sha256 = "1pwrfh9b72k9rq6mb2jab5qhhi225d5rjalzkapiayggmygc8nhz";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+    pname = "Microsoft.Extensions.DependencyInjection.Abstractions";
     version = "2.1.0";
     sha256 = "0c0cx8r5xkjpxmcfp51959jnp55qjvq28d9vaslk08avvi1by12s";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+    pname = "Microsoft.Extensions.DependencyInjection.Abstractions";
     version = "3.1.19";
     sha256 = "0claq9nna6p30zbvd25bn1ild9f3x50d5fxfbq9fsp464rq70b2y";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+    pname = "Microsoft.Extensions.DependencyInjection.Abstractions";
     version = "3.1.5";
     sha256 = "1wkf8ajh4pj6g3wwd18g3hjc3lqqny8052rl373ddcardxrs2gvn";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.DependencyInjection";
+    pname = "Microsoft.Extensions.DependencyInjection";
     version = "2.0.0";
     sha256 = "018izzgykaqcliwarijapgki9kp2c560qv8qsxdjywr7byws5apq";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.DependencyInjection";
+    pname = "Microsoft.Extensions.DependencyInjection";
     version = "3.1.19";
     sha256 = "0fsvv5jl95kmdxc4c7b15xanlq3fmfls556m8ghbqqikrgkqhz8m";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.DependencyModel";
+    pname = "Microsoft.Extensions.DependencyModel";
     version = "2.0.4";
     sha256 = "041i1vlcibpzgalxxzdk81g5pgmqvmz2g61k0rqa2sky0wpvijx9";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.DependencyModel";
+    pname = "Microsoft.Extensions.DependencyModel";
     version = "3.1.6";
     sha256 = "13m2na8a5mglbbjjp0dxb8ifkf23grkyk1g8585mr7v6cbj098ac";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.DependencyModel";
+    pname = "Microsoft.Extensions.DependencyModel";
     version = "5.0.0";
     sha256 = "1mma1zxi0b40972cwfvkj9y0w9r7vjbi74784jzcb22pric00k5x";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.FileProviders.Abstractions";
+    pname = "Microsoft.Extensions.FileProviders.Abstractions";
     version = "2.0.0";
     sha256 = "0d6y5isjy6jpf4w3f3w89cwh9p40glzhwvm7cwhx05wkqd8bk9w4";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.FileProviders.Abstractions";
+    pname = "Microsoft.Extensions.FileProviders.Abstractions";
     version = "2.1.0";
     sha256 = "1sxls5f5cgb0wr8cwb05skqmz074683hrhmd3hhq6m5dasnzb8n3";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.FileProviders.Physical";
+    pname = "Microsoft.Extensions.FileProviders.Physical";
     version = "2.1.0";
     sha256 = "1firpsl5bk219i9gdfgiqw1zm68146h1dzx9hvawfpw9slfaa56w";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.FileSystemGlobbing";
+    pname = "Microsoft.Extensions.FileSystemGlobbing";
     version = "2.1.0";
     sha256 = "1d2622qp22x1cnlwycnzjbc3sgi9jria26fk78zwzsa08npa3avv";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Hosting.Abstractions";
+    pname = "Microsoft.Extensions.Hosting.Abstractions";
     version = "2.0.0";
     sha256 = "056wgjcdzvz1qwb26xv6hgxq4xya56qiimhk30v8an8cgsrjk3mc";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Hosting.Abstractions";
+    pname = "Microsoft.Extensions.Hosting.Abstractions";
     version = "2.1.0";
     sha256 = "04vm9mdjjzg3lpp2rzpgkpn8h5bzdl3bwcr22lshd3kp602ws4k9";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Identity.Core";
+    pname = "Microsoft.Extensions.Identity.Core";
     version = "3.1.19";
     sha256 = "14mywrm6mv7hzfappgdrmwwk97a4qpfkir5a55443awy8wl3bylr";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Identity.Stores";
+    pname = "Microsoft.Extensions.Identity.Stores";
     version = "3.1.19";
     sha256 = "0pkrhf1vffll986hh49gyvfdqn1vnjd0qnpfkag2b76d681xlvgg";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Logging.Abstractions";
+    pname = "Microsoft.Extensions.Logging.Abstractions";
     version = "1.0.0";
     sha256 = "1sh9bidmhy32gkz6fkli79mxv06546ybrzppfw5v2aq0bda1ghka";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Logging.Abstractions";
+    pname = "Microsoft.Extensions.Logging.Abstractions";
     version = "1.1.2";
     sha256 = "0j9b4z3pf8a5xphx3ksn6jm01rf4z001vfll5kcbxw995xcidjw1";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Logging.Abstractions";
+    pname = "Microsoft.Extensions.Logging.Abstractions";
     version = "2.0.0";
     sha256 = "1x5isi71z02khikzvm7vaschb006pqqrsv86ky1x08a4hir4s43h";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Logging.Abstractions";
+    pname = "Microsoft.Extensions.Logging.Abstractions";
     version = "2.1.0";
     sha256 = "1gvgif1wcx4k6pv7gc00qv1hid945jdywy1s50s33q0hfd91hbnj";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Logging.Abstractions";
+    pname = "Microsoft.Extensions.Logging.Abstractions";
     version = "3.1.19";
     sha256 = "07jnqb6518xrw086rqlc28ms80d57xg0pl5x72032rk2x5x8hhnn";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Logging.Abstractions";
+    pname = "Microsoft.Extensions.Logging.Abstractions";
     version = "3.1.5";
     sha256 = "0lr22hlf52csrna9ly2lbz3y1agfgdlg7rvsqjg7ik488dhkmhji";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Logging.Filter";
+    pname = "Microsoft.Extensions.Logging.Filter";
     version = "1.1.2";
     sha256 = "1pip87q89376xxpi3r5pf9vxhqxx21qrp179fbldbkr2m1577k9m";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Logging";
+    pname = "Microsoft.Extensions.Logging";
     version = "2.0.0";
     sha256 = "1jkwjcq1ld9znz1haazk8ili2g4pzfdp6i7r7rki4hg3jcadn386";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Logging";
+    pname = "Microsoft.Extensions.Logging";
     version = "3.1.19";
     sha256 = "0j2874x847xa1nfbppjn10cnxd486f6lwy53mxmansvlmp96h2sn";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Options.ConfigurationExtensions";
+    pname = "Microsoft.Extensions.Options.ConfigurationExtensions";
     version = "2.0.0";
     sha256 = "1isc3rjbzz60f7wbmgcwslx5d10hm5hisnk7v54vfi2bz7132gll";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Options.ConfigurationExtensions";
+    pname = "Microsoft.Extensions.Options.ConfigurationExtensions";
     version = "3.1.5";
     sha256 = "10w78fj2jpmghvprz6b046xcr68zzp6x550a7m1iivn0h7a3l7pi";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Options";
+    pname = "Microsoft.Extensions.Options";
     version = "2.0.0";
     sha256 = "0g4zadlg73f507krilhaaa7h0jdga216syrzjlyf5fdk25gxmjqh";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Options";
+    pname = "Microsoft.Extensions.Options";
     version = "3.1.19";
     sha256 = "1jm7rd2sbfscyfysvl8zcaypyzpd6d5w52ha2npa9c7q84cmn4r9";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Options";
+    pname = "Microsoft.Extensions.Options";
     version = "3.1.5";
     sha256 = "0rhqyqa7vhlmz2g0250zhypaayvckx4dv89micdg521cpvr5arpr";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.PlatformAbstractions";
+    pname = "Microsoft.Extensions.PlatformAbstractions";
     version = "1.1.0";
     sha256 = "0r4j8v2vvp3kalvb11ny9cvpls3nrvqj0c81rxbkh99ynd2dbscp";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Primitives";
+    pname = "Microsoft.Extensions.Primitives";
     version = "1.1.1";
     sha256 = "0rcwxz1r89y96s8k3bmg0v6zdqanqfp09khy5l99wnl777y15g7x";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Primitives";
+    pname = "Microsoft.Extensions.Primitives";
     version = "2.0.0";
     sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Primitives";
+    pname = "Microsoft.Extensions.Primitives";
     version = "2.1.0";
     sha256 = "1r9gzwdfmb8ysnc4nzmyz5cyar1lw0qmizsvrsh252nhlyg06nmb";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Primitives";
+    pname = "Microsoft.Extensions.Primitives";
     version = "2.2.0";
     sha256 = "0znah6arbcqari49ymigg3wiy2hgdifz8zsq8vdc3ynnf45r7h0c";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Primitives";
+    pname = "Microsoft.Extensions.Primitives";
     version = "3.1.19";
     sha256 = "0vcwwqqfwm5vj87psmic6mxix3prgkzw8sqbg5m1c2q662kby380";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Primitives";
+    pname = "Microsoft.Extensions.Primitives";
     version = "3.1.5";
     sha256 = "0n2pk1sy8ikd29282sx4ps9r1wnhzgg4nwmkka9ypjizd8lkkk2m";
   })
   (fetchNuGet {
-    name = "Microsoft.IdentityModel.JsonWebTokens";
+    pname = "Microsoft.IdentityModel.JsonWebTokens";
     version = "6.6.0";
     sha256 = "06z5a1jpqpdd1pix85is7kkpn4v0l4an909skji2p8gm09p5sfyv";
   })
   (fetchNuGet {
-    name = "Microsoft.IdentityModel.Logging";
+    pname = "Microsoft.IdentityModel.Logging";
     version = "6.6.0";
     sha256 = "1mpkx544cbxws1a22zwxbp3lqqamcc3x915l23spsxqvgr02jjrq";
   })
   (fetchNuGet {
-    name = "Microsoft.IdentityModel.Tokens";
+    pname = "Microsoft.IdentityModel.Tokens";
     version = "6.6.0";
     sha256 = "0h5vbsd5x9cf7nqyrwn7d7y1axhf1zz0jr9prvi4xpxawa3kajyj";
   })
   (fetchNuGet {
-    name = "Microsoft.NET.Test.Sdk";
+    pname = "Microsoft.NET.Test.Sdk";
     version = "16.11.0";
     sha256 = "1a2y6vw6p9xp3w72zq2lwrjl8bxv87s9d7zd2dh4zwbzh1c5slxl";
   })
   (fetchNuGet {
-    name = "Microsoft.NetCore.Analyzers";
+    pname = "Microsoft.NetCore.Analyzers";
     version = "3.3.2";
     sha256 = "1h1bjiiw64qncs61p2idwxswv4kzq06bbl2rlghiagv6sbjk4pnq";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
+    pname = "Microsoft.NETCore.Platforms";
     version = "1.0.1";
     sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
+    pname = "Microsoft.NETCore.Platforms";
     version = "1.1.0";
     sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
+    pname = "Microsoft.NETCore.Platforms";
     version = "2.0.0";
     sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
+    pname = "Microsoft.NETCore.Platforms";
     version = "2.1.2";
     sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
+    pname = "Microsoft.NETCore.Platforms";
     version = "3.1.0";
     sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Targets";
+    pname = "Microsoft.NETCore.Targets";
     version = "1.0.1";
     sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Targets";
+    pname = "Microsoft.NETCore.Targets";
     version = "1.1.0";
     sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
   })
   (fetchNuGet {
-    name = "Microsoft.TestPlatform.ObjectModel";
+    pname = "Microsoft.TestPlatform.ObjectModel";
     version = "16.11.0";
     sha256 = "1fc0ghk1cny4i8w43b94pxhl0srxisv6kaflkkp30ncsa9szhkxh";
   })
   (fetchNuGet {
-    name = "Microsoft.TestPlatform.TestHost";
+    pname = "Microsoft.TestPlatform.TestHost";
     version = "16.11.0";
     sha256 = "0hp1vndf2jhyg1f3miq4g2068z5kpfzy6nmswm25vymghxp1ws4k";
   })
   (fetchNuGet {
-    name = "Microsoft.Win32.Primitives";
+    pname = "Microsoft.Win32.Primitives";
     version = "4.0.1";
     sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
   })
   (fetchNuGet {
-    name = "Microsoft.Win32.Primitives";
+    pname = "Microsoft.Win32.Primitives";
     version = "4.3.0";
     sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq";
   })
   (fetchNuGet {
-    name = "Microsoft.Win32.SystemEvents";
+    pname = "Microsoft.Win32.SystemEvents";
     version = "4.7.0";
     sha256 = "0pjll2a62hc576hd4wgyasva0lp733yllmk54n37svz5ac7nfz0q";
   })
   (fetchNuGet {
-    name = "MySqlConnector";
+    pname = "MySqlConnector";
     version = "0.69.10";
     sha256 = "159xir7czzz291cs0f2dsgmnhar41s4wglm5r5lw3kqpd50q3i9v";
   })
   (fetchNuGet {
-    name = "NBitcoin.Altcoins";
+    pname = "NBitcoin.Altcoins";
     version = "3.0.8";
     sha256 = "1qck2nfj8494pxwzhccslq4cbypsgnwcv3nvz24czsd87wn8n618";
   })
   (fetchNuGet {
-    name = "NBitcoin.Secp256k1";
+    pname = "NBitcoin.Secp256k1";
     version = "1.0.3";
     sha256 = "08d4db64j1qz8ax9fg8zi6n7g1n53clnkajbbvv2hgaqyfrsnqxj";
   })
   (fetchNuGet {
-    name = "NBitcoin";
+    pname = "NBitcoin";
     version = "5.0.40";
     sha256 = "1rqzn84yaww4afagwg8jg1l5qdkvqyjdfcyd5widddqwxabbsjvh";
   })
   (fetchNuGet {
-    name = "NBitcoin";
+    pname = "NBitcoin";
     version = "5.0.54";
     sha256 = "0mx2gr8j8bc4mf1vi1fvqj3672qalxvzvincc61if79p46cik24b";
   })
   (fetchNuGet {
-    name = "NBitcoin";
+    pname = "NBitcoin";
     version = "6.0.15";
     sha256 = "038dcl2k88w4cijws3pdnjflgy4lmqx70z0l7yqz355kmxjz8ain";
   })
   (fetchNuGet {
-    name = "NBitcoin";
+    pname = "NBitcoin";
+    version = "6.0.17";
+    sha256 = "1dl3rmmx33041sd0lsj54lk19mzyd8j2nngjmbnn8s4gsdnzd7z1";
+  })
+  (fetchNuGet {
+    pname = "NBitcoin";
     version = "6.0.3";
     sha256 = "1kfq1q86844ssp8myy5vmvg33h3x0p9gqrlc99fl9gm1vzjc723f";
   })
   (fetchNuGet {
-    name = "NBitcoin";
+    pname = "NBitcoin";
     version = "6.0.8";
     sha256 = "1f90zyrd35fzx0vgvd83jhd6hczd4037h2k198xiyxj04l4m3wm5";
   })
   (fetchNuGet {
-    name = "NBitpayClient";
+    pname = "NBitpayClient";
     version = "1.0.0.39";
     sha256 = "1sgwradg7jnb4n3chwqfkximj1qhgl3r23p0sifmaa0kql2hlira";
   })
   (fetchNuGet {
-    name = "NBXplorer.Client";
+    pname = "NBXplorer.Client";
     version = "4.1.3";
     sha256 = "1nh4jj7yg81825hr7cc99qlnfmdm6jibap81qqi8a968b61z4251";
   })
   (fetchNuGet {
-    name = "Nethereum.ABI";
+    pname = "Nethereum.ABI";
     version = "4.1.0";
     sha256 = "1mhg6mh7wkz93fq3pclkxjipcvzglnk70gr9s1cgr2ak84y3g5lr";
   })
   (fetchNuGet {
-    name = "Nethereum.Accounts";
+    pname = "Nethereum.Accounts";
     version = "4.1.0";
     sha256 = "0wd4wa2d1dm4ni5l208bn7wi63m1whmbh4x6sfk8m4qh4dlh1bq0";
   })
   (fetchNuGet {
-    name = "Nethereum.BlockchainProcessing";
+    pname = "Nethereum.BlockchainProcessing";
     version = "4.1.0";
     sha256 = "1986y39mpd61s7kkkbcc9hcg7vwmp9mamhiiy9pzsnfgc2jna6c4";
   })
   (fetchNuGet {
-    name = "Nethereum.Contracts";
+    pname = "Nethereum.Contracts";
     version = "4.1.0";
     sha256 = "07yj2fqx0p22aayhn7zjczq5xj55b2w48qar8j5q2klzl9q64iwc";
   })
   (fetchNuGet {
-    name = "Nethereum.HdWallet";
+    pname = "Nethereum.HdWallet";
     version = "4.1.0";
     sha256 = "052g15iqhkx94igvnv5qr8gxpvbi34c7avqn6j4i4p0yf6kwbwsi";
   })
   (fetchNuGet {
-    name = "Nethereum.Hex";
+    pname = "Nethereum.Hex";
     version = "4.1.0";
     sha256 = "1bkmbfclbkr3336za7ii5vac7c4h2l1vd4bl3a15s54piwfgx44w";
   })
   (fetchNuGet {
-    name = "Nethereum.JsonRpc.Client";
+    pname = "Nethereum.JsonRpc.Client";
     version = "4.1.0";
     sha256 = "1260pr9y83nrfqpgq37s91dbsxdfkvdh55x48554c33ldrqsqk4p";
   })
   (fetchNuGet {
-    name = "Nethereum.JsonRpc.RpcClient";
+    pname = "Nethereum.JsonRpc.RpcClient";
     version = "4.1.0";
     sha256 = "0jybgfzy4cj9jx1djjc66vpk9sg88dymy5jrcrply3y6bq85arq3";
   })
   (fetchNuGet {
-    name = "Nethereum.KeyStore";
+    pname = "Nethereum.KeyStore";
     version = "4.1.0";
     sha256 = "16xffhfx7k9rfb5kr717cpbircj66gazbkbbwvf5hss3v9a6imzz";
   })
   (fetchNuGet {
-    name = "Nethereum.Model";
+    pname = "Nethereum.Model";
     version = "4.1.0";
     sha256 = "03aaizfpjvbf367mprni2ixlyfvz7ic8cn1cfmjk1n3f3q63qbqh";
   })
   (fetchNuGet {
-    name = "Nethereum.RLP";
+    pname = "Nethereum.RLP";
     version = "4.1.0";
     sha256 = "19ixlvv91s0xhn3bvwn0yydd5932vcylin037dv4wzgbk2v0vdpm";
   })
   (fetchNuGet {
-    name = "Nethereum.RPC";
+    pname = "Nethereum.RPC";
     version = "4.1.0";
     sha256 = "0ivvic38wpay9ry1hp4n88bgglnxcd8id7p5h235ilviq2gxgmmb";
   })
   (fetchNuGet {
-    name = "Nethereum.Signer";
+    pname = "Nethereum.Signer";
     version = "4.1.0";
     sha256 = "1lgyb80l7xwhp4jbfbba0d47p7nxhx0lac08k23nzwnqmg95y4n6";
   })
   (fetchNuGet {
-    name = "Nethereum.StandardTokenEIP20";
+    pname = "Nethereum.StandardTokenEIP20";
     version = "4.1.0";
     sha256 = "1i08kpa6knrm3jbhxgfaa2ing5w42j3jsdx72hl6a9xcjdkjr405";
   })
   (fetchNuGet {
-    name = "Nethereum.Util";
+    pname = "Nethereum.Util";
     version = "4.1.0";
     sha256 = "1fp7ii6ic13d1s8n6l63f1kyb03s04fghhfm7sshvk6bhjlynfqw";
   })
   (fetchNuGet {
-    name = "Nethereum.Web3";
+    pname = "Nethereum.Web3";
     version = "4.1.0";
     sha256 = "1b8myc9wr44vf7kcl9rmhc8zimpfda3mmizhiq1x287xs44nam0b";
   })
   (fetchNuGet {
-    name = "NETStandard.Library";
+    pname = "NETStandard.Library";
     version = "1.6.1";
     sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
   })
   (fetchNuGet {
-    name = "NETStandard.Library";
+    pname = "NETStandard.Library";
     version = "2.0.3";
     sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
   })
   (fetchNuGet {
-    name = "Newtonsoft.Json.Bson";
+    pname = "Newtonsoft.Json.Bson";
     version = "1.0.1";
     sha256 = "1r1hvj5gjl466bya2bfl5aaj8rbwyf5x1msg710wf3k2llbci1xa";
   })
   (fetchNuGet {
-    name = "Newtonsoft.Json.Bson";
+    pname = "Newtonsoft.Json.Bson";
     version = "1.0.2";
     sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35";
   })
   (fetchNuGet {
-    name = "Newtonsoft.Json.Schema";
+    pname = "Newtonsoft.Json.Schema";
     version = "3.0.14";
     sha256 = "1njk1arrf8pbx0i0p3yww459i70p0fcx02vs0jnbb6znvcy4mvh6";
   })
   (fetchNuGet {
-    name = "Newtonsoft.Json";
+    pname = "Newtonsoft.Json";
     version = "10.0.3";
     sha256 = "06vy67bkshclpz69kps4vgzc9h2cgg41c8vlqmdbwclfky7c4haq";
   })
   (fetchNuGet {
-    name = "Newtonsoft.Json";
+    pname = "Newtonsoft.Json";
     version = "11.0.2";
     sha256 = "1784xi44f4k8v1fr696hsccmwpy94bz7kixxqlri98zhcxn406b2";
   })
   (fetchNuGet {
-    name = "Newtonsoft.Json";
+    pname = "Newtonsoft.Json";
     version = "12.0.3";
     sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x";
   })
   (fetchNuGet {
-    name = "Newtonsoft.Json";
+    pname = "Newtonsoft.Json";
     version = "13.0.1";
     sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb";
   })
   (fetchNuGet {
-    name = "Newtonsoft.Json";
+    pname = "Newtonsoft.Json";
     version = "9.0.1";
     sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r";
   })
   (fetchNuGet {
-    name = "NicolasDorier.CommandLine.Configuration";
+    pname = "NicolasDorier.CommandLine.Configuration";
     version = "1.0.0.3";
     sha256 = "0al0pd4zhjpmn8m208xjmy17cbyab68grzdvzr2lhsckwkl6b1jg";
   })
   (fetchNuGet {
-    name = "NicolasDorier.CommandLine";
+    pname = "NicolasDorier.CommandLine";
     version = "1.0.0.2";
     sha256 = "08a9l18zkhcfa6f56xqylzvmqjzgxsmgkpm2r3ckvxfyml6w0qyy";
   })
   (fetchNuGet {
-    name = "NicolasDorier.RateLimits";
+    pname = "NicolasDorier.RateLimits";
     version = "1.1.0";
     sha256 = "06cajxi8wnrxfwqfnk98avphwiyvg1fw428bd42lqjgq9k414rk9";
   })
   (fetchNuGet {
-    name = "NicolasDorier.StandardConfiguration";
+    pname = "NicolasDorier.StandardConfiguration";
     version = "1.0.0.18";
     sha256 = "0lgssxafv6cqlw21fb79fm0fcln0clgsk6zadcwrnjv9vampfw7b";
   })
   (fetchNuGet {
-    name = "NLog";
+    pname = "NLog";
     version = "4.5.10";
     sha256 = "0d4yqxrhqn2k36h3v1f5pn6qqlagbzg67v6gvxqhz3s4zyc3b8rg";
   })
   (fetchNuGet {
-    name = "Npgsql.EntityFrameworkCore.PostgreSQL";
+    pname = "Npgsql.EntityFrameworkCore.PostgreSQL";
     version = "3.1.18";
     sha256 = "0yjrp87m0kj8bzybszxnj7n1h21zag3rqpva74xzvm78gz1asc04";
   })
   (fetchNuGet {
-    name = "Npgsql";
+    pname = "Npgsql";
     version = "4.1.9";
     sha256 = "1b9qp3cjwydd4g1yy8nxxr0b0nwdbijmcmzjpkb9r13ndgdrd8nq";
   })
   (fetchNuGet {
-    name = "NSec.Cryptography";
+    pname = "NSec.Cryptography";
     version = "20.2.0";
     sha256 = "19slji51v8s8i4836nqqg7qb3i3p4ahqahz0fbb3gwpp67pn6izx";
   })
   (fetchNuGet {
-    name = "NuGet.Frameworks";
+    pname = "NuGet.Frameworks";
     version = "5.0.0";
     sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr";
   })
   (fetchNuGet {
-    name = "NUglify";
+    pname = "NUglify";
     version = "1.5.12";
     sha256 = "0f4gs31z8dwfvd246nrv3m0qkxzav37hxynx2maykza017khynyf";
   })
   (fetchNuGet {
-    name = "PeterO.Cbor";
+    pname = "PeterO.Cbor";
     version = "4.1.3";
     sha256 = "0882i3bhhx2yag2m4lbdsgngjwaj9ff4v0ab9zb839i4r77aq1yn";
   })
   (fetchNuGet {
-    name = "PeterO.Numbers";
+    pname = "PeterO.Numbers";
     version = "1.6.0";
     sha256 = "04kfdkfr600h69g67g6izbn57bxqjamvaadyw3p9gjsc0wrivi98";
   })
   (fetchNuGet {
-    name = "PeterO.URIUtility";
+    pname = "PeterO.URIUtility";
     version = "1.0.0";
     sha256 = "04ihfbk2lf0smznwfb62h57qknls5jyxirdz72g5wn9h1dcgkdac";
   })
   (fetchNuGet {
-    name = "Pomelo.EntityFrameworkCore.MySql";
+    pname = "Pomelo.EntityFrameworkCore.MySql";
     version = "3.2.7";
     sha256 = "018za1ax17ibxld9rk2nc29716qpn2afh1prfrdjchf5cp56ba2p";
   })
   (fetchNuGet {
-    name = "Pomelo.JsonObject";
+    pname = "Pomelo.JsonObject";
     version = "2.2.1";
     sha256 = "1w6s9wjbsyvq8cnqknkdzm9chnv0g5gcsrq5i94zp6br9vg7c627";
   })
   (fetchNuGet {
-    name = "Portable.BouncyCastle";
+    pname = "Portable.BouncyCastle";
     version = "1.8.2";
     sha256 = "0xqc8q40lr4r7ahsmzpa1q0jagp12abb6rsj80p37q34hsv5284q";
   })
   (fetchNuGet {
-    name = "QRCoder";
+    pname = "QRCoder";
     version = "1.4.1";
     sha256 = "1xgwhpqrm4ycnj8nk4ibxfwkmkiwc5i15l1za3ci5alghlpcb6ch";
   })
   (fetchNuGet {
-    name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
   })
   (fetchNuGet {
-    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
   })
   (fetchNuGet {
-    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
   })
   (fetchNuGet {
-    name = "runtime.native.System.IO.Compression";
+    pname = "runtime.native.System.IO.Compression";
     version = "4.3.0";
     sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d";
   })
   (fetchNuGet {
-    name = "runtime.native.System.Net.Http";
+    pname = "runtime.native.System.Net.Http";
     version = "4.3.0";
     sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk";
   })
   (fetchNuGet {
-    name = "runtime.native.System.Net.Security";
+    pname = "runtime.native.System.Net.Security";
     version = "4.3.0";
     sha256 = "0dnqjhw445ay3chpia9p6vy4w2j6s9vy3hxszqvdanpvvyaxijr3";
   })
   (fetchNuGet {
-    name = "runtime.native.System.Security.Cryptography.Apple";
+    pname = "runtime.native.System.Security.Cryptography.Apple";
     version = "4.3.0";
     sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q";
   })
   (fetchNuGet {
-    name = "runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
   })
   (fetchNuGet {
-    name = "runtime.native.System.Security.Cryptography";
+    pname = "runtime.native.System.Security.Cryptography";
     version = "4.0.0";
     sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
   })
   (fetchNuGet {
-    name = "runtime.native.System";
+    pname = "runtime.native.System";
     version = "4.0.0";
     sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
   })
   (fetchNuGet {
-    name = "runtime.native.System";
+    pname = "runtime.native.System";
     version = "4.3.0";
     sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
   })
   (fetchNuGet {
-    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
   })
   (fetchNuGet {
-    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
   })
   (fetchNuGet {
-    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple";
+    pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple";
     version = "4.3.0";
     sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi";
   })
   (fetchNuGet {
-    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3";
   })
   (fetchNuGet {
-    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
   })
   (fetchNuGet {
-    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
   })
   (fetchNuGet {
-    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
   })
   (fetchNuGet {
-    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
   })
   (fetchNuGet {
-    name = "Selenium.Support";
+    pname = "Selenium.Support";
     version = "3.141.0";
     sha256 = "1gqwzbfq7i9jz830b0jibsis0qfxs8sl10n1nja02c6s637cwzib";
   })
   (fetchNuGet {
-    name = "Selenium.WebDriver.ChromeDriver";
+    pname = "Selenium.WebDriver.ChromeDriver";
     version = "94.0.4606.6100";
     sha256 = "04kn91qcgsx92yhcqlhpm1yy3m34m371k70szf8h93gcwfs42b9c";
   })
   (fetchNuGet {
-    name = "Selenium.WebDriver";
+    pname = "Selenium.WebDriver";
     version = "3.141.0";
     sha256 = "09g0zhz6n7yhxmxlrpzjdykfavr3m4z1gb4cmq304dw0gr8s89mq";
   })
   (fetchNuGet {
-    name = "Serilog.AspNetCore";
+    pname = "Serilog.AspNetCore";
     version = "3.2.0";
     sha256 = "14d1lsw1djsshlkxbn5lkmdvj4372hnddb6788m6ix0mv4mhj3bj";
   })
   (fetchNuGet {
-    name = "Serilog.Extensions.Hosting";
+    pname = "Serilog.Extensions.Hosting";
     version = "3.0.0";
     sha256 = "1r01lsy4rp0wj7ffbjcf9dcg3aipdhy7066yjicja45m0z2y42w6";
   })
   (fetchNuGet {
-    name = "Serilog.Extensions.Logging";
+    pname = "Serilog.Extensions.Logging";
     version = "3.0.1";
     sha256 = "069qy7dm5nxb372ij112ppa6m99b4iaimj3sji74m659fwrcrl9a";
   })
   (fetchNuGet {
-    name = "Serilog.Formatting.Compact";
+    pname = "Serilog.Formatting.Compact";
     version = "1.0.0";
     sha256 = "0mi1yzzj33v4nkyspyshhc6nn2mx3y07z5dvv26hl7hw6kb6yazw";
   })
   (fetchNuGet {
-    name = "Serilog.Settings.Configuration";
+    pname = "Serilog.Settings.Configuration";
     version = "3.1.0";
     sha256 = "1cj5am4n073331gbfm2ylqb9cadl4q3ppzgwmm5c8m1drxpiwkb5";
   })
   (fetchNuGet {
-    name = "Serilog.Sinks.Console";
+    pname = "Serilog.Sinks.Console";
     version = "3.1.1";
     sha256 = "0j99as641y1k6havwwkhyr0n08vibiblmfjj6nz051mz8g3864fn";
   })
   (fetchNuGet {
-    name = "Serilog.Sinks.Debug";
+    pname = "Serilog.Sinks.Debug";
     version = "1.0.1";
     sha256 = "0969mb254kr59bgkq01ybyzca89z3f4n9ng5mdj8m53d5653zf22";
   })
   (fetchNuGet {
-    name = "Serilog.Sinks.File";
+    pname = "Serilog.Sinks.File";
     version = "4.1.0";
     sha256 = "1ry7p9hf1zlnai1j5zjhjp4dqm2agsbpq6cvxgpf5l8m26x6mgca";
   })
   (fetchNuGet {
-    name = "Serilog";
+    pname = "Serilog";
     version = "2.9.0";
     sha256 = "0z0ib82w9b229a728bbyhzc2hnlbl0ki7nnvmgnv3l741f2vr4i6";
   })
   (fetchNuGet {
-    name = "SQLitePCLRaw.bundle_e_sqlite3";
+    pname = "SQLitePCLRaw.bundle_e_sqlite3";
     version = "2.0.2";
     sha256 = "00p7n7ndmmh45fhhd3clb11igpzklm1n7r50sdrgnbi5yifv1lxl";
   })
   (fetchNuGet {
-    name = "SQLitePCLRaw.core";
+    pname = "SQLitePCLRaw.core";
     version = "2.0.2";
     sha256 = "11mnbnsiirpgmilskqh1issvgzgg08ndq3p3nkrw73hyqr7kl958";
   })
   (fetchNuGet {
-    name = "SQLitePCLRaw.lib.e_sqlite3";
+    pname = "SQLitePCLRaw.lib.e_sqlite3";
     version = "2.0.2";
     sha256 = "0967w6r6n94hj0fma3kidb9fx1m2p3fgrw6gpsy6q6jbb33qw6vj";
   })
   (fetchNuGet {
-    name = "SQLitePCLRaw.provider.dynamic_cdecl";
+    pname = "SQLitePCLRaw.provider.dynamic_cdecl";
     version = "2.0.2";
     sha256 = "1lzs8yfjygrwfm3hjmkhnbnpsjzq53ijwx9whmii2r9kjg2a46if";
   })
   (fetchNuGet {
-    name = "SSH.NET";
+    pname = "SSH.NET";
     version = "2016.1.0";
     sha256 = "0q08bf9sdf1rf9763z4bk2mr6z381iybm73823scmq9qcpr2jk4d";
   })
   (fetchNuGet {
-    name = "SshNet.Security.Cryptography";
+    pname = "SshNet.Security.Cryptography";
     version = "1.2.0";
     sha256 = "1xlj8bjavpjk6lrkypk66cxpf2xa31wv73ymrk34d72f05z0xrg0";
   })
   (fetchNuGet {
-    name = "System.AppContext";
+    pname = "System.AppContext";
     version = "4.1.0";
     sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
   })
   (fetchNuGet {
-    name = "System.AppContext";
+    pname = "System.AppContext";
     version = "4.3.0";
     sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya";
   })
   (fetchNuGet {
-    name = "System.Buffers";
+    pname = "System.Buffers";
     version = "4.3.0";
     sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy";
   })
   (fetchNuGet {
-    name = "System.Collections.Concurrent";
+    pname = "System.Collections.Concurrent";
     version = "4.0.12";
     sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
   })
   (fetchNuGet {
-    name = "System.Collections.Concurrent";
+    pname = "System.Collections.Concurrent";
     version = "4.3.0";
     sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8";
   })
   (fetchNuGet {
-    name = "System.Collections.Immutable";
+    pname = "System.Collections.Immutable";
     version = "1.5.0";
     sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06";
   })
   (fetchNuGet {
-    name = "System.Collections.Immutable";
+    pname = "System.Collections.Immutable";
     version = "1.7.1";
     sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq";
   })
   (fetchNuGet {
-    name = "System.Collections.Immutable";
+    pname = "System.Collections.Immutable";
     version = "5.0.0";
     sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r";
   })
   (fetchNuGet {
-    name = "System.Collections.NonGeneric";
+    pname = "System.Collections.NonGeneric";
     version = "4.3.0";
     sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
   })
   (fetchNuGet {
-    name = "System.Collections.Specialized";
+    pname = "System.Collections.Specialized";
     version = "4.3.0";
     sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
   })
   (fetchNuGet {
-    name = "System.Collections";
+    pname = "System.Collections";
     version = "4.0.11";
     sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
   })
   (fetchNuGet {
-    name = "System.Collections";
+    pname = "System.Collections";
     version = "4.3.0";
     sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
   })
   (fetchNuGet {
-    name = "System.ComponentModel.Annotations";
+    pname = "System.ComponentModel.Annotations";
     version = "4.7.0";
     sha256 = "06x1m46ddxj0ng28d7gry9gjkqdg2kp89jyf480g5gznyybbs49z";
   })
   (fetchNuGet {
-    name = "System.ComponentModel.Primitives";
+    pname = "System.ComponentModel.Primitives";
     version = "4.3.0";
     sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
   })
   (fetchNuGet {
-    name = "System.ComponentModel.TypeConverter";
+    pname = "System.ComponentModel.TypeConverter";
     version = "4.3.0";
     sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
   })
   (fetchNuGet {
-    name = "System.ComponentModel";
+    pname = "System.ComponentModel";
     version = "4.3.0";
     sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
   })
   (fetchNuGet {
-    name = "System.Configuration.ConfigurationManager";
+    pname = "System.Configuration.ConfigurationManager";
     version = "4.5.0";
     sha256 = "1frpy24mn6q7hgwayj98kkx89z861f5dmia4j6zc0a2ydgx8x02c";
   })
   (fetchNuGet {
-    name = "System.Console";
+    pname = "System.Console";
     version = "4.3.0";
     sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Debug";
+    pname = "System.Diagnostics.Debug";
     version = "4.0.11";
     sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Debug";
+    pname = "System.Diagnostics.Debug";
     version = "4.3.0";
     sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.DiagnosticSource";
+    pname = "System.Diagnostics.DiagnosticSource";
     version = "4.3.0";
     sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.DiagnosticSource";
+    pname = "System.Diagnostics.DiagnosticSource";
     version = "4.7.1";
     sha256 = "1mivaifniyrqwlnvzsfaxzrh2sd981bwzs3cbvs5wi7jjzbcqr4p";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Tools";
+    pname = "System.Diagnostics.Tools";
     version = "4.0.1";
     sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Tools";
+    pname = "System.Diagnostics.Tools";
     version = "4.3.0";
     sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.TraceSource";
+    pname = "System.Diagnostics.TraceSource";
     version = "4.0.0";
     sha256 = "1mc7r72xznczzf6mz62dm8xhdi14if1h8qgx353xvhz89qyxsa3h";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Tracing";
+    pname = "System.Diagnostics.Tracing";
     version = "4.1.0";
     sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Tracing";
+    pname = "System.Diagnostics.Tracing";
     version = "4.3.0";
     sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4";
   })
   (fetchNuGet {
-    name = "System.Drawing.Common";
+    pname = "System.Drawing.Common";
     version = "4.7.0";
     sha256 = "0yfw7cpl54mgfcylvlpvrl0c8r1b0zca6p7r3rcwkvqy23xqcyhg";
   })
   (fetchNuGet {
-    name = "System.Dynamic.Runtime";
+    pname = "System.Dynamic.Runtime";
     version = "4.0.11";
     sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
   })
   (fetchNuGet {
-    name = "System.Dynamic.Runtime";
+    pname = "System.Dynamic.Runtime";
     version = "4.3.0";
     sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk";
   })
   (fetchNuGet {
-    name = "System.Globalization.Calendars";
+    pname = "System.Globalization.Calendars";
     version = "4.3.0";
     sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq";
   })
   (fetchNuGet {
-    name = "System.Globalization.Extensions";
+    pname = "System.Globalization.Extensions";
     version = "4.3.0";
     sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
   })
   (fetchNuGet {
-    name = "System.Globalization";
+    pname = "System.Globalization";
     version = "4.0.11";
     sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
   })
   (fetchNuGet {
-    name = "System.Globalization";
+    pname = "System.Globalization";
     version = "4.3.0";
     sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
   })
   (fetchNuGet {
-    name = "System.IdentityModel.Tokens.Jwt";
+    pname = "System.IdentityModel.Tokens.Jwt";
     version = "6.6.0";
     sha256 = "17i6a43g1fksq9xy77dgsz54klz71pz062pb58lqx8h06p1818h1";
   })
   (fetchNuGet {
-    name = "System.Interactive.Async";
+    pname = "System.Interactive.Async";
     version = "3.1.1";
     sha256 = "03iq20gq0n2b2sdzs5jhxf46nzkfgvzip6q5248vka2rcvn1yanh";
   })
   (fetchNuGet {
-    name = "System.IO.Compression.ZipFile";
+    pname = "System.IO.Compression.ZipFile";
     version = "4.3.0";
     sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar";
   })
   (fetchNuGet {
-    name = "System.IO.Compression";
+    pname = "System.IO.Compression";
     version = "4.3.0";
     sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem.Primitives";
+    pname = "System.IO.FileSystem.Primitives";
     version = "4.0.1";
     sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem.Primitives";
+    pname = "System.IO.FileSystem.Primitives";
     version = "4.3.0";
     sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem";
+    pname = "System.IO.FileSystem";
     version = "4.0.1";
     sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem";
+    pname = "System.IO.FileSystem";
     version = "4.3.0";
     sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
   })
   (fetchNuGet {
-    name = "System.IO.Pipelines";
+    pname = "System.IO.Pipelines";
     version = "4.7.4";
     sha256 = "09gv2nz35vmmcjrfj1ppxx32v772i0mb369v7lwqr8mz14zhh86r";
   })
   (fetchNuGet {
-    name = "System.IO";
+    pname = "System.IO";
     version = "4.1.0";
     sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
   })
   (fetchNuGet {
-    name = "System.IO";
+    pname = "System.IO";
     version = "4.3.0";
     sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
   })
   (fetchNuGet {
-    name = "System.Linq.Expressions";
+    pname = "System.Linq.Expressions";
     version = "4.1.0";
     sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
   })
   (fetchNuGet {
-    name = "System.Linq.Expressions";
+    pname = "System.Linq.Expressions";
     version = "4.3.0";
     sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
   })
   (fetchNuGet {
-    name = "System.Linq";
+    pname = "System.Linq";
     version = "4.1.0";
     sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
   })
   (fetchNuGet {
-    name = "System.Linq";
+    pname = "System.Linq";
     version = "4.3.0";
     sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
   })
   (fetchNuGet {
-    name = "System.Memory";
+    pname = "System.Memory";
     version = "4.5.0";
     sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30";
   })
   (fetchNuGet {
-    name = "System.Memory";
+    pname = "System.Memory";
     version = "4.5.1";
     sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c";
   })
   (fetchNuGet {
-    name = "System.Memory";
+    pname = "System.Memory";
     version = "4.5.3";
     sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a";
   })
   (fetchNuGet {
-    name = "System.Memory";
+    pname = "System.Memory";
     version = "4.5.4";
     sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y";
   })
   (fetchNuGet {
-    name = "System.Net.Http";
+    pname = "System.Net.Http";
     version = "4.3.0";
     sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j";
   })
   (fetchNuGet {
-    name = "System.Net.NameResolution";
+    pname = "System.Net.NameResolution";
     version = "4.0.0";
     sha256 = "0dj3pvpv069nyia28gkl4a0fb7q33hbxz2dg25qvpah3l7pbl0qh";
   })
   (fetchNuGet {
-    name = "System.Net.NameResolution";
+    pname = "System.Net.NameResolution";
     version = "4.3.0";
     sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq";
   })
   (fetchNuGet {
-    name = "System.Net.Primitives";
+    pname = "System.Net.Primitives";
     version = "4.0.11";
     sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
   })
   (fetchNuGet {
-    name = "System.Net.Primitives";
+    pname = "System.Net.Primitives";
     version = "4.3.0";
     sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii";
   })
   (fetchNuGet {
-    name = "System.Net.Security";
+    pname = "System.Net.Security";
     version = "4.3.0";
     sha256 = "1aa5igz31ivk6kpgsrwck3jccab7wd88wr52lddmgypmbh9mmf87";
   })
   (fetchNuGet {
-    name = "System.Net.Sockets";
+    pname = "System.Net.Sockets";
     version = "4.1.0";
     sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls";
   })
   (fetchNuGet {
-    name = "System.Net.Sockets";
+    pname = "System.Net.Sockets";
     version = "4.3.0";
     sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla";
   })
   (fetchNuGet {
-    name = "System.Net.WebHeaderCollection";
+    pname = "System.Net.WebHeaderCollection";
     version = "4.3.0";
     sha256 = "0ms3ddjv1wn8sqa5qchm245f3vzzif6l6fx5k92klqpn7zf4z562";
   })
   (fetchNuGet {
-    name = "System.Net.WebSockets.Client";
+    pname = "System.Net.WebSockets.Client";
     version = "4.3.2";
     sha256 = "103y8lfsfa5xd1sqmq9sml4qyp4rij2i3fnnw119h119hb04l0rk";
   })
   (fetchNuGet {
-    name = "System.Net.WebSockets";
+    pname = "System.Net.WebSockets";
     version = "4.3.0";
     sha256 = "1gfj800078kggcgl0xyl00a6y5k4wwh2k2qm69rjy22wbmq7fy4p";
   })
   (fetchNuGet {
-    name = "System.ObjectModel";
+    pname = "System.ObjectModel";
     version = "4.0.12";
     sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
   })
   (fetchNuGet {
-    name = "System.ObjectModel";
+    pname = "System.ObjectModel";
     version = "4.3.0";
     sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit.ILGeneration";
+    pname = "System.Reflection.Emit.ILGeneration";
     version = "4.0.1";
     sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit.ILGeneration";
+    pname = "System.Reflection.Emit.ILGeneration";
     version = "4.3.0";
     sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit.Lightweight";
+    pname = "System.Reflection.Emit.Lightweight";
     version = "4.0.1";
     sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit.Lightweight";
+    pname = "System.Reflection.Emit.Lightweight";
     version = "4.3.0";
     sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit";
+    pname = "System.Reflection.Emit";
     version = "4.0.1";
     sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit";
+    pname = "System.Reflection.Emit";
     version = "4.3.0";
     sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
   })
   (fetchNuGet {
-    name = "System.Reflection.Extensions";
+    pname = "System.Reflection.Extensions";
     version = "4.0.1";
     sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
   })
   (fetchNuGet {
-    name = "System.Reflection.Extensions";
+    pname = "System.Reflection.Extensions";
     version = "4.3.0";
     sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
   })
   (fetchNuGet {
-    name = "System.Reflection.Metadata";
+    pname = "System.Reflection.Metadata";
     version = "1.6.0";
     sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
   })
   (fetchNuGet {
-    name = "System.Reflection.Metadata";
+    pname = "System.Reflection.Metadata";
     version = "5.0.0";
     sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss";
   })
   (fetchNuGet {
-    name = "System.Reflection.Primitives";
+    pname = "System.Reflection.Primitives";
     version = "4.0.1";
     sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
   })
   (fetchNuGet {
-    name = "System.Reflection.Primitives";
+    pname = "System.Reflection.Primitives";
     version = "4.3.0";
     sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
   })
   (fetchNuGet {
-    name = "System.Reflection.TypeExtensions";
+    pname = "System.Reflection.TypeExtensions";
     version = "4.1.0";
     sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
   })
   (fetchNuGet {
-    name = "System.Reflection.TypeExtensions";
+    pname = "System.Reflection.TypeExtensions";
     version = "4.3.0";
     sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
   })
   (fetchNuGet {
-    name = "System.Reflection";
+    pname = "System.Reflection";
     version = "4.1.0";
     sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
   })
   (fetchNuGet {
-    name = "System.Reflection";
+    pname = "System.Reflection";
     version = "4.3.0";
     sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
   })
   (fetchNuGet {
-    name = "System.Resources.ResourceManager";
+    pname = "System.Resources.ResourceManager";
     version = "4.0.1";
     sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
   })
   (fetchNuGet {
-    name = "System.Resources.ResourceManager";
+    pname = "System.Resources.ResourceManager";
     version = "4.3.0";
     sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
   })
   (fetchNuGet {
-    name = "System.Runtime.CompilerServices.Unsafe";
+    pname = "System.Runtime.CompilerServices.Unsafe";
     version = "4.3.0";
     sha256 = "149xcsa1pphlrc2zfmca9n822g4mxk7s2a44phvf34r0fajm3hk8";
   })
   (fetchNuGet {
-    name = "System.Runtime.CompilerServices.Unsafe";
+    pname = "System.Runtime.CompilerServices.Unsafe";
     version = "4.4.0";
     sha256 = "0a6ahgi5b148sl5qyfpyw383p3cb4yrkm802k29fsi4mxkiwir29";
   })
   (fetchNuGet {
-    name = "System.Runtime.CompilerServices.Unsafe";
+    pname = "System.Runtime.CompilerServices.Unsafe";
     version = "4.5.0";
     sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43";
   })
   (fetchNuGet {
-    name = "System.Runtime.CompilerServices.Unsafe";
+    pname = "System.Runtime.CompilerServices.Unsafe";
     version = "4.5.1";
     sha256 = "1xcrjx5fwg284qdnxyi2d0lzdm5q4frlpkp0nf6vvkx1kdz2prrf";
   })
   (fetchNuGet {
-    name = "System.Runtime.CompilerServices.Unsafe";
+    pname = "System.Runtime.CompilerServices.Unsafe";
     version = "4.5.2";
     sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi";
   })
   (fetchNuGet {
-    name = "System.Runtime.CompilerServices.Unsafe";
+    pname = "System.Runtime.CompilerServices.Unsafe";
     version = "4.6.0";
     sha256 = "0xmzi2gpbmgyfr75p24rqqsba3cmrqgmcv45lsqp5amgrdwd0f0m";
   })
   (fetchNuGet {
-    name = "System.Runtime.CompilerServices.Unsafe";
+    pname = "System.Runtime.CompilerServices.Unsafe";
     version = "4.7.0";
     sha256 = "16r6sn4czfjk8qhnz7bnqlyiaaszr0ihinb7mq9zzr1wba257r54";
   })
   (fetchNuGet {
-    name = "System.Runtime.CompilerServices.Unsafe";
+    pname = "System.Runtime.CompilerServices.Unsafe";
     version = "5.0.0";
     sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x";
   })
   (fetchNuGet {
-    name = "System.Runtime.Extensions";
+    pname = "System.Runtime.Extensions";
     version = "4.1.0";
     sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
   })
   (fetchNuGet {
-    name = "System.Runtime.Extensions";
+    pname = "System.Runtime.Extensions";
     version = "4.3.0";
     sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
   })
   (fetchNuGet {
-    name = "System.Runtime.Handles";
+    pname = "System.Runtime.Handles";
     version = "4.0.1";
     sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
   })
   (fetchNuGet {
-    name = "System.Runtime.Handles";
+    pname = "System.Runtime.Handles";
     version = "4.3.0";
     sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
   })
   (fetchNuGet {
-    name = "System.Runtime.InteropServices.RuntimeInformation";
+    pname = "System.Runtime.InteropServices.RuntimeInformation";
     version = "4.0.0";
     sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
   })
   (fetchNuGet {
-    name = "System.Runtime.InteropServices.RuntimeInformation";
+    pname = "System.Runtime.InteropServices.RuntimeInformation";
     version = "4.3.0";
     sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
   })
   (fetchNuGet {
-    name = "System.Runtime.InteropServices";
+    pname = "System.Runtime.InteropServices";
     version = "4.1.0";
     sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
   })
   (fetchNuGet {
-    name = "System.Runtime.InteropServices";
+    pname = "System.Runtime.InteropServices";
     version = "4.3.0";
     sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
   })
   (fetchNuGet {
-    name = "System.Runtime.Numerics";
+    pname = "System.Runtime.Numerics";
     version = "4.0.1";
     sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
   })
   (fetchNuGet {
-    name = "System.Runtime.Numerics";
+    pname = "System.Runtime.Numerics";
     version = "4.3.0";
     sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
   })
   (fetchNuGet {
-    name = "System.Runtime.Serialization.Formatters";
+    pname = "System.Runtime.Serialization.Formatters";
     version = "4.3.0";
     sha256 = "114j35n8gcvn3sqv9ar36r1jjq0y1yws9r0yk8i6wm4aq7n9rs0m";
   })
   (fetchNuGet {
-    name = "System.Runtime.Serialization.Primitives";
+    pname = "System.Runtime.Serialization.Primitives";
     version = "4.1.1";
     sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
   })
   (fetchNuGet {
-    name = "System.Runtime.Serialization.Primitives";
+    pname = "System.Runtime.Serialization.Primitives";
     version = "4.3.0";
     sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf";
   })
   (fetchNuGet {
-    name = "System.Runtime";
+    pname = "System.Runtime";
     version = "4.1.0";
     sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
   })
   (fetchNuGet {
-    name = "System.Runtime";
+    pname = "System.Runtime";
     version = "4.3.0";
     sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
   })
   (fetchNuGet {
-    name = "System.Security.AccessControl";
+    pname = "System.Security.AccessControl";
     version = "4.5.0";
     sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0";
   })
   (fetchNuGet {
-    name = "System.Security.Claims";
+    pname = "System.Security.Claims";
     version = "4.0.1";
     sha256 = "03dw0ls49bvsrffgwycyifjgz0qzr9r85skqhdyhfd51fqf398n6";
   })
   (fetchNuGet {
-    name = "System.Security.Claims";
+    pname = "System.Security.Claims";
     version = "4.3.0";
     sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Algorithms";
+    pname = "System.Security.Cryptography.Algorithms";
     version = "4.2.0";
     sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Algorithms";
+    pname = "System.Security.Cryptography.Algorithms";
     version = "4.3.0";
     sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Cng";
+    pname = "System.Security.Cryptography.Cng";
     version = "4.3.0";
     sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Cng";
+    pname = "System.Security.Cryptography.Cng";
     version = "4.7.0";
     sha256 = "00797sqbba8lys486ifxblz9j52m29kidclvmqpk531820k55x9j";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Csp";
+    pname = "System.Security.Cryptography.Csp";
     version = "4.3.0";
     sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Encoding";
+    pname = "System.Security.Cryptography.Encoding";
     version = "4.0.0";
     sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Encoding";
+    pname = "System.Security.Cryptography.Encoding";
     version = "4.3.0";
     sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.OpenSsl";
+    pname = "System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Primitives";
+    pname = "System.Security.Cryptography.Primitives";
     version = "4.0.0";
     sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Primitives";
+    pname = "System.Security.Cryptography.Primitives";
     version = "4.3.0";
     sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.ProtectedData";
+    pname = "System.Security.Cryptography.ProtectedData";
     version = "4.5.0";
     sha256 = "11qlc8q6b7xlspayv07718ibzvlj6ddqqxkvcbxv5b24d5kzbrb7";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.X509Certificates";
+    pname = "System.Security.Cryptography.X509Certificates";
     version = "4.3.0";
     sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h";
   })
   (fetchNuGet {
-    name = "System.Security.Permissions";
+    pname = "System.Security.Permissions";
     version = "4.5.0";
     sha256 = "192ww5rm3c9mirxgl1nzyrwd18am3izqls0hzm0fvcdjl5grvbhm";
   })
   (fetchNuGet {
-    name = "System.Security.Principal.Windows";
+    pname = "System.Security.Principal.Windows";
     version = "4.0.0";
     sha256 = "1d3vc8i0zss9z8p4qprls4gbh7q4218l9845kclx7wvw41809k6z";
   })
   (fetchNuGet {
-    name = "System.Security.Principal.Windows";
+    pname = "System.Security.Principal.Windows";
     version = "4.3.0";
     sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr";
   })
   (fetchNuGet {
-    name = "System.Security.Principal.Windows";
+    pname = "System.Security.Principal.Windows";
     version = "4.5.0";
     sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86";
   })
   (fetchNuGet {
-    name = "System.Security.Principal";
+    pname = "System.Security.Principal";
     version = "4.0.1";
     sha256 = "1nbzdfqvzzbgsfdd5qsh94d7dbg2v4sw0yx6himyn52zf8z6007p";
   })
   (fetchNuGet {
-    name = "System.Security.Principal";
+    pname = "System.Security.Principal";
     version = "4.3.0";
     sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding.CodePages";
+    pname = "System.Text.Encoding.CodePages";
     version = "4.5.0";
     sha256 = "19x38911pawq4mrxrm04l2bnxwxxlzq8v8rj4cbxnfjj8pnd3vj3";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding.CodePages";
+    pname = "System.Text.Encoding.CodePages";
     version = "4.5.1";
     sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding.Extensions";
+    pname = "System.Text.Encoding.Extensions";
     version = "4.0.11";
     sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding.Extensions";
+    pname = "System.Text.Encoding.Extensions";
     version = "4.3.0";
     sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding";
+    pname = "System.Text.Encoding";
     version = "4.0.11";
     sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding";
+    pname = "System.Text.Encoding";
     version = "4.3.0";
     sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
   })
   (fetchNuGet {
-    name = "System.Text.Encodings.Web";
+    pname = "System.Text.Encodings.Web";
     version = "4.4.0";
     sha256 = "05qp3yivh6gz0vva0v3wjlj3g1b45d5jmz362f2y8ah6yb3rx088";
   })
   (fetchNuGet {
-    name = "System.Text.Encodings.Web";
+    pname = "System.Text.Encodings.Web";
     version = "5.0.0";
     sha256 = "144pgy65jc3bkar7d4fg1c0rq6qmkx68gj9k1ldk97558w22v1r1";
   })
   (fetchNuGet {
-    name = "System.Text.Json";
+    pname = "System.Text.Json";
     version = "4.7.2";
     sha256 = "10xj1pw2dgd42anikvj9qm23ccssrcp7dpznpj4j7xjp1ikhy3y4";
   })
   (fetchNuGet {
-    name = "System.Text.Json";
+    pname = "System.Text.Json";
     version = "5.0.0";
     sha256 = "1gpgl18z6qrgmqrikgh99xkjwzb1didrjp77bch7nrlra21gr4ks";
   })
   (fetchNuGet {
-    name = "System.Text.RegularExpressions";
+    pname = "System.Text.RegularExpressions";
     version = "4.1.0";
     sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
   })
   (fetchNuGet {
-    name = "System.Text.RegularExpressions";
+    pname = "System.Text.RegularExpressions";
     version = "4.3.0";
     sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
   })
   (fetchNuGet {
-    name = "System.Threading.Channels";
+    pname = "System.Threading.Channels";
     version = "4.5.0";
     sha256 = "0n6z3wjia7h2a5vl727p97riydnb6jhhkb1pdcnizza02dwkz0nz";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks.Extensions";
+    pname = "System.Threading.Tasks.Extensions";
     version = "4.0.0";
     sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks.Extensions";
+    pname = "System.Threading.Tasks.Extensions";
     version = "4.3.0";
     sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks.Extensions";
+    pname = "System.Threading.Tasks.Extensions";
     version = "4.5.3";
     sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks.Extensions";
+    pname = "System.Threading.Tasks.Extensions";
     version = "4.5.4";
     sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks";
+    pname = "System.Threading.Tasks";
     version = "4.0.11";
     sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks";
+    pname = "System.Threading.Tasks";
     version = "4.3.0";
     sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
   })
   (fetchNuGet {
-    name = "System.Threading.Thread";
+    pname = "System.Threading.Thread";
     version = "4.0.0";
     sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc";
   })
   (fetchNuGet {
-    name = "System.Threading.ThreadPool";
+    pname = "System.Threading.ThreadPool";
     version = "4.0.10";
     sha256 = "0fdr61yjcxh5imvyf93n2m3n5g9pp54bnw2l1d2rdl9z6dd31ypx";
   })
   (fetchNuGet {
-    name = "System.Threading.ThreadPool";
+    pname = "System.Threading.ThreadPool";
     version = "4.3.0";
     sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1";
   })
   (fetchNuGet {
-    name = "System.Threading.Timer";
+    pname = "System.Threading.Timer";
     version = "4.0.1";
     sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
   })
   (fetchNuGet {
-    name = "System.Threading.Timer";
+    pname = "System.Threading.Timer";
     version = "4.3.0";
     sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56";
   })
   (fetchNuGet {
-    name = "System.Threading";
+    pname = "System.Threading";
     version = "4.0.11";
     sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
   })
   (fetchNuGet {
-    name = "System.Threading";
+    pname = "System.Threading";
     version = "4.3.0";
     sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
   })
   (fetchNuGet {
-    name = "System.Xml.ReaderWriter";
+    pname = "System.Xml.ReaderWriter";
     version = "4.0.11";
     sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
   })
   (fetchNuGet {
-    name = "System.Xml.ReaderWriter";
+    pname = "System.Xml.ReaderWriter";
     version = "4.3.0";
     sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
   })
   (fetchNuGet {
-    name = "System.Xml.XDocument";
+    pname = "System.Xml.XDocument";
     version = "4.0.11";
     sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
   })
   (fetchNuGet {
-    name = "System.Xml.XDocument";
+    pname = "System.Xml.XDocument";
     version = "4.3.0";
     sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
   })
   (fetchNuGet {
-    name = "System.Xml.XmlDocument";
+    pname = "System.Xml.XmlDocument";
     version = "4.0.1";
     sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1";
   })
   (fetchNuGet {
-    name = "System.Xml.XmlDocument";
+    pname = "System.Xml.XmlDocument";
     version = "4.3.0";
     sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
   })
   (fetchNuGet {
-    name = "System.Xml.XPath.XmlDocument";
+    pname = "System.Xml.XPath.XmlDocument";
     version = "4.0.1";
     sha256 = "0l7yljgif41iv5g56l3nxy97hzzgck2a7rhnfnljhx9b0ry41bvc";
   })
   (fetchNuGet {
-    name = "System.Xml.XPath";
+    pname = "System.Xml.XPath";
     version = "4.0.1";
     sha256 = "0fjqgb6y66d72d5n8qq1h213d9nv2vi8mpv8p28j3m9rccmsh04m";
   })
   (fetchNuGet {
-    name = "Text.Analyzers";
+    pname = "Text.Analyzers";
     version = "2.6.4";
     sha256 = "1fm3gjnbfnjap3wphx5x48awriy14a2g3s9c1nc4m8w85k8mqdsl";
   })
   (fetchNuGet {
-    name = "TwentyTwenty.Storage.Amazon";
+    pname = "TwentyTwenty.Storage.Amazon";
     version = "2.12.1";
     sha256 = "03nrkvhki35w1rqx94s97rwxl0qwqlczyiimhrkc72vjppn5p6ph";
   })
   (fetchNuGet {
-    name = "TwentyTwenty.Storage.Azure";
+    pname = "TwentyTwenty.Storage.Azure";
     version = "2.12.1";
     sha256 = "10q7gpr8kmgzmxrzj3paqlnw4d8li8scwpxkzs11ildscfp6hvlv";
   })
   (fetchNuGet {
-    name = "TwentyTwenty.Storage.Google";
+    pname = "TwentyTwenty.Storage.Google";
     version = "2.12.1";
     sha256 = "0d8s7p9brp03h9dpv3wxnqg0xsm7d9p4k6dpxpb9jak535khxzhp";
   })
   (fetchNuGet {
-    name = "TwentyTwenty.Storage.Local";
+    pname = "TwentyTwenty.Storage.Local";
     version = "2.12.1";
     sha256 = "1zmjqwd1v3z78ab4vdmaadh94465k1qgpv7ylv8x3sdx4z78yjm8";
   })
   (fetchNuGet {
-    name = "TwentyTwenty.Storage";
+    pname = "TwentyTwenty.Storage";
     version = "2.12.1";
     sha256 = "0m41dxzc3hh0f4j1k4q915pvcq6zr0hv1pj6b3sayrn8vjhk64qb";
   })
   (fetchNuGet {
-    name = "WindowsAzure.Storage";
+    pname = "WindowsAzure.Storage";
     version = "9.3.3";
     sha256 = "14b0b0nj85yvyn0h8ghr3kj6di2nkbzjxc2q98f1wcr0151xvdfx";
   })
   (fetchNuGet {
-    name = "xunit.abstractions";
+    pname = "xunit.abstractions";
     version = "2.0.3";
     sha256 = "00wl8qksgkxld76fgir3ycc5rjqv1sqds6x8yx40927q5py74gfh";
   })
   (fetchNuGet {
-    name = "xunit.analyzers";
+    pname = "xunit.analyzers";
     version = "0.10.0";
     sha256 = "15n02q3akyqbvkp8nq75a8rd66d4ax0rx8fhdcn8j78pi235jm7j";
   })
   (fetchNuGet {
-    name = "xunit.assert";
+    pname = "xunit.assert";
     version = "2.4.1";
     sha256 = "1imynzh80wxq2rp9sc4gxs4x1nriil88f72ilhj5q0m44qqmqpc6";
   })
   (fetchNuGet {
-    name = "xunit.core";
+    pname = "xunit.core";
     version = "2.4.1";
     sha256 = "1nnb3j4kzmycaw1g76ii4rfqkvg6l8gqh18falwp8g28h802019a";
   })
   (fetchNuGet {
-    name = "xunit.extensibility.core";
+    pname = "xunit.extensibility.core";
     version = "2.4.1";
     sha256 = "103qsijmnip2pnbhciqyk2jyhdm6snindg5z2s57kqf5pcx9a050";
   })
   (fetchNuGet {
-    name = "xunit.extensibility.execution";
+    pname = "xunit.extensibility.execution";
     version = "2.4.1";
     sha256 = "1pbilxh1gp2ywm5idfl0klhl4gb16j86ib4x83p8raql1dv88qia";
   })
   (fetchNuGet {
-    name = "xunit.runner.visualstudio";
+    pname = "xunit.runner.visualstudio";
     version = "2.4.2";
     sha256 = "0fi85h43nyrhfc5jzg07znh01r7cpb7bpjdc6mzb9z1pm14ppfm6";
   })
   (fetchNuGet {
-    name = "xunit";
+    pname = "xunit";
     version = "2.4.1";
     sha256 = "0xf3kaywpg15flqaqfgywqyychzk15kz0kz34j21rcv78q9ywq20";
   })
   (fetchNuGet {
-    name = "YamlDotNet";
+    pname = "YamlDotNet";
     version = "8.0.0";
     sha256 = "09hr1jimmfhcpk97p963y94h2k5p7wzcj4mpwqpdnwzbyrp2flpm";
   })
diff --git a/pkgs/applications/blockchains/dero/default.nix b/pkgs/applications/blockchains/dero/default.nix
deleted file mode 100644
index 6b15cbd0a1684..0000000000000
--- a/pkgs/applications/blockchains/dero/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, unbound, openssl, boost
-, lmdb, miniupnpc, readline }:
-
-stdenv.mkDerivation rec {
-  pname = "dero";
-  version = "0.11.7";
-
-  src = fetchFromGitHub {
-    owner = "deroproject";
-    repo = "dero";
-    rev = "v${version}";
-    sha256 = "1v8b9wbmqbpyf4jpc0v276qzk3hc5fpddcmwvv5k5yfi30nmbh5c";
-  };
-
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ boost miniupnpc openssl lmdb unbound readline ];
-
-  meta = with lib; {
-    description = "Secure, private blockchain with smart contracts based on Monero";
-    homepage = "https://dero.io/";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ fpletz ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/applications/blockchains/dogecoin/default.nix b/pkgs/applications/blockchains/dogecoin/default.nix
index 16ac7a787fb78..35b9fb026e398 100644
--- a/pkgs/applications/blockchains/dogecoin/default.nix
+++ b/pkgs/applications/blockchains/dogecoin/default.nix
@@ -7,13 +7,13 @@
 with lib;
 stdenv.mkDerivation rec {
   name = "dogecoin" + (toString (optional (!withGui) "d")) + "-" + version;
-  version = "1.14.4";
+  version = "1.14.5";
 
   src = fetchFromGitHub {
     owner = "dogecoin";
     repo = "dogecoin";
     rev = "v${version}";
-    sha256 = "sha256-uITX5DSyC/m0ynwCkkbGgUj8kMuNgnsNo8H8RQSGPEA=";
+    sha256 = "sha256-Ewefy6sptSQDJVbvQqFoawhA/ujKEn9W2JWyoPYD7d0=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/pkgs/applications/blockchains/electrs/default.nix b/pkgs/applications/blockchains/electrs/default.nix
index 13d0994799ab4..ace5ec94c639c 100644
--- a/pkgs/applications/blockchains/electrs/default.nix
+++ b/pkgs/applications/blockchains/electrs/default.nix
@@ -12,16 +12,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "electrs";
-  version = "0.9.2";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
     owner = "romanz";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-dYKSc5fU66fu+GdTeWQBrIOJAiBGdYAOS7MCto98Xss=";
+    hash = "sha256-sTQ/dX1uXJkEmrNZ47qjBlrexO50y0NGNhw71rHc9bw=";
   };
 
-  cargoHash = "sha256-M4H5tUbo1f18kk8S53saebSnZhZFr8udw41BUNJbQVI==";
+  cargoHash = "sha256-1ZQt8LaqgxNxFfgCVCK0GVwbcVfX3v9iz7tHvzgyI0g=";
 
   # needed for librocksdb-sys
   nativeBuildInputs = [ llvmPackages.clang ];
diff --git a/pkgs/applications/blockchains/elements/default.nix b/pkgs/applications/blockchains/elements/default.nix
index 63914af6f3c21..b0ed8a1a2e879 100644
--- a/pkgs/applications/blockchains/elements/default.nix
+++ b/pkgs/applications/blockchains/elements/default.nix
@@ -24,11 +24,11 @@
 with lib;
 stdenv.mkDerivation rec {
   pname = if withGui then "elements" else "elementsd";
-  version = "0.21.0";
+  version = "0.21.0.1";
 
   src = fetchurl {
     url = "https://github.com/ElementsProject/elements/archive/elements-${version}.tar.gz";
-    sha256 = "0d9mcb0nw9qqhv0jhpddi9i4iry3w7b5jifsl5kpcw82qrkvgfgj";
+    sha256 = "00a2lrn77mfmr5dvrqwplk20gaxxq4cd9gcx667hgmfmmz1v6r6b";
   };
 
   nativeBuildInputs =
diff --git a/pkgs/applications/blockchains/ergo/default.nix b/pkgs/applications/blockchains/ergo/default.nix
index 422ad8210de67..96ca870b79fb2 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 = "4.0.15";
+  version = "4.0.16.2";
 
   src = fetchurl {
     url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
-    sha256 = "sha256-4omuu/9EeywWDkk//4TTal/1siCe/4YMmEsIefBxsuY=";
+    sha256 = "sha256-nAaNT5Rt/oLBA2pSJSinoLKMYJ0VZmuC0zoMYbMSAJQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/blockchains/go-ethereum/default.nix b/pkgs/applications/blockchains/go-ethereum/default.nix
index b9f31a3e7fa7f..e1dc572e117dd 100644
--- a/pkgs/applications/blockchains/go-ethereum/default.nix
+++ b/pkgs/applications/blockchains/go-ethereum/default.nix
@@ -9,17 +9,17 @@ let
 
 in buildGoModule rec {
   pname = "go-ethereum";
-  version = "1.10.8";
+  version = "1.10.14";
 
   src = fetchFromGitHub {
     owner = "ethereum";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-r4ifLa4CMZvp0MaCkxWo5rWLEnFdX//mYlC08hndXhQ=";
+    sha256 = "sha256-0DQrcei3FM+X4BYokou7dPNVCcJTbY05YsTvzdtsas8=";
   };
 
   runVend = true;
-  vendorSha256 = "sha256-e8aKQMVEEf0BzpdljkOBxznj5P1Go/6EbY9mdhDLyrw=";
+  vendorSha256 = "sha256-i2FOAN1ng3WNOWaFowiSSuYR4LA1Bo3tjkvgcClBXSU=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index eb44dc219b667..908ace89db551 100644
--- a/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "ledger-live-desktop";
-  version = "2.35.1";
+  version = "2.36.3";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
-    hash = "sha256:0z60c4sjq63r5rs95rbv7afliia05l1p9bgfd5zv7i51qxgzfs4a";
+    hash = "sha256:1sxsr70nm86fyx2m3wf694x1p6kvmkwxw6fqnslpbyjpyi9x73cd";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/blockchains/lightning-loop/default.nix b/pkgs/applications/blockchains/lightning-loop/default.nix
index f33b005cdd93b..85ec49f3be504 100644
--- a/pkgs/applications/blockchains/lightning-loop/default.nix
+++ b/pkgs/applications/blockchains/lightning-loop/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "lightning-loop";
-  version = "0.15.0-beta";
+  version = "0.16.0-beta";
 
   src = fetchFromGitHub {
     owner = "lightninglabs";
     repo = "loop";
     rev = "v${version}";
-    sha256 = "1yjc04jiam3836w7vn3b1jqj1dq1k8wwfnccir0vh29cn6v0cf63";
+    sha256 = "0q4lk338mr30frilgnjr43gd55z7ryj2s260437b4pnp03hmbf10";
   };
 
-  vendorSha256 = "0c3ly0s438sr9iql2ps4biaswphp7dfxshddyw5fcm0ajqzvhrmw";
+  vendorSha256 = "14862603rrss14p537j9i7iwflaaprwrnslmqm9hpb7hj52bxqfv";
 
   subPackages = [ "cmd/loop" "cmd/loopd" ];
 
diff --git a/pkgs/applications/blockchains/lightning-pool/default.nix b/pkgs/applications/blockchains/lightning-pool/default.nix
index f33ede49398a3..ccb65fb0fd879 100644
--- a/pkgs/applications/blockchains/lightning-pool/default.nix
+++ b/pkgs/applications/blockchains/lightning-pool/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "lightning-pool";
-  version = "0.5.1-alpha";
+  version = "0.5.3-alpha";
 
   src = fetchFromGitHub {
     owner = "lightninglabs";
     repo = "pool";
     rev = "v${version}";
-    sha256 = "147s0p4arfxl2akzm267p8zfy6hgssym5rwxv78kp8i39mfinpkn";
+    sha256 = "1nc3hksk9qcxrsyqpz9vcfc8x093rc8yx8ppfk177j9fhdnn8bk7";
   };
 
-  vendorSha256 = "0zd3bwqi0hnk0562x9hd62cwjw1xj386m83jagg41kzz0cpcr7zl";
+  vendorSha256 = "09yxaa74814l1rp0arqhqpplr2j0p8dj81zqcbxlwp5ckjv9r2za";
 
   subPackages = [ "cmd/pool" "cmd/poold" ];
 
diff --git a/pkgs/applications/blockchains/lnd/default.nix b/pkgs/applications/blockchains/lnd/default.nix
index f9cef2898bfcc..3cc054cea5938 100644
--- a/pkgs/applications/blockchains/lnd/default.nix
+++ b/pkgs/applications/blockchains/lnd/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "lnd";
-  version = "0.14.0-beta";
+  version = "0.14.1-beta";
 
   src = fetchFromGitHub {
     owner = "lightningnetwork";
     repo = "lnd";
     rev = "v${version}";
-    sha256 = "0pf84l46cfhbmbzjdkpmqp494wqix8715zawm537mm94k3q25bis";
+    sha256 = "0arm36682y4csdv9abqs0l8rgxkiqkamrps7q8wpyyg4n78yiij3";
   };
 
-  vendorSha256 = "1481zscd9lrnzxsaxkpaaa8fjazmfynhim13f8lj2yd9d21j5d31";
+  vendorSha256 = "13zhs0gb7chi0zz5rabmw3sd5fcpxc4s553crfcg7lrnbn5hcwzv";
 
   subPackages = [ "cmd/lncli" "cmd/lnd" ];
 
diff --git a/pkgs/applications/blockchains/lndmanage/default.nix b/pkgs/applications/blockchains/lndmanage/default.nix
index 450d9b4d44417..ebbe653c96b20 100644
--- a/pkgs/applications/blockchains/lndmanage/default.nix
+++ b/pkgs/applications/blockchains/lndmanage/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "lndmanage";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "bitromortac";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1vnv03k2d11rw6mry6fmspiy3hqsza8y3daxnn4lp038gw1y0f4z";
+    hash = "sha256-wPr/R+WGACyhv2Qh9JeLJwvr2vQfxpqj2XjEkrRoSX4=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/applications/blockchains/monero/default.nix b/pkgs/applications/blockchains/monero-cli/default.nix
index ad07c3eba0b93..40ce59f92d682 100644
--- a/pkgs/applications/blockchains/monero/default.nix
+++ b/pkgs/applications/blockchains/monero-cli/default.nix
@@ -8,14 +8,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  pname = "monero";
-  version = "0.17.2.3";
+  pname = "monero-cli";
+  version = "0.17.3.0";
 
   src = fetchFromGitHub {
     owner = "monero-project";
     repo = "monero";
     rev = "v${version}";
-    sha256 = "0nax991fshfh51grhh2ryfrwwws35k16gzl1l3niva28zff2xmq6";
+    sha256 = "1spsf7m3x4psp9s7mivr6x4886jnbq4i8ll2dl8bv5bsdhcd3pjm";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/blockchains/monero/use-system-libraries.patch b/pkgs/applications/blockchains/monero-cli/use-system-libraries.patch
index 57e2a2e9a6960..5d3e3561d5548 100644
--- a/pkgs/applications/blockchains/monero/use-system-libraries.patch
+++ b/pkgs/applications/blockchains/monero-cli/use-system-libraries.patch
@@ -1,14 +1,17 @@
 diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
-index a8916a7d0..39ec7747b 100644
+index 5b7f69a56..5536debe8 100644
 --- a/external/CMakeLists.txt
 +++ b/external/CMakeLists.txt
-@@ -37,34 +37,16 @@
+@@ -36,22 +36,9 @@
+ # others.
  
  find_package(Miniupnpc REQUIRED)
- 
+-
 -message(STATUS "Using in-tree miniupnpc")
+-set(UPNPC_NO_INSTALL TRUE CACHE BOOL "Disable miniupnp installation" FORCE)
 -add_subdirectory(miniupnp/miniupnpc)
 -set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
+-set_property(TARGET libminiupnpc-static PROPERTY POSITION_INDEPENDENT_CODE ON)
 -if(MSVC)
 -  set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267")
 -elseif(NOT MSVC)
@@ -25,36 +28,16 @@ index a8916a7d0..39ec7747b 100644
  
  find_package(Unbound)
  
- if(NOT UNBOUND_INCLUDE_DIR OR STATIC)
--  # NOTE: If STATIC is true, CMAKE_FIND_LIBRARY_SUFFIXES has been reordered.
--  # unbound has config tests which used OpenSSL libraries, so -ldl may need to
--  # be set in this case.
--  # The unbound CMakeLists.txt can set it, since it's also needed for the
--  # static OpenSSL libraries set up there after with target_link_libraries.
--  add_subdirectory(unbound)
--
--  set(UNBOUND_STATIC true PARENT_SCOPE)
--  set(UNBOUND_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/unbound/libunbound" PARENT_SCOPE)
--  set(UNBOUND_LIBRARY "unbound" PARENT_SCOPE)
--  set(UNBOUND_LIBRARY_DIRS "${LIBEVENT2_LIBDIR}" PARENT_SCOPE)
-+  set(UNBOUND_STATIC false PARENT_SCOPE)
-+  set(UPNP_INCLUDE ${MINIUPNP_INCLUDE_DIR} PARENT_SCOPE)
-+  set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE)
- else()
-   message(STATUS "Found libunbound include (unbound.h) in ${UNBOUND_INCLUDE_DIR}")
-   if(UNBOUND_LIBRARIES)
-@@ -81,4 +63,5 @@ endif()
+@@ -69,4 +56,3 @@ endif()
  add_subdirectory(db_drivers)
  add_subdirectory(easylogging++)
  add_subdirectory(qrcodegen)
 -add_subdirectory(randomx EXCLUDE_FROM_ALL)
-+
-+find_library(RANDOMX_LIBRARIES NAMES RandomX)
 diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl
-index 175741146..088b582f7 100644
+index d4b39869c..13071d898 100644
 --- a/src/p2p/net_node.inl
 +++ b/src/p2p/net_node.inl
-@@ -60,9 +60,9 @@
+@@ -61,9 +61,9 @@
  #include "cryptonote_core/cryptonote_core.h"
  #include "net/parse.h"
  
diff --git a/pkgs/applications/blockchains/monero-gui/default.nix b/pkgs/applications/blockchains/monero-gui/default.nix
index 303cc6c54c5b9..9dd37e35eb4f0 100644
--- a/pkgs/applications/blockchains/monero-gui/default.nix
+++ b/pkgs/applications/blockchains/monero-gui/default.nix
@@ -5,7 +5,7 @@
 , qtmultimedia, qtxmlpatterns
 , qtquickcontrols, qtquickcontrols2
 , qtmacextras
-, monero, miniupnpc, unbound, readline
+, monero-cli, miniupnpc, unbound, readline
 , boost, libunwind, libsodium, pcsclite
 , randomx, zeromq, libgcrypt, libgpg-error
 , hidapi, rapidjson, quirc
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "monero-gui";
-  version = "0.17.2.3";
+  version = "0.17.3.0";
 
   src = fetchFromGitHub {
     owner  = "monero-project";
     repo   = "monero-gui";
     rev    = "v${version}";
-    sha256 = "1d8y5yqyw0db2jdv9mwkczwm2qcwhzyslvq994yq5rvs4vkd8xjg";
+    sha256 = "0rc1p0k16icgfhc7yvkvb8p6570zz0cvigs648l05fcm3mf787rp";
   };
 
   nativeBuildInputs = [
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     qtbase qtdeclarative qtgraphicaleffects
     qtmultimedia qtquickcontrols qtquickcontrols2
     qtxmlpatterns
-    monero miniupnpc unbound readline
+    monero-cli miniupnpc unbound readline
     randomx libgcrypt libgpg-error
     boost libunwind libsodium pcsclite
     zeromq hidapi rapidjson quirc
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   postUnpack = ''
     # copy monero sources here
     # (needs to be writable)
-    cp -r ${monero.source}/* source/monero
+    cp -r ${monero-cli.source}/* source/monero
     chmod -R +w source/monero
   '';
 
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
 
     # use monerod from the monero package
     substituteInPlace src/daemon/DaemonManager.cpp \
-      --replace 'QApplication::applicationDirPath() + "' '"${monero}/bin'
+      --replace 'QApplication::applicationDirPath() + "' '"${monero-cli}/bin'
 
     # 1: only build external deps, *not* the full monero
     # 2: use nixpkgs libraries
diff --git a/pkgs/applications/blockchains/nbxplorer/default.nix b/pkgs/applications/blockchains/nbxplorer/default.nix
index 01e1dfb8c427a..c4add5b67f559 100644
--- a/pkgs/applications/blockchains/nbxplorer/default.nix
+++ b/pkgs/applications/blockchains/nbxplorer/default.nix
@@ -2,13 +2,13 @@
 
 buildDotnetModule rec {
   pname = "nbxplorer";
-  version = "2.2.16";
+  version = "2.2.18";
 
   src = fetchFromGitHub {
     owner = "dgarage";
     repo = "NBXplorer";
     rev = "v${version}";
-    sha256 = "sha256-6nq5oCEVADZbzQJaEizzt6Lag11bZYLKGMTl2snZob8=";
+    sha256 = "sha256-zjSHgMdK417bm1Z/B2kvloDnPTqzM9jEVkZvoKeBkzM=";
   };
 
   projectFile = "NBXplorer/NBXplorer.csproj";
diff --git a/pkgs/applications/blockchains/nbxplorer/deps.nix b/pkgs/applications/blockchains/nbxplorer/deps.nix
index c9cc80016b78f..05c602c27d931 100644
--- a/pkgs/applications/blockchains/nbxplorer/deps.nix
+++ b/pkgs/applications/blockchains/nbxplorer/deps.nix
@@ -1,1076 +1,1081 @@
 { fetchNuGet }: [
   (fetchNuGet {
-    name = "DBTrie";
+    pname = "DBTrie";
     version = "1.0.39";
     sha256 = "0kbvl3kf73hrh1w2n3d2wshlxpqsv1pwydhwv2wxigmvs70fn1xp";
   })
   (fetchNuGet {
-    name = "Microsoft.AspNetCore.JsonPatch";
+    pname = "Microsoft.AspNetCore.JsonPatch";
     version = "3.1.19";
     sha256 = "1fh3k85k988jw35sf5hvm6jwmvzmslzpfvf3jk3sn3f3s6gyk0an";
   })
   (fetchNuGet {
-    name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
+    pname = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
     version = "3.1.19";
     sha256 = "1nh08kjdc152m85ycwxn1q8r69f0l02p6cac6q57nzlyy5gyj2rs";
   })
   (fetchNuGet {
-    name = "Microsoft.Azure.Amqp";
+    pname = "Microsoft.Azure.Amqp";
     version = "2.4.9";
     sha256 = "15kvklhfl17713kwin8p71lcxq2jx87bk1d8gsl597z3w6l4cqma";
   })
   (fetchNuGet {
-    name = "Microsoft.Azure.ServiceBus";
+    pname = "Microsoft.Azure.ServiceBus";
     version = "4.2.1";
     sha256 = "0akxqds078p7djd5g95i9dh4wrlfarabkq2ybn614cqdgl4z0is5";
   })
   (fetchNuGet {
-    name = "Microsoft.Azure.Services.AppAuthentication";
+    pname = "Microsoft.Azure.Services.AppAuthentication";
     version = "1.0.3";
     sha256 = "0as64agcsilwgbvwx7iw3abdxyp9cbfpczbagjz49mqmmgnqp899";
   })
   (fetchNuGet {
-    name = "Microsoft.CodeCoverage";
+    pname = "Microsoft.CodeCoverage";
     version = "16.11.0";
     sha256 = "0f41l3kks6wk5vjaxpjh8m2flnrvlbvqgqflamhv8rfz4y8ifgdv";
   })
   (fetchNuGet {
-    name = "Microsoft.CSharp";
+    pname = "Microsoft.CSharp";
     version = "4.0.1";
     sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj";
   })
   (fetchNuGet {
-    name = "Microsoft.CSharp";
+    pname = "Microsoft.CSharp";
     version = "4.3.0";
     sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb";
   })
   (fetchNuGet {
-    name = "Microsoft.CSharp";
+    pname = "Microsoft.CSharp";
     version = "4.7.0";
     sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration.Abstractions";
+    pname = "Microsoft.Extensions.Configuration.Abstractions";
     version = "2.1.0";
     sha256 = "03gzlr3z9j1xnr1k6y91zgxpz3pj27i3zsvjwj7i8jqnlqmk7pxd";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration.EnvironmentVariables";
+    pname = "Microsoft.Extensions.Configuration.EnvironmentVariables";
     version = "2.1.0";
     sha256 = "0xx3idb1l5y1da5zynlys5gyarijmw5pc9hgci8xdxbrcv6rzbjb";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration.FileExtensions";
+    pname = "Microsoft.Extensions.Configuration.FileExtensions";
     version = "2.1.0";
     sha256 = "1lz2xwm63clbh9dfhmygbqvcp4dsrwh5jihv82dmqd5h7lqngl40";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration.Ini";
+    pname = "Microsoft.Extensions.Configuration.Ini";
     version = "2.1.0";
     sha256 = "0bchsljywcq36si4zs2dcx2gj8x98ww93dh2bx2z6x5ilxyjnfip";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Configuration";
+    pname = "Microsoft.Extensions.Configuration";
     version = "2.1.0";
     sha256 = "04rjl38wlr1jjjpbzgf64jp0ql6sbzbil0brwq9mgr3hdgwd7vx2";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.FileProviders.Abstractions";
+    pname = "Microsoft.Extensions.FileProviders.Abstractions";
     version = "2.1.0";
     sha256 = "1sxls5f5cgb0wr8cwb05skqmz074683hrhmd3hhq6m5dasnzb8n3";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.FileProviders.Physical";
+    pname = "Microsoft.Extensions.FileProviders.Physical";
     version = "2.1.0";
     sha256 = "1firpsl5bk219i9gdfgiqw1zm68146h1dzx9hvawfpw9slfaa56w";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.FileSystemGlobbing";
+    pname = "Microsoft.Extensions.FileSystemGlobbing";
     version = "2.1.0";
     sha256 = "1d2622qp22x1cnlwycnzjbc3sgi9jria26fk78zwzsa08npa3avv";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Logging.Abstractions";
+    pname = "Microsoft.Extensions.Logging.Abstractions";
     version = "1.0.0";
     sha256 = "1sh9bidmhy32gkz6fkli79mxv06546ybrzppfw5v2aq0bda1ghka";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Logging.Abstractions";
+    pname = "Microsoft.Extensions.Logging.Abstractions";
     version = "2.1.0";
     sha256 = "1gvgif1wcx4k6pv7gc00qv1hid945jdywy1s50s33q0hfd91hbnj";
   })
   (fetchNuGet {
-    name = "Microsoft.Extensions.Primitives";
+    pname = "Microsoft.Extensions.Primitives";
     version = "2.1.0";
     sha256 = "1r9gzwdfmb8ysnc4nzmyz5cyar1lw0qmizsvrsh252nhlyg06nmb";
   })
   (fetchNuGet {
-    name = "Microsoft.IdentityModel.Clients.ActiveDirectory";
+    pname = "Microsoft.IdentityModel.Clients.ActiveDirectory";
     version = "3.14.2";
     sha256 = "0g9a2z1qjxd71lqqghp0a542xk9jkvz951bbnnnw43is4hlnqncq";
   })
   (fetchNuGet {
-    name = "Microsoft.IdentityModel.JsonWebTokens";
+    pname = "Microsoft.IdentityModel.JsonWebTokens";
     version = "5.4.0";
     sha256 = "0a5fn0p10dmkwa7vvbq28xw78aq33xm7c82l7vhla95n0lr178n8";
   })
   (fetchNuGet {
-    name = "Microsoft.IdentityModel.Logging";
+    pname = "Microsoft.IdentityModel.Logging";
     version = "5.4.0";
     sha256 = "1idlpyg3q3syam6aflfbnsa7iql685mjralr1cnfpryf00lm59v0";
   })
   (fetchNuGet {
-    name = "Microsoft.IdentityModel.Tokens";
+    pname = "Microsoft.IdentityModel.Tokens";
     version = "5.4.0";
     sha256 = "0gpdh5rs0p97zm41pphha8n3ccd50b1iszikj3917f111khpw8l0";
   })
   (fetchNuGet {
-    name = "Microsoft.NET.Test.Sdk";
+    pname = "Microsoft.NET.Test.Sdk";
     version = "16.11.0";
     sha256 = "1a2y6vw6p9xp3w72zq2lwrjl8bxv87s9d7zd2dh4zwbzh1c5slxl";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
+    pname = "Microsoft.NETCore.Platforms";
     version = "1.0.1";
     sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
+    pname = "Microsoft.NETCore.Platforms";
     version = "1.0.2";
     sha256 = "17rrj0awknxx6rpdxr7yijdxqdmbbpdlcf2nsadjbd4d2gw7dck0";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
+    pname = "Microsoft.NETCore.Platforms";
     version = "1.1.0";
     sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Targets";
+    pname = "Microsoft.NETCore.Targets";
     version = "1.0.1";
     sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
   })
   (fetchNuGet {
-    name = "Microsoft.NETCore.Targets";
+    pname = "Microsoft.NETCore.Targets";
     version = "1.1.0";
     sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
   })
   (fetchNuGet {
-    name = "Microsoft.TestPlatform.ObjectModel";
+    pname = "Microsoft.TestPlatform.ObjectModel";
     version = "16.11.0";
     sha256 = "1fc0ghk1cny4i8w43b94pxhl0srxisv6kaflkkp30ncsa9szhkxh";
   })
   (fetchNuGet {
-    name = "Microsoft.TestPlatform.TestHost";
+    pname = "Microsoft.TestPlatform.TestHost";
     version = "16.11.0";
     sha256 = "0hp1vndf2jhyg1f3miq4g2068z5kpfzy6nmswm25vymghxp1ws4k";
   })
   (fetchNuGet {
-    name = "Microsoft.Win32.Primitives";
+    pname = "Microsoft.Win32.Primitives";
     version = "4.0.1";
     sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
   })
   (fetchNuGet {
-    name = "Microsoft.Win32.Primitives";
+    pname = "Microsoft.Win32.Primitives";
     version = "4.3.0";
     sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq";
   })
   (fetchNuGet {
-    name = "Microsoft.Win32.Registry";
+    pname = "Microsoft.Win32.Registry";
     version = "4.3.0";
     sha256 = "1gxyzxam8163vk1kb6xzxjj4iwspjsz9zhgn1w9rjzciphaz0ig7";
   })
   (fetchNuGet {
-    name = "NBitcoin.Altcoins";
+    pname = "NBitcoin.Altcoins";
     version = "3.0.8";
     sha256 = "1qck2nfj8494pxwzhccslq4cbypsgnwcv3nvz24czsd87wn8n618";
   })
   (fetchNuGet {
-    name = "NBitcoin.TestFramework";
+    pname = "NBitcoin.TestFramework";
     version = "3.0.6";
     sha256 = "0yw382238rjv0qmhz1xlb5v696s8sxbjf839c2ck6dqd947q403w";
   })
   (fetchNuGet {
-    name = "NBitcoin";
+    pname = "NBitcoin";
     version = "6.0.15";
     sha256 = "038dcl2k88w4cijws3pdnjflgy4lmqx70z0l7yqz355kmxjz8ain";
   })
   (fetchNuGet {
-    name = "NETStandard.Library";
+    pname = "NBitcoin";
+    version = "6.0.18";
+    sha256 = "1dr669h68cx6yfzr3n97yzzwbgnsv5g2008diyxngdjm55nh3q9s";
+  })
+  (fetchNuGet {
+    pname = "NETStandard.Library";
     version = "1.6.1";
     sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
   })
   (fetchNuGet {
-    name = "NETStandard.Library";
+    pname = "NETStandard.Library";
     version = "2.0.3";
     sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
   })
   (fetchNuGet {
-    name = "Newtonsoft.Json.Bson";
+    pname = "Newtonsoft.Json.Bson";
     version = "1.0.2";
     sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35";
   })
   (fetchNuGet {
-    name = "Newtonsoft.Json";
+    pname = "Newtonsoft.Json";
     version = "10.0.3";
     sha256 = "06vy67bkshclpz69kps4vgzc9h2cgg41c8vlqmdbwclfky7c4haq";
   })
   (fetchNuGet {
-    name = "Newtonsoft.Json";
+    pname = "Newtonsoft.Json";
     version = "11.0.2";
     sha256 = "1784xi44f4k8v1fr696hsccmwpy94bz7kixxqlri98zhcxn406b2";
   })
   (fetchNuGet {
-    name = "Newtonsoft.Json";
+    pname = "Newtonsoft.Json";
     version = "12.0.2";
     sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
   })
   (fetchNuGet {
-    name = "Newtonsoft.Json";
+    pname = "Newtonsoft.Json";
     version = "9.0.1";
     sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r";
   })
   (fetchNuGet {
-    name = "NicolasDorier.CommandLine.Configuration";
+    pname = "NicolasDorier.CommandLine.Configuration";
     version = "1.0.0.3";
     sha256 = "0al0pd4zhjpmn8m208xjmy17cbyab68grzdvzr2lhsckwkl6b1jg";
   })
   (fetchNuGet {
-    name = "NicolasDorier.CommandLine";
+    pname = "NicolasDorier.CommandLine";
     version = "1.0.0.2";
     sha256 = "08a9l18zkhcfa6f56xqylzvmqjzgxsmgkpm2r3ckvxfyml6w0qyy";
   })
   (fetchNuGet {
-    name = "NicolasDorier.StandardConfiguration";
+    pname = "NicolasDorier.StandardConfiguration";
     version = "1.0.0.18";
     sha256 = "0lgssxafv6cqlw21fb79fm0fcln0clgsk6zadcwrnjv9vampfw7b";
   })
   (fetchNuGet {
-    name = "NuGet.Frameworks";
+    pname = "NuGet.Frameworks";
     version = "5.0.0";
     sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr";
   })
   (fetchNuGet {
-    name = "RabbitMQ.Client";
+    pname = "RabbitMQ.Client";
     version = "5.1.2";
     sha256 = "195nxmnva1z2p0ahvn0kswv4d39f5bdy2sl3cxcvfziamc21xrmd";
   })
   (fetchNuGet {
-    name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
   })
   (fetchNuGet {
-    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
   })
   (fetchNuGet {
-    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
   })
   (fetchNuGet {
-    name = "runtime.native.System.IO.Compression";
+    pname = "runtime.native.System.IO.Compression";
     version = "4.3.0";
     sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d";
   })
   (fetchNuGet {
-    name = "runtime.native.System.Net.Http";
+    pname = "runtime.native.System.Net.Http";
     version = "4.0.1";
     sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
   })
   (fetchNuGet {
-    name = "runtime.native.System.Net.Http";
+    pname = "runtime.native.System.Net.Http";
     version = "4.3.0";
     sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk";
   })
   (fetchNuGet {
-    name = "runtime.native.System.Net.Security";
+    pname = "runtime.native.System.Net.Security";
     version = "4.3.0";
     sha256 = "0dnqjhw445ay3chpia9p6vy4w2j6s9vy3hxszqvdanpvvyaxijr3";
   })
   (fetchNuGet {
-    name = "runtime.native.System.Security.Cryptography.Apple";
+    pname = "runtime.native.System.Security.Cryptography.Apple";
     version = "4.3.0";
     sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q";
   })
   (fetchNuGet {
-    name = "runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
   })
   (fetchNuGet {
-    name = "runtime.native.System.Security.Cryptography";
+    pname = "runtime.native.System.Security.Cryptography";
     version = "4.0.0";
     sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
   })
   (fetchNuGet {
-    name = "runtime.native.System";
+    pname = "runtime.native.System";
     version = "4.0.0";
     sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
   })
   (fetchNuGet {
-    name = "runtime.native.System";
+    pname = "runtime.native.System";
     version = "4.3.0";
     sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
   })
   (fetchNuGet {
-    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
   })
   (fetchNuGet {
-    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
   })
   (fetchNuGet {
-    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple";
+    pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple";
     version = "4.3.0";
     sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi";
   })
   (fetchNuGet {
-    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3";
   })
   (fetchNuGet {
-    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
   })
   (fetchNuGet {
-    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
   })
   (fetchNuGet {
-    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
   })
   (fetchNuGet {
-    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
   })
   (fetchNuGet {
-    name = "System.AppContext";
+    pname = "System.AppContext";
     version = "4.3.0";
     sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya";
   })
   (fetchNuGet {
-    name = "System.Buffers";
+    pname = "System.Buffers";
     version = "4.3.0";
     sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy";
   })
   (fetchNuGet {
-    name = "System.Buffers";
+    pname = "System.Buffers";
     version = "4.4.0";
     sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19";
   })
   (fetchNuGet {
-    name = "System.Buffers";
+    pname = "System.Buffers";
     version = "4.5.0";
     sha256 = "1ywfqn4md6g3iilpxjn5dsr0f5lx6z0yvhqp4pgjcamygg73cz2c";
   })
   (fetchNuGet {
-    name = "System.Collections.Concurrent";
+    pname = "System.Collections.Concurrent";
     version = "4.0.12";
     sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
   })
   (fetchNuGet {
-    name = "System.Collections.Concurrent";
+    pname = "System.Collections.Concurrent";
     version = "4.3.0";
     sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8";
   })
   (fetchNuGet {
-    name = "System.Collections.NonGeneric";
+    pname = "System.Collections.NonGeneric";
     version = "4.3.0";
     sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
   })
   (fetchNuGet {
-    name = "System.Collections.Specialized";
+    pname = "System.Collections.Specialized";
     version = "4.3.0";
     sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
   })
   (fetchNuGet {
-    name = "System.Collections";
+    pname = "System.Collections";
     version = "4.0.11";
     sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
   })
   (fetchNuGet {
-    name = "System.Collections";
+    pname = "System.Collections";
     version = "4.3.0";
     sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
   })
   (fetchNuGet {
-    name = "System.ComponentModel.Primitives";
+    pname = "System.ComponentModel.Primitives";
     version = "4.3.0";
     sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
   })
   (fetchNuGet {
-    name = "System.ComponentModel.TypeConverter";
+    pname = "System.ComponentModel.TypeConverter";
     version = "4.3.0";
     sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
   })
   (fetchNuGet {
-    name = "System.ComponentModel";
+    pname = "System.ComponentModel";
     version = "4.3.0";
     sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
   })
   (fetchNuGet {
-    name = "System.Console";
+    pname = "System.Console";
     version = "4.3.0";
     sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Debug";
+    pname = "System.Diagnostics.Debug";
     version = "4.0.11";
     sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Debug";
+    pname = "System.Diagnostics.Debug";
     version = "4.3.0";
     sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.DiagnosticSource";
+    pname = "System.Diagnostics.DiagnosticSource";
     version = "4.3.0";
     sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.DiagnosticSource";
+    pname = "System.Diagnostics.DiagnosticSource";
     version = "4.5.1";
     sha256 = "1j8dgilsgd0n7y87wq1cdlnwck96wijhbyhdp4d01l1gzm3074c1";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Process";
+    pname = "System.Diagnostics.Process";
     version = "4.3.0";
     sha256 = "0g4prsbkygq8m21naqmcp70f24a1ksyix3dihb1r1f71lpi3cfj7";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Tools";
+    pname = "System.Diagnostics.Tools";
     version = "4.0.1";
     sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Tools";
+    pname = "System.Diagnostics.Tools";
     version = "4.3.0";
     sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Tracing";
+    pname = "System.Diagnostics.Tracing";
     version = "4.1.0";
     sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
   })
   (fetchNuGet {
-    name = "System.Diagnostics.Tracing";
+    pname = "System.Diagnostics.Tracing";
     version = "4.3.0";
     sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4";
   })
   (fetchNuGet {
-    name = "System.Dynamic.Runtime";
+    pname = "System.Dynamic.Runtime";
     version = "4.0.11";
     sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
   })
   (fetchNuGet {
-    name = "System.Dynamic.Runtime";
+    pname = "System.Dynamic.Runtime";
     version = "4.3.0";
     sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk";
   })
   (fetchNuGet {
-    name = "System.Globalization.Calendars";
+    pname = "System.Globalization.Calendars";
     version = "4.0.1";
     sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
   })
   (fetchNuGet {
-    name = "System.Globalization.Calendars";
+    pname = "System.Globalization.Calendars";
     version = "4.3.0";
     sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq";
   })
   (fetchNuGet {
-    name = "System.Globalization.Extensions";
+    pname = "System.Globalization.Extensions";
     version = "4.3.0";
     sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
   })
   (fetchNuGet {
-    name = "System.Globalization";
+    pname = "System.Globalization";
     version = "4.0.11";
     sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
   })
   (fetchNuGet {
-    name = "System.Globalization";
+    pname = "System.Globalization";
     version = "4.3.0";
     sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
   })
   (fetchNuGet {
-    name = "System.IdentityModel.Tokens.Jwt";
+    pname = "System.IdentityModel.Tokens.Jwt";
     version = "5.4.0";
     sha256 = "05f91fjn054bwphmbbg7c38ipl4i81v73j232jgcq6y16dx6ifyc";
   })
   (fetchNuGet {
-    name = "System.IO.Compression.ZipFile";
+    pname = "System.IO.Compression.ZipFile";
     version = "4.3.0";
     sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar";
   })
   (fetchNuGet {
-    name = "System.IO.Compression";
+    pname = "System.IO.Compression";
     version = "4.3.0";
     sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem.Primitives";
+    pname = "System.IO.FileSystem.Primitives";
     version = "4.0.1";
     sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem.Primitives";
+    pname = "System.IO.FileSystem.Primitives";
     version = "4.3.0";
     sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem";
+    pname = "System.IO.FileSystem";
     version = "4.0.1";
     sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
   })
   (fetchNuGet {
-    name = "System.IO.FileSystem";
+    pname = "System.IO.FileSystem";
     version = "4.3.0";
     sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
   })
   (fetchNuGet {
-    name = "System.IO";
+    pname = "System.IO";
     version = "4.1.0";
     sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
   })
   (fetchNuGet {
-    name = "System.IO";
+    pname = "System.IO";
     version = "4.3.0";
     sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
   })
   (fetchNuGet {
-    name = "System.Linq.Expressions";
+    pname = "System.Linq.Expressions";
     version = "4.1.0";
     sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
   })
   (fetchNuGet {
-    name = "System.Linq.Expressions";
+    pname = "System.Linq.Expressions";
     version = "4.3.0";
     sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
   })
   (fetchNuGet {
-    name = "System.Linq";
+    pname = "System.Linq";
     version = "4.1.0";
     sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
   })
   (fetchNuGet {
-    name = "System.Linq";
+    pname = "System.Linq";
     version = "4.3.0";
     sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
   })
   (fetchNuGet {
-    name = "System.Memory";
+    pname = "System.Memory";
     version = "4.5.0";
     sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30";
   })
   (fetchNuGet {
-    name = "System.Net.Http";
+    pname = "System.Net.Http";
     version = "4.3.0";
     sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j";
   })
   (fetchNuGet {
-    name = "System.Net.NameResolution";
+    pname = "System.Net.NameResolution";
     version = "4.3.0";
     sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq";
   })
   (fetchNuGet {
-    name = "System.Net.Primitives";
+    pname = "System.Net.Primitives";
     version = "4.0.11";
     sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
   })
   (fetchNuGet {
-    name = "System.Net.Primitives";
+    pname = "System.Net.Primitives";
     version = "4.3.0";
     sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii";
   })
   (fetchNuGet {
-    name = "System.Net.Security";
+    pname = "System.Net.Security";
     version = "4.3.0";
     sha256 = "1aa5igz31ivk6kpgsrwck3jccab7wd88wr52lddmgypmbh9mmf87";
   })
   (fetchNuGet {
-    name = "System.Net.Sockets";
+    pname = "System.Net.Sockets";
     version = "4.3.0";
     sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla";
   })
   (fetchNuGet {
-    name = "System.Net.WebHeaderCollection";
+    pname = "System.Net.WebHeaderCollection";
     version = "4.0.1";
     sha256 = "10bxpxj80c4z00z3ksrfswspq9qqsw8jwxcbzvymzycb97m9b55q";
   })
   (fetchNuGet {
-    name = "System.Net.WebHeaderCollection";
+    pname = "System.Net.WebHeaderCollection";
     version = "4.3.0";
     sha256 = "0ms3ddjv1wn8sqa5qchm245f3vzzif6l6fx5k92klqpn7zf4z562";
   })
   (fetchNuGet {
-    name = "System.Net.WebSockets.Client";
+    pname = "System.Net.WebSockets.Client";
     version = "4.0.2";
     sha256 = "0p8m9h94h9za8281hngpi6awka6v26s1gkk0npmxzqq4ilas6b4s";
   })
   (fetchNuGet {
-    name = "System.Net.WebSockets.Client";
+    pname = "System.Net.WebSockets.Client";
     version = "4.3.2";
     sha256 = "103y8lfsfa5xd1sqmq9sml4qyp4rij2i3fnnw119h119hb04l0rk";
   })
   (fetchNuGet {
-    name = "System.Net.WebSockets";
+    pname = "System.Net.WebSockets";
     version = "4.0.0";
     sha256 = "04jdhq9dp43x1m6hddn06sq74skc50i1yk6hip0224pj6fwxa4k2";
   })
   (fetchNuGet {
-    name = "System.Net.WebSockets";
+    pname = "System.Net.WebSockets";
     version = "4.3.0";
     sha256 = "1gfj800078kggcgl0xyl00a6y5k4wwh2k2qm69rjy22wbmq7fy4p";
   })
   (fetchNuGet {
-    name = "System.Numerics.Vectors";
+    pname = "System.Numerics.Vectors";
     version = "4.4.0";
     sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba";
   })
   (fetchNuGet {
-    name = "System.ObjectModel";
+    pname = "System.ObjectModel";
     version = "4.0.12";
     sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
   })
   (fetchNuGet {
-    name = "System.ObjectModel";
+    pname = "System.ObjectModel";
     version = "4.3.0";
     sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
   })
   (fetchNuGet {
-    name = "System.Private.DataContractSerialization";
+    pname = "System.Private.DataContractSerialization";
     version = "4.1.1";
     sha256 = "1xk9wvgzipssp1393nsg4n16zbr5481k03nkdlj954hzq5jkx89r";
   })
   (fetchNuGet {
-    name = "System.Private.DataContractSerialization";
+    pname = "System.Private.DataContractSerialization";
     version = "4.3.0";
     sha256 = "06fjipqvjp559rrm825x6pll8gimdj9x1n3larigh5hsm584gndw";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit.ILGeneration";
+    pname = "System.Reflection.Emit.ILGeneration";
     version = "4.0.1";
     sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit.ILGeneration";
+    pname = "System.Reflection.Emit.ILGeneration";
     version = "4.3.0";
     sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit.Lightweight";
+    pname = "System.Reflection.Emit.Lightweight";
     version = "4.0.1";
     sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit.Lightweight";
+    pname = "System.Reflection.Emit.Lightweight";
     version = "4.3.0";
     sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit";
+    pname = "System.Reflection.Emit";
     version = "4.0.1";
     sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
   })
   (fetchNuGet {
-    name = "System.Reflection.Emit";
+    pname = "System.Reflection.Emit";
     version = "4.3.0";
     sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
   })
   (fetchNuGet {
-    name = "System.Reflection.Extensions";
+    pname = "System.Reflection.Extensions";
     version = "4.0.1";
     sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
   })
   (fetchNuGet {
-    name = "System.Reflection.Extensions";
+    pname = "System.Reflection.Extensions";
     version = "4.3.0";
     sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
   })
   (fetchNuGet {
-    name = "System.Reflection.Metadata";
+    pname = "System.Reflection.Metadata";
     version = "1.6.0";
     sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
   })
   (fetchNuGet {
-    name = "System.Reflection.Primitives";
+    pname = "System.Reflection.Primitives";
     version = "4.0.1";
     sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
   })
   (fetchNuGet {
-    name = "System.Reflection.Primitives";
+    pname = "System.Reflection.Primitives";
     version = "4.3.0";
     sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
   })
   (fetchNuGet {
-    name = "System.Reflection.TypeExtensions";
+    pname = "System.Reflection.TypeExtensions";
     version = "4.1.0";
     sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
   })
   (fetchNuGet {
-    name = "System.Reflection.TypeExtensions";
+    pname = "System.Reflection.TypeExtensions";
     version = "4.3.0";
     sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
   })
   (fetchNuGet {
-    name = "System.Reflection";
+    pname = "System.Reflection";
     version = "4.1.0";
     sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
   })
   (fetchNuGet {
-    name = "System.Reflection";
+    pname = "System.Reflection";
     version = "4.3.0";
     sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
   })
   (fetchNuGet {
-    name = "System.Resources.ResourceManager";
+    pname = "System.Resources.ResourceManager";
     version = "4.0.1";
     sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
   })
   (fetchNuGet {
-    name = "System.Resources.ResourceManager";
+    pname = "System.Resources.ResourceManager";
     version = "4.3.0";
     sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
   })
   (fetchNuGet {
-    name = "System.Runtime.CompilerServices.Unsafe";
+    pname = "System.Runtime.CompilerServices.Unsafe";
     version = "4.5.0";
     sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43";
   })
   (fetchNuGet {
-    name = "System.Runtime.Extensions";
+    pname = "System.Runtime.Extensions";
     version = "4.1.0";
     sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
   })
   (fetchNuGet {
-    name = "System.Runtime.Extensions";
+    pname = "System.Runtime.Extensions";
     version = "4.3.0";
     sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
   })
   (fetchNuGet {
-    name = "System.Runtime.Handles";
+    pname = "System.Runtime.Handles";
     version = "4.0.1";
     sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
   })
   (fetchNuGet {
-    name = "System.Runtime.Handles";
+    pname = "System.Runtime.Handles";
     version = "4.3.0";
     sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
   })
   (fetchNuGet {
-    name = "System.Runtime.InteropServices.RuntimeInformation";
+    pname = "System.Runtime.InteropServices.RuntimeInformation";
     version = "4.3.0";
     sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
   })
   (fetchNuGet {
-    name = "System.Runtime.InteropServices";
+    pname = "System.Runtime.InteropServices";
     version = "4.1.0";
     sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
   })
   (fetchNuGet {
-    name = "System.Runtime.InteropServices";
+    pname = "System.Runtime.InteropServices";
     version = "4.3.0";
     sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
   })
   (fetchNuGet {
-    name = "System.Runtime.Numerics";
+    pname = "System.Runtime.Numerics";
     version = "4.0.1";
     sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
   })
   (fetchNuGet {
-    name = "System.Runtime.Numerics";
+    pname = "System.Runtime.Numerics";
     version = "4.3.0";
     sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
   })
   (fetchNuGet {
-    name = "System.Runtime.Serialization.Formatters";
+    pname = "System.Runtime.Serialization.Formatters";
     version = "4.3.0";
     sha256 = "114j35n8gcvn3sqv9ar36r1jjq0y1yws9r0yk8i6wm4aq7n9rs0m";
   })
   (fetchNuGet {
-    name = "System.Runtime.Serialization.Json";
+    pname = "System.Runtime.Serialization.Json";
     version = "4.0.2";
     sha256 = "08ypbzs0sb302ga04ds5b2wxa2gg0q50zpa0nvc87ipjhs0v66dn";
   })
   (fetchNuGet {
-    name = "System.Runtime.Serialization.Primitives";
+    pname = "System.Runtime.Serialization.Primitives";
     version = "4.1.1";
     sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
   })
   (fetchNuGet {
-    name = "System.Runtime.Serialization.Primitives";
+    pname = "System.Runtime.Serialization.Primitives";
     version = "4.3.0";
     sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf";
   })
   (fetchNuGet {
-    name = "System.Runtime.Serialization.Xml";
+    pname = "System.Runtime.Serialization.Xml";
     version = "4.3.0";
     sha256 = "1b2cxl2h7s8cydbhbmxhvvq071n9ck61g08npg4gyw7nvg37rfni";
   })
   (fetchNuGet {
-    name = "System.Runtime";
+    pname = "System.Runtime";
     version = "4.1.0";
     sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
   })
   (fetchNuGet {
-    name = "System.Runtime";
+    pname = "System.Runtime";
     version = "4.3.0";
     sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
   })
   (fetchNuGet {
-    name = "System.Security.Claims";
+    pname = "System.Security.Claims";
     version = "4.3.0";
     sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Algorithms";
+    pname = "System.Security.Cryptography.Algorithms";
     version = "4.2.0";
     sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Algorithms";
+    pname = "System.Security.Cryptography.Algorithms";
     version = "4.3.0";
     sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Cng";
+    pname = "System.Security.Cryptography.Cng";
     version = "4.2.0";
     sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Cng";
+    pname = "System.Security.Cryptography.Cng";
     version = "4.3.0";
     sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Csp";
+    pname = "System.Security.Cryptography.Csp";
     version = "4.0.0";
     sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Csp";
+    pname = "System.Security.Cryptography.Csp";
     version = "4.3.0";
     sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Encoding";
+    pname = "System.Security.Cryptography.Encoding";
     version = "4.0.0";
     sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Encoding";
+    pname = "System.Security.Cryptography.Encoding";
     version = "4.3.0";
     sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.OpenSsl";
+    pname = "System.Security.Cryptography.OpenSsl";
     version = "4.0.0";
     sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.OpenSsl";
+    pname = "System.Security.Cryptography.OpenSsl";
     version = "4.3.0";
     sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Primitives";
+    pname = "System.Security.Cryptography.Primitives";
     version = "4.0.0";
     sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.Primitives";
+    pname = "System.Security.Cryptography.Primitives";
     version = "4.3.0";
     sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.X509Certificates";
+    pname = "System.Security.Cryptography.X509Certificates";
     version = "4.1.0";
     sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh";
   })
   (fetchNuGet {
-    name = "System.Security.Cryptography.X509Certificates";
+    pname = "System.Security.Cryptography.X509Certificates";
     version = "4.3.0";
     sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h";
   })
   (fetchNuGet {
-    name = "System.Security.Principal.Windows";
+    pname = "System.Security.Principal.Windows";
     version = "4.3.0";
     sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr";
   })
   (fetchNuGet {
-    name = "System.Security.Principal";
+    pname = "System.Security.Principal";
     version = "4.3.0";
     sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding.Extensions";
+    pname = "System.Text.Encoding.Extensions";
     version = "4.0.11";
     sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding.Extensions";
+    pname = "System.Text.Encoding.Extensions";
     version = "4.3.0";
     sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding";
+    pname = "System.Text.Encoding";
     version = "4.0.11";
     sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
   })
   (fetchNuGet {
-    name = "System.Text.Encoding";
+    pname = "System.Text.Encoding";
     version = "4.3.0";
     sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
   })
   (fetchNuGet {
-    name = "System.Text.RegularExpressions";
+    pname = "System.Text.RegularExpressions";
     version = "4.1.0";
     sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
   })
   (fetchNuGet {
-    name = "System.Text.RegularExpressions";
+    pname = "System.Text.RegularExpressions";
     version = "4.3.0";
     sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
   })
   (fetchNuGet {
-    name = "System.Threading.Channels";
+    pname = "System.Threading.Channels";
     version = "4.7.1";
     sha256 = "038fyrriypwzsj5fwgnkw79hm5ya0x63r724yizgahbxf512chr2";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks.Extensions";
+    pname = "System.Threading.Tasks.Extensions";
     version = "4.0.0";
     sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks.Extensions";
+    pname = "System.Threading.Tasks.Extensions";
     version = "4.3.0";
     sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks";
+    pname = "System.Threading.Tasks";
     version = "4.0.11";
     sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
   })
   (fetchNuGet {
-    name = "System.Threading.Tasks";
+    pname = "System.Threading.Tasks";
     version = "4.3.0";
     sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
   })
   (fetchNuGet {
-    name = "System.Threading.Thread";
+    pname = "System.Threading.Thread";
     version = "4.3.0";
     sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4";
   })
   (fetchNuGet {
-    name = "System.Threading.ThreadPool";
+    pname = "System.Threading.ThreadPool";
     version = "4.3.0";
     sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1";
   })
   (fetchNuGet {
-    name = "System.Threading.Timer";
+    pname = "System.Threading.Timer";
     version = "4.3.0";
     sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56";
   })
   (fetchNuGet {
-    name = "System.Threading";
+    pname = "System.Threading";
     version = "4.0.11";
     sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
   })
   (fetchNuGet {
-    name = "System.Threading";
+    pname = "System.Threading";
     version = "4.3.0";
     sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
   })
   (fetchNuGet {
-    name = "System.Xml.ReaderWriter";
+    pname = "System.Xml.ReaderWriter";
     version = "4.0.11";
     sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
   })
   (fetchNuGet {
-    name = "System.Xml.ReaderWriter";
+    pname = "System.Xml.ReaderWriter";
     version = "4.3.0";
     sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
   })
   (fetchNuGet {
-    name = "System.Xml.XDocument";
+    pname = "System.Xml.XDocument";
     version = "4.0.11";
     sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
   })
   (fetchNuGet {
-    name = "System.Xml.XDocument";
+    pname = "System.Xml.XDocument";
     version = "4.3.0";
     sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
   })
   (fetchNuGet {
-    name = "System.Xml.XmlDocument";
+    pname = "System.Xml.XmlDocument";
     version = "4.0.1";
     sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1";
   })
   (fetchNuGet {
-    name = "System.Xml.XmlDocument";
+    pname = "System.Xml.XmlDocument";
     version = "4.3.0";
     sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
   })
   (fetchNuGet {
-    name = "System.Xml.XmlSerializer";
+    pname = "System.Xml.XmlSerializer";
     version = "4.0.11";
     sha256 = "01nzc3gdslw90qfykq4qzr2mdnqxjl4sj0wp3fixiwdmlmvpib5z";
   })
   (fetchNuGet {
-    name = "System.Xml.XmlSerializer";
+    pname = "System.Xml.XmlSerializer";
     version = "4.3.0";
     sha256 = "07pa4sx196vxkgl3csvdmw94nydlsm9ir38xxcs84qjn8cycd912";
   })
   (fetchNuGet {
-    name = "xunit.abstractions";
+    pname = "xunit.abstractions";
     version = "2.0.3";
     sha256 = "00wl8qksgkxld76fgir3ycc5rjqv1sqds6x8yx40927q5py74gfh";
   })
   (fetchNuGet {
-    name = "xunit.analyzers";
+    pname = "xunit.analyzers";
     version = "0.10.0";
     sha256 = "15n02q3akyqbvkp8nq75a8rd66d4ax0rx8fhdcn8j78pi235jm7j";
   })
   (fetchNuGet {
-    name = "xunit.assert";
+    pname = "xunit.assert";
     version = "2.4.1";
     sha256 = "1imynzh80wxq2rp9sc4gxs4x1nriil88f72ilhj5q0m44qqmqpc6";
   })
   (fetchNuGet {
-    name = "xunit.core";
+    pname = "xunit.core";
     version = "2.4.1";
     sha256 = "1nnb3j4kzmycaw1g76ii4rfqkvg6l8gqh18falwp8g28h802019a";
   })
   (fetchNuGet {
-    name = "xunit.extensibility.core";
+    pname = "xunit.extensibility.core";
     version = "2.4.1";
     sha256 = "103qsijmnip2pnbhciqyk2jyhdm6snindg5z2s57kqf5pcx9a050";
   })
   (fetchNuGet {
-    name = "xunit.extensibility.execution";
+    pname = "xunit.extensibility.execution";
     version = "2.4.1";
     sha256 = "1pbilxh1gp2ywm5idfl0klhl4gb16j86ib4x83p8raql1dv88qia";
   })
   (fetchNuGet {
-    name = "xunit.runner.visualstudio";
+    pname = "xunit.runner.visualstudio";
     version = "2.4.3";
     sha256 = "0j1d0rbcm7pp6dypi61sjxp8l22sv261252z55b243l39jgv2rp3";
   })
   (fetchNuGet {
-    name = "xunit";
+    pname = "xunit";
     version = "2.4.1";
     sha256 = "0xf3kaywpg15flqaqfgywqyychzk15kz0kz34j21rcv78q9ywq20";
   })
diff --git a/pkgs/applications/blockchains/nbxplorer/util/create-deps.sh b/pkgs/applications/blockchains/nbxplorer/util/create-deps.sh
index fb10446142e20..2d3f41f25866c 100755
--- a/pkgs/applications/blockchains/nbxplorer/util/create-deps.sh
+++ b/pkgs/applications/blockchains/nbxplorer/util/create-deps.sh
@@ -25,14 +25,14 @@ HOME=home DOTNET_CLI_TELEMETRY_OPTOUT=1 \
 
 echo "{ fetchNuGet }: [" > "$depsFile"
 while read pkgSpec; do
-  { read name; read version; } < <(
+  { read pname; read version; } < <(
     # Ignore build version part: 1.0.0-beta2+77df2220 -> 1.0.0-beta2
     sed -nE 's/.*<id>([^<]*).*/\1/p; s/.*<version>([^<+]*).*/\1/p' "$pkgSpec"
   )
   sha256=$(nix-hash --type sha256 --flat --base32 "$(dirname "$pkgSpec")"/*.nupkg)
   cat >> "$depsFile" <<EOF
   (fetchNuGet {
-    name = "$name";
+    pname = "$pname";
     version = "$version";
     sha256 = "$sha256";
   })
diff --git a/pkgs/applications/blockchains/nbxplorer/util/update-common.sh b/pkgs/applications/blockchains/nbxplorer/util/update-common.sh
index ed50762224052..8899bdd181dee 100755
--- a/pkgs/applications/blockchains/nbxplorer/util/update-common.sh
+++ b/pkgs/applications/blockchains/nbxplorer/util/update-common.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p coreutils curl jq common-updater-scripts dotnet-sdk_3 git gnupg nix
+#!nix-shell -i bash -p coreutils curl jq common-updater-scripts dotnet-sdk_3 git gnupg nixFlakes
 set -euo pipefail
 
 # This script uses the following env vars:
@@ -17,7 +17,7 @@ scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd)
 nixpkgs=$(realpath "$scriptDir"/../../../../..)
 
 evalNixpkgs() {
-  nix eval --raw "(with import \"$nixpkgs\" {}; $1)"
+  nix eval --impure --raw --expr "(with import \"$nixpkgs\" {}; $1)"
 }
 
 getRepo() {
diff --git a/pkgs/applications/blockchains/polkadot/default.nix b/pkgs/applications/blockchains/polkadot/default.nix
index 9b88861d0ea67..eddc2cd8a21e3 100644
--- a/pkgs/applications/blockchains/polkadot/default.nix
+++ b/pkgs/applications/blockchains/polkadot/default.nix
@@ -7,16 +7,16 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "polkadot";
-  version = "0.9.12-1";
+  version = "0.9.14";
 
   src = fetchFromGitHub {
     owner = "paritytech";
     repo = "polkadot";
     rev = "v${version}";
-    sha256 = "sha256-+HATcxdIDQGDIQBF08yy/eKBcS10Hp7C0nZFVsYFNwQ=";
+    sha256 = "sha256-SCi+hpdMUTX1NLF1RUce0d/2G19sVfJ5IsmM1xcAUKo=";
   };
 
-  cargoSha256 = "sha256-1qg4ZnSORRVI7eCVMrR7lY3tzo7KJt+dC2RBXqbKrig=";
+  cargoSha256 = "sha256-ZcIsbMI96qX0LLJXmkCRS9g40ccZOH/upPbAA7XEZIw=";
 
   nativeBuildInputs = [ clang ];
 
diff --git a/pkgs/applications/blockchains/trezor-suite/default.nix b/pkgs/applications/blockchains/trezor-suite/default.nix
index 10418c418f6d2..2075c95aad964 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 = "21.10.2";
+  version = "21.12.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";
     sha512 = { # curl -Lfs https://github.com/trezor/trezor-suite/releases/latest/download/latest-linux{-arm64,}.yml | grep ^sha512 | sed 's/: /-/'
-      aarch64-linux = "sha512-+qXN9cQk1u18ZzeMecPNfhkTTsw61iM/IJYksPJl9+zx2AKldv9tAFUnnmKZ65LabiaIXI+emN185SRRcaOndw==";
-      x86_64-linux  = "sha512-WpiG8VOEODqsQ1/jERiEEGwVqR0zbMqERGjOysEVYorA0p3xZyl7OSpWOSWaUjPBZpQtJIBdqhSXeoSRcvfJgg==";
+      aarch64-linux = "sha512-LzcTFSNN/loYaTDt+QpW8QpSgOTw2097IYdc7mC57Mn4NR/X2hycYZ9ZfZjBh9QFfVu/4R3UN2sA177v6Inomg==";
+      x86_64-linux  = "sha512-W/voBZrXaJVDN4eSUDD6lyBR9BqboD2k2/azI1pWm1NFUmDZFM+OGzyiPB3n+6SziAhca32Ot5Wy27sfmIjh3g==";
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
   };
 
diff --git a/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix b/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix
index f595e211dc2b1..ea7fc13757472 100644
--- a/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix
+++ b/pkgs/applications/display-managers/lightdm-enso-os-greeter/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchgit, pkg-config, linkFarm, lightdm-enso-os-greeter
-, dbus, pcre, epoxy, libXdmcp, at-spi2-core, libxklavier, libxkbcommon, libpthreadstubs
+, dbus, pcre, libepoxy, libXdmcp, at-spi2-core, libxklavier, libxkbcommon, libpthreadstubs
 , gtk3, vala, cmake, libgee, libX11, lightdm, gdk-pixbuf, clutter-gtk, wrapGAppsHook, librsvg }:
 
 stdenv.mkDerivation {
@@ -27,7 +27,7 @@ stdenv.mkDerivation {
     dbus
     gtk3
     pcre
-    epoxy
+    libepoxy
     libgee
     libX11
     lightdm
diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix
index 1393ae943028c..540c59586a6ea 100644
--- a/pkgs/applications/editors/android-studio/common.nix
+++ b/pkgs/applications/editors/android-studio/common.nix
@@ -46,6 +46,7 @@
 , stdenv
 , systemd
 , unzip
+, usbutils
 , which
 , runCommand
 , xkeyboard_config
@@ -102,6 +103,7 @@ let
           # Runtime stuff
           git
           ps
+          usbutils
         ]}" \
         --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [
 
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index 5a94abf2f7dd2..ec4f9b59e919f 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -9,16 +9,16 @@ let
     inherit buildFHSUserEnv;
   };
   stableVersion = {
-    version = "2020.3.1.25"; # "Android Studio Arctic Fox (2020.3.1)"
-    sha256Hash = "10gpwb130bzp6a9g958cjqcb2gsm0vdgm08nm5xy45xdh54nxjfg";
+    version = "2020.3.1.26"; # "Android Studio Arctic Fox (2020.3.1)"
+    sha256Hash = "NE2FgjXtXTCVrCWRakqPhzAGn3blpf0OugJSKviPVBs=";
   };
   betaVersion = {
-    version = "2021.1.1.16"; # "Android Studio Bumblebee (2021.1.1) Beta 3"
-    sha256Hash = "pgmBWzq/5RHJTc41kzB43tbsjvrWx9BJ7UKsR8AO0V4=";
+    version = "2021.1.1.18"; # "Android Studio Bumblebee (2021.1.1) Beta 5"
+    sha256Hash = "gWG8h3wTQDH84vSKlfTm3soUqLkwFYfSymJuAAFPDuQ=";
   };
   latestVersion = { # canary & dev
-    version = "2021.2.1.3"; # "Android Studio Chipmunk (2021.2.1) Canary 3"
-    sha256Hash = "sha256-xIVdM28NDadvJklDIw71iJ7Z5GPVJ1ZDJ+t1y+bt8cE=";
+    version = "2021.2.1.5"; # "Android Studio Chipmunk (2021.2.1) Canary 5"
+    sha256Hash = "PS45nu5g9qXNeolYnFEs//Z6p8eIZoD6kUo/0yfHQ6A=";
   };
 in {
   # Attributes are named by their corresponding release channels
diff --git a/pkgs/applications/editors/bluefish/default.nix b/pkgs/applications/editors/bluefish/default.nix
index 1919e6b6947d5..008ff8196d16c 100644
--- a/pkgs/applications/editors/bluefish/default.nix
+++ b/pkgs/applications/editors/bluefish/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A powerful editor targeted towards programmers and webdevelopers";
-    homepage = "http://bluefish.openoffice.nl/";
+    homepage = "https://bluefish.openoffice.nl/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ vbgl ];
     platforms = platforms.all;
diff --git a/pkgs/applications/editors/bviplus/default.nix b/pkgs/applications/editors/bviplus/default.nix
index e48a147e6daf6..22d15d54f1936 100644
--- a/pkgs/applications/editors/bviplus/default.nix
+++ b/pkgs/applications/editors/bviplus/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, ncurses }:
+{ lib, stdenv, fetchurl, fetchpatch, ncurses }:
 
 stdenv.mkDerivation rec {
   pname = "bviplus";
@@ -9,6 +9,18 @@ stdenv.mkDerivation rec {
     sha256 = "08q2fdyiirabbsp5qpn3v8jxp4gd85l776w6gqvrbjwqa29a8arg";
   };
 
+  patches = [
+    # Fix pending upstream inclusion for ncurses-6.3 support:
+    #  https://sourceforge.net/p/bviplus/bugs/7/
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://sourceforge.net/p/bviplus/bugs/7/attachment/bviplus-ncurses-6.2.patch";
+      sha256 = "1g3s2fdly3qliy67f3dlb12a03a21zkjbya6gap4mqxhyyjbp46x";
+      # svn patch, rely on prefix added by fetchpatch:
+      extraPrefix = "";
+    })
+  ];
+
   buildInputs = [
     ncurses
   ];
diff --git a/pkgs/applications/editors/code-browser/default.nix b/pkgs/applications/editors/code-browser/default.nix
index ea4398cc4a5ce..0efdae2ea65d3 100644
--- a/pkgs/applications/editors/code-browser/default.nix
+++ b/pkgs/applications/editors/code-browser/default.nix
@@ -1,46 +1,57 @@
 { lib, stdenv
 , fetchurl
 , copper
-, ruby
 , python3
-, qtbase
-, gtk3
 , pkg-config
-, withQt ? false
-, withGtk ? false, wrapQtAppsHook ? null
+, withQt ? false, qtbase ? null, wrapQtAppsHook ? null
+, withGtk2 ? false, gtk2
+, withGtk3 ? false, gtk3
+, mkDerivation ? stdenv.mkDerivation
 }:
-stdenv.mkDerivation rec {
+let onlyOneEnabled = xs: 1 == builtins.length (builtins.filter lib.id xs);
+in assert onlyOneEnabled [ withQt withGtk2 withGtk3 ];
+mkDerivation rec {
   pname = "code-browser";
-  version = "7.1.20";
+  version = "8.0";
   src = fetchurl {
     url = "https://tibleiz.net/download/code-browser-${version}-src.tar.gz";
-    sha256 = "1svi0v3h42h2lrb8c7pjvqc8019v1p20ibsnl48pfhl8d96mmdnz";
+    sha256 = "sha256-beCp4lx4MI1+hVgWp2h3piE/zu51zfwQdB5g7ImgmwY=";
   };
   postPatch = ''
     substituteInPlace Makefile --replace "LFLAGS=-no-pie" "LFLAGS=-no-pie -L."
-    substituteInPlace libs/copper-ui/Makefile --replace "moc -o" "${qtbase.dev}/bin/moc -o"
     patchShebangs .
-  '';
+  ''
+  + lib.optionalString withQt ''
+    substituteInPlace libs/copper-ui/Makefile --replace "moc -o" "${qtbase.dev}/bin/moc -o"
+    substituteInPlace libs/copper-ui/Makefile --replace "all: qt gtk gtk2" "all: qt"
+  ''
+  + lib.optionalString withGtk2 ''
+    substituteInPlace libs/copper-ui/Makefile --replace "all: qt gtk gtk2" "all: gtk2"
+  ''
+  + lib.optionalString withGtk3 ''
+    substituteInPlace libs/copper-ui/Makefile --replace "all: qt gtk gtk2" "all: gtk"
+  ''
+  ;
   nativeBuildInputs = [ copper
                         python3
-                        ruby
-                        qtbase
-                        gtk3
                         pkg-config
                       ]
-  ++ lib.optionals withQt [ wrapQtAppsHook ];
+  ++ lib.optionals withGtk2 [ gtk2 ]
+  ++ lib.optionals withGtk3 [ gtk3 ]
+  ++ lib.optionals withQt [ qtbase wrapQtAppsHook ];
   buildInputs = lib.optionals withQt [ qtbase ]
-                ++ lib.optionals withGtk [ gtk3 ];
+                ++ lib.optionals withGtk2 [ gtk2 ]
+                ++ lib.optionals withGtk3 [ gtk3 ];
   makeFlags = [
     "prefix=$(out)"
     "COPPER=${copper}/bin/copper-elf64"
     "with-local-libs"
-    "QINC=${qtbase.dev}/include"
   ]
-  ++ lib.optionals withQt [ "UI=qt" ]
-  ++ lib.optionals withGtk [ "UI=gtk" ];
-
-  dontWrapQtApps = true;
+  ++ lib.optionals withQt [ "QINC=${qtbase.dev}/include"
+                            "UI=qt"
+                          ]
+  ++ lib.optionals withGtk2 [ "UI=gtk2" ]
+  ++ lib.optionals withGtk3 [ "UI=gtk" ];
 
   meta = with lib; {
     description = "Folding text editor, designed to hierarchically structure any kind of text file and especially source code";
diff --git a/pkgs/applications/editors/cpeditor/default.nix b/pkgs/applications/editors/cpeditor/default.nix
new file mode 100644
index 0000000000000..74394418fd533
--- /dev/null
+++ b/pkgs/applications/editors/cpeditor/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, qtbase
+, qttools
+, wrapQtAppsHook
+, cmake
+, ninja
+, python3
+, runtimeShell
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cpeditor";
+  version = "6.10.1";
+
+  src = fetchFromGitHub {
+    owner = "cpeditor";
+    repo = "cpeditor";
+    rev = version;
+    sha256 = "sha256-SIREoOapaZTLtqi0Z07lKmNqF9a9qIpgGxuhqaY3yfU=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake ninja pkg-config wrapQtAppsHook python3 ];
+  buildInputs = [ qtbase qttools ];
+
+  postPatch = ''
+    substituteInPlace src/Core/Runner.cpp --replace "/bin/bash" "${runtimeShell}"
+  '';
+
+  meta = with lib; {
+    description = "An IDE specially designed for competitive programming";
+    homepage = "https://cpeditor.org";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ rewine ];
+  };
+}
diff --git a/pkgs/applications/editors/cudatext/default.nix b/pkgs/applications/editors/cudatext/default.nix
index f840218d850c8..dae533f1ebd8d 100644
--- a/pkgs/applications/editors/cudatext/default.nix
+++ b/pkgs/applications/editors/cudatext/default.nix
@@ -38,13 +38,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "cudatext";
-  version = "1.148.0";
+  version = "1.152.1";
 
   src = fetchFromGitHub {
     owner = "Alexey-T";
     repo = "CudaText";
     rev = version;
-    sha256 = "sha256-/wvtIPF/1HneW0zuT7+VCixemkw91MdU0S66bz2y48U=";
+    sha256 = "sha256-rFmgf/wg6/jIObBDN+viKX3KrewVWgxs8uVF1gCY72s=";
   };
 
   postPatch = ''
@@ -99,6 +99,8 @@ stdenv.mkDerivation rec {
     fi
   '') additionalLexers;
 
+  passthru.updateScript = ./update.sh;
+
   meta = with lib; {
     description = "Cross-platform code editor";
     longDescription = ''
diff --git a/pkgs/applications/editors/cudatext/deps.json b/pkgs/applications/editors/cudatext/deps.json
index aaa63595ab1b1..567b53f417fc7 100644
--- a/pkgs/applications/editors/cudatext/deps.json
+++ b/pkgs/applications/editors/cudatext/deps.json
@@ -11,13 +11,13 @@
   },
   "ATFlatControls": {
     "owner": "Alexey-T",
-    "rev": "2021.10.19",
-    "sha256": "sha256-NO1q4qDXZ0x0G6AtcRP9xnFDWuBzOvxq8G7I76LgaBw="
+    "rev": "2021.11.11",
+    "sha256": "sha256-lbRRiA8CHWmosJefTHrP2cTgU8nlK1SmNcppG6Bl54I="
   },
   "ATSynEdit": {
     "owner": "Alexey-T",
-    "rev": "2021.10.27",
-    "sha256": "sha256-7DlnO7IeCFLU1A+HJt4CFXoHWfhAr52tBvfPNHieXMM="
+    "rev": "2021.12.22",
+    "sha256": "sha256-MmRJ3XDq7b9doPFfW7njSOasHej5ut0nYcJMFj+Y/Dc="
   },
   "ATSynEdit_Cmp": {
     "owner": "Alexey-T",
@@ -26,13 +26,13 @@
   },
   "EControl": {
     "owner": "Alexey-T",
-    "rev": "2021.10.21",
-    "sha256": "sha256-RyRpHihmmr/EeVWk9CR0S3pvKy0FzqLZNGti33+4fkI="
+    "rev": "2021.12.07",
+    "sha256": "sha256-givCklAHao26psWLI2qK246igxcAQEeIYTGH61FX6Xo="
   },
   "ATSynEdit_Ex": {
     "owner": "Alexey-T",
-    "rev": "2021.09.03",
-    "sha256": "sha256-XYFnTfRa0n9XF9l/hL6z5RFZgdpVP9o1If4qln905Yc="
+    "rev": "2021.12.07",
+    "sha256": "sha256-/2Fv/vrpbHSiJro11cjbziUaT4gfwa6y5aQBoYgq3OQ="
   },
   "Python-for-Lazarus": {
     "owner": "Alexey-T",
diff --git a/pkgs/applications/editors/cudatext/update.sh b/pkgs/applications/editors/cudatext/update.sh
new file mode 100755
index 0000000000000..8389b3e8a7d4c
--- /dev/null
+++ b/pkgs/applications/editors/cudatext/update.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnused jq nix-prefetch moreutils
+
+set -euo pipefail
+cd "$(dirname "$0")"
+
+version=$(curl -s https://api.github.com/repos/Alexey-T/CudaText/releases/latest | jq -r '.tag_name')
+url="https://github.com/Alexey-T/CudaText/archive/refs/tags/${version}.tar.gz"
+hash=$(nix-prefetch-url --quiet --unpack --type sha256 $url)
+sriHash=$(nix hash to-sri --type sha256 $hash)
+
+sed -i "s#version = \".*\"#version = \"$version\"#" default.nix
+sed -i "s#sha256 = \".*\"#sha256 = \"$sriHash\"#" default.nix
+
+while IFS=$'\t' read repo owner rev; do
+  latest=$(curl -s https://api.github.com/repos/${owner}/${repo}/releases/latest | jq -r '.tag_name')
+  if [ "$latest" != "$rev" ]; then
+    url="https://github.com/${owner}/${repo}/archive/refs/tags/${latest}.tar.gz"
+    hash=$(nix-prefetch-url --quiet --unpack --type sha256 $url)
+    sriHash=$(nix hash to-sri --type sha256 $hash)
+    jq ".${repo}.rev = \"${latest}\" | .${repo}.sha256 = \"${sriHash}\"" deps.json | sponge deps.json
+  fi
+done <<< $(jq -r 'to_entries[]|[.key,.value.owner,.value.rev]|@tsv' deps.json)
diff --git a/pkgs/applications/editors/deadpixi-sam/default.nix b/pkgs/applications/editors/deadpixi-sam/default.nix
index 463865d26bf79..e17fb402ed38f 100644
--- a/pkgs/applications/editors/deadpixi-sam/default.nix
+++ b/pkgs/applications/editors/deadpixi-sam/default.nix
@@ -1,20 +1,20 @@
 { lib, stdenv, fetchFromGitHub, freetype, libX11, libXi, libXt, libXft }:
 
 stdenv.mkDerivation rec {
-  version = "2017-10-27";
   pname = "deadpixi-sam-unstable";
+  version = "2020-07-14";
 
   src = fetchFromGitHub {
     owner = "deadpixi";
     repo = "sam";
-    rev = "51693780fb1457913389db6634163998f9b775b8";
-    sha256 = "0nfkj93j4bgli4ixbk041nwi14rabk04kqg8krq4mj0044m1qywr";
+    rev = "5d8acb35d78c327d76f00a54857cbd566ed9bc11";
+    sha256 = "sha256-+vRh6nDPc3UnmEdqROHRel5Te0h5m4eiaERs492xciQ=";
   };
 
   postPatch = ''
     substituteInPlace config.mk.def \
       --replace "/usr/include/freetype2" "${freetype.dev}/include/freetype2" \
-      --replace "CC=gcc" ""
+      --replace "CC=gcc" "CC=${stdenv.cc.targetPrefix}cc"
   '';
 
   CFLAGS = "-D_DARWIN_C_SOURCE";
@@ -27,10 +27,10 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    inherit (src.meta) homepage;
+    homepage = "https://github.com/deadpixi/sam";
     description = "Updated version of the sam text editor";
-    license = with licenses; lpl-102;
+    license = licenses.lpl-102;
     maintainers = with maintainers; [ ramkromberg ];
-    platforms = with platforms; unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/editors/eclipse/build-eclipse.nix b/pkgs/applications/editors/eclipse/build-eclipse.nix
index c52e43373c17b..29c063633fce7 100644
--- a/pkgs/applications/editors/eclipse/build-eclipse.nix
+++ b/pkgs/applications/editors/eclipse/build-eclipse.nix
@@ -2,7 +2,7 @@
 , zlib, jdk, glib, gtk, libXtst, libsecret, gsettings-desktop-schemas, webkitgtk
 , makeWrapper, perl, ... }:
 
-{ name, src ? builtins.getAttr stdenv.hostPlatform.system sources, sources ? null, description }:
+{ name, src ? builtins.getAttr stdenv.hostPlatform.system sources, sources ? null, description, productVersion }:
 
 stdenv.mkDerivation rec {
   inherit name src;
@@ -37,13 +37,12 @@ stdenv.mkDerivation rec {
     # settings in ~/.eclipse/org.eclipse.platform_<version> rather
     # than ~/.eclipse/org.eclipse.platform_<version>_<number>.
     productId=$(sed 's/id=//; t; d' $out/eclipse/.eclipseproduct)
-    productVersion=$(sed 's/version=//; t; d' $out/eclipse/.eclipseproduct)
 
     makeWrapper $out/eclipse/eclipse $out/bin/eclipse \
       --prefix PATH : ${jdk}/bin \
       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ glib gtk libXtst libsecret ] ++ lib.optional (webkitgtk != null) webkitgtk)} \
       --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
-      --add-flags "-configuration \$HOME/.eclipse/''${productId}_$productVersion/configuration"
+      --add-flags "-configuration \$HOME/.eclipse/''${productId}_${productVersion}/configuration"
 
     # Create desktop item.
     mkdir -p $out/share/applications
diff --git a/pkgs/applications/editors/eclipse/default.nix b/pkgs/applications/editors/eclipse/default.nix
index 77cf5088a4068..c97cbaf60ea54 100644
--- a/pkgs/applications/editors/eclipse/default.nix
+++ b/pkgs/applications/editors/eclipse/default.nix
@@ -16,18 +16,21 @@ assert stdenv ? glibc;
 
 let
   platform_major = "4";
-  platform_minor = "21";
+  platform_minor = "22";
   year = "2021";
-  month = "09";
-  timestamp = "${year}${month}060500";
+  month = "12"; #release month
+  buildmonth = "11"; #sometimes differs from release month
+  timestamp = "${year}${buildmonth}241800";
   gtk = gtk3;
 in rec {
 
-  buildEclipse = callPackage ./build-eclipse.nix {
+  # work around https://bugs.eclipse.org/bugs/show_bug.cgi?id=476075#c3
+  buildEclipseUnversioned = callPackage ./build-eclipse.nix {
     inherit stdenv makeDesktopItem freetype fontconfig libX11 libXrender zlib
             jdk glib gtk libXtst gsettings-desktop-schemas webkitgtk
             makeWrapper;
   };
+  buildEclipse = eclipseData: buildEclipseUnversioned (eclipseData // { productVersion = "${platform_major}.${platform_minor}"; });
 
   ### Eclipse CPP
 
@@ -37,7 +40,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-cpp-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "3xdj7b0mlhdys9q4l19kkf1hm0d67dwx55gzfmgv90nvswv0jhyvs42my4wrlrmkh6lz8m0z6dakadhl1bxf2fd8pdp5sm4bv0w0gwc";
+        hash = "sha512-Lniaw8aUptHI0a75olTNHaMba+ugUdJKf9sJ0hGzKqY94vvfU3N2TH5eQBeXb1MyQdRdBL1D8Vs3+LD9lWlTMg==";
       };
   };
 
@@ -49,7 +52,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-modeling-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "20xy4vzqlmg4sdvqimz2nc212vb45k5kwh40qagm13r6h3vfv3yrl8bznnappaf4msfa9xdaxns2kz0x94hw444zjmrnbf7614a48xi";
+        hash = "sha512-F/5yroFDbrSclmUP5vTNSkYR+OZ1dkPv2FPZT1XM5HFoynitYkDxnj+uTcJIBOWv3Zu1plU4yweW0DF1E9jLcg==";
       };
   };
 
@@ -61,16 +64,17 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-platform-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz";
-        sha512 = "29hab3ha3spk0048k3mf2x5m80hlh1l6nazsykx0xxrqy9vdkdibv6mq74dzf1n93h1bd5qh9axicnhs465kp7r1irdl04761c1wibi";
+        hash = "sha512-3XsBk8/KHtTjit/WMneOghuOkqEHOIdLwof7718dsrDP4vfgcfhb47V7fPYDOw2eld88pHk+85mTGpZOTTywxw==";
       };
   };
 
   ### Eclipse Scala SDK
 
   eclipse-scala-sdk =
-    buildEclipse.override { jdk = jdk8; gtk = gtk2; } {
+    buildEclipseUnversioned.override { jdk = jdk8; gtk = gtk2; } {
       name = "eclipse-scala-sdk-4.7.0";
       description = "Eclipse IDE for Scala Developers";
+      productVersion = "4.7";
       src =
         fetchurl {
           url = "https://downloads.typesafe.com/scalaide-pack/4.7.0-vfinal-oxygen-212-20170929/scala-SDK-4.7.0-vfinal-2.12-linux.gtk.x86_64.tar.gz";
@@ -86,7 +90,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-SDK-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz";
-        sha512 = "3ag7nfpnn1149gkva58x0037pbdb5wds0qpwv21lif7a6b1a1n7g2n056bn43a7fkxkkj38752gkz29nvqh5g8hqkg29lax8sjlm7sm";
+        hash = "sha512-7bTYIFnX8oUPaqDrMOlGNnpyC+xvDQsNmgZUps/epGkzM9Fjlc2lPr75VR7UaezBCoAuNTSHCYtG5d6TJOKjmQ==";
       };
   };
 
@@ -98,7 +102,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-java-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "27h5wjr4k0jhi256rk74kbjbm5h7xi4hbml89n1jhppq1yfyv2mf75zb32iaia2pxclx6hc0cd1hvq85fwvcshnq79fw8za687yvbhv";
+        hash = "sha512-ahykujYH9RLvxVMPFlFILGYJO0LXHvuhnILifeAo5v5Tp5ktGVlZWG461iZHETlt8Zr76liGAqm1ytQcuzCyQA==";
       };
   };
 
@@ -110,7 +114,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-jee-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "03li2bkhkdybwp411xs8i3cp2hmrfg2xd7inbdsxh07y4b9806spi3q10vga97m7ngl6fl5n0mvgxwj8dbdvp133wn9mgrlajb1n4n8";
+        hash = "sha512-CuKxjcnvkROURtavZJN0AhCuA0x7NayZTpIOn9oE21rUzVqR0p7x7C5RPtMZ9gS4ZMWcYyQDJ0BVgRHBoKsYqQ==";
       };
   };
 
@@ -122,7 +126,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-committers-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "38xwwvg59bdp0a6brmcvq0wlfikik0wnqq897abf5a8vyr0ci7xp5f4ii90x2l5sj5gmcc6jiwvi99c03cjbgivpalr741yka0p3pv5";
+        hash = "sha512-CqUbxUUMIJsXsx4XEOQ1d2L3U22VpAfQP+R8HNoVetDawhR+b2tyDVnTQRKTL4dJ0fjLXDeoHvTlPm1EXi/ahA==";
       };
   };
 
@@ -134,7 +138,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-rcp-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "30hhy83lmjldcwwbjpk5q9zjai5r3xyhlrddalgrw8mspknayncaa2l32gg327fw0a8qaakzgwkh68gj81pmk3dps5wzy881pf22dhc";
+        hash = "sha256-ys3MjIBr2hLZC/GB8Am/Qlto4+dSzOoK9p7QF+GS0Eg=";
       };
   };
 
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix
index 337479b16bc6c..32b0dfd864f0b 100644
--- a/pkgs/applications/editors/eclipse/plugins.nix
+++ b/pkgs/applications/editors/eclipse/plugins.nix
@@ -248,12 +248,12 @@ rec {
   cdt = buildEclipseUpdateSite rec {
     name = "cdt-${version}";
     # find current version at https://www.eclipse.org/cdt/downloads.php
-    version = "10.4.1";
+    version = "10.5.0";
 
     src = fetchzip {
       stripRoot = false;
       url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/${lib.versions.majorMinor version}/${name}/${name}.zip";
-      sha256 = "1l3v6dryaqifwrv2h4knwmpyf11qbyl04p7gcvgrx3hczc82a6p1";
+      hash = "sha256-0sf38Ekw9mMjiEmJDcunVL3VS3KqWVXKZlQIGBk4V4g=";
     };
 
     meta = with lib; {
diff --git a/pkgs/applications/editors/emacs/27.nix b/pkgs/applications/editors/emacs/27.nix
index e0e41a78b9ce3..436785c34f686 100644
--- a/pkgs/applications/editors/emacs/27.nix
+++ b/pkgs/applications/editors/emacs/27.nix
@@ -2,7 +2,6 @@ import ./generic.nix (rec {
   version = "27.2";
   sha256 = "sha256-tKfMTnjmPzeGJOCRkhW5EK9bsqCvyBn60pgnLp9Awbk=";
   patches = fetchpatch: [
-    ./tramp-detect-wrapped-gvfsd.patch
     (fetchpatch {
       name = "fix-aarch64-darwin-triplet.patch";
       url = "https://git.savannah.gnu.org/cgit/emacs.git/patch/?id=a88f63500e475f842e5fbdd9abba4ce122cdb082";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix b/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix
index f74402f5e6ef3..026136d21ea7f 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/bqn-mode/default.nix
@@ -5,13 +5,13 @@
 
 trivialBuild {
   pname = "bqn-mode";
-  version = "0.pre+unstable=2021-10-26";
+  version = "0.pre+date=2021-12-03";
 
   src = fetchFromGitHub {
-    owner = "AndersonTorres";
+    owner = "museoa";
     repo = "bqn-mode";
-    rev = "89d6928d0653518c97bcb06ae156f8b1de1b8768";
-    sha256 = "0pnvfssglaqbjw6hw7vf7vffzjdbqscqhyl62vknml29yl7mjq05";
+    rev = "38fba1193e0d1101f3b90bd76e419c011651ad6f";
+    sha256 = "0fdfz3kmrdgmx2i6fgrrj1cvapvrgnc3ahnwx3aayrpl1f091439";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix b/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
index d2b870bb82d63..8c59bf731b48d 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/elpa-generated.nix
@@ -39,10 +39,10 @@
       elpaBuild {
         pname = "ada-mode";
         ename = "ada-mode";
-        version = "7.1.8";
+        version = "7.2.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/ada-mode-7.1.8.tar";
-          sha256 = "0gggzjj58bxp7n4xdvhqwaxk6z79bbiqs59cc36mxk4gqyzf41xh";
+          url = "https://elpa.gnu.org/packages/ada-mode-7.2.0.tar";
+          sha256 = "00mrcn98bah9cld78qz75mmmk1yrs9k4dbzf6r1x07pngz70fxm2";
         };
         packageRequires = [ emacs uniquify-files wisi ];
         meta = {
@@ -448,10 +448,10 @@
       elpaBuild {
         pname = "capf-autosuggest";
         ename = "capf-autosuggest";
-        version = "0.2";
+        version = "0.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/capf-autosuggest-0.2.tar";
-          sha256 = "0a3bkf3c1gwv9m4rq9kvgw48y5av4arnymnm64yija55ygrnm88b";
+          url = "https://elpa.gnu.org/packages/capf-autosuggest-0.3.tar";
+          sha256 = "05abnvg84248pbqr2hdkyxr1q1qlgsf4nji23nw41bfly795ikpm";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -681,10 +681,10 @@
       elpaBuild {
         pname = "consult";
         ename = "consult";
-        version = "0.12";
+        version = "0.13";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/consult-0.12.tar";
-          sha256 = "0xcr7jki9m30hppy24z74nrw7xv5nahm1yrjilcck32mxfkrc69x";
+          url = "https://elpa.gnu.org/packages/consult-0.13.tar";
+          sha256 = "08hwvyj9sif9r92nhd09prwlryyqgnifjfqj51xgx98m0rg7ks3p";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -711,10 +711,10 @@
       elpaBuild {
         pname = "corfu";
         ename = "corfu";
-        version = "0.13";
+        version = "0.16";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/corfu-0.13.tar";
-          sha256 = "0psvkxr7fjqq7gkqdzl0ma367zjlxgixk563vpv9hmwfwymddyyb";
+          url = "https://elpa.gnu.org/packages/corfu-0.16.tar";
+          sha256 = "04xgq5rkz8a0lykcyjsxq76yapbzz8vfw8gxqvdx0y58bhcw82y6";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -726,10 +726,10 @@
       elpaBuild {
         pname = "coterm";
         ename = "coterm";
-        version = "1.2";
+        version = "1.3";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/coterm-1.2.tar";
-          sha256 = "0jl48bi4a4fkk7p2nj2bx0b658wrjw0cvab5ds6rid44irc8b1mn";
+          url = "https://elpa.gnu.org/packages/coterm-1.3.tar";
+          sha256 = "078rrc776mdzb4nczp1h8p0pymzds76kz3g2h78ri95k3wpy5ksj";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -801,10 +801,10 @@
       elpaBuild {
         pname = "csharp-mode";
         ename = "csharp-mode";
-        version = "1.0.2";
+        version = "1.1.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/csharp-mode-1.0.2.tar";
-          sha256 = "1xddnd6g6qz3xnzl6dmd38qvzvm32acdyhmm27hfdpqcbg6isfad";
+          url = "https://elpa.gnu.org/packages/csharp-mode-1.1.1.tar";
+          sha256 = "096aj4np1ii60h1kxbff5lkfznd0l0x551x103m5i1ks82kxlv1l";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -816,10 +816,10 @@
       elpaBuild {
         pname = "csv-mode";
         ename = "csv-mode";
-        version = "1.16";
+        version = "1.17";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/csv-mode-1.16.tar";
-          sha256 = "1i43b2p31xhrf97xbdi35y550ysp69fasa5gcrhg6iyxw176807p";
+          url = "https://elpa.gnu.org/packages/csv-mode-1.17.tar";
+          sha256 = "16kv3n70pl4h3jfmmqy9bzflsm4nv7cwvrj7g4mgy8yb76nbyka2";
         };
         packageRequires = [ cl-lib emacs ];
         meta = {
@@ -1176,10 +1176,10 @@
       elpaBuild {
         pname = "eev";
         ename = "eev";
-        version = "20211101";
+        version = "20211205";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/eev-20211101.tar";
-          sha256 = "0sxbf116msfv6ly1dqga2sz2zpqr78nzp3v44qy7rps2887incmr";
+          url = "https://elpa.gnu.org/packages/eev-20211205.tar";
+          sha256 = "0qicm3ym9n6iamlj0xyzn8729gfwjp5lwq6lj8r3ydgs4ggsr4jy";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1279,10 +1279,10 @@
       elpaBuild {
         pname = "elisp-benchmarks";
         ename = "elisp-benchmarks";
-        version = "1.12";
+        version = "1.13";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.12.tar";
-          sha256 = "0jzpzif4vrjg5hl0hxg4aqvi6nv56cxa1w0amnkgcz4hsscxkvwm";
+          url = "https://elpa.gnu.org/packages/elisp-benchmarks-1.13.tar";
+          sha256 = "13gvljqj7k8qpyn9fcwa6gl3kqakiy5rqx5s3afdc2y356a06wr6";
         };
         packageRequires = [];
         meta = {
@@ -1474,10 +1474,10 @@
       elpaBuild {
         pname = "exwm";
         ename = "exwm";
-        version = "0.25";
+        version = "0.26";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/exwm-0.25.tar";
-          sha256 = "0imd4v9ccvpsskmfnycz5fgabsvdjp1msg5v8rc7x0v26r3kr4x7";
+          url = "https://elpa.gnu.org/packages/exwm-0.26.tar";
+          sha256 = "03pg0r8a5vb1wc5grmjgzql74p47fniv47x39gdll5s3cq0haf6q";
         };
         packageRequires = [ xelb ];
         meta = {
@@ -2078,10 +2078,10 @@
       elpaBuild {
         pname = "javaimp";
         ename = "javaimp";
-        version = "0.7.1";
+        version = "0.8";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/javaimp-0.7.1.tar";
-          sha256 = "0i93akp9jhlpgbm454wkjhir8cbzhfjb97cxxlk8n4pgzbh481l3";
+          url = "https://elpa.gnu.org/packages/javaimp-0.8.tar";
+          sha256 = "1i6k0yz6r7v774qgnkzinia783fwx73y3brxr31sbip3b5dbpmsn";
         };
         packageRequires = [];
         meta = {
@@ -2164,6 +2164,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    kind-icon = callPackage ({ elpaBuild, emacs, fetchurl, lib, svg-lib }:
+      elpaBuild {
+        pname = "kind-icon";
+        ename = "kind-icon";
+        version = "0.1.3";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/kind-icon-0.1.3.tar";
+          sha256 = "0iqbjlqna5n8dx78350macs129wnri7kgmxk2qf3w9bj6qp760sn";
+        };
+        packageRequires = [ emacs svg-lib ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/kind-icon.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     kiwix = callPackage ({ elpaBuild, emacs, fetchurl, lib, request }:
       elpaBuild {
         pname = "kiwix";
@@ -2348,10 +2363,10 @@
       elpaBuild {
         pname = "marginalia";
         ename = "marginalia";
-        version = "0.9";
+        version = "0.10";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/marginalia-0.9.tar";
-          sha256 = "0jnw9ys7p2rhi7sx2wxi3xs95ryg9vr34xb2jdfiz0p1xv04a300";
+          url = "https://elpa.gnu.org/packages/marginalia-0.10.tar";
+          sha256 = "0sw4kfqda3z9bph4vgzqvg045li64ww2gdc2cgddi2m5p7anq20g";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2389,6 +2404,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    mct = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "mct";
+        ename = "mct";
+        version = "0.3.0";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/mct-0.3.0.tar";
+          sha256 = "07wywk5zadcinjpx9hvag8ndzb426lq5jlg42rqdgrv92ka7n16b";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/mct.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     memory-usage = callPackage ({ elpaBuild, fetchurl, lib }:
       elpaBuild {
         pname = "memory-usage";
@@ -2517,10 +2547,10 @@
       elpaBuild {
         pname = "modus-themes";
         ename = "modus-themes";
-        version = "1.6.0";
+        version = "1.7.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/modus-themes-1.6.0.tar";
-          sha256 = "03ahavpvd57z7cw1n46k6lq5335p1ld7kkjcylyx5fvq1rc1jw44";
+          url = "https://elpa.gnu.org/packages/modus-themes-1.7.0.tar";
+          sha256 = "1ncpgya5lbwr5z7gbq59prfqqnjxhqgaylcjr23mwrhbvvfrj5ff";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2661,10 +2691,10 @@
       elpaBuild {
         pname = "nano-agenda";
         ename = "nano-agenda";
-        version = "0.1";
+        version = "0.2.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/nano-agenda-0.1.tar";
-          sha256 = "1bylgd4ly6dybpg66ndgsmgs5w0y5ymfq3s2pbwjnl46fnrmggz0";
+          url = "https://elpa.gnu.org/packages/nano-agenda-0.2.1.tar";
+          sha256 = "0j29fwc273mjdlj83h1a46sb7z3j066qqnp2i78kn2pmgjg27szb";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2860,10 +2890,10 @@
       elpaBuild {
         pname = "org";
         ename = "org";
-        version = "9.5";
+        version = "9.5.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/org-9.5.tar";
-          sha256 = "16cflg5nms5nb8w86nvwkg49zkl0rvdhigkf4xpvbs0v7zb5y3ky";
+          url = "https://elpa.gnu.org/packages/org-9.5.1.tar";
+          sha256 = "033q5rpk8kfp43qymll339dybk4ig3gc6jz7av6zwjjcz2iawpj1";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -2901,6 +2931,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    org-transclusion = callPackage ({ elpaBuild, emacs, fetchurl, lib, org }:
+      elpaBuild {
+        pname = "org-transclusion";
+        ename = "org-transclusion";
+        version = "1.0.1";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/org-transclusion-1.0.1.tar";
+          sha256 = "1mn66a82nk3daf2vjw6pg9zgff48inik04ffizgm6cdlgn6ymrcs";
+        };
+        packageRequires = [ emacs org ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/org-transclusion.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     org-translate = callPackage ({ elpaBuild, emacs, fetchurl, lib, org }:
       elpaBuild {
         pname = "org-translate";
@@ -3006,6 +3051,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    parser-generator = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "parser-generator";
+        ename = "parser-generator";
+        version = "0.1.3";
+        src = fetchurl {
+          url = "https://elpa.gnu.org/packages/parser-generator-0.1.3.tar";
+          sha256 = "13ssmdlni9ma6iafr4zwa2jlmq6rdlaafkdpli1a4jrk6ri6w996";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/parser-generator.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     path-iterator = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "path-iterator";
@@ -3055,10 +3115,10 @@
       elpaBuild {
         pname = "phps-mode";
         ename = "phps-mode";
-        version = "0.4.12";
+        version = "0.4.13";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/phps-mode-0.4.12.tar";
-          sha256 = "0xkzx5narbry0kbamzxv1hjgsal98cj9rp3ck25xg2ywb6nspwcw";
+          url = "https://elpa.gnu.org/packages/phps-mode-0.4.13.tar";
+          sha256 = "03j5ck0pk88kdl7br1rkdqmnjd8418y9w9m27gk63hqbi3p8diy6";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3100,10 +3160,10 @@
       elpaBuild {
         pname = "posframe";
         ename = "posframe";
-        version = "1.1.0";
+        version = "1.1.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/posframe-1.1.0.tar";
-          sha256 = "0ddm149dz71nksbpz7rwa8cax1nisf6wklv5iq4zrcbf5ghpagkg";
+          url = "https://elpa.gnu.org/packages/posframe-1.1.2.tar";
+          sha256 = "0vrv46v7qwmax5m1i6b7lwdh789dfr18ggxjl4bk05qn7waway6j";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3160,10 +3220,10 @@
       elpaBuild {
         pname = "pyim";
         ename = "pyim";
-        version = "3.9.4";
+        version = "3.9.5";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/pyim-3.9.4.tar";
-          sha256 = "0ggnl2jidcklyhqd5av5kk1f855gsq29wq2nhvp1yjzn35hz6xij";
+          url = "https://elpa.gnu.org/packages/pyim-3.9.5.tar";
+          sha256 = "1dj46yprbl3l6n83aj0hsnd0rwjcp4ypyg2nhwig39wxirwlf9an";
         };
         packageRequires = [ async emacs xr ];
         meta = {
@@ -3440,10 +3500,10 @@
       elpaBuild {
         pname = "rec-mode";
         ename = "rec-mode";
-        version = "1.8.1";
+        version = "1.8.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/rec-mode-1.8.1.tar";
-          sha256 = "0injk27l38d0sl9nzjz2bkd0qgccxyf31i42mwmivv86kv0kyxyb";
+          url = "https://elpa.gnu.org/packages/rec-mode-1.8.2.tar";
+          sha256 = "06mjj1la2v8zdhsflj3mwcp7qnkj7gxzm8wbk2pli1h8vnq2zvd0";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3533,7 +3593,7 @@
         version = "2.4";
         src = fetchurl {
           url = "https://elpa.gnu.org/packages/rt-liberation-2.4.tar";
-          sha256 = "1yqcrgfn9lbv26729x5d9qx4zyp1k05r4f63ikrnk8lhqpjs5i00";
+          sha256 = "1qfd0dy4n04gf3vx0pbwfgmp4wm2a64sh3m6mlfhinqgmasajh6r";
         };
         packageRequires = [];
         meta = {
@@ -3626,10 +3686,10 @@
       elpaBuild {
         pname = "setup";
         ename = "setup";
-        version = "1.1.0";
+        version = "1.2.0";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/setup-1.1.0.tar";
-          sha256 = "1xbh4fix6n47avv57gz48zf4ad1l6mfj30qr5lwvk6pz5gpnjg7i";
+          url = "https://elpa.gnu.org/packages/setup-1.2.0.tar";
+          sha256 = "1fyzkm42gsvsjpk3vahfb7asfldarixm0wsw3g66q3ad0r7cbjnz";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -3868,8 +3928,8 @@
         ename = "sql-beeline";
         version = "0.1";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/sql-beeline-0.1.el";
-          sha256 = "0z2wdvvq1zdw90253s5i57lx8b59rjf7g7isns4yz29lwav04j3r";
+          url = "https://elpa.gnu.org/packages/sql-beeline-0.1.tar";
+          sha256 = "0yvj96aljmyiz8y6xjpypqjfrl1jdcrcc4jx4kbgl6mkv4z2aq1g";
         };
         packageRequires = [];
         meta = {
@@ -4095,10 +4155,10 @@
       elpaBuild {
         pname = "tramp";
         ename = "tramp";
-        version = "2.5.1.4";
+        version = "2.5.1.5";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/tramp-2.5.1.4.tar";
-          sha256 = "0mk9r9hj43klah7mwldg4bw7fxcqvrbwv1gj6g90zdfsflqy7nh9";
+          url = "https://elpa.gnu.org/packages/tramp-2.5.1.5.tar";
+          sha256 = "1g3xf97q5h6sr67w9bphcbbqx9jz2lbl8lij5rz1r0zbsnlcv7n8";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4188,7 +4248,7 @@
         version = "0.2";
         src = fetchurl {
           url = "https://elpa.gnu.org/packages/uni-confusables-0.2.tar";
-          sha256 = "1lak9sr0h7hmc4qb7lzjqc1f88vjzbk8n76sspplfrizs3avg5ps";
+          sha256 = "1an2l7f8lqhp3hq511a371isv1q00nx431g2a7266pp6pn2sndj1";
         };
         packageRequires = [];
         meta = {
@@ -4203,7 +4263,7 @@
         version = "1.0.3";
         src = fetchurl {
           url = "https://elpa.gnu.org/packages/uniquify-files-1.0.3.tar";
-          sha256 = "04yfys615ncz3jyh3hx5sg6x6szx028223184zv52skb4j99vkwq";
+          sha256 = "1i7svplkw9wxiypw52chdry7f5gf992fb4yg8s7jy77v521fd2af";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4376,10 +4436,10 @@
       elpaBuild {
         pname = "vertico";
         ename = "vertico";
-        version = "0.14";
+        version = "0.17";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/vertico-0.14.tar";
-          sha256 = "1lvfvrmfi6f1jcf356rj1zl2bcbqxas7wi3yb93mxpn37l22l8mi";
+          url = "https://elpa.gnu.org/packages/vertico-0.17.tar";
+          sha256 = "1zhrkdhnc32wsc5f958hwa7mgf2vcjh3x6ng1cpndds5yllxb7s9";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -4396,10 +4456,10 @@
       elpaBuild {
         pname = "vertico-posframe";
         ename = "vertico-posframe";
-        version = "0.3.10";
+        version = "0.4.2";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/vertico-posframe-0.3.10.tar";
-          sha256 = "1bksipfi92adlmnk2rdw33c2g6qhw8hplcg67xhc299svqlkd0j2";
+          url = "https://elpa.gnu.org/packages/vertico-posframe-0.4.2.tar";
+          sha256 = "1kajkjnjlisws2zdahy3bym942f3zvf05qhbmw9i2lv54jiy07pz";
         };
         packageRequires = [ emacs posframe vertico ];
         meta = {
@@ -4474,10 +4534,10 @@
       elpaBuild {
         pname = "wcheck-mode";
         ename = "wcheck-mode";
-        version = "2020.10.4";
+        version = "2021";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/wcheck-mode-2020.10.4.el";
-          sha256 = "0pi6gvyw80phmx0qzc5wdk5czv4m9cq1hs3l4s7r8rr91g2cqi3m";
+          url = "https://elpa.gnu.org/packages/wcheck-mode-2021.tar";
+          sha256 = "0qcj0af0570cssy9b7f74v9pv0pssm6ysnl1lyh8wwvl4yf0zx61";
         };
         packageRequires = [];
         meta = {
@@ -4594,10 +4654,10 @@
       elpaBuild {
         pname = "wisi";
         ename = "wisi";
-        version = "3.1.5";
+        version = "3.1.7";
         src = fetchurl {
-          url = "https://elpa.gnu.org/packages/wisi-3.1.5.tar";
-          sha256 = "07jc8x6xdhpjv9hlghmvk7ga4gwww33nj5pizlx5scvpp0qvikpy";
+          url = "https://elpa.gnu.org/packages/wisi-3.1.7.tar";
+          sha256 = "1xraks3n97axc978qlgcwr4f7ib3lyr4bvb5lq5z099hd2g01qch";
         };
         packageRequires = [ emacs seq ];
         meta = {
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
index 3f5dd795ccb96..c9eda3a548a08 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
@@ -196,6 +196,35 @@
 
   power-mode = callPackage ./power-mode { };
 
+  prisma-mode = let
+    rev = "5283ca7403bcb21ca0cac8ecb063600752dfd9d4";
+  in melpaBuild {
+    pname = "prisma-mode";
+    version = "20211207.0";
+
+    commit = rev;
+
+    packageRequires = [ js2-mode ];
+
+    src = pkgs.fetchFromGitHub {
+      owner = "pimeys";
+      repo = "emacs-prisma-mode";
+      inherit rev;
+      sha256 = "sha256-DJJfjbu27Gi7Nzsa1cdi8nIQowKH8ZxgQBwfXLB0Q/I=";
+    };
+
+    recipe = pkgs.writeText "recipe" ''
+      (prisma-mode
+      :repo "pimeys/emacs-prisma-mode"
+      :fetcher github)
+    '';
+
+    meta = {
+      description = "Major mode for Prisma Schema Language";
+      license = gpl2Only;
+    };
+  };
+
   railgun = callPackage ./railgun { };
 
   structured-haskell-mode = self.shm;
diff --git a/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix b/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
index 90f13e870c735..3890d7fbb6efb 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/nongnu-generated.nix
@@ -297,10 +297,10 @@
       elpaBuild {
         pname = "geiser";
         ename = "geiser";
-        version = "0.18";
+        version = "0.19";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/geiser-0.18.tar";
-          sha256 = "131j4f82hl4pqj07qsl1f2dz4105v5fyll3bc97ggayzvrdiy58i";
+          url = "https://elpa.nongnu.org/nongnu/geiser-0.19.tar";
+          sha256 = "13w6gx6y8ilppcpfib5293600n0xy4xc4xa6idpmbcfd2pkmnw1x";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -327,10 +327,10 @@
       elpaBuild {
         pname = "geiser-chibi";
         ename = "geiser-chibi";
-        version = "0.16";
+        version = "0.17";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/geiser-chibi-0.16.tar";
-          sha256 = "0j9dgg2q01ya6yawpfc15ywrfykd5gzbh118k1x4mghfkfnqn1zi";
+          url = "https://elpa.nongnu.org/nongnu/geiser-chibi-0.17.tar";
+          sha256 = "1mpbkv48y1ij762f61hp1zjg3lx8k5b9bbsm5lfb7xzvmk5k3zf0";
         };
         packageRequires = [ emacs geiser ];
         meta = {
@@ -342,10 +342,10 @@
       elpaBuild {
         pname = "geiser-chicken";
         ename = "geiser-chicken";
-        version = "0.16";
+        version = "0.17";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/geiser-chicken-0.16.tar";
-          sha256 = "1zmb8c86akrd5f1v59s4xkbpgsqbdcbc6d5f9h6kxa55ylc4dn6a";
+          url = "https://elpa.nongnu.org/nongnu/geiser-chicken-0.17.tar";
+          sha256 = "13jhh0083fjx4xq0k31vw5v3ffbmn3jkb2608bimm9xlw6acgn4s";
         };
         packageRequires = [ emacs geiser ];
         meta = {
@@ -357,10 +357,10 @@
       elpaBuild {
         pname = "geiser-gambit";
         ename = "geiser-gambit";
-        version = "0.16";
+        version = "0.17";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/geiser-gambit-0.16.tar";
-          sha256 = "0bc38qlqj7a3cnrcnqrb6m3jvjh2ia5iby9i50vcn0jbs52rfsnz";
+          url = "https://elpa.nongnu.org/nongnu/geiser-gambit-0.17.tar";
+          sha256 = "12r9h1dl0y9j421v0idvr9ljj93962xfrs0nff5lmx5z1cayq456";
         };
         packageRequires = [ emacs geiser ];
         meta = {
@@ -387,10 +387,10 @@
       elpaBuild {
         pname = "geiser-guile";
         ename = "geiser-guile";
-        version = "0.18";
+        version = "0.19";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/geiser-guile-0.18.tar";
-          sha256 = "1jnqra7gysscn0gb1ap56rbjlrnhsmma7q4yfiy3zxsz8m69xhqf";
+          url = "https://elpa.nongnu.org/nongnu/geiser-guile-0.19.tar";
+          sha256 = "1rjml11gkl80x4hmh84m84r4qb3kxi36d7mwm25n791v5fs1cl32";
         };
         packageRequires = [ emacs geiser ];
         meta = {
@@ -417,10 +417,10 @@
       elpaBuild {
         pname = "geiser-mit";
         ename = "geiser-mit";
-        version = "0.13";
+        version = "0.15";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/geiser-mit-0.13.tar";
-          sha256 = "1y2cgrcvdp358x7lpcz8x8nw5g1y4h03d9gbkbd6k85643cwrkbi";
+          url = "https://elpa.nongnu.org/nongnu/geiser-mit-0.15.tar";
+          sha256 = "11agp5k79g0w5596x98kbwijvqnb1hwrbqx680mh1svd1l8374q0";
         };
         packageRequires = [ emacs geiser ];
         meta = {
@@ -447,10 +447,10 @@
       elpaBuild {
         pname = "geiser-stklos";
         ename = "geiser-stklos";
-        version = "1.3";
+        version = "1.4";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/geiser-stklos-1.3.tar";
-          sha256 = "1wkhnkdhdrhrh0vipgnlmyimi859za6jhf2ldpwfmk8r2aj8ywan";
+          url = "https://elpa.nongnu.org/nongnu/geiser-stklos-1.4.tar";
+          sha256 = "18z34x4xmn58080r2ar6wd07kap7f367my2q5ph6cdf0gs6nz4sv";
         };
         packageRequires = [ emacs geiser ];
         meta = {
@@ -881,6 +881,26 @@
           license = lib.licenses.free;
         };
       }) {};
+    pdf-tools = callPackage ({ elpaBuild
+                             , emacs
+                             , fetchurl
+                             , let-alist
+                             , lib
+                             , tablist }:
+      elpaBuild {
+        pname = "pdf-tools";
+        ename = "pdf-tools";
+        version = "1.0";
+        src = fetchurl {
+          url = "https://elpa.nongnu.org/nongnu/pdf-tools-1.0.tar";
+          sha256 = "0cjr7y2ikf2al43wrzlqdpbksj0ww6m0nvmlz97slx8nk94k2qyf";
+        };
+        packageRequires = [ emacs let-alist tablist ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/pdf-tools.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     php-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "php-mode";
@@ -975,10 +995,10 @@
       elpaBuild {
         pname = "rust-mode";
         ename = "rust-mode";
-        version = "1.0.1";
+        version = "1.0.2";
         src = fetchurl {
-          url = "https://elpa.nongnu.org/nongnu/rust-mode-1.0.1.tar";
-          sha256 = "1rybjnaycvjgqp8g8lkjzgvnwd4565cbx88qlnxfrlqd5161r1k3";
+          url = "https://elpa.nongnu.org/nongnu/rust-mode-1.0.2.tar";
+          sha256 = "08zkq5md20ppqlvd5xxsbzargs6ffzmjr1b1pq9i937l3n9d4swl";
         };
         packageRequires = [ emacs ];
         meta = {
@@ -1095,6 +1115,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    subed = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "subed";
+        ename = "subed";
+        version = "0.0.2";
+        src = fetchurl {
+          url = "https://elpa.nongnu.org/nongnu/subed-0.0.2.tar";
+          sha256 = "1q9sb8kn1g5hvmm5zl4hm90fvf5kb82da69y24x7yzgs6axy0dga";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/subed.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     swift-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib, seq }:
       elpaBuild {
         pname = "swift-mode";
@@ -1125,6 +1160,21 @@
           license = lib.licenses.free;
         };
       }) {};
+    tablist = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
+      elpaBuild {
+        pname = "tablist";
+        ename = "tablist";
+        version = "1.0";
+        src = fetchurl {
+          url = "https://elpa.nongnu.org/nongnu/tablist-1.0.tar";
+          sha256 = "1r37vk31ddiahhd11ric00py9ay9flgmsv368j47pl9653g9i6d9";
+        };
+        packageRequires = [ emacs ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/tablist.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     tuareg = callPackage ({ caml, elpaBuild, emacs, fetchurl, lib }:
       elpaBuild {
         pname = "tuareg";
@@ -1185,6 +1235,26 @@
           license = lib.licenses.free;
         };
       }) {};
+    webpaste = callPackage ({ cl-lib ? null
+                            , elpaBuild
+                            , emacs
+                            , fetchurl
+                            , lib
+                            , request }:
+      elpaBuild {
+        pname = "webpaste";
+        ename = "webpaste";
+        version = "3.2.2";
+        src = fetchurl {
+          url = "https://elpa.nongnu.org/nongnu/webpaste-3.2.2.tar";
+          sha256 = "0vviv062v46mlssz8627623g1b2nq4n4x3yiv8c882gvgvfvi2bi";
+        };
+        packageRequires = [ cl-lib emacs request ];
+        meta = {
+          homepage = "https://elpa.gnu.org/packages/webpaste.html";
+          license = lib.licenses.free;
+        };
+      }) {};
     wgrep = callPackage ({ elpaBuild, fetchurl, lib }:
       elpaBuild {
         pname = "wgrep";
diff --git a/pkgs/applications/editors/emacs/elisp-packages/org-generated.nix b/pkgs/applications/editors/emacs/elisp-packages/org-generated.nix
index 1e47b281736f0..2c9b066d27c0d 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/org-generated.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/org-generated.nix
@@ -4,10 +4,10 @@
       elpaBuild {
         pname = "org";
         ename = "org";
-        version = "20210920";
+        version = "20210929";
         src = fetchurl {
-          url = "https://orgmode.org/elpa/org-20210920.tar";
-          sha256 = "01b44npf0rxq7c4ddygc3n3cv3h7afs41az0nfs67a5x7ag6c1jj";
+          url = "https://orgmode.org/elpa/org-20210929.tar";
+          sha256 = "1fxhxjy48jxvs16x7270c4qj6n4lm952sn7q369c88gbf2jqxis4";
         };
         packageRequires = [];
         meta = {
@@ -19,10 +19,10 @@
       elpaBuild {
         pname = "org-plus-contrib";
         ename = "org-plus-contrib";
-        version = "20210920";
+        version = "20210929";
         src = fetchurl {
-          url = "https://orgmode.org/elpa/org-plus-contrib-20210920.tar";
-          sha256 = "1m376fnm8hrm83hgx4b0y21lzdrbxjp83bv45plvrjky44qfdwfn";
+          url = "https://orgmode.org/elpa/org-plus-contrib-20210929.tar";
+          sha256 = "0bn80kji2h423d39c0am2r3p2hwvdxs9rm31xa4810dff27ihxb1";
         };
         packageRequires = [];
         meta = {
diff --git a/pkgs/applications/editors/emacs/elisp-packages/org-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/org-packages.nix
deleted file mode 100644
index 12680336e0e81..0000000000000
--- a/pkgs/applications/editors/emacs/elisp-packages/org-packages.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-
-# Updating
-
-To update the list of packages from Org (ELPA),
-
-1. Run `./update-org`.
-2. Check for evaluation errors:
-     env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate ../../../../.. -A emacs.pkgs.orgPackages
-3. Run `git commit -m "org-packages $(date -Idate)" -- org-generated.nix`
-
-*/
-
-{ lib }:
-
-self: let
-
-  generateOrg = lib.makeOverridable ({
-    generated ? ./org-generated.nix
-  }: let
-
-    imported = import generated {
-      inherit (self) callPackage;
-    };
-
-    super = imported;
-
-    overrides = {
-    };
-
-  in super // overrides);
-
-in generateOrg { }
diff --git a/pkgs/applications/editors/emacs/elisp-packages/prolog/default.nix b/pkgs/applications/editors/emacs/elisp-packages/prolog/default.nix
index 24df2b0d5dec1..590906d6acdbd 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/prolog/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/prolog/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    homepage = "http://bruda.ca/emacs/prolog_mode_for_emacs/";
+    homepage = "https://bruda.ca/emacs/prolog_mode_for_emacs/";
     description = "Prolog mode for Emacs";
     license = lib.licenses.gpl2Plus;
   };
diff --git a/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json b/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
index 9467f6c7aba78..b26840a8146a2 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
+++ b/pkgs/applications/editors/emacs/elisp-packages/recipes-archive-melpa.json
@@ -213,11 +213,11 @@
   "repo": "ymarco/auto-activating-snippets",
   "unstable": {
    "version": [
-    20211103,
-    1551
+    20211208,
+    2116
    ],
-   "commit": "b868ef7065039899628a2846dd1274233e07a310",
-   "sha256": "1a8rr7ni9x4n21lysfhczf0j0nqi9xd17s39lfpxmpp10s36mrxf"
+   "commit": "b1a436922ba06ab9e1a5cc222f1a4f25a7697231",
+   "sha256": "0alscwf2937ak2pzgl9jih7s9dya7kibl59qik4fy6xbq5h52v77"
   },
   "stable": {
    "version": [
@@ -1044,8 +1044,8 @@
     "auto-complete",
     "yasnippet"
    ],
-   "commit": "933805013e026991d29a7abfb425075d104aa1cf",
-   "sha256": "0qzb6wlh2hf0kp9n74m2q6hrf4rar62dfxfh8yj1rjx2brpi1qdq"
+   "commit": "fc834dcc193e7168ffa0b3ae81ab3eefa4fd3c59",
+   "sha256": "08hnw5dbcs4ww2ir7ilnfc6r0b123alh4l8i1mzvng0h3mvmlhgq"
   },
   "stable": {
    "version": [
@@ -1070,8 +1070,8 @@
   "repo": "xcwen/ac-php",
   "unstable": {
    "version": [
-    20210909,
-    918
+    20211204,
+    733
    ],
    "deps": [
     "dash",
@@ -1081,8 +1081,8 @@
     "s",
     "xcscope"
    ],
-   "commit": "933805013e026991d29a7abfb425075d104aa1cf",
-   "sha256": "0qzb6wlh2hf0kp9n74m2q6hrf4rar62dfxfh8yj1rjx2brpi1qdq"
+   "commit": "fc834dcc193e7168ffa0b3ae81ab3eefa4fd3c59",
+   "sha256": "08hnw5dbcs4ww2ir7ilnfc6r0b123alh4l8i1mzvng0h3mvmlhgq"
   },
   "stable": {
    "version": [
@@ -1855,19 +1855,19 @@
   "repo": "Sauermann/emacs-aes",
   "unstable": {
    "version": [
-    20171029,
-    623
+    20211204,
+    2348
    ],
-   "commit": "b7d5da89c3443292e4f0b1c9d254d459933cf5af",
-   "sha256": "0nz1lf77qr3vm90rm02d4inw8glav722rxsiqds76m4xsjrq02m7"
+   "commit": "c9cd12d6c1dbc18603eb4703276132cea59d5c78",
+   "sha256": "1k5qq187xz5dbbgsrjsk3ff0dz5v328cn9iwn5rvn8a34akyal81"
   },
   "stable": {
    "version": [
-    0,
-    9
+    1,
+    0
    ],
-   "commit": "b7d5da89c3443292e4f0b1c9d254d459933cf5af",
-   "sha256": "0nz1lf77qr3vm90rm02d4inw8glav722rxsiqds76m4xsjrq02m7"
+   "commit": "b834673297a3468eeebb1b72d7c4736ffe6094ce",
+   "sha256": "0qpkzqb34qfmiyq8bpqa8jjdhl8wg4894d0qj18bnxkcilqg9kg8"
   }
  },
  {
@@ -1884,8 +1884,8 @@
    "deps": [
     "consult"
    ],
-   "commit": "0ee5e2374339c1a57d36c06818247afeecadc2c5",
-   "sha256": "0r9ziscf2f4plp740ggd2vh73cgax31xsvzmc1f5w9cy88i9f8nn"
+   "commit": "8bf8b0a365e7a4c0a7088ca47553d437de19f45a",
+   "sha256": "021wbixfgb4lzj4kq4d0hi12smzmh2j5pjh0n2xa70jidsclnfcg"
   },
   "stable": {
    "version": [
@@ -2878,8 +2878,8 @@
   "repo": "pythonic-emacs/anaconda-mode",
   "unstable": {
    "version": [
-    20210714,
-    1738
+    20211122,
+    817
    ],
    "deps": [
     "dash",
@@ -2887,14 +2887,14 @@
     "pythonic",
     "s"
    ],
-   "commit": "0546c093071417e4f30f505d9de09da883109cbf",
-   "sha256": "0mqkpgrl524j6h5037ymvfxx9zvz4gxz11kds0vqlqlrpm0vp0xc"
+   "commit": "cbea0fb3182321d34ff93981c5a59f8dd72d82a5",
+   "sha256": "0ajmqa60avwmlx9c63rirfb5mjqhbcxf2x15mnxr6a1rlzcylxg6"
   },
   "stable": {
    "version": [
     0,
     1,
-    14
+    15
    ],
    "deps": [
     "dash",
@@ -2902,8 +2902,8 @@
     "pythonic",
     "s"
    ],
-   "commit": "80afec20f91f13614647b192522fff460505db6f",
-   "sha256": "04f6kw4rd8k6waiyfbk7x8qdrqm411mdsdzjh2w9rvmv7y36ckh8"
+   "commit": "cbea0fb3182321d34ff93981c5a59f8dd72d82a5",
+   "sha256": "0ajmqa60avwmlx9c63rirfb5mjqhbcxf2x15mnxr6a1rlzcylxg6"
   }
  },
  {
@@ -2967,8 +2967,8 @@
     20211030,
     1358
    ],
-   "commit": "9f814c5e8bcabb5f65563b057ae9ad8458b90408",
-   "sha256": "0jy2pxcsj06klrc02q9nsm626nj229zg5y9gn7xyixszjjbvmlyj"
+   "commit": "db79f86842c10874ce18c1a1e4496e9d0e28bed9",
+   "sha256": "0aysq514abw75kxl3chq189xkd57mmyrv1j6rq41chndp94nl37r"
   }
  },
  {
@@ -3249,17 +3249,18 @@
     20200914,
     644
    ],
-   "commit": "6cb77e1a216098d6a4e273f6750dbf4445953272",
-   "sha256": "1rj04f9q7fn88ifznqqi3p7anv0m827mz2w2bwb4s09kdn03nf6p"
+   "commit": "756ac774b5191b252bf993b67c7ccd5648cbbb65",
+   "sha256": "174vd5dw7wz2kf08mcaakr0r0qx64bigkdhr9zg7c68xj0w0kasn"
   },
   "stable": {
    "version": [
     2,
     6,
-    2
+    2,
+    1
    ],
-   "commit": "246a229faea2ef2fa53caf491ff8a2d72dd7510c",
-   "sha256": "1ccmryw6vs8d87d5zmjl0kr2kvyd1zxl73344fa7yzqgg2kw1da6"
+   "commit": "59c7944b1a2e8015e473eb1932353818614a1e5b",
+   "sha256": "0p6jh8hyyf7xg0sni2rchck2fd1wyr5v106dfxxm09krxxawh0nh"
   }
  },
  {
@@ -3383,20 +3384,20 @@
   "repo": "zellio/ansible-vault-mode",
   "unstable": {
    "version": [
-    20211027,
-    1528
+    20211119,
+    1500
    ],
-   "commit": "5deca2fdb640fa70e614e66ee37e1d6739d39ba4",
-   "sha256": "169vfz5xz58f9avb74vzpdk1k0wj4ylc26c15ggl0y19acqx4hdw"
+   "commit": "8da2ad658dbe94c71aad1c75d6fd22888338030c",
+   "sha256": "1382ks8nakanv864flk070haibk7841ygb3nm262i7414zqsyfrk"
   },
   "stable": {
    "version": [
     0,
     5,
-    1
+    2
    ],
-   "commit": "4fc188a9817cb4c7e0f19b6f1ae720c902f7ebe9",
-   "sha256": "169vfz5xz58f9avb74vzpdk1k0wj4ylc26c15ggl0y19acqx4hdw"
+   "commit": "9b3d82ee49d484a494f2d88927b37fcd6245d51e",
+   "sha256": "1382ks8nakanv864flk070haibk7841ygb3nm262i7414zqsyfrk"
   }
  },
  {
@@ -3601,11 +3602,11 @@
   "repo": "raxod502/apheleia",
   "unstable": {
    "version": [
-    20211116,
-    132
+    20211121,
+    1845
    ],
-   "commit": "8e0605cc29732ec889b7318dd57921bf3f5ba06c",
-   "sha256": "1ffhnpz2zv4s4wl4a31c9xz9srx6h50q0ya7lacmj15vw9ffwd4z"
+   "commit": "2cf903e9a2faa3b50c97896b59361960472330f9",
+   "sha256": "04wgv5mhh9r2814k0332c8dxn89hyxh06vls2g89zzqmy5nm6gi5"
   },
   "stable": {
    "version": [
@@ -4197,6 +4198,21 @@
   }
  },
  {
+  "ename": "async-backup",
+  "commit": "79cfb4a1c6b89cc5d93020089804b5e6ae711387",
+  "sha256": "0w56q76x2b31adhjjsqm38jfgxi2305s9lxvwbq8w13693i5fv8a",
+  "fetcher": "git",
+  "url": "https://tildegit.org/contrapunctus/async-backup.git",
+  "unstable": {
+   "version": [
+    20211128,
+    1603
+   ],
+   "commit": "ba927feec1b568eb2b0a647b3eb7adf2d4a061e8",
+   "sha256": "0y88wj7p4amsqbj19rxxvhpffw43yganp1cxmzrmhbi5v66jikpr"
+  }
+ },
+ {
   "ename": "atcoder-tools",
   "commit": "314396ec5a51460ad679ee9fcf3aa3970cd44229",
   "sha256": "1rlsqqc7p351yyzmad4dvxrp5aj2788sg04019ybk83kacy0y5hf",
@@ -4700,15 +4716,15 @@
   "repo": "auto-complete/auto-complete",
   "unstable": {
    "version": [
-    20201213,
-    1255
+    20211210,
+    1808
    ],
    "deps": [
     "cl-lib",
     "popup"
    ],
-   "commit": "aafd3f566a8002a1e9b3e197721a2660c0a835ff",
-   "sha256": "0ipa5kaprisrmyyqlgzi5giq0449hjflfm81i9a5vy82ikz5lsxg"
+   "commit": "027dd93ffdd6219c9229fbb98d0ee25496dec1ee",
+   "sha256": "013g2dkyhvvx44l9q8lphv1011ilanyikhs7jf6qxp5v2plp4i6q"
   },
   "stable": {
    "version": [
@@ -5017,8 +5033,8 @@
     20211101,
     1155
    ],
-   "commit": "2a19931b275dc3c70c4bb16a3c60046800ba631a",
-   "sha256": "00f0n6pz0qi2fandcgj8skgj169bwxrda62vkrf0frwpavwpmkml"
+   "commit": "a1c67bf557277934f6dae9f2de6624d949ef2c8a",
+   "sha256": "0z5afn48w3p3i98zn81422khbl0k460spgqj60b9s7sqccbssg57"
   }
  },
  {
@@ -5029,14 +5045,14 @@
   "repo": "elp-revive/auto-highlight-symbol",
   "unstable": {
    "version": [
-    20211116,
-    1242
+    20211125,
+    747
    ],
    "deps": [
     "ht"
    ],
-   "commit": "0a16afcb10d8b3cf0e21002a6dff74f3b417c7c5",
-   "sha256": "13z0p702qxnz2xfrdw3himzgkwl3sqhcskqw8awmz67fqglw71zf"
+   "commit": "40efce76ee0dff920f2ba2315e568e75e5218830",
+   "sha256": "0nisaafqlns76wqvd4ys68h5ys4vcrzwy7lxrb4nvlhvq840g9f6"
   },
   "stable": {
    "version": [
@@ -5598,8 +5614,8 @@
     "avy",
     "embark"
    ],
-   "commit": "edfd0a842a75ad25115f95f56b0c8a9351d3e248",
-   "sha256": "1mq84aiak2fwxbxacf9wzk223dri6z918vqdgs3vy0amvn1ys2ji"
+   "commit": "54e5efae17a5c2898faabeaca9564a4d5f05761f",
+   "sha256": "0vpjszfqvkjzkjpma47rdyjzgkqdfg7palyzlii62wsrh04frg4l"
   },
   "stable": {
    "version": [
@@ -5809,11 +5825,11 @@
   "url": "https://bitbucket.org/pdo/axiom-environment",
   "unstable": {
    "version": [
-    20211116,
-    2200
+    20211120,
+    1646
    ],
-   "commit": "3266c5b2e4865337da86043b53a4e6609dbc8308",
-   "sha256": "11k53vvw5df66f54mh3zkghspmi7zsgls3mlkfvl19hz2z1pyhwq"
+   "commit": "e60de5ed107ffeb530a56d24d04f38988124d12b",
+   "sha256": "0p8kbxfcrx1ib8g17g6h2i2ygy35qq992n3s2xa6ysij7wrfn4hd"
   }
  },
  {
@@ -6062,11 +6078,14 @@
   "repo": "LiShiZhensPi/baidu-translate",
   "unstable": {
    "version": [
-    20190817,
-    1318
+    20211130,
+    1235
+   ],
+   "deps": [
+    "unicode-escape"
    ],
-   "commit": "b04a74d09ff5e3fbefd1b39b2abe79a9e272321a",
-   "sha256": "0qja8xw2sk2wn7w6qa5zj2i0j5c8a7cnldrag99ip2b5m02f1z4l"
+   "commit": "16101d5e6ce19bbcc8badf4422a95db457160999",
+   "sha256": "0799gc0nhqmgz691sn2zam3bfyraq9ljr4da1481nawwkwyzad1v"
   }
  },
  {
@@ -6378,11 +6397,11 @@
   "repo": "bazelbuild/emacs-bazel-mode",
   "unstable": {
    "version": [
-    20211031,
-    1941
+    20211130,
+    1645
    ],
-   "commit": "cdb2643dba39fe2bd64ba3b190b94d1ef1d83b18",
-   "sha256": "0ln06dprnivx9zxm6n23ppyx7x4kbn0f85pxwvkq32aq7wnqz82m"
+   "commit": "03fa200475e830b9df98c716bec26d7fb07ddda2",
+   "sha256": "16gx2qc4q14kmqkfxncxg6c2qz5si3wdql1iwkv782b335j0gkab"
   }
  },
  {
@@ -6786,11 +6805,11 @@
   "url": "https://git.sr.ht/~technomancy/better-defaults",
   "unstable": {
    "version": [
-    20210222,
-    1928
+    20211212,
+    1841
    ],
-   "commit": "4c5409406ee35c5ba46880c6cfe98df4b14dc631",
-   "sha256": "0agj1zyspm3bqj7apfjwhllnmydyj00x2iv7nvy03szpnwvm11fq"
+   "commit": "5383a9b2560adc4f7ebbdf148d87b19bf7cf8cc4",
+   "sha256": "1h1nfmpa4prfhi4j7l46q99y315ds6kl3qnxjgkdnw57nxqbwfl5"
   },
   "stable": {
    "version": [
@@ -7517,26 +7536,26 @@
   "repo": "Artawower/blamer.el",
   "unstable": {
    "version": [
-    20211114,
-    2013
+    20211206,
+    2137
    ],
    "deps": [
     "a"
    ],
-   "commit": "8855eeb6ef6aa323361498714d06365e0db83488",
-   "sha256": "04wy05pa9xzvrk33xnfvfk8hy127q7nlgn9kbcd4mm7ql4ywf8gp"
+   "commit": "d452006a31895a79216bf35a64482631a83cfc2d",
+   "sha256": "0gi0q60q9r5nx5wzavxywajmh9gw4nl20msgh9k9k9ilj4jy3a1b"
   },
   "stable": {
    "version": [
     0,
     3,
-    2
+    6
    ],
    "deps": [
     "a"
    ],
-   "commit": "8855eeb6ef6aa323361498714d06365e0db83488",
-   "sha256": "04wy05pa9xzvrk33xnfvfk8hy127q7nlgn9kbcd4mm7ql4ywf8gp"
+   "commit": "d452006a31895a79216bf35a64482631a83cfc2d",
+   "sha256": "0gi0q60q9r5nx5wzavxywajmh9gw4nl20msgh9k9k9ilj4jy3a1b"
   }
  },
  {
@@ -7598,11 +7617,11 @@
   "repo": "Sodaware/blitzmax-mode",
   "unstable": {
    "version": [
-    20200415,
-    1529
+    20211128,
+    2028
    ],
-   "commit": "5f67bb3c8e4baf1f6881cc998f9f031641a7b08a",
-   "sha256": "1hcx6b3ka0n6sbi9p0z2wqlsxk5d2pvkjawpcyh40b5f1r6dpfmc"
+   "commit": "c9651fa69116b5821cd34fb34eabc3e12ce238e2",
+   "sha256": "1h88nhqja5gzfrnbdxymnggvg3xd5yl305l4j80x3am3pyyfp909"
   },
   "stable": {
    "version": [
@@ -7945,8 +7964,8 @@
     20211019,
     511
    ],
-   "commit": "06e41de8ed7050e70627203c93b6132fec7e88d8",
-   "sha256": "07nvbp3b8bf2n5gaiz0fvr2himg624i80im4pzjx81k5fpb16sl7"
+   "commit": "59078eaa37ec168c37d52798c9f1020741271a64",
+   "sha256": "01yklj4nkpz5x45szs9b0d77xdn05rkwgl3dwjyr2j3134828mk6"
   },
   "stable": {
    "version": [
@@ -7989,16 +8008,16 @@
   "repo": "jyp/boon",
   "unstable": {
    "version": [
-    20210921,
-    1154
+    20211125,
+    2054
    ],
    "deps": [
     "dash",
     "expand-region",
     "multiple-cursors"
    ],
-   "commit": "ee88a9bbb3d39e2fa216984b6349a122a80e3c99",
-   "sha256": "0y28i8zqy6i93bajqldfwqwvlln75s81aadqq04sy6krc5nlfldy"
+   "commit": "12d6838c90058fea768cb55a0018807db804b11b",
+   "sha256": "1hcm9a09sy038kn1ij50q24w73485q55gypzx1yypz3wp5a2s8yd"
   },
   "stable": {
    "version": [
@@ -8029,8 +8048,8 @@
     "epkg",
     "magit"
    ],
-   "commit": "2ffcfd4481710e5b6d45a07a99da2561fe1c9d3e",
-   "sha256": "1nfrvln6s09krabzgsw1hqxs5rp95137dcaqk0pfj9y320awa1gb"
+   "commit": "bcae8f00dc60eca1a7cdd837e9be3b0fc942097d",
+   "sha256": "1agdddpjfxqrpiz7b9xnffw0bmb09a2mglcjb3xmhgn7zv309m3h"
   },
   "stable": {
    "version": [
@@ -8364,21 +8383,6 @@
   }
  },
  {
-  "ename": "brutal-theme",
-  "commit": "e415b9a4d269cfee5ee2b0e58acb18804c2a8cb7",
-  "sha256": "1xjj2ssw3lbx21w6g4m6vqc471v8jgmgk0zw1z1hkmygg0xipgl3",
-  "fetcher": "github",
-  "repo": "topikettunen/brutal-emacs",
-  "unstable": {
-   "version": [
-    20211112,
-    1713
-   ],
-   "commit": "f9bba56199e861bc405703286ac3378bda496898",
-   "sha256": "12j7ad1fs93a9d5s9ki99321lbky1kpsz0b84xj0yld08zvhwixb"
-  }
- },
- {
   "ename": "brutalist-theme",
   "commit": "ec889956a5685c3a60003ad2bfa04b03b57aa8e8",
   "sha256": "0dg0432r3cpjgdlpz583vky4hj5vld9d25dvaj6nxlir2ph9g9hn",
@@ -8574,27 +8578,27 @@
   "repo": "plandes/buffer-manage",
   "unstable": {
    "version": [
-    20210914,
-    1251
+    20211122,
+    1957
    ],
    "deps": [
     "choice-program",
     "dash"
    ],
-   "commit": "b903e97e47b463e08468011dc74689d61b2e52ce",
-   "sha256": "0fd1zzhvp2a7dvzm5vcywxx3iigcdz8vp7fw505mwc7hhbxv3gv0"
+   "commit": "819bbfd9ae2f028361f484bc3b60d751623a2df5",
+   "sha256": "0g79xcq0jf8p1cpsz3fifjpyaidkr0b2zm8sf11n8li4hfqmr10d"
   },
   "stable": {
    "version": [
     1,
-    0
+    1
    ],
    "deps": [
     "choice-program",
     "dash"
    ],
-   "commit": "b903e97e47b463e08468011dc74689d61b2e52ce",
-   "sha256": "0fd1zzhvp2a7dvzm5vcywxx3iigcdz8vp7fw505mwc7hhbxv3gv0"
+   "commit": "819bbfd9ae2f028361f484bc3b60d751623a2df5",
+   "sha256": "0g79xcq0jf8p1cpsz3fifjpyaidkr0b2zm8sf11n8li4hfqmr10d"
   }
  },
  {
@@ -9140,8 +9144,8 @@
     20210105,
     2255
    ],
-   "commit": "1de6be465cfe2c3f00183de9351bd838690c9f81",
-   "sha256": "1w02p4bfkyga6sign4flq2kw0hawyvnv63410pyh8nm7acp311gg"
+   "commit": "108d2298cc34d906b196178ad955e3dc139e1779",
+   "sha256": "1vwg82haclgwgjaq0r84gj416ribv7qn1lz8ixf05xhqsvq7ja87"
   },
   "stable": {
    "version": [
@@ -9780,16 +9784,16 @@
   "repo": "kisaragi-hiu/cangjie.el",
   "unstable": {
    "version": [
-    20200808,
-    828
+    20211201,
+    2307
    ],
    "deps": [
     "dash",
     "f",
     "s"
    ],
-   "commit": "0cbf706890df06b9e0d541692c579ed213da8252",
-   "sha256": "0a3mwgbza09rfiswmk4kh699mqc5746k16jc6rgy9q24jbjgradf"
+   "commit": "87408d79b73a69194842a8848de6d7708e98c3a4",
+   "sha256": "1pafp5sqr1zb0fkci6i542s683vx4x14955rv51311s2y8xzgyqf"
   },
   "stable": {
    "version": [
@@ -9807,6 +9811,29 @@
   }
  },
  {
+  "ename": "cape",
+  "commit": "2fb82d0719f9aee8c82722e81b107ef269afd6d4",
+  "sha256": "1bfml43m6xmcpvad1nc5bhwsrpnwszlyz97d82fl4m9033p6a0nc",
+  "fetcher": "github",
+  "repo": "minad/cape",
+  "unstable": {
+   "version": [
+    20211213,
+    1130
+   ],
+   "commit": "700c9d7bc221e04e259947f8fb7a908bf1909bc0",
+   "sha256": "1z2qddbirvzz017wflvc3wl5mnc7l8p8j8sc1wn7v0k8c0vdcw63"
+  },
+  "stable": {
+   "version": [
+    0,
+    3
+   ],
+   "commit": "edb2be3b71ce29ba3dbbafcafbd4e02e5a2e0ba3",
+   "sha256": "162jx3d50yxqsh5dgwvhzf6mgfgpb6lk5dwqg7j6s92alh5ardvb"
+  }
+ },
+ {
   "ename": "capnp-mode",
   "commit": "7981e5108f449a52631699439724712cba1d2a40",
   "sha256": "04idy13yzb5khzycsh394j8m4cchvnl7j75cw7ms1kdxzx6w2k4b",
@@ -9817,8 +9844,8 @@
     20210707,
     2310
    ],
-   "commit": "5ecc98425417732e7124460c7d938c0994958c1f",
-   "sha256": "10g0jap8rq0bbxqq61vvn2zklmhz94d883mr18gq1f926l3ni9z2"
+   "commit": "2ed8664a08e2c92f0af39e213c20b13d15c03346",
+   "sha256": "1rp0fx1d8mafk08smxmkdgx2gwxkvn44hyw2rxn4ax72lli61j2g"
   },
   "stable": {
    "version": [
@@ -10251,8 +10278,8 @@
     20210804,
     452
    ],
-   "commit": "f215b70c5cb02bbc43f5a7d5c8e5e3460ff82428",
-   "sha256": "0gf4xjzf3afcg88cvjmxq87pqci8s8y2av4phbh3bgd00myjmhfw"
+   "commit": "8e963c68531f75e459e8ebe7a34fd3ba9d3729a0",
+   "sha256": "1x5zg7qj4npi1y4030iakwy1mvfa04r79ijc3bwlsc74351wf27z"
   },
   "stable": {
    "version": [
@@ -10371,15 +10398,15 @@
   "repo": "ema2159/centaur-tabs",
   "unstable": {
    "version": [
-    20210507,
-    1633
+    20211130,
+    637
    ],
    "deps": [
     "cl-lib",
     "powerline"
    ],
-   "commit": "8b4249c40581368faf7bb8e06f86b9eee199c3c6",
-   "sha256": "185q3iplgycmq6zyyjn3aqq1gylvbb7r8zd1q9km2xl1fzg94jxi"
+   "commit": "5860a5c40c2318797f1274ea4c6907ae77ea1ec9",
+   "sha256": "10xw1cz9b6fvkn4rjsds1m2xrz9hf22k9bbdy089v49nwla5xiyk"
   },
   "stable": {
    "version": [
@@ -10506,17 +10533,17 @@
     20171115,
     2108
    ],
-   "commit": "be17316bf94dcfd0e725383041f5f059d85d8846",
-   "sha256": "0jf9ss3nj1v5qn02g9vhcsxp4rdrhx9s5ajd9md641av9p8c6rkm"
+   "commit": "945aee7d4538e71a990dbb42ce99bf3f74e17b40",
+   "sha256": "0g1ak590qjfqd0nyj9spf10jbyb9f8mxrhjm6cq9p3hlzcbjl11c"
   },
   "stable": {
    "version": [
     3,
-    18,
+    19,
     0
    ],
-   "commit": "b2e902351f51f30b46836494ae9cc1b38b3c6cf5",
-   "sha256": "1lm791bv829p4yjy95lw673g1l9cihg0akan6qxyjg7x219l7dgy"
+   "commit": "945aee7d4538e71a990dbb42ce99bf3f74e17b40",
+   "sha256": "0g1ak590qjfqd0nyj9spf10jbyb9f8mxrhjm6cq9p3hlzcbjl11c"
   }
  },
  {
@@ -11153,16 +11180,16 @@
   "url": "https://tildegit.org/contrapunctus/chronometrist.git",
   "unstable": {
    "version": [
-    20210905,
-    1942
+    20211206,
+    928
    ],
    "deps": [
     "dash",
     "seq",
     "ts"
    ],
-   "commit": "d673f00e5a43f8ac276b89c85622dcdf4cbd8148",
-   "sha256": "0cppwh15wb4kkhmqpi5cndvvyqlb6jjfj634cxlhkkvwbr0rmnjv"
+   "commit": "7ca6413907ac57e09010265257c48b5500fe09f8",
+   "sha256": "06lsaw2z7q131dfgfcmm0dgiimjd6psxlk1biyzrahgs992gm7d2"
   },
   "stable": {
    "version": [
@@ -11219,14 +11246,14 @@
   "url": "https://tildegit.org/contrapunctus/chronometrist.git",
   "unstable": {
    "version": [
-    20210904,
-    1359
+    20211118,
+    1235
    ],
    "deps": [
     "chronometrist"
    ],
-   "commit": "d673f00e5a43f8ac276b89c85622dcdf4cbd8148",
-   "sha256": "0cppwh15wb4kkhmqpi5cndvvyqlb6jjfj634cxlhkkvwbr0rmnjv"
+   "commit": "7ca6413907ac57e09010265257c48b5500fe09f8",
+   "sha256": "06lsaw2z7q131dfgfcmm0dgiimjd6psxlk1biyzrahgs992gm7d2"
   },
   "stable": {
    "version": [
@@ -11297,8 +11324,8 @@
   "repo": "clojure-emacs/cider",
   "unstable": {
    "version": [
-    20211108,
-    621
+    20211209,
+    1217
    ],
    "deps": [
     "clojure-mode",
@@ -11309,8 +11336,8 @@
     "sesman",
     "spinner"
    ],
-   "commit": "a30d2e5ee2052dbc06e24c2494747ebd60f0cd03",
-   "sha256": "1dsx3f752hkj18b2bwyjnl37xfb4cqhh8mxl5gjp5dc9nk6i2ccv"
+   "commit": "e7387f07b1398021cfce09aaf29bdc572f925154",
+   "sha256": "16pdq27c269bch1hmrc4j8xmxkiz6n26mapvgzks65156qrv9gfm"
   },
   "stable": {
    "version": [
@@ -11450,6 +11477,36 @@
   }
  },
  {
+  "ename": "cilk-mode",
+  "commit": "2bd58dbb29a3e1c03804d91cdfed3e0dd4a4a2a2",
+  "sha256": "1g1jskhczzqiklkx402lfg0nn2rclxc1m7ic08rrjfbvqxv5m3rc",
+  "fetcher": "github",
+  "repo": "ailiop/cilk-mode",
+  "unstable": {
+   "version": [
+    20211207,
+    1656
+   ],
+   "deps": [
+    "flycheck"
+   ],
+   "commit": "51eb3088337674389275b9352a1b16dce2d917db",
+   "sha256": "0mbfk0r14n7kx5m49b0j50m2kzg042nzrk2y91y7pj8sc7vh1lm6"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    1
+   ],
+   "deps": [
+    "flycheck"
+   ],
+   "commit": "51eb3088337674389275b9352a1b16dce2d917db",
+   "sha256": "0mbfk0r14n7kx5m49b0j50m2kzg042nzrk2y91y7pj8sc7vh1lm6"
+  }
+ },
+ {
   "ename": "cinspect",
   "commit": "1e5b5bdbfeb59ed8e98e50d0cc773d78c72d1699",
   "sha256": "0djh61mrfgcm3767ll1l5apw6646j4fdcaripksrmvn5aqfn8rjj",
@@ -11579,28 +11636,30 @@
   "repo": "bdarcus/citar",
   "unstable": {
    "version": [
-    20211117,
-    312
+    20211212,
+    2349
    ],
    "deps": [
+    "citeproc",
     "org",
     "parsebib",
     "s"
    ],
-   "commit": "26c83fb42e0daece49cc98bebca0e81ea7c0232b",
-   "sha256": "0ch6wja4s6mdcfhxkdjfx82k519wq41v4rirsggczpkrzx7j5ql3"
+   "commit": "51b30f2e4091a41243ae62cfbac53e7a579f3168",
+   "sha256": "1gym9nsqpxhmjx03j2hc4vsx6y20w2ara6nwhgyf6723dkjdg47m"
   },
   "stable": {
    "version": [
     0,
-    8
+    9
    ],
    "deps": [
-    "bibtex-completion",
-    "parsebib"
+    "org",
+    "parsebib",
+    "s"
    ],
-   "commit": "2dcf0c450a80609294edcb89d55f352e763d0570",
-   "sha256": "1jrfcfr976c9nb2vpfrh6yhck5gm34wcjzbk0m6gq2xg3qfv2g6p"
+   "commit": "348ffb9853e04fbe3e0cbc25185236ecf65ccb35",
+   "sha256": "15jhpl2j4rm97cvvqzlfzxarvxvcsg64raz068psrsd2y7y2zh4c"
   }
  },
  {
@@ -11611,8 +11670,8 @@
   "repo": "andras-simonyi/citeproc-el",
   "unstable": {
    "version": [
-    20211111,
-    1008
+    20211213,
+    1446
    ],
    "deps": [
     "dash",
@@ -11623,8 +11682,8 @@
     "s",
     "string-inflection"
    ],
-   "commit": "2857f9bb819d0d0a6e6ed91cc38b165e506bfc2e",
-   "sha256": "11qm0mg0spwmqrl8d4pwjp0byn5b2askjcbs1yl1rpmlki97hb6m"
+   "commit": "538fed794c29acf81efee8a2674268bd3d7cc471",
+   "sha256": "0z6i352f7gjxml7cl2yi35phw0dqw5kb14bsrhk4rh0vs065g7vg"
   },
   "stable": {
    "version": [
@@ -11690,11 +11749,11 @@
   "repo": "universal-ctags/citre",
   "unstable": {
    "version": [
-    20211010,
-    1654
+    20211204,
+    1356
    ],
-   "commit": "047aece5a6d8e1ed267e542c53f5f013293fce21",
-   "sha256": "09szz5m8gw3j86c3pd449wghrff1zbs1nxypbxxagry59kvsdxkf"
+   "commit": "b9e274b180fcda981eec35dae0355d9d1305ad42",
+   "sha256": "1nxqcr560ahsfx1ffc97zz80cm173q9hjdv1nhnz31cdcyjrb35s"
   },
   "stable": {
    "version": [
@@ -11759,20 +11818,20 @@
   "url": "https://git.sr.ht/~pkal/clang-capf",
   "unstable": {
    "version": [
-    20210707,
-    1127
+    20211204,
+    1351
    ],
-   "commit": "258863d5cd77d2c9d07cc5dfa41b20db22a178f7",
-   "sha256": "1zg192hy2mf6r6fiy2ahkprxjnb79lh9n6wv6nvxqnc5cq0969i4"
+   "commit": "147be0e908f09ab2346443d48457f9624a404019",
+   "sha256": "1qwlafw28axrnhk9zrhpgww22964j9s0ys43dndmmh16ykyzaxgc"
   },
   "stable": {
    "version": [
     1,
     2,
-    1
+    3
    ],
-   "commit": "e422f339395aac6d023954880d19bc76a0d1072d",
-   "sha256": "1gdd674m1vbl8acwsgx6qfmx1gr7h8a6yadzp1jjaandpmc9jlrf"
+   "commit": "147be0e908f09ab2346443d48457f9624a404019",
+   "sha256": "1qwlafw28axrnhk9zrhpgww22964j9s0ys43dndmmh16ykyzaxgc"
   }
  },
  {
@@ -12057,8 +12116,8 @@
     "seq",
     "yasnippet"
    ],
-   "commit": "af1bde5cb0ca5679927f70eb21e7a95a33791e51",
-   "sha256": "1a962xav2pzbdx2zfaf53hqj8a5nz1im1773b7b1d9s7vp4lc991"
+   "commit": "363b95c5d2855abc93ac011e9adc778cf7a773e5",
+   "sha256": "1fm01ns63l1yrrya37aby4sx91kcnm56ba1bm3y7r8ilm4zcz40x"
   },
   "stable": {
    "version": [
@@ -12305,11 +12364,11 @@
   "repo": "clojure-emacs/clojure-mode",
   "unstable": {
    "version": [
-    20211114,
-    757
+    20211119,
+    1904
    ],
-   "commit": "08986ac32972830bb191496ea680fba1d6cd5fe2",
-   "sha256": "1y6zr7ijpyl1kf15108b5mkicf76ha2v8wq8lsk02xglgmjb7f5l"
+   "commit": "7d3c0c16e4aa14a051b393c249f0f4d307a2c74d",
+   "sha256": "1b3442z4awk3h1ns0fn0mif8vzlrdqzq1gbj9k848df5qz2qgvcv"
   },
   "stable": {
    "version": [
@@ -12335,8 +12394,8 @@
    "deps": [
     "clojure-mode"
    ],
-   "commit": "08986ac32972830bb191496ea680fba1d6cd5fe2",
-   "sha256": "1y6zr7ijpyl1kf15108b5mkicf76ha2v8wq8lsk02xglgmjb7f5l"
+   "commit": "7d3c0c16e4aa14a051b393c249f0f4d307a2c74d",
+   "sha256": "1b3442z4awk3h1ns0fn0mif8vzlrdqzq1gbj9k848df5qz2qgvcv"
   },
   "stable": {
    "version": [
@@ -12638,19 +12697,17 @@
     20210104,
     1831
    ],
-   "commit": "d2e10c4d8dd7dc32ae775a6382c5277308639271",
-   "sha256": "1jcw34vbfhs6mv4a9sl9gnqyf3g4fsnrcpdzkyx872c6awdg36dl"
+   "commit": "cd6b08440752f335f01c3419417dc817d20423ec",
+   "sha256": "1np0hnx9c7prc40abwy43m2ycvayxjdibcgrw68a4c4bx0hljw6z"
   },
   "stable": {
    "version": [
     3,
     22,
-    0,
-    -1,
-    3
+    1
    ],
-   "commit": "fed67fa40d7b6e34ee7c8565694bd54af61aed73",
-   "sha256": "0ddnqjbkmj40119w071vhchprcljdm1k9n3aps5vsa6srdpxa0dh"
+   "commit": "aa6a33fe54918967f6ffcad30773e01664e8a2b2",
+   "sha256": "1b5afd4ryqmkdkwpr1xb6g31d8xlkbjg9ql191rvnp5rsmb9a75w"
   }
  },
  {
@@ -12718,11 +12775,11 @@
   "repo": "tumashu/cnfonts",
   "unstable": {
    "version": [
-    20211112,
-    808
+    20211208,
+    2153
    ],
-   "commit": "4dad44ed3619c40ba406bcf45d37fdec3ce0db8e",
-   "sha256": "037k5d4ikb3bqa1gqipzkx92ml8fajgalz0r375y7hlvasr2zvzx"
+   "commit": "2f14a3c169896f5bfe92a0bf7a76d5ebf480eb6a",
+   "sha256": "0p7x3rlfg4q61xbd5mvwyr6lxjfr0m24nhj2l24z5r4qfldzsknf"
   },
   "stable": {
    "version": [
@@ -12828,6 +12885,52 @@
   }
  },
  {
+  "ename": "code-review",
+  "commit": "35fb4e48e1ea127fc64734dceb29fa00f08005a3",
+  "sha256": "0pvd1g3485m2qjq93w5qd0rras7rznmk1yk8mfa90pk2y8p7gmrd",
+  "fetcher": "github",
+  "repo": "wandersoncferreira/code-review",
+  "unstable": {
+   "version": [
+    20211212,
+    1051
+   ],
+   "deps": [
+    "a",
+    "closql",
+    "deferred",
+    "emojify",
+    "forge",
+    "ghub",
+    "magit",
+    "markdown-mode",
+    "uuidgen"
+   ],
+   "commit": "a440c3429c158a88af6517bbcd0efb1a2956bf12",
+   "sha256": "0mabb6z0hp34w93az3x2hzkrlwi2mv885m5j4xy1rz5k9vc31ssq"
+  },
+  "stable": {
+   "version": [
+    0,
+    0,
+    4
+   ],
+   "deps": [
+    "a",
+    "closql",
+    "deferred",
+    "emojify",
+    "forge",
+    "ghub",
+    "magit",
+    "markdown-mode",
+    "uuidgen"
+   ],
+   "commit": "36f62479c263a3b1832d89e1eb0576e958d477f1",
+   "sha256": "1gsmrczhj1vjs6v5anxc9kbv22dmq37a3l16xnb1p76zyk3p7cmm"
+  }
+ },
+ {
   "ename": "code-stats",
   "commit": "20af5580926e9975605c0a245f6ac15c25f4921e",
   "sha256": "0mwjlhpmrbh3mbw3hjlsbv1fr4mxh068c9g0zcxq7wkksxx707if",
@@ -13591,11 +13694,11 @@
   "repo": "company-mode/company-mode",
   "unstable": {
    "version": [
-    20211112,
-    2354
+    20211201,
+    2335
    ],
-   "commit": "eb9be0bff7c323c720198dcd539ee05fa2485cd3",
-   "sha256": "09xzxyk81rwpgc05g8w0nl36lax6x6z94hrnjivn72c7zdwq58i2"
+   "commit": "8b58e5895c2eaf8686de0e25c807b00fdb205c7a",
+   "sha256": "1rc4hcg3bgqmllgb4xfylpkmg2wkx5qk7nagwdhx6klq87jbxdz9"
   },
   "stable": {
    "version": [
@@ -13733,8 +13836,8 @@
     "axiom-environment",
     "company"
    ],
-   "commit": "3266c5b2e4865337da86043b53a4e6609dbc8308",
-   "sha256": "11k53vvw5df66f54mh3zkghspmi7zsgls3mlkfvl19hz2z1pyhwq"
+   "commit": "e60de5ed107ffeb530a56d24d04f38988124d12b",
+   "sha256": "0p8kbxfcrx1ib8g17g6h2i2ygy35qq992n3s2xa6ysij7wrfn4hd"
   }
  },
  {
@@ -13873,26 +13976,26 @@
   "repo": "redguardtoo/company-ctags",
   "unstable": {
    "version": [
-    20210723,
-    1322
+    20211211,
+    338
    ],
    "deps": [
     "company"
    ],
-   "commit": "ff813c58e930d01fb55ee2f57fe810896a12c51b",
-   "sha256": "0v5a7aaqj1p2c6ci34v31r4jb1wd29rff7n779n3klaqjbkg3b6h"
+   "commit": "313508ba5d4f1e4b5d5d554faaa74076201c3248",
+   "sha256": "0hf7lq6rcs6xhmgpc8bwk115rykyfvakcjqpanlsh5m3fdswjq03"
   },
   "stable": {
    "version": [
     0,
     0,
-    6
+    7
    ],
    "deps": [
     "company"
    ],
-   "commit": "cf7bfdbfedc8ca4ee134c8d66e70eb6035185174",
-   "sha256": "0ysf3gd3fk74j203y2zg3rq41jx42wgk1y1fn2g5giawazi7ym2x"
+   "commit": "313508ba5d4f1e4b5d5d554faaa74076201c3248",
+   "sha256": "0hf7lq6rcs6xhmgpc8bwk115rykyfvakcjqpanlsh5m3fdswjq03"
   }
  },
  {
@@ -14394,8 +14497,8 @@
     "lean-mode",
     "s"
    ],
-   "commit": "bf32bb97930ed67c5cbe0fe3d4a69dedcf68be44",
-   "sha256": "1bkv5zs38ijawvavbba0fdf2flb6fiwici3qi99ws8wvwhnbkws2"
+   "commit": "4a90f2ae6e33c162a3dd6f624fb080c2ed8e8494",
+   "sha256": "1zikz4qaxabs3j86gljpp2qbhbzxsjzz544k9vsngibd468dszlv"
   }
  },
  {
@@ -14685,16 +14788,16 @@
   "repo": "xcwen/ac-php",
   "unstable": {
    "version": [
-    20201009,
-    1025
+    20211204,
+    558
    ],
    "deps": [
     "ac-php-core",
     "cl-lib",
     "company"
    ],
-   "commit": "933805013e026991d29a7abfb425075d104aa1cf",
-   "sha256": "0qzb6wlh2hf0kp9n74m2q6hrf4rar62dfxfh8yj1rjx2brpi1qdq"
+   "commit": "fc834dcc193e7168ffa0b3ae81ab3eefa4fd3c59",
+   "sha256": "08hnw5dbcs4ww2ir7ilnfc6r0b123alh4l8i1mzvng0h3mvmlhgq"
   },
   "stable": {
    "version": [
@@ -15182,15 +15285,15 @@
   "repo": "stan-dev/stan-mode",
   "unstable": {
    "version": [
-    20210130,
-    1325
+    20211129,
+    2051
    ],
    "deps": [
     "company",
     "stan-mode"
    ],
-   "commit": "9bb858b9f1314dcf1a5df23e39f9af522098276b",
-   "sha256": "031418nkp9qwlxda8i3ankp3lq94sv8a8ijwrbcwb4w3ssr9j3ds"
+   "commit": "150bbbe5fd3ad2b5a3dbfba9d291e66eeea1a581",
+   "sha256": "06y4gvw8g4mjyiv77rznivqphh9sayjmi9aqr9nhxlf6i19a6hqh"
   },
   "stable": {
    "version": [
@@ -15656,8 +15759,8 @@
   "repo": "necaris/conda.el",
   "unstable": {
    "version": [
-    20210818,
-    103
+    20211123,
+    357
    ],
    "deps": [
     "dash",
@@ -15665,8 +15768,8 @@
     "pythonic",
     "s"
    ],
-   "commit": "4de6eccda5ffa1a15c6f2695d93234047a127d88",
-   "sha256": "1mk8511zx429970k5l4mqjazr883mnz63hzk9h9jb17fvhv38d3i"
+   "commit": "7a34e06931515d46f9e22154762e06e66cfbc81c",
+   "sha256": "0n1w3gx7xv84nc5hz8w1ab2ml45g64jx05cwrflf5kqmx496phms"
   },
   "stable": {
    "version": [
@@ -15820,11 +15923,11 @@
   "repo": "minad/consult",
   "unstable": {
    "version": [
-    20211117,
-    855
+    20211213,
+    1713
    ],
-   "commit": "69bc425c59414ece0a49dfa8e3f2d9759a13748c",
-   "sha256": "066a3gf1hgzc4n7r06m1x3kyp98sabs8kf25dhlg9wgl2l6gccf0"
+   "commit": "cc8eff9578f5d089735e8b7dd7a08732890ed648",
+   "sha256": "17rq9l54hvchbr8z0cr8zd1w3j7sf1ykgxgclwrprrq74qs5dmps"
   },
   "stable": {
    "version": [
@@ -15920,8 +16023,8 @@
     "consult",
     "flycheck"
    ],
-   "commit": "92b259e6a8ebe6439f67d3d7ffa44b7e64b76478",
-   "sha256": "15lihfdjdp5ynmq0g8wkq8dhb2jdlvfcqbb2ap588igi5vax3glz"
+   "commit": "0ad7e8ff15683a4d64b79c29b3fcf847edfe244b",
+   "sha256": "09h9p7axy4gavzz2fn847hx2xvfxlnz4x9lpvp9arivjzn0yqrzi"
   },
   "stable": {
    "version": [
@@ -16009,27 +16112,27 @@
   "url": "https://codeberg.org/jao/consult-notmuch.git",
   "unstable": {
    "version": [
-    20211114,
-    557
+    20211210,
+    338
    ],
    "deps": [
     "consult",
     "notmuch"
    ],
-   "commit": "5e62b4da80c5361a656f459fc2fd3ec65d5d9bf1",
-   "sha256": "1krap35x6r3gfh0hk9vq7z471m21j2dyljaf5ppx85yhfanhpxp2"
+   "commit": "2fd4befde0a2664b862a0e0c4ed3ccaedfc19c00",
+   "sha256": "1snl2qi9d7mhycz3aspqh24rgd57xnykj4378whryq0590i7ca82"
   },
   "stable": {
    "version": [
     0,
-    5
+    6
    ],
    "deps": [
     "consult",
     "notmuch"
    ],
-   "commit": "f978408fb4f7bae1b2d2913d71d7a816c18b78b6",
-   "sha256": "04ha4mysxvfz6yzbkgrl1mcwic1lwr1xx6gdy5rl6hn1wwnwam4p"
+   "commit": "a5509cfd0c9f69327ab63fd18e548b7f39be16c8",
+   "sha256": "07qbm5p4cfrrwyp8a5sw0wkdhnqbappz4xjlnjil2krhj9g39q78"
   }
  },
  {
@@ -16107,15 +16210,15 @@
   "repo": "mohkale/consult-yasnippet",
   "unstable": {
    "version": [
-    20211002,
-    1849
+    20211122,
+    810
    ],
    "deps": [
     "consult",
     "yasnippet"
    ],
-   "commit": "5a053c0867a80832de04ef58a084b231aced78cf",
-   "sha256": "12xdk8z0nzb1in2zgqvlqk8dwqlg3y7jg9c26lgg174qi5h995r5"
+   "commit": "9f38ad510328e708370a3a6b41cf40e8bd031b04",
+   "sha256": "019m29j9xf49shd3qnkvxx8bb20d7xavq1y5a07k5vn9lahmzhj2"
   }
  },
  {
@@ -16215,14 +16318,14 @@
   "repo": "liuyinz/emacs-conventional-changelog",
   "unstable": {
    "version": [
-    20211103,
-    1242
+    20211212,
+    1158
    ],
    "deps": [
     "transient"
    ],
-   "commit": "9db9dcfdff2ff8cf6a88e938646cb26ce0f61774",
-   "sha256": "1qm6v88mz6bxz0yg2yw5xfiz5jjnz3i9vwaa3irnywzs6prw7pa4"
+   "commit": "40c2ee58364422b776e81dc153918205bfbeda86",
+   "sha256": "1zxs0sgrdhzlfixahss4m3a7jx2qdkaccqkg9jbyf4vsdm17im48"
   },
   "stable": {
    "version": [
@@ -16681,14 +16784,14 @@
   "repo": "redguardtoo/counsel-etags",
   "unstable": {
    "version": [
-    20211010,
-    1332
+    20211210,
+    1127
    ],
    "deps": [
     "counsel"
    ],
-   "commit": "98860e5981b07952b5c15361cdb996741e5842c5",
-   "sha256": "056zqa9rq32vrmqq7i1yi37l5ypjdk2dgcd0yl9wlcl339cdzwsq"
+   "commit": "bafd22a20c3328b0cf81aa9c35bfa37a095cf9c3",
+   "sha256": "1p651ykxbakzhwlrxcz4v62kj4f78l83f67qcghi58sq9cvwg1gi"
   },
   "stable": {
    "version": [
@@ -17075,16 +17178,16 @@
   "repo": "AdamNiederer/cov",
   "unstable": {
    "version": [
-    20211026,
-    308
+    20211203,
+    416
    ],
    "deps": [
     "elquery",
     "f",
     "s"
    ],
-   "commit": "58cf3d5fd2d71084083a293b0fc7ce947aadaf26",
-   "sha256": "0lbsc5dz810gcvpapqa0x9b0wpd9fb1sb4qj32ypfbc3ywklzd38"
+   "commit": "6c951cca9867e26df316ca5dc313ceabd22070a5",
+   "sha256": "16xf7hfyq39wc363g6lqmdcl0vidk4i9wycdws17954w9gzhahq6"
   }
  },
  {
@@ -17656,20 +17759,20 @@
   "repo": "emacs-csharp/csharp-mode",
   "unstable": {
    "version": [
-    20211115,
-    2134
+    20211124,
+    1105
    ],
-   "commit": "515b866704252fc862144d9ff677fba75488e445",
-   "sha256": "0xadchhbfikw2vac6kqkmdjjixhybxqqf99cpl089cga9sjc7i5p"
+   "commit": "856ecbc0a78ae3bdc2db2ae4d16be43e2d9d9c5e",
+   "sha256": "18s3vj4hkxdmzbch4zh943p4fbm721kmh91vdkc2fjgpilr2imk3"
   },
   "stable": {
    "version": [
     1,
     1,
-    0
+    1
    ],
-   "commit": "515b866704252fc862144d9ff677fba75488e445",
-   "sha256": "0xadchhbfikw2vac6kqkmdjjixhybxqqf99cpl089cga9sjc7i5p"
+   "commit": "9917e1b97d6a374c8043124817142ea3419a649b",
+   "sha256": "0wfd4jdjsq8qp6pavf25y87dxvlnsqapfi4c4m3xj24baalr2dpq"
   }
  },
  {
@@ -18352,17 +18455,17 @@
     20211111,
     1407
    ],
-   "commit": "2b1e743b9c736ec41e92b197eb709db0427558b4",
-   "sha256": "0x6nbir7pk8w4265qywqxjdvrrkyvkp8z066z29zljwcry1wk1ml"
+   "commit": "b2fac63f4a653bfd32eb4bba20bfb30b2ebad190",
+   "sha256": "1h20vkj3m2igb2ny7nrjphg1k0r2jqz7ijj859gb85avrv9mffdh"
   },
   "stable": {
    "version": [
     0,
     29,
-    24
+    25
    ],
-   "commit": "3a34c5fb48ee86be9d0a819fee1ff3cb3efd1a1e",
-   "sha256": "0jsbmgqxhyjsrjc2h6lw4yqjjqaiqmgz4yjg580j76q8zk9vkjyb"
+   "commit": "4c4585ce459e258b70dbff6765e841685d4e19fd",
+   "sha256": "0fg0fwklvsjdnkga314rw3v6ywq51r4fdha5yzdhgz51bnilymd5"
   }
  },
  {
@@ -18450,11 +18553,11 @@
   "repo": "cbowdon/daemons.el",
   "unstable": {
    "version": [
-    20210728,
-    1514
+    20211204,
+    1202
    ],
-   "commit": "cbab674d995022c1c223bfccf13d8009c7c4e2ba",
-   "sha256": "0h08k9g746j1kg4138am3v7lv9w6fg7yrz2hzm7x737qmg852chn"
+   "commit": "cf0ab15a26490ca82aaf6c258f1fc7da195e4fdd",
+   "sha256": "1icd6l8cpiqiyg1489dnwsqdxq3l62j7iib0c2a54wr83l7zyp7w"
   },
   "stable": {
    "version": [
@@ -18560,8 +18663,8 @@
   "repo": "emacs-lsp/dap-mode",
   "unstable": {
    "version": [
-    20211110,
-    1129
+    20211117,
+    1555
    ],
    "deps": [
     "bui",
@@ -18573,8 +18676,8 @@
     "posframe",
     "s"
    ],
-   "commit": "c19da4d347114d19fd9cd77af3650bcec7d81b15",
-   "sha256": "1pmzrb9c8z3jhwfjygdlkarc9ssaldvqx4vi48j6yg8av99p5z03"
+   "commit": "76cad34de8984f57c2b1e374e9c985cc7ec8dad0",
+   "sha256": "0q37nnxvb362pni0nralb6cpw7vvaj0kw63y8zpip8szwj9yqrki"
   },
   "stable": {
    "version": [
@@ -19311,16 +19414,16 @@
   "repo": "Wilfred/deadgrep",
   "unstable": {
    "version": [
-    20211107,
-    445
+    20211201,
+    1747
    ],
    "deps": [
     "dash",
     "s",
     "spinner"
    ],
-   "commit": "97663c41624526c4ceaf82fb6a0137ab2081affe",
-   "sha256": "1rkskf8byl5fnnlahvppawfjj7zc41sag4gwxdb2r3j77g5d5ahq"
+   "commit": "7f1a537783bdad65246cb7a510aa0ae539bdd526",
+   "sha256": "045j8jl4cdwp45qxsxlzykqh5iz3z7njl3qb9fdz9bspa659db4r"
   },
   "stable": {
    "version": [
@@ -19412,19 +19515,19 @@
   "repo": "lifelike/decide-mode",
   "unstable": {
    "version": [
-    20190201,
-    2137
+    20211127,
+    2248
    ],
-   "commit": "4bfcc826dd5b1c30caec455d8baa4f363159eac6",
-   "sha256": "07rwflgqlsgqrw2v7rbshrbcr1qkgsx59y904jspvj310s8bsczg"
+   "commit": "668fa559b95b50f140e73f26a21fad559c1ffa77",
+   "sha256": "1wbiy8lda6p888qf4ak8j02cp42h25y17xnz5bq5p032xgq731n0"
   },
   "stable": {
    "version": [
     0,
-    7
+    8
    ],
-   "commit": "90133687118c236142b8110571c463304b3192f9",
-   "sha256": "04yakjnh9c165ssmcwkkm03lnlhgfx5bnk0v3cm73kmwdmfd2q7s"
+   "commit": "668fa559b95b50f140e73f26a21fad559c1ffa77",
+   "sha256": "1wbiy8lda6p888qf4ak8j02cp42h25y17xnz5bq5p032xgq731n0"
   }
  },
  {
@@ -19968,11 +20071,11 @@
   "repo": "blahgeek/emacs-devdocs-browser",
   "unstable": {
    "version": [
-    20210815,
-    1600
+    20211212,
+    1544
    ],
-   "commit": "4d81e4db165671ba3e7326dec72f950b26df4dde",
-   "sha256": "0jfrsqvlfv1xh8ss0c9pk4b5dffrxq8i3vp08ckigbdbk31fsvmx"
+   "commit": "2d265d48d40156d4a2dd2b6b433c8d969e037c5a",
+   "sha256": "1y6akvcky85z45d9s7ll8i1v2xz4a1xy0pfg7c1qi0xs5d3xw4i1"
   }
  },
  {
@@ -20395,27 +20498,27 @@
   "repo": "DaniruKun/dilbert-el",
   "unstable": {
    "version": [
-    20211114,
-    1009
+    20211118,
+    1512
    ],
    "deps": [
     "dash",
     "enlive"
    ],
-   "commit": "bd8c11ccc512ca60906a8b0e4bca2081ba4aab7b",
-   "sha256": "110ynzqsnkv6sdnbk475h6qyrvj4w1dk577hpr1p7pk7bif4waxd"
+   "commit": "3e9a39717490be4d5c14211a47fcd8588ef668af",
+   "sha256": "0hjscamqn70b0npj69ajycd0kld98bqkcjfnsgrmk97w367719lp"
   },
   "stable": {
    "version": [
     0,
-    1
+    2
    ],
    "deps": [
     "dash",
     "enlive"
    ],
-   "commit": "e660def51721f80b7d21eeab60e9a719be5106f7",
-   "sha256": "0gim8imb9cw16sr76hydjp1rjw2cczslnh4h2gvq3jsmpk2hdvma"
+   "commit": "4d0ac315d1bf2d7965ea6a4d32a572a73315caf0",
+   "sha256": "1kvvkq050z5dhlyjcdg3b9563pgy6aphf5xmh9ph26w6a29r7i7q"
   }
  },
  {
@@ -20550,11 +20653,11 @@
   "repo": "gonewest818/dimmer.el",
   "unstable": {
    "version": [
-    20210109,
-    1932
+    20211123,
+    1536
    ],
-   "commit": "8559fb73a2c96755cb30f560be82191164014b43",
-   "sha256": "0jb5ki27yvzli3yybglhcnkhzpjxv15zy646yaafszq232j1ylnk"
+   "commit": "2f915b100044e09dd647b22085e1696249c4b115",
+   "sha256": "00y6645zjary1sz7517qy5pjwfm5ipsc46sypmdygin65hbbc8wg"
   },
   "stable": {
    "version": [
@@ -20969,11 +21072,11 @@
   "repo": "thomp/dired-launch",
   "unstable": {
    "version": [
-    20210818,
-    2257
+    20211205,
+    712
    ],
-   "commit": "d54f661c8b3477f342c6c3b3c6c9a500cde595a9",
-   "sha256": "1p7pvl8fp043cv9b0gzbrilnk0k54s7jana39xyvb1zrch99zx2s"
+   "commit": "b4a5341e22efed3c1a261b9b5098d7c429d655d1",
+   "sha256": "1i0lc6sq87yyg1xzj2qqk3rld9j0mvbl7vhlpdpk75g7nlfi2w8w"
   }
  },
  {
@@ -21565,6 +21668,24 @@
   }
  },
  {
+  "ename": "dirvish",
+  "commit": "7361fcfc439b061eb365cb4113a05b6f3de8efb6",
+  "sha256": "1l2a6d68vdsdgjsh0kl02hnxsf14k6p981w8cy9vzzz5nfw7cjwx",
+  "fetcher": "github",
+  "repo": "alexluigit/dirvish",
+  "unstable": {
+   "version": [
+    20211213,
+    610
+   ],
+   "deps": [
+    "posframe"
+   ],
+   "commit": "e92752e7ebbe527b00a104d56c68607e917eae9e",
+   "sha256": "1fvqwmibhqdl76z2rrvmjqfqj89mz67358yp0fybcpxaqmfg4nka"
+  }
+ },
+ {
   "ename": "disable-mouse",
   "commit": "dbbc396373212fdf731e135cde391f27708ff015",
   "sha256": "0c0ps39s6wg3grspvgck0cwxnas73nfaahfa87l0mmgsrsvas5m7",
@@ -21862,14 +21983,14 @@
   "repo": "unhammer/dix",
   "unstable": {
    "version": [
-    20211117,
-    954
+    20211124,
+    1227
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "9ad8b231812af17c2f7655057a8e0dece96a7d7f",
-   "sha256": "1l3js4rqwqjlk5b13fsr3nk6n3yzlnscya4jsc1j8dr19i5nbxcf"
+   "commit": "80d5ea3bceff75b842065e2f99657f3f70c7e604",
+   "sha256": "0l7ls9967km1vsmhqqrmbyykc6hx21frz5pjr8znasz5yhflbzwg"
   },
   "stable": {
    "version": [
@@ -21899,8 +22020,8 @@
     "dix",
     "evil"
    ],
-   "commit": "9ad8b231812af17c2f7655057a8e0dece96a7d7f",
-   "sha256": "1l3js4rqwqjlk5b13fsr3nk6n3yzlnscya4jsc1j8dr19i5nbxcf"
+   "commit": "80d5ea3bceff75b842065e2f99657f3f70c7e604",
+   "sha256": "0l7ls9967km1vsmhqqrmbyykc6hx21frz5pjr8znasz5yhflbzwg"
   },
   "stable": {
    "version": [
@@ -22181,6 +22302,21 @@
   }
  },
  {
+  "ename": "doc-show-inline",
+  "commit": "4439485b5c582bc6a72789d07ca3b033c6195f3a",
+  "sha256": "1j1bwm5hfzcq683rl8k9362vlzxnddcqhmxsinwq2c9c7md8hfrv",
+  "fetcher": "gitlab",
+  "repo": "ideasman42/emacs-doc-show-inline",
+  "unstable": {
+   "version": [
+    20211210,
+    102
+   ],
+   "commit": "3a4eee3ef3fb3b50252418308f1b45e22a67bc8e",
+   "sha256": "1ihp3hva01zs5gwmjzsr62rbd5gmd7k23sjxg887vq04qmwcqcb5"
+  }
+ },
+ {
   "ename": "docbook-snippets",
   "commit": "07b832b72773ab41f9cbdefabd30dc1aa29d04c5",
   "sha256": "1ipqfylgiw9iyjc1nckbay890clfkhda81nr00cq06sjmm71iniq",
@@ -22598,16 +22734,16 @@
   "repo": "seagle0128/doom-modeline",
   "unstable": {
    "version": [
-    20211111,
-    834
+    20211128,
+    1709
    ],
    "deps": [
     "all-the-icons",
     "dash",
     "shrink-path"
    ],
-   "commit": "36fed6d1a1614f72d425073d7c9e1529f622fe7a",
-   "sha256": "0g56jvpsz8mdjpg7rifn89p7k2iw4rl1rvj8xv5323x9hl6772dx"
+   "commit": "69ede7d719764f26671897c5020f295e5eb1e6c8",
+   "sha256": "1czl20z1sc2cfgdwhl8hly1mcbdyx41zr2swrwmzl6w3xai9lsa5"
   },
   "stable": {
    "version": [
@@ -22651,14 +22787,14 @@
   "repo": "hlissner/emacs-doom-themes",
   "unstable": {
    "version": [
-    20211114,
-    1641
+    20211212,
+    2109
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "96edc0ceb864b7d72218e58c8e9272cd96e5712c",
-   "sha256": "0qkpwlg5h3ysmf6aywz49a9gkl4xszxzdkcfpqc3n0i2bvcmf6vk"
+   "commit": "7d1a56623c08da769fd424e901916e9c3d8fdb25",
+   "sha256": "1ifwb8mw0jcif3plj6wz9ak2ankpvxfqndv6qlcr6yij7xvi9qnk"
   },
   "stable": {
    "version": [
@@ -22902,11 +23038,11 @@
   "repo": "dracula/emacs",
   "unstable": {
    "version": [
-    20211108,
-    749
+    20211206,
+    1333
    ],
-   "commit": "8c38b293af039041e8914894d86122403eec5bcf",
-   "sha256": "15h2zkrhlhhc7qkyydpbm2xdgbx3vwy1jj78rq3vycwb37v52kci"
+   "commit": "049257458288cbc2d94737e30bc0005601c9727c",
+   "sha256": "0nry6fjjlwm0n8rqwk0g6jbjzqf97hzicaq1mf438f06f7h6h2mr"
   },
   "stable": {
    "version": [
@@ -23180,11 +23316,11 @@
   "repo": "jscheid/dtrt-indent",
   "unstable": {
    "version": [
-    20210423,
-    745
+    20211121,
+    2114
    ],
-   "commit": "9714f2c5f1c9b7c21e732df8c15a870a88caba84",
-   "sha256": "1aygba84si1g8kx12hscwa6m3c3946r0vbk93p9izib9fkbgngw6"
+   "commit": "1986ad4e60f2e21f69d77ef9fb14da80a6157866",
+   "sha256": "0gn18mwz9jfb5pmsx83rhjf5vb2krv1vzsfp4nwk2bvmmv56jls7"
   },
   "stable": {
    "version": [
@@ -23203,11 +23339,11 @@
   "repo": "bgamari/dts-mode",
   "unstable": {
    "version": [
-    20161103,
-    1223
+    20211202,
+    18
    ],
-   "commit": "9ee0854446dcc6c53d2b8d2941051768dba50344",
-   "sha256": "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1"
+   "commit": "32517e7eeeccc785b7c669fd5e93c5df45597ef1",
+   "sha256": "03h5qmxyxvcw92j7rhzr1l3qmspfsnbf2cn68v7r5qk7hzrixmpr"
   }
  },
  {
@@ -23314,8 +23450,8 @@
     20210909,
     1010
    ],
-   "commit": "05653b996b18032a4e80ab71827e7a15601a69d6",
-   "sha256": "1l2803hd9gr5mjzpfz21fgwcyy55zj0rdafwdmy1hcdy9g1d3cg8"
+   "commit": "f9dfb2ff556ff4d32def138dbb53b54a6187b046",
+   "sha256": "0q347dm67xds8kz9f4r7br5iszd65xbgicn75qpn2mzyidlhdqbc"
   },
   "stable": {
    "version": [
@@ -23832,11 +23968,11 @@
   "repo": "redguardtoo/eacl",
   "unstable": {
    "version": [
-    20210801,
-    843
+    20211205,
+    122
    ],
-   "commit": "e7e4be6d2590a9e433817f6ce7420d44f0095235",
-   "sha256": "14sy7abn8aq5daw7jzfjf21zrcxqni7arzgsr0ns5vr8yjc4m7y0"
+   "commit": "e68203765549c85050c26a4d37b12528c96b912a",
+   "sha256": "1hs0xjpqn1zl5pr7zc9akwr9kin7s6yjnhi7vav2x5gsgr5xdm8h"
   },
   "stable": {
    "version": [
@@ -23934,26 +24070,26 @@
   "repo": "masasam/emacs-easy-jekyll",
   "unstable": {
    "version": [
-    20201205,
-    1918
+    20211209,
+    1521
    ],
    "deps": [
     "request"
    ],
-   "commit": "b79176c6c4a8d5914e2c6e2bb53f61633ff5e023",
-   "sha256": "18ywyq9k05a16b6k1492czp19gya1y5ngqmzfqgbzdm1xl9icxxz"
+   "commit": "07e54052a141b32edb55f0a12b03248b0d5b1325",
+   "sha256": "1vfk49b0pi0wwjl64x4jbw7drhvmwblmkhskin3zmyr073a91k2r"
   },
   "stable": {
    "version": [
     2,
-    4,
+    5,
     30
    ],
    "deps": [
     "request"
    ],
-   "commit": "b79176c6c4a8d5914e2c6e2bb53f61633ff5e023",
-   "sha256": "18ywyq9k05a16b6k1492czp19gya1y5ngqmzfqgbzdm1xl9icxxz"
+   "commit": "a680696a46d3d1aaa589ee443f816808f4e12b64",
+   "sha256": "1css68pfl88ygxgdibyzcb5mwx3xp1s900w91jmqnj0hf2w5zsks"
   }
  },
  {
@@ -24080,25 +24216,25 @@
   "repo": "joostkremers/ebib",
   "unstable": {
    "version": [
-    20211112,
-    2206
+    20211212,
+    2107
    ],
    "deps": [
     "parsebib"
    ],
-   "commit": "b2f9c0a354044449a49501cc405cdb090e19dda0",
-   "sha256": "0f56rmpwj71lgqyb5gx9mnb2gz9s7bnmf7fyiwc0f541jrrgcfcl"
+   "commit": "37b9c4ec7a57ffdda53f3345cc99cf6819e94863",
+   "sha256": "1mk487k20baqjx2ysd763nrj14b2ialddpp5rvscbyiw5mll598s"
   },
   "stable": {
    "version": [
     2,
-    33
+    34
    ],
    "deps": [
     "parsebib"
    ],
-   "commit": "84c7234c4901207fa0520af96922c2b8e407ff4c",
-   "sha256": "18gvmymkpzws8s4zjcm1kijyr55dgfcq201z3w1jzhkhcs01bfsc"
+   "commit": "5d4012c1f1d47d2ab03e2280ad2b600ff40ce545",
+   "sha256": "0al846i1dn5wrx3r0ak63m80g9j9xk2q5cpcpk63lq0l0gfdff2m"
   }
  },
  {
@@ -24461,11 +24597,11 @@
   "repo": "Fanael/edit-indirect",
   "unstable": {
    "version": [
-    20200805,
-    1840
+    20211201,
+    1541
    ],
-   "commit": "bdc8f542fe8430ba55f9a24a7910639d4c434422",
-   "sha256": "189nvmlkki1jfszm9i0crbb1p4nzgmbly0wpvpg0i8vmw7vrpl40"
+   "commit": "7fffd87ac3b027d10a26e8492629da01a4cd7633",
+   "sha256": "18pbxl68bw33kr9vb1f7d9gra4wlndykv6vn7mj2h7d92p9pjcig"
   },
   "stable": {
    "version": [
@@ -24725,8 +24861,8 @@
  },
  {
   "ename": "edts",
-  "commit": "92b0d3a2af833e0f11e6a935d54eba5e3879d690",
-  "sha256": "1363k9fh1z7r6hxccsqx2a1d688kldr4h6vp91hwph7ihk4868il",
+  "commit": "2932e874ab3adbb022fa4793ea18376c34c9405e",
+  "sha256": "1gas7y5f94y1b5z9dgl8wpv1q8sf5341hlynmvpskmg0g1y1yy4s",
   "fetcher": "github",
   "repo": "sebastiw/edts",
   "unstable": {
@@ -24788,19 +24924,19 @@
   "repo": "suntsov/efar",
   "unstable": {
    "version": [
-    20211019,
-    1512
+    20211122,
+    1943
    ],
-   "commit": "ff82fa01dd350d662cdef1fbf3db57425abc3649",
-   "sha256": "0zavb6xwdnysbbfs6k0cs9xdqaw87kmp97wrdsf1d8k5xam6l36v"
+   "commit": "49dc9b89a8b9bf2523c202ac8830d1245768f3f4",
+   "sha256": "18pxs3mml90hd97fdhpgxyww4vjcj7jjiz0xzlzj0fd83pxxjr3n"
   },
   "stable": {
    "version": [
     1,
-    23
+    29
    ],
-   "commit": "a9ff16e8994f525086e72d1e6a827e5fe90d1326",
-   "sha256": "0wv351ajzdy1srsbfmg33az2fdns96zc1jxygxfyzja0y2r9q065"
+   "commit": "ee10a6770b0523f25152fbe8fc3409fdb5f70544",
+   "sha256": "0lisiyg7ngvf6jg3715ds9v5557kmsdjgii3fk9vdnpxvn18xrw7"
   }
  },
  {
@@ -25009,6 +25145,25 @@
   }
  },
  {
+  "ename": "eglot-java",
+  "commit": "e75a21c91d8aa1a07ba274b56fe8cf96119f22a4",
+  "sha256": "189kf8dmhwwia89dkzmdhclcywi026hn5rgz4r2lggyjwyviibnv",
+  "fetcher": "github",
+  "repo": "yveszoundi/eglot-java",
+  "unstable": {
+   "version": [
+    20211213,
+    1014
+   ],
+   "deps": [
+    "eglot",
+    "jsonrpc"
+   ],
+   "commit": "66b9615ab021d26d92de34e5131cee44f8e58886",
+   "sha256": "0lfifd43fz09avwgy6gs7j06s2xxlll6vkrbfbb9gl4r6q17786y"
+  }
+ },
+ {
   "ename": "eglot-jl",
   "commit": "5f04bf5d68dc12aa3f3fd66591d45cc894e59df6",
   "sha256": "0ffbxzhx1fqgqlfk8gqdgyfsc98rqw7mbrdd99qx9gds1pzzx4r8",
@@ -25016,28 +25171,28 @@
   "repo": "non-Jedi/eglot-jl",
   "unstable": {
    "version": [
-    20210415,
-    1207
+    20211208,
+    359
    ],
    "deps": [
     "eglot",
     "julia-mode"
    ],
-   "commit": "49f170e01c5a107c2cb662c00544d827eaa2c4d8",
-   "sha256": "1bmp517zfsspxlj0k67q15ladiphjha45zgnq3djs631mvr9bfaw"
+   "commit": "2e35cf9768d97a0429a72deddbe30d6d7722d454",
+   "sha256": "15d4pym6dv08jp6iki00xpf1i4vc92yd2rcjv21k64h6fc862gps"
   },
   "stable": {
    "version": [
     2,
     1,
-    1
+    2
    ],
    "deps": [
     "eglot",
     "julia-mode"
    ],
-   "commit": "49f170e01c5a107c2cb662c00544d827eaa2c4d8",
-   "sha256": "1bmp517zfsspxlj0k67q15ladiphjha45zgnq3djs631mvr9bfaw"
+   "commit": "2e35cf9768d97a0429a72deddbe30d6d7722d454",
+   "sha256": "15d4pym6dv08jp6iki00xpf1i4vc92yd2rcjv21k64h6fc862gps"
   }
  },
  {
@@ -25070,11 +25225,11 @@
   "url": "https://forge.chapril.org/hjuvi/eide.git",
   "unstable": {
    "version": [
-    20211027,
-    617
+    20211210,
+    2050
    ],
-   "commit": "5bb04501a7f5bb3f5be33b8b96742f1ac9839a8d",
-   "sha256": "0w3xc2yhdrhcb5fjy1h877y14k1iidcqc548qnxjyzal8l0z5nw1"
+   "commit": "3a36db2bf007cc5afeead407492add1e2d2a51c7",
+   "sha256": "0gsai42nv3cgpa1lz11pbrcms9rlbpb1a30vwx1syqyi22rkcdns"
   },
   "stable": {
    "version": [
@@ -25178,8 +25333,8 @@
   "repo": "kostafey/ejc-sql",
   "unstable": {
    "version": [
-    20201129,
-    2043
+    20211119,
+    1910
    ],
    "deps": [
     "clomacs",
@@ -25187,8 +25342,8 @@
     "direx",
     "spinner"
    ],
-   "commit": "c24519e5b7fc1051257b0ec67fc6dec84d6b996e",
-   "sha256": "1qsps36cxvd8vpssr7xjydgmgq8zslck0j77920xm27wvfyrj2a2"
+   "commit": "b8d534cec8f75dc95961dca72e39a096c5eea980",
+   "sha256": "0xl6mb1s70ljb5wkd41qrjvr0gdnds4yli2y3mmrcvry0cp3kp0f"
   },
   "stable": {
    "version": [
@@ -25384,11 +25539,11 @@
   "repo": "raxod502/el-patch",
   "unstable": {
    "version": [
-    20210411,
-    1954
+    20211121,
+    1808
    ],
-   "commit": "14c35cee52b415fe9892440014c4b8dc045103df",
-   "sha256": "1v4wbfrr09n08lf8l72jmmg2ckhybagcyvk9jrsfarl0d9mxgd7v"
+   "commit": "93c414f9a93035a8467aff53b43eded2edfb4a3e",
+   "sha256": "13v59nx2a6iwbvr8pk2ka47vwgpw5rmcfil9k4vjdmf892hnxr76"
   },
   "stable": {
    "version": [
@@ -25401,6 +25556,102 @@
   }
  },
  {
+  "ename": "el-secretario",
+  "commit": "be7e856c1d1f14de6636a7c9b6818faca72e66c8",
+  "sha256": "10z41n06szwkfhy54w56581y86hg5zh8yn3k21j7bmgnmwliyzw8",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~zetagon/el-secretario",
+  "unstable": {
+   "version": [
+    20211208,
+    1038
+   ],
+   "deps": [
+    "hercules",
+    "org-ql"
+   ],
+   "commit": "915b98b901b3ea50416461dea624537ae8796847",
+   "sha256": "0bnkacmznbyj0q26br3vdvg43jmsczsksv61mp864q7l77vixgg4"
+  }
+ },
+ {
+  "ename": "el-secretario-elfeed",
+  "commit": "a4acda1c2e5b717e6678b88be4bb9b326f70cfe7",
+  "sha256": "1v42p3ryiwq1vv87cdss3czmccn825zqnn1yyrj7cbkpwi31qxyv",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~zetagon/el-secretario",
+  "unstable": {
+   "version": [
+    20211205,
+    1916
+   ],
+   "deps": [
+    "el-secretario",
+    "elfeed"
+   ],
+   "commit": "915b98b901b3ea50416461dea624537ae8796847",
+   "sha256": "0bnkacmznbyj0q26br3vdvg43jmsczsksv61mp864q7l77vixgg4"
+  }
+ },
+ {
+  "ename": "el-secretario-mu4e",
+  "commit": "a4acda1c2e5b717e6678b88be4bb9b326f70cfe7",
+  "sha256": "053nwvna3v57lbj6lqqijgyk81yxhk73pjjyhp9k9k7lbj7pmdpi",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~zetagon/el-secretario",
+  "unstable": {
+   "version": [
+    20211205,
+    1916
+   ],
+   "deps": [
+    "el-secretario",
+    "org-ql"
+   ],
+   "commit": "915b98b901b3ea50416461dea624537ae8796847",
+   "sha256": "0bnkacmznbyj0q26br3vdvg43jmsczsksv61mp864q7l77vixgg4"
+  }
+ },
+ {
+  "ename": "el-secretario-notmuch",
+  "commit": "a4acda1c2e5b717e6678b88be4bb9b326f70cfe7",
+  "sha256": "0cqia5445pyssgb4vadnc2mbjz6bb2gbgmizlg3mk3vli18nr58p",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~zetagon/el-secretario",
+  "unstable": {
+   "version": [
+    20211205,
+    1916
+   ],
+   "deps": [
+    "el-secretario",
+    "notmuch"
+   ],
+   "commit": "915b98b901b3ea50416461dea624537ae8796847",
+   "sha256": "0bnkacmznbyj0q26br3vdvg43jmsczsksv61mp864q7l77vixgg4"
+  }
+ },
+ {
+  "ename": "el-secretario-org",
+  "commit": "a4acda1c2e5b717e6678b88be4bb9b326f70cfe7",
+  "sha256": "059kd0svm0i1h7vapfc9ymggf5m6pdgs6sbbqxmzknx60xcz1g16",
+  "fetcher": "git",
+  "url": "https://git.sr.ht/~zetagon/el-secretario",
+  "unstable": {
+   "version": [
+    20211212,
+    1409
+   ],
+   "deps": [
+    "dash",
+    "el-secretario",
+    "org-ql"
+   ],
+   "commit": "915b98b901b3ea50416461dea624537ae8796847",
+   "sha256": "0bnkacmznbyj0q26br3vdvg43jmsczsksv61mp864q7l77vixgg4"
+  }
+ },
+ {
   "ename": "el-spec",
   "commit": "407e344bf4e4b3885ebb7df02ebb37feee5e2515",
   "sha256": "017syizs8qw5phwvpzzffzdnj6rh9q4n7s51qjvj8qfb3088igkh",
@@ -25620,19 +25871,20 @@
   "repo": "doublep/eldev",
   "unstable": {
    "version": [
-    20211113,
-    1804
+    20211213,
+    1900
    ],
-   "commit": "70aa39c6c6ed696b7f1505c1c9bf4b2556179a27",
-   "sha256": "01y3jyjisxngaj0wyib5s37839m7q4azkchaa381mwx0l5nv5k5d"
+   "commit": "182170f076ccd90f601df8af5e8dcf75c5703743",
+   "sha256": "16wlgxldarj5ky1cyzs2lfry8hr2hfchfx1rgb9jal0bk7jxp5bi"
   },
   "stable": {
    "version": [
     0,
-    10
+    10,
+    3
    ],
-   "commit": "012f5ae33166987b4a541b0df2d39e3770ade228",
-   "sha256": "1y1gc37vn8k1yhp6b069sg8hdh1bn22icdqn4b28c2k5iiw9g7gi"
+   "commit": "f111d19cda305e5e8fcb70a5675b87173041cb68",
+   "sha256": "1y8vz5grmlhln37lf93a3gxwh46ar0v3jj2dcvzkb36lqf1snq73"
   }
  },
  {
@@ -25724,14 +25976,14 @@
   "repo": "stan-dev/stan-mode",
   "unstable": {
    "version": [
-    20210130,
-    1325
+    20211129,
+    2051
    ],
    "deps": [
     "stan-mode"
    ],
-   "commit": "9bb858b9f1314dcf1a5df23e39f9af522098276b",
-   "sha256": "031418nkp9qwlxda8i3ankp3lq94sv8a8ijwrbcwb4w3ssr9j3ds"
+   "commit": "150bbbe5fd3ad2b5a3dbfba9d291e66eeea1a581",
+   "sha256": "06y4gvw8g4mjyiv77rznivqphh9sayjmi9aqr9nhxlf6i19a6hqh"
   },
   "stable": {
    "version": [
@@ -26089,26 +26341,26 @@
   "repo": "sp1ff/elfeed-score",
   "unstable": {
    "version": [
-    20211008,
-    2330
+    20211123,
+    1505
    ],
    "deps": [
     "elfeed"
    ],
-   "commit": "973b337d7104a7adb519b7b74a91fc21f8757731",
-   "sha256": "16a0whgx47irgp3p17xwdwfiaylrv85f26dynh5ba2sy7l0d0irq"
+   "commit": "dc9901aabf6f6659beef1c876bd3c9cc4c7d17b6",
+   "sha256": "10wsjq2zd6kz9182gnkjzlzywx16j29dgm1gzwynr79xmvgs4r2b"
   },
   "stable": {
    "version": [
     1,
-    1,
-    0
+    2,
+    1
    ],
    "deps": [
     "elfeed"
    ],
-   "commit": "d97c813d472b68c977569b14761c242cb33345e1",
-   "sha256": "1drgv16555cyn7w6g44z23yhi1i0cy1b9h1ri3lz6h814px0wj0z"
+   "commit": "dc9901aabf6f6659beef1c876bd3c9cc4c7d17b6",
+   "sha256": "10wsjq2zd6kz9182gnkjzlzywx16j29dgm1gzwynr79xmvgs4r2b"
   }
  },
  {
@@ -26766,20 +27018,20 @@
   "repo": "dochang/elpa-clone",
   "unstable": {
    "version": [
-    20210916,
-    655
+    20211205,
+    1237
    ],
-   "commit": "2549b14e8688e9ee866e0ec9f1b6d9cbc97f462c",
-   "sha256": "1rjc64j7a786xna8xcfp1kxvx1y0jfqxajicbbyvcnhd17g6a7z9"
+   "commit": "03d8e2af55dfb34ab9da1f9385079a995383b2ea",
+   "sha256": "19rlqr4w9hkxxwwyfz02vvs96dx92c1gxy5cn1m1v2a5sdfdz1yq"
   },
   "stable": {
    "version": [
     0,
-    1,
-    1
+    2,
+    0
    ],
-   "commit": "2549b14e8688e9ee866e0ec9f1b6d9cbc97f462c",
-   "sha256": "1rjc64j7a786xna8xcfp1kxvx1y0jfqxajicbbyvcnhd17g6a7z9"
+   "commit": "03d8e2af55dfb34ab9da1f9385079a995383b2ea",
+   "sha256": "19rlqr4w9hkxxwwyfz02vvs96dx92c1gxy5cn1m1v2a5sdfdz1yq"
   }
  },
  {
@@ -26811,8 +27063,8 @@
     20210614,
     302
    ],
-   "commit": "18209f7f4602e48204992e38c5d265eb1a68320a",
-   "sha256": "0507bydbplh515jm1y8w9fpv3mljxkj797ssackadx484n3v0yvv"
+   "commit": "a3e5b974ca9a7004ed6cf72f9d831ba525432c67",
+   "sha256": "19hmvrck77pxxm2pq6a6hfdk2azl6nlhffwyzymr80rqcpx0hysx"
   },
   "stable": {
    "version": [
@@ -26835,8 +27087,8 @@
     20211008,
     1217
    ],
-   "commit": "81e107a26924747c10c671882032d341ca6d77c4",
-   "sha256": "1psvfqk71bi9p5mq99r2ihpk4h80sb7p8398fg2zb33a3j3g52b7"
+   "commit": "79336f8191caa394710722799e6b764493e80a52",
+   "sha256": "16cnk4zp67ld0xaa70qbnsq168xpck0drn3f8jndqgs93nag0r1r"
   },
   "stable": {
    "version": [
@@ -26871,8 +27123,8 @@
   "repo": "jorgenschaefer/elpy",
   "unstable": {
    "version": [
-    20210630,
-    2317
+    20211211,
+    2248
    ],
    "deps": [
     "company",
@@ -26881,8 +27133,8 @@
     "s",
     "yasnippet"
    ],
-   "commit": "8d0de310d41ebf06b22321a8534546447456870c",
-   "sha256": "0hg6yk0wkfh2rwcc4h0bb6m2p3dg62ja22mjpa94khq52lv1piwf"
+   "commit": "9e4382fe99fa922a23a25320bad5df268026e78c",
+   "sha256": "0dlii04byyqr48mnvs3wh8np2zx5r30rhhpbind0z64ahq10a1zh"
   },
   "stable": {
    "version": [
@@ -26946,8 +27198,8 @@
   "repo": "emacs-elsa/Elsa",
   "unstable": {
    "version": [
-    20211101,
-    1023
+    20211129,
+    38
    ],
    "deps": [
     "cl-lib",
@@ -26955,8 +27207,8 @@
     "f",
     "trinary"
    ],
-   "commit": "22bb5bd15e3f4fc2a9f10b998626fec18fd3a1a0",
-   "sha256": "1cccxhni2xk5zc0rf807himgdh8aj0m247q0y1xngc9amjms9hqj"
+   "commit": "5b8848fd7d87ee4927adda12a6cf5ed2a7e0c186",
+   "sha256": "08h86wpgr71xbxpqgbv2jikyzfh1fm33kfb6nxir001inzj0h7aq"
   }
  },
  {
@@ -27539,11 +27791,11 @@
   "repo": "oantolin/embark",
   "unstable": {
    "version": [
-    20211116,
-    2111
+    20211213,
+    1517
    ],
-   "commit": "edfd0a842a75ad25115f95f56b0c8a9351d3e248",
-   "sha256": "1mq84aiak2fwxbxacf9wzk223dri6z918vqdgs3vy0amvn1ys2ji"
+   "commit": "54e5efae17a5c2898faabeaca9564a4d5f05761f",
+   "sha256": "0vpjszfqvkjzkjpma47rdyjzgkqdfg7palyzlii62wsrh04frg4l"
   },
   "stable": {
    "version": [
@@ -27562,15 +27814,15 @@
   "repo": "oantolin/embark",
   "unstable": {
    "version": [
-    20211116,
-    2111
+    20211213,
+    1625
    ],
    "deps": [
     "consult",
     "embark"
    ],
-   "commit": "edfd0a842a75ad25115f95f56b0c8a9351d3e248",
-   "sha256": "1mq84aiak2fwxbxacf9wzk223dri6z918vqdgs3vy0amvn1ys2ji"
+   "commit": "54e5efae17a5c2898faabeaca9564a4d5f05761f",
+   "sha256": "0vpjszfqvkjzkjpma47rdyjzgkqdfg7palyzlii62wsrh04frg4l"
   },
   "stable": {
    "version": [
@@ -27737,16 +27989,16 @@
   "url": "https://git.savannah.gnu.org/git/emms.git",
   "unstable": {
    "version": [
-    20211101,
-    1746
+    20211211,
+    232
    ],
    "deps": [
     "cl-lib",
     "nadvice",
     "seq"
    ],
-   "commit": "777c904c9d6c8dfff3ed21c5e4a24a6432f8ee52",
-   "sha256": "0kg312x6ka4nxpbwsfyhg8n4a2yqi0wcfxgbj17sfcs9d3ssijs8"
+   "commit": "32ff8a70ca9726dd0e3b8ad68430bc6fd66bf387",
+   "sha256": "127xvjsqqk1a5m5qf06ksr3y378fm5h2vyckvm38y3mgrx1kvxx0"
   },
   "stable": {
    "version": [
@@ -28134,8 +28386,8 @@
   "repo": "Wilfred/emacs-refactor",
   "unstable": {
    "version": [
-    20210301,
-    213
+    20211211,
+    500
    ],
    "deps": [
     "cl-lib",
@@ -28148,8 +28400,8 @@
     "projectile",
     "s"
    ],
-   "commit": "648c2e87516fac37b84fd9bc34a6362d2a9001e2",
-   "sha256": "1crgj5skqckvw1l445ywkdq23bqkj6b6yf5y3pcyay1aasvjbhmb"
+   "commit": "64b7fb7b8dea85865db01e471414c1b2a636d5d3",
+   "sha256": "1bi5x7iald8q4p1fjgfikizxx4aryc4q8rjpmbkg247vrsxd7ljx"
   },
   "stable": {
    "version": [
@@ -28488,14 +28740,14 @@
   "repo": "emacscollective/epkg",
   "unstable": {
    "version": [
-    20211017,
-    2000
+    20211119,
+    21
    ],
    "deps": [
     "closql"
    ],
-   "commit": "8fa633c278241df577200c6c94102a0fa07bf8a5",
-   "sha256": "0h3f3xa5chm3vcahk97fx87l468d33myvpyd9blq26a7js568y7q"
+   "commit": "eac43b29286e05192cbeada4cad09774493e0ab7",
+   "sha256": "0j9kp7ar6zccqhaihqphfxxkrvw63ipayy3dp876l9cr1ywxnv8f"
   },
   "stable": {
    "version": [
@@ -29142,17 +29394,18 @@
     20200914,
     644
    ],
-   "commit": "6cb77e1a216098d6a4e273f6750dbf4445953272",
-   "sha256": "1rj04f9q7fn88ifznqqi3p7anv0m827mz2w2bwb4s09kdn03nf6p"
+   "commit": "756ac774b5191b252bf993b67c7ccd5648cbbb65",
+   "sha256": "174vd5dw7wz2kf08mcaakr0r0qx64bigkdhr9zg7c68xj0w0kasn"
   },
   "stable": {
    "version": [
     2,
     6,
-    2
+    2,
+    1
    ],
-   "commit": "246a229faea2ef2fa53caf491ff8a2d72dd7510c",
-   "sha256": "1ccmryw6vs8d87d5zmjl0kr2kvyd1zxl73344fa7yzqgg2kw1da6"
+   "commit": "59c7944b1a2e8015e473eb1932353818614a1e5b",
+   "sha256": "0p6jh8hyyf7xg0sni2rchck2fd1wyr5v106dfxxm09krxxawh0nh"
   }
  },
  {
@@ -29163,20 +29416,20 @@
   "repo": "erlang/otp",
   "unstable": {
    "version": [
-    20211112,
-    1232
+    20211213,
+    1046
    ],
-   "commit": "abe8285f0b4c594d610f72df6890f6851b89f248",
-   "sha256": "1fw0chd6qmv1m06762l3lhbmd23l34g0dyvri7ql3bam0z9jjakq"
+   "commit": "9b07aedd669c2cb1e12e8a9b4f06210d0892041e",
+   "sha256": "0jnxrj17s37mgjmv6smjpfd4qzlql6his4k5f6xpmxabv7kx6lgf"
   },
   "stable": {
    "version": [
     24,
     1,
-    5
+    7
    ],
-   "commit": "9e23eca89170fcdf22441ed65f05ef891096f318",
-   "sha256": "1gd5nac4d56wp5qqkaicdcjf3n63wbbqg4m08s26gxfbjqkfh8ri"
+   "commit": "5d0fa9d31812947479eb29f797990da6655d4fa2",
+   "sha256": "1d86yczbb2dndkjcbzc6lcq8aq6gdibh6pkxrg76n07xr5adk2j7"
   }
  },
  {
@@ -29698,15 +29951,15 @@
   "repo": "Phundrak/eshell-info-banner.el",
   "unstable": {
    "version": [
-    20211115,
-    914
+    20211119,
+    1806
    ],
    "deps": [
     "f",
     "s"
    ],
-   "commit": "312f1e3da3f42a82b99228491427a429ee379648",
-   "sha256": "07xwph4mnmyd80apn6r1m8alxh2vy1d0y1jacb0ghqjbs01qg47q"
+   "commit": "9b75d1945170fdf89ad24db8d150bfb6e08ea56a",
+   "sha256": "0ysj2hdnsf6j7ywz140k94q2sqhh567ipf2ccd5qrj90n6f5crrp"
   }
  },
  {
@@ -29943,10 +30196,10 @@
  },
  {
   "ename": "espotify",
-  "commit": "fb515b013942cf5ef4590e7cbc17f11f10c7692f",
-  "sha256": "05kl2l272gafzp4c79f9fg63xc0rc9r5cjz32v7dhd2m0dv257vc",
+  "commit": "76e7a6c9e67bcea5b681dacf6725f7e313f0c1a8",
+  "sha256": "0fxqc20rcvk632jhlyn9692km7bh3njhp423q9s00wk2hwv2gwas",
   "fetcher": "git",
-  "url": "https://codeberg.org/jao/espotify",
+  "url": "https://codeberg.org/jao/espotify.git",
   "unstable": {
    "version": [
     20211114,
@@ -30065,11 +30318,11 @@
   "repo": "emacs-ess/ESS",
   "unstable": {
    "version": [
-    20211113,
-    1429
+    20211204,
+    958
    ],
-   "commit": "aaa82f24c9f44fd7e39b7d918a7819eefbbb40a7",
-   "sha256": "0hxa8mm2i8xr98yw9b93m8fv3xmfb3kmydgkzai0svpi6wwn9kw2"
+   "commit": "5e6bfa14a328095833a038275105f3aa31715a17",
+   "sha256": "0djlhrjrrkwnlw77aip4bj7jx3fg2cfzbap4z09vhnf77asrz6j2"
   },
   "stable": {
    "version": [
@@ -30125,14 +30378,14 @@
   "repo": "ShuguangSun/ess-r-insert-obj",
   "unstable": {
    "version": [
-    20200916,
-    843
+    20211209,
+    812
    ],
    "deps": [
     "ess"
    ],
-   "commit": "f6731eb26dc0fc5b7ca1fa881a5f9100f8fcf494",
-   "sha256": "0pvjk5a5v03qnasqsja30bywb4c481x9agf1rfcwbqsva7p97wiy"
+   "commit": "dd367cb918c90ec6d3824da869f7a75bb1ca49b6",
+   "sha256": "17vrs3wz3gpjvnq8i5gz14jnsds8s359ynx73wwh0ydcrx79f9dh"
   },
   "stable": {
    "version": [
@@ -30233,15 +30486,15 @@
   "repo": "ShuguangSun/ess-view-data",
   "unstable": {
    "version": [
-    20211103,
-    1525
+    20211206,
+    916
    ],
    "deps": [
     "csv-mode",
     "ess"
    ],
-   "commit": "060ea424d7781d652ae385a48384848b6ded0105",
-   "sha256": "1nwdf2i47j1m1vhy8ng02xbrmr15gm97fmnd5z4yb29gj2kb69fv"
+   "commit": "05888711212f9a9d72ecd48904de0c66adf6575a",
+   "sha256": "1nm1vzjby8ind8pvqzyy5yjcf0la72azjf55pwr46rzrjgia0s1a"
   },
   "stable": {
    "version": [
@@ -30295,15 +30548,15 @@
   "repo": "tali713/esxml",
   "unstable": {
    "version": [
-    20210722,
-    1345
+    20211122,
+    1657
    ],
    "deps": [
     "cl-lib",
     "kv"
    ],
-   "commit": "701ccc285f3748d94c12f85636fecaa88858c178",
-   "sha256": "1ig5i3h5ldsdmxas4nvxrdbdmawgpa10kwq3mmzczp5qwp5a3vq8"
+   "commit": "f88a323bd15ad7bd94eda684e1a36525ba81a089",
+   "sha256": "1sx8mjk0pfbl664brfwmswn6q1z0iyz23d1457z1imh98b1g91xy"
   },
   "stable": {
    "version": [
@@ -30471,8 +30724,8 @@
   "repo": "zzkt/ethermacs",
   "unstable": {
    "version": [
-    20210401,
-    1213
+    20211128,
+    106
    ],
    "deps": [
     "0xc",
@@ -30481,8 +30734,8 @@
     "request",
     "websocket"
    ],
-   "commit": "fc7de212b34c34d93f5f0f19af846924404e38ae",
-   "sha256": "0a8d66na4c02mdvkcbldac44hhzsv18imz04yqqp8qn4cdamfi4g"
+   "commit": "1fae6a03084e0794e09ac036838b53aaae1dbd63",
+   "sha256": "0aqws67s6c0m6sgqh9i17lpky6wbdyl3fnd3jrk6rwaiyckb1nrc"
   }
  },
  {
@@ -30660,15 +30913,15 @@
   "repo": "emacs-evil/evil",
   "unstable": {
    "version": [
-    20211116,
-    2102
+    20211211,
+    1737
    ],
    "deps": [
     "cl-lib",
     "goto-chg"
    ],
-   "commit": "c28e42126c4ae349e2d77c80b38feb68bc1b5b78",
-   "sha256": "00z3gmcn12nb32nczplxb68kfmmdrv0fg6f376ip6iwygjgn4cqc"
+   "commit": "b00018bf550fbbe1b55165579e6ede973d70f53b",
+   "sha256": "1qw33vhiiia14rzwzmvsp2w4vyrf1z6v3b8vgkcmlxyhns22g26f"
   },
   "stable": {
    "version": [
@@ -30812,15 +31065,15 @@
   "repo": "wbolster/emacs-evil-colemak-basics",
   "unstable": {
    "version": [
-    20211022,
-    1248
+    20211125,
+    2021
    ],
    "deps": [
     "evil",
     "evil-snipe"
    ],
-   "commit": "f9fbb49c48b3347d97fd2e19d7499bfee0ac5ad9",
-   "sha256": "0w40qfwjjmvzkxi8p09s9g266ggvxcw7jhg7j70fz24hq6plmc2r"
+   "commit": "ddea4486de929c399745713a6e616df50b22dedd",
+   "sha256": "1ld9iv6ysk28ps6gx6jgrqyazyqk1xd17a4fhf94m2hy7jzakwaj"
   },
   "stable": {
    "version": [
@@ -30862,15 +31115,15 @@
   "repo": "emacs-evil/evil-collection",
   "unstable": {
    "version": [
-    20211114,
-    702
+    20211208,
+    2219
    ],
    "deps": [
     "annalist",
     "evil"
    ],
-   "commit": "652d74acfb5789eacef36660c4ffc68905c8d741",
-   "sha256": "0pqm6pp6h8v5jy36cgm70kkjjgj38xdyq0irhnyqmaf5hdvrbvkh"
+   "commit": "1b9d5c5d939b6eae13b6e545e53faee958af460a",
+   "sha256": "03i3lv9h61jnnzfjasxszwrkcf0bkkyq65lh22852n35yg7ylxyc"
   },
   "stable": {
    "version": [
@@ -31434,8 +31687,8 @@
    "deps": [
     "evil"
    ],
-   "commit": "9b228b097a863e9deef8033b11747597e055674b",
-   "sha256": "0cxv1bmbnir59k778dip5mkjyqhbh10pk9b4ayvwpgiz25dlp4ss"
+   "commit": "f9faa0b9bf36888d83143db226938344dfc1801f",
+   "sha256": "03jrkzjamh8xxs3h8ga7i3jrv3rhcq0mwysrirqqvxz283hwk9mv"
   },
   "stable": {
    "version": [
@@ -31529,30 +31782,30 @@
   "repo": "hlissner/evil-multiedit",
   "unstable": {
    "version": [
-    20211114,
-    1644
+    20211121,
+    1650
    ],
    "deps": [
     "cl-lib",
     "evil",
     "iedit"
    ],
-   "commit": "e17078ff801c3cfc125bbe432a5fa24bd2958b67",
-   "sha256": "0x4fdjfvpx2nbca7jr1y0gjipg4rwf6cjmzf91j46vzslcvhqv4n"
+   "commit": "23b53bc8743fb82a8854ba907b1d277374c93a79",
+   "sha256": "08ycwss58zh2zikk79jfj074q78yjcd7vbjgv5ssqvws09x5rgfq"
   },
   "stable": {
    "version": [
     1,
-    3,
-    9
+    4,
+    3
    ],
    "deps": [
     "cl-lib",
     "evil",
     "iedit"
    ],
-   "commit": "cb35914ffabb4f65d22ab2f812ff6e7622cc5c26",
-   "sha256": "19h3kqylqzbjv4297wkzzxdmn9yxbg6z4ga4ssrqri90xs7m3rw3"
+   "commit": "23b53bc8743fb82a8854ba907b1d277374c93a79",
+   "sha256": "08ycwss58zh2zikk79jfj074q78yjcd7vbjgv5ssqvws09x5rgfq"
   }
  },
  {
@@ -31660,14 +31913,14 @@
   "repo": "Somelauw/evil-org-mode",
   "unstable": {
    "version": [
-    20211112,
-    108
+    20211117,
+    2046
    ],
    "deps": [
     "evil"
    ],
-   "commit": "c3ec94bc2fb79127826ea85509247f082bc394aa",
-   "sha256": "15fvw5zq97q18nr5vshkf4qp9di0sb8fklyhgwmhyh254zfdlghf"
+   "commit": "26ad08b5f629370f57690315102140878891ef61",
+   "sha256": "0i36pc7kb5ysk8hm1ll6dq5y6xpl19nm3ap64gzi3b3p94wn6jl0"
   },
   "stable": {
    "version": [
@@ -32188,8 +32441,8 @@
    "deps": [
     "evil"
    ],
-   "commit": "c28e42126c4ae349e2d77c80b38feb68bc1b5b78",
-   "sha256": "00z3gmcn12nb32nczplxb68kfmmdrv0fg6f376ip6iwygjgn4cqc"
+   "commit": "b00018bf550fbbe1b55165579e6ede973d70f53b",
+   "sha256": "1qw33vhiiia14rzwzmvsp2w4vyrf1z6v3b8vgkcmlxyhns22g26f"
   },
   "stable": {
    "version": [
@@ -32212,15 +32465,15 @@
   "repo": "iyefrat/evil-tex",
   "unstable": {
    "version": [
-    20210731,
-    927
+    20211208,
+    1631
    ],
    "deps": [
     "auctex",
     "evil"
    ],
-   "commit": "aa0ddf8e768a24cda6d50d07f04c8e7813a2dccd",
-   "sha256": "1n4xg1c2ia1k6vf3rybzx6afsdq47i8jf57x94fkwfm9wvnf9g4r"
+   "commit": "a4b8a4769efb4cf38d91f51145b275f64bdd832e",
+   "sha256": "00mrxmf6s3fss6jb0aic09vk2sk6zpy367nzy8i4r4s7zlnv4wsh"
   },
   "stable": {
    "version": [
@@ -32391,15 +32644,15 @@
   "repo": "meain/evil-textobj-tree-sitter",
   "unstable": {
    "version": [
-    20211105,
-    1632
+    20211210,
+    1354
    ],
    "deps": [
     "evil",
     "tree-sitter"
    ],
-   "commit": "b35565ab6c8e380227048256885bb7aa7e7fd72c",
-   "sha256": "17rbxqvrq9c8j34mycbjkzrd6cjpamldj6h8k1hyzm2ld97w6gqm"
+   "commit": "31b6b20f5dae9edd2f733b347b4f7a0d0a5cb962",
+   "sha256": "108gp9iq7mrmdim0xm845g90f8n9kws4d70ad2gjwl9dcamgjxnz"
   }
  },
  {
@@ -32428,8 +32681,8 @@
   "repo": "ethan-leba/tree-edit",
   "unstable": {
    "version": [
-    20211114,
-    2308
+    20211211,
+    2301
    ],
    "deps": [
     "avy",
@@ -32438,8 +32691,8 @@
     "tree-edit",
     "tree-sitter"
    ],
-   "commit": "6fd445dbeb158d05d785965077cc594aeeb73a61",
-   "sha256": "0h1zjdqxynxxlqdc9yxhmkjwarx4vn9anasv9i68fcmmnq7c0aw9"
+   "commit": "1a670b73cd990af3b08633b01f84b57edaeb92ba",
+   "sha256": "1sr8h96rzghxbs42rzv0c2abhrydjsxf98hijnffa7yqd8gffjdr"
   }
  },
  {
@@ -32962,6 +33215,24 @@
   }
  },
  {
+  "ename": "expenses",
+  "commit": "e29983247bddb6cec49deaa9245ccdd582a39c95",
+  "sha256": "0izyrmgh6viv3a0lnx6dcdx48d7j5plyp0bc1vffwh17b6ry91r7",
+  "fetcher": "github",
+  "repo": "md-arif-shaikh/expenses",
+  "unstable": {
+   "version": [
+    20211213,
+    438
+   ],
+   "deps": [
+    "dash"
+   ],
+   "commit": "df8faaf5c6741dc3387707567940021274c93c5b",
+   "sha256": "017c8vgqn08qn2l3mkinn80922g1rcg7pj8lx9dqylh5nylrp0gn"
+  }
+ },
+ {
   "ename": "express",
   "commit": "9a97f5f81af13c49f5bea31455d7da0bf2c12e4f",
   "sha256": "0lhisy4ds96bwpc7k8w9ws1zi1qh0d36nhxsp36bqzfi09ig0nb9",
@@ -33091,15 +33362,16 @@
   "repo": "ananthakumaran/exunit.el",
   "unstable": {
    "version": [
-    20210222,
-    1453
+    20211209,
+    1012
    ],
    "deps": [
     "f",
-    "s"
+    "s",
+    "transient"
    ],
-   "commit": "5bb115f3270cfe29d36286da889f0ee5bba03cfd",
-   "sha256": "0xz7vnj2wjzih0rm1bsf1ynjy46wmm0aifa9g8362d8570anmkj5"
+   "commit": "0715c2dc2dca0b56c61330eda0690f90cca5f98b",
+   "sha256": "1x42m95gv0gxhqpyd65n5fzgwczsfdjyghp4qrhj6gi1afr7jjhh"
   }
  },
  {
@@ -33532,19 +33804,19 @@
   "repo": "WJCFerguson/emacs-faff-theme",
   "unstable": {
    "version": [
-    20211013,
-    1554
+    20211124,
+    1842
    ],
-   "commit": "3c13ae4d694025207ba7eb43f174f90bb49395d4",
-   "sha256": "1iv9i1j39wj29y86z49yyw1a22wgyafdybjizmji60hi7x4r66az"
+   "commit": "c090f3d3a8a2ddedeffc1f5b5147cb7633dae79e",
+   "sha256": "1kiaqascf4lh1kpvp79yynjyncakq31xgx0h2bfinji8i7y32pg1"
   },
   "stable": {
    "version": [
-    2,
-    21
+    3,
+    0
    ],
-   "commit": "3c13ae4d694025207ba7eb43f174f90bb49395d4",
-   "sha256": "1iv9i1j39wj29y86z49yyw1a22wgyafdybjizmji60hi7x4r66az"
+   "commit": "c090f3d3a8a2ddedeffc1f5b5147cb7633dae79e",
+   "sha256": "1kiaqascf4lh1kpvp79yynjyncakq31xgx0h2bfinji8i7y32pg1"
   }
  },
  {
@@ -33663,14 +33935,14 @@
   "repo": "condy0919/fanyi.el",
   "unstable": {
    "version": [
-    20211030,
-    1408
+    20211211,
+    201
    ],
    "deps": [
     "s"
    ],
-   "commit": "2e37cc1d19f0f6f710932610639e4fd206884770",
-   "sha256": "0j0mqlx5xv1m1ik61q82lj6y030226k7isswd5plbq2v5z1d8b76"
+   "commit": "c328cdd1c5a0e734937125771279838e401fc5a8",
+   "sha256": "0kz6mv7awammgsi68vg6addkqry86sd3l8qrk3djwb77kw6rpvn6"
   }
  },
  {
@@ -33849,8 +34121,8 @@
   "repo": "jumper047/fb2-reader",
   "unstable": {
    "version": [
-    20211116,
-    2053
+    20211205,
+    58
    ],
    "deps": [
     "async",
@@ -33859,8 +34131,8 @@
     "s",
     "visual-fill-column"
    ],
-   "commit": "b93dfcacbe3ea1147642ee4e1dab2e2c36c4f6a3",
-   "sha256": "1c5i2w59kgs1pbhyxa0m0bny50kra2xlziydzpvryyddix94k4ld"
+   "commit": "4e2e20ea6ac7fe4063ad3ecabebf8864b1d48e4f",
+   "sha256": "09b0nkfyrsyinpjbjspr7zd07i77w8m8ic2i8h7fbc84ki2xl2g1"
   }
  },
  {
@@ -34032,20 +34304,20 @@
   "repo": "technomancy/fennel-mode",
   "unstable": {
    "version": [
-    20211110,
-    1728
+    20211126,
+    1803
    ],
-   "commit": "2900e3c2d5554b115a0a3b181e74a27c76489f4d",
-   "sha256": "14in4r89aqx6gq8qlia2bgprr73ldj7nlyvz61np2zqn7kfw1nfq"
+   "commit": "a622c110a2ae6ababfaab0506647a7fbc81e623a",
+   "sha256": "1bfd983zdhq097bb101k8p7x4jkmkgaxfj7s7aiyf4s3zq84v6xy"
   },
   "stable": {
    "version": [
     0,
     4,
-    0
+    1
    ],
-   "commit": "815f4c9433fa389bf10ddcf1da6f280e512912ff",
-   "sha256": "0v9a6psnlbh9cyibp95k2frix29ma6b69cgivmh8z4nrp0ycywc7"
+   "commit": "54ed0792d0ac43a2d5db39741cf070c627368419",
+   "sha256": "1bfd983zdhq097bb101k8p7x4jkmkgaxfj7s7aiyf4s3zq84v6xy"
   }
  },
  {
@@ -34182,15 +34454,15 @@
   "repo": "knpatel401/filetree",
   "unstable": {
    "version": [
-    20211115,
-    506
+    20211128,
+    205
    ],
    "deps": [
     "dash",
     "helm"
    ],
-   "commit": "4f97329cdc628d2b9424114a981d046daab50d61",
-   "sha256": "06hdllrg2xca7qq6m6f4xnjlb06ljn6lk7zypviy20qv7vmxa87s"
+   "commit": "03a58d6de1e76c3a88f50cc3e8735b8b1c09650a",
+   "sha256": "1zm7zlzzxddpbaz9mzg2r7za2p573b3v1kzdywh47hcsa7b1sxss"
   }
  },
  {
@@ -34495,8 +34767,8 @@
   "repo": "LaurenceWarne/finito.el",
   "unstable": {
    "version": [
-    20211107,
-    1925
+    20211130,
+    1023
    ],
    "deps": [
     "async",
@@ -34507,8 +34779,8 @@
     "s",
     "transient"
    ],
-   "commit": "f1b280cfbcbbb0729a83d763f08e25ccdb4c399d",
-   "sha256": "0x8aysl2s0ixl72qbz924b59advxp3f6ifmwf41rn11rnqjdmlr0"
+   "commit": "b547ff8b81aa956d582c1c8edbf4c52ba017265d",
+   "sha256": "000szg9gg0ma61s0kx7ab1gnywbbi6w43csrprjyrhbgldb2bwbk"
   },
   "stable": {
    "version": [
@@ -35031,27 +35303,27 @@
   "repo": "plandes/flex-compile",
   "unstable": {
    "version": [
-    20210914,
-    1255
+    20211203,
+    849
    ],
    "deps": [
     "buffer-manage",
     "dash"
    ],
-   "commit": "64f61ba1c113be38e4eae2a1fcee5596223c5d85",
-   "sha256": "143fzny0l5d8vci43nsgaq2a4ns1qmz01bd35c0s66gl62f02w74"
+   "commit": "7d0421805e4a287358a5c188ff868bd93be2192a",
+   "sha256": "0hv9lp4ybcl7vn27cx3iq64rk0fydinq6sgyslhc2616kll6fdb7"
   },
   "stable": {
    "version": [
     0,
-    9
+    10
    ],
    "deps": [
     "buffer-manage",
     "dash"
    ],
-   "commit": "64f61ba1c113be38e4eae2a1fcee5596223c5d85",
-   "sha256": "143fzny0l5d8vci43nsgaq2a4ns1qmz01bd35c0s66gl62f02w74"
+   "commit": "7d0421805e4a287358a5c188ff868bd93be2192a",
+   "sha256": "0hv9lp4ybcl7vn27cx3iq64rk0fydinq6sgyslhc2616kll6fdb7"
   }
  },
  {
@@ -35478,8 +35750,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "3abe1a6184fefea3e427141131fba40afae3d356",
-   "sha256": "1g600caz7v7qm6fj67x0s064f4n5fr57bnd0m3sc43gn24rpjjdv"
+   "commit": "576e7f3e96ef8757a45106346a5f45831a8fee13",
+   "sha256": "1680qkn6n145ib0q039081k9iwgl81i81d1wmy1myifq8h9pgjzc"
   }
  },
  {
@@ -36809,21 +37081,20 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "b6d0b1515418e5821241ac04143a12997c3bb240",
-   "sha256": "1klwi2ssjnjc5cirq201wl643w8cb32r42nmjhvxv4dgad14i659"
+   "commit": "457860482eb1b63aafe8930a08ecfa0ca5073ab1",
+   "sha256": "071h40lh4l47x0b9sfwllxvaqnp1sxidy4c73icf83wikw8h81jr"
   },
   "stable": {
    "version": [
     0,
-    2,
+    3,
     0
    ],
    "deps": [
-    "flycheck",
-    "s"
+    "flycheck"
    ],
-   "commit": "5608a330e09222d05bf0354f1847f537168e22dd",
-   "sha256": "0v6gqhgwn2x6qd34380y5n1ql08anv02bs6qk7glq6a0ha8xkzfa"
+   "commit": "b6d0b1515418e5821241ac04143a12997c3bb240",
+   "sha256": "1klwi2ssjnjc5cirq201wl643w8cb32r42nmjhvxv4dgad14i659"
   }
  },
  {
@@ -37023,8 +37294,8 @@
    "deps": [
     "flycheck"
    ],
-   "commit": "5a441a31e58de17da94f933277150be39198d98c",
-   "sha256": "05j5bngvf3vpabjv7gcm5qar73mr1dyba7z9g1x4i385dgm97f6z"
+   "commit": "0a86156fad0d6f02e8e6b4c5594f7173c96d6481",
+   "sha256": "122j1imz755lhfhlnzl4gggghbvpqyq6r6iix3qq60kzb3hpq1b2"
   },
   "stable": {
    "version": [
@@ -37445,14 +37716,14 @@
   "repo": "msherry/flycheck-pycheckers",
   "unstable": {
    "version": [
-    20210414,
-    2023
+    20211122,
+    235
    ],
    "deps": [
     "flycheck"
    ],
-   "commit": "771fb9a66223287fcd4998b5f6d32d8c602bd91c",
-   "sha256": "1p4fys8hb89dfqqrzrwqdglxxm50g4x5na2hgzvkq1n0ss617rdj"
+   "commit": "56965c0ef5d45bcef90093360718c6967ce4ef39",
+   "sha256": "0dfsqgvmnikza9g3wjq1sclflr640wkh37b3lm9g7r74wrrk8waz"
   },
   "stable": {
    "version": [
@@ -37626,15 +37897,15 @@
   "repo": "stan-dev/stan-mode",
   "unstable": {
    "version": [
-    20210130,
-    1325
+    20211129,
+    2051
    ],
    "deps": [
     "flycheck",
     "stan-mode"
    ],
-   "commit": "9bb858b9f1314dcf1a5df23e39f9af522098276b",
-   "sha256": "031418nkp9qwlxda8i3ankp3lq94sv8a8ijwrbcwb4w3ssr9j3ds"
+   "commit": "150bbbe5fd3ad2b5a3dbfba9d291e66eeea1a581",
+   "sha256": "06y4gvw8g4mjyiv77rznivqphh9sayjmi9aqr9nhxlf6i19a6hqh"
   },
   "stable": {
    "version": [
@@ -38022,8 +38293,8 @@
     20210411,
     2342
    ],
-   "commit": "3abe1a6184fefea3e427141131fba40afae3d356",
-   "sha256": "1g600caz7v7qm6fj67x0s064f4n5fr57bnd0m3sc43gn24rpjjdv"
+   "commit": "576e7f3e96ef8757a45106346a5f45831a8fee13",
+   "sha256": "1680qkn6n145ib0q039081k9iwgl81i81d1wmy1myifq8h9pgjzc"
   }
  },
  {
@@ -38537,14 +38808,11 @@
   "stable": {
    "version": [
     0,
-    0,
+    1,
     3
    ],
-   "deps": [
-    "flymake-quickdef"
-   ],
-   "commit": "72052b5ba827faf357608cf720a70221192a8282",
-   "sha256": "0h8dqk35r10pxx2w4swb3kij4y2vi17j9wfk978x8lf0wd3h3hsy"
+   "commit": "784e57f36812a37e323409b90b935ef3c6920a22",
+   "sha256": "1vcl1q07faqqmrryyia36hbgf78g3cs51pbi0bx41yzz779ribvk"
   }
  },
  {
@@ -39061,6 +39329,21 @@
   }
  },
  {
+  "ename": "flymake-yamllint",
+  "commit": "b8420c724747b635fb7cc208561e03ebca463c90",
+  "sha256": "1mkmwdv53hz4xzmb6kl74wll74zfs8wm4v5bjnp1caf8c6flvzja",
+  "fetcher": "github",
+  "repo": "shaohme/flymake-yamllint",
+  "unstable": {
+   "version": [
+    20211206,
+    907
+   ],
+   "commit": "34fb579087a1d97cabd001dbf3f44ea48914bcde",
+   "sha256": "1x6npp5prgcl0ahcv7x3gvv0g52fjrkgapa1sp2c62l6is5zig3h"
+  }
+ },
+ {
   "ename": "flymd",
   "commit": "07e4121f4cfaf4c33828f84b6b06f9cf2b64a0a2",
   "sha256": "16wq34xv7hswbxw5w9wnnsw2mhc9qzhmaa6aydhh32blcszhp4rk",
@@ -39620,16 +39903,17 @@
   "repo": "jollm/fontsloth",
   "unstable": {
    "version": [
-    20211102,
-    511
+    20211118,
+    2018
    ],
    "deps": [
     "f",
     "logito",
-    "pcache"
+    "pcache",
+    "stream"
    ],
-   "commit": "e43c7ed8302841aefe45f2e6bf35f84d854868f5",
-   "sha256": "1r3rn65gmnj964wisjagknz46kqhnpma5byw7gyzl69s8gfaifg0"
+   "commit": "5572a44e14d6c00a628f58cc695c735ef64e0ebd",
+   "sha256": "17q9fqbzzdvl8isj498cjr75bk94n2jp514fsdmlw44s0xnfdk4y"
   },
   "stable": {
    "version": [
@@ -39735,8 +40019,8 @@
   "repo": "magit/forge",
   "unstable": {
    "version": [
-    20211111,
-    2038
+    20211211,
+    15
    ],
    "deps": [
     "closql",
@@ -39749,8 +40033,8 @@
     "transient",
     "yaml"
    ],
-   "commit": "41efa674cff0b447efbc103494fd61ec9b9156ae",
-   "sha256": "0baaq8bf07aq80ll1q86q9dzzgkpn6j5jl1c1dssc04awg69kjsb"
+   "commit": "402773ef7e83ddfab64bfee23daea2776d50dbc1",
+   "sha256": "1n8x0bx3av935ky56rzy38d0ry73g57nsax26z3scc4na4h46yip"
   },
   "stable": {
    "version": [
@@ -39805,15 +40089,15 @@
   "repo": "lassik/emacs-format-all-the-code",
   "unstable": {
    "version": [
-    20211017,
-    1857
+    20211119,
+    1042
    ],
    "deps": [
     "inheritenv",
     "language-id"
    ],
-   "commit": "4851bab1659d519b4eaf8a16bfb76a4242d4dde2",
-   "sha256": "02363agwy1mn30q0z4p2ilf2ahb4ry13jv1cfwy318w1d6wgg6b2"
+   "commit": "6200b91d9151b3177a676d30edd948266292bcc1",
+   "sha256": "1d3mqajajr1jqkv4rnc3iwfdpipv9lk14hw4g7y8sli17l286k16"
   },
   "stable": {
    "version": [
@@ -39950,26 +40234,26 @@
   "repo": "rnkn/fountain-mode",
   "unstable": {
    "version": [
-    20211105,
-    1510
+    20211202,
+    1215
    ],
    "deps": [
     "seq"
    ],
-   "commit": "e3e4509e95019b5a56fb6596cafad0a78ebf2c79",
-   "sha256": "199carn2y5kxqsmxwrjcgvq4ih5xk74k09akb7milnxhys0zhnlk"
+   "commit": "3090858848a596ffa88a3b3616e31f70826c8fad",
+   "sha256": "0qvw6s4g2lbxd0w1hja5rzns2h8i40igq137603q1pp6ysmdmqsy"
   },
   "stable": {
    "version": [
     3,
-    5,
-    3
+    6,
+    0
    ],
    "deps": [
     "seq"
    ],
-   "commit": "16bc2a6a817b53ed3306a3ff3cebd271e7bf8746",
-   "sha256": "13k84dzjar67fa1ixicl6h8gxzblszd0ik8vi11bvipysgp3j3ws"
+   "commit": "205d7caeb65766e7787d827a80cca893747a09cc",
+   "sha256": "14cb4r23pn98sxzh0qwjwpvm7k7q9hhpks8avydccwssm69x1s1w"
   }
  },
  {
@@ -40465,8 +40749,8 @@
     "tide",
     "web-mode"
    ],
-   "commit": "f11fea0cf3b92eddf1d083e0ce1abfc396f06631",
-   "sha256": "0gqlb541pka3bqpl9kn672az203yirjnqq4s4ac32i1ai83w5821"
+   "commit": "315d23d23b32f413ea5a4dcc6f4e270b7bef7b67",
+   "sha256": "08bhsad0fmlydl47iaqj10j1r815qiy3jnm29sk5v5xjzrpby65k"
   }
  },
  {
@@ -40573,8 +40857,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "8515fe960b5b0bfce158ad91e9141f07a2c5fcc4",
-   "sha256": "19ch4ndc0pcw6ggv49wpdkq42pw7m86g973g7qrv4mgf95aprbi0"
+   "commit": "ce86de6c23826a318be6dab8c6105542d76d52eb",
+   "sha256": "11h92862sy6s0g830w88j8z0kfi2rdfhwrzwzy8bvapl8b8xw8xm"
   },
   "stable": {
    "version": [
@@ -40727,14 +41011,14 @@
   "repo": "diku-dk/futhark-mode",
   "unstable": {
    "version": [
-    20210803,
-    1401
+    20211212,
+    2032
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "17f048c76bd1dc7f5893b04a14db2b850471f399",
-   "sha256": "0a8gdr0qh985jai75zqb81yjws6lxlfm811wxk939fsglafbxmxx"
+   "commit": "4c340703cb749298dd472cd981df182335e3b4af",
+   "sha256": "1bkckcz2z9hnay3c85yai34hll1fwi4569hvhnpikhabk048k2mq"
   }
  },
  {
@@ -40840,11 +41124,11 @@
   "repo": "tarsius/fwb-cmds",
   "unstable": {
    "version": [
-    20211011,
-    1610
+    20211118,
+    2244
    ],
-   "commit": "9418ad51eaf7c6fd973d7f068ca67de66f3635ee",
-   "sha256": "1rsifl61qdrzmhd6r0d9if5a7a1pwjp3z7aq9rwrkrz6k37mnd0a"
+   "commit": "69409a996ec589ea27df8fa92899900afe8d1011",
+   "sha256": "0xam1zyk6mgk3jvwjcamcmrk5gvxipjfczax7vv37vzzh2wvlqhx"
   },
   "stable": {
    "version": [
@@ -41173,19 +41457,19 @@
   "repo": "emacs-geiser/geiser",
   "unstable": {
    "version": [
-    20211003,
-    2152
+    20211205,
+    2014
    ],
-   "commit": "d5cdad7f3eb44cec434610846cf78f2ad272089b",
-   "sha256": "1dd1jqfnwghqhsm2r5akqq1s4d621rd5rh93rxdqix2xg0nr9yp6"
+   "commit": "365764db5e3e07042f83d120595421770db771b2",
+   "sha256": "1ixkhkq01v8vhm9drih7hisxppjhgml1xfppb120njs12wqkfrl7"
   },
   "stable": {
    "version": [
     0,
-    18
+    19
    ],
-   "commit": "d5cdad7f3eb44cec434610846cf78f2ad272089b",
-   "sha256": "1dd1jqfnwghqhsm2r5akqq1s4d621rd5rh93rxdqix2xg0nr9yp6"
+   "commit": "5be7153e650a9817d30cb480439e3f56ce7422e7",
+   "sha256": "1ixkhkq01v8vhm9drih7hisxppjhgml1xfppb120njs12wqkfrl7"
   }
  },
  {
@@ -41196,14 +41480,14 @@
   "repo": "emacs-geiser/chez",
   "unstable": {
    "version": [
-    20210421,
-    120
+    20211120,
+    250
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "03da1c17253856d8713bc5a25140cb5002c9c188",
-   "sha256": "0cc1z5z5cpvxa5f3n8kvms0wxlybzcg4l1bh3rwv1l1sb0lk1xzx"
+   "commit": "ab2dde7a345c1c135ec0ed8fcd49eff1114951bd",
+   "sha256": "0cwm3xpn4bwgvmcmi06ijydp038054nch2hnjv1lprmnk1jg6d8p"
   },
   "stable": {
    "version": [
@@ -41225,25 +41509,25 @@
   "repo": "emacs-geiser/chibi",
   "unstable": {
    "version": [
-    20210421,
-    123
+    20211204,
+    1938
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "6f59291d8d1dc92ffd3f53f919d8cab4bf50b7d3",
-   "sha256": "0r92iay5cw7jqyd8cy2mm02y0sl89flp4asbz6ca9l818micphfn"
+   "commit": "5a6a5a580ea45cd4974df21629a8d50cbe3d6e99",
+   "sha256": "071m2cvwanra9rd8vmybw8xd4k9a23x02cyy12f7qyjy5fp9s968"
   },
   "stable": {
    "version": [
     0,
-    16
+    17
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "6f59291d8d1dc92ffd3f53f919d8cab4bf50b7d3",
-   "sha256": "0r92iay5cw7jqyd8cy2mm02y0sl89flp4asbz6ca9l818micphfn"
+   "commit": "5a6a5a580ea45cd4974df21629a8d50cbe3d6e99",
+   "sha256": "071m2cvwanra9rd8vmybw8xd4k9a23x02cyy12f7qyjy5fp9s968"
   }
  },
  {
@@ -41254,25 +41538,25 @@
   "repo": "emacs-geiser/chicken",
   "unstable": {
    "version": [
-    20210421,
-    127
+    20211204,
+    2049
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "ceab39c89607f55cba88e5606ba5eb37c7df5260",
-   "sha256": "0klssx0vhj48868p36nkn22qh2k4188gpvi3c2pjk9lb7d5356xj"
+   "commit": "79a9ac78f4df7c9ec1f918313c543c116dbb8b70",
+   "sha256": "19j4ar7900yp2q4i4kdwqj1g0fjywflk6jr2x5n2y3zn7pj7z9nz"
   },
   "stable": {
    "version": [
     0,
-    16
+    17
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "ceab39c89607f55cba88e5606ba5eb37c7df5260",
-   "sha256": "0klssx0vhj48868p36nkn22qh2k4188gpvi3c2pjk9lb7d5356xj"
+   "commit": "79a9ac78f4df7c9ec1f918313c543c116dbb8b70",
+   "sha256": "19j4ar7900yp2q4i4kdwqj1g0fjywflk6jr2x5n2y3zn7pj7z9nz"
   }
  },
  {
@@ -41283,25 +41567,25 @@
   "repo": "emacs-geiser/gambit",
   "unstable": {
    "version": [
-    20210421,
-    124
+    20211204,
+    1940
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "3294c944d1c3b79db44ed14b133129fec454bd60",
-   "sha256": "1vwr0iv7pznr7n6j76i90n306mhq5pxdj8b2f7l5mb32m442w2w9"
+   "commit": "faff8bac11621228640a3107622fe23df4bb6e2c",
+   "sha256": "1v736wh19yma3vjpgb2s1n77rrl5i3n8x451kq3cadsch0wid31d"
   },
   "stable": {
    "version": [
     0,
-    16
+    17
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "3294c944d1c3b79db44ed14b133129fec454bd60",
-   "sha256": "1vwr0iv7pznr7n6j76i90n306mhq5pxdj8b2f7l5mb32m442w2w9"
+   "commit": "faff8bac11621228640a3107622fe23df4bb6e2c",
+   "sha256": "1v736wh19yma3vjpgb2s1n77rrl5i3n8x451kq3cadsch0wid31d"
   }
  },
  {
@@ -41338,25 +41622,25 @@
   "repo": "emacs-geiser/guile",
   "unstable": {
    "version": [
-    20211029,
-    1512
+    20211204,
+    2047
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "1c5affdf1354220b49ab08b5a7665ebf61080863",
-   "sha256": "0gndf0w8dbv54bzc04svp2ck8wypa7i3b8kpixf6rkg91l79xpci"
+   "commit": "961bb01d1930d1edef07cdb3f91fe140f9617caf",
+   "sha256": "177n5z301j82cy47bx39r1h1zkrvicr28a52j7579b26ww639bvd"
   },
   "stable": {
    "version": [
     0,
-    18
+    19
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "1c5affdf1354220b49ab08b5a7665ebf61080863",
-   "sha256": "0gndf0w8dbv54bzc04svp2ck8wypa7i3b8kpixf6rkg91l79xpci"
+   "commit": "adf31d3a36bf9be4b92d5c8854b4a055b1ef6f1f",
+   "sha256": "177n5z301j82cy47bx39r1h1zkrvicr28a52j7579b26ww639bvd"
   }
  },
  {
@@ -41396,25 +41680,25 @@
   "repo": "emacs-geiser/mit",
   "unstable": {
    "version": [
-    20210405,
-    1920
+    20211204,
+    1935
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "d17394f577aaa2854a74a1a0039cb8f73378b400",
-   "sha256": "0w80ifs5d49ss81j34lnq91x2sbkc44i2xswkcwx23rh62p4jvyc"
+   "commit": "4e90e9ae815e89f3540fb9644e6016c663ef5765",
+   "sha256": "1j06y77nq6q33fhvf4kq0md4xmcrvimiycjgv35cpkxvkcprfafa"
   },
   "stable": {
    "version": [
     0,
-    14
+    15
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "d17394f577aaa2854a74a1a0039cb8f73378b400",
-   "sha256": "0w80ifs5d49ss81j34lnq91x2sbkc44i2xswkcwx23rh62p4jvyc"
+   "commit": "4e90e9ae815e89f3540fb9644e6016c663ef5765",
+   "sha256": "1j06y77nq6q33fhvf4kq0md4xmcrvimiycjgv35cpkxvkcprfafa"
   }
  },
  {
@@ -41454,14 +41738,14 @@
   "repo": "emacs-geiser/stklos",
   "unstable": {
    "version": [
-    20210626,
-    1440
+    20211117,
+    2114
    ],
    "deps": [
     "geiser"
    ],
-   "commit": "be482a03225720d7adb003c28e4515f6252e7ce2",
-   "sha256": "1dyzpr9i5pxi2p2hg3ndryh7x4y0r9bra88pd1l904vdfsxdxv5z"
+   "commit": "9db60a7e751c97e30dd528e2a96ff19575b618d2",
+   "sha256": "0a7zv54l8hwwnympw7qhdm2mh6ijbcflxq87niljgbk0163h6y1w"
   },
   "stable": {
    "version": [
@@ -41526,14 +41810,14 @@
   "repo": "noctuid/general.el",
   "unstable": {
    "version": [
-    20211008,
-    1651
+    20211203,
+    120
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "26f1d4c4e258c40e6b70ce831a04800c914f29b3",
-   "sha256": "16rjsmmhjjx4mch1aygrxqj3pr5c4xxqzf21qvr6s4c9yk6ayx1f"
+   "commit": "9651024e7f40a8ac5c3f31f8675d3ebe2b667344",
+   "sha256": "01zfd8akm048gh4kbb6a4zxhd8gbambyi2sji47f022f9skmn3ys"
   }
  },
  {
@@ -41666,8 +41950,8 @@
   "repo": "thisch/gerrit.el",
   "unstable": {
    "version": [
-    20211005,
-    605
+    20211210,
+    1616
    ],
    "deps": [
     "dash",
@@ -41675,8 +41959,8 @@
     "magit",
     "s"
    ],
-   "commit": "3de210e2bcf9a7ce9a2a448cd910ffe477de8432",
-   "sha256": "1aaaff18crz86f1mpjkwc6vfjdayjnv4imqrl8qnqfccbmkb5z4w"
+   "commit": "b2e4ef23c2dd66d10526b58defcaea7beac7442f",
+   "sha256": "0spmljgh82nssv5d7bsywhlgpr4n4xz9vi1ar9kaba2981q3xd2p"
   }
  },
  {
@@ -41828,6 +42112,38 @@
   }
  },
  {
+  "ename": "gh-notify",
+  "commit": "98d33fe63e0263f029921b606edd1d4fb83f7a09",
+  "sha256": "1qm3d7hbg8vccv6pg6w9x0zgrl90wbkl2kgswyqzphk076xjbhli",
+  "fetcher": "github",
+  "repo": "anticomputer/gh-notify",
+  "unstable": {
+   "version": [
+    20211126,
+    638
+   ],
+   "deps": [
+    "forge",
+    "magit"
+   ],
+   "commit": "aa4d8bc0c56366d437e7c126e7eedc5938109342",
+   "sha256": "1sva7322x9cmz1z45ipsgcp3cx8ih999w911q6x23ba50ckyg569"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "deps": [
+    "forge",
+    "magit"
+   ],
+   "commit": "8937f64092ea3b7e2cea2d61c12fde8e0f5e7917",
+   "sha256": "1amqyv0xdvl1ghy2pv2kvp2lc2q250p71mq3qdf50v87png57d9p"
+  }
+ },
+ {
   "ename": "ghc-imported-from",
   "commit": "855ea20024b606314f8590129259747cac0bcc97",
   "sha256": "063kbymk4r1yrg5ks660d2byrnia6gs6nimjzrvqfi2ib1psc7jc",
@@ -41934,15 +42250,15 @@
   "repo": "magit/ghub",
   "unstable": {
    "version": [
-    20211106,
-    2042
+    20211205,
+    17
    ],
    "deps": [
     "let-alist",
     "treepy"
    ],
-   "commit": "4d6a4b2bc1d88b993c09c1cb47b575a08eb264ea",
-   "sha256": "1sdwpn917p92bh8cljl70zzxrwdy368p0w1ynsfp4x9xdkgc068f"
+   "commit": "a32d5f8725607684b091a537375ded61bc2cb818",
+   "sha256": "0q68wv2d8msqygigrgaq2v3nm3a0ymabnxzp4a7mai0brhdb35hj"
   },
   "stable": {
    "version": [
@@ -42300,16 +42616,16 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20211010,
-    1635
+    20211204,
+    2135
    ],
    "deps": [
     "dash",
     "transient",
     "with-editor"
    ],
-   "commit": "9413847c1a085899d8de6f8d978bd7265f65e5d8",
-   "sha256": "0b39813iyxgq0ai6hz4hpf9f4wix1lhcp6z5p1cm6y6hd8dyg486"
+   "commit": "1eb183e7672bf25fa77ea06d97b3d9c502a698ae",
+   "sha256": "08ci7w0pzbzs02fd8zklvhixkj8ab9vvc41w39mcik8qhr1fz5j4"
   },
   "stable": {
    "version": [
@@ -42593,11 +42909,11 @@
   "repo": "sshaw/git-link",
   "unstable": {
    "version": [
-    20211024,
-    1538
+    20211208,
+    312
    ],
-   "commit": "b2d803ad8764b896f5dd7f7e139ceb4903f7d8b6",
-   "sha256": "0gsa2qqxmynj10mpb3mm7xgsbk8fx7f4scwaxwl8l7dw3cmk9rmv"
+   "commit": "09961648e654ba0f7239eedf5cbaea0f0cc0ccf1",
+   "sha256": "0zwbcp2881n92nd0y40sw6id6qbidprzr0bsh9vn64gmvch6jlnd"
   },
   "stable": {
    "version": [
@@ -42896,6 +43212,21 @@
   }
  },
  {
+  "ename": "github-dark-vscode-theme",
+  "commit": "a81f7dcb441c13e0bd8d5c5901f135d7f26a2bd9",
+  "sha256": "19c56h6v2lsgj7agmmks56z9iflp6mnm0qnrv6h0il75bpah8j2z",
+  "fetcher": "github",
+  "repo": "justintime50/github-dark-vscode-emacs-theme",
+  "unstable": {
+   "version": [
+    20211122,
+    1800
+   ],
+   "commit": "092324ecb9c0909da2ba2751cb21a994b4e09536",
+   "sha256": "1zr116c9zphm5kgacqxmll7gzd1h5583xy0asg46dzyn4gn0bmhv"
+  }
+ },
+ {
   "ename": "github-elpa",
   "commit": "81ec06e370f51b750ba3313b661d7386710cffb0",
   "sha256": "1981dnz49l5r4qsn49i4dhy6x4ln0haff6gl2zx0p5p0zfkzbi7x",
@@ -43436,16 +43767,16 @@
   "url": "https://git.launchpad.net/global-tags.el",
   "unstable": {
    "version": [
-    20210707,
-    1954
+    20211120,
+    347
    ],
    "deps": [
     "async",
     "ht",
     "project"
    ],
-   "commit": "06db25d91cc8bfb5e24e02adc04de1226c7e742d",
-   "sha256": "1q30cbqq0h1gfwlcbnx9s930li7w7a0y8sx2ivbvvyyc2j5gsk4j"
+   "commit": "aaa37da4c538f35a90149ef4ad3d8b0922af54ab",
+   "sha256": "0d1xil1cw0jrk4ciifph2qdhk0qb1h906zgryy74yaj3gd2dx7ak"
   },
   "stable": {
    "version": [
@@ -43554,6 +43885,21 @@
   }
  },
  {
+  "ename": "gmsh-mode",
+  "commit": "08bc6d7ee700580101da8ab0a09f101c69093fab",
+  "sha256": "0wn0vylalp77sq98irm7skih5ibv95y6nds8w8aiwxrl63lpj2p8",
+  "fetcher": "gitlab",
+  "repo": "matsievskiysv/gmsh-mode",
+  "unstable": {
+   "version": [
+    20211204,
+    826
+   ],
+   "commit": "2b7c573f378f7e9210400115d4d9dfd879f8a4ad",
+   "sha256": "0yipszmblbz2zz784ys78zqzcm44blnvlm79gch2prl56gi0hl3r"
+  }
+ },
+ {
   "ename": "gn-mode",
   "commit": "f5c6c27bce3d0aaf7e3791299a527d5f1fd69653",
   "sha256": "1rn4xa1am1yd9k2hpi5b0zhs3pgq4hnhgxdgs258cmhszm8c6ii2",
@@ -44541,11 +44887,11 @@
   "repo": "lorniu/go-translate",
   "unstable": {
    "version": [
-    20211025,
-    443
+    20211127,
+    1059
    ],
-   "commit": "8de1c3b660602b6739444ceed3e48214c417fe38",
-   "sha256": "0b8jbcs848ck0zbl6rmyyac3mbhx58zq04l7wvi7paficg9lphj9"
+   "commit": "6aec3af53e69dcacfaa6186660cd4174170ca1c4",
+   "sha256": "0hgr6w7vfa0g385l1b00ngnrp3vjhgg6w2978q3f778vjsz9ipb5"
   },
   "stable": {
    "version": [
@@ -44630,8 +44976,8 @@
     20211031,
     1513
    ],
-   "commit": "36139cb1898c763be08167c74b5c5d05efada9e5",
-   "sha256": "06r5zpp4k4flv9slkpgxfy9m9c7b5kyix2si30bdka3fq4c1jwl5"
+   "commit": "3e48a56356991b3ff5228eced19b07862835cdcd",
+   "sha256": "0mkbra0a14rxh0716m6zxlkx05rhq1fn6n3yry29wwiabxa3w8ab"
   },
   "stable": {
    "version": [
@@ -44814,8 +45160,8 @@
     20180130,
     1736
    ],
-   "commit": "9806df89a3bc110cb9cabc41287bf942710599a3",
-   "sha256": "10l80l8aq30c4pgf930wj9dgfbhxp9jx81f4jnl2gq8z9bd7qwp6"
+   "commit": "842b872ac4da18dda02b797976ea12fd7d84768f",
+   "sha256": "09bxbm59fbqjqcmsmnqg74yzzmi92h9b2z4r62x5hpz625045mhg"
   }
  },
  {
@@ -45156,14 +45502,14 @@
     "magit-popup",
     "s"
    ],
-   "commit": "7f4153164fcd6588e2245ca3f5b4aee7737f4367",
-   "sha256": "1wrmw1y6qp3s36s30v4dncn68mf5biykpwpf5sk3h7sh0ifgk8yv"
+   "commit": "f032fbe4a8627ef85a39f590a6bdeffcdc48daa6",
+   "sha256": "0jlpl0wsypsi1iv092jlcx5807nn26mav2xynm207q042cwi1w8s"
   },
   "stable": {
    "version": [
     0,
     27,
-    1
+    2
    ],
    "deps": [
     "dash",
@@ -45171,8 +45517,8 @@
     "magit-popup",
     "s"
    ],
-   "commit": "6209be5b5c0bd5d81078fdc82eb4001f202f90e7",
-   "sha256": "15w2jbpilhk88rhsanq1hw19qvs66bcrv21v8hkmzsd1579p2qhy"
+   "commit": "f04d77d687dcd5f2dbc546a92ab46a14b5c00d84",
+   "sha256": "1ig7ss0i4r7nsj1qffanlky17lka7328zx6386li0jikfz34jffv"
   }
  },
  {
@@ -45517,8 +45863,8 @@
     20180912,
     31
    ],
-   "commit": "e2b309689f4faf9225f290080f836e988c5a576d",
-   "sha256": "1hqvsr2s2lbdssbx3v8nqxdhhdvydx6hpbhh4rlnfcadhhs0f6nr"
+   "commit": "5ca5f50b5e6f3883f1138453a356d59a1c002120",
+   "sha256": "0wh0f49574zdv0r7zdhckv4jr3ggwzlgyxda0y0hxw8vabzvavw6"
   },
   "stable": {
    "version": [
@@ -45570,11 +45916,11 @@
   "repo": "davazp/graphql-mode",
   "unstable": {
    "version": [
-    20210912,
-    1544
+    20211127,
+    1023
    ],
-   "commit": "80e9ac8020f7a4a8a963136698eb97a9fca28f7d",
-   "sha256": "1m4glbijclbhhzq8apvfyslfv1lgn3hy3wcfiynrpkxnxszygnyx"
+   "commit": "9740e4027bd9313697d5cac5caaa5b15626ab1da",
+   "sha256": "0rsa38fiiwzvxln4g5xvrsggm9mslw58iw3cx5c07y6kasfqfibb"
   }
  },
  {
@@ -45801,11 +46147,11 @@
   "repo": "seagle0128/grip-mode",
   "unstable": {
    "version": [
-    20210818,
-    623
+    20211203,
+    254
    ],
-   "commit": "1c82e27beec629514a8039e22f4f7c649e77ee2b",
-   "sha256": "1hgwqk991cnvslqgmvpwgxavm6nhvgn2cig3r8jpwvmfyjlcbyql"
+   "commit": "5be9942e8f76ebc8b55bcc1a29fb01277cb43743",
+   "sha256": "1a4hq8n7v1310v4fr04fpbx22rfb3dbiini091fk7kcpj21f5x5b"
   },
   "stable": {
    "version": [
@@ -45938,20 +46284,20 @@
   "repo": "ROCKTAKEY/grugru",
   "unstable": {
    "version": [
-    20211116,
-    850
+    20211119,
+    815
    ],
-   "commit": "7b63aa731bf7df528bb7d680ca3efe42ab4ead38",
-   "sha256": "0l60w8r5586af740vkcr11xj8ganws0hgbv4n7rn11mksr5idzwz"
+   "commit": "1b3b807e84cb250f0cc70876a438fed3b27eb756",
+   "sha256": "1p99lrq6p6xyn9lc2zmf68ns70kayhri1xls0h1h6ibxsqzvxyac"
   },
   "stable": {
    "version": [
     1,
-    21,
+    22,
     0
    ],
-   "commit": "1225a06dcb10c600ab9c44fd3d7df25bcd74d704",
-   "sha256": "0b5dgy3la3jzfxvj4fsdjphqvymvs6zx8dsibvld5ydkj3cx4pfw"
+   "commit": "2c743b7a981daf86cdfa3deab88a6c68a8d4e5a2",
+   "sha256": "01gw37yxj5sylhz0mxfbdaklalgw40b11gplyxsf5h7528la923f"
   }
  },
  {
@@ -46970,8 +47316,8 @@
     20211017,
     1730
    ],
-   "commit": "4b73d61f4ef1c73733f7201fbf0b49ba9e3395b6",
-   "sha256": "12a5hgaf2z6prqx45n6y0xyknz2sivpzwxjnzbsdx9sw6rniqm57"
+   "commit": "d708937592f9e2d28ae5622086b9c24d60cd8ac2",
+   "sha256": "0dyg2l96wgyl2l8iqvzqvh2rmxyqn8bgiss5r93f9c3daam7jyca"
   },
   "stable": {
    "version": [
@@ -47200,30 +47546,30 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20211116,
-    1616
+    20211208,
+    606
    ],
    "deps": [
     "async",
     "helm-core",
     "popup"
    ],
-   "commit": "ab2592262f4f62498f3261993eb249bb4c60c8ba",
-   "sha256": "0d5accmbidapgxj9fbrn5cdcfy3i0993sxrafnj2x8cb8px1lrg4"
+   "commit": "a246a9b278fb973d38d13ade7417f55e0a57eae4",
+   "sha256": "1z38jyfw8id62508rxfrkxd2ln70s6sc0cyvngn8zq94z47aqyjx"
   },
   "stable": {
    "version": [
     3,
     8,
-    1
+    2
    ],
    "deps": [
     "async",
     "helm-core",
     "popup"
    ],
-   "commit": "52dcf9e27c1a10be058efa0cf790510bbfeb89e7",
-   "sha256": "1yfr2vz1kd21rvnxi8xzv67gs5r599fhjmw8qphsmpv5afscfl7k"
+   "commit": "94cf15d64bd1dbc7dc3194ab323e0f0ef263ea77",
+   "sha256": "1xkxlbjpqhfhakmfi664cq7i5968941vpngq94napmhbgqydp4qn"
   }
  },
  {
@@ -48108,26 +48454,26 @@
   "repo": "emacs-helm/helm",
   "unstable": {
    "version": [
-    20211114,
-    1507
+    20211202,
+    1641
    ],
    "deps": [
     "async"
    ],
-   "commit": "ab2592262f4f62498f3261993eb249bb4c60c8ba",
-   "sha256": "0d5accmbidapgxj9fbrn5cdcfy3i0993sxrafnj2x8cb8px1lrg4"
+   "commit": "a246a9b278fb973d38d13ade7417f55e0a57eae4",
+   "sha256": "1z38jyfw8id62508rxfrkxd2ln70s6sc0cyvngn8zq94z47aqyjx"
   },
   "stable": {
    "version": [
     3,
     8,
-    1
+    2
    ],
    "deps": [
     "async"
    ],
-   "commit": "52dcf9e27c1a10be058efa0cf790510bbfeb89e7",
-   "sha256": "1yfr2vz1kd21rvnxi8xzv67gs5r599fhjmw8qphsmpv5afscfl7k"
+   "commit": "94cf15d64bd1dbc7dc3194ab323e0f0ef263ea77",
+   "sha256": "1xkxlbjpqhfhakmfi664cq7i5968941vpngq94napmhbgqydp4qn"
   }
  },
  {
@@ -49670,8 +50016,8 @@
     "helm",
     "lean-mode"
    ],
-   "commit": "bf32bb97930ed67c5cbe0fe3d4a69dedcf68be44",
-   "sha256": "1bkv5zs38ijawvavbba0fdf2flb6fiwici3qi99ws8wvwhnbkws2"
+   "commit": "4a90f2ae6e33c162a3dd6f624fb080c2ed8e8494",
+   "sha256": "1zikz4qaxabs3j86gljpp2qbhbzxsjzz544k9vsngibd468dszlv"
   }
  },
  {
@@ -51933,8 +52279,8 @@
   "repo": "Wilfred/helpful",
   "unstable": {
    "version": [
-    20211021,
-    625
+    20211211,
+    703
    ],
    "deps": [
     "dash",
@@ -51942,8 +52288,8 @@
     "f",
     "s"
    ],
-   "commit": "8df39c15d290cd499ef261de868191d3fc84f75a",
-   "sha256": "0wnbzwlsbigxc9bncy8lf8i5kcjg7qrb6l93k0fsyj8y0qibaja3"
+   "commit": "2afbde902742b1aa64daa31a635ba564f14b35ae",
+   "sha256": "0qwsifzsjw95l83m7z07fr9h1sqbhggwmcps1qgbddpan2a8ab8a"
   },
   "stable": {
    "version": [
@@ -53478,15 +53824,15 @@
   "repo": "plexus/html-to-hiccup",
   "unstable": {
    "version": [
-    20190909,
-    1549
+    20211129,
+    944
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "50a52e2b0d13d865187acdf775b8203d5003f2f1",
-   "sha256": "1qi092mw2n08v6yr0j6hlpx0pnlcnhxjqbsrlw9pn4yin6zk91yp"
+   "commit": "97ecc8cce11f577ad4406da0367aa5eeec1bd8c6",
+   "sha256": "0i96m9wpgwlxp8b6lw7a8lsjbxb7q9m12p8yra33q7q3ilav4g8p"
   }
  },
  {
@@ -53713,30 +54059,30 @@
   "repo": "rkaercher/hugsql-ghosts",
   "unstable": {
    "version": [
-    20180425,
-    1129
+    20211124,
+    1646
    ],
    "deps": [
     "cider",
     "dash",
     "s"
    ],
-   "commit": "f3ebc60c66204ad39058cb84eb4bd5facce091df",
-   "sha256": "0pcr39x8yxl5aa0sz20gw20ixz5imw5m19bzhzbzyn7slr65hlqn"
+   "commit": "7cd242cc2e70ac48959c42be725c81d7fe00b314",
+   "sha256": "1jn8958jabn8zxq11rs9b0r3ga3vznjd9qn40ka8n54rp4hnj1l9"
   },
   "stable": {
    "version": [
     0,
     1,
-    3
+    4
    ],
    "deps": [
     "cider",
     "dash",
     "s"
    ],
-   "commit": "f3ebc60c66204ad39058cb84eb4bd5facce091df",
-   "sha256": "0pcr39x8yxl5aa0sz20gw20ixz5imw5m19bzhzbzyn7slr65hlqn"
+   "commit": "f9ab314b6a10140041233e65a23e924dcab9a7a3",
+   "sha256": "0y5gmv84i0fasmj53wmfhgw6p14r4byg95hfbywccc85f6q2x5vj"
   }
  },
  {
@@ -53747,19 +54093,19 @@
   "repo": "humanoid-colors/emacs-humanoid-themes",
   "unstable": {
    "version": [
-    20210819,
-    811
+    20211206,
+    1411
    ],
-   "commit": "3a157bab0493fe0654de0324ec59eef9b3d15202",
-   "sha256": "0jm81nax0r4h82gd7pbvxpf2nb7ynmxq099103y0s5xhy1cx6v8l"
+   "commit": "8ad6d9ae8e6c2cd7e282922416a596bbb20438c8",
+   "sha256": "0y1kazfhjsyghqm1ddd2dbk1jipwn0l1n15mcm4d7038dd3x6d99"
   },
   "stable": {
    "version": [
     0,
-    2
+    3
    ],
-   "commit": "d140638360a3eb1bf8f17877bd888f898df63ec0",
-   "sha256": "1lybjbbcjsry20p6jzmkg2h7am7hcgfhjkdmby9pk4whnhk9l4lh"
+   "commit": "33c7f8dd55e30c255c2535647fee4126268f8dd8",
+   "sha256": "1wpvk3w4aj8x91xjyplg864j9c4kz43r3831kadcnkp0d1p3k9hm"
   }
  },
  {
@@ -54047,8 +54393,8 @@
    "deps": [
     "request"
    ],
-   "commit": "39fd7daf1efd761336616c870cc5b8871422d95e",
-   "sha256": "18b9n5w36zdsaxc63nhsry2i1s28a4y21sc6cj7rawvd8zyxargv"
+   "commit": "992f53ae2bd572b89bc642ca70b8bdaa5eb2553f",
+   "sha256": "0z00w8ssr1syh5fphk7y7910l66vlcyj2lc76jhs1g7pxs6q5hh9"
   }
  },
  {
@@ -55328,11 +55674,11 @@
   "repo": "petergardfjall/emacs-immaterial-theme",
   "unstable": {
    "version": [
-    20211006,
-    1048
+    20211208,
+    729
    ],
-   "commit": "ae9980927026324ff656721eef2e0f415cf3dfb4",
-   "sha256": "198xii7cdscd521bbz371465pks072zi3cdgqrgcq6860falyfxf"
+   "commit": "1c576624758429118794db9407c9627dfff7c975",
+   "sha256": "0a704nk7ly4wy5nmgqkdrg3lp3lpyk701myp9b72dn6diiv9r4nd"
   },
   "stable": {
    "version": [
@@ -55536,6 +55882,30 @@
   }
  },
  {
+  "ename": "impostman",
+  "commit": "b98f232e6a4b0dd90b0aae1065b441d14c3a10df",
+  "sha256": "1xm4ik32fs2si0gbg1b6l5j8387724w0w6gkji0db2lwd0xvgvck",
+  "fetcher": "github",
+  "repo": "flashcode/impostman",
+  "unstable": {
+   "version": [
+    20211212,
+    851
+   ],
+   "commit": "130ef8218c9e2a776130ab95b6cd199955328913",
+   "sha256": "0w9x6iq7cmzd3vqrjh7l8b457fcphpl8z1xk4dcc3lj113nczyig"
+  },
+  "stable": {
+   "version": [
+    0,
+    2,
+    0
+   ],
+   "commit": "fe8646959223a8b4dbd733aa66cf1a675332d9cf",
+   "sha256": "1zwqibsdbgviv9j1zxs9j330qi357xc0i9bhh87xl4w7hd751xg9"
+  }
+ },
+ {
   "ename": "indent-control",
   "commit": "c2c3a73f54091f5347877d51a68b0e009253583b",
   "sha256": "0nd7crp6k1mklhz0y1zypc3jmjfydy6d1ksx24sm9zj83i3fp339",
@@ -55812,20 +56182,20 @@
   "repo": "J3RN/inf-elixir",
   "unstable": {
    "version": [
-    20210731,
-    2030
+    20211202,
+    210
    ],
-   "commit": "404f88530975e3540f357f6a4f96c864bd19065b",
-   "sha256": "14hz77f4sjq0pjr22fp77sk5kh6074qs493aiwc900b1apzh47jk"
+   "commit": "acb948ca41a862c8c9b3f61ad576dec2c30d0052",
+   "sha256": "1rlc2sf8r1vzs13fa2kab93m2xr883ckywx1h1an2b4si73y5ddc"
   },
   "stable": {
    "version": [
     2,
     1,
-    0
+    2
    ],
-   "commit": "9c21ae6d7a1313c856fd508880ee121fbea99f4d",
-   "sha256": "0w6fj1sh1pdsrk5sis2zkbdz0ixbpndaizvlqv2riw3sgpnc41f3"
+   "commit": "acb948ca41a862c8c9b3f61ad576dec2c30d0052",
+   "sha256": "1rlc2sf8r1vzs13fa2kab93m2xr883ckywx1h1an2b4si73y5ddc"
   }
  },
  {
@@ -56203,11 +56573,11 @@
   "repo": "ideasman42/emacs-inkpot-theme",
   "unstable": {
    "version": [
-    20211101,
-    558
+    20211130,
+    214
    ],
-   "commit": "1ca71416869e7515a9c2587b35f21a11921686f3",
-   "sha256": "0pl2hpcy9165np17gwa9qhqxb43kwm0z746pxcga7rfg6apy6krc"
+   "commit": "9afc537af6e56dda5a3ef60792f15ed391ba3b8b",
+   "sha256": "0mffhf0zzvlrc0kcvfj91p4q7wx9v4ih1v1spjad40h5790gn9an"
   }
  },
  {
@@ -56716,8 +57086,8 @@
     "cl-lib",
     "json"
    ],
-   "commit": "b9c64abf81e73860e39ecd82dfa00cca90b53d99",
-   "sha256": "1ilvfqn7hzrjjy2zrv08dbdnmgksdgsmrdcvx05s8704430ag0pb"
+   "commit": "5063d6b16d5d0a444bbc7599caabfdc6b512f70c",
+   "sha256": "1c5xqpr7czncj16rfl8gaa01nczkg3x1n8jh18nd2201xrc4v8z4"
   },
   "stable": {
    "version": [
@@ -56954,19 +57324,19 @@
   "repo": "doublep/iter2",
   "unstable": {
    "version": [
-    20200517,
-    1623
+    20211119,
+    1718
    ],
-   "commit": "987045585d60700b4b9e617313c1a73618a144c9",
-   "sha256": "0gaq3z2v1q4r9mkyq71dzmqakhi0p8g7ph4z0n3a11rvyc3z9ykx"
+   "commit": "077684feec98ce6d5e283a13f056c083986628a2",
+   "sha256": "12flc98nv353cqr9qbkasgdmiyf9c3iw4apzh899xw857j1h5qdr"
   },
   "stable": {
    "version": [
     1,
-    0
+    1
    ],
-   "commit": "987045585d60700b4b9e617313c1a73618a144c9",
-   "sha256": "0gaq3z2v1q4r9mkyq71dzmqakhi0p8g7ph4z0n3a11rvyc3z9ykx"
+   "commit": "077684feec98ce6d5e283a13f056c083986628a2",
+   "sha256": "12flc98nv353cqr9qbkasgdmiyf9c3iw4apzh899xw857j1h5qdr"
   }
  },
  {
@@ -57785,10 +58155,10 @@
  },
  {
   "ename": "ivy-spotify",
-  "commit": "380125490f47bd150218280c2e16c01be9054a60",
-  "sha256": "1mrwwlx3nwvvbwlbp4diz7ylsxl76dp51pfgsb2xay2yq0ia34w8",
+  "commit": "76e7a6c9e67bcea5b681dacf6725f7e313f0c1a8",
+  "sha256": "1qvdrm890n6pyf23swq0af2pjkpzpf9nglzq1vkrmssp2rl3x3wc",
   "fetcher": "git",
-  "url": "https://codeberg.org/jao/espotify",
+  "url": "https://codeberg.org/jao/espotify.git",
   "unstable": {
    "version": [
     20210329,
@@ -59150,14 +59520,14 @@
   "repo": "mooz/js2-mode",
   "unstable": {
    "version": [
-    20211105,
-    1214
+    20211201,
+    1250
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "d2636f95ebe4d423dc9b4311aff248c7688271c5",
-   "sha256": "1p293jhzsqzn4kljz1nl87jg1aq35jzqzs31ryfi8dn8iicwyd85"
+   "commit": "d18730505e4ab57ec2b036980a62f6c6a60381e9",
+   "sha256": "1q26y3fmxlz2hmxdlkh5qpv20c49nv9vd0dmcmzzimr6c8y5yscq"
   },
   "stable": {
    "version": [
@@ -59372,26 +59742,26 @@
   "repo": "taku0/json-par",
   "unstable": {
    "version": [
-    20211106,
-    535
+    20211122,
+    942
    ],
    "deps": [
     "json-mode"
    ],
-   "commit": "45902f2f36d4a90662caaaca6612b762ccb5b34e",
-   "sha256": "1p46pylidl035bhxv73867iw206ddriziplcv347rqj39drknlix"
+   "commit": "2bc383c4f88a111202b4d00303f3345b32e4b8e9",
+   "sha256": "1k1jv0m6mj772dkjzsy86k528lqljqmffcpz9l2lzrm6q1bqnw43"
   },
   "stable": {
    "version": [
     2,
-    0,
-    1
+    1,
+    0
    ],
    "deps": [
     "json-mode"
    ],
-   "commit": "85a5288bea5c579b2bfdd7be16bdfc18a58b3a26",
-   "sha256": "0fbrgxd2n45smq7im6qas6nnzrxv3397rxp1snx7pk58vz4v980h"
+   "commit": "2bc383c4f88a111202b4d00303f3345b32e4b8e9",
+   "sha256": "1k1jv0m6mj772dkjzsy86k528lqljqmffcpz9l2lzrm6q1bqnw43"
   }
  },
  {
@@ -59699,8 +60069,8 @@
   "repo": "gcv/julia-snail",
   "unstable": {
    "version": [
-    20211110,
-    1407
+    20211213,
+    1514
    ],
    "deps": [
     "dash",
@@ -59709,8 +60079,8 @@
     "spinner",
     "vterm"
    ],
-   "commit": "55458e9c8fbeebb33ffeb291d40c529f2b006c8d",
-   "sha256": "0b9khsza4zfxdi03i5gx6s1g0f27qg71vmj4f4gcqkgdhfxxy4yb"
+   "commit": "465f95a54a82a40ee047085115b10ab3e7c2daa9",
+   "sha256": "0vspf2imgvcjyavzj3ljsi7xrhk97is05l1c4d2bypnsq35x3549"
   },
   "stable": {
    "version": [
@@ -59890,8 +60260,8 @@
   "repo": "nnicandro/emacs-jupyter",
   "unstable": {
    "version": [
-    20211116,
-    150
+    20211130,
+    1647
    ],
    "deps": [
     "cl-lib",
@@ -59899,8 +60269,8 @@
     "websocket",
     "zmq"
    ],
-   "commit": "f178c1c7b8d9a0c0b77e38dc03524db3d2c8288a",
-   "sha256": "1vmg6bq8w9aw5r9plnvslvhq1ykj5m5srz67qn9jbn54lx7qq08p"
+   "commit": "df343af5e9187a400a9291fa6a2b0c69f3ad0425",
+   "sha256": "0sa8mi5gmb0n1ylgh1vz72nfgrjxny770l5z3xyxl0myw668vmcf"
   },
   "stable": {
    "version": [
@@ -60015,14 +60385,14 @@
   "repo": "TxGVNN/emacs-k8s-mode",
   "unstable": {
    "version": [
-    20210618,
-    1540
+    20211121,
+    518
    ],
    "deps": [
     "yaml-mode"
    ],
-   "commit": "430e9d698f1411efe3f8f2bb4c8f8857e0321a8d",
-   "sha256": "0rpgsfxvbic7ni82cpqi7wya73ajbd2jfbjskklzlmhwn1j26a9v"
+   "commit": "083bcffbfeeaf5e79015a012b4dbf2f283a493ab",
+   "sha256": "14zrrfkpnh821hpa1d8bpcvmzc654ibjd0sf78v5jckjswh3vqfl"
   },
   "stable": {
    "version": [
@@ -60174,8 +60544,8 @@
     "multiple-cursors",
     "ryo-modal"
    ],
-   "commit": "c39f278811945dbf0958ca8cf81d7b03c39efbcf",
-   "sha256": "0ajh4nk8brwi41rsbd9dn5gbf7i2mkaxm3aal09r2wgmgxigsiqp"
+   "commit": "d81bd00323ba10343a28bc855ee5ddbd09b7d2a5",
+   "sha256": "187dnrjp9khs1l17afwiw8dhk3znvirwzpllpv63fvzvc6gsi2hg"
   }
  },
  {
@@ -60742,14 +61112,14 @@
   "repo": "tarsius/keymap-utils",
   "unstable": {
    "version": [
-    20211027,
-    1933
+    20211128,
+    1356
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "20e5ab2a8bfdf9b44c813c6abd96b478f822ddef",
-   "sha256": "1acflsq0yh3sj607g2yasdbwacyzdh27hmgplybxc3zg464gldj1"
+   "commit": "2f247333435b8b036547658caf04228831f613d2",
+   "sha256": "1iykzph614sjdpxgfx5y55bgzv9m7j9g6b4n1d8icj7r1620yr5w"
   },
   "stable": {
    "version": [
@@ -61136,8 +61506,8 @@
     20210318,
     2106
    ],
-   "commit": "74057b9fcf7cbe3ec2f17c86e7a3da93b40e372b",
-   "sha256": "18n1xpcs8z7pmc2k35c343qsjai0rgyc1jgsc35j9z2xqzq6mpji"
+   "commit": "c27fb3187b527deea585c72bad000b44af520bce",
+   "sha256": "0p91qz7xqbril7yhmxdf1dciy8f8mf5vw4z2xbm1j8al2d3jimyz"
   },
   "stable": {
    "version": [
@@ -61436,8 +61806,8 @@
   "repo": "abrochard/kubel",
   "unstable": {
    "version": [
-    20211001,
-    1327
+    20211129,
+    2118
    ],
    "deps": [
     "dash",
@@ -61445,8 +61815,8 @@
     "transient",
     "yaml-mode"
    ],
-   "commit": "8cf9a8db6af7e604e963d180274af17755562239",
-   "sha256": "1s6lbqrfkdl2kwshrjwjfxwxl4jmchb3y2y8cjpjjp4f65r4p7m6"
+   "commit": "f75a78f785ef1782a32f4464a89fd4c33bf368ca",
+   "sha256": "0as26hsvkkjzls68wf6f1wwcrpnhj31g13cykclgq3jdwcah6xsp"
   },
   "stable": {
    "version": [
@@ -61478,8 +61848,8 @@
     "evil",
     "kubel"
    ],
-   "commit": "8cf9a8db6af7e604e963d180274af17755562239",
-   "sha256": "1s6lbqrfkdl2kwshrjwjfxwxl4jmchb3y2y8cjpjjp4f65r4p7m6"
+   "commit": "f75a78f785ef1782a32f4464a89fd4c33bf368ca",
+   "sha256": "0as26hsvkkjzls68wf6f1wwcrpnhj31g13cykclgq3jdwcah6xsp"
   },
   "stable": {
    "version": [
@@ -61502,8 +61872,8 @@
   "repo": "kubernetes-el/kubernetes-el",
   "unstable": {
    "version": [
-    20211114,
-    420
+    20211211,
+    727
    ],
    "deps": [
     "dash",
@@ -61512,8 +61882,8 @@
     "transient",
     "with-editor"
    ],
-   "commit": "4b740d88c6dcb091d701f74ddcf53e3732999ac9",
-   "sha256": "1l5rbgagdi6gfp8prj01pcgh4k3k90aijrrq5b8nkqppxiq85kh7"
+   "commit": "73361de919cff8d773f347868850f6c694d942e7",
+   "sha256": "17imkanh7ay88s1ppzsdr7hf91rgqimx9v6p69srmqq5bpnwpnmy"
   },
   "stable": {
    "version": [
@@ -61547,8 +61917,8 @@
     "evil",
     "kubernetes"
    ],
-   "commit": "4b740d88c6dcb091d701f74ddcf53e3732999ac9",
-   "sha256": "1l5rbgagdi6gfp8prj01pcgh4k3k90aijrrq5b8nkqppxiq85kh7"
+   "commit": "73361de919cff8d773f347868850f6c694d942e7",
+   "sha256": "17imkanh7ay88s1ppzsdr7hf91rgqimx9v6p69srmqq5bpnwpnmy"
   },
   "stable": {
    "version": [
@@ -61668,26 +62038,26 @@
   "url": "https://git.sr.ht/~tarsius/l",
   "unstable": {
    "version": [
-    20210705,
-    2113
+    20211118,
+    1837
    ],
    "deps": [
     "seq"
    ],
-   "commit": "02b1afad2c5649221abada2d938ef3736e020a96",
-   "sha256": "0idzyx6pxn8s78my9b4qjxz6561w6bzjvbp3yv267piyjgvwnzpc"
+   "commit": "5e2c05478868e9e5fac909ac1bee535ffc5c6695",
+   "sha256": "11fmcqn9xpq8hqwf914yd715xrbfyymki95iq5y3r4x42gl30q7s"
   },
   "stable": {
    "version": [
     0,
-    2,
+    3,
     0
    ],
    "deps": [
     "seq"
    ],
-   "commit": "02b1afad2c5649221abada2d938ef3736e020a96",
-   "sha256": "0idzyx6pxn8s78my9b4qjxz6561w6bzjvbp3yv267piyjgvwnzpc"
+   "commit": "5e2c05478868e9e5fac909ac1bee535ffc5c6695",
+   "sha256": "11fmcqn9xpq8hqwf914yd715xrbfyymki95iq5y3r4x42gl30q7s"
   }
  },
  {
@@ -61698,16 +62068,16 @@
   "repo": "tecosaur/LaTeX-auto-activating-snippets",
   "unstable": {
    "version": [
-    20211103,
-    1633
+    20211208,
+    1617
    ],
    "deps": [
     "aas",
     "auctex",
     "yasnippet"
    ],
-   "commit": "397bde14a67e91cb95ca6b2d5a5d5025cae243c3",
-   "sha256": "1kjda08zpzwvmk17f4654zvxildg1dyfxm10n6py0mfc0ldp8rf3"
+   "commit": "fa32c7affc1d232e5ab63b7c7a8a29461a465536",
+   "sha256": "1y4lp5y55r43kjw47wjxdx0i8cd8id8sd7s8cac01c5n9hcsjyiz"
   },
   "stable": {
    "version": [
@@ -61823,16 +62193,30 @@
   "repo": "Deducteam/lambdapi",
   "unstable": {
    "version": [
-    20211116,
-    1414
+    20211207,
+    1509
+   ],
+   "deps": [
+    "eglot",
+    "highlight",
+    "math-symbol-lists"
+   ],
+   "commit": "19bd984c9695a7cc4f6b66916b89818082c7da27",
+   "sha256": "0cnv4wwimpz7b17vm2j6602ly2jf4drsa220wj60qqqympcq6nil"
+  },
+  "stable": {
+   "version": [
+    2,
+    0,
+    0
    ],
    "deps": [
     "eglot",
     "highlight",
     "math-symbol-lists"
    ],
-   "commit": "dcb95cd0605cad14fe491903b40a13fad61e382d",
-   "sha256": "0lw9rydgfr6rf5579ac1jvz0449m52swhp0ad16wlxlrfi0k4iiw"
+   "commit": "96b01a11aa31c38e194bd1910c61ccfd0cea7b61",
+   "sha256": "1pjvyhnq86pkl6lgany25ybyl5b3x3v4p1m7kk631zqrqzk481ms"
   }
  },
  {
@@ -62342,8 +62726,8 @@
     20211115,
     1551
    ],
-   "commit": "7d8f768db5077bdb9f595cbf841018fc600ecf77",
-   "sha256": "15f0q4dlybqb3k17sgaj9vp42mgvrh72mqzs5sh49lxi000bdhkh"
+   "commit": "0a698d240e49ebfbe57f7637ba104498478052ee",
+   "sha256": "004nbm2l9pwhzyd8y12hr24brni6m3k3hxj35kd93dn2zw1wvy0h"
   },
   "stable": {
    "version": [
@@ -62493,8 +62877,8 @@
   "repo": "leanprover/lean-mode",
   "unstable": {
    "version": [
-    20210502,
-    2049
+    20211203,
+    1418
    ],
    "deps": [
     "dash",
@@ -62502,8 +62886,8 @@
     "flycheck",
     "s"
    ],
-   "commit": "bf32bb97930ed67c5cbe0fe3d4a69dedcf68be44",
-   "sha256": "1bkv5zs38ijawvavbba0fdf2flb6fiwici3qi99ws8wvwhnbkws2"
+   "commit": "4a90f2ae6e33c162a3dd6f624fb080c2ed8e8494",
+   "sha256": "1zikz4qaxabs3j86gljpp2qbhbzxsjzz544k9vsngibd468dszlv"
   }
  },
  {
@@ -62760,11 +63144,11 @@
   "repo": "mtenders/emacs-leo",
   "unstable": {
    "version": [
-    20210922,
-    1138
+    20211119,
+    1636
    ],
-   "commit": "2ab30fe567412b4f4e69bc8014b8886d19b30f30",
-   "sha256": "1sjgp0yfa3ynrksrf33gc4qrhj7819lih2ax0sq83vd4gn2m6lcn"
+   "commit": "41db8f64a0b4d335196f8d1c319518a68ccb2e50",
+   "sha256": "1a4nfw617m6zr17xhhpa8ll2hjfl83gpf59d39an47rn7k8cpqay"
   }
  },
  {
@@ -63008,11 +63392,11 @@
   "repo": "merrickluo/liberime",
   "unstable": {
    "version": [
-    20210906,
-    626
+    20211203,
+    244
    ],
-   "commit": "8291e22cd0990a99cb2f88ca67a9065a157f39af",
-   "sha256": "1zr34fsh4l4apdm1jpd9c8863wji5f0g8nwvzgf7bfi6q58bcwzn"
+   "commit": "79b709debe036f98d74ac129934e59c4d08c1dd5",
+   "sha256": "1z1z8x65z4wp9gkbasljxc9bwigi2db95sy31m6k9120k74gkzsk"
   },
   "stable": {
    "version": [
@@ -63190,20 +63574,20 @@
   "repo": "ligolang/ligo",
   "unstable": {
    "version": [
-    20211116,
-    1344
+    20211119,
+    1813
    ],
-   "commit": "f5d298df9bb9acf9a1fc734c75a8f033f3eae3e5",
-   "sha256": "1lg6r78f7c4d4dzkpv3260p9j32f7rc51v4c5bajkblq379yn98r"
+   "commit": "a8bb654339da8d192dbbdb30dbcef86e8e2dd749",
+   "sha256": "08050ri7acngvhizrjgqgvjsyh4jwjn3gzknpji7qs161gzvi74r"
   },
   "stable": {
    "version": [
     0,
-    29,
+    31,
     0
    ],
-   "commit": "e1bcb971b9f964bc927c9d12fcf377a1878c459f",
-   "sha256": "1lg6r78f7c4d4dzkpv3260p9j32f7rc51v4c5bajkblq379yn98r"
+   "commit": "921934a9f54f9e10f7723bf5b61c1c79bbcc3a6e",
+   "sha256": "08050ri7acngvhizrjgqgvjsyh4jwjn3gzknpji7qs161gzvi74r"
   }
  },
  {
@@ -63250,8 +63634,8 @@
     20180219,
     1024
    ],
-   "commit": "7f51793fa6c037a90a90e47b433cc8a773a3b552",
-   "sha256": "0wd493d678587zc10y6hjlmjiacmj3xzw20zzfnvg2qr5nlqpl2g"
+   "commit": "7f5f8d232a647e3966f84aaf35aca7cfb1ea15ca",
+   "sha256": "1bbqlgl955y24jsggzc763dagsv7vnlzcav98f15j9gh54p6h8ws"
   },
   "stable": {
    "version": [
@@ -63355,14 +63739,14 @@
   "repo": "noctuid/link-hint.el",
   "unstable": {
    "version": [
-    20211008,
-    1652
+    20211128,
+    1600
    ],
    "deps": [
     "avy"
    ],
-   "commit": "83cd0489b16f013647d0507ef20905a0a91db433",
-   "sha256": "0kwaia6i0asr7yqcw1anzq6lf93357cc1fphkvp0llbmxizmkzb3"
+   "commit": "3be270f3a732dc4acae6a20ff449eef0c4f9a966",
+   "sha256": "14f0x319mqbk7vyh5nm9gijy59m45j342fl8fxgvkr7ajn4rg7aw"
   }
  },
  {
@@ -63740,20 +64124,20 @@
   "repo": "publicimageltd/lister",
   "unstable": {
    "version": [
-    20211106,
-    2151
+    20211124,
+    1844
    ],
-   "commit": "5ae4f8bcfad02eee81a18c15c921637bb4269c13",
-   "sha256": "04lxz74v8axkn0ahgaan0bxkxyxcfp7ny2kxx9sxm0yg77c26gzl"
+   "commit": "aaaf67a3ace078d317295fd500dae40ecf547392",
+   "sha256": "0lvsx60gwx8510nyjas4wskns65mbjwxbqpzjwh2v991pbi695kk"
   },
   "stable": {
    "version": [
     0,
     9,
-    3
+    4
    ],
-   "commit": "f9271f641f82cca9cdf8dd5737dc6dcf77aa5a1d",
-   "sha256": "1mmph8q1ff3bvsfggff74k7zadn020imyj63p1g1swp5a3bs6yyq"
+   "commit": "35d485f53907d75e5135b177a2e1ab4de2a20a48",
+   "sha256": "1w9kay6mx58g82gs90i0df10p2hxc3nv748nah53wbp2s2lwchgp"
   }
  },
  {
@@ -64028,20 +64412,20 @@
   "repo": "donkirkby/live-py-plugin",
   "unstable": {
    "version": [
-    20211112,
-    1745
+    20211204,
+    2255
    ],
-   "commit": "61e043c705dc8804ee7c6f78ed3f374b325d5917",
-   "sha256": "0hj36x4aall7phvd9mi58scmzr42xc0zzs8jh16nq3i2xd8p0rqd"
+   "commit": "82a34879d4a607fe9f09376d20222ff3c77ef809",
+   "sha256": "01zhzbsdgrsflqpg68qcairg5478n51khp3241x1ga7ga8dyfqz8"
   },
   "stable": {
    "version": [
     4,
     5,
-    0
+    1
    ],
-   "commit": "660dd193cdb51979145a548f495ab02917bc4613",
-   "sha256": "10qcggakqv4fm96mjz72x7rrvgphizdnd4n03gm3hhvc2yw3qma9"
+   "commit": "82a34879d4a607fe9f09376d20222ff3c77ef809",
+   "sha256": "01zhzbsdgrsflqpg68qcairg5478n51khp3241x1ga7ga8dyfqz8"
   }
  },
  {
@@ -64142,26 +64526,26 @@
   "url": "https://git.sr.ht/~tarsius/llama",
   "unstable": {
    "version": [
-    20210525,
-    2005
+    20211118,
+    1847
    ],
    "deps": [
     "seq"
    ],
-   "commit": "2694b2aeb1c87bb2ad8b0f611ca438c30f5eaeae",
-   "sha256": "1xihy4xnvxvwwzy50z7msm9fkplsyy2kvi6zzlpgs8bad6aamg5f"
+   "commit": "22278a95474ccd665f84c16aa8760534ced9b150",
+   "sha256": "1f5hnimnz9vjwnqk0m07g6rrhnxbv84mdybxiblzqgbgrh7x0cx3"
   },
   "stable": {
    "version": [
     0,
-    1,
-    1
+    2,
+    0
    ],
    "deps": [
     "seq"
    ],
-   "commit": "2694b2aeb1c87bb2ad8b0f611ca438c30f5eaeae",
-   "sha256": "1xihy4xnvxvwwzy50z7msm9fkplsyy2kvi6zzlpgs8bad6aamg5f"
+   "commit": "22278a95474ccd665f84c16aa8760534ced9b150",
+   "sha256": "1f5hnimnz9vjwnqk0m07g6rrhnxbv84mdybxiblzqgbgrh7x0cx3"
   }
  },
  {
@@ -64638,11 +65022,11 @@
   "repo": "0x60df/loophole",
   "unstable": {
    "version": [
-    20210825,
-    1323
+    20211212,
+    1302
    ],
-   "commit": "71f0b40cdcffdbae84214d3d82c0a8aae154a69f",
-   "sha256": "19s5617vx5xm932anyplwcjld0p589lplkvsi4p2g69ximjlmih1"
+   "commit": "384ad0ac69483595332cc011f30b7d74065cdef9",
+   "sha256": "0xrqhmry5y61sbbda83jhmbvvz0z9bbv3wbv9068sdihqfik3fq2"
   },
   "stable": {
    "version": [
@@ -64662,15 +65046,15 @@
   "repo": "okamsn/loopy",
   "unstable": {
    "version": [
-    20211101,
-    2351
+    20211124,
+    307
    ],
    "deps": [
     "map",
     "seq"
    ],
-   "commit": "d95cf6dea7addd020d1ccacc25527f181b3eaa63",
-   "sha256": "1jxmnfyxak6c11glsx0j912bhv4y4ly0zbyjl37dfn78vb3yr7y5"
+   "commit": "6a078102467527aff5bf7d6341cc279b53657984",
+   "sha256": "0ksdgml2nz0jmrkjv939mm7kk8b0xf6d2b2h53y0crlxhi4s8823"
   },
   "stable": {
    "version": [
@@ -64701,8 +65085,8 @@
     "dash",
     "loopy"
    ],
-   "commit": "d95cf6dea7addd020d1ccacc25527f181b3eaa63",
-   "sha256": "1jxmnfyxak6c11glsx0j912bhv4y4ly0zbyjl37dfn78vb3yr7y5"
+   "commit": "6a078102467527aff5bf7d6341cc279b53657984",
+   "sha256": "0ksdgml2nz0jmrkjv939mm7kk8b0xf6d2b2h53y0crlxhi4s8823"
   },
   "stable": {
    "version": [
@@ -64782,8 +65166,8 @@
   "repo": "emacs-lsp/lsp-dart",
   "unstable": {
    "version": [
-    20211113,
-    1440
+    20211119,
+    1320
    ],
    "deps": [
     "dap-mode",
@@ -64793,8 +65177,8 @@
     "lsp-mode",
     "lsp-treemacs"
    ],
-   "commit": "9c3ba0a27e8ad3b7fa16c553d8a1815db82b8638",
-   "sha256": "13f6a9fkhasdzh4y5rix8j151csj1x6y2qlld6lvbxgpln19zwz2"
+   "commit": "7afe141fe2a60265049a846abd254b5ff4169c10",
+   "sha256": "0wrcrqvlyp6gpanp5r67qyrn3q8n2pk1w8qwrkxh6kr466cd2lxp"
   },
   "stable": {
    "version": [
@@ -64822,15 +65206,18 @@
   "repo": "emacs-lsp/lsp-docker",
   "unstable": {
    "version": [
-    20210529,
-    621
+    20211203,
+    1659
    ],
    "deps": [
     "dash",
-    "lsp-mode"
+    "f",
+    "ht",
+    "lsp-mode",
+    "yaml"
    ],
-   "commit": "7039afe9507467e0b1c1fba485f26a7892463bc5",
-   "sha256": "1f0k76ic6cv6kdszy38jfi5wbv1i9qqp3gnn63j4p0f0xj0ppsgw"
+   "commit": "c2da2a65cb11e92d23c480dcc12387aa53997181",
+   "sha256": "067bc37v14mvrmayah95qkcmi8gh3fdhdh8493wabm47kgszsfh4"
   }
  },
  {
@@ -64873,8 +65260,8 @@
   "repo": "emacs-grammarly/lsp-grammarly",
   "unstable": {
    "version": [
-    20210715,
-    918
+    20211120,
+    1840
    ],
    "deps": [
     "grammarly",
@@ -64883,8 +65270,8 @@
     "request",
     "s"
    ],
-   "commit": "0a8d9468aeb414bc698566534389031837ba354d",
-   "sha256": "17vgbqyij0q0yms5sxk9f66cxzczfpxf8wykmsgpc7xac1igf7pm"
+   "commit": "02c1d83c6e7ef703ce7426f8eff2c3fc7733cf72",
+   "sha256": "06qrd42hnz0cg28wkxcwb2mi0xpsgdy0yb8x9x7k23hzwdv6wrr6"
   },
   "stable": {
    "version": [
@@ -64911,15 +65298,15 @@
   "repo": "emacs-lsp/lsp-haskell",
   "unstable": {
    "version": [
-    20210813,
-    1040
+    20211213,
+    1950
    ],
    "deps": [
     "haskell-mode",
     "lsp-mode"
    ],
-   "commit": "4e62cf897dd9e9fcef25c6e8e483490a07a5d439",
-   "sha256": "027j70422h4r82hnqkamxl84n0844hlf0fvh3h3ah7f751hynylb"
+   "commit": "401724f9b934894c5f010d6db47bb2aa3ef6b36a",
+   "sha256": "0iga29q2yw16bx6fsrbdkvwyizz2c6ymi1783y3masyw8bg38jwq"
   }
  },
  {
@@ -64981,8 +65368,8 @@
   "repo": "emacs-lsp/lsp-java",
   "unstable": {
    "version": [
-    20211114,
-    1305
+    20211124,
+    605
    ],
    "deps": [
     "dap-mode",
@@ -64994,8 +65381,8 @@
     "request",
     "treemacs"
    ],
-   "commit": "3246272b43659ce3020e6f47cd3eea17432b389a",
-   "sha256": "0kz2bhnijar7dkyqydfq66xp8isf90paaqy0kwzjrb9ss0bglsba"
+   "commit": "ce03cb6574566e334c3ce5735458cc3ec1989486",
+   "sha256": "0z18b7xn9rgrs8w485bzw93g1nimfp0616d9xlrj0wc4k1i8vyd4"
   },
   "stable": {
    "version": [
@@ -65214,8 +65601,8 @@
   "repo": "emacs-lsp/lsp-mode",
   "unstable": {
    "version": [
-    20211115,
-    807
+    20211212,
+    1601
    ],
    "deps": [
     "dash",
@@ -65225,8 +65612,8 @@
     "markdown-mode",
     "spinner"
    ],
-   "commit": "a7effcc79114e91e74f06ef3a7e078bafba05c2a",
-   "sha256": "09kjprvbdcv6h27fi24bfg0yl37djmfkic3a3ymfzl2r52gfkchv"
+   "commit": "41173dca4d6a7fa381ba6dc154e7149cb113f7e1",
+   "sha256": "0sc6a0cw2497gq6d8dybi0mwma5cslkxnwhiwrbgl3jymmflajwb"
   },
   "stable": {
    "version": [
@@ -65393,14 +65780,14 @@
   "repo": "emacs-lsp/lsp-python-ms",
   "unstable": {
    "version": [
-    20210513,
-    1019
+    20211204,
+    1209
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "4061bc25aaddacb2fb848df08dd8bbbc12975814",
-   "sha256": "1ds19l8gvilc6bkqh7s1b5f1v4p79xkdjrq3kln0zawqsszr2crs"
+   "commit": "abf4d89ecf2fa0871130df5fce6065b7cf0a2721",
+   "sha256": "1cad09y36bf97mhgg7xncf4m856ys8n7zlbsgag5h5rja1ha71nl"
   },
   "stable": {
    "version": [
@@ -65494,14 +65881,14 @@
   "repo": "merrickluo/lsp-tailwindcss",
   "unstable": {
    "version": [
-    20211117,
-    321
+    20211211,
+    248
    ],
    "deps": [
     "lsp-mode"
    ],
-   "commit": "bee8bf1f6707362ace02563b4dfc481e7452f936",
-   "sha256": "0rvwp8859p0byypy83mw42akjvv54ifx0gd3f4vb9vvp879rmsfi"
+   "commit": "629ece1acc3280ee506660170cdee77446ba8c18",
+   "sha256": "0wlh68qxk811p8vs6vvjlxz48gb0vx00r4a0i5m74f6n5h41pzvh"
   },
   "stable": {
    "version": [
@@ -65523,8 +65910,8 @@
   "repo": "emacs-lsp/lsp-treemacs",
   "unstable": {
    "version": [
-    20210923,
-    2112
+    20211129,
+    955
    ],
    "deps": [
     "dash",
@@ -65533,8 +65920,8 @@
     "lsp-mode",
     "treemacs"
    ],
-   "commit": "7bf3d52bccb4a5fdce4fdde9ff61bc75161b97af",
-   "sha256": "0vbwam492y858cq1mrka9bn2i695c6rxvap8z92diklmaawdkg4p"
+   "commit": "c40a381730251039d33400cc14539c1e0729385f",
+   "sha256": "1nx5ffgy3yzyynz3ll82flxwci4zrmg608iyk8bqzgfpmdlb4ass"
   },
   "stable": {
    "version": [
@@ -65560,16 +65947,16 @@
   "repo": "emacs-lsp/lsp-ui",
   "unstable": {
    "version": [
-    20211101,
-    131
+    20211206,
+    1840
    ],
    "deps": [
     "dash",
     "lsp-mode",
     "markdown-mode"
    ],
-   "commit": "dd4c181a22d19a28236c442cf6c9cd4bbd6d85f8",
-   "sha256": "1awvnv29ca3whfg48icwqhgdfijrags61cmq9dn6mn0w849b6k4m"
+   "commit": "98d0ad00b8bf1d3a7cea490002169f2286d7208c",
+   "sha256": "1s9h593f0hjb8h4ciimvr78k19cp18h3hdwsadmjafshfdq54szw"
   },
   "stable": {
    "version": [
@@ -66080,8 +66467,8 @@
   "repo": "magit/magit",
   "unstable": {
    "version": [
-    20211115,
-    1701
+    20211207,
+    2244
    ],
    "deps": [
     "dash",
@@ -66090,8 +66477,8 @@
     "transient",
     "with-editor"
    ],
-   "commit": "9413847c1a085899d8de6f8d978bd7265f65e5d8",
-   "sha256": "0b39813iyxgq0ai6hz4hpf9f4wix1lhcp6z5p1cm6y6hd8dyg486"
+   "commit": "1eb183e7672bf25fa77ea06d97b3d9c502a698ae",
+   "sha256": "08ci7w0pzbzs02fd8zklvhixkj8ab9vvc41w39mcik8qhr1fz5j4"
   },
   "stable": {
    "version": [
@@ -66176,8 +66563,8 @@
    "deps": [
     "magit"
    ],
-   "commit": "3debd2bdf20b78e108d309be606db01bb2cb4810",
-   "sha256": "0pmggb980an5nxjq5jkxfvib9akqyd4k9j80ljpbayhiypda93a2"
+   "commit": "5b60f0c88c33b8dbf73a41b388f55bf8e73e1d8d",
+   "sha256": "03i4rjwdqw2hf6nl5vwgh5zm235svrrnrj0wq82yk25f58dgskb6"
   }
  },
  {
@@ -66456,8 +66843,8 @@
     "libgit",
     "magit"
    ],
-   "commit": "9413847c1a085899d8de6f8d978bd7265f65e5d8",
-   "sha256": "0b39813iyxgq0ai6hz4hpf9f4wix1lhcp6z5p1cm6y6hd8dyg486"
+   "commit": "1eb183e7672bf25fa77ea06d97b3d9c502a698ae",
+   "sha256": "08ci7w0pzbzs02fd8zklvhixkj8ab9vvc41w39mcik8qhr1fz5j4"
   },
   "stable": {
    "version": [
@@ -66624,8 +67011,8 @@
    "deps": [
     "dash"
    ],
-   "commit": "9413847c1a085899d8de6f8d978bd7265f65e5d8",
-   "sha256": "0b39813iyxgq0ai6hz4hpf9f4wix1lhcp6z5p1cm6y6hd8dyg486"
+   "commit": "1eb183e7672bf25fa77ea06d97b3d9c502a698ae",
+   "sha256": "08ci7w0pzbzs02fd8zklvhixkj8ab9vvc41w39mcik8qhr1fz5j4"
   },
   "stable": {
    "version": [
@@ -67072,8 +67459,8 @@
    "deps": [
     "cl-lib"
    ],
-   "commit": "a61781e69d3b451551e269446e1c5f624ab81137",
-   "sha256": "1rr7vpm3xxzcaam3m8xni3ajy8ycyljix07n2jzczayri9sd8csy"
+   "commit": "c0b6bd5956744dd64052e54574e35d39f7c9d75b",
+   "sha256": "19hm9riqinbw1ria63290c5d6hszkbjrzvgsjr74pw5d7gzw4vwv"
   },
   "stable": {
    "version": [
@@ -67420,11 +67807,11 @@
   "repo": "minad/marginalia",
   "unstable": {
    "version": [
-    20211114,
-    1401
+    20211203,
+    2231
    ],
-   "commit": "8b24ffc91222f8a61f8f2aa3c3662198c7d74de9",
-   "sha256": "0kpa0h53jk01x786s8lw7ibcrb78h9ndah9i7lvr6jx0r6v30vkq"
+   "commit": "2fb2787bc302a5533e09bc558c76eb914e98543b",
+   "sha256": "1ypr2chn5fi2ycpz4dawczcjmyll5a71mfjsx8fqbms73izd5392"
   },
   "stable": {
    "version": [
@@ -67940,11 +68327,11 @@
   "url": "https://git.code.sf.net/p/matlab-emacs/src",
   "unstable": {
    "version": [
-    20210726,
-    858
+    20211122,
+    833
    ],
-   "commit": "c25894b91225ccdf0044f04020adf97cb41e73e4",
-   "sha256": "0kns1f5kg4z5wqi26mql4ja2lm1rm8zji4sjiqqlbrnk800iic55"
+   "commit": "c945bf50251150e0d4ad7ee751c7e9615cb4b3e8",
+   "sha256": "0f0h73n5zg766aqhd8w0s2lbg71av4nyswzbcxprah7l57yr6kzi"
   }
  },
  {
@@ -68055,20 +68442,20 @@
   "repo": "dochang/mb-url",
   "unstable": {
    "version": [
-    20211029,
-    2220
+    20211205,
+    1100
    ],
-   "commit": "670d31edc0938c49c77d80543c6b2a955edadf85",
-   "sha256": "0sdiwgkhqnxq3pva9cyvcjyc69qvpxc91785p1z3rgvb9z3bshjj"
+   "commit": "ca0a3878763180fe2d775feae88b87d21dd8dcb8",
+   "sha256": "101fynqcw8hnhrgkxb3wdh9a2iqp35q1rh7hijnzz5xpxds2sj96"
   },
   "stable": {
    "version": [
     0,
-    8,
+    9,
     0
    ],
-   "commit": "670d31edc0938c49c77d80543c6b2a955edadf85",
-   "sha256": "0sdiwgkhqnxq3pva9cyvcjyc69qvpxc91785p1z3rgvb9z3bshjj"
+   "commit": "ca0a3878763180fe2d775feae88b87d21dd8dcb8",
+   "sha256": "101fynqcw8hnhrgkxb3wdh9a2iqp35q1rh7hijnzz5xpxds2sj96"
   }
  },
  {
@@ -68456,16 +68843,25 @@
   "repo": "meow-edit/meow",
   "unstable": {
    "version": [
-    20211116,
-    1952
+    20211213,
+    1752
+   ],
+   "commit": "c111e74296579614847bff9df8f7a1c7e1d6ff45",
+   "sha256": "0pfx5sr6vdghappgl37a3wcd34fnds6kc75qkwwqagvxyfkiaa90"
+  },
+  "stable": {
+   "version": [
+    1,
+    1,
+    1
    ],
    "deps": [
     "cl-lib",
     "dash",
     "s"
    ],
-   "commit": "f1c81c35141e6c669a36b5ebcc04ead8cf7d7364",
-   "sha256": "1353qfvind0xwdl7ig2hb36236bdfv242kij5lwy7z6kqg1d6z0s"
+   "commit": "94fe6e5cf8450a243917e6f6ff9f9c358d19ddb1",
+   "sha256": "1jwzhwvv422i5y1mxjgb305szblqgvdzad1rzrn52xmlx0x5j9lc"
   }
  },
  {
@@ -68479,19 +68875,18 @@
     20210720,
     950
    ],
-   "commit": "a5c440c12758a7dd7d698b843e05aa4eb6d4e721",
-   "sha256": "1czqd9g6f346a96klrsb31xscy23r2ix6xfx9ks6h0fkxyw7prqa"
+   "commit": "d136be61cdd2d25c2b69abb88c005f497775c431",
+   "sha256": "0kqbmysshhr4h6gmgi4brd5kya2p5cqkv672v1hiyxzlnnq9f927"
   },
   "stable": {
    "version": [
     4,
-    3,
-    1,
+    4,
     -4,
-    412
+    413
    ],
-   "commit": "ba8ec63cf40b8999238c4639d111ca3bdb1e34cf",
-   "sha256": "1icd08irnj927d9hs5bzqjfdgc789829xy7032hs946ng44xkcg3"
+   "commit": "7607238326a9352cbee9ecf612669e28ae9fa36e",
+   "sha256": "0wijg1vh2q6yr46vkv34vvksligd0ajl4hv7m6qbz3ywqr8akg23"
   }
  },
  {
@@ -68509,23 +68904,22 @@
     "auto-complete",
     "merlin"
    ],
-   "commit": "a5c440c12758a7dd7d698b843e05aa4eb6d4e721",
-   "sha256": "1czqd9g6f346a96klrsb31xscy23r2ix6xfx9ks6h0fkxyw7prqa"
+   "commit": "d136be61cdd2d25c2b69abb88c005f497775c431",
+   "sha256": "0kqbmysshhr4h6gmgi4brd5kya2p5cqkv672v1hiyxzlnnq9f927"
   },
   "stable": {
    "version": [
     4,
-    3,
-    1,
+    4,
     -4,
-    412
+    413
    ],
    "deps": [
     "auto-complete",
     "merlin"
    ],
-   "commit": "ba8ec63cf40b8999238c4639d111ca3bdb1e34cf",
-   "sha256": "1icd08irnj927d9hs5bzqjfdgc789829xy7032hs946ng44xkcg3"
+   "commit": "7607238326a9352cbee9ecf612669e28ae9fa36e",
+   "sha256": "0wijg1vh2q6yr46vkv34vvksligd0ajl4hv7m6qbz3ywqr8akg23"
   }
  },
  {
@@ -68543,23 +68937,22 @@
     "company",
     "merlin"
    ],
-   "commit": "a5c440c12758a7dd7d698b843e05aa4eb6d4e721",
-   "sha256": "1czqd9g6f346a96klrsb31xscy23r2ix6xfx9ks6h0fkxyw7prqa"
+   "commit": "d136be61cdd2d25c2b69abb88c005f497775c431",
+   "sha256": "0kqbmysshhr4h6gmgi4brd5kya2p5cqkv672v1hiyxzlnnq9f927"
   },
   "stable": {
    "version": [
     4,
-    3,
-    1,
+    4,
     -4,
-    412
+    413
    ],
    "deps": [
     "company",
     "merlin"
    ],
-   "commit": "ba8ec63cf40b8999238c4639d111ca3bdb1e34cf",
-   "sha256": "1icd08irnj927d9hs5bzqjfdgc789829xy7032hs946ng44xkcg3"
+   "commit": "7607238326a9352cbee9ecf612669e28ae9fa36e",
+   "sha256": "0wijg1vh2q6yr46vkv34vvksligd0ajl4hv7m6qbz3ywqr8akg23"
   }
  },
  {
@@ -68606,23 +68999,22 @@
     "iedit",
     "merlin"
    ],
-   "commit": "a5c440c12758a7dd7d698b843e05aa4eb6d4e721",
-   "sha256": "1czqd9g6f346a96klrsb31xscy23r2ix6xfx9ks6h0fkxyw7prqa"
+   "commit": "d136be61cdd2d25c2b69abb88c005f497775c431",
+   "sha256": "0kqbmysshhr4h6gmgi4brd5kya2p5cqkv672v1hiyxzlnnq9f927"
   },
   "stable": {
    "version": [
     4,
-    3,
-    1,
+    4,
     -4,
-    412
+    413
    ],
    "deps": [
     "iedit",
     "merlin"
    ],
-   "commit": "ba8ec63cf40b8999238c4639d111ca3bdb1e34cf",
-   "sha256": "1icd08irnj927d9hs5bzqjfdgc789829xy7032hs946ng44xkcg3"
+   "commit": "7607238326a9352cbee9ecf612669e28ae9fa36e",
+   "sha256": "0wijg1vh2q6yr46vkv34vvksligd0ajl4hv7m6qbz3ywqr8akg23"
   }
  },
  {
@@ -69198,14 +69590,14 @@
   "repo": "kiennq/emacs-mini-modeline",
   "unstable": {
    "version": [
-    20210725,
-    900
+    20211130,
+    604
    ],
    "deps": [
     "dash"
    ],
-   "commit": "fb2fc8661b4a32a40b3f5777ae1d69654c263ff0",
-   "sha256": "1bv06p6m5xygqcpwxngds2hral58h23jvp3di5dq3ac2hkf2m92l"
+   "commit": "434b98b22c69c8b3b08e9c267c935591c49a8301",
+   "sha256": "063bpi3gxzi6kkc3mb9h4m8lvbsvfw47z559960h912h2l3z6vhq"
   },
   "stable": {
    "version": [
@@ -70028,20 +70420,20 @@
   "repo": "protesilaos/modus-themes",
   "unstable": {
    "version": [
-    20211114,
-    1209
+    20211213,
+    700
    ],
-   "commit": "a70c6d0f752859c6de2c175dd9b71a66bf28ed97",
-   "sha256": "05l919641qn2dm6b328i6ymb2xgc42jbvpdvnwypi9brydnz7zm9"
+   "commit": "8f9491d0e2b915dda99224bdbf5b0c063ea537a5",
+   "sha256": "05s7y80020ff8qf9vlql1i1y21g0il80lwijd49n77byawa27cby"
   },
   "stable": {
    "version": [
     1,
-    6,
+    7,
     0
    ],
-   "commit": "8dbfe43fe52a9420a23d29e8ca631c2b7f52d966",
-   "sha256": "12f0bki57cncfzyi8cv8fkvxhh8khlxd890x0glb5ny9w1hd6s11"
+   "commit": "6f69627703caffbd62ba1a89d4a337fc29773ab4",
+   "sha256": "05s7y80020ff8qf9vlql1i1y21g0il80lwijd49n77byawa27cby"
   }
  },
  {
@@ -70375,11 +70767,11 @@
   "repo": "tarsius/moody",
   "unstable": {
    "version": [
-    20211031,
-    1815
+    20211130,
+    1719
    ],
-   "commit": "5ce7cc070ff5a295b1cc4b15b94698447f9596ae",
-   "sha256": "0yrxdxd3iv6vmym8fwp1d1r3bliid5my3a9720pdbhd887i6m4bx"
+   "commit": "60d49cb8ead8fc24b7034fff4de3c4ad959398b6",
+   "sha256": "0lqqxxhrfr9bad6i9xas0b8fcgqwfgvgh6zfla63j5mm4x4azj7x"
   },
   "stable": {
    "version": [
@@ -70663,8 +71055,8 @@
     20210306,
     1053
    ],
-   "commit": "3dc692847d53e209ef9010791c3ab5ac06fd979b",
-   "sha256": "0pcf2vnq38jdnsg8vz92pqsx7qd0r9x8jv5kfqk9br153vsh6xgd"
+   "commit": "01306d0c67c5faa203994bab281c515b9d1248fa",
+   "sha256": "109p65vwii1ppvpnvmgpzn0k0iraby23da1xsb2frad6lc3clz65"
   },
   "stable": {
    "version": [
@@ -70881,16 +71273,16 @@
   "repo": "kljohann/mpv.el",
   "unstable": {
    "version": [
-    20210207,
-    1140
+    20211121,
+    1801
    ],
    "deps": [
     "cl-lib",
     "json",
     "org"
    ],
-   "commit": "2d24187f7bdb0495c90d5109a730742e735636ba",
-   "sha256": "1siwl0pjmklpzywn5jmq7jgnsynpa6qafm6mqg9h8gxxbswd5xbi"
+   "commit": "b026ae5bb6139b8bbbc572d24974dcd295c1465c",
+   "sha256": "1knipmddx8nrd762v7lsnjjqacfrj53ya28yji8k2929k9s3rq83"
   },
   "stable": {
    "version": [
@@ -71350,8 +71742,8 @@
    "deps": [
     "dash"
    ],
-   "commit": "360e44b200d07da379c906856d37613d0f06a9ae",
-   "sha256": "0z2b26qr712j4745wlnqisc53fhh2gh088j6024b00n006fr1lzq"
+   "commit": "5e1e63b6ae4bd94aab5902b14b2bf4238e502cfb",
+   "sha256": "0f27qvf8qh5arzzk9a847qdi87ybkzjl6pgmb9sagrzhybpx8diy"
   }
  },
  {
@@ -72872,8 +73264,8 @@
     20170612,
     437
    ],
-   "commit": "a2bab83c2eb233d57d76b236e7c141c2ccc97005",
-   "sha256": "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs"
+   "commit": "6e9d96f58eddd69f62f7fd443d9b9753e16e0e96",
+   "sha256": "188m43zv5hidm5xfykfxhrk0nl9i6kcgpqqqnshhiv82c55g46w4"
   },
   "stable": {
    "version": [
@@ -73038,11 +73430,20 @@
   "repo": "m-cat/nimbus-theme",
   "unstable": {
    "version": [
-    20211115,
-    430
+    20211209,
+    1529
    ],
-   "commit": "fe8ebe24cecb0181f49446de0a0faf3cd7630747",
-   "sha256": "1c7y0b880572sxjqqsqf521yhb1jfhl4i7sm4nfysa85bnn6k5n2"
+   "commit": "5ae0bee99d005e62c3b18e793a81405a1a3ca0e5",
+   "sha256": "15fhim7cj7inc2kyl0xgv18a8p4lygnpkxgbq34nl567y9374vs4"
+  },
+  "stable": {
+   "version": [
+    1,
+    1,
+    0
+   ],
+   "commit": "5ae0bee99d005e62c3b18e793a81405a1a3ca0e5",
+   "sha256": "15fhim7cj7inc2kyl0xgv18a8p4lygnpkxgbq34nl567y9374vs4"
   }
  },
  {
@@ -73155,14 +73556,14 @@
   "repo": "NixOS/nix-mode",
   "unstable": {
    "version": [
-    20211109,
-    1805
+    20211120,
+    1627
    ],
    "deps": [
     "magit-section"
    ],
-   "commit": "e7bf2e4cc49e7a12265714dfaf5e286bfbc1e87f",
-   "sha256": "0ym70i1jndm12av9jzq5qq3vr2d5cjh5q95vq22whiah0svbbpxy"
+   "commit": "3d04d92d9c3896d07bc9fed7e4f40032025fbe7b",
+   "sha256": "0rzgnr18gk37y8i4d7rgwjhrxwby0zpkam8k7rf4jq35jjhqr5a4"
   },
   "stable": {
    "version": [
@@ -73771,20 +74172,20 @@
   "url": "https://git.notmuchmail.org/git/notmuch",
   "unstable": {
    "version": [
-    20211030,
-    1819
+    20211212,
+    1414
    ],
-   "commit": "fc3c79dd37d4bae938a5d0a1d7773bea48dd09b4",
-   "sha256": "02bv1fvbww9gk3phpd7ifzxfzjxm17k7ssd3ddizr6yvmkpsz7h0"
+   "commit": "ed03babd053d679a85ea3baa1632d8ae1dff31b6",
+   "sha256": "1hchhwy2kv90014f52zpf2a8qycknplhb9lrpf71aci8f58ndnv0"
   },
   "stable": {
    "version": [
     0,
     34,
-    1
+    2
    ],
-   "commit": "6858c365956ba26b42721093707e5a57ca8a6b93",
-   "sha256": "1bzcnly2xhyfw35k277i8qmw2gdy35jvkriwcyv9y3g7aicbqcc7"
+   "commit": "a254a15861d3510adbe2897fed100a3c77642165",
+   "sha256": "1sn6qb2d7rr7jnlr3vyfcvlzzi7b1l1p0mi2s7nghv8x59b5dqp4"
   }
  },
  {
@@ -73944,15 +74345,15 @@
   "url": "https://depp.brause.cc/nov.el.git",
   "unstable": {
    "version": [
-    20210323,
-    1105
+    20211130,
+    1805
    ],
    "deps": [
     "dash",
     "esxml"
    ],
-   "commit": "b3c7cc28e95fe25ce7b443e5f49e2e45360944a3",
-   "sha256": "0va9xjrq30cv5kb59a4rq5mcm83ggnv774r8spmskff3hj8012wf"
+   "commit": "436f5ec473b69a9d3b6cb6405508e3564f61cd4b",
+   "sha256": "020akj3vi0m63kmda4i6rm9ax7s6di28v5s2cmjkggb4al0n0n6m"
   },
   "stable": {
    "version": [
@@ -74547,8 +74948,8 @@
    "deps": [
     "axiom-environment"
    ],
-   "commit": "3266c5b2e4865337da86043b53a4e6609dbc8308",
-   "sha256": "11k53vvw5df66f54mh3zkghspmi7zsgls3mlkfvl19hz2z1pyhwq"
+   "commit": "e60de5ed107ffeb530a56d24d04f38988124d12b",
+   "sha256": "0p8kbxfcrx1ib8g17g6h2i2ygy35qq992n3s2xa6ysij7wrfn4hd"
   }
  },
  {
@@ -75707,17 +76108,17 @@
     20210923,
     1348
    ],
-   "commit": "f2f50d6fb0371b85bde2eda15c440b68d46059ac",
-   "sha256": "01ac3k1kq6hy2n332775jlh2rg1pmqs8gvkx4qskxmpga87753m7"
+   "commit": "51cd55ad0aa6c6ccbea7fe3041de0931c0292be5",
+   "sha256": "1kga1izbp301rv8y2kdcwc2jrvy4bplaglsbspqm64yz6jcj570l"
   },
   "stable": {
    "version": [
     0,
-    19,
-    0
+    20,
+    1
    ],
-   "commit": "ba67af28ddca8718ef8816b2b0dc1e5b2f5e9591",
-   "sha256": "0dp4pkznz9yvqx9gxwbid1z2b8ajkr8i27zay9ghx69624hz3i4z"
+   "commit": "74668925ca977e252acb084bd139b3077cf95b58",
+   "sha256": "1q78gxsz763d6vbi1lyfmn7733l10qhq80bchdli9zw7sggs7nq1"
   }
  },
  {
@@ -75901,26 +76302,26 @@
   "repo": "oer/oer-reveal",
   "unstable": {
    "version": [
-    20211029,
-    611
+    20211213,
+    1012
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "44eb766df39b722a26cabebec44bb359bcca1e49",
-   "sha256": "12mdp7pxb4nga1pp17d3kawb55kjdnjc1fg8lavyq4ydznyzn225"
+   "commit": "2ac8f82f3816995a50e47f0f9247b806346d30f6",
+   "sha256": "1kfrnmsjgnn6q5k297q7ka7zqkni33dxsc6dnv5raizlhcxif0qv"
   },
   "stable": {
    "version": [
     4,
-    0,
-    0
+    1,
+    1
    ],
    "deps": [
     "org-re-reveal"
    ],
-   "commit": "c26ddb39288b60ba96f970fa20ef810aa4d0f418",
-   "sha256": "12mdp7pxb4nga1pp17d3kawb55kjdnjc1fg8lavyq4ydznyzn225"
+   "commit": "ef77f31fb99babe7918356897ecc18651a9d30bc",
+   "sha256": "1kfrnmsjgnn6q5k297q7ka7zqkni33dxsc6dnv5raizlhcxif0qv"
   }
  },
  {
@@ -76648,11 +77049,11 @@
   "repo": "oantolin/orderless",
   "unstable": {
    "version": [
-    20210912,
-    1932
+    20211130,
+    102
    ],
-   "commit": "62f71c34baca0b7d0adeab4a1c07d85ffcee80d9",
-   "sha256": "1spab90q4illpsajw0hcfz8s76c1gp8qpmc6zmv14slg1i9m5yri"
+   "commit": "1ccf74ffdbb0dd34caa63022e92f947c09c49c86",
+   "sha256": "16vhmm9an2n5wlj7bvz2rx2qassk5b3d6la90kfm7lnqwch4a7mn"
   },
   "stable": {
    "version": [
@@ -76844,14 +77245,14 @@
   "repo": "awth13/org-appear",
   "unstable": {
    "version": [
-    20210822,
-    39
+    20211202,
+    604
    ],
    "deps": [
     "org"
    ],
-   "commit": "a1aa8496f2fd61305e43e03e6eeee2ff92aa9e24",
-   "sha256": "0sfz8rpvc9hidjj81wlc48vi7ii90mssgvfnp2z215phv67npbzp"
+   "commit": "a4d10fc346ba14f487eb7aa95761b9295089ba55",
+   "sha256": "1jl767qqmnhwbjnivc332yvpjifs95qnf08n088fazg6vax70zhq"
   },
   "stable": {
    "version": [
@@ -76924,14 +77325,14 @@
   "stable": {
    "version": [
     0,
-    2,
-    13
+    3,
+    0
    ],
    "deps": [
     "async"
    ],
-   "commit": "ea2ca74a68eb44d935b7240ffc8f19c8a4db334a",
-   "sha256": "0wskvkwrw0vgknq895by10bcwglaikgkrs1z54f6wyfyksa801ja"
+   "commit": "ad3c332f062b5830e88b2ab13287a096ae434657",
+   "sha256": "05yrw59zrzxj1p8n65sk6mvy7jzik812mp9i2nsimwhlhn3si1pj"
   }
  },
  {
@@ -77480,15 +77881,15 @@
   "repo": "vapniks/org-dotemacs",
   "unstable": {
    "version": [
-    20190903,
-    2024
+    20211126,
+    2038
    ],
    "deps": [
     "cl-lib",
     "org"
    ],
-   "commit": "ee59739c2d59151fe7d7d3034e87c7691120a5be",
-   "sha256": "17xrjhfjahryawrmkd2p0yi7pfxfvgdfhh4n18jdmfkrr6gllavg"
+   "commit": "598759f4a139f94da62836e8f8064da6377536b2",
+   "sha256": "1vikwxwmbkzpg000jv59h3ia3aap3ac3pqc6wia2ni5nw4gfbxcp"
   }
  },
  {
@@ -77970,8 +78371,8 @@
   "repo": "Trevoke/org-gtd.el",
   "unstable": {
    "version": [
-    20211006,
-    1657
+    20211124,
+    2203
    ],
    "deps": [
     "f",
@@ -77979,8 +78380,8 @@
     "org-agenda-property",
     "org-edna"
    ],
-   "commit": "42e75bad36b8a9cadf7ba3cee94c66801e195120",
-   "sha256": "1j2phw903bg7wpymqyrz6yv262s5yjn9dpw6bs9yvy6d9cd3ip64"
+   "commit": "ca5b19dcfd3af5c5222654b2c12ce7bd6f3667c7",
+   "sha256": "1laxw7ixcvdh4cgx5z669wvmwn5x9qqq0gyvl3rj79nrdv755wwr"
   },
   "stable": {
    "version": [
@@ -78327,14 +78728,14 @@
   "repo": "stardiviner/org-link-beautify",
   "unstable": {
    "version": [
-    20211022,
-    114
+    20211209,
+    448
    ],
    "deps": [
     "all-the-icons"
    ],
-   "commit": "7a9a5910cf7037c044af9b3be1b8c2f42488b1c1",
-   "sha256": "0db4p9kjz6fh0ignprkb25bshwa349ns4xzc98v21b9zcbs46wz5"
+   "commit": "29a44cff345928d8ded7ff814edcbf5a3ea0550e",
+   "sha256": "0cgf6bb3b0s378w48sdma0lyasdj93ngfvrdlnnjggk5hlcr98sx"
   }
  },
  {
@@ -78456,11 +78857,11 @@
   "repo": "org-mime/org-mime",
   "unstable": {
    "version": [
-    20210901,
-    244
+    20211130,
+    716
    ],
-   "commit": "23cc52bb539c898de228fc438cd24ed10213bea3",
-   "sha256": "1g32chan6rhlp3kvzd2lvf104i3p37q1sm0d89pq6sya0ia2as1n"
+   "commit": "3b119a22be0ee22d16773e4d9a26478d3c8bf2df",
+   "sha256": "1khvfw2vqakvnai0i5wzr6mlxr01ijbcjm655xv17yp95d878bqw"
   },
   "stable": {
    "version": [
@@ -78499,16 +78900,16 @@
   "repo": "ndwarshuis/org-ml",
   "unstable": {
    "version": [
-    20210911,
-    2131
+    20211213,
+    105
    ],
    "deps": [
     "dash",
     "org",
     "s"
    ],
-   "commit": "5d61f456b0a639e178d6ae4f210e28be5621a620",
-   "sha256": "1ca6wgjwslv3582fmsxna81mgryziw9v9zh1836sbp3yszqddday"
+   "commit": "4fdf359fb716bf9b606650ac119ba10021f94f26",
+   "sha256": "0chnvs577wvddmcx37gij1zw95hii1lmdycr7w2wp5ig2dyz67ns"
   },
   "stable": {
    "version": [
@@ -79073,14 +79474,14 @@
   "repo": "jakebox/org-preview-html",
   "unstable": {
    "version": [
-    20210911,
-    1528
+    20211126,
+    2350
    ],
    "deps": [
     "org"
    ],
-   "commit": "5f7345e75d0fe71afb19fd30c841dff5bdd6d1ab",
-   "sha256": "13i6yqhizh86608hwlkc4ipsaxx44y79v40kpn007h8p1wl1ba7a"
+   "commit": "14e39aec6e29dc15ff40b219b2b7284a9ec0af36",
+   "sha256": "0qza6ylknsd0d87dhwxk5hyqzs5107n2s8y189nr23lnyvpggn49"
   }
  },
  {
@@ -79300,15 +79701,15 @@
   "repo": "oer/org-re-reveal",
   "unstable": {
    "version": [
-    20211025,
-    1153
+    20211119,
+    624
    ],
    "deps": [
     "htmlize",
     "org"
    ],
-   "commit": "ee0417aac3969ec2d776eba1ddc6434d4c61a10d",
-   "sha256": "0j7394zcbzqfk33g2xdyb3fmw3brxy8v66vvf1j9nqlskfddh7bn"
+   "commit": "55fca47c740c50fe04cbf2b8ae90e02174626c0c",
+   "sha256": "01h1vdg96ml8zxfi78j178w4m33n2rmwgcl6k2cisymcfijcp2c5"
   },
   "stable": {
    "version": [
@@ -79476,8 +79877,8 @@
   "repo": "jkitchin/org-ref",
   "unstable": {
    "version": [
-    20211110,
-    1229
+    20211209,
+    2052
    ],
    "deps": [
     "avy",
@@ -79490,8 +79891,8 @@
     "parsebib",
     "s"
    ],
-   "commit": "c87b4155cd2f60ca3a9bed2e6e366c1fa47aec33",
-   "sha256": "1idshb4g1d7ghdwwfyglvqqdjbdi3lrigkgq2rsbhrv7lpxcb8vn"
+   "commit": "12e5f9e89b92e731d5c199ff46f4f887ace9b791",
+   "sha256": "1h8sjcylqklssc5pw723cbl2paha47s3gcgqsn2ak9wzd0zkwads"
   },
   "stable": {
    "version": [
@@ -79524,15 +79925,15 @@
   "repo": "alezost/org-ref-prettify.el",
   "unstable": {
    "version": [
-    20211111,
-    742
+    20211204,
+    825
    ],
    "deps": [
     "bibtex-completion",
     "org-ref"
    ],
-   "commit": "0cecd7b2611bd9d282876ab46d490ce3e635ba86",
-   "sha256": "0jhspfp2mm69q7p1n986pal88ywm5zm9a6f2q073slnpiv4qwvz2"
+   "commit": "bffbc409d277e78ffc4005834d5cbaee19b89bbb",
+   "sha256": "0dd1avxivc1n73l0jz96mh9jhh1cg4c9icai4ypa38p4sb4czmvh"
   }
  },
  {
@@ -79638,8 +80039,8 @@
   "repo": "org-roam/org-roam",
   "unstable": {
    "version": [
-    20211114,
-    913
+    20211213,
+    944
    ],
    "deps": [
     "dash",
@@ -79649,8 +80050,8 @@
     "magit-section",
     "org"
    ],
-   "commit": "d93423d4e11da95bcf177b2bc3c74cb1d1acf807",
-   "sha256": "1az6i7031ff63gxz3wfdg00w1b57r10j12a6s5w3vgchsz896skm"
+   "commit": "7068d63e966c0ca8d098ac4f7a90434f4c9b6822",
+   "sha256": "0yb2n4jvfpnbcvik8v2kfklgl4pbsxbkahl98m9bn56vgian9m2b"
   },
   "stable": {
    "version": [
@@ -79678,30 +80079,30 @@
   "repo": "org-roam/org-roam-bibtex",
   "unstable": {
    "version": [
-    20211117,
-    1225
+    20211203,
+    1348
    ],
    "deps": [
     "bibtex-completion",
     "org-ref",
     "org-roam"
    ],
-   "commit": "f399b85f5c38bd52f6eb41da18fccfb971a04fe1",
-   "sha256": "1da5yv204qvnw5rrczyi5k2982a03l9lygkqh4nbpknm8i7nhrbv"
+   "commit": "196e5815dd13b014804122c4e32ee5f16f0ad66b",
+   "sha256": "1d09y923d9n5v7m201myba85m4064s2hdy3pgzssy70mjncg3m1g"
   },
   "stable": {
    "version": [
     0,
     6,
-    0
+    1
    ],
    "deps": [
     "bibtex-completion",
     "org-ref",
     "org-roam"
    ],
-   "commit": "eea7469fc32eddc9d74621b7ecc1f36832b7efd3",
-   "sha256": "04vc2w7x2lyamp0qa1y274smsf9x2qxr1igrpz9f4y5ha5332px5"
+   "commit": "196e5815dd13b014804122c4e32ee5f16f0ad66b",
+   "sha256": "1d09y923d9n5v7m201myba85m4064s2hdy3pgzssy70mjncg3m1g"
   }
  },
  {
@@ -79730,16 +80131,16 @@
   "repo": "org-roam/org-roam-ui",
   "unstable": {
    "version": [
-    20211117,
-    1208
+    20211209,
+    1418
    ],
    "deps": [
     "org-roam",
     "simple-httpd",
     "websocket"
    ],
-   "commit": "2b167cd03f29714267057e4c0b437a4d6a01b299",
-   "sha256": "0k6i69afzswqvg4zl6b4m5gl7rrrr15yli2kn0g8nlfg0z2ay6dm"
+   "commit": "9ed0c5705a302a91fab2b8bcc777a12dcf9b3682",
+   "sha256": "1am11vnzklv0cbivsw5r8x8fx457166mvfgyv7cdhrz88s8iqm23"
   }
  },
  {
@@ -80058,11 +80459,11 @@
   "repo": "bastibe/org-static-blog",
   "unstable": {
    "version": [
-    20210616,
-    809
+    20211201,
+    1221
    ],
-   "commit": "4738a7bdb24cb4e1d1d5effc23f953e4c76e7713",
-   "sha256": "0kpa1rnpxfar8xkah29f9h6q26fgdxcb8gimsfqvrj145vama7pr"
+   "commit": "cb1fa87896c5cc31430f2d375737144bb1982a76",
+   "sha256": "0q8vznz2q54qkvkspjamlphsgk95pjvlf89fc5m3v5pr92qhvzbk"
   },
   "stable": {
    "version": [
@@ -80283,15 +80684,15 @@
   "repo": "stardiviner/org-tag-beautify",
   "unstable": {
    "version": [
-    20210904,
-    1643
+    20211209,
+    447
    ],
    "deps": [
     "all-the-icons",
     "org-pretty-tags"
    ],
-   "commit": "bdf438847e05f1f9c08c69e93c3d5e717b589074",
-   "sha256": "09k7zmdcyy5mymij4a2wq6s6r60njkxrmiybbwvln322wl0ldgsh"
+   "commit": "7ba298dba1da0cb0d5cee3f366a88f17e778a20f",
+   "sha256": "0bkaj43d1pnna2yicj6584acx173irqdbnhn7mg5hr223qzks42z"
   }
  },
  {
@@ -80531,11 +80932,11 @@
   "repo": "takaxp/org-tree-slide",
   "unstable": {
    "version": [
-    20211009,
-    1707
+    20211213,
+    1254
    ],
-   "commit": "27f8bb6a9676e1c0b500e75799e3b5c37a9156af",
-   "sha256": "0751qlg8xxwx7mldgdry1gfrarvhzg2smjzxd3382i6j63mpala9"
+   "commit": "917612a0d1593de533b7bf0a2792d7e37bb2ca3d",
+   "sha256": "0kqq47f5fgjx1dp72c3qy3lbqb088qh0b5shn5xrqrq84xzilipy"
   },
   "stable": {
    "version": [
@@ -81262,19 +81663,19 @@
   "repo": "tgbugs/orgstrap",
   "unstable": {
    "version": [
-    20210926,
-    2314
+    20211126,
+    2201
    ],
-   "commit": "b99455846908d007cf50ca1ef7093554dc3121a0",
-   "sha256": "1z4hva6dzqrkkabv1apqhic3d2r21dsf9m60blmbnhx6hbc5vgv3"
+   "commit": "bc981b957967be8d872c08be9ba7f2dbde5caf1d",
+   "sha256": "1gn9bs5fxrshyyi7wqm30p2d4izjdrspvh5cx8fs803mxl593wim"
   },
   "stable": {
    "version": [
     1,
-    3
+    4
    ],
-   "commit": "b99455846908d007cf50ca1ef7093554dc3121a0",
-   "sha256": "1z4hva6dzqrkkabv1apqhic3d2r21dsf9m60blmbnhx6hbc5vgv3"
+   "commit": "dbcc35f0dc854dfd4412ca4aa9c5894a2ccb0321",
+   "sha256": "0611zcfkp4min1ixal93qfvbm03w56ydb9hl086vss36ramdiyng"
   }
  },
  {
@@ -81285,11 +81686,11 @@
   "repo": "tbanel/orgaggregate",
   "unstable": {
    "version": [
-    20210925,
-    1850
+    20211203,
+    1717
    ],
-   "commit": "3ddf2fc2262ec7d1ae62aff251a70dcb26dd5f04",
-   "sha256": "09lj6kw1fz1hmrr703rx46d3zsp1kpdzavc3nv1q8x7ii9q0w9bw"
+   "commit": "bbffe6ac2ec3f0ec8c84d628f105072f64f5a00e",
+   "sha256": "1ybva6qxdpnawhv53rqkbs14yrcsgqr0s8xmz1d135pcf31fbsrr"
   }
  },
  {
@@ -81315,14 +81716,14 @@
   "repo": "tbanel/orgtbljoin",
   "unstable": {
    "version": [
-    20210828,
-    715
+    20211202,
+    1204
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "f09ba7fd304b36773a337323a0749cc681ce5049",
-   "sha256": "0li0zks7n8kj30z2a71xyaa6qpp5kgrrikrz1562cymp5r3ddbxv"
+   "commit": "e6a6d1265e1aa93a5b5228ebd3c40fc37fe4496a",
+   "sha256": "1cmwiph9a93zhi8wkz8ps8gcwhyz7k7cj468cnp5ar9ib3ybladp"
   }
  },
  {
@@ -81565,11 +81966,11 @@
   "repo": "raghavgautam/osx-lib",
   "unstable": {
    "version": [
-    20211113,
-    1849
+    20211206,
+    619
    ],
-   "commit": "06744dae53b4ade99b0cd733823e1c8f6b0aa2c4",
-   "sha256": "0rfb9nh5xvfqpnk8k0hxaiv7ywzzzn8dpx3gxx6d2jn25glwp8ql"
+   "commit": "7afdb57edd5725e8a66f841a90fa571a4cbb81e7",
+   "sha256": "02gpfzlbgwxlf7iy7qjzkpkqxhdr81nj06cg6g4mvg0ggvkgyz1s"
   }
  },
  {
@@ -82231,14 +82632,14 @@
   "repo": "kaushalmodi/ox-hugo",
   "unstable": {
    "version": [
-    20211024,
-    1851
+    20211203,
+    1553
    ],
    "deps": [
     "org"
    ],
-   "commit": "3442d8cf1f60f28cf28daaca06f524dd660681f8",
-   "sha256": "123zg67bribf86i98rzvha1fyh72a12bkjrcgn06vph5vm5m08q1"
+   "commit": "88e60681901573797ce53c91ad8fa0936f6e4ee2",
+   "sha256": "0z2ln4iml780xk7qq996aihd7954jx2cpc6f7ayhhx9190dh6lcz"
   },
   "stable": {
    "version": [
@@ -82495,16 +82896,16 @@
   "repo": "emacsorphanage/ox-pandoc",
   "unstable": {
    "version": [
-    20211009,
-    1414
+    20211127,
+    1430
    ],
    "deps": [
     "dash",
     "ht",
     "org"
    ],
-   "commit": "e76324ecf1b9be6353bf22ff5e13652ea2714674",
-   "sha256": "1x1klhj4570mzcnrdlj56qs9hi41nvdmghgj6ddwg6n0lm2kglys"
+   "commit": "eda1f21fd519427c070d165f8a663db07b87ac29",
+   "sha256": "1d8ymkxgfz5z3nrxaad90q4xdc8vj0vqyv9rwv2fhyx9gl72xhg9"
   },
   "stable": {
    "version": [
@@ -82590,14 +82991,14 @@
   "repo": "yjwen/org-reveal",
   "unstable": {
    "version": [
-    20211114,
-    1307
+    20211128,
+    1509
    ],
    "deps": [
     "org"
    ],
-   "commit": "2adca68b2be22bcc05d5136b571472667ffab4fd",
-   "sha256": "1x0ksafnq2fsqg7vls2qdhnk189bfk3184303whircbs0rgiz6md"
+   "commit": "59adea80013e962811b204403cc500a4d28b85a0",
+   "sha256": "133vzdhyzg5w5fqrams9n88adr8klpgb53g2ig2rvir3sckp449v"
   }
  },
  {
@@ -82651,8 +83052,8 @@
     "org",
     "ox-gfm"
    ],
-   "commit": "89cedb9da6ea08b78bc1fe77d6a39aa078172c1e",
-   "sha256": "0a97la3hwkb792a26c6byavwzg8gca6s0ccajd7pi9p430ys1i9y"
+   "commit": "bd797dcc58851d5051dc3516c317706967a44721",
+   "sha256": "1kh2v08fqmsmfj44ik8pljs3fz47fg9zf6q4mr99c0m5ccj5ck7w"
   }
  },
  {
@@ -83006,8 +83407,8 @@
     20210124,
     640
    ],
-   "commit": "06fbc904e09d3349b669c2624a587fee5accf5ef",
-   "sha256": "0mmziyswrfj1a43cy6qn1d8b1a302z4w3xk4z5yi5frdr22j684c"
+   "commit": "079da78f3be8364e964f5861a5f433ad61b6f654",
+   "sha256": "0xxs4iaqxgdgqklrcjj2ydnr9p0l5277xi8gkbar06j65k1l28pj"
   },
   "stable": {
    "version": [
@@ -83027,14 +83428,14 @@
   "repo": "melpa/package-build",
   "unstable": {
    "version": [
-    20210724,
-    1143
+    20211213,
+    1428
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "01246e739da2eded6e007631861cada633302faa",
-   "sha256": "03w5yaivh2zc8c42zrfqmrlcc8lkmg3jjxa7sf223bwq1v9xypdj"
+   "commit": "da9fcbb6bf020922987914a96f1d12012c914d4c",
+   "sha256": "033137h1wwg37c45mmxzyz9ixx6sm90pin131nb6pi5z8jr80hw0"
   },
   "stable": {
    "version": [
@@ -83071,15 +83472,15 @@
   "repo": "purcell/package-lint",
   "unstable": {
    "version": [
-    20211107,
-    1614
+    20211122,
+    1152
    ],
    "deps": [
     "cl-lib",
     "let-alist"
    ],
-   "commit": "786d8b5f382ee5f254a783378e904305cc41367f",
-   "sha256": "19mrzb2ligkz8gyihlrqvb3wbzmsqkpn58kfcnx6dldvk4s2ykdn"
+   "commit": "b5f5554ec38ec2a4d5ef49a0ad9f57f6825d9af9",
+   "sha256": "1ic1a0j8gj930ssc623vi55jflyfw52gb9zkf3yg51w43cw4isfn"
   },
   "stable": {
    "version": [
@@ -83108,8 +83509,8 @@
    "deps": [
     "package-lint"
    ],
-   "commit": "786d8b5f382ee5f254a783378e904305cc41367f",
-   "sha256": "19mrzb2ligkz8gyihlrqvb3wbzmsqkpn58kfcnx6dldvk4s2ykdn"
+   "commit": "b5f5554ec38ec2a4d5ef49a0ad9f57f6825d9af9",
+   "sha256": "1ic1a0j8gj930ssc623vi55jflyfw52gb9zkf3yg51w43cw4isfn"
   },
   "stable": {
    "version": [
@@ -83496,15 +83897,15 @@
   "repo": "joostkremers/pandoc-mode",
   "unstable": {
    "version": [
-    20210910,
-    2043
+    20211208,
+    2229
    ],
    "deps": [
     "dash",
     "hydra"
    ],
-   "commit": "bf01a14e99304653ae722226ea064c7d4b641774",
-   "sha256": "0g64fbcbw8pfq92drgixgplrljw954y9fyp9gjbmc5rq2dhpck4l"
+   "commit": "c1429887287b7ee9601196e26f97c908b6e4f5c0",
+   "sha256": "1zw92bkp5mjzc78vrvsaj3ycqn0j5mqzxxxv2nkb891spgandpvy"
   },
   "stable": {
    "version": [
@@ -83875,20 +84276,19 @@
   "repo": "joostkremers/parsebib",
   "unstable": {
    "version": [
-    20210809,
-    2049
+    20211208,
+    2335
    ],
-   "commit": "8d7cf64badde2b14baac277cac85e83777da9409",
-   "sha256": "1hd6izpb4irinjmfy7zxy8fqnr1fm4iw2sipvl9261nm68dzha6z"
+   "commit": "3d46fb939371664682c711750367de088aa66f92",
+   "sha256": "08vrkadjxaw1w1bx8dg12kxxkvgl65p0d7gkpfhwpvv35k0d9z3y"
   },
   "stable": {
    "version": [
     3,
-    0,
     1
    ],
-   "commit": "8d7cf64badde2b14baac277cac85e83777da9409",
-   "sha256": "1hd6izpb4irinjmfy7zxy8fqnr1fm4iw2sipvl9261nm68dzha6z"
+   "commit": "3d46fb939371664682c711750367de088aa66f92",
+   "sha256": "08vrkadjxaw1w1bx8dg12kxxkvgl65p0d7gkpfhwpvv35k0d9z3y"
   }
  },
  {
@@ -85052,14 +85452,14 @@
   "repo": "nex3/perspective-el",
   "unstable": {
    "version": [
-    20211103,
-    522
+    20211213,
+    435
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "54dc30840c8019f387ccdb84bbab06ca2cf8f296",
-   "sha256": "1d2jmxfb6a93d9h4m7w482f3dbhhn2s6wiynzwxjl8af1l19f5aa"
+   "commit": "d8211a80fbc2cc0d9e163ef6a3e1d0a693b4e00e",
+   "sha256": "1p7il5s5r582w7if3v3cwkvdb6myszkf2fr2f3sw0x70x644bq2z"
   },
   "stable": {
    "version": [
@@ -86128,15 +86528,15 @@
   "repo": "arifer612/pippel",
   "unstable": {
    "version": [
-    20210614,
-    1655
+    20211205,
+    1711
    ],
    "deps": [
     "dash",
     "s"
    ],
-   "commit": "2480fd376b8f69691b45b0141fca0d900a5ac64a",
-   "sha256": "190cd66bhvlmyxki7hl43s0h4rvflw9r36xm4ky3c1mhbkrfsz1p"
+   "commit": "5493309f17e7d30254e3832162f73b486079d12d",
+   "sha256": "1agnag5n516966np9027zjvpyr27nrawh1l0l6hmy6hy8hb1jwpq"
   }
  },
  {
@@ -87343,11 +87743,11 @@
   "repo": "polymode/polymode",
   "unstable": {
    "version": [
-    20210907,
-    807
+    20211124,
+    913
    ],
-   "commit": "54888d6c15249503e1a66da7bd7761a9eda9b075",
-   "sha256": "0zxhxsil1p0nf4n75saz33d00xl7d4g528n7qj9xx84gq92g4fnb"
+   "commit": "47a7b6541a1e1cea9c22052fa202b7fdb715f03b",
+   "sha256": "02znv2pg07wn13jxgfbik306y3haafapjfib9pnl96aqbv264kp3"
   },
   "stable": {
    "version": [
@@ -87395,30 +87795,30 @@
   "repo": "SqrtMinusOne/pomm.el",
   "unstable": {
    "version": [
-    20211110,
-    1040
+    20211125,
+    1806
    ],
    "deps": [
     "alert",
     "seq",
     "transient"
    ],
-   "commit": "62832704ba72613af8dbe0a6bf6d4daa89a21e12",
-   "sha256": "06if507c163fia28zzax735r7mwlpa5vi0mmgddyn3vxsirnh4qw"
+   "commit": "2b58c3cad0106299d98e4a12de4f78dbd96fe67b",
+   "sha256": "1i3rimbyw7bkjdifwmzhf56alkhhhvblkjrxpgbnjmbg26xd6zdd"
   },
   "stable": {
    "version": [
     0,
     1,
-    2
+    3
    ],
    "deps": [
     "alert",
     "seq",
     "transient"
    ],
-   "commit": "62832704ba72613af8dbe0a6bf6d4daa89a21e12",
-   "sha256": "06if507c163fia28zzax735r7mwlpa5vi0mmgddyn3vxsirnh4qw"
+   "commit": "2b58c3cad0106299d98e4a12de4f78dbd96fe67b",
+   "sha256": "1i3rimbyw7bkjdifwmzhf56alkhhhvblkjrxpgbnjmbg26xd6zdd"
   }
  },
  {
@@ -87848,11 +88248,11 @@
   "repo": "tumashu/posframe",
   "unstable": {
    "version": [
-    20211110,
-    40
+    20211126,
+    944
    ],
-   "commit": "66b16a20a7b43f19c27487c475799200ad81b3bd",
-   "sha256": "06n9zwbz6hk3k49hw9xjnizaadvgl2s5aqmaaijzfxxm0h0gqh43"
+   "commit": "3b1dc400d286b0a4bd42e518bf3e7eedb49fd1e6",
+   "sha256": "0z05wfw1rv0jiqwyybvs4g4br5mb7xw1r2s1cdvirzi5z8ikh658"
   },
   "stable": {
    "version": [
@@ -88014,16 +88414,15 @@
   "repo": "SavchenkoValeriy/emacs-powerthesaurus",
   "unstable": {
    "version": [
-    20200720,
-    1546
+    20211127,
+    1502
    ],
    "deps": [
-    "jeison",
     "request",
     "s"
    ],
-   "commit": "93036d3b111925ebc34f747ff846cb0b8669b92e",
-   "sha256": "0l45n12b8jny7g4bfdn3sc7lp9kyxd7pyisr0r9svr9sls7cybv4"
+   "commit": "02c9d11a3f407023aa7c7b080bb9f8a5f5e7cd7a",
+   "sha256": "134m24v9xxnnsr180sx9li938jn5lx7kny2095fpl90qgpn3jd5q"
   }
  },
  {
@@ -88086,6 +88485,27 @@
   }
  },
  {
+  "ename": "pr-review",
+  "commit": "538860d95a05005e7c2e77f186348d464fb653ac",
+  "sha256": "0yw3hlzajncb1zvkp0xdl0srkn20rkcgj4ib76yhlhphn6vc0nlv",
+  "fetcher": "github",
+  "repo": "blahgeek/emacs-pr-review",
+  "unstable": {
+   "version": [
+    20211128,
+    755
+   ],
+   "deps": [
+    "ghub",
+    "magit",
+    "magit-section",
+    "markdown-mode"
+   ],
+   "commit": "f1e1bc2a5ad2092afdba8568d554f35ebc98bec7",
+   "sha256": "07f98c2d9wszlxj6gvrnnb60krbgf55wahg1d16p2mwqczgdl7cp"
+  }
+ },
+ {
   "ename": "prassee-theme",
   "commit": "15425b576045af1c508912e2091daf475b80b429",
   "sha256": "1j0817hxxri6mq9pplgwf5jp2dagk6hay7g1a1lgz4qgkf5jnshs",
@@ -88269,8 +88689,8 @@
     "jsonrpc",
     "s"
    ],
-   "commit": "b766824d60e95720e28917b648e4957d7923370b",
-   "sha256": "0rq75pzbklgk0bq6ah7xrsb2czq1vryfvavvi81iqpp89nik2nrh"
+   "commit": "e1925aa3419b1b4d5670040fcc8543382489507f",
+   "sha256": "0vnwncr3vvckg7mk9z5zfr2pphzid5lbv32jah1ii2cmjcksdhwg"
   }
  },
  {
@@ -88814,11 +89234,11 @@
   "repo": "bbatsov/projectile",
   "unstable": {
    "version": [
-    20211116,
-    700
+    20211206,
+    1920
    ],
-   "commit": "31069dc31469e0d5cddb53126a2993432a22399b",
-   "sha256": "1l86gm0kkszkyi4srknc7vjn589x2pkqdcralw44zwhppx7fcy35"
+   "commit": "2bb7ec28b1275bbce7cac743ee9e7b2cf41c5bbd",
+   "sha256": "1m1d5p87k09wxs2pbia37s9c4ik60vj094xnkxnr3vwyvs5d0a17"
   },
   "stable": {
    "version": [
@@ -89220,11 +89640,11 @@
   "repo": "ProofGeneral/PG",
   "unstable": {
    "version": [
-    20211109,
-    1442
+    20211125,
+    1509
    ],
-   "commit": "2145c23f44a0951a14240d3b85a1a3d08aade9bb",
-   "sha256": "0pilv79a9mqgv2j7915b2lbl3ir1hhaj7xjysliwn6h7rb4b1csg"
+   "commit": "1b1083e86e0cddc20ff2f1a6b25c7a7eee2edf02",
+   "sha256": "1pnysczhscapgwmvf6ix7f31lf3hnh8h977bfll1m7jlxl9b9c0j"
   },
   "stable": {
    "version": [
@@ -89327,8 +89747,8 @@
     20211013,
     1726
    ],
-   "commit": "edc8a3182811cc39272549ff894793e1fff4aaab",
-   "sha256": "08yfcnra0c9jx3fkicxl558vzll7cnx5qn847lxqsjv4f1ms37m1"
+   "commit": "29b3d01572d50c0e5bc0ab2eea32f9779c7576f4",
+   "sha256": "041m090j0pc3svfvybfg8lcip9hzgfvwklf82ynkv2hsddfn9q1b"
   },
   "stable": {
    "version": [
@@ -89739,11 +90159,11 @@
   "repo": "AmaiKinono/puni",
   "unstable": {
    "version": [
-    20211011,
-    1529
+    20211204,
+    1256
    ],
-   "commit": "825952d0a4a1d5eebf849280ffd4e1e44e1a847c",
-   "sha256": "1w3iz542v83n6vc4j0nhqmkp21h0m42rqgp6648jlx7q0n4qmdz6"
+   "commit": "e147a72f3c6b7bb40ef7fa37d12ea54afa09cd7e",
+   "sha256": "06lkpzz6ri092awgba575vq4qy3ym4qbk6hrwfpvmy81n26v7wsw"
   }
  },
  {
@@ -90104,11 +90524,11 @@
   "repo": "statmobile/pydoc",
   "unstable": {
    "version": [
-    20201030,
-    1530
+    20211119,
+    2211
    ],
-   "commit": "4459aa1c2cc7648cb1b9c9fcf470d8809a9bc7b3",
-   "sha256": "01b0gmnvsssh1vmjq79qh8fy2nv6iryw72zd9lp8qnwd9sr42rqp"
+   "commit": "3aaffe41e1c5a9d53fbc1de02686c386fd002890",
+   "sha256": "1z6p1glspxr5vl9igzhginaws65iqs9h2ymi21f62x7ydm54i96y"
   },
   "stable": {
    "version": [
@@ -90233,15 +90653,15 @@
   "repo": "tumashu/pyim",
   "unstable": {
    "version": [
-    20211117,
-    158
+    20211213,
+    1253
    ],
    "deps": [
     "async",
     "xr"
    ],
-   "commit": "a66e999435d9697a0d732576addf3c182fd363f7",
-   "sha256": "06pfpi2z48jhqanwlnq5d55xsnpmqhhrk64x15x7h01haf0wqy64"
+   "commit": "02c50045cb14ab253d8d8435e83e7f10b0bbc130",
+   "sha256": "1gydldssvg368nqpk9xy9snzhp3rb33nlygnwmh9ah4yaq412lh3"
   },
   "stable": {
    "version": [
@@ -90418,17 +90838,17 @@
     20210411,
     1931
    ],
-   "commit": "b91cc8dbb47ce622b73c766b3a53da270bdb24e9",
-   "sha256": "0w7bc2lcrr4axs9s8mgymjy8gwdafc3dl4fl9amaqfbph0xm0arl"
+   "commit": "35254c29eb3a0f1c7847cfcb3451501a4180373d",
+   "sha256": "1cqslii8dyvrc934v5ydhdmrhq2bj2ravrpj7d3ag38gq4lskwlx"
   },
   "stable": {
    "version": [
     2,
-    11,
-    1
+    12,
+    2
    ],
-   "commit": "d98e6e8adcdc5ebcd9c863f630e748cdba639b0a",
-   "sha256": "08kc9139v1sd0vhna0rqikyds0xq8hxv0j9707n2i1nbv2z6xhsv"
+   "commit": "eec287fae66f8fc514d5daa9caee46fd0e0cb6d9",
+   "sha256": "0spmy7j1vvh55shzgma80q61y0d1cj45dcgslb4g5w3y602miq5i"
   }
  },
  {
@@ -90554,8 +90974,8 @@
     "dash",
     "reformatter"
    ],
-   "commit": "6b6ab71d2762b6da703f8d1d3d964b712a98939e",
-   "sha256": "1cmzc0fa3jj7ajxbqhbsc8jx47k6g223sfd42c4lrqdnmh95760m"
+   "commit": "01f1f4269136cfb36938567854383628730faaab",
+   "sha256": "1a8dfz5riw2vlbi9mgb768gb29s5fnbfzas4fw8v1a4cxgwx6b0w"
   },
   "stable": {
    "version": [
@@ -90669,19 +91089,19 @@
   "repo": "macurovc/insert-docstring",
   "unstable": {
    "version": [
-    20211101,
-    1653
+    20211127,
+    1232
    ],
-   "commit": "4d729f5b574ffa3fce41ccbeee7b8bdb9d005174",
-   "sha256": "0gn12bm3w7819j67bnh1m3jkqqb37pdmkagbcwqp4mc74zbpf01m"
+   "commit": "cd6419b74c99c06d5c48c1b289572acce1fd193b",
+   "sha256": "1kr7jgiq1zbhq8j4fbhqd5skprna2jkffrqbabjlri69vl5spl80"
   },
   "stable": {
    "version": [
     2,
-    0
+    2
    ],
-   "commit": "4d729f5b574ffa3fce41ccbeee7b8bdb9d005174",
-   "sha256": "0gn12bm3w7819j67bnh1m3jkqqb37pdmkagbcwqp4mc74zbpf01m"
+   "commit": "cd6419b74c99c06d5c48c1b289572acce1fd193b",
+   "sha256": "1kr7jgiq1zbhq8j4fbhqd5skprna2jkffrqbabjlri69vl5spl80"
   }
  },
  {
@@ -90715,6 +91135,30 @@
   }
  },
  {
+  "ename": "python-mls",
+  "commit": "8b295cbb87ae6feaae445e036a225be7d4176943",
+  "sha256": "0hy5934p6rm5rj0cab2bf03h1lirfn3dh1jhbx0xn8si6y9r1b95",
+  "fetcher": "github",
+  "repo": "jdtsmith/python-mls",
+  "unstable": {
+   "version": [
+    20211211,
+    1934
+   ],
+   "commit": "6987b9fa0f664a1ede7e6a24684ed328eb412d5c",
+   "sha256": "176g9vg3xs8sys0kk3lfx3qq7p6q65d7f7d014pb8fwsi5nvhl47"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "commit": "152c4355ca315b1e5861496d5abed9365d856e57",
+   "sha256": "1d2ymwfdsdqii0drpypbl4mla2mq4a8avch4j4zj7g9h8z7h6wq5"
+  }
+ },
+ {
   "ename": "python-mode",
   "commit": "82861e1ab114451af5e1106d53195afd3605448a",
   "sha256": "1m7c6c97xpr5mrbyzhcl2cy7ykdz5yjj90mrakd4lknnsbcq205k",
@@ -90722,11 +91166,11 @@
   "repo": "python-mode-devs/python-mode",
   "unstable": {
    "version": [
-    20211013,
-    1620
+    20211117,
+    1920
    ],
-   "commit": "e92d0e800b494c1dfcca109154a6b7eb6fad0e4e",
-   "sha256": "1lxi1iwckpfk6966sgcdj3sz9bcbylsm3nqv9wbbzkqbjlyd28y4"
+   "commit": "220379ffcd7961f290d7a4d9f67da136fffb25a6",
+   "sha256": "1h2hplhsqlh6vhdbjc93mf6hkvix8c5s49gbl48v3hr34pj6992r"
   },
   "stable": {
    "version": [
@@ -90899,11 +91343,11 @@
   "repo": "psaris/q-mode",
   "unstable": {
    "version": [
-    20211001,
-    1144
+    20211126,
+    1944
    ],
-   "commit": "c7f6ccb936b673032ae557636177befe5f33a3db",
-   "sha256": "1xi7npwpji0c7jvwnkf056ff3jik7j01fb5mcdn0gwkigqhj1g02"
+   "commit": "43e509ed323c105f9b312813a1ae953d1a2efe3e",
+   "sha256": "1b6prwdy3dnkdsxy1lwws1jmq5r80g729z18np8ylp9j3pzz0nrh"
   }
  },
  {
@@ -91365,11 +91809,11 @@
   "repo": "greghendershott/racket-mode",
   "unstable": {
    "version": [
-    20211114,
-    1656
+    20211130,
+    1748
    ],
-   "commit": "6f94ac6e67c3ee00454e8b7e6d96ab5e9614cdb8",
-   "sha256": "01d2jkg32c7gsh39gil0kjh615fw125dl4nqilfcg23zfc8wlaf2"
+   "commit": "ef54a42ddd32f8827eef430f0410e392f9cb1726",
+   "sha256": "1x81l60k4qb2ffb85sqjr704dyh8dy28wq4rc8d5vc9qpmm1z3kf"
   }
  },
  {
@@ -91600,8 +92044,8 @@
     20210927,
     1227
    ],
-   "commit": "4ee9045eeb90f7831d7c0ee2e4adfcd957f712be",
-   "sha256": "0z8yclpb67x0k7x4ai13wvpc6w6s9z6kkib6a1lm4jpp4gyyraqw"
+   "commit": "977b14a7c1295ebf2aad2f807d3f8e7c27aeb47f",
+   "sha256": "14r1m1iw123y623dxcbjmzn8dpmixc3l7s5svxxs0msxnh5b4fcy"
   },
   "stable": {
    "version": [
@@ -91965,11 +92409,11 @@
   "repo": "simenheg/rdf-prefix",
   "unstable": {
    "version": [
-    20200216,
-    914
+    20211209,
+    1952
    ],
-   "commit": "825af2c584fbad9e67c2c08e29040776fa647fe0",
-   "sha256": "0ky81w36dn6c69x4v4b46j8ixqqws9dc8adi4q19149xkiijx1kl"
+   "commit": "fa4b64bc3e0c1d5b8eed20df8d2daf0dffff2332",
+   "sha256": "0xvq6m8a824ykwfbcb2bkmsg0p9148c4by2hpjly18l8rdi6810d"
   },
   "stable": {
    "version": [
@@ -92678,8 +93122,8 @@
     20211017,
     1727
    ],
-   "commit": "5d98022dee5a5ba3343f1c26e28febc2f095912c",
-   "sha256": "1ksd8p98z5w7kaahwalsmxdb9zvyb1kcr32mcsjqbnxxzagld880"
+   "commit": "bf3aa89893c10a01d5605b8d19b3583cd432cb27",
+   "sha256": "1fg2m1n61sy6iqv5m299rbwdrdkphpd68jq6l1npnlszwa3814ka"
   },
   "stable": {
    "version": [
@@ -92852,8 +93296,8 @@
     20181121,
     21
    ],
-   "commit": "50689559ff970e33013b8cf8a3bbc8be18ec4e09",
-   "sha256": "0v1xc27hfa223bganb7gksv6cc2v95bdfms7riv75sf30v3vh59s"
+   "commit": "49783bd5d83c1d1989838b5ecf4a240bcc994243",
+   "sha256": "163kj0hmvn7vgd86q0dhz3zimkiqabzylyvchnzaqc2y1mp4qhfk"
   }
  },
  {
@@ -94020,8 +94464,8 @@
   "repo": "DogLooksGood/emacs-rime",
   "unstable": {
    "version": [
-    20211014,
-    548
+    20211210,
+    1806
    ],
    "deps": [
     "cl-lib",
@@ -94029,8 +94473,8 @@
     "popup",
     "posframe"
    ],
-   "commit": "b296856c21d32e700005110328fb6a1d48dcbf8d",
-   "sha256": "1x3v18hwxj56zhn4437nklyni4d3chk84c82a8y1z1flcayjipvy"
+   "commit": "5c2ade217134f6f20cd405447af20825e5b44513",
+   "sha256": "1yp92sfirvcz3s2q8j8g6qlcmb7pn30m9ww4nc332m1axah7l05n"
   },
   "stable": {
    "version": [
@@ -94235,14 +94679,14 @@
   "repo": "dgutov/robe",
   "unstable": {
    "version": [
-    20210906,
-    2250
+    20211208,
+    205
    ],
    "deps": [
     "inf-ruby"
    ],
-   "commit": "fd972e912d0c6c310acb2d057da1be1149937d0e",
-   "sha256": "015mciv5d9dap7h0gnjm93fr4jx46dsm1rkp84x8kflmw747g1yk"
+   "commit": "11207bd549a5a78e3a4d70265c3715990dcdab71",
+   "sha256": "0hcyvvv4y78fmwprlxgmpzb81lzip9y1hjskmv8x7l0q1a6a3dsz"
   },
   "stable": {
    "version": [
@@ -94270,6 +94714,15 @@
    ],
    "commit": "e7e9c4d4750d048ad771fa735621ad813fa9c128",
    "sha256": "127lydk66n90ih39q8gxzb44rss2xllb7bn3ygxrf5m5vvl9w5rj"
+  },
+  "stable": {
+   "version": [
+    0,
+    6,
+    1
+   ],
+   "commit": "e7e9c4d4750d048ad771fa735621ad813fa9c128",
+   "sha256": "127lydk66n90ih39q8gxzb44rss2xllb7bn3ygxrf5m5vvl9w5rj"
   }
  },
  {
@@ -94795,6 +95248,25 @@
   }
  },
  {
+  "ename": "ruby-json-to-hash",
+  "commit": "d4947ac9778d016442e88f324ce61578da301887",
+  "sha256": "0m71v6w3v4qrjivlj980anknz6frpmmv9r5avyzk7kayrri45fy9",
+  "fetcher": "github",
+  "repo": "otavioschwanck/ruby-json-to-hash.el",
+  "unstable": {
+   "version": [
+    20211108,
+    351
+   ],
+   "deps": [
+    "smartparens",
+    "string-inflection"
+   ],
+   "commit": "383b22bb2e007289ac0dba146787d02ff99d4415",
+   "sha256": "1vpjcmsl8nph6sb01ppfim1kbzrdf0z8pxggyv709ayfsavrq19q"
+  }
+ },
+ {
   "ename": "ruby-refactor",
   "commit": "8d223ef5b9e51265c510f1cf7888b621e47bfdcf",
   "sha256": "0nwinnnhy72h1ihjlnjl8k8z3yf4nl2z7hfv085gwiacr6nn2rby",
@@ -94888,6 +95360,30 @@
   }
  },
  {
+  "ename": "ruled-switch-buffer",
+  "commit": "f6ca552d7d29e4ca493b0dd63a007112e8ccb631",
+  "sha256": "1f8l0n4b3gf18jjllbqabzwybwx53x4k6g9dvg795x6ypikdr3cw",
+  "fetcher": "github",
+  "repo": "kzkn/ruled-switch-buffer",
+  "unstable": {
+   "version": [
+    20211205,
+    635
+   ],
+   "commit": "4ae1a722750f7ecb4db93c062ffdbe353e706bf0",
+   "sha256": "0qb69avm7f32y6dlcdsrc2vbj2lki3n732zpfxyr97cgf8vka7xm"
+  },
+  "stable": {
+   "version": [
+    0,
+    1,
+    0
+   ],
+   "commit": "99b53f7679e3eb868e4b4585085bbed102e5fce7",
+   "sha256": "0n16al1nx7r98wbwgrq89yfs581wp6nbbhkns1z5qlqmc21brcqr"
+  }
+ },
+ {
   "ename": "rum-mode",
   "commit": "0c9f8ce2dee376f1f34e89e9642c472a148fca77",
   "sha256": "1838w8rk5pgp1hn7a0m83mfw9jin4qv5mkyl68hl3gj7g9lhn7sd",
@@ -95016,11 +95512,11 @@
   "repo": "rust-lang/rust-mode",
   "unstable": {
    "version": [
-    20211116,
-    2008
+    20211127,
+    1713
    ],
-   "commit": "aadd1dd8f0780692aea1637569aeadfa8f78fd5a",
-   "sha256": "18qqwm05rhbw6bbkg6iifh2xhjww1psah32d7dzjjyc42kswj2ab"
+   "commit": "3f67a880dc8b31b330cf59aee875d9dc96e7c475",
+   "sha256": "0qvsmm9dgxclg0h2d60bh87msbn4cq9l2dq7vipzzibn999yxj4l"
   },
   "stable": {
    "version": [
@@ -95063,8 +95559,8 @@
   "repo": "brotzeit/rustic",
   "unstable": {
    "version": [
-    20211112,
-    1404
+    20211211,
+    2202
    ],
    "deps": [
     "dash",
@@ -95078,13 +95574,13 @@
     "spinner",
     "xterm-color"
    ],
-   "commit": "28b9b6a69ba67e9715b7feb6b3ed56e00ac08acb",
-   "sha256": "0q2695hwrjw3jzy4wg96ma5z8f7ijw08ssvmkbcn57a77wh1xk6v"
+   "commit": "e0285bd19b8f970902042701d28234ebfe160337",
+   "sha256": "1wx6mc1wyzs1d2md8rwsnbkh41ibpbsc1f1ri9diac975gp98w0s"
   },
   "stable": {
    "version": [
     2,
-    1
+    2
    ],
    "deps": [
     "dash",
@@ -95098,8 +95594,8 @@
     "spinner",
     "xterm-color"
    ],
-   "commit": "814775bc7c0ca2cf9041b6d012bf656df7eb554b",
-   "sha256": "0nklqpd24s83ng34xrm4rp80sbylajikj6svz1c6j721pz9crxg9"
+   "commit": "a91b3d99c294a367dc14b9a62a9ca8b462eb7f84",
+   "sha256": "0i72r0kb6f96py3vbprcingik9sy5bndnd19hb9x3yzv1f7r0zfp"
   }
  },
  {
@@ -95561,11 +96057,11 @@
   "repo": "hvesalai/emacs-sbt-mode",
   "unstable": {
    "version": [
-    20210416,
-    1845
+    20211203,
+    1148
    ],
-   "commit": "e29464a82bf706ef921f4e0052ce04fc74c34c84",
-   "sha256": "1r6n1hcpcy6icy8qs98gafqavmwx4z6v4rnknvrfnnynmrv2ajvr"
+   "commit": "9fe1e8807c22cc1dc56a6233e000969518907f4d",
+   "sha256": "1mii46nr4ykkwnbpvsdp46j6n7k38h0jbm49vbm0w7n1az09yg1a"
   },
   "stable": {
    "version": [
@@ -95588,8 +96084,8 @@
     20200830,
     301
    ],
-   "commit": "fc669b449c836d66dc9d542dad766e568952c986",
-   "sha256": "1i9aak2k8zzj2i1wj7xhi750rn8c4wsmcp95w3zabprwxwr790hh"
+   "commit": "b5aba496f270736fd91e0b1591bae872ee39fc62",
+   "sha256": "0rr3rbwybly26n16xmf3wagj2bdda27fj2ybf82nxfyknqskrp1n"
   }
  },
  {
@@ -95600,14 +96096,14 @@
   "repo": "zk-phi/scad-preview",
   "unstable": {
    "version": [
-    20210306,
-    426
+    20211212,
+    1128
    ],
    "deps": [
     "scad-mode"
    ],
-   "commit": "8b2e7feb722ab2bde1ce050fe040f72ae0b05cad",
-   "sha256": "13hsd3sh1azcrbdbjnr1z5q0n5xw3ifzhvsnfqbqdz2pkpr5mfig"
+   "commit": "c5449b26c63f3e0a695905a7e4e84f8d844f761b",
+   "sha256": "1syz8cjyw4rjv1hbvs42r7n56jzjz5c71s21kmm8rp7hlbz71jhr"
   }
  },
  {
@@ -95972,11 +96468,11 @@
   "repo": "ideasman42/emacs-scroll-on-drag",
   "unstable": {
    "version": [
-    20211104,
-    259
+    20211127,
+    1220
    ],
-   "commit": "8962f5f8a79c9178a577732ddfbb333a101bc7fc",
-   "sha256": "157affz6jsar9gnj5nj8ks8zl3dyrwzq4j1g0njvcs4vpz5zf4p9"
+   "commit": "97741be699f08952c79a630869f5772918b378aa",
+   "sha256": "01y34ghp02znckafq51cvzahlbqbnpxdwpdrcgg1insq3qv658wb"
   }
  },
  {
@@ -96631,8 +97127,8 @@
     "dash",
     "edit-indirect"
    ],
-   "commit": "0a2dc1a22955fdd065f04dfdd5242f1b61b4a303",
-   "sha256": "1j1yd9d5hb5ryv0yx02lga0drgyfhkqwli5zrkrhili8h43g522d"
+   "commit": "59c4e3718943dbe8d14bdbba5de24fe2c80f0b56",
+   "sha256": "06wx9nz688x15rz1mcl3jcbaa3pn6xls7my2srn5id1rdbwyl52x"
   },
   "stable": {
    "version": [
@@ -96987,14 +97483,14 @@
   "url": "https://depp.brause.cc/shackle.git",
   "unstable": {
    "version": [
-    20210508,
-    1637
+    20211118,
+    1129
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "4ef05b117c87e1f0d97e0ee74fd2f0bfd07a49b1",
-   "sha256": "12x2b133a7npl2bibgsi5rr73cg77g1dljdwg4l49ipp7g4dsmcb"
+   "commit": "f1467db75a8fa5d51c676181fb308ccbf7b05e6f",
+   "sha256": "00dsk1v7rqj6rbm3lbvgv7dib8wqding5122ln1rrgddqyrrb2fs"
   },
   "stable": {
    "version": [
@@ -97303,20 +97799,20 @@
   "repo": "redguardtoo/shellcop",
   "unstable": {
    "version": [
-    20210622,
-    721
+    20211118,
+    1229
    ],
-   "commit": "7c025b10173ef380ea539dbbdcd7d60977119e24",
-   "sha256": "1rjiyz3sx387b8559k01j6149jw729zlk5s3ah2jaxj6p9cag418"
+   "commit": "8213452241244b797f84e936e6ccd18b6dec3de5",
+   "sha256": "01kvxvwq1v87125arv7lpmlcbjf84pqcyyxm3lfhvzka25d5ibga"
   },
   "stable": {
    "version": [
     0,
     0,
-    6
+    7
    ],
-   "commit": "7c025b10173ef380ea539dbbdcd7d60977119e24",
-   "sha256": "1rjiyz3sx387b8559k01j6149jw729zlk5s3ah2jaxj6p9cag418"
+   "commit": "8213452241244b797f84e936e6ccd18b6dec3de5",
+   "sha256": "01kvxvwq1v87125arv7lpmlcbjf84pqcyyxm3lfhvzka25d5ibga"
   }
  },
  {
@@ -97359,11 +97855,11 @@
   "repo": "Overdr0ne/shelldon",
   "unstable": {
    "version": [
-    20211024,
-    2053
+    20211118,
+    1811
    ],
-   "commit": "232a52eb5d7a9c3ca9f5983140578ddd86ba33a1",
-   "sha256": "0cz6d2msa3dxabbrd9vsm49s4g4f1a1cqi2bmzi96l327kbkzbqy"
+   "commit": "df8ab901c7f47c760879e5ccc26ee0b5195946c2",
+   "sha256": "1xkv0c2hzjccn73wl8x789cqwckbvkwgp80x8fagwswvg6ngzdcx"
   }
  },
  {
@@ -97518,8 +98014,8 @@
     20211029,
     150
    ],
-   "commit": "cb3b873063304ce5e1a5fd386c5f8c933964cd55",
-   "sha256": "19ly819cg5nnjcsr3aqk21hriyv2v8v64xfmyvk1j5p668y6mqkm"
+   "commit": "6112c6a9e13c00c2c7aecd96820a46b4800d4cda",
+   "sha256": "18c1rbcpxv289fbzl66lvyd41l1jhkia7296sksaqsgv9n79c2w6"
   }
  },
  {
@@ -98325,6 +98821,21 @@
   }
  },
  {
+  "ename": "siri-shortcuts",
+  "commit": "f3a67195c63059fbc2d2714b540505bb9cde49d1",
+  "sha256": "04fnzv6sq5mbj5difddbchvp7sgz48qrhs5izhl5w1si5q2ds5ri",
+  "fetcher": "github",
+  "repo": "DaniruKun/siri-shortcuts.el",
+  "unstable": {
+   "version": [
+    20211212,
+    1258
+   ],
+   "commit": "13d030d0f2bdfd1c1543e0a120c6dc321f068365",
+   "sha256": "09vwxpmzam3vmc5akcz9mdq1j6q0lhp9qghs36ivvb3az6kxc6hq"
+  }
+ },
+ {
   "ename": "sis",
   "commit": "bea2374d589869dde682db96c35c530a051de3a9",
   "sha256": "0zkfpmnnj30l36mcv90x90vs31x8q2rrs2ixy5w8lc96vn1dgavf",
@@ -98388,11 +98899,11 @@
   "repo": "dawranliou/sketch-themes",
   "unstable": {
    "version": [
-    20211022,
-    1915
+    20211209,
+    1708
    ],
-   "commit": "8083d2b3e7834c7e4531a6a7882ffa4058aee4c3",
-   "sha256": "0axdrscidpxr4zj88xj53zjfhd5jxbmsg4la4kwsk4krkywp6fm1"
+   "commit": "f0425fb8d2c78a414c653d7bd1b3bf4d282afa1a",
+   "sha256": "0vfq8yhskprhj80wag7r82vzlgf8avj1v612yxi510c2wjrnygzq"
   },
   "stable": {
    "version": [
@@ -98534,8 +99045,8 @@
   "repo": "yuya373/emacs-slack",
   "unstable": {
    "version": [
-    20210712,
-    628
+    20211129,
+    310
    ],
    "deps": [
     "alert",
@@ -98545,8 +99056,8 @@
     "request",
     "websocket"
    ],
-   "commit": "ae1d742a0193fba38698931055708a28cc382bcf",
-   "sha256": "0292z0pzvwg85pr1g3xsglp9rkna6k7b0frbm5r43yr91sr0vv3f"
+   "commit": "ff46d88726482211e3ac3d0b9c95dd4fdffe11c2",
+   "sha256": "15g4dmy4iqqpk8ivhkpsngzllbw0nc5d2sc9j36sdnhwkajzhidj"
   }
  },
  {
@@ -98847,11 +99358,11 @@
   "repo": "joaotavora/sly",
   "unstable": {
    "version": [
-    20211114,
-    1021
+    20211121,
+    1002
    ],
-   "commit": "8b1b968651c6d1a8699d16c3a03d0d1e83ecca3d",
-   "sha256": "10yx6mhfdd79nl3qz5bj275i400hnnr5r951h84xif0hclhr1bxn"
+   "commit": "0470c0281498b9de072fcbf3718fc66720eeb3d0",
+   "sha256": "1ws2a9azmdkkg47xnd4jggna45nf0bh54gyp0799b44c4bgjp029"
   },
   "stable": {
    "version": [
@@ -98957,14 +99468,14 @@
   "repo": "joaotavora/sly-quicklisp",
   "unstable": {
    "version": [
-    20200707,
-    1635
+    20211206,
+    948
    ],
    "deps": [
     "sly"
    ],
-   "commit": "4707b62803d7a29f172e9c5ff993b91187a9aaf3",
-   "sha256": "1i4fqgd42khl85d4fifgfz2z6njpb8bxdry4chmgl8wfhh0mydza"
+   "commit": "34c73d43dd9066262387c626c17a9b486db07b2d",
+   "sha256": "13qjscsgbpzb7bvpybglx46p3nvzdv10v3king9za54qig4gi0v0"
   }
  },
  {
@@ -99024,11 +99535,11 @@
   "repo": "zenitani/elisp",
   "unstable": {
    "version": [
-    20201029,
-    1600
+    20211127,
+    1702
    ],
-   "commit": "2edfcf2004ce927f11ca9cb43e2e4b93f43524a9",
-   "sha256": "17bf25jyqryz6i8viljqcv9fszfllfzwrgps4685xm0gjxxys62q"
+   "commit": "df771e8cf0f7d5ed455c74bf7d9c1e366f47922f",
+   "sha256": "1kglk255ifnwkv3skdks78rq53f5qb0h5qb6yv7cmzp2aprs5p0l"
   }
  },
  {
@@ -99970,14 +100481,14 @@
   "repo": "md-arif-shaikh/soccer",
   "unstable": {
    "version": [
-    20211023,
-    827
+    20211207,
+    1623
    ],
    "deps": [
     "dash"
    ],
-   "commit": "d59b7196a62edb0e72eef52772eec42cab8baa45",
-   "sha256": "1hdp7lcr7pdary7qssf2na6a3n0ycijbx3z0ggk37gxzvz59jiv4"
+   "commit": "b5ba10fe43e43fa40617e2936572add10c72b865",
+   "sha256": "09kkbk5rsjdkajqmq8xkgl4xd9b3c96bp823zfal18jq5jcf2x8j"
   },
   "stable": {
    "version": [
@@ -100081,26 +100592,26 @@
   "repo": "hlissner/emacs-solaire-mode",
   "unstable": {
    "version": [
-    20211114,
-    1644
+    20211213,
+    102
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "87c2efd11b4b71e000d8a464eb694852e22aa0e7",
-   "sha256": "058cflb2199yb2qpzhf5hckz4cknsxqpglmz4nvnfv6k2xbnijpb"
+   "commit": "8af65fbdc50b25ed3214da949b8a484527c7cc14",
+   "sha256": "1lkm09wznal0grpz61ikc77mjrri1x1bi79qwyf1cah9s0wv3isq"
   },
   "stable": {
    "version": [
     2,
     0,
-    3
+    4
    ],
    "deps": [
     "cl-lib"
    ],
-   "commit": "46408f4a105e216c3c2d88659b8b28601d37d80e",
-   "sha256": "0wq5ckwx3wv4c4l8f9hz3ak6v5wy4lg5yh8xlsgn1h1x6yf8afpp"
+   "commit": "8af65fbdc50b25ed3214da949b8a484527c7cc14",
+   "sha256": "1lkm09wznal0grpz61ikc77mjrri1x1bi79qwyf1cah9s0wv3isq"
   }
  },
  {
@@ -100602,8 +101113,8 @@
   "repo": "TheBB/spaceline",
   "unstable": {
    "version": [
-    20201016,
-    1043
+    20211120,
+    1636
    ],
    "deps": [
     "cl-lib",
@@ -100611,8 +101122,8 @@
     "powerline",
     "s"
    ],
-   "commit": "50cc5b26d823bbfd347becd7da03cd29c2a2a0dc",
-   "sha256": "0yyq8jppsa95m78fr7kfixl20qi8zpgkla64sv1a0v8x42nws02p"
+   "commit": "9a81afa52738544ad5e8b71308a37422ca7e25ba",
+   "sha256": "0m4542wba9zi18qv8lzhgz8f9dbf01l3dca7vv7i0wmnjsg9bsj9"
   },
   "stable": {
    "version": [
@@ -100792,11 +101303,11 @@
   "repo": "condy0919/spdx.el",
   "unstable": {
    "version": [
-    20211003,
-    611
+    20211202,
+    1925
    ],
-   "commit": "67e276ad37a0cf3754798b436e54792816a6d3f2",
-   "sha256": "02vflf5j1g4f81xywfr9vi5bb3raxpp1az650qin90g8irkjhy4z"
+   "commit": "4d1ce0ca8a4c84667301b3e347fe594989c25e60",
+   "sha256": "0fmaxsx6yn3j9i4k6kzap0s2fc5899j623sz9v71g5pjg4pfwmyy"
   }
  },
  {
@@ -100923,11 +101434,11 @@
   "repo": "ideasman42/emacs-spell-fu",
   "unstable": {
    "version": [
-    20211108,
-    203
+    20211121,
+    701
    ],
-   "commit": "570ccd84edddb60e6fc0f6bde5a9fb9b07ed2aa0",
-   "sha256": "0n9b3b8lgr9g4xc5md11agbpr1b7ahpdxphnwy473vw1fzgnj1fl"
+   "commit": "b2da2874f3227c0a969be80946e0c4ea455e8458",
+   "sha256": "1rbczz0i2jddh96ln65kf1gji7rg28lr1kh03p4py46vn6bm9xpd"
   }
  },
  {
@@ -101708,11 +102219,11 @@
   "repo": "stan-dev/stan-mode",
   "unstable": {
    "version": [
-    20210130,
-    1325
+    20211129,
+    2051
    ],
-   "commit": "9bb858b9f1314dcf1a5df23e39f9af522098276b",
-   "sha256": "031418nkp9qwlxda8i3ankp3lq94sv8a8ijwrbcwb4w3ssr9j3ds"
+   "commit": "150bbbe5fd3ad2b5a3dbfba9d291e66eeea1a581",
+   "sha256": "06y4gvw8g4mjyiv77rznivqphh9sayjmi9aqr9nhxlf6i19a6hqh"
   },
   "stable": {
    "version": [
@@ -101732,15 +102243,15 @@
   "repo": "stan-dev/stan-mode",
   "unstable": {
    "version": [
-    20210130,
-    1325
+    20211129,
+    2051
    ],
    "deps": [
     "stan-mode",
     "yasnippet"
    ],
-   "commit": "9bb858b9f1314dcf1a5df23e39f9af522098276b",
-   "sha256": "031418nkp9qwlxda8i3ankp3lq94sv8a8ijwrbcwb4w3ssr9j3ds"
+   "commit": "150bbbe5fd3ad2b5a3dbfba9d291e66eeea1a581",
+   "sha256": "06y4gvw8g4mjyiv77rznivqphh9sayjmi9aqr9nhxlf6i19a6hqh"
   },
   "stable": {
    "version": [
@@ -101943,8 +102454,8 @@
     20200606,
     1308
    ],
-   "commit": "d5bef96e847b50bd436725fa3b102f0c41b56bae",
-   "sha256": "1x2fyh6xyd1xzyhk1pk5x23j3if11rm8zpl75izkc3y6vw37haa3"
+   "commit": "759a38bd8418116e8cdca41a8aacd7ae13ede93e",
+   "sha256": "0xyddk3mj36mknnadjyi9fdpv24zqfzz8bvfn4dlf2qknlb8b9l5"
   },
   "stable": {
    "version": [
@@ -102454,26 +102965,26 @@
   "url": "https://git.sr.ht/~amk/subsonic.el",
   "unstable": {
    "version": [
-    20211016,
-    940
+    20211201,
+    939
    ],
    "deps": [
     "transient"
    ],
-   "commit": "a070cff3f802796dd0dbab4b2ebfbb9f05c36b0b",
-   "sha256": "12j0czk3hgpkm7sxpabwii67q2gfj97f51akhnysdzrm82yb4p60"
+   "commit": "ee2b1f20521e647472be7553242eb2253809e1d1",
+   "sha256": "1j8q47vvvsdfb9hg2r72dgmg2a886aa15yrvi6ahp7g5z4jmp19k"
   },
   "stable": {
    "version": [
     0,
-    2,
+    3,
     0
    ],
    "deps": [
     "transient"
    ],
-   "commit": "5740a2b96c827c499f3ac506f98ec5f9ed31ea37",
-   "sha256": "0qr96a86zj6kipix6p831hj0nkcyj3kvaggyy2zsmvhx7wjavadf"
+   "commit": "ee2b1f20521e647472be7553242eb2253809e1d1",
+   "sha256": "1j8q47vvvsdfb9hg2r72dgmg2a886aa15yrvi6ahp7g5z4jmp19k"
   }
  },
  {
@@ -103448,8 +103959,8 @@
     "seq",
     "undo-tree"
    ],
-   "commit": "ce33a7858481da2a1a07558b0932b19328d3449b",
-   "sha256": "017a6bmacfcwqy7x89pzpgkqpipl8i5hbp429cqpw7xdhjwgc2in"
+   "commit": "c042fffef1d575eb356bf585ec78f1606d3349ad",
+   "sha256": "00f9ky5nkivh2b90swgl3aq4xhwvva97xxyr2pdlnmf8v9jlk1p0"
   },
   "stable": {
    "version": [
@@ -104124,8 +104635,8 @@
     20210415,
     1322
    ],
-   "commit": "5eacb6c1c879038c4448c10b3df9a73d95a48fc3",
-   "sha256": "0k7y7lxdgj73mmrs228l7m9b9fdzjjw8knqzwhkvqb5bb93ii6fm"
+   "commit": "d13f93a8e11aa9f3b8544e51028b012c33d5c97d",
+   "sha256": "1c3cqvsq96vx8f5aa0iyv6kr5309xp0f1b1w579s6p30nhirw4my"
   },
   "stable": {
    "version": [
@@ -104312,15 +104823,15 @@
   "repo": "zevlg/telega.el",
   "unstable": {
    "version": [
-    20211116,
-    1246
+    20211213,
+    2017
    ],
    "deps": [
     "rainbow-identifiers",
     "visual-fill-column"
    ],
-   "commit": "9bc087dab6d2503da41881132664f5c0c979f4b6",
-   "sha256": "1s3p9ndwiv08wh30i9rgdm2lz3a4xj9in2y4rrhywq4gnd5zbz7d"
+   "commit": "737399c5050b68cea618e01136c463107c6125a1",
+   "sha256": "0has60kmjy6ysax6xdn22likvi9qygz3znz24v8mfwzxasil5nhw"
   },
   "stable": {
    "version": [
@@ -104400,11 +104911,11 @@
   "repo": "lassik/emacs-teletext",
   "unstable": {
    "version": [
-    20211016,
-    2156
+    20211203,
+    1111
    ],
-   "commit": "e6e4ad4231f916d69f34a389f0b4cede6e04c951",
-   "sha256": "06iv3y6ij484n2gx46yby0whb8q99h7gb40rwialravgbpfj4xw9"
+   "commit": "6b003e9dab9bd0c27d188a81f5fff740d66a2282",
+   "sha256": "0ilallavqhqjsxh37gga5k2pgz8jiwxssfhj1jlf7nj89gn2ana6"
   }
  },
  {
@@ -104454,8 +104965,8 @@
     20210902,
     228
    ],
-   "commit": "e1ccb88cdc4b482b078276960f810b82ba3b7847",
-   "sha256": "0wy53y7p6i0m9az0ca4zqrqfq40cgn202pilsawdy8rlpj9y619p"
+   "commit": "b52349948b6927f7a5da4e54a89e01c794f2095a",
+   "sha256": "1z5bcd3654zkm89mkx29bcybs97zmwi14xdmbh356di9jbwzk93s"
   },
   "stable": {
    "version": [
@@ -105104,11 +105615,11 @@
   "repo": "Dspil/text-categories",
   "unstable": {
    "version": [
-    20211031,
-    947
+    20211130,
+    1719
    ],
-   "commit": "d400c2692373c14d7cf773e7ae587cbe9c7d1e13",
-   "sha256": "1wbx74pc0lzb51gs43zhs66jid4kyaavcgckx37m5m05k17kdv97"
+   "commit": "b6afe804e23c624eec2af0f2a5c04bdcdfd833b5",
+   "sha256": "0p63ypxfd4s0ywmja3ynyn0i9mirgv8kyr2wj4a0i20havxd29gz"
   }
  },
  {
@@ -105418,18 +105929,18 @@
     20200212,
     1903
    ],
-   "commit": "c0cc1a6b7273feb1049206f58da5f469e28b56a9",
-   "sha256": "0pkwa42r33l30ddnmy8hkflwirf3xnv4fi5a6zxsm3ibi7z649fm"
+   "commit": "e1286496d4ffe5cfcb97e818b7c0f4a5acdfd4d1",
+   "sha256": "16xmix97xvivjd4g87m6fdh7ffqlwjy0y9la3x4nmxbppkbakmhi"
   },
   "stable": {
    "version": [
     2021,
-    11,
-    15,
+    12,
+    13,
     0
    ],
-   "commit": "7f44dce741f17712a5671b09f495059bd1f68d09",
-   "sha256": "1jldrq95cb2g27my88k98c8p33kbk04l0rc8vpwlyyxr602cx7k9"
+   "commit": "d99cd8529957d7595602038e55bc5cea26126b3f",
+   "sha256": "0c1aylvj0f1s6d98fza4lz806b96pb7d1677j3hfjkk8sv3cg5wf"
   }
  },
  {
@@ -105485,8 +105996,8 @@
    "deps": [
     "haskell-mode"
    ],
-   "commit": "be7c02a4df03d695c8f8dca80817a736905ecf47",
-   "sha256": "1lh92rzafapx6yi7r24yzrxgv2v6wqvzg62j0pd3zqa6s499v4k9"
+   "commit": "b0a5a3f64b1121fb83d67922f820ed168f45c84c",
+   "sha256": "1p262x6x0rxj5hh0v720h0k5x231827p5bd6qpbn4i1gdrnr3gp1"
   },
   "stable": {
    "version": [
@@ -105734,11 +106245,11 @@
   "repo": "aimebertrand/timu-spacegrey-theme",
   "unstable": {
    "version": [
-    20211115,
-    2323
+    20211213,
+    33
    ],
-   "commit": "2934363d32ba6e817e789d5ecf5e68a51cfc0e8d",
-   "sha256": "001h23yhqys90dpqka4m3zcdnwbfxvjii5lxmj67shblslx5f4sl"
+   "commit": "17b7b89334a6a87b58eaacdd54b1c2bea9b7314f",
+   "sha256": "0cvkfzf2pk8qhp2s40nv1rqqg7kayvxi4x6vlh8ggsnxbw80hj11"
   },
   "stable": {
    "version": [
@@ -105902,11 +106413,11 @@
   "repo": "dalanicolai/toc-mode",
   "unstable": {
    "version": [
-    20210714,
-    725
+    20211127,
+    801
    ],
-   "commit": "977bec00d8d448ad2a5e2e4c17b9c9ba3e194ec2",
-   "sha256": "1yshkvsa5g6gxn9agf4z5ks5bd43l4akdcblxfgqkpshp25y5plv"
+   "commit": "d5629c71652d80c5c515d30cdafb345f5a0b7595",
+   "sha256": "0jdck6if9adqwvdh0j6hx3jvr6y9mpr2hflr4lbs5pm4criq88ah"
   }
  },
  {
@@ -105926,11 +106437,11 @@
   "stable": {
    "version": [
     1,
-    1,
+    2,
     0
    ],
-   "commit": "4315afd2a408c0d432ba3d8d040c2326c222fdbf",
-   "sha256": "0lk0rji85a1c0c5r9an0fdvsm4n4jyixsknmr8ywha3lfmc2p0l8"
+   "commit": "df4ad6ff15e3b02f6322305638a441a636b9b37e",
+   "sha256": "00a2al7ghrlabf65kfj1mk30p2pl37h6ppwlgghbgiy7rwlzkdbm"
   }
  },
  {
@@ -106065,6 +106576,21 @@
   }
  },
  {
+  "ename": "tok-theme",
+  "commit": "0ce13bfb5447542d1d582ead6a68e3b69fa739c7",
+  "sha256": "14yka2q185bpg9xkkhkcziirf78ki5lkql470hii4nxq18b8d7zc",
+  "fetcher": "github",
+  "repo": "topikettunen/tok-theme",
+  "unstable": {
+   "version": [
+    20211203,
+    2240
+   ],
+   "commit": "631e8b0b5e72983104084256d30b01ba4bc41e94",
+   "sha256": "10ajqxjwvyv79m5r8k1l98qclrdzlvr78kjlwvnn7dxlv91vrds0"
+  }
+ },
+ {
   "ename": "tomatinho",
   "commit": "3fe20de5b2b5e5abe5be7468cea7c87f5b26b237",
   "sha256": "1ad3kr73v75vjrc09mdvb7a3ws834k5y5xha3v0ldah38cl1pmjz",
@@ -106339,14 +106865,14 @@
   "repo": "trueroad/tr-emacs-ime-module",
   "unstable": {
    "version": [
-    20211114,
-    440
+    20211120,
+    718
    ],
    "deps": [
     "w32-ime"
    ],
-   "commit": "c35be849f2cf5470e9d9cc40ff54e285e5170e93",
-   "sha256": "0sy33f8c9l0189qhm8q2whb6yrsir52fqqq3wh54qkbqc8vvg7py"
+   "commit": "e6313639afb51d91efcc417bd0c81afd13bb079c",
+   "sha256": "0hcqpvvjndddwcg81c2xz3msjghilym5lvbayc6wj0hk47xs9ylc"
   },
   "stable": {
    "version": [
@@ -106518,11 +107044,11 @@
   "repo": "magit/transient",
   "unstable": {
    "version": [
-    20211105,
-    100
+    20211208,
+    1819
    ],
-   "commit": "349116159f707a474926b47e5f6b6240e8997a4d",
-   "sha256": "1yzjdr9rdxax8gcd0k978v9akb1wk2ff14wfigiaqkvqs3sd8zxy"
+   "commit": "459e28e28a5f29e4dd59c7d61ec8557ce9b57ef3",
+   "sha256": "1wq4d44lhifg7mhyqih1bbx42krm3j6q5fs58yibs05fd6h2zpdz"
   },
   "stable": {
    "version": [
@@ -106762,8 +107288,8 @@
   "repo": "ethan-leba/tree-edit",
   "unstable": {
    "version": [
-    20211116,
-    1613
+    20211211,
+    2301
    ],
    "deps": [
     "dash",
@@ -106773,8 +107299,8 @@
     "tree-sitter-langs",
     "tsc"
    ],
-   "commit": "6fd445dbeb158d05d785965077cc594aeeb73a61",
-   "sha256": "0h1zjdqxynxxlqdc9yxhmkjwarx4vn9anasv9i68fcmmnq7c0aw9"
+   "commit": "1a670b73cd990af3b08633b01f84b57edaeb92ba",
+   "sha256": "1sr8h96rzghxbs42rzv0c2abhrydjsxf98hijnffa7yqd8gffjdr"
   }
  },
  {
@@ -106794,31 +107320,32 @@
  },
  {
   "ename": "tree-sitter",
-  "commit": "cb5169a41c3284f1fe1887cd2d32f9e98e34fbe0",
-  "sha256": "1n08rsf1cmxsrpld9j78a8smzckcpg006za93h464gfqls4y2kl2",
+  "commit": "f07a741d1a14f99a634041cc9b4c200e75461ae5",
+  "sha256": "0rnk77pk0rmfl9azag4l2q3x2f1achykxjdm0q7aj82rvf60f5mb",
   "fetcher": "github",
   "repo": "emacs-tree-sitter/elisp-tree-sitter",
   "unstable": {
    "version": [
-    20210912,
-    1211
+    20211211,
+    1220
    ],
    "deps": [
     "tsc"
    ],
-   "commit": "2acca5c8d2e3dc66d4d0a99831b33140b5a5f973",
-   "sha256": "00qlrjh3my8w96lvxx3bfx8pshr58irzmrnvr8qrkwzyv3hs0rbl"
+   "commit": "48b06796a3b2e76ce004972d929de38146eafaa0",
+   "sha256": "04dlwpi5w1g9v62l51zwa6idsajk6km39ljk2k9z3jrcs0fj22ml"
   },
   "stable": {
    "version": [
     0,
-    15
+    16,
+    1
    ],
    "deps": [
     "tsc"
    ],
-   "commit": "2acca5c8d2e3dc66d4d0a99831b33140b5a5f973",
-   "sha256": "00qlrjh3my8w96lvxx3bfx8pshr58irzmrnvr8qrkwzyv3hs0rbl"
+   "commit": "48b06796a3b2e76ce004972d929de38146eafaa0",
+   "sha256": "04dlwpi5w1g9v62l51zwa6idsajk6km39ljk2k9z3jrcs0fj22ml"
   }
  },
  {
@@ -106829,15 +107356,15 @@
   "url": "https://codeberg.org/FelipeLema/tree-sitter-indent.el.git",
   "unstable": {
    "version": [
-    20210322,
-    2033
+    20211128,
+    2236
    ],
    "deps": [
     "seq",
     "tree-sitter"
    ],
-   "commit": "18d263720c5a8f7fde0db368c7c36ea70437fc0b",
-   "sha256": "0iwi44309837hx0sl8py175ayn7haannp1sz2d0jk7binka7n4md"
+   "commit": "5f80e89b7da2074ea7f083b769448eb7026865dc",
+   "sha256": "14pi0vv193vpbwd4kb86hsnv1h8j9pcclvipp1wllv3nxw8k2ypk"
   },
   "stable": {
    "version": [
@@ -106854,31 +107381,32 @@
  },
  {
   "ename": "tree-sitter-langs",
-  "commit": "cb5169a41c3284f1fe1887cd2d32f9e98e34fbe0",
-  "sha256": "0dqz421vwbgmp83nib9jigwi0rayb9hqsralwhj0139w6jkvxmmb",
+  "commit": "f07a741d1a14f99a634041cc9b4c200e75461ae5",
+  "sha256": "0pnnx21kip0ghb6p1x288kc79p3alcb4xyya02h8alcxz4dxlhqj",
   "fetcher": "github",
   "repo": "emacs-tree-sitter/tree-sitter-langs",
   "unstable": {
    "version": [
-    20210918,
-    1621
+    20211213,
+    159
    ],
    "deps": [
     "tree-sitter"
    ],
-   "commit": "2b845a70080c0edd66f13200b9dc8d6d0c3f42ce",
-   "sha256": "0w3jzy4n445nrbcj7i46nbg7jk81gjqjs6zahsjnal8dhyjqaymi"
+   "commit": "c66b03faba230868b7cb644e0b49ff64a47f6ab4",
+   "sha256": "072y9cmyn926w5vlf6flj83j3n87w6qy7jx9akrnbys0907c17s8"
   },
   "stable": {
    "version": [
     0,
-    10
+    10,
+    13
    ],
    "deps": [
     "tree-sitter"
    ],
-   "commit": "28e98d52e8516d73cce76e7ce5c6294a9728bb56",
-   "sha256": "1zy1wjw6ixpl5mw8f3drp47w256xbbzgxrgs2kpgj0w7wif10yjc"
+   "commit": "e537b90bbca6b4deb62042240ed12461251b3f0c",
+   "sha256": "16i3j7iv77l9cqqc2f8ynywhpapgm5sdbvq506h0swk8rg81hsnz"
   }
  },
  {
@@ -106925,8 +107453,8 @@
   "repo": "Alexander-Miller/treemacs",
   "unstable": {
    "version": [
-    20211115,
-    2031
+    20211213,
+    2100
    ],
    "deps": [
     "ace-window",
@@ -106938,8 +107466,8 @@
     "pfuture",
     "s"
    ],
-   "commit": "d00cc19cab8df4fec7ed6608e00bd16fe797369a",
-   "sha256": "167jn29vqx5q5nd2ja9bi1srz623zmq7jpd79al0s98ngnw8hpr7"
+   "commit": "babf69971ed4c3469b0cdf6a3bf7b637bed1ab18",
+   "sha256": "1s8csgnbcyjkbycx8hwsmzd37fhs7m7qr5mn4k91j5v3vm8ndjb8"
   },
   "stable": {
    "version": [
@@ -106976,8 +107504,8 @@
     "all-the-icons",
     "treemacs"
    ],
-   "commit": "d00cc19cab8df4fec7ed6608e00bd16fe797369a",
-   "sha256": "167jn29vqx5q5nd2ja9bi1srz623zmq7jpd79al0s98ngnw8hpr7"
+   "commit": "babf69971ed4c3469b0cdf6a3bf7b637bed1ab18",
+   "sha256": "1s8csgnbcyjkbycx8hwsmzd37fhs7m7qr5mn4k91j5v3vm8ndjb8"
   },
   "stable": {
    "version": [
@@ -107008,8 +107536,8 @@
     "evil",
     "treemacs"
    ],
-   "commit": "d00cc19cab8df4fec7ed6608e00bd16fe797369a",
-   "sha256": "167jn29vqx5q5nd2ja9bi1srz623zmq7jpd79al0s98ngnw8hpr7"
+   "commit": "babf69971ed4c3469b0cdf6a3bf7b637bed1ab18",
+   "sha256": "1s8csgnbcyjkbycx8hwsmzd37fhs7m7qr5mn4k91j5v3vm8ndjb8"
   },
   "stable": {
    "version": [
@@ -107039,8 +107567,8 @@
    "deps": [
     "treemacs"
    ],
-   "commit": "d00cc19cab8df4fec7ed6608e00bd16fe797369a",
-   "sha256": "167jn29vqx5q5nd2ja9bi1srz623zmq7jpd79al0s98ngnw8hpr7"
+   "commit": "babf69971ed4c3469b0cdf6a3bf7b637bed1ab18",
+   "sha256": "1s8csgnbcyjkbycx8hwsmzd37fhs7m7qr5mn4k91j5v3vm8ndjb8"
   },
   "stable": {
    "version": [
@@ -107071,8 +107599,8 @@
     "pfuture",
     "treemacs"
    ],
-   "commit": "d00cc19cab8df4fec7ed6608e00bd16fe797369a",
-   "sha256": "167jn29vqx5q5nd2ja9bi1srz623zmq7jpd79al0s98ngnw8hpr7"
+   "commit": "babf69971ed4c3469b0cdf6a3bf7b637bed1ab18",
+   "sha256": "1s8csgnbcyjkbycx8hwsmzd37fhs7m7qr5mn4k91j5v3vm8ndjb8"
   },
   "stable": {
    "version": [
@@ -107105,8 +107633,8 @@
     "persp-mode",
     "treemacs"
    ],
-   "commit": "d00cc19cab8df4fec7ed6608e00bd16fe797369a",
-   "sha256": "167jn29vqx5q5nd2ja9bi1srz623zmq7jpd79al0s98ngnw8hpr7"
+   "commit": "babf69971ed4c3469b0cdf6a3bf7b637bed1ab18",
+   "sha256": "1s8csgnbcyjkbycx8hwsmzd37fhs7m7qr5mn4k91j5v3vm8ndjb8"
   },
   "stable": {
    "version": [
@@ -107139,8 +107667,8 @@
     "perspective",
     "treemacs"
    ],
-   "commit": "d00cc19cab8df4fec7ed6608e00bd16fe797369a",
-   "sha256": "167jn29vqx5q5nd2ja9bi1srz623zmq7jpd79al0s98ngnw8hpr7"
+   "commit": "babf69971ed4c3469b0cdf6a3bf7b637bed1ab18",
+   "sha256": "1s8csgnbcyjkbycx8hwsmzd37fhs7m7qr5mn4k91j5v3vm8ndjb8"
   },
   "stable": {
    "version": [
@@ -107172,8 +107700,8 @@
     "projectile",
     "treemacs"
    ],
-   "commit": "d00cc19cab8df4fec7ed6608e00bd16fe797369a",
-   "sha256": "167jn29vqx5q5nd2ja9bi1srz623zmq7jpd79al0s98ngnw8hpr7"
+   "commit": "babf69971ed4c3469b0cdf6a3bf7b637bed1ab18",
+   "sha256": "1s8csgnbcyjkbycx8hwsmzd37fhs7m7qr5mn4k91j5v3vm8ndjb8"
   },
   "stable": {
    "version": [
@@ -107423,25 +107951,26 @@
  },
  {
   "ename": "tsc",
-  "commit": "cb5169a41c3284f1fe1887cd2d32f9e98e34fbe0",
-  "sha256": "0di9v57sn2b6dvgf7id409drk9ir65brv2mdigk54gra8801fk64",
+  "commit": "f07a741d1a14f99a634041cc9b4c200e75461ae5",
+  "sha256": "03g9wyna387bcmqcb1z4g5ybmlsxh3vg24i0x3ynvkm8knj8nl2v",
   "fetcher": "github",
   "repo": "emacs-tree-sitter/elisp-tree-sitter",
   "unstable": {
    "version": [
-    20210912,
-    1211
+    20211211,
+    1220
    ],
-   "commit": "2acca5c8d2e3dc66d4d0a99831b33140b5a5f973",
-   "sha256": "00qlrjh3my8w96lvxx3bfx8pshr58irzmrnvr8qrkwzyv3hs0rbl"
+   "commit": "48b06796a3b2e76ce004972d929de38146eafaa0",
+   "sha256": "04dlwpi5w1g9v62l51zwa6idsajk6km39ljk2k9z3jrcs0fj22ml"
   },
   "stable": {
    "version": [
     0,
-    15
+    16,
+    1
    ],
-   "commit": "2acca5c8d2e3dc66d4d0a99831b33140b5a5f973",
-   "sha256": "00qlrjh3my8w96lvxx3bfx8pshr58irzmrnvr8qrkwzyv3hs0rbl"
+   "commit": "48b06796a3b2e76ce004972d929de38146eafaa0",
+   "sha256": "04dlwpi5w1g9v62l51zwa6idsajk6km39ljk2k9z3jrcs0fj22ml"
   }
  },
  {
@@ -107517,8 +108046,8 @@
    "deps": [
     "caml"
    ],
-   "commit": "00faf47a7c65e4cdcf040f38add1c6a08cd2ee2f",
-   "sha256": "1rjz11q9ww5bvmfp2jri0nlrv9aiw7qzl80wlkmkcv7lv3qmvblb"
+   "commit": "b9a145510518c855d5057a1e1b19a32125975202",
+   "sha256": "1jzsjxi1b6cnjrrzbrprlb2rqm5zjnhhzjj58r4aa8mkl1y04n6k"
   },
   "stable": {
    "version": [
@@ -107775,11 +108304,11 @@
   "repo": "emacs-typescript/typescript.el",
   "unstable": {
    "version": [
-    20211022,
-    1051
+    20211130,
+    1332
    ],
-   "commit": "13e6da6c5746187842d8ebb5323bf2d88d5759c2",
-   "sha256": "1vqx8nzjnjj4980yzlcn2bpph7rjmk0b7nblfspn8xp83iw3cd2m"
+   "commit": "e82416205158d4b21d42d6b60c4385f68f0ae1b1",
+   "sha256": "1gidnpwk4n9zsrv9jxb7fmn3i46sggncv62w1aaw6g6v8h3yj5ad"
   },
   "stable": {
    "version": [
@@ -109150,20 +109679,20 @@
    "deps": [
     "tuareg"
    ],
-   "commit": "c87b8b2817eefd0cd53564618911386b89b587c5",
-   "sha256": "1zf4hg33sblzh2f65vk0292jg4jlwa8702kfwpsg1kcg4w6nsfdp"
+   "commit": "676e2cd6545fd327e02330d1ccb20c02d6b26eab",
+   "sha256": "1mdpqc1b67p5rm2jsbwy0gjjgdlfqcakjyh1cwdj959ykz4zy9ld"
   },
   "stable": {
    "version": [
     2,
-    8,
+    9,
     0
    ],
    "deps": [
     "tuareg"
    ],
-   "commit": "c87b8b2817eefd0cd53564618911386b89b587c5",
-   "sha256": "1zf4hg33sblzh2f65vk0292jg4jlwa8702kfwpsg1kcg4w6nsfdp"
+   "commit": "676e2cd6545fd327e02330d1ccb20c02d6b26eab",
+   "sha256": "1mdpqc1b67p5rm2jsbwy0gjjgdlfqcakjyh1cwdj959ykz4zy9ld"
   }
  },
  {
@@ -109264,20 +109793,20 @@
   "repo": "ottbot/vagrant.el",
   "unstable": {
    "version": [
-    20170301,
-    2206
+    20211206,
+    1634
    ],
-   "commit": "636ce2f9af32ea199170335a9cf1201b64873440",
-   "sha256": "06zws69z327p00jw3zaf67niji2d4j339xmhbsrwbcr4w65dmz94"
+   "commit": "a232b7385178d5b029ccc5274dfa9b56e5ba43a1",
+   "sha256": "1i345jyhh1g10hlcvs3c34glk5r09k1i4dxmmrwfhpy1f759h10m"
   },
   "stable": {
    "version": [
     0,
     6,
-    1
+    2
    ],
-   "commit": "ef3022d290ee26597e21b17ab87acbd8d4f1071f",
-   "sha256": "1661fwfx2gpxjriy3ngi9raz8c2kkk3rgg51irdi591jr2zqmw6s"
+   "commit": "636ce2f9af32ea199170335a9cf1201b64873440",
+   "sha256": "06zws69z327p00jw3zaf67niji2d4j339xmhbsrwbcr4w65dmz94"
   }
  },
  {
@@ -110332,17 +110861,17 @@
  },
  {
   "ename": "visual-fill-column",
-  "commit": "39ada1dc39158e956a1251cd41cfa2259b51da21",
-  "sha256": "1bbly6sd77cnxl1c4n24039cgfwn0mcq6l3jgyh8z7bk6lnsjfw2",
+  "commit": "76e7a6c9e67bcea5b681dacf6725f7e313f0c1a8",
+  "sha256": "1f9j1f95zr4gjcf2rk0fwn26n1g05xfk7qnazx2vgpx52904581w",
   "fetcher": "git",
-  "url": "https://codeberg.org/joostkremers/visual-fill-column",
+  "url": "https://codeberg.org/joostkremers/visual-fill-column.git",
   "unstable": {
    "version": [
-    20211110,
-    2317
+    20211118,
+    33
    ],
-   "commit": "ae4edc225acea12a035c0586185847306ecb06ef",
-   "sha256": "18qac66mpvgmp1pw0lvarjngwh9cx75an44n1pg2msbxkkm98zkj"
+   "commit": "cf3e2bc632b68d54145c79beede85d3458a337de",
+   "sha256": "0wj6c6q1sn7q1ywkm3fyl7z967jsl5g2xp3niwqv4kz9bs60aw6v"
   },
   "stable": {
    "version": [
@@ -110666,11 +111195,11 @@
   "repo": "akermu/emacs-libvterm",
   "unstable": {
    "version": [
-    20210908,
-    640
+    20211209,
+    58
    ],
-   "commit": "2681120b770573044832ba8c22ccbac192e1a294",
-   "sha256": "173qhfj5h4xd8rrf4avzknp24hzl0nlxs783pr7900d980cpbygr"
+   "commit": "ed6e867cfab77c5a311a516d20af44f57526cfdc",
+   "sha256": "0mq2q7yj09812iklj49n8p3kfpk1l6az33hr2dyxyl5i2nqps0vs"
   }
  },
  {
@@ -110809,16 +111338,16 @@
   "repo": "d12frosted/vulpea",
   "unstable": {
    "version": [
-    20211115,
-    1433
+    20211118,
+    734
    ],
    "deps": [
     "org",
     "org-roam",
     "s"
    ],
-   "commit": "0c16e1c1adb45e8aaa32f06edc604e18d39179eb",
-   "sha256": "1217gni713nc5y37wfspnc5b790chri96an4hzv1jra33lazn49y"
+   "commit": "398ca17f83ea59f54f61898fefdb55332cd3ba46",
+   "sha256": "0qa49s0nhqbh9bmxi1zglnx3yajqcdx8j7yiy23lxbya2fpl557i"
   },
   "stable": {
    "version": [
@@ -110904,11 +111433,11 @@
   "repo": "emacs-w3m/emacs-w3m",
   "unstable": {
    "version": [
-    20211025,
-    2324
+    20211122,
+    335
    ],
-   "commit": "cb3b873063304ce5e1a5fd386c5f8c933964cd55",
-   "sha256": "19ly819cg5nnjcsr3aqk21hriyv2v8v64xfmyvk1j5p668y6mqkm"
+   "commit": "6112c6a9e13c00c2c7aecd96820a46b4800d4cda",
+   "sha256": "18c1rbcpxv289fbzl66lvyd41l1jhkia7296sksaqsgv9n79c2w6"
   }
  },
  {
@@ -111129,16 +111658,16 @@
   "repo": "wanderlust/wanderlust",
   "unstable": {
    "version": [
-    20211115,
-    1206
+    20211212,
+    909
    ],
    "deps": [
     "apel",
     "flim",
     "semi"
    ],
-   "commit": "aef23d6e50b7e29ff4ff11d288f36f6ba03f29ac",
-   "sha256": "06rj754ygv0455hkyb62ihqk844jx6cx18n5vixjmcws6hvpi9al"
+   "commit": "7b06ce86a925ce3c41a54ecacc3c27afbe00dcf1",
+   "sha256": "0p09rqaxwys2jhmlxlxf0xy3x42b183l3kbfrhbivagxpb10r608"
   }
  },
  {
@@ -111582,28 +112111,28 @@
   "repo": "etu/webpaste.el",
   "unstable": {
    "version": [
-    20210813,
-    1901
+    20211211,
+    658
    ],
    "deps": [
     "cl-lib",
     "request"
    ],
-   "commit": "bbdc5e5b689a787c6b4ae7690751fe9c10d6796e",
-   "sha256": "1pl02jvqnh6710maxxnbwy5cfdrhav61x9b4da76wdxhv9rhzjjr"
+   "commit": "78272662e6992b8614e79a571ff2395fa9630357",
+   "sha256": "07hj9nr7x6c9w2dnvc58cfbprgp9cqzdxflp5qlpglzdw0bi9s3c"
   },
   "stable": {
    "version": [
     3,
     2,
-    1
+    2
    ],
    "deps": [
     "cl-lib",
     "request"
    ],
-   "commit": "b063ddde87226281ce95f8ff0d7ce32d5dea29aa",
-   "sha256": "1d481pdnh7cnbyka7wn59czlci63zwfqms8n515svg92qm573ckd"
+   "commit": "78272662e6992b8614e79a571ff2395fa9630357",
+   "sha256": "07hj9nr7x6c9w2dnvc58cfbprgp9cqzdxflp5qlpglzdw0bi9s3c"
   }
  },
  {
@@ -111912,20 +112441,20 @@
   "repo": "justbur/emacs-which-key",
   "unstable": {
    "version": [
-    20210824,
-    11
+    20211209,
+    1317
    ],
-   "commit": "4790a14683a2f3e4f72ade197c78e4c0af1cdd4b",
-   "sha256": "1svz2048qabhy8z9m4p9q5lmdjr5i7vqnaw86x8gmn7vk052h5md"
+   "commit": "1bb1f723dab2fc8b88b7f7273d0a7fa11134b936",
+   "sha256": "0wz3bb7vzxqi3wqpn46z6ps00m9wjcpv9cfvqi7lyvm920sxzlv7"
   },
   "stable": {
    "version": [
     3,
     5,
-    3
+    4
    ],
-   "commit": "1f9c37d50f08995c8671822591c8babb893ccc6f",
-   "sha256": "144i3hkgm36wnfmqk5vq390snziy3zhwifbh6q6dzs99ic77d5g6"
+   "commit": "1bb1f723dab2fc8b88b7f7273d0a7fa11134b936",
+   "sha256": "0wz3bb7vzxqi3wqpn46z6ps00m9wjcpv9cfvqi7lyvm920sxzlv7"
   }
  },
  {
@@ -112224,15 +112753,15 @@
   "repo": "progfolio/wikinforg",
   "unstable": {
    "version": [
-    20210711,
-    302
+    20211210,
+    2116
    ],
    "deps": [
     "org",
     "wikinfo"
    ],
-   "commit": "31cf4a52990caa3f928b847ec25a5412836552bd",
-   "sha256": "0l13yi9iwi68n95wmxkjrf0zsmvxadpmxc7zm8x7v8kk5p7scnil"
+   "commit": "62842806fee863eb43c3015c3d86f5a7f0bf858f",
+   "sha256": "1rzxswfzg8lpwn1r7lq08rz7mrbrs5vr587phh60l26qpz6960c2"
   }
  },
  {
@@ -112602,8 +113131,8 @@
     20210405,
     1410
    ],
-   "commit": "a144cfd1604c308f65f990a1e994ab0d5d7fe244",
-   "sha256": "0q5ivjaxsw9ci40ap7qavziqjfbarlk7fwqivmndcgwnh0is3ddx"
+   "commit": "2c18054fb0151201f049029781a558275f78d5e5",
+   "sha256": "0dgkmwbniv5gazzaaxxwwnswrm17njdlj2frhr0079kzsddf5xd8"
   }
  },
  {
@@ -112647,8 +113176,8 @@
     20211028,
     2105
    ],
-   "commit": "cfe70f43c551852125bc139df467e28e1b6087df",
-   "sha256": "0i38y7kw0fpb1ii8bfiidh5xkinldzzz1c0i33zvwym76a28birb"
+   "commit": "d53df360e7abe31d61d6689ab39b62dfa7f064b1",
+   "sha256": "18643svb44mhjdqr0xaa56qq2lj5j7x3jnykg2vhxj9vrk528fj8"
   },
   "stable": {
    "version": [
@@ -113254,11 +113783,11 @@
   "repo": "redguardtoo/wucuo",
   "unstable": {
    "version": [
-    20210915,
-    1113
+    20211201,
+    1214
    ],
-   "commit": "cf4cfbcdc8e756986b927224a42a9006d070f36a",
-   "sha256": "1ach6c5y54gcfgq1nmgla7lri8mi7nja8a85slws4zxvl4b6802w"
+   "commit": "09fc58a02621b6c9615f8289c457e30ca6f63bcb",
+   "sha256": "15jva7qp723fpwv6f24300h8knmxrlsjb2icg9rzr0994g9f36qs"
   },
   "stable": {
    "version": [
@@ -113484,8 +114013,8 @@
   "repo": "dandavison/xenops",
   "unstable": {
    "version": [
-    20211102,
-    1607
+    20211121,
+    1953
    ],
    "deps": [
     "aio",
@@ -113495,8 +114024,8 @@
     "f",
     "s"
    ],
-   "commit": "61f4fe7b5cc2549ea7363635307279becac53ea7",
-   "sha256": "188p1lk7d6gbnshikb7qf646ljpcrsdssr0k9jd1vgga8iz22k0d"
+   "commit": "c5fafbc41ae5c4d20a1eb2de3b3226f8a55eb65e",
+   "sha256": "1lzd053b27jikgb10bpbihynx08c9c33fcswrykl0r5548qjwm4j"
   }
  },
  {
@@ -114494,11 +115023,11 @@
   "url": "https://www.yatex.org/hgrepos/yatex",
   "unstable": {
    "version": [
-    20210630,
-    2200
+    20211203,
+    2212
    ],
-   "commit": "d4831b3672f87affbb0f7f69135e7824d0bd325b",
-   "sha256": "0fga8zicxgmfw4px2zwfvwycl9hcqcwnf65izrbrj6rrljdbb3yv"
+   "commit": "907de32064c99c25fb49072438be7c1034892af3",
+   "sha256": "1anb8cwh2ph0nxxmsbi0kjkljxdsprdp4q2akqgb1xjpnlyf5g5j"
   }
  },
  {
@@ -115005,11 +115534,11 @@
   "repo": "zenobht/zeno-theme",
   "unstable": {
    "version": [
-    20181027,
-    118
+    20211205,
+    2148
    ],
-   "commit": "0914c4a5b1b9499e7f1ca5699b1c3ea2f4be3f1a",
-   "sha256": "1zl1ks7n35i9mn5w7ac3j15820fbgpbcmmysv25crvi4g9z94mqj"
+   "commit": "70fa7b7442f24ea25eab538b5a22da690745fef5",
+   "sha256": "10v6yf9c5qdsxrp6rk1n1xkv4byyfkinsikskdb2apjg05cx2273"
   }
  },
  {
@@ -115242,8 +115771,8 @@
   "repo": "WillForan/zim-wiki-mode",
   "unstable": {
    "version": [
-    20200908,
-    218
+    20211117,
+    2000
    ],
    "deps": [
     "dokuwiki-mode",
@@ -115252,8 +115781,8 @@
     "link-hint",
     "pretty-hydra"
    ],
-   "commit": "f65a2da6ea762532355fc726319ba3e3dd217ec2",
-   "sha256": "0m18giykwldj21zgv5rbni0pbpbrx5mnmkj5jyd2zpgwi1n7w3im"
+   "commit": "aa906931f22c34d77c65bed31121edfef714e4e2",
+   "sha256": "071xw635ik9jqlgmrzg11d826d3fsjgzyyj60jq6142jr5a0jpqb"
   }
  },
  {
diff --git a/pkgs/applications/editors/emacs/elisp-packages/update-from-overlay b/pkgs/applications/editors/emacs/elisp-packages/update-from-overlay
index 41cde07a211c9..052364c803c1a 100755
--- a/pkgs/applications/editors/emacs/elisp-packages/update-from-overlay
+++ b/pkgs/applications/editors/emacs/elisp-packages/update-from-overlay
@@ -11,10 +11,6 @@ curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/
 nix-instantiate ../../../../../ -A emacs.pkgs.elpaPackages --show-trace
 git diff --exit-code elpa-generated.nix > /dev/null || git commit -m "emacs.pkgs.elpa-packages: $(date --iso)" -- elpa-generated.nix
 
-curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/org/org-generated.nix
-nix-instantiate ../../../../../ -A emacs.pkgs.orgPackages --show-trace
-git diff --exit-code org-generated.nix > /dev/null || git commit -m "emacs.pkgs.org-packages: $(date --iso)" -- org-generated.nix
-
 curl -s -O https://raw.githubusercontent.com/nix-community/emacs-overlay/master/repos/melpa/recipes-archive-melpa.json
 nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.melpaStablePackages
 nix-instantiate --show-trace ../../../../../ -A emacs.pkgs.melpaPackages
diff --git a/pkgs/applications/editors/emacs/elisp-packages/update-org b/pkgs/applications/editors/emacs/elisp-packages/update-org
deleted file mode 100755
index 2119a1672287f..0000000000000
--- a/pkgs/applications/editors/emacs/elisp-packages/update-org
+++ /dev/null
@@ -1,4 +0,0 @@
-#! /usr/bin/env nix-shell
-#! nix-shell --show-trace ./emacs2nix.nix -i bash
-
-exec org-packages.sh --names $EMACS2NIX/names.nix -o org-generated.nix
diff --git a/pkgs/applications/editors/emacs/generic.nix b/pkgs/applications/editors/emacs/generic.nix
index db043140e77a8..49ecbbab4a3ca 100644
--- a/pkgs/applications/editors/emacs/generic.nix
+++ b/pkgs/applications/editors/emacs/generic.nix
@@ -10,7 +10,7 @@
 , Xaw3d, libXcursor,  pkg-config, gettext, libXft, dbus, libpng, libjpeg, giflib
 , libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux
 , alsa-lib, cairo, acl, gpm, AppKit, GSS, ImageIO, m17n_lib, libotf
-, sigtool, jansson, harfbuzz
+, sigtool, jansson, harfbuzz, sqlite
 , dontRecurseIntoAttrs ,emacsPackagesFor
 , libgccjit, targetPlatform, makeWrapper # native-comp params
 , systemd ? null
@@ -20,10 +20,13 @@
 , withGTK3 ? true, gtk3-x11 ? null, gsettings-desktop-schemas ? null
 , withXwidgets ? false, webkitgtk ? null, wrapGAppsHook ? null, glib-networking ? null
 , withMotif ? false, motif ? null
+, withSQLite3 ? false
 , withCsrc ? true
 , srcRepo ? false, autoreconfHook ? null, texinfo ? null
 , siteStart ? ./site-start.el
 , nativeComp ? false
+, withPgtk ? false
+, withXinput2 ? false
 , withImageMagick ? lib.versionOlder version "27" && (withX || withNS)
 , toolkit ? (
   if withGTK2 then "gtk2"
@@ -63,6 +66,16 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
       rm -fr .git
     '')
 
+    # Add the name of the wrapped gvfsd
+    # This used to be carried as a patch but it often got out of sync with upstream
+    # and was hard to maintain for emacs-overlay.
+    (lib.concatStrings (map (fn: ''
+      sed -i 's#(${fn} "gvfs-fuse-daemon")#(${fn} "gvfs-fuse-daemon") (${fn} ".gvfsd-fuse-wrapped")#' lisp/net/tramp-gvfs.el
+    '') [
+      "tramp-compat-process-running-p"
+      "tramp-process-running-p"
+    ]))
+
     # Reduce closure size by cleaning the environment of the emacs dumper
     ''
       substituteInPlace src/Makefile.in \
@@ -116,6 +129,7 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
     ++ lib.optional (withX && withGTK2) gtk2-x11
     ++ lib.optionals (withX && withGTK3) [ gtk3-x11 gsettings-desktop-schemas ]
     ++ lib.optional (withX && withMotif) motif
+    ++ lib.optional withSQLite3 sqlite
     ++ lib.optionals (withX && withXwidgets) [ webkitgtk glib-networking ]
     ++ lib.optionals withNS [ AppKit GSS ImageIO ]
     ++ lib.optionals stdenv.isDarwin [ sigtool ]
@@ -138,6 +152,8 @@ let emacs = stdenv.mkDerivation (lib.optionalAttrs nativeComp {
     ++ lib.optional withXwidgets "--with-xwidgets"
     ++ lib.optional nativeComp "--with-native-compilation"
     ++ lib.optional withImageMagick "--with-imagemagick"
+    ++ lib.optional withPgtk "--with-pgtk"
+    ++ lib.optional withXinput2 "--with-xinput2"
   ;
 
   installTargets = [ "tags" "install" ];
diff --git a/pkgs/applications/editors/emacs/macport.nix b/pkgs/applications/editors/emacs/macport.nix
index 8c395219aeb3e..867f7214d318f 100644
--- a/pkgs/applications/editors/emacs/macport.nix
+++ b/pkgs/applications/editors/emacs/macport.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
   version = "27.2";
 
   emacsName = "emacs-${version}";
-  macportVersion = "8.2";
+  macportVersion = "8.3";
   name = "emacs-mac-${version}-${macportVersion}";
 
   src = fetchurl {
@@ -18,7 +18,8 @@ stdenv.mkDerivation rec {
 
   macportSrc = fetchurl {
     url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/${emacsName}-mac-${macportVersion}.tar.gz";
-    sha256 = "1bgm2g3ky7rkj1l27wnmyzqsqxzjng7y9bf72ym37wiyhyi2a9za";
+    sha256 = "0q4lbk3nb8rz1ibmf23plgsh8sx2wvhry5bf5mivgz4m4b6s2yij";
+    name = "${emacsName}-mac-${macportVersion}.tar.xz"; # It's actually compressed with xz, not gz
   };
 
   hiresSrc = fetchurl {
@@ -37,11 +38,11 @@ stdenv.mkDerivation rec {
 
   postUnpack = ''
     mv $sourceRoot $name
-    tar xzf $macportSrc -C $name --strip-components=1
+    tar xf $macportSrc -C $name --strip-components=1
     mv $name $sourceRoot
 
     # extract retina image resources
-    tar xzfv $hiresSrc --strip 1 -C $sourceRoot
+    tar xfv $hiresSrc --strip 1 -C $sourceRoot
   '';
 
   postPatch = ''
diff --git a/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch b/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch
deleted file mode 100644
index 5d16194fd2027..0000000000000
--- a/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
-index f370abba31..f2806263a9 100644
---- a/lisp/net/tramp-gvfs.el
-+++ b/lisp/net/tramp-gvfs.el
-@@ -164,7 +164,8 @@ tramp-gvfs-enabled
-     (and (featurep 'dbusbind)
- 	 (tramp-compat-funcall 'dbus-get-unique-name :system)
- 	 (tramp-compat-funcall 'dbus-get-unique-name :session)
--	 (or (tramp-compat-process-running-p "gvfs-fuse-daemon")
-+	 (or (tramp-compat-process-running-p ".gvfsd-fuse-wrapped")
-+             (tramp-compat-process-running-p "gvfs-fuse-daemon")
- 	     (tramp-compat-process-running-p "gvfsd-fuse"))))
-   "Non-nil when GVFS is available.")
- 
diff --git a/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch b/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch
deleted file mode 100644
index b27dfd47e60e4..0000000000000
--- a/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
-index 9e26c8fd6d..fa220e513c 100644
---- a/lisp/net/tramp-gvfs.el
-+++ b/lisp/net/tramp-gvfs.el
-@@ -125,5 +125,6 @@
- 	     ;; for some processes.  Better we don't check.
- 	     (<= emacs-major-version 25)
- 	     (tramp-compat-process-running-p "gvfs-fuse-daemon")
-+	     (tramp-compat-process-running-p ".gvfsd-fuse-wrapped")
- 	     (tramp-compat-process-running-p "gvfsd-fuse"))))
-   "Non-nil when GVFS is available.")
diff --git a/pkgs/applications/editors/featherpad/default.nix b/pkgs/applications/editors/featherpad/default.nix
index 8fbcfbb4c1015..80328fb06f82d 100644
--- a/pkgs/applications/editors/featherpad/default.nix
+++ b/pkgs/applications/editors/featherpad/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "featherpad";
-  version = "1.0.1";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "tsujan";
     repo = "FeatherPad";
     rev = "V${version}";
-    sha256 = "sha256-FeqTPDix2tqTJ3UU6i2e6FkmCO0KMNt4tLtrPjX57fc=";
+    sha256 = "sha256-Sff1oyRYCsiJ7Kl3HxI/bln0M80KlbcNSw6jrEOeWiI=";
   };
 
   nativeBuildInputs = [ cmake pkg-config qttools ];
diff --git a/pkgs/applications/editors/ghostwriter/default.nix b/pkgs/applications/editors/ghostwriter/default.nix
index fdada2e7769a5..7d060a972cdc5 100644
--- a/pkgs/applications/editors/ghostwriter/default.nix
+++ b/pkgs/applications/editors/ghostwriter/default.nix
@@ -14,13 +14,13 @@
 
 mkDerivation rec {
   pname = "ghostwriter";
-  version = "2.0.2";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "wereturtle";
     repo = pname;
     rev = version;
-    sha256 = "sha256-kNt0IIAcblDJ81ENIkoJuJvrI+F+fdVgWUJ6g1YpjqU=";
+    hash = "sha256-w4qCJgfBnN1PpPfhdsLdBpCRAWai9RrwU3LZl8DdEcw=";
   };
 
   nativeBuildInputs = [ qmake pkg-config qttools ];
diff --git a/pkgs/applications/editors/gnome-builder/default.nix b/pkgs/applications/editors/gnome-builder/default.nix
index 38f38ae3a51b9..d9092b550117b 100644
--- a/pkgs/applications/editors/gnome-builder/default.nix
+++ b/pkgs/applications/editors/gnome-builder/default.nix
@@ -39,13 +39,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-builder";
-  version = "41.1";
+  version = "41.3";
 
   outputs = [ "out" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "XVXkqqKkdYpGJj0cf9AJyz20RV4O1/nkTDoWNIYfo4o=";
+    sha256 = "4iUPyOnp8gAsRS5ZUNgmhXNNPESAs1Fnq1CKyHAlCeE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/editors/gobby/default.nix b/pkgs/applications/editors/gobby/default.nix
index 35e96c89dad57..ea0a1e2f24768 100644
--- a/pkgs/applications/editors/gobby/default.nix
+++ b/pkgs/applications/editors/gobby/default.nix
@@ -24,7 +24,7 @@ in stdenv.mkDerivation rec {
     homepage = "http://gobby.0x539.de/";
     description = "A GTK-based collaborative editor supporting multiple documents in one session and a multi-user chat";
     license = lib.licenses.gpl2Plus;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/editors/jetbrains/common.nix b/pkgs/applications/editors/jetbrains/common.nix
index 4d8835c29c5f1..b3145f342c9b9 100644
--- a/pkgs/applications/editors/jetbrains/common.nix
+++ b/pkgs/applications/editors/jetbrains/common.nix
@@ -3,7 +3,7 @@
 , vmopts ? null
 }:
 
-{ name, product, version, src, wmClass, jdk, meta, extraLdPath ? [] }@args:
+{ name, product, version, src, wmClass, jdk, meta, extraLdPath ? [], extraWrapperArgs ? [] }@args:
 
 with lib;
 
@@ -81,6 +81,7 @@ with stdenv; lib.makeOverridable mkDerivation (rec {
         stdenv.cc.cc.lib libsecret e2fsprogs
         libnotify
       ] ++ extraLdPath)}" \
+      ${lib.concatStringsSep " " extraWrapperArgs} \
       --set JDK_HOME "$jdk" \
       --set ${hiName}_JDK "$jdk" \
       --set ANDROID_JAVA_HOME "$jdk" \
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 4c65ddcc8f670..f4665aa3e18ec 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv, callPackage, fetchurl
 , jdk, cmake, zlib, python3
 , dotnet-sdk_5
+, maven
 , autoPatchelfHook
 , libdbusmenu
 , vmopts ? null
@@ -90,6 +91,10 @@ let
         patchelf --set-interpreter $interp $out/goland*/plugins/go/lib/dlv/linux/dlv
 
         chmod +x $out/goland*/plugins/go/lib/dlv/linux/dlv
+
+        # fortify source breaks build since delve compiles with -O0
+        wrapProgram $out/goland*/plugins/go/lib/dlv/linux/dlv \
+          --prefix disableHardening " " fortify
       '';
     });
 
@@ -98,6 +103,10 @@ let
       inherit name version src wmClass jdk;
       product = "IDEA";
       extraLdPath = [ zlib ];
+      extraWrapperArgs = [
+        ''--set M2_HOME "${maven}/maven"''
+        ''--set M2 "${maven}/maven/bin"''
+      ];
       meta = with lib; {
         homepage = "https://www.jetbrains.com/idea/";
         inherit description license;
@@ -242,12 +251,12 @@ in
 
   clion = buildClion rec {
     name = "clion-${version}";
-    version = "2021.2.3"; /* updated by script */
+    version = "2021.3.1"; /* updated by script */
     description  = "C/C++ IDE. New. Intelligent. Cross-platform";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
-      sha256 = "09qbzkxyk435s4n04s12ncjyri024wj9pwz8wgjjsswpfa69dhr5"; /* updated by script */
+      sha256 = "0nf1r02i51pplrazlyavc6xs6mi91spa92srfqpsgb78ar9vn027"; /* updated by script */
     };
     wmClass = "jetbrains-clion";
     update-channel = "CLion RELEASE"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
@@ -255,12 +264,12 @@ in
 
   datagrip = buildDataGrip rec {
     name = "datagrip-${version}";
-    version = "2021.2.4"; /* updated by script */
+    version = "2021.3.2"; /* updated by script */
     description = "Your Swiss Army Knife for Databases and SQL";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
-      sha256 = "1vj9ihzw07bh30ngy8mj027ljq9zzd904k61f8jbfpw75vknh8f6"; /* updated by script */
+      sha256 = "0m0nc988w2a2p0l3a9cirnk2vbrsas4wb3fc4pwiml5bz5vwh255"; /* updated by script */
     };
     wmClass = "jetbrains-datagrip";
     update-channel = "DataGrip RELEASE";
@@ -268,12 +277,12 @@ in
 
   goland = buildGoland rec {
     name = "goland-${version}";
-    version = "2021.2.4"; /* updated by script */
+    version = "2021.3.1"; /* updated by script */
     description = "Up and Coming Go IDE";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/go/${name}.tar.gz";
-      sha256 = "03x7yz8jz5r4pblm7cvph39zppa33lalvkpzmgvr3wjq0chqmh65"; /* updated by script */
+      sha256 = "1kl1sg2fjh8wpx47984vw6zrqf7nakbji606cl52brkxik7py0d3"; /* updated by script */
     };
     wmClass = "jetbrains-goland";
     update-channel = "GoLand RELEASE";
@@ -281,12 +290,12 @@ in
 
   idea-community = buildIdea rec {
     name = "idea-community-${version}";
-    version = "2021.2.3"; /* updated by script */
+    version = "2021.3"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
     license = lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
-      sha256 = "166rhssyizn40rlar7ym7gkwz2aawp58qqvrs60w3cwwvjvb0bjq"; /* updated by script */
+      sha256 = "0xrhgqbsyd2plzkkmy00bwsa8dk4ijszmhmbyn6c9ygl01zhji6y"; /* updated by script */
     };
     wmClass = "jetbrains-idea-ce";
     update-channel = "IntelliJ IDEA RELEASE";
@@ -294,12 +303,12 @@ in
 
   idea-ultimate = buildIdea rec {
     name = "idea-ultimate-${version}";
-    version = "2021.2.3"; /* updated by script */
+    version = "2021.3"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jbr.tar.gz";
-      sha256 = "1d0kk2yydrbzvdy6dy9jqr182panidmbf2hy80gvi5ph2r5rv1qd"; /* updated by script */
+      sha256 = "0riwww75aizprb01c1sccprbr00ky5wgy5cxxjxqgm8v72rfnihb"; /* updated by script */
     };
     wmClass = "jetbrains-idea";
     update-channel = "IntelliJ IDEA RELEASE";
@@ -307,13 +316,13 @@ in
 
   mps = buildMps rec {
     name = "mps-${version}";
-    version = "2021.2.2"; /* updated by script */
+    version = "2021.2.3"; /* updated by script */
     versionMajorMinor = "2021.2"; /* updated by script */
     description = "Create your own domain-specific language";
     license = lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/mps/${versionMajorMinor}/MPS-${version}.tar.gz";
-      sha256 = "011prnpab72kfgkwq0ms27qqnjamh33h023gb01fxvqwwzcmp6sk"; /* updated by script */
+      sha256 = "1j33b48ki1xw7xb1hr8k2jz7d78h0qcr1b5gql7i40d7szq0iy10"; /* updated by script */
     };
     wmClass = "jetbrains-mps";
     update-channel = "MPS RELEASE";
@@ -321,12 +330,12 @@ in
 
   phpstorm = buildPhpStorm rec {
     name = "phpstorm-${version}";
-    version = "2021.2.3"; /* updated by script */
+    version = "2021.3"; /* updated by script */
     description = "Professional IDE for Web and PHP developers";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
-      sha256 = "1avcm4fnkn0jkw85s505yz5kjbxzk038463sjdsca04pv5yhsdp0"; /* updated by script */
+      sha256 = "1h3ld3swvvx8hicm5lpf65mr7asiqy59hvqnigz71hbjgqnsb8g0"; /* updated by script */
     };
     wmClass = "jetbrains-phpstorm";
     update-channel = "PhpStorm RELEASE";
@@ -334,12 +343,12 @@ in
 
   pycharm-community = buildPycharm rec {
     name = "pycharm-community-${version}";
-    version = "2021.2.3"; /* updated by script */
+    version = "2021.3"; /* updated by script */
     description = "PyCharm Community Edition";
     license = lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "0m98qhkgwnmqkay8sclfyig2xcqvpva74l2kdira3r5sbszmxvcr"; /* updated by script */
+      sha256 = "0iypqilil6x9k1gi6bfjzccw7wp601grd9639yk50crg45wnzga4"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm-ce";
     update-channel = "PyCharm RELEASE";
@@ -347,12 +356,12 @@ in
 
   pycharm-professional = buildPycharm rec {
     name = "pycharm-professional-${version}";
-    version = "2021.2.3"; /* updated by script */
+    version = "2021.3"; /* updated by script */
     description = "PyCharm Professional Edition";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "0zp72ag9jqhq0sv4x5n43d6g9y2yzkxa4pkflc7gd5rpg555cqr7"; /* updated by script */
+      sha256 = "0z6dnigx616939azyngjy5r4gayazplkgq480k80ppmkw636yhl1"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm";
     update-channel = "PyCharm RELEASE";
@@ -360,12 +369,12 @@ in
 
   rider = buildRider rec {
     name = "rider-${version}";
-    version = "2021.2.2"; /* updated by script */
+    version = "2021.3.2"; /* updated by script */
     description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz";
-      sha256 = "17xx8mz3dr5iqlr0lsiy8a6cxz3wp5vg8z955cdv0hf8b5rncqfa"; /* updated by script */
+      sha256 = "0arnh9wlw874jqlgad00q0nf1kjp7pvb4xixwrb6v1l9fbr9nsan"; /* updated by script */
     };
     wmClass = "jetbrains-rider";
     update-channel = "Rider RELEASE";
@@ -373,12 +382,12 @@ in
 
   ruby-mine = buildRubyMine rec {
     name = "ruby-mine-${version}";
-    version = "2021.2.3"; /* updated by script */
+    version = "2021.3"; /* updated by script */
     description = "The Most Intelligent Ruby and Rails IDE";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
-      sha256 = "0bbq5ya1dxrgaqqqsc4in4rgv7v292hww3bb0vpzwz6dmc2jly1i"; /* updated by script */
+      sha256 = "1vmybxnwyv7wiv3clm857yvzlws0bcza01wx8jm0dbnrzq38dz4d"; /* updated by script */
     };
     wmClass = "jetbrains-rubymine";
     update-channel = "RubyMine RELEASE";
@@ -386,12 +395,12 @@ in
 
   webstorm = buildWebStorm rec {
     name = "webstorm-${version}";
-    version = "2021.2.3"; /* updated by script */
+    version = "2021.3"; /* updated by script */
     description = "Professional IDE for Web and JavaScript development";
     license = lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
-      sha256 = "0d79x1jz4ymd6cc1n4s3y3n8lb6gw4g0yj6d4qzjlr5c9snx3zdf"; /* updated by script */
+      sha256 = "1llz97r95xrf7yixgbfipg153qikkxziwwhv9dvvi29v7pi1k4ys"; /* updated by script */
     };
     wmClass = "jetbrains-webstorm";
     update-channel = "WebStorm RELEASE";
diff --git a/pkgs/applications/editors/jucipp/default.nix b/pkgs/applications/editors/jucipp/default.nix
index 140bf04c9f365..7a57e21710950 100644
--- a/pkgs/applications/editors/jucipp/default.nix
+++ b/pkgs/applications/editors/jucipp/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchgit, dconf, gtksourceview3, at-spi2-core, gtksourceviewmm,
-  boost, epoxy, cmake, aspell, llvmPackages, libgit2, pkg-config, pcre,
+  boost, libepoxy, cmake, aspell, llvmPackages, libgit2, pkg-config, pcre,
   libXdmcp, libxkbcommon, libpthreadstubs, wrapGAppsHook, aspellDicts, gtkmm3,
   coreutils, glibc, dbus, openssl, libxml2, gnumake, ctags }:
 
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     gtksourceview3
     at-spi2-core
     pcre
-    epoxy
+    libepoxy
     boost
     libXdmcp
     cmake
diff --git a/pkgs/applications/editors/kakoune/default.nix b/pkgs/applications/editors/kakoune/default.nix
index e8c2760973a65..9beab9fa4beaf 100644
--- a/pkgs/applications/editors/kakoune/default.nix
+++ b/pkgs/applications/editors/kakoune/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
     homepage = "http://kakoune.org/";
     description = "A vim inspired text editor";
     license = licenses.publicDomain;
+    mainProgram = "kak";
     maintainers = with maintainers; [ vrthra ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/applications/editors/kdevelop5/kdev-php.nix b/pkgs/applications/editors/kdevelop5/kdev-php.nix
index d85d065431fab..7a9b030e82179 100644
--- a/pkgs/applications/editors/kdevelop5/kdev-php.nix
+++ b/pkgs/applications/editors/kdevelop5/kdev-php.nix
@@ -1,12 +1,14 @@
-{ stdenv, lib, fetchurl, cmake, extra-cmake-modules, threadweaver, ktexteditor, kdevelop-unwrapped, kdevelop-pg-qt }:
+{ stdenv, lib, fetchFromGitHub, cmake, extra-cmake-modules, threadweaver, ktexteditor, kdevelop-unwrapped, kdevelop-pg-qt }:
 
 stdenv.mkDerivation rec {
   pname = "kdev-php";
   version = "5.6.2";
 
-  src = fetchurl {
-    url = "https://github.com/KDE/${pname}/archive/v${version}.tar.gz";
-    sha256 = "sha256-P7u/KIf/1YkJ2uWsuVThILP87vaYSbHpx5CtnSR3YbU=";
+  src = fetchFromGitHub {
+    owner = "KDE";
+    repo = "kdev-php";
+    rev = "v${version}";
+    sha256 = "sha256-hEumH7M6yAuH+jPShOmbKjHmuPRg2djaVy9Xt28eK38=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules ];
diff --git a/pkgs/applications/editors/kdevelop5/kdev-python.nix b/pkgs/applications/editors/kdevelop5/kdev-python.nix
index cdc1a300b7986..03d3fce67e768 100644
--- a/pkgs/applications/editors/kdevelop5/kdev-python.nix
+++ b/pkgs/applications/editors/kdevelop5/kdev-python.nix
@@ -1,12 +1,14 @@
-{ stdenv, lib, fetchurl, cmake, extra-cmake-modules, threadweaver, ktexteditor, kdevelop-unwrapped, python }:
+{ stdenv, lib, fetchFromGitHub, cmake, extra-cmake-modules, threadweaver, ktexteditor, kdevelop-unwrapped, python }:
 
 stdenv.mkDerivation rec {
   pname = "kdev-python";
   version = "5.6.2";
 
-  src = fetchurl {
-    url = "https://github.com/KDE/${pname}/archive/v${version}.tar.gz";
-    sha256 = "sha256-Iw3puQ3ZS0eNfBvaZ4cxsP49IRqIMX3R+r3OPG771RI=";
+  src = fetchFromGitHub {
+    owner = "KDE";
+    repo = "kdev-python";
+    rev = "v${version}";
+    sha256 = "sha256-xYElqpJjRtBRIyZGf6JaCvurQ+QrGrdLHxtuANYfCds=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/applications/editors/lifeograph/default.nix b/pkgs/applications/editors/lifeograph/default.nix
new file mode 100644
index 0000000000000..b998b02f50da8
--- /dev/null
+++ b/pkgs/applications/editors/lifeograph/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, lib, fetchgit, pkg-config, meson, ninja
+, enchant, gtkmm3, libchamplain, libgcrypt }:
+
+stdenv.mkDerivation rec {
+  pname = "lifeograph";
+  version = "2.0.2";
+
+  src = fetchgit {
+    url = "https://git.launchpad.net/lifeograph";
+    # Specific commit hash related to version
+    rev = "d635bbb30011c0d33c33643e6fa5c006f98ed7d6";
+    sha256 = "0j9wn5bj7cbfnmyyx7ikx961sksv50agnb53prymldbsq43rfgnq";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    libgcrypt
+    enchant
+    gtkmm3
+    libchamplain
+  ];
+
+  postInstall = ''
+    substituteInPlace $out/share/applications/net.sourceforge.Lifeograph.desktop \
+      --replace "Exec=" "Exec=$out/bin/"
+  '';
+
+  meta = with lib; {
+    homepage = "http://lifeograph.sourceforge.net/wiki/Main_Page";
+    description = "Lifeograph is an off-line and private journal and note taking application";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ wolfangaukang ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/editors/lite-xl/0001-replace-unpack-with-table-unpack.patch b/pkgs/applications/editors/lite-xl/0001-replace-unpack-with-table-unpack.patch
new file mode 100644
index 0000000000000..e7a2287427f6e
--- /dev/null
+++ b/pkgs/applications/editors/lite-xl/0001-replace-unpack-with-table-unpack.patch
@@ -0,0 +1,91 @@
+diff --git a/data/core/commands/findreplace.lua b/data/core/commands/findreplace.lua
+index 5d27aa6..db6a2dd 100644
+--- a/data/core/commands/findreplace.lua
++++ b/data/core/commands/findreplace.lua
+@@ -37,7 +37,7 @@ local function update_preview(sel, search_fn, text)
+     last_view:scroll_to_line(line2, true)
+     found_expression = true
+   else
+-    last_view.doc:set_selection(unpack(sel))
++    last_view.doc:set_selection(table.unpack(sel))
+     found_expression = false
+   end
+ end
+@@ -55,7 +55,7 @@ end
+ local function find(label, search_fn)
+   last_view, last_sel = core.active_view,
+     { core.active_view.doc:get_selection() }
+-  local text = last_view.doc:get_text(unpack(last_sel))
++  local text = last_view.doc:get_text(table.unpack(last_sel))
+   found_expression = false
+ 
+   core.command_view:set_text(text, true)
+@@ -69,8 +69,8 @@ local function find(label, search_fn)
+       last_fn, last_text = search_fn, text
+     else
+       core.error("Couldn't find %q", text)
+-      last_view.doc:set_selection(unpack(last_sel))
+-      last_view:scroll_to_make_visible(unpack(last_sel))
++      last_view.doc:set_selection(table.unpack(last_sel))
++      last_view:scroll_to_make_visible(table.unpack(last_sel))
+     end
+   end, function(text)
+     update_preview(last_sel, search_fn, text)
+@@ -79,8 +79,8 @@ local function find(label, search_fn)
+   end, function(explicit)
+     core.status_view:remove_tooltip()
+     if explicit then
+-      last_view.doc:set_selection(unpack(last_sel))
+-      last_view:scroll_to_make_visible(unpack(last_sel))
++      last_view.doc:set_selection(table.unpack(last_sel))
++      last_view:scroll_to_make_visible(table.unpack(last_sel))
+     end
+   end)
+ end
+diff --git a/data/core/doc/init.lua b/data/core/doc/init.lua
+index 2e72907..0e61ffb 100644
+--- a/data/core/doc/init.lua
++++ b/data/core/doc/init.lua
+@@ -198,9 +198,9 @@ local function selection_iterator(invariant, idx)
+   local target = invariant[3] and (idx*4 - 7) or (idx*4 + 1)
+   if target > #invariant[1] or target <= 0 or (type(invariant[3]) == "number" and invariant[3] ~= idx - 1) then return end
+   if invariant[2] then
+-    return idx+(invariant[3] and -1 or 1), sort_positions(unpack(invariant[1], target, target+4))
++    return idx+(invariant[3] and -1 or 1), sort_positions(table.unpack(invariant[1], target, target+4))
+   else
+-    return idx+(invariant[3] and -1 or 1), unpack(invariant[1], target, target+4)
++    return idx+(invariant[3] and -1 or 1), table.unpack(invariant[1], target, target+4)
+   end
+ end
+ 
+@@ -345,7 +345,7 @@ function Doc:raw_insert(line, col, text, undo_stack, time)
+ 
+   -- push undo
+   local line2, col2 = self:position_offset(line, col, #text)
+-  push_undo(undo_stack, time, "selection", unpack(self.selections))
++  push_undo(undo_stack, time, "selection", table.unpack(self.selections))
+   push_undo(undo_stack, time, "remove", line, col, line2, col2)
+ 
+   -- update highlighter and assure selection is in bounds
+@@ -357,7 +357,7 @@ end
+ function Doc:raw_remove(line1, col1, line2, col2, undo_stack, time)
+   -- push undo
+   local text = self:get_text(line1, col1, line2, col2)
+-  push_undo(undo_stack, time, "selection", unpack(self.selections))
++  push_undo(undo_stack, time, "selection", table.unpack(self.selections))
+   push_undo(undo_stack, time, "insert", line1, col1, text)
+ 
+   -- get line content before/after removed text
+diff --git a/data/core/tokenizer.lua b/data/core/tokenizer.lua
+index d95baeb..f77fed4 100644
+--- a/data/core/tokenizer.lua
++++ b/data/core/tokenizer.lua
+@@ -161,7 +161,7 @@ function tokenizer.tokenize(incoming_syntax, text, state)
+         if count % 2 == 0 then break end
+       end
+     until not res[1] or not close or not target[3]
+-    return unpack(res)
++    return table.unpack(res)
+   end
+   
+   while i <= #text do
diff --git a/pkgs/applications/editors/lite-xl/default.nix b/pkgs/applications/editors/lite-xl/default.nix
index 3b38004eddbac..a468e34393cdd 100644
--- a/pkgs/applications/editors/lite-xl/default.nix
+++ b/pkgs/applications/editors/lite-xl/default.nix
@@ -1,6 +1,5 @@
 { agg
 , fetchFromGitHub
-, fetchpatch
 , Foundation
 , freetype
 , lib
@@ -16,30 +15,18 @@
 
 stdenv.mkDerivation rec {
   pname = "lite-xl";
-  version = "2.0.1";
+  version = "2.0.4";
 
   src = fetchFromGitHub {
     owner = "lite-xl";
     repo = "lite-xl";
     rev = "v${version}";
-    sha256 = "sha256-+RbmT6H/5Ldhv3qOClxMjCSGMudbkGtkjo2SpGqExao=";
+    sha256 = "sha256-yMdfJ8qE2Tv+CtvbPN6todzY/pDrYo+vaBeppuUt5F4=";
   };
 
   patches = [
-    # Fixes compatibility with Lua5.2, remove patch when PR merged
-    # https://github.com/lite-xl/lite-xl/pull/435
-    (fetchpatch {
-      name = "0001-replace-unpack-with-table.unpack.patch";
-      url = "https://github.com/lite-xl/lite-xl/commit/30ccde896d1ffe37cbd8990e9b8aaef275e18935.patch";
-      sha256 = "sha256-IAe3jIyD3OtZtu1V7MtPR4QzFKvU/aV/nLQ4U9nHyIQ=";
-    })
-    # Lets meson fallback to the system reproc if available.
-    # remove patch when 2.0.2 is proposed.
-    (fetchpatch {
-      name = "0002-use-dependency-fallbacks-use-system-reproc-if-available.patch";
-      url = "https://github.com/lite-xl/lite-xl/commit/973acb787aacb0164b2f4ae6fe335d250ba80a7b.patch";
-      sha256 = "sha256-GmgATsRlj1FePmw3+AoWEMZIo2eujHYewKQCx583qbU=";
-    })
+    # Fixes compatibility with Lua5.2, remove patch when a new release covers this
+    ./0001-replace-unpack-with-table-unpack.patch
   ];
 
   nativeBuildInputs = [ meson ninja pkg-config ];
diff --git a/pkgs/applications/editors/marker/default.nix b/pkgs/applications/editors/marker/default.nix
index f974cc1ef42c4..c6779b8fba874 100644
--- a/pkgs/applications/editors/marker/default.nix
+++ b/pkgs/applications/editors/marker/default.nix
@@ -13,14 +13,14 @@
 
 stdenv.mkDerivation rec {
   pname = "marker";
-  version = "2020.04.04";
+  version = "2020.04.04.2";
 
   src = fetchFromGitHub {
     owner = "fabiocolacio";
     repo = "Marker";
     rev = version;
     fetchSubmodules = true;
-    sha256 = "1iy7izyprf050bix8am1krqivgyxnhx3jm775v8f80cgbqxy7m5r";
+    sha256 = "sha256-wLR1FQqlLA02ed/JoAcxRHhIVua1FibAee1PC2zOPOM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/editors/nano/default.nix b/pkgs/applications/editors/nano/default.nix
index f7fb1b5bfc6a1..ffef9c5988bc8 100644
--- a/pkgs/applications/editors/nano/default.nix
+++ b/pkgs/applications/editors/nano/default.nix
@@ -16,11 +16,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "nano";
-  version = "5.9";
+  version = "6.0";
 
   src = fetchurl {
     url = "mirror://gnu/nano/${pname}-${version}.tar.xz";
-    sha256 = "dX24zaS7KHNZnkd4OvRj47VHpiewyrsw6nv3H7TCSTc=";
+    sha256 = "k6yMtotK0Q4KrrgKLdFcW7ietmWkhE960Bxn78sWnqI=";
   };
 
   nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
diff --git a/pkgs/applications/editors/ne/default.nix b/pkgs/applications/editors/ne/default.nix
index 172b30dbb0ffa..b97b3eb79bb91 100644
--- a/pkgs/applications/editors/ne/default.nix
+++ b/pkgs/applications/editors/ne/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ne";
-  version = "3.3.0";
+  version = "3.3.1";
 
   src = fetchFromGitHub {
     owner = "vigna";
     repo = pname;
     rev = version;
-    sha256 = "01aglnsfljlvx0wvyvpjfn4y88jf450a06qnj9a8lgdqv1hdkq1a";
+    sha256 = "sha256-75xsZ9X6nmRj0VVZmY1AeEOBtO2d7jbanZIZ3Klx4mk=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix
index 6a55e7c8e3968..b44fc98722e90 100644
--- a/pkgs/applications/editors/neovim/default.nix
+++ b/pkgs/applications/editors/neovim/default.nix
@@ -32,13 +32,13 @@ let
 in
   stdenv.mkDerivation rec {
     pname = "neovim-unwrapped";
-    version = "0.5.1";
+    version = "0.6.0";
 
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "neovim";
       rev = "v${version}";
-      sha256 = "0b2gda9h14lvwahrr7kq3ix8wsw99g4ngy1grmhv5544n93ypcyk";
+      sha256 = "sha256-mVVZiDjAsAs4PgC8lHf0Ro1uKJ4OKonoPtF59eUd888=";
     };
 
     patches = [
diff --git a/pkgs/applications/editors/neovim/utils.nix b/pkgs/applications/editors/neovim/utils.nix
index bf0d80d1f07dd..e721457f2df02 100644
--- a/pkgs/applications/editors/neovim/utils.nix
+++ b/pkgs/applications/editors/neovim/utils.nix
@@ -177,7 +177,7 @@ let
     assert withPython -> throw "Python2 support has been removed from neovim, please remove withPython and extraPythonPackages.";
 
     wrapNeovimUnstable neovim (res // {
-      wrapperArgs = lib.escapeShellArgs res.wrapperArgs + extraMakeWrapperArgs;
+      wrapperArgs = lib.escapeShellArgs res.wrapperArgs + " " + extraMakeWrapperArgs;
       wrapRc = (configure != {});
   });
 in
diff --git a/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix
index d94f3239f4bb3..2a0d60ce5a796 100644
--- a/pkgs/applications/editors/neovim/wrapper.nix
+++ b/pkgs/applications/editors/neovim/wrapper.nix
@@ -3,6 +3,7 @@
 , bundlerEnv, ruby
 , nodejs
 , nodePackages
+, python3
 , python3Packages
 , callPackage
 }:
@@ -17,7 +18,7 @@ let
     , wrapperArgs ? []
     , manifestRc ? null
     , withPython2 ? false
-    , withPython3 ? true,  python3Env ? null
+    , withPython3 ? true,  python3Env ? python3
     , withNodeJs ? false
     , rubyEnv ? null
     , vimAlias ? false
@@ -59,7 +60,7 @@ let
           --replace 'Name=Neovim' 'Name=WrappedNeovim'
       ''
       + optionalString withPython3 ''
-        makeWrapper ${python3Env}/bin/python3 $out/bin/nvim-python3 --unset PYTHONPATH
+        makeWrapper ${python3Env.interpreter} $out/bin/nvim-python3 --unset PYTHONPATH
       ''
       + optionalString (rubyEnv != null) ''
         ln -s ${rubyEnv}/bin/neovim-ruby-host $out/bin/nvim-ruby
diff --git a/pkgs/applications/editors/netbeans/default.nix b/pkgs/applications/editors/netbeans/default.nix
index ae538575367d6..0c40f83b67fa6 100644
--- a/pkgs/applications/editors/netbeans/default.nix
+++ b/pkgs/applications/editors/netbeans/default.nix
@@ -3,7 +3,7 @@
 }:
 
 let
-  version = "12.5";
+  version = "12.6";
   desktopItem = makeDesktopItem {
     name = "netbeans";
     exec = "netbeans";
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   inherit version;
   src = fetchurl {
     url = "mirror://apache/netbeans/netbeans/${version}/netbeans-${version}-bin.zip";
-    sha512 = "3yagspb2clcvd87a9vnpwd64w3afm4kyprqyjccpckysh4php5vhf7dfza3zhs4yzmkikc2pfs7470w54mxz9rcmaixh23h3hlgd1ii";
+    hash = "sha512-K0HjEO/yw9h+2+Y5CvxyYG1+kx+KH9NSn+QsKCsvh/rG/ilYLYyy93iZfx+wzwrgEfRtfMpZGtDAxd6nyUSnCA==";
   };
 
   buildCommand = ''
diff --git a/pkgs/applications/editors/nvpy/default.nix b/pkgs/applications/editors/nvpy/default.nix
index dcf42b55c5c59..99e4992576783 100644
--- a/pkgs/applications/editors/nvpy/default.nix
+++ b/pkgs/applications/editors/nvpy/default.nix
@@ -1,20 +1,24 @@
-{ pkgs, fetchurl, python2Packages }:
+{ pkgs, fetchFromGitHub, python3Packages }:
 
 let
-  pythonPackages = python2Packages;
+  pythonPackages = python3Packages;
 in pythonPackages.buildPythonApplication rec {
-  version = "0.9.7";
+  version = "2.1.0";
   pname = "nvpy";
 
-  src = fetchurl {
-    url = "https://github.com/cpbotha/nvpy/archive/v${version}.tar.gz";
-    sha256 = "1rd3vlaqkg16iz6qcw6rkbq0jmyvc0843wa3brnvn1nz0kla243f";
+  src = fetchFromGitHub {
+    owner = "cpbotha";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "02njvybd8yaqdnc5ghwrm8225z57gg4w7rhmx3w5jqzh16ld4mhh";
   };
 
+
   propagatedBuildInputs = with pythonPackages; [
     markdown
-    tkinter
     docutils
+    simplenote
+    tkinter
   ];
 
   # No tests
diff --git a/pkgs/applications/editors/okteta/default.nix b/pkgs/applications/editors/okteta/default.nix
index 296a1eb2ad89f..96256e7ef3461 100644
--- a/pkgs/applications/editors/okteta/default.nix
+++ b/pkgs/applications/editors/okteta/default.nix
@@ -4,11 +4,11 @@
 
 mkDerivation rec {
   pname = "okteta";
-  version = "0.26.5";
+  version = "0.26.6";
 
   src = fetchurl {
     url = "mirror://kde/stable/okteta/${version}/src/${pname}-${version}.tar.xz";
-    sha256 = "sha256-n8ft//c+ewWDr1QLDAUvkiHKPxHqP8NgTCvO2wnCmpc=";
+    sha256 = "sha256-xWnNW1VQPkbfGltckWKwiIjEJqpSxvPy+SbGWL7gFEw=";
   };
 
   nativeBuildInputs = [ qtscript extra-cmake-modules kdoctools ];
diff --git a/pkgs/applications/editors/poke/default.nix b/pkgs/applications/editors/poke/default.nix
index a24666741e143..cdfacaf92ede6 100644
--- a/pkgs/applications/editors/poke/default.nix
+++ b/pkgs/applications/editors/poke/default.nix
@@ -19,13 +19,15 @@ let
   isCross = stdenv.hostPlatform != stdenv.buildPlatform;
 in stdenv.mkDerivation rec {
   pname = "poke";
-  version = "1.3";
+  version = "1.4";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
-    hash = "sha256-unhjA0obCABLDuj4i9qUFgcH6aeB1VVvVVtQdYPPDxs=";
+    sha256 = "sha256-zgVN8pVgySEjATJwPuRJ/hMLbiWrA6psx5a7QBUGqiQ=";
   };
 
+  outputs = [ "out" "dev" "info" "lib" "man" ];
+
   postPatch = ''
     patchShebangs .
   '';
@@ -46,7 +48,9 @@ in stdenv.mkDerivation rec {
   ++ lib.optional textStylingSupport gettext
   ++ lib.optional (!isCross) dejagnu;
 
-  configureFlags = lib.optionals guiSupport [
+  configureFlags = [
+    "--datadir=${placeholder "lib"}/share"
+  ] ++ lib.optionals guiSupport [
     "--with-tcl=${tcl}/lib"
     "--with-tk=${tk}/lib"
     "--with-tkinclude=${tk.dev}/include"
@@ -57,6 +61,10 @@ in stdenv.mkDerivation rec {
   doCheck = !isCross;
   checkInputs = lib.optionals (!isCross) [ dejagnu ];
 
+  postInstall = ''
+    moveToOutput share/emacs "$out"
+  '';
+
   meta = with lib; {
     description = "Interactive, extensible editor for binary data";
     homepage = "http://www.jemarch.net/poke";
diff --git a/pkgs/applications/editors/setzer/default.nix b/pkgs/applications/editors/setzer/default.nix
index 334f8b79c4b39..6b380e32bc690 100644
--- a/pkgs/applications/editors/setzer/default.nix
+++ b/pkgs/applications/editors/setzer/default.nix
@@ -18,13 +18,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "setzer";
-  version = "0.4.1";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "cvfosammmm";
     repo = "Setzer";
     rev = "v${version}";
-    sha256 = "1rcx2c07jg1ij81pnvg3px49hfbjmkagn68d3gp79z3gcajbp2av";
+    sha256 = "sha256-uh6mXXJP/EpfvHTXL7PH+Yd1F5Q+6B01ns4vRr/2Xqo=";
   };
 
   format = "other";
@@ -53,6 +53,7 @@ python3.pkgs.buildPythonApplication rec {
     pyxdg
     pdfminer
     pycairo
+    pexpect
   ];
 
   checkPhase = ''
diff --git a/pkgs/applications/editors/sigil/default.nix b/pkgs/applications/editors/sigil/default.nix
index adbbc05ccce55..6b314dff93a49 100644
--- a/pkgs/applications/editors/sigil/default.nix
+++ b/pkgs/applications/editors/sigil/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "sigil";
-  version = "1.7.0";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     repo = "Sigil";
     owner = "Sigil-Ebook";
     rev = version;
-    sha256 = "sha256-a1gstR7qHbzQ3GZ0g/lxUxcHeZ5QgJIvhCV37tqlVfA=";
+    sha256 = "sha256-luX4/KERB4GwpID7zVnd6F/mN8SHTy9zmqSUzJ1CYPk=";
   };
 
   pythonPath = with python3Packages; [ lxml ];
diff --git a/pkgs/applications/editors/spacevim/default.nix b/pkgs/applications/editors/spacevim/default.nix
index 9f6f895efac46..ef3a6538c7c4a 100644
--- a/pkgs/applications/editors/spacevim/default.nix
+++ b/pkgs/applications/editors/spacevim/default.nix
@@ -28,12 +28,12 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "spacevim";
-  version = "1.7.0";
+  version = "1.8.0";
   src = fetchFromGitHub {
     owner = "SpaceVim";
     repo = "SpaceVim";
     rev = "v${version}";
-    sha256 = "sha256-TmfPeaGkH1Wq2b5lB29PUYDVddJVN3mBuPAmu9EtiGY=";
+    sha256 = "sha256:11snnh5q47nqhzjb9qya6hpnmlzc060958whqvqrh4hc7gnlnqp8";
   };
 
   nativeBuildInputs = [ makeWrapper vim-customized ];
diff --git a/pkgs/applications/editors/standardnotes/default.nix b/pkgs/applications/editors/standardnotes/default.nix
index d3ff564b8f0d2..4191f6fbd20ca 100644
--- a/pkgs/applications/editors/standardnotes/default.nix
+++ b/pkgs/applications/editors/standardnotes/default.nix
@@ -2,19 +2,20 @@
 , fetchurl, libsecret, gtk3, gsettings-desktop-schemas }:
 
 let
-  version = "3.8.18";
+  version = "3.9.5";
   pname = "standardnotes";
   name = "${pname}-${version}";
+  throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
 
   plat = {
-    i386-linux = "i386";
+    i686-linux = "i386";
     x86_64-linux = "x86_64";
-  }.${stdenv.hostPlatform.system};
+  }.${stdenv.hostPlatform.system} or throwSystem;
 
   sha256 = {
-    i386-linux = "1xiypsmvpk8i6kab862pipbdfb0y5d5355hdwjmva7v7g26aa7h7";
-    x86_64-linux = "03qlxlgyypnvcr40jh6i4wriyax2jbfhrb798cq0n7qlc1y4pg8r";
-  }.${stdenv.hostPlatform.system};
+    i686-linux = "sha256-7Mo8ELFV6roZ3IYWBtB2rRDAzJrq4ht9f1v6uohsauw=";
+    x86_64-linux = "sha256-9VPYII9E8E3yL7UuU0+GmaK3qxWX4bwfACDl7F7sngo=";
+  }.${stdenv.hostPlatform.system} or throwSystem;
 
   src = fetchurl {
     url = "https://github.com/standardnotes/desktop/releases/download/v${version}/standard-notes-${version}-linux-${plat}.AppImage";
@@ -60,7 +61,7 @@ in appimageTools.wrapType2 rec {
     '';
     homepage = "https://standardnotes.org";
     license = licenses.agpl3;
-    maintainers = with maintainers; [ mgregoire ];
-    platforms = [ "i386-linux" "x86_64-linux" ];
+    maintainers = with maintainers; [ mgregoire chuangzhu ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/editors/sublime/4/common.nix b/pkgs/applications/editors/sublime/4/common.nix
index 13eabde14e6d5..81eaa442425bc 100644
--- a/pkgs/applications/editors/sublime/4/common.nix
+++ b/pkgs/applications/editors/sublime/4/common.nix
@@ -23,7 +23,7 @@ let
     "x86_64-linux" = "x64";
   }.${stdenv.hostPlatform.system};
 
-  libPath = lib.makeLibraryPath [ xorg.libX11 xorg.libXtst glib libglvnd openssl gtk3 cairo pango ];
+  libPath = lib.makeLibraryPath [ xorg.libX11 xorg.libXtst glib libglvnd openssl gtk3 cairo pango curl ];
 in let
   binaryPackage = stdenv.mkDerivation {
     pname = "${pname}-bin";
diff --git a/pkgs/applications/editors/sublime/4/packages.nix b/pkgs/applications/editors/sublime/4/packages.nix
index 3c098be58998a..0761565643f8b 100644
--- a/pkgs/applications/editors/sublime/4/packages.nix
+++ b/pkgs/applications/editors/sublime/4/packages.nix
@@ -5,15 +5,15 @@ let
 in
   {
     sublime4 = common {
-      buildVersion = "4121";
-      x64sha256 = "CE/PeUV8Mg1Z2h8OWMhaemOVa95B1k2wHsht8lVPxeY=";
-      aarch64sha256 = "eveEW0Aq6pim0lnQ6BfISRaBgogeofgLmOVylSVojwg=";
+      buildVersion = "4126";
+      x64sha256 = "sha256-XGTlNMzgAy5U08cCjo1rO97yjz/SiiYkSjYKLOdUUKE=";
+      aarch64sha256 = "0gmnxyczj2wk9dilhkpa6gi2fkvbic6smyiimd3lq0s7ilbarm0a";
     } {};
 
     sublime4-dev = common {
-      buildVersion = "4112";
+      buildVersion = "4125";
       dev = true;
-      x64sha256 = "1yy8wzcphsk3ji2sv2vjcw8ybn62yibzsv9snmm01gvkma16p9dl";
-      aarch64sha256 = "12bl235rxgw3q99yz9x4nfaryb32a2vzyam88by6p1s1zw2fxnp9";
+      x64sha256 = "sha256-+WvLkA7sltJadfm704rOECU4LNoVsv8rDmoAlO/M6Jo=";
+      aarch64sha256 = "11rbdy9rsn5b39qykbws4dqss89snrik7c2vdiw9cj0kibglsc3f";
     } {};
   }
diff --git a/pkgs/applications/editors/texstudio/default.nix b/pkgs/applications/editors/texstudio/default.nix
index 6b1b34e11cf08..9d1a04128c00e 100644
--- a/pkgs/applications/editors/texstudio/default.nix
+++ b/pkgs/applications/editors/texstudio/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "texstudio";
-  version = "4.0.2";
+  version = "4.1.2";
 
   src = fetchFromGitHub {
     owner = "${pname}-org";
     repo = pname;
     rev = version;
-    sha256 = "sha256-SCrWoIZan8mFwQoXaXvM0Ujdhcic3FbmfgKZSFXFBGE=";
+    sha256 = "sha256-+HEA0IvWy0jvjFdU0sG9CzOKzysERMZBs/yHoE0I8B4=";
   };
 
   nativeBuildInputs = [ qmake wrapQtAppsHook pkg-config ];
diff --git a/pkgs/applications/editors/vim/common.nix b/pkgs/applications/editors/vim/common.nix
index e068f7df50b4c..db368d585a0a2 100644
--- a/pkgs/applications/editors/vim/common.nix
+++ b/pkgs/applications/editors/vim/common.nix
@@ -1,12 +1,12 @@
 { lib, fetchFromGitHub }:
 rec {
-  version = "8.2.3451";
+  version = "8.2.3848";
 
   src = fetchFromGitHub {
     owner = "vim";
     repo = "vim";
     rev = "v${version}";
-    sha256 = "sha256-8OaEaFyOaL59j0EZkUY+kuR6si79H2dN09f8SnltxbQ=";
+    sha256 = "sha256-U6xrEZbieRBU0FDdTloYdZzuNpJ9+Q7FZgfI+0SPEAQ=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/editors/vscode/generic.nix b/pkgs/applications/editors/vscode/generic.nix
index 8924b669c4a85..f2c262ece95d2 100644
--- a/pkgs/applications/editors/vscode/generic.nix
+++ b/pkgs/applications/editors/vscode/generic.nix
@@ -118,7 +118,7 @@ let
       packed="resources/app/node_modules.asar"
       unpacked="resources/app/node_modules"
       ${nodePackages.asar}/bin/asar extract "$packed" "$unpacked"
-      substituteInPlace $unpacked/sudo-prompt/index.js \
+      substituteInPlace $unpacked/@vscode/sudo-prompt/index.js \
         --replace "/usr/bin/pkexec" "/run/wrappers/bin/pkexec" \
         --replace "/bin/bash" "${bash}/bin/bash"
       rm -rf "$packed"
diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix
index 082979605f7b8..8990ef75a8507 100644
--- a/pkgs/applications/editors/vscode/vscode.nix
+++ b/pkgs/applications/editors/vscode/vscode.nix
@@ -14,17 +14,17 @@ let
   archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "0wf8bmzag49n81kjb46kj2nkksimm8f7cf4ihpqcw8k5iwasn3j9";
-    x86_64-darwin = "1s7i5087bvckg66mcb32krv12vxhaw7ii9vm3i6p72wr0sv7dddh";
-    aarch64-linux = "0yzh5javinvas3zz0lliyc77vbcs1jrmxbkr7nic4snscg6wjhcd";
-    aarch64-darwin = "13l6ymz7v18s7ikxbwvkwb0f5ff2j82j5pfj04yy75kq9b5gh0vx";
-    armv7l-linux = "129wffj9cidk9ysjpq3p0ddn6liwkmrkxhxgz7bqzj8sdhwyq8pz";
+    x86_64-linux = "1bglf1a8b5whv9pk811fdnx0mvfcfasjxbik73p67msp4yy68lm4";
+    x86_64-darwin = "0cv6i2i69xf6hn0vrfl3gk3ky7r5yvp4k7zx2k695gzck5s9bx8y";
+    aarch64-linux = "1jggspj5q4vfgs4xdvx5p8qsfm98wf17jmxqzs68lmlhmhadyh22";
+    aarch64-darwin = "0c1nz7a54xq20a2a4fqcmlhry6gqwz5f1ys7dx0x5whaxbybh8my";
+    armv7l-linux = "0p2rdxbqpzk79ra7br7wfs8kr0hnh3l022mqb7y16gc426xjlfn4";
   }.${system};
 in
   callPackage ./generic.nix rec {
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.62.3";
+    version = "1.63.2";
     pname = "vscode";
 
     executableName = "code" + lib.optionalString isInsiders "-insiders";
diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix
index 75ac5f160eae0..0ca39a728424a 100644
--- a/pkgs/applications/editors/vscode/vscodium.nix
+++ b/pkgs/applications/editors/vscode/vscodium.nix
@@ -13,10 +13,10 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "0g1c88i0nkg4hys00vhqp0i2n3kjl395fd2rimi2p49y042b5c9g";
-    x86_64-darwin = "1521aqrv9zx2r5cy8h2011iz3v5lvayizlgv8j7j8qi272mmvx5k";
-    aarch64-linux = "1kk0jrhqx6q325zmfg553pqmk6v9cx3a99bsh9rzvdlca94nmpj0";
-    armv7l-linux = "08hy61a9pp18b1x7lnsc7b9y3bvnjmavazz7qkhp5qxl2gs802wm";
+    x86_64-linux = "0pczrbifjgm905371i8c6bk90ka291cmny6hr1nzfix7bn5psjx0";
+    x86_64-darwin = "12g2jlrhng3i56a4v9jf7nrj045jivnfdx4dhka1fiv60nn4gc46";
+    aarch64-linux = "1bhhz4yvmk3zqljy3b77hlsxbwm2l675pslhwr44p6fb4hmn8fai";
+    armv7l-linux = "15nbskq92b85zdyg7pgagi9mqhnbyisfkipqb3brc2rvmyxpzclb";
   }.${system};
 
   sourceRoot = {
@@ -31,7 +31,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.62.3";
+    version = "1.63.2";
     pname = "vscodium";
 
     executableName = "codium";
diff --git a/pkgs/applications/editors/your-editor/default.nix b/pkgs/applications/editors/your-editor/default.nix
index dd3bde160c374..4fd6ca0ad8640 100644
--- a/pkgs/applications/editors/your-editor/default.nix
+++ b/pkgs/applications/editors/your-editor/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "your-editor";
-  version = "1206";
+  version = "1303";
 
   src = fetchFromGitHub {
-    owner = "kammerdienerb";
+    owner = "your-editor";
     repo = "yed";
-    rev = "6cdd99fe1359899b26d8967bd376fd5caa5451eb";
-    sha256 = "0XECSolW/xPXd1v3sv9HbJMWuHGnwCOwmHoPNCUsE+w=";
+    rev = version;
+    sha256 = "BWy/icQs8hVtNeM/mCi6LOah1UG0elU/DgCmfaIPD64=";
   };
 
   installPhase = ''
@@ -21,8 +21,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Your-editor (yed) is a small and simple terminal editor core that is meant to be extended through a powerful plugin architecture";
     homepage = "https://your-editor.org/";
+    changelog = "https://github.com/your-editor/yed/blob/${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ uniquepointer ];
     mainProgram = "yed";
   };
diff --git a/pkgs/applications/finance/odoo/default.nix b/pkgs/applications/finance/odoo/default.nix
index 69acb43af8617..c2f201774fea4 100644
--- a/pkgs/applications/finance/odoo/default.nix
+++ b/pkgs/applications/finance/odoo/default.nix
@@ -56,6 +56,7 @@ buildPythonApplication rec {
     libsass
     lxml
     markupsafe
+    mock
     num2words
     ofxparse
     passlib
@@ -76,7 +77,7 @@ buildPythonApplication rec {
     reportlab
     requests
     vobject
-    werkzeug1
+    werkzeug
     xlrd
     XlsxWriter
     xlwt
@@ -92,6 +93,6 @@ buildPythonApplication rec {
     description = "Open Source ERP and CRM";
     homepage = "https://www.odoo.com/";
     license = licenses.lgpl3Only;
-    maintainers = [ maintainers.mkg20001 ];
+    maintainers = with maintainers; [ mkg20001 ];
   };
 }
diff --git a/pkgs/applications/gis/gmt/dcw.nix b/pkgs/applications/gis/gmt/dcw.nix
index bc253f394c7ff..5672fe0905d74 100644
--- a/pkgs/applications/gis/gmt/dcw.nix
+++ b/pkgs/applications/gis/gmt/dcw.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "dcw-gmt";
-  version = "1.1.4";
+  version = "2.0.1";
   src = fetchurl {
     url = "ftp://ftp.soest.hawaii.edu/gmt/dcw-gmt-${version}.tar.gz";
-    sha256 = "8d47402abcd7f54a0f711365cd022e4eaea7da324edac83611ca035ea443aad3";
+    sha256 = "sha256-XJCylo9Alc9epEo1TcnY+d0bj+VRTgM4/4W0jgNUeiU=";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix
index 4f62ccecbaf57..0ec81c785b4b8 100644
--- a/pkgs/applications/gis/qgis/unwrapped.nix
+++ b/pkgs/applications/gis/qgis/unwrapped.nix
@@ -56,14 +56,14 @@ let
     six
   ];
 in mkDerivation rec {
-  version = "3.16.13";
+  version = "3.16.14";
   pname = "qgis-unwrapped";
 
   src = fetchFromGitHub {
     owner = "qgis";
     repo = "QGIS";
     rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "13irzs89lknfxf2y7j931bh0zmqgiwifdbbzvwn8yxxr21gd68ac";
+    sha256 = "sha256-3FUGSBdlhJhhpTPtYuzKOznsC7PJV3kRL9Il2Yryi1Q=";
   };
 
   passthru = {
@@ -123,6 +123,6 @@ in mkDerivation rec {
     homepage = "https://www.qgis.org";
     license = lib.licenses.gpl2Plus;
     platforms = with lib.platforms; linux;
-    maintainers = with lib.maintainers; [ lsix sikmir ];
+    maintainers = with lib.maintainers; [ lsix sikmir erictapen ];
   };
 }
diff --git a/pkgs/applications/gis/qmapshack/default.nix b/pkgs/applications/gis/qmapshack/default.nix
index dd440dfffdacc..b22a8d408debe 100644
--- a/pkgs/applications/gis/qmapshack/default.nix
+++ b/pkgs/applications/gis/qmapshack/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "qmapshack";
-  version = "1.16.0";
+  version = "1.16.1";
 
   src = fetchFromGitHub {
     owner = "Maproom";
     repo = pname;
     rev = "V_${version}";
-    sha256 = "1yzgkdjxwyg8ggbxyjwr0zjrx99ckrbz2p2524iii9i7qqn8wfsx";
+    sha256 = "sha256-2otvRKtFb51PLrIh/Hxltp69n5nyR63HGGvk73TFjqA=";
   };
 
   patches = [
diff --git a/pkgs/applications/gis/whitebox-tools/default.nix b/pkgs/applications/gis/whitebox-tools/default.nix
index fdfbcdbfccf66..c60523e3e996f 100644
--- a/pkgs/applications/gis/whitebox-tools/default.nix
+++ b/pkgs/applications/gis/whitebox-tools/default.nix
@@ -1,18 +1,22 @@
 { lib, stdenv, rustPlatform, fetchFromGitHub, Security }:
 rustPlatform.buildRustPackage rec {
   pname = "whitebox_tools";
-  version = "1.4.0";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "jblindsay";
     repo = "whitebox-tools";
-    rev = version;
-    sha256 = "0s5byn8qyi1bm59j9vhwqaygw5cxipc7wbd3flh7n24nx0s8pr8c";
+    rev = "7551aa70e8d9cbd8b3744fde48e82aa40393ebf8";
+    sha256 = "0mngw99aj60bf02y3piimxc1z1zbw1dhwyixndxh3b3m9xqhk51h";
   };
 
+  cargoPatches = [./update-cargo-lock.patch];
+
   buildInputs = lib.optional stdenv.isDarwin Security;
 
-  cargoSha256 = "0rdg9k44si37iyqlcl1rw7ilajcvqy93gbfpd7n4cr1hg9ypm0m3";
+  cargoSha256 = "08xif13vqhy71w7fnxdyxsd9hvkr22c6kffh521sr0l8z6zlp0gq";
+
+  doCheck = false;
 
   meta = with lib; {
     description = "An advanced geospatial data analysis platform";
diff --git a/pkgs/applications/gis/whitebox-tools/update-cargo-lock.patch b/pkgs/applications/gis/whitebox-tools/update-cargo-lock.patch
new file mode 100644
index 0000000000000..8c9f1eeff11b2
--- /dev/null
+++ b/pkgs/applications/gis/whitebox-tools/update-cargo-lock.patch
@@ -0,0 +1,578 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index a0bcf0b7..c6c65322 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -4,9 +4,9 @@ version = 3
+ 
+ [[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 = "adler32"
+@@ -27,9 +27,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "alloc-no-stdlib"
+-version = "2.0.1"
++version = "2.0.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5192ec435945d87bc2f70992b4d818154b5feede43c09fb7592146374eac90a6"
++checksum = "35ef4730490ad1c4eae5c4325b2a95f521d023e5c885853ff7aca0a6a1631db3"
+ 
+ [[package]]
+ name = "alloc-stdlib"
+@@ -63,15 +63,15 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+ 
+ [[package]]
+ name = "bitflags"
+-version = "1.2.1"
++version = "1.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+ 
+ [[package]]
+ name = "brotli"
+-version = "3.3.0"
++version = "3.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7f29919120f08613aadcd4383764e00526fc9f18b6c0895814faeed0dd78613e"
++checksum = "71cb90ade945043d3d53597b2fc359bb063db8ade2bcffe7997351d0756e9d50"
+ dependencies = [
+  "alloc-no-stdlib",
+  "alloc-stdlib",
+@@ -80,9 +80,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "brotli-decompressor"
+-version = "2.3.1"
++version = "2.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1052e1c3b8d4d80eb84a8b94f0a1498797b5fb96314c001156a1c761940ef4ec"
++checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80"
+ dependencies = [
+  "alloc-no-stdlib",
+  "alloc-stdlib",
+@@ -90,9 +90,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "byteorder"
+-version = "1.4.2"
++version = "1.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b"
++checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+ 
+ [[package]]
+ name = "bzip2"
+@@ -106,9 +106,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "bzip2-sys"
+-version = "0.1.10+1.0.8"
++version = "0.1.11+1.0.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "17fa3d1ac1ca21c5c4e36a97f3c3eb25084576f6fc47bf0139c1123434216c6c"
++checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc"
+ dependencies = [
+  "cc",
+  "libc",
+@@ -117,9 +117,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "cc"
+-version = "1.0.66"
++version = "1.0.72"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48"
++checksum = "22a9137b95ea06864e018375b72adfb7db6e6f68cfc8df5a04d00288050485ee"
+ 
+ [[package]]
+ name = "cfg-if"
+@@ -149,26 +149,20 @@ dependencies = [
+  "bitflags",
+ ]
+ 
+-[[package]]
+-name = "const_fn"
+-version = "0.4.5"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "28b9d6de7f49e22cf97ad17fc4036ece69300032f45f78f30b4a4482cdc3f4a6"
+-
+ [[package]]
+ name = "crc32fast"
+-version = "1.2.1"
++version = "1.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
++checksum = "738c290dfaea84fc1ca15ad9c168d083b05a714e1efddd8edaab678dc28d2836"
+ dependencies = [
+  "cfg-if",
+ ]
+ 
+ [[package]]
+ name = "crossbeam-channel"
+-version = "0.5.0"
++version = "0.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775"
++checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
+ dependencies = [
+  "cfg-if",
+  "crossbeam-utils",
+@@ -176,9 +170,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "crossbeam-deque"
+-version = "0.8.0"
++version = "0.8.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9"
++checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e"
+ dependencies = [
+  "cfg-if",
+  "crossbeam-epoch",
+@@ -187,12 +181,11 @@ dependencies = [
+ 
+ [[package]]
+ name = "crossbeam-epoch"
+-version = "0.9.1"
++version = "0.9.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a1aaa739f95311c2c7887a76863f500026092fb1dce0161dab577e559ef3569d"
++checksum = "4ec02e091aa634e2c3ada4a392989e7c3116673ef0ac5b72232439094d73b7fd"
+ dependencies = [
+  "cfg-if",
+- "const_fn",
+  "crossbeam-utils",
+  "lazy_static",
+  "memoffset",
+@@ -201,11 +194,10 @@ dependencies = [
+ 
+ [[package]]
+ name = "crossbeam-utils"
+-version = "0.8.1"
++version = "0.8.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
++checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"
+ dependencies = [
+- "autocfg 1.0.1",
+  "cfg-if",
+  "lazy_static",
+ ]
+@@ -216,16 +208,22 @@ version = "1.6.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
+ 
++[[package]]
++name = "fasteval"
++version = "0.2.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4f4cdac9e4065d7c48e30770f8665b8cef9a3a73a63a4056a33a5f395bc7cf75"
++
+ [[package]]
+ name = "flate2"
+-version = "1.0.20"
++version = "1.0.22"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0"
++checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f"
+ dependencies = [
+  "cfg-if",
+  "crc32fast",
+  "libc",
+- "miniz_oxide 0.4.3",
++ "miniz_oxide 0.4.4",
+ ]
+ 
+ [[package]]
+@@ -236,9 +234,9 @@ checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+ 
+ [[package]]
+ name = "generic-array"
+-version = "0.12.3"
++version = "0.12.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec"
++checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd"
+ dependencies = [
+  "typenum",
+ ]
+@@ -256,18 +254,18 @@ dependencies = [
+ 
+ [[package]]
+ name = "hermit-abi"
+-version = "0.1.18"
++version = "0.1.19"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
++checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+ dependencies = [
+  "libc",
+ ]
+ 
+ [[package]]
+ name = "itoa"
+-version = "0.4.7"
++version = "0.4.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
++checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
+ 
+ [[package]]
+ name = "kdtree"
+@@ -280,9 +278,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "las"
+-version = "0.7.4"
++version = "0.7.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1c0c61a3595a942582db0ae4ac8367bba6cad29afc6387db9d7315c05890d14c"
++checksum = "80dd11fe6e333400f08bd3a17c20146bfe4f719bb92545b388be9d21e69644b1"
+ dependencies = [
+  "byteorder",
+  "chrono",
+@@ -295,9 +293,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "laz"
+-version = "0.5.2"
++version = "0.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "01192c65789af53929798b55be28a65379028e2f822939e2fe887e8a694f5562"
++checksum = "4d7a69934a6239f0b4ebb431afe9554df2ec63ef8325a9696b0e94735f554960"
+ dependencies = [
+  "byteorder",
+  "num-traits",
+@@ -311,9 +309,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+ 
+ [[package]]
+ name = "libc"
+-version = "0.2.86"
++version = "0.2.110"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b7282d924be3275cec7f6756ff4121987bc6481325397dde6ba3e7802b1a8b1c"
++checksum = "b58a4469763e4e3a906c4ed786e1c70512d16aa88f84dded826da42640fc6a1c"
+ 
+ [[package]]
+ name = "libm"
+@@ -347,9 +345,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "memoffset"
+-version = "0.6.1"
++version = "0.6.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87"
++checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+ dependencies = [
+  "autocfg 1.0.1",
+ ]
+@@ -365,9 +363,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "miniz_oxide"
+-version = "0.4.3"
++version = "0.4.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d"
++checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b"
+ dependencies = [
+  "adler",
+  "autocfg 1.0.1",
+@@ -402,23 +400,23 @@ dependencies = [
+ 
+ [[package]]
+ name = "num"
+-version = "0.3.1"
++version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8b7a8e9be5e039e2ff869df49155f1c06bd01ade2117ec783e56ab0932b67a8f"
++checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606"
+ dependencies = [
+  "num-bigint",
+- "num-complex 0.3.1",
++ "num-complex 0.4.0",
+  "num-integer",
+  "num-iter",
+- "num-rational 0.3.2",
++ "num-rational 0.4.0",
+  "num-traits",
+ ]
+ 
+ [[package]]
+ name = "num-bigint"
+-version = "0.3.2"
++version = "0.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7d0a3d5e207573f948a9e5376662aa743a2ea13f7c50a554d7af443a73fbfeba"
++checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+ dependencies = [
+  "autocfg 1.0.1",
+  "num-integer",
+@@ -437,9 +435,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "num-complex"
+-version = "0.3.1"
++version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5"
++checksum = "26873667bbbb7c5182d4a37c1add32cdf09f841af72da53318fdb81543c15085"
+ dependencies = [
+  "num-traits",
+ ]
+@@ -478,9 +476,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "num-rational"
+-version = "0.3.2"
++version = "0.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
++checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a"
+ dependencies = [
+  "autocfg 1.0.1",
+  "num-bigint",
+@@ -510,9 +508,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "pdqselect"
+-version = "0.1.0"
++version = "0.1.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4ec91767ecc0a0bbe558ce8c9da33c068066c57ecc8bb8477ef8c1ad3ef77c27"
++checksum = "7778906d9321dd56cde1d1ffa69a73e59dcf5fda6d366f62727adf2bd4193aee"
+ 
+ [[package]]
+ name = "pest"
+@@ -525,9 +523,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "pkg-config"
+-version = "0.3.19"
++version = "0.3.23"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
++checksum = "d1a3ea4f0dd7f1f3e512cf97bf100819aa547f36a6eccac8dbaae839eb92363e"
+ 
+ [[package]]
+ name = "podio"
+@@ -537,24 +535,24 @@ checksum = "b18befed8bc2b61abc79a457295e7e838417326da1586050b919414073977f19"
+ 
+ [[package]]
+ name = "ppv-lite86"
+-version = "0.2.10"
++version = "0.2.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
++checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba"
+ 
+ [[package]]
+ name = "proc-macro2"
+-version = "1.0.24"
++version = "1.0.33"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
++checksum = "fb37d2df5df740e582f28f8560cf425f52bb267d872fe58358eadb554909f07a"
+ dependencies = [
+  "unicode-xid",
+ ]
+ 
+ [[package]]
+ name = "quote"
+-version = "1.0.8"
++version = "1.0.10"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df"
++checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05"
+ dependencies = [
+  "proc-macro2",
+ ]
+@@ -756,9 +754,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
+ 
+ [[package]]
+ name = "rayon"
+-version = "1.5.0"
++version = "1.5.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674"
++checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90"
+ dependencies = [
+  "autocfg 1.0.1",
+  "crossbeam-deque",
+@@ -768,9 +766,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "rayon-core"
+-version = "1.9.0"
++version = "1.9.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a"
++checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e"
+ dependencies = [
+  "crossbeam-channel",
+  "crossbeam-deque",
+@@ -809,9 +807,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "ryu"
+-version = "1.0.5"
++version = "1.0.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
++checksum = "3c9613b5a66ab9ba26415184cfc41156594925a9cf3a2057e57f31ff145f6568"
+ 
+ [[package]]
+ name = "scopeguard"
+@@ -839,18 +837,18 @@ dependencies = [
+ 
+ [[package]]
+ name = "serde"
+-version = "1.0.123"
++version = "1.0.131"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "92d5161132722baa40d802cc70b15262b98258453e85e5d1d365c757c73869ae"
++checksum = "b4ad69dfbd3e45369132cc64e6748c2d65cdfb001a2b1c232d128b4ad60561c1"
+ dependencies = [
+  "serde_derive",
+ ]
+ 
+ [[package]]
+ name = "serde_derive"
+-version = "1.0.123"
++version = "1.0.131"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9391c295d64fc0abb2c556bad848f33cb8296276b1ad2677d1ae1ace4f258f31"
++checksum = "b710a83c4e0dff6a3d511946b95274ad9ca9e5d3ae497b63fda866ac955358d2"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+@@ -859,9 +857,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "serde_json"
+-version = "1.0.64"
++version = "1.0.72"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79"
++checksum = "d0ffa0837f2dfa6fb90868c2b5468cad482e175f7dad97e7421951e663f2b527"
+ dependencies = [
+  "itoa",
+  "ryu",
+@@ -879,9 +877,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "syn"
+-version = "1.0.60"
++version = "1.0.82"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081"
++checksum = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+@@ -890,18 +888,18 @@ dependencies = [
+ 
+ [[package]]
+ name = "thiserror"
+-version = "1.0.26"
++version = "1.0.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "93119e4feac1cbe6c798c34d3a53ea0026b0b1de6a120deef895137c0529bfe2"
++checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
+ dependencies = [
+  "thiserror-impl",
+ ]
+ 
+ [[package]]
+ name = "thiserror-impl"
+-version = "1.0.26"
++version = "1.0.30"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "060d69a0afe7796bf42e9e2ff91f5ee691fb15c53d38b4b62a9a53eb23164745"
++checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+@@ -921,9 +919,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "typenum"
+-version = "1.12.0"
++version = "1.14.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
++checksum = "b63708a265f51345575b27fe43f9500ad611579e764c79edbc2037b1121959ec"
+ 
+ [[package]]
+ name = "ucd-trie"
+@@ -933,9 +931,9 @@ checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c"
+ 
+ [[package]]
+ name = "unicode-xid"
+-version = "0.2.1"
++version = "0.2.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
++checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
+ 
+ [[package]]
+ name = "uuid"
+@@ -957,10 +955,11 @@ checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
+ 
+ [[package]]
+ name = "whitebox_common"
+-version = "1.5.0"
++version = "2.0.0"
+ dependencies = [
+  "byteorder",
+  "nalgebra",
++ "num-traits",
+  "rand 0.7.3",
+  "rstar",
+  "rustc_version",
+@@ -970,7 +969,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "whitebox_lidar"
+-version = "1.5.0"
++version = "2.0.0"
+ dependencies = [
+  "brotli",
+  "byteorder",
+@@ -986,7 +985,9 @@ dependencies = [
+ name = "whitebox_plugins"
+ version = "1.5.0"
+ dependencies = [
++ "fasteval",
+  "num_cpus",
++ "rand 0.7.3",
+  "whitebox_common",
+  "whitebox_raster",
+  "whitebox_vector",
+@@ -994,7 +995,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "whitebox_raster"
+-version = "1.5.0"
++version = "2.0.0"
+ dependencies = [
+  "byteorder",
+  "chrono",
+@@ -1006,7 +1007,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "whitebox_tools"
+-version = "1.5.0"
++version = "2.0.0"
+ dependencies = [
+  "byteorder",
+  "chrono",
diff --git a/pkgs/applications/graphics/ImageMagick/7.0.nix b/pkgs/applications/graphics/ImageMagick/7.0.nix
index 257206b4f27e8..54f8384999561 100644
--- a/pkgs/applications/graphics/ImageMagick/7.0.nix
+++ b/pkgs/applications/graphics/ImageMagick/7.0.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, libtool
+{ lib, stdenv, fetchurl, pkg-config, libtool
 , bzip2, zlib, libX11, libXext, libXt, fontconfig, freetype, ghostscript, libjpeg, djvulibre
 , lcms2, openexr, libjxl, libpng, liblqr1, libraw, librsvg, libtiff, libxml2, openjpeg, libwebp, libheif
 , ApplicationServices
@@ -18,13 +18,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "imagemagick";
-  version = "7.1.0-14";
+  version = "7.1.0-19";
 
-  src = fetchFromGitHub {
-    owner = "ImageMagick";
-    repo = "ImageMagick";
-    rev = version;
-    sha256 = "sha256-w4h4KEfmDC/dDgtk7xgEnIYvSfPlKfsvdFhx43Tn9GA=";
+  src = fetchurl {
+    url = "https://download.imagemagick.org/ImageMagick/download/releases/ImageMagick-${version}.tar.xz";
+    hash = "sha256-P9eRdKsPMLwWQ68+ZU8dL/zDqVVCY5gRVWiLT0n3/Xc=";
   };
 
   outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
diff --git a/pkgs/applications/graphics/ascii-image-converter/default.nix b/pkgs/applications/graphics/ascii-image-converter/default.nix
new file mode 100644
index 0000000000000..aaed39b50da26
--- /dev/null
+++ b/pkgs/applications/graphics/ascii-image-converter/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "ascii-image-converter";
+  version = "1.11.0";
+
+  src = fetchFromGitHub {
+    owner = "TheZoraiz";
+    repo = "ascii-image-converter";
+    rev = "v${version}";
+    sha256 = "DitJnWIz1Dt9yXtyQp/z738IAmG4neYmfc49Wdjos7Q=";
+  };
+
+  runVend = true;
+  vendorSha256 = "JKrBMhzBL1+jlMPudynjOc/ekFiUVaxltyLr4V8QZbg=";
+
+  meta = with lib; {
+    description = "Convert images into ASCII art on the console";
+    homepage = "https://github.com/TheZoraiz/ascii-image-converter#readme";
+    license = licenses.asl20;
+    maintainers = [ maintainers.danth ];
+  };
+}
diff --git a/pkgs/applications/graphics/avocode/default.nix b/pkgs/applications/graphics/avocode/default.nix
index a2a9dcd4750a0..fede2c9bb51ae 100644
--- a/pkgs/applications/graphics/avocode/default.nix
+++ b/pkgs/applications/graphics/avocode/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "avocode";
-  version = "4.15.1";
+  version = "4.15.5";
 
   src = fetchurl {
     url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip";
-    sha256 = "sha256-Cli1tbe/eHS0yk1OhrSgFwjjGx2jvQSYStkKYj6gk4I=";
+    sha256 = "sha256-vPS2hTaWjundVjtguy/1eH1qBaipN2Ij8PQODka+IGg=";
   };
 
   libPath = lib.makeLibraryPath (with xorg; [
diff --git a/pkgs/applications/graphics/digikam/default.nix b/pkgs/applications/graphics/digikam/default.nix
index 141f966253d82..f528d587a4176 100644
--- a/pkgs/applications/graphics/digikam/default.nix
+++ b/pkgs/applications/graphics/digikam/default.nix
@@ -55,11 +55,11 @@
 
 mkDerivation rec {
   pname   = "digikam";
-  version = "7.3.0";
+  version = "7.4.0";
 
   src = fetchurl {
-    url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-la6pO+HP05u1IzO4Kz5Xv2gIDH0TGddU0WeiD22+RVE=";
+    url = "mirror://kde/stable/${pname}/${version}/digiKam-${version}.tar.xz";
+    sha256 = "sha256-0Iq2bacyu0SbwQEG7BHdne+ls1Yt7TdBsEHbuqcVUEo=";
   };
 
   nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ];
diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix
index 02c0fb4091100..e229302bf5533 100644
--- a/pkgs/applications/graphics/drawio/default.nix
+++ b/pkgs/applications/graphics/drawio/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "drawio";
-  version = "15.7.3";
+  version = "16.1.2";
 
   src = fetchurl {
     url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/drawio-x86_64-${version}.rpm";
-    sha256 = "3565bcceccb57daee222270164e85b696b8d261ab88b65699912da51946a1c36";
+    sha256 = "b86ff3f77b17e7da66979fe8ea878685c0018273f5d0302f10d3094d502452ee";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/f3d/default.nix b/pkgs/applications/graphics/f3d/default.nix
index bcf707bcced61..9e3374064e6e5 100644
--- a/pkgs/applications/graphics/f3d/default.nix
+++ b/pkgs/applications/graphics/f3d/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "f3d";
-  version = "1.1.1";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "f3d-app";
     repo = "f3d";
     rev = "v${version}";
-    sha256 = "sha256-ToFP2Q+Oi+MEU9FEe5CNp0pD0bQUBQh34B9guajnqgI=";
+    sha256 = "sha256-Yn1IcGWAbXjG0wJQjRimvreozFu9mf0FMwyGNYc4P+U=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Fast and minimalist 3D viewer using VTK";
-    homepage = "https://kitware.github.io/F3D";
+    homepage = "https://f3d-app.github.io/f3d";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bcdarwin ];
     platforms = with platforms; unix;
diff --git a/pkgs/applications/graphics/fbida/default.nix b/pkgs/applications/graphics/fbida/default.nix
index 5f13136d0c8c5..5cd574bf9b79c 100644
--- a/pkgs/applications/graphics/fbida/default.nix
+++ b/pkgs/applications/graphics/fbida/default.nix
@@ -16,7 +16,7 @@
 , curl
 , sane-backends
 , libXpm
-, epoxy
+, libepoxy
 , poppler
 , mesa
 , lirc
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
     sane-backends
     libdrm
     libXpm
-    epoxy
+    libepoxy
     poppler
     lirc
     mesa
diff --git a/pkgs/applications/graphics/geeqie/default.nix b/pkgs/applications/graphics/geeqie/default.nix
index 5d44c5dceeac2..299c335e76c46 100644
--- a/pkgs/applications/graphics/geeqie/default.nix
+++ b/pkgs/applications/graphics/geeqie/default.nix
@@ -1,15 +1,17 @@
-{ lib, stdenv, fetchurl, pkg-config, autoconf, automake, gettext, intltool
+{ lib, stdenv, fetchFromGitHub, pkg-config, autoconf, automake, gettext, intltool
 , gtk3, lcms2, exiv2, libchamplain, clutter-gtk, ffmpegthumbnailer, fbida
 , wrapGAppsHook, fetchpatch
 }:
 
 stdenv.mkDerivation rec {
   pname = "geeqie";
-  version = "1.6.0";
+  version = "1.6";
 
-  src = fetchurl {
-    url = "https://github.com/BestImageViewer/geeqie/archive/refs/tags/v1.6.tar.gz";
-    sha256 = "0ky248j6n8hszkwwi949i1ypm2l5444byaspaa6564d9rpij01aj";
+  src = fetchFromGitHub {
+    owner = "BestImageViewer";
+    repo = "geeqie";
+    rev = "v${version}";
+    sha256 = "sha256-fvqpimrtzNy2UStOw3qLfC8i8V1fSrmTTsvc1ihqPsU=";
   };
 
   patches = [
diff --git a/pkgs/applications/graphics/gimp/default.nix b/pkgs/applications/graphics/gimp/default.nix
index 11a9382c94c8b..9a91e5f8c6e9e 100644
--- a/pkgs/applications/graphics/gimp/default.nix
+++ b/pkgs/applications/graphics/gimp/default.nix
@@ -53,13 +53,13 @@ let
   python = python2.withPackages (pp: [ pp.pygtk ]);
 in stdenv.mkDerivation rec {
   pname = "gimp";
-  version = "2.10.28";
+  version = "2.10.30";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "http://download.gimp.org/pub/gimp/v${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "T03CLP8atfAm/qoqtV4Fd1s6EeGYGGtHvat5y/oHiCY=";
+    sha256 = "iIFdqnbtfUJ37rNTNYuvoRbNL80shh2VuVE1wdUrZ9w=";
   };
 
   patches = [
@@ -144,9 +144,7 @@ in stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  # on Darwin,
-  # test-eevl.c:64:36: error: initializer element is not a compile-time constant
-  doCheck = !stdenv.isDarwin;
+  doCheck = true;
 
   NIX_CFLAGS_COMPILE = lib.optional stdenv.isDarwin "-DGDK_OSX_BIG_SUR=16";
 
diff --git a/pkgs/applications/graphics/gimp/plugins/default.nix b/pkgs/applications/graphics/gimp/plugins/default.nix
index 17d87b60fece0..fe1afe5b07b64 100644
--- a/pkgs/applications/graphics/gimp/plugins/default.nix
+++ b/pkgs/applications/graphics/gimp/plugins/default.nix
@@ -170,15 +170,19 @@ in
   };
 
   texturize = pluginDerivation {
-    name = "texturize-2.2.2017-07-28";
+    pname = "texturize";
+    version = "2.2+unstable=2021-12-03";
     src = fetchFromGitHub {
       owner = "lmanul";
       repo = "gimp-texturize";
-      rev = "de4367f71e40fe6d82387eaee68611a80a87e0e1";
-      sha256 = "1zzvbczly7k456c0y6s92a1i8ph4ywmbvdl8i4rcc29l4qd2z8fw";
+      rev = "9ceff0d411cda018108e5477320669b8d00d811e";
+      sha256 = "haYS0K3oAPlHtHB8phOCX5/gtWq9uiVQhG5ZhAFX0t0=";
     };
-    installPhase = "installPlugin src/texturize";
-    meta.broken = true; # https://github.com/lmanul/gimp-texturize/issues/1
+    nativeBuildInputs = with pkgs; [
+      meson
+      ninja
+      gettext
+    ];
   };
 
   waveletSharpen = pluginDerivation {
diff --git a/pkgs/applications/graphics/grafx2/default.nix b/pkgs/applications/graphics/grafx2/default.nix
index 3529f827b4a7e..df570008b0f76 100644
--- a/pkgs/applications/graphics/grafx2/default.nix
+++ b/pkgs/applications/graphics/grafx2/default.nix
@@ -24,6 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "http://pulkomandy.tk/projects/GrafX2";
     license = lib.licenses.gpl2;
     platforms = [ "x86_64-linux" "i686-linux" ];
-    maintainers = [ lib.maintainers.zoomulator ];
+    maintainers = [];
   };
 }
diff --git a/pkgs/applications/graphics/gscan2pdf/default.nix b/pkgs/applications/graphics/gscan2pdf/default.nix
index 4f76af0afb4f8..e9c624d3c9655 100644
--- a/pkgs/applications/graphics/gscan2pdf/default.nix
+++ b/pkgs/applications/graphics/gscan2pdf/default.nix
@@ -10,11 +10,11 @@ with lib;
 
 perlPackages.buildPerlPackage rec {
   pname = "gscan2pdf";
-  version = "2.12.3";
+  version = "2.12.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/gscan2pdf/${version}/${pname}-${version}.tar.xz";
-    sha256 = "tdXTcoI7DnrBsXtXR0r07hz0lDcAjZJad+o4wwxHcOk=";
+    sha256 = "sha256-UrBt0QkSk7IP4mZYFoxFNJQ1Qmcb53CemvlYfsxjZ/s=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
diff --git a/pkgs/applications/graphics/hdr-plus/default.nix b/pkgs/applications/graphics/hdr-plus/default.nix
index 0d2f19660062d..55411e92f7f95 100644
--- a/pkgs/applications/graphics/hdr-plus/default.nix
+++ b/pkgs/applications/graphics/hdr-plus/default.nix
@@ -1,31 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
+{ lib, stdenv, fetchFromGitHub
 , cmake, halide
 , libpng, libjpeg, libtiff, libraw
 }:
 
 stdenv.mkDerivation rec {
-  pname = "hdr-plus-unstable";
-  version = "2020-10-29";
+  pname = "hdr-plus";
+  version = "unstable-2021-12-10";
 
   src = fetchFromGitHub {
     owner = "timothybrooks";
     repo = "hdr-plus";
-    rev = "132bd73ccd4eaef9830124605c93f06a98607cfa";
-    sha256 = "1n49ggrppf336p7n510kapzh376791bysxj3f33m3bdzksq360ps";
+    rev = "0ab70564493bdbcd5aca899b5885505d0c824435";
+    sha256 = "sha256-QV8bGxkwFpbNzJG4kmrWwFQxUo2XzLPnoI1e32UmM6g=";
   };
 
-  patches = [
-    # PR #70, fixes incompatibility with Halide 10.0.0
-    (fetchpatch {
-      url = "https://github.com/timothybrooks/hdr-plus/pull/70/commits/077e1a476279539c72e615210762dca27984c57b.patch";
-      sha256 = "1sg2l1bqs2smpfpy4flwg86fzhcc4yf7zx998v1bfhim43yyrx59";
-    })
-  ];
-
-  postPatch = ''
-    sed -i '2a #include <array>' src/InputSource.h
-  '';
-
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [ halide libpng libjpeg libtiff libraw ];
diff --git a/pkgs/applications/graphics/hydrus/default.nix b/pkgs/applications/graphics/hydrus/default.nix
index 3fce492a9932c..0e202a92d23b5 100644
--- a/pkgs/applications/graphics/hydrus/default.nix
+++ b/pkgs/applications/graphics/hydrus/default.nix
@@ -10,14 +10,14 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "hydrus";
-  version = "462";
+  version = "467";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "hydrusnetwork";
     repo = "hydrus";
     rev = "v${version}";
-    sha256 = "sha256-eHUztpnDs1kxaBlTO7BRbO3eH+On9m7aJtbNw2b9Ado=";
+    sha256 = "sha256-ijIOCabpnaK9ww1cR+HNpCOn8uSwSEuyLWwnT2ypdD4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/icon-library/default.nix b/pkgs/applications/graphics/icon-library/default.nix
new file mode 100644
index 0000000000000..276ccb5127465
--- /dev/null
+++ b/pkgs/applications/graphics/icon-library/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchurl, wrapGAppsHook
+, cargo, desktop-file-utils, meson, ninja, pkg-config, python3, rustc
+, dbus, gdk-pixbuf, glib, gtk3, gtksourceview4, libhandy
+}:
+
+stdenv.mkDerivation rec {
+  pname = "icon-library";
+  version = "0.0.8";
+
+  src = fetchurl {
+    url = "https://gitlab.gnome.org/World/design/icon-library/uploads/fdf890706e0eef2458a5285e3bf65dd5/icon-library-${version}.tar.xz";
+    sha256 = "0807b56bgm8j1gpq4nf8x31gq9wqhcmpzpkqw6s4wissw3cb7q96";
+  };
+
+  nativeBuildInputs = [
+    cargo desktop-file-utils meson ninja pkg-config python3 rustc wrapGAppsHook
+  ];
+  buildInputs = [ dbus gdk-pixbuf glib gtk3 gtksourceview4 libhandy ];
+
+  postPatch = ''
+    patchShebangs build-aux/meson_post_install.py
+  '';
+
+  meta = with lib; {
+    homepage = "https://gitlab.gnome.org/World/design/icon-library";
+    description = "Symbolic icons for your apps";
+    maintainers = with maintainers; [ qyliss ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/graphics/image-roll/default.nix b/pkgs/applications/graphics/image-roll/default.nix
index eb5761fbd5546..7f395fe30600a 100644
--- a/pkgs/applications/graphics/image-roll/default.nix
+++ b/pkgs/applications/graphics/image-roll/default.nix
@@ -9,21 +9,27 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "image-roll";
-  version = "1.3.1";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "weclaw1";
     repo = pname;
     rev = version;
-    sha256 = "007jzmrn4cnqbi6fy5lxanbwa4pc72fbcv9irk3pfd0wspp05s8j";
+    sha256 = "sha256-NhZ0W9WBOIRe2nE4jQJ9WgfduKhHd+222feUCay4atw=";
   };
 
-  cargoSha256 = "sha256-dRRBfdGTXtoNbp7OWqOdNECXHCpj0ipkCOvcdekW+G4=";
+  cargoSha256 = "sha256-7sV8v/npmdOgTMtnww/VoK1Kp4Na9Go95XLcfdgkTik=";
 
   nativeBuildInputs = [ glib pkg-config wrapGAppsHook ];
 
   buildInputs = [ gtk3 ];
 
+  postInstall = ''
+    install -Dm444 src/resources/com.github.weclaw1.ImageRoll.desktop -t $out/share/applications/
+    install -Dm444 src/resources/com.github.weclaw1.ImageRoll.svg -t $out/share/icons/hicolor/scalable/apps/
+    install -Dm444 src/resources/com.github.weclaw1.ImageRoll.metainfo.xml -t $out/share/metainfo/
+  '';
+
   meta = with lib; {
     description = "Simple and fast GTK image viewer with basic image manipulation tools";
     homepage = "https://github.com/weclaw1/image-roll";
diff --git a/pkgs/applications/graphics/imv/default.nix b/pkgs/applications/graphics/imv/default.nix
index 04150a1ceb815..f78a4f6068154 100644
--- a/pkgs/applications/graphics/imv/default.nix
+++ b/pkgs/applications/graphics/imv/default.nix
@@ -1,6 +1,6 @@
 { stdenv
 , lib
-, fetchFromGitHub
+, fetchFromSourcehut
 , asciidoc
 , cmocka
 , docbook_xsl
@@ -56,13 +56,14 @@ assert builtins.all
 
 stdenv.mkDerivation rec {
   pname = "imv";
-  version = "4.3.0";
+  version = "4.3.1";
+  outputs = [ "out" "man" ];
 
-  src = fetchFromGitHub {
-    owner = "eXeC64";
+  src = fetchFromSourcehut {
+    owner = "~exec64";
     repo = "imv";
     rev = "v${version}";
-    sha256 = "sha256-HP9W9US9e3YAXwCqiHV8NVqrO20SfQKcW3a6+r1XrIs=";
+    sha256 = "sha256-gMAd8skst72QT4jGFH7aRdWeAd4tf/uQgXhGaM/Dpgc=";
   };
 
   mesonFlags = [
diff --git a/pkgs/applications/graphics/krita/beta.nix b/pkgs/applications/graphics/krita/beta.nix
deleted file mode 100644
index 7733c1248fc25..0000000000000
--- a/pkgs/applications/graphics/krita/beta.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ callPackage, ... } @ args:
-
-callPackage ./generic.nix (args // {
-  version = "5.0.0-beta2";
-  kde-channel = "unstable";
-  sha256 = "0hwh6k40f4kmwg14dy0vvm0m8cx8n0q67lrrc620da9mign3hjs7";
-})
diff --git a/pkgs/applications/graphics/krita/default.nix b/pkgs/applications/graphics/krita/default.nix
index 7e0a8915c408a..e9393a2e5a87f 100644
--- a/pkgs/applications/graphics/krita/default.nix
+++ b/pkgs/applications/graphics/krita/default.nix
@@ -1,7 +1,7 @@
 { callPackage, ... } @ args:
 
 callPackage ./generic.nix (args // {
-  version = "4.4.8";
+  version = "5.0.0";
   kde-channel = "stable";
-  sha256 = "1y0d8gnxfdg5nfwk8dgx8fc2bwskvnys049napb1a9fr25bqmimw";
+  sha256 = "sha256-hNWDPbyrP9OkGPTDdnDYKtkZQw8MbQpXuZOQdHHuzFc=";
 })
diff --git a/pkgs/applications/graphics/lightburn/default.nix b/pkgs/applications/graphics/lightburn/default.nix
index 63dbbd791450b..4dc5506aed65b 100644
--- a/pkgs/applications/graphics/lightburn/default.nix
+++ b/pkgs/applications/graphics/lightburn/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
   pname = "lightburn";
-  version = "1.0.04";
+  version = "1.0.06";
 
   nativeBuildInputs = [
     p7zip
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/LightBurnSoftware/deployment/releases/download/${version}/LightBurn-Linux64-v${version}.7z";
-    sha256 = "sha256-3uuYxDxlBlu3/4BhII36s+PsLJCmHDIE3fRAz6GO/js=";
+    sha256 = "sha256-2Wlyt9Xw/FNaFkN1Q6utXdGzp42piebESQARhfpvRhM=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/graphics/mcomix3/default.nix b/pkgs/applications/graphics/mcomix3/default.nix
index db777b3bd77dd..30a056738975e 100644
--- a/pkgs/applications/graphics/mcomix3/default.nix
+++ b/pkgs/applications/graphics/mcomix3/default.nix
@@ -47,7 +47,8 @@ python3.pkgs.buildPythonApplication rec {
     runHook preInstall
 
     substituteInPlace mime/*.desktop \
-      --replace "Exec=mcomix" "Exec=mcomix3"
+      --replace "Exec=mcomix" "Exec=mcomix3" \
+      --replace "Icon=mcomix" "Icon=${pname}"
     ${python3.executable} installer.py --srcdir=mcomix --target=$libdir
     mv $libdir/mcomix/mcomixstarter.py $out/bin/${pname}
     mv $libdir/mcomix/comicthumb.py $out/bin/comicthumb
diff --git a/pkgs/applications/graphics/megapixels/default.nix b/pkgs/applications/graphics/megapixels/default.nix
index 2204ebc745ee1..64782cc7fcce8 100644
--- a/pkgs/applications/graphics/megapixels/default.nix
+++ b/pkgs/applications/graphics/megapixels/default.nix
@@ -6,7 +6,7 @@
 , ninja
 , pkg-config
 , wrapGAppsHook
-, epoxy
+, libepoxy
 , gtk4
 , zbar
 , tiffSupport ? true
@@ -27,13 +27,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "megapixels";
-  version = "1.4.0";
+  version = "1.4.3";
 
   src = fetchFromGitLab {
     owner = "postmarketOS";
     repo = "megapixels";
     rev = version;
-    sha256 = "sha256-I7eevbIg+DEY9hnvat65J4Kem1FFNZc4XzaQQaewP/4=";
+    hash = "sha256-UHJ3Fayf+lS3nRuuhHHLN6mbHfHIPssWkghPMPF5ECg=";
   };
 
   nativeBuildInputs = [
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    epoxy
+    libepoxy
     gtk4
     zbar
   ];
diff --git a/pkgs/applications/graphics/pbrt/default.nix b/pkgs/applications/graphics/pbrt/default.nix
index 9fdf92a4ae80a..587a078e0660a 100644
--- a/pkgs/applications/graphics/pbrt/default.nix
+++ b/pkgs/applications/graphics/pbrt/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
   buildInputs = [ zlib ];
 
   meta = with lib; {
-    homepage = "http://pbrt.org";
+    homepage = "https://pbrt.org/";
     description = "The renderer described in the third edition of the book 'Physically Based Rendering: From Theory To Implementation'";
     platforms = platforms.linux;
     license = licenses.bsd2;
diff --git a/pkgs/applications/graphics/pdfcpu/default.nix b/pkgs/applications/graphics/pdfcpu/default.nix
index d30437c931842..f2ffa143aebbd 100644
--- a/pkgs/applications/graphics/pdfcpu/default.nix
+++ b/pkgs/applications/graphics/pdfcpu/default.nix
@@ -2,19 +2,25 @@
 
 buildGoModule rec {
   pname = "pdfcpu";
-  version = "0.3.12";
+  version = "0.3.13";
 
   src = fetchFromGitHub {
     owner = "pdfcpu";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Ts4FJWUeWHVfeBEetgACYMGEsDLHm5JOEEn7EtQduPU=";
+    sha256 = "sha256-CFKo8YEAXAniX+jL2A0naJUOn3KAWwcrPsabdiZevhI=";
   };
 
   vendorSha256 = "sha256-p/2Bu5h2P3ebgvSC12jdR2Zpd27xCFwtB/KZV0AULAM=";
 
   # No tests
   doCheck = false;
+  doInstallCheck = true;
+  installCheckPhase = ''
+    export HOME=$(mktemp -d)
+    echo checking the version print of pdfcpu
+    $out/bin/pdfcpu version | grep ${version}
+  '';
 
   subPackages = [ "cmd/pdfcpu" ];
 
diff --git a/pkgs/applications/graphics/pinta/default.nix b/pkgs/applications/graphics/pinta/default.nix
index 66804fc3110b7..6859a07b48a6d 100644
--- a/pkgs/applications/graphics/pinta/default.nix
+++ b/pkgs/applications/graphics/pinta/default.nix
@@ -10,8 +10,8 @@ let
   mono-addins = dotnetPackages.MonoAddins;
 in
 buildDotnetPackage rec {
-  baseName = "Pinta";
-  version = "1.6";
+  pname = "Pinta";
+  version = "1.7.1";
 
   outputFiles = [ "bin/*" ];
   buildInputs = [ gtksharp mono-addins gettext ];
@@ -21,7 +21,7 @@ buildDotnetPackage rec {
     owner = "PintaProject";
     repo = "Pinta";
     rev = version;
-    sha256 = "0vgswy981c7ys4q7js5k85sky7bz8v32wsfq3br4j41vg92pw97d";
+    sha256 = "sha256-yRp/dpJ9T4DieqHTj3vhyuASPGe4vjHw0rSXFrTNZVc=";
   };
 
   # Remove version information from nodes <Reference Include="... Version=... ">
@@ -74,6 +74,8 @@ buildDotnetPackage rec {
       --replace _Comment Comment \
       --replace _GenericName GenericName \
       --replace _X-GNOME-FullName X-GNOME-FullName
+    substitute xdg/pinta.appdata.xml.in xdg/pinta.appdata.xml \
+      --replace _p p
 
     xbuild /target:CompileTranslations Pinta.Install.proj
     xbuild /target:Install Pinta.Install.proj
diff --git a/pkgs/applications/graphics/pixeluvo/default.nix b/pkgs/applications/graphics/pixeluvo/default.nix
new file mode 100644
index 0000000000000..d88be43698446
--- /dev/null
+++ b/pkgs/applications/graphics/pixeluvo/default.nix
@@ -0,0 +1,55 @@
+{ lib, stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper
+, gtk3-x11 }:
+
+stdenv.mkDerivation rec {
+  pname = "pixeluvo";
+  version = "1.6.0-2";
+
+  src = fetchurl {
+    url = "http://www.pixeluvo.com/downloads/${pname}_${version}_amd64.deb";
+    sha256 = "sha256-QYSuD6o3kHg0DrFihYEcf9e3b8U1bu4Zf78+Akmm8yo=";
+  };
+
+  nativeBuildInputs = [
+    dpkg
+    makeWrapper
+    autoPatchelfHook
+  ];
+
+  buildInputs = [
+    gtk3-x11
+    stdenv.cc.cc
+  ];
+
+  libPath = lib.makeLibraryPath buildInputs;
+
+  dontBuild = true;
+  dontConfigure = true;
+
+  unpackPhase = ''
+    dpkg-deb -x ${src} ./
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mv usr $out
+    mv opt $out
+    install -Dm644 $out/opt/pixeluvo/pixeluvo.png -t $out/share/pixmaps/
+
+    substituteInPlace $out/share/applications/pixeluvo.desktop \
+      --replace '/opt/pixeluvo/pixeluvo.png' pixeluvo
+
+    makeWrapper $out/opt/pixeluvo/bin/Pixeluvo64 $out/bin/pixeluvo \
+      --prefix LD_LIBRARY_PATH : ${libPath}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A Beautifully Designed Image and Photo Editor for Windows and Linux";
+    homepage = "http://www.pixeluvo.com/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ wolfangaukang ];
+  };
+}
diff --git a/pkgs/applications/graphics/sane/backends/brscan5/default.nix b/pkgs/applications/graphics/sane/backends/brscan5/default.nix
index e42c0980a1bcb..17e9972cbe9f5 100644
--- a/pkgs/applications/graphics/sane/backends/brscan5/default.nix
+++ b/pkgs/applications/graphics/sane/backends/brscan5/default.nix
@@ -9,15 +9,15 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "brscan5";
-  version = "1.2.6-0";
+  version = "1.2.7-0";
   src = {
     "i686-linux" = fetchurl {
       url = "https://download.brother.com/welcome/dlf104034/${pname}-${version}.i386.deb";
-      sha256 = "102q745pc0168syggd4gym51qf3m3iqld3a4skfnbkm6yky4w4s8";
+      sha256 = "647d06f629c22408d25be7c0bf49a4b1c7280bf78a27aa2cde6c3e3fa8b6807a";
     };
     "x86_64-linux" = fetchurl {
       url = "https://download.brother.com/welcome/dlf104033/${pname}-${version}.amd64.deb";
-      sha256 = "1pwbzhpg5nzpw2rw936vf2cr334v8iny16y8fbb1zimgzmv427wx";
+      sha256 = "867bd88ab0d90f8e9391dc8127385095127e533cb6bd2d5d13449df602b165ae";
     };
   }."${stdenv.hostPlatform.system}";
 
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
     pushd $out/$PATH_TO_BRSCAN5
       ln -s libLxBsDeviceAccs.so.1.0.0 libLxBsDeviceAccs.so.1
       ln -s libLxBsNetDevAccs.so.1.0.0 libLxBsNetDevAccs.so.1
-      ln -s libLxBsScanCoreApi.so.3.0.0 libLxBsScanCoreApi.so.3
+      ln -s libLxBsScanCoreApi.so.3.2.0 libLxBsScanCoreApi.so.3
       ln -s libLxBsUsbDevAccs.so.1.0.0 libLxBsUsbDevAccs.so.1
       ln -s libsane-brother5.so.1.0.7 libsane-brother5.so.1
     popd
diff --git a/pkgs/applications/graphics/scantailor/default.nix b/pkgs/applications/graphics/scantailor/default.nix
index a0e52ab5d3032..3e2037f6d45d8 100644
--- a/pkgs/applications/graphics/scantailor/default.nix
+++ b/pkgs/applications/graphics/scantailor/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, qt4, cmake, libjpeg, libtiff, boost }:
+{ lib, stdenv, fetchFromGitHub, qt4, cmake, libjpeg, libtiff, boost }:
 
 stdenv.mkDerivation rec {
   pname = "scantailor";
   version = "0.9.12.1";
 
-  src = fetchurl {
-    url = "https://github.com/scantailor/scantailor/archive/RELEASE_${lib.replaceStrings ["."] ["_"] version}.tar.gz";
-    sha256 = "1pjx3a6hs16az6rki59bchy3biy7jndjx8r125q01aq7lbf5npgg";
+  src = fetchFromGitHub {
+    owner = "scantailor";
+    repo = "scantailor";
+    rev = "RELEASE_${lib.replaceStrings ["."] ["_"] version}";
+    sha256 = "sha256-Jn8+X737vwaE0ZPYdQv/1SocmWFA74XL90IW8yNiafA=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/graphics/symbolic-preview/default.nix b/pkgs/applications/graphics/symbolic-preview/default.nix
new file mode 100644
index 0000000000000..de49c9d7cd681
--- /dev/null
+++ b/pkgs/applications/graphics/symbolic-preview/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchurl, wrapGAppsHook
+, cargo, desktop-file-utils, meson, ninja, pkg-config, python3, rustc
+, gdk-pixbuf, glib, gtk3, libhandy, libxml2
+}:
+
+stdenv.mkDerivation rec {
+  pname = "symbolic-preview";
+  version = "0.0.2";
+
+  src = fetchurl {
+    url = "https://gitlab.gnome.org/World/design/symbolic-preview/uploads/91fd27bb70553c8d6c3ad2a35446ff6e/symbolic-preview-${version}.tar.xz";
+    sha256 = "1v8l10ppwbjkrq7nvb0wqc3pid6pd8dqpki3jhmjjkmbd7rpdpkq";
+  };
+
+  nativeBuildInputs = [
+    cargo desktop-file-utils meson ninja pkg-config python3 rustc wrapGAppsHook
+  ];
+  buildInputs = [ gdk-pixbuf glib gtk3 libhandy libxml2 ];
+
+  postPatch = ''
+    patchShebangs build-aux/meson_post_install.py
+  '';
+
+  meta = with lib; {
+    homepage = "https://gitlab.gnome.org/World/design/symbolic-preview";
+    description = "Symbolics made easy";
+    maintainers = with maintainers; [ qyliss ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/graphics/tev/default.nix b/pkgs/applications/graphics/tev/default.nix
index 6c9cee8514863..b82c3ff962887 100644
--- a/pkgs/applications/graphics/tev/default.nix
+++ b/pkgs/applications/graphics/tev/default.nix
@@ -5,19 +5,19 @@
 
 stdenv.mkDerivation rec {
   pname = "tev";
-  version = "1.17";
+  version = "1.19";
 
   src = fetchFromGitHub {
     owner = "Tom94";
     repo = pname;
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "12wsy2zdfhg0ygkpvz58rk86qiy259fi9grb0jxiz8zcyd6x1ngk";
+    sha256 = "sha256-laP47xOND6PMA6dwTcCupcTIW+9zCaxO6rHzvDSL9JU=";
   };
 
   nativeBuildInputs = [ cmake wrapGAppsHook ];
   buildInputs = [ libX11 libzip glfw libpng ]
-    ++ (with xorg; [ libXrandr libXinerama libXcursor libXi libXxf86vm ]);
+    ++ (with xorg; [ libXrandr libXinerama libXcursor libXi libXxf86vm libXext ]);
 
   dontWrapGApps = true; # We also need zenity (see below)
 
@@ -53,6 +53,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/Tom94/tev/releases/tag/v${version}";
     license = licenses.bsd3;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/graphics/vengi-tools/default.nix b/pkgs/applications/graphics/vengi-tools/default.nix
new file mode 100644
index 0000000000000..00b3d80adf045
--- /dev/null
+++ b/pkgs/applications/graphics/vengi-tools/default.nix
@@ -0,0 +1,119 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchurl
+
+, cmake
+, pkg-config
+, ninja
+, python3
+, makeWrapper
+
+, glm
+, lua5_4
+, SDL2
+, SDL2_mixer
+, enet
+, libuv
+, libuuid
+, wayland-protocols
+, Carbon
+# optionals
+, opencl-headers
+, OpenCL
+
+, callPackage
+, nixosTests
+}:
+
+# cmake 3.21 inserts invalid `ldd` and `-Wl,--no-as-needed` calls, apparently
+# related to
+# https://cmake.org/cmake/help/v3.21/prop_tgt/LINK_WHAT_YOU_USE.html
+let cmake3_22 = cmake.overrideAttrs (old: {
+  version = "3.22.0";
+  src = fetchurl {
+    url = "https://cmake.org/files/v3.22/cmake-3.22.0.tar.gz";
+    sha256 = "sha256-mYx7o0d40t/bPfimlUaeJLEeK/oh++QbNho/ReHJNF4=";
+  };
+});
+
+in stdenv.mkDerivation rec {
+  pname = "vengi-tools";
+  version = "0.0.14";
+
+  src = fetchFromGitHub {
+    owner = "mgerhardy";
+    repo = "engine";
+    rev = "v${version}";
+    sha256 = "sha256-v82hKskTSwM0NDgLVHpHZNRQW6tWug4pPIt91MrUwUo=";
+  };
+
+  nativeBuildInputs = [
+    cmake3_22
+    pkg-config
+    ninja
+    python3
+    makeWrapper
+  ];
+
+  buildInputs = [
+    glm
+    lua5_4
+    SDL2
+    SDL2_mixer
+    enet
+    libuv
+    libuuid
+    # Only needed for the game
+    #postgresql
+    #libpqxx
+    #mosquitto
+  ] ++ lib.optional stdenv.isLinux wayland-protocols
+    ++ lib.optionals stdenv.isDarwin [ Carbon OpenCL ]
+    ++ lib.optional (!stdenv.isDarwin) opencl-headers;
+
+  cmakeFlags = [
+    # Disable tests due to a problem in linking gtest:
+    # ld: /build/vengi-tests-core.LDHlV1.ltrans0.ltrans.o: in function `main':
+    # <artificial>:(.text.startup+0x3f): undefined reference to `testing::InitGoogleMock(int*, char**)'
+    "-DUNITTESTS=OFF"
+    "-DVISUALTESTS=OFF"
+    # We're only interested in the generic tools
+    "-DGAMES=OFF"
+    "-DMAPVIEW=OFF"
+    "-DAIDEBUG=OFF"
+  ];
+
+  # Set the data directory for each executable. We cannot set it at build time
+  # with the PKGDATADIR cmake variable because each executable needs a specific
+  # one.
+  # This is not needed on darwin, since on that platform data files are saved
+  # in *.app/Contents/Resources/ too, and are picked up automatically.
+  postInstall = lib.optionalString (!stdenv.isDarwin) ''
+    for prog in $out/bin/*; do
+      wrapProgram "$prog" \
+        --set CORE_PATH $out/share/$(basename "$prog")/
+    done
+  '';
+
+  passthru.tests = {
+    voxconvert-roundtrip = callPackage ./test-voxconvert-roundtrip.nix {};
+    run-voxedit = nixosTests.vengi-tools;
+  };
+
+  meta = with lib; {
+    description = "Tools from the vengi voxel engine, including a thumbnailer, a converter, and the VoxEdit voxel editor";
+    longDescription = ''
+      Tools from the vengi C++ voxel game engine. It includes a voxel editor
+      with character animation support and loading/saving into a lot of voxel
+      volume formats. There are other tools like e.g. a thumbnailer for your
+      filemanager and a command line tool to convert between several voxel
+      formats.
+    '';
+    homepage = "https://mgerhardy.github.io/engine/";
+    downloadPage = "https://github.com/mgerhardy/engine/releases";
+    license = [ licenses.mit licenses.cc-by-sa-30 ];
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/graphics/vengi-tools/test-voxconvert-roundtrip.nix b/pkgs/applications/graphics/vengi-tools/test-voxconvert-roundtrip.nix
new file mode 100644
index 0000000000000..27b0305615a85
--- /dev/null
+++ b/pkgs/applications/graphics/vengi-tools/test-voxconvert-roundtrip.nix
@@ -0,0 +1,15 @@
+{ stdenv
+, vengi-tools
+}:
+
+stdenv.mkDerivation {
+  name = "vengi-tools-test-voxconvert-roundtrip";
+  meta.timeout = 10;
+  buildCommand = ''
+    ${vengi-tools}/bin/vengi-voxconvert ${vengi-tools}/share/vengi-voxedit/chr_knight.qb chr_knight.vox
+    ${vengi-tools}/bin/vengi-voxconvert chr_knight.vox chr_knight.qb
+    ${vengi-tools}/bin/vengi-voxconvert chr_knight.qb chr_knight1.vox
+    diff chr_knight.vox chr_knight1.vox
+    touch $out
+  '';
+}
diff --git a/pkgs/applications/graphics/viewnior/default.nix b/pkgs/applications/graphics/viewnior/default.nix
index fc39306b75359..2a1dbe44f3611 100644
--- a/pkgs/applications/graphics/viewnior/default.nix
+++ b/pkgs/applications/graphics/viewnior/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "viewnior";
-  version = "1.7";
+  version = "1.8";
 
   src = fetchFromGitHub {
     owner = "hellosiyan";
     repo = "Viewnior";
     rev = "${pname}-${version}";
-    sha256 = "0y4hk3vq8psba5k615w18qj0kbdfp5w0lm98nv5apy6hmcpwfyig";
+    sha256 = "sha256-LTahMmcAqgqviUxR624kTozJGTniAAGWKo1ZqXjoG5M=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/weylus/default.nix b/pkgs/applications/graphics/weylus/default.nix
index f2cdfa2990e96..092366652d4fa 100644
--- a/pkgs/applications/graphics/weylus/default.nix
+++ b/pkgs/applications/graphics/weylus/default.nix
@@ -9,6 +9,8 @@
 , copyDesktopItems
 , fontconfig
 , libpng
+, pipewire
+, makeWrapper
 , autoPatchelfHook
 }:
 
@@ -38,6 +40,7 @@ stdenv.mkDerivation rec {
     fontconfig
     libva
     gst_all_1.gst-plugins-base
+    pipewire
     # autoPatchelfHook complains if these are missing, even on wayland
     xorg.libXft
     xorg.libXinerama
@@ -47,12 +50,22 @@ stdenv.mkDerivation rec {
     xorg.libXtst
   ];
 
-  nativeBuildInputs = [ copyDesktopItems autoPatchelfHook ];
+  nativeBuildInputs = [ copyDesktopItems autoPatchelfHook makeWrapper ];
+
+  postFixup = let
+    GST_PLUGIN_PATH = lib.makeSearchPathOutput  "lib" "lib/gstreamer-1.0" [
+      gst_all_1.gst-plugins-base
+      pipewire
+    ];
+  in ''
+    wrapProgram $out/bin/weylus --prefix GST_PLUGIN_PATH : ${GST_PLUGIN_PATH}
+  '';
 
   meta = with lib; {
     description = "Use your tablet as graphic tablet/touch screen on your computer";
     homepage = "https://github.com/H-M-H/Weylus";
     license = with licenses; [ agpl3Only ];
-    maintainers = with maintainers; [ legendofmiracles ];
+    maintainers = with maintainers; [ lom ];
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/kde/akonadi/default.nix b/pkgs/applications/kde/akonadi/default.nix
index f4e4c82235096..e656d36a1c9b4 100644
--- a/pkgs/applications/kde/akonadi/default.nix
+++ b/pkgs/applications/kde/akonadi/default.nix
@@ -36,4 +36,11 @@ mkDerivation {
     ''-DNIX_OUT=\"${placeholder "out"}\"''
     ''-I${lib.getDev kio}/include/KF5''  # Fixes: kio_version.h: No such file or directory
   ];
+
+  # compatibility symlinks for kmymoney, can probably be removed in next kde bump
+  postInstall = ''
+    ln -s $dev/include/KF5/AkonadiCore/Akonadi/Collection $dev/include/KF5/AkonadiCore/Collection
+    ln -s $dev/include/KF5/AkonadiCore/Akonadi/ItemFetchScope $dev/include/KF5/AkonadiCore/ItemFetchScope
+    ln -s $dev/include/KF5/AkonadiCore/Akonadi/RecursiveItemFetchJob $dev/include/KF5/AkonadiCore/RecursiveItemFetchJob
+  '';
 }
diff --git a/pkgs/applications/kde/bovo.nix b/pkgs/applications/kde/bovo.nix
index 989a80aa29f5e..ae89a8e396f6d 100644
--- a/pkgs/applications/kde/bovo.nix
+++ b/pkgs/applications/kde/bovo.nix
@@ -6,7 +6,7 @@
 mkDerivation {
   pname = "bovo";
   meta = with lib; {
-    homepage = "https://kde.org/applications/en/games/org.kde.bovo";
+    homepage = "https://apps.kde.org/bovo/";
     description = "Five in a row application";
     longDescription = ''
       Bovo is a Gomoku (from Japanese 五目並べ - lit. "five points") like game for two players,
diff --git a/pkgs/applications/kde/fetch.sh b/pkgs/applications/kde/fetch.sh
index f4eb1b85965dc..0049b3de8ab7f 100644
--- a/pkgs/applications/kde/fetch.sh
+++ b/pkgs/applications/kde/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/release-service/21.08.3/src -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/release-service/21.12.0/src -A '*.tar.xz' )
diff --git a/pkgs/applications/kde/k3b.nix b/pkgs/applications/kde/k3b.nix
index 728260120a5ed..673567fbef690 100644
--- a/pkgs/applications/kde/k3b.nix
+++ b/pkgs/applications/kde/k3b.nix
@@ -13,7 +13,7 @@ mkDerivation {
     homepage = "https://apps.kde.org/k3b/";
     description = "Disk burning application";
     license = with licenses; [ gpl2Plus ];
-    maintainers = with maintainers; [ sander phreedom ];
+    maintainers = with maintainers; [ sander ];
     platforms = platforms.linux;
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
diff --git a/pkgs/applications/kde/kalzium.nix b/pkgs/applications/kde/kalzium.nix
index 3f51f068815b7..02ab1bd52c205 100644
--- a/pkgs/applications/kde/kalzium.nix
+++ b/pkgs/applications/kde/kalzium.nix
@@ -3,7 +3,7 @@
 mkDerivation {
   pname = "kalzium";
   meta = with lib; {
-    homepage = "https://kde.org/applications/en/utilities/org.kde.kalzium";
+    homepage = "https://edu.kde.org/kalzium/";
     description = "Program that shows you the Periodic Table of Elements";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/kipi-plugins.nix b/pkgs/applications/kde/kipi-plugins.nix
index d79980a3a6f15..8dde231b7cecb 100644
--- a/pkgs/applications/kde/kipi-plugins.nix
+++ b/pkgs/applications/kde/kipi-plugins.nix
@@ -17,7 +17,7 @@ mkDerivation {
   meta = {
     description = "Plugins for KDE-based image applications";
     license = lib.licenses.gpl2;
-    homepage = "https://cgit.kde.org/kipi-plugins.git";
+    homepage = "https://github.com/KDE/kipi-plugins";
     maintainers = with lib.maintainers; [ ttuegel ];
   };
 }
diff --git a/pkgs/applications/kde/kitinerary.nix b/pkgs/applications/kde/kitinerary.nix
index cc71307f1acb3..f69e705bb2f92 100644
--- a/pkgs/applications/kde/kitinerary.nix
+++ b/pkgs/applications/kde/kitinerary.nix
@@ -1,6 +1,5 @@
-{
-  mkDerivation, lib, extra-cmake-modules
-, qtbase, qtdeclarative, ki18n, kmime, kpkpass
+{ mkDerivation, lib, extra-cmake-modules
+, qtdeclarative, ki18n, kmime, kpkpass
 , poppler, kcontacts, kcalendarcore
 , shared-mime-info
 }:
@@ -16,8 +15,13 @@ mkDerivation {
     shared-mime-info # for update-mime-database
   ];
   buildInputs = [
-    qtbase qtdeclarative ki18n kmime kpkpass poppler
+    qtdeclarative kmime kpkpass poppler
     kcontacts kcalendarcore
   ];
+
+  CXXFLAGS = [
+    "-I${lib.getDev ki18n}/include/KF5"  # Fixes: ki18n_version.h: No such file or directory
+  ];
+
   outputs = [ "out" "dev" ];
 }
diff --git a/pkgs/applications/kde/klettres.nix b/pkgs/applications/kde/klettres.nix
index ca63c4f456e15..a87090a794b51 100644
--- a/pkgs/applications/kde/klettres.nix
+++ b/pkgs/applications/kde/klettres.nix
@@ -3,7 +3,7 @@
 mkDerivation {
   pname = "klettres";
   meta = with lib; {
-    homepage = "https://kde.org/applications/en/utilities/org.kde.klettres";
+    homepage = "https://invent.kde.org/education/klettres";
     description = "An application specially designed to help the user to learn an alphabet";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/krfb.nix b/pkgs/applications/kde/krfb.nix
index 15835bc61071f..807b3508b95ab 100644
--- a/pkgs/applications/kde/krfb.nix
+++ b/pkgs/applications/kde/krfb.nix
@@ -1,10 +1,9 @@
-{
-  mkDerivation, lib,
-  extra-cmake-modules, kdoctools,
-  kconfig, kcoreaddons, kcrash, kdbusaddons, kdnssd, knotifications, kwallet,
-  kwidgetsaddons, kwindowsystem, kxmlgui,
-  libvncserver, libXtst, libXdamage,
-  qtx11extras
+{ mkDerivation, lib
+, extra-cmake-modules, kdoctools
+, kconfig, kcoreaddons, kcrash, kdbusaddons, kdnssd, knotifications, kwallet
+, kwidgetsaddons, kwindowsystem, kxmlgui, kwayland
+, libvncserver, libXtst, libXdamage
+, qtx11extras
 }:
 
 mkDerivation {
@@ -19,7 +18,7 @@ mkDerivation {
   buildInputs = [
     libvncserver libXtst libXdamage
     kconfig kcoreaddons kcrash kdbusaddons knotifications kwallet kwidgetsaddons
-    kwindowsystem kxmlgui
+    kwindowsystem kxmlgui kwayland
     qtx11extras
   ];
   propagatedBuildInputs = [ kdnssd ];
diff --git a/pkgs/applications/kde/kturtle.nix b/pkgs/applications/kde/kturtle.nix
index d178f6515450b..cf4b2c91ffed2 100644
--- a/pkgs/applications/kde/kturtle.nix
+++ b/pkgs/applications/kde/kturtle.nix
@@ -3,7 +3,7 @@
 mkDerivation {
   pname = "kturtle";
   meta = with lib; {
-    homepage = "https://kde.org/applications/en/utilities/org.kde.kturtle";
+    homepage = "https://invent.kde.org/education/kturtle";
     description = "An educational programming environment for learning how to program";
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.gpl2Plus;
diff --git a/pkgs/applications/kde/picmi.nix b/pkgs/applications/kde/picmi.nix
index 4358eb5ffac5b..205f1bd5d12fa 100644
--- a/pkgs/applications/kde/picmi.nix
+++ b/pkgs/applications/kde/picmi.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib
+{ mkDerivation, lib, fetchpatch
 , libkdegames, extra-cmake-modules
 , kdeclarative, knewstuff
 }:
@@ -15,6 +15,17 @@ mkDerivation {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
+
+  patches = [
+    # fix compile error due to usage of deprecated things
+    # probably can be removed with the next kde bump
+    (fetchpatch {
+      url = "https://invent.kde.org/games/picmi/-/commit/99639fb499fe35eb463621efca1c0e4ff2a52bad.patch";
+      revert = true;
+      sha256 = "sha256-rRhTvUB1Hpc3bLv9b5yIf/G7uJy2/OgBfXToZwV4jrg=";
+    })
+  ];
+
   nativeBuildInputs = [
     extra-cmake-modules
   ];
diff --git a/pkgs/applications/kde/srcs.nix b/pkgs/applications/kde/srcs.nix
index 73032655fc439..7e4ff2eb75d93 100644
--- a/pkgs/applications/kde/srcs.nix
+++ b/pkgs/applications/kde/srcs.nix
@@ -4,1811 +4,1843 @@
 
 {
   akonadi = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akonadi-21.08.3.tar.xz";
-      sha256 = "1yqlgzni7kj0n7k2wvi65wfz4il75j7qvmrdjw3a0ld6115j2vqs";
-      name = "akonadi-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akonadi-21.12.0.tar.xz";
+      sha256 = "1wxqkhqlvjidr7j5g4hcqykvys27snc2cp2k077dixdnp4v71gr3";
+      name = "akonadi-21.12.0.tar.xz";
     };
   };
   akonadi-calendar = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akonadi-calendar-21.08.3.tar.xz";
-      sha256 = "17pl7viz89zn43iyp6hk9q2dix1mzfxmxf08jk5wcciphabyj2sc";
-      name = "akonadi-calendar-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akonadi-calendar-21.12.0.tar.xz";
+      sha256 = "0jkzq071f2w3ysra87clxa63ykg8ywr92mqc57fxzc9hydkg0pbs";
+      name = "akonadi-calendar-21.12.0.tar.xz";
     };
   };
   akonadi-calendar-tools = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akonadi-calendar-tools-21.08.3.tar.xz";
-      sha256 = "0wc3yfb8riijmmwqbny7vpfav24w8id4s2ysbcljrvypv420ii2g";
-      name = "akonadi-calendar-tools-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akonadi-calendar-tools-21.12.0.tar.xz";
+      sha256 = "0nxcgv1vwr60706sd3hipmxx22nf3sxxif8li2r0pqnfqf542hcy";
+      name = "akonadi-calendar-tools-21.12.0.tar.xz";
     };
   };
   akonadi-contacts = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akonadi-contacts-21.08.3.tar.xz";
-      sha256 = "1i5mwjf8vp40mmdfkafhhbcmvdd2sihd6aa4z1wnhnbg59cjvp8i";
-      name = "akonadi-contacts-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akonadi-contacts-21.12.0.tar.xz";
+      sha256 = "0al4v2yv9hf1lidk135m45ckr0hgvvlb0px9wqa2zqkrykpm0qz4";
+      name = "akonadi-contacts-21.12.0.tar.xz";
     };
   };
   akonadi-import-wizard = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akonadi-import-wizard-21.08.3.tar.xz";
-      sha256 = "1splq2fgifk4mh00j4dd1lmgyc4bvz8sbsw0fznmafg76k1fvama";
-      name = "akonadi-import-wizard-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akonadi-import-wizard-21.12.0.tar.xz";
+      sha256 = "0lrvmkaphrk4sad83nc2pm3qy5q7jgp13dqh5mvqk2sb3mlpv5xi";
+      name = "akonadi-import-wizard-21.12.0.tar.xz";
     };
   };
   akonadi-mime = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akonadi-mime-21.08.3.tar.xz";
-      sha256 = "19dbgl9940wwsiyhysh1lm5ks9xb6a5m53p9qmdr5siid9karq64";
-      name = "akonadi-mime-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akonadi-mime-21.12.0.tar.xz";
+      sha256 = "07rmlsgrghy38j8nahpml5yp5zaxdwjjk77ydp2nn10fprr6ssyq";
+      name = "akonadi-mime-21.12.0.tar.xz";
     };
   };
   akonadi-notes = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akonadi-notes-21.08.3.tar.xz";
-      sha256 = "0g1kdhj4qjl29x70dl4fl30f4r67s6ldpmqrf0xnj7zwz008r0fn";
-      name = "akonadi-notes-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akonadi-notes-21.12.0.tar.xz";
+      sha256 = "0p1gn9rl5hyh14kx7p461l9a2va4kc44a1xr2xlk392bpyi7zn22";
+      name = "akonadi-notes-21.12.0.tar.xz";
     };
   };
   akonadi-search = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akonadi-search-21.08.3.tar.xz";
-      sha256 = "1fvfd1410zy9dbcjl21463wj91s5vly00l53ixaizylnjbj67lm0";
-      name = "akonadi-search-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akonadi-search-21.12.0.tar.xz";
+      sha256 = "07fazr0hq9ndpvgjvrh606qbkgk429ikmk62bp8lz161n6hxw19k";
+      name = "akonadi-search-21.12.0.tar.xz";
     };
   };
   akonadiconsole = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akonadiconsole-21.08.3.tar.xz";
-      sha256 = "1id1l6ifc1b8qsx16badhww33idk7c8qnn4lh3bg6mg1whmvy4k2";
-      name = "akonadiconsole-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akonadiconsole-21.12.0.tar.xz";
+      sha256 = "0ld1z3vidpqhrj2hmbhsiwmfn10za0jvfkg79vbdv8x0gmbyjynd";
+      name = "akonadiconsole-21.12.0.tar.xz";
     };
   };
   akregator = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/akregator-21.08.3.tar.xz";
-      sha256 = "1jb2vd43pn7i1b7ylhm74q0jkk3hwbjxh6nc2hqpl9c0ic20arf2";
-      name = "akregator-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/akregator-21.12.0.tar.xz";
+      sha256 = "0w51ndga17v7xj98r9i944v42py2qqrsg2p7q69r2ip9k73m56cv";
+      name = "akregator-21.12.0.tar.xz";
     };
   };
   analitza = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/analitza-21.08.3.tar.xz";
-      sha256 = "04g1l9q80j5rigz0667js35zjm3as0dpfkjhcm997bna1yb0d92z";
-      name = "analitza-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/analitza-21.12.0.tar.xz";
+      sha256 = "0nr84vr20aq3v3k28vx3xk4la8ff1hw7nm930vvjw8vkhpdkm03m";
+      name = "analitza-21.12.0.tar.xz";
     };
   };
   ark = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ark-21.08.3.tar.xz";
-      sha256 = "1wrxv8csj1irrwcddkjgbcivpxi2v3nj06lvayzr32b29i85h637";
-      name = "ark-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ark-21.12.0.tar.xz";
+      sha256 = "1krhxhhab4m0z4ni8dbgraymbawc85rf3b3q8zcm799zk4hphr6x";
+      name = "ark-21.12.0.tar.xz";
     };
   };
   artikulate = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/artikulate-21.08.3.tar.xz";
-      sha256 = "14g5wcw1bxxmbc9vvy07zbk2ma2cj1zbb5fdcwdf4ybaal9r43jq";
-      name = "artikulate-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/artikulate-21.12.0.tar.xz";
+      sha256 = "13jvbgvqrcrhvcnb2j3dh9r7m50b2m0nf9479ayqkp2cirm77k61";
+      name = "artikulate-21.12.0.tar.xz";
     };
   };
   audiocd-kio = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/audiocd-kio-21.08.3.tar.xz";
-      sha256 = "0fp29igj87pff8jya230j67vcz9pv7g27g4dv2pl3r6gm2kv8c9i";
-      name = "audiocd-kio-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/audiocd-kio-21.12.0.tar.xz";
+      sha256 = "12nxyy16pc4a8kwag39bmyl055f1izfsrwiblm1l5567m0v93vd1";
+      name = "audiocd-kio-21.12.0.tar.xz";
     };
   };
   baloo-widgets = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/baloo-widgets-21.08.3.tar.xz";
-      sha256 = "1pjlw22ivqhpd6bf50d8s9jaq6h2k0l2szwnh841qq7bwwkp9kcb";
-      name = "baloo-widgets-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/baloo-widgets-21.12.0.tar.xz";
+      sha256 = "19f9as73cim6f3h5qcirr88h0cmi3w0r3gcy5hdc6ghyx37wj87p";
+      name = "baloo-widgets-21.12.0.tar.xz";
     };
   };
   blinken = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/blinken-21.08.3.tar.xz";
-      sha256 = "03s3pv61jhkx3lm5rik25fglhda9l4w43blpwh78rbdk3c3s3ijg";
-      name = "blinken-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/blinken-21.12.0.tar.xz";
+      sha256 = "01542z383xkhjznmf220qvgbg902ky5jdpj1p8shbzaij5yxv847";
+      name = "blinken-21.12.0.tar.xz";
     };
   };
   bomber = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/bomber-21.08.3.tar.xz";
-      sha256 = "0h5iwpmpw8xnqh6xcm4zqqcp1ia5wir0ghwsbcgrz9ka59dfdh4z";
-      name = "bomber-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/bomber-21.12.0.tar.xz";
+      sha256 = "1iwk0b5fnv328bjd7mxhs46rmbkrchpdxk7q8mmysn8z6vyscisc";
+      name = "bomber-21.12.0.tar.xz";
     };
   };
   bovo = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/bovo-21.08.3.tar.xz";
-      sha256 = "0p5pi6rnnmikhg72gagld67r022bq3nsrhls0gglx14zfj6pgln3";
-      name = "bovo-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/bovo-21.12.0.tar.xz";
+      sha256 = "0nfzqmqfb6kwprhv4dbp3lpv8hf51rw12ib21hpx9s1jknqs6179";
+      name = "bovo-21.12.0.tar.xz";
     };
   };
   calendarsupport = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/calendarsupport-21.08.3.tar.xz";
-      sha256 = "1kial8x8sw0039n2s3nl9i0wadf8xda1bv2g9kws0kp29k58lyfy";
-      name = "calendarsupport-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/calendarsupport-21.12.0.tar.xz";
+      sha256 = "1a3rxy5g2illphi61x90b6sijkiqyfw458br5cbxj7c1q98y2p1l";
+      name = "calendarsupport-21.12.0.tar.xz";
     };
   };
   cantor = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/cantor-21.08.3.tar.xz";
-      sha256 = "1l3z0aikrfjdpcfq6apmwla9k7dqymvysi275kpx0dqi5sfgi9lb";
-      name = "cantor-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/cantor-21.12.0.tar.xz";
+      sha256 = "04413152yhg1s6iyp3a8ihjs41ni3wbv7kgqx9sz0zmn7vyfl859";
+      name = "cantor-21.12.0.tar.xz";
     };
   };
   cervisia = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/cervisia-21.08.3.tar.xz";
-      sha256 = "0a7g3g849vf0c0222944iwqhymnxcn9qj0v85m2b0bfxgdf0fgk7";
-      name = "cervisia-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/cervisia-21.12.0.tar.xz";
+      sha256 = "17b116y4bvs2d40m2m7xbwjsnf2wffv921lw5f6nwgmxqfdinacp";
+      name = "cervisia-21.12.0.tar.xz";
     };
   };
   dolphin = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/dolphin-21.08.3.tar.xz";
-      sha256 = "19yrgfliqabmymrh3sx2i5129rcc14nxb86f21wd616b3pcby5rv";
-      name = "dolphin-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/dolphin-21.12.0.tar.xz";
+      sha256 = "0s96ggzkwjs8pyad4mp8x2z2hiajxwpb2fzwsjzzkicjwa7c03z7";
+      name = "dolphin-21.12.0.tar.xz";
     };
   };
   dolphin-plugins = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/dolphin-plugins-21.08.3.tar.xz";
-      sha256 = "098i2zydzi95i860pk6p0g0wx1bryyxanawhcis5d5h3xra66s0p";
-      name = "dolphin-plugins-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/dolphin-plugins-21.12.0.tar.xz";
+      sha256 = "150kfhm3qh6x4qq3b5s5fbm7q9z7i9asmnmwqfppcqz3fjc5pg7j";
+      name = "dolphin-plugins-21.12.0.tar.xz";
     };
   };
   dragon = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/dragon-21.08.3.tar.xz";
-      sha256 = "0zfh5kmw2mvnwpcbh9i6xzzdigkglr6y0y7acw2dw6bi2cqx5cc7";
-      name = "dragon-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/dragon-21.12.0.tar.xz";
+      sha256 = "147m5rki2s8xc9i09fan37c16yicbkwz1v95li2ihjah43kgq78h";
+      name = "dragon-21.12.0.tar.xz";
     };
   };
   elisa = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/elisa-21.08.3.tar.xz";
-      sha256 = "0w3sk52ghkka305hagld5ia6z6czavbqgc0abqdz442bgnk1f1vb";
-      name = "elisa-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/elisa-21.12.0.tar.xz";
+      sha256 = "0rs81kbgsd7412sz7h6xax1c83n9lp21k062m2h50ccf4lzx7fyw";
+      name = "elisa-21.12.0.tar.xz";
     };
   };
   eventviews = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/eventviews-21.08.3.tar.xz";
-      sha256 = "08bcw79iag71yiaf7ck27b2ja4pg18ah04rxa1c6g5fr9x6kkk46";
-      name = "eventviews-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/eventviews-21.12.0.tar.xz";
+      sha256 = "1667ck9na8ajqaagxks7rlrwb6w04mxdci7mc5ash8l57icdgp6y";
+      name = "eventviews-21.12.0.tar.xz";
     };
   };
   ffmpegthumbs = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ffmpegthumbs-21.08.3.tar.xz";
-      sha256 = "10l9592f2l63rfak3f0knvzapsaa8nyx3dl82n724359qj43m530";
-      name = "ffmpegthumbs-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ffmpegthumbs-21.12.0.tar.xz";
+      sha256 = "14mimxgml627lkq7gw24j62hs5iglvbwnlbv879p7zlsg46fjg1b";
+      name = "ffmpegthumbs-21.12.0.tar.xz";
     };
   };
   filelight = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/filelight-21.08.3.tar.xz";
-      sha256 = "0j5106x93ljkcxk90cs1yvd9dw3pnr007cd4plsw5z7kgmch3zww";
-      name = "filelight-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/filelight-21.12.0.tar.xz";
+      sha256 = "1w3n550smqnq1vwsizrcry3rnpk8f3xmiabdzkx9bggrk5p07jnj";
+      name = "filelight-21.12.0.tar.xz";
     };
   };
   granatier = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/granatier-21.08.3.tar.xz";
-      sha256 = "1igia7fxll361np76763nw915d90f5hklgqii9iyld8si99amy4y";
-      name = "granatier-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/granatier-21.12.0.tar.xz";
+      sha256 = "19r5lilgjapz7bdam55cxs3z40rclczmzklp5ns348f2rqh36chg";
+      name = "granatier-21.12.0.tar.xz";
     };
   };
   grantlee-editor = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/grantlee-editor-21.08.3.tar.xz";
-      sha256 = "04yry04cdysh4a1y6nznxmfw2pww956xan0dnf77yjzssri9p2fq";
-      name = "grantlee-editor-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/grantlee-editor-21.12.0.tar.xz";
+      sha256 = "1lyv3c6801pv3mgxn8i9k6g319ggxg0mxk85nzq1w74m56ywkx12";
+      name = "grantlee-editor-21.12.0.tar.xz";
     };
   };
   grantleetheme = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/grantleetheme-21.08.3.tar.xz";
-      sha256 = "11c72jp9ywpmsc3d92cj2c9xvwmqbilsfddmlxlwnpnp2rf8q933";
-      name = "grantleetheme-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/grantleetheme-21.12.0.tar.xz";
+      sha256 = "1agkqrr29ib314x48jl4yfybnq10nk45976g7yjlfp6r8qib4pal";
+      name = "grantleetheme-21.12.0.tar.xz";
     };
   };
   gwenview = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/gwenview-21.08.3.tar.xz";
-      sha256 = "06hg20sygi6xfbifgi1d6s5zba5qqpm949xa7gyxi1vsq0kbvrq4";
-      name = "gwenview-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/gwenview-21.12.0.tar.xz";
+      sha256 = "1y484f7fvnj217qrdfva0k3359n7mz4pvxw54xar2xa9z18iqw8g";
+      name = "gwenview-21.12.0.tar.xz";
     };
   };
   incidenceeditor = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/incidenceeditor-21.08.3.tar.xz";
-      sha256 = "0p45x5qkzbfklxk22kzp9zlvl8ggdjgniq889q8hzb1s89ia1cck";
-      name = "incidenceeditor-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/incidenceeditor-21.12.0.tar.xz";
+      sha256 = "1rrda32h004gfqvvxh74wlr9ym3zbgf6a7nd2ldmn7z852z7gpsp";
+      name = "incidenceeditor-21.12.0.tar.xz";
     };
   };
   itinerary = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/itinerary-21.08.3.tar.xz";
-      sha256 = "0w7kb4wvy1sfhlkikvq1ajckizf7k2bzy2wcjdz5is69rrd5cab5";
-      name = "itinerary-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/itinerary-21.12.0.tar.xz";
+      sha256 = "1dwpaznzklxbyaj6fvgm416vbz5fyw78c5bx10z9ygmj88jv6dls";
+      name = "itinerary-21.12.0.tar.xz";
     };
   };
   juk = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/juk-21.08.3.tar.xz";
-      sha256 = "19g1dpvrssip8vysds3j4wa599ivapznz10p0p1254gkjyxdxdm3";
-      name = "juk-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/juk-21.12.0.tar.xz";
+      sha256 = "0gsdiysld5mk2k2c34d883hlgcn3ad2qkvbf4ba6iikn2kbsdhw2";
+      name = "juk-21.12.0.tar.xz";
     };
   };
   k3b = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/k3b-21.08.3.tar.xz";
-      sha256 = "1k5xn33sggx3a7lns8y64sa3schqvg476q81rig9mylh68x8rr5y";
-      name = "k3b-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/k3b-21.12.0.tar.xz";
+      sha256 = "1g6slra4bwbsr282p7xzbldq4j366x03fv99icfj9xj5kargp3jq";
+      name = "k3b-21.12.0.tar.xz";
     };
   };
   kaccounts-integration = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kaccounts-integration-21.08.3.tar.xz";
-      sha256 = "0hyaygrsdp6s96s4wa9z5l1w5w5hxwbw432zs6a2fkgq5dpa3wn4";
-      name = "kaccounts-integration-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kaccounts-integration-21.12.0.tar.xz";
+      sha256 = "0dlan1gjzci3f3xfr3gr6wb4k7qvdm3r91ihxza9bravn2pkf4n7";
+      name = "kaccounts-integration-21.12.0.tar.xz";
     };
   };
   kaccounts-providers = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kaccounts-providers-21.08.3.tar.xz";
-      sha256 = "0chajl87w3gp1a8l7h6bxf93js6jxdkx90ir82glgh45p5qhdhcr";
-      name = "kaccounts-providers-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kaccounts-providers-21.12.0.tar.xz";
+      sha256 = "0y3hirzs0q1pkrfi3k41lyxbylc0zahaky9zar5262w36wcc28ai";
+      name = "kaccounts-providers-21.12.0.tar.xz";
     };
   };
   kaddressbook = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kaddressbook-21.08.3.tar.xz";
-      sha256 = "1c16pcbjd5w04xbkjalvf697nqi751f4g8ldaing3k2rmdvhsqwg";
-      name = "kaddressbook-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kaddressbook-21.12.0.tar.xz";
+      sha256 = "126sf8agg2j8dkq4vbpd28bkg2smmkb0q3ynmxz2llifrzfxz1is";
+      name = "kaddressbook-21.12.0.tar.xz";
     };
   };
   kajongg = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kajongg-21.08.3.tar.xz";
-      sha256 = "15i5vdcwm7a5amrxxbi0f4c3ls7ly1ccg88hff2wc960wwc6nvqb";
-      name = "kajongg-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kajongg-21.12.0.tar.xz";
+      sha256 = "15fj2bmkwz9la4d44w5qpk9fwzb8y77gvybv5rqxpmaknzan2b76";
+      name = "kajongg-21.12.0.tar.xz";
     };
   };
   kalarm = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kalarm-21.08.3.tar.xz";
-      sha256 = "0zcmaf4x9jvpyri1kirnm2rij3886z9k1vx6wxxxmx6sbllpb669";
-      name = "kalarm-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kalarm-21.12.0.tar.xz";
+      sha256 = "0hl1xk6zch2ji4lgh74qpd0j8i00y0vmw6xfmhpzkri6hk3shgrm";
+      name = "kalarm-21.12.0.tar.xz";
     };
   };
   kalarmcal = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kalarmcal-21.08.3.tar.xz";
-      sha256 = "03zmw8pxhfmrm7xl5h2k42xyqwn4cllhrp43sv7pjbym9ya41wyk";
-      name = "kalarmcal-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kalarmcal-21.12.0.tar.xz";
+      sha256 = "0rk078dnr7a3x73n7sfd06p7mr2r84hbv8lvknimfdy3i2c63hhx";
+      name = "kalarmcal-21.12.0.tar.xz";
     };
   };
   kalgebra = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kalgebra-21.08.3.tar.xz";
-      sha256 = "0w2n3nyds9069c4cj1ap2b14w8nw5dc3yb62j5y6yj9qz9ip7cdk";
-      name = "kalgebra-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kalgebra-21.12.0.tar.xz";
+      sha256 = "0qibj81w8l0g144yplhy7wmh3zwws865xhih4vp6n3apa8h3a5bk";
+      name = "kalgebra-21.12.0.tar.xz";
     };
   };
   kalzium = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kalzium-21.08.3.tar.xz";
-      sha256 = "0x7dn0f2bwzplzxal2wvnc3qh2qs522626ksp6ajgf16jwf7d4kl";
-      name = "kalzium-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kalzium-21.12.0.tar.xz";
+      sha256 = "04inkz95qm3s6yh6j4aaa2vja0zkls7f9i3y5zykx665jr90bl87";
+      name = "kalzium-21.12.0.tar.xz";
     };
   };
   kamera = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kamera-21.08.3.tar.xz";
-      sha256 = "1yv87rmb8k6yh5150915fsnh8rdj1d4k8zpc8k54hxa9gjw5wqm7";
-      name = "kamera-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kamera-21.12.0.tar.xz";
+      sha256 = "1vhc5b0ry1344dh4swfbw4r9in08i297p1x0nfv28v989bf15axn";
+      name = "kamera-21.12.0.tar.xz";
     };
   };
   kamoso = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kamoso-21.08.3.tar.xz";
-      sha256 = "1k2kis36a6dlsnh85qc01yd6qnz8kwrv4hvzpkpqvvp3m4ik17wx";
-      name = "kamoso-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kamoso-21.12.0.tar.xz";
+      sha256 = "0fixk5zc647r56z1vigaj5m0xkp7n56lmda248zh54x0n5prhd8d";
+      name = "kamoso-21.12.0.tar.xz";
     };
   };
   kanagram = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kanagram-21.08.3.tar.xz";
-      sha256 = "1rxirjrw6dj23awv6gbypv0jlwfdh4baz86l32rx8pnmd9icg7s3";
-      name = "kanagram-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kanagram-21.12.0.tar.xz";
+      sha256 = "0j7agapb1byd28fn49c3j02gl108n8skk95spyi998rnm9zm2wc6";
+      name = "kanagram-21.12.0.tar.xz";
     };
   };
   kapman = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kapman-21.08.3.tar.xz";
-      sha256 = "0v8ay2s868l7dxasq0rhy065rp9sfb4fzldcqs46lxy7jmk3ws93";
-      name = "kapman-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kapman-21.12.0.tar.xz";
+      sha256 = "11vnm8ajrckg0ix5xc7mpbwqisbsqy3wivf9y18m5qkz5bvis4g4";
+      name = "kapman-21.12.0.tar.xz";
     };
   };
   kapptemplate = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kapptemplate-21.08.3.tar.xz";
-      sha256 = "02dp4qwrv3gylri936c82imh4lv1a3vfzlphmwadyhiy7j9ic5fa";
-      name = "kapptemplate-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kapptemplate-21.12.0.tar.xz";
+      sha256 = "022rrgb8bak62q253x14gk5grsimwhilwkb4rlm2scq84m4lwil7";
+      name = "kapptemplate-21.12.0.tar.xz";
     };
   };
   kate = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kate-21.08.3.tar.xz";
-      sha256 = "1gdz0wxkh34a2zi9vks9qw70g7dvkbvrbp6y68rjg7720sdb0gp2";
-      name = "kate-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kate-21.12.0.tar.xz";
+      sha256 = "0yvg2j4ijx3zq0v0djidjp5w3lj8j7qpfh9ax2ym7a3qf1y2w4ml";
+      name = "kate-21.12.0.tar.xz";
     };
   };
   katomic = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/katomic-21.08.3.tar.xz";
-      sha256 = "1sgrpqbv4zz22qijm00lzv1cv4rwjh7bbf4gz9xmnfmhyw0n88i1";
-      name = "katomic-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/katomic-21.12.0.tar.xz";
+      sha256 = "1k8aivpn9fmzwn5nzcbn2zym7m65xganxx43drk8mhx5m2lgvs0c";
+      name = "katomic-21.12.0.tar.xz";
     };
   };
   kbackup = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kbackup-21.08.3.tar.xz";
-      sha256 = "1cjb2invbc60i2lahn01kd28q3wb6s35grwglgmx2cgqqkmgl42s";
-      name = "kbackup-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kbackup-21.12.0.tar.xz";
+      sha256 = "1ki86g18mc7m9cywjpjcx1i83b5ff9dbjx7qa5fqmy5n16b85l5m";
+      name = "kbackup-21.12.0.tar.xz";
     };
   };
   kblackbox = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kblackbox-21.08.3.tar.xz";
-      sha256 = "1i4c5v5w42akf4b44sqrl9x4rhqgyjljr7k5i440ahch9qkf93pj";
-      name = "kblackbox-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kblackbox-21.12.0.tar.xz";
+      sha256 = "09lafayr6fl50dm272qph0j0qvznqsg7jkfmkq06wwm2sxxlabc9";
+      name = "kblackbox-21.12.0.tar.xz";
     };
   };
   kblocks = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kblocks-21.08.3.tar.xz";
-      sha256 = "0326fxv1nvh37h8xhvv5x4fy3l4gbrzmwsgcwslma1hakys9dhrs";
-      name = "kblocks-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kblocks-21.12.0.tar.xz";
+      sha256 = "0lc4wmgb07x87y4hyaajqkd3sw5afk1yby46wywak3m8v8scyvwg";
+      name = "kblocks-21.12.0.tar.xz";
     };
   };
   kbounce = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kbounce-21.08.3.tar.xz";
-      sha256 = "00d9m7c564qrifpaldvjk6ahclrjk1aawhypjj9sls2sisx2mip4";
-      name = "kbounce-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kbounce-21.12.0.tar.xz";
+      sha256 = "1qb3n03cl1qbnrbm2cqk20zxkpilddr8j67ca22mipp0md67c0fv";
+      name = "kbounce-21.12.0.tar.xz";
     };
   };
   kbreakout = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kbreakout-21.08.3.tar.xz";
-      sha256 = "1h3s4cr4bxi24j55anks946h7iba2wda5kbglsyfqw1ifrsq13vz";
-      name = "kbreakout-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kbreakout-21.12.0.tar.xz";
+      sha256 = "12zd36zv7qbdavism2kzbmx78vx66laykhkskaz66z1qxw1wls6y";
+      name = "kbreakout-21.12.0.tar.xz";
     };
   };
   kbruch = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kbruch-21.08.3.tar.xz";
-      sha256 = "15bfqxz4j5f5ix55fsk780p7ddrzqzmk55gmbjy796sgh8b71wcr";
-      name = "kbruch-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kbruch-21.12.0.tar.xz";
+      sha256 = "1xk8g3zp8qpqz893nnj50h1ypqzbalj57x6m4g7xy77dmwdjqgnd";
+      name = "kbruch-21.12.0.tar.xz";
     };
   };
   kcachegrind = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kcachegrind-21.08.3.tar.xz";
-      sha256 = "188m15y7sj17jyr9963gblgkknhgf32331kvzz4cwqzk14b9krr2";
-      name = "kcachegrind-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kcachegrind-21.12.0.tar.xz";
+      sha256 = "1k5fgqyd76679ay53dlksp46a0f54qyk9av5z0bq4l2ldna5k2ly";
+      name = "kcachegrind-21.12.0.tar.xz";
     };
   };
   kcalc = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kcalc-21.08.3.tar.xz";
-      sha256 = "1d7716law49cwmis4w9ij1xmi4g2wrv4mnc78xcms8kmgba5gs7v";
-      name = "kcalc-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kcalc-21.12.0.tar.xz";
+      sha256 = "1ih0xmldzm39li93xiprr4wm6xqwwkqc15bnmvy846p0b1kqg2s5";
+      name = "kcalc-21.12.0.tar.xz";
     };
   };
   kcalutils = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kcalutils-21.08.3.tar.xz";
-      sha256 = "0l209pyi866mf1pr4rkq7g3pgjvyss5sqhpy9vb2b2w66w3f66ri";
-      name = "kcalutils-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kcalutils-21.12.0.tar.xz";
+      sha256 = "09i4kbfgwpzw55rdlvl0hi1bvra0796b2d18n97lf2idafiz6bny";
+      name = "kcalutils-21.12.0.tar.xz";
     };
   };
   kcharselect = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kcharselect-21.08.3.tar.xz";
-      sha256 = "0fk06whwi4h43sw3adcs4b2s9ycwjamzrwr23m33c31mlpcb3i8z";
-      name = "kcharselect-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kcharselect-21.12.0.tar.xz";
+      sha256 = "1nbys46mbrsb1j5migpap5x11hz54vmfwxcrgcrr5l74g2gr33ks";
+      name = "kcharselect-21.12.0.tar.xz";
     };
   };
   kcolorchooser = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kcolorchooser-21.08.3.tar.xz";
-      sha256 = "07fvl4rfzhgz4kh9dhqkq6kf4913jv9cw9abfdb7k3pbr0r26qgz";
-      name = "kcolorchooser-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kcolorchooser-21.12.0.tar.xz";
+      sha256 = "0dy6p6yg1rki3bnhvskphha3v72lbw70h4x9aazkiczfyb19iyjk";
+      name = "kcolorchooser-21.12.0.tar.xz";
     };
   };
   kcron = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kcron-21.08.3.tar.xz";
-      sha256 = "1374agj9qc5ifm0yckq8m94gq7sjd42n4wwb59p756736asan8k5";
-      name = "kcron-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kcron-21.12.0.tar.xz";
+      sha256 = "1j5jcfamb3srxfli7wd32j194f51y5x60p21hkgprwmj7k8l7nia";
+      name = "kcron-21.12.0.tar.xz";
     };
   };
   kde-dev-scripts = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kde-dev-scripts-21.08.3.tar.xz";
-      sha256 = "152n6iir4xzx1a5d5bi4lb42rgl222pi6jz0hfkchk7swfgpvdfs";
-      name = "kde-dev-scripts-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kde-dev-scripts-21.12.0.tar.xz";
+      sha256 = "0b8xnkk0xmkw7jjhi9ilvgsn41p1f5ni6008nl1vf2ys76iv8ccq";
+      name = "kde-dev-scripts-21.12.0.tar.xz";
     };
   };
   kde-dev-utils = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kde-dev-utils-21.08.3.tar.xz";
-      sha256 = "1xs4fybbqlxji2py06hxabsisfb3bkvbfb3vy9lyj2k5vnnmpkf8";
-      name = "kde-dev-utils-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kde-dev-utils-21.12.0.tar.xz";
+      sha256 = "1jfdadirgpw4cd7apvzxk5ql0hljyqqmpzak0v395q6nhyflpa54";
+      name = "kde-dev-utils-21.12.0.tar.xz";
     };
   };
   kdebugsettings = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdebugsettings-21.08.3.tar.xz";
-      sha256 = "1d47igv0xg1hlxzyfg10h5g7s79yq44d3ixpr82risyrslbwvll4";
-      name = "kdebugsettings-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdebugsettings-21.12.0.tar.xz";
+      sha256 = "0jasjhhfyaakgawzhw7dqbxhc7pzfrcbpghg03pw0ld54ma69s0f";
+      name = "kdebugsettings-21.12.0.tar.xz";
     };
   };
   kdeconnect-kde = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdeconnect-kde-21.08.3.tar.xz";
-      sha256 = "1gfsbg6rwqv3cpfxcayn3q9i99mnhjz666p9x9ih205idlrn6iij";
-      name = "kdeconnect-kde-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdeconnect-kde-21.12.0.tar.xz";
+      sha256 = "0jlx6rlg2sspfxq9fsl1416b7229vbx0fydy0a4vdj7nrq1iv7ji";
+      name = "kdeconnect-kde-21.12.0.tar.xz";
     };
   };
   kdeedu-data = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdeedu-data-21.08.3.tar.xz";
-      sha256 = "15qqcl6gws6ddyv373dfql3wj2fryvr5b6d66q4l1xwc1mg6wnqs";
-      name = "kdeedu-data-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdeedu-data-21.12.0.tar.xz";
+      sha256 = "11wqcli3dvalkpvbzx271nmxmv825crd5bn03gl9606366q94vin";
+      name = "kdeedu-data-21.12.0.tar.xz";
     };
   };
   kdegraphics-mobipocket = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdegraphics-mobipocket-21.08.3.tar.xz";
-      sha256 = "1bli0ld2mymgppjsjjvkyk7ldpz787p30d7lf6lpafrf64di2bhm";
-      name = "kdegraphics-mobipocket-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdegraphics-mobipocket-21.12.0.tar.xz";
+      sha256 = "04rcjlhmqhgaclg0hv5mjjaq5r5nx2pi7ngj5rvh1c14001ip8y2";
+      name = "kdegraphics-mobipocket-21.12.0.tar.xz";
     };
   };
   kdegraphics-thumbnailers = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdegraphics-thumbnailers-21.08.3.tar.xz";
-      sha256 = "1hbjmkjymb3pi1lz43bl5clgdyy6kr928q7fniwiwmak3k1xrng5";
-      name = "kdegraphics-thumbnailers-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdegraphics-thumbnailers-21.12.0.tar.xz";
+      sha256 = "0zli49aa2zljly10fzhzj60mjjdikfn6fsxspgx48y0vfcqb1p3h";
+      name = "kdegraphics-thumbnailers-21.12.0.tar.xz";
     };
   };
   kdenetwork-filesharing = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdenetwork-filesharing-21.08.3.tar.xz";
-      sha256 = "19c3my0i9xb3salf7sk870nhv797wkk83dyrczw672skwl8xcnd9";
-      name = "kdenetwork-filesharing-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdenetwork-filesharing-21.12.0.tar.xz";
+      sha256 = "15svxqkynw9k6zzdjx9b8bwwy5v76lngw9hvygrfjhif8nr2np6m";
+      name = "kdenetwork-filesharing-21.12.0.tar.xz";
     };
   };
   kdenlive = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdenlive-21.08.3.tar.xz";
-      sha256 = "00ss9i9gw112vc3bjayp193qnfd3dq47bij9mv429azl20ff0y0c";
-      name = "kdenlive-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdenlive-21.12.0.tar.xz";
+      sha256 = "083lswdllznyj33qzfbzvy7lp73fwbrhn8xvp33x36nqb3h2w7g1";
+      name = "kdenlive-21.12.0.tar.xz";
     };
   };
   kdepim-addons = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdepim-addons-21.08.3.tar.xz";
-      sha256 = "1ham9yzmj89lp3zwxwpyh0qy7fxrlhgmhphn9crrkx9gsy77ddsf";
-      name = "kdepim-addons-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdepim-addons-21.12.0.tar.xz";
+      sha256 = "00xn3l54n9c1znp2k5bll04rqsqazr24mx1hg0vk3gqi6fnff2ph";
+      name = "kdepim-addons-21.12.0.tar.xz";
     };
   };
   kdepim-runtime = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdepim-runtime-21.08.3.tar.xz";
-      sha256 = "1d2208pwalc6mjfnn4gfq2f2fqgxp9w3g8igx6r6l9qsgybh1msx";
-      name = "kdepim-runtime-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdepim-runtime-21.12.0.tar.xz";
+      sha256 = "1mmp8wlhm6avwkzs81vfvqidxxagv14ll10bg4pyy2mafnm0q31a";
+      name = "kdepim-runtime-21.12.0.tar.xz";
     };
   };
   kdesdk-kioslaves = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdesdk-kioslaves-21.08.3.tar.xz";
-      sha256 = "0frw2zxwckmqmffxn5gszdxz61zc0k8xpbhbiyfxsqprh3ck4a2y";
-      name = "kdesdk-kioslaves-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdesdk-kioslaves-21.12.0.tar.xz";
+      sha256 = "1zj1xz6b0hrjvslw00vs3rgcnrhcm50as7d481zgky385j3c5i8r";
+      name = "kdesdk-kioslaves-21.12.0.tar.xz";
     };
   };
   kdesdk-thumbnailers = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdesdk-thumbnailers-21.08.3.tar.xz";
-      sha256 = "06s7i85g5gpknxlrq59i5w8czpaz5wl1b8kfx9flzx0x6ibm5s9q";
-      name = "kdesdk-thumbnailers-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdesdk-thumbnailers-21.12.0.tar.xz";
+      sha256 = "1m471h9c8lsd5jchmdjynjwj85i163qq0m6jxcl9pppsn3hvb6a3";
+      name = "kdesdk-thumbnailers-21.12.0.tar.xz";
+    };
+  };
+  kdev-php = {
+    version = "21.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/21.12.0/src/kdev-php-21.12.0.tar.xz";
+      sha256 = "02s116xbdhpvk14y8rgb6icmccy77d0mwrriqv2fxwgl2d26g57z";
+      name = "kdev-php-21.12.0.tar.xz";
+    };
+  };
+  kdev-python = {
+    version = "21.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/21.12.0/src/kdev-python-21.12.0.tar.xz";
+      sha256 = "02nfdvbwj4arkx4z5i148n7mxfb4r2f605wjhc2iddkvdmpbgpcx";
+      name = "kdev-python-21.12.0.tar.xz";
+    };
+  };
+  kdevelop = {
+    version = "21.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/21.12.0/src/kdevelop-21.12.0.tar.xz";
+      sha256 = "17v1347ljvr6wif1lihv6vbd5h2n6pi1nb5v43lin5s165d7scv4";
+      name = "kdevelop-21.12.0.tar.xz";
     };
   };
   kdf = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdf-21.08.3.tar.xz";
-      sha256 = "061xclwkhmc9m8f113hlb46dwk5zvqlmgahz13yfbvyrpj810a7k";
-      name = "kdf-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdf-21.12.0.tar.xz";
+      sha256 = "1q5w741kvyy7bkbm4xiif7ac1cyc02v8wrwr7h10fvcvbvyca50a";
+      name = "kdf-21.12.0.tar.xz";
     };
   };
   kdialog = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdialog-21.08.3.tar.xz";
-      sha256 = "1ibqz8s8p90rxy843f1wn3jnyzrm54srhfpr4ix48amf86afj2gp";
-      name = "kdialog-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdialog-21.12.0.tar.xz";
+      sha256 = "1klz70xw43rb89mi1dql0rmjpnzz4hp5dmdwybbby8zd7vkwkp07";
+      name = "kdialog-21.12.0.tar.xz";
     };
   };
   kdiamond = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kdiamond-21.08.3.tar.xz";
-      sha256 = "1vkflwvi1wa2kd6hq647g9skxg6c7jdk9hakzfphlq2jw6daml94";
-      name = "kdiamond-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kdiamond-21.12.0.tar.xz";
+      sha256 = "003qaf5nyv098f6ap86gjiqmr3a84vqjxjn40jd2g09vsn717xpf";
+      name = "kdiamond-21.12.0.tar.xz";
     };
   };
   keditbookmarks = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/keditbookmarks-21.08.3.tar.xz";
-      sha256 = "0v9grm385zyxpsqjp287cz8lvrvfzkk7b4blvdr1hi66sng7nr2n";
-      name = "keditbookmarks-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/keditbookmarks-21.12.0.tar.xz";
+      sha256 = "1pglks8hh1h7lhgzqai4jahy5zgw7j5si4ijbnk02s8zi1prjn21";
+      name = "keditbookmarks-21.12.0.tar.xz";
     };
   };
   kfind = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kfind-21.08.3.tar.xz";
-      sha256 = "04qdxqa8gfipjm5akplxrjbnlaky2djkx8nkvcqzqfhvw5i9rxqp";
-      name = "kfind-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kfind-21.12.0.tar.xz";
+      sha256 = "1a5p8673c544w1587pp49ra8xwj80hg8v6vgxh88xs5fjdxwzgf5";
+      name = "kfind-21.12.0.tar.xz";
     };
   };
   kfloppy = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kfloppy-21.08.3.tar.xz";
-      sha256 = "14l53a0mrzhnfrhalr71fv0j0ksz6c1zqj8j33nayhqz386yrccx";
-      name = "kfloppy-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kfloppy-21.12.0.tar.xz";
+      sha256 = "1sk7gaywq90nc54n18vfls5lc6pb780ggljdgn1mr9qyz98brf4v";
+      name = "kfloppy-21.12.0.tar.xz";
     };
   };
   kfourinline = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kfourinline-21.08.3.tar.xz";
-      sha256 = "0w2zdl0yfhwdwbnlqd4l9pdx7q9mr0xq7kw49h9wiajy1zmh8vls";
-      name = "kfourinline-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kfourinline-21.12.0.tar.xz";
+      sha256 = "18nl5gik49gmamdfv21ihg2fvsbx8fviwqzvfqpqjwmf7hmdn854";
+      name = "kfourinline-21.12.0.tar.xz";
     };
   };
   kgeography = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kgeography-21.08.3.tar.xz";
-      sha256 = "03wchz3bd4vlijywp9r2xilmhw4gc3ka54ilf2w60baazslhlnr3";
-      name = "kgeography-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kgeography-21.12.0.tar.xz";
+      sha256 = "0dqv45aaqdw9sf7knrsm1r8bj3vf14vvra41gsi19g6ksv245xzq";
+      name = "kgeography-21.12.0.tar.xz";
     };
   };
   kget = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kget-21.08.3.tar.xz";
-      sha256 = "0zpzh7bf65kz469viff794zdwc54aq84ndafx6g07nhqs3jhnmjp";
-      name = "kget-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kget-21.12.0.tar.xz";
+      sha256 = "0dd57942mv0rlgsdr2hm75x4g1hbkjnzy11fkczhdb2hy49ylmaz";
+      name = "kget-21.12.0.tar.xz";
     };
   };
   kgoldrunner = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kgoldrunner-21.08.3.tar.xz";
-      sha256 = "0c566c83a7kdc4kvzn37q4kdmr373hfrjgmq7mvn9bji5gcaqzch";
-      name = "kgoldrunner-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kgoldrunner-21.12.0.tar.xz";
+      sha256 = "1y5119jxg1fx0wpi9b50gc9h1im1ixzyzhsjcrp0rzqqcdyajm17";
+      name = "kgoldrunner-21.12.0.tar.xz";
     };
   };
   kgpg = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kgpg-21.08.3.tar.xz";
-      sha256 = "0q8da9mzqxg0xmclcpgjh8c744l1sm180ga6hxbasan47wwq67as";
-      name = "kgpg-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kgpg-21.12.0.tar.xz";
+      sha256 = "0i6iqnjplms1rv2f8h3p4z56z20apyw45hmp1mf45pgadwjvs59v";
+      name = "kgpg-21.12.0.tar.xz";
     };
   };
   khangman = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/khangman-21.08.3.tar.xz";
-      sha256 = "1iq4njq0fa7all8zm2q585i1grmv2nfb5qnpr8xpyn13np39q8sr";
-      name = "khangman-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/khangman-21.12.0.tar.xz";
+      sha256 = "1jvw3d743s41b1kq9vpa8l3063br4asbc9spffqlrx09d748w14n";
+      name = "khangman-21.12.0.tar.xz";
     };
   };
   khelpcenter = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/khelpcenter-21.08.3.tar.xz";
-      sha256 = "1pn5822yxqw62hynkf05a33gzs9xvrwwrxam024g6gs0y0v5nsfp";
-      name = "khelpcenter-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/khelpcenter-21.12.0.tar.xz";
+      sha256 = "0mashc7kkmq2hnsbc8cdb3jh5l3q3rynqxvdl2hqwgla83pnfs5c";
+      name = "khelpcenter-21.12.0.tar.xz";
     };
   };
   kidentitymanagement = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kidentitymanagement-21.08.3.tar.xz";
-      sha256 = "00fhw2c7jmv0xqyd1jlrlkahszw163a7cbljn83msws8m5mrnlcb";
-      name = "kidentitymanagement-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kidentitymanagement-21.12.0.tar.xz";
+      sha256 = "0gjdhxqzshc82hkhsmypyq9sgrnppq6r33zcz31c1d1g0bgklrgw";
+      name = "kidentitymanagement-21.12.0.tar.xz";
     };
   };
   kig = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kig-21.08.3.tar.xz";
-      sha256 = "1l4zap7lm1pigyldbqy20jaqysid0r4a6y71qalxk3f565jsqfx5";
-      name = "kig-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kig-21.12.0.tar.xz";
+      sha256 = "00i7ng9csgf6h2db2g6vxnhipqhhhbrnvw4zx6qz7y4f6ik3qxlc";
+      name = "kig-21.12.0.tar.xz";
     };
   };
   kigo = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kigo-21.08.3.tar.xz";
-      sha256 = "1cdrmlwpzbkz1mi2f72z9dh1pvkdkjn885zqqybhqbqicn3w3qch";
-      name = "kigo-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kigo-21.12.0.tar.xz";
+      sha256 = "1r90hxxzd36aphjhkn46q965wmsghqraiwq68x14w1kzgwkh5a7x";
+      name = "kigo-21.12.0.tar.xz";
     };
   };
   killbots = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/killbots-21.08.3.tar.xz";
-      sha256 = "1mwa46r7yvxhavprc6yjh773gjhz5ks0znsvpzambn6hk23r11p8";
-      name = "killbots-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/killbots-21.12.0.tar.xz";
+      sha256 = "19dr1n4hzhzqnhfc1sbgyimb3dr0gnfch031f1wgybg94avdk7yx";
+      name = "killbots-21.12.0.tar.xz";
     };
   };
   kimagemapeditor = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kimagemapeditor-21.08.3.tar.xz";
-      sha256 = "0vzy028cgq0ai4f9rgkc32w09yz5836y280nck2wxk2dajjc5k6x";
-      name = "kimagemapeditor-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kimagemapeditor-21.12.0.tar.xz";
+      sha256 = "0f07k4fwbp7nniky88s5h3p96g60m6zh1shkhndiv1zpznlgiaba";
+      name = "kimagemapeditor-21.12.0.tar.xz";
     };
   };
   kimap = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kimap-21.08.3.tar.xz";
-      sha256 = "11xwkgxm0ghbpcy6bmvkw1hlsfkdrlyyfbblv5m4s881ky7h4aim";
-      name = "kimap-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kimap-21.12.0.tar.xz";
+      sha256 = "0fasq0lk6w477bqg1mfpslxpclwd5jrgayfxi6qxh8pfi486c8fd";
+      name = "kimap-21.12.0.tar.xz";
     };
   };
   kio-extras = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kio-extras-21.08.3.tar.xz";
-      sha256 = "0lx0b9q68mfb96jfwsf0awcx9wn47nmnqqnk57wrbx8zx880q0j2";
-      name = "kio-extras-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kio-extras-21.12.0.tar.xz";
+      sha256 = "15lws6d794rqyxnyp812f58agd1ydgg7vka6gc2d92ks3m438qi4";
+      name = "kio-extras-21.12.0.tar.xz";
     };
   };
   kio-gdrive = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kio-gdrive-21.08.3.tar.xz";
-      sha256 = "1h781cksqq5qana80rlc0x3cfz5prl1g3il4282vf2yqihl3zgrd";
-      name = "kio-gdrive-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kio-gdrive-21.12.0.tar.xz";
+      sha256 = "0ysd1368gal4fc92jilvshj4mxr7babsqmlhx0623q2jm20f5hxj";
+      name = "kio-gdrive-21.12.0.tar.xz";
     };
   };
   kipi-plugins = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kipi-plugins-21.08.3.tar.xz";
-      sha256 = "1vscmljcadz11m4jsbkkx5f8ywbyvmfxnw1g7x5ks8d8hqsrcgd0";
-      name = "kipi-plugins-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kipi-plugins-21.12.0.tar.xz";
+      sha256 = "04abfilhlrh9lf1ayg4pc87qc5i6adxwmw1gyq9yjjg5zg7vksz9";
+      name = "kipi-plugins-21.12.0.tar.xz";
     };
   };
   kirigami-gallery = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kirigami-gallery-21.08.3.tar.xz";
-      sha256 = "0d2psfq5q7zjmd4k1jz0fgwi3gnhi78jn10hrwvc7f8fb6pw4rzc";
-      name = "kirigami-gallery-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kirigami-gallery-21.12.0.tar.xz";
+      sha256 = "1c2dyncjm6nsv4zra3h6pks808xbvgma4g7hjqlivb35snf32ky7";
+      name = "kirigami-gallery-21.12.0.tar.xz";
     };
   };
   kiriki = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kiriki-21.08.3.tar.xz";
-      sha256 = "19qvbxc0dpjq0vb5kh3qsrkv1793bz5ii958a4yqfmmc8xb26v2x";
-      name = "kiriki-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kiriki-21.12.0.tar.xz";
+      sha256 = "1a82091b66rxbfbaqls52q34gxg1jvxkjcangwgs6rq8gk624siq";
+      name = "kiriki-21.12.0.tar.xz";
     };
   };
   kiten = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kiten-21.08.3.tar.xz";
-      sha256 = "0ly44w9y4ha5nw6lqpm5gavxc3ywqc4wh04nl7wpg0m2rm624mci";
-      name = "kiten-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kiten-21.12.0.tar.xz";
+      sha256 = "1c5dh2xip3g7144rbrzaxi15lgw6x1c12aa40svjm29c7xayhac4";
+      name = "kiten-21.12.0.tar.xz";
     };
   };
   kitinerary = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kitinerary-21.08.3.tar.xz";
-      sha256 = "066rq42g5l1rmzf5c7xg21p35ln60ir92d0sp2wg9s5li0l0azbf";
-      name = "kitinerary-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kitinerary-21.12.0.tar.xz";
+      sha256 = "0dzgvijgm7f5zywpalpf9rj47jfi6dzd7j7qnq5k9sdbm9q9bw9k";
+      name = "kitinerary-21.12.0.tar.xz";
     };
   };
   kjumpingcube = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kjumpingcube-21.08.3.tar.xz";
-      sha256 = "0iya370m6n9g6m6rzfkdsb9ypwdd0ksfddiy2g0yvjf1xdxr7im9";
-      name = "kjumpingcube-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kjumpingcube-21.12.0.tar.xz";
+      sha256 = "1y0q6hzjqwaky3vjnx9wrb7glx29ffgv22d5kplgsdzg6pfz890m";
+      name = "kjumpingcube-21.12.0.tar.xz";
     };
   };
   kldap = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kldap-21.08.3.tar.xz";
-      sha256 = "1jb1k5xpicsmazc6c57z203w75h8klja7jp7p8934nvj9dgqqcd1";
-      name = "kldap-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kldap-21.12.0.tar.xz";
+      sha256 = "0q6p7r6h4xad341whg0njgq0cm9z76csdphdpg2adiqbdvgyly3g";
+      name = "kldap-21.12.0.tar.xz";
     };
   };
   kleopatra = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kleopatra-21.08.3.tar.xz";
-      sha256 = "1gpn0kpxrw4jn214k5swg2frkfgp9clr99n45z3mzjdccl8zfsbi";
-      name = "kleopatra-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kleopatra-21.12.0.tar.xz";
+      sha256 = "0q8qn4zxaphlakd2biv19fma7p4zxpc7qliz4n0yxmnkj8mhr2l7";
+      name = "kleopatra-21.12.0.tar.xz";
     };
   };
   klettres = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/klettres-21.08.3.tar.xz";
-      sha256 = "0w4fynbvnvlizz0qjkn2qcnn3xs1b0jjfmy9a01wff93a4nw2cj8";
-      name = "klettres-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/klettres-21.12.0.tar.xz";
+      sha256 = "0wz894rcgpcag23k37w7h4ddaniismvaw7ymfdwz2gzfki7mj8w7";
+      name = "klettres-21.12.0.tar.xz";
     };
   };
   klickety = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/klickety-21.08.3.tar.xz";
-      sha256 = "00dl0c6si302mprdwdngxa4361qmr27ii5kvk38vrdlq0cynzgzv";
-      name = "klickety-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/klickety-21.12.0.tar.xz";
+      sha256 = "1z0z4hb52ahzar7v5y2ap722dbz1mgil33iv6jcny1zazh7ddr5i";
+      name = "klickety-21.12.0.tar.xz";
     };
   };
   klines = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/klines-21.08.3.tar.xz";
-      sha256 = "0n3mdnwlyl0q09bz7dkb3796ki3l181085rb2r1k2mjnjwmn8zya";
-      name = "klines-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/klines-21.12.0.tar.xz";
+      sha256 = "1hjyq1n2bmdgm7v3kqw405gxvnsrf1x0i7278lz2w10x8ab6yzsk";
+      name = "klines-21.12.0.tar.xz";
     };
   };
   kmag = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmag-21.08.3.tar.xz";
-      sha256 = "09jvp1hhdam31qwljzpflcnm1mczsai6xlxlks6q0qi2n52cxkhb";
-      name = "kmag-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmag-21.12.0.tar.xz";
+      sha256 = "099mzwlgkc8zjp6nkakp73968kjimbb49wsg1ah9qmmairc0amdf";
+      name = "kmag-21.12.0.tar.xz";
     };
   };
   kmahjongg = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmahjongg-21.08.3.tar.xz";
-      sha256 = "0afjg3svj1sg47xrz3fgvgkd74lvl71sy26br7jjyxjbq1ag9sin";
-      name = "kmahjongg-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmahjongg-21.12.0.tar.xz";
+      sha256 = "0givhpisv19il3g4if14b4a8dkmspf90bw5h3ys0ybwnk7nyqj77";
+      name = "kmahjongg-21.12.0.tar.xz";
     };
   };
   kmail = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmail-21.08.3.tar.xz";
-      sha256 = "02kina7xn10f963xb7jgzrf15z6akzgl8ba4c9a7yb46ra4w2707";
-      name = "kmail-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmail-21.12.0.tar.xz";
+      sha256 = "11la8c8l6b612qwhqiiahi1nd249lsk9k9s9lihm7sjcqzhii070";
+      name = "kmail-21.12.0.tar.xz";
     };
   };
   kmail-account-wizard = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmail-account-wizard-21.08.3.tar.xz";
-      sha256 = "1wfzbkipdhmbsj1q5c79ssij1sz57mapg1kkypw10p0nlriklz89";
-      name = "kmail-account-wizard-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmail-account-wizard-21.12.0.tar.xz";
+      sha256 = "08bl6v4fs955yk3hb0a3csb644r2qpy687nakv8msqkjkm8bkjvj";
+      name = "kmail-account-wizard-21.12.0.tar.xz";
     };
   };
   kmailtransport = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmailtransport-21.08.3.tar.xz";
-      sha256 = "0xn4imfb4085wx5czxb3yiigslwfxwdi2dmgv7ng01wbphpg0chw";
-      name = "kmailtransport-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmailtransport-21.12.0.tar.xz";
+      sha256 = "161z6bd4j87c4qksgf5hnsfhip614j0lkvb11dlgnjfn99jfl8gh";
+      name = "kmailtransport-21.12.0.tar.xz";
     };
   };
   kmbox = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmbox-21.08.3.tar.xz";
-      sha256 = "19dkc5l5h5x4h5nq924clc06vz5abll2ki70pc6r9py33rfjs11j";
-      name = "kmbox-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmbox-21.12.0.tar.xz";
+      sha256 = "1052hpr6qgqdzhy7ja2bnfqzfd2mj402vbz46rsc1zghzx5vx7qk";
+      name = "kmbox-21.12.0.tar.xz";
     };
   };
   kmime = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmime-21.08.3.tar.xz";
-      sha256 = "1bmgnsslhfzyix85c5p3mym6r9f2sjw5ajd5kzw9yxzyvzyc7kv6";
-      name = "kmime-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmime-21.12.0.tar.xz";
+      sha256 = "0n6qya2j5aa8vv6iqn5rxb5jdd3zyk7p5qwp8yza5fjzvb4mrfvm";
+      name = "kmime-21.12.0.tar.xz";
     };
   };
   kmines = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmines-21.08.3.tar.xz";
-      sha256 = "0x2ligjxam6aaxpzl1zj5circ0ssn9ycafl3ydvhk9pz9j3c9cx1";
-      name = "kmines-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmines-21.12.0.tar.xz";
+      sha256 = "0jp4d6lfy07iv8ancbd22m8kmy9dx1ip8kl97zsjydzy5jz3ys7z";
+      name = "kmines-21.12.0.tar.xz";
     };
   };
   kmix = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmix-21.08.3.tar.xz";
-      sha256 = "0smfvkw8svg4fd3sf3f3l5my516jjh2n203kffkg6nr2pgscfw58";
-      name = "kmix-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmix-21.12.0.tar.xz";
+      sha256 = "02wrbh4g0xic3q7f9x51nb094xgfvsjp19dfx0phq33mcc6257b0";
+      name = "kmix-21.12.0.tar.xz";
     };
   };
   kmousetool = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmousetool-21.08.3.tar.xz";
-      sha256 = "0fyhni1m96xh7ir7zhggszfvn7rsf5dp8l065pzvla73w7l6iqwy";
-      name = "kmousetool-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmousetool-21.12.0.tar.xz";
+      sha256 = "0xrrhycdmjc2izrgmlr2c6nb2fd6ilhbgzsq816g5rnn85n2yd66";
+      name = "kmousetool-21.12.0.tar.xz";
     };
   };
   kmouth = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmouth-21.08.3.tar.xz";
-      sha256 = "0d30r0kyq260pmbk4n9ild0zibwf1sdqwpszvi2j8y5v3gn2bg69";
-      name = "kmouth-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmouth-21.12.0.tar.xz";
+      sha256 = "15g8b7xjca9klvjlfnpp61n3i4dpr77c7cx3vpm7lhm672vnb6am";
+      name = "kmouth-21.12.0.tar.xz";
     };
   };
   kmplot = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kmplot-21.08.3.tar.xz";
-      sha256 = "0az7krs0m7xly9v2aclfh4schw9hj99qmv6qmqwa1qvdhhhxd52p";
-      name = "kmplot-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kmplot-21.12.0.tar.xz";
+      sha256 = "0jhq983b4sfx57ld7b05z6i81bqbink5v5fcym56l8c7clm7jbwn";
+      name = "kmplot-21.12.0.tar.xz";
     };
   };
   knavalbattle = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/knavalbattle-21.08.3.tar.xz";
-      sha256 = "0ydbkfi1n1j9fv0rjxpvh6nsjp20zwmb5ii47pv77z6a3rk5sqf4";
-      name = "knavalbattle-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/knavalbattle-21.12.0.tar.xz";
+      sha256 = "1rh8v5m05zpvra955y3hgrral5dn0ac0vdgsbs881nj2g2md66gr";
+      name = "knavalbattle-21.12.0.tar.xz";
     };
   };
   knetwalk = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/knetwalk-21.08.3.tar.xz";
-      sha256 = "0nplhxvqiw9ap12hxyk1z247f31jqwg59d5q75jiqi1xr1gf27n2";
-      name = "knetwalk-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/knetwalk-21.12.0.tar.xz";
+      sha256 = "0akkc92s44ddak7k2arrh986pzfan3k9ccxb1b91qv2cr3ma004c";
+      name = "knetwalk-21.12.0.tar.xz";
     };
   };
   knights = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/knights-21.08.3.tar.xz";
-      sha256 = "0ajnn8jaa1h97k89qj5c7i51c2wr3zgbsiiz9bxhhmb6gwrwjqpi";
-      name = "knights-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/knights-21.12.0.tar.xz";
+      sha256 = "179c17zs4nvhwmbi04fshcww4s2lg9nzlx7f2zmg3cnbw905h939";
+      name = "knights-21.12.0.tar.xz";
     };
   };
   knotes = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/knotes-21.08.3.tar.xz";
-      sha256 = "0v5kg8gi2wmz4dhwg6pmq5pd6kh91ha9hg64z21p38b3nc4z07l4";
-      name = "knotes-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/knotes-21.12.0.tar.xz";
+      sha256 = "0qdwfnbp79jh6anvk6laj02zikvwjj1xh33phmbja2g69x9igsxg";
+      name = "knotes-21.12.0.tar.xz";
     };
   };
   kolf = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kolf-21.08.3.tar.xz";
-      sha256 = "1mz30vzdcsa9nhwqmcr6kxwvi9843b876kzpmqrlrxc19ixqbyq4";
-      name = "kolf-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kolf-21.12.0.tar.xz";
+      sha256 = "10qknxia43dh6cxarwdfgfm8qricydginxmv1y9an6v8p1mafpvm";
+      name = "kolf-21.12.0.tar.xz";
     };
   };
   kollision = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kollision-21.08.3.tar.xz";
-      sha256 = "1m46xrik0ppp6nhrsx264zzy0fdvryamcj0w5m6bm0hnyj75c4rk";
-      name = "kollision-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kollision-21.12.0.tar.xz";
+      sha256 = "0bji11sqnz3bkaa85kap2lz3sksy68gbg6062rn6nvwgwvq80fsw";
+      name = "kollision-21.12.0.tar.xz";
     };
   };
   kolourpaint = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kolourpaint-21.08.3.tar.xz";
-      sha256 = "11ciijpr8aa8nd3zgxrikdnx1gk1w78h1v1nhgqn399lxn3vkchi";
-      name = "kolourpaint-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kolourpaint-21.12.0.tar.xz";
+      sha256 = "167b9zishg4z51i2hcdq0ig9wasmmqsgr0hmj6xh8vs7bi6hdfam";
+      name = "kolourpaint-21.12.0.tar.xz";
     };
   };
   kompare = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kompare-21.08.3.tar.xz";
-      sha256 = "1988y00mb5wz9c6h4kchkyda4vas44bhiqd1zc4i0fkyl5wi5vp0";
-      name = "kompare-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kompare-21.12.0.tar.xz";
+      sha256 = "05g9i6nh7bgdxbf1i6w1g5rjbwblgj83xd7vx2l8381db2f0p6ks";
+      name = "kompare-21.12.0.tar.xz";
     };
   };
   konqueror = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/konqueror-21.08.3.tar.xz";
-      sha256 = "1ls9avkwcf7c9qnmxasbi933sjw9q3hnjyys5zf69v7p5hqvg0dz";
-      name = "konqueror-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/konqueror-21.12.0.tar.xz";
+      sha256 = "1cy0n04nnrfwms0clj5p7q6m3aayijg5nkr3n9rgbhaia050sdk7";
+      name = "konqueror-21.12.0.tar.xz";
     };
   };
   konquest = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/konquest-21.08.3.tar.xz";
-      sha256 = "0vsvzz47yn5wyl8zjnbfs1g97466l5ldxcc7mpg1q4y28fxb4jiv";
-      name = "konquest-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/konquest-21.12.0.tar.xz";
+      sha256 = "0wyzgs89xii7pcgkq6x99dfajbwhjma6va4lp58pfrrg7ysisdxw";
+      name = "konquest-21.12.0.tar.xz";
     };
   };
   konsole = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/konsole-21.08.3.tar.xz";
-      sha256 = "1w802g95s8hrlpkilxs2mh7fsg7xq3x9vzw48766kpl9ri3ppx91";
-      name = "konsole-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/konsole-21.12.0.tar.xz";
+      sha256 = "0wvgwcpp8wg6c08s95nc09ypm915741118ggy88ilz3vxf3rjlpk";
+      name = "konsole-21.12.0.tar.xz";
     };
   };
   kontact = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kontact-21.08.3.tar.xz";
-      sha256 = "0rwi34avk98m0jjbaij895ganfcz5c8l926nr399j5qnv9r6j82l";
-      name = "kontact-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kontact-21.12.0.tar.xz";
+      sha256 = "17jrj21jbxp121jmkvdzw05fbkjb6035pz38d982bkwpgc4sv5j9";
+      name = "kontact-21.12.0.tar.xz";
     };
   };
   kontactinterface = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kontactinterface-21.08.3.tar.xz";
-      sha256 = "1284f6cndf3l4il4mw1qrqvf9jmww6nmhh6fx7asw7mfc32r5zaj";
-      name = "kontactinterface-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kontactinterface-21.12.0.tar.xz";
+      sha256 = "01wz9ifmf6d8m0ggmbqyphnm05hi07zgqypy0safy9kvn3m4jj3v";
+      name = "kontactinterface-21.12.0.tar.xz";
     };
   };
   kontrast = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kontrast-21.08.3.tar.xz";
-      sha256 = "1yy4gfckabb175apvm7fcj77nxdc2fdszz1f1zrikrss20r7dc79";
-      name = "kontrast-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kontrast-21.12.0.tar.xz";
+      sha256 = "1dv79n5792pd4fs9f8i7528zy8a7xyaygyzhf3311v9dbi14arg8";
+      name = "kontrast-21.12.0.tar.xz";
     };
   };
   konversation = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/konversation-21.08.3.tar.xz";
-      sha256 = "0wfjhp6scrq9a5llr5f9fcz2k7b5jnid8m8hrp520ai4wg4ll7zv";
-      name = "konversation-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/konversation-21.12.0.tar.xz";
+      sha256 = "1lmfmw9nizp4y35w216ykxp9yz2bbds9hyw8bzy51qjk0k8lw3jl";
+      name = "konversation-21.12.0.tar.xz";
     };
   };
   kopeninghours = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kopeninghours-21.08.3.tar.xz";
-      sha256 = "090rp2qpsbsyqm4nipq398c3pkr0rx46rwmr4393wffzmnbiwcb9";
-      name = "kopeninghours-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kopeninghours-21.12.0.tar.xz";
+      sha256 = "1p0ql8amxaf7j36y5qajy341aa90lb9q5667jw1zbvfc7kf3myq7";
+      name = "kopeninghours-21.12.0.tar.xz";
     };
   };
   kopete = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kopete-21.08.3.tar.xz";
-      sha256 = "105zwy4k7idkdmjjx754x7acszd4yw3y3r7lrf61f44wsm9dv2wr";
-      name = "kopete-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kopete-21.12.0.tar.xz";
+      sha256 = "0m47h44b4xxva5qg6iw09a52ildfgwgz8c7z3wjc09r88akiarsy";
+      name = "kopete-21.12.0.tar.xz";
     };
   };
   korganizer = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/korganizer-21.08.3.tar.xz";
-      sha256 = "00r7abidj71yqgx4g0kd09dfnq0ilqh3kyzq47ms912gp1dkr5b9";
-      name = "korganizer-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/korganizer-21.12.0.tar.xz";
+      sha256 = "1qfc43llhw9941k9lh9g03bal4hzp80m5yapklcnd6smq2z0kk98";
+      name = "korganizer-21.12.0.tar.xz";
     };
   };
   kosmindoormap = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kosmindoormap-21.08.3.tar.xz";
-      sha256 = "15qq6w14yxfprzzj3267z15zkalsb8y0igq772hwyz4v7f6xhydp";
-      name = "kosmindoormap-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kosmindoormap-21.12.0.tar.xz";
+      sha256 = "1li3jz8b6kqxwivdmcfjgyxc4kvldi6i8n7ik4kllvljv67zqch3";
+      name = "kosmindoormap-21.12.0.tar.xz";
     };
   };
   kpat = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kpat-21.08.3.tar.xz";
-      sha256 = "0s8k8q12hvciz2c38gn5w7miz0i97pqn4jrs69sm294nw7wh1xi4";
-      name = "kpat-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kpat-21.12.0.tar.xz";
+      sha256 = "032advwlagv52nkfd2dv6ri6hq3i8wdmffcgcb2879fvdix6jkz2";
+      name = "kpat-21.12.0.tar.xz";
     };
   };
   kpimtextedit = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kpimtextedit-21.08.3.tar.xz";
-      sha256 = "18bjvhlvjn5a1gnzw478l15mgda4c7qba0qqk9rrbh2ryr1ksf7h";
-      name = "kpimtextedit-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kpimtextedit-21.12.0.tar.xz";
+      sha256 = "17yhh63cjpjdxynqflb33cdkfy047zq7d4f1xjx3kczcm5is2ms1";
+      name = "kpimtextedit-21.12.0.tar.xz";
     };
   };
   kpkpass = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kpkpass-21.08.3.tar.xz";
-      sha256 = "0l6n358gng24fqhwjmfpxfmmcw8x80di120k72zahiqplk2arcf5";
-      name = "kpkpass-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kpkpass-21.12.0.tar.xz";
+      sha256 = "02kpwyh169swlvf0dn0n64xn4r3hbzjj6ls2jncnjwlzyrpa56xn";
+      name = "kpkpass-21.12.0.tar.xz";
     };
   };
   kpmcore = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kpmcore-21.08.3.tar.xz";
-      sha256 = "0y9bpw71dn9c39rjsl44az3y2bdczrj833dvwmrwaz6jbnhxl1kj";
-      name = "kpmcore-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kpmcore-21.12.0.tar.xz";
+      sha256 = "0czjkxv8mzf3j7kjrzncb81binvscf2vmzjv19aiaa8nq9gx9i55";
+      name = "kpmcore-21.12.0.tar.xz";
     };
   };
   kpublictransport = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kpublictransport-21.08.3.tar.xz";
-      sha256 = "06jbc0qgi5dgx9jwhdnimw1k480whbqw5x75jrx9bspv5y5br16j";
-      name = "kpublictransport-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kpublictransport-21.12.0.tar.xz";
+      sha256 = "1dzr6b404bg8f2zzphy75pr265kqpyv5bivia9p779s27vc4456a";
+      name = "kpublictransport-21.12.0.tar.xz";
     };
   };
   kqtquickcharts = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kqtquickcharts-21.08.3.tar.xz";
-      sha256 = "0kyznsq7bjzj5c091kpgn443zvkn3qbmn2b0sppj78a7b8ica5ca";
-      name = "kqtquickcharts-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kqtquickcharts-21.12.0.tar.xz";
+      sha256 = "0bnwzpawb7160vi2n10nihgb5r5dqsc5fdzwxyympl37r4l9jxin";
+      name = "kqtquickcharts-21.12.0.tar.xz";
     };
   };
   krdc = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/krdc-21.08.3.tar.xz";
-      sha256 = "0jcbbq9vd4f1kp76fanwnp6q4hq10w3z7ygrb8makpa0daa96vx4";
-      name = "krdc-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/krdc-21.12.0.tar.xz";
+      sha256 = "0v59fdf5nkgbd27nkgpynqvj0ga8a36ii2h8x3kz47rrw9xvr961";
+      name = "krdc-21.12.0.tar.xz";
     };
   };
   kreversi = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kreversi-21.08.3.tar.xz";
-      sha256 = "1ifcckbf9lr4pr9n2ggqjvv6xz747k9hk7m43y5ij0bixi6cq474";
-      name = "kreversi-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kreversi-21.12.0.tar.xz";
+      sha256 = "1s2gh544l1knwg2yl3wm3mkq1d229kp0hb376pi0lzg94cvwhwzw";
+      name = "kreversi-21.12.0.tar.xz";
     };
   };
   krfb = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/krfb-21.08.3.tar.xz";
-      sha256 = "17q0hpwqbwqg4xbq5lmk5g1fl5jplzpx1acyhcbx7il0j06cfcn4";
-      name = "krfb-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/krfb-21.12.0.tar.xz";
+      sha256 = "11vlzk0kimqnqlxcwam1j8hkd7r20lvclaflv0fr8wv5jgy5jikd";
+      name = "krfb-21.12.0.tar.xz";
     };
   };
   kross-interpreters = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kross-interpreters-21.08.3.tar.xz";
-      sha256 = "0z9lmazpw5389sgvhsjsm1219ys3fybr7hg95nrz8a334vw39nqv";
-      name = "kross-interpreters-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kross-interpreters-21.12.0.tar.xz";
+      sha256 = "1p836hhvz37gk84n2z12j49y206q525agvm1gpbf8zvizjiii12g";
+      name = "kross-interpreters-21.12.0.tar.xz";
     };
   };
   kruler = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kruler-21.08.3.tar.xz";
-      sha256 = "0rjxy4ipxxk91wlzhrw9mg5avz18l4p01in29l1ccfz278b97lqm";
-      name = "kruler-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kruler-21.12.0.tar.xz";
+      sha256 = "1ki5g7hzpxzv9fqk6xv368rzsj1pbbgnf7nfsksla0xjb7ixm4mi";
+      name = "kruler-21.12.0.tar.xz";
     };
   };
   kshisen = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kshisen-21.08.3.tar.xz";
-      sha256 = "1fnd2qck51gxnw6ncq52rd1q08abh70azs0apjnh9qk0dyjk91wh";
-      name = "kshisen-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kshisen-21.12.0.tar.xz";
+      sha256 = "1l37an6blv1a9ka8hq3nhf83nbb15mzqqgyza3g80cfziafdiy73";
+      name = "kshisen-21.12.0.tar.xz";
     };
   };
   ksirk = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ksirk-21.08.3.tar.xz";
-      sha256 = "03v8sghnipkpca3c71s3008m3psawinj90a7637r19h7gyvlyws7";
-      name = "ksirk-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ksirk-21.12.0.tar.xz";
+      sha256 = "01amnrk3apxk8i081pr2rpnra5akl751j3x9y61qh248jvh856px";
+      name = "ksirk-21.12.0.tar.xz";
     };
   };
   ksmtp = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ksmtp-21.08.3.tar.xz";
-      sha256 = "0diz01z8gczkwy8c8gvjd583w02vma7kpngzg1ax0wx640vbjq50";
-      name = "ksmtp-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ksmtp-21.12.0.tar.xz";
+      sha256 = "0p85a8svywbli6579zm931lk1nq199lfad7vf23q5qjmlg2hmnic";
+      name = "ksmtp-21.12.0.tar.xz";
     };
   };
   ksnakeduel = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ksnakeduel-21.08.3.tar.xz";
-      sha256 = "0gmcn31dg3isv5dxv01rg8w6cbfdhwsz5rpp98lrr0qx4abphva7";
-      name = "ksnakeduel-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ksnakeduel-21.12.0.tar.xz";
+      sha256 = "0gry8fl74wfs5l2qdhs9qg03l174fw207c24v9fiyhr1hjg18f9w";
+      name = "ksnakeduel-21.12.0.tar.xz";
     };
   };
   kspaceduel = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kspaceduel-21.08.3.tar.xz";
-      sha256 = "0099rc25zvbl2zg1gpmxdhnphl32bd0cxlgikyfvanigq3mx8zkd";
-      name = "kspaceduel-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kspaceduel-21.12.0.tar.xz";
+      sha256 = "1fvw18n8bq18k5n0g4a3p5b15aiwbgbwb67bz0i8p30pr969lsks";
+      name = "kspaceduel-21.12.0.tar.xz";
     };
   };
   ksquares = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ksquares-21.08.3.tar.xz";
-      sha256 = "1mgs9yapz8fm2nmv0zg2x9qfd0ijj518s43dqmss41zrjr0g3mv2";
-      name = "ksquares-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ksquares-21.12.0.tar.xz";
+      sha256 = "16kmw5c8gnfdlssh97z3g24snh7gg1hr9nb1ynszwpazvbrga7mm";
+      name = "ksquares-21.12.0.tar.xz";
     };
   };
   ksudoku = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ksudoku-21.08.3.tar.xz";
-      sha256 = "09s91xvkbybhwdkf80d7kvjj2jvii938vf650fqicypki2vf0zyx";
-      name = "ksudoku-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ksudoku-21.12.0.tar.xz";
+      sha256 = "1rymwcs0klzg6nb9jjckdcw70pv4w8x9scvlvbdyy8n54yflzrw6";
+      name = "ksudoku-21.12.0.tar.xz";
     };
   };
   ksystemlog = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ksystemlog-21.08.3.tar.xz";
-      sha256 = "1m20nvvvfbgzd3aay7hsb5pm1bgjngc36ixqs0hrklhrcmwjq9g6";
-      name = "ksystemlog-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ksystemlog-21.12.0.tar.xz";
+      sha256 = "01mqbk6gzfv1mc1b3g75ia5cb3szx02vbxykjq80icmz4x96nl2g";
+      name = "ksystemlog-21.12.0.tar.xz";
     };
   };
   kteatime = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kteatime-21.08.3.tar.xz";
-      sha256 = "175vmcbhhlan6smhagli0jpa3ik0y0wwiijigfk2srm8cyk29ymn";
-      name = "kteatime-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kteatime-21.12.0.tar.xz";
+      sha256 = "0ywr3cyijzv20qjdiyq5v4wkxhk9a7z38dv450w63v19b309gb28";
+      name = "kteatime-21.12.0.tar.xz";
     };
   };
   ktimer = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktimer-21.08.3.tar.xz";
-      sha256 = "1nr116cxw81c2bh32l2xrzmrglk36qkzycbfcffxnm7ka4flwzbm";
-      name = "ktimer-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktimer-21.12.0.tar.xz";
+      sha256 = "0qb9vlr5mvf0dnwdbz375wn8nrqvawlvsbf01g8ad43x67q7yqi7";
+      name = "ktimer-21.12.0.tar.xz";
     };
   };
   ktnef = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktnef-21.08.3.tar.xz";
-      sha256 = "0vfsy894hs3538ssbqky6nfnjzhyn8yjlmvh0mb6gg69952gcvqa";
-      name = "ktnef-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktnef-21.12.0.tar.xz";
+      sha256 = "03b5zjmfl6gmsc9pg6a8ig15gqvh2l6513yaix7ib4qxm1dmdrh8";
+      name = "ktnef-21.12.0.tar.xz";
     };
   };
   ktorrent = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktorrent-21.08.3.tar.xz";
-      sha256 = "0y1vpfc8xsm98lrf119r5clmb6xwq2a8adb347ksyvvr4l7rdkwm";
-      name = "ktorrent-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktorrent-21.12.0.tar.xz";
+      sha256 = "1jn029494vl2aj9y0c2bgpzkk1f07if904f27j83jv28fv5ynl24";
+      name = "ktorrent-21.12.0.tar.xz";
     };
   };
   ktouch = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktouch-21.08.3.tar.xz";
-      sha256 = "0i0ph52k2zw6q37qam2s09msxsdxr5v8qiqwxirjab8ad7g9z0gf";
-      name = "ktouch-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktouch-21.12.0.tar.xz";
+      sha256 = "09ayp6infp1xhh411mrqsfj31n89gyq191rgjcwajn97190kd3ch";
+      name = "ktouch-21.12.0.tar.xz";
     };
   };
   ktp-accounts-kcm = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-accounts-kcm-21.08.3.tar.xz";
-      sha256 = "1ymq8cnvvw62xd4va969imm2g62fw7fhbs8rw3wqrc2lal9d5l1g";
-      name = "ktp-accounts-kcm-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-accounts-kcm-21.12.0.tar.xz";
+      sha256 = "1vhygwh5lx1pxc1qxskc4v87fqhrwnk53a0k1xz5nymighcyxdvy";
+      name = "ktp-accounts-kcm-21.12.0.tar.xz";
     };
   };
   ktp-approver = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-approver-21.08.3.tar.xz";
-      sha256 = "0z9kw2gamgdz425aw6li6nvv1g0b1ffil0rmjh0b0z89bbpbc6jx";
-      name = "ktp-approver-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-approver-21.12.0.tar.xz";
+      sha256 = "1qsfcfym7pbihyb82sh12ziibf9hp73qwhy0hr81h2z5ijg05a7r";
+      name = "ktp-approver-21.12.0.tar.xz";
     };
   };
   ktp-auth-handler = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-auth-handler-21.08.3.tar.xz";
-      sha256 = "1z89ycwpq46w82hylwq1sizd7a563g5a22jdc1chhhlwp9dqmdc2";
-      name = "ktp-auth-handler-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-auth-handler-21.12.0.tar.xz";
+      sha256 = "0m3lwqlykx3dqd77hww7x9rmnwdwxbyl279h6mdjjr0bgnf1ypm1";
+      name = "ktp-auth-handler-21.12.0.tar.xz";
     };
   };
   ktp-call-ui = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-call-ui-21.08.3.tar.xz";
-      sha256 = "1nr064h0f4rqjka030xflhrmq0l8g87fwyi853plk7y0473fy6h2";
-      name = "ktp-call-ui-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-call-ui-21.12.0.tar.xz";
+      sha256 = "0z6v68xlg89i29zr9ldg5hlqzykwrsw1yvmi5q25rhaamqbcbhy8";
+      name = "ktp-call-ui-21.12.0.tar.xz";
     };
   };
   ktp-common-internals = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-common-internals-21.08.3.tar.xz";
-      sha256 = "0ndfdggs4j2jc93pf998r0fyj7fjnc2pz98acc1l6laq8d8aawd2";
-      name = "ktp-common-internals-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-common-internals-21.12.0.tar.xz";
+      sha256 = "1wah79byc6f5w8c0xa0z7iwjbg628m1v18nfqqs2d6mdb0wlclz4";
+      name = "ktp-common-internals-21.12.0.tar.xz";
     };
   };
   ktp-contact-list = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-contact-list-21.08.3.tar.xz";
-      sha256 = "0pdl3w1vj6f4nms4cs91yagfyf5ssqms0bzmcnjf53pcpyf8rhjs";
-      name = "ktp-contact-list-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-contact-list-21.12.0.tar.xz";
+      sha256 = "0r654q55x27m6cd9jsxgf574wd4r4b8wajj30h6mah317kpfnxg4";
+      name = "ktp-contact-list-21.12.0.tar.xz";
     };
   };
   ktp-contact-runner = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-contact-runner-21.08.3.tar.xz";
-      sha256 = "0zjw9f66rn5nc37q3q54qy8m09qlama949ksfrvyyh3qhsxp17pm";
-      name = "ktp-contact-runner-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-contact-runner-21.12.0.tar.xz";
+      sha256 = "1kbwf4pikgiym58g8hksai011braa32r1n6s20dnj2r637fywprd";
+      name = "ktp-contact-runner-21.12.0.tar.xz";
     };
   };
   ktp-desktop-applets = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-desktop-applets-21.08.3.tar.xz";
-      sha256 = "1wlls0rhynfq9cfn48g31avviy067r409c5pcvasfwgzcv5hjan5";
-      name = "ktp-desktop-applets-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-desktop-applets-21.12.0.tar.xz";
+      sha256 = "007wa3mas3cdh2cxw5k1rwhc9bdr96jk3lb0ka82viqz0fiyxlcv";
+      name = "ktp-desktop-applets-21.12.0.tar.xz";
     };
   };
   ktp-filetransfer-handler = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-filetransfer-handler-21.08.3.tar.xz";
-      sha256 = "1vnwgcmn3j18spcn2dl468n2y073mk9nsc3557hid5mmg7byp8ng";
-      name = "ktp-filetransfer-handler-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-filetransfer-handler-21.12.0.tar.xz";
+      sha256 = "19pb90zihhrsqb0nkdwan1w7mb4w65apm9ghsp9zb0j6d7sjj1yx";
+      name = "ktp-filetransfer-handler-21.12.0.tar.xz";
     };
   };
   ktp-kded-module = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-kded-module-21.08.3.tar.xz";
-      sha256 = "0mgw2w812306w04w1xgv9ngd31zj0m4v9hv3cyyk2dz1hi97g9hz";
-      name = "ktp-kded-module-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-kded-module-21.12.0.tar.xz";
+      sha256 = "18n4b3a6fyf3vwyw8pp6ilj34gbcd1s778m4b03xnm5110nrkplv";
+      name = "ktp-kded-module-21.12.0.tar.xz";
     };
   };
   ktp-send-file = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-send-file-21.08.3.tar.xz";
-      sha256 = "1c0yrir3z6p6ravizaqhdgjiwcj2cyzd61n4zcx2mrr4mfq7wr4l";
-      name = "ktp-send-file-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-send-file-21.12.0.tar.xz";
+      sha256 = "1a33cbgczivqlxksjq4a0z0qc5nml8mlkip7g9cx40vly495cj8d";
+      name = "ktp-send-file-21.12.0.tar.xz";
     };
   };
   ktp-text-ui = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktp-text-ui-21.08.3.tar.xz";
-      sha256 = "0xk9lcdp99rd1n6gg9a4ix5bdfk229y1ddf115ldjsk30ksfv0r0";
-      name = "ktp-text-ui-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktp-text-ui-21.12.0.tar.xz";
+      sha256 = "1xi4nkvcp13yzf2hdpk77icmvxsf8598njlkq72x5dw9hx6hzxfd";
+      name = "ktp-text-ui-21.12.0.tar.xz";
     };
   };
   ktuberling = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/ktuberling-21.08.3.tar.xz";
-      sha256 = "1i0ykflfr2q3043z5j5h1m093n103la8zbax7cacid109d0kca5g";
-      name = "ktuberling-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/ktuberling-21.12.0.tar.xz";
+      sha256 = "0n2hlj7v225c58j6xkqkcvk3a246l4wcmqp9fhqlanmagsn2vq2l";
+      name = "ktuberling-21.12.0.tar.xz";
     };
   };
   kturtle = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kturtle-21.08.3.tar.xz";
-      sha256 = "1fw7hgx0zxsl1l9ymjhf3k3w5999ijj8vdagnyiz01y2i2hlnvhc";
-      name = "kturtle-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kturtle-21.12.0.tar.xz";
+      sha256 = "1macqjp0b5iqvpi83d95rzzzyvmcxzfiw99g042hga48na3zz50p";
+      name = "kturtle-21.12.0.tar.xz";
     };
   };
   kubrick = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kubrick-21.08.3.tar.xz";
-      sha256 = "1fq2icsfbd6k4gm9w25aml2rigzami934vvkvb30222vbhs86qr4";
-      name = "kubrick-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kubrick-21.12.0.tar.xz";
+      sha256 = "1v9x3zf80y0aj7nhwi8r14mcxb67fav6ww7cnw6m7czyxwrpmx82";
+      name = "kubrick-21.12.0.tar.xz";
     };
   };
   kwalletmanager = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kwalletmanager-21.08.3.tar.xz";
-      sha256 = "0cbq0md317fipd4lfqvcgan1jm5n0zyilzbrkjymbnl7cy276ajq";
-      name = "kwalletmanager-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kwalletmanager-21.12.0.tar.xz";
+      sha256 = "0n8m46kvax12ji1nd3c42yqa6cznx374yzr569ilm523m1lp74hy";
+      name = "kwalletmanager-21.12.0.tar.xz";
     };
   };
   kwave = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kwave-21.08.3.tar.xz";
-      sha256 = "08qs33mi047jcqaavglgxk3i6gq4h73aygn6gj8xpcpqhq82kjl5";
-      name = "kwave-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kwave-21.12.0.tar.xz";
+      sha256 = "1cgp55c75v200b7l5q8jhvirf1pkfllgk7c2fzv7axzyg4vr2d4v";
+      name = "kwave-21.12.0.tar.xz";
     };
   };
   kwordquiz = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/kwordquiz-21.08.3.tar.xz";
-      sha256 = "066v2w8i2fvrrqb1aakscwcd6rchlm4m5pwsql0s6k59mn7wab6b";
-      name = "kwordquiz-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/kwordquiz-21.12.0.tar.xz";
+      sha256 = "0ycsy753msm50x5p938lw3mp8cxcdcbvq85f8az9f8x3y7qmnxlm";
+      name = "kwordquiz-21.12.0.tar.xz";
     };
   };
   libgravatar = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libgravatar-21.08.3.tar.xz";
-      sha256 = "0ni2lgrfpx8vx9mmm43gsn1kw4jj8j52yq4ylfam89q6mhpxcnix";
-      name = "libgravatar-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libgravatar-21.12.0.tar.xz";
+      sha256 = "1c27azlwp0yfsf4nv33n2nsrb7w9m2shqp9pv09i8hqfv7prm5sq";
+      name = "libgravatar-21.12.0.tar.xz";
     };
   };
   libkcddb = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkcddb-21.08.3.tar.xz";
-      sha256 = "00wivb6viw5w1ylcsx3m9ps7j00z7fzjh2s7nap95xnprraihcmv";
-      name = "libkcddb-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkcddb-21.12.0.tar.xz";
+      sha256 = "0qipr0399hw5vdlgyw6kp4msi4jlk4z4m8rhgsihp6qdmszhav6d";
+      name = "libkcddb-21.12.0.tar.xz";
     };
   };
   libkcompactdisc = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkcompactdisc-21.08.3.tar.xz";
-      sha256 = "1rsmibz9mamqvhppnxwn2db6jmsipvjx2kj8ikpsp9bx8h421n2g";
-      name = "libkcompactdisc-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkcompactdisc-21.12.0.tar.xz";
+      sha256 = "03qb8w03qhh5b9y0cm8jx8amfiv7j2ijjjd8wqxih66rda8sj11m";
+      name = "libkcompactdisc-21.12.0.tar.xz";
     };
   };
   libkdcraw = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkdcraw-21.08.3.tar.xz";
-      sha256 = "0gm8nfc6ayg1ipba4yvhy5nzfrpdwx6l434bg9y7yqvbm3lm1g86";
-      name = "libkdcraw-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkdcraw-21.12.0.tar.xz";
+      sha256 = "0czwigf1w1k9643flfh4ri1xlbn9k9gkfma3x1qkqa14g4dpm2if";
+      name = "libkdcraw-21.12.0.tar.xz";
     };
   };
   libkdegames = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkdegames-21.08.3.tar.xz";
-      sha256 = "0ysc5g6ap207c5yq3ryiaxmvkrh6wzqzdgccdffs0lncd24g641a";
-      name = "libkdegames-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkdegames-21.12.0.tar.xz";
+      sha256 = "09llvfssc2msidjlh3mf188ayfv0vm0c5bicnxd3m2lfwr7mw6w2";
+      name = "libkdegames-21.12.0.tar.xz";
     };
   };
   libkdepim = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkdepim-21.08.3.tar.xz";
-      sha256 = "1776fjzd88kj2crr8lcrwxmkvjsxxyll2gy21wlbmqy4h04bi130";
-      name = "libkdepim-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkdepim-21.12.0.tar.xz";
+      sha256 = "1kd67k7n4rkdblfzx8xl671dyjhxrzrw1cfi13s83538sa0hfcyi";
+      name = "libkdepim-21.12.0.tar.xz";
     };
   };
   libkeduvocdocument = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkeduvocdocument-21.08.3.tar.xz";
-      sha256 = "1qyi5y5v1zp3qid58sdfpcp83rkmz2s1hsvir4f9j5ngir0czcq1";
-      name = "libkeduvocdocument-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkeduvocdocument-21.12.0.tar.xz";
+      sha256 = "1gyv8524xvlgx7h0sh79aziwj9169f8wm0d309839hacwxmz7llb";
+      name = "libkeduvocdocument-21.12.0.tar.xz";
     };
   };
   libkexiv2 = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkexiv2-21.08.3.tar.xz";
-      sha256 = "15d8d3mzp0yhj6lm5799mfncqkxnw0cvfxcgpkz0lf9askv2cq8n";
-      name = "libkexiv2-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkexiv2-21.12.0.tar.xz";
+      sha256 = "1mpy194pfgxdbhyb8h30f04r8pv90896ppdnyaypsa5dvc0ajr4h";
+      name = "libkexiv2-21.12.0.tar.xz";
     };
   };
   libkgapi = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkgapi-21.08.3.tar.xz";
-      sha256 = "101yb495k5bxq402qdvyqd0sdhzc5z3r8szymfmrlilgk35wy9rs";
-      name = "libkgapi-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkgapi-21.12.0.tar.xz";
+      sha256 = "11f5kn6hc3whhpppgh78m7a47sdhxi13498p447cbnpfgwzjgxw9";
+      name = "libkgapi-21.12.0.tar.xz";
     };
   };
   libkipi = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkipi-21.08.3.tar.xz";
-      sha256 = "12qjvd7ynab33qid2d4j06z8fbfziaxdlrpq0h3ywd2drks0ykvf";
-      name = "libkipi-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkipi-21.12.0.tar.xz";
+      sha256 = "1pkf14y97xwl4r9fjv4b8czb0ygwlqn37616gwmvd5zr8c0kkmpc";
+      name = "libkipi-21.12.0.tar.xz";
     };
   };
   libkleo = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkleo-21.08.3.tar.xz";
-      sha256 = "0ivyqmc1hv1cljbpxr5xrzyf9z96dbaa48ak54cxxpanphpialrl";
-      name = "libkleo-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkleo-21.12.0.tar.xz";
+      sha256 = "1mm5ypnq2847fijp986j9si504mfszlvap1zlama2mkcgfiyjbap";
+      name = "libkleo-21.12.0.tar.xz";
     };
   };
   libkmahjongg = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkmahjongg-21.08.3.tar.xz";
-      sha256 = "0rh61491dl90rrlmqmqjdj7vlrjhayhkk5i50zb6jfvrysq9axkc";
-      name = "libkmahjongg-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkmahjongg-21.12.0.tar.xz";
+      sha256 = "03v2jszin48mbxd7h8gh76az4j5ns3g9cy832rii6dbwwilakgad";
+      name = "libkmahjongg-21.12.0.tar.xz";
     };
   };
   libkomparediff2 = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libkomparediff2-21.08.3.tar.xz";
-      sha256 = "0a3980kiigc5kqkyxf4glcxvgr3f4rnc43gcx9vj9mk2qhfcsiqy";
-      name = "libkomparediff2-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libkomparediff2-21.12.0.tar.xz";
+      sha256 = "1kbj86s7lf3bvjihgmhgrh08b2dcivs5h1amx3lc5qw7nvfqa38d";
+      name = "libkomparediff2-21.12.0.tar.xz";
     };
   };
   libksane = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libksane-21.08.3.tar.xz";
-      sha256 = "086zrddpammihia888nrx2p18if1fyzvhs3igkxq9q2p551vk9fy";
-      name = "libksane-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libksane-21.12.0.tar.xz";
+      sha256 = "0r8npxzi8dij4lvi27ycnz51y9cax5agsjcf2rg1zafg4gq3zgcl";
+      name = "libksane-21.12.0.tar.xz";
     };
   };
   libksieve = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libksieve-21.08.3.tar.xz";
-      sha256 = "1snli2yvq2n567vgi1xs6iiqgn4zp31cid17aqpxllyw8a3xa0l7";
-      name = "libksieve-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libksieve-21.12.0.tar.xz";
+      sha256 = "0wda6waxqhsffhn7akxbmklq7i6rp57kj13ghm3lyfwccsxf38z0";
+      name = "libksieve-21.12.0.tar.xz";
     };
   };
   libktorrent = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/libktorrent-21.08.3.tar.xz";
-      sha256 = "1zjnnxhd0mv9if61rr28h35wban7sif61dmgc3wsixp4dz1xfrm6";
-      name = "libktorrent-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/libktorrent-21.12.0.tar.xz";
+      sha256 = "0lzb3vnw500bqll7nvz5r5cwbh2fh11c1a845rarnsyrfsvbdh2y";
+      name = "libktorrent-21.12.0.tar.xz";
     };
   };
   lokalize = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/lokalize-21.08.3.tar.xz";
-      sha256 = "0m084mayd9b0iwm4j5cckw22ix1mc4zcwxjfk0cdapm3g2ls1rzd";
-      name = "lokalize-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/lokalize-21.12.0.tar.xz";
+      sha256 = "11rw0g63zcdlqs5649yn1rx327l19ia0pf3yag2g42r5ssdv4znf";
+      name = "lokalize-21.12.0.tar.xz";
     };
   };
   lskat = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/lskat-21.08.3.tar.xz";
-      sha256 = "09l209fz82ibsxzg2f53lhbcsaq6zpwllpyklj2988xzn7h49cqg";
-      name = "lskat-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/lskat-21.12.0.tar.xz";
+      sha256 = "0glg9ql6kldy0cyypsn7z01dv7l5i3h26l8b7andzp8i5345p9yp";
+      name = "lskat-21.12.0.tar.xz";
     };
   };
   mailcommon = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/mailcommon-21.08.3.tar.xz";
-      sha256 = "0vpbp88pl462d1j9f3ww22zybrmz92zx3b5cj4gsl7gmb7ijwb19";
-      name = "mailcommon-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/mailcommon-21.12.0.tar.xz";
+      sha256 = "16i0vzg94ni5hr8ax1r8cc1vfb9s8q47fbk65r7z4svqqwvxhpvw";
+      name = "mailcommon-21.12.0.tar.xz";
     };
   };
   mailimporter = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/mailimporter-21.08.3.tar.xz";
-      sha256 = "00vm445i5c7vjfmbfgzdj3xildqbnlzpi5i16w4c47wyg5kvpj2c";
-      name = "mailimporter-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/mailimporter-21.12.0.tar.xz";
+      sha256 = "0ns2cwq32aymljn9mbkcr5ac8qgkbblcc75b5dbm42cvyjb3a8iz";
+      name = "mailimporter-21.12.0.tar.xz";
     };
   };
   marble = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/marble-21.08.3.tar.xz";
-      sha256 = "0bapnmm2x0ihms5gd12brqb2yx7g5h4c8ky70l1czd4a8d95ha0a";
-      name = "marble-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/marble-21.12.0.tar.xz";
+      sha256 = "1c01v6k8l04vlnm9pslfpmmk2jb3h0wk29n9zcgjigc00klfjrmw";
+      name = "marble-21.12.0.tar.xz";
     };
   };
   markdownpart = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/markdownpart-21.08.3.tar.xz";
-      sha256 = "1cqkwvs1ssg203fkaiibcmqjm2viaq3iq880cjlkx9irh0bv9q9h";
-      name = "markdownpart-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/markdownpart-21.12.0.tar.xz";
+      sha256 = "1ndnr2hlp1njwxf2pcjws3vxl3s3x1qfxhv014msnhll6k1l3lyz";
+      name = "markdownpart-21.12.0.tar.xz";
     };
   };
   mbox-importer = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/mbox-importer-21.08.3.tar.xz";
-      sha256 = "19i5a1rax3xfkcz0hv0vqq9iavggqrliwpqsqnx6zvwjzgjrvsif";
-      name = "mbox-importer-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/mbox-importer-21.12.0.tar.xz";
+      sha256 = "0r9z09yaifj45q1igyh890kzpdazy72rc6q78lisgnslllc22fv1";
+      name = "mbox-importer-21.12.0.tar.xz";
     };
   };
   messagelib = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/messagelib-21.08.3.tar.xz";
-      sha256 = "0q9mligkkvbwb92ghv5g66rkn0vpbw2xfbgsdnn4jajjxsixipg7";
-      name = "messagelib-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/messagelib-21.12.0.tar.xz";
+      sha256 = "1r2p4inav6shbjlnfkxnkpsak58cflzj0ra2c2930gszhyfyc6b1";
+      name = "messagelib-21.12.0.tar.xz";
     };
   };
   minuet = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/minuet-21.08.3.tar.xz";
-      sha256 = "1g2chj23dw9p2lgf094mn9cd26wnhwgslwdwzwax2a23p42j7kb8";
-      name = "minuet-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/minuet-21.12.0.tar.xz";
+      sha256 = "0rglwxfbmh4hl9kf8h8krx42jamzv9i6k5i99gwlaz63rsylh4w6";
+      name = "minuet-21.12.0.tar.xz";
     };
   };
   okular = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/okular-21.08.3.tar.xz";
-      sha256 = "00ghh7z39904d5x5sa39adkavkhl09hzib6fpwjn14f6sz925f9r";
-      name = "okular-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/okular-21.12.0.tar.xz";
+      sha256 = "08vybplc0bhf9bh9jbwddh9x98f3jdrha2wd1yp53nbcz3jqgm68";
+      name = "okular-21.12.0.tar.xz";
     };
   };
   palapeli = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/palapeli-21.08.3.tar.xz";
-      sha256 = "084nvavgzkmrv77rsg2zf2vykfjwwsvn2i2y24jsh63hs7i5xqhb";
-      name = "palapeli-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/palapeli-21.12.0.tar.xz";
+      sha256 = "1sypyhidjn2cv1nly54r85a4v331z0mazg19bby1lfn5rn2sg34r";
+      name = "palapeli-21.12.0.tar.xz";
     };
   };
   parley = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/parley-21.08.3.tar.xz";
-      sha256 = "0wyv5qx4g0941kg870qb9rc9npdw39ggvndjk7ywaad9nkvdj73g";
-      name = "parley-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/parley-21.12.0.tar.xz";
+      sha256 = "0y5lby0jqlsj7cf62hwka1l449na7f1nazq63a6vxng9wf22fl4x";
+      name = "parley-21.12.0.tar.xz";
     };
   };
   partitionmanager = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/partitionmanager-21.08.3.tar.xz";
-      sha256 = "0im782ggbnkyzcczxx3mv5qi4nlqmcyhwkbf0mzh8cz56qkfvzhr";
-      name = "partitionmanager-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/partitionmanager-21.12.0.tar.xz";
+      sha256 = "0g17y1c4fj6c9hr1xac3qp4yllrr666nh3mxhlgl9qkxa9lyh7jp";
+      name = "partitionmanager-21.12.0.tar.xz";
     };
   };
   picmi = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/picmi-21.08.3.tar.xz";
-      sha256 = "0h208sy2r2jzy7a6rmla349d8lydvfvdb2vahdfxrqql0m15s07s";
-      name = "picmi-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/picmi-21.12.0.tar.xz";
+      sha256 = "1l91i7mmj60zawkpv2s14l8qajk84gcyxm8x4zzlx7pf9pizbyps";
+      name = "picmi-21.12.0.tar.xz";
     };
   };
   pim-data-exporter = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/pim-data-exporter-21.08.3.tar.xz";
-      sha256 = "0l6gkwh6pxp6px50n8i0374by3n7nv0gjkb2qy0s4hsvfz8nwlwk";
-      name = "pim-data-exporter-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/pim-data-exporter-21.12.0.tar.xz";
+      sha256 = "19qssd032x4ma12i8hmd42s7904n8x5z8dydwccc32ma29s5hw0p";
+      name = "pim-data-exporter-21.12.0.tar.xz";
     };
   };
   pim-sieve-editor = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/pim-sieve-editor-21.08.3.tar.xz";
-      sha256 = "1z01c0wsxzl69kr0cxfq23l56dgi0xfjak5qbpfd9p4b2kr095s7";
-      name = "pim-sieve-editor-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/pim-sieve-editor-21.12.0.tar.xz";
+      sha256 = "1fpkf5lksy8irzs3bfv1b6g53hs2s575pi02rnps33cpr6lxn8q7";
+      name = "pim-sieve-editor-21.12.0.tar.xz";
     };
   };
   pimcommon = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/pimcommon-21.08.3.tar.xz";
-      sha256 = "1hj49spfjwqrwh7h86kw7ydcx13rknagj54mhcn60kawz639533l";
-      name = "pimcommon-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/pimcommon-21.12.0.tar.xz";
+      sha256 = "02xpw6n1k030hqivqw10xvq6s279712wyy58snn3x2i2a1bzyjaq";
+      name = "pimcommon-21.12.0.tar.xz";
     };
   };
   poxml = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/poxml-21.08.3.tar.xz";
-      sha256 = "0yrn2dbdhm3ap55w401ma8z64b7pgs57lzgakzkdpcf69bww9xkw";
-      name = "poxml-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/poxml-21.12.0.tar.xz";
+      sha256 = "0hvwhg4z5f6m9vr0hpvvnpyxhy6zp8yprbh3qkw1216nfpfaw0md";
+      name = "poxml-21.12.0.tar.xz";
     };
   };
   print-manager = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/print-manager-21.08.3.tar.xz";
-      sha256 = "0dmd1wp6c5f58fssnyc977d29gqcr6pmzplvq5pj97xq0i8fq15z";
-      name = "print-manager-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/print-manager-21.12.0.tar.xz";
+      sha256 = "10glinq92m08kwsgk9hijangz7grbj7l2vd7p3rxivrbk8q6jms5";
+      name = "print-manager-21.12.0.tar.xz";
     };
   };
   rocs = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/rocs-21.08.3.tar.xz";
-      sha256 = "0mdn58wbv5rhljp7ai0282h5z5j7m9yly6q9s6c8vm5kaxhbwg58";
-      name = "rocs-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/rocs-21.12.0.tar.xz";
+      sha256 = "1h94da4qqs1qcnc5rz4lk5vwfwwhpb8ww7bpj40fg0fpdd3w5anw";
+      name = "rocs-21.12.0.tar.xz";
     };
   };
   signon-kwallet-extension = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/signon-kwallet-extension-21.08.3.tar.xz";
-      sha256 = "1m3wyyndlwk4snjzz45j377hz5plx01bl69y39aw1y53rsx0baln";
-      name = "signon-kwallet-extension-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/signon-kwallet-extension-21.12.0.tar.xz";
+      sha256 = "0a8amssfwxsb9acjaw7lw1m812yma1lw2c21x5if35ivgwagnjdx";
+      name = "signon-kwallet-extension-21.12.0.tar.xz";
     };
   };
   skanlite = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/skanlite-21.08.3.tar.xz";
-      sha256 = "1llvq89vdsypbak8lmhnyfr61s72c4lra1yypxmgw0hwqvwqzyjk";
-      name = "skanlite-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/skanlite-21.12.0.tar.xz";
+      sha256 = "0q1sqf2h9y4q0bmy88pnmm0dxlnbwpq7h7plkv9hbkka8k6yk9w1";
+      name = "skanlite-21.12.0.tar.xz";
     };
   };
   spectacle = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/spectacle-21.08.3.tar.xz";
-      sha256 = "0l1p565y2d04fw9mz1ns11bwc9z5apkjd4llgdihz4qwq5j0ri5y";
-      name = "spectacle-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/spectacle-21.12.0.tar.xz";
+      sha256 = "0s196rjphwhsafwqb3vdl3flxkan6a2y9250v2v9m5dkphll13sn";
+      name = "spectacle-21.12.0.tar.xz";
     };
   };
   step = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/step-21.08.3.tar.xz";
-      sha256 = "1pznz6hxj1h0vcsidsyjm9zgzx4pla47yckykc3mxb9biraalhi5";
-      name = "step-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/step-21.12.0.tar.xz";
+      sha256 = "0cjqxyazlrq88nhfz7ha4p9lc06iimpjc439w37qq3030kx3257r";
+      name = "step-21.12.0.tar.xz";
     };
   };
   svgpart = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/svgpart-21.08.3.tar.xz";
-      sha256 = "1zpzmhgvxlyalq4nn446k7plz5fw2pl4r7zv7q3hjrzla1wgcqx8";
-      name = "svgpart-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/svgpart-21.12.0.tar.xz";
+      sha256 = "1qqvkrw3frncs9jni99w0vrsjrzjw9wgdg35qzp2svfaxmyczin1";
+      name = "svgpart-21.12.0.tar.xz";
     };
   };
   sweeper = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/sweeper-21.08.3.tar.xz";
-      sha256 = "0sa8dfx26m9ry3pvqryx41w51l76r8l2xh16b783ixqln7x08z5j";
-      name = "sweeper-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/sweeper-21.12.0.tar.xz";
+      sha256 = "17rkp2dwnyyh4ywx7xhnswvbh3mwgnd6y9ylrw37q5r3m35ym89i";
+      name = "sweeper-21.12.0.tar.xz";
     };
   };
   umbrello = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/umbrello-21.08.3.tar.xz";
-      sha256 = "025qds7nahm6kpi94j4blk8xpv6vh2alrbgwby20vvn3h678z26x";
-      name = "umbrello-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/umbrello-21.12.0.tar.xz";
+      sha256 = "0s6ld4da8hj48xqzk5fwrw23wmyh05d8540m2w1pzp4wiba7d32f";
+      name = "umbrello-21.12.0.tar.xz";
     };
   };
   yakuake = {
-    version = "21.08.3";
+    version = "21.12.0";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/21.12.0/src/yakuake-21.12.0.tar.xz";
+      sha256 = "1wrmzjn317fdv3lp8sgdhzvgxf6n0pdnsbhidh5qw33fr53n8zc1";
+      name = "yakuake-21.12.0.tar.xz";
+    };
+  };
+  zanshin = {
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/yakuake-21.08.3.tar.xz";
-      sha256 = "1za4vhnr495dadrarqqanavmyn1mmzm3y8jx05cpbjyqmlm353dk";
-      name = "yakuake-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/zanshin-21.12.0.tar.xz";
+      sha256 = "07bs2zh12jbwjxrjq2qz6fmfq0vpr5qiz024gqxvxaxvskpbiicp";
+      name = "zanshin-21.12.0.tar.xz";
     };
   };
   zeroconf-ioslave = {
-    version = "21.08.3";
+    version = "21.12.0";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/21.08.3/src/zeroconf-ioslave-21.08.3.tar.xz";
-      sha256 = "1dkig267znwyw03fq6mpdb5g1xnkhr0brnvxskjm44a4d5ipbv2g";
-      name = "zeroconf-ioslave-21.08.3.tar.xz";
+      url = "${mirror}/stable/release-service/21.12.0/src/zeroconf-ioslave-21.12.0.tar.xz";
+      sha256 = "1s1vrfifz11z4bqrz8860rkd5fxa1qqvaxaka67gs2yrb788m0ii";
+      name = "zeroconf-ioslave-21.12.0.tar.xz";
     };
   };
 }
diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix
index 9e9e5c28e5ef7..9dd439fe8e931 100644
--- a/pkgs/applications/misc/1password/default.nix
+++ b/pkgs/applications/misc/1password/default.nix
@@ -51,6 +51,6 @@ stdenv.mkDerivation rec {
     downloadPage = "https://app-updates.agilebits.com/product_history/CLI";
     maintainers = with maintainers; [ joelburget marsam ];
     license = licenses.unfree;
-    platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
+    platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/applications/misc/ArchiSteamFarm/default.nix b/pkgs/applications/misc/ArchiSteamFarm/default.nix
index bae763972d126..d88bc71348c81 100644
--- a/pkgs/applications/misc/ArchiSteamFarm/default.nix
+++ b/pkgs/applications/misc/ArchiSteamFarm/default.nix
@@ -47,6 +47,6 @@ buildDotnetModule rec {
     homepage = "https://github.com/JustArchiNET/ArchiSteamFarm";
     license = licenses.asl20;
     platforms = dotnetCorePackages.aspnetcore_5_0.meta.platforms;
-    maintainers = with maintainers; [ SuperSandro2000 legendofmiracles ];
+    maintainers = with maintainers; [ SuperSandro2000 lom ];
   };
 }
diff --git a/pkgs/applications/misc/ArchiSteamFarm/deps.nix b/pkgs/applications/misc/ArchiSteamFarm/deps.nix
index 6da123004397d..94b22c2ac72a2 100644
--- a/pkgs/applications/misc/ArchiSteamFarm/deps.nix
+++ b/pkgs/applications/misc/ArchiSteamFarm/deps.nix
@@ -1,277 +1,291 @@
 { fetchNuGet }: [
-  (fetchNuGet { name = "AngleSharp"; version = "0.14.0"; sha256 = "1zgwhh1fp2mmaplvpgm86rpmslix3wqfxf0d3hxx1gxwfgr6wxm6"; })
-  (fetchNuGet { name = "AngleSharp.XPath"; version = "1.1.7"; sha256 = "0lrk002nizq973zdmcm0wmcq17j5gizwp03xdv84hiqqd8cyy538"; })
-  (fetchNuGet { name = "ConfigureAwaitChecker.Analyzer"; version = "5.0.0"; sha256 = "0sklcgan0w0afvmd4akq7wvdbx5j353ifbhg8z7bxs80yi6f9q17"; })
-  (fetchNuGet { name = "CryptSharpStandard"; version = "1.0.0"; sha256 = "0nikzb92z4a2n969sz747ginwxsbrap5741bcwwxr4r6m2na9jz7"; })
-  (fetchNuGet { name = "Humanizer"; version = "2.11.10"; sha256 = "057pqzvdxsbpnnc5f1xkqg7j3ywp68ggia3w74fgqp0158dm6rdk"; })
-  (fetchNuGet { name = "Humanizer.Core"; version = "2.11.10"; sha256 = "0z7kmd5rh1sb6izq0vssk6c2p63n00xglk45s7ga9z18z9aaskxv"; })
-  (fetchNuGet { name = "Humanizer.Core.af"; version = "2.11.10"; sha256 = "18fiixfvjwn8m1i8z2cz4aqykzylvfdqmmpwc2zcd8sr1a2xm86z"; })
-  (fetchNuGet { name = "Humanizer.Core.ar"; version = "2.11.10"; sha256 = "009fpm4jd325izm82ipipsvlwd31824gvskda68bdwi4yqmycz4p"; })
-  (fetchNuGet { name = "Humanizer.Core.az"; version = "2.11.10"; sha256 = "144b9diwprabxwgi5a98k5iy95ajq4p7356phdqi2lhzwbz7b6a9"; })
-  (fetchNuGet { name = "Humanizer.Core.bg"; version = "2.11.10"; sha256 = "1b9y40gvq2kwnj5wa40f8cbywv79jkajcwknagrgr27sykpfadl2"; })
-  (fetchNuGet { name = "Humanizer.Core.bn-BD"; version = "2.11.10"; sha256 = "18pn4jcp36ygcx283l3fi9bs5d7q1a384b72a10g5kl0qckn88ay"; })
-  (fetchNuGet { name = "Humanizer.Core.cs"; version = "2.11.10"; sha256 = "03crw1lnzp32v2kcdmllkrsqh07r4ggw9gyc96qw7cv0nk5ch1h8"; })
-  (fetchNuGet { name = "Humanizer.Core.da"; version = "2.11.10"; sha256 = "0glby12zra3y3yiq4cwq1m6wjcjl8f21v8ghi6s20r48glm8vzy9"; })
-  (fetchNuGet { name = "Humanizer.Core.de"; version = "2.11.10"; sha256 = "0a35xrm1f9p74x0fkr52bw9sd54vdy9d5rnvf565yh8ww43xfk7b"; })
-  (fetchNuGet { name = "Humanizer.Core.el"; version = "2.11.10"; sha256 = "0bhwwdx5vc48zikdsbrkghdhwahxxc2lkff0yaa5nxhbhasl84h8"; })
-  (fetchNuGet { name = "Humanizer.Core.es"; version = "2.11.10"; sha256 = "07bw07qy8nyzlgxl7l2lxv9f78qmkfppgzx7iyq5ikrcnpvc7i9q"; })
-  (fetchNuGet { name = "Humanizer.Core.fa"; version = "2.11.10"; sha256 = "00d4hc1pfmhfkc5wmx9p7i00lgi4r0k6wfcns9kl1syjxv3bs5f2"; })
-  (fetchNuGet { name = "Humanizer.Core.fi-FI"; version = "2.11.10"; sha256 = "0z4is7pl5jpi4pfdvd2zvx5mp00bj26d9l9ksqyc0liax8nfzyik"; })
-  (fetchNuGet { name = "Humanizer.Core.fr"; version = "2.11.10"; sha256 = "0sybpg6kbbhrnk7gxcdk7ppan89lsfqsdssrg4i1dm8w48wgicap"; })
-  (fetchNuGet { name = "Humanizer.Core.fr-BE"; version = "2.11.10"; sha256 = "1s25c86nl9wpsn6fydzwv4rfmdx5sm0vgyd7xhw5344k20gazvhv"; })
-  (fetchNuGet { name = "Humanizer.Core.he"; version = "2.11.10"; sha256 = "1nx61qkjd6p9r36dmnm4942khyv35fpdqmb2w69gz6463g4d7z29"; })
-  (fetchNuGet { name = "Humanizer.Core.hr"; version = "2.11.10"; sha256 = "02jhcyj72prkqsjxyilv04drm0bknqjh2r893jlbsfi9vjg2zay3"; })
-  (fetchNuGet { name = "Humanizer.Core.hu"; version = "2.11.10"; sha256 = "0yb6ly4s1wdyaf96h2dvifqyb575aid6irwl3qx8gcvrs0xpcxdp"; })
-  (fetchNuGet { name = "Humanizer.Core.hy"; version = "2.11.10"; sha256 = "0b7vaqldn7ca3xi4gkvkhjk900kw2zwb0m0d20bg45a83zdlx79c"; })
-  (fetchNuGet { name = "Humanizer.Core.id"; version = "2.11.10"; sha256 = "1yqxirknwga4j18k7ixwgqxlv20479afanhariy3c5mkwvglsr9b"; })
-  (fetchNuGet { name = "Humanizer.Core.it"; version = "2.11.10"; sha256 = "1skwgj5a6kkx3pm9w4f29psch69h1knmwbkdydlmx13h452p1w4l"; })
-  (fetchNuGet { name = "Humanizer.Core.ja"; version = "2.11.10"; sha256 = "1wpc3yz9v611dqbw8j5yimk8dpz0rvpnls4rmlnp1m47gavpj8x4"; })
-  (fetchNuGet { name = "Humanizer.Core.ko-KR"; version = "2.11.10"; sha256 = "1df0kd7vwdc3inxfkb3wsl1aw3d6vbab99dzh08p4m04g7i2c1a9"; })
-  (fetchNuGet { name = "Humanizer.Core.ku"; version = "2.11.10"; sha256 = "17b66xfgwjr0sffx0hw4c6l90h43z7ffylrs26hgav0n110q2nwg"; })
-  (fetchNuGet { name = "Humanizer.Core.lv"; version = "2.11.10"; sha256 = "0czxx4b9g0w7agykdl82wds09zasa9y58dmgjm925amlfz4wkyzs"; })
-  (fetchNuGet { name = "Humanizer.Core.ms-MY"; version = "2.11.10"; sha256 = "0kix95nbw94fx0dziyz80y59i7ii7d21b63f7f94niarljjq36i3"; })
-  (fetchNuGet { name = "Humanizer.Core.mt"; version = "2.11.10"; sha256 = "1rwy6m22pq65gxn86xlr9lv818fp5kb0wz98zxxfljc2iviw1f4p"; })
-  (fetchNuGet { name = "Humanizer.Core.nb"; version = "2.11.10"; sha256 = "0ra2cl0avvv4sylha7z76jxnb4pdiqfbpr5m477snr04dsjxd9q9"; })
-  (fetchNuGet { name = "Humanizer.Core.nb-NO"; version = "2.11.10"; sha256 = "1qszib03pvmjkrg8za7jjd2vzrs9p4fn2rmy82abnzldkhvifipq"; })
-  (fetchNuGet { name = "Humanizer.Core.nl"; version = "2.11.10"; sha256 = "1i9bvy0i2yyasl9mgxiiwrkmfpm2c53d3wwdp9270r6120sxyy63"; })
-  (fetchNuGet { name = "Humanizer.Core.pl"; version = "2.11.10"; sha256 = "0kggh4wgcic7wzgxy548n6w61schss2ccf9kz8alqshfi42xifby"; })
-  (fetchNuGet { name = "Humanizer.Core.pt"; version = "2.11.10"; sha256 = "09j90s8x1lpvhfiy3syfnj8slkgcacf3xjy3pnkgxa6g4mi4f4bd"; })
-  (fetchNuGet { name = "Humanizer.Core.ro"; version = "2.11.10"; sha256 = "1jgidmqfly91v1k22gn687mfql5bz7gjzp1aapi93vq5x635qssy"; })
-  (fetchNuGet { name = "Humanizer.Core.ru"; version = "2.11.10"; sha256 = "13mmlh0ibxfyc85xrz3vx4mcg56mkzqql184iwdryq94p0g5ahil"; })
-  (fetchNuGet { name = "Humanizer.Core.sk"; version = "2.11.10"; sha256 = "04ja06y5jaz1jwkwn117wx9cib04gpbi0vysn58a8sd5jrxmxai5"; })
-  (fetchNuGet { name = "Humanizer.Core.sl"; version = "2.11.10"; sha256 = "05hxk9v3a7fn7s4g9jp5zxk2z6a33b9fkavyb1hjqnl2i37q2wja"; })
-  (fetchNuGet { name = "Humanizer.Core.sr"; version = "2.11.10"; sha256 = "0x6l2msimrx72iywa1g0rqklgy209sdwg0r77i2lz0s1rvk5klm5"; })
-  (fetchNuGet { name = "Humanizer.Core.sr-Latn"; version = "2.11.10"; sha256 = "01hdyn7mmbyy7f3aglawgnsj3nblcdpqjgzdcvniy73l536mira0"; })
-  (fetchNuGet { name = "Humanizer.Core.sv"; version = "2.11.10"; sha256 = "0cbgchivw3d5ndib1zmgzmnymhyvfh9g9f0hijc860g5vaa9fkvh"; })
-  (fetchNuGet { name = "Humanizer.Core.th-TH"; version = "2.11.10"; sha256 = "1v7f9x3b04iwhz9lb3ir8az8128nvcw1gi4park5zh3fg0f3mni0"; })
-  (fetchNuGet { name = "Humanizer.Core.tr"; version = "2.11.10"; sha256 = "02c4ky0dskxkdrkc7vy8yzmvwjr1wqll1kzx0k21afhlx8xynjd4"; })
-  (fetchNuGet { name = "Humanizer.Core.uk"; version = "2.11.10"; sha256 = "0900ilhwj8yvhyzpg1pjr7f5vrl62wp8dsnhk4c2igs20qvnv079"; })
-  (fetchNuGet { name = "Humanizer.Core.uz-Cyrl-UZ"; version = "2.11.10"; sha256 = "09b7p2m8y49j49ckrmx2difgyj6y7fm2mwca093j8psxclsykcyr"; })
-  (fetchNuGet { name = "Humanizer.Core.uz-Latn-UZ"; version = "2.11.10"; sha256 = "029kvkawqhlln52vpjpvr52dhr18ylk01cgsj2z8lxnqaka0q9hk"; })
-  (fetchNuGet { name = "Humanizer.Core.vi"; version = "2.11.10"; sha256 = "0q4d47plsj956ivn82qwyidfxppjr9dp13m8c66aamrvhy4q8ny5"; })
-  (fetchNuGet { name = "Humanizer.Core.zh-CN"; version = "2.11.10"; sha256 = "01dy5kf6ai8id77px92ji4kcxjc8haj39ivv55xy1afcg3qiy7mh"; })
-  (fetchNuGet { name = "Humanizer.Core.zh-Hans"; version = "2.11.10"; sha256 = "16gcxgw2g6gck3nc2hxzlkbsg7wkfaqsjl87kasibxxh47zdqqv2"; })
-  (fetchNuGet { name = "Humanizer.Core.zh-Hant"; version = "2.11.10"; sha256 = "1rjg2xvkwjjw3c7z9mdjjvbnl9lcvvhh4fr7l61rla2ynzdk46cj"; })
-  (fetchNuGet { name = "JetBrains.Annotations"; version = "2021.3.0"; sha256 = "01ssylllbwpana2w3iybi533zlvcsbhzjc8kr0g4kg307kjbfn8v"; })
-  (fetchNuGet { name = "Markdig.Signed"; version = "0.26.0"; sha256 = "1giwdvmy6n4vfb0g7sxmdf9bklb4r2vdfhm1xfxvqys8rfm15d4z"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "5.0.10"; sha256 = "1dmcccml0lwxkiplfisxc70877h3s6p589nml19pi07iypvyxxjh"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "5.0.10"; sha256 = "1r9rf1j5v3hfn299zk71bjbbzslnypyqy1pz2xc4mirghwg18pqw"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "5.0.10"; sha256 = "1zlcdqscbgqz5yqfgn21l711ybplid97c6wg0gqbbd6920qmpidd"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "5.0.10"; sha256 = "0ir75jh4qas1v70y63hvd0rbyprcf97l47b2pgljhxk138z96s4y"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "5.0.10"; sha256 = "0qhyrprvbhcn980ycqvkchd4qy5shydi7pl0lbcl9cljivn60if3"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.JsonPatch"; version = "5.0.0"; sha256 = "192mn6r73xjw8fvlss6vrv34iiavq7k8pg0w7advgj6khklw4dzx"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson"; version = "5.0.0"; sha256 = "1q3z35pxgvpf6l6ywh5wb6gfly055rk99a80rjqisyrbmza1msd1"; })
-  (fetchNuGet { name = "Microsoft.CodeCoverage"; version = "17.0.0"; sha256 = "18gdbsqf6i79ld4ikqr4jhx9ndsggm865b5xj1xmnmgg12ydp19a"; })
-  (fetchNuGet { name = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
-  (fetchNuGet { name = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
-  (fetchNuGet { name = "Microsoft.Extensions.ApiDescription.Server"; version = "3.0.0"; sha256 = "13a47xcqyi5gz85swxd4mgp7ndgl4kknrvv3xwmbn71hsh953hsh"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Abstractions"; version = "5.0.0"; sha256 = "0fqxkc9pjxkqylsdf26s9q21ciyk56h1w33pz3v1v4wcv8yv1v6k"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection"; version = "5.0.0"; sha256 = "15sdwcyzz0qlybwbdq854bn3jk6kx7awx28gs864c4shhbqkppj4"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "5.0.0"; sha256 = "17cz6s80va0ch0a6nqa1wbbbp3p8sqxb96lj4qcw67ivkp2yxiyj"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging"; version = "5.0.0"; sha256 = "1qa1l18q2jh9azya8gv1p8anzcdirjzd9dxxisb4911i9m1648i3"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging.Abstractions"; version = "5.0.0"; sha256 = "1yza38675dbv1qqnnhqm23alv2bbaqxp0pb7zinjmw8j2mr5r6wc"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Options"; version = "5.0.0"; sha256 = "1rdmgpg770x8qwaaa6ryc27zh93p697fcyvn5vkxp0wimlhqkbay"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Primitives"; version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Host.linux-arm"; version = "5.0.10"; sha256 = "12zz674g6289z44rynnbsarqdh6md0qdl4srkzkqz9dvm1f2k4yn"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Host.linux-arm64"; version = "5.0.10"; sha256 = "0v90w0cr8zjayj0w0rb5ds1kjg77n7za1nr9rr1pnszw2xs00fmq"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Host.osx-x64"; version = "5.0.10"; sha256 = "1z8l02ypzbhbh0jp89ibc4dx61dvaa4l7cdn4s2zs0l492nz2ni8"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Host.win-x64"; version = "5.0.10"; sha256 = "07yr09al8cci38zmwqghpsf8jsg51a8qv6p156ph8b5714iq5jjq"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "5.0.10"; sha256 = "12xw4czsnsy4nara23jbvbsi8id9lms17xfyv0w4wsqhrp5kqbxi"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "5.0.10"; sha256 = "0ccsk1baj0bx1k7jqm7pnw77ns3m6h50cl8kxikjcm74jsz0vyx1"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.10"; sha256 = "1b3lm6dc31yl9r0rian7zcmhpn949dyp4yhw4fsl4bkdpp4id085"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "5.0.10"; sha256 = "1pphlbhs1swr14g07hnvvwj9p983qqf6vqaq455bhpn6lin3z81f"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.win-x64"; version = "5.0.10"; sha256 = "0cn3nq7vmjwk8b5bh7hb5wzidz1msjmwyng6k1ngqdm49w9f0m2g"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
-  (fetchNuGet { name = "Microsoft.NET.Test.Sdk"; version = "17.0.0"; sha256 = "0bknyf5kig5icwjxls7pcn51x2b2qf91dz9qv67fl70v6cczaz2r"; })
-  (fetchNuGet { name = "Microsoft.OpenApi"; version = "1.2.3"; sha256 = "07b19k89whj69j87afkz86gp9b3iybw8jqwvlgcn43m7fb2y99rr"; })
-  (fetchNuGet { name = "Microsoft.TestPlatform.ObjectModel"; version = "17.0.0"; sha256 = "1bh5scbvl6ndldqv20sl34h4y257irm9ziv2wyfc3hka6912fhn7"; })
-  (fetchNuGet { name = "Microsoft.TestPlatform.TestHost"; version = "17.0.0"; sha256 = "06mn31cgpp7d8lwdyjanh89prc66j37dchn74vrd9s588rq0y70r"; })
-  (fetchNuGet { name = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
-  (fetchNuGet { name = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
-  (fetchNuGet { name = "MSTest.TestAdapter"; version = "2.2.4"; sha256 = "0yzdcxzaqj846y5x95wdin74bqjkifp2s7xlhqjgcg3x0m909p17"; })
-  (fetchNuGet { name = "MSTest.TestFramework"; version = "2.2.4"; sha256 = "1nmkygw0k74nn1hw6rg1gdwchfad7ns5p967kxfp7bvnhj259bq0"; })
-  (fetchNuGet { name = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
-  (fetchNuGet { name = "Newtonsoft.Json.Bson"; version = "1.0.2"; sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35"; })
-  (fetchNuGet { name = "Nito.AsyncEx.Coordination"; version = "5.1.2"; sha256 = "0sxvmqnv8a94k3pq1w3lh1vgjb8l62h1qamxcjl3pkq634h2fwrl"; })
-  (fetchNuGet { name = "Nito.AsyncEx.Tasks"; version = "5.1.2"; sha256 = "11wp47kc69sjdxrbg5pgx0wlffqlp0x5kr54ggnz2v19kmjz362v"; })
-  (fetchNuGet { name = "Nito.Collections.Deque"; version = "1.1.1"; sha256 = "152564q3s0n5swfv5p5rx0ghn2sm0g2xsnbd7gv8vb9yfklv7yg8"; })
-  (fetchNuGet { name = "Nito.Disposables"; version = "2.2.1"; sha256 = "1hx5k8497j34kxxgh060bvij0vfnraw90dmm3h9bmamcdi8wp80l"; })
-  (fetchNuGet { name = "NLog"; version = "4.7.11"; sha256 = "0vvgypqh6cxzkrfymjaghads5dg88l2xvbz6dxwwrnjg5hhpcjaw"; })
-  (fetchNuGet { name = "NLog.Extensions.Logging"; version = "1.7.4"; sha256 = "1lilk9sv3j9jg23hl0vhxd8w63bh6xvns42rkz5n582wpf5k2r24"; })
-  (fetchNuGet { name = "NLog.Web.AspNetCore"; version = "4.14.0"; sha256 = "1q2v44inp4xjynncxpv432k2qjkfara1bpipmv3p3in0yv14l3wg"; })
-  (fetchNuGet { name = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
-  (fetchNuGet { name = "protobuf-net"; version = "3.0.101"; sha256 = "0594qckbc0lh61sw74ihaq4qmvf1lf133vfa88n443mh7lxm2fwf"; })
-  (fetchNuGet { name = "protobuf-net.Core"; version = "3.0.101"; sha256 = "1kvn9rnm6f0jxs0s9scyyx2f2p8rk03qzc1f6ijv1g6xgkpxkq1m"; })
-  (fetchNuGet { name = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
-  (fetchNuGet { name = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
-  (fetchNuGet { name = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
-  (fetchNuGet { name = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
-  (fetchNuGet { name = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; })
-  (fetchNuGet { name = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
-  (fetchNuGet { name = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
-  (fetchNuGet { name = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; })
-  (fetchNuGet { name = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; })
-  (fetchNuGet { name = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; })
-  (fetchNuGet { name = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; })
-  (fetchNuGet { name = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; })
-  (fetchNuGet { name = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; })
-  (fetchNuGet { name = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
-  (fetchNuGet { name = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
-  (fetchNuGet { name = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
-  (fetchNuGet { name = "runtime.any.System.Threading.Timer"; version = "4.3.0"; sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086"; })
-  (fetchNuGet { name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
-  (fetchNuGet { name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
-  (fetchNuGet { name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
-  (fetchNuGet { name = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
-  (fetchNuGet { name = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
-  (fetchNuGet { name = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
-  (fetchNuGet { name = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
-  (fetchNuGet { name = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
-  (fetchNuGet { name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
-  (fetchNuGet { name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
-  (fetchNuGet { name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
-  (fetchNuGet { name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
-  (fetchNuGet { name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
-  (fetchNuGet { name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
-  (fetchNuGet { name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
-  (fetchNuGet { name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
-  (fetchNuGet { name = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
-  (fetchNuGet { name = "runtime.unix.System.Console"; version = "4.3.0"; sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80"; })
-  (fetchNuGet { name = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
-  (fetchNuGet { name = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
-  (fetchNuGet { name = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; })
-  (fetchNuGet { name = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; })
-  (fetchNuGet { name = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
-  (fetchNuGet { name = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
-  (fetchNuGet { name = "runtime.win.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0k1h8nnp1s0p8rjwgjyj1387cc1yycv0k22igxc963lqdzrx2z36"; })
-  (fetchNuGet { name = "runtime.win.System.Console"; version = "4.3.0"; sha256 = "0x2yajfrbc5zc6g7nmlr44xpjk6p1hxjq47jn3xki5j7i33zw9jc"; })
-  (fetchNuGet { name = "runtime.win.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "16fbn4bcynad1ygdq0yk1wmckvs8jvrrf104xa5dc2hlc8y3x58f"; })
-  (fetchNuGet { name = "runtime.win.System.IO.FileSystem"; version = "4.3.0"; sha256 = "1c01nklbxywszsbfaxc76hsz7gdxac3jkphrywfkdsi3v4bwd6g8"; })
-  (fetchNuGet { name = "runtime.win.System.Net.Primitives"; version = "4.3.0"; sha256 = "1dixh195bi7473n17hspll6i562gghdz9m4jk8d4kzi1mlzjk9cf"; })
-  (fetchNuGet { name = "runtime.win.System.Net.Sockets"; version = "4.3.0"; sha256 = "0lr3zki831vs6qhk5wckv2b9qbfk9rcj0ds2926qvj1b9y9m6sck"; })
-  (fetchNuGet { name = "runtime.win.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1700famsxndccfbcdz9q14qb20p49lax67mqwpgy4gx3vja1yczr"; })
-  (fetchNuGet { name = "SteamKit2"; version = "2.4.0-Alpha.3"; sha256 = "0n48yjkyzj49kv89jbkwdq6nm9w9ng6cjhvdv0chpryx9zgasgvv"; })
-  (fetchNuGet { name = "Swashbuckle.AspNetCore"; version = "6.2.3"; sha256 = "1kx50vliqcqw72aygkm2cs2q82pxdxz17gvz4chz6k858qj4gv0l"; })
-  (fetchNuGet { name = "Swashbuckle.AspNetCore.Annotations"; version = "6.2.3"; sha256 = "189i1ziv3xkdxpxhkpfx3xfji3iw124s88sqn3ga2vh04fbdak8x"; })
-  (fetchNuGet { name = "Swashbuckle.AspNetCore.Newtonsoft"; version = "6.2.3"; sha256 = "1r4z1mmgihnmcqb8zd1q6jbz1g72y5ggl833qhmd1q0wnq8awbs8"; })
-  (fetchNuGet { name = "Swashbuckle.AspNetCore.Swagger"; version = "6.2.3"; sha256 = "0g3aw1lydq1xymd1f5rrs0dhl0fpl85gffs9jsm3khfqp7js31yz"; })
-  (fetchNuGet { name = "Swashbuckle.AspNetCore.SwaggerGen"; version = "6.2.3"; sha256 = "1cza3hzxhia81rmmdx9qixbm1ikavscddknpvbkrwmljzx2qmsv7"; })
-  (fetchNuGet { name = "Swashbuckle.AspNetCore.SwaggerUI"; version = "6.2.3"; sha256 = "0sbrymb73a2s9qhgm7i44ca08h4n62qfh751fwnvybmj8kb1gzsi"; })
-  (fetchNuGet { name = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
-  (fetchNuGet { name = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
-  (fetchNuGet { name = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
-  (fetchNuGet { name = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
-  (fetchNuGet { name = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
-  (fetchNuGet { name = "System.Collections.Immutable"; version = "1.7.1"; sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq"; })
-  (fetchNuGet { name = "System.Composition"; version = "5.0.1"; sha256 = "07dr25p4kbh9hlrsnrqnlr920n7p39kfs0yj9sc7072j0icmxbg7"; })
-  (fetchNuGet { name = "System.Composition.AttributedModel"; version = "5.0.1"; sha256 = "1czq644gy2hfwcxkpgr7yw99r4cshyc7789slgkbc3znif81q975"; })
-  (fetchNuGet { name = "System.Composition.Convention"; version = "5.0.1"; sha256 = "086l0gjjb2j50iq176mbm6lx6wvcjh9rj6xwcd483958h774gyqg"; })
-  (fetchNuGet { name = "System.Composition.Hosting"; version = "5.0.1"; sha256 = "07ljg7qmx0pmck32rwci05cpnbsxpj48qmp8gp18mhqw977nycxx"; })
-  (fetchNuGet { name = "System.Composition.Runtime"; version = "5.0.1"; sha256 = "01m17rgn4n63mgcwkjnp4msvdh02h0y1wa7z74afnac4k1zqg5vy"; })
-  (fetchNuGet { name = "System.Composition.TypedParts"; version = "5.0.1"; sha256 = "0hjmma4bh7iwsgylcprnpmjkgp6zd6ff04gchnkq5lbapd26bx6v"; })
-  (fetchNuGet { name = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
-  (fetchNuGet { name = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
-  (fetchNuGet { name = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
-  (fetchNuGet { name = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
-  (fetchNuGet { name = "System.Diagnostics.TextWriterTraceListener"; version = "4.3.0"; sha256 = "09db74f36wkwg30f7v7zhz1yhkyrnl5v6bdwljq1jdfgzcfch7c3"; })
-  (fetchNuGet { name = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
-  (fetchNuGet { name = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
-  (fetchNuGet { name = "System.Diagnostics.TraceSource"; version = "4.3.0"; sha256 = "1kyw4d7dpjczhw6634nrmg7yyyzq72k75x38y0l0nwhigdlp1766"; })
-  (fetchNuGet { name = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
-  (fetchNuGet { name = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
-  (fetchNuGet { name = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
-  (fetchNuGet { name = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
-  (fetchNuGet { name = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
-  (fetchNuGet { name = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
-  (fetchNuGet { name = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
-  (fetchNuGet { name = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
-  (fetchNuGet { name = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
-  (fetchNuGet { name = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
-  (fetchNuGet { name = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
-  (fetchNuGet { name = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
-  (fetchNuGet { name = "System.IO.FileSystem.AccessControl"; version = "5.0.0"; sha256 = "0ixl68plva0fsj3byv76bai7vkin86s6wyzr8vcav3szl862blvk"; })
-  (fetchNuGet { name = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
-  (fetchNuGet { name = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
-  (fetchNuGet { name = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
-  (fetchNuGet { name = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
-  (fetchNuGet { name = "System.Linq.Async"; version = "5.0.0"; sha256 = "1bc1bfnahyk6y31mrxn7nd071436m94p4r9b2j835pghcqawqfbc"; })
-  (fetchNuGet { name = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
-  (fetchNuGet { name = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
-  (fetchNuGet { name = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
-  (fetchNuGet { name = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
-  (fetchNuGet { name = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
-  (fetchNuGet { name = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
-  (fetchNuGet { name = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
-  (fetchNuGet { name = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
-  (fetchNuGet { name = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
-  (fetchNuGet { name = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
-  (fetchNuGet { name = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
-  (fetchNuGet { name = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
-  (fetchNuGet { name = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
-  (fetchNuGet { name = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
-  (fetchNuGet { name = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
-  (fetchNuGet { name = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
-  (fetchNuGet { name = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
-  (fetchNuGet { name = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
-  (fetchNuGet { name = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
-  (fetchNuGet { name = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
-  (fetchNuGet { name = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
-  (fetchNuGet { name = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
-  (fetchNuGet { name = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
-  (fetchNuGet { name = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
-  (fetchNuGet { name = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
-  (fetchNuGet { name = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
-  (fetchNuGet { name = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
-  (fetchNuGet { name = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.0"; sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43"; })
-  (fetchNuGet { name = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
-  (fetchNuGet { name = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
-  (fetchNuGet { name = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
-  (fetchNuGet { name = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
-  (fetchNuGet { name = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
-  (fetchNuGet { name = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
-  (fetchNuGet { name = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
-  (fetchNuGet { name = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
-  (fetchNuGet { name = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
-  (fetchNuGet { name = "System.Security.Cryptography.ProtectedData"; version = "5.0.0"; sha256 = "0jq1rcj5af2ydswld8ga3dyw2yi4c63wvb986b5kqsvpkwwc8x1b"; })
-  (fetchNuGet { name = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
-  (fetchNuGet { name = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
-  (fetchNuGet { name = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
-  (fetchNuGet { name = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
-  (fetchNuGet { name = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
-  (fetchNuGet { name = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
-  (fetchNuGet { name = "System.Text.Encoding.CodePages"; version = "4.5.0"; sha256 = "19x38911pawq4mrxrm04l2bnxwxxlzq8v8rj4cbxnfjj8pnd3vj3"; })
-  (fetchNuGet { name = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
-  (fetchNuGet { name = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
-  (fetchNuGet { name = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
-  (fetchNuGet { name = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
-  (fetchNuGet { name = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
-  (fetchNuGet { name = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
-  (fetchNuGet { name = "System.Threading.Overlapped"; version = "4.3.0"; sha256 = "1nahikhqh9nk756dh8p011j36rlcp1bzz3vwi2b4m1l2s3vz8idm"; })
-  (fetchNuGet { name = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
-  (fetchNuGet { name = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
-  (fetchNuGet { name = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
-  (fetchNuGet { name = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
-  (fetchNuGet { name = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
-  (fetchNuGet { name = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
-  (fetchNuGet { name = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
-  (fetchNuGet { name = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
-  (fetchNuGet { name = "zxcvbn-core"; version = "7.0.92"; sha256 = "1pbi0n3za8zsnkbvq19njy4h4hy12a6rv4rknf4a2m1kdhxb3cgx"; })
+  (fetchNuGet { pname = "AngleSharp"; version = "0.14.0"; sha256 = "1zgwhh1fp2mmaplvpgm86rpmslix3wqfxf0d3hxx1gxwfgr6wxm6"; })
+  (fetchNuGet { pname = "AngleSharp.XPath"; version = "1.1.7"; sha256 = "0lrk002nizq973zdmcm0wmcq17j5gizwp03xdv84hiqqd8cyy538"; })
+  (fetchNuGet { pname = "ConfigureAwaitChecker.Analyzer"; version = "5.0.0"; sha256 = "0sklcgan0w0afvmd4akq7wvdbx5j353ifbhg8z7bxs80yi6f9q17"; })
+  (fetchNuGet { pname = "CryptSharpStandard"; version = "1.0.0"; sha256 = "0nikzb92z4a2n969sz747ginwxsbrap5741bcwwxr4r6m2na9jz7"; })
+  (fetchNuGet { pname = "Humanizer"; version = "2.11.10"; sha256 = "057pqzvdxsbpnnc5f1xkqg7j3ywp68ggia3w74fgqp0158dm6rdk"; })
+  (fetchNuGet { pname = "Humanizer.Core"; version = "2.11.10"; sha256 = "0z7kmd5rh1sb6izq0vssk6c2p63n00xglk45s7ga9z18z9aaskxv"; })
+  (fetchNuGet { pname = "Humanizer.Core.af"; version = "2.11.10"; sha256 = "18fiixfvjwn8m1i8z2cz4aqykzylvfdqmmpwc2zcd8sr1a2xm86z"; })
+  (fetchNuGet { pname = "Humanizer.Core.ar"; version = "2.11.10"; sha256 = "009fpm4jd325izm82ipipsvlwd31824gvskda68bdwi4yqmycz4p"; })
+  (fetchNuGet { pname = "Humanizer.Core.az"; version = "2.11.10"; sha256 = "144b9diwprabxwgi5a98k5iy95ajq4p7356phdqi2lhzwbz7b6a9"; })
+  (fetchNuGet { pname = "Humanizer.Core.bg"; version = "2.11.10"; sha256 = "1b9y40gvq2kwnj5wa40f8cbywv79jkajcwknagrgr27sykpfadl2"; })
+  (fetchNuGet { pname = "Humanizer.Core.bn-BD"; version = "2.11.10"; sha256 = "18pn4jcp36ygcx283l3fi9bs5d7q1a384b72a10g5kl0qckn88ay"; })
+  (fetchNuGet { pname = "Humanizer.Core.cs"; version = "2.11.10"; sha256 = "03crw1lnzp32v2kcdmllkrsqh07r4ggw9gyc96qw7cv0nk5ch1h8"; })
+  (fetchNuGet { pname = "Humanizer.Core.da"; version = "2.11.10"; sha256 = "0glby12zra3y3yiq4cwq1m6wjcjl8f21v8ghi6s20r48glm8vzy9"; })
+  (fetchNuGet { pname = "Humanizer.Core.de"; version = "2.11.10"; sha256 = "0a35xrm1f9p74x0fkr52bw9sd54vdy9d5rnvf565yh8ww43xfk7b"; })
+  (fetchNuGet { pname = "Humanizer.Core.el"; version = "2.11.10"; sha256 = "0bhwwdx5vc48zikdsbrkghdhwahxxc2lkff0yaa5nxhbhasl84h8"; })
+  (fetchNuGet { pname = "Humanizer.Core.es"; version = "2.11.10"; sha256 = "07bw07qy8nyzlgxl7l2lxv9f78qmkfppgzx7iyq5ikrcnpvc7i9q"; })
+  (fetchNuGet { pname = "Humanizer.Core.fa"; version = "2.11.10"; sha256 = "00d4hc1pfmhfkc5wmx9p7i00lgi4r0k6wfcns9kl1syjxv3bs5f2"; })
+  (fetchNuGet { pname = "Humanizer.Core.fi-FI"; version = "2.11.10"; sha256 = "0z4is7pl5jpi4pfdvd2zvx5mp00bj26d9l9ksqyc0liax8nfzyik"; })
+  (fetchNuGet { pname = "Humanizer.Core.fr"; version = "2.11.10"; sha256 = "0sybpg6kbbhrnk7gxcdk7ppan89lsfqsdssrg4i1dm8w48wgicap"; })
+  (fetchNuGet { pname = "Humanizer.Core.fr-BE"; version = "2.11.10"; sha256 = "1s25c86nl9wpsn6fydzwv4rfmdx5sm0vgyd7xhw5344k20gazvhv"; })
+  (fetchNuGet { pname = "Humanizer.Core.he"; version = "2.11.10"; sha256 = "1nx61qkjd6p9r36dmnm4942khyv35fpdqmb2w69gz6463g4d7z29"; })
+  (fetchNuGet { pname = "Humanizer.Core.hr"; version = "2.11.10"; sha256 = "02jhcyj72prkqsjxyilv04drm0bknqjh2r893jlbsfi9vjg2zay3"; })
+  (fetchNuGet { pname = "Humanizer.Core.hu"; version = "2.11.10"; sha256 = "0yb6ly4s1wdyaf96h2dvifqyb575aid6irwl3qx8gcvrs0xpcxdp"; })
+  (fetchNuGet { pname = "Humanizer.Core.hy"; version = "2.11.10"; sha256 = "0b7vaqldn7ca3xi4gkvkhjk900kw2zwb0m0d20bg45a83zdlx79c"; })
+  (fetchNuGet { pname = "Humanizer.Core.id"; version = "2.11.10"; sha256 = "1yqxirknwga4j18k7ixwgqxlv20479afanhariy3c5mkwvglsr9b"; })
+  (fetchNuGet { pname = "Humanizer.Core.it"; version = "2.11.10"; sha256 = "1skwgj5a6kkx3pm9w4f29psch69h1knmwbkdydlmx13h452p1w4l"; })
+  (fetchNuGet { pname = "Humanizer.Core.ja"; version = "2.11.10"; sha256 = "1wpc3yz9v611dqbw8j5yimk8dpz0rvpnls4rmlnp1m47gavpj8x4"; })
+  (fetchNuGet { pname = "Humanizer.Core.ko-KR"; version = "2.11.10"; sha256 = "1df0kd7vwdc3inxfkb3wsl1aw3d6vbab99dzh08p4m04g7i2c1a9"; })
+  (fetchNuGet { pname = "Humanizer.Core.ku"; version = "2.11.10"; sha256 = "17b66xfgwjr0sffx0hw4c6l90h43z7ffylrs26hgav0n110q2nwg"; })
+  (fetchNuGet { pname = "Humanizer.Core.lv"; version = "2.11.10"; sha256 = "0czxx4b9g0w7agykdl82wds09zasa9y58dmgjm925amlfz4wkyzs"; })
+  (fetchNuGet { pname = "Humanizer.Core.ms-MY"; version = "2.11.10"; sha256 = "0kix95nbw94fx0dziyz80y59i7ii7d21b63f7f94niarljjq36i3"; })
+  (fetchNuGet { pname = "Humanizer.Core.mt"; version = "2.11.10"; sha256 = "1rwy6m22pq65gxn86xlr9lv818fp5kb0wz98zxxfljc2iviw1f4p"; })
+  (fetchNuGet { pname = "Humanizer.Core.nb"; version = "2.11.10"; sha256 = "0ra2cl0avvv4sylha7z76jxnb4pdiqfbpr5m477snr04dsjxd9q9"; })
+  (fetchNuGet { pname = "Humanizer.Core.nb-NO"; version = "2.11.10"; sha256 = "1qszib03pvmjkrg8za7jjd2vzrs9p4fn2rmy82abnzldkhvifipq"; })
+  (fetchNuGet { pname = "Humanizer.Core.nl"; version = "2.11.10"; sha256 = "1i9bvy0i2yyasl9mgxiiwrkmfpm2c53d3wwdp9270r6120sxyy63"; })
+  (fetchNuGet { pname = "Humanizer.Core.pl"; version = "2.11.10"; sha256 = "0kggh4wgcic7wzgxy548n6w61schss2ccf9kz8alqshfi42xifby"; })
+  (fetchNuGet { pname = "Humanizer.Core.pt"; version = "2.11.10"; sha256 = "09j90s8x1lpvhfiy3syfnj8slkgcacf3xjy3pnkgxa6g4mi4f4bd"; })
+  (fetchNuGet { pname = "Humanizer.Core.ro"; version = "2.11.10"; sha256 = "1jgidmqfly91v1k22gn687mfql5bz7gjzp1aapi93vq5x635qssy"; })
+  (fetchNuGet { pname = "Humanizer.Core.ru"; version = "2.11.10"; sha256 = "13mmlh0ibxfyc85xrz3vx4mcg56mkzqql184iwdryq94p0g5ahil"; })
+  (fetchNuGet { pname = "Humanizer.Core.sk"; version = "2.11.10"; sha256 = "04ja06y5jaz1jwkwn117wx9cib04gpbi0vysn58a8sd5jrxmxai5"; })
+  (fetchNuGet { pname = "Humanizer.Core.sl"; version = "2.11.10"; sha256 = "05hxk9v3a7fn7s4g9jp5zxk2z6a33b9fkavyb1hjqnl2i37q2wja"; })
+  (fetchNuGet { pname = "Humanizer.Core.sr"; version = "2.11.10"; sha256 = "0x6l2msimrx72iywa1g0rqklgy209sdwg0r77i2lz0s1rvk5klm5"; })
+  (fetchNuGet { pname = "Humanizer.Core.sr-Latn"; version = "2.11.10"; sha256 = "01hdyn7mmbyy7f3aglawgnsj3nblcdpqjgzdcvniy73l536mira0"; })
+  (fetchNuGet { pname = "Humanizer.Core.sv"; version = "2.11.10"; sha256 = "0cbgchivw3d5ndib1zmgzmnymhyvfh9g9f0hijc860g5vaa9fkvh"; })
+  (fetchNuGet { pname = "Humanizer.Core.th-TH"; version = "2.11.10"; sha256 = "1v7f9x3b04iwhz9lb3ir8az8128nvcw1gi4park5zh3fg0f3mni0"; })
+  (fetchNuGet { pname = "Humanizer.Core.tr"; version = "2.11.10"; sha256 = "02c4ky0dskxkdrkc7vy8yzmvwjr1wqll1kzx0k21afhlx8xynjd4"; })
+  (fetchNuGet { pname = "Humanizer.Core.uk"; version = "2.11.10"; sha256 = "0900ilhwj8yvhyzpg1pjr7f5vrl62wp8dsnhk4c2igs20qvnv079"; })
+  (fetchNuGet { pname = "Humanizer.Core.uz-Cyrl-UZ"; version = "2.11.10"; sha256 = "09b7p2m8y49j49ckrmx2difgyj6y7fm2mwca093j8psxclsykcyr"; })
+  (fetchNuGet { pname = "Humanizer.Core.uz-Latn-UZ"; version = "2.11.10"; sha256 = "029kvkawqhlln52vpjpvr52dhr18ylk01cgsj2z8lxnqaka0q9hk"; })
+  (fetchNuGet { pname = "Humanizer.Core.vi"; version = "2.11.10"; sha256 = "0q4d47plsj956ivn82qwyidfxppjr9dp13m8c66aamrvhy4q8ny5"; })
+  (fetchNuGet { pname = "Humanizer.Core.zh-CN"; version = "2.11.10"; sha256 = "01dy5kf6ai8id77px92ji4kcxjc8haj39ivv55xy1afcg3qiy7mh"; })
+  (fetchNuGet { pname = "Humanizer.Core.zh-Hans"; version = "2.11.10"; sha256 = "16gcxgw2g6gck3nc2hxzlkbsg7wkfaqsjl87kasibxxh47zdqqv2"; })
+  (fetchNuGet { pname = "Humanizer.Core.zh-Hant"; version = "2.11.10"; sha256 = "1rjg2xvkwjjw3c7z9mdjjvbnl9lcvvhh4fr7l61rla2ynzdk46cj"; })
+  (fetchNuGet { pname = "JetBrains.Annotations"; version = "2021.3.0"; sha256 = "01ssylllbwpana2w3iybi533zlvcsbhzjc8kr0g4kg307kjbfn8v"; })
+  (fetchNuGet { pname = "Markdig.Signed"; version = "0.26.0"; sha256 = "1giwdvmy6n4vfb0g7sxmdf9bklb4r2vdfhm1xfxvqys8rfm15d4z"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "5.0.10"; sha256 = "1dmcccml0lwxkiplfisxc70877h3s6p589nml19pi07iypvyxxjh"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "5.0.12"; sha256 = "1cv7s0gh54jfrdgwa2cyarh1f6m59fpbfmqsszi27cdik0llh24s"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "5.0.10"; sha256 = "1r9rf1j5v3hfn299zk71bjbbzslnypyqy1pz2xc4mirghwg18pqw"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "5.0.12"; sha256 = "1hmr4l20fs8qqjvcfnlyb6ik6dh37mg0xa2wrvkn229pmiwp1rm9"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "5.0.10"; sha256 = "1zlcdqscbgqz5yqfgn21l711ybplid97c6wg0gqbbd6920qmpidd"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "5.0.12"; sha256 = "1asph5v7kgmscfgsyv9gg7cwvg52gnm6m0ldm2m4pfkpsxqyp2mi"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "5.0.10"; sha256 = "0ir75jh4qas1v70y63hvd0rbyprcf97l47b2pgljhxk138z96s4y"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "5.0.12"; sha256 = "02kv8xh6xvpav7vqj281321ly1imghxcc18cdgadiq8dwgm87xwp"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "5.0.10"; sha256 = "0qhyrprvbhcn980ycqvkchd4qy5shydi7pl0lbcl9cljivn60if3"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "5.0.12"; sha256 = "062zb8gqbzxq2xrmr8lbl215pnhw1fdidq43m975vsfgzmqrga8f"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.JsonPatch"; version = "5.0.0"; sha256 = "192mn6r73xjw8fvlss6vrv34iiavq7k8pg0w7advgj6khklw4dzx"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.NewtonsoftJson"; version = "5.0.0"; sha256 = "1q3z35pxgvpf6l6ywh5wb6gfly055rk99a80rjqisyrbmza1msd1"; })
+  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.0.0"; sha256 = "18gdbsqf6i79ld4ikqr4jhx9ndsggm865b5xj1xmnmgg12ydp19a"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.ApiDescription.Server"; version = "3.0.0"; sha256 = "13a47xcqyi5gz85swxd4mgp7ndgl4kknrvv3xwmbn71hsh953hsh"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "5.0.0"; sha256 = "0fqxkc9pjxkqylsdf26s9q21ciyk56h1w33pz3v1v4wcv8yv1v6k"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "5.0.0"; sha256 = "15sdwcyzz0qlybwbdq854bn3jk6kx7awx28gs864c4shhbqkppj4"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "5.0.0"; sha256 = "17cz6s80va0ch0a6nqa1wbbbp3p8sqxb96lj4qcw67ivkp2yxiyj"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "5.0.0"; sha256 = "1qa1l18q2jh9azya8gv1p8anzcdirjzd9dxxisb4911i9m1648i3"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "5.0.0"; sha256 = "1yza38675dbv1qqnnhqm23alv2bbaqxp0pb7zinjmw8j2mr5r6wc"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "5.0.0"; sha256 = "1rdmgpg770x8qwaaa6ryc27zh93p697fcyvn5vkxp0wimlhqkbay"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "5.0.10"; sha256 = "12zz674g6289z44rynnbsarqdh6md0qdl4srkzkqz9dvm1f2k4yn"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "5.0.12"; sha256 = "0v3df0hdv02xr7gmc9fmnwfrxf8xbqp9bci31a55xwj16jia692x"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "5.0.10"; sha256 = "0v90w0cr8zjayj0w0rb5ds1kjg77n7za1nr9rr1pnszw2xs00fmq"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "5.0.12"; sha256 = "0jvfxnc743qcg1qwlvclh6ww612mnsk5pk459awz5rivp3mdkfsb"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "5.0.10"; sha256 = "1z8l02ypzbhbh0jp89ibc4dx61dvaa4l7cdn4s2zs0l492nz2ni8"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "5.0.12"; sha256 = "0950m6x86jp5dybzakfsp74qzrk4pk8wkazc178v36j14sqmj2zq"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "5.0.10"; sha256 = "07yr09al8cci38zmwqghpsf8jsg51a8qv6p156ph8b5714iq5jjq"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "5.0.12"; sha256 = "173zymcac00rjb0l4yvksglj32b6fnwxzi60kpi0ki3z3a2k8kd3"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "5.0.10"; sha256 = "12xw4czsnsy4nara23jbvbsi8id9lms17xfyv0w4wsqhrp5kqbxi"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "5.0.12"; sha256 = "197xfhk7rwpn5kgc59slclkd0rp53034mfrrpajn2xbgjnmb07sj"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "5.0.10"; sha256 = "0ccsk1baj0bx1k7jqm7pnw77ns3m6h50cl8kxikjcm74jsz0vyx1"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "5.0.12"; sha256 = "1bpzbivp0n9cl05vlnirigzbvjs25mq7w56bg9zrnzlzjnhcwry2"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.10"; sha256 = "1b3lm6dc31yl9r0rian7zcmhpn949dyp4yhw4fsl4bkdpp4id085"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.12"; sha256 = "1fdbrjrmjd31y1amp0inlmki9w3fwzv8nz41pqmc943g3cpmyg9f"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "5.0.10"; sha256 = "1pphlbhs1swr14g07hnvvwj9p983qqf6vqaq455bhpn6lin3z81f"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "5.0.12"; sha256 = "0z8l0gzy9dih0mn5a2rknyph1w73y4m03s250wghym1zp6rz910p"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "5.0.10"; sha256 = "0cn3nq7vmjwk8b5bh7hb5wzidz1msjmwyng6k1ngqdm49w9f0m2g"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "5.0.12"; sha256 = "1s4klc4p5wiqiiqcfqyi56cci9f29b588h52vj7na7gfqry4b51l"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
+  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.0.0"; sha256 = "0bknyf5kig5icwjxls7pcn51x2b2qf91dz9qv67fl70v6cczaz2r"; })
+  (fetchNuGet { pname = "Microsoft.OpenApi"; version = "1.2.3"; sha256 = "07b19k89whj69j87afkz86gp9b3iybw8jqwvlgcn43m7fb2y99rr"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.0.0"; sha256 = "1bh5scbvl6ndldqv20sl34h4y257irm9ziv2wyfc3hka6912fhn7"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.0.0"; sha256 = "06mn31cgpp7d8lwdyjanh89prc66j37dchn74vrd9s588rq0y70r"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
+  (fetchNuGet { pname = "MSTest.TestAdapter"; version = "2.2.4"; sha256 = "0yzdcxzaqj846y5x95wdin74bqjkifp2s7xlhqjgcg3x0m909p17"; })
+  (fetchNuGet { pname = "MSTest.TestFramework"; version = "2.2.4"; sha256 = "1nmkygw0k74nn1hw6rg1gdwchfad7ns5p967kxfp7bvnhj259bq0"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
+  (fetchNuGet { pname = "Newtonsoft.Json.Bson"; version = "1.0.2"; sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35"; })
+  (fetchNuGet { pname = "Nito.AsyncEx.Coordination"; version = "5.1.2"; sha256 = "0sxvmqnv8a94k3pq1w3lh1vgjb8l62h1qamxcjl3pkq634h2fwrl"; })
+  (fetchNuGet { pname = "Nito.AsyncEx.Tasks"; version = "5.1.2"; sha256 = "11wp47kc69sjdxrbg5pgx0wlffqlp0x5kr54ggnz2v19kmjz362v"; })
+  (fetchNuGet { pname = "Nito.Collections.Deque"; version = "1.1.1"; sha256 = "152564q3s0n5swfv5p5rx0ghn2sm0g2xsnbd7gv8vb9yfklv7yg8"; })
+  (fetchNuGet { pname = "Nito.Disposables"; version = "2.2.1"; sha256 = "1hx5k8497j34kxxgh060bvij0vfnraw90dmm3h9bmamcdi8wp80l"; })
+  (fetchNuGet { pname = "NLog"; version = "4.7.11"; sha256 = "0vvgypqh6cxzkrfymjaghads5dg88l2xvbz6dxwwrnjg5hhpcjaw"; })
+  (fetchNuGet { pname = "NLog.Extensions.Logging"; version = "1.7.4"; sha256 = "1lilk9sv3j9jg23hl0vhxd8w63bh6xvns42rkz5n582wpf5k2r24"; })
+  (fetchNuGet { pname = "NLog.Web.AspNetCore"; version = "4.14.0"; sha256 = "1q2v44inp4xjynncxpv432k2qjkfara1bpipmv3p3in0yv14l3wg"; })
+  (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
+  (fetchNuGet { pname = "protobuf-net"; version = "3.0.101"; sha256 = "0594qckbc0lh61sw74ihaq4qmvf1lf133vfa88n443mh7lxm2fwf"; })
+  (fetchNuGet { pname = "protobuf-net.Core"; version = "3.0.101"; sha256 = "1kvn9rnm6f0jxs0s9scyyx2f2p8rk03qzc1f6ijv1g6xgkpxkq1m"; })
+  (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
+  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
+  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
+  (fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
+  (fetchNuGet { pname = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; })
+  (fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; })
+  (fetchNuGet { pname = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; })
+  (fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
+  (fetchNuGet { pname = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
+  (fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
+  (fetchNuGet { pname = "runtime.any.System.Threading.Timer"; version = "4.3.0"; sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086"; })
+  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
+  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
+  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
+  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
+  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
+  (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
+  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
+  (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
+  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
+  (fetchNuGet { pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
+  (fetchNuGet { pname = "runtime.unix.System.Console"; version = "4.3.0"; sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80"; })
+  (fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
+  (fetchNuGet { pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
+  (fetchNuGet { pname = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; })
+  (fetchNuGet { pname = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; })
+  (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
+  (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
+  (fetchNuGet { pname = "runtime.win.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0k1h8nnp1s0p8rjwgjyj1387cc1yycv0k22igxc963lqdzrx2z36"; })
+  (fetchNuGet { pname = "runtime.win.System.Console"; version = "4.3.0"; sha256 = "0x2yajfrbc5zc6g7nmlr44xpjk6p1hxjq47jn3xki5j7i33zw9jc"; })
+  (fetchNuGet { pname = "runtime.win.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "16fbn4bcynad1ygdq0yk1wmckvs8jvrrf104xa5dc2hlc8y3x58f"; })
+  (fetchNuGet { pname = "runtime.win.System.IO.FileSystem"; version = "4.3.0"; sha256 = "1c01nklbxywszsbfaxc76hsz7gdxac3jkphrywfkdsi3v4bwd6g8"; })
+  (fetchNuGet { pname = "runtime.win.System.Net.Primitives"; version = "4.3.0"; sha256 = "1dixh195bi7473n17hspll6i562gghdz9m4jk8d4kzi1mlzjk9cf"; })
+  (fetchNuGet { pname = "runtime.win.System.Net.Sockets"; version = "4.3.0"; sha256 = "0lr3zki831vs6qhk5wckv2b9qbfk9rcj0ds2926qvj1b9y9m6sck"; })
+  (fetchNuGet { pname = "runtime.win.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1700famsxndccfbcdz9q14qb20p49lax67mqwpgy4gx3vja1yczr"; })
+  (fetchNuGet { pname = "SteamKit2"; version = "2.4.0-Alpha.3"; sha256 = "0n48yjkyzj49kv89jbkwdq6nm9w9ng6cjhvdv0chpryx9zgasgvv"; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "6.2.3"; sha256 = "1kx50vliqcqw72aygkm2cs2q82pxdxz17gvz4chz6k858qj4gv0l"; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore.Annotations"; version = "6.2.3"; sha256 = "189i1ziv3xkdxpxhkpfx3xfji3iw124s88sqn3ga2vh04fbdak8x"; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore.Newtonsoft"; version = "6.2.3"; sha256 = "1r4z1mmgihnmcqb8zd1q6jbz1g72y5ggl833qhmd1q0wnq8awbs8"; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "6.2.3"; sha256 = "0g3aw1lydq1xymd1f5rrs0dhl0fpl85gffs9jsm3khfqp7js31yz"; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "6.2.3"; sha256 = "1cza3hzxhia81rmmdx9qixbm1ikavscddknpvbkrwmljzx2qmsv7"; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerUI"; version = "6.2.3"; sha256 = "0sbrymb73a2s9qhgm7i44ca08h4n62qfh751fwnvybmj8kb1gzsi"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.7.1"; sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq"; })
+  (fetchNuGet { pname = "System.Composition"; version = "5.0.1"; sha256 = "07dr25p4kbh9hlrsnrqnlr920n7p39kfs0yj9sc7072j0icmxbg7"; })
+  (fetchNuGet { pname = "System.Composition.AttributedModel"; version = "5.0.1"; sha256 = "1czq644gy2hfwcxkpgr7yw99r4cshyc7789slgkbc3znif81q975"; })
+  (fetchNuGet { pname = "System.Composition.Convention"; version = "5.0.1"; sha256 = "086l0gjjb2j50iq176mbm6lx6wvcjh9rj6xwcd483958h774gyqg"; })
+  (fetchNuGet { pname = "System.Composition.Hosting"; version = "5.0.1"; sha256 = "07ljg7qmx0pmck32rwci05cpnbsxpj48qmp8gp18mhqw977nycxx"; })
+  (fetchNuGet { pname = "System.Composition.Runtime"; version = "5.0.1"; sha256 = "01m17rgn4n63mgcwkjnp4msvdh02h0y1wa7z74afnac4k1zqg5vy"; })
+  (fetchNuGet { pname = "System.Composition.TypedParts"; version = "5.0.1"; sha256 = "0hjmma4bh7iwsgylcprnpmjkgp6zd6ff04gchnkq5lbapd26bx6v"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
+  (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.TextWriterTraceListener"; version = "4.3.0"; sha256 = "09db74f36wkwg30f7v7zhz1yhkyrnl5v6bdwljq1jdfgzcfch7c3"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
+  (fetchNuGet { pname = "System.Diagnostics.TraceSource"; version = "4.3.0"; sha256 = "1kyw4d7dpjczhw6634nrmg7yyyzq72k75x38y0l0nwhigdlp1766"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
+  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
+  (fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
+  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
+  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
+  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.AccessControl"; version = "5.0.0"; sha256 = "0ixl68plva0fsj3byv76bai7vkin86s6wyzr8vcav3szl862blvk"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
+  (fetchNuGet { pname = "System.Linq.Async"; version = "5.0.0"; sha256 = "1bc1bfnahyk6y31mrxn7nd071436m94p4r9b2j835pghcqawqfbc"; })
+  (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.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
+  (fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
+  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
+  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
+  (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.0"; sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
+  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
+  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
+  (fetchNuGet { pname = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "5.0.0"; sha256 = "0jq1rcj5af2ydswld8ga3dyw2yi4c63wvb986b5kqsvpkwwc8x1b"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
+  (fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.5.0"; sha256 = "19x38911pawq4mrxrm04l2bnxwxxlzq8v8rj4cbxnfjj8pnd3vj3"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
+  (fetchNuGet { pname = "System.Threading.Overlapped"; version = "4.3.0"; sha256 = "1nahikhqh9nk756dh8p011j36rlcp1bzz3vwi2b4m1l2s3vz8idm"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
+  (fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
+  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
+  (fetchNuGet { pname = "zxcvbn-core"; version = "7.0.92"; sha256 = "1pbi0n3za8zsnkbvq19njy4h4hy12a6rv4rknf4a2m1kdhxb3cgx"; })
 ]
diff --git a/pkgs/applications/misc/OSCAR/default.nix b/pkgs/applications/misc/OSCAR/default.nix
index 7115801d00bbf..92eeeb142cc04 100644
--- a/pkgs/applications/misc/OSCAR/default.nix
+++ b/pkgs/applications/misc/OSCAR/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, mkDerivation, fetchFromGitLab, qmake, qtbase, qttools, qtserialport, libGLU }:
 mkDerivation rec {
   pname = "OSCAR";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitLab {
     owner = "pholy";
     repo = "OSCAR-code";
     rev = "v${version}";
-    sha256 = "10r37d8c2avr167n2s9lhld1c9hmckm444fq163z1jsy9jpid6mg";
+    sha256 = "sha256-oKKwX5HiT8RACiqzZegOxH6IHQn/u0N4ih/ubH6YYjg=";
   };
 
   buildInputs = [ qtbase qttools qtserialport libGLU ];
diff --git a/pkgs/applications/misc/anytype/default.nix b/pkgs/applications/misc/anytype/default.nix
index 0632f2b15a00d..9ffc02b9c69ce 100644
--- a/pkgs/applications/misc/anytype/default.nix
+++ b/pkgs/applications/misc/anytype/default.nix
@@ -2,13 +2,13 @@
 
 let
   pname = "anytype";
-  version = "0.21.1";
+  version = "0.22.3";
   name = "Anytype-${version}";
   nameExecutable = pname;
   src = fetchurl {
     url = "https://at9412003.fra1.digitaloceanspaces.com/Anytype-${version}.AppImage";
     name = "Anytype-${version}.AppImage";
-    sha256 = "sha256-5QsbB48g11TyfWCbR7Sz2AETEwdyG+bSJQNGRHrIueE=";
+    sha256 = "sha256-28qgTWCQrFCREGNfj8bePocEpB+0AZfrKNO4akn7/5I=";
   };
   appimageContents = appimageTools.extractType2 { inherit name src; };
 in
diff --git a/pkgs/applications/misc/appeditor/default.nix b/pkgs/applications/misc/appeditor/default.nix
index 0643e33885d08..cf1303422d27b 100644
--- a/pkgs/applications/misc/appeditor/default.nix
+++ b/pkgs/applications/misc/appeditor/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "appeditor";
-  version = "1.1.1";
+  version = "1.1.3";
 
   src = fetchFromGitHub {
     owner = "donadigo";
     repo = "appeditor";
     rev = version;
-    sha256 = "14ycw1b6v2sa4vljpnx2lpx4w89mparsxk6s8w3yx4dqjglcg5bp";
+    sha256 = "sha256-0zutz1nnThyF7h44cDxjE53hhAJfJf6DTs9p4HflXr8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/apvlv/default.nix b/pkgs/applications/misc/apvlv/default.nix
index 140d6eb7d086d..d7dde2a77ff51 100644
--- a/pkgs/applications/misc/apvlv/default.nix
+++ b/pkgs/applications/misc/apvlv/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, pkg-config, pcre, libxkbcommon, epoxy
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, pkg-config, pcre, libxkbcommon, libepoxy
 , gtk3, poppler, freetype, libpthreadstubs, libXdmcp, libxshmfence, wrapGAppsHook
 }:
 
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    poppler pcre libxkbcommon epoxy
+    poppler pcre libxkbcommon libepoxy
     freetype gtk3
     libpthreadstubs libXdmcp libxshmfence # otherwise warnings in compilation
   ];
diff --git a/pkgs/applications/misc/archivy/default.nix b/pkgs/applications/misc/archivy/default.nix
index fd58ea48e5545..6da5d46f8816a 100644
--- a/pkgs/applications/misc/archivy/default.nix
+++ b/pkgs/applications/misc/archivy/default.nix
@@ -53,11 +53,11 @@ with py.pkgs;
 
 buildPythonApplication rec {
   pname = "archivy";
-  version = "1.4.0";
+  version = "1.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-wQuR7cltDLr2u8BQ851MSjKmeLW8mQ/3bdEF5c9nxL0=";
+    sha256 = "sha256-nwpH3V6hkPC8G3df+0hTZqvIbvT1Z796uOI/iKnXS1w=";
   };
 
   # Relax some dependencies
diff --git a/pkgs/applications/misc/audio/soxr/default.nix b/pkgs/applications/misc/audio/soxr/default.nix
index 8460b4856dcce..f7c01ce464940 100644
--- a/pkgs/applications/misc/audio/soxr/default.nix
+++ b/pkgs/applications/misc/audio/soxr/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, cmake }:
 
 stdenv.mkDerivation rec {
-  name = "soxr-0.1.3";
+  pname = "soxr";
+  version = "0.1.3";
 
   src = fetchurl {
-    url = "mirror://sourceforge/soxr/${name}-Source.tar.xz";
+    url = "mirror://sourceforge/soxr/soxr-${version}-Source.tar.xz";
     sha256 = "12aql6svkplxq5fjycar18863hcq84c5kx8g6f4rj0lcvigw24di";
   };
 
@@ -15,18 +16,20 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "doc" ]; # headers are just two and very small
 
-  preConfigure = if stdenv.isDarwin then ''
-    export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}"`pwd`/build/src
-  '' else ''
-    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}"`pwd`/build/src
-  '';
+  preConfigure =
+    if stdenv.isDarwin then ''
+      export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}"`pwd`/build/src
+    '' else ''
+      export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}"`pwd`/build/src
+    '';
 
   nativeBuildInputs = [ cmake ];
 
-  meta = {
+  meta = with lib; {
     description = "An audio resampling library";
     homepage = "http://soxr.sourceforge.net";
-    license = lib.licenses.lgpl21Plus;
-    platforms = lib.platforms.unix;
+    license = licenses.lgpl21Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/misc/auto-multiple-choice/default.nix b/pkgs/applications/misc/auto-multiple-choice/default.nix
index 5990bf91ea01e..3f8edac97b6fb 100644
--- a/pkgs/applications/misc/auto-multiple-choice/default.nix
+++ b/pkgs/applications/misc/auto-multiple-choice/default.nix
@@ -24,10 +24,10 @@
 }:
 stdenv.mkDerivation rec {
   pname = "auto-multiple-choice";
-  version = "1.5.1";
+  version = "1.5.2";
   src = fetchurl {
     url = "https://download.auto-multiple-choice.net/${pname}_${version}_precomp.tar.gz";
-    sha256 = "71831122f7b43245d3289617064e0b561817c0130ee1773c1b957841b28b854c";
+    sha256 = "sha256-AjonJOooSe53Fww3QU6Dft95ojNqWrTuPul3nkIbctM=";
   };
   tlType = "run";
 
diff --git a/pkgs/applications/misc/azuredatastudio/default.nix b/pkgs/applications/misc/azuredatastudio/default.nix
index f7e39396602e0..378a04bada9a2 100644
--- a/pkgs/applications/misc/azuredatastudio/default.nix
+++ b/pkgs/applications/misc/azuredatastudio/default.nix
@@ -66,14 +66,14 @@ in
 stdenv.mkDerivation rec {
 
   pname = "azuredatastudio";
-  version = "1.33.0";
+  version = "1.33.1";
 
   desktopItems = [ desktopItem urlHandlerDesktopItem ];
 
   src = fetchurl {
     name = "${pname}-${version}.tar.gz";
     url = "https://azuredatastudio-update.azurewebsites.net/${version}/linux-x64/stable";
-    sha256 = "0593xs44ryfyxy0hc31hdbj706q16h58jb0qyfyncn7ngybm3423";
+    sha256 = "sha256-jgZ8iZkic26JSgFTXpu1u1+MM4G5AqyW6Mj1tx5QwcY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/batsignal/default.nix b/pkgs/applications/misc/batsignal/default.nix
index 93e16ea3469df..a8cbd24ee2c8b 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.2.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "electrickite";
     repo = "batsignal";
     rev = version;
-    sha256 = "0yc7xgwb3i4m8m9kg2xspqig3s2qgh2i9bkalvnkziayjb7y59qn";
+    sha256 = "sha256-ClwI3ZbkLul+l0zzzGxNjSOUTuVzIxtwUPNLOeFT2X0=";
   };
 
   buildInputs = [ libnotify glib ];
diff --git a/pkgs/applications/misc/bemenu/default.nix b/pkgs/applications/misc/bemenu/default.nix
index d230606a3c38f..c4c0132359425 100644
--- a/pkgs/applications/misc/bemenu/default.nix
+++ b/pkgs/applications/misc/bemenu/default.nix
@@ -11,24 +11,15 @@ assert x11Support -> xorg != null;
 
 stdenv.mkDerivation rec {
   pname = "bemenu";
-  version = "0.6.3";
+  version = "0.6.4";
 
   src = fetchFromGitHub {
     owner = "Cloudef";
     repo = pname;
     rev = version;
-    sha256 = "sha256-U4IMfDvQ0rfEJhE3Uext2c/Cs0mjy1tw+k8uk441Ag8=";
+    sha256 = "5xRM3NQfomG0vJheNEBLy3OaS6UEwabNKYa96u2md6M=";
   };
 
-  patches = [
-    # Pull upstream fix for build against ncurses-6.3
-    (fetchpatch {
-      name = "ncurses-6.3.patch";
-      url = "https://github.com/Cloudef/bemenu/commit/d31164db756989579468946aba62969e42c7ed28.patch";
-      sha256 = "sha256-oyndQI7SaR8cK0IO5wIIxMpmakhfUzwUqLIKRbPkEdw=";
-    })
-  ];
-
   nativeBuildInputs = [ pkg-config pcre ];
 
   makeFlags = ["PREFIX=$(out)"];
diff --git a/pkgs/applications/misc/binance/default.nix b/pkgs/applications/misc/binance/default.nix
index c86342f6e7870..e98f8bfabb8c0 100644
--- a/pkgs/applications/misc/binance/default.nix
+++ b/pkgs/applications/misc/binance/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "binance";
-  version = "1.26.0";
+  version = "1.29.0";
 
   src = fetchurl {
     url = "https://github.com/binance/desktop/releases/download/v${version}/${pname}-${version}-amd64-linux.deb";
-    sha256 = "sha256-UNqz/0IQ1nWANk83X7IVwvZTJayqNO5xPS6oECCgqHI=";
+    sha256 = "sha256-LQX5RUTVm6lBdRzCFMBq1NLGGiLBVyykJ1LY9FqINnY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/bottles/default.nix b/pkgs/applications/misc/bottles/default.nix
index 52f4e8def20e6..85d801e2ec3c7 100644
--- a/pkgs/applications/misc/bottles/default.nix
+++ b/pkgs/applications/misc/bottles/default.nix
@@ -1,20 +1,21 @@
 { lib, fetchFromGitHub
 , meson, ninja, pkg-config, wrapGAppsHook
-, desktop-file-utils, gsettings-desktop-schemas, libnotify, libhandy
+, desktop-file-utils, gsettings-desktop-schemas, libnotify, libhandy, webkitgtk
 , python3Packages, gettext
-, appstream-glib, gdk-pixbuf, glib, gobject-introspection, gspell, gtk3
+, appstream-glib, gdk-pixbuf, glib, gobject-introspection, gspell, gtk3, gnome
 , steam-run, xdg-utils, pciutils, cabextract, wineWowPackages
+, freetype, p7zip, gamemode
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "bottles";
-  version = "2021.7.28-treviso-2";
+  version = "2021.12.28-treviso";
 
   src = fetchFromGitHub {
     owner = "bottlesdevs";
     repo = pname;
     rev = version;
-    sha256 = "0kvwcajm9izvkwfg7ir7bks39bpc665idwa8mc8d536ajyjriysn";
+    sha256 = "lZbSLLBg7XM6PuOmu5rJ15dg+QHHRcjijRYE6u3WT9Y=";
   };
 
   postPatch = ''
@@ -41,10 +42,13 @@ python3Packages.buildPythonApplication rec {
     gtk3
     libhandy
     libnotify
+    webkitgtk
+    gnome.adwaita-icon-theme
   ];
 
   propagatedBuildInputs = with python3Packages; [
     pyyaml
+    pytoml
     requests
     pycairo
     pygobject3
@@ -53,12 +57,16 @@ python3Packages.buildPythonApplication rec {
     gst-python
     liblarch
     patool
+    markdown
   ] ++ [
     steam-run
     xdg-utils
     pciutils
     cabextract
     wineWowPackages.minimal
+    freetype
+    p7zip
+    gamemode # programs.gamemode.enable
   ];
 
   format = "other";
@@ -66,13 +74,9 @@ python3Packages.buildPythonApplication rec {
   dontWrapGApps = true; # prevent double wrapping
 
   preConfigure = ''
-    substituteInPlace build-aux/meson/postinstall.py \
-      --replace "'update-desktop-database'" "'${desktop-file-utils}/bin/update-desktop-database'"
-    substituteInPlace src/runner.py \
-      --replace " {runner}" " ${steam-run}/bin/steam-run {runner}" \
-      --replace " {dxvk_setup}" " ${steam-run}/bin/steam-run {dxvk_setup}"
-      substituteInPlace src/runner_utilities.py \
-        --replace " {runner}" " ${steam-run}/bin/steam-run {runner}" \
+    patchShebangs build-aux/meson/postinstall.py
+    substituteInPlace src/backend/runner.py \
+      --replace "{Paths.runners}" "${steam-run}/bin/steam-run {Paths.runners}"
   '';
 
   preFixup = ''
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index a991d7c0d13d9..3e1bdaec9d391 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -27,14 +27,14 @@
 
 mkDerivation rec {
   pname = "calibre";
-  version = "5.31.1";
+  version = "5.33.2";
 
   src = fetchurl {
     url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-3LGEWuHms54ji9GWSyLl8cFWIRBqHY1Jf/CNPJOywrU=";
+    sha256 = "sha256-wtt3ucCaFq9wLk79CeCz20tMM6AbLtZ4Ln6TxOx0dvI=";
   };
 
-  # https://sources.debian.org/patches/calibre/5.31.1+dfsg-1
+  # https://sources.debian.org/patches/calibre/5.33.2+dfsg-1
   patches = [
     #  allow for plugin update check, but no calibre version check
     (fetchpatch {
diff --git a/pkgs/applications/misc/cfm/default.nix b/pkgs/applications/misc/cfm/default.nix
new file mode 100644
index 0000000000000..4e56f376c8069
--- /dev/null
+++ b/pkgs/applications/misc/cfm/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "cfm";
+  version = "0.6.6";
+
+  src = fetchFromGitHub {
+    owner = "willeccles";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-uXL0RO9P+NYSZ0xCv91KzjHOJJI500YUT8IJkFS86pE=";
+  };
+
+  makeFlags = [
+    "DESTDIR=${placeholder "out"}"
+    "PREFIX="
+  ];
+
+  meta = with lib; {
+    description = "Simple and fast TUI file manager with no dependencies";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ lom ];
+    homepage = "https://github.com/willeccles/cfm";
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/misc/charm/default.nix b/pkgs/applications/misc/charm/default.nix
index 224336dffabf2..204a090136def 100644
--- a/pkgs/applications/misc/charm/default.nix
+++ b/pkgs/applications/misc/charm/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "charm";
-  version = "0.8.6";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "charmbracelet";
     repo = "charm";
     rev = "v${version}";
-    sha256 = "0mjq0yy60czsw40h5n515qmi6bbvhrddll4sn5r2q1nf9pvviqr6";
+    sha256 = "sha256-5WNkD+YfmQHGAWWfD9/ZEHnHPT0Ejm9Nz+/mn8xvU4U=";
   };
 
-  vendorSha256 = "1spzawnk2fslc1m14dp8lx4vpnxwz7xgm1hxbpz4bqlqz1hfd6ax";
+  vendorSha256 = "sha256-TncVMDeZ8+Wuv1o0Cjks3Ve1OsO+WXH9mClC6GNaSas=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/misc/cherrytree/default.nix b/pkgs/applications/misc/cherrytree/default.nix
index 5802f21a8749d..15faa7a32d75e 100644
--- a/pkgs/applications/misc/cherrytree/default.nix
+++ b/pkgs/applications/misc/cherrytree/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cherrytree";
-  version = "0.99.42";
+  version = "0.99.44";
 
   src = fetchFromGitHub {
     owner = "giuspen";
     repo = "cherrytree";
     rev = version;
-    sha256 = "sha256-PKjl9n6J0iNdcA56CZ/nAzvgRNwqRLTHjwi3HQYWIMU=";
+    sha256 = "sha256-13wZb+PxeCrQ3MpewMnqBHO8QnoCRFhKU4awTdYtFd4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/clifm/default.nix b/pkgs/applications/misc/clifm/default.nix
index 7fc130700aa92..20c7497e8695a 100644
--- a/pkgs/applications/misc/clifm/default.nix
+++ b/pkgs/applications/misc/clifm/default.nix
@@ -2,33 +2,30 @@
 
 stdenv.mkDerivation rec {
   pname = "clifm";
-  version = "1.1";
+  version = "1.3";
 
   src = fetchFromGitHub {
     owner = "leo-arch";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0mf9lrq0l532vyf4ycsikrw8imn4gkavyn3cr42nhjsr1drygrp8";
+    sha256 = "sha256-nYBGM3gUj1NGrxNLt0xpNl00cgS2Ecs3kYjZapiJT48=";
   };
 
   buildInputs = [ libcap acl file readline ];
 
   makeFlags = [
-    "INSTALLPREFIX=${placeholder "out"}/bin"
-    "DESKTOPPREFIX=${placeholder "out"}/share"
+    "DESTDIR=${placeholder "out"}"
+    "DATADIR=/share"
+    "PREFIX=/"
   ];
 
-  preInstall = ''
-    mkdir -p $out/bin $out/share
-  '';
-
   enableParallelBuilding = true;
 
   meta = with lib; {
     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; [ vonfry ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/misc/cobalt/default.nix b/pkgs/applications/misc/cobalt/default.nix
index 9b263e6f0d473..84b8fe1d17fe9 100644
--- a/pkgs/applications/misc/cobalt/default.nix
+++ b/pkgs/applications/misc/cobalt/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cobalt";
-  version = "0.17.4";
+  version = "0.17.5";
 
   src = fetchFromGitHub {
     owner = "cobalt-org";
     repo = "cobalt.rs";
     rev = "v${version}";
-    sha256 = "sha256-uZcs3VkmpasFwgB7m1spTHi2W86tJt2kWlRTXAotvvo=";
+    sha256 = "sha256-FCt/4JCL7VmD26HH1XLjJeUP8m7uexdPekD414CxGDI=";
   };
 
-  cargoSha256 = "sha256-U2TVg2/SIOxaWs4EehTpcu47uDO/EA2dJK56k3I6F+0=";
+  cargoSha256 = "sha256-S2BVulU2bsgJpxKEt8u2ddNav8/1fd+s7wTVkSeHL4o=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
diff --git a/pkgs/applications/misc/cointop/default.nix b/pkgs/applications/misc/cointop/default.nix
index 623c6ce4f1b59..209e9f9e3beaf 100644
--- a/pkgs/applications/misc/cointop/default.nix
+++ b/pkgs/applications/misc/cointop/default.nix
@@ -1,19 +1,19 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGo117Module, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGo117Module rec {
   pname = "cointop";
-  version = "1.6.8";
+  version = "1.6.10";
 
   src = fetchFromGitHub {
     owner = "miguelmota";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-uENfTj+pJjX4t+yrd7zrn3LHRbJJSZFCN1N6Ce47wcE=";
+    sha256 = "sha256-NAw1uoBL/FnNLJ86L9aBCOY65aJn1DDGK0Cd0IO2kr0=";
   };
 
-  goPackagePath = "github.com/miguelmota/cointop";
+  vendorSha256 = null;
 
-  ldflags = [ "-s" "-w" "-X ${goPackagePath}/cointop.version=${version}" ];
+  ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
     description = "The fastest and most interactive terminal based UI application for tracking cryptocurrencies";
diff --git a/pkgs/applications/misc/corectrl/default.nix b/pkgs/applications/misc/corectrl/default.nix
index d5e2e6adf526e..8ec80e9952281 100644
--- a/pkgs/applications/misc/corectrl/default.nix
+++ b/pkgs/applications/misc/corectrl/default.nix
@@ -6,7 +6,7 @@
 , kauth
 , libdrm
 , hwdata
-, mesa-demos
+, glxinfo
 , procps
 , util-linux
 , vulkan-tools
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec{
     karchive
     kauth
     libdrm
-    mesa-demos
+    glxinfo
     procps
     util-linux
     vulkan-tools
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec{
 
   cmakeFlags = [ "-DWITH_PCI_IDS_PATH=${hwdata}/share/hwdata/pci.ids" ];
 
-  runtimeDeps = [ hwdata mesa-demos vulkan-tools ];
+  runtimeDeps = [ hwdata glxinfo vulkan-tools util-linux procps ];
   binPath = lib.makeBinPath runtimeDeps;
 
   dontWrapQtApps = true;
diff --git a/pkgs/applications/misc/crow-translate/default.nix b/pkgs/applications/misc/crow-translate/default.nix
index c730944973194..71142727a83eb 100644
--- a/pkgs/applications/misc/crow-translate/default.nix
+++ b/pkgs/applications/misc/crow-translate/default.nix
@@ -34,8 +34,8 @@ let
   qonlinetranslator = fetchFromGitHub {
     owner = "crow-translate";
     repo = "QOnlineTranslator";
-    rev = "df89083d2f680a8f856b1df00b8846f995cf1fae";
-    sha256 = "sha256-I64KGInnYd/QdI5kANJERsF95wMvRlr8kgQhUqXXN/0=";
+    rev = "1.5.2";
+    sha256 = "sha256-iGi25aKwff2hNNx6o4kHZV8gVbEQcMgpTTvop3CoLjM=";
   };
   circleflags = fetchFromGitHub {
     owner = "HatScripts";
@@ -52,13 +52,13 @@ let
 in
 mkDerivation rec {
   pname = "crow-translate";
-  version = "2.8.7";
+  version = "2.9.1";
 
   src = fetchFromGitHub {
     owner = "crow-translate";
     repo = pname;
     rev = version;
-    sha256 = "sha256-0bq9itbFyzdOhdNuUtdCYLTCIhc91MM+YRhJgXC5PPw=";
+    sha256 = "sha256-7Zb6PZO8eLeGPEZD37ja+LZydIQdsgy5gMAMtlS4k5Y=";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch b/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch
index 44c859a1ea05a..1eb1f464e55f5 100644
--- a/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch
+++ b/pkgs/applications/misc/crow-translate/dont-fetch-external-libs.patch
@@ -1,8 +1,8 @@
 diff --git i/CMakeLists.txt w/CMakeLists.txt
-index faa9417..059b899 100644
+index 375b17c..106efa9 100644
 --- i/CMakeLists.txt
 +++ w/CMakeLists.txt
-@@ -101,13 +101,11 @@ qt5_add_translation(QM_FILES
+@@ -114,13 +114,11 @@ qt5_add_translation(QM_FILES
  )
  
  configure_file(src/cmake.h.in cmake.h)
@@ -19,7 +19,7 @@ index faa9417..059b899 100644
      src/addlanguagedialog.cpp
      src/addlanguagedialog.ui
 diff --git i/cmake/ExternalLibraries.cmake w/cmake/ExternalLibraries.cmake
-index e2501e1..e15ce6c 100644
+index c92e745..f265f03 100644
 --- i/cmake/ExternalLibraries.cmake
 +++ w/cmake/ExternalLibraries.cmake
 @@ -2,34 +2,28 @@ include(FetchContent)
@@ -46,7 +46,7 @@ index e2501e1..e15ce6c 100644
  
  FetchContent_Declare(QOnlineTranslator
 -    GIT_REPOSITORY https://github.com/crow-translate/QOnlineTranslator
--    GIT_TAG df89083d2f680a8f856b1df00b8846f995cf1fae
+-    GIT_TAG 1.5.2
 +    SOURCE_DIR @qonlinetranslator@
  )
  
diff --git a/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch b/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch
index 322fd5e048449..882e4090267b8 100644
--- a/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch
+++ b/pkgs/applications/misc/crow-translate/fix-qttranslations-path.patch
@@ -1,13 +1,13 @@
 diff --git i/src/settings/appsettings.cpp w/src/settings/appsettings.cpp
-index aa8b357..15e4f74 100644
+index a73371b..b9d66ca 100644
 --- i/src/settings/appsettings.cpp
 +++ w/src/settings/appsettings.cpp
-@@ -81,7 +81,7 @@ void AppSettings::applyLanguage(QLocale::Language lang)
-     QLocale::setDefault(locale);
- 
-     s_appTranslator.load(locale, QStringLiteral(PROJECT_NAME), QStringLiteral("_"), QStandardPaths::locate(QStandardPaths::AppDataLocation, QStringLiteral("translations"), QStandardPaths::LocateDirectory));
--    s_qtTranslator.load(locale, QStringLiteral("qtbase"), QStringLiteral("_"), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
-+    s_qtTranslator.load(locale, QStringLiteral("qtbase"), QStringLiteral("_"), QLatin1String("@qttranslations@/translations"));
+@@ -75,7 +75,7 @@ void AppSettings::applyLocale(const QLocale &locale)
+     const QLocale newLocale = locale == defaultLocale() ? QLocale::system() : locale;
+     QLocale::setDefault(newLocale);
+     s_appTranslator.load(newLocale, QStringLiteral(PROJECT_NAME), QStringLiteral("_"), QStandardPaths::locate(QStandardPaths::AppDataLocation, QStringLiteral("translations"), QStandardPaths::LocateDirectory));
+-    s_qtTranslator.load(newLocale, QStringLiteral("qt"), QStringLiteral("_"), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
++    s_qtTranslator.load(newLocale, QStringLiteral("qt"), QStringLiteral("_"), QLatin1String("@qttranslations@/translations"));
  }
  
- QLocale::Language AppSettings::defaultLanguage()
+ QLocale AppSettings::defaultLocale()
diff --git a/pkgs/applications/misc/cura/default.nix b/pkgs/applications/misc/cura/default.nix
index 32b9085b3de27..521da8e2f8e9a 100644
--- a/pkgs/applications/misc/cura/default.nix
+++ b/pkgs/applications/misc/cura/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "cura";
-  version = "4.10.0";
+  version = "4.12.1";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "Cura";
     rev = version;
-    sha256 = "0v65xg31rw4kc7f98k8zz0kmhrp9m55k8ahblha9r1vr4krcf30z";
+    sha256 = "sha256-QvX9o1nrYmY6zzPcxl+xD6JTMdphzT/is1SMYrISu4o=";
   };
 
   materials = fetchFromGitHub {
diff --git a/pkgs/applications/misc/cura/stable.nix b/pkgs/applications/misc/cura/stable.nix
index 5383cbe9a23ab..a2ec91193ea41 100644
--- a/pkgs/applications/misc/cura/stable.nix
+++ b/pkgs/applications/misc/cura/stable.nix
@@ -1,15 +1,14 @@
-{ lib, stdenv, python27Packages, curaengine, makeDesktopItem, fetchurl }:
-let
-  py = python27Packages;
-  version = "15.04";
-in
+{ lib, stdenv, python27Packages, curaengine, makeDesktopItem, fetchFromGitHub }:
+
 stdenv.mkDerivation rec {
   pname = "cura";
-  inherit version;
+  version = "15.06.03";
 
-  src = fetchurl {
-    url = "https://github.com/daid/Cura/archive/${version}.tar.gz";
-    sha256 = "0xbjvzhp8wzq9lnpmcg1fjf7j5h39bj5463sd5c8jzdjl96izizl";
+  src = fetchFromGitHub {
+    owner = "daid";
+    repo = "Cura";
+    rev = version;
+    sha256 = "sha256-o1cAi4Wi19WOijlRB9iYwNEpSNnmywUj5Bth8rRhqFA=";
   };
 
   desktopItem = makeDesktopItem {
@@ -22,13 +21,13 @@ stdenv.mkDerivation rec {
     categories = "GNOME;GTK;Utility;";
   };
 
-  python_deps = with py; [ pyopengl pyserial numpy wxPython30 power setuptools ];
+  python_deps = with python27Packages; [ pyopengl pyserial numpy wxPython30 power setuptools ];
 
   pythonPath = python_deps;
 
   propagatedBuildInputs = python_deps;
 
-  buildInputs = [ curaengine py.wrapPython ];
+  buildInputs = [ curaengine python27Packages.wrapPython ];
 
   configurePhase = "";
   buildPhase = "";
diff --git a/pkgs/applications/misc/curaengine/default.nix b/pkgs/applications/misc/curaengine/default.nix
index d0dfde5b38203..c6af30b78552e 100644
--- a/pkgs/applications/misc/curaengine/default.nix
+++ b/pkgs/applications/misc/curaengine/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "curaengine";
-  version = "4.10.0";
+  version = "4.12.1";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "CuraEngine";
     rev = version;
-    sha256 = "sha256-t5i6s0KKcaoMqzDxZ6JL1NyKP33uxWdmyziK3xh8q88=";
+    sha256 = "sha256-+sjysxOaNLq6p3yCoB1qKosBO5Cg2/1o7xmUtZ15wkE=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/curaengine/stable.nix b/pkgs/applications/misc/curaengine/stable.nix
index 3c74aaaded4af..6bddfabfb5bb9 100644
--- a/pkgs/applications/misc/curaengine/stable.nix
+++ b/pkgs/applications/misc/curaengine/stable.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchurl }:
-let
-  version = "15.04.6";
-in
-stdenv.mkDerivation {
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
   pname = "curaengine";
-  inherit version;
+  version = "15.04.6";
 
-  src = fetchurl {
-    url = "https://github.com/Ultimaker/CuraEngine/archive/${version}.tar.gz";
-    sha256 = "1cd4dikzvqyj5g80rqwymvh4nwm76vsf78clb37kj6q0fig3qbjg";
+  src = fetchFromGitHub {
+    owner = "Ultimaker";
+    repo = "CuraEngine";
+    rev = version;
+    sha256 = "sha256-8V21TRSqCN+hkTlz51d5A5oK5JOwEtx+ROt8cfJBL/0=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix
index 65375172f405c..3f62ffe7dfb48 100644
--- a/pkgs/applications/misc/dbeaver/default.nix
+++ b/pkgs/applications/misc/dbeaver/default.nix
@@ -14,17 +14,19 @@
 , libXtst
 , zlib
 , maven
+, webkitgtk
+, glib-networking
 }:
 
 stdenv.mkDerivation rec {
   pname = "dbeaver";
-  version = "21.2.5"; # When updating also update fetchedMavenDeps.sha256
+  version = "21.3.2"; # When updating also update fetchedMavenDeps.sha256
 
   src = fetchFromGitHub {
     owner = "dbeaver";
     repo = "dbeaver";
     rev = version;
-    sha256 = "bLZYwf6dtbzS0sWKfQQzv4NqRQZqLkJaT24eW3YOsdQ=";
+    sha256 = "SifnnzuETFKtnEwLjJtB7CV2QZaToex3MjKGuiShlwo=";
   };
 
   fetchedMavenDeps = stdenv.mkDerivation {
@@ -50,7 +52,7 @@ stdenv.mkDerivation rec {
     dontFixup = true;
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "7Sm1hAoi5xc4MLONOD8ySLLkpao0qmlMRRva/8zR210=";
+    outputHash = "grSFtkohTlLtK8qE4A4wVppC6UHcyaXRQlGnrOmQDC4=";
   };
 
   nativeBuildInputs = [
@@ -69,6 +71,9 @@ stdenv.mkDerivation rec {
     libXrender
     libXtst
     zlib
+  ] ++ lib.optionals stdenv.isLinux [
+    webkitgtk
+    glib-networking
   ];
 
   desktopItems = [
@@ -130,7 +135,8 @@ stdenv.mkDerivation rec {
 
       makeWrapper $out/dbeaver/dbeaver $out/bin/dbeaver \
         --prefix PATH : ${jdk}/bin \
-        --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ glib gtk3 libXtst ])} \
+        --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath ([ glib gtk3 libXtst webkitgtk glib-networking ])} \
+        --prefix GIO_EXTRA_MODULES : "${glib-networking}/lib/gio/modules" \
         --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH"
 
       mkdir -p $out/share/pixmaps
diff --git a/pkgs/applications/misc/dozenal/default.nix b/pkgs/applications/misc/dozenal/default.nix
index ae5dd170eb924..c0bedb728aa62 100644
--- a/pkgs/applications/misc/dozenal/default.nix
+++ b/pkgs/applications/misc/dozenal/default.nix
@@ -21,6 +21,14 @@ stdenv.mkDerivation rec {
   patches = [ ./lua-header.patch ];
   preBuild = "cd dozenal";
   buildInputs = [ ncurses hdate lua5_2 ];
+
+  # Parallel builds fail due to no dependencies between subdirs.
+  # As a result some subdirs are atempted to build twice:
+  #   ../dec/dec.c:39:10: fatal error: conv.h: No such file or directory
+  # Let's disable parallelism until it's fixed upstream:
+  #  https://gitlab.com/dgoodmaniii/dozenal/-/issues/8
+  enableParallelBuilding = false;
+
   # I remove gdozdc, as I didn't figure all it's dependency yet.
   postInstall = "rm $out/bin/gdozdc";
 
diff --git a/pkgs/applications/misc/dunst/default.nix b/pkgs/applications/misc/dunst/default.nix
index 698a9b7c3b5f0..4f1d68774de26 100644
--- a/pkgs/applications/misc/dunst/default.nix
+++ b/pkgs/applications/misc/dunst/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dunst";
-  version = "1.7.1";
+  version = "1.7.3";
 
   src = fetchFromGitHub {
     owner = "dunst-project";
     repo = "dunst";
     rev = "v${version}";
-    sha256 = "0v15fhwzcg7zfn092sry0f4qb6dccz9bb312y9dadg745wf3n9qw";
+    sha256 = "sha256-8s8g1J8vEogCp29tSwX5eqYTDf1dLoyBznnwAlCMQOU=";
   };
 
   nativeBuildInputs = [ perl pkg-config which systemd makeWrapper ];
diff --git a/pkgs/applications/misc/dupeguru/default.nix b/pkgs/applications/misc/dupeguru/default.nix
index d2332b4d9c7d8..7612153fe563c 100644
--- a/pkgs/applications/misc/dupeguru/default.nix
+++ b/pkgs/applications/misc/dupeguru/default.nix
@@ -65,7 +65,7 @@ python3Packages.buildPythonApplication rec {
     description = "GUI tool to find duplicate files in a system";
     homepage = "https://github.com/arsenetar/dupeguru";
     license = licenses.bsd3;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.novoxudonoser ];
   };
 }
diff --git a/pkgs/applications/misc/electrum/default.nix b/pkgs/applications/misc/electrum/default.nix
index f722b2315c00c..841b943e8634d 100644
--- a/pkgs/applications/misc/electrum/default.nix
+++ b/pkgs/applications/misc/electrum/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , fetchurl
 , fetchFromGitHub
+, fetchpatch
 , wrapQtAppsHook
 , python3
 , zbar
@@ -78,6 +79,14 @@ python3.pkgs.buildPythonApplication {
       --replace "dnspython>=2.0,<2.1" "dnspython>=2.0"
   '';
 
+  patches = [
+    # trezorlib 0.13 compatibility
+    (fetchpatch {
+      url = "https://github.com/spesmilo/electrum/commit/97e61cfacdca374103e4184f0f9a07a0c5757afb.patch";
+      sha256 = "sha256-RGVBO9IskC+lQOHNGjrqH6EM/inNPJlcD9sSWedyT5E=";
+    })
+  ];
+
   nativeBuildInputs = lib.optionals enableQt [ wrapQtAppsHook ];
 
   propagatedBuildInputs = with py.pkgs; [
diff --git a/pkgs/applications/misc/electrum/ltc.nix b/pkgs/applications/misc/electrum/ltc.nix
index bd015afdc5720..a070bc321b74b 100644
--- a/pkgs/applications/misc/electrum/ltc.nix
+++ b/pkgs/applications/misc/electrum/ltc.nix
@@ -1,63 +1,180 @@
 { lib
+, stdenv
 , fetchurl
-, python3Packages
+, fetchFromGitHub
 , wrapQtAppsHook
+, python3
+, zbar
+, secp256k1
+, enableQt ? true
+# for updater.nix
+, writeScript
+, common-updater-scripts
+, bash
+, coreutils
+, curl
+, gnugrep
+, gnupg
+, gnused
+, nix
 }:
 
-python3Packages.buildPythonApplication rec {
+let
+  version = "4.0.9.3";
+
+  libsecp256k1_name =
+    if stdenv.isLinux then "libsecp256k1.so.0"
+    else if stdenv.isDarwin then "libsecp256k1.0.dylib"
+    else "libsecp256k1${stdenv.hostPlatform.extensions.sharedLibrary}";
+
+  libzbar_name =
+    if stdenv.isLinux then "libzbar.so.0"
+    else "libzbar${stdenv.hostPlatform.extensions.sharedLibrary}";
+
+  # Not provided in official source releases, which are what upstream signs.
+  tests = fetchFromGitHub {
+    owner = "pooler";
+    repo = "electrum-ltc";
+    rev = version;
+    sha256 = "sha256-oZjQnrnj8nCaQjrIz8bWNt6Ib8Wu2ZMXHEPfCCy2fjk=";
+
+    extraPostFetch = ''
+      mv $out ./all
+      mv ./all/electrum_ltc/tests $out
+    '';
+  };
+
+  py = python3.override {
+    packageOverrides = self: super: {
+
+      aiorpcx = super.aiorpcx.overridePythonAttrs (oldAttrs: rec {
+        version = "0.18.7";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "1rswrspv27x33xa5bnhrkjqzhv0sknv5kd7pl1vidw9d2z4rx2l0";
+        };
+      });
+    };
+  };
+
+in
+
+python3.pkgs.buildPythonApplication {
   pname = "electrum-ltc";
-  version = "3.3.8.1";
+  inherit version;
 
   src = fetchurl {
     url = "https://electrum-ltc.org/download/Electrum-LTC-${version}.tar.gz";
-    sha256 = "0kxcx1xf6h9z8x0k483d6ykpnmfr30n6z3r6lgqxvbl42pq75li7";
+    sha256 = "sha256-+oox0BGqkvj0OGOKJF8tUoKdsZFeffNb6rTF8E8mo08=";
   };
 
-  nativeBuildInputs = with python3Packages; [ pyqt5 wrapQtAppsHook ];
+  postUnpack = ''
+    # can't symlink, tests get confused
+    cp -ar ${tests} $sourceRoot/electrum_ltc/tests
+  '';
 
-  propagatedBuildInputs = with python3Packages; [
-    pyaes
-    ecdsa
-    pbkdf2
-    requests
-    qrcode
-    py_scrypt
-    pyqt5
-    protobuf
+  prePatch = ''
+    substituteInPlace contrib/requirements/requirements.txt \
+      --replace "dnspython>=2.0,<2.1" "dnspython>=2.0"
+  '';
+
+  nativeBuildInputs = lib.optionals enableQt [ wrapQtAppsHook ];
+
+  propagatedBuildInputs = with py.pkgs; [
+    aiohttp
+    aiohttp-socks
+    aiorpcx
+    attrs
+    bitstring
+    cryptography
     dnspython
     jsonrpclib-pelix
+    matplotlib
+    pbkdf2
+    protobuf
+    py_scrypt
     pysocks
-    trezor
+    qrcode
+    requests
+    tlslite-ng
+    # plugins
     btchip
+    ckcc-protocol
+    keepkey
+    trezor
+  ] ++ lib.optionals enableQt [
+    pyqt5
+    qdarkstyle
   ];
 
   preBuild = ''
     sed -i 's,usr_share = .*,usr_share = "'$out'/share",g' setup.py
-    pyrcc5 icons.qrc -o gui/qt/icons_rc.py
-    # Recording the creation timestamps introduces indeterminism to the build
-    sed -i '/Created: .*/d' gui/qt/icons_rc.py
+    substituteInPlace ./electrum_ltc/ecc_fast.py \
+      --replace ${libsecp256k1_name} ${secp256k1}/lib/libsecp256k1${stdenv.hostPlatform.extensions.sharedLibrary}
+  '' + (if enableQt then ''
+    substituteInPlace ./electrum_ltc/qrscanner.py \
+      --replace ${libzbar_name} ${zbar.lib}/lib/libzbar${stdenv.hostPlatform.extensions.sharedLibrary}
+  '' else ''
+    sed -i '/qdarkstyle/d' contrib/requirements/requirements.txt
+  '');
+
+  postInstall = lib.optionalString stdenv.isLinux ''
+    # Despite setting usr_share above, these files are installed under
+    # $out/nix ...
+    mv $out/${python3.sitePackages}/nix/store"/"*/share $out
+    rm -rf $out/${python3.sitePackages}/nix
+
+    substituteInPlace $out/share/applications/electrum-ltc.desktop \
+      --replace 'Exec=sh -c "PATH=\"\\$HOME/.local/bin:\\$PATH\"; electrum-ltc %u"' \
+                "Exec=$out/bin/electrum-ltc %u" \
+      --replace 'Exec=sh -c "PATH=\"\\$HOME/.local/bin:\\$PATH\"; electrum-ltc --testnet %u"' \
+                "Exec=$out/bin/electrum-ltc --testnet %u"
+
   '';
 
-  preFixup = ''
-    makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+  postFixup = lib.optionalString enableQt ''
+    wrapQtApp $out/bin/electrum-ltc
   '';
 
-  checkPhase = ''
+  checkInputs = with python3.pkgs; [ pytestCheckHook pyaes pycryptodomex ];
+
+  pytestFlagsArray = [ "electrum_ltc/tests" ];
+
+  disabledTests = [
+    "test_loop"  # test tries to bind 127.0.0.1 causing permission error
+    "test_is_ip_address"  # fails spuriously https://github.com/spesmilo/electrum/issues/7307
+  ];
+
+  postCheck = ''
     $out/bin/electrum-ltc help >/dev/null
   '';
 
+  passthru.updateScript = import ./update.nix {
+    inherit lib;
+    inherit
+      writeScript
+      common-updater-scripts
+      bash
+      coreutils
+      curl
+      gnupg
+      gnugrep
+      gnused
+      nix
+    ;
+  };
+
   meta = with lib; {
-    description = "Litecoin thin client";
+    description = "Lightweight Litecoin Client";
     longDescription = ''
-      Electrum-LTC is a simple, but powerful Litecoin wallet. A twelve-word
-      security passphrase (or “seed”) leaves intruders stranded and your peace
-      of mind intact. Keep it on paper, or in your head... and never worry
-      about losing your litecoins to theft or hardware failure. No waiting, no
-      lengthy blockchain downloads and no syncing to the network.
+      Electrum-LTC is a simple, but powerful Litecoin wallet. A unique secret
+      phrase (or “seed”) leaves intruders stranded and your peace of mind
+      intact. Keep it on paper, or in your head... and never worry about losing
+      your litecoins to theft or hardware failure.
     '';
     homepage = "https://electrum-ltc.org/";
     license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ ];
+    platforms = platforms.all;
+    maintainers = with maintainers; [ lourkeur ];
   };
 }
diff --git a/pkgs/applications/misc/fetchmail/default.nix b/pkgs/applications/misc/fetchmail/default.nix
index f16e2a87a6849..c790fa3bb55e0 100644
--- a/pkgs/applications/misc/fetchmail/default.nix
+++ b/pkgs/applications/misc/fetchmail/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fetchmail";
-  version = "6.4.22";
+  version = "6.4.24";
 
   src = fetchurl {
     url = "mirror://sourceforge/fetchmail/fetchmail-${version}.tar.xz";
-    sha256 = "sha256-zGgYvVlDVgIWn6KS1tFj1Wshx/UxEoKUcKOs6r5hLIQ=";
+    sha256 = "sha256-nJYd8lzZIvU5IYsLVqd+ekd3jkntkH7apbSUGtOyU88=";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/applications/misc/free42/default.nix b/pkgs/applications/misc/free42/default.nix
index 0aae4ab3baf7e..47facd867bc77 100644
--- a/pkgs/applications/misc/free42/default.nix
+++ b/pkgs/applications/misc/free42/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "free42";
-  version = "3.0.6";
+  version = "3.0.7";
 
   src = fetchFromGitHub {
     owner = "thomasokken";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-PIHokB7GlGtx1A0IqFX9+HA/Vab1CDpVS/qhk/y8Nzk=";
+    sha256 = "sha256-wGzZRp+7KBV/sxm08XCkCDx+A8nR9To5MCmcdWdlttM=";
   };
 
   nativeBuildInputs = [ copyDesktopItems pkg-config ];
diff --git a/pkgs/applications/misc/fspy/default.nix b/pkgs/applications/misc/fspy/default.nix
new file mode 100644
index 0000000000000..4baf053d713f1
--- /dev/null
+++ b/pkgs/applications/misc/fspy/default.nix
@@ -0,0 +1,27 @@
+{ appimageTools, lib, fetchurl }:
+let
+  pname = "fspy";
+  version = "1.0.3";
+  name = "${pname}-v${version}";
+
+  src = fetchurl {
+    url = "https://github.com/stuffmatic/fSpy/releases/download/v${version}/${pname}-${version}-x86_64.AppImage";
+    sha256 = "sha256-L+qsSExuEkzZkjnV/J6rrZ3BXqWQd+IfsN6a3kvQF3A=";
+  };
+
+in appimageTools.wrapType2 {
+  inherit name src;
+
+  extraInstallCommands = ''
+    mv $out/bin/${name} $out/bin/${pname}
+  '';
+
+  meta = with lib; {
+    description = "A cross platform app for quick and easy still image camera matching";
+    license = licenses.gpl3;
+    homepage = "https://fspy.io/";
+    maintainers = with maintainers; [ polygon ];
+    platforms = platforms.linux;
+    mainProgram = "fspy";
+  };
+}
diff --git a/pkgs/applications/misc/gallery-dl/default.nix b/pkgs/applications/misc/gallery-dl/default.nix
index 20590552fc995..43ce94d5bfc42 100644
--- a/pkgs/applications/misc/gallery-dl/default.nix
+++ b/pkgs/applications/misc/gallery-dl/default.nix
@@ -1,15 +1,15 @@
-{ lib, buildPythonApplication, fetchPypi, requests, youtube-dl, pytestCheckHook }:
+{ lib, buildPythonApplication, fetchPypi, requests, yt-dlp, pytestCheckHook }:
 
 buildPythonApplication rec {
   pname = "gallery_dl";
-  version = "1.19.2";
+  version = "1.19.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7fec9ac69582dbd9922666e6ece3142ae52dc9679a2c4a613f6ee94ad09e5f68";
+    sha256 = "db3973a17f1074e4f4cb99b635b94c1926bdd549263e1df909498f3c6aa93484";
   };
 
-  propagatedBuildInputs = [ requests youtube-dl ];
+  propagatedBuildInputs = [ requests yt-dlp ];
 
   checkInputs = [ pytestCheckHook ];
   pytestFlagsArray = [
diff --git a/pkgs/applications/misc/gnome-passwordsafe/default.nix b/pkgs/applications/misc/gnome-passwordsafe/default.nix
index 34f4aa71a38a8..e7a413e63b46d 100644
--- a/pkgs/applications/misc/gnome-passwordsafe/default.nix
+++ b/pkgs/applications/misc/gnome-passwordsafe/default.nix
@@ -17,16 +17,16 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "gnome-passwordsafe";
-  version = "5.0";
+  version = "5.1";
   format = "other";
   strictDeps = false; # https://github.com/NixOS/nixpkgs/issues/56943
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
-    repo = "PasswordSafe";
+    repo = "secrets";
     rev = version;
-    sha256 = "8EFKLNK7rZlYL2g/7FmaC5r5hcdblsnod/aB8NYiBvY=";
+    sha256 = "sha256-RgpkLoqhwCdaPZxC1Qe0MpLtYLevNCOxbvwEEI0cpE0=";
   };
 
   nativeBuildInputs = [
@@ -58,7 +58,7 @@ python3Packages.buildPythonApplication rec {
   meta = with lib; {
     broken = stdenv.hostPlatform.isStatic; # libpwquality doesn't provide bindings when static
     description = "Password manager for GNOME which makes use of the KeePass v.4 format";
-    homepage = "https://gitlab.gnome.org/World/PasswordSafe";
+    homepage = "https://gitlab.gnome.org/World/secrets";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ mvnetbiz ];
diff --git a/pkgs/applications/misc/golden-cheetah/default.nix b/pkgs/applications/misc/golden-cheetah/default.nix
index 53c0a96060e7d..4f411f105ce98 100644
--- a/pkgs/applications/misc/golden-cheetah/default.nix
+++ b/pkgs/applications/misc/golden-cheetah/default.nix
@@ -16,13 +16,13 @@ let
   };
 in mkDerivation rec {
   pname = "golden-cheetah";
-  version = "3.6-DEV2107";
+  version = "3.6-DEV2111";
 
   src = fetchFromGitHub {
     owner = "GoldenCheetah";
     repo = "GoldenCheetah";
     rev = "v${version}";
-    sha256 = "1d54x3pv27w1ys2f5l7gnfhyijhgcgdjnq1c1mj7hvg35dmh054d";
+    sha256 = "17sk89szvaq31bcv6rgfn1bbw132k7w8zlalfb3ayflavdxbk6sa";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/misc/gpsprune/default.nix b/pkgs/applications/misc/gpsprune/default.nix
index 583a8a1931b1c..839bcc281bac1 100644
--- a/pkgs/applications/misc/gpsprune/default.nix
+++ b/pkgs/applications/misc/gpsprune/default.nix
@@ -1,43 +1,48 @@
-{ fetchurl, lib, stdenv, makeDesktopItem, makeWrapper, unzip, jdk }:
+{ fetchurl, lib, stdenv, makeDesktopItem, makeWrapper, unzip, jre, copyDesktopItems }:
 
 stdenv.mkDerivation rec {
   pname = "gpsprune";
-  version = "20.4";
+  version = "21";
 
   src = fetchurl {
     url = "https://activityworkshop.net/software/gpsprune/gpsprune_${version}.jar";
-    sha256 = "sha256-ZTYkKyu0/axf2uLUmQHRW/2bQ6p2zK7xBF66ozbPS2c=";
+    sha256 = "sha256-FS6nf8K+qfEWDCQwmoxH1laJIONMtwmb/H89SVJtV1E=";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ jdk ];
-
-  desktopItem = makeDesktopItem {
-    name = "gpsprune";
-    exec = "gpsprune";
-    icon = "gpsprune";
-    desktopName = "GpsPrune";
-    genericName = "GPS Data Editor";
-    comment = meta.description;
-    categories = "Education;Geoscience;";
-  };
+  dontUnpack = true;
+
+  nativeBuildInputs = [ makeWrapper copyDesktopItems ];
+  buildInputs = [ jre ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "gpsprune";
+      exec = "gpsprune";
+      icon = "gpsprune";
+      desktopName = "GpsPrune";
+      genericName = "GPS Data Editor";
+      comment = meta.description;
+      categories = "Education;Geoscience;";
+    })
+  ];
 
-  buildCommand = ''
-    mkdir -p $out/bin $out/share/java
-    cp -v $src $out/share/java/gpsprune.jar
-    makeWrapper ${jdk}/bin/java $out/bin/gpsprune \
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 ${src} $out/share/java/gpsprune.jar
+    makeWrapper ${jre}/bin/java $out/bin/gpsprune \
       --add-flags "-jar $out/share/java/gpsprune.jar"
-    mkdir -p $out/share/applications
-    cp $desktopItem/share/applications"/"* $out/share/applications
     mkdir -p $out/share/pixmaps
     ${unzip}/bin/unzip -p $src tim/prune/gui/images/window_icon_64.png > $out/share/pixmaps/gpsprune.png
+
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "Application for viewing, editing and converting GPS coordinate data";
     homepage = "https://activityworkshop.net/software/gpsprune/";
     license = licenses.gpl2Plus;
-    maintainers = [ maintainers.rycee ];
+    maintainers = with maintainers; [ rycee ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index 84651b78121ae..277cb24759525 100644
--- a/pkgs/applications/misc/gpxsee/default.nix
+++ b/pkgs/applications/misc/gpxsee/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, mkDerivation, fetchFromGitHub, qmake, qttools, qttranslations, substituteAll }:
+{ lib, stdenv, fetchFromGitHub, qmake, qttools, qttranslations, qtlocation, wrapQtAppsHook, substituteAll }:
 
-mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "gpxsee";
-  version = "9.12";
+  version = "10.0";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = version;
-    sha256 = "sha256-hIDphwmS4UNSTvE+Icupipo6AmT2fiPdaufT/I3EeJ4=";
+    sha256 = "sha256-XACexj91TLd/i2GoFr0zZ3Yqcg+KjKoWWPfCGsEIR04=";
   };
 
   patches = (substituteAll {
@@ -17,7 +17,9 @@ mkDerivation rec {
     inherit qttranslations;
   });
 
-  nativeBuildInputs = [ qmake qttools ];
+  buildInputs = [ qtlocation ];
+
+  nativeBuildInputs = [ qmake qttools wrapQtAppsHook ];
 
   preConfigure = ''
     lrelease gpxsee.pro
diff --git a/pkgs/applications/misc/gramps/default.nix b/pkgs/applications/misc/gramps/default.nix
index b22a09691bb3d..531ce42373711 100644
--- a/pkgs/applications/misc/gramps/default.nix
+++ b/pkgs/applications/misc/gramps/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub, gtk3, pythonPackages, intltool, gexiv2,
   pango, gobject-introspection, wrapGAppsHook, gettext,
 # Optional packages:
- enableOSM ? true, osm-gps-map,
+ enableOSM ? true, osm-gps-map, glib-networking,
  enableGraphviz ? true, graphviz,
  enableGhostscript ? true, ghostscript
  }:
@@ -15,7 +15,7 @@ in buildPythonApplication rec {
   nativeBuildInputs = [ wrapGAppsHook intltool gettext ];
   buildInputs = [ gtk3 gobject-introspection pango gexiv2 ]
     # Map support
-    ++ lib.optional enableOSM osm-gps-map
+    ++ lib.optionals enableOSM [ osm-gps-map glib-networking ]
     # Graphviz support
     ++ lib.optional enableGraphviz graphviz
     # Ghostscript support
diff --git a/pkgs/applications/misc/gremlin-console/default.nix b/pkgs/applications/misc/gremlin-console/default.nix
index 3204a4a0e8532..69024e581e0a4 100644
--- a/pkgs/applications/misc/gremlin-console/default.nix
+++ b/pkgs/applications/misc/gremlin-console/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "gremlin-console";
-  version = "3.5.0";
+  version = "3.5.1";
   src = fetchzip {
     url = "https://downloads.apache.org/tinkerpop/${version}/apache-tinkerpop-gremlin-console-${version}-bin.zip";
-    sha256 = "sha256-aVhDbOYhgYaWjttGjJvBKbov7OGWh2/llBTePFPGXDM=";
+    sha256 = "sha256-66krBK5mSMT0scCgMmiaigT/9nmYfItxe1OTzSbX+kE=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/misc/grip/default.nix b/pkgs/applications/misc/grip/default.nix
index 6a6666763c188..478a4fe74d13d 100644
--- a/pkgs/applications/misc/grip/default.nix
+++ b/pkgs/applications/misc/grip/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "grip";
-  version = "4.2.2";
+  version = "4.2.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/grip/grip-${version}.tar.gz";
-    sha256 = "sha256-nXtGgJeNYM8lyllNi9UdmsnVcHOCXfryWmKGZ9QFTHE=";
+    sha256 = "sha256-5Qgsf4+xs0ckhYJk2csKulXC3nWaLRAsQ15qaTkKkjw=";
   };
 
   nativeBuildInputs = [ pkg-config libtool ];
diff --git a/pkgs/applications/misc/gsimplecal/default.nix b/pkgs/applications/misc/gsimplecal/default.nix
index 2d855d0c9fcc2..7068954baac89 100644
--- a/pkgs/applications/misc/gsimplecal/default.nix
+++ b/pkgs/applications/misc/gsimplecal/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, automake, autoconf, pkg-config, gtk3 }:
+{ lib, stdenv, fetchFromGitHub, automake, autoconf, pkg-config, gtk3 }:
 
 stdenv.mkDerivation rec {
   pname = "gsimplecal";
   version = "2.2";
 
-  src = fetchurl {
-    url = "https://github.com/dmedvinsky/gsimplecal/archive/v${version}.tar.gz";
-    sha256 = "sha256-f19cnTX83LZT2d01B1EdWSaHcfHqpFPTo5glYkAokq8=";
+  src = fetchFromGitHub {
+    owner = "dmedvinsky";
+    repo = "gsimplecal";
+    rev = "v${version}";
+    sha256 = "sha256-r7OitN7WSY7vxpQCraLyokgUNgvaVFjE17ghBGgxzuM=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/misc/heimer/default.nix b/pkgs/applications/misc/heimer/default.nix
index 0aff0c6bbd192..1510c992f3548 100644
--- a/pkgs/applications/misc/heimer/default.nix
+++ b/pkgs/applications/misc/heimer/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "heimer";
-  version = "2.8.0";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "juzzlin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-838uH8nTxl3FJvtYrLDmS6tYYRdNnFzftZ5RZE8tVpE=";
+    sha256 = "sha256-F0Pl6Wk+sGfOegy7iljQH63kAMYlRYv7G9nBAAtDEkg=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/hubstaff/default.nix b/pkgs/applications/misc/hubstaff/default.nix
index 797dfe504cae4..5110815023a03 100644
--- a/pkgs/applications/misc/hubstaff/default.nix
+++ b/pkgs/applications/misc/hubstaff/default.nix
@@ -4,9 +4,9 @@
 , curl, writeShellScript, common-updater-scripts }:
 
 let
-  url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.6.2-328c666b/Hubstaff-1.6.2-328c666b.sh";
-  version = "1.6.2-328c666b";
-  sha256 = "0fmlblw19qk9s9xsl0dl705cnns825wrlc7navii4bvbsn6ycl5v";
+  url = "https://hubstaff-production.s3.amazonaws.com/downloads/HubstaffClient/Builds/Release/1.6.4-6681f81d/Hubstaff-1.6.4-6681f81d.sh";
+  version = "1.6.4-6681f81d";
+  sha256 = "1j0rzyqm9zm2w44zwxq61fy19m27ghlv11mbfl7yzh2ccmxljxjm";
 
   rpath = lib.makeLibraryPath
     [ libX11 zlib libSM libICE libXext freetype libXrender fontconfig libXft
diff --git a/pkgs/applications/misc/hugo/default.nix b/pkgs/applications/misc/hugo/default.nix
index 2153553c54a8d..34d565fdfeb59 100644
--- a/pkgs/applications/misc/hugo/default.nix
+++ b/pkgs/applications/misc/hugo/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "hugo";
-  version = "0.88.1";
+  version = "0.91.2";
 
   src = fetchFromGitHub {
     owner = "gohugoio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-yuFFp/tgyziR4SXul2PlMhKmRl7C7OSrW8/kCCUpzI0=";
+    sha256 = "sha256-6bqtw0hUrRBhTwEDURaTjgl3aVVCbfxjoPRfhSd3LK8=";
   };
 
-  vendorSha256 = "sha256-VX+oIz5wAyEQ4nky3kXmJZbMF0MvfAKdEAMLnS0hXc8=";
+  vendorSha256 = "sha256-CO+7WgoTsFCd9vkcALKcJP6Kj3CIWr5FF75/WgbK04g=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/misc/index-fm/default.nix b/pkgs/applications/misc/index-fm/default.nix
index 3165b3d34d6d6..5321c49b75ce2 100644
--- a/pkgs/applications/misc/index-fm/default.nix
+++ b/pkgs/applications/misc/index-fm/default.nix
@@ -16,7 +16,7 @@
 }:
 
 mkDerivation rec {
-  pname = "index";
+  pname = "index-fm";
   version = "2.1.0";
 
   src = fetchFromGitLab {
diff --git a/pkgs/applications/misc/inherd-quake/default.nix b/pkgs/applications/misc/inherd-quake/default.nix
new file mode 100644
index 0000000000000..1b0de8a658114
--- /dev/null
+++ b/pkgs/applications/misc/inherd-quake/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, openssl
+, stdenv
+, CoreServices
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "inherd-quake";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "phodal";
+    repo = "quake";
+    rev = "v${version}";
+    sha256 = "1f7k68g18g3dpnrsmhgmz753bly1i3f4lmsljiyp9ap0c6w8ahgg";
+  };
+
+  cargoSha256 = "17q9sjypa331gdfvmx1kbcbvnj34rnsf37b9rnji4jrqfysgrs5w";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [
+    openssl
+  ] ++ lib.optionals stdenv.isDarwin [
+    CoreServices
+    Security
+  ];
+
+  meta = with lib; {
+    description = "A knowledge management meta-framework for geeks";
+    homepage = "https://github.com/phodal/quake";
+    license = licenses.mit;
+    maintainers = [ maintainers.elliot ];
+    mainProgram = "quake";
+  };
+}
diff --git a/pkgs/applications/misc/jgmenu/default.nix b/pkgs/applications/misc/jgmenu/default.nix
index 88274b8664d3f..45014ad81c9e3 100644
--- a/pkgs/applications/misc/jgmenu/default.nix
+++ b/pkgs/applications/misc/jgmenu/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jgmenu";
-  version = "4.3.0";
+  version = "4.4.0";
 
   src = fetchFromGitHub {
     owner = "johanmalm";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+JO/A7+6/yeYz0tP7vxSi04cS1bEet+3sAs7CYXKxI8=";
+    sha256 = "sha256-REzrN4tz+cFmKyJeOPOkzjvthsJdY3GButF7RdnzviE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/joplin-desktop/default.nix b/pkgs/applications/misc/joplin-desktop/default.nix
index 9d3b751fcd6ac..2003e0d7e76c3 100644
--- a/pkgs/applications/misc/joplin-desktop/default.nix
+++ b/pkgs/applications/misc/joplin-desktop/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "joplin-desktop";
-  version = "2.5.12";
+  version = "2.6.10";
   name = "${pname}-${version}";
 
   inherit (stdenv.hostPlatform) system;
@@ -16,8 +16,8 @@ let
   src = fetchurl {
     url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.${suffix}";
     sha256 = {
-      x86_64-linux = "sha256-/S/paqMKVerSQFjA4wQ9fLV0WaqKm4CzQfy+0OdH7c8=";
-      x86_64-darwin = "sha256-5eKTfZRpW7IYwFt8TeJiytrwEpiHBgN4k9kth+Lh0Bo=";
+      x86_64-linux = "sha256-2/QYEzQjB9n/4k5I/fry3ol8Fpsb5+tc1ttVdf2ID+4=";
+      x86_64-darwin = "sha256-BwBpq78hYJVUItUgs9lonBTV4YWJ+qvML6VTj5M4BQ4=";
     }.${system} or throwSystem;
   };
 
diff --git a/pkgs/applications/misc/jotta-cli/default.nix b/pkgs/applications/misc/jotta-cli/default.nix
index 08ca656301431..832c6e93c5001 100644
--- a/pkgs/applications/misc/jotta-cli/default.nix
+++ b/pkgs/applications/misc/jotta-cli/default.nix
@@ -5,10 +5,10 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "jotta-cli";
-  version = "0.11.44593";
+  version = "0.12.51202";
   src = fetchzip {
       url = "https://repo.jotta.us/archives/linux/${arch}/jotta-cli-${version}_linux_${arch}.tar.gz";
-      sha256 = "1f06zmcpvm0f3phwc43ai6v4ykhkrd4f3br2j89nx9bfmj6ss2ic";
+      sha256 = "sha256-B7Rn/0hFVUsEK2Wo8KbqAnzOwQmMKkAssfmaN3dPAUY=";
       stripRoot = false;
     };
 
diff --git a/pkgs/applications/misc/jp2a/default.nix b/pkgs/applications/misc/jp2a/default.nix
index 96d506b556e56..28100135d83d2 100644
--- a/pkgs/applications/misc/jp2a/default.nix
+++ b/pkgs/applications/misc/jp2a/default.nix
@@ -11,14 +11,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.1.0";
+  version = "1.1.1";
   pname = "jp2a";
 
   src = fetchFromGitHub {
     owner = "Talinx";
     repo = "jp2a";
     rev = "v${version}";
-    sha256 = "1dz2mrhl45f0vwyfx7qc3665xma78q024c10lfsgn6farrr0c2lb";
+    sha256 = "sha256-CUyJMVvzXniK5fdZBuWUK9GLSGJyL5Zig49ikGOGRTw=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/applications/misc/jrnl/default.nix b/pkgs/applications/misc/jrnl/default.nix
index 967d4931c31ec..494329ecabe76 100644
--- a/pkgs/applications/misc/jrnl/default.nix
+++ b/pkgs/applications/misc/jrnl/default.nix
@@ -16,6 +16,11 @@ python3.pkgs.buildPythonApplication rec {
     sha256 = "sha256-+kPr7ndY6u1HMw6m0UZJ5jxVIPNjlTfQt7OYEdZkHBE=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'tzlocal = ">2.0, <3.0"' 'tzlocal = ">2.0, !=3.0"'
+  '';
+
   nativeBuildInputs = with python3.pkgs; [
     poetry-core
   ];
diff --git a/pkgs/applications/misc/keepass-plugins/charactercopy/default.nix b/pkgs/applications/misc/keepass-plugins/charactercopy/default.nix
new file mode 100644
index 0000000000000..dbe203566f09c
--- /dev/null
+++ b/pkgs/applications/misc/keepass-plugins/charactercopy/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, buildEnv, fetchurl, mono }:
+
+let
+  version = "1.0.0";
+
+  drv = stdenv.mkDerivation {
+    pname = "keepass-charactercopy";
+    inherit version;
+
+    src = fetchurl {
+      url    = "https://github.com/SketchingDev/Character-Copy/releases/download/v${version}/CharacterCopy.plgx";
+      sha256 = "f8a81a60cd1aacc04c92a242479a8e4210452add019c52ebfbb1810b58d8800a";
+    };
+
+    dontUnpack = true;
+    installPhase = ''
+      mkdir -p $out/lib/dotnet/keepass/
+      cp $src $out/lib/dotnet/keepass/
+    '';
+
+    meta = with lib; {
+      description = "Enables KeePass to copy individual characters by index";
+      longDescription = ''
+        Character Copy is a lightweight KeePass plugin that integrates into KeePass' entry menu and
+        allows users to securely copy individual characters from
+        an entry's protected string fields, such as the password field
+      '';
+      homepage    = "https://github.com/SketchingDev/Character-Copy";
+      platforms   = [
+        "aarch64-linux"
+        "i686-linux"
+        "x86_64-linux"
+      ];
+      # licensing info was found in source files https://github.com/SketchingDev/Character-Copy/search?q=license
+      license     = licenses.gpl2;
+      maintainers = with maintainers; [ nazarewk ];
+    };
+  };
+in
+  # Mono is required to compile plugin at runtime, after loading.
+  buildEnv { name = drv.name; paths = [ mono drv ]; }
diff --git a/pkgs/applications/misc/keepass-plugins/keetraytotp/default.nix b/pkgs/applications/misc/keepass-plugins/keetraytotp/default.nix
new file mode 100644
index 0000000000000..52cd719ca5834
--- /dev/null
+++ b/pkgs/applications/misc/keepass-plugins/keetraytotp/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, buildEnv, fetchurl, mono }:
+
+let
+  version = "0.108.0";
+
+  drv = stdenv.mkDerivation {
+    pname = "keepass-keetraytotp";
+    inherit version;
+
+    src = fetchurl {
+      url    = "https://github.com/KeeTrayTOTP/KeeTrayTOTP/releases/download/v${version}/KeeTrayTOTP.plgx";
+      sha256 = "4f7251a9bbb79cad04aee96d1809c6b36d43285a9f3834fef5330fc97ae8bc09";
+    };
+
+    dontUnpack = true;
+    installPhase = ''
+      mkdir -p $out/lib/dotnet/keepass/
+      cp $src $out/lib/dotnet/keepass/
+    '';
+
+    meta = with lib; {
+      description = "Augments KeePass with TOTP user interface";
+      longDescription = ''
+        This KeePass2 plugin adds advanced support for generating Time-based One-Time Passwords (TOTPs)
+        from the KeePass tray icon. It also provides a column in the main entry list to display and/or use TOTPs.
+        TOTPs can also be sent by auto-type. The plugin is compatible with Google, Dropbox, Steam, and many more services.
+      '';
+      homepage    = "https://github.com/KeeTrayTOTP/KeeTrayTOTP";
+      platforms   = [
+        "aarch64-linux"
+        "i686-linux"
+        "x86_64-linux"
+      ];
+      license     = licenses.gpl3;
+      maintainers = with maintainers; [ nazarewk ];
+    };
+  };
+in
+  # Mono is required to compile plugin at runtime, after loading.
+  buildEnv { name = drv.name; paths = [ mono drv ]; }
diff --git a/pkgs/applications/misc/keepass-plugins/qrcodeview/default.nix b/pkgs/applications/misc/keepass-plugins/qrcodeview/default.nix
new file mode 100644
index 0000000000000..8e7ee2a49905d
--- /dev/null
+++ b/pkgs/applications/misc/keepass-plugins/qrcodeview/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, buildEnv, fetchurl, mono }:
+
+let
+  version = "1.0.4";
+
+  drv = stdenv.mkDerivation {
+    pname = "keepass-qrcodeview";
+    inherit version;
+
+    src = fetchurl {
+      url = "https://github.com/JanisEst/KeePassQRCodeView/releases/download/v${version}/KeePassQRCodeView.plgx";
+      sha256 = "e13c9f02bb0d79b479ca0e92490b822b5b88f49bb18ba2954d3bbe0808f46e6d";
+    };
+
+    dontUnpack = true;
+    installPhase = ''
+      mkdir -p $out/lib/dotnet/keepass/
+      cp $src $out/lib/dotnet/keepass/
+    '';
+
+    meta = with lib; {
+      description = "Enables KeePass to display data as QR code images";
+      longDescription = ''
+        KeePassQRCodeView is a plugin for KeePass 2.x which shows QR codes for entry fields.
+        These codes can be scanned to copy the encoded data to the scanner (smartphone, ...)
+      '';
+      homepage    = "https://github.com/JanisEst/KeePassQRCodeView";
+      platforms   = [
+        "aarch64-linux"
+        "i686-linux"
+        "x86_64-linux"
+      ];
+      license     = licenses.mit;
+      maintainers = with maintainers; [ nazarewk ];
+    };
+  };
+in
+  # Mono is required to compile plugin at runtime, after loading.
+  buildEnv { name = drv.name; paths = [ mono drv ]; }
diff --git a/pkgs/applications/misc/keepass/default.nix b/pkgs/applications/misc/keepass/default.nix
index f2846de37d3f8..4276ce8a84189 100644
--- a/pkgs/applications/misc/keepass/default.nix
+++ b/pkgs/applications/misc/keepass/default.nix
@@ -2,12 +2,12 @@
   unzip, icoutils, gtk2, xorg, xdotool, xsel, coreutils, unixtools, glib, plugins ? [] }:
 
 with builtins; buildDotnetPackage rec {
-  baseName = "keepass";
-  version = "2.48.1";
+  pname = "keepass";
+  version = "2.49";
 
   src = fetchurl {
     url = "mirror://sourceforge/keepass/KeePass-${version}-Source.zip";
-    sha256 = "sha256-HkAgKPvf8TUgUlgsGWVgjuYJaRPGi8obOFQEtmzDtLE=";
+    sha256 = "sha256-1hg4bRuQSG+UzEQGeQcSURTmTxt5ITGQqfg0IS7RWt0=";
   };
 
   sourceRoot = ".";
@@ -76,7 +76,11 @@ with builtins; buildDotnetPackage rec {
     ];
   };
 
-  outputFiles = [ "Build/KeePass/Release/*" "Build/KeePassLib/Release/*" ];
+  outputFiles = [
+    "Build/KeePass/Release/*"
+    "Build/KeePassLib/Release/*"
+    "Ext/KeePass.config.xml" # contains <PreferUserConfiguration>true</PreferUserConfiguration>
+  ];
   dllFiles = [ "KeePassLib.dll" ];
   exeFiles = [ "KeePass.exe" ];
 
diff --git a/pkgs/applications/misc/koreader/default.nix b/pkgs/applications/misc/koreader/default.nix
index 3d11162241ebb..74319262d5ce9 100644
--- a/pkgs/applications/misc/koreader/default.nix
+++ b/pkgs/applications/misc/koreader/default.nix
@@ -13,12 +13,12 @@
 let font-droid = nerdfonts.override { fonts = [ "DroidSansMono" ]; };
 in stdenv.mkDerivation rec {
   pname = "koreader";
-  version = "2021.10.1";
+  version = "2021.12.1";
 
   src = fetchurl {
     url =
       "https://github.com/koreader/koreader/releases/download/v${version}/koreader-${version}-amd64.deb";
-    sha256 = "sha256-UpDwexBfjlne/uNMTtNjIyZb3TDMYFeDvtwtTFARovw=";
+    sha256 = "sha256-Ia0oCSGs6UYcvZVEhNpiOh3D08FgXqjqpgsQJojd3dk=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/applications/misc/kratos/default.nix b/pkgs/applications/misc/kratos/default.nix
index a616378e98928..a0b67042ecacc 100644
--- a/pkgs/applications/misc/kratos/default.nix
+++ b/pkgs/applications/misc/kratos/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kratos";
-  version = "0.7.6-alpha.1";
+  version = "0.8.0-alpha.3";
 
   src = fetchFromGitHub {
     owner = "ory";
     repo = "kratos";
     rev = "v${version}";
-    sha256 = "1412jckfsm0d5gn7fhjpj212xbsf43sfpd8hgcz3pxc0q37dzfgh";
+    sha256 = "0ihq2kxjackicxg0hrpmx6bsgz056xbaq3j8py37z2w6mwszarcg";
   };
 
-  vendorSha256 = "1gcdahs8x26kpwlng3wijqi12yjwj19v413wyyviim4vn1r4c0m7";
+  vendorSha256 = "175pckj30cm5xkbvsdvwzarvwapsylyjgj4ss8v5r1sa0fjpj008";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/misc/latte-dock/default.nix b/pkgs/applications/misc/latte-dock/default.nix
index b1ba735669992..6451a3efb70a9 100644
--- a/pkgs/applications/misc/latte-dock/default.nix
+++ b/pkgs/applications/misc/latte-dock/default.nix
@@ -3,11 +3,11 @@
 
 mkDerivation rec {
   pname = "latte-dock";
-  version = "0.10.0";
+  version = "0.10.4";
 
   src = fetchurl {
     url = "https://download.kde.org/stable/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "04kq86qmrjbzidrkknj000pv1b5z0r7nfidhy2zv67ks8fdi4zln";
+    sha256 = "XRop+MNcbeCcbnL2LM1i67QvMudW3CjWYEPLkT/qbGM=";
     name = "${pname}-${version}.tar.xz";
   };
 
diff --git a/pkgs/applications/misc/logseq/default.nix b/pkgs/applications/misc/logseq/default.nix
index 3dca98c2cc773..741a17be9ee4e 100644
--- a/pkgs/applications/misc/logseq/default.nix
+++ b/pkgs/applications/misc/logseq/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron_13 }:
+{ lib, stdenv, fetchurl, appimageTools, makeWrapper, electron }:
 
 stdenv.mkDerivation rec {
   pname = "logseq";
-  version = "0.4.6";
+  version = "0.5.4";
 
   src = fetchurl {
     url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage";
-    sha256 = "fGRPuv98sr3wcVbkVCJr2yKxBZ/IiQP854T9NBf/vCk=";
+    sha256 = "PGrx2JBYmp5vQ8jLpOfiT1T1+SNeRt0W5oHUjHNKuBE=";
     name = "${pname}-${version}.AppImage";
   };
 
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    makeWrapper ${electron_13}/bin/electron $out/bin/${pname} \
+    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
       --add-flags $out/share/${pname}/resources/app
   '';
 
diff --git a/pkgs/applications/misc/loxodo/default.nix b/pkgs/applications/misc/loxodo/default.nix
index 2e7a1365f4d2f..bcfd581edcf92 100644
--- a/pkgs/applications/misc/loxodo/default.nix
+++ b/pkgs/applications/misc/loxodo/default.nix
@@ -1,17 +1,17 @@
-{ lib, python2, fetchFromGitHub }:
+{ lib, python3, fetchFromGitHub }:
 
-python2.pkgs.buildPythonApplication {
+python3.pkgs.buildPythonApplication {
   pname = "loxodo";
-  version = "unstable-2015-01-24";
+  version = "unstable-2021-02-08";
 
   src = fetchFromGitHub {
     owner = "sommer";
     repo = "loxodo";
-    rev = "6c56efb4511fd6f645ad0f8eb3deafc8071c5795";
-    sha256 = "1cg0dfcv57ps54f1a0ksib7hgkrbdi9q699w302xyyfyvjcb5dd2";
+    rev = "7add982135545817e9b3e2bbd0d27a2763866133";
+    sha256 = "1cips4pvrqga8q1ibs23vjrf8dwan860x8jvjmc52h6qvvvv60yl";
   };
 
-  propagatedBuildInputs = with python2.pkgs; [ wxPython ];
+  propagatedBuildInputs = with python3.pkgs; [ six wxPython_4_0 ];
 
   postInstall = ''
     mv $out/bin/loxodo.py $out/bin/loxodo
@@ -20,13 +20,15 @@ python2.pkgs.buildPythonApplication {
     [Desktop Entry]
     Type=Application
     Exec=$out/bin/loxodo
-    Icon=$out/lib/${python2.libPrefix}/site-packages/resources/loxodo-icon.png
+    Icon=$out/lib/${python3.libPrefix}/site-packages/resources/loxodo-icon.png
     Name=Loxodo
     GenericName=Password Vault
     Categories=Application;Other;
     EOF
   '';
 
+  doCheck = false;  # Tests are interactive.
+
   meta = with lib; {
     description = "A Password Safe V3 compatible password vault";
     homepage = "https://www.christoph-sommer.de/loxodo/";
diff --git a/pkgs/applications/misc/lutris/fhsenv.nix b/pkgs/applications/misc/lutris/fhsenv.nix
index bd35d44b7cccd..88b3d253114d1 100644
--- a/pkgs/applications/misc/lutris/fhsenv.nix
+++ b/pkgs/applications/misc/lutris/fhsenv.nix
@@ -67,8 +67,6 @@ in buildFHSUserEnv {
 
     # Redream // "redream is not available for the x86_64 architecture"
 
-    # ResidualVM
-    flac
 
     # rpcs3 // TODO: "error while loading shared libraries: libz.so.1..."
     llvm
@@ -76,8 +74,11 @@ in buildFHSUserEnv {
     # ScummVM
     nasm sndio
 
+    # ResidualVM is now merged with ScummVM and therefore does not exist anymore
+    flac
+
     # Snes9x
-    epoxy minizip
+    libepoxy minizip
 
     # Vice
     bison flex
diff --git a/pkgs/applications/misc/maliit-framework/default.nix b/pkgs/applications/misc/maliit-framework/default.nix
new file mode 100644
index 0000000000000..6a6e66f293bda
--- /dev/null
+++ b/pkgs/applications/misc/maliit-framework/default.nix
@@ -0,0 +1,68 @@
+{ mkDerivation
+, lib
+, fetchFromGitHub
+
+, at-spi2-atk
+, at-spi2-core
+, libepoxy
+, gtk3
+, libdatrie
+, libselinux
+, libsepol
+, libthai
+, pcre
+, util-linux
+, wayland
+, xorg
+
+, cmake
+, doxygen
+, pkg-config
+, wayland-protocols
+}:
+
+mkDerivation rec {
+  pname = "maliit-framework";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "maliit";
+    repo = "framework";
+    rev = version;
+    sha256 = "138jyvw130kmrldksbk4l38gvvahh3x51zi4vyplad0z5nxmbazb";
+  };
+
+  buildInputs = [
+    at-spi2-atk
+    at-spi2-core
+    libepoxy
+    gtk3
+    libdatrie
+    libselinux
+    libsepol
+    libthai
+    pcre
+    util-linux
+    wayland
+    xorg.libXdmcp
+    xorg.libXtst
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    doxygen
+    pkg-config
+    wayland-protocols
+  ];
+
+  preConfigure = ''
+    cmakeFlags+="-DQT5_PLUGINS_INSTALL_DIR=$out/$qtPluginPrefix"
+  '';
+
+  meta = with lib; {
+    description = "Core libraries of Maliit and server";
+    homepage = "http://maliit.github.io/";
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ samueldr ];
+  };
+}
diff --git a/pkgs/applications/misc/maliit-keyboard/default.nix b/pkgs/applications/misc/maliit-keyboard/default.nix
new file mode 100644
index 0000000000000..fcbd6cbff19bd
--- /dev/null
+++ b/pkgs/applications/misc/maliit-keyboard/default.nix
@@ -0,0 +1,82 @@
+{ mkDerivation
+, lib
+, fetchFromGitHub
+, fetchpatch
+
+, anthy
+, hunspell
+, libchewing
+, libpinyin
+, maliit-framework
+, pcre
+, presage
+, qtfeedback
+, qtmultimedia
+, qtquickcontrols2
+, qtgraphicaleffects
+
+, cmake
+, pkg-config
+, wrapGAppsHook
+}:
+
+mkDerivation rec {
+  pname = "maliit-keyboard";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "maliit";
+    repo = "keyboard";
+    rev = version;
+    sha256 = "10dh0abxq90024dqq3fs8mjxww3igb4l09d19i2fq9f3flvh11hc";
+  };
+
+  patches = [
+    (fetchpatch {
+      # https://github.com/maliit/keyboard/pull/34
+      url = "https://github.com/maliit/keyboard/commit/9848a73b737ad46b5790ebf713a559d340c91b82.patch";
+      sha256 = "0qrsga0npahjrgbl6mycvl6d6vjm0d17i5jadcn7y6khbhq2y6rg";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace data/schemas/org.maliit.keyboard.maliit.gschema.xml \
+      --replace /usr/share "$out/share"
+  '';
+
+  buildInputs = [
+    anthy
+    hunspell
+    libchewing
+    libpinyin
+    maliit-framework
+    pcre
+    presage
+    qtfeedback
+    qtmultimedia
+    qtquickcontrols2
+    qtgraphicaleffects
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  postInstall = ''
+    glib-compile-schemas "$out"/share/glib-2.0/schemas
+  '';
+
+  meta = with lib; {
+    description = "Virtual keyboard";
+    homepage = "http://maliit.github.io/";
+    license = with licenses; [ lgpl3Only bsd3 cc-by-30 ];
+    maintainers = with maintainers; [ samueldr ];
+  };
+}
diff --git a/pkgs/applications/misc/marktext/default.nix b/pkgs/applications/misc/marktext/default.nix
index 1e71493e5fec0..0688c189e45e5 100644
--- a/pkgs/applications/misc/marktext/default.nix
+++ b/pkgs/applications/misc/marktext/default.nix
@@ -50,5 +50,6 @@ appimageTools.wrapType2 rec {
     license = licenses.mit;
     maintainers = with maintainers; [ nh2 ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "marktext";
   };
 }
diff --git a/pkgs/applications/misc/masterpdfeditor/default.nix b/pkgs/applications/misc/masterpdfeditor/default.nix
index 4f2f800ebd255..a1788587d701e 100644
--- a/pkgs/applications/misc/masterpdfeditor/default.nix
+++ b/pkgs/applications/misc/masterpdfeditor/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "masterpdfeditor";
-  version = "5.7.90";
+  version = "5.8.20";
 
   src = fetchurl {
     url = "https://code-industry.net/public/master-pdf-editor-${version}-qt5.x86_64.tar.gz";
-    sha256 = "sha256-wUHLesJ/YV3QyTJfGUr1lFD55JBnfSmjO2VvriaqlII=";
+    sha256 = "sha256-2YfjTRTC/ZvgnV4tEY4wwoqUeUG8+0SCYuRPBzQ8ba4=";
   };
 
   nativeBuildInputs = [ autoPatchelfHook wrapQtAppsHook ];
diff --git a/pkgs/applications/misc/megasync/default.nix b/pkgs/applications/misc/megasync/default.nix
index 438a468afa160..4b273981fa9ad 100644
--- a/pkgs/applications/misc/megasync/default.nix
+++ b/pkgs/applications/misc/megasync/default.nix
@@ -7,7 +7,8 @@
 , curl
 , doxygen
 , fetchFromGitHub
-#, ffmpeg
+, ffmpeg
+, freeimage
 , libmediainfo
 , libraw
 , libsodium
@@ -27,13 +28,13 @@
 }:
 mkDerivation rec {
   pname = "megasync";
-  version = "4.5.3.0";
+  version = "4.6.1.0";
 
   src = fetchFromGitHub {
     owner = "meganz";
     repo = "MEGAsync";
     rev = "v${version}_Linux";
-    sha256 = "1lwjmdbqyxx5wd8nx4mc830fna37jad4h93viwfh5x7sxn104js7";
+    sha256 = "0v2fvji9hs7valya0wx5qjx01c7yjld6nnp6m9gpxfkr30h5s5wb";
     fetchSubmodules = true;
   };
 
@@ -52,8 +53,8 @@ mkDerivation rec {
     c-ares
     cryptopp
     curl
-    # temporarily disable until patched for ffmpeg 4.4
-    #ffmpeg
+    ffmpeg
+    freeimage
     libmediainfo
     libraw
     libsodium
@@ -71,6 +72,7 @@ mkDerivation rec {
     ./noinstall-distro-version.patch
     # megasync target is not part of the install rule thanks to a commented block
     ./install-megasync.patch
+    ./ffmpeg_44.patch
   ];
 
   postPatch = ''
@@ -95,9 +97,8 @@ mkDerivation rec {
     "--with-cares"
     "--with-cryptopp"
     "--with-curl"
-    # temporarily disable until patched for ffmpeg 4.4
-    #"--with-ffmpeg"
-    "--without-freeimage" # unreferenced even when found
+    "--with-ffmpeg"
+    "--with-freeimage"
     "--without-readline"
     "--without-termcap"
     "--with-sodium"
diff --git a/pkgs/applications/misc/megasync/ffmpeg_44.patch b/pkgs/applications/misc/megasync/ffmpeg_44.patch
new file mode 100644
index 0000000000000..901635e43f3e6
--- /dev/null
+++ b/pkgs/applications/misc/megasync/ffmpeg_44.patch
@@ -0,0 +1,14 @@
+Index: megasync-4.6.1.0/src/MEGASync/mega/src/gfx/freeimage.cpp
+===================================================================
+--- megasync-4.6.1.0.orig/src/MEGASync/mega/src/gfx/freeimage.cpp
++++ megasync-4.6.1.0/src/MEGASync/mega/src/gfx/freeimage.cpp
+@@ -253,7 +253,8 @@ bool GfxProcFreeImage::readbitmapFfmpeg(
+ 
+     // Force seeking to key frames
+     formatContext->seek2any = false;
+-    videoStream->skip_to_keyframe = true;
++    // no longer exposed in ffmpeg 4.4; the line above should be sufficient
++    //videoStream->skip_to_keyframe = true;
+     if (decoder->capabilities & CAP_TRUNCATED)
+     {
+         codecContext->flags |= CAP_TRUNCATED;
diff --git a/pkgs/applications/misc/metadata-cleaner/default.nix b/pkgs/applications/misc/metadata-cleaner/default.nix
index d869164f66090..f113eed155fcc 100644
--- a/pkgs/applications/misc/metadata-cleaner/default.nix
+++ b/pkgs/applications/misc/metadata-cleaner/default.nix
@@ -9,7 +9,7 @@
 , itstool
 , libadwaita
 , librsvg
-, meson
+, meson_0_60
 , ninja
 , pkg-config
 , poppler_gi
@@ -18,7 +18,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "metadata-cleaner";
-  version = "2.0.1";
+  version = "2.1.3";
 
   format = "other";
 
@@ -26,7 +26,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "rmnvgr";
     repo = "metadata-cleaner";
     rev = "v${version}";
-    sha256 = "sha256-iTKs3DEZSzqRARXJKPPygvCS5JNUMbQBkfjacwd168Y=";
+    hash = "sha256-9sLjgqqQBXcudlBRmqAwWcWMUXoIUyAK272zaNKbJNY=";
   };
 
   nativeBuildInputs = [
@@ -35,7 +35,7 @@ python3.pkgs.buildPythonApplication rec {
     glib
     gtk4
     itstool
-    meson
+    meson_0_60
     ninja
     pkg-config
     wrapGAppsHook
diff --git a/pkgs/applications/misc/mkgmap/default.nix b/pkgs/applications/misc/mkgmap/default.nix
index 29c0dce205d05..74926b252eb55 100644
--- a/pkgs/applications/misc/mkgmap/default.nix
+++ b/pkgs/applications/misc/mkgmap/default.nix
@@ -14,11 +14,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mkgmap";
-  version = "4813";
+  version = "4836";
 
   src = fetchurl {
     url = "https://www.mkgmap.org.uk/download/mkgmap-r${version}-src.tar.gz";
-    sha256 = "Zx3j3ITsL3eOMVYxKLnfzwPMkr+BQ+soK+zhzYbnnak=";
+    sha256 = "nmEl7pN3LW6nqo5IB6GgzcDMHhdAsMySTdANVbybznY=";
   };
 
   patches = [
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Create maps for Garmin GPS devices from OpenStreetMap (OSM) data";
-    homepage = "http://www.mkgmap.org.uk";
+    homepage = "https://www.mkgmap.org.uk/";
     downloadPage = "https://www.mkgmap.org.uk/download/mkgmap.html";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ sikmir ];
diff --git a/pkgs/applications/misc/mkgmap/splitter/default.nix b/pkgs/applications/misc/mkgmap/splitter/default.nix
index 1684003fb760d..db89e538d51f6 100644
--- a/pkgs/applications/misc/mkgmap/splitter/default.nix
+++ b/pkgs/applications/misc/mkgmap/splitter/default.nix
@@ -13,11 +13,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "splitter";
-  version = "643";
+  version = "645";
 
   src = fetchurl {
     url = "https://www.mkgmap.org.uk/download/splitter-r${version}-src.tar.gz";
-    sha256 = "gyMCQAKnP4FDcHEgJiiftKhBEG9N92etpwKBnmIbzhU=";
+    sha256 = "Y9feRNDjmwUbSOwxfMIaYIycCvOBMihq5LkuKbALVDY=";
   };
 
   patches = [
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Utility for splitting OpenStreetMap maps into tiles";
-    homepage = "http://www.mkgmap.org.uk";
+    homepage = "https://www.mkgmap.org.uk/";
     downloadPage = "https://www.mkgmap.org.uk/download/splitter.html";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ sikmir ];
diff --git a/pkgs/applications/misc/mob/default.nix b/pkgs/applications/misc/mob/default.nix
index f558e520da867..eaa20b5e7e26c 100644
--- a/pkgs/applications/misc/mob/default.nix
+++ b/pkgs/applications/misc/mob/default.nix
@@ -2,14 +2,14 @@
 
 buildGoPackage rec {
   pname = "mob";
-  version = "2.0.0";
+  version = "2.1.0";
   goPackagePath = "github.com/remotemobprogramming/mob";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "remotemobprogramming";
     repo = pname;
-    sha256 = "sha256-sSeXL+eHroxDr+91rwmUJ+WwDgefZgJBRTxy4wo6DDM=";
+    sha256 = "sha256-K8ID8cetzCaMc/PVRNMyIhrshtEUiD6U/jI4e0TcOO4=";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/mobilecoin-wallet/default.nix b/pkgs/applications/misc/mobilecoin-wallet/default.nix
new file mode 100644
index 0000000000000..0ef26eea45a31
--- /dev/null
+++ b/pkgs/applications/misc/mobilecoin-wallet/default.nix
@@ -0,0 +1,39 @@
+{ lib, fetchurl, appimageTools }:
+
+let
+  pname = "mobilecoin-wallet";
+  version = "1.4.1";
+  name = "${pname}-${version}";
+  src = fetchurl {
+    url = "https://github.com/mobilecoinofficial/desktop-wallet/releases/download/v${version}/MobileCoin-Wallet-${version}.AppImage";
+    sha256 = "sha256-x5frHgkEz77pqSB6YANRtZmCzaK/RxRzMElLu49lxPk=";
+  };
+  appimageContents = appimageTools.extractType2 { inherit name src; };
+
+in appimageTools.wrapType2 {
+  inherit name src;
+
+  extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ pkgs.libsecret ];
+
+  extraInstallCommands = ''
+    mv $out/bin/${name} $out/bin/${pname}
+
+    mkdir -p $out/share/${pname}
+    cp -a ${appimageContents}/locales $out/share/${pname}
+    cp -a ${appimageContents}/resources $out/share/${pname}
+    cp -a ${appimageContents}/usr/share/icons $out/share/
+
+    install -Dm 644 ${appimageContents}/${pname}.desktop -t $out/share/applications/
+
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace "AppRun" "${pname}"
+  '';
+
+  meta = with lib; {
+    description = "A user-friendly desktop wallet with support for transaction history, encrypted contact book, gift codes, and payments";
+    homepage = "https://github.com/mobilecoinofficial/desktop-wallet";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ wolfangaukang ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/misc/moolticute/default.nix b/pkgs/applications/misc/moolticute/default.nix
index 653e8e9a1cc44..f29e3d52310e6 100644
--- a/pkgs/applications/misc/moolticute/default.nix
+++ b/pkgs/applications/misc/moolticute/default.nix
@@ -9,13 +9,13 @@
 
 mkDerivation rec {
   pname = "moolticute";
-  version = "0.52.0";
+  version = "0.53.2";
 
   src = fetchFromGitHub {
     owner = "mooltipass";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-6o0Tf6qBxCEOvfSuEP2Qz72T9Oexp95knRCtwImlpsA=";
+    sha256 = "sha256-CJVOmFX2wqftQt8j9Tlw93YBiTWE8l1RLprG0cmHeUE=";
   };
 
   outputs = [ "out" "udev" ];
diff --git a/pkgs/applications/misc/moz-phab/default.nix b/pkgs/applications/misc/moz-phab/default.nix
new file mode 100644
index 0000000000000..886e06a382bd5
--- /dev/null
+++ b/pkgs/applications/misc/moz-phab/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, mercurial
+# build inputs
+, distro
+, glean-sdk
+, python-hglib
+, sentry-sdk
+, setuptools
+}:
+
+buildPythonApplication rec {
+  pname = "moz-phab";
+  version = "0.1.99";
+
+  src = fetchPypi {
+    pname = "MozPhab";
+    inherit version;
+    sha256 = "sha256-uKoMMSp5AIvB1qTRYAh7n1+2dDLneFbssfkfTTshfcs=";
+  };
+
+  # Relax python-hglib requirement
+  # https://phabricator.services.mozilla.com/D131618
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "==" ">="
+  '';
+
+  propagatedBuildInputs = [
+    distro
+    glean-sdk
+    python-hglib
+    sentry-sdk
+    setuptools
+  ];
+  checkInputs = [
+    mercurial
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  meta = with lib; {
+    description = "Phabricator CLI from Mozilla to support submission of a series of commits";
+    longDescription = ''
+      moz-phab is a custom command-line tool, which communicates to
+      Phabricator’s API, providing several conveniences, including support for
+      submitting series of commits.
+    '';
+    homepage = "https://moz-conduit.readthedocs.io/en/latest/phabricator-user.html";
+    license = licenses.mpl20;
+    maintainers = [ maintainers.kvark ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/misc/mysql-workbench/default.nix b/pkgs/applications/misc/mysql-workbench/default.nix
index 63dde76fabcc9..9ba9f360402bf 100644
--- a/pkgs/applications/misc/mysql-workbench/default.nix
+++ b/pkgs/applications/misc/mysql-workbench/default.nix
@@ -33,7 +33,7 @@
 , proj
 , cairo
 , libxkbcommon
-, epoxy
+, libepoxy
 , wrapGAppsHook
 , at-spi2-core
 , dbus
@@ -126,7 +126,7 @@ in stdenv.mkDerivation rec {
     libpthreadstubs
     libXdmcp
     libxkbcommon
-    epoxy
+    libepoxy
     at-spi2-core
     dbus
   ];
diff --git a/pkgs/applications/misc/navi/default.nix b/pkgs/applications/misc/navi/default.nix
index 04fe08e1f3860..840db0400f540 100644
--- a/pkgs/applications/misc/navi/default.nix
+++ b/pkgs/applications/misc/navi/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchFromGitHub, fzf, lib, makeWrapper, rustPlatform, wget, libiconv }:
+{ stdenv, fetchFromGitHub, lib, makeWrapper, rustPlatform, wget, libiconv, withFzf ? true, fzf }:
 
 rustPlatform.buildRustPackage rec {
   pname = "navi";
-  version = "2.17.0";
+  version = "2.18.0";
 
   src = fetchFromGitHub {
     owner = "denisidoro";
     repo = "navi";
     rev = "v${version}";
-    sha256 = "sha256-WH8FfQ7cD4aFUi9iE0tR/B+5oWy8tMVmMLxusDwXF7w=";
+    sha256 = "sha256-JG0MZrvpx+cAFcZJK05GUI10PG53UmxjJjveAZA7k/M=";
   };
 
-  cargoSha256 = "sha256-TH9DNCoUVqH5g05Z4Vdv7F8CCLnaYezupI5FeJhYTaQ=";
+  cargoSha256 = "sha256-S2DBzeir6+JS1jfVxCQ68v4Rl7UBpghbtE+wdu341xw=";
 
   nativeBuildInputs = [ makeWrapper ];
 
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
   postInstall = ''
     wrapProgram $out/bin/navi \
       --prefix PATH : "$out/bin" \
-      --prefix PATH : ${lib.makeBinPath [ fzf wget ]}
+      --prefix PATH : ${lib.makeBinPath([ wget ] ++ lib.optionals withFzf [ fzf ])}
   '';
 
   checkFlags = [
diff --git a/pkgs/applications/misc/neo/default.nix b/pkgs/applications/misc/neo/default.nix
new file mode 100644
index 0000000000000..fda086c49d57b
--- /dev/null
+++ b/pkgs/applications/misc/neo/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+  pname = "neo";
+  version = "0.6";
+
+  src = fetchurl {
+    url = "https://github.com/st3w/neo/releases/download/v${version}/neo-${version}.tar.gz";
+    sha256 = "sha256-skXLT1td4dGdsu+wbX44Z2u5sDEOKXYVVys4Q6RayIk=";
+  };
+
+  buildInputs = [ ncurses ];
+
+  meta = with lib; {
+    description = ''Simulates the digital rain from "The Matrix"'';
+    license = licenses.gpl3Plus;
+    longDescription = ''
+      neo recreates the digital rain effect from "The Matrix". Streams of random
+      characters will endlessly scroll down your terminal screen.
+    '';
+    homepage = "https://github.com/st3w/neo";
+    platforms = ncurses.meta.platforms;
+    maintainers = [ maintainers.abbe ];
+  };
+}
diff --git a/pkgs/applications/misc/nnn/default.nix b/pkgs/applications/misc/nnn/default.nix
index 8999c3b8f95ea..8ea024320c3ed 100644
--- a/pkgs/applications/misc/nnn/default.nix
+++ b/pkgs/applications/misc/nnn/default.nix
@@ -20,13 +20,13 @@ assert withNerdIcons -> withIcons == false;
 
 stdenv.mkDerivation rec {
   pname = "nnn";
-  version = "4.3";
+  version = "4.4";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-kiLmdEyOnD1wPS2GuFF5nTK9tgUOI6PVCzCRZXdObEo=";
+    sha256 = "sha256-g9GaCc/IWKtih0/A2AZEPImjj7ymJIdYwC5I/6GUh5c=";
   };
 
   configFile = lib.optionalString (conf != null) (builtins.toFile "nnn.h" conf);
diff --git a/pkgs/applications/misc/noice/default.nix b/pkgs/applications/misc/noice/default.nix
index 73648d896d08f..e67346c517159 100644
--- a/pkgs/applications/misc/noice/default.nix
+++ b/pkgs/applications/misc/noice/default.nix
@@ -12,6 +12,12 @@ stdenv.mkDerivation rec {
     sha256 = "0975j4m93s9a21pazwdzn4gqhkngwq7q6ghp0q8a75r6c4fb7aar";
   };
 
+  postPatch = ''
+    # Add support for ncurses-6.3. Can be dropped with 0.9 release.
+    # Fixed upstream at: https://git.2f30.org/noice/commit/53c35e6b340b7c135038e00057a198f03cb7d7cf.html
+    substituteInPlace noice.c --replace 'printw(str);' 'printw("%s", str);'
+  '';
+
   configFile = optionalString (conf!=null) (builtins.toFile "config.def.h" conf);
   preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
 
diff --git a/pkgs/applications/misc/nwg-panel/default.nix b/pkgs/applications/misc/nwg-panel/default.nix
index 24697611622a8..6798e73c9314c 100644
--- a/pkgs/applications/misc/nwg-panel/default.nix
+++ b/pkgs/applications/misc/nwg-panel/default.nix
@@ -13,13 +13,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "nwg-panel";
-  version = "0.4.3";
+  version = "0.5.4";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = "nwg-panel";
     rev = "v${version}";
-    sha256 = "1ihwrs0h2kcw0jw9zq43a9m1qaxllqmbvz0wyv73sgh9zsid5733";
+    sha256 = "0vl9vfgpa1byf9vxn03j58h9zcbjd1y83b0kgv97cxm2mhqz12dg";
   };
 
   # No tests
diff --git a/pkgs/applications/misc/obsidian/default.nix b/pkgs/applications/misc/obsidian/default.nix
index f293cc60d2a7b..f8934dafc58b6 100644
--- a/pkgs/applications/misc/obsidian/default.nix
+++ b/pkgs/applications/misc/obsidian/default.nix
@@ -31,11 +31,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "obsidian";
-  version = "0.12.19";
+  version = "0.13.14";
 
   src = fetchurl {
     url = "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.tar.gz";
-    sha256 = "sha256-M9U67+mCL/CziTprCAhfrZTWl6i7HRfH24l/xqUqkIg=";
+    sha256 = "0d55lk643yqjz4s6j5lbrdkf9f7wmwlz9ahjx760rzqpzy5190nr";
   };
 
   nativeBuildInputs = [ makeWrapper graphicsmagick ];
diff --git a/pkgs/applications/misc/octoprint/default.nix b/pkgs/applications/misc/octoprint/default.nix
index e8f28479a3bcf..8906e8d092144 100644
--- a/pkgs/applications/misc/octoprint/default.nix
+++ b/pkgs/applications/misc/octoprint/default.nix
@@ -122,6 +122,45 @@ let
           }
         )
 
+        # Octoprint pulls in celery indirectly but has no support for the up-to-date releases
+        (
+          self: super: {
+            celery = super.celery.overrideAttrs (oldAttrs: rec {
+              version = "5.0.0";
+              src = oldAttrs.src.override {
+                inherit version;
+                sha256 = "sha256-MTkw/d3nA9jjcCmjBL+RQpzRGu72PFfebayp2Vjh8lU=";
+              };
+              doCheck = false;
+            });
+          }
+        )
+
+        # Octoprint would allow later sentry-sdk releases but not later click releases
+        (
+          self: super: {
+            sentry-sdk = super.sentry-sdk.overrideAttrs (oldAttrs: rec {
+              pname = "sentry-sdk";
+              version = "1.4.3";
+
+              src = fetchFromGitHub {
+                owner = "getsentry";
+                repo = "sentry-python";
+                rev = version;
+                sha256 = "sha256-vdE6eqELMM69CWHaNYhF0HMCTV3tQsJlMHAA96oCy8c=";
+              };
+              disabledTests = [
+                "test_apply_simulates_delivery_info"
+                "test_auto_enabling_integrations_catches_import_error"
+              ];
+              disabledTestPaths = [
+                # Don't test integrations
+                "tests/integrations"
+              ];
+            });
+          }
+        )
+
         # Built-in dependency
         (
           self: super: {
@@ -237,9 +276,15 @@ let
                 wrapt
                 zeroconf
                 zipstream-new
-              ] ++ lib.optionals stdenv.isDarwin [ py.pkgs.appdirs ];
+              ] ++ lib.optionals stdenv.isDarwin [
+                py.pkgs.appdirs
+              ];
 
-              checkInputs = with super; [ pytestCheckHook mock ddt ];
+              checkInputs = with super; [
+                ddt
+                mock
+                pytestCheckHook
+              ];
 
               patches = [
                 # substitute pip and let it find out, that it can't write anywhere
@@ -261,6 +306,7 @@ let
                   "colorlog"
                   "emoji"
                   "immutabledict"
+                  "sarge"
                   "sentry-sdk"
                   "watchdog"
                   "wrapt"
@@ -299,7 +345,7 @@ let
               meta = with lib; {
                 homepage = "https://octoprint.org/";
                 description = "The snappy web interface for your 3D printer";
-                license = licenses.agpl3;
+                license = licenses.agpl3Only;
                 maintainers = with maintainers; [ abbradar gebner WhittlesJr ];
               };
             };
diff --git a/pkgs/applications/misc/openrgb/default.nix b/pkgs/applications/misc/openrgb/default.nix
index eeff215679ad3..284339b13ee5a 100644
--- a/pkgs/applications/misc/openrgb/default.nix
+++ b/pkgs/applications/misc/openrgb/default.nix
@@ -1,18 +1,18 @@
-{ lib, mkDerivation, fetchFromGitLab, qmake, libusb1, hidapi, pkg-config, coreutils }:
+{ lib, mkDerivation, fetchFromGitLab, qmake, libusb1, hidapi, pkg-config, coreutils, mbedtls }:
 
 mkDerivation rec {
   pname = "openrgb";
-  version = "0.6";
+  version = "0.7";
 
   src = fetchFromGitLab {
     owner = "CalcProgrammer1";
     repo = "OpenRGB";
     rev = "release_${version}";
-    sha256 = "sha256-x/wGD39Jm/kmcTEZP3BnLXxyv/jkPOJd6mLCO0dp5wM=";
+    sha256 = "0xhfaz0b74nfnh7il2cz5c0338xlzay00g6hc2h3lsncarj8d5n7";
   };
 
   nativeBuildInputs = [ qmake pkg-config ];
-  buildInputs = [ libusb1 hidapi ];
+  buildInputs = [ libusb1 hidapi mbedtls ];
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/applications/misc/openring/default.nix b/pkgs/applications/misc/openring/default.nix
index 248c33c4dea34..3a3db0242bdea 100644
--- a/pkgs/applications/misc/openring/default.nix
+++ b/pkgs/applications/misc/openring/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "openring";
-  version = "unstable-2021-06-28";
+  version = "1.0.1";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = pname;
-    rev = "e566294050776355ca0d3bfd7a1f6f70767cd08b";
-    sha256 = "sha256-h9Tout3KGiv6jbq9Ui3crb5NdTOHcn7BIy+aPoWG5sM=";
+    rev = version;
+    sha256 = "sha256-BY2AtgZXzPLqHk3hd6D+XXbrwvWS9DNTKwLqsua/3uw=";
   };
 
   vendorSha256 = "sha256-BbBTmkGyLrIWphXC+dBaHaVzHuXRZ+4N/Jt2k3nF7Z4=";
@@ -18,7 +18,7 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "A webring for static site generators";
-    homepage = "https://git.sr.ht/~sircmpwn/openring";
+    homepage = "https://sr.ht/~sircmpwn/openring";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ sumnerevans ];
   };
diff --git a/pkgs/applications/misc/orca/default.nix b/pkgs/applications/misc/orca/default.nix
index 688d5acdd1278..a558ac67f7d19 100644
--- a/pkgs/applications/misc/orca/default.nix
+++ b/pkgs/applications/misc/orca/default.nix
@@ -34,13 +34,13 @@
 
 buildPythonApplication rec {
   pname = "orca";
-  version = "41.0";
+  version = "41.1";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "dpflFEXhn9d05osWCtr2aHuAgXLeBBdgLhaXZra21L0=";
+    sha256 = "H9ArmQlPCfbnLfd54actzkFCfsguJFpOqDIzqX7tonE=";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/otpclient/default.nix b/pkgs/applications/misc/otpclient/default.nix
index b15eb1a78b429..364bb6c80deb7 100644
--- a/pkgs/applications/misc/otpclient/default.nix
+++ b/pkgs/applications/misc/otpclient/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "otpclient";
-  version = "2.4.4";
+  version = "2.4.7";
 
   src = fetchFromGitHub {
     owner = "paolostivanin";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0zjvhcx9q8nsf97zikddxriky0kghi4j4i7312s94pl8c7kb4abr";
+    sha256 = "sha256-UR7h+btmOSnpjkrQMiABcM1tOFjOhNVWuKYDF9qXfFo=";
   };
 
   buildInputs = [ gtk3 jansson libgcrypt libzip libpng libcotp zbar ];
diff --git a/pkgs/applications/misc/p2pool/default.nix b/pkgs/applications/misc/p2pool/default.nix
new file mode 100644
index 0000000000000..0776cc6572cb0
--- /dev/null
+++ b/pkgs/applications/misc/p2pool/default.nix
@@ -0,0 +1,43 @@
+{ stdenv
+, cmake
+, fetchFromGitHub
+, gss
+, hwloc
+, lib
+, libsodium
+, libuv
+, openssl
+, pkg-config
+, zeromq
+}:
+
+stdenv.mkDerivation rec {
+  pname = "p2pool";
+  version = "1.4";
+
+  src = fetchFromGitHub {
+    owner = "SChernykh";
+    repo = "p2pool";
+    rev = "v${version}";
+    sha256 = "sha256-syeVRweQJTNzKVl9FuIQl36WwzoI/oV2ULZbSGiDkv0=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ libuv zeromq libsodium gss hwloc openssl ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -vD p2pool $out/bin/p2pool
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Decentralized pool for Monero mining";
+    homepage = "https://github.com/SChernykh/p2pool";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ ratsclub ];
+  };
+}
diff --git a/pkgs/applications/misc/pdfarranger/default.nix b/pkgs/applications/misc/pdfarranger/default.nix
index dd7d3f4768ef9..04324a090a8f6 100644
--- a/pkgs/applications/misc/pdfarranger/default.nix
+++ b/pkgs/applications/misc/pdfarranger/default.nix
@@ -5,13 +5,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "pdfarranger";
-  version = "1.8.0";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "0xfxcwb24rp0kni2b4wdk6fvhqnhd6fh559ag6wdr4sspzkqwdjf";
+    sha256 = "1lcmlr7x4143f7wcn0m1ijlvch07nww2qfp3jfnacgy889ijvbfx";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/pdfsam-basic/default.nix b/pkgs/applications/misc/pdfsam-basic/default.nix
index 9aed6daa5c313..c840f7c72a072 100644
--- a/pkgs/applications/misc/pdfsam-basic/default.nix
+++ b/pkgs/applications/misc/pdfsam-basic/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pdfsam-basic";
-  version = "4.2.7";
+  version = "4.2.8";
 
   src = fetchurl {
     url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam_${version}-1_amd64.deb";
-    sha256 = "sha256-PVG4KZX6KxkrooywgEmqOItyLt5hGs+b/KCaguduGyc=";
+    sha256 = "sha256-bbGFSy2ZuUtFWyAgje6s+RSQ6S7NZGAhjvZMbIWfYhE=";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/misc/pdfstudio/default.nix b/pkgs/applications/misc/pdfstudio/default.nix
new file mode 100644
index 0000000000000..dcb35c41da766
--- /dev/null
+++ b/pkgs/applications/misc/pdfstudio/default.nix
@@ -0,0 +1,91 @@
+{ stdenv,
+  lib,
+  makeWrapper,
+  fetchurl,
+  dpkg,
+  makeDesktopItem,
+  copyDesktopItems,
+  autoPatchelfHook,
+  gst_all_1,
+  sane-backends,
+  xorg,
+  gnome2,
+  alsa-lib,
+  libgccjit,
+  jdk11
+  }:
+
+let
+  year = "2021";
+  major = "1";
+  minor = "1";
+in stdenv.mkDerivation rec {
+  pname = "pdfstudio";
+  version = "${year}.${major}.${minor}";
+  autoPatchelfIgnoreMissingDeps = true;
+
+  src = fetchurl {
+    url = "https://download.qoppa.com/${pname}/v${year}/PDFStudio_v${year}_${major}_${minor}_linux64.deb";
+    sha256 = "089jfpbsxwjhx245g8svlmg213kny3z5nl6ra1flishnrsfjjcxb";
+  };
+
+  nativeBuildInputs = [
+    gst_all_1.gst-libav
+    sane-backends
+    xorg.libXxf86vm
+    xorg.libXtst
+    gnome2.libgtkhtml
+    alsa-lib
+    libgccjit
+    autoPatchelfHook
+    makeWrapper
+    dpkg
+    copyDesktopItems
+    jdk11 # only for unpacking .jar.pack files
+  ];
+
+  desktopItems = [(makeDesktopItem {
+       name = "${pname}${year}";
+       desktopName = "PDF Studio";
+       genericName = "View and edit PDF files";
+       exec = "${pname} %f";
+       icon = "${pname}${year}";
+       comment = "Views and edits PDF files";
+       mimeType = "application/pdf";
+       categories = "Office";
+       type = "Application";
+       terminal = false;
+  })];
+
+  unpackPhase = "dpkg-deb -x $src .";
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    mkdir -p $out/share
+    mkdir -p $out/share/applications
+    mkdir -p $out/share/pixmaps
+    cp -r opt/${pname}${year} $out/share/
+    ln -s $out/share/${pname}${year}/.install4j/${pname}${year}.png  $out/share/pixmaps/
+    makeWrapper $out/share/${pname}${year}/${pname}${year} $out/bin/${pname}
+
+    #Unpack jar files. Otherwise pdfstudio does this and fails due to read-only FS.
+    for pfile in $out/share/${pname}${year}/jre/lib/{,ext/}*.jar.pack; do
+      jar_file=`echo "$pfile" | awk '{ print substr($0,1,length($0)-5) }'`
+      unpack200 -r "$pfile" "$jar_file"
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.qoppa.com/pdfstudio/";
+    description = "An easy to use, full-featured PDF editing software";
+    license = licenses.unfree;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.pwoelfel ];
+  };
+}
diff --git a/pkgs/applications/misc/phoc/default.nix b/pkgs/applications/misc/phoc/default.nix
index 97613b21957b2..1a590af94655b 100644
--- a/pkgs/applications/misc/phoc/default.nix
+++ b/pkgs/applications/misc/phoc/default.nix
@@ -32,11 +32,24 @@ let
         url = "https://github.com/swaywm/wlroots/commit/e18599b05e0f0cbeba11adbd489e801285470eab.patch";
         sha256 = "17ax4dyk0584yhs3lq8ija5bkainjf7psx9c9r50cr4jm9c0i37l";
       })
+
+      # xwayland: Allow to retrieve _NET_STARTUP_ID
+      (fetchpatch {
+        name = "allow-to-retrieve-net-startup-id.patch";
+        url = "https://github.com/swaywm/wlroots/commit/66593071bc90a1cccaeedc636eb6f33c973f5362.patch";
+        sha256 = "sha256-yKf/twdUzrII5IakH7AH6LGyPDo9Nl/gIB0pTThSTfY=";
+      })
+      # xwayland: Allow to retrieve startup-id via _NET_STARTUP_INFO
+      (fetchpatch {
+        name = "allow-to-retrieve-startup-id-via-net-startup-info.patch";
+        url = "https://github.com/swaywm/wlroots/commit/235bb6f2fcb8ee4174215ba74b5bc2f191c5960a.patch";
+        sha256 = "sha256-7AWBq12tF/781CmgvTaOvTIiiJMywxRn6eWp+jacdak=";
+      })
     ];
   });
 in stdenv.mkDerivation rec {
   pname = "phoc";
-  version = "0.8.0";
+  version = "0.9.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
@@ -44,7 +57,7 @@ in stdenv.mkDerivation rec {
     owner = "Phosh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-QAnJlpFjWJvwxGyenmN4IaI9VFn2jwdXpa8VqAmH7Xw=";
+    sha256 = "sha256-qd1ZETM2/AjU5nKQIqh0Q+SboLNr+NncvSHgLv2S3KI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/plover/default.nix b/pkgs/applications/misc/plover/default.nix
index 68721c846f748..8f4bf10b1007b 100644
--- a/pkgs/applications/misc/plover/default.nix
+++ b/pkgs/applications/misc/plover/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, python27Packages, python3Packages, wmctrl,
+{ lib, fetchFromGitHub, python27Packages, python3Packages, wmctrl,
   qtbase, mkDerivationWith }:
 
 {
@@ -12,9 +12,11 @@
       license     = licenses.gpl2;
     };
 
-    src = fetchurl {
-      url    = "https://github.com/openstenoproject/plover/archive/v${version}.tar.gz";
-      sha256 = "1hdg5491phx6svrxxsxp8v6n4b25y7y4wxw7x3bxlbyhaskgj53r";
+    src = fetchFromGitHub {
+      owner = "openstenoproject";
+      repo = "plover";
+      rev = "v${version}";
+      sha256 = "sha256-LIhTwHMphg+xTR9NKvjAZ6p0mmqPNcZd9C4cgnenmYQ=";
     };
 
     nativeBuildInputs     = [ setuptools-scm ];
@@ -34,9 +36,11 @@
       license     = licenses.gpl2;
     };
 
-    src = fetchurl {
-      url    = "https://github.com/openstenoproject/plover/archive/v${version}.tar.gz";
-      sha256 = "sha256-Eun+ZgmOIjYw6FS/2OGoBvYh52U/Ue0+NtIqrvV2Tqc=";
+    src = fetchFromGitHub {
+      owner = "openstenoproject";
+      repo = "plover";
+      rev = "v${version}";
+      sha256 = "sha256-oJ7+R3ZWhUbNTTAw1AfMg2ur8vW1XEbsa5FgSTam1Ns=";
     };
 
     # I'm not sure why we don't find PyQt5 here but there's a similar
diff --git a/pkgs/applications/misc/privacyidea/default.nix b/pkgs/applications/misc/privacyidea/default.nix
index b8e4ebf841cd7..912cb9b94b1be 100644
--- a/pkgs/applications/misc/privacyidea/default.nix
+++ b/pkgs/applications/misc/privacyidea/default.nix
@@ -22,24 +22,37 @@ let
       });
       werkzeug = self.callPackage ../../../development/python-modules/werkzeug/1.nix { };
       flask = self.callPackage ../../../development/python-modules/flask/1.nix { };
+      sqlsoup = super.sqlsoup.overrideAttrs ({ meta ? {}, ... }: {
+        meta = meta // { broken = false; };
+      });
+      pyjwt = super.pyjwt.overridePythonAttrs (oldAttrs: rec {
+        version = "1.7.1";
+        src = python3.pkgs.fetchPypi {
+          pname = "PyJWT";
+          inherit version;
+          sha256 = "sha256-jVmpdvt3Pz5qOchWNjV8Tw4kJwc5TK2t2YFPXLqiDpY=";
+        };
+        # requires different testing dependencies, and privacyIDEA will test this as well
+        doCheck = false;
+      });
     };
   };
 in
 python3'.pkgs.buildPythonPackage rec {
   pname = "privacyIDEA";
-  version = "3.6.2";
+  version = "3.6.3";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-kv6XqsbGkaGEhfNxSOjCe6JbFOJnuqwM8CR/J9lJjks=";
+    sha256 = "sha256-SsOEmbyEAKU3pdzsyqi5SwDgJMGEAzyCywoio9iFQAA=";
     fetchSubmodules = true;
   };
 
   propagatedBuildInputs = with python3'.pkgs; [
     cryptography pyrad pymysql python-dateutil flask-versioned flask_script
-    defusedxml croniter flask_migrate pyjwt1 configobj sqlsoup pillow
+    defusedxml croniter flask_migrate pyjwt configobj sqlsoup pillow
     python-gnupg passlib pyopenssl beautifulsoup4 smpplib flask-babel
     ldap3 huey pyyaml qrcode oauth2client requests lxml cbor2 psycopg2
     pydash ecdsa google-auth importlib-metadata
diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix
index 88086ef136315..f66bb4a3b7750 100644
--- a/pkgs/applications/misc/prusa-slicer/default.nix
+++ b/pkgs/applications/misc/prusa-slicer/default.nix
@@ -1,10 +1,10 @@
 { stdenv, lib, fetchFromGitHub, cmake, copyDesktopItems, makeDesktopItem, pkg-config, wrapGAppsHook
 , boost, cereal, cgal_5, curl, dbus, eigen, expat, glew, glib, gmp, gtest, gtk3, hicolor-icon-theme
-, ilmbase, libpng, mpfr, nlopt, openvdb, pcre, qhull, systemd, tbb, wxGTK31-gtk3, xorg
+, ilmbase, libpng, mpfr, nlopt, openvdb, pcre, qhull, systemd, tbb, wxGTK31-gtk3, xorg, fetchpatch
 }:
 stdenv.mkDerivation rec {
   pname = "prusa-slicer";
-  version = "2.3.3";
+  version = "2.4.0";
 
   nativeBuildInputs = [
     cmake
@@ -38,9 +38,19 @@ stdenv.mkDerivation rec {
     xorg.libX11
   ] ++ checkInputs;
 
+  patches = [
+    # Fix detection of TBB, see https://github.com/prusa3d/PrusaSlicer/issues/6355
+    (fetchpatch {
+      url = "https://github.com/prusa3d/PrusaSlicer/commit/76f4d6fa98bda633694b30a6e16d58665a634680.patch";
+      sha256 = "1r806ycp704ckwzgrw1940hh1l6fpz0k1ww3p37jdk6mygv53nv6";
+    })
+  ];
+
   doCheck = true;
   checkInputs = [ gtest ];
 
+  separateDebugInfo = true;
+
   # The build system uses custom logic - defined in
   # cmake/modules/FindNLopt.cmake in the package source - for finding the nlopt
   # library, which doesn't pick up the package in the nix store.  We
@@ -56,11 +66,6 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = "-ludev";
 
   prePatch = ''
-    # In nix ioctls.h isn't available from the standard kernel-headers package
-    # like in other distributions. The copy in glibc seems to be identical to the
-    # one in the kernel though, so we use that one instead.
-    sed -i 's|"/usr/include/asm-generic/ioctls.h"|<asm-generic/ioctls.h>|g' src/libslic3r/GCodeSender.cpp
-
     # Since version 2.5.0 of nlopt we need to link to libnlopt, as libnlopt_cxx
     # now seems to be integrated into the main lib.
     sed -i 's|nlopt_cxx|nlopt|g' cmake/modules/FindNLopt.cmake
@@ -69,7 +74,7 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "prusa3d";
     repo = "PrusaSlicer";
-    sha256 = "0w0synqi3iz9aigsgv6x1c6sg123fasbx19h4w3ic1l48r8qmpwm";
+    sha256 = "1mb7v0khrmsgy3inmh4mjn709jlhx422kvbnrhsqziph2wwak9bz";
     rev = "version_${version}";
   };
 
diff --git a/pkgs/applications/misc/prusa-slicer/super-slicer.nix b/pkgs/applications/misc/prusa-slicer/super-slicer.nix
index 9762927166110..384ca820d5056 100644
--- a/pkgs/applications/misc/prusa-slicer/super-slicer.nix
+++ b/pkgs/applications/misc/prusa-slicer/super-slicer.nix
@@ -5,8 +5,8 @@ let
   description = "PrusaSlicer fork with more features and faster development cycle";
 
   versions = {
-    stable = { version = "2.3.56.9"; sha256 = "sha256-vv01wGQkrasKKjpGSDeDqZbd1X5/iTfGXYN5Jwz+FKE="; };
-    latest = { version = "2.3.57.6"; sha256 = "sha256-ZCOtVmvNXDWLo9UMzxARCp+iyRTcy/ogd5sV0k86JG8="; };
+    stable = { version = "2.3.57.8"; sha256 = "sha256-k1G9sFukYyCqVeJIbYgjJX9T8zqmFTmjmj9OXZ78+LY="; };
+    latest = { version = "2.3.57.8"; sha256 = "sha256-k1G9sFukYyCqVeJIbYgjJX9T8zqmFTmjmj9OXZ78+LY="; };
   };
 
   override = { version, sha256 }: super: {
@@ -20,6 +20,8 @@ let
       fetchSubmodules = true;
     };
 
+    patches = null;
+
     # We don't need PS overrides anymore, and gcode-viewer is embedded in the binary.
     postInstall = null;
     separateDebugInfo = true;
@@ -46,6 +48,7 @@ let
       homepage = "https://github.com/supermerili/SuperSlicer";
       license = licenses.agpl3;
       maintainers = with maintainers; [ cab404 moredread ];
+      mainProgram = "superslicer";
     };
 
     passthru = allVersions;
diff --git a/pkgs/applications/misc/pwsafe/default.nix b/pkgs/applications/misc/pwsafe/default.nix
index 534f6adecdf8d..3549fead8e283 100644
--- a/pkgs/applications/misc/pwsafe/default.nix
+++ b/pkgs/applications/misc/pwsafe/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, zip, gettext, perl
+{ lib, stdenv, fetchFromGitHub
+, cmake, pkg-config, zip, gettext, perl
 , wxGTK30, libXext, libXi, libXt, libXtst, xercesc
 , qrencode, libuuid, libyubikey, yubikey-personalization
 , curl, openssl, file
@@ -6,13 +7,14 @@
 
 stdenv.mkDerivation rec {
   pname = "pwsafe";
-  version = "3.56.0";
+  version = "1.14.0"; # do NOT update to 3.x Windows releases
+  # nixpkgs-update: no auto update
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-ZLX/3cs1cdia5+32QEwE6q3V0uFNkkmiIGboKW6Xej8=";
+    hash = "sha256-s3IXe4gTwUOzQslNfWrcN/srrG9Jv02zfkGgiZN3C1s=";
   };
 
   nativeBuildInputs = [
@@ -32,19 +34,19 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     # Fix perl scripts used during the build.
-    for f in `find . -type f -name '*.pl'`; do
+    for f in $(find . -type f -name '*.pl') ; do
       patchShebangs $f
     done
 
     # Fix hard coded paths.
-    for f in `grep -Rl /usr/share/ src`; do
+    for f in $(grep -Rl /usr/share/ src) ; do
       substituteInPlace $f --replace /usr/share/ $out/share/
     done
 
     # Fix hard coded zip path.
     substituteInPlace help/Makefile.linux --replace /usr/bin/zip ${zip}/bin/zip
 
-    for f in `grep -Rl /usr/bin/ .`; do
+    for f in $(grep -Rl /usr/bin/ .) ; do
       substituteInPlace $f --replace /usr/bin/ ""
     done
   '';
diff --git a/pkgs/applications/misc/qtbitcointrader/default.nix b/pkgs/applications/misc/qtbitcointrader/default.nix
index 1bdcd6ea8a6f6..d158c111c87ff 100644
--- a/pkgs/applications/misc/qtbitcointrader/default.nix
+++ b/pkgs/applications/misc/qtbitcointrader/default.nix
@@ -1,15 +1,14 @@
-{ lib, fetchzip, qt5, mkDerivation }:
+{ lib, fetchFromGitHub, qt5, mkDerivation }:
 
-let
-  version = "1.40.43";
-in
-mkDerivation {
+mkDerivation rec {
   pname = "qtbitcointrader";
-  inherit version;
+  version = "1.40.43";
 
-  src = fetchzip {
-    url = "https://github.com/JulyIGHOR/QtBitcoinTrader/archive/v${version}.tar.gz";
-    sha256 = "07xbsi78cykpyxidp1bw5ahmymdrs2afg7b0lla7dfhagz18lzxv";
+  src = fetchFromGitHub {
+    owner = "JulyIGHOR";
+    repo = "QtBitcoinTrader";
+    rev = "v${version}";
+    sha256 = "sha256-u3+Kwn8KunYUpWCd55TQuVVfoSp8hdti93d6hk7Uqx8=";
   };
 
   buildInputs = [ qt5.qtbase qt5.qtmultimedia qt5.qtscript ];
diff --git a/pkgs/applications/misc/redshift/575.patch b/pkgs/applications/misc/redshift/575.patch
index d731d8ec43ad4..f5beeb6ce5187 100644
--- a/pkgs/applications/misc/redshift/575.patch
+++ b/pkgs/applications/misc/redshift/575.patch
@@ -1,5 +1,5 @@
 From 467156efccc5e36a36bec8c0b64cc5a70f14d5ed Mon Sep 17 00:00:00 2001
-From: Yegor Timoshenko <yegortimoshenko@riseup.net>
+From: Yana Timoshenko <yana@riseup.net>
 Date: Tue, 16 Jan 2018 11:43:46 +0000
 Subject: [PATCH] Fix Autoconf script
 
diff --git a/pkgs/applications/misc/redshift/default.nix b/pkgs/applications/misc/redshift/default.nix
index 5798473db5e0f..311c28db556aa 100644
--- a/pkgs/applications/misc/redshift/default.nix
+++ b/pkgs/applications/misc/redshift/default.nix
@@ -108,7 +108,7 @@ rec {
       license = licenses.gpl3Plus;
       homepage = "http://jonls.dk/redshift";
       platforms = platforms.unix;
-      maintainers = with maintainers; [ yegortimoshenko globin ];
+      maintainers = with maintainers; [ globin yana ];
     };
   };
 
diff --git a/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix b/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix
index a4012eaed7260..7805c06bd6fbe 100644
--- a/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix
+++ b/pkgs/applications/misc/remarkable/remarkable-mouse/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonApplication rec {
   pname = "remarkable-mouse";
-  version = "6.0.0";
+  version = "7.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "46eff5d6a07ca60ed652d09eeee9b4c4566da422be4a3dfa2fcd452a3df65ac1";
+    sha256 = "0c67cd1ef4c46290cb74731c163c3fefc35590cd24749ec354af23012984d99e";
   };
 
   propagatedBuildInputs = with python3Packages; [ screeninfo paramiko pynput libevdev ];
diff --git a/pkgs/applications/misc/remarkable/restream/default.nix b/pkgs/applications/misc/remarkable/restream/default.nix
index f2ce2bd441c26..c383baaaa9e22 100644
--- a/pkgs/applications/misc/remarkable/restream/default.nix
+++ b/pkgs/applications/misc/remarkable/restream/default.nix
@@ -5,22 +5,21 @@
 , ffmpeg-full
 , fetchFromGitHub
 , openssh
+, netcat
 , makeWrapper
 }:
 
 stdenv.mkDerivation rec {
   pname = "restream";
-  version = "1.1";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "rien";
     repo = pname;
     rev = version;
-    sha256 = "18z17chl7r5dg12xmr3f9gbgv97nslm8nijigd03iysaj6dhymp3";
+    sha256 = "0vyj0kng8c9inv2rbw1qdr43ic15s5x8fvk9mbw0vpc6g723x99g";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
-
   dontConfigure = true;
   dontBuild = true;
 
@@ -33,10 +32,22 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  postInstall = ''
-    # `ffmpeg-full` is used here to bring in `ffplay`, which is used to display
-    # the reMarkable framebuffer
-    wrapProgram "$out/bin/restream" --suffix PATH ":" "${lib.makeBinPath [ ffmpeg-full lz4 openssh ]}"
+  postInstall = let
+    deps = [
+      # `ffmpeg-full` is used here to bring in `ffplay`, which is used
+      # to display the reMarkable framebuffer
+      ffmpeg-full
+      lz4
+      openssh
+      # Libressl netcat brings in `nc` which used for --uncompressed mode.
+      netcat
+    ];
+  in ''
+    # This `sed` command has the same effect as `wrapProgram`, except
+    # without .restream-wrapped store paths appearing everywhere.
+    sed -i \
+      '2i export PATH=$PATH''${PATH:+':'}${lib.makeBinPath deps}' \
+      "$out/bin/restream"
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/remarkable/rmapi/default.nix b/pkgs/applications/misc/remarkable/rmapi/default.nix
index 8482f85d927a0..6a4beec6a5eca 100644
--- a/pkgs/applications/misc/remarkable/rmapi/default.nix
+++ b/pkgs/applications/misc/remarkable/rmapi/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "rmapi";
-  version = "0.0.17";
+  version = "0.0.18";
 
   src = fetchFromGitHub {
     owner = "juruen";
     repo = "rmapi";
     rev = "v${version}";
-    sha256 = "sha256-KFoaZ0OAqwJm4tEUaEAGJ+70nHJUbxg0kvhm71mQB6E=";
+    sha256 = "sha256-Yrq21eiyNem9P219FxuQMHpagKQDaNsASwi2REaDAgk=";
   };
 
   vendorSha256 = "sha256-gu+BU2tL/xZ7D6lZ1ueO/9IB9H3NNm4mloCZaGqZskU=";
diff --git a/pkgs/applications/misc/remarkable/rmview/default.nix b/pkgs/applications/misc/remarkable/rmview/default.nix
index 385607ec7098b..98253fc305985 100644
--- a/pkgs/applications/misc/remarkable/rmview/default.nix
+++ b/pkgs/applications/misc/remarkable/rmview/default.nix
@@ -2,17 +2,17 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "rmview";
-  version = "2.1";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner = "bordaigorl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0zyngirpg808k1pkyhrk43qr3i8ilvfci0wzwk4b5f6f9cmjs7kb";
+    sha256 = "sha256-zEl2uduSJvqhO5YPrH5ixps+IR5A0CIDwXHI+KvoT4Q=";
   };
 
   nativeBuildInputs = with python3Packages; [ pyqt5 wrapQtAppsHook ];
-  propagatedBuildInputs = with python3Packages; [ pyqt5 paramiko twisted ];
+  propagatedBuildInputs = with python3Packages; [ pyqt5 paramiko twisted pyjwt pyopenssl service-identity ];
 
   preBuild = ''
     pyrcc5 -o src/rmview/resources.py resources.qrc
diff --git a/pkgs/applications/misc/rofi/default.nix b/pkgs/applications/misc/rofi/default.nix
index 12daea00cad35..bce4b297cda60 100644
--- a/pkgs/applications/misc/rofi/default.nix
+++ b/pkgs/applications/misc/rofi/default.nix
@@ -1,7 +1,8 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, autoreconfHook
+, meson
+, ninja
 , pkg-config
 , libxkbcommon
 , pango
@@ -22,14 +23,14 @@
 
 stdenv.mkDerivation rec {
   pname = "rofi-unwrapped";
-  version = "1.7.0";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "davatorium";
     repo = "rofi";
     rev = version;
     fetchSubmodules = true;
-    sha256 = "03wdy56b3g8p2czb0qydrddyyhj3x037pirnhyqr5qbfczb9a63v";
+    sha256 = "vre8kFou01P7S6KBBtfzvfFP554mhV+d6rjvY+GfWXk=";
   };
 
   preConfigure = ''
@@ -38,7 +39,7 @@ stdenv.mkDerivation rec {
     sed -i 's/~root/~nobody/g' test/helper-expand.c
   '';
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  nativeBuildInputs = [ meson ninja pkg-config ];
   buildInputs = [
     libxkbcommon
     pango
diff --git a/pkgs/applications/misc/skate/default.nix b/pkgs/applications/misc/skate/default.nix
new file mode 100644
index 0000000000000..f7d3173b0f2a4
--- /dev/null
+++ b/pkgs/applications/misc/skate/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "skate";
+  version = "0.1.3";
+
+  src = fetchFromGitHub {
+    owner = "charmbracelet";
+    repo = "skate";
+    rev = "v${version}";
+    sha256 = "sha256-rUOFx0ebZs3xmsSz9oFvjINaHp9gIe7E/5UoJJ47aZc=";
+  };
+
+  vendorSha256 = "sha256-3+KXirGwZvPhqCeglPqHJ9wEt6naJiRE3TAX7/jxJpk=";
+
+  doCheck = false;
+
+  ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
+
+  meta = with lib; {
+    description = "A personal multi-machine syncable key value store";
+    homepage = "https://github.com/charmbracelet/skate";
+    license = licenses.mit;
+    maintainers = with maintainers; [ penguwin ];
+  };
+}
diff --git a/pkgs/applications/misc/snapmaker-luban/default.nix b/pkgs/applications/misc/snapmaker-luban/default.nix
index 84ad34637f58f..c6b178d75b03f 100644
--- a/pkgs/applications/misc/snapmaker-luban/default.nix
+++ b/pkgs/applications/misc/snapmaker-luban/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "snapmaker-luban";
-  version = "4.0.3";
+  version = "4.1.2";
 
   src = fetchurl {
     url = "https://github.com/Snapmaker/Luban/releases/download/v${version}/snapmaker-luban-${version}-linux-x64.tar.gz";
-    sha256 = "13qk7ssfawjaa5p4mnml4ndzzsqs26qpi76hc9qaipi74ss3jih4";
+    sha256 = "sha256-gS3MyXD5B9YQ+EXmIPZ+rDUE5H1AjRL64yXQX+5TM2Q=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/solaar/default.nix b/pkgs/applications/misc/solaar/default.nix
index 641353f53dafe..e4e149df0ec81 100644
--- a/pkgs/applications/misc/solaar/default.nix
+++ b/pkgs/applications/misc/solaar/default.nix
@@ -13,13 +13,13 @@
 # logitech-udev-rules instead of adding this to services.udev.packages on NixOS
 python3Packages.buildPythonApplication rec {
   pname = "solaar";
-  version = "1.0.6";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "pwr-Solaar";
     repo = "Solaar";
     rev = version;
-    sha256 = "sha256-Ys0005hIQ+fT4oMeU5iFtbLNqn1WM6iLdIKGwdyn7BM=";
+    sha256 = "sha256-rNz296pKw2/WaryxHekWHSAS1jdTviZxXDgO/L/PJCU=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook gdk-pixbuf ];
diff --git a/pkgs/applications/misc/spicetify-cli/default.nix b/pkgs/applications/misc/spicetify-cli/default.nix
index 7bbe65811548b..2f42f6be9b590 100644
--- a/pkgs/applications/misc/spicetify-cli/default.nix
+++ b/pkgs/applications/misc/spicetify-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "spicetify-cli";
-  version = "2.7.1";
+  version = "2.8.3";
 
   src = fetchFromGitHub {
     owner = "khanhas";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fWh345J2fD9uoGrDiVZyEBiOlMy8giEGKHGMujT0mjo=";
+    sha256 = "sha256-Ht+EDCoPn1dA8VHTEiq5xPm34lcsiug8jQHvQdCG2yg=";
   };
 
   vendorSha256 = "sha256-g0RYIVIq4oMXdRZDBDnVYg7ombN5WEo/6O9hChQvOYs=";
diff --git a/pkgs/applications/misc/spotify-tray/default.nix b/pkgs/applications/misc/spotify-tray/default.nix
new file mode 100644
index 0000000000000..8b97d9c4851ba
--- /dev/null
+++ b/pkgs/applications/misc/spotify-tray/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, gtk3 }:
+
+stdenv.mkDerivation rec {
+  pname = "spotify-tray";
+  version = "1.3.2";
+
+  src = fetchFromGitHub {
+    owner = "tsmetana";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-E86rA8cBjy/bI7sZHlT40o7i23PcONXT5GTHEfcaDf0=";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+
+  buildInputs = [ gtk3 ];
+
+  meta = with lib; {
+    homepage = "https://github.com/tsmetana/spotify-tray";
+    description = "Adds a tray icon to the Spotify Linux client application.";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ Enzime ];
+  };
+}
diff --git a/pkgs/applications/misc/stog/default.nix b/pkgs/applications/misc/stog/default.nix
index 442750837bb55..91a77d8de6fd6 100644
--- a/pkgs/applications/misc/stog/default.nix
+++ b/pkgs/applications/misc/stog/default.nix
@@ -1,32 +1,44 @@
-{ lib, stdenv, fetchFromGitLab, ocaml, findlib, ocf, ptime,
-  uutf, uri, ppx_blob, xtmpl, ocaml_lwt, higlo, omd
+{ lib, buildDunePackage, fetchFromGitLab, ocaml
+, fmt, lwt_ppx, menhir, ocf_ppx, ppx_blob, xtmpl_ppx
+, dune-build-info, dune-site, higlo, logs, lwt, ocf, ptime, uri, uutf, xtmpl
 }:
 
-stdenv.mkDerivation rec {
+if lib.versionAtLeast ocaml.version "4.13"
+then throw "stog is not available for OCaml ${ocaml.version}"
+else
+
+buildDunePackage rec {
   pname = "stog";
-  version = "0.18.0";
+  version = "0.20.0";
+  useDune2 = true;
+  minimalOCamlVersion = "4.12";
   src = fetchFromGitLab {
     domain = "framagit.org";
     owner = "zoggy";
     repo = "stog";
     rev = version;
-    sha256 = "154gl3ljxqlw8wz1vmsyv8180igrl5bjq0wir7ybrnzq2cdflkv0";
+    sha256 = "sha256:0krj5w4y05bcfx7hk9blmap8avl31gp7yi01lpqzs6ync23mvm0x";
   };
 
-  buildInputs = [ ocaml uutf ];
-  propagatedBuildInputs = [ findlib omd ppx_blob ocf ptime uri xtmpl ocaml_lwt higlo ];
-
-  createFindlibDestdir = true;
-
-  patches = [ ./install.patch ./uri.patch ];
+  buildInputs = [ fmt lwt_ppx menhir ocf_ppx ppx_blob xtmpl_ppx ];
+  propagatedBuildInputs = [
+    dune-build-info
+    dune-site
+    higlo
+    logs
+    lwt
+    ocf
+    ppx_blob
+    ptime
+    uri
+    uutf
+    xtmpl
+  ];
 
   meta = with lib; {
     description = "XML documents and web site compiler";
     homepage = "https://www.good-eris.net/stog";
     license = licenses.lgpl3;
-    platforms = ocaml.meta.platforms or [];
     maintainers = with maintainers; [ regnat ];
   };
 }
-
-
diff --git a/pkgs/applications/misc/stog/install.patch b/pkgs/applications/misc/stog/install.patch
deleted file mode 100644
index a2407d3079f55..0000000000000
--- a/pkgs/applications/misc/stog/install.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/src/Makefile b/src/Makefile
-index 736dd037..79a85b9c 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -431,11 +431,12 @@ install-lib:
- install-share:
- 
- install-bin:
-+	mkdir $(out)/bin
- 	$(CP) $(MAIN) $(MAIN_BYTE) $(TMPL) $(TMPL_BYTE) \
- 		$(SERVER) $(SERVER_BYTE) $(OCAML_SESSION) \
- 	  $(MK_STOG) $(MK_STOG_BYTE) $(MK_STOG_OCAML) \
- 	  $(LATEX2STOG) $(LATEX2STOG_BYTE) \
--		`dirname \`which $(OCAMLC)\``/
-+	  $(out)/bin
- 
- uninstall: uninstall-lib uninstall-share uninstall-bin
- 
diff --git a/pkgs/applications/misc/stog/uri.patch b/pkgs/applications/misc/stog/uri.patch
deleted file mode 100644
index 08063a38add4f..0000000000000
--- a/pkgs/applications/misc/stog/uri.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/stog_url.ml b/src/stog_url.ml
-index 5d30a43f..c67bfc36 100644
---- a/src/stog_url.ml
-+++ b/src/stog_url.ml
-@@ -40,7 +40,7 @@ let of_string s =
-   with _ ->
-     failwith (Printf.sprintf "Malformed URL %S" s)
- ;;
--let to_string = Uri.to_string ;;
-+let to_string u = Uri.to_string u;;
- 
- let path url =
-   let l =
diff --git a/pkgs/applications/misc/stork/default.nix b/pkgs/applications/misc/stork/default.nix
index 5f108049c359a..7ff59d9baa305 100644
--- a/pkgs/applications/misc/stork/default.nix
+++ b/pkgs/applications/misc/stork/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "stork";
-  version = "1.2.1";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "jameslittle230";
     repo = "stork";
     rev = "v${version}";
-    sha256 = "sha256-rox8X+lYiiCXO66JemW+R2I6y/IxdK6qpaiFXYoL6nY=";
+    sha256 = "sha256-or8PDEj97ChZq6r3WlwETYbU6EvoEuh8HfTyBIbbO8M=";
   };
 
-  cargoSha256 = "sha256-ujmBAld6DCc1l+yUu9qhRF8pS5HoIlstcdPTeTAyyXs=";
+  cargoSha256 = "sha256-UpIPbY2beO1H0YR9kV1SkG6C3qcO4x2acfgqI3x5jiM=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/misc/stretchly/default.nix b/pkgs/applications/misc/stretchly/default.nix
index 9c0cc7d08e7cf..d333640fc50be 100644
--- a/pkgs/applications/misc/stretchly/default.nix
+++ b/pkgs/applications/misc/stretchly/default.nix
@@ -11,11 +11,11 @@
 stdenv.mkDerivation rec {
 
   pname = "stretchly";
-  version = "1.7.0";
+  version = "1.8.1";
 
   src = fetchurl {
     url = "https://github.com/hovancik/stretchly/releases/download/v${version}/stretchly-${version}.tar.xz";
-    sha256 = "sha256-F6p+g0yuDMpNq+cVgA3ZhUwCIiIU1QfYM90lmaNnRWw=";
+    sha256 = "sha256-/v74vDGxD5iiOPeBXPAaV42JpyBjeJSO/Lk88pCkDng=";
   };
 
   icon = fetchurl {
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     runHook preInstall
 
     mkdir -p $out/bin $out/share/${pname}/
-    mv resources/app.asar $out/share/${pname}/
+    mv resources/app.asar* $out/share/${pname}/
 
     mkdir -p $out/share/applications
     ln -s ${desktopItem}/share/applications/* $out/share/applications/
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
     homepage = "https://hovancik.net/stretchly";
     downloadPage = "https://hovancik.net/stretchly/downloads/";
     license = licenses.bsd2;
-    maintainers = with maintainers; [ _1000101 ];
+    maintainers = with maintainers; [ _1000101 oxalica ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/terminal-typeracer/default.nix b/pkgs/applications/misc/terminal-typeracer/default.nix
index 48ae142c1aef5..c6a700753f3ad 100644
--- a/pkgs/applications/misc/terminal-typeracer/default.nix
+++ b/pkgs/applications/misc/terminal-typeracer/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "terminal-typeracer";
-  version = "2.0.4";
+  version = "2.0.8";
 
   src = fetchFromGitLab {
     owner = "ttyperacer";
     repo = pname;
     rev = "v${version}";
-    sha256 = "RjGHY6KN6thxbg9W5FRwaAmUeD+5/WCeMCvzFHqZ+J4=";
+    sha256 = "Fb2MCQaQaJseXa8Csesz1s5Yel4wcSMxfMeKSW7rlU4=";
   };
 
-  cargoSha256 = "sha256-A7O/e8PAcW36i8pT71SkWoWDIiMuEhSS9SmASNzNCjk=";
+  cargoSha256 = "sha256-SAVDSUm2jpDwTfwo4L6MVUKzBxZvCfjn4UNIGUJziSY=";
 
   buildInputs = [ openssl sqlite ] ++ lib.optionals stdenv.isDarwin [ libiconv Security ];
   nativeBuildInputs = [ pkg-config ];
@@ -29,6 +29,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://gitlab.com/ttyperacer/terminal-typeracer";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ yoctocell ];
-    platforms = platforms.x86_64;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/misc/thedesk/default.nix b/pkgs/applications/misc/thedesk/default.nix
new file mode 100644
index 0000000000000..42f4d36eea5d5
--- /dev/null
+++ b/pkgs/applications/misc/thedesk/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper, electron
+, alsa-lib, gtk3, libxshmfence, mesa, nss }:
+
+stdenv.mkDerivation rec {
+  pname = "thedesk";
+  version = "22.3.1";
+
+  src = fetchurl {
+    url = "https://github.com/cutls/TheDesk/releases/download/v${version}/${pname}_${version}_amd64.deb";
+    sha256 = "sha256-5KB88zMgwfObgmcMTe6R+oG48qLHrMht6vM1EvI+QFY=";
+  };
+
+  nativeBuildInputs = [
+    dpkg
+    autoPatchelfHook
+    makeWrapper
+  ];
+
+  buildInputs = [ alsa-lib gtk3 libxshmfence mesa nss ];
+
+  dontBuild = true;
+  dontConfigure = true;
+
+  unpackPhase = ''
+    dpkg-deb -x ${src} ./
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mv usr $out
+    mv opt $out
+
+    substituteInPlace $out/share/applications/thedesk.desktop \
+      --replace '/opt/TheDesk' $out/bin
+
+    makeWrapper ${electron}/bin/electron $out/bin/thedesk \
+      --add-flags $out/opt/TheDesk/resources/app.asar
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Mastodon/Misskey Client for PC";
+    homepage = "https://thedesk.top";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ wolfangaukang ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/misc/ticker/default.nix b/pkgs/applications/misc/ticker/default.nix
index f268a9f4ecec2..62a4151010aa9 100644
--- a/pkgs/applications/misc/ticker/default.nix
+++ b/pkgs/applications/misc/ticker/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "ticker";
-  version = "4.3.0";
+  version = "4.4.4";
 
   src = fetchFromGitHub {
     owner = "achannarasappa";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-DdUXT8xrKd114U+CSwIgl7XczxQZGWVZA3tMU7461xY=";
+    sha256 = "sha256-KICxcfZLBwCo12p5R9wt7Tk440wkUIE7G6lGfWIdxR8=";
   };
 
-  vendorSha256 = "sha256-vTB1RPg1LN44bkWrdGEXR6WRlM/Q2EITUO0yt5ar/zg=";
+  vendorSha256 = "sha256-aPL3npryiCv+SiSyEUNhdPCDmM/hJDMspCbSNy+SuoA=";
 
   ldflags = [
     "-s" "-w" "-X github.com/achannarasappa/ticker/cmd.Version=v${version}"
diff --git a/pkgs/applications/misc/timew-sync-server/default.nix b/pkgs/applications/misc/timew-sync-server/default.nix
index 86a428df38f6c..8fb6bb3a10434 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.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "timewarrior-synchronize";
     repo = pname;
     rev = "v${version}";
-    sha256 = "041j618c2bcryhgi2j2w5zlfcxcklgbir2xj3px4w7jxbbg6p68n";
+    sha256 = "GaDcnPJBcDJ3AQaHzifDgdl0QT4GSbAOIqp4RrAcO3M=";
   };
 
-  vendorSha256 = "0wbd4cpswgbr839sk8qwly8gjq4lqmq448m624akll192mzm9wj7";
+  vendorSha256 = "iROqiRWkHG6N6kivUmgmu6sg14JDdG4f98BdR7CL1gs=";
 
   meta = with lib; {
     homepage = "https://github.com/timewarrior-synchronize/timew-sync-server";
diff --git a/pkgs/applications/misc/tint2/default.nix b/pkgs/applications/misc/tint2/default.nix
index 308fbff1260d9..131cb0f22ad86 100644
--- a/pkgs/applications/misc/tint2/default.nix
+++ b/pkgs/applications/misc/tint2/default.nix
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tint2";
-  version = "17.0.1";
+  version = "17.0.2";
 
   src = fetchFromGitLab {
     owner = "o9000";
     repo = "tint2";
     rev = version;
-    sha256 = "sha256-yiXdG0qYcdol2pA1L9ii4XiLZyyUAl8/EJop48OLoXs=";
+    sha256 = "sha256-SqpAjclwu3HN07LAZgvXGzjMK6G+nYLDdl90o1+9aog=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/tiramisu/default.nix b/pkgs/applications/misc/tiramisu/default.nix
index f3743d33c3642..8d1e1910cbc94 100644
--- a/pkgs/applications/misc/tiramisu/default.nix
+++ b/pkgs/applications/misc/tiramisu/default.nix
@@ -1,19 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, glib }:
+{ lib, stdenv, fetchFromGitHub, pkg-config, glib, vala }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "tiramisu";
-  version = "unstable-2021-05-20";
+  version = "2.0.20211107";
 
   src = fetchFromGitHub {
     owner = "Sweets";
-    repo = "tiramisu";
-    rev = "e53833d0b5b0ae41ceb7dc434d8e25818fe62291";
-    sha256 = "sha256-F4oaTOAQQfOkEXeBVbGH+0CHc9v9Ac08GyzHliOdAfc=";
+    repo = pname;
+    rev = version;
+    sha256 = "1n1x1ybbwbanibw7b90k7v4cadagl41li17hz2l8s2sapacvq3mw";
   };
 
   buildInputs = [ glib ];
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config vala ];
 
   makeFlags = [ "PREFIX=$(out)" ];
 
diff --git a/pkgs/applications/misc/tmatrix/default.nix b/pkgs/applications/misc/tmatrix/default.nix
index e63370566880b..780a80b5d2c6d 100644
--- a/pkgs/applications/misc/tmatrix/default.nix
+++ b/pkgs/applications/misc/tmatrix/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tmatrix";
-  version = "1.3";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "M4444";
     repo = "TMatrix";
     rev = "v${version}";
-    sha256 = "1cvgxmdpdzpl8w4z3sh4g5pbd15rd8s1kcspi9v95yf9rydyy69s";
+    sha256 = "sha256-G3dg0SWfBjCA66TTxkVAcVrFNJOWE9+GJXYKzCUX34w=";
   };
 
   nativeBuildInputs = [ cmake installShellFiles ];
diff --git a/pkgs/applications/misc/todoist/default.nix b/pkgs/applications/misc/todoist/default.nix
index 68388376f8f00..640cfc6e12cdd 100644
--- a/pkgs/applications/misc/todoist/default.nix
+++ b/pkgs/applications/misc/todoist/default.nix
@@ -2,19 +2,23 @@
 
 buildGoModule rec {
   pname = "todoist";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "sachaos";
     repo = "todoist";
     rev = "v${version}";
-    sha256 = "0d3c621jaqxd6i58xm6nvi0avrh5mk23r169i95bn73igzw62w33";
+    sha256 = "sha256-cfhwbL7RaeD5LWxlfqnHfPPPkC5AA3Z034p+hlFBWtg=";
   };
 
-  vendorSha256 = "0cznb8glh36dwyyn1gx1ggkwa9zffrrxg52k78brnaczsl0rsmky";
+  vendorSha256 = "sha256-ly+OcRo8tGeNX4FnqNVaqjPx/A1FALOnScxs04lIOiU=";
 
   doCheck = false;
 
+  postPatch = ''
+    substituteInPlace main.go --replace '0.15.0' '${version}'
+  '';
+
   meta = {
     homepage = "https://github.com/sachaos/todoist";
     description = "Todoist CLI Client";
diff --git a/pkgs/applications/misc/toggldesktop/default.nix b/pkgs/applications/misc/toggldesktop/default.nix
index 44c46f7465505..dfd68fd5ac19c 100644
--- a/pkgs/applications/misc/toggldesktop/default.nix
+++ b/pkgs/applications/misc/toggldesktop/default.nix
@@ -16,7 +16,7 @@ let
     version = "20180522.005732";
 
     src = fetchzip {
-      url = "https://github.com/yegortimoshenko/bugsnag-qt/archive/${version}.tar.gz";
+      url = "https://github.com/alpakido/bugsnag-qt/archive/${version}.tar.gz";
       sha256 = "02s6mlggh0i4a856md46dipy6mh47isap82jlwmjr7hfsk2ykgnq";
     };
 
@@ -42,7 +42,7 @@ let
     version = "20190125.190943";
 
     src = fetchzip {
-      url = "https://github.com/yegortimoshenko/qt-oauth-lib/archive/${version}.tar.gz";
+      url = "https://github.com/alpakido/qt-oauth-lib/archive/${version}.tar.gz";
       sha256 = "0zmfgvdf6n79mgfvbda7lkdxxlzjmy86436gqi2r5x05vq04sfrj";
     };
 
@@ -143,7 +143,7 @@ buildEnv {
     description = "Client for Toggl time tracking service";
     homepage = "https://github.com/toggl/toggldesktop";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ yegortimoshenko ];
+    maintainers = with maintainers; [ yana ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/tootle/default.nix b/pkgs/applications/misc/tootle/default.nix
index 8c111ae6aa428..f29c471d04b0e 100644
--- a/pkgs/applications/misc/tootle/default.nix
+++ b/pkgs/applications/misc/tootle/default.nix
@@ -1,8 +1,9 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
 , fetchpatch
-, vala_0_52
+, vala
 , meson
 , ninja
 , pkg-config
@@ -30,14 +31,27 @@ stdenv.mkDerivation rec {
     sha256 = "NRM7GiJA8c5z9AvXpGXtMl4ZaYN2GauEIbjBmoY4pdo=";
   };
 
+  patches = [
+    # Adhere to GLib.Object naming conventions for properties
+    # https://github.com/bleakgrey/tootle/pull/339
+    (fetchpatch {
+      url = "https://git.alpinelinux.org/aports/plain/community/tootle/0001-Adhere-to-GLib.Object-naming-conventions-for-propert.patch?id=001bf1ce9695ddb0bbb58b44433d54207c15b0b5";
+      sha256 = "sha256-B62PhMRkU8P3jmnIUq1bYWztLtO2oNcDsXnAYbJGpso=";
+    })
+    # Use reason_phrase instead of get_phrase
+    # https://github.com/bleakgrey/tootle/pull/336
+    (fetchpatch {
+      url = "https://git.alpinelinux.org/aports/plain/community/tootle/0002-Use-reason_phrase-instead-of-get_phrase.patch?id=001bf1ce9695ddb0bbb58b44433d54207c15b0b5";
+      sha256 = "sha256-rm5NFLeAL2ilXpioywgCR9ppoq+MD0MLyVaBmdzVkqU=";
+    })
+  ];
+
   nativeBuildInputs = [
     meson
     ninja
     pkg-config
     python3
-    # Does not build with vala 0.54
-    # https://github.com/bleakgrey/tootle/issues/337
-    vala_0_52
+    vala
     wrapGAppsHook
   ];
 
diff --git a/pkgs/applications/misc/translate-shell/default.nix b/pkgs/applications/misc/translate-shell/default.nix
index 319ba3643da44..be2ee1e7a8510 100644
--- a/pkgs/applications/misc/translate-shell/default.nix
+++ b/pkgs/applications/misc/translate-shell/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper, curl, fribidi, rlwrap, gawk, groff, ncurses }:
+{ lib, stdenv, fetchFromGitHub, makeWrapper, curl, fribidi, rlwrap, gawk, groff, ncurses, hexdump }:
 
 stdenv.mkDerivation rec {
   pname = "translate-shell";
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
         rlwrap
         groff
         fribidi
+        hexdump
       ]}
   '';
 
diff --git a/pkgs/applications/misc/ttyper/default.nix b/pkgs/applications/misc/ttyper/default.nix
index c3001c3337cd6..d2bed3dce0a27 100644
--- a/pkgs/applications/misc/ttyper/default.nix
+++ b/pkgs/applications/misc/ttyper/default.nix
@@ -2,21 +2,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ttyper";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "max-niederman";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9vcoK2mFEivTSZE3KoQRHUr3AfQ/aN5eWP//Jagw3gU=";
+    sha256 = "sha256-UptjgFGp4QNG8eLuqBzg/Kd5p5Rms3yT172hbf/2hi4=";
   };
 
-  cargoSha256 = "sha256-VzO32b5oAoXR/Ei9up00XRM63I5kuG68TeX4KBCXIdo=";
+  cargoSha256 = "sha256-N10X5eJlpDKmCEffEXpkAejS32Lz183Lup0mmLMwOSU=";
 
   meta = with lib; {
     description = "Terminal-based typing test";
     homepage = "https://github.com/max-niederman/ttyper";
     license = licenses.mit;
-    maintainers = with maintainers; [ figsoda ];
+    maintainers = with maintainers; [ figsoda max-niederman ];
   };
 }
diff --git a/pkgs/applications/misc/tut/default.nix b/pkgs/applications/misc/tut/default.nix
index 0d0d1c394e2c3..2c4cc1a11c096 100644
--- a/pkgs/applications/misc/tut/default.nix
+++ b/pkgs/applications/misc/tut/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tut";
-  version = "0.0.36";
+  version = "0.0.42";
 
   src = fetchFromGitHub {
     owner = "RasmusLindroth";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Ew/nrsJivq/3/vlZnR1gwhqzQQ9YmrW2LPD7qjmPH4A=";
+    sha256 = "sha256-zWhG9lzerzDqqFN8IG5JSv3voLzvtp/gg6jBisbodMc=";
   };
 
-  vendorSha256 = "sha256-Q1H/Y2mDTr24JQMoTf8DL3cj5oF9lH0uaJD2g/0Yxko=";
+  vendorSha256 = "sha256-kMGEAN/I2XsIc6zCDbhbbstYlyjDpXQsOPUzjaJqJBk=";
 
   meta = with lib; {
     description = "A TUI for Mastodon with vim inspired keys";
diff --git a/pkgs/applications/misc/upwork/default.nix b/pkgs/applications/misc/upwork/default.nix
index 687dc7a49ac96..5543b3442bd2e 100644
--- a/pkgs/applications/misc/upwork/default.nix
+++ b/pkgs/applications/misc/upwork/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "upwork";
-  version = "5.6.9.3";
+  version = "5.6.10.0";
 
   src = fetchurl {
-    url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_6_9_3_10c2eb9781db4d7f/${pname}_${version}_amd64.deb";
-    sha256 = "0b884aa6992d438cee09f58673780218a00a823e03c114b0c753947020c0a327";
+    url = "https://upwork-usw2-desktopapp.upwork.com/binaries/v5_6_10_0_b124e6f3a4944b32/${pname}_${version}_amd64.deb";
+    sha256 = "fd201ce817abe32e1b582bb4b55fef85ac8132806f5ddf0548fd25bbfd48833c";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/viking/default.nix b/pkgs/applications/misc/viking/default.nix
index 72c0fefd4e6c5..cca8032e18340 100644
--- a/pkgs/applications/misc/viking/default.nix
+++ b/pkgs/applications/misc/viking/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "viking";
-  version = "1.9";
+  version = "1.10";
 
   src = fetchurl {
     url = "mirror://sourceforge/viking/viking-${version}.tar.bz2";
-    sha256 = "0fybpy6k0vmjp231h5ckysl3c0rcnh2afznijwq6y78j4hywyjpy";
+    sha256 = "sha256-lFXIlfmLwT3iS9ayNM0PHV7NwbBotMvG62ZE9hJuRaw=";
   };
 
   nativeBuildInputs = [ docbook_xml_dtd_45 docbook_xsl intltool itstool libxslt pkg-config wrapGAppsHook yelp-tools ];
diff --git a/pkgs/applications/misc/visidata/default.nix b/pkgs/applications/misc/visidata/default.nix
index 6c1f035dfef66..99657d60bd703 100644
--- a/pkgs/applications/misc/visidata/default.nix
+++ b/pkgs/applications/misc/visidata/default.nix
@@ -25,13 +25,13 @@
 }:
 buildPythonApplication rec {
   pname = "visidata";
-  version = "2.7.1";
+  version = "2.8";
 
   src = fetchFromGitHub {
     owner = "saulpw";
     repo = "visidata";
     rev = "v${version}";
-    sha256 = "13s1541n1sr2rkfk1qpsm61y2q773x6fs4cwin660qq4bzmgymhy";
+    sha256 = "1lcx444yrzmcvix977cgaf18lfrf9yrn2r14ln7knx8ghc15vkqb";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/misc/weather/default.nix b/pkgs/applications/misc/weather/default.nix
index bd5a117f0f43e..12edfe280be7d 100644
--- a/pkgs/applications/misc/weather/default.nix
+++ b/pkgs/applications/misc/weather/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, pythonPackages, installShellFiles }:
 
 stdenv.mkDerivation rec {
-  version = "2.4.1";
+  version = "2.4.2";
   pname = "weather";
 
   src = fetchurl {
     url = "http://fungi.yuggoth.org/weather/src/${pname}-${version}.tar.xz";
-    sha256 = "0nf680dl7a2vlgavdhj6ljq8a7lkhvr6zghkpzad53vmilxsndys";
+    sha256 = "sha256-qJl5rFDk31Fm+tmR6+Iiihcx6qyd9alHz2L672pNJsc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/whalebird/default.nix b/pkgs/applications/misc/whalebird/default.nix
index 0809f835668a6..b2475bf1d8371 100644
--- a/pkgs/applications/misc/whalebird/default.nix
+++ b/pkgs/applications/misc/whalebird/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "whalebird";
-  version = "4.4.5";
+  version = "4.4.6";
 
   src = fetchurl {
     url = "https://github.com/h3poteto/whalebird-desktop/releases/download/${version}/Whalebird-${version}-linux-x64.deb";
-    sha256 = "sha256-CIlj9Sc/hj2UMgQzfHA3iQYO6EPqcndqkNUCBecHq+E=";
+    sha256 = "sha256-Q67y6VO7U8EatMNWyJo4f9IHKylQSX7bNR0DH4bnH+A=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/wike/default.nix b/pkgs/applications/misc/wike/default.nix
index 41722edc4c202..94875c6aaab68 100644
--- a/pkgs/applications/misc/wike/default.nix
+++ b/pkgs/applications/misc/wike/default.nix
@@ -14,13 +14,13 @@ let
   ]);
 in stdenv.mkDerivation rec {
   pname = "wike";
-  version = "1.5.7";
+  version = "1.6.3";
 
   src = fetchFromGitHub {
     owner = "hugolabe";
     repo = "Wike";
     rev = version;
-    sha256 = "sha256-SB+ApuSovqQCaZYPhH+duf+c07JDSSCRz8hTVhEa4gY=";
+    sha256 = "sha256-yyifRUf7oITV9lpnHnadZwHOKHr0Z+4bjCV/WoYs6vY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/worker/default.nix b/pkgs/applications/misc/worker/default.nix
index 21dc4a576952a..3aa01d9372c46 100644
--- a/pkgs/applications/misc/worker/default.nix
+++ b/pkgs/applications/misc/worker/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "worker";
-  version = "4.9.0";
+  version = "4.10.0";
 
   src = fetchurl {
     url = "http://www.boomerangsworld.de/cms/worker/downloads/${pname}-${version}.tar.gz";
-    sha256 = "sha256-l9kWYswQ27erxmZIb+otPzeKFZNwP+d8QIqGuvMMM/k=";
+    sha256 = "sha256-BK6Soh2hJYMunw/bXZFh+05c+iYig2L7lLFEqs6lyxk=";
   };
 
   buildInputs = [ libX11 ];
diff --git a/pkgs/applications/misc/wtf/default.nix b/pkgs/applications/misc/wtf/default.nix
index ea7986595f499..6fdfe92da2534 100644
--- a/pkgs/applications/misc/wtf/default.nix
+++ b/pkgs/applications/misc/wtf/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "wtf";
-  version = "0.39.2";
+  version = "0.40.0";
 
   src = fetchFromGitHub {
     owner = "wtfutil";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nP56HzjtIg9EIOBda9TQl8soUqlGfRmixidWrmQ7+vs=";
-   };
+    sha256 = "0hd5gnydxfncsmm7c58lvhkpnyxknvicc8f58xfh74azf363wcvm";
+  };
 
-  vendorSha256 = "sha256-yD4BUauYvyGk/D0Gr5Z15xWPtI/ZR9xTbmeS6RAxw1o=";
+  vendorSha256 = "1pkdfg042kg3b6m5rf044gz5yg6vp3bbsay1mrrbaysnb3gs51dq";
 
   doCheck = false;
 
@@ -35,6 +35,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "The personal information dashboard for your terminal";
     homepage = "https://wtfutil.com/";
+    changelog = "https://github.com/wtfutil/wtf/raw/v${version}/CHANGELOG.md";
     license = licenses.mpl20;
     maintainers = with maintainers; [ kalbasit ];
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/applications/misc/xastir/default.nix b/pkgs/applications/misc/xastir/default.nix
index 63240e0402fe5..294beb06c5bf8 100644
--- a/pkgs/applications/misc/xastir/default.nix
+++ b/pkgs/applications/misc/xastir/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config
 , curl, db, libgeotiff
 , libXpm, libXt, motif, pcre
 , perl, proj, rastermagick, shapelib
@@ -6,17 +6,21 @@
 
 stdenv.mkDerivation rec {
   pname = "xastir";
-  version = "2.1.6";
+  version = "2.1.8";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "Release-${version}";
-    sha256 = "0yrvwy6hlc73gzwrsrczflyymyz0k33hj991ajrd1vijq14m3n91";
+    hash = "sha256-hRe0KO1lWOv3hNNDMS70t+X1rxuhNlNKykmo4LEU+U0=";
   };
 
-  buildInputs = [
+  nativeBuildInputs = [
     autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
     curl db libgeotiff
     libXpm libXt motif pcre
     perl proj rastermagick shapelib
diff --git a/pkgs/applications/misc/xdg-launch/default.nix b/pkgs/applications/misc/xdg-launch/default.nix
index 257b15387baa3..973acbbf65a57 100644
--- a/pkgs/applications/misc/xdg-launch/default.nix
+++ b/pkgs/applications/misc/xdg-launch/default.nix
@@ -12,7 +12,7 @@
 }:
 stdenv.mkDerivation rec {
   pname = "xdg-launch";
-  version = "1.10";
+  version = "1.11";
 
   postPatch = ''
     # fix gettext configuration
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "bbidulock";
     repo = pname;
     rev = version;
-    sha256 = "sha256-WY1TAPnXAn5GOaP9aMHar761m1MkKm4vavLlWELWUu8=";
+    sha256 = "sha256-qrBxyJ3dUNdnE1nANLKKL0cXw/Hc4qxDoY1anIRN+VA=";
   };
 
   preConfigure = "./autogen.sh";
diff --git a/pkgs/applications/misc/xkblayout-state/default.nix b/pkgs/applications/misc/xkblayout-state/default.nix
index 4d1dd54bba6c4..70543b5fa186c 100644
--- a/pkgs/applications/misc/xkblayout-state/default.nix
+++ b/pkgs/applications/misc/xkblayout-state/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, qt4 }:
+{ lib, stdenv, fetchFromGitHub, qt4 }:
 
 stdenv.mkDerivation rec {
   pname = "xkblayout-state";
   version = "1b";
 
-  src = fetchurl {
-    url = "https://github.com/nonpop/${pname}/archive/v${version}.tar.gz";
-    sha256 = "1m1nnplrdb2mclhj0881wf78ckvdnyk24g4k4p5s5gpd96cxxwnx";
+  src = fetchFromGitHub {
+    owner = "nonpop";
+    repo = "xkblayout-state";
+    rev = "v${version}";
+    sha256 = "sha256-diorqwDEBdzcBteKvhRisQaY3bx5seaOaWSaPwBkWDo=";
   };
 
   buildInputs = [ qt4 ];
diff --git a/pkgs/applications/misc/xmrig/default.nix b/pkgs/applications/misc/xmrig/default.nix
index 56c078fd9fc61..dc3415ac7699a 100644
--- a/pkgs/applications/misc/xmrig/default.nix
+++ b/pkgs/applications/misc/xmrig/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xmrig";
-  version = "6.15.0";
+  version = "6.16.2";
 
   src = fetchFromGitHub {
     owner = "xmrig";
     repo = "xmrig";
     rev = "v${version}";
-    sha256 = "sha256-AsYfByiI5W50T/kOhLtD/kUSwDOWMCo33OZ6WGmNcFk=";
+    sha256 = "sha256-RbpvEPjRwwGbjt4+A4tbnvEdLc+hH1VszE36xXnIxPE=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/xmrig/moneroocean.nix b/pkgs/applications/misc/xmrig/moneroocean.nix
index 431aac070f24c..94af6d130b983 100644
--- a/pkgs/applications/misc/xmrig/moneroocean.nix
+++ b/pkgs/applications/misc/xmrig/moneroocean.nix
@@ -2,13 +2,13 @@
 
 xmrig.overrideAttrs (oldAttrs: rec {
   pname = "xmrig-mo";
-  version = "6.15.0-mo1";
+  version = "6.16.2-mo2";
 
   src = fetchFromGitHub {
     owner = "MoneroOcean";
     repo = "xmrig";
     rev = "v${version}";
-    sha256 = "sha256-2JT315JbjiU8gAwROZL820MYC/v3MPtJVsN+vsf4KDQ=";
+    sha256 = "sha256-o2TtkoKa4DQ6tM1GdKVEmkWoJvnvxQc514wwgsfTDnE=";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/misc/xmrig/proxy.nix b/pkgs/applications/misc/xmrig/proxy.nix
index 6d1105506f566..d1c5fa5d649b9 100644
--- a/pkgs/applications/misc/xmrig/proxy.nix
+++ b/pkgs/applications/misc/xmrig/proxy.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xmrig-proxy";
-  version = "6.15.0";
+  version = "6.15.1";
 
   src = fetchFromGitHub {
     owner = "xmrig";
     repo = "xmrig-proxy";
     rev = "v${version}";
-    sha256 = "sha256-ZNyD0P1vuX/FBPW6tg4WRcNCJpz9/gY+Bhipqngv3jY=";
+    sha256 = "sha256-VbHymVc/swrRaEBqvYlCEVjYeU0ii9oSr+b6q0hlCaQ=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/misc/xrandr-invert-colors/default.nix b/pkgs/applications/misc/xrandr-invert-colors/default.nix
index 988bf29f29105..226907afe7e86 100644
--- a/pkgs/applications/misc/xrandr-invert-colors/default.nix
+++ b/pkgs/applications/misc/xrandr-invert-colors/default.nix
@@ -1,11 +1,14 @@
-{ fetchurl, lib, stdenv, libXrandr}:
+{ lib, stdenv, fetchFromGitHub, libXrandr}:
 
 stdenv.mkDerivation rec {
-  version = "0.02";
   pname = "xrandr-invert-colors";
-  src = fetchurl {
-    url = "https://github.com/zoltanp/xrandr-invert-colors/archive/v${version}.tar.gz";
-    sha256 = "sha256-7rIiBV9zbiLzu5RO5legHfGiqUSU2BuwqOc1dX/7ozA=";
+  version = "0.02";
+
+  src = fetchFromGitHub {
+    owner = "zoltanp";
+    repo = "xrandr-invert-colors";
+    rev = "v${version}";
+    sha256 = "sha256-MIbHNJFDQsvjPUbperTKKbHY5GSgItvRyV5OsfpzYT4=";
   };
 
   buildInputs = [ libXrandr ];
diff --git a/pkgs/applications/misc/yambar/default.nix b/pkgs/applications/misc/yambar/default.nix
index 96b44dc8961ab..45dba0a931252 100644
--- a/pkgs/applications/misc/yambar/default.nix
+++ b/pkgs/applications/misc/yambar/default.nix
@@ -1,35 +1,34 @@
-{ stdenv
-, lib
+{ lib
+, stdenv
 , fetchFromGitea
-, pkg-config
-, meson
-, ninja
-, scdoc
 , alsa-lib
 , fcft
 , json_c
 , libmpdclient
+, libxcb
 , libyaml
+, meson
+, ninja
 , pixman
+, pkg-config
+, scdoc
 , tllist
 , udev
 , wayland
-, wayland-scanner
 , wayland-protocols
-, waylandSupport ? false
-# Xorg backend
-, libxcb
+, wayland-scanner
 , xcbutil
 , xcbutilcursor
 , xcbutilerrors
 , xcbutilwm
+, waylandSupport ? true
+, x11Support ? true
 }:
 
 let
-  # Courtesy of sternenseemann and FRidh, commit c9a7fdfcfb420be8e0179214d0d91a34f5974c54
+  # Courtesy of sternenseemann and FRidh
   mesonFeatureFlag = opt: b: "-D${opt}=${if b then "enabled" else "disabled"}";
 in
-
 stdenv.mkDerivation rec {
   pname = "yambar";
   version = "1.7.0";
@@ -59,9 +58,10 @@ stdenv.mkDerivation rec {
     pixman
     tllist
     udev
+  ] ++ lib.optionals (waylandSupport) [
     wayland
     wayland-protocols
-  ] ++ lib.optionals (!waylandSupport) [
+  ] ++ lib.optionals (x11Support) [
     xcbutil
     xcbutilcursor
     xcbutilerrors
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
   mesonBuildType = "release";
 
   mesonFlags = [
-    (mesonFeatureFlag "backend-x11" (!waylandSupport))
+    (mesonFeatureFlag "backend-x11" x11Support)
     (mesonFeatureFlag "backend-wayland" waylandSupport)
   ];
 
@@ -84,9 +84,9 @@ stdenv.mkDerivation rec {
       X11 and Wayland, that goes to great lengths to be both CPU and battery
       efficient - polling is only done when absolutely necessary.
 
-      It has a number of modules that provide information in the form of
-      tags. For example, the clock module has a date tag that contains the
-      current date.
+      It has a number of modules that provide information in the form of tags.
+      For example, the clock module has a date tag that contains the current
+      date.
 
       The modules do not know how to present the information though. This is
       instead done by particles. And the user, you, decides which particles (and
diff --git a/pkgs/applications/misc/zathura/wrapper.nix b/pkgs/applications/misc/zathura/wrapper.nix
index 49f78729a310c..ccbde19d2aa3e 100644
--- a/pkgs/applications/misc/zathura/wrapper.nix
+++ b/pkgs/applications/misc/zathura/wrapper.nix
@@ -33,5 +33,6 @@ symlinkJoin {
     license = licenses.zlib;
     platforms = platforms.unix;
     maintainers = with maintainers; [ smironov globin TethysSvensson ];
+    mainProgram = "zathura";
   };
 }
diff --git a/pkgs/applications/misc/zola/default.nix b/pkgs/applications/misc/zola/default.nix
index 6c24f65d76241..2c205424fe4ec 100644
--- a/pkgs/applications/misc/zola/default.nix
+++ b/pkgs/applications/misc/zola/default.nix
@@ -9,20 +9,22 @@
 , CoreServices
 , installShellFiles
 , libsass
+, zola
+, testVersion
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "zola";
-  version = "0.14.1";
+  version = "0.15.2";
 
   src = fetchFromGitHub {
     owner = "getzola";
-    repo = pname;
+    repo = "zola";
     rev = "v${version}";
-    sha256 = "1cvvxiginwf1rldijzwk9gh63qc0ls5d7j3j8ri7yhk21pz9f6bi";
+    sha256 = "sha256-X4J3T/ob0NfCFxddadBtsPsDhfvesg6/sBJybWeubMM=";
   };
 
-  cargoSha256 = "1hg8j9a8c6c3ap24jd96y07rlp4f0s2mkyx5034nlnkm3lj4q42n";
+  cargoSha256 = "sha256-0tynm/DTX2oiqZOdWjRBGPk8IPIN07x2+FCXQmQ4Fzo=";
 
   nativeBuildInputs = [
     cmake
@@ -46,13 +48,13 @@ rustPlatform.buildRustPackage rec {
       --bash completions/zola.bash
   '';
 
+  passthru.tests.version = testVersion { package = zola; };
+
   meta = with lib; {
     description = "A fast static site generator with everything built-in";
     homepage = "https://www.getzola.org/";
     changelog = "https://github.com/getzola/zola/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ dandellion dywedir _0x4A6F ];
-    # set because of unstable-* version
-    mainProgram = "zola";
   };
 }
diff --git a/pkgs/applications/networking/appgate-sdp/default.nix b/pkgs/applications/networking/appgate-sdp/default.nix
index 397c64141ac99..e795e71554ef3 100644
--- a/pkgs/applications/networking/appgate-sdp/default.nix
+++ b/pkgs/applications/networking/appgate-sdp/default.nix
@@ -87,11 +87,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "appgate-sdp";
-  version = "5.4.2";
+  version = "5.5.1";
 
   src = fetchurl {
     url = "https://bin.appgate-sdp.com/${versions.majorMinor version}/client/appgate-sdp_${version}_amd64.deb";
-    sha256 = "sha256-wAhcTRO/Cd4MG1lfPNDq92yGcu3NOfymucddy92VaXo=";
+    sha256 = "sha256-gN9UAdn61qUZBJLi/9QiHjNRohbQQDV1uVHgcpuXq+Y=";
   };
 
   # just patch interpreter
@@ -156,4 +156,3 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ymatsiuk ];
   };
 }
-
diff --git a/pkgs/applications/networking/browsers/amfora/default.nix b/pkgs/applications/networking/browsers/amfora/default.nix
index 04871239eda47..0422ea5976757 100644
--- a/pkgs/applications/networking/browsers/amfora/default.nix
+++ b/pkgs/applications/networking/browsers/amfora/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "amfora";
-  version = "1.8.0";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
     owner = "makeworld-the-better-one";
     repo = "amfora";
     rev = "v${version}";
-    sha256 = "sha256-q83fKs27vkrUs3+AoKZ2342llj6u3bvbLsdnT9DnVUs=";
+    sha256 = "sha256-93xNzYPoy8VsbY2JyvDXt4J/gIbI2wzrCD83JUaP150=";
   };
 
-  vendorSha256 = "sha256-0blHwZwOcgC4LcmZSJPRvyQzArCsaMGgIw+cesO+qOo=";
+  vendorSha256 = "sha256-XtiGj2Tr6sSBduIjBspeZpYaSTd6x6EVf3VEVMXDAD0=";
 
   postInstall = lib.optionalString (!stdenv.isDarwin) ''
     sed -i "s:amfora:$out/bin/amfora:" amfora.desktop
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index a60f9da39bc61..464085d2116db 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -93,11 +93,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.31.91";
+  version = "1.33.106";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    sha256 = "LuzflA96UQehLHUVYdPDTXs+YuFLEkpzTdO2liGrWtE=";
+    sha256 = "XSqlQyc6gJthchfmq29d5+OVVSaxYG7zpVZNFZpl67s=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix
index 96729f1dcda65..40a0d79975284 100644
--- a/pkgs/applications/networking/browsers/chromium/browser.nix
+++ b/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -17,6 +17,8 @@ mkChromiumDerivation (base: rec {
   installPhase = ''
     mkdir -p "$libExecPath"
     cp -v "$buildPath/"*.so "$buildPath/"*.pak "$buildPath/"*.bin "$libExecPath/"
+    cp -v "$buildPath/libvulkan.so.1" "$libExecPath/"
+    cp -v "$buildPath/vk_swiftshader_icd.json" "$libExecPath/"
     cp -v "$buildPath/icudtl.dat" "$libExecPath/"
     cp -vLR "$buildPath/locales" "$buildPath/resources" "$libExecPath/"
     cp -v "$buildPath/chrome_crashpad_handler" "$libExecPath/"
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index 118e9c3ea38ec..7edec1f5a6250 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -34,7 +34,7 @@
 , libva
 , libdrm, wayland, libxkbcommon # Ozone
 , curl
-, epoxy
+, libepoxy
 # postPatch:
 , glibc # gconv + locale
 
@@ -150,7 +150,7 @@ let
       libva
       libdrm wayland mesa.drivers libxkbcommon
       curl
-      epoxy
+      libepoxy
     ] ++ optionals gnomeSupport [ gnome2.GConf libgcrypt ]
       ++ optional gnomeKeyringSupport libgnome-keyring3
       ++ optionals cupsSupport [ libgcrypt cups ]
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
index 4e7149ec1ee5f..2f070c5e3f60d 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -1,8 +1,8 @@
 {
   "stable": {
-    "version": "96.0.4664.45",
-    "sha256": "01q4fsf2cbx6g9nnaihvc5jj3ap8jq2gf16pnhf7ixzbhgcnm328",
-    "sha256bin64": "0546i4yd1jahv088hjxpq0jc393pscvl5ap3s2qw5jrybliyfd2g",
+    "version": "96.0.4664.110",
+    "sha256": "1s3ilq0ik36qgqp7l88gfd1yx97zscn8yr2kprsrjfp9q8lrva9n",
+    "sha256bin64": "17cyj1jx47fz6y26f196xhlngrw5gnjgcvapvgkgswlwd7y67jcb",
     "deps": {
       "gn": {
         "version": "2021-09-24",
@@ -12,15 +12,15 @@
       }
     },
     "chromedriver": {
-      "version": "96.0.4664.35",
-      "sha256_linux": "0iq129a4mj4sjs08s68n82wd8563sw8196xda27wk3pfpprr23db",
-      "sha256_darwin": "1prc7zbgnljqz2d89clpk5c0y48r79zmb9in4vinf3j6p2rxn0vy"
+      "version": "96.0.4664.45",
+      "sha256_linux": "15wybxlh38sw7f2bzalf9ivfp8262cpcvhq08nw9d2cj3j39f13m",
+      "sha256_darwin": "0r3b8wgbd8xjb09f4vc402gp77y2aqjk9hpqvvr6xgdr7nqym20f"
     }
   },
   "beta": {
-    "version": "97.0.4692.20",
-    "sha256": "1njgfz3kz1pyyaaskqc47ldy2gzc3c9a8mjib81nalzrqbmd3372",
-    "sha256bin64": "0nsaf46a9pl8cxw5v2zsfp2ynja4m55qi1m4mhwhmyr50138655f",
+    "version": "97.0.4692.71",
+    "sha256": "0z7ximvm4a78kxyp4j0i2jzklxazpw6jcqi9jkaf8bvq9ga8kqca",
+    "sha256bin64": "18wr4pgzfcvvdpvvxhpd4as2qnyggq9f8z90ikdz8yj8i71l5wnc",
     "deps": {
       "gn": {
         "version": "2021-11-03",
@@ -31,22 +31,22 @@
     }
   },
   "dev": {
-    "version": "98.0.4710.4",
-    "sha256": "0ay4bn9963k7bbv31wfc1iy2z6n6jjk1h2mn7m7893i81raisk8m",
-    "sha256bin64": "0n4kb6iiv9aih7yzrnr9m7znqb2p37grlj8by6gpjfikx3fxf5gg",
+    "version": "98.0.4758.9",
+    "sha256": "1sq6v2hdhpk12w37sz7jf5vwkn72ydcqzcxysf7hs2flcfgscydj",
+    "sha256bin64": "1jfj08jpxji2q890zbvpvmgf5bjqgvigkr1hg8ch8vaaybs5wr04",
     "deps": {
       "gn": {
-        "version": "2021-11-16",
+        "version": "2021-12-07",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "4aa9bdfa05b688c58d3d7d3e496f3f18cbb3d89e",
-        "sha256": "0jwjfbxlbqxlz7wm46vyrxn3pgwyyd03as6gy5mcvvk9aialqh9f"
+        "rev": "fc295f3ac7ca4fe7acc6cb5fb052d22909ef3a8f",
+        "sha256": "02bx3bp85kkis704gndb6jvjph7gv3ij746bq4anl30kfrkpcifh"
       }
     }
   },
   "ungoogled-chromium": {
-    "version": "96.0.4664.45",
-    "sha256": "01q4fsf2cbx6g9nnaihvc5jj3ap8jq2gf16pnhf7ixzbhgcnm328",
-    "sha256bin64": "0546i4yd1jahv088hjxpq0jc393pscvl5ap3s2qw5jrybliyfd2g",
+    "version": "96.0.4664.110",
+    "sha256": "1s3ilq0ik36qgqp7l88gfd1yx97zscn8yr2kprsrjfp9q8lrva9n",
+    "sha256bin64": "17cyj1jx47fz6y26f196xhlngrw5gnjgcvapvgkgswlwd7y67jcb",
     "deps": {
       "gn": {
         "version": "2021-09-24",
@@ -55,8 +55,8 @@
         "sha256": "0y4414h8jqsbz5af6pn91c0vkfp4s281s85g992xfyl785c5zbsi"
       },
       "ungoogled-patches": {
-        "rev": "96.0.4664.45-1",
-        "sha256": "1k0kf5ika1sz489bcbn485kmdq1xp7ssa80gbqrpd60xihkhnrm3"
+        "rev": "96.0.4664.110-1",
+        "sha256": "098mfcd1lr2hhlic0i1l5gxsq71axvqnn4gayr4r9j6nbj9byf4h"
       }
     }
   }
diff --git a/pkgs/applications/networking/browsers/elinks/default.nix b/pkgs/applications/networking/browsers/elinks/default.nix
index dbe25ea06a945..84f46f1b60d89 100644
--- a/pkgs/applications/networking/browsers/elinks/default.nix
+++ b/pkgs/applications/networking/browsers/elinks/default.nix
@@ -13,13 +13,13 @@ assert enablePython -> python != null;
 
 stdenv.mkDerivation rec {
   pname = "elinks";
-  version = "0.14.3";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "rkd77";
     repo = "felinks";
     rev = "v${version}";
-    sha256 = "sha256-vyzuMU2Qfz8DMRP0+QQmSx8J40ADTMJqg2jQOZJQxUA=";
+    sha256 = "sha256-2TF0rbmjwhwV2AVUXjfzoprzpeqrETis3AFhMftpaZQ=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/networking/browsers/eolie/default.nix b/pkgs/applications/networking/browsers/eolie/default.nix
index f6dc79a2a0f37..9a8156e0cf320 100644
--- a/pkgs/applications/networking/browsers/eolie/default.nix
+++ b/pkgs/applications/networking/browsers/eolie/default.nix
@@ -38,7 +38,7 @@ python3.pkgs.buildPythonApplication rec {
     gtkspell3
     hunspell
     libsecret
-    (webkitgtk.override {enableGLES = false;})
+    webkitgtk
     glib
   ];
 
diff --git a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
index 213efa8d99834..5a38d9d8d7a09 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
@@ -1,985 +1,985 @@
 {
-  version = "94.0b2";
+  version = "96.0b3";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ach/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ach/firefox-96.0b3.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "edbac6e1811e97cf9c8f9b4b65ad0709722330adeaa521314144bd34fdd4a182";
+      sha256 = "780a8e746a4a638ab9cfb69b1dca27135cdf64809883551c0e79e0409487660a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/af/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/af/firefox-96.0b3.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "437bb41be38350ba7c3962475d0fad1e3186379b93f751755978187960d27704";
+      sha256 = "44b86759ab9a5bb675d9d05029cef6e0be17eecbe140ad1ce5d0fc554a8dcf36";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/an/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/an/firefox-96.0b3.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "bd264763fd5cf9272736595e1b96509c6558561f49664960e14f4c87364f871f";
+      sha256 = "e4d73a06f2a918395c0428c4190cc080dd03a29a74f1677f297b6bd65ad488b3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ar/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ar/firefox-96.0b3.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "af3bd5415b279f90b625716217bdf25c3f8b51cbd0969c944755043150b7f069";
+      sha256 = "256f2b6d21cccddcaed24b511f71ca4bafdfc08ce989ad1eef45ab9bc009611f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ast/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ast/firefox-96.0b3.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "b83760c915d1508188cbc1d02ce210ab6ae4847b42f4e03f37b75134808a9576";
+      sha256 = "bba26f8b77d27c03a969e08d8974ec9f7a85e0237ca3acacc884f945a9b18832";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/az/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/az/firefox-96.0b3.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "7e28431db70a3a7c8bbedadd2e1abb32f3b69c8f571eb1f2e0cdc7d2c4097f9f";
+      sha256 = "da1c22e87189c991ce27929abe2172ccce6f4a25c44e836ee865550e259e6218";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/be/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/be/firefox-96.0b3.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "07b286100cd63f4b700c7f7ba88692010cc27b281a31ba411f65d4cb8071b7ce";
+      sha256 = "183bce430aa7ed98b72eb4492c5a9cf76a2e9961069140f272e438a5d20debc3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/bg/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/bg/firefox-96.0b3.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "8d1e1bdccd06eca90a233660c20a7e2127c0a352ef897f582924f377d5d1c4e6";
+      sha256 = "145c856566f9063ba861ade8220071623df793b279bf2a3821742f9e0023af74";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/bn/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/bn/firefox-96.0b3.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "d2b113a70009d5a5c9699882e8df8a707bb7faa3a2d37c3f84b63157c3d30cf6";
+      sha256 = "dce9827d70a5a7d182316d7286bc6cb4b5442d65bb5c3573d04b235b4a18616a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/br/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/br/firefox-96.0b3.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "0535bfe128414d7fd30eac04590c5932387d035fbf35d2d29048894b5267af90";
+      sha256 = "0df80c30b78cde55015fab74763c7606f75eff72804166b5095eb321b51fa4da";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/bs/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/bs/firefox-96.0b3.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "9dcfc9a016456ef20177a0ab5296b661a06c7738329e5d4c18637d42c6399e89";
+      sha256 = "1df386c5001327bea3f5675acd52946dab3d0d8ff0bbcf65f8b291ac26a565d0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ca-valencia/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ca-valencia/firefox-96.0b3.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "bec81b4ea39288303c6a62383b24589defea2ed35e71b355e67bf852c432cb57";
+      sha256 = "c271c6d047c4dee3ea806caec31e2719acaa55aaa608ad86283de45e22cd05f5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ca/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ca/firefox-96.0b3.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "1f3b8416e7683c6d81cf6f0c90a7dd74a6d0dc251e6c14d5eeed2b7de1530cea";
+      sha256 = "30a2deb4dd1bb82406731f71001950d01ffbb9aa7a24f333e8f322fb23032f6a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/cak/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/cak/firefox-96.0b3.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "162a8ffdc7b3840528f632278a1acb7f9ff23899f88ca898cde8ae0574ca37ea";
+      sha256 = "cbf31b80937ae4a425f4d5507a7f654958e7e93a6c12683c08982a3d14d2ba9a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/cs/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/cs/firefox-96.0b3.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "160234bbd7a68ab3376f37487385af9ee8d692298bf62cf2e4577636ccc34a60";
+      sha256 = "72c098b2512a40ce3437f7d329b46e648e4fd6e2d2b7ecdd1e3478b090cd50fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/cy/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/cy/firefox-96.0b3.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "f876e1ce0b9db06f1de275b3cdf9b8ac9481860a70689846191dd7c68dc6ae8a";
+      sha256 = "0c05717640e8ff2e0fb52a510dcf3a35db34b911cbc85d2721e7e7e6307f0083";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/da/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/da/firefox-96.0b3.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "980651fba5ead97dcdb05ea2f0b1dccc2947c985e2ab65aed8c239d1c85518eb";
+      sha256 = "c29f815b19cc03e7d628fef8c86e4f06862e268b760e230cc7bdd04c2618a852";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/de/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/de/firefox-96.0b3.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "430c4a2cad2d9cf170332bb8abd6e66d084e7e1221b63dcb7993d04d9c713aeb";
+      sha256 = "6968c6d591a3b43e169dca16628eb4675b8803b90aaa8f605ae35f2115a75d3e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/dsb/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/dsb/firefox-96.0b3.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "92e9665c4c6f01112374b4ff1b2778c020459a970a1dceafbe1257d9ad519f4e";
+      sha256 = "47a8cac44c7d813f23ce263e698dad6dad44181c570055973879e57beeb82ee1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/el/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/el/firefox-96.0b3.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "2db0291b5a827f86c2fa8c33770d1bc8ad88873e2d451b57df40c0546d776d5b";
+      sha256 = "476fcbf047743ea61d6e68d37a1bf1203d239667faf98abf5192f15e1b13b927";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/en-CA/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/en-CA/firefox-96.0b3.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "84330d6f6e648f996b8eb54f999a54f8c552f55a4cd17cb8aa2065d296692a0d";
+      sha256 = "26abc7c1e8aeef3e4898e1dcd120651dd30400a6da9a1c2af5ff02b1b406573d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/en-GB/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/en-GB/firefox-96.0b3.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "3f46d8f80747adb4f619806b8450569d6bbaa259792b9ebe9e4d7a3df54522d0";
+      sha256 = "66b299656f71875f59287c8da5a3c2b0bca53fb69ca9b0f7a0402ad1eeb1aa87";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/en-US/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/en-US/firefox-96.0b3.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "90a836f289c72d09b26968516df7fdfba4d1f19e035b102dcabf5c69e4c6306b";
+      sha256 = "37c37849f3d7125da14e3a71c8a9fa522b8756fea7e3e3f8a5792ef7c3285466";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/eo/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/eo/firefox-96.0b3.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "a01c2871905b78d8e2f6f53bcce50a1446cbf4595e38f21a8e9c74ffc0305b8f";
+      sha256 = "cd3ea6fbcbc947acbe1767be78a14fdce4c03b0b44d53e3670a0ffc5ba14dc68";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/es-AR/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/es-AR/firefox-96.0b3.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "5e6dbece8a54d5f384bab627e92f3481e3a3823a259d93a152f5e71f92f6d524";
+      sha256 = "f661d48a11f66fc326e86126aa5c0de37311042a454719cc609a1c7ff102e423";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/es-CL/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/es-CL/firefox-96.0b3.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "8ca362a3be8bb77fe390e96b23d04bc0902c49c9adbdde37c310703d9dda78b9";
+      sha256 = "056f25729222d95316034f0365679ff449a58e4d77624687cf9417e10b52085f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/es-ES/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/es-ES/firefox-96.0b3.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "1705fd9cef5991a0f88cc7c62412a2a6573a2aeac0514ffccbaa4dc663f94314";
+      sha256 = "64da785531a3e2f4b8179f3e9b551723bcce4c1210e184a03c98ec3e2ff1e220";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/es-MX/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/es-MX/firefox-96.0b3.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "8da27496f7674cea873dfe963e9e87871e9648c33cc4fa6eff0cc0717263bbb8";
+      sha256 = "34af4d1a91b7e09e80d2f89730851c508521d6518b0aa2d3ff1924a34f7efba6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/et/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/et/firefox-96.0b3.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "56ce06fec63fd6bcb9c71ac5cb5375864b2e8f9967e1a3d03dad37454dc9fa01";
+      sha256 = "a1b50e3ba15ae806ffd89ef22e12ee85ceda1eb17f458fb7e8abd6c4355a75d3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/eu/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/eu/firefox-96.0b3.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "03b0f33d0d960c044fe80990404e1f9480843cac11100769bc52f6cc32ffd5ff";
+      sha256 = "90ec59ce7774bade28052f4f8b5861476e3fb52878e48c8909d250fb6b6e17ad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/fa/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/fa/firefox-96.0b3.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "ea75b853ec5807b6e292c2fb0cb44f7529d9f9047892f03a674c24e0455b146c";
+      sha256 = "3f09ea9568982a451798dece61a8f19131c4c88e98e2c03b1808503051873e73";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ff/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ff/firefox-96.0b3.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "99f3232c806671f4d1099c2b3e72d5511a3377dbd601e9880c36f4c6db9d25fe";
+      sha256 = "a483b0aaf523fe404a6b3ec07611812a5160cf8a5c05b0fee1afa6838e1949a6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/fi/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/fi/firefox-96.0b3.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "c99f94936820657990d9aec946e664b7f607412df03d9ee9a87b5bfaaed4d66a";
+      sha256 = "12e17583c8932cfa6622ff68490e29d9e09d6862e8443ee1cd1d72f21f6516a7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/fr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/fr/firefox-96.0b3.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "f053084b00a5c22e1e0e257226c46716fed3425293ce8e57cc58f6a0e7c6bf76";
+      sha256 = "ac3809a3344ac239183a68551eebe5689c53c11c0a399ff4a94452a35ad86c81";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/fy-NL/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/fy-NL/firefox-96.0b3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "587dfd7904bf5d077a8f61417bd635547e71e2926980730b9ee93fa83109e7a5";
+      sha256 = "9385c2bed2d3aa9b65651f396d9a2c6f8762dc4295319757f949fc9f04a6c717";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ga-IE/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ga-IE/firefox-96.0b3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "4a549683496ad19adb87c87c01eb296cea59d309c494f55f7512d9ac3fa23f7b";
+      sha256 = "f65df6f4d93a39b5bbb1c4c7827eb094a632dff7255b78affc7cc9794a28d3fa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/gd/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/gd/firefox-96.0b3.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "bc8a38559c327121f2c8d89a8f511446db83ff2fb9c554661020b8624ff5790d";
+      sha256 = "3cbbd914559e96205e665ad46cd9ba193428cd8d83df90c4fd4849cc11db13be";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/gl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/gl/firefox-96.0b3.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "9412b3f98618a40e4e66542db3892f4d276d25d3ce86c336fe3297edcd9c64e1";
+      sha256 = "7b27f83190cdb84d2d9fca9bcb37bd1128086adfe772e676141fd9960c0de872";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/gn/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/gn/firefox-96.0b3.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "1664f221bc7a6faad6eb1cbb2fcbf083626f80883703506a8a79eb9562e02a0e";
+      sha256 = "0194000216bb517390d301166c37228e2128f3b15280cf21629fe13de5f536da";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/gu-IN/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/gu-IN/firefox-96.0b3.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "556e8f38a0743a421a4fabf658eaccada707e8f3164c9eab7dbfdf8b301fea3c";
+      sha256 = "24c92df984f7eff4f294e27324420b0350c4069acade0a304a3e433ea11fadd7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/he/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/he/firefox-96.0b3.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "aedd0af01b30b582d601bbd6c52234218c702eff7eb17d0af6c6c6aff838f984";
+      sha256 = "5a006adead9f8e647eaebbef8ca56a47116ad2fd1c308c4986aa81bf7618f815";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/hi-IN/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/hi-IN/firefox-96.0b3.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "879bb929c4f871536eba1c479148ebeda4d6651dfcb9832fd981673e3eeec850";
+      sha256 = "e8d87a8ad9033793e0c25c8954ddc4f405274468a572f46af494847481bedf11";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/hr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/hr/firefox-96.0b3.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "ec26e00627ee66b2d4113871e13995b4e60dc91088db30d318ace4f9bea4e903";
+      sha256 = "47964a5caec7f8ef0546ecba49e0d995dc9f67947fbcaafaa02789bdaa75e6c2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/hsb/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/hsb/firefox-96.0b3.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "7950d84ad252c9ff6e01d7ae3506a1dd69b9d9a118f2df2e5234a5a987651f0e";
+      sha256 = "67f89985f60d21b04a9a20449d38d673c45e74e82a1d5762d82713c02d3e63b2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/hu/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/hu/firefox-96.0b3.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "9700bd647b0a074ffbeb2c1b71b422d0a15a7da1055c92c29897abbb7f54c4ee";
+      sha256 = "2716ce5bcfaac25456a144eeff6e6b173600d08016574812abbb315a4d001ca1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/hy-AM/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/hy-AM/firefox-96.0b3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "5c8e6dd327ca3b07e64c9e2e33d31fcdfffdff8c716577a0a89ba680635c8c61";
+      sha256 = "c028cfa29f0ea60f284d749dc9818772c074efe3d295590a34a3d6a4548a8f7f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ia/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ia/firefox-96.0b3.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "465094fd3b6f035df4f603ca55acfa8c75665d5b92e3527973dbc26697913105";
+      sha256 = "5bd24eff8a4d95f27ff8df44d014d007c943a54fd1b5689435a1ce14b7f61375";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/id/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/id/firefox-96.0b3.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "ea3dea0c2a091707341f19f64995bf6a41980be8ad915eb547876f34bd8b5e8d";
+      sha256 = "0483ce90f8702febedb73674d3cc23348a4e7ef62445084430636f0c4c1fb287";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/is/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/is/firefox-96.0b3.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "dbb1a792245c9e0fe6fad749da27679d45d0d892044e9779b25143d2d34d247e";
+      sha256 = "d7b41cb2cd6ae22547d2c4d04dcadd5c4c05a4abf2b51d495baa749d4a2158b6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/it/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/it/firefox-96.0b3.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "dda28b54be15f43ecacbf490099270cc1cd279b6801a2bbe84cb8c0ba092ff27";
+      sha256 = "f5a5a825787fef1f8c4f2a0f0c013e8d39bf1a08c4523d79069c5fb335c0e5a0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ja/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ja/firefox-96.0b3.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "e023f941584bd89e9465076aa1912774d64d8430ad7bc75d8bd5f4cdd1b6efbd";
+      sha256 = "64d8c649de837049c2f0f73736a74f141de5bf426e11d19f4e0a5553cba6412e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ka/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ka/firefox-96.0b3.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "24ee80944e4101353f5126d2cdbb2d9f1023656ac638f3975558efb24b13378d";
+      sha256 = "01ba137970e9b538bc09195dc3da66927b56fab6204bcab60a85e03055c80a0d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/kab/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/kab/firefox-96.0b3.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "d5bc4455950dd952a936247b0f3ef5a4fd2047bba599c229bf2b7c04e716d7da";
+      sha256 = "3a6b4e12f88226b0f19dc066a0f11cadf5a47d87f38540cbcc9f34e82c54290e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/kk/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/kk/firefox-96.0b3.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "85ec8a29e24aa5362fe4b3b397571c2bd479348ce63c2adf63e8006b7555aca3";
+      sha256 = "ecb9e0e63eb778892ce15d5df03e50bca8948a6e8dc3369b030cb716b172789a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/km/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/km/firefox-96.0b3.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "a9fdb04131c7b761426b68748b491dcbf1ddee41e063dc222045ee84fb2eab2c";
+      sha256 = "31968f898a8916705c67e71bc5010cea11bb43e544f27febad644a624b32c773";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/kn/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/kn/firefox-96.0b3.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "3de931130e6136287fcd0983e975188c3110611f14f28838f439149ad00b0a74";
+      sha256 = "105f4f83a1e0ed15e568a218d49fe5108462db67cda228e088cde3679dd48e04";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ko/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ko/firefox-96.0b3.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "17012e23c8dcc5c136377ebdd6e0c4035eff9e4a605bd61df21ea5b2ed9f0189";
+      sha256 = "37932385223cebf7a3f59c362c2abfca321bfab0fd6e5e3da6daa0ec76257784";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/lij/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/lij/firefox-96.0b3.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "96ccf4a71bc2feff202374a63330c4e064ea0d50c6687bc5fd2c372116e1dfcd";
+      sha256 = "ae5c8fbc88f15edf60fa1830ca19d32ca3277194c0669717360659da5ad07b68";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/lt/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/lt/firefox-96.0b3.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "2eb4c4b355888e9b540d1290d7aea0f0a0dfe3eb0d03e278b1fa20eae43cbeff";
+      sha256 = "104cdce0099e51d71d3ae3b8fd4ec40a256d893450c8fc905035480be5d675d9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/lv/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/lv/firefox-96.0b3.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "27cf7a6f9cb6ff304ed6169fe97e519e19049e9608f7cf08313c36d7b1640e08";
+      sha256 = "d2e0055207f62681e4cc9c11ae1cd986179af1581af0252604762eed6637e726";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/mk/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/mk/firefox-96.0b3.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "1cb76b49d0323c194f47bd64a8df186c9724de25449b3f6cde123425436a4d6d";
+      sha256 = "8b03198b1d6424a1cd024fe17ce62a99c8b1b8c41798b0e229f802752a3b4551";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/mr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/mr/firefox-96.0b3.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "7a60b912f369d9f344b0fee98c4108ccf87cb643712bd7033bbb139634e1471d";
+      sha256 = "5f5b132f3292cc0938e28f2c483a03b8ec76a95a306d3a928f2a2bde03f3af76";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ms/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ms/firefox-96.0b3.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "788a127d2f75462cbdfd4f5915777d81095e2a8bb591bfc256d1b604987a17e3";
+      sha256 = "9ba3cbfd2061d15356ebee861bad6d78be0cb5f4ea0ad9a13170ecdad67981a7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/my/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/my/firefox-96.0b3.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "946911b98f0d7cc6765ec7e88db9d19ce4b908f0e53fd6f79ff27e1d45eb2b88";
+      sha256 = "700d224adc519fad23798afe919538ae54d53cfad4a74974ecabdf254afcffba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/nb-NO/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/nb-NO/firefox-96.0b3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "d1703b56d9796af0053605cc1ed7eaee69bd7f30d470cf8fc18b074e8ecbb529";
+      sha256 = "a75fa004af0cef3548238264f7997ad60bcb46d415e3e91ff6e9b16bb86a4a9a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ne-NP/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ne-NP/firefox-96.0b3.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "3cc448f48a8aac7b61ceab0cc8e46402795c61dd1bad66dee72b93dbbdeeff02";
+      sha256 = "614d82dbc762f0ef2f565d95e5bff8d4212f8fa8174f294877e0ce155d75fb09";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/nl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/nl/firefox-96.0b3.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "aa4857320b95c78b6434475ada060ce78d3a36d71148d8b24b5868cf3311b916";
+      sha256 = "a6b8f0c827443f32c25c478aa11981d714a57fbf752891c2f018fa9542820e6a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/nn-NO/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/nn-NO/firefox-96.0b3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "227414b8fdbcf31ddcafac4c3ddb25ac34154a46db3e1e93f8cf26477720c8bb";
+      sha256 = "6227882b432684768b739058e7f1aa15e92157348e19b36053e70255172f0b04";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/oc/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/oc/firefox-96.0b3.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "22924d95c07426b40b201bb6c659421f43d8f3c36c50348f053c8f8654430706";
+      sha256 = "3b2590ff70bf7cf8998dda933506c86515ebdb81b031fb15f925b02d5cf88f04";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/pa-IN/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/pa-IN/firefox-96.0b3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "418853a0c95d16cf9277b8b5210ba707a427d68d2390f3bfb9917bafbfe2b947";
+      sha256 = "09bbea80b952af6eb5358b2afbc785afbf04ee44a27b38f2f72dc6fa49417086";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/pl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/pl/firefox-96.0b3.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "ede88f034e7541851a21aae7329bb5f60c767cbc163fa6a58a67cdd760382899";
+      sha256 = "f0ef3e5e72fcf72ff49a5b631bb9216363fb01440da41d939e4b653e84527694";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/pt-BR/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/pt-BR/firefox-96.0b3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "679efad4343b9fd6c9869a35f5c1e74daf902014263ca06f957740f911cfe56c";
+      sha256 = "dfe183f6a40d50e3871f632ec79f397e302fd130c43af2c26c6b24acc114c4fb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/pt-PT/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/pt-PT/firefox-96.0b3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "45bdfc0cd916eec6628618fdcdb042df9207193a6fef74e539bdce548c985520";
+      sha256 = "c12fb2fb918a38a39655f3350676f290151e2fd6e44acff88379f3c4752743cd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/rm/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/rm/firefox-96.0b3.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "7bbea6a1d8fa099d7882758aae43136dd413724d3dd17fae103a32b7f960e879";
+      sha256 = "14d1ad150edaa100c535c9b007fccd3bbfc0afe09d3035ada361c202ab31cbf8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ro/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ro/firefox-96.0b3.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "9540f4015850aad6561d9c03b39ef36f1b2c6497d240b7ad5b43e02a73cd003a";
+      sha256 = "cd99ae37b4e8552cae7911c86f430900d8d21c96264dc2940c335cc050b8a62f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ru/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ru/firefox-96.0b3.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "7837ebd163d03693e504d50c70c6798f228b89bdb9ffcb6a892a350a211cece9";
+      sha256 = "0cf0c23c90f24ef417b460f57b566b87e06ad11df178ed3e7006a7a7a8acf7f7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/sco/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/sco/firefox-96.0b3.tar.bz2";
       locale = "sco";
       arch = "linux-x86_64";
-      sha256 = "43be1c890d3aaefdf1e7671c3ad1d177fd2ecb34df23369cac5d9cdad6404eba";
+      sha256 = "58bc7ea18c851d5a88c047bd41b836e9beab1f04289d0fc33e0b1d9fd7e55b3f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/si/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/si/firefox-96.0b3.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "08f5c9fcd42937bb7c56fcbb82d39570a08dd88fa82afd6defb12468dc8116f6";
+      sha256 = "13914c46edc3e5da87c394468cfe83f0811359b2d30d6572b1c3c9726af45c3b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/sk/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/sk/firefox-96.0b3.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "ba0008b1ce61baaa4026cde2df5e643fde36d8442e5d7a4eb60bf366d913d75a";
+      sha256 = "818fd12a70a50061c507c8e06d7118ea7d1062ac905f8b70d31010710df642f3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/sl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/sl/firefox-96.0b3.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "7192260868cf36a31b8f0e655a623a06c9ea6a9f070b62517803a4f5f922c650";
+      sha256 = "1d70241ed0cc861c79165a770a73b580496fbbbb6a2530701c02073c9995fc4f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/son/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/son/firefox-96.0b3.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "ef1b7444683e8232ab043f539a8822e18f0de181a99c205d3d1258f4f3d4fba5";
+      sha256 = "3b906867dc5a0ecf4dfb0e034c8e97a3fc39e5d0531ea483c8a408b32df860bc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/sq/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/sq/firefox-96.0b3.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "3eee3b72f4deeefa66f4214347d5800421827e2d402c1a1b594c8c57fde35fec";
+      sha256 = "b23189c437535a4fad78bab37b81d95e3fe5774a8c3c4c6bd6d77d7f785d2e30";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/sr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/sr/firefox-96.0b3.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "63cb0b927a324afac3e7ecbdb899f970ce24008ce95d2179afae3eb06543d713";
+      sha256 = "08dde33689c92e2c23971b0aeec581ba420b502a118c45799e35d52087113055";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/sv-SE/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/sv-SE/firefox-96.0b3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "be7023d2f9d23adc466fdf79206694dbd2e17ebeadb6293c85a82dbf6e966884";
+      sha256 = "3a099e8247e4f15879233624489f4df971493bde2019f47a18da3523e0ba142c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/szl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/szl/firefox-96.0b3.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "95714546832f86662101ba73c560d38aa9850fa90333feef7d9ff8267f295296";
+      sha256 = "94497a259e974c3c13bf2a74a4a91180710b57402fa47bdead77cece66696b32";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ta/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ta/firefox-96.0b3.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "6bf28669ddf04df959d24b960d9f67ac9fd1bee97743d28cc21bac1d8fcc16a0";
+      sha256 = "006458ee81bd21b2cd3acd5b7893e90cc97233a3507b2247355b183164771502";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/te/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/te/firefox-96.0b3.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "8c59a61fb25662936ca2ad8e19a84058aa22d85103d75c76493eb30b2762eda1";
+      sha256 = "a1173235bd09193a5fb6081db6af934ac5cea619bcf612c244423cdfaef75861";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/th/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/th/firefox-96.0b3.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "984d1a346179dd819de86e970f3cacb0a89ea026c86ca56edabd7855b7bc7afa";
+      sha256 = "ce6a04ad52b0ab49fd4db6724fe43c1f054fec37fe2434536985642fba1999db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/tl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/tl/firefox-96.0b3.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "19617e8f8f2aeaaedcbbe33d8bb2421cd8b1eba399ea860d6c7d1e209d5dbc66";
+      sha256 = "10f31d9636f9124aefd213ecb06da9be7ddfe70e2413ce66a1c1f84407f33319";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/tr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/tr/firefox-96.0b3.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "d953044a4b63b5e5eee29c782c12e8e55350dd638c199ce1390361b3ea509f34";
+      sha256 = "c83e8170ef55f271fb9c933505cf66d4e42eb8973d6e1751c903ecda3bc92cd6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/trs/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/trs/firefox-96.0b3.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "738504b47da44370d49c0a7aae03317c3f83992d1be913189194f0e0ce1a3dd9";
+      sha256 = "484905693e9e952a56627561f10ab429e7ddd2df5b534252f60aebe52ed41b95";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/uk/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/uk/firefox-96.0b3.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "88243361771fbee5cc666bf8bded017a68b4ce1d608e4e13f29b1e58250de2a1";
+      sha256 = "e17d15802c8d94770c6368aac7d46585483353053968c66f40f326dac00587d0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/ur/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/ur/firefox-96.0b3.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "a10538386e72d3051de739cfed8422b4c48eb1ddf5389589b49cd6079a5136e6";
+      sha256 = "e03b1c472787bf1ccf33568435b7873a4d6e8f43a0b82a01751995e8ccebda9d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/uz/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/uz/firefox-96.0b3.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "f07e249bd9e106b7513a65e0b0bf8915adc7d6c0cf65cba983c8763fd3da9aab";
+      sha256 = "1952bac0df8fb98273d0a4310f3141e928e6718eb1a91baed6d692088f041171";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/vi/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/vi/firefox-96.0b3.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "29d7bc28680f4694eb66ec898be74089c34ac73536b6bffc26a74ca8a424c537";
+      sha256 = "4d3a70f4cff2d11dccfeabe15c30ed99b74bf5058ad8f8c795d9bfd2db1dc11c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/xh/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/xh/firefox-96.0b3.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "771c98ac9bd5420bff5ab955882114249d274cd1dc82f8fad24885efca302069";
+      sha256 = "dd1c33d8a1769f2d4efa39eeb248a7cb6e2993f4b3bee38884fd997d7f20e026";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/zh-CN/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/zh-CN/firefox-96.0b3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "670a2a1b9e6805aed79909474c01b771d7fd8215fb2bc0e7bb79e890cffc70eb";
+      sha256 = "623926088fa86ff736832cb35044d7d134ad1f4ff31666ba7dcbc31619c3a07d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-x86_64/zh-TW/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-x86_64/zh-TW/firefox-96.0b3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "7265b78daf40004d7767d17b500a50d06f0d6bd0ea3a72d341732b6eea3d85a7";
+      sha256 = "6276f0e417d45cad209e0f57ac0276f52854f5172f7829684e4c8a49c0e78fde";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ach/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ach/firefox-96.0b3.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "2aac8adf1d0059b9d6ac6cb8558cc87738a60600260ba3c6267d5ca0091dcb35";
+      sha256 = "0412368189b73bf54d5679c22271ca82f47c10ca1288431fdd16a42d51cbfb21";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/af/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/af/firefox-96.0b3.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "5b53daa874efe434aaf3e9ab913a7eb5c41de3dc5bb45218375761a4a9251064";
+      sha256 = "67060ebdf9d7ce14c45db9edd588f99fe0485971674f791691766127a656575e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/an/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/an/firefox-96.0b3.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "44eb267e3e38957fdf328bc7c72f35286c0f4de98ea16b419d22650c464b398b";
+      sha256 = "2c79a9307bfee1727a19cd212fed10ba02d31ef49bd68a51cf0ca0a7faccf2ea";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ar/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ar/firefox-96.0b3.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "cf12aca145ee165cebd17b0e206ce3bb874f0b06a910f34bee4ebd7bd20675b2";
+      sha256 = "a6ce4fdcb3716e2f70fb83502fa9e9e90489ac58d26a25627eae7b8402a0562f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ast/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ast/firefox-96.0b3.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "5742c9397cf56356f8377516bfd16098df3ec690282ea1b01c2121e80855aafb";
+      sha256 = "21e4519d0403bf3e158eefe6c79d8283f2cc1e0875d91acdb995c0e83c56a9a9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/az/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/az/firefox-96.0b3.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "28c52a7dca6db549577e072bbf055701706e4bbac9a65fc11f8f2bfd62c6760a";
+      sha256 = "0c1eaca5b928c2a1cc5a60a2dbbd624280ed2b55f10446bc886158e95af39199";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/be/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/be/firefox-96.0b3.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "d50cf3da85aeba9f967d23cb1d661f6ac3bddc032ab14ad8790237a7eebc2dad";
+      sha256 = "e7716acc8417dbee838710d3efe670e081712ed3facb26bfa43864a574463ff0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/bg/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/bg/firefox-96.0b3.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "44e8f8477b5bf60546e712ea054fb0f736c593ccfa76d744c5f7ff092f8756e8";
+      sha256 = "a90e61e0b5a31ffb7cebe747e8a6512e68baba210f234913af1ab8e90c79206c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/bn/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/bn/firefox-96.0b3.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "6a70df8153b96afa2b3489e40781b3ec56cd40515ecce9e682f2236a395c1224";
+      sha256 = "e75ccfcac893ac7d54d8cf849044385ed0749de77dd53be7a1b1686949a4699d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/br/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/br/firefox-96.0b3.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "e999ec80dec5e33143e911a3f0492e68a8dac43088a9adf9a9a644fd87905b6b";
+      sha256 = "9c2286f7cf0d5052e44ac9aacf139e2c8abe9d212407960663819a8aa8436bd4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/bs/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/bs/firefox-96.0b3.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "d500cc9f6e898626efb8e987649f4786988c0977342a46c2ed02c5c5ef540043";
+      sha256 = "ceb98c5fb103e80488f8821027144b0d7124d0f76d360b6139308763a1ca33c4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ca-valencia/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ca-valencia/firefox-96.0b3.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "0f524bb723d1c62380f5bb1e6223ee6c2469a08ddc643dfc36e21c0c82153803";
+      sha256 = "f648e363da8ec8caa13ccfcc4d586efe0ac4e0b0d3574d295c95ac81dda937e0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ca/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ca/firefox-96.0b3.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "e41924c1d4a6161da982a50ab6556a0dd680db8bba3a0399b0fa2a950667bf2e";
+      sha256 = "06b61c45238b90f8bb838193fb5035dc63c48fba416f16b7ab9463597bb92ab2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/cak/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/cak/firefox-96.0b3.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "a598adefaae52af1da8649965a1b8ba96316d0c6fa13fb5d3c482e7aa63a00c3";
+      sha256 = "ae0ce800b1455aa4c607123ead63edf228a55f4bdac14c267746cbb640f60418";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/cs/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/cs/firefox-96.0b3.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "a4833932ee61dd26c552c01b9b6c7d91efe25d7a2d9a63fc0ab2f7700bb2d508";
+      sha256 = "1d7f47bdc98efaeda62dc2f3d1d16949a8cf3de96dcf87fdc30015ac7fdbbee5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/cy/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/cy/firefox-96.0b3.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "865c431769651a68946d7496a293194eeaa50886d2d14496b2d06ecae97d0f02";
+      sha256 = "4a24c3368e2f88f75f81af2e17050e41160d99b27720517cc34a7772533ddcc6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/da/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/da/firefox-96.0b3.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "90761a3f5ce8340678eb1bde13dfb646922cd1c42edd17dc8eeef99ddf5a94a4";
+      sha256 = "5282d6c566361c74d5fb8c8d0f992ba5e929f2183b3abb9d479d7f1d53470dbc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/de/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/de/firefox-96.0b3.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "cb0e6ee6fcaa7e112f5c8a1c32f1423ff718b1413f5ba8c1c8807d8513d7798b";
+      sha256 = "f88988016fc2a8fa5543822d6fb1ad84c57f8f0d8ed2bafcc63552efb2361085";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/dsb/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/dsb/firefox-96.0b3.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "028fc876c1156b48d670b97c750a25ec442b2ba6a68a28a7cd1b81c3a1db410f";
+      sha256 = "252a9f2b5b99100abcf4ccaaad9982d48ebf903a7761d36e2aef766985fc0ec6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/el/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/el/firefox-96.0b3.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "b5055d99965a01312dbe339113ce2495c23dbd38cf93a994ff5622f9b61835fb";
+      sha256 = "8e67fef2d4e2cf87a2961c7deebd244a1dfc7863e8474510aa196d54e199b4bb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/en-CA/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/en-CA/firefox-96.0b3.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "a83a7457ad8f4ba12feb3c7824a8d9d211dd88e9f862a9f5127bfb7bf4896075";
+      sha256 = "a687d4abfeece55bdc35bb000a802ac6a67bad8af6cdcf88802b7d42c486789a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/en-GB/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/en-GB/firefox-96.0b3.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "ad3ffa6449f1fe0f65cee89a64f9b392131c0a765704f95ec94cdc9f7d4baa9f";
+      sha256 = "27819a8e87dbce94ca4bb2b3465153c6ab974c52bb81b2517fc685b2089548f2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/en-US/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/en-US/firefox-96.0b3.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "baa1bea27fddd11c6781a48ea677724bce4c4246125be876d17122998d9a7f4d";
+      sha256 = "21cb440725cf0378021b4a6a858fa3d344b39292a61e4a774d065e9e41668e24";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/eo/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/eo/firefox-96.0b3.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "568e14988abf65cfbc9d6c73adfcd5716f909b8a6fca3fb120a6cfdeb9e69e2d";
+      sha256 = "ed0bb4aef9a5ff6790bc36f3ec45bf140ff23343a36716bc59fbdf4cb31c0976";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/es-AR/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/es-AR/firefox-96.0b3.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "c90e3f18ecf370d223365c1d0f91b785476d0abc680fda2f86247e25387004c9";
+      sha256 = "436ae41521b50068bb5fc9768936c4a4b77bb0a37f48ddb84cf8946a4a7ea76b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/es-CL/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/es-CL/firefox-96.0b3.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "c0f03f3762ca094a7562f312a4d8de177da3603f3e10ecdebb8d53a0573be44f";
+      sha256 = "dc354dba3016dbe13ce744fcf654b292254c8fc0f53e55218952c6fbb961fcaa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/es-ES/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/es-ES/firefox-96.0b3.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "a105f2f4a70c891e4e29e73871919e0eee5882080bc5f5fde408b3ef5b68d5e9";
+      sha256 = "87bdfeab9856f13736ead5c3157d05a5d0b73c27a2ad0d7537bb63d994cf9703";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/es-MX/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/es-MX/firefox-96.0b3.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "a1f3a1bbd0c63f96627fed01fea147520e0df328aa0fadfe3dd1a7f6bcadf0c0";
+      sha256 = "6dd1f7fcf13e9c651d3359eadb1b8b2c13aca121e294ee5856f663a712438ebb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/et/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/et/firefox-96.0b3.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "de90af4dc817d9df6273dda7ee1c7a9eb360c758220b501b37470cd7d8704a7e";
+      sha256 = "fa5e600d2cddd4c93596baa0bce310cdfee9eef12df808968972382bee32f57e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/eu/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/eu/firefox-96.0b3.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "32eaea585ba8b2d4cf2974b7b78e57657ed8aa3fc7e005453197c3aa1c96abd6";
+      sha256 = "1b277fc9646ea8d060c1bb554ca04e42b0099c70a44e697990ac4289712eb12d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/fa/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/fa/firefox-96.0b3.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "07810ba943fe1f8a129d7d5795a6bc96852b216d9988ba96776647c7f33a8f62";
+      sha256 = "370329076e609bcccdda5f472b334cb8dfe3df0e8eb696d22aadaa44f8b0b539";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ff/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ff/firefox-96.0b3.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "6a9bdce53ea3b5546b938b2ee9a1b47be4bd1084cb0461740518b4efbb6138af";
+      sha256 = "9b9e685fc94652195b00b5a959e48d81142b7589e0ac9d163c39f07cecadf27d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/fi/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/fi/firefox-96.0b3.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "b9145e2b96cf240f4309b8c240269ace21edb90925f140cedf7fca6c74692015";
+      sha256 = "f4b851f9a39fcdfea9034edf0f4930632da04d9a3b949c65b682e30dac63cb45";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/fr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/fr/firefox-96.0b3.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "e3b6b6a62a48a154d28f132a597d265c51b31fc25edbdc2548020e8ca25953a4";
+      sha256 = "e72943c2f034282b73aa136b272dc7e7e9d2bdda5b2c2db045029f05a0e8b14a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/fy-NL/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/fy-NL/firefox-96.0b3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "be2ef81fc49fb6ce874d5efb62b1bc1752ff125fa4ba2205a1dbdb5064c7d072";
+      sha256 = "e2451341887d6dc51f3aee8c8b9a7dc65277e3cc9df9e2fafacdf67da838e48a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ga-IE/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ga-IE/firefox-96.0b3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "5fc3a6df099ba9e0230717c7fabc6026583818bb0b4a27f465dd27b020a0c475";
+      sha256 = "01a03a21f479475d224fa7559a5b4e98bf978f61f4e472a58b1d1d272cf5fb24";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/gd/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/gd/firefox-96.0b3.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "d6c799bb7c0f13ea956d878462e625425dbc4ece9547514cb12dd9102553c44f";
+      sha256 = "b64c925beb57420c5c76c4c4ac78282beabe4a6ad7fee19bd6bd4a9af2153422";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/gl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/gl/firefox-96.0b3.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "6268596e62294f38ab05c85373ed99fc18f69bcb4add19d6dd201b92d066b454";
+      sha256 = "250ac76432b7312bc1173ee34a32d0e658c0ea658664eb296b7c5dc2c1fb6ca2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/gn/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/gn/firefox-96.0b3.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "de044826177ce892bc5ce3ef1bdf46882759bb8e49e2b6b36df47cdf34b2615b";
+      sha256 = "bc3a716efd7cdb0538714ba3469a5303a9496b0b1f81d43a41b55434c047c991";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/gu-IN/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/gu-IN/firefox-96.0b3.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "586e731cdc1336ac6d1894ff4f79d67e098bf203384c2944f33a8185a7b6d183";
+      sha256 = "c6d2e017c5269064a5716d54f5df9f2e2dfe621f9f24e7d2a9dd3bfd6b47983e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/he/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/he/firefox-96.0b3.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "42fbadfd03343c5e878abf913bb45283dda50fb3c9b52395be47d939881a8420";
+      sha256 = "0f3e2947b7e03ab0197af6817774a7e0bb11fd5dcf13df23ad3cb2899da49cba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/hi-IN/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/hi-IN/firefox-96.0b3.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "3fa42bca8f7816b8ab2c87c783f326c55cfae8a04f578f4b7ad71477e9b4cf85";
+      sha256 = "161d898a2d74fbb709fb3d19c7444c9892e035c2876f66384c920ae3f76e21f0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/hr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/hr/firefox-96.0b3.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "69d0b032973f80c05ea79d79e98b2f9f4084199cffe9ce486c2a1f7a57fc2569";
+      sha256 = "8bf24778507063352156caa82fdbaadfde5c840f2637196d87cd314ee89a3833";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/hsb/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/hsb/firefox-96.0b3.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "6e78186771e988d87d4cc1eb341ce7fa37b53cb1a34d221dadcf694457a71912";
+      sha256 = "77f1a913c4e2973593edf6982eaa767185ba4b8ae91c16b967e8f3c7e82d72df";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/hu/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/hu/firefox-96.0b3.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "5fab0ba23aebd9f717f799ca5783150796ec14c9c45d1c709448e16bd37c9f01";
+      sha256 = "f4ae877d906e7427703df3f219c0c95abffdb995328a80de3b069cbc5eba4a42";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/hy-AM/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/hy-AM/firefox-96.0b3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "fa0de5ec5044eccccec5d8a2b113f7ea1aef59d3a33197bc21774643aa85198d";
+      sha256 = "0d3371fe5359ec1d23dc58e00151ee81838c18a8e9fb665d48c3276ffa34809d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ia/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ia/firefox-96.0b3.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "87608b529985a8949e29394a9bfeedcd5ffeb67949923358fd82c27c6b351871";
+      sha256 = "7194d571e3cd92afbb8e19c5ecfe15e0c0ed4af28961008efeaf5e475ed8c1a9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/id/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/id/firefox-96.0b3.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "c6d5bcf7db0582063cf42b3b9d8793b4941bd13604ee7cab68fc919dbf160907";
+      sha256 = "79a5a4d97a106dafb9ff6ede0e853dbbf24aafbc3f654f5b8244ba2a09ac6ff9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/is/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/is/firefox-96.0b3.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "0de58066c6904a9870fc79e144e50cebddf61bab26f346dff8d3d8b4339eb650";
+      sha256 = "fbc2bd2dc236706d1e6599d32a6aef5b4dea0b2dbac4a0d59854205dc66c6958";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/it/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/it/firefox-96.0b3.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "aff66e83da3a968e003caf4df9278a85e9bb15e0cda0173b3e73339c1c85e481";
+      sha256 = "5d1b79b6be89b593f79982460bc10d160f8914c4544a802045562547b59ba364";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ja/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ja/firefox-96.0b3.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "3205dbb1ccec432962d90c2cb533244f1baf47d01b0c77801a827a85f89de328";
+      sha256 = "c55511e3e8546d31230e8735a85e9c2745d3358567e424324bbc850c8f9399b2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ka/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ka/firefox-96.0b3.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "d14ee6a00e34495e76af31a20a49b206a744ca0eda7eff60e739e504774ec042";
+      sha256 = "009a89d79b2020f8e86a9d61b21b5751afd3aae053ce0c037b3cf303f528cec0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/kab/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/kab/firefox-96.0b3.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "fe3fe6170a6b5ce661d54d24c0a1d09f7772f11faa4a325d0553cb12ecdc8c7f";
+      sha256 = "06b51518cb8a3ef97c084f1cafaab34a8175b7efab66e16d3f4f1f7d72aa9df4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/kk/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/kk/firefox-96.0b3.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "14e27fff2da0ee16a47372f6d1426c9f337aa3d2c781020539f787ffd6535765";
+      sha256 = "560b8a7cc248639361ba08996a477d2ef7eab0482f41bba67f0371c841ca490e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/km/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/km/firefox-96.0b3.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "0de1b97e2bb964b161e15092607f7ed98483a421216249e9988050e213795744";
+      sha256 = "cc0a12c6e2feab652d08d28a27b79a9481209f4c3869372b37f1cc5e27ff8e70";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/kn/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/kn/firefox-96.0b3.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "8f0160c8797f48024b19139ce23fa2b13540b09e4ac100508fe8fb6c68596f9f";
+      sha256 = "25541e2722cdf1621dc42ad529447c31c0e9e8ccf7300f87d89f2e1f91240fd9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ko/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ko/firefox-96.0b3.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "7729469059efd35363ae18d58ab8c84785534d2d94624b863c13ba0e5e98fd3e";
+      sha256 = "cde1314a8135543aa98a9c28c083e3f57700be9990ba2ef780f6dce4a8de6dd3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/lij/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/lij/firefox-96.0b3.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "6712ecde2c548608fa95af783a7576d765e8bf09e157060a3619cbaf0bec4196";
+      sha256 = "f85d1f85763fac8e748662d1b493cd06dbdac37960785cee0e8946daab10fae6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/lt/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/lt/firefox-96.0b3.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "938e3e220f39d91014b5fb0824d1543027d971f260eaa633c286f6815ebe3a6c";
+      sha256 = "34ff1895eac6fda351b210ae65b2edbf837ca8a5a5592caa33750ccdf529c6bb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/lv/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/lv/firefox-96.0b3.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "b563a544e75431ee878c8c982076c4f320331f8930f539ab15502df6a57e1e49";
+      sha256 = "9769e7039a980ae239d242fd6ed4438e7b90e1fd91f7d9ceafd52e8183bde1a5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/mk/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/mk/firefox-96.0b3.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "e349e36c833709f737cbdbe6effc7874d07b06bf92aa762a91a25fe218862a3c";
+      sha256 = "1217469bc4707454ece2ccb422e99e85724845760a4a78205753c07354a2d6aa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/mr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/mr/firefox-96.0b3.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "ab19ad0215db1d4a3dede497bc4ff13bed3f584b1238157b5ad13a1faf62cb15";
+      sha256 = "e70d4bb799117c0343a17f57adc733dac1cdbacf30dcfe0ebc195da3de091408";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ms/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ms/firefox-96.0b3.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "9971db2e0b409c58a6931e7e8b8b1ae3fb109c51ca6d8ca763a3819a20c4e818";
+      sha256 = "91bff99d4326c16466ae3c4d1646f14cc8d341cf93c71db6dec117ae24dda154";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/my/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/my/firefox-96.0b3.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "67f4e4b4f21f6b0af8973602300a5a511966b341e8abc6a4156d9c5f6278b523";
+      sha256 = "4efb3b03955ab8cae4925704fef1a1d1ebc20c3bbdbb9332d1be31c2aa0f16a9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/nb-NO/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/nb-NO/firefox-96.0b3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "3a0519e469b7e215f8a3fda16a3445f0dfa466ddcbef105926d00a792e5ec29b";
+      sha256 = "9c01453ebeaa772eb1ad092400ff6da05d6a36d901fe4f9ca9d98bf4c41d2d40";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ne-NP/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ne-NP/firefox-96.0b3.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "8fb2ef6a3a96c772202dcfc31e507d75baced0df75882135864fcfd376187948";
+      sha256 = "697bf0266fd4cb19e42619054795bacf4e9a065dfd976086b074be47038f86ac";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/nl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/nl/firefox-96.0b3.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "fd81e646da95800ef65d4f7d260be6f40d0c6b3f5fd927258c1b587212a26a3b";
+      sha256 = "7314cfcd476f18054775d03d96787afd4572437c507b0387fe3104e272e66f32";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/nn-NO/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/nn-NO/firefox-96.0b3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "f7630d4b5ae51b163cf7aea5d8c1d2580b6e11a101fd74672df4b38e629c92b0";
+      sha256 = "3fc8dc069fb41aca43581f3551a485f4659a760a275beac5087f479eba0b4605";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/oc/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/oc/firefox-96.0b3.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "c938d337a49dadeecf83ea0436ec1b2e1fcfad93a9a573eee1f8481df303af5d";
+      sha256 = "22ea3193fbdddec8deb897ad5551fd94ceb659cd8493a04db51525c29ffae0c5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/pa-IN/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/pa-IN/firefox-96.0b3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "c4ed4426a29a456c4232d4d681b5d7cf24ee26b80b0d03aa32e860038d011871";
+      sha256 = "2f3dad5c917a28b41fc1ca3365316a281c6e6560283d2002364c2bddad5d7a52";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/pl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/pl/firefox-96.0b3.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "e5064dd88b7a2fc3a99a0d702aa50f9fa425442e6b10ae6b2f69daa7dcff3961";
+      sha256 = "6334e79bb84d78fad334d9298c8104472ce7297c17d80f28144cf0751c42ac80";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/pt-BR/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/pt-BR/firefox-96.0b3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "a749befb91525c428a2861524b51742cf6a04f9d2c5e9b65b313422a29a54f21";
+      sha256 = "8fa05c175f271723e107ecce6d2a7d6b8e5afef5578ead1d6c8ece920d4b0a91";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/pt-PT/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/pt-PT/firefox-96.0b3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "cc8af104daff4f7023d1bad24d88d8eae063d7810c76edeb3548426eb70056b7";
+      sha256 = "7b6751f8883c439f1fefa3b1c220093299f1dbd27b8a49c467113e8200849a72";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/rm/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/rm/firefox-96.0b3.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "d548cfd5b4d4a7e4f1d2fcadde5686868ad6d08549ca17d876747d7ae51f0476";
+      sha256 = "81dced560a8048a4113c3a99ef72137174de6bff64a0ef4f0bd669f3d7f6d89f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ro/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ro/firefox-96.0b3.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "02339108ac6c793ecd2907366ddf68864fc834c57358c2b8895684cffc8b92fe";
+      sha256 = "692746c7919b64f23bc92c00a7e7ba60f54152430887b608b84bcc105a436a33";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ru/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ru/firefox-96.0b3.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "35113139ff21db5ea21b14856927d08fdf4b9486cead60ffc842f5d0d525bc3c";
+      sha256 = "52f4b321e3e149fa0317d610f85b4637b464c79b1b2046ceb9dfe2f4e56b6c6f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/sco/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/sco/firefox-96.0b3.tar.bz2";
       locale = "sco";
       arch = "linux-i686";
-      sha256 = "5ad751c892c034a839ebef7a5033af04555d7e9873bd0080ece3323c277dae26";
+      sha256 = "3297b5b0d67381d1b7f9c4f76b767c6a5f76388d473afe5e9bf0df94a7bce0d9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/si/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/si/firefox-96.0b3.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "b06f9b5301f89f3ee5a54f564302ab820ddc3c3e75ff2bb775c506a28afe46dc";
+      sha256 = "bc1eae9950eb6bc6a79fd185835aaf7b3c9394c7d19bfb78348a1f4987315636";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/sk/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/sk/firefox-96.0b3.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "dddcc75cbd4bb4d88d04348d71043e6983e6c149bc509de92f0b89e4a8b728f4";
+      sha256 = "fdef69d9e24c00616b177dba71e2c5db29f8c945cdba4c3dfbb39753b1f01a72";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/sl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/sl/firefox-96.0b3.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "f77d13ae4d55533427e6f61643688fbc7f5018c64058657e3af0b840e5a57ff4";
+      sha256 = "7225b70db5b568634792f18f0f6ddca4ab94e00b225942c6a4f5c4741ac9858c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/son/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/son/firefox-96.0b3.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "984590c9cb5216738e6f438bf976b1d7f948ae2a74eb721d32d34cd10185b0ba";
+      sha256 = "2c7f228dadbb2b3ecd424ab2e80a532e17e861f92095e5de5ded2006e79e9dc6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/sq/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/sq/firefox-96.0b3.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "1534c2664809eee6f08d63f6e90f9b68cc451753a7be05ec6271eae0102d9297";
+      sha256 = "63fec6dfd214dbce4b344ed347eeda9adb489707e06e6a4e1ad6fa828e0da7ff";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/sr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/sr/firefox-96.0b3.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "b007555569112e3603d0f82b70b88232a08790de47715becf1eafc263cc5b766";
+      sha256 = "8d584d48c4e35bd7ff1438c7a80e0b353bb4871ba946119c36f1fb3bd135518c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/sv-SE/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/sv-SE/firefox-96.0b3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "3ebe9a9ab0f98d9e72111334fa14fe2756d14b7c55ca0961661a4b614b29e730";
+      sha256 = "d5e7514a67a288e755d7ae30f2dd680e2138e50666fa15c1b710d0a454a51730";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/szl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/szl/firefox-96.0b3.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "c0b10b4c6a40acf11625fde74091060550a127e50374d112357a7644e85fc7c4";
+      sha256 = "1557cd8173d79820d852d99c0cbb07249c2bf17bb778670e437c4d408329fbc3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ta/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ta/firefox-96.0b3.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "02ccf92925d17e23aaba13cfc30691cc7ccca4058ef3b5f687c2ec6d86be9131";
+      sha256 = "2001ea5bb925d5a1e845844d03c441c2cea9a61b042df518d16e484a3a7901ba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/te/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/te/firefox-96.0b3.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "0a915418ae01e65f77814765719a8d92a8476e0e6b92b7e4f3345c741f9b9d4c";
+      sha256 = "c9994fe1e9212281fc007ba8f6b703856693deccbc083e17dc94b6da8ed29a72";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/th/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/th/firefox-96.0b3.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "0e528aea8b5ba9ad6cc432c73677702233fe40681e0b2b8a35069c97d6727c20";
+      sha256 = "8c6b207b23fe66c7506da96df7de25270218ce9ca61bbedd693fc6f69c970d53";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/tl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/tl/firefox-96.0b3.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "08643d52f23bf7bd945e85575675331213d1b7aaee907dee007913107cf06df8";
+      sha256 = "c9c7cd8c6195588bfbe1c812425f94e7b2727fa0ab73e247b543cf85ea09b171";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/tr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/tr/firefox-96.0b3.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "fea788ada1b3260ff7effac66eae99cabe7f7d56c3c27a9f6ecc31fdb077feed";
+      sha256 = "9b7688be959e16f4ed652ddef4cde0bd5b3df391b8c43c33b6234ae5ba404987";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/trs/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/trs/firefox-96.0b3.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "74709f4feef8ce28eda0b6b1c82dc26991b8099f0cb3f09eb2bd1ced924d4922";
+      sha256 = "470596584e9bbf2795624b5baf878955229472450fa7178c9e4612408452b170";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/uk/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/uk/firefox-96.0b3.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "7181038f9069573e8a043dd855efd0bdfb9434be0abe91e79f632778f26d3de3";
+      sha256 = "814e5c7e9609b6ae72d2c4c0e012d503394ee6c669e777a0e3b4e4dcb4c7612d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/ur/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/ur/firefox-96.0b3.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "82a8a5fb6f45d64ac1250465c469572ee8aea4af578158f7b6c697abd81bb949";
+      sha256 = "2113a0313ed3d675bf1adecd574bd0112fa5c03d23f670e522928adea6c97265";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/uz/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/uz/firefox-96.0b3.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "b2f7b1f0b296912a6dea8f4003ecc1511ed22d7546e576b5f9ef4c877311c01b";
+      sha256 = "4e759986facde4229324402963e0442d1592147c8f4bdfdcec5ec067e2d0b123";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/vi/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/vi/firefox-96.0b3.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "8bf4701b32ae12d16d8d207a2344c2f6b208065c96166bfb724309cd223205de";
+      sha256 = "c77990635980e56d3856b3793f186a61aaa6da43ee0e0970e7ab06953596f85e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/xh/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/xh/firefox-96.0b3.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "d546e726258f3b2e72373892bf11bdada96dca0f21e97acb4cc60af872f991f7";
+      sha256 = "b4a725703b13e230f84c3a5aa1b9532a7755888a2bf7516b5a0c3a79f70f1ff0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/zh-CN/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/zh-CN/firefox-96.0b3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "1e064ce673c92fe9ab0874a71583a9bac311a61850787b419e64b12819cd2dbe";
+      sha256 = "fed127eedb2d7bf82977c9aa3311e40eca083b7fdd6a7e58f44b315e209c3267";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0b2/linux-i686/zh-TW/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/96.0b3/linux-i686/zh-TW/firefox-96.0b3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "e3dc9f29ccc01f149f1a071dacdda21fbdca6906f4007ab1cd352b3ff6b498c3";
+      sha256 = "d29db983e9791aea1dba8f483cf9399ca032fe081e6e8cbb08d9fac3d644c582";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
index 8c3988389fa0d..eab96830a8de2 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
@@ -1,985 +1,985 @@
 {
-  version = "94.0b2";
+  version = "96.0b3";
   sources = [
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ach/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ach/firefox-96.0b3.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "bd42904859dbd5891779c6e74035596669a498c4140abe36091746a74ca0eea4";
+      sha256 = "dd41bff1f1401eb376a3ab26154a42cdc35e409cdde24435737d753b15435fa6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/af/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/af/firefox-96.0b3.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "37fab70d161246bcc70e4685dc680a2941c8d92db5bd66edb18fa6e72f1ba279";
+      sha256 = "963103d54c26d76abeebbc86480836408f8eb7eeee96178ce53d6fc269029603";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/an/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/an/firefox-96.0b3.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "0960095aba64ca73ad838935a5bd78fc4773347b02f2bf8a08964cf15d0cd866";
+      sha256 = "51862a663ea34d9bb1ae78bcf7846f6148dd8004cbdc6ed49c1252590262afe8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ar/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ar/firefox-96.0b3.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "40c097f94a2c106434fe95f35c68b8dafca84fbb887d416aba427637f83d7e11";
+      sha256 = "24857b772fc0a7b018c0ceb51913b1a76df59ef3a95fd41f464e1c51b5201e6a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ast/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ast/firefox-96.0b3.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "41f7b6e15760548be4bb883bbf196175c912484891298a717fd256f091c72f5c";
+      sha256 = "44c45ef6d101d0bf6f57d663ae6943a7d3bce248eb8feb35dacde292b2c3fcf1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/az/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/az/firefox-96.0b3.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "1485eb4eee5f3858797871c710a83d7a79217f69002dc8915202080ce182358e";
+      sha256 = "c196437bfc3aa231859ebdd2f335eea4991c4eae6bd3cf9c64f4eb195704b1e3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/be/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/be/firefox-96.0b3.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "1ed4be4238bb0f427dd2a8b8542da9a989c88c417da48ac333dc0afa11ca5a66";
+      sha256 = "a1d1eb29a51a84c2c779bd2090a7a064d1b7d290e0389672351821d414fdd35d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/bg/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/bg/firefox-96.0b3.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "8b29bc7a4ab22512343e836998150c8786496354697574b8318f6c47da499949";
+      sha256 = "1f78b12ceb1951ca0e354ee04ff6a7893fc7596480b9df1c9eb443800778e033";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/bn/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/bn/firefox-96.0b3.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "f3b279fed3f5542ed7d9222eb4e7bf7d36ebd633defc920fc1f2d50de71cb0b7";
+      sha256 = "b010759c37cafaa3e296b2b71ab19d2850ed62043c3a04e80b21c4d9e9acd235";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/br/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/br/firefox-96.0b3.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "f9e07894a168c6ecb36a0f10d5aff3335e6553d3516440bb3b2e0a99e34afde8";
+      sha256 = "5d58e3ad0cf8de459d68b60653af865bc1e11a1b69a6decca9e630675405885c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/bs/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/bs/firefox-96.0b3.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "4ef75403c6db94821419ab687c362c355bdd7864caa1248383aa33ea330bbe86";
+      sha256 = "d3f1ce059e17f6a14cad30ef2609cffe61bc3495bef3ada1a2941bfd8bbc440f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ca-valencia/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ca-valencia/firefox-96.0b3.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "7f0488fe5efc807560dec19bf5ab8b9ab63fbea074e5da0c1ba10677fc37580a";
+      sha256 = "e06cf1c020f3f65e99c4816b054c9f79da55f892dde27d8acde17ebc24fbc840";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ca/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ca/firefox-96.0b3.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "cefcdb247f82543e356e0aa3144a8594b40d5ebb6d612dbe4624ee23ce4e1ffa";
+      sha256 = "0f9644f78246459e2d7b0c8c1dabc5c33d5d20d2c6d517cee20fb540db501cd6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/cak/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/cak/firefox-96.0b3.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "761d75f0764b94bc24a2ef480841639975698308f9a957b68c4cbe4487f0920e";
+      sha256 = "9b78dc607de8f66352a778c05186806b0fed9afa8474fc4f2f9346c4298d0be6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/cs/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/cs/firefox-96.0b3.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "ba098e4498e3b5e7d5832e922db7a75022cc2eb0ee75a90c587b8a605b9341d7";
+      sha256 = "cdc96bf52e2d9d463e1caca4eb567ec723311678233db59d1cb57a2e7e16c593";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/cy/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/cy/firefox-96.0b3.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "1ab3378924c5ec5677a0380307a34f3c0d5dc5278f14fae8cbc6638f95d887df";
+      sha256 = "91c833ce44c24d3fa7b90bab56d0994c930649ae39403c6888a85c2e22fda7c8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/da/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/da/firefox-96.0b3.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "dd10f8ca235755fa0384c8e9856ff68da9d35f08f4207253f026393b4ca6913c";
+      sha256 = "e8602e1cf72f9b98dceb23694eaeef70a82bf2704cefb4dfa9db380a31eda03d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/de/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/de/firefox-96.0b3.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "c82331eddd13d69a947555842d4398ae3c89f6bf11d4f57d7e99543aec3d720c";
+      sha256 = "4d7ab6dfbc168e1edcf7b06b9da65e88b805cde7adc14519e2139fc811188b24";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/dsb/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/dsb/firefox-96.0b3.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "4770d9fa07f4be586ed036e2c9b5655f8aa1939bf9b7148ea282f0926822e88f";
+      sha256 = "e0288172d3e7fd5f9d8631cb36a7f69118aed0b3daea8ca6d4bda0eee53a2353";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/el/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/el/firefox-96.0b3.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "4e5beae917f4cc06283cd02eac07758383d9efb26976100bf8c0728e0cffc752";
+      sha256 = "eccb1283cee2fa9d6b35ed0cf30f789f422094cf2fb17966b9a406026bfea2d5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/en-CA/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/en-CA/firefox-96.0b3.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "38bc8dc87a3f381b17d2f38a15d6d75238a16fd968a6463773af773617ffa74f";
+      sha256 = "7769bc1d977fec4e0b5362fdfeb0b0f52bab1d0b12b012c90ff2b096209bc7c4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/en-GB/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/en-GB/firefox-96.0b3.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "52592454a7f3a3bab8b1613584da691641b6e25a391b430694e3a4a0a4b96398";
+      sha256 = "71e3b186ceb1333f4b95429e63abb1c0807a7f1df2c0e8da26b5af866ad077b7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/en-US/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/en-US/firefox-96.0b3.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "ec2b8c578b1aed605987b29c89ad168589f736a656d05de555378a5b5adf2f16";
+      sha256 = "cb4602feead2f7e7b407e83594ad2edd9de856d334a7f9cfd392a7764adfbbc2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/eo/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/eo/firefox-96.0b3.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "769c9355c29af59994e1c16671c73304d4f51ef8642331c5940b208388c5247d";
+      sha256 = "36ad536374a186e2d9ff4c2894749ae43c512555ce2fcd5f67b0ee76949a764f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/es-AR/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/es-AR/firefox-96.0b3.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "8cef957fd4f6dae23193a51f6fe1bcd473245cb0e559cef09121b012bf56b433";
+      sha256 = "8f4c854834fe8bffc682f8c29ee674771f70f78d28173cff3beaab13ae637c54";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/es-CL/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/es-CL/firefox-96.0b3.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "551e4cbb9e2208189da351886127c71bc2b8251aabcfbf3868199f8fc2d75e4b";
+      sha256 = "3381fa208df76553b85a53cfbd4ced059cfccaea1a8e246a5d0d1c54efed8e8f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/es-ES/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/es-ES/firefox-96.0b3.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "a54f96c6354616f3b55a67da80f347a402197712fe751971517130d35fe1ec90";
+      sha256 = "e98d88c0e6350e477404ef14fc7348ee79f25fc9e31ed2031c93b79298fc37fa";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/es-MX/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/es-MX/firefox-96.0b3.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "a47ed73f1c3323b1b8fe005c903e63773f2e1d2ac0956ec0159c3b335bc28918";
+      sha256 = "26b84f335c5ba6238d69a7537686141188226859d17b0a64c71a1ca0ac9e9d70";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/et/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/et/firefox-96.0b3.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "8acdbed6a1027dd9ab042875b8c0d2a612c6a8a86d8a099836dec7fcb7bc26c9";
+      sha256 = "9371d5111ee591ea4179c4932e03d1686b4f8555c5b6b1dc110382b43dc046f8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/eu/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/eu/firefox-96.0b3.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "5809ce9075b2b4ec919e443b849f10185ae7d636009654c5692a9a480d680404";
+      sha256 = "56336434a3be39e71459a3ae990f3dbf826fc53ddd33410b0208e4104fb9948a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/fa/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/fa/firefox-96.0b3.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "79ab5b7258434720299141ef6df0c70c8ac617e0c92fb7ad394c8bb5adf5515e";
+      sha256 = "75105b2ec1f269e044332dfd1736edf0919141d3ce7ab979da06ac6a47c361f8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ff/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ff/firefox-96.0b3.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "3faecda595fe0dd9685786fc70a81aa2df19e019e724f3f52d06397cb853c5a7";
+      sha256 = "86439e96051f460ac42154274401cf4f50102f89590e67e78024a7e0928a2dcd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/fi/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/fi/firefox-96.0b3.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "bb9109efeab5b45a9fedce6dcbbab7e71f06f2e91204fed3dbe160e3d1b757d7";
+      sha256 = "e94714ca233a274a0229bfd6c9e5daceaecd2cab30b8314464b766ac79c1fc2f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/fr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/fr/firefox-96.0b3.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "6b2d0b74c8eacd8dad7f946ca0f1279d3a22a0176595712859e4de72810c4fe4";
+      sha256 = "4b88a49838eb6f479feccbdf3109e3ae7ffb1215a433233d0200fe8713475344";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/fy-NL/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/fy-NL/firefox-96.0b3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "21f847af86e0806f16a28f6174178e0cfe1cb9bef8728e6d7e4cbd0e38683fd4";
+      sha256 = "216868ae9bf52b914063b154015efb07ca384f5a722064ce9ce2ef2191722c80";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ga-IE/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ga-IE/firefox-96.0b3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "c75d79b0e12406e69c00a1975b59003e9cc2ac4467bf565eb17e5af9302ff467";
+      sha256 = "38fb2079928d7fbe4e8181a14f7c7d955d41fd14f0c73f0122d91c9eb1ef7929";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/gd/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/gd/firefox-96.0b3.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "1863a424cde413315e7b7b4cc0e39070c1ed18cc470b32c6a951952b95ab2675";
+      sha256 = "bd70c4241e3e8233458b7ff6bc2893de43e5917284222146a585fce47f785a5c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/gl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/gl/firefox-96.0b3.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "9eb9d0f8f8ba600a50a7005b7c8c165050ff8fb7c58586e2581a1d45781f8ff0";
+      sha256 = "edac88def8dbbcff4cb4b5c33ab77f48d6b96a8ee1765649913028cd92d4b4a1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/gn/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/gn/firefox-96.0b3.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "8587fc264b5dae1acd2f6286d6e918ececfd4c25e2f79557faa2b9b268a33264";
+      sha256 = "1dcb25e73b9dd759cba339bd24b769c279c9eac1a4d2b47338ceac82d9e45bb2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/gu-IN/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/gu-IN/firefox-96.0b3.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "f592615d49abf4cfe6e0fdbba0534199fc3a60c7a330fef45dd254eeae44d6bd";
+      sha256 = "122331ecadf4b63319988f781c819f11f905d685f4a549cb08454a9d8478029e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/he/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/he/firefox-96.0b3.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "fd19095f03f488c2d4303498ce5f11055104b76cc31073f4ac7d146255653a89";
+      sha256 = "45f8c33eff249c9373dcf558648475b171be65db5fefa873f7553ba1ce77f2d3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/hi-IN/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/hi-IN/firefox-96.0b3.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "39f6e825ff611a87ab3a86fe83f36c1036a81e78fb6cf96f619d165ba1066db9";
+      sha256 = "9480b304d5c9ec6a10dfd480484dbd01dc41ea1cacee4b05b962d4a5bced4427";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/hr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/hr/firefox-96.0b3.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "cf92d55b8e812c9d6ab4d4c26e1d7c1e6c17d211bba601f7eb9dcae9e0c735ad";
+      sha256 = "a287cf31defa7923a7004451fb2cf72018ee507cfc167a67899624f7b8375d97";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/hsb/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/hsb/firefox-96.0b3.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "3a3fe83158be2ac5839065b31d988ffe170e3945556d91959fbd47c50cffe6e8";
+      sha256 = "792b12bc891d6d6b4e0c14f745641f54e9c50ecc10222ee679a206a4348d0c9c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/hu/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/hu/firefox-96.0b3.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "67baa75346bec877fd5f780a02e6edcf7f26f3568de4c175b8abd5a21c5dba61";
+      sha256 = "958a2569663fed2f45205ddb744e4c1a62210b678bae94e2717e8d4a66161788";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/hy-AM/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/hy-AM/firefox-96.0b3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "66a6143eb2d7e9de36e3c4320f3fdcd6975ffac37fbe33c32519470fcb072025";
+      sha256 = "0bd1b2ab4b063faab90a1c2158d9d0d0fc96f7fc81389f06190af39c9247dc21";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ia/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ia/firefox-96.0b3.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "c9ff2c7cee071e6e6a08aeffa0e2f733d13337f8088312f927e8b61c24feb096";
+      sha256 = "09523f090a020e658e14eaeaafe65a6db0793d389c8dbf0671f9f6d3b291482a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/id/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/id/firefox-96.0b3.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "80b403898b67fb720e63dc4eb23f9dec28d526144c287a3a74478db7a083f088";
+      sha256 = "39460a0d21b63c39c5aed3467a2177441e23f15222abbc44535b96ca2ac869db";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/is/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/is/firefox-96.0b3.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "6c3a8e686a74a10b6e360420affd461bb51e840a1b4c6a47fa057bd2e928ea4c";
+      sha256 = "7dc87ec09c0fc046a42c583c6ec84d5116ae71ccce466abdfdf8d88578d4fbf2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/it/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/it/firefox-96.0b3.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "86d7c1a8401f706fcd8c54da28609355f04c3017f14cc32f656090cbe5641a72";
+      sha256 = "bbc73998584297e0eed998927c574eec7d81aa37530be11e0b68d1b89fdf31fb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ja/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ja/firefox-96.0b3.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "15abffc6fde55d2212283001cc74bb250f8c5f088268409352950356fe2bb59e";
+      sha256 = "6d4c0748a49fe3b14ea9906088ca99e1865002af3bd3fbf1121a67409018a51e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ka/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ka/firefox-96.0b3.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "ef5149154a366f71bbac944ca3a9c05f64695ad6ce0b0f93c8c24262aa287761";
+      sha256 = "595cb5d60786e691078ae1aa8e76ede002f2895fbfac3d9519467f382ddbbbf4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/kab/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/kab/firefox-96.0b3.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "1c5ce596f41132a7a085ced18dd7a2377544a360b19f3553de8ec1b652ae1c80";
+      sha256 = "59b28149d3724582a5b4c0b4898bda5818d762020eccc4f40d4054cc6752fc62";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/kk/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/kk/firefox-96.0b3.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "f13adef30dd6b0b05faff543c1e405e9dd9e29da718dd49831837dd323732c22";
+      sha256 = "13278da244a1cf7342235d75eaca237402432e73835d944dc9d5bdb9c5e967d7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/km/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/km/firefox-96.0b3.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "e32051813912b819150b7509dec726dcfe206a0a8210f8f7b19db1532f683cdc";
+      sha256 = "de8d8b310cb4b90e40d15e3a991810eee5f7d5418ce1d2b8ae1490c040c9b2f5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/kn/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/kn/firefox-96.0b3.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "4b94e161b64db88cedfd119962647118d7124853d20c03f64d3540dfafffd9b9";
+      sha256 = "8f400d8effab470e0823ccfa2fe1ba9f49422faebc576d9775a8194957b4d97a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ko/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ko/firefox-96.0b3.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "ef05cb08b2bebccd2defb0cbda7c4bbb529e45f0a4d3de23a98c81b201f7e5ed";
+      sha256 = "de78ebc094faedbb79b8b3c050dddd8d89cded9d7f5b8cacf96a8ae0741ed5f0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/lij/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/lij/firefox-96.0b3.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "223f9f000297769f259c1536b51598212524ed202e58d225b0e6387afe073a3d";
+      sha256 = "7b46ed0c449eabbed031a6c944c725e20eff8560adaf579afc386728a6aa078b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/lt/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/lt/firefox-96.0b3.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "42769ee6bf135861247c5d60482ddcdcf7f5e3f63864e21b50e93398452e573d";
+      sha256 = "2d51003f43ec3ee6a4891f65d9b1c248bae86da174c997d5cd47b779c403ac3a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/lv/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/lv/firefox-96.0b3.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "d3f2cda8f808a32e1fbd28054232a177a46f3db232806281c3ae1a31a4522b57";
+      sha256 = "18a3afd1e3799ae4af17ca288b3ca2811437d752851e3043b6b2d506db2e1c95";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/mk/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/mk/firefox-96.0b3.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "89acc976c5cae171aba6dd2fb7e3c2f99594533bbbad0c27eb2b14ac4a1ae691";
+      sha256 = "62acd5a8e0eefed468022331f217cebb7e59e629ca8b26010cdd345fcfd3d50a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/mr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/mr/firefox-96.0b3.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "efa3e483041e64c481d6ef10227fe8ae2b3221285b3a631ff47bf0a156cd2bc9";
+      sha256 = "4e0ee6d697fafe9b855f3112ce745bab71b53c383a181b94dece0a66589604e7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ms/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ms/firefox-96.0b3.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "30891b9eb724b0dfa216c31298e9498145693f12a47b368de7bbca87f25a608e";
+      sha256 = "1a6ae8edf5732a766c584bc89b7d51b97ad491abccf59cc649db8f250908ea0e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/my/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/my/firefox-96.0b3.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "34cd51cd386cfba4566e758615f65d3a74a072b57479fee738fe67796d09e7d2";
+      sha256 = "f9a53290d295b9be23338bb7b2e6427f75e048f04d0614451a8a23352c286264";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/nb-NO/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/nb-NO/firefox-96.0b3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "44a38252170ff2fca7722e4cbf30ca42fb268c70eb293299f8350729389d67c1";
+      sha256 = "99261f267895a39fd7ddd376c87fe1a0dafd1c18467e5fefe17419c9a1ae058f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ne-NP/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ne-NP/firefox-96.0b3.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "86042545a3c9caaa29f200d4e179a364548d42905b6a12d1dd0a3cf82c1cef14";
+      sha256 = "4c3d5200221d7d7bea5e9263329dc216bf74d9f2c822e1b626f8c051262aafaf";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/nl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/nl/firefox-96.0b3.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "9c2021434b4f52e2ddd1af5953359e7fd6c783e9216790d09909434e35dadec9";
+      sha256 = "16a4857eda94f8f561fe482f9e21ea53c8a84404d1cf7d3c01ed62a6215aa95f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/nn-NO/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/nn-NO/firefox-96.0b3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "12cd5d82ed9d74f44e5eb6371c45f65152a74342add2828bf6927c384471da4d";
+      sha256 = "12171700aab404bf48914952564a0bf862c816eff294885dd441ca5f68a48bb7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/oc/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/oc/firefox-96.0b3.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "f9d56085b622cc36a1559171ad6bafde322630d638e9a2934dbe6ff933c41a04";
+      sha256 = "636950ca09f5a406581c1605370c85c610a6f53bd2e8adb4987e4ed7dabfed7c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/pa-IN/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/pa-IN/firefox-96.0b3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "9f1557c39b960da9c13d7bb25caeb03d8cc35ff1e2983682c56dce61ef02bc97";
+      sha256 = "c7ba5162bbd16ad181d19ea42d34d6182c9972b208c98a009b301bb27c865357";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/pl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/pl/firefox-96.0b3.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "c7a0989eaec77ccec91464fce8c443bde4069eeb91c069e7919f2fc09715d3b7";
+      sha256 = "e0cf100f60f73cb96c4ef942240375034c792036608e646a0412fb18179b4316";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/pt-BR/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/pt-BR/firefox-96.0b3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "4d36295b3998c0b512d6757899c8a88f6e960d81fd7ac1eec4585f4f90dc10cd";
+      sha256 = "4e2c43ff8dd482691190cdbee40cce73540f066b777e3c345acbb4b1622eb166";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/pt-PT/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/pt-PT/firefox-96.0b3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "a0d88e57288dfaf4aaa5f133e5790c6de78bfaeb66b1bef5984c522e05e58626";
+      sha256 = "de92cff3604a82952e49e04777a098cbe7e0fb991a5253e90c66df68f02a598e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/rm/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/rm/firefox-96.0b3.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "5157ae9afa5b8ee193901c1d07dd993261b997be7af0fbde407ec938bb2460b0";
+      sha256 = "a88e3919ea3c8c29b1050e7dec608e62d986411fd4ae3fa8dd38ba55f9dab1f3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ro/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ro/firefox-96.0b3.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "73baed0ba08e472f57ab2897cbba7a4edc4c63a80ea5bf374a65c3fd8d9b68d0";
+      sha256 = "e8a37f0ed391cd8b7a5bda1b4a492a5fa0201e06521c3c4863df8536c4c2da0a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ru/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ru/firefox-96.0b3.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "8b56328580c42eb44669765e1fa912ce4e4cf5c8f61f3bf32f011661b59b31ad";
+      sha256 = "284a8064fb0a41aff769af21194fa2359a951dbe2134d6415d40a41d4a5636f0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/sco/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/sco/firefox-96.0b3.tar.bz2";
       locale = "sco";
       arch = "linux-x86_64";
-      sha256 = "6b8d7cdbcc0254e5d48190032325af651a068f5b53f04b258b2c04ee44300fee";
+      sha256 = "01ac969a91b8d778ed08bb2f58faac842c1c28dda40ce8c0b90b40575658ace9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/si/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/si/firefox-96.0b3.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "d31d5b07b273d9cd69ce5422298ba4a2afe874c4bb7e86215ad9abaa5a867786";
+      sha256 = "4348f3da5b2b6ac1fb2fe370d2a4c820933c5100baf3c529fcde1814e32f1fc0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/sk/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/sk/firefox-96.0b3.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "a9cb13bfd2d8b38a144c82a8b7718eacbc26f241a75cc9b42c044130e4acbe56";
+      sha256 = "e55e104417153e939c20be42e6307dc36fec843e9170441a3bd6f7d205111f5e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/sl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/sl/firefox-96.0b3.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "bbe947610a3eeee8d93d2f42504d9fabff9574519c67568305c3786df121a0fa";
+      sha256 = "73be90dd466c418f0f1e7cd231234823c9aec4b37c73d419c272d5f0c6549408";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/son/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/son/firefox-96.0b3.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "67a26046e446d455c1acc161736e0ce0077a7486bf645e03eb2cda98b5b08e8a";
+      sha256 = "e310eb44e199a44f5c6dc938c5278e0cf5a57b0eca9afe93947caf124499a512";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/sq/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/sq/firefox-96.0b3.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "c97fa4c925a8f78fc86e5df390cefd75dd881c27e328730bba7fe142673bb2e0";
+      sha256 = "a878f821fe66613200a69619d26bebeb5abd6e7a512f687dfd939ea7b055117d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/sr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/sr/firefox-96.0b3.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "acb8f82e49472d39a771bf54b0f7999fde4551b165db334c53a2bf91b84ae83b";
+      sha256 = "a485ef9d3785f4dc8c9ce88287f597c550a489901b8c48ca9f760d8984c6c385";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/sv-SE/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/sv-SE/firefox-96.0b3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "4e2b4a35ba5b3a68ddc43cc268975d1d717a836c6e83b28b5857cfb63c1306e3";
+      sha256 = "0ecc83a16278aefd627e50e317ad426d8bfe7b68f4633941e6bdbb20e0f1e043";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/szl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/szl/firefox-96.0b3.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "eb2680babe9f84a0ceef228303cdbe6576acd8fb6753026af5dfbe7779ef98c7";
+      sha256 = "0de3848f27c6be45f54429cd9679b19a661b79e857eac8c4852b511857a25395";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ta/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ta/firefox-96.0b3.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "0ca07506b739e405f1ac3fad1842cb3f7993c580c1c9d65a0cd805dd531d0f2e";
+      sha256 = "ebff08a86bfdb646c02add5e9226cc3f09e096d684247c1c67b9ca6faa48f33c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/te/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/te/firefox-96.0b3.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "c8660dbf2ca596dfb0ab28178701a8718f6ba7e556f657a19e1c50f69d80edbf";
+      sha256 = "8221220edc9041f76a493feb7ac3199d93590c2a4145fc1d7e62e961188b3f3e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/th/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/th/firefox-96.0b3.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "14a935d95568d0c8f723031291c647e6548880f66abb082319303832a3b8c212";
+      sha256 = "6f0b612c589ea43323dc8534111808cc1588dcc8dbda09cd4c8326ee513af2c4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/tl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/tl/firefox-96.0b3.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "c6b1745e717ba35fead6cb9c3c735084e2b019aaa4b20a0fc9af480b9703ae3b";
+      sha256 = "d21cb5dcbb5a6a290d83f96ab8fd171254f54cc8586b0513689d30fa059a7555";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/tr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/tr/firefox-96.0b3.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "0abfb41a070c5bd2941d29b3c84ab3d9eed74e653bb6177a59803301a27b5465";
+      sha256 = "3cf9572b76b5bc627130e27105ce39bc51e55ba0446b4ea867593d7c36b546dc";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/trs/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/trs/firefox-96.0b3.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "a405fa57208ad50ab282f87725fa47789f3afc742c6bf65b872ff2e1320dd83c";
+      sha256 = "269d9c9b50acc393ca9daf4f19404cf63e2e792028c26c03afb992f67628bd3e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/uk/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/uk/firefox-96.0b3.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "a463362bda810d83d86ad8e516cd784ff037f8571a2530ea409c8c6539d5af82";
+      sha256 = "c1d304b0b4a7b5c463c07ccb982b16a0265cb1fc114ade7bc4b39f8e9158f5a3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/ur/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/ur/firefox-96.0b3.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "bbe19675765e179d7277dcb97fa46cdcced95ab1fc52f88bf282d280c29fd376";
+      sha256 = "17ccb256c21e7f7a0851a980952cd5cb006a9d29176b40f420b0002017748da4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/uz/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/uz/firefox-96.0b3.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "4cdeb5836d53de3234e42d2af3db899891500ce9d6ee1ab5ef8ccf6e13312e6e";
+      sha256 = "1ecd6d4a20e74d1b3116602a4661b6ea1d1e70f786c88e1452a61230125d4ca0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/vi/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/vi/firefox-96.0b3.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "db8690e204c87d956665191fe767212d4c5a12797143cf48552d24cf62de81bb";
+      sha256 = "681857e16b6767b0d66e8d51423b360cfeb8d107839ad52cbeecf1e7003d66ec";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/xh/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/xh/firefox-96.0b3.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "6563e14b33dfe307967f75b06bb18f5a2f6ef5de4efcb7f59b0efd0727f95af6";
+      sha256 = "3122fcb6638c00f489c6540c3cca4312dbdc5de5cc16351746e83c68d02a45ac";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/zh-CN/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/zh-CN/firefox-96.0b3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "a3e6b37681f053b771e10a745b0eadce52424d69cac40896112fe317f424701b";
+      sha256 = "5e4be58a4891d7b1363d57fcb9ad67e5d1379401cc3df49a5f9ea4fdf71495fa";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-x86_64/zh-TW/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-x86_64/zh-TW/firefox-96.0b3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "cd4e160499499bc09e3dc813376711d5d084dff4a2728df4ebc611617a6df56c";
+      sha256 = "e904a8e65e8637d01376a08908bba94f437f952eba13a68b81b0a40936044e14";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ach/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ach/firefox-96.0b3.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "4049dea6bb18ee343452b59bae0072d68b1e8b7c75a22ac03122a56f0804dd55";
+      sha256 = "f5e383bd0268098f82791079324eb1457298d95431d497adbd6023f12c762932";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/af/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/af/firefox-96.0b3.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "7acdcd0346fef075473a3585de300b90bd00b2ddc9bd7ae2ce094163b361fbd6";
+      sha256 = "ae99c4ccebc0b938ebf2c20758a815fdeebae0b81715db79d8385d6a649bb6c9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/an/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/an/firefox-96.0b3.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "1e8da8a7e6e5b55ace65c4d7040ce20a2829f222f6636b3638f849af8d8d180b";
+      sha256 = "ef7ab3d8b6b51d22f0f30b836024212332aec6989684b9a22a4f045662da6080";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ar/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ar/firefox-96.0b3.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "3c6502b58e6ffe364ee1aa2dcb2b69448e45885211a99684b5ec725a8945a648";
+      sha256 = "b3728cabcbb46393796b5b948daeb5821b70ae29a8571fb5295faa40d9a8e592";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ast/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ast/firefox-96.0b3.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "ebf2d99fc7a64876a9541e27a77cbb7c0a2c69deaa0defeecd1e2ddca2b11807";
+      sha256 = "ecfcfa573fe215d94e48933bfb276f6dbd573c92a062f4f3ec1ed83ef0da83a7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/az/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/az/firefox-96.0b3.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "3630b509a69a5511fddc9347b89b8afda1c60ca54d42cdaa30409593a7eb8f39";
+      sha256 = "37558cf0fdf41c728b2a22fc2b8142af011ef7beeb924e08de2400f29b2dede7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/be/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/be/firefox-96.0b3.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "d112fb18d55b5381470103be2cb2a068f3712a1ed16912813f59f0972d8cd5b7";
+      sha256 = "29a156bac1d7ffe10d05690fa3a82820cf246450ef1a77697e4f7f346c9eda13";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/bg/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/bg/firefox-96.0b3.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "b0c8a0ee33d50fbb2a6d9b0770a7b5fe85c7f8a00eb15cbbc57abc682b7f7cd0";
+      sha256 = "631e34ca2499d6767a1fdc7b944f08841bdcd9e3c248f1e4f0572465797e819c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/bn/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/bn/firefox-96.0b3.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "63bca544f093ec07b5813b2b692edcf6ed1d46068f1a736a49d55255a7a7a23d";
+      sha256 = "3500810a58a0cd5192982fc5536902e377458589faf0e8c978425ac2fffb19ee";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/br/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/br/firefox-96.0b3.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "8b419f06da716bd14f6d6c0534f2ebb622c25a8c52f9f7e03b4bf596657e8612";
+      sha256 = "979342ef754af3751a5466a5d54b40291f87dc8f084173330b2e337aec84c516";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/bs/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/bs/firefox-96.0b3.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "edab469f4b69d843a15a925a667c8fd33fd16cbbfcaf4ad16c8974bef172cbbb";
+      sha256 = "55fe1b0bdac8f8dc37acf3159ccbef78e4054c499ac8df550b215826eeeeec6d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ca-valencia/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ca-valencia/firefox-96.0b3.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "3be5d8044cd4f8a474fafe864f8264776ba5a478bed7510c6530ee7966d25d3c";
+      sha256 = "ff090da1c4a6d6dfb12d1750dfbf1f37fe57e2f5f93250d30851da215f6daefc";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ca/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ca/firefox-96.0b3.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "b330165f8326818276b06bf4592984a4061c6236c962dc54d060318aa2131481";
+      sha256 = "67027d0efa86c8fea2d27821a99a30e3878a9c478d9f26af3ecfcbdce336f896";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/cak/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/cak/firefox-96.0b3.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "d705ca432b15db9b0f2ed0b2067ee0d236fe788434dc066b428c19d7420e34bf";
+      sha256 = "e7c2dd2447f157a2541540ea24d0732dfa0dd84b116824d87d7bae53a572883e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/cs/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/cs/firefox-96.0b3.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "3116ba93d2926b38d6cc372d3a7e8c746b0c1da14237ea8c18ac51ba7f3aa8e2";
+      sha256 = "bd7dc68d840a6a53a525a8a1229e0abca8aa2af14bee6c5f7198d877f3ecab1c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/cy/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/cy/firefox-96.0b3.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "c598db707229b9d19723943e018b52b45e3a6c129c3541cadd64798127c403ef";
+      sha256 = "4a21599535668ffe96f3adb56801aa3c8b5aef40ce2998fde430e34cbb4898e0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/da/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/da/firefox-96.0b3.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "31a2ed6b5d9749319e754e259c9963a195edcc93349429856eb71eecf5b4395d";
+      sha256 = "5f47de337347f65ba478c48c373d12befcde1b86b99102feb0c921d149541d2a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/de/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/de/firefox-96.0b3.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "dc3734616f5d1d997dd0af6a16df090ed28b1945d4f621cb306030cd3ddee06a";
+      sha256 = "4f11bf8857f65091d43835c4c1d16097189e184e72abd2dde6807e8b22370f8e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/dsb/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/dsb/firefox-96.0b3.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "4d11e58b9885cab5f81bbe55b7976d63079d019bc659c23eb537d09a7d527f92";
+      sha256 = "6b426096f9a652e1eca190320fb485c5573c94d7f7558dc70f58b6c49508e5bb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/el/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/el/firefox-96.0b3.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "24c23df7db690d2f998f424cd90e951986378a861ef4c722e6517465397c69f4";
+      sha256 = "f374d64f64529238f867b76e7e894065a32b75b2d669787f1f7285f23ffb653a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/en-CA/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/en-CA/firefox-96.0b3.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "71a3e42722b84fec6b286d1b009270d40022d43b929b8226961c589059262da0";
+      sha256 = "0806aa2abdc643eed084e7764acae24ee7da7e01c8482b35de5af0cbd809b9e0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/en-GB/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/en-GB/firefox-96.0b3.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "9e29763788ae6df281ef367def18a19385605afc211a888c24bb0971cdb2a073";
+      sha256 = "b41a39b046956ba4971c4ef163d9da6f7ea6b70f2dd419fdc278995bdc300723";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/en-US/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/en-US/firefox-96.0b3.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "df7b71e338f62f841bd5154aa454324416043bb0485c6ccac8fa068240a5ff81";
+      sha256 = "8869e2fadeeca2c22c7732f22cd9709d8da9b435b6e4f9c9d384f67405f0fc76";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/eo/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/eo/firefox-96.0b3.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "370e0b201f706dfbf157cc49d02adb36c64e660d95dca4a10d4020c77e4d3e59";
+      sha256 = "3d339e3dcfe1ff4273d0a35f1177f580c8158b6457add582cc23f67c00676e56";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/es-AR/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/es-AR/firefox-96.0b3.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "4c70649db14fdbbc04a5d9cf464cb538f8e652c26e79edc5f388c1f0bda4377d";
+      sha256 = "ed129dc3258a62a6e1f02b881d78b2d6348b95b99c2011005644ba484968e3f9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/es-CL/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/es-CL/firefox-96.0b3.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "151f18e59c2f1a986ae07f0dd8184bc5d6f3f8d1e9f02923d433740620fa47f2";
+      sha256 = "0691ef7be86c09cc92fbebc431668d1eee722ed85179a068ab3c548cb6f50058";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/es-ES/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/es-ES/firefox-96.0b3.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "2298f5411f24fdfb1e1e0488643cfaf71caf1c1e33823f4b7f4b705f0bd663f9";
+      sha256 = "86629f77d8092ccc4ddfbbfd2613535e1fb3a76e70c10fab46081a87cecaffd8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/es-MX/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/es-MX/firefox-96.0b3.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "1ee921da00504251d898ffad33a524c0fe306aba8b555d973e058c7f5950e680";
+      sha256 = "5225e99833460c3098057602b82be9e0e52f2b00c060c29c1ca7310e2dec8384";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/et/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/et/firefox-96.0b3.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "dcbe2aa046fe5123a53d6f29ea7961c214a6a2aabeb1d8b0ea586b6cb769a656";
+      sha256 = "0d97b86b2b6834ae518820e83a0f4af5318f3eb8848ca69ad4e3cf2dbbc56e6c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/eu/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/eu/firefox-96.0b3.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "d5b2cc74d0073a47c6ca32ce9fdfec34360e09e00459823a04e8780eb24e427c";
+      sha256 = "d44a9db9a6638a6c69c7b4ffba024d5b5028407533eeab387c2c442f73078d47";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/fa/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/fa/firefox-96.0b3.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "1584f4daebfd7dea873f05c86af3625193f5ac376281229076f4e5d3a9c9c0db";
+      sha256 = "df47ebeaf3e3eccfa2b483e46ffc4f7106299d62337923964249c2a7ee070a4d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ff/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ff/firefox-96.0b3.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "263e74577c0559fbe65f157ebbd199e4c31a092227c79378cac6a52a263aec26";
+      sha256 = "4be5b5876f032e09d87c90efb9da8f168f722b46f71adc0ec036c4a1840a2795";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/fi/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/fi/firefox-96.0b3.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "c9dfd9166aea3a5ac1d124285b19e65914908a96614a5f02f089d05b8a8b67e4";
+      sha256 = "8ecb3ec4e9387647d3361345a420574887c74ca8bd38f723bea6d8ba4b2f4c81";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/fr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/fr/firefox-96.0b3.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "9392bc742f0b99eee0b44b7f936794a5098eda0ee67ce8720d7263dde1ea459a";
+      sha256 = "15483453905eb6aff243af3c536e6d73a88dcaeee4363e829c30fa3e2e9bcf1b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/fy-NL/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/fy-NL/firefox-96.0b3.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "7be3b93ec071fd2e8759a29a0eea0486c0eb7f2aa091e26ce3f2d3e0e47d0e23";
+      sha256 = "991445513ebb294c2bc8e5833e7631b791cbcc72ccd501ee883665b3b0b62ba1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ga-IE/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ga-IE/firefox-96.0b3.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "0ac9df6ec6d46588028af9c462a3ac9a6e97418e2d3cd4786f1f284069c60b80";
+      sha256 = "036e8d167fc43d940d19ac8b90f4e136f264f16fe7d012fb1827b10dd47d8442";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/gd/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/gd/firefox-96.0b3.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "430016776249d100bfc5a214949acf41fa9065a679f99f05abb4931ee8770768";
+      sha256 = "056ee174fe2a43aa714abe4e59521d2f040fc326cd9d4d36b8ab2676fefba24f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/gl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/gl/firefox-96.0b3.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "a2c4e3cbfe150218b1d9aa158fdf22b195dc85832066dc7cf34ff1caa6e241d7";
+      sha256 = "6f30edc15658ae9395037751fab17c115391f22d4e2560945cbee436344aae92";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/gn/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/gn/firefox-96.0b3.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "a5946fd82663f7127f9ab867eb8c1b09aee2d00e287ca78809cd76ebd009894d";
+      sha256 = "d3cab8f98f1011b94c8b887db82ee3b64051f03879f83594113a0534fb7a730a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/gu-IN/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/gu-IN/firefox-96.0b3.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "9474d901bf617bb76ea3052225086689dd59b9d17a0b0b86f36ea501829cffad";
+      sha256 = "969d9e3ddd308b96fe6475b04e0eaab162aa89f98daa9f921b52a2602e95c93e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/he/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/he/firefox-96.0b3.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "a91230f5c6a47273e134252333d8146c3ac7a37a5fbe1e52e5cfc68dd5a813bc";
+      sha256 = "874a5cacf1f6025889a4fc0961b8c26f78a56b403e76af8e84cd6bc54de3455b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/hi-IN/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/hi-IN/firefox-96.0b3.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "52b5c938ac1920321612adf241fc6618c878abfb31103e72e0634a1dc1416da6";
+      sha256 = "4d369daaffdaf1a28d940f98f3f3d4c3936c5ccb3f913c3c1f0233b4ee448da5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/hr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/hr/firefox-96.0b3.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "32046eca67d812d36508fcb918292fb7c50c7a663a439a1cdef1779dbe470982";
+      sha256 = "f5138a6569f4c8779c90462b3165fb7bb2351d48e9a81daa88d909e475eef2df";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/hsb/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/hsb/firefox-96.0b3.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "858047b2ca9c33a1177625b00b2a46feae836c3b1985b5dc699120194b7592d7";
+      sha256 = "f410a1786eda2f9b7bc27e30c438f4e0a090b436b871c0614f6fd871f4eaa2fd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/hu/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/hu/firefox-96.0b3.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "293c677e1b7dd29832f94cef92af1b646fbafdff6597db8cc384bbde73c3dda4";
+      sha256 = "60aa12adff74ff46ef37141293acc39b4592d61512c9db0a3745a8a41858ce67";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/hy-AM/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/hy-AM/firefox-96.0b3.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "0cf4541c98712014394dc6438536a98fdfeb70993aab1c323a30d3f5f46511f8";
+      sha256 = "2187efe8640a541ab3b9c11583d09c977cf3af44c280887b03c5f4ed05239439";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ia/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ia/firefox-96.0b3.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "b1367ef6cc208b39eb022d9767adc0b36169b201ba5a30cdf9db6e08afb2b0ce";
+      sha256 = "1d3a3f28c0a99d56dccd1fc354a56cc1374f4f87a76760b410b616d0128f83fd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/id/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/id/firefox-96.0b3.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "d7f7e0afbd30dff3611b5785e0570b31aa536f67e3d3542cad14beb88f26bbe6";
+      sha256 = "b2e0853123208160486936e98ba978a7d509d8d4e0500c89bbe522ea69a4ff67";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/is/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/is/firefox-96.0b3.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "75b5aaf6aafa26d3b4e51f65cf545ca8c673d71e9a6e8e047814a681d6a7faf3";
+      sha256 = "43e9ca38b6ef601d7834b2b951b4a14394a6442d0da1d5045b83a5ccbf7bad40";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/it/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/it/firefox-96.0b3.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "5b105dab4223fa1b0415e995c4f5e71139427ed9024db5a6e11cd93e3bf370c0";
+      sha256 = "ef20972394355ce52307056b94af6dea64a3f6b1cf1887b3796505baf4645fde";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ja/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ja/firefox-96.0b3.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "d1fb1d2a0d26bb5cf297183639078e7b631840280313f08c80c5ec78e4cbdf8f";
+      sha256 = "ec106d9e5ebf26c698106c0b751a54b1af77959a39ef47ef124433a3b610f146";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ka/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ka/firefox-96.0b3.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "cfd785976f05874dd811c12678a73a0c2804caefe2a01a55839a81f4cb56e580";
+      sha256 = "19b20479c0df3f63a0d516bfa4521f0c7cb81e7fb9873ad801a6f662bc7558ab";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/kab/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/kab/firefox-96.0b3.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "e57ffdeb5b3251bf79a3a2308e5b61322db608c0756a61fe28593c7fbfc3da7e";
+      sha256 = "200b9ec8da001ef900fa77ba7954ad67f68504e29ddc78a389847f076d9812db";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/kk/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/kk/firefox-96.0b3.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "eec7d365e1567a4b5ae818b2b42354d9f0109c211bd38af9cdede58c687497eb";
+      sha256 = "8400fb463705221d80015a7b69388478f851231618bd3be0d9fffcc6b35783ec";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/km/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/km/firefox-96.0b3.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "42f1ed4bdc2cb8098d87b4a313263a5af352a0c3f4cd0cdb7bd07fb7db54bf99";
+      sha256 = "4fee1c00876e71f6d8fe8194ac48dc56bb8ca6da2e5ad41488e1a99e3c65a32c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/kn/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/kn/firefox-96.0b3.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "0bd163bd0de53e70fb53bd95aa560203d3af91233e6e75b2417fa7a7dbcb0969";
+      sha256 = "c7aaaffd7539351180240837e1930b8303b1eb9d199a1937940f80041aca1632";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ko/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ko/firefox-96.0b3.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "304b6218cf1f93735589be998b09f9b7ab8dff300ba8b8d2ac28b4a59925b526";
+      sha256 = "f54d11032e4b929e0d283223744aec809c46d66a875dfa9e07fc2a9237c5edbc";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/lij/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/lij/firefox-96.0b3.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "e983f5c04ff113f532e2125c4cbcc474569975eb0b48810e5b64348bd100c51e";
+      sha256 = "c7e1da38ea4886454f252c656bc1fd9809cbbdbf06b159cc40674e9e03ce0275";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/lt/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/lt/firefox-96.0b3.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "5e77dc75af6951262e7f427ac18f9ace83bb28171a9b3cfb9c702093542bb2c2";
+      sha256 = "5177db2a4e0ca4bbdbd9d7e3fe5aa5785f995df15df4ac4213bc22c2f9380a59";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/lv/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/lv/firefox-96.0b3.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "99924cc0493a8309a947cd190758b7a0656c34be18b0f3cb02a6b09719cee78d";
+      sha256 = "0e5d27dbb6e1ed3bf87a60bf62bc90beeb1c503fcc545b4a22767fda0e8e695c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/mk/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/mk/firefox-96.0b3.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "23c0d0defcf9bd212bf53a7ff4b6ead8787b0c45a0421f27e403be8067bf0b69";
+      sha256 = "54250e1742ebd3cd0db36ac68f5790fcb803a4b63d77293905727922379c84f5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/mr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/mr/firefox-96.0b3.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "91bc941df086f34ecd6ca3ed6116fb8d90bdb5148e4c206f6cb377c720dcf90d";
+      sha256 = "887c2cf008099abfd6cae59203f660e71618ad63d8492f0f1de072debab84450";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ms/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ms/firefox-96.0b3.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "83cee1afe5711c1735e9f7242760f5a06c912d1f488a2550e6c377e56c80e837";
+      sha256 = "c34caded0c323906ff15538694b37e3c91a00c731d7f4017434027882f160086";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/my/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/my/firefox-96.0b3.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "d8111a8274c916dcc7d19442cdab770b3c1895debf8e6e073402e14fa647a2d7";
+      sha256 = "f66ebec1bc3783cef6c57436a3f9764b52942f2466195fea8e5435275a276411";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/nb-NO/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/nb-NO/firefox-96.0b3.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "bd45064a98e01c6048c2f1497d17d8e9fc695304076f7e8e3bf91d2c6ae0aa1b";
+      sha256 = "6ac73b95d650bd7f8454345a041d7f9a294aed2cf249d09ab726eff5c6df0036";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ne-NP/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ne-NP/firefox-96.0b3.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "258a79a425ac0de620e1e05a9710a2f1c6972955bdd075f39ef3d45a8caf1ac0";
+      sha256 = "9f436cf3504f2629cbec87051539e00782c9942aeef4a03fc4fd44000dfd1b93";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/nl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/nl/firefox-96.0b3.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "6a7d5d49b97b08463280935e9e2cf22cbac4e00416a113ba320bbc6379604b11";
+      sha256 = "8759bcafc09fd00beda7f9795b49675d2dcc153d96020198c9c4117c30fe9c0c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/nn-NO/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/nn-NO/firefox-96.0b3.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "e85e22c122266db32f28c2701682be59a0ebd5991eae47dc83f1b21ace3a486f";
+      sha256 = "2c5fc7af589d06e2bda4de52b6a079b4c8ac9287b71b8d86a6462dd63f64f62c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/oc/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/oc/firefox-96.0b3.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "f21eb275072e63bdd5508d10ab07f2fa3633560fafe45c522f29c90fd7ba511b";
+      sha256 = "0f96f8938af715461ab1267713d57beeafbca389aa291931c1712cfee375dcac";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/pa-IN/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/pa-IN/firefox-96.0b3.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "26c77efd91b134b19a5054be1ea1782ce9026894be5b1fa3d563cad853b2aa79";
+      sha256 = "1a8f36abd3b638cb4aa82e66e4dcbb13a56c0fe967ae3187686217ffac0c37f0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/pl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/pl/firefox-96.0b3.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "c003cafaf65b18bd89c10d7f225dac95e254c7792499379f962795da67bf9920";
+      sha256 = "01b349d1656b2cc480e22d1a1a4eb376ae3b0be65a4b64d1cfb95e29b8e3a7c0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/pt-BR/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/pt-BR/firefox-96.0b3.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "ec8fdd1b154a0cc44c7eb573ee46a52e191115ad6ce26b1e5e5e6d58c5feb790";
+      sha256 = "4db2f4df874ebd5914ac143c9963e108d45c9822474b43d32b7a417d9a0c14ec";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/pt-PT/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/pt-PT/firefox-96.0b3.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "b699ab3c9034a54111c91aec2292803181466f482fc36a4d56ad2ab1642776e6";
+      sha256 = "fb4f87a2f1c735fc19da371872990a4dcc76ceee2a0f6776e55b06780795589f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/rm/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/rm/firefox-96.0b3.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "92d2ff95f2b4a4933df5b94e314d9b4ab3957cb4abf852b93c5f547e3c5cfeca";
+      sha256 = "a9292aa129c8dc538014481865f046b8dbd069138a4ef73743137ad609656174";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ro/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ro/firefox-96.0b3.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "7ef53acc59832375854cf6795bdd5ef02dfd94bb50ed258b981364332d4f1b98";
+      sha256 = "4da6f323d2cddfd0a6f85f61c75cae777668cfe4a88a9fae3ed6297702604e35";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ru/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ru/firefox-96.0b3.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "65c0596d5d6d889b8dd7bca44c302b46fac0e584fc8d7b0e31db28943886e3ff";
+      sha256 = "44eddd02a18b8e419d44bae127a4f37eda740f63fb7524891f3a435a6430f64b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/sco/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/sco/firefox-96.0b3.tar.bz2";
       locale = "sco";
       arch = "linux-i686";
-      sha256 = "5f07b16697dcda7129127c2b0d69f05f6ae4d52b1c6a158c979ea96f77124b52";
+      sha256 = "aabcfc84e1a06d901e29b571628905871248a3148fdfa9ebe1b26995db92fb81";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/si/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/si/firefox-96.0b3.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "3a1203cc2974f91ca023b5ebb99945708dea0dd995a7f2ab7dcd0efdd05963a0";
+      sha256 = "8a8b0fe064719cfb088ac61e412c7b1f2d6d66ea523d7f6742efbb54cf53f0d2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/sk/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/sk/firefox-96.0b3.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "1622f6101810fec383598d0d586023137b391cf3657d14ac223a19874887ae6f";
+      sha256 = "0bba256df30a3deeeaf5edb946fa535b762cdb42232f8e15f3d1ce49743c121f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/sl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/sl/firefox-96.0b3.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "b64163b6769fbdca125b5f593c99b368e6750db33b0289f093b6622e4c084bea";
+      sha256 = "5ed15767967d579d6809fdc0fae86f0f42b9f8ec2e024bd40aa151147528ccec";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/son/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/son/firefox-96.0b3.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "dc7fa036e51002568832b39d929fe519d3f485dafb40e2804c687b00e24151a2";
+      sha256 = "5e6f78700f74229fb3dfea3b408a5ac78f18892c6ec407bd85017467a5687ba6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/sq/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/sq/firefox-96.0b3.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "8e0a44122cee3ce32783022e6adfc34368939089585e2cc59bc8cff2d77526ce";
+      sha256 = "5eb1de045ee119d67e0251be6223f7efb3fd26d8cebc5f372f4513d0928c8a51";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/sr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/sr/firefox-96.0b3.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "63162923573e087dfd13c3e3fc65a4b5c20ccc7427fb0a5809639d1edead0b53";
+      sha256 = "78b467f1ceda9ef4d181d5549855241ed37381dc08d4e282bdfdf0db3b0625a3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/sv-SE/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/sv-SE/firefox-96.0b3.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "d29eeca6fa60fbfc225610f3d90b3e394296ecd3edf8acd0a9417df22d8f41eb";
+      sha256 = "a708c94b51ee31a40532970d59b2d570c87aedeed24454aace5f6870eaccfa5f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/szl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/szl/firefox-96.0b3.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "a2d122d98a66cb67820111cf6914321e094f112c38ba8b10b7b413631258bea3";
+      sha256 = "0095fd3dc0eb4eb46c55ae3b2ccc65bea69127aed00d6fac446fb9c9274f4302";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ta/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ta/firefox-96.0b3.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "829f0888af39a91bfc7d1813d37f3c8fd0379eb80b8445550e0d00af9ca89167";
+      sha256 = "c8f052d0275c803da20f62172976b44357861ccd8599d9d70eba9a2c96594824";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/te/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/te/firefox-96.0b3.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "9e5862a75d161b3a7a5afe0b04625a4e195c08c6d76f9b359b5c18470cd2f7c9";
+      sha256 = "efad15e6aeb3ad1287cc3d0e3d0daa389faa7f348a002cb5c7f52f812eda8c33";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/th/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/th/firefox-96.0b3.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "8562d938f7afb33d2c393a047cd48b4a5791c9fb9d20dafd5c60402b08505edb";
+      sha256 = "dfff091b8e2f6b19842335da51f4cc7107401268b91c1bee55bb473ab5f245bc";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/tl/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/tl/firefox-96.0b3.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "541cad5bfe1cb36595e6ffff13af66f23595fa94d0a2b3591920519da06f5bb7";
+      sha256 = "35f3b8459096105e29d87645ebfba3a93fb23412ac7fcc30357f2ebbce658f2a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/tr/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/tr/firefox-96.0b3.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "fc59be56ae01db30b9349cdd912f40fb16851d4ba45d85cb2741c00bcaf1eceb";
+      sha256 = "3727440d1c3fac9b5761e3f79e46658dfeb5bee2f3ed17ec78697d869be7a7c0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/trs/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/trs/firefox-96.0b3.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "6b07660d7ebc94792483ee248d87de5b28c720fc24cec2acbd3feb5275250e2b";
+      sha256 = "91808cdc62ff8f8670d3c22acb6c203832471ade8e24fd606a2c00312fc39d7d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/uk/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/uk/firefox-96.0b3.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "1936549b7414a8f8712bc642b1d95123b92c1330a523822c6cd35146bc723ead";
+      sha256 = "947f2cb2572e17d04263e5ebebd897a6900d22dbc85196826e316706a8622aa6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/ur/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/ur/firefox-96.0b3.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "38c599db47a31edbc86fc57106f9dd4e95fc5f35bb92828c6f8f1aab4cb4ec66";
+      sha256 = "d5baa22518ee5f189f780d159aef432591c7d4855cce7f1dc4c67d48c69d5780";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/uz/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/uz/firefox-96.0b3.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "6be5066a14c96acba04a49d76c9f08f1f5aec41b492c4473ed8744f7fdd6fe14";
+      sha256 = "25b19eac0ad6491c7285633ad61dab8f8d2833ba011b7aaa8dd1a2d0eca2b6da";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/vi/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/vi/firefox-96.0b3.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "0e07833741e12e53d6bbc41eacce27ad3f65d6e3dbfda5aff701ac3c915654a1";
+      sha256 = "ad284426be9590e9a118c5f151c478d15e6d964beb46312fe7172347783e9162";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/xh/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/xh/firefox-96.0b3.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "d34b9f5ce9b3f3bf94d0412d21283909a8170e78aafc0db5cdb006c1a48a5bc2";
+      sha256 = "ee90ff4921848363791e0486fc8810d892bf07c448c576bc4c0ea09a6bea8e55";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/zh-CN/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/zh-CN/firefox-96.0b3.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "a865cf695ddfb17c218c19ebd7373b396ca008ff4e848af80725881a4398d7b9";
+      sha256 = "9cc4ec8d6ac780a0fa8ad01b5b16438a0bcb290da79691e7dbf993033bd919f0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/94.0b2/linux-i686/zh-TW/firefox-94.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/96.0b3/linux-i686/zh-TW/firefox-96.0b3.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "f5c1ab464a2c66945116dac0c7fc5da7b21dd5e219b0f19cc7bb210b0d649b71";
+      sha256 = "6018bca3d3963b3b6dbed521ae068d15f659b6779240e8ed1f9c3c66ec75b932";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 5c065c4bde293..0a7d185d59b2f 100644
--- a/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,985 +1,985 @@
 {
-  version = "94.0.2";
+  version = "95.0.2";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/ach/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ach/firefox-95.0.2.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha256 = "bd5c9faa119d8e16b24840ad5843b7a4c64f664ea29c1512a41756d19d2cb65e";
+      sha256 = "30c3158285d010145b154249c1182a2a705881b18194166bbbf72d6f2fae45ce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/af/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/af/firefox-95.0.2.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "9ed0fff3ccfef43b467e295daf21c776ab9419b00a0524de75d0f3b985baef5a";
+      sha256 = "293b4f0d6ca7bb1ab8f51acb8a97894e81ef6ff36832a84b05f4789856001654";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/an/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/an/firefox-95.0.2.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha256 = "989a16767a92a91ba100af7f4fc97e1cb26ab718adbd5f0a14bebf9c0cba0495";
+      sha256 = "27a437c1a44594e7b6c7b2200031635cb5c10d529337b764d97e7c5529c9e82b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/ar/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ar/firefox-95.0.2.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "8937403e15eac062bee7b189acb52c87e33b6177eb5e8e0f9dfd9167fd5b01cb";
+      sha256 = "f40e52d8c0012a87153291f55b3418fa6a9569f370b394b86b0d48a80935bcec";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/ast/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ast/firefox-95.0.2.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "18a4051fbc0fdde0faeaee72951e2994a50a6f041d180075c4f38ee4b7f9fd3e";
+      sha256 = "5ad7e850cca208ae3125c3e628a0ed9bd9b5a7393d6e25b88a83cffa6dc9c7f0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/az/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/az/firefox-95.0.2.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha256 = "bdcddebdf3e5619a916b23da26cb22dc7afb0d25304c17c167fbec030de5ca5c";
+      sha256 = "3953a2a6f71ccabcbc6811e92baa7e86d548fa5935f5b149c54ccff94f8a7648";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/be/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/be/firefox-95.0.2.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "d0aab54e67d2782c06f1e8f5aa8b4cca8ac65c0bc146885b78449e16656fc6a8";
+      sha256 = "07e1692b749114e441e99509e5da570d2104c598f4335b16fe807bc01baa2943";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/bg/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/bg/firefox-95.0.2.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "d952c92e179ae599da578a92fd0495ccff3b82b2eba7f2613e91aa6695a87830";
+      sha256 = "a15479f6066404f7def523febf56ea51fc5d51e29302ae65e6022e7c6f6eb3b5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/bn/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/bn/firefox-95.0.2.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha256 = "e5934d418976a77fa926c06fb0482ba108ba91cef9019bcb0771b2d4c7101dbb";
+      sha256 = "641cf4adc3bc2ee15e60e458aa3c25959355ab511087d2601391694533bd2f11";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/br/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/br/firefox-95.0.2.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "a5a15f3bf0157f21617fca0e3b58e02916d8665fd082e028617911cffb8f03b8";
+      sha256 = "0b2e5ff481047324de3bf832e88893b6ff0c632c4e2c3275ad35d36149870ead";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/bs/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/bs/firefox-95.0.2.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha256 = "f9c06ab4e3c56475e0bedfa31ee1e2b6a7743251b42381d8d9330dee6e2bb4ae";
+      sha256 = "03a65771f51281b8f6f116c794671f8cb42e2a3832027380785785cc47c16e46";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/ca-valencia/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ca-valencia/firefox-95.0.2.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha256 = "d5e8779f846f0f533d895d66e4ac98f5eb38e1054f448ff7dae855270bfb3bec";
+      sha256 = "e42666332c27cd4b8e904f0c9c332971a8d17e12697fe18c7c93a8415f620f0c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/ca/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ca/firefox-95.0.2.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "e8d95aff6b9f383429a24b246e59b5b4abaf2d5074163b8df829296296dd2c2b";
+      sha256 = "915ee8e30d27dec75019956f960a4777cf33a8eaaf86955d9c0d8fe81a2a6e8b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/cak/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/cak/firefox-95.0.2.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "997d6162c891115d36fb3612115b00e37e1976de838a5f25a0c829361e7006fe";
+      sha256 = "31e2dfc109314c942e52e0783c1df09959b7bc27961c419a7dcea709d0a27e50";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/cs/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/cs/firefox-95.0.2.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "9224d79a6f918018baba8e8767d1d28ef2a5f85051b1dc23e09803b4d345b8eb";
+      sha256 = "5657b42bf6c9baddb68740d05ff75f791d53d5fbe36159db3f3afd16b22e275d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/cy/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/cy/firefox-95.0.2.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "4afebf3248ad98b19f2eb8e743672ff28aa40e305735a8c68b99af967fc45d25";
+      sha256 = "c553331598f9666a8acb0c54eb47872d6e0e81d5884a4296e69adf3fb93a447a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/da/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/da/firefox-95.0.2.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "d834b34eec2432f704a6ff4e122b08c157a5fc9f856e0f3983ae220ba1edffc9";
+      sha256 = "affb6428a8075a20ab8ed161972297d7841e533ab63d37172fba0fd221933031";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/de/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/de/firefox-95.0.2.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "73312ba296f0efc2178dc0bf8d90f6fd7723d6c1cd53372ffc058a4d6f565cf3";
+      sha256 = "2bc45b8224591336c7ae61e0a2bcc0e3c9e172845cd9d267df118657c4d9e0bb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/dsb/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/dsb/firefox-95.0.2.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "af604fde6da04d8a6afc044dcbfb354d8e45415afaf7964244d5190e0d79aa45";
+      sha256 = "ab7f31ca329192242baa95738bc762e300f8208cdd9bb825d39fa6f1965b3681";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/el/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/el/firefox-95.0.2.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "6a8b3aa0c49c2b0a101fc9045842b55846bbaab4b9504e54dfc0831b70008e2d";
+      sha256 = "2fa3ae5de7cc898a838edd5beb33b706f50536864df60dd958506a0c86a86c77";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/en-CA/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/en-CA/firefox-95.0.2.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "8ce4c830b1c6ff8de5c7a594a55919fb1d8a6f24b8ae963aad10fc4e65b29f96";
+      sha256 = "02ed1a2a567a9554d07a98a6ecae87c1fba977d84c3467347ebaf67142a51584";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/en-GB/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/en-GB/firefox-95.0.2.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "f6ffd778e7587e537d4376102de619ed70b5689a854a1f89e8e46b09d8f2a4c0";
+      sha256 = "cc4c7a8215f2cdf91cba03c1e9b2b41c35e7d3867946a9f1f829556f8848d59c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/en-US/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/en-US/firefox-95.0.2.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "975ac4e4cccd91b10d997ecbc183b557e45a1cd54fb488aaf85a45b06dfbaa9e";
+      sha256 = "f78a41215d168a2a215528a08877b3cc51e0caa3f1a840c27075b3112ef3d7d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/eo/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/eo/firefox-95.0.2.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha256 = "89b36aa02a95263d7e1b271c27f73672a5c4631abb9023bf3bfe4dd85aa3051b";
+      sha256 = "125bd4c7c0b758610165a360a7d754cbe74a75564428314dac88aaaca070b0e7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/es-AR/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/es-AR/firefox-95.0.2.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "e011a0f14585115e93f9f68e03246b4d5f2e7874729596f917227fff0b7fe6a3";
+      sha256 = "98f889c83e063bb14c1b0893507322a43676383490527c5a4c3c43540d19bcad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/es-CL/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/es-CL/firefox-95.0.2.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha256 = "6f7e829c67feaecbebefe3144f21b939eff22afcfd33e97de6371c471426996d";
+      sha256 = "af09fd6032a2b40a5af5207acb35240462f827abd46edc0336fce79498230b55";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/es-ES/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/es-ES/firefox-95.0.2.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "2e48ff3b6b839fdf88026e2cf27182a6e6256242f994aad3e4c8ef3203c8659a";
+      sha256 = "31fb87e5c96a328db0729cc17900ecd4ced722cb85790fda5781125fb1402f8d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/es-MX/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/es-MX/firefox-95.0.2.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha256 = "399004ccf9cea84f614cb55460dc988e148a7b2d0913278cd7be0c7eee898bcf";
+      sha256 = "c56edc5a194cae8d442ed2119e3e5988923b308b38849879da801fad73814d93";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/et/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/et/firefox-95.0.2.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "4c790bf5a4b87a3bd8efa975f768e99e05f726e915d936d296f381f0051c38c8";
+      sha256 = "b9aa36097f1d91e49442b9da2313e6e4604e50a496d41472a707b45d452e22e5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/eu/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/eu/firefox-95.0.2.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "fb96089adc354dad4dcdf43b8c65609add8022285470df4edd9bfa814e761f02";
+      sha256 = "e47e56023251ea1660e29d0c0e0b6827caad83fd6250a19d4951ebfb29411dbb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/fa/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/fa/firefox-95.0.2.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha256 = "1a13b4dc79d4ccd0aef20f0d3d29d42ee835e9bb4d2d90521c7a92cb327c96de";
+      sha256 = "97b597c2c932a26d9addb602ad912dc718b0a195910da42089498ab1e6c8065b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/ff/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ff/firefox-95.0.2.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha256 = "93f4bd4fdb7dde118f06247bda2d3fb72b1f072bb996d8a52e9e01abe4f248a9";
+      sha256 = "606034717d76da565c643ac69e3799f7777741130f607073b701786e6fc103a6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/fi/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/fi/firefox-95.0.2.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "fe2b5cbb25010d7624b1fa799dc2820df057d2419f9ddd07e660cb5e32143ce4";
+      sha256 = "e2a5df47c570ff5fa9eb6e3206d4ef3ae653c7b787916962138cad40745aaf39";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/fr/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/fr/firefox-95.0.2.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "f916b9d0e1fb6b28248a443cb4ae31c3350eca1f6a7b7a794758792417e91105";
+      sha256 = "d21aeaadad2390663b353445559518d25140f9dc6bf5673e36f44f107690971d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/fy-NL/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/fy-NL/firefox-95.0.2.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "f998b9475930a6517836b260e43b0a8e37424e223d1eb213755a0efb46aafa38";
+      sha256 = "6d15d80b73a5295e2ee3cac50f3eb15b5992c2519fe916eeae3df52f90a28927";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/ga-IE/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ga-IE/firefox-95.0.2.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "0ff51d3fbe979bce2335d0e250f21ba2d2618ad09c999e0be929053548b30d3b";
+      sha256 = "3aca43ca905a894173ee2063d170ef4d348bfbfef9bd2a6b9ffdab3effef6725";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/gd/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/gd/firefox-95.0.2.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "31a34aacf048ca6dfd5c96fdf6b618532d368de0afe38835541cc8cdeefae9c6";
+      sha256 = "05f8f4832397706aedea72f049b9f8cbbe9056aff20aaddf0d8ea61a9ae5dd41";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/gl/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/gl/firefox-95.0.2.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "7dfee546ae528bd7888131efbb5797b0e2f7bf84764843ee88eb53a7c4b9cd78";
+      sha256 = "5cd94e5d8d7f884fa7b747a814c6f80551dfecac683b55c0e6553407c43c4f13";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/gn/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/gn/firefox-95.0.2.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha256 = "ccd7986942c61b254d25b09db75729b82db5d7324f0be5f997bfcd8c96f2325b";
+      sha256 = "063f3d55e2d9ca33c051f49176e663ef40896deb87980d90eac56484b87f2aa5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/gu-IN/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/gu-IN/firefox-95.0.2.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha256 = "c93484e19a7134494c1f5473deead034dc6d6bae163f8103b063949bdb119703";
+      sha256 = "1f74c4a721f414ee37f8b4090e425971da64354dc31c338c4d9cdb07ac84485c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/he/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/he/firefox-95.0.2.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "297ef303e6cb27bfdab73512b2a184fa2e3ac575ae99852244a29365370fb042";
+      sha256 = "d70277a80d159ae3bea155cf2f813179393317a1bbe2885d6c8fda4aa607d0c6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/hi-IN/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/hi-IN/firefox-95.0.2.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha256 = "a41625cc6fda655aa420602f2eecd8e88177c088ade770ee80b9dc34d2802b9c";
+      sha256 = "0b562e989e9dce6c04c3d556e09991ab28df4cb9cbf514a98b584c2ce8503d7b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/hr/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/hr/firefox-95.0.2.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "dfedafaad51d27e1fb7f24a02b3149805073f37fc20f89e903ce9301b656b9d2";
+      sha256 = "df5788906b8b0d506e75054f133fef9bdd8fadc14fbaa570409afb3a8b8af8c1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/hsb/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/hsb/firefox-95.0.2.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "15acfff1d07bcd0201f4407cdd3c51d17ede6e3fada977b496acfdc924fa6606";
+      sha256 = "f0f9f54b037b5e519c80f5742202cdb509bffdd1558af4e4025b59e169711eb6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/hu/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/hu/firefox-95.0.2.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "dabc87d3fad5633b460eda4b7d4f751a33af6ded74bb9a1f992fa93d022ecdb6";
+      sha256 = "eb11850c9df446876e21ec6d292b0bd0f8073f66347504b7d7384365d0097b2a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/hy-AM/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/hy-AM/firefox-95.0.2.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "5aea20d14846d87c9249e28520b44c9693f8d5a69b1e9490d817d50c7d2e0381";
+      sha256 = "bd23fe1e26a17d328d6f98fc8cdade954c2072297d95197b52288e4ac95dc812";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/ia/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ia/firefox-95.0.2.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha256 = "ec4972e7494a0755e2fd3bf8d697fc5f6b6069b34dd083abdc93f625db24cac5";
+      sha256 = "a4fedb53f10455ea42f313a63c0dcab601b8b53043e736d307f3752e2e01e298";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/id/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/id/firefox-95.0.2.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "3621afd47043f87741f2cf6c70fc4c749b134bbd3284f42b7cf220f500111d4d";
+      sha256 = "59e05c58d03dcb6c55e160414a5209e3590c92364eb4a7edcc381ee4076cad7e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/is/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/is/firefox-95.0.2.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "0fdbbb65a5ccb04113b39e1257079543ed0a0a044104321b568b4c7079a0c126";
+      sha256 = "d8f4626e7dd9fbddd37caadeec90985b5aeae052553cbc4e8a96cd8916688227";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/it/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/it/firefox-95.0.2.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "eb68a8b1167f964d3538c86d1276137ca3cdd6ccfd6cf66bee4286ea052d8f53";
+      sha256 = "cd03b57ee4b1bda04c4ef3d6d76db0e0b25c2e802f5b93390bcb39111231f2b6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/ja/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ja/firefox-95.0.2.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "772943d646877a7845b23d05c940b4f41c7399cd81068b26793066065dd9bf9c";
+      sha256 = "93d3b15e2c9fd8eab8636e194f3db3bf164008f009d26e8e8858fd9b67556f10";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/ka/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ka/firefox-95.0.2.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "e410b7999f0f59dc58a777a9e3c4b5439b45ed2dd7d8bbff7060b5bbd380d12a";
+      sha256 = "614e9544235c6c6be9a05ca5193993a3122aa4580d62a69b71cf024c1a5be2d9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/kab/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/kab/firefox-95.0.2.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "764c473c7abea8cdd91b88eea4bc294dd682196ecd8672e613ba4f6b50077c7e";
+      sha256 = "83f64f8b96369d3027081155f9a73eea31dad343daf16a67b4daa81208963809";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/kk/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/kk/firefox-95.0.2.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "4d2ae9dbeec20d34648e4799d11b257a4897f1a9d37de04ffd59f7a0ad79d15b";
+      sha256 = "6053e9164deaced2b0d0dddc3ecd8a6282da862f426e935231e530b0dce5eace";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/km/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/km/firefox-95.0.2.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha256 = "eb60a5083d30d3f98b063213da4d51e1dedfd71d6a2b5b6cdff02baedd4985c4";
+      sha256 = "10061378569908531c59f89c39c4364d8ba5cffbb8d2431d24cb936e61d949b7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/kn/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/kn/firefox-95.0.2.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha256 = "8e43fabef02e33500552429f71d548db1b6c5a9d63095b53a76b7f15418accd1";
+      sha256 = "3a958d7739948f6a051761af519b96e4209a27141d7487d37ced02eac115be20";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/ko/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ko/firefox-95.0.2.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "932edd7633e23ed5318491dae495f210707f6eaac3d253263e615f3092a856cd";
+      sha256 = "4a00e445bcebf1bb09b30958ee7ced9bb74fc99d459f13c001be625dfeafb2ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/lij/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/lij/firefox-95.0.2.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha256 = "b9326e61ae16f33bc200fe3712acc5e069df4c5575b38c48d765bf64c078c22b";
+      sha256 = "5581da8f54ea490834504bdf6c6ba38ba94e580a3f5ded68864ca1de9db51ccc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/lt/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/lt/firefox-95.0.2.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "2d857aa44cc17532d6f8691c78a1a6511e87016ef95eac2a5e184dc70987ed65";
+      sha256 = "9fbb08c96b44ab8e79c9d1f4c485b3e82abe0c0c44ced0b2e79640bd036042dd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/lv/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/lv/firefox-95.0.2.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "595887befdf74b3ef4d37b7881661341a199e85d71cddfbbb62406015a60b585";
+      sha256 = "26d5a0d071e6df933f5fa602e5ac92908d6bee3aea3a0878dd9fb78e0fafaa34";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/mk/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/mk/firefox-95.0.2.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha256 = "5408c46f1a23321b34c8a78a3af4afcc2b3bccbfd7f2188db9ae1f5db391de13";
+      sha256 = "77eaffb3409fe962c042033304f0272a9b6a1d83a67c04039e0bfbe3fa77a406";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/mr/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/mr/firefox-95.0.2.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha256 = "85ac81aa121f611a12ee09f3c07c487e6c4af5a31999db7891ad388075a8239d";
+      sha256 = "bbec138ef10b1d2dfa70e92b6911d5ba93d4a83c19d32af0e7d0f7b2273a440d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/ms/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ms/firefox-95.0.2.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "95b98338001c1f4d6c0e2fa22750bf4216c754a64a7a11b063e172efa1f0c163";
+      sha256 = "f00ac99116a2ed626af9e384114414a385121f4c5ac9d6fdf88d514391c310be";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/my/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/my/firefox-95.0.2.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha256 = "dded4e09e56fdf55afefaef54e7d7b4451f3590e1c3bb4768635abce02b10891";
+      sha256 = "c8f24d949500f9829d539df0cad530431809a7fa74904e60646a3b0d68c49010";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/nb-NO/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/nb-NO/firefox-95.0.2.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "ef6b6fd0c21c4563267551d5ee9ad805023fe12552fac44199c7a2bbe3ec81f3";
+      sha256 = "46a25d5703164b941fa33bbd8d51098129cf69aed3d29471b50bf47b0fa402ec";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/ne-NP/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ne-NP/firefox-95.0.2.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha256 = "7dad25866efe784ea6b5cd244cbbd9890ddd813f386ef1a5e98530cfdbc64a49";
+      sha256 = "7d10b7aeca90d46e0e58f7ae275432bdd99bf0f85009c85cb7c4b24f4801d552";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/nl/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/nl/firefox-95.0.2.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "4518d9c4d6645285e4b337acda7b0bdee7733cae60c8515d8923cc85c470c596";
+      sha256 = "534b7103ae81a7804a9c7a08e99d208daeaa9ca0e90d7f7e33c57357f07ca432";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/nn-NO/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/nn-NO/firefox-95.0.2.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "6df50c1c01a9bf0c43a36277d6d17213c3d5a3a273b2a6257aaa5168f727e02e";
+      sha256 = "9bffdc0f5f5b53ec578a5dc2681b122b0d7a744e0c57955973c49df6f0f6e46a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/oc/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/oc/firefox-95.0.2.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha256 = "3d253d2280607b5f4ce252cd730cfd282703c3a8ec90a1efd70084349bb14dd1";
+      sha256 = "292c4b1fa823d2260b34065f648e18aa56b27254fd59cb226df13de7861ebc8c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/pa-IN/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/pa-IN/firefox-95.0.2.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "564892d7c26d757b85754f06a8481152d24a86dc32c64d63d32de0a2e7d2ccfa";
+      sha256 = "325bb3da2c70e34507f139697c4ece086a0002e488745ff33540778634b51c93";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/pl/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/pl/firefox-95.0.2.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "8201d195237c9902494627c95116f9e19f08224eacd1037e69b370d2ad6ec046";
+      sha256 = "4f8dc3240001f4fad31c9e3e7f70499e0ac4d9e6c7080b727e7eb71b8e91003b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/pt-BR/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/pt-BR/firefox-95.0.2.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "ecc6009cc5d29c4e9ab7374fa5d36faae08eda78993a7fe81816a1ed6f2da654";
+      sha256 = "88ae3bb932005d9271eb5d82951f32c2333296c2c24f23881ab8a1a3d563bc76";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/pt-PT/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/pt-PT/firefox-95.0.2.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "1810fe3d1660f8e8d28c667aa6bf6b0430aeb0d0a1008fca4658a04c33951bed";
+      sha256 = "a7a80f21b5e5a0e6e40c6865ef3526f1eec3c983f8d49caaba35a2e5ca5401c6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/rm/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/rm/firefox-95.0.2.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "eba9fdd5cbee26f88c0e29a1765376bd2b7a6bab635e20afc29face8e9e64885";
+      sha256 = "9d16c2bcf15bf2b36f5ca664a0476e080d756b14566880c0a3c8590f707a1cba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/ro/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ro/firefox-95.0.2.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "59d3c57654c742ac7d2424df278f3a4da50b76fcc751026d937d598160934ac1";
+      sha256 = "db0cf0ac7b6383fdaa8a3ef5e6d59f3677009908ddfd12221e0f97b19b58be6b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/ru/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ru/firefox-95.0.2.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "e5e4289edd4d7ae420aad87ce38b65eb3c1978aa4d97df144f958dd24e905afe";
+      sha256 = "f1def34584ce90445355eaeb64bad5ace27e1c6447b3a1346dd2e5d32ef1428a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/sco/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/sco/firefox-95.0.2.tar.bz2";
       locale = "sco";
       arch = "linux-x86_64";
-      sha256 = "83638c4728dfe9a486ac748c84ee721937b003989622b3b8725f6bc6b66bfb59";
+      sha256 = "e1c3953c2ebb12fb6975727b68ad9667b983d1d1c7fdccdbe0c52e5cf12c815c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/si/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/si/firefox-95.0.2.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha256 = "7537ce71b85d195eae40e9695bd139e624180833c358e9633e4037c1052c02e0";
+      sha256 = "268bf3da414e1e00696262e0104b77d71e2b61b6b6fe1fc23cff33ede4108f58";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/sk/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/sk/firefox-95.0.2.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "d2073ba06b23f4b65f1fea49eb9f04a7b2f35d73ed4de16ccebc7c109b5dcbf1";
+      sha256 = "39c018398173f92334775077b0b11379f859597b162f5b186747e9c403206718";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/sl/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/sl/firefox-95.0.2.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "059f2fc2d0cc02a1b92e8cd6b3006b13bda20d412682979113683423b73d20c8";
+      sha256 = "0bd6c112fd967944205fd08055ca7a5096c23bc7ea8e0d09738883635a3653cf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/son/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/son/firefox-95.0.2.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha256 = "c36e332c7d264a997d162fbd008c97bb56da46507872d58bcaf67760398a5c56";
+      sha256 = "c7a7b276935012c9be0cda1531f6206163434ac5810580a65a1b0f0f2c839660";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/sq/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/sq/firefox-95.0.2.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "270d37e65ae60be7a44e19bcae22cce56f418db70d38098a634ab38bd85be924";
+      sha256 = "27d6cd975c7f68d4622b0a2e1b7847d0f3e301b2e9e76008e047d522917e7d3b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/sr/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/sr/firefox-95.0.2.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "edfe02b63134dc88afcb326395e24f9bb7be7b58d88c2f80eaf12253f40df0a8";
+      sha256 = "68a99dc76c9c7179f12bb892920aa02f3a9019186a8999a06448a0e19fa93ff7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/sv-SE/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/sv-SE/firefox-95.0.2.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "9ae2294f5c757261e5b320814ef11875f05a74fcf8d7001c8b9e896f761ff2ec";
+      sha256 = "d0d64191bab8421feadb1abe91b471a6b059041b2935e0bc43f6d9c959d2dfaf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/szl/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/szl/firefox-95.0.2.tar.bz2";
       locale = "szl";
       arch = "linux-x86_64";
-      sha256 = "fedbd7bc7aa4b187eab423ec612eb4a9a6e8d7bb8ad5d7474a422c8093875c87";
+      sha256 = "3c698e152b2aba10d46ee06a5ee0425afd4c7e7354984b45d883ed5e286890f7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/ta/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ta/firefox-95.0.2.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha256 = "cc302405c4d0319ec699297b78e3a38400ebee0806ebaca4bb246f5df781afdf";
+      sha256 = "ca9883cbe4558e38ac9cda62b0f43f3c173c9dc479214b6a746805e43aeda031";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/te/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/te/firefox-95.0.2.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha256 = "27c8ed45bc287db8c4973ab422efba9eb4680f8347ebf79a862521582b5bb9df";
+      sha256 = "251915074e437e83c1165005b41c28d0b17b4234bd3caff8197ac660bb35eeac";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/th/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/th/firefox-95.0.2.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "f93d1114c4dc4ca98f85a5508ae0c0288196ee484697da13fb9166ef00e423c5";
+      sha256 = "7275ebab122274b2ec633a760bb2dc7b1257d3523051266ecccd55661cdd7b45";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/tl/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/tl/firefox-95.0.2.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha256 = "23724a1880b7de10b7d8d5fff714454afebdf93d37e6aab2a492f3e3fcb67b08";
+      sha256 = "0217bdd9c71f993360ca97fe185d020d222c4e250138499088d521e0f21c984c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/tr/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/tr/firefox-95.0.2.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "9e0f630b441241da1203cc22536843ff924dd470fcb0baaa7a05650f3b47533b";
+      sha256 = "d9923e72ed18af3204df15d7a414f5c41627ab80e9566b1cc16f4cd0d5bcbb16";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/trs/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/trs/firefox-95.0.2.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha256 = "3e0b76977ad714dd05192330042ffb4388146c7f1e18193e3438b126a9c23ce2";
+      sha256 = "3ec42470cfd25149f8291ae6634825648e64d0bdd115c75cc2aaefb7db953d03";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/uk/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/uk/firefox-95.0.2.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "40a30fccb01be981bf2dd47e8990b34fdf595bb7ba5837b8cc98ed4137eafc9c";
+      sha256 = "a059f9ea668d4c70ce6574f59762f917baef5cc62bb0af0c7e422577a55828f5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/ur/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/ur/firefox-95.0.2.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha256 = "cafd95a645be820483369766250a7d1331893c40dd2cf8bf9fae7b050e10a5c6";
+      sha256 = "d68ffb37896e8c1405f919adf301053266c3bee0f729a7889be1d234343dd9f8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/uz/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/uz/firefox-95.0.2.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "9e08b5d962c3e3f2375be1847a9386777459baf4a477950649700e66dfa52f6e";
+      sha256 = "54ffc455910dcb2aa83e1736e36672cfae84658486d5117fd0c1b97f61f829b4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/vi/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/vi/firefox-95.0.2.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "d28802eebe7928fce570a06aaa33ac83a100fadff9df92d5a4c073d653f41807";
+      sha256 = "9b46375c46b831db3680d592400e68ad953dc778e77742a4f24f36af73e9e810";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/xh/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/xh/firefox-95.0.2.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha256 = "4661018a1d62fe87a32a85cb4d492f53c8fd98f639f48da04236132844eb674a";
+      sha256 = "e728b54cde7f96a6c036a7d65c14ab14df2a073227f33709485e52a5f34bc565";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/zh-CN/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/zh-CN/firefox-95.0.2.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "26fd90a4d04e9432e237e82cd33f0f633a9667e84714444f79a970216a7cca1e";
+      sha256 = "5856e43a3f3a7bfa7710b42f15209e0d0ce39a98d8509e0e19f957b972e7c1e7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-x86_64/zh-TW/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-x86_64/zh-TW/firefox-95.0.2.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "de1b466c4f786de15df1bb3491757c92d982a196b347fdfab7dda0bbdaf7ec7d";
+      sha256 = "9defb0e1cac327e91f4a950448d553dec01d5e359008d365991e1e188453dafc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/ach/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ach/firefox-95.0.2.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha256 = "ef462def6dd6ba17dca0e360879aa6f2007f0c7cfdb1398c68efc2736dae7f29";
+      sha256 = "158fa1d03e0b7bafe9603c7b2f30e78819dbce67b07b2ec78c4fd89f05303729";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/af/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/af/firefox-95.0.2.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "90aafdc86bc22b76cb1f1a3d93a5fbbff1b3acb41f194e707f028230273119e9";
+      sha256 = "a6ce2aaac2061d36b294de9871bbfbb4321f4ad1f421460a6e3d799ef54b608d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/an/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/an/firefox-95.0.2.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha256 = "3669136c7c039eb0bd6f06f0fb84d927d700b2c31985b0074ccb2e397c2331ed";
+      sha256 = "1e8d592f2431a2e5df7453dee984bd29bf94d3ad1781474effa14ffe9de3ba3f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/ar/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ar/firefox-95.0.2.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "37e329462cbf7c21080494c1026fbdd1686b95fc4351d1dc25fb8339cb93cd02";
+      sha256 = "ae55b1595118148889049b9ddf25ed9e32e6d6b2cc66b0e90821cf79d6bf2ff0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/ast/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ast/firefox-95.0.2.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "e0a7dd866d2bb74e444c5fbaf2a4adf354953a7119d0a399c872939e02fee46c";
+      sha256 = "17e76ef25a9028042f3e35b725ff0171bfd82678c6ab826115785ce6ff2d2010";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/az/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/az/firefox-95.0.2.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha256 = "2f30b1b3c2baf0c6b8cc568f11d758851954c4842d59481729cb4485b6955638";
+      sha256 = "2ffd85a5982a0ed0c359d1f8f8712407aa6ff10823d21750cfb16d925fa0c5f7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/be/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/be/firefox-95.0.2.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "98e54be798769dcda2875f4b56432abba93a775801d54a7792ac0d13068bedee";
+      sha256 = "e78fa23ab27503921d3d4e2f79dfd391d0e200552f2bb48cd27a6cdd47468ab7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/bg/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/bg/firefox-95.0.2.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "969e80bc391c016769af80eae52f907ea3c260a4d5dbb6fba0393aca76f45628";
+      sha256 = "4e866bb3705f17fdcd7b98313b025e52544dd7bee2f523e886b3654455480b62";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/bn/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/bn/firefox-95.0.2.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha256 = "080802a1c60a2760296fdc6851944dffc5842ec8d9efb836977d3e9105ec3c13";
+      sha256 = "e170018a2e2f6a568148ec5073c5f82fa401894f5310b887dafe36e388b8876f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/br/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/br/firefox-95.0.2.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "0f4f7da4274d5a73d7b4d0e8e1a47f82e5c40061b6cf7c2dcdafc4425603bbc7";
+      sha256 = "73ea87a78ab765589c7e76237044bcdffd783183ea6b8afc67f2871231692143";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/bs/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/bs/firefox-95.0.2.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha256 = "ca212c38fdc4d8ebdffbfee80e82518ee4476d4d962c5ac7476df2254cd58843";
+      sha256 = "900d9625d1cbaed04155e5e024cf7872d454f6b22ee37a57739c702c6a328657";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/ca-valencia/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ca-valencia/firefox-95.0.2.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha256 = "d55dc5a8295f18cad6d94f548e14c4f03214b2239d40f4b177e94767a0d333bd";
+      sha256 = "bfd22c146671bfb21b7f36c17691754cbd8c6abb29eeb0703d3a030df51364f2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/ca/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ca/firefox-95.0.2.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "6f0393c75586ecc4ad877401292b18e43b245c5b9aa575d7df4ed1ca56d7cd98";
+      sha256 = "1b1e3fcdcaf4c299cd8c0f5b109493646e74c46bf9a0b09dc5f33b33062a398f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/cak/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/cak/firefox-95.0.2.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "6e4f2f3d3fad7a8935faee284d8b99ac0a5484248a08b63b7cab1f3b5d0e79c6";
+      sha256 = "ce307ae50893ac9e424eedbedea8cb1a9358e287ee2893a8d0894003cbdfe609";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/cs/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/cs/firefox-95.0.2.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "6f6373d00d264e84672cc6e94ec5225f9202b20704a61515756b5ace6049f50a";
+      sha256 = "c6230333dc66ccf20b68879c31a69061874b5a0869786d87d8190c88d5a02664";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/cy/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/cy/firefox-95.0.2.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "8c9a5f5792a7560d752e255a7930c71266fa964fb13170e194ea7db6f81129a9";
+      sha256 = "3f87de3d75fd4a7f66af64bcb3eda0dc43a8717797840235dd64c0acd5eca1a8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/da/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/da/firefox-95.0.2.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "25ad12a625cdc842ae2dbb04f2eb4b6e6a8991b5f1d966993a045fce9bbfcd66";
+      sha256 = "eac9b4c6bc7737c82fd631608157448ad9c78e793c4c7b4e319e36a6e5ff61b1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/de/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/de/firefox-95.0.2.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "12ed455d581af8b0c16c0e40681d0d7594797eb54e388a2db4aaff83616d46f8";
+      sha256 = "71b618dee298b67383c8567addc0e2d93d4bcf2d196ca7db87ec20a3315ccace";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/dsb/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/dsb/firefox-95.0.2.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "5bdb29c4a0582647cc9ff2fab7e2e4d6a1ec4a56f76fd16d4ae9880621097675";
+      sha256 = "cbeb7eeffef1c0437644182dd5475e770bf0118a351eadb3c7892c69fed7e0a4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/el/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/el/firefox-95.0.2.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "dd6be6a586fec66b58e748f4afa7a1385fc01d4146bba7fb778322cf48bdd985";
+      sha256 = "2d9bd41145a737c8b25826d7af978219a61199b9d045651b6aa68029e5027187";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/en-CA/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/en-CA/firefox-95.0.2.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "e0e87a73a8c4d22dc106753ee212455f583fabc993251cbe236d0bb53c60d0d7";
+      sha256 = "65d83800562d29c0b042dcd9ae4d7fb230f8248ba0bd0cf8bd40505884f839c9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/en-GB/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/en-GB/firefox-95.0.2.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "5dfd49072ce81697c22a70cfe97ada4bbaf1a7dbe5c09bd8b7a8b7c5832ce102";
+      sha256 = "bf4cc0aea5826f1bcdcf493f241cf23509f626f81fafbf436430b0f0507f674d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/en-US/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/en-US/firefox-95.0.2.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "98ee74af986cec68df541fb5256e1c075cb2527680ba226b56e08cbea4a04217";
+      sha256 = "86e33e0163773378fcef227884d3c439f61c2d0d6ec3cdafde1740816812c811";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/eo/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/eo/firefox-95.0.2.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha256 = "a193c7f70565c5f2882adee337d8957da29051b31f64bfee8b92ec3c99e017c3";
+      sha256 = "18fa6af5ca174cefd1b8f266e1c6bb6576facc8acd28b6b9a8f6121fba1d6426";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/es-AR/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/es-AR/firefox-95.0.2.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "6c5a0470625a36d5537cd10935a2cdd432fd51a695521cc3f7d4b4773208e7b5";
+      sha256 = "efce9ac44d6156558ee28c7bc4b1489f1554afa632ed0dda2dafe2272e885d6f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/es-CL/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/es-CL/firefox-95.0.2.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha256 = "fdf83c78cf72c85d815acb85e7f46eaee24c1b3e884fe7f43a7eec29de81962c";
+      sha256 = "920e9183e71935da136d2142ed0b1a9e5a764e7d4bcd6ac2c65e3e405ee0d82f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/es-ES/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/es-ES/firefox-95.0.2.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "422fcf77fa884be57605aed5cd87cdbb8c9854901fd16ed0b02ed44edc7a62b0";
+      sha256 = "3c6cd25f55dc3aa17f1d613878b3b40bee28847a80b36fcb7d0c3b4ee5e6462b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/es-MX/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/es-MX/firefox-95.0.2.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha256 = "364d5706f34ca48623de35af2e42124fead5a17f9a81c0a41a28c60b8962703c";
+      sha256 = "7b076daa30e58362534aa2373931d0f984967824f3592dd92ffecc7597c4826c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/et/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/et/firefox-95.0.2.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "f4c2214b858afc9b5441d41203349e9fde7a9e6624808f194f57f1481a86e197";
+      sha256 = "d9188331a592ee8e7f40c3cc70fd5947164408bb18066195af5966b25deffa44";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/eu/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/eu/firefox-95.0.2.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "c55c4355c69a868107152ff48cc54afb184ef76c65b8fa9696ca6ef4ad0a240f";
+      sha256 = "48414c68c2c67719d43845799dcbb64a13d513aadadc8299e5ced7ac7dad89d3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/fa/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/fa/firefox-95.0.2.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha256 = "6340d0db75076cb2d9c4d1c844071a97f7db79e531a6c91b0ab078f2b1674494";
+      sha256 = "1cfc92b1100d803a148feea5bd0d40af26dbd976fb30b29e79125687bc5ab247";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/ff/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ff/firefox-95.0.2.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha256 = "5c636999e880b9247b5efdcb8a4d286f2b98c8b010c93f1a804091f0306a9533";
+      sha256 = "0e576c6cc65b92123294b7d230ea3431704ac107be56ed93486c93021019cc2b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/fi/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/fi/firefox-95.0.2.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "4ba17ee9089216df574c3757e760d1930ee327d66e6a3b862eccf3f9c8735080";
+      sha256 = "031de60746e0acba133c58091ff8993e9f03822b8eb2dde8636719685b10a5f0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/fr/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/fr/firefox-95.0.2.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "1b877fee35061d3ba5decaca3a1d81e6844f272c5d0a94cef374bda45cc65641";
+      sha256 = "072876a0c2f8d78271b83faba916c61b9e14f783a9afc6af08158e7e988c850c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/fy-NL/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/fy-NL/firefox-95.0.2.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "46cb4202a12b95d112d5749613cd1c80deaa52edc386f484e23d12407e09a21a";
+      sha256 = "cde0cb368aee49b281ef4f0893eaa15345ca60623c57dc7f93d8320216fd1edd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/ga-IE/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ga-IE/firefox-95.0.2.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "59a54b4cf76e66bac93f205d5ab7d7991bf3d6362e332164f28f09090eb7cc60";
+      sha256 = "cab5ecdbdb5e3286726b06e7fa8adb43d49f8c8316ee240ccc849c339bac3076";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/gd/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/gd/firefox-95.0.2.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "2994005051ad51dc1392e2bc69e52a06113d3323577c6514aaf48837b1158136";
+      sha256 = "ee5c4c06b9b899b14374dc6abeee533e130e90242acd866e02b0c759ca6ed397";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/gl/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/gl/firefox-95.0.2.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "07344a3a9602714f4291fdc451469d9d428d3b330cb6997544ee89b500214dd4";
+      sha256 = "e8fb73e3495d3c4dc1e827b21d50458e6ebfd56f3735c5c87ed88fb9bc9d379c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/gn/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/gn/firefox-95.0.2.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha256 = "75b22ae12362337a74b94a3fbe7b4b3cecf49b6df819b997966fb5d4a308cdd7";
+      sha256 = "3511c27b51f12f26238e5862edff7b171cb9eb6b0843843d62ae6ad4f23891d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/gu-IN/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/gu-IN/firefox-95.0.2.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha256 = "d80aae36b364920e46c03e683328f0d07357232399a3a79b9844495f100c0e99";
+      sha256 = "34fb15517f0e8472655950e0269050b897b5d2986aec4545dc6aa4e4314054a6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/he/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/he/firefox-95.0.2.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "116afab0741c6092a5932f932a33972b8da97df07e3f329069044a4976bb71ba";
+      sha256 = "263e6ec46f8347a27be1b8ae44ecfd3bd4475d2142fc0bbf21eedf791fa6e522";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/hi-IN/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/hi-IN/firefox-95.0.2.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha256 = "ac77a85108c1b3ede1db709829d24baa6906a73a804d9af475162bd25d9d3012";
+      sha256 = "c19cee388dfb212fa28ab7b93379db8bd60964dfb3a8a6f5371f5b4384fcefad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/hr/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/hr/firefox-95.0.2.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "d21ed0e4ccfd41ae59cdd0760cd66a8b065c1a451667332dd8e3d00ec509e766";
+      sha256 = "b3af09b207e11d6ba87b39f33e7c8ddffc80482fd3f5d910d2079481b3db4268";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/hsb/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/hsb/firefox-95.0.2.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "9bea8a4fb0eda357164d1418dfd6af37f55499ef76578600badf69cee629779d";
+      sha256 = "ea52879ce3a7b7a0921746d56163af72d824a287ead51a97b491682a479ebd05";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/hu/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/hu/firefox-95.0.2.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "f315bcf6a4b8bd50d3177d4c3d1b3634c6d20664dbb8c896fcd73f523012ce39";
+      sha256 = "e83307c88b9246e098a1063b61a886148c930bd891cbc75f8b6a1257f9746363";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/hy-AM/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/hy-AM/firefox-95.0.2.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "7965b4e7d9da034c57377a76534d1b501eda9cff74e6963b5ab0ae57c8b3a5bc";
+      sha256 = "f414105b7cb3485004af9e798d8159a0eb801e8f384b8b6926d34fd07af6ec0f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/ia/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ia/firefox-95.0.2.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha256 = "bd2d2bc58df8343b3f01258971616ffa7475f4da1872fdf15082073e97c94fbe";
+      sha256 = "ef3879f8e5ada797c0011ddf3a6fcf6407f2ee1e858f254ad2d500233c7703ba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/id/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/id/firefox-95.0.2.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "8ce031a74917f6ba2ab28d18c3bf90889e2220a669ab4089967b25d4e79ad924";
+      sha256 = "6c888381f1d10e4ffe6ed3a056933400e8adcb64e4a5c6da2524f92ce0eda62f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/is/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/is/firefox-95.0.2.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "04ddaed817aa5697895221a0db3ae7101b8233f125bc7fef922abb1a0e7723d9";
+      sha256 = "3d256a5d9382866e93f0b6f5a0cf1dac1bd724ef5f7c693ed0e355ad34db8476";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/it/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/it/firefox-95.0.2.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "8aa73f43364cb54102f77cf47ebc87add3099370b843625c5eb265e3329720f9";
+      sha256 = "fda1bea7c61c172dcba91e07e22f2e205f08e99b63ceba5d96576a432af47b60";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/ja/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ja/firefox-95.0.2.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "fd17973256956c8b0034ce4ec9da209d07c433434d72f41623a754aade1e5b35";
+      sha256 = "ae5aac021a845ff644d893de7a39a96aec33b128b1537e583fd48a06ff87e07f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/ka/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ka/firefox-95.0.2.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "d8058f0d613b048ca9406a7c4f635aa48c03b09cae5ef0d1e26adc7ac5cdf349";
+      sha256 = "043e54c91838a71c1b9ceae8fa40112c54dcd5a530d96cf0874b1eba76220878";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/kab/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/kab/firefox-95.0.2.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "055e18fdad70268697b777b14ce17b7dc6c7c84a1b02bb3520260733add2edfd";
+      sha256 = "fd7368cd63c612606cf57eee9476e009abd9c2f35a200f9887c50b34f36fddf0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/kk/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/kk/firefox-95.0.2.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "58054d22cdeb34d96bbe99b0883aec10c73e9a30b928af7ae866a5892388dc75";
+      sha256 = "b4a7e455aae1894b2b9418e3f0b14350f0a3446923684fcf61a8e6abdf131681";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/km/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/km/firefox-95.0.2.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha256 = "1929d50933ae722c9fc65f630099fd5f022e9dcebff4849392a78fbee79a0e60";
+      sha256 = "2635a41aa81a9ca863652b5e726bc2022369993059d64a6ad81a2f751e65ff1d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/kn/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/kn/firefox-95.0.2.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha256 = "2ac09ba601c391fafdf09ca8524818ea46af3e5a6d2467cb4c42c36257bdfa52";
+      sha256 = "adf9111e992ce6504aae6dc2bde5519e58ce474ce52317fbb503138fb49a490c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/ko/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ko/firefox-95.0.2.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "d4a16e36c13156761914758ba254815db1769f86aee95887a373b7cc218bdece";
+      sha256 = "b47532250fa7baff58d47052a51c966ed52b6e8009bc36b67958e67631e2de1b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/lij/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/lij/firefox-95.0.2.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha256 = "8ac33659d6a1621940c1d70bc573e7bf9bf867cb87e6e75f17eab5aa27f41833";
+      sha256 = "92d270be61a7a30876d00bd1e2741c0db4363f34f87a97456b700c5af28252c9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/lt/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/lt/firefox-95.0.2.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "ba99c9137ce112fa2e26e0ea5c7a9852d0801042a756047f6c4114fc7ac779c5";
+      sha256 = "8c4efa500b88d76ca8b0abde737552ab905db34807816df0d2614e3d47a00dd7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/lv/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/lv/firefox-95.0.2.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "3f5ae08ad7b17f9bff80d61a984715ed12653d9a4f459d69b429225afa9f372c";
+      sha256 = "db86073e2910f6d54466e8015fd8ed68b02f08c6ba4595ce21c3547addada57d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/mk/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/mk/firefox-95.0.2.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha256 = "6e60beeceb67b09921b383aa2e920c37425cfa2000ea497c9a0ff90e106029f0";
+      sha256 = "91a39fbc897197d48792bb1ed82e4e6a2bc969efdbe31c9d6cdaed60e4af4884";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/mr/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/mr/firefox-95.0.2.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha256 = "ee80850f99f616687b554370873b1adc2308d8dacac346a6ee091be636268c66";
+      sha256 = "97e775f3926ee3f158d30a16dfa5dcebf67b9d337e51ddad43235d1c7ac77cfc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/ms/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ms/firefox-95.0.2.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "d191ca6a6879586ce647c9118724048ebafe13c11058eb4499aff9a42bd13572";
+      sha256 = "32cd9715073cb1b987abf73f909185c96231d9bc9ea07972ff6c58a1e1ef5dde";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/my/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/my/firefox-95.0.2.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha256 = "7d2b9ddeb1de9bde70e06ff946af4061ccc8f9bb073835f4a45aca21109e8456";
+      sha256 = "4e70811af633f19718076fd1d0ce4008e6cc8ab6b24842fb1eeb184b505cef50";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/nb-NO/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/nb-NO/firefox-95.0.2.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "77d52d4d3f9637546d3880d1751dff795095df2baa8dc1d5b7f7f1cd312499dc";
+      sha256 = "97dda05d66002f87bf7b4ba2d08c18402ce2462ef2fb3e3876d4a55520329823";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/ne-NP/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ne-NP/firefox-95.0.2.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha256 = "7fef351583a662b87db4691cb2b3f4f26a683d2746fa51da3e89babd07f863bd";
+      sha256 = "7ea002b8d50f49e64123612d0a43100411a5edc975d40081b1d99e47b6413242";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/nl/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/nl/firefox-95.0.2.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "ac25c3e4149a36b972f76e2635aa4736d5281bb467d89ac8ea8545f9446497f4";
+      sha256 = "da9bd1e61d17d5625d9c9114315b63b37b062a3af13e91fa480af0e0aff35366";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/nn-NO/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/nn-NO/firefox-95.0.2.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "f85164e71b79178460a673a34fd68165b58fd2354b846c128cf614471325f89c";
+      sha256 = "096683e5c3cc1794c099197c6126df8d3f74b677a5c583559d0bfb884d380bef";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/oc/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/oc/firefox-95.0.2.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha256 = "2e4208811215f7e893043b1c2b36263957360000f302d656044075792b8537bd";
+      sha256 = "5823e9978b4abbfe5edd656165dc2d8a49a1cc1b65fd8e4fedc0d8dc642af695";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/pa-IN/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/pa-IN/firefox-95.0.2.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "0630046a3521fe19123fc75848f147ef82e07de7cb7c0539b1f70f699f3037c2";
+      sha256 = "56f1acdbd9c9613923aabdc69f80878f21acf3ff10a713eddb9e2224c35d7399";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/pl/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/pl/firefox-95.0.2.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "6f0a8a98624a20d111598a1e522e987b0c8d7857a2af9a8cf0a32a8d4545490f";
+      sha256 = "ec6c676224031272a81cf624db09d5c9a26fe02ac0fca72255a7af25ceab70fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/pt-BR/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/pt-BR/firefox-95.0.2.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "27aece21464ce9ce455f5d9fbcc2f153d20df17584db3b0f293aadc5408821d0";
+      sha256 = "2c86036d927857fa93778ad5b56ef134cd3bd95ba6be032c8fd6f94a9b01dac0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/pt-PT/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/pt-PT/firefox-95.0.2.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "0cdf45e3191b07bef1ada272ef65124c5daa591f29ea5adbd3fbe3a6edde095e";
+      sha256 = "331e81e86dfd3802432457bb78f5c65cc35c2ee459503b5158c0d9a44ddf38d7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/rm/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/rm/firefox-95.0.2.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "f5da93fd882199b00672ab5644a5f9a9662a0371bfd0dac034ae819c8c7af07d";
+      sha256 = "8d238b1fa93a4aacdc6f54a456fe523a9ac61d834420cf2b349062dc35e8d228";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/ro/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ro/firefox-95.0.2.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "c35390e2e94dd991b147ef30cf5e3ba74546219c36ee137d440a40d7e6a1fdb2";
+      sha256 = "caff2dde8dde6829c5401f0408c0c1cf146453583b407efed01f5dd629d70bf1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/ru/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ru/firefox-95.0.2.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "1353f9d55a1e74954210d4c3fc93c24e8c01b478053ca1a849812262fa119aba";
+      sha256 = "762466026aeaf8c8d0bee290113d658712cf02d09b130ac0cfb638d7d2806eda";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/sco/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/sco/firefox-95.0.2.tar.bz2";
       locale = "sco";
       arch = "linux-i686";
-      sha256 = "604268a66d7a772a2cd6dfaeaaed40cd65b896fe3af36844e204128ae84a9e39";
+      sha256 = "e75313594dfd1390e452667746073e6eab67f62da7e5bb8f9d9c3c399e0873c2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/si/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/si/firefox-95.0.2.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha256 = "5a14d6f00ab3f7aa1240ceb471f3454fe9a0b095c7d98fd6624577cc8a11bb5d";
+      sha256 = "4672751457c6bab937736fb5085fa24588e97543989d9e340859876c5537d793";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/sk/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/sk/firefox-95.0.2.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "bad43a5b54fde29e19dd1324662ccae0f213cbbf0a2a1802c7d230aec4fbbe60";
+      sha256 = "bd17ebe6aad0ab05854d20c66de4d695d9fe967d867f46c29e2c8c40da709b2a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/sl/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/sl/firefox-95.0.2.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "df05a9c60a03d50797a8fbb72f72900d68ad776f5ab27f72a0f9b50a58e46439";
+      sha256 = "c68745642e9c3581bb7f4bbcf17eab7f62c397caac5b2b7fc14668a0b2ac3daf";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/son/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/son/firefox-95.0.2.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha256 = "2a502080c97053ff44ac3f910d12a5f3950a892887f24b44fd1b516c3ba237a9";
+      sha256 = "895170b400df833df90608a44e17b99405dbc932cf15ec5e1b5e91febc2fd629";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/sq/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/sq/firefox-95.0.2.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "bd883d16edc899e4ba43c8125b321b468652f8eb8b39ef0285b65cb8e4e14782";
+      sha256 = "ee67428d035b065e4d6c129e0659a508bf6eca7e0d64802edbabdc460db479ee";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/sr/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/sr/firefox-95.0.2.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "bde21919dc650524f00c94fe085981d13c4be77917a370d874dff6fbc0acd400";
+      sha256 = "954800db592b449bdd7c37141198702cc1a3a2b8b217f71f5ca4ee7e9dcbb04d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/sv-SE/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/sv-SE/firefox-95.0.2.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "6856ffabf236e03d1ee16fd34cd9b75485d5bfcb5f94356a0c636c8d886dec31";
+      sha256 = "ca2604feb91c22f5dee9e59f3c1098ad12c34b5082fc45841d54ecea4e6c8e4c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/szl/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/szl/firefox-95.0.2.tar.bz2";
       locale = "szl";
       arch = "linux-i686";
-      sha256 = "b793d4afc5b1d67b9f90461b1a82d389970ea1550876797b9ae031f9acb1f939";
+      sha256 = "3e434f5a395d1f0230affedb75d97976f5571a3f90801f92a606f1ff39377393";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/ta/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ta/firefox-95.0.2.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha256 = "4b4a5d317c535d23e49c341da57563b10eca4fed88f269d3fd4b2d88d58efb51";
+      sha256 = "ba25db7b2fd274e2e29f3cb10bc5a5d2af8c4ab5e75fe62164a538316d7171cc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/te/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/te/firefox-95.0.2.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha256 = "ebe97cb46f66a10a429437c44ee7fc58112502ff72dd496a1deaf08deb35a492";
+      sha256 = "f0bb3fe0d28a1e7440e07060c36d8a4c62a7d8e7d7567c793997f23504018406";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/th/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/th/firefox-95.0.2.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "e14f130d454ad543c26acc04fb8ae10b163e50f886eee95422976cce3109cc0d";
+      sha256 = "705f294d3b735821cbc6cc93ce25264e4e2eb398194926ecaac2bb03fe51ef8a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/tl/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/tl/firefox-95.0.2.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha256 = "8fbec4b22f4abedc1f08e86f06b0bd58c4c9b37475dc036c48430dcf1221e2c0";
+      sha256 = "2f12aa7ac32ec89b5ca09289a8d6296fe9fbf332b53b7d183b75fb9b1dca3b11";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/tr/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/tr/firefox-95.0.2.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "99403ff004eee5e88098e37f3e5d62c56c72fb86358609f22826326751b81461";
+      sha256 = "5353938c7b90e557cb5e14e2f8556e9a14698e135b94eba0475c4303b293642a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/trs/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/trs/firefox-95.0.2.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha256 = "ff0edf90e4122347430a9df1ad2d0e6fd05b7bbcf00ba92345d31b8bbaae67c2";
+      sha256 = "428ec7d2ba7ab418f6c3eb51f1cfe81ee798360333211195bc15c3372522107e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/uk/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/uk/firefox-95.0.2.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "3ddab9ade8f193ea1c5a61a92bfd502c8264de6f4b145793158c9cce99bf1cf5";
+      sha256 = "b32b3419816ae3e5cf738baa307a30c364652e3344d002468fbf2cb021e2561e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/ur/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/ur/firefox-95.0.2.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha256 = "5b9c92ab2ff9acf88148b9d9c9261aaf353740821fc62a2e2051217fde9c09e0";
+      sha256 = "1219c56cef41202253988164a8708f09a5f7cdcc7454887326a9e04eb355388e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/uz/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/uz/firefox-95.0.2.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "f1f4b441e1d76b0b92bc3af3f8bb4545699a1860935d008de12784d4a9fe0b9b";
+      sha256 = "68cc0b19902ba281441aab7d0f90b25ee839cbd9017ca7aee6330589dd1a83a0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/vi/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/vi/firefox-95.0.2.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "a10fa164778d39194d898d9e5159ba1db917751d63e0a84d7d52e5a12747753b";
+      sha256 = "577dd4afc185e80a7132334897fabe4017f36df51a388084704c18980dcf995a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/xh/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/xh/firefox-95.0.2.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha256 = "3fdd7069f4f6d546f1eed76edd33b440b658c7519ef97368844f02aa8be6e851";
+      sha256 = "b53674150eb3726b22a2cef24d762390e63e43283e303f2b9e04f54f988b1f8f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/zh-CN/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/zh-CN/firefox-95.0.2.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "942611c8165b14eff15ebaf00415d60e45982e3eac4cdc79b765c1461a3f42fa";
+      sha256 = "b59cc02e88c94d3dd681d59f705b0c554a0998ce3670f9bde435f75a07a6b97e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/94.0.2/linux-i686/zh-TW/firefox-94.0.2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/95.0.2/linux-i686/zh-TW/firefox-95.0.2.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "60c2b8946b79d8d32248e7624c5292cf9d141beffbccb046f6c2a7308d16b23c";
+      sha256 = "8dfb5d549ca2a63b0be9b2e32df95122a1f40f2066cfc3d3144e506a37c72371";
     }
     ];
 }
diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix
index b0d11bd835b62..f52189a7becc5 100644
--- a/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/pkgs/applications/networking/browsers/firefox/common.nix
@@ -8,7 +8,7 @@
 , freetype, fontconfig, file, nspr, nss
 , yasm, libGLU, libGL, sqlite, unzip, makeWrapper
 , hunspell, libevent, libstartup_notification
-, libvpx_1_8
+, libvpx
 , icu69, libpng, glib, pciutils
 , autoconf213, which, gnused, rustPackages
 , rust-cbindgen, nodejs, nasm, fetchpatch
@@ -27,9 +27,8 @@
 , ltoSupport ? (stdenv.isLinux && stdenv.is64bit), overrideCC, buildPackages
 , gssSupport ? true, libkrb5
 , pipewireSupport ? waylandSupport && webrtcSupport, pipewire
-# Workaround: disabled since currently jemalloc causes crashes with LLVM 13.
-# https://bugzilla.mozilla.org/show_bug.cgi?id=1741454
-, jemallocSupport ? false, jemalloc
+# Jemalloc could reduce memory consumption.
+, jemallocSupport ? true, jemalloc
 
 ## privacy-related options
 
@@ -132,13 +131,8 @@ buildStdenv.mkDerivation ({
   patches = [
   ] ++
   lib.optional (lib.versionAtLeast version "86") ./env_var_for_system_dir-ff86.patch ++
-  lib.optional (lib.versionAtLeast version "90") ./no-buildconfig-ffx90.patch ++
-  # This fixes a race condition causing deadlock.
-  # https://phabricator.services.mozilla.com/D128657
-  lib.optional (lib.versionAtLeast version "94") (fetchpatch {
-    url = "https://raw.githubusercontent.com/archlinux/svntogit-packages/9c7f25d45bb1dd6b1a865780bc249cdaa619aa83/trunk/0002-Bug-1735905-Upgrade-cubeb-pulse-to-fix-a-race-condit.patch";
-    sha256 = "l4bMK/YDXcDpIjPy9DPuUSFyDpzVQca201A4h9eav5g=";
-  }) ++
+  lib.optional (lib.versionAtLeast version "90" && lib.versionOlder version "95") ./no-buildconfig-ffx90.patch ++
+  lib.optional (lib.versionAtLeast version "95") ./no-buildconfig-ffx95.patch ++
   patches;
 
   # Ignore trivial whitespace changes in patches, this fixes compatibility of
@@ -156,7 +150,7 @@ buildStdenv.mkDerivation ({
     xorg.libXext
     libevent libstartup_notification /* cairo */
     libpng glib
-    nasm icu69 libvpx_1_8
+    nasm icu69 libvpx
     # >= 66 requires nasm for the AV1 lib dav1d
     # yasm can potentially be removed in future versions
     # https://bugzilla.mozilla.org/show_bug.cgi?id=1501796
@@ -297,6 +291,7 @@ buildStdenv.mkDerivation ({
   ++ lib.optionals enableDebugSymbols [ "--disable-strip" "--disable-install-strip" ]
 
   ++ lib.optional enableOfficialBranding "--enable-official-branding"
+  ++ lib.optional (lib.versionAtLeast version "95") "--without-wasm-sandboxed-libraries"
   ++ extraConfigureFlags;
 
   postConfigure = ''
diff --git a/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx95.patch b/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx95.patch
new file mode 100644
index 0000000000000..238c32ee45b1c
--- /dev/null
+++ b/pkgs/applications/networking/browsers/firefox/no-buildconfig-ffx95.patch
@@ -0,0 +1,27 @@
+diff --git a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp
+index 038136a..1709f1f 100644
+--- a/docshell/base/nsAboutRedirector.cpp
++++ b/docshell/base/nsAboutRedirector.cpp
+@@ -66,9 +66,6 @@ static const RedirEntry kRedirMap[] = {
+     {"about", "chrome://global/content/aboutAbout.html", 0},
+     {"addons", "chrome://mozapps/content/extensions/aboutaddons.html",
+      nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::IS_SECURE_CHROME_UI},
+-    {"buildconfig", "chrome://global/content/buildconfig.html",
+-     nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
+-         nsIAboutModule::IS_SECURE_CHROME_UI},
+     {"checkerboard", "chrome://global/content/aboutCheckerboard.html",
+      nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
+          nsIAboutModule::ALLOW_SCRIPT},
+diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
+index 9ac4305..916b4ad 100644
+--- a/toolkit/content/jar.mn
++++ b/toolkit/content/jar.mn
+@@ -39,8 +39,6 @@ toolkit.jar:
+    content/global/plugins.html
+    content/global/plugins.css
+    content/global/plugins.js
+-*   content/global/buildconfig.html
+-   content/global/buildconfig.css
+    content/global/contentAreaUtils.js
+    content/global/datepicker.xhtml
+ #ifndef MOZ_FENNEC
diff --git a/pkgs/applications/networking/browsers/firefox/packages.nix b/pkgs/applications/networking/browsers/firefox/packages.nix
index 5923a967e7209..6287414a29f76 100644
--- a/pkgs/applications/networking/browsers/firefox/packages.nix
+++ b/pkgs/applications/networking/browsers/firefox/packages.nix
@@ -7,10 +7,10 @@ in
 rec {
   firefox = common rec {
     pname = "firefox";
-    version = "94.0.2";
+    version = "95.0.2";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "00ce4f6be711e1f309828e030163e61bbd9fe3364a8e852e644177c93832078877dea1a516719b106a52c0d8462193ed52c1d3cc7ae34ea021eb1dd0f5b685e2";
+      sha512 = "1b9eb91d72a6975b4d2558a7c5de0e008095398b9862498623656ab6d8056e3cffc12263f58aa07feeddc91ccfb512aa4b582dfeadb142d548d96c3d50204196";
     };
 
     meta = {
@@ -32,10 +32,10 @@ rec {
 
   firefox-esr-91 = common rec {
     pname = "firefox-esr";
-    version = "91.3.0esr";
+    version = "91.4.1esr";
     src = fetchurl {
       url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
-      sha512 = "7cf6efd165acc134bf576715580c103a2fc10ab928ede4c18f69908c62a04eb0f60affa8ceafd5883b393c31b85cae6821d0ae063c9e78117456d475947deaa9";
+      sha512 = "1b9f17c4e58e3753f8507754bba93e3b7f76df5b6845d6173719fbdd98b70af2a90242df42fe274217f56d0280e5dbae17962f5b6bf111421260790f770f5337";
     };
 
     meta = {
diff --git a/pkgs/applications/networking/browsers/google-chrome/default.nix b/pkgs/applications/networking/browsers/google-chrome/default.nix
index 03bdb84f4384d..fe6ef5c059dec 100644
--- a/pkgs/applications/networking/browsers/google-chrome/default.nix
+++ b/pkgs/applications/networking/browsers/google-chrome/default.nix
@@ -104,6 +104,8 @@ in stdenv.mkDerivation {
   binpath = makeBinPath deps;
 
   installPhase = ''
+    runHook preInstall
+
     case ${channel} in
       beta) appname=chrome-beta      dist=beta     ;;
       dev)  appname=chrome-unstable  dist=unstable ;;
@@ -154,6 +156,8 @@ in stdenv.mkDerivation {
       patchelf --set-rpath $rpath $elf
       patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $elf
     done
+
+    runHook postInstall
   '';
 
   meta = {
diff --git a/pkgs/applications/networking/browsers/lagrange/default.nix b/pkgs/applications/networking/browsers/lagrange/default.nix
index 6217862eb1567..4daab414268a8 100644
--- a/pkgs/applications/networking/browsers/lagrange/default.nix
+++ b/pkgs/applications/networking/browsers/lagrange/default.nix
@@ -13,18 +13,19 @@
 , pcre
 , SDL2
 , AppKit
+, zip
 , zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "lagrange";
-  version = "1.7.3";
+  version = "1.9.3";
 
   src = fetchFromGitHub {
     owner = "skyjake";
     repo = "lagrange";
     rev = "v${version}";
-    sha256 = "sha256-peBdmz/aucrKO5Vsj8WkHkpGpLm4inQHee133Zph3MM=";
+    sha256 = "sha256-0+NY21oIbRMCYnneWxw48yQ3UOXW0Ves2A4JTXyLnCE=";
     fetchSubmodules = true;
   };
 
@@ -32,18 +33,13 @@ stdenv.mkDerivation rec {
     rm -r lib/fribidi lib/harfbuzz
   '';
 
-  nativeBuildInputs = [ cmake pkg-config ];
+  nativeBuildInputs = [ cmake pkg-config zip ];
 
   buildInputs = [ fribidi harfbuzz libunistring libwebp mpg123 openssl pcre SDL2 zlib ]
     ++ lib.optional stdenv.isDarwin AppKit;
 
   hardeningDisable = lib.optional (!stdenv.cc.isClang) "format";
 
-  cmakeFlags = [
-    "-DENABLE_HARFBUZZ_MINIMAL:BOOL=OFF"
-    "-DENABLE_FRIBIDI_BUILD:BOOL=OFF"
-  ];
-
   installPhase = lib.optionalString stdenv.isDarwin ''
     mkdir -p $out/Applications
     mv Lagrange.app $out/Applications
diff --git a/pkgs/applications/networking/browsers/links2/default.nix b/pkgs/applications/networking/browsers/links2/default.nix
index 81555fa634112..3a5b31e98e995 100644
--- a/pkgs/applications/networking/browsers/links2/default.nix
+++ b/pkgs/applications/networking/browsers/links2/default.nix
@@ -8,12 +8,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.23";
+  version = "2.25";
   pname = "links2";
 
   src = fetchurl {
     url = "${meta.homepage}/download/links-${version}.tar.bz2";
-    sha256 = "sha256-ZmDSAvUh/Ri/UYTD8XMtH6dCahAzdCd60c245XzmrEU=";
+    sha256 = "sha256-LdeFCGmOgnnvTwmjoqIelZUEARNALabFU5dEFPtJ3Sw=";
   };
 
   buildInputs = with lib;
diff --git a/pkgs/applications/networking/browsers/opera/default.nix b/pkgs/applications/networking/browsers/opera/default.nix
index 0bad6c58d0a17..642781d570a77 100644
--- a/pkgs/applications/networking/browsers/opera/default.nix
+++ b/pkgs/applications/networking/browsers/opera/default.nix
@@ -13,6 +13,7 @@
 , glib
 , gnome2
 , gtk3
+, gtk4
 , lib
 , libX11
 , libxcb
@@ -50,11 +51,11 @@ let
 in stdenv.mkDerivation rec {
 
   pname = "opera";
-  version = "76.0.4017.94";
+  version = "82.0.4227.43";
 
   src = fetchurl {
     url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb";
-    sha256 = "sha256-vjSfzkl1jIQ9P1ARDa0eOuD8CmKHIEZ+IwMB2wIVjE8=";
+    sha256 = "sha256-DFhf62dqk7qA2k+JgVqGLxF30UPwQwhXD105Qua25X0=";
   };
 
   unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
@@ -111,12 +112,16 @@ in stdenv.mkDerivation rec {
     # brings up the crash report, which also crashes. `strace -f` hints at a
     # missing libudev.so.0.
     (lib.getLib systemd)
+
+    # Error at startup:
+    # "Illegal instruction (core dumped)"
+    gtk3
+    gtk4
   ];
 
   installPhase = ''
     mkdir -p $out
     cp -r . $out/
-    mv $out/lib/*/opera/*.so $out/lib/
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/browsers/palemoon/default.nix b/pkgs/applications/networking/browsers/palemoon/default.nix
index 5231b0a0f933e..a536bf15cfecd 100644
--- a/pkgs/applications/networking/browsers/palemoon/default.nix
+++ b/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -1,37 +1,36 @@
-{ stdenv
-, lib
-, fetchzip
-, writeScript
+{ lib
+, stdenv
 , alsa-lib
 , autoconf213
 , cairo
-, desktop-file-utils
 , dbus
 , dbus-glib
+, desktop-file-utils
+, fetchzip
 , ffmpeg
 , fontconfig
 , freetype
 , gnome2
 , gnum4
-, gtk2
-, libevent
 , libGL
 , libGLU
+, libevent
 , libnotify
 , libpulseaudio
 , libstartup_notification
+, pango
 , perl
 , pkg-config
 , python2
 , unzip
 , which
 , wrapGAppsHook
+, writeScript
 , xorg
 , yasm
 , zip
 , zlib
-, withGTK3 ? true
-, gtk3
+, withGTK3 ? true, gtk3, gtk2
 }:
 
 # Only specific GCC versions are supported with branding
@@ -43,38 +42,16 @@ assert with lib.strings; (
   && versionOlder stdenv.cc.version "11"
 );
 
-let
-  libPath = lib.makeLibraryPath [
-    ffmpeg
-    libpulseaudio
-  ];
-  gtkVersion = if withGTK3 then "3" else "2";
-in
 stdenv.mkDerivation rec {
   pname = "palemoon";
-  version = "29.4.1";
+  version = "29.4.3";
 
   src = fetchzip {
-    url = "http://archive.palemoon.org/source/palemoon-${version}-source.tar.xz";
-    stripRoot = false;
-    sha256 = "0kb9yn1q8rrmnlsyvxvv2gdgyyf12g6rxlyh82lmc0gysvd4qd2c";
+    name = "${pname}-${version}";
+    url = "http://archive.palemoon.org/source/${pname}-${version}.source.tar.xz";
+    sha256 = "sha256-9Qut7zgzDrU6T/sWbSF2Me7E02VJVL/B2bzJw14KWFs=";
   };
 
-  passthru.updateScript = writeScript "update-${pname}" ''
-    #!/usr/bin/env nix-shell
-    #!nix-shell -i bash -p common-updater-scripts curl libxml2
-
-    set -eu -o pipefail
-
-    # Only release note announcement == finalized release
-    version="$(
-      curl -s 'http://www.palemoon.org/releasenotes.shtml' |
-      xmllint --html --xpath 'html/body/table/tbody/tr/td/h3/text()' - 2>/dev/null | head -n1 |
-      sed 's/v\(\S*\).*/\1/'
-    )"
-    update-source-version ${pname} "$version"
-  '';
-
   nativeBuildInputs = [
     autoconf213
     desktop-file-utils
@@ -99,12 +76,13 @@ stdenv.mkDerivation rec {
     freetype
     gnome2.GConf
     gtk2
-    libevent
     libGL
     libGLU
+    libevent
     libnotify
     libpulseaudio
     libstartup_notification
+    pango
     zlib
   ]
   ++ (with xorg; [
@@ -118,60 +96,30 @@ stdenv.mkDerivation rec {
     pixman
     xorgproto
   ])
-  ++ lib.optional withGTK3 gtk3;
+  ++ lib.optionals withGTK3 [
+    gtk3
+  ];
 
   enableParallelBuilding = true;
 
+  postPatch = ''
+    patchShebangs ./mach
+  '';
+
   configurePhase = ''
     runHook preConfigure
 
     export MOZCONFIG=$PWD/mozconfig
     export MOZ_NOSPAM=1
 
-    # Keep this similar to the official .mozconfig file,
-    # only minor changes for portability are permitted with branding.
-    # https://developer.palemoon.org/build/linux/
-    echo > $MOZCONFIG '
-    # Clear this if not a 64bit build
-    _BUILD_64=${lib.optionalString stdenv.hostPlatform.is64bit "1"}
-
-    # Set GTK Version to 2 or 3
-    _GTK_VERSION=${gtkVersion}
-
-    # Standard build options for Pale Moon
-    ac_add_options --enable-application=palemoon
-    ac_add_options --enable-optimize="-O2 -w"
-    ac_add_options --enable-default-toolkit=cairo-gtk$_GTK_VERSION
-    ac_add_options --enable-jemalloc
-    ac_add_options --enable-strip
-    ac_add_options --enable-devtools
-    ac_add_options --enable-av1
-
-    ac_add_options --disable-eme
-    ac_add_options --disable-webrtc
-    ac_add_options --disable-gamepad
-    ac_add_options --disable-tests
-    ac_add_options --disable-debug
-    ac_add_options --disable-necko-wifi
-    ac_add_options --disable-updater
-
-    ac_add_options --with-pthreads
+    export build64=${lib.optionalString stdenv.hostPlatform.is64bit "1"}
+    export gtkversion=${if withGTK3 then "3" else "2"}
+    export xlibs=${lib.makeLibraryPath [ xorg.libX11 ]}
+    export prefix=$out
+    export mozmakeflags="-j${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"}"
+    export autoconf=${autoconf213}/bin/autoconf
 
-    # Please see https://www.palemoon.org/redist.shtml for restrictions when using the official branding.
-    ac_add_options --enable-official-branding
-    export MOZILLA_OFFICIAL=1
-
-    ac_add_options --x-libraries=${lib.makeLibraryPath [ xorg.libX11 ]}
-
-    #
-    # NixOS-specific adjustments
-    #
-
-    ac_add_options --prefix=$out
-
-    mk_add_options MOZ_MAKE_FLAGS="-j${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"}"
-    mk_add_options AUTOCONF=${autoconf213}/bin/autoconf
-    '
+    substituteAll ${./mozconfig} $MOZCONFIG
 
     runHook postConfigure
   '';
@@ -212,14 +160,22 @@ stdenv.mkDerivation rec {
 
   dontWrapGApps = true;
 
-  preFixup = ''
-    gappsWrapperArgs+=(
-      --prefix LD_LIBRARY_PATH : "${libPath}"
-    )
+  preFixup =
+    let
+      libPath = lib.makeLibraryPath [
+        ffmpeg
+        libpulseaudio
+      ];
+    in
+      ''
+        gappsWrapperArgs+=(
+          --prefix LD_LIBRARY_PATH : "${libPath}"
+        )
     wrapGApp $out/lib/palemoon-${version}/palemoon
   '';
 
   meta = with lib; {
+    homepage = "https://www.palemoon.org/";
     description = "An Open Source, Goanna-based web browser focusing on efficiency and customization";
     longDescription = ''
       Pale Moon is an Open Source, Goanna-based web browser focusing on
@@ -232,10 +188,24 @@ stdenv.mkDerivation rec {
       experience, while offering full customization and a growing collection of
       extensions and themes to make the browser truly your own.
     '';
-    homepage = "https://www.palemoon.org/";
     changelog = "https://repo.palemoon.org/MoonchildProductions/Pale-Moon/releases/tag/${version}_Release";
     license = licenses.mpl20;
     maintainers = with maintainers; [ AndersonTorres OPNA2608 ];
     platforms = [ "i686-linux" "x86_64-linux" ];
   };
+
+  passthru.updateScript = writeScript "update-${pname}" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p common-updater-scripts curl libxml2
+
+    set -eu -o pipefail
+
+    # Only release note announcement == finalized release
+    version="$(
+      curl -s 'http://www.palemoon.org/releasenotes.shtml' |
+      xmllint --html --xpath 'html/body/table/tbody/tr/td/h3/text()' - 2>/dev/null | head -n1 |
+      sed 's/v\(\S*\).*/\1/'
+    )"
+    update-source-version ${pname} "$version"
+  '';
 }
diff --git a/pkgs/applications/networking/browsers/palemoon/mozconfig b/pkgs/applications/networking/browsers/palemoon/mozconfig
new file mode 100644
index 0000000000000..0eab96e584691
--- /dev/null
+++ b/pkgs/applications/networking/browsers/palemoon/mozconfig
@@ -0,0 +1,46 @@
+# -*- mode: sh; coding: utf-8-unix; fill-column: 80 -*-
+
+# Mozconfig template file for nixpkgs
+
+# Keep this similar to the official .mozconfig file, only minor changes for
+# portability are permitted with branding.
+# https://developer.palemoon.org/build/linux/
+
+_BUILD_64=@build64@
+
+# Set GTK Version
+_GTK_VERSION=@gtkversion@
+
+# Standard build options for Pale Moon
+ac_add_options --enable-application=palemoon
+ac_add_options --enable-optimize="-O2 -w"
+ac_add_options --enable-default-toolkit=cairo-gtk$_GTK_VERSION
+ac_add_options --enable-jemalloc
+ac_add_options --enable-strip
+ac_add_options --enable-devtools
+ac_add_options --enable-av1
+
+ac_add_options --disable-eme
+ac_add_options --disable-webrtc
+ac_add_options --disable-gamepad
+ac_add_options --disable-tests
+ac_add_options --disable-debug
+ac_add_options --disable-necko-wifi
+ac_add_options --disable-updater
+
+ac_add_options --with-pthreads
+
+# Please see https://www.palemoon.org/redist.shtml for restrictions when using the official branding.
+ac_add_options --enable-official-branding
+export MOZILLA_OFFICIAL=1
+
+ac_add_options --x-libraries=@xlibs@
+
+#
+# NixOS-specific adjustments
+#
+
+ac_add_options --prefix=@prefix@
+
+mk_add_options MOZ_MAKE_FLAGS=@mozmakeflags@
+mk_add_options AUTOCONF=@autoconf@
diff --git a/pkgs/applications/networking/browsers/telescope/default.nix b/pkgs/applications/networking/browsers/telescope/default.nix
index dafcc0e63a886..ae4a649724b3a 100644
--- a/pkgs/applications/networking/browsers/telescope/default.nix
+++ b/pkgs/applications/networking/browsers/telescope/default.nix
@@ -7,17 +7,18 @@
 , libressl
 , ncurses
 , autoreconfHook
+, buildPackages
 }:
 
 stdenv.mkDerivation rec {
   pname = "telescope";
-  version = "0.5.2";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "omar-polo";
     repo = pname;
     rev = version;
-    sha256 = "sha256-AdbFJfoicQUgJ9kesIWZ9ygttyjjDeC0UHRI98GwoZ8=";
+    sha256 = "sha256-r2+jvmnW9EeQf/2X2cOxnOa+HGuGHV6YMftT2MxbSYQ=";
   };
 
   nativeBuildInputs = [
@@ -32,6 +33,10 @@ stdenv.mkDerivation rec {
     ncurses
   ];
 
+  configureFlags = [
+    "HOSTCC=${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc"
+  ];
+
   meta = with lib; {
     description = "Telescope is a w3m-like browser for Gemini";
     homepage = "https://telescope.omarpolo.com/";
diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index c36d37ccfdf7a..e1c93fe977266 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -87,7 +87,7 @@ let
   fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
 
   # Upstream source
-  version = "11.0";
+  version = "11.0.3";
 
   lang = "en-US";
 
@@ -97,7 +97,7 @@ let
         "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
         "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
       ];
-      sha256 = "0938a9yjfg9qa9rv5acrmbgqq11mc8j0pvl1n64jrdz29crk6sj2";
+      sha256 = "1a2nxxmjg1gk8p0bxxjqx2g9bwv4ivz8hndabg31nglzv83r7p35";
     };
 
     i686-linux = fetchurl {
@@ -105,7 +105,7 @@ let
         "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
         "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
       ];
-      sha256 = "07v1ca66a69jl238qdq81mw654yffrcyq685y4rvv8xvx11fnzzp";
+      sha256 = "0fjq6bj2b6rd66ky9i4p7asda0ghdcm6q0fnr92yan5x77pji73m";
     };
   };
 in
@@ -297,10 +297,17 @@ stdenv.mkDerivation rec {
     cp -u --no-preserve=mode,owner "$TBB_IN_STORE/TorBrowser/Data/Browser/profile.default/bookmarks.html" \
       "\$HOME/TorBrowser/Data/Browser/profile.default/bookmarks.html"
 
-    # Clear out some files that tend to capture store references but are
-    # easily generated by firefox at startup.
-    rm -f "\$HOME/TorBrowser/Data/Browser/profile.default"/{addonStartup.json.lz4,compatibility.ini,extensions.ini,extensions.json}
-    rm -f "\$HOME/TorBrowser/Data/Browser/profile.default"/startupCache/*
+    # Clear some files if the last known store path is different from the new one
+    : "\''${KNOWN_STORE_PATH:=\$HOME/known-store-path}"
+    if ! [ "\$KNOWN_STORE_PATH" -ef $out ]; then
+      echo "Cleanup files with outdated store references"
+      ln -Tsf $out "\$KNOWN_STORE_PATH"
+
+      # Clear out some files that tend to capture store references but are
+      # easily generated by firefox at startup.
+      rm -f "\$HOME/TorBrowser/Data/Browser/profile.default"/{addonStartup.json.lz4,compatibility.ini,extensions.ini,extensions.json}
+      rm -f "\$HOME/TorBrowser/Data/Browser/profile.default"/startupCache/*
+    fi
 
     # XDG
     : "\''${XDG_RUNTIME_DIR:=/run/user/\$(id -u)}"
diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix
index 4e44e58418052..dab4423eb8763 100644
--- a/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, zlib, libX11, libXext, libSM, libICE, libxkbcommon, libxshmfence
 , libXfixes, libXt, libXi, libXcursor, libXScrnSaver, libXcomposite, libXdamage, libXtst, libXrandr
-, alsa-lib, dbus, cups, libexif, ffmpeg, systemd
+, alsa-lib, dbus, cups, libexif, ffmpeg, systemd, libva
 , freetype, fontconfig, libXft, libXrender, libxcb, expat
 , libuuid
 , libxml2
@@ -18,11 +18,11 @@ let
   vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
 in stdenv.mkDerivation rec {
   pname = "vivaldi";
-  version = "4.3.2439.44-1";
+  version = "5.0.2497.32-1";
 
   src = fetchurl {
     url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
-    sha256 = "1bsx8axs438f4p019mdq66pmpimf575r31rv6cibpgv85366xhh9";
+    sha256 = "1l333q002z9rr08np0r0j89j26shmsl8y2clyqwh54h22h7hmypz";
   };
 
   unpackPhase = ''
@@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
   buildInputs = [
     stdenv.cc.cc stdenv.cc.libc zlib libX11 libXt libXext libSM libICE libxcb libxkbcommon libxshmfence
     libXi libXft libXcursor libXfixes libXScrnSaver libXcomposite libXdamage libXtst libXrandr
-    atk at-spi2-atk at-spi2-core alsa-lib dbus cups gtk3 gdk-pixbuf libexif ffmpeg systemd
+    atk at-spi2-atk at-spi2-core alsa-lib dbus cups gtk3 gdk-pixbuf libexif ffmpeg systemd libva
     freetype fontconfig libXrender libuuid expat glib nss nspr
     libxml2 pango cairo gnome2.GConf
     libdrm mesa
diff --git a/pkgs/applications/networking/cloudflared/default.nix b/pkgs/applications/networking/cloudflared/default.nix
index 338d0b3b9f34c..a3b14264e0a6e 100644
--- a/pkgs/applications/networking/cloudflared/default.nix
+++ b/pkgs/applications/networking/cloudflared/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cloudflared";
-  version = "2021.10.5";
+  version = "2021.12.3";
 
   src = fetchFromGitHub {
     owner  = "cloudflare";
     repo   = "cloudflared";
     rev    = version;
-    sha256 = "sha256-vz7S6Qzr10Idy83ogMIHEHrjxGxxjtFnzNsuhbZqUnA=";
+    sha256 = "sha256-+T8BtYc/TBP2qL/Wfi2CDwD6VAqY/0F7QIUEhjOnLUk=";
   };
 
   vendorSha256 = null;
@@ -22,6 +22,6 @@ buildGoModule rec {
     homepage    = "https://www.cloudflare.com/products/argo-tunnel";
     license     = licenses.unfree;
     platforms   = platforms.unix;
-    maintainers = [ maintainers.thoughtpolice maintainers.enorris ];
+    maintainers = with maintainers; [ bbigras enorris thoughtpolice ];
   };
 }
diff --git a/pkgs/applications/networking/cluster/argo/default.nix b/pkgs/applications/networking/cluster/argo/default.nix
index 6372f19ee6c72..b57181ce4a25c 100644
--- a/pkgs/applications/networking/cluster/argo/default.nix
+++ b/pkgs/applications/networking/cluster/argo/default.nix
@@ -19,16 +19,16 @@ let
 in
 buildGoModule rec {
   pname = "argo";
-  version = "3.1.1";
+  version = "3.2.4";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo";
     rev = "v${version}";
-    sha256 = "sha256-WErNPofVnV6L7DkYU/dh4mWm+u7UJNFUmRN6IZzMb2g=";
+    sha256 = "sha256-uymE+Eq4jsqWIhDsbALzV+xAKF22DddPFzKtn3tV2EA=";
   };
 
-  vendorSha256 = "sha256-99N//woGPx9QEtkFsktaiAbu7TS+3DHArBA52OUJFU4=";
+  vendorSha256 = "sha256-2b+PvD5IKgobBzFrubjRl2NvFxw91dXYpnWO8dqDG+U=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index 38b6467857b81..c937c84147178 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "argocd";
-  version = "2.1.6";
-  commit = "a346cf933e10d872eae26bff8e58c5e7ac40db25";
+  version = "2.2.1";
+  commit = "122ecefc3abfe8b691a08d9f3cecf9a170cc8c37";
   tag = "v${version}";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
     rev = tag;
-    sha256 = "sha256-8DeVO7Wr1bFZXTp2kaEPizDwNU5ZsA1fykccaDUivh8=";
+    sha256 = "sha256-BI4aoe9XVmuyb4oDPd2Clz5IWVzu4rAMHDi6Cb6spyE=";
   };
 
-  vendorSha256 = "sha256-N45yRlBGZ/c9ve2YPcWA26pylV8hzxjPh6evKtkgnoc=";
+  vendorSha256 = "sha256-GeU8uQM+oMottzYsE6oQyKZL3aWB5vQgTDLQiuQdapw=";
 
   nativeBuildInputs = [ packr makeWrapper installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/arkade/default.nix b/pkgs/applications/networking/cluster/arkade/default.nix
new file mode 100644
index 0000000000000..f74f87ad11c11
--- /dev/null
+++ b/pkgs/applications/networking/cluster/arkade/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, stdenv
+, buildGoModule
+, fetchFromGitHub
+, makeWrapper
+, kubectl
+}:
+
+buildGoModule rec {
+  pname = "arkade";
+  version = "0.8.11";
+
+  src = fetchFromGitHub {
+    owner = "alexellis";
+    repo = "arkade";
+    rev = version;
+    sha256 = "0mdi5cjcs0qzj238lfjqbjgi131r2vxj810zx1gv1lc9y0aq0hkl";
+  };
+
+  CGO_ENABLED = 0;
+
+  vendorSha256 = "05zdd5c2x4k4myxmgj32md8wq08i543l8q81rabqgyd3r9nwv4lx";
+
+  # Exclude pkg/get: tests downloading of binaries which fail when sandbox=true
+  subPackages = [
+    "."
+    "cmd"
+    "pkg/apps"
+    "pkg/archive"
+    "pkg/config"
+    "pkg/env"
+    "pkg/helm"
+    "pkg/k8s"
+    "pkg/types"
+  ];
+
+  ldflags = [
+    "-s" "-w"
+    "-X github.com/alexellis/arkade/cmd.GitCommit=ref/tags/${version}"
+    "-X github.com/alexellis/arkade/cmd.Version=${version}"
+  ];
+
+  buildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram "$out/bin/arkade" \
+      --prefix PATH : ${lib.makeBinPath [ kubectl ]}
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/alexellis/arkade";
+    description = "Open Source Kubernetes Marketplace";
+    license = licenses.mit;
+    maintainers = with maintainers; [ welteki ];
+    platforms = [
+      "x86_64-linux"
+      "x86_64-darwin"
+      "aarch64-linux"
+      "aarch64-darwin"
+      "armv7l-linux"
+      "armv6l-linux"
+    ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/assign-lb-ip/default.nix b/pkgs/applications/networking/cluster/assign-lb-ip/default.nix
index f0c06fa181acf..b699f4410c63e 100644
--- a/pkgs/applications/networking/cluster/assign-lb-ip/default.nix
+++ b/pkgs/applications/networking/cluster/assign-lb-ip/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "assign-lb-ip";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "Nordix";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-PkMXjFP2brULCnD6mGz9wCufMpiwsmulDpINiwmkeys=";
+    sha256 = "sha256-VaxzU8HC+LQTyhL9pxvjiPa6T5v77RT2B7A0IuU/CUg=";
   };
 
   vendorSha256 = "sha256-j9SweQq45sYk0lH6zkFrmWRlVhhMO8rLJGQxS6smAVw=";
diff --git a/pkgs/applications/networking/cluster/cilium/default.nix b/pkgs/applications/networking/cluster/cilium/default.nix
index 2351b41369ebd..da9f0938d1446 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.9.2";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
     owner = "cilium";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-vIm5PkRyh41jtvDrLDxFVzSkhFipYYYEEY0/qxbOXGE=";
+    sha256 = "sha256-t4Im3/2qcKnDDcKWmUUa/lsZszDDlos+uTERKxd7x1c=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/clusterctl/default.nix b/pkgs/applications/networking/cluster/clusterctl/default.nix
index 752c9b3c61727..fdd0e4967a762 100644
--- a/pkgs/applications/networking/cluster/clusterctl/default.nix
+++ b/pkgs/applications/networking/cluster/clusterctl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "clusterctl";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = "cluster-api";
     rev = "v${version}";
-    sha256 = "sha256-EkBZZUkr1u0u75WDDFAdLLpS01+3+eyXpu4HRg2Q780=";
+    sha256 = "sha256-esSpCNvgYhuz9i22AU4ZowU5A5ZOPZ15+XHB4OOfTa4=";
   };
 
   vendorSha256 = "sha256-VO1Z4NUWrd4JuFYFg0a01psqoIM8ps3vKd0djR5OELU=";
diff --git a/pkgs/applications/networking/cluster/driftctl/default.nix b/pkgs/applications/networking/cluster/driftctl/default.nix
new file mode 100644
index 0000000000000..212f153292138
--- /dev/null
+++ b/pkgs/applications/networking/cluster/driftctl/default.nix
@@ -0,0 +1,56 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "driftctl";
+  version = "0.17";
+
+  src = fetchFromGitHub {
+    owner = "cloudskiff";
+    repo = "driftctl";
+    rev = "v${version}";
+    sha256 = "sha256-JloeRoW+1tepSJzhcOQu38TDQfY10NtG2EyeVhP26BQ=";
+  };
+
+  vendorSha256 = "sha256-aaJ5fpS+BiVq1K8OxN+/CBD96wy3flGDhch8O2ACIh8=";
+
+  postUnpack = ''
+    # Without this, tests fail to locate aws/3.19.0.json
+    for prefix in /                        \
+                  /pkg                     \
+                  /pkg/analyser            \
+                  /pkg/alerter             \
+                  /pkg/remote              \
+                  /pkg/middlewares         \
+                  /pkg/cmd/scan/output     \
+                  /pkg/iac/terraform/state \
+                  /pkg/iac/supplier ; do
+      mkdir -p ./source/$prefix/github.com/cloudskiff
+      ln -sf $PWD/source ./source/$prefix/github.com/cloudskiff/driftctl
+    done
+
+    # Disable check for latest version and telemetry, which are opt-out.
+    # Making it out-in is quite a job, and why bother?
+    find -name '*.go' \
+      | xargs sed -i 's,https://2lvzgmrf2e.execute-api.eu-west-3.amazonaws.com/,https://0.0.0.0/,g'
+
+    # and remove corresponding flags from --help, so things look tidy.
+    find -name driftctl.go | \
+      xargs sed -i -e '/("no-version-check"/ d'  -e '/("disable-telemetry"/ d'
+
+    # Presumably it can be done with ldflags, but I failed to find incantation
+    # that would work, we here we go old-school.
+    find -name version.go | xargs sed -i -e 's/"dev"/"${version}"/'
+    find -name build.go | xargs sed -i -e 's/"dev"/"release"/'
+
+    # Fix the tests that checks for dev-dev.
+    find -name version_test.go | xargs sed -i -e 's/"dev-dev/"${version}/'
+    find -name driftctl_test.go | xargs sed -i -e 's/"dev-dev/"${version}/'
+  '';
+
+  meta = with lib; {
+    description = "Tool to track infrastructure drift";
+    homepage = "https://github.com/cloudskiff/driftctl";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ kaction ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/fluxcd/default.nix b/pkgs/applications/networking/cluster/fluxcd/default.nix
index 3ff2621e29f3b..54eaf06e12fbb 100644
--- a/pkgs/applications/networking/cluster/fluxcd/default.nix
+++ b/pkgs/applications/networking/cluster/fluxcd/default.nix
@@ -1,18 +1,18 @@
 { lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }:
 
 let
-  version = "0.23.0";
-  sha256 = "15j4r43hy3slyahx4am7lj7jns4x3axrcbr9qwiznmk8qbvrzrdy";
-  manifestsSha256 = "10rh0q1la5dq6n9y1yvw9ilj5lhzx8vh1zi2lznfjsvc5niwx7wf";
+  version = "0.24.1";
+  sha256 = "18jzf5kd06c10f45y4crvaqa5r10dhq2ashlhppzrmhigiyavxac";
+  manifestsSha256 = "0qbdik65irnwgw7klj5w0z00jxflm855gikpnqb9gsxd7rbw8ysk";
 
   manifests = fetchzip {
-    url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz";
+    url =
+      "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz";
     sha256 = manifestsSha256;
     stripRoot = false;
   };
-in
 
-buildGoModule rec {
+in buildGoModule rec {
   pname = "fluxcd";
   inherit version;
 
@@ -23,15 +23,13 @@ buildGoModule rec {
     inherit sha256;
   };
 
-  vendorSha256 = "sha256-vFm9ai+VWOPLRckKJ7gfD/0iQ8b4o5HNQE4cekb0vA0=";
+  vendorSha256 = "sha256-HoAVdY+kZLpUEl3mE7obbTzAJUyt5MBPjGhs6ZDSnzU=";
 
   postUnpack = ''
     cp -r ${manifests} source/cmd/flux/manifests
   '';
 
-  patches = [
-    ./patches/disable-tests-ssh_key.patch
-  ];
+  patches = [ ./patches/disable-tests-ssh_key.patch ];
 
   ldflags = [ "-s" "-w" "-X main.VERSION=${version}" ];
 
@@ -39,7 +37,7 @@ buildGoModule rec {
 
   # Required to workaround test error:
   #   panic: mkdir /homeless-shelter: permission denied
-  HOME="$TMPDIR";
+  HOME = "$TMPDIR";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -58,7 +56,8 @@ buildGoModule rec {
   passthru.updateScript = ./update.sh;
 
   meta = with lib; {
-    description = "Open and extensible continuous delivery solution for Kubernetes";
+    description =
+      "Open and extensible continuous delivery solution for Kubernetes";
     longDescription = ''
       Flux is a tool for keeping Kubernetes clusters in sync
       with sources of configuration (like Git repositories), and automating
diff --git a/pkgs/applications/networking/cluster/fluxcd/patches/disable-tests-ssh_key.patch b/pkgs/applications/networking/cluster/fluxcd/patches/disable-tests-ssh_key.patch
index 5e28589c69cf8..3229cf333b406 100644
--- a/pkgs/applications/networking/cluster/fluxcd/patches/disable-tests-ssh_key.patch
+++ b/pkgs/applications/networking/cluster/fluxcd/patches/disable-tests-ssh_key.patch
@@ -1,19 +1,17 @@
-diff --git a/cmd/flux/create_secret_git_test.go b/cmd/flux/create_secret_git_test.go
-index afa34ba..0d22cce 100644
---- a/cmd/flux/create_secret_git_test.go
-+++ b/cmd/flux/create_secret_git_test.go
-@@ -20,16 +20,6 @@ func TestCreateGitSecret(t *testing.T) {
+--- flux/cmd/flux/create_secret_git_test.go.orig	2021-12-07 13:46:21.196278468 +0100
++++ flux/cmd/flux/create_secret_git_test.go	2021-12-07 13:49:51.668566955 +0100
+@@ -20,16 +20,6 @@
  			args:   "create secret git podinfo-auth --url=https://github.com/stefanprodan/podinfo --username=my-username --password=my-password --namespace=my-namespace --export",
  			assert: assertGoldenFile("./testdata/create_secret/git/secret-git-basic.yaml"),
  		},
 -		{
 -			name:   "ssh key",
--			args:   "create secret git podinfo-auth --url=ssh://git@github.com/stefanprodan/podinfo --private-key-file=./testdata/create_secret/git/rsa.private --namespace=my-namespace --export",
+-			args:   "create secret git podinfo-auth --url=ssh://git@github.com/stefanprodan/podinfo --private-key-file=./testdata/create_secret/git/ecdsa.private --namespace=my-namespace --export",
 -			assert: assertGoldenFile("testdata/create_secret/git/git-ssh-secret.yaml"),
 -		},
 -		{
 -			name:   "ssh key with password",
--			args:   "create secret git podinfo-auth --url=ssh://git@github.com/stefanprodan/podinfo --private-key-file=./testdata/create_secret/git/rsa-password.private --password=password --namespace=my-namespace --export",
+-			args:   "create secret git podinfo-auth --url=ssh://git@github.com/stefanprodan/podinfo --private-key-file=./testdata/create_secret/git/ecdsa-password.private --password=password --namespace=my-namespace --export",
 -			assert: assertGoldenFile("testdata/create_secret/git/git-ssh-secret-password.yaml"),
 -		},
  	}
diff --git a/pkgs/applications/networking/cluster/fluxctl/default.nix b/pkgs/applications/networking/cluster/fluxctl/default.nix
index fd6a314ecacc2..af0db3f2c176c 100644
--- a/pkgs/applications/networking/cluster/fluxctl/default.nix
+++ b/pkgs/applications/networking/cluster/fluxctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fluxctl";
-  version = "1.24.1";
+  version = "1.24.3";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = "flux";
     rev = version;
-    sha256 = "sha256-lgcEkOu4iaLg+tP826Qpgmn0ogOpr62o1iWlv1yLbBQ=";
+    sha256 = "sha256-i86WwSR14hxaXWMesvG2mG8nqXd97M3TekK2FLTLL+Y=";
   };
 
-  vendorSha256 = "sha256-NQonBTHToGPo7QsChvuVM/jbV5FK71HMJfe5fe1gZYw=";
+  vendorSha256 = "sha256-Fw3/SMO66eExlDNcIaHM+G2kB4zb1Cih7kp8xfel/iY=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/fn-cli/default.nix b/pkgs/applications/networking/cluster/fn-cli/default.nix
index 95e16797cf4fd..cb15d47e02d13 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.8";
+  version = "0.6.11";
 
   src = fetchFromGitHub {
     owner = "fnproject";
     repo = "cli";
     rev = version;
-    sha256 = "sha256-8b1VyukVMTXLAnvYcjXgTdPtMq3YxJgTpxe25Kj+Wpw=";
+    sha256 = "sha256-mBPRsLBIwahKm2RR22pNXxJhdLaWHCKx0TKc4H4YIVY=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/helm/default.nix b/pkgs/applications/networking/cluster/helm/default.nix
index f13c812d604df..59d4a4ff7cee8 100644
--- a/pkgs/applications/networking/cluster/helm/default.nix
+++ b/pkgs/applications/networking/cluster/helm/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "helm";
-  version = "3.7.1";
-  gitCommit = "1d11fcb5d3f3bf00dbe6fe31b8412839a96b3dc4";
+  version = "3.7.2";
+  gitCommit = "663a896f4a815053445eec4153677ddc24a0a361";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = "helm";
     rev = "v${version}";
-    sha256 = "sha256-NjBG3yLtvnAXziLH/ALRJVaFW327qo7cvnf1Jpq3QlI=";
+    sha256 = "sha256-MhBuwpgF1PBAZ5QwF7t4J1gqam2cMX+hkdZs7KoSD6I=";
   };
-  vendorSha256 = "sha256-gmyF/xuf5dTxorgqvW4PNA1l2SQ2oJuZCAFw7d8ufGc=";
+  vendorSha256 = "sha256-YDdpeVh9rG3MF1HgG7uuRvjXDr9Fcjuhrj16kpK8tsI=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/helmfile/default.nix b/pkgs/applications/networking/cluster/helmfile/default.nix
index d24dff6fb8a9a..59c3437383a11 100644
--- a/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "helmfile";
-  version = "0.141.0";
+  version = "0.142.0";
 
   src = fetchFromGitHub {
     owner = "roboll";
     repo = "helmfile";
     rev = "v${version}";
-    sha256 = "sha256-UwjV3xgnZa0Emzw4FP/+gHh1ES6MTihrrlGKUBH6O9Q=";
+    sha256 = "sha256-kz5U9MPpN+14Eb1D1hjwDfvTOygzg0unyIgrFTFhE0Q=";
   };
 
   vendorSha256 = "sha256-HKHMeDnIDmQ7AjuS2lYCMphTHGD1JgQuBYDJe2+PEk4=";
diff --git a/pkgs/applications/networking/cluster/hubble/default.nix b/pkgs/applications/networking/cluster/hubble/default.nix
index ebb0abfcbd283..172f866c48ab6 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.8.2";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "cilium";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1n1930hlaflx7kzqbz7vvnxw9hrps84kqibaf2ixnjp998kqkl6d";
+    sha256 = "sha256-L8sRvIA89RiXjrG0WcH72iYKlNTFvmQrveA9k5EBRKo=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/istioctl/default.nix b/pkgs/applications/networking/cluster/istioctl/default.nix
index acf9cea24e6b9..1340133e71119 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.11.4";
+  version = "1.12.1";
 
   src = fetchFromGitHub {
     owner = "istio";
     repo = "istio";
     rev = version;
-    sha256 = "sha256-DkZRRjnTWziAL6WSPy5V8fgjpRO2g3Ew25j3F47pDnk=";
+    sha256 = "sha256-oMf60mxreBSlgxVInTFM8kozYVZz5RdgzV3rYUnadnA=";
   };
-  vendorSha256 = "sha256-kioicA4vdWuv0mvpjZRH0r1EuosS06Q3hIEkxdV4/1A=";
+  vendorSha256 = "sha256-e8qh8J745TXUo6c1uMS8GyawEG9YFlMYl/nHpWIFK1Q=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/k9s/default.nix b/pkgs/applications/networking/cluster/k9s/default.nix
index 871ab8b934565..27514303a15f4 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.24.15";
+  version = "0.25.18";
 
   src = fetchFromGitHub {
     owner  = "derailed";
     repo   = "k9s";
     rev    = "v${version}";
-    sha256 = "sha256-ws5JC2/WkgwxKwYtP9xtFELRhztzL6tNSvopyeC6H0Q=";
+    sha256 = "sha256-iUhMPtFX7qFULegiyhlT4aG9q3deZ8aRqyEcbZ9jY/s=";
   };
 
   ldflags = [
@@ -17,14 +17,16 @@ buildGoModule rec {
     "-X github.com/derailed/k9s/cmd.commit=${src.rev}"
   ];
 
-  vendorSha256 = "sha256-T9khJeg5XPhVyUiu4gEEHZR6RgJF4P8LYFycqJglms8=";
+  vendorSha256 = "sha256-jWZ1N1A8VECBQvkXyuzMUkI4u2NLr5/gSvJUfK5VgzM=";
 
-  doCheck = false;
+  preCheck = "export HOME=$(mktemp -d)";
+
+  doCheck = true;
 
   meta = with lib; {
     description = "Kubernetes CLI To Manage Your Clusters In Style";
     homepage = "https://github.com/derailed/k9s";
     license = licenses.asl20;
-    maintainers = with maintainers; [ Gonzih markus1189 ];
+    maintainers = with maintainers; [ Gonzih markus1189 bryanasdev000 ];
   };
 }
diff --git a/pkgs/applications/networking/cluster/kbst/default.nix b/pkgs/applications/networking/cluster/kbst/default.nix
new file mode 100644
index 0000000000000..3787c3462671d
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kbst/default.nix
@@ -0,0 +1,40 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kbst";
+  version = "0.1.5";
+
+  src = fetchFromGitHub{
+    owner = "kbst";
+    repo = "kbst";
+    rev = "v${version}";
+    sha256 = "0cz327fl6cqj9rdi8zw6xrazzigjymhn1hsbjr9xxvfvfnn67xz2";
+  };
+
+  ldflags =
+    let package_url = "github.com/kbst/kbst"; in
+    [
+      "-s" "-w"
+      "-X ${package_url}.version=${version}"
+      "-X ${package_url}.buildDate=unknown"
+      "-X ${package_url}.gitCommit=${src.rev}"
+      "-X ${package_url}.gitTag=v${version}"
+      "-X ${package_url}.gitTreeState=clean"
+    ];
+
+  vendorSha256 = "sha256-DZ47Bj8aFfBnxU9+e1jZiTMF75rCJtcj4yUfZRJWCic=";
+
+  doCheck = false;
+
+  doPostInstallCheck = true;
+  PostInstallCheckPhase = ''
+    $out/bin/kbst help | grep v${version} > /dev/null
+  '';
+
+  meta = with lib; {
+    description = "Kubestack framework CLI";
+    homepage = "https://www.kubestack.com/";
+    license = licenses.apsl20;
+    maintainers = with maintainers; [ mtrsk ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/kn/default.nix b/pkgs/applications/networking/cluster/kn/default.nix
index 411efb6e527ee..796429f2a9992 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 = "0.27.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "knative";
     repo = "client";
-    rev = "v${version}";
-    sha256 = "sha256-nuSx+JKXBgkVwuy6RMZc8pxDv5WjXN3+5pIudazTttc=";
+    rev = "knative-v${version}";
+    sha256 = "sha256-lRQ4IXV+q1idoTyhppJGlzjuUuRykP8DtQ3t/CsxhNw=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/kops/default.nix b/pkgs/applications/networking/cluster/kops/default.nix
index 8487afc208ddc..b7a7ab3c5d96d 100644
--- a/pkgs/applications/networking/cluster/kops/default.nix
+++ b/pkgs/applications/networking/cluster/kops/default.nix
@@ -52,21 +52,21 @@ rec {
 
   mkKops = generic;
 
-  kops_1_19 = mkKops rec {
-    version = "1.19.2";
-    sha256 = "15csxih1xy8myky37n5dyzp5mc31pc4bq9asaw6zz51mgw8ad5r9";
+  kops_1_20 = mkKops rec {
+    version = "1.20.3";
+    sha256 = "sha256-Yrh0wFz7MQgTDwENqQouYh3pr1gOq64Rqft5yxIiCAo=";
     rev = "v${version}";
   };
 
-  kops_1_20 = mkKops rec {
-    version = "1.20.2";
-    sha256 = "011ib3xkj6nn7qax8d0ns8y4jhkwwmry1qnzxklvzssaxhmzs557";
+  kops_1_21 = mkKops rec {
+    version = "1.21.4";
+    sha256 = "sha256-f2xOVa3N/GH5IoI6H/QwDdKTeQoF/kEHX6lNytCZ9cs=";
     rev = "v${version}";
   };
 
-  kops_1_21 = mkKops rec {
-    version = "1.21.1";
-    sha256 = "sha256-/C/fllgfAovHuyGRY+LM09bsUpYdA8zDw1w0b9HnlBc=";
+  kops_1_22 = mkKops rec {
+    version = "1.22.2";
+    sha256 = "sha256-9LT4/iwlPFiz+hUHE0y8DK8T9xwL9HkrrFUXrEqKbM8=";
     rev = "v${version}";
   };
 }
diff --git a/pkgs/applications/networking/cluster/kpt/default.nix b/pkgs/applications/networking/cluster/kpt/default.nix
index 3e6475ca65863..31d869524dac9 100644
--- a/pkgs/applications/networking/cluster/kpt/default.nix
+++ b/pkgs/applications/networking/cluster/kpt/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kpt";
-  version = "0.38.1";
+  version = "0.39.2";
 
   src = fetchFromGitHub {
     owner = "GoogleContainerTools";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-gJAdxg/evsQ+mKsNx/migDMK5lCZ2qSrksbsGDr4fmU=";
+    sha256 = "sha256-PG4SzycXRguKyaQ7LDnTtxF3EgqcjfjeEWD5rROXBPI=";
   };
 
-  vendorSha256 = "sha256-GvkT51JudEdPz6zbqyf5qY6P2AbsaSMbirnxXmza5aI=";
+  vendorSha256 = "sha256-CoXlUX9hkP8gijA/vg19AS9030w95A2oKGD1wjzO8ak=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/cluster/krane/Gemfile.lock b/pkgs/applications/networking/cluster/krane/Gemfile.lock
index c70d4b79e1449..c2ef3e4b25106 100644
--- a/pkgs/applications/networking/cluster/krane/Gemfile.lock
+++ b/pkgs/applications/networking/cluster/krane/Gemfile.lock
@@ -9,8 +9,10 @@ GEM
       zeitwerk (~> 2.3)
     addressable (2.8.0)
       public_suffix (>= 2.0.2, < 5.0)
+    cgi (0.3.1)
     colorize (0.8.1)
     concurrent-ruby (1.1.9)
+    date (3.2.2)
     domain_name (0.5.20190701)
       unf (>= 0.0.5, < 1.0.0)
     ejson (1.3.0)
@@ -61,10 +63,12 @@ GEM
       multi_json
       to_regexp (~> 0.2.1)
     jwt (2.3.0)
-    krane (2.3.1)
+    krane (2.3.4)
       activesupport (>= 5.0)
+      cgi
       colorize (~> 0.8)
       concurrent-ruby (~> 1.1)
+      date
       ejson (~> 1.0)
       googleauth (~> 0.8)
       jsonpath (~> 0.9.6)
@@ -77,7 +81,7 @@ GEM
       recursive-open-struct (~> 1.1, >= 1.1.1)
       rest-client (~> 2.0)
     memoist (0.16.2)
-    mime-types (3.4.0)
+    mime-types (3.4.1)
       mime-types-data (~> 3.2015)
     mime-types-data (3.2021.1115)
     minitest (5.14.4)
diff --git a/pkgs/applications/networking/cluster/krane/gemset.nix b/pkgs/applications/networking/cluster/krane/gemset.nix
index a9a8620911d93..43bbe528cb69c 100644
--- a/pkgs/applications/networking/cluster/krane/gemset.nix
+++ b/pkgs/applications/networking/cluster/krane/gemset.nix
@@ -21,6 +21,16 @@
     };
     version = "2.8.0";
   };
+  cgi = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vy8g58ns18x3dl566wg5rp4hymlx9584ddf75isdyig0yxjl0sn";
+      type = "gem";
+    };
+    version = "0.3.1";
+  };
   colorize = {
     groups = ["default"];
     platforms = [];
@@ -41,6 +51,16 @@
     };
     version = "1.1.9";
   };
+  date = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j1ghv5lqpn8jdvvci2fqvl30j4x31hhgzzc0mj54cga1sgh97n7";
+      type = "gem";
+    };
+    version = "3.2.2";
+  };
   domain_name = {
     dependencies = ["unf"];
     groups = ["default"];
@@ -271,15 +291,15 @@
     version = "2.3.0";
   };
   krane = {
-    dependencies = ["activesupport" "colorize" "concurrent-ruby" "ejson" "googleauth" "jsonpath" "kubeclient" "oj" "statsd-instrument" "thor"];
+    dependencies = ["activesupport" "cgi" "colorize" "concurrent-ruby" "date" "ejson" "googleauth" "jsonpath" "kubeclient" "oj" "statsd-instrument" "thor"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k1lwg0d2phs9n9zdx7nv5rv2p2vipm9jgzalr8x9nrq1is6wgvr";
+      sha256 = "07pij3z7kz7n0nvf8xwcaackck8wyjwldjva7215k2dm8csdzaih";
       type = "gem";
     };
-    version = "2.3.1";
+    version = "2.3.4";
   };
   kubeclient = {
     dependencies = ["http" "recursive-open-struct" "rest-client"];
@@ -308,10 +328,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wvbwlkf6i17xvxx70cffw26ijvcc400vfhpbnvd8mmx556cnb4g";
+      sha256 = "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb";
       type = "gem";
     };
-    version = "3.4.0";
+    version = "3.4.1";
   };
   mime-types-data = {
     groups = ["default"];
diff --git a/pkgs/applications/networking/cluster/kube3d/default.nix b/pkgs/applications/networking/cluster/kube3d/default.nix
index b30d6999470c4..861fa2eb97efd 100644
--- a/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kube3d";
-  version = "5.0.3";
+  version = "5.2.1";
 
   src = fetchFromGitHub {
     owner = "rancher";
     repo = "k3d";
     rev = "v${version}";
-    sha256 = "sha256-BUQG+Nq5BsL+4oBksL8Im9CtNFvwuaW/HebMp9VoORo=";
+    sha256 = "sha256-rKiOPpRupoCRtGJ3DVBUY9483EEBxaaECZRdWiyxaEk=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/kubecolor/default.nix b/pkgs/applications/networking/cluster/kubecolor/default.nix
new file mode 100644
index 0000000000000..8a3c2d12d1b91
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kubecolor/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kubecolor";
+  version = "0.0.20";
+
+  src = fetchFromGitHub {
+    owner = "hidetatz";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-bKHEp9AxH1CcObhNzD3BkNOdyWZu7JrEdsXpo49wEcI=";
+  };
+
+  vendorSha256 = "sha256-C1K7iEugA4HBLthcOI7EZ6H4YHW6el8X6FjVN1BeJR0=";
+
+  meta = with lib; {
+    description = "Colorizes kubectl output";
+    homepage = "https://github.com/hidetatz/kubecolor";
+    changelog = "https://github.com/hidetatz/kubecolor/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = [ maintainers.ivankovnatsky ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/kubectl-tree/default.nix b/pkgs/applications/networking/cluster/kubectl-tree/default.nix
new file mode 100644
index 0000000000000..5a69eb186ad71
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kubectl-tree/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kubectl-tree";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "ahmetb";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-5+INUr7ewSJrFwdhDgdrRu+xDB3FkWRjWbbVJO8cgkc=";
+  };
+
+  vendorSha256 = "sha256-/GLzIoFHXpTmY2601zA83tB2V2XS0rWy1bEDQ6P6D8k=";
+
+  meta = with lib; {
+    description = "kubectl plugin to browse Kubernetes object hierarchies as a tree";
+    homepage = "https://github.com/ahmetb/kubectl-tree";
+    changelog = "https://github.com/ahmetb/kubectl-tree/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = [ maintainers.ivankovnatsky ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/kubedb-cli/default.nix b/pkgs/applications/networking/cluster/kubedb-cli/default.nix
index cbf14f43d2602..ee6a241a2304c 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.22.0";
+  version = "0.24.0";
 
   src = fetchFromGitHub {
     owner = "kubedb";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-pAvaScbwGJMW3iFS26D71nImWsXcEVx7ONUP82f6QDQ=";
+    sha256 = "sha256-b5LbA2qEsEA7J0djEMhDeBY9iV1cvGVtxTlmneQGKYY=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix b/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
index e552113310f51..ce1974fe21484 100644
--- a/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
+++ b/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "kubelogin";
-  version = "1.23.3";
+  version = "1.25.0";
 
   src = fetchFromGitHub {
     owner = "int128";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-qhdt/j1yFlCr+CCM3VQHxRVMEelZDsjhDJW9CYNCx2U=";
+    sha256 = "sha256-orclZtmkdplTRvYkN7VotbynSQ9L2kvAPqP20j8QJ2s=";
   };
 
   subPackages = ["."];
 
-  vendorSha256 = "sha256-RxIrnwIHDi9umu9bqpz3lnpNFdIWoTP657Te9iBv4IA=";
+  vendorSha256 = "sha256-i46G0lsRvh/PmM+pMYuAjoLMHWF1Uzbd8+EkjIId8KE=";
 
   # Rename the binary instead of symlinking to avoid conflict with the
   # Azure version of kubelogin
diff --git a/pkgs/applications/networking/cluster/kubeone/default.nix b/pkgs/applications/networking/cluster/kubeone/default.nix
index 917059370ca66..2b9ca9df0494b 100644
--- a/pkgs/applications/networking/cluster/kubeone/default.nix
+++ b/pkgs/applications/networking/cluster/kubeone/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "kubeone";
-  version = "1.3.0";
+  version = "1.3.3";
 
   src = fetchFromGitHub {
     owner = "kubermatic";
     repo = "kubeone";
     rev = "v${version}";
-    sha256 = "sha256-B/ga5MpjXoLe5H/JosmrS/Wuj1elzQHPsnz/qOm7Hrg=";
+    sha256 = "sha256-IgV1ULxwL17ECsm7MdRfQERcEVy9cEft2L7fHP3XCKo=";
   };
 
   vendorSha256 = "sha256-/rhV7JHuqejCTizcjKIkaJlbRcx7AfMcGqQYo6dlg48=";
diff --git a/pkgs/applications/networking/cluster/kubergrunt/default.nix b/pkgs/applications/networking/cluster/kubergrunt/default.nix
new file mode 100644
index 0000000000000..733bb3c594121
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kubergrunt/default.nix
@@ -0,0 +1,33 @@
+{ buildGoModule, lib, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "kubergrunt";
+  version = "0.7.11";
+
+  src = fetchFromGitHub {
+    owner = "gruntwork-io";
+    repo = "kubergrunt";
+    rev = "v${version}";
+    sha256 = "1224ssqdz9ak0vylyfbr9c2w0yfdp4hw9jh99qmfi2j5nhw9kzcc";
+  };
+
+  vendorSha256 = "1hbb3hn8mzz9h9p1rl35izz3l6c2rqsg8aq6dgpbpsf5krp3zs3v";
+
+  # Disable tests since it requires network access and relies on the
+  # presence of certain AWS infrastructure
+  doCheck = false;
+
+  runVend = true;
+
+  postInstall = ''
+    # The binary is named kubergrunt
+    mv $out/bin/cmd $out/bin/kubergrunt
+  '';
+
+  meta = with lib; {
+    description = "Collection of commands to fill in the gaps between Terraform, Helm, and Kubectl";
+    homepage = "https://github.com/gruntwork-io/kubergrunt";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ psibi ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/kubernetes/default.nix b/pkgs/applications/networking/cluster/kubernetes/default.nix
index c974b830344b3..7adeed5ae126b 100644
--- a/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kubernetes";
-  version = "1.22.3";
+  version = "1.22.4";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "kubernetes";
     rev = "v${version}";
-    sha256 = "sha256-yXis1nq36MO/RnYLxOYBs6xnaTf9lk+VJBzSamrHcEU=";
+    sha256 = "sha256-6ivBecOttzbX85+WCttaU5nXjaiEiKU8xRhnCPkjLXg=";
   };
 
   nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync installShellFiles ];
diff --git a/pkgs/applications/networking/cluster/kubeseal/default.nix b/pkgs/applications/networking/cluster/kubeseal/default.nix
index 13fc7a9605e49..b42a98405d2d1 100644
--- a/pkgs/applications/networking/cluster/kubeseal/default.nix
+++ b/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kubeseal";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "bitnami-labs";
     repo = "sealed-secrets";
     rev = "v${version}";
-    sha256 = "sha256-+9yOBrq34VCy1yAkSh1iHbgtckuz2FcHokH/Cb/Heus=";
+    sha256 = "sha256-7u7lsMeeZOUGn8eb8sjV9Td+XNEUPDvbSaITdp1JTf4=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/kubeval/default.nix b/pkgs/applications/networking/cluster/kubeval/default.nix
index af8e04667b7fb..774efb044af1f 100644
--- a/pkgs/applications/networking/cluster/kubeval/default.nix
+++ b/pkgs/applications/networking/cluster/kubeval/default.nix
@@ -1,17 +1,21 @@
-{ lib, fetchFromGitHub, buildGoModule, makeWrapper }:
+{ lib
+, fetchFromGitHub
+, buildGoModule
+, makeWrapper
+}:
 
 buildGoModule rec {
   pname = "kubeval";
-  version = "0.16.0";
+  version = "0.16.1";
 
   src = fetchFromGitHub {
     owner = "instrumenta";
     repo = "kubeval";
-    rev = version;
-    sha256 = "sha256-c5UESyWK1rfnD0etOuIroBUSqZQuu57jio7/ArItMP0=";
+    rev = "v${version}";
+    sha256 = "sha256-pwJOV7V78H2XaMiiJvKMcx0dEwNDrhgFHmCRLAwMirg=";
   };
 
-  vendorSha256 = "sha256-SqYNAUYPUJYmHj4cFEYqQ8hEkYWmmpav9AGOSFDc/M4=";
+  vendorSha256 = "sha256-OAFxEb7IWhyRBEi8vgmekDSL/YpmD4EmUfildRaPR24=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/kuma/default.nix b/pkgs/applications/networking/cluster/kuma/default.nix
new file mode 100644
index 0000000000000..d7a58f09b4e74
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kuma/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, fetchFromGitHub
+, buildGoModule
+, coredns
+, installShellFiles
+, isFull ? false
+, enableGateway ? false
+, pname ? "kuma"
+, components ? lib.optionals isFull [
+    "kumactl"
+    "kuma-cp"
+    "kuma-prometheus-sd"
+    "kuma-dp"
+  ]
+}:
+
+buildGoModule rec {
+  inherit pname ;
+  version = "1.4.0";
+  tags = lib.optionals enableGateway ["gateway"];
+  vendorSha256 = "1fc5psvbd9bpc6c3y2cpx5dx8cgr2fcp7nln3kwfgbryahq2y8wl";
+
+  src = fetchFromGitHub {
+    owner = "kumahq";
+    repo = "kuma";
+    rev = version;
+    sha256 = "0agib3w5s270n5rhg54m3p4f21s5fhdrhaks374j7l21njs7xhqb";
+  };
+
+  doCheck = false;
+
+  nativeBuildInputs = [installShellFiles] ++ lib.optionals isFull [coredns];
+
+  preBuild = ''
+    export HOME=$TMPDIR
+  '';
+
+  subPackages = map (p: "app/" + p) components;
+
+  postInstall = lib.concatMapStringsSep "\n" (p: ''
+    installShellCompletion --cmd ${p} \
+      --bash <($out/bin/${p} completion bash) \
+      --fish <($out/bin/${p} completion fish) \
+      --zsh <($out/bin/${p} completion zsh)
+  '') components + lib.optionalString isFull ''
+    ln -sLf ${coredns}/bin/coredns $out/bin
+  '';
+
+  ldflags = let
+    prefix = "github.com/kumahq/kuma/pkg/version";
+  in [
+    "-s" "-w"
+    "-X ${prefix}.version=${version}"
+    "-X ${prefix}.gitTag=${version}"
+    "-X ${prefix}.gitCommit=${version}"
+    "-X ${prefix}.buildDate=${version}"
+  ];
+
+  meta = with lib; {
+    description = "Service mesh controller";
+    homepage = "https://kuma.io/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ zbioe ];
+  };
+}
diff --git a/pkgs/applications/networking/cluster/kumactl/default.nix b/pkgs/applications/networking/cluster/kumactl/default.nix
deleted file mode 100644
index d13db27444fb7..0000000000000
--- a/pkgs/applications/networking/cluster/kumactl/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ lib, fetchFromGitHub, buildGoModule }:
-
-buildGoModule rec {
-  pname = "kumactl";
-  version = "1.3.1";
-
-  src = fetchFromGitHub {
-    owner = "kumahq";
-    repo = "kuma";
-    rev = version;
-    sha256 = "0b554cngg2j3wnadpqwhq3dv3la8vvvzyww2diw4il4gl4j6xj0j";
-  };
-
-  vendorSha256 = "0r26h4vp11wbl7nk3y7c22p60q7lspy8nr58khxyczdqjk6wrdjp";
-
-  subPackages = [ "app/kumactl" ];
-
-  ldflags = let
-    prefix = "github.com/kumahq/kuma/pkg/version";
-  in [
-    "-s" "-w"
-    "-X ${prefix}.version=${version}"
-    "-X ${prefix}.gitTag=${version}"
-    "-X ${prefix}.gitCommit=${version}"
-    "-X ${prefix}.buildDate=${version}"
-  ];
-
-  meta = with lib; {
-    description = "Kuma service mesh controller";
-    homepage = "https://kuma.io/";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ zbioe ];
-  };
-}
diff --git a/pkgs/applications/networking/cluster/minikube/default.nix b/pkgs/applications/networking/cluster/minikube/default.nix
index f3cb598d246bb..e06f486ddf676 100644
--- a/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/pkgs/applications/networking/cluster/minikube/default.nix
@@ -11,9 +11,9 @@
 
 buildGoModule rec {
   pname = "minikube";
-  version = "1.23.2";
+  version = "1.24.0";
 
-  vendorSha256 = "sha256-Q6DadAmx/8TM+MrdaKgAjn0sVrKqTYoWdsmnN77yfKA=";
+  vendorSha256 = "sha256-I23T1eWPTU9QiIVI4qi5mkaS6CkeGbOHKTHwjCnKTIM=";
 
   doCheck = false;
 
@@ -21,7 +21,7 @@ buildGoModule rec {
     owner = "kubernetes";
     repo = "minikube";
     rev = "v${version}";
-    sha256 = "sha256-PIgzGikVIno2Gd+kSjF4kLHuUKgPrPHoIJxAGblI8RQ=";
+    sha256 = "sha256-WW5VVjm7cq/3/RGiIE2nn8O+VK0RHCtKkrlboIzhqC4=";
   };
 
   nativeBuildInputs = [ installShellFiles pkg-config which ];
diff --git a/pkgs/applications/networking/cluster/nerdctl/default.nix b/pkgs/applications/networking/cluster/nerdctl/default.nix
index 874a6fdecc4f6..7b7a7a40e2bce 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 = "0.13.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-uyLY2yH/6J0rtra0brBATadPqrNyyuCcaGfOrng9h4Y=";
+    sha256 = "sha256-LXXTzpG0UDSzEL6RdczvBZHlH5eJTkt7oc3wMFLO1JQ=";
   };
 
-  vendorSha256 = "sha256-r7xzvntTIJocdYMQpFXunI2XV65eRG+piEEzS5N2xsY=";
+  vendorSha256 = "sha256-jFTtg3p8nS8j267CZ+wuoynruwFTRamwkEpResQSMjk=";
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/nixops/default.nix b/pkgs/applications/networking/cluster/nixops/default.nix
index 87c4c2d6b2c85..047a472c39844 100644
--- a/pkgs/applications/networking/cluster/nixops/default.nix
+++ b/pkgs/applications/networking/cluster/nixops/default.nix
@@ -61,12 +61,14 @@ let
   ).python;
 
   pkg = interpreter.pkgs.nixops.withPlugins(ps: [
-    ps.nixops-encrypted-links
-    ps.nixops-hercules-ci
-    ps.nixops-virtd
     ps.nixops-aws
+    ps.nixops-digitalocean
+    ps.nixops-encrypted-links
     ps.nixops-gcp
+    ps.nixops-hercules-ci
+    ps.nixops-hetzner
     ps.nixopsvbox
+    ps.nixops-virtd
   ]) // rec {
     # Workaround for https://github.com/NixOS/nixpkgs/issues/119407
     # TODO after #1199407: Use .overrideAttrs(pkg: old: { passthru.tests = .....; })
diff --git a/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix b/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix
index b542a1eff9559..c05cf0038a3d9 100644
--- a/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix
+++ b/pkgs/applications/networking/cluster/nixops/poetry-git-overlay.nix
@@ -5,8 +5,8 @@ self: super: {
     _: {
       src = pkgs.fetchgit {
         url = "https://github.com/NixOS/nixops.git";
-        rev = "35ac02085169bc2372834d6be6cf4c1bdf820d09";
-        sha256 = "1jh0jrxyywjqhac2dvpj7r7isjv68ynbg7g6f6rj55raxcqc7r3j";
+        rev = "7ebdd8ace8d6bcefc18ee9e3e590f8bfa3368771";
+        sha256 = "16pwxs5bca6cd83f0rs4sf5r8yf07wmha051waysmxs9xxl856yc";
       };
     }
   );
@@ -15,8 +15,18 @@ self: super: {
     _: {
       src = pkgs.fetchgit {
         url = "https://github.com/NixOS/nixops-aws.git";
-        rev = "44f774272bd522cc7e87074c056f2225f771ded0";
-        sha256 = "0x9pv186nkcfisr1c1nxw8gpazkrg546dfl95140rif0xzw3pizx";
+        rev = "83900880a413218020ddd91d6cd3f5b823acb3fb";
+        sha256 = "17gf4vfcl1vx81y9vk26zzcj6kac41kfhzwcx15cj91ivqrgn3b2";
+      };
+    }
+  );
+
+  nixops-digitalocean = super.nixops-digitalocean.overridePythonAttrs (
+    _: {
+      src = pkgs.fetchgit {
+        url = "https://github.com/nix-community/nixops-digitalocean.git";
+        rev = "b527b4bd27a419753e38c8231fd7528b3ea33886";
+        sha256 = "069jlgcjqgyb1v3dnrp2h0w4gv5hfx624iq2xazaix2wxpx9w7f8";
       };
     }
   );
@@ -51,6 +61,16 @@ self: super: {
     }
   );
 
+  nixops-hetzner = super.nixops-hetzner.overridePythonAttrs (
+    _: {
+      src = pkgs.fetchgit {
+        url = "https://github.com/NixOS/nixops-hetzner";
+        rev = "84f4eebb89b049c4f86aa779349397c3dedc0c43";
+        sha256 = "0qx8v775jhlbqyhid8wkzy3xcha08kkzb42h6ayszwq4alyfx0b0";
+      };
+    }
+  );
+
   nixops-virtd = super.nixops-virtd.overridePythonAttrs (
     _: {
       src = pkgs.fetchgit {
diff --git a/pkgs/applications/networking/cluster/nixops/poetry.lock b/pkgs/applications/networking/cluster/nixops/poetry.lock
index 642b063368c60..413d440c8254b 100644
--- a/pkgs/applications/networking/cluster/nixops/poetry.lock
+++ b/pkgs/applications/networking/cluster/nixops/poetry.lock
@@ -8,11 +8,11 @@ python-versions = "*"
 
 [[package]]
 name = "apache-libcloud"
-version = "3.3.1"
+version = "3.4.1"
 description = "A standard Python library that abstracts away differences among multiple cloud provider APIs. For more information and documentation, please see https://libcloud.apache.org"
 category = "main"
 optional = false
-python-versions = ">=3.5.*, <4"
+python-versions = ">=3.5, <4"
 
 [package.dependencies]
 requests = ">=2.5.0"
@@ -38,14 +38,14 @@ python-versions = "*"
 
 [[package]]
 name = "boto3"
-version = "1.19.9"
+version = "1.20.8"
 description = "The AWS SDK for Python"
 category = "main"
 optional = false
 python-versions = ">= 3.6"
 
 [package.dependencies]
-botocore = ">=1.22.9,<1.23.0"
+botocore = ">=1.23.8,<1.24.0"
 jmespath = ">=0.7.1,<1.0.0"
 s3transfer = ">=0.5.0,<0.6.0"
 
@@ -54,7 +54,7 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"]
 
 [[package]]
 name = "botocore"
-version = "1.22.9"
+version = "1.23.8"
 description = "Low-level, data-driven core of boto 3."
 category = "main"
 optional = false
@@ -134,6 +134,14 @@ optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 
 [[package]]
+name = "hetzner"
+version = "0.8.3"
+description = "High level access to the Hetzner robot"
+category = "main"
+optional = false
+python-versions = "*"
+
+[[package]]
 name = "idna"
 version = "3.3"
 description = "Internationalized Domain Names in Applications (IDNA)"
@@ -143,7 +151,7 @@ python-versions = ">=3.5"
 
 [[package]]
 name = "imagesize"
-version = "1.2.0"
+version = "1.3.0"
 description = "Getting image size from png/jpeg/jpeg2000/gif file"
 category = "dev"
 optional = false
@@ -151,7 +159,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 
 [[package]]
 name = "jinja2"
-version = "3.0.2"
+version = "3.0.3"
 description = "A very fast and expressive template engine."
 category = "dev"
 optional = false
@@ -172,6 +180,19 @@ optional = false
 python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
 
 [[package]]
+name = "jsonpickle"
+version = "2.0.0"
+description = "Python library for serializing any arbitrary object graph into JSON"
+category = "main"
+optional = false
+python-versions = ">=2.7"
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
+testing = ["coverage (<5)", "pytest (>=3.5,!=3.7.3)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-black-multipy", "pytest-cov", "ecdsa", "feedparser", "numpy", "pandas", "pymongo", "sklearn", "sqlalchemy", "enum34", "jsonlib"]
+"testing.libs" = ["demjson", "simplejson", "ujson", "yajl"]
+
+[[package]]
 name = "libvirt-python"
 version = "7.9.0"
 description = "The libvirt virtualization API python binding"
@@ -206,7 +227,7 @@ typing-extensions = "^3.7.4"
 type = "git"
 url = "https://github.com/NixOS/nixops.git"
 reference = "master"
-resolved_reference = "35ac02085169bc2372834d6be6cf4c1bdf820d09"
+resolved_reference = "7ebdd8ace8d6bcefc18ee9e3e590f8bfa3368771"
 
 [[package]]
 name = "nixops-aws"
@@ -228,7 +249,26 @@ typing-extensions = "^3.7.4"
 type = "git"
 url = "https://github.com/NixOS/nixops-aws.git"
 reference = "master"
-resolved_reference = "44f774272bd522cc7e87074c056f2225f771ded0"
+resolved_reference = "83900880a413218020ddd91d6cd3f5b823acb3fb"
+
+[[package]]
+name = "nixops-digitalocean"
+version = "2.0"
+description = "NixOps plugin for Digital Ocean"
+category = "main"
+optional = false
+python-versions = "^3.7"
+develop = false
+
+[package.dependencies]
+nixops = {git = "https://github.com/NixOS/nixops.git", branch = "master"}
+python-digitalocean = "^1.15.0"
+
+[package.source]
+type = "git"
+url = "https://github.com/nix-community/nixops-digitalocean.git"
+reference = "master"
+resolved_reference = "b527b4bd27a419753e38c8231fd7528b3ea33886"
 
 [[package]]
 name = "nixops-encrypted-links"
@@ -288,6 +328,27 @@ reference = "master"
 resolved_reference = "e601d5baffd003fd5f22deeaea0cb96444b054dc"
 
 [[package]]
+name = "nixops-hetzner"
+version = "1.0"
+description = "NixOS deployment tool, but for hetzner"
+category = "main"
+optional = false
+python-versions = "^3.7"
+develop = false
+
+[package.dependencies]
+hetzner = "0.8.3"
+nixops = {git = "https://github.com/NixOS/nixops.git", rev = "master"}
+nixos-modules-contrib = {git = "https://github.com/nix-community/nixos-modules-contrib.git", rev = "master"}
+typing-extensions = "^3.7.4"
+
+[package.source]
+type = "git"
+url = "https://github.com/NixOS/nixops-hetzner"
+reference = "master"
+resolved_reference = "84f4eebb89b049c4f86aa779349397c3dedc0c43"
+
+[[package]]
 name = "nixops-virtd"
 version = "1.0"
 description = "NixOps plugin for virtd"
@@ -344,14 +405,14 @@ resolved_reference = "81a1c2ef424dcf596a97b2e46a58ca73a1dd1ff8"
 
 [[package]]
 name = "packaging"
-version = "21.2"
+version = "21.3"
 description = "Core utilities for Python packages"
 category = "dev"
 optional = false
 python-versions = ">=3.6"
 
 [package.dependencies]
-pyparsing = ">=2.0.2,<3"
+pyparsing = ">=2.0.2,<3.0.5 || >3.0.5"
 
 [[package]]
 name = "pluggy"
@@ -374,7 +435,7 @@ python-versions = "*"
 
 [[package]]
 name = "pycparser"
-version = "2.20"
+version = "2.21"
 description = "C parser in Python"
 category = "main"
 optional = false
@@ -390,11 +451,14 @@ python-versions = ">=3.5"
 
 [[package]]
 name = "pyparsing"
-version = "2.4.7"
+version = "3.0.6"
 description = "Python parsing module"
 category = "dev"
 optional = false
-python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+python-versions = ">=3.6"
+
+[package.extras]
+diagrams = ["jinja2", "railroad-diagrams"]
 
 [[package]]
 name = "python-dateutil"
@@ -408,6 +472,18 @@ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
 six = ">=1.5"
 
 [[package]]
+name = "python-digitalocean"
+version = "1.17.0"
+description = "digitalocean.com API to manage Droplets and Images"
+category = "main"
+optional = false
+python-versions = "*"
+
+[package.dependencies]
+jsonpickle = "*"
+requests = "*"
+
+[[package]]
 name = "pytz"
 version = "2021.3"
 description = "World timezone definitions, modern and historical"
@@ -457,7 +533,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
 
 [[package]]
 name = "snowballstemmer"
-version = "2.1.0"
+version = "2.2.0"
 description = "This package provides 29 stemmers for 28 languages generated from Snowball algorithms."
 category = "dev"
 optional = false
@@ -601,7 +677,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
 [metadata]
 lock-version = "1.1"
 python-versions = "^3.8"
-content-hash = "8a294b2745b271983bac54258b4f3a2ab3b2e5b218440329fa7eea482c63774f"
+content-hash = "e75c6429aa8989659a345f903e2e67d87514b5864751e33890d90aa2d20ef3e2"
 
 [metadata.files]
 alabaster = [
@@ -609,8 +685,8 @@ alabaster = [
     {file = "alabaster-0.7.12.tar.gz", hash = "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02"},
 ]
 apache-libcloud = [
-    {file = "apache-libcloud-3.3.1.tar.gz", hash = "sha256:d7450453eaf5904eb4fb4f74cf9f37dc83721a719bce34f5abb336b1a1ab974d"},
-    {file = "apache_libcloud-3.3.1-py2.py3-none-any.whl", hash = "sha256:c3722c4dd58b0ee4beaf4e615e0ba82505d9a915e55319dc84383687166a3eed"},
+    {file = "apache-libcloud-3.4.1.tar.gz", hash = "sha256:88f18da0cf3fac0af723e743fb741d9d1be251881edab7a5a0d1629955b5011b"},
+    {file = "apache_libcloud-3.4.1-py2.py3-none-any.whl", hash = "sha256:af1a5b3cda7bc3220093726ff67dbb70928521e2ec19d0e33a31b1e22fde1850"},
 ]
 babel = [
     {file = "Babel-2.9.1-py2.py3-none-any.whl", hash = "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9"},
@@ -621,12 +697,12 @@ boto = [
     {file = "boto-2.49.0.tar.gz", hash = "sha256:ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a"},
 ]
 boto3 = [
-    {file = "boto3-1.19.9-py3-none-any.whl", hash = "sha256:efa4aea4d30e93f8913a5731ab4de7b6d2020ee77cdde7e61bfae56670da1a14"},
-    {file = "boto3-1.19.9.tar.gz", hash = "sha256:2fe4edec0e02705059e6baac52e29f97fae6086bf8b817e6ca0e49b48c0fbbf2"},
+    {file = "boto3-1.20.8-py3-none-any.whl", hash = "sha256:c0ac23cc36dc484edd1edd28903b5712cb07507af1ae19b2e8d6db176416d9e2"},
+    {file = "boto3-1.20.8.tar.gz", hash = "sha256:81ebdcabc534a52e2b7a2bfcbe1a1d7f1e34f028f7fe1cb16ccd80e34cea867a"},
 ]
 botocore = [
-    {file = "botocore-1.22.9-py3-none-any.whl", hash = "sha256:612d26b58f790d267cc7714e82262104b681db799655b6dd6b64fcd9caf08bef"},
-    {file = "botocore-1.22.9.tar.gz", hash = "sha256:7b59367bace96595e9feeed9765c7178278c55531b2b9e07b7618911e9f0a00b"},
+    {file = "botocore-1.23.8-py3-none-any.whl", hash = "sha256:a0c7cfea155a0202ab197a016736dd4e6a26f9e416bdd9cdd2c9a3fb88ffa5a8"},
+    {file = "botocore-1.23.8.tar.gz", hash = "sha256:ae4ed9666199020a9e53c3d3efc0a7d417315cd2313b70cb013282afe70ac358"},
 ]
 certifi = [
     {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"},
@@ -699,8 +775,6 @@ cryptography = [
     {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34dae04a0dce5730d8eb7894eab617d8a70d0c97da76b905de9efb7128ad7085"},
     {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1eb7bb0df6f6f583dd8e054689def236255161ebbcf62b226454ab9ec663746b"},
     {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:9965c46c674ba8cc572bc09a03f4c649292ee73e1b683adb1ce81e82e9a6a0fb"},
-    {file = "cryptography-3.4.8-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:3c4129fc3fdc0fa8e40861b5ac0c673315b3c902bbdc05fc176764815b43dd1d"},
-    {file = "cryptography-3.4.8-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:695104a9223a7239d155d7627ad912953b540929ef97ae0c34c7b8bf30857e89"},
     {file = "cryptography-3.4.8-cp36-abi3-win32.whl", hash = "sha256:21ca464b3a4b8d8e86ba0ee5045e103a1fcfac3b39319727bc0fc58c09c6aff7"},
     {file = "cryptography-3.4.8-cp36-abi3-win_amd64.whl", hash = "sha256:3520667fda779eb788ea00080124875be18f2d8f0848ec00733c0ec3bb8219fc"},
     {file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d2a6e5ef66503da51d2110edf6c403dc6b494cc0082f85db12f54e9c5d4c3ec5"},
@@ -717,48 +791,39 @@ docutils = [
     {file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"},
     {file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"},
 ]
+hetzner = [
+    {file = "hetzner-0.8.3.tar.gz", hash = "sha256:9a43dbbeb4a1f3efc86c5fe1c1d7039aaa635dfdb829506ec3aa34382d3a7114"},
+]
 idna = [
     {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"},
     {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"},
 ]
 imagesize = [
-    {file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"},
-    {file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"},
+    {file = "imagesize-1.3.0-py2.py3-none-any.whl", hash = "sha256:1db2f82529e53c3e929e8926a1fa9235aa82d0bd0c580359c67ec31b2fddaa8c"},
+    {file = "imagesize-1.3.0.tar.gz", hash = "sha256:cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d"},
 ]
 jinja2 = [
-    {file = "Jinja2-3.0.2-py3-none-any.whl", hash = "sha256:8569982d3f0889eed11dd620c706d39b60c36d6d25843961f33f77fb6bc6b20c"},
-    {file = "Jinja2-3.0.2.tar.gz", hash = "sha256:827a0e32839ab1600d4eb1c4c33ec5a8edfbc5cb42dafa13b81f182f97784b45"},
+    {file = "Jinja2-3.0.3-py3-none-any.whl", hash = "sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8"},
+    {file = "Jinja2-3.0.3.tar.gz", hash = "sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7"},
 ]
 jmespath = [
     {file = "jmespath-0.10.0-py2.py3-none-any.whl", hash = "sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f"},
     {file = "jmespath-0.10.0.tar.gz", hash = "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9"},
 ]
+jsonpickle = [
+    {file = "jsonpickle-2.0.0-py2.py3-none-any.whl", hash = "sha256:c1010994c1fbda87a48f8a56698605b598cb0fc6bb7e7927559fc1100e69aeac"},
+    {file = "jsonpickle-2.0.0.tar.gz", hash = "sha256:0be49cba80ea6f87a168aa8168d717d00c6ca07ba83df3cec32d3b30bfe6fb9a"},
+]
 libvirt-python = [
     {file = "libvirt-python-7.9.0.tar.gz", hash = "sha256:8535cffa5fbf05185648f9f57a2f71899c3bc12c897d320351c53725a48e5359"},
 ]
 markupsafe = [
-    {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"},
-    {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"},
-    {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"},
-    {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"},
-    {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"},
-    {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"},
-    {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"},
-    {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"},
-    {file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"},
-    {file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"},
     {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"},
     {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"},
     {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"},
     {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"},
     {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"},
     {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"},
-    {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"},
-    {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"},
-    {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"},
-    {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"},
-    {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"},
-    {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"},
     {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"},
     {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"},
     {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"},
@@ -767,27 +832,14 @@ markupsafe = [
     {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"},
     {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"},
     {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"},
-    {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"},
-    {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"},
-    {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"},
-    {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"},
-    {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"},
-    {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"},
     {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"},
     {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"},
-    {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"},
     {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"},
     {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"},
     {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"},
     {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"},
     {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"},
     {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"},
-    {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"},
-    {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"},
-    {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"},
-    {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"},
-    {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"},
-    {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"},
     {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"},
     {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"},
     {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"},
@@ -797,27 +849,23 @@ markupsafe = [
     {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"},
     {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"},
     {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"},
-    {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"},
-    {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"},
-    {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"},
-    {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"},
-    {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"},
-    {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"},
     {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"},
     {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"},
     {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"},
 ]
 nixops = []
 nixops-aws = []
+nixops-digitalocean = []
 nixops-encrypted-links = []
 nixops-gcp = []
 nixops-hercules-ci = []
+nixops-hetzner = []
 nixops-virtd = []
 nixopsvbox = []
 nixos-modules-contrib = []
 packaging = [
-    {file = "packaging-21.2-py3-none-any.whl", hash = "sha256:14317396d1e8cdb122989b916fa2c7e9ca8e2be9e8060a6eff75b6b7b4d8a7e0"},
-    {file = "packaging-21.2.tar.gz", hash = "sha256:096d689d78ca690e4cd8a89568ba06d07ca097e3306a4381635073ca91479966"},
+    {file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"},
+    {file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"},
 ]
 pluggy = [
     {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"},
@@ -829,21 +877,25 @@ prettytable = [
     {file = "prettytable-0.7.2.zip", hash = "sha256:a53da3b43d7a5c229b5e3ca2892ef982c46b7923b51e98f0db49956531211c4f"},
 ]
 pycparser = [
-    {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"},
-    {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"},
+    {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"},
+    {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
 ]
 pygments = [
     {file = "Pygments-2.10.0-py3-none-any.whl", hash = "sha256:b8e67fe6af78f492b3c4b3e2970c0624cbf08beb1e493b2c99b9fa1b67a20380"},
     {file = "Pygments-2.10.0.tar.gz", hash = "sha256:f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6"},
 ]
 pyparsing = [
-    {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
-    {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"},
+    {file = "pyparsing-3.0.6-py3-none-any.whl", hash = "sha256:04ff808a5b90911829c55c4e26f75fa5ca8a2f5f36aa3a51f68e27033341d3e4"},
+    {file = "pyparsing-3.0.6.tar.gz", hash = "sha256:d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81"},
 ]
 python-dateutil = [
     {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"},
     {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
 ]
+python-digitalocean = [
+    {file = "python-digitalocean-1.17.0.tar.gz", hash = "sha256:107854fde1aafa21774e8053cf253b04173613c94531f75d5a039ad770562b24"},
+    {file = "python_digitalocean-1.17.0-py3-none-any.whl", hash = "sha256:0032168e022e85fca314eb3f8dfaabf82087f2ed40839eb28f1eeeeca5afb1fa"},
+]
 pytz = [
     {file = "pytz-2021.3-py2.py3-none-any.whl", hash = "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c"},
     {file = "pytz-2021.3.tar.gz", hash = "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"},
@@ -861,8 +913,8 @@ six = [
     {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
 ]
 snowballstemmer = [
-    {file = "snowballstemmer-2.1.0-py2.py3-none-any.whl", hash = "sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2"},
-    {file = "snowballstemmer-2.1.0.tar.gz", hash = "sha256:e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914"},
+    {file = "snowballstemmer-2.2.0-py2.py3-none-any.whl", hash = "sha256:c8e1716e83cc398ae16824e5572ae04e0d9fc2c6b985fb0f900f5f0c96ecba1a"},
+    {file = "snowballstemmer-2.2.0.tar.gz", hash = "sha256:09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1"},
 ]
 sphinx = [
     {file = "Sphinx-3.5.4-py3-none-any.whl", hash = "sha256:2320d4e994a191f4b4be27da514e46b3d6b420f2ff895d064f52415d342461e8"},
diff --git a/pkgs/applications/networking/cluster/nixops/pyproject.toml b/pkgs/applications/networking/cluster/nixops/pyproject.toml
index 3cd3025b1fa55..89e6e34c771ec 100644
--- a/pkgs/applications/networking/cluster/nixops/pyproject.toml
+++ b/pkgs/applications/networking/cluster/nixops/pyproject.toml
@@ -8,10 +8,12 @@ authors = ["Adam Hoese <adam.hose@tweag.io>"]
 python = "^3.8"
 nixops = {git = "https://github.com/NixOS/nixops.git"}
 nixops-aws = {git = "https://github.com/NixOS/nixops-aws.git"}
-nixops-gcp = {git = "https://github.com/nix-community/nixops-gce.git"}
-nixopsvbox = {git = "https://github.com/nix-community/nixops-vbox.git"}
+nixops-digitalocean = {git = "https://github.com/nix-community/nixops-digitalocean.git"}
 nixops-encrypted-links = {git = "https://github.com/nix-community/nixops-encrypted-links.git"}
+nixops-gcp = {git = "https://github.com/nix-community/nixops-gce.git"}
 nixops-hercules-ci = {git = "https://github.com/hercules-ci/nixops-hercules-ci.git"}
+nixops-hetzner = {git = "https://github.com/NixOS/nixops-hetzner"}
+nixopsvbox = {git = "https://github.com/nix-community/nixops-vbox.git"}
 nixops-virtd = {git = "https://github.com/nix-community/nixops-libvirtd.git"}
 
 [tool.poetry.dev-dependencies]
diff --git a/pkgs/applications/networking/cluster/nomad-autoscaler/default.nix b/pkgs/applications/networking/cluster/nomad-autoscaler/default.nix
index 702bf19d57952..cfa86ea2dcaf5 100644
--- a/pkgs/applications/networking/cluster/nomad-autoscaler/default.nix
+++ b/pkgs/applications/networking/cluster/nomad-autoscaler/default.nix
@@ -3,7 +3,7 @@
 let
   package = buildGoModule rec {
     pname = "nomad-autoscaler";
-    version = "0.3.3";
+    version = "0.3.4";
 
     outputs = [
       "out"
@@ -25,10 +25,10 @@ let
       owner = "hashicorp";
       repo = "nomad-autoscaler";
       rev = "v${version}";
-      sha256 = "sha256-bN/U6aCf33B88ouQwTGG8CqARzWmIvXNr5JPr3l8cVI=";
+      sha256 = "sha256-SmlcQH+K/axl6Gj+bX0Quk6K/usP0c1hWnIdFjS1dn8=";
     };
 
-    vendorSha256 = "sha256-Ls8gkfLyxfQD8krvxjAPnZhf1r1s2MhtQfMMfp8hJII=";
+    vendorSha256 = "sha256-tO8vi9jBV6rVcGk/OoaXzpnQi4yPdozYZZwAMFCz2+c=";
 
     subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/cluster/nomad/1.0.nix b/pkgs/applications/networking/cluster/nomad/1.0.nix
index 53430cdf94ed5..079c957ebb0fd 100644
--- a/pkgs/applications/networking/cluster/nomad/1.0.nix
+++ b/pkgs/applications/networking/cluster/nomad/1.0.nix
@@ -6,6 +6,6 @@
 
 callPackage ./generic.nix {
   inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
-  version = "1.0.12";
-  sha256 = "04fqliz7y4zzs4xraid54mqxwgrzh138nmfcs876vp534slvikpi";
+  version = "1.0.13";
+  sha256 = "19wlma2y8lpb7p01wb0l20rb6nvrvldz0mm3qfisx33y56ykjyh8";
 }
diff --git a/pkgs/applications/networking/cluster/nomad/1.1.nix b/pkgs/applications/networking/cluster/nomad/1.1.nix
index b8c58e9c347c4..5a3e964ad5f83 100644
--- a/pkgs/applications/networking/cluster/nomad/1.1.nix
+++ b/pkgs/applications/networking/cluster/nomad/1.1.nix
@@ -6,7 +6,7 @@
 
 callPackage ./genericModule.nix {
   inherit buildGoModule nvidia_x11 nvidiaGpuSupport;
-  version = "1.1.6";
-  sha256 = "1q6fqay1s9qwimjwlldc8hr6009cgx3ghz142mdx36jjv9isj9ln";
-  vendorSha256 = "0rfd22rf76mwj489zhswah4g3dhhz6davm336xgm9dbnyaz9d8r0";
+  version = "1.1.8";
+  sha256 = "05k1r157h3jaqzzsrkgc96zcny3mi8dvixc2v1w0lwcxixqk0y2l";
+  vendorSha256 = "03hjin9nybf7fpbj5r82qh19qh3cc8m0b236mk0ajhsyjqrk8pir";
 }
diff --git a/pkgs/applications/networking/cluster/octant/default.nix b/pkgs/applications/networking/cluster/octant/default.nix
index 257c37ff328de..7c97b9eaedb2c 100644
--- a/pkgs/applications/networking/cluster/octant/default.nix
+++ b/pkgs/applications/networking/cluster/octant/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "octant";
-  version = "0.24.0";
+  version = "0.25.0";
 
   src =
     let
@@ -19,10 +19,10 @@ stdenv.mkDerivation rec {
       };
     in
     fetchsrc version {
-      x86_64-linux = "sha256-fvGVcp6SpHY0UuWurRuypDXbWEs565bK1Peg0Q4Y0m8=";
-      aarch64-linux = "sha256-7h8l4Pm34UCZ5NhD1scM1c5sM4ePGLDRGAQBfI5vSHI=";
-      x86_64-darwin = "sha256-2S+D5Gg98GEL5L6bC8ZUSEJXFs74ZaZlNkYHYJYZvqw=";
-      aarch64-darwin = "sha256-rEhMX+v2sjsmc1p22uscjIyhcnpv2fWjgEnU+lUq9RE=";
+      x86_64-linux = "sha256-woBmYDOOh3AQH0RZJtMCrOfjFBrpMPzv22cVZ2/xHZo=";
+      aarch64-linux = "sha256-3YUUdOZULjJZqVJP0aO/d1WulXlpwf012NYJ6Mc2qp8=";
+      x86_64-darwin = "sha256-9lbMyEid4I1fRLkLwGbmrB2OkycnGBPUU5wEdVZoTLo=";
+      aarch64-darwin = "sha256-Q0ZkQX9FpzEc6WC3mRoYfg9oW3fvLB1/Ksa64TDlSgo=";
     };
 
   dontConfigure = true;
diff --git a/pkgs/applications/networking/cluster/pgo-client/default.nix b/pkgs/applications/networking/cluster/pgo-client/default.nix
index 87bde3c2eddb5..33dbb47d11c2d 100644
--- a/pkgs/applications/networking/cluster/pgo-client/default.nix
+++ b/pkgs/applications/networking/cluster/pgo-client/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pgo-client";
-  version = "4.7.3";
+  version = "4.7.4";
 
   src = fetchFromGitHub {
     owner = "CrunchyData";
     repo = "postgres-operator";
     rev = "v${version}";
-    sha256 = "sha256-nIflJLHhzEMq4RZUHjZYvBW+cxsi/gc9ZnMoGCesbrc=";
+    sha256 = "sha256-8L3eFMATCGIM6xxUM7mi/D3njHMFk7cgPLJotilAS5k=";
   };
 
-  vendorSha256 = "sha256-m8b6Lh6it67A6cppdBDX4X0u7Kde4GQz9wln/TrHVwI=";
+  vendorSha256 = "sha256-4Vz7Lioj6iLU7dbz/B2BSAgfaCl2MyC8MM9yiyWLi2o=";
 
   subPackages = [ "cmd/pgo" ];
 
diff --git a/pkgs/applications/networking/cluster/rancher/default.nix b/pkgs/applications/networking/cluster/rancher/default.nix
index 665b2091edc6e..7c219725d7c97 100644
--- a/pkgs/applications/networking/cluster/rancher/default.nix
+++ b/pkgs/applications/networking/cluster/rancher/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "rancher-cli";
-  version = "2.4.13";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     owner  = "rancher";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-tkAnbQP35P+ZEE/WTpjgjdmvt0eJ0esKJ+I21cWraEI=";
+    sha256 = "sha256-RfhcTo10nkHmKGwmS8WdjBioZhDIGSQ9vPPOv3Wg0Y4=";
   };
 
   ldflags = [
@@ -19,7 +19,7 @@ buildGoModule rec {
     "-static"
   ];
 
-  vendorSha256 = "sha256-agXztvvrMEoa6bo/bQr3qhinOSj7bFnZ4kzTx4F0VxQ=";
+  vendorSha256 = "sha256-Nay4YkUNXuH7vTK3ergILF0efCF1XyJZd2wBiT6fims=";
 
   postInstall = ''
     mv $out/bin/cli $out/bin/rancher
diff --git a/pkgs/applications/networking/cluster/sonobuoy/default.nix b/pkgs/applications/networking/cluster/sonobuoy/default.nix
index 7f960931c100c..c256f23dbc9c7 100644
--- a/pkgs/applications/networking/cluster/sonobuoy/default.nix
+++ b/pkgs/applications/networking/cluster/sonobuoy/default.nix
@@ -1,11 +1,11 @@
 { lib, buildGoModule, fetchFromGitHub }:
 
 # SHA of ${version} for the tool's help output. Unfortunately this is needed in build flags.
-let rev = "dc78b39a6ff0a1a94a29fa0fd72bcbe5d95004be";
+let rev = "237bd35906f5c4bed1f4de4aa58cc6a6a676d4fd";
 in
 buildGoModule rec {
   pname = "sonobuoy";
-  version = "0.55.0"; # Do not forget to update `rev` above
+  version = "0.55.1"; # Do not forget to update `rev` above
 
   ldflags =
     let t = "github.com/vmware-tanzu/sonobuoy";
@@ -20,7 +20,7 @@ buildGoModule rec {
     owner = "vmware-tanzu";
     repo = "sonobuoy";
     rev = "v${version}";
-    sha256 = "sha256-fMZju0Cd1JtVC+EKHwW3ZGsB2m0V3UIHsKQMbvf4i5Y=";
+    sha256 = "sha256-pHpnh+6O9yjnDA8u0jyLvqNQbXC+xz8fRn47aQNdOAo=";
   };
 
   vendorSha256 = "sha256-jPKCWTFABKRZCg6X5VVdrmOU/ZFc7yGD7R8RJrpcITg=";
diff --git a/pkgs/applications/networking/cluster/spark/default.nix b/pkgs/applications/networking/cluster/spark/default.nix
index af194afafa9a8..7876eb1c75233 100644
--- a/pkgs/applications/networking/cluster/spark/default.nix
+++ b/pkgs/applications/networking/cluster/spark/default.nix
@@ -46,7 +46,7 @@ let
 
       meta = {
         description      = "Apache Spark is a fast and general engine for large-scale data processing";
-        homepage         = "http://spark.apache.org";
+        homepage         = "https://spark.apache.org/";
         license          = lib.licenses.asl20;
         platforms        = lib.platforms.all;
         maintainers      = with maintainers; [ thoughtpolice offline kamilchm illustris ];
diff --git a/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix b/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
index 089f0b7bd974e..b5c732282b9a9 100644
--- a/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
+++ b/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     homepage =
       "https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html";
     description = "Amazon SSM Session Manager Plugin";
-    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
     license = licenses.unfree;
     maintainers = with maintainers; [ mbaillie ];
   };
diff --git a/pkgs/applications/networking/cluster/terraform-providers/default.nix b/pkgs/applications/networking/cluster/terraform-providers/default.nix
index 35493aa31b7aa..afcd55a2b54df 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -17,6 +17,7 @@ let
         inherit (data) owner repo rev sha256;
       };
       vendorSha256 = data.vendorSha256 or null;
+      deleteVendor = data.deleteVendor or false;
 
       # Terraform allow checking the provider versions, but this breaks
       # if the versions are not provided via file paths.
diff --git a/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix b/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
index 5e8b0bdc0ab05..a2ea7e8008ef4 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/libvirt/default.nix
@@ -13,9 +13,9 @@
 # https://github.com/dmacvicar/terraform-provider-libvirt/tree/main/examples
 
 let
-  sha256 = "sha256-8GGPd0+qdw7s4cr0RgLoS0Cu4C+RAuuboZzTyYN/kq8=";
-  vendorSha256 = "sha256-fpO2sGM+VUKLmdfJ9CQfTFnCfxVTK2m9Sirj9oerD/I=";
-  version = "0.6.11";
+  sha256 = "sha256-1l+ARrXHxtSdnQfYV/6gw3BYHVH8NN4pi+Ttk1nwF88=";
+  vendorSha256 = "sha256-OJa8pQgf5PlECZZkFV9fyCOdh6CrregY1BWycx7JPFE=";
+  version = "0.6.12";
 in buildGoModule {
   inherit version;
   inherit vendorSha256;
@@ -41,7 +41,7 @@ in buildGoModule {
   # Terraform allow checking the provider versions, but this breaks
   # if the versions are not provided via file paths.
   postBuild = "mv $GOPATH/bin/terraform-provider-libvirt{,_v${version}}";
-  
+
   ldflags = [ "-X main.version=${version}" ];
   passthru.provider-source-address = "registry.terraform.io/dmacvicar/libvirt";
 
@@ -50,7 +50,6 @@ in buildGoModule {
   meta = with lib; {
     homepage = "https://github.com/dmacvicar/terraform-provider-libvirt";
     description = "Terraform provider for libvirt";
-    platforms = platforms.linux;
     license = licenses.asl20;
     maintainers = with maintainers; [ mic92 ];
   };
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 2f2e143af7594..2dda8cee9ff31 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -10,43 +10,47 @@
     "owner": "vancluever",
     "provider-source-address": "registry.terraform.io/vancluever/acme",
     "repo": "terraform-provider-acme",
-    "rev": "v2.5.2",
-    "sha256": "0yk5yxx8vdfymxggydpzsb2a0iw4n8010wlprz23qg37gb2p26yf",
-    "vendorSha256": "04zrrn67w30ib0n5s4f31x3nl3h3xz2r522ldkbbx20jy5iabrkk",
-    "version": "2.5.2"
+    "rev": "v2.7.1",
+    "sha256": "0gnq8jm31v0q2a4v310cjrrdc7y17c9vi326c6x9cs3lgjvn27m2",
+    "vendorSha256": "1wssw8x8zlrgx51ij0ghhwsbyzfl2r1qy4aqv03v705xipil8yn3",
+    "version": "2.7.1"
   },
   "aiven": {
     "owner": "aiven",
     "provider-source-address": "registry.terraform.io/aiven/aiven",
     "repo": "terraform-provider-aiven",
-    "rev": "v2.1.14",
-    "sha256": "14bfdhn3daygj1v3lm9b3791sx2cd5h0panchpp39h6vrccrpmmk",
-    "vendorSha256": "1j09bfbld03yxq0vv9ld0xmw5axbza2bwlz01i1gl1v9dprlnbkc",
-    "version": "2.1.14"
+    "rev": "v2.4.0",
+    "sha256": "0m43d2iaa9kywzvlgcnsya1ma9k570j9q8cq9l6ldpc8565fqq0i",
+    "vendorSha256": "1lpfnpg4sivy8vilkxamdn1hyn6k61lxsfcq67afxsq8pcy6q44v",
+    "version": "2.4.0"
   },
   "akamai": {
-    "owner": "terraform-providers",
+    "owner": "akamai",
     "provider-source-address": "registry.terraform.io/akamai/akamai",
     "repo": "terraform-provider-akamai",
-    "rev": "v0.7.1",
-    "sha256": "0mg81147yz0m24xqljpw6v0ayhvb4fwf6qwaj7ii34hy2gjwv405",
-    "version": "0.7.1"
+    "rev": "v1.9.1",
+    "sha256": "17a3ml4h1b1480z9dzppig20jx9mgldnmpz8cn2x8qgzbpiqz3hs",
+    "vendorSha256": "0l50hy4cy360g6adbhhbl4x8hagma9zfb3yyzk6vbslal9m4kd6j",
+    "version": "1.9.1"
   },
   "alicloud": {
-    "owner": "terraform-providers",
+    "deleteVendor": true,
+    "owner": "aliyun",
+    "provider-source-address": "registry.terraform.io/aliyun/alicloud",
     "repo": "terraform-provider-alicloud",
-    "rev": "v1.86.0",
-    "sha256": "1hbv9ah7fd173sapwgsbg7790piwxw9zx90wfj5vz5b96ggbg28d",
-    "version": "1.86.0"
+    "rev": "v1.149.0",
+    "sha256": "0v9jhpvz33hzq09i8bxp1dif9jdypb5g2xy3d2g1mw4lgqrdpjix",
+    "vendorSha256": "18chs2723i2cxhhm649mz52pp6wrfqzxgk12zxq9idrhicchqnzg",
+    "version": "1.149.0"
   },
   "archive": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/archive",
     "repo": "terraform-provider-archive",
-    "rev": "v2.0.0",
-    "sha256": "1d5n379zyjp2srg43g78a8h33qwcpkfkj7c35idvbyydi35vzlpl",
+    "rev": "v2.2.0",
+    "sha256": "11iv6c0bnrp2s69h3b7f238jdnkcjgrihp8c46lhw393ki6aqfhk",
     "vendorSha256": null,
-    "version": "2.0.0"
+    "version": "2.2.0"
   },
   "arukas": {
     "owner": "terraform-providers",
@@ -80,28 +84,28 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/aws",
     "repo": "terraform-provider-aws",
-    "rev": "v3.56.0",
-    "sha256": "0fa61i172maanxmxz28mj7mkgrs9a5bs61mlvb0d5y97lv6pm2xg",
-    "vendorSha256": "1s22k4b2zq5n0pz6iqbqsf6f7chsbvkpdn432rvyshcryxlklfvl",
-    "version": "3.56.0"
+    "rev": "v3.70.0",
+    "sha256": "0133f1ngwa7x8w9zicfwmkj14rav9cvwk7qf7hdz0cfmyl4pj4x2",
+    "vendorSha256": "03k8xijzfawbdzc1wavw9k2z2zyffi1ysnqls412nzdyvxyl8xw4",
+    "version": "3.70.0"
   },
   "azuread": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/azuread",
     "repo": "terraform-provider-azuread",
-    "rev": "v1.4.0",
-    "sha256": "13y0h8af37gfsjhccbfsnj6kqcn61lr1znmsxipjr5h9ka5lc209",
+    "rev": "v2.13.0",
+    "sha256": "13337m20yxamdjpiw4kfi2ik4i5ivvr1fryygixpsj34lr21zxgk",
     "vendorSha256": null,
-    "version": "1.4.0"
+    "version": "2.13.0"
   },
   "azurerm": {
-    "owner": "terraform-providers",
+    "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/azurerm",
     "repo": "terraform-provider-azurerm",
-    "rev": "v2.58.0",
-    "sha256": "1zy3q5d63pz2rdczcs9xnxzasb2jbzhyg8nbk2r252mdnhx6h9vh",
+    "rev": "v2.90.0",
+    "sha256": "04bll0ygjgrqq18va97xi42p55fvlbgdc24m2i9amjhjbly5m7wn",
     "vendorSha256": null,
-    "version": "2.58.0"
+    "version": "2.90.0"
   },
   "azurestack": {
     "owner": "hashicorp",
@@ -179,10 +183,10 @@
     "owner": "cloudflare",
     "provider-source-address": "registry.terraform.io/cloudflare/cloudflare",
     "repo": "terraform-provider-cloudflare",
-    "rev": "v3.4.0",
-    "sha256": "1w37wkpb785jfqq91piclcsrhy3idpbmwb90n5y7rkgmm37ij7ij",
-    "vendorSha256": "004pb5xnvisq3j113i6qfvnh1j06nkpkgzav3wb08k0bl19b6jks",
-    "version": "3.4.0"
+    "rev": "v3.6.0",
+    "sha256": "1adpzk9vjllr18dq8kggxfabm3ax59m55ls98mkqh8lmgq96bh7d",
+    "vendorSha256": "0qby6fa1x5fapgcy5i35dwwlkb2ggws9sxcssshzssy0fzpb3k87",
+    "version": "3.6.0"
   },
   "cloudinit": {
     "owner": "hashicorp",
@@ -241,27 +245,37 @@
     "owner": "poseidon",
     "provider-source-address": "registry.terraform.io/poseidon/ct",
     "repo": "terraform-provider-ct",
-    "rev": "v0.8.0",
-    "sha256": "1mm86q3rl81dm2yfg2hdf88x8g5mhwwixrxgrffpkjvjqy42a8h7",
-    "version": "0.8.0"
+    "rev": "v0.9.1",
+    "sha256": "1d8q6ffh64v46r80vmbpsgmjw1vg6y26hpq3nz2h5mvqm0fqya9r",
+    "vendorSha256": "sha256-e/r59hnVRxrSqmQUwYZiN+YCCz+LbxUHGV2MFGcmJn4=",
+    "version": "0.9.1"
   },
   "datadog": {
     "owner": "DataDog",
     "provider-source-address": "registry.terraform.io/DataDog/datadog",
     "repo": "terraform-provider-datadog",
-    "rev": "v3.2.0",
-    "sha256": "1qrk40w81qzcmm52gr3ysrh077417cxyh4xy7igwdjfzl85z22mx",
-    "vendorSha256": "0iphsz6y9gajwmw5rj4yq65azx02ki093agqbqw49rnzdhc6jahr",
-    "version": "3.2.0"
+    "rev": "v3.7.0",
+    "sha256": "0fynbn0zbplslbvqz0jij4gm8q6ydg697x7nh5rzw89dy26l2f8g",
+    "vendorSha256": "0ngvbc9h3csl811g40q707flf4dl1hal95hpkxsvz7p71s3371q8",
+    "version": "3.7.0"
+  },
+  "dhall": {
+    "owner": "awakesecurity",
+    "provider-source-address": "registry.terraform.io/awakesecurity/dhall",
+    "repo": "terraform-provider-dhall",
+    "rev": "v0.0.2",
+    "sha256": "1fw83ic5wwhl5yk1asy8p4cxsdwclw639j7ki1xgpi284h6gmh5a",
+    "vendorSha256": "1wqbblqpb1lpbsn4k9yh43g19iw13q825l5i9wvy4w0w4nzz70p4",
+    "version": "0.0.2"
   },
   "digitalocean": {
     "owner": "digitalocean",
     "provider-source-address": "registry.terraform.io/digitalocean/digitalocean",
     "repo": "terraform-provider-digitalocean",
-    "rev": "v2.2.0",
-    "sha256": "14v9sh2qqdflzzp5mvkr7hd5c21hch8b8shxiwm0ar4qgdxq3wfy",
+    "rev": "v2.16.0",
+    "sha256": "0l67yd7l0s36lwp1hm44d77i7d5019j0ddjzf22aw8cv9xd5fhxw",
     "vendorSha256": null,
-    "version": "2.2.0"
+    "version": "2.16.0"
   },
   "dme": {
     "owner": "terraform-providers",
@@ -274,10 +288,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/dns",
     "repo": "terraform-provider-dns",
-    "rev": "v3.0.0",
-    "sha256": "160dbmg7xg7iyc70f66dphyiysrdbscwya2n28idi8wp5rjx8bid",
-    "vendorSha256": null,
-    "version": "3.0.0"
+    "rev": "v3.2.1",
+    "sha256": "1zynfwm7hl7pnldjr2nxj0a06j209r62g8zpkasj6zdjscy62rc8",
+    "vendorSha256": "sha256-D/CD3O/EHIa2GTwmIAZM3e3bFSLMXy4KhAGWeD4i7kI=",
+    "version": "3.2.1"
   },
   "dnsimple": {
     "owner": "terraform-providers",
@@ -311,10 +325,10 @@
     "owner": "phillbaker",
     "provider-source-address": "registry.terraform.io/phillbaker/elasticsearch",
     "repo": "terraform-provider-elasticsearch",
-    "rev": "v1.5.2",
-    "sha256": "1yfmlqab2jb679gbns04sdcjfihzsa0dfp7blhfk3v5zhgv1g7ys",
-    "vendorSha256": "15m9aqb2lqjv6g3k46zyha2m118wpbjrh4ap1bfps0fcxn20qvr5",
-    "version": "1.5.2"
+    "rev": "v2.0.0-beta.2",
+    "sha256": "1pr0vaag0b0i83381pcpxnq5bpjfj80bm6m483rivbaqbxr0dakw",
+    "vendorSha256": "1w92k895ikrqm9n1hf36wlh9nq278vifl3r14v0rxa8g9awizfdr",
+    "version": "2.0.0-beta.2"
   },
   "exoscale": {
     "owner": "terraform-providers",
@@ -327,19 +341,19 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/external",
     "repo": "terraform-provider-external",
-    "rev": "v2.1.0",
-    "sha256": "0xc3mj0d4yrr1952c5ywrx19ny1k2475grka9v2w7szdy6p2rkk5",
-    "vendorSha256": null,
-    "version": "2.1.0"
+    "rev": "v2.1.1",
+    "sha256": "1f92cg2fjwy2n5380fx9j6j2bnsnkcy18kq0bjbkwkh8kmshqjn8",
+    "vendorSha256": "031knr4axrcwisbhzs39faykzc1jgm9hx4rhqk46wim950gifl7g",
+    "version": "2.1.1"
   },
   "fastly": {
     "owner": "fastly",
     "provider-source-address": "registry.terraform.io/fastly/fastly",
     "repo": "terraform-provider-fastly",
-    "rev": "v0.34.0",
-    "sha256": "1za00gzmyxr6wfzzq92m3spi9563pbpjwj24sm95kj34l6mfwpyx",
+    "rev": "v0.39.0",
+    "sha256": "0sjjcz2z7qr1dmm6zzyi382cas4k5vdg0q7yxlpcqxqqrql636k8",
     "vendorSha256": null,
-    "version": "0.34.0"
+    "version": "0.39.0"
   },
   "flexibleengine": {
     "owner": "terraform-providers",
@@ -366,18 +380,19 @@
     "owner": "integrations",
     "provider-source-address": "registry.terraform.io/integrations/github",
     "repo": "terraform-provider-github",
-    "rev": "v4.18.0",
-    "sha256": "0vr7vxlpq1lbp85qm2084w7mqkz5yp7gxj5ln29plhm7xjpd87bp",
+    "rev": "v4.19.0",
+    "sha256": "17xpkcrklzbim91rxw4g4n8izk9qiw9q0vfivr467i32dv5mzc2d",
     "vendorSha256": null,
-    "version": "4.18.0"
+    "version": "4.19.0"
   },
   "gitlab": {
     "owner": "gitlabhq",
     "provider-source-address": "registry.terraform.io/gitlabhq/gitlab",
     "repo": "terraform-provider-gitlab",
-    "rev": "v3.4.0",
-    "sha256": "03k3xjhxw70n00dvwd0fkdshff9hnicrah6rm6zqmksb4mb7wji3",
-    "version": "3.4.0"
+    "rev": "v3.8.0",
+    "sha256": "0ha6lp0z3lqdk05fhggdgdz50dm7z6ksn648khp44n7in0c0c5pj",
+    "vendorSha256": "sha256-tkPenz+gkghIGMYF9iFj1TXUV3NGm/zYGQ3nP2hWdZA=",
+    "version": "3.8.0"
   },
   "google": {
     "owner": "hashicorp",
@@ -401,10 +416,10 @@
     "owner": "grafana",
     "provider-source-address": "registry.terraform.io/grafana/grafana",
     "repo": "terraform-provider-grafana",
-    "rev": "v1.12.0",
-    "sha256": "0jqm8ql8kams2rh90fwdmv9nnf4npzpxaagm9725nsf0iqn3qlhn",
-    "vendorSha256": "0pxd3sgpkry7gik6rgfl3cpgawhvgpb0sn1rkhdp9p11iwx7xxbi",
-    "version": "1.12.0"
+    "rev": "v1.17.0",
+    "sha256": "10mj1dvz7q3w250hvi3k4rj2x0mn592gw2xcy1j98x5ll6kx4ynd",
+    "vendorSha256": "1bhygkkgd3j971cg6wha57cyh4ggbkaihw6sn6p9jvdi1k1f63lw",
+    "version": "1.17.0"
   },
   "gridscale": {
     "owner": "terraform-providers",
@@ -424,10 +439,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/helm",
     "repo": "terraform-provider-helm",
-    "rev": "v2.1.2",
-    "sha256": "1385r9wk6mpb9fj53bkq586v8lw2310dim3kgj3pkrc1fssvwj0z",
+    "rev": "v2.4.1",
+    "sha256": "1lkkydjmm99qmj9bl498swdil909akznhvlqpwr4m67imwlzi1cy",
     "vendorSha256": null,
-    "version": "2.1.2"
+    "version": "2.4.1"
   },
   "heroku": {
     "owner": "terraform-providers",
@@ -440,10 +455,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/http",
     "repo": "terraform-provider-http",
-    "rev": "v2.0.0",
-    "sha256": "0x6a9qf819g16dj9inyvhwff67xy0ixyy70ck56lkidrldara444",
+    "rev": "v2.1.0",
+    "sha256": "1gih0ksrmhz82966c45ad2yv829pcgbvls92cll7r5haqgvx6k79",
     "vendorSha256": null,
-    "version": "2.0.0"
+    "version": "2.1.0"
   },
   "huaweicloud": {
     "owner": "terraform-providers",
@@ -472,10 +487,10 @@
     "owner": "IBM-Cloud",
     "provider-source-address": "registry.terraform.io/IBM-Cloud/ibm",
     "repo": "terraform-provider-ibm",
-    "rev": "v1.14.0",
-    "sha256": "1r3y7r0mnbzd7xk6d5f7pvysl3p8vl5i5phya89dfwrk2x9xyw21",
-    "vendorSha256": null,
-    "version": "1.14.0"
+    "rev": "v1.37.1",
+    "sha256": "1m9038ylv44xhgws0jrqdynj7kd97x9jgk1npqblbfv86fccwqxc",
+    "vendorSha256": "1a8zy023j3mcy3bswyrmllkgv61wiyxa1f7bfj8mxx3701rsb4ji",
+    "version": "1.37.1"
   },
   "icinga2": {
     "owner": "terraform-providers",
@@ -523,10 +538,10 @@
     "owner": "Mongey",
     "provider-source-address": "registry.terraform.io/Mongey/kafka",
     "repo": "terraform-provider-kafka",
-    "rev": "v0.3.3",
-    "sha256": "10il2mmsrk27zgzdkwn495sfhlad2nnc2xa7qzn7rlqzh92bb8rb",
-    "vendorSha256": "1gxx561s7jghiq6kqb2nns52bbcp0ks2dylrb1lvy7g2798cpspf",
-    "version": "0.3.3"
+    "rev": "v0.4.1",
+    "sha256": "0k1vrd2h7d01ypyhs2q1x83nnmiivglwsbrmwrj4k750x2wniygq",
+    "vendorSha256": "06n2xpic0lmb81rbkx39avz6zgnspmi6xv69kfzdvx7q3zpf7w4s",
+    "version": "0.4.1"
   },
   "kafka-connect": {
     "owner": "Mongey",
@@ -541,10 +556,10 @@
     "owner": "mrparkers",
     "provider-source-address": "registry.terraform.io/mrparkers/keycloak",
     "repo": "terraform-provider-keycloak",
-    "rev": "v3.1.1",
-    "sha256": "0qh0y1j3y5hzcr8h8wzralv7h8dmrg8jnjccz0fzcmhbkazfrs4p",
-    "vendorSha256": "0il4rvwa23zghrq0b8qrzgxyjy0211v9z2a4ln2xmlhcz0105zg8",
-    "version": "3.1.1"
+    "rev": "v3.6.0",
+    "sha256": "1lrnzfjrw0yn4hsklhikf75n6drra7nljlzxf2asfkfaiwgcik99",
+    "vendorSha256": "17v5h5s2vijfx5yxhindr30g8ilmz7hamkxhmlk0zg5qb80mzqc1",
+    "version": "3.6.0"
   },
   "ksyun": {
     "owner": "terraform-providers",
@@ -557,19 +572,19 @@
     "owner": "gavinbunney",
     "provider-source-address": "registry.terraform.io/gavinbunney/kubectl",
     "repo": "terraform-provider-kubectl",
-    "rev": "v1.10.0",
-    "sha256": "1w8g47dh77i7bhvxwysn7ldrcxl999sivxc7ws71ly5mnsljhhz0",
-    "vendorSha256": "1qrw2mg8ik2n6xlrnbcrgs9zhr9mwh1niv47kzhbp3mxvj5vdskk",
-    "version": "1.10.0"
+    "rev": "v1.13.1",
+    "sha256": "0jm6zri6j3wdgwg8wixfh6w8il3vnqmwlbpa6scbfa8zq71qi1a0",
+    "vendorSha256": "1ahxhb6ws1mq4x7nbww8di0b19z6669gn18scqipvxcvmsihfx4m",
+    "version": "1.13.1"
   },
   "kubernetes": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/kubernetes",
     "repo": "terraform-provider-kubernetes",
-    "rev": "v2.6.1",
-    "sha256": "164x0ddgqk3bj0za4h9kz69npgr4cw7w5hnl0pmxsgvsb04vwc0g",
+    "rev": "v2.7.1",
+    "sha256": "061zxphysj6spr1giwfnqgy3hh8s4j0lw10gs3cjkqxbpc4bbs7a",
     "vendorSha256": null,
-    "version": "2.6.1"
+    "version": "2.7.1"
   },
   "launchdarkly": {
     "owner": "terraform-providers",
@@ -633,10 +648,10 @@
     "owner": "equinix",
     "provider-source-address": "registry.terraform.io/equinix/metal",
     "repo": "terraform-provider-metal",
-    "rev": "v3.0.0",
-    "sha256": "08h1h0rpaxpidhslpq1i4bmc6i48rwcg7fsvwgqc202l5m7yk3wd",
+    "rev": "v3.2.1",
+    "sha256": "0j07rras4m6i668lkvvn3rq5l67qfzk9bmpijsfk3my0zsgv8nvw",
     "vendorSha256": null,
-    "version": "3.0.0"
+    "version": "3.2.1"
   },
   "metalcloud": {
     "owner": "terraform-providers",
@@ -693,10 +708,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/nomad",
     "repo": "terraform-provider-nomad",
-    "rev": "v1.4.15",
-    "sha256": "18rrvp7h27f51di8hajl2jb53v7wadqv4241rxdx1d180fas69k1",
-    "vendorSha256": "1y5wpilnqn17zbi88z23159gx2p57a9c10ajb7gn9isbxfdqj9mb",
-    "version": "1.4.15"
+    "rev": "v1.4.16",
+    "sha256": "11pw1ss4rk8hmfk0q9n8nim441ig0cgl1qxsjzcfsznkp5bb11rw",
+    "vendorSha256": "0b813dnkn15sdgvi4lh1l5fppgivzrcv5w56w0yf98vyy8wq7p0j",
+    "version": "1.4.16"
   },
   "ns1": {
     "owner": "terraform-providers",
@@ -732,10 +747,10 @@
     "owner": "terraform-providers",
     "provider-source-address": "registry.terraform.io/hashicorp/oci",
     "repo": "terraform-provider-oci",
-    "rev": "v4.49.0",
-    "sha256": "1s1gfnj3pi3q11jrdc2qxz9ccdk549nki0qkcnd0s7lxac8xzyfh",
+    "rev": "v4.57.0",
+    "sha256": "123k24pa5232j9yxhgn6ng36s46y3iv4xsqay9ry53g4pw6zcx9y",
     "vendorSha256": null,
-    "version": "4.49.0"
+    "version": "4.57.0"
   },
   "okta": {
     "owner": "terraform-providers",
@@ -776,10 +791,10 @@
     "owner": "terraform-provider-openstack",
     "provider-source-address": "registry.terraform.io/terraform-provider-openstack/openstack",
     "repo": "terraform-provider-openstack",
-    "rev": "v1.43.1",
-    "sha256": "0n6r88p3a6p8p0gjys2r1kcgkwq450jmyd741g45lxmaf3jz2ynb",
-    "vendorSha256": "0k4srszs8xgf8gz4fa7ysqyww52d7kvqy6zf22f1gkcjyiks9pl7",
-    "version": "1.43.1"
+    "rev": "v1.46.0",
+    "sha256": "1kkqfr0i33kw0qj3dp5knxm14p1ndy72n4chd36dhkydp4rm688f",
+    "vendorSha256": "1f77z6p8423gh8x7zbhn3pkd8a1nxd5pabc1043d66pbw9rxchax",
+    "version": "1.46.0"
   },
   "opentelekomcloud": {
     "owner": "terraform-providers",
@@ -806,10 +821,10 @@
     "owner": "ovh",
     "provider-source-address": "registry.terraform.io/ovh/ovh",
     "repo": "terraform-provider-ovh",
-    "rev": "v0.15.0",
-    "sha256": "1cmcfg9vq8cl98d5xambm5hr516b9pblm06y1py9v7msmfh3g09i",
+    "rev": "v0.16.0",
+    "sha256": "0vvxcm4ff6zw5ngwq9cia2ifjg8a2adyf66dyc2d8lavvfld22v9",
     "vendorSha256": null,
-    "version": "0.15.0"
+    "version": "0.16.0"
   },
   "packet": {
     "owner": "packethost",
@@ -843,10 +858,10 @@
     "owner": "cyrilgdn",
     "provider-source-address": "registry.terraform.io/cyrilgdn/postgresql",
     "repo": "terraform-provider-postgresql",
-    "rev": "v1.8.1",
-    "sha256": "07qaiy3vmz179am1qrxwvrk7xpraaa8g0hf49bj54pw7nkrmaixq",
+    "rev": "v1.14.0",
+    "sha256": "08z8i2y4qmq7zd50hjaiz6vazwb9yszm1c0mxc87sxayj0mcyl6r",
     "vendorSha256": null,
-    "version": "1.8.1"
+    "version": "1.14.0"
   },
   "powerdns": {
     "owner": "terraform-providers",
@@ -873,10 +888,10 @@
     "owner": "cyrilgdn",
     "provider-source-address": "registry.terraform.io/cyrilgdn/rabbitmq",
     "repo": "terraform-provider-rabbitmq",
-    "rev": "v1.5.1",
-    "sha256": "1yxvhzrp63wv5zbzj3ma2745g1marpj32b5h41ha27h0i42498ky",
-    "vendorSha256": null,
-    "version": "1.5.1"
+    "rev": "v1.6.0",
+    "sha256": "0src4d032z3mpv10fgya2izqm8qfdgr87rfhpnld1r90yvxqgnl2",
+    "vendorSha256": "sha256-wbnjAM2PYocAtRuY4fjLPGFPJfzsKih6Q0YCvFyMulQ=",
+    "version": "1.6.0"
   },
   "rancher": {
     "owner": "terraform-providers",
@@ -887,12 +902,12 @@
   },
   "rancher2": {
     "owner": "rancher",
-    "provider-source-address": "registry.terraform.io/hashicorp/rancher2",
+    "provider-source-address": "registry.terraform.io/rancher/rancher2",
     "repo": "terraform-provider-rancher2",
-    "rev": "v1.13.0",
-    "sha256": "0xczv9qsviryiw95yd6cl1nnb0daxs971fm733gfvwm36jvmyr89",
-    "vendorSha256": "0apy6qbmshfj4pzz9nqdhyk6h7l9qwrccz30q8ljl928pj49q04c",
-    "version": "1.13.0"
+    "rev": "v1.22.1",
+    "sha256": "0sx24riks78ywxsrhvc18w3wppz676zv1bjmzvm7r4q94miplxgl",
+    "vendorSha256": "0qdd1sl9r6rpp9jmxy3r5a064f8agjmlkrn241p4sd7j5cncxdk3",
+    "version": "1.22.1"
   },
   "random": {
     "owner": "hashicorp",
@@ -932,11 +947,13 @@
     "version": "1.15.0"
   },
   "secret": {
-    "owner": "tweag",
+    "owner": "numtide",
+    "provider-source-address": "registry.terraform.io/numtide/secret",
     "repo": "terraform-provider-secret",
-    "rev": "v1.1.1",
-    "sha256": "1pr0amzgv1i1lxniqlx8spdb73q522l7pm8a4m25hwy1kwby37sd",
-    "version": "1.1.1"
+    "rev": "v1.2.0",
+    "sha256": "1211vvcd00llajza3chw25h0sl43wl116ni4r251k00m6kb5nfwq",
+    "vendorSha256": null,
+    "version": "1.2.0"
   },
   "segment": {
     "owner": "ajbosco",
@@ -965,10 +982,10 @@
     "owner": "scottwinkler",
     "provider-source-address": "registry.terraform.io/scottwinkler/shell",
     "repo": "terraform-provider-shell",
-    "rev": "v1.6.0",
-    "sha256": "0jxb30vw93ibnwz8nfqapac7p9r2famzvsf2h4nfbmhkm6mpan4l",
-    "vendorSha256": "1p2ja6cw3dl7mx41svri6frjpgb9pxsrl7sq0rk1d3sviw0f88sg",
-    "version": "1.6.0"
+    "rev": "v1.7.10",
+    "sha256": "15pw8i1j47ppwrrh1gpfdkba54zab50ziqfqsc17pmv2gisq8d9d",
+    "vendorSha256": "0d76xpzfba4xxxafgw0k2dkm22xpzgsa2bf53jwrgwyfvjgvj41c",
+    "version": "1.7.10"
   },
   "signalfx": {
     "owner": "terraform-providers",
@@ -993,10 +1010,12 @@
   },
   "sops": {
     "owner": "carlpett",
+    "provider-source-address": "registry.terraform.io/carlpett/sops",
     "repo": "terraform-provider-sops",
-    "rev": "v0.5.1",
-    "sha256": "1x32w1qw46rwa8bjhkfn6ybr1dkbdqk0prlm0bnwn3gvvj0hc7kh",
-    "version": "0.5.1"
+    "rev": "v0.6.3",
+    "sha256": "1db67jcgpg279hq4vfk1xhql0msn9fy95m8fdi1cxv54y7zcxwf9",
+    "vendorSha256": "1haw17k6xg3n6hbx3pj8ysyhq35k3lis1qq65qnyskl62y1ia54h",
+    "version": "0.6.3"
   },
   "spotinst": {
     "owner": "terraform-providers",
@@ -1067,18 +1086,19 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/time",
     "repo": "terraform-provider-time",
-    "rev": "v0.6.0",
-    "sha256": "0fb81hisjicib9rzbn51jqfrchyjd3hzq98adnf22cbra8wlnxlm",
-    "version": "0.6.0"
+    "rev": "v0.7.2",
+    "sha256": "02b7l65civmphhdax05ajvbfm2ilqf421di1p3vj1zysz194wgl2",
+    "vendorSha256": "sha256-oBgHd0KTAdlnAZZZdT1FOzcfC0afdIKoDEIwx/rMxRk=",
+    "version": "0.7.2"
   },
   "tls": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/tls",
     "repo": "terraform-provider-tls",
-    "rev": "v3.0.0",
-    "sha256": "1p9d5wrr4xwf2i930zlcarm1zl8ysj3nyc6rrbhpxk04kr6ap0wz",
+    "rev": "v3.1.0",
+    "sha256": "0g2bgvw02ydwgb6blica5a139crnyp4hdhzxf433n3fflwyvl6r1",
     "vendorSha256": null,
-    "version": "3.0.0"
+    "version": "3.1.0"
   },
   "triton": {
     "owner": "terraform-providers",
@@ -1112,10 +1132,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/vault",
     "repo": "terraform-provider-vault",
-    "rev": "v2.24.1",
-    "sha256": "1xk14q06js774lqyylkbp53dnlsbgh3vi38mqqmndh80xigs6d99",
-    "vendorSha256": "1ksla455qfgxpk2dmq3pg52nyyw3v0bg6fm5s60j6cb0lzvjbq48",
-    "version": "2.24.1"
+    "rev": "v3.1.1",
+    "sha256": "15fwc0sfdpcl85194gq6r97y18ggh61wbyh6lq7nrprwn2xvjch9",
+    "vendorSha256": "1q2yfmg6g3bl6h0vzanz7874xc4g7ggmysh2dqryijvr4kccnari",
+    "version": "3.1.1"
   },
   "vcd": {
     "owner": "terraform-providers",
@@ -1142,10 +1162,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/vsphere",
     "repo": "terraform-provider-vsphere",
-    "rev": "v2.0.1",
-    "sha256": "0ah3bi4zpg8j59v4bj9a8vyknpnyl1g8bx4qyfwwz4gnqp9m4anr",
+    "rev": "v2.0.2",
+    "sha256": "0ncl2vs6gcx9wm710hg575hqinkg45ds73n209xwdbpxlbv8qb7m",
     "vendorSha256": null,
-    "version": "2.0.1"
+    "version": "2.0.2"
   },
   "vthunder": {
     "owner": "terraform-providers",
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 036ee7d8243f0..92b52770e3355 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -27,6 +27,8 @@ let
         inherit sha256;
       };
 
+      ldflags = [ "-s" "-w" ];
+
       postConfigure = ''
         # speakeasy hardcodes /bin/stty https://github.com/bgentry/speakeasy/issues/22
         substituteInPlace vendor/github.com/bgentry/speakeasy/speakeasy_unix.go \
@@ -194,10 +196,10 @@ rec {
     passthru = { inherit plugins; };
   };
 
-  terraform_1_0 = mkTerraform {
-    version = "1.0.11";
-    sha256 = "0k05s4zm16vksq21f1q00y2lzfgi5fhs1ygydm8jk0srs9x8ask7";
-    vendorSha256 = "1brgghl7fb26va4adix443rl1dkjaqrr4jkknxjkcaps0knqp172";
+  terraform_1 = mkTerraform {
+    version = "1.1.2";
+    sha256 = "sha256-8M/hs4AiApe9C19VnVhWYYOkKqXbv3aREUTNfExTDww=";
+    vendorSha256 = "sha256-inPNvNUcil9X0VQ/pVgZdnnmn9UCfEz7qXiuKDj8RYM=";
     patches = [ ./provider-path-0_15.patch ];
     passthru = { inherit plugins; };
   };
@@ -211,7 +213,7 @@ rec {
       mainTf = writeText "main.tf" ''
         resource "random_id" "test" {}
       '';
-      terraform = terraform_1_0.withPlugins (p: [ p.random ]);
+      terraform = terraform_1.withPlugins (p: [ p.random ]);
       test =
         runCommand "terraform-plugin-test" { buildInputs = [ terraform ]; } ''
           set -e
diff --git a/pkgs/applications/networking/cluster/terragrunt/default.nix b/pkgs/applications/networking/cluster/terragrunt/default.nix
index f2ae9a9490aa3..3af96d828ad9d 100644
--- a/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "terragrunt";
-  version = "0.35.5";
+  version = "0.35.16";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-VUB1zZwRZ+TUFDcq/lBB9eAeM7d5zWhFy7nxzH5S6oc=";
+    sha256 = "sha256-m32QhQUG3Dkh0odfqYhNmJ5Rrt0qf5wCvxePPusyRyI=";
   };
 
-  vendorSha256 = "sha256-y84EFmoJS4SeA5YFIVFU0iWa5NnjU5yvOj7OFE+jGN0=";
+  vendorSha256 = "sha256-tNgEepKqwiqXhmoRCIEg7VJw7Y0TGt+R+6dZzd8aECg=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/tfswitch/default.nix b/pkgs/applications/networking/cluster/tfswitch/default.nix
index 404d40e89f8d9..c4cd204f9fe7c 100644
--- a/pkgs/applications/networking/cluster/tfswitch/default.nix
+++ b/pkgs/applications/networking/cluster/tfswitch/default.nix
@@ -1,16 +1,16 @@
 { buildGoModule, lib, fetchFromGitHub }:
 buildGoModule rec {
   pname = "tfswitch";
-  version = "0.12.1168";
+  version = "0.13.1201";
 
   src = fetchFromGitHub {
     owner = "warrensbox";
     repo = "terraform-switcher";
     rev = version;
-    sha256 = "sha256-BKqbxja19JxAr9/Cy7LpbZTJrt/pYfwtCbZMY0wwvZc=";
+    sha256 = "sha256-gJa8oVdgerDi0GdTSNus5rHLsFuzg8ZqVeKTMuPXu0o=";
   };
 
-  vendorSha256 = "sha256-y8T1MV2xHr9n7XWmB4LikIzyGx+0XKhsxmatnCZFN9I=";
+  vendorSha256 = "sha256-tp2Bv/vcHCuB/HCZLfL/zOm/UfPt6XXGE7johrjL3cs=";
 
   # Disable tests since it requires network access and relies on the
   # presence of release.hashicorp.com
diff --git a/pkgs/applications/networking/cluster/tilt/default.nix b/pkgs/applications/networking/cluster/tilt/default.nix
index cd8d1f703d2d2..dbdf06771b46a 100644
--- a/pkgs/applications/networking/cluster/tilt/default.nix
+++ b/pkgs/applications/networking/cluster/tilt/default.nix
@@ -5,13 +5,13 @@ buildGoModule 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.22.15";
+  version = "0.23.4";
 
   src = fetchFromGitHub {
     owner  = "tilt-dev";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "sha256-Aim80bg1vGRkiIlVqDa4qOFQ+mwSOL75HOPYQYovYlE=";
+    sha256 = "sha256-SWofXsbkuirPvqgU639W8IQklafLKbThoZUzOzfYwdQ=";
   };
   vendorSha256 = null;
 
diff --git a/pkgs/applications/networking/cluster/velero/default.nix b/pkgs/applications/networking/cluster/velero/default.nix
index ecef3650683e8..d373316b19ff8 100644
--- a/pkgs/applications/networking/cluster/velero/default.nix
+++ b/pkgs/applications/networking/cluster/velero/default.nix
@@ -2,26 +2,23 @@
 
 buildGoModule rec {
   pname = "velero";
-  # When updating, change the commit underneath
-  version = "1.7.0";
-  commit = "9e52260568430ecb77ac38a677ce74267a8c2176";
+  version = "1.7.1";
 
 
   src = fetchFromGitHub {
     owner = "vmware-tanzu";
     repo = "velero";
     rev = "v${version}";
-    sha256 = "sha256-n5Rk+Fyb6yAI5sRZi+WE1KyQZyGryZSP4yd/gmmsQxw=";
+    sha256 = "sha256-Jz3Tp5FqpmPuBscRB0KleQxtCvB43qmeLZNtGPnjuL0=";
   };
 
   ldflags = [
     "-s" "-w"
     "-X github.com/vmware-tanzu/velero/pkg/buildinfo.Version=${version}"
-    "-X github.com/vmware-tanzu/velero/pkg/buildinfo.GitSHA=${commit}"
     "-X github.com/vmware-tanzu/velero/pkg/buildinfo.GitTreeState=clean"
   ];
 
-  vendorSha256 = "sha256-qsRbwLKNnuQRIsx0+sfOfR2OQ0+el0vptxz7mMew7zY=";
+  vendorSha256 = "sha256-fX9FeoIkxxSi3dl5W2MZLz5vN1VHkPNpTBGRxGP5Qx8=";
 
   excludedPackages = [ "issue-template-gen" "crd-gen" "release-tools" "velero-restic-restore-helper" "v1" "v1beta1" ];
 
diff --git a/pkgs/applications/networking/dnscontrol/default.nix b/pkgs/applications/networking/dnscontrol/default.nix
index ef956c4f8b898..92421b33a21c7 100644
--- a/pkgs/applications/networking/dnscontrol/default.nix
+++ b/pkgs/applications/networking/dnscontrol/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dnscontrol";
-  version = "3.12.0";
+  version = "3.13.1";
 
   src = fetchFromGitHub {
     owner = "StackExchange";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-g3Yb0LAa9Ukp32p0OoXxjmw9RQwyVpi0KXQBIpKunbU=";
+    sha256 = "sha256-S3/uxtrCFU9HbNhYKqOYy1ytSVi2DU/lXIlhBgNnaPg=";
   };
 
-  vendorSha256 = "sha256-RBe9XzvdgE5XWBTUhvAokElNwARgwVhkMwPmdKUroC0=";
+  vendorSha256 = "sha256-OwiZL+MBmAFtV8Vg2Wl9yAeTG3AzMSmCjefxObU7lfQ=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix b/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix
new file mode 100644
index 0000000000000..9bb34ffbbd709
--- /dev/null
+++ b/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, lib, fetchurl, unzip, makeDesktopItem, copyDesktopItems
+, makeWrapper, electron }:
+
+stdenv.mkDerivation rec {
+  pname = "indigenous-desktop";
+  version = "1.3.0";
+
+  src = fetchurl {
+    url = "https://github.com/marksuth/indigenous-desktop/releases/download/v${version}/indigenous-linux-x64-${version}.zip";
+    sha256 = "sha256-1nqj9N5RQE0PogJSULu75CTVLHeQsHIimtFXSCP6SPA=";
+  };
+
+  nativeBuildInputs = [
+    copyDesktopItems
+    makeWrapper
+    unzip
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = pname;
+      exec = "indigenous-desktop";
+      icon = "indigenous-desktop";
+      comment = meta.description;
+      desktopName = "Indigenous";
+      genericName = "Feed Reader";
+    })
+  ];
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/opt/indigenous $out/share/indigenous $out/share/pixmaps
+    cp -r ./ $out/opt/indigenous
+    mv $out/opt/indigenous/{locales,resources} $out/share/indigenous
+    mv $out/share/indigenous/resources/app/images/icon.png $out/share/pixmaps/indigenous-desktop.png
+
+    makeWrapper ${electron}/bin/electron $out/bin/indigenous-desktop \
+      --add-flags $out/share/indigenous/resources/app
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "IndieWeb app with extensions for sharing to/reading from micropub endpoints";
+    homepage = "https://indigenous.realize.be/indigenous-desktop";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ wolfangaukang ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/networking/feedreaders/newsboat/default.nix b/pkgs/applications/networking/feedreaders/newsboat/default.nix
index 65835aa10cf3f..e746f115043b2 100644
--- a/pkgs/applications/networking/feedreaders/newsboat/default.nix
+++ b/pkgs/applications/networking/feedreaders/newsboat/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "newsboat";
-  version = "2.25";
+  version = "2.26";
 
   src = fetchFromGitHub {
     owner = "newsboat";
     repo = "newsboat";
     rev = "r${version}";
-    sha256 = "sha256-TAnGDxTKYl4niouS6nYdJDaIngAPsPHr9Bw9L3cR2Xk=";
+    hash = "sha256-VFeKj8X7gEyxsdsOK6UYJ6xB24gsuzb1Wm4GK5AJCHc=";
   };
 
-  cargoSha256 = "sha256-MxoyYBLbrCuLVa0p8JrYKSKu2oFPnXMwab42lhhAu48=";
+  cargoHash = "sha256-pr/Vzm321/uX4fIGt3kuWrtcgsnDRbeK3AvNO19NDwQ=";
 
   # TODO: Check if that's still needed
   postPatch = lib.optionalString stdenv.isDarwin ''
@@ -34,9 +34,6 @@ rustPlatform.buildRustPackage rec {
     make prefix="$out"
   '';
 
-  # TODO: Check if that's still needed
-  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin " -Wno-error=format-security";
-
   # https://github.com/NixOS/nixpkgs/pull/98471#issuecomment-703100014 . We set
   # these for all platforms, since upstream's gettext crate behavior might
   # change in the future.
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index cfb105943ef4a..950dd24f3309f 100644
--- a/pkgs/applications/networking/flexget/default.nix
+++ b/pkgs/applications/networking/flexget/default.nix
@@ -2,14 +2,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "flexget";
-  version = "3.1.153";
+  version = "3.2.7";
 
   # Fetch from GitHub in order to use `requirements.in`
   src = fetchFromGitHub {
     owner = "flexget";
     repo = "flexget";
     rev = "v${version}";
-    sha256 = "sha256-xGGSm6IXTh89wSt0/DNgbe1mFBNuG9x3YLerJcBYMmI=";
+    sha256 = "12nj1jcxbkpc0x59rg59fsryignpppsx0wiwncdv6fzr58pdhd3v";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/gmailctl/default.nix b/pkgs/applications/networking/gmailctl/default.nix
index 8d0b9915d0d7d..ff620989f9de8 100644
--- a/pkgs/applications/networking/gmailctl/default.nix
+++ b/pkgs/applications/networking/gmailctl/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "gmailctl";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "mbrt";
     repo = "gmailctl";
     rev = "v${version}";
-    sha256 = "sha256-1gOixuOvPHEjnnDNNda9sktnhffovOfeG4XDrLRRMlE=";
+    sha256 = "sha256-JuE8+OW+qM6tir4A25tN2GTXQIkcKVE4uKbZNSTcNlA=";
   };
 
   nativeBuildInputs = [
@@ -26,7 +26,7 @@ buildGoModule rec {
       --zsh <($out/bin/gmailctl completion zsh)
   '';
 
-  vendorSha256 = "sha256-Yv3OGHFOmenst/ujUgvCaSEjwwBf3W9n+55ztVhuWjo=";
+  vendorSha256 = "sha256-zEWEcv6G/9tmM6/+lhMFkyew3r/pvQRjvh74BENTYI4=";
 
   doCheck = false;
 
@@ -34,7 +34,6 @@ buildGoModule rec {
     description = "Declarative configuration for Gmail filters";
     homepage = "https://github.com/mbrt/gmailctl";
     license = licenses.mit;
-    maintainers = [ maintainers.doronbehar ];
-    platforms = platforms.unix;
+    maintainers = with maintainers; [ doronbehar SuperSandro2000 ];
   };
 }
diff --git a/pkgs/applications/networking/gopher/sacc/default.nix b/pkgs/applications/networking/gopher/sacc/default.nix
index 64f58daec7659..5252fe59c0984 100644
--- a/pkgs/applications/networking/gopher/sacc/default.nix
+++ b/pkgs/applications/networking/gopher/sacc/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sacc";
-  version = "1.04";
+  version = "1.05";
 
   src = fetchurl {
-    url = "ftp://bitreich.org/releases/sacc/sacc-${version}.tgz";
-    sha512 = "1rjxs77a5k2mgpwr2ln1czn64fmss9yw59g0k60r25c2ny2la6ddfcl5zclawcikk346na6m96jrfwssmka0axr2spwpl61wm0lijnk";
+    url = "ftp://bitreich.org/releases/sacc/sacc-${version}.tar.gz";
+    sha512 = "080vpacipdis396lrw3fxc1z7h2d0njm2zi63kvlk0n2m1disv97c968zx8dp76kfw1s03nvvr6v3vnpfkkywiz1idjc92s5rgcbsk1";
   };
 
   inherit patches;
diff --git a/pkgs/applications/networking/hydroxide/default.nix b/pkgs/applications/networking/hydroxide/default.nix
index 451449420bdff..e8299a8899aba 100644
--- a/pkgs/applications/networking/hydroxide/default.nix
+++ b/pkgs/applications/networking/hydroxide/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "hydroxide";
-  version = "0.2.20";
+  version = "0.2.21";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-VTUpiuSsI795XDSxJJvLQlVNPLiekHyKcCazRBky9nU=";
+    sha256 = "sha256-fF+pQnqAWBktc4NdQFTHeB/sEg5bPTxXtdL1x5JuXU8=";
   };
 
-  vendorSha256 = "sha256-AuZnHpJ1Xel/L9dG3ATdXnoTeUxtieah/ea+0svw3oA=";
+  vendorSha256 = "sha256-M5QlhF2Cj1jn5NNiKj1Roh9+sNCWxQEb4vbtsDfapWY=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/ids/suricata/default.nix b/pkgs/applications/networking/ids/suricata/default.nix
index 5d24f589abca1..4edc97a0640d2 100644
--- a/pkgs/applications/networking/ids/suricata/default.nix
+++ b/pkgs/applications/networking/ids/suricata/default.nix
@@ -34,11 +34,11 @@
 in
 stdenv.mkDerivation rec {
   pname = "suricata";
-  version = "6.0.3";
+  version = "6.0.4";
 
   src = fetchurl {
     url = "https://www.openinfosecfoundation.org/download/${pname}-${version}.tar.gz";
-    sha256 = "sha256-2vE0uy18mAA16a5g96rzEzI6gJNAAJ8m5IEQzN6B9gI=";
+    sha256 = "sha256-qPGX4z0WeGieu/e8Gr6Ek0xGXSLFBMR8LH6bdKoELQ0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix b/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix
index bab9d12123df6..a150014daa7cd 100644
--- a/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix
+++ b/pkgs/applications/networking/instant-messengers/SkypeExport/default.nix
@@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/Temptin/SkypeExport";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ yegortimoshenko ];
+    maintainers = with maintainers; [ yana ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/alfaview/default.nix b/pkgs/applications/networking/instant-messengers/alfaview/default.nix
new file mode 100644
index 0000000000000..769636ab7976a
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/alfaview/default.nix
@@ -0,0 +1,78 @@
+{ stdenv, lib, fetchurl, dpkg, autoPatchelfHook, makeWrapper
+, alsa-lib, dbus, fontconfig, freetype, glib, gst_all_1, libGL
+, libinput, libpulseaudio, libsecret, libtiff, libxkbcommon
+, mesa, openssl, systemd, xorg }:
+
+stdenv.mkDerivation rec {
+  pname = "alfaview";
+  version = "8.33.0";
+
+  src = fetchurl {
+    url = "https://production-alfaview-assets.alfaview.com/stable/linux/${pname}_${version}.deb";
+    sha256 = "sha256-L6vdPdWwNnN09hwzzw9woPRhGIsBKh7iY0cbI2oJX4Q=";
+  };
+
+  nativeBuildInputs = [
+    dpkg
+    makeWrapper
+    autoPatchelfHook
+  ];
+
+  buildInputs = [
+    alsa-lib
+    dbus
+    fontconfig
+    freetype
+    glib
+    gst_all_1.gst-plugins-bad
+    gst_all_1.gst-plugins-base
+    libGL
+    libinput
+    libpulseaudio
+    libsecret
+    libtiff
+    libxkbcommon
+    mesa
+    openssl
+    stdenv.cc.cc
+    systemd
+    xorg.libX11
+    xorg.xcbutilwm
+    xorg.xcbutilimage
+    xorg.xcbutilkeysyms
+    xorg.xcbutilrenderutil
+  ];
+
+  libPath = lib.makeLibraryPath buildInputs;
+
+  dontBuild = true;
+  dontConfigure = true;
+
+  unpackPhase = ''
+    dpkg-deb -x ${src} ./
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mv usr $out
+    mv opt $out
+
+    substituteInPlace $out/share/applications/alfaview.desktop \
+      --replace "/opt/alfaview" "$out/bin" \
+      --replace "/usr/share/pixmaps/alfaview_production.png" alfaview_production
+
+    makeWrapper $out/opt/alfaview/alfaview $out/bin/alfaview \
+      --prefix LD_LIBRARY_PATH : ${libPath}
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Video-conferencing application, specialized in virtual online meetings, seminars, training sessions and conferences";
+    homepage = "https://alfaview.com";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ wolfangaukang ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix b/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix
index f1b2df658a6b6..abd50868e0304 100644
--- a/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bitlbee-mastodon/default.nix
@@ -3,12 +3,12 @@
 with lib;
 stdenv.mkDerivation rec {
   pname = "bitlbee-mastodon";
-  version = "1.4.4";
+  version = "1.4.5";
 
   src = fetchgit {
     url = "https://alexschroeder.ch/cgit/bitlbee-mastodon";
     rev = "v${version}";
-    sha256 = "0a8196pyr6bjnqg82zn7jdhiv7xsg4npbpzalla1i2h99j30q8pk";
+    sha256 = "sha256-8vmq/YstuBYUxe00P4NrxD/eMYI++R9uvn1sCcMTr7I=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
index bb87bd38dc6be..97530b722fdb3 100644
--- a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
@@ -44,11 +44,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "bluejeans";
-  version = "2.24.0.89";
+  version = "2.25.0.78";
 
   src = fetchurl {
     url = "https://swdl.bluejeans.com/desktop-app/linux/${getFirst 3 version}/BlueJeans_${version}.rpm";
-    sha256 = "sha256-rneX8ys/oKfVLavAZk5RJouOZkVsp+9BIAReSeYiKJc=";
+    sha256 = "sha256-Xk9iU7mNm3YlXKsmf6yPqd1YAklsFOWu+04Llb+2yWQ=";
   };
 
   nativeBuildInputs = [ rpmextract makeWrapper ];
diff --git a/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix b/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
index cd29268bec68f..fa795a11c2aef 100644
--- a/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/deltachat-desktop/default.nix
@@ -16,45 +16,41 @@
 
 let
   libdeltachat' = libdeltachat.overrideAttrs (old: rec {
-    version = "1.60.0";
+    version = "1.70.0";
     src = fetchFromGitHub {
       owner = "deltachat";
       repo = "deltachat-core-rust";
       rev = version;
-      sha256 = "1agm5xyaib4ynmw4mhgmkhh4lnxs91wv0q9i1zfihv2vkckfm2s2";
+      hash = "sha256-702XhFWvFG+g++3X97sy6C5DMNWogv1Xbr8QPR8QyLo=";
     };
     cargoDeps = rustPlatform.fetchCargoTarball {
       inherit src;
       name = "${old.pname}-${version}";
-      sha256 = "09d3mw2hb1gmqg7smaqwnfm7izw40znl0h1dz7s2imms2cnkjws1";
+      hash = "sha256-MiSGJMXe8vouv4XEHXq274FHEvBMtd7IX6DyNJIWYeU=";
     };
-    patches = [
-      # https://github.com/deltachat/deltachat-core-rust/pull/2589
-      (fetchpatch {
-        url = "https://github.com/deltachat/deltachat-core-rust/commit/408467e85d04fbbfd6bed5908d84d9e995943487.patch";
-        sha256 = "1j2ywaazglgl6370js34acrg0wrh0b7krqg05dfjf65n527lzn59";
-      })
-      ./no-static-lib.patch
-      # https://github.com/deltachat/deltachat-core-rust/pull/2660
-      (fetchpatch {
-        url = "https://github.com/deltachat/deltachat-core-rust/commit/8fb5e038a97d8ae68564c885d61b93127a68366d.patch";
-        sha256 = "088pzfrrkgfi4646dc72404s3kykcpni7hgkppalwlzg0p4is41x";
-      })
-    ];
   });
   electronExec = if stdenv.isDarwin then
     "${electron}/Applications/Electron.app/Contents/MacOS/Electron"
   else
     "${electron}/bin/electron";
+  esbuild' = esbuild.overrideAttrs (old: rec {
+    version = "0.12.29";
+    src = fetchFromGitHub {
+      owner = "evanw";
+      repo = "esbuild";
+      rev = "v${version}";
+      hash = "sha256-oU++9E3StUoyrMVRMZz8/1ntgPI62M1NoNz9sH/N5Bg=";
+    };
+  });
 in nodePackages.deltachat-desktop.override rec {
   pname = "deltachat-desktop";
-  version = "1.22.2";
+  version = "1.26.0";
 
   src = fetchFromGitHub {
     owner = "deltachat";
     repo = "deltachat-desktop";
     rev = "v${version}";
-    sha256 = "0in6w2vl4ypgjb9gfhyh77vg05ni5p3z24lah7wvvhywcpv1jp2n";
+    hash = "sha256-IDyGV2+/+wHp5N4G10y5OHvw2yoyVxWx394xszIYoj4=";
   };
 
   nativeBuildInputs = [
@@ -72,6 +68,7 @@ in nodePackages.deltachat-desktop.override rec {
   ];
 
   ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
+  ESBUILD_BINARY_PATH = "${esbuild'}/bin/esbuild";
   USE_SYSTEM_LIBDELTACHAT = "true";
   VERSION_INFO_GIT_REF = src.rev;
 
diff --git a/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json b/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
index 41bcdeca18646..fe9f024052c43 100644
--- a/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
+++ b/pkgs/applications/networking/instant-messengers/deltachat-desktop/package.json
@@ -1,24 +1,24 @@
 {
   "name": "deltachat-desktop",
-  "version": "1.22.2",
+  "version": "1.26.0",
   "dependencies": {
     "@blueprintjs/core": "^3.22.3",
+    "@deltachat/message_parser_wasm": "^0.1.0",
     "@mapbox/geojson-extent": "^1.0.0",
     "application-config": "^1.0.1",
     "classnames": "^2.3.1",
     "debounce": "^1.2.0",
-    "deltachat-node": "1.60.0",
+    "deltachat-node": "1.70.0",
     "emoji-js-clean": "^4.0.0",
     "emoji-mart": "^3.0.0",
     "emoji-regex": "^9.2.2",
     "error-stack-parser": "^2.0.6",
-    "filesize": "^6.1.0",
+    "filesize": "^8.0.6",
     "mapbox-gl": "^1.12.0",
     "mime-types": "^2.1.31",
     "moment": "^2.27.0",
     "node-fetch": "^2.6.1",
     "path-browserify": "^1.0.1",
-    "punycode": "^2.1.1",
     "rc": "^1.2.8",
     "react": "^17.0.2",
     "react-dom": "^17.0.2",
@@ -28,15 +28,14 @@
     "react-virtualized-auto-sizer": "^1.0.5",
     "react-window": "^1.8.6",
     "react-window-infinite-loader": "^1.0.7",
-    "simple-markdown": "^0.7.1",
     "source-map-support": "^0.5.19",
     "tempy": "^0.3.0",
-    "url-parse": "^1.4.7",
+    "url-parse": "^1.5.3",
     "use-debounce": "^3.3.0",
     "@babel/core": "^7.7.7",
-    "@types/debounce": "^1.2.0",
     "@babel/preset-env": "^7.7.7",
     "@babel/preset-react": "^7.7.4",
+    "@types/debounce": "^1.2.0",
     "@types/emoji-mart": "^3.0.2",
     "@types/mapbox-gl": "^0.54.5",
     "@types/mime-types": "^2.1.0",
@@ -50,9 +49,10 @@
     "@types/react-window-infinite-loader": "^1.0.4",
     "@types/url-parse": "^1.4.3",
     "electron": "^13.1.6",
+    "esbuild": "^0.12.15",
     "glob-watcher": "^5.0.5",
     "sass": "^1.26.5",
-    "typescript": "^3.9.7",
+    "typescript": "^4.4.4",
     "xml-js": "^1.6.8"
   }
 }
diff --git a/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh b/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh
index dbe249d56dae6..3f14f01b3604e 100755
--- a/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh
+++ b/pkgs/applications/networking/instant-messengers/deltachat-desktop/update.sh
@@ -20,16 +20,16 @@ if [ "$ver" = "$old_ver" ]; then
 fi
 echo "$old_ver -> $ver"
 
-sha256=$(nix-prefetch -f "$nixpkgs" deltachat-desktop --rev "$rev")
+hash=$(nix-prefetch -f "$nixpkgs" deltachat-desktop --rev "$rev")
 tac default.nix \
     | sed -e "0,/version = \".*\"/s//version = \"$ver\"/" \
-          -e "0,/sha256 = \".*\"/s//sha256 = \"$sha256\"/" \
+          -e "0,/hash = \".*\"/s//hash = \"${hash//\//\\/}\"/" \
     | tac \
     | sponge default.nix
 
 src=$(nix-build "$nixpkgs" -A deltachat-desktop.src --no-out-link)
 
-jq '{ name, version, dependencies: (.dependencies + (.devDependencies | del(.["@typescript-eslint/eslint-plugin","@typescript-eslint/parser","esbuild","electron-builder","electron-devtools-installer","electron-notarize","esbuild","eslint","eslint-config-prettier","eslint-plugin-react-hooks","hallmark","prettier","tape","testcafe","testcafe-browser-provider-electron","testcafe-react-selectors","walk"]))) }' \
+jq '{ name, version, dependencies: (.dependencies + (.devDependencies | del(.["@typescript-eslint/eslint-plugin","@typescript-eslint/parser","electron-builder","electron-devtools-installer","electron-notarize","eslint","eslint-config-prettier","eslint-plugin-react-hooks","hallmark","prettier","tape","testcafe","testcafe-browser-provider-electron","testcafe-react-selectors","walk"]))) }' \
     "$src/package.json" > package.json.new
 
 if cmp --quiet package.json{.new,}; then
diff --git a/pkgs/applications/networking/instant-messengers/dino/default.nix b/pkgs/applications/networking/instant-messengers/dino/default.nix
index 18f73de2fd5b0..5e362784c811b 100644
--- a/pkgs/applications/networking/instant-messengers/dino/default.nix
+++ b/pkgs/applications/networking/instant-messengers/dino/default.nix
@@ -5,7 +5,7 @@
 , libnotify, libsoup, libgee
 , librsvg, libsignal-protocol-c
 , libgcrypt
-, epoxy
+, libepoxy
 , at-spi2-core
 , sqlite
 , dbus
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
     libgcrypt
     libsoup
     pcre
-    epoxy
+    libepoxy
     at-spi2-core
     dbus
     icu
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
index 235955ac14e53..88ac40b4134fe 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
@@ -2,7 +2,7 @@
   "name": "element-desktop",
   "productName": "Element",
   "main": "lib/electron-main.js",
-  "version": "1.9.4",
+  "version": "1.9.7",
   "description": "A feature-rich client for Matrix.org",
   "author": "Element",
   "repository": {
@@ -54,7 +54,7 @@
     "@types/minimist": "^1.2.1",
     "@typescript-eslint/eslint-plugin": "^4.17.0",
     "@typescript-eslint/parser": "^4.17.0",
-    "allchange": "^1.0.5",
+    "allchange": "^1.0.6",
     "asar": "^2.0.1",
     "chokidar": "^3.5.2",
     "electron": "13.5",
@@ -83,7 +83,7 @@
   },
   "build": {
     "appId": "im.riot.app",
-    "electronVersion": "13.5.1",
+    "electronVersion": "13.5.2",
     "files": [
       "package.json",
       {
diff --git a/pkgs/applications/networking/instant-messengers/element/pin.json b/pkgs/applications/networking/instant-messengers/element/pin.json
index 6d47eb9fe7118..c711956791ac9 100644
--- a/pkgs/applications/networking/instant-messengers/element/pin.json
+++ b/pkgs/applications/networking/instant-messengers/element/pin.json
@@ -1,6 +1,6 @@
 {
-  "version": "1.9.4",
-  "desktopSrcHash": "sTY55DWeEKV3Ma5DTr4W6K6BjrE019aY8LRk/5f8pPM=",
-  "desktopYarnHash": "0axz0d5qryd0k89lrziah1r6j1154c1cibf1qsjk1azlri3k4298",
-  "webHash": "141iz2jcvwyv3fpi63ddi697qzkk6jg100d0lz6iam98m8m35g24"
+  "version": "1.9.7",
+  "desktopSrcHash": "bUzIIPNVgK2whQJoEZOaoa+jsJx4No+xji6hXK6wxFY=",
+  "desktopYarnHash": "1n9dqpvq31k94mx5s1dgqavaxdd0jrzcwdx106c5dnq6xnxs941p",
+  "webHash": "1fx1nznqbwvs84kpc239ms9kpzy9p72hrz3qqbzay8p9x4gc1ws3"
 }
diff --git a/pkgs/applications/networking/instant-messengers/ferdi/default.nix b/pkgs/applications/networking/instant-messengers/ferdi/default.nix
index a1c63cc9837fb..a34d2c5d928a1 100644
--- a/pkgs/applications/networking/instant-messengers/ferdi/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ferdi/default.nix
@@ -17,10 +17,10 @@ in
 mkFranzDerivation' rec {
   pname = "ferdi";
   name = "Ferdi";
-  version = "5.6.3";
+  version = "5.6.4";
   src = fetchurl {
     url = "https://github.com/getferdi/ferdi/releases/download/v${version}/ferdi_${version}_amd64.deb";
-    sha256 = "sha256-cfX3x0ZRxT6sxMm20uL8lKhMbrI/yiCHVrBTPKIlDSE=";
+    sha256 = "sha256-y3kuhSWoGysGkvDTV+bze6LSXVO4uDfDOos64eSYFf0=";
   };
   extraBuildInputs = [ xorg.libxshmfence ];
   meta = with lib; {
diff --git a/pkgs/applications/networking/instant-messengers/jackline/default.nix b/pkgs/applications/networking/instant-messengers/jackline/default.nix
index 3bd1564af2a70..3c43d715c01fd 100644
--- a/pkgs/applications/networking/instant-messengers/jackline/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jackline/default.nix
@@ -4,7 +4,7 @@ with ocamlPackages;
 
 buildDunePackage rec {
   pname = "jackline";
-  version = "unstable-2021-08-10";
+  version = "unstable-2021-12-28";
 
   minimumOCamlVersion = "4.08";
 
@@ -13,8 +13,8 @@ buildDunePackage rec {
   src = fetchFromGitHub {
     owner  = "hannesm";
     repo   = "jackline";
-    rev    = "73d87e9a62d534566bb0fbe64990d32d75487f11";
-    sha256 = "0wk574rqfg2vqz27nasxzwf67x51pj5fgl4vkc27r741dg4q6c5a";
+    rev    = "ca1012098d123c555e9fa5244466d2e009521700";
+    sha256 = "1j1azskcdrp4g44rv3a4zylkzbzpcs23zzzrx94llbgssw6cd9ih";
   };
 
   nativeBuildInpts = [
diff --git a/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common b/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common
index b611885a61176..9376a38b18749 100644
--- a/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common
+++ b/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_args_common
@@ -22,6 +22,7 @@
 --enable-muxer=h263
 --enable-muxer=h264
 --enable-muxer=hevc
+--enable-muxer=matroska
 --enable-muxer=webm
 --enable-muxer=ogg
 --enable-muxer=pcm_s16be
diff --git a/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches b/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches
index 127e5b18f7762..2422192c09f52 100644
--- a/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches
+++ b/pkgs/applications/networking/instant-messengers/jami/config/ffmpeg_patches
@@ -3,3 +3,4 @@ change-RTCP-ratio.patch
 rtp_ext_abs_send_time.patch
 libopusdec-enable-FEC.patch
 libopusenc-enable-FEC.patch
+screen-sharing-x11-fix.patch
diff --git a/pkgs/applications/networking/instant-messengers/jami/default.nix b/pkgs/applications/networking/instant-messengers/jami/default.nix
index e3bf7054949d0..5be6e02117889 100644
--- a/pkgs/applications/networking/instant-messengers/jami/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jami/default.nix
@@ -8,11 +8,11 @@
 }:
 
 rec {
-  version = "20211104.2.e80361d";
+  version = "20211213.2.37be4c3";
 
   src = fetchzip {
     url = "https://dl.jami.net/release/tarballs/jami_${version}.tar.gz";
-    sha256 = "1l48svppshh8mg7y1dymnh0rgwswy4qwdyl7qlg25mmh4y1li21f";
+    sha256 = "08abswvxwsxh6b0smb4l4cmymsbfiy7473b2sgvghj55w603prsc";
 
     stripRoot = false;
     extraPostFetch = ''
diff --git a/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix b/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix
index 1681769248711..76e88d8875556 100644
--- a/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix
+++ b/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix
@@ -2,5 +2,5 @@
   owner = "savoirfairelinux";
   repo = "pjproject";
   rev = "e1f389d0b905011e0cb62cbdf7a8b37fc1bcde1a";
-  sha256 = "sha256-6t+3b7pvvwi+VD05vxtujabEJmWmJTAeyD/Dapav10Y=";
+  sha256 = "0inpmyb6mhrzr0g309d6clkc99lddqdvyf9xajz0igvgp9pvgpza";
 }
diff --git a/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix b/pkgs/applications/networking/instant-messengers/kdeltachat/default.nix
index c9cbdd3798641..5fc8b0527b314 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-2021-10-27";
+  version = "unstable-2021-11-14";
 
   src = fetchFromSourcehut {
     owner = "~link2xt";
     repo = "kdeltachat";
-    rev = "e1201cdcce4311061643d90cc0132745023a82d2";
-    sha256 = "04xqvyj4rzgl9r7sfjjw1kc3vql30c80rwppff2zr5aijr15fgjj";
+    rev = "796b5ce8a11e294e6325dbe92cd1834d140368ff";
+    hash = "sha256-Zjh83TrAm9pWieqz1e+Wzoy6g/xfsjhI/3Ll73iJoD4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/nheko/default.nix b/pkgs/applications/networking/instant-messengers/nheko/default.nix
index 2a2c25e5593c9..bee1f7cf28913 100644
--- a/pkgs/applications/networking/instant-messengers/nheko/default.nix
+++ b/pkgs/applications/networking/instant-messengers/nheko/default.nix
@@ -12,6 +12,7 @@
 , qtkeychain
 , qtmacextras
 , qtmultimedia
+, qtimageformats
 , qttools
 , qtquickcontrols2
 , qtgraphicaleffects
@@ -31,13 +32,13 @@
 
 mkDerivation rec {
   pname = "nheko";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "Nheko-Reborn";
     repo = "nheko";
     rev = "v${version}";
-    sha256 = "1akhnngxkxbjwjkg5ispl6j5s2ylbcj92r3zxqqry4gbfxbjpx8k";
+    sha256 = "sha256-KnWZ1DSTg8vtNSlpG5LGUG8YDHt25s9pMLpLuj0WLnM=";
   };
 
   nativeBuildInputs = [
@@ -57,6 +58,7 @@ mkDerivation rec {
     cmark
     qtbase
     qtmultimedia
+    qtimageformats
     qttools
     qtquickcontrols2
     qtgraphicaleffects
diff --git a/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix b/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix
index 9af8b0aff77b5..a396e9acc0ce7 100644
--- a/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix
+++ b/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-opensteamworks/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pidgin-opensteamworks";
-  version = "1.7";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "EionRobb";
     repo = "pidgin-opensteamworks";
     rev = version;
-    sha256 = "0zxd45g9ycw5kmm4i0800jnqg1ms2gbqcld6gkyv6n3ac1wxizpj";
+    sha256 = "sha256-VWsoyFG+Ro+Y6ngSTMQ7yBYf6awCMNOc6U0WqNeg/jU=";
   };
 
   sourceRoot = "source/steam-mobile";
diff --git a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
index b8ee5182c26b1..c807573841099 100644
--- a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
+++ b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
@@ -4,6 +4,7 @@
 , cmake
 , qtbase
 , qtmultimedia
+, qtimageformats
 , qtx11extras
 , qttools
 , libidn
@@ -42,13 +43,13 @@ assert enablePsiMedia -> enablePlugins;
 
 mkDerivation rec {
   pname = "psi-plus";
-  version = "1.5.1576";
+  version = "1.5.1582";
 
   src = fetchFromGitHub {
     owner = "psi-plus";
     repo = "psi-plus-snapshots";
     rev = version;
-    sha256 = "15iqa8hd4p968sp79zsi32g7bhamgg267pk2bxspl646viv91f6g";
+    sha256 = "sha256-ZMJxGxwDuY2fW+W68JiH0X+FpowdAPm70EQ9pHNnrG4=";
   };
 
   cmakeFlags = [
@@ -67,6 +68,7 @@ mkDerivation rec {
   buildInputs = [
     qtbase
     qtmultimedia
+    qtimageformats
     qtx11extras
     libidn
     qca-qt5
diff --git a/pkgs/applications/networking/instant-messengers/qtox/default.nix b/pkgs/applications/networking/instant-messengers/qtox/default.nix
index 656ddade11f83..b264608f51007 100644
--- a/pkgs/applications/networking/instant-messengers/qtox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/qtox/default.nix
@@ -28,13 +28,13 @@
 
 mkDerivation rec {
   pname = "qtox";
-  version = "1.17.3";
+  version = "1.17.4";
 
   src = fetchFromGitHub {
     owner = "qTox";
     repo = "qTox";
     rev = "v${version}";
-    sha256 = "19xgw9bqirxbgvj5cdh20qxh61pkwk838lq1l78n6py1qrs7z5wp";
+    sha256 = "sha256-j1aAry4wjb4RResdu8PQzyVazvVxnxvZMoC59sO0frw=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix b/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
index 73886d1cc52a5..2edaf6bd33d50 100644
--- a/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
@@ -4,11 +4,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "rocketchat-desktop";
-  version = "3.6.0";
+  version = "3.7.2";
 
   src = fetchurl {
     url = "https://github.com/RocketChat/Rocket.Chat.Electron/releases/download/${version}/rocketchat_${version}_amd64.deb";
-    sha256 = "1691mzg52hkvkzm4pvmjyc3n04ppxk36rjk7zxh8682ciszz9pl3";
+    sha256 = "sha256-sSSi8L5WXFAc9yRDZ2usWmh6F06/1RMbJInQ4/OORnI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/schildichat/pin.json b/pkgs/applications/networking/instant-messengers/schildichat/pin.json
index 299598063c012..30ca1e9f475a0 100644
--- a/pkgs/applications/networking/instant-messengers/schildichat/pin.json
+++ b/pkgs/applications/networking/instant-messengers/schildichat/pin.json
@@ -1,6 +1,6 @@
 {
-  "version": "1.9.0-sc.1",
-  "srcHash": "10swz5gwz1izryzllmjm8mhhd0vqk2cp8qjcmmr5gbzspj7p3xgw",
-  "webYarnHash": "134llyh0197andpnbmfcxnidcgi3xxnb9v10bwfvrqysgnhb5z8v",
-  "desktopYarnHash": "150jc6p9kbdz599bdkinrhbhncpamhz35j6rcc008qxg2d9qfhwr"
+  "version": "1.9.7-sc.1",
+  "srcHash": "0qrjjwcxa141phsgdz325rrkfmjqdmxc3h917cs9c9kf6cblkxaq",
+  "webYarnHash": "19c594pql2yz1z15phfdlkwcvrcbm8k058fcq7p0k6840dhif5fd",
+  "desktopYarnHash": "058ihkljb1swjzvgf8gqci5ghvwapmpcf2bsab3yr66lhps7fhci"
 }
diff --git a/pkgs/applications/networking/instant-messengers/scudcloud/default.nix b/pkgs/applications/networking/instant-messengers/scudcloud/default.nix
index 76e6dc0f3d06c..06eb5384abd22 100644
--- a/pkgs/applications/networking/instant-messengers/scudcloud/default.nix
+++ b/pkgs/applications/networking/instant-messengers/scudcloud/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "scudcloud";
-  version = "1.63";
+  version = "1.65";
 
   src = fetchFromGitHub {
     owner = "raelgc";
     repo = "scudcloud";
     rev = "v${version}";
-    sha256 = "sha256-b8+MVjYKbSpnfM2ow2MNVY6MiT+urpNYDkFR/yUC7ik=";
+    sha256 = "1ffdy74igll74fwpmnn3brvcxbk4iianqscdzz18sx1pfqpw16cl";
   };
 
   propagatedBuildInputs = with python3Packages; [ pyqt5_with_qtwebkit dbus-python jsmin ];
diff --git a/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix b/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
index e83e45370cd8f..c998f869d1ea2 100644
--- a/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
+++ b/pkgs/applications/networking/instant-messengers/session-desktop-appimage/default.nix
@@ -3,14 +3,12 @@
 , appimageTools
 }:
 
-let
-  version = "1.7.4";
-in
-appimageTools.wrapType2 {
-  name = "session-desktop-appimage-${version}";
+appimageTools.wrapType2 rec {
+  pname = "session-desktop-appimage";
+  version = "1.7.6";
   src = fetchurl {
     url = "https://github.com/oxen-io/session-desktop/releases/download/v${version}/session-desktop-linux-x86_64-${version}.AppImage";
-    sha256 = "1yjah9ip3r2irvv2g9j0ql55nkmpwml7lngmq954xrkq9smrdrm5";
+    sha256 = "PNjUslqLcSxkRSXFpesBr2sfre4wetZWfUQTjywdClU=";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 20e5898133819..38e718972f324 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -24,7 +24,7 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "signal-desktop";
-  version = "5.24.0"; # Please backport all updates to the stable channel.
+  version = "5.26.1"; # Please backport all updates to the stable channel.
   # All releases have a limited lifetime and "expire" 90 days after the release.
   # When releases "expire" the application becomes unusable until an update is
   # applied. The expiration date for the current release can be extracted with:
@@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-    sha256 = "1p19vs4wxlghv8cbsq5k4bl8h9fzr9izp4k4qs5fcnqiy1z92ycy";
+    sha256 = "sha256-QIRt16AHILBNxKPxsOQ0n65W/bbalhXH1fM7KIaXP10=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/signald/default.nix b/pkgs/applications/networking/instant-messengers/signald/default.nix
index 649cc8843d2eb..e75c2357b28b9 100644
--- a/pkgs/applications/networking/instant-messengers/signald/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signald/default.nix
@@ -1,15 +1,21 @@
-{ lib, stdenv, fetchurl, fetchFromGitLab, jre_headless, coreutils, gradle_6, git, perl
-, makeWrapper }:
+{ lib, stdenv, fetchurl, fetchFromGitLab, jdk17_headless, coreutils, gradle_6, git, perl
+, makeWrapper, fetchpatch
+}:
 
 let
   pname = "signald";
-  version = "0.14.1";
+  version = "0.15.0";
 
   src = fetchFromGitLab {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "K/G5+w1GINLZwJIG5a7u0TxlGe+Cyp4wQm+pgm28qCA=";
+    sha256 = "ftK+oeqzJ+TxrlvqivFkAi5RCcyJ5Y0oQAJuo0YheBg=";
+  };
+
+  log4j-update-cve-2021-44228 = fetchpatch {
+    url = "https://gitlab.com/signald/signald/-/commit/7f668062ab9ffa09a49d171e995f57cf0a0803a7.patch";
+    sha256 = "sha256-504je6hKciUGelVCGZjxGjHi1qZQaovagXD5PBQP+mM=";
   };
 
   buildConfigJar = fetchurl {
@@ -17,15 +23,11 @@ let
     sha256 = "0y1f42y7ilm3ykgnm6s3ks54d71n8lsy5649xgd9ahv28lj05x9f";
   };
 
-  postPatch = ''
-    patchShebangs gradlew
-    sed -i -e 's|BuildConfig.jar|${buildConfigJar}|' build.gradle
-  '';
-
   # fake build to pre-download deps into fixed-output derivation
   deps = stdenv.mkDerivation {
-    name = "${pname}-deps";
-    inherit src version postPatch;
+    pname = "${pname}-deps";
+    inherit src version;
+    patches = [ log4j-update-cve-2021-44228 ];
     nativeBuildInputs = [ gradle_6 perl ];
     buildPhase = ''
       export GRADLE_USER_HOME=$(mktemp -d)
@@ -43,15 +45,22 @@ let
     outputHashMode = "recursive";
     # Downloaded jars differ by platform
     outputHash = {
-      x86_64-linux = "/gJFoT+vvdSWr33oI44XiZXlFfyUjtRVB1M6CMzSztM=";
-      aarch64-linux = "v71stMWBbNALasfGAHvsVTBaDOZfpKK3sQrjNJ6FG1A=";
+      x86_64-linux = "sha256-e2Tehtznc+VsvQzD3lQ50Lg7ipQc7P3ekOnb8XLORO8=";
+      aarch64-linux = "sha256-P48s3vG5vUNxCCga5FhzpODhlvvc+F2ZZGX/G0FVGWc=";
     }.${stdenv.system} or (throw "Unsupported platform");
   };
 
 in stdenv.mkDerivation rec {
-  inherit pname src version postPatch;
+  inherit pname src version;
+
+  patches = [
+    ./gradle-plugin.patch
+    log4j-update-cve-2021-44228
+  ];
 
-  patches = [ ./gradle-plugin.patch ];
+  postPatch = ''
+    sed -i 's|BuildConfig.jar|${buildConfigJar}|' build.gradle
+  '';
 
   buildPhase = ''
     runHook preBuild
@@ -73,7 +82,7 @@ in stdenv.mkDerivation rec {
     tar xvf ./build/distributions/signald.tar --strip-components=1 --directory $out/
     wrapProgram $out/bin/signald \
       --prefix PATH : ${lib.makeBinPath [ coreutils ]} \
-      --set JAVA_HOME "${jre_headless}"
+      --set JAVA_HOME "${jdk17_headless}"
 
     runHook postInstall
   '';
diff --git a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index 7550e72277f53..89da545277985 100644
--- a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -7,7 +7,7 @@ let
 
   # Please keep the version x.y.0.z and do not update to x.y.76.z because the
   # source of the latter disappears much faster.
-  version = "8.77.0.97";
+  version = "8.79.0.95";
 
   rpath = lib.makeLibraryPath [
     alsa-lib
@@ -69,7 +69,7 @@ let
           "https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
           "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
         ];
-        sha256 = "sha256-0u1fpKJrsEgbvTwdkqJZ/SwCRDmJwEi9IXHbMmY8MJI=";
+        sha256 = "sha256-a6ZtgA0cMAuNVQWAeiIDJ2noPhXjV8KPE8ibkGR7Dns=";
       }
     else
       throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix
index 1e2d87f031e58..5e0175518716c 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.21.1";
-  x86_64-darwin-sha256 = "1xhhll7mbz3f98xd2pzhyv3a49sam2v9fmvglmsvnkrmqppzsr4g";
+  x86_64-darwin-version = "4.22.0";
+  x86_64-darwin-sha256 = "094p9vyv56m5qfp9jh2205ijfqcp0dr6bkmiv0wxihy2rg20b5zp";
 
-  x86_64-linux-version = "4.21.1";
-  x86_64-linux-sha256 = "0mmpvrg2gfjarhrh0cy6axmhbx8v8rkn51gyp9xhr9ll9zrjpvjq";
+  x86_64-linux-version = "4.22.0";
+  x86_64-linux-sha256 = "0k84glxp653lxgfv5b65zvvysax7fr3lhsjgq76safk7g7cjc86i";
 
-  aarch64-darwin-version = "4.21.1";
-  aarch64-darwin-sha256 = "1rkixwg0b0nqp7wzvm24qskc9q3cl43fqfbkv6i2qkrrhpyr3zqw";
+  aarch64-darwin-version = "4.22.0";
+  aarch64-darwin-sha256 = "1z2pcgva9ixjx702c1535b4k0xr9fdnfzi5m08xgvabk9x66hqx4";
 
   version = {
     x86_64-darwin = x86_64-darwin-version;
diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
index d9f9cd91a52da..cb4f3e5e5d156 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
@@ -4,7 +4,7 @@
 , ffmpeg, openalSoft, minizip, libopus, alsa-lib, libpulseaudio, range-v3
 , tl-expected, hunspell, glibmm, webkitgtk
 # Transitive dependencies:
-, pcre, xorg, util-linux, libselinux, libsepol, epoxy
+, pcre, xorg, util-linux, libselinux, libsepol, libepoxy
 , at-spi2-core, libXtst, libthai, libdatrie
 }:
 
@@ -41,7 +41,7 @@ in mkDerivation rec {
     tl-expected hunspell glibmm webkitgtk
     tg_owt
     # Transitive dependencies:
-    pcre xorg.libXdmcp util-linux libselinux libsepol epoxy
+    pcre xorg.libXdmcp util-linux libselinux libsepol libepoxy
     at-spi2-core libXtst libthai libdatrie
   ];
 
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index 0764c484ec9a7..1611185ca7246 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -37,7 +37,7 @@
 , libXdmcp
 , libselinux
 , libsepol
-, epoxy
+, libepoxy
 , at-spi2-core
 , libXtst
 , libthai
@@ -135,7 +135,7 @@ mkDerivation rec {
     libXdmcp
     libselinux
     libsepol
-    epoxy
+    libepoxy
     at-spi2-core
     libXtst
     libthai
diff --git a/pkgs/applications/networking/instant-messengers/torchat/default.nix b/pkgs/applications/networking/instant-messengers/torchat/default.nix
index 4a1ffef292f08..8fece54127218 100644
--- a/pkgs/applications/networking/instant-messengers/torchat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/torchat/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/prof7bit/TorChat";
     description = "Instant messaging application on top of the Tor network and it's location hidden services";
     license = licenses.gpl3;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/twinkle/default.nix b/pkgs/applications/networking/instant-messengers/twinkle/default.nix
index 01c83ba7b1cce..3dd912da90d79 100644
--- a/pkgs/applications/networking/instant-messengers/twinkle/default.nix
+++ b/pkgs/applications/networking/instant-messengers/twinkle/default.nix
@@ -15,20 +15,19 @@
 , alsa-lib
 , speex
 , ilbc
-, fetchurl
 , mkDerivation
 , bcg729
 }:
 
 mkDerivation rec {
   pname = "twinkle";
-  version = "1.10.2";
+  version = "unstable-2021-02-06";
 
   src = fetchFromGitHub {
-    repo = pname;
     owner = "LubosD";
-    rev = "v${version}";
-    sha256 = "0s0gi03xwvzp02ah4q6j33r9jx9nbayr6dxlg2ck9pwbay1nq1hx";
+    repo = "twinkle";
+    rev = "2301b66a3f54b266675415d261985488d86e9e4c";
+    sha256 = "xSwcaj1Hm62iL7C/AxqjVR07VEae8gDgYdr2EWmCoOM=";
   };
 
   buildInputs = [
@@ -46,19 +45,6 @@ mkDerivation rec {
     ilbc
   ];
 
-  patches = [
-    # patch for bcg729 1.0.2+
-    (fetchurl { # https://github.com/LubosD/twinkle/pull/152
-      url = "https://github.com/LubosD/twinkle/compare/05082ae12051821b1d969e6672d9e4e5afe1bc07...7a6c533cda387652b5b4cb2a867be1a18585890c.patch";
-      sha256 = "39fc6cef3e88cfca8db44612b2d082fb618027b0f99509138d3c0d2777a494c2";
-    })
-    # patch manual link to not link to old url, which now points to NSFW page
-    (fetchurl { # https://github.com/LubosD/twinkle/commit/05082ae12051821b1d969e6672d9e4e5afe1bc07
-      url = "https://github.com/LubosD/twinkle/commit/05082ae12051821b1d969e6672d9e4e5afe1bc07.diff";
-      sha256 = "1iamragr9wp2vczsnp6n261fpr1ai2nc2abp0228jlar9zafksw0";
-    })
-  ];
-
   nativeBuildInputs = [
     cmake
     bison
diff --git a/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix b/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
index 0d5355a1eb4d2..34bd755b78354 100644
--- a/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/whatsapp-for-linux/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "whatsapp-for-linux";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "eneshecan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-VdkCjzmZqP/ZVY1H9FxBGe5rN0nZEPZbMp3MVKL6WLc=";
+    sha256 = "sha256-TX6fMuhe6VHbhWJSsPM0iOV4CuCfULD5McJyHuTW4lI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index 9b3ab777b0533..9451dcd2d2361 100644
--- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -28,11 +28,11 @@
 }:
 
 let
-  version = "5.8.4.210";
+  version = "5.8.6.739";
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
-      sha256 = "1qjr35wg1jk6a6c958s0hbgqqczq789iim77s02yqpy5kyjbnn1n";
+      sha256 = "12gzdfxf6xy558smsfazvjj4g1rnaiw7l2lznzlh2qazyaq6f3mq";
     };
   };
 
diff --git a/pkgs/applications/networking/instant-messengers/zulip-term/default.nix b/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
index b2f80c70d2408..1775ce9a48179 100644
--- a/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
@@ -29,6 +29,7 @@ python3.pkgs.buildPythonApplication rec {
     lxml
     typing-extensions
     python-dateutil
+    pytz
     tzlocal
   ];
 
diff --git a/pkgs/applications/networking/ipfs/default.nix b/pkgs/applications/networking/ipfs/default.nix
index c90353a184550..c0526fc0d97c1 100644
--- a/pkgs/applications/networking/ipfs/default.nix
+++ b/pkgs/applications/networking/ipfs/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ipfs";
-  version = "0.10.0";
+  version = "0.11.0";
   rev = "v${version}";
 
   # go-ipfs makes changes to it's source tarball that don't match the git source.
   src = fetchurl {
     url = "https://github.com/ipfs/go-ipfs/releases/download/${rev}/go-ipfs-source.tar.gz";
-    sha256 = "sha256-okfIxNoFoJZx1WCWe/6NcYhwU+ZzOyn01g8BGtXO3UQ=";
+    sha256 = "lTPGnFqDgyMWmSCPmLHguGNnJQMWi9LPrOZfDgeS9Y4=";
   };
 
   # tarball contains multiple files/directories
diff --git a/pkgs/applications/networking/irc/catgirl/default.nix b/pkgs/applications/networking/irc/catgirl/default.nix
index d807e3bd03094..68ada703f8d61 100644
--- a/pkgs/applications/networking/irc/catgirl/default.nix
+++ b/pkgs/applications/networking/irc/catgirl/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "catgirl";
-  version = "1.9a";
+  version = "2.0";
 
   src = fetchurl {
     url = "https://git.causal.agency/catgirl/snapshot/${pname}-${version}.tar.gz";
-    sha256 = "sha256-MEm5mrrWfNp+mBHFjGSOGvvfvBJ+Ho/K+mPUxzJDkV0=";
+    sha256 = "sha256-rk6nvfyaFxJ/7JN92L5tDraTngffVb6u/U7dbNjK9jI=";
   };
 
   # catgirl's configure script uses pkg-config --variable exec_prefix openssl
diff --git a/pkgs/applications/networking/irc/convos/default.nix b/pkgs/applications/networking/irc/convos/default.nix
index 762fdf78ce3f0..275cf4c726e78 100644
--- a/pkgs/applications/networking/irc/convos/default.nix
+++ b/pkgs/applications/networking/irc/convos/default.nix
@@ -6,23 +6,24 @@ with lib;
 
 perlPackages.buildPerlPackage rec {
   pname = "convos";
-  version = "6.26";
+  version = "6.42";
 
   src = fetchFromGitHub {
     owner = "convos-chat";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wh3ryhd4b7nanh0yp2nycmhky5afw8lpfx34858p6wfimsv9794";
+    sha256 = "sha256-W7ZVZUCNllpFIQpNz2m/8VFOXDZfuppB+g3qibY6wt8=";
   };
 
   nativeBuildInputs = [ makeWrapper ]
     ++ optional stdenv.isDarwin [ shortenPerlShebang ];
 
   buildInputs = with perlPackages; [
-    CryptEksblowfish FileHomeDir FileReadBackwards HTTPAcceptLanguage
+    CryptPassphrase CryptPassphraseArgon2 CryptPassphraseBcrypt
+    FileHomeDir FileReadBackwards HTTPAcceptLanguage
     IOSocketSSL IRCUtils JSONValidator LinkEmbedder ModuleInstall
-    Mojolicious MojoliciousPluginOpenAPI MojoliciousPluginWebpack
-    ParseIRC TextMarkdown TimePiece UnicodeUTF8
+    Mojolicious MojoliciousPluginOpenAPI MojoliciousPluginSyslog MojoliciousPluginWebpack
+    ParseIRC TextMarkdownHoedown TimePiece UnicodeUTF8
     CpanelJSONXS EV
   ];
 
diff --git a/pkgs/applications/networking/irc/quassel/default.nix b/pkgs/applications/networking/irc/quassel/default.nix
index 7869333479e94..44e7fb8536015 100644
--- a/pkgs/applications/networking/irc/quassel/default.nix
+++ b/pkgs/applications/networking/irc/quassel/default.nix
@@ -93,7 +93,7 @@ in (if !buildClient then stdenv.mkDerivation else mkDerivation) rec {
       as WeeChat, but graphical (based on Qt4/KDE4 or Qt5/KF5).
     '';
     license = licenses.gpl3;
-    maintainers = with maintainers; [ phreedom ttuegel ];
+    maintainers = with maintainers; [ ttuegel ];
     repositories.git = "https://github.com/quassel/quassel.git";
     inherit (qtbase.meta) platforms;
   };
diff --git a/pkgs/applications/networking/irc/senpai/default.nix b/pkgs/applications/networking/irc/senpai/default.nix
index 81a984c84cd90..bd660660e4629 100644
--- a/pkgs/applications/networking/irc/senpai/default.nix
+++ b/pkgs/applications/networking/irc/senpai/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "senpai";
-  version = "unstable-2021-05-27";
+  version = "unstable-2021-11-29";
 
   src = fetchFromSourcehut {
     owner = "~taiite";
     repo = "senpai";
-    rev = "6be718329175c6d11e359f1a366ab6ab22b101d2";
-    sha256 = "sha256-hW6DHJlDBYEqK8zj5PvGKU54sbeXjx1tdqwKXPXlKHc=";
+    rev = "3904c9190d94f273c0ae9937d3161b9fe4adf856";
+    sha256 = "sha256-4ZhJuAxcoGjRO5xVqzlmaUvipnyiFMuJ1A3n8vlhYxU=";
   };
 
-  vendorSha256 = "sha256-OLi5y1hrYK6+l5WB1SX85QU4y3KjFyGaEzgbE6lnW2k=";
+  vendorSha256 = "sha256-xkJh7k8GZmoZqE0HgbFp2xMJQOVDkPEXOZEl6bJZz1A=";
 
   subPackages = [
     "cmd/senpai"
diff --git a/pkgs/applications/networking/irc/srain/default.nix b/pkgs/applications/networking/irc/srain/default.nix
index 282506c5e0af4..8cac8e144b85c 100644
--- a/pkgs/applications/networking/irc/srain/default.nix
+++ b/pkgs/applications/networking/irc/srain/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "srain";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "SrainApp";
     repo = "srain";
     rev = version;
-    sha256 = "14s0h5wgvlkdylnjis2fa7m835142jzw0d0yqjnir1wqnwmq1rld";
+    sha256 = "sha256-jGt0DlxlR2J9bE5S9pqT45OZTqzsr+DiZ7pON5QbU/Y=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/jmeter/default.nix b/pkgs/applications/networking/jmeter/default.nix
index d52d00f9a0566..1e7a78e4d4351 100644
--- a/pkgs/applications/networking/jmeter/default.nix
+++ b/pkgs/applications/networking/jmeter/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "jmeter";
-  version = "5.4.1";
+  version = "5.4.3";
   src = fetchurl {
     url = "https://archive.apache.org/dist/jmeter/binaries/apache-${pname}-${version}.tgz";
-    sha256 = "sha256-TtrpmIHRzbUEiYesy9ArPzza3qShCNFtB/sVJe9hLPM=";
+    sha256 = "sha256-clISFMDLh9rFuXTBxug6F6AJx/03e1W/I1JcckA7He4=";
   };
 
   nativeBuildInputs = [ makeWrapper jre ];
diff --git a/pkgs/applications/networking/libcoap/default.nix b/pkgs/applications/networking/libcoap/default.nix
index 643941b5fa897..ea4d27c6b412a 100644
--- a/pkgs/applications/networking/libcoap/default.nix
+++ b/pkgs/applications/networking/libcoap/default.nix
@@ -1,13 +1,16 @@
-{ fetchFromGitHub, automake, autoconf, which, pkg-config, libtool, lib, stdenv }:
+{ fetchFromGitHub, automake, autoconf, which, pkg-config, libtool, lib, stdenv, gnutls, asciidoc, doxygen
+, withTLS ? true
+, withDocs ? true
+}:
 stdenv.mkDerivation rec {
   pname = "libcoap";
-  version = "4.2.1";
+  version = "4.3.0";
   src = fetchFromGitHub {
     repo = "libcoap";
     owner = "obgm";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "1jkvha52lic13f13hnppizkl80bb2rciayb5hxici0gj6spphgha";
+    sha256 = "1l031ys833gch600g9g3lvbsr4nysx6glbbj4lwvx3ywl0jr6l9k";
   };
   nativeBuildInputs = [
     automake
@@ -15,16 +18,15 @@ stdenv.mkDerivation rec {
     which
     libtool
     pkg-config
-  ];
+  ] ++ lib.optional withTLS gnutls ++ lib.optionals withDocs [ doxygen asciidoc ] ;
   preConfigure = "./autogen.sh";
-  configureFlags = [
-    "--disable-documentation"
-    "--disable-shared"
-  ];
+  configureFlags = [ "--disable-shared" ]
+    ++ lib.optional (!withDocs) "--disable-documentation"
+    ++ lib.optional withTLS "--enable-dtls";
   meta = with lib; {
     homepage = "https://github.com/obgm/libcoap";
     description = "A CoAP (RFC 7252) implementation in C";
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     license = licenses.bsd2;
     maintainers = [ maintainers.kmein ];
   };
diff --git a/pkgs/applications/networking/maestral-qt/default.nix b/pkgs/applications/networking/maestral-qt/default.nix
index 57997ce7e2230..78876090e9ff7 100644
--- a/pkgs/applications/networking/maestral-qt/default.nix
+++ b/pkgs/applications/networking/maestral-qt/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "maestral-qt";
-  version = "1.5.1";
+  version = "1.5.2";
   disabled = python3.pkgs.pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "SamSchott";
     repo = "maestral-qt";
     rev = "v${version}";
-    sha256 = "sha256-LtKFdNX2/wSs9Hxplu7rz6rc1hoijCGgCKyLjlcRQoI=";
+    sha256 = "sha256-/wleUwTPkm5l8GgtBM2J0jsdc1A54WRYJPmHqSsdz4c=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/applications/networking/mailreaders/aerc/default.nix b/pkgs/applications/networking/mailreaders/aerc/default.nix
index 09ce39027b5ad..5ab0bfd8030da 100644
--- a/pkgs/applications/networking/mailreaders/aerc/default.nix
+++ b/pkgs/applications/networking/mailreaders/aerc/default.nix
@@ -5,17 +5,17 @@
 
 buildGoModule rec {
   pname = "aerc";
-  version = "0.5.2";
+  version = "0.6.0";
 
   src = fetchFromSourcehut {
-    owner = "~sircmpwn";
+    owner = "~rjarry";
     repo = pname;
     rev = version;
-    sha256 = "1ja639qry8h2d6y7qshf62ypkzs2rzady59p81scqh8nx0g9bils";
+    sha256 = "sha256-RaHigTp1YGkjQ46gFLhKcJuajekcCgfozu0ndCNq5Ac=";
   };
 
   runVend = true;
-  vendorSha256 = "9PXdUH0gu8PGaKlRJCUF15W1/LxA+sv3Pwl2UnjYxWY=";
+  vendorSha256 = "sha256-A2MZzTYzGuZLFENn9OBIBBreJan+b3RKOEu5bQcDwS8=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
index 5090b1fd0278f..93dfc4d8a1db4 100644
--- a/pkgs/applications/networking/mailreaders/claws-mail/default.nix
+++ b/pkgs/applications/networking/mailreaders/claws-mail/default.nix
@@ -1,10 +1,7 @@
 { stdenv, lib, fetchgit, fetchpatch, wrapGAppsHook, autoreconfHook, bison, flex
-, curl, gtk2, gtk3, pkg-config, python2, python3, shared-mime-info
+, curl, gtk3, pkg-config, python3, shared-mime-info
 , glib-networking, gsettings-desktop-schemas
 
-# Selector between the GTK+ 3 and GTK+ 2 releases.
-, useGtk3
-
 # Package compatibility: old parameters whose name were not directly derived
 , enablePgp ? true
 , enablePluginNotificationDialogs ? true
@@ -34,14 +31,14 @@
 , enablePluginBsfilter ? true
 , enablePluginClamd ? true
 , enablePluginDillo ? true
-, enablePluginFancy ? useGtk3, libsoup, webkitgtk
+, enablePluginFancy ? true, libsoup, webkitgtk
 , enablePluginFetchInfo ? true
 , enablePluginLibravatar ? enablePluginRavatar
 , enablePluginLitehtmlViewer ? true, gumbo
 , enablePluginMailmbox ? true
 , enablePluginManageSieve ? true
 , enablePluginNewMail ? true
-, enablePluginNotification ? (enablePluginNotificationDialogs || enablePluginNotificationSounds), libcanberra-gtk2, libcanberra-gtk3, libnotify
+, enablePluginNotification ? (enablePluginNotificationDialogs || enablePluginNotificationSounds), libcanberra-gtk3, libnotify
 , enablePluginPdfViewer ? enablePluginPdf, poppler
 , enablePluginPerl ? true, perl
 , enablePluginPython ? true
@@ -57,23 +54,7 @@
 with lib;
 
 let
-  # Last release and hash for both the GTK+ 3 and GTK+ 2 version.
-  version = if useGtk3 then "4.0.0" else "3.18.0";
-
-  gtk2src = {
-    sha256 = "1vsiy3xsppw4d8ylsz70wsyrvmgy88lp2hj7vrc353ckny80r9lh";
-  };
-
-  gtk3src = {
-    sha256 = "0mwnjiqg2sj61va0y9yi3v52iyr5kzmbnvsqxav3a48m2f8p27qn";
-  };
-
-  python = if useGtk3 then python3 else python2;
-  pythonPkgs = if useGtk3
-    then
-      with python.pkgs; [ python wrapPython pygobject3 ]
-    else
-      with python.pkgs; [ python wrapPython pygtk pygobject2 ];
+  pythonPkgs = with python3.pkgs; [ python3 wrapPython pygobject3 ];
 
   features = [
     { flags = [ "acpi_notifier-plugin" ]; enabled = enablePluginAcpiNotifier; }
@@ -99,7 +80,7 @@ let
     { flags = [ "managesieve-plugin" ]; enabled = enablePluginManageSieve; }
     { flags = [ "networkmanager" ]; enabled = enableNetworkManager; deps = [ networkmanager ]; }
     { flags = [ "newmail-plugin" ]; enabled = enablePluginNewMail; }
-    { flags = [ "notification-plugin" ]; enabled = enablePluginNotification; deps = [ libnotify ] ++ [(if useGtk3 then libcanberra-gtk3 else libcanberra-gtk2)]; }
+    { flags = [ "notification-plugin" ]; enabled = enablePluginNotification; deps = [ libnotify ] ++ [libcanberra-gtk3]; }
     { flags = [ "pdf_viewer-plugin" ]; enabled = enablePluginPdfViewer; deps = [ poppler ]; }
     { flags = [ "perl-plugin" ]; enabled = enablePluginPerl; deps = [ perl ]; }
     { flags = [ "pgpcore-plugin" "pgpinline-plugin" "pgpmime-plugin" ]; enabled = enablePluginPgp; deps = [ gnupg gpgme ]; }
@@ -115,12 +96,13 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "claws-mail";
-  inherit version;
+  version = "4.0.0";
 
-  src = fetchgit ({
+  src = fetchgit {
     rev = version;
     url = "git://git.claws-mail.org/claws.git";
-  } // (if useGtk3 then gtk3src else gtk2src));
+    sha256 = "0mwnjiqg2sj61va0y9yi3v52iyr5kzmbnvsqxav3a48m2f8p27qn";
+    };
 
   outputs = [ "out" "dev" ];
 
@@ -140,7 +122,7 @@ in stdenv.mkDerivation rec {
 
   preConfigure = ''
     # autotools check tries to dlopen libpython as a requirement for the python plugin
-    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${python}/lib
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${python3}/lib
     # generate version without .git
     [ -e version ] || echo "echo ${version}" > version
   '';
@@ -154,8 +136,7 @@ in stdenv.mkDerivation rec {
   propagatedBuildInputs = pythonPkgs;
 
   buildInputs =
-    [ curl gsettings-desktop-schemas glib-networking ]
-    ++ [(if useGtk3 then gtk3 else gtk2)]
+    [ curl gsettings-desktop-schemas glib-networking gtk3 ]
     ++ concatMap (f: optionals f.enabled f.deps) (filter (f: f ? deps) features)
   ;
 
diff --git a/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix b/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
index 34b25c17a2548..3ccf066831c1b 100644
--- a/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
+++ b/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
@@ -42,11 +42,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution";
-  version = "3.42.1";
+  version = "3.42.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "RlMq46E6aIV3GtEiNLlBQRZ67HRyOn7tE9293a767kU=";
+    sha256 = "C+QT8W3WjsjUNCpPJpVlryp0oZpb+hxcv2Y1I6W1ujg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/mailreaders/mblaze/default.nix b/pkgs/applications/networking/mailreaders/mblaze/default.nix
index f24ed3a51df60..8572bec3432c9 100644
--- a/pkgs/applications/networking/mailreaders/mblaze/default.nix
+++ b/pkgs/applications/networking/mailreaders/mblaze/default.nix
@@ -4,7 +4,7 @@
 
 stdenv.mkDerivation rec {
   pname = "mblaze";
-  version = "1.1";
+  version = "1.2";
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
   buildInputs = [ ruby ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     owner = "leahneukirchen";
     repo = "mblaze";
     rev = "v${version}";
-    sha256 = "sha256-Ho2Qoxs93ig4yYUOaoqdYnLA8Y4+7CfRM0dju89JOa4=";
+    sha256 = "sha256-LCyw3xGsYjsbExueRHVRqoJYluji9MmZq5zGclvSSDk=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index a94555e7959b1..98298d854d5f4 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -27,11 +27,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "mutt";
-  version = "2.1.3";
+  version = "2.1.5";
 
   src = fetchurl {
     url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
-    sha256 = "0z74slnq3y9wr1xr07jigz4n8dgxhk9qb0787sd0j6wj9g4rqxgg";
+    sha256 = "1q1bq5qfv67s6ynbqga19ifaprgavhdbgg154kb9ffingvj0k8wj";
   };
 
   patches = optional smimeSupport (fetchpatch {
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
index 6d9f62e75ab39..98792527faf1c 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -2,34 +2,25 @@
 #
 # To update `thunderbird-bin`'s `release_sources.nix`, run from the nixpkgs root:
 #
-#     nix-shell maintainers/scripts/update.nix --argstr package pkgs.firefox-bin-unwrapped
-{ stdenv, lib, fetchurl, config, makeWrapper
+#     nix-shell maintainers/scripts/update.nix --argstr package pkgs.thunderbird-bin-unwrapped
+{ lib, stdenv, fetchurl, config, wrapGAppsHook
 , alsa-lib
-, at-spi2-atk
 , atk
 , cairo
-, coreutils
-, cups
 , curl
-, dbus
+, cups
 , dbus-glib
+, dbus
 , fontconfig
 , freetype
 , gdk-pixbuf
 , glib
 , glibc
-, gnome
-, gnugrep
-, gnupg
-, gnused
-, gpgme
 , gtk2
 , gtk3
 , libkrb5
-, libcanberra
-, libGL
-, libGLU
 , libX11
+, libXScrnSaver
 , libxcb
 , libXcomposite
 , libXcursor
@@ -39,24 +30,43 @@
 , libXi
 , libXinerama
 , libXrender
-, libXScrnSaver
+, libXrandr
 , libXt
+, libXtst
+, libcanberra
+, libnotify
+, adwaita-icon-theme
+, libGLU, libGL
 , nspr
 , nss
 , pango
-, runtimeShell
+, pipewire
+, pciutils
+, libheimdal
+, libpulseaudio
+, systemd
 , writeScript
-, xdg-utils
+, writeText
 , xidel
+, coreutils
+, gnused
+, gnugrep
+, gnupg
+, ffmpeg
+, runtimeShell
+, mesa # thunderbird wants gbm for drm+dmabuf
+, systemLocale ? config.i18n.defaultLocale or "en_US"
 }:
 
-# imports `version` and `sources`
-with (import ./release_sources.nix);
-
 let
-  arch = if stdenv.hostPlatform.system == "i686-linux"
-    then "linux-i686"
-    else "linux-x86_64";
+  inherit (import ./release_sources.nix) version sources;
+
+  mozillaPlatforms = {
+    i686-linux = "linux-i686";
+    x86_64-linux = "linux-x86_64";
+  };
+
+  arch = mozillaPlatforms.${stdenv.hostPlatform.system};
 
   isPrefixOf = prefix: string:
     builtins.substring 0 (builtins.stringLength prefix) string == prefix;
@@ -64,11 +74,17 @@ let
   sourceMatches = locale: source:
       (isPrefixOf source.locale locale) && source.arch == arch;
 
-  systemLocale = config.i18n.defaultLocale or "en-US";
+  policies = { DisableAppUpdate = true; } // config.thunderbird.policies or { };
+  policiesJson = writeText "thunderbird-policies.json" (builtins.toJSON { inherit policies; });
 
   defaultSource = lib.findFirst (sourceMatches "en-US") {} sources;
 
-  source = lib.findFirst (sourceMatches systemLocale) defaultSource sources;
+  mozLocale =
+    if systemLocale == "ca_ES@valencia"
+    then "ca-valencia"
+    else lib.replaceStrings ["_"] ["-"] systemLocale;
+
+  source = lib.findFirst (sourceMatches mozLocale) defaultSource sources;
 in
 
 stdenv.mkDerivation {
@@ -83,11 +99,10 @@ stdenv.mkDerivation {
   libPath = lib.makeLibraryPath
     [ stdenv.cc.cc
       alsa-lib
-      at-spi2-atk
       atk
       cairo
-      cups
       curl
+      cups
       dbus-glib
       dbus
       fontconfig
@@ -98,34 +113,55 @@ stdenv.mkDerivation {
       gtk2
       gtk3
       libkrb5
+      mesa
       libX11
       libXScrnSaver
       libXcomposite
       libXcursor
+      libxcb
       libXdamage
       libXext
       libXfixes
       libXi
       libXinerama
       libXrender
+      libXrandr
       libXt
-      libxcb
+      libXtst
       libcanberra
+      libnotify
       libGLU libGL
       nspr
       nss
       pango
+      pipewire
+      pciutils
+      libheimdal
+      libpulseaudio
+      systemd
+      ffmpeg
     ] + ":" + lib.makeSearchPathOutput "lib" "lib64" [
       stdenv.cc.cc
     ];
 
-  buildInputs = [ gtk3 gnome.adwaita-icon-theme ];
+  inherit gtk3;
+
+  nativeBuildInputs = [ wrapGAppsHook ];
+
+  buildInputs = [ gtk3 adwaita-icon-theme ];
+
+  # "strip" after "patchelf" may break binaries.
+  # See: https://github.com/NixOS/patchelf/issues/10
+  dontStrip = true;
+  dontPatchELF = true;
 
-  nativeBuildInputs = [ makeWrapper ];
+  patchPhase = ''
+    # Don't download updates from Mozilla directly
+    echo 'pref("app.update.auto", "false");' >> defaults/pref/channel-prefs.js
+  '';
 
   # See "Note on GPG support" in `../thunderbird/default.nix` for explanations
   # on adding `gnupg` and `gpgme` into PATH/LD_LIBRARY_PATH.
-
   installPhase =
     ''
       mkdir -p "$prefix/usr/lib/thunderbird-bin-${version}"
@@ -135,41 +171,27 @@ stdenv.mkDerivation {
       ln -s "$prefix/usr/lib/thunderbird-bin-${version}/thunderbird" "$out/bin/"
 
       for executable in \
-        thunderbird crashreporter thunderbird-bin plugin-container updater
+        thunderbird thunderbird-bin plugin-container \
+        updater crashreporter webapprt-stub
       do
-        patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-          "$out/usr/lib/thunderbird-bin-${version}/$executable"
+        if [ -e "$out/usr/lib/thunderbird-bin-${version}/$executable" ]; then
+          patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+            "$out/usr/lib/thunderbird-bin-${version}/$executable"
+        fi
       done
 
       find . -executable -type f -exec \
         patchelf --set-rpath "$libPath" \
           "$out/usr/lib/thunderbird-bin-${version}/{}" \;
 
-      # Create a desktop item.
-      mkdir -p $out/share/applications
-      cat > $out/share/applications/thunderbird.desktop <<EOF
-      [Desktop Entry]
-      Type=Application
-      Exec=$out/bin/thunderbird
-      Icon=$out/usr/lib/thunderbird-bin-${version}/chrome/icons/default/default256.png
-      Name=Thunderbird
-      GenericName=Mail Reader
-      Categories=Application;Network;
-      EOF
-
-      # SNAP_NAME: https://github.com/NixOS/nixpkgs/pull/61980
-      # MOZ_LEGACY_PROFILES and MOZ_ALLOW_DOWNGRADE:
-      #   commit 87e261843c4236c541ee0113988286f77d2fa1ee
-      wrapProgram "$out/bin/thunderbird" \
-        --argv0 "$out/bin/.thunderbird-wrapped" \
-        --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:" \
-        --suffix XDG_DATA_DIRS : "$XDG_ICON_DIRS" \
-        --set SNAP_NAME "thunderbird" \
-        --set MOZ_LEGACY_PROFILES 1 \
-        --set MOZ_ALLOW_DOWNGRADE 1 \
-        --prefix PATH : "${lib.getBin gnupg}/bin" \
-        --prefix PATH : "${lib.getBin xdg-utils}/bin" \
-        --prefix LD_LIBRARY_PATH : "${lib.getLib gpgme}/lib"
+      # wrapThunderbird expects "$out/lib" instead of "$out/usr/lib"
+      ln -s "$out/usr/lib" "$out/lib"
+
+      gappsWrapperArgs+=(--argv0 "$out/bin/.thunderbird-wrapped")
+
+      # See: https://github.com/mozilla/policy-templates/blob/master/README.md
+      mkdir -p "$out/lib/thunderbird-bin-${version}/distribution";
+      ln -s ${policiesJson} "$out/lib/thunderbird-bin-${version}/distribution/policies.json";
     '';
 
   passthru.updateScript = import ./../../browsers/firefox-bin/update.nix {
@@ -180,14 +202,13 @@ stdenv.mkDerivation {
     basePath = "pkgs/applications/networking/mailreaders/thunderbird-bin";
     baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/";
   };
+
   meta = with lib; {
     description = "Mozilla Thunderbird, a full-featured email client (binary package)";
     homepage = "http://www.mozilla.org/thunderbird/";
-    license = {
-      free = false;
-      url = "http://www.mozilla.org/en-US/foundation/trademarks/policy/";
-    };
-    maintainers = with lib.maintainers; [ ];
-    platforms = platforms.linux;
+    license = licenses.mpl20;
+    maintainers = with lib.maintainers; [ lovesegfault ];
+    platforms = builtins.attrNames mozillaPlatforms;
+    hydraPlatforms = [ ];
   };
 }
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index d53bcda2a69de..b3ecb27dfb29f 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -1,655 +1,655 @@
 {
-  version = "91.3.0";
+  version = "91.4.1";
   sources = [
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/af/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/af/thunderbird-91.4.1.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "067592da3bdc40cb8a7d8f64e3c5d116575604f1305b8eac4b5b1cc7f79dccf0";
+      sha256 = "7af2c19b46daf1869af49289c1ab080559f8640c6dfc21cdae1ff48cdc26bf1f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/ar/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ar/thunderbird-91.4.1.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "3a52d7c0e48496cd2259494196b0514412e922535877ddd322ceb82d02a47a39";
+      sha256 = "dfabb7336f9b5929041c43997ad7ac34fca0750d70293dacdc32f9048de2fc7d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/ast/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ast/thunderbird-91.4.1.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "e07001f03b642887ae4a4e2415ce6bb50542d5af7cd8a9f0531081bb084e56eb";
+      sha256 = "3aade12867be4da3fb890214a7cd8551e12e962fb2a66b7e76da20a06755d045";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/be/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/be/thunderbird-91.4.1.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "ae12e02ef735813f2f807a32b101ea8ac621bff3f01f4e4b3c5e0fa6c178b812";
+      sha256 = "8bb288330b957d8361880738b7d5e5833602dd81aad580a96f1031e88bd963f4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/bg/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/bg/thunderbird-91.4.1.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "3892a660dcc417cbb951bd8362b8fdf06ef35606e98f121ea6f549646a0a8b89";
+      sha256 = "fcd8bbef82a24b146f4473da351cbd5262f8286d5b7ea78265516e815c7c84da";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/br/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/br/thunderbird-91.4.1.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "2fd0c6eca16a1435d0abd5d8fa66d68c8024f992ee57b741178c2d253f9bb7d7";
+      sha256 = "c1d331f6621fc120076d49015046f22ff898b089af8cac5226491bbe82391b9a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/ca/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ca/thunderbird-91.4.1.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "45fa1b1e80b646af457b189e07fa13c8bee61df1d80066b0b3d65414a682e105";
+      sha256 = "7b2a63bd30d1e47db16f64ea077623dfca965d71b2aa7f7ce56f8940a2f59301";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/cak/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/cak/thunderbird-91.4.1.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "3211236401fbf52b6085c1fe7e82e081c2d7d4f13514b11ced5a483986dabecf";
+      sha256 = "f22de3c4bc4237610e7826ed6d46f84f8a02d5370e7d0675932abd98ee24256e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/cs/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/cs/thunderbird-91.4.1.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "259bf43995f7990bd1ef78e030db88966688323f363f15af2065c7c551a9e6ae";
+      sha256 = "8dd685427622c1bc710d8056e527d5766f7e5f0c47ca7e170b8e48ed01e8c5a5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/cy/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/cy/thunderbird-91.4.1.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "2e1719dc5b7c3687c390c7ac07ab0392a3e8f32624ebd40d2cf8208796da054e";
+      sha256 = "d98ebd1787b29a6ee785a4b7cfaa2283b836f23214c3c27d4fbb3e7154c1e9e5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/da/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/da/thunderbird-91.4.1.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "49d8e99d05928d4678408a3b38da2f5c4915a802966c7328f4d410d5d0f7d82e";
+      sha256 = "202729a6f4813bb3760a5ae834731a019593dbcd5d66173999f5cbbedf277f00";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/de/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/de/thunderbird-91.4.1.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "0059061919afe9a38a3647896693e4773c3656887657b761356ff698b839cef5";
+      sha256 = "c035ce2cb81b7083d0c6fc859ee259afce5440bc8f2c8e1ca1db02ce97f0b237";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/dsb/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/dsb/thunderbird-91.4.1.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "7ac2f44c66860967cabd64e94f0b104b2807f4b6297dd2ad828525962d8d5976";
+      sha256 = "413eda01d4390e41f6d859def75c5972c4595b453fc9da948415e8e38f4766c0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/el/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/el/thunderbird-91.4.1.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "3fcde9b4cac6c46a6be2fe15f200cde1f96b59732f1e87b5645538568969817f";
+      sha256 = "b238ee1b8dbf54ab0aa4c6f23a646e037a48e31d77749698744dc122bf38608a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/en-CA/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/en-CA/thunderbird-91.4.1.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "13e33af2f7c29f8bcc479a09b3f8ab82362c01984700c5371eb8c050ef0524b2";
+      sha256 = "4ef51ab9fdcd3c6ab1323a402253f5cd8682fa100f3b05fa62bf1153bbc04c28";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/en-GB/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/en-GB/thunderbird-91.4.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "94e8bf04d513caa7cd74c4e93851a59911352e666b7bf86c8a795d63177f2e0a";
+      sha256 = "3ee22d3b5c23bfba703d36e58185ef139ccfa923c1877f983fed90419e7fdf8b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/en-US/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/en-US/thunderbird-91.4.1.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "a5cf280ad34305f7a83d331f554488c08e8c62acf2eb895ba7a6bcbc4aad3180";
+      sha256 = "6bd3bbcf3d92efe04b19bb45c0d9ac3abe8dd68fc84e255b76467b37ea5918b1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/es-AR/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/es-AR/thunderbird-91.4.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "ae253fa8d23ee19105566a76be6ad4584ba2c5cb1eef6a3135d488109f25dea7";
+      sha256 = "14b7fac461e90c4dd1790f6095e291e1ba510561d51655b16bda4ad7050dca8e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/es-ES/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/es-ES/thunderbird-91.4.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "1ede7664984d3ba3ba74163f58f02d5a982aa586c000a9d2b51efdb4b0b39210";
+      sha256 = "ee910bc3415e314d5f3b072608d61089ae55e969a138ee446377edf0e5ba710a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/et/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/et/thunderbird-91.4.1.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "93e29146782ccaa5ba9cc0b30f4f6273d8c57f39c678bc2dc825af5f46415ff1";
+      sha256 = "a643d96e71123c554a8af69bc875515113ffd30ab621d5f3b5678c33931cfab0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/eu/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/eu/thunderbird-91.4.1.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "ef431ab48190366acad917c5d8710e2df89ee31cf88ccfea206bfb49fbd2083c";
+      sha256 = "b910976d8e940331d46ac92f82f56aff61f8d91137bae9c869715cb371309f9e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/fi/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/fi/thunderbird-91.4.1.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "e4fba7cbb9cdb515eb29757bbda8b3f1fd091a5c1a35d345b34c547002c44ab7";
+      sha256 = "a8dd93299fde700cf1419187da06405093b3f010e7fdd327742fbddcef1721a0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/fr/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/fr/thunderbird-91.4.1.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "127de8d089c8ad535f2ca0dd60856a8822e8adffb3e5f3af868881c36e78da97";
+      sha256 = "526f4f4feae5f6a0b9f1d80b0f76a7f26af7456e1eb09e36eadd51fc8d4115ed";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/fy-NL/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/fy-NL/thunderbird-91.4.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "28b4e3490105558c6fc47b9189451e0359f0ecfdaf9b40af173483cbef618981";
+      sha256 = "df5320f98ecd32439273b18237a742c34590e5b533a7da9471cfd37921725108";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/ga-IE/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ga-IE/thunderbird-91.4.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "2b16e222cf5f9468bae76f1f3b7b0af8c7b6f8a7a9f263e9d1b1e9320e244fad";
+      sha256 = "c13529036ec2186e0e3088f63e351086bee21b0f8a3479586420c6a2701ee8f1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/gd/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/gd/thunderbird-91.4.1.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "9368396e0ca3784201f3e2d2bf6c1c87d0d0dade72f96c450119929a4ae34ae5";
+      sha256 = "f6c2c7cf6c8a39997e272d9aae5c7ab4620f426e2be96b4e90c3641db672a6ea";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/gl/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/gl/thunderbird-91.4.1.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "7c90a96061ae3d237636baaa4fe439ae47542d0880b81687bc3a5a9e40edded9";
+      sha256 = "ba0d17f99ca15bc81631201057509694c5dc656176a03e67d5f89371a4200eda";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/he/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/he/thunderbird-91.4.1.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "12e42b78aa9757b8274df1395667b89214d393a2dd5969b374a0bf5816f04f31";
+      sha256 = "c71bf27c55ad5b6c7981a434d598eeab8a927dbfc0510d4d68df357cb1abff9f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/hr/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/hr/thunderbird-91.4.1.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "f27542cf34fffd6aa71c479278b843ce435f4a8272130f7d8cde6f155e82b813";
+      sha256 = "9cf92e922329ec46ed68f352284de30c78aa2d25f040da4e1289d5ea0226bc3a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/hsb/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/hsb/thunderbird-91.4.1.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "f21bbe1720441392a276f3a2f6025da48f74efcfb7bfbe783f134be013874cf6";
+      sha256 = "e4d6baa0d92fbe7f40071045fcdb20f59944a0c1422c1095b946019461013242";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/hu/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/hu/thunderbird-91.4.1.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "64b16f848c5a361d9709c2075fdf3ca4f7eb885f3f1cd9ec5acffc260b31982a";
+      sha256 = "cea2f9b614e0b7cec709947ff75b9eb6abe6600b76d642b60910e2de1788f09b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/hy-AM/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/hy-AM/thunderbird-91.4.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "da650d001f9b10227c5a5f5225725ef9085aa71f95dca0ffc4452fc2d6b48d90";
+      sha256 = "8708acca6f1e4088f10f94f8c26a7790913fe55acbf0ab555e22b1256b74a866";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/id/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/id/thunderbird-91.4.1.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "12fcb1295b43b8bfd9607b819a78dd931c5efb092d6a5ddc70199c3625c4c033";
+      sha256 = "745ecb2038a84b1571e326ed0e6d38e7519bcf5b7f2bacf6ef053c9a88926c77";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/is/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/is/thunderbird-91.4.1.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "48250a36caa8727b6e5bf1369199b4e202c7692ef62ffd97999b71a59c8182b8";
+      sha256 = "e04b6fc88ddd46e6e6cbe47eb681acce91b47df355847f65e793d92419dc4204";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/it/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/it/thunderbird-91.4.1.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "aebf9b22dd1af357fdd1709448d3d753319a2f817bc30ed15ba364c75fe5ec40";
+      sha256 = "e23eb2075bcac5abc195b1abffe64b8e1a409c855699c6d5bcbd102c19a2ad4b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/ja/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ja/thunderbird-91.4.1.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "3a1580283928525b20a163f13c4cb9554484823ddc28699a8d8879860ccf3a73";
+      sha256 = "a79711803c46b6ab95f654d5b9dffafe85733b6c839238de8f76d30f9757553c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/ka/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ka/thunderbird-91.4.1.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "a2d2b5e2b884fa1b9547c76b9fce154431ef0db80af45379079f1c2d5c6d14b0";
+      sha256 = "3076defee6dadfad4560800ecf2b3556fcf8f4dd5a8795bb578ee73bbbccf72f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/kab/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/kab/thunderbird-91.4.1.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "0b909906f58125048fd4683946e62653b5c9064085b3f129b20d865c8463198b";
+      sha256 = "65f796d71d02118794b79d5460ef9db06e3d172e5d15ff350eff52cc214587dc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/kk/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/kk/thunderbird-91.4.1.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "5256b328a8920f01b5e93617c3e98a54e27094a383047df9a98f5ac50772e0fb";
+      sha256 = "f8df25990df8b577e224551f1af44fb87c867b7d7622931214bbceeec3699646";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/ko/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ko/thunderbird-91.4.1.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "445644ffbdff8af1910f664a9ed81512af95c9882f5b1ce1add02dac715ab0e9";
+      sha256 = "77d6e16972f9ddb553d9bd19627a0725d25d42a0ad6d1e665d249b094b137dc9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/lt/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/lt/thunderbird-91.4.1.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "0b3dbd1b6e71036b64c98920ef755f418cf6c11feba93ba8d873d438a032bf87";
+      sha256 = "208eb06ba9e8b1cd391a7694552af6e7ba3ead33567d51fda82d70e024378f56";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/lv/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/lv/thunderbird-91.4.1.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "2bc934ce28dd4775984ae2f4db79db54806b34fdb415ec4420ae3b8927fe10a5";
+      sha256 = "a4a85c3f969dc40149ad82d0dbc4e1089de67ba3c6d7495f5c45196e8c7083a8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/ms/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ms/thunderbird-91.4.1.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "e13dad427c8d0cb9aa79c48f4f8124ea996cabb34efdbd4ed8e90e233d00b6e2";
+      sha256 = "e5f3259e002b31d9a2738ad81826d59dd464aa34532441e9092e976efe8be7b4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/nb-NO/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/nb-NO/thunderbird-91.4.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "e984fe009aa98be81153b1285370fae6187705bfbfe652b3c45e83f5bb0070ca";
+      sha256 = "33fa29d2490c7618d1f9bbaceb34b898d150e57fc9b96b957a5b348b6fe47cfc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/nl/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/nl/thunderbird-91.4.1.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "55744aaba9ae0c282d7eeba0beae71101cdfbf689bbad8a6312af3f2abc41778";
+      sha256 = "726962fd26948726230b49736f2d1e6c6daa562a4389e0fa0069ab737304cbac";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/nn-NO/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/nn-NO/thunderbird-91.4.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "b404dfee5b164a0401da149c33535e51030b21da29fc97d1822bc82cec2b6808";
+      sha256 = "09bab6f8061400413e7167693e4c2f14caa4aba0ac68c7cfeaf9ed2dfa44ea0a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/pa-IN/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/pa-IN/thunderbird-91.4.1.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "cb0bb35c9cbb31443658847bc49d29730b192b6a25875acceac3fa4fd7436edd";
+      sha256 = "2203476872b140a1fec867435bf1a006b63a7ffc018eb466ea164597474a2083";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/pl/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/pl/thunderbird-91.4.1.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "3a0ea72ba75230b4809901138350e0f13f981daaf590455aa75787cb107a0c24";
+      sha256 = "3cc4fa964b4deaef9d901fd9fba597059f638b1b8322515ac02cbb97f5a5c28b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/pt-BR/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/pt-BR/thunderbird-91.4.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "8e9deefa5bb510e244d8c6416371e24a2f6c97548eda5a25bf03a7aa5d500b7e";
+      sha256 = "c68055c96551a1b529bdf81659231ec5244c4c68255d88f581c378046bbb5e84";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/pt-PT/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/pt-PT/thunderbird-91.4.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "753235eb471c7bb62f766baff612bd1df5926ff248ee174604496edb7c75546b";
+      sha256 = "36c9b2170aff5e6f58377efd53f679e9e823f45b67d7407cb3c34d72f676625a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/rm/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/rm/thunderbird-91.4.1.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "a298343b057a4d25b89386cde253ddd897550250e81b8abd6a68ff240d41c600";
+      sha256 = "2f00df17c29128e2b135136fe700930ff0078e8896e1cb4f7c34b44af0cfd8f2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/ro/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ro/thunderbird-91.4.1.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "df52bc68926b9239d3b26fbbfea3ec7aa98837296243325dfe153e9afea6a0fa";
+      sha256 = "ed93041b32a711e04de6737c5d6fbcf6b598ca9eccefe5ab0e02cf3cacba5ffa";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/ru/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/ru/thunderbird-91.4.1.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "001b1145aca605e8e5d72a1fda411546de1d2cb82f7be5626d5766018e1a692a";
+      sha256 = "206ccfcb5d6a9d70f4258ddeff0cc79c38e801d860a05bf6214c03b24e2f9057";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/sk/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/sk/thunderbird-91.4.1.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "822e852ec3d2d5a50f042bd2e5b2ec6929441b8116a2cadf2369c769602b85b8";
+      sha256 = "aa8e6dd53d5b741bee345d1f7a5b03866121619f54993233cb4239c6107eb3e6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/sl/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/sl/thunderbird-91.4.1.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "752538090cd3d72cb5d04cc9abf0b089e437a7726cf8eee27b5ebe2d63162b8c";
+      sha256 = "95f3a97adc32abb33c0a7579c19247595f6f27c7da0cf06bf1fa9d8270b41996";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/sq/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/sq/thunderbird-91.4.1.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "a8548722e8c67da69c8f2e15855dd076b1435c5a1c6c34100dfae8de0eab7543";
+      sha256 = "fe8255e55081a6cae15085cfcf793c4094de55a2b12d3732c7e75ce567b85716";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/sr/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/sr/thunderbird-91.4.1.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "d6c86caa9b272b3281b9a3eea8ded13546f4d09518081feb3fd16b995955d6e7";
+      sha256 = "f889e1ff38542aae19d6ebaf827a2c6d6f8dbd6e16a80966bc311588e4e10ffc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/sv-SE/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/sv-SE/thunderbird-91.4.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "a5af37b0803881489bc775e25592901ca77de996b07c4df658f17a9b66c94fc2";
+      sha256 = "2f90c95bbdcb6bfd59cee40013cc1c498e50f5cc0209799dfe1dfc57afbc37ad";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/th/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/th/thunderbird-91.4.1.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "a0292086c9e9d0462118ca5945627bb04f8943e3afcdcf3da054ff52ccd45442";
+      sha256 = "3fa19fef25c76f49f9e6ee9edc2f24cd02c2b589b8e2cea270f4aa71f1a1a621";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/tr/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/tr/thunderbird-91.4.1.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "f02b7dde392fd77cde01a9ae860a46acf11554ec32d1b606c2a0145562bea1d5";
+      sha256 = "7de3ccbe109401dab260ed1c8ae9fc360e5392c81111df930d0c7f7d46211f83";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/uk/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/uk/thunderbird-91.4.1.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "1cb2935c1517b10adb370ceea6866912656c668dd8e82abcfb0f59435a85a854";
+      sha256 = "967020d05810d1514be84635cb56162b83f7f28a2bea221ad21ecb4ebd960968";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/uz/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/uz/thunderbird-91.4.1.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "4ad88f7f036ec199bd69ab7628d2bdf2f162603e8290cc19e4ccd586bef691fb";
+      sha256 = "371d60bc164552f04cf680a29af5992f1ac353e8bb30af62a5cdadf744576c71";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/vi/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/vi/thunderbird-91.4.1.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "538a9996a604d9464a6c1315c683d6bd80b585d3bcf59fa93272444c22fec59e";
+      sha256 = "600cc9d18a18ebc13bd8371140b573723b913e100937b3bb22ab04cf7846e1e7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/zh-CN/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/zh-CN/thunderbird-91.4.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "470123b053cab95930e8594684e65a656da032ea4e46aae4c325f119fbed4a46";
+      sha256 = "ae59930a4c609e4ce0562338019db1202c3eafc2e3dabd90888076ece4fe8ee5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-x86_64/zh-TW/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-x86_64/zh-TW/thunderbird-91.4.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "cead4d02b5dd39dd146d1f2b28b61e5f30804018cd226d36e56bd39e010d82c5";
+      sha256 = "2cd58c1fb54b572e6a2f63b9881f53ee65d9992d75c0905ea2e1047afabd08a9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/af/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/af/thunderbird-91.4.1.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "4ac3b8ea2e7371710b03beca630d409a7f3e101e267e15b2ef49004da728e021";
+      sha256 = "bbf9e3a8856f66ed2d263b05d5520a9be26719f45380a5f29e6cf27c891c3e23";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/ar/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ar/thunderbird-91.4.1.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "545423946de595760829c2263b90f1ca2aef3ec576a28c96c37ec6bfc3269fd9";
+      sha256 = "0df457c90aedef53adca7dafe34dc95847b77603362b27f814f4e88d40311ccb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/ast/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ast/thunderbird-91.4.1.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "1ff0fc8052bcb5c26396114be2ebce66e939cfe962c17807183ccb538dc29df1";
+      sha256 = "b97a3fc046dcd75e2703629e01abbe2c7a81bc98746fdd96ac195b2508e396b7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/be/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/be/thunderbird-91.4.1.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "079a3e51861d0396d89978b46bcbcc5d786b3b4d728064c7709aefb2ba95ba40";
+      sha256 = "158495d87e2bc8c2b257d055fc9096580bbb7dcc126b3b83a4aa0f3deaae9cf7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/bg/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/bg/thunderbird-91.4.1.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "04b095d3b52972e06324630b938cf703143158996036f1d338740e9058c666c5";
+      sha256 = "77497a922cd441a3ed791d6f497586b2d3b286a64cf057cf34b07e38b6c1f5f2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/br/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/br/thunderbird-91.4.1.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "82ad96bb61b2c170a0c750328b110772bff263493628c8a0c00396051a30ae4e";
+      sha256 = "862629fb07c7743a2bc909883ebe19347fea71fc91b8df927d846054ce2b1b08";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/ca/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ca/thunderbird-91.4.1.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "e5c4a5c5edbfc95e2dbbf331e8a794fdbef77e111da3b467d050571b6447ff70";
+      sha256 = "33ab06809f5982036b849aed5ec46d7271c217cb7330149f4783fd308c19ef46";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/cak/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/cak/thunderbird-91.4.1.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "4c99da8214856553fd01e4bea4c01945abe799280bf4e6da94e57b8c85e5e047";
+      sha256 = "6bd1cd49eb18ce7bb88e4e023063bf03e2c2078f7c3ccf0f1c477d712b4e67fb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/cs/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/cs/thunderbird-91.4.1.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "f7a9037ed7889f5de489f875611cf6a5d644b93f26b0dbddcb6e49b5f11ee2be";
+      sha256 = "528aba25c407f52e728361e5174cb232f2583ef5ff62bf47386d4766f776566d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/cy/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/cy/thunderbird-91.4.1.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "bba109d3b1ec5b5deeb7c8bd036260490252961c52855c4d879ddb73858a1110";
+      sha256 = "efd1490cd2a357c1d61d5225a8d1b1b9a61be5c25805b26496ea3ad946d4cbcc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/da/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/da/thunderbird-91.4.1.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "182600e06827d9abf7b8428e3dc883036119d23431923eb019b6a6dc197f7e28";
+      sha256 = "00e9e787a8bf21caebcd1b21889c5534d38d14d8eb2e10b297b320e71455910f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/de/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/de/thunderbird-91.4.1.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "24f69ecdf96f2823e709fe4ca6f48c2eca8b8574e8ff10e7ac48a78b8a847d76";
+      sha256 = "1c93e59e8d55ff671e630dc86091b1503b73e8b92f7bf0b6726d3b9829bfa8d1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/dsb/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/dsb/thunderbird-91.4.1.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "9c7ea981a4d8ca2917fc160dbe5598b7bf8c63a9af4b3010cfa870632f4b8e7e";
+      sha256 = "d8de15bf2699fa44b82aab0872b966d20dae733b46404b03a1e8c41e28b2c4dd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/el/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/el/thunderbird-91.4.1.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "e55668dac59dea1f5faddf0d2d63b223932a086dc79a577f2e811dba4b3e16d3";
+      sha256 = "1ecb81092cd8bdae878792f2be7a32edc378d3691ca696bcfe3899e81ace7cd7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/en-CA/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/en-CA/thunderbird-91.4.1.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "b60e6106c054e8d1a107b5601fc96555024b3894334cc4f825a953bf4198e2b1";
+      sha256 = "68836e09adf5f9d2b5c9f3b96ed5b05f56931faa33bbb17c578436c13c5cc4ee";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/en-GB/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/en-GB/thunderbird-91.4.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "c63b78c881f9c98523214d70053fbe25c84209ea17b634f51fabe47f7a68e700";
+      sha256 = "b20a74cc35abd3d066384f57b5d2f7a6a1dd24193b720fedce693d8b864058b6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/en-US/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/en-US/thunderbird-91.4.1.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "2f43f460a7b31c128c8cdae2829bbfd82a5381854d722901e8c07843d73f5030";
+      sha256 = "8f3bffb289081a898f9e77c291ef1ce63af8c0e966894b54a3c533741b655aa9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/es-AR/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/es-AR/thunderbird-91.4.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "5bfdc77b75b5acfff4a013884298d68ba76946f6ded7b39d973c4a4a20f0c09a";
+      sha256 = "b1c26f4dd600995a88ad960f55fbf6026ad2ff93b94ac12af991440ada44a54a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/es-ES/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/es-ES/thunderbird-91.4.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "5c793c8ba89d886a67ced4e6cd2271cbd9a516efc1bbf981e4b302ee4223dc37";
+      sha256 = "a28fb5020e2e5a577958f4702cd3f15dadf4fcc62c3bfc954d5df3777ef4152a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/et/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/et/thunderbird-91.4.1.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "548e4ff7682d36034dac4b82bee239ff5241b8605982d4ea3e21d59f43710888";
+      sha256 = "9a8fc8ba9df9aa179ca6b18d412ee0395c54ed3e2394d951c1cb85d4cb656808";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/eu/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/eu/thunderbird-91.4.1.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "1c24768b70b1cd8310ed5bd9bc08aab036952c692ddb5cdda7e0605b61746713";
+      sha256 = "56b10b3f9a824fbd91d1107db46e085b45d2c7d78a67a9eb8554afa7aab881a9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/fi/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/fi/thunderbird-91.4.1.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "fdd4a914633aa6b1aeb4c737c63e7b0a39c60ab15b320ae37221c5a7eb273620";
+      sha256 = "ef41d1f5a985f1bf98790f76cd9dc9cf8d02614b0d780c59f95fe30224678f02";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/fr/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/fr/thunderbird-91.4.1.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "b582ff509cea4bfcdafa4b260db4831565ea60b7ac64e3163c9a43814790277b";
+      sha256 = "2af9a88a1bf2bc0932ef0131a53b2ab3fda256ceaf3e8f256e41f648153eea8f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/fy-NL/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/fy-NL/thunderbird-91.4.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "61fa2a02f179e50d9d4bf43cf037a6b545982ee479f7c8f040ca57fc2586ed2f";
+      sha256 = "3406057ce9f70c9f1a2efce979fd9b1bffa2ad7fe63bb90e541ea539a2eb071f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/ga-IE/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ga-IE/thunderbird-91.4.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "c0651a533f2690ad17b336e4de840932c4711e10fec64b80f2fec18d0449f1dc";
+      sha256 = "ee6a8941da6093a7b342da1f124ab5d82cfc9ed288a7385c2ce33e5d95370fb6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/gd/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/gd/thunderbird-91.4.1.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "49f7b349a5d55ccbcdeb2ca464aac2ff6c0712b6ea1e8f124ca7562913e8c633";
+      sha256 = "9b57c51af6dbdb9c654e0fc96fe086c04f4dc482fa3528c9658261b9710bc229";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/gl/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/gl/thunderbird-91.4.1.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "04eca02158c56920f08368bb78ce7affaaa3d6793e6a3361b41e3c8856804130";
+      sha256 = "d2d12a17334c0b74904fd5a64294c0ca86430d79ebd765d7118b3451cb361819";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/he/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/he/thunderbird-91.4.1.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "150ea785d46bb8debe554533edd53abc2a5711ddf64268f4479dc0eda2e85be9";
+      sha256 = "da8791864ea612b37839075a85ed446aecd4be941c4f624ed212fa1e4d322768";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/hr/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/hr/thunderbird-91.4.1.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "d837a407f1a117299a7540fd718f4f7cffdf056871ba5f1adf09da5ecd84eb23";
+      sha256 = "11ef3a9c2b7555ef144cc0689265f928c29b01fccded781d76a3f2105d15ed67";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/hsb/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/hsb/thunderbird-91.4.1.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "d7e3e2287a2218f80f055c450b67ece63ae97320eef1dca77cd153a2106d4bc9";
+      sha256 = "bce0ebbaa3e19912d74e5a9754a45a93948f41d5fa9dfab77aea03856ea70ef4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/hu/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/hu/thunderbird-91.4.1.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "157a156e393b5a69a326aa0e9be02bd2ae3bd48433382a803ccb9c5c354ed498";
+      sha256 = "dd1b5a48fb175be82967f3b9ca72ea86b2797ebb68285fee143c77ae72a9e659";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/hy-AM/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/hy-AM/thunderbird-91.4.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "bbb783688762040579258fd8650124770f2a1b6ab8dd050df5c8e0bb057510ff";
+      sha256 = "cc172a84b6c586a786a7691eb728e8bce5af253316cec64b989fe2f10f253f95";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/id/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/id/thunderbird-91.4.1.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "f14f33e5c8de0e59839654fd472ca20f592669bd739097831e011b3ad6ca3e3d";
+      sha256 = "6ac4c494569bb7d5a9948d1e19cb273135638b3b0fa487a535d36f2b70c86bfa";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/is/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/is/thunderbird-91.4.1.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "5a6be55557ef79101cf61c4fa684a52be1afa1a972a69e02998a35cbfd3212a3";
+      sha256 = "e98642ccc27cc77180a83b34a55a59f9b653beb993e80647b76b1c2d1fec003a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/it/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/it/thunderbird-91.4.1.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "565299abc53960d3bb7c2a4abac86c2f5864a089aa4b908aceab20651b6d4c25";
+      sha256 = "bada535c73a41318650acb3e744771beea09bf192b3f88e6e8be0de0f9c15b4f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/ja/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ja/thunderbird-91.4.1.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "03244c4102177b81ad105ca31790000314c35813e6fa2efa2020b99b4ac45391";
+      sha256 = "dc30bc5943518dbde7b213df3fdd0b454550612d741e167003efc0463b3fd2ae";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/ka/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ka/thunderbird-91.4.1.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "2640b2cab838dea0f2252898302fe0008c2b3807da4c8c45224047a7975b9461";
+      sha256 = "747b850fdb8cad7607b807bf402e2b6d9b58006c9d8323947c2c991d3d775d1e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/kab/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/kab/thunderbird-91.4.1.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "083cd62d42936adeb069b620b19c7a66f761c40c82b56205626b9e1a6364b64d";
+      sha256 = "fd063bc5e41bec78ad7d006370ecc0be0644a63bb0f5d6cfdda7148790113059";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/kk/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/kk/thunderbird-91.4.1.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "8a973b47dfbe996d8e7dc894bb0cc0b473743eec0caf05f11646b3552c287516";
+      sha256 = "f853aeb878ed181070b192f1b27dd985a6f0b2318500373b23358c53a56c3d97";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/ko/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ko/thunderbird-91.4.1.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "6f7a992d226028a6398932c8bcaf9d522ff72cfbb60336875b83e74d22564967";
+      sha256 = "7444d40c6db9b592d3831115e981208567311a58d47606da6947217e58650e90";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/lt/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/lt/thunderbird-91.4.1.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "76cda4386e76388de5d0b660541f1ae5c40ef31609c329226e07573265b34c05";
+      sha256 = "c7f1cf8b583e6659ec84a0546a3e7828626bae3664de35bc9bcd9fbbb97b56ba";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/lv/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/lv/thunderbird-91.4.1.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "9bc2b1358965e4bdaf875625296d2e40bc6f21709237b38011f82169937cf022";
+      sha256 = "30671983c35bb5c112b2b9755e56a1c36afe5bd03c0f09ba930095880b7ab25a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/ms/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ms/thunderbird-91.4.1.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "5860567197e95c1fbca7585796b34adaf453923be9e726ea33e54e390a7e800f";
+      sha256 = "233464fc722e9deba822c3cec0c7ebf5b1b72295a6847a3203410784e8e33f0f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/nb-NO/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/nb-NO/thunderbird-91.4.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "5b50ebc02d93303547704312f11e10a5470bcc116da55573f6d256ec90e5d5cc";
+      sha256 = "299f50b9d2077ea8300959cd90aaf3113b5fc5da77fa66617533d2b6d4a11f72";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/nl/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/nl/thunderbird-91.4.1.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "99756c19427ab548d6cd64a5805549ed51af95e41eaa97eff821bfea2b3691ee";
+      sha256 = "4374b5d175d4c990d706241083886e9459f9aa51b1c9862dc02c5134df6a8523";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/nn-NO/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/nn-NO/thunderbird-91.4.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "2888793a3490fbebd2148128662a63a7a482c7d770e8e4c4be3e725af5eb5c1c";
+      sha256 = "786c23053df9dedb177bd22ab3cf78e3083b73b9bd11b45c17bae35921f8c762";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/pa-IN/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/pa-IN/thunderbird-91.4.1.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "a4d6ffa089fc309e208508986f91283a6c839f8cee109e073d3d6a0d25397292";
+      sha256 = "cc3df207d658cdc6b13e8d67dec598afa477520d81d6c4bda23bfa0a3bdfe9f7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/pl/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/pl/thunderbird-91.4.1.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "7a9f677c39700e7b1212047327f1b080004c42c3094eb4bf7a487b39a65458df";
+      sha256 = "9471ddfc7086cf21222eb1de8c5de76f61f0d9479d6691fa4cce16ea4a481361";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/pt-BR/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/pt-BR/thunderbird-91.4.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "0967d12e7cd9d2fd4d55dc75bfb02fb07ca61c60d2f0ccb295b8c264cb565957";
+      sha256 = "0e466b0a1a0e258b9d3b5288902dcf4fc114a192ba156d956d8be9bbcea1a42a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/pt-PT/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/pt-PT/thunderbird-91.4.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "1be6b84a42c215928de2dbb36bd9e0f01303eb1ba4224126c12a98205316746c";
+      sha256 = "83b0e2bfe657f16b88906f2a70a0d954b73d053c01b545812e40d02f343b50ef";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/rm/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/rm/thunderbird-91.4.1.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "54b4f955412f9c53d37188f42be5a7cc8ee1357458171d6134299145acde76d5";
+      sha256 = "507059e7cad7c0665c0468436e334a3c2cef258751fe97e90a731d067e0cc672";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/ro/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ro/thunderbird-91.4.1.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "4f31a0eeafbe516c93b00b5ac5e7b06a35db471a19965955b8f25713984b7b9a";
+      sha256 = "61e4d4652ecbce03421dab02aa15f49e4a782cf63380d76207173afd07dc6183";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/ru/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/ru/thunderbird-91.4.1.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "247c78a1dc8d6013744de242efc6ddac6f2f3d10d86e1348769e90124f5eb6df";
+      sha256 = "b3c1d07ace631bc8117d1003029216a5579a64f7e83a4289877fe5101c0b261b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/sk/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/sk/thunderbird-91.4.1.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "73b69b08de497cc2c5e50e7226b7c6de61546b1198a6757b8a63c6399fd2a9e9";
+      sha256 = "ec8949eec7a001e075888500749f7b0211996afe4d25dc081df34e20a214e835";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/sl/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/sl/thunderbird-91.4.1.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "3d822e2c79d38e26353cb8810b8468580d2157b62aadcfca1d96874bb7ee0681";
+      sha256 = "026a55fbb143621ba98d2218ff72c5eea2491ea74e3abbf46dc4d8405a7df327";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/sq/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/sq/thunderbird-91.4.1.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "c8e185af246c6059e85554968fa91c1ff0477e824fdf05d1860dc36ff7dd8a47";
+      sha256 = "0a22abf8961874edc88fb7654d8b66694050f98ed4440eb7aabbf7a4969bd993";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/sr/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/sr/thunderbird-91.4.1.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "61da012cc5aa8dab7855deef3f26c20efdbca12c788caede60a4825289850b72";
+      sha256 = "4304ac8a1283065aabc63b39734cd7d023a82b590cc1d255093d73cc1155e30c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/sv-SE/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/sv-SE/thunderbird-91.4.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "064e2ca29bd5c1d63bae872d4419b537d5a75bec75a602847a115da15a0dcfae";
+      sha256 = "b2196727748a1d42bc67fcde4df47e7e1661a446e0620e11c64dcc1a7db0da06";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/th/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/th/thunderbird-91.4.1.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "791adf04802aca3323c4a7659a83ca3affa9b93c1ae9a011447d6ad638f256df";
+      sha256 = "de52a8a1a64b26d29721be3843c12df6bdb732354c9263782f989918a51dee2a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/tr/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/tr/thunderbird-91.4.1.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "494fa955b325df483902df74c99e0a5a24c50670bcac7f62d5da5989b4c3555f";
+      sha256 = "bba119fb7749350c06760d6885a89efa0632098e593f22a23451a592dbea9e1d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/uk/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/uk/thunderbird-91.4.1.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "aaf7fd5dd2c2ad95cf0ea5333a59e6f953e36ad2b19b0a24cd42075ff6a96e44";
+      sha256 = "34198ab171b0783d0ac592e0a72ea355aae75b950f2569d2e6ed30a9b1a5d2f8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/uz/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/uz/thunderbird-91.4.1.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "5ae7dee3ae3c33a0278c5b10401be741ed91d2cef3d00c9e6686d065830e0f32";
+      sha256 = "1adcedb12bb9485da32b47558352d5fa9182fd8411450386d9ac8a528b40cca4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/vi/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/vi/thunderbird-91.4.1.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "455183213bfc0936a71c3f8fd35d4b753cfafb5c72df514232df97b2af75f10f";
+      sha256 = "c22cd41206fd7e4d80c6855c7217071be3890e84460cd030f4029a910c672bb2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/zh-CN/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/zh-CN/thunderbird-91.4.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "13b600caa35aae9e6d82b7969afeb6951f2d2824a4c5af33eecf7b004e421ebd";
+      sha256 = "744515522d16884b4067a75412977243753baece132c4d5c815ac60d5a26bd7b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.3.0/linux-i686/zh-TW/thunderbird-91.3.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.4.1/linux-i686/zh-TW/thunderbird-91.4.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "4f01236b849f03599df14efc1f4cf7519077b72697758f41c69ce84a084ac37e";
+      sha256 = "21fcb4c30b76c607e215363688966ea92ae1f3cd658ce7c9118f3d0f2cfff729";
     }
     ];
 }
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch b/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch
new file mode 100644
index 0000000000000..c4e29f6355cf0
--- /dev/null
+++ b/pkgs/applications/networking/mailreaders/thunderbird/no-buildconfig.patch
@@ -0,0 +1,13 @@
+Remove about:buildconfig.  If used as-is, it would add unnecessary runtime dependencies.
+--- a/comm/mail/base/jar.mn
++++ b/comm/mail/base/jar.mn
+@@ -119,9 +119,6 @@ messenger.jar:
+ % override chrome://mozapps/content/profile/profileDowngrade.js chrome://messenger/content/profileDowngrade.js
+ % override chrome://mozapps/content/profile/profileDowngrade.xhtml chrome://messenger/content/profileDowngrade.xhtml
+ 
+-*   content/messenger/buildconfig.html              (content/buildconfig.html)
+-% override chrome://global/content/buildconfig.html chrome://messenger/content/buildconfig.html
+-
+ # L10n resources and overrides.
+ % override chrome://mozapps/locale/profile/profileDowngrade.dtd chrome://messenger/locale/profileDowngrade.dtd
+ % override chrome://global/locale/netError.dtd chrome://messenger/locale/netError.dtd
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
index 30770390e6cd6..1ba3c40ea98b6 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
@@ -10,14 +10,16 @@ in
 rec {
   thunderbird = common rec {
     pname = "thunderbird";
-    version = "91.3.1";
+    version = "91.4.1";
     application = "comm/mail";
     binaryName = pname;
     src = fetchurl {
       url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
-      sha512 = "4938f676ddeeba37da1f2086d76a2ef2c870738169f7e10b35b83e4ed772df634825ee25c28232df1ac1e3a18a9466e97dc7ee318abbf43f1f4ce6479a13975b";
+      sha512 = "aa442ef886277f5091ebadff907a29451a0ee6542f24adb5c1fb4223193d719c2cb01474d3ccd96067695b19ce3cbf042893b0beaaeb7c65e0660ab5072bf82e";
     };
     patches = [
+      # The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.
+      ./no-buildconfig.patch
     ];
 
     meta = with lib; {
diff --git a/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix b/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix
index 4b357324889d5..c44b5f72724ee 100644
--- a/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix
+++ b/pkgs/applications/networking/mailreaders/tutanota-desktop/default.nix
@@ -3,12 +3,12 @@ electron, libsecret }:
 
 stdenv.mkDerivation rec {
   pname = "tutanota-desktop";
-  version = "3.89.5";
+  version = "3.89.25";
 
   src = fetchurl {
     url = "https://github.com/tutao/tutanota/releases/download/tutanota-release-${version}/${pname}-${version}-unpacked-linux.tar.gz";
     name = "tutanota-desktop-${version}.tar.gz";
-    sha256 = "sha256-DBqeLoHPr/OwiA3cWO5MYoHSBqrEmP8j8q+rd50hYH8=";
+    sha256 = "sha256-0j0vL45kpZeBBdW7NY8lvseYUhXGPoCbOdUtT97fMiI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/mullvad-vpn/default.nix b/pkgs/applications/networking/mullvad-vpn/default.nix
index e03d6fa23f5ab..fd08817f026d1 100644
--- a/pkgs/applications/networking/mullvad-vpn/default.nix
+++ b/pkgs/applications/networking/mullvad-vpn/default.nix
@@ -33,6 +33,7 @@ let deps = [
     xorg.libXrender
     xorg.libXtst
     xorg.libxcb
+    xorg.libxshmfence
     nspr
     nss
     systemd
@@ -42,11 +43,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "mullvad-vpn";
-  version = "2021.5";
+  version = "2021.6";
 
   src = fetchurl {
     url = "https://github.com/mullvad/mullvadvpn-app/releases/download/${version}/MullvadVPN-${version}_amd64.deb";
-    sha256 = "186va4pllimmcqnlbry5ni8gi8p3mbpgjf7sdspmhy2hlfjvlz47";
+    sha256 = "0vpahryw4hm1k9p4vang84ji88znz67s7wxnwqndf02a627n7fcm";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/ncgopher/default.nix b/pkgs/applications/networking/ncgopher/default.nix
index d96caf372efa4..50ad2d312f942 100644
--- a/pkgs/applications/networking/ncgopher/default.nix
+++ b/pkgs/applications/networking/ncgopher/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ncgopher";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "jansc";
     repo = "ncgopher";
     rev = "v${version}";
-    sha256 = "sha256-Yny5zZe5x7/pWda839HcFkHFuL/jl1Q7ykTZzKy871I=";
+    sha256 = "sha256-1tiijW3q/8zS9437G9gJDzBtxqVE3QUxgw74P7rcv98=";
   };
 
-  cargoSha256 = "sha256-C4V1WsAUFtr+N64zyBk1V0E8gTM/U54q03J6Nj8ReLk=";
+  cargoSha256 = "sha256-LA8LjY8oZslGFQhKR8fJ2heYxSBqUnmeejXKRvZXjIs=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
diff --git a/pkgs/applications/networking/nextcloud-client/0001-When-creating-the-autostart-entry-do-not-use-an-abso.patch b/pkgs/applications/networking/nextcloud-client/0001-When-creating-the-autostart-entry-do-not-use-an-abso.patch
index 73325791fc2bb..d3bac6af08d2a 100644
--- a/pkgs/applications/networking/nextcloud-client/0001-When-creating-the-autostart-entry-do-not-use-an-abso.patch
+++ b/pkgs/applications/networking/nextcloud-client/0001-When-creating-the-autostart-entry-do-not-use-an-abso.patch
@@ -1,26 +1,24 @@
-From bade623bb98c957d9a274df75b58296beb8ae6a7 Mon Sep 17 00:00:00 2001
-From: Marvin Dostal <maffinmaffinmaffinmaffin@gmail.com>
-Date: Sun, 17 Oct 2021 21:26:51 +0200
+From 54255deceaaaf118e9daadc3dd9f517c33bdd658 Mon Sep 17 00:00:00 2001
+From: Ilan Joselevich <personal@ilanjoselevich.com>
+Date: Tue, 30 Nov 2021 22:50:43 +0200
 Subject: [PATCH] When creating the autostart entry, do not use an absolute
- path
 
 ---
  src/common/utility_unix.cpp | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/common/utility_unix.cpp b/src/common/utility_unix.cpp
-index 010408395..16964c64f 100644
+index 887213f09..c66468306 100644
 --- a/src/common/utility_unix.cpp
 +++ b/src/common/utility_unix.cpp
-@@ -83,7 +83,7 @@ void setLaunchOnStartup_private(const QString &appName, const QString &guiName,
-         ts << QLatin1String("[Desktop Entry]") << endl
-            << QLatin1String("Name=") << guiName << endl
-            << QLatin1String("GenericName=") << QLatin1String("File Synchronizer") << endl
--           << QLatin1String("Exec=\"") << executablePath << "\" --background" << endl
+@@ -88,7 +88,7 @@ void setLaunchOnStartup_private(const QString &appName, const QString &guiName,
+         ts << QLatin1String("[Desktop Entry]\n")
+            << QLatin1String("Name=") << guiName << QLatin1Char('\n')
+            << QLatin1String("GenericName=") << QLatin1String("File Synchronizer\n")
+-           << QLatin1String("Exec=\"") << executablePath << "\" --background\n"
 +           << QLatin1String("Exec=") << "nextcloud --background" << endl
-            << QLatin1String("Terminal=") << "false" << endl
-            << QLatin1String("Icon=") << APPLICATION_ICON_NAME << endl
-            << QLatin1String("Categories=") << QLatin1String("Network") << endl
+            << QLatin1String("Terminal=") << "false\n"
+            << QLatin1String("Icon=") << APPLICATION_ICON_NAME << QLatin1Char('\n')
+            << QLatin1String("Categories=") << QLatin1String("Network\n")
 -- 
-2.31.1
-
+2.33.1
diff --git a/pkgs/applications/networking/nextcloud-client/default.nix b/pkgs/applications/networking/nextcloud-client/default.nix
index 071f5adfd497e..bbdddbf60682d 100644
--- a/pkgs/applications/networking/nextcloud-client/default.nix
+++ b/pkgs/applications/networking/nextcloud-client/default.nix
@@ -21,13 +21,13 @@
 
 mkDerivation rec {
   pname = "nextcloud-client";
-  version = "3.3.6";
+  version = "3.4.1";
 
   src = fetchFromGitHub {
     owner = "nextcloud";
     repo = "desktop";
     rev = "v${version}";
-    sha256 = "sha256-HhFm8rIsDaV4QmvHplbj49gf1vYCZyBl8WH5bvRHT7I=";
+    sha256 = "sha256-1fUk4PUFkWcLOvrYvM+K+ZarUSeq/JtDU2bHHPoAoC8=";
   };
 
   patches = [
diff --git a/pkgs/applications/networking/owncloud-client/default.nix b/pkgs/applications/networking/owncloud-client/default.nix
index 15688d383b38f..e3919430c8fce 100644
--- a/pkgs/applications/networking/owncloud-client/default.nix
+++ b/pkgs/applications/networking/owncloud-client/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "owncloud-client";
-  version = "2.9.1.5500";
+  version = "2.9.2.6206";
 
   src = fetchurl {
     url = "https://download.owncloud.com/desktop/ownCloud/stable/${version}/source/ownCloud-${version}.tar.xz";
-    sha256 = "0h4dclxr6kmhmx318wvxz36lhyqw84q0mg4c6di6p230mp8b1l4v";
+    sha256 = "sha256-i6TmJFEuH4A1jTyoKiJoVU7yC+AXZIH4miYSk3XzVEo=";
   };
 
   nativeBuildInputs = [ pkg-config cmake extra-cmake-modules ];
diff --git a/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix b/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
index 0f7a806ed8f12..02c383b30ff71 100644
--- a/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
+++ b/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, jre, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  version = "6.9.4";
+  version = "6.9.5";
   pname = "frostwire";
 
   src = fetchurl {
     url = "https://dl.frostwire.com/frostwire/${version}/frostwire-${version}.amd64.tar.gz";
-    sha256 = "sha256-sWvQDUJGytKA9/UbC7fOk6WhDtTqdhyRmW9GvHFMZh4=";
+    sha256 = "sha256-jMv4wIBsmgg2Q/Q/QDJnWa5wUeD1ur6Lu6eXOCLaGg4=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/networking/p2p/rqbit/default.nix b/pkgs/applications/networking/p2p/rqbit/default.nix
index 0220b12bd4b87..6d037e56ea44f 100644
--- a/pkgs/applications/networking/p2p/rqbit/default.nix
+++ b/pkgs/applications/networking/p2p/rqbit/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rqbit";
-  version = "2.1.2";
+  version = "2.1.3";
 
   src = fetchFromGitHub {
     owner = "ikatson";
     repo = "rqbit";
     rev = "v${version}";
-    sha256 = "0b9wxjwnhhs3vi1x55isdqck67lh1r7nf3dwmhlwcg5887smwp5c";
+    sha256 = "sha256-ovg+oMlt3XzOxG9w/5Li3awMyRdIt1/JnIFfZktftkw=";
   };
 
-  cargoSha256 = "1s278d73mwqpq3n5vmrn5jb6g5dafaaplnhs8346pwcc6y16w3d3";
+  cargoSha256 = "sha256-0CA0HwFI86VfSyBNn0nlC1n4BVgOc9BLh1it7ReT8+Y=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
 
diff --git a/pkgs/applications/networking/p2p/stig/default.nix b/pkgs/applications/networking/p2p/stig/default.nix
index 8b1a668090b7d..dce6baa438fb8 100644
--- a/pkgs/applications/networking/p2p/stig/default.nix
+++ b/pkgs/applications/networking/p2p/stig/default.nix
@@ -40,11 +40,12 @@ python3Packages.buildPythonApplication rec {
 
   pytestFlagsArray = [
     "tests"
-    # test_string__month_day_hour_minute_second fails on darwin
-    "--deselect=tests/client_test/ttypes_test.py::TestTimestamp::test_string__month_day_hour_minute_second"
     # TestScrollBarWithScrollable.test_wrapping_bug fails
     "--deselect=tests/tui_test/scroll_test.py::TestScrollBarWithScrollable::test_wrapping_bug"
+    # https://github.com/rndusr/stig/issues/214
+    "--deselect=tests/completion_test/classes_test.py::TestCandidates::test_candidates_are_sorted_case_insensitively"
   ] ++ lib.optionals stdenv.isDarwin [
+    "--deselect=tests/client_test/ttypes_test.py::TestTimestamp::test_string__month_day_hour_minute_second"
     "--deselect=tests/client_test/aiotransmission_test/api_torrent_test.py"
     "--deselect=tests/client_test/aiotransmission_test/rpc_test.py"
   ];
diff --git a/pkgs/applications/networking/p2p/tixati/default.nix b/pkgs/applications/networking/p2p/tixati/default.nix
index 01e119dafc187..4a0669d7d0afc 100644
--- a/pkgs/applications/networking/p2p/tixati/default.nix
+++ b/pkgs/applications/networking/p2p/tixati/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tixati";
-  version = "2.85";
+  version = "2.87";
 
   src = fetchurl {
     url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz";
-    sha256 = "sha256-grmJ52x2NcsgXw5BWrEGF9+7TYS/45HgHUXuZB+hVK4=";
+    sha256 = "sha256-URWLuZ/gtv/sX5+11ORu9SUZFIZUuKPn0CUQ1xaSQcQ=";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/networking/p2p/torrential/default.nix b/pkgs/applications/networking/p2p/torrential/default.nix
index 1954ebe543da2..50dd38d8d246b 100644
--- a/pkgs/applications/networking/p2p/torrential/default.nix
+++ b/pkgs/applications/networking/p2p/torrential/default.nix
@@ -25,13 +25,13 @@
 
 stdenv.mkDerivation rec {
   pname = "torrential";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "davidmhewitt";
     repo = "torrential";
     rev = version;
-    sha256 = "sha256-78eNIz7Lgeq4LTog04TMNuL27Gv0UZ0poBaw8ia1R/g=";
+    sha256 = "sha256-W9Is6l8y5XSlPER2BLlf+cyMPPdEQuaP4xM59VhfDE0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/p2p/tribler/default.nix b/pkgs/applications/networking/p2p/tribler/default.nix
index 3aa5b4a8da829..774aea642d43b 100644
--- a/pkgs/applications/networking/p2p/tribler/default.nix
+++ b/pkgs/applications/networking/p2p/tribler/default.nix
@@ -1,26 +1,35 @@
-{ stdenv, fetchurl, python3Packages, makeWrapper
-, enablePlayer ? true, libvlc, qt5, lib }:
+{ stdenv, lib, fetchurl, python3, makeWrapper
+, libtorrent-rasterbar-1_2_x, qt5
+}:
 
+let
+  libtorrent = (python3.pkgs.toPythonModule (
+    libtorrent-rasterbar-1_2_x.override { python = python3; })).python;
+
+  aiohttp-apispec = python3.pkgs.callPackage 
+    ../../../../development/python-modules/aiohttp-apispec/unstable.nix { };
+in
 stdenv.mkDerivation rec {
   pname = "tribler";
-  version = "7.4.4";
+  version = "7.10.0";
 
   src = fetchurl {
     url = "https://github.com/Tribler/tribler/releases/download/v${version}/Tribler-v${version}.tar.xz";
-    sha256 = "0hxiyf1k07ngym2p8r1b5mcx1y2crkyz43gi9sgvsvsyijyaff3p";
+    sha256 = "1x45z23d1cqf0lai7wg5ki7gi2vba5hqk0swhggzplcjwma4wmh9";
   };
 
   nativeBuildInputs = [
-    python3Packages.wrapPython
+    python3.pkgs.wrapPython
     makeWrapper
   ];
 
   buildInputs = [
-    python3Packages.python
+    python3.pkgs.python
   ];
 
-  pythonPath = with python3Packages; [
-    libtorrent-rasterbar
+  pythonPath = [
+    libtorrent
+  ] ++ (with python3.pkgs; [
     twisted
     netifaces
     pycrypto
@@ -42,49 +51,44 @@ stdenv.mkDerivation rec {
     pony
     lz4
     pyqtgraph
+    pyyaml
+    aiohttp
+    aiohttp-apispec
+    faker
+    sentry-sdk
+    pytest-asyncio
+    pytest-timeout
+    asynctest
+    yappi
 
     # there is a BTC feature, but it requires some unclear version of
     # bitcoinlib, so this doesn't work right now.
     # bitcoinlib
-  ];
-
-  postPatch = ''
-    ${lib.optionalString enablePlayer ''
-      substituteInPlace "./TriblerGUI/vlc.py" --replace "ctypes.CDLL(p)" "ctypes.CDLL('${libvlc}/lib/libvlc.so')"
-      substituteInPlace "./TriblerGUI/widgets/videoplayerpage.py" \
-        --replace "if vlc and vlc.plugin_path" "if vlc" \
-        --replace "os.environ['VLC_PLUGIN_PATH'] = vlc.plugin_path" "os.environ['VLC_PLUGIN_PATH'] = '${libvlc}/lib/vlc/plugins'"
-    ''}
-  '';
+  ]);
 
   installPhase = ''
     mkdir -pv $out
     # Nasty hack; call wrapPythonPrograms to set program_PYTHONPATH.
     wrapPythonPrograms
     cp -prvd ./* $out/
-    makeWrapper ${python3Packages.python}/bin/python $out/bin/tribler \
+    makeWrapper ${python3.pkgs.python}/bin/python $out/bin/tribler \
         --set QT_QPA_PLATFORM_PLUGIN_PATH ${qt5.qtbase.bin}/lib/qt-*/plugins/platforms \
-        --set _TRIBLERPATH $out \
-        --set PYTHONPATH $out:$program_PYTHONPATH \
+        --set _TRIBLERPATH $out/src \
+        --set PYTHONPATH $out/src/tribler-core:$out/src/tribler-common:$out/src/tribler-gui:$program_PYTHONPATH \
         --set NO_AT_BRIDGE 1 \
         --run 'cd $_TRIBLERPATH' \
-        --add-flags "-O $out/run_tribler.py" \
-        ${lib.optionalString enablePlayer ''
-          --prefix LD_LIBRARY_PATH : ${libvlc}/lib
-        ''}
+        --add-flags "-O $out/src/run_tribler.py"
 
-    mkdir -p $out/share/applications $out/share/icons $out/share/man/man1
-    cp $out/Tribler/Main/Build/Ubuntu/tribler.desktop $out/share/applications/tribler.desktop
-    cp $out/Tribler/Main/Build/Ubuntu/tribler_big.xpm $out/share/icons/tribler.xpm
-    cp $out/Tribler/Main/Build/Ubuntu/tribler.1 $out/share/man/man1/tribler.1
+    mkdir -p $out/share/applications $out/share/icons
+    cp $out/build/debian/tribler/usr/share/applications/tribler.desktop $out/share/applications/tribler.desktop
+    cp $out/build/debian/tribler/usr/share/pixmaps/tribler_big.xpm $out/share/icons/tribler.xpm
   '';
 
   meta = with lib; {
-    maintainers = with maintainers; [ xvapx ];
+    maintainers = with maintainers; [ xvapx viric ];
     homepage = "https://www.tribler.org/";
     description = "A completely decentralised P2P filesharing client based on the Bittorrent protocol";
     license = licenses.lgpl21;
     platforms = platforms.linux;
-    broken = true; # 2021-03-17 see https://github.com/NixOS/nixpkgs/issues/93053
   };
 }
diff --git a/pkgs/applications/networking/powerdns-admin/default.nix b/pkgs/applications/networking/powerdns-admin/default.nix
index 9dba30e3d8843..8ea5c4904f119 100644
--- a/pkgs/applications/networking/powerdns-admin/default.nix
+++ b/pkgs/applications/networking/powerdns-admin/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchFromGitHub, mkYarnPackage, writeText, python3 }:
+{ lib, stdenv, fetchFromGitHub, mkYarnPackage, nixosTests, writeText, python3 }:
 
 let
-  version = "0.2.3";
+  version = "0.2.4";
   src = fetchFromGitHub {
     owner = "ngoduykhanh";
     repo = "PowerDNS-Admin";
     rev = "v${version}";
-    sha256 = "16faz57d77mxkflkvwyi8gb9wvnq2vhw79b84v1fmqvxri1yaphw";
+    sha256 = "sha256-xJ0NNnDVwGl+t9q1INPhCxcTmQayYBYdjEG0PbPCI9E=";
   };
 
   python = python3.override {
@@ -22,9 +22,9 @@ let
   };
 
   pythonDeps = with python.pkgs; [
-    flask flask_assets flask_login flask_sqlalchemy flask_migrate flask-seasurf flask_mail flask-sslify
-    mysqlclient sqlalchemy
-    configobj bcrypt requests ldap pyotp qrcode dnspython
+    flask flask_assets flask_login flask_sqlalchemy flask_migrate flask-seasurf flask_mail flask-session flask-sslify
+    mysqlclient psycopg2 sqlalchemy
+    cffi configobj cryptography bcrypt requests ldap pyotp qrcode dnspython
     gunicorn python3-saml pyopenssl pytz cssmin jsmin authlib bravado-core
     lima pytimeparse pyyaml
   ];
@@ -91,6 +91,7 @@ in stdenv.mkDerivation rec {
 
   postPatch = ''
     rm -r powerdnsadmin/static powerdnsadmin/assets.py
+    sed -i "s/id:/'id':/" migrations/versions/787bdba9e147_init_db.py
   '';
 
   installPhase = ''
@@ -100,7 +101,7 @@ in stdenv.mkDerivation rec {
     wrapPythonPrograms
 
     mkdir -p $out/share $out/bin
-    cp -r powerdnsadmin $out/share/powerdnsadmin
+    cp -r migrations powerdnsadmin $out/share/
 
     ln -s ${assets} $out/share/powerdnsadmin/static
     ln -s ${assetsPy} $out/share/powerdnsadmin/assets.py
@@ -114,10 +115,16 @@ in stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
+  passthru = {
+    # PYTHONPATH of all dependencies used by the package
+    pythonPath = python3.pkgs.makePythonPath pythonDeps;
+    tests = nixosTests.powerdns-admin;
+  };
+
   meta = with lib; {
     description = "A PowerDNS web interface with advanced features";
     homepage = "https://github.com/ngoduykhanh/PowerDNS-Admin";
     license = licenses.mit;
-    maintainers = with maintainers; [ zhaofengli ];
+    maintainers = with maintainers; [ Flakebi zhaofengli ];
   };
 }
diff --git a/pkgs/applications/networking/powerdns-admin/package.json b/pkgs/applications/networking/powerdns-admin/package.json
index cb21306308cfc..84f495920744e 100644
--- a/pkgs/applications/networking/powerdns-admin/package.json
+++ b/pkgs/applications/networking/powerdns-admin/package.json
@@ -12,5 +12,5 @@
     "multiselect": "^0.9.12"
   },
   "name": "powerdns-admin-assets",
-  "version": "0.2.3"
+  "version": "0.2.4"
 }
diff --git a/pkgs/applications/networking/powerdns-admin/yarndeps.nix b/pkgs/applications/networking/powerdns-admin/yarndeps.nix
index 02d9eb0046e30..7dcd54b53c214 100644
--- a/pkgs/applications/networking/powerdns-admin/yarndeps.nix
+++ b/pkgs/applications/networking/powerdns-admin/yarndeps.nix
@@ -114,11 +114,11 @@
       };
     }
     {
-      name = "bn.js___bn.js_4.11.9.tgz";
+      name = "bn.js___bn.js_4.12.0.tgz";
       path = fetchurl {
-        name = "bn.js___bn.js_4.11.9.tgz";
-        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz";
-        sha1 = "26d556829458f9d1e81fc48952493d0ba3507828";
+        name = "bn.js___bn.js_4.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz";
+        sha1 = "775b3f278efbb9718eec7361f483fb36fbbfea88";
       };
     }
     {
@@ -530,11 +530,11 @@
       };
     }
     {
-      name = "elliptic___elliptic_6.5.3.tgz";
+      name = "elliptic___elliptic_6.5.4.tgz";
       path = fetchurl {
-        name = "elliptic___elliptic_6.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz";
-        sha1 = "cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6";
+        name = "elliptic___elliptic_6.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz";
+        sha1 = "da37cebd31e79a1367e941b592ed1fbebd58abbb";
       };
     }
     {
diff --git a/pkgs/applications/networking/protonmail-bridge/default.nix b/pkgs/applications/networking/protonmail-bridge/default.nix
index c15720ffc380a..1283f0d7fa806 100644
--- a/pkgs/applications/networking/protonmail-bridge/default.nix
+++ b/pkgs/applications/networking/protonmail-bridge/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "protonmail-bridge";
-  version = "1.8.7";
+  version = "1.8.12";
 
   src = fetchFromGitHub {
     owner = "ProtonMail";
     repo = "proton-bridge";
     rev = "br-${version}";
-    sha256 = "sha256-bynPuAdeX4WxYdbjMkR9ANuYWYOINB0OHnKTmIrCB6E=";
+    sha256 = "sha256-CkvD7PKx2Gm2KgsIIqQ9l1Z3tWlhqIbW0sxCV2UBYTE=";
   };
 
-  vendorSha256 = "sha256-g2vl1Ctxr2U+D/k9u9oXuZ1OWaABIJs0gmfhWh13ZFM=";
+  vendorSha256 = "sha256-Pz3xRTwlnJGh1XvxIbyjvYcMywk/wdp4hYovPLBD494=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/networking/remote/citrix-workspace/generic.nix b/pkgs/applications/networking/remote/citrix-workspace/generic.nix
index 2f9c5f76c5e8a..ac00309611839 100644
--- a/pkgs/applications/networking/remote/citrix-workspace/generic.nix
+++ b/pkgs/applications/networking/remote/citrix-workspace/generic.nix
@@ -3,7 +3,7 @@
 , heimdal, krb5, libsoup, libvorbis, speex, openssl, zlib, xorg, pango, gtk2
 , gnome2, mesa, nss, nspr, gtk_engines, freetype, dconf, libpng12, libxml2
 , libjpeg, libredirect, tzdata, cacert, systemd, libcxxabi, libcxx, e2fsprogs, symlinkJoin
-, libpulseaudio, pcsclite, glib-networking
+, libpulseaudio, pcsclite, glib-networking, llvmPackages_12
 
 , homepage, version, prefix, hash
 
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
     freetype
     gdk-pixbuf
     gnome2.gtkglext
+    glib-networking
     webkitgtk
     gtk2
     gtk2-x11
@@ -98,7 +99,8 @@ stdenv.mkDerivation rec {
     xorg.libXtst
     zlib
   ] ++ lib.optional (lib.versionOlder version "20.04") e2fsprogs
-    ++ lib.optional (lib.versionAtLeast version "20.10") libpulseaudio;
+    ++ lib.optional (lib.versionAtLeast version "20.10") libpulseaudio
+    ++ lib.optional (lib.versionAtLeast version "21.12") llvmPackages_12.libunwind;
 
   runtimeDependencies = [
     glib
@@ -119,10 +121,11 @@ stdenv.mkDerivation rec {
   installPhase = let
     icaFlag = program:
       if (builtins.match "selfservice(.*)" program) != null then "--icaroot"
+      else if (lib.versionAtLeast version "21.12" && builtins.match "wfica(.*)" program != null) then null
       else "-icaroot";
     wrap = program: ''
       wrapProgram $out/opt/citrix-icaclient/${program} \
-        --add-flags "${icaFlag program} $ICAInstDir" \
+        ${lib.optionalString (icaFlag program != null) ''--add-flags "${icaFlag program} $ICAInstDir"''} \
         --set ICAROOT "$ICAInstDir" \
         --prefix LD_LIBRARY_PATH : "$ICAInstDir:$ICAInstDir/lib" \
         --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
diff --git a/pkgs/applications/networking/remote/citrix-workspace/sources.nix b/pkgs/applications/networking/remote/citrix-workspace/sources.nix
index 7311acf827838..12bda3f98ad43 100644
--- a/pkgs/applications/networking/remote/citrix-workspace/sources.nix
+++ b/pkgs/applications/networking/remote/citrix-workspace/sources.nix
@@ -122,6 +122,17 @@ let
       x86suffix = "25";
       homepage  = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
     };
+
+    "21.12.0" = {
+      major     = "21";
+      minor     = "12";
+      patch     = "0";
+      x64hash   = "de81deab648e1ebe0ddb12aa9591c8014d7fad4eba0db768f25eb156330bb34d";
+      x86hash   = "3746cdbe26727f7f6fb85fbe5f3e6df0322d79bb66e3a70158b22cb4f6b6b292";
+      x64suffix = "18";
+      x86suffix = "18";
+      homepage  = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
+    };
   };
 
   # Retain attribute-names for abandoned versions of Citrix workspace to
diff --git a/pkgs/applications/networking/remote/nice-dcv-client/default.nix b/pkgs/applications/networking/remote/nice-dcv-client/default.nix
index 3344174cb2a01..20b850328875b 100644
--- a/pkgs/applications/networking/remote/nice-dcv-client/default.nix
+++ b/pkgs/applications/networking/remote/nice-dcv-client/default.nix
@@ -1,10 +1,11 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , glib
 , libX11
 , gst_all_1
 , sqlite
-, epoxy
+, libepoxy
 , pango
 , cairo
 , gdk-pixbuf
@@ -16,22 +17,23 @@
 , gtk3
 , libselinux
 , libxml2
+, libffi
 , python3Packages
 , cpio
 , autoPatchelfHook
+, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "nice-dcv-client";
-  version = "2020.2.1737-1";
-
+  version = "2021.2.3797-1";
   src =
     fetchurl {
-      url = "https://d1uj6qtbmh3dt5.cloudfront.net/2020.2/Clients/nice-dcv-viewer-${version}.el8.x86_64.rpm";
-      sha256 = "sha256-SUpfHd/Btc07cfjc3zx5I5BiNatr/c4E2/mfJuU4R1E=";
+      url = "https://d1uj6qtbmh3dt5.cloudfront.net/2021.2/Clients/nice-dcv-viewer-${version}.el8.x86_64.rpm";
+      sha256 = "sha256-iLz25SB5v7ghkAZOMGPmpNaPihd8ikzCQS//r1xBNRU=";
     };
 
-  nativeBuildInputs = [ autoPatchelfHook python3Packages.rpm ];
+  nativeBuildInputs = [ autoPatchelfHook wrapGAppsHook python3Packages.rpm ];
   unpackPhase = ''
     rpm2cpio $src | ${cpio}/bin/cpio -idm
   '';
@@ -47,7 +49,7 @@ stdenv.mkDerivation rec {
     pcsclite
     gtk3
     cairo
-    epoxy
+    libepoxy
     pango
     gdk-pixbuf
     gst_all_1.gstreamer
@@ -57,31 +59,28 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p $out/bin/
     mkdir -p $out/lib64/
-
     mv usr/bin/dcvviewer $out/bin/dcvviewer
     mv usr/lib64/* $out/lib64/
-
     mkdir -p $out/libexec/dcvviewer
     mv usr/libexec/dcvviewer/dcvviewer $out/libexec/dcvviewer/dcvviewer
     patchelf \
       --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
       $out/libexec/dcvviewer/dcvviewer
-
     # Fix the wrapper script to have the right basedir.
     sed -i "s#basedir=/usr#basedir=$out#" $out/bin/dcvviewer
-
     mv usr/share $out/
+
     ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas
 
-    # broken symlink, seems to give a warning message if i don't delete it
-    rm $out/lib64/dcvviewer/gio/modules/libdconfsettings.so
+    # we already ship libffi.so.7
+    ln -s ${lib.getLib libffi}/lib/libffi.so $out/lib64/libffi.so.6
   '';
 
   meta = with lib; {
     description = "High-performance remote display protocol";
     homepage = "https://aws.amazon.com/hpc/dcv/";
     license = licenses.unfree;
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ rmcgibbo ];
   };
 }
diff --git a/pkgs/applications/networking/remote/remmina/default.nix b/pkgs/applications/networking/remote/remmina/default.nix
index f61a00f89ada0..11fcde29b8826 100644
--- a/pkgs/applications/networking/remote/remmina/default.nix
+++ b/pkgs/applications/networking/remote/remmina/default.nix
@@ -3,7 +3,7 @@
 , freerdp, libssh, libgcrypt, gnutls
 , pcre2, libdbusmenu-gtk3, libappindicator-gtk3
 , libvncserver, libpthreadstubs, libXdmcp, libxkbcommon
-, libsecret, libsoup, spice-protocol, spice-gtk, epoxy, at-spi2-core
+, libsecret, libsoup, spice-protocol, spice-gtk, libepoxy, at-spi2-core
 , openssl, gsettings-desktop-schemas, json-glib, libsodium, webkitgtk, harfbuzz
 # The themes here are soft dependencies; only icons are missing without them.
 , gnome
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     freerdp libssh libgcrypt gnutls
     pcre2 libdbusmenu-gtk3 libappindicator-gtk3
     libvncserver libpthreadstubs libXdmcp libxkbcommon
-    libsecret libsoup spice-protocol spice-gtk epoxy at-spi2-core
+    libsecret libsoup spice-protocol spice-gtk libepoxy at-spi2-core
     openssl gnome.adwaita-icon-theme json-glib libsodium webkitgtk
     harfbuzz
   ];
diff --git a/pkgs/applications/networking/remote/teamviewer/default.nix b/pkgs/applications/networking/remote/teamviewer/default.nix
index 158f2aa327e0a..08f71bd1a55bd 100644
--- a/pkgs/applications/networking/remote/teamviewer/default.nix
+++ b/pkgs/applications/networking/remote/teamviewer/default.nix
@@ -6,11 +6,11 @@
 
 mkDerivation rec {
   pname = "teamviewer";
-  version = "15.22.3";
+  version = "15.25.5";
 
   src = fetchurl {
     url = "https://dl.tvcdn.de/download/linux/version_15x/teamviewer_${version}_amd64.deb";
-    sha256 = "15fvzhdq7mnx2l2w4byvij8ww16qwdlkbadal60rm66yzv79mv9w";
+    sha256 = "sha256-LtITPS0bLy85dv/zdOo8JcsEZ0ZgtVmM+CcggaYJxXA=";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/networking/remote/waypipe/default.nix b/pkgs/applications/networking/remote/waypipe/default.nix
index eb1ec40cc15a3..8bde51d8937c3 100644
--- a/pkgs/applications/networking/remote/waypipe/default.nix
+++ b/pkgs/applications/networking/remote/waypipe/default.nix
@@ -4,15 +4,15 @@
 }:
 
 stdenv.mkDerivation rec {
-  pname = "waypipe-unstable";
-  version = "0.8.1";
+  pname = "waypipe";
+  version = "0.8.2";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "mstoeckl";
     repo = "waypipe";
     rev = "v${version}";
-    sha256 = "1v08dv3dfz420v51ahz7qgv3429073kmgrf8f66s4c3jlpch2pa1";
+    sha256 = "02q8l1qaahmd41h6v3r46akh7xlqz7fpwwsy15qww4jdvypg6vg4";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config scdoc ];
diff --git a/pkgs/applications/networking/remote/wayvnc/default.nix b/pkgs/applications/networking/remote/wayvnc/default.nix
index f5641c762ecb3..21244a1859b17 100644
--- a/pkgs/applications/networking/remote/wayvnc/default.nix
+++ b/pkgs/applications/networking/remote/wayvnc/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wayvnc";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "any1";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0q48fgh6gf3jicy4bk3kq18h9lhqfq9qz32ri6j9ffvbb8mcw64s";
+    sha256 = "0cws9jfnmxqycmlyllvvqzw4jsbrwwk10v9gy8wifv3c61rwgdkk";
   };
 
   nativeBuildInputs = [ meson pkg-config ninja scdoc wayland-scanner ];
diff --git a/pkgs/applications/networking/shellhub-agent/default.nix b/pkgs/applications/networking/shellhub-agent/default.nix
index ae2dee21fb26a..3128529f0e67e 100644
--- a/pkgs/applications/networking/shellhub-agent/default.nix
+++ b/pkgs/applications/networking/shellhub-agent/default.nix
@@ -9,18 +9,18 @@
 
 buildGoModule rec {
   pname = "shellhub-agent";
-  version = "0.7.2";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "shellhub-io";
     repo = "shellhub";
     rev = "v${version}";
-    sha256 = "02ka7acynkwkml2pavlv4j5vkm6x5aq5sfxgydv26qzs39f1wdgc";
+    sha256 = "saaohHHjX9ws74SXlpP+V9cks0ddLkz04ceY14uoVhA=";
   };
 
   modRoot = "./agent";
 
-  vendorSha256 = "18z3vwcwkyj6hcvl35qmj034237h9l18dvcbx1hxry7qdwv807c9";
+  vendorSha256 = "sha256-Xfzk6Ts6+LzGaMTcbopGG6WT541nkAnZxq/3AlX81ks=";
 
   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 7c9eda762603c..293192908b2eb 100644
--- a/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -10,7 +10,7 @@ assert withQt  -> qt5  != null;
 with lib;
 
 let
-  version = "3.4.9";
+  version = "3.6.1";
   variant = if withQt then "qt" else "cli";
 
 in stdenv.mkDerivation {
@@ -20,7 +20,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
-    sha256 = "084nv4fbgpxsf6b6cfi6cinn8l3wsbn0g8lsd7p2aifjkf15wln6";
+    sha256 = "sha256-BDTtqPtr+I4rQqZ+tdHeJUpn1QW+w7tR/unXyteSWjg=";
   };
 
   cmakeFlags = [
@@ -67,18 +67,18 @@ in stdenv.mkDerivation {
         done
     done
   '' else optionalString withQt ''
-    install -Dm644 -t $out/share/applications ../wireshark.desktop
+    install -Dm644 -t $out/share/applications ../org.wireshark.Wireshark.desktop
 
     install -Dm644 ../image/wsicon.svg $out/share/icons/wireshark.svg
-    mkdir $dev/include/{epan/{wmem,ftypes,dfilter},wsutil,wiretap} -pv
+    mkdir $dev/include/{epan/{wmem,ftypes,dfilter},wsutil/wmem,wiretap} -pv
 
     cp config.h $dev/include/wireshark/
     cp ../ws_*.h $dev/include
     cp ../epan/*.h $dev/include/epan/
-    cp ../epan/wmem/*.h $dev/include/epan/wmem/
     cp ../epan/ftypes/*.h $dev/include/epan/ftypes/
     cp ../epan/dfilter/*.h $dev/include/epan/dfilter/
     cp ../wsutil/*.h $dev/include/wsutil/
+    cp ../wsutil/wmem/*.h $dev/include/wsutil/wmem/
     cp ../wiretap/*.h $dev/include/wiretap
   '');
 
diff --git a/pkgs/applications/networking/sniffers/wireshark/wireshark-lookup-dumpcap-in-path.patch b/pkgs/applications/networking/sniffers/wireshark/wireshark-lookup-dumpcap-in-path.patch
index 549da5436e60e..5829457375f27 100644
--- a/pkgs/applications/networking/sniffers/wireshark/wireshark-lookup-dumpcap-in-path.patch
+++ b/pkgs/applications/networking/sniffers/wireshark/wireshark-lookup-dumpcap-in-path.patch
@@ -11,16 +11,18 @@ Also change execv() to execvp() because we've set argv[0] to "dumpcap"
 and have to enable PATH lookup. Wireshark is not a setuid program, so
 looking in PATH is not a security issue.
 
+EDITED by teto for wireshark 3.6
+
 Signed-off-by: Franz Pletz <fpletz@fnordicwalking.de>
 ---
  capchild/capture_sync.c | 17 ++++++++++++++---
  1 file changed, 14 insertions(+), 3 deletions(-)
 
 diff --git a/capchild/capture_sync.c b/capchild/capture_sync.c
-index 970688e..49914d5 100644
---- a/capchild/capture_sync.c
-+++ b/capchild/capture_sync.c
-@@ -332,7 +332,18 @@ init_pipe_args(int *argc) {
+index f31914886a..df29b6f0ab 100644
+--- a/capture/capture_sync.c
++++ b/capture/capture_sync.c
+@@ -187,7 +187,18 @@ init_pipe_args(int *argc) {
  #ifdef _WIN32
      exename = g_strdup_printf("%s\\dumpcap.exe", progfile_dir);
  #else
@@ -40,7 +42,7 @@ index 970688e..49914d5 100644
  #endif
  
      /* Make that the first argument in the argument list (argv[0]). */
-@@ -729,7 +740,7 @@ sync_pipe_start(capture_options *capture_opts, capture_session *cap_session, voi
+@@ -572,7 +583,7 @@ sync_pipe_start(capture_options *capture_opts, capture_session *cap_session, inf
           */
          dup2(sync_pipe[PIPE_WRITE], 2);
          ws_close(sync_pipe[PIPE_READ]);
@@ -49,7 +51,7 @@ index 970688e..49914d5 100644
          g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s",
                     argv[0], g_strerror(errno));
          sync_pipe_errmsg_to_parent(2, errmsg, "");
-@@ -997,7 +1008,7 @@ sync_pipe_open_command(char** argv, int *data_read_fd,
+@@ -811,7 +822,7 @@ sync_pipe_open_command(char* const argv[], int *data_read_fd,
          dup2(sync_pipe[PIPE_WRITE], 2);
          ws_close(sync_pipe[PIPE_READ]);
          ws_close(sync_pipe[PIPE_WRITE]);
@@ -58,6 +60,3 @@ index 970688e..49914d5 100644
          g_snprintf(errmsg, sizeof errmsg, "Couldn't run %s in child process: %s",
                     argv[0], g_strerror(errno));
          sync_pipe_errmsg_to_parent(2, errmsg, "");
--- 
-2.6.3
-
diff --git a/pkgs/applications/networking/soulseek/nicotine-plus/default.nix b/pkgs/applications/networking/soulseek/nicotine-plus/default.nix
index fbf742c5e2a26..34579ec8ba77c 100644
--- a/pkgs/applications/networking/soulseek/nicotine-plus/default.nix
+++ b/pkgs/applications/networking/soulseek/nicotine-plus/default.nix
@@ -5,13 +5,13 @@ with lib;
 
 python3Packages.buildPythonApplication rec {
   pname = "nicotine-plus";
-  version = "3.0.6";
+  version = "3.2.0";
 
   src = fetchFromGitHub {
     owner = "Nicotine-Plus";
     repo = "nicotine-plus";
     rev = version;
-    sha256 = "sha256-NL6TXFRB7OeqNEfdANkEqh+MCOF1+ehR+6RO1XsIix8=";
+    hash = "sha256-E8b2VRlnMWmBHu919QDPBYuMbrjov9t//bHi1Y/F0Ak=";
   };
 
   nativeBuildInputs = [ gettext wrapGAppsHook ];
@@ -19,10 +19,17 @@ python3Packages.buildPythonApplication rec {
   propagatedBuildInputs = [ gtk3 gdk-pixbuf gobject-introspection ]
     ++ (with python3Packages; [ pygobject3 ]);
 
+
   postInstall = ''
-    mv $out/bin/nicotine $out/bin/nicotine-plus
-    substituteInPlace $out/share/applications/org.nicotine_plus.Nicotine.desktop \
-      --replace "Exec=nicotine" "Exec=$out/bin/nicotine-plus"
+    ln -s $out/bin/nicotine $out/bin/nicotine-plus
+    test -e $out/share/applications/org.nicotine_plus.Nicotine.desktop && exit 1
+    install -D data/org.nicotine_plus.Nicotine.desktop -t $out/share/applications
+  '';
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}"
+    )
   '';
 
   doCheck = false;
diff --git a/pkgs/applications/networking/sync/unison/default.nix b/pkgs/applications/networking/sync/unison/default.nix
index 429042f3ee4b3..9759516eddc25 100644
--- a/pkgs/applications/networking/sync/unison/default.nix
+++ b/pkgs/applications/networking/sync/unison/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "unison";
-  version = "2.51.4";
+  version = "2.51.5";
 
   src = fetchFromGitHub {
     owner = "bcpierce00";
     repo = "unison";
     rev = "v${version}";
-    sha256 = "sha256-jcfq4X+r98bQqbQ3gRqJyryLdt1Y/2CLawqqIiUaQOo=";
+    sha256 = "sha256-pi5uYwPpIy0lERmgATWQCO3EA3Pg5pnn7gxv49FaPug=";
   };
 
   nativeBuildInputs = [ makeWrapper ]
diff --git a/pkgs/applications/networking/syncplay/default.nix b/pkgs/applications/networking/syncplay/default.nix
index 893a2bc5fb3e7..b3c40b0f2fcd1 100644
--- a/pkgs/applications/networking/syncplay/default.nix
+++ b/pkgs/applications/networking/syncplay/default.nix
@@ -27,6 +27,6 @@ buildPythonApplication rec {
     description = "Free software that synchronises media players";
     license = licenses.asl20;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ enzime ];
+    maintainers = with maintainers; [ Enzime ];
   };
 }
diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix
index 261a996987269..bec35fdd53385 100644
--- a/pkgs/applications/networking/syncthing/default.nix
+++ b/pkgs/applications/networking/syncthing/default.nix
@@ -4,13 +4,13 @@ let
   common = { stname, target, postInstall ? "" }:
     buildGoModule rec {
       pname = stname;
-      version = "1.18.3";
+      version = "1.18.5";
 
       src = fetchFromGitHub {
         owner  = "syncthing";
         repo   = "syncthing";
         rev    = "v${version}";
-        sha256 = "sha256-wc4+j2kTSwZsxIdJHmznkNIq436p0yNrskchuEJtL5E=";
+        sha256 = "sha256-qGPAfNsl20+k5Gn0w6aY8VFSOmpPk7S5u4FHPrSCz80=";
       };
 
       vendorSha256 = "sha256-klbAVOHLefxG33zpEYFlPezrKrXfuWOaE+UnIsu462M=";
diff --git a/pkgs/applications/networking/tmpmail/default.nix b/pkgs/applications/networking/tmpmail/default.nix
index 70e144cb05caa..535f5ce6d9d55 100644
--- a/pkgs/applications/networking/tmpmail/default.nix
+++ b/pkgs/applications/networking/tmpmail/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "tmpmail";
-  version = "1.1.4";
+  version = "1.1.9";
 
    src = fetchFromGitHub {
     owner = "sdushantha";
     repo = "tmpmail";
     rev = "v${version}";
-    sha256 = "sha256-Rcu1qNmUZhMRvPiaWrDlzLtGksv09XBiF2GJUxXKs1Y=";
+    sha256 = "sha256-sWcsmBUHSfo7sICXyhNhbfRFSHumObnWc7stWxcwVTg=";
   };
 
   dontConfigure = true;
@@ -28,6 +28,6 @@ stdenvNoCC.mkDerivation rec {
     homepage = "https://github.com/sdushantha/tmpmail";
     description = "A temporary email right from your terminal written in POSIX sh ";
     license = licenses.mit;
-    maintainers = [ maintainers.legendofmiracles ];
+    maintainers = [ maintainers.lom ];
   };
 }
diff --git a/pkgs/applications/networking/tsung/default.nix b/pkgs/applications/networking/tsung/default.nix
index 346fd17525788..a811d7c73edaa 100644
--- a/pkgs/applications/networking/tsung/default.nix
+++ b/pkgs/applications/networking/tsung/default.nix
@@ -1,25 +1,34 @@
-{ fetchurl, stdenv, lib, makeWrapper,
-  erlang,
-  python2, python2Packages,
-  perlPackages,
-  gnuplot }:
+{ lib
+, stdenv
+, fetchurl
+, makeWrapper
+, erlang
+, python3
+, python3Packages
+, perlPackages
+, gnuplot
+}:
 
 stdenv.mkDerivation rec {
   pname = "tsung";
   version = "1.7.0";
+
   src = fetchurl {
     url = "http://tsung.erlang-projects.org/dist/tsung-${version}.tar.gz";
     sha256 = "6394445860ef34faedf8c46da95a3cb206bc17301145bc920151107ffa2ce52a";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
   propagatedBuildInputs = [
     erlang
     gnuplot
     perlPackages.perl
     perlPackages.TemplateToolkit
-    python2
-    python2Packages.matplotlib
+    python3
+    python3Packages.matplotlib
   ];
 
 
@@ -43,8 +52,8 @@ stdenv.mkDerivation rec {
       can currently be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL,
       AMQP, MQTT, LDAP and Jabber/XMPP servers.
     '';
-    license = licenses.gpl2;
-    maintainers = [ maintainers.uskudnik ];
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ uskudnik ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/office/beamerpresenter/default.nix b/pkgs/applications/office/beamerpresenter/default.nix
index e898a43ad97c7..aee809eb82413 100644
--- a/pkgs/applications/office/beamerpresenter/default.nix
+++ b/pkgs/applications/office/beamerpresenter/default.nix
@@ -13,13 +13,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "beamerpresenter";
-  version = "0.2.0";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "stiglers-eponym";
     repo = "BeamerPresenter";
     rev = "v${version}";
-    sha256 = "10i5nc5b5syaqvsixam4lmfiz3b5cphbjfgfqavi5jilq769792a";
+    sha256 = "sha256-+ZxllYL2wco4bG2pqInIbL9qfOoqoUJJUReqDyEBRcI=";
   };
 
   nativeBuildInputs = [ qmake installShellFiles wrapQtAppsHook ];
diff --git a/pkgs/applications/office/calligra/default.nix b/pkgs/applications/office/calligra/default.nix
index 03437742612fc..234d49102889c 100644
--- a/pkgs/applications/office/calligra/default.nix
+++ b/pkgs/applications/office/calligra/default.nix
@@ -65,7 +65,7 @@ mkDerivation rec {
       vector graphics.
     '';
     homepage = "https://www.calligra.org/";
-    maintainers = with maintainers; [ phreedom ebzzry zraexy ];
+    maintainers = with maintainers; [ ebzzry zraexy ];
     platforms = platforms.linux;
     license = with licenses; [ gpl2 lgpl2 ];
   };
diff --git a/pkgs/applications/office/clockify/default.nix b/pkgs/applications/office/clockify/default.nix
new file mode 100644
index 0000000000000..37afa6cc226f2
--- /dev/null
+++ b/pkgs/applications/office/clockify/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, lib, fetchurl, dpkg, makeWrapper, electron }:
+
+stdenv.mkDerivation rec {
+  pname = "clockify";
+  version = "2.0.3";
+
+  src = fetchurl {
+    url = "https://web.archive.org/web/20211118160803/https://clockify-resources.s3.eu-central-1.amazonaws.com/downloads/Clockify_Setup.deb";
+    sha256 = "sha256-eVZ3OqM1eoWfST7Qu9o8VmLm8ntD+ETf/0aes6RY4Y8=";
+  };
+
+  nativeBuildInputs = [
+    dpkg
+    makeWrapper
+  ];
+
+  dontBuild = true;
+  dontConfigure = true;
+
+  unpackPhase = ''
+    dpkg-deb -x ${src} ./
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mv usr $out
+    mv opt $out
+
+    substituteInPlace $out/share/applications/clockify.desktop \
+      --replace "/opt/Clockify" $out/bin
+
+    makeWrapper ${electron}/bin/electron $out/bin/clockify \
+      --add-flags $out/opt/Clockify/resources/app.asar
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Free time tracker and timesheet app that lets you track work hours across projects";
+    homepage = "https://clockify.me";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ wolfangaukang ];
+    platforms = [ "x86_64-linux" ];
+
+  };
+}
diff --git a/pkgs/applications/office/gnucash/0001-changes.patch b/pkgs/applications/office/gnucash/0001-changes.patch
new file mode 100644
index 0000000000000..c20342564430a
--- /dev/null
+++ b/pkgs/applications/office/gnucash/0001-changes.patch
@@ -0,0 +1,43 @@
+diff --git a/libgnucash/engine/test/CMakeLists.txt b/libgnucash/engine/test/CMakeLists.txt
+index 8e44172ff..c7289e4fd 100644
+--- a/libgnucash/engine/test/CMakeLists.txt
++++ b/libgnucash/engine/test/CMakeLists.txt
+@@ -167,22 +167,22 @@ set(test_gnc_numeric_SOURCES
+ gnc_add_test(test-gnc-numeric "${test_gnc_numeric_SOURCES}"
+   gtest_engine_INCLUDES gtest_qof_LIBS)
+ 
+-set(test_gnc_timezone_SOURCES
+-  ${MODULEPATH}/gnc-timezone.cpp
+-  gtest-gnc-timezone.cpp)
+-gnc_add_test(test-gnc-timezone "${test_gnc_timezone_SOURCES}"
+-  gtest_engine_INCLUDES gtest_old_engine_LIBS)
+-
+-set(test_gnc_datetime_SOURCES
+-  ${MODULEPATH}/gnc-datetime.cpp
+-  ${MODULEPATH}/gnc-timezone.cpp
+-  ${MODULEPATH}/gnc-date.cpp
+-  ${MODULEPATH}/qoflog.cpp
+-  ${CMAKE_SOURCE_DIR}/libgnucash/core-utils/gnc-locale-utils.cpp
+-  ${gtest_engine_win32_SOURCES}
+-  gtest-gnc-datetime.cpp)
+-gnc_add_test(test-gnc-datetime "${test_gnc_datetime_SOURCES}"
+-  gtest_engine_INCLUDES gtest_qof_LIBS)
++#set(test_gnc_timezone_SOURCES
++#  ${MODULEPATH}/gnc-timezone.cpp
++#  gtest-gnc-timezone.cpp)
++#gnc_add_test(test-gnc-timezone "${test_gnc_timezone_SOURCES}"
++#  gtest_engine_INCLUDES gtest_old_engine_LIBS)
++
++#set(test_gnc_datetime_SOURCES
++#  ${MODULEPATH}/gnc-datetime.cpp
++#  ${MODULEPATH}/gnc-timezone.cpp
++#  ${MODULEPATH}/gnc-date.cpp
++#  ${MODULEPATH}/qoflog.cpp
++#  ${CMAKE_SOURCE_DIR}/libgnucash/core-utils/gnc-locale-utils.cpp
++#  ${gtest_engine_win32_SOURCES}
++#  gtest-gnc-datetime.cpp)
++#gnc_add_test(test-gnc-datetime "${test_gnc_datetime_SOURCES}"
++#  gtest_engine_INCLUDES gtest_qof_LIBS)
+ 
+ set(test_import_map_SOURCES
+   gtest-import-map.cpp)
diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix
index 5bd8450a0b997..c47cc2e13d0f9 100644
--- a/pkgs/applications/office/gnucash/default.nix
+++ b/pkgs/applications/office/gnucash/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, fetchpatch, lib, stdenv, pkg-config, makeWrapper, cmake, gtest
+{ fetchurl, lib, stdenv, pkg-config, makeWrapper, cmake, gtest
 , boost, icu, libxml2, libxslt, gettext, swig, isocodes, gtk3, glibcLocales
 , webkitgtk, dconf, hicolor-icon-theme, libofx, aqbanking, gwenhywfar, libdbi
 , libdbiDrivers, guile, perl, perlPackages
@@ -26,22 +26,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gnucash";
-  version = "4.6";
+  version = "4.8";
 
   src = fetchurl {
     url = "mirror://sourceforge/gnucash/${pname}-${version}.tar.bz2";
-    sha256 = "0csp8iddhc901vv09gl5lj970g6ili696vwj4vdpkiprp7gh26r5";
+    sha256 = "04pbgx08lfm3l46ndd28ivq5yp3y6zgalbzgi2x8w5inhgzy9f0m";
   };
 
-  patches = [
-    # Fixes a warning about an initialized variable that kills enableDebugging gnucash builds on nix.
-    # This will most likely be part of the 4.7 release, it will be safe to remove then.
-    (fetchpatch {
-      url = "https://github.com/Gnucash/gnucash/commit/b42052464ba9701a3d1834fc58fa0deb32ab9afe.patch";
-      sha256 = "092957c8jqj4v70fv0ia1wpgl6x34hbwjrichxfbk5ja8l6535gc";
-    })
-  ];
-
   nativeBuildInputs = [ pkg-config makeWrapper cmake gtest swig ];
 
   buildInputs = [
@@ -56,6 +47,9 @@ stdenv.mkDerivation rec {
   # glib-2.62 deprecations
   NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS";
 
+  # this patch disables test-gnc-timezone and test-gnc-datetime which fail due to nix datetime challenges
+  patches = [ ./0001-changes.patch ];
+
   postPatch = ''
     patchShebangs .
   '';
@@ -77,20 +71,16 @@ stdenv.mkDerivation rec {
       --prefix GIO_EXTRA_MODULES : "${lib.getLib dconf}/lib/gio/modules"
   '';
 
-  # TODO: The following tests FAILED:
-  #   70 - test-load-c (Failed)
-  #   71 - test-modsysver (Failed)
-  #   72 - test-incompatdep (Failed)
-  #   73 - test-agedver (Failed)
-  #   77 - test-gnc-module-swigged-c (Failed)
-  #   78 - test-gnc-module-load-deps (Failed)
-  #   80 - test-gnc-module-scm-module (Failed)
-  #   81 - test-gnc-module-scm-multi (Failed)
+  /*
+  GNUcash's `make check` target does not define its prerequisites but expects them to have already been built.
+  The list of targets below was built through trial and error based on failing tests.
+  */
   preCheck = ''
-    export LD_LIBRARY_PATH=$PWD/lib:$PWD/lib/gnucash:$PWD/lib/gnucash/test''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
+    export LD_LIBRARY_PATH=$PWD/lib:$PWD/lib/gnucash:$PWD/lib/gnucash/test:$PWD/lib/gnucash/test/future''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
     export NIX_CFLAGS_LINK="-lgtest -lgtest_main"
+    make test-scm-query test-split-register-copy-ops test-link-ofx test-import-backend test-import-account-matcher test-import-pending-matches test-qofquerycore test-import-map test-gnc-numeric test-gnc-rational test-gnc-int128 test-qofsession test-kvp-value test-gnc-guid test-numeric test-vendor test-job test-employee test-customer test-address test-business test-recurrence test-transaction-voiding test-transaction-reversal test-split-vs-account test-tokenizer test-aqb test-import-parse test-link-module-tax-us test-dynload test-agedver test-incompatdep test-modsysver test-load-c test-gnc-path-util test-xml2-is-file test-load-example-account test-query test-querynew test-lots test-group-vs-book test-account-object test-engine test-qof test-commodities test-object test-guid test-load-engine test-userdata-dir-invalid-home test-userdata-dir test-resolve-file-path test-gnc-glib-utils test-sqlbe test-column-types test-backend-dbi test-xml-transaction test-xml-pricedb test-xml-commodity test-xml-account test-string-converters test-load-backend test-kvp-frames test-dom-converters1 test-autoclear test-sx test-print-parse-amount gncmod-futuremodsys
   '';
-  doCheck = false;
+  doCheck = true;
 
   meta = {
     description = "Personal and small-business financial-accounting application";
diff --git a/pkgs/applications/office/grisbi/default.nix b/pkgs/applications/office/grisbi/default.nix
index 49344becf03de..ff0d75711cf0d 100644
--- a/pkgs/applications/office/grisbi/default.nix
+++ b/pkgs/applications/office/grisbi/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "grisbi";
-  version = "2.0.4";
+  version = "2.0.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/grisbi/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-4ykG310He1aFaUNo5fClaM3QWFBzKERGihYfqaxR1Vo=";
+    sha256 = "sha256-vTrbq/xLTfwF7/YtKzZFiiSw8A0HzzWin2ry8gPHej8=";
   };
 
   nativeBuildInputs = [ pkg-config wrapGAppsHook ];
diff --git a/pkgs/applications/office/hledger-check-fancyassertions/default.nix b/pkgs/applications/office/hledger-check-fancyassertions/default.nix
index ed38bc29fa181..df3752eac3e0e 100644
--- a/pkgs/applications/office/hledger-check-fancyassertions/default.nix
+++ b/pkgs/applications/office/hledger-check-fancyassertions/default.nix
@@ -1,12 +1,17 @@
 {lib, stdenvNoCC, haskellPackages, fetchurl, writers}:
 
+let
+  hledger-lib = haskellPackages.hledger-lib_1_24_1;
+in
+
 stdenvNoCC.mkDerivation rec {
   pname = "hledger-check-fancyassertions";
-  version = "1.23";
+  inherit (hledger-lib) version;
 
   src = fetchurl {
+    name = "hledger-check-fancyassertion-${version}.hs";
     url = "https://raw.githubusercontent.com/simonmichael/hledger/hledger-lib-${version}/bin/hledger-check-fancyassertions.hs";
-    sha256 = "08p2din1j7l4c29ipn68k8vvs3ys004iy8a3zf318lzby4h04h0n";
+    sha256 = "0naggvivc6szsc8haa52a6lm079ikz5qfva0ljnqx0f1zlkxv984";
   };
 
   dontUnpack = true;
@@ -15,11 +20,13 @@ stdenvNoCC.mkDerivation rec {
   executable = writers.writeHaskell
     "hledger-check-fancyassertions"
     {
-      libraries = with haskellPackages; [
-        base base-compat base-compat-batteries filepath hledger-lib_1_23
+      libraries = [
+        hledger-lib
+      ] ++ (with haskellPackages; [
+        base base-compat base-compat-batteries filepath
         megaparsec microlens optparse-applicative string-qq text time
         transformers
-      ];
+      ]);
       inherit (haskellPackages) ghc;
     }
     src;
diff --git a/pkgs/applications/office/kalendar/default.nix b/pkgs/applications/office/kalendar/default.nix
new file mode 100644
index 0000000000000..b941553cba3a4
--- /dev/null
+++ b/pkgs/applications/office/kalendar/default.nix
@@ -0,0 +1,94 @@
+{ lib
+, mkDerivation
+, fetchFromGitLab
+, cmake
+, extra-cmake-modules
+, makeWrapper
+
+, qtbase
+, qtquickcontrols2
+, qtsvg
+, qtlocation
+, qtdeclarative
+
+, kirigami2
+, kdbusaddons
+, ki18n
+, kcalendarcore
+, kconfigwidgets
+, kwindowsystem
+, kcoreaddons
+, kcontacts
+, kitemmodels
+, kxmlgui
+, knotifications
+, kiconthemes
+, kservice
+, kmime
+, kpackage
+, eventviews
+, calendarsupport
+
+, akonadi
+, akonadi-contacts
+, akonadi-calendar-tools
+, kdepim-runtime
+}:
+
+mkDerivation rec {
+  pname = "kalendar";
+  version = "0.3.1";
+
+  src = fetchFromGitLab {
+    domain = "invent.kde.org";
+    owner = "pim";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-foG8j/MRbDZyzM9KmxEARfWUQXMz8ylQgersE1/gtnQ=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    makeWrapper
+  ];
+
+  buildInputs = [
+    qtbase
+    qtquickcontrols2
+    qtsvg
+    qtlocation
+    qtdeclarative
+
+    kirigami2
+    kdbusaddons
+    ki18n
+    kcalendarcore
+    kconfigwidgets
+    kwindowsystem
+    kcoreaddons
+    kcontacts
+    kitemmodels
+    kxmlgui
+    knotifications
+    kiconthemes
+    kservice
+    kmime
+    kpackage
+    eventviews
+    calendarsupport
+
+    akonadi-contacts
+    akonadi-calendar-tools
+  ];
+
+  propagatedUserEnvPkgs = [ akonadi kdepim-runtime ];
+
+  meta = with lib; {
+    description = "A calendar application using Akonadi to sync with external services (Nextcloud, GMail, ...)";
+    homepage = "https://invent.kde.org/pim/kalendar/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ chuangzhu ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/office/khronos/default.nix b/pkgs/applications/office/khronos/default.nix
index 7e36529e5ff46..668b36324f62f 100644
--- a/pkgs/applications/office/khronos/default.nix
+++ b/pkgs/applications/office/khronos/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "khronos";
-  version = "3.6.1";
+  version = "3.6.6";
 
   src = fetchFromGitHub {
     owner = "lainsce";
     repo = pname;
     rev = version;
-    sha256 = "sha256-+gZy8cdekM26J1ujqFmfBXTctXc9E//EY42ZoLq9rBs=";
+    sha256 = "sha256-EFoW/2IZuCo6sg7q87XRrJJ7dmYtVZr2bJQUEiiMiVI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index fb3a6c005b719..8572ff15c1db4 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -2,7 +2,7 @@
 , IOCompress, zlib, libjpeg, expat, freetype, libwpd
 , libxml2, db, curl, fontconfig, libsndfile, neon
 , bison, flex, zip, unzip, gtk3, libmspack, getopt, file, cairo, which
-, icu, boost, jdk, ant, cups, xorg, fontforge
+, icu, boost, jdk, ant, cups, xorg, fontforge, jre_minimal
 , openssl, gperf, cppunit, poppler, util-linux
 , librsvg, libGLU, libGL, bsh, CoinMP, libwps, libabw, libmysqlclient
 , autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
@@ -12,7 +12,7 @@
 , libatomic_ops, graphite2, harfbuzz, libodfgen, libzmf
 , librevenge, libe-book, libmwaw, glm, gst_all_1
 , gdb, commonsLogging, librdf_rasqal, wrapGAppsHook
-, gnome, glib, ncurses, epoxy, gpgme
+, gnome, glib, ncurses, libepoxy, gpgme
 , langs ? [ "ca" "cs" "da" "de" "en-GB" "en-US" "eo" "es" "fr" "hu" "it" "ja" "nl" "pl" "pt" "pt-BR" "ro" "ru" "sl" "zh-CN" ]
 , withHelp ? true
 , kdeIntegration ? false, mkDerivation ? null, qtbase ? null, qtx11extras ? null
@@ -24,6 +24,10 @@
 assert builtins.elem variant [ "fresh" "still" ];
 
 let
+  jre' = jre_minimal.override {
+    modules = [ "java.base" "java.desktop" ];
+  };
+
   importVariant = f: import (./. + "/src-${variant}/${f}");
 
   primary-src = importVariant "primary.nix" { inherit fetchurl; };
@@ -318,7 +322,6 @@ in (mkDrv rec {
     "--enable-dbus"
     "--enable-release-build"
     "--enable-epm"
-    "--with-jdk-home=${jdk.home}"
     "--with-ant-home=${ant}/lib/ant"
     "--with-system-cairo"
     "--with-system-libs"
@@ -379,7 +382,7 @@ in (mkDrv rec {
   '';
 
   nativeBuildInputs = [
-    gdb fontforge autoconf automake bison pkg-config libtool
+    gdb fontforge autoconf automake bison pkg-config libtool jdk
   ] ++ lib.optional (!kdeIntegration) wrapGAppsHook
     ++ lib.optional kdeIntegration wrapQtAppsHook;
 
@@ -387,7 +390,7 @@ in (mkDrv rec {
     [ ant ArchiveZip boost box2d cairo clucene_core
       IOCompress cppunit cups curl db dbus-glib expat file flex fontconfig
       freetype getopt gperf gtk3
-      hunspell icu jdk lcms libcdr libexttextcat unixODBC libjpeg
+      hunspell icu jre' lcms libcdr libexttextcat unixODBC libjpeg
       libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11
       libXaw libXext libXi libXinerama libxml2 libxslt libXtst
       libXdmcp libpthreadstubs libGLU libGL mythes
@@ -396,7 +399,7 @@ in (mkDrv rec {
       python3 sane-backends unzip which zip zlib
       mdds bluez5 libwps libabw libzmf
       libxshmfence libatomic_ops graphite2 harfbuzz gpgme util-linux
-      librevenge libe-book libmwaw glm ncurses epoxy
+      librevenge libe-book libmwaw glm ncurses libepoxy
       libodfgen CoinMP librdf_rasqal gnome.adwaita-icon-theme gettext
     ]
     ++ (with gst_all_1; [
@@ -407,7 +410,8 @@ in (mkDrv rec {
     ++ lib.optional kdeIntegration [ qtbase qtx11extras kcoreaddons kio ];
 
   passthru = {
-    inherit srcs jdk;
+    inherit srcs;
+    jdk = jre';
   };
 
   requiredSystemFeatures = [ "big-parallel" ];
diff --git a/pkgs/applications/office/libreoffice/src-fresh/download.nix b/pkgs/applications/office/libreoffice/src-fresh/download.nix
index e99ac0f66d6f2..ecce7cf18145c 100644
--- a/pkgs/applications/office/libreoffice/src-fresh/download.nix
+++ b/pkgs/applications/office/libreoffice/src-fresh/download.nix
@@ -49,11 +49,11 @@
     md5name = "beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip";
   }
   {
-    name = "bzip2-1.0.6.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/00b516f4704d4a7cb50a1d97e6e8e15b-bzip2-1.0.6.tar.gz";
-    sha256 = "a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd";
-    md5 = "00b516f4704d4a7cb50a1d97e6e8e15b";
-    md5name = "00b516f4704d4a7cb50a1d97e6e8e15b-bzip2-1.0.6.tar.gz";
+    name = "bzip2-1.0.8.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/bzip2-1.0.8.tar.gz";
+    sha256 = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269";
+    md5 = "";
+    md5name = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269-bzip2-1.0.8.tar.gz";
   }
   {
     name = "cairo-1.16.0.tar.xz";
@@ -112,11 +112,11 @@
     md5name = "1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt";
   }
   {
-    name = "curl-7.78.0.tar.xz";
-    url = "https://dev-www.libreoffice.org/src/curl-7.78.0.tar.xz";
-    sha256 = "be42766d5664a739c3974ee3dfbbcbe978a4ccb1fe628bb1d9b59ac79e445fb5";
+    name = "curl-7.79.1.tar.xz";
+    url = "https://dev-www.libreoffice.org/src/curl-7.79.1.tar.xz";
+    sha256 = "0606f74b1182ab732a17c11613cbbaf7084f2e6cca432642d0e3ad7c224c3689";
     md5 = "";
-    md5name = "be42766d5664a739c3974ee3dfbbcbe978a4ccb1fe628bb1d9b59ac79e445fb5-curl-7.78.0.tar.xz";
+    md5name = "0606f74b1182ab732a17c11613cbbaf7084f2e6cca432642d0e3ad7c224c3689-curl-7.79.1.tar.xz";
   }
   {
     name = "libe-book-0.1.3.tar.xz";
@@ -637,11 +637,11 @@
     md5name = "cf1ee3ac27a215814a9c80803fcee4f0ede8466ebead40267a9bd115e16a8678-neon-0.31.2.tar.gz";
   }
   {
-    name = "nss-3.55-with-nspr-4.27.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/nss-3.55-with-nspr-4.27.tar.gz";
-    sha256 = "ec6032d78663c6ef90b4b83eb552dedf721d2bce208cec3bf527b8f637db7e45";
+    name = "nss-3.73-with-nspr-4.32.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/nss-3.73-with-nspr-4.32.tar.gz";
+    sha256 = "07a9e5b70f121a62706140d4cacc3006d3efb869da40f3a2bf7a65d37847f4d9";
     md5 = "";
-    md5name = "ec6032d78663c6ef90b4b83eb552dedf721d2bce208cec3bf527b8f637db7e45-nss-3.55-with-nspr-4.27.tar.gz";
+    md5name = "07a9e5b70f121a62706140d4cacc3006d3efb869da40f3a2bf7a65d37847f4d9-nss-3.73-with-nspr-4.32.tar.gz";
   }
   {
     name = "libodfgen-0.1.8.tar.xz";
@@ -665,11 +665,11 @@
     md5name = "8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar";
   }
   {
-    name = "openldap-2.4.45.tgz";
-    url = "https://dev-www.libreoffice.org/src/openldap-2.4.45.tgz";
-    sha256 = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824";
+    name = "openldap-2.4.59.tgz";
+    url = "https://dev-www.libreoffice.org/src/openldap-2.4.59.tgz";
+    sha256 = "99f37d6747d88206c470067eda624d5e48c1011e943ec0ab217bae8712e22f34";
     md5 = "";
-    md5name = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824-openldap-2.4.45.tgz";
+    md5name = "99f37d6747d88206c470067eda624d5e48c1011e943ec0ab217bae8712e22f34-openldap-2.4.59.tgz";
   }
   {
     name = "openssl-1.1.1l.tar.gz";
@@ -728,11 +728,11 @@
     md5name = "6e2fcef66ec8c44625f94292ccf8af9f1d918b410d5aa69c274ce67387967b30-poppler-data-0.4.10.tar.gz";
   }
   {
-    name = "postgresql-13.1.tar.bz2";
-    url = "https://dev-www.libreoffice.org/src/postgresql-13.1.tar.bz2";
-    sha256 = "12345c83b89aa29808568977f5200d6da00f88a035517f925293355432ffe61f";
+    name = "postgresql-13.5.tar.bz2";
+    url = "https://dev-www.libreoffice.org/src/postgresql-13.5.tar.bz2";
+    sha256 = "9b81067a55edbaabc418aacef457dd8477642827499560b00615a6ea6c13f6b3";
     md5 = "";
-    md5name = "12345c83b89aa29808568977f5200d6da00f88a035517f925293355432ffe61f-postgresql-13.1.tar.bz2";
+    md5name = "9b81067a55edbaabc418aacef457dd8477642827499560b00615a6ea6c13f6b3-postgresql-13.5.tar.bz2";
   }
   {
     name = "Python-3.8.10.tar.xz";
diff --git a/pkgs/applications/office/libreoffice/src-fresh/primary.nix b/pkgs/applications/office/libreoffice/src-fresh/primary.nix
index d34cfd082d08c..f1a1478a3cf96 100644
--- a/pkgs/applications/office/libreoffice/src-fresh/primary.nix
+++ b/pkgs/applications/office/libreoffice/src-fresh/primary.nix
@@ -8,8 +8,8 @@ rec {
 
   major = "7";
   minor = "2";
-  patch = "2";
-  tweak = "2";
+  patch = "4";
+  tweak = "1";
 
   subdir = "${major}.${minor}.${patch}";
 
@@ -17,13 +17,13 @@ rec {
 
   src = fetchurl {
     url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
-    sha256 = "0w9bn3jhrhaj80qbbs8wp3q5yc0rrpwvqj3abgrllg4clk5c6fw1";
+    sha256 = "sha256-Ymi5BmpgWGzwpfXtmWDN+Gpf9Yb+Zpm/TSltWA3gjyE=";
   };
 
   # FIXME rename
   translations = fetchSrc {
     name = "translations";
-    sha256 = "1rhwrax5fxgdvizv74npysam5i67669myysldiplqiah5np672lq";
+    sha256 = "sha256-8nzCt7/J7gqJPtHOrVu7UTonJw1pxu4fnLWJyWOUHa8=";
   };
 
   # the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from
@@ -31,6 +31,6 @@ rec {
 
   help = fetchSrc {
     name = "help";
-    sha256 = "1hn56irlkk2ng7wzhiv8alpjcnf7xf95n3syzlbnmcj177kpg883";
+    sha256 = "sha256-rZb1ej3GbgXOHOZWVKKJVuir2urLmvGmrdpB1vpcaCk=";
   };
 }
diff --git a/pkgs/applications/office/libreoffice/src-still/download.nix b/pkgs/applications/office/libreoffice/src-still/download.nix
index 990eeb329a3ce..57eebe6ec6dd7 100644
--- a/pkgs/applications/office/libreoffice/src-still/download.nix
+++ b/pkgs/applications/office/libreoffice/src-still/download.nix
@@ -644,11 +644,11 @@
     md5name = "cf1ee3ac27a215814a9c80803fcee4f0ede8466ebead40267a9bd115e16a8678-neon-0.31.2.tar.gz";
   }
   {
-    name = "nss-3.55-with-nspr-4.27.tar.gz";
-    url = "https://dev-www.libreoffice.org/src/nss-3.55-with-nspr-4.27.tar.gz";
-    sha256 = "ec6032d78663c6ef90b4b83eb552dedf721d2bce208cec3bf527b8f637db7e45";
+    name = "nss-3.73-with-nspr-4.32.tar.gz";
+    url = "https://dev-www.libreoffice.org/src/nss-3.73-with-nspr-4.32.tar.gz";
+    sha256 = "07a9e5b70f121a62706140d4cacc3006d3efb869da40f3a2bf7a65d37847f4d9";
     md5 = "";
-    md5name = "ec6032d78663c6ef90b4b83eb552dedf721d2bce208cec3bf527b8f637db7e45-nss-3.55-with-nspr-4.27.tar.gz";
+    md5name = "07a9e5b70f121a62706140d4cacc3006d3efb869da40f3a2bf7a65d37847f4d9-nss-3.73-with-nspr-4.32.tar.gz";
   }
   {
     name = "libodfgen-0.1.6.tar.bz2";
diff --git a/pkgs/applications/office/libreoffice/src-still/primary.nix b/pkgs/applications/office/libreoffice/src-still/primary.nix
index 9ce1d26c14786..83179f2a136af 100644
--- a/pkgs/applications/office/libreoffice/src-still/primary.nix
+++ b/pkgs/applications/office/libreoffice/src-still/primary.nix
@@ -8,8 +8,8 @@ rec {
 
   major = "7";
   minor = "1";
-  patch = "7";
-  tweak = "2";
+  patch = "8";
+  tweak = "1";
 
   subdir = "${major}.${minor}.${patch}";
 
@@ -17,13 +17,13 @@ rec {
 
   src = fetchurl {
     url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
-    sha256 = "T98ICdiAM4i9E6zis0V/Cmq5+e98mNb0bMZA//xelLo=";
+    sha256 = "sha256-TGcR2/TSQJOjq7G1vXSa4MaEA6fG95rHVZfnjoiqeJM=";
   };
 
   # FIXME rename
   translations = fetchSrc {
     name = "translations";
-    sha256 = "g8skm02R5nRyF09ZbL9kJqMxRqaQ0AfpletDK3AAggk=";
+    sha256 = "sha256-jy5dUzKCEBYiTXh6dBwgdfW1Ok5l1iDGyL13icQHWEM=";
   };
 
   # the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from
@@ -31,6 +31,6 @@ rec {
 
   help = fetchSrc {
     name = "help";
-    sha256 = "jAFrO4RyONhPH3H5QW0SL8Id53bBvJ7AYxSNtLhG4rQ=";
+    sha256 = "sha256-tr2hmCeRRyft03Nfk8afSaurCV6DJSYuxKo4GPK/It4=";
   };
 }
diff --git a/pkgs/applications/office/notes-up/default.nix b/pkgs/applications/office/notes-up/default.nix
index 1aa6f7f78e937..2f1bcab0649da 100644
--- a/pkgs/applications/office/notes-up/default.nix
+++ b/pkgs/applications/office/notes-up/default.nix
@@ -2,40 +2,42 @@
 , stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
+, desktop-file-utils
+, meson
+, ninja
 , pkg-config
+, python3
 , vala
-, cmake
-, ninja
+, wrapGAppsHook
+, discount
+, glib
 , gtk3
-, gtksourceview3
-, webkitgtk
+, gtksourceview4
 , gtkspell3
-, glib
 , libgee
-, pcre
+, pantheon
 , sqlite
-, discount
-, wrapGAppsHook
-, withPantheon ? false
+, webkitgtk
 }:
 
 stdenv.mkDerivation rec {
   pname = "notes-up";
-  version = "unstable-2020-12-29";
+  version = "2.0.6";
 
   src = fetchFromGitHub {
     owner = "Philip-Scott";
     repo = "Notes-up";
-    rev = "2ea9f35f588769758f5d2d4436d71c4059141a6f";
-    sha256 = "sha256-lKOM9+s34xYB9bF9pgip9DFu+6AaxSE4HjFVhoWtttk=";
+    rev = version;
+    sha256 = "sha256-t9BCtdWd2JLrKTcmri1Lgl5RLBYD2xWCtMxoVXz0XPk=";
   };
 
   nativeBuildInputs = [
-    cmake
+    desktop-file-utils
+    meson
     ninja
-    vala
     pkg-config
+    python3
+    vala
     wrapGAppsHook
   ];
 
@@ -43,17 +45,18 @@ stdenv.mkDerivation rec {
     discount
     glib
     gtk3
-    gtksourceview3
+    gtksourceview4
     gtkspell3
     libgee
     pantheon.granite
-    pcre
     sqlite
     webkitgtk
   ];
 
-  # Whether to build with contractor support (Pantheon specific)
-  cmakeFlags = lib.optional (!withPantheon) "-Dnoele=yes";
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
 
   passthru = {
     updateScript = nix-update-script {
@@ -62,12 +65,11 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "Markdown notes editor and manager designed for elementary OS"
-      + lib.optionalString withPantheon " - built with Contractor support";
+    description = "Markdown notes editor and manager designed for elementary OS";
     homepage = "https://github.com/Philip-Scott/Notes-up";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ ] ++ teams.pantheon.members;
     platforms = platforms.linux;
-    mainProgram = "com.github.philip-scott.notes-up";
+    mainProgram = "com.github.philip_scott.notes-up";
   };
 }
diff --git a/pkgs/applications/office/notion-app-enhanced/default.nix b/pkgs/applications/office/notion-app-enhanced/default.nix
new file mode 100644
index 0000000000000..d588580a8db9e
--- /dev/null
+++ b/pkgs/applications/office/notion-app-enhanced/default.nix
@@ -0,0 +1,32 @@
+{ appimageTools, lib, fetchurl }:
+let
+  pname = "notion-app-enhanced";
+  version = "2.0.16-5";
+  name = "${pname}-v${version}";
+
+  src = fetchurl {
+    url = "https://github.com/notion-enhancer/notion-repackaged/releases/download/v${version}/Notion-Enhanced-${version}.AppImage";
+    sha256 = "1v733b4clc9sjgb72fasmbqiyz26d09f3kmvd1nqshwp5d14dajz";
+  };
+
+  appimageContents = appimageTools.extract { inherit name src; };
+in appimageTools.wrapType2 {
+  inherit name src;
+
+  extraInstallCommands = ''
+    mv $out/bin/${name} $out/bin/${pname}
+
+    install -m 444 -D ${appimageContents}/${pname}.desktop -t $out/share/applications
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
+    cp -r ${appimageContents}/usr/share/icons $out/share
+  '';
+
+  meta = with lib; {
+    description = "Notion Desktop builds with Notion Enhancer for Windows, MacOS and Linux.";
+    homepage = "https://github.com/notion-enhancer/desktop";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ sei40kr ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/office/paperwork/openpaperwork-core.nix b/pkgs/applications/office/paperwork/openpaperwork-core.nix
index cae55ae95f1c3..9b6f352d97ac2 100644
--- a/pkgs/applications/office/paperwork/openpaperwork-core.nix
+++ b/pkgs/applications/office/paperwork/openpaperwork-core.nix
@@ -2,7 +2,7 @@
 
 , isPy3k, isPyPy
 
-, distro, setuptools
+, distro, setuptools, psutil
 
 , pkgs
 }:
@@ -25,6 +25,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     distro
     setuptools
+    psutil
   ];
 
   nativeBuildInputs = [ pkgs.gettext pkgs.which ];
diff --git a/pkgs/applications/office/paperwork/openpaperwork-gtk.nix b/pkgs/applications/office/paperwork/openpaperwork-gtk.nix
index 5dae745ce2eb3..4ddc0b4e27846 100644
--- a/pkgs/applications/office/paperwork/openpaperwork-gtk.nix
+++ b/pkgs/applications/office/paperwork/openpaperwork-gtk.nix
@@ -38,6 +38,7 @@ buildPythonPackage rec {
     pygobject3
     pkgs.poppler_gi
     pkgs.gtk3
+    pkgs.libhandy
     distro
     pkgs.pango
     openpaperwork-core
diff --git a/pkgs/applications/office/paperwork/paperwork-backend.nix b/pkgs/applications/office/paperwork/paperwork-backend.nix
index a033bd695db6c..ad5e5a3b6d422 100644
--- a/pkgs/applications/office/paperwork/paperwork-backend.nix
+++ b/pkgs/applications/office/paperwork/paperwork-backend.nix
@@ -6,7 +6,7 @@
 , isPyPy
 
 , pyenchant
-, simplebayes
+, scikit-learn
 , pypillowfight
 , pycountry
 , whoosh
@@ -41,7 +41,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     pyenchant
-    simplebayes
+    scikit-learn
     pypillowfight
     pycountry
     whoosh
@@ -61,12 +61,12 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  nativeBuildInputs = [ pkgs.gettext pkgs.which ];
+  nativeBuildInputs = [ pkgs.gettext pkgs.which pkgs.shared-mime-info ];
   preBuild = ''
     make l10n_compile
   '';
 
-  checkInputs = [ openpaperwork-gtk psutil ];
+  checkInputs = [ openpaperwork-gtk psutil pkgs.libreoffice ];
 
   meta = {
     description = "Backend part of Paperwork (Python API, no UI)";
diff --git a/pkgs/applications/office/paperwork/src.nix b/pkgs/applications/office/paperwork/src.nix
index 72293ef3903f9..a5141a43e5022 100644
--- a/pkgs/applications/office/paperwork/src.nix
+++ b/pkgs/applications/office/paperwork/src.nix
@@ -1,13 +1,13 @@
 {fetchFromGitLab}:
 rec {
-  version = "2.0.3";
+  version = "2.1.0";
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     repo = "paperwork";
     group = "World";
     owner = "OpenPaperwork";
     rev = version;
-    sha256 = "02c2ysca75j59v87n1axqfncvs167kmdr40m0f05asdh2akwrbi9";
+    sha256 = "0d1cw6k1giqs8ji8h3h97ckb134s8pszgip0nac5hmw0mvqq84xa";
   };
   sample_documents = fetchFromGitLab {
     domain = "gitlab.gnome.org";
@@ -15,8 +15,8 @@ rec {
     group = "World";
     owner = "OpenPaperwork";
     # https://gitlab.gnome.org/World/OpenPaperwork/paperwork/-/blob/master/paperwork-gtk/src/paperwork_gtk/model/help/screenshot.sh see TEST_DOCS_TAG
-    rev = "1.0";
-    sha256 = "155nhw2jmlgfi6c3wm241vrr3yma6lw85k9lxn844z96kyi7wbpr";
+    rev = "2.1";
+    sha256 = "0m79fgc1ycsj0q0alqgr0axn16klz1sfs2km1h83zn3kysqcs6xr";
   };
 
 }
diff --git a/pkgs/applications/office/portfolio/default.nix b/pkgs/applications/office/portfolio/default.nix
index f5418f372983d..fc1b329c43224 100644
--- a/pkgs/applications/office/portfolio/default.nix
+++ b/pkgs/applications/office/portfolio/default.nix
@@ -25,11 +25,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "PortfolioPerformance";
-  version = "0.55.0";
+  version = "0.56.2";
 
   src = fetchurl {
     url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
-    sha256 = "0s7qb7z2wiypiahw1y1lz9pbhxcacj5myzy0qcqjrpnaq7ymvs05";
+    sha256 = "sha256-4iMLn0KTrH7MOlNduSl7BMOZKPakHhhQdR3NQXV2ZZU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/pympress/default.nix b/pkgs/applications/office/pympress/default.nix
index 2a97de6ca5b82..9727625f710be 100644
--- a/pkgs/applications/office/pympress/default.nix
+++ b/pkgs/applications/office/pympress/default.nix
@@ -1,6 +1,5 @@
 { lib
 , stdenv
-, fetchpatch
 , python3Packages
 , wrapGAppsHook
 , gtk3
@@ -13,22 +12,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "pympress";
-  version = "1.6.3";
+  version = "1.7.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "sha256-f+OjE0x/3yfJYHCLB+on7TT7MJ2vNu87SHRi67qFDCM=";
+    sha256 = "sha256-AxH0PyAWYEEIqQAx9gG2eYyXMijLZGZqXkRhld32ieE=";
   };
 
-  patches = [
-    # Should not be needed once v1.6.4 is released
-    (fetchpatch {
-      name = "fix-setuptools-version-parsing.patch";
-      url = "https://github.com/Cimbali/pympress/commit/474514d71396ac065e210fd846e07ed1139602d0.diff";
-      sha256 = "sha256-eiw54sjMrXrNrhtkAXxiSTatzoA0NDA03L+HpTDax58=";
-    })
-  ];
-
   nativeBuildInputs = [
     wrapGAppsHook
   ];
diff --git a/pkgs/applications/office/qownnotes/default.nix b/pkgs/applications/office/qownnotes/default.nix
index dfaec86902288..a43de461a41b3 100644
--- a/pkgs/applications/office/qownnotes/default.nix
+++ b/pkgs/applications/office/qownnotes/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "qownnotes";
-  version = "21.11.4";
+  version = "21.12.4";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
     # Fetch the checksum of current version with curl:
     # curl https://download.tuxfamily.org/qownnotes/src/qownnotes-<version>.tar.xz.sha256
-    sha256 = "3eb025873160cecd4fa35ae5079c150d4aa5dd3152fd58c5e216b592af43e8dc";
+    sha256 = "sha256-vvqcXu2P39VYbx45lavyJ2HIxPCJbzSpJo4gYd88Ub4=";
   };
 
   nativeBuildInputs = [ qmake qttools ];
diff --git a/pkgs/applications/office/scribus/unstable.nix b/pkgs/applications/office/scribus/unstable.nix
index 549865cd8d857..6aed41d7f9afd 100644
--- a/pkgs/applications/office/scribus/unstable.nix
+++ b/pkgs/applications/office/scribus/unstable.nix
@@ -3,6 +3,7 @@
 , cmake
 , cups
 , fetchurl
+, fetchpatch
 , fontconfig
 , freetype
 , harfbuzzFull
@@ -42,6 +43,19 @@ mkDerivation rec {
     sha256 = "sha256-MYMWss/Hp2GR0+DT+MImUUfa6gVwFiAo4kPCktgm+M4=";
   };
 
+  patches = [
+    # For harfbuzz >= 2.9.0
+    (fetchpatch {
+      url = "https://github.com/scribusproject/scribus/commit/1b546978bc4ea0b2a73fbe4d7cf947887e865162.patch";
+      sha256 = "sha256-noRCaN63ZYFfXmAluEYXdFPNOk3s5W3KBAsLU1Syxv4=";
+    })
+    # For harfbuzz >= 3.0
+    (fetchpatch {
+      url = "https://github.com/scribusproject/scribus/commit/68ec41169eaceea4a6e1d6f359762a191c7e61d5.patch";
+      sha256 = "sha256-xhp65qVvaof0md1jb3XHZw7uFX1RtNxPfUOaVnvZV1Y=";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
     pkg-config
@@ -77,10 +91,11 @@ mkDerivation rec {
     platforms = platforms.linux;
     description = "Desktop Publishing (DTP) and Layout program for Linux";
     homepage = "https://www.scribus.net";
-    # There are a lot of licenses... https://github.com/scribusproject/scribus/blob/20508d69ca4fc7030477db8dee79fd1e012b52d2/COPYING#L15-L19
+    # There are a lot of licenses...
+    # https://github.com/scribusproject/scribus/blob/20508d69ca4fc7030477db8dee79fd1e012b52d2/COPYING#L15-L19
     license = with licenses; [
       bsd3
-      gpl2
+      gpl2Plus
       mit
       publicDomain
     ];
diff --git a/pkgs/applications/office/super-productivity/default.nix b/pkgs/applications/office/super-productivity/default.nix
index 90608dceba5c7..73a6b7b457ec6 100644
--- a/pkgs/applications/office/super-productivity/default.nix
+++ b/pkgs/applications/office/super-productivity/default.nix
@@ -1,15 +1,12 @@
-{ stdenv , lib , fetchurl , appimageTools , makeWrapper , electron_11 }:
+{ stdenv , lib , fetchurl , appimageTools , makeWrapper , electron }:
 
-let
-  electron = electron_11;
-in
 stdenv.mkDerivation rec {
   pname = "super-productivity";
-  version = "7.6.0";
+  version = "7.9.1";
 
   src = fetchurl {
     url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
-    sha256 = "f02a451a44f48a8e85a0c1269625d89fb1e0b8a75b7e217d96352064e6464ae5";
+    sha256 = "sha256:0lxnl5ai23dwfsyrkpi9l1a0gl0qn6vp7hzmca77nyx974d6j8m4";
     name = "${pname}-${version}.AppImage";
   };
 
diff --git a/pkgs/applications/office/teapot/001-fix-warning.patch b/pkgs/applications/office/teapot/001-fix-warning.patch
new file mode 100644
index 0000000000000..c9ab9da94bf47
--- /dev/null
+++ b/pkgs/applications/office/teapot/001-fix-warning.patch
@@ -0,0 +1,11 @@
+diff -Naur teapot-2.3.0-old/scanner.c teapot-2.3.0-new/scanner.c
+--- teapot-2.3.0-old/scanner.c	1969-12-31 21:00:01.000000000 -0300
++++ teapot-2.3.0-new/scanner.c	2021-11-25 17:46:49.936673391 -0300
+@@ -25,6 +25,7 @@
+ #include "main.h"
+ #include "misc.h"
+ #include "scanner.h"
++#include "utf8.h"
+ /*}}}*/
+ 
+ /* identcode  -- return number of identifier */ /*{{{*/
diff --git a/pkgs/applications/office/teapot/002-remove-help.patch b/pkgs/applications/office/teapot/002-remove-help.patch
new file mode 100644
index 0000000000000..5bf804255be19
--- /dev/null
+++ b/pkgs/applications/office/teapot/002-remove-help.patch
@@ -0,0 +1,49 @@
+diff -Naur teapot-2.3.0-old/CMakeLists.txt teapot-2.3.0-new/CMakeLists.txt
+--- teapot-2.3.0-old/CMakeLists.txt	1969-12-31 21:00:01.000000000 -0300
++++ teapot-2.3.0-new/CMakeLists.txt	2021-11-25 18:16:06.594423660 -0300
+@@ -64,46 +64,6 @@
+ 	install(TARGETS fteapot DESTINATION bin)
+ endif ()
+ 
+-if (ENABLE_HELP)
+-	add_custom_command(
+-		OUTPUT teapot.tex teapot.lyx
+-		MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/doc/teapot.lyx
+-		VERBATIM
+-		COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/teapot.lyx teapot.lyx
+-		COMMAND lyx -e pdflatex -f main teapot.lyx
+-	)
+-	add_custom_command(
+-		OUTPUT teapot.pdf teapot.aux.old teapot.log teapot.toc
+-		MAIN_DEPENDENCY teapot.tex
+-		VERBATIM
+-		COMMAND pdflatex teapot.tex; diff -q teapot.aux.old teapot.aux && cp teapot.aux teapot.aux.old
+-		COMMAND pdflatex teapot.tex; diff -q teapot.aux.old teapot.aux && cp teapot.aux teapot.aux.old
+-	)
+-	add_custom_command(OUTPUT teapot.pdf teapot.out MAIN_DEPENDENCY teapot.tex teapot.aux.old VERBATIM COMMAND pdflatex teapot.tex; diff -q teapot.aux.old teapot.aux && cp teapot.aux teapot.aux.old)
+-	add_custom_command(
+-		OUTPUT html/ html/index.html .latex2html-init
+-		MAIN_DEPENDENCY teapot.tex
+-		DEPENDS teapot.tex teapot.pdf ${CMAKE_CURRENT_SOURCE_DIR}/doc/.latex2html-init
+-		VERBATIM
+-		COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/.latex2html-init .latex2html-init
+-		COMMAND ${CMAKE_COMMAND} -E make_directory html
+-		COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/contents.png html/
+-		COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/next.png html/
+-		COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/next_g.png html/
+-		COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/prev.png html/
+-		COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/prev_g.png html/
+-		COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/up.png html/
+-		COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/doc/up_g.png html/
+-		COMMAND latex2html teapot.tex
+-	)
+-	add_custom_target(pdf DEPENDS teapot.pdf)
+-	add_custom_target(html DEPENDS html/index.html)
+-	add_custom_target(doc ALL DEPENDS teapot.pdf html/index.html)
+-	install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html DESTINATION share/doc/teapot FILES_MATCHING PATTERN *.html PATTERN *.png)
+-	install(FILES ${CMAKE_CURRENT_BINARY_DIR}/teapot.pdf DESTINATION share/doc/teapot)
+-	set(HELPFILE "${CMAKE_INSTALL_PREFIX}/share/doc/teapot/index.html")
+-endif ()
+-
+ install(FILES COPYING README DESTINATION share/doc/teapot)
+ install(FILES teapot.1 DESTINATION share/man/man1)
diff --git a/pkgs/applications/office/teapot/default.nix b/pkgs/applications/office/teapot/default.nix
new file mode 100644
index 0000000000000..62a48cebf19b2
--- /dev/null
+++ b/pkgs/applications/office/teapot/default.nix
@@ -0,0 +1,73 @@
+{ lib
+, stdenv
+, fetchzip
+, cmake
+, libtirpc
+, ncurses
+}:
+
+stdenv.mkDerivation rec {
+  pname = "teapot";
+  version = "2.3.0";
+
+  src = fetchzip {
+    name = "${pname}-${version}";
+    url = "https://www.syntax-k.de/projekte/teapot/${pname}-${version}.tar.gz";
+    sha256 = "sha256-wzAwZwOMeTsuR5LhfjspGdejT6X1V8YJ8B7v9pcbxaY=";
+  };
+
+  patches = [
+    # include a local file in order to make cc happy
+    ./001-fix-warning.patch
+    # remove the ENABLE_HELP target entirely - lyx and latex are huge!
+    ./002-remove-help.patch
+  ];
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = [
+    libtirpc
+    ncurses
+  ];
+
+  # By no known reason libtirpc is not detected
+  NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ];
+  NIX_LDFLAGS = [ "-ltirpc" ];
+
+  cmakeConfigureFlags = [
+    "-DENABLE_HELP=OFF"
+  ];
+
+  meta = with lib; {
+    homepage = "https://www.syntax-k.de/projekte/teapot/";
+    description = "Table Editor And Planner, Or: Teapot!";
+    longDescription = ''
+      Teapot is a compact spreadsheet software originally written by Michael
+      Haardt. It features a (n)curses-based text terminal interface, and
+      recently also a FLTK-based GUI.
+
+      These days, it may seem pointless having yet another spreadsheet program
+      (and one that doesn't even know how to load Microsoft Excel files). Its
+      compact size (130k for the ncurses executable, 140k for the GUI
+      executable, 300k for the self-contained Windows EXE) and the fact that it
+      can run across serial lines and SSH sessions make it an interesting choice
+      for embedded applications and as system administration utility, even more
+      so since it has a batch processing mode and comes with example code for
+      creating graphs from data sets.
+
+      Another interesting feature is its modern approach to spread sheet theory:
+      It sports true three-dimensional tables and iterative expressions. And
+      since it breaks compatibility with the usual notions of big spreadsheet
+      packages, it can also throw old syntactic cruft over board which many
+      spreadsheets still inherit from the days of VisiCalc on ancient CP/M
+      systems.
+    '';
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
+  };
+}
+# TODO: patch/fix FLTK building
+# TODO: add documentation from
diff --git a/pkgs/applications/office/todoman/default.nix b/pkgs/applications/office/todoman/default.nix
index f1740b326dcfa..639823dacd6a3 100644
--- a/pkgs/applications/office/todoman/default.nix
+++ b/pkgs/applications/office/todoman/default.nix
@@ -9,11 +9,11 @@ let
 in
 buildPythonApplication rec {
   pname = "todoman";
-  version = "4.0.1";
+  version = "4.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ec88f8009321e77deb0ae682f7d036c139edf4175f8413011b532905c6e7d2b1";
+    sha256 = "ce3caa481d923e91da9b492b46509810a754e2d3ef857f5d20bc5a8e362b50c8";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/applications/office/trilium/default.nix b/pkgs/applications/office/trilium/default.nix
index 528b6786290ad..8782b2288e681 100644
--- a/pkgs/applications/office/trilium/default.nix
+++ b/pkgs/applications/office/trilium/default.nix
@@ -19,16 +19,16 @@ let
     maintainers = with maintainers; [ fliegendewurst ];
   };
 
-  version = "0.48.6";
+  version = "0.48.8";
 
   desktopSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
-    sha256 = "1n7gm6mwzf5yyk8cpn70029p1iiv26bypyfi42sx14yyjvlny4rm";
+    sha256 = "1dz4wdx3d1pmm3yrvipqa929f6gqilhfc3sp6xcgbn9faypp6qra";
   };
 
   serverSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
-    sha256 = "0z7cbw11mqf2mfv6ixnczg2i4jcdpvryzl0521ai26gq42jyyy0r";
+    sha256 = "0jp1hj51x5wz27f7739nwwli119pzpskg269cxk4i04xxbhr145j";
   };
 
 in {
@@ -40,15 +40,6 @@ in {
 
     src = fetchurl desktopSource;
 
-    # Fetch from source repo, no longer included in release.
-    # (they did special-case icon.png but we want the scalable svg)
-    # Use the version here to ensure we get any changes.
-    trilium_svg = fetchurl {
-      url = "https://raw.githubusercontent.com/zadam/trilium/v${version}/images/icon.svg";
-      sha256 = "0sz3piskdlx267whx8r6afrdadn25bf0zmxplj1599zqkf7w7n0x";
-    };
-
-
     nativeBuildInputs = [
       autoPatchelfHook
       makeWrapper
@@ -61,12 +52,12 @@ in {
       runHook preInstall
       mkdir -p $out/bin
       mkdir -p $out/share/trilium
-      mkdir -p $out/share/{applications,icons/hicolor/scalable/apps}
+      mkdir -p $out/share/{applications,icons/hicolor/128x128/apps}
 
       cp -r ./* $out/share/trilium
       ln -s $out/share/trilium/trilium $out/bin/trilium
 
-      ln -s ${trilium_svg} $out/share/icons/hicolor/scalable/apps/trilium.svg
+      ln -s $out/share/trilium/icon.png $out/share/icons/hicolor/128x128/apps/trilium.png
       cp ${desktopItem}/share/applications/* $out/share/applications
       runHook postInstall
     '';
diff --git a/pkgs/applications/office/zanshin/default.nix b/pkgs/applications/office/zanshin/default.nix
index 843e7ec0145eb..57947e23baa02 100644
--- a/pkgs/applications/office/zanshin/default.nix
+++ b/pkgs/applications/office/zanshin/default.nix
@@ -1,55 +1,31 @@
 { mkDerivation
 , lib
 , fetchurl
-, fetchpatch
 , extra-cmake-modules
-, qtbase
 , boost
 , akonadi-calendar
-, akonadi-notes
-, akonadi-search
-, kidentitymanagement
 , kontactinterface
-, kldap
 , krunner
-, kwallet
-, kcalendarcore
 }:
 
 mkDerivation rec {
   pname = "zanshin";
-  version = "0.5.71";
+  version = "21.12.0";
 
   src = fetchurl {
-    url = "mirror://kde/stable/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0b316ddcd46sawva84x5d8nsp19v66gbm83djrra7fv3k8nkv4xh";
+    url = "mirror://kde/stable/release-service/${version}/src/zanshin-${version}.tar.xz";
+    sha256 = "sha256-l8W47tS7q747fkSAH3HJdwPsqjMfCyxzl3xJEeAXeh0=";
   };
 
-  patches = [
-    # Build with kontactinterface >= 5.14.42.
-    # Remove after next release.
-    (fetchpatch {
-      url = "https://invent.kde.org/pim/zanshin/-/commit/4850c08998b33b37af99c3312d193b063b3e8174.diff";
-      sha256 = "sha256:0lh0a035alhmws3zyfnkb814drq5cqxvzpwl4g1g5d435gy8k4ps";
-    })
-  ];
-
   nativeBuildInputs = [
     extra-cmake-modules
   ];
 
   buildInputs = [
-    qtbase
     boost
     akonadi-calendar
-    akonadi-notes
-    akonadi-search
-    kidentitymanagement
     kontactinterface
-    kldap
     krunner
-    kwallet
-    kcalendarcore
   ];
 
   meta = with lib; {
diff --git a/pkgs/applications/office/zk/default.nix b/pkgs/applications/office/zk/default.nix
index 9da6073ff42f5..f6b9f1393ea99 100644
--- a/pkgs/applications/office/zk/default.nix
+++ b/pkgs/applications/office/zk/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "zk";
-  version = "0.7.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "mickael-menu";
     repo = "zk";
     rev = "v${version}";
-    sha256 = "sha256-C3/V4v8lH4F3S51egEw5d51AI0n5xzBQjwhrI64FEGA=";
+    sha256 = "sha256-AXKIi70evf581lMwfbfxm8hFCzsnhKRQgnIEZQFS75A=";
   };
 
   vendorSha256 = "sha256-m7QGv8Vx776TsN7QHXtO+yl3U1D573UMZVyg1B4UeIk=";
diff --git a/pkgs/applications/plasma-mobile/default.nix b/pkgs/applications/plasma-mobile/default.nix
index fd9ae2a2bae84..10c1f1d0e9bc8 100644
--- a/pkgs/applications/plasma-mobile/default.nix
+++ b/pkgs/applications/plasma-mobile/default.nix
@@ -75,6 +75,7 @@ let
       kweather = callPackage ./kweather.nix {};
       plasma-dialer = callPackage ./plasma-dialer.nix {};
       plasma-phonebook = callPackage ./plasma-phonebook.nix {};
+      plasma-settings = callPackage ./plasma-settings.nix {};
       spacebar = callPackage ./spacebar.nix {};
     };
 
diff --git a/pkgs/applications/plasma-mobile/plasma-settings.nix b/pkgs/applications/plasma-mobile/plasma-settings.nix
new file mode 100644
index 0000000000000..bcd04dadca22c
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/plasma-settings.nix
@@ -0,0 +1,42 @@
+{ lib
+, mkDerivation
+, fetchFromGitLab
+
+, cmake
+, extra-cmake-modules
+
+, kauth
+, kconfig
+, kcoreaddons
+, kdbusaddons
+, ki18n
+, kitemmodels
+, plasma-framework
+}:
+
+mkDerivation rec {
+  pname = "plasma-settings";
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    kauth
+    kconfig
+    kcoreaddons
+    kdbusaddons
+    ki18n
+    kitemmodels
+    plasma-framework
+  ];
+
+  meta = with lib; {
+    description = "Settings application for Plasma Mobile";
+    homepage = "https://invent.kde.org/plasma-mobile/plasma-settings";
+    # https://invent.kde.org/plasma-mobile/plasma-settings/-/commit/a59007f383308503e59498b3036e1483bca26e35
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ samueldr ];
+  };
+}
diff --git a/pkgs/applications/printing/pappl/default.nix b/pkgs/applications/printing/pappl/default.nix
index 9752ebc0e7ce5..5df1d93f9c829 100644
--- a/pkgs/applications/printing/pappl/default.nix
+++ b/pkgs/applications/printing/pappl/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pappl";
-  version = "1.0.3";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "michaelrsweet";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-B3g6R0/li+5D4odFG21qj+SR3K4PFnzzxIGCwbk1buo=";
+    sha256 = "sha256-FsmR0fFb9bU9G3oUyJU1eDLcoZ6OQ2//TINlPrW6lU0=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/applications/radio/chirp/default.nix b/pkgs/applications/radio/chirp/default.nix
index 2e4b3b30d225c..b10d817d9e494 100644
--- a/pkgs/applications/radio/chirp/default.nix
+++ b/pkgs/applications/radio/chirp/default.nix
@@ -4,11 +4,11 @@
 }:
 python2.pkgs.buildPythonApplication rec {
   pname = "chirp-daily";
-  version = "20210724";
+  version = "20211016";
 
   src = fetchurl {
     url = "https://trac.chirp.danplanet.com/chirp_daily/daily-${version}/${pname}-${version}.tar.gz";
-    sha256 = "0wddzls7r0l5b8vvljnmrj5lmmp7zkzl4h73pyigyf9nbhaklybb";
+    sha256 = "13xzqnhvnw6yipv4izkq0s9ykyl9pc5ifpr1ii8xfp28ch706qyw";
   };
 
   propagatedBuildInputs = with python2.pkgs; [
diff --git a/pkgs/applications/radio/fldigi/default.nix b/pkgs/applications/radio/fldigi/default.nix
index 0de04e26ff36a..4b33d331f5b63 100644
--- a/pkgs/applications/radio/fldigi/default.nix
+++ b/pkgs/applications/radio/fldigi/default.nix
@@ -2,7 +2,7 @@
 , stdenv
 , fetchurl
 , hamlib
-, fltk14
+, fltk13
 , libjpeg
 , libpng
 , portaudio
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     libXinerama
     gettext
     hamlib
-    fltk14
+    fltk13
     libjpeg
     libpng
     portaudio
@@ -39,11 +39,16 @@ stdenv.mkDerivation rec {
     libsamplerate
   ] ++ lib.optionals (stdenv.isLinux) [ libpulseaudio alsa-lib udev ];
 
+  enableParallelBuilding = true;
+
   meta = with lib; {
     description = "Digital modem program";
     homepage = "https://sourceforge.net/projects/fldigi/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ relrod ftrvxmtrx ];
     platforms = platforms.unix;
+    # unable to execute command: posix_spawn failed: Argument list too long
+    # Builds fine on aarch64-darwin
+    broken = stdenv.system == "x86_64-darwin";
   };
 }
diff --git a/pkgs/applications/radio/flex-ncat/default.nix b/pkgs/applications/radio/flex-ncat/default.nix
index 360769a44ddaa..dee9f29da73f5 100644
--- a/pkgs/applications/radio/flex-ncat/default.nix
+++ b/pkgs/applications/radio/flex-ncat/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "flex-ncat";
-  version = "0.0-20210420.0";
+  version = "0.1-20211223.0";
 
   src = fetchFromGitHub {
     owner = "kc2g-flex-tools";
     repo = "nCAT";
     rev = "v${version}";
-    sha256 = "0wrdmlp9rrr4n0g9pj0j20ddskllyr59dr3p5fm9z0avkncn3a0m";
+    hash = "sha256-l5IH6EtWqxMLqUfIYpaKgZE9Jq8q4+WgZIazQ2scyxg=";
   };
 
-  vendorSha256 = "0npzhvpyaxvfaivycnscvh45lp0ycdg9xrlfm8vhfr835yj2adiv";
+  vendorSha256 = "sha256-OzYlpC8DZQc3qo7mnl5jHlxaCNxMW+Z3VG535e+G/1o=";
 
   meta = with lib; {
     homepage = "https://github.com/kc2g-flex-tools/nCAT";
diff --git a/pkgs/applications/radio/gnuradio/3.8.nix b/pkgs/applications/radio/gnuradio/3.8.nix
index 0e5b7701e9871..a6d4099c8639e 100644
--- a/pkgs/applications/radio/gnuradio/3.8.nix
+++ b/pkgs/applications/radio/gnuradio/3.8.nix
@@ -248,6 +248,11 @@ stdenv.mkDerivation rec {
       url = "https://github.com/gnuradio/gnuradio/commit/9d7343526dd793120b6425cd9a6969416ed32503.patch";
       sha256 = "sha256-usSoRDDuClUfdX4yFbQNu8wDzve6UEhZYTFj1oZbFic=";
     })
+    # Fix compilation with boost 177
+    (fetchpatch {
+      url = "https://github.com/gnuradio/gnuradio/commit/2c767bb260a25b415e8c9c4b3ea37280b2127cec.patch";
+      sha256 = "sha256-l4dSzkXb5s3vcCeuKMMwiKfv83hFI9Yg+EMEX+sl+Uo=";
+    })
   ];
   passthru = shared.passthru // {
     # Deps that are potentially overriden and are used inside GR plugins - the same version must
diff --git a/pkgs/applications/radio/gnuradio/default.nix b/pkgs/applications/radio/gnuradio/default.nix
index d92af80701b1a..61aafb63b5dbc 100644
--- a/pkgs/applications/radio/gnuradio/default.nix
+++ b/pkgs/applications/radio/gnuradio/default.nix
@@ -46,13 +46,13 @@
 , pname ? "gnuradio"
 , versionAttr ? {
   major = "3.9";
-  minor = "3";
+  minor = "4";
   patch = "0";
 }
 }:
 
 let
-  sourceSha256 = "sha256-jVfExv1CcnlOaaj/XtnfhWAHnQsshZJ1l/zXo0uovdo=";
+  sourceSha256 = "sha256-O+37CyF0IVPdUB1e68HsaXD0T2VsOLPXOpLNlRYEXUk=";
   featuresInfo = {
     # Needed always
     basic = {
@@ -79,6 +79,9 @@ let
       native = [ doxygen ];
       cmakeEnableFlag = "DOXYGEN";
     };
+    man-pages = {
+      cmakeEnableFlag = "MANPAGES";
+    };
     python-support = {
       pythonRuntime = [ python.pkgs.six ];
       native = [
@@ -269,11 +272,6 @@ stdenv.mkDerivation rec {
   patches = [
     # Not accepted upstream, see https://github.com/gnuradio/gnuradio/pull/5227
     ./modtool-newmod-permissions.patch
-    (fetchpatch {
-      # https://github.com/gnuradio/gnuradio/pull/5225
-      url = "https://github.com/gnuradio/gnuradio/commit/4cef46e3ea0faf04e05ca1a5846cd1568fa51bb2.patch";
-      sha256 = "sha256-6AlGbtD1S0c3I9JSoLTMP4YqwDU17i2j+XRkuR+QTuc=";
-    })
   ];
   passthru = shared.passthru // {
     # Deps that are potentially overriden and are used inside GR plugins - the same version must
diff --git a/pkgs/applications/radio/gqrx/default.nix b/pkgs/applications/radio/gqrx/default.nix
index 572efa3fac6c5..a653762b538e1 100644
--- a/pkgs/applications/radio/gqrx/default.nix
+++ b/pkgs/applications/radio/gqrx/default.nix
@@ -14,19 +14,23 @@
 , rtl-sdr
 , hackrf
 , pulseaudioSupport ? true, libpulseaudio
+, portaudioSupport ? false, portaudio
 }:
 
 assert pulseaudioSupport -> libpulseaudio != null;
+assert portaudioSupport -> portaudio != null;
+# audio backends are mutually exclusive
+assert !(pulseaudioSupport && portaudioSupport);
 
 gnuradio3_8Minimal.pkgs.mkDerivation rec {
   pname = "gqrx";
-  version = "2.14.6";
+  version = "2.15.1";
 
   src = fetchFromGitHub {
-    owner = "csete";
+    owner = "gqrx-sdr";
     repo = "gqrx";
     rev = "v${version}";
-    sha256 = "sha256-DMmQXcGPudAVOwuc+LVrcIzfwMMQVBZPbM6Bt1w56D8=";
+    sha256 = "sha256-OL83l3A27rggfGbfLT1CUaPAQHEKXgoGS1jYJZ9eHPQ=";
   };
 
   nativeBuildInputs = [
@@ -49,7 +53,20 @@ gnuradio3_8Minimal.pkgs.mkDerivation rec {
   ] ++ lib.optionals (gnuradio3_8Minimal.hasFeature "gr-ctrlport") [
     thrift
     gnuradio3_8Minimal.unwrapped.python.pkgs.thrift
-  ] ++ lib.optionals pulseaudioSupport [ libpulseaudio ];
+  ] ++ lib.optionals pulseaudioSupport [ libpulseaudio ]
+    ++ lib.optionals portaudioSupport [ portaudio ];
+
+  cmakeFlags =
+    let
+      audioBackend =
+        if pulseaudioSupport
+        then "Pulseaudio"
+        else if portaudioSupport
+        then "Portaudio"
+        else "Gr-audio";
+    in [
+      "-DLINUX_AUDIO_BACKEND=${audioBackend}"
+    ];
 
   postInstall = ''
     install -vD $src/gqrx.desktop -t "$out/share/applications/"
diff --git a/pkgs/applications/radio/guglielmo/default.nix b/pkgs/applications/radio/guglielmo/default.nix
new file mode 100644
index 0000000000000..1702f5902021f
--- /dev/null
+++ b/pkgs/applications/radio/guglielmo/default.nix
@@ -0,0 +1,55 @@
+{ lib, mkDerivation, fetchFromGitHub, cmake, pkg-config
+, airspy
+, librtlsdr
+, fdk_aac
+, faad2
+, fftwFloat
+, libsndfile
+, libsamplerate
+, portaudio
+, qtmultimedia
+, qwt
+} :
+
+mkDerivation rec {
+  pname = "guglielmo";
+  version = "0.3";
+
+  src = fetchFromGitHub {
+    owner = "marcogrecopriolo";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0s1iz9s0k897jayiwl3yr9ylpclw6bzcpmzhxqn0mkd7jhgfl4vx";
+  };
+
+  postInstall = ''
+    mv $out/linux-bin $out/bin
+  '';
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [
+    airspy
+    librtlsdr
+    fdk_aac
+    faad2
+    fftwFloat
+    libsndfile
+    libsamplerate
+    portaudio
+    qtmultimedia
+    qwt
+  ];
+
+  postFixup = ''
+    # guglielmo opens SDR libraries at run time
+    patchelf --add-rpath "${airspy}/lib:${librtlsdr}/lib" $out/bin/.guglielmo-wrapped
+  '';
+
+  meta = with lib; {
+    description = "Qt based FM / Dab tuner";
+    homepage = "https://github.com/marcogrecopriolo/guglielmo";
+    license = licenses.gpl2Only;
+    maintainers = [ maintainers.markuskowa ];
+    platforms =  platforms.linux;
+  };
+}
diff --git a/pkgs/applications/radio/qradiolink/default.nix b/pkgs/applications/radio/qradiolink/default.nix
index 31be8f4fb8b64..6960eba6a57d1 100644
--- a/pkgs/applications/radio/qradiolink/default.nix
+++ b/pkgs/applications/radio/qradiolink/default.nix
@@ -14,6 +14,7 @@
 , libjpeg
 , libsndfile
 , libftdi
+, limesuite
 , protobuf
 , speex
 , speexdsp
@@ -21,13 +22,13 @@
 
 gnuradio3_8.pkgs.mkDerivation rec {
   pname = "qradiolink";
-  version = "0.8.5-2";
+  version = "0.8.6-2";
 
   src = fetchFromGitHub {
     owner = "qradiolink";
     repo = "qradiolink";
     rev = version;
-    sha256 = "MgHfKR3AJW3pIN9oCBr4BWxk1fGSCpLmMzjxvuTmuFA=";
+    sha256 = "1694yyw0vc77m5pbc5rwl6khd8000dbrliz3q4vsa9dqnfnz1777";
   };
 
   preBuild = ''
@@ -55,6 +56,7 @@ gnuradio3_8.pkgs.mkDerivation rec {
     gnuradio3_8.pkgs.osmosdr
     libopus
     libjpeg
+    limesuite
     speex
     speexdsp
     gnuradio3_8.qt.qtbase
diff --git a/pkgs/applications/radio/rtl_433/default.nix b/pkgs/applications/radio/rtl_433/default.nix
index 72aa865176c29..54dfe21ce04e6 100644
--- a/pkgs/applications/radio/rtl_433/default.nix
+++ b/pkgs/applications/radio/rtl_433/default.nix
@@ -3,14 +3,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "21.05";
+  version = "21.12";
   pname = "rtl_433";
 
   src = fetchFromGitHub {
     owner = "merbanan";
     repo = "rtl_433";
     rev = version;
-    sha256 = "sha256-01mXOwLv16yTR65BboN+TFm2aE2EMfW1D5teDdW2wLg=";
+    sha256 = "sha256-KoDKyI7KDdGSe79ZTuL9ObKnOJsqTN4wrMq+/cvQ/Xk=";
   };
 
   nativeBuildInputs = [ pkg-config cmake ];
diff --git a/pkgs/applications/radio/tlf/default.nix b/pkgs/applications/radio/tlf/default.nix
index 91a07496ce9ff..f988957066e95 100644
--- a/pkgs/applications/radio/tlf/default.nix
+++ b/pkgs/applications/radio/tlf/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, autoconf, automake, pkg-config, glib
+{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, autoconf, automake, pkg-config, glib
 , perl, ncurses5, hamlib, xmlrpc_c }:
 
 stdenv.mkDerivation rec {
@@ -12,6 +12,18 @@ stdenv.mkDerivation rec {
     sha256 = "1xpgs4k27pjd9mianfknknp6mf34365bcp96wrv5xh4dhph573rj";
   };
 
+  patches = [
+    # Pull upstream fix for ncurses-6.3:
+    #   https://github.com/Tlf/tlf/pull/282
+    # We use Debian's patch as upstream fixes don't apply as is due to
+    # related code changes. The change will be a part of 1.4.2 release.
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://salsa.debian.org/debian-hamradio-team/tlf/-/raw/5a2d79fc35bde97f653b1373fd970d41fe01a3ec/debian/patches/warnings-as-errors.patch?inline=false";
+      sha256 = "1zi1dd4vqkgl2pg29lnhj91ralqg58gmkzq9fkcx0dyakbjm6070";
+    })
+  ];
+
   nativeBuildInputs = [ autoreconfHook autoconf automake pkg-config perl ];
   buildInputs = [ glib ncurses5 hamlib xmlrpc_c ];
 
diff --git a/pkgs/applications/radio/uhd/default.nix b/pkgs/applications/radio/uhd/default.nix
index 9f2f39aab2c5d..2928b19f29df2 100644
--- a/pkgs/applications/radio/uhd/default.nix
+++ b/pkgs/applications/radio/uhd/default.nix
@@ -6,14 +6,13 @@
 , pkg-config
 # See https://files.ettus.com/manual_archive/v3.15.0.0/html/page_build_guide.html for dependencies explanations
 , boost
-, enableLibuhd_C_api ? true
+, enableCApi ? true
 # requires numpy
-, enableLibuhd_Python_api ? false
+, enablePythonApi ? false
 , python3
 , enableExamples ? false
 , enableUtils ? false
-, enableLiberio ? false
-, liberio
+, enableSim ? false
 , libusb1
 , enableDpdk ? false
 , dpdk
@@ -25,7 +24,6 @@
 , enableUsrp1 ? true
 , enableUsrp2 ? true
 , enableX300 ? true
-, enableN230 ? true
 , enableN300 ? true
 , enableN320 ? true
 , enableE300 ? true
@@ -41,18 +39,18 @@ stdenv.mkDerivation rec {
   pname = "uhd";
   # UHD seems to use three different version number styles: x.y.z, xxx_yyy_zzz
   # and xxx.yyy.zzz. Hrmpf... style keeps changing
-  version = "4.0.0.0";
+  version = "4.1.0.5";
 
   src = fetchFromGitHub {
     owner = "EttusResearch";
     repo = "uhd";
     rev = "v${version}";
-    sha256 = "NCyiI4pIPw0nBRFdUGpgZ/x2mWz+Qm78ZGACUnSbGSs=";
+    sha256 = "sha256-XBq4GkLRR2SFunFRvpPOMiIbTuUkMYf8tPAoHCoveRA=";
   };
   # Firmware images are downloaded (pre-built) from the respective release on Github
   uhdImagesSrc = fetchurl {
     url = "https://github.com/EttusResearch/uhd/releases/download/v${version}/uhd-images_${version}.tar.xz";
-    sha256 = "Xfx0bsHUQ5+Dp+xk0sVWWP83oyXQcUH5AX4PNEE7fY4=";
+    sha256 = "HctHB90ikOMkrYNyWmjGE/2HvA7xXKCUezdtiqzN+1A=";
   };
 
   cmakeFlags = [
@@ -61,9 +59,8 @@ stdenv.mkDerivation rec {
     "-DENABLE_TESTS=ON" # This installs tests as well so we delete them via postPhases
     "-DENABLE_EXAMPLES=${onOffBool enableExamples}"
     "-DENABLE_UTILS=${onOffBool enableUtils}"
-    "-DENABLE_LIBUHD_C_API=${onOffBool enableLibuhd_C_api}"
-    "-DENABLE_LIBUHD_PYTHON_API=${onOffBool enableLibuhd_Python_api}"
-    "-DENABLE_LIBERIO=${onOffBool enableLiberio}"
+    "-DENABLE_C_API=${onOffBool enableCApi}"
+    "-DENABLE_PYTHON_API=${onOffBool enablePythonApi}"
     "-DENABLE_DPDK=${onOffBool enableDpdk}"
     # Devices
     "-DENABLE_OCTOCLOCK=${onOffBool enableOctoClock}"
@@ -73,7 +70,6 @@ stdenv.mkDerivation rec {
     "-DENABLE_USRP1=${onOffBool enableUsrp1}"
     "-DENABLE_USRP2=${onOffBool enableUsrp2}"
     "-DENABLE_X300=${onOffBool enableX300}"
-    "-DENABLE_N230=${onOffBool enableN230}"
     "-DENABLE_N300=${onOffBool enableN300}"
     "-DENABLE_N320=${onOffBool enableN320}"
     "-DENABLE_E300=${onOffBool enableE300}"
@@ -87,7 +83,7 @@ stdenv.mkDerivation rec {
 
   # Python + Mako are always required for the build itself but not necessary for runtime.
   pythonEnv = python3.withPackages (ps: with ps; [ Mako ]
-    ++ optionals (enableLibuhd_Python_api) [ numpy setuptools ]
+    ++ optionals (enablePythonApi) [ numpy setuptools ]
     ++ optionals (enableUtils) [ requests six ]
   );
 
@@ -98,7 +94,7 @@ stdenv.mkDerivation rec {
     # If both enableLibuhd_Python_api and enableUtils are off, we don't need
     # pythonEnv in buildInputs as it's a 'build' dependency and not a runtime
     # dependency
-    ++ optionals (!enableLibuhd_Python_api && !enableUtils) [ pythonEnv ]
+    ++ optionals (!enablePythonApi && !enableUtils) [ pythonEnv ]
   ;
   buildInputs = [
     boost
@@ -107,12 +103,12 @@ stdenv.mkDerivation rec {
     # However, if enableLibuhd_Python_api *or* enableUtils is on, we need
     # pythonEnv for runtime as well. The utilities' runtime dependencies are
     # handled at the environment
-    ++ optionals (enableLibuhd_Python_api || enableUtils) [ pythonEnv ]
-    ++ optionals (enableLiberio) [ liberio ]
+    ++ optionals (enablePythonApi || enableUtils) [ pythonEnv ]
     ++ optionals (enableDpdk) [ dpdk ]
   ;
 
-  doCheck = true;
+  # many tests fails on darwin, according to ofborg
+  doCheck = !stdenv.isDarwin;
 
   # Build only the host software
   preConfigure = "cd host";
@@ -154,6 +150,6 @@ stdenv.mkDerivation rec {
     homepage = "https://uhd.ettus.com/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ bjornfor fpletz tomberek ];
+    maintainers = with maintainers; [ bjornfor fpletz tomberek doronbehar ];
   };
 }
diff --git a/pkgs/applications/radio/urh/default.nix b/pkgs/applications/radio/urh/default.nix
index a5c687a8db206..29f8ec7b5e510 100644
--- a/pkgs/applications/radio/urh/default.nix
+++ b/pkgs/applications/radio/urh/default.nix
@@ -1,5 +1,6 @@
 { lib, fetchFromGitHub, python3Packages
 , hackrf, rtl-sdr, airspy, limesuite, libiio
+, libbladeRF
 , qt5
 , USRPSupport ? false, uhd }:
 
@@ -15,7 +16,7 @@ python3Packages.buildPythonApplication rec {
   };
 
   nativeBuildInputs = [ qt5.wrapQtAppsHook ];
-  buildInputs = [ hackrf rtl-sdr airspy limesuite libiio ]
+  buildInputs = [ hackrf rtl-sdr airspy limesuite libiio libbladeRF ]
     ++ lib.optional USRPSupport uhd;
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/applications/radio/wsjtx/default.nix b/pkgs/applications/radio/wsjtx/default.nix
index 3e889c210649b..165ddfe8b372f 100644
--- a/pkgs/applications/radio/wsjtx/default.nix
+++ b/pkgs/applications/radio/wsjtx/default.nix
@@ -4,12 +4,12 @@
 
 stdenv.mkDerivation rec {
   pname = "wsjtx";
-  version = "2.5.1";
+  version = "2.5.3";
 
   # This is a "superbuild" tarball containing both wsjtx and a hamlib fork
   src = fetchurl {
     url = "http://physics.princeton.edu/pulsar/k1jt/wsjtx-${version}.tgz";
-    sha256 = "sha256-aof+OavQ+IBw3eef1+bQ9YwIXCdecYiADS+eRXTrmvQ=";
+    sha256 = "sha256-Dd99JBPn1TgPF8Yvqk+AZX8ZUuQjYS0Tx3y5A3VZsHw=";
   };
 
   # Hamlib builds with autotools, wsjtx builds with cmake
diff --git a/pkgs/applications/science/astronomy/astrolog/default.nix b/pkgs/applications/science/astronomy/astrolog/default.nix
new file mode 100644
index 0000000000000..90749f54310df
--- /dev/null
+++ b/pkgs/applications/science/astronomy/astrolog/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, fetchzip, fetchurl, xorg, gnused }:
+stdenv.mkDerivation rec {
+  pname = "astrolog";
+  version = "7.30";
+
+  src = fetchzip {
+    url = "http://www.astrolog.org/ftp/ast73src.zip";
+    sha256 = "0nry4gxwy5aa99zzr8dlb6babpachsc3jjyk0vw82c7x3clbhl7l";
+    stripRoot = false;
+  };
+
+  patchPhase = ''
+    ${gnused}/bin/sed -i "s:~/astrolog:$out/astrolog:g" astrolog.h
+  '';
+
+  buildInputs = [ xorg.libX11 ];
+  NIX_CFLAGS_COMPILE = "-Wno-format-security";
+
+  installPhase =
+  let
+    ephemeris = fetchzip {
+      url = "http://astrolog.org/ftp/ephem/astephem.zip";
+      sha256 = "1mwvpvfk3lxjcc79zvwl4ypqzgqzipnc01cjldxrmx56xkc35zn7";
+      stripRoot = false;
+    };
+    atlas = fetchurl {
+      url = "http://astrolog.org/ftp/atlas/atlasbig.as";
+      sha256 = "1k8cy8gpcvkwkhyz248qhvrv5xiwp1n1s3b7rlz86krh7vzz01mp";
+    };
+  in ''
+    mkdir -p $out/bin $out/astrolog
+    cp -r ${ephemeris}/*.se1 $out/astrolog
+    cp *.as $out/astrolog
+    install astrolog $out/bin
+  '';
+
+  meta = with lib; {
+    maintainers = [ maintainers.kmein ];
+    homepage = "https://astrolog.org/astrolog.htm";
+    description = "Freeware astrology program";
+    platforms = platforms.linux;
+    license = licenses.gpl2Plus;
+  };
+}
diff --git a/pkgs/applications/science/astronomy/celestia/default.nix b/pkgs/applications/science/astronomy/celestia/default.nix
index 6b76c2de4b05f..3f21987661cf9 100644
--- a/pkgs/applications/science/astronomy/celestia/default.nix
+++ b/pkgs/applications/science/astronomy/celestia/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
     description = "Real-time 3D simulation of space";
     changelog = "https://github.com/CelestiaProject/Celestia/releases/tag/${version}";
     license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ hjones2199 ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/science/astronomy/kstars/default.nix b/pkgs/applications/science/astronomy/kstars/default.nix
index c7e76b6ad9235..b7b9fbeb14d39 100644
--- a/pkgs/applications/science/astronomy/kstars/default.nix
+++ b/pkgs/applications/science/astronomy/kstars/default.nix
@@ -14,11 +14,11 @@
 
 mkDerivation rec {
   pname = "kstars";
-  version = "3.5.5";
+  version = "3.5.6";
 
   src = fetchurl {
     url = "mirror://kde/stable/kstars/kstars-${version}.tar.xz";
-    sha256 = "sha256-cD31YFBnKvEPyBQils6qJxNKagDoIi8/Znfxj/Gsa0M=";
+    sha256 = "sha256-n+fGYLzQAGS8828hr7XE9qiTMyg99L+W7VRjd9aEkrQ=";
   };
 
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
diff --git a/pkgs/applications/science/astronomy/stellarium/default.nix b/pkgs/applications/science/astronomy/stellarium/default.nix
index f54dcb94e23b3..0963b4c17e02d 100644
--- a/pkgs/applications/science/astronomy/stellarium/default.nix
+++ b/pkgs/applications/science/astronomy/stellarium/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "stellarium";
-  version = "0.21.2";
+  version = "0.21.3";
 
   src = fetchFromGitHub {
     owner = "Stellarium";
     repo = "stellarium";
     rev = "v${version}";
-    sha256 = "sha256-bh00o++l3sqELX5kgRhiCcQOLVqvjEyEMcJTnnVPNU8=";
+    sha256 = "sha256-TQMLy5ziBF7YqPDzPwgjY5FHxxMUe7MXo/TGxQ1nGcg=";
   };
 
   nativeBuildInputs = [ cmake perl wrapQtAppsHook ];
diff --git a/pkgs/applications/science/biology/delly/default.nix b/pkgs/applications/science/biology/delly/default.nix
index fe81ff44d2456..f2e0d3a50c24a 100644
--- a/pkgs/applications/science/biology/delly/default.nix
+++ b/pkgs/applications/science/biology/delly/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "delly";
-  version = "0.8.7";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
       owner = "dellytools";
       repo = pname;
       rev = "v${version}";
-      sha256 = "sha256-DWwC35r8cQbePUzppkFQlev0YZdxk2+BSrNTW/DOY3M=";
+      sha256 = "sha256-p1pryP+ktGt8OHFiASJQ3T+K94cNBG9fLxsJ2n/T+DA=";
   };
 
   buildInputs = [ zlib htslib bzip2 xz ncurses boost ];
diff --git a/pkgs/applications/science/biology/diamond/default.nix b/pkgs/applications/science/biology/diamond/default.nix
index 4f23f3f9a82c1..1221684f15c63 100644
--- a/pkgs/applications/science/biology/diamond/default.nix
+++ b/pkgs/applications/science/biology/diamond/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, cmake, zlib }:
+{ lib, stdenv, fetchFromGitHub, cmake, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "diamond";
   version = "0.8.36";
 
-  src = fetchurl {
-    url = "https://github.com/bbuchfink/diamond/archive/v${version}.tar.gz";
-    sha256 = "092smzzjcg51n3x4h84k52ijpz9m40ri838j9k2i463ribc3c8rh";
+  src = fetchFromGitHub {
+    owner = "bbuchfink";
+    repo = "diamond";
+    rev = "v${version}";
+    sha256 = "sha256-7uqOQOzkYN0RNwKBGUZ/Ny5NVZMoGByOk+GUvjdBzck=";
   };
 
   patches = [
diff --git a/pkgs/applications/science/biology/fastp/default.nix b/pkgs/applications/science/biology/fastp/default.nix
index 2e44113f40ef5..4dace9e63b42f 100644
--- a/pkgs/applications/science/biology/fastp/default.nix
+++ b/pkgs/applications/science/biology/fastp/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fastp";
-  version = "0.23.1";
+  version = "0.23.2";
 
   src = fetchFromGitHub {
     owner = "OpenGene";
     repo = "fastp";
     rev = "v${version}";
-    sha256 = "sha256-vRJlNtg2JabBAUaX91Y04z8MdyxEnreBAlIHn7VB+u4=";
+    sha256 = "sha256-W1mXTfxD7/gHJhao6qqbNcyM3t2cfrUYiBYPJi/O1RI=";
   };
 
   buildInputs = [ zlib libdeflate isa-l ];
diff --git a/pkgs/applications/science/biology/genmap/default.nix b/pkgs/applications/science/biology/genmap/default.nix
new file mode 100644
index 0000000000000..c2d1b8da7af12
--- /dev/null
+++ b/pkgs/applications/science/biology/genmap/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, gtest
+, which
+}:
+
+stdenv.mkDerivation rec {
+  pname = "genmap";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "cpockrandt";
+    repo = "genmap";
+    rev = "genmap-v${version}";
+    fetchSubmodules = true;
+    sha256 = "sha256-7sIKBRMNzyCrZ/c2nXkknb6a5YsXe6DRE2IFhp6AviY=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  doCheck = true;
+  patches = [ ./gtest.patch ];
+  checkInputs = [ gtest which ];
+  preCheck = "make genmap_algo_test";
+
+  # disable benchmarks
+  preConfigure = ''
+    echo > benchmarks/CMakeLists.txt
+  '';
+
+  meta = {
+    description = "Ultra-fast computation of genome mappability";
+    license = lib.licenses.bsd3;
+    homepage = "https://github.com/cpockrandt/genmap";
+    maintainers = with lib.maintainers; [ jbedo ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/applications/science/biology/genmap/gtest.patch b/pkgs/applications/science/biology/genmap/gtest.patch
new file mode 100644
index 0000000000000..f01d0e115eb53
--- /dev/null
+++ b/pkgs/applications/science/biology/genmap/gtest.patch
@@ -0,0 +1,30 @@
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 67ec8f9..ed0b2e0 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -2,23 +2,14 @@
+ #  GenMap tests
+ # ===========================================================================
+ 
+-include (ExternalProject)
+-ExternalProject_Add (googletest
+-                     PREFIX "${CMAKE_CURRENT_BINARY_DIR}/googletest"
+-                     GIT_REPOSITORY "https://github.com/google/googletest.git"
+-                     INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}"
+-                     CMAKE_ARGS "-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}"
+-                     GIT_TAG release-1.10.0
+-                     UPDATE_DISCONNECTED YES)
+ 
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") # TODO: --coverage
+ add_executable (genmap_algo_test tests.cpp)
+-add_dependencies (genmap_algo_test googletest)
+ 
+ include_directories (${CMAKE_CURRENT_BINARY_DIR}/include)
+ target_link_libraries (genmap_algo_test ${SEQAN_LIBRARIES})
+-target_link_libraries (genmap_algo_test ${CMAKE_CURRENT_BINARY_DIR}/lib/libgtest.a)
+-target_link_libraries (genmap_algo_test ${CMAKE_CURRENT_BINARY_DIR}/lib/libgtest_main.a)
++target_link_libraries (genmap_algo_test -lgtest)
++target_link_libraries (genmap_algo_test -lgtest_main)
+ target_link_libraries (genmap_algo_test pthread)
+ 
+ add_test(NAME algo_test COMMAND genmap_algo_test)
diff --git a/pkgs/applications/science/biology/kssd/default.nix b/pkgs/applications/science/biology/kssd/default.nix
index ef853d0cd47c2..bcf47e6b6a3d1 100644
--- a/pkgs/applications/science/biology/kssd/default.nix
+++ b/pkgs/applications/science/biology/kssd/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, zlib, automake, autoconf, libtool }:
+{ lib, stdenv, fetchFromGitHub, zlib, automake, autoconf, libtool }:
 
 stdenv.mkDerivation rec {
   pname = "kssd";
   version = "1.1";
 
-  src = fetchurl {
-    url = "https://github.com/yhg926/public_${pname}/archive/v${version}.tar.gz";
-    sha256 = "1x3v31cxnww4w5zn15vy0bwk53llsa0f97ma6qbw89h152d2mx5x";
+  src = fetchFromGitHub {
+    owner = "yhg926";
+    repo = "public_kssd";
+    rev = "v${version}";
+    sha256 = "sha256-8jzYqo9LXF66pQ1EIusm+gba2VbTYpJz2K3NVlA3QxY=";
   };
 
   buildInputs = [ zlib automake autoconf libtool ];
diff --git a/pkgs/applications/science/biology/messer-slim/default.nix b/pkgs/applications/science/biology/messer-slim/default.nix
index 9d9e46bc78000..f8ce14e4685e5 100644
--- a/pkgs/applications/science/biology/messer-slim/default.nix
+++ b/pkgs/applications/science/biology/messer-slim/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, cmake, gcc, gcc-unwrapped }:
+{ lib, stdenv, fetchFromGitHub, cmake, gcc, gcc-unwrapped }:
 
 stdenv.mkDerivation rec {
   version = "3.6";
   pname = "messer-slim";
 
-  src = fetchurl {
-    url = "https://github.com/MesserLab/SLiM/archive/v${version}.tar.gz";
-    sha256 = "sha256-djWUKB+NW2a/6oaAMcH0Ul/R/XPHvGDbwlfeFmkbMOY=";
+  src = fetchFromGitHub {
+    owner = "MesserLab";
+    repo = "SLiM";
+    rev = "v${version}";
+    sha256 = "sha256-TSbGUfr8YzTRYTkbMfM2+K04Z3h5W4jakw+V4axOKm8=";
   };
 
   nativeBuildInputs = [ cmake gcc gcc-unwrapped ];
diff --git a/pkgs/applications/science/biology/minimap2/default.nix b/pkgs/applications/science/biology/minimap2/default.nix
index 072826c406158..062cdd56c7c44 100644
--- a/pkgs/applications/science/biology/minimap2/default.nix
+++ b/pkgs/applications/science/biology/minimap2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "minimap2";
-  version = "2.22";
+  version = "2.23";
 
   src = fetchFromGitHub {
     repo = pname;
     owner = "lh3";
     rev = "v${version}";
-    sha256 = "sha256-jYXJr2T1enZfSABVV5Kmd5OBtWZtQ2D/2eAlW2WHtGU=";
+    sha256 = "sha256-oNVpSINcXO2eKzOCr/Fl8tSMguRxzmlDNu7hLZeopoQ=";
   };
 
   buildInputs = [ zlib ];
diff --git a/pkgs/applications/science/biology/mrtrix/default.nix b/pkgs/applications/science/biology/mrtrix/default.nix
index e0b122778d1b8..10bfb633f4afc 100644
--- a/pkgs/applications/science/biology/mrtrix/default.nix
+++ b/pkgs/applications/science/biology/mrtrix/default.nix
@@ -1,17 +1,17 @@
 { stdenv, lib, fetchFromGitHub, python, makeWrapper
 , eigen, fftw, libtiff, libpng, zlib, ants, bc
 , qt5, libGL, libGLU, libX11, libXext
-, withGui ? true }:
+, withGui ? true, less }:
 
 stdenv.mkDerivation rec {
   pname = "mrtrix";
-  version = "3.0.2";
+  version = "unstable-2021-11-25";
 
   src = fetchFromGitHub {
     owner  = "MRtrix3";
     repo   = "mrtrix3";
-    rev    = version;
-    sha256 = "0p4d1230j6664rnb9l65cpyfj9ncbcm39yv1r9y77br9rkkv1za3";
+    rev    = "994498557037c9e4f7ba67f255820ef84ea899d9";
+    sha256 = "sha256-8eFDS5z4ZxMzi9Khk90KAS4ndma/Syd6JDXM2Fpr0M8=";
     fetchSubmodules = true;
   };
 
@@ -44,6 +44,9 @@ stdenv.mkDerivation rec {
 
     substituteInPlace ./run_tests  \
       --replace 'git submodule update --init $datadir >> $LOGFILE 2>&1' ""
+
+    substituteInPlace ./build  \
+      --replace '"less -RX "' '"${less}/bin/less -RX "'
   '';
 
   configurePhase = ''
diff --git a/pkgs/applications/science/biology/niftyseg/default.nix b/pkgs/applications/science/biology/niftyseg/default.nix
index 215ee35d78a47..0fd658b0addcb 100644
--- a/pkgs/applications/science/biology/niftyseg/default.nix
+++ b/pkgs/applications/science/biology/niftyseg/default.nix
@@ -1,11 +1,14 @@
-{ lib, stdenv, fetchurl, cmake, eigen, zlib }:
+{ lib, stdenv, fetchFromGitHub, cmake, eigen, zlib }:
 
 stdenv.mkDerivation rec {
   pname   = "niftyseg";
   version = "1.0";
-  src = fetchurl {
-    url    = "https://github.com/KCL-BMEIS/NiftySeg/archive/v${version}.tar.gz";
-    sha256 = "11q6yldsxp3k6gfp94c0xhcan2y3finzv8lzizmrc79yps3wjkn0";
+
+  src = fetchFromGitHub {
+    owner = "KCL-BMEIS";
+    repo = "NiftySeg";
+    rev = "v${version}";
+    sha256 = "sha256-FDthq1ild9XOw3E3O7Lpfn6hBF1Frhv1NxfEA8500n8=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/biology/picard-tools/default.nix b/pkgs/applications/science/biology/picard-tools/default.nix
index 855f90a74a328..f6dcca3a2399e 100644
--- a/pkgs/applications/science/biology/picard-tools/default.nix
+++ b/pkgs/applications/science/biology/picard-tools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "picard-tools";
-  version = "2.26.4";
+  version = "2.26.9";
 
   src = fetchurl {
     url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
-    sha256 = "sha256-KVOQuqudne0SAdgFEft/lTuoDn9vcpuDtMAafztYvPo=";
+    sha256 = "sha256-5e60StDQil9SMR9G6Gs+OPWMjADn96fOpfHDlNoZSGc=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/science/biology/samtools/default.nix b/pkgs/applications/science/biology/samtools/default.nix
index 99210092a154b..98b0394c35f1f 100644
--- a/pkgs/applications/science/biology/samtools/default.nix
+++ b/pkgs/applications/science/biology/samtools/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, zlib, htslib, perl, ncurses ? null }:
+{ lib, stdenv, fetchurl, fetchpatch, zlib, htslib, perl, ncurses ? null }:
 
 stdenv.mkDerivation rec {
   pname = "samtools";
@@ -9,6 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-YWyi4FHMgAmh6cAc/Yx8r4twkW3f9m87dpFAeUZfjGA=";
   };
 
+  patches = [
+    # Pull upstream patch for ncurses-6.3 support
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/samtools/samtools/commit/396ef20eb0854d6b223c3223b60bb7efe42301f7.patch";
+      sha256 = "sha256-p0l9ymXK9nqL2w8EytbW+qeaI7dD86IQgIVxacBj838=";
+    })
+  ];
+
   nativeBuildInputs = [ perl ];
 
   buildInputs = [ zlib ncurses htslib ];
diff --git a/pkgs/applications/science/biology/seaview/default.nix b/pkgs/applications/science/biology/seaview/default.nix
index 27d83f3bf89ed..9cfa7cb933b0c 100644
--- a/pkgs/applications/science/biology/seaview/default.nix
+++ b/pkgs/applications/science/biology/seaview/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, coreutils, fltk, libjpeg }:
 
 stdenv.mkDerivation rec {
-  version = "5.0.4";
+  version = "5.0.5";
   pname = "seaview";
 
   src = fetchurl {
     url = "ftp://pbil.univ-lyon1.fr/pub/mol_phylogeny/seaview/archive/seaview_${version}.tar.gz";
-    sha256 = "09yp8467h49qnj7gg0mbcdha4ai3bn6vgs00gb76dd6h3pzfflz1";
+    sha256 = "sha256-zo9emLpHiDv6kekbx55NOibxWN2Zg7XngzGkUqSx+PI=";
   };
 
   buildInputs = [ fltk libjpeg ];
diff --git a/pkgs/applications/science/biology/subread/default.nix b/pkgs/applications/science/biology/subread/default.nix
new file mode 100644
index 0000000000000..431bd3788e7d1
--- /dev/null
+++ b/pkgs/applications/science/biology/subread/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, stdenv
+, fetchurl
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "subread";
+  version = "2.0.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/subread/subread-${version}/subread-${version}-source.tar.gz";
+    sha256 = "sha256-Vs7zovkU1DJxMGnVwoL0iDHDoezIlDKtVYDKoyKl9Ws=";
+  };
+
+  buildInputs = [
+    zlib
+  ];
+
+  configurePhase = ''
+    cd src
+    cp Makefile.${if stdenv.isLinux then "Linux" else "MacOS"} Makefile
+  '';
+
+  makeFlags = [ "CC_EXEC=cc" ];
+
+  installPhase = ''
+    mkdir $out
+    cp -r ../bin $out
+  '';
+
+  meta = with lib; {
+    description = "High-performance read alignment, quantification and mutation discovery";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ jbedo ];
+    platforms = [ "x86_64-darwin" "x86_64-linux" ];
+    homepage = "http://subread.sourceforge.net/";
+  };
+
+}
diff --git a/pkgs/applications/science/chemistry/cp2k/default.nix b/pkgs/applications/science/chemistry/cp2k/default.nix
index 6bb99ce556ddc..13efa2390ffae 100644
--- a/pkgs/applications/science/chemistry/cp2k/default.nix
+++ b/pkgs/applications/science/chemistry/cp2k/default.nix
@@ -1,6 +1,8 @@
 { lib, stdenv, fetchFromGitHub, python3, gfortran, blas, lapack
 , fftw, libint, libvori, libxc, mpi, gsl, scalapack, openssh, makeWrapper
-, libxsmm, spglib, which
+, libxsmm, spglib, which, pkg-config
+, enableElpa ? false
+, elpa
 } :
 
 let
@@ -19,7 +21,7 @@ in stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ python3 which openssh makeWrapper ];
+  nativeBuildInputs = [ python3 which openssh makeWrapper pkg-config ];
   buildInputs = [
     gfortran
     fftw
@@ -32,7 +34,7 @@ in stdenv.mkDerivation rec {
     scalapack
     blas
     lapack
-  ];
+  ] ++ lib.optional enableElpa elpa;
 
   propagatedBuildInputs = [ mpi ];
   propagatedUserEnvPkgs = [ mpi ];
@@ -60,20 +62,20 @@ in stdenv.mkDerivation rec {
     AR         = ar -r
     DFLAGS     = -D__FFTW3 -D__LIBXC -D__LIBINT -D__parallel -D__SCALAPACK \
                  -D__MPI_VERSION=3 -D__F2008 -D__LIBXSMM -D__SPGLIB \
-                 -D__MAX_CONTR=4 -D__LIBVORI
+                 -D__MAX_CONTR=4 -D__LIBVORI ${lib.optionalString enableElpa "-D__ELPA"}
     CFLAGS    = -fopenmp
     FCFLAGS    = \$(DFLAGS) -O2 -ffree-form -ffree-line-length-none \
                  -ftree-vectorize -funroll-loops -msse2 \
                  -std=f2008 \
                  -fopenmp -ftree-vectorize -funroll-loops \
                  -I${libxc}/include -I${libxsmm}/include \
-                 -I${libint}/include
+                 -I${libint}/include ${lib.optionalString enableElpa "$(pkg-config --variable=fcflags elpa)"}
     LIBS       = -lfftw3 -lfftw3_threads \
                  -lscalapack -lblas -llapack \
                  -lxcf03 -lxc -lxsmmf -lxsmm -lsymspg \
                  -lint2 -lstdc++ -lvori \
                  -lgomp -lpthread -lm \
-                 -fopenmp
+                 -fopenmp ${lib.optionalString enableElpa "$(pkg-config --libs elpa)"}
     LDFLAGS    = \$(FCFLAGS) \$(LIBS)
     EOF
   '';
diff --git a/pkgs/applications/science/chemistry/gwyddion/default.nix b/pkgs/applications/science/chemistry/gwyddion/default.nix
index 43007cb1f0f58..584554232ab20 100644
--- a/pkgs/applications/science/chemistry/gwyddion/default.nix
+++ b/pkgs/applications/science/chemistry/gwyddion/default.nix
@@ -35,10 +35,10 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gwyddion";
-   version = "2.59";
+   version = "2.60";
   src = fetchurl {
     url = "mirror://sourceforge/gwyddion/gwyddion-${version}.tar.xz";
-    sha256 = "sha256-APMOJeZt/zp8JvXghKZ5lQFRKWO/4TVDORok8qAgEBk=";
+    sha256 = "sha256-38PIardlOzDrVKWvV4AiQlecTYmwYegtzRya713Au/Y=";
   };
 
   nativeBuildInputs = [ pkg-config file ];
diff --git a/pkgs/applications/science/chemistry/jmol/default.nix b/pkgs/applications/science/chemistry/jmol/default.nix
index a3add93c8f70d..20b665792ac41 100644
--- a/pkgs/applications/science/chemistry/jmol/default.nix
+++ b/pkgs/applications/science/chemistry/jmol/default.nix
@@ -17,14 +17,14 @@ let
   };
 in
 stdenv.mkDerivation rec {
-  version = "14.31.49";
+  version = "14.32.6";
   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";
-    sha256 = "sha256-P+bzimBVammX5LxE6Yd6CmvmBeG8WdyA1T9bHXd+ifI=";
+    sha256 = "sha256-b9E/IJfqeA8rBSQogb/ZVBMW3y9bc2dBj/BIl0HWFR8=";
   };
 
   patchPhase = ''
diff --git a/pkgs/applications/science/chemistry/marvin/default.nix b/pkgs/applications/science/chemistry/marvin/default.nix
index c806db74ff3c4..72958898428a7 100644
--- a/pkgs/applications/science/chemistry/marvin/default.nix
+++ b/pkgs/applications/science/chemistry/marvin/default.nix
@@ -4,12 +4,12 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "marvin";
-  version = "21.9.0";
+  version = "21.20.0";
 
   src = fetchurl {
     name = "marvin-${version}.deb";
     url = "http://dl.chemaxon.com/marvin/${version}/marvin_linux_${versions.majorMinor version}.deb";
-    sha256 = "sha256-T94SoHAZmBfbGaFiuYAKhuKgHaXcDZix//YTTq1oFIk=";
+    sha256 = "sha256-xOtlJSUY7QLyggFXW0Ay3+6KNHIqljyDpyk0CP8jxWs=";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper ];
diff --git a/pkgs/applications/science/chemistry/octopus/default.nix b/pkgs/applications/science/chemistry/octopus/default.nix
index 0434bfe120c85..86addd5bd6960 100644
--- a/pkgs/applications/science/chemistry/octopus/default.nix
+++ b/pkgs/applications/science/chemistry/octopus/default.nix
@@ -11,13 +11,13 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "octopus";
-  version = "11.2";
+  version = "11.3";
 
   src = fetchFromGitLab {
     owner = "octopus-code";
     repo = "octopus";
     rev = version;
-    sha256 = "sha256-leEcUSjpiP13l65K9WKN2GXTtTa8vvK/MFxR2zH6Xno=";
+    sha256 = "0n04yvnc0rg3lvnkkdpbwkfl6zg544260p3s65vwkc5dflrhk34r";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/electronics/flatcam/default.nix b/pkgs/applications/science/electronics/flatcam/default.nix
index b8a80c5e9c117..1f6679625ec77 100644
--- a/pkgs/applications/science/electronics/flatcam/default.nix
+++ b/pkgs/applications/science/electronics/flatcam/default.nix
@@ -18,6 +18,7 @@ python3Packages.buildPythonApplication rec {
   propagatedBuildInputs = with python3Packages; [
     matplotlib
     numpy
+    packaging
     pyqt4
     Rtree
     scipy
diff --git a/pkgs/applications/science/electronics/horizon-eda/default.nix b/pkgs/applications/science/electronics/horizon-eda/default.nix
index eec7830b2a157..30ef1f5d109df 100644
--- a/pkgs/applications/science/electronics/horizon-eda/default.nix
+++ b/pkgs/applications/science/electronics/horizon-eda/default.nix
@@ -3,7 +3,7 @@
 , coreutils
 , cppzmq
 , curl
-, epoxy
+, libepoxy
 , fetchFromGitHub
 , glm
 , gtkmm3
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     cppzmq
     curl
-    epoxy
+    libepoxy
     glm
     gtkmm3
     libgit2
diff --git a/pkgs/applications/science/electronics/kicad/base.nix b/pkgs/applications/science/electronics/kicad/base.nix
index 0b024d5c947ed..2f4fd63574b07 100644
--- a/pkgs/applications/science/electronics/kicad/base.nix
+++ b/pkgs/applications/science/electronics/kicad/base.nix
@@ -27,7 +27,7 @@
 , libthai
 , libdatrie
 , libxkbcommon
-, epoxy
+, libepoxy
 , dbus
 , at-spi2-core
 , libXtst
@@ -35,7 +35,6 @@
 , swig
 , python
 , wxPython
-, opencascade
 , opencascade-occt
 , libngspice
 , valgrind
@@ -44,22 +43,16 @@
 , baseName
 , kicadSrc
 , kicadVersion
-, i18n
-, withOCE
 , withOCC
 , withNgspice
 , withScripting
+, withI18n
+, withPCM
 , debug
 , sanitizeAddress
 , sanitizeThreads
-, withI18n
 }:
 
-assert lib.asserts.assertMsg (!(withOCE && stdenv.isAarch64)) "OCE fails a test on Aarch64";
-assert lib.asserts.assertMsg (!(withOCC && withOCE))
-  "Only one of OCC and OCE may be enabled";
-assert lib.assertMsg (!(stable && (sanitizeAddress || sanitizeThreads)))
-  "Only kicad-unstable(-small) supports address/thread sanitation";
 assert lib.assertMsg (!(sanitizeAddress && sanitizeThreads))
   "'sanitizeAddress' and 'sanitizeThreads' are mutually exclusive, use one.";
 
@@ -75,6 +68,7 @@ stdenv.mkDerivation rec {
   # tagged releases don't have "unknown"
   # kicad nightlies use git describe --dirty
   # nix removes .git, so its approximated here
+  # "6.99.0" doesn't have "-unknown", yet; so leaving this in case it returns
   postPatch = ''
     substituteInPlace CMakeModules/KiCadVersion.cmake \
       --replace "unknown" "${builtins.substring 0 10 src.rev}" \
@@ -82,23 +76,14 @@ stdenv.mkDerivation rec {
 
   makeFlags = optionals (debug) [ "CFLAGS+=-Og" "CFLAGS+=-ggdb" ];
 
-  cmakeFlags = optionals (stable && withScripting) [
-    "-DKICAD_SCRIPTING=ON"
-    "-DKICAD_SCRIPTING_MODULES=ON"
-    "-DKICAD_SCRIPTING_PYTHON3=ON"
-    "-DKICAD_SCRIPTING_WXPYTHON_PHOENIX=ON"
+  cmakeFlags = optionals (withScripting) [
+    "-DKICAD_SCRIPTING_WXPYTHON=ON"
   ]
   ++ optionals (!withScripting) [
-    "-DKICAD_SCRIPTING=OFF"
     "-DKICAD_SCRIPTING_WXPYTHON=OFF"
   ]
-  ++ optional (withNgspice) "-DKICAD_SPICE=ON"
-  ++ optional (!withOCE) "-DKICAD_USE_OCE=OFF"
+  ++ optional (!withNgspice) "-DKICAD_SPICE=OFF"
   ++ optional (!withOCC) "-DKICAD_USE_OCC=OFF"
-  ++ optionals (withOCE) [
-    "-DKICAD_USE_OCE=ON"
-    "-DOCE_DIR=${opencascade}"
-  ]
   ++ optionals (withOCC) [
     "-DKICAD_USE_OCC=ON"
     "-DOCC_INCLUDE_DIR=${opencascade-occt}/include/opencascade"
@@ -108,11 +93,20 @@ stdenv.mkDerivation rec {
     "-DKICAD_STDLIB_DEBUG=ON"
     "-DKICAD_USE_VALGRIND=ON"
   ]
+  ++ optionals (!doInstallCheck) [
+    "-DKICAD_BUILD_QA_TESTS=OFF"
+  ]
   ++ optionals (sanitizeAddress) [
     "-DKICAD_SANITIZE_ADDRESS=ON"
   ]
   ++ optionals (sanitizeThreads) [
     "-DKICAD_SANITIZE_THREADS=ON"
+  ]
+  ++ optionals (withI18n) [
+    "-DKICAD_BUILD_I18N=ON"
+  ]
+  ++ optionals (!withPCM) [
+    "-DKICAD_PCM=OFF"
   ];
 
   nativeBuildInputs = [
@@ -131,7 +125,7 @@ stdenv.mkDerivation rec {
     libthai
     libdatrie
     libxkbcommon
-    epoxy
+    libepoxy
     dbus.daemon
     at-spi2-core
     libXtst
@@ -154,34 +148,27 @@ stdenv.mkDerivation rec {
     curl
     openssl
     boost
+    swig
+    python
   ]
-  # unstable requires swig and python
-  # wxPython still optional
-  ++ optionals (withScripting || (!stable)) [ swig python ]
   ++ optional (withScripting) wxPython
   ++ optional (withNgspice) libngspice
-  ++ optional (withOCE) opencascade
   ++ optional (withOCC) opencascade-occt
   ++ optional (debug) valgrind
   ;
 
   # debug builds fail all but the python test
-  # 5.1.x fails the eeschema test
-  doInstallCheck = !debug && !stable;
+  #doInstallCheck = !debug;
+  # temporarily disabled until upstream issue 9888 is resolved
+  doInstallCheck = false;
   installCheckTarget = "test";
 
   dontStrip = debug;
 
-  postInstall = optionalString (withI18n) ''
-    mkdir -p $out/share
-    lndir ${i18n}/share $out/share
-  '';
-
   meta = {
     description = "Just the built source without the libraries";
     longDescription = ''
-      Just the build products, optionally with the i18n linked in
-      the libraries are passed via an env var in the wrapper, default.nix
+      Just the build products, the libraries are passed via an env var in the wrapper, default.nix
     '';
     homepage = "https://www.kicad.org/";
     license = lib.licenses.agpl3;
diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix
index 9d7b1b7e5636b..44a538370daea 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -2,8 +2,7 @@
 , fetchFromGitLab
 , gnome
 , dconf
-, wxGTK30
-, wxGTK31
+, wxGTK31-gtk3
 , makeWrapper
 , gsettings-desktop-schemas
 , hicolor-icon-theme
@@ -14,42 +13,36 @@
 
 , pname ? "kicad"
 , stable ? true
-, oceSupport ? false
-, withOCE ? false
-, withOCCT ? false
 , withOCC ? true
-, ngspiceSupport ? false
 , withNgspice ? true
 , libngspice
-, scriptingSupport ? false
 , withScripting ? true
 , python3
 , debug ? false
 , sanitizeAddress ? false
 , sanitizeThreads ? false
 , with3d ? true
-, withI18n ? true
+, withI18n ? false
+, withPCM ? true # Plugin and Content Manager
 , srcs ? { }
 }:
 
 # The `srcs` parameter can be used to override the kicad source code
-# and all libraries (including i18n), which are otherwise inaccessible
+# and all libraries, which are otherwise inaccessible
 # to overlays since most of the kicad build expression has been
 # refactored into base.nix, most of the library build expressions have
-# been refactored into libraries.nix, and most the i18n build
-# expression has been refactored into i18n.nix. Overrides are only
-# applied when building `kicad-unstable`. The `srcs` parameter has no
-# effect for stable `kicad`. `srcs` takes an attribute set in which
+# been refactored into libraries.nix. Overrides are only applied when
+# building `kicad-unstable`. The `srcs` parameter has
+# no effect for stable `kicad`. `srcs` takes an attribute set in which
 # any of the following attributes are meaningful (though none are
-# mandatory): "kicad", "kicadVersion", "i18n", "symbols", "templates",
+# mandatory): "kicad", "kicadVersion", "symbols", "templates",
 # "footprints", "packages3d", and "libVersion". "kicadVersion" and
 # "libVersion" should be set to a string with the desired value for
 # the version attribute in kicad's `mkDerivation` and the version
-# attribute in any of the library's or i18n's `mkDerivation`,
-# respectively. "kicad", "i18n", "symbols", "templates", "footprints",
-# and "packages3d" should be set to an appropriate fetcher (e.g.,
-# `fetchFromGitLab`). So, for example, a possible overlay for kicad
-# is:
+# attribute in any of the library's `mkDerivation`, respectively.
+# "kicad", "symbols", "templates", "footprints", and "packages3d"
+# should be set to an appropriate fetcher (e.g. `fetchFromGitLab`).
+# So, for example, a possible overlay for kicad is:
 #
 # final: prev:
 
@@ -68,15 +61,6 @@
 #   });
 # }
 
-assert withNgspice -> libngspice != null;
-assert lib.assertMsg (!ngspiceSupport)
-  "`nspiceSupport` was renamed to `withNgspice` for the sake of consistency with other kicad nix arguments.";
-assert lib.assertMsg (!oceSupport)
-  "`oceSupport` was renamed to `withOCE` for the sake of consistency with other kicad nix arguments.";
-assert lib.assertMsg (!scriptingSupport)
-  "`scriptingSupport` was renamed to `withScripting` for the sake of consistency with other kicad nix arguments.";
-assert lib.assertMsg (!withOCCT)
-  "`withOCCT` was renamed to `withOCC` for the sake of consistency with upstream cmake options.";
 let
   baseName = if (stable) then "kicad" else "kicad-unstable";
   versionsImport = import ./versions.nix;
@@ -91,14 +75,6 @@ let
     sha256 = versionsImport.${baseName}.kicadVersion.src.sha256;
   };
 
-  i18nSrcFetch = fetchFromGitLab {
-    group = "kicad";
-    owner = "code";
-    repo = "kicad-i18n";
-    rev = versionsImport.${baseName}.libVersion.libSources.i18n.rev;
-    sha256 = versionsImport.${baseName}.libVersion.libSources.i18n.sha256;
-  };
-
   libSrcFetch = name: fetchFromGitLab {
     group = "kicad";
     owner = "libraries";
@@ -121,36 +97,15 @@ let
     if srcOverridep "kicadVersion" then srcs.kicadVersion
     else versionsImport.${baseName}.kicadVersion.version;
 
-  i18nSrc = if srcOverridep "i18n" then srcs.i18n else i18nSrcFetch;
-  i18nVersion =
-    if srcOverridep "i18nVersion" then srcs.i18nVersion
-    else versionsImport.${baseName}.libVersion.version;
-
   libSrc = name: if srcOverridep name then srcs.${name} else libSrcFetch name;
   # TODO does it make sense to only have one version for all libs?
   libVersion =
     if srcOverridep "libVersion" then srcs.libVersion
     else versionsImport.${baseName}.libVersion.version;
 
-  wxGTK =
-    if (stable)
-    # wxGTK3x may default to withGtk2 = false, see #73145
-    then
-      wxGTK30.override
-        {
-          withGtk2 = false;
-        }
-    # wxGTK31 currently introduces an issue with opening the python interpreter in pcbnew
-    # but brings high DPI support?
-    else
-      wxGTK31.override {
-        withGtk2 = false;
-      };
-
+  wxGTK = wxGTK31-gtk3;
   python = python3;
-  wxPython = if (stable)
-    then python.pkgs.wxPython_4_0
-    else python.pkgs.wxPython_4_1;
+  wxPython = python.pkgs.wxPython_4_1;
 
   inherit (lib) concatStringsSep flatten optionalString optionals;
 in
@@ -158,13 +113,11 @@ stdenv.mkDerivation rec {
 
   # Common libraries, referenced during runtime, via the wrapper.
   passthru.libraries = callPackages ./libraries.nix { inherit libSrc; };
-  passthru.i18n = callPackage ./i18n.nix { src = i18nSrc; };
   base = callPackage ./base.nix {
     inherit stable baseName;
     inherit kicadSrc kicadVersion;
-    inherit (passthru) i18n;
     inherit wxGTK python wxPython;
-    inherit withI18n withOCC withOCE withNgspice withScripting;
+    inherit withOCC withNgspice withScripting withI18n withPCM;
     inherit debug sanitizeAddress sanitizeThreads;
   };
 
@@ -197,27 +150,14 @@ stdenv.mkDerivation rec {
     "--prefix GIO_EXTRA_MODULES : ${dconf}/lib/gio/modules"
     # required to open a bug report link in firefox-wayland
     "--set-default MOZ_DBUS_REMOTE 1"
-  ]
-  ++ optionals (stable)
-  [
-    "--set-default KISYSMOD ${footprints}/share/kicad/modules"
-    "--set-default KICAD_SYMBOL_DIR ${symbols}/share/kicad/library"
-    "--set-default KICAD_TEMPLATE_DIR ${templates}/share/kicad/template"
-    "--prefix KICAD_TEMPLATE_DIR : ${symbols}/share/kicad/template"
-    "--prefix KICAD_TEMPLATE_DIR : ${footprints}/share/kicad/template"
-  ]
-  ++ optionals (stable && with3d) [ "--set-default KISYS3DMOD ${packages3d}/share/kicad/modules/packages3d" ]
-  ++ optionals (!stable)
-  [
-    "--set-default KICAD6_FOOTPRINT_DIR ${footprints}/share/kicad/modules"
-    "--set-default KICAD6_SYMBOL_DIR ${symbols}/share/kicad/library"
+    "--set-default KICAD6_FOOTPRINT_DIR ${footprints}/share/kicad/footprints"
+    "--set-default KICAD6_SYMBOL_DIR ${symbols}/share/kicad/symbols"
     "--set-default KICAD6_TEMPLATE_DIR ${templates}/share/kicad/template"
     "--prefix KICAD6_TEMPLATE_DIR : ${symbols}/share/kicad/template"
     "--prefix KICAD6_TEMPLATE_DIR : ${footprints}/share/kicad/template"
   ]
-  ++ optionals (!stable && with3d)
+  ++ optionals (with3d)
   [
-    "--set-default KISYS3DMOD ${packages3d}/share/kicad/3dmodels"
     "--set-default KICAD6_3DMODEL_DIR ${packages3d}/share/kicad/3dmodels"
   ]
   ++ optionals (withNgspice) [ "--prefix LD_LIBRARY_PATH : ${libngspice}/lib" ]
@@ -259,9 +199,6 @@ stdenv.mkDerivation rec {
     ln -s ${base}/share/applications $out/share/applications
     ln -s ${base}/share/icons $out/share/icons
     ln -s ${base}/share/mime $out/share/mime
-  '' + optionalString (stable) ''
-    ln -s ${base}/share/appdata $out/share/appdata
-  '' + optionalString (!stable) ''
     ln -s ${base}/share/metainfo $out/share/metainfo
   '';
 
diff --git a/pkgs/applications/science/electronics/kicad/i18n.nix b/pkgs/applications/science/electronics/kicad/i18n.nix
deleted file mode 100644
index c9a70a0060d51..0000000000000
--- a/pkgs/applications/science/electronics/kicad/i18n.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ lib, stdenv
-, cmake
-, gettext
-, src
-}:
-
-stdenv.mkDerivation {
-  inherit src;
-
-  pname = "kicad-i18n";
-  version = builtins.substring 0 10 src.rev;
-
-  nativeBuildInputs = [ cmake gettext ];
-  meta = with lib; {
-    license = licenses.gpl2; # https://github.com/KiCad/kicad-i18n/issues/3
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/applications/science/electronics/kicad/update.sh b/pkgs/applications/science/electronics/kicad/update.sh
index 099440956ae73..48270e962f536 100755
--- a/pkgs/applications/science/electronics/kicad/update.sh
+++ b/pkgs/applications/science/electronics/kicad/update.sh
@@ -1,7 +1,9 @@
 #!/usr/bin/env nix-shell
 #!nix-shell -i bash -p coreutils git nix curl
+# shellcheck shell=bash enable=all
 
 set -e
+shopt -s inherit_errexit
 
 # this script will generate versions.nix in the right location
 # this should contain the versions' revs and hashes
@@ -25,10 +27,12 @@ export TMPDIR=/tmp
 # remove items left in /nix/store?
 
 # get the latest tag that isn't an RC or *.99
-latest_tag="$(git ls-remote --tags --sort -version:refname \
-  https://gitlab.com/kicad/code/kicad.git \
-  | grep -o 'refs/tags/[0-9]*\.[0-9]*\.[0-9]*$' \
-  | grep -v ".99" | head -n 1 | cut -d '/' -f 3)"
+latest_tags="$(git ls-remote --tags --sort -version:refname https://gitlab.com/kicad/code/kicad.git)"
+# using a scratch variable to ensure command failures get caught (SC2312)
+scratch="$(grep -o 'refs/tags/[0-9]*\.[0-9]*\.[0-9]*$' <<< "${latest_tags}")"
+scratch="$(grep -ve '\.99' -e '\.9\.9' <<< "${scratch}")"
+scratch="$(head -n 1 <<< "${scratch}")"
+latest_tag="$(cut -d '/' -f 3 <<< "${scratch}")"
 
 all_versions=( "${latest_tag}" master )
 
@@ -60,15 +64,15 @@ tmp="${here}/,versions.nix.${RANDOM}"
 
 libs=( symbols templates footprints packages3d )
 
-get_rev="git ls-remote --heads --tags"
+get_rev() {
+  git ls-remote --heads --tags "$@"
+}
 
 gitlab="https://gitlab.com/kicad"
 # append commit hash or tag
-gitlab_pre="https://gitlab.com/api/v4/projects/kicad%2Fcode%2Fkicad/repository/archive.tar.gz?sha="
-
-# not a lib, but separate and already moved to gitlab
-i18n="${gitlab}/code/kicad-i18n.git"
-i18n_pre="https://gitlab.com/api/v4/projects/kicad%2Fcode%2Fkicad-i18n/repository/archive.tar.gz?sha="
+src_pre="https://gitlab.com/api/v4/projects/kicad%2Fcode%2Fkicad/repository/archive.tar.gz?sha="
+lib_pre="https://gitlab.com/api/v4/projects/kicad%2Flibraries%2Fkicad-"
+lib_mid="/repository/archive.tar.gz?sha="
 
 count=0
 
@@ -108,16 +112,19 @@ for version in "${all_versions[@]}"; do
         printf "%6ssrc = {\n" ""
 
     echo "Checking src" >&2
-    src_rev="$(${get_rev} "${gitlab}"/code/kicad.git "${version}" | cut -f1)"
+    scratch="$(get_rev "${gitlab}"/code/kicad.git "${version}")"
+    src_rev="$(cut -f1 <<< "${scratch}")"
     has_rev="$(grep -sm 1 "\"${pname}\"" -A 4 "${file}" | grep -sm 1 "${src_rev}" || true)"
     has_hash="$(grep -sm 1 "\"${pname}\"" -A 5 "${file}" | grep -sm 1 "sha256" || true)"
+
     if [[ -n ${has_rev} && -n ${has_hash} && -z ${clean} ]]; then
       echo "Reusing old ${pname}.src.sha256, already latest .rev" >&2
-      grep -sm 1 "\"${pname}\"" -A 5 "${file}" | grep -sm 1 "rev" -A 1
+      scratch=$(grep -sm 1 "\"${pname}\"" -A 5 "${file}")
+      grep -sm 1 "rev" -A 1 <<< "${scratch}"
     else
+          prefetched="$(${prefetch} "${src_pre}${src_rev}")"
           printf "%8srev =\t\t\t\"%s\";\n" "" "${src_rev}"
-          printf "%8ssha256 =\t\t\"%s\";\n" \
-            "" "$(${prefetch} "${gitlab_pre}${src_rev}")"
+          printf "%8ssha256 =\t\t\"%s\";\n" "" "${prefetched}"
           count=$((count+1))
     fi
         printf "%6s};\n" ""
@@ -127,37 +134,26 @@ for version in "${all_versions[@]}"; do
         printf "%6sversion =\t\t\t\"%s\";\n" "" "${today}"
         printf "%6slibSources = {\n" ""
 
-        echo "Checking i18n" >&2
-        i18n_rev="$(${get_rev} "${i18n}" "${version}" | cut -f1)"
-        has_rev="$(grep -sm 1 "\"${pname}\"" -A 11 "${file}" | grep -sm 1 "${i18n_rev}" || true)"
-        has_hash="$(grep -sm 1 "\"${pname}\"" -A 12 "${file}" | grep -sm 1 "i18n.sha256" || true)"
-        if [[ -n ${has_rev} && -n ${has_hash} && -z ${clean} ]]; then
-          echo "Reusing old kicad-i18n-${today}.src.sha256, already latest .rev" >&2
-          grep -sm 1 "\"${pname}\"" -A 12 "${file}" | grep -sm 1 "i18n" -A 1
-        else
-          printf "%8si18n.rev =\t\t\"%s\";\n" "" "${i18n_rev}"
-          printf "%8si18n.sha256 =\t\t\"%s\";\n" "" \
-            "$(${prefetch} "${i18n_pre}${i18n_rev}")"
-          count=$((count+1))
-        fi
-
           for lib in "${libs[@]}"; do
             echo "Checking ${lib}" >&2
             url="${gitlab}/libraries/kicad-${lib}.git"
-            lib_rev="$(${get_rev} "${url}" "${version}" | cut -f1 | tail -n1)"
+            scratch="$(get_rev "${url}" "${version}")"
+            scratch="$(cut -f1 <<< "${scratch}")"
+            lib_rev="$(tail -n1 <<< "${scratch}")"
             has_rev="$(grep -sm 1 "\"${pname}\"" -A 19 "${file}" | grep -sm 1 "${lib_rev}" || true)"
             has_hash="$(grep -sm 1 "\"${pname}\"" -A 20 "${file}" | grep -sm 1 "${lib}.sha256" || true)"
             if [[ -n ${has_rev} && -n ${has_hash} && -z ${clean} ]]; then
               echo "Reusing old kicad-${lib}-${today}.src.sha256, already latest .rev" >&2
-              grep -sm 1 "\"${pname}\"" -A 20 "${file}" | grep -sm 1 "${lib}" -A 1
+              scratch="$(grep -sm 1 "\"${pname}\"" -A 20 "${file}")"
+              grep -sm 1 "${lib}" -A 1 <<< "${scratch}"
             else
+              prefetched="$(${prefetch} "${lib_pre}${lib}${lib_mid}${lib_rev}")"
               printf "%8s%s.rev =\t" "" "${lib}"
               case "${lib}" in
                 symbols|templates) printf "\t" ;; *) ;;
               esac
               printf "\"%s\";\n" "${lib_rev}"
-              printf "%8s%s.sha256 =\t\"%s\";\n" "" \
-                "${lib}" "$(${prefetch} "https://gitlab.com/api/v4/projects/kicad%2Flibraries%2Fkicad-${lib}/repository/archive.tar.gz?sha=${lib_rev}")"
+              printf "%8s%s.sha256 =\t\"%s\";\n" "" "${lib}" "${prefetched}"
               count=$((count+1))
             fi
           done
@@ -166,7 +162,7 @@ for version in "${all_versions[@]}"; do
     printf "%2s};\n" ""
   else
     printf "\nReusing old %s\n" "${pname}" >&2
-    grep -sm 1 "\"${pname}\"" -A 23 "${file}"
+    grep -sm 1 "\"${pname}\"" -A 21 "${file}"
   fi
 done
 printf "}\n"
diff --git a/pkgs/applications/science/electronics/kicad/versions.nix b/pkgs/applications/science/electronics/kicad/versions.nix
index 463e5b7d8211a..5fed12b0027b4 100644
--- a/pkgs/applications/science/electronics/kicad/versions.nix
+++ b/pkgs/applications/science/electronics/kicad/versions.nix
@@ -3,49 +3,45 @@
 {
   "kicad" = {
     kicadVersion = {
-      version =			"5.1.11";
+      version =			"6.0.0";
       src = {
-        rev =			"d6b7f2349bcdbc45b223e7fe0460d9f169343209";
-        sha256 =		"03658kfd313lnvr4jihq1i72g2dfbzba8j1z2y4fxg3vrs54y7a0";
+        rev =			"d3dd2cf0fa975548d027db88d19b8a88866866d8";
+        sha256 =		"1jrfwyi4zs0rpcpsj01z6687a433nnr56cxbnz12jfg2yafpxk23";
       };
     };
     libVersion = {
-      version =			"5.1.11";
+      version =			"6.0.0";
       libSources = {
-        i18n.rev =		"0b8cef6bd08818cc0360f240544733dce509da3f";
-        i18n.sha256 =		"0y51l0r62cnxkvpc21732p3cx7pjvaqjih8193502hlv9kv1j9p6";
-        symbols.rev =		"7d4cbbddceafa1f69858449e16ac7229abef3c9a";
-        symbols.sha256 =	"1zdajim409570xzis53kmrbdcf7000v2vmc90f49h214lrx2zhr2";
-        templates.rev =		"f4c74f4130c8432399089c8b2dc21319b769bbe9";
-        templates.sha256 =	"1fbhn1l3j2rwc29aida9b408wif55i23bp9ddcs7dvf83smjm05g";
-        footprints.rev =	"e53d53ac4a30959b03ed3297d7659ea82244fb45";
-        footprints.sha256 =	"0qpii55dgv2gxqg1qq0dngdnbb9din790qi5qv0l6qqrzx843h5s";
-        packages3d.rev =	"be0ba9377b4ec0f11a4b9aceda150eed93027f72";
-        packages3d.sha256 =	"12w7m5nbk9kcnlnlg4sk1sd7xgb9i2kxfi0jcbd0phs89qyl7wjr";
+        symbols.rev =		"275f22eb9eecd5b6deabdefd82c9a826254d9f23";
+        symbols.sha256 =	"0wjk464l60xknvgc9d870901lqnx296dw7amlh3wg0wf78izarfr";
+        templates.rev =		"3a422b5b0928f3fd31579769d4dee2b009a85a11";
+        templates.sha256 =	"0vbjy1v5923942ma0rqcp1dhylhxk1m4vyfxjxw13sizkrpmlwr1";
+        footprints.rev =	"3ea7895b0817abecaa34276346749a711b0c69f6";
+        footprints.sha256 =	"0jv2plwzhhkfx7a2zankkjkbfzjxv43ab8rqpxzqfq2fnx83q6r5";
+        packages3d.rev =	"e607286d4a48ddf654585b37b45d74416a9a70c7";
+        packages3d.sha256 =	"0vwcbzq42hzjl4f0zjaswmiff1x59hv64g5n00mx1gl0gwngnyla";
       };
     };
   };
   "kicad-unstable" = {
     kicadVersion = {
-      version =			"2021-07-12";
+      version =			"2021-12-23";
       src = {
-        rev =			"76a6177eb7fc2efe8b5fd522355e70c44a33b150";
-        sha256 =		"1a94z29if73cnxjx75vkgasm339dasbrjwbg2zk1c35pfygnwrj5";
+        rev =			"21eb92821866d558acd9e737b643b300a8b18202";
+        sha256 =		"01hg0byp60xzgz0xxfwvyq1hbvbllsys6lx9yfj27d3qjc3bdk42";
       };
     };
     libVersion = {
-      version =			"2021-07-12";
+      version =			"2021-12-25";
       libSources = {
-        i18n.rev =		"e89d9a89bec59199c1ade56ee2556591412ab7b0";
-        i18n.sha256 =		"04zaqyhj3qr4ymyd3k5vjpcna64j8klpsygcgjcv29s3rdi8glfl";
-        symbols.rev =		"a6f64c12c9cdea4cda25cdd2c92708e7eb461d46";
-        symbols.sha256 =	"0j6ng3ysqlxcggjyq3bsgqzg6j50if74q2dpyrdh5pckfqvvmv20";
-        templates.rev =		"073d1941c428242a563dcb5301ff5c7479fe9c71";
-        templates.sha256 =	"14p06m2zvlzzz2w74y83f2zml7mgv5dhy2nyfkpblanxawrzxv1x";
-        footprints.rev =	"1bacc7562198e2a2985df7f2fbcd7620b4fd0d46";
-        footprints.sha256 =	"1h17q0xpl4k4klg3mafzsbl88wzrg73xjsh8llyni2jzs531545a";
-        packages3d.rev =	"d8b7e8c56d535f4d7e46373bf24c754a8403da1f";
-        packages3d.sha256 =	"0dh8ixg0w43wzj5h3164dz6l1vl4llwxhi3qcdgj1lgvrs28aywd";
+        symbols.rev =		"125a2e736504e776e4c6fb7f5131efad75edf245";
+        symbols.sha256 =	"0wjk464l60xknvgc9d870901lqnx296dw7amlh3wg0wf78izarfr";
+        templates.rev =		"8c9ff3dadb9c75cf2932f11c09a46c0c9d84784b";
+        templates.sha256 =	"0vbjy1v5923942ma0rqcp1dhylhxk1m4vyfxjxw13sizkrpmlwr1";
+        footprints.rev =	"ac8de318d8ef7b3eb64c78c6c2650b7b085f3271";
+        footprints.sha256 =	"0jv2plwzhhkfx7a2zankkjkbfzjxv43ab8rqpxzqfq2fnx83q6r5";
+        packages3d.rev =	"1080b6e565e56bae9be46db2278a1542092d7a2d";
+        packages3d.sha256 =	"0vwcbzq42hzjl4f0zjaswmiff1x59hv64g5n00mx1gl0gwngnyla";
       };
     };
   };
diff --git a/pkgs/applications/science/electronics/picoscope/default.nix b/pkgs/applications/science/electronics/picoscope/default.nix
index 344d54d10a6d3..83c8e2c6dd33f 100644
--- a/pkgs/applications/science/electronics/picoscope/default.nix
+++ b/pkgs/applications/science/electronics/picoscope/default.nix
@@ -104,7 +104,8 @@ in stdenv.mkDerivation rec {
     makeWrapper "$(command -v mono)" $out/bin/picoscope \
       --add-flags $out/lib/PicoScope.GTK.exe \
       --prefix MONO_PATH : "$MONO_PATH" \
-      --prefix LD_LIBRARY_PATH : "$MONO_PATH"
+      --prefix LD_LIBRARY_PATH : "$MONO_PATH" \
+      --set LANG C
     runHook postInstall
   '';
 
diff --git a/pkgs/applications/science/electronics/picoscope/sources.json b/pkgs/applications/science/electronics/picoscope/sources.json
index 7404259b231ef..aca5f8f4a0f28 100644
--- a/pkgs/applications/science/electronics/picoscope/sources.json
+++ b/pkgs/applications/science/electronics/picoscope/sources.json
@@ -6,64 +6,64 @@
       "version": "1.1.27-1r153"
     },
     "libpicoipp": {
-      "sha256": "87ae49cd5e8dda4a73a835b95ea13e4c3fc4d1c4c9d6495c9affdf6fa6b1b4aa",
-      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libpicoipp/libpicoipp_1.3.0-4r121_amd64.deb",
-      "version": "1.3.0-4r121"
+      "sha256": "0e414ad547f506a39ff11a64772baec923e54f8ca98b81fc9b9cbd19ed573b22",
+      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libpicoipp/libpicoipp_1.3.0-4r130_amd64.deb",
+      "version": "1.3.0-4r130"
     },
     "libps2000": {
-      "sha256": "792e506c08cebbd617e833e1547d3e5a13a186f93cea3f84608b7ed9451fb077",
-      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps2000/libps2000_3.0.75-3r2957_amd64.deb",
-      "version": "3.0.75-3r2957"
+      "sha256": "d1e94148719a03b70f233cea9a686ed48be03224f2931c9cd282571819a780c7",
+      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps2000/libps2000_3.0.76-3r2981_amd64.deb",
+      "version": "3.0.76-3r2981"
     },
     "libps2000a": {
-      "sha256": "f31b3a8e9c6af14a59e348e4b302f12f582cdb08a47a3c04d8a6a612b4630305",
-      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps2000a/libps2000a_2.1.75-5r2957_amd64.deb",
-      "version": "2.1.75-5r2957"
+      "sha256": "c665b70c04203c98bb1b509830ec522f58906b2f393f35c1b4f9c27217ac3572",
+      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps2000a/libps2000a_2.1.76-5r2981_amd64.deb",
+      "version": "2.1.76-5r2981"
     },
     "libps3000": {
-      "sha256": "27dce3c924bb0169768a4964ce567b4a18ce74079537ca1fcba61e9234691580",
-      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps3000/libps3000_4.0.75-3r2957_amd64.deb",
-      "version": "4.0.75-3r2957"
+      "sha256": "dbb9f9afdc694c4451e652f22a4c4c67ef609407f45229d26330ce7cfbb02b1c",
+      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps3000/libps3000_4.0.76-3r2981_amd64.deb",
+      "version": "4.0.76-3r2981"
     },
     "libps3000a": {
-      "sha256": "31cf00ce136526af6e8b211a44a56b221d137de6eaec4d6fd7f31593b4245d62",
-      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps3000a/libps3000a_2.1.75-6r2957_amd64.deb",
-      "version": "2.1.75-6r2957"
+      "sha256": "5ab3daadc5d804b224215d138ca94abecc3c311bb91624638e2758ac2a490d25",
+      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps3000a/libps3000a_2.1.76-6r2981_amd64.deb",
+      "version": "2.1.76-6r2981"
     },
     "libps4000": {
-      "sha256": "c976f09647f1fd2c980aafd1efe7f557bfc7c283fb9c135725c38dd59cc297e9",
-      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps4000/libps4000_2.1.75-2r2957_amd64.deb",
-      "version": "2.1.75-2r2957"
+      "sha256": "13504936207f1a7410f726c93358bb21c0c0cd1bd8b473332308a345ff6692c7",
+      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps4000/libps4000_2.1.76-2r2981_amd64.deb",
+      "version": "2.1.76-2r2981"
     },
     "libps4000a": {
-      "sha256": "727f24fa74759385902d41d52a26a4636b3e3f08a8743901d15cc49622207b97",
-      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps4000a/libps4000a_2.1.75-2r2957_amd64.deb",
-      "version": "2.1.75-2r2957"
+      "sha256": "196ccce96e8cf29f5168cda83748857172ae43dc2b990adbacb3327511784492",
+      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps4000a/libps4000a_2.1.76-2r2981_amd64.deb",
+      "version": "2.1.76-2r2981"
     },
     "libps5000": {
-      "sha256": "3237c1dfdb384079b7039d2b4a8e0b0126e804830b29d60e89ae018182667edb",
-      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps5000/libps5000_2.1.75-3r2957_amd64.deb",
-      "version": "2.1.75-3r2957"
+      "sha256": "1793180d4067df12080ba7b01cbdf38397c2931a7f4915f13dbdb9295cc77cb3",
+      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps5000/libps5000_2.1.76-3r2981_amd64.deb",
+      "version": "2.1.76-3r2981"
     },
     "libps5000a": {
-      "sha256": "27947f8461a16cf59d64cd23d7a78ddd27826e38dfe9fca3902e3b553591fb19",
-      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps5000a/libps5000a_2.1.75-5r2957_amd64.deb",
-      "version": "2.1.75-5r2957"
+      "sha256": "b08a73f43bdcfa2bc02d01f398147da9b8cf2599477144b5a2b2af924d0bf0e9",
+      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps5000a/libps5000a_2.1.76-5r2981_amd64.deb",
+      "version": "2.1.76-5r2981"
     },
     "libps6000": {
-      "sha256": "d65e923db969e306fb9f3f3892229a297d6187574d901dde44375270cc1e1404",
-      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps6000/libps6000_2.1.75-6r2957_amd64.deb",
-      "version": "2.1.75-6r2957"
+      "sha256": "dda0fcb8b346f77a715053b52ad9e26b323991f8336001de7ff1bb6d04c716b4",
+      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps6000/libps6000_2.1.76-6r2981_amd64.deb",
+      "version": "2.1.76-6r2981"
     },
     "libps6000a": {
-      "sha256": "eff8644ad44f9cc1cf9052e27786a1480a4ab599766c1c01e370fef40a76b224",
-      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps6000a/libps6000a_1.0.75-0r2957_amd64.deb",
-      "version": "1.0.75-0r2957"
+      "sha256": "786e5772055500e2e445ddfd5402fed359a9afa54177bd731912d24522729004",
+      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/libp/libps6000a/libps6000a_1.0.76-0r2981_amd64.deb",
+      "version": "1.0.76-0r2981"
     },
     "picoscope": {
-      "sha256": "3d2a0e360c8143fc03c29b394c16bfc2387164e33099a46b6905af992cfab440",
-      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/p/picoscope/picoscope_7.0.83-1r9320_amd64.deb",
-      "version": "7.0.83-1r9320"
+      "sha256": "12afae7992b9d60c93e5e39c7fe3f93955be3bdff554b52894064d5f320347f4",
+      "url": "https://labs.picotech.com/rc/picoscope7/debian/pool/main/p/picoscope/picoscope_7.0.86-1r9656_amd64.deb",
+      "version": "7.0.86-1r9656"
     }
   }
 }
diff --git a/pkgs/applications/science/geometry/gama/default.nix b/pkgs/applications/science/geometry/gama/default.nix
index 899e65a7740a4..750cba9d8b23a 100644
--- a/pkgs/applications/science/geometry/gama/default.nix
+++ b/pkgs/applications/science/geometry/gama/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, lib, expat, octave, libxml2, texinfo, zip }:
 stdenv.mkDerivation rec {
   pname = "gama";
-  version = "2.14";
+  version = "2.16";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-ltYoJyo4b4Ys70nbZo5gxkjBw/RiEs5Rrdb6he9bsBI=";
+    sha256 = "sha256-fO2AHZnqRvCF1+AlKDeD3ygivW3zXCuF10O2nKL2CWs=";
   };
 
   buildInputs = [ expat ];
diff --git a/pkgs/applications/science/logic/abc/default.nix b/pkgs/applications/science/logic/abc/default.nix
index cbcd452033ca0..fe73f4f4d6e2e 100644
--- a/pkgs/applications/science/logic/abc/default.nix
+++ b/pkgs/applications/science/logic/abc/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname   = "abc-verifier";
-  version = "2020.11.24";
+  version = "2021.11.12";
 
   src = fetchFromGitHub {
-    owner  = "yosyshq";
-    repo   = "abc";
-    rev    = "4f5f73d18b137930fb3048c0b385c82fa078db38";
-    sha256 = "0z1kp223kix7i4r7mbj2bzawkdzc55nsgc41m85dmbajl9fsj1m0";
+    owner = "yosyshq";
+    repo  = "abc";
+    rev   = "f6fa2ddcfc89099726d60386befba874c7ac1e0d";
+    hash  = "sha256-0rvMPZ+kL0m/GjlCLx3eXYQ0osQ2wQiS3+csqPl3U9s=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index 16db7384df17a..12c455d2fc0a8 100644
--- a/pkgs/applications/science/logic/coq/default.nix
+++ b/pkgs/applications/science/logic/coq/default.nix
@@ -7,7 +7,7 @@
 
 { lib, stdenv, fetchzip, writeText, pkg-config, gnumake42
 , customOCamlPackages ? null
-, ocamlPackages_4_05, ocamlPackages_4_09, ocamlPackages_4_10, ncurses
+, ocamlPackages_4_05, ocamlPackages_4_09, ocamlPackages_4_10, ocamlPackages_4_12, ncurses
 , buildIde ? true
 , glib, gnome, wrapGAppsHook, makeDesktopItem, copyDesktopItems
 , csdp ? null
@@ -45,6 +45,8 @@ let
    "8.13.1".sha256     = "0xx2ns84mlip9bg2mkahy3pmc5zfcgrjxsviq9yijbzy1r95wf0n";
    "8.13.2".sha256     = "1884vbmwmqwn9ngibax6dhnqh4cc02l0s2ajc6jb1xgr0i60whjk";
    "8.14.0".sha256     = "04y2z0qyvag66zanfyc3f9agvmzbn4lsr0p1l7ck6yjhqx7vbm17";
+   "8.14.1".sha256     = "0sx78pgx0qw8v7v2r32zzy3l161zipzq95iacda628girim7psnl";
+   "8.15+rc1".sha256   = "sha256:0v9vnx5z2mbsmhdx08rpg0n8jn0d82mimpghn55vkwsscxmcrgnm";
   };
   releaseRev = v: "V${v}";
   fetched = import ../../../../build-support/coq/meta-fetch/default.nix
@@ -62,10 +64,11 @@ let
   '' else "";
   ocamlPackages = if !isNull customOCamlPackages then customOCamlPackages
     else with versions; switch coq-version [
+      { case = range "8.14" "8.14"; out = ocamlPackages_4_12; }
       { case = range "8.11" "8.13"; out = ocamlPackages_4_10; }
       { case = range "8.7" "8.10";  out = ocamlPackages_4_09; }
       { case = range "8.5" "8.6";   out = ocamlPackages_4_05; }
-    ] ocamlPackages_4_10;
+    ] ocamlPackages_4_12;
   ocamlBuildInputs = [ ocamlPackages.ocaml ocamlPackages.findlib ]
     ++ optional (!versionAtLeast "8.10") ocamlPackages.camlp5
     ++ optional (!versionAtLeast "8.13") ocamlPackages.num
diff --git a/pkgs/applications/science/logic/cryptoverif/default.nix b/pkgs/applications/science/logic/cryptoverif/default.nix
index 4c9ce3e95959d..195dd98aa3b4a 100644
--- a/pkgs/applications/science/logic/cryptoverif/default.nix
+++ b/pkgs/applications/science/logic/cryptoverif/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cryptoverif";
-  version = "2.04";
+  version = "2.05";
 
   src = fetchurl {
     url    = "http://prosecco.gforge.inria.fr/personal/bblanche/cryptoverif/cryptoverif${version}.tar.gz";
-    sha256 = "1mzk6n0g2vdsv38y493zg85lxrpz72b92cmsray3g970xzanqd6s";
+    sha256 = "sha256-F5eVN5ATYo9Ivpi2eYh96ktuTWUeoqgWMR4BqHu8EFs=";
   };
 
   buildInputs = [ ocaml ];
diff --git a/pkgs/applications/science/logic/ekrhyper/default.nix b/pkgs/applications/science/logic/ekrhyper/default.nix
index 38cc0f06088da..d6d9bb11a9a0a 100644
--- a/pkgs/applications/science/logic/ekrhyper/default.nix
+++ b/pkgs/applications/science/logic/ekrhyper/default.nix
@@ -1,32 +1,26 @@
-{lib, stdenv, fetchurl, ocaml, perl}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="ekrhyper";
-    version="1_4_21022014";
-    name="${baseName}-${version}";
-    hash="14xaaxyvfli1nd4vd9fp4j1s8k76z2bhazxzzc7br3q6hc6b8ivw";
-    url="http://userpages.uni-koblenz.de/~bpelzer/ekrhyper/ekrh_1_4_21022014.tar.gz";
-    sha256="14xaaxyvfli1nd4vd9fp4j1s8k76z2bhazxzzc7br3q6hc6b8ivw";
+{ lib, stdenv, fetchurl, ocaml, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "ekrhyper";
+  version = "1_4_21022014";
+
+  src = fetchurl {
+    url = "http://userpages.uni-koblenz.de/~bpelzer/ekrhyper/ekrh_${version}.tar.gz";
+    sha256 = "sha256-fEe0DIMGj7wO+79/BZf45kykgyTXpbZJsyFSt31XqpM=";
   };
+
   buildInputs = [
-    ocaml perl
+    ocaml
+    perl
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
   setSourceRoot = "export sourceRoot=$(echo */ekrh/src/)";
   preInstall = "export INSTALLDIR=$out";
   postInstall = ''for i in "$out/casc"/*; do ln -s "$i" "$out/bin/ekrh-casc-$(basename $i)"; done '';
-  meta = {
-    inherit (s) version;
+
+  meta = with lib; {
     description = "Automated first-order theorem prover";
-    license = lib.licenses.gpl2 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/science/logic/ekrhyper/default.upstream b/pkgs/applications/science/logic/ekrhyper/default.upstream
deleted file mode 100644
index 310e93ea53fd3..0000000000000
--- a/pkgs/applications/science/logic/ekrhyper/default.upstream
+++ /dev/null
@@ -1,3 +0,0 @@
-url http://userpages.uni-koblenz.de/~bpelzer/ekrhyper/
-ensure_choice
-version '.*[^0-9]_([-0-9_]+)[.].*' '\1'
diff --git a/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch b/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
index dc76305bd7499..768be10b6df3d 100644
--- a/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
+++ b/pkgs/applications/science/logic/elan/0001-dynamically-patchelf-binaries.patch
@@ -22,13 +22,13 @@ index c51e76d..ae8159e 100644
 +            .output();
 +    }
 +
-+    if dest_path.extension() == Some(::std::ffi::OsStr::new("lld")) {
++    if dest_path.file_name() == Some(::std::ffi::OsStr::new("leanc")) {
 +        use std::os::unix::fs::PermissionsExt;
 +        let new_path = dest_path.with_extension("orig");
 +        ::std::fs::rename(dest_path, &new_path)?;
 +        ::std::fs::write(dest_path, format!(r#"#! @shell@
-+exec -a "$0" {} "$@" --dynamic-linker=@dynamicLinker@
-+"#, new_path.to_str().unwrap()))?;
++LEAN_CC="${{LEAN_CC:-@cc@}}" exec -a "$0" {} "$@" -L {}/lib  # use bundled libraries, but not bundled compiler that doesn't know about NIX_LDFLAGS
++"#, new_path.to_str().unwrap(), dest_path.parent().unwrap().parent().unwrap().to_str().unwrap()))?;
 +        ::std::fs::set_permissions(dest_path, ::std::fs::Permissions::from_mode(0o755))?;
      }
  
diff --git a/pkgs/applications/science/logic/elan/default.nix b/pkgs/applications/science/logic/elan/default.nix
index 4326c5b0d6b9e..89331f53686a4 100644
--- a/pkgs/applications/science/logic/elan/default.nix
+++ b/pkgs/applications/science/logic/elan/default.nix
@@ -24,9 +24,10 @@ rustPlatform.buildRustPackage rec {
 
   patches = lib.optionals stdenv.isLinux [
     # Run patchelf on the downloaded binaries.
-    # This necessary because Lean 4 now dynamically links to GMP.
+    # This is necessary because Lean 4 is now dynamically linked.
     (runCommand "0001-dynamically-patchelf-binaries.patch" {
         CC = stdenv.cc;
+        cc = "${stdenv.cc}/bin/cc";
         patchelf = patchelf;
         shell = runtimeShell;
       } ''
@@ -34,6 +35,7 @@ rustPlatform.buildRustPackage rec {
      substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
        --subst-var patchelf \
        --subst-var dynamicLinker \
+       --subst-var cc \
        --subst-var shell
     '')
   ];
diff --git a/pkgs/applications/science/logic/fast-downward/default.nix b/pkgs/applications/science/logic/fast-downward/default.nix
index bc825703ee3a9..ece9367e30bdf 100644
--- a/pkgs/applications/science/logic/fast-downward/default.nix
+++ b/pkgs/applications/science/logic/fast-downward/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A domain-independent planning system";
-    homepage = "http://www.fast-downward.org/";
+    homepage = "https://www.fast-downward.org/";
     license = licenses.gpl3Plus;
     platforms = with platforms; (linux ++ darwin);
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/applications/science/logic/logisim-evolution/default.nix b/pkgs/applications/science/logic/logisim-evolution/default.nix
index cf7470b5475b0..6ab0921f66fea 100644
--- a/pkgs/applications/science/logic/logisim-evolution/default.nix
+++ b/pkgs/applications/science/logic/logisim-evolution/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "logisim-evolution";
-  version = "3.7.1";
+  version = "3.7.2";
 
   src = fetchurl {
     url = "https://github.com/logisim-evolution/logisim-evolution/releases/download/v${version}/logisim-evolution-${version}-all.jar";
-    sha256 = "04q9bzhnzpi8cgv3ly4ii88qvmlw9n09c4p1qmg8dhxqkskdqj6h";
+    sha256 = "sha256-RI+ioOHj13UAGuPzseAAy3oQBQYkja/ucjj4QMeRZhw=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/applications/science/logic/potassco/clingcon.nix b/pkgs/applications/science/logic/potassco/clingcon.nix
index 0f3218b767366..1614adf45537e 100644
--- a/pkgs/applications/science/logic/potassco/clingcon.nix
+++ b/pkgs/applications/science/logic/potassco/clingcon.nix
@@ -1,39 +1,33 @@
 { lib, stdenv
 , fetchFromGitHub
 , cmake
-, bison
-, re2c
+, clingo
 }:
 
 stdenv.mkDerivation rec {
   pname = "clingcon";
-  version = "3.3.0";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "potassco";
     repo = pname;
     rev = "v${version}";
-    fetchSubmodules = true;
-    sha256 = "1q7517h10jfvjdk2czq8d6y57r8kr1j1jj2k2ip2qxkpyfigk4rs";
+    sha256 = "1g2xkz9nsgqnrw3fdf5jchl16f0skj5mm32va61scc2yrchll166";
    };
 
-  # deal with clingcon through git submodules recursively importing
-  # an outdated version of libpotassco which uses deprecated <xlocale.h> header in .cpp files
-  postPatch = ''
-    find ./ -type f -exec sed -i 's/<xlocale.h>/<locale.h>/g' {} \;
-  '';
-
-  nativeBuildInputs = [ cmake bison re2c ];
+  nativeBuildInputs = [ cmake clingo ];
 
   cmakeFlags = [
     "-DCLINGCON_MANAGE_RPATH=ON"
-    "-DCLINGO_BUILD_WITH_PYTHON=OFF"
-    "-DCLINGO_BUILD_WITH_LUA=OFF"
+    "-DPYCLINGCON_ENABLE=OFF"
+    "-DCLINGCON_BUILD_TESTS=ON"
   ];
 
+  doCheck = true;
+
   meta = {
     description = "Extension of clingo to handle constraints over integers";
-    license = lib.licenses.gpl3; # for now GPL3, next version MIT!
+    license = lib.licenses.mit;
     platforms = lib.platforms.unix;
     homepage = "https://potassco.org/";
     downloadPage = "https://github.com/potassco/clingcon/releases/";
diff --git a/pkgs/applications/science/logic/potassco/clingo.nix b/pkgs/applications/science/logic/potassco/clingo.nix
index 2e907a2d3a364..754e12c03eea2 100644
--- a/pkgs/applications/science/logic/potassco/clingo.nix
+++ b/pkgs/applications/science/logic/potassco/clingo.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchzip, cmake }:
+{ lib, stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "clingo";
-  version = "5.5.0";
+  version = "5.5.1";
 
-  src = fetchzip {
-    url = "https://github.com/potassco/clingo/archive/v${version}.tar.gz";
-    sha256 = "sha256-6xKtNi5IprjaFNadfk8kKjKzuPRanUjycLWCytnk0mU=";
+  src = fetchFromGitHub {
+    owner = "potassco";
+    repo = "clingo";
+    rev = "v${version}";
+    sha256 = "sha256-KBCwGNkz5HqbgXbDxPVcqxMXC8B2+wRI8eZVVXMVpLI=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/logic/proverif/default.nix b/pkgs/applications/science/logic/proverif/default.nix
index fbc9eb2d8a157..b6d15162fec35 100644
--- a/pkgs/applications/science/logic/proverif/default.nix
+++ b/pkgs/applications/science/logic/proverif/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "proverif";
-  version = "2.03";
+  version = "2.04";
 
   src = fetchurl {
     url    = "https://bblanche.gitlabpages.inria.fr/proverif/proverif${version}.tar.gz";
-    sha256 = "sha256:1q5mp9il09jylimcaqczb3kh34gb5px88js127gxv0jj5b4bqfc7";
+    sha256 = "sha256:0xgwnp59779xc40sb7ck8rmfn620pilxyq79l3bymj9m7z0mwvm9";
   };
 
   buildInputs = with ocamlPackages; [ ocaml findlib ];
diff --git a/pkgs/applications/science/logic/symbiyosys/default.nix b/pkgs/applications/science/logic/symbiyosys/default.nix
index 87bd1e2e63705..b9bf480f7e6da 100644
--- a/pkgs/applications/science/logic/symbiyosys/default.nix
+++ b/pkgs/applications/science/logic/symbiyosys/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation {
   pname = "symbiyosys";
-  version = "2021.09.13";
+  version = "2021.11.30";
 
   src = fetchFromGitHub {
-    owner  = "YosysHQ";
-    repo   = "SymbiYosys";
-    rev    = "15278f13467bea24a7300e23ebc5555b9261facf";
-    sha256 = "sha256-gp9F4MaGgD6XfD7AjuB/LmMVcxFurqWHEiXPeyzlQzk=";
+    owner = "YosysHQ";
+    repo  = "SymbiYosys";
+    rev   = "b409b1179e36d2a3fff66c85b7d4e271769a2d9e";
+    hash  = "sha256-S7of2upntiMkSdh4kf1RsrjriS31Eh8iEcVvG36isQg=";
   };
 
   buildInputs = [ ];
diff --git a/pkgs/applications/science/logic/tlaplus/default.nix b/pkgs/applications/science/logic/tlaplus/default.nix
index f002b808e0af1..7d447745a23d2 100644
--- a/pkgs/applications/science/logic/tlaplus/default.nix
+++ b/pkgs/applications/science/logic/tlaplus/default.nix
@@ -1,34 +1,30 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper
-, adoptopenjdk-bin, jre, ant
-}:
+{ lib, stdenv, fetchurl, makeWrapper, adoptopenjdk-bin, jre }:
 
 stdenv.mkDerivation rec {
   pname = "tlaplus";
-  version = "1.7.0";
+  version = "1.7.1";
 
-  src = fetchFromGitHub {
-    owner  = "tlaplus";
-    repo   = "tlaplus";
-    rev    = "refs/tags/v${version}";
-    sha256 = "1mm6r9bq79zks50yk0agcpdkw9yy994m38ibmgpb3bi3wkpq9891";
+  src = fetchurl {
+    url = "https://github.com/tlaplus/tlaplus/releases/download/v${version}/tla2tools.jar";
+    sha256 = "d532ba31aafe17afba1130f92410d9257454ff7393d1eb2fe032f0c07f352da5";
   };
 
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ adoptopenjdk-bin ant ];
+  buildInputs = [ adoptopenjdk-bin ];
 
-  buildPhase = "ant -f tlatools/org.lamport.tlatools/customBuild.xml compile dist";
+  dontUnpack = true;
   installPhase = ''
     mkdir -p $out/share/java $out/bin
-    cp tlatools/org.lamport.tlatools/dist/*.jar $out/share/java
+    cp $src $out/share/java/tla2tools.jar
 
-    makeWrapper ${jre}/bin/java $out/bin/tlc2 \
-      --add-flags "-cp $out/share/java/tla2tools.jar tlc2.TLC"
-    makeWrapper ${jre}/bin/java $out/bin/tla2sany \
-      --add-flags "-cp $out/share/java/tla2tools.jar tla2sany.SANY"
+    makeWrapper ${jre}/bin/java $out/bin/tlc \
+      --add-flags "-XX:+UseParallelGC -cp $out/share/java/tla2tools.jar tlc2.TLC"
+    makeWrapper ${jre}/bin/java $out/bin/tlasany \
+      --add-flags "-XX:+UseParallelGC -cp $out/share/java/tla2tools.jar tla2sany.SANY"
     makeWrapper ${jre}/bin/java $out/bin/pcal \
-      --add-flags "-cp $out/share/java/tla2tools.jar pcal.trans"
-    makeWrapper ${jre}/bin/java $out/bin/tla2tex \
-      --add-flags "-cp $out/share/java/tla2tools.jar tla2tex.TLA"
+      --add-flags "-XX:+UseParallelGC -cp $out/share/java/tla2tools.jar pcal.trans"
+    makeWrapper ${jre}/bin/java $out/bin/tlatex \
+      --add-flags "-XX:+UseParallelGC -cp $out/share/java/tla2tools.jar tla2tex.TLA"
   '';
 
   meta = {
@@ -36,6 +32,6 @@ stdenv.mkDerivation rec {
     homepage    = "http://lamport.azurewebsites.net/tla/tla.html";
     license     = lib.licenses.mit;
     platforms   = lib.platforms.unix;
-    maintainers = [ lib.maintainers.thoughtpolice ];
+    maintainers = with lib.maintainers; [ florentc thoughtpolice ];
   };
 }
diff --git a/pkgs/applications/science/logic/why3/with-provers.nix b/pkgs/applications/science/logic/why3/with-provers.nix
index fc08f5d7c85e4..826473b38e9f6 100644
--- a/pkgs/applications/science/logic/why3/with-provers.nix
+++ b/pkgs/applications/science/logic/why3/with-provers.nix
@@ -17,9 +17,11 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ why3 ] ++ provers;
 
+  dontUnpack = true;
+
   buildPhase = ''
     mkdir -p $out/share/why3/
-    why3 config --detect-provers -C $out/share/why3/why3.conf
+    why3 config detect -C $out/share/why3/why3.conf
     awk -i inplace -f ${configAwkScript} $out/share/why3/why3.conf
   '';
 
diff --git a/pkgs/applications/science/machine-learning/streamlit/default.nix b/pkgs/applications/science/machine-learning/streamlit/default.nix
index 26b241ff0ada9..f439b113d1ab3 100644..100755
--- a/pkgs/applications/science/machine-learning/streamlit/default.nix
+++ b/pkgs/applications/science/machine-learning/streamlit/default.nix
@@ -1,23 +1,79 @@
-{   lib, buildPythonApplication, fetchPypi
-  , altair, astor, base58, blinker, boto3, botocore, click, enum-compat
-  , future, pillow, protobuf, requests, toml, tornado_5, tzlocal, validators, watchdog
-  , jinja2, setuptools
+{
+  # Nix
+  lib,
+  buildPythonApplication,
+  fetchPypi,
+
+  # Build inputs
+  altair,
+  astor,
+  base58,
+  blinker,
+  boto3,
+  botocore,
+  click,
+  cachetools,
+  enum-compat,
+  future,
+  GitPython,
+  jinja2,
+  pillow,
+  pyarrow,
+  pydeck,
+  pympler,
+  protobuf,
+  requests,
+  setuptools,
+  toml,
+  tornado,
+  tzlocal,
+  validators,
+  watchdog,
 }:
 
-buildPythonApplication rec {
+let
+  click_7 = click.overridePythonAttrs(old: rec {
+    version = "7.1.2";
+    src = old.src.override {
+      inherit version;
+      sha256 = "d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a";
+    };
+  });
+in buildPythonApplication rec {
   pname = "streamlit";
-  version = "0.50.2";
+  version = "1.2.0";
   format = "wheel"; # the only distribution available
 
   src = fetchPypi {
     inherit pname version format;
-    sha256 = "1wymv7qckafs0p2jdjlxjaf1xrhm3iyd185jkldanbb0na5n3ndz";
+    sha256 = "1dzb68a8n8wvjppcmqdaqnh925b2dg6rywv51ac9q09zjxb6z11n";
   };
 
   propagatedBuildInputs = [
-    altair astor base58 blinker boto3 botocore click enum-compat
-    future pillow protobuf requests toml tornado_5 tzlocal validators watchdog
-    jinja2 setuptools
+    altair
+    astor
+    base58
+    blinker
+    boto3
+    botocore
+    cachetools
+    click_7
+    enum-compat
+    future
+    GitPython
+    jinja2
+    pillow
+    protobuf
+    pyarrow
+    pydeck
+    pympler
+    requests
+    setuptools
+    toml
+    tornado
+    tzlocal
+    validators
+    watchdog
   ];
 
   postInstall = ''
@@ -30,5 +86,4 @@ buildPythonApplication rec {
     maintainers = with maintainers; [ yrashk ];
     license = licenses.asl20;
   };
-
 }
diff --git a/pkgs/applications/science/math/calc/default.nix b/pkgs/applications/science/math/calc/default.nix
index f209e2de8c3e8..5a9f1ef93fb82 100644
--- a/pkgs/applications/science/math/calc/default.nix
+++ b/pkgs/applications/science/math/calc/default.nix
@@ -3,14 +3,14 @@
 
 stdenv.mkDerivation rec {
   pname = "calc";
-  version = "2.13.0.1";
+  version = "2.14.0.13";
 
   src = fetchurl {
     urls = [
       "https://github.com/lcn2/calc/releases/download/${version}/${pname}-${version}.tar.bz2"
       "http://www.isthe.com/chongo/src/calc/${pname}-${version}.tar.bz2"
     ];
-    sha256 = "sha256-auU49XeFxXAacBEszwB6tVU6vTMq4t6q2vVk9AHHNK0=";
+    sha256 = "sha256-naNBismaWnzLjlUy49Rz9OfkhUcFdbnWxs917ogxTjk=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/science/math/geogebra/default.nix b/pkgs/applications/science/math/geogebra/default.nix
index 124caf4180c87..7ebfe2030d4ab 100644
--- a/pkgs/applications/science/math/geogebra/default.nix
+++ b/pkgs/applications/science/math/geogebra/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, jre, makeDesktopItem, makeWrapper, unzip, language ? "en_US" }:
 let
   pname = "geogebra";
-  version = "5-0-662-0";
+  version = "5-0-680-0";
 
   srcIcon = fetchurl {
     url = "http://static.geogebra.org/images/geogebra-logo.svg";
@@ -43,7 +43,7 @@ let
         "https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
         "https://web.archive.org/web/20210910014320/https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
       ];
-      sha256 = "08gaiid5qgdznd9f8hb32m4qa90z7qlcx1cs7y0jr9ilnbmrgs8n";
+      sha256 = "0gdvajf220pm1w3nxi2fymxjx2vl978pz7ffn5gr72cx8f2956lm";
     };
 
     nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/science/math/geogebra/geogebra6.nix b/pkgs/applications/science/math/geogebra/geogebra6.nix
index 8163fe5478fac..76d178b7e490d 100644
--- a/pkgs/applications/science/math/geogebra/geogebra6.nix
+++ b/pkgs/applications/science/math/geogebra/geogebra6.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, unzip, fetchurl, electron_6, makeWrapper, geogebra }:
+{ lib, stdenv, unzip, fetchurl, electron, makeWrapper, geogebra }:
 let
   pname = "geogebra";
-  version = "6-0-644-0";
+  version = "6-0-676-0";
 
   srcIcon = geogebra.srcIcon;
   desktopItem = geogebra.desktopItem;
@@ -18,9 +18,9 @@ let
     src = fetchurl {
       urls = [
         "https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
-        "https://web.archive.org/web/20210604132845/https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
+        "https://web.archive.org/web/20211123222708/https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
       ];
-      sha256 = "bbe9e1a35abacfd560c0b7aa1ab975853e6adac08608bb70cd80261179e3f922";
+      sha256 = "0wn90n2nd476rkf83gk9vvcpbjflkrvyri50pnmv52j76n023hmm";
     };
 
     dontConfigure = true;
@@ -38,7 +38,7 @@ let
     installPhase = ''
       mkdir -p $out/libexec/geogebra/ $out/bin
       cp -r GeoGebra-linux-x64/{resources,locales} "$out/"
-      makeWrapper ${lib.getBin electron_6}/bin/electron $out/bin/geogebra --add-flags "$out/resources/app"
+      makeWrapper ${lib.getBin electron}/bin/electron $out/bin/geogebra --add-flags "$out/resources/app"
       install -Dm644 "${desktopItem}/share/applications/"* \
         -t $out/share/applications/
 
@@ -53,9 +53,9 @@ let
     src = fetchurl {
       urls = [
         "https://download.geogebra.org/installers/6.0/GeoGebra-Classic-6-MacOS-Portable-${version}.zip"
-        "https://web.archive.org/web/20210406084052/https://download.geogebra.org/installers/6.0/GeoGebra-Classic-6-MacOS-Portable-${version}.zip"
+        "https://web.archive.org/web/20211124143625/https://download.geogebra.org/installers/6.0/GeoGebra-Classic-6-MacOS-Portable-${version}.zip"
       ];
-      sha256 = "0fa680yyz4nry1xvb9v6qqh1mib6grff5d3p7d90nyjlv101p262";
+      sha256 = "1dwv2f94a1c2y10lmy0i66cafynalp7dkqgnpk4f0mk6pir2fdgj";
     };
 
     dontUnpack = true;
diff --git a/pkgs/applications/science/math/gmsh/default.nix b/pkgs/applications/science/math/gmsh/default.nix
index 84f7ca72a3c80..0a48d813e9151 100644
--- a/pkgs/applications/science/math/gmsh/default.nix
+++ b/pkgs/applications/science/math/gmsh/default.nix
@@ -5,11 +5,11 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "gmsh";
-  version = "4.8.4";
+  version = "4.9.0";
 
   src = fetchurl {
     url = "http://gmsh.info/src/gmsh-${version}-source.tgz";
-    sha256 = "sha256-dg29wHLqo8gtBmxbo7BurN0zBOsqlzc/5K2pUJ8Las4=";
+    sha256 = "sha256-uO8TPJtm/+Et8XR+ctSs8Z8esenNlesPV3y8QIHZvqM=";
   };
 
   buildInputs = [ blas lapack gmm fltk libjpeg zlib libGLU libGL
diff --git a/pkgs/applications/science/math/gretl/default.nix b/pkgs/applications/science/math/gretl/default.nix
index 450021925bdee..175add544b5c9 100644
--- a/pkgs/applications/science/math/gretl/default.nix
+++ b/pkgs/applications/science/math/gretl/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gretl";
-  version = "2021b";
+  version = "2021d";
 
   src = fetchurl {
     url = "mirror://sourceforge/gretl/${pname}-${version}.tar.xz";
-    sha256 = "sha256-3KSAA0UPx3cqMXf/G5nrlCfLjWcDiGtzvJe/syRyE6c=";
+    sha256 = "sha256-zij337P/MemCwvMah2bUE3odv0Kf/KW6fUl2OgMzjuI=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/science/math/mathematica/default.nix b/pkgs/applications/science/math/mathematica/default.nix
index 10301f062e571..af88263889773 100644
--- a/pkgs/applications/science/math/mathematica/default.nix
+++ b/pkgs/applications/science/math/mathematica/default.nix
@@ -90,7 +90,16 @@ stdenv.mkDerivation rec {
     cd Installer
     # don't restrict PATH, that has already been done
     sed -i -e 's/^PATH=/# PATH=/' MathInstaller
-    sed -i -e 's/\/bin\/bash/\/bin\/sh/' MathInstaller
+
+    # Fix the installation script as follows:
+    # 1. Adjust the shebang
+    # 2. Use the wrapper in the desktop items
+    substituteInPlace MathInstaller \
+      --replace "/bin/bash" "/bin/sh" \
+      --replace "Executables/Mathematica" "../../bin/mathematica"
+
+    # Install the desktop items
+    export XDG_DATA_HOME="$out/share"
 
     echo "=== Running MathInstaller ==="
     ./MathInstaller -auto -createdir=y -execdir=$out/bin -targetdir=$out/libexec/Mathematica -silent
diff --git a/pkgs/applications/science/math/mathematica/l10ns.nix b/pkgs/applications/science/math/mathematica/l10ns.nix
index 7de63c287eaa2..474c8d1ea060e 100644
--- a/pkgs/applications/science/math/mathematica/l10ns.nix
+++ b/pkgs/applications/science/math/mathematica/l10ns.nix
@@ -8,31 +8,76 @@ let allVersions = with lib; flip map
   # N.B. Versions in this list should be ordered from newest to oldest.
   [
     {
+      version = "13.0.0";
+      lang = "en";
+      language = "English";
+      sha256 = "15bbad39a5995031325d1d178f63b00e71706d3ec9001eba6d1681fbc991d3e1";
+      installer = "Mathematica_13.0.0_BNDL_LINUX.sh";
+    }
+    {
       version = "12.3.1";
       lang = "en";
       language = "English";
       sha256 = "51b9cab12fd91b009ea7ad4968a2c8a59e94dc55d2e6cc1d712acd5ba2c4d509";
+      installer = "Mathematica_12.3.1_LINUX.sh";
+    }
+    {
+      version = "12.3.0";
+      lang = "en";
+      language = "English";
+      sha256 = "045df045f6e796ded59f64eb2e0f1949ac88dcba1d5b6e05fb53ea0a4aed7215";
+      installer = "Mathematica_12.3.0_LINUX.sh";
+    }
+    {
+      version = "12.2.0";
+      lang = "en";
+      language = "English";
+      sha256 = "3b6676a203c6adb7e9c418a5484b037974287b5be09c64e7dfea74ddc0e400d7";
+      installer = "Mathematica_12.2.0_LINUX.sh";
+    }
+    {
+      version = "12.1.1";
+      lang = "en";
+      language = "English";
+      sha256 = "02mk8gmv8idnakva1nc7r7mx8ld02lk7jgsj1zbn962aps3bhixd";
+      installer = "Mathematica_12.1.1_LINUX.sh";
+    }
+    {
+      version = "12.1.0";
+      lang = "en";
+      language = "English";
+      sha256 = "15m9l20jvkxh5w6mbp81ys7mx2lx5j8acw5gz0il89lklclgb8z7";
+      installer = "Mathematica_12.1.0_LINUX.sh";
+    }
+    {
+      version = "12.0.0";
+      lang = "en";
+      language = "English";
+      sha256 = "b9fb71e1afcc1d72c200196ffa434512d208fa2920e207878433f504e58ae9d7";
+      installer = "Mathematica_12.0.0_LINUX.sh";
     }
     {
       version = "11.3.0";
       lang = "en";
       language = "English";
       sha256 = "0fcfe208c1eac8448e7be3af0bdb84370b17bd9c5d066c013928c8ee95aed10e";
+      installer = "Mathematica_11.3.0_LINUX.sh";
     }
     {
       version = "11.2.0";
       lang = "ja";
       language = "Japanese";
       sha256 = "916392edd32bed8622238df435dd8e86426bb043038a3336f30df10d819b49b1";
+      installer = "Mathematica_11.2.0_ja_LINUX.sh";
     }
   ]
-  ({ version, lang, language, sha256 }: {
+  ({ version, lang, language, sha256, installer }: {
     inherit version lang;
     name = "mathematica-${version}" + optionalString (lang != "en") "-${lang}";
-    src = requireFile rec {
-      name = "Mathematica_${version}" + optionalString (lang != "en") "_${language}" + "_LINUX.sh";
+    src = requireFile {
+      name = installer;
       message = ''
-        This nix expression requires that ${name} is
+        This nix expression requires that ${installer} is
         already part of the store. Find the file on your Mathematica CD
         and add it to the nix store with nix-store --add-fixed sha256 <FILE>.
       '';
diff --git a/pkgs/applications/science/math/maxima/default.nix b/pkgs/applications/science/math/maxima/default.nix
index 3f295b416fb04..8bad09f178802 100644
--- a/pkgs/applications/science/math/maxima/default.nix
+++ b/pkgs/applications/science/math/maxima/default.nix
@@ -1,24 +1,30 @@
-{ lib, stdenv, fetchurl, fetchpatch, sbcl, texinfo, perl, python3, makeWrapper, autoreconfHook
-, rlwrap ? null, tk ? null, gnuplot ? null, ecl ? null, ecl-fasl ? false
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, texinfo
+, perl
+, python3
+, makeWrapper
+, autoreconfHook
+, rlwrap ? null
+, tk ? null
+, gnuplot ? null
+, lisp-compiler
 }:
 
 let
-  name    = "maxima";
-  version = "5.45.0";
-
-  lisp-compiler = if ecl-fasl then ecl else sbcl;
-
-  searchPath =
-    lib.makeBinPath
-      (lib.filter (x: x != null) [ lisp-compiler rlwrap tk gnuplot ]);
+  # Allow to remove some executables from the $PATH of the wrapped binary
+  searchPath = lib.makeBinPath
+    (lib.filter (x: x != null) [ lisp-compiler rlwrap tk gnuplot ]);
 in
-stdenv.mkDerivation ({
-  inherit version;
-  name = "${name}-${version}";
+stdenv.mkDerivation rec {
+  pname = "maxima";
+  version = "5.45.1";
 
   src = fetchurl {
-    url = "mirror://sourceforge/${name}/${name}-${version}.tar.gz";
-    sha256 = "sha256-x2MfMmRIBc67e6/vOrUzHEus0sJ+OE/YgyO1A5pg0Ng=";
+    url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "sha256-/pAWJ2lwvvIUoaJENIVYZEUU1/36pPyLnQ6Hr8u059w=";
   };
 
   nativeBuildInputs = [
@@ -49,7 +55,7 @@ stdenv.mkDerivation ({
     ln -s ../maxima/${version}/emacs $out/share/emacs/site-lisp
     ln -s ../maxima/${version}/doc $out/share/doc/maxima
   ''
-   + (lib.optionalString ecl-fasl ''
+   + (lib.optionalString (lisp-compiler.pname == "ecl") ''
      cp src/binary-ecl/maxima.fas* "$out/lib/maxima/${version}/binary-ecl/"
    '')
   ;
@@ -67,12 +73,13 @@ stdenv.mkDerivation ({
       sha256 = "06961hn66rhjijfvyym21h39wk98sfxhp051da6gz0n9byhwc6zg";
     })
 
-    # undo https://sourceforge.net/p/maxima/code/ci/f5e9b0f7eb122c4e48ea9df144dd57221e5ea0ca, see see https://trac.sagemath.org/ticket/13364#comment:93
+    # undo https://sourceforge.net/p/maxima/code/ci/f5e9b0f7eb122c4e48ea9df144dd57221e5ea0ca
+    # see https://trac.sagemath.org/ticket/13364#comment:93
     (fetchpatch {
       url = "https://git.sagemath.org/sage.git/plain/build/pkgs/maxima/patches/undoing_true_false_printing_patch.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
       sha256 = "0fvi3rcjv6743sqsbgdzazy9jb6r1p1yq63zyj9fx42wd1hgf7yx";
     })
-  ] ++ lib.optionals ecl-fasl [
+  ] ++ lib.optionals (lisp-compiler.pname == "ecl") [
     # build fasl, needed for ECL support
     (fetchpatch {
       url = "https://git.sagemath.org/sage.git/plain/build/pkgs/maxima/patches/maxima.system.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
@@ -97,13 +104,13 @@ stdenv.mkDerivation ({
   enableParallelBuilding = true;
 
   passthru = {
-    ecl = ecl;
+    inherit lisp-compiler;
   };
 
-  meta = {
+  meta = with lib; {
     description = "Computer algebra system";
     homepage = "http://maxima.sourceforge.net";
-    license = lib.licenses.gpl2;
+    license = licenses.gpl2Plus;
 
     longDescription = ''
       Maxima is a fairly complete computer algebra system written in
@@ -111,7 +118,7 @@ stdenv.mkDerivation ({
       DOE-MACSYMA and licensed under the GPL. Its abilities include
       symbolic integration, 3D plotting, and an ODE solver.
     '';
-
-    platforms = lib.platforms.unix;
+    maintainers = with maintainers; [ doronbehar ];
+    platforms = platforms.unix;
   };
-})
+}
diff --git a/pkgs/applications/science/math/mxnet/default.nix b/pkgs/applications/science/math/mxnet/default.nix
index ab360a9638524..c9ffb8ed5cb3a 100644
--- a/pkgs/applications/science/math/mxnet/default.nix
+++ b/pkgs/applications/science/math/mxnet/default.nix
@@ -1,5 +1,5 @@
-{ config, stdenv, lib, fetchurl, bash, cmake
-, opencv3, gtest, blas, perl
+{ config, stdenv, lib, fetchurl, fetchpatch, bash, cmake
+, opencv3, gtest, blas, gomp, llvmPackages, perl
 , cudaSupport ? config.cudaSupport or false, cudatoolkit, nvidia_x11
 , cudnnSupport ? cudaSupport, cudnn
 }:
@@ -8,18 +8,35 @@ assert cudnnSupport -> cudaSupport;
 
 stdenv.mkDerivation rec {
   pname = "mxnet";
-  version = "1.6.0";
+  version = "1.8.0";
 
   src = fetchurl {
-    url = "https://github.com/apache/incubator-mxnet/releases/download/${version}/apache-mxnet-src-${version}-incubating.tar.gz";
-    sha256 = "1vvdb7pfh63kb9fzs6gqp95q550a3ck4cj9mqxlk9wwhkh30dsq1";
+    name = "apache-mxnet-src-${version}-incubating.tar.gz";
+    url = "https://dlcdn.apache.org/incubator/mxnet/${version}/apache-mxnet-src-${version}-incubating.tar.gz";
+    hash = "sha256-la/5hYlaukCcCNVRRRCuOLiEkM+2KBqzpf8PWCbI21Q=";
   };
 
+  patches = [
+    # Fix build error https://github.com/apache/incubator-mxnet/issues/19405
+    (fetchpatch {
+      name = "mxnet-fix-gcc-linker-error-1.patch";
+      url = "https://github.com/apache/incubator-mxnet/commit/78e31d66d19e385ca4ef73245ce79a47e375d8d1.diff";
+      sha256 = "sha256-UfmGhh4RbvrEOXe6IJxHm1Aqpy1gS6gHxrX5KQBXjv4=";
+    })
+    (fetchpatch {
+      name = "mxnet-fix-gcc-linker-error-2.patch";
+      url = "https://github.com/apache/incubator-mxnet/commit/9bfe3116aabd01049fdbd90855cb245a30b795df.diff";
+      sha256 = "sha256-BL7Zf7Bgn0qpai9HbQ6LBxZNa3iLjVJSe5nxZgqI/fw=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake perl ];
 
   buildInputs = [ opencv3 gtest blas.provider ]
-              ++ lib.optionals cudaSupport [ cudatoolkit nvidia_x11 ]
-              ++ lib.optional cudnnSupport cudnn;
+    ++ lib.optional stdenv.cc.isGNU gomp
+    ++ lib.optional stdenv.cc.isClang llvmPackages.openmp
+    ++ lib.optionals cudaSupport [ cudatoolkit nvidia_x11 ]
+    ++ lib.optional cudnnSupport cudnn;
 
   cmakeFlags =
     [ "-DUSE_MKL_IF_AVAILABLE=OFF" ]
@@ -48,6 +65,6 @@ stdenv.mkDerivation rec {
     homepage = "https://mxnet.incubator.apache.org/";
     maintainers = with maintainers; [ abbradar ];
     license = licenses.asl20;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/science/math/polymake/default.nix b/pkgs/applications/science/math/polymake/default.nix
index 9566801479a33..f4f6366465b80 100644
--- a/pkgs/applications/science/math/polymake/default.nix
+++ b/pkgs/applications/science/math/polymake/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "polymake";
-  version = "4.4";
+  version = "4.5";
 
   src = fetchurl {
     # "The minimal version is a packager friendly version which omits
     # the bundled sources of cdd, lrs, libnormaliz, nauty and jReality."
     url = "https://polymake.org/lib/exe/fetch.php/download/polymake-${version}-minimal.tar.bz2";
-    sha256 = "sha256-2nF5F2xznI77pl2TslrxA8HLpw4fmzVnPOM8N3kOwJE=";
+    sha256 = "sha256-6UPUuzHBEvrYUjQONZW8WRwgcGkqFtUBg6OxBFZteZY=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/science/math/programmer-calculator/default.nix b/pkgs/applications/science/math/programmer-calculator/default.nix
index 0238e5333577b..e9c7cb985cb9b 100644
--- a/pkgs/applications/science/math/programmer-calculator/default.nix
+++ b/pkgs/applications/science/math/programmer-calculator/default.nix
@@ -2,13 +2,13 @@
 
 gccStdenv.mkDerivation rec {
   pname = "programmer-calculator";
-  version = "2.1";
+  version = "2.2";
 
   src = fetchFromGitHub {
     owner = "alt-romes";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1vvpbj24ijl9ma0h669n9x0z1im3vqdf8zf2li0xf5h97b14gmv0";
+    sha256 = "sha256-JQcYCYKdjdy8U2XMFzqTH9kAQ7CFv0r+sC1YfuAm7p8=";
   };
 
   buildInputs = [ ncurses ];
diff --git a/pkgs/applications/science/math/qalculate-gtk/default.nix b/pkgs/applications/science/math/qalculate-gtk/default.nix
index ab5e54dab777e..03f4b223803c1 100644
--- a/pkgs/applications/science/math/qalculate-gtk/default.nix
+++ b/pkgs/applications/science/math/qalculate-gtk/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qalculate-gtk";
-  version = "3.21.0";
+  version = "3.22.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "qalculate-gtk";
     rev = "v${version}";
-    sha256 = "sha256-w0frk1Nd1/HTo94VAbD7QjVuT8laPbmgd8ENTb0+89c=";
+    sha256 = "sha256-BarbO25c103YImOOnjVgwgqpa3mUVvndgJeUHRf2I60=";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/science/math/sage/default.nix b/pkgs/applications/science/math/sage/default.nix
index b7821db1f9a71..e9dae55fbae3d 100644
--- a/pkgs/applications/science/math/sage/default.nix
+++ b/pkgs/applications/science/math/sage/default.nix
@@ -15,7 +15,7 @@ let
       sagelib = self.callPackage ./sagelib.nix {
         inherit flint arb;
         inherit sage-src env-locations pynac singular;
-        ecl = maxima-ecl.ecl;
+        inherit (maxima) lisp-compiler;
         linbox = pkgs.linbox.override { withSage = true; };
         pkg-config = pkgs.pkg-config; # not to confuse with pythonPackages.pkg-config
       };
@@ -48,9 +48,8 @@ let
   # the files its looking fore are located. Also see `sage-env`.
   env-locations = callPackage ./env-locations.nix {
     inherit pari_data;
-    inherit singular maxima-ecl;
+    inherit singular maxima;
     inherit three;
-    ecl = maxima-ecl.ecl;
     cysignals = python3.pkgs.cysignals;
     mathjax = nodePackages.mathjax;
   };
@@ -61,22 +60,21 @@ let
     sagelib = python3.pkgs.sagelib;
     sage_docbuild = python3.pkgs.sage_docbuild;
     inherit env-locations;
-    inherit python3 singular palp flint pynac pythonEnv maxima-ecl;
-    ecl = maxima-ecl.ecl;
+    inherit python3 singular palp flint pynac pythonEnv maxima;
     pkg-config = pkgs.pkg-config; # not to confuse with pythonPackages.pkg-config
   };
 
   # The documentation for sage, building it takes a lot of ram.
   sagedoc = callPackage ./sagedoc.nix {
     inherit sage-with-env;
-    inherit python3 maxima-ecl;
+    inherit python3 maxima;
   };
 
   # sagelib with added wrappers and a dependency on sage-tests to make sure thet tests were run.
   sage-with-env = callPackage ./sage-with-env.nix {
     inherit python3 pythonEnv;
     inherit sage-env;
-    inherit pynac singular maxima-ecl;
+    inherit pynac singular maxima;
     inherit three;
     pkg-config = pkgs.pkg-config; # not to confuse with pythonPackages.pkg-config
   };
@@ -118,8 +116,8 @@ let
 
   singular = pkgs.singular.override { inherit flint; };
 
-  maxima-ecl = pkgs.maxima-ecl.override {
-    ecl = pkgs.ecl.override {
+  maxima = pkgs.maxima.override {
+    lisp-compiler = pkgs.ecl.override {
       # "echo syntax error | ecl > /dev/full 2>&1" segfaults in
       # ECL. We apply a patch to fix it (write_error.patch), but it
       # only works if threads are disabled.  sage 9.2 tests this
diff --git a/pkgs/applications/science/math/sage/env-locations.nix b/pkgs/applications/science/math/sage/env-locations.nix
index b1ad0aad9c761..45a4799d1a031 100644
--- a/pkgs/applications/science/math/sage/env-locations.nix
+++ b/pkgs/applications/science/math/sage/env-locations.nix
@@ -2,13 +2,12 @@
 , pari_data
 , pari
 , singular
-, maxima-ecl
+, maxima
 , conway_polynomials
 , graphs
 , elliptic_curves
 , polytopes_db
 , gap
-, ecl
 , combinatorial_designs
 , jmol
 , mathjax
@@ -30,14 +29,14 @@ writeTextFile rec {
     export SINGULAR_SO='${singular}/lib/libSingular.so'
     export GAP_SO='${gap}/lib/libgap.so'
     export SINGULAR_EXECUTABLE='${singular}/bin/Singular'
-    export MAXIMA_FAS='${maxima-ecl}/lib/maxima/${maxima-ecl.version}/binary-ecl/maxima.fas'
-    export MAXIMA_PREFIX="${maxima-ecl}"
+    export MAXIMA_FAS='${maxima}/lib/maxima/${maxima.version}/binary-ecl/maxima.fas'
+    export MAXIMA_PREFIX="${maxima}"
     export CONWAY_POLYNOMIALS_DATA_DIR='${conway_polynomials}/share/conway_polynomials'
     export GRAPHS_DATA_DIR='${graphs}/share/graphs'
     export ELLCURVE_DATA_DIR='${elliptic_curves}/share/ellcurves'
     export POLYTOPE_DATA_DIR='${polytopes_db}/share/reflexive_polytopes'
     export GAP_ROOT_DIR='${gap}/share/gap/build-dir'
-    export ECLDIR='${ecl}/lib/ecl-${ecl.version}/'
+    export ECLDIR='${maxima.lisp-compiler}/lib/${maxima.lisp-compiler.pname}-${maxima.lisp-compiler.version}/'
     export COMBINATORIAL_DESIGN_DATA_DIR="${combinatorial_designs}/share/combinatorial_designs"
     export CREMONA_MINI_DATA_DIR="${elliptic_curves}/share/cremona"
     export JMOL_DIR="${jmol}/share/jmol" # point to the directory that contains JmolData.jar
diff --git a/pkgs/applications/science/math/sage/patches/fonttools-deprecation-warnings.patch b/pkgs/applications/science/math/sage/patches/fonttools-deprecation-warnings.patch
new file mode 100644
index 0000000000000..93c03a04ddb16
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/fonttools-deprecation-warnings.patch
@@ -0,0 +1,39 @@
+diff --git a/src/doc/en/prep/Advanced-2DPlotting.rst b/src/doc/en/prep/Advanced-2DPlotting.rst
+index 337457afef..f7c76f4b56 100644
+--- a/src/doc/en/prep/Advanced-2DPlotting.rst
++++ b/src/doc/en/prep/Advanced-2DPlotting.rst
+@@ -695,6 +695,8 @@ by the cells.
+ 
+     sage: pdf_savename = name+'.pdf'
+     sage: p.save(pdf_savename)
++    ...
++    DeprecationWarning: The py23 module has been deprecated and will be removed in a future release. Please update your code.
+ 
+ Notably, we can export in formats ready for inclusion in web pages.
+ 
+diff --git a/src/sage/plot/disk.py b/src/sage/plot/disk.py
+index 8680a1c9b1..e83763b678 100644
+--- a/src/sage/plot/disk.py
++++ b/src/sage/plot/disk.py
+@@ -156,6 +156,8 @@ class Disk(GraphicPrimitive):
+             sage: f = tmp_filename(ext='.pdf')
+             sage: p = disk((0,0), 5, (0, pi/4), alpha=0.5)
+             sage: p.save(f)
++            ...
++            DeprecationWarning: The py23 module has been deprecated and will be removed in a future release. Please update your code.
+ 
+         """
+         import matplotlib.patches as patches
+diff --git a/src/sage/plot/text.py b/src/sage/plot/text.py
+index 04cbdedf76..a970f97b79 100644
+--- a/src/sage/plot/text.py
++++ b/src/sage/plot/text.py
+@@ -325,6 +325,8 @@ def text(string, xy, **options):
+     You can save text as part of PDF output::
+ 
+         sage: text("sage", (0,0), rgbcolor=(0,0,0)).save(os.path.join(SAGE_TMP, 'a.pdf'))
++        ...
++        DeprecationWarning: The py23 module has been deprecated and will be removed in a future release. Please update your code.
+ 
+     Some examples of bounding box::
+ 
diff --git a/pkgs/applications/science/math/sage/sage-env.nix b/pkgs/applications/science/math/sage/sage-env.nix
index fd67076c97de4..ae0b9f7453b5e 100644
--- a/pkgs/applications/science/math/sage/sage-env.nix
+++ b/pkgs/applications/science/math/sage/sage-env.nix
@@ -15,8 +15,7 @@
 , pkg-config
 , pari
 , gap
-, ecl
-, maxima-ecl
+, maxima
 , singular
 , fflas-ffpack
 , givaro
@@ -77,8 +76,8 @@ let
     pkg-config
     pari
     gap
-    ecl
-    maxima-ecl
+    maxima.lisp-compiler
+    maxima
     singular
     giac
     palp
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index 4a912e002d979..eb07434b4cc03 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -109,6 +109,14 @@ stdenv.mkDerivation rec {
     # strictly necessary, but keeps us from littering in the user's HOME.
     ./patches/sympow-cache.patch
 
+    # fonttools 4.26.2, used by matplotlib, uses deprecated methods internally.
+    # This is fixed in fonttools 4.27.0, but since fonttools is a dependency of
+    # 2000+ packages and DeprecationWarnings are hidden almost everywhere by
+    # default (not on Sage's doctest harness, though), it doesn't make sense to
+    # backport the fix (see https://github.com/NixOS/nixpkgs/pull/151415).
+    # Let's just assume warnings are expected until we update to 4.27.0.
+    ./patches/fonttools-deprecation-warnings.patch
+
     # https://trac.sagemath.org/ticket/32305
     (fetchSageDiff {
       base = "9.4";
@@ -125,6 +133,14 @@ stdenv.mkDerivation rec {
       sha256 = "sha256-3eJPfWfCrCAQ5filIn7FbzjRQeO9QyTIVl/HyRuqFtE=";
     })
 
+    # https://trac.sagemath.org/ticket/32567
+    (fetchSageDiff {
+      base = "9.5.beta2";
+      name = "arb-2.21.0-update.patch";
+      rev = "eb3304dd521a3d5a9334e747a08e234bbf16b4eb";
+      sha256 = "sha256-XDkaY4VQGyESXI6zuD7nCNzyQOl/fmBFvAESH9+RRvk=";
+    })
+
     # https://trac.sagemath.org/ticket/32797
     (fetchSageDiff {
       base = "9.5.beta7";
@@ -132,6 +148,22 @@ stdenv.mkDerivation rec {
       rev = "f5f7a86908daf60b25e66e6a189c51ada7e0a732";
       sha256 = "sha256-H/caGx3q4KcdsyGe+ojV9bUTQ5y0siqM+QHgDbeEnbw=";
     })
+
+    # https://trac.sagemath.org/ticket/32909
+    (fetchSageDiff {
+      base = "9.5.beta7";
+      name = "matplotlib-3.5-deprecation-warnings.patch";
+      rev = "a5127dc56fdf5c2e82f6bc781cfe78dbd04e97b7";
+      sha256 = "sha256-p23qUu9mgEUbdbX6cy7ArxZAtpcFjCKbgyxN4jWvj1o=";
+    })
+
+    # https://trac.sagemath.org/ticket/32968
+    (fetchSageDiff {
+      base = "9.5.beta8";
+      name = "sphinx-4.3-update.patch";
+      rev = "fc84f82f52b6f05f512cb359ec7c100f93cf8841";
+      sha256 = "sha256-bBbfdcnw/9LUOlY8rHJRbFJEdMXK4shosqTNaobTS1Q=";
+    })
   ];
 
   patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
diff --git a/pkgs/applications/science/math/sage/sage-with-env.nix b/pkgs/applications/science/math/sage/sage-with-env.nix
index f204d97961b65..b74ec4007e626 100644
--- a/pkgs/applications/science/math/sage/sage-with-env.nix
+++ b/pkgs/applications/science/math/sage/sage-with-env.nix
@@ -9,7 +9,7 @@
 , singular
 , gap
 , giac
-, maxima-ecl
+, maxima
 , pari
 , gmp
 , gfan
@@ -42,7 +42,7 @@ let
     pari
     gmp
     gfan
-    maxima-ecl
+    maxima
     eclib
     flintqs
     ntl
diff --git a/pkgs/applications/science/math/sage/sagedoc.nix b/pkgs/applications/science/math/sage/sagedoc.nix
index 76bbc90773b44..6016b3baeb485 100644
--- a/pkgs/applications/science/math/sage/sagedoc.nix
+++ b/pkgs/applications/science/math/sage/sagedoc.nix
@@ -1,7 +1,7 @@
 { stdenv
 , sage-with-env
 , python3
-, maxima-ecl
+, maxima
 , tachyon
 , jmol
 , cddlib
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     sage-with-env.env.lib
     python3
-    maxima-ecl
+    maxima
     tachyon
     jmol
     cddlib
diff --git a/pkgs/applications/science/math/sage/sagelib.nix b/pkgs/applications/science/math/sage/sagelib.nix
index b9c98ed64d010..a884ad8899d4d 100644
--- a/pkgs/applications/science/math/sage/sagelib.nix
+++ b/pkgs/applications/science/math/sage/sagelib.nix
@@ -10,7 +10,7 @@
 , cypari2
 , cysignals
 , cython
-, ecl
+, lisp-compiler
 , eclib
 , ecm
 , flint
@@ -74,7 +74,7 @@ buildPythonPackage rec {
     jupyter_core
     pkg-config
     pip # needed to query installed packages
-    ecl
+    lisp-compiler
   ];
 
   buildInputs = [
@@ -92,7 +92,7 @@ buildPythonPackage rec {
     arb
     brial
     cliquer
-    ecl
+    lisp-compiler
     eclib
     ecm
     fflas-ffpack
diff --git a/pkgs/applications/science/math/singular/default.nix b/pkgs/applications/science/math/singular/default.nix
index df298aab2114e..b543252e87121 100644
--- a/pkgs/applications/science/math/singular/default.nix
+++ b/pkgs/applications/science/math/singular/default.nix
@@ -47,12 +47,13 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
+    # fix timeouts when docbuilding with >= 64 cpus
+    # https://github.com/Singular/Singular/issues/1117
+    ./vspace-MAX_PROCESS.patch
+
     # add aarch64 support to cpu-check.m4. copied from redhat.
     ./redhat-aarch64.patch
 
-    # vspace causes hangs in modstd and other libraries on aarch64
-    ./disable-vspace-on-aarch64.patch
-
     # the newest version of ax-prog-cc-for-build.m4 seems to trigger
     # linker errors. see
     # https://github.com/alsa-project/alsa-firmware/issues/3 for a
diff --git a/pkgs/applications/science/math/singular/disable-vspace-on-aarch64.patch b/pkgs/applications/science/math/singular/disable-vspace-on-aarch64.patch
deleted file mode 100644
index 3e51b7fb2cec5..0000000000000
--- a/pkgs/applications/science/math/singular/disable-vspace-on-aarch64.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/kernel/mod2.h b/kernel/mod2.h
-index 867fcae47..2abd84f23 100644
---- a/kernel/mod2.h
-+++ b/kernel/mod2.h
-@@ -60,8 +60,10 @@
- 
- /* define for parallel processes with shared memory */
- #ifndef __CCYGWIN__
-+#ifndef SI_CPU_AARCH64
- #define HAVE_VSPACE 1
- #endif
-+#endif
- 
- /*#define PROFILING*/
- #ifdef PROFILING
diff --git a/pkgs/applications/science/math/singular/vspace-MAX_PROCESS.patch b/pkgs/applications/science/math/singular/vspace-MAX_PROCESS.patch
new file mode 100644
index 0000000000000..78d658f926ee0
--- /dev/null
+++ b/pkgs/applications/science/math/singular/vspace-MAX_PROCESS.patch
@@ -0,0 +1,35 @@
+diff --git a/kernel/GBEngine/kChinese.cc b/kernel/GBEngine/kChinese.cc
+index 829a66609..84655caf2 100644
+--- a/kernel/GBEngine/kChinese.cc
++++ b/kernel/GBEngine/kChinese.cc
+@@ -209,6 +209,8 @@ ideal id_ChineseRemainder_0(ideal *xx, number *q, int rl, const ring r)
+     return NULL;
+   }
+   int cpus=(int)(long)feOptValue(FE_OPT_CPUS);
++  if (cpus>=vspace::internals::MAX_PROCESS)
++    cpus=vspace::internals::MAX_PROCESS-1;
+   if ((cpus==1) || (2*cpus>=cnt))
+     /* at least 2 polys for each process, or switch to seriell version */
+     return id_ChineseRemainder(xx,q,rl,r);
+@@ -295,6 +297,8 @@ ideal id_Farey_0(ideal x, number N, const ring r)
+ {
+   int cnt=IDELEMS(x)*x->nrows;
+   int cpus=(int)(long)feOptValue(FE_OPT_CPUS);
++  if (cpus>=vspace::internals::MAX_PROCESS)
++    cpus=vspace::internals::MAX_PROCESS-1;
+   if (2*cpus>=cnt) /* at least 2 polys for each process, 
+                      or switch to seriell version */
+     return id_Farey(x,N,r);
+diff --git a/kernel/GBEngine/kverify.cc b/kernel/GBEngine/kverify.cc
+index 909d84994..aa06d6624 100644
+--- a/kernel/GBEngine/kverify.cc
++++ b/kernel/GBEngine/kverify.cc
+@@ -176,6 +176,8 @@ BOOLEAN kVerify2(ideal F, ideal Q)
+   /*---------------------------------------------------------------------*/
+   BOOLEAN all_okay=TRUE;
+   int cpus=(int)(long)feOptValue(FE_OPT_CPUS);
++  if (cpus>=vspace::internals::MAX_PROCESS)
++    cpus=vspace::internals::MAX_PROCESS-1;
+   int parent_pid=getpid();
+   using namespace vspace;
+   vmem_init();
diff --git a/pkgs/applications/science/math/speedcrunch/default.nix b/pkgs/applications/science/math/speedcrunch/default.nix
index 4bb39ab73f5fe..a4e15060fe3bd 100644
--- a/pkgs/applications/science/math/speedcrunch/default.nix
+++ b/pkgs/applications/science/math/speedcrunch/default.nix
@@ -1,14 +1,14 @@
-{ mkDerivation, lib, fetchgit, cmake, qtbase, qttools }:
+{ mkDerivation, lib, fetchFromBitbucket, cmake, qtbase, qttools }:
 
 mkDerivation rec {
   pname = "speedcrunch";
-  version = "0.12.0";
+  version = "unstable-2021-10-09";
 
-  src = fetchgit {
-    # the tagging is not standard, so you probably need to check this when updating
-    rev = "refs/tags/release-${version}";
-    url = "https://bitbucket.org/heldercorreia/speedcrunch";
-    sha256 = "0vh7cd1915bjqzkdp3sk25ngy8cq624mkh8c53c5bnzk357kb0fk";
+  src = fetchFromBitbucket {
+    owner = "heldercorreia";
+    repo = pname;
+    rev = "74756f3438149c01e9edc3259b0f411fa319a22f";
+    sha256 = "sha256-XxQv+A5SfYXFIRK7yacxGHHne1Q93pwCGeHhchIKizU=";
   };
 
   buildInputs = [ qtbase qttools ];
@@ -29,7 +29,7 @@ mkDerivation rec {
       precisions, unlimited variable storage, intelligent automatic completion
       full keyboard-friendly and more than 15 built-in math function.
     '';
-    maintainers = with maintainers; [ gebner ];
+    maintainers = with maintainers; [ gebner j0hax ];
     inherit (qtbase.meta) platforms;
     # works with qt 5.6 and qt 5.8
     broken = builtins.compareVersions qtbase.version "5.7.0" == 0;
diff --git a/pkgs/applications/science/math/wxmaxima/default.nix b/pkgs/applications/science/math/wxmaxima/default.nix
index 57e4a6f1d3363..76d2c782b4d4a 100644
--- a/pkgs/applications/science/math/wxmaxima/default.nix
+++ b/pkgs/applications/science/math/wxmaxima/default.nix
@@ -1,21 +1,37 @@
-{ lib, stdenv, fetchFromGitHub
-, wrapGAppsHook, cmake, gettext
-, maxima, wxGTK, gnome }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, wrapGAppsHook
+, cmake
+, gettext
+, maxima
+, wxGTK
+, gnome
+}:
 
 stdenv.mkDerivation rec {
   pname = "wxmaxima";
-  version = "21.05.2";
+  version = "21.11.0";
 
   src = fetchFromGitHub {
     owner = "wxMaxima-developers";
     repo = "wxmaxima";
     rev = "Version-${version}";
-    sha256 = "sha256-HPqdxGrPxe5FZNOimTpAP+c9VpDBkXu3Z1c1Aaf3+UA=";
+    sha256 = "sha256-LwuqldMGsmFR8xrNg5vsrogmdi5ysqEQGWITM460IZk=";
   };
 
-  buildInputs = [ wxGTK maxima gnome.adwaita-icon-theme ];
+  buildInputs = [
+    wxGTK
+    maxima
+    # So it won't embed svg files into headers.
+    gnome.adwaita-icon-theme
+  ];
 
-  nativeBuildInputs = [ wrapGAppsHook cmake gettext ];
+  nativeBuildInputs = [
+    wrapGAppsHook
+    cmake
+    gettext
+  ];
 
   preConfigure = ''
     gappsWrapperArgs+=(--prefix PATH ":" ${maxima}/bin)
@@ -25,6 +41,7 @@ stdenv.mkDerivation rec {
     description = "Cross platform GUI for the computer algebra system Maxima";
     license = licenses.gpl2;
     homepage = "https://wxmaxima-developers.github.io/wxmaxima/";
+    maintainers = with maintainers; [ doronbehar ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/science/math/yacas/default.nix b/pkgs/applications/science/math/yacas/default.nix
index 05d1f780bf30e..f7dc2a344e185 100644
--- a/pkgs/applications/science/math/yacas/default.nix
+++ b/pkgs/applications/science/math/yacas/default.nix
@@ -1,6 +1,21 @@
-{ lib, stdenv, fetchFromGitHub, cmake, perl
-, enableGui ? false, qt5
-, enableJupyter ? false, boost, jsoncpp, openssl, zmqpp
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, perl
+, enableGui ? false
+, qtbase
+, wrapQtAppsHook
+, qtwebengine
+, enableJupyter ? true
+, boost
+, jsoncpp
+, openssl
+, zmqpp
+, enableJava ? false
+, openjdk
+, gtest
 }:
 
 stdenv.mkDerivation rec {
@@ -19,21 +34,53 @@ stdenv.mkDerivation rec {
   cmakeFlags = [
     "-DENABLE_CYACAS_GUI=${if enableGui then "ON" else "OFF"}"
     "-DENABLE_CYACAS_KERNEL=${if enableJupyter then "ON" else "OFF"}"
+    "-DENABLE_JYACAS=${if enableJava then "ON" else "OFF"}"
+    "-DENABLE_CYACAS_UNIT_TESTS=ON"
   ];
+  patches = [
+    # upstream issue: https://github.com/grzegorzmazur/yacas/issues/340
+    # Upstream patch which doesn't apply on 1.9.1 is:
+    # https://github.com/grzegorzmazur/yacas/pull/342
+    ./jsoncpp-fix-include.patch
+    # Fixes testing - https://github.com/grzegorzmazur/yacas/issues/339
+    # PR: https://github.com/grzegorzmazur/yacas/pull/343
+    (fetchpatch {
+      url = "https://github.com/grzegorzmazur/yacas/commit/8bc22d517ecfdde3ac94800dc8506f5405564d48.patch";
+      sha256 = "sha256-aPO5T8iYNkGtF8j12YxNJyUPJJPKrXje1DmfCPt317A=";
+    })
+  ];
+  preCheck = ''
+    patchShebangs ../tests/test-yacas
+  '';
+  checkInputs = [
+    gtest
+  ];
+  doCheck = true;
 
-  # Perl is only for the documentation
-  nativeBuildInputs = [ cmake perl ];
+  nativeBuildInputs = [
+    cmake
+    # Perl is only for the documentation
+    perl
+  ] ++ lib.optionals enableJava [
+    openjdk
+  ];
   buildInputs = [
-  ] ++ lib.optionals enableGui (with qt5; [ qtbase qtwebkit ])
-    ++ lib.optionals enableJupyter [ boost jsoncpp openssl zmqpp ]
-    ;
+  ] ++ lib.optionals enableGui [
+    qtbase
+    wrapQtAppsHook
+    qtwebengine
+  ] ++ lib.optionals enableJupyter [
+    boost
+    jsoncpp
+    openssl
+    zmqpp
+  ];
 
   meta = {
-    description = "Easy to use, general purpose Computer Algebra System";
+    description = "Easy to use, general purpose Computer Algebra System${lib.optionalString enableGui ", built with GUI."}";
     homepage = "http://www.yacas.org/";
     license = lib.licenses.gpl2Plus;
-    maintainers = with lib.maintainers; [viric];
+    maintainers = with lib.maintainers; [ viric ];
     platforms = with lib.platforms; linux;
-    broken = enableGui || enableJupyter;
   };
 }
diff --git a/pkgs/applications/science/math/yacas/fix-test-script.patch b/pkgs/applications/science/math/yacas/fix-test-script.patch
new file mode 100644
index 0000000000000..da85f0dc0e1bc
--- /dev/null
+++ b/pkgs/applications/science/math/yacas/fix-test-script.patch
@@ -0,0 +1,26 @@
+diff --git i/tests/test-yacas w/tests/test-yacas
+index b375d78b..0e3a616b 100755
+--- i/tests/test-yacas
++++ w/tests/test-yacas
+@@ -35,9 +35,9 @@ FAILED_TESTS=""  # list of failed tests
+ FAILURES=0       # number of failed tests
+ TOTALTESTS=0     # total number of tests
+ 
+-TESTFILE=/tmp/test-yacas.$$
+-TIMEFILE=/tmp/time-yacas.$$
+-VERSIONF=/tmp/version-yacas-$$.ys
++TESTFILE="$(mktemp -t test-yacas.XXX)"
++TIMEFILE="$(mktemp -t time-yacas.XXX)"
++VERSIONF="$(mktemp -t version-yacas-XXX.ys)"
+ LOGFILE=yacas-logfile.txt
+ echo "Print(Version());" > $VERSIONF
+ VERSION=`$CMD $VERSIONF`
+@@ -69,7 +69,7 @@ for scr in $SCRIPTS; do
+ #		fi
+     echo "Running $scr"
+ 	if [ -f $TESTFILE ]; then rm $TESTFILE ; fi
+-    /bin/bash -c "time -p ($CMD $f || echo \"Error: exit status $?\") | tee $TESTFILE" \
++	    bash -c "time -p ($CMD $f || echo \"Error: exit status $?\") | tee $TESTFILE" \
+ 		2> $TIMEFILE \
+ 		|| (echo "Error -- User interrupt" > $TESTFILE)
+ #	cat $TIMEFILE
diff --git a/pkgs/applications/science/math/yacas/jsoncpp-fix-include.patch b/pkgs/applications/science/math/yacas/jsoncpp-fix-include.patch
new file mode 100644
index 0000000000000..8fe914e55be34
--- /dev/null
+++ b/pkgs/applications/science/math/yacas/jsoncpp-fix-include.patch
@@ -0,0 +1,63 @@
+diff --git i/cyacas/yacas-kernel/CMakeLists.txt w/cyacas/yacas-kernel/CMakeLists.txt
+index fe1600aa..dcc329f8 100644
+--- i/cyacas/yacas-kernel/CMakeLists.txt
++++ w/cyacas/yacas-kernel/CMakeLists.txt
+@@ -22,8 +22,9 @@ find_library (ZEROMQ_LIBRARY NAMES zmq)
+ find_path (ZMQPP_INCLUDE_DIR zmqpp.hpp)
+ find_library (ZMQPP_LIBRARY NAMES zmqpp)
+ 
+-find_path (JSONCPP_INCLUDE_DIR json.h)
+-find_library (JSONCPP_LIBRARY NAMES jsoncpp)
++# https://github.com/open-source-parsers/jsoncpp/wiki/Building#another-approach-for-cmake
++find_package(jsoncpp REQUIRED)
++get_target_property(JSON_INC_PATH jsoncpp_lib INTERFACE_INCLUDE_DIRECTORIES)
+ 
+ find_package (OpenSSL)
+ find_package (Boost REQUIRED date_time filesystem)
+@@ -31,6 +32,6 @@ find_package (Boost REQUIRED date_time filesystem)
+ include_directories (include)
+ 
+ add_executable (yacas-kernel src/main.cpp src/yacas_kernel.cpp src/yacas_engine.cpp src/hmac_sha256.cpp src/base64.cpp)
+-target_link_libraries (yacas-kernel libyacas ${ZMQPP_LIBRARY} ${ZEROMQ_LIBRARY} ${JSONCPP_LIBRARY} ${OPENSSL_CRYPTO_LIBRARY} ${Boost_LIBRARIES} pthread ${CMAKE_DL_LIBS})
++target_link_libraries (yacas-kernel libyacas ${ZMQPP_LIBRARY} ${ZEROMQ_LIBRARY} jsoncpp_lib ${OPENSSL_CRYPTO_LIBRARY} ${Boost_LIBRARIES} pthread ${CMAKE_DL_LIBS})
+ 
+ install (TARGETS yacas-kernel DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git i/cyacas/yacas-kernel/include/yacas_kernel.hpp w/cyacas/yacas-kernel/include/yacas_kernel.hpp
+index 91d36ac0..d12f905c 100644
+--- i/cyacas/yacas-kernel/include/yacas_kernel.hpp
++++ w/cyacas/yacas-kernel/include/yacas_kernel.hpp
+@@ -29,7 +29,7 @@
+ #include "yacas_engine.hpp"
+ 
+ #include <boost/uuid/random_generator.hpp>
+-#include <jsoncpp/json/json.h>
++#include <json/json.h>
+ #include <zmqpp/zmqpp.hpp>
+ 
+ #include <map>
+diff --git i/cyacas/yacas-kernel/src/main.cpp w/cyacas/yacas-kernel/src/main.cpp
+index c31f17f2..832e9128 100644
+--- i/cyacas/yacas-kernel/src/main.cpp
++++ w/cyacas/yacas-kernel/src/main.cpp
+@@ -24,7 +24,7 @@
+ 
+ #include "yacas_kernel.hpp"
+ 
+-#include <jsoncpp/json/json.h>
++#include <json/json.h>
+ 
+ #include <boost/dll/runtime_symbol_info.hpp>
+ 
+diff --git i/cyacas/yacas-kernel/src/yacas_engine.cpp w/cyacas/yacas-kernel/src/yacas_engine.cpp
+index 6ed60ca3..18e9b3fd 100644
+--- i/cyacas/yacas-kernel/src/yacas_engine.cpp
++++ w/cyacas/yacas-kernel/src/yacas_engine.cpp
+@@ -22,7 +22,7 @@
+  * Created on November 7, 2015, 12:52 PM
+  */
+ 
+-#include <jsoncpp/json/writer.h>
++#include <json/writer.h>
+ 
+ #include "yacas_engine.hpp"
+ 
diff --git a/pkgs/applications/science/misc/boinc/default.nix b/pkgs/applications/science/misc/boinc/default.nix
index 460ea1408ecaa..05304ef6a9e27 100644
--- a/pkgs/applications/science/misc/boinc/default.nix
+++ b/pkgs/applications/science/misc/boinc/default.nix
@@ -3,8 +3,8 @@ libGLU, libGL, libXmu, libXi, freeglut, libjpeg, libtool, wxGTK30, xcbutil,
 sqlite, gtk2, patchelf, libXScrnSaver, libnotify, libX11, libxcb }:
 
 let
-  majorVersion = "7.14";
-  minorVersion = "2";
+  majorVersion = "7.18";
+  minorVersion = "1";
 in
 
 stdenv.mkDerivation rec {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     owner = "BOINC";
     repo = "boinc";
     rev = "client_release/${majorVersion}/${version}";
-    sha256 = "0nicpkag18xq0libfqqvs0im22mijpsxzfk272iwdd9l0lmgfvyd";
+    sha256 = "sha256-ijkfWTFwwJXvh6f0P5hkzWODxU+Ugz6iQUK+5jEpWXQ=";
   };
 
   nativeBuildInputs = [ libtool automake autoconf m4 pkg-config ];
@@ -37,10 +37,15 @@ stdenv.mkDerivation rec {
 
   configureFlags = [ "--disable-server" ];
 
-  meta = {
+  postInstall = ''
+    install --mode=444 -D 'client/scripts/boinc-client.service' "$out/etc/systemd/system/boinc.service"
+  '';
+
+  meta = with lib; {
     description = "Free software for distributed and grid computing";
     homepage = "https://boinc.berkeley.edu/";
-    license = lib.licenses.lgpl2Plus;
-    platforms = lib.platforms.linux;  # arbitrary choice
+    license = licenses.lgpl2Plus;
+    platforms = platforms.linux;  # arbitrary choice
+    maintainers = with maintainers; [ Luflosi ];
   };
 }
diff --git a/pkgs/applications/science/misc/fityk/default.nix b/pkgs/applications/science/misc/fityk/default.nix
index 3198b40711d15..974fd3ece45c5 100644
--- a/pkgs/applications/science/misc/fityk/default.nix
+++ b/pkgs/applications/science/misc/fityk/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
   meta = {
     description = "Curve fitting and peak fitting software";
     license = lib.licenses.gpl2;
-    homepage = "http://fityk.nieto.pl/";
+    homepage = "https://fityk.nieto.pl/";
     platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/applications/science/misc/golly/default.nix b/pkgs/applications/science/misc/golly/default.nix
index 724a1008c1fb7..7d91c76579f95 100644
--- a/pkgs/applications/science/misc/golly/default.nix
+++ b/pkgs/applications/science/misc/golly/default.nix
@@ -1,31 +1,47 @@
-{lib, stdenv, fetchurl, wxGTK, perl, python2, zlib, libGLU, libGL, libX11}:
+{lib, stdenv, fetchurl, wxGTK, perl, python3, zlib, libGLU, libGL, libX11, SDL2}:
 stdenv.mkDerivation rec {
   pname = "golly";
-  version = "3.3";
+  version = "4.1";
 
   src = fetchurl {
-    sha256 = "1j3ksnar4rdam4xiyspgyrs1pifbvxfxkrn65brkwxpx39mpgzc8";
+    sha256 = "1j30dpzy6wh8fv1j2750hzc6wb0nhk83knl9fapccxgxw9n5lrbc";
     url="mirror://sourceforge/project/golly/golly/golly-${version}/golly-${version}-src.tar.gz";
   };
 
   buildInputs = [
-    wxGTK perl python2 zlib libGLU libGL libX11
+    wxGTK perl python3 zlib libGLU libGL libX11 SDL2
   ];
 
   setSourceRoot = ''
-    sourceRoot=$(echo */gui-wx/configure)
+    sourceRoot=$(echo */gui-wx/)
+  '';
+
+  postPatch = ''
+    sed -e '/gollydir =/agollydir += "/../share/golly/";' -i wxgolly.cpp
+    grep share/golly wxgolly.cpp
+
+    sed -e 's@PYTHON_SHLIB@${python3}/lib/libpython3.so@' -i wxprefs.cpp
+    sed -e 's@PERL_SHLIB@'"$(find "${perl}/lib/" -name libperl.so)"'@' -i wxprefs.cpp
+    ! grep _SHLIB *.cpp
+
+    grep /lib/libpython wxprefs.cpp
+    grep /libperl wxprefs.cpp
   '';
 
-  # Link against Python explicitly as it is needed for scripts
   makeFlags=[
-    "AM_LDFLAGS="
+    "-f" "makefile-gtk"
+    "ENABLE_SOUND=1" "ENABLE_PERL=1"
   ];
-  NIX_LDFLAGS="-l${python2.libPrefix} -lperl";
-  preConfigure=''
-    export NIX_LDFLAGS="$NIX_LDFLAGS -L$(dirname "$(find ${perl} -name libperl.so)")"
-    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE
-      -DPYTHON_SHLIB=$(basename "$(
-        readlink -f ${python2}/lib/libpython*.so)")"
+
+  installPhase = ''
+    mkdir -p "$out/bin"
+    cp ../golly ../bgolly "$out/bin"
+
+    mkdir -p "$out/share/doc/golly/"
+    cp ../docs/*  "$out/share/doc/golly/"
+
+    mkdir -p "$out/share/golly"
+    cp -r ../{Help,Patterns,Scripts,Rules} "$out/share/golly"
   '';
 
   meta = {
diff --git a/pkgs/applications/science/misc/openmvg/default.nix b/pkgs/applications/science/misc/openmvg/default.nix
index 2e34f2d15d251..585c5ac4f3983 100644
--- a/pkgs/applications/science/misc/openmvg/default.nix
+++ b/pkgs/applications/science/misc/openmvg/default.nix
@@ -8,14 +8,14 @@
 , enableDocs ? false }:
 
 stdenv.mkDerivation rec {
-  version = "1.6";
+  version = "2.0";
   pname = "openmvg";
 
   src = fetchFromGitHub {
     owner = "openmvg";
     repo = "openmvg";
     rev = "v${version}";
-    sha256 = "0mrsi0dzgi7cjzn13r9xv7rnc8c9a4h8ip78xy88m9xsyr21wd1h";
+    sha256 = "sha256-6F/xUgZpqY+v6CpwTBhIXI4JdT8HVB0P5JzOL66AVd8=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/science/misc/rink/default.nix b/pkgs/applications/science/misc/rink/default.nix
index fcacaefca442a..d319dbe3e7046 100644
--- a/pkgs/applications/science/misc/rink/default.nix
+++ b/pkgs/applications/science/misc/rink/default.nix
@@ -2,17 +2,17 @@
 , libiconv, Security }:
 
 rustPlatform.buildRustPackage rec {
-  version = "0.6.1";
+  version = "0.6.2";
   pname = "rink";
 
   src = fetchFromGitHub {
     owner = "tiffany352";
     repo = "rink-rs";
     rev = "v${version}";
-    sha256 = "1h93xlavcjvx588q8wkpbzph88yjjhhvzcfxr5nicdca0jnha5ch";
+    sha256 = "sha256-l2Rj15zaJm94EHwvOssfvYQNOoWj45Nq9M85n+A0vo4=";
   };
 
-  cargoSha256 = "0x4rvfnw3gl2aj6i006nkk3y1f8skyv8g0ss3z2v6qj9nhs7pyir";
+  cargoSha256 = "sha256-GhuvwVkDRFjC6BghaNMFZZG9hResTN1u0AuvIXlFmig=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ ncurses ]
diff --git a/pkgs/applications/science/misc/root/5.nix b/pkgs/applications/science/misc/root/5.nix
index 715c5c90cbcdb..de85043f127e0 100644
--- a/pkgs/applications/science/misc/root/5.nix
+++ b/pkgs/applications/science/misc/root/5.nix
@@ -61,6 +61,28 @@ stdenv.mkDerivation rec {
   ];
 
   preConfigure = ''
+    # binutils 2.37 fixes
+    fixupList=(
+      cint/demo/gl/make0
+      cint/demo/exception/Makefile
+      cint/demo/makecint/KRcc/Makefile
+      cint/demo/makecint/Stub2/Make2
+      cint/demo/makecint/Array/Makefile
+      cint/demo/makecint/DArray/Makefile
+      cint/demo/makecint/ReadFile/Makefile
+      cint/demo/makecint/stl/Makefile
+      cint/demo/makecint/Stub2/Make1
+      cint/cint/include/makemat
+      cint/cint/lib/WildCard/Makefile
+      cint/cint/include/make.arc
+      cint/cint/lib/qt/Makefile
+      cint/cint/lib/pthread/Makefile
+      graf2d/asimage/src/libAfterImage/Makefile.in
+    )
+    for toFix in "''${fixupList[@]}"; do
+      substituteInPlace "$toFix" --replace "clq" "cq"
+    done
+
     patchShebangs build/unix/
     ln -s ${lib.getDev stdenv.cc.libc}/include/AvailabilityMacros.h cint/cint/include/
   ''
diff --git a/pkgs/applications/science/misc/root/default.nix b/pkgs/applications/science/misc/root/default.nix
index 4ac416908132e..225a81f1f66a4 100644
--- a/pkgs/applications/science/misc/root/default.nix
+++ b/pkgs/applications/science/misc/root/default.nix
@@ -117,6 +117,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [
     "-Drpath=ON"
     "-DCMAKE_CXX_STANDARD=17"
+    "-DCMAKE_INSTALL_BINDIR=bin"
     "-DCMAKE_INSTALL_LIBDIR=lib"
     "-DCMAKE_INSTALL_INCLUDEDIR=include"
     "-Dbuiltin_llvm=OFF"
diff --git a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
index bbe8f6f9f5369..f30e94f03d88e 100644
--- a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
+++ b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
@@ -14,7 +14,7 @@ let
     if stdenv.hostPlatform.system == "i686-linux" then "SSE2" else
     if stdenv.hostPlatform.system == "x86_64-linux" then "SSE4.1" else
     if stdenv.hostPlatform.system == "x86_64-darwin" then "SSE4.1" else
-    if stdenv.hostPlatform.system == "aarch64-linux" then "ARM_NEON" else
+    if stdenv.hostPlatform.system == "aarch64-linux" then "ARM_NEON_ASIMD" else
     "None";
 
 in stdenv.mkDerivation rec {
diff --git a/pkgs/applications/science/physics/elmerfem/default.nix b/pkgs/applications/science/physics/elmerfem/default.nix
index cd9b7430b99fa..63dfe6c283730 100644
--- a/pkgs/applications/science/physics/elmerfem/default.nix
+++ b/pkgs/applications/science/physics/elmerfem/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elmerfem";
-  version = "8.4";
+  version = "9.0";
 
   src = fetchFromGitHub {
     owner = "elmercsc";
     repo = "elmerfem";
     rev = "release-${version}";
-    sha256 = "0vk31lplxlng173q8jjcpbyj1gaf98jvkqjvi9077d1nslya7vpm";
+    sha256 = "VK7jvu4s5d7k0c39XqY9dEzg/vXtX5Yr/09VcuZVQ9A=";
   };
 
   hardeningDisable = [ "format" ];
@@ -32,15 +32,11 @@ stdenv.mkDerivation rec {
   "-DCMAKE_OpenGL_GL_PREFERENCE=GLVND"
   ];
 
-  patches = [
-    ./fix-cmake.patch
-  ];
-
   meta = with lib; {
     homepage = "https://elmerfem.org/";
     description = "A finite element software for multiphysical problems";
     platforms = platforms.unix;
-    maintainers = [ maintainers.wulfsta ];
+    maintainers = with maintainers; [ wulfsta broke ];
     license = licenses.lgpl21;
   };
 
diff --git a/pkgs/applications/science/physics/elmerfem/fix-cmake.patch b/pkgs/applications/science/physics/elmerfem/fix-cmake.patch
deleted file mode 100644
index 098f65207330d..0000000000000
--- a/pkgs/applications/science/physics/elmerfem/fix-cmake.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --exclude '*~' -ruN A/torch/CMakeLists.txt B/torch/CMakeLists.txt
---- A/fem/tests/CMakeLists.txt	2020-04-23 02:35:03.243388917 -0400
-+++ B/fem/tests/CMakeLists.txt	2018-12-19 20:18:40.671857320 -0400
-@@ -14,7 +14,7 @@ 
- SET(MESH2D_BIN "${CMAKE_BINARY_DIR}/meshgen2d/src/Mesh2D")
-
- MACRO(SUBDIRLIST result curdir depth)
-   set(glob_pattern "*")
--  FOREACH(D RANGE 1 depth)
-+  FOREACH(D RANGE 1 ${depth})
-     FILE(GLOB children RELATIVE ${curdir} ${glob_pattern}) 
-     FOREACH(child ${children})
-       IF(IS_DIRECTORY ${curdir}/${child})
diff --git a/pkgs/applications/science/programming/groove/default.nix b/pkgs/applications/science/programming/groove/default.nix
index 958c452b9fceb..86d77072ee8ce 100644
--- a/pkgs/applications/science/programming/groove/default.nix
+++ b/pkgs/applications/science/programming/groove/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, unzip, makeWrapper, makeDesktopItem, icoutils, jre }:
+{ lib, stdenv, fetchurl, unzip, makeWrapper, makeDesktopItem, icoutils, jre8 }:
 
 let
   desktopItem = makeDesktopItem {
@@ -12,11 +12,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "groove";
-  version = "5.7.4";
+  version = "5.8.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/groove/groove/${version}/${pname}-${builtins.replaceStrings ["."] ["_"] version}-bin.zip";
-    sha256 = "1cl3xzl3n8b9a7h5pvnv31bab9j9zaw07ppk8whk8h865dcq1d10";
+    sha256 = "sha256-JwoUlO6F2+8NtCnLC+xm5q0Jm8RIyU1rnuKGmjgJhFU=";
   };
 
   nativeBuildInputs = [ unzip makeWrapper icoutils ];
@@ -32,7 +32,7 @@ in stdenv.mkDerivation rec {
 
     mkdir -p $out/bin
     for bin in Generator Imager ModelChecker PrologChecker Simulator Viewer; do
-      makeWrapper ${jre}/bin/java $out/bin/groove-''${bin,,} \
+      makeWrapper ${jre8}/bin/java $out/bin/groove-''${bin,,} \
         --add-flags "-jar $out/share/groove/bin/$bin.jar"
     done
 
diff --git a/pkgs/applications/science/programming/scyther/cli.nix b/pkgs/applications/science/programming/scyther/cli.nix
deleted file mode 100644
index 0acf0989c6364..0000000000000
--- a/pkgs/applications/science/programming/scyther/cli.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ stdenv, glibc, flex, bison, cmake
-, version, src, meta }:
-stdenv.mkDerivation {
-  pname = "scyther-cli";
-  inherit version;
-
-  inherit src meta;
-
-  nativeBuildInputs = [ cmake flex bison ];
-  buildInputs = [ glibc.static ];
-
-  patchPhase = ''
-    # Since we're not in a git dir, the normal command this project uses to create this file wouldn't work
-    printf "%s\n" "#define TAGVERSION \"${version}\"" > src/version.h
-  '';
-
-  configurePhase = ''
-    (cd src && cmakeConfigurePhase)
-  '';
-
-  dontUseCmakeBuildDir = true;
-  cmakeFlags = [ "-DCMAKE_C_FLAGS=-std=gnu89" ];
-
-  installPhase = ''
-    mkdir -p "$out/bin"
-    mv src/scyther-linux "$out/bin/scyther-cli"
-    ln -s "$out/bin/scyther-cli" "$out/bin/scyther-linux"
-  '';
-}
diff --git a/pkgs/applications/science/programming/scyther/default.nix b/pkgs/applications/science/programming/scyther/default.nix
deleted file mode 100644
index ca6b57de611d2..0000000000000
--- a/pkgs/applications/science/programming/scyther/default.nix
+++ /dev/null
@@ -1,80 +0,0 @@
-{ stdenv, lib, buildEnv, pkgsi686Linux, fetchFromGitHub, python27Packages, graphviz
-, includeGUI ? true
-, includeProtocols ? true
-}:
-let
-  version = "1.1.3";
-
-  src = fetchFromGitHub {
-    rev = "v${version}";
-    sha256 = "0rb4ha5bnjxnwj4f3hciq7kyj96fhw14hqbwl5kr9cdw8q62mx0h";
-    owner = "cascremers";
-    repo = "scyther";
-  };
-
-  meta = with lib; {
-    description = "A tool for the automatic verification of security protocols";
-    homepage = "https://www.cs.ox.ac.uk/people/cas.cremers/scyther/";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ infinisil ];
-    platforms = platforms.linux;
-  };
-
-  cli = pkgsi686Linux.callPackage ./cli.nix {
-    inherit version src meta;
-  };
-
-  gui = stdenv.mkDerivation {
-    pname = "scyther-gui";
-    inherit version;
-    inherit src meta;
-    buildInputs = [
-      python27Packages.wrapPython
-    ];
-
-    patchPhase = ''
-      file=gui/Scyther/Scyther.py
-
-      # By default the scyther binary is looked for in the directory of the python script ($out/gui), but we want to have it look where our cli package is
-      substituteInPlace $file --replace "return getMyDir()" "return \"${cli}/bin\""
-
-      # Removes the Shebang from the file, as this would be wrapped wrongly
-      sed -i -e "1d" $file
-    '';
-
-    dontBuild = true;
-
-    propagatedBuildInputs = [
-      python27Packages.wxPython
-      graphviz
-    ];
-
-    installPhase = ''
-      mkdir -p "$out"/gui "$out"/bin
-      cp -r gui/* "$out"/gui
-      ln -s "$out"/gui/scyther-gui.py "$out/bin/scyther-gui"
-    '';
-
-    postFixup = ''
-      wrapPythonProgramsIn "$out/gui" "$out $pythonPath"
-    '';
-
-    doInstallCheck = true;
-    installCheckPhase = ''
-      "$out/gui/scyther.py" "$src/gui/Protocols/Demo/ns3.spdl"
-    '';
-  };
-in
-  buildEnv {
-    name = "scyther-${version}";
-    inherit meta;
-    paths = [ cli ] ++ lib.optional includeGUI gui;
-    pathsToLink = [ "/bin" ];
-
-    postBuild = ''
-      rm "$out/bin/scyther-linux"
-    '' + lib.optionalString includeProtocols ''
-      mkdir -p "$out/protocols"
-      cp -rv ${src}/protocols/* "$out/protocols"
-    '';
-  }
diff --git a/pkgs/applications/science/robotics/betaflight-configurator/default.nix b/pkgs/applications/science/robotics/betaflight-configurator/default.nix
index 2fafa2ebf875c..3331877e1f2c4 100644
--- a/pkgs/applications/science/robotics/betaflight-configurator/default.nix
+++ b/pkgs/applications/science/robotics/betaflight-configurator/default.nix
@@ -13,10 +13,10 @@ let
 in
 stdenv.mkDerivation rec {
   inherit pname;
-  version = "10.7.0";
+  version = "10.7.1";
   src = fetchurl {
     url = "https://github.com/betaflight/${pname}/releases/download/${version}/${pname}_${version}_linux64.zip";
-    sha256 = "07r60n9422g5sm7x5b62p044cp961l51vx0s8ig2hy24s74hkam1";
+    sha256 = "sha256-mMjy7Ve7wEmPxkAmux0WahUgJ86ylnWZP4smDZeBs8Q=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook unzip ];
diff --git a/pkgs/applications/science/robotics/mavproxy/default.nix b/pkgs/applications/science/robotics/mavproxy/default.nix
index 12d8ef7c0bb24..c1e5b128fc71f 100644
--- a/pkgs/applications/science/robotics/mavproxy/default.nix
+++ b/pkgs/applications/science/robotics/mavproxy/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonApplication rec {
   pname = "MAVProxy";
-  version = "1.8.45";
+  version = "1.8.46";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f1010cefb5b97a5d392d32aa1425bdb7df995161125f8686f2c7383c2a86e9e5";
+    sha256 = "c740c11551af4bcb1378772bde77ca6c846c6fd261b79d932c0ecbb164afe3bd";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/system/glances/default.nix b/pkgs/applications/system/glances/default.nix
index 7c3120f57040b..b25065c5f1fff 100644
--- a/pkgs/applications/system/glances/default.nix
+++ b/pkgs/applications/system/glances/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildPythonApplication, fetchFromGitHub, isPyPy, lib
-, defusedxml, future, psutil, setuptools
+, defusedxml, future, packaging, psutil, setuptools
 # Optional dependencies:
 , bottle, pysnmp
 , hddtemp
@@ -9,14 +9,14 @@
 
 buildPythonApplication rec {
   pname = "glances";
-  version = "3.2.3.1";
+  version = "3.2.4.2";
   disabled = isPyPy;
 
   src = fetchFromGitHub {
     owner = "nicolargo";
     repo = "glances";
     rev = "v${version}";
-    sha256 = "0h7y36z4rizl1lyxacq32vpmvbwn9w2nrvrxn791060cksfw4xwd";
+    sha256 = "0gql61lrav3f7wbsvgc1d6vf8r0xi5xs9rz9d3sqw3wj5m90w0vq";
   };
 
   # Some tests fail in the sandbox (they e.g. require access to /sys/class/power_supply):
@@ -40,6 +40,7 @@ buildPythonApplication rec {
     defusedxml
     future
     netifaces
+    packaging
     psutil
     pysnmp
     setuptools
diff --git a/pkgs/applications/system/systemdgenie/default.nix b/pkgs/applications/system/systemdgenie/default.nix
new file mode 100644
index 0000000000000..ad009be563553
--- /dev/null
+++ b/pkgs/applications/system/systemdgenie/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, lib
+, cmake
+, extra-cmake-modules
+, kxmlgui
+, fetchFromGitLab
+, kdelibs4support
+, wrapQtAppsHook
+}:
+stdenv.mkDerivation rec{
+  pname = "systemdgenie";
+  version = "0.99.0";
+  src = fetchFromGitLab {
+    domain = "invent.kde.org";
+    repo = "SystemdGenie";
+    owner = "system";
+    rev = "v${version}";
+    hash = "sha256-y+A2OuK1ZooPY5W0SsXEb1aaOAJ2b7QSwiumolmAaR4=";
+  };
+
+  nativeBuildInputs = [ cmake extra-cmake-modules wrapQtAppsHook ];
+
+  buildInputs = [ kxmlgui kdelibs4support ];
+
+  meta = with lib; {
+    description = "Systemd management utility";
+    homepage = "https://kde.org";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.pasqui23 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/terminal-emulators/contour/default.nix b/pkgs/applications/terminal-emulators/contour/default.nix
index 864a9e7c48764..6ef16a5b9e485 100644
--- a/pkgs/applications/terminal-emulators/contour/default.nix
+++ b/pkgs/applications/terminal-emulators/contour/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkDerivation, fetchFromGitHub, cmake, pkg-config, freetype, libGL, pcre }:
+{ lib, stdenv, mkDerivation, fetchFromGitHub, cmake, pkg-config, freetype, libGL, pcre }:
 
 mkDerivation rec {
   pname = "contour";
@@ -23,5 +23,6 @@ mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ fortuneteller2k ];
     platforms = platforms.unix;
+    broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/contour.x86_64-darwin
   };
 }
diff --git a/pkgs/applications/terminal-emulators/foot/default.nix b/pkgs/applications/terminal-emulators/foot/default.nix
index 837b2b45a391e..591b16ee82268 100644
--- a/pkgs/applications/terminal-emulators/foot/default.nix
+++ b/pkgs/applications/terminal-emulators/foot/default.nix
@@ -27,7 +27,7 @@
 }:
 
 let
-  version = "1.9.2";
+  version = "1.10.3";
 
   # build stimuli file for PGO build and the script to generate it
   # independently of the foot's build, so we can cache the result
@@ -99,7 +99,7 @@ stdenv.mkDerivation rec {
     owner = "dnkl";
     repo = pname;
     rev = version;
-    sha256 = "15h01ijx87i60bdgjjap1ymwlxggsxc6iziykh3bahj8432s1836";
+    sha256 = "13v6xqaw3xn1x84dn4gnkiimcsllb19mrbvcdj2fnm8klnrys3gs";
   };
 
   depsBuildBuild = [
@@ -170,7 +170,13 @@ stdenv.mkDerivation rec {
     llvm-profdata merge default_*profraw --output=default.profdata
   '';
 
-  outputs = [ "out" "terminfo" ];
+  # Install example themes which can be added to foot.ini via the include
+  # directive to a separate output to save a bit of space
+  postInstall = ''
+    moveToOutput share/foot/themes "$themes"
+  '';
+
+  outputs = [ "out" "terminfo" "themes" ];
 
   passthru.tests = {
     clang-default-compilation = foot.override {
diff --git a/pkgs/applications/terminal-emulators/iterm2/default.nix b/pkgs/applications/terminal-emulators/iterm2/default.nix
index 9f157a75f93e6..4c46bcc6c3fc3 100644
--- a/pkgs/applications/terminal-emulators/iterm2/default.nix
+++ b/pkgs/applications/terminal-emulators/iterm2/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib, stdenvNoCC, fetchFromGitHub }:
 
  /*
  This derivation is impure: it relies on an Xcode toolchain being installed
@@ -8,15 +8,15 @@
  option set to `relaxed` or `false`.
  */
 
-stdenv.mkDerivation rec {
+stdenvNoCC.mkDerivation rec {
   pname = "iterm2";
-  version = "3.4.0";
+  version = "3.4.14";
 
   src = fetchFromGitHub {
     owner = "gnachman";
     repo = "iTerm2";
     rev = "v${version}";
-    sha256 = "09nhrmi25zxw3vp0wlib9kjr3p1j6am2zpwimdzqn0c80fq1lwvi";
+    sha256 = "sha256-sDCnBO7xDpecu2cSjpHwync2DVsj9EKUmgpqEVLtxRM=";
   };
 
   patches = [ ./disable_updates.patch ];
diff --git a/pkgs/applications/terminal-emulators/lxterminal/default.nix b/pkgs/applications/terminal-emulators/lxterminal/default.nix
index a62db90c9e011..25495a686834a 100644
--- a/pkgs/applications/terminal-emulators/lxterminal/default.nix
+++ b/pkgs/applications/terminal-emulators/lxterminal/default.nix
@@ -1,16 +1,16 @@
-{ lib, stdenv, fetchurl, automake, autoconf, intltool, pkg-config, gtk3, vte, wrapGAppsHook
+{ lib, stdenv, fetchFromGitHub, automake, autoconf, intltool, pkg-config, gtk3, vte, wrapGAppsHook
 , libxslt, docbook_xml_dtd_412, docbook_xsl, libxml2, findXMLCatalogs
 }:
 
-let version = "0.3.2"; in
-
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "lxterminal";
-  inherit version;
+  version = "0.3.2";
 
-  src = fetchurl {
-    url = "https://github.com/lxde/lxterminal/archive/${version}.tar.gz";
-    sha256 = "1iafqmccsm3nnzwp6pb2c04iniqqnscj83bq1rvf58ppzk0bvih3";
+  src = fetchFromGitHub {
+    owner = "lxde";
+    repo = "lxterminal";
+    rev = version;
+    sha256 = "sha256-5J21Xvx43Ie01IxB2usyixDl+WZEeFHn2HXZsRS5imo=";
   };
 
   configureFlags = [
diff --git a/pkgs/applications/terminal-emulators/roxterm/default.nix b/pkgs/applications/terminal-emulators/roxterm/default.nix
index 66c96ab879864..da9bfac952b58 100644
--- a/pkgs/applications/terminal-emulators/roxterm/default.nix
+++ b/pkgs/applications/terminal-emulators/roxterm/default.nix
@@ -1,4 +1,4 @@
-{ at-spi2-core, cmake, dbus, dbus-glib, docbook_xsl, epoxy, fetchFromGitHub
+{ at-spi2-core, cmake, dbus, dbus-glib, docbook_xsl, libepoxy, fetchFromGitHub
 , glib, gtk3, harfbuzz, libXdmcp, libXtst, libpthreadstubs
 , libselinux, libsepol, libtasn1, libxkbcommon, libxslt, p11-kit, pcre2
 , pkg-config, lib, stdenv, util-linuxMinimal, vte, wrapGAppsHook, xmlto
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ gtk3 dbus dbus-glib vte pcre2 harfbuzz libpthreadstubs libXdmcp
       util-linuxMinimal glib docbook_xsl xmlto libselinux
-      libsepol libxkbcommon epoxy at-spi2-core libXtst libtasn1 p11-kit
+      libsepol libxkbcommon libepoxy at-spi2-core libXtst libtasn1 p11-kit
     ];
 
   meta = with lib; {
diff --git a/pkgs/applications/terminal-emulators/wezterm/default.nix b/pkgs/applications/terminal-emulators/wezterm/default.nix
index 0483f5b753a20..6688b6041e099 100644
--- a/pkgs/applications/terminal-emulators/wezterm/default.nix
+++ b/pkgs/applications/terminal-emulators/wezterm/default.nix
@@ -18,7 +18,6 @@
 , xcbutilwm
 , wayland
 , zlib
-  # Apple frameworks
 , CoreGraphics
 , Cocoa
 , Foundation
@@ -27,7 +26,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wezterm";
-  version = "20210814-124438-54e29167";
+  version = "20211204-082213-a66c61ee9";
 
   outputs = [ "out" "terminfo" ];
 
@@ -36,14 +35,17 @@ rustPlatform.buildRustPackage rec {
     repo = pname;
     rev = version;
     fetchSubmodules = true;
-    sha256 = "sha256-6HXTftgAs6JMzOMCY+laN74in8xfjE8yJc5xSl9PQCE=";
+    sha256 = "sha256-QKtnOpAW4exDQEFSN0b04hA6TYuC+/C5nIYHCNzfuso=";
   };
 
   postPatch = ''
     echo ${version} > .tag
+
+    # tests are failing with: Unable to exchange encryption keys
+    rm -r wezterm-ssh/tests
   '';
 
-  cargoSha256 = "sha256-yjTrWoqIKoRV4oZQ0mfTGrIGmm89AaKJd16WL1Ozhnw=";
+  cargoSha256 = "sha256-qSThjV6oBD6joDM0Eppo7z0SL8GHV5SaCaAwXmUIT3I=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/applications/version-management/cvs-fast-export/default.nix b/pkgs/applications/version-management/cvs-fast-export/default.nix
index 7c8d8ce11bce6..70620944c2d73 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.58";
+  version = "1.59";
 
   src = fetchurl {
     url = "http://www.catb.org/~esr/cvs-fast-export/cvs-fast-export-${version}.tar.gz";
-    sha256 = "sha256-jY/GURa6WzULwpnoqBmzVQdK4WH95tf59v07y8gHeWM=";
+    sha256 = "sha256-JDnNg/VMmPJI6F07o77L4ChYDollLFB1YCL75WSp6No=";
   };
 
   strictDeps = true;
diff --git a/pkgs/applications/version-management/git-and-tools/delta/default.nix b/pkgs/applications/version-management/git-and-tools/delta/default.nix
index acf647901e995..ed01e9259f7a5 100644
--- a/pkgs/applications/version-management/git-and-tools/delta/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/delta/default.nix
@@ -3,26 +3,28 @@
 , fetchFromGitHub
 , rustPlatform
 , installShellFiles
+, DiskArbitration
+, Foundation
 , libiconv
 , Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "delta";
-  version = "0.9.2";
+  version = "0.11.3";
 
   src = fetchFromGitHub {
     owner = "dandavison";
     repo = pname;
     rev = version;
-    sha256 = "sha256-DJG8C7oSTf4YKeSVytN4pVF4qVImg1bsTYbnfkR+U94=";
+    sha256 = "sha256-qpoXUzXRcsUi1WHZAYGgnEaNxBYEQAdkXAz7YPiPae8=";
   };
 
-  cargoSha256 = "sha256-mweH+ZIcNGGmoGUhnmZzaB5y14eO/XkHqrL8Nz/b3Jg=";
+  cargoSha256 = "sha256-eds2W47+lOwO/HHKR+IjXOJOD8p1OYkk5qilDYTOUyk=";
 
   nativeBuildInputs = [ installShellFiles ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
+  buildInputs = lib.optionals stdenv.isDarwin [ DiskArbitration Foundation libiconv Security ];
 
   postInstall = ''
     installShellCompletion --bash --name delta.bash etc/completion/completion.bash
@@ -34,6 +36,6 @@ rustPlatform.buildRustPackage rec {
     description = "A syntax-highlighting pager for git";
     changelog = "https://github.com/dandavison/delta/releases/tag/${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ marsam zowoq ];
+    maintainers = with maintainers; [ marsam zowoq SuperSandro2000 ];
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/gg/default.nix b/pkgs/applications/version-management/git-and-tools/gg/default.nix
new file mode 100644
index 0000000000000..a5ea070ec0f2a
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/gg/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+, makeWrapper
+, git
+, pandoc
+}:
+
+buildGoModule rec {
+  pname = "gg-scm";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "gg-scm";
+    repo = "gg";
+    rev = "v${version}";
+    sha256 = "sha256-kLmu4h/EBbSFHrffvusKq38X3/ID9bOlLMvEUtnFGhk=";
+  };
+  patches = [ ./skip-broken-revert-tests.patch ];
+  subPackages = [ "cmd/gg" ];
+  ldflags = [
+    "-s" "-w"
+    "-X" "main.versionInfo=${version}"
+    "-X" "main.buildCommit=a0b348c9cef33fa46899f5e55e3316f382a09f6a+"
+  ];
+
+  vendorSha256 = "sha256-+ZmNXB+I6vPRbACwEkfl/vVmqoZy67Zn9SBrham5zRk=";
+
+  nativeBuildInputs = [ git pandoc installShellFiles makeWrapper ];
+  buildInputs = [ git ];
+
+  postInstall = ''
+    wrapProgram $out/bin/gg --suffix PATH : ${git}/bin
+    pandoc --standalone --to man misc/gg.1.md -o misc/gg.1
+    installManPage misc/gg.1
+    installShellCompletion --cmd gg \
+      --bash misc/gg.bash \
+      --zsh misc/_gg.zsh
+  '';
+
+  meta = with lib; {
+    mainProgram = "gg";
+    description = "Git with less typing";
+    longDescription = ''
+      gg is an alternative command-line interface for Git heavily inspired by Mercurial.
+      It's designed for less typing in common workflows,
+      making Git easier to use for both novices and advanced users alike.
+    '';
+    homepage = "https://gg-scm.io/";
+    changelog = "https://github.com/gg-scm/gg/blob/v${version}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ zombiezen ];
+  };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/gg/skip-broken-revert-tests.patch b/pkgs/applications/version-management/git-and-tools/gg/skip-broken-revert-tests.patch
new file mode 100644
index 0000000000000..f8540952ae7ca
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/gg/skip-broken-revert-tests.patch
@@ -0,0 +1,12 @@
+diff --git a/cmd/gg/revert_test.go b/cmd/gg/revert_test.go
+index 9420e9b..ff6ca93 100644
+--- a/cmd/gg/revert_test.go
++++ b/cmd/gg/revert_test.go
+@@ -592,6 +592,7 @@ func TestRevert_LocalRename(t *testing.T) {
+ }
+ 
+ func TestRevert_UnknownFile(t *testing.T) {
++	t.Skip("Broken in 1.1.0")
+ 	t.Parallel()
+ 	t.Run("EmptyRepo", func(t *testing.T) {
+ 		t.Parallel()
diff --git a/pkgs/applications/version-management/git-and-tools/gh/default.nix b/pkgs/applications/version-management/git-and-tools/gh/default.nix
index 17484ea31398a..59aba526c3fd8 100644
--- a/pkgs/applications/version-management/git-and-tools/gh/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "2.2.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-/czexUqpdsFQAteZ75ur2SFibrtZWffHpPBEPlLQXSY=";
+    sha256 = "sha256-RFKS6fHh+rX5S31MvAQpJUNgaI6loiUw0FNkdsMFqlQ=";
   };
 
-  vendorSha256 = "sha256-slMl5dCyyVNBgDbpYECfYUbpJJ7sWuSGSutYR3rTzj0=";
+  vendorSha256 = "sha256-6owFzn+NAhlHjTJEur1H5oZY87ZoptvAnF2w6kafix8=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -45,6 +45,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "GitHub CLI tool";
     homepage = "https://cli.github.com/";
+    changelog = "https://github.com/cli/cli/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ zowoq ];
   };
diff --git a/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix b/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix
index 046fcc7634113..9a4d3878e8afc 100644
--- a/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix
@@ -15,16 +15,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "git-branchless";
-  version = "0.3.7";
+  version = "0.3.8";
 
   src = fetchFromGitHub {
     owner = "arxanas";
     repo = "git-branchless";
     rev = "v${version}";
-    sha256 = "sha256-knRRjTjnhpedcQTVpJnBsrnaeRbjZ2i3aABeE0LrQ+c=";
+    sha256 = "sha256-eDVC1tvAkCioV0Mi5f/Qkc0MMTNaoFXuvWXpllZ7PgE=";
   };
 
-  cargoSha256 = "sha256-NyzsY5d4iC3zMSzmh9Qmd211oT6lmhUdvIfQdnzrtok=";
+  cargoSha256 = "sha256-wtG/WTmZ13jxIawI9j9QKQm7jPx5TUs7MjqX+lq/Vf0=";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -42,6 +42,11 @@ rustPlatform.buildRustPackage rec {
     export PATH_TO_GIT=${git}/bin/git
     export GIT_EXEC_PATH=$(${git}/bin/git --exec-path)
   '';
+  # FIXME: these tests deadlock when run in the Nix sandbox
+  checkFlags = [
+    "--skip=test_checkout_pty"
+    "--skip=test_next_ambiguous_interactive"
+  ];
 
   meta = with lib; {
     description = "A suite of tools to help you visualize, navigate, manipulate, and repair your commit history";
diff --git a/pkgs/applications/version-management/git-and-tools/git-chglog/default.nix b/pkgs/applications/version-management/git-and-tools/git-chglog/default.nix
index 143ab6cac9db5..b427acf960ec7 100644
--- a/pkgs/applications/version-management/git-and-tools/git-chglog/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-chglog/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "git-chglog";
-  version = "0.15.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "git-chglog";
     repo = "git-chglog";
     rev = "v${version}";
-    sha256 = "sha256-BiTnPCgymfpPxuy0i8u7JbpbEBeaSIJaikjwsPSA3qc=";
+    sha256 = "sha256-UlhJ004ceXpdB/9296cL2sbBYsjV8D+3YS1vmFgnko8=";
   };
 
-  vendorSha256 = "sha256-jIq+oacyT71m78iMZwWOBsBVAY/WxgyH9zRr8GiMGTU=";
+  vendorSha256 = "sha256-FLFPcmkrhZ+/UX1xpexsDv3cgC/Ocj4qTFJOX+rmdyQ=";
 
   ldflags = [ "-s" "-w" "-X=main.Version=v${version}" ];
 
diff --git a/pkgs/applications/version-management/git-and-tools/git-cliff/default.nix b/pkgs/applications/version-management/git-and-tools/git-cliff/default.nix
index 33bb73eb6348f..f88130b926aad 100644
--- a/pkgs/applications/version-management/git-and-tools/git-cliff/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-cliff/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "git-cliff";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = "git-cliff";
     rev = "v${version}";
-    sha256 = "sha256-9F15XHyFxcE48/ePwjvB7lLkw9FxoQd49G758nupRuk=";
+    sha256 = "sha256-1ScZ8pxRN/Eot/Q+HWbWOgDWBmVLjqtPeftRsNQIJEI=";
   };
 
-  cargoSha256 = "sha256-gPf4sGDbZzfzVJy+9k3FSOdJ5b8Xci1LTjIrCmP9bW8=";
+  cargoSha256 = "sha256-FMlJn/mVcrHhu3gGISb1e7D2mVAocccqXRYZnMVNPqA=";
 
   # attempts to run the program on .git in src which is not deterministic
   doCheck = false;
diff --git a/pkgs/applications/version-management/git-and-tools/git-credential-1password/default.nix b/pkgs/applications/version-management/git-and-tools/git-credential-1password/default.nix
new file mode 100644
index 0000000000000..de7f47507fbde
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/git-credential-1password/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "git-credential-1password";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "develerik";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-WMEUa0mSxmeFXQBejwxtlhWuuLKguugavRaBUVpYA3g=";
+  };
+
+  vendorSha256 = "sha256-eUjaSpmQpSOvSBW+7ajXiEDepkyvHsIiEY0RGpfnao0=";
+
+  meta = with lib; {
+    description = "A git credential helper for 1Password";
+    homepage = "https://github.com/develerik/git-credential-1password";
+    changelog = "https://github.com/develerik/git-credential-1password/releases/tag/v${version}";
+    license = licenses.isc;
+    maintainers = [ maintainers.ivankovnatsky ];
+  };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/git-delete-merged-branches/default.nix b/pkgs/applications/version-management/git-and-tools/git-delete-merged-branches/default.nix
index 3e49af5bbb9c1..c128536d34340 100644
--- a/pkgs/applications/version-management/git-and-tools/git-delete-merged-branches/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-delete-merged-branches/default.nix
@@ -13,7 +13,7 @@ python3Packages.buildPythonApplication rec {
 
   propagatedBuildInputs = with python3Packages; [
     colorama
-    clintermission
+    prompt-toolkit
   ];
 
   checkInputs = [ git ]
diff --git a/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix b/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix
deleted file mode 100644
index f5e964d3ca9a3..0000000000000
--- a/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, stdenv, fetchurl, pythonPackages }:
-
-stdenv.mkDerivation rec {
-  pname = "git-filter-repo";
-  version = "2.33.0";
-
-  src = fetchurl {
-    url = "https://github.com/newren/git-filter-repo/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-e88R2hNLvYKkFx9/soo6t7xNR4/o7Do9lYDku9wy5uk=";
-  };
-
-  buildInputs = [ pythonPackages.python ];
-
-  dontBuild = true;
-
-  installPhase = ''
-    install -Dm755 -t $out/bin git-filter-repo
-    install -Dm644 -t $out/share/man/man1 Documentation/man1/git-filter-repo.1
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/newren/git-filter-repo";
-    description = "Quickly rewrite git repository history (filter-branch replacement)";
-    license = licenses.mit;
-    inherit (pythonPackages.python.meta) platforms;
-    maintainers = [ maintainers.marsam ];
-  };
-}
diff --git a/pkgs/applications/version-management/git-and-tools/git-quickfix/default.nix b/pkgs/applications/version-management/git-and-tools/git-quickfix/default.nix
index 2b7f265019698..b8743b7ea9022 100644
--- a/pkgs/applications/version-management/git-and-tools/git-quickfix/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-quickfix/default.nix
@@ -10,13 +10,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "git-quickfix";
-  version = "0.0.4";
+  version = "0.0.5";
 
   src = fetchFromGitHub {
     owner = "siedentop";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-JdRlrNzWMPS3yG1UvKKtHVRix3buSm9jfSoAUxP35BY=";
+    sha256 = "sha256-LDA94pH5Oodf80mEENoURh+MJSg122SVWFVo9i1TEQg=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -26,7 +26,7 @@ rustPlatform.buildRustPackage rec {
     libiconv
   ];
 
-  cargoSha256 = "sha256-ENeHPhEBniR9L3J5el6QZrIS1Q4O0pNiSzJqP1aQS9Q=";
+  cargoSha256 = "sha256-QTPy0w45AawEU4fHf2FMGpL3YM+iTNnyiI4+mDJzWaE=";
 
   meta = with lib; {
     description = "Quickfix allows you to commit changes in your git repository to a new branch without leaving the current branch";
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index 521e42e845f24..073b50c4bd51c 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -1,7 +1,7 @@
 { fetchurl, lib, stdenv, buildPackages
 , curl, openssl, zlib, expat, perlPackages, python3, gettext, cpio
 , gnugrep, gnused, gawk, coreutils # needed at runtime by git-filter-branch etc
-, openssh, pcre2
+, openssh, pcre2, bash
 , asciidoc, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xml_dtd_45
 , libxslt, tcl, tk, makeWrapper, libiconv
 , svnSupport, subversionClient, perlLibs, smtpPerlLibs
@@ -25,7 +25,7 @@ assert sendEmailSupport -> perlSupport;
 assert svnSupport -> perlSupport;
 
 let
-  version = "2.33.1";
+  version = "2.34.1";
   svn = subversionClient.override { perlBindings = perlSupport; };
 
   gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    sha256 = "sha256-4FSm5sKwiL0b/19h7ZulqpHJo81QlTmktBxd3wIgHy8=";
+    sha256 = "0b40vf315s1kz65x1wq47g8srl4wqac39pwnvlj1mdzs3kfma1rs";
   };
 
   outputs = [ "out" ] ++ lib.optional withManual "doc";
@@ -73,7 +73,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ gettext perlPackages.perl makeWrapper ]
     ++ lib.optionals withManual [ asciidoc texinfo xmlto docbook2x
          docbook_xsl docbook_xml_dtd_45 libxslt ];
-  buildInputs = [curl openssl zlib expat cpio libiconv]
+  buildInputs = [ curl openssl zlib expat cpio libiconv bash ]
     ++ lib.optionals perlSupport [ perlPackages.perl ]
     ++ lib.optionals guiSupport [tcl tk]
     ++ lib.optionals withpcre2 [ pcre2 ]
@@ -84,11 +84,12 @@ stdenv.mkDerivation {
   NIX_LDFLAGS = lib.optionalString (stdenv.cc.isGNU && stdenv.hostPlatform.libc == "glibc") "-lgcc_s"
               + lib.optionalString (stdenv.isFreeBSD) "-lthr";
 
-  configureFlags = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+  configureFlags = [
+    "ac_cv_prog_CURL_CONFIG=${lib.getDev curl}/bin/curl-config"
+  ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
     "ac_cv_fread_reads_directories=yes"
     "ac_cv_snprintf_returns_bogus=no"
     "ac_cv_iconv_omits_bom=no"
-    "ac_cv_prog_CURL_CONFIG=${curl.dev}/bin/curl-config"
   ];
 
   preBuild = ''
@@ -97,8 +98,10 @@ stdenv.mkDerivation {
 
   makeFlags = [
     "prefix=\${out}"
-    "SHELL_PATH=${stdenv.shell}"
   ]
+  # Git does not allow setting a shell separately for building and run-time.
+  # Therefore lets leave it at the default /bin/sh when cross-compiling
+  ++ lib.optional (stdenv.buildPlatform == stdenv.hostPlatform) "SHELL_PATH=${stdenv.shell}"
   ++ (if perlSupport then ["PERL_PATH=${perlPackages.perl}/bin/perl"] else ["NO_PERL=1"])
   ++ (if pythonSupport then ["PYTHON_PATH=${python3}/bin/python"] else ["NO_PYTHON=1"])
   ++ lib.optionals stdenv.isSunOS ["INSTALL=install" "NO_INET_NTOP=" "NO_INET_PTON="]
@@ -115,6 +118,10 @@ stdenv.mkDerivation {
   # See https://github.com/Homebrew/homebrew-core/commit/dfa3ccf1e7d3901e371b5140b935839ba9d8b706
   ++ lib.optional stdenv.isDarwin "TKFRAMEWORK=/nonexistent";
 
+  disallowedReferences = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+    stdenv.shellPackage
+  ];
+
 
   postBuild = ''
     make -C contrib/subtree
diff --git a/pkgs/applications/version-management/git-and-tools/gitflow/default.nix b/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
index 6572b9b7fc866..ce612fcd52d31 100644
--- a/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitflow/default.nix
@@ -22,7 +22,8 @@ stdenv.mkDerivation rec {
   postInstall = ''
     wrapProgram $out/bin/git-flow \
       --set FLAGS_GETOPT_CMD ${pkgs.getopt}/bin/getopt \
-      --suffix PATH : ${pkgs.git}/bin
+      --suffix PATH : ${pkgs.git}/bin \
+      --prefix PATH : ${pkgs.coreutils}/bin
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/version-management/git-and-tools/gitin/default.nix b/pkgs/applications/version-management/git-and-tools/gitin/default.nix
deleted file mode 100644
index 3d429b7c561c5..0000000000000
--- a/pkgs/applications/version-management/git-and-tools/gitin/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib
-, buildGoPackage
-, fetchFromGitHub
-, pkg-config
-, libgit2_0_27
-}:
-
-buildGoPackage rec {
-  version = "0.2.3";
-  pname = "gitin";
-
-  goPackagePath = "github.com/isacikgoz/gitin";
-
-  src = fetchFromGitHub {
-    owner = "isacikgoz";
-    repo = "gitin";
-    rev = "v${version}";
-    sha256 = "00z6i0bjk3hdxbc0cy12ss75b41yvzyl5pm6rdrvsjhzavry2fa3";
-  };
-
-  goDeps = ./deps.nix;
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libgit2_0_27 ];
-
-  meta = with lib; {
-    homepage = "https://github.com/isacikgoz/gitin";
-    description = "Text-based user interface for git";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ kimat ];
-  };
-}
diff --git a/pkgs/applications/version-management/git-and-tools/gitin/deps.nix b/pkgs/applications/version-management/git-and-tools/gitin/deps.nix
deleted file mode 100644
index 908665693b81d..0000000000000
--- a/pkgs/applications/version-management/git-and-tools/gitin/deps.nix
+++ /dev/null
@@ -1,121 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/alecthomas/template";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/template";
-      rev = "fb15b899a75114aa79cc930e33c46b577cc664b1";
-      sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev = "f65c72e2690dc4b403c8bd637baf4611cd4c069b";
-      sha256 = "04jyqm7m3m01ppfy1f9xk4qvrwvs78q9zml6llyf2b3v5k6b2bbc";
-    };
-  }
-  {
-    goPackagePath = "github.com/fatih/color";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fatih/color";
-      rev = "daf2830f2741ebb735b21709a520c5f37d642d85";
-      sha256 = "086z8ssmr1fn9ba4mqnw7pnccfpys6l5yfhvycv1gdrsk7n27mvs";
-    };
-  }
-  {
-    goPackagePath = "github.com/isacikgoz/gia";
-    fetch = {
-      type = "git";
-      url = "https://github.com/isacikgoz/gia";
-      rev = "00556493579ec25f4e199b85ee1e2a73c98d15bb";
-      sha256 = "16nqi4z1pgybcw05wbp3qnbbq407smcr56hq7npnhkirngc5j822";
-    };
-  }
-  {
-    goPackagePath = "github.com/jroimartin/gocui";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jroimartin/gocui";
-      rev = "c055c87ae801372cd74a0839b972db4f7697ae5f";
-      sha256 = "1b1cbjg925l1c5v3ls8amni9716190yzf847cqs9wjnj82z8qa47";
-    };
-  }
-  {
-    goPackagePath = "github.com/justincampbell/timeago";
-    fetch = {
-      type = "git";
-      url = "https://github.com/justincampbell/timeago";
-      rev = "027f40306f1dbe89d24087611680ef95543bf876";
-      sha256 = "1p3va1cn9x5pyvq7k64mnvbxp5zy7h9z49syjyglixgg6avdbp1v";
-    };
-  }
-  {
-    goPackagePath = "github.com/kelseyhightower/envconfig";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kelseyhightower/envconfig";
-      rev = "0b417c4ec4a8a82eecc22a1459a504aa55163d61";
-      sha256 = "1a7b35njpqz94gbd7wvsl3wjzpd5y1fj1lrg2sdh00yq0nax1qj9";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-runewidth";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-runewidth";
-      rev = "14e809f6d78fcf9f48ff9b70981472b64c05f754";
-      sha256 = "1mvlxcdwr0vwp8b2wqs6y7hk72y28sqh03dz5x0xkg48d4y9cplj";
-    };
-  }
-  {
-    goPackagePath = "github.com/nsf/termbox-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nsf/termbox-go";
-      rev = "38ba6e5628f1d70bac606cfd210b9ad1a16c3027";
-      sha256 = "03xx5vbnavklsk6wykcc7qhmhvn2074sx0ql06b51vqsxwsa6zw2";
-    };
-  }
-  {
-    goPackagePath = "github.com/sahilm/fuzzy";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sahilm/fuzzy";
-      rev = "d88f8cb825ddd46a2ce86b60382e11645220ee33";
-      sha256 = "0nl4l02s3961p11aj1vgajfy28rqlya2z6af2xjncra59gfhqvlq";
-    };
-  }
-  {
-    goPackagePath = "github.com/waigani/diffparser";
-    fetch = {
-      type = "git";
-      url = "https://github.com/waigani/diffparser";
-      rev = "7391f219313d9175703f67561b222fd2a81bca30";
-      sha256 = "0h3y3ivlghdvkyqsh5lcidqdajhc9g7m1xqm73j9a0ayby0sx1ql";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v2";
-      rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/libgit2/git2go.v27";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/libgit2/git2go.v27";
-      rev = "6cc7d3dc6aec2781fe0239315da215f49c76e2f8";
-      sha256 = "0b2m4rjadngyd675bi1k21pyi9r91dsxngzd4mikacpd7yshgvaq";
-    };
-  }
-]
-
diff --git a/pkgs/applications/version-management/git-and-tools/gitty/default.nix b/pkgs/applications/version-management/git-and-tools/gitty/default.nix
index 45c0f2635a070..bc27c4eb90947 100644
--- a/pkgs/applications/version-management/git-and-tools/gitty/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitty/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gitty";
-  version = "0.3.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "muesli";
     repo = "gitty";
     rev = "v${version}";
-    sha256 = "1byjcvzimwn6nmhz0agicq7zq0xhkj4idi9apm1mgd3m2l509ivj";
+    sha256 = "sha256-BlYZe8bLyr6QQmBwQQ0VySHohKLRVImECxfzAOPm8Xg=";
   };
 
-  vendorSha256 = "1mbl585ja82kss5p8vli3hbykqxa00j8z63ypq6vi464qkh5x3py";
+  vendorSha256 = "sha256-LINOjjKicnr0T9RiOcSWWDl0bdY3c6EHHMTBA9LTOG4=";
 
   ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
 
diff --git a/pkgs/applications/version-management/git-and-tools/gitui/default.nix b/pkgs/applications/version-management/git-and-tools/gitui/default.nix
index b46cfb8ee8df2..24ba62a6908c4 100644
--- a/pkgs/applications/version-management/git-and-tools/gitui/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitui/default.nix
@@ -1,16 +1,16 @@
 { lib, stdenv, rustPlatform, fetchFromGitHub, libiconv, perl, python3, Security, AppKit, openssl, xclip, pkg-config }:
 rustPlatform.buildRustPackage rec {
   pname = "gitui";
-  version = "0.18.0";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = "extrawurst";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-NzE2eT3QxnbDW63Cnv6M7IlYgb2XuymphwaL1PTfcyQ=";
+    sha256 = "sha256-PNyXmXHS8StJhx6Qko7zbXrX1CX3owC1HmyX9VV7tEg=";
   };
 
-  cargoSha256 = "sha256-9SWovdjYfeneqOVl+I+tuJTIC/htC7h1tXi2KUbdYb8=";
+  cargoSha256 = "sha256-Q6QUxIe5bkoEcxZZwhJbihaHhSsX8SLqWzmjp8hFsS4=";
 
   nativeBuildInputs = [ python3 perl pkg-config ];
   buildInputs = [ openssl ]
diff --git a/pkgs/applications/version-management/git-and-tools/glitter/default.nix b/pkgs/applications/version-management/git-and-tools/glitter/default.nix
index 65f6e3912efc1..8dec11dde80c8 100644
--- a/pkgs/applications/version-management/git-and-tools/glitter/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/glitter/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "glitter";
-  version = "1.5.5";
+  version = "1.5.11";
 
   src = fetchFromGitHub {
     owner = "milo123459";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4BN2kE9PkPFnFuk2Hl2WAhbvdkiO9yg4i0422ZQhJig=";
+    sha256 = "sha256-WAQ4DwPKkATLa52GE5LZRVY0YH4nRStjPuQg7kdXRjw=";
   };
 
-  cargoSha256 = "sha256-b+xd7Uq6sVcvbILEWKRylEnfNbQkeO/T2IoWzoReEM8=";
+  cargoSha256 = "sha256-UK3gUAs+FalqboK7MuhE9kOc/Smu/EAN0BYbgg4PWns=";
 
   # tests require it to be in a git repository
   preCheck = ''
diff --git a/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix b/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix
index 6d521151bd821..87d92e72a8fec 100644
--- a/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/radicle-upstream/default.nix
@@ -2,17 +2,17 @@
 
 let
   pname = "radicle-upstream";
-  version = "0.2.10";
+  version = "0.2.12";
   name = "${pname}-${version}";
 
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://releases.radicle.xyz/radicle-upstream-${version}.AppImage";
-      sha256 = "sha256-iZC7FzYaQsCoAq/soi5g2oo/Xd2PtZgO/wR8zDgN4Fk=";
+      sha256 = "7520c7feb94234df6f8523689d098e0d19510e2ac0122e482d1e01086c9b02fe";
     };
     x86_64-darwin = fetchurl {
       url = "https://releases.radicle.xyz/radicle-upstream-${version}.dmg";
-      sha256 = "sha256-gc5OrNu7t0VJrjLQO7+7TWvEj7D51WmMJfL/KQDMgvA=";
+      sha256 = "8bbff051f169f029044e4c4965cad88f48e939b945fd5c253f0c39665a19ce44";
     };
   };
   src = srcs.${stdenv.hostPlatform.system};
diff --git a/pkgs/applications/version-management/git-and-tools/subgit/default.nix b/pkgs/applications/version-management/git-and-tools/subgit/default.nix
index 6d6a3a4f9882e..fb3b521c8df95 100644
--- a/pkgs/applications/version-management/git-and-tools/subgit/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/subgit/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "subgit";
-  version = "3.3.11";
+  version = "3.3.12";
 
   meta = {
     description = "A tool for a smooth, stress-free SVN to Git migration";
@@ -22,6 +22,6 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://subgit.com/download/subgit-${version}.zip";
-    sha256 = "sha256-ltTpmXPCIGTmVDxKc6oelMEzQWXRbIf0NESzRugaXo0=";
+    sha256 = "sha256-Mdjm7rkF/iw3HBftCgXrbFCG00g/RowFcF/oeKLyzL0=";
   };
 }
diff --git a/pkgs/applications/version-management/git-repo/default.nix b/pkgs/applications/version-management/git-repo/default.nix
index 24a78848f91b4..bc496cbbaaee5 100644
--- a/pkgs/applications/version-management/git-repo/default.nix
+++ b/pkgs/applications/version-management/git-repo/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-repo";
-  version = "2.17.3";
+  version = "2.19";
 
   src = fetchFromGitHub {
     owner = "android";
     repo = "tools_repo";
     rev = "v${version}";
-    sha256 = "sha256-ez+Egl9vvfEZbeIEx7hHmH2Lhyvl93UHRkvkHaG46RQ=";
+    sha256 = "sha256-aJnerKeZobgw3e4s7D7de7/nP6vwymLpeKnrLmPzDow=";
   };
 
   # Fix 'NameError: name 'ssl' is not defined'
diff --git a/pkgs/applications/version-management/git-review/default.nix b/pkgs/applications/version-management/git-review/default.nix
index 410d8d49e4c9c..40061baca53e7 100644
--- a/pkgs/applications/version-management/git-review/default.nix
+++ b/pkgs/applications/version-management/git-review/default.nix
@@ -1,24 +1,31 @@
 { lib
-, fetchurl
+, fetchFromGitea
 , buildPythonApplication
 , pbr
 , requests
 , setuptools
+, genericUpdater
+, common-updater-scripts
 }:
 
 buildPythonApplication rec {
   pname = "git-review";
-  version = "2.1.0";
+  version = "2.2.0";
 
   # Manually set version because prb wants to get it from the git
   # upstream repository (and we are installing from tarball instead)
   PBR_VERSION = version;
 
-  src = fetchurl {
-    url = "https://opendev.org/opendev/${pname}/archive/${version}.tar.gz";
-    hash = "sha256-3A1T+/iXhNeMS2Aww5jISoiNExdv9N9/kwyATSuwVTE=";
+  src = fetchFromGitea {
+    domain = "opendev.org";
+    owner = "opendev";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-2+X5fPxB2FIp1fwqEUc+W0gH2NjhF/V+La+maE+XEpo=";
   };
 
+  outputs = [ "out" "man" ];
+
   nativeBuildInputs = [
     pbr
   ];
@@ -35,6 +42,11 @@ buildPythonApplication rec {
 
   pythonImportsCheck = [ "git_review" ];
 
+  passthru.updateScript = genericUpdater {
+    inherit pname version;
+    versionLister = "${common-updater-scripts}/bin/list-git-tags ${src.meta.homepage}";
+  };
+
   meta = with lib; {
     description = "Tool to submit code to Gerrit";
     homepage = "https://opendev.org/opendev/git-review";
diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix
index ab84a5143d282..68cf761537074 100644
--- a/pkgs/applications/version-management/gitea/default.nix
+++ b/pkgs/applications/version-management/gitea/default.nix
@@ -16,12 +16,12 @@ with lib;
 
 buildGoPackage rec {
   pname = "gitea";
-  version = "1.15.6";
+  version = "1.15.7";
 
   # not fetching directly from the git repo, because that lacks several vendor files for the web UI
   src = fetchurl {
     url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
-    sha256 = "sha256-FMM/iQAxJcymv4jYBzaBXG0Uy8UxHh9gFWB5gzV9cn0=";
+    sha256 = "sha256-Ckg8XKCPnyp4a0kXJrqju2jAJvD4tzjomaeJxlFwYzg=";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/version-management/github-desktop/default.nix b/pkgs/applications/version-management/github-desktop/default.nix
index a13aa4ddfabdc..319fddcc06b8f 100644
--- a/pkgs/applications/version-management/github-desktop/default.nix
+++ b/pkgs/applications/version-management/github-desktop/default.nix
@@ -19,11 +19,11 @@
 
 stdenv.mkDerivation rec {
   pname = "github-desktop";
-  version = "2.9.4";
+  version = "2.9.6";
 
   src = fetchurl {
     url = "https://github.com/shiftkey/desktop/releases/download/release-${version}-linux1/GitHubDesktop-linux-${version}-linux1.deb";
-    sha256 = "sha256-CcAOATIEcrUKhVQWFr0dMvY9Q5rHWQI9/KdSEZ/ncD4=";
+    sha256 = "sha256-YL3Gc76jWfQvY96pAlS5JB7BwSOUklNvGR0tOBdQHuE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index 89a4038801163..b5372233c247c 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -11,20 +11,19 @@ with lib;
 let
   curlWithGnuTls = curl.override { gnutlsSupport = true; opensslSupport = false; };
   pname = "gitkraken";
-  version = "8.1.0";
+  version = "8.2.1";
 
   throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
 
   srcs = {
     x86_64-linux = fetchzip {
-
       url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
-      sha256 = "sha256-yC7MGTVxD8xEutlleH3WKRnendnv0KijhUwQ00wwJYQ";
+      sha256 = "sha256-FjG7htwMRLZmwH6OjjyHkGUTaVNzuMTn6BjXUnCgwAA=";
     };
 
     x86_64-darwin = fetchzip {
       url = "https://release.axocdn.com/darwin/GitKraken-v${version}.zip";
-      sha256 = "sha256-SP+LCsxjl5YNOu4rDZOiDIqkynGE+iiLJtxi8tFugKM=";
+      sha256 = "sha256-cBZ53lekhPl5yjxclg2PeMCL0NKwshkKhP/lFbEinCs=";
     };
 
     aarch64-darwin = srcs.x86_64-darwin;
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index 004560bff9958..4a1e7f46ea38d 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,14 +1,14 @@
 {
-  "version": "14.4.2",
-  "repo_hash": "0zhac96b6p7p9vpj083ajfsj5a2fwkv602zxv79cjvpd924c5ws2",
-  "yarn_hash": "0l0lgcgxaira980a1y550pfsm4f2pw97gi8s5pghyfil2v2lyxyw",
+  "version": "14.6.0",
+  "repo_hash": "0b77nh7xq5qalzhvfmsymmkrb78lmaffk464b074wi5c8gy3f5dn",
+  "yarn_hash": "1kcjbf8xn3bwac2s9i2i7dpgbkwcjh09wvgbgysm5yffpdswg6nl",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v14.4.2-ee",
+  "rev": "v14.6.0-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "14.4.2",
-    "GITLAB_PAGES_VERSION": "1.46.0",
-    "GITLAB_SHELL_VERSION": "13.21.1",
-    "GITLAB_WORKHORSE_VERSION": "14.4.2"
+    "GITALY_SERVER_VERSION": "14.6.0",
+    "GITLAB_PAGES_VERSION": "1.49.0",
+    "GITLAB_SHELL_VERSION": "13.22.1",
+    "GITLAB_WORKHORSE_VERSION": "14.6.0"
   }
 }
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile b/pkgs/applications/version-management/gitlab/gitaly/Gemfile
index 662252527f9d3..bec450d04760c 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile
@@ -1,6 +1,6 @@
 source 'https://rubygems.org'
 
-gem 'rugged', '~> 1.1'
+gem 'rugged', '~> 1.2'
 gem 'github-linguist', '~> 7.12', require: 'linguist'
 gem 'gitlab-markup', '~> 1.7.1'
 gem 'activesupport', '~> 6.1.4.1'
@@ -31,3 +31,11 @@ group :development, :test do
 
   gem 'grpc-tools', '= 1.30.2'
 end
+
+# Gems required in omnibus-gitlab pipeline
+group :development, :test, :omnibus do
+  # Using a fork until https://github.com/pivotal/LicenseFinder/pull/816 is
+  # resolved. For details, check discussion in
+  # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74881
+  gem 'gitlab-license_finder', require: false
+end
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
index 05e75a524139f..415ca4b167524 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
@@ -26,7 +26,7 @@ GEM
       memoizable (~> 0.4.0)
     addressable (2.7.0)
       public_suffix (>= 2.0.2, < 5.0)
-    ast (2.4.1)
+    ast (2.4.2)
     binding_ninja (0.2.3)
     builder (3.2.4)
     charlock_holmes (0.7.7)
@@ -73,6 +73,13 @@ GEM
       opentracing (~> 0.4)
       pg_query (~> 2.1)
       redis (> 3.0.0, < 5.0.0)
+    gitlab-license_finder (6.14.2.1)
+      bundler
+      rubyzip (>= 1, < 3)
+      thor (~> 1.0)
+      tomlrb (>= 1.3, < 2.1)
+      with_env (= 1.1.0)
+      xml-simple (~> 1.1.5)
     gitlab-markup (1.7.1)
     google-protobuf (3.17.3)
     googleapis-common-protos-types (1.1.0)
@@ -119,9 +126,9 @@ GEM
     opentracing (0.5.0)
     optimist (3.0.1)
     parallel (1.19.2)
-    parser (2.7.2.0)
+    parser (3.0.3.2)
       ast (~> 2.4.1)
-    pg_query (2.1.0)
+    pg_query (2.1.1)
       google-protobuf (>= 3.17.1)
     proc_to_ast (0.1.0)
       coderay
@@ -184,7 +191,8 @@ GEM
     rubocop-ast (0.2.0)
       parser (>= 2.7.0.1)
     ruby-progressbar (1.10.1)
-    rugged (1.1.0)
+    rubyzip (2.3.2)
+    rugged (1.2.0)
     sanitize (4.6.6)
       crass (~> 1.0.2)
       nokogiri (>= 1.4.4)
@@ -199,6 +207,7 @@ GEM
     thread_safe (0.3.6)
     thrift (0.15.0)
     timecop (0.9.1)
+    tomlrb (2.0.1)
     tzinfo (2.0.4)
       concurrent-ruby (~> 1.0)
     unicode-display_width (1.7.0)
@@ -210,6 +219,9 @@ GEM
       equalizer (~> 0.0.9)
       parser (>= 2.6.5)
       procto (~> 0.0.2)
+    with_env (1.1.0)
+    xml-simple (1.1.9)
+      rexml
     zeitwerk (2.4.2)
 
 PLATFORMS
@@ -223,6 +235,7 @@ DEPENDENCIES
   gitlab-gollum-lib (~> 4.2.7.10.gitlab.1)
   gitlab-gollum-rugged_adapter (~> 0.4.4.4.gitlab.1)
   gitlab-labkit (~> 0.21.1)
+  gitlab-license_finder
   gitlab-markup (~> 1.7.1)
   google-protobuf (~> 3.17.0)
   grpc (~> 1.30.2)
@@ -234,7 +247,7 @@ DEPENDENCIES
   rspec
   rspec-parameterized
   rubocop (~> 0.69)
-  rugged (~> 1.1)
+  rugged (~> 1.2)
   sentry-raven (~> 3.0)
   timecop
 
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 41e5908c629d3..7cfcdf7dd7461 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -4,6 +4,18 @@
 , libgit2, openssl, zlib, pcre, http-parser }:
 
 let
+  # git2go 32.0.5 does not support libgit2 1.2.0 or 1.3.0.
+  # It needs a specific commit in between those two releases.
+  libgit2_custom = libgit2.overrideAttrs (oldAttrs: rec {
+    version = "1.2.0";
+    src = fetchFromGitHub {
+      owner = "libgit2";
+      repo = "libgit2";
+      rev = "109b4c887ffb63962c7017a66fc4a1f48becb48e";
+      sha256 = "sha256-w029FHpOv5K49wE1OJMOlkTe+2cv+ORYqEHxs59GDBI=";
+    };
+  });
+
   rubyEnv = bundlerEnv rec {
     name = "gitaly-env";
     inherit ruby;
@@ -21,7 +33,7 @@ let
       };
   };
 
-  version = "14.4.2";
+  version = "14.6.0";
   gitaly_package = "gitlab.com/gitlab-org/gitaly/v${lib.versions.major version}";
 in
 
@@ -33,10 +45,10 @@ buildGoModule {
     owner = "gitlab-org";
     repo = "gitaly";
     rev = "v${version}";
-    sha256 = "sha256-MzYUSoG+HjW9o2zn6Q9Pd5NfI7hZkw1xFXOXHbbxJvo=";
+    sha256 = "sha256-YiDZtWRb1PnCAv+UCPRQFoCA12vf3xoHoJ1i/hW+vMg=";
   };
 
-  vendorSha256 = "sha256-9RhPQosen70E9t1iAoc2SeKs9pYMMpMqgXLekWfKNf8=";
+  vendorSha256 = "sha256-ZLd4E3+e25Hqmd6ZyF3X6BveMEg7OF0FX9IvNBWn3v0=";
 
   passthru = {
     inherit rubyEnv;
@@ -46,7 +58,7 @@ buildGoModule {
 
   tags = [ "static,system_libgit2" ];
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ rubyEnv.wrappedRuby libgit2 openssl zlib pcre http-parser ];
+  buildInputs = [ rubyEnv.wrappedRuby libgit2_custom openssl zlib pcre http-parser ];
   doCheck = false;
 
   postInstall = ''
@@ -60,7 +72,7 @@ buildGoModule {
   meta = with lib; {
     homepage = "https://gitlab.com/gitlab-org/gitaly";
     description = "A Git RPC service for handling all the git calls made by GitLab";
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ [ "x86_64-darwin" ];
     maintainers = with maintainers; [ roblabla globin fpletz talyz ];
     license = licenses.mit;
   };
diff --git a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
index 4aad9394cd6e6..5e9efe0a8245e 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
@@ -65,10 +65,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l3468czzjmxl93ap40hp7z94yxp4nbag0bxqs789bm30md90m2a";
+      sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
       type = "gem";
     };
-    version = "2.4.1";
+    version = "2.4.2";
   };
   binding_ninja = {
     groups = ["default" "development" "test"];
@@ -274,6 +274,17 @@
     };
     version = "0.21.2";
   };
+  gitlab-license_finder = {
+    dependencies = ["rubyzip" "thor" "tomlrb" "with_env" "xml-simple"];
+    groups = ["development" "omnibus" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fzrv96kbzyqnsdj762x7n0y006rsgsi8k23nad4xsa43d065i71";
+      type = "gem";
+    };
+    version = "6.14.2.1";
+  };
   gitlab-markup = {
     groups = ["default"];
     platforms = [];
@@ -543,10 +554,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f7gmm60yla325wlnd3qkxs59qm2y0aan8ljpg6k18rwzrrfil6z";
+      sha256 = "0sszdl9mpzqzn9kxrp28sqmg47mjxcwypr4d60vbajqba4v885di";
       type = "gem";
     };
-    version = "2.7.2.0";
+    version = "3.0.3.2";
   };
   pg_query = {
     dependencies = ["google-protobuf"];
@@ -554,10 +565,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12dibsqndfnckc24yryy8v467rxp7p80jx21jhm8z7swp8118jhx";
+      sha256 = "0cf1b97nznl6adkx25j2x96sq8xx2b4fpic230fx65k3vqqn8a4r";
       type = "gem";
     };
-    version = "2.1.0";
+    version = "2.1.1";
   };
   proc_to_ast = {
     dependencies = ["coderay" "parser" "unparser"];
@@ -825,15 +836,25 @@
     };
     version = "1.10.1";
   };
+  rubyzip = {
+    groups = ["default" "development" "omnibus" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz";
+      type = "gem";
+    };
+    version = "2.3.2";
+  };
   rugged = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04aq913plcxjw71l5r62qgz3bx3466p0wvgyfqahg5n3nybmcwqy";
+      sha256 = "1v846qs2pa3wnzgz95jzbcdrgl9vyjl65qiscw4q4dvm5sb7j68i";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.0";
   };
   sanitize = {
     dependencies = ["crass" "nokogiri" "nokogumbo"];
@@ -912,6 +933,16 @@
     };
     version = "0.9.1";
   };
+  tomlrb = {
+    groups = ["default" "development" "omnibus" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0a83cb5xpyzlr651d46rk5xgq37s46hs9nfqy9baawzs31hm9k2g";
+      type = "gem";
+    };
+    version = "2.0.1";
+  };
   tzinfo = {
     dependencies = ["concurrent-ruby"];
     groups = ["default" "development" "test"];
@@ -944,6 +975,27 @@
     };
     version = "0.4.7";
   };
+  with_env = {
+    groups = ["default" "development" "omnibus" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r5ns064mbb99hf1dyxsk9183hznc5i7mn3bi86zka6dlvqf9csh";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  xml-simple = {
+    dependencies = ["rexml"];
+    groups = ["default" "development" "omnibus" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pb9plyl71mdbjr4kllfy53qx6g68ryxblmnq9dilvy837jk24fj";
+      type = "gem";
+    };
+    version = "1.1.9";
+  };
   zeitwerk = {
     groups = ["default" "development" "test"];
     platforms = [];
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
index 2ffc52f3b12c3..f1df035ca2833 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -2,12 +2,12 @@
 
 buildGoModule rec {
   pname = "gitlab-shell";
-  version = "13.21.1";
+  version = "13.22.1";
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-shell";
     rev = "v${version}";
-    sha256 = "sha256-FBkxJLl58ZbqM1P4LohsozGiKg38gQwVGOV9AAjVE0M=";
+    sha256 = "sha256-uqdKiBZ290mG0JNi17EjimfES6bN3q1hF6LXs3URTZ8=";
   };
 
   buildInputs = [ ruby ];
diff --git a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index eaae6eacf44fc..fd8bdd2aef17d 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 = "14.4.2";
+  version = "14.6.0";
 
   src = fetchFromGitLab {
     owner = data.owner;
@@ -16,7 +16,7 @@ buildGoModule rec {
 
   sourceRoot = "source/workhorse";
 
-  vendorSha256 = "sha256-yLZY9FFUS4nJl4TkE6MwICCEwtPTXFc5zuj4FgiIy74=";
+  vendorSha256 = "sha256-ps/MjNY2woHrfcsNZTurnO2TbasWdS3LiuPUfVD2Ypc=";
   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 0713560ead891..a28a05536ffcc 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -4,7 +4,7 @@ source 'https://rubygems.org'
 
 gem 'rails', '~> 6.1.4.1'
 
-gem 'bootsnap', '~> 1.4.6'
+gem 'bootsnap', '~> 1.9.1', require: false
 
 # Responders respond_to and respond_with
 gem 'responders', '~> 3.0'
@@ -17,14 +17,14 @@ gem 'default_value_for', '~> 3.4.0'
 # Supported DBs
 gem 'pg', '~> 1.1'
 
-gem 'rugged', '~> 1.1'
+gem 'rugged', '~> 1.2'
 gem 'grape-path-helpers', '~> 1.7.0'
 
 gem 'faraday', '~> 1.0'
 gem 'marginalia', '~> 1.10.0'
 
 # Authorization
-gem 'declarative_policy', '~> 1.0.0'
+gem 'declarative_policy', '~> 1.1.0'
 
 # Authentication libraries
 gem 'devise', '~> 4.7.2'
@@ -38,6 +38,7 @@ gem 'omniauth-auth0', '~> 2.0.0'
 gem 'omniauth-azure-activedirectory-v2', '~> 1.0'
 gem 'omniauth-azure-oauth2', '~> 0.0.9' # Deprecated v1 version
 gem 'omniauth-cas3', '~> 1.1.4'
+gem 'omniauth-dingtalk-oauth2', '~> 1.0'
 gem 'omniauth-facebook', '~> 4.0.0'
 gem 'omniauth-github', '~> 1.4'
 gem 'omniauth-gitlab', '~> 1.0.2'
@@ -96,7 +97,7 @@ gem 'grape-entity', '~> 0.10.0'
 gem 'rack-cors', '~> 1.0.6', require: 'rack/cors'
 
 # GraphQL API
-gem 'graphql', '~> 1.11.8'
+gem 'graphql', '~> 1.11.10'
 # NOTE: graphiql-rails v1.5+ doesn't work: https://gitlab.com/gitlab-org/gitlab/issues/31771
 # TODO: remove app/views/graphiql/rails/editors/show.html.erb when https://github.com/rmosolgo/graphiql-rails/pull/71 is released:
 # https://gitlab.com/gitlab-org/gitlab/issues/31747
@@ -129,7 +130,7 @@ gem 'fog-local', '~> 0.6'
 gem 'fog-openstack', '~> 1.0'
 gem 'fog-rackspace', '~> 0.1.1'
 gem 'fog-aliyun', '~> 0.3'
-gem 'gitlab-fog-azure-rm', '~> 1.2.0', require: false
+gem 'gitlab-fog-azure-rm', '~> 1.2.0', require: 'fog/azurerm'
 
 # for Google storage
 gem 'google-api-client', '~> 0.33'
@@ -152,7 +153,7 @@ gem 'faraday_middleware-aws-sigv4', '~>0.3.0'
 # Markdown and HTML processing
 gem 'html-pipeline', '~> 2.13.2'
 gem 'deckar01-task_list', '2.3.1'
-gem 'gitlab-markup', '~> 1.7.1'
+gem 'gitlab-markup', '~> 1.8.0'
 gem 'github-markup', '~> 1.7.0', require: 'github/markup'
 gem 'commonmarker', '~> 0.23.2'
 gem 'kramdown', '~> 2.3.1'
@@ -184,18 +185,19 @@ gem 'rack', '~> 2.2.3'
 gem 'rack-timeout', '~> 0.5.1', require: 'rack/timeout/base'
 
 group :puma do
-  gem 'puma', '~> 5.3.1', require: false
+  gem 'puma', '~> 5.5.2', require: false
   gem 'puma_worker_killer', '~> 0.3.1', require: false
+  gem 'sd_notify', '~> 0.1.0', require: false
 end
 
 # State machine
 gem 'state_machines-activerecord', '~> 0.8.0'
 
 # Issue tags
-gem 'acts-as-taggable-on', '~> 7.0'
+gem 'acts-as-taggable-on', '~> 8.1'
 
 # Background jobs
-gem 'sidekiq', '~> 6.2.2'
+gem 'sidekiq', '~> 6.3'
 gem 'sidekiq-cron', '~> 1.0'
 gem 'redis-namespace', '~> 1.8.1'
 gem 'gitlab-sidekiq-fetcher', '0.8.0', require: 'sidekiq-reliable-fetch'
@@ -290,7 +292,7 @@ gem 'autoprefixer-rails', '10.2.5.1'
 gem 'terser', '1.0.2'
 
 gem 'addressable', '~> 2.8'
-gem 'gemojione', '~> 3.3'
+gem 'tanuki_emoji', '~> 0.5'
 gem 'gon', '~> 6.4.0'
 gem 'request_store', '~> 1.5'
 gem 'base32', '~> 0.3.0'
@@ -341,13 +343,15 @@ group :development do
   gem 'lefthook', '~> 0.7.0', require: false
   gem 'solargraph', '~> 0.43', require: false
 
-  gem 'letter_opener_web', '~> 1.4.1'
+  gem 'letter_opener_web', '~> 2.0.0'
 
   # Better errors handler
   gem 'better_errors', '~> 2.9.0'
 
   # thin instead webrick
   gem 'thin', '~> 1.8.0'
+
+  gem 'sprite-factory', '~> 1.7'
 end
 
 group :development, :test do
@@ -372,7 +376,7 @@ group :development, :test do
   gem 'spring', '~> 2.1.0'
   gem 'spring-commands-rspec', '~> 1.0.4'
 
-  gem 'gitlab-styles', '~> 6.3.0', require: false
+  gem 'gitlab-styles', '~> 6.6.0', require: false
 
   gem 'haml_lint', '~> 0.36.0', require: false
   gem 'bundler-audit', '~> 0.7.0.1', require: false
@@ -396,17 +400,22 @@ group :development, :test do
 end
 
 group :development, :test, :danger do
-  gem 'gitlab-dangerfiles', '~> 2.3.0', require: false
+  gem 'gitlab-dangerfiles', '~> 2.6.1', require: false
 end
 
 group :development, :test, :coverage do
   gem 'simplecov', '~> 0.18.5', require: false
+  gem 'simplecov-lcov', '~> 0.8.0', require: false
   gem 'simplecov-cobertura', '~> 1.3.1', require: false
+  gem 'undercover', '~> 0.4.4', require: false
 end
 
 # Gems required in omnibus-gitlab pipeline
 group :development, :test, :omnibus do
-  gem 'license_finder', '~> 6.0', require: false
+  # Using a fork until https://github.com/pivotal/LicenseFinder/pull/816 is
+  # resolved. For details, check discussion in
+  # https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74881
+  gem 'gitlab-license_finder', '~> 6.0', require: false
 end
 
 group :test do
@@ -455,7 +464,7 @@ gem 'health_check', '~> 3.0'
 
 # System information
 gem 'vmstat', '~> 2.3.0'
-gem 'sys-filesystem', '~> 1.1.6'
+gem 'sys-filesystem', '~> 1.4.3'
 
 # NTP client
 gem 'net-ntp'
@@ -467,14 +476,14 @@ gem 'sshkey', '~> 2.0'
 # Required for ED25519 SSH host key support
 group :ed25519 do
   gem 'ed25519', '~> 1.2'
-  gem 'bcrypt_pbkdf', '~> 1.0'
+  gem 'bcrypt_pbkdf', '~> 1.1'
 end
 
 # Spamcheck GRPC protocol definitions
 gem 'spamcheck', '~> 0.1.0'
 
 # Gitaly GRPC protocol definitions
-gem 'gitaly', '~> 14.3.0.pre.rc2'
+gem 'gitaly', '~> 14.4.0.pre.rc43'
 
 # KAS GRPC protocol definitions
 gem 'kas-grpc', '~> 0.0.2'
@@ -490,7 +499,7 @@ gem 'flipper', '~> 0.21.0'
 gem 'flipper-active_record', '~> 0.21.0'
 gem 'flipper-active_support_cache_store', '~> 0.21.0'
 gem 'unleash', '~> 3.2.2'
-gem 'gitlab-experiment', '~> 0.6.4'
+gem 'gitlab-experiment', '~> 0.6.5'
 
 # Structured logging
 gem 'lograge', '~> 0.5'
@@ -535,4 +544,4 @@ gem 'ipaddress', '~> 0.8.3'
 
 gem 'parslet', '~> 1.8'
 
-gem 'sd_notify'
+gem 'ipynbdiff', '0.3.8'
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 8a135d809ba17..3bfd392abaf91 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -66,7 +66,7 @@ GEM
       minitest (>= 5.1)
       tzinfo (~> 2.0)
       zeitwerk (~> 2.3)
-    acts-as-taggable-on (7.0.0)
+    acts-as-taggable-on (8.1.0)
       activerecord (>= 5.0, < 6.2)
     addressable (2.8.0)
       public_suffix (>= 2.0.2, < 5.0)
@@ -130,7 +130,7 @@ GEM
     base32 (0.3.2)
     batch-loader (2.0.1)
     bcrypt (3.1.16)
-    bcrypt_pbkdf (1.0.0)
+    bcrypt_pbkdf (1.1.0)
     benchmark (0.1.1)
     benchmark-ips (2.3.0)
     benchmark-memory (0.1.2)
@@ -141,7 +141,7 @@ GEM
       rack (>= 0.9.0)
     bindata (2.4.10)
     binding_ninja (0.2.3)
-    bootsnap (1.4.6)
+    bootsnap (1.9.1)
       msgpack (~> 1.0)
     bootstrap_form (4.2.0)
       actionpack (>= 5.0)
@@ -215,7 +215,7 @@ GEM
     css_parser (1.7.0)
       addressable
     daemons (1.3.1)
-    danger (8.3.1)
+    danger (8.4.2)
       claide (~> 1.0)
       claide-plugins (>= 0.9.2)
       colored2 (~> 3.1)
@@ -237,7 +237,7 @@ GEM
       html-pipeline
     declarative (0.0.20)
     declarative-option (0.1.0)
-    declarative_policy (1.0.0)
+    declarative_policy (1.1.0)
     default_value_for (3.4.0)
       activerecord (>= 3.2.0, < 7.0)
     deprecation_toolkit (1.5.1)
@@ -429,8 +429,6 @@ GEM
       ruby-progressbar (~> 1.4)
     fuzzyurl (0.9.0)
     gemoji (3.0.1)
-    gemojione (3.3.0)
-      json
     get_process_mem (0.2.5)
       ffi (~> 1.0)
     gettext (3.3.6)
@@ -445,7 +443,7 @@ GEM
       rails (>= 3.2.0)
     git (1.7.0)
       rchardet (~> 1.8)
-    gitaly (14.3.0.pre.rc2)
+    gitaly (14.4.0.pre.rc43)
       grpc (~> 1.0)
     github-markup (1.7.0)
     gitlab (4.16.1)
@@ -453,10 +451,10 @@ GEM
       terminal-table (~> 1.5, >= 1.5.1)
     gitlab-chronic (0.10.5)
       numerizer (~> 0.2)
-    gitlab-dangerfiles (2.3.0)
+    gitlab-dangerfiles (2.6.1)
       danger (>= 8.3.1)
       danger-gitlab (>= 8.0.0)
-    gitlab-experiment (0.6.4)
+    gitlab-experiment (0.6.5)
       activesupport (>= 3.0)
       request_store (>= 1.0)
       scientist (~> 1.6, >= 1.6.0)
@@ -476,8 +474,15 @@ GEM
       pg_query (~> 2.1)
       redis (> 3.0.0, < 5.0.0)
     gitlab-license (2.0.0)
+    gitlab-license_finder (6.14.2.1)
+      bundler
+      rubyzip (>= 1, < 3)
+      thor (~> 1.0)
+      tomlrb (>= 1.3, < 2.1)
+      with_env (= 1.1.0)
+      xml-simple (~> 1.1.5)
     gitlab-mail_room (0.0.9)
-    gitlab-markup (1.7.1)
+    gitlab-markup (1.8.0)
     gitlab-net-dns (0.9.1)
     gitlab-omniauth-openid-connect (0.8.0)
       addressable (~> 2.7)
@@ -485,9 +490,10 @@ GEM
       openid_connect (~> 1.2)
     gitlab-sidekiq-fetcher (0.8.0)
       sidekiq (~> 6.1)
-    gitlab-styles (6.3.0)
+    gitlab-styles (6.6.0)
       rubocop (~> 0.91, >= 0.91.1)
       rubocop-gitlab-security (~> 0.1.1)
+      rubocop-graphql (~> 0.10)
       rubocop-performance (~> 1.9.2)
       rubocop-rails (~> 2.9)
       rubocop-rspec (~> 1.44)
@@ -553,7 +559,7 @@ GEM
       faraday (>= 1.0)
       faraday_middleware
       graphql-client
-    graphql (1.11.8)
+    graphql (1.11.10)
     graphql-client (0.16.0)
       activesupport (>= 3.0)
       graphql (~> 1.8)
@@ -628,13 +634,18 @@ GEM
       mime-types (~> 3.0)
       multi_xml (>= 0.5.2)
     httpclient (2.8.3)
-    i18n (1.8.10)
+    i18n (1.8.11)
       concurrent-ruby (~> 1.0)
     i18n_data (0.8.0)
     icalendar (2.4.1)
+    imagen (0.1.8)
+      parser (>= 2.5, != 2.5.1.1)
     invisible_captcha (1.1.0)
       rails (>= 4.2)
     ipaddress (0.8.3)
+    ipynbdiff (0.3.8)
+      diffy (= 3.3.0)
+      json (= 2.5.1)
     jaeger-client (1.1.0)
       opentracing (~> 0.3)
       thrift
@@ -692,18 +703,12 @@ GEM
     lefthook (0.7.5)
     letter_opener (1.7.0)
       launchy (~> 2.2)
-    letter_opener_web (1.4.1)
-      actionmailer (>= 3.2)
-      letter_opener (~> 1.0)
-      railties (>= 3.2)
+    letter_opener_web (2.0.0)
+      actionmailer (>= 5.2)
+      letter_opener (~> 1.7)
+      railties (>= 5.2)
+      rexml
     libyajl2 (1.2.0)
-    license_finder (6.0.0)
-      bundler
-      rubyzip (>= 1, < 3)
-      thor
-      toml (= 0.2.0)
-      with_env (= 1.1.0)
-      xml-simple
     licensee (9.14.1)
       dotenv (~> 2.0)
       octokit (~> 4.17)
@@ -832,6 +837,8 @@ GEM
       addressable (~> 2.3)
       nokogiri (~> 1.7, >= 1.7.1)
       omniauth (~> 1.2)
+    omniauth-dingtalk-oauth2 (1.0.0)
+      omniauth-oauth2 (~> 1.7.1)
     omniauth-facebook (4.0.0)
       omniauth-oauth2 (~> 1.2)
     omniauth-github (1.4.0)
@@ -852,7 +859,7 @@ GEM
     omniauth-oauth (1.1.0)
       oauth
       omniauth (~> 1.0)
-    omniauth-oauth2 (1.7.1)
+    omniauth-oauth2 (1.7.2)
       oauth2 (~> 1.4)
       omniauth (>= 1.9, < 3)
     omniauth-oauth2-generic (0.2.2)
@@ -892,7 +899,7 @@ GEM
     orm_adapter (0.5.0)
     os (1.1.1)
     parallel (1.20.1)
-    parser (3.0.2.0)
+    parser (3.0.3.2)
       ast (~> 2.4.1)
     parslet (1.8.2)
     pastel (0.8.0)
@@ -931,7 +938,7 @@ GEM
       tty-markdown
       tty-prompt
     public_suffix (4.0.6)
-    puma (5.3.2)
+    puma (5.5.2)
       nio4r (~> 2.0)
     puma_worker_killer (0.3.1)
       get_process_mem (~> 0.2)
@@ -1096,6 +1103,8 @@ GEM
       parser (>= 2.7.1.5)
     rubocop-gitlab-security (0.1.1)
       rubocop (>= 0.51)
+    rubocop-graphql (0.10.3)
+      rubocop (>= 0.87, < 2)
     rubocop-performance (1.9.2)
       rubocop (>= 0.90.0, < 2.0)
       rubocop-ast (>= 0.4.0)
@@ -1122,7 +1131,7 @@ GEM
     rubyntlm (0.6.2)
     rubypants (0.2.0)
     rubyzip (2.0.0)
-    rugged (1.1.0)
+    rugged (1.2.0)
     safe_yaml (1.0.4)
     safety_net_attestation (0.4.0)
       jwt (~> 2.0)
@@ -1147,8 +1156,8 @@ GEM
     sawyer (0.8.2)
       addressable (>= 2.3.5)
       faraday (> 0.8, < 2.0)
-    scientist (1.6.0)
-    sd_notify (0.1.1)
+    scientist (1.6.2)
+    sd_notify (0.1.0)
     securecompare (1.0.0)
     seed-fu (2.3.7)
       activerecord (>= 3.1)
@@ -1164,7 +1173,7 @@ GEM
     shellany (0.0.1)
     shoulda-matchers (4.0.1)
       activesupport (>= 4.2.0)
-    sidekiq (6.2.2)
+    sidekiq (6.3.1)
       connection_pool (>= 2.2.2)
       rack (~> 2.0)
       redis (>= 4.2.0)
@@ -1183,6 +1192,7 @@ GEM
     simplecov-cobertura (1.3.1)
       simplecov (~> 0.8)
     simplecov-html (0.12.3)
+    simplecov-lcov (0.8.0)
     sixarm_ruby_unaccent (1.2.0)
     slack-messenger (2.3.4)
     snowplow-tracker (0.6.1)
@@ -1210,6 +1220,7 @@ GEM
     spring (2.1.1)
     spring-commands-rspec (1.0.4)
       spring (>= 0.9.1)
+    sprite-factory (1.7.1)
     sprockets (3.7.2)
       concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
@@ -1237,9 +1248,10 @@ GEM
       activesupport (>= 3)
       attr_required (>= 0.0.5)
       httpclient (>= 2.4)
-    sys-filesystem (1.1.9)
-      ffi
+    sys-filesystem (1.4.3)
+      ffi (~> 1.1)
     sysexits (1.2.0)
+    tanuki_emoji (0.5.0)
     temple (0.8.2)
     terminal-table (1.8.0)
       unicode-display_width (~> 1.1, >= 1.1.1)
@@ -1259,8 +1271,6 @@ GEM
     timecop (0.9.1)
     timeliness (0.3.10)
     timfel-krb5-auth (0.8.3)
-    toml (0.2.0)
-      parslet (~> 1.8.0)
     toml-rb (2.0.1)
       citrus (~> 3.0, > 3.0)
     tomlrb (1.3.0)
@@ -1298,6 +1308,10 @@ GEM
       concurrent-ruby (~> 1.0)
     u2f (0.2.1)
     uber (0.1.0)
+    undercover (0.4.4)
+      imagen (>= 0.1.8)
+      rainbow (>= 2.1, < 4.0)
+      rugged (>= 0.27, < 1.3)
     unf (0.1.4)
       unf_ext
     unf_ext (0.0.7.7)
@@ -1360,7 +1374,7 @@ GEM
       nokogiri (~> 1.8)
     yajl-ruby (1.4.1)
     yard (0.9.26)
-    zeitwerk (2.4.2)
+    zeitwerk (2.5.1)
 
 PLATFORMS
   ruby
@@ -1369,7 +1383,7 @@ DEPENDENCIES
   RedCloth (~> 4.3.2)
   acme-client (~> 2.0, >= 2.0.6)
   activerecord-explain-analyze (~> 0.1)
-  acts-as-taggable-on (~> 7.0)
+  acts-as-taggable-on (~> 8.1)
   addressable (~> 2.8)
   akismet (~> 3.0)
   apollo_upload_server (~> 2.1.0)
@@ -1389,11 +1403,11 @@ DEPENDENCIES
   base32 (~> 0.3.0)
   batch-loader (~> 2.0.1)
   bcrypt (~> 3.1, >= 3.1.14)
-  bcrypt_pbkdf (~> 1.0)
+  bcrypt_pbkdf (~> 1.1)
   benchmark-ips (~> 2.3.0)
   benchmark-memory (~> 0.1)
   better_errors (~> 2.9.0)
-  bootsnap (~> 1.4.6)
+  bootsnap (~> 1.9.1)
   bootstrap_form (~> 4.2.0)
   browser (~> 4.2)
   bullet (~> 6.1.3)
@@ -1410,7 +1424,7 @@ DEPENDENCIES
   crystalball (~> 0.7.0)
   database_cleaner (~> 1.7.0)
   deckar01-task_list (= 2.3.1)
-  declarative_policy (~> 1.0.0)
+  declarative_policy (~> 1.1.0)
   default_value_for (~> 3.4.0)
   deprecation_toolkit (~> 1.5.1)
   derailed_benchmarks
@@ -1448,24 +1462,24 @@ DEPENDENCIES
   fog-rackspace (~> 0.1.1)
   fugit (~> 1.2.1)
   fuubar (~> 2.2.0)
-  gemojione (~> 3.3)
   gettext (~> 3.3)
   gettext_i18n_rails (~> 1.8.0)
   gettext_i18n_rails_js (~> 1.3)
-  gitaly (~> 14.3.0.pre.rc2)
+  gitaly (~> 14.4.0.pre.rc43)
   github-markup (~> 1.7.0)
   gitlab-chronic (~> 0.10.5)
-  gitlab-dangerfiles (~> 2.3.0)
-  gitlab-experiment (~> 0.6.4)
+  gitlab-dangerfiles (~> 2.6.1)
+  gitlab-experiment (~> 0.6.5)
   gitlab-fog-azure-rm (~> 1.2.0)
   gitlab-labkit (~> 0.21.1)
   gitlab-license (~> 2.0)
+  gitlab-license_finder (~> 6.0)
   gitlab-mail_room (~> 0.0.9)
-  gitlab-markup (~> 1.7.1)
+  gitlab-markup (~> 1.8.0)
   gitlab-net-dns (~> 0.9.1)
   gitlab-omniauth-openid-connect (~> 0.8.0)
   gitlab-sidekiq-fetcher (= 0.8.0)
-  gitlab-styles (~> 6.3.0)
+  gitlab-styles (~> 6.6.0)
   gitlab_chronic_duration (~> 0.10.6.2)
   gitlab_omniauth-ldap (~> 2.1.1)
   gon (~> 6.4.0)
@@ -1478,7 +1492,7 @@ DEPENDENCIES
   grape_logging (~> 1.7)
   graphiql-rails (~> 1.4.10)
   graphlient (~> 0.4.0)
-  graphql (~> 1.11.8)
+  graphql (~> 1.11.10)
   graphql-docs (~> 1.6.0)
   grpc (~> 1.30.2)
   gssapi
@@ -1495,6 +1509,7 @@ DEPENDENCIES
   icalendar
   invisible_captcha (~> 1.1.0)
   ipaddress (~> 0.8.3)
+  ipynbdiff (= 0.3.8)
   jira-ruby (~> 2.1.4)
   js_regex (~> 3.7)
   json (~> 2.5.1)
@@ -1506,8 +1521,7 @@ DEPENDENCIES
   kramdown (~> 2.3.1)
   kubeclient (~> 4.9.2)
   lefthook (~> 0.7.0)
-  letter_opener_web (~> 1.4.1)
-  license_finder (~> 6.0)
+  letter_opener_web (~> 2.0.0)
   licensee (~> 9.14.1)
   lockbox (~> 0.6.2)
   lograge (~> 0.5)
@@ -1535,6 +1549,7 @@ DEPENDENCIES
   omniauth-azure-activedirectory-v2 (~> 1.0)
   omniauth-azure-oauth2 (~> 0.0.9)
   omniauth-cas3 (~> 1.1.4)
+  omniauth-dingtalk-oauth2 (~> 1.0)
   omniauth-facebook (~> 4.0.0)
   omniauth-github (~> 1.4)
   omniauth-gitlab (~> 1.0.2)
@@ -1558,7 +1573,7 @@ DEPENDENCIES
   pry-byebug
   pry-rails (~> 0.3.9)
   pry-shell (~> 0.5.0)
-  puma (~> 5.3.1)
+  puma (~> 5.5.2)
   puma_worker_killer (~> 0.3.1)
   rack (~> 2.2.3)
   rack-attack (~> 6.3.0)
@@ -1596,31 +1611,34 @@ DEPENDENCIES
   ruby-saml (~> 1.13.0)
   ruby_parser (~> 3.15)
   rubyzip (~> 2.0.0)
-  rugged (~> 1.1)
+  rugged (~> 1.2)
   sanitize (~> 5.2.1)
   sassc-rails (~> 2.1.0)
-  sd_notify
+  sd_notify (~> 0.1.0)
   seed-fu (~> 2.3.7)
   selenium-webdriver (~> 3.142)
   sentry-raven (~> 3.1)
   settingslogic (~> 2.0.9)
   shoulda-matchers (~> 4.0.1)
-  sidekiq (~> 6.2.2)
+  sidekiq (~> 6.3)
   sidekiq-cron (~> 1.0)
   simple_po_parser (~> 1.1.2)
   simplecov (~> 0.18.5)
   simplecov-cobertura (~> 1.3.1)
+  simplecov-lcov (~> 0.8.0)
   slack-messenger (~> 2.3.4)
   snowplow-tracker (~> 0.6.1)
   solargraph (~> 0.43)
   spamcheck (~> 0.1.0)
   spring (~> 2.1.0)
   spring-commands-rspec (~> 1.0.4)
+  sprite-factory (~> 1.7)
   sprockets (~> 3.7.0)
   sshkey (~> 2.0)
   stackprof (~> 0.2.15)
   state_machines-activerecord (~> 0.8.0)
-  sys-filesystem (~> 1.1.6)
+  sys-filesystem (~> 1.4.3)
+  tanuki_emoji (~> 0.5)
   terser (= 1.0.2)
   test-prof (~> 1.0.7)
   test_file_finder (~> 0.1.3)
@@ -1630,6 +1648,7 @@ DEPENDENCIES
   toml-rb (~> 2.0)
   truncato (~> 0.7.11)
   u2f (~> 0.2.1)
+  undercover (~> 0.4.4)
   unf (~> 0.1.4)
   unleash (~> 3.2.2)
   valid_email (~> 0.1)
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index 2c1f53c0b3ac5..3ee8ea0512bdd 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -148,10 +148,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09m7lvm6id8mm8y9qycjr54l9gyqfb43x6yjz23cggisjg0px1fv";
+      sha256 = "0kfnyix173bazjswab21bx7hmqmik71awj2kz090fsa2nv58c4mw";
       type = "gem";
     };
-    version = "7.0.0";
+    version = "8.1.0";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -484,10 +484,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cj4k13c7qvvck7y25i3xarvyqq8d27vl61jddifkc7llnnap1hv";
+      sha256 = "0ndamfaivnkhc6hy0yqyk2gkwr6f3bz6216lh74hsiiyk3axz445";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.1.0";
   };
   benchmark = {
     groups = ["default" "development"];
@@ -557,10 +557,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bz62p9vc7lcrmzhiz4pf7myww086mq287cw3jjj7fyc7jhmamw0";
+      sha256 = "1ndjra3h86dq28njm2swmaw6n3vsywrycrf7i5iy9l8hrhfhv4x2";
       type = "gem";
     };
-    version = "1.4.6";
+    version = "1.9.1";
   };
   bootstrap_form = {
     dependencies = ["actionpack" "activemodel"];
@@ -931,10 +931,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12nmycrlwr8ca2s0fx76k81gjw12iz15k1n0qanszv5d4l1ykj2l";
+      sha256 = "07mxkgksgilfipd97rgfhx7c421j1fx7rk6lf0k18bkccyg1r8vn";
       type = "gem";
     };
-    version = "8.3.1";
+    version = "8.4.2";
   };
   danger-gitlab = {
     dependencies = ["danger" "gitlab"];
@@ -1007,10 +1007,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k2wl0jr0jq64gy7ibb1ipm2dzqil7y66vyffwx81g7sqchh7xh6";
+      sha256 = "1jri6fqpyrlnhl99mhqlqwpi6z8idb7g421rysxz40yyk8lwzx4s";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.1.0";
   };
   default_value_for = {
     dependencies = ["activerecord"];
@@ -1838,17 +1838,6 @@
     };
     version = "3.0.1";
   };
-  gemojione = {
-    dependencies = ["json"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0ayk8r147k1s38nj18pwk76npx1p7jhi86silk800nj913pjvrhj";
-      type = "gem";
-    };
-    version = "3.3.0";
-  };
   get_process_mem = {
     dependencies = ["ffi"];
     groups = ["default" "puma" "unicorn"];
@@ -1910,10 +1899,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "197db842msm326ib8r3gqlavf5d11r4cd9jg4wjnyar3ccyr9dn7";
+      sha256 = "022amhic8rs09qmp3hy1zz5inxbxnrvg8j82bq4l2s8ml9hqfs3a";
       type = "gem";
     };
-    version = "14.3.0.pre.rc2";
+    version = "14.4.0.pre.rc43";
   };
   github-markup = {
     groups = ["default"];
@@ -1953,10 +1942,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07ckvf7vk0494s70ql7zp3ckn8q70mhwa0143hj6bjh0bpgmgsnw";
+      sha256 = "0pgb0v41qn2cnzzn4fizffds07vhz9sf09bpmm0lw86x8lz6vfdq";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.6.1";
   };
   gitlab-experiment = {
     dependencies = ["activesupport" "request_store" "scientist"];
@@ -1964,10 +1953,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07b7fb8vkpwjf668mircz6lavr8yp5xc7f7yp1v1h7izhzhn7m8g";
+      sha256 = "064iy0pgjfvfcxynclmk70cdi10hwx7xzq1c14p68cilg569vma2";
       type = "gem";
     };
-    version = "0.6.4";
+    version = "0.6.5";
   };
   gitlab-fog-azure-rm = {
     dependencies = ["azure-storage-blob" "azure-storage-common" "fog-core" "fog-json" "mime-types" "ms_rest_azure"];
@@ -2001,6 +1990,17 @@
     };
     version = "2.0.0";
   };
+  gitlab-license_finder = {
+    dependencies = ["rubyzip" "thor" "tomlrb" "with_env" "xml-simple"];
+    groups = ["development" "omnibus" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fzrv96kbzyqnsdj762x7n0y006rsgsi8k23nad4xsa43d065i71";
+      type = "gem";
+    };
+    version = "6.14.2.1";
+  };
   gitlab-mail_room = {
     groups = ["default"];
     platforms = [];
@@ -2016,10 +2016,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xnlra517pfj3hx07kasbqlcw51ix4xajr6bsd3mwg8bc92dlwy7";
+      sha256 = "11kc33j6m0nayppkb7645w0ldh8g18pgmxgb8wz39pd5vilr6qpv";
       type = "gem";
     };
-    version = "1.7.1";
+    version = "1.8.0";
   };
   gitlab-net-dns = {
     groups = ["default"];
@@ -2054,15 +2054,15 @@
     version = "0.8.0";
   };
   gitlab-styles = {
-    dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-performance" "rubocop-rails" "rubocop-rspec"];
+    dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-graphql" "rubocop-performance" "rubocop-rails" "rubocop-rspec"];
     groups = ["development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vxg5j9405r5xvwnswhm2r7pg9pn6pqg675pxz6f8d3sxy5z963p";
+      sha256 = "1xs7v0sj3j4d5yflfn8n5azh5qwxsrc432q7v4nckg9irwqj99js";
       type = "gem";
     };
-    version = "6.3.0";
+    version = "6.6.0";
   };
   gitlab_chronic_duration = {
     dependencies = ["numerizer"];
@@ -2244,10 +2244,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rm59b6klp97287h01aj8hr12mhsya585as2z1sk8hq2lp51imfn";
+      sha256 = "0qb6bk8gflwid4qrk2i9ndzs5fxycdjvxmhy9w547lglzb5jx19b";
       type = "gem";
     };
-    version = "1.11.8";
+    version = "1.11.10";
   };
   graphql-client = {
     dependencies = ["activesupport" "graphql"];
@@ -2543,10 +2543,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
+      sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
       type = "gem";
     };
-    version = "1.8.10";
+    version = "1.8.11";
   };
   i18n_data = {
     groups = ["default"];
@@ -2568,6 +2568,17 @@
     };
     version = "2.4.1";
   };
+  imagen = {
+    dependencies = ["parser"];
+    groups = ["coverage" "default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qm1jcprs0xys8m72kgm9pasd1xzhiqiyv64baxwcygyshkvgrzx";
+      type = "gem";
+    };
+    version = "0.1.8";
+  };
   invisible_captcha = {
     dependencies = ["rails"];
     groups = ["default"];
@@ -2589,6 +2600,17 @@
     };
     version = "0.8.3";
   };
+  ipynbdiff = {
+    dependencies = ["diffy" "json"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0raj4xwp2dz1xrzcpqqdp5ygfpjdy7jx28ziqg9f73hf850j90d1";
+      type = "gem";
+    };
+    version = "0.3.8";
+  };
   jaeger-client = {
     dependencies = ["opentracing" "thrift"];
     groups = ["default"];
@@ -2826,15 +2848,15 @@
     version = "1.7.0";
   };
   letter_opener_web = {
-    dependencies = ["actionmailer" "letter_opener" "railties"];
+    dependencies = ["actionmailer" "letter_opener" "railties" "rexml"];
     groups = ["development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kgz2n0cyw3m8ipvijlikb6bldmzhnq451b9d7w5l74gw2fhqckg";
+      sha256 = "0vvvaz2ngaxv0s6sj25gdvp73vd8pfl8q3jharadg18p3va0m1ik";
       type = "gem";
     };
-    version = "1.4.1";
+    version = "2.0.0";
   };
   libyajl2 = {
     groups = ["default"];
@@ -2846,17 +2868,6 @@
     };
     version = "1.2.0";
   };
-  license_finder = {
-    dependencies = ["rubyzip" "thor" "toml" "with_env" "xml-simple"];
-    groups = ["development" "omnibus" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0kc4bkaxy6mm6kpbpg8hdjsqpzybh7cy5b45qydc7bfa9c35vr93";
-      type = "gem";
-    };
-    version = "6.0.0";
-  };
   licensee = {
     dependencies = ["dotenv" "octokit" "reverse_markdown" "rugged" "thor"];
     groups = ["default"];
@@ -3489,6 +3500,17 @@
     };
     version = "1.1.4";
   };
+  omniauth-dingtalk-oauth2 = {
+    dependencies = ["omniauth-oauth2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sflfy1jvn9wqpral7gcfmbys7msvykp6rlnl33r8qgnbksn54y8";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
   omniauth-facebook = {
     dependencies = ["omniauth-oauth2"];
     groups = ["default"];
@@ -3572,10 +3594,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10fr2b58sp7l6nfdvxpbi67374hkrvsf507cvda89jjs0jacy319";
+      sha256 = "1ry65f309rnzhgdjvqybkd5i4qp9rpk1gbp4dz02h4l6bkk6ya10";
       type = "gem";
     };
-    version = "1.7.1";
+    version = "1.7.2";
   };
   omniauth-oauth2-generic = {
     dependencies = ["omniauth-oauth2"];
@@ -3747,14 +3769,14 @@
   };
   parser = {
     dependencies = ["ast"];
-    groups = ["default" "development" "test"];
+    groups = ["coverage" "default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06ma6w87ph8lnc9z4hi40ynmcdnjv0p8x53x0s3fjkz4q2p6sxh5";
+      sha256 = "0sszdl9mpzqzn9kxrp28sqmg47mjxcwypr4d60vbajqba4v885di";
       type = "gem";
     };
-    version = "3.0.2.0";
+    version = "3.0.3.2";
   };
   parslet = {
     groups = ["default" "development" "test"];
@@ -3947,10 +3969,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lmaq05a257m9588a81wql3a5p039f221f0dmq57bm2qjwxydjmj";
+      sha256 = "1xblxnrs0c5m326v7kgr32k4m00cl2ipcf5m0qvyisrw62vd5dbn";
       type = "gem";
     };
-    version = "5.3.2";
+    version = "5.5.2";
   };
   puma_worker_killer = {
     dependencies = ["get_process_mem" "puma"];
@@ -4626,6 +4648,17 @@
     };
     version = "0.1.1";
   };
+  rubocop-graphql = {
+    dependencies = ["rubocop"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hvm17hm7xjqcfn70c7h3rrz2y2mrazqmkp5ains08j0zd39x7rh";
+      type = "gem";
+    };
+    version = "0.10.3";
+  };
   rubocop-performance = {
     dependencies = ["rubocop" "rubocop-ast"];
     groups = ["default" "development" "test"];
@@ -4778,10 +4811,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04aq913plcxjw71l5r62qgz3bx3466p0wvgyfqahg5n3nybmcwqy";
+      sha256 = "1v846qs2pa3wnzgz95jzbcdrgl9vyjl65qiscw4q4dvm5sb7j68i";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.0";
   };
   safe_yaml = {
     groups = ["default" "test"];
@@ -4875,20 +4908,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jklwk9aldvlmdv17m77g2f82j383alqd4jjnwn4c564q9wvz3fp";
+      sha256 = "05xiv6kznhawbkjrz97s6lp2ld0w95x1l2s80gm8m49f273399s2";
       type = "gem";
     };
-    version = "1.6.0";
+    version = "1.6.2";
   };
   sd_notify = {
-    groups = ["default"];
+    groups = ["puma"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c9imnjbakx25r2n7widfp00s19ndzmmwax761mx5vbwm9nariyb";
+      sha256 = "0qx6hwi10s0ir46l3aq4lspkxlcs1x4cjhvdhpdxyxaicciqddi2";
       type = "gem";
     };
-    version = "0.1.1";
+    version = "0.1.0";
   };
   securecompare = {
     groups = ["default"];
@@ -4990,10 +5023,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "104a97cl94aclg71ngrr097zjbdf6cibnz4q3rqjb88izmd7cfk6";
+      sha256 = "0k38cbwhcj9ncfzlgfmvq2zqfdvldln58w8s8v89m0jqlhnhsqhj";
       type = "gem";
     };
-    version = "6.2.2";
+    version = "6.3.1";
   };
   sidekiq-cron = {
     dependencies = ["fugit" "sidekiq"];
@@ -5059,6 +5092,16 @@
     };
     version = "0.12.3";
   };
+  simplecov-lcov = {
+    groups = ["coverage" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h8kswnshgb9zidvc88f4zjy4gflgz3854sx9wrw8ppgnwfg6581";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
   sixarm_ruby_unaccent = {
     groups = ["default"];
     platforms = [];
@@ -5144,6 +5187,16 @@
     };
     version = "1.0.4";
   };
+  sprite-factory = {
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18hvn14vz1v3j1gvbqjypa59hgj3c4mqbimby50k407c395551jm";
+      type = "gem";
+    };
+    version = "1.7.1";
+  };
   sprockets = {
     dependencies = ["concurrent-ruby" "rack"];
     groups = ["default" "development" "test"];
@@ -5276,10 +5329,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03y0mnn5mp9ydi5jc4d3y0gnk5fxwljzzfzj9rg7q94kslwi1kx4";
+      sha256 = "08bln6c3qmylakgpmpswv4zdis8bf96nkbrxpb9xcal2i7g1j29r";
       type = "gem";
     };
-    version = "1.1.9";
+    version = "1.4.3";
   };
   sysexits = {
     groups = ["default" "development" "test"];
@@ -5291,6 +5344,16 @@
     };
     version = "1.2.0";
   };
+  tanuki_emoji = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qw0qa3xz4h3izwl5qsvmg5vvfsfjhmv4mdxaw1v1w1qgp7j7gws";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
   temple = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -5425,17 +5488,6 @@
     };
     version = "0.8.3";
   };
-  toml = {
-    dependencies = ["parslet"];
-    groups = ["default" "development" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0xj460rkyqvg74xc8kivmbvgc46c6mm7r8mbjs5m2gq8khf8sbki";
-      type = "gem";
-    };
-    version = "0.2.0";
-  };
   toml-rb = {
     dependencies = ["citrus"];
     groups = ["default"];
@@ -5584,6 +5636,17 @@
     };
     version = "0.1.0";
   };
+  undercover = {
+    dependencies = ["imagen" "rainbow" "rugged"];
+    groups = ["coverage" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19gnc5sr41z3rqbw03k8v3sdpn7rccmgivnc0x5pdq4x7bhcpi31";
+      type = "gem";
+    };
+    version = "0.4.4";
+  };
   unf = {
     dependencies = ["unf_ext"];
     groups = ["default"];
@@ -5903,9 +5966,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
+      sha256 = "18l4r6layck0d80ydc692mv1lxak5xbf6w2paj1x7m2ggbggzxgj";
       type = "gem";
     };
-    version = "2.4.2";
+    version = "2.5.1";
   };
 }
diff --git a/pkgs/applications/version-management/gitlab/update.py b/pkgs/applications/version-management/gitlab/update.py
index c8b4efc2478e8..bee10e49f4b4e 100755
--- a/pkgs/applications/version-management/gitlab/update.py
+++ b/pkgs/applications/version-management/gitlab/update.py
@@ -143,7 +143,6 @@ def update_rubyenv():
         f.write(repo.get_file('Gemfile.lock', rev))
     with open(rubyenv_dir / 'Gemfile', 'w') as f:
         original = repo.get_file('Gemfile', rev)
-        original += "\ngem 'sd_notify'\n"
         f.write(re.sub(r".*mail-smtp_pool.*", "", original))
 
     subprocess.check_output(['bundle', 'lock'], cwd=rubyenv_dir)
diff --git a/pkgs/applications/version-management/got/default.nix b/pkgs/applications/version-management/got/default.nix
index b80712fd96da1..61e938b093b3f 100644
--- a/pkgs/applications/version-management/got/default.nix
+++ b/pkgs/applications/version-management/got/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "got";
-  version = "0.60";
+  version = "0.64";
 
   src = fetchurl {
     url =
       "https://gameoftrees.org/releases/portable/got-portable-${version}.tar.gz";
-    sha256 = "sha256-tT8F3Kx7Rcjd/tWjIXXNWygYlkMddWwrttpjnYLnBdo=";
+    sha256 = "1qigv8fnmiynrx6qrg28n2981a30n56nh3xbhmlpihl7fqxmg1sq";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   installCheckPhase = ''
     runHook preInstallCheck
-    test "$($out/bin/got --version)" = '${pname} "${version}"'
+    test "$($out/bin/got --version)" = '${pname} ${version}'
     runHook postInstallCheck
   '';
 
diff --git a/pkgs/applications/version-management/guitone/default.nix b/pkgs/applications/version-management/guitone/default.nix
deleted file mode 100644
index d78023d8468f1..0000000000000
--- a/pkgs/applications/version-management/guitone/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ lib, stdenv, fetchmtn, qt4, qmake4Hook, pkg-config, graphviz }:
-
-let version = "1.0-mtn-head"; in
-stdenv.mkDerivation {
-  pname = "guitone";
-  inherit version;
-
-  #src = fetchurl {
-  #  url = "${meta.homepage}/count.php/from=default/${version}/${name}.tgz";
-  #  sha256 = "08kcyar6p6v5z4dq6q6c1dhyxc2jj49qcd6lj3rdn1rb9hz4n7ms";
-  #};
-
-  src = fetchmtn {
-    dbs = ["mtn://code.monotone.ca/guitone"];
-    selector = "3a728afdbd3943b1d86c2a249b1e2ede7bf64c27";
-    sha256 = "01vs8m00phs5pl75mjkpdarynfpkqrg0qf4rsn95czi3q6nxiaq5";
-    branch = "net.venge.monotone.guitone";
-  };
-
-  patches = [ ./parallel-building.patch ];
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ qt4 qmake4Hook graphviz ];
-
-  qmakeFlags = [ "guitone.pro" ];
-
-  meta = {
-    description = "Qt4 based GUI for monotone";
-    homepage = "https://guitone.thomaskeller.biz";
-    downloadPage = "https://code.monotone.ca/p/guitone/";
-    license = lib.licenses.gpl3;
-    inherit (qt4.meta) platforms;
-  };
-}
diff --git a/pkgs/applications/version-management/guitone/parallel-building.patch b/pkgs/applications/version-management/guitone/parallel-building.patch
deleted file mode 100644
index f0e924cbfb812..0000000000000
--- a/pkgs/applications/version-management/guitone/parallel-building.patch
+++ /dev/null
@@ -1,7 +0,0 @@
-Without this `make tmp/AttributesView.o` fails with
-src/view/dialogs/AddEditAttribute.h:22:35: fatal error: ui_add_edit_attribute.h: No such file or directory
---- a/guitone.pro
-+++ b/guitone.pro
-@@ -215 +215,2 @@ help.commands = @echo Available targets: $${QMAKE_EXTRA_TARGETS}
- QMAKE_EXTRA_TARGETS += help
-+CONFIG += depend_includepath
diff --git a/pkgs/applications/version-management/p4/default.nix b/pkgs/applications/version-management/p4/default.nix
index fd369601c6c4b..602d994998106 100644
--- a/pkgs/applications/version-management/p4/default.nix
+++ b/pkgs/applications/version-management/p4/default.nix
@@ -2,11 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "p4";
-  version = "2020.1.2007551";
+  version = "2021.2.2201121";
 
   src = fetchurl {
-    url = "https://cdist2.perforce.com/perforce/r20.1/bin.linux26x86_64/helix-core-server.tgz";
-    sha256 = "0ly9b838zrpp6841fzapizdd3xmria55bwfrh2j29qwxiwzqj80y";
+    # actually  https://cdist2.perforce.com/perforce/r21.2/bin.linux26x86_64/helix-core-server.tgz but upstream deletes releases
+    url = "http://web.archive.org/web/20211118024943/https://cdist2.perforce.com/perforce/r21.2/bin.linux26x86_64/helix-core-server.tgz";
+    sha256 = "sha256-cmIMVek4lwVYJQbW8ziABftPZ0iIoAoSpR7cKuN4I7M=";
   };
 
   sourceRoot = ".";
@@ -16,8 +17,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoPatchelfHook ];
 
   installPhase = ''
-    mkdir -p $out/bin
-    cp p4 p4broker p4d p4p $out/bin
+    install -D --target $out/bin p4 p4broker p4d p4p
   '';
 
   meta = {
diff --git a/pkgs/applications/version-management/pijul/default.nix b/pkgs/applications/version-management/pijul/default.nix
index f558eab6b61fe..03659e0ba40f7 100644
--- a/pkgs/applications/version-management/pijul/default.nix
+++ b/pkgs/applications/version-management/pijul/default.nix
@@ -13,14 +13,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pijul";
-  version = "1.0.0-alpha.55";
+  version = "1.0.0-alpha.56";
 
   src = fetchCrate {
     inherit version pname;
-    sha256 = "sha256-1nnn0cdDe+WOetGtRe7dMEyuCcbfRHdJWFxQ4bTXebQ=";
+    sha256 = "zV4F4dbjJ58yGiupUwj5Z0HrKR78Mzch8Zs98YfxSTQ=";
   };
 
-  cargoSha256 = "sha256-j9xf97qPdhtakIwhAql0/Go5fPxlyWKAVLk5CMBfAbs=";
+  cargoSha256 = "JQGBTCNu9U2Kq6tc7VT07LEbzLW+jdVWrK5e2qjzGRA=";
 
   doCheck = false;
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/version-management/sourcehut/builds.nix b/pkgs/applications/version-management/sourcehut/builds.nix
index c8163caf8eae0..2e771de73a547 100644
--- a/pkgs/applications/version-management/sourcehut/builds.nix
+++ b/pkgs/applications/version-management/sourcehut/builds.nix
@@ -11,25 +11,30 @@
 , python
 }:
 let
-  version = "0.66.7";
+  version = "0.74.17";
+
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "builds.sr.ht";
+    rev = version;
+    sha256 = "sha256-6Yc33lkhozpnx8e6yukUfo+/Qw5mwpJQQKuYbC7uqcU=";
+  };
 
   buildWorker = src: buildGoModule {
     inherit src version;
     pname = "builds-sr-ht-worker";
 
-    vendorSha256 = "sha256-giOaldV46aBqXyFH/cQVsbUr6Rb4VMhbBO86o48tRZY=";
+    vendorSha256 = "sha256-Pf1M9a43eK4jr6QMi6kRHA8DodXQU0pqq9ua5VC3ER0=";
   };
 in
 buildPythonPackage rec {
-  inherit version;
+  inherit src version;
   pname = "buildsrht";
 
-  src = fetchFromSourcehut {
-    owner = "~sircmpwn";
-    repo = "builds.sr.ht";
-    rev = version;
-    sha256 = "sha256-2MLs/DOXHjEYarXDVUcPZe3o0fmZbzVxn528SE72lhM=";
-  };
+  patches = [
+    # Revert change breaking Unix socket support for Redis
+    patches/redis-socket/build/0001-Revert-Add-build-submission-and-queue-monitoring.patch
+  ];
 
   nativeBuildInputs = srht.nativeBuildInputs;
 
@@ -56,10 +61,12 @@ buildPythonPackage rec {
     cp ${buildWorker "${src}/worker"}/bin/worker $out/bin/builds.sr.ht-worker
   '';
 
+  pythonImportsCheck = [ "buildsrht" ];
+
   meta = with lib; {
     homepage = "https://git.sr.ht/~sircmpwn/builds.sr.ht";
     description = "Continuous integration service for the sr.ht network";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ eadwu ];
   };
 }
diff --git a/pkgs/applications/version-management/sourcehut/core.nix b/pkgs/applications/version-management/sourcehut/core.nix
index 7c3a516ed9dc5..3242b85e3787c 100644
--- a/pkgs/applications/version-management/sourcehut/core.nix
+++ b/pkgs/applications/version-management/sourcehut/core.nix
@@ -25,17 +25,16 @@
 , sassc
 , nodejs
 , redis
-, writeText
 }:
 
 buildPythonPackage rec {
   pname = "srht";
-  version = "0.67.4";
+  version = "0.68.13";
 
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/core.sr.ht";
     rev = version;
-    sha256 = "sha256-XvzFfcBK5Mq8p7xEBAF/eupUE1kkUBh5k+ByM/WA9bc=";
+    sha256 = "sha256-LPyEfpNlmod18Fj16xpihKOrsU/hQUfAeOmWMmUeVPQ=";
     fetchSubmodules = true;
   };
 
@@ -46,6 +45,7 @@ buildPythonPackage rec {
   };
 
   patches = [
+    # Disable check for npm
     ./disable-npm-install.patch
   ];
 
@@ -87,6 +87,7 @@ buildPythonPackage rec {
   '';
 
   dontUseSetuptoolsCheck = true;
+  pythonImportsCheck = [ "srht" ];
 
   meta = with lib; {
     homepage = "https://git.sr.ht/~sircmpwn/srht";
diff --git a/pkgs/applications/version-management/sourcehut/default.nix b/pkgs/applications/version-management/sourcehut/default.nix
index 401a1437b7d9f..00810f208cc57 100644
--- a/pkgs/applications/version-management/sourcehut/default.nix
+++ b/pkgs/applications/version-management/sourcehut/default.nix
@@ -22,6 +22,7 @@ let
       listssrht = self.callPackage ./lists.nix { };
       mansrht = self.callPackage ./man.nix { };
       metasrht = self.callPackage ./meta.nix { };
+      pagessrht = self.callPackage ./pages.nix { };
       pastesrht = self.callPackage ./paste.nix { };
       todosrht = self.callPackage ./todo.nix { };
 
@@ -40,6 +41,7 @@ with python.pkgs; recurseIntoAttrs {
   listssrht = toPythonApplication listssrht;
   mansrht = toPythonApplication mansrht;
   metasrht = toPythonApplication metasrht;
+  pagessrht = pagessrht;
   pastesrht = toPythonApplication pastesrht;
   todosrht = toPythonApplication todosrht;
 }
diff --git a/pkgs/applications/version-management/sourcehut/dispatch.nix b/pkgs/applications/version-management/sourcehut/dispatch.nix
index 637c6f9c1df41..18e105aea4bf5 100644
--- a/pkgs/applications/version-management/sourcehut/dispatch.nix
+++ b/pkgs/applications/version-management/sourcehut/dispatch.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "dispatchsrht";
-  version = "0.15.8";
+  version = "0.15.34";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "dispatch.sr.ht";
     rev = version;
-    sha256 = "sha256-zWCGPjIgMKHXHJUs9aciV7IFgo0rpahon6KXHDwcfss=";
+    sha256 = "sha256-bZ4ZKohMozZIyP0TUgxETOECib4XGUv29+Mg8ZsoMf8=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
@@ -31,10 +31,12 @@ buildPythonPackage rec {
     export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
+  pythonImportsCheck = [ "dispatchsrht" ];
+
   meta = with lib; {
     homepage = "https://dispatch.sr.ht/~sircmpwn/dispatch.sr.ht";
     description = "Task dispatcher and service integration tool for the sr.ht network";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ eadwu ];
   };
 }
diff --git a/pkgs/applications/version-management/sourcehut/git.nix b/pkgs/applications/version-management/sourcehut/git.nix
index e44fb9cd6c6c8..e33bb65950123 100644
--- a/pkgs/applications/version-management/sourcehut/git.nix
+++ b/pkgs/applications/version-management/sourcehut/git.nix
@@ -8,13 +8,13 @@
 , scmsrht
 }:
 let
-  version = "0.72.8";
+  version = "0.76.4";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "git.sr.ht";
     rev = version;
-    sha256 = "sha256-AB2uzajO5PtcpJfbOOTfuDFM6is5K39v3AZJ1hShRNc=";
+    sha256 = "sha256-diUkQpB/ivg8JTaoTcSyKr9Q9LZiMo6qVInBDPceklc=";
   };
 
   buildShell = src: buildGoModule {
@@ -32,13 +32,13 @@ let
   buildKeys = src: buildGoModule {
     inherit src version;
     pname = "gitsrht-keys";
-    vendorSha256 = "1d94cqy7x0q0agwg515xxsbl70b3qrzxbzsyjhn1pbyj532brn7f";
+    vendorSha256 = "sha256-9pojS69HCKVHUceyOpGtv9ewcxFD4WsOVsEzkmWJkF4=";
   };
 
   buildUpdateHook = src: buildGoModule {
     inherit src version;
     pname = "gitsrht-update-hook";
-    vendorSha256 = "0fwzqpjv8x5y3w3bfjd0x0cvqjjak23m0zj88hf32jpw49xmjkih";
+    vendorSha256 = "sha256-sBlG7EFqdDm7CkAHVX50Mf4N3sl1rPNmWExG/bfbfGA=";
   };
 
   updateHook = buildUpdateHook "${src}/gitsrht-update-hook";
@@ -72,10 +72,12 @@ buildPythonPackage rec {
     inherit updateHook;
   };
 
+  pythonImportsCheck = [ "gitsrht" ];
+
   meta = with lib; {
     homepage = "https://git.sr.ht/~sircmpwn/git.sr.ht";
     description = "Git repository hosting service for the sr.ht network";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ eadwu ];
   };
 }
diff --git a/pkgs/applications/version-management/sourcehut/hg.nix b/pkgs/applications/version-management/sourcehut/hg.nix
index cddb76cabf25d..6716f643a7e11 100644
--- a/pkgs/applications/version-management/sourcehut/hg.nix
+++ b/pkgs/applications/version-management/sourcehut/hg.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "hgsrht";
-  version = "0.27.4";
+  version = "0.29.3";
 
   src = fetchhg {
     url = "https://hg.sr.ht/~sircmpwn/hg.sr.ht";
     rev = version;
-    sha256 = "1c0qfi0gmbfngvds6917fy9ii2iglawn429757rh7b4bvzn7n6mr";
+    sha256 = "y8gKaamwD5lsYqO1SkxMcn3E2TWidHAo2slvEU+8ovg=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
@@ -32,10 +32,12 @@ buildPythonPackage rec {
     export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
+  pythonImportsCheck = [ "hgsrht" ];
+
   meta = with lib; {
     homepage = "https://git.sr.ht/~sircmpwn/hg.sr.ht";
     description = "Mercurial repository hosting service for the sr.ht network";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ eadwu ];
   };
 }
diff --git a/pkgs/applications/version-management/sourcehut/hub.nix b/pkgs/applications/version-management/sourcehut/hub.nix
index 17cb3fe4b6141..511ec359fc4b0 100644
--- a/pkgs/applications/version-management/sourcehut/hub.nix
+++ b/pkgs/applications/version-management/sourcehut/hub.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "hubsrht";
-  version = "0.13.1";
+  version = "0.14.4";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "hub.sr.ht";
     rev = version;
-    sha256 = "sha256-Kqzy4mh5Nn1emzHBco/LVuXro/tW3NX+OYqdEwBSQ/U=";
+    sha256 = "sha256-7HF+jykWGqzPWA0YtJZQZU7pnID1yexcqLkEf2HpnSs=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
@@ -26,11 +26,12 @@ buildPythonPackage rec {
   '';
 
   dontUseSetuptoolsCheck = true;
+  pythonImportsCheck = [ "hubsrht" ];
 
   meta = with lib; {
     homepage = "https://git.sr.ht/~sircmpwn/hub.sr.ht";
     description = "Project hub service for the sr.ht network";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ eadwu ];
   };
 }
diff --git a/pkgs/applications/version-management/sourcehut/lists.nix b/pkgs/applications/version-management/sourcehut/lists.nix
index b419b49f7b5dc..3490796dda015 100644
--- a/pkgs/applications/version-management/sourcehut/lists.nix
+++ b/pkgs/applications/version-management/sourcehut/lists.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "listssrht";
-  version = "0.48.19";
+  version = "0.51.0";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "lists.sr.ht";
     rev = version;
-    sha256 = "sha256-bsakEMyvWaxiE4/SGcAP4mlGG9jkdHfFxpt9H+TJn/8=";
+    sha256 = "sha256-iywZ6G5E4AJevg/Q1LoB7JMJxBcsAnbhiND++mFy/bw=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
@@ -37,10 +37,12 @@ buildPythonPackage rec {
     export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
+  pythonImportsCheck = [ "listssrht" ];
+
   meta = with lib; {
     homepage = "https://git.sr.ht/~sircmpwn/lists.sr.ht";
     description = "Mailing list service for the sr.ht network";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ eadwu ];
   };
 }
diff --git a/pkgs/applications/version-management/sourcehut/man.nix b/pkgs/applications/version-management/sourcehut/man.nix
index bd331f000a722..2d4d152e3aae6 100644
--- a/pkgs/applications/version-management/sourcehut/man.nix
+++ b/pkgs/applications/version-management/sourcehut/man.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "mansrht";
-  version = "0.15.12";
+  version = "0.15.22";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "man.sr.ht";
     rev = version;
-    sha256 = "sha256-MqH/8K9XRvEg6P7GHE6XXtWnhDP3wT8iGoNaFtYQbio=";
+    sha256 = "sha256-curouf+eNCKprDI23blGs4AzJMry6zlCLDt/+0j5c8A=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
@@ -29,10 +29,12 @@ buildPythonPackage rec {
     export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
+  pythonImportsCheck = [ "mansrht" ];
+
   meta = with lib; {
     homepage = "https://git.sr.ht/~sircmpwn/man.sr.ht";
     description = "Wiki service for the sr.ht network";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ eadwu ];
   };
 }
diff --git a/pkgs/applications/version-management/sourcehut/meta.nix b/pkgs/applications/version-management/sourcehut/meta.nix
index 86d293973d7f2..74a00692b6c70 100644
--- a/pkgs/applications/version-management/sourcehut/meta.nix
+++ b/pkgs/applications/version-management/sourcehut/meta.nix
@@ -18,19 +18,19 @@
 , python
 }:
 let
-  version = "0.53.14";
+  version = "0.57.2";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "meta.sr.ht";
     rev = version;
-    sha256 = "sha256-/+r/XLDkcSTW647xPMh5bcJmR2xZNNH74AJ5jemna2k=";
+    sha256 = "sha256-+ksfAOuch/fLkFLYU52Ug0Hf0EoERy+oCwa9g+GKuAA=";
   };
 
   buildApi = src: buildGoModule {
     inherit src version;
     pname = "metasrht-api";
-    vendorSha256 = "sha256-eZyDrr2VcNMxI++18qUy7LA1Q1YDlWCoRtl00L8lfR4=";
+    vendorSha256 = "sha256-vo+YbMyo/Eal7hbFxP9hwIW2cePJcGFszoDRCCzFYdM=";
   };
 
 in
@@ -38,6 +38,11 @@ buildPythonPackage rec {
   pname = "metasrht";
   inherit version src;
 
+  patches = [
+    # Revert change breaking Unix socket support for Redis
+    patches/redis-socket/meta/0001-Revert-Add-webhook-queue-monitoring.patch
+  ];
+
   nativeBuildInputs = srht.nativeBuildInputs;
 
   propagatedBuildInputs = [
@@ -66,10 +71,12 @@ buildPythonPackage rec {
     cp ${buildApi "${src}/api/"}/bin/api $out/bin/metasrht-api
   '';
 
+  pythonImportsCheck = [ "metasrht" ];
+
   meta = with lib; {
     homepage = "https://git.sr.ht/~sircmpwn/meta.sr.ht";
     description = "Account management service for the sr.ht network";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ eadwu ];
   };
 }
diff --git a/pkgs/applications/version-management/sourcehut/pages.nix b/pkgs/applications/version-management/sourcehut/pages.nix
new file mode 100644
index 0000000000000..9b6011d99900a
--- /dev/null
+++ b/pkgs/applications/version-management/sourcehut/pages.nix
@@ -0,0 +1,30 @@
+{ lib
+, fetchFromSourcehut
+, buildGoModule
+}:
+
+buildGoModule rec {
+  pname = "pagessrht";
+  version = "0.5.2";
+
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "pages.sr.ht";
+    rev = version;
+    sha256 = "sha256-yEM122uhF0MNkMlNXyvBSfkLogRQETeuBl2K66kivac=";
+  };
+
+  vendorSha256 = "sha256-udr+1y5ApQCSPhs3yQTTi9QfzRbz0A9COYuFMjQGa74=";
+
+  postInstall = ''
+    mkdir -p $out/share/sql/
+    cp -r -t $out/share/sql/ schema.sql migrations
+  '';
+
+  meta = with lib; {
+    homepage = "https://git.sr.ht/~sircmpwn/pages.sr.ht";
+    description = "Web hosting service for the sr.ht network";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ eadwu ];
+  };
+}
diff --git a/pkgs/applications/version-management/sourcehut/paste.nix b/pkgs/applications/version-management/sourcehut/paste.nix
index 0d8c913549376..c411f8e8c954a 100644
--- a/pkgs/applications/version-management/sourcehut/paste.nix
+++ b/pkgs/applications/version-management/sourcehut/paste.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "pastesrht";
-  version = "0.12.1";
+  version = "0.13.6";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "paste.sr.ht";
     rev = version;
-    sha256 = "sha256-QQhd2LeH9BLmlHilhsv+9fZ+RPNmEMSmOpFA3dsMBFc=";
+    sha256 = "sha256-Khcqk86iD9nxiKXN3+8mSLNoDau2qXNFOrLdkVu+rH8=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
@@ -29,10 +29,12 @@ buildPythonPackage rec {
     export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
+  pythonImportsCheck = [ "pastesrht" ];
+
   meta = with lib; {
     homepage = "https://git.sr.ht/~sircmpwn/paste.sr.ht";
     description = "Ad-hoc text file hosting service for the sr.ht network";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ eadwu ];
   };
 }
diff --git a/pkgs/applications/version-management/sourcehut/patches/redis-socket/build/0001-Revert-Add-build-submission-and-queue-monitoring.patch b/pkgs/applications/version-management/sourcehut/patches/redis-socket/build/0001-Revert-Add-build-submission-and-queue-monitoring.patch
new file mode 100644
index 0000000000000..ae8e95ddc0c2f
--- /dev/null
+++ b/pkgs/applications/version-management/sourcehut/patches/redis-socket/build/0001-Revert-Add-build-submission-and-queue-monitoring.patch
@@ -0,0 +1,69 @@
+From 069b03f85847ed4a9223183b62ee53f420838911 Mon Sep 17 00:00:00 2001
+From: Julien Moutinho <julm+srht@sourcephile.fr>
+Date: Thu, 16 Dec 2021 04:54:24 +0100
+Subject: [PATCH builds.sr.ht] Revert "Add build submission and queue
+ monitoring"
+
+This reverts commit 690f1aa16c77e418dc40109cd5e8fdf4a7ed947a.
+
+This has broken Unix socket support for Redis
+See https://lists.sr.ht/~sircmpwn/sr.ht-dev/%3C20211208082636.65665-1-me%40ignaskiela.eu%3E#%3C20211216033723.wefibfulfjhqnhem@sourcephile.fr%3E
+---
+ buildsrht/app.py    | 3 ---
+ buildsrht/runner.py | 9 +--------
+ 2 files changed, 1 insertion(+), 11 deletions(-)
+
+diff --git a/buildsrht/app.py b/buildsrht/app.py
+index e5321a2..7c9977c 100644
+--- a/buildsrht/app.py
++++ b/buildsrht/app.py
+@@ -36,9 +36,6 @@ class BuildApp(SrhtFlask):
+         self.register_blueprint(secrets)
+         self.register_blueprint(gql_blueprint)
+ 
+-        from buildsrht.runner import builds_queue_metrics_collector
+-        self.metrics_registry.register(builds_queue_metrics_collector)
+-
+         @self.context_processor
+         def inject():
+             return {
+diff --git a/buildsrht/runner.py b/buildsrht/runner.py
+index 7773452..0389c8e 100644
+--- a/buildsrht/runner.py
++++ b/buildsrht/runner.py
+@@ -5,13 +5,10 @@ from srht.config import cfg
+ from srht.database import db
+ from srht.email import send_email
+ from srht.oauth import UserType
+-from srht.metrics import RedisQueueCollector
+-from prometheus_client import Counter
+ 
+ allow_free = cfg("builds.sr.ht", "allow-free", default="no") == "yes"
+ 
+-builds_broker = cfg("builds.sr.ht", "redis")
+-runner = Celery('builds', broker=builds_broker, config_source={
++runner = Celery('builds', broker=cfg("builds.sr.ht", "redis"), config_source={
+     "CELERY_TASK_SERIALIZER": "json",
+     "CELERY_ACCEPT_CONTENT": ["json"],
+     "CELERY_RESULT_SERIALIZER": "json",
+@@ -19,9 +16,6 @@ runner = Celery('builds', broker=builds_broker, config_source={
+     "CELERY_TASK_PROTOCOL": 1
+ })
+ 
+-builds_queue_metrics_collector = RedisQueueCollector(builds_broker, "buildsrht_builds", "Number of builds currently in queue")
+-builds_submitted = Counter("buildsrht_builds_submited", "Number of builds submitted")
+-
+ def queue_build(job, manifest):
+     from buildsrht.types import JobStatus
+     job.status = JobStatus.queued
+@@ -34,7 +28,6 @@ def queue_build(job, manifest):
+                 cfg("sr.ht", "owner-email"),
+                 "Cryptocurrency mining attempt on builds.sr.ht")
+     else:
+-        builds_submitted.inc()
+         run_build.delay(job.id, manifest.to_dict())
+ 
+ def requires_payment(user):
+-- 
+2.34.0
+
diff --git a/pkgs/applications/version-management/sourcehut/patches/redis-socket/meta/0001-Revert-Add-webhook-queue-monitoring.patch b/pkgs/applications/version-management/sourcehut/patches/redis-socket/meta/0001-Revert-Add-webhook-queue-monitoring.patch
new file mode 100644
index 0000000000000..9ec37670b0600
--- /dev/null
+++ b/pkgs/applications/version-management/sourcehut/patches/redis-socket/meta/0001-Revert-Add-webhook-queue-monitoring.patch
@@ -0,0 +1,48 @@
+From d88bee195797c6c294320617ff14798da94cd0f3 Mon Sep 17 00:00:00 2001
+From: Julien Moutinho <julm+srht@sourcephile.fr>
+Date: Thu, 16 Dec 2021 04:52:08 +0100
+Subject: [PATCH meta.sr.ht] Revert "Add webhook queue monitoring"
+
+This reverts commit 9931df3c23094af5179df9ef019ca732b8125dac.
+
+This has broken Unix socket support for Redis.
+See https://lists.sr.ht/~sircmpwn/sr.ht-dev/%3C20211208082636.65665-1-me%40ignaskiela.eu%3E#%3C20211216033723.wefibfulfjhqnhem@sourcephile.fr%3E
+---
+ metasrht/app.py      | 3 ---
+ metasrht/webhooks.py | 5 +----
+ 2 files changed, 1 insertion(+), 7 deletions(-)
+
+diff --git a/metasrht/app.py b/metasrht/app.py
+index b190875..89c59bc 100644
+--- a/metasrht/app.py
++++ b/metasrht/app.py
+@@ -49,9 +49,6 @@ class MetaApp(SrhtFlask):
+             from metasrht.blueprints.billing import billing
+             self.register_blueprint(billing)
+ 
+-        from metasrht.webhooks import webhook_metrics_collector
+-        self.metrics_registry.register(webhook_metrics_collector)
+-
+         @self.context_processor
+         def inject():
+             return {
+diff --git a/metasrht/webhooks.py b/metasrht/webhooks.py
+index 3e1149e..3f0ba01 100644
+--- a/metasrht/webhooks.py
++++ b/metasrht/webhooks.py
+@@ -7,11 +7,8 @@ if not hasattr(db, "session"):
+     db.init()
+ from srht.webhook import Event
+ from srht.webhook.celery import CeleryWebhook, make_worker
+-from srht.metrics import RedisQueueCollector
+ 
+-webhook_broker = cfg("meta.sr.ht", "webhooks", "redis://")
+-worker = make_worker(broker=webhook_broker)
+-webhook_metrics_collector = RedisQueueCollector(webhook_broker, "srht_webhooks", "Webhook queue length")
++worker = make_worker(broker=cfg("meta.sr.ht", "webhooks", "redis://"))
+ 
+ class UserWebhook(CeleryWebhook):
+     events = [
+-- 
+2.34.0
+
diff --git a/pkgs/applications/version-management/sourcehut/scm.nix b/pkgs/applications/version-management/sourcehut/scm.nix
index 1f3852653601f..9fbaa8c924543 100644
--- a/pkgs/applications/version-management/sourcehut/scm.nix
+++ b/pkgs/applications/version-management/sourcehut/scm.nix
@@ -5,18 +5,17 @@
 , redis
 , pyyaml
 , buildsrht
-, writeText
 }:
 
 buildPythonPackage rec {
   pname = "scmsrht";
-  version = "0.22.9";
+  version = "0.22.16"; # Untagged version
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "scm.sr.ht";
     rev = version;
-    sha256 = "sha256-327G6C8FW+iZx+167D7TQsFtV6FGc8MpMVo9L/cUUqU=";
+    sha256 = "sha256-A4Q7wUc4ag7KRWOkdYXCsbzuFHyJJsM15OjrCoVt9UQ=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
@@ -33,11 +32,12 @@ buildPythonPackage rec {
   '';
 
   dontUseSetuptoolsCheck = true;
+  pythonImportsCheck = [ "scmsrht" ];
 
   meta = with lib; {
-    homepage = "https://git.sr.ht/~sircmpwn/git.sr.ht";
+    homepage = "https://git.sr.ht/~sircmpwn/scm.sr.ht";
     description = "Shared support code for sr.ht source control services.";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ eadwu ];
   };
 }
diff --git a/pkgs/applications/version-management/sourcehut/todo.nix b/pkgs/applications/version-management/sourcehut/todo.nix
index 85e1f5637b62c..da31ba2407306 100644
--- a/pkgs/applications/version-management/sourcehut/todo.nix
+++ b/pkgs/applications/version-management/sourcehut/todo.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "todosrht";
-  version = "0.64.14";
+  version = "0.66.1";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "todo.sr.ht";
     rev = version;
-    sha256 = "sha256-huIAhn6h1F5w5ST4/yBwr82kAzyYwhLu+gpRuOQgnsE=";
+    sha256 = "sha256-P0xaQpK7O9zipGSIa5jL1O0L/fKt51EMNGt7XndYQ+g=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
@@ -42,11 +42,12 @@ buildPythonPackage rec {
   ];
 
   dontUseSetuptoolsCheck = true;
+  pythonImportsCheck = [ "todosrht" ];
 
   meta = with lib; {
     homepage = "https://todo.sr.ht/~sircmpwn/todo.sr.ht";
     description = "Ticket tracking service for the sr.ht network";
-    license = licenses.agpl3;
+    license = licenses.agpl3Only;
     maintainers = with maintainers; [ eadwu ];
   };
 }
diff --git a/pkgs/applications/version-management/sourcehut/update.sh b/pkgs/applications/version-management/sourcehut/update.sh
index 156d4cc35e448..97509397aef52 100755
--- a/pkgs/applications/version-management/sourcehut/update.sh
+++ b/pkgs/applications/version-management/sourcehut/update.sh
@@ -1,8 +1,11 @@
 #! /usr/bin/env nix-shell
 #! nix-shell -i bash -p git mercurial common-updater-scripts
+set -eux -o pipefail
 
-cd "$(dirname "${BASH_SOURCE[0]}")"
+cd "$(dirname "${BASH_SOURCE[0]}")" || exit 1
 root=../../../..
+tmp=$(mktemp -d)
+trap 'rm -rf "$tmp"' EXIT
 
 default() {
   (cd "$root" && nix-instantiate --eval --strict -A "sourcehut.python.pkgs.$1.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/')
@@ -13,42 +16,61 @@ version() {
 }
 
 src_url() {
-  (cd "$root" && nix-instantiate --eval --strict -A "sourcehut.python.pkgs.$1.src.drvAttrs.url" | tr -d '"')
+  nix-instantiate --eval --strict --expr " with import $root {}; let src = sourcehut.python.pkgs.$1.drvAttrs.src; in src.url or src.meta.homepage" | tr -d '"'
 }
 
 get_latest_version() {
   src="$(src_url "$1")"
-  tmp=$(mktemp -d)
-
+  rm -rf "$tmp"
   if [ "$1" = "hgsrht" ]; then
-    hg clone "$src" "$tmp" &> /dev/null
+    hg clone "$src" "$tmp" >/dev/null
     printf "%s" "$(cd "$tmp" && hg log --limit 1 --template '{latesttag}')"
   else
-    git clone "$src" "$tmp"
-    printf "%s" "$(cd "$tmp" && git describe $(git rev-list --tags --max-count=1))"
+    git clone "$src" "$tmp" >/dev/null
+    printf "%s" "$(cd "$tmp" && git describe "$(git rev-list --tags --max-count=1)")"
   fi
 }
 
 update_version() {
   default_nix="$(default "$1")"
-  version_old="$(version "$1")"
+  oldVersion="$(version "$1")"
   version="$(get_latest_version "$1")"
 
   (cd "$root" && update-source-version "sourcehut.python.pkgs.$1" "$version")
 
-  git add "$default_nix"
-  git commit -m "$1: $version_old -> $version"
-}
+  # Update vendorSha256 of Go modules
+  retry=true
+  while "$retry"; do
+    retry=false;
+    exec < <(exec nix -L build -f "$root" sourcehut.python.pkgs."$1" 2>&1)
+    while IFS=' :' read -r origin hash; do
+      case "$origin" in
+        (expected|specified) oldHash="$hash";;
+        (got) sed -i "s|$oldHash|$hash|" "$default_nix"; retry=true; break;;
+        (*) printf >&2 "%s\n" "$origin${hash:+:$hash}"
+      esac
+    done
+  done
 
-services=( "srht" "buildsrht" "dispatchsrht" "gitsrht" "hgsrht" "hubsrht" "listssrht" "mansrht"
-           "metasrht" "pastesrht" "todosrht" "scmsrht" )
+  if [ "$oldVersion" != "$version" ]; then
+    git add "$default_nix"
+    git commit -m "sourcehut.$1: $oldVersion -> $version"
+  fi
+}
 
-# Whether or not a specific service is requested
-if [ -n "$1" ]; then
-  version="$(get_latest_version "$1")"
-  (cd "$root" && update-source-version "sourcehut.python.pkgs.$1" "$version")
+if [ $# -gt 0 ]; then
+  services=("$@")
 else
-  for service in "${services[@]}"; do
-    update_version "$service"
-  done
+  # Beware that some packages must be updated before others,
+  # eg. buildsrht must be updated before gitsrht,
+  # otherwise this script would enter an infinite loop
+  # because the reported $oldHash to be changed
+  # may not actually be in $default_nix
+  # but in the file of one of its dependencies.
+  services=( "srht" "scmsrht" "buildsrht" "dispatchsrht" "gitsrht" "hgsrht" "hubsrht" "listssrht" "mansrht"
+             "metasrht" "pagessrht" "pastesrht" "todosrht" )
 fi
+
+for service in "${services[@]}"; do
+  update_version "$service"
+done
diff --git a/pkgs/applications/version-management/sublime-merge/common.nix b/pkgs/applications/version-management/sublime-merge/common.nix
index cb78411527d3d..28c7350ae39b5 100644
--- a/pkgs/applications/version-management/sublime-merge/common.nix
+++ b/pkgs/applications/version-management/sublime-merge/common.nix
@@ -17,7 +17,7 @@ let
   archSha256 = sha256;
   arch = "x64";
 
-  libPath = lib.makeLibraryPath [ xorg.libX11 glib gtk3 cairo pango ];
+  libPath = lib.makeLibraryPath [ xorg.libX11 glib gtk3 cairo pango curl ];
   redirects = [ "/usr/bin/pkexec=${pkexecPath}" "/bin/true=${coreutils}/bin/true" ];
 in let
   binaryPackage = stdenv.mkDerivation {
diff --git a/pkgs/applications/version-management/sublime-merge/default.nix b/pkgs/applications/version-management/sublime-merge/default.nix
index dd9b07f7faf8f..fc8e5d4e4b17f 100644
--- a/pkgs/applications/version-management/sublime-merge/default.nix
+++ b/pkgs/applications/version-management/sublime-merge/default.nix
@@ -4,13 +4,13 @@ let
   common = opts: callPackage (import ./common.nix opts);
 in {
   sublime-merge = common {
-    buildVersion = "2063";
-    sha256 = "l6vxcOIQ3kQqNzLkf3PbuU3DpDfLh0tXCl/LnJsCt2k=";
+    buildVersion = "2068";
+    sha256 = "sha256-CseZQgjqr8B66Slf/yFZZsnRFc3zqCGKFAzSdMRQdNI=";
   } {};
 
   sublime-merge-dev = common {
-    buildVersion = "2055";
-    sha256 = "0f5qmxs5cqgdp7gav223ibjwbcrh8bszk1yg1a6hpz8s8j3icvdi";
+    buildVersion = "2067";
+    sha256 = "sha256-ViBBi9Ghh4dHg7Gmg4i/B+Q4OgDd4XiHNIs12qffZdg=";
     dev = true;
   } {};
 }
diff --git a/pkgs/applications/video/bino3d/default.nix b/pkgs/applications/video/bino3d/default.nix
index 2a732ffa1846c..b1f5a693de426 100644
--- a/pkgs/applications/video/bino3d/default.nix
+++ b/pkgs/applications/video/bino3d/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "bino";
-  version = "1.6.7";
+  version = "1.6.8";
 
   src = fetchurl {
     url = "https://bino3d.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "04yl7ibnhajlli4a5x77az8jxbzw6b2wjay8aa6px551nmiszn9k";
+    sha256 = "sha256-8sIdX+qm7CGPHIziFBHHIe+KEbhbwDY6w/iRm1V+so4=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/video/bombono/default.nix b/pkgs/applications/video/bombono/default.nix
index a6633904c2013..e39d09b6fe720 100644
--- a/pkgs/applications/video/bombono/default.nix
+++ b/pkgs/applications/video/bombono/default.nix
@@ -3,7 +3,7 @@
 , pkg-config
 , fetchpatch
 , scons
-, boost
+, boost172
 , dvdauthor
 , dvdplusrwtools
 , enca
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ wrapGAppsHook scons pkg-config gettext ];
 
   buildInputs = [
-    boost
+    boost172
     dvdauthor
     dvdplusrwtools
     enca
diff --git a/pkgs/applications/video/celluloid/default.nix b/pkgs/applications/video/celluloid/default.nix
index f6bc0561b0c6c..e6dcff6717583 100644
--- a/pkgs/applications/video/celluloid/default.nix
+++ b/pkgs/applications/video/celluloid/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , appstream-glib
 , desktop-file-utils
-, epoxy
+, libepoxy
 , gettext
 , glib
 , gtk3
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     wrapGAppsHook
   ];
   buildInputs = [
-    epoxy
+    libepoxy
     glib
     gtk3
     mpv
diff --git a/pkgs/applications/video/clapper/default.nix b/pkgs/applications/video/clapper/default.nix
index 176efb799541a..4f09fc14d9f85 100644
--- a/pkgs/applications/video/clapper/default.nix
+++ b/pkgs/applications/video/clapper/default.nix
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "clapper";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner  = "Rafostar";
     repo   = pname;
     rev    = version;
-    sha256 = "1gf4z9lib5rxi1xilkxxyywakm9zlq5915w2wib09jyh0if82ahr";
+    sha256 = "sha256-ccvg8yxPCN7OYmJvq0SPY6iyiuFuWJyiu+mRoykEzqI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/video/clipgrab/default.nix b/pkgs/applications/video/clipgrab/default.nix
index 5d331d1b4a69d..287557d6f53eb 100644
--- a/pkgs/applications/video/clipgrab/default.nix
+++ b/pkgs/applications/video/clipgrab/default.nix
@@ -5,10 +5,10 @@
 
 mkDerivation rec {
   pname = "clipgrab";
-  version = "3.9.6";
+  version = "3.9.7";
 
   src = fetchurl {
-    sha256 = "sha256-1rQu2Gh9PKSbC0tuQxLwFhzy280z4obpa+eXvDBzDW0=";
+    sha256 = "sha256-9H8raJd6MyyFICY8WUZQGLJ4teKPJUiQfqbu1HWAVIw=";
     # The .tar.bz2 "Download" link is a binary blob, the source is the .tar.gz!
     url = "https://download.clipgrab.org/${pname}-${version}.tar.gz";
   };
diff --git a/pkgs/applications/video/corrscope/default.nix b/pkgs/applications/video/corrscope/default.nix
index c1d6669c8c2f9..0e1d377be28e7 100644
--- a/pkgs/applications/video/corrscope/default.nix
+++ b/pkgs/applications/video/corrscope/default.nix
@@ -11,6 +11,7 @@
 mkDerivationWith python3Packages.buildPythonApplication rec {
   pname = "corrscope";
   version = "0.7.1";
+  format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "corrscope";
@@ -19,8 +20,6 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
     sha256 = "0c9kmrw6pcda68li04b5j2kmsgdw1q463qlc32wn96zn9hl82v6m";
   };
 
-  format = "pyproject";
-
   patches = [
     # Remove when bumping past 0.7.1
     (fetchpatch {
@@ -30,11 +29,28 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
     })
   ];
 
-  nativeBuildInputs = [ wrapQtAppsHook ] ++ (with python3Packages; [ poetry-core ]);
+  nativeBuildInputs = [
+    wrapQtAppsHook
+  ] ++ (with python3Packages; [
+    poetry-core
+  ]);
 
-  buildInputs = [ ffmpeg qtbase ];
+  buildInputs = [
+    ffmpeg
+    qtbase
+  ];
 
-  propagatedBuildInputs = with python3Packages; [ appdirs atomicwrites attrs click matplotlib numpy pyqt5 ruamel-yaml ];
+  propagatedBuildInputs = with python3Packages; [
+    appdirs
+    atomicwrites
+    attrs
+    click
+    matplotlib
+    numpy
+    packaging
+    pyqt5
+    ruamel-yaml
+  ];
 
   dontWrapQtApps = true;
 
diff --git a/pkgs/applications/video/droidcam/default.nix b/pkgs/applications/video/droidcam/default.nix
index 4284d6dbf9f63..066c17f106903 100644
--- a/pkgs/applications/video/droidcam/default.nix
+++ b/pkgs/applications/video/droidcam/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "droidcam";
-  version = "1.8.0";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "aramg";
     repo = "droidcam";
     rev = "v${version}";
-    sha256 = "sha256-A8FHTAeDFaSDp5Bnfv5NmCC7xIFAw3IcHSD4hZp4vwU=";
+    sha256 = "sha256-3iA7GDTiCx5vHawj8ZBFAK0BIfmxEFuQrVfL7Gi6FhM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/video/entangle/default.nix b/pkgs/applications/video/entangle/default.nix
index 6d8905d2c0038..2c75633808950 100644
--- a/pkgs/applications/video/entangle/default.nix
+++ b/pkgs/applications/video/entangle/default.nix
@@ -12,7 +12,7 @@
 , at-spi2-core
 , dbus
 , elfutils
-, epoxy
+, libepoxy
 , gexiv2
 , glib
 , gobject-introspection
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     at-spi2-core
     dbus
-    epoxy
+    libepoxy
     elfutils
     gexiv2
     glib
diff --git a/pkgs/applications/video/f1viewer/default.nix b/pkgs/applications/video/f1viewer/default.nix
new file mode 100644
index 0000000000000..b00d2d8275be7
--- /dev/null
+++ b/pkgs/applications/video/f1viewer/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "f1viewer";
+  version = "2.4.0";
+
+  src = fetchFromGitHub {
+    owner = "SoMuchForSubtlety";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "7eXRUG74l9+9nU7EmDvNcHc+2pg5+/amjqtrzT60f94=";
+  };
+
+  vendorSha256 = "4pQ8NT0mh3w7naHEHh2w6Csop0uitlWClZ95VlYaPW0=";
+
+  meta = with lib; {
+    description =
+      "A TUI to view Formula 1 footage using VLC or another media player";
+    homepage = "https://github.com/SoMuchForSubtlety/f1viewer";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ michzappa ];
+  };
+}
diff --git a/pkgs/applications/video/giph/default.nix b/pkgs/applications/video/giph/default.nix
index 431f267e4c87e..3255544ff8b3c 100644
--- a/pkgs/applications/video/giph/default.nix
+++ b/pkgs/applications/video/giph/default.nix
@@ -37,7 +37,7 @@ stdenvNoCC.mkDerivation rec {
     homepage = "https://github.com/phisch/giph";
     description = "Simple gif recorder";
     license = licenses.mit;
-    maintainers = [ maintainers.legendofmiracles ];
+    maintainers = [ maintainers.lom ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/video/haruna/default.nix b/pkgs/applications/video/haruna/default.nix
index a9e87861365cf..5d204e8297a51 100644
--- a/pkgs/applications/video/haruna/default.nix
+++ b/pkgs/applications/video/haruna/default.nix
@@ -27,13 +27,13 @@
 
 mkDerivation rec {
   pname = "haruna";
-  version = "0.7.2";
+  version = "0.7.3";
 
   src = fetchFromGitLab {
     owner = "multimedia";
     repo = "haruna";
     rev = "v${version}";
-    sha256 = "sha256-0s4v3YJhSssp2S9mppMXq0AtWXPIaqOYWPmJgKjXjDE=";
+    sha256 = "sha256-pFrmTaRvsqxJw34VULzfjx2k56kJgkB96nJtai2D1wY=";
     domain = "invent.kde.org";
   };
 
diff --git a/pkgs/applications/video/jellyfin-mpv-shim/default.nix b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
index 651234be8e43b..827824930cb20 100644
--- a/pkgs/applications/video/jellyfin-mpv-shim/default.nix
+++ b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonApplication rec {
   pname = "jellyfin-mpv-shim";
-  version = "2.0.1";
+  version = "2.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-NXDLqQzCUfDPoKNPrmIn5FMedMKYxtDhkawRE2lg/vI=";
+    sha256 = "yFFMsGbzMAKyXpD/vZelswYulTYe5WybjG5pD2RpLrk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/video/kaffeine/default.nix b/pkgs/applications/video/kaffeine/default.nix
new file mode 100644
index 0000000000000..6cbce01f61f67
--- /dev/null
+++ b/pkgs/applications/video/kaffeine/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, kio
+, cmake
+, extra-cmake-modules
+, libvlc
+, libX11
+, kidletime
+, kdelibs4support
+, libXScrnSaver
+, wrapQtAppsHook
+, qtx11extras
+}:
+
+stdenv.mkDerivation rec {
+  pname = "kaffeine";
+  version = "2.0.18";
+
+  src = fetchFromGitLab {
+    domain = "invent.kde.org";
+    repo = pname;
+    owner = "Multimedia";
+    rev = "v${version}";
+    hash = "sha256-FOaS9gkzkHglbsNBNMwjzbHCNQg3Mbf+9so/Vfbaquc=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    libvlc
+    libX11
+    kidletime
+    qtx11extras
+    kdelibs4support
+    libXScrnSaver
+  ];
+
+  meta = with lib; {
+    description = "KDE media player";
+    homepage = "https://apps.kde.org/kaffeine/";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.pasqui23 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/applications/video/kodi-packages/a4ksubtitles/default.nix b/pkgs/applications/video/kodi/addons/a4ksubtitles/default.nix
index 9c62198cb0f3a..9c62198cb0f3a 100644
--- a/pkgs/applications/video/kodi-packages/a4ksubtitles/default.nix
+++ b/pkgs/applications/video/kodi/addons/a4ksubtitles/default.nix
diff --git a/pkgs/applications/video/kodi-packages/addon-update-script/default.nix b/pkgs/applications/video/kodi/addons/addon-update-script/default.nix
index 17c1d45783fa0..17c1d45783fa0 100644
--- a/pkgs/applications/video/kodi-packages/addon-update-script/default.nix
+++ b/pkgs/applications/video/kodi/addons/addon-update-script/default.nix
diff --git a/pkgs/applications/video/kodi-packages/archive_tool/default.nix b/pkgs/applications/video/kodi/addons/archive_tool/default.nix
index 4788556a8793a..4788556a8793a 100644
--- a/pkgs/applications/video/kodi-packages/archive_tool/default.nix
+++ b/pkgs/applications/video/kodi/addons/archive_tool/default.nix
diff --git a/pkgs/applications/video/kodi-packages/certifi/default.nix b/pkgs/applications/video/kodi/addons/certifi/default.nix
index 1088f560adf90..1088f560adf90 100644
--- a/pkgs/applications/video/kodi-packages/certifi/default.nix
+++ b/pkgs/applications/video/kodi/addons/certifi/default.nix
diff --git a/pkgs/applications/video/kodi-packages/chardet/default.nix b/pkgs/applications/video/kodi/addons/chardet/default.nix
index fe482447cfa3e..fe482447cfa3e 100644
--- a/pkgs/applications/video/kodi-packages/chardet/default.nix
+++ b/pkgs/applications/video/kodi/addons/chardet/default.nix
diff --git a/pkgs/applications/video/kodi-packages/controllers/default.nix b/pkgs/applications/video/kodi/addons/controllers/default.nix
index 825ad5d53fc40..825ad5d53fc40 100644
--- a/pkgs/applications/video/kodi-packages/controllers/default.nix
+++ b/pkgs/applications/video/kodi/addons/controllers/default.nix
diff --git a/pkgs/applications/video/kodi-packages/dateutil/default.nix b/pkgs/applications/video/kodi/addons/dateutil/default.nix
index 54a22cedf9058..54a22cedf9058 100644
--- a/pkgs/applications/video/kodi-packages/dateutil/default.nix
+++ b/pkgs/applications/video/kodi/addons/dateutil/default.nix
diff --git a/pkgs/applications/video/kodi-packages/defusedxml/default.nix b/pkgs/applications/video/kodi/addons/defusedxml/default.nix
index 11738065ff601..11738065ff601 100644
--- a/pkgs/applications/video/kodi-packages/defusedxml/default.nix
+++ b/pkgs/applications/video/kodi/addons/defusedxml/default.nix
diff --git a/pkgs/applications/video/kodi-packages/iagl/default.nix b/pkgs/applications/video/kodi/addons/iagl/default.nix
index 8ca0abdf960b9..8ca0abdf960b9 100644
--- a/pkgs/applications/video/kodi-packages/iagl/default.nix
+++ b/pkgs/applications/video/kodi/addons/iagl/default.nix
diff --git a/pkgs/applications/video/kodi-packages/idna/default.nix b/pkgs/applications/video/kodi/addons/idna/default.nix
index 01f16696faeec..01f16696faeec 100644
--- a/pkgs/applications/video/kodi-packages/idna/default.nix
+++ b/pkgs/applications/video/kodi/addons/idna/default.nix
diff --git a/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix b/pkgs/applications/video/kodi/addons/inputstream-adaptive/default.nix
index f8d3054cc8b2a..9fc59b2d329e2 100644
--- a/pkgs/applications/video/kodi-packages/inputstream-adaptive/default.nix
+++ b/pkgs/applications/video/kodi/addons/inputstream-adaptive/default.nix
@@ -2,13 +2,13 @@
 buildKodiBinaryAddon rec {
   pname = "inputstream-adaptive";
   namespace = "inputstream.adaptive";
-  version = "2.6.23";
+  version = "19.0.1";
 
   src = fetchFromGitHub {
     owner = "xbmc";
     repo = "inputstream.adaptive";
     rev = "${version}-${rel}";
-    sha256 = "sha256-3w/fMaGqaOHSE7GUJtYoWovBKSOv3sNOIX1UOcp8hQE=";
+    sha256 = "sha256-KMEo7kXyFMEeUR/HRvXpUhwDFlWsuwYZFA6bA3W1AmY=";
   };
 
   extraNativeBuildInputs = [ gtest ];
diff --git a/pkgs/applications/video/kodi-packages/inputstream-ffmpegdirect/default.nix b/pkgs/applications/video/kodi/addons/inputstream-ffmpegdirect/default.nix
index 53abde6c3f4ab..313456bbfa7cf 100644
--- a/pkgs/applications/video/kodi-packages/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 = "1.21.8";
+  version = "19.0.0";
 
   src = fetchFromGitHub {
     owner = "xbmc";
     repo = "inputstream.ffmpegdirect";
     rev = "${version}-${rel}";
-    sha256 = "0iq89vfb3p3b5qhivxs95xk122vgmbpixdvqpmkxp19rlyn3z9j6";
+    sha256 = "sha256-qdN2tmwS6uD9wrHnKC3iNvHnA2WlJAoNhdwvw16/L0U=";
   };
 
   extraBuildInputs = [ bzip2 zlib kodi.ffmpeg ];
diff --git a/pkgs/applications/video/kodi-packages/inputstream-rtmp/default.nix b/pkgs/applications/video/kodi/addons/inputstream-rtmp/default.nix
index c575cfccfccf3..0e3d06c3be57e 100644
--- a/pkgs/applications/video/kodi-packages/inputstream-rtmp/default.nix
+++ b/pkgs/applications/video/kodi/addons/inputstream-rtmp/default.nix
@@ -3,13 +3,13 @@
 buildKodiBinaryAddon rec {
   pname = "inputstream-rtmp";
   namespace = "inputstream.rtmp";
-  version = "3.4.0";
+  version = "19.0.1";
 
   src = fetchFromGitHub {
     owner = "xbmc";
     repo = "inputstream.rtmp";
     rev = "${version}-${rel}";
-    sha256 = "1q4k6plkjasnjs7gnbcc1x2mwr562ach7bkqk1z1y343s0dp9qnq";
+    sha256 = "sha256-BNc9HJ4Yq1WTxTr7AUHBB9yDz8oefy2EtFRwVYVGcaY=";
   };
 
   extraBuildInputs = [ openssl rtmpdump zlib ];
diff --git a/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix b/pkgs/applications/video/kodi/addons/inputstreamhelper/default.nix
index 7698e6619d91c..7698e6619d91c 100644
--- a/pkgs/applications/video/kodi-packages/inputstreamhelper/default.nix
+++ b/pkgs/applications/video/kodi/addons/inputstreamhelper/default.nix
diff --git a/pkgs/applications/video/kodi-packages/jellyfin/default.nix b/pkgs/applications/video/kodi/addons/jellyfin/default.nix
index 59aaa2e8b2613..59aaa2e8b2613 100644
--- a/pkgs/applications/video/kodi-packages/jellyfin/default.nix
+++ b/pkgs/applications/video/kodi/addons/jellyfin/default.nix
diff --git a/pkgs/applications/video/kodi-packages/joystick/default.nix b/pkgs/applications/video/kodi/addons/joystick/default.nix
index a1b9c3eeeefdb..a1b9c3eeeefdb 100644
--- a/pkgs/applications/video/kodi-packages/joystick/default.nix
+++ b/pkgs/applications/video/kodi/addons/joystick/default.nix
diff --git a/pkgs/applications/video/kodi-packages/keymap/default.nix b/pkgs/applications/video/kodi/addons/keymap/default.nix
index d7b45485d6837..d7b45485d6837 100644
--- a/pkgs/applications/video/kodi-packages/keymap/default.nix
+++ b/pkgs/applications/video/kodi/addons/keymap/default.nix
diff --git a/pkgs/applications/video/kodi-packages/kodi-platform/default.nix b/pkgs/applications/video/kodi/addons/kodi-platform/default.nix
index 6d458f7377d72..6d458f7377d72 100644
--- a/pkgs/applications/video/kodi-packages/kodi-platform/default.nix
+++ b/pkgs/applications/video/kodi/addons/kodi-platform/default.nix
diff --git a/pkgs/applications/video/kodi-packages/kodi-six/default.nix b/pkgs/applications/video/kodi/addons/kodi-six/default.nix
index 24404ef349e28..24404ef349e28 100644
--- a/pkgs/applications/video/kodi-packages/kodi-six/default.nix
+++ b/pkgs/applications/video/kodi/addons/kodi-six/default.nix
diff --git a/pkgs/applications/video/kodi-packages/libretro-genplus/default.nix b/pkgs/applications/video/kodi/addons/libretro-genplus/default.nix
index 064375107e26e..064375107e26e 100644
--- a/pkgs/applications/video/kodi-packages/libretro-genplus/default.nix
+++ b/pkgs/applications/video/kodi/addons/libretro-genplus/default.nix
diff --git a/pkgs/applications/video/kodi-packages/libretro-mgba/default.nix b/pkgs/applications/video/kodi/addons/libretro-mgba/default.nix
index a58f1c51b295f..a58f1c51b295f 100644
--- a/pkgs/applications/video/kodi-packages/libretro-mgba/default.nix
+++ b/pkgs/applications/video/kodi/addons/libretro-mgba/default.nix
diff --git a/pkgs/applications/video/kodi-packages/libretro-snes9x/default.nix b/pkgs/applications/video/kodi/addons/libretro-snes9x/default.nix
index 640aec3d49714..640aec3d49714 100644
--- a/pkgs/applications/video/kodi-packages/libretro-snes9x/default.nix
+++ b/pkgs/applications/video/kodi/addons/libretro-snes9x/default.nix
diff --git a/pkgs/applications/video/kodi-packages/libretro/default.nix b/pkgs/applications/video/kodi/addons/libretro/default.nix
index d1fc3d4afd2b0..d1fc3d4afd2b0 100644
--- a/pkgs/applications/video/kodi-packages/libretro/default.nix
+++ b/pkgs/applications/video/kodi/addons/libretro/default.nix
diff --git a/pkgs/applications/video/kodi-packages/myconnpy/default.nix b/pkgs/applications/video/kodi/addons/myconnpy/default.nix
index e39625545f6ac..e39625545f6ac 100644
--- a/pkgs/applications/video/kodi-packages/myconnpy/default.nix
+++ b/pkgs/applications/video/kodi/addons/myconnpy/default.nix
diff --git a/pkgs/applications/video/kodi-packages/netflix/default.nix b/pkgs/applications/video/kodi/addons/netflix/default.nix
index d9d11657e8b95..86f5dfb7545c9 100644
--- a/pkgs/applications/video/kodi-packages/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.16.2";
+  version = "1.18.2";
 
   src = fetchFromGitHub {
     owner = "CastagnaIT";
     repo = namespace;
     rev = "v${version}";
-    sha256 = "0yycwm8vrpkr4fsbf713mhpnaxfd849nhzp5r1898sb9vldab4xk";
+    sha256 = "sha256-nunjcVapWWTxYtILEcrkfJiWvSz71zyxSCbWQ4aCfLM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/video/kodi-packages/osmc-skin/default.nix b/pkgs/applications/video/kodi/addons/osmc-skin/default.nix
index 7bbb62029bba2..7bbb62029bba2 100644
--- a/pkgs/applications/video/kodi-packages/osmc-skin/default.nix
+++ b/pkgs/applications/video/kodi/addons/osmc-skin/default.nix
diff --git a/pkgs/applications/video/kodi-packages/pdfreader/default.nix b/pkgs/applications/video/kodi/addons/pdfreader/default.nix
index 62a5853c796b8..62a5853c796b8 100644
--- a/pkgs/applications/video/kodi-packages/pdfreader/default.nix
+++ b/pkgs/applications/video/kodi/addons/pdfreader/default.nix
diff --git a/pkgs/applications/video/kodi-packages/pvr-hdhomerun/default.nix b/pkgs/applications/video/kodi/addons/pvr-hdhomerun/default.nix
index 7cdc5a0c63517..1ff78164ddc07 100644
--- a/pkgs/applications/video/kodi-packages/pvr-hdhomerun/default.nix
+++ b/pkgs/applications/video/kodi/addons/pvr-hdhomerun/default.nix
@@ -2,13 +2,13 @@
 buildKodiBinaryAddon rec {
   pname = "pvr-hdhomerun";
   namespace = "pvr.hdhomerun";
-  version = "7.1.1";
+  version = "19.0.1";
 
   src = fetchFromGitHub {
     owner = "kodi-pvr";
     repo = "pvr.hdhomerun";
     rev = "${version}-${rel}";
-    sha256 = "sha256-mQeeeCOxhUTiUcOJ1OiIiJ+7envAIGO67Bp4EAf4sIE=";
+    sha256 = "sha256-WeokXU4HY22SzL1djORzru5Hju58Ix0+InwZDr++FC8=";
   };
 
   extraBuildInputs = [ jsoncpp libhdhomerun ];
diff --git a/pkgs/applications/video/kodi-packages/pvr-hts/default.nix b/pkgs/applications/video/kodi/addons/pvr-hts/default.nix
index 30f5c895c3552..30f56b2c3c7be 100644
--- a/pkgs/applications/video/kodi-packages/pvr-hts/default.nix
+++ b/pkgs/applications/video/kodi/addons/pvr-hts/default.nix
@@ -2,13 +2,13 @@
 buildKodiBinaryAddon rec {
   pname = "pvr-hts";
   namespace = "pvr.hts";
-  version = "8.3.4";
+  version = "19.0.3";
 
   src = fetchFromGitHub {
     owner = "kodi-pvr";
     repo = "pvr.hts";
     rev = "${version}-${rel}";
-    sha256 = "15gv499r6jf89chp7xpv0z4v0nia907czs83lz57lxydqcbmmjnn";
+    sha256 = "sha256-kO+wRFt4MudYP9UOTaruRCWs/QMla+BYTRfSUdlVpR8=";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix b/pkgs/applications/video/kodi/addons/pvr-iptvsimple/default.nix
index 7905ffc8ef5a2..17811c162920b 100644
--- a/pkgs/applications/video/kodi-packages/pvr-iptvsimple/default.nix
+++ b/pkgs/applications/video/kodi/addons/pvr-iptvsimple/default.nix
@@ -6,13 +6,13 @@
 buildKodiBinaryAddon rec {
   pname = "pvr-iptvsimple";
   namespace = "pvr.iptvsimple";
-  version = "7.6.9";
+  version = "19.0.2";
 
   src = fetchFromGitHub {
     owner = "kodi-pvr";
     repo = "pvr.iptvsimple";
     rev = "${version}-${rel}";
-    sha256 = "1nj4qgr35cw5ly16w2fdgscz5245d7mgvm4sxgxy19jkyv7jmzn3";
+    sha256 = "sha256-WPLXESP5QvjroCygzMQc3+QKbsA05ri0oKvsqBQv8w0=";
   };
 
   extraBuildInputs = [
diff --git a/pkgs/applications/video/kodi-packages/requests-cache/default.nix b/pkgs/applications/video/kodi/addons/requests-cache/default.nix
index de785ab9bb523..de785ab9bb523 100644
--- a/pkgs/applications/video/kodi-packages/requests-cache/default.nix
+++ b/pkgs/applications/video/kodi/addons/requests-cache/default.nix
diff --git a/pkgs/applications/video/kodi-packages/requests/default.nix b/pkgs/applications/video/kodi/addons/requests/default.nix
index c5759fcc325b8..c5759fcc325b8 100644
--- a/pkgs/applications/video/kodi-packages/requests/default.nix
+++ b/pkgs/applications/video/kodi/addons/requests/default.nix
diff --git a/pkgs/applications/video/kodi-packages/routing/default.nix b/pkgs/applications/video/kodi/addons/routing/default.nix
index a75e786cf1ffe..a75e786cf1ffe 100644
--- a/pkgs/applications/video/kodi-packages/routing/default.nix
+++ b/pkgs/applications/video/kodi/addons/routing/default.nix
diff --git a/pkgs/applications/video/kodi-packages/signals/default.nix b/pkgs/applications/video/kodi/addons/signals/default.nix
index b66b1e99a8bf3..b66b1e99a8bf3 100644
--- a/pkgs/applications/video/kodi-packages/signals/default.nix
+++ b/pkgs/applications/video/kodi/addons/signals/default.nix
diff --git a/pkgs/applications/video/kodi-packages/six/default.nix b/pkgs/applications/video/kodi/addons/six/default.nix
index 1742d1f6f0492..1742d1f6f0492 100644
--- a/pkgs/applications/video/kodi-packages/six/default.nix
+++ b/pkgs/applications/video/kodi/addons/six/default.nix
diff --git a/pkgs/applications/video/kodi-packages/steam-controller/default.nix b/pkgs/applications/video/kodi/addons/steam-controller/default.nix
index d2b79029f7ccc..d2b79029f7ccc 100644
--- a/pkgs/applications/video/kodi-packages/steam-controller/default.nix
+++ b/pkgs/applications/video/kodi/addons/steam-controller/default.nix
diff --git a/pkgs/applications/video/kodi-packages/steam-launcher/default.nix b/pkgs/applications/video/kodi/addons/steam-launcher/default.nix
index c4a695b8f8137..c4a695b8f8137 100644
--- a/pkgs/applications/video/kodi-packages/steam-launcher/default.nix
+++ b/pkgs/applications/video/kodi/addons/steam-launcher/default.nix
diff --git a/pkgs/applications/video/kodi-packages/steam-library/default.nix b/pkgs/applications/video/kodi/addons/steam-library/default.nix
index fe772c9f732a9..fe772c9f732a9 100644
--- a/pkgs/applications/video/kodi-packages/steam-library/default.nix
+++ b/pkgs/applications/video/kodi/addons/steam-library/default.nix
diff --git a/pkgs/applications/video/kodi-packages/svtplay/default.nix b/pkgs/applications/video/kodi/addons/svtplay/default.nix
index db4fbb642c05c..db4fbb642c05c 100644
--- a/pkgs/applications/video/kodi-packages/svtplay/default.nix
+++ b/pkgs/applications/video/kodi/addons/svtplay/default.nix
diff --git a/pkgs/applications/video/kodi-packages/urllib3/default.nix b/pkgs/applications/video/kodi/addons/urllib3/default.nix
index de0fbb997654e..de0fbb997654e 100644
--- a/pkgs/applications/video/kodi-packages/urllib3/default.nix
+++ b/pkgs/applications/video/kodi/addons/urllib3/default.nix
diff --git a/pkgs/applications/video/kodi-packages/vfs-libarchive/default.nix b/pkgs/applications/video/kodi/addons/vfs-libarchive/default.nix
index 2db17f17abad9..2db17f17abad9 100644
--- a/pkgs/applications/video/kodi-packages/vfs-libarchive/default.nix
+++ b/pkgs/applications/video/kodi/addons/vfs-libarchive/default.nix
diff --git a/pkgs/applications/video/kodi-packages/vfs-sftp/default.nix b/pkgs/applications/video/kodi/addons/vfs-sftp/default.nix
index e41f008281ad8..e41f008281ad8 100644
--- a/pkgs/applications/video/kodi-packages/vfs-sftp/default.nix
+++ b/pkgs/applications/video/kodi/addons/vfs-sftp/default.nix
diff --git a/pkgs/applications/video/kodi-packages/websocket/default.nix b/pkgs/applications/video/kodi/addons/websocket/default.nix
index 423dfa73f34f8..423dfa73f34f8 100644
--- a/pkgs/applications/video/kodi-packages/websocket/default.nix
+++ b/pkgs/applications/video/kodi/addons/websocket/default.nix
diff --git a/pkgs/applications/video/kodi-packages/youtube/default.nix b/pkgs/applications/video/kodi/addons/youtube/default.nix
index 090e09d55ef6d..090e09d55ef6d 100644
--- a/pkgs/applications/video/kodi-packages/youtube/default.nix
+++ b/pkgs/applications/video/kodi/addons/youtube/default.nix
diff --git a/pkgs/applications/video/kodi/unwrapped.nix b/pkgs/applications/video/kodi/unwrapped.nix
index 5fa652de0c7e6..dc5e41aeac5b0 100644
--- a/pkgs/applications/video/kodi/unwrapped.nix
+++ b/pkgs/applications/video/kodi/unwrapped.nix
@@ -198,10 +198,10 @@ in stdenv.mkDerivation {
     '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
       # Need these tools on the build system when cross compiling,
       # hacky, but have found no other way.
-      CXX=${stdenv.cc.targetPrefix}c++ LD=ld make -C tools/depends/native/JsonSchemaBuilder
+      CXX=$CXX_FOR_BUILD LD=ld make -C tools/depends/native/JsonSchemaBuilder
       cmakeFlags+=" -DWITH_JSONSCHEMABUILDER=$PWD/tools/depends/native/JsonSchemaBuilder/bin"
 
-      CXX=${stdenv.cc.targetPrefix}c++ LD=ld make EXTRA_CONFIGURE= -C tools/depends/native/TexturePacker
+      CXX=$CXX_FOR_BUILD LD=ld make EXTRA_CONFIGURE= -C tools/depends/native/TexturePacker
       cmakeFlags+=" -DWITH_TEXTUREPACKER=$PWD/tools/depends/native/TexturePacker/bin"
     '';
 
diff --git a/pkgs/applications/video/kodi/wrapper.nix b/pkgs/applications/video/kodi/wrapper.nix
index 7377e638676eb..52b7679a325ea 100644
--- a/pkgs/applications/video/kodi/wrapper.nix
+++ b/pkgs/applications/video/kodi/wrapper.nix
@@ -22,7 +22,7 @@ buildEnv {
   paths = [ kodi ] ++ addons;
   pathsToLink = [ "/share" ];
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   postBuild = ''
     mkdir $out/bin
diff --git a/pkgs/applications/video/kooha/default.nix b/pkgs/applications/video/kooha/default.nix
index 6203041ed63eb..f5be866473903 100644
--- a/pkgs/applications/video/kooha/default.nix
+++ b/pkgs/applications/video/kooha/default.nix
@@ -1,28 +1,40 @@
-{ lib, fetchFromGitHub, appstream-glib, desktop-file-utils, glib
-, gobject-introspection, gst_all_1, gtk4, libadwaita, librsvg, meson, ninja
-, pkg-config, python3, wrapGAppsHook }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, appstream-glib
+, desktop-file-utils
+, glib
+, gobject-introspection
+, gst_all_1
+, gtk4
+, libadwaita
+, libpulseaudio
+, librsvg
+, meson
+, ninja
+, pkg-config
+, python3
+, rustPlatform
+, wayland
+, wrapGAppsHook
+}:
 
-python3.pkgs.buildPythonApplication rec {
+stdenv.mkDerivation rec {
   pname = "kooha";
-  version = "1.2.1";
-  format = "other";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "SeaDve";
     repo = "Kooha";
     rev = "v${version}";
-    sha256 = "1qwbzdn0n1nxcfci1bhhkfchdhw5yz74fdvsa84cznyyx2jils8w";
+    sha256 = "05ynpwjdpl7zp9f17zhhvb59rbz3gd7hc0amla1g85ldgfxbgl00";
   };
 
-  buildInputs = [
-    glib
-    gobject-introspection
-    gst_all_1.gstreamer
-    gst_all_1.gst-plugins-base
-    gtk4
-    libadwaita
-    librsvg
-  ];
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256:16zf6vb001z7xdv2g4kpmb2vqsmaql2cpsx1rl9zrfhpl2z6frs9";
+  };
 
   nativeBuildInputs = [
     appstream-glib
@@ -31,21 +43,31 @@ python3.pkgs.buildPythonApplication rec {
     ninja
     python3
     pkg-config
+    rustPlatform.cargoSetupHook
+    rustPlatform.rust.cargo
+    rustPlatform.rust.rustc
+    wayland
     wrapGAppsHook
   ];
 
+  buildInputs = [
+    glib
+    gobject-introspection
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    gtk4
+    libadwaita
+    libpulseaudio
+    librsvg
+  ];
+
   propagatedBuildInputs = [ python3.pkgs.pygobject3 ];
 
   strictDeps = false;
 
-  buildPhase = ''
-    export GST_PLUGIN_SYSTEM_PATH_1_0="$out/lib/gstreamer-1.0/:$GST_PLUGIN_SYSTEM_PATH_1_0"
-  '';
-
   # Fixes https://github.com/NixOS/nixpkgs/issues/31168
   postPatch = ''
-    chmod +x build-aux/meson/postinstall.py
-    patchShebangs build-aux/meson/postinstall.py
+    patchShebangs build-aux/meson_post_install.py
   '';
 
   installCheckPhase = ''
diff --git a/pkgs/applications/video/mediathekview/default.nix b/pkgs/applications/video/mediathekview/default.nix
index 1a6f197213314..7f36fd232e971 100644
--- a/pkgs/applications/video/mediathekview/default.nix
+++ b/pkgs/applications/video/mediathekview/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, makeWrapper, jre }:
+{ lib, stdenv, fetchurl, makeWrapper, jre, zip }:
 
 stdenv.mkDerivation rec {
   version = "13.8.0";
@@ -8,13 +8,16 @@ stdenv.mkDerivation rec {
     sha256 = "0zfkwz5psv7m0881ykgqrxwjhadg39c55aj2wpy7m1jdara86c5q";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper zip ];
 
   installPhase = ''
     runHook preInstall
 
     mkdir -p $out/{bin,lib}
 
+    # log4j mitigation, see https://logging.apache.org/log4j/2.x/security.html
+    zip -d MediathekView.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
+
     install -m644 MediathekView.jar $out/lib
 
     makeWrapper ${jre}/bin/java $out/bin/mediathek \
diff --git a/pkgs/applications/video/minitube/default.nix b/pkgs/applications/video/minitube/default.nix
index 62e7e21cbbb30..4e8373383a8e0 100644
--- a/pkgs/applications/video/minitube/default.nix
+++ b/pkgs/applications/video/minitube/default.nix
@@ -6,10 +6,10 @@
 
 mkDerivation rec {
   pname = "minitube";
-  version = "3.9.1";
+  version = "3.9.2";
 
   src = fetchFromGitHub {
-    sha256 = "sha256-1BVHxB7WtXCAJqP+uADszdVPc+T3ctCCzfoJPCb5ZTE=";
+    sha256 = "sha256-MIzfo17eAvpWO2HNq9z+D9XiOKTRiUHvaOdxI1EK1f0=";
     rev = version;
     repo = "minitube";
     owner = "flaviotordini";
diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix
index 4eac16d349bf6..c6628dde0590b 100644
--- a/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/pkgs/applications/video/mkvtoolnix/default.nix
@@ -47,13 +47,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mkvtoolnix";
-  version = "62.0.0";
+  version = "63.0.0";
 
   src = fetchFromGitLab {
     owner = "mbunkus";
     repo = "mkvtoolnix";
     rev = "release-${version}";
-    sha256 = "0pjf1lkpjirqanazm7a28b8bsyin4i1kd1s4y169zsilzb28kpiz";
+    sha256 = "0jniy2kkg4fkrgyw2k8jcpq872qzkrxkbpbc7ksadm2rdygsa3xh";
   };
 
   nativeBuildInputs = [
@@ -122,11 +122,6 @@ stdenv.mkDerivation rec {
 
   dontWrapQtApps = true;
 
-  # Avoid Qt 5.12 problem on Big Sur: https://bugreports.qt.io/browse/QTBUG-87014
-  qtWrapperArgs = lib.optionals stdenv.isDarwin [
-    "--set QT_MAC_WANTS_LAYER 1"
-  ];
-
   postFixup = optionalString withGUI ''
     wrapQtApp $out/bin/mkvtoolnix-gui
   '';
diff --git a/pkgs/applications/video/mpv/scripts/cutter.nix b/pkgs/applications/video/mpv/scripts/cutter.nix
new file mode 100644
index 0000000000000..498fcb530a41f
--- /dev/null
+++ b/pkgs/applications/video/mpv/scripts/cutter.nix
@@ -0,0 +1,47 @@
+{ lib, stdenvNoCC, fetchFromGitHub, makeWrapper }:
+
+stdenvNoCC.mkDerivation {
+  pname = "video-cutter";
+  version = "unstable-2021-02-03";
+
+  src = fetchFromGitHub {
+    owner = "rushmj";
+    repo = "mpv-video-cutter";
+    rev = "718d6ce9356e63fdd47208ec44f575a212b9068a";
+    sha256 = "sha256-ramID1DPl0UqEzevpqdYKb9aaW3CAy3Dy9CPb/oJ4eY=";
+  };
+
+  dontBuild = true;
+  dontCheck = true;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postPatch = ''
+    substituteInPlace cutter.lua \
+      --replace '~/.config/mpv/scripts/c_concat.sh' '${placeholder "out"}/share/mpv/scripts/c_concat.sh'
+
+    # needs to be ran separately so that we can replace everything, and not every single mention explicitly
+    # original script places them in the scripts folder, just spawning unnecessary errors
+    # i know that hardcoding .config and especially the .mpv directory isn't best practice, but I didn't want to deviate too much from upstream
+    substituteInPlace cutter.lua \
+      --replace '~/.config/mpv/scripts' "''${XDG_CONFIG_HOME:-~/.config}/mpv/cutter"
+  '';
+
+  installPhase = ''
+    install -Dm755 c_concat.sh $out/share/mpv/scripts/c_concat.sh
+    install cutter.lua $out/share/mpv/scripts/cutter.lua
+
+    wrapProgram $out/share/mpv/scripts/c_concat.sh \
+      --run "mkdir -p ~/.config/mpv/cutter/"
+  '';
+
+  passthru.scriptName = "cutter.lua";
+
+  meta = with lib; {
+    description = "Cut videos and concat them automatically";
+    homepage = "https://github.com/rushmj/mpv-video-cutter";
+    # repo doesn't have a license
+    license = licenses.unfree;
+    maintainers = with maintainers; [ lom ];
+  };
+}
diff --git a/pkgs/applications/video/mpv/wrapper.nix b/pkgs/applications/video/mpv/wrapper.nix
index c097489a33c45..28414c3756d99 100644
--- a/pkgs/applications/video/mpv/wrapper.nix
+++ b/pkgs/applications/video/mpv/wrapper.nix
@@ -80,7 +80,10 @@ let
         makeWrapper "${mpv}/Applications/mpv.app/Contents/MacOS/mpv" "$out/Applications/mpv.app/Contents/MacOS/mpv" ${mostMakeWrapperArgs}
       '';
 
-      meta.mainProgram = "mpv";
+      meta = {
+        inherit (mpv.meta) homepage description longDescription maintainers;
+        mainProgram = "mpv";
+      };
     };
 in
   lib.makeOverridable wrapper
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-nvfbc.nix b/pkgs/applications/video/obs-studio/plugins/obs-nvfbc.nix
index e64031ce7bbeb..50abb96bac59e 100644
--- a/pkgs/applications/video/obs-studio/plugins/obs-nvfbc.nix
+++ b/pkgs/applications/video/obs-studio/plugins/obs-nvfbc.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "obs-nvfbc";
-  version = "0.0.3";
+  version = "0.0.4";
 
   src = fetchFromGitLab {
     owner = "fzwoch";
     repo = "obs-nvfbc";
     rev = "v${version}";
-    sha256 = "0zyvks6gc6fr0a1j5b4y20rcx6ah35v6yiz05f6g3x6bhqi92l33";
+    sha256 = "sha256-U/zma1BrOTRAJAYMOcmaeL0UqF3ihysDwceyeW1r0b8=";
   };
 
   nativeBuildInputs = [ meson pkg-config ninja ];
diff --git a/pkgs/applications/video/obs-studio/plugins/obs-websocket.nix b/pkgs/applications/video/obs-studio/plugins/obs-websocket.nix
index eb95353e8d6c4..5c13d33ae466f 100644
--- a/pkgs/applications/video/obs-studio/plugins/obs-websocket.nix
+++ b/pkgs/applications/video/obs-studio/plugins/obs-websocket.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "obs-websocket";
-  version = "4.9.0";
+  version = "4.9.1";
 
   src = fetchFromGitHub {
     owner = "Palakis";
     repo = "obs-websocket";
     rev = version;
-    sha256 = "1dxih5czcfs1vczbq48784jvmgs8awbsrwk8mdfi4pg8n577cr1w";
+    sha256 = "sha256-XCiSNWTiA/u+3IbYlhIc5bCjKjLHDRVjYIG5MEoYnr0=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/video/qarte/default.nix b/pkgs/applications/video/qarte/default.nix
index 116cf39e3fb85..5fc62912c24a4 100644
--- a/pkgs/applications/video/qarte/default.nix
+++ b/pkgs/applications/video/qarte/default.nix
@@ -4,12 +4,12 @@ let
   pythonEnv = python3.withPackages (ps: with ps; [ pyqt5_with_qtmultimedia ]);
 in mkDerivation {
   pname = "qarte";
-  version = "4.12.0";
+  version = "4.15.1";
 
   src = fetchbzr {
     url = "http://bazaar.launchpad.net/~vincent-vandevyvre/qarte/qarte-4";
-    rev = "56";
-    sha256 = "0cq9dg04grl45xw43gi9wsb0vm8c4bcvh813h5lm4ry8b94lfx2i";
+    rev = "67";
+    sha256 = "sha256:0ajvrvpyqyyxnq9nv69p3sr6c1kplphvrpph75k76yl0av94j2s3";
   };
 
   buildInputs = [ pythonEnv ];
diff --git a/pkgs/applications/video/qmplay2/default.nix b/pkgs/applications/video/qmplay2/default.nix
index 538f540c63be5..9621b8864c9ad 100644
--- a/pkgs/applications/video/qmplay2/default.nix
+++ b/pkgs/applications/video/qmplay2/default.nix
@@ -22,13 +22,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "qmplay2";
-  version = "21.06.07";
+  version = "21.12.24";
 
   src = fetchFromGitHub {
     owner = "zaps166";
     repo = "QMPlay2";
     rev = version;
-    sha256 = "sha256-NV9uglYnqebXhMx8uL0DhGe9l5TBVjlSIaB4IWC8YAc=";
+    sha256 = "sha256-SHReKh+M1rgSIiweYFgVvwMeKWeQD52S4KxEiTsyHrI=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/video/streamlink/default.nix b/pkgs/applications/video/streamlink/default.nix
index c82cfb47cc321..7fa9072fbf1ce 100644
--- a/pkgs/applications/video/streamlink/default.nix
+++ b/pkgs/applications/video/streamlink/default.nix
@@ -6,11 +6,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "streamlink";
-  version = "3.0.1";
+  version = "3.0.3";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "sha256-GDbUlu5tRL5mdT7KrIdmxCbeAtYL1xvZXyZFwiuvKXo=";
+    sha256 = "sha256-oEK9p6OuqGSm2JdgfnJ+N0sJtRq6wCoVCGcU0GNEMLI=";
   };
 
   checkInputs = with python3Packages; [
diff --git a/pkgs/applications/video/stremio/default.nix b/pkgs/applications/video/stremio/default.nix
new file mode 100644
index 0000000000000..0316318534dcd
--- /dev/null
+++ b/pkgs/applications/video/stremio/default.nix
@@ -0,0 +1,44 @@
+{ lib, stdenv, fetchurl, fetchFromGitHub, qmake, wrapQtAppsHook
+, mpv, qtwebengine, qtwebchannel, nodejs
+}:
+
+stdenv.mkDerivation rec {
+  pname = "stremio-shell";
+  version = "4.4.142";
+
+  src = fetchFromGitHub {
+    owner = "Stremio";
+    repo = pname;
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "sha256-OyuTFmEIC8PH4PDzTMn8ibLUAzJoPA/fTILee0xpgQI=";
+  };
+
+  server = fetchurl {
+    url = "https://s3-eu-west-1.amazonaws.com/stremio-artifacts/four/v${version}/server.js";
+    sha256 = "sha256-YYeD3SEbLgNQHGP5AI9WiHUU6xLkTeFAqYIuWsIsYSs=";
+  };
+
+  buildInputs = [ qtwebengine mpv ];
+
+  nativeBuildInputs = [ qmake wrapQtAppsHook ];
+
+  postInstall = ''
+    mkdir -p $out/{bin,share/applications}
+    ln -s $out/opt/stremio/stremio $out/bin/stremio
+    mv $out/opt/stremio/smartcode-stremio.desktop $out/share/applications
+    ln -s ${nodejs}/bin/node $out/opt/stremio/node
+    ln -s $server $out/opt/stremio/server.js
+  '';
+
+  meta = with lib; {
+    description = "A modern media center that gives you the freedom to watch everything you want.";
+    homepage = "https://www.stremio.com/";
+    # (Server-side) web UI is closed source now, apparently they work on open-sourcing it.
+    # server.js appears to be MIT-licensed, but I can't find how they actually build it.
+    # https://www.reddit.com/r/StremioAddons/comments/n2ob04/a_summary_of_how_stremio_works_internally_and/
+    license = with licenses; [ gpl3 mit ];
+    maintainers = with maintainers; [ abbradar ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/video/ustreamer/default.nix b/pkgs/applications/video/ustreamer/default.nix
index 580c10da1d5ab..6dc8aa56b5cc0 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 = "4.6";
+  version = "4.9";
 
   src = fetchFromGitHub {
     owner = "pikvm";
     repo = "ustreamer";
     rev = "v${version}";
-    sha256 = "sha256-FBgnE9EKZf3aYrGNf9cday9r4Q7Ztu7g+0LnFKAhvrI=";
+    sha256 = "sha256-dYwR+D2g4PxYyhsH9mGwgzTQ2Vw5UpMSomTl828gFvM=";
   };
 
   buildInputs = [ libbsd libevent libjpeg ];
diff --git a/pkgs/applications/video/vcs/default.nix b/pkgs/applications/video/vcs/default.nix
index 4998797fcf3a1..37ea20718fd6e 100644
--- a/pkgs/applications/video/vcs/default.nix
+++ b/pkgs/applications/video/vcs/default.nix
@@ -1,11 +1,15 @@
 { lib, stdenv, fetchurl, makeWrapper
-, coreutils, ffmpeg, gawk, gnugrep, gnused, imagemagick, mplayer, util-linux
+, coreutils, ffmpeg, gawk, gnugrep, gnused, imagemagick, mplayer
+, util-linux, getopt
 , dejavu_fonts
 }:
 with lib;
 let
   version = "1.13.4";
-  runtimeDeps = [ coreutils ffmpeg gawk gnugrep gnused imagemagick mplayer util-linux ];
+  gopt = if stdenv.isLinux then util-linux else getopt;
+  runtimeDeps = [
+    coreutils ffmpeg gawk gnugrep gnused imagemagick mplayer gopt
+  ];
 in
 stdenv.mkDerivation {
   pname = "vcs";
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index ce9a72aebf9a4..5ef62ff6b4666 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -7,8 +7,8 @@
 , mpeg2dec, systemd, gnutls, avahi, libcddb, libjack2, SDL, SDL_image
 , libmtp, unzip, taglib, libkate, libtiger, libv4l, samba, libssh2, liboggz
 , libass, libva, libdvbpsi, libdc1394, libraw1394, libopus
-, libvdpau, libsamplerate, live555, fluidsynth, wayland, wayland-protocols
-, ncurses, srt
+, libvdpau, libsamplerate, libspatialaudio, live555, fluidsynth
+, wayland, wayland-protocols, ncurses, srt
 , onlyLibVLC ? false
 , withQt5 ? true, qtbase, qtsvg, qtx11extras, wrapQtAppsHook
 , jackSupport ? false
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
     libkate libtiger libv4l samba libssh2 liboggz libass libdvbpsi libva
     xorg.xlibsWrapper xorg.libXv xorg.libXvMC xorg.libXpm xorg.xcbutilkeysyms
     libdc1394 libraw1394 libopus libebml libmatroska libvdpau libsamplerate
-    fluidsynth wayland wayland-protocols ncurses srt
+    libspatialaudio fluidsynth wayland wayland-protocols ncurses srt
   ] ++ optional (!stdenv.hostPlatform.isAarch64 && !stdenv.hostPlatform.isAarch32) live555
     ++ optionals withQt5    [ qtbase qtsvg qtx11extras ]
     ++ optionals skins2Support (with xorg; [ libXpm freetype libXext libXinerama ])
@@ -101,6 +101,12 @@ stdenv.mkDerivation rec {
     sed -i 's|^#define CONFIGURE_LINE.*$|#define CONFIGURE_LINE "<removed>"|g' config.h
   '';
 
+  # Add missing SOFA files
+  # Given in EXTRA_DIST, but not in install-data target
+  postInstall = ''
+    cp -R share/hrtfs $out/share/vlc
+  '';
+
   meta = with lib; {
     description = "Cross-platform media player and streaming server";
     homepage = "http://www.videolan.org/vlc/";
diff --git a/pkgs/applications/video/xine-ui/default.nix b/pkgs/applications/video/xine-ui/default.nix
index 87b975e80fb76..3d44796f78cd7 100644
--- a/pkgs/applications/video/xine-ui/default.nix
+++ b/pkgs/applications/video/xine-ui/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xine-ui";
-  version = "0.99.12";
+  version = "0.99.13";
 
   src = fetchurl {
     url = "mirror://sourceforge/xine/${pname}-${version}.tar.xz";
-    sha256 = "10zmmss3hm8gjjyra20qhdc0lb1m6sym2nb2w62bmfk8isfw9gsl";
+    sha256 = "sha256-sjgtB1xysbEAOeDpAxDMhsjZEDWMU1We2C09WEIB9cU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/virtualization/buildkit-nix/default.nix b/pkgs/applications/virtualization/buildkit-nix/default.nix
new file mode 100644
index 0000000000000..1a7a8c9330462
--- /dev/null
+++ b/pkgs/applications/virtualization/buildkit-nix/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "buildkit-nix";
+  version = "0.0.2";
+
+  src = fetchFromGitHub {
+    owner = "AkihiroSuda";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-k9YO4KFIDebfszhKG6RYDFlVfbUPFHRsHRQXXlJ6SoU=";
+  };
+
+  vendorSha256 = "sha256-c+VHt2uTaEQIXsmJ9TA7X5lfMxGL9yKbbnnXn4drCLU=";
+
+  CGO_ENABLED = 0;
+
+  ldflags = [ "-s" "-w" ];
+
+  meta = with lib; {
+    description = "Nix frontend for BuildKit";
+    homepage = "https://github.com/AkihiroSuda/buildkit-nix/";
+    license = licenses.asl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ lesuisse ];
+  };
+}
diff --git a/pkgs/applications/virtualization/cloud-hypervisor/default.nix b/pkgs/applications/virtualization/cloud-hypervisor/default.nix
index 1afab167308f3..f68c1ddc8a509 100644
--- a/pkgs/applications/virtualization/cloud-hypervisor/default.nix
+++ b/pkgs/applications/virtualization/cloud-hypervisor/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cloud-hypervisor";
-  version = "19.0";
+  version = "20.1";
 
   src = fetchFromGitHub {
     owner = "cloud-hypervisor";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0h3varacv9696mih8zrz3fp6xa8hxxvwzkrslhpf9ilcjs1bjihd";
+    sha256 = "1r55ykxwa0xr1f9sp7mnv8nqf0dr7vw62b1w8r7mmyrndwnq6z5b";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ] ++ lib.optional stdenv.isAarch64 dtc;
 
-  cargoSha256 = "015r9m9fr634ppn4qy0b8w1khjlxsv3wbpf3s7crmklzy57wakxl";
+  cargoSha256 = "07wpfhlp82hp3hr8vc52vhkrxd8xpyvdvfqh1dn1fnhxk3b1z7lz";
 
   meta = with lib; {
     homepage = "https://github.com/cloud-hypervisor/cloud-hypervisor";
diff --git a/pkgs/applications/virtualization/colima/default.nix b/pkgs/applications/virtualization/colima/default.nix
new file mode 100644
index 0000000000000..92e190168cf1c
--- /dev/null
+++ b/pkgs/applications/virtualization/colima/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+, lima
+, makeWrapper
+}:
+
+buildGoModule rec {
+  pname = "colima";
+  version = "0.2.2";
+
+  src = fetchFromGitHub {
+    owner = "abiosoft";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-vWNkYsT2XF+oMOQ3pb1+/a207js8B+EmVanRQrYE/2A=";
+  };
+
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
+
+  vendorSha256 = "sha256-F1ym88JrJWzsBg89Y1ufH4oefIRBwTGOw72BrjtpvBw=";
+
+  postInstall = ''
+    wrapProgram $out/bin/colima \
+      --prefix PATH : ${lib.makeBinPath [ lima ]}
+
+    installShellCompletion --cmd colima \
+      --bash <($out/bin/colima completion bash) \
+      --fish <($out/bin/colima completion fish) \
+      --zsh <($out/bin/colima completion zsh)
+  '';
+
+  meta = with lib; {
+    description = "Container runtimes on MacOS with minimal setup";
+    homepage = "https://github.com/abiosoft/colima";
+    license = licenses.mit;
+    platforms = platforms.darwin;
+    maintainers = with maintainers; [ aaschmid ];
+  };
+}
diff --git a/pkgs/applications/virtualization/conmon/default.nix b/pkgs/applications/virtualization/conmon/default.nix
index fbbc59359db8a..c8f78117f500c 100644
--- a/pkgs/applications/virtualization/conmon/default.nix
+++ b/pkgs/applications/virtualization/conmon/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "conmon";
-  version = "2.0.30";
+  version = "2.0.31";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-NZMuHhQyo+95QTJcR79cyZr86ytkbo4nmaqTF0Bdt+s=";
+    sha256 = "sha256-/IQS5L9Gqhft1eefkcNAPcQn7nSqOxAp9ySKBSOjs7M=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/virtualization/containerd/default.nix b/pkgs/applications/virtualization/containerd/default.nix
index 844ab025f5c02..8f8da3d180154 100644
--- a/pkgs/applications/virtualization/containerd/default.nix
+++ b/pkgs/applications/virtualization/containerd/default.nix
@@ -10,7 +10,7 @@
 
 buildGoModule rec {
   pname = "containerd";
-  version = "1.5.7";
+  version = "1.5.8";
 
   outputs = [ "out" "man" ];
 
@@ -18,7 +18,7 @@ buildGoModule rec {
     owner = "containerd";
     repo = "containerd";
     rev = "v${version}";
-    sha256 = "sha256-BHVlGXyTkaiRkG8WG1LdtxrQs8nKS8djZFnO/AfKBUw=";
+    sha256 = "sha256-XIAByE2/eVG8DAZXstKs51LQYdVPcPQuIlST3xCclrU=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/virtualization/crun/default.nix b/pkgs/applications/virtualization/crun/default.nix
index 2f09c3a29c774..1e59fa0d6ae27 100644
--- a/pkgs/applications/virtualization/crun/default.nix
+++ b/pkgs/applications/virtualization/crun/default.nix
@@ -37,13 +37,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "crun";
-  version = "1.3";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = version;
-    sha256 = "sha256-c0jXhqYdEpt4De1Z6VNwyrv0KJcf039Wp3ye0oTW0Qc=";
+    sha256 = "sha256-hO3gOZ0AaSvymIDvoylHzlHscoN1+G7wDXTCP1c5uIw=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/virtualization/docker-slim/default.nix b/pkgs/applications/virtualization/docker-slim/default.nix
index ebfaac0bde1fa..cd8a1f5041aaa 100644
--- a/pkgs/applications/virtualization/docker-slim/default.nix
+++ b/pkgs/applications/virtualization/docker-slim/default.nix
@@ -6,7 +6,7 @@
 
 buildGoPackage rec {
   pname = "docker-slim";
-  version = "1.37.2";
+  version = "1.37.3";
 
   goPackagePath = "github.com/docker-slim/docker-slim";
 
@@ -14,7 +14,7 @@ buildGoPackage rec {
     owner = "docker-slim";
     repo = "docker-slim";
     rev = version;
-    sha256 = "1svhi9xf71zrk843bnwkpmq4iaaln07dpfrdvq0vdqhj5xvbx47g";
+    sha256 = "sha256-jzwQ3nrhLDiQXcVkPiXrRAmpLQOD8ILBnoCEUiEbxzw=";
   };
 
   subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];
diff --git a/pkgs/applications/virtualization/docker/buildx.nix b/pkgs/applications/virtualization/docker/buildx.nix
index 89afc45ba4a9a..a149b5e4b3344 100644
--- a/pkgs/applications/virtualization/docker/buildx.nix
+++ b/pkgs/applications/virtualization/docker/buildx.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "docker-buildx";
-  version = "0.6.3";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = "buildx";
     rev = "v${version}";
-    sha256 = "sha256-UKIT3PfybuQjKxxFbRQSCA8G3R2xIySWEDUKg27u5Rk=";
+    sha256 = "sha256-5EV0Rw1+ufxQ1wmQ0EJXQ7HVtXVbB4do/tet0QFRi08=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/virtualization/docker/compose.nix b/pkgs/applications/virtualization/docker/compose.nix
index 3ce3d9a880f8b..b155d2deee19e 100644
--- a/pkgs/applications/virtualization/docker/compose.nix
+++ b/pkgs/applications/virtualization/docker/compose.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "docker-compose";
-  version = "2.0.1";
+  version = "2.2.2";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = "compose";
     rev = "v${version}";
-    sha256 = "sha256-6OjA3f6c9s/86UPxy9EqLIc/0ZuW6UhKyQdkM7YoTsU=";
+    sha256 = "sha256-2wNC3APKbJ3Ug8M3w4nllfWlKTd10W7W/Csq/3xbXAI=";
   };
 
-  vendorSha256 = "sha256-6h36TZmo0RvB3YzZRmsrs2Fbl+8zPTuL9LxWkuNgRqw=";
+  vendorSha256 = "sha256-RzAQnuOjT8eMH+rJm+/JrF96PZbCgzDVNPQYUeXPWnY=";
 
   doCheck = false;
   installPhase = ''
diff --git a/pkgs/applications/virtualization/docker/default.nix b/pkgs/applications/virtualization/docker/default.nix
index 8345b2b42d76e..a6c94bf891443 100644
--- a/pkgs/applications/virtualization/docker/default.nix
+++ b/pkgs/applications/virtualization/docker/default.nix
@@ -15,7 +15,7 @@ rec {
       , go-md2man, go, containerd_1_4, runc, docker-proxy, tini, libtool
       , sqlite, iproute2, lvm2, systemd, docker-buildx, docker-compose_2
       , btrfs-progs, iptables, e2fsprogs, xz, util-linux, xfsprogs, git
-      , procps, libseccomp
+      , procps, libseccomp, rootlesskit, slirp4netns, fuse-overlayfs
       , nixosTests
       , clientOnly ? !stdenv.isLinux, symlinkJoin
     }:
@@ -77,6 +77,8 @@ rec {
 
       extraPath = optionals (stdenv.isLinux) (makeBinPath [ iproute2 iptables e2fsprogs xz xfsprogs procps util-linux git ]);
 
+      extraUserPath = optionals (stdenv.isLinux && !clientOnly) (makeBinPath [ rootlesskit slirp4netns fuse-overlayfs ]);
+
       postPatch = ''
         patchShebangs hack/make.sh hack/make/
       '';
@@ -109,6 +111,11 @@ rec {
         install -Dm644 ./contrib/init/systemd/docker.service $out/etc/systemd/system/docker.service
         substituteInPlace $out/etc/systemd/system/docker.service --replace /usr/bin/dockerd $out/bin/dockerd
         install -Dm644 ./contrib/init/systemd/docker.socket $out/etc/systemd/system/docker.socket
+
+        # rootless Docker
+        install -Dm755 ./contrib/dockerd-rootless.sh $out/libexec/docker/dockerd-rootless.sh
+        makeWrapper $out/libexec/docker/dockerd-rootless.sh $out/bin/dockerd-rootless \
+          --prefix PATH : "$out/libexec/docker:$extraPath:$extraUserPath"
       '';
 
       DOCKER_BUILDTAGS = []
@@ -184,6 +191,7 @@ rec {
     '' + optionalString (!clientOnly) ''
       # symlink docker daemon to docker cli derivation
       ln -s ${moby}/bin/dockerd $out/bin/dockerd
+      ln -s ${moby}/bin/dockerd-rootless $out/bin/dockerd-rootless
 
       # systemd
       mkdir -p $out/etc/systemd/system
diff --git a/pkgs/applications/virtualization/lima/default.nix b/pkgs/applications/virtualization/lima/default.nix
index cb45f5b7a8277..d6eba5f1029e7 100644
--- a/pkgs/applications/virtualization/lima/default.nix
+++ b/pkgs/applications/virtualization/lima/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "lima";
-  version = "0.7.3";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "lima-vm";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-HVWZ0XF1oBUHhkOQHELlZ/pxXUsUo2cVo6EhZl6S0W4=";
+    sha256 = "sha256-bO7o3z9E7mGiUtlqI+mhhh+D6CG9j3BZ7IB8o/LDUPM=";
   };
 
-  vendorSha256 = "sha256-LhmZRa7vDylA4DRTfKFRs3lQMnwNfzF1H6ki1/zdpUg=";
+  vendorSha256 = "sha256-MDmRkGa1m3YuUbffCwoChG0Fg74jyuQQ6ljfDlLatjI=";
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
diff --git a/pkgs/applications/virtualization/podman-compose/default.nix b/pkgs/applications/virtualization/podman-compose/default.nix
index 2a6d2a20c44e0..974aa712d62fe 100644
--- a/pkgs/applications/virtualization/podman-compose/default.nix
+++ b/pkgs/applications/virtualization/podman-compose/default.nix
@@ -1,27 +1,22 @@
-{ lib, buildPythonApplication, fetchFromGitHub, pyyaml }:
+{ lib, buildPythonApplication, fetchFromGitHub, python-dotenv, pyyaml }:
 
 buildPythonApplication rec {
-  version = "0.2.0pre-2021-05-18";
+  version = "1.0.3";
   pname = "podman-compose";
 
-  # "This project is still under development." -- README.md
-  #
-  # As of May 2021, the latest release (0.1.5) has fewer than half of all
-  # commits. This project seems to have no release management, so the last
-  # commit is the best one until proven otherwise.
   src = fetchFromGitHub {
     repo = "podman-compose";
     owner = "containers";
-    rev = "62d2024feecf312e9591cc145f49cee9c70ab4fe";
-    sha256 = "17992imkvi6129wvajsp0iz5iicfmh53i20qy2mzz17kcz30r2pp";
+    rev = "v${version}";
+    sha256 = "sha256-Si/O4dx9bqqRp/hTv3WbTXj46OM+PpyPBnQQWUqcZfs=";
   };
 
-  propagatedBuildInputs = [ pyyaml ];
+  propagatedBuildInputs = [ pyyaml python-dotenv ];
 
   meta = {
     description = "An implementation of docker-compose with podman backend";
     homepage = "https://github.com/containers/podman-compose";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.sikmir ] ++ lib.teams.podman.members;
   };
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index 0f12d11cc381f..0dad4d9123dc0 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -17,13 +17,13 @@
 
 buildGoModule rec {
   pname = "podman";
-  version = "3.4.2";
+  version = "3.4.4";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "podman";
     rev = "v${version}";
-    sha256 = "sha256-VkKFlOm5r+a9+4em1oisjXNwK9mCCCPViql6g0O7PWw=";
+    sha256 = "sha256-5Y0+xfoMCe3a6kX+OhmxURZXZLAnrS1t8TFyHqjGCeA=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix
index 7442f883b5f63..c53eb25af39f5 100644
--- a/pkgs/applications/virtualization/qemu/default.nix
+++ b/pkgs/applications/virtualization/qemu/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, fetchpatch, python, zlib, pkg-config, glib
 , perl, pixman, vde2, alsa-lib, texinfo, flex
 , bison, lzo, snappy, libaio, libtasn1, gnutls, nettle, curl, ninja, meson, sigtool
-, makeWrapper, autoPatchelfHook
+, makeWrapper, runtimeShell
 , attr, libcap, libcap_ng
 , CoreServices, Cocoa, Hypervisor, rez, setfile
 , numaSupport ? stdenv.isLinux && !stdenv.isAarch32, numactl
@@ -18,7 +18,7 @@
 , xenSupport ? false, xen
 , cephSupport ? false, ceph
 , glusterfsSupport ? false, glusterfs, libuuid
-, openGLSupport ? sdlSupport, mesa, epoxy, libdrm
+, openGLSupport ? sdlSupport, mesa, libepoxy, libdrm
 , virglSupport ? openGLSupport, virglrenderer
 , libiscsiSupport ? true, libiscsi
 , smbdSupport ? false, samba
@@ -53,7 +53,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ makeWrapper python python.pkgs.sphinx python.pkgs.sphinx_rtd_theme pkg-config flex bison meson ninja ]
     ++ lib.optionals gtkSupport [ wrapGAppsHook ]
-    ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ]
     ++ lib.optionals stdenv.isDarwin [ sigtool ];
 
   buildInputs = [ zlib glib perl pixman
@@ -64,6 +63,7 @@ stdenv.mkDerivation rec {
     ++ lib.optionals stdenv.isDarwin [ CoreServices Cocoa Hypervisor rez setfile ]
     ++ lib.optionals seccompSupport [ libseccomp ]
     ++ lib.optionals numaSupport [ numactl ]
+    ++ lib.optionals alsaSupport [ alsa-lib ]
     ++ lib.optionals pulseSupport [ libpulseaudio ]
     ++ lib.optionals sdlSupport [ SDL2 SDL2_image ]
     ++ lib.optionals gtkSupport [ gtk3 gettext vte ]
@@ -71,11 +71,11 @@ stdenv.mkDerivation rec {
     ++ lib.optionals smartcardSupport [ libcacard ]
     ++ lib.optionals spiceSupport [ spice-protocol spice ]
     ++ lib.optionals usbredirSupport [ usbredir ]
-    ++ lib.optionals stdenv.isLinux [ alsa-lib libaio libcap_ng libcap attr ]
+    ++ lib.optionals stdenv.isLinux [ libaio libcap_ng libcap attr ]
     ++ lib.optionals xenSupport [ xen ]
     ++ lib.optionals cephSupport [ ceph ]
     ++ lib.optionals glusterfsSupport [ glusterfs libuuid ]
-    ++ lib.optionals openGLSupport [ mesa epoxy libdrm ]
+    ++ lib.optionals openGLSupport [ mesa libepoxy libdrm ]
     ++ lib.optionals virglSupport [ virglrenderer ]
     ++ lib.optionals libiscsiSupport [ libiscsi ]
     ++ lib.optionals smbdSupport [ samba ]
@@ -84,6 +84,8 @@ stdenv.mkDerivation rec {
   dontUseMesonConfigure = true; # meson's configurePhase isn't compatible with qemu build
 
   outputs = [ "out" "ga" ];
+  # On aarch64-linux we would shoot over the Hydra's 2G output limit.
+  separateDebugInfo = !(stdenv.isAarch64 && stdenv.isLinux);
 
   patches = [
     ./fix-qemu-ga.patch
@@ -118,6 +120,12 @@ stdenv.mkDerivation rec {
       url = "https://gitlab.com/qemu-project/qemu/-/commit/eb94846280df3f1e2a91b6179fc05f9890b7e384.patch";
       sha256 = "sha256-p31fd47RTSw928DOMrubQQybnzDAGm23z4Yhe+hGJQ8=";
     })
+    # Fixes socket_sockaddr_to_address_unix assertion errors in some setups. Remove with next release.
+    (fetchpatch {
+      name = "fix-unix-socket-path-copy-again.patch";
+      url = "https://gitlab.com/qemu-project/qemu/-/commit/118d527f2e4baec5fe8060b22a6212468b8e4d3f.patch";
+      sha256 = "sha256-ox+JSpc0pqd3bMi5Ot7ljQyk70SX8g+BLufR06mZPps=";
+    })
   ] ++ lib.optional nixosTestRunner ./force-uid0-on-9p.patch
     ++ lib.optionals stdenv.hostPlatform.isMusl [
     ./sigrtminmax.patch
@@ -173,11 +181,15 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--audio-drv-list=${audio}"
+    "--disable-strip" # We'll strip ourselves after separating debug info.
     "--enable-docs"
     "--enable-tools"
     "--enable-guest-agent"
     "--localstatedir=/var"
     "--sysconfdir=/etc"
+    # Always use our Meson, not the bundled version, which doesn't
+    # have our patches and will be subtly broken because of that.
+    "--meson=meson"
   ] ++ lib.optional numaSupport "--enable-numa"
     ++ lib.optional seccompSupport "--enable-seccomp"
     ++ lib.optional smartcardSupport "--enable-smartcard"
@@ -224,10 +236,12 @@ stdenv.mkDerivation rec {
 
   # Add a ‘qemu-kvm’ wrapper for compatibility/convenience.
   postInstall = ''
+    install -m755 -D $emitKvmWarningsPath $out/libexec/emit-kvm-warnings
     if [ -x $out/bin/qemu-system-${stdenv.hostPlatform.qemuArch} ]; then
       makeWrapper $out/bin/qemu-system-${stdenv.hostPlatform.qemuArch} \
                   $out/bin/qemu-kvm \
-                  --add-flags "\$([ -e /dev/kvm ] && echo -enable-kvm)"
+                  --run $out/libexec/emit-kvm-warnings \
+                  --add-flags "\$([ -r /dev/kvm -a -w /dev/kvm ] && echo -enable-kvm)"
     fi
   '';
 
@@ -238,6 +252,26 @@ stdenv.mkDerivation rec {
   # Builds in ~3h with 2 cores, and ~20m with a big-parallel builder.
   requiredSystemFeatures = [ "big-parallel" ];
 
+  emitKvmWarnings = ''
+    #!${runtimeShell}
+    WARNCOL='\033[1;35m'
+    NEUTRALCOL='\033[0m'
+    WARNING="''${WARNCOL}warning:''${NEUTRALCOL}"
+    if [ ! -e /dev/kvm ]; then
+      echo -e "''${WARNING} KVM is not available - execution will be slow" >&2
+      echo "Consider installing KVM for hardware-accelerated execution." >&2
+      echo "If KVM is already installed make sure the kernel module is loaded." >&2
+    elif [ ! -r /dev/kvm -o ! -w /dev/kvm ]; then
+      echo -e "''${WARNING} /dev/kvm is not read-/writable - execution will be slow" >&2
+      echo "/dev/kvm needs to be read-/writable by the user executing QEMU." >&2
+      echo "" >&2
+      echo "For hardware-acceleration inside the nix build sandbox /dev/kvm" >&2
+      echo "must be world-read-/writable (rw-rw-rw-)." >&2
+    fi
+  '';
+
+  passAsFile = [ "emitKvmWarnings" ];
+
   meta = with lib; {
     homepage = "http://www.qemu.org/";
     description = "A generic and open source machine emulator and virtualizer";
diff --git a/pkgs/applications/virtualization/runc/default.nix b/pkgs/applications/virtualization/runc/default.nix
index 6b0764e04ba52..79a21075f0384 100644
--- a/pkgs/applications/virtualization/runc/default.nix
+++ b/pkgs/applications/virtualization/runc/default.nix
@@ -16,13 +16,13 @@
 
 buildGoModule rec {
   pname = "runc";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "opencontainers";
     repo = "runc";
     rev = "v${version}";
-    sha256 = "sha256-l+Uq7aiXFrI+qbKSOZpYFIXz0VJBBR7ZZxlAJeGb7K4=";
+    sha256 = "sha256-Tl/JKbIpao+FCjngPzaVkxse50zo3XQ9Mg/AdkblMcI=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/virtualization/singularity/default.nix b/pkgs/applications/virtualization/singularity/default.nix
index e8d78c5bb4a13..4d6fb0ef4afa2 100644
--- a/pkgs/applications/virtualization/singularity/default.nix
+++ b/pkgs/applications/virtualization/singularity/default.nix
@@ -15,11 +15,11 @@ with lib;
 
 buildGoPackage rec {
   pname = "singularity";
-  version = "3.8.4";
+  version = "3.8.5";
 
   src = fetchurl {
     url = "https://github.com/hpcng/singularity/releases/download/v${version}/singularity-${version}.tar.gz";
-    sha256 = "sha256-y5Xm1osNIPK4fWDyOjv3B7fT6HzuDdSqQ4D49IGlfrw=";
+    sha256 = "sha256-f/94tcB7XU0IJpvSZ6xemUOQ+TMyHlTv1rfIZoMVPOQ=";
   };
 
   goPackagePath = "github.com/sylabs/singularity";
diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix
index 73972deb2c8f3..fb62a0d2e11af 100644
--- a/pkgs/applications/virtualization/virt-manager/default.nix
+++ b/pkgs/applications/virtualization/virt-manager/default.nix
@@ -47,10 +47,14 @@ python3Packages.buildPythonApplication rec {
 
   setupPyGlobalFlags = [ "--no-update-icon-cache" ];
 
+  dontWrapGApps = true;
+
   preFixup = ''
     gappsWrapperArgs+=(--set PYTHONPATH "$PYTHONPATH")
     # these are called from virt-install in initrdinject.py
     gappsWrapperArgs+=(--prefix PATH : "${makeBinPath [ cpio e2fsprogs file findutils gzip ]}")
+
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
   '';
 
   checkInputs = with python3Packages; [ cpio cdrtools pytestCheckHook ];
diff --git a/pkgs/applications/window-managers/afterstep/default.nix b/pkgs/applications/window-managers/afterstep/default.nix
index ac6ba4e0bf29e..a26f824cd1831 100644
--- a/pkgs/applications/window-managers/afterstep/default.nix
+++ b/pkgs/applications/window-managers/afterstep/default.nix
@@ -48,6 +48,12 @@ stdenv.mkDerivation rec {
      export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE $(pkg-config dbus-1 --cflags)"
   '';
 
+  # Parallel build fails due to missing dependencies between private libaries:
+  #   ld: cannot find ../libAfterConf/libAfterConf.a: No such file or directory
+  # Let's disable parallel builds until it's fixed upstream:
+  #   https://github.com/afterstep/afterstep/issues/8
+  enableParallelBuilding = false;
+
   meta = with lib; {
     description = "A NEXTStep-inspired window manager";
     longDescription = ''
diff --git a/pkgs/applications/window-managers/cagebreak/default.nix b/pkgs/applications/window-managers/cagebreak/default.nix
index 124c1abe6f9ca..93f5b788c7ce8 100644
--- a/pkgs/applications/window-managers/cagebreak/default.nix
+++ b/pkgs/applications/window-managers/cagebreak/default.nix
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cagebreak";
-  version = "1.8.0";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "project-repo";
     repo = pname;
     rev = version;
-    hash = "sha256-tWfHJajAOYZJ73GckZWWTdVz75YmHA7t/qDhM7+tJgk=";
+    hash = "sha256-YaLGRlvppTUCSHFlt3sEfHgN3pYHuc5oGt3dt0DDw3I=";
   };
 
   nativeBuildInputs = [
@@ -63,14 +63,12 @@ stdenv.mkDerivation rec {
     "-Dxwayland=${lib.boolToString withXwayland}"
   ];
 
-  # TODO: investigate why is this happening
   postPatch = ''
+    # TODO: investigate why is this happening
     sed -i -e 's|<drm_fourcc.h>|<libdrm/drm_fourcc.h>|' *.c
-  '';
 
-  postInstall = ''
-    install -d $out/share/cagebreak/
-    install -m644 $src/examples/config $out/share/cagebreak/
+    # Patch cagebreak to read its default configuration from $out/share/cagebreak
+    sed -i "s|/etc/xdg/cagebreak|$out/share/cagebreak|" meson.build cagebreak.c
   '';
 
   postFixup = lib.optionalString withXwayland ''
diff --git a/pkgs/applications/window-managers/eww/default.nix b/pkgs/applications/window-managers/eww/default.nix
index a987c6c2e0e5d..e593a95a15193 100644
--- a/pkgs/applications/window-managers/eww/default.nix
+++ b/pkgs/applications/window-managers/eww/default.nix
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec {
     description = "ElKowars wacky widgets";
     homepage = "https://github.com/elkowar/eww";
     license = licenses.mit;
-    maintainers = with maintainers; [ figsoda legendofmiracles ];
+    maintainers = with maintainers; [ figsoda lom ];
     broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/applications/window-managers/i3/default.nix b/pkgs/applications/window-managers/i3/default.nix
index 0d07ce4e8d1ab..5c2db7d47a537 100644
--- a/pkgs/applications/window-managers/i3/default.nix
+++ b/pkgs/applications/window-managers/i3/default.nix
@@ -7,15 +7,15 @@
 
 stdenv.mkDerivation rec {
   pname = "i3";
-  version = "4.20";
+  version = "4.20.1";
 
   src = fetchurl {
     url = "https://i3wm.org/downloads/${pname}-${version}.tar.xz";
-    sha256 = "sha256-jPTxdPbPVU84VjOAaBq+JYaOmVWIN5HgmG7NicU6wyI=";
+    sha256 = "1rpwdgykcvmrmdz244f0wm7446ih1dcw8rlc1hm1c7cc42pyrq93";
   };
 
   nativeBuildInputs = [
-    pkg-config makeWrapper meson ninja installShellFiles
+    pkg-config makeWrapper meson ninja installShellFiles perl
     asciidoc xmlto docbook_xml_dtd_45 docbook_xsl findXMLCatalogs
   ];
 
diff --git a/pkgs/applications/window-managers/i3/gaps.nix b/pkgs/applications/window-managers/i3/gaps.nix
index 6884e5ea7a1c5..faa325023f9f0 100644
--- a/pkgs/applications/window-managers/i3/gaps.nix
+++ b/pkgs/applications/window-managers/i3/gaps.nix
@@ -2,13 +2,13 @@
 
 i3.overrideAttrs (oldAttrs : rec {
   pname = "i3-gaps";
-  version = "4.20";
+  version = "4.20.1";
 
   src = fetchFromGitHub {
     owner = "Airblader";
     repo = "i3";
     rev = version;
-    sha256 = "sha256-D16wMwCabEOG0AfAhohwcCHeUSvVF93i3zT/yu0FCu8=";
+    sha256 = "sha256-aS1dLs8KxoJaTf3RlQX+zRrtNmHEFZgkXDjt+8SuGDw=";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/window-managers/i3/status-rust.nix b/pkgs/applications/window-managers/i3/status-rust.nix
index a285c4b5a54a5..019ac1377240f 100644
--- a/pkgs/applications/window-managers/i3/status-rust.nix
+++ b/pkgs/applications/window-managers/i3/status-rust.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "i3status-rust";
-  version = "0.20.6";
+  version = "0.20.7";
 
   src = fetchFromGitHub {
     owner = "greshake";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-FLMfXloAAIz/9KAtKFfB8uokQz/J8R+WsGarq/5cblo=";
+    sha256 = "sha256-7RfDNjTUQtVZUeRGBnd2ygSkFJOoPrNF/Bwy8GWo7To=";
   };
 
-  cargoSha256 = "sha256-UVAF2rz0y6h3/rcTJ+31mMyJDLG7q40n6vBK8Wxultg=";
+  cargoSha256 = "sha256-alZJm2/hhloKQn7QeUA2IMgGl86Lz8xNpZkoMHCcjVI=";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
 
diff --git a/pkgs/applications/window-managers/i3/status.nix b/pkgs/applications/window-managers/i3/status.nix
index bbbad532d0968..40666b2d20571 100644
--- a/pkgs/applications/window-managers/i3/status.nix
+++ b/pkgs/applications/window-managers/i3/status.nix
@@ -1,24 +1,17 @@
-{ fetchurl, lib, stdenv, libconfuse, yajl, alsa-lib, libpulseaudio, libnl, pkg-config, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl }:
+{ fetchurl, lib, stdenv, libconfuse, yajl, alsa-lib, libpulseaudio, libnl, meson, ninja, perl, pkg-config, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl }:
 
 stdenv.mkDerivation rec {
   pname = "i3status";
-  version = "2.13";
+  version = "2.14";
 
   src = fetchurl {
-    url = "https://i3wm.org/i3status/i3status-${version}.tar.bz2";
-    sha256 = "0rhlzb96mw64z2jnhwz9nibc7pxg549626lz5642xxk5hpzwk2ff";
+    url = "https://i3wm.org/i3status/i3status-${version}.tar.xz";
+    sha256 = "0929chhvyq9hg4scpcz8r9zn3s9jvbg6a86k3wqa77qg85rh4kaw";
   };
 
-  nativeBuildInputs = [ pkg-config asciidoc xmlto docbook_xml_dtd_45 docbook_xsl ];
+  nativeBuildInputs = [ meson ninja perl pkg-config asciidoc xmlto docbook_xml_dtd_45 docbook_xsl ];
   buildInputs = [ libconfuse yajl alsa-lib libpulseaudio libnl ];
 
-  makeFlags = [ "all" "PREFIX=$(out)" ];
-
-  # This hack is needed because for unknown reasons configure generates a broken makefile on the 2.13 release under nixos
-  preBuild = ''
-    sed -i -e 's/\$(TEST_LOGS) \$(TEST_LOGS/\$(TEST_LOGS)/g' Makefile
-  '';
-
   meta = {
     description = "Generates a status line for i3bar, dzen2, xmobar or lemonbar";
     homepage = "https://i3wm.org";
diff --git a/pkgs/applications/window-managers/i3/wmfocus.nix b/pkgs/applications/window-managers/i3/wmfocus.nix
index 9c33c555353c3..ec2e03de0f8ee 100644
--- a/pkgs/applications/window-managers/i3/wmfocus.nix
+++ b/pkgs/applications/window-managers/i3/wmfocus.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wmfocus";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "svenstaro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fZbsKu7C+rqggaFVSDNIGDAgn23M7mi+1jhV85s1Co8=";
+    sha256 = "sha256-HrS+C/6KDG2Rn/3u/mMmp4vzQ5YAHUFL4HFecteuzsc=";
   };
 
-  cargoSha256 = "sha256-ejzVJdtOXBPe+14g4aJFBMCvXkmNia9dNAk/BVQ2ZSQ=";
+  cargoSha256 = "sha256-EzgYnfUgwK2ldzrlqe9N9jeGgK+RzQPjbOjJCGEkcwE=";
 
   nativeBuildInputs = [ python3 pkg-config ];
   buildInputs = [ cairo libxkbcommon xorg.xcbutilkeysyms ];
diff --git a/pkgs/applications/window-managers/leftwm/default.nix b/pkgs/applications/window-managers/leftwm/default.nix
index 9379fb358b351..5b77320e2203c 100644
--- a/pkgs/applications/window-managers/leftwm/default.nix
+++ b/pkgs/applications/window-managers/leftwm/default.nix
@@ -6,16 +6,16 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "leftwm";
-  version = "0.2.9";
+  version = "0.2.10";
 
   src = fetchFromGitHub {
     owner = "leftwm";
     repo = "leftwm";
     rev = version;
-    sha256 = "sha256:0w4afhrp2cxz0nmpvalyaxz1dpywajjj2wschw8dpkvgxqs64gd5";
+    sha256 = "sha256-WGss/XmryULq8Ly5MFmEqsL+9r4fnrvBEtetngJ05NY=";
   };
 
-  cargoSha256 = "sha256:0r0smpv50gim2naaa0qf6yhvqvsa2f40rkgiryi686y69m5ii7mv";
+  cargoSha256 = "sha256-9qvXzsAu4H2TAcArajrGqXwKF3BBDvmZbny7hiVO9Yo=";
 
   buildInputs = rpathLibs;
 
diff --git a/pkgs/applications/window-managers/pekwm/default.nix b/pkgs/applications/window-managers/pekwm/default.nix
index fcce16c08ba6e..5550e6f706e7b 100644
--- a/pkgs/applications/window-managers/pekwm/default.nix
+++ b/pkgs/applications/window-managers/pekwm/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
         appear as they should when starting applications.
       - Chainable Keygrabber, usability for everyone.
     '';
-      homepage = "http://www.pekwm.org";
+      homepage = "https://www.pekwm.org/";
       license = licenses.gpl2Plus;
       maintainers = [ maintainers.AndersonTorres ];
       platforms = platforms.linux;
diff --git a/pkgs/applications/window-managers/phosh/default.nix b/pkgs/applications/window-managers/phosh/default.nix
index 0a16bfc8842b5..e1f805662c679 100644
--- a/pkgs/applications/window-managers/phosh/default.nix
+++ b/pkgs/applications/window-managers/phosh/default.nix
@@ -30,7 +30,7 @@
 
 stdenv.mkDerivation rec {
   pname = "phosh";
-  version = "0.13.1";
+  version = "0.14.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     repo = pname;
     rev = "v${version}";
     fetchSubmodules = true; # including gvc and libcall-ui which are designated as subprojects
-    sha256 = "sha256-dKQK4mGe/dvNlca/XMDeq1Q4dH/WBF/rtiUh8RssF5c=";
+    sha256 = "sha256-FILSNVBYpWSPXeDb1Vc4jZ7zJMg0Gj6EY5yoc81gUr0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/window-managers/qtile/default.nix b/pkgs/applications/window-managers/qtile/default.nix
index c831bc6907e78..8c5d65d4978f4 100644
--- a/pkgs/applications/window-managers/qtile/default.nix
+++ b/pkgs/applications/window-managers/qtile/default.nix
@@ -11,13 +11,13 @@ let
 
   unwrapped = pythonPackages.buildPythonPackage rec {
     pname = "qtile";
-    version = "0.18.1";
+    version = "0.19.0";
 
     src = fetchFromGitHub {
       owner = "qtile";
       repo = "qtile";
       rev = "v${version}";
-      sha256 = "0ln0fxarin9liy9n76zywmbr31xrjw8f7d3nr1mphci7wkc9bqmm";
+      sha256 = "BLHGVPMQd8O4h5TVx/F/klzSra+FZYogp22V6Yq04T0=";
     };
 
     postPatch = ''
diff --git a/pkgs/applications/window-managers/sawfish/default.nix b/pkgs/applications/window-managers/sawfish/default.nix
index cb76f0c465ccd..f75d7ec5d1bd7 100644
--- a/pkgs/applications/window-managers/sawfish/default.nix
+++ b/pkgs/applications/window-managers/sawfish/default.nix
@@ -22,11 +22,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sawfish";
-  version = "1.12.90";
+  version = "1.13.0";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/sawfish/${pname}_${version}.tar.xz";
-    sha256 = "18p8srqqj9vjffg13qhspfz2gr1h4vfs10qzlv89g76r289iam31";
+    sha256 = "sha256-gWs8W/pMtQjbH8FEifzNAj3siZzxPd6xm8PmXXhyr10=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix
index 782bd360d730a..ec08568f0589c 100644
--- a/pkgs/applications/window-managers/sway/default.nix
+++ b/pkgs/applications/window-managers/sway/default.nix
@@ -38,6 +38,10 @@ stdenv.mkDerivation rec {
     ./sway-config-nixos-paths.patch
   ];
 
+  depsBuildBuild = [
+    pkg-config
+  ];
+
   nativeBuildInputs = [
     meson ninja pkg-config wayland-scanner scdoc
   ];
diff --git a/pkgs/applications/window-managers/vwm/default.nix b/pkgs/applications/window-managers/vwm/default.nix
index 7c47eb9c4d998..e1a8c8f3dd24a 100644
--- a/pkgs/applications/window-managers/vwm/default.nix
+++ b/pkgs/applications/window-managers/vwm/default.nix
@@ -19,11 +19,16 @@ stdenv.mkDerivation rec {
     sha256 = "1r5wiqyfqwnyx7dfihixlnavbvg8rni36i4gq169aisjcg7laxaf";
   };
 
-  prePatch = ''
+  postPatch = ''
     sed -i -e s@/usr/local@$out@ \
       -e s@/usr/lib@$out/lib@ \
       -e 's@tic vwmterm@tic -o '$out/lib/terminfo' vwmterm@' \
       -e /ldconfig/d Makefile modules/*/Makefile vwm.h
+
+    # Fix ncurses-6.3 support:
+    substituteInPlace vwm_bkgd.c --replace \
+      'mvwprintw(window,height-1,width-(strlen(version_str)),version_str);' \
+      'mvwprintw(window,height-1,width-(strlen(version_str)),"%s", version_str);'
   '';
 
   preInstall = ''
diff --git a/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix b/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix
index c201c55dcea54..225e44c21cedb 100644
--- a/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix
+++ b/pkgs/applications/window-managers/windowmaker/dockapps/wmsm-app.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
-  preInstall = ''
+  installPhase = ''
     runHook preInstall
     install -d ${placeholder "out"}/bin
     runHook postInstall
diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix
index 53f367b9b84d4..c2d67169c9caf 100644
--- a/pkgs/build-support/bintools-wrapper/default.nix
+++ b/pkgs/build-support/bintools-wrapper/default.nix
@@ -81,6 +81,8 @@ let
     else if targetPlatform.system == "aarch64-linux"  then "${sharedLibraryLoader}/lib/ld-linux-aarch64.so.1"
     else if targetPlatform.system == "powerpc-linux"  then "${sharedLibraryLoader}/lib/ld.so.1"
     else if targetPlatform.isMips                     then "${sharedLibraryLoader}/lib/ld.so.1"
+    # `ld-linux-riscv{32,64}-<abi>.so.1`
+    else if targetPlatform.isRiscV                    then "${sharedLibraryLoader}/lib/ld-linux-riscv*.so.1"
     else if targetPlatform.isDarwin                   then "/usr/lib/dyld"
     else if targetPlatform.isFreeBSD                  then "/libexec/ld-elf.so.1"
     else if lib.hasSuffix "pc-gnu" targetPlatform.config then "ld.so.1"
diff --git a/pkgs/build-support/build-bazel-package/default.nix b/pkgs/build-support/build-bazel-package/default.nix
index 198b9c3f617fc..74486e2e10034 100644
--- a/pkgs/build-support/build-bazel-package/default.nix
+++ b/pkgs/build-support/build-bazel-package/default.nix
@@ -214,6 +214,7 @@ in stdenv.mkDerivation (fBuildAttrs // {
       --output_base="$bazelOut" \
       --output_user_root="$bazelUserRoot" \
       build \
+      --curses=no \
       -j $NIX_BUILD_CORES \
       "''${copts[@]}" \
       "''${host_copts[@]}" \
diff --git a/pkgs/build-support/build-dotnet-module/default.nix b/pkgs/build-support/build-dotnet-module/default.nix
index 6a7b70e070b0c..0a5b17a4a363d 100644
--- a/pkgs/build-support/build-dotnet-module/default.nix
+++ b/pkgs/build-support/build-dotnet-module/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenvNoCC, linkFarmFromDrvs, makeWrapper, fetchurl, xml2, dotnetCorePackages, dotnetPackages, cacert }:
+{ lib, stdenvNoCC, linkFarmFromDrvs, nuget-to-nix, writeScript, makeWrapper, fetchurl, xml2, dotnetCorePackages, dotnetPackages, cacert }:
 
 { name ? "${args.pname}-${args.version}"
 , enableParallelBuilding ? true
@@ -14,6 +14,8 @@
 , dotnetTestFlags ? []
 # Flags to pass to `dotnet install`.
 , dotnetInstallFlags ? []
+# Flags to pass to `dotnet pack`.
+, dotnetPackFlags ? []
 # Flags to pass to dotnet in all phases.
 , dotnetFlags ? []
 
@@ -21,11 +23,22 @@
 # Unfortunately, dotnet has no method for doing this automatically.
 # If unset, all executables in the projects root will get installed. This may cause bloat!
 , executables ? null
-# The packages project file, which contains instructions on how to compile it.
+# Packs a project as a `nupkg`, and installs it to `$out/share`. If set to `true`, the derivation can be used as a dependency for another dotnet project by adding it to `projectReferences`.
+, packNupkg ? false
+# The packages project file, which contains instructions on how to compile it. This can be an array of multiple project files as well.
 , projectFile ? null
 # The NuGet dependency file. This locks all NuGet dependency versions, as otherwise they cannot be deterministically fetched.
-# This can be generated using the `nuget-to-nix` tool.
+# This can be generated by running the `passthru.fetch-deps` script.
 , nugetDeps ? null
+# A list of derivations containing nupkg packages for local project references.
+# Referenced derivations can be built with `buildDotnetModule` with `packNupkg=true` flag.
+# Since we are sharing them as nugets they must be added to csproj/fsproj files as `PackageReference` as well.
+# For example, your project has a local dependency:
+#     <ProjectReference Include="../foo/bar.fsproj" />
+# To enable discovery through `projectReferences` you would need to add a line:
+#     <ProjectReference Include="../foo/bar.fsproj" />
+#     <PackageReference Include="bar" Version="*" Condition=" '$(ContinuousIntegrationBuild)'=='true' "/>
+, projectReferences ? []
 # Libraries that need to be available at runtime should be passed through this.
 # These get wrapped into `LD_LIBRARY_PATH`.
 , runtimeDeps ? []
@@ -33,8 +46,9 @@
 # Tests to disable. This gets passed to `dotnet test --filter "FullyQualifiedName!={}"`, to ensure compatibility with all frameworks.
 # See https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-test#filter-option-details for more details.
 , disabledTests ? []
-# The project file to run unit tests against. This is usually the regular project file, but sometimes it needs to be manually set.
-, testProjectFile ? projectFile
+# The project file to run unit tests against. This is usually referenced in the regular project file, but sometimes it needs to be manually set.
+# It gets restored and build, but not installed. You may need to regenerate your nuget lockfile after setting this.
+, testProjectFile ? ""
 
 # The type of build to perform. This is passed to `dotnet` with the `--configuration` flag. Possible values are `Release`, `Debug`, etc.
 , buildType ? "Release"
@@ -50,16 +64,17 @@ assert projectFile == null -> throw "Defining the `projectFile` attribute is req
 
 # TODO: Automatically generate a dependency file when a lockfile is present.
 # This file is unfortunately almost never present, as Microsoft recommands not to push this in upstream repositories.
-assert nugetDeps == null -> throw "Defining the `nugetDeps` attribute is required, as to lock the NuGet dependencies. This file can be generated using the `nuget-to-nix` tool.";
+assert nugetDeps == null -> throw "Defining the `nugetDeps` attribute is required, as to lock the NuGet dependencies. This file can be generated by running the `passthru.fetch-deps` script.";
 
 let
   _nugetDeps = linkFarmFromDrvs "${name}-nuget-deps" (import nugetDeps {
-    fetchNuGet = { name, version, sha256 }: fetchurl {
-      name = "nuget-${name}-${version}.nupkg";
-      url = "https://www.nuget.org/api/v2/package/${name}/${version}";
+    fetchNuGet = { pname, version, sha256 }: fetchurl {
+      name = "${pname}-${version}.nupkg";
+      url = "https://www.nuget.org/api/v2/package/${pname}/${version}";
       inherit sha256;
     };
   });
+  _localDeps = linkFarmFromDrvs "${name}-local-nuget-deps" projectReferences;
 
   nuget-source = stdenvNoCC.mkDerivation rec {
     name = "${args.pname}-nuget-source";
@@ -72,6 +87,8 @@ let
 
       nuget sources Add -Name nixos -Source "$out/lib"
       nuget init "${_nugetDeps}" "$out/lib"
+      ${lib.optionalString (projectReferences != [])
+        "nuget init \"${_localDeps}\" \"$out/lib\""}
 
       # Generates a list of all unique licenses' spdx ids.
       find "$out/lib" -name "*.nuspec" -exec sh -c \
@@ -94,21 +111,63 @@ let
     # Stripping breaks the executable
     dontStrip = true;
 
+    # gappsWrapperArgs gets included when wrapping for dotnet, as to avoid double wrapping
+    dontWrapGApps = true;
+
     DOTNET_NOLOGO = true; # This disables the welcome message.
     DOTNET_CLI_TELEMETRY_OPTOUT = true;
 
+    passthru = {
+      fetch-deps = writeScript "fetch-${args.pname}-deps" ''
+        set -euo pipefail
+        cd "$(dirname "''${BASH_SOURCE[0]}")"
+
+        export HOME=$(mktemp -d)
+        deps_file="/tmp/${args.pname}-deps.nix"
+
+        store_src="${package.src}"
+        src="$(mktemp -d /tmp/${args.pname}.XXX)"
+        cp -rT "$store_src" "$src"
+        chmod -R +w "$src"
+
+        trap "rm -rf $src $HOME" EXIT
+        pushd "$src"
+
+        export DOTNET_NOLOGO=1
+        export DOTNET_CLI_TELEMETRY_OPTOUT=1
+
+        mkdir -p "$HOME/nuget_pkgs"
+
+        for project in "${lib.concatStringsSep "\" \"" ((lib.toList projectFile) ++ lib.optionals (testProjectFile != "") (lib.toList testProjectFile))}"; do
+          ${dotnet-sdk}/bin/dotnet restore "$project" \
+            ${lib.optionalString (!enableParallelBuilding) "--disable-parallel"} \
+            -p:ContinuousIntegrationBuild=true \
+            -p:Deterministic=true \
+            --packages "$HOME/nuget_pkgs" \
+            "''${dotnetRestoreFlags[@]}" \
+            "''${dotnetFlags[@]}"
+        done
+
+        echo "Writing lockfile..."
+        ${nuget-to-nix}/bin/nuget-to-nix "$HOME/nuget_pkgs" > "$deps_file"
+        echo "Succesfully wrote lockfile to: $deps_file"
+      '';
+    } // args.passthru or {};
+
     configurePhase = args.configurePhase or ''
       runHook preConfigure
 
       export HOME=$(mktemp -d)
 
-      dotnet restore "$projectFile" \
-        ${lib.optionalString (!enableParallelBuilding) "--disable-parallel"} \
-        -p:ContinuousIntegrationBuild=true \
-        -p:Deterministic=true \
-        --source "${nuget-source}/lib" \
-        "''${dotnetRestoreFlags[@]}" \
-        "''${dotnetFlags[@]}"
+      for project in ''${projectFile[@]} ''${testProjectFile[@]}; do
+        dotnet restore "$project" \
+          ${lib.optionalString (!enableParallelBuilding) "--disable-parallel"} \
+          -p:ContinuousIntegrationBuild=true \
+          -p:Deterministic=true \
+          --source "${nuget-source}/lib" \
+          "''${dotnetRestoreFlags[@]}" \
+          "''${dotnetFlags[@]}"
+      done
 
       runHook postConfigure
     '';
@@ -116,16 +175,18 @@ let
     buildPhase = args.buildPhase or ''
       runHook preBuild
 
-      dotnet build "$projectFile" \
-        -maxcpucount:${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"} \
-        -p:BuildInParallel=${if enableParallelBuilding then "true" else "false"} \
-        -p:ContinuousIntegrationBuild=true \
-        -p:Deterministic=true \
-        -p:Version=${args.version} \
-        --configuration "$buildType" \
-        --no-restore \
-        "''${dotnetBuildFlags[@]}"  \
-        "''${dotnetFlags[@]}"
+      for project in ''${projectFile[@]} ''${testProjectFile[@]}; do
+        dotnet build "$project" \
+          -maxcpucount:${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"} \
+          -p:BuildInParallel=${if enableParallelBuilding then "true" else "false"} \
+          -p:ContinuousIntegrationBuild=true \
+          -p:Deterministic=true \
+          -p:Version=${args.version} \
+          --configuration "$buildType" \
+          --no-restore \
+          "''${dotnetBuildFlags[@]}"  \
+          "''${dotnetFlags[@]}"
+      done
 
       runHook postBuild
     '';
@@ -133,16 +194,18 @@ let
     checkPhase = args.checkPhase or ''
       runHook preCheck
 
-      ${lib.getBin dotnet-test-sdk}/bin/dotnet test "$testProjectFile" \
-        -maxcpucount:${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"} \
-        -p:ContinuousIntegrationBuild=true \
-        -p:Deterministic=true \
-        --configuration "$buildType" \
-        --no-build \
-        --logger "console;verbosity=normal" \
-        ${lib.optionalString (disabledTests != []) "--filter \"FullyQualifiedName!=${lib.concatStringsSep "|FullyQualifiedName!=" disabledTests}\""} \
-        "''${dotnetTestFlags[@]}"  \
-        "''${dotnetFlags[@]}"
+      for project in ''${testProjectFile[@]}; do
+        ${lib.getBin dotnet-test-sdk}/bin/dotnet test "$project" \
+          -maxcpucount:${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"} \
+          -p:ContinuousIntegrationBuild=true \
+          -p:Deterministic=true \
+          --configuration "$buildType" \
+          --no-build \
+          --logger "console;verbosity=normal" \
+          ${lib.optionalString (disabledTests != []) "--filter \"FullyQualifiedName!=${lib.concatStringsSep "&FullyQualifiedName!=" disabledTests}\""} \
+          "''${dotnetTestFlags[@]}"  \
+          "''${dotnetFlags[@]}"
+      done
 
       runHook postCheck
     '';
@@ -150,16 +213,29 @@ let
     installPhase = args.installPhase or ''
       runHook preInstall
 
-      dotnet publish "$projectFile" \
-        -p:ContinuousIntegrationBuild=true \
-        -p:Deterministic=true \
-        --output $out/lib/${args.pname} \
-        --configuration "$buildType" \
-        --no-build \
-        --no-self-contained \
-        "''${dotnetInstallFlags[@]}"  \
-        "''${dotnetFlags[@]}"
-    '' + (if executables != null then ''
+      for project in ''${projectFile[@]}; do
+        dotnet publish "$project" \
+          -p:ContinuousIntegrationBuild=true \
+          -p:Deterministic=true \
+          --output $out/lib/${args.pname} \
+          --configuration "$buildType" \
+          --no-build \
+          --no-self-contained \
+          "''${dotnetInstallFlags[@]}"  \
+          "''${dotnetFlags[@]}"
+      done
+    '' + (lib.optionalString packNupkg ''
+      for project in ''${projectFile[@]}; do
+        dotnet pack "$project" \
+          -p:ContinuousIntegrationBuild=true \
+          -p:Deterministic=true \
+          --output $out/share \
+          --configuration "$buildType" \
+          --no-build \
+          "''${dotnetPackFlags[@]}"  \
+          "''${dotnetFlags[@]}"
+      done
+    '') + (if executables != null then ''
       for executable in $executables; do
         execPath="$out/lib/${args.pname}/$executable"
 
diff --git a/pkgs/build-support/build-dotnet-package/default.nix b/pkgs/build-support/build-dotnet-package/default.nix
index 16dfd694ed3d3..14446ef05e72a 100644
--- a/pkgs/build-support/build-dotnet-package/default.nix
+++ b/pkgs/build-support/build-dotnet-package/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, makeWrapper, pkg-config, mono, dotnetbuildhelpers }:
 
 attrsOrig @
-{ baseName
+{ pname
 , version
 , nativeBuildInputs ? []
 , xBuildFiles ? [ ]
@@ -17,7 +17,7 @@ attrsOrig @
     arrayToShell = (a: toString (map (lib.escape (lib.stringToCharacters "\\ ';$`()|<>\t") ) a));
 
     attrs = {
-      name = "${baseName}-${version}";
+      inherit pname version;
 
       nativeBuildInputs = [
         pkg-config
@@ -64,7 +64,7 @@ attrsOrig @
       installPhase = ''
         runHook preInstall
 
-        target="$out/lib/dotnet/${baseName}"
+        target="$out/lib/dotnet/${pname}"
         mkdir -p "$target"
 
         cp -rv ${arrayToShell outputFiles} "''${outputFilesArray[@]}" "$target"
diff --git a/pkgs/build-support/build-fhs-userenv/chrootenv/default.nix b/pkgs/build-support/build-fhs-userenv/chrootenv/default.nix
index 15d7b31535803..b9d2de7277eb7 100644
--- a/pkgs/build-support/build-fhs-userenv/chrootenv/default.nix
+++ b/pkgs/build-support/build-fhs-userenv/chrootenv/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Setup mount/user namespace for FHS emulation";
     license = licenses.mit;
-    maintainers = with maintainers; [ yegortimoshenko ];
+    maintainers = with maintainers; [ yana ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/build-support/build-graalvm-native-image/default.nix b/pkgs/build-support/build-graalvm-native-image/default.nix
new file mode 100644
index 0000000000000..09b2d9f73a2bb
--- /dev/null
+++ b/pkgs/build-support/build-graalvm-native-image/default.nix
@@ -0,0 +1,57 @@
+{ lib, stdenv, graalvmCEPackages, glibcLocales }:
+
+{ name ? "${args.pname}-${args.version}"
+  # Final executable name
+, executable ? args.pname
+  # JAR used as input for GraalVM derivation, defaults to src
+, jar ? args.src
+, dontUnpack ? (jar == args.src)
+  # Default native-image arguments. You probably don't want to set this,
+  # except in special cases. In most cases, use extraNativeBuildArgs instead
+, nativeImageBuildArgs ? [
+    "-jar" jar
+    "-H:CLibraryPath=${lib.getLib graalvm}/lib"
+    (lib.optionalString stdenv.isDarwin "-H:-CheckToolchain")
+    "-H:Name=${executable}"
+    "--verbose"
+  ]
+  # Extra arguments to be passed to the native-image
+, extraNativeImageBuildArgs ? [ ]
+  # XMX size of GraalVM during build
+, graalvmXmx ? "-J-Xmx6g"
+  # The GraalVM to use
+, graalvm ? graalvmCEPackages.graalvm11-ce
+, meta ? { }
+, ...
+} @ args:
+
+stdenv.mkDerivation (args // {
+  inherit dontUnpack;
+
+  nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ graalvm glibcLocales ];
+
+  nativeImageBuildArgs = nativeImageBuildArgs ++ extraNativeImageBuildArgs ++ [ graalvmXmx ];
+
+  buildPhase = args.buildPhase or ''
+    runHook preBuild
+
+    native-image ''${nativeImageBuildArgs[@]}
+
+    runHook postBuild
+  '';
+
+  installPhase = args.installPhase or ''
+    runHook preInstall
+
+    install -Dm755 ${executable} -t $out/bin
+
+    runHook postInstall
+  '';
+
+  meta = {
+    # default to graalvm's platforms
+    platforms = graalvm.meta.platforms;
+    # default to executable name
+    mainProgram = executable;
+  } // meta;
+})
diff --git a/pkgs/build-support/dhall/directory-to-nix.nix b/pkgs/build-support/dhall/directory-to-nix.nix
new file mode 100644
index 0000000000000..d751e19df3fc3
--- /dev/null
+++ b/pkgs/build-support/dhall/directory-to-nix.nix
@@ -0,0 +1,25 @@
+{ dhallPackages, dhallPackageToNix}:
+
+# `dhallDirectoryToNix is a utility function to take a directory of Dhall files
+# and read them in as a Nix expression.
+#
+# This function is similar to `dhallToNix`, but takes a Nixpkgs Dhall package
+# as input instead of raw Dhall code.
+#
+# Note that this uses "import from derivation" (IFD), meaning that Nix will
+# perform a build during the evaluation phase if you use this
+# `dhallDirectoryToNix` utility.  It is not possible to use
+# `dhallDirectoryToNix` in Nixpkgs, since the Nixpkgs Hydra doesn't allow IFD.
+
+{ src
+, # The file to import, relative to the src root directory
+  file ? "package.dhall"
+}@args:
+
+let
+  generatedPkg = dhallPackages.generateDhallDirectoryPackage args;
+
+  builtPkg = dhallPackages.callPackage generatedPkg { };
+
+in
+  dhallPackageToNix builtPkg
diff --git a/pkgs/build-support/dhall/package-to-nix.nix b/pkgs/build-support/dhall/package-to-nix.nix
new file mode 100644
index 0000000000000..301501ad49df3
--- /dev/null
+++ b/pkgs/build-support/dhall/package-to-nix.nix
@@ -0,0 +1,36 @@
+
+# `dhallPackageToNix` is a utility function to take a Nixpkgs Dhall package
+# (created with a function like `dhallPackages.buildDhallDirectoryPackage`)
+# and read it in as a Nix expression.
+#
+# This function is similar to `dhallToNix`, but takes a Nixpkgs Dhall package
+# as input instead of raw Dhall code.
+#
+# Note that this uses "import from derivation" (IFD), meaning that Nix will
+# perform a build during the evaluation phase if you use this
+# `dhallPackageToNix` utility.  It is not possible to use `dhallPackageToNix`
+# in Nixpkgs, since the Nixpkgs Hydra doesn't allow IFD.
+
+{ stdenv, dhall-nix }:
+
+dhallPackage:
+  let
+    drv = stdenv.mkDerivation {
+      name = "dhall-compiled-package.nix";
+
+      buildCommand = ''
+        # Dhall requires that the cache is writable, even if it is never written to.
+        # We copy the cache from the input package to the current directory and
+        # set the cache as writable.
+        cp -r "${dhallPackage}/.cache" ./
+        export XDG_CACHE_HOME=$PWD/.cache
+        chmod -R +w ./.cache
+
+        dhall-to-nix <<< "${dhallPackage}/binary.dhall" > $out
+      '';
+
+      nativeBuildInputs = [ dhall-nix ];
+    };
+
+  in
+    import drv
diff --git a/pkgs/build-support/dhall-to-nix.nix b/pkgs/build-support/dhall/to-nix.nix
index 96cc16e16f369..96cc16e16f369 100644
--- a/pkgs/build-support/dhall-to-nix.nix
+++ b/pkgs/build-support/dhall/to-nix.nix
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index dcfa5ec593d1d..1b6c340f7f0c8 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -5,6 +5,7 @@
 , closureInfo
 , coreutils
 , e2fsprogs
+, fakechroot
 , fakeroot
 , findutils
 , go
@@ -34,6 +35,10 @@
 }:
 
 let
+  inherit (lib)
+    optionals
+    optionalString
+    ;
 
   inherit (lib)
     escapeShellArgs
@@ -235,7 +240,7 @@ rec {
           # Unpack all of the parent layers into the image.
           lowerdir=""
           extractionID=0
-          for layerTar in $(tac layer-list); do
+          for layerTar in $(cat layer-list); do
             echo "Unpacking layer $layerTar"
             extractionID=$((extractionID + 1))
 
@@ -811,6 +816,10 @@ rec {
     , # Optional bash script to run inside fakeroot environment.
       # Could be used for changing ownership of files in customisation layer.
       fakeRootCommands ? ""
+    , # Whether to run fakeRootCommands in fakechroot as well, so that they
+      # appear to run inside the image, but have access to the normal Nix store.
+      # Perhaps this could be enabled on by default on pkgs.stdenv.buildPlatform.isLinux
+      enableFakechroot ? false
     , # We pick 100 to ensure there is plenty of room for extension. I
       # believe the actual maximum is 128.
       maxLayers ? 100
@@ -842,16 +851,26 @@ rec {
           name = "${baseName}-customisation-layer";
           paths = contentsList;
           inherit extraCommands fakeRootCommands;
-          nativeBuildInputs = [ fakeroot ];
+          nativeBuildInputs = [
+            fakeroot
+          ] ++ optionals enableFakechroot [
+            fakechroot
+            # for chroot
+            coreutils
+            # fakechroot needs getopt, which is provided by util-linux
+            util-linux
+          ];
           postBuild = ''
             mv $out old_out
             (cd old_out; eval "$extraCommands" )
 
             mkdir $out
-
-            fakeroot bash -c '
+            ${optionalString enableFakechroot ''
+              export FAKECHROOT_EXCLUDE_PATH=/dev:/proc:/sys:${builtins.storeDir}:$out/layer.tar
+            ''}
+            ${optionalString enableFakechroot ''fakechroot chroot $PWD/old_out ''}fakeroot bash -c '
               source $stdenv/setup
-              cd old_out
+              ${optionalString (!enableFakechroot) ''cd old_out''}
               eval "$fakeRootCommands"
               tar \
                 --sort name \
@@ -867,13 +886,13 @@ rec {
         };
 
         closureRoots = lib.optionals includeStorePaths /* normally true */ (
-          [ baseJson ] ++ contentsList
+          [ baseJson customisationLayer ]
         );
         overallClosure = writeText "closure" (lib.concatStringsSep " " closureRoots);
 
         # These derivations are only created as implementation details of docker-tools,
         # so they'll be excluded from the created images.
-        unnecessaryDrvs = [ baseJson overallClosure ];
+        unnecessaryDrvs = [ baseJson overallClosure customisationLayer ];
 
         conf = runCommand "${baseName}-conf.json"
           {
diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix
index 141c2ba0ea454..941ee048666d0 100644
--- a/pkgs/build-support/docker/examples.nix
+++ b/pkgs/build-support/docker/examples.nix
@@ -350,6 +350,9 @@ rec {
       # This removes sharing of busybox and is not recommended. We do this
       # to make the example suitable as a test case with working binaries.
       cp -r ${pkgs.pkgsStatic.busybox}/* .
+
+      # This is a "build" dependency that will not appear in the image
+      ${pkgs.hello}/bin/hello
     '';
   };
 
@@ -402,6 +405,29 @@ rec {
     created = "now";
   };
 
+  # 23. Ensure that layers are unpacked in the correct order before the
+  # runAsRoot script is executed.
+  layersUnpackOrder =
+  let
+    layerOnTopOf = parent: layerName:
+      pkgs.dockerTools.buildImage {
+        name = "layers-unpack-order-${layerName}";
+        tag = "latest";
+        fromImage = parent;
+        contents = [ pkgs.coreutils ];
+        runAsRoot = ''
+          #!${pkgs.runtimeShell}
+          echo -n "${layerName}" >> /layer-order
+        '';
+      };
+    # When executing the runAsRoot script when building layer C, if layer B is
+    # not unpacked on top of layer A, the contents of /layer-order will not be
+    # "ABC".
+    layerA = layerOnTopOf null   "a";
+    layerB = layerOnTopOf layerA "b";
+    layerC = layerOnTopOf layerB "c";
+  in layerC;
+
   # buildImage without explicit tag
   bashNoTag = pkgs.dockerTools.buildImage {
     name = "bash-no-tag";
@@ -504,6 +530,11 @@ rec {
     fakeRootCommands = ''
       mkdir -p ./home/jane
       chown 1000 ./home/jane
+      ln -s ${pkgs.hello.overrideAttrs (o: {
+        # A unique `hello` to make sure that it isn't included via another mechanism by accident.
+        configureFlags = o.configureFlags or "" + " --program-prefix=layeredImageWithFakeRootCommands-";
+        doCheck = false;
+      })} ./hello
     '';
   };
 
@@ -554,6 +585,20 @@ rec {
   # Example export of the bash image
   exportBash = pkgs.dockerTools.exportImage { fromImage = bash; };
 
+  imageViaFakeChroot = pkgs.dockerTools.streamLayeredImage {
+    name = "image-via-fake-chroot";
+    tag = "latest";
+    config.Cmd = [ "hello" ];
+    enableFakechroot = true;
+    # Crucially, instead of a relative path, this creates /bin, which is
+    # intercepted by fakechroot.
+    # This functionality is not available on darwin as of 2021.
+    fakeRootCommands = ''
+      mkdir /bin
+      ln -s ${pkgs.hello}/bin/hello /bin/hello
+    '';
+  };
+
   build-image-with-path = buildImage {
     name = "build-image-with-path";
     tag = "latest";
diff --git a/pkgs/build-support/emacs/generic.nix b/pkgs/build-support/emacs/generic.nix
index ef154982ad06c..1b81dbcf9ed7e 100644
--- a/pkgs/build-support/emacs/generic.nix
+++ b/pkgs/build-support/emacs/generic.nix
@@ -86,7 +86,7 @@ stdenv.mkDerivation ({
 
     find $out/share/emacs -type f -name '*.el' -print0 \
       | xargs -0 -n 1 -I {} -P $NIX_BUILD_CORES sh -c \
-          "emacs --batch -f batch-native-compile {} || true"
+          "emacs --batch --eval '(setq large-file-warning-threshold nil)' -f batch-native-compile {} || true"
   '';
 }
 
diff --git a/pkgs/build-support/emacs/melpa2nix.el b/pkgs/build-support/emacs/melpa2nix.el
index bd2aadd5aeb55..383423af08189 100644
--- a/pkgs/build-support/emacs/melpa2nix.el
+++ b/pkgs/build-support/emacs/melpa2nix.el
@@ -8,6 +8,9 @@
 (setq package-build-archive-dir (expand-file-name "packages/"))
 (setq package-build-recipes-dir (expand-file-name "recipes/"))
 
+;; Allow installing package tarfiles larger than 10MB
+(setq large-file-warning-threshold nil)
+
 (defun melpa2nix-build-package ()
   (if (not noninteractive)
       (error "`melpa2nix-build-package' is to be used only with -batch"))
diff --git a/pkgs/build-support/emacs/mk-wrapper-subdirs.el b/pkgs/build-support/emacs/mk-wrapper-subdirs.el
new file mode 100644
index 0000000000000..7d30400a5c65f
--- /dev/null
+++ b/pkgs/build-support/emacs/mk-wrapper-subdirs.el
@@ -0,0 +1,6 @@
+(defmacro mk-subdirs-expr (path)
+  `(setq load-path
+         (delete-dups (append '(,path)
+                              ',(let ((default-directory path))
+                                  (normal-top-level-add-subdirs-to-load-path))
+                              load-path))))
diff --git a/pkgs/build-support/emacs/wrapper.nix b/pkgs/build-support/emacs/wrapper.nix
index ccbd58485ea8b..2aa61d6d2f62f 100644
--- a/pkgs/build-support/emacs/wrapper.nix
+++ b/pkgs/build-support/emacs/wrapper.nix
@@ -165,8 +165,13 @@ runCommand
           (add-to-list 'native-comp-eln-load-path "$out/share/emacs/native-lisp/")
         ''}
         EOF
-        # Link subdirs.el from the emacs distribution
-        ln -s $emacs/share/emacs/site-lisp/subdirs.el -T $subdirs
+
+        # Generate a subdirs.el that statically adds all subdirectories to load-path.
+        $emacs/bin/emacs \
+          --batch \
+          --load ${./mk-wrapper-subdirs.el} \
+          --eval "(prin1 (macroexpand-1 '(mk-subdirs-expr \"$out/share/emacs/site-lisp\")))" \
+          > "$subdirs"
 
         # Byte-compiling improves start-up time only slightly, but costs nothing.
         $emacs/bin/emacs --batch -f batch-byte-compile "$siteStart" "$subdirs"
diff --git a/pkgs/build-support/fetchgit/nix-prefetch-git b/pkgs/build-support/fetchgit/nix-prefetch-git
index 10b402de61458..be5068c7ad31c 100755
--- a/pkgs/build-support/fetchgit/nix-prefetch-git
+++ b/pkgs/build-support/fetchgit/nix-prefetch-git
@@ -304,7 +304,7 @@ clone_user_rev() {
     local rev="${3:-HEAD}"
 
     if [ -n "$fetchLFS" ]; then
-        tmpHomePath="$(mktemp -d -p nix-prefetch-git-tmp-home-XXXXXXXXXX)"
+        tmpHomePath="$(mktemp -d "${TMPDIR:-/tmp}/nix-prefetch-git-tmp-home-XXXXXXXXXX")"
         exit_handlers+=(remove_tmpHomePath)
         HOME="$tmpHomePath"
         git lfs install
diff --git a/pkgs/build-support/fetchmtn/builder.sh b/pkgs/build-support/fetchmtn/builder.sh
index c1b0db895bc10..73eff9c272529 100644
--- a/pkgs/build-support/fetchmtn/builder.sh
+++ b/pkgs/build-support/fetchmtn/builder.sh
@@ -2,33 +2,33 @@ source $stdenv/setup
 
 set -x
 
-if ! [ -f "$cacheDB" ]; then 
-	echo "Creating cache DB $cacheDB"
-	mtn --db "$cacheDB" db init
+if ! [ -f "$cacheDB" ]; then
+    echo "Creating cache DB $cacheDB"
+    mtn --db "$cacheDB" db init
 fi
 
 header "getting revision $selector";
 
 done=;
 for source in $dbs; do
-	if mtn pull --db "$cacheDB" "$source" "${branch}"; then
-		revision="$(mtn --db "$cacheDB" au toposort $(mtn --db "$cacheDB" au select "$selector") | tail -1)";
-		if [ -n "$revision" ]; then
-			if mtn --db "$cacheDB" au get_revision "$revision"; then
-				echo "found revision $revision"
-				done=1;
-			else
-				echo "revision $revision does not exist";
-			fi
-		else
-			echo "selector $selector does not match any revision";
-		fi
-	else
-		echo "pulling branch $branch wasn't successful";
-	fi;
-	if test -n "$done"; then
-		break;
-	fi;
+    if mtn pull --db "$cacheDB" "$source" "${branch}"; then
+        revision="$(mtn --db "$cacheDB" au toposort $(mtn --db "$cacheDB" au select "$selector") | tail -1)";
+        if [ -n "$revision" ]; then
+            if mtn --db "$cacheDB" au get_revision "$revision"; then
+                echo "found revision $revision"
+                done=1;
+            else
+                echo "revision $revision does not exist";
+            fi
+        else
+            echo "selector $selector does not match any revision";
+        fi
+    else
+        echo "pulling branch $branch wasn't successful";
+    fi;
+    if test -n "$done"; then
+        break;
+    fi;
 done;
 
 stopNest;
@@ -36,10 +36,10 @@ stopNest;
 header "checking out the revision $revision";
 
 if test -n "$done"; then
-	mtn checkout --db "$cacheDB" -r "$revision" "$out" -b "${branch}"
+    mtn checkout --db "$cacheDB" -r "$revision" "$out" -b "${branch}"
 else
-	echo "Needed revision still not found. Exiting";
-	exit 1;
+    echo "Needed revision still not found. Exiting";
+    exit 1;
 fi;
 
 stopNest
diff --git a/pkgs/build-support/fetchnuget/default.nix b/pkgs/build-support/fetchnuget/default.nix
index ad61b9a51d2b7..061da746cead0 100644
--- a/pkgs/build-support/fetchnuget/default.nix
+++ b/pkgs/build-support/fetchnuget/default.nix
@@ -1,9 +1,9 @@
 { fetchurl, buildDotnetPackage, unzip }:
 
 attrs @
-{ baseName
+{ pname
 , version
-, url ? "https://www.nuget.org/api/v2/package/${baseName}/${version}"
+, url ? "https://www.nuget.org/api/v2/package/${pname}/${version}"
 , sha256 ? ""
 , md5 ? ""
 , ...
@@ -14,7 +14,7 @@ else
   buildDotnetPackage ({
     src = fetchurl {
       inherit url sha256;
-      name = "${baseName}.${version}.zip";
+      name = "${pname}.${version}.zip";
     };
 
     sourceRoot = ".";
diff --git a/pkgs/build-support/mono-dll-fixer/builder.sh b/pkgs/build-support/mono-dll-fixer/builder.sh
deleted file mode 100644
index 67abc465a9bdd..0000000000000
--- a/pkgs/build-support/mono-dll-fixer/builder.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-source $stdenv/setup
-
-substitute $dllFixer $out --subst-var-by perl $perl/bin/perl
-chmod +x $out
diff --git a/pkgs/build-support/mono-dll-fixer/default.nix b/pkgs/build-support/mono-dll-fixer/default.nix
index 8f7d1e795d799..09a986015eeda 100644
--- a/pkgs/build-support/mono-dll-fixer/default.nix
+++ b/pkgs/build-support/mono-dll-fixer/default.nix
@@ -1,8 +1,11 @@
 {stdenv, perl}:
-
 stdenv.mkDerivation {
   name = "mono-dll-fixer";
-  builder = ./builder.sh;
   dllFixer = ./dll-fixer.pl;
+  dontUnpack = true;
+  installPhase = ''
+    substitute $dllFixer $out --subst-var-by perl $perl/bin/perl
+    chmod +x $out
+  '';
   inherit perl;
 }
diff --git a/pkgs/build-support/node/fetch-yarn-deps/index.js b/pkgs/build-support/node/fetch-yarn-deps/index.js
index e728ad89e1c4f..f3662a5436161 100755
--- a/pkgs/build-support/node/fetch-yarn-deps/index.js
+++ b/pkgs/build-support/node/fetch-yarn-deps/index.js
@@ -9,6 +9,7 @@ const child_process = require('child_process')
 const path = require('path')
 const lockfile = require('./yarnpkg-lockfile.js')
 const { promisify } = require('util')
+const url = require('url')
 
 const execFile = promisify(child_process.execFile)
 
@@ -21,15 +22,15 @@ const exec = async (...args) => {
 // This has to match the logic in pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/urlToName.js
 // so that fixup_yarn_lock produces the same paths
 const urlToName = url => {
-  const isCodeloadGitTarballUrl = url.startsWith('https://codeload.github.com/') && url.includes('/tar.gz/')
-
-  if (url.startsWith('git+') || isCodeloadGitTarballUrl) {
-    return path.basename(url)
-  } else {
-    return url
-      .replace(/https:\/\/(.)*(.com)\//g, '') // prevents having long directory names
-      .replace(/[@/%:-]/g, '_') // replace @ and : and - and % characters with underscore
-  }
+	const isCodeloadGitTarballUrl = url.startsWith('https://codeload.github.com/') && url.includes('/tar.gz/')
+
+	if (url.startsWith('git+') || isCodeloadGitTarballUrl) {
+		return path.basename(url)
+	} else {
+		return url
+			.replace(/https:\/\/(.)*(.com)\//g, '') // prevents having long directory names
+			.replace(/[@/%:-]/g, '_') // replace @ and : and - and % characters with underscore
+	}
 }
 
 const downloadFileHttps = (fileName, url, expectedHash) => {
@@ -72,6 +73,23 @@ const downloadGit = async (fileName, url, rev) => {
 	await exec('rm', [ '-rf', fileName + '.tmp', ])
 }
 
+const isGitUrl = pattern => {
+	// https://github.com/yarnpkg/yarn/blob/3119382885ea373d3c13d6a846de743eca8c914b/src/resolvers/exotics/git-resolver.js#L15-L47
+	const GIT_HOSTS = ['github.com', 'gitlab.com', 'bitbucket.com', 'bitbucket.org']
+	const GIT_PATTERN_MATCHERS = [/^git:/, /^git\+.+:/, /^ssh:/, /^https?:.+\.git$/, /^https?:.+\.git#.+/]
+
+	for (const matcher of GIT_PATTERN_MATCHERS) if (matcher.test(pattern)) return true
+
+	const {hostname, path} = url.parse(pattern)
+	if (hostname && path && GIT_HOSTS.indexOf(hostname) >= 0
+		// only if dependency is pointing to a git repo,
+		// e.g. facebook/flow and not file in a git repo facebook/flow/archive/v1.0.0.tar.gz
+		&& path.split('/').filter(p => !!p).length === 2
+	) return true
+
+	return false
+}
+
 const downloadPkg = (pkg, verbose) => {
 	const [ url, hash ] = pkg.resolved.split('#')
 	if (verbose) console.log('downloading ' + url)
@@ -79,12 +97,10 @@ const downloadPkg = (pkg, verbose) => {
 	if (url.startsWith('https://codeload.github.com/') && url.includes('/tar.gz/')) {
 		const s = url.split('/')
 		downloadGit(fileName, `https://github.com/${s[3]}/${s[4]}.git`, s[6])
+	} else if (isGitUrl(url)) {
+		return downloadGit(fileName, url.replace(/^git\+/, ''), hash)
 	} else if (url.startsWith('https://')) {
 		return downloadFileHttps(fileName, url, hash)
-	} else if (url.startsWith('git:')) {
-		return downloadGit(fileName, url.replace(/^git\+/, ''), hash)
-	} else if (url.startsWith('git+')) {
-		return downloadGit(fileName, url.replace(/^git\+/, ''), hash)
 	} else if (url.startsWith('file:')) {
 		console.warn(`ignoring unsupported file:path url "${url}"`)
 	} else {
diff --git a/pkgs/build-support/nuget-to-nix/nuget-to-nix.sh b/pkgs/build-support/nuget-to-nix/nuget-to-nix.sh
index c14844bec59e2..55a499370181f 100755
--- a/pkgs/build-support/nuget-to-nix/nuget-to-nix.sh
+++ b/pkgs/build-support/nuget-to-nix/nuget-to-nix.sh
@@ -17,7 +17,7 @@ while read pkg_spec; do
     sed -nE 's/.*<id>([^<]*).*/\1/p; s/.*<version>([^<+]*).*/\1/p' "$pkg_spec")
   pkg_sha256="$(nix-hash --type sha256 --flat --base32 "$(dirname "$pkg_spec")"/*.nupkg)"
 
-  echo "  (fetchNuGet { name = \"$pkg_name\"; version = \"$pkg_version\"; sha256 = \"$pkg_sha256\"; })"
+  echo "  (fetchNuGet { pname = \"$pkg_name\"; version = \"$pkg_version\"; sha256 = \"$pkg_sha256\"; })"
 done < <(find $1 -name '*.nuspec' | sort)
 
 echo "]"
diff --git a/pkgs/build-support/pkg-config-wrapper/default.nix b/pkgs/build-support/pkg-config-wrapper/default.nix
index bbc49d6728c98..aa8f57ffb04df 100644
--- a/pkgs/build-support/pkg-config-wrapper/default.nix
+++ b/pkgs/build-support/pkg-config-wrapper/default.nix
@@ -47,6 +47,9 @@ stdenv.mkDerivation {
   dontBuild = true;
   dontConfigure = true;
 
+  # Additional flags passed to pkg-config.
+  addFlags = lib.optional stdenv.targetPlatform.isStatic "--static";
+
   unpackPhase = ''
     src=$PWD
   '';
diff --git a/pkgs/build-support/pkg-config-wrapper/pkg-config-wrapper.sh b/pkgs/build-support/pkg-config-wrapper/pkg-config-wrapper.sh
index f7c7429eb0b3e..1aa14cfeb7cc7 100644
--- a/pkgs/build-support/pkg-config-wrapper/pkg-config-wrapper.sh
+++ b/pkgs/build-support/pkg-config-wrapper/pkg-config-wrapper.sh
@@ -12,10 +12,12 @@ if [ -z "${NIX_PKG_CONFIG_WRAPPER_FLAGS_SET_@suffixSalt@:-}" ]; then
     source @out@/nix-support/add-flags.sh
 fi
 
+set -- "$@" @addFlags@
+
 if (( ${#role_suffixes[@]} > 0 )); then
-	# replace env var with nix-modified one
+    # replace env var with nix-modified one
     PKG_CONFIG_PATH=$PKG_CONFIG_PATH_@suffixSalt@ exec @prog@ "$@"
 else
-	# pkg-config isn't a bonafied dependency so ignore setup hook entirely
-	exec @prog@ "$@"
+    # pkg-config isn't a real dependency so ignore setup hook entirely
+    exec @prog@ "$@"
 fi
diff --git a/pkgs/build-support/rust/build-rust-package/sysroot/default.nix b/pkgs/build-support/rust/build-rust-package/sysroot/default.nix
index 4db7cf0dc3923..1e0b901105cd8 100644
--- a/pkgs/build-support/rust/build-rust-package/sysroot/default.nix
+++ b/pkgs/build-support/rust/build-rust-package/sysroot/default.nix
@@ -3,17 +3,8 @@
 { shortTarget, originalCargoToml, target, RUSTFLAGS }:
 
 let
-  cargoSrc = stdenv.mkDerivation {
-    name = "cargo-src";
-    preferLocalBuild = true;
-    phases = [ "installPhase" ];
-    installPhase = ''
-      RUSTC_SRC=${rustPlatform.rustcSrc.override { minimalContent = false; }} ORIG_CARGO=${originalCargoToml} \
-        ${buildPackages.python3.withPackages (ps: with ps; [ toml ])}/bin/python3 ${./cargo.py}
-      mkdir -p $out
-      cp Cargo.toml $out/Cargo.toml
-      cp ${./Cargo.lock} $out/Cargo.lock
-    '';
+  cargoSrc = import ../../sysroot/src.nix {
+    inherit stdenv rustPlatform buildPackages originalCargoToml;
   };
 in rustPlatform.buildRustPackage {
   inherit target RUSTFLAGS;
diff --git a/pkgs/build-support/rust/build-rust-package/sysroot/update-lockfile.sh b/pkgs/build-support/rust/build-rust-package/sysroot/update-lockfile.sh
deleted file mode 100755
index 83d29832384fb..0000000000000
--- a/pkgs/build-support/rust/build-rust-package/sysroot/update-lockfile.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i bash -p python3 python3.pkgs.toml cargo
-
-set -e
-
-HERE=$(dirname "${BASH_SOURCE[0]}")
-NIXPKGS_ROOT="$HERE/../../../.."
-
-# https://unix.stackexchange.com/a/84980/390173
-tempdir=$(mktemp -d 2>/dev/null || mktemp -d -t 'update-lockfile')
-
-cd "$tempdir"
-nix-build -E "with import (/. + \"${NIXPKGS_ROOT}\") {}; pkgs.rustPlatform.rustcSrc.override { minimalContent = false; }"
-RUSTC_SRC="$(pwd)/result" python3 "$HERE/cargo.py"
-RUSTC_BOOTSTRAP=1 cargo build || echo "Build failure is expected. All that's needed is the lockfile."
-
-cp Cargo.lock "$HERE"
-
-rm -rf "$tempdir"
-
-
diff --git a/pkgs/build-support/rust/build-rust-package/sysroot/Cargo.lock b/pkgs/build-support/rust/sysroot/Cargo.lock
index 61fcef61744ee..6ec6da6ae6e28 100644
--- a/pkgs/build-support/rust/build-rust-package/sysroot/Cargo.lock
+++ b/pkgs/build-support/rust/sysroot/Cargo.lock
@@ -10,9 +10,9 @@ dependencies = [
 
 [[package]]
 name = "compiler_builtins"
-version = "0.1.36"
+version = "0.1.52"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cd0782e0a7da7598164153173e5a5d4d9b1da094473c98dce0ff91406112369"
+checksum = "b6591c2442ee984e2b264638a8b5e7ae44fd47b32d28e3a08e2e9c3cdb0c2fb0"
 dependencies = [
  "rustc-std-workspace-core",
 ]
@@ -22,8 +22,21 @@ name = "core"
 version = "0.0.0"
 
 [[package]]
+name = "nixpkgs-sysroot-stub-crate"
+version = "0.0.0"
+dependencies = [
+ "alloc",
+ "compiler_builtins",
+ "core",
+]
+
+[[package]]
 name = "rustc-std-workspace-core"
 version = "1.99.0"
 dependencies = [
  "core",
 ]
+
+[[patch.unused]]
+name = "rustc-std-workspace-alloc"
+version = "1.99.0"
diff --git a/pkgs/build-support/rust/build-rust-package/sysroot/cargo.py b/pkgs/build-support/rust/sysroot/cargo.py
index 09f6fba6d1c81..9d970eff79e88 100644
--- a/pkgs/build-support/rust/build-rust-package/sysroot/cargo.py
+++ b/pkgs/build-support/rust/sysroot/cargo.py
@@ -6,7 +6,7 @@ orig_cargo = os.environ['ORIG_CARGO'] if 'ORIG_CARGO' in os.environ else None
 
 base = {
   'package': {
-    'name': 'alloc',
+    'name': 'nixpkgs-sysroot-stub-crate',
     'version': '0.0.0',
     'authors': ['The Rust Project Developers'],
     'edition': '2018',
@@ -17,17 +17,19 @@ base = {
       'features': ['rustc-dep-of-std', 'mem'],
     },
     'core': {
-      'path': os.path.join(rust_src, 'libcore'),
+      'path': os.path.join(rust_src, 'core'),
+    },
+    'alloc': {
+      'path': os.path.join(rust_src, 'alloc'),
     },
-  },
-  'lib': {
-    'name': 'alloc',
-    'path': os.path.join(rust_src, 'liballoc/lib.rs'),
   },
   'patch': {
     'crates-io': {
       'rustc-std-workspace-core': {
-        'path': os.path.join(rust_src, 'tools/rustc-std-workspace-core'),
+        'path': os.path.join(rust_src, 'rustc-std-workspace-core'),
+      },
+      'rustc-std-workspace-alloc': {
+        'path': os.path.join(rust_src, 'rustc-std-workspace-alloc'),
       },
     },
   },
diff --git a/pkgs/build-support/rust/sysroot/src.nix b/pkgs/build-support/rust/sysroot/src.nix
new file mode 100644
index 0000000000000..3d11b62dd3156
--- /dev/null
+++ b/pkgs/build-support/rust/sysroot/src.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, rustPlatform, buildPackages
+, originalCargoToml ? null
+}:
+
+stdenv.mkDerivation {
+  name = "cargo-src";
+  preferLocalBuild = true;
+
+  unpackPhase = "true";
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    export RUSTC_SRC=${rustPlatform.rustLibSrc.override { }}
+  ''
+  + lib.optionalString (originalCargoToml != null) ''
+    export ORIG_CARGO=${originalCargoToml}
+  ''
+  + ''
+    ${buildPackages.python3.withPackages (ps: with ps; [ toml ])}/bin/python3 ${./cargo.py}
+    mkdir -p $out/src
+    touch $out/src/lib.rs
+    cp Cargo.toml $out/Cargo.toml
+    cp ${./Cargo.lock} $out/Cargo.lock
+  '';
+}
diff --git a/pkgs/build-support/rust/sysroot/update-lockfile.sh b/pkgs/build-support/rust/sysroot/update-lockfile.sh
new file mode 100755
index 0000000000000..d0596d1e5a623
--- /dev/null
+++ b/pkgs/build-support/rust/sysroot/update-lockfile.sh
@@ -0,0 +1,27 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p python3 python3.pkgs.toml cargo
+
+set -eu pipefile
+
+HERE=$(readlink -e $(dirname "${BASH_SOURCE[0]}"))
+NIXPKGS_ROOT="$HERE/../../../.."
+
+# https://unix.stackexchange.com/a/84980/390173
+tempdir=$(mktemp -d 2>/dev/null || mktemp -d -t 'update-lockfile')
+cd "$tempdir"
+mkdir -p src
+touch src/lib.rs
+
+RUSTC_SRC=$(nix-build "${NIXPKGS_ROOT}" -A pkgs.rustPlatform.rustLibSrc --no-out-link)
+
+ln -s $RUSTC_SRC/{core,alloc} ./
+
+export RUSTC_SRC
+python3 "$HERE/cargo.py"
+
+export RUSTC_BOOTSTRAP=1
+cargo generate-lockfile
+
+cp Cargo.lock "$HERE"
+
+rm -rf "$tempdir"
diff --git a/pkgs/build-support/setup-hooks/make-binary-wrapper.sh b/pkgs/build-support/setup-hooks/make-binary-wrapper.sh
new file mode 100644
index 0000000000000..986be5b9e1137
--- /dev/null
+++ b/pkgs/build-support/setup-hooks/make-binary-wrapper.sh
@@ -0,0 +1,391 @@
+
+set -euo pipefail
+
+# Assert that FILE exists and is executable
+#
+# assertExecutable FILE
+assertExecutable() {
+    local file="$1"
+    [[ -f "$file" && -x "$file" ]] || \
+        die "Cannot wrap '$file' because it is not an executable file"
+}
+
+# Generate a binary executable wrapper for wrapping an executable.
+# The binary is compiled from generated C-code using gcc.
+# makeWrapper EXECUTABLE OUT_PATH ARGS
+
+# ARGS:
+# --argv0       NAME    : set name of executed process to NAME
+#                         (otherwise it’s called …-wrapped)
+# --inherit-argv0       : the executable inherits argv0 from the wrapper.
+#                         (use instead of --argv0 '$0')
+# --set         VAR VAL : add VAR with value VAL to the executable’s
+#                         environment
+# --set-default VAR VAL : like --set, but only adds VAR if not already set in
+#                         the environment
+# --unset       VAR     : remove VAR from the environment
+# --chdir       DIR     : change working directory (use instead of --run "cd DIR")
+# --add-flags   FLAGS   : add FLAGS to invocation of executable
+
+# --prefix          ENV SEP VAL   : suffix/prefix ENV with VAL, separated by SEP
+# --suffix
+
+# To troubleshoot a binary wrapper after you compiled it,
+# use the `strings` command or open the binary file in a text editor.
+makeWrapper() {
+    local original="$1"
+    local wrapper="$2"
+    shift 2
+
+    assertExecutable "$original"
+
+    mkdir -p "$(dirname "$wrapper")"
+
+    makeDocumentedCWrapper "$original" "$@" | \
+      @CC@ \
+        -Wall -Werror -Wpedantic \
+        -Os \
+        -x c \
+        -o "$wrapper" -
+}
+
+# Syntax: wrapProgram <PROGRAM> <MAKE-WRAPPER FLAGS...>
+wrapProgram() {
+    local prog="$1"
+    local hidden
+
+    assertExecutable "$prog"
+
+    hidden="$(dirname "$prog")/.$(basename "$prog")"-wrapped
+    while [ -e "$hidden" ]; do
+      hidden="${hidden}_"
+    done
+    mv "$prog" "$hidden"
+    # Silence warning about unexpanded $0:
+    # shellcheck disable=SC2016
+    makeWrapper "$hidden" "$prog" --inherit-argv0 "${@:2}"
+}
+
+# Generate source code for the wrapper in such a way that the wrapper inputs
+# will still be readable even after compilation
+# makeDocumentedCWrapper EXECUTABLE ARGS
+# ARGS: same as makeWrapper
+makeDocumentedCWrapper() {
+    local src docs
+    src=$(makeCWrapper "$@")
+    docs=$(docstring "$@")
+    printf '%s\n\n' "$src"
+    printf '%s\n' "$docs"
+}
+
+# makeCWrapper EXECUTABLE ARGS
+# ARGS: same as makeWrapper
+makeCWrapper() {
+    local argv0 inherit_argv0 n params cmd main flagsBefore flags executable length
+    local uses_prefix uses_suffix uses_assert uses_assert_success uses_stdio uses_asprintf
+    executable=$(escapeStringLiteral "$1")
+    params=("$@")
+    length=${#params[*]}
+    for ((n = 1; n < length; n += 1)); do
+        p="${params[n]}"
+        case $p in
+            --set)
+                cmd=$(setEnv "${params[n + 1]}" "${params[n + 2]}")
+                main="$main$cmd"$'\n'
+                n=$((n + 2))
+                [ $n -ge "$length" ] && main="$main#error makeCWrapper: $p takes 2 arguments"$'\n'
+            ;;
+            --set-default)
+                cmd=$(setDefaultEnv "${params[n + 1]}" "${params[n + 2]}")
+                main="$main$cmd"$'\n'
+                uses_stdio=1
+                uses_assert_success=1
+                n=$((n + 2))
+                [ $n -ge "$length" ] && main="$main#error makeCWrapper: $p takes 2 arguments"$'\n'
+            ;;
+            --unset)
+                cmd=$(unsetEnv "${params[n + 1]}")
+                main="$main$cmd"$'\n'
+                uses_stdio=1
+                uses_assert_success=1
+                n=$((n + 1))
+                [ $n -ge "$length" ] && main="$main#error makeCWrapper: $p takes 1 argument"$'\n'
+            ;;
+            --prefix)
+                cmd=$(setEnvPrefix "${params[n + 1]}" "${params[n + 2]}" "${params[n + 3]}")
+                main="$main$cmd"$'\n'
+                uses_prefix=1
+                uses_asprintf=1
+                uses_stdio=1
+                uses_assert_success=1
+                uses_assert=1
+                n=$((n + 3))
+                [ $n -ge "$length" ] && main="$main#error makeCWrapper: $p takes 3 arguments"$'\n'
+            ;;
+            --suffix)
+                cmd=$(setEnvSuffix "${params[n + 1]}" "${params[n + 2]}" "${params[n + 3]}")
+                main="$main$cmd"$'\n'
+                uses_suffix=1
+                uses_asprintf=1
+                uses_stdio=1
+                uses_assert_success=1
+                uses_assert=1
+                n=$((n + 3))
+                [ $n -ge "$length" ] && main="$main#error makeCWrapper: $p takes 3 arguments"$'\n'
+            ;;
+            --chdir)
+                cmd=$(changeDir "${params[n + 1]}")
+                main="$main$cmd"$'\n'
+                uses_stdio=1
+                uses_assert_success=1
+                n=$((n + 1))
+                [ $n -ge "$length" ] && main="$main#error makeCWrapper: $p takes 1 argument"$'\n'
+            ;;
+            --add-flags)
+                flags="${params[n + 1]}"
+                flagsBefore="$flagsBefore $flags"
+                uses_assert=1
+                n=$((n + 1))
+                [ $n -ge "$length" ] && main="$main#error makeCWrapper: $p takes 1 argument"$'\n'
+            ;;
+            --argv0)
+                argv0=$(escapeStringLiteral "${params[n + 1]}")
+                inherit_argv0=
+                n=$((n + 1))
+                [ $n -ge "$length" ] && main="$main#error makeCWrapper: $p takes 1 argument"$'\n'
+            ;;
+            --inherit-argv0)
+                # Whichever comes last of --argv0 and --inherit-argv0 wins
+                inherit_argv0=1
+            ;;
+            *) # Using an error macro, we will make sure the compiler gives an understandable error message
+                main="$main#error makeCWrapper: Unknown argument ${p}"$'\n'
+            ;;
+        esac
+    done
+    # shellcheck disable=SC2086
+    [ -z "$flagsBefore" ] || main="$main"${main:+$'\n'}$(addFlags $flagsBefore)$'\n'$'\n'
+    [ -z "$inherit_argv0" ] && main="${main}argv[0] = \"${argv0:-${executable}}\";"$'\n'
+    main="${main}return execv(\"${executable}\", argv);"$'\n'
+
+    [ -z "$uses_asprintf" ] || printf '%s\n' "#define _GNU_SOURCE         /* See feature_test_macros(7) */"
+    printf '%s\n' "#include <unistd.h>"
+    printf '%s\n' "#include <stdlib.h>"
+    [ -z "$uses_assert" ]   || printf '%s\n' "#include <assert.h>"
+    [ -z "$uses_stdio" ]    || printf '%s\n' "#include <stdio.h>"
+    [ -z "$uses_assert_success" ] || printf '\n%s\n' "#define assert_success(e) do { if ((e) < 0) { perror(#e); abort(); } } while (0)"
+    [ -z "$uses_prefix" ] || printf '\n%s\n' "$(setEnvPrefixFn)"
+    [ -z "$uses_suffix" ] || printf '\n%s\n' "$(setEnvSuffixFn)"
+    printf '\n%s' "int main(int argc, char **argv) {"
+    printf '\n%s' "$(indent4 "$main")"
+    printf '\n%s\n' "}"
+}
+
+addFlags() {
+    local result n flag flags var
+    var="argv_tmp"
+    flags=("$@")
+    for ((n = 0; n < ${#flags[*]}; n += 1)); do
+        flag=$(escapeStringLiteral "${flags[$n]}")
+        result="$result${var}[$((n+1))] = \"$flag\";"$'\n'
+    done
+    printf '%s\n' "char **$var = calloc($((n+1)) + argc, sizeof(*$var));"
+    printf '%s\n' "assert($var != NULL);"
+    printf '%s\n' "${var}[0] = argv[0];"
+    printf '%s' "$result"
+    printf '%s\n' "for (int i = 1; i < argc; ++i) {"
+    printf '%s\n' "    ${var}[$n + i] = argv[i];"
+    printf '%s\n' "}"
+    printf '%s\n' "${var}[$n + argc] = NULL;"
+    printf '%s\n' "argv = $var;"
+}
+
+# chdir DIR
+changeDir() {
+    local dir
+    dir=$(escapeStringLiteral "$1")
+    printf '%s' "assert_success(chdir(\"$dir\"));"
+}
+
+# prefix ENV SEP VAL
+setEnvPrefix() {
+    local env sep val
+    env=$(escapeStringLiteral "$1")
+    sep=$(escapeStringLiteral "$2")
+    val=$(escapeStringLiteral "$3")
+    printf '%s' "set_env_prefix(\"$env\", \"$sep\", \"$val\");"
+    assertValidEnvName "$1"
+}
+
+# suffix ENV SEP VAL
+setEnvSuffix() {
+    local env sep val
+    env=$(escapeStringLiteral "$1")
+    sep=$(escapeStringLiteral "$2")
+    val=$(escapeStringLiteral "$3")
+    printf '%s' "set_env_suffix(\"$env\", \"$sep\", \"$val\");"
+    assertValidEnvName "$1"
+}
+
+# setEnv KEY VALUE
+setEnv() {
+    local key value
+    key=$(escapeStringLiteral "$1")
+    value=$(escapeStringLiteral "$2")
+    printf '%s' "putenv(\"$key=$value\");"
+    assertValidEnvName "$1"
+}
+
+# setDefaultEnv KEY VALUE
+setDefaultEnv() {
+    local key value
+    key=$(escapeStringLiteral "$1")
+    value=$(escapeStringLiteral "$2")
+    printf '%s' "assert_success(setenv(\"$key\", \"$value\", 0));"
+    assertValidEnvName "$1"
+}
+
+# unsetEnv KEY
+unsetEnv() {
+    local key
+    key=$(escapeStringLiteral "$1")
+    printf '%s' "assert_success(unsetenv(\"$key\"));"
+    assertValidEnvName "$1"
+}
+
+# Makes it safe to insert STRING within quotes in a C String Literal.
+# escapeStringLiteral STRING
+escapeStringLiteral() {
+    local result
+    result=${1//$'\\'/$'\\\\'}
+    result=${result//\"/'\"'}
+    result=${result//$'\n'/"\n"}
+    result=${result//$'\r'/"\r"}
+    printf '%s' "$result"
+}
+
+# Indents every non-empty line by 4 spaces. To avoid trailing whitespace, we don't indent empty lines
+# indent4 TEXT_BLOCK
+indent4() {
+    printf '%s' "$1" | awk '{ if ($0 != "") { print "    "$0 } else { print $0 }}'
+}
+
+assertValidEnvName() {
+    case "$1" in
+        *=*) printf '\n%s\n' "#error Illegal environment variable name \`$1\` (cannot contain \`=\`)";;
+        "")  printf '\n%s\n' "#error Environment variable name can't be empty.";;
+    esac
+}
+
+setEnvPrefixFn() {
+    printf '%s' "\
+void set_env_prefix(char *env, char *sep, char *prefix) {
+    char *existing = getenv(env);
+    if (existing) {
+        char *val;
+        assert_success(asprintf(&val, \"%s%s%s\", prefix, sep, existing));
+        assert_success(setenv(env, val, 1));
+        free(val);
+    } else {
+        assert_success(setenv(env, prefix, 1));
+    }
+}
+"
+}
+
+setEnvSuffixFn() {
+    printf '%s' "\
+void set_env_suffix(char *env, char *sep, char *suffix) {
+    char *existing = getenv(env);
+    if (existing) {
+        char *val;
+        assert_success(asprintf(&val, \"%s%s%s\", existing, sep, suffix));
+        assert_success(setenv(env, val, 1));
+        free(val);
+    } else {
+        assert_success(setenv(env, suffix, 1));
+    }
+}
+"
+}
+
+# Embed a C string which shows up as readable text in the compiled binary wrapper
+# documentationString ARGS
+docstring() {
+    printf '%s' "const char * DOCSTRING = \"$(escapeStringLiteral "
+
+
+# ------------------------------------------------------------------------------------
+# The C-code for this binary wrapper has been generated using the following command:
+
+
+makeCWrapper $(formatArgs "$@")
+
+
+# (Use \`nix-shell -p makeBinaryWrapper\` to get access to makeCWrapper in your shell)
+# ------------------------------------------------------------------------------------
+
+
+")\";"
+}
+
+# formatArgs EXECUTABLE ARGS
+formatArgs() {
+    printf '%s' "$1"
+    shift
+    while [ $# -gt 0 ]; do
+        case "$1" in
+            --set)
+                formatArgsLine 2 "$@"
+                shift 2
+            ;;
+            --set-default)
+                formatArgsLine 2 "$@"
+                shift 2
+            ;;
+            --unset)
+                formatArgsLine 1 "$@"
+                shift 1
+            ;;
+            --prefix)
+                formatArgsLine 3 "$@"
+                shift 3
+            ;;
+            --suffix)
+                formatArgsLine 3 "$@"
+                shift 3
+            ;;
+            --chdir)
+                formatArgsLine 1 "$@"
+                shift 1
+            ;;
+            --add-flags)
+                formatArgsLine 1 "$@"
+                shift 1
+            ;;
+            --argv0)
+                formatArgsLine 1 "$@"
+                shift 1
+            ;;
+            --inherit-argv0)
+                formatArgsLine 0 "$@"
+            ;;
+        esac
+        shift
+    done
+    printf '%s\n' ""
+}
+
+# formatArgsLine ARG_COUNT ARGS
+formatArgsLine() {
+    local ARG_COUNT LENGTH
+    ARG_COUNT=$1
+    LENGTH=$#
+    shift
+    printf '%s' $' \\\n    '"$1"
+    shift
+    while [ "$ARG_COUNT" -gt $((LENGTH - $# - 2)) ]; do
+        printf ' %s' "${1@Q}"
+        shift
+    done
+}
diff --git a/pkgs/build-support/setup-hooks/role.bash b/pkgs/build-support/setup-hooks/role.bash
index cf69e732e7c3d..b2d34a1f8606d 100644
--- a/pkgs/build-support/setup-hooks/role.bash
+++ b/pkgs/build-support/setup-hooks/role.bash
@@ -17,7 +17,7 @@ function getRole() {
             role_post='_FOR_TARGET'
             ;;
         *)
-            echo "@name@: used as improper sort of dependency" >2
+            echo "@name@: used as improper sort of dependency" >&2
             return 1
             ;;
     esac
@@ -64,7 +64,7 @@ function getTargetRoleWrapper() {
             export NIX_@wrapperName@_TARGET_TARGET_@suffixSalt@=1
             ;;
         *)
-            echo "@name@: used as improper sort of dependency" >2
+            echo "@name@: used as improper sort of dependency" >&2
             return 1
             ;;
     esac
diff --git a/pkgs/build-support/setup-hooks/separate-debug-info.sh b/pkgs/build-support/setup-hooks/separate-debug-info.sh
index 2481d8f50470c..1a23e6b198ee0 100644
--- a/pkgs/build-support/setup-hooks/separate-debug-info.sh
+++ b/pkgs/build-support/setup-hooks/separate-debug-info.sh
@@ -28,10 +28,16 @@ _separateDebugInfo() {
         # Extract the debug info.
         header "separating debug info from $i (build ID $id)"
         mkdir -p "$dst/${id:0:2}"
-        $OBJCOPY --only-keep-debug "$i" "$dst/${id:0:2}/${id:2}.debug"
-        $STRIP --strip-debug "$i"
 
-        # Also a create a symlink <original-name>.debug.
-        ln -sfn ".build-id/${id:0:2}/${id:2}.debug" "$dst/../$(basename "$i")"
+        # This may fail, e.g. if the binary is for a different
+        # architecture than we're building for.  (This happens with
+        # firmware blobs in QEMU.)
+        (
+            $OBJCOPY --only-keep-debug "$i" "$dst/${id:0:2}/${id:2}.debug"
+            $STRIP --strip-debug "$i"
+
+            # Also a create a symlink <original-name>.debug.
+            ln -sfn ".build-id/${id:0:2}/${id:2}.debug" "$dst/../$(basename "$i")"
+        ) || rmdir -p "$dst/${id:0:2}"
     done < <(find "$prefix" -type f -print0)
 }
diff --git a/pkgs/build-support/setup-hooks/shorten-perl-shebang.sh b/pkgs/build-support/setup-hooks/shorten-perl-shebang.sh
index 4bf7c0ff1af48..825da1bde962c 100644
--- a/pkgs/build-support/setup-hooks/shorten-perl-shebang.sh
+++ b/pkgs/build-support/setup-hooks/shorten-perl-shebang.sh
@@ -71,9 +71,9 @@ _shortenPerlShebang() {
             print
         }
     ' "$program" > "$temp" || die
-	# Preserve the mode of the original file
-	cp --preserve=mode --attributes-only "$program" "$temp"
-	mv "$temp" "$program"
+    # Preserve the mode of the original file
+    cp --preserve=mode --attributes-only "$program" "$temp"
+    mv "$temp" "$program"
 
     # Measure the new shebang line length and make sure it's okay. We subtract
     # one to account for the trailing newline that "head" included in its
diff --git a/pkgs/build-support/upstream-updater/update-walker-service-specific.sh b/pkgs/build-support/upstream-updater/update-walker-service-specific.sh
index fe439c5d11e39..d92d223845e69 100644
--- a/pkgs/build-support/upstream-updater/update-walker-service-specific.sh
+++ b/pkgs/build-support/upstream-updater/update-walker-service-specific.sh
@@ -1,5 +1,5 @@
 SF_redirect () {
-  redirect
+  redirect 99
   process 'http://[a-z]+[.]dl[.]sourceforge[.]net/' 'mirror://sourceforge/'
   process '[?].*' ''
 }
diff --git a/pkgs/build-support/upstream-updater/update-walker.sh b/pkgs/build-support/upstream-updater/update-walker.sh
index e60499b60f27f..9172a41718c84 100755
--- a/pkgs/build-support/upstream-updater/update-walker.sh
+++ b/pkgs/build-support/upstream-updater/update-walker.sh
@@ -69,8 +69,8 @@ version_link () {
 
 redirect () {
   CURRENT_URL="$(curl -I -L --max-redirs "${1:-99}" "$CURRENT_URL" | 
-    grep -E '^Location: ' | position_choice "${2:-999999}" "$3" |
-    sed -e 's/^Location: //; s/\r//')"
+    grep -E '^[Ll]ocation: ' | position_choice "${2:-999999}" "$3" |
+    sed -e 's/^[Ll]ocation: //; s/\r//')"
   echo "Redirected: $*"
   echo "URL: $CURRENT_URL" >&2
 }
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index 3f176db36c2bd..e466ff7ecce8c 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -90,6 +90,10 @@ rec {
     done
 
     mount -t devtmpfs devtmpfs /dev
+    ln -s /proc/self/fd /dev/fd
+    ln -s /proc/self/fd/0 /dev/stdin
+    ln -s /proc/self/fd/1 /dev/stdout
+    ln -s /proc/self/fd/2 /dev/stderr
 
     ifconfig lo up
 
@@ -110,7 +114,7 @@ rec {
 
     echo "mounting Nix store..."
     mkdir -p /fs${storeDir}
-    mount -t 9p store /fs${storeDir} -o trans=virtio,version=9p2000.L,cache=loose,msize=${toString default9PMsizeBytes}
+    mount -t 9p store /fs${storeDir} -o trans=virtio,version=9p2000.L,cache=loose,msize=131072
 
     mkdir -p /fs/tmp /fs/run /fs/var
     mount -t tmpfs -o "mode=1777" none /fs/tmp
@@ -119,7 +123,7 @@ rec {
 
     echo "mounting host's temporary directory..."
     mkdir -p /fs/tmp/xchg
-    mount -t 9p xchg /fs/tmp/xchg -o trans=virtio,version=9p2000.L,msize=${toString default9PMsizeBytes}
+    mount -t 9p xchg /fs/tmp/xchg -o trans=virtio,version=9p2000.L,msize=131072
 
     mkdir -p /fs/proc
     mount -t proc none /fs/proc
@@ -506,8 +510,7 @@ rec {
      tarball must contain an RPM specfile. */
 
   buildRPM = attrs: runInLinuxImage (stdenv.mkDerivation ({
-    prePhases = [ pkgs.prepareImagePhase pkgs.sysInfoPhase ];
-    dontUnpack = true;
+    prePhases = [ "prepareImagePhase" "sysInfoPhase" ];
     dontConfigure = true;
 
     outDir = "rpms/${attrs.diskImage.name}";
@@ -532,9 +535,7 @@ rec {
     buildPhase = ''
       eval "$preBuild"
 
-      # Hacky: RPM looks for <basename>.spec inside the tarball, so
-      # strip off the hash.
-      srcName="$(stripHash "$src")"
+      srcName="$(rpmspec --srpm -q --qf '%{source}' *.spec)"
       cp "$src" "$srcName" # `ln' doesn't work always work: RPM requires that the file is owned by root
 
       export HOME=/tmp/home
@@ -1174,11 +1175,4 @@ rec {
      `debDistros' sets. */
   diskImages = lib.mapAttrs (name: f: f {}) diskImageFuns;
 
-  # The default 9P msize value is 8 KiB, which according to QEMU is
-  # insufficient and would degrade performance.
-  # See: https://wiki.qemu.org/Documentation/9psetup#msize
-  # Use 128KiB which is the default in linux 5.15+
-  # https://github.com/torvalds/linux/commit/9c4d94dc9a64426d2fa0255097a3a84f6ff2eebe
-  # TODO: actually set it to 128KiB, it was causing failures in many tests due to memory usage
-  default9PMsizeBytes = 16 * 1024;
 }
diff --git a/pkgs/build-support/vm/test.nix b/pkgs/build-support/vm/test.nix
index 384c920880839..ae6a10dea3b9c 100644
--- a/pkgs/build-support/vm/test.nix
+++ b/pkgs/build-support/vm/test.nix
@@ -9,20 +9,23 @@ with vmTools;
 
   buildHelloInVM = runInLinuxVM hello;
 
-  buildPanInVM = runInLinuxVM pan;
+  buildPcmanrmInVM = runInLinuxVM (pcmanfm.overrideAttrs (old: {
+    # goes out-of-memory with many cores
+    enableParallelBuilding = false;
+  }));
 
-
-  testRPMImage = makeImageTestScript diskImages.fedora16x86_64;
+  testRPMImage = makeImageTestScript diskImages.fedora27x86_64;
 
 
   buildPatchelfRPM = buildRPM {
     name = "patchelf-rpm";
     src = patchelf.src;
-    diskImage = diskImages.fedora16x86_64;
+    diskImage = diskImages.fedora27x86_64;
+    diskImageFormat = "qcow2";
   };
 
 
-  testUbuntuImage = makeImageTestScript diskImages.ubuntu810i386;
+  testUbuntuImage = makeImageTestScript diskImages.ubuntu1804i386;
 
 
   buildInDebian = runInLinuxImage (stdenv.mkDerivation {
diff --git a/pkgs/build-support/wrapper-common/utils.bash b/pkgs/build-support/wrapper-common/utils.bash
index cb3552ebc54b7..0afccadf3384e 100644
--- a/pkgs/build-support/wrapper-common/utils.bash
+++ b/pkgs/build-support/wrapper-common/utils.bash
@@ -21,13 +21,13 @@ mangleVarListGeneric() {
     local -a role_suffixes=("$@")
 
     local outputVar="${var}_@suffixSalt@"
-    declare -gx ${outputVar}+=''
+    declare -gx "$outputVar"+=''
     # For each role we serve, we accumulate the input parameters into our own
     # cc-wrapper-derivation-specific environment variables.
     for suffix in "${role_suffixes[@]}"; do
         local inputVar="${var}${suffix}"
         if [ -v "$inputVar" ]; then
-            export ${outputVar}+="${!outputVar:+$sep}${!inputVar}"
+            export "${outputVar}+=${!outputVar:+$sep}${!inputVar}"
         fi
     done
 }
@@ -42,7 +42,7 @@ mangleVarBool() {
     local -a role_suffixes=("$@")
 
     local outputVar="${var}_@suffixSalt@"
-    declare -gxi ${outputVar}+=0
+    declare -gxi "${outputVar}+=0"
     for suffix in "${role_suffixes[@]}"; do
         local inputVar="${var}${suffix}"
         if [ -v "$inputVar" ]; then
@@ -131,7 +131,7 @@ expandResponseParams() {
 }
 
 checkLinkType() {
-    local arg mode
+    local arg
     type="dynamic"
     for arg in "$@"; do
         if [[ "$arg" = -static ]]; then
@@ -146,7 +146,7 @@ checkLinkType() {
 # When building static-pie executables we cannot have rpath
 # set. At least glibc requires rpath to be empty
 filterRpathFlags() {
-    local linkType=$1 ret="" i
+    local linkType=$1 ret i
     shift
 
     if [[ "$linkType" == "static-pie" ]]; then
@@ -156,11 +156,11 @@ filterRpathFlags() {
                 # also skip its argument
                 shift
             else
-                ret+="$i "
+                ret+=("$i")
             fi
         done
     else
-        ret=$@
+        ret=("$@")
     fi
-    echo $ret
+    echo "${ret[@]}"
 }
diff --git a/pkgs/build-support/writers/aliases.nix b/pkgs/build-support/writers/aliases.nix
new file mode 100644
index 0000000000000..fb108a6fd857a
--- /dev/null
+++ b/pkgs/build-support/writers/aliases.nix
@@ -0,0 +1,35 @@
+lib: prev:
+
+let
+  # Removing recurseForDerivation prevents derivations of aliased attribute
+  # set to appear while listing all the packages available.
+  removeRecurseForDerivations = alias: with lib;
+    if alias.recurseForDerivations or false then
+      removeAttrs alias ["recurseForDerivations"]
+    else alias;
+
+  # Disabling distribution prevents top-level aliases for non-recursed package
+  # sets from building on Hydra.
+  removeDistribute = alias: with lib;
+    if isDerivation alias then
+      dontDistribute alias
+    else alias;
+
+  # Make sure that we are not shadowing something from
+  # writers.
+  checkInPkgs = n: alias: if builtins.hasAttr n prev
+                          then throw "Alias ${n} is still in writers"
+                          else alias;
+
+  mapAliases = aliases:
+    lib.mapAttrs (n: alias: removeDistribute
+                             (removeRecurseForDerivations
+                              (checkInPkgs n alias)))
+                     aliases;
+
+in
+mapAliases ({
+  /* Cleanup before 22.05, Added 2021-12-11 */
+  writePython2 = "Python 2 is EOL and the use of writers.writePython2 is deprecated.";
+  writePython2Bin = "Python 2 is EOL and the use of writers.writePython2Bin is deprecated.";
+})
diff --git a/pkgs/build-support/writers/default.nix b/pkgs/build-support/writers/default.nix
index 4b4d4bb203e0b..30301e3b2e54e 100644
--- a/pkgs/build-support/writers/default.nix
+++ b/pkgs/build-support/writers/default.nix
@@ -1,7 +1,9 @@
-{ pkgs, buildPackages, lib, stdenv, libiconv, gawk, gnused, gixy }:
+{ pkgs, config, buildPackages, lib, stdenv, libiconv, gawk, gnused, gixy }:
 
-with lib;
-rec {
+let
+  aliases = if (config.allowAliases or true) then (import ./aliases.nix lib) else prev: {};
+
+  writers = with lib; rec {
   # Base implementation for non-compiled executables.
   # Takes an interpreter, for example `${pkgs.bash}/bin/bash`
   #
@@ -240,16 +242,16 @@ rec {
       then "${python}/bin/python"
       else "${python.withPackages (ps: libraries)}/bin/python"
     ;
-    check = writeDash "python2check.sh" ''
+    check = optionalString python.isPy3k (writeDash "pythoncheck.sh" ''
       exec ${pythonPackages.flake8}/bin/flake8 --show-source ${ignoreAttribute} "$1"
-    '';
+    '');
   } name;
 
-  # writePython2 takes a name an attributeset with libraries and some python2 sourcecode and
+  # writePyPy2 takes a name an attributeset with libraries and some pypy2 sourcecode and
   # returns an executable
   #
   # Example:
-  # writePython2 "test_python2" { libraries = [ pkgs.python2Packages.enum ]; } ''
+  # writePyPy2 "test_pypy2" { libraries = [ pkgs.pypy2Packages.enum ]; } ''
   #   from enum import Enum
   #
   #   class Test(Enum):
@@ -257,11 +259,11 @@ rec {
   #
   #   print Test.a
   # ''
-  writePython2 = makePythonWriter pkgs.python2 pkgs.python2Packages;
+  writePyPy2 = makePythonWriter pkgs.pypy2 pkgs.pypy2Packages;
 
-  # writePython2Bin takes the same arguments as writePython2 but outputs a directory (like writeScriptBin)
-  writePython2Bin = name:
-    writePython2 "/bin/${name}";
+  # writePyPy2Bin takes the same arguments as writePyPy2 but outputs a directory (like writeScriptBin)
+  writePyPy2Bin = name:
+    writePyPy2 "/bin/${name}";
 
   # writePython3 takes a name an attributeset with libraries and some python3 sourcecode and
   # returns an executable
@@ -280,4 +282,25 @@ rec {
   # writePython3Bin takes the same arguments as writePython3 but outputs a directory (like writeScriptBin)
   writePython3Bin = name:
     writePython3 "/bin/${name}";
-}
+
+  # writePyPy3 takes a name an attributeset with libraries and some pypy3 sourcecode and
+  # returns an executable
+  #
+  # Example:
+  # writePyPy3 "test_pypy3" { libraries = [ pkgs.pypy3Packages.pyyaml ]; } ''
+  #   import yaml
+  #
+  #   y = yaml.load("""
+  #     - test: success
+  #   """)
+  #   print(y[0]['test'])
+  # ''
+  writePyPy3 = makePythonWriter pkgs.pypy3 pkgs.pypy3Packages;
+
+  # writePyPy3Bin takes the same arguments as writePyPy3 but outputs a directory (like writeScriptBin)
+  writePyPy3Bin = name:
+    writePyPy3 "/bin/${name}";
+
+};
+in
+writers // (aliases writers)
diff --git a/pkgs/build-support/writers/test.nix b/pkgs/build-support/writers/test.nix
index 69bc7dd2c61ac..decd7e42d5cc6 100644
--- a/pkgs/build-support/writers/test.nix
+++ b/pkgs/build-support/writers/test.nix
@@ -3,8 +3,9 @@
 , lib
 , nodePackages
 , perlPackages
-, python2Packages
+, pypy2Packages
 , python3Packages
+, pypy3Packages
 , runCommand
 , writers
 , writeText
@@ -54,7 +55,7 @@ let
       print "success\n" if true;
     '';
 
-    python2 = writePython2Bin "test-writers-python2-bin" { libraries = [ python2Packages.enum ]; } ''
+    pypy2 = writePyPy2Bin "test-writers-pypy2-bin" { libraries = [ pypy2Packages.enum ]; } ''
       from enum import Enum
 
 
@@ -73,6 +74,15 @@ let
       """)
       print(y[0]['test'])
     '';
+
+    pypy3 = writePyPy3Bin "test-writers-pypy3-bin" { libraries = [ pypy3Packages.pyyaml ]; } ''
+      import yaml
+
+      y = yaml.load("""
+        - test: success
+      """)
+      print(y[0]['test'])
+    '';
   };
 
   simple = {
@@ -111,7 +121,7 @@ let
       print "success\n" if true;
     '';
 
-    python2 = writePython2 "test-writers-python2" { libraries = [ python2Packages.enum ]; } ''
+    pypy2 = writePyPy2 "test-writers-pypy2" { libraries = [ pypy2Packages.enum ]; } ''
       from enum import Enum
 
 
@@ -131,13 +141,26 @@ let
       print(y[0]['test'])
     '';
 
-    python2NoLibs = writePython2 "test-writers-python2-no-libs" {} ''
+    pypy3 = writePyPy3 "test-writers-pypy3" { libraries = [ pypy3Packages.pyyaml ]; } ''
+      import yaml
+
+      y = yaml.load("""
+        - test: success
+      """)
+      print(y[0]['test'])
+    '';
+
+    pypy2NoLibs = writePyPy2 "test-writers-pypy2-no-libs" {} ''
       print("success")
     '';
 
     python3NoLibs = writePython3 "test-writers-python3-no-libs" {} ''
       print("success")
     '';
+
+    pypy3NoLibs = writePyPy3 "test-writers-pypy3-no-libs" {} ''
+      print("success")
+    '';
   };
 
 
diff --git a/pkgs/data/documentation/gnome-user-docs/default.nix b/pkgs/data/documentation/gnome-user-docs/default.nix
index cdc104f3a5353..e8f671566d8dd 100644
--- a/pkgs/data/documentation/gnome-user-docs/default.nix
+++ b/pkgs/data/documentation/gnome-user-docs/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-user-docs";
-  version = "41.0";
+  version = "41.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-user-docs/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "0lfxj8irwm88n3ba351ak85r97pqlds6y2hqbsic714yj4k8df1a";
+    sha256 = "Ve499XfRcX/BUvwq64nQr3qeyoZsiXTGdfYL1jCIjEg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/documentation/man-pages/default.nix b/pkgs/data/documentation/man-pages/default.nix
index 79a48acd9f246..60a7e3f229f59 100644
--- a/pkgs/data/documentation/man-pages/default.nix
+++ b/pkgs/data/documentation/man-pages/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "man-pages";
-  version = "5.12";
+  version = "5.13";
 
   src = fetchurl {
     url = "mirror://kernel/linux/docs/man-pages/${pname}-${version}.tar.xz";
-    sha256 = "07ip4f70nyxn24wy0fin6klq1hm1cjjvzr9zh5baqzssl1hckxbs";
+    sha256 = "sha256-YU2uPv59/UgJhnY6KiqBeSFQMqWkUmwL5eiZol8Ja4s=";
   };
 
   makeFlags = [ "prefix=$(out)" ];
diff --git a/pkgs/data/documentation/s6-man-pages/default.nix b/pkgs/data/documentation/s6-man-pages/default.nix
index d38df8cf03737..db4d05a91b04e 100644
--- a/pkgs/data/documentation/s6-man-pages/default.nix
+++ b/pkgs/data/documentation/s6-man-pages/default.nix
@@ -2,8 +2,8 @@
 
 buildManPages {
   pname = "s6-man-pages";
-  version = "2.11.0.0.2";
-  sha256 = "1ddab4l4wwrg2jdcrdqp1rx8dzbzbdsvx4mzayraxva4q97d1g9r";
+  version = "2.11.0.0.5";
+  sha256 = "03gl0vvdaqfb5hs0dfdbs9djxiyq3abcx9vwgkfw22b1rm2fa0r6";
   description = "Port of the documentation for the s6 supervision suite to mdoc";
   maintainers = [ lib.maintainers.sternenseemann ];
 }
diff --git a/pkgs/data/documentation/stdman/default.nix b/pkgs/data/documentation/stdman/default.nix
index e0f08e6049d4b..c09c204c55a28 100644
--- a/pkgs/data/documentation/stdman/default.nix
+++ b/pkgs/data/documentation/stdman/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "stdman";
-  version = "2020.11.17";
+  version = "2021.12.21";
 
   src = fetchFromGitHub {
     owner = "jeaye";
     repo = "stdman";
     rev = version;
-    sha256 = "sha256-pzAVuXSuUfwI7gQpFqmH/+klSUH3KipZup2TgZs8XsY=";
+    sha256 = "sha256-wOMQzC5w8aDmxNxQ5HK8jMgoow1wXBfHGUwFBw2WiPA=";
   };
 
   outputDevdoc = "out";
diff --git a/pkgs/data/fonts/cascadia-code/default.nix b/pkgs/data/fonts/cascadia-code/default.nix
index b6a1a7a2c1745..67ad8682a8e84 100644
--- a/pkgs/data/fonts/cascadia-code/default.nix
+++ b/pkgs/data/fonts/cascadia-code/default.nix
@@ -1,13 +1,13 @@
 { lib, fetchzip }:
 let
-  version = "2108.26";
+  version = "2111.01";
 in
 fetchzip {
   name = "cascadia-code-${version}";
 
   url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaCode-${version}.zip";
 
-  sha256 = "1dvwn5rs4ss4rwd64namy8ccz8dagkk84qjg13sxxqizyd5y08h1";
+  sha256 = "sha256-kUVTQ/oMZztNf22sDbQBpQW0luSc5nr5sxWU5etLDec=";
 
   postFetch = ''
     mkdir -p $out/share/fonts/
@@ -18,6 +18,7 @@ fetchzip {
   meta = with lib; {
     description = "Monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal";
     homepage = "https://github.com/microsoft/cascadia-code";
+    changelog = "https://github.com/microsoft/cascadia-code/raw/v${version}/FONTLOG.txt";
     license = licenses.ofl;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.all;
diff --git a/pkgs/data/fonts/fira-code/default.nix b/pkgs/data/fonts/fira-code/default.nix
index d5c5d0e000a5f..8bdc411a7eb3a 100644
--- a/pkgs/data/fonts/fira-code/default.nix
+++ b/pkgs/data/fonts/fira-code/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "5.2";
+  version = "6.2";
 in fetchzip {
   name = "fira-code-${version}";
 
@@ -13,7 +13,7 @@ in fetchzip {
     unzip -j $downloadedFile '*-VF.ttf' -d $out/share/fonts/truetype
   '';
 
-  sha256 = "1wbfjgvr9m5azl5w49y0hpqzgcraw6spd1wnxgxlzfx57x6gcw0k";
+  sha256 = "0l02ivxz3jbk0rhgaq83cqarqxr07xgp7n27l0fh8fbgxwi52djl";
 
   meta = with lib; {
     homepage = "https://github.com/tonsky/FiraCode";
diff --git a/pkgs/data/fonts/iosevka/update-bin.sh b/pkgs/data/fonts/iosevka/update-bin.sh
index a402f152d8a13..68f93f1f26e69 100755
--- a/pkgs/data/fonts/iosevka/update-bin.sh
+++ b/pkgs/data/fonts/iosevka/update-bin.sh
@@ -10,19 +10,19 @@ oldVersion=$(nix-instantiate --eval -E 'with import ../../../.. {}; lib.getVersi
 version=$(echo "$release" | jq -r .tag_name | tr -d v)
 
 if test "$oldVersion" = "$version"; then
-	echo "New version same as old version, nothing to do." >&2
-	exit 0
+    echo "New version same as old version, nothing to do." >&2
+    exit 0
 fi
 
 sed -i "s/$oldVersion/$version/" bin.nix
 
 {
-	echo '# This file was autogenerated. DO NOT EDIT!'
-	echo '{'
-	for asset in $(echo "$release" | jq -r '.assets[].name | select(startswith("ttc"))'); do
-		printf '  %s = "%s";\n' \
-			$(echo "$asset" | sed -r "s/^ttc-(.*)-$version.zip$/\1/") \
-			$(nix-prefetch-url "https://github.com/be5invis/Iosevka/releases/download/v$version/$asset")
-	done
-	echo '}'
+    echo '# This file was autogenerated. DO NOT EDIT!'
+    echo '{'
+    for asset in $(echo "$release" | jq -r '.assets[].name | select(startswith("ttc"))'); do
+        printf '  %s = "%s";\n' \
+            $(echo "$asset" | sed -r "s/^ttc-(.*)-$version.zip$/\1/") \
+            $(nix-prefetch-url "https://github.com/be5invis/Iosevka/releases/download/v$version/$asset")
+    done
+    echo '}'
 } >variants.nix
diff --git a/pkgs/data/fonts/junicode/default.nix b/pkgs/data/fonts/junicode/default.nix
index 19502cdf78fda..5f5ce1048c5e1 100644
--- a/pkgs/data/fonts/junicode/default.nix
+++ b/pkgs/data/fonts/junicode/default.nix
@@ -1,22 +1,26 @@
-{ lib, fetchzip }:
+{ lib, fetchFromGitHub }:
 
 let
   pname = "junicode";
-  version = "1.002";
-in fetchzip {
+  version = "1.003";
+in
+fetchFromGitHub {
   name = "${pname}-${version}";
 
-  url = "mirror://sourceforge/junicode/junicode/junicode-${version}/junicode-${version}.zip";
+  owner = "psb1558";
+  repo = "Junicode-font";
+  rev = "55d816d91a5e19795d9b66edec478379ee2b9ddb";
 
   postFetch = ''
-    mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/junicode-ttf
+    local out_ttf=$out/share/fonts/junicode-ttf
+    mkdir -p $out_ttf
+    tar -f $downloadedFile -C $out_ttf --wildcards -x '*.ttf' --strip=2
   '';
 
-  sha256 = "1n170gw41lr0zr5958z5cgpg6i1aa7kj7iq9s6gdh1cqq7hhgd08";
+  sha256 = "1v334gljmidh58kmrarz5pf348b0ac7vh25f1xs3gyvn78khh5nw";
 
   meta = {
-    homepage = "http://junicode.sourceforge.net/";
+    homepage = "https://github.com/psb1558/Junicode-font";
     description = "A Unicode font for medievalists";
     maintainers = with lib.maintainers; [ ivan-timokhin ];
     license = lib.licenses.ofl;
diff --git a/pkgs/data/fonts/last-resort/default.nix b/pkgs/data/fonts/last-resort/default.nix
index 31fb300e59155..8cad990ac973a 100644
--- a/pkgs/data/fonts/last-resort/default.nix
+++ b/pkgs/data/fonts/last-resort/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchurl }:
 
 let
-  version = "13.001";
+  version = "14.000";
 in fetchurl {
   name = "last-resort-${version}";
 
@@ -13,7 +13,7 @@ in fetchurl {
   '';
 
   recursiveHash = true;
-  sha256 = "08mi65j46fv6a3y3pqnglqdjxjnbzg25v25f7c1zyk3c285m14hq";
+  sha256 = "sha256-rb69V4oExSFx4GpedpyVvGuS6o+MxmxTCSZhoe9kUhI=";
 
   meta = with lib; {
     description = "Fallback font of last resort";
diff --git a/pkgs/data/fonts/noto-fonts/default.nix b/pkgs/data/fonts/noto-fonts/default.nix
index 88c17e8f4a31b..d6b4488daf05e 100644
--- a/pkgs/data/fonts/noto-fonts/default.nix
+++ b/pkgs/data/fonts/noto-fonts/default.nix
@@ -124,11 +124,6 @@ in
       sha256 = "1d6zzk0ii43iqfnjbldwp8sasyx99lbjp1nfgqjla7ixld6yp98l";
     };
 
-    makeFlags = [
-      # TODO(@sternenseemann): remove if afdko is new enough to know about Unicode 14.0
-      "BYPASS_SEQUENCE_CHECK=True"
-    ];
-
     nativeBuildInputs = [
       cairo
       imagemagick
diff --git a/pkgs/data/fonts/recursive/default.nix b/pkgs/data/fonts/recursive/default.nix
index a1d99c33b85b9..142f84ba7d9eb 100644
--- a/pkgs/data/fonts/recursive/default.nix
+++ b/pkgs/data/fonts/recursive/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "1.082";
+  version = "1.084";
 in
 fetchzip {
   name = "recursive-${version}";
@@ -14,7 +14,7 @@ fetchzip {
     unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
   '';
 
-  sha256 = "1hjyjvzhfgqw58py4gk58fwyp5pxr3j8j76ppj6apg4dndfhs0lp";
+  sha256 = "sha256-YL09RVU9pgP0/aGRKECHzd5t1VmNDPtOFcRygWqIisg=";
 
   meta = with lib; {
     homepage = "https://recursive.design/";
diff --git a/pkgs/data/fonts/sarasa-gothic/default.nix b/pkgs/data/fonts/sarasa-gothic/default.nix
index 00caa09a00b42..c28b3745f9429 100644
--- a/pkgs/data/fonts/sarasa-gothic/default.nix
+++ b/pkgs/data/fonts/sarasa-gothic/default.nix
@@ -1,14 +1,14 @@
 { lib, fetchurl, libarchive }:
 
 let
-  version = "0.34.7";
+  version = "0.35.5";
 in fetchurl {
   name = "sarasa-gothic-${version}";
 
   # Use the 'ttc' files here for a smaller closure size.
   # (Using 'ttf' files gives a closure size about 15x larger, as of November 2021.)
   url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${version}/sarasa-gothic-ttc-${version}.7z";
-  sha256 = "0fzbqj32jiffqsr4s0i8fignk01v5d1rik6ldg2q7dgl1298sgk8";
+  sha256 = "sha256-t9BYV9a/rmEr8nLqcdxg4Z5pWsCefvwI47eSwub41u0=";
 
   recursiveHash = true;
   downloadToTemp = true;
diff --git a/pkgs/data/fonts/scheherazade/default.nix b/pkgs/data/fonts/scheherazade/default.nix
index 3448226c58d9d..e91d108ade8e2 100644
--- a/pkgs/data/fonts/scheherazade/default.nix
+++ b/pkgs/data/fonts/scheherazade/default.nix
@@ -1,10 +1,10 @@
-{ lib, fetchzip, version ? "3.200" }:
+{ lib, fetchzip, version ? "3.300" }:
 
 let
   new = lib.versionAtLeast version "3.000";
   sha256 = {
     "2.100" = "1g5f5f9gzamkq3kqyf7vbzvl4rdj3wmjf6chdrbxksrm3rnb926z";
-    "3.200" = "0qvmpsn6ja3g2hlvq0vb9pjsyk6ibna7s3w3n6q7lnhk0rhjg8bv";
+    "3.300" = "1bja1ma1mnna0qlk3dis31cvq5z1kgcqj7wjp8ml03zc5mpa2wb2";
   }."${version}";
 
 in fetchzip rec {
@@ -16,8 +16,9 @@ in fetchzip rec {
     mkdir -p $out/share/{doc,fonts}
     unzip -l $downloadedFile
     unzip -j $downloadedFile \*.ttf                        -d $out/share/fonts/truetype
+    unzip    $downloadedFile \*/documentation/\*           -d $out/share/doc/
+    mv $out/share/doc/* $out/share/doc/${name}
     unzip -j $downloadedFile \*/FONTLOG.txt  \*/README.txt -d $out/share/doc/${name}
-    unzip -j $downloadedFile \*/documentation/\*           -d $out/share/doc/${name}/documentation
   '';
 
   inherit sha256;
@@ -30,7 +31,7 @@ in fetchzip rec {
       Scheherazade${lib.optionalString new " New"}, named after the heroine of
       the classic Arabian Nights tale, is designed in a similar style to
       traditional typefaces such as Monotype Naskh, extended to cover the
-      Unicode Arabic repertoire through Unicode ${if new then "13.0" else "8.0"}.
+      Unicode Arabic repertoire through Unicode ${if new then "14.0" else "8.0"}.
 
       Scheherazade provides a “simplified” rendering of Arabic script, using
       basic connecting glyphs but not including a wide variety of additional
diff --git a/pkgs/data/fonts/sudo/default.nix b/pkgs/data/fonts/sudo/default.nix
index 2cb310109ba48..e0bc42f8d129d 100644
--- a/pkgs/data/fonts/sudo/default.nix
+++ b/pkgs/data/fonts/sudo/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchzip }:
 
 let
-  version = "0.60";
+  version = "0.61";
 in fetchzip {
   name = "sudo-font-${version}";
   url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip";
-  sha256 = "1zhl9yhx0dzkzc31i60lmcrizq8f3rkc7dbng5fal6iy8dwhnkmg";
+  sha256 = "sha256-4GDlx2zhwkcsxJPq0IrS1owmw+RKy09X3Q0zzA9l79w=";
 
   postFetch = ''
     mkdir -p $out/share/fonts/
diff --git a/pkgs/data/fonts/unfonts-core/default.nix b/pkgs/data/fonts/unfonts-core/default.nix
new file mode 100644
index 0000000000000..7f01d5531e15f
--- /dev/null
+++ b/pkgs/data/fonts/unfonts-core/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchzip }:
+
+let
+  pname = "unfonts-core";
+  version = "1.0.2-080608";
+in fetchzip {
+  name = "${pname}-${version}";
+  url = "https://kldp.net/unfonts/release/2607-un-fonts-core-${version}.tar.gz";
+  hash = "sha256-k9C7d/SbVLWFzRnDWpOIMtY6cAEIcaLcbxQAqjwuWds=";
+
+  postFetch = ''
+    tar -xzf $downloadedFile --strip-components=1
+    install -m444 -Dt $out/share/fonts/truetype *.ttf
+  '';
+
+  meta = with lib; {
+    homepage = "https://kldp.net/unfonts/";
+    description = "Korean Hangul typeface collection";
+    longDescription = ''
+      The Un-fonts come from the HLaTeX as type1 fonts in 1998 by Koaunghi Un, he made type1 fonts to use with Korean TeX (HLaTeX) in the late 1990's and released it under the GPL license.
+
+      They were converted to TrueType with the FontForge (PfaEdit) by Won-kyu Park in 2003.
+          '';
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = [ maintainers.ehmry ];
+  };
+}
diff --git a/pkgs/data/icons/bibata-cursors/default.nix b/pkgs/data/icons/bibata-cursors/default.nix
index 04fb6281f2539..15905bec3a97f 100644
--- a/pkgs/data/icons/bibata-cursors/default.nix
+++ b/pkgs/data/icons/bibata-cursors/default.nix
@@ -1,51 +1,54 @@
-{ lib, stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape, xcursorgen, python3 }:
-
-let
-  py = python3.withPackages(ps: [ ps.pillow ]);
-in stdenvNoCC.mkDerivation rec {
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchurl
+, clickgen
+, unzip
+}:
+
+stdenv.mkDerivation rec {
   pname = "bibata-cursors";
-  version = "0.4.2";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
-    owner = "KaizIqbal";
+    owner = "ful1e5";
     repo = "Bibata_Cursor";
     rev = "v${version}";
-    sha256 = "1f7i5jkl21fvrr45zpcj40avkc7camjb1ddrrdlaabbplgz5mcgn";
+    sha256 = "1q2wdbrmdnr9mwiilm5cc9im3zwbl7yaj1zpy5wwn44ypq3hcngy";
   };
 
-  postPatch = ''
-    patchShebangs .
-    substituteInPlace build.sh --replace "sudo" ""
+  bitmaps = fetchurl {
+    url = "https://github.com/ful1e5/Bibata_Cursor/releases/download/v${version}/bitmaps.zip";
+    sha256 = "1pcn6par0f0syyhzpzmqr3c6b9ri4lprkdd2ncwzdas01p2d9v1i";
+  };
 
-    # Don't generate windows cursors,
-    # they aren't used and aren't installed
-    # by the project's install script anyway.
-    echo "exit 0" > w32-make.sh
-  '';
+  nativeBuildInputs = [ unzip ];
 
-  nativeBuildInputs  = [
-    gnome-themes-extra
-    inkscape
-    xcursorgen
-    py
-  ];
+  buildInputs = [ clickgen ];
 
   buildPhase = ''
-    HOME="$NIX_BUILD_ROOT" ./build.sh
+    mkdir bitmaps
+    unzip $bitmaps -d bitmaps
+    rm -rf themes
+    cd builder && make build_unix
   '';
 
   installPhase = ''
     install -dm 0755 $out/share/icons
-    for x in Bibata_*; do
-      cp -pr $x/out/X11/$x $out/share/icons/
-    done
+    cd ../
+    cp -rf themes/* $out/share/icons/
+  '';
+
+  postPatch = ''
+    substituteInPlace "builder/Makefile" \
+      --replace "/bin/bash" "bash"
   '';
 
   meta = with lib; {
-    description = "Material Based Cursor";
-    homepage = "https://github.com/KaizIqbal/Bibata_Cursor";
+    description = "Material Based Cursor Theme";
+    homepage = "https://github.com/ful1e5/Bibata_Cursor";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ rawkode ];
+    maintainers = with maintainers; [ rawkode AdsonCicilioti ];
   };
 }
diff --git a/pkgs/data/icons/bibata-cursors/extra.nix b/pkgs/data/icons/bibata-cursors/extra.nix
index f59b12ec76a99..a6fdaca842770 100644
--- a/pkgs/data/icons/bibata-cursors/extra.nix
+++ b/pkgs/data/icons/bibata-cursors/extra.nix
@@ -1,51 +1,54 @@
-{ lib, stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape, xcursorgen, python3 }:
-
-let
-  py = python3.withPackages(ps: [ ps.pillow ]);
-in stdenvNoCC.mkDerivation rec {
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchurl
+, clickgen
+, unzip
+}:
+
+stdenv.mkDerivation rec {
   pname = "bibata-extra-cursors";
-  version = "0.3";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
-    owner = "KaizIqbal";
+    owner = "ful1e5";
     repo = "Bibata_Extra_Cursor";
     rev = "v${version}";
-    sha256 = "1bh945hvakbh985jkr6g6x0myw3k49pvn24m1clvqdv35v65nfxk";
+    sha256 = "0wndl4c547k99y0gq922hn7z1mwdgxvvyjfm6757g6shfbcmkz7m";
   };
 
-  postPatch = ''
-    patchShebangs .
-    substituteInPlace build.sh --replace "sudo" ""
+  bitmaps = fetchurl {
+    url = "https://github.com/ful1e5/Bibata_Extra_Cursor/releases/download/v${version}/bitmaps.zip";
+    sha256 = "0vf14ln53wigaq3dkqdk5avarqplsq751nlv72da04ms6gqjfhdl";
+  };
 
-    # Don't generate windows cursors,
-    # they aren't used and aren't installed
-    # by the project's install script anyway.
-    echo "exit 0" > w32-make.sh
-  '';
+  nativeBuildInputs = [ unzip ];
 
-  nativeBuildInputs  = [
-    gnome-themes-extra
-    inkscape
-    xcursorgen
-    py
-  ];
+  buildInputs = [ clickgen ];
 
   buildPhase = ''
-    HOME="$NIX_BUILD_ROOT" ./build.sh
+    mkdir bitmaps
+    unzip $bitmaps -d bitmaps
+    rm -rf themes
+    cd builder && make build_unix
   '';
 
   installPhase = ''
     install -dm 0755 $out/share/icons
-    for x in Bibata_*; do
-      cp -pr $x/out/X11/$x $out/share/icons/
-    done
+    cd ../
+    cp -rf themes/* $out/share/icons/
+  '';
+
+  postPatch = ''
+    substituteInPlace "builder/Makefile" \
+      --replace "/bin/bash" "bash"
   '';
 
   meta = with lib; {
-    description = "Cursors Based on Bibata";
-    homepage = "https://github.com/KaizIqbal/Bibata_Extra_Cursor";
+    description = "Material Based Cursor Theme";
+    homepage = "https://github.com/ful1e5/Bibata_Extra_Cursor";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ dtzWill ];
+    maintainers = with maintainers; [ dtzWill AdsonCicilioti ];
   };
 }
diff --git a/pkgs/data/icons/bibata-cursors/translucent.nix b/pkgs/data/icons/bibata-cursors/translucent.nix
index d1e2814a8aa3a..74d7c4d7c3f91 100644
--- a/pkgs/data/icons/bibata-cursors/translucent.nix
+++ b/pkgs/data/icons/bibata-cursors/translucent.nix
@@ -1,31 +1,16 @@
-{ lib, stdenvNoCC, fetchFromGitHub, gnome-themes-extra, inkscape, xcursorgen }:
+{ lib, stdenv, fetchFromGitHub }:
 
-stdenvNoCC.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "bibata-cursors-translucent";
-  version = "unstable-2019-09-13";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "Silicasandwhich";
     repo = "Bibata_Cursor_Translucent";
-    rev = "2eed979d817148817ea6bca15c594809aa9c2cb9";
-    sha256 = "1s688v40xx9jbvfncb4kgfnnxkmknji7igqx7c4q1ly9s7imbd1f";
+    rev = "v${version}";
+    sha256 = "1ddnwqkxricnd731blckcxvksbgql8k4pfiz65591p81n5095k8y";
   };
 
-  postPatch = ''
-    patchShebangs .
-    substituteInPlace build.sh --replace "gksu " ""
-  '';
-
-  nativeBuildInputs  = [
-    gnome-themes-extra
-    inkscape
-    xcursorgen
-  ];
-
-  buildPhase = ''
-    HOME="$NIX_BUILD_ROOT" ./build.sh
-  '';
-
   installPhase = ''
     install -dm 0755 $out/share/icons
     cp -pr Bibata_* $out/share/icons/
@@ -36,6 +21,6 @@ stdenvNoCC.mkDerivation rec {
     homepage = "https://github.com/Silicasandwhich/Bibata_Cursor_Translucent";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ dtzWill ];
+    maintainers = with maintainers; [ dtzWill AdsonCicilioti ];
   };
 }
diff --git a/pkgs/data/icons/flat-remix-icon-theme/default.nix b/pkgs/data/icons/flat-remix-icon-theme/default.nix
index 743bcba54de21..69e18beec32db 100644
--- a/pkgs/data/icons/flat-remix-icon-theme/default.nix
+++ b/pkgs/data/icons/flat-remix-icon-theme/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub , gtk3, breeze-icons, pantheon, gnome-icon-theme, hicolor-icon-theme }:
+{ lib, stdenv, fetchFromGitHub, gtk3, breeze-icons, pantheon, gnome-icon-theme, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec  {
   pname = "flat-remix-icon-theme";
-  version = "20200710";
+  version = "20211106";
 
-  src = fetchFromGitHub  {
+  src = fetchFromGitHub {
     owner = "daniruiz";
     repo = "flat-remix";
     rev = version;
-    sha256 = "0rlrmgimvs9rrj64g5jn04jgyi7wmn2dnsk7ckmxk6p8cdfjd0hx";
+    sha256 = "1dlz88bg764zzd0s3yqci4m1awhwdrrql9l9plsjjzgdx9r7ndmf";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/icons/kora-icon-theme/default.nix b/pkgs/data/icons/kora-icon-theme/default.nix
index 89fd80c468e5d..9ecc7f76c073a 100644
--- a/pkgs/data/icons/kora-icon-theme/default.nix
+++ b/pkgs/data/icons/kora-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec  {
   pname = "kora-icon-theme";
-  version = "1.4.7";
+  version = "1.4.9";
 
   src = fetchFromGitHub  {
     owner = "bikass";
     repo = "kora";
     rev = "v${version}";
-    sha256 = "sha256-Ol4DrQJmQT/LIU5qWJJEm6od7e29h7g913YTFQjudBQ=";
+    sha256 = "sha256-bhzkR8V/kdETC12mqMtTw+80o8AAD8sYeMhpktd0WMo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/icons/luna-icons/default.nix b/pkgs/data/icons/luna-icons/default.nix
index 3a40ef978e3ab..3d87e9577d5c7 100644
--- a/pkgs/data/icons/luna-icons/default.nix
+++ b/pkgs/data/icons/luna-icons/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "luna-icons";
-  version = "1.6";
+  version = "1.8";
 
   src = fetchFromGitHub {
     owner = "darkomarko42";
     repo = pname;
     rev = version;
-    sha256 = "1iw9wqfs8s3l5k5ngyjmvvxbsxcsya3a6h1xwl6d603swv7h1s02";
+    sha256 = "1c317ac43ff70sxn1syx20qhs4nkccv6hbf69fmi3acswqsll1z4";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/icons/nordzy-cursor-theme/default.nix b/pkgs/data/icons/nordzy-cursor-theme/default.nix
new file mode 100644
index 0000000000000..7648a57474ae2
--- /dev/null
+++ b/pkgs/data/icons/nordzy-cursor-theme/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, fetchFromGitHub
+, lib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nordzy-cursor-theme";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "alvatip";
+    repo = "Nordzy-cursors";
+    rev = "v${version}";
+    sha256 = "XabfKFyeII7Xl+ozzpPnc4xFH4B7GzCTLq4M1QPSZPw=";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/icons
+
+    cp -r nordzy-dark/ $out/share/icons/Nordzy-cursors
+    mv $out/share/icons/Nordzy-cursors/index.theme $out/share/icons/Nordzy-cursors/cursor.theme
+    mv $out/share/icons/Nordzy-cursors/Nordzy-cursors $out/share/icons/Nordzy-cursors/cursors
+    cp -r nordzy-white/ $out/share/icons/Nordzy-white-cursors
+    mv $out/share/icons/Nordzy-white-cursors/index.theme $out/share/icons/Nordzy-white-cursors/cursor.theme
+    mv $out/share/icons/Nordzy-white-cursors/Nordzy-white-cursors $out/share/icons/Nordzy-white-cursors/cursors
+  '';
+
+  meta = with lib; {
+    description = "Cursor theme using the Nord color palette and based on Vimix and cz-Viator";
+    homepage = "https://github.com/alvatip/Nordzy-cursors";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [
+      alexnortung
+    ];
+  };
+}
diff --git a/pkgs/data/icons/numix-cursor-theme/default.nix b/pkgs/data/icons/numix-cursor-theme/default.nix
index 377cf05ac179f..e7f0905ff40eb 100644
--- a/pkgs/data/icons/numix-cursor-theme/default.nix
+++ b/pkgs/data/icons/numix-cursor-theme/default.nix
@@ -1,28 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, inkscape, xcursorgen }:
+{ lib, stdenv, fetchFromGitHub, inkscape, xcursorgen }:
 
 stdenv.mkDerivation rec {
-  version = "1.1";
-  package-name = "numix-cursor-theme";
-  name = "${package-name}-${version}";
+  pname = "numix-cursor-theme";
+  version = "1.2";
 
   src = fetchFromGitHub {
     owner = "numixproject";
-    repo = package-name;
+    repo = pname;
     rev = "v${version}";
-    sha256 = "0p8h48wsy3z5dz9vdnp01fpn6q8ky0h74l5qgixlip557bsa1spi";
+    sha256 = "1q3w5i0h3ly6i7s9pqjdrb14kp89i78s0havri7lhiqyxizjvcvh";
   };
 
   nativeBuildInputs = [ inkscape xcursorgen ];
 
-  patches = [
-    # Remove when https://github.com/numixproject/numix-cursor-theme/pull/7 is merged
-    (fetchpatch {
-      url = "https://github.com/stephaneyfx/numix-cursor-theme/commit/3b647bf768cebb8f127b88e3786f6a9640460197.patch";
-      sha256 = "174kmhlvv76wwvndkys78aqc32051sqg3wzc0xg6b7by4agrbg76";
-      name = "support-inkscape-1-in-numix-cursor-theme.patch";
-    })
-  ];
-
   buildPhase = ''
     patchShebangs .
     HOME=$TMP ./build.sh
diff --git a/pkgs/data/icons/numix-icon-theme-circle/default.nix b/pkgs/data/icons/numix-icon-theme-circle/default.nix
index 7fe16f016cc9c..089e098e97e22 100644
--- a/pkgs/data/icons/numix-icon-theme-circle/default.nix
+++ b/pkgs/data/icons/numix-icon-theme-circle/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "numix-icon-theme-circle";
-  version = "21.04.14";
+  version = "21.12.05";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "1z8c0179r8g0y9zh4383brsfhkcyfy79dc8hw94p9zjn5a66547w";
+    sha256 = "sha256-tmrysmg4jVPurNJy3AqzAIjd1QCXoH2nGuJhRinvqVQ=";
   };
 
   nativeBuildInputs = [ gtk3 ];
diff --git a/pkgs/data/icons/numix-icon-theme-square/default.nix b/pkgs/data/icons/numix-icon-theme-square/default.nix
index 9c7b1786a6e6d..8aeb6d44669ae 100644
--- a/pkgs/data/icons/numix-icon-theme-square/default.nix
+++ b/pkgs/data/icons/numix-icon-theme-square/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "numix-icon-theme-square";
-  version = "21.04.14";
+  version = "21.12.05";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "0ndxjp173dwz78m41mn818mh4bdsxa2ypv4wrwicx0v4d8z90ddj";
+    sha256 = "sha256-SVWIY7RGwk2AKruDkAYoZ5nDSAU8LPb9dtqxDFumZ5o=";
   };
 
   nativeBuildInputs = [ gtk3 ];
diff --git a/pkgs/data/icons/papirus-icon-theme/default.nix b/pkgs/data/icons/papirus-icon-theme/default.nix
index 9e8856528b109..503e4e1d296a6 100644
--- a/pkgs/data/icons/papirus-icon-theme/default.nix
+++ b/pkgs/data/icons/papirus-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "papirus-icon-theme";
-  version = "20211001";
+  version = "20211201";
 
   src = fetchFromGitHub {
     owner = "PapirusDevelopmentTeam";
     repo = pname;
     rev = version;
-    sha256 = "sha256-OVG/bKWOdSxOXVvtMOITnCDoGNSc+zPNZ/XOablfSEE=";
+    sha256 = "sha256-lcwQALFQ4zkgDLCX1uthAP3QZwP7UcWcPSOU+UTDykE=";
   };
 
   nativeBuildInputs = [ gtk3 ];
diff --git a/pkgs/data/icons/pop-icon-theme/default.nix b/pkgs/data/icons/pop-icon-theme/default.nix
index 1bcfab57b4a99..7254e8bc21399 100644
--- a/pkgs/data/icons/pop-icon-theme/default.nix
+++ b/pkgs/data/icons/pop-icon-theme/default.nix
@@ -1,23 +1,22 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , meson
 , ninja
 , gtk3
-, breeze-icons
-, gnome
-, pantheon
+, adwaita-icon-theme
 , hicolor-icon-theme
 }:
 
 stdenv.mkDerivation rec {
   pname = "pop-icon-theme";
-  version = "2020-03-04";
+  version = "2021-11-17";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = "icon-theme";
-    rev = "11f18cb48455b47b6535018f1968777100471be1";
-    sha256 = "1s4pjwv2ynw400gnzgzczlxzw3gxh5s8cxxbi9zpxq4wzjg6jqyv";
+    rev = "9998b20b78f3ff65ecbf2253bb863d1e669abe74";
+    sha256 = "0lwdmaxs9xj4bm21ldh64bzyb6iz5d5k1256iwvyjp725l7686cl";
   };
 
   nativeBuildInputs = [
@@ -27,9 +26,7 @@ stdenv.mkDerivation rec {
   ];
 
   propagatedBuildInputs = [
-    breeze-icons
-    gnome.adwaita-icon-theme
-    pantheon.elementary-icon-theme
+    adwaita-icon-theme
     hicolor-icon-theme
   ];
 
@@ -39,7 +36,7 @@ stdenv.mkDerivation rec {
     description = "Icon theme for Pop!_OS with a semi-flat design and raised 3D motifs";
     homepage = "https://github.com/pop-os/icon-theme";
     license = with licenses; [ cc-by-sa-40 gpl3 ];
-    platforms = platforms.unix;
+    platforms = platforms.linux; # hash mismatch on darwin due to file names differing only in case
     maintainers = with maintainers; [ romildo ];
   };
 }
diff --git a/pkgs/data/icons/tela-icon-theme/default.nix b/pkgs/data/icons/tela-icon-theme/default.nix
index 61402565195e6..4e2b824be4bce 100644
--- a/pkgs/data/icons/tela-icon-theme/default.nix
+++ b/pkgs/data/icons/tela-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "tela-icon-theme";
-  version = "2021-11-05";
+  version = "2021-12-25";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "sha256-mvkgHBdZm6vF+/DS3CRLl1m14U0Lj4Xtz4J/vpJUTQM=";
+    sha256 = "sha256-qlt9jv3lCPVFBeN4aQd4r9NE0YAxWQavMoo13cvhv6E=";
   };
 
   nativeBuildInputs = [ gtk3 jdupes ];
diff --git a/pkgs/data/misc/conway_polynomials/default.nix b/pkgs/data/misc/conway_polynomials/default.nix
index cabc28a89ce9e..1f5c4d57f76a5 100644
--- a/pkgs/data/misc/conway_polynomials/default.nix
+++ b/pkgs/data/misc/conway_polynomials/default.nix
@@ -1,14 +1,12 @@
 { lib, stdenv
 , fetchurl
-, python2
+, python3
 }:
 
 stdenv.mkDerivation rec {
   pname = "conway_polynomials";
   version = "0.5";
 
-  pythonEnv = python2.withPackages (ps: with ps; [ six ]);
-
   src = fetchurl {
     url = "mirror://sageupstream/conway_polynomials/conway_polynomials-${version}.tar.bz2";
     sha256 = "05zb1ly9x2bbscqv0jgc45g48xx77mfs7qdbqhn4ihmihn57iwnq";
@@ -16,8 +14,8 @@ stdenv.mkDerivation rec {
 
   # Script that creates the "database" (nested python array) and pickles it
   spkg-install = fetchurl {
-    url = "https://git.sagemath.org/sage.git/plain/build/pkgs/conway_polynomials/spkg-install.py?id=07d6c37d18811e2b377a9689790a7c5e24da16ba";
-    sha256 = "0m12nfb37j3bn4bp06ddgnyp2d6z0hg5f83pbbjszxw7vxs33a82";
+    url = "https://git.sagemath.org/sage.git/plain/build/pkgs/conway_polynomials/spkg-install.py?id=9.2";
+    sha256 = "1bwnqasnyv793hxg29viing4dnliz29grkhldsirq19d509yk1fs";
   };
 
   installPhase = ''
@@ -31,7 +29,7 @@ stdenv.mkDerivation rec {
     export SAGE_SHARE="$out/share"
     export PYTHONPATH=$PWD
 
-    ${pythonEnv.interpreter} ${spkg-install}
+    ${python3.interpreter} ${spkg-install}
   '';
 
   meta = with lib; {
diff --git a/pkgs/data/misc/elliptic_curves/default.nix b/pkgs/data/misc/elliptic_curves/default.nix
index 9825940002109..daa017a681128 100644
--- a/pkgs/data/misc/elliptic_curves/default.nix
+++ b/pkgs/data/misc/elliptic_curves/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv
 , fetchurl
-, python2
+, python3
 }:
 
 stdenv.mkDerivation rec {
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     export SAGE_SHARE="$out/share"
     export PYTHONPATH=$PWD
 
-    ${python2.interpreter} ${spkg-install}
+    ${python3.interpreter} ${spkg-install}
   '';
 
   meta = with lib; {
diff --git a/pkgs/data/misc/geolite-legacy/builder.sh b/pkgs/data/misc/geolite-legacy/builder.sh
index 683b2e8606b8b..0bb61d863ecea 100644
--- a/pkgs/data/misc/geolite-legacy/builder.sh
+++ b/pkgs/data/misc/geolite-legacy/builder.sh
@@ -5,13 +5,13 @@ cd $out/share/GeoIP
 
 # Iterate over all environment variable names beginning with "src":
 for var in "${!src@}"; do
-	# Store the value of the variable with name $var in $src:
-	eval src="\$$var"
+    # Store the value of the variable with name $var in $src:
+    eval src="\$$var"
 
-	# Copy $src to current directory, removing Nix hash from the filename:
-	dest="${src##*/}"
-	dest="${dest#*-}"
-	cp "$src" "$dest"
+    # Copy $src to current directory, removing Nix hash from the filename:
+    dest="${src##*/}"
+    dest="${dest#*-}"
+    cp "$src" "$dest"
 done
 
 gzip -dv *.gz
diff --git a/pkgs/data/misc/hackage/pin.json b/pkgs/data/misc/hackage/pin.json
index ba70f6f76ad0a..c6226691d75f6 100644
--- a/pkgs/data/misc/hackage/pin.json
+++ b/pkgs/data/misc/hackage/pin.json
@@ -1,6 +1,6 @@
 {
-  "commit": "f38385b8e3e064360be513204f114418ea0206de",
-  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/f38385b8e3e064360be513204f114418ea0206de.tar.gz",
-  "sha256": "08yrxx2cslwbbrcrjn13va2vbynjrwfbkc3fs4mf9qc17bdvxmgj",
-  "msg": "Update from Hackage at 2021-11-12T03:22:57Z"
+  "commit": "01a23b49c333c95167338433cd375e24fc60d66d",
+  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/01a23b49c333c95167338433cd375e24fc60d66d.tar.gz",
+  "sha256": "0mf1pqlg5cj0p0si1vgf5mp5an89yhq0il6v7n58smcqbfdynds5",
+  "msg": "Update from Hackage at 2021-12-21T13:58:08Z"
 }
diff --git a/pkgs/data/misc/iana-etc/default.nix b/pkgs/data/misc/iana-etc/default.nix
index 29ebac848d855..5e7e70a1b05d5 100644
--- a/pkgs/data/misc/iana-etc/default.nix
+++ b/pkgs/data/misc/iana-etc/default.nix
@@ -1,12 +1,12 @@
 { lib, fetchzip, stdenvNoCC, writeText }:
 
 let
-  version = "20210225";
+  version = "20211124";
 in stdenvNoCC.mkDerivation {
   name = "iana-etc-${version}";
   src = fetchzip {
     url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz";
-    sha256 = "sha256:1bbbnj2ya0apyyhnw37521yl1hrz3zy3l8dw6sacmir0y6pmx9gi";
+    sha256 = "sha256-4mM/ZeGd91e1AklGHFK5UB4llg9IgCo9DKcM0iXcBls=";
   };
 
   installPhase = ''
diff --git a/pkgs/data/misc/publicsuffix-list/default.nix b/pkgs/data/misc/publicsuffix-list/default.nix
index ca79e251f28a1..db74b74f22d99 100644
--- a/pkgs/data/misc/publicsuffix-list/default.nix
+++ b/pkgs/data/misc/publicsuffix-list/default.nix
@@ -2,13 +2,13 @@
 
 let
   pname = "publicsuffix-list";
-  version = "2019-05-24";
+  version = "2021-09-03";
 in fetchFromGitHub {
   name = "${pname}-${version}";
   owner = "publicsuffix";
   repo = "list";
-  rev = "a1db0e898956e126de65be1a5e977fbbbbeebe33";
-  sha256 = "092153w2jr7nx28p9wc9k6b5azi9c39ghnqfnfiwfzv1j8jm3znq";
+  rev = "2533d032871e1ef1f410fc0754b848d4587c8021";
+  sha256 = "sha256-Q8uIXM1CMu8dlWcVoL17M1XRGu3kG7Y7jpx0oHQh+2I=";
 
   postFetch = ''
     tar xf $downloadedFile --strip=1
diff --git a/pkgs/data/misc/rime-data/default.nix b/pkgs/data/misc/rime-data/default.nix
index 371a07d3ec1a9..fbf65bc12a9f6 100644
--- a/pkgs/data/misc/rime-data/default.nix
+++ b/pkgs/data/misc/rime-data/default.nix
@@ -61,6 +61,6 @@ stdenv.mkDerivation {
       # rime-cantonese
       cc-by-40
     ];
-    maintainers = [ maintainers.pengmeiyu ];
+    maintainers = with maintainers; [ pmy ];
   };
 }
diff --git a/pkgs/data/misc/scowl/default.nix b/pkgs/data/misc/scowl/default.nix
index 15c2699d8bbad..e1709ae35cf31 100644
--- a/pkgs/data/misc/scowl/default.nix
+++ b/pkgs/data/misc/scowl/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "scowl";
-  version = "2019.10.06";
+  version = "2020.12.07";
 
   src = fetchFromGitHub {
     owner = "en-wl";
     repo = "wordlist";
     rev = "rel-${version}";
-    sha256 = "1daag7h63gdijp1lv3v93bx5kmcb5zsyydsd57kv0a6kk3vs819x";
+    sha256 = "sha256-J61jhpnZcXMnoGlSuSCrKDZnnyp3Snjr+fUpTVKX64g=";
   };
 
   postPatch = ''
diff --git a/pkgs/data/misc/spdx-license-list-data/default.nix b/pkgs/data/misc/spdx-license-list-data/default.nix
index 939acc96ce5fb..f7f5f64bfd7e3 100644
--- a/pkgs/data/misc/spdx-license-list-data/default.nix
+++ b/pkgs/data/misc/spdx-license-list-data/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "spdx-license-list-data";
-  version = "3.14";
+  version = "3.15";
 
   src = fetchFromGitHub {
     owner = "spdx";
     repo = "license-list-data";
     rev = "v${version}";
-    sha256 = "07fl31732bvcmm93fqrpa7pfq5ynxc1fpd8n9w2iah39lyz49sjm";
+    sha256 = "0r88j00shmhayfq8avswaxsaj1my1vq540rg0srma29862vrjpfk";
   };
 
   installPhase = ''
diff --git a/pkgs/data/misc/v2ray-domain-list-community/default.nix b/pkgs/data/misc/v2ray-domain-list-community/default.nix
index bff703563d4b4..e3385983f0409 100644
--- a/pkgs/data/misc/v2ray-domain-list-community/default.nix
+++ b/pkgs/data/misc/v2ray-domain-list-community/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, buildGoModule, fetchFromGitHub, lib }:
+{ stdenv, pkgsBuildBuild, fetchFromGitHub, lib }:
 
 let
-  generator = buildGoModule rec {
+  generator = pkgsBuildBuild.buildGoModule rec {
     pname = "v2ray-domain-list-community";
-    version = "20211103073737";
+    version = "20211119143108";
     src = fetchFromGitHub {
       owner = "v2fly";
       repo = "domain-list-community";
       rev = version;
-      sha256 = "sha256-NYgEXbow16w+XMRjbQG1cIn/BjPbbcj+uzb4kcVR6eI=";
+      sha256 = "sha256-CJMINkutaUI/Eka0OJTjeG3weTMYaNKdB2BWOxFgI3s=";
     };
     vendorSha256 = "sha256-JuLU9v1ukVfAEtz07tGk66st1+sO4SBz83BlK3IPQwU=";
     meta = with lib; {
diff --git a/pkgs/data/misc/v2ray-geoip/default.nix b/pkgs/data/misc/v2ray-geoip/default.nix
new file mode 100644
index 0000000000000..2f3a516de0748
--- /dev/null
+++ b/pkgs/data/misc/v2ray-geoip/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "v2ray-geoip";
+  version = "202112160030";
+
+  src = fetchFromGitHub {
+    owner = "v2fly";
+    repo = "geoip";
+    rev = "4d86284b91a444c2ca989207f8f08a1c8798c95c";
+    sha256 = "sha256-pv+oZVMROr7gyGcv60jIP8INt4vBAnUJT0FJNNn+Czc=";
+  };
+
+  installPhase = ''
+    runHook preInstall
+    install -m 0644 geoip.dat -D $out/share/v2ray/geoip.dat
+    runHook postInstall
+  '';
+
+  passthru.updateScript = ./update.sh;
+
+  meta = with lib; {
+    description = "GeoIP for V2Ray";
+    homepage = "https://github.com/v2fly/geoip";
+    license = licenses.cc-by-sa-40;
+    maintainers = with maintainers; [ nickcao ];
+  };
+}
diff --git a/pkgs/data/misc/v2ray-geoip/update.sh b/pkgs/data/misc/v2ray-geoip/update.sh
new file mode 100755
index 0000000000000..e39012e30a51a
--- /dev/null
+++ b/pkgs/data/misc/v2ray-geoip/update.sh
@@ -0,0 +1,6 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p common-updater-scripts curl jq
+set -euo pipefail
+
+COMMIT=$(curl "https://api.github.com/repos/v2fly/geoip/commits/release?per_page=1")
+update-source-version v2ray-geoip "$(echo $COMMIT | jq -r .commit.message)" --file=pkgs/data/misc/v2ray-geoip/default.nix --rev="$(echo $COMMIT | jq -r .sha)"
diff --git a/pkgs/data/themes/adwaita-qt/default.nix b/pkgs/data/themes/adwaita-qt/default.nix
index f1424b15ad1a1..37cca06a69c37 100644
--- a/pkgs/data/themes/adwaita-qt/default.nix
+++ b/pkgs/data/themes/adwaita-qt/default.nix
@@ -12,7 +12,7 @@
 
 mkDerivation rec {
   pname = "adwaita-qt";
-  version = "1.4.0";
+  version = "1.4.1";
 
   outputs = [ "out" "dev" ];
 
@@ -20,7 +20,7 @@ mkDerivation rec {
     owner = "FedoraQt";
     repo = pname;
     rev = version;
-    sha256 = "sha256-KkqLUhS0JMwJsgu8fv5iGozH3Xv+cXumxx5IewZTTPc=";
+    sha256 = "sha256-t9vv1KcMUg8Qe7lhVMN4GO+VPoT7QzeoQ6hV4fesA8U=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/themes/flat-remix-gnome/default.nix b/pkgs/data/themes/flat-remix-gnome/default.nix
index 4c43a48c1d9fd..c5647094d8ffd 100644
--- a/pkgs/data/themes/flat-remix-gnome/default.nix
+++ b/pkgs/data/themes/flat-remix-gnome/default.nix
@@ -7,25 +7,25 @@
 let
   # make install will use dconf to find desktop background file uri.
   # consider adding an args to allow specify pictures manually.
-  # https://github.com/daniruiz/flat-remix-gnome/blob/20211113/Makefile#L38
+  # https://github.com/daniruiz/flat-remix-gnome/blob/20211223/Makefile#L38
   fake-dconf = writeScriptBin "dconf" "echo -n";
 in
 stdenv.mkDerivation rec {
   pname = "flat-remix-gnome";
-  version = "20211113";
+  version = "20211223";
 
   src = fetchFromGitHub {
     owner = "daniruiz";
     repo = pname;
     rev = version;
-    hash = "sha256-A9aiaS4CXRpr4+Y8+tyvWYRbR9STFS9TuplGksPfqtU=";
+    hash = "sha256-hAehJNDr8r0Jhhz0h7ygXI08ouNiWDT16SPm49i90lM=";
   };
 
   nativeBuildInputs = [ glib fake-dconf ];
   makeFlags = [ "PREFIX=$(out)" ];
   preInstall = ''
     # make install will back up this file, it will fail if the file doesn't exist.
-    # https://github.com/daniruiz/flat-remix-gnome/blob/20211113/Makefile#L56
+    # https://github.com/daniruiz/flat-remix-gnome/blob/20211223/Makefile#L56
     mkdir -p $out/share/gnome-shell/
     touch $out/share/gnome-shell/gnome-shell-theme.gresource
   '';
diff --git a/pkgs/data/themes/flat-remix-gtk/default.nix b/pkgs/data/themes/flat-remix-gtk/default.nix
index afdf478fea03e..813fba61dde74 100644
--- a/pkgs/data/themes/flat-remix-gtk/default.nix
+++ b/pkgs/data/themes/flat-remix-gtk/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flat-remix-gtk";
-  version = "20201129";
+  version = "20211201";
 
   src = fetchFromGitHub {
     owner = "daniruiz";
     repo = pname;
     rev = version;
-    hash = "sha256-lAlHRVB/P3A1qWsXQZPZ3uhgctR4FLa+ocUrsbleXJU=";
+    sha256 = "sha256-JxvCdmExDh9t5UZKqF936SiT/PYxAJpGgY1Hgh8ykzw=";
   };
 
   dontBuild = true;
diff --git a/pkgs/data/themes/marwaita/default.nix b/pkgs/data/themes/marwaita/default.nix
index 5676d03abeee8..7a1b79d6d97c1 100644
--- a/pkgs/data/themes/marwaita/default.nix
+++ b/pkgs/data/themes/marwaita/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "marwaita";
-  version = "11.3";
+  version = "12.0";
 
   src = fetchFromGitHub {
     owner = "darkomarko42";
     repo = pname;
     rev = version;
-    sha256 = "sha256-7l3fvqhMMJyv27yv/jShju0hL5AAvHk8pmISj/oyUP4=";
+    sha256 = "10mf1cbm6a9k0b1vcafy3jb7kicpvnf6xqmn1dfxwsq3k81mmy7d";
   };
 
   buildInputs = [
diff --git a/pkgs/data/themes/matcha/default.nix b/pkgs/data/themes/matcha/default.nix
index 4507e3c2f151a..4d59a03313a4f 100644
--- a/pkgs/data/themes/matcha/default.nix
+++ b/pkgs/data/themes/matcha/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "matcha-gtk-theme";
-  version = "2021-09-24";
+  version = "2021-12-25";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "064x340z6fif59bbk1p7ryl6xfj8hlf42ld7h8prcjsyghpznw15";
+    sha256 = "1wgq1aypm4cjv7yavlfmqcwahlddvh2gbg2f5ca0djgnpy9vha1g";
   };
 
   buildInputs = [ gdk-pixbuf librsvg ];
diff --git a/pkgs/data/themes/materia-theme/default.nix b/pkgs/data/themes/materia-theme/default.nix
index f9e3463f2fdc6..da79f68638b9d 100644
--- a/pkgs/data/themes/materia-theme/default.nix
+++ b/pkgs/data/themes/materia-theme/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , meson
 , ninja
@@ -11,30 +12,20 @@
 
 stdenv.mkDerivation rec {
   pname = "materia-theme";
-  version = "20200916";
+  version = "20210322";
 
   src = fetchFromGitHub {
     owner = "nana-4";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0qaxxafsn5zd2ysgr0jyv5j73360mfdmxyd55askswlsfphssn74";
+    sha256 = "1fsicmcni70jkl4jb3fvh7yv0v9jhb8nwjzdq8vfwn256qyk0xvl";
   };
 
-  nativeBuildInputs = [
-    meson
-    ninja
-    sassc
-  ];
+  nativeBuildInputs = [ meson ninja sassc ];
 
-  buildInputs = [
-    gnome.gnome-themes-extra
-    gdk-pixbuf
-    librsvg
-  ];
+  buildInputs = [ gnome.gnome-themes-extra gdk-pixbuf librsvg ];
 
-  propagatedUserEnvPkgs = [
-    gtk-engine-murrine
-  ];
+  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
   dontBuild = true;
 
diff --git a/pkgs/data/themes/material-kwin-decoration/default.nix b/pkgs/data/themes/material-kwin-decoration/default.nix
new file mode 100644
index 0000000000000..f5dccefbc139e
--- /dev/null
+++ b/pkgs/data/themes/material-kwin-decoration/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+, qtx11extras
+, kcoreaddons
+, kguiaddons
+, kconfig
+, kdecoration
+, kconfigwidgets
+, kwindowsystem
+, kiconthemes
+, kwayland
+}:
+
+mkDerivation rec {
+  pname = "material-kwin-decoration";
+  version = "unstable-20211028";
+
+  src = fetchFromGitHub {
+    owner = "Zren";
+    repo = "material-decoration";
+    rev = "cc5cc399a546b66907629b28c339693423c894c8";
+    sha256 = "sha256-aYlnPFhf+ISVe5Ycryu5BSXY8Lb5OoueMqnWQZiv6Lc=";
+  };
+
+  nativeBuildInputs = [ cmake extra-cmake-modules ];
+
+  buildInputs = [
+    qtx11extras
+    kcoreaddons
+    kguiaddons
+    kdecoration
+    kconfig
+    kconfigwidgets
+    kwindowsystem
+    kiconthemes
+    kwayland
+  ];
+
+  meta = with lib; {
+    description = "Material-ish window decoration theme for KWin";
+    homepage = "https://github.com/Zren/material-decoration";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.nickcao ];
+  };
+}
diff --git a/pkgs/data/themes/nordic/default.nix b/pkgs/data/themes/nordic/default.nix
index 41189b21f4995..8d41ce5e38df6 100644
--- a/pkgs/data/themes/nordic/default.nix
+++ b/pkgs/data/themes/nordic/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "nordic";
-  version = "unstable-2021-11-19";
+  version = "2.1.0";
 
   srcs = [
     (fetchFromGitHub {
@@ -76,6 +76,7 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
+
     mkdir -p $out/share/themes
     cp -a Nordic* $out/share/themes
     rm -r $out/share/themes/*/.gitignore
@@ -88,13 +89,23 @@ stdenv.mkDerivation rec {
     rm -r $out/share/themes/*/gnome-shell/{extensions,*.scss}
     rm -r $out/share/themes/*/gtk-2.0/{assets.svg,assets.txt,links.fish,render-assets.sh}
     rm -r $out/share/themes/*/gtk-3.0/{apps,widgets,*.scss}
-    rm -r $out/share/themes/*/kde
     rm -r $out/share/themes/*/xfwm4/{assets,render_assets.fish}
+
+    # move kde related contents to appropriate directories
+    mkdir -p $out/share/{aurorae/themes,color-schemes,Kvantum,plasma,sddm/themes/Nordic}
+    mv -v $out/share/themes/Nordic/kde/aurorae/* $out/share/aurorae/themes/
+    mv -v $out/share/themes/Nordic/kde/colorschemes/* $out/share/color-schemes/
+    mv -v $out/share/themes/Nordic/kde/konsole $out/share/
+    mv -v $out/share/themes/Nordic/kde/kvantum/* $out/share/Kvantum/
+    mv -v $out/share/themes/Nordic/kde/plasma/look-and-feel $out/share/plasma/
+    mv -v $out/share/themes/Nordic/kde/sddm/* $out/share/sddm/themes/Nordic/
+    rm -rf $out/share/themes/Nordic/kde
+
     runHook postInstall
   '';
 
   meta = with lib; {
-    description = "Gtk themes using the Nord color pallete";
+    description = "Gtk and KDE themes using the Nord color pallete";
     homepage = "https://github.com/EliverLara/Nordic";
     license = licenses.gpl3Only;
     platforms = platforms.all;
diff --git a/pkgs/data/themes/obsidian2/default.nix b/pkgs/data/themes/obsidian2/default.nix
index 8d431a0d061cf..251dde481fd26 100644
--- a/pkgs/data/themes/obsidian2/default.nix
+++ b/pkgs/data/themes/obsidian2/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "theme-obsidian2";
-  version = "2.19";
+  version = "2.20";
 
   src = fetchurl {
     url = "https://github.com/madmaxms/theme-obsidian-2/releases/download/v${version}/obsidian-2-theme.tar.xz";
-    sha256 = "sha256-GGnrix8utJ34pszuoxcMY5Yr0stwL17Y812FIiRZOUk=";
+    sha256 = "0bbw8far4fjz7fiy205wnzp9ibnvqspfcjkinhjj8l0s272h7wjp";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/data/themes/orchis-theme/default.nix b/pkgs/data/themes/orchis-theme/default.nix
index f019009db9f86..ef7f88e3e955d 100644
--- a/pkgs/data/themes/orchis-theme/default.nix
+++ b/pkgs/data/themes/orchis-theme/default.nix
@@ -5,18 +5,28 @@
 , gnome-themes-extra
 , gtk-engine-murrine
 , sassc
-, accentColor ? "default"
+, tweaks ? [ ] # can be "solid" "compact" "black" "primary"
 }:
 
-stdenvNoCC.mkDerivation rec {
+let
+  validTweaks = [ "solid" "compact" "black" "primary" ];
+  unknownTweaks = lib.subtractLists validTweaks tweaks;
+in
+assert lib.assertMsg (unknownTweaks == [ ]) ''
+  You entered wrong tweaks: ${toString unknownTweaks}
+  Valid tweaks are: ${toString validTweaks}
+'';
+
+stdenvNoCC.mkDerivation
+rec {
   pname = "orchis-theme";
-  version = "2021-06-25";
+  version = "2021-12-13";
 
   src = fetchFromGitHub {
     repo = "Orchis-theme";
     owner = "vinceliuice";
     rev = version;
-    sha256 = "sha256-j0nsw1yR1yOckXiIMtzhC3w6kvfzxQQHgwdY6l0OuXw=";
+    sha256 = "sha256-PN2ucGMDzRv4v86X1zVIs9+GkbMWuja2WaSQLFvJYd0=";
   };
 
   nativeBuildInputs = [ gtk3 sassc ];
@@ -31,7 +41,7 @@ stdenvNoCC.mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
-    bash install.sh -d $out/share/themes -t ${accentColor}
+    bash install.sh -d $out/share/themes -t all ${lib.optionalString (tweaks != []) "--tweaks " + builtins.toString tweaks}
     runHook postInstall
   '';
 
diff --git a/pkgs/data/themes/pop-gtk/default.nix b/pkgs/data/themes/pop-gtk/default.nix
index ec17be3261d8a..022e1dd81b2fd 100644
--- a/pkgs/data/themes/pop-gtk/default.nix
+++ b/pkgs/data/themes/pop-gtk/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , meson
 , ninja
@@ -14,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pop-gtk-theme";
-  version = "2020-06-30";
+  version = "2021-08-19";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = "gtk-theme";
-    rev = "8c31be9f9257375bf7a049069cb4ecbac7d281a1";
-    sha256 = "16dxxazpllcxlbiblynqq4b65wfn9k1jab8dl69l819v73z303ky";
+    rev = "6615e4510485c5dc0b379746acc40f538d987c86";
+    sha256 = "16h03x2m4j4hfwp7pdmw1navcy5q7di38jvigfgf263wajyxbznr";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/themes/qogir/default.nix b/pkgs/data/themes/qogir/default.nix
index 57d664415da8b..e3e3b6e485b8d 100644
--- a/pkgs/data/themes/qogir/default.nix
+++ b/pkgs/data/themes/qogir/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qogir-theme";
-  version = "2021-11-17";
+  version = "2021-12-25";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "1ri2dh34vw2pfv0lxzk9f4755v0d4ilnr6fzj3raw9b5fp5zzi91";
+    sha256 = "1h10yqz3i59bxhkk2r2p8as8g9ibx38bbpdxi7jgg2pxr581mn4f";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/themes/sweet/default.nix b/pkgs/data/themes/sweet/default.nix
index bd1df3277c917..3ffa3caf8ba8e 100644
--- a/pkgs/data/themes/sweet/default.nix
+++ b/pkgs/data/themes/sweet/default.nix
@@ -1,32 +1,34 @@
-{ lib, stdenv, fetchurl, gtk-engine-murrine }:
+{ lib, stdenv, fetchurl, unzip, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "sweet";
-  version = "2.0";
+  version = "3.0";
 
   srcs = [
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet-Ambar-Blue.tar.xz";
-      sha256 = "028pk07im7pab8a2vh3bvjm8jg37dpvn4c1mwn6vhb6wcr9v5c75";
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Ambar-Blue.zip";
+      sha256 = "sha256-6ZrjH5L7Yox7riR+2I7vVbFoG4k7xHGyOq1OnkllyiY";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet-Ambar.tar.xz";
-      sha256 = "0zmdmqndj65kr43g3z57blrmv0y856zlfprm6y45zbf4xz3ybkg6";
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Ambar.zip";
+      sha256 = "sha256-FAbf682YJCCt8NKSdFoaFLwxLDU1aCcTgNdlybZtPMo=";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet-Dark.tar.xz";
-      sha256 = "02sw664fkrfpsygspq8fn4zgk8rxs9rd29nnx6nyvkji68mb51s6";
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-Dark.zip";
+      sha256 = "sha256-t6fczOnKwi4B9hSFhHQaQ533o7MFL+7HPtUJ/p2CIXM=";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet-mars.tar.xz";
-      sha256 = "14rl3il61jyqwiqlpgbh397q3rcs7jcf2pvr2763ar5a9czmy8h6";
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet-mars.zip";
+      sha256 = "sha256-QGkkpUqkxGPM1DXrvToB3taajk7vK3rqibQF2M4N9i0=";
     })
     (fetchurl {
-      url = "https://github.com/EliverLara/Sweet/releases/download/${version}/Sweet.tar.xz";
-      sha256 = "0rza3yxwj256ibqimymjhd6lpjzr7fkhggq0ijdg1wab3q91x66q";
+      url = "https://github.com/EliverLara/Sweet/releases/download/v${version}/Sweet.zip";
+      sha256 = "sha256-1qVC2n7ypN1BFuSzBpbY7QzJUzF1anYNAVcMkNpGTMM";
     })
   ];
 
+  nativeBuildInputs = [ unzip ];
+
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
   sourceRoot = ".";
diff --git a/pkgs/data/themes/whitesur/default.nix b/pkgs/data/themes/whitesur/default.nix
index 46594e4f5e17c..6833f473664f9 100644
--- a/pkgs/data/themes/whitesur/default.nix
+++ b/pkgs/data/themes/whitesur/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "whitesur-gtk-theme";
-  version = "2021-10-21";
+  version = "2021-12-28";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "1rbwf6z2bda647kw00q2fp349gjzvdc4gyk986fkjli0nr0jh8hp";
+    sha256 = "0i81aickccfp8fffilhi335hj5ijz2n38yj3zw2fnbwgm667i0fc";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/arcan/arcan/default.nix b/pkgs/desktops/arcan/arcan/default.nix
index 8420df5e7e215..f3f4be2fcc4a4 100644
--- a/pkgs/desktops/arcan/arcan/default.nix
+++ b/pkgs/desktops/arcan/arcan/default.nix
@@ -48,13 +48,13 @@
 
 stdenv.mkDerivation rec {
   pname = "arcan" + lib.optionalString useStaticOpenAL "-static-openal";
-  version = "0.6.1pre1+unstable=2021-10-16";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "letoram";
     repo = "arcan";
-    rev = "e0182b944152fbcb49f5c16932d38c05a9fb2680";
-    hash = "sha256-4FodFuO51ehvyjH4YaF/xBY9dwA6cP/e6/BvEsH4w7U=";
+    rev = version;
+    hash = "sha256-2do4+6KB0AAcJk22mN0IA/e/bPaeGipLjI4RSTPqLBg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/arcan/durden/default.nix b/pkgs/desktops/arcan/durden/default.nix
index 69aae1d216a32..b5fc02127ece7 100644
--- a/pkgs/desktops/arcan/durden/default.nix
+++ b/pkgs/desktops/arcan/durden/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "durden";
-  version = "0.6.1+unstable=2021-10-15";
+  version = "0.6.1+date=2021-10-17";
 
   src = fetchFromGitHub {
     owner = "letoram";
     repo = pname;
-    rev = "ab6cdaf19e87b74895a9ab5e1d005a07ea9396a6";
-    hash = "sha256-FxqY1TUgbD/PjQjTZZerb7ngn5nkcqmVwqPvbRAYaqo=";
+    rev = "5fb8b0f9bc2952ed9cf7dc20a1c5c0cc44c02ff1";
+    hash = "sha256-+EIsrCkMe9MrUQOCh0R+rsDg/Rqs3iQWO0GZCgZQ+No=";
   };
 
   installPhase = ''
diff --git a/pkgs/desktops/arcan/pipeworld/default.nix b/pkgs/desktops/arcan/pipeworld/default.nix
index 359c3a21a67cc..fa1a09230d9df 100644
--- a/pkgs/desktops/arcan/pipeworld/default.nix
+++ b/pkgs/desktops/arcan/pipeworld/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pipeworld";
-  version = "0.pre+unstable=2021-08-01";
+  version = "0.pre+date=2021-11-26";
 
   src = fetchFromGitHub {
     owner = "letoram";
     repo = pname;
-    rev = "311cc91946be63faab3b1578bc1d40668dd30f8c";
-    hash = "sha256-iqcdVzEp4ST/f93+9fGSwvJMj7BznNtoEx4F3oMPCYk=";
+    rev = "9f816db154ca5c54af952ad11c2186ccac5bdd2d";
+    hash = "sha256-uwnrRsMP0RLEGr2mEVQ6kEtV/c6t5qSCHY0ynywPzkw=";
   };
 
   installPhase = ''
diff --git a/pkgs/desktops/arcan/xarcan/default.nix b/pkgs/desktops/arcan/xarcan/default.nix
index 9bfd7e290733b..6245471a7efd8 100644
--- a/pkgs/desktops/arcan/xarcan/default.nix
+++ b/pkgs/desktops/arcan/xarcan/default.nix
@@ -4,7 +4,7 @@
 , arcan
 , audit
 , dbus
-, epoxy
+, libepoxy
 , fontutil
 , libGL
 , libX11
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
     arcan
     audit
     dbus
-    epoxy
+    libepoxy
     fontutil
     libGL
     libX11
diff --git a/pkgs/desktops/cdesktopenv/default.nix b/pkgs/desktops/cdesktopenv/default.nix
index 563a1b49e5164..7715f4f232ad1 100644
--- a/pkgs/desktops/cdesktopenv/default.nix
+++ b/pkgs/desktops/cdesktopenv/default.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv, fetchurl, xorgproto, libX11, bison, ksh, perl, gnum4
+{ lib, stdenv, fetchurl
+, fetchpatch
+, xorgproto, libX11, bison, ksh, perl, gnum4
 , libXinerama, libXt, libXext, libtirpc, motif, libXft, xbitmaps
 , libjpeg, libXmu, libXdmcp, libXScrnSaver, symlinkJoin, bdftopcf
 , ncompress, mkfontdir, tcl, libXaw, gcc, glibcLocales, gawk
@@ -27,6 +29,13 @@ in stdenv.mkDerivation rec {
   patches = [
     ./2.3.2.patch
     ./0001-all-remove-deprecated-sys_errlist-and-replace-with-A.patch
+
+    (fetchpatch {
+      name = "binutils-2.36.patch";
+      url = "https://github.com/cdesktopenv/cde/commit/0b7849e210a99a413ddeb52a0eb5aef9a08504a0.patch";
+      sha256 = "0wlhs617hws3rwln9v74y1nw27n3pp7jkpnxlala7k5y64506ipj";
+      stripLen = 1;
+    })
   ];
 
   buildInputs = [
diff --git a/pkgs/desktops/cinnamon/bulky/default.nix b/pkgs/desktops/cinnamon/bulky/default.nix
index 511cb6a1c0920..56cf5a0ff515d 100644
--- a/pkgs/desktops/cinnamon/bulky/default.nix
+++ b/pkgs/desktops/cinnamon/bulky/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bulky";
-  version = "1.7";
+  version = "1.9";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "bulky";
     rev = version;
-    sha256 = "sha256-+3OoeuGuyiHWlUrxm5A7CmNR+ijxdlmecmvqk+i+h08=";
+    hash = "sha256-OCBFhlnEXZROp47KDiy7Y6l4GDVCCP+i1IFYQa7esyg=";
   };
 
   nativeBuildInputs = [
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    (python3.withPackages(p: with p; [ pygobject3 magic setproctitle ]))
+    (python3.withPackages (p: with p; [ pygobject3 magic setproctitle ]))
     gsettings-desktop-schemas
     gtk3
     glib
@@ -55,6 +55,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/linuxmint/bulky";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = [ maintainers.mkg20001 ];
+    maintainers = teams.cinnamon.members;
   };
 }
diff --git a/pkgs/desktops/cinnamon/cinnamon-common/default.nix b/pkgs/desktops/cinnamon/cinnamon-common/default.nix
index 936c4578ea3d5..303443cc5f9e0 100644
--- a/pkgs/desktops/cinnamon/cinnamon-common/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-common/default.nix
@@ -25,7 +25,8 @@
 , networkmanager
 , pkg-config
 , polkit
-, lib, stdenv
+, lib
+, stdenv
 , wrapGAppsHook
 , libxml2
 , gtk-doc
@@ -50,23 +51,28 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-common";
-  version = "4.8.6";
+  version = "5.2.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "cinnamon";
     rev = version;
-    hash = "sha256-4DMXQYH1/RjLhgrn55I7Vkk6+gGsR+OVmiwxVHUIyro=";
+    hash = "sha256-B2Du2zis0xWeeyh3kSyz1doWImk9Fuk4qQ8HNZZdqdw=";
   };
 
   patches = [
     ./use-sane-install-dir.patch
     ./libdir.patch
+
+    (fetchpatch {
+      url = "https://github.com/linuxmint/cinnamon/commit/77ed66050f7df889fcb7a10b702c7b8bcdeaa130.patch";
+      sha256 = "sha256-OegLxz6Xr/nxVwVOAd2oOY62ohZ3r6uYn1+YED5EBHQ=";
+    })
   ];
 
   buildInputs = [
     # TODO: review if we really need this all
-    (python3.withPackages (pp: with pp; [ dbus-python setproctitle pygobject3 pycairo xapp pillow pytz tinycss2 python-pam pexpect distro ]))
+    (python3.withPackages (pp: with pp; [ dbus-python setproctitle pygobject3 pycairo xapp pillow pytz tinycss2 python-pam pexpect distro requests ]))
     atk
     cacert
     cinnamon-control-center
@@ -148,7 +154,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    providedSessions = ["cinnamon" "cinnamon2d"];
+    providedSessions = [ "cinnamon" "cinnamon2d" ];
   };
 
   meta = with lib; {
diff --git a/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix b/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
index 94080e3e47a32..a105f39ac46a0 100644
--- a/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , pkg-config
 , glib
@@ -29,17 +30,18 @@
 , meson
 , ninja
 , cinnamon-translations
+, python3
 }:
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-control-center";
-  version = "4.8.2";
+  version = "5.2.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-vALThDY0uN9bV7b1fga3MK7b2/l5uL33+B2x6oSLPRE=";
+    hash = "sha256-j7+2uLcHr7bO7i8OGqkw3ifawZULNyihhJ+h2D5gx/k=";
   };
 
   buildInputs = [
@@ -67,13 +69,15 @@ stdenv.mkDerivation rec {
   ];
 
   /* ./panels/datetime/test-timezone.c:4:#define TZ_DIR "/usr/share/zoneinfo/"
-  ./panels/datetime/tz.h:32:#  define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
-  ./panels/datetime/tz.h:34:#  define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab" */
+    ./panels/datetime/tz.h:32:#  define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
+    ./panels/datetime/tz.h:34:#  define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab" */
 
   postPatch = ''
     sed 's|TZ_DIR "/usr/share/zoneinfo/"|TZ_DIR "${tzdata}/share/zoneinfo/"|g' -i ./panels/datetime/test-timezone.c
     sed 's|TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"|TZ_DATA_FILE "${tzdata}/share/zoneinfo/zone.tab"|g' -i ./panels/datetime/tz.h
     sed 's|"/usr/share/i18n/locales/"|"${glibc}/share/i18n/locales/"|g' -i panels/datetime/test-endianess.c
+
+    patchShebangs meson_install_schemas.py
   '';
 
   # it needs to have access to that file, otherwise we can't run tests after build
@@ -103,6 +107,7 @@ stdenv.mkDerivation rec {
     ninja
     wrapGAppsHook
     gettext
+    python3
   ];
 
   meta = with lib; {
diff --git a/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix b/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
index 25af38d43b5e5..ec786c7bacb90 100644
--- a/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
@@ -8,7 +8,8 @@
 , pkg-config
 , pulseaudio
 , python3
-, lib, stdenv
+, lib
+, stdenv
 , xkeyboard_config
 , xorg
 , wrapGAppsHook
@@ -17,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-desktop";
-  version = "4.8.1";
+  version = "5.2.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-FLruY1lxzB3iJ/So3jSjrbv9e8VoN/0+U2YDXju/u3E=";
+    hash = "sha256-gOlSmcHjBjnLdDpgC5mZ4M3eUBTG3BuET6Kr/Xby14A=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix b/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix
index 6f54515569ee0..3066d7fcd8075 100644
--- a/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix
@@ -5,7 +5,7 @@
 , gtk3
 , gsettings-desktop-schemas
 , extraGSettingsOverrides ? ""
-, extraGSettingsOverridePackages ? []
+, extraGSettingsOverridePackages ? [ ]
 , mint-artwork
 
 , muffin
@@ -41,19 +41,19 @@ in
 with lib;
 
 # TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this
-runCommand "cinnamon-gsettings-overrides" {}
+runCommand "cinnamon-gsettings-overrides" { }
   ''
-     schema_dir=$out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
+    schema_dir=$out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
 
-     mkdir -p $schema_dir
+    mkdir -p $schema_dir
 
-     ${concatMapStrings (pkg: "cp -rf ${glib.getSchemaPath pkg}/*.xml ${glib.getSchemaPath pkg}/*.gschema.override $schema_dir\n") gsettingsOverridePackages}
+    ${concatMapStrings (pkg: "cp -rf ${glib.getSchemaPath pkg}/*.xml ${glib.getSchemaPath pkg}/*.gschema.override $schema_dir\n") gsettingsOverridePackages}
 
-     chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
+    chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
 
-     cat - > $schema_dir/nixos-defaults.gschema.override <<- EOF
-     ${extraGSettingsOverrides}
-     EOF
+    cat - > $schema_dir/nixos-defaults.gschema.override <<- EOF
+    ${extraGSettingsOverrides}
+    EOF
 
-     ${glib.dev}/bin/glib-compile-schemas $schema_dir
+    ${glib.dev}/bin/glib-compile-schemas $schema_dir
   ''
diff --git a/pkgs/desktops/cinnamon/cinnamon-menus/default.nix b/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
index 44566a94c6df0..99008b4726eea 100644
--- a/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
@@ -4,19 +4,20 @@
 , meson
 , ninja
 , pkg-config
-, lib, stdenv
+, lib
+, stdenv
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-menus";
-  version = "4.8.2";
+  version = "5.2.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-9VSrqCjC8U3js1gqjl5QFctWYECATxN+AdfMdHLxYUY=";
+    hash = "sha256-ioluv/GdWCNGP2jQqsyEbHncCFm8iu69yR8QVKQTJk8=";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix b/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
index b70673253edf2..3d84a6a0622c0 100644
--- a/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , pkg-config
 , meson
@@ -27,13 +28,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-screensaver";
-  version = "4.8.1";
+  version = "5.2.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-gvSGxSYKnRqJhj2unRYRHp6qGw/O9SxKPzhw5xjCSSQ=";
+    hash = "sha256-weQ5sw5SY89JFIxamCeLiSLy8xCXGg0Yxj/5Ca5r+6o=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/cinnamon/cinnamon-session/default.nix b/pkgs/desktops/cinnamon/cinnamon-session/default.nix
index 3f1ceb2dc6108..91c03796a8888 100644
--- a/pkgs/desktops/cinnamon/cinnamon-session/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-session/default.nix
@@ -15,26 +15,26 @@
 , ninja
 , pkg-config
 , python3
-, lib, stdenv
+, lib
+, stdenv
 , systemd
 , wrapGAppsHook
 , xapps
 , xmlto
 , xorg
-, cmake
 , libexecinfo
 , pango
 }:
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-session";
-  version = "4.8.0";
+  version = "5.2.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-lrwR8VSdPzHoc9MeBEQPbVfWNhPZDJ2wYizKSVpobmk=";
+    hash = "sha256-E5ascwLnpa5NSBAPo9dXRhoraUntzDPHVV32uDU4U8k=";
   };
 
   patches = [
@@ -85,7 +85,6 @@ stdenv.mkDerivation rec {
     # TODO: https://github.com/NixOS/nixpkgs/issues/36468
     "-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
     "-Dgconf=false"
-    "-DENABLE_IPV6=true"
     # use locales from cinnamon-translations
     "--localedir=${cinnamon-translations}/share/locale"
   ];
diff --git a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
index 69b08fc64ed99..bf83c3d9f5947 100644
--- a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
@@ -13,7 +13,8 @@
 , wrapGAppsHook
 , pkg-config
 , pulseaudio
-, lib, stdenv
+, lib
+, stdenv
 , systemd
 , upower
 , dconf
@@ -35,7 +36,7 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-settings-daemon";
-  version = "4.8.5";
+  version = "5.2.0";
 
   /* csd-power-manager.c:50:10: fatal error: csd-power-proxy.h: No such file or directory
    #include "csd-power-proxy.h"
@@ -50,7 +51,7 @@ stdenv.mkDerivation rec {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-PAWVTjGFs8yKXgNQ2ucDnEDS+n7bp2n3lhGl9gHXfdQ=";
+    hash = "sha256-6omif4UxMrXWxL+R9lQ8ogxotW+3E9Kp99toH3PJtaU=";
   };
 
   patches = [
@@ -121,6 +122,6 @@ stdenv.mkDerivation rec {
     description = "The settings daemon for the Cinnamon desktop";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = [ maintainers.mkg20001 ];
+    maintainers = teams.cinnamon.members;
   };
 }
diff --git a/pkgs/desktops/cinnamon/cinnamon-translations/default.nix b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
index f790c54052de5..f9337f7649260 100644
--- a/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-translations";
-  version = "5.0.0";
+  version = "5.2.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-qBLg0z0ZoS7clclKsIxMG6378Q1iv1NnhS9cz3f4cEc=";
+    hash = "sha256-t3PydmS2+LU++2NcosgMr9KTXW0Qy1Re9+YcS3KMDi8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/cinnamon/cjs/default.nix b/pkgs/desktops/cinnamon/cjs/default.nix
index 2e1c739c0f075..3ac4483c5c9a6 100644
--- a/pkgs/desktops/cinnamon/cjs/default.nix
+++ b/pkgs/desktops/cinnamon/cjs/default.nix
@@ -25,23 +25,24 @@
 , makeWrapper
 , which
 , libxml2
+, gtk4
 }:
 
 stdenv.mkDerivation rec {
   pname = "cjs";
-  version = "4.8.2";
+  version = "5.2.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "cjs";
     rev = version;
-    hash = "sha256-6+zlWL0DmyP+RFp1ECA4XGbgYUlsMqqyTd6z46w99Ug=";
+    hash = "sha256-06sTk513qVMdznSHJzzB3XIPTcfjgxTB2o+ALqwPpHM=";
   };
 
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [
-    meson # ADDING cmake breaks the build, ignore meson warning
+    meson
     ninja
     pkg-config
     makeWrapper
@@ -50,6 +51,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    gtk4
     gobject-introspection
     cairo
     readline
diff --git a/pkgs/desktops/cinnamon/default.nix b/pkgs/desktops/cinnamon/default.nix
index 4d148fdcdb0bb..7f9d332ed1405 100644
--- a/pkgs/desktops/cinnamon/default.nix
+++ b/pkgs/desktops/cinnamon/default.nix
@@ -1,19 +1,19 @@
 { pkgs, lib }:
 
 lib.makeScope pkgs.newScope (self: with self; {
-  iso-flags-png-320x420 = pkgs.iso-flags.overrideAttrs(p: p // {
+  iso-flags-png-320x420 = pkgs.iso-flags.overrideAttrs (p: p // {
     buildPhase = "make png-country-320x240-fancy";
     # installPhase = "mkdir -p $out/share && mv build/png-country-4x2-fancy/res-320x240 $out/share/iso-flags-png-320x420";
     installPhase = "mkdir -p $out/share && mv build/png-country-4x2-fancy/res-320x240 $out/share/iso-flags-png";
   });
 
-  iso-flags-svg = pkgs.iso-flags.overrideAttrs(p: p // {
+  iso-flags-svg = pkgs.iso-flags.overrideAttrs (p: p // {
     buildPhase = "mkdir -p $out/share";
     installPhase = "mv svg $out/share/iso-flags-svg";
   });
 
   # blueberry -> pkgs/tools/bluetooth/blueberry/default.nix
-  bulky = callPackage ./bulky {};
+  bulky = callPackage ./bulky { };
   cinnamon-common = callPackage ./cinnamon-common { };
   cinnamon-control-center = callPackage ./cinnamon-control-center { };
   cinnamon-desktop = callPackage ./cinnamon-desktop { };
@@ -30,7 +30,9 @@ lib.makeScope pkgs.newScope (self: with self; {
   mint-x-icons = callPackage ./mint-x-icons { };
   mint-y-icons = callPackage ./mint-y-icons { };
   muffin = callPackage ./muffin { };
+  pix = callPackage ./pix { };
   xapps = callPackage ./xapps { };
   warpinator = callPackage ./warpinator { };
+  xreader = callPackage ./xreader { };
   xviewer = callPackage ./xviewer { };
 })
diff --git a/pkgs/desktops/cinnamon/mint-artwork/default.nix b/pkgs/desktops/cinnamon/mint-artwork/default.nix
index b3a542e513e82..abc7c172cb776 100644
--- a/pkgs/desktops/cinnamon/mint-artwork/default.nix
+++ b/pkgs/desktops/cinnamon/mint-artwork/default.nix
@@ -1,4 +1,5 @@
 { stdenv
+, lib
 , fetchurl
 , glib
 , nixos-artwork
@@ -6,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mint-artwork";
-  version = "1.4.3";
+  version = "1.5.4";
 
   src = fetchurl {
     url = "http://packages.linuxmint.com/pool/main/m/mint-artwork/mint-artwork_${version}.tar.xz";
-    sha256 = "126asxpg722qfg2wkwcr7bhsplchq3jn6bkdwf1scpc5za8dd62j";
+    hash = "sha256-ZRJK1fzIF36BdUlVhLwdFdfgQvN2ashzjgpCxoOIbK8=";
   };
 
   nativeBuildInputs = [
@@ -36,4 +37,12 @@ stdenv.mkDerivation rec {
     mv etc $out/etc
     mv usr/share $out/share
   '';
+
+  meta = with lib; {
+    homepage = "https://github.com/linuxmint/mint-artwork";
+    description = "Artwork for the cinnamon desktop";
+    license = licenses.gpl3; # from debian/copyright
+    platforms = platforms.linux;
+    maintainers = teams.cinnamon.members;
+  };
 }
diff --git a/pkgs/desktops/cinnamon/mint-themes/default.nix b/pkgs/desktops/cinnamon/mint-themes/default.nix
index 67020ce0b36a4..f25cb9df2fdde 100644
--- a/pkgs/desktops/cinnamon/mint-themes/default.nix
+++ b/pkgs/desktops/cinnamon/mint-themes/default.nix
@@ -1,5 +1,6 @@
 { fetchFromGitHub
-, lib, stdenv
+, lib
+, stdenv
 , python3
 , sassc
 , sass
@@ -7,14 +8,14 @@
 
 stdenv.mkDerivation rec {
   pname = "mint-themes";
-  version = "1.8.6";
+  version = "1.8.8";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
-    # commit is named 1.8.6, tags=404
-    rev = "fa0b9530f6e68c390aecd622b229072fcd08f05f";
-    sha256 = "0pgv5hglsscip5s7nv0mn301vkn0j6wp4rv34vr941yai1jfk2wb";
+    # they don't exactly do tags, it's just a named commit
+    rev = "a833fba6917043bf410dee4364c9a36af1ce4c83";
+    hash = "sha256-8abjjD0XoApvqB8SNlWsqIEp7ozgiERGS0kWglw2DWA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/cinnamon/mint-x-icons/default.nix b/pkgs/desktops/cinnamon/mint-x-icons/default.nix
index f4a04cf33a84a..bfcc95c4ff93f 100644
--- a/pkgs/desktops/cinnamon/mint-x-icons/default.nix
+++ b/pkgs/desktops/cinnamon/mint-x-icons/default.nix
@@ -1,5 +1,6 @@
 { fetchFromGitHub
-, lib, stdenv
+, lib
+, stdenv
 , gnome
 , gnome-icon-theme
 , hicolor-icon-theme
@@ -10,14 +11,14 @@
 
 stdenv.mkDerivation rec {
   pname = "mint-x-icons";
-  version = "1.5.5";
+  version = "1.6.3";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
-    # commit is named 1.5.5, tags=404
-    rev = "ecfbeb62bba41e85a61099df467c4700ac63c1e0";
-    sha256 = "1yxm7h7giag5hmymgxsg16vc0rhxb2vn3piaksc463mic4vwfa3i";
+    # they don't exactly do tags, it's just a named commit
+    rev = "286eb4acdfc3e3c77572dfd0cd70ffd4208d3a35";
+    hash = "sha256-mZkCEBC1O2mW8rM1kpOWdC5CwIeafyBS95cMY6x1yco=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/desktops/cinnamon/mint-y-icons/default.nix b/pkgs/desktops/cinnamon/mint-y-icons/default.nix
index e04a1baa6696d..c1afd2828d2c6 100644
--- a/pkgs/desktops/cinnamon/mint-y-icons/default.nix
+++ b/pkgs/desktops/cinnamon/mint-y-icons/default.nix
@@ -1,5 +1,6 @@
 { fetchFromGitHub
-, lib, stdenv
+, lib
+, stdenv
 , gnome
 , gnome-icon-theme
 , hicolor-icon-theme
@@ -8,14 +9,14 @@
 
 stdenv.mkDerivation rec {
   pname = "mint-y-icons";
-  version = "1.4.3";
+  version = "1.5.8";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
-    # commit is named 1.4.3, tags=404
-    rev = "c997af402d425889f2e4277966eebe473f7451f7";
-    sha256 = "0yfas949xm85a28vgjqm9ym3bhhynrq256w9vfs8aiqq9nbm18mf";
+    # they don't exactly do tags, it's just a named commit
+    rev = "9489bd161e9503d071227dd36057386a34cfc0a3";
+    hash = "sha256-53yTCWNSJjCpVvrxLfsiaCPNDEZWxJgGVAmVNMNql2M=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/desktops/cinnamon/muffin/default.nix b/pkgs/desktops/cinnamon/muffin/default.nix
index 5470933d619b8..6f35d6b5901d1 100644
--- a/pkgs/desktops/cinnamon/muffin/default.nix
+++ b/pkgs/desktops/cinnamon/muffin/default.nix
@@ -14,7 +14,8 @@
 , libXtst
 , libxkbcommon
 , pkg-config
-, lib, stdenv
+, lib
+, stdenv
 , udev
 , xorg
 , wrapGAppsHook
@@ -35,13 +36,13 @@
 
 stdenv.mkDerivation rec {
   pname = "muffin";
-  version = "4.8.1";
+  version = "5.2.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-zRW+hnoaKKTe4zIJpY1D0Ahc8k5zRbvYBF5Y4vZ6Rbs=";
+    hash = "sha256-WAp0HbfRtwsPjJX1kPBqUStqLaudQPZ8E+h4jmggmw8=";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/cinnamon/nemo/default.nix b/pkgs/desktops/cinnamon/nemo/default.nix
index c801342ff2c26..9a0e054fd81e5 100644
--- a/pkgs/desktops/cinnamon/nemo/default.nix
+++ b/pkgs/desktops/cinnamon/nemo/default.nix
@@ -5,11 +5,13 @@
 , meson
 , ninja
 , pkg-config
-, lib, stdenv
+, lib
+, stdenv
 , wrapGAppsHook
 , libxml2
 , gtk3
 , libnotify
+, gvfs
 , cinnamon-desktop
 , xapps
 , libexif
@@ -22,7 +24,7 @@
 
 stdenv.mkDerivation rec {
   pname = "nemo";
-  version = "5.0.3";
+  version = "5.2.0";
 
   # TODO: add plugins support (see https://github.com/NixOS/nixpkgs/issues/78327)
 
@@ -30,7 +32,7 @@ stdenv.mkDerivation rec {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Ah1Rp/o4LPdYm+wj2W5ljjMkCI3PgoAHrlM8yEQP77o=";
+    hash = "sha256-ehcqRlI1d/KWNas36dz+hb7KU1H8wtQHTpg2fz1XdXU=";
   };
 
   outputs = [ "out" "dev" ];
@@ -44,6 +46,7 @@ stdenv.mkDerivation rec {
     xapps
     libexif
     exempi
+    gvfs
     gobject-introspection
     libgsf
   ];
@@ -72,3 +75,4 @@ stdenv.mkDerivation rec {
     maintainers = teams.cinnamon.members;
   };
 }
+
diff --git a/pkgs/desktops/cinnamon/pix/default.nix b/pkgs/desktops/cinnamon/pix/default.nix
new file mode 100644
index 0000000000000..4a30d434c04ae
--- /dev/null
+++ b/pkgs/desktops/cinnamon/pix/default.nix
@@ -0,0 +1,75 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, autoreconfHook
+, cinnamon-desktop
+, file
+, gdk-pixbuf
+, glib
+, gobject-introspection
+, gtk-doc
+, gtk3
+, intltool
+, itstool
+, libtool
+, libxml2
+, pkg-config
+, shared-mime-info
+, wrapGAppsHook
+, xapps
+, yelp-tools
+, libsecret
+, webkitgtk
+, libwebp
+, librsvg
+, json-glib
+, gnome
+, clutter
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pix";
+  version = "2.8.0";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-m508pkbiSVuIaEx7EznOd5QTkpM66TBbpM5HRkjKRQA=";
+  };
+
+  nativeBuildInputs = [
+    wrapGAppsHook
+    autoreconfHook
+    cinnamon-desktop
+    gdk-pixbuf
+    gnome.gnome-common
+    gobject-introspection
+    gtk-doc
+    intltool
+    itstool
+    libtool
+    pkg-config
+    yelp-tools
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    xapps
+    libsecret
+    webkitgtk
+    libwebp
+    librsvg
+    json-glib
+    clutter
+  ];
+
+  meta = with lib; {
+    description = "A generic image viewer from Linux Mint";
+    homepage = "https://github.com/linuxmint/pix";
+    license = licenses.gpl2Only;
+    platforms = platforms.linux;
+    maintainers = teams.cinnamon.members;
+  };
+}
diff --git a/pkgs/desktops/cinnamon/warpinator/default.nix b/pkgs/desktops/cinnamon/warpinator/default.nix
index 8b316d37f587b..8ed66dc54d556 100644
--- a/pkgs/desktops/cinnamon/warpinator/default.nix
+++ b/pkgs/desktops/cinnamon/warpinator/default.nix
@@ -14,7 +14,7 @@
 
 python3.pkgs.buildPythonApplication rec  {
   pname = "warpinator";
-  version = "1.0.8";
+  version = "1.2.5";
 
   format = "other";
 
@@ -22,7 +22,7 @@ python3.pkgs.buildPythonApplication rec  {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "0n1b50j2w76qnhfj5yg5q2j7fgxr9gbmzpazmbml4q41h8ybcmxm";
+    hash = "sha256-pTLM4CrkBLEZS9IdM9IBSGH0WPOj1rlAgvWLOUy6MxY=";
   };
 
   nativeBuildInputs = [
@@ -54,6 +54,10 @@ python3.pkgs.buildPythonApplication rec  {
     netifaces
   ];
 
+  mesonFlags = [
+    "-Dbundle-zeroconf=false"
+  ];
+
   postPatch = ''
     chmod +x install-scripts/*
     patchShebangs .
@@ -73,6 +77,6 @@ python3.pkgs.buildPythonApplication rec  {
     description = "Share files across the LAN";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = [ maintainers.mkg20001 ];
+    maintainers = teams.cinnamon.members;
   };
 }
diff --git a/pkgs/desktops/cinnamon/xapps/default.nix b/pkgs/desktops/cinnamon/xapps/default.nix
index 011c5c2906f49..dfde8773ec061 100644
--- a/pkgs/desktops/cinnamon/xapps/default.nix
+++ b/pkgs/desktops/cinnamon/xapps/default.nix
@@ -10,7 +10,8 @@
 , ninja
 , pkg-config
 , python3
-, lib, stdenv
+, lib
+, stdenv
 , vala
 , wrapGAppsHook
 , inxi
@@ -21,7 +22,7 @@
 
 stdenv.mkDerivation rec {
   pname = "xapps";
-  version = "2.2.3";
+  version = "2.2.5";
 
   outputs = [ "out" "dev" ];
 
@@ -29,7 +30,7 @@ stdenv.mkDerivation rec {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "sha256-hrSyoHA3XQXQb9N3YJ+NNfBjJNOuUhXhKEimh/n73MM=";
+    hash = "sha256-Ev+gTl9jY1HLbXKnCsVVSsY8ZrHyzsIkp+JTaXOTm6I=";
   };
 
   # TODO: https://github.com/NixOS/nixpkgs/issues/36468
@@ -48,7 +49,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     gobject-introspection
-    (python3.withPackages(ps: with ps; [
+    (python3.withPackages (ps: with ps; [
       pygobject3
       setproctitle # mate applet
     ]))
diff --git a/pkgs/desktops/cinnamon/xreader/default.nix b/pkgs/desktops/cinnamon/xreader/default.nix
new file mode 100644
index 0000000000000..147c36cbda40c
--- /dev/null
+++ b/pkgs/desktops/cinnamon/xreader/default.nix
@@ -0,0 +1,76 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, glib
+, gobject-introspection
+, intltool
+, shared-mime-info
+, gtk3
+, wrapGAppsHook
+, libxml2
+, xapps
+, meson
+, pkg-config
+, cairo
+, libsecret
+, poppler
+, libspectre
+, libgxps
+, webkitgtk
+, nodePackages
+, ninja
+, gsettings-desktop-schemas
+, djvulibre
+, backends ? [ "pdf" "ps" /* "dvi" "t1lib" */ "djvu" "tiff" "pixbuf" "comics" "xps" "epub" ]
+}:
+
+stdenv.mkDerivation rec {
+  pname = "xreader";
+  version = "3.2.2";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-rAPc4RF2uXp1hI8/8PXDYy3DnL5vNR8rF/EEixO0FXI=";
+  };
+
+  nativeBuildInputs = [
+    shared-mime-info
+    wrapGAppsHook
+    meson
+    ninja
+    pkg-config
+    gobject-introspection
+    intltool
+  ];
+
+  mesonFlags = [
+    "-Dmathjax-directory=${nodePackages.mathjax}"
+    "-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
+  ] ++ (map (x: "-D${x}=true") backends);
+
+  buildInputs = [
+    glib
+    gtk3
+    xapps
+    cairo
+    libxml2
+    libsecret
+    poppler
+    libspectre
+    libgxps
+    webkitgtk
+    nodePackages.mathjax
+    djvulibre
+  ];
+
+  meta = with lib; {
+    description = "A document viewer capable of displaying multiple and single page
+document formats like PDF and Postscript";
+    homepage = "https://github.com/linuxmint/xreader";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = teams.cinnamon.members;
+  };
+}
diff --git a/pkgs/desktops/cinnamon/xviewer/default.nix b/pkgs/desktops/cinnamon/xviewer/default.nix
index 20c36827cb08c..e8fb0f1f5c995 100644
--- a/pkgs/desktops/cinnamon/xviewer/default.nix
+++ b/pkgs/desktops/cinnamon/xviewer/default.nix
@@ -21,17 +21,18 @@
 , shared-mime-info
 , wrapGAppsHook
 , xapps
-, yelp-tools }:
+, yelp-tools
+}:
 
 stdenv.mkDerivation rec {
   pname = "xviewer";
-  version = "3.0.2";
+  version = "3.2.2";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "sha256-hvoTb9afyVdcm5suB1ZxkxUyNFSVRFjYuNVc0jE3RF0=";
+    sha256 = "sha256-FFRms4yh7TQ/O3ee7igeIslimSWLhue3BE1xCrJ3NQ4=";
   };
 
   nativeBuildInputs = [
@@ -65,6 +66,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/linuxmint/xviewer";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ tu-maurice ];
+    maintainers = with maintainers; [ tu-maurice ] ++ teams.cinnamon.members;
   };
 }
diff --git a/pkgs/desktops/gnome-2/platform/ORBit2/default.nix b/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
index ab76e0c64fd18..bf5ae4ebbb1a5 100644
--- a/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
+++ b/pkgs/desktops/gnome-2/platform/ORBit2/default.nix
@@ -22,8 +22,16 @@ stdenv.mkDerivation rec {
     moveToOutput "bin/orbit2-config" "$dev"
   '';
 
+  # Parallel build fails due to missing internal library dependency:
+  #    libtool --tag=CC   --mode=link gcc ... -o orbit-name-server-2 ...
+  #    ld: cannot find libname-server-2.a: No such file or directory
+  # It happens because orbit-name-server-2 should have libname-server-2.a
+  # in _DEPENDENCIES but does not. Instead of fixing it and regenerating
+  # Makefile.in let's just disable parallel build.
+  enableParallelBuilding = false;
+
   meta = with lib; {
-    homepage    = "https://projects.gnome.org/ORBit2/";
+    homepage    = "https://developer-old.gnome.org/ORBit2/";
     description = "A CORBA 2.4-compliant Object Request Broker";
     platforms   = platforms.unix;
     maintainers = with maintainers; [ lovek323 ];
diff --git a/pkgs/desktops/gnome/apps/cheese/default.nix b/pkgs/desktops/gnome/apps/cheese/default.nix
index 38754a5569388..a6d70d162c08d 100644
--- a/pkgs/desktops/gnome/apps/cheese/default.nix
+++ b/pkgs/desktops/gnome/apps/cheese/default.nix
@@ -34,13 +34,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cheese";
-  version = "41.0";
+  version = "41.1";
 
   outputs = [ "out" "man" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/cheese/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "EG8d9n4c9Bwqp5yZveZ2rskA2wNstSX6EIObBhh9Ivk=";
+    sha256 = "UilgyihzD/ZkOQcLBEGMngpLtVVg11v+CLIY2ixn5Uc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/apps/ghex/default.nix b/pkgs/desktops/gnome/apps/ghex/default.nix
index 6275bcd3fc654..d12c8f61017c0 100644
--- a/pkgs/desktops/gnome/apps/ghex/default.nix
+++ b/pkgs/desktops/gnome/apps/ghex/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ghex";
-  version = "3.41.0";
+  version = "3.41.1";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/ghex/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "KcdG8ihzteQVvDly29PdYNalH3CA5qPpVsNNZHrjRKI=";
+    sha256 = "i3nPAJ6uXEfK0KtT4hmcOm+y86thh381m+1SR3DuYfc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/apps/gnome-boxes/default.nix b/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
index fa0f590b5f5b0..91711ecb28f66 100644
--- a/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-boxes/default.nix
@@ -55,11 +55,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-boxes";
-  version = "41.1";
+  version = "41.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "1wzhm8n485cqhbai4qshgrwl05ix881g8gjshilrj6vg8p1li79h";
+    sha256 = "u3G2zflFOBjyblV0Tl5ZUN2TJ5PQ6Ot+n/h78Mvvwz0=";
   };
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
index 89b6b1e384c3a..db353165c28d6 100644
--- a/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
@@ -24,11 +24,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-calendar";
-  version = "41.1";
+  version = "41.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "m1EmsjPhuPic9MIyYIlXHYKakwPsieplz2IWTmp0IuE=";
+    sha256 = "lWsvGQMiZRxn/mZyI4lviqWs8ztwraWjsFpTYb2mYRo=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/apps/gnome-connections/default.nix b/pkgs/desktops/gnome/apps/gnome-connections/default.nix
index 5f69b30217ec7..83e88059f8064 100644
--- a/pkgs/desktops/gnome/apps/gnome-connections/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-connections/default.nix
@@ -22,11 +22,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-connections";
-  version = "41.1";
+  version = "41.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-ia9eWM2D6mLl+abwMadKOFUIW6KS8OqFgGQIs6+DTug=";
+    hash = "sha256-WrmUKPPOn4qDdDK2e3XbxSi5U6QpOotWVE34g0b+VxM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/apps/gnome-maps/default.nix b/pkgs/desktops/gnome/apps/gnome-maps/default.nix
index 0b29f89d463e9..8fd993080693c 100644
--- a/pkgs/desktops/gnome/apps/gnome-maps/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-maps/default.nix
@@ -29,11 +29,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-maps";
-  version = "41.1";
+  version = "41.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-XtyUpXlHDO1HztKSxUq6Z8vnBIGOF0BsCQwB1Dlb4a0=";
+    sha256 = "sha256-gYIbTK/GQc1QDXOzMMY85aBahPBDBxbWPoizyuqs/Qw=";
   };
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix b/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix
index 0337f70a20e51..a883067e7804c 100644
--- a/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-power-manager/default.nix
@@ -51,7 +51,7 @@ in stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    homepage = "https://projects-old.gnome.org/gnome-power-manager/";
+    homepage = "https://gitlab.gnome.org/GNOME/gnome-power-manager";
     description = "View battery and power statistics provided by UPower";
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
diff --git a/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix b/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
new file mode 100644
index 0000000000000..22f9ac176aad5
--- /dev/null
+++ b/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
@@ -0,0 +1,77 @@
+{ lib
+, stdenv
+, meson
+, fetchurl
+, python3
+, pkg-config
+, gtk4
+, glib
+, gtksourceview5
+, gsettings-desktop-schemas
+, wrapGAppsHook4
+, ninja
+, gnome
+, enchant
+, icu
+, itstool
+, libadwaita
+, libxml2
+, pcre
+, appstream-glib
+, desktop-file-utils
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-text-editor";
+  version = "41.1";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/gnome-text-editor/${lib.versions.major version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-YZ7FINbgkF1DEWcCTkPc4Nv2o0Xy1IaTUB1w3HYm+GE=";
+  };
+
+  nativeBuildInputs = [
+    appstream-glib
+    desktop-file-utils
+    itstool
+    libxml2 # for xmllint
+    meson
+    ninja
+    pkg-config
+    python3
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [
+    enchant
+    icu
+    glib
+    gsettings-desktop-schemas
+    gtk4
+    gtksourceview5
+    libadwaita
+    pcre
+  ];
+
+  postPatch = ''
+    chmod +x build-aux/meson/postinstall.py
+    patchShebangs build-aux/meson/postinstall.py
+    substituteInPlace build-aux/meson/postinstall.py \
+      --replace "gtk-update-icon-cache" "gtk4-update-icon-cache"
+  '';
+
+
+  passthru = {
+    updateScript = gnome.updateScript {
+      packageName = "gnome-text-editor";
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://gitlab.gnome.org/GNOME/gnome-text-editor";
+    description = "A Text Editor for GNOME";
+    maintainers = teams.gnome.members;
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/desktops/gnome/core/caribou/default.nix b/pkgs/desktops/gnome/core/caribou/default.nix
index 50fb1c3de569b..2afb65d528e10 100644
--- a/pkgs/desktops/gnome/core/caribou/default.nix
+++ b/pkgs/desktops/gnome/core/caribou/default.nix
@@ -1,6 +1,6 @@
 { fetchurl, lib, stdenv, pkg-config, gnome, glib, gtk3, clutter, dbus, python3, libxml2
 , libxklavier, libXtst, gtk2, intltool, libxslt, at-spi2-core, autoreconfHook
-, wrapGAppsHook, libgee, vala_0_40 }:
+, wrapGAppsHook, libgee, vala }:
 
 let
   pname = "caribou";
@@ -21,6 +21,11 @@ in stdenv.mkDerivation rec {
       url = "https://bugzilla.gnome.org/attachment.cgi?id=364774";
       sha256 = "15k1455grf6knlrxqbjnk7sals1730b0whj30451scp46wyvykvd";
     })
+    # Stop patching the generated GIR, fixes build with latest vala
+    (fetchurl {
+      url = "https://gitlab.gnome.org/GNOME/caribou/-/commit/c52ce71c49dc8d6109a58d16cc8d491d7bd1d781.patch";
+      sha256 = "sha256-jbF1Ygp8Q0ENN/5aEpROuK5zkufIfn6cGW8dncl7ET4=";
+    })
     (fetchurl {
       name = "fix-build-modern-vala.patch";
       url = "https://gitlab.gnome.org/GNOME/caribou/-/commit/76fbd11575f918fc898cb0f5defe07f67c11ec38.patch";
@@ -33,7 +38,7 @@ in stdenv.mkDerivation rec {
     })
   ];
 
-  nativeBuildInputs = [ pkg-config intltool libxslt libxml2 autoreconfHook wrapGAppsHook vala_0_40 ];
+  nativeBuildInputs = [ pkg-config intltool libxslt libxml2 autoreconfHook wrapGAppsHook vala ];
 
   buildInputs = [
     glib gtk3 clutter at-spi2-core dbus pythonEnv python3.pkgs.pygobject3
diff --git a/pkgs/desktops/gnome/core/eog/default.nix b/pkgs/desktops/gnome/core/eog/default.nix
index 67ecf9f5c13c8..620f7e7d9c135 100644
--- a/pkgs/desktops/gnome/core/eog/default.nix
+++ b/pkgs/desktops/gnome/core/eog/default.nix
@@ -28,11 +28,11 @@
 
 stdenv.mkDerivation rec {
   pname = "eog";
-  version = "41.0";
+  version = "41.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-kX3ghv2X/T7JMPoHyIut0r4fXQrmueVpyYYATgNZqaw=";
+    sha256 = "sha256-huG5ujnaz3QiavpFermDtBJTuJ9he/VBOcrQiS0C2Kk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/epiphany/default.nix b/pkgs/desktops/gnome/core/epiphany/default.nix
index 6f99655206470..0baab20acec92 100644
--- a/pkgs/desktops/gnome/core/epiphany/default.nix
+++ b/pkgs/desktops/gnome/core/epiphany/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , meson
 , ninja
 , gettext
@@ -40,21 +41,14 @@
 
 stdenv.mkDerivation rec {
   pname = "epiphany";
-  version = "41.0";
+  version = "41.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "s50YJUkllbC3TF1qZoaoV/lBnfpMAvgBPCl7yHDibdA=";
+    sha256 = "ugEmjuVPMY39rC4B66OKP8lpQMHL9kDtJhOuKfi8ua0=";
   };
 
-  patches = [
-    # tab-view: Update close button position on startup
-    # https://gitlab.gnome.org/GNOME/epiphany/-/merge_requests/1025
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/epiphany/-/commit/6e9d6d3cf7fa7ddf21a70e9816a5cd4767a79523.patch";
-      sha256 = "sha256-lBVliGCIKwTvsYnWjAcmJxhTg1HS/2x4wlOh+4sx/xQ=";
-    })
-  ] ++ lib.optionals withPantheon [
+  patches = lib.optionals withPantheon [
     # Pantheon specific patches for epiphany
     # https://github.com/elementary/browser
     #
diff --git a/pkgs/desktops/gnome/core/evince/default.nix b/pkgs/desktops/gnome/core/evince/default.nix
index 45812dbc901a3..74987c07a5b92 100644
--- a/pkgs/desktops/gnome/core/evince/default.nix
+++ b/pkgs/desktops/gnome/core/evince/default.nix
@@ -1,5 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
+, fetchpatch
 , meson
 , ninja
 , pkg-config
@@ -46,20 +48,23 @@
 
 stdenv.mkDerivation rec {
   pname = "evince";
-  version = "41.2";
+  version = "41.3";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evince/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "lautDW/urJVg2zq4C6fF6rsf3xyg47PJMzmvBUU6JNg=";
+    sha256 = "M0awH5vcjy1f/qkvEQoJDGSjYklCtbVDqtRZKp3jO7A=";
   };
 
   patches = lib.optionals withPantheon [
     # Make this respect dark mode settings from Pantheon
-    # https://github.com/elementary/evince
-    # The patch currently differs from upstream (updated for evince 41).
-    ./pantheon-dark-style.patch
+    # https://github.com/elementary/evince/pull/21
+    # https://github.com/elementary/evince/pull/31
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/elementary/evince/c8364019ee2c2dffd2a1bccf79b8f4e526aa22af/dark-style.patch";
+      sha256 = "sha256-nKELRXnM6gMRTGmWdO1Qqlo9ciy+4HOK5z2CYOoi2Lo=";
+    })
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome/core/evince/pantheon-dark-style.patch b/pkgs/desktops/gnome/core/evince/pantheon-dark-style.patch
deleted file mode 100644
index 5e1ef67b08cd4..0000000000000
--- a/pkgs/desktops/gnome/core/evince/pantheon-dark-style.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-diff --git a/meson.build b/meson.build
-index bcb69cf7..4a18c08c 100644
---- a/meson.build
-+++ b/meson.build
-@@ -162,6 +162,7 @@ gmodule_dep = dependency('gmodule-2.0')
- gmodule_no_export_dep = dependency('gmodule-no-export-2.0', version: glib_req_version)
- gtk_dep = dependency('gtk+-3.0', version: gtk_req_version)
- gthread_dep = dependency('gthread-2.0', version: glib_req_version)
-+granite_dep = dependency('granite')
- # Keep the version here synchronised with subprojects/libhandy.wrap
- hdy_dep = dependency('libhandy-1', version: hdy_req_version, fallback: ['libhandy', 'libhandy_dep'])
- 
-diff --git a/shell/ev-application.c b/shell/ev-application.c
-index e704bda2..d705328c 100644
---- a/shell/ev-application.c
-+++ b/shell/ev-application.c
-@@ -30,6 +30,7 @@
- #include <glib/gi18n.h>
- #include <glib/gstdio.h>
- #include <gtk/gtk.h>
-+#include <granite.h>
- #include <handy.h>
- #ifdef GDK_WINDOWING_X11
- #include <gdk/gdkx.h>
-@@ -176,7 +177,7 @@ ev_spawn (const char     *uri,
- 
- 	g_string_append_printf (cmd, " %s", path);
- 	g_free (path);
--	
-+
- 	/* Page label */
- 	if (dest) {
-                 switch (ev_link_dest_get_dest_type (dest)) {
-@@ -940,6 +941,20 @@ ev_application_migrate_config_dir (EvApplication *application)
-         g_free (old_accels);
- }
- 
-+static void
-+ev_application_set_prefers_color_scheme ()
-+{
-+        GtkSettings* gtk_settings = gtk_settings_get_default ();
-+        GraniteSettings* granite_settings = granite_settings_get_default ();
-+
-+        g_object_set (
-+          gtk_settings,
-+          "gtk-application-prefer-dark-theme",
-+          granite_settings_get_prefers_color_scheme (granite_settings) == GRANITE_SETTINGS_COLOR_SCHEME_DARK,
-+          NULL
-+        );
-+}
-+
- static void
- ev_application_startup (GApplication *gapplication)
- {
-@@ -992,6 +1007,7 @@ ev_application_startup (GApplication *gapplication)
- 
-         EvApplication *application = EV_APPLICATION (gapplication);
-         const gchar **it;
-+        GraniteSettings* granite_settings = granite_settings_get_default ();
- 
- 	g_application_set_resource_base_path (gapplication, "/org/gnome/evince");
- 
-@@ -999,6 +1015,11 @@ ev_application_startup (GApplication *gapplication)
- 
-         hdy_init ();
- 
-+        ev_application_set_prefers_color_scheme ();
-+
-+        g_signal_connect (granite_settings, "notify::prefers-color-scheme",
-+          G_CALLBACK(ev_application_set_prefers_color_scheme), NULL);
-+
-         for (it = action_accels; it[0]; it += g_strv_length ((gchar **)it) + 1)
-                 gtk_application_set_accels_for_action (GTK_APPLICATION (application), it[0], &it[1]);
- }
-diff --git a/shell/meson.build b/shell/meson.build
-index 7cbc48f2..a3089b13 100644
---- a/shell/meson.build
-+++ b/shell/meson.build
-@@ -52,6 +52,7 @@ sources += gnome.compile_resources(
- deps = [
-   gdk_pixbuf_dep,
-   gnome_desktop_dep,
-+  granite_dep,
-   hdy_dep,
-   libevmisc_dep,
-   libevproperties_dep,
diff --git a/pkgs/desktops/gnome/core/evolution-data-server/default.nix b/pkgs/desktops/gnome/core/evolution-data-server/default.nix
index 9c1fd1658ec18..c4eaeea9b395e 100644
--- a/pkgs/desktops/gnome/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome/core/evolution-data-server/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution-data-server";
-  version = "3.42.1";
+  version = "3.42.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "5uZ/KnfQ/z5tpQsD3F+iZucWYmvNou9EFE4xfjXy9Sg=";
+    sha256 = "HBTYbnoNjm5PGpYTfjGmGdK8+/yArR8OrDje4sAkerw=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/core/gnome-calculator/default.nix b/pkgs/desktops/gnome/core/gnome-calculator/default.nix
index 58c079078d64c..6a7a8ccec06b9 100644
--- a/pkgs/desktops/gnome/core/gnome-calculator/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-calculator/default.nix
@@ -26,11 +26,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-calculator";
-  version = "41.0";
+  version = "41.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-calculator/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "pm3AS9hYfnbWc3Wmrvp5VTtWnJvfeOvcKBfxwK3j3Jk=";
+    sha256 = "AmdhSv2yXTi3hBG0Lrq3vFDBtjQMxJu2jA5DLX3fijQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/gnome-control-center/default.nix b/pkgs/desktops/gnome/core/gnome-control-center/default.nix
index d60b64b78aabd..85cfa8bf3144a 100644
--- a/pkgs/desktops/gnome/core/gnome-control-center/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-control-center/default.nix
@@ -60,7 +60,7 @@
 , tzdata
 , udisks2
 , upower
-, epoxy
+, libepoxy
 , gnome-user-share
 , gnome-remote-desktop
 , wrapGAppsHook
@@ -68,11 +68,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-control-center";
-  version = "41.1";
+  version = "41.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-6gxxSExlzizBE3b5sB5iEfpKf/0zT0MH/FLJPw/d1Mc=";
+    sha256 = "sha256-gnH8azPsJBileDBN0+V9Zl8NfMcGqZqXvkGYSGGP4kg=";
   };
 
   patches = [
@@ -105,7 +105,7 @@ stdenv.mkDerivation rec {
     clutter-gtk
     colord
     colord-gtk
-    epoxy
+    libepoxy
     fontconfig
     gdk-pixbuf
     glib
diff --git a/pkgs/desktops/gnome/core/gnome-desktop/default.nix b/pkgs/desktops/gnome/core/gnome-desktop/default.nix
index 766ed1b7cfb54..b67a057fa3a43 100644
--- a/pkgs/desktops/gnome/core/gnome-desktop/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-desktop/default.nix
@@ -75,6 +75,8 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Dgtk_doc=true"
     "-Ddesktop_docs=false"
+    "-Ddate_in_gnome_version=false"
+    "-Dgnome_distributor=NixOS"
   ];
 
   separateDebugInfo = stdenv.isLinux;
diff --git a/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix b/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
index ff1d95861e375..7ce00ac8f82c4 100644
--- a/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
@@ -35,11 +35,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-initial-setup";
-  version = "41.0";
+  version = "41.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "R/ZHW2bIQ+fVPZC6Dns5SHYt8VFjSkNvaMK5u6BQVgo=";
+    sha256 = "GTr79qMILaCjKncU8ejVKo20Vycpde0vNlQ2SjM5Gz8=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
index 2ab3091edec11..0f35b15bee9ca 100644
--- a/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
@@ -22,11 +22,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-remote-desktop";
-  version = "41.1";
+  version = "41.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    hash = "sha256-wOiJsO2BGxGAm777FzOElNj1L/USC+bj/9O65angX98=";
+    hash = "sha256-EBUeabZIwiR8XjPZou9Bn04DfuWyuuSebtasp36xulg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/gnome-screenshot/default.nix b/pkgs/desktops/gnome/core/gnome-screenshot/default.nix
index 5b02fda3e32ff..ba6d05b3cbf88 100644
--- a/pkgs/desktops/gnome/core/gnome-screenshot/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-screenshot/default.nix
@@ -4,13 +4,13 @@
 
 let
   pname = "gnome-screenshot";
-  version = "40.0";
+  version = "41.0";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${name}.tar.xz";
-    sha256 = "1qm544ymwibk31s30k47vnn79xg30m18r7l4di0c57g375dak31n";
+    sha256 = "Stt97JJkKPdCY9V5ZnPPFC5HILbnaPVGio0JM/mMlZc=";
   };
 
   doCheck = true;
diff --git a/pkgs/desktops/gnome/core/gnome-session/default.nix b/pkgs/desktops/gnome/core/gnome-session/default.nix
index c1ebc43620715..3ba6958fad0e3 100644
--- a/pkgs/desktops/gnome/core/gnome-session/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-session/default.nix
@@ -1,6 +1,6 @@
 { fetchurl, lib, stdenv, 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, epoxy, gnugrep, bash, gnome-session-ctl }:
+, libxslt, gettext, makeWrapper, systemd, xorg, libepoxy, gnugrep, bash, gnome-session-ctl }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-session";
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib gtk3 libICE gnome-desktop json-glib xorg.xtrans gnome.adwaita-icon-theme
-    gnome.gnome-settings-daemon gsettings-desktop-schemas systemd epoxy
+    gnome.gnome-settings-daemon gsettings-desktop-schemas systemd libepoxy
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
index 25f7fb93ab303..437da36a7a3b8 100644
--- a/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extensions";
-  version = "41.0";
+  version = "41.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell-extensions/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "2E+qwUSLOPl12cGUkMWSivxcWixJ3X5/ga9pD5Rm/Gg=";
+    sha256 = "0ObyJz8I1S2SX8K7ZrR7KOXvUNG4oUAgh3xmJCPVB9M=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/core/gnome-shell/default.nix b/pkgs/desktops/gnome/core/gnome-shell/default.nix
index d9eeb9a8d8b13..5e03551dceca0 100644
--- a/pkgs/desktops/gnome/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-shell/default.nix
@@ -66,13 +66,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "gnome-shell";
-  version = "41.1";
+  version = "41.2";
 
   outputs = [ "out" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "X3QkVt/gBgXA8JCjcoymJ5e8SeUK+FK71yhdoaBRf/Y=";
+    sha256 = "OEZR6wUTk9ur4AbRrQV78p1c1z67h7x3n/Xhwx6AqCc=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/core/gnome-software/default.nix b/pkgs/desktops/gnome/core/gnome-software/default.nix
index 61edbe9679d61..848c6102fbec7 100644
--- a/pkgs/desktops/gnome/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-software/default.nix
@@ -42,11 +42,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gnome-software";
-  version = "41.1";
+  version = "41.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-software/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "eil3Ziga8tvsyssQJMcT7ISYxoJ++RJG6d6Grpof4Xs=";
+    sha256 = "OErdrMh4QlOoeXGBSweS+9LJQfpEiw+UOLv1dJgszBc=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/core/gnome-terminal/default.nix b/pkgs/desktops/gnome/core/gnome-terminal/default.nix
index 1c905eec41b76..69fb69261f987 100644
--- a/pkgs/desktops/gnome/core/gnome-terminal/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-terminal/default.nix
@@ -27,11 +27,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-terminal";
-  version = "3.42.1";
+  version = "3.42.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-terminal/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "wxmxQFUBuMdpPmFvSOztQWldLnhhSMpfnie8fZj0rrE=";
+    sha256 = "ipyOXvejpzskapR+EZC7COyYk1r4YM8LOqL79GBoF6A=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/mutter/default.nix b/pkgs/desktops/gnome/core/mutter/default.nix
index 209d9fbdb92ac..17145ccadfe45 100644
--- a/pkgs/desktops/gnome/core/mutter/default.nix
+++ b/pkgs/desktops/gnome/core/mutter/default.nix
@@ -46,13 +46,13 @@
 
 let self = stdenv.mkDerivation rec {
   pname = "mutter";
-  version = "41.1";
+  version = "41.2";
 
   outputs = [ "out" "dev" "man" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/mutter/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "WOY/0LxD81E08hMTr/Suv5LIKdbfTcmaBEoeN2aR4/M=";
+    sha256 = "AN+oEvHEhtdKK3P0IEWuEYL5JGx3lNZ9dLXlQ+pwBhc=";
   };
 
   patches = [
@@ -136,7 +136,7 @@ let self = stdenv.mkDerivation rec {
   PKG_CONFIG_UDEV_UDEVDIR = "${placeholder "out"}/lib/udev";
 
   passthru = {
-    libdir = "${self}/lib/mutter-8";
+    libdir = "${self}/lib/mutter-9";
 
     tests = {
       libdirExists = runCommand "mutter-libdir-exists" {} ''
diff --git a/pkgs/desktops/gnome/core/simple-scan/default.nix b/pkgs/desktops/gnome/core/simple-scan/default.nix
index f5a28ead33c17..0865fbb5aca72 100644
--- a/pkgs/desktops/gnome/core/simple-scan/default.nix
+++ b/pkgs/desktops/gnome/core/simple-scan/default.nix
@@ -25,11 +25,11 @@
 
 stdenv.mkDerivation rec {
   pname = "simple-scan";
-  version = "40.6";
+  version = "40.7";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-8v8wWZjMRGNsH93iDNirHUQdSGOgWeLXpg+Od6/o8XE=";
+    sha256 = "sha256-fFUYUsta99NKqYn4rV7ePL4xgoz43VrsKytv3NGsPVM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/sushi/default.nix b/pkgs/desktops/gnome/core/sushi/default.nix
index f08f51512c473..00ac8e40aad0e 100644
--- a/pkgs/desktops/gnome/core/sushi/default.nix
+++ b/pkgs/desktops/gnome/core/sushi/default.nix
@@ -8,7 +8,8 @@
 , gnome
 , gtksourceview4
 , gjs
-, webkitgtk_4_1
+, libsoup
+, webkitgtk
 , icu
 , wrapGAppsHook
 , gst_all_1
@@ -17,7 +18,7 @@
 , gtk3
 , harfbuzz
 , ninja
-, epoxy
+, libepoxy
 }:
 
 stdenv.mkDerivation rec {
@@ -48,11 +49,14 @@ stdenv.mkDerivation rec {
     gtksourceview4
     gdk-pixbuf
     librsvg
-    webkitgtk_4_1
-    epoxy
+    libsoup
+    webkitgtk
+    libepoxy
     gst_all_1.gstreamer
     gst_all_1.gst-plugins-base
     gst_all_1.gst-plugins-good
+    gst_all_1.gst-plugins-bad
+    gst_all_1.gst-plugins-ugly
   ];
 
   # See https://github.com/NixOS/nixpkgs/issues/31168
diff --git a/pkgs/desktops/gnome/core/yelp-xsl/default.nix b/pkgs/desktops/gnome/core/yelp-xsl/default.nix
index 8b091e000bad6..6fac906e4ba94 100644
--- a/pkgs/desktops/gnome/core/yelp-xsl/default.nix
+++ b/pkgs/desktops/gnome/core/yelp-xsl/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yelp-xsl";
-  version = "41.0";
+  version = "41.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/yelp-xsl/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-yM1kwJO72MXV5H/TiGTpCDG1+c90A1MIcCBvqWY2pKU=";
+    sha256 = "sha256-DW2zesLvgSSD4BBHA/H6nPAy6eCVal8cOvvMI3kfilQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/yelp/default.nix b/pkgs/desktops/gnome/core/yelp/default.nix
index b1e094292bf12..4b3ee62dcee4d 100644
--- a/pkgs/desktops/gnome/core/yelp/default.nix
+++ b/pkgs/desktops/gnome/core/yelp/default.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yelp";
-  version = "41.1";
+  version = "41.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/yelp/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-RWpkFWR7zusBWbkLNVP/MocozymmCPzggCQjJQTMuHQ=";
+    sha256 = "sha256-sAvwM/At15ttPyVQMccd+NbtOOVSyHC485GjdHJMQ8U=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/extensions/README.md b/pkgs/desktops/gnome/extensions/README.md
index 14a1d08ad04dd..5586aae403dd9 100644
--- a/pkgs/desktops/gnome/extensions/README.md
+++ b/pkgs/desktops/gnome/extensions/README.md
@@ -4,7 +4,7 @@ All extensions are packaged automatically. They can be found in the `pkgs.gnomeX
 
 ## Automatically packaged extensions
 
-The actual packages are created by `buildGnomeExtensions.nix`, provided the correct arguments are fed into it. The important extension data is stored in `extensions.json`, one line/item per extension. That file is generated by running `update-extensions.py`. Furthermore, the automatic generated names are dumped in `collisions.json` for manual inspection. `extensionRenames.nix` contains provides new names for all extensions that collide.
+The actual packages are created by `buildGnomeExtension.nix`, provided the correct arguments are fed into it. The important extension data is stored in `extensions.json`, one line/item per extension. That file is generated by running `update-extensions.py`. Furthermore, the automatic generated names are dumped in `collisions.json` for manual inspection. `extensionRenames.nix` contains new names for all extensions that collide.
 
 ### Extensions updates
 
@@ -20,6 +20,7 @@ For GNOME updates,
 3. Update `supported_versions` in `./update-extensions.py` and re-run it
 4. Change `gnomeExtensions` to the new version
 5. Update `./extensionsRenames.nix` accordingly
+6. Update `all-packages.nix` accordingly (grep for `gnomeExtensions`)
 
 ## Manually packaged extensions
 
diff --git a/pkgs/desktops/gnome/extensions/arcmenu/default.nix b/pkgs/desktops/gnome/extensions/arcmenu/default.nix
index 68898fa42b0ea..c245d593d3964 100644
--- a/pkgs/desktops/gnome/extensions/arcmenu/default.nix
+++ b/pkgs/desktops/gnome/extensions/arcmenu/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-arcmenu";
-  version = "14";
+  version = "19";
 
   src = fetchFromGitLab {
     owner = "arcmenu";
     repo = "ArcMenu";
     rev = "v${version}";
-    sha256 = "sha256-Iobu5eNWSvAiTRe6wyx/0PgUtB9QIC9KdH0M1xhsM1I=";
+    sha256 = "sha256-GEeONrrH00Tt9tuxhH7Gv5lSZ2D/hFgeGbUstqJsWZo=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/extensions/extensionOverrides.nix b/pkgs/desktops/gnome/extensions/extensionOverrides.nix
index e8f9fb9cfb33e..b431e7da44279 100644
--- a/pkgs/desktops/gnome/extensions/extensionOverrides.nix
+++ b/pkgs/desktops/gnome/extensions/extensionOverrides.nix
@@ -1,33 +1,58 @@
 { lib
 , ddcutil
 , gjs
+, gnome
+, gobject-introspection
 , xprop
+, touchegg
+, vte
+, wrapGAppsHook
 }:
+let
+  # Helper method to reduce redundancy
+  patchExtension = name: override: super: (super // {
+    ${name} = super.${name}.overrideAttrs override;
+  });
+in
 # A set of overrides for automatically packaged extensions that require some small fixes.
 # The input must be an attribute set with the extensions' UUIDs as keys and the extension
 # derivations as values. Output is the same, but with patches applied.
 #
 # Note that all source patches refer to the built extension as published on extensions.gnome.org, and not
 # the upstream repository's sources.
-super: super // {
-
-  "caffeine@patapon.info" = super."caffeine@patapon.info".overrideAttrs (old: {
+super: lib.trivial.pipe super [
+  (patchExtension "caffeine@patapon.info" (old: {
     meta.maintainers = with lib.maintainers; [ eperuffo ];
-  });
+  }))
 
-  "dash-to-dock@micxgx.gmail.com" = super."dash-to-dock@micxgx.gmail.com".overrideAttrs (old: {
+  (patchExtension "dash-to-dock@micxgx.gmail.com" (old: {
     meta.maintainers = with lib.maintainers; [ eperuffo jtojnar rhoriguchi ];
-  });
+  }))
 
-  "display-brightness-ddcutil@themightydeity.github.com" = super."display-brightness-ddcutil@themightydeity.github.com".overrideAttrs (old: {
+  (patchExtension "ddterm@amezin.github.com" (old: {
+    # Requires gjs, zenity & vte via the typelib
+    nativeBuildInputs = [ gobject-introspection wrapGAppsHook ];
+    buildInputs = [ vte ];
+    postPatch = ''
+      for file in *.js com.github.amezin.ddterm; do
+        substituteInPlace $file --replace "gjs" "${gjs}/bin/gjs"
+        substituteInPlace $file --replace "zenity" "${gnome.zenity}/bin/zenity"
+      done
+    '';
+    postFixup = ''
+      wrapGApp "$out/share/gnome-shell/extensions/ddterm@amezin.github.com/com.github.amezin.ddterm"
+    '';
+  }))
+
+  (patchExtension "display-brightness-ddcutil@themightydeity.github.com" (old: {
     # Has a hard-coded path to a run-time dependency
     # https://github.com/NixOS/nixpkgs/issues/136111
     postPatch = ''
       substituteInPlace "extension.js" --replace "/usr/bin/ddcutil" "${ddcutil}/bin/ddcutil"
     '';
-  });
+  }))
 
-  "gnome-shell-screenshot@ttll.de" = super."gnome-shell-screenshot@ttll.de".overrideAttrs (old: {
+  (patchExtension "gnome-shell-screenshot@ttll.de" (old: {
     # Requires gjs
     # https://github.com/NixOS/nixpkgs/issues/136112
     postPatch = ''
@@ -35,12 +60,20 @@ super: super // {
         substituteInPlace $file --replace "gjs" "${gjs}/bin/gjs"
       done
     '';
-  });
+  }))
 
-  "unite@hardpixel.eu" = super."unite@hardpixel.eu".overrideAttrs (old: {
+  (patchExtension "unite@hardpixel.eu" (old: {
     buildInputs = [ xprop ];
 
     meta.maintainers = with lib.maintainers; [ rhoriguchi ];
-  });
+  }))
 
-}
+  (patchExtension "x11gestures@joseexposito.github.io" (old: {
+    # Extension can't find Touchegg
+    # https://github.com/NixOS/nixpkgs/issues/137621
+    postPatch = ''
+      substituteInPlace "src/touchegg/ToucheggConfig.js" \
+        --replace "GLib.build_filenamev([GLib.DIR_SEPARATOR_S, 'usr', 'share', 'touchegg', 'touchegg.conf'])" "'${touchegg}/share/touchegg/touchegg.conf'"
+    '';
+  }))
+]
diff --git a/pkgs/desktops/gnome/extensions/extensions.json b/pkgs/desktops/gnome/extensions/extensions.json
index 1f983f6e062b6..ef6ee18882e93 100644
--- a/pkgs/desktops/gnome/extensions/extensions.json
+++ b/pkgs/desktops/gnome/extensions/extensions.json
@@ -13,7 +13,7 @@
 , {"uuid": "gTile@vibou", "name": "gTile", "pname": "gtile", "description": "Tile windows on a grid.", "link": "https://extensions.gnome.org/extension/28/gtile/", "shell_version_map": {"38": {"version": "47", "sha256": "0l6b2sl2sfcq2292nbxsq6qq3qwl8ck5ixkzzv2wpazlikkjdwms", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nVGlsZSIsCiAgInV1aWQiOiAiZ1RpbGVAdmlib3UiLAogICJ2ZXJzaW9uIjogNDcKfQ=="}, "40": {"version": "47", "sha256": "0l6b2sl2sfcq2292nbxsq6qq3qwl8ck5ixkzzv2wpazlikkjdwms", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nVGlsZSIsCiAgInV1aWQiOiAiZ1RpbGVAdmlib3UiLAogICJ2ZXJzaW9uIjogNDcKfQ=="}, "41": {"version": "47", "sha256": "0l6b2sl2sfcq2292nbxsq6qq3qwl8ck5ixkzzv2wpazlikkjdwms", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nVGlsZSIsCiAgInV1aWQiOiAiZ1RpbGVAdmlib3UiLAogICJ2ZXJzaW9uIjogNDcKfQ=="}}}
 , {"uuid": "lockkeys@vaina.lt", "name": "Lock Keys", "pname": "lock-keys", "description": "Numlock & Capslock status on the panel", "link": "https://extensions.gnome.org/extension/36/lock-keys/", "shell_version_map": {"38": {"version": "45", "sha256": "0cqkhi8k8lywjsy9g6nbl5kbv8bvz4nql16k1ciajar4443gbz7i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsIiwKICAibmFtZSI6ICJMb2NrIEtleXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEsIFBpZXJyZSBPc3NtYW4sIGVyZ3VpbGxlLCBqb25uaXVzLCBQaGlsaXBwIFdvbGZlciwgTWFyaXVzeiBMaXNvd3NraSwgQ3Jpc3RpYW4gQmVyb2l6YSwgd2FybXN1bjAyMjAsIFJhc211cyBLYWosIFBhYmxvIE1hcnRpbi1Hb21leiBCb3Vza2EsIFJhcGhhXHUwMGVibCBSb2NoZXQsIEx1aXogTmlja2VsLCBKZXNzZSwgRHVcdTAxNjFhbiBLYXppayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2F6eXNtYXN0ZXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxvY2trZXlzIiwKICAidXVpZCI6ICJsb2Nra2V5c0B2YWluYS5sdCIsCiAgInZlcnNpb24iOiA0NQp9"}, "40": {"version": "45", "sha256": "0cqkhi8k8lywjsy9g6nbl5kbv8bvz4nql16k1ciajar4443gbz7i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsIiwKICAibmFtZSI6ICJMb2NrIEtleXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEsIFBpZXJyZSBPc3NtYW4sIGVyZ3VpbGxlLCBqb25uaXVzLCBQaGlsaXBwIFdvbGZlciwgTWFyaXVzeiBMaXNvd3NraSwgQ3Jpc3RpYW4gQmVyb2l6YSwgd2FybXN1bjAyMjAsIFJhc211cyBLYWosIFBhYmxvIE1hcnRpbi1Hb21leiBCb3Vza2EsIFJhcGhhXHUwMGVibCBSb2NoZXQsIEx1aXogTmlja2VsLCBKZXNzZSwgRHVcdTAxNjFhbiBLYXppayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2F6eXNtYXN0ZXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxvY2trZXlzIiwKICAidXVpZCI6ICJsb2Nra2V5c0B2YWluYS5sdCIsCiAgInZlcnNpb24iOiA0NQp9"}, "41": {"version": "45", "sha256": "0cqkhi8k8lywjsy9g6nbl5kbv8bvz4nql16k1ciajar4443gbz7i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsIiwKICAibmFtZSI6ICJMb2NrIEtleXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkthemltaWVyYXMgVmFpbmEsIFBpZXJyZSBPc3NtYW4sIGVyZ3VpbGxlLCBqb25uaXVzLCBQaGlsaXBwIFdvbGZlciwgTWFyaXVzeiBMaXNvd3NraSwgQ3Jpc3RpYW4gQmVyb2l6YSwgd2FybXN1bjAyMjAsIFJhc211cyBLYWosIFBhYmxvIE1hcnRpbi1Hb21leiBCb3Vza2EsIFJhcGhhXHUwMGVibCBSb2NoZXQsIEx1aXogTmlja2VsLCBKZXNzZSwgRHVcdTAxNjFhbiBLYXppayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2F6eXNtYXN0ZXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxvY2trZXlzIiwKICAidXVpZCI6ICJsb2Nra2V5c0B2YWluYS5sdCIsCiAgInZlcnNpb24iOiA0NQp9"}}}
 , {"uuid": "putWindow@clemens.lab21.org", "name": "Put Windows", "pname": "put-windows", "description": "Fully customizable replacement for the old compiz put plugin. \n * Move windows to left/right side, bottom/top, center or corner \n * Move window to other screen \n * Select focused window using the keyboard \n * Application based window placement \n\n Please check github if your gnome-shell version is not supported", "link": "https://extensions.gnome.org/extension/39/put-windows/", "shell_version_map": {"38": {"version": "32", "sha256": "1n4hk2sqdbcn25lxk02vljc9xxbidragimvc4b6dj2m72625lx67", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGx5IGN1c3RvbWl6YWJsZSByZXBsYWNlbWVudCBmb3IgdGhlIG9sZCBjb21waXogcHV0IHBsdWdpbi4gXG4gKiBNb3ZlIHdpbmRvd3MgdG8gbGVmdC9yaWdodCBzaWRlLCBib3R0b20vdG9wLCBjZW50ZXIgb3IgY29ybmVyIFxuICogTW92ZSB3aW5kb3cgdG8gb3RoZXIgc2NyZWVuIFxuICogU2VsZWN0IGZvY3VzZWQgd2luZG93IHVzaW5nIHRoZSBrZXlib2FyZCBcbiAqIEFwcGxpY2F0aW9uIGJhc2VkIHdpbmRvdyBwbGFjZW1lbnQgXG5cbiBQbGVhc2UgY2hlY2sgZ2l0aHViIGlmIHlvdXIgZ25vbWUtc2hlbGwgdmVyc2lvbiBpcyBub3Qgc3VwcG9ydGVkIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHV0V2luZG93IiwKICAibmFtZSI6ICJQdXQgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcmctbGFiMjEtcHV0d2luZG93IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmVnZXN0aS9nbm9tZS1zaGVsbC1leHRlbnNpb25zLW5lZ2VzdGkiLAogICJ1dWlkIjogInB1dFdpbmRvd0BjbGVtZW5zLmxhYjIxLm9yZyIsCiAgInZlcnNpb24iOiAzMgp9"}}}
-, {"uuid": "permanent-notifications@bonzini.gnu.org", "name": "Permanent notifications", "pname": "permanent-notifications", "description": "Keep notifications on the message tray until clicked", "link": "https://extensions.gnome.org/extension/41/permanent-notifications/", "shell_version_map": {"40": {"version": "5", "sha256": "1dwqag1sp9gs030qjngzw3ifs1gwamq7c18zh61jzc18xv3f8j0z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgbm90aWZpY2F0aW9ucyBvbiB0aGUgbWVzc2FnZSB0cmF5IHVudGlsIGNsaWNrZWQiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlBlcm1hbmVudCBub3RpZmljYXRpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJib256aW5pQGdudS5vcmciCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuMi4xIiwKICAgICIzLjQiLAogICAgIjMuMy45MCIsCiAgICAiMy4zLjkxIiwKICAgICIzLjMuOTIiLAogICAgIjMuNiIsCiAgICAiMy40LjEiLAogICAgIjMuMy45MyIsCiAgICAiMy4zLjk0IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ib256aW5pL2dub21lLXNoZWxsLXBlcm1hbmVudC1ub3RpZmljYXRpb25zIiwKICAidXVpZCI6ICJwZXJtYW5lbnQtbm90aWZpY2F0aW9uc0Bib256aW5pLmdudS5vcmciLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "permanent-notifications@bonzini.gnu.org", "name": "Permanent notifications", "pname": "permanent-notifications", "description": "Keep notifications on the message tray until clicked", "link": "https://extensions.gnome.org/extension/41/permanent-notifications/", "shell_version_map": {"40": {"version": "7", "sha256": "1zlxvn9c4ydpvkja6vpyvif21rfi1y86rzi0iqms5mk8in4cgx41", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgbm90aWZpY2F0aW9ucyBvbiB0aGUgbWVzc2FnZSB0cmF5IHVudGlsIGNsaWNrZWQiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlBlcm1hbmVudCBub3RpZmljYXRpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJib256aW5pQGdudS5vcmciCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuMi4xIiwKICAgICIzLjQiLAogICAgIjMuMy45MCIsCiAgICAiMy4zLjkxIiwKICAgICIzLjMuOTIiLAogICAgIjMuNiIsCiAgICAiMy40LjEiLAogICAgIjMuMy45MyIsCiAgICAiMy4zLjk0IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JvbnppbmkvZ25vbWUtc2hlbGwtcGVybWFuZW50LW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogInBlcm1hbmVudC1ub3RpZmljYXRpb25zQGJvbnppbmkuZ251Lm9yZyIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "1zlxvn9c4ydpvkja6vpyvif21rfi1y86rzi0iqms5mk8in4cgx41", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgbm90aWZpY2F0aW9ucyBvbiB0aGUgbWVzc2FnZSB0cmF5IHVudGlsIGNsaWNrZWQiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlBlcm1hbmVudCBub3RpZmljYXRpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJib256aW5pQGdudS5vcmciCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuMi4xIiwKICAgICIzLjQiLAogICAgIjMuMy45MCIsCiAgICAiMy4zLjkxIiwKICAgICIzLjMuOTIiLAogICAgIjMuNiIsCiAgICAiMy40LjEiLAogICAgIjMuMy45MyIsCiAgICAiMy4zLjk0IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JvbnppbmkvZ25vbWUtc2hlbGwtcGVybWFuZW50LW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogInBlcm1hbmVudC1ub3RpZmljYXRpb25zQGJvbnppbmkuZ251Lm9yZyIsCiAgInZlcnNpb24iOiA3Cn0="}}}
 , {"uuid": "gnome-shell-trash-extension", "name": "Trash", "pname": "trash", "description": "A Trash button for the GNOME shell panel", "link": "https://extensions.gnome.org/extension/48/trash/", "shell_version_map": {"38": {"version": "18", "sha256": "1cysvxrgi7lnig7d8blhqqbxz0phd4fvn7nww6zpihjnw32rvm4z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgVHJhc2ggYnV0dG9uIGZvciB0aGUgR05PTUUgc2hlbGwgcGFuZWwiLAogICJsb2NhbGVkaXIiOiAibG9jYWxlIiwKICAibmFtZSI6ICJUcmFzaCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiQXhlbCB2b24gQmVydG9sZGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9iZXJ0b2xkaWEvZ25vbWUtc2hlbGwtdHJhc2gtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC10cmFzaC1leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}}}
 , {"uuid": "RecentItems@bananenfisch.net", "name": "Recent Items", "pname": "recent-items", "description": "Adds an icon for recently used items at the top panel; clear list by click; left click: open file, right click: open containing folder; Settings for: number of items, number of items under \"more\" and blacklisting options are defined at the top of extension.js (see https://github.com/bananenfisch/RecentItems for more infos).", "link": "https://extensions.gnome.org/extension/72/recent-items/", "shell_version_map": {"40": {"version": "20", "sha256": "0ys8lanv0xxbwfmqkfvdqvhbnv4vfjpzvpqjj11c1lxbv4wp2mbj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly93d3cuYmFuYW5lbmZpc2NoLm5ldC9nbm9tZSIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMAp9"}, "41": {"version": "20", "sha256": "0ys8lanv0xxbwfmqkfvdqvhbnv4vfjpzvpqjj11c1lxbv4wp2mbj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly93d3cuYmFuYW5lbmZpc2NoLm5ldC9nbm9tZSIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMAp9"}}}
 , {"uuid": "lockscreen@sri.ramkrishna.me", "name": "Lock Screen", "pname": "lock-screen", "description": "Add lock icon to the panel and lock the screen instead of using ctrl-alt-l", "link": "https://extensions.gnome.org/extension/83/lock-screen/", "shell_version_map": {"40": {"version": "13", "sha256": "1zlc6m3mai884mkgyg4mwvb7dc3wwpgysbkpfqw35cxpxf7chfk2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsb2NrIGljb24gdG8gdGhlIHBhbmVsIGFuZCBsb2NrIHRoZSBzY3JlZW4gaW5zdGVhZCBvZiB1c2luZyBjdHJsLWFsdC1sIiwKICAibmFtZSI6ICJMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NyYW1rcmlzaG5hL2dub21lMy1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsb2Nrc2NyZWVuQHNyaS5yYW1rcmlzaG5hLm1lIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
@@ -34,10 +34,10 @@
 , {"uuid": "remmina-search-provider@alexmurray.github.com", "name": "Remmina Search Provider", "pname": "remmina-search-provider", "description": "Search for Remmina Remote Desktop Connections\n\nEasily search for and launch connections to remote machines by name and protocol.", "link": "https://extensions.gnome.org/extension/473/remmina-search-provider/", "shell_version_map": {"40": {"version": "13", "sha256": "04wxydmbx0nm5ss2i10y4alxsr6fkia2is85ln23k25bqn8b4csi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBmb3IgUmVtbWluYSBSZW1vdGUgRGVza3RvcCBDb25uZWN0aW9uc1xuXG5FYXNpbHkgc2VhcmNoIGZvciBhbmQgbGF1bmNoIGNvbm5lY3Rpb25zIHRvIHJlbW90ZSBtYWNoaW5lcyBieSBuYW1lIGFuZCBwcm90b2NvbC4iLAogICJuYW1lIjogIlJlbW1pbmEgU2VhcmNoIFByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjMyIiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleG11cnJheS9yZW1taW5hLXNlYXJjaC1wcm92aWRlci8iLAogICJ1dWlkIjogInJlbW1pbmEtc2VhcmNoLXByb3ZpZGVyQGFsZXhtdXJyYXkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
 , {"uuid": "uptime-indicator@gniourfgniourf.gmail.com", "name": "Uptime Indicator", "pname": "uptime-indicator", "description": "Indicates uptime in status area. When clicked, a popup menu indicates the date when the system was started.", "link": "https://extensions.gnome.org/extension/508/uptime-indicator/", "shell_version_map": {"38": {"version": "18", "sha256": "1pzcbkc8a1f886wn7avpdw81vqch9zcyjr0pr961rfw3nykd073c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB1cHRpbWUgaW4gc3RhdHVzIGFyZWEuIFdoZW4gY2xpY2tlZCwgYSBwb3B1cCBtZW51IGluZGljYXRlcyB0aGUgZGF0ZSB3aGVuIHRoZSBzeXN0ZW0gd2FzIHN0YXJ0ZWQuIiwKICAibmFtZSI6ICJVcHRpbWUgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0duaW91cmYvVXB0aW1lLUluZGljYXRvciIsCiAgInV1aWQiOiAidXB0aW1lLWluZGljYXRvckBnbmlvdXJmZ25pb3VyZi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "40": {"version": "18", "sha256": "1pzcbkc8a1f886wn7avpdw81vqch9zcyjr0pr961rfw3nykd073c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB1cHRpbWUgaW4gc3RhdHVzIGFyZWEuIFdoZW4gY2xpY2tlZCwgYSBwb3B1cCBtZW51IGluZGljYXRlcyB0aGUgZGF0ZSB3aGVuIHRoZSBzeXN0ZW0gd2FzIHN0YXJ0ZWQuIiwKICAibmFtZSI6ICJVcHRpbWUgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0duaW91cmYvVXB0aW1lLUluZGljYXRvciIsCiAgInV1aWQiOiAidXB0aW1lLWluZGljYXRvckBnbmlvdXJmZ25pb3VyZi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}}}
 , {"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"}, "40": {"version": "40", "sha256": "1rza4ppzcimh6qmg14srawv16vas4lbcw4njxjigl29d9qf43sdr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lb25wYXRhcG9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jYWZmZWluZSIsCiAgInV1aWQiOiAiY2FmZmVpbmVAcGF0YXBvbi5pbmZvIiwKICAidmVyc2lvbiI6IDQwCn0="}, "41": {"version": "40", "sha256": "1rza4ppzcimh6qmg14srawv16vas4lbcw4njxjigl29d9qf43sdr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lb25wYXRhcG9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1jYWZmZWluZSIsCiAgInV1aWQiOiAiY2FmZmVpbmVAcGF0YXBvbi5pbmZvIiwKICAidmVyc2lvbiI6IDQwCn0="}}}
-, {"uuid": "backslide@codeisland.org", "name": "BackSlide", "pname": "backslide", "description": "Automatic background-image (wallpaper) slideshow for Gnome Shell", "link": "https://extensions.gnome.org/extension/543/backslide/", "shell_version_map": {"38": {"version": "18", "sha256": "1vm4w61cksj9ya5z4xcy7h96bk0wwi5njp0lyhnqa8j2fgsq5iin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9iaXRidWNrZXQub3JnL0x1a2FzS251dGgvYmFja3NsaWRlIiwKICAidXVpZCI6ICJiYWNrc2xpZGVAY29kZWlzbGFuZC5vcmciLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "40": {"version": "23", "sha256": "1a2dz6h0lnc7r1f75dqkhq788pjvlnmlrcjf3zn99f59i9zwl82n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2JpdGJ1Y2tldC5vcmcvTHVrYXNLbnV0aC9iYWNrc2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyMwp9"}, "41": {"version": "23", "sha256": "1a2dz6h0lnc7r1f75dqkhq788pjvlnmlrcjf3zn99f59i9zwl82n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2JpdGJ1Y2tldC5vcmcvTHVrYXNLbnV0aC9iYWNrc2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyMwp9"}}}
+, {"uuid": "backslide@codeisland.org", "name": "BackSlide", "pname": "backslide", "description": "Automatic background-image (wallpaper) slideshow for Gnome Shell", "link": "https://extensions.gnome.org/extension/543/backslide/", "shell_version_map": {"38": {"version": "18", "sha256": "1vm4w61cksj9ya5z4xcy7h96bk0wwi5njp0lyhnqa8j2fgsq5iin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9iaXRidWNrZXQub3JnL0x1a2FzS251dGgvYmFja3NsaWRlIiwKICAidXVpZCI6ICJiYWNrc2xpZGVAY29kZWlzbGFuZC5vcmciLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "40": {"version": "24", "sha256": "0an1w35sbv5w7826xa3k8nl8hc3krxkzc8nhvgcp48z75n2wdksl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2JpdGJ1Y2tldC5vcmcvTHVrYXNLbnV0aC9iYWNrc2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyNAp9"}, "41": {"version": "24", "sha256": "0an1w35sbv5w7826xa3k8nl8hc3krxkzc8nhvgcp48z75n2wdksl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2JpdGJ1Y2tldC5vcmcvTHVrYXNLbnV0aC9iYWNrc2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyNAp9"}}}
 , {"uuid": "historymanager-prefix-search@sustmidown.centrum.cz", "name": "HistoryManager Prefix Search", "pname": "historymanager-prefix-search", "description": "Use PageUp and PageDown to move in HistoryManager (eg. RunCommand, Looking Glass) according to prefix", "link": "https://extensions.gnome.org/extension/544/historymanager-prefix-search/", "shell_version_map": {"40": {"version": "14", "sha256": "1n6gac80xrk6lhlj29zb03h62ia0a66va0i9pmjgqbg3bs74yds0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBQYWdlVXAgYW5kIFBhZ2VEb3duIHRvIG1vdmUgaW4gSGlzdG9yeU1hbmFnZXIgKGVnLiBSdW5Db21tYW5kLCBMb29raW5nIEdsYXNzKSBhY2NvcmRpbmcgdG8gcHJlZml4IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGlzdG9yeW1hbmFnZXItcHJlZml4LXNlYXJjaCIsCiAgIm5hbWUiOiAiSGlzdG9yeU1hbmFnZXIgUHJlZml4IFNlYXJjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5oaXN0b3J5bWFuYWdlci1wcmVmaXgtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy43LjMiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3VzdG1pL2dub21lLXNoZWxsLWV4dGVuc2lvbi1oaXN0b3J5bWFuYWdlci1wcmVmaXgtc2VhcmNoIiwKICAidXVpZCI6ICJoaXN0b3J5bWFuYWdlci1wcmVmaXgtc2VhcmNoQHN1c3RtaWRvd24uY2VudHJ1bS5jeiIsCiAgInZlcnNpb24iOiAxNAp9"}}}
 , {"uuid": "hidetopbar@mathieu.bidon.ca", "name": "Hide Top Bar", "pname": "hide-top-bar", "description": "Hides the top bar, except in overview. However, there is an option to show the panel whenever the mouse pointer approaches the edge of the screen. And if \"intellihide\" is enabled, the panel only hides when a window takes the space.\n\n- Press backspace to remove keyboard shortcut.\n- Log off and on again when there is an error after upgrading.", "link": "https://extensions.gnome.org/extension/545/hide-top-bar/", "shell_version_map": {"38": {"version": "100", "sha256": "19mwdahjj5lyjbhzl7cha129zmccfgxy4yjhrsfk18i4k394rbcj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWx1dGZ5L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMDAKfQ=="}, "40": {"version": "100", "sha256": "19mwdahjj5lyjbhzl7cha129zmccfgxy4yjhrsfk18i4k394rbcj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWx1dGZ5L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMDAKfQ=="}, "41": {"version": "100", "sha256": "19mwdahjj5lyjbhzl7cha129zmccfgxy4yjhrsfk18i4k394rbcj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSB0b3AgYmFyLCBleGNlcHQgaW4gb3ZlcnZpZXcuIEhvd2V2ZXIsIHRoZXJlIGlzIGFuIG9wdGlvbiB0byBzaG93IHRoZSBwYW5lbCB3aGVuZXZlciB0aGUgbW91c2UgcG9pbnRlciBhcHByb2FjaGVzIHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4uIEFuZCBpZiBcImludGVsbGloaWRlXCIgaXMgZW5hYmxlZCwgdGhlIHBhbmVsIG9ubHkgaGlkZXMgd2hlbiBhIHdpbmRvdyB0YWtlcyB0aGUgc3BhY2UuXG5cbi0gUHJlc3MgYmFja3NwYWNlIHRvIHJlbW92ZSBrZXlib2FyZCBzaG9ydGN1dC5cbi0gTG9nIG9mZiBhbmQgb24gYWdhaW4gd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBhZnRlciB1cGdyYWRpbmcuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaGlkZXRvcGJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWx1dGZ5L2hpZGV0b3BiYXIiLAogICJ1dWlkIjogImhpZGV0b3BiYXJAbWF0aGlldS5iaWRvbi5jYSIsCiAgInZlcnNpb24iOiAxMDAKfQ=="}}}
-, {"uuid": "hdate@hatul.info", "name": "Gnome HDate", "pname": "gnome-hdate", "description": "Show Hebrew Date in the Panel.\nRequires libhdate-glib  (See instructions in GitHub)", "link": "https://extensions.gnome.org/extension/554/gnome-hdate/", "shell_version_map": {"40": {"version": "19", "sha256": "1xxjdgk5k2c158r810w4l4prg0f6ncaqli63dzg3v46a5x1h8fh7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiAgKFNlZSBpbnN0cnVjdGlvbnMgaW4gR2l0SHViKSIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1pYWQvZ25vbWUtaGRhdGUiLAogICJ1dWlkIjogImhkYXRlQGhhdHVsLmluZm8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "41": {"version": "19", "sha256": "1xxjdgk5k2c158r810w4l4prg0f6ncaqli63dzg3v46a5x1h8fh7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiAgKFNlZSBpbnN0cnVjdGlvbnMgaW4gR2l0SHViKSIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1pYWQvZ25vbWUtaGRhdGUiLAogICJ1dWlkIjogImhkYXRlQGhhdHVsLmluZm8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
+, {"uuid": "hdate@hatul.info", "name": "Gnome HDate", "pname": "gnome-hdate", "description": "Show Hebrew Date in the Panel.\nRequires libhdate-glib", "link": "https://extensions.gnome.org/extension/554/gnome-hdate/", "shell_version_map": {"40": {"version": "20", "sha256": "1aj5ry3g93wx1crn8rr2jm9vbz07kz0r7qc6sr2vj352bgjzrlbf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1pYWQvZ25vbWUtaGRhdGUiLAogICJ1dWlkIjogImhkYXRlQGhhdHVsLmluZm8iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}, "41": {"version": "20", "sha256": "1aj5ry3g93wx1crn8rr2jm9vbz07kz0r7qc6sr2vj352bgjzrlbf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSGVicmV3IERhdGUgaW4gdGhlIFBhbmVsLlxuUmVxdWlyZXMgbGliaGRhdGUtZ2xpYiIsCiAgIm5hbWUiOiAiR25vbWUgSERhdGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMiIsCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1pYWQvZ25vbWUtaGRhdGUiLAogICJ1dWlkIjogImhkYXRlQGhhdHVsLmluZm8iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
 , {"uuid": "todo.txt@bart.libert.gmail.com", "name": "Todo.txt", "pname": "todotxt", "description": "A Gnome shell interface for todo.txt. \n\nTodo.txt is a future-proof syntax for tasks (not made by me), for more info: http://todotxt.com/\n\nSome examples:\nTask: Basic task\n(A) Task: High priority task\nTask @project +context: Task is part of project and has a certain context\nx 2013-08-22 Task: Task was completed on the 22nd of August\n\nFor more info about the syntax: https://github.com/ginatrapani/todo.txt-cli/wiki/The-Todo.txt-Format\n\nQuick start:\nWhen you first enable the extension, chances are high you'll see a [X] in your top panel. If you click the [X], you will be able to choose between creating the necessary files automatically or selecting your own existing files to be used with the extension.\n\nPlease use the issue tracker on the homepage to report bugs and/or file feature requests, this makes tracking easier for me. Thanks!\n\nSee the included CHANGELOG.md for info about changes between different versions, or see it online: https://gitlab.com/bartl/todo-txt-gnome-shell-extension/raw/master/CHANGELOG.md", "link": "https://extensions.gnome.org/extension/570/todotxt/", "shell_version_map": {"38": {"version": "33", "sha256": "1spq0i8w9xw8zgq3niqzs2dslg01l0gsbcys26p8lpydz0dsy7xa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vYmFydGwvdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3Jhdy9tYXN0ZXIvQ0hBTkdFTE9HLm1kIiwKICAibmFtZSI6ICJUb2RvLnR4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2JhcnRsL3RvZG8tdHh0LWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidG9kby50eHRAYmFydC5saWJlcnQuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMzCn0="}, "40": {"version": "35", "sha256": "18vc11nls6giskq94kw48kbcx399706rglaqsmla4yvix0jkd8lz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vYmFydGwvdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3Jhdy9tYXN0ZXIvQ0hBTkdFTE9HLm1kIiwKICAibmFtZSI6ICJUb2RvLnR4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9iYXJ0bC90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNQp9"}, "41": {"version": "36", "sha256": "1pnw1fm38zxacjyz31vw9wfdmk1h6i4grxzi3n1nlz23gpkn3df3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgc2hlbGwgaW50ZXJmYWNlIGZvciB0b2RvLnR4dC4gXG5cblRvZG8udHh0IGlzIGEgZnV0dXJlLXByb29mIHN5bnRheCBmb3IgdGFza3MgKG5vdCBtYWRlIGJ5IG1lKSwgZm9yIG1vcmUgaW5mbzogaHR0cDovL3RvZG90eHQuY29tL1xuXG5Tb21lIGV4YW1wbGVzOlxuVGFzazogQmFzaWMgdGFza1xuKEEpIFRhc2s6IEhpZ2ggcHJpb3JpdHkgdGFza1xuVGFzayBAcHJvamVjdCArY29udGV4dDogVGFzayBpcyBwYXJ0IG9mIHByb2plY3QgYW5kIGhhcyBhIGNlcnRhaW4gY29udGV4dFxueCAyMDEzLTA4LTIyIFRhc2s6IFRhc2sgd2FzIGNvbXBsZXRlZCBvbiB0aGUgMjJuZCBvZiBBdWd1c3RcblxuRm9yIG1vcmUgaW5mbyBhYm91dCB0aGUgc3ludGF4OiBodHRwczovL2dpdGh1Yi5jb20vZ2luYXRyYXBhbmkvdG9kby50eHQtY2xpL3dpa2kvVGhlLVRvZG8udHh0LUZvcm1hdFxuXG5RdWljayBzdGFydDpcbldoZW4geW91IGZpcnN0IGVuYWJsZSB0aGUgZXh0ZW5zaW9uLCBjaGFuY2VzIGFyZSBoaWdoIHlvdSdsbCBzZWUgYSBbWF0gaW4geW91ciB0b3AgcGFuZWwuIElmIHlvdSBjbGljayB0aGUgW1hdLCB5b3Ugd2lsbCBiZSBhYmxlIHRvIGNob29zZSBiZXR3ZWVuIGNyZWF0aW5nIHRoZSBuZWNlc3NhcnkgZmlsZXMgYXV0b21hdGljYWxseSBvciBzZWxlY3RpbmcgeW91ciBvd24gZXhpc3RpbmcgZmlsZXMgdG8gYmUgdXNlZCB3aXRoIHRoZSBleHRlbnNpb24uXG5cblBsZWFzZSB1c2UgdGhlIGlzc3VlIHRyYWNrZXIgb24gdGhlIGhvbWVwYWdlIHRvIHJlcG9ydCBidWdzIGFuZC9vciBmaWxlIGZlYXR1cmUgcmVxdWVzdHMsIHRoaXMgbWFrZXMgdHJhY2tpbmcgZWFzaWVyIGZvciBtZS4gVGhhbmtzIVxuXG5TZWUgdGhlIGluY2x1ZGVkIENIQU5HRUxPRy5tZCBmb3IgaW5mbyBhYm91dCBjaGFuZ2VzIGJldHdlZW4gZGlmZmVyZW50IHZlcnNpb25zLCBvciBzZWUgaXQgb25saW5lOiBodHRwczovL2dpdGxhYi5jb20vYmFydGwvdG9kby10eHQtZ25vbWUtc2hlbGwtZXh0ZW5zaW9uL3Jhdy9tYXN0ZXIvQ0hBTkdFTE9HLm1kIiwKICAibmFtZSI6ICJUb2RvLnR4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9iYXJ0bC90b2RvLXR4dC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZG8udHh0QGJhcnQubGliZXJ0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"}}}
 , {"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=="}}}
 , {"uuid": "autohide-battery@sitnik.ru", "name": "Autohide Battery", "pname": "autohide-battery", "description": "Hide battery icon in top panel, if battery is fully charged and AC is connected", "link": "https://extensions.gnome.org/extension/595/autohide-battery/", "shell_version_map": {"40": {"version": "23", "sha256": "1kxcb301ql1q3vyswnwgq8rmdyxj6zrngah2rwrbiy1wjz726xg0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhdXRvaGlkZS1iYXR0ZXJ5IiwKICAibmFtZSI6ICJBdXRvaGlkZSBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9haS9hdXRvaGlkZS1iYXR0ZXJ5IiwKICAidXVpZCI6ICJhdXRvaGlkZS1iYXR0ZXJ5QHNpdG5pay5ydSIsCiAgInZlcnNpb24iOiAyMwp9"}, "41": {"version": "23", "sha256": "1kxcb301ql1q3vyswnwgq8rmdyxj6zrngah2rwrbiy1wjz726xg0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhdXRvaGlkZS1iYXR0ZXJ5IiwKICAibmFtZSI6ICJBdXRvaGlkZSBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9haS9hdXRvaGlkZS1iYXR0ZXJ5IiwKICAidXVpZCI6ICJhdXRvaGlkZS1iYXR0ZXJ5QHNpdG5pay5ydSIsCiAgInZlcnNpb24iOiAyMwp9"}}}
@@ -45,7 +45,7 @@
 , {"uuid": "window-list@gnome-shell-extensions.gcampax.github.com", "name": "Window List", "pname": "window-list", "description": "Display a window list at the bottom of the screen.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.", "link": "https://extensions.gnome.org/extension/602/window-list/", "shell_version_map": {"38": {"version": "34", "sha256": "06jww5sv3a32plbvnl1xch10y19q807dx6zn6z5gwpvq8n0nvnx3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIldpbmRvdyBMaXN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvdy1saXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}, "40": {"version": "38", "sha256": "0r4mqs88vnz8qrd2qcfg5gs184rnqbb9sgnpl3vrdmj608k1mx1a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIldpbmRvdyBMaXN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvdy1saXN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIndpbmRvdy1saXN0QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDM4Cn0="}, "41": {"version": "39", "sha256": "1d859rgmdxwgchaf10xlr7y36v8nxbznqny66bv2wdx8d7i1xk5r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aW5kb3ctbGlzdCIsCiAgIm5hbWUiOiAiV2luZG93IExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93LWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzkKfQ=="}}}
 , {"uuid": "MultiClock@mibus.org", "name": "MultiClock", "pname": "multiclock", "description": "A clock for showing a second timezone in the panel.", "link": "https://extensions.gnome.org/extension/605/multiclock/", "shell_version_map": {"40": {"version": "8", "sha256": "1pp1cnmpix668mrywpv6mkyb45lw7f6cwibjl6bc7cgb01hkzd53", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgY2xvY2sgZm9yIHNob3dpbmcgYSBzZWNvbmQgdGltZXpvbmUgaW4gdGhlIHBhbmVsLiIsCiAgIm5hbWUiOiAiTXVsdGlDbG9jayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5taWJ1c011bHRpQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9taWJ1cy9NdWx0aUNsb2NrIiwKICAidXVpZCI6ICJNdWx0aUNsb2NrQG1pYnVzLm9yZyIsCiAgInZlcnNpb24iOiA4Cn0="}}}
 , {"uuid": "appindicatorsupport@rgcjonas.gmail.com", "name": "AppIndicator and KStatusNotifierItem Support", "pname": "appindicator-support", "description": "Adds AppIndicator, KStatusNotifierItem and legacy Tray icons support to the Shell", "link": "https://extensions.gnome.org/extension/615/appindicator-support/", "shell_version_map": {"38": {"version": "41", "sha256": "0d2pvcw13wr7jbwjds4byxnq3q9vqm2r6fs5plcgl2dp787kmxi2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgQXBwSW5kaWNhdG9yLCBLU3RhdHVzTm90aWZpZXJJdGVtIGFuZCBsZWdhY3kgVHJheSBpY29ucyBzdXBwb3J0IHRvIHRoZSBTaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogIkFwcEluZGljYXRvckV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiQXBwSW5kaWNhdG9yIGFuZCBLU3RhdHVzTm90aWZpZXJJdGVtIFN1cHBvcnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91YnVudHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFwcGluZGljYXRvciIsCiAgInV1aWQiOiAiYXBwaW5kaWNhdG9yc3VwcG9ydEByZ2Nqb25hcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="}, "40": {"version": "41", "sha256": "0d2pvcw13wr7jbwjds4byxnq3q9vqm2r6fs5plcgl2dp787kmxi2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgQXBwSW5kaWNhdG9yLCBLU3RhdHVzTm90aWZpZXJJdGVtIGFuZCBsZWdhY3kgVHJheSBpY29ucyBzdXBwb3J0IHRvIHRoZSBTaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogIkFwcEluZGljYXRvckV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiQXBwSW5kaWNhdG9yIGFuZCBLU3RhdHVzTm90aWZpZXJJdGVtIFN1cHBvcnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91YnVudHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFwcGluZGljYXRvciIsCiAgInV1aWQiOiAiYXBwaW5kaWNhdG9yc3VwcG9ydEByZ2Nqb25hcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="}, "41": {"version": "41", "sha256": "0d2pvcw13wr7jbwjds4byxnq3q9vqm2r6fs5plcgl2dp787kmxi2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgQXBwSW5kaWNhdG9yLCBLU3RhdHVzTm90aWZpZXJJdGVtIGFuZCBsZWdhY3kgVHJheSBpY29ucyBzdXBwb3J0IHRvIHRoZSBTaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogIkFwcEluZGljYXRvckV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiQXBwSW5kaWNhdG9yIGFuZCBLU3RhdHVzTm90aWZpZXJJdGVtIFN1cHBvcnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91YnVudHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFwcGluZGljYXRvciIsCiAgInV1aWQiOiAiYXBwaW5kaWNhdG9yc3VwcG9ydEByZ2Nqb25hcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="}}}
-, {"uuid": "bitcoin-markets@ottoallmendinger.github.com", "name": "Bitcoin Markets", "pname": "bitcoin-markets", "description": "Display info on various crypto-currency exchanges.", "link": "https://extensions.gnome.org/extension/648/bitcoin-markets/", "shell_version_map": {"38": {"version": "57", "sha256": "1dbrkr49gi93nps610afvw2q68d1ialkhxsxd0waa8xgwjxwzyxd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjU3IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3R0b0FsbG1lbmRpbmdlci9nbm9tZS1zaGVsbC1iaXRjb2luLW1hcmtldHMvIiwKICAidXVpZCI6ICJiaXRjb2luLW1hcmtldHNAb3R0b2FsbG1lbmRpbmdlci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="}, "40": {"version": "58", "sha256": "1alsbyykqy2147ssx016ixqyj3phk3pmviw41dr0vakxfwr5f7g1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjU4IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL090dG9BbGxtZW5kaW5nZXIvZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzLyIsCiAgInV1aWQiOiAiYml0Y29pbi1tYXJrZXRzQG90dG9hbGxtZW5kaW5nZXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1OAp9"}}}
+, {"uuid": "bitcoin-markets@ottoallmendinger.github.com", "name": "Bitcoin Markets", "pname": "bitcoin-markets", "description": "Display info on various crypto-currency exchanges.", "link": "https://extensions.gnome.org/extension/648/bitcoin-markets/", "shell_version_map": {"38": {"version": "57", "sha256": "1dbrkr49gi93nps610afvw2q68d1ialkhxsxd0waa8xgwjxwzyxd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjU3IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3R0b0FsbG1lbmRpbmdlci9nbm9tZS1zaGVsbC1iaXRjb2luLW1hcmtldHMvIiwKICAidXVpZCI6ICJiaXRjb2luLW1hcmtldHNAb3R0b2FsbG1lbmRpbmdlci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="}, "40": {"version": "64", "sha256": "0m4dcrlmmfcqb1lvlcdasgyjx8v4iahnbvxi1rkini03g3z8skp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjYzLWRpcnR5IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLWJpdGNvaW4tbWFya2V0cy8iLAogICJ1dWlkIjogImJpdGNvaW4tbWFya2V0c0BvdHRvYWxsbWVuZGluZ2VyLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjQKfQ=="}, "41": {"version": "64", "sha256": "0m4dcrlmmfcqb1lvlcdasgyjx8v4iahnbvxi1rkini03g3z8skp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjYzLWRpcnR5IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLWJpdGNvaW4tbWFya2V0cy8iLAogICJ1dWlkIjogImJpdGNvaW4tbWFya2V0c0BvdHRvYWxsbWVuZGluZ2VyLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjQKfQ=="}}}
 , {"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": "65", "sha256": "0kb7crng8lmkcjjxzd7ma2x0x43rg4j5ygvvpiq5z2j15rx8bcg4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgdGlsaW5nIHdpbmRvdyBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBKdXN0IG1vdmUgYSB3aW5kb3cgdG8gdGhlIGVkZ2VzIG9mIHRoZSBzY3JlZW4gdG8gY3JlYXRlIGEgdGlsaW5nLCBvdGhlcndpc2UgbW92ZSBhIHdpbmRvdyBvdmVyIGFub3RoZXIgb25lLCBob2xkaW5nIGRvd24gdGhlIENvbnRyb2wga2V5LiBHcm91cGVkIHdpbmRvd3MgbWluaW1pemUsIHJlc2l6ZSwgcmFpc2UgYW5kIGNoYW5nZSB3b3Jrc3BhY2UgdG9nZXRoZXIuIE1vdmUgb3IgbWF4aW1pemUgYSB3aW5kb3cgdG8gcmVtb3ZlIGl0IGZyb20gdGhlIGdyb3VwLiIsCiAgImdldHRleHQtZG9tYWluIjogInNoZWxsdGlsZSIsCiAgIm5hbWUiOiAiU2hlbGxUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNoZWxsdGlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy42IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbWFzYWIvc2hlbGx0aWxlIiwKICAidXVpZCI6ICJTaGVsbFRpbGVAZW1hc2FiLml0IiwKICAidmVyc2lvbiI6IDY1Cn0="}}}
 , {"uuid": "lunarcal@ailin.nemui", "name": "Lunar Calendar 农历", "pname": "lunar-calendar", "description": "Display Chinese Lunar Calendar in panel\n\n⚠⚠⚠ dependency: typelib-1_0-LunarDate-3_0 / gir1.2-lunar-date-2.0", "link": "https://extensions.gnome.org/extension/675/lunar-calendar/", "shell_version_map": {"38": {"version": "25", "sha256": "1pj439wdsqpxim6p4d0y09v40kdjga908hagxfyvq0fzjykc51rn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "40": {"version": "27", "sha256": "159iiyw0sblq8jwkm1qfcakgdy3rvk07vzz8q6yj2davp64wpg5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJsdW5hcmNhbEBhaWxpbi5uZW11aSIsCiAgInZlcnNpb24iOiAyNwp9"}, "41": {"version": "27", "sha256": "159iiyw0sblq8jwkm1qfcakgdy3rvk07vzz8q6yj2davp64wpg5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJsdW5hcmNhbEBhaWxpbi5uZW11aSIsCiAgInZlcnNpb24iOiAyNwp9"}}}
 , {"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": "41", "sha256": "0irmbbj7jd628agq80f4ms8skawjvsi9a7izair11knydhkab944", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0+ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLT4gIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3QiLAogICJ1dWlkIjogIkVhc3lTY3JlZW5DYXN0QGlhY29wb2RlZW5vc2VlLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0MQp9"}, "40": {"version": "41", "sha256": "0irmbbj7jd628agq80f4ms8skawjvsi9a7izair11knydhkab944", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0+ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLT4gIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3QiLAogICJ1dWlkIjogIkVhc3lTY3JlZW5DYXN0QGlhY29wb2RlZW5vc2VlLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0MQp9"}, "41": {"version": "41", "sha256": "0irmbbj7jd628agq80f4ms8skawjvsi9a7izair11knydhkab944", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0+ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLT4gIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3QiLAogICJ1dWlkIjogIkVhc3lTY3JlZW5DYXN0QGlhY29wb2RlZW5vc2VlLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA0MQp9"}}}
@@ -59,7 +59,7 @@
 , {"uuid": "audio-output-switcher@anduchs", "name": "Audio Output Switcher", "pname": "audio-output-switcher", "description": "Adds a switch for choosing audio output to the system menu.", "link": "https://extensions.gnome.org/extension/751/audio-output-switcher/", "shell_version_map": {"38": {"version": "16", "sha256": "0wmvkczzs87zanp37hbi8adv56r0r38jl2xck3wvzss0dkdv9vni", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIG91dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJBdWRpbyBPdXRwdXQgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXVkaW8tb3V0cHV0LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vYWRheGkvYXVkaW8tb3V0cHV0LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhdWRpby1vdXRwdXQtc3dpdGNoZXJAYW5kdWNocyIsCiAgInZlcnNpb24iOiAxNgp9"}, "40": {"version": "16", "sha256": "0wmvkczzs87zanp37hbi8adv56r0r38jl2xck3wvzss0dkdv9vni", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIG91dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJBdWRpbyBPdXRwdXQgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXVkaW8tb3V0cHV0LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vYWRheGkvYXVkaW8tb3V0cHV0LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhdWRpby1vdXRwdXQtc3dpdGNoZXJAYW5kdWNocyIsCiAgInZlcnNpb24iOiAxNgp9"}}}
 , {"uuid": "hibernate-status@dromi", "name": "Hibernate Status Button", "pname": "hibernate-status-button", "description": "Adds a Hibernate button in Status menu. Using Alt modifier, you can also select Hybrid Sleep instead.", "link": "https://extensions.gnome.org/extension/755/hibernate-status-button/", "shell_version_map": {"38": {"version": "27", "sha256": "0yqzg2nz040vsv0ilwkjkza03qxns18gq4055gq0c3k051jy6d4v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAibmFtZSI6ICJIaWJlcm5hdGUgU3RhdHVzIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FyZWxhbmdlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1oaWJlcm5hdGUtc3RhdHVzIiwKICAidXVpZCI6ICJoaWJlcm5hdGUtc3RhdHVzQGRyb21pIiwKICAidmVyc2lvbiI6IDI3Cn0="}, "40": {"version": "32", "sha256": "1jx687q54n14vyn8mmlzq6yrhg5ksda3cph26wzzdhd7nz940rv7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlLXN0YXR1cy1idXR0b24iLAogICJuYW1lIjogIkhpYmVybmF0ZSBTdGF0dXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmVsYW5nZS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGliZXJuYXRlLXN0YXR1cyIsCiAgInV1aWQiOiAiaGliZXJuYXRlLXN0YXR1c0Bkcm9taSIsCiAgInZlcnNpb24iOiAzMgp9"}, "41": {"version": "32", "sha256": "1jx687q54n14vyn8mmlzq6yrhg5ksda3cph26wzzdhd7nz940rv7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlLXN0YXR1cy1idXR0b24iLAogICJuYW1lIjogIkhpYmVybmF0ZSBTdGF0dXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmVsYW5nZS9nbm9tZS1zaGVsbC1leHRlbnNpb24taGliZXJuYXRlLXN0YXR1cyIsCiAgInV1aWQiOiAiaGliZXJuYXRlLXN0YXR1c0Bkcm9taSIsCiAgInZlcnNpb24iOiAzMgp9"}}}
 , {"uuid": "minimizeall@scharlessantos.org", "name": "Minimize All", "pname": "minimize-all", "description": "Minimize all windows in current workspace", "link": "https://extensions.gnome.org/extension/760/minimize-all/", "shell_version_map": {"38": {"version": "20", "sha256": "15v6h4wcznrylip57spjdkz0jk6y7hcp47607pj0yx5dmxjaws86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIGFsbCB3aW5kb3dzIGluIGN1cnJlbnQgd29ya3NwYWNlIiwKICAibmFtZSI6ICJNaW5pbWl6ZSBBbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc2NoYXJsZXNzYW50b3MvbWluaW1pemVhbGwiLAogICJ1dWlkIjogIm1pbmltaXplYWxsQHNjaGFybGVzc2FudG9zLm9yZyIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "20", "sha256": "15v6h4wcznrylip57spjdkz0jk6y7hcp47607pj0yx5dmxjaws86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIGFsbCB3aW5kb3dzIGluIGN1cnJlbnQgd29ya3NwYWNlIiwKICAibmFtZSI6ICJNaW5pbWl6ZSBBbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc2NoYXJsZXNzYW50b3MvbWluaW1pemVhbGwiLAogICJ1dWlkIjogIm1pbmltaXplYWxsQHNjaGFybGVzc2FudG9zLm9yZyIsCiAgInZlcnNpb24iOiAyMAp9"}}}
-, {"uuid": "fq@megh", "name": "Force Quit", "pname": "force-quit", "description": "Adds a force quit button which launches xkill.\nOn accidental click, right click to undo or click on the panel.\nCustomize position by tweaking line 47 of extension.js", "link": "https://extensions.gnome.org/extension/770/force-quit/", "shell_version_map": {"38": {"version": "18", "sha256": "1yww4xhww0lvfnxik8k5yfs9mhbsdd22g9sk26rf4qvqwyl7gjl4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbiB3aGljaCBsYXVuY2hlcyB4a2lsbC5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIHRvIHVuZG8gb3IgY2xpY2sgb24gdGhlIHBhbmVsLlxuQ3VzdG9taXplIHBvc2l0aW9uIGJ5IHR3ZWFraW5nIGxpbmUgNDcgb2YgZXh0ZW5zaW9uLmpzIiwKICAibmFtZSI6ICJGb3JjZSBRdWl0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21lZ2hwcmtoL2ZvcmNlLXF1aXQvIiwKICAidXVpZCI6ICJmcUBtZWdoIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "20", "sha256": "1xw23rr070nvv3335fg4nbj280a5y10xsmv1xg2sfqn5gnxkj3jq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbiB3aGljaCBsYXVuY2hlcyB4a2lsbC5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIHRvIHVuZG8gb3IgY2xpY2sgb24gdGhlIHBhbmVsLlxuQ3VzdG9taXplIHBvc2l0aW9uIGJ5IHR3ZWFraW5nIGxpbmUgNDcgb2YgZXh0ZW5zaW9uLmpzIiwKICAibmFtZSI6ICJGb3JjZSBRdWl0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWdocHJraC9mb3JjZS1xdWl0LyIsCiAgInV1aWQiOiAiZnFAbWVnaCIsCiAgInZlcnNpb24iOiAyMAp9"}, "41": {"version": "20", "sha256": "1xw23rr070nvv3335fg4nbj280a5y10xsmv1xg2sfqn5gnxkj3jq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbiB3aGljaCBsYXVuY2hlcyB4a2lsbC5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIHRvIHVuZG8gb3IgY2xpY2sgb24gdGhlIHBhbmVsLlxuQ3VzdG9taXplIHBvc2l0aW9uIGJ5IHR3ZWFraW5nIGxpbmUgNDcgb2YgZXh0ZW5zaW9uLmpzIiwKICAibmFtZSI6ICJGb3JjZSBRdWl0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWdocHJraC9mb3JjZS1xdWl0LyIsCiAgInV1aWQiOiAiZnFAbWVnaCIsCiAgInZlcnNpb24iOiAyMAp9"}}}
+, {"uuid": "fq@megh", "name": "Force Quit", "pname": "force-quit", "description": "Adds a force quit button.\nOn accidental click, right click or press [ESC] to undo.\nCustomize position by tweaking line 50 of extension.js\n\nUPDATE: No longer depends on xkill and should work on Wayland", "link": "https://extensions.gnome.org/extension/770/force-quit/", "shell_version_map": {"38": {"version": "18", "sha256": "07ygqdzgq8q8bmsrpy4wbwgm8n5syhk0gw2pzn62ismaxkr7fqi3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbi5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIG9yIHByZXNzIFtFU0NdIHRvIHVuZG8uXG5DdXN0b21pemUgcG9zaXRpb24gYnkgdHdlYWtpbmcgbGluZSA1MCBvZiBleHRlbnNpb24uanNcblxuVVBEQVRFOiBObyBsb25nZXIgZGVwZW5kcyBvbiB4a2lsbCBhbmQgc2hvdWxkIHdvcmsgb24gV2F5bGFuZCIsCiAgIm5hbWUiOiAiRm9yY2UgUXVpdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZWdocHJraC9mb3JjZS1xdWl0LyIsCiAgInV1aWQiOiAiZnFAbWVnaCIsCiAgInZlcnNpb24iOiAxOAp9"}, "40": {"version": "21", "sha256": "0gx6vxzg8kqlqa2z5i9dazwy2bd1yfbg8ms7g84ri9hn1064l8g2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbi5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIG9yIHByZXNzIFtFU0NdIHRvIHVuZG8uXG5DdXN0b21pemUgcG9zaXRpb24gYnkgdHdlYWtpbmcgbGluZSA1MCBvZiBleHRlbnNpb24uanNcblxuVVBEQVRFOiBObyBsb25nZXIgZGVwZW5kcyBvbiB4a2lsbCBhbmQgc2hvdWxkIHdvcmsgb24gV2F5bGFuZCIsCiAgIm5hbWUiOiAiRm9yY2UgUXVpdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVnaHBya2gvZm9yY2UtcXVpdC8iLAogICJ1dWlkIjogImZxQG1lZ2giLAogICJ2ZXJzaW9uIjogMjEKfQ=="}, "41": {"version": "21", "sha256": "0gx6vxzg8kqlqa2z5i9dazwy2bd1yfbg8ms7g84ri9hn1064l8g2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbi5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIG9yIHByZXNzIFtFU0NdIHRvIHVuZG8uXG5DdXN0b21pemUgcG9zaXRpb24gYnkgdHdlYWtpbmcgbGluZSA1MCBvZiBleHRlbnNpb24uanNcblxuVVBEQVRFOiBObyBsb25nZXIgZGVwZW5kcyBvbiB4a2lsbCBhbmQgc2hvdWxkIHdvcmsgb24gV2F5bGFuZCIsCiAgIm5hbWUiOiAiRm9yY2UgUXVpdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVnaHBya2gvZm9yY2UtcXVpdC8iLAogICJ1dWlkIjogImZxQG1lZ2giLAogICJ2ZXJzaW9uIjogMjEKfQ=="}}}
 , {"uuid": "ProxySwitcher@flannaghan.com", "name": "Proxy Switcher", "pname": "proxy-switcher", "description": "Switches between the system proxy settings profiles defined in Network Settings.", "link": "https://extensions.gnome.org/extension/771/proxy-switcher/", "shell_version_map": {"40": {"version": "15", "sha256": "1vyplw3yv9904sgcjcgc8lz4py3ra59k3afsf2vc35n6vba7k91n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yMS45MSIsCiAgICAiMy4yMi4yIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21mbGFubmFnaGFuL3Byb3h5LXN3aXRjaGVyIiwKICAidXVpZCI6ICJQcm94eVN3aXRjaGVyQGZsYW5uYWdoYW4uY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="}, "41": {"version": "15", "sha256": "1vyplw3yv9904sgcjcgc8lz4py3ra59k3afsf2vc35n6vba7k91n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yMS45MSIsCiAgICAiMy4yMi4yIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21mbGFubmFnaGFuL3Byb3h5LXN3aXRjaGVyIiwKICAidXVpZCI6ICJQcm94eVN3aXRjaGVyQGZsYW5uYWdoYW4uY29tIiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
 , {"uuid": "clipboard-indicator@tudmotu.com", "name": "Clipboard Indicator", "pname": "clipboard-indicator", "description": "Clipboard Manager extension for Gnome-Shell - Adds a clipboard indicator to the top panel, and caches clipboard history.", "link": "https://extensions.gnome.org/extension/779/clipboard-indicator/", "shell_version_map": {"38": {"version": "37", "sha256": "1nd6ydp5wmd56zf3vwrsi2wflrw15krdbvqv2fkmla8rndallp1i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LiIsCiAgIm5hbWUiOiAiQ2xpcGJvYXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1R1ZG1vdHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsaXBib2FyZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogImNsaXBib2FyZC1pbmRpY2F0b3JAdHVkbW90dS5jb20iLAogICJ2ZXJzaW9uIjogMzcKfQ=="}, "40": {"version": "39", "sha256": "19zwg7jnf24cgqv75hzcz2a5w750kfc6yi6pn2azzknmwnsz0i7c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LiIsCiAgIm5hbWUiOiAiQ2xpcGJvYXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVHVkbW90dS9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2xpcGJvYXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWluZGljYXRvckB0dWRtb3R1LmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}, "41": {"version": "39", "sha256": "19zwg7jnf24cgqv75hzcz2a5w750kfc6yi6pn2azzknmwnsz0i7c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LiIsCiAgIm5hbWUiOiAiQ2xpcGJvYXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVHVkbW90dS9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2xpcGJvYXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWluZGljYXRvckB0dWRtb3R1LmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}}}
 , {"uuid": "pidgin@muffinmad", "name": "Pidgin IM integration", "pname": "pidgin-im-integration", "description": "Integrate Pidgin IMs in the Gnome Shell message tray", "link": "https://extensions.gnome.org/extension/782/pidgin-im-integration/", "shell_version_map": {"40": {"version": "41", "sha256": "1g2iflmb8rjzfc82yv8wcii99df5aaqx5czqkhxpf9pfsrkknhs9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBQaWRnaW4gSU1zIGluIHRoZSBHbm9tZSBTaGVsbCBtZXNzYWdlIHRyYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tcGlkZ2luIiwKICAibmFtZSI6ICJQaWRnaW4gSU0gaW50ZWdyYXRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlkZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tdWZmaW5tYWQvcGlkZ2luLWltLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicGlkZ2luQG11ZmZpbm1hZCIsCiAgInZlcnNpb24iOiA0MQp9"}, "41": {"version": "41", "sha256": "1g2iflmb8rjzfc82yv8wcii99df5aaqx5czqkhxpf9pfsrkknhs9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBQaWRnaW4gSU1zIGluIHRoZSBHbm9tZSBTaGVsbCBtZXNzYWdlIHRyYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tcGlkZ2luIiwKICAibmFtZSI6ICJQaWRnaW4gSU0gaW50ZWdyYXRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlkZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tdWZmaW5tYWQvcGlkZ2luLWltLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAicGlkZ2luQG11ZmZpbm1hZCIsCiAgInZlcnNpb24iOiA0MQp9"}}}
@@ -85,29 +85,30 @@
 , {"uuid": "ping_indicator@trifonovkv.gmail.com", "name": "Ping Indicator", "pname": "ping-indicator", "description": "Display ping time", "link": "https://extensions.gnome.org/extension/923/ping-indicator/", "shell_version_map": {"38": {"version": "24", "sha256": "0arxcaxpybc1as2d9dqmmswjnjj7p11rvss4s84x6kz8i4xbhjy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcGluZyB0aW1lIiwKICAibmFtZSI6ICJQaW5nIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHJpZm9ub3Zrdi9waW5nX2luZGljYXRvciIsCiAgInV1aWQiOiAicGluZ19pbmRpY2F0b3JAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjQKfQ=="}}}
 , {"uuid": "transcode-appsearch@k.kubusha@gmail.com", "name": "Transcode App Search", "pname": "transcodeappsearch", "description": "Searching apps both direct and transcoded name (English, Russian, Ukrainian langs)", "link": "https://extensions.gnome.org/extension/928/transcodeappsearch/", "shell_version_map": {"38": {"version": "9", "sha256": "0ia3f8pmnyzjvg7di0cgy7n6ppbpkma6y0xlwjb8hhp5wz3a11s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIFJ1c3NpYW4sIFVrcmFpbmlhbiBsYW5ncykiLAogICJuYW1lIjogIlRyYW5zY29kZSBBcHAgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGF0eWFuL2dub21lLWV4dGVuc2lvbi10cmFuc2NvZGUtc2VhcmNoYXBwIiwKICAidXVpZCI6ICJ0cmFuc2NvZGUtYXBwc2VhcmNoQGsua3VidXNoYUBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}, "40": {"version": "9", "sha256": "0ia3f8pmnyzjvg7di0cgy7n6ppbpkma6y0xlwjb8hhp5wz3a11s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIFJ1c3NpYW4sIFVrcmFpbmlhbiBsYW5ncykiLAogICJuYW1lIjogIlRyYW5zY29kZSBBcHAgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGF0eWFuL2dub21lLWV4dGVuc2lvbi10cmFuc2NvZGUtc2VhcmNoYXBwIiwKICAidXVpZCI6ICJ0cmFuc2NvZGUtYXBwc2VhcmNoQGsua3VidXNoYUBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "0ia3f8pmnyzjvg7di0cgy7n6ppbpkma6y0xlwjb8hhp5wz3a11s1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaGluZyBhcHBzIGJvdGggZGlyZWN0IGFuZCB0cmFuc2NvZGVkIG5hbWUgKEVuZ2xpc2gsIFJ1c3NpYW4sIFVrcmFpbmlhbiBsYW5ncykiLAogICJuYW1lIjogIlRyYW5zY29kZSBBcHAgU2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdGF0eWFuL2dub21lLWV4dGVuc2lvbi10cmFuc2NvZGUtc2VhcmNoYXBwIiwKICAidXVpZCI6ICJ0cmFuc2NvZGUtYXBwc2VhcmNoQGsua3VidXNoYUBnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}}}
 , {"uuid": "synaptic-button@fthx", "name": "Synaptic Button", "pname": "synaptic-button", "description": "Button that directly starts Synaptic package manager.\n\n For snap management without Snap Store, consider Snap Manager extension.", "link": "https://extensions.gnome.org/extension/938/synaptic-button/", "shell_version_map": {"38": {"version": "4", "sha256": "0wdi35qz5rxs4fvcxlrvlyslrspsgfkryvh0na9vakbvhpmv7skv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiB0aGF0IGRpcmVjdGx5IHN0YXJ0cyBTeW5hcHRpYyBwYWNrYWdlIG1hbmFnZXIuXG5cbiBGb3Igc25hcCBtYW5hZ2VtZW50IHdpdGhvdXQgU25hcCBTdG9yZSwgY29uc2lkZXIgU25hcCBNYW5hZ2VyIGV4dGVuc2lvbi4iLAogICJuYW1lIjogIlN5bmFwdGljIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvc3luYXB0aWMtYnV0dG9uIiwKICAidXVpZCI6ICJzeW5hcHRpYy1idXR0b25AZnRoeCIsCiAgInZlcnNpb24iOiA0Cn0="}}}
-, {"uuid": "cpupower@mko-sl.de", "name": "CPU Power Manager", "pname": "cpu-power-manager", "description": "Manage your CPU's frequency scaling driver", "link": "https://extensions.gnome.org/extension/945/cpu-power-manager/", "shell_version_map": {"38": {"version": "23", "sha256": "0qb4ldqpcsd7kangy6gf63pfzsq0g4p92d5gci2d6hhn7iywgskb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB5b3VyIENQVSdzIGZyZXF1ZW5jeSBzY2FsaW5nIGRyaXZlciIsCiAgImxvY2FsZWRpciI6ICIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiQ1BVIFBvd2VyIE1hbmFnZXIiLAogICJzY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1cG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXJ0aW4zMTgyMS9jcHVwb3dlciIsCiAgInV1aWQiOiAiY3B1cG93ZXJAbWtvLXNsLmRlIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
+, {"uuid": "workspace_scroll@squgeim.com.np", "name": "Workspace Scroll", "pname": "workspace-scroll", "description": "Just scroll anywhere in the top panel to change the workspace.", "link": "https://extensions.gnome.org/extension/943/workspace-scroll/", "shell_version_map": {"40": {"version": "6", "sha256": "0pglhzy81zh9wwcmh1ynygkghq64s948k9qaa9vr3k514bq8b8n0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkp1c3Qgc2Nyb2xsIGFueXdoZXJlIGluIHRoZSB0b3AgcGFuZWwgdG8gY2hhbmdlIHRoZSB3b3Jrc3BhY2UuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU2Nyb2xsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MC4yIiwKICAgICI0MC4zIiwKICAgICI0MS4wIiwKICAgICI0MC4xMCIsCiAgICAiNDAuNSIsCiAgICAiNDAuMTEiLAogICAgIjQwLjkiLAogICAgIjQwLjgiLAogICAgIjQwLjciLAogICAgIjQwLjYiLAogICAgIjQwLjQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcXVnZWltL1dvcmtzcGFjZS1TY3JvbGwiLAogICJ1dWlkIjogIndvcmtzcGFjZV9zY3JvbGxAc3F1Z2VpbS5jb20ubnAiLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "0pglhzy81zh9wwcmh1ynygkghq64s948k9qaa9vr3k514bq8b8n0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkp1c3Qgc2Nyb2xsIGFueXdoZXJlIGluIHRoZSB0b3AgcGFuZWwgdG8gY2hhbmdlIHRoZSB3b3Jrc3BhY2UuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU2Nyb2xsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MC4yIiwKICAgICI0MC4zIiwKICAgICI0MS4wIiwKICAgICI0MC4xMCIsCiAgICAiNDAuNSIsCiAgICAiNDAuMTEiLAogICAgIjQwLjkiLAogICAgIjQwLjgiLAogICAgIjQwLjciLAogICAgIjQwLjYiLAogICAgIjQwLjQiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcXVnZWltL1dvcmtzcGFjZS1TY3JvbGwiLAogICJ1dWlkIjogIndvcmtzcGFjZV9zY3JvbGxAc3F1Z2VpbS5jb20ubnAiLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "cpupower@mko-sl.de", "name": "CPU Power Manager", "pname": "cpu-power-manager", "description": "Manage your CPU's frequency scaling driver", "link": "https://extensions.gnome.org/extension/945/cpu-power-manager/", "shell_version_map": {"38": {"version": "26", "sha256": "0w4py02s4xw3acl6iy7bamkbzd728ha908pjg5h9hjivqfbipd90", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB5b3VyIENQVSdzIGZyZXF1ZW5jeSBzY2FsaW5nIGRyaXZlciIsCiAgImxvY2FsZWRpciI6ICIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiQ1BVIFBvd2VyIE1hbmFnZXIiLAogICJzY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1cG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVpbnN0YXBlbC9jcHVwb3dlciIsCiAgInV1aWQiOiAiY3B1cG93ZXJAbWtvLXNsLmRlIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "40": {"version": "26", "sha256": "0w4py02s4xw3acl6iy7bamkbzd728ha908pjg5h9hjivqfbipd90", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB5b3VyIENQVSdzIGZyZXF1ZW5jeSBzY2FsaW5nIGRyaXZlciIsCiAgImxvY2FsZWRpciI6ICIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiQ1BVIFBvd2VyIE1hbmFnZXIiLAogICJzY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1cG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVpbnN0YXBlbC9jcHVwb3dlciIsCiAgInV1aWQiOiAiY3B1cG93ZXJAbWtvLXNsLmRlIiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
 , {"uuid": "world_clock_lite@ailin.nemui", "name": "Panel World Clock (Lite)", "pname": "panel-world-clock-lite", "description": "A world clock for the panel\n\nInstall gnome-clocks (native, NO Flatpak, NO Snap) to get started!\nHint: Eiðar has the same time as UTC\n\nGnome ≤3.14? https://extensions.gnome.org/extension/697/panel-world-clock/", "link": "https://extensions.gnome.org/extension/946/panel-world-clock-lite/", "shell_version_map": {"38": {"version": "11", "sha256": "1l2z6ri0ga526p1zcy9wjidcfj4hs92nv9r0arsmq4xr8581pfpq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyAobmF0aXZlLCBOTyBGbGF0cGFrLCBOTyBTbmFwKSB0byBnZXQgc3RhcnRlZCFcbkhpbnQ6IEVpXHUwMGYwYXIgaGFzIHRoZSBzYW1lIHRpbWUgYXMgVVRDXG5cbkdub21lIFx1MjI2NDMuMTQ/IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzY5Ny9wYW5lbC13b3JsZC1jbG9jay8iLAogICJuYW1lIjogIlBhbmVsIFdvcmxkIENsb2NrIChMaXRlKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3JsZC1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3b3JsZF9jbG9ja19saXRlQGFpbGluLm5lbXVpIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "14", "sha256": "1vlfl934m8l54psnfa4rk5n9k0va3224ksn9l0fdvdcg7daiq5gp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyAobmF0aXZlLCBOTyBGbGF0cGFrLCBOTyBTbmFwKSB0byBnZXQgc3RhcnRlZCFcbkhpbnQ6IEVpXHUwMGYwYXIgaGFzIHRoZSBzYW1lIHRpbWUgYXMgVVRDXG5cbkdub21lIFx1MjI2NDMuMTQ/IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzY5Ny9wYW5lbC13b3JsZC1jbG9jay8iLAogICJuYW1lIjogIlBhbmVsIFdvcmxkIENsb2NrIChMaXRlKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3JsZC1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIndvcmxkX2Nsb2NrX2xpdGVAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "1vlfl934m8l54psnfa4rk5n9k0va3224ksn9l0fdvdcg7daiq5gp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgd29ybGQgY2xvY2sgZm9yIHRoZSBwYW5lbFxuXG5JbnN0YWxsIGdub21lLWNsb2NrcyAobmF0aXZlLCBOTyBGbGF0cGFrLCBOTyBTbmFwKSB0byBnZXQgc3RhcnRlZCFcbkhpbnQ6IEVpXHUwMGYwYXIgaGFzIHRoZSBzYW1lIHRpbWUgYXMgVVRDXG5cbkdub21lIFx1MjI2NDMuMTQ/IGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzY5Ny9wYW5lbC13b3JsZC1jbG9jay8iLAogICJuYW1lIjogIlBhbmVsIFdvcmxkIENsb2NrIChMaXRlKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3JsZC1jbG9jayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIndvcmxkX2Nsb2NrX2xpdGVAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
-, {"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": "25", "sha256": "0aqcw2lbcya5x9xx2y8srfjjar9jww9hzsxqx44h65jdw1zdl1vl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbmFpbGZhcm1lci9nbm9tZS1zaGVsbC1kaW0tb24tYmF0dGVyeS1leHRlbnNpb24iLAogICJ1dWlkIjogImRpbS1vbi1iYXR0ZXJ5QG5haWxmYXJtZXIubmFpbGZhcm1lci5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "40": {"version": "25", "sha256": "0aqcw2lbcya5x9xx2y8srfjjar9jww9hzsxqx44h65jdw1zdl1vl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbmFpbGZhcm1lci9nbm9tZS1zaGVsbC1kaW0tb24tYmF0dGVyeS1leHRlbnNpb24iLAogICJ1dWlkIjogImRpbS1vbi1iYXR0ZXJ5QG5haWxmYXJtZXIubmFpbGZhcm1lci5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}}}
+, {"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": "26", "sha256": "0nh8z4by722b9f11lk8akgwz1d8dm1v4r4129lbbvfm2qgg2f1mi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL25haWxmYXJtZXIvZ25vbWUtc2hlbGwtZGltLW9uLWJhdHRlcnktZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJkaW0tb24tYmF0dGVyeUBuYWlsZmFybWVyLm5haWxmYXJtZXIuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "40": {"version": "26", "sha256": "0nh8z4by722b9f11lk8akgwz1d8dm1v4r4129lbbvfm2qgg2f1mi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL25haWxmYXJtZXIvZ25vbWUtc2hlbGwtZGltLW9uLWJhdHRlcnktZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJkaW0tb24tYmF0dGVyeUBuYWlsZmFybWVyLm5haWxmYXJtZXIuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "41": {"version": "26", "sha256": "0nh8z4by722b9f11lk8akgwz1d8dm1v4r4129lbbvfm2qgg2f1mi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGltcyB0aGUgc2NyZWVuIHdoZW4gdGhlIG1hY2hpbmUgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IHBvd2VyLiIsCiAgIm5hbWUiOiAiRGltIE9uIEJhdHRlcnkgUG93ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL25haWxmYXJtZXIvZ25vbWUtc2hlbGwtZGltLW9uLWJhdHRlcnktZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJkaW0tb24tYmF0dGVyeUBuYWlsZmFybWVyLm5haWxmYXJtZXIuY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
 , {"uuid": "bottompanel@tmoer93", "name": "BottomPanel", "pname": "bottompanel", "description": "Moves the GNOME panel to the bottom of the screen\n\nSource here: https://github.com/Thoma5/gnome-shell-extension-bottompanel", "link": "https://extensions.gnome.org/extension/949/bottompanel/", "shell_version_map": {"38": {"version": "11", "sha256": "0r4z1pww6w8q0f7gzsmc363hd2178r40ifsppyigj67mwwik3mkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSBHTk9NRSBwYW5lbCB0byB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW5cblxuU291cmNlIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9UaG9tYTUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWJvdHRvbXBhbmVsIiwKICAibmFtZSI6ICJCb3R0b21QYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJib3R0b21wYW5lbEB0bW9lcjkzIiwKICAidmVyc2lvbiI6IDExCn0="}}}
 , {"uuid": "dejadup-backup@fthx", "name": "Déjà Dup Backup Button", "pname": "deja-dup-backup-button", "description": "Button that directly starts Déjà Dup backup, following Déjà Dup backup settings.\n\n It simply runs 'deja-dup --backup' and shows Déjà Dup window during backup.", "link": "https://extensions.gnome.org/extension/955/deja-dup-backup-button/", "shell_version_map": {"38": {"version": "7", "sha256": "1d5xl18297zlw6g6jqwvwf32yiiqbz7jqyb4pz691d8ngqvvlwpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiB0aGF0IGRpcmVjdGx5IHN0YXJ0cyBEXHUwMGU5alx1MDBlMCBEdXAgYmFja3VwLCBmb2xsb3dpbmcgRFx1MDBlOWpcdTAwZTAgRHVwIGJhY2t1cCBzZXR0aW5ncy5cblxuIEl0IHNpbXBseSBydW5zICdkZWphLWR1cCAtLWJhY2t1cCcgYW5kIHNob3dzIERcdTAwZTlqXHUwMGUwIER1cCB3aW5kb3cgZHVyaW5nIGJhY2t1cC4iLAogICJuYW1lIjogIkRcdTAwZTlqXHUwMGUwIER1cCBCYWNrdXAgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvZGVqYWR1cC1iYWNrdXAiLAogICJ1dWlkIjogImRlamFkdXAtYmFja3VwQGZ0aHgiLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "1d5xl18297zlw6g6jqwvwf32yiiqbz7jqyb4pz691d8ngqvvlwpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiB0aGF0IGRpcmVjdGx5IHN0YXJ0cyBEXHUwMGU5alx1MDBlMCBEdXAgYmFja3VwLCBmb2xsb3dpbmcgRFx1MDBlOWpcdTAwZTAgRHVwIGJhY2t1cCBzZXR0aW5ncy5cblxuIEl0IHNpbXBseSBydW5zICdkZWphLWR1cCAtLWJhY2t1cCcgYW5kIHNob3dzIERcdTAwZTlqXHUwMGUwIER1cCB3aW5kb3cgZHVyaW5nIGJhY2t1cC4iLAogICJuYW1lIjogIkRcdTAwZTlqXHUwMGUwIER1cCBCYWNrdXAgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvZGVqYWR1cC1iYWNrdXAiLAogICJ1dWlkIjogImRlamFkdXAtYmFja3VwQGZ0aHgiLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"uuid": "switcher@landau.fi", "name": "Switcher", "pname": "switcher", "description": "Switch windows or launch applications quickly by typing\n\nUse the configured global hotkey (Super+w by default) to open a list of current windows. Type a part of the name or title of the application window you want to activate and hit enter or click on the item you wish to activate. You can use the arrow keys to navigate among the filtered selection and type several space separated search terms to filter further. If your search matches launchable apps, those are shown in the list too. Use Esc or click anywhere outside the switcher to cancel.\n\nYou can customize the look and feel and functionality in the preferences.", "link": "https://extensions.gnome.org/extension/973/switcher/", "shell_version_map": {"38": {"version": "32", "sha256": "188bfj4b0kslja757fc70xhjqj5blk2jcdjfd2pvm6g2cxslfjg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWVsbGFuZGF1L3N3aXRjaGVyIiwKICAidXVpZCI6ICJzd2l0Y2hlckBsYW5kYXUuZmkiLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "40": {"version": "33", "sha256": "1dk91bvmjqr4hrsldb6ikvrd6ihk5flbg8wfhfnmq4c18kynsv9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGxhbmRhdS9zd2l0Y2hlciIsCiAgInV1aWQiOiAic3dpdGNoZXJAbGFuZGF1LmZpIiwKICAidmVyc2lvbiI6IDMzCn0="}, "41": {"version": "34", "sha256": "1bgj8w7qlz4kv70k6rjmm5f5rygn2n5fp0rd29jj1wfm50hfvzg1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3aW5kb3dzIG9yIGxhdW5jaCBhcHBsaWNhdGlvbnMgcXVpY2tseSBieSB0eXBpbmdcblxuVXNlIHRoZSBjb25maWd1cmVkIGdsb2JhbCBob3RrZXkgKFN1cGVyK3cgYnkgZGVmYXVsdCkgdG8gb3BlbiBhIGxpc3Qgb2YgY3VycmVudCB3aW5kb3dzLiBUeXBlIGEgcGFydCBvZiB0aGUgbmFtZSBvciB0aXRsZSBvZiB0aGUgYXBwbGljYXRpb24gd2luZG93IHlvdSB3YW50IHRvIGFjdGl2YXRlIGFuZCBoaXQgZW50ZXIgb3IgY2xpY2sgb24gdGhlIGl0ZW0geW91IHdpc2ggdG8gYWN0aXZhdGUuIFlvdSBjYW4gdXNlIHRoZSBhcnJvdyBrZXlzIHRvIG5hdmlnYXRlIGFtb25nIHRoZSBmaWx0ZXJlZCBzZWxlY3Rpb24gYW5kIHR5cGUgc2V2ZXJhbCBzcGFjZSBzZXBhcmF0ZWQgc2VhcmNoIHRlcm1zIHRvIGZpbHRlciBmdXJ0aGVyLiBJZiB5b3VyIHNlYXJjaCBtYXRjaGVzIGxhdW5jaGFibGUgYXBwcywgdGhvc2UgYXJlIHNob3duIGluIHRoZSBsaXN0IHRvby4gVXNlIEVzYyBvciBjbGljayBhbnl3aGVyZSBvdXRzaWRlIHRoZSBzd2l0Y2hlciB0byBjYW5jZWwuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIGFuZCBmdW5jdGlvbmFsaXR5IGluIHRoZSBwcmVmZXJlbmNlcy4iLAogICJuYW1lIjogIlN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbGxhbmRhdS9zd2l0Y2hlciIsCiAgInV1aWQiOiAic3dpdGNoZXJAbGFuZGF1LmZpIiwKICAidmVyc2lvbiI6IDM0Cn0="}}}
 , {"uuid": "keyboard_modifiers_status@sneetsher", "name": "Keyboard Modifiers Status", "pname": "keyboard-modifiers-status", "description": "Shows keyboard modifiers status. It's useful when sticky keys are active.", "link": "https://extensions.gnome.org/extension/975/keyboard-modifiers-status/", "shell_version_map": {"38": {"version": "12", "sha256": "0j4pcn7qkxnwhxshb9m1mh5zhr9hhh3xcjzsgn2csmw064nzb1g9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "12", "sha256": "0j4pcn7qkxnwhxshb9m1mh5zhr9hhh3xcjzsgn2csmw064nzb1g9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDEyCn0="}, "41": {"version": "12", "sha256": "0j4pcn7qkxnwhxshb9m1mh5zhr9hhh3xcjzsgn2csmw064nzb1g9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGtleWJvYXJkIG1vZGlmaWVycyBzdGF0dXMuIEl0J3MgdXNlZnVsIHdoZW4gc3RpY2t5IGtleXMgYXJlIGFjdGl2ZS4iLAogICJuYW1lIjogIktleWJvYXJkIE1vZGlmaWVycyBTdGF0dXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic25lZXRzaGVyQGxvY2FsaG9zdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc25lZXRzaGVyL0tleWJvYXJkLU1vZGlmaWVycy1TdGF0dXMiLAogICJ1dWlkIjogImtleWJvYXJkX21vZGlmaWVyc19zdGF0dXNAc25lZXRzaGVyIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
 , {"uuid": "harddiskled@bijidroid.gmail.com", "name": "Harddisk LED", "pname": "harddisk-led", "description": "Show harddisk activity (IO speed read/write and LED). Click to change led size", "link": "https://extensions.gnome.org/extension/988/harddisk-led/", "shell_version_map": {"38": {"version": "25", "sha256": "012y9z4hj9iqm5k89g7z6q99agz94p6jdwr4bhw2nkv5balx0x4j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIsCiAgICAiNDciLAogICAgIjQ4IiwKICAgICI0OSIsCiAgICAiNTAiLAogICAgIjUxIiwKICAgICI1MiIsCiAgICAiNTMiLAogICAgIjU0IiwKICAgICI1NSIsCiAgICAiNTYiLAogICAgIjU3IiwKICAgICI1OCIsCiAgICAiNTkiLAogICAgIjYwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9oYXJkZGlza2xlZCIsCiAgInV1aWQiOiAiaGFyZGRpc2tsZWRAYmlqaWRyb2lkLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}, "40": {"version": "25", "sha256": "012y9z4hj9iqm5k89g7z6q99agz94p6jdwr4bhw2nkv5balx0x4j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIsCiAgICAiNDciLAogICAgIjQ4IiwKICAgICI0OSIsCiAgICAiNTAiLAogICAgIjUxIiwKICAgICI1MiIsCiAgICAiNTMiLAogICAgIjU0IiwKICAgICI1NSIsCiAgICAiNTYiLAogICAgIjU3IiwKICAgICI1OCIsCiAgICAiNTkiLAogICAgIjYwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9oYXJkZGlza2xlZCIsCiAgInV1aWQiOiAiaGFyZGRpc2tsZWRAYmlqaWRyb2lkLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}, "41": {"version": "25", "sha256": "012y9z4hj9iqm5k89g7z6q99agz94p6jdwr4bhw2nkv5balx0x4j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgaGFyZGRpc2sgYWN0aXZpdHkgKElPIHNwZWVkIHJlYWQvd3JpdGUgYW5kIExFRCkuIENsaWNrIHRvIGNoYW5nZSBsZWQgc2l6ZSIsCiAgIm5hbWUiOiAiSGFyZGRpc2sgTEVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICI0MyIsCiAgICAiNDQiLAogICAgIjQ1IiwKICAgICI0NiIsCiAgICAiNDciLAogICAgIjQ4IiwKICAgICI0OSIsCiAgICAiNTAiLAogICAgIjUxIiwKICAgICI1MiIsCiAgICAiNTMiLAogICAgIjU0IiwKICAgICI1NSIsCiAgICAiNTYiLAogICAgIjU3IiwKICAgICI1OCIsCiAgICAiNTkiLAogICAgIjYwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9oYXJkZGlza2xlZCIsCiAgInV1aWQiOiAiaGFyZGRpc2tsZWRAYmlqaWRyb2lkLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNQp9"}}}
-, {"uuid": "syncthingicon@jay.strict@posteo.de", "name": "Syncthing Icon", "pname": "syncthing-icon", "description": "Display Syncthing Icon in Top Bar", "link": "https://extensions.gnome.org/extension/989/syncthing-icon/", "shell_version_map": {"40": {"version": "32", "sha256": "1dwjzpmaxl39nzgcnmhpg5bnpx0p1cbqdykd3h1slrwfv91ir4mk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgU3luY3RoaW5nIEljb24gaW4gVG9wIEJhciIsCiAgIm5hbWUiOiAiU3luY3RoaW5nIEljb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3luY3RoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qYXlzdHJpY3Rvci9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nIiwKICAidXVpZCI6ICJzeW5jdGhpbmdpY29uQGpheS5zdHJpY3RAcG9zdGVvLmRlIiwKICAidmVyc2lvbiI6IDMyCn0="}, "41": {"version": "32", "sha256": "1dwjzpmaxl39nzgcnmhpg5bnpx0p1cbqdykd3h1slrwfv91ir4mk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgU3luY3RoaW5nIEljb24gaW4gVG9wIEJhciIsCiAgIm5hbWUiOiAiU3luY3RoaW5nIEljb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3luY3RoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qYXlzdHJpY3Rvci9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nIiwKICAidXVpZCI6ICJzeW5jdGhpbmdpY29uQGpheS5zdHJpY3RAcG9zdGVvLmRlIiwKICAidmVyc2lvbiI6IDMyCn0="}}}
+, {"uuid": "syncthingicon@jay.strict@posteo.de", "name": "Syncthing Icon", "pname": "syncthing-icon", "description": "Display Syncthing Icon in Top Bar", "link": "https://extensions.gnome.org/extension/989/syncthing-icon/", "shell_version_map": {"40": {"version": "33", "sha256": "0lg2k9p033w9dff5g16xai9rvjmw85qvhrx17dw8f228nfm93fik", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgU3luY3RoaW5nIEljb24gaW4gVG9wIEJhciIsCiAgIm5hbWUiOiAiU3luY3RoaW5nIEljb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3luY3RoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qYXlzdHJpY3Rvci9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nIiwKICAidXVpZCI6ICJzeW5jdGhpbmdpY29uQGpheS5zdHJpY3RAcG9zdGVvLmRlIiwKICAidmVyc2lvbiI6IDMzCn0="}, "41": {"version": "33", "sha256": "0lg2k9p033w9dff5g16xai9rvjmw85qvhrx17dw8f228nfm93fik", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgU3luY3RoaW5nIEljb24gaW4gVG9wIEJhciIsCiAgIm5hbWUiOiAiU3luY3RoaW5nIEljb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3luY3RoaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qYXlzdHJpY3Rvci9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nIiwKICAidXVpZCI6ICJzeW5jdGhpbmdpY29uQGpheS5zdHJpY3RAcG9zdGVvLmRlIiwKICAidmVyc2lvbiI6IDMzCn0="}}}
 , {"uuid": "window-search-provider@quelltexter.org", "name": "Window Search Provider", "pname": "window-search-provider", "description": "Provide active windows as search results in overview", "link": "https://extensions.gnome.org/extension/1001/window-search-provider/", "shell_version_map": {"38": {"version": "2", "sha256": "030s38akm3fw7nq9v4wfgzhw716b51l2z3szns0gcwc0gx5zpfjv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgYWN0aXZlIHdpbmRvd3MgYXMgc2VhcmNoIHJlc3VsdHMgaW4gb3ZlcnZpZXciLAogICJuYW1lIjogIldpbmRvdyBTZWFyY2ggUHJvdmlkZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjMuNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rbG9yZW56L2dub21lLXNoZWxsLXdpbmRvdy1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogIndpbmRvdy1zZWFyY2gtcHJvdmlkZXJAcXVlbGx0ZXh0ZXIub3JnIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "windowIsReady_Remover@nunofarruca@gmail.com", "name": "Window Is Ready - Notification Remover", "pname": "window-is-ready-notification-remover", "description": "Removes window is ready Notification", "link": "https://extensions.gnome.org/extension/1007/window-is-ready-notification-remover/", "shell_version_map": {"38": {"version": "13", "sha256": "1wxhdbvra0sc22wja9pcrsj5q4ny4iy4d7axlqh7yvm00zp72f3g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}, "40": {"version": "13", "sha256": "1wxhdbvra0sc22wja9pcrsj5q4ny4iy4d7axlqh7yvm00zp72f3g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "1wxhdbvra0sc22wja9pcrsj5q4ny4iy4d7axlqh7yvm00zp72f3g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgd2luZG93IGlzIHJlYWR5IE5vdGlmaWNhdGlvbiIsCiAgImxpY2Vuc2UiOiAiQXBhY2hlLTIuMCIsCiAgIm5hbWUiOiAiV2luZG93IElzIFJlYWR5IC0gTm90aWZpY2F0aW9uIFJlbW92ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL251bm9mYXJydWNhL1dpbmRvd0lzUmVhZHlfUmVtb3ZlciIsCiAgInV1aWQiOiAid2luZG93SXNSZWFkeV9SZW1vdmVyQG51bm9mYXJydWNhQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
 , {"uuid": "arch-update@RaphaelRochet", "name": "Arch Linux Updates Indicator", "pname": "archlinux-updates-indicator", "description": "Update indicator for Arch Linux and GNOME Shell.\n** Note : you now need to install the package pacman-contrib to use the checkupdates script. **\n  Can support AUR or other distros by changing command used to check for and apply updates.", "link": "https://extensions.gnome.org/extension/1010/archlinux-updates-indicator/", "shell_version_map": {"38": {"version": "39", "sha256": "15s0cs41h01kb8dx231ww06rxalmz7cr173z7pm9sfkvs2106dhl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy4iLAogICJuYW1lIjogIkFyY2ggTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMSIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXJjaC11cGRhdGUiLAogICJ1dWlkIjogImFyY2gtdXBkYXRlQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogMzkKfQ=="}, "40": {"version": "45", "sha256": "09vj5cx0c7ykbglgzzh6dkgzf3rdpzxa9nkx35q41cizv1lv6k1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy4iLAogICJuYW1lIjogIkFyY2ggTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXJjaC11cGRhdGUiLAogICJ1dWlkIjogImFyY2gtdXBkYXRlQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogNDUKfQ=="}, "41": {"version": "45", "sha256": "09vj5cx0c7ykbglgzzh6dkgzf3rdpzxa9nkx35q41cizv1lv6k1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEFyY2ggTGludXggYW5kIEdOT01FIFNoZWxsLlxuKiogTm90ZSA6IHlvdSBub3cgbmVlZCB0byBpbnN0YWxsIHRoZSBwYWNrYWdlIHBhY21hbi1jb250cmliIHRvIHVzZSB0aGUgY2hlY2t1cGRhdGVzIHNjcmlwdC4gKipcbiAgQ2FuIHN1cHBvcnQgQVVSIG9yIG90aGVyIGRpc3Ryb3MgYnkgY2hhbmdpbmcgY29tbWFuZCB1c2VkIHRvIGNoZWNrIGZvciBhbmQgYXBwbHkgdXBkYXRlcy4iLAogICJuYW1lIjogIkFyY2ggTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXJjaC11cGRhdGUiLAogICJ1dWlkIjogImFyY2gtdXBkYXRlQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogNDUKfQ=="}}}
 , {"uuid": "dynamic-panel-transparency@rockon999.github.io", "name": "Dynamic Panel Transparency", "pname": "dynamic-panel-transparency", "description": "Miss dynamic panel transparency in 3.32 and up? Try the original dynamic panel with much more customization! This extension will fade your top panel to nothingness when there are no maximized windows present! Never again will the panel be abruptly darkened.\n\nMay be incompatible with some extensions that make extensive changes to the panel.\n\nIf your theme isn't working correctly with this extension enable 'Remove Excessive Panel Styling' in the Background section of preferences. This particularly impacts the default *Ubuntu* theme!", "link": "https://extensions.gnome.org/extension/1011/dynamic-panel-transparency/", "shell_version_map": {"38": {"version": "34", "sha256": "10w5kvmspy4rp4jnwx0rj2crbdyi1lxv81vhi8zx490fhwgmlkvl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pc3MgZHluYW1pYyBwYW5lbCB0cmFuc3BhcmVuY3kgaW4gMy4zMiBhbmQgdXA/IFRyeSB0aGUgb3JpZ2luYWwgZHluYW1pYyBwYW5lbCB3aXRoIG11Y2ggbW9yZSBjdXN0b21pemF0aW9uISBUaGlzIGV4dGVuc2lvbiB3aWxsIGZhZGUgeW91ciB0b3AgcGFuZWwgdG8gbm90aGluZ25lc3Mgd2hlbiB0aGVyZSBhcmUgbm8gbWF4aW1pemVkIHdpbmRvd3MgcHJlc2VudCEgTmV2ZXIgYWdhaW4gd2lsbCB0aGUgcGFuZWwgYmUgYWJydXB0bHkgZGFya2VuZWQuXG5cbk1heSBiZSBpbmNvbXBhdGlibGUgd2l0aCBzb21lIGV4dGVuc2lvbnMgdGhhdCBtYWtlIGV4dGVuc2l2ZSBjaGFuZ2VzIHRvIHRoZSBwYW5lbC5cblxuSWYgeW91ciB0aGVtZSBpc24ndCB3b3JraW5nIGNvcnJlY3RseSB3aXRoIHRoaXMgZXh0ZW5zaW9uIGVuYWJsZSAnUmVtb3ZlIEV4Y2Vzc2l2ZSBQYW5lbCBTdHlsaW5nJyBpbiB0aGUgQmFja2dyb3VuZCBzZWN0aW9uIG9mIHByZWZlcmVuY2VzLiBUaGlzIHBhcnRpY3VsYXJseSBpbXBhY3RzIHRoZSBkZWZhdWx0ICpVYnVudHUqIHRoZW1lISIsCiAgImdldHRleHQtZG9tYWluIjogImR5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5IiwKICAibmFtZSI6ICJEeW5hbWljIFBhbmVsIFRyYW5zcGFyZW5jeSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5keW5hbWljLXBhbmVsLXRyYW5zcGFyZW5jeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2V3bHNoL2R5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5LyIsCiAgInV1aWQiOiAiZHluYW1pYy1wYW5lbC10cmFuc3BhcmVuY3lAcm9ja29uOTk5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzNAp9"}, "40": {"version": "35", "sha256": "1znc564xd7n4k2klfc0kkip6hmadqdsa50p0sq0717h407m9p0vx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pc3MgZHluYW1pYyBwYW5lbCB0cmFuc3BhcmVuY3kgaW4gMy4zMiBhbmQgdXA/IFRyeSB0aGUgb3JpZ2luYWwgZHluYW1pYyBwYW5lbCB3aXRoIG11Y2ggbW9yZSBjdXN0b21pemF0aW9uISBUaGlzIGV4dGVuc2lvbiB3aWxsIGZhZGUgeW91ciB0b3AgcGFuZWwgdG8gbm90aGluZ25lc3Mgd2hlbiB0aGVyZSBhcmUgbm8gbWF4aW1pemVkIHdpbmRvd3MgcHJlc2VudCEgTmV2ZXIgYWdhaW4gd2lsbCB0aGUgcGFuZWwgYmUgYWJydXB0bHkgZGFya2VuZWQuXG5cbk1heSBiZSBpbmNvbXBhdGlibGUgd2l0aCBzb21lIGV4dGVuc2lvbnMgdGhhdCBtYWtlIGV4dGVuc2l2ZSBjaGFuZ2VzIHRvIHRoZSBwYW5lbC5cblxuSWYgeW91ciB0aGVtZSBpc24ndCB3b3JraW5nIGNvcnJlY3RseSB3aXRoIHRoaXMgZXh0ZW5zaW9uIGVuYWJsZSAnUmVtb3ZlIEV4Y2Vzc2l2ZSBQYW5lbCBTdHlsaW5nJyBpbiB0aGUgQmFja2dyb3VuZCBzZWN0aW9uIG9mIHByZWZlcmVuY2VzLiBUaGlzIHBhcnRpY3VsYXJseSBpbXBhY3RzIHRoZSBkZWZhdWx0ICpVYnVudHUqIHRoZW1lISIsCiAgImdldHRleHQtZG9tYWluIjogImR5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5IiwKICAibmFtZSI6ICJEeW5hbWljIFBhbmVsIFRyYW5zcGFyZW5jeSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5keW5hbWljLXBhbmVsLXRyYW5zcGFyZW5jeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ld2xzaC9keW5hbWljLXBhbmVsLXRyYW5zcGFyZW5jeS8iLAogICJ1dWlkIjogImR5bmFtaWMtcGFuZWwtdHJhbnNwYXJlbmN5QHJvY2tvbjk5OS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMzUKfQ=="}}}
 , {"uuid": "icinga-checker@sosulski.net", "name": "Icinga checker", "pname": "icinga-checker", "description": "Icinga/Nagios checker", "link": "https://extensions.gnome.org/extension/1029/icinga-checker/", "shell_version_map": {"38": {"version": "12", "sha256": "194vk0i02zvsxaxw9iq63xjhdld729vrq8wwbl6i0p89xp1mcqcr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImljaW5nYS1jaGVja2VyQHNvc3Vsc2tpLm5ldCIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "194vk0i02zvsxaxw9iq63xjhdld729vrq8wwbl6i0p89xp1mcqcr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImljaW5nYS1jaGVja2VyQHNvc3Vsc2tpLm5ldCIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "194vk0i02zvsxaxw9iq63xjhdld729vrq8wwbl6i0p89xp1mcqcr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkljaW5nYS9OYWdpb3MgY2hlY2tlciIsCiAgImV4dGVuc2lvbi1pZCI6ICJpY2luZ2EtY2hlY2tlciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkljaW5nYSBjaGVja2VyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhd2VsQHNvc3Vsc2tpLm5ldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5pY2luZ2EtY2hlY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImljaW5nYS1jaGVja2VyQHNvc3Vsc2tpLm5ldCIsCiAgInZlcnNpb24iOiAxMgp9"}}}
 , {"uuid": "taskwhisperer-extension@infinicode.de", "name": "TaskWhisperer", "pname": "taskwhisperer", "description": "Taskwhisperer is a extension for TaskWarrior Application https://taskwarrior.org. It is to display upcoming tasks and task details as well as to create and modify them.\n", "link": "https://extensions.gnome.org/extension/1039/taskwhisperer/", "shell_version_map": {"38": {"version": "20", "sha256": "067z3j2px4rz5yspfjx2s6p5j4l1svxllclahnf3zmv1nlbhzq8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJUYXNrV2hpc3BlcmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvdGFza3doaXNwZXJlciIsCiAgInV1aWQiOiAidGFza3doaXNwZXJlci1leHRlbnNpb25AaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "20", "sha256": "067z3j2px4rz5yspfjx2s6p5j4l1svxllclahnf3zmv1nlbhzq8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2t3aGlzcGVyZXIgaXMgYSBleHRlbnNpb24gZm9yIFRhc2tXYXJyaW9yIEFwcGxpY2F0aW9uIGh0dHBzOi8vdGFza3dhcnJpb3Iub3JnLiBJdCBpcyB0byBkaXNwbGF5IHVwY29taW5nIHRhc2tzIGFuZCB0YXNrIGRldGFpbHMgYXMgd2VsbCBhcyB0byBjcmVhdGUgYW5kIG1vZGlmeSB0aGVtLlxuIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJUYXNrV2hpc3BlcmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvdGFza3doaXNwZXJlciIsCiAgInV1aWQiOiAidGFza3doaXNwZXJlci1leHRlbnNpb25AaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiAyMAp9"}}}
-, {"uuid": "randomwallpaper@iflow.space", "name": "Random Wallpaper", "pname": "random-wallpaper", "description": "Fetch a random wallpaper from an online source and set it as a desktop background. \nThe desktop background can be updated periodically or manually.\n\nFeatures:\nMany different online sources with filters:\n        - Unsplash (https://unsplash.com/)\n        - Wallhaven (https://alpha.wallhaven.cc/)\n        - Reddit (https://reddit.com)\n        - Basically any JSON API/File (see Examples on GitHub)\nHistory of previous images\nSet lock screen image\nAutomatic renewal (Auto-Fetching)", "link": "https://extensions.gnome.org/extension/1040/random-wallpaper/", "shell_version_map": {"38": {"version": "22", "sha256": "0gwcqd5wzjnp3r4mpcbacbqk9j9v4pxh2wlcl5ssinj8z4pxm5qj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vYWxwaGEud2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNC41IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "26", "sha256": "0izjsa7h1x3yn67dxw1a1mp6qmn7xpp39ay3iha5i2pisznfgrni", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoIGEgcmFuZG9tIHdhbGxwYXBlciBmcm9tIGFuIG9ubGluZSBzb3VyY2UgYW5kIHNldCBpdCBhcyBhIGRlc2t0b3AgYmFja2dyb3VuZC4gXG5UaGUgZGVza3RvcCBiYWNrZ3JvdW5kIGNhbiBiZSB1cGRhdGVkIHBlcmlvZGljYWxseSBvciBtYW51YWxseS5cblxuRmVhdHVyZXM6XG5NYW55IGRpZmZlcmVudCBvbmxpbmUgc291cmNlcyB3aXRoIGZpbHRlcnM6XG4gICAgICAgIC0gVW5zcGxhc2ggKGh0dHBzOi8vdW5zcGxhc2guY29tLylcbiAgICAgICAgLSBXYWxsaGF2ZW4gKGh0dHBzOi8vYWxwaGEud2FsbGhhdmVuLmNjLylcbiAgICAgICAgLSBSZWRkaXQgKGh0dHBzOi8vcmVkZGl0LmNvbSlcbiAgICAgICAgLSBCYXNpY2FsbHkgYW55IEpTT04gQVBJL0ZpbGUgKHNlZSBFeGFtcGxlcyBvbiBHaXRIdWIpXG5IaXN0b3J5IG9mIHByZXZpb3VzIGltYWdlc1xuU2V0IGxvY2sgc2NyZWVuIGltYWdlXG5BdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNi4wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pZmwwdy9SYW5kb21XYWxscGFwZXJHbm9tZTMiLAogICJ1dWlkIjogInJhbmRvbXdhbGxwYXBlckBpZmxvdy5zcGFjZSIsCiAgInZlcnNpb24iOiAyNgp9"}}}
+, {"uuid": "randomwallpaper@iflow.space", "name": "Random Wallpaper", "pname": "random-wallpaper", "description": "Fetches a random wallpaper from an online source and sets it as desktop background. \nThe desktop background can be updated periodically or manually.\n\nFeatures\n- Various online sources \n- History of previous images\n- Set lock screen image\n- Automatic renewal (Auto-Fetching)", "link": "https://extensions.gnome.org/extension/1040/random-wallpaper/", "shell_version_map": {"38": {"version": "22", "sha256": "19g2ij3i3xqhv5klc9070h35n1cfd44vi5ybm3gc0vwcipiw4g4n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoZXMgYSByYW5kb20gd2FsbHBhcGVyIGZyb20gYW4gb25saW5lIHNvdXJjZSBhbmQgc2V0cyBpdCBhcyBkZXNrdG9wIGJhY2tncm91bmQuIFxuVGhlIGRlc2t0b3AgYmFja2dyb3VuZCBjYW4gYmUgdXBkYXRlZCBwZXJpb2RpY2FsbHkgb3IgbWFudWFsbHkuXG5cbkZlYXR1cmVzXG4tIFZhcmlvdXMgb25saW5lIHNvdXJjZXMgXG4tIEhpc3Rvcnkgb2YgcHJldmlvdXMgaW1hZ2VzXG4tIFNldCBsb2NrIHNjcmVlbiBpbWFnZVxuLSBBdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNC41IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2lmbDB3L1JhbmRvbVdhbGxwYXBlckdub21lMyIsCiAgInV1aWQiOiAicmFuZG9td2FsbHBhcGVyQGlmbG93LnNwYWNlIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "27", "sha256": "0xzm3pskzcdcqbpdncbkz1c39g525z8bbz4azamxlpzh29bb8wd5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoZXMgYSByYW5kb20gd2FsbHBhcGVyIGZyb20gYW4gb25saW5lIHNvdXJjZSBhbmQgc2V0cyBpdCBhcyBkZXNrdG9wIGJhY2tncm91bmQuIFxuVGhlIGRlc2t0b3AgYmFja2dyb3VuZCBjYW4gYmUgdXBkYXRlZCBwZXJpb2RpY2FsbHkgb3IgbWFudWFsbHkuXG5cbkZlYXR1cmVzXG4tIFZhcmlvdXMgb25saW5lIHNvdXJjZXMgXG4tIEhpc3Rvcnkgb2YgcHJldmlvdXMgaW1hZ2VzXG4tIFNldCBsb2NrIHNjcmVlbiBpbWFnZVxuLSBBdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy4wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMjcKfQ=="}, "41": {"version": "27", "sha256": "0xzm3pskzcdcqbpdncbkz1c39g525z8bbz4azamxlpzh29bb8wd5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZldGNoZXMgYSByYW5kb20gd2FsbHBhcGVyIGZyb20gYW4gb25saW5lIHNvdXJjZSBhbmQgc2V0cyBpdCBhcyBkZXNrdG9wIGJhY2tncm91bmQuIFxuVGhlIGRlc2t0b3AgYmFja2dyb3VuZCBjYW4gYmUgdXBkYXRlZCBwZXJpb2RpY2FsbHkgb3IgbWFudWFsbHkuXG5cbkZlYXR1cmVzXG4tIFZhcmlvdXMgb25saW5lIHNvdXJjZXMgXG4tIEhpc3Rvcnkgb2YgcHJldmlvdXMgaW1hZ2VzXG4tIFNldCBsb2NrIHNjcmVlbiBpbWFnZVxuLSBBdXRvbWF0aWMgcmVuZXdhbCAoQXV0by1GZXRjaGluZykiLAogICJuYW1lIjogIlJhbmRvbSBXYWxscGFwZXIiLAogICJzZW1hbnRpYy12ZXJzaW9uIjogIjIuNy4wIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLmlmbG93LnJhbmRvbXdhbGxwYXBlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWZsMHcvUmFuZG9tV2FsbHBhcGVyR25vbWUzIiwKICAidXVpZCI6ICJyYW5kb213YWxscGFwZXJAaWZsb3cuc3BhY2UiLAogICJ2ZXJzaW9uIjogMjcKfQ=="}}}
 , {"uuid": "gse-haguichi-indicator@ztefn.github.com", "name": "Haguichi Indicator", "pname": "haguichi-indicator", "description": "Lets you control Haguichi directly from the system status area in GNOME Shell.", "link": "https://extensions.gnome.org/extension/1045/haguichi-indicator/", "shell_version_map": {"38": {"version": "17", "sha256": "1g13w8gbryjgv59bzpl9kr4w8sjy1x7b4w0dw4bbk48rpyvzpb9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96dGVmbi9nc2UtaGFndWljaGktaW5kaWNhdG9yIiwKICAidXVpZCI6ICJnc2UtaGFndWljaGktaW5kaWNhdG9yQHp0ZWZuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "40": {"version": "17", "sha256": "1g13w8gbryjgv59bzpl9kr4w8sjy1x7b4w0dw4bbk48rpyvzpb9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96dGVmbi9nc2UtaGFndWljaGktaW5kaWNhdG9yIiwKICAidXVpZCI6ICJnc2UtaGFndWljaGktaW5kaWNhdG9yQHp0ZWZuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "41": {"version": "17", "sha256": "1g13w8gbryjgv59bzpl9kr4w8sjy1x7b4w0dw4bbk48rpyvzpb9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldHMgeW91IGNvbnRyb2wgSGFndWljaGkgZGlyZWN0bHkgZnJvbSB0aGUgc3lzdGVtIHN0YXR1cyBhcmVhIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiSGFndWljaGkgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96dGVmbi9nc2UtaGFndWljaGktaW5kaWNhdG9yIiwKICAidXVpZCI6ICJnc2UtaGFndWljaGktaW5kaWNhdG9yQHp0ZWZuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
 , {"uuid": "timezone@jwendell", "name": "Timezone", "pname": "timezone", "description": "See people with their timezones from the Shell", "link": "https://extensions.gnome.org/extension/1060/timezone/", "shell_version_map": {"40": {"version": "18", "sha256": "1ksb8pm2y4lxjcwn2l0yj6piz5cqgmzx6k4rygx1mbh5y76mwdji", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlZSBwZW9wbGUgd2l0aCB0aGVpciB0aW1lem9uZXMgZnJvbSB0aGUgU2hlbGwiLAogICJuYW1lIjogIlRpbWV6b25lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpbWV6b25lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2p3ZW5kZWxsL2dub21lLXNoZWxsLWV4dGVuc2lvbi10aW1lem9uZSIsCiAgInV1aWQiOiAidGltZXpvbmVAandlbmRlbGwiLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "41": {"version": "19", "sha256": "0mjqwf1i8arrvdhp8m17azh1xahrhxivncscb8shyq87817cfkp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlZSBwZW9wbGUgd2l0aCB0aGVpciB0aW1lem9uZXMgZnJvbSB0aGUgU2hlbGwiLAogICJuYW1lIjogIlRpbWV6b25lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpbWV6b25lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2p3ZW5kZWxsL2dub21lLXNoZWxsLWV4dGVuc2lvbi10aW1lem9uZSIsCiAgInV1aWQiOiAidGltZXpvbmVAandlbmRlbGwiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
 , {"uuid": "On_Screen_Keyboard_Button@bradan.eu", "name": "On Screen Keyboard Button", "pname": "on-screen-keyboard-button", "description": "Shows or hides the OSK via top bar button. It works with X, not with wayland. Wayland has it's own technique: swipe the keyboard up from the bottom display edge.\n\nSource code: https://github.com/Bradan/Gnome-On-Screen-Keyboard-Button", "link": "https://extensions.gnome.org/extension/1061/on-screen-keyboard-button/", "shell_version_map": {"38": {"version": "5", "sha256": "0z3jcv5gzv1pwfla9ghp5kjljc5n80fcab0d2c2i2pw7y7kvpabr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG9yIGhpZGVzIHRoZSBPU0sgdmlhIHRvcCBiYXIgYnV0dG9uLiBJdCB3b3JrcyB3aXRoIFgsIG5vdCB3aXRoIHdheWxhbmQuIFdheWxhbmQgaGFzIGl0J3Mgb3duIHRlY2huaXF1ZTogc3dpcGUgdGhlIGtleWJvYXJkIHVwIGZyb20gdGhlIGJvdHRvbSBkaXNwbGF5IGVkZ2UuXG5cblNvdXJjZSBjb2RlOiBodHRwczovL2dpdGh1Yi5jb20vQnJhZGFuL0dub21lLU9uLVNjcmVlbi1LZXlib2FyZC1CdXR0b24iLAogICJuYW1lIjogIk9uIFNjcmVlbiBLZXlib2FyZCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjgiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiT25fU2NyZWVuX0tleWJvYXJkX0J1dHRvbkBicmFkYW4uZXUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
-, {"uuid": "System_Monitor@bghome.gmail.com", "name": "System Monitor", "pname": "system-monitor", "description": "Display resource usage.\n\nLinux distribution specific installation instructions can be found in the wiki at https://github.com/elvetemedve/gnome-shell-extension-system-monitor/wiki/Installation.\n\nPlease report bugs here: https://github.com/elvetemedve/gnome-shell-extension-system-monitor/issues", "link": "https://extensions.gnome.org/extension/1064/system-monitor/", "shell_version_map": {"38": {"version": "21", "sha256": "1kp4xqsglmj7likmln1x8nz2vmlz8m8vh13chnsn1rsn5a16s7v9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJuYW1lIjogIlN5c3RlbSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yIiwKICAidXVpZCI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}, "40": {"version": "21", "sha256": "1kp4xqsglmj7likmln1x8nz2vmlz8m8vh13chnsn1rsn5a16s7v9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJuYW1lIjogIlN5c3RlbSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yIiwKICAidXVpZCI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}}}
-, {"uuid": "syncthing@gnome.2nv2u.com", "name": "Syncthing Indicator", "pname": "syncthing-indicator", "description": "Shell indicator for starting, monitoring and controlling the Syncthing daemon using SystemD", "link": "https://extensions.gnome.org/extension/1070/syncthing-indicator/", "shell_version_map": {"38": {"version": "21", "sha256": "1c1apl6l5vl4riyi9ff56pxq27x6ss6v23b6jbl6gc8mwr6c9kxi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tLzJudjJ1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeW5jdGhpbmctaW5kaWNhdG9yIiwKICAidXVpZCI6ICJzeW5jdGhpbmdAZ25vbWUuMm52MnUuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}, "40": {"version": "21", "sha256": "1c1apl6l5vl4riyi9ff56pxq27x6ss6v23b6jbl6gc8mwr6c9kxi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tLzJudjJ1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeW5jdGhpbmctaW5kaWNhdG9yIiwKICAidXVpZCI6ICJzeW5jdGhpbmdAZ25vbWUuMm52MnUuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}, "41": {"version": "21", "sha256": "1c1apl6l5vl4riyi9ff56pxq27x6ss6v23b6jbl6gc8mwr6c9kxi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tLzJudjJ1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeW5jdGhpbmctaW5kaWNhdG9yIiwKICAidXVpZCI6ICJzeW5jdGhpbmdAZ25vbWUuMm52MnUuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}}}
+, {"uuid": "System_Monitor@bghome.gmail.com", "name": "System Monitor", "pname": "system-monitor", "description": "Display resource usage.\n\nLinux distribution specific installation instructions can be found in the wiki at https://github.com/elvetemedve/gnome-shell-extension-system-monitor/wiki/Installation.\n\nPlease report bugs here: https://github.com/elvetemedve/gnome-shell-extension-system-monitor/issues", "link": "https://extensions.gnome.org/extension/1064/system-monitor/", "shell_version_map": {"38": {"version": "23", "sha256": "09waxjwbdndqin023ns8vmazzxqqijyj95dp4yyha924vmkmpplx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbHZldGVtZWR2ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogIlN5c3RlbV9Nb25pdG9yQGJnaG9tZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="}, "40": {"version": "23", "sha256": "09waxjwbdndqin023ns8vmazzxqqijyj95dp4yyha924vmkmpplx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbHZldGVtZWR2ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogIlN5c3RlbV9Nb25pdG9yQGJnaG9tZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="}, "41": {"version": "23", "sha256": "09waxjwbdndqin023ns8vmazzxqqijyj95dp4yyha924vmkmpplx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgcmVzb3VyY2UgdXNhZ2UuXG5cbkxpbnV4IGRpc3RyaWJ1dGlvbiBzcGVjaWZpYyBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIGNhbiBiZSBmb3VuZCBpbiB0aGUgd2lraSBhdCBodHRwczovL2dpdGh1Yi5jb20vZWx2ZXRlbWVkdmUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN5c3RlbS1tb25pdG9yL3dpa2kvSW5zdGFsbGF0aW9uLlxuXG5QbGVhc2UgcmVwb3J0IGJ1Z3MgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL2VsdmV0ZW1lZHZlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeXN0ZW0tbW9uaXRvci9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJTeXN0ZW1fTW9uaXRvckBiZ2hvbWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJTeXN0ZW0gTW9uaXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zeXN0ZW0tbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbHZldGVtZWR2ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogIlN5c3RlbV9Nb25pdG9yQGJnaG9tZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjMKfQ=="}}}
+, {"uuid": "syncthing@gnome.2nv2u.com", "name": "Syncthing Indicator", "pname": "syncthing-indicator", "description": "Shell indicator for starting, monitoring and controlling the Syncthing daemon using SystemD", "link": "https://extensions.gnome.org/extension/1070/syncthing-indicator/", "shell_version_map": {"38": {"version": "23", "sha256": "1d03ysx73z56a6y0mvypryi92qcyjr9nbz799llydgzrhvbd8h1a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tLzJudjJ1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeW5jdGhpbmctaW5kaWNhdG9yIiwKICAidXVpZCI6ICJzeW5jdGhpbmdAZ25vbWUuMm52MnUuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}, "40": {"version": "23", "sha256": "1d03ysx73z56a6y0mvypryi92qcyjr9nbz799llydgzrhvbd8h1a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tLzJudjJ1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeW5jdGhpbmctaW5kaWNhdG9yIiwKICAidXVpZCI6ICJzeW5jdGhpbmdAZ25vbWUuMm52MnUuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}, "41": {"version": "23", "sha256": "1d03ysx73z56a6y0mvypryi92qcyjr9nbz799llydgzrhvbd8h1a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tLzJudjJ1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zeW5jdGhpbmctaW5kaWNhdG9yIiwKICAidXVpZCI6ICJzeW5jdGhpbmdAZ25vbWUuMm52MnUuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
 , {"uuid": "applications-overview-tooltip@RaphaelRochet", "name": "Applications Overview Tooltip", "pname": "applications-overview-tooltip", "description": "Shows a tooltip over applications icons on applications overview with application name and/or description.", "link": "https://extensions.gnome.org/extension/1071/applications-overview-tooltip/", "shell_version_map": {"38": {"version": "11", "sha256": "0alvg0l46hls3jz3a5ic21fgbjbg0kv0nn0pkknzsgjfw5mmwz69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYXBoYWVsUm9jaGV0L2FwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwIiwKICAidXVpZCI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcEBSYXBoYWVsUm9jaGV0IiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "14", "sha256": "1vv5hvmg987vp8rdyvfff089h99m8xqrhyfbrgbipgy7862yf6lq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJ1dWlkIjogImFwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "1vv5hvmg987vp8rdyvfff089h99m8xqrhyfbrgbipgy7862yf6lq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1JhcGhhZWxSb2NoZXQvYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJ1dWlkIjogImFwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwQFJhcGhhZWxSb2NoZXQiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
-, {"uuid": "TwitchLive_Panel@extensions.maweki.de", "name": "TwitchLive Panel", "pname": "twitchlive-panel", "description": "A panel showing whether your favorite Twitch.tv streamers are streaming.\n\nCycles through the online streamers if multiples are configured. Click on the panel and then on streamer's name to launch the stream with a custom command (your browser or some other application).\n\nNeeds curl and mogrify to fully support streamer logos. For an extension version compatible with shell version 3.30 or earlier visit our github page.", "link": "https://extensions.gnome.org/extension/1078/twitchlive-panel/", "shell_version_map": {"40": {"version": "36", "sha256": "086g5aq3abq2vd0l0fa2a77gj7hi4ga4i316x7zq0bl80qz3zzd3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4gRm9yIGFuIGV4dGVuc2lvbiB2ZXJzaW9uIGNvbXBhdGlibGUgd2l0aCBzaGVsbCB2ZXJzaW9uIDMuMzAgb3IgZWFybGllciB2aXNpdCBvdXIgZ2l0aHViIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHdpdGNobGl2ZSIsCiAgIm5hbWUiOiAiVHdpdGNoTGl2ZSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2l0Y2hsaXZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogMzYKfQ=="}, "41": {"version": "36", "sha256": "086g5aq3abq2vd0l0fa2a77gj7hi4ga4i316x7zq0bl80qz3zzd3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4gRm9yIGFuIGV4dGVuc2lvbiB2ZXJzaW9uIGNvbXBhdGlibGUgd2l0aCBzaGVsbCB2ZXJzaW9uIDMuMzAgb3IgZWFybGllciB2aXNpdCBvdXIgZ2l0aHViIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHdpdGNobGl2ZSIsCiAgIm5hbWUiOiAiVHdpdGNoTGl2ZSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2l0Y2hsaXZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogMzYKfQ=="}}}
+, {"uuid": "TwitchLive_Panel@extensions.maweki.de", "name": "TwitchLive Panel", "pname": "twitchlive-panel", "description": "A panel showing whether your favorite Twitch.tv streamers are streaming.\n\nCycles through the online streamers if multiples are configured. Click on the panel and then on streamer's name to launch the stream with a custom command (your browser or some other application).\n\nNeeds curl and mogrify to fully support streamer logos. For an extension version compatible with shell version 3.30 or earlier visit our github page.", "link": "https://extensions.gnome.org/extension/1078/twitchlive-panel/", "shell_version_map": {"40": {"version": "37", "sha256": "0g1s5f3si8hlgf3m033c1c9fxydhs3wcykf4rr1pkzd54q6a8vq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4gRm9yIGFuIGV4dGVuc2lvbiB2ZXJzaW9uIGNvbXBhdGlibGUgd2l0aCBzaGVsbCB2ZXJzaW9uIDMuMzAgb3IgZWFybGllciB2aXNpdCBvdXIgZ2l0aHViIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHdpdGNobGl2ZSIsCiAgIm5hbWUiOiAiVHdpdGNoTGl2ZSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2l0Y2hsaXZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogMzcKfQ=="}, "41": {"version": "37", "sha256": "0g1s5f3si8hlgf3m033c1c9fxydhs3wcykf4rr1pkzd54q6a8vq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4gRm9yIGFuIGV4dGVuc2lvbiB2ZXJzaW9uIGNvbXBhdGlibGUgd2l0aCBzaGVsbCB2ZXJzaW9uIDMuMzAgb3IgZWFybGllciB2aXNpdCBvdXIgZ2l0aHViIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHdpdGNobGl2ZSIsCiAgIm5hbWUiOiAiVHdpdGNoTGl2ZSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2l0Y2hsaXZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogMzcKfQ=="}}}
 , {"uuid": "cpufreq@konkor", "name": "cpufreq", "pname": "cpufreq", "description": "System Monitor and Power Manager.\n\nThis is a lightweight system monitor and power management tool. It needs root permission to able changing governors.\n\nFeatures:\n⚫ Compatible with many hardware architectures;\n⚫ CPU Frequency monitoring;\n⚫ CPU Governor management;\n⚫ CPU Frequency speed limits;\n⚫ CPU Boost supporting;\n⚫ CPU Core Power on/off;\n⚫ Saving/Restoring settings...\n\nFor more information and how-to see README.md", "link": "https://extensions.gnome.org/extension/1082/cpufreq/", "shell_version_map": {"38": {"version": "50", "sha256": "0s4hgdh4yg5dachns0zf3m7xyc7ycc6jjapg3b3352i0rgw8cfdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBNb25pdG9yIGFuZCBQb3dlciBNYW5hZ2VyLlxuXG5UaGlzIGlzIGEgbGlnaHR3ZWlnaHQgc3lzdGVtIG1vbml0b3IgYW5kIHBvd2VyIG1hbmFnZW1lbnQgdG9vbC4gSXQgbmVlZHMgcm9vdCBwZXJtaXNzaW9uIHRvIGFibGUgY2hhbmdpbmcgZ292ZXJub3JzLlxuXG5GZWF0dXJlczpcblx1MjZhYiBDb21wYXRpYmxlIHdpdGggbWFueSBoYXJkd2FyZSBhcmNoaXRlY3R1cmVzO1xuXHUyNmFiIENQVSBGcmVxdWVuY3kgbW9uaXRvcmluZztcblx1MjZhYiBDUFUgR292ZXJub3IgbWFuYWdlbWVudDtcblx1MjZhYiBDUFUgRnJlcXVlbmN5IHNwZWVkIGxpbWl0cztcblx1MjZhYiBDUFUgQm9vc3Qgc3VwcG9ydGluZztcblx1MjZhYiBDUFUgQ29yZSBQb3dlciBvbi9vZmY7XG5cdTI2YWIgU2F2aW5nL1Jlc3RvcmluZyBzZXR0aW5ncy4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJuYW1lIjogImNwdWZyZXEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1ZnJlcSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rb25rb3IvY3B1ZnJlcSIsCiAgInV1aWQiOiAiY3B1ZnJlcUBrb25rb3IiLAogICJ2ZXJzaW9uIjogNTAKfQ=="}, "40": {"version": "50", "sha256": "0s4hgdh4yg5dachns0zf3m7xyc7ycc6jjapg3b3352i0rgw8cfdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBNb25pdG9yIGFuZCBQb3dlciBNYW5hZ2VyLlxuXG5UaGlzIGlzIGEgbGlnaHR3ZWlnaHQgc3lzdGVtIG1vbml0b3IgYW5kIHBvd2VyIG1hbmFnZW1lbnQgdG9vbC4gSXQgbmVlZHMgcm9vdCBwZXJtaXNzaW9uIHRvIGFibGUgY2hhbmdpbmcgZ292ZXJub3JzLlxuXG5GZWF0dXJlczpcblx1MjZhYiBDb21wYXRpYmxlIHdpdGggbWFueSBoYXJkd2FyZSBhcmNoaXRlY3R1cmVzO1xuXHUyNmFiIENQVSBGcmVxdWVuY3kgbW9uaXRvcmluZztcblx1MjZhYiBDUFUgR292ZXJub3IgbWFuYWdlbWVudDtcblx1MjZhYiBDUFUgRnJlcXVlbmN5IHNwZWVkIGxpbWl0cztcblx1MjZhYiBDUFUgQm9vc3Qgc3VwcG9ydGluZztcblx1MjZhYiBDUFUgQ29yZSBQb3dlciBvbi9vZmY7XG5cdTI2YWIgU2F2aW5nL1Jlc3RvcmluZyBzZXR0aW5ncy4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJuYW1lIjogImNwdWZyZXEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1ZnJlcSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rb25rb3IvY3B1ZnJlcSIsCiAgInV1aWQiOiAiY3B1ZnJlcUBrb25rb3IiLAogICJ2ZXJzaW9uIjogNTAKfQ=="}}}
 , {"uuid": "simplenetspeed@biji.extension", "name": "Simple net speed", "pname": "simple-net-speed", "description": "Simply showing network speed. Left click to change modes:\n\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter)\n\nMiddle click to change font size", "link": "https://extensions.gnome.org/extension/1085/simple-net-speed/", "shell_version_map": {"38": {"version": "23", "sha256": "16g6203q6d8il018rf8zhh6gziybpczc6r5v5289kz0i343bmkfj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL3NpbXBsZW5ldHNwZWVkIiwKICAidXVpZCI6ICJzaW1wbGVuZXRzcGVlZEBiaWppLmV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAyMwp9"}, "40": {"version": "23", "sha256": "16g6203q6d8il018rf8zhh6gziybpczc6r5v5289kz0i343bmkfj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL3NpbXBsZW5ldHNwZWVkIiwKICAidXVpZCI6ICJzaW1wbGVuZXRzcGVlZEBiaWppLmV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAyMwp9"}, "41": {"version": "23", "sha256": "16g6203q6d8il018rf8zhh6gziybpczc6r5v5289kz0i343bmkfj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iaWppL3NpbXBsZW5ldHNwZWVkIiwKICAidXVpZCI6ICJzaW1wbGVuZXRzcGVlZEBiaWppLmV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAyMwp9"}}}
 , {"uuid": "gnome-shell-go-to-last-workspace@github.com", "name": "Go To Last Workspace", "pname": "go-to-last-workspace", "description": "Quickly toggle between two workspaces with one key", "link": "https://extensions.gnome.org/extension/1089/go-to-last-workspace/", "shell_version_map": {"38": {"version": "7", "sha256": "19jyrfhniz65xfrwzpph4i33mwpbfshy5bc79vxd5fy4qa0p6scp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgdG9nZ2xlIGJldHdlZW4gdHdvIHdvcmtzcGFjZXMgd2l0aCBvbmUga2V5IiwKICAibmFtZSI6ICJHbyBUbyBMYXN0IFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmphbi9nbm9tZS1zaGVsbC1nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiZ25vbWUtc2hlbGwtZ28tdG8tbGFzdC13b3Jrc3BhY2VAZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "19jyrfhniz65xfrwzpph4i33mwpbfshy5bc79vxd5fy4qa0p6scp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgdG9nZ2xlIGJldHdlZW4gdHdvIHdvcmtzcGFjZXMgd2l0aCBvbmUga2V5IiwKICAibmFtZSI6ICJHbyBUbyBMYXN0IFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcmphbi9nbm9tZS1zaGVsbC1nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiZ25vbWUtc2hlbGwtZ28tdG8tbGFzdC13b3Jrc3BhY2VAZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
@@ -115,37 +116,37 @@
 , {"uuid": "todolist@tomMoral.org", "name": "Section Todo List", "pname": "section-todo-list", "description": "Manage todo list with an applet\n\n* Add and remove task on your list in different sections.\n* Click an item to rename it.\n* Access the extension using Hot-Key (default: Ctrl+Space)\n", "link": "https://extensions.gnome.org/extension/1104/section-todo-list/", "shell_version_map": {"38": {"version": "11", "sha256": "02b5gccsx6ifgv2jyrniwagdf09jg7lvwzwlgm11qbrv7w7bn0qp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB0b2RvIGxpc3Qgd2l0aCBhbiBhcHBsZXRcblxuKiBBZGQgYW5kIHJlbW92ZSB0YXNrIG9uIHlvdXIgbGlzdCBpbiBkaWZmZXJlbnQgc2VjdGlvbnMuXG4qIENsaWNrIGFuIGl0ZW0gdG8gcmVuYW1lIGl0LlxuKiBBY2Nlc3MgdGhlIGV4dGVuc2lvbiB1c2luZyBIb3QtS2V5IChkZWZhdWx0OiBDdHJsK1NwYWNlKVxuIiwKICAibmFtZSI6ICJTZWN0aW9uIFRvZG8gTGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21Nb3JhbC9Ub0RvTGlzdCIsCiAgInV1aWQiOiAidG9kb2xpc3RAdG9tTW9yYWwub3JnIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "02b5gccsx6ifgv2jyrniwagdf09jg7lvwzwlgm11qbrv7w7bn0qp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB0b2RvIGxpc3Qgd2l0aCBhbiBhcHBsZXRcblxuKiBBZGQgYW5kIHJlbW92ZSB0YXNrIG9uIHlvdXIgbGlzdCBpbiBkaWZmZXJlbnQgc2VjdGlvbnMuXG4qIENsaWNrIGFuIGl0ZW0gdG8gcmVuYW1lIGl0LlxuKiBBY2Nlc3MgdGhlIGV4dGVuc2lvbiB1c2luZyBIb3QtS2V5IChkZWZhdWx0OiBDdHJsK1NwYWNlKVxuIiwKICAibmFtZSI6ICJTZWN0aW9uIFRvZG8gTGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90b21Nb3JhbC9Ub0RvTGlzdCIsCiAgInV1aWQiOiAidG9kb2xpc3RAdG9tTW9yYWwub3JnIiwKICAidmVyc2lvbiI6IDExCn0="}}}
 , {"uuid": "add-username-toppanel@brendaw.com", "name": "Add Username to Top Panel", "pname": "add-username-to-top-panel", "description": "Simply add your username to topbar panel aggregate menu", "link": "https://extensions.gnome.org/extension/1108/add-username-to-top-panel/", "shell_version_map": {"38": {"version": "4", "sha256": "1b2p8924id4shzpvj58958r7j422ppkw7bsfmng9sq25k3w4xvb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBhZGQgeW91ciB1c2VybmFtZSB0byB0b3BiYXIgcGFuZWwgYWdncmVnYXRlIG1lbnUiLAogICJuYW1lIjogIkFkZCBVc2VybmFtZSB0byBUb3AgUGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndpbGxpYW1icmVuZGF3QHByb3Rvbm1haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4yMC40IiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9icmVuZGF3L2FkZC11c2VybmFtZS10b3BwYW5lbCIsCiAgInV1aWQiOiAiYWRkLXVzZXJuYW1lLXRvcHBhbmVsQGJyZW5kYXcuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1b2p8924id4shzpvj58958r7j422ppkw7bsfmng9sq25k3w4xvb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBhZGQgeW91ciB1c2VybmFtZSB0byB0b3BiYXIgcGFuZWwgYWdncmVnYXRlIG1lbnUiLAogICJuYW1lIjogIkFkZCBVc2VybmFtZSB0byBUb3AgUGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndpbGxpYW1icmVuZGF3QHByb3Rvbm1haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4yMC40IiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9icmVuZGF3L2FkZC11c2VybmFtZS10b3BwYW5lbCIsCiAgInV1aWQiOiAiYWRkLXVzZXJuYW1lLXRvcHBhbmVsQGJyZW5kYXcuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1b2p8924id4shzpvj58958r7j422ppkw7bsfmng9sq25k3w4xvb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBhZGQgeW91ciB1c2VybmFtZSB0byB0b3BiYXIgcGFuZWwgYWdncmVnYXRlIG1lbnUiLAogICJuYW1lIjogIkFkZCBVc2VybmFtZSB0byBUb3AgUGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndpbGxpYW1icmVuZGF3QHByb3Rvbm1haWwuY29tIgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4yMC40IiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9icmVuZGF3L2FkZC11c2VybmFtZS10b3BwYW5lbCIsCiAgInV1aWQiOiAiYWRkLXVzZXJuYW1lLXRvcHBhbmVsQGJyZW5kYXcuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "Hide_Clock@grantmcwilliams.com", "name": "Hide Clock", "pname": "hide-clock", "description": "Hides the Gnome title bar clock. \nThis is useful for anyone recording their desktop as it allows you to edit the video without the titlebar clock jumping time.\nNow supports Gnome 40.", "link": "https://extensions.gnome.org/extension/1110/hide-clock/", "shell_version_map": {"38": {"version": "3", "sha256": "1niax4lw42nvp99wbxiydassgrzsx0pkkxrnbvim0n2b8bizg8rx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBHbm9tZSB0aXRsZSBiYXIgY2xvY2suIFxuVGhpcyBpcyB1c2VmdWwgZm9yIGFueW9uZSByZWNvcmRpbmcgdGhlaXIgZGVza3RvcCBhcyBpdCBhbGxvd3MgeW91IHRvIGVkaXQgdGhlIHZpZGVvIHdpdGhvdXQgdGhlIHRpdGxlYmFyIGNsb2NrIGp1bXBpbmcgdGltZS5cbk5vdyBzdXBwb3J0cyBHbm9tZSA0MC4iLAogICJuYW1lIjogIkhpZGUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkhpZGVfQ2xvY2tAZ3JhbnRtY3dpbGxpYW1zLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1niax4lw42nvp99wbxiydassgrzsx0pkkxrnbvim0n2b8bizg8rx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBHbm9tZSB0aXRsZSBiYXIgY2xvY2suIFxuVGhpcyBpcyB1c2VmdWwgZm9yIGFueW9uZSByZWNvcmRpbmcgdGhlaXIgZGVza3RvcCBhcyBpdCBhbGxvd3MgeW91IHRvIGVkaXQgdGhlIHZpZGVvIHdpdGhvdXQgdGhlIHRpdGxlYmFyIGNsb2NrIGp1bXBpbmcgdGltZS5cbk5vdyBzdXBwb3J0cyBHbm9tZSA0MC4iLAogICJuYW1lIjogIkhpZGUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkhpZGVfQ2xvY2tAZ3JhbnRtY3dpbGxpYW1zLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
-, {"uuid": "gnome-shell-screenshot@ttll.de", "name": "Screenshot Tool", "pname": "screenshot-tool", "description": "Conveniently create, copy, store and upload screenshots", "link": "https://extensions.gnome.org/extension/1112/screenshot-tool/", "shell_version_map": {"38": {"version": "56", "sha256": "07bg3fgg9k7wqyd746w75a12vzm93dn4wr3l1czd6864f4pmalpd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90IiwKICAiZ2l0LXZlcnNpb24iOiAidjU2IiwKICAibmFtZSI6ICJTY3JlZW5zaG90IFRvb2wiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL090dG9BbGxtZW5kaW5nZXIvZ25vbWUtc2hlbGwtc2NyZWVuc2hvdC8iLAogICJ1dWlkIjogImdub21lLXNoZWxsLXNjcmVlbnNob3RAdHRsbC5kZSIsCiAgInZlcnNpb24iOiA1Ngp9"}, "40": {"version": "58", "sha256": "0rh86n98jmma7kkbhyfvw71rk1qa85nb7nx14dsb5r15pbdx6v5r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90IiwKICAiZ2l0LXZlcnNpb24iOiAidjU4IiwKICAibmFtZSI6ICJTY3JlZW5zaG90IFRvb2wiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLXNjcmVlbnNob3QvIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90QHR0bGwuZGUiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}}}
+, {"uuid": "gnome-shell-screenshot@ttll.de", "name": "Screenshot Tool", "pname": "screenshot-tool", "description": "Conveniently create, copy, store and upload screenshots", "link": "https://extensions.gnome.org/extension/1112/screenshot-tool/", "shell_version_map": {"38": {"version": "56", "sha256": "07bg3fgg9k7wqyd746w75a12vzm93dn4wr3l1czd6864f4pmalpd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90IiwKICAiZ2l0LXZlcnNpb24iOiAidjU2IiwKICAibmFtZSI6ICJTY3JlZW5zaG90IFRvb2wiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL090dG9BbGxtZW5kaW5nZXIvZ25vbWUtc2hlbGwtc2NyZWVuc2hvdC8iLAogICJ1dWlkIjogImdub21lLXNoZWxsLXNjcmVlbnNob3RAdHRsbC5kZSIsCiAgInZlcnNpb24iOiA1Ngp9"}, "40": {"version": "58", "sha256": "0rh86n98jmma7kkbhyfvw71rk1qa85nb7nx14dsb5r15pbdx6v5r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90IiwKICAiZ2l0LXZlcnNpb24iOiAidjU4IiwKICAibmFtZSI6ICJTY3JlZW5zaG90IFRvb2wiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLXNjcmVlbnNob3QvIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90QHR0bGwuZGUiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}, "41": {"version": "61", "sha256": "0r0lvdpxhw7q2kdpyyn8cw97ai7v30zb46w2qpdivij6wr3sqrbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90IiwKICAiZ2l0LXZlcnNpb24iOiAidjU5LTUtZzFhZTU0MzAiLAogICJuYW1lIjogIlNjcmVlbnNob3QgVG9vbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zY3JlZW5zaG90IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL090dG9BbGxtZW5kaW5nZXIvZ25vbWUtc2hlbGwtc2NyZWVuc2hvdC8iLAogICJ1dWlkIjogImdub21lLXNoZWxsLXNjcmVlbnNob3RAdHRsbC5kZSIsCiAgInZlcnNpb24iOiA2MQp9"}}}
 , {"uuid": "nothing-to-say@extensions.gnome.wouter.bolsterl.ee", "name": "Nothing to say", "pname": "nothing-to-say", "description": "Unmute the microphone only when you have something to say.", "link": "https://extensions.gnome.org/extension/1113/nothing-to-say/", "shell_version_map": {"38": {"version": "8", "sha256": "12ngc4dv1ijbvihqn2rjn77bal0gdhdq4cxf1zv5lr2ckz0ishm4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS4iLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2JvbHN0ZXIvbm90aGluZy10by1zYXkiLAogICJ1dWlkIjogIm5vdGhpbmctdG8tc2F5QGV4dGVuc2lvbnMuZ25vbWUud291dGVyLmJvbHN0ZXJsLmVlIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "10", "sha256": "0jn8qd2x25bw2kmz82z4szgx1vm838zkq0wv18jw82bpf7b597k0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS4iLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93Ym9sc3Rlci9ub3RoaW5nLXRvLXNheSIsCiAgInV1aWQiOiAibm90aGluZy10by1zYXlAZXh0ZW5zaW9ucy5nbm9tZS53b3V0ZXIuYm9sc3RlcmwuZWUiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "0jn8qd2x25bw2kmz82z4szgx1vm838zkq0wv18jw82bpf7b597k0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS4iLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93Ym9sc3Rlci9ub3RoaW5nLXRvLXNheSIsCiAgInV1aWQiOiAibm90aGluZy10by1zYXlAZXh0ZW5zaW9ucy5nbm9tZS53b3V0ZXIuYm9sc3RlcmwuZWUiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
 , {"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": {"38": {"version": "7", "sha256": "1zc92s0pffsd6mwsmpy8s8gici0q1wzd5s1vwjld4y1cy34kp2ad", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gc3dpdGNoaW5nIHdvcmtzcGFjZXMsIGdvaW5nIGRvd24gZnJvbSB0aGUgYm90dG9tIHdvcmtzcGFjZSBzd2l0Y2hlcyB0byB0aGUgdG9wIHdvcmtzcGFjZS4gTGlrZXdpc2UsIHVwIGZyb20gdGhlIHRvcCB3b3Jrc3BhY2UgZ29lcyB0byB0aGUgYm90dG9tIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBTd2l0Y2ggV3JhcGFyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aGV5Y2h4L1dvcmtzcGFjZVN3aXRjaGVyV3JhcEFyb3VuZCIsCiAgInV1aWQiOiAid29ya3NwYWNlLXN3aXRjaC13cmFwYXJvdW5kQHRoZXljaHgub3JnIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "1zc92s0pffsd6mwsmpy8s8gici0q1wzd5s1vwjld4y1cy34kp2ad", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gc3dpdGNoaW5nIHdvcmtzcGFjZXMsIGdvaW5nIGRvd24gZnJvbSB0aGUgYm90dG9tIHdvcmtzcGFjZSBzd2l0Y2hlcyB0byB0aGUgdG9wIHdvcmtzcGFjZS4gTGlrZXdpc2UsIHVwIGZyb20gdGhlIHRvcCB3b3Jrc3BhY2UgZ29lcyB0byB0aGUgYm90dG9tIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBTd2l0Y2ggV3JhcGFyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aGV5Y2h4L1dvcmtzcGFjZVN3aXRjaGVyV3JhcEFyb3VuZCIsCiAgInV1aWQiOiAid29ya3NwYWNlLXN3aXRjaC13cmFwYXJvdW5kQHRoZXljaHgub3JnIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
 , {"uuid": "ibus-font-setting@ibus.github.com", "name": "ibus font setting", "pname": "ibus-font-setting", "description": "use ibus font setting of ibus setup dialog to enhance the user experience", "link": "https://extensions.gnome.org/extension/1121/ibus-font-setting/", "shell_version_map": {"38": {"version": "9", "sha256": "163byvsc3dj2w9xq498py1xjziyi98icyki1cd6wv7vxaxfmk7y6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInVzZSBpYnVzIGZvbnQgc2V0dGluZyBvZiBpYnVzIHNldHVwIGRpYWxvZyB0byBlbmhhbmNlIHRoZSB1c2VyIGV4cGVyaWVuY2UiLAogICJuYW1lIjogImlidXMgZm9udCBzZXR0aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3B3dS5mZWRvcmFwZW9wbGUub3JnL2lidXMvaWJ1cy1mb250LXNldHRpbmciLAogICJ1dWlkIjogImlidXMtZm9udC1zZXR0aW5nQGlidXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "11", "sha256": "0rgnv7bwqg30ly6zsmzs5sayi45k2ji5r87z4x32nni3wm7vhnhk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInVzZSBpYnVzIGZvbnQgc2V0dGluZyBvZiBpYnVzIHNldHVwIGRpYWxvZyB0byBlbmhhbmNlIHRoZSB1c2VyIGV4cGVyaWVuY2UiLAogICJuYW1lIjogImlidXMgZm9udCBzZXR0aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vcHd1LmZlZG9yYXBlb3BsZS5vcmcvaWJ1cy9pYnVzLWZvbnQtc2V0dGluZyIsCiAgInV1aWQiOiAiaWJ1cy1mb250LXNldHRpbmdAaWJ1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}, "41": {"version": "11", "sha256": "0rgnv7bwqg30ly6zsmzs5sayi45k2ji5r87z4x32nni3wm7vhnhk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInVzZSBpYnVzIGZvbnQgc2V0dGluZyBvZiBpYnVzIHNldHVwIGRpYWxvZyB0byBlbmhhbmNlIHRoZSB1c2VyIGV4cGVyaWVuY2UiLAogICJuYW1lIjogImlidXMgZm9udCBzZXR0aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vcHd1LmZlZG9yYXBlb3BsZS5vcmcvaWJ1cy9pYnVzLWZvbnQtc2V0dGluZyIsCiAgInV1aWQiOiAiaWJ1cy1mb250LXNldHRpbmdAaWJ1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}}}
 , {"uuid": "github.notifications@alexandre.dufournet.gmail.com", "name": "Github Notifications", "pname": "github-notifications", "description": "Integrate github's notifications within the gnome desktop environment\nSource code is available here: https://github.com/alexduf/gnome-github-notifications", "link": "https://extensions.gnome.org/extension/1125/github-notifications/", "shell_version_map": {"38": {"version": "17", "sha256": "0lj41ngk4kmkz94hn9bi51w8dbhzhxbb3kaza1h68lcvv2cis4sq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBnaXRodWIncyBub3RpZmljYXRpb25zIHdpdGhpbiB0aGUgZ25vbWUgZGVza3RvcCBlbnZpcm9ubWVudFxuU291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZHVmL2dub21lLWdpdGh1Yi1ub3RpZmljYXRpb25zIiwKICAibmFtZSI6ICJHaXRodWIgTm90aWZpY2F0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnaXRodWIubm90aWZpY2F0aW9uc0BhbGV4YW5kcmUuZHVmb3VybmV0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNwp9"}}}
 , {"uuid": "desk-changer@eric.gach.gmail.com", "name": "Desk Changer", "pname": "desk-changer", "description": "Simple wallpaper changer with multiple profile support. Integrates into the shell by providing it's own panel icon. The daemon is written using gjs and runs independently of the extension as a background process.", "link": "https://extensions.gnome.org/extension/1131/desk-changer/", "shell_version_map": {"38": {"version": "23", "sha256": "1jwkavj1m6mf690mcyzidyrcv92yr3jk7bpy3ar1y3hm9zbvmpps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSB3YWxscGFwZXIgY2hhbmdlciB3aXRoIG11bHRpcGxlIHByb2ZpbGUgc3VwcG9ydC4gSW50ZWdyYXRlcyBpbnRvIHRoZSBzaGVsbCBieSBwcm92aWRpbmcgaXQncyBvd24gcGFuZWwgaWNvbi4gVGhlIGRhZW1vbiBpcyB3cml0dGVuIHVzaW5nIGdqcyBhbmQgcnVucyBpbmRlcGVuZGVudGx5IG9mIHRoZSBleHRlbnNpb24gYXMgYSBiYWNrZ3JvdW5kIHByb2Nlc3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVzay1jaGFuZ2VyIiwKICAibmFtZSI6ICJEZXNrIENoYW5nZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVzay1jaGFuZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaWdFL2Rlc2stY2hhbmdlci8iLAogICJ1dWlkIjogImRlc2stY2hhbmdlckBlcmljLmdhY2guZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}, "40": {"version": "23", "sha256": "1jwkavj1m6mf690mcyzidyrcv92yr3jk7bpy3ar1y3hm9zbvmpps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSB3YWxscGFwZXIgY2hhbmdlciB3aXRoIG11bHRpcGxlIHByb2ZpbGUgc3VwcG9ydC4gSW50ZWdyYXRlcyBpbnRvIHRoZSBzaGVsbCBieSBwcm92aWRpbmcgaXQncyBvd24gcGFuZWwgaWNvbi4gVGhlIGRhZW1vbiBpcyB3cml0dGVuIHVzaW5nIGdqcyBhbmQgcnVucyBpbmRlcGVuZGVudGx5IG9mIHRoZSBleHRlbnNpb24gYXMgYSBiYWNrZ3JvdW5kIHByb2Nlc3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVzay1jaGFuZ2VyIiwKICAibmFtZSI6ICJEZXNrIENoYW5nZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVzay1jaGFuZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaWdFL2Rlc2stY2hhbmdlci8iLAogICJ1dWlkIjogImRlc2stY2hhbmdlckBlcmljLmdhY2guZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}, "41": {"version": "23", "sha256": "1jwkavj1m6mf690mcyzidyrcv92yr3jk7bpy3ar1y3hm9zbvmpps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSB3YWxscGFwZXIgY2hhbmdlciB3aXRoIG11bHRpcGxlIHByb2ZpbGUgc3VwcG9ydC4gSW50ZWdyYXRlcyBpbnRvIHRoZSBzaGVsbCBieSBwcm92aWRpbmcgaXQncyBvd24gcGFuZWwgaWNvbi4gVGhlIGRhZW1vbiBpcyB3cml0dGVuIHVzaW5nIGdqcyBhbmQgcnVucyBpbmRlcGVuZGVudGx5IG9mIHRoZSBleHRlbnNpb24gYXMgYSBiYWNrZ3JvdW5kIHByb2Nlc3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVzay1jaGFuZ2VyIiwKICAibmFtZSI6ICJEZXNrIENoYW5nZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVzay1jaGFuZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaWdFL2Rlc2stY2hhbmdlci8iLAogICJ1dWlkIjogImRlc2stY2hhbmdlckBlcmljLmdhY2guZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
 , {"uuid": "Shortcuts@kyle.aims.ac.za", "name": "Shortcuts", "pname": "shortcuts", "description": "This shows a pop-up of useful keyboard shortcuts when Super + S is pressed", "link": "https://extensions.gnome.org/extension/1144/shortcuts/", "shell_version_map": {"38": {"version": "6", "sha256": "1ma022dlhhk0ia7j8b1lm52arq9zz7in4x02hdvs0k29jcl4f9dd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgc2hvd3MgYSBwb3AtdXAgb2YgdXNlZnVsIGtleWJvYXJkIHNob3J0Y3V0cyB3aGVuIFN1cGVyICsgUyBpcyBwcmVzc2VkIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2hvcnRjdXRzIiwKICAibmFtZSI6ICJTaG9ydGN1dHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2hvcnRjdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcGFkZGF0cmFwcGVyL3Nob3J0Y3V0cy1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlNob3J0Y3V0c0BreWxlLmFpbXMuYWMuemEiLAogICJ2ZXJzaW9uIjogNgp9"}}}
-, {"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"}, "40": {"version": "14", "sha256": "1g3yvzpvvrpg90vhgqabp028mgxpsfy2xzqpbg5d4zriam94ply8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcXVpcmVzIGxtLXNlbnNvcnMgKG9yIGxtX3NlbnNvcnMpLiBTaG93cyBDUFUgdGVtcGVyYXR1cmUsIGRpc2sgdGVtcGVyYXR1cmUsIHZpZGVvIGNhcmQgdGVtcGVyYXR1cmUsIHZvbHRhZ2UgYW5kIGZhbiBSUE0uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2Vuc29yeS1wZXJjZXB0aW9uIiwKICAibmFtZSI6ICJTZW5zb3J5IFBlcmNlcHRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0hhcmxlbVNxdWlycmVsL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3J5LXBlcmNlcHRpb24iLAogICJ1dWlkIjogInNlbnNvcnktcGVyY2VwdGlvbkBIYXJsZW1TcXVpcnJlbC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"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"}, "40": {"version": "17", "sha256": "1565vy6wy0fjjbhxn90d8w4ifjb2adacijf71k18j7n390k00djw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcXVpcmVzIGxtLXNlbnNvcnMgKG9yIGxtX3NlbnNvcnMpLiBTaG93cyBDUFUgdGVtcGVyYXR1cmUsIGRpc2sgdGVtcGVyYXR1cmUsIHZpZGVvIGNhcmQgdGVtcGVyYXR1cmUsIHZvbHRhZ2UgYW5kIGZhbiBSUE0uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2Vuc29yeS1wZXJjZXB0aW9uIiwKICAibmFtZSI6ICJTZW5zb3J5IFBlcmNlcHRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IYXJsZW1TcXVpcnJlbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAidXVpZCI6ICJzZW5zb3J5LXBlcmNlcHRpb25ASGFybGVtU3F1aXJyZWwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE3Cn0="}, "41": {"version": "17", "sha256": "1565vy6wy0fjjbhxn90d8w4ifjb2adacijf71k18j7n390k00djw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcXVpcmVzIGxtLXNlbnNvcnMgKG9yIGxtX3NlbnNvcnMpLiBTaG93cyBDUFUgdGVtcGVyYXR1cmUsIGRpc2sgdGVtcGVyYXR1cmUsIHZpZGVvIGNhcmQgdGVtcGVyYXR1cmUsIHZvbHRhZ2UgYW5kIGZhbiBSUE0uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2Vuc29yeS1wZXJjZXB0aW9uIiwKICAibmFtZSI6ICJTZW5zb3J5IFBlcmNlcHRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IYXJsZW1TcXVpcnJlbC9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2Vuc29yeS1wZXJjZXB0aW9uIiwKICAidXVpZCI6ICJzZW5zb3J5LXBlcmNlcHRpb25ASGFybGVtU3F1aXJyZWwuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE3Cn0="}}}
 , {"uuid": "activityAppLauncher@rastersoft.com", "name": "Activity App Launcher", "pname": "activity-app-launcher", "description": "Integrates a category-based application launcher in the activities window. IMPORTANT: it needs the 'gnome-menus' and 'libgnome-menu-3-dev'; they must be installed in the system before installing this extension.", "link": "https://extensions.gnome.org/extension/1149/activity-app-launcher/", "shell_version_map": {"38": {"version": "31", "sha256": "18jqnk4psdvdx1hydfss1870v0gnpxkmsm5yasnb0m5m484in0qv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcmFzdGVyc29mdC9hY3Rpdml0eUFwcExhdW5jaGVyIiwKICAidXVpZCI6ICJhY3Rpdml0eUFwcExhdW5jaGVyQHJhc3RlcnNvZnQuY29tIiwKICAidmVyc2lvbiI6IDMxCn0="}, "40": {"version": "32", "sha256": "0h1pnv64jcyi0h7m8bk1rr0pfiz7pn6s08v10b2x3jmpdzahxxcy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "41": {"version": "32", "sha256": "0h1pnv64jcyi0h7m8bk1rr0pfiz7pn6s08v10b2x3jmpdzahxxcy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgYSBjYXRlZ29yeS1iYXNlZCBhcHBsaWNhdGlvbiBsYXVuY2hlciBpbiB0aGUgYWN0aXZpdGllcyB3aW5kb3cuIElNUE9SVEFOVDogaXQgbmVlZHMgdGhlICdnbm9tZS1tZW51cycgYW5kICdsaWJnbm9tZS1tZW51LTMtZGV2JzsgdGhleSBtdXN0IGJlIGluc3RhbGxlZCBpbiB0aGUgc3lzdGVtIGJlZm9yZSBpbnN0YWxsaW5nIHRoaXMgZXh0ZW5zaW9uLiIsCiAgIm5hbWUiOiAiQWN0aXZpdHkgQXBwIExhdW5jaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2FjdGl2aXR5QXBwTGF1bmNoZXIiLAogICJ1dWlkIjogImFjdGl2aXR5QXBwTGF1bmNoZXJAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}}}
 , {"uuid": "shutdown-timer-gnome-shell-extension", "name": "ShutdownTimer", "pname": "shutdowntimer", "description": "Allows to shutdown, restart and suspend computer after selected amount of time or in selected time.", "link": "https://extensions.gnome.org/extension/1152/shutdowntimer/", "shell_version_map": {"40": {"version": "9", "sha256": "1y69lv3mq66xxfxabngnbb104d26i05cyhmx3dqf4kyf1kd6jqvx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBzaHV0ZG93biwgcmVzdGFydCBhbmQgc3VzcGVuZCBjb21wdXRlciBhZnRlciBzZWxlY3RlZCBhbW91bnQgb2YgdGltZSBvciBpbiBzZWxlY3RlZCB0aW1lLiIsCiAgImdldHRleHQtZG9tYWluIjogIkF1dG9tYXRpY1NodXRkb3duVGltZXIiLAogICJuYW1lIjogIlNodXRkb3duVGltZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXV0b21hdGljLXNodXRkb3duLXRpbWVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21rcmFqbmFrL3NodXRkb3duLXRpbWVyLWdub21lLXNoZWxsLWV4dGVuc2lvbi8iLAogICJ1dWlkIjogInNodXRkb3duLXRpbWVyLWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiA5Cn0="}}}
 , {"uuid": "dash-to-panel@jderose9.github.com", "name": "Dash to Panel", "pname": "dash-to-panel", "description": "An icon taskbar for the Gnome Shell. This extension moves the dash into the gnome main panel so that the application launchers and system tray are combined into a single panel, similar to that found in KDE Plasma and Windows 7+. A separate dock is no longer needed for easy access to running and favorited applications.\n\nFor a more traditional experience, you may also want to use Tweak Tool to enable Windows > Titlebar Buttons > Minimize & Maximize.\n\nFor the best support, please report any issues on Github. Dash-to-panel is developed and maintained by @jderose9 and @charlesg99.", "link": "https://extensions.gnome.org/extension/1160/dash-to-panel/", "shell_version_map": {"38": {"version": "42", "sha256": "052adrf5dv1qfrpkp1wivp8a8vfi851japvx16gy779shfzq0n2a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyA+IFRpdGxlYmFyIEJ1dHRvbnMgPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qZGVyb3NlOS9kYXNoLXRvLXBhbmVsIiwKICAidXVpZCI6ICJkYXNoLXRvLXBhbmVsQGpkZXJvc2U5LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDIKfQ=="}, "40": {"version": "44", "sha256": "0kjs01h1ncx9r56pfggw0psqpi1hm0p32bpq08inpzc2wr7ilyfs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyA+IFRpdGxlYmFyIEJ1dHRvbnMgPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamRlcm9zZTkvZGFzaC10by1wYW5lbCIsCiAgInV1aWQiOiAiZGFzaC10by1wYW5lbEBqZGVyb3NlOS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ0Cn0="}, "41": {"version": "45", "sha256": "1md7006ba93p1d6br2bf7qwkf5kbmmwphws0gnmpz18if2q8xd2g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gdGFza2JhciBmb3IgdGhlIEdub21lIFNoZWxsLiBUaGlzIGV4dGVuc2lvbiBtb3ZlcyB0aGUgZGFzaCBpbnRvIHRoZSBnbm9tZSBtYWluIHBhbmVsIHNvIHRoYXQgdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVycyBhbmQgc3lzdGVtIHRyYXkgYXJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgcGFuZWwsIHNpbWlsYXIgdG8gdGhhdCBmb3VuZCBpbiBLREUgUGxhc21hIGFuZCBXaW5kb3dzIDcrLiBBIHNlcGFyYXRlIGRvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgZWFzeSBhY2Nlc3MgdG8gcnVubmluZyBhbmQgZmF2b3JpdGVkIGFwcGxpY2F0aW9ucy5cblxuRm9yIGEgbW9yZSB0cmFkaXRpb25hbCBleHBlcmllbmNlLCB5b3UgbWF5IGFsc28gd2FudCB0byB1c2UgVHdlYWsgVG9vbCB0byBlbmFibGUgV2luZG93cyA+IFRpdGxlYmFyIEJ1dHRvbnMgPiBNaW5pbWl6ZSAmIE1heGltaXplLlxuXG5Gb3IgdGhlIGJlc3Qgc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIG9uIEdpdGh1Yi4gRGFzaC10by1wYW5lbCBpcyBkZXZlbG9wZWQgYW5kIG1haW50YWluZWQgYnkgQGpkZXJvc2U5IGFuZCBAY2hhcmxlc2c5OS4iLAogICJleHRlbnNpb24taWQiOiAiZGFzaC10by1wYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImRhc2gtdG8tcGFuZWwiLAogICJuYW1lIjogIkRhc2ggdG8gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamRlcm9zZTkvZGFzaC10by1wYW5lbCIsCiAgInV1aWQiOiAiZGFzaC10by1wYW5lbEBqZGVyb3NlOS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ1Cn0="}}}
 , {"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=="}}}
-, {"uuid": "gnome-kinit@bonzini.gnu.org", "name": "Kerberos login", "pname": "kerberos-login", "description": "Provide a system menu item to renew Kerberos tickets", "link": "https://extensions.gnome.org/extension/1165/kerberos-login/", "shell_version_map": {"40": {"version": "3", "sha256": "0b9yr3ixrlr1ngc8f68spddpk94nz367cvrklf02598jj48sgxbl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgYSBzeXN0ZW0gbWVudSBpdGVtIHRvIHJlbmV3IEtlcmJlcm9zIHRpY2tldHMiLAogICJuYW1lIjogIktlcmJlcm9zIGxvZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjIiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImdub21lLWtpbml0QGJvbnppbmkuZ251Lm9yZyIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "gnome-kinit@bonzini.gnu.org", "name": "Kerberos login", "pname": "kerberos-login", "description": "Provide a system menu item to renew Kerberos tickets", "link": "https://extensions.gnome.org/extension/1165/kerberos-login/", "shell_version_map": {"40": {"version": "4", "sha256": "12r1ydal7yxz8ybz1nbxpg51vsf6paqm6fsiy6bx3ndbqh98iiiw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgYSBzeXN0ZW0gbWVudSBpdGVtIHRvIHJlbmV3IEtlcmJlcm9zIHRpY2tldHMiLAogICJuYW1lIjogIktlcmJlcm9zIGxvZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjIiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnbm9tZS1raW5pdEBib256aW5pLmdudS5vcmciLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "12r1ydal7yxz8ybz1nbxpg51vsf6paqm6fsiy6bx3ndbqh98iiiw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgYSBzeXN0ZW0gbWVudSBpdGVtIHRvIHJlbmV3IEtlcmJlcm9zIHRpY2tldHMiLAogICJuYW1lIjogIktlcmJlcm9zIGxvZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjIiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnbm9tZS1raW5pdEBib256aW5pLmdudS5vcmciLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "calculator-button@amivaleo", "name": "Calculator Button", "pname": "calculator-button", "description": "A button to easily open gnome-calculator.\n Credits to extensions.gnome.org/extension/939/display-button/\n\nv10:\n1 - added support for gnome 3.38\n2 - added support for flatpak version of gnome-calculator", "link": "https://extensions.gnome.org/extension/1168/calculator-button/", "shell_version_map": {"38": {"version": "10", "sha256": "1c6b53im6xj4yaf4skvchvgipxfjs2yh3i5r75cw9avnw7imnwk6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYnV0dG9uIHRvIGVhc2lseSBvcGVuIGdub21lLWNhbGN1bGF0b3IuXG4gQ3JlZGl0cyB0byBleHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vOTM5L2Rpc3BsYXktYnV0dG9uL1xuXG52MTA6XG4xIC0gYWRkZWQgc3VwcG9ydCBmb3IgZ25vbWUgMy4zOFxuMiAtIGFkZGVkIHN1cHBvcnQgZm9yIGZsYXRwYWsgdmVyc2lvbiBvZiBnbm9tZS1jYWxjdWxhdG9yIiwKICAibmFtZSI6ICJDYWxjdWxhdG9yIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtaXZhbGVvL0NhbGN1bGF0b3ItQnV0dG9uIiwKICAidXVpZCI6ICJjYWxjdWxhdG9yLWJ1dHRvbkBhbWl2YWxlbyIsCiAgInZlcnNpb24iOiAxMAp9"}}}
 , {"uuid": "screenshotlocations.timur@linux.com", "name": "Screenshot Locations", "pname": "screenshot-locations", "description": "Change the default GNOME screenshot directory", "link": "https://extensions.gnome.org/extension/1179/screenshot-locations/", "shell_version_map": {"38": {"version": "7", "sha256": "0ymb4m8fgxgi964fdfdqwgjw95qbcm906zgqmyqxgd4ggip3mn47", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhdGEtZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Rsb2NhdGlvbnMuZGF0YS5ncmVzb3VyY2UiLAogICJkZXNjcmlwdGlvbiI6ICJDaGFuZ2UgdGhlIGRlZmF1bHQgR05PTUUgc2NyZWVuc2hvdCBkaXJlY3RvcnkiLAogICJuYW1lIjogIlNjcmVlbnNob3QgTG9jYXRpb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Rsb2NhdGlvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vY29kZWJlcmcub3JnL2tpeXVpL2dub21lLXNoZWxsLXNjcmVlbnNob3Rsb2NhdGlvbnMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJzY3JlZW5zaG90bG9jYXRpb25zLnRpbXVyQGxpbnV4LmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "8", "sha256": "0cxsq1zzmgn6q32wbdfw9hai62li92dwvwnzq2pdbskp9qm6v7nd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgZGVmYXVsdCBHTk9NRSBzY3JlZW5zaG90IGRpcmVjdG9yeSIsCiAgImdldHRleHQtZG9tYWluIjogInNjcmVlbnNob3Rsb2NhdGlvbnMudGltdXJAbGludXguY29tIiwKICAibmFtZSI6ICJTY3JlZW5zaG90IExvY2F0aW9ucyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zY3JlZW5zaG90bG9jYXRpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9jb2RlYmVyZy5vcmcva2l5dWkvZ25vbWUtc2hlbGwtc2NyZWVuc2hvdGxvY2F0aW9ucy1leHRlbnNpb24iLAogICJ1dWlkIjogInNjcmVlbnNob3Rsb2NhdGlvbnMudGltdXJAbGludXguY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "utcclock@injcristianrojas.github.com", "name": "UTCClock", "pname": "utcclock", "description": "UTC clock for the top bar. For GNOME 40+", "link": "https://extensions.gnome.org/extension/1183/utcclock/", "shell_version_map": {"38": {"version": "24", "sha256": "1gmj8479a7yvxb3yh76yjs9n7bav3qp4fkr9hg7197qch0rirhlr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVUQyBjbG9jayBmb3IgdGhlIHRvcCBiYXIuIEZvciBHTk9NRSA0MCsiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJVVENDbG9jayIsCiAgIm5hbWUiOiAiVVRDQ2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXRjY2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pbmpjcmlzdGlhbnJvamFzL1VUQ0Nsb2NrIiwKICAidXVpZCI6ICJ1dGNjbG9ja0BpbmpjcmlzdGlhbnJvamFzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjQKfQ=="}, "40": {"version": "27", "sha256": "0jgrbsn2aqq5zxm553v16ydyzmbwa4ymqfr93mgz1br52clnjj2k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVUQyBjbG9jayBmb3IgdGhlIHRvcCBiYXIuIEZvciBHTk9NRSA0MCsiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJVVENDbG9jayIsCiAgIm5hbWUiOiAiVVRDQ2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXRjY2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2luamNyaXN0aWFucm9qYXMvVVRDQ2xvY2siLAogICJ1dWlkIjogInV0Y2Nsb2NrQGluamNyaXN0aWFucm9qYXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}, "41": {"version": "27", "sha256": "0jgrbsn2aqq5zxm553v16ydyzmbwa4ymqfr93mgz1br52clnjj2k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVUQyBjbG9jayBmb3IgdGhlIHRvcCBiYXIuIEZvciBHTk9NRSA0MCsiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJVVENDbG9jayIsCiAgIm5hbWUiOiAiVVRDQ2xvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXRjY2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2luamNyaXN0aWFucm9qYXMvVVRDQ2xvY2siLAogICJ1dWlkIjogInV0Y2Nsb2NrQGluamNyaXN0aWFucm9qYXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}}}
 , {"uuid": "show-desktop-button@amivaleo", "name": "Show Desktop Button", "pname": "show-desktop-button", "description": "Minimize/unminimize all open windows with a single click.", "link": "https://extensions.gnome.org/extension/1194/show-desktop-button/", "shell_version_map": {"38": {"version": "17", "sha256": "15cym2gka8g10bvprnxf6s0jbwchscw81fh9pvjybqmb9kc8ivvw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW1pdmFsZW8vU2hvdy1EZXNrdG9wLUJ1dHRvbiIsCiAgInV1aWQiOiAic2hvdy1kZXNrdG9wLWJ1dHRvbkBhbWl2YWxlbyIsCiAgInZlcnNpb24iOiAxNwp9"}, "40": {"version": "20", "sha256": "0izr04779cl9yy8b6spjjxagp3il9pnxk77rsvk5wqdlkr4k0k3y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDIwCn0="}, "41": {"version": "20", "sha256": "0izr04779cl9yy8b6spjjxagp3il9pnxk77rsvk5wqdlkr4k0k3y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWJ1dHRvbiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEJ1dHRvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWl2YWxlby9TaG93LURlc2t0b3AtQnV0dG9uIiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYnV0dG9uQGFtaXZhbGVvIiwKICAidmVyc2lvbiI6IDIwCn0="}}}
-, {"uuid": "nasa_apod@elinvention.ovh", "name": "NASA APOD Wallpaper Changer", "pname": "nasa-apod", "description": "Change your wallpaper daily to the NASA's astronomy picture of the day", "link": "https://extensions.gnome.org/extension/1202/nasa-apod/", "shell_version_map": {"40": {"version": "30", "sha256": "09q2gh12skxgvlkkzg9cdw4y7a9fzq6l52z3dslr57dj5mzp5bms", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0VsaW52ZW50aW9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1uYXNhLWFwb2QiLAogICJ1dWlkIjogIm5hc2FfYXBvZEBlbGludmVudGlvbi5vdmgiLAogICJ2ZXJzaW9uIjogMzAKfQ=="}, "41": {"version": "30", "sha256": "09q2gh12skxgvlkkzg9cdw4y7a9fzq6l52z3dslr57dj5mzp5bms", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0VsaW52ZW50aW9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1uYXNhLWFwb2QiLAogICJ1dWlkIjogIm5hc2FfYXBvZEBlbGludmVudGlvbi5vdmgiLAogICJ2ZXJzaW9uIjogMzAKfQ=="}}}
+, {"uuid": "nasa_apod@elinvention.ovh", "name": "NASA APOD Wallpaper Changer", "pname": "nasa-apod", "description": "Change your wallpaper daily to the NASA's astronomy picture of the day", "link": "https://extensions.gnome.org/extension/1202/nasa-apod/", "shell_version_map": {"40": {"version": "31", "sha256": "1w3njadkxjnp6b2jsrfd46xla8hak0m2kipa9vii6wsy80czw59b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0VsaW52ZW50aW9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1uYXNhLWFwb2QiLAogICJ1dWlkIjogIm5hc2FfYXBvZEBlbGludmVudGlvbi5vdmgiLAogICJ2ZXJzaW9uIjogMzEKfQ=="}, "41": {"version": "31", "sha256": "1w3njadkxjnp6b2jsrfd46xla8hak0m2kipa9vii6wsy80czw59b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB5b3VyIHdhbGxwYXBlciBkYWlseSB0byB0aGUgTkFTQSdzIGFzdHJvbm9teSBwaWN0dXJlIG9mIHRoZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYXNhLWFwb2QiLAogICJuYW1lIjogIk5BU0EgQVBPRCBXYWxscGFwZXIgQ2hhbmdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXNhLWFwb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0VsaW52ZW50aW9uL2dub21lLXNoZWxsLWV4dGVuc2lvbi1uYXNhLWFwb2QiLAogICJ1dWlkIjogIm5hc2FfYXBvZEBlbGludmVudGlvbi5vdmgiLAogICJ2ZXJzaW9uIjogMzEKfQ=="}}}
 , {"uuid": "SystemMenu@jonnius.github.com", "name": "System Menu", "pname": "system-menu", "description": "System menu with usefull shortcuts", "link": "https://extensions.gnome.org/extension/1204/system-menu/", "shell_version_map": {"38": {"version": "5", "sha256": "10zfr3fhqvq0fxqjzqmnxmhmdw5xcw9m5k3jm1apcjqnm38r896w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBtZW51IHdpdGggdXNlZnVsbCBzaG9ydGN1dHMiLAogICJuYW1lIjogIlN5c3RlbSBNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLlN5c3RlbU1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL2pvbm5pdXMvZ25vbWUtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogIlN5c3RlbU1lbnVAam9ubml1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "undecorate@sun.wxg@gmail.com", "name": "Undecorate Window", "pname": "undecorate", "description": "Add undecorate item in window menu. Use ALT+Space to show window menu.", "link": "https://extensions.gnome.org/extension/1208/undecorate/", "shell_version_map": {"40": {"version": "5", "sha256": "1vmpzk2vwyi5lywfzcpd350h3p09p9l5bkg7bza6b1w904lfd51n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB1bmRlY29yYXRlIGl0ZW0gaW4gd2luZG93IG1lbnUuIFVzZSBBTFQrU3BhY2UgdG8gc2hvdyB3aW5kb3cgbWVudS4iLAogICJuYW1lIjogIlVuZGVjb3JhdGUgV2luZG93IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJzdW4ud3hnQGdtYWlsLmNvbSIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdW5kZWNvcmF0ZSIsCiAgInV1aWQiOiAidW5kZWNvcmF0ZUBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1vmpzk2vwyi5lywfzcpd350h3p09p9l5bkg7bza6b1w904lfd51n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB1bmRlY29yYXRlIGl0ZW0gaW4gd2luZG93IG1lbnUuIFVzZSBBTFQrU3BhY2UgdG8gc2hvdyB3aW5kb3cgbWVudS4iLAogICJuYW1lIjogIlVuZGVjb3JhdGUgV2luZG93IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJzdW4ud3hnQGdtYWlsLmNvbSIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdW5kZWNvcmF0ZSIsCiAgInV1aWQiOiAidW5kZWNvcmF0ZUBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "rcd@criztovyl.space", "name": "Right Click Down", "pname": "right-click-down", "description": "Moves windows one workspace down by right-clicking them in the overview.", "link": "https://extensions.gnome.org/extension/1210/right-click-down/", "shell_version_map": {"38": {"version": "3", "sha256": "1vh9capapzbbwg2zlw9iphdk48q6fqk0qsmaylvsvw59xc7f9bia", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHdpbmRvd3Mgb25lIHdvcmtzcGFjZSBkb3duIGJ5IHJpZ2h0LWNsaWNraW5nIHRoZW0gaW4gdGhlIG92ZXJ2aWV3LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJyY2QiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbmlvbnMtcmlnaHQtY2xpY2stZG93biIsCiAgIm5hbWUiOiAiUmlnaHQgQ2xpY2sgRG93biIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yaWdodC1jbGljay1kb3duIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4LjAiLAogICAgIjMuMzguMSIsCiAgICAiMy4zOC4yIiwKICAgICI0MC5hbHBoYSIsCiAgICAiNDAuYWxwaGEiLAogICAgIjMuMzguMyIsCiAgICAiMy4zNy45MiIsCiAgICAiMy4zNy45MSIsCiAgICAiMy4zNy45MCIsCiAgICAiMy4zNy4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY3JpenRvdnlsL2dub21lLXJpZ2h0LWNsaWNrLWRvd24iLAogICJ1dWlkIjogInJjZEBjcml6dG92eWwuc3BhY2UiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1vh9capapzbbwg2zlw9iphdk48q6fqk0qsmaylvsvw59xc7f9bia", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHdpbmRvd3Mgb25lIHdvcmtzcGFjZSBkb3duIGJ5IHJpZ2h0LWNsaWNraW5nIHRoZW0gaW4gdGhlIG92ZXJ2aWV3LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJyY2QiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbmlvbnMtcmlnaHQtY2xpY2stZG93biIsCiAgIm5hbWUiOiAiUmlnaHQgQ2xpY2sgRG93biIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yaWdodC1jbGljay1kb3duIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4LjAiLAogICAgIjMuMzguMSIsCiAgICAiMy4zOC4yIiwKICAgICI0MC5hbHBoYSIsCiAgICAiNDAuYWxwaGEiLAogICAgIjMuMzguMyIsCiAgICAiMy4zNy45MiIsCiAgICAiMy4zNy45MSIsCiAgICAiMy4zNy45MCIsCiAgICAiMy4zNy4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vY3JpenRvdnlsL2dub21lLXJpZ2h0LWNsaWNrLWRvd24iLAogICJ1dWlkIjogInJjZEBjcml6dG92eWwuc3BhY2UiLAogICJ2ZXJzaW9uIjogMwp9"}}}
 , {"uuid": "printers@linux-man.org", "name": "Printers", "pname": "printers", "description": "Manage Jobs and Printers", "link": "https://extensions.gnome.org/extension/1218/printers/", "shell_version_map": {"38": {"version": "12", "sha256": "0b5vfw13qdvy13crikp72h1m3ypjzhpxihzlfp0rk530cp031cmz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBKb2JzIGFuZCBQcmludGVycyIsCiAgImV4dGVuc2lvbi1pZCI6ICJwcmludGVycyIsCiAgIm5hbWUiOiAiUHJpbnRlcnMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvYW8uY2FsZGFzLmxvcGVzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHJpbnRlcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9saW51eC1tYW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXByaW50ZXJzIiwKICAidXVpZCI6ICJwcmludGVyc0BsaW51eC1tYW4ub3JnIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "14", "sha256": "0bhhmcxyqfzy3fnh66mrvg7i01lmbk907mfnxig9gqkg50drbcrq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBKb2JzIGFuZCBQcmludGVycyIsCiAgImV4dGVuc2lvbi1pZCI6ICJwcmludGVycyIsCiAgIm5hbWUiOiAiUHJpbnRlcnMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvYW8uY2FsZGFzLmxvcGVzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHJpbnRlcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xpbnV4LW1hbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tcHJpbnRlcnMiLAogICJ1dWlkIjogInByaW50ZXJzQGxpbnV4LW1hbi5vcmciLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "0bhhmcxyqfzy3fnh66mrvg7i01lmbk907mfnxig9gqkg50drbcrq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBKb2JzIGFuZCBQcmludGVycyIsCiAgImV4dGVuc2lvbi1pZCI6ICJwcmludGVycyIsCiAgIm5hbWUiOiAiUHJpbnRlcnMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvYW8uY2FsZGFzLmxvcGVzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHJpbnRlcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xpbnV4LW1hbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tcHJpbnRlcnMiLAogICJ1dWlkIjogInByaW50ZXJzQGxpbnV4LW1hbi5vcmciLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
 , {"uuid": "move-osd-windows@maestroschan.fr", "name": "Move OSD Windows", "pname": "move-osd-windows", "description": "Change the position of OSD windows (sound & luminosity popups).", "link": "https://extensions.gnome.org/extension/1220/move-osd-windows/", "shell_version_map": {"38": {"version": "3", "sha256": "1nmvbx7qbr9a9al5wirnsfwn4qb1qbql2w9f7fpajipasill9hkd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgcG9zaXRpb24gb2YgT1NEIHdpbmRvd3MgKHNvdW5kICYgbHVtaW5vc2l0eSBwb3B1cHMpLiIsCiAgImdldHRleHQtZG9tYWluIjogIm1vdmUtb3NkLXdpbmRvd3MiLAogICJuYW1lIjogIk1vdmUgT1NEIFdpbmRvd3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYWVzdHJvc2NoYW4vTW92ZS1PU0QtV2luZG93cy1HTk9NRS1FeHRlbnNpb24iLAogICJ1dWlkIjogIm1vdmUtb3NkLXdpbmRvd3NAbWFlc3Ryb3NjaGFuLmZyIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
 , {"uuid": "arc-menu@linxgem33.com", "name": "Arc Menu", "pname": "arc-menu", "description": "## UNMAINTAINED ##\n\nThe original version of Arc Menu and all attached repositories apart from the disaster recovery branch will no longer receive updates or further development.\n\nKind Regards - LinxGem33 (Andy C)", "link": "https://extensions.gnome.org/extension/1228/arc-menu/", "shell_version_map": {"38": {"version": "49", "sha256": "0x1kr339qarkviinf13s6ih01ssdh321nw8ncnnrq7ihqpzysf8z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiMjIFVOTUFJTlRBSU5FRCAjI1xuXG5UaGUgb3JpZ2luYWwgdmVyc2lvbiBvZiBBcmMgTWVudSBhbmQgYWxsIGF0dGFjaGVkIHJlcG9zaXRvcmllcyBhcGFydCBmcm9tIHRoZSBkaXNhc3RlciByZWNvdmVyeSBicmFuY2ggd2lsbCBubyBsb25nZXIgcmVjZWl2ZSB1cGRhdGVzIG9yIGZ1cnRoZXIgZGV2ZWxvcG1lbnQuXG5cbktpbmQgUmVnYXJkcyAtIExpbnhHZW0zMyAoQW5keSBDKSIsCiAgImV4dGVuc2lvbi1pZCI6ICJhcmMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImFyYy1tZW51IiwKICAibmFtZSI6ICJBcmMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcmMtbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0xpbnhHZW0zMy9BcmMtTWVudSIsCiAgInV1aWQiOiAiYXJjLW1lbnVAbGlueGdlbTMzLmNvbSIsCiAgInZlcnNpb24iOiA0OQp9"}}}
-, {"uuid": "GmailMessageTray@shuming0207.gmail.com", "name": "Gnome Email Notifications", "pname": "gmail-message-tray", "description": "Shows Gmail and Outlook notifications in Gnome Message Tray using Gnome Online Accounts\n", "link": "https://extensions.gnome.org/extension/1230/gmail-message-tray/", "shell_version_map": {"40": {"version": "22", "sha256": "1hsjqhm0gb7iisg3drwyav166w8zvbfbsdwr47v997xf4mfaycbn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEdtYWlsIGFuZCBPdXRsb29rIG5vdGlmaWNhdGlvbnMgaW4gR25vbWUgTWVzc2FnZSBUcmF5IHVzaW5nIEdub21lIE9ubGluZSBBY2NvdW50c1xuIiwKICAibmFtZSI6ICJHbm9tZSBFbWFpbCBOb3RpZmljYXRpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NodW1pbmdjaC9nbm9tZS1lbWFpbC1ub3RpZmljYXRpb25zIiwKICAidXVpZCI6ICJHbWFpbE1lc3NhZ2VUcmF5QHNodW1pbmcwMjA3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMgp9"}}}
+, {"uuid": "GmailMessageTray@shuming0207.gmail.com", "name": "Gnome Email Notifications", "pname": "gmail-message-tray", "description": "Shows Gmail and Outlook notifications in Gnome Message Tray using Gnome Online Accounts\n", "link": "https://extensions.gnome.org/extension/1230/gmail-message-tray/", "shell_version_map": {"40": {"version": "22", "sha256": "1hsjqhm0gb7iisg3drwyav166w8zvbfbsdwr47v997xf4mfaycbn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEdtYWlsIGFuZCBPdXRsb29rIG5vdGlmaWNhdGlvbnMgaW4gR25vbWUgTWVzc2FnZSBUcmF5IHVzaW5nIEdub21lIE9ubGluZSBBY2NvdW50c1xuIiwKICAibmFtZSI6ICJHbm9tZSBFbWFpbCBOb3RpZmljYXRpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NodW1pbmdjaC9nbm9tZS1lbWFpbC1ub3RpZmljYXRpb25zIiwKICAidXVpZCI6ICJHbWFpbE1lc3NhZ2VUcmF5QHNodW1pbmcwMjA3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMgp9"}, "41": {"version": "23", "sha256": "1maykrq2wnxrbfxfl8ngi93dlvd61lia7bf47873962d6v3fqa7a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEdtYWlsIGFuZCBPdXRsb29rIG5vdGlmaWNhdGlvbnMgaW4gR25vbWUgTWVzc2FnZSBUcmF5IHVzaW5nIEdub21lIE9ubGluZSBBY2NvdW50c1xuIiwKICAibmFtZSI6ICJHbm9tZSBFbWFpbCBOb3RpZmljYXRpb25zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NodW1pbmdjaC9nbm9tZS1lbWFpbC1ub3RpZmljYXRpb25zIiwKICAidXVpZCI6ICJHbWFpbE1lc3NhZ2VUcmF5QHNodW1pbmcwMjA3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMwp9"}}}
 , {"uuid": "switchWorkSpace@sun.wxg@gmail.com", "name": "Switch Workspace", "pname": "switch-workspace", "description": "Switch workspace like using ALT+TAB key to switch windows \n\n Default shortcut key to switch workspace is Ctrl+Above_Tab .", "link": "https://extensions.gnome.org/extension/1231/switch-workspace/", "shell_version_map": {"38": {"version": "30", "sha256": "1z6dafy981y2kjbnk9dncnkkpgqk45njbh3k08s3jg385qvfryvg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3b3Jrc3BhY2UgbGlrZSB1c2luZyBBTFQrVEFCIGtleSB0byBzd2l0Y2ggd2luZG93cyBcblxuIERlZmF1bHQgc2hvcnRjdXQga2V5IHRvIHN3aXRjaCB3b3Jrc3BhY2UgaXMgQ3RybCtBYm92ZV9UYWIgLiIsCiAgIm5hbWUiOiAiU3dpdGNoIFdvcmtzcGFjZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAic3VuLnd4Z0BnbWFpbC5jb20iCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3Vud3hnL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zd2l0Y2h3b3Jrc3BhY2UiLAogICJ1dWlkIjogInN3aXRjaFdvcmtTcGFjZUBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzMAp9"}, "40": {"version": "32", "sha256": "1m9aca2vwq0krpvl0iq7x3fiq2yspjmlzw9i7phylija8lsw1cgp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3b3Jrc3BhY2UgbGlrZSB1c2luZyBBTFQrVEFCIGtleSB0byBzd2l0Y2ggd2luZG93cyBcblxuIERlZmF1bHQgc2hvcnRjdXQga2V5IHRvIHN3aXRjaCB3b3Jrc3BhY2UgaXMgQ3RybCtBYm92ZV9UYWIgLiIsCiAgIm5hbWUiOiAiU3dpdGNoIFdvcmtzcGFjZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAic3VuLnd4Z0BnbWFpbC5jb20iCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN3aXRjaHdvcmtzcGFjZSIsCiAgInV1aWQiOiAic3dpdGNoV29ya1NwYWNlQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMyCn0="}, "41": {"version": "32", "sha256": "1m9aca2vwq0krpvl0iq7x3fiq2yspjmlzw9i7phylija8lsw1cgp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB3b3Jrc3BhY2UgbGlrZSB1c2luZyBBTFQrVEFCIGtleSB0byBzd2l0Y2ggd2luZG93cyBcblxuIERlZmF1bHQgc2hvcnRjdXQga2V5IHRvIHN3aXRjaCB3b3Jrc3BhY2UgaXMgQ3RybCtBYm92ZV9UYWIgLiIsCiAgIm5hbWUiOiAiU3dpdGNoIFdvcmtzcGFjZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAic3VuLnd4Z0BnbWFpbC5jb20iCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN3aXRjaHdvcmtzcGFjZSIsCiAgInV1aWQiOiAic3dpdGNoV29ya1NwYWNlQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMyCn0="}}}
 , {"uuid": "noannoyance@sindex.com", "name": "NoAnnoyance", "pname": "noannoyance", "description": "Disable the “Window is ready” notification.", "link": "https://extensions.gnome.org/extension/1236/noannoyance/", "shell_version_map": {"38": {"version": "5", "sha256": "0x7p3i9qws8pgj3y2raw2vfgjwqm6rprrn3s7lck5bjx9ydri5b6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIFx1MjAxY1dpbmRvdyBpcyByZWFkeVx1MjAxZCBub3RpZmljYXRpb24uIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kZXgvbm8tYW5ub3lhbmNlIiwKICAidXVpZCI6ICJub2Fubm95YW5jZUBzaW5kZXguY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "0x7p3i9qws8pgj3y2raw2vfgjwqm6rprrn3s7lck5bjx9ydri5b6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIFx1MjAxY1dpbmRvdyBpcyByZWFkeVx1MjAxZCBub3RpZmljYXRpb24uIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kZXgvbm8tYW5ub3lhbmNlIiwKICAidXVpZCI6ICJub2Fubm95YW5jZUBzaW5kZXguY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "SomaFm-Radio@alireza6677.gmail.com", "name": "SomaFM internet radio", "pname": "somafm-internet-radio", "description": "Listen to SomaFm free internet radio in your GNOME desktop\n\n* Featues:\n- 32+ Channels\n- Volume slider\n- Favorites menu\n- Good sound quality\n- Supports most gnome-shell versions\n- Channel logos\n\n* Requirements:\n- Gstreamer and plugins:\nYou need to install 'gstreamer' and multimedia codecs/plugins for your distro.", "link": "https://extensions.gnome.org/extension/1237/somafm-internet-radio/", "shell_version_map": {"38": {"version": "29", "sha256": "07l6sa58azf3sav6858q48cbqazavq9bflfxdn0p9ys29h6mf50c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBTb21hRm0gZnJlZSBpbnRlcm5ldCByYWRpbyBpbiB5b3VyIEdOT01FIGRlc2t0b3BcblxuKiBGZWF0dWVzOlxuLSAzMisgQ2hhbm5lbHNcbi0gVm9sdW1lIHNsaWRlclxuLSBGYXZvcml0ZXMgbWVudVxuLSBHb29kIHNvdW5kIHF1YWxpdHlcbi0gU3VwcG9ydHMgbW9zdCBnbm9tZS1zaGVsbCB2ZXJzaW9uc1xuLSBDaGFubmVsIGxvZ29zXG5cbiogUmVxdWlyZW1lbnRzOlxuLSBHc3RyZWFtZXIgYW5kIHBsdWdpbnM6XG5Zb3UgbmVlZCB0byBpbnN0YWxsICdnc3RyZWFtZXInIGFuZCBtdWx0aW1lZGlhIGNvZGVjcy9wbHVnaW5zIGZvciB5b3VyIGRpc3Ryby4iLAogICJuYW1lIjogIlNvbWFGTSBpbnRlcm5ldCByYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vVGhlV2VpcmREZXYvc29tYWZtLXJhZGlvLWdub21lLWV4dCIsCiAgInV1aWQiOiAiU29tYUZtLVJhZGlvQGFsaXJlemE2Njc3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyOQp9"}, "40": {"version": "29", "sha256": "07l6sa58azf3sav6858q48cbqazavq9bflfxdn0p9ys29h6mf50c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBTb21hRm0gZnJlZSBpbnRlcm5ldCByYWRpbyBpbiB5b3VyIEdOT01FIGRlc2t0b3BcblxuKiBGZWF0dWVzOlxuLSAzMisgQ2hhbm5lbHNcbi0gVm9sdW1lIHNsaWRlclxuLSBGYXZvcml0ZXMgbWVudVxuLSBHb29kIHNvdW5kIHF1YWxpdHlcbi0gU3VwcG9ydHMgbW9zdCBnbm9tZS1zaGVsbCB2ZXJzaW9uc1xuLSBDaGFubmVsIGxvZ29zXG5cbiogUmVxdWlyZW1lbnRzOlxuLSBHc3RyZWFtZXIgYW5kIHBsdWdpbnM6XG5Zb3UgbmVlZCB0byBpbnN0YWxsICdnc3RyZWFtZXInIGFuZCBtdWx0aW1lZGlhIGNvZGVjcy9wbHVnaW5zIGZvciB5b3VyIGRpc3Ryby4iLAogICJuYW1lIjogIlNvbWFGTSBpbnRlcm5ldCByYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vVGhlV2VpcmREZXYvc29tYWZtLXJhZGlvLWdub21lLWV4dCIsCiAgInV1aWQiOiAiU29tYUZtLVJhZGlvQGFsaXJlemE2Njc3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyOQp9"}}}
-, {"uuid": "timepp@zagortenay333", "name": "Time ++", "pname": "time", "description": "A todo.txt manager, time tracker, timer, stopwatch, pomodoro, and alarm clock", "link": "https://extensions.gnome.org/extension/1238/time/", "shell_version_map": {"38": {"version": "155", "sha256": "1v71hlwrw9kbxfvka5w8cfqmvcjw3k9xjdwhwlk4i4q5k6kgjih3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQSB0b2RvLnR4dCBtYW5hZ2VyLCB0aW1lIHRyYWNrZXIsIHRpbWVyLCBzdG9wd2F0Y2gsIHBvbW9kb3JvLCBhbmQgYWxhcm0gY2xvY2siLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lICsrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInRyYW5zbGF0aW9uc191cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3phZ29ydGVuYXkzMzMvdGltZXBwX19nbm9tZS90cmVlL21hc3Rlci9kYXRhL3BvX2ZpbGVzIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUiLAogICJ1dWlkIjogInRpbWVwcEB6YWdvcnRlbmF5MzMzIiwKICAidmVyc2lvbiI6IDE1NQp9"}, "40": {"version": "158", "sha256": "0cyydpidzrz4avc1i8gb5rp28pfyn5m3m1c20i11s5lb873diig7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQSB0b2RvLnR4dCBtYW5hZ2VyLCB0aW1lIHRyYWNrZXIsIHRpbWVyLCBzdG9wd2F0Y2gsIHBvbW9kb3JvLCBhbmQgYWxhcm0gY2xvY2siLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lICsrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ0cmFuc2xhdGlvbnNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvdHJlZS9tYXN0ZXIvZGF0YS9wb19maWxlcyIsCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy90aW1lcHBfX2dub21lIiwKICAidXVpZCI6ICJ0aW1lcHBAemFnb3J0ZW5heTMzMyIsCiAgInZlcnNpb24iOiAxNTgKfQ=="}}}
+, {"uuid": "timepp@zagortenay333", "name": "Time ++", "pname": "time", "description": "A todo.txt manager, time tracker, timer, stopwatch, pomodoro, and alarm clock", "link": "https://extensions.gnome.org/extension/1238/time/", "shell_version_map": {"38": {"version": "155", "sha256": "1v71hlwrw9kbxfvka5w8cfqmvcjw3k9xjdwhwlk4i4q5k6kgjih3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQSB0b2RvLnR4dCBtYW5hZ2VyLCB0aW1lIHRyYWNrZXIsIHRpbWVyLCBzdG9wd2F0Y2gsIHBvbW9kb3JvLCBhbmQgYWxhcm0gY2xvY2siLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lICsrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInRyYW5zbGF0aW9uc191cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3phZ29ydGVuYXkzMzMvdGltZXBwX19nbm9tZS90cmVlL21hc3Rlci9kYXRhL3BvX2ZpbGVzIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUiLAogICJ1dWlkIjogInRpbWVwcEB6YWdvcnRlbmF5MzMzIiwKICAidmVyc2lvbiI6IDE1NQp9"}, "40": {"version": "161", "sha256": "0mlnw34wl469apwsa9cndrf74jknncqcvmqzkyahrrfh6k4syhmh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQSB0b2RvLnR4dCBtYW5hZ2VyLCB0aW1lIHRyYWNrZXIsIHRpbWVyLCBzdG9wd2F0Y2gsIHBvbW9kb3JvLCBhbmQgYWxhcm0gY2xvY2siLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lICsrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidHJhbnNsYXRpb25zX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy90aW1lcHBfX2dub21lL3RyZWUvbWFzdGVyL2RhdGEvcG9fZmlsZXMiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3phZ29ydGVuYXkzMzMvdGltZXBwX19nbm9tZSIsCiAgInV1aWQiOiAidGltZXBwQHphZ29ydGVuYXkzMzMiLAogICJ2ZXJzaW9uIjogMTYxCn0="}, "41": {"version": "161", "sha256": "0mlnw34wl469apwsa9cndrf74jknncqcvmqzkyahrrfh6k4syhmh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNhY2hlLWZpbGUtZm9ybWF0LXZlcnNpb24iOiB7CiAgICAiYWxhcm1zIjogMywKICAgICJwb21vZG9ybyI6IDMsCiAgICAic3RvcHdhdGNoIjogNCwKICAgICJ0aW1lciI6IDMsCiAgICAidG9kbyI6IDEwCiAgfSwKICAiZGVzY3JpcHRpb24iOiAiQSB0b2RvLnR4dCBtYW5hZ2VyLCB0aW1lIHRyYWNrZXIsIHRpbWVyLCBzdG9wd2F0Y2gsIHBvbW9kb3JvLCBhbmQgYWxhcm0gY2xvY2siLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0aW1lcHAiLAogICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzL3RpbWVwcF9fZ25vbWUvaXNzdWVzIiwKICAibmFtZSI6ICJUaW1lICsrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImh0dHBzOi8vZ2l0aHViLmNvbS96YWdvcnRlbmF5MzMzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidHJhbnNsYXRpb25zX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vemFnb3J0ZW5heTMzMy90aW1lcHBfX2dub21lL3RyZWUvbWFzdGVyL2RhdGEvcG9fZmlsZXMiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3phZ29ydGVuYXkzMzMvdGltZXBwX19nbm9tZSIsCiAgInV1aWQiOiAidGltZXBwQHphZ29ydGVuYXkzMzMiLAogICJ2ZXJzaW9uIjogMTYxCn0="}}}
 , {"uuid": "obmin@konkor", "name": "Obmin", "pname": "obmin", "description": "One-Click File Sharing for your network.\nObmin is lightweight HTTP(S) File Server for GNU/Linux systems.\n\nFeatures:\n⚫ Easy installation.\n⚫ Easy setup just choose file(s) locations and tune Obmin on.\n⚫ Doesn't require ROOT privileges.\n⚫ Doesn't require any special client side installation.\n⚫ HTTP transfer protocol available everywhere Linux, OSX, Windows, Android, iOS so.\n⚫ More ...\n\nFor more information and how-to see README.md", "link": "https://extensions.gnome.org/extension/1254/obmin/", "shell_version_map": {"38": {"version": "22", "sha256": "1r7q5p600lqlkagz9gdxj5wi77i5066sgiwxfsj4w1ixd1g44cz5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9uZS1DbGljayBGaWxlIFNoYXJpbmcgZm9yIHlvdXIgbmV0d29yay5cbk9ibWluIGlzIGxpZ2h0d2VpZ2h0IEhUVFAoUykgRmlsZSBTZXJ2ZXIgZm9yIEdOVS9MaW51eCBzeXN0ZW1zLlxuXG5GZWF0dXJlczpcblx1MjZhYiBFYXN5IGluc3RhbGxhdGlvbi5cblx1MjZhYiBFYXN5IHNldHVwIGp1c3QgY2hvb3NlIGZpbGUocykgbG9jYXRpb25zIGFuZCB0dW5lIE9ibWluIG9uLlxuXHUyNmFiIERvZXNuJ3QgcmVxdWlyZSBST09UIHByaXZpbGVnZXMuXG5cdTI2YWIgRG9lc24ndCByZXF1aXJlIGFueSBzcGVjaWFsIGNsaWVudCBzaWRlIGluc3RhbGxhdGlvbi5cblx1MjZhYiBIVFRQIHRyYW5zZmVyIHByb3RvY29sIGF2YWlsYWJsZSBldmVyeXdoZXJlIExpbnV4LCBPU1gsIFdpbmRvd3MsIEFuZHJvaWQsIGlPUyBzby5cblx1MjZhYiBNb3JlIC4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLW9ibWluIiwKICAibmFtZSI6ICJPYm1pbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vYm1pbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vb2JtaW4uZ2l0aHViLmlvIiwKICAidXVpZCI6ICJvYm1pbkBrb25rb3IiLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "22", "sha256": "1r7q5p600lqlkagz9gdxj5wi77i5066sgiwxfsj4w1ixd1g44cz5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk9uZS1DbGljayBGaWxlIFNoYXJpbmcgZm9yIHlvdXIgbmV0d29yay5cbk9ibWluIGlzIGxpZ2h0d2VpZ2h0IEhUVFAoUykgRmlsZSBTZXJ2ZXIgZm9yIEdOVS9MaW51eCBzeXN0ZW1zLlxuXG5GZWF0dXJlczpcblx1MjZhYiBFYXN5IGluc3RhbGxhdGlvbi5cblx1MjZhYiBFYXN5IHNldHVwIGp1c3QgY2hvb3NlIGZpbGUocykgbG9jYXRpb25zIGFuZCB0dW5lIE9ibWluIG9uLlxuXHUyNmFiIERvZXNuJ3QgcmVxdWlyZSBST09UIHByaXZpbGVnZXMuXG5cdTI2YWIgRG9lc24ndCByZXF1aXJlIGFueSBzcGVjaWFsIGNsaWVudCBzaWRlIGluc3RhbGxhdGlvbi5cblx1MjZhYiBIVFRQIHRyYW5zZmVyIHByb3RvY29sIGF2YWlsYWJsZSBldmVyeXdoZXJlIExpbnV4LCBPU1gsIFdpbmRvd3MsIEFuZHJvaWQsIGlPUyBzby5cblx1MjZhYiBNb3JlIC4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLW9ibWluIiwKICAibmFtZSI6ICJPYm1pbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vYm1pbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zMiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vb2JtaW4uZ2l0aHViLmlvIiwKICAidXVpZCI6ICJvYm1pbkBrb25rb3IiLAogICJ2ZXJzaW9uIjogMjIKfQ=="}}}
-, {"uuid": "BingWallpaper@ineffable-gmail.com", "name": "Bing Wallpaper", "pname": "bing-wallpaper-changer", "description": "Lightweight GNOME shell extension to set your wallpaper to today's Microsoft Bing image of the day (the image you see when you visit Bing.com).\n\n *Disclaimer*: this extension is unofficial and not affiliated with Bing or Microsoft in any way. Images are protected by copyright and are licensed only for use as wallpapers.\n\nThis extension is based extensively on the NASA APOD extension by Elinvention (https://github.com/Elinvention) and inspired by Bing Desktop Wallpaper Changer by Utkarsh Gupta (https://github.com/UtkarshGpta).\n\nFeatures:\n* Fetches Bing wallpaper of the day and sets as both lock screen and desktop wallpaper (user selectable on GNOME versions that support it)\n* Optionally force a specific region (i.e. locale)\n* UHD supported resolutions\n* Only attempts to download wallpapers when they have been updated\n* Doesn't poll continuously - only once per day and on startup (schedules a refresh when Bing is due to update)\n *NEW: random mode\n *NEW: select wallpaper from previously downloaded images\n* English (en), German (de), Dutch (nl), Italian (it), Polish (pl), Chinese (zh_CN), French (fr_FR), Portuguese (pt, pt_BR), Russian (ru_RU), Spanish (es), Korean (ko, ko_KR, ko_KP), Indonesian (id), Catalan (ca), Norwegian Bokmål (nb) &amp; Nynorsk (ni), Swedish (sv), Arabic (ar), Hungarian (hu) and Finnish (fi_FI) - a HUGE thanks to the translators\n\nAlways restart GNOME after manually updating extensions. Please report bugs to the GitHub page below:", "link": "https://extensions.gnome.org/extension/1262/bing-wallpaper-changer/", "shell_version_map": {"38": {"version": "36", "sha256": "0vxj93zbm7q6lvxfzzknkwl8r3gkn2kfq28rjcj4giphl0xn127k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICZhbXA7IE55bm9yc2sgKG5pKSwgU3dlZGlzaCAoc3YpLCBBcmFiaWMgKGFyKSwgSHVuZ2FyaWFuIChodSkgYW5kIEZpbm5pc2ggKGZpX0ZJKSAtIGEgSFVHRSB0aGFua3MgdG8gdGhlIHRyYW5zbGF0b3JzXG5cbkFsd2F5cyByZXN0YXJ0IEdOT01FIGFmdGVyIG1hbnVhbGx5IHVwZGF0aW5nIGV4dGVuc2lvbnMuIFBsZWFzZSByZXBvcnQgYnVncyB0byB0aGUgR2l0SHViIHBhZ2UgYmVsb3c6IiwKICAibmFtZSI6ICJCaW5nIFdhbGxwYXBlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaW5nd2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIkJpbmdXYWxscGFwZXJAaW5lZmZhYmxlLWdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"}, "40": {"version": "36", "sha256": "0vxj93zbm7q6lvxfzzknkwl8r3gkn2kfq28rjcj4giphl0xn127k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICZhbXA7IE55bm9yc2sgKG5pKSwgU3dlZGlzaCAoc3YpLCBBcmFiaWMgKGFyKSwgSHVuZ2FyaWFuIChodSkgYW5kIEZpbm5pc2ggKGZpX0ZJKSAtIGEgSFVHRSB0aGFua3MgdG8gdGhlIHRyYW5zbGF0b3JzXG5cbkFsd2F5cyByZXN0YXJ0IEdOT01FIGFmdGVyIG1hbnVhbGx5IHVwZGF0aW5nIGV4dGVuc2lvbnMuIFBsZWFzZSByZXBvcnQgYnVncyB0byB0aGUgR2l0SHViIHBhZ2UgYmVsb3c6IiwKICAibmFtZSI6ICJCaW5nIFdhbGxwYXBlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaW5nd2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIkJpbmdXYWxscGFwZXJAaW5lZmZhYmxlLWdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"}, "41": {"version": "36", "sha256": "0vxj93zbm7q6lvxfzzknkwl8r3gkn2kfq28rjcj4giphl0xn127k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICZhbXA7IE55bm9yc2sgKG5pKSwgU3dlZGlzaCAoc3YpLCBBcmFiaWMgKGFyKSwgSHVuZ2FyaWFuIChodSkgYW5kIEZpbm5pc2ggKGZpX0ZJKSAtIGEgSFVHRSB0aGFua3MgdG8gdGhlIHRyYW5zbGF0b3JzXG5cbkFsd2F5cyByZXN0YXJ0IEdOT01FIGFmdGVyIG1hbnVhbGx5IHVwZGF0aW5nIGV4dGVuc2lvbnMuIFBsZWFzZSByZXBvcnQgYnVncyB0byB0aGUgR2l0SHViIHBhZ2UgYmVsb3c6IiwKICAibmFtZSI6ICJCaW5nIFdhbGxwYXBlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaW5nd2FsbHBhcGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uZWZmby9iaW5nLXdhbGxwYXBlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogIkJpbmdXYWxscGFwZXJAaW5lZmZhYmxlLWdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzNgp9"}}}
+, {"uuid": "BingWallpaper@ineffable-gmail.com", "name": "Bing Wallpaper", "pname": "bing-wallpaper-changer", "description": "Lightweight GNOME shell extension to set your wallpaper to today's Microsoft Bing image of the day (the image you see when you visit Bing.com).\n\n *Disclaimer*: this extension is unofficial and not affiliated with Bing or Microsoft in any way. Images are protected by copyright and are licensed only for use as wallpapers.\n\nThis extension is based extensively on the NASA APOD extension by Elinvention (https://github.com/Elinvention) and inspired by Bing Desktop Wallpaper Changer by Utkarsh Gupta (https://github.com/UtkarshGpta).\n\nFeatures:\n* Fetches Bing wallpaper of the day and sets as both lock screen and desktop wallpaper (user selectable on GNOME versions that support it)\n* Optionally force a specific region (i.e. locale)\n* UHD supported resolutions\n* Only attempts to download wallpapers when they have been updated\n* Doesn't poll continuously - only once per day and on startup (schedules a refresh when Bing is due to update)\n *NEW: random mode\n *NEW: select wallpaper from previously downloaded images\n* English (en), German (de), Dutch (nl), Italian (it), Polish (pl), Chinese (zh_CN), French (fr_FR), Portuguese (pt, pt_BR), Russian (ru_RU), Spanish (es), Korean (ko, ko_KR, ko_KP), Indonesian (id), Catalan (ca), Norwegian Bokmål (nb) & Nynorsk (ni), Swedish (sv), Arabic (ar), Hungarian (hu) and Finnish (fi_FI) - a HUGE thanks to the translators\n\nAlways restart GNOME after manually updating extensions. Please report bugs to the GitHub page below:", "link": "https://extensions.gnome.org/extension/1262/bing-wallpaper-changer/", "shell_version_map": {"38": {"version": "37", "sha256": "1v01vkvphqjr7c2gh61p84jwvr8yj91rnhjgdgi8jv06fwcvnja0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICYgTnlub3JzayAobmkpLCBTd2VkaXNoIChzdiksIEFyYWJpYyAoYXIpLCBIdW5nYXJpYW4gKGh1KSBhbmQgRmlubmlzaCAoZmlfRkkpIC0gYSBIVUdFIHRoYW5rcyB0byB0aGUgdHJhbnNsYXRvcnNcblxuQWx3YXlzIHJlc3RhcnQgR05PTUUgYWZ0ZXIgbWFudWFsbHkgdXBkYXRpbmcgZXh0ZW5zaW9ucy4gUGxlYXNlIHJlcG9ydCBidWdzIHRvIHRoZSBHaXRIdWIgcGFnZSBiZWxvdzoiLAogICJuYW1lIjogIkJpbmcgV2FsbHBhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJpbmd3YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25lZmZvL2Jpbmctd2FsbHBhcGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiQmluZ1dhbGxwYXBlckBpbmVmZmFibGUtZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM3Cn0="}, "40": {"version": "37", "sha256": "1v01vkvphqjr7c2gh61p84jwvr8yj91rnhjgdgi8jv06fwcvnja0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICYgTnlub3JzayAobmkpLCBTd2VkaXNoIChzdiksIEFyYWJpYyAoYXIpLCBIdW5nYXJpYW4gKGh1KSBhbmQgRmlubmlzaCAoZmlfRkkpIC0gYSBIVUdFIHRoYW5rcyB0byB0aGUgdHJhbnNsYXRvcnNcblxuQWx3YXlzIHJlc3RhcnQgR05PTUUgYWZ0ZXIgbWFudWFsbHkgdXBkYXRpbmcgZXh0ZW5zaW9ucy4gUGxlYXNlIHJlcG9ydCBidWdzIHRvIHRoZSBHaXRIdWIgcGFnZSBiZWxvdzoiLAogICJuYW1lIjogIkJpbmcgV2FsbHBhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJpbmd3YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25lZmZvL2Jpbmctd2FsbHBhcGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiQmluZ1dhbGxwYXBlckBpbmVmZmFibGUtZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM3Cn0="}, "41": {"version": "37", "sha256": "1v01vkvphqjr7c2gh61p84jwvr8yj91rnhjgdgi8jv06fwcvnja0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IEdOT01FIHNoZWxsIGV4dGVuc2lvbiB0byBzZXQgeW91ciB3YWxscGFwZXIgdG8gdG9kYXkncyBNaWNyb3NvZnQgQmluZyBpbWFnZSBvZiB0aGUgZGF5ICh0aGUgaW1hZ2UgeW91IHNlZSB3aGVuIHlvdSB2aXNpdCBCaW5nLmNvbSkuXG5cbiAqRGlzY2xhaW1lcio6IHRoaXMgZXh0ZW5zaW9uIGlzIHVub2ZmaWNpYWwgYW5kIG5vdCBhZmZpbGlhdGVkIHdpdGggQmluZyBvciBNaWNyb3NvZnQgaW4gYW55IHdheS4gSW1hZ2VzIGFyZSBwcm90ZWN0ZWQgYnkgY29weXJpZ2h0IGFuZCBhcmUgbGljZW5zZWQgb25seSBmb3IgdXNlIGFzIHdhbGxwYXBlcnMuXG5cblRoaXMgZXh0ZW5zaW9uIGlzIGJhc2VkIGV4dGVuc2l2ZWx5IG9uIHRoZSBOQVNBIEFQT0QgZXh0ZW5zaW9uIGJ5IEVsaW52ZW50aW9uIChodHRwczovL2dpdGh1Yi5jb20vRWxpbnZlbnRpb24pIGFuZCBpbnNwaXJlZCBieSBCaW5nIERlc2t0b3AgV2FsbHBhcGVyIENoYW5nZXIgYnkgVXRrYXJzaCBHdXB0YSAoaHR0cHM6Ly9naXRodWIuY29tL1V0a2Fyc2hHcHRhKS5cblxuRmVhdHVyZXM6XG4qIEZldGNoZXMgQmluZyB3YWxscGFwZXIgb2YgdGhlIGRheSBhbmQgc2V0cyBhcyBib3RoIGxvY2sgc2NyZWVuIGFuZCBkZXNrdG9wIHdhbGxwYXBlciAodXNlciBzZWxlY3RhYmxlIG9uIEdOT01FIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBpdClcbiogT3B0aW9uYWxseSBmb3JjZSBhIHNwZWNpZmljIHJlZ2lvbiAoaS5lLiBsb2NhbGUpXG4qIFVIRCBzdXBwb3J0ZWQgcmVzb2x1dGlvbnNcbiogT25seSBhdHRlbXB0cyB0byBkb3dubG9hZCB3YWxscGFwZXJzIHdoZW4gdGhleSBoYXZlIGJlZW4gdXBkYXRlZFxuKiBEb2Vzbid0IHBvbGwgY29udGludW91c2x5IC0gb25seSBvbmNlIHBlciBkYXkgYW5kIG9uIHN0YXJ0dXAgKHNjaGVkdWxlcyBhIHJlZnJlc2ggd2hlbiBCaW5nIGlzIGR1ZSB0byB1cGRhdGUpXG4gKk5FVzogcmFuZG9tIG1vZGVcbiAqTkVXOiBzZWxlY3Qgd2FsbHBhcGVyIGZyb20gcHJldmlvdXNseSBkb3dubG9hZGVkIGltYWdlc1xuKiBFbmdsaXNoIChlbiksIEdlcm1hbiAoZGUpLCBEdXRjaCAobmwpLCBJdGFsaWFuIChpdCksIFBvbGlzaCAocGwpLCBDaGluZXNlICh6aF9DTiksIEZyZW5jaCAoZnJfRlIpLCBQb3J0dWd1ZXNlIChwdCwgcHRfQlIpLCBSdXNzaWFuIChydV9SVSksIFNwYW5pc2ggKGVzKSwgS29yZWFuIChrbywga29fS1IsIGtvX0tQKSwgSW5kb25lc2lhbiAoaWQpLCBDYXRhbGFuIChjYSksIE5vcndlZ2lhbiBCb2ttXHUwMGU1bCAobmIpICYgTnlub3JzayAobmkpLCBTd2VkaXNoIChzdiksIEFyYWJpYyAoYXIpLCBIdW5nYXJpYW4gKGh1KSBhbmQgRmlubmlzaCAoZmlfRkkpIC0gYSBIVUdFIHRoYW5rcyB0byB0aGUgdHJhbnNsYXRvcnNcblxuQWx3YXlzIHJlc3RhcnQgR05PTUUgYWZ0ZXIgbWFudWFsbHkgdXBkYXRpbmcgZXh0ZW5zaW9ucy4gUGxlYXNlIHJlcG9ydCBidWdzIHRvIHRoZSBHaXRIdWIgcGFnZSBiZWxvdzoiLAogICJuYW1lIjogIkJpbmcgV2FsbHBhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJpbmd3YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25lZmZvL2Jpbmctd2FsbHBhcGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiQmluZ1dhbGxwYXBlckBpbmVmZmFibGUtZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM3Cn0="}}}
 , {"uuid": "gnomesome@chwick.github.com", "name": "Gnomesome", "pname": "gnomesome", "description": "Tiling window manager with awesome keybindings", "link": "https://extensions.gnome.org/extension/1268/gnomesome/", "shell_version_map": {"38": {"version": "15", "sha256": "1dn67is3qk80xxfkc2pd43jrsyylmsprd7v3axvl677wdjgaq83z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyB3aW5kb3cgbWFuYWdlciB3aXRoIGF3ZXNvbWUga2V5YmluZGluZ3MiLAogICJuYW1lIjogIkdub21lc29tZSIsCiAgInNldHRpbmdzLWtleWJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lc29tZS5rZXliaW5kaW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Nod2ljay9nbm9tZXNvbWUiLAogICJ1dWlkIjogImdub21lc29tZUBjaHdpY2suZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}}}
 , {"uuid": "gnome-vagrant-indicator@gnome-shell-exstensions.fffilo.github.com", "name": "GNOME Vagrant Indicator", "pname": "gnome-vagrant-indicator", "description": "Easily manage your vagrant machines from status area", "link": "https://extensions.gnome.org/extension/1269/gnome-vagrant-indicator/", "shell_version_map": {"40": {"version": "14", "sha256": "194kfjbv8wc4krxcdazm03c0rnzz11n5xa0m11zq3nczw9pasvwf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVhc2lseSBtYW5hZ2UgeW91ciB2YWdyYW50IG1hY2hpbmVzIGZyb20gc3RhdHVzIGFyZWEiLAogICJkZXNjcmlwdGlvbi1odG1sIjogIkluc3BpcmVkIGJ5IDxhIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vY2FuZGlkdGltL3ZhZ3JhbnQtYXBwaW5kaWNhdG9yXCI+dmdhcHBsZXQ8L2E+LFxuPGI+R05PTUUgVmFncmFudCBJbmRpY2F0b3I8L2I+IGxldHMgeW91IGVhc2lseSBtYW5hZ2UgeW91ciB2YWdyYW50IG1hY2hpbmVzIGZyb20gc3RhdHVzIGFyZWEuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtdmFncmFudC1pbmRpY2F0b3IiLAogICJsaWNlbnNlIjogIkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYzLjAiLAogICJsaWNlbnNlLWh0bWwiOiAiVGhpcyBwcm9ncmFtIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS5cblNlZSB0aGUgPGEgaHJlZj1cImh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC5odG1sXCI+R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMDwvYT4gZm9yIGRldGFpbHMuIiwKICAibmFtZSI6ICJHTk9NRSBWYWdyYW50IEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJGcmFuam8gRmlsbyA8ZmZmaWxvNjY2QGdtYWlsLmNvbT4iLAogICJvcmlnaW5hbC1hdXRob3ItaHRtbCI6ICJGcmFuam8gRmlsbyA8YSBocmVmPVwibWFpbHRvOmZmZmlsbzY2NkBnbWFpbC5jb21cIj4mbHQ7ZmZmaWxvNjY2QGdtYWlsLmNvbSZndDs8L2E+IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdub21lLXZhZ3JhbnQtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZmZmlsby9nbm9tZS12YWdyYW50LWluZGljYXRvciIsCiAgInV1aWQiOiAiZ25vbWUtdmFncmFudC1pbmRpY2F0b3JAZ25vbWUtc2hlbGwtZXhzdGVuc2lvbnMuZmZmaWxvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
 , {"uuid": "prime-indicator@gnome-shell-exstensions.fffilo.github.com", "name": "Prime Indicator", "pname": "prime-indicator", "description": "Intel/NVIDIA GPU Switch", "link": "https://extensions.gnome.org/extension/1275/prime-indicator/", "shell_version_map": {"40": {"version": "9", "sha256": "144qshljqc680w296w49fbfdf63zggl1in12y7dfmhra5ph4mk3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVsL05WSURJQSBHUFUgU3dpdGNoIiwKICAiZGVzY3JpcHRpb24taHRtbCI6ICJHTk9NRSBzaGVsbCBleHRlbnNpb24gdGhhdCBhZGRzIEludGVsL05WSURJQSBHUFUgc3dpdGNoIHRvIGFnZ3JlZ2F0ZSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInByaW1lLWluZGljYXRvciIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIlByaW1lIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJGcmFuam8gRmlsbyA8ZmZmaWxvNjY2QGdtYWlsLmNvbT4iLAogICJvcmlnaW5hbC1hdXRob3ItaHRtbCI6ICJGcmFuam8gRmlsbyAmbHQ7PGEgaHJlZj1cIm1haWx0bzpmZmZpbG82NjZAZ21haWwuY29tXCI+ZmZmaWxvNjY2QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnByaW1lLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mZmZpbG8vcHJpbWUtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJwcmltZS1pbmRpY2F0b3JAZ25vbWUtc2hlbGwtZXhzdGVuc2lvbnMuZmZmaWxvLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}}}
@@ -164,7 +165,7 @@
 , {"uuid": "run-or-raise@edvard.cz", "name": "Run or raise", "pname": "run-or-raise", "description": "Launch or focus the window or define custom shortcuts in a text file", "link": "https://extensions.gnome.org/extension/1336/run-or-raise/", "shell_version_map": {"38": {"version": "15", "sha256": "04dnc1991a7g7f1lgvymiy9nzz74dfi9bnzgyn9mvzn3m02cqvxy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBvciBmb2N1cyB0aGUgd2luZG93IG9yIGRlZmluZSBjdXN0b20gc2hvcnRjdXRzIGluIGEgdGV4dCBmaWxlIiwKICAiZGlzYWJsZS1leHRlbnNpb24tdmVyc2lvbi12YWxpZGF0aW9uIjogdHJ1ZSwKICAibmFtZSI6ICJSdW4gb3IgcmFpc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucnVuLW9yLXJhaXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzYiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ1otTklDL3J1bi1vci1yYWlzZSIsCiAgInV1aWQiOiAicnVuLW9yLXJhaXNlQGVkdmFyZC5jeiIsCiAgInZlcnNpb24iOiAxNQp9"}, "40": {"version": "15", "sha256": "04dnc1991a7g7f1lgvymiy9nzz74dfi9bnzgyn9mvzn3m02cqvxy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBvciBmb2N1cyB0aGUgd2luZG93IG9yIGRlZmluZSBjdXN0b20gc2hvcnRjdXRzIGluIGEgdGV4dCBmaWxlIiwKICAiZGlzYWJsZS1leHRlbnNpb24tdmVyc2lvbi12YWxpZGF0aW9uIjogdHJ1ZSwKICAibmFtZSI6ICJSdW4gb3IgcmFpc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucnVuLW9yLXJhaXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzYiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ1otTklDL3J1bi1vci1yYWlzZSIsCiAgInV1aWQiOiAicnVuLW9yLXJhaXNlQGVkdmFyZC5jeiIsCiAgInZlcnNpb24iOiAxNQp9"}, "41": {"version": "15", "sha256": "04dnc1991a7g7f1lgvymiy9nzz74dfi9bnzgyn9mvzn3m02cqvxy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxhdW5jaCBvciBmb2N1cyB0aGUgd2luZG93IG9yIGRlZmluZSBjdXN0b20gc2hvcnRjdXRzIGluIGEgdGV4dCBmaWxlIiwKICAiZGlzYWJsZS1leHRlbnNpb24tdmVyc2lvbi12YWxpZGF0aW9uIjogdHJ1ZSwKICAibmFtZSI6ICJSdW4gb3IgcmFpc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucnVuLW9yLXJhaXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzYiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ1otTklDL3J1bi1vci1yYWlzZSIsCiAgInV1aWQiOiAicnVuLW9yLXJhaXNlQGVkdmFyZC5jeiIsCiAgInZlcnNpb24iOiAxNQp9"}}}
 , {"uuid": "show_applications_instead_of_overview@fawtytoo", "name": "Show Applications Instead Of Workspaces", "pname": "show-applications-instead-of-overview", "description": "The Overview will show Applications instead of Workspaces when invoked.", "link": "https://extensions.gnome.org/extension/1337/show-applications-instead-of-overview/", "shell_version_map": {"38": {"version": "6", "sha256": "1ap6aawz173r04x43h0vb4sycid9jc17amq8bbhs7dbsrk6x3wzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBPdmVydmlldyB3aWxsIHNob3cgQXBwbGljYXRpb25zIGluc3RlYWQgb2YgV29ya3NwYWNlcyB3aGVuIGludm9rZWQuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9ucyBJbnN0ZWFkIE9mIFdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInNob3dfYXBwbGljYXRpb25zX2luc3RlYWRfb2Zfb3ZlcnZpZXdAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "1ap6aawz173r04x43h0vb4sycid9jc17amq8bbhs7dbsrk6x3wzz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBPdmVydmlldyB3aWxsIHNob3cgQXBwbGljYXRpb25zIGluc3RlYWQgb2YgV29ya3NwYWNlcyB3aGVuIGludm9rZWQuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9ucyBJbnN0ZWFkIE9mIFdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInNob3dfYXBwbGljYXRpb25zX2luc3RlYWRfb2Zfb3ZlcnZpZXdAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "hplip-menu@grizzlysmit.smit.id.au", "name": "Alternate Menu for Hplip", "pname": "hplip-menu", "description": "control your hp printers by calling the device manager hp-toolbox, also some useful links\nMotivation: the hp-systray doesn't work reliably under gnome shell\nyou need to have installed hplip in order to use this\nChoice of using a printer icon or a hp_logo.png if it's installed in the same place as mine on Ubuntu\nyou could use symbolic links to fake the path.", "link": "https://extensions.gnome.org/extension/1339/hplip-menu/", "shell_version_map": {"38": {"version": "11", "sha256": "1754xb6mn0jbkizm79kyjwbhyf1yld0jw8blddia9fn4s223j2rs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLiIsCiAgIm5hbWUiOiAiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhwbGlwLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzguMSIsCiAgICAiMy4zOC4yIiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImhwbGlwLW1lbnVAZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInZlcnNpb24iOiAxMQp9"}, "40": {"version": "11", "sha256": "1754xb6mn0jbkizm79kyjwbhyf1yld0jw8blddia9fn4s223j2rs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLiIsCiAgIm5hbWUiOiAiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhwbGlwLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzguMSIsCiAgICAiMy4zOC4yIiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImhwbGlwLW1lbnVAZ3JpenpseXNtaXQuc21pdC5pZC5hdSIsCiAgInZlcnNpb24iOiAxMQp9"}}}
-, {"uuid": "notes@maestroschan.fr", "name": "Notes", "pname": "notes", "description": "Sticky notes for the GNOME Shell desktop.", "link": "https://extensions.gnome.org/extension/1357/notes/", "shell_version_map": {"38": {"version": "20", "sha256": "0arpk1rnjvc38xy8q3nsaxr0x691gznbqdd4mx3jzdd300j17q24", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0aWNreSBub3RlcyBmb3IgdGhlIEdOT01FIFNoZWxsIGRlc2t0b3AuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90ZXMtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJOb3RlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3Rlcy1leHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW9zY2hhbnovbm90ZXMtZXh0ZW5zaW9uLWdub21lIiwKICAidXVpZCI6ICJub3Rlc0BtYWVzdHJvc2NoYW4uZnIiLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
+, {"uuid": "notes@maestroschan.fr", "name": "Notes", "pname": "notes", "description": "Sticky notes for the GNOME Shell desktop.", "link": "https://extensions.gnome.org/extension/1357/notes/", "shell_version_map": {"38": {"version": "22", "sha256": "0svx60711cphswiigd1sswczk17cjxr7gr3davk4krkhya04llp1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0aWNreSBub3RlcyBmb3IgdGhlIEdOT01FIFNoZWxsIGRlc2t0b3AuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90ZXMtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJOb3RlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ub3Rlcy1leHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYW9zY2hhbnovbm90ZXMtZXh0ZW5zaW9uLWdub21lIiwKICAidXVpZCI6ICJub3Rlc0BtYWVzdHJvc2NoYW4uZnIiLAogICJ2ZXJzaW9uIjogMjIKfQ=="}}}
 , {"uuid": "slinger@gfxmonk.net", "name": "slinger", "pname": "slinger", "description": "Sling windows around efficiently", "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": {"38": {"version": "5", "sha256": "11awssml3n1kza1inny4j89bkmgpldzcglwa26pyr432i4la0jh6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGN1cnJlbnQgdW5peCB0aW1lc3RhbXAgYXMgYSBjbG9jayBpbiB0aGUgdG9wIGJhci5cblxuQ29weS1wYXN0ZSBjdXJyZW50bHkgc2hvd24gdGltZXN0YW1wIChsZWZ0IG1vdXNlIGJ1dHRvbikgb3IgY3VycmVudCB0aW1lc3RhbXAgKGFueSBvdGhlciBtb3VzZSBidXR0b24pIHRvIGNsaXBib2FyZCIsCiAgIm5hbWUiOiAiVW5peCBUaW1lc3RhbXAgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZTFleGluL3VuaXgtdGltZXN0YW1wLWNsb2NrIiwKICAidXVpZCI6ICJ1bml4LXRpbWVzdGFtcC1jbG9ja0BzZTFleGluLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "11awssml3n1kza1inny4j89bkmgpldzcglwa26pyr432i4la0jh6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGN1cnJlbnQgdW5peCB0aW1lc3RhbXAgYXMgYSBjbG9jayBpbiB0aGUgdG9wIGJhci5cblxuQ29weS1wYXN0ZSBjdXJyZW50bHkgc2hvd24gdGltZXN0YW1wIChsZWZ0IG1vdXNlIGJ1dHRvbikgb3IgY3VycmVudCB0aW1lc3RhbXAgKGFueSBvdGhlciBtb3VzZSBidXR0b24pIHRvIGNsaXBib2FyZCIsCiAgIm5hbWUiOiAiVW5peCBUaW1lc3RhbXAgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZTFleGluL3VuaXgtdGltZXN0YW1wLWNsb2NrIiwKICAidXVpZCI6ICJ1bml4LXRpbWVzdGFtcC1jbG9ja0BzZTFleGluLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "mprisindicatorbutton@JasonLG1979.github.io", "name": "Mpris Indicator Button", "pname": "mpris-indicator-button", "description": "A full featured MPRIS indicator.", "link": "https://extensions.gnome.org/extension/1379/mpris-indicator-button/", "shell_version_map": {"38": {"version": "19", "sha256": "03fs6j4xznzn6p81fw476faxyf0bag0jalsri3imwmpw1mfg18di", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZnVsbCBmZWF0dXJlZCBNUFJJUyBpbmRpY2F0b3IuIiwKICAibmFtZSI6ICJNcHJpcyBJbmRpY2F0b3IgQnV0dG9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkphc29uTEcxOTc5QGdpdGh1Yi5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSmFzb25MRzE5NzkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1wcmlzLWluZGljYXRvci1idXR0b24vIiwKICAidXVpZCI6ICJtcHJpc2luZGljYXRvcmJ1dHRvbkBKYXNvbkxHMTk3OS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "40": {"version": "19", "sha256": "03fs6j4xznzn6p81fw476faxyf0bag0jalsri3imwmpw1mfg18di", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZnVsbCBmZWF0dXJlZCBNUFJJUyBpbmRpY2F0b3IuIiwKICAibmFtZSI6ICJNcHJpcyBJbmRpY2F0b3IgQnV0dG9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkphc29uTEcxOTc5QGdpdGh1Yi5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSmFzb25MRzE5NzkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1wcmlzLWluZGljYXRvci1idXR0b24vIiwKICAidXVpZCI6ICJtcHJpc2luZGljYXRvcmJ1dHRvbkBKYXNvbkxHMTk3OS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "41": {"version": "19", "sha256": "03fs6j4xznzn6p81fw476faxyf0bag0jalsri3imwmpw1mfg18di", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZnVsbCBmZWF0dXJlZCBNUFJJUyBpbmRpY2F0b3IuIiwKICAibmFtZSI6ICJNcHJpcyBJbmRpY2F0b3IgQnV0dG9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkphc29uTEcxOTc5QGdpdGh1Yi5pbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSmFzb25MRzE5NzkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1wcmlzLWluZGljYXRvci1idXR0b24vIiwKICAidXVpZCI6ICJtcHJpc2luZGljYXRvcmJ1dHRvbkBKYXNvbkxHMTk3OS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
@@ -181,8 +182,8 @@
 , {"uuid": "vbox-applet@gs.eros2.info", "name": "VirtualBox applet", "pname": "virtualbox-applet", "description": "Provide menu to run VirtualBox machines and switch between running VMs", "link": "https://extensions.gnome.org/extension/1415/virtualbox-applet/", "shell_version_map": {"38": {"version": "9", "sha256": "1dpda9g9nknjbc7wfzhdahly3w3mvqw6r4qqdrhylsc3kqq858ay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbWVudSB0byBydW4gVmlydHVhbEJveCBtYWNoaW5lcyBhbmQgc3dpdGNoIGJldHdlZW4gcnVubmluZyBWTXMiLAogICJuYW1lIjogIlZpcnR1YWxCb3ggYXBwbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZib3gtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldWdlbmUtcm9tL3Zib3gtYXBwbGV0IiwKICAidXVpZCI6ICJ2Ym94LWFwcGxldEBncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "1dpda9g9nknjbc7wfzhdahly3w3mvqw6r4qqdrhylsc3kqq858ay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbWVudSB0byBydW4gVmlydHVhbEJveCBtYWNoaW5lcyBhbmQgc3dpdGNoIGJldHdlZW4gcnVubmluZyBWTXMiLAogICJuYW1lIjogIlZpcnR1YWxCb3ggYXBwbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZib3gtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldWdlbmUtcm9tL3Zib3gtYXBwbGV0IiwKICAidXVpZCI6ICJ2Ym94LWFwcGxldEBncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "41": {"version": "9", "sha256": "1dpda9g9nknjbc7wfzhdahly3w3mvqw6r4qqdrhylsc3kqq858ay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgbWVudSB0byBydW4gVmlydHVhbEJveCBtYWNoaW5lcyBhbmQgc3dpdGNoIGJldHdlZW4gcnVubmluZyBWTXMiLAogICJuYW1lIjogIlZpcnR1YWxCb3ggYXBwbGV0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnZib3gtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ldWdlbmUtcm9tL3Zib3gtYXBwbGV0IiwKICAidXVpZCI6ICJ2Ym94LWFwcGxldEBncy5lcm9zMi5pbmZvIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
 , {"uuid": "stocks@infinicode.de", "name": "Stocks Extension", "pname": "stocks-extension", "description": "Stocks Extension brings stock quotes to your GNOME Shell Panel", "link": "https://extensions.gnome.org/extension/1422/stocks-extension/", "shell_version_map": {"38": {"version": "19", "sha256": "1414cksayqpv0w0q632yi33ifqlwyfggwf684aci6qj81fs644y2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0b2NrcyBFeHRlbnNpb24gYnJpbmdzIHN0b2NrIHF1b3RlcyB0byB5b3VyIEdOT01FIFNoZWxsIFBhbmVsIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJTdG9ja3MgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvc3RvY2tzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3RvY2tzQGluZmluaWNvZGUuZGUiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "40": {"version": "19", "sha256": "1414cksayqpv0w0q632yi33ifqlwyfggwf684aci6qj81fs644y2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0b2NrcyBFeHRlbnNpb24gYnJpbmdzIHN0b2NrIHF1b3RlcyB0byB5b3VyIEdOT01FIFNoZWxsIFBhbmVsIiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJTdG9ja3MgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMvc3RvY2tzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3RvY2tzQGluZmluaWNvZGUuZGUiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
 , {"uuid": "showtime@xenlism.github.io", "name": "Showtime  - Desktop Widget", "pname": "showtime", "description": "Date &amp;amp;amp;amp;amp;amp;amp; Clock Desktop Widget\n\nMove Widget by Press Super + Drag Widget\nhttps://github.com/xenlism/showtime", "link": "https://extensions.gnome.org/extension/1429/showtime/", "shell_version_map": {"38": {"version": "4", "sha256": "12k6spjhg2ykgh5x3mily0dps450pyj9vyv1bay5w919y9swplaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRhdGUgJmFtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDsgQ2xvY2sgRGVza3RvcCBXaWRnZXRcblxuTW92ZSBXaWRnZXQgYnkgUHJlc3MgU3VwZXIgKyBEcmFnIFdpZGdldFxuaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJuYW1lIjogIlNob3d0aW1lICAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVubGlzbS9zaG93dGltZSIsCiAgInV1aWQiOiAic2hvd3RpbWVAeGVubGlzbS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "5", "sha256": "0p10as2k6lkh3vj5860hvmj98by18ih8r2k7y36iqrxqpl3s8fd4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRhdGUgJmFtcDthbXA7YW1wO2FtcDthbXA7YW1wO2FtcDsgQ2xvY2sgRGVza3RvcCBXaWRnZXRcblxuTW92ZSBXaWRnZXQgYnkgUHJlc3MgU3VwZXIgKyBEcmFnIFdpZGdldFxuaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJuYW1lIjogIlNob3d0aW1lICAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJ1dWlkIjogInNob3d0aW1lQHhlbmxpc20uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
-, {"uuid": "Current_screen_only_for_Alternate_Tab@bourcereau.fr", "name": "Current screen only on window switcher", "pname": "current-screen-only-for-alternate-tab", "description": "Limits the windows shown on the switcher to those of the current monitor", "link": "https://extensions.gnome.org/extension/1437/current-screen-only-for-alternate-tab/", "shell_version_map": {"40": {"version": "7", "sha256": "085166k6cyc249h03nmkv3dx5i7hcrpvbapimym6z1mg3ygij6z7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpbWl0cyB0aGUgd2luZG93cyBzaG93biBvbiB0aGUgc3dpdGNoZXIgdG8gdGhvc2Ugb2YgdGhlIGN1cnJlbnQgbW9uaXRvciIsCiAgIm5hbWUiOiAiQ3VycmVudCBzY3JlZW4gb25seSBvbiB3aW5kb3cgc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbW1haS9DdXJyZW50X3NjcmVlbl9vbmx5X29uX3dpbmRvd19zd2l0Y2hlciIsCiAgInV1aWQiOiAiQ3VycmVudF9zY3JlZW5fb25seV9mb3JfQWx0ZXJuYXRlX1RhYkBib3VyY2VyZWF1LmZyIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
-, {"uuid": "kube_config@vvbogdanov87.gmail.com", "name": "Kube Config", "pname": "kube-config", "description": "Switches kube config context", "link": "https://extensions.gnome.org/extension/1442/kube-config/", "shell_version_map": {"40": {"version": "12", "sha256": "0cdvqihm4skvnyv3mbbyp9cyk14xgrvhzrv2gm90p32hsfa6l95d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92dmJvZ2Rhbm92ODcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWt1YmVjb25maWciLAogICJ1dWlkIjogImt1YmVfY29uZmlnQHZ2Ym9nZGFub3Y4Ny5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "41": {"version": "12", "sha256": "0cdvqihm4skvnyv3mbbyp9cyk14xgrvhzrv2gm90p32hsfa6l95d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92dmJvZ2Rhbm92ODcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWt1YmVjb25maWciLAogICJ1dWlkIjogImt1YmVfY29uZmlnQHZ2Ym9nZGFub3Y4Ny5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
+, {"uuid": "Current_screen_only_for_Alternate_Tab@bourcereau.fr", "name": "Current screen only on window switcher", "pname": "current-screen-only-for-alternate-tab", "description": "Limits the windows shown on the switcher to those of the current monitor", "link": "https://extensions.gnome.org/extension/1437/current-screen-only-for-alternate-tab/", "shell_version_map": {"40": {"version": "8", "sha256": "0x4idd6ba55qxsnx8fplgamdjj0f2hmv2sv2vbn3m3wavd4n0w27", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpbWl0cyB0aGUgd2luZG93cyBzaG93biBvbiB0aGUgc3dpdGNoZXIgdG8gdGhvc2Ugb2YgdGhlIGN1cnJlbnQgbW9uaXRvciIsCiAgIm5hbWUiOiAiQ3VycmVudCBzY3JlZW4gb25seSBvbiB3aW5kb3cgc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21tYWkvQ3VycmVudF9zY3JlZW5fb25seV9vbl93aW5kb3dfc3dpdGNoZXIiLAogICJ1dWlkIjogIkN1cnJlbnRfc2NyZWVuX29ubHlfZm9yX0FsdGVybmF0ZV9UYWJAYm91cmNlcmVhdS5mciIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "0x4idd6ba55qxsnx8fplgamdjj0f2hmv2sv2vbn3m3wavd4n0w27", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpbWl0cyB0aGUgd2luZG93cyBzaG93biBvbiB0aGUgc3dpdGNoZXIgdG8gdGhvc2Ugb2YgdGhlIGN1cnJlbnQgbW9uaXRvciIsCiAgIm5hbWUiOiAiQ3VycmVudCBzY3JlZW4gb25seSBvbiB3aW5kb3cgc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21tYWkvQ3VycmVudF9zY3JlZW5fb25seV9vbl93aW5kb3dfc3dpdGNoZXIiLAogICJ1dWlkIjogIkN1cnJlbnRfc2NyZWVuX29ubHlfZm9yX0FsdGVybmF0ZV9UYWJAYm91cmNlcmVhdS5mciIsCiAgInZlcnNpb24iOiA4Cn0="}}}
+, {"uuid": "kube_config@vvbogdanov87.gmail.com", "name": "Kube Config", "pname": "kube-config", "description": "Switches kube config context", "link": "https://extensions.gnome.org/extension/1442/kube-config/", "shell_version_map": {"40": {"version": "14", "sha256": "125gbiim4d3kpycjncvqmxqgz3i1c15kkyx2rmgkc2wpzx0gyc6i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92dmJvZ2Rhbm92ODcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWt1YmVjb25maWciLAogICJ1dWlkIjogImt1YmVfY29uZmlnQHZ2Ym9nZGFub3Y4Ny5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "125gbiim4d3kpycjncvqmxqgz3i1c15kkyx2rmgkc2wpzx0gyc6i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92dmJvZ2Rhbm92ODcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWt1YmVjb25maWciLAogICJ1dWlkIjogImt1YmVfY29uZmlnQHZ2Ym9nZGFub3Y4Ny5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
 , {"uuid": "transparent-window-moving@noobsai.github.com", "name": "Transparent Window Moving", "pname": "transparent-window-moving", "description": "Makes the window semi-transparent when moving or resizing", "link": "https://extensions.gnome.org/extension/1446/transparent-window-moving/", "shell_version_map": {"38": {"version": "6", "sha256": "0vllnrscjaqx77wb44803q6n3wk590dxacjfsw7ympbgqhikzc0p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTm9vYnNhaS90cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nQG5vb2JzYWkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "9", "sha256": "1da8vldknv6v5b4wdxd9a7q9i4mla92wxj5l48g3ja8xa1rz8bgf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Ob29ic2FpL3RyYW5zcGFyZW50LXdpbmRvdy1tb3ZpbmciLAogICJ1dWlkIjogInRyYW5zcGFyZW50LXdpbmRvdy1tb3ZpbmdAbm9vYnNhaS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "41": {"version": "9", "sha256": "1da8vldknv6v5b4wdxd9a7q9i4mla92wxj5l48g3ja8xa1rz8bgf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Ob29ic2FpL3RyYW5zcGFyZW50LXdpbmRvdy1tb3ZpbmciLAogICJ1dWlkIjogInRyYW5zcGFyZW50LXdpbmRvdy1tb3ZpbmdAbm9vYnNhaS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
 , {"uuid": "transparent-window@pbxqdown.github.com", "name": "Transparent Window", "pname": "transparent-window", "description": "Change the opacity of windows by compiz-style shortcut Alt+scroll.\nYou can customize hotkey in Preference page if Alt key doesn't work.", "link": "https://extensions.gnome.org/extension/1454/transparent-window/", "shell_version_map": {"38": {"version": "7", "sha256": "09nhn8f7d8c1kp8hgw49y0d9165ckvgn6my339k0pzga02d277a6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgb3BhY2l0eSBvZiB3aW5kb3dzIGJ5IGNvbXBpei1zdHlsZSBzaG9ydGN1dCBBbHQrc2Nyb2xsLlxuWW91IGNhbiBjdXN0b21pemUgaG90a2V5IGluIFByZWZlcmVuY2UgcGFnZSBpZiBBbHQga2V5IGRvZXNuJ3Qgd29yay4iLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFdpbmRvdyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5UcmFuc3BhcmVudFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4xIiwKICAgICIzLjM2LjEiLAogICAgIjMuMzguMSIsCiAgICAiMy4zOC40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGJ4cWRvd24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXdpbmRvdyIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtd2luZG93QHBieHFkb3duLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"uuid": "miniview@thesecretaryofwar.com", "name": "Miniview", "pname": "miniview", "description": "Show mini window previews (like picture-in-picture on a TV)\n- Left-mouse drag: move preview window\n- Right-mouse drag (or ctrl + left mouse drag): resize preview window\n- Scroll wheel: change target window\n- Double click: raise target window\n- Shift + F12: toggle preview window (this can be changed or disabled in preferences)\n- Ctrl + scroll wheel: adjust opacity", "link": "https://extensions.gnome.org/extension/1459/miniview/", "shell_version_map": {"38": {"version": "11", "sha256": "15n1vhnsijahbl41prfddpykyaq2mn43gi74n8qg66cz5n5rc58i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbWluaSB3aW5kb3cgcHJldmlld3MgKGxpa2UgcGljdHVyZS1pbi1waWN0dXJlIG9uIGEgVFYpXG4tIExlZnQtbW91c2UgZHJhZzogbW92ZSBwcmV2aWV3IHdpbmRvd1xuLSBSaWdodC1tb3VzZSBkcmFnIChvciBjdHJsICsgbGVmdCBtb3VzZSBkcmFnKTogcmVzaXplIHByZXZpZXcgd2luZG93XG4tIFNjcm9sbCB3aGVlbDogY2hhbmdlIHRhcmdldCB3aW5kb3dcbi0gRG91YmxlIGNsaWNrOiByYWlzZSB0YXJnZXQgd2luZG93XG4tIFNoaWZ0ICsgRjEyOiB0b2dnbGUgcHJldmlldyB3aW5kb3cgKHRoaXMgY2FuIGJlIGNoYW5nZWQgb3IgZGlzYWJsZWQgaW4gcHJlZmVyZW5jZXMpXG4tIEN0cmwgKyBzY3JvbGwgd2hlZWw6IGFkanVzdCBvcGFjaXR5IiwKICAiZXh0ZW5zaW9uLWlkIjogIm1pbml2aWV3IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWluaXZpZXciLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInRoZXNlY3JldGFyeW9md2FyQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWluaXZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmFscGhhIiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pYW1sZW1lYy9taW5pdmlldyIsCiAgInV1aWQiOiAibWluaXZpZXdAdGhlc2VjcmV0YXJ5b2Z3YXIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "15n1vhnsijahbl41prfddpykyaq2mn43gi74n8qg66cz5n5rc58i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbWluaSB3aW5kb3cgcHJldmlld3MgKGxpa2UgcGljdHVyZS1pbi1waWN0dXJlIG9uIGEgVFYpXG4tIExlZnQtbW91c2UgZHJhZzogbW92ZSBwcmV2aWV3IHdpbmRvd1xuLSBSaWdodC1tb3VzZSBkcmFnIChvciBjdHJsICsgbGVmdCBtb3VzZSBkcmFnKTogcmVzaXplIHByZXZpZXcgd2luZG93XG4tIFNjcm9sbCB3aGVlbDogY2hhbmdlIHRhcmdldCB3aW5kb3dcbi0gRG91YmxlIGNsaWNrOiByYWlzZSB0YXJnZXQgd2luZG93XG4tIFNoaWZ0ICsgRjEyOiB0b2dnbGUgcHJldmlldyB3aW5kb3cgKHRoaXMgY2FuIGJlIGNoYW5nZWQgb3IgZGlzYWJsZWQgaW4gcHJlZmVyZW5jZXMpXG4tIEN0cmwgKyBzY3JvbGwgd2hlZWw6IGFkanVzdCBvcGFjaXR5IiwKICAiZXh0ZW5zaW9uLWlkIjogIm1pbml2aWV3IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWluaXZpZXciLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInRoZXNlY3JldGFyeW9md2FyQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWluaXZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmFscGhhIiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pYW1sZW1lYy9taW5pdmlldyIsCiAgInV1aWQiOiAibWluaXZpZXdAdGhlc2VjcmV0YXJ5b2Z3YXIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}, "41": {"version": "11", "sha256": "15n1vhnsijahbl41prfddpykyaq2mn43gi74n8qg66cz5n5rc58i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbWluaSB3aW5kb3cgcHJldmlld3MgKGxpa2UgcGljdHVyZS1pbi1waWN0dXJlIG9uIGEgVFYpXG4tIExlZnQtbW91c2UgZHJhZzogbW92ZSBwcmV2aWV3IHdpbmRvd1xuLSBSaWdodC1tb3VzZSBkcmFnIChvciBjdHJsICsgbGVmdCBtb3VzZSBkcmFnKTogcmVzaXplIHByZXZpZXcgd2luZG93XG4tIFNjcm9sbCB3aGVlbDogY2hhbmdlIHRhcmdldCB3aW5kb3dcbi0gRG91YmxlIGNsaWNrOiByYWlzZSB0YXJnZXQgd2luZG93XG4tIFNoaWZ0ICsgRjEyOiB0b2dnbGUgcHJldmlldyB3aW5kb3cgKHRoaXMgY2FuIGJlIGNoYW5nZWQgb3IgZGlzYWJsZWQgaW4gcHJlZmVyZW5jZXMpXG4tIEN0cmwgKyBzY3JvbGwgd2hlZWw6IGFkanVzdCBvcGFjaXR5IiwKICAiZXh0ZW5zaW9uLWlkIjogIm1pbml2aWV3IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWluaXZpZXciLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInRoZXNlY3JldGFyeW9md2FyQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWluaXZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmFscGhhIiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pYW1sZW1lYy9taW5pdmlldyIsCiAgInV1aWQiOiAibWluaXZpZXdAdGhlc2VjcmV0YXJ5b2Z3YXIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}}}
@@ -197,14 +198,15 @@
 , {"uuid": "wsmatrix@martin.zurowietz.de", "name": "Workspace Matrix", "pname": "workspace-matrix", "description": "Arrange workspaces in a two dimensional grid with workspace thumbnails.", "link": "https://extensions.gnome.org/extension/1485/workspace-matrix/", "shell_version_map": {"38": {"version": "27", "sha256": "0b76x0li5a8x42l67ykbw34k4cfmbxqvz36zighhfw4qmxsc36cr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd29ya3NwYWNlcyBpbiBhIHR3byBkaW1lbnNpb25hbCBncmlkIHdpdGggd29ya3NwYWNlIHRodW1ibmFpbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid3NtYXRyaXgiLAogICJrZXliaW5kaW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgta2V5YmluZGluZ3MiLAogICJuYW1lIjogIldvcmtzcGFjZSBNYXRyaXgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tenVyL2dub21lLXNoZWxsLXdzbWF0cml4IiwKICAidXVpZCI6ICJ3c21hdHJpeEBtYXJ0aW4uenVyb3dpZXR6LmRlIiwKICAidmVyc2lvbiI6IDI3Cn0="}, "40": {"version": "30", "sha256": "0i2mkln8nvvjr870fi0vspry0y7zsyvxakb3i8x5c90r6gc6mr25", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd29ya3NwYWNlcyBpbiBhIHR3byBkaW1lbnNpb25hbCBncmlkIHdpdGggd29ya3NwYWNlIHRodW1ibmFpbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid3NtYXRyaXgiLAogICJrZXliaW5kaW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgta2V5YmluZGluZ3MiLAogICJuYW1lIjogIldvcmtzcGFjZSBNYXRyaXgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL216dXIvZ25vbWUtc2hlbGwtd3NtYXRyaXgiLAogICJ1dWlkIjogIndzbWF0cml4QG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMzAKfQ=="}, "41": {"version": "30", "sha256": "0i2mkln8nvvjr870fi0vspry0y7zsyvxakb3i8x5c90r6gc6mr25", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd29ya3NwYWNlcyBpbiBhIHR3byBkaW1lbnNpb25hbCBncmlkIHdpdGggd29ya3NwYWNlIHRodW1ibmFpbHMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAid3NtYXRyaXgiLAogICJrZXliaW5kaW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgta2V5YmluZGluZ3MiLAogICJuYW1lIjogIldvcmtzcGFjZSBNYXRyaXgiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud3NtYXRyaXgtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL216dXIvZ25vbWUtc2hlbGwtd3NtYXRyaXgiLAogICJ1dWlkIjogIndzbWF0cml4QG1hcnRpbi56dXJvd2lldHouZGUiLAogICJ2ZXJzaW9uIjogMzAKfQ=="}}}
 , {"uuid": "extensions-sync@elhan.io", "name": "Extensions Sync", "pname": "extensions-sync", "description": "Sync all extensions and their configurations across all gnome instances", "link": "https://extensions.gnome.org/extension/1486/extensions-sync/", "shell_version_map": {"38": {"version": "12", "sha256": "0yb0brjnqvvlqpdyh841qwh3q2d02vi1an0s93gb2b6kagy1g7zd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmMgYWxsIGV4dGVuc2lvbnMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFuY2VzIiwKICAibmFtZSI6ICJFeHRlbnNpb25zIFN5bmMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9ucy1zeW5jIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb2FlL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtc3luYyIsCiAgInV1aWQiOiAiZXh0ZW5zaW9ucy1zeW5jQGVsaGFuLmlvIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "16", "sha256": "1bl8la3yg94mmzqh28n47kznaaivfbnxm3dwb71ddsr6gaf3n5p2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmMgYWxsIGV4dGVuc2lvbnMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFuY2VzIiwKICAibmFtZSI6ICJFeHRlbnNpb25zIFN5bmMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9ucy1zeW5jIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vYWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy1zeW5jIiwKICAidXVpZCI6ICJleHRlbnNpb25zLXN5bmNAZWxoYW4uaW8iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "41": {"version": "16", "sha256": "1bl8la3yg94mmzqh28n47kznaaivfbnxm3dwb71ddsr6gaf3n5p2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5bmMgYWxsIGV4dGVuc2lvbnMgYW5kIHRoZWlyIGNvbmZpZ3VyYXRpb25zIGFjcm9zcyBhbGwgZ25vbWUgaW5zdGFuY2VzIiwKICAibmFtZSI6ICJFeHRlbnNpb25zIFN5bmMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9ucy1zeW5jIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9vYWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy1zeW5jIiwKICAidXVpZCI6ICJleHRlbnNpb25zLXN5bmNAZWxoYW4uaW8iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}}}
 , {"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": "19", "sha256": "16z5978jwpf6cbasnfdi5w8s9dx929r8yh7a4dsrd5isnrnyi22x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAxOQp9"}, "41": {"version": "19", "sha256": "16z5978jwpf6cbasnfdi5w8s9dx929r8yh7a4dsrd5isnrnyi22x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBwb2RtYW4gY29udGFpbmVycyB0aHJvdWdoIGEgZ25vbWUtc2hlbGwgbWVudSIsCiAgIm5hbWUiOiAiQ29udGFpbmVycyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmdvbGFuZ2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNvbnRhaW5lcnMiLAogICJ1dWlkIjogImNvbnRhaW5lcnNAcm95ZyIsCiAgInZlcnNpb24iOiAxOQp9"}}}
-, {"uuid": "fullscreenworkspace@satran.in", "name": "Fullscreen On New Workspace", "pname": "fullscreen-on-new-workspace", "description": "When you launch an application in fullscreen mode move it to a separate workspace.", "link": "https://extensions.gnome.org/extension/1502/fullscreen-on-new-workspace/", "shell_version_map": {"38": {"version": "2", "sha256": "0flpi1rwbzacibhf8j74v6vc5wa99d5149ydmwdfcij3r5qxh5br", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4geW91IGxhdW5jaCBhbiBhcHBsaWNhdGlvbiBpbiBmdWxsc2NyZWVuIG1vZGUgbW92ZSBpdCB0byBhIHNlcGFyYXRlIHdvcmtzcGFjZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmdWxsc2NyZWVud29ya3NwYWNlIiwKICAibmFtZSI6ICJGdWxsc2NyZWVuIE9uIE5ldyBXb3Jrc3BhY2UiLAogICJzY2hlbWEtaWQiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zYXRyYW4vZnVsbHNjcmVlbndvcmtzcGFjZS1zYXRyYW4uaW4iLAogICJ1dWlkIjogImZ1bGxzY3JlZW53b3Jrc3BhY2VAc2F0cmFuLmluIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "0flpi1rwbzacibhf8j74v6vc5wa99d5149ydmwdfcij3r5qxh5br", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4geW91IGxhdW5jaCBhbiBhcHBsaWNhdGlvbiBpbiBmdWxsc2NyZWVuIG1vZGUgbW92ZSBpdCB0byBhIHNlcGFyYXRlIHdvcmtzcGFjZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmdWxsc2NyZWVud29ya3NwYWNlIiwKICAibmFtZSI6ICJGdWxsc2NyZWVuIE9uIE5ldyBXb3Jrc3BhY2UiLAogICJzY2hlbWEtaWQiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zYXRyYW4vZnVsbHNjcmVlbndvcmtzcGFjZS1zYXRyYW4uaW4iLAogICJ1dWlkIjogImZ1bGxzY3JlZW53b3Jrc3BhY2VAc2F0cmFuLmluIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"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": {"38": {"version": "5", "sha256": "1qqi4rhlfdwys1h0hhrwry86kzh3mv63axrsqhjpmhp9q4qsiib7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgd2luZG93IHRvIGEgbmV3IHdvcmtzcGFjZSB3aGVuIHlvdSBtYXhpbWl6ZSBvciBtYWtlIGl0IGZ1bGxzY3JlZW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBPbiBOZXcgV29ya3NwYWNlIiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW53b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbiIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbndvcmtzcGFjZUBzYXRyYW4uaW4iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1qqi4rhlfdwys1h0hhrwry86kzh3mv63axrsqhjpmhp9q4qsiib7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgd2luZG93IHRvIGEgbmV3IHdvcmtzcGFjZSB3aGVuIHlvdSBtYXhpbWl6ZSBvciBtYWtlIGl0IGZ1bGxzY3JlZW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBPbiBOZXcgV29ya3NwYWNlIiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW53b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbiIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbndvcmtzcGFjZUBzYXRyYW4uaW4iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1qqi4rhlfdwys1h0hhrwry86kzh3mv63axrsqhjpmhp9q4qsiib7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgd2luZG93IHRvIGEgbmV3IHdvcmtzcGFjZSB3aGVuIHlvdSBtYXhpbWl6ZSBvciBtYWtlIGl0IGZ1bGxzY3JlZW4uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZnVsbHNjcmVlbndvcmtzcGFjZSIsCiAgIm5hbWUiOiAiRnVsbHNjcmVlbiBPbiBOZXcgV29ya3NwYWNlIiwKICAic2NoZW1hLWlkIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmZ1bGxzY3JlZW53b3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NhdHJhbi9mdWxsc2NyZWVud29ya3NwYWNlLXNhdHJhbi5pbiIsCiAgInV1aWQiOiAiZnVsbHNjcmVlbndvcmtzcGFjZUBzYXRyYW4uaW4iLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "tray-icons@zhangkaizhao.com", "name": "Tray Icons", "pname": "tray-icons", "description": "Tray icons", "link": "https://extensions.gnome.org/extension/1503/tray-icons/", "shell_version_map": {"38": {"version": "6", "sha256": "0q5kk8yp7cg61d4hcimrxrghsq7v8qaxjbmzvkj5apbg4cmz3s7v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgaWNvbnMiLAogICJuYW1lIjogIlRyYXkgSWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5na2Fpemhhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJheS1pY29ucyIsCiAgInV1aWQiOiAidHJheS1pY29uc0B6aGFuZ2thaXpoYW8uY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0q5kk8yp7cg61d4hcimrxrghsq7v8qaxjbmzvkj5apbg4cmz3s7v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgaWNvbnMiLAogICJuYW1lIjogIlRyYXkgSWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5na2Fpemhhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJheS1pY29ucyIsCiAgInV1aWQiOiAidHJheS1pY29uc0B6aGFuZ2thaXpoYW8uY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
-, {"uuid": "new-mail-indicator@fthx", "name": "New Mail Indicator", "pname": "new-mail-indicator", "description": "An icon beside the date in the topbar to show if there are unread emails when running your default email client.\n\n It checks the notifications in the message tray related to a new mail, no extra configuration needed, very light extension. Click on the icon does toggle your email client window.*** Do not disable the notifications of your default email client! *** It is not a standalone mail checker, you need your email client to be running. *** Please check that the xdg-utils package is installed.\n\n Email clients verified at the moment are: Thunderbird, Evolution, Geary, Mailspring. Please ask to add the client, including special packaging (snap/flatpak), that you need. If you report an error, please provide at least the distribution and the email client you use through the GitHub link.\n\n For persistent notifications only, see: https://extensions.gnome.org/extension/3951/persistent-email-notifications .", "link": "https://extensions.gnome.org/extension/1505/new-mail-indicator/", "shell_version_map": {"38": {"version": "32", "sha256": "1h4dxgpanvxs5y0k0zlghxrqp74igs3dhhmj9fkrzykqgm5qk99w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gYmVzaWRlIHRoZSBkYXRlIGluIHRoZSB0b3BiYXIgdG8gc2hvdyBpZiB0aGVyZSBhcmUgdW5yZWFkIGVtYWlscyB3aGVuIHJ1bm5pbmcgeW91ciBkZWZhdWx0IGVtYWlsIGNsaWVudC5cblxuIEl0IGNoZWNrcyB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbWVzc2FnZSB0cmF5IHJlbGF0ZWQgdG8gYSBuZXcgbWFpbCwgbm8gZXh0cmEgY29uZmlndXJhdGlvbiBuZWVkZWQsIHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBDbGljayBvbiB0aGUgaWNvbiBkb2VzIHRvZ2dsZSB5b3VyIGVtYWlsIGNsaWVudCB3aW5kb3cuKioqIERvIG5vdCBkaXNhYmxlIHRoZSBub3RpZmljYXRpb25zIG9mIHlvdXIgZGVmYXVsdCBlbWFpbCBjbGllbnQhICoqKiBJdCBpcyBub3QgYSBzdGFuZGFsb25lIG1haWwgY2hlY2tlciwgeW91IG5lZWQgeW91ciBlbWFpbCBjbGllbnQgdG8gYmUgcnVubmluZy4gKioqIFBsZWFzZSBjaGVjayB0aGF0IHRoZSB4ZGctdXRpbHMgcGFja2FnZSBpcyBpbnN0YWxsZWQuXG5cbiBFbWFpbCBjbGllbnRzIHZlcmlmaWVkIGF0IHRoZSBtb21lbnQgYXJlOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZy4gUGxlYXNlIGFzayB0byBhZGQgdGhlIGNsaWVudCwgaW5jbHVkaW5nIHNwZWNpYWwgcGFja2FnaW5nIChzbmFwL2ZsYXRwYWspLCB0aGF0IHlvdSBuZWVkLiBJZiB5b3UgcmVwb3J0IGFuIGVycm9yLCBwbGVhc2UgcHJvdmlkZSBhdCBsZWFzdCB0aGUgZGlzdHJpYnV0aW9uIGFuZCB0aGUgZW1haWwgY2xpZW50IHlvdSB1c2UgdGhyb3VnaCB0aGUgR2l0SHViIGxpbmsuXG5cbiBGb3IgcGVyc2lzdGVudCBub3RpZmljYXRpb25zIG9ubHksIHNlZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzk1MS9wZXJzaXN0ZW50LWVtYWlsLW5vdGlmaWNhdGlvbnMgLiIsCiAgIm5hbWUiOiAiTmV3IE1haWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvbmV3LW1haWwtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJuZXctbWFpbC1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiAzMgp9"}, "40": {"version": "32", "sha256": "1h4dxgpanvxs5y0k0zlghxrqp74igs3dhhmj9fkrzykqgm5qk99w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gYmVzaWRlIHRoZSBkYXRlIGluIHRoZSB0b3BiYXIgdG8gc2hvdyBpZiB0aGVyZSBhcmUgdW5yZWFkIGVtYWlscyB3aGVuIHJ1bm5pbmcgeW91ciBkZWZhdWx0IGVtYWlsIGNsaWVudC5cblxuIEl0IGNoZWNrcyB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbWVzc2FnZSB0cmF5IHJlbGF0ZWQgdG8gYSBuZXcgbWFpbCwgbm8gZXh0cmEgY29uZmlndXJhdGlvbiBuZWVkZWQsIHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBDbGljayBvbiB0aGUgaWNvbiBkb2VzIHRvZ2dsZSB5b3VyIGVtYWlsIGNsaWVudCB3aW5kb3cuKioqIERvIG5vdCBkaXNhYmxlIHRoZSBub3RpZmljYXRpb25zIG9mIHlvdXIgZGVmYXVsdCBlbWFpbCBjbGllbnQhICoqKiBJdCBpcyBub3QgYSBzdGFuZGFsb25lIG1haWwgY2hlY2tlciwgeW91IG5lZWQgeW91ciBlbWFpbCBjbGllbnQgdG8gYmUgcnVubmluZy4gKioqIFBsZWFzZSBjaGVjayB0aGF0IHRoZSB4ZGctdXRpbHMgcGFja2FnZSBpcyBpbnN0YWxsZWQuXG5cbiBFbWFpbCBjbGllbnRzIHZlcmlmaWVkIGF0IHRoZSBtb21lbnQgYXJlOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZy4gUGxlYXNlIGFzayB0byBhZGQgdGhlIGNsaWVudCwgaW5jbHVkaW5nIHNwZWNpYWwgcGFja2FnaW5nIChzbmFwL2ZsYXRwYWspLCB0aGF0IHlvdSBuZWVkLiBJZiB5b3UgcmVwb3J0IGFuIGVycm9yLCBwbGVhc2UgcHJvdmlkZSBhdCBsZWFzdCB0aGUgZGlzdHJpYnV0aW9uIGFuZCB0aGUgZW1haWwgY2xpZW50IHlvdSB1c2UgdGhyb3VnaCB0aGUgR2l0SHViIGxpbmsuXG5cbiBGb3IgcGVyc2lzdGVudCBub3RpZmljYXRpb25zIG9ubHksIHNlZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzk1MS9wZXJzaXN0ZW50LWVtYWlsLW5vdGlmaWNhdGlvbnMgLiIsCiAgIm5hbWUiOiAiTmV3IE1haWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvbmV3LW1haWwtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJuZXctbWFpbC1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiAzMgp9"}}}
+, {"uuid": "new-mail-indicator@fthx", "name": "New Mail Indicator", "pname": "new-mail-indicator", "description": "An icon beside the date in the topbar to show if there are unread emails when running your default email client.\n\n It checks the notifications in the message tray related to a new mail, no extra configuration needed, very light extension. Click on the icon does toggle your email client window.*** Do not disable the notifications of your default email client! *** It is not a standalone mail checker, you need your email client to be running. *** Please check that the xdg-utils package is installed.\n\n Email clients verified at the moment are: Thunderbird, Evolution, Geary, Mailspring. Please ask to add the client, including special packaging (snap/flatpak), that you need. If you report an error, please provide at least the distribution and the email client you use through the GitHub link.\n\n For persistent notifications only, see: https://extensions.gnome.org/extension/3951/persistent-email-notifications .", "link": "https://extensions.gnome.org/extension/1505/new-mail-indicator/", "shell_version_map": {"38": {"version": "33", "sha256": "1azppcny8f70ish2p1gzmyf0dy4ycj5x8ccwb1c73m452ac561vm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gYmVzaWRlIHRoZSBkYXRlIGluIHRoZSB0b3BiYXIgdG8gc2hvdyBpZiB0aGVyZSBhcmUgdW5yZWFkIGVtYWlscyB3aGVuIHJ1bm5pbmcgeW91ciBkZWZhdWx0IGVtYWlsIGNsaWVudC5cblxuIEl0IGNoZWNrcyB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbWVzc2FnZSB0cmF5IHJlbGF0ZWQgdG8gYSBuZXcgbWFpbCwgbm8gZXh0cmEgY29uZmlndXJhdGlvbiBuZWVkZWQsIHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBDbGljayBvbiB0aGUgaWNvbiBkb2VzIHRvZ2dsZSB5b3VyIGVtYWlsIGNsaWVudCB3aW5kb3cuKioqIERvIG5vdCBkaXNhYmxlIHRoZSBub3RpZmljYXRpb25zIG9mIHlvdXIgZGVmYXVsdCBlbWFpbCBjbGllbnQhICoqKiBJdCBpcyBub3QgYSBzdGFuZGFsb25lIG1haWwgY2hlY2tlciwgeW91IG5lZWQgeW91ciBlbWFpbCBjbGllbnQgdG8gYmUgcnVubmluZy4gKioqIFBsZWFzZSBjaGVjayB0aGF0IHRoZSB4ZGctdXRpbHMgcGFja2FnZSBpcyBpbnN0YWxsZWQuXG5cbiBFbWFpbCBjbGllbnRzIHZlcmlmaWVkIGF0IHRoZSBtb21lbnQgYXJlOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZy4gUGxlYXNlIGFzayB0byBhZGQgdGhlIGNsaWVudCwgaW5jbHVkaW5nIHNwZWNpYWwgcGFja2FnaW5nIChzbmFwL2ZsYXRwYWspLCB0aGF0IHlvdSBuZWVkLiBJZiB5b3UgcmVwb3J0IGFuIGVycm9yLCBwbGVhc2UgcHJvdmlkZSBhdCBsZWFzdCB0aGUgZGlzdHJpYnV0aW9uIGFuZCB0aGUgZW1haWwgY2xpZW50IHlvdSB1c2UgdGhyb3VnaCB0aGUgR2l0SHViIGxpbmsuXG5cbiBGb3IgcGVyc2lzdGVudCBub3RpZmljYXRpb25zIG9ubHksIHNlZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzk1MS9wZXJzaXN0ZW50LWVtYWlsLW5vdGlmaWNhdGlvbnMgLiIsCiAgIm5hbWUiOiAiTmV3IE1haWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L25ldy1tYWlsLWluZGljYXRvciIsCiAgInV1aWQiOiAibmV3LW1haWwtaW5kaWNhdG9yQGZ0aHgiLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "40": {"version": "33", "sha256": "1azppcny8f70ish2p1gzmyf0dy4ycj5x8ccwb1c73m452ac561vm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gYmVzaWRlIHRoZSBkYXRlIGluIHRoZSB0b3BiYXIgdG8gc2hvdyBpZiB0aGVyZSBhcmUgdW5yZWFkIGVtYWlscyB3aGVuIHJ1bm5pbmcgeW91ciBkZWZhdWx0IGVtYWlsIGNsaWVudC5cblxuIEl0IGNoZWNrcyB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbWVzc2FnZSB0cmF5IHJlbGF0ZWQgdG8gYSBuZXcgbWFpbCwgbm8gZXh0cmEgY29uZmlndXJhdGlvbiBuZWVkZWQsIHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBDbGljayBvbiB0aGUgaWNvbiBkb2VzIHRvZ2dsZSB5b3VyIGVtYWlsIGNsaWVudCB3aW5kb3cuKioqIERvIG5vdCBkaXNhYmxlIHRoZSBub3RpZmljYXRpb25zIG9mIHlvdXIgZGVmYXVsdCBlbWFpbCBjbGllbnQhICoqKiBJdCBpcyBub3QgYSBzdGFuZGFsb25lIG1haWwgY2hlY2tlciwgeW91IG5lZWQgeW91ciBlbWFpbCBjbGllbnQgdG8gYmUgcnVubmluZy4gKioqIFBsZWFzZSBjaGVjayB0aGF0IHRoZSB4ZGctdXRpbHMgcGFja2FnZSBpcyBpbnN0YWxsZWQuXG5cbiBFbWFpbCBjbGllbnRzIHZlcmlmaWVkIGF0IHRoZSBtb21lbnQgYXJlOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZy4gUGxlYXNlIGFzayB0byBhZGQgdGhlIGNsaWVudCwgaW5jbHVkaW5nIHNwZWNpYWwgcGFja2FnaW5nIChzbmFwL2ZsYXRwYWspLCB0aGF0IHlvdSBuZWVkLiBJZiB5b3UgcmVwb3J0IGFuIGVycm9yLCBwbGVhc2UgcHJvdmlkZSBhdCBsZWFzdCB0aGUgZGlzdHJpYnV0aW9uIGFuZCB0aGUgZW1haWwgY2xpZW50IHlvdSB1c2UgdGhyb3VnaCB0aGUgR2l0SHViIGxpbmsuXG5cbiBGb3IgcGVyc2lzdGVudCBub3RpZmljYXRpb25zIG9ubHksIHNlZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzk1MS9wZXJzaXN0ZW50LWVtYWlsLW5vdGlmaWNhdGlvbnMgLiIsCiAgIm5hbWUiOiAiTmV3IE1haWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L25ldy1tYWlsLWluZGljYXRvciIsCiAgInV1aWQiOiAibmV3LW1haWwtaW5kaWNhdG9yQGZ0aHgiLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "41": {"version": "33", "sha256": "1azppcny8f70ish2p1gzmyf0dy4ycj5x8ccwb1c73m452ac561vm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGljb24gYmVzaWRlIHRoZSBkYXRlIGluIHRoZSB0b3BiYXIgdG8gc2hvdyBpZiB0aGVyZSBhcmUgdW5yZWFkIGVtYWlscyB3aGVuIHJ1bm5pbmcgeW91ciBkZWZhdWx0IGVtYWlsIGNsaWVudC5cblxuIEl0IGNoZWNrcyB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbWVzc2FnZSB0cmF5IHJlbGF0ZWQgdG8gYSBuZXcgbWFpbCwgbm8gZXh0cmEgY29uZmlndXJhdGlvbiBuZWVkZWQsIHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBDbGljayBvbiB0aGUgaWNvbiBkb2VzIHRvZ2dsZSB5b3VyIGVtYWlsIGNsaWVudCB3aW5kb3cuKioqIERvIG5vdCBkaXNhYmxlIHRoZSBub3RpZmljYXRpb25zIG9mIHlvdXIgZGVmYXVsdCBlbWFpbCBjbGllbnQhICoqKiBJdCBpcyBub3QgYSBzdGFuZGFsb25lIG1haWwgY2hlY2tlciwgeW91IG5lZWQgeW91ciBlbWFpbCBjbGllbnQgdG8gYmUgcnVubmluZy4gKioqIFBsZWFzZSBjaGVjayB0aGF0IHRoZSB4ZGctdXRpbHMgcGFja2FnZSBpcyBpbnN0YWxsZWQuXG5cbiBFbWFpbCBjbGllbnRzIHZlcmlmaWVkIGF0IHRoZSBtb21lbnQgYXJlOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZy4gUGxlYXNlIGFzayB0byBhZGQgdGhlIGNsaWVudCwgaW5jbHVkaW5nIHNwZWNpYWwgcGFja2FnaW5nIChzbmFwL2ZsYXRwYWspLCB0aGF0IHlvdSBuZWVkLiBJZiB5b3UgcmVwb3J0IGFuIGVycm9yLCBwbGVhc2UgcHJvdmlkZSBhdCBsZWFzdCB0aGUgZGlzdHJpYnV0aW9uIGFuZCB0aGUgZW1haWwgY2xpZW50IHlvdSB1c2UgdGhyb3VnaCB0aGUgR2l0SHViIGxpbmsuXG5cbiBGb3IgcGVyc2lzdGVudCBub3RpZmljYXRpb25zIG9ubHksIHNlZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzk1MS9wZXJzaXN0ZW50LWVtYWlsLW5vdGlmaWNhdGlvbnMgLiIsCiAgIm5hbWUiOiAiTmV3IE1haWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L25ldy1tYWlsLWluZGljYXRvciIsCiAgInV1aWQiOiAibmV3LW1haWwtaW5kaWNhdG9yQGZ0aHgiLAogICJ2ZXJzaW9uIjogMzMKfQ=="}}}
 , {"uuid": "drop-down-terminal-x@bigbn.pro", "name": "Drop Down Terminal X", "pname": "drop-down-terminal-x", "description": "THIS EXTENSION IS NO LONGER SUPPORTED.\n\nIf you are looking for an alternative please look at that https://extensions.gnome.org/extension/3780/ddterm \nawesome extension.\n\nA GNOME Shell drop down terminal with extra feautures.\n \nSpecial thanks to:\n- Osman Alperen Elhan (https://github.com/oae)\n- Balder Claassen (https://github.com/balderclaassen)\n- Adrien Pyke (https://github.com/kufii)\n- Alan J Carvajal (https://github.com/ajcarvajal)\n- Massimo Mund (https://github.com/masmu)\n- Jakub Żywiec (https://github.com/jakubzet)\n- Mattias Eriksson (https://github.com/snaggen)\n- Henry78 (https://github.com/Henry78)\n- Maxim Toropov (https://github.com/MaxMaxoff)\nfor active contribution.\n\nBased on original extension \"gs-extensions-drop-down-terminal\" from Stéphane Démurget (https://github.com/zzrough)", "link": "https://extensions.gnome.org/extension/1509/drop-down-terminal-x/", "shell_version_map": {"38": {"version": "17", "sha256": "1k90g6bndw1xr56k7lwlxyw89aqbl47spkfmj1lq224z83w6hzdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRISVMgRVhURU5TSU9OIElTIE5PIExPTkdFUiBTVVBQT1JURUQuXG5cbklmIHlvdSBhcmUgbG9va2luZyBmb3IgYW4gYWx0ZXJuYXRpdmUgcGxlYXNlIGxvb2sgYXQgdGhhdCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zNzgwL2RkdGVybSBcbmF3ZXNvbWUgZXh0ZW5zaW9uLlxuXG5BIEdOT01FIFNoZWxsIGRyb3AgZG93biB0ZXJtaW5hbCB3aXRoIGV4dHJhIGZlYXV0dXJlcy5cbiBcblNwZWNpYWwgdGhhbmtzIHRvOlxuLSBPc21hbiBBbHBlcmVuIEVsaGFuIChodHRwczovL2dpdGh1Yi5jb20vb2FlKVxuLSBCYWxkZXIgQ2xhYXNzZW4gKGh0dHBzOi8vZ2l0aHViLmNvbS9iYWxkZXJjbGFhc3Nlbilcbi0gQWRyaWVuIFB5a2UgKGh0dHBzOi8vZ2l0aHViLmNvbS9rdWZpaSlcbi0gQWxhbiBKIENhcnZhamFsIChodHRwczovL2dpdGh1Yi5jb20vYWpjYXJ2YWphbClcbi0gTWFzc2ltbyBNdW5kIChodHRwczovL2dpdGh1Yi5jb20vbWFzbXUpXG4tIEpha3ViIFx1MDE3Ynl3aWVjIChodHRwczovL2dpdGh1Yi5jb20vamFrdWJ6ZXQpXG4tIE1hdHRpYXMgRXJpa3Nzb24gKGh0dHBzOi8vZ2l0aHViLmNvbS9zbmFnZ2VuKVxuLSBIZW5yeTc4IChodHRwczovL2dpdGh1Yi5jb20vSGVucnk3OClcbi0gTWF4aW0gVG9yb3BvdiAoaHR0cHM6Ly9naXRodWIuY29tL01heE1heG9mZilcbmZvciBhY3RpdmUgY29udHJpYnV0aW9uLlxuXG5CYXNlZCBvbiBvcmlnaW5hbCBleHRlbnNpb24gXCJncy1leHRlbnNpb25zLWRyb3AtZG93bi10ZXJtaW5hbFwiIGZyb20gU3RcdTAwZTlwaGFuZSBEXHUwMGU5bXVyZ2V0IChodHRwczovL2dpdGh1Yi5jb20venpyb3VnaCkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkcm9wLWRvd24tdGVybWluYWwteCIsCiAgImlkIjogImRyb3AtZG93bi10ZXJtaW5hbC14IiwKICAibmFtZSI6ICJEcm9wIERvd24gVGVybWluYWwgWCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4wIiwKICAgICIzLjI4LjEiLAogICAgIjMuMjguMiIsCiAgICAiMy4zMC4wIiwKICAgICIzLjMwLjEiLAogICAgIjMuMzAuMiIsCiAgICAiMy4zMi4wIiwKICAgICIzLjMyLjEiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zNC4wIiwKICAgICIzLjM0LjQiLAogICAgIjMuMzYuMCIsCiAgICAiMy4zNi4xIiwKICAgICIzLjM2LjIiLAogICAgIjMuMzguMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JpZ2JuL2dzLWV4dGVuc2lvbnMtZHJvcC1kb3duLXRlcm1pbmFsIiwKICAidXVpZCI6ICJkcm9wLWRvd24tdGVybWluYWwteEBiaWdibi5wcm8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
 , {"uuid": "Rounded_Corners@lennart-k", "name": "Rounded Corners", "pname": "rounded-corners", "description": "Creates rounded corners for every monitor", "link": "https://extensions.gnome.org/extension/1514/rounded-corners/", "shell_version_map": {"38": {"version": "5", "sha256": "1lli47bjlrr5g3548jjvvvbbml6g0sg5mm6py9j7kjcgg84sscnc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgcm91bmRlZCBjb3JuZXJzIGZvciBldmVyeSBtb25pdG9yIiwKICAibmFtZSI6ICJSb3VuZGVkIENvcm5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGVubmFydC1rL2dub21lLXJvdW5kZWQtY29ybmVycyIsCiAgInV1aWQiOiAiUm91bmRlZF9Db3JuZXJzQGxlbm5hcnQtayIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "1lli47bjlrr5g3548jjvvvbbml6g0sg5mm6py9j7kjcgg84sscnc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgcm91bmRlZCBjb3JuZXJzIGZvciBldmVyeSBtb25pdG9yIiwKICAibmFtZSI6ICJSb3VuZGVkIENvcm5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGVubmFydC1rL2dub21lLXJvdW5kZWQtY29ybmVycyIsCiAgInV1aWQiOiAiUm91bmRlZF9Db3JuZXJzQGxlbm5hcnQtayIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "scrovol@andyholmes.github.io", "name": "Scrovol", "pname": "scrovol", "description": "Change the volume by scrolling anywhere on the System Tray.\n\nWith this extension, you can scroll over Night Light, WiFi, Volume, Battery or any other icon in the system status tray to change the volume, instead of just the Volume icon.", "link": "https://extensions.gnome.org/extension/1519/scrovol/", "shell_version_map": {"40": {"version": "4", "sha256": "1md52ygz481nvhq00bkq2ymby7f647cfvw4wx1wqkwp7b796d59c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgdm9sdW1lIGJ5IHNjcm9sbGluZyBhbnl3aGVyZSBvbiB0aGUgU3lzdGVtIFRyYXkuXG5cbldpdGggdGhpcyBleHRlbnNpb24sIHlvdSBjYW4gc2Nyb2xsIG92ZXIgTmlnaHQgTGlnaHQsIFdpRmksIFZvbHVtZSwgQmF0dGVyeSBvciBhbnkgb3RoZXIgaWNvbiBpbiB0aGUgc3lzdGVtIHN0YXR1cyB0cmF5IHRvIGNoYW5nZSB0aGUgdm9sdW1lLCBpbnN0ZWFkIG9mIGp1c3QgdGhlIFZvbHVtZSBpY29uLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3Jvdm9sIiwKICAibmFtZSI6ICJTY3Jvdm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYW5keWhvbG1lcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2Nyb3ZvbC8iLAogICJ1dWlkIjogInNjcm92b2xAYW5keWhvbG1lcy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "notification-center@Selenium-H", "name": "Notification Center", "pname": "notification-centerselenium-h", "description": "Detach notification center to top panel and customizations.Please 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 button is also always present in Preferences option in the Top Right Application menu of the extension preferences window.", "link": "https://extensions.gnome.org/extension/1526/notification-centerselenium-h/", "shell_version_map": {"38": {"version": "24", "sha256": "1449kl7fss2fyj1ks8ra3qy60jvn5fcl1iyv813s8vdkkp5dv8a2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiRGV0YWNoIG5vdGlmaWNhdGlvbiBjZW50ZXIgdG8gdG9wIHBhbmVsIGFuZCBjdXN0b21pemF0aW9ucy4iLAogICJkZXNjcmlwdGlvbiI6ICJEZXRhY2ggbm90aWZpY2F0aW9uIGNlbnRlciB0byB0b3AgcGFuZWwgYW5kIGN1c3RvbWl6YXRpb25zLlBsZWFzZSByZXNldCB0aGUgZXh0ZW5zaW9uIGFmdGVyIHVwZGF0aW5nLlxuVGhlIEV4dGVuc2lvbiB3aWxsIHN0b3Agd2hlbiB1cGdyYWRlZCB0byBhbiBpbmNvbXBhdGlibGUgdmVyc2lvbi5cbkluIHRoYXQgY2FzZSBhbiBVcGRhdGUgdGFiIGlzIGNyZWF0ZWQgdG8gZWFzaWx5IHJlc2V0IHRoZSBleHRlbnNpb24uXG5BIFJlc2V0IGJ1dHRvbiBpcyBhbHNvIGFsd2F5cyBwcmVzZW50IGluIFByZWZlcmVuY2VzIG9wdGlvbiBpbiB0aGUgVG9wIFJpZ2h0IEFwcGxpY2F0aW9uIG1lbnUgb2YgdGhlIGV4dGVuc2lvbiBwcmVmZXJlbmNlcyB3aW5kb3cuIiwKICAibmFtZSI6ICJOb3RpZmljYXRpb24gQ2VudGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGlmaWNhdGlvbi1jZW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInN0YXR1cyI6ICIiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvTm90aWZpY2F0aW9uLUNlbnRlciIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLWNlbnRlckBTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDI0Cn0="}, "40": {"version": "24", "sha256": "1449kl7fss2fyj1ks8ra3qy60jvn5fcl1iyv813s8vdkkp5dv8a2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiRGV0YWNoIG5vdGlmaWNhdGlvbiBjZW50ZXIgdG8gdG9wIHBhbmVsIGFuZCBjdXN0b21pemF0aW9ucy4iLAogICJkZXNjcmlwdGlvbiI6ICJEZXRhY2ggbm90aWZpY2F0aW9uIGNlbnRlciB0byB0b3AgcGFuZWwgYW5kIGN1c3RvbWl6YXRpb25zLlBsZWFzZSByZXNldCB0aGUgZXh0ZW5zaW9uIGFmdGVyIHVwZGF0aW5nLlxuVGhlIEV4dGVuc2lvbiB3aWxsIHN0b3Agd2hlbiB1cGdyYWRlZCB0byBhbiBpbmNvbXBhdGlibGUgdmVyc2lvbi5cbkluIHRoYXQgY2FzZSBhbiBVcGRhdGUgdGFiIGlzIGNyZWF0ZWQgdG8gZWFzaWx5IHJlc2V0IHRoZSBleHRlbnNpb24uXG5BIFJlc2V0IGJ1dHRvbiBpcyBhbHNvIGFsd2F5cyBwcmVzZW50IGluIFByZWZlcmVuY2VzIG9wdGlvbiBpbiB0aGUgVG9wIFJpZ2h0IEFwcGxpY2F0aW9uIG1lbnUgb2YgdGhlIGV4dGVuc2lvbiBwcmVmZXJlbmNlcyB3aW5kb3cuIiwKICAibmFtZSI6ICJOb3RpZmljYXRpb24gQ2VudGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGlmaWNhdGlvbi1jZW50ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInN0YXR1cyI6ICIiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvTm90aWZpY2F0aW9uLUNlbnRlciIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLWNlbnRlckBTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDI0Cn0="}}}
 , {"uuid": "lockkeys@fawtytoo", "name": "Lock Keys", "pname": "lock-keys", "description": "Numlock and Capslock status on the panel. Icons are auto hidden. Simplified with no menus, notifications or settings.\n\nWayland is supported for Gnome Shell 3.38 or newer.", "link": "https://extensions.gnome.org/extension/1532/lock-keys/", "shell_version_map": {"38": {"version": "12", "sha256": "0cnd71926fyxcq6gv0j6xiy8w9fw0lvsby4rmzamywg1rbb5i1jd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgYW5kIENhcHNsb2NrIHN0YXR1cyBvbiB0aGUgcGFuZWwuIEljb25zIGFyZSBhdXRvIGhpZGRlbi4gU2ltcGxpZmllZCB3aXRoIG5vIG1lbnVzLCBub3RpZmljYXRpb25zIG9yIHNldHRpbmdzLlxuXG5XYXlsYW5kIGlzIHN1cHBvcnRlZCBmb3IgR25vbWUgU2hlbGwgMy4zOCBvciBuZXdlci4iLAogICJuYW1lIjogIkxvY2sgS2V5cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiU3RldmUgQ2xhcmssIEthemltaWVyYXMgVmFpbmEsIFBpZXJyZSBPc3NtYW4sIGVyZ3VpbGxlLCBqb25uaXVzLCBQaGlsaXBwIFdvbGZlciwgTWFyaXVzeiBMaXNvd3NraSwgQ3Jpc3RpYW4gQmVyb2l6YSwgd2FybXN1bjAyMjAsIFJhc211cyBLYWosIFBhYmxvIE1hcnRpbi1Hb21leiBCb3Vza2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImxvY2trZXlzQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDEyCn0="}, "40": {"version": "12", "sha256": "0cnd71926fyxcq6gv0j6xiy8w9fw0lvsby4rmzamywg1rbb5i1jd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgYW5kIENhcHNsb2NrIHN0YXR1cyBvbiB0aGUgcGFuZWwuIEljb25zIGFyZSBhdXRvIGhpZGRlbi4gU2ltcGxpZmllZCB3aXRoIG5vIG1lbnVzLCBub3RpZmljYXRpb25zIG9yIHNldHRpbmdzLlxuXG5XYXlsYW5kIGlzIHN1cHBvcnRlZCBmb3IgR25vbWUgU2hlbGwgMy4zOCBvciBuZXdlci4iLAogICJuYW1lIjogIkxvY2sgS2V5cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiU3RldmUgQ2xhcmssIEthemltaWVyYXMgVmFpbmEsIFBpZXJyZSBPc3NtYW4sIGVyZ3VpbGxlLCBqb25uaXVzLCBQaGlsaXBwIFdvbGZlciwgTWFyaXVzeiBMaXNvd3NraSwgQ3Jpc3RpYW4gQmVyb2l6YSwgd2FybXN1bjAyMjAsIFJhc211cyBLYWosIFBhYmxvIE1hcnRpbi1Hb21leiBCb3Vza2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImxvY2trZXlzQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
+, {"uuid": "LetItSnow@mateusz.banaszek.op.pl", "name": "Let it snow", "pname": "let-it-snow", "description": "Bring winter to your desktop: unicode snowflakes falling on your screens.\n\nFeatures:\n- snow doesn't fall over currently active window\n- use slider to choose how much snow you want\n- works with multiple monitors\n\nInspired by gsnow (https://extensions.gnome.org/extension/1156/gsnow/).", "link": "https://extensions.gnome.org/extension/1547/let-it-snow/", "shell_version_map": {"38": {"version": "5", "sha256": "07znrbba154277lxx1bvidn4kz5bgkxpgy7rv3sm472qdbsljl35", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIHdpbnRlciB0byB5b3VyIGRlc2t0b3A6IHVuaWNvZGUgc25vd2ZsYWtlcyBmYWxsaW5nIG9uIHlvdXIgc2NyZWVucy5cblxuRmVhdHVyZXM6XG4tIHNub3cgZG9lc24ndCBmYWxsIG92ZXIgY3VycmVudGx5IGFjdGl2ZSB3aW5kb3dcbi0gdXNlIHNsaWRlciB0byBjaG9vc2UgaG93IG11Y2ggc25vdyB5b3Ugd2FudFxuLSB3b3JrcyB3aXRoIG11bHRpcGxlIG1vbml0b3JzXG5cbkluc3BpcmVkIGJ5IGdzbm93IChodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTU2L2dzbm93LykuIiwKICAibmFtZSI6ICJMZXQgaXQgc25vdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9iaXRidWNrZXQub3JnL21hdGJhbi9sZXQtaXQtc25vdyIsCiAgInV1aWQiOiAiTGV0SXRTbm93QG1hdGV1c3ouYmFuYXN6ZWsub3AucGwiLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "fullscreen-hot-corner@sorrow.about.alice.pm.me", "name": "Fullscreen Hot Corner", "pname": "fullscreen-hot-corner", "description": "Enables hot corner in fullscreen mode", "link": "https://extensions.gnome.org/extension/1562/fullscreen-hot-corner/", "shell_version_map": {"38": {"version": "6", "sha256": "1lcpw06aqja4q7qqfvds5nv2zvzrjh56lymj1al4kiql92gbwzp1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgaG90IGNvcm5lciBpbiBmdWxsc2NyZWVuIG1vZGUiLAogICJuYW1lIjogIkZ1bGxzY3JlZW4gSG90IENvcm5lciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NvYWwvZ25vbWUtc2hlbGwtZnVsbHNjcmVlbi1ob3QtY29ybmVyIiwKICAidXVpZCI6ICJmdWxsc2NyZWVuLWhvdC1jb3JuZXJAc29ycm93LmFib3V0LmFsaWNlLnBtLm1lIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "9", "sha256": "0zx11gpacjd259cxd80ggffixpyqprvzcx1971ysvm7jrayrm058", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgaG90IGNvcm5lciBpbiBmdWxsc2NyZWVuIG1vZGUiLAogICJuYW1lIjogIkZ1bGxzY3JlZW4gSG90IENvcm5lciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc29hbC9nbm9tZS1zaGVsbC1mdWxsc2NyZWVuLWhvdC1jb3JuZXIiLAogICJ1dWlkIjogImZ1bGxzY3JlZW4taG90LWNvcm5lckBzb3Jyb3cuYWJvdXQuYWxpY2UucG0ubWUiLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "0zx11gpacjd259cxd80ggffixpyqprvzcx1971ysvm7jrayrm058", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgaG90IGNvcm5lciBpbiBmdWxsc2NyZWVuIG1vZGUiLAogICJuYW1lIjogIkZ1bGxzY3JlZW4gSG90IENvcm5lciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc29hbC9nbm9tZS1zaGVsbC1mdWxsc2NyZWVuLWhvdC1jb3JuZXIiLAogICJ1dWlkIjogImZ1bGxzY3JlZW4taG90LWNvcm5lckBzb3Jyb3cuYWJvdXQuYWxpY2UucG0ubWUiLAogICJ2ZXJzaW9uIjogOQp9"}}}
 , {"uuid": "worksets@blipk.xyz", "name": "Customised Workspaces", "pname": "worksets", "description": "Customised Workspaces enables creating isolated and customised workspaces.\n\n* Customise the dash to be unique for each workspace, each with their own favourites\n* Only show running applications on the dash in their respective workspace\n* Choose a custom background image for each workspace\n* Minor UI tweaks to the overview workspaces\n* Save each customisation, set them to autoload on specific workspaces\n* Hide the extension once you've configured your preferences to enjoy seamlessly upgraded workspaces in gnome shell\n\nCompatible for use with any of these extensions to complete your workspace upgrade:\n\n* Dash to Panel - https://extensions.gnome.org/extension/1160/dash-to-panel/\n* Dash to Dock - https://extensions.gnome.org/extension/307/dash-to-dock/\n* Auto Move Windows - https://extensions.gnome.org/extension/16/auto-move-windows/\n* Vertical Overview - https://github.com/RensAlthuis/vertical-overview", "link": "https://extensions.gnome.org/extension/1583/worksets/", "shell_version_map": {"38": {"version": "30", "sha256": "0mjah9nx66caqmfbz8wrvg6iyhxp7jmbgwx1gnp8k2a2z536n1iw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIEN1c3RvbWlzZSB0aGUgZGFzaCB0byBiZSB1bmlxdWUgZm9yIGVhY2ggd29ya3NwYWNlLCBlYWNoIHdpdGggdGhlaXIgb3duIGZhdm91cml0ZXNcbiogT25seSBzaG93IHJ1bm5pbmcgYXBwbGljYXRpb25zIG9uIHRoZSBkYXNoIGluIHRoZWlyIHJlc3BlY3RpdmUgd29ya3NwYWNlXG4qIENob29zZSBhIGN1c3RvbSBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBNaW5vciBVSSB0d2Vha3MgdG8gdGhlIG92ZXJ2aWV3IHdvcmtzcGFjZXNcbiogU2F2ZSBlYWNoIGN1c3RvbWlzYXRpb24sIHNldCB0aGVtIHRvIGF1dG9sb2FkIG9uIHNwZWNpZmljIHdvcmtzcGFjZXNcbiogSGlkZSB0aGUgZXh0ZW5zaW9uIG9uY2UgeW91J3ZlIGNvbmZpZ3VyZWQgeW91ciBwcmVmZXJlbmNlcyB0byBlbmpveSBzZWFtbGVzc2x5IHVwZ3JhZGVkIHdvcmtzcGFjZXMgaW4gZ25vbWUgc2hlbGxcblxuQ29tcGF0aWJsZSBmb3IgdXNlIHdpdGggYW55IG9mIHRoZXNlIGV4dGVuc2lvbnMgdG8gY29tcGxldGUgeW91ciB3b3Jrc3BhY2UgdXBncmFkZTpcblxuKiBEYXNoIHRvIFBhbmVsIC0gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuKiBEYXNoIHRvIERvY2sgLSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zMDcvZGFzaC10by1kb2NrL1xuKiBBdXRvIE1vdmUgV2luZG93cyAtIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzE2L2F1dG8tbW92ZS13aW5kb3dzL1xuKiBWZXJ0aWNhbCBPdmVydmlldyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9SZW5zQWx0aHVpcy92ZXJ0aWNhbC1vdmVydmlldyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3b3Jrc2V0cyIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzZXRzIiwKICAibmFtZSI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiYWRtaW5Aa3Jvbm9zb3VsLnh5eiIsCiAgInJlc291cmNlLXBhdGgiOiAiL29yZy9rcm9ub3NvdWwvd29ya3NldHMvIiwKICAic2V0dGluZ3MtcGF0aCI6ICIvb3JnL2dub21lL3NoZWxsL2V4dGVuc2lvbnMvd29ya3NldHMvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsaXBrL0N1c3RvbWlzZWQtV29ya3NwYWNlcyIsCiAgInV1aWQiOiAid29ya3NldHNAYmxpcGsueHl6IiwKICAidmVyc2lvbiI6IDMwCn0="}, "40": {"version": "42", "sha256": "01cq0904ki57ymsil1s5d1m0r3rzm082z02c43arw0am6q9fnbar", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIEN1c3RvbWlzZSB0aGUgZGFzaCB0byBiZSB1bmlxdWUgZm9yIGVhY2ggd29ya3NwYWNlLCBlYWNoIHdpdGggdGhlaXIgb3duIGZhdm91cml0ZXNcbiogT25seSBzaG93IHJ1bm5pbmcgYXBwbGljYXRpb25zIG9uIHRoZSBkYXNoIGluIHRoZWlyIHJlc3BlY3RpdmUgd29ya3NwYWNlXG4qIENob29zZSBhIGN1c3RvbSBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBNaW5vciBVSSB0d2Vha3MgdG8gdGhlIG92ZXJ2aWV3IHdvcmtzcGFjZXNcbiogU2F2ZSBlYWNoIGN1c3RvbWlzYXRpb24sIHNldCB0aGVtIHRvIGF1dG9sb2FkIG9uIHNwZWNpZmljIHdvcmtzcGFjZXNcbiogSGlkZSB0aGUgZXh0ZW5zaW9uIG9uY2UgeW91J3ZlIGNvbmZpZ3VyZWQgeW91ciBwcmVmZXJlbmNlcyB0byBlbmpveSBzZWFtbGVzc2x5IHVwZ3JhZGVkIHdvcmtzcGFjZXMgaW4gZ25vbWUgc2hlbGxcblxuQ29tcGF0aWJsZSBmb3IgdXNlIHdpdGggYW55IG9mIHRoZXNlIGV4dGVuc2lvbnMgdG8gY29tcGxldGUgeW91ciB3b3Jrc3BhY2UgdXBncmFkZTpcblxuKiBEYXNoIHRvIFBhbmVsIC0gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuKiBEYXNoIHRvIERvY2sgLSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zMDcvZGFzaC10by1kb2NrL1xuKiBBdXRvIE1vdmUgV2luZG93cyAtIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzE2L2F1dG8tbW92ZS13aW5kb3dzL1xuKiBWZXJ0aWNhbCBPdmVydmlldyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9SZW5zQWx0aHVpcy92ZXJ0aWNhbC1vdmVydmlldyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3b3Jrc2V0cyIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzZXRzIiwKICAibmFtZSI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiYmxpcGsiLAogICJyZXNvdXJjZS1wYXRoIjogIi9vcmcva3Jvbm9zb3VsL3dvcmtzZXRzLyIsCiAgInNldHRpbmdzLXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3dvcmtzZXRzLyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc2V0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNDIKfQ=="}, "41": {"version": "42", "sha256": "01cq0904ki57ymsil1s5d1m0r3rzm082z02c43arw0am6q9fnbar", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwud29ya3NldHMiLAogICJkZXNjcmlwdGlvbiI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMgZW5hYmxlcyBjcmVhdGluZyBpc29sYXRlZCBhbmQgY3VzdG9taXNlZCB3b3Jrc3BhY2VzLlxuXG4qIEN1c3RvbWlzZSB0aGUgZGFzaCB0byBiZSB1bmlxdWUgZm9yIGVhY2ggd29ya3NwYWNlLCBlYWNoIHdpdGggdGhlaXIgb3duIGZhdm91cml0ZXNcbiogT25seSBzaG93IHJ1bm5pbmcgYXBwbGljYXRpb25zIG9uIHRoZSBkYXNoIGluIHRoZWlyIHJlc3BlY3RpdmUgd29ya3NwYWNlXG4qIENob29zZSBhIGN1c3RvbSBiYWNrZ3JvdW5kIGltYWdlIGZvciBlYWNoIHdvcmtzcGFjZVxuKiBNaW5vciBVSSB0d2Vha3MgdG8gdGhlIG92ZXJ2aWV3IHdvcmtzcGFjZXNcbiogU2F2ZSBlYWNoIGN1c3RvbWlzYXRpb24sIHNldCB0aGVtIHRvIGF1dG9sb2FkIG9uIHNwZWNpZmljIHdvcmtzcGFjZXNcbiogSGlkZSB0aGUgZXh0ZW5zaW9uIG9uY2UgeW91J3ZlIGNvbmZpZ3VyZWQgeW91ciBwcmVmZXJlbmNlcyB0byBlbmpveSBzZWFtbGVzc2x5IHVwZ3JhZGVkIHdvcmtzcGFjZXMgaW4gZ25vbWUgc2hlbGxcblxuQ29tcGF0aWJsZSBmb3IgdXNlIHdpdGggYW55IG9mIHRoZXNlIGV4dGVuc2lvbnMgdG8gY29tcGxldGUgeW91ciB3b3Jrc3BhY2UgdXBncmFkZTpcblxuKiBEYXNoIHRvIFBhbmVsIC0gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuKiBEYXNoIHRvIERvY2sgLSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8zMDcvZGFzaC10by1kb2NrL1xuKiBBdXRvIE1vdmUgV2luZG93cyAtIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzE2L2F1dG8tbW92ZS13aW5kb3dzL1xuKiBWZXJ0aWNhbCBPdmVydmlldyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9SZW5zQWx0aHVpcy92ZXJ0aWNhbC1vdmVydmlldyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3b3Jrc2V0cyIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzZXRzIiwKICAibmFtZSI6ICJDdXN0b21pc2VkIFdvcmtzcGFjZXMiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiYmxpcGsiLAogICJyZXNvdXJjZS1wYXRoIjogIi9vcmcva3Jvbm9zb3VsL3dvcmtzZXRzLyIsCiAgInNldHRpbmdzLXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3dvcmtzZXRzLyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc2V0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvQ3VzdG9taXNlZC1Xb3Jrc3BhY2VzIiwKICAidXVpZCI6ICJ3b3Jrc2V0c0BibGlway54eXoiLAogICJ2ZXJzaW9uIjogNDIKfQ=="}}}
 , {"uuid": "NordVPN_Connect@poilrouge.fr", "name": "NordVPN Connect", "pname": "nordvpn-connect", "description": "Unofficial Gnome-Shell Extension to provide a GUI for the official NordVPN CLI Tool.", "link": "https://extensions.gnome.org/extension/1595/nordvpn-connect/", "shell_version_map": {"38": {"version": "15", "sha256": "0xccvy3kqgglhcjhixlxi65sa49lbm896lra2sks65arkx3fh63k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgR25vbWUtU2hlbGwgRXh0ZW5zaW9uIHRvIHByb3ZpZGUgYSBHVUkgZm9yIHRoZSBvZmZpY2lhbCBOb3JkVlBOIENMSSBUb29sLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMtbnZwbmNvbm5lY3QiLAogICJuYW1lIjogIk5vcmRWUE4gQ29ubmVjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udnBuY29ubmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FsZXhQb2lscm91Z2UvTm9yZFZQTi1jb25uZWN0IiwKICAidXVpZCI6ICJOb3JkVlBOX0Nvbm5lY3RAcG9pbHJvdWdlLmZyIiwKICAidmVyc2lvbiI6IDE1Cn0="}, "40": {"version": "18", "sha256": "0isn56fj58aikld1fy8q3afqg2acsz4wbfskzip25xsbc0hpy9qf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgR25vbWUtU2hlbGwgRXh0ZW5zaW9uIHRvIHByb3ZpZGUgYSBHVUkgZm9yIHRoZSBvZmZpY2lhbCBOb3JkVlBOIENMSSBUb29sLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMtbnZwbmNvbm5lY3QiLAogICJuYW1lIjogIk5vcmRWUE4gQ29ubmVjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udnBuY29ubmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxleFBvaWxyb3VnZS9Ob3JkVlBOLWNvbm5lY3QiLAogICJ1dWlkIjogIk5vcmRWUE5fQ29ubmVjdEBwb2lscm91Z2UuZnIiLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "41": {"version": "18", "sha256": "0isn56fj58aikld1fy8q3afqg2acsz4wbfskzip25xsbc0hpy9qf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgR25vbWUtU2hlbGwgRXh0ZW5zaW9uIHRvIHByb3ZpZGUgYSBHVUkgZm9yIHRoZSBvZmZpY2lhbCBOb3JkVlBOIENMSSBUb29sLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMtbnZwbmNvbm5lY3QiLAogICJuYW1lIjogIk5vcmRWUE4gQ29ubmVjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5udnBuY29ubmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxleFBvaWxyb3VnZS9Ob3JkVlBOLWNvbm5lY3QiLAogICJ1dWlkIjogIk5vcmRWUE5fQ29ubmVjdEBwb2lscm91Z2UuZnIiLAogICJ2ZXJzaW9uIjogMTgKfQ=="}}}
@@ -215,9 +217,9 @@
 , {"uuid": "Resource_Monitor@Ory0n", "name": "Resource Monitor", "pname": "resource-monitor", "description": "Monitor the use of system resources like cpu, ram, disk, network and display them in gnome shell top bar.", "link": "https://extensions.gnome.org/extension/1634/resource-monitor/", "shell_version_map": {"38": {"version": "14", "sha256": "0mg6b54cinplc4i3kzn6p397a8flyivcyzg30pnfq7phhgpcnxwj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJHaXVzZXBwZSBTaWx2ZXN0cm8iLAogICJkZXNjcmlwdGlvbiI6ICJNb25pdG9yIHRoZSB1c2Ugb2Ygc3lzdGVtIHJlc291cmNlcyBsaWtlIGNwdSwgcmFtLCBkaXNrLCBuZXR3b3JrIGFuZCBkaXNwbGF5IHRoZW0gaW4gZ25vbWUgc2hlbGwgdG9wIGJhci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjb20tZ2l0aHViLU9yeTBuLVJlc291cmNlX01vbml0b3IiLAogICJuYW1lIjogIlJlc291cmNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5Pcnkwbi5SZXNvdXJjZV9Nb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMHJ5MG4vUmVzb3VyY2VfTW9uaXRvci8iLAogICJ1dWlkIjogIlJlc291cmNlX01vbml0b3JAT3J5MG4iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "15", "sha256": "1q6scg003qyp84q7yd1f49kks0rr5k0wwlsq7m3ccnjk5dakqisa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJHaXVzZXBwZSBTaWx2ZXN0cm8iLAogICJkZXNjcmlwdGlvbiI6ICJNb25pdG9yIHRoZSB1c2Ugb2Ygc3lzdGVtIHJlc291cmNlcyBsaWtlIGNwdSwgcmFtLCBkaXNrLCBuZXR3b3JrIGFuZCBkaXNwbGF5IHRoZW0gaW4gZ25vbWUgc2hlbGwgdG9wIGJhci4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjb20tZ2l0aHViLU9yeTBuLVJlc291cmNlX01vbml0b3IiLAogICJuYW1lIjogIlJlc291cmNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5Pcnkwbi5SZXNvdXJjZV9Nb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vMHJ5MG4vUmVzb3VyY2VfTW9uaXRvci8iLAogICJ1dWlkIjogIlJlc291cmNlX01vbml0b3JAT3J5MG4iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
 , {"uuid": "tweaks-system-menu@extensions.gnome-shell.fifi.org", "name": "Tweaks & Extensions in System Menu", "pname": "tweaks-in-system-menu", "description": "Put Gnome Tweaks and Extensions (on Shell 40 and later) in the System menu.", "link": "https://extensions.gnome.org/extension/1653/tweaks-in-system-menu/", "shell_version_map": {"38": {"version": "15", "sha256": "0i6bj4kd59wg1sm29a1yr9s1is2rkxnabn04hlj66y5n6lv6gxgq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBHbm9tZSBUd2Vha3MgYW5kIEV4dGVuc2lvbnMgKG9uIFNoZWxsIDQwIGFuZCBsYXRlcikgaW4gdGhlIFN5c3RlbSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInR3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgIm5hbWUiOiAiVHdlYWtzICYgRXh0ZW5zaW9ucyBpbiBTeXN0ZW0gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzUuOTIiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi90d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogInR3ZWFrcy1zeXN0ZW0tbWVudUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxNS0wLWdlM2IwNGM3IiwKICAidmVyc2lvbiI6IDE1Cn0="}, "40": {"version": "15", "sha256": "0i6bj4kd59wg1sm29a1yr9s1is2rkxnabn04hlj66y5n6lv6gxgq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBHbm9tZSBUd2Vha3MgYW5kIEV4dGVuc2lvbnMgKG9uIFNoZWxsIDQwIGFuZCBsYXRlcikgaW4gdGhlIFN5c3RlbSBtZW51LiIsCiAgImdldHRleHQtZG9tYWluIjogInR3ZWFrcy1zeXN0ZW0tbWVudSIsCiAgIm5hbWUiOiAiVHdlYWtzICYgRXh0ZW5zaW9ucyBpbiBTeXN0ZW0gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzUuOTIiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9GLWktZi90d2Vha3Mtc3lzdGVtLW1lbnUiLAogICJ1dWlkIjogInR3ZWFrcy1zeXN0ZW0tbWVudUBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInYxNS0wLWdlM2IwNGM3IiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
 , {"uuid": "topiconsfix@aleskva@devnullmail.com", "name": "TopIconsFix", "pname": "topiconsfix", "description": "Shows legacy tray icons on top – the fixed version of https://extensions.gnome.org/extension/495/topicons/", "link": "https://extensions.gnome.org/extension/1674/topiconsfix/", "shell_version_map": {"38": {"version": "12", "sha256": "1zxihxmbc2hx6f8whv8mqzbl55k3wdgw108q97kadf9v67gpcp0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0b3BpY29uc2ZpeEBhbGVza3ZhQGRldm51bGxtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "1zxihxmbc2hx6f8whv8mqzbl55k3wdgw108q97kadf9v67gpcp0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0b3BpY29uc2ZpeEBhbGVza3ZhQGRldm51bGxtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "1zxihxmbc2hx6f8whv8mqzbl55k3wdgw108q97kadf9v67gpcp0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGxlZ2FjeSB0cmF5IGljb25zIG9uIHRvcCBcdTIwMTMgdGhlIGZpeGVkIHZlcnNpb24gb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDk1L3RvcGljb25zLyIsCiAgIm5hbWUiOiAiVG9wSWNvbnNGaXgiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0b3BpY29uc2ZpeEBhbGVza3ZhQGRldm51bGxtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}}}
-, {"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 button is also always present in Preferences option in the 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 a workaround is provided on preferences -> Tweaks tab.\nHowever, some animations might not work properly.\n\nTo manage effect Delay time enable Show delay time in preferences option from Preferences -> Tweaks Tab\nand reopen preferences.", "link": "https://extensions.gnome.org/extension/1680/animation-tweaks/", "shell_version_map": {"38": {"version": "14", "sha256": "1vdid8mnbf8r7r7pw1a569rfib2jyvv6n630cd117cm130vsiivj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQWRkIGFuaW1hdGlvbnMgdG8gZGlmZmVyZW50IGl0ZW1zIGFuZCBjdXN0b21pemUgdGhlbS4iLAogICJkZXNjcmlwdGlvbiI6ICJBZGQgYW5pbWF0aW9ucyB0byBkaWZmZXJlbnQgaXRlbXMgYW5kIGN1c3RvbWl6ZSB0aGVtLlxuXG5QbGVhc2UgcmVzZXQgdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGluZy5cblRoZSBFeHRlbnNpb24gd2lsbCBzdG9wIHdoZW4gdXBncmFkZWQgdG8gYW4gaW5jb21wYXRpYmxlIHZlcnNpb24uXG5JbiB0aGF0IGNhc2UgYW4gVXBkYXRlIHRhYiBpcyBjcmVhdGVkIHRvIGVhc2lseSByZXNldCB0aGUgZXh0ZW5zaW9uLlxuQSBSZXNldCBidXR0b24gaXMgYWxzbyBhbHdheXMgcHJlc2VudCBpbiBQcmVmZXJlbmNlcyBvcHRpb24gaW4gdGhlIEFwcGxpY2F0aW9uIG1lbnUgb2YgdGhlIGV4dGVuc2lvbiBwcmVmZXJlbmNlcyB3aW5kb3cuXG5BIERlZmF1bHQgc2hvcnRjdXQgY29tYmluYXRpb24gb2YgU3VwZXIgS2V5ICsgdCBpcyBwcm92aWRlZCB0byBkaXNhYmxlIHRoZSBleHRlbnNpb24uXG5cblNvbWUgZWZmZWN0cyBtaWdodCBub3Qgd29yayBwcm9wZXJseSBvbiB3YXlsYW5kLCBmb3Igd2hpY2ggYSB3b3JrYXJvdW5kIGlzIHByb3ZpZGVkIG9uIHByZWZlcmVuY2VzIC0+IFR3ZWFrcyB0YWIuXG5Ib3dldmVyLCBzb21lIGFuaW1hdGlvbnMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkuXG5cblRvIG1hbmFnZSBlZmZlY3QgRGVsYXkgdGltZSBlbmFibGUgU2hvdyBkZWxheSB0aW1lIGluIHByZWZlcmVuY2VzIG9wdGlvbiBmcm9tIFByZWZlcmVuY2VzIC0+IFR3ZWFrcyBUYWJcbmFuZCByZW9wZW4gcHJlZmVyZW5jZXMuIiwKICAibmFtZSI6ICJBbmltYXRpb24gVHdlYWtzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FuaW1hdGlvbi1Ud2Vha3MiLAogICJ1dWlkIjogImFuaW1hdGlvbi10d2Vha3NAU2VsZW5pdW0tSCIsCiAgInZlcnNpb24iOiAxNAp9"}, "40": {"version": "14", "sha256": "1vdid8mnbf8r7r7pw1a569rfib2jyvv6n630cd117cm130vsiivj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQWRkIGFuaW1hdGlvbnMgdG8gZGlmZmVyZW50IGl0ZW1zIGFuZCBjdXN0b21pemUgdGhlbS4iLAogICJkZXNjcmlwdGlvbiI6ICJBZGQgYW5pbWF0aW9ucyB0byBkaWZmZXJlbnQgaXRlbXMgYW5kIGN1c3RvbWl6ZSB0aGVtLlxuXG5QbGVhc2UgcmVzZXQgdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGluZy5cblRoZSBFeHRlbnNpb24gd2lsbCBzdG9wIHdoZW4gdXBncmFkZWQgdG8gYW4gaW5jb21wYXRpYmxlIHZlcnNpb24uXG5JbiB0aGF0IGNhc2UgYW4gVXBkYXRlIHRhYiBpcyBjcmVhdGVkIHRvIGVhc2lseSByZXNldCB0aGUgZXh0ZW5zaW9uLlxuQSBSZXNldCBidXR0b24gaXMgYWxzbyBhbHdheXMgcHJlc2VudCBpbiBQcmVmZXJlbmNlcyBvcHRpb24gaW4gdGhlIEFwcGxpY2F0aW9uIG1lbnUgb2YgdGhlIGV4dGVuc2lvbiBwcmVmZXJlbmNlcyB3aW5kb3cuXG5BIERlZmF1bHQgc2hvcnRjdXQgY29tYmluYXRpb24gb2YgU3VwZXIgS2V5ICsgdCBpcyBwcm92aWRlZCB0byBkaXNhYmxlIHRoZSBleHRlbnNpb24uXG5cblNvbWUgZWZmZWN0cyBtaWdodCBub3Qgd29yayBwcm9wZXJseSBvbiB3YXlsYW5kLCBmb3Igd2hpY2ggYSB3b3JrYXJvdW5kIGlzIHByb3ZpZGVkIG9uIHByZWZlcmVuY2VzIC0+IFR3ZWFrcyB0YWIuXG5Ib3dldmVyLCBzb21lIGFuaW1hdGlvbnMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkuXG5cblRvIG1hbmFnZSBlZmZlY3QgRGVsYXkgdGltZSBlbmFibGUgU2hvdyBkZWxheSB0aW1lIGluIHByZWZlcmVuY2VzIG9wdGlvbiBmcm9tIFByZWZlcmVuY2VzIC0+IFR3ZWFrcyBUYWJcbmFuZCByZW9wZW4gcHJlZmVyZW5jZXMuIiwKICAibmFtZSI6ICJBbmltYXRpb24gVHdlYWtzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FuaW1hdGlvbi1Ud2Vha3MiLAogICJ1dWlkIjogImFuaW1hdGlvbi10d2Vha3NAU2VsZW5pdW0tSCIsCiAgInZlcnNpb24iOiAxNAp9"}}}
+, {"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="}, "40": {"version": "18", "sha256": "07niv7biy9yxmxdg498kqypyqva6y8slm3gmn70dpx9f9ng8ya55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQWRkIGFuaW1hdGlvbnMgdG8gZGlmZmVyZW50IGl0ZW1zIGFuZCBjdXN0b21pemUgdGhlbS4iLAogICJkZXNjcmlwdGlvbiI6ICJBZGQgYW5pbWF0aW9ucyB0byBkaWZmZXJlbnQgaXRlbXMgYW5kIGN1c3RvbWl6ZSB0aGVtLlxuXG5QbGVhc2UgcmVzZXQgdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGluZy5cblRoZSBFeHRlbnNpb24gd2lsbCBzdG9wIHdoZW4gdXBncmFkZWQgdG8gYW4gaW5jb21wYXRpYmxlIHZlcnNpb24uXG5JbiB0aGF0IGNhc2UgYW4gVXBkYXRlIHRhYiBpcyBjcmVhdGVkIHRvIGVhc2lseSByZXNldCB0aGUgZXh0ZW5zaW9uLlxuQSBSZXNldCBtZW51IGVudHJ5IGlzIGFsc28gYWx3YXlzIHByZXNlbnQgaW4gaW4gdGhlIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IG9mIHRoZSBleHRlbnNpb24gcHJlZmVyZW5jZXMgd2luZG93LlxuQSBEZWZhdWx0IHNob3J0Y3V0IGNvbWJpbmF0aW9uIG9mIFN1cGVyIEtleSArIHQgaXMgcHJvdmlkZWQgdG8gZGlzYWJsZSB0aGUgZXh0ZW5zaW9uLlxuXG5Tb21lIGVmZmVjdHMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkgb24gd2F5bGFuZCwgZm9yIHdoaWNoIGFuIG9wdGlvbiB0byBpbnRlZ3JhdGUgd2l0aCB3YXlsYW5kIGlzIHByb3ZpZGVkIG9uIEludGVncmF0aW9ucyB0YWIuXG5Ib3dldmVyLCBzb21lIGFuaW1hdGlvbnMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkuXG5cblRvIG1hbmFnZSBlZmZlY3QgRGVsYXkgdGltZSBlbmFibGUgU2hvdyBkZWxheSB0aW1lIGluIHByZWZlcmVuY2VzIFdpbmRvdyBmcm9tIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IC0+IFByZWZlcmVuY2VzXG5hbmQgcmVvcGVuIHByZWZlcmVuY2VzLiIsCiAgIm5hbWUiOiAiQW5pbWF0aW9uIFR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInN0YXR1cyI6ICIiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvQW5pbWF0aW9uLVR3ZWFrcyIsCiAgInV1aWQiOiAiYW5pbWF0aW9uLXR3ZWFrc0BTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "41": {"version": "18", "sha256": "07niv7biy9yxmxdg498kqypyqva6y8slm3gmn70dpx9f9ng8ya55", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQWRkIGFuaW1hdGlvbnMgdG8gZGlmZmVyZW50IGl0ZW1zIGFuZCBjdXN0b21pemUgdGhlbS4iLAogICJkZXNjcmlwdGlvbiI6ICJBZGQgYW5pbWF0aW9ucyB0byBkaWZmZXJlbnQgaXRlbXMgYW5kIGN1c3RvbWl6ZSB0aGVtLlxuXG5QbGVhc2UgcmVzZXQgdGhlIGV4dGVuc2lvbiBhZnRlciB1cGRhdGluZy5cblRoZSBFeHRlbnNpb24gd2lsbCBzdG9wIHdoZW4gdXBncmFkZWQgdG8gYW4gaW5jb21wYXRpYmxlIHZlcnNpb24uXG5JbiB0aGF0IGNhc2UgYW4gVXBkYXRlIHRhYiBpcyBjcmVhdGVkIHRvIGVhc2lseSByZXNldCB0aGUgZXh0ZW5zaW9uLlxuQSBSZXNldCBtZW51IGVudHJ5IGlzIGFsc28gYWx3YXlzIHByZXNlbnQgaW4gaW4gdGhlIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IG9mIHRoZSBleHRlbnNpb24gcHJlZmVyZW5jZXMgd2luZG93LlxuQSBEZWZhdWx0IHNob3J0Y3V0IGNvbWJpbmF0aW9uIG9mIFN1cGVyIEtleSArIHQgaXMgcHJvdmlkZWQgdG8gZGlzYWJsZSB0aGUgZXh0ZW5zaW9uLlxuXG5Tb21lIGVmZmVjdHMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkgb24gd2F5bGFuZCwgZm9yIHdoaWNoIGFuIG9wdGlvbiB0byBpbnRlZ3JhdGUgd2l0aCB3YXlsYW5kIGlzIHByb3ZpZGVkIG9uIEludGVncmF0aW9ucyB0YWIuXG5Ib3dldmVyLCBzb21lIGFuaW1hdGlvbnMgbWlnaHQgbm90IHdvcmsgcHJvcGVybHkuXG5cblRvIG1hbmFnZSBlZmZlY3QgRGVsYXkgdGltZSBlbmFibGUgU2hvdyBkZWxheSB0aW1lIGluIHByZWZlcmVuY2VzIFdpbmRvdyBmcm9tIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBtZW51IC0+IFByZWZlcmVuY2VzXG5hbmQgcmVvcGVuIHByZWZlcmVuY2VzLiIsCiAgIm5hbWUiOiAiQW5pbWF0aW9uIFR3ZWFrcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInN0YXR1cyI6ICIiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NlbGVuaXVtLUgvQW5pbWF0aW9uLVR3ZWFrcyIsCiAgInV1aWQiOiAiYW5pbWF0aW9uLXR3ZWFrc0BTZWxlbml1bS1IIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
 , {"uuid": "drawOnYourScreen@abakkk.framagit.org", "name": "Draw On You Screen", "pname": "draw-on-you-screen", "description": "", "link": "https://extensions.gnome.org/extension/1683/draw-on-you-screen/", "shell_version_map": {"38": {"version": "11", "sha256": "0kbgngcb2n234snnavbm8giwi6zhvr48bs0qy4f511d52l2wyawy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhdGEtZGlyIjogImRyYXdPbllvdXJTY3JlZW4iLAogICJkZXNjcmlwdGlvbiI6ICIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkcmF3LW9uLXlvdXItc2NyZWVuIiwKICAibmFtZSI6ICJEcmF3IE9uIFlvdSBTY3JlZW4iLAogICJwZXJzaXN0ZW50LWZpbGUtbmFtZSI6ICJwZXJzaXN0ZW50IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRyYXctb24teW91ci1zY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAic3ZnLWZpbGUtbmFtZSI6ICJEcmF3T25Zb3VyU2NyZWVuIiwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZHJhd09uWW91clNjcmVlbkBhYmFra2suZnJhbWFnaXQub3JnIiwKICAidmVyc2lvbiI6IDExCn0="}}}
-, {"uuid": "Always-Show-Titles-In-Overview@gmail.com", "name": "Always Show Titles In Overview", "pname": "always-show-titles-in-overview", "description": "Show titles of all thumbnails in the Gnome 3 overview.", "link": "https://extensions.gnome.org/extension/1689/always-show-titles-in-overview/", "shell_version_map": {"38": {"version": "10", "sha256": "134xr99qsrz0z56nrgp5frjmzk3jk38sh6hix394a7mm8y5wx304", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGl0bGVzIG9mIGFsbCB0aHVtYm5haWxzIGluIHRoZSBHbm9tZSAzIG92ZXJ2aWV3LiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgVGl0bGVzIEluIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmxwc3VnZS9BbHdheXMtU2hvdy1UaXRsZXMtSW4tT3ZlcnZpZXciLAogICJ1dWlkIjogIkFsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlld0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "12", "sha256": "1smcfpxksjm0m8isy1k7dpx195s5szl4yb4c80whaq5h0mycjd93", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGl0bGVzIG9mIGFsbCB0aHVtYm5haWxzIGluIHRoZSBHbm9tZSAzIG92ZXJ2aWV3LiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgVGl0bGVzIEluIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ubHBzdWdlL0Fsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlldyIsCiAgInV1aWQiOiAiQWx3YXlzLVNob3ctVGl0bGVzLUluLU92ZXJ2aWV3QGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "1smcfpxksjm0m8isy1k7dpx195s5szl4yb4c80whaq5h0mycjd93", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGl0bGVzIG9mIGFsbCB0aHVtYm5haWxzIGluIHRoZSBHbm9tZSAzIG92ZXJ2aWV3LiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgVGl0bGVzIEluIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ubHBzdWdlL0Fsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlldyIsCiAgInV1aWQiOiAiQWx3YXlzLVNob3ctVGl0bGVzLUluLU92ZXJ2aWV3QGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}}}
+, {"uuid": "Always-Show-Titles-In-Overview@gmail.com", "name": "Always Show Titles In Overview", "pname": "always-show-titles-in-overview", "description": "Customize Gnome 3 overview.\n\n- Always show titles of all window thumbnails\n- Show/hide app icons\n- App icon position: Bottom, Center\n- Show/hide the app icon when a window is in fullscreen mode\n- Tweak the window thumbnail active size increment (from 5 to 60, the default is 15)\n- Show/hide the background \n\n", "link": "https://extensions.gnome.org/extension/1689/always-show-titles-in-overview/", "shell_version_map": {"38": {"version": "10", "sha256": "1s4937br3ad78l2634ll2wnhd8l9zcy69q6bp8s2c1j8hm76z64q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gU2hvdy9oaWRlIGFwcCBpY29uc1xuLSBBcHAgaWNvbiBwb3NpdGlvbjogQm90dG9tLCBDZW50ZXJcbi0gU2hvdy9oaWRlIHRoZSBhcHAgaWNvbiB3aGVuIGEgd2luZG93IGlzIGluIGZ1bGxzY3JlZW4gbW9kZVxuLSBUd2VhayB0aGUgd2luZG93IHRodW1ibmFpbCBhY3RpdmUgc2l6ZSBpbmNyZW1lbnQgKGZyb20gNSB0byA2MCwgdGhlIGRlZmF1bHQgaXMgMTUpXG4tIFNob3cvaGlkZSB0aGUgYmFja2dyb3VuZCBcblxuIiwKICAibmFtZSI6ICJBbHdheXMgU2hvdyBUaXRsZXMgSW4gT3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ubHBzdWdlL0Fsd2F5cy1TaG93LVRpdGxlcy1Jbi1PdmVydmlldyIsCiAgInV1aWQiOiAiQWx3YXlzLVNob3ctVGl0bGVzLUluLU92ZXJ2aWV3QGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}, "40": {"version": "18", "sha256": "17y6i5lk7q4l1i9522fs4wblfh83kmsaj2bd2wkqxc8p4fzrkf1w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gU2hvdy9oaWRlIGFwcCBpY29uc1xuLSBBcHAgaWNvbiBwb3NpdGlvbjogQm90dG9tLCBDZW50ZXJcbi0gU2hvdy9oaWRlIHRoZSBhcHAgaWNvbiB3aGVuIGEgd2luZG93IGlzIGluIGZ1bGxzY3JlZW4gbW9kZVxuLSBUd2VhayB0aGUgd2luZG93IHRodW1ibmFpbCBhY3RpdmUgc2l6ZSBpbmNyZW1lbnQgKGZyb20gNSB0byA2MCwgdGhlIGRlZmF1bHQgaXMgMTUpXG4tIFNob3cvaGlkZSB0aGUgYmFja2dyb3VuZCBcblxuIiwKICAibmFtZSI6ICJBbHdheXMgU2hvdyBUaXRsZXMgSW4gT3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25scHN1Z2UvQWx3YXlzLVNob3ctVGl0bGVzLUluLU92ZXJ2aWV3IiwKICAidXVpZCI6ICJBbHdheXMtU2hvdy1UaXRsZXMtSW4tT3ZlcnZpZXdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "41": {"version": "18", "sha256": "17y6i5lk7q4l1i9522fs4wblfh83kmsaj2bd2wkqxc8p4fzrkf1w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBHbm9tZSAzIG92ZXJ2aWV3LlxuXG4tIEFsd2F5cyBzaG93IHRpdGxlcyBvZiBhbGwgd2luZG93IHRodW1ibmFpbHNcbi0gU2hvdy9oaWRlIGFwcCBpY29uc1xuLSBBcHAgaWNvbiBwb3NpdGlvbjogQm90dG9tLCBDZW50ZXJcbi0gU2hvdy9oaWRlIHRoZSBhcHAgaWNvbiB3aGVuIGEgd2luZG93IGlzIGluIGZ1bGxzY3JlZW4gbW9kZVxuLSBUd2VhayB0aGUgd2luZG93IHRodW1ibmFpbCBhY3RpdmUgc2l6ZSBpbmNyZW1lbnQgKGZyb20gNSB0byA2MCwgdGhlIGRlZmF1bHQgaXMgMTUpXG4tIFNob3cvaGlkZSB0aGUgYmFja2dyb3VuZCBcblxuIiwKICAibmFtZSI6ICJBbHdheXMgU2hvdyBUaXRsZXMgSW4gT3ZlcnZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25scHN1Z2UvQWx3YXlzLVNob3ctVGl0bGVzLUluLU92ZXJ2aWV3IiwKICAidXVpZCI6ICJBbHdheXMtU2hvdy1UaXRsZXMtSW4tT3ZlcnZpZXdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
 , {"uuid": "overview-navigation@nathanielsimard.github.com", "name": "Overview Navigation", "pname": "overview-navigation", "description": "This extension aims to make Gnome Shell easier to navigate using only the keyboard. It is inspired by the vim plugins of Firefox and Chrome.", "link": "https://extensions.gnome.org/extension/1702/overview-navigation/", "shell_version_map": {"38": {"version": "14", "sha256": "10i2j0klcyi22qakmw1f338ldc87w54a0jlg1bwq84ifflmnm8nq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uYXRoYW5pZWxzaW1hcmQvb3ZlcnZpZXctbmF2aWdhdGlvbiIsCiAgInV1aWQiOiAib3ZlcnZpZXctbmF2aWdhdGlvbkBuYXRoYW5pZWxzaW1hcmQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}, "40": {"version": "15", "sha256": "03ah1cx6kjw7698b9wwhz7ag8pag15g8zkxzfrsrcmving9syynd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmF0aGFuaWVsc2ltYXJkL292ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJ1dWlkIjogIm92ZXJ2aWV3LW5hdmlnYXRpb25AbmF0aGFuaWVsc2ltYXJkLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "16", "sha256": "1qdqbsrmxnvx01hlaq17nps124xah1rkqvr0rpxms7f3klkgkw0d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFpbXMgdG8gbWFrZSBHbm9tZSBTaGVsbCBlYXNpZXIgdG8gbmF2aWdhdGUgdXNpbmcgb25seSB0aGUga2V5Ym9hcmQuIEl0IGlzIGluc3BpcmVkIGJ5IHRoZSB2aW0gcGx1Z2lucyBvZiBGaXJlZm94IGFuZCBDaHJvbWUuIiwKICAibmFtZSI6ICJPdmVydmlldyBOYXZpZ2F0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm92ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmF0aGFuaWVsc2ltYXJkL292ZXJ2aWV3LW5hdmlnYXRpb24iLAogICJ1dWlkIjogIm92ZXJ2aWV3LW5hdmlnYXRpb25AbmF0aGFuaWVsc2ltYXJkLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}}}
 , {"uuid": "transparent-top-bar@zhanghai.me", "name": "Transparent Top Bar", "pname": "transparent-top-bar", "description": "Bring back the transparent top bar when free-floating in GNOME Shell 3.32.\n\nThis basically comes from the feature implementation removed in GNOME Shell 3.32, and I modified the code a bit to make it an extension. Enjoy!", "link": "https://extensions.gnome.org/extension/1708/transparent-top-bar/", "shell_version_map": {"38": {"version": "9", "sha256": "0i34ns1rm2iis9mvbyjvckb0l1b0zzzczzan7591y8lqfjplsmzr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3poYW5naGFpL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC10b3AtYmFyQHpoYW5naGFpLm1lIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "13", "sha256": "1ppsii29lv4jaqdrjrav3j19ynv7kwl7mf7pn27lsgiga25n4wyh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtdG9wLWJhckB6aGFuZ2hhaS5tZSIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "1ppsii29lv4jaqdrjrav3j19ynv7kwl7mf7pn27lsgiga25n4wyh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIGJhY2sgdGhlIHRyYW5zcGFyZW50IHRvcCBiYXIgd2hlbiBmcmVlLWZsb2F0aW5nIGluIEdOT01FIFNoZWxsIDMuMzIuXG5cblRoaXMgYmFzaWNhbGx5IGNvbWVzIGZyb20gdGhlIGZlYXR1cmUgaW1wbGVtZW50YXRpb24gcmVtb3ZlZCBpbiBHTk9NRSBTaGVsbCAzLjMyLCBhbmQgSSBtb2RpZmllZCB0aGUgY29kZSBhIGJpdCB0byBtYWtlIGl0IGFuIGV4dGVuc2lvbi4gRW5qb3khIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtdG9wLWJhckB6aGFuZ2hhaS5tZSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
 , {"uuid": "ssh-search-provider@extensions.gnome-shell.fifi.org", "name": "SSH Search Provider Reborn", "pname": "ssh-search-provider-reborn", "description": "Provide SSH search results in overview.\n\nThis is a fork of the original \"SSH Search Provider\", updated to work with newer Gnome-Shells.", "link": "https://extensions.gnome.org/extension/1714/ssh-search-provider-reborn/", "shell_version_map": {"38": {"version": "8", "sha256": "1i55s7mdrsgfb5lmxyvpfnbn4d822miqwb1n8s8hq7nsh4v9xrha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvc3NoLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAic3NoLXNlYXJjaC1wcm92aWRlckBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInY4LTAtZzM0YjYyYTEiLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "1i55s7mdrsgfb5lmxyvpfnbn4d822miqwb1n8s8hq7nsh4v9xrha", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgU1NIIHNlYXJjaCByZXN1bHRzIGluIG92ZXJ2aWV3LlxuXG5UaGlzIGlzIGEgZm9yayBvZiB0aGUgb3JpZ2luYWwgXCJTU0ggU2VhcmNoIFByb3ZpZGVyXCIsIHVwZGF0ZWQgdG8gd29yayB3aXRoIG5ld2VyIEdub21lLVNoZWxscy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAibmFtZSI6ICJTU0ggU2VhcmNoIFByb3ZpZGVyIFJlYm9ybiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zc2gtc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjMzLjkwIiwKICAgICIzLjM2IiwKICAgICIzLjM1LjkyIiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRi1pLWYvc3NoLXNlYXJjaC1wcm92aWRlciIsCiAgInV1aWQiOiAic3NoLXNlYXJjaC1wcm92aWRlckBleHRlbnNpb25zLmdub21lLXNoZWxsLmZpZmkub3JnIiwKICAidmNzX3JldmlzaW9uIjogInY4LTAtZzM0YjYyYTEiLAogICJ2ZXJzaW9uIjogOAp9"}}}
@@ -231,22 +233,22 @@
 , {"uuid": "colortint@matt.serverus.co.uk", "name": "ColorTint", "pname": "colortint", "description": "Tint your desktop with a color of your choice to help with dyslexia, visual stress, scopic sensitivity, and related conditions.", "link": "https://extensions.gnome.org/extension/1789/colortint/", "shell_version_map": {"40": {"version": "7", "sha256": "1ggf4xlnyfxhl3fsl8ljdj0izipx2v8kxpnhhqz7w397a0r9q121", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbnQgeW91ciBkZXNrdG9wIHdpdGggYSBjb2xvciBvZiB5b3VyIGNob2ljZSB0byBoZWxwIHdpdGggZHlzbGV4aWEsIHZpc3VhbCBzdHJlc3MsIHNjb3BpYyBzZW5zaXRpdml0eSwgYW5kIHJlbGF0ZWQgY29uZGl0aW9ucy4iLAogICJuYW1lIjogIkNvbG9yVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYXR0QnlOYW1lL2NvbG9yLXRpbnQiLAogICJ1dWlkIjogImNvbG9ydGludEBtYXR0LnNlcnZlcnVzLmNvLnVrIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
 , {"uuid": "sermon@rovellipaolo-gmail.com", "name": "SerMon: Service Monitor", "pname": "sermon", "description": "SerMon: an extension for monitoring and managing systemd services, cron jobs, docker and podman containers", "link": "https://extensions.gnome.org/extension/1804/sermon/", "shell_version_map": {"38": {"version": "16", "sha256": "1dgyphy5wka0b6jaqkdgb2kyy70f9ccgdmrcna9p04i2kcy4hm9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "40": {"version": "16", "sha256": "1dgyphy5wka0b6jaqkdgb2kyy70f9ccgdmrcna9p04i2kcy4hm9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "41": {"version": "16", "sha256": "1dgyphy5wka0b6jaqkdgb2kyy70f9ccgdmrcna9p04i2kcy4hm9i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlck1vbjogYW4gZXh0ZW5zaW9uIGZvciBtb25pdG9yaW5nIGFuZCBtYW5hZ2luZyBzeXN0ZW1kIHNlcnZpY2VzLCBjcm9uIGpvYnMsIGRvY2tlciBhbmQgcG9kbWFuIGNvbnRhaW5lcnMiLAogICJuYW1lIjogIlNlck1vbjogU2VydmljZSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNlcm1vbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcm92ZWxsaXBhb2xvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZXJtb24iLAogICJ1dWlkIjogInNlcm1vbkByb3ZlbGxpcGFvbG8tZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
 , {"uuid": "dict@sun.wxg@gmail.com", "name": "Screen word translate", "pname": "screen-word-translate", "description": "Translate word on the screen.\nDefault web address is translate.google.com, you can add the web address for your own language. Also you can contribute your web address to my github repo.\nUse hotkey Ctrl+Alt+j to toggle the function.\nUse hotkey Ctrl+Alt+o to show popup window", "link": "https://extensions.gnome.org/extension/1849/screen-word-translate/", "shell_version_map": {"38": {"version": "32", "sha256": "0wh9d0siggr49bfcx1308xx8rxc58nadnhp3mjj53i6fvja3cx62", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRpY3QiLAogICJ1dWlkIjogImRpY3RAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "40": {"version": "38", "sha256": "19rpi2hqznwzngzw9zsar00mhmqav8v7wbij4r7cai4jgvmk8459", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGljdCIsCiAgInV1aWQiOiAiZGljdEBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzOAp9"}, "41": {"version": "38", "sha256": "19rpi2hqznwzngzw9zsar00mhmqav8v7wbij4r7cai4jgvmk8459", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3b3JkIG9uIHRoZSBzY3JlZW4uXG5EZWZhdWx0IHdlYiBhZGRyZXNzIGlzIHRyYW5zbGF0ZS5nb29nbGUuY29tLCB5b3UgY2FuIGFkZCB0aGUgd2ViIGFkZHJlc3MgZm9yIHlvdXIgb3duIGxhbmd1YWdlLiBBbHNvIHlvdSBjYW4gY29udHJpYnV0ZSB5b3VyIHdlYiBhZGRyZXNzIHRvIG15IGdpdGh1YiByZXBvLlxuVXNlIGhvdGtleSBDdHJsK0FsdCtqIHRvIHRvZ2dsZSB0aGUgZnVuY3Rpb24uXG5Vc2UgaG90a2V5IEN0cmwrQWx0K28gdG8gc2hvdyBwb3B1cCB3aW5kb3ciLAogICJuYW1lIjogIlNjcmVlbiB3b3JkIHRyYW5zbGF0ZSIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAic3VuLnd4Z0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGljdCIsCiAgInV1aWQiOiAiZGljdEBzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzOAp9"}}}
-, {"uuid": "gamemode@christian.kellner.me", "name": "GameMode", "pname": "gamemode", "description": "Status indicator for GameMode", "link": "https://extensions.gnome.org/extension/1852/gamemode/", "shell_version_map": {"38": {"version": "5", "sha256": "1nj4k7h872zmx4q44z9qzg8rxx1sqqbj8rd4am5xkn1zc8y65kg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBpbmRpY2F0b3IgZm9yIEdhbWVNb2RlIiwKICAiZXh0ZW5zaW9uLWlkIjogImdhbWVtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ2FtZW1vZGUtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJHYW1lTW9kZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJja2VsbG5lckByZWRoYXQuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdhbWVtb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dpY21vL2dhbWVtb2RlLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZ2FtZW1vZGVAY2hyaXN0aWFuLmtlbGxuZXIubWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1nj4k7h872zmx4q44z9qzg8rxx1sqqbj8rd4am5xkn1zc8y65kg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBpbmRpY2F0b3IgZm9yIEdhbWVNb2RlIiwKICAiZXh0ZW5zaW9uLWlkIjogImdhbWVtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ2FtZW1vZGUtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJHYW1lTW9kZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJja2VsbG5lckByZWRoYXQuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdhbWVtb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dpY21vL2dhbWVtb2RlLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZ2FtZW1vZGVAY2hyaXN0aWFuLmtlbGxuZXIubWUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "gamemode@christian.kellner.me", "name": "GameMode", "pname": "gamemode", "description": "Status indicator for GameMode", "link": "https://extensions.gnome.org/extension/1852/gamemode/", "shell_version_map": {"38": {"version": "6", "sha256": "05256a7rcw1db983w557cpl5vilkb0wg82xpja91j2lqnp7als5l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBpbmRpY2F0b3IgZm9yIEdhbWVNb2RlIiwKICAiZXh0ZW5zaW9uLWlkIjogImdhbWVtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ2FtZW1vZGUtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJHYW1lTW9kZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJja2VsbG5lckByZWRoYXQuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdhbWVtb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9naWNtby9nYW1lbW9kZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdhbWVtb2RlQGNocmlzdGlhbi5rZWxsbmVyLm1lIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "05256a7rcw1db983w557cpl5vilkb0wg82xpja91j2lqnp7als5l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBpbmRpY2F0b3IgZm9yIEdhbWVNb2RlIiwKICAiZXh0ZW5zaW9uLWlkIjogImdhbWVtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ2FtZW1vZGUtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJHYW1lTW9kZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJja2VsbG5lckByZWRoYXQuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdhbWVtb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9naWNtby9nYW1lbW9kZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdhbWVtb2RlQGNocmlzdGlhbi5rZWxsbmVyLm1lIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "05256a7rcw1db983w557cpl5vilkb0wg82xpja91j2lqnp7als5l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBpbmRpY2F0b3IgZm9yIEdhbWVNb2RlIiwKICAiZXh0ZW5zaW9uLWlkIjogImdhbWVtb2RlIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ2FtZW1vZGUtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJHYW1lTW9kZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJja2VsbG5lckByZWRoYXQuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmdhbWVtb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9naWNtby9nYW1lbW9kZS1leHRlbnNpb24iLAogICJ1dWlkIjogImdhbWVtb2RlQGNocmlzdGlhbi5rZWxsbmVyLm1lIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "unredirect@vaina.lt", "name": "Disable unredirect fullscreen windows", "pname": "disable-unredirect-fullscreen-windows", "description": "Disables unredirect fullscreen windows in gnome-shell", "link": "https://extensions.gnome.org/extension/1873/disable-unredirect-fullscreen-windows/", "shell_version_map": {"38": {"version": "4", "sha256": "114536ils1avmwzqxf41q78wg50ynpiyq9kiw7smbxnx6l4pds0q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIiwKICAibmFtZSI6ICJEaXNhYmxlIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJLYXppbWllcmFzIFZhaW5hIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuNCIsCiAgICAiMy42IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thenlzbWFzdGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAdmFpbmEubHQiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "114536ils1avmwzqxf41q78wg50ynpiyq9kiw7smbxnx6l4pds0q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIiwKICAibmFtZSI6ICJEaXNhYmxlIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJLYXppbWllcmFzIFZhaW5hIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuNCIsCiAgICAiMy42IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thenlzbWFzdGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAdmFpbmEubHQiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "114536ils1avmwzqxf41q78wg50ynpiyq9kiw7smbxnx6l4pds0q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIiwKICAibmFtZSI6ICJEaXNhYmxlIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJLYXppbWllcmFzIFZhaW5hIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuNCIsCiAgICAiMy42IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thenlzbWFzdGVyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAdmFpbmEubHQiLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "krypto@sereneblue", "name": "krypto", "pname": "krypto", "description": "Cryptocurrency utility", "link": "https://extensions.gnome.org/extension/1913/krypto/", "shell_version_map": {"38": {"version": "5", "sha256": "0pmga4iqpm0i853lgqfhvnkxhji8m79pk9hgf24lvbpv8alkxzz3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlcmVuZWJsdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtyeXB0byIsCiAgInV1aWQiOiAia3J5cHRvQHNlcmVuZWJsdWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "9", "sha256": "08r7w1mq573hy6vqllydvsrmc91bqmy9ih8li689v225drd95wk4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3J5cHRvIiwKICAidXVpZCI6ICJrcnlwdG9Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiA5Cn0="}, "41": {"version": "9", "sha256": "08r7w1mq573hy6vqllydvsrmc91bqmy9ih8li689v225drd95wk4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3J5cHRvIiwKICAidXVpZCI6ICJrcnlwdG9Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
+, {"uuid": "krypto@sereneblue", "name": "krypto", "pname": "krypto", "description": "Cryptocurrency utility", "link": "https://extensions.gnome.org/extension/1913/krypto/", "shell_version_map": {"38": {"version": "5", "sha256": "0pmga4iqpm0i853lgqfhvnkxhji8m79pk9hgf24lvbpv8alkxzz3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NlcmVuZWJsdWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtyeXB0byIsCiAgInV1aWQiOiAia3J5cHRvQHNlcmVuZWJsdWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "11", "sha256": "1vknx9s3w1y9jjq97nqxh3lxd6y52h5i71yv6zby7kfw2miaf0l2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3J5cHRvIiwKICAidXVpZCI6ICJrcnlwdG9Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "1vknx9s3w1y9jjq97nqxh3lxd6y52h5i71yv6zby7kfw2miaf0l2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyeXB0b2N1cnJlbmN5IHV0aWxpdHkiLAogICJuYW1lIjogImtyeXB0byIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2VyZW5lYmx1ZS9nbm9tZS1zaGVsbC1leHRlbnNpb24ta3J5cHRvIiwKICAidXVpZCI6ICJrcnlwdG9Ac2VyZW5lYmx1ZSIsCiAgInZlcnNpb24iOiAxMQp9"}}}
 , {"uuid": "cmus-status@yagreg7.gmail.com", "name": "cmus status", "pname": "cmus-status", "description": "Shows cmus status", "link": "https://extensions.gnome.org/extension/1934/cmus-status/", "shell_version_map": {"38": {"version": "8", "sha256": "1a6b10kirzbjlllcnffznjlljicah172kpvs0p8rmwhcpn88i8hx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGNtdXMgc3RhdHVzIiwKICAibmFtZSI6ICJjbXVzIHN0YXR1cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jbXVzLXN0YXR1cy5nc2NoZW1hLnhtbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0dyZWdUaGVNYWRNb25rL2dub21lLWNtdXMtc3RhdHVzIiwKICAidXVpZCI6ICJjbXVzLXN0YXR1c0B5YWdyZWc3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
 , {"uuid": "no-title-bar@jonaspoehler.de", "name": "No Title Bar - Forked", "pname": "no-title-bar-forked", "description": "No Title Bar removes the title bar from non-GTK applications and moves the window title and buttons to the top panel.\n\nTitlebars are also hidden for Wayland-native clients that don't use CSD. Some of the options may be incompatible with this. For issues on Wayland please visit github!\n\nThis is a fork of https://extensions.gnome.org/extension/1267/no-title-bar/ with added compatibility for Gnome 3.32+.\n\nThis extension depends on some Xorg utilities. To install them:\n\n⚫ Debian/Ubuntu: apt install x11-utils\n⚫ Fedora/RHEL: dnf install xorg-x11-utils\n⚫ Arch: pacman -S xorg-xprop", "link": "https://extensions.gnome.org/extension/2015/no-title-bar-forked/", "shell_version_map": {"38": {"version": "5", "sha256": "0kch8yra13813gg3wa90lm57skqshmj3j1147lrqwhl9va9rk4q6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIFRpdGxlIEJhciByZW1vdmVzIHRoZSB0aXRsZSBiYXIgZnJvbSBub24tR1RLIGFwcGxpY2F0aW9ucyBhbmQgbW92ZXMgdGhlIHdpbmRvdyB0aXRsZSBhbmQgYnV0dG9ucyB0byB0aGUgdG9wIHBhbmVsLlxuXG5UaXRsZWJhcnMgYXJlIGFsc28gaGlkZGVuIGZvciBXYXlsYW5kLW5hdGl2ZSBjbGllbnRzIHRoYXQgZG9uJ3QgdXNlIENTRC4gU29tZSBvZiB0aGUgb3B0aW9ucyBtYXkgYmUgaW5jb21wYXRpYmxlIHdpdGggdGhpcy4gRm9yIGlzc3VlcyBvbiBXYXlsYW5kIHBsZWFzZSB2aXNpdCBnaXRodWIhXG5cblRoaXMgaXMgYSBmb3JrIG9mIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyNjcvbm8tdGl0bGUtYmFyLyB3aXRoIGFkZGVkIGNvbXBhdGliaWxpdHkgZm9yIEdub21lIDMuMzIrLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcblxuXHUyNmFiIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuXHUyNmFiIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuXHUyNmFiIEFyY2g6IHBhY21hbiAtUyB4b3JnLXhwcm9wIiwKICAibmFtZSI6ICJObyBUaXRsZSBCYXIgLSBGb3JrZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb2VobGVyai9uby10aXRsZS1iYXIiLAogICJ1dWlkIjogIm5vLXRpdGxlLWJhckBqb25hc3BvZWhsZXIuZGUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "6", "sha256": "1plnj999qynsfvab6s01rfrdvw6m0s19b4zirhmlqrpax9vjl3zm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIFRpdGxlIEJhciByZW1vdmVzIHRoZSB0aXRsZSBiYXIgZnJvbSBub24tR1RLIGFwcGxpY2F0aW9ucyBhbmQgbW92ZXMgdGhlIHdpbmRvdyB0aXRsZSBhbmQgYnV0dG9ucyB0byB0aGUgdG9wIHBhbmVsLlxuXG5UaXRsZWJhcnMgYXJlIGFsc28gaGlkZGVuIGZvciBXYXlsYW5kLW5hdGl2ZSBjbGllbnRzIHRoYXQgZG9uJ3QgdXNlIENTRC4gU29tZSBvZiB0aGUgb3B0aW9ucyBtYXkgYmUgaW5jb21wYXRpYmxlIHdpdGggdGhpcy4gRm9yIGlzc3VlcyBvbiBXYXlsYW5kIHBsZWFzZSB2aXNpdCBnaXRodWIhXG5cblRoaXMgaXMgYSBmb3JrIG9mIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEyNjcvbm8tdGl0bGUtYmFyLyB3aXRoIGFkZGVkIGNvbXBhdGliaWxpdHkgZm9yIEdub21lIDMuMzIrLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcblxuXHUyNmFiIERlYmlhbi9VYnVudHU6IGFwdCBpbnN0YWxsIHgxMS11dGlsc1xuXHUyNmFiIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuXHUyNmFiIEFyY2g6IHBhY21hbiAtUyB4b3JnLXhwcm9wIiwKICAibmFtZSI6ICJObyBUaXRsZSBCYXIgLSBGb3JrZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9laGxlcmovbm8tdGl0bGUtYmFyIiwKICAidXVpZCI6ICJuby10aXRsZS1iYXJAam9uYXNwb2VobGVyLmRlIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "application_view_when_empty@fawtytoo", "name": "Show Application View When Workspace Empty", "pname": "show-application-view-when-workspace-empty", "description": "Shows the application view when the workspace is or becomes empty, such as switching to an empty workspace, when all windows on a workspace are closed, or after login. Starting applications or switching to a workspace with open windows will hide the overview if it's showing.", "link": "https://extensions.gnome.org/extension/2036/show-application-view-when-workspace-empty/", "shell_version_map": {"38": {"version": "19", "sha256": "0lsjf3sk0ngacsjqv3ggk2kxk04m8zfm120xd4via79bwii9sh8b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBvdmVydmlldyBpZiBpdCdzIHNob3dpbmcuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9uIFZpZXcgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcGxpY2F0aW9uX3ZpZXdfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxOQp9"}, "40": {"version": "19", "sha256": "0lsjf3sk0ngacsjqv3ggk2kxk04m8zfm120xd4via79bwii9sh8b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBhcHBsaWNhdGlvbiB2aWV3IHdoZW4gdGhlIHdvcmtzcGFjZSBpcyBvciBiZWNvbWVzIGVtcHR5LCBzdWNoIGFzIHN3aXRjaGluZyB0byBhbiBlbXB0eSB3b3Jrc3BhY2UsIHdoZW4gYWxsIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2UgYXJlIGNsb3NlZCwgb3IgYWZ0ZXIgbG9naW4uIFN0YXJ0aW5nIGFwcGxpY2F0aW9ucyBvciBzd2l0Y2hpbmcgdG8gYSB3b3Jrc3BhY2Ugd2l0aCBvcGVuIHdpbmRvd3Mgd2lsbCBoaWRlIHRoZSBvdmVydmlldyBpZiBpdCdzIHNob3dpbmcuIiwKICAibmFtZSI6ICJTaG93IEFwcGxpY2F0aW9uIFZpZXcgV2hlbiBXb3Jrc3BhY2UgRW1wdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcGxpY2F0aW9uX3ZpZXdfd2hlbl9lbXB0eUBmYXd0eXRvbyIsCiAgInZlcnNpb24iOiAxOQp9"}}}
 , {"uuid": "activities_icon_menu@fawtytoo", "name": "Activities Icon Menu", "pname": "activities-menu-for-apps-and-windows", "description": "This extension turns the Activities button into a popup menu with icons for selecting either Applications or Workspaces in the Overview. Selecting the same view again will hide the overview.\n\nThis is particularly useful for tablet users that find the Activities button difficult to click on, whereas a menu can be more easily invoked.", "link": "https://extensions.gnome.org/extension/2048/activities-menu-for-apps-and-windows/", "shell_version_map": {"38": {"version": "9", "sha256": "1m10b1azwvj2b8s12xiwly21if27pcl1x4my411rgy5a5z3qm4j5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHR1cm5zIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBpbnRvIGEgcG9wdXAgbWVudSB3aXRoIGljb25zIGZvciBzZWxlY3RpbmcgZWl0aGVyIEFwcGxpY2F0aW9ucyBvciBXb3Jrc3BhY2VzIGluIHRoZSBPdmVydmlldy4gU2VsZWN0aW5nIHRoZSBzYW1lIHZpZXcgYWdhaW4gd2lsbCBoaWRlIHRoZSBvdmVydmlldy5cblxuVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciB0YWJsZXQgdXNlcnMgdGhhdCBmaW5kIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBkaWZmaWN1bHQgdG8gY2xpY2sgb24sIHdoZXJlYXMgYSBtZW51IGNhbiBiZSBtb3JlIGVhc2lseSBpbnZva2VkLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29uIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFjdGl2aXRpZXNfaWNvbl9tZW51QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "1m10b1azwvj2b8s12xiwly21if27pcl1x4my411rgy5a5z3qm4j5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHR1cm5zIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBpbnRvIGEgcG9wdXAgbWVudSB3aXRoIGljb25zIGZvciBzZWxlY3RpbmcgZWl0aGVyIEFwcGxpY2F0aW9ucyBvciBXb3Jrc3BhY2VzIGluIHRoZSBPdmVydmlldy4gU2VsZWN0aW5nIHRoZSBzYW1lIHZpZXcgYWdhaW4gd2lsbCBoaWRlIHRoZSBvdmVydmlldy5cblxuVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciB0YWJsZXQgdXNlcnMgdGhhdCBmaW5kIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBkaWZmaWN1bHQgdG8gY2xpY2sgb24sIHdoZXJlYXMgYSBtZW51IGNhbiBiZSBtb3JlIGVhc2lseSBpbnZva2VkLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29uIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFjdGl2aXRpZXNfaWNvbl9tZW51QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
-, {"uuid": "Gold_Price_Monitor@wotmshuaisi_github", "name": "Gold Price Monitor", "pname": "gold-price-monitor", "description": "simple gnome extension helps you tracking gold price in realtime", "link": "https://extensions.gnome.org/extension/2075/gold-price-monitor/", "shell_version_map": {"40": {"version": "21", "sha256": "10554hlfv3nlf49av54wwckg2ld4p8pc7vk8s14085shdplwi95n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhbmdlcm91cyI6IGZhbHNlLAogICJkZXNjcmlwdGlvbiI6ICJzaW1wbGUgZ25vbWUgZXh0ZW5zaW9uIGhlbHBzIHlvdSB0cmFja2luZyBnb2xkIHByaWNlIGluIHJlYWx0aW1lIiwKICAibmFtZSI6ICJHb2xkIFByaWNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29sZC1wcmljZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dvdG1zaHVhaXNpL2dvbGRwcmljZW1vbml0b3IiLAogICJ1dWlkIjogIkdvbGRfUHJpY2VfTW9uaXRvckB3b3Rtc2h1YWlzaV9naXRodWIiLAogICJ2ZXJzaW9uIjogMjEKfQ=="}}}
-, {"uuid": "ding@rastersoft.com", "name": "Desktop Icons NG (DING)", "pname": "desktop-icons-ng-ding", "description": "Adds icons to the desktop. Fork of the original Desktop Icons extension, with several enhancements .", "link": "https://extensions.gnome.org/extension/2087/desktop-icons-ng-ding/", "shell_version_map": {"38": {"version": "32", "sha256": "0005k0i9012jcq782zhxdpk9iki5s32cafm1zsf57bdmvvwpr1fd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "40": {"version": "32", "sha256": "0005k0i9012jcq782zhxdpk9iki5s32cafm1zsf57bdmvvwpr1fd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}, "41": {"version": "32", "sha256": "0005k0i9012jcq782zhxdpk9iki5s32cafm1zsf57bdmvvwpr1fd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzIKfQ=="}}}
+, {"uuid": "Gold_Price_Monitor@wotmshuaisi_github", "name": "Gold Price Monitor", "pname": "gold-price-monitor", "description": "simple gnome extension helps you tracking gold price in realtime", "link": "https://extensions.gnome.org/extension/2075/gold-price-monitor/", "shell_version_map": {"40": {"version": "22", "sha256": "04gqhg2am27iifzgfibcs28cqqq6lkb5lmmhzvba6pyqa9i175lr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhbmdlcm91cyI6IGZhbHNlLAogICJkZXNjcmlwdGlvbiI6ICJzaW1wbGUgZ25vbWUgZXh0ZW5zaW9uIGhlbHBzIHlvdSB0cmFja2luZyBnb2xkIHByaWNlIGluIHJlYWx0aW1lIiwKICAibmFtZSI6ICJHb2xkIFByaWNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29sZC1wcmljZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93b3Rtc2h1YWlzaS9nb2xkcHJpY2Vtb25pdG9yIiwKICAidXVpZCI6ICJHb2xkX1ByaWNlX01vbml0b3JAd290bXNodWFpc2lfZ2l0aHViIiwKICAidmVyc2lvbiI6IDIyCn0="}, "41": {"version": "22", "sha256": "04gqhg2am27iifzgfibcs28cqqq6lkb5lmmhzvba6pyqa9i175lr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRhbmdlcm91cyI6IGZhbHNlLAogICJkZXNjcmlwdGlvbiI6ICJzaW1wbGUgZ25vbWUgZXh0ZW5zaW9uIGhlbHBzIHlvdSB0cmFja2luZyBnb2xkIHByaWNlIGluIHJlYWx0aW1lIiwKICAibmFtZSI6ICJHb2xkIFByaWNlIE1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZ29sZC1wcmljZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93b3Rtc2h1YWlzaS9nb2xkcHJpY2Vtb25pdG9yIiwKICAidXVpZCI6ICJHb2xkX1ByaWNlX01vbml0b3JAd290bXNodWFpc2lfZ2l0aHViIiwKICAidmVyc2lvbiI6IDIyCn0="}}}
+, {"uuid": "ding@rastersoft.com", "name": "Desktop Icons NG (DING)", "pname": "desktop-icons-ng-ding", "description": "Adds icons to the desktop. Fork of the original Desktop Icons extension, with several enhancements .", "link": "https://extensions.gnome.org/extension/2087/desktop-icons-ng-ding/", "shell_version_map": {"38": {"version": "33", "sha256": "0w4g1hp6rnzsl26gibpzxmfn5bzqhy5pgf8hq728qw8irjck3vlk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "40": {"version": "33", "sha256": "0w4g1hp6rnzsl26gibpzxmfn5bzqhy5pgf8hq728qw8irjck3vlk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "41": {"version": "33", "sha256": "0w4g1hp6rnzsl26gibpzxmfn5bzqhy5pgf8hq728qw8irjck3vlk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgaWNvbnMgdG8gdGhlIGRlc2t0b3AuIEZvcmsgb2YgdGhlIG9yaWdpbmFsIERlc2t0b3AgSWNvbnMgZXh0ZW5zaW9uLCB3aXRoIHNldmVyYWwgZW5oYW5jZW1lbnRzIC4iLAogICJuYW1lIjogIkRlc2t0b3AgSWNvbnMgTkcgKERJTkcpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9yYXN0ZXJzb2Z0L2Rlc2t0b3AtaWNvbnMtbmciLAogICJ1dWlkIjogImRpbmdAcmFzdGVyc29mdC5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}}}
 , {"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"}}}
 , {"uuid": "horizontal-workspaces@gnome-shell-extensions.gcampax.github.com", "name": "Horizontal workspaces", "pname": "horizontal-workspaces", "description": "Use a horizontal workspace layout", "link": "https://extensions.gnome.org/extension/2141/horizontal-workspaces/", "shell_version_map": {"38": {"version": "5", "sha256": "0kbqcrs96v72yk0rf8jghy1a31651fyvgpi97yp46n4wmvc41vk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBhIGhvcml6b250YWwgd29ya3NwYWNlIGxheW91dCIsCiAgImV4dGVuc2lvbi1pZCI6ICJob3Jpem9udGFsLXdvcmtzcGFjZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJIb3Jpem9udGFsIHdvcmtzcGFjZXMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG9yaXpvbnRhbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiaG9yaXpvbnRhbC13b3Jrc3BhY2VzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "threefingerwindowmove@do.sch.dev.gmail.com", "name": "Three Finger Window Move", "pname": "three-finger-window-move", "description": "Allows moving windows around with a three finger trackpad gesture (Wayland only)", "link": "https://extensions.gnome.org/extension/2164/three-finger-window-move/", "shell_version_map": {"38": {"version": "7", "sha256": "1m7vwr6s6w297b0x0bmnj8fs2hl73pbys6m93lnb9inh5pmgiv1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBtb3Zpbmcgd2luZG93cyBhcm91bmQgd2l0aCBhIHRocmVlIGZpbmdlciB0cmFja3BhZCBnZXN0dXJlIChXYXlsYW5kIG9ubHkpIiwKICAibmFtZSI6ICJUaHJlZSBGaW5nZXIgV2luZG93IE1vdmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kby1zY2gvZ25vbWUtc2hlbGwtdG91Y2hwYWQtd2luZG93LW1vdmUiLAogICJ1dWlkIjogInRocmVlZmluZ2Vyd2luZG93bW92ZUBkby5zY2guZGV2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
-, {"uuid": "spotify-ad-block@danigm.net", "name": "Mute spotify ads", "pname": "mute-spotify-ads", "description": "Mute spotify ads", "link": "https://extensions.gnome.org/extension/2176/mute-spotify-ads/", "shell_version_map": {"38": {"version": "10", "sha256": "1gln6q7vm9d6qrv7ng6jxa1gprjqa4pi5bnw9phdsfasr9zz1dq1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmlnbS9zcG90aWZ5LWFkLWJsb2NrZXIiLAogICJ1dWlkIjogInNwb3RpZnktYWQtYmxvY2tAZGFuaWdtLm5ldCIsCiAgInZlcnNpb24iOiAxMAp9"}, "40": {"version": "10", "sha256": "1gln6q7vm9d6qrv7ng6jxa1gprjqa4pi5bnw9phdsfasr9zz1dq1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmlnbS9zcG90aWZ5LWFkLWJsb2NrZXIiLAogICJ1dWlkIjogInNwb3RpZnktYWQtYmxvY2tAZGFuaWdtLm5ldCIsCiAgInZlcnNpb24iOiAxMAp9"}, "41": {"version": "10", "sha256": "1gln6q7vm9d6qrv7ng6jxa1gprjqa4pi5bnw9phdsfasr9zz1dq1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmlnbS9zcG90aWZ5LWFkLWJsb2NrZXIiLAogICJ1dWlkIjogInNwb3RpZnktYWQtYmxvY2tAZGFuaWdtLm5ldCIsCiAgInZlcnNpb24iOiAxMAp9"}}}
+, {"uuid": "spotify-ad-block@danigm.net", "name": "Mute spotify ads", "pname": "mute-spotify-ads", "description": "Mute spotify ads", "link": "https://extensions.gnome.org/extension/2176/mute-spotify-ads/", "shell_version_map": {"38": {"version": "11", "sha256": "1cqrbzhb02k4nacjhpych5fqw17gbly1f04ahhx6xhz9a6p3gq36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmlnbS9zcG90aWZ5LWFkLWJsb2NrZXIiLAogICJ1dWlkIjogInNwb3RpZnktYWQtYmxvY2tAZGFuaWdtLm5ldCIsCiAgInZlcnNpb24iOiAxMQp9"}, "40": {"version": "11", "sha256": "1cqrbzhb02k4nacjhpych5fqw17gbly1f04ahhx6xhz9a6p3gq36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmlnbS9zcG90aWZ5LWFkLWJsb2NrZXIiLAogICJ1dWlkIjogInNwb3RpZnktYWQtYmxvY2tAZGFuaWdtLm5ldCIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "1cqrbzhb02k4nacjhpych5fqw17gbly1f04ahhx6xhz9a6p3gq36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RhbmlnbS9zcG90aWZ5LWFkLWJsb2NrZXIiLAogICJ1dWlkIjogInNwb3RpZnktYWQtYmxvY2tAZGFuaWdtLm5ldCIsCiAgInZlcnNpb24iOiAxMQp9"}}}
 , {"uuid": "noannoyance@daase.net", "name": "NoAnnoyance v2", "pname": "noannoyance", "description": "Another extension, that removes the 'Window is ready' notification and puts the window into focus. In contrast to all the other extensions, this uses ES6 syntax and is actively maintained.", "link": "https://extensions.gnome.org/extension/2182/noannoyance/", "shell_version_map": {"38": {"version": "11", "sha256": "11rrrfpvyp7rxyfqj0bkf62y8a55jkjs4ydqs2vsgkpmf2bbfwrg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmpvZXJuRGFhc2Uvbm9hbm5veWFuY2UiLAogICJ1dWlkIjogIm5vYW5ub3lhbmNlQGRhYXNlLm5ldCIsCiAgInZlcnNpb24iOiAxMQp9"}, "40": {"version": "11", "sha256": "11rrrfpvyp7rxyfqj0bkf62y8a55jkjs4ydqs2vsgkpmf2bbfwrg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmpvZXJuRGFhc2Uvbm9hbm5veWFuY2UiLAogICJ1dWlkIjogIm5vYW5ub3lhbmNlQGRhYXNlLm5ldCIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "11rrrfpvyp7rxyfqj0bkf62y8a55jkjs4ydqs2vsgkpmf2bbfwrg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmpvZXJuRGFhc2Uvbm9hbm5veWFuY2UiLAogICJ1dWlkIjogIm5vYW5ub3lhbmNlQGRhYXNlLm5ldCIsCiAgInZlcnNpb24iOiAxMQp9"}}}
 , {"uuid": "easy_docker_containers@red.software.systems", "name": "Easy Docker Containers", "pname": "easy-docker-containers", "description": "A GNOME Shell extension (GNOME Panel applet) to be able to generally control your available Docker containers.", "link": "https://extensions.gnome.org/extension/2224/easy-docker-containers/", "shell_version_map": {"38": {"version": "13", "sha256": "1hq6ispaq7vyn8vigacbwv58hrishb1g09vhffwsldahx4iz4pnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAxMwp9"}, "40": {"version": "13", "sha256": "1hq6ispaq7vyn8vigacbwv58hrishb1g09vhffwsldahx4iz4pnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "1hq6ispaq7vyn8vigacbwv58hrishb1g09vhffwsldahx4iz4pnj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SZWRTb2Z0d2FyZVN5c3RlbXMvZWFzeV9kb2NrZXJfY29udGFpbmVycyIsCiAgInV1aWQiOiAiZWFzeV9kb2NrZXJfY29udGFpbmVyc0ByZWQuc29mdHdhcmUuc3lzdGVtcyIsCiAgInZlcnNpb24iOiAxMwp9"}}}
-, {"uuid": "nightthemeswitcher@romainvigier.fr", "name": "Night Theme Switcher", "pname": "night-theme-switcher", "description": "Make your desktop easy on the eye, day and night.\n\nAutomatically toggle your light and dark GTK, GNOME Shell, icon and cursor themes variants, switch backgrounds and run custom commands at sunset and sunrise.\n\nSupports Night Light, Location Services, manual schedule and on-demand switch modes.", "link": "https://extensions.gnome.org/extension/2236/night-theme-switcher/", "shell_version_map": {"38": {"version": "46", "sha256": "13vq56mhxkh61zza1j4pszbbbz96z2yjzgkzq8qi51jidpdby521", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgeW91ciBsaWdodCBhbmQgZGFyayBHVEssIEdOT01FIFNoZWxsLCBpY29uIGFuZCBjdXJzb3IgdGhlbWVzIHZhcmlhbnRzLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vbmlnaHR0aGVtZXN3aXRjaGVyLnJvbWFpbnZpZ2llci5mciIsCiAgInV1aWQiOiAibmlnaHR0aGVtZXN3aXRjaGVyQHJvbWFpbnZpZ2llci5mciIsCiAgInZlcnNpb24iOiA0Ngp9"}, "40": {"version": "51", "sha256": "1lbfbb6acc70y70v5g3mvqhzn6240jdq0zzlnh43yg1kvry20d2a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgeW91ciBsaWdodCBhbmQgZGFyayBHVEssIEdOT01FIFNoZWxsLCBpY29uIGFuZCBjdXJzb3IgdGhlbWVzIHZhcmlhbnRzLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL25pZ2h0dGhlbWVzd2l0Y2hlci5yb21haW52aWdpZXIuZnIiLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNTEKfQ=="}, "41": {"version": "54", "sha256": "0w7cl9k13rdb7acbjvand03wp73jml3vp425jnkiv75rmw3aixkf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgeW91ciBsaWdodCBhbmQgZGFyayBHVEssIEdOT01FIFNoZWxsLCBpY29uIGFuZCBjdXJzb3IgdGhlbWVzIHZhcmlhbnRzLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL25pZ2h0dGhlbWVzd2l0Y2hlci5yb21haW52aWdpZXIuZnIiLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNTQKfQ=="}}}
+, {"uuid": "nightthemeswitcher@romainvigier.fr", "name": "Night Theme Switcher", "pname": "night-theme-switcher", "description": "Make your desktop easy on the eye, day and night.\n\nAutomatically toggle your light and dark GTK, GNOME Shell, icon and cursor themes variants, switch backgrounds and run custom commands at sunset and sunrise.\n\nSupports Night Light, Location Services, manual schedule and on-demand switch modes.", "link": "https://extensions.gnome.org/extension/2236/night-theme-switcher/", "shell_version_map": {"38": {"version": "46", "sha256": "13vq56mhxkh61zza1j4pszbbbz96z2yjzgkzq8qi51jidpdby521", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgeW91ciBsaWdodCBhbmQgZGFyayBHVEssIEdOT01FIFNoZWxsLCBpY29uIGFuZCBjdXJzb3IgdGhlbWVzIHZhcmlhbnRzLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vbmlnaHR0aGVtZXN3aXRjaGVyLnJvbWFpbnZpZ2llci5mciIsCiAgInV1aWQiOiAibmlnaHR0aGVtZXN3aXRjaGVyQHJvbWFpbnZpZ2llci5mciIsCiAgInZlcnNpb24iOiA0Ngp9"}, "40": {"version": "51", "sha256": "1lbfbb6acc70y70v5g3mvqhzn6240jdq0zzlnh43yg1kvry20d2a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgeW91ciBsaWdodCBhbmQgZGFyayBHVEssIEdOT01FIFNoZWxsLCBpY29uIGFuZCBjdXJzb3IgdGhlbWVzIHZhcmlhbnRzLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL25pZ2h0dGhlbWVzd2l0Y2hlci5yb21haW52aWdpZXIuZnIiLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNTEKfQ=="}, "41": {"version": "55", "sha256": "1sv0wm9fq6f1j384qz91f8vkxk3ffb02ih1x6apa70k2ybmrc06g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC5cblxuQXV0b21hdGljYWxseSB0b2dnbGUgeW91ciBsaWdodCBhbmQgZGFyayBHVEssIEdOT01FIFNoZWxsLCBpY29uIGFuZCBjdXJzb3IgdGhlbWVzIHZhcmlhbnRzLCBzd2l0Y2ggYmFja2dyb3VuZHMgYW5kIHJ1biBjdXN0b20gY29tbWFuZHMgYXQgc3Vuc2V0IGFuZCBzdW5yaXNlLlxuXG5TdXBwb3J0cyBOaWdodCBMaWdodCwgTG9jYXRpb24gU2VydmljZXMsIG1hbnVhbCBzY2hlZHVsZSBhbmQgb24tZGVtYW5kIHN3aXRjaCBtb2Rlcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL25pZ2h0dGhlbWVzd2l0Y2hlci5yb21haW52aWdpZXIuZnIiLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNTUKfQ=="}}}
 , {"uuid": "binaryclock@vancha.march", "name": "binaryclock", "pname": "binaryclock", "description": "adds a binary clock to the gnome bar", "link": "https://extensions.gnome.org/extension/2284/binaryclock/", "shell_version_map": {"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.", "link": "https://extensions.gnome.org/extension/2296/looking-glass-button/", "shell_version_map": {"38": {"version": "7", "sha256": "01sbrsfvxwvzgxd5cdvrzb6gl573hw30hy50ihqy43hari95jk8c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGdidXR0b24iLAogICJuYW1lIjogIkxvb2tpbmcgR2xhc3MgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9nbGVycm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAidXVpZCI6ICJsZ2J1dHRvbkBnbGVycm8uZ25vbWUuZ2l0bGFiLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "01sbrsfvxwvzgxd5cdvrzb6gl573hw30hy50ihqy43hari95jk8c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGdidXR0b24iLAogICJuYW1lIjogIkxvb2tpbmcgR2xhc3MgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9nbGVycm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAidXVpZCI6ICJsZ2J1dHRvbkBnbGVycm8uZ25vbWUuZ2l0bGFiLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "7", "sha256": "01sbrsfvxwvzgxd5cdvrzb6gl573hw30hy50ihqy43hari95jk8c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGdidXR0b24iLAogICJuYW1lIjogIkxvb2tpbmcgR2xhc3MgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9nbGVycm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAidXVpZCI6ICJsZ2J1dHRvbkBnbGVycm8uZ25vbWUuZ2l0bGFiLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
 , {"uuid": "tp_wattmeter@gistart", "name": "tp_wattmeter", "pname": "tp_wattmeter", "description": "Shows battery power consumption of ThinkPad laptops", "link": "https://extensions.gnome.org/extension/2308/tp_wattmeter/", "shell_version_map": {"40": {"version": "4", "sha256": "1v8rw7msfy2d8nwnppdpci62sl6iw8973z5gsl8024awl27ni38z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGJhdHRlcnkgcG93ZXIgY29uc3VtcHRpb24gb2YgVGhpbmtQYWQgbGFwdG9wcyIsCiAgIm5hbWUiOiAidHBfd2F0dG1ldGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2LjAiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9naXN0YXJ0L3RwX3dhdHRtZXRlciIsCiAgInV1aWQiOiAidHBfd2F0dG1ldGVyQGdpc3RhcnQiLAogICJ2ZXJzaW9uIjogNAp9"}}}
@@ -260,19 +262,19 @@
 , {"uuid": "kernel-indicator@elboulangero.gitlab.com", "name": "Kernel Indicator", "pname": "kernel-indicator", "description": "Display the kernel version in the top bar", "link": "https://extensions.gnome.org/extension/2512/kernel-indicator/", "shell_version_map": {"40": {"version": "4", "sha256": "0v3vxk9adzwk18vpvhpwxp7893wh7my8bh8j5vp4fdiq3l06v4sp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGtlcm5lbCB2ZXJzaW9uIGluIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJLZXJuZWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9lbGJvdWxhbmdlcm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtlcm5lbC1pbmRpY2F0b3IiLAogICJ1dWlkIjogImtlcm5lbC1pbmRpY2F0b3JAZWxib3VsYW5nZXJvLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "0v3vxk9adzwk18vpvhpwxp7893wh7my8bh8j5vp4fdiq3l06v4sp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGtlcm5lbCB2ZXJzaW9uIGluIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJLZXJuZWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9lbGJvdWxhbmdlcm8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtlcm5lbC1pbmRpY2F0b3IiLAogICJ1dWlkIjogImtlcm5lbC1pbmRpY2F0b3JAZWxib3VsYW5nZXJvLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "floatingDock@sun.wxg@gmail.com", "name": "Floating Dock", "pname": "floating-dock", "description": "Move dock anywhere on the desktop\n\nPress Ctrl+Alt+k to vi mode\nPress lowercase alphabet, open new window or active the window\nPress uppercase alphabet, force to open new window\n\nPoint on the main button, change workspace by mouse scroll\nRight click the main button, show some selections", "link": "https://extensions.gnome.org/extension/2542/floating-dock/", "shell_version_map": {"38": {"version": "12", "sha256": "1844hhr0z4wd0wvh29q0sxh6xmwq7chg3kr3sa3c46q8n97i78x2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZmxvYXRpbmdEb2NrIiwKICAidXVpZCI6ICJmbG9hdGluZ0RvY2tAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "21", "sha256": "0qj1vqd44clpr72j5lccvva48kzaz76zd48k6nxzvnkgh2n5dh29", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nRG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmdEb2NrQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}, "41": {"version": "23", "sha256": "0ag8pq9sgk885912mqiyhsacfmgkn9n4jvyp0rk4nw0fghd1mgd9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nRG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmdEb2NrQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
 , {"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 confiure certain aspects of the connection.", "link": "https://extensions.gnome.org/extension/2569/gnordvpn-local/", "shell_version_map": {"38": {"version": "6", "sha256": "1w5nz2688iyjf7cnaxa45h9m6l97ssf51c3szfabnbpa4d8vbqb3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2hvd3MgdGhlIE5vcmRWUE4gc3RhdHVzIGluIHRoZSB0b3AgYmFyIGFuZCBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjb25maXVyZSBjZXJ0YWluIGFzcGVjdHMgb2YgdGhlIGNvbm5lY3Rpb24uIiwKICAibmFtZSI6ICJnTm9yZFZQTi1Mb2NhbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dOb3JkVlBOLUxvY2FsIiwKICAidXVpZCI6ICJnbm9yZHZwbi1sb2NhbEBpc29wb2xpdG8iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"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": {"38": {"version": "8", "sha256": "1bn9n7q8wi909gyys27dmqhay6hx9y7dl1pxy6zrmh7baijz2gr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR25vbWUgZXh0ZW5zaW9uIHRoYXQgc2hvd3MgdGhlIE5vcmRWUE4gc3RhdHVzIGluIHRoZSB0b3AgYmFyIGFuZCBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgY2VydGFpbiBhc3BlY3RzIG9mIHRoZSBjb25uZWN0aW9uLiIsCiAgIm5hbWUiOiAiZ05vcmRWUE4tTG9jYWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzguMSIsCiAgICAiMy4zOC40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSXNvcG9saXRvL2dOb3JkVlBOLUxvY2FsIiwKICAidXVpZCI6ICJnbm9yZHZwbi1sb2NhbEBpc29wb2xpdG8iLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"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"}}}
 , {"uuid": "always-indicator@martin.zurowietz.de", "name": "Always Indicator", "pname": "always-indicator", "description": "Always show the new messages indicator on new messages. Features: 1) New message indicator is always shown if there are notifications. 2) The color of the indicator can be customized. 3) If 'do not disturb' is active, the icon is displayed in the custom color if there are notifications.", "link": "https://extensions.gnome.org/extension/2594/always-indicator/", "shell_version_map": {"40": {"version": "7", "sha256": "1hryk0ispnxpfmfskj29nii72vwbaly4bcb4idyg2z3c1c71qhdy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6IDEpIE5ldyBtZXNzYWdlIGluZGljYXRvciBpcyBhbHdheXMgc2hvd24gaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuIDIpIFRoZSBjb2xvciBvZiB0aGUgaW5kaWNhdG9yIGNhbiBiZSBjdXN0b21pemVkLiAzKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWx3YXlzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiQWx3YXlzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHdheXMtaW5kaWNhdG9yLXNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tenVyL2dub21lLXNoZWxsLWFsd2F5cy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImFsd2F5cy1pbmRpY2F0b3JAbWFydGluLnp1cm93aWV0ei5kZSIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "1hryk0ispnxpfmfskj29nii72vwbaly4bcb4idyg2z3c1c71qhdy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHRoZSBuZXcgbWVzc2FnZXMgaW5kaWNhdG9yIG9uIG5ldyBtZXNzYWdlcy4gRmVhdHVyZXM6IDEpIE5ldyBtZXNzYWdlIGluZGljYXRvciBpcyBhbHdheXMgc2hvd24gaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuIDIpIFRoZSBjb2xvciBvZiB0aGUgaW5kaWNhdG9yIGNhbiBiZSBjdXN0b21pemVkLiAzKSBJZiAnZG8gbm90IGRpc3R1cmInIGlzIGFjdGl2ZSwgdGhlIGljb24gaXMgZGlzcGxheWVkIGluIHRoZSBjdXN0b20gY29sb3IgaWYgdGhlcmUgYXJlIG5vdGlmaWNhdGlvbnMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWx3YXlzLWluZGljYXRvciIsCiAgIm5hbWUiOiAiQWx3YXlzIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hbHdheXMtaW5kaWNhdG9yLXNldHRpbmdzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tenVyL2dub21lLXNoZWxsLWFsd2F5cy1pbmRpY2F0b3IiLAogICJ1dWlkIjogImFsd2F5cy1pbmRpY2F0b3JAbWFydGluLnp1cm93aWV0ei5kZSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
 , {"uuid": "eruption-profile-switcher@x3n0m0rph59.org", "name": "Eruption Profile Switcher", "pname": "eruption-profile-switcher", "description": "Runtime profile switcher for the Eruption Linux input and LED driver for keyboards, mice and other devices", "link": "https://extensions.gnome.org/extension/2621/eruption-profile-switcher/", "shell_version_map": {"38": {"version": "15", "sha256": "1jy9m2inx8jjwsy666hg67i7d8py2ar4drn2i8si7d80cba45al4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1bnRpbWUgcHJvZmlsZSBzd2l0Y2hlciBmb3IgdGhlIEVydXB0aW9uIExpbnV4IGlucHV0IGFuZCBMRUQgZHJpdmVyIGZvciBrZXlib2FyZHMsIG1pY2UgYW5kIG90aGVyIGRldmljZXMiLAogICJuYW1lIjogIkVydXB0aW9uIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmJldGEiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWDNuMG0wcnBoNTkvZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlckB4M24wbTBycGg1OS5vcmciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "20", "sha256": "0mfy34n9gqa1k8sw6b1xcsxygvjnjqnd88bs49jd6l7hwisyns15", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1bnRpbWUgcHJvZmlsZSBzd2l0Y2hlciBmb3IgdGhlIEVydXB0aW9uIExpbnV4IGlucHV0IGFuZCBMRUQgZHJpdmVyIGZvciBrZXlib2FyZHMsIG1pY2UgYW5kIG90aGVyIGRldmljZXMiLAogICJuYW1lIjogIkVydXB0aW9uIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuYmV0YSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWDNuMG0wcnBoNTkvZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlckB4M24wbTBycGg1OS5vcmciLAogICJ2ZXJzaW9uIjogMjAKfQ=="}, "41": {"version": "20", "sha256": "0mfy34n9gqa1k8sw6b1xcsxygvjnjqnd88bs49jd6l7hwisyns15", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJ1bnRpbWUgcHJvZmlsZSBzd2l0Y2hlciBmb3IgdGhlIEVydXB0aW9uIExpbnV4IGlucHV0IGFuZCBMRUQgZHJpdmVyIGZvciBrZXlib2FyZHMsIG1pY2UgYW5kIG90aGVyIGRldmljZXMiLAogICJuYW1lIjogIkVydXB0aW9uIFByb2ZpbGUgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAuYmV0YSIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWDNuMG0wcnBoNTkvZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZXJ1cHRpb24tcHJvZmlsZS1zd2l0Y2hlckB4M24wbTBycGg1OS5vcmciLAogICJ2ZXJzaW9uIjogMjAKfQ=="}}}
 , {"uuid": "nbfcindicator@mgokcaykdev.gmail.com", "name": "Nbfc Indicator", "pname": "nbfc-indicator", "description": "Notebook Fan Control Indicator for Gnome Shell", "link": "https://extensions.gnome.org/extension/2624/nbfc-indicator/", "shell_version_map": {"40": {"version": "7", "sha256": "0hp7giwdcsk8p442q0x9214dv59ziyjswli6mccyb8v814k3p8ic", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGVib29rIEZhbiBDb250cm9sIEluZGljYXRvciBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuYmZjaW5kaWNhdG9yIiwKICAibmFtZSI6ICJOYmZjIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYmZjaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01Hb2tjYXlLL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtbmJmY2luZGljYXRvciIsCiAgInV1aWQiOiAibmJmY2luZGljYXRvckBtZ29rY2F5a2Rldi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
-, {"uuid": "user-id-in-top-panel@fthx", "name": "User id in top panel", "pname": "user-id-in-top-panel", "description": "Add ( user name :: user id @ host ) in top panel.", "link": "https://extensions.gnome.org/extension/2633/user-id-in-top-panel/", "shell_version_map": {"38": {"version": "5", "sha256": "1qymbxd49jq1xqz3lril9dv5g5a94xs658shml7c75iqplq794f4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCAoIHVzZXIgbmFtZSA6OiB1c2VyIGlkIEAgaG9zdCApIGluIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIlVzZXIgaWQgaW4gdG9wIHBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJmdGh4IgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidXNlci1pZC1pbi10b3AtcGFuZWxAZnRoeCIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "1qymbxd49jq1xqz3lril9dv5g5a94xs658shml7c75iqplq794f4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCAoIHVzZXIgbmFtZSA6OiB1c2VyIGlkIEAgaG9zdCApIGluIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIlVzZXIgaWQgaW4gdG9wIHBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJmdGh4IgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidXNlci1pZC1pbi10b3AtcGFuZWxAZnRoeCIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"uuid": "user-id-in-top-panel@fthx", "name": "User id in top panel", "pname": "user-id-in-top-panel", "description": "Add ( user name :: user id @ host ) in top panel.", "link": "https://extensions.gnome.org/extension/2633/user-id-in-top-panel/", "shell_version_map": {"38": {"version": "6", "sha256": "16s1782mzb5ckshsy86ac9xj5xfk15hwzvzk4cfiimphfvkkw8x4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCAoIHVzZXIgbmFtZSA6OiB1c2VyIGlkIEAgaG9zdCApIGluIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIlVzZXIgaWQgaW4gdG9wIHBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJmdGh4IgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ1c2VyLWlkLWluLXRvcC1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "16s1782mzb5ckshsy86ac9xj5xfk15hwzvzk4cfiimphfvkkw8x4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCAoIHVzZXIgbmFtZSA6OiB1c2VyIGlkIEAgaG9zdCApIGluIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIlVzZXIgaWQgaW4gdG9wIHBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJmdGh4IgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ1c2VyLWlkLWluLXRvcC1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "16s1782mzb5ckshsy86ac9xj5xfk15hwzvzk4cfiimphfvkkw8x4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCAoIHVzZXIgbmFtZSA6OiB1c2VyIGlkIEAgaG9zdCApIGluIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIlVzZXIgaWQgaW4gdG9wIHBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJmdGh4IgogIF0sCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ1c2VyLWlkLWluLXRvcC1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "hide-minimized@danigm.net", "name": "Hide minimized", "pname": "hide-minimized", "description": "Hide minimized in overview", "link": "https://extensions.gnome.org/extension/2639/hide-minimized/", "shell_version_map": {"38": {"version": "4", "sha256": "0v2vrm3p5czzvs2kc8dh3h1ijh7i8x6z2b9gdvqbfny45g7blfaa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgbWluaW1pemVkIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJIaWRlIG1pbmltaXplZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWdtL2hpZGUtbWluaW1pemVkIiwKICAidXVpZCI6ICJoaWRlLW1pbmltaXplZEBkYW5pZ20ubmV0IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "0v2vrm3p5czzvs2kc8dh3h1ijh7i8x6z2b9gdvqbfny45g7blfaa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgbWluaW1pemVkIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJIaWRlIG1pbmltaXplZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWdtL2hpZGUtbWluaW1pemVkIiwKICAidXVpZCI6ICJoaWRlLW1pbmltaXplZEBkYW5pZ20ubmV0IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "0v2vrm3p5czzvs2kc8dh3h1ijh7i8x6z2b9gdvqbfny45g7blfaa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgbWluaW1pemVkIGluIG92ZXJ2aWV3IiwKICAibmFtZSI6ICJIaWRlIG1pbmltaXplZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGFuaWdtL2hpZGUtbWluaW1pemVkIiwKICAidXVpZCI6ICJoaWRlLW1pbmltaXplZEBkYW5pZ20ubmV0IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "display-brightness-ddcutil@themightydeity.github.com", "name": "Brightness control using ddcutil", "pname": "brightness-control-using-ddcutil", "description": "Brightness slider for all the monitors detected by ddcutil\nThis tool uses ddcutil as backend for communication with your display.\n\nMake sure that your user can use following shell commands without root.\n\t`ddcutil getvcp 10` to check the brightness of a display and\n\t`ddcutil setvcp 10 100` to set the brightness to 100\n\nMore info: https://github.com/daitj/gnome-display-brightness-ddcutil/blob/master/README.md", "link": "https://extensions.gnome.org/extension/2645/brightness-control-using-ddcutil/", "shell_version_map": {"38": {"version": "10", "sha256": "08rwqdcaqcx84a5bjalcvryxvhfr15a1bcyldnzw8z9aysdx1jls", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaWdodG5lc3Mgc2xpZGVyIGZvciBhbGwgdGhlIG1vbml0b3JzIGRldGVjdGVkIGJ5IGRkY3V0aWxcblRoaXMgdG9vbCB1c2VzIGRkY3V0aWwgYXMgYmFja2VuZCBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIHlvdXIgZGlzcGxheS5cblxuTWFrZSBzdXJlIHRoYXQgeW91ciB1c2VyIGNhbiB1c2UgZm9sbG93aW5nIHNoZWxsIGNvbW1hbmRzIHdpdGhvdXQgcm9vdC5cblx0YGRkY3V0aWwgZ2V0dmNwIDEwYCB0byBjaGVjayB0aGUgYnJpZ2h0bmVzcyBvZiBhIGRpc3BsYXkgYW5kXG5cdGBkZGN1dGlsIHNldHZjcCAxMCAxMDBgIHRvIHNldCB0aGUgYnJpZ2h0bmVzcyB0byAxMDBcblxuTW9yZSBpbmZvOiBodHRwczovL2dpdGh1Yi5jb20vZGFpdGovZ25vbWUtZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIiwKICAibmFtZSI6ICJCcmlnaHRuZXNzIGNvbnRyb2wgdXNpbmcgZGRjdXRpbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kaXNwbGF5LWJyaWdodG5lc3MtZGRjdXRpbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RoZW1pZ2h0eWRlaXR5L2dub21lLWRpc3BsYXktYnJpZ2h0bmVzcy1kZGN1dGlsIiwKICAidXVpZCI6ICJkaXNwbGF5LWJyaWdodG5lc3MtZGRjdXRpbEB0aGVtaWdodHlkZWl0eS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "16", "sha256": "03g1m0n0y3fbx898nn6vmjsq6bmw7fphjsb1y7gqawlqim6yhxx0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaWdodG5lc3Mgc2xpZGVyIGZvciBhbGwgdGhlIG1vbml0b3JzIGRldGVjdGVkIGJ5IGRkY3V0aWxcblRoaXMgdG9vbCB1c2VzIGRkY3V0aWwgYXMgYmFja2VuZCBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIHlvdXIgZGlzcGxheS5cblxuTWFrZSBzdXJlIHRoYXQgeW91ciB1c2VyIGNhbiB1c2UgZm9sbG93aW5nIHNoZWxsIGNvbW1hbmRzIHdpdGhvdXQgcm9vdC5cblx0YGRkY3V0aWwgZ2V0dmNwIDEwYCB0byBjaGVjayB0aGUgYnJpZ2h0bmVzcyBvZiBhIGRpc3BsYXkgYW5kXG5cdGBkZGN1dGlsIHNldHZjcCAxMCAxMDBgIHRvIHNldCB0aGUgYnJpZ2h0bmVzcyB0byAxMDBcblxuTW9yZSBpbmZvOiBodHRwczovL2dpdGh1Yi5jb20vZGFpdGovZ25vbWUtZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwiLAogICJuYW1lIjogIkJyaWdodG5lc3MgY29udHJvbCB1c2luZyBkZGN1dGlsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRpc3BsYXktYnJpZ2h0bmVzcy1kZGN1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aGVtaWdodHlkZWl0eS9nbm9tZS1kaXNwbGF5LWJyaWdodG5lc3MtZGRjdXRpbCIsCiAgInV1aWQiOiAiZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWxAdGhlbWlnaHR5ZGVpdHkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}, "41": {"version": "16", "sha256": "03g1m0n0y3fbx898nn6vmjsq6bmw7fphjsb1y7gqawlqim6yhxx0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaWdodG5lc3Mgc2xpZGVyIGZvciBhbGwgdGhlIG1vbml0b3JzIGRldGVjdGVkIGJ5IGRkY3V0aWxcblRoaXMgdG9vbCB1c2VzIGRkY3V0aWwgYXMgYmFja2VuZCBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIHlvdXIgZGlzcGxheS5cblxuTWFrZSBzdXJlIHRoYXQgeW91ciB1c2VyIGNhbiB1c2UgZm9sbG93aW5nIHNoZWxsIGNvbW1hbmRzIHdpdGhvdXQgcm9vdC5cblx0YGRkY3V0aWwgZ2V0dmNwIDEwYCB0byBjaGVjayB0aGUgYnJpZ2h0bmVzcyBvZiBhIGRpc3BsYXkgYW5kXG5cdGBkZGN1dGlsIHNldHZjcCAxMCAxMDBgIHRvIHNldCB0aGUgYnJpZ2h0bmVzcyB0byAxMDBcblxuTW9yZSBpbmZvOiBodHRwczovL2dpdGh1Yi5jb20vZGFpdGovZ25vbWUtZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwvYmxvYi9tYXN0ZXIvUkVBRE1FLm1kIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWwiLAogICJuYW1lIjogIkJyaWdodG5lc3MgY29udHJvbCB1c2luZyBkZGN1dGlsIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRpc3BsYXktYnJpZ2h0bmVzcy1kZGN1dGlsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aGVtaWdodHlkZWl0eS9nbm9tZS1kaXNwbGF5LWJyaWdodG5lc3MtZGRjdXRpbCIsCiAgInV1aWQiOiAiZGlzcGxheS1icmlnaHRuZXNzLWRkY3V0aWxAdGhlbWlnaHR5ZGVpdHkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNgp9"}}}
 , {"uuid": "timezones@masquerade-circus.net", "name": "Timezones extension", "pname": "timezones-extension", "description": "Show multiple clocks in the panel. For those who need more than one additional clock.", "link": "https://extensions.gnome.org/extension/2657/timezones-extension/", "shell_version_map": {"38": {"version": "2", "sha256": "0vkqwrn0kvmng003h26zvzd5ym4h971hvcspb5iq7042lhxxc2hf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbXVsdGlwbGUgY2xvY2tzIGluIHRoZSBwYW5lbC4gRm9yIHRob3NlIHdobyBuZWVkIG1vcmUgdGhhbiBvbmUgYWRkaXRpb25hbCBjbG9jay4iLAogICJuYW1lIjogIlRpbWV6b25lcyBleHRlbnNpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAidGltZXpvbmVzQG1hc3F1ZXJhZGUtY2lyY3VzLm5ldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFzcXVlcmFkZS1DaXJjdXMvZ25vbWUtdGltZXpvbmVzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidGltZXpvbmVzQG1hc3F1ZXJhZGUtY2lyY3VzLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "0vkqwrn0kvmng003h26zvzd5ym4h971hvcspb5iq7042lhxxc2hf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbXVsdGlwbGUgY2xvY2tzIGluIHRoZSBwYW5lbC4gRm9yIHRob3NlIHdobyBuZWVkIG1vcmUgdGhhbiBvbmUgYWRkaXRpb25hbCBjbG9jay4iLAogICJuYW1lIjogIlRpbWV6b25lcyBleHRlbnNpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAidGltZXpvbmVzQG1hc3F1ZXJhZGUtY2lyY3VzLm5ldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFzcXVlcmFkZS1DaXJjdXMvZ25vbWUtdGltZXpvbmVzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidGltZXpvbmVzQG1hc3F1ZXJhZGUtY2lyY3VzLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "0vkqwrn0kvmng003h26zvzd5ym4h971hvcspb5iq7042lhxxc2hf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbXVsdGlwbGUgY2xvY2tzIGluIHRoZSBwYW5lbC4gRm9yIHRob3NlIHdobyBuZWVkIG1vcmUgdGhhbiBvbmUgYWRkaXRpb25hbCBjbG9jay4iLAogICJuYW1lIjogIlRpbWV6b25lcyBleHRlbnNpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAidGltZXpvbmVzQG1hc3F1ZXJhZGUtY2lyY3VzLm5ldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFzcXVlcmFkZS1DaXJjdXMvZ25vbWUtdGltZXpvbmVzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidGltZXpvbmVzQG1hc3F1ZXJhZGUtY2lyY3VzLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "transparent-panel@fthx", "name": "Ubuntu-like Panel", "pname": "transparent-panel", "description": "Panel: transparent, straight, reduced height, non-bold fonts. Nothing more.\n\nLooks roughly like Ubuntu session's panel (Yaru). You can easily modify the transparency level through the CSS stylesheet in the extensions's folder.", "link": "https://extensions.gnome.org/extension/2660/transparent-panel/", "shell_version_map": {"40": {"version": "3", "sha256": "042cbxdvh4nxv72dd6ikm37brgb2wc1yaxsznyavjwr53awjbbzm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBhbmVsOiB0cmFuc3BhcmVudCwgc3RyYWlnaHQsIHJlZHVjZWQgaGVpZ2h0LCBub24tYm9sZCBmb250cy4gTm90aGluZyBtb3JlLlxuXG5Mb29rcyByb3VnaGx5IGxpa2UgVWJ1bnR1IHNlc3Npb24ncyBwYW5lbCAoWWFydSkuIFlvdSBjYW4gZWFzaWx5IG1vZGlmeSB0aGUgdHJhbnNwYXJlbmN5IGxldmVsIHRocm91Z2ggdGhlIENTUyBzdHlsZXNoZWV0IGluIHRoZSBleHRlbnNpb25zJ3MgZm9sZGVyLiIsCiAgIm5hbWUiOiAiVWJ1bnR1LWxpa2UgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "042cbxdvh4nxv72dd6ikm37brgb2wc1yaxsznyavjwr53awjbbzm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBhbmVsOiB0cmFuc3BhcmVudCwgc3RyYWlnaHQsIHJlZHVjZWQgaGVpZ2h0LCBub24tYm9sZCBmb250cy4gTm90aGluZyBtb3JlLlxuXG5Mb29rcyByb3VnaGx5IGxpa2UgVWJ1bnR1IHNlc3Npb24ncyBwYW5lbCAoWWFydSkuIFlvdSBjYW4gZWFzaWx5IG1vZGlmeSB0aGUgdHJhbnNwYXJlbmN5IGxldmVsIHRocm91Z2ggdGhlIENTUyBzdHlsZXNoZWV0IGluIHRoZSBleHRlbnNpb25zJ3MgZm9sZGVyLiIsCiAgIm5hbWUiOiAiVWJ1bnR1LWxpa2UgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
 , {"uuid": "mounter@heartmire", "name": "Mounter", "pname": "mounter", "description": "Mount and umount fstab entries with 'noauto,user' options.\n\n/etc/fstab example that will be picked up and listed by the extension:\n192.168.1.1:/mnt/data/users/martin  /mnt/server-martin  nfs  noauto,user,noatime,rw  0  0\n\nToggle the menu with the shortcut: CTRL + ALT + m", "link": "https://extensions.gnome.org/extension/2666/mounter/", "shell_version_map": {"38": {"version": "5", "sha256": "13nxnpiv8f9bzxqgv3iinb92ib9zk3jmmx273acs25lcjcw8v6l0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdW50IGFuZCB1bW91bnQgZnN0YWIgZW50cmllcyB3aXRoICdub2F1dG8sdXNlcicgb3B0aW9ucy5cblxuL2V0Yy9mc3RhYiBleGFtcGxlIHRoYXQgd2lsbCBiZSBwaWNrZWQgdXAgYW5kIGxpc3RlZCBieSB0aGUgZXh0ZW5zaW9uOlxuMTkyLjE2OC4xLjE6L21udC9kYXRhL3VzZXJzL21hcnRpbiAgL21udC9zZXJ2ZXItbWFydGluICBuZnMgIG5vYXV0byx1c2VyLG5vYXRpbWUscncgIDAgIDBcblxuVG9nZ2xlIHRoZSBtZW51IHdpdGggdGhlIHNob3J0Y3V0OiBDVFJMICsgQUxUICsgbSIsCiAgIm5hbWUiOiAiTW91bnRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tb3VudGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tYXJ0aW5oamFydG15ci9nbm9tZS1zaGVsbC1leHRlbnNpb24tbW91bnRlciIsCiAgInV1aWQiOiAibW91bnRlckBoZWFydG1pcmUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "13nxnpiv8f9bzxqgv3iinb92ib9zk3jmmx273acs25lcjcw8v6l0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdW50IGFuZCB1bW91bnQgZnN0YWIgZW50cmllcyB3aXRoICdub2F1dG8sdXNlcicgb3B0aW9ucy5cblxuL2V0Yy9mc3RhYiBleGFtcGxlIHRoYXQgd2lsbCBiZSBwaWNrZWQgdXAgYW5kIGxpc3RlZCBieSB0aGUgZXh0ZW5zaW9uOlxuMTkyLjE2OC4xLjE6L21udC9kYXRhL3VzZXJzL21hcnRpbiAgL21udC9zZXJ2ZXItbWFydGluICBuZnMgIG5vYXV0byx1c2VyLG5vYXRpbWUscncgIDAgIDBcblxuVG9nZ2xlIHRoZSBtZW51IHdpdGggdGhlIHNob3J0Y3V0OiBDVFJMICsgQUxUICsgbSIsCiAgIm5hbWUiOiAiTW91bnRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tb3VudGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tYXJ0aW5oamFydG15ci9nbm9tZS1zaGVsbC1leHRlbnNpb24tbW91bnRlciIsCiAgInV1aWQiOiAibW91bnRlckBoZWFydG1pcmUiLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "13nxnpiv8f9bzxqgv3iinb92ib9zk3jmmx273acs25lcjcw8v6l0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdW50IGFuZCB1bW91bnQgZnN0YWIgZW50cmllcyB3aXRoICdub2F1dG8sdXNlcicgb3B0aW9ucy5cblxuL2V0Yy9mc3RhYiBleGFtcGxlIHRoYXQgd2lsbCBiZSBwaWNrZWQgdXAgYW5kIGxpc3RlZCBieSB0aGUgZXh0ZW5zaW9uOlxuMTkyLjE2OC4xLjE6L21udC9kYXRhL3VzZXJzL21hcnRpbiAgL21udC9zZXJ2ZXItbWFydGluICBuZnMgIG5vYXV0byx1c2VyLG5vYXRpbWUscncgIDAgIDBcblxuVG9nZ2xlIHRoZSBtZW51IHdpdGggdGhlIHNob3J0Y3V0OiBDVFJMICsgQUxUICsgbSIsCiAgIm5hbWUiOiAiTW91bnRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tb3VudGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9tYXJ0aW5oamFydG15ci9nbm9tZS1zaGVsbC1leHRlbnNpb24tbW91bnRlciIsCiAgInV1aWQiOiAibW91bnRlckBoZWFydG1pcmUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "simple-task-bar@fthx", "name": "Simple Task Bar", "pname": "simple-task-bar", "description": "*** Superseeded by https://extensions.gnome.org/extension/4000/babar. ***\n\nTask bar in the top panel, tasks on all workspaces.\n\n Basic actions, nothing more : activate, minimize, switch, per-desktop overview. Some settings through GNOME Extensions manager, thanks @leleat.\n\n This extension can hide the Activities button and makes the Places Menu extension's label become a folder icon.\n\n This extension is *light* and should *not interfere* with GNOME Shell behaviour+logic. If you want more, please consider installing Dash to Panel.", "link": "https://extensions.gnome.org/extension/2672/simple-task-bar/", "shell_version_map": {"38": {"version": "33", "sha256": "0rsvfymmnljqikarihmgs2fdi14pclfdhwrsz06zxzxd6nvmj4x1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIioqKiBTdXBlcnNlZWRlZCBieSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80MDAwL2JhYmFyLiAqKipcblxuVGFzayBiYXIgaW4gdGhlIHRvcCBwYW5lbCwgdGFza3Mgb24gYWxsIHdvcmtzcGFjZXMuXG5cbiBCYXNpYyBhY3Rpb25zLCBub3RoaW5nIG1vcmUgOiBhY3RpdmF0ZSwgbWluaW1pemUsIHN3aXRjaCwgcGVyLWRlc2t0b3Agb3ZlcnZpZXcuIFNvbWUgc2V0dGluZ3MgdGhyb3VnaCBHTk9NRSBFeHRlbnNpb25zIG1hbmFnZXIsIHRoYW5rcyBAbGVsZWF0LlxuXG4gVGhpcyBleHRlbnNpb24gY2FuIGhpZGUgdGhlIEFjdGl2aXRpZXMgYnV0dG9uIGFuZCBtYWtlcyB0aGUgUGxhY2VzIE1lbnUgZXh0ZW5zaW9uJ3MgbGFiZWwgYmVjb21lIGEgZm9sZGVyIGljb24uXG5cbiBUaGlzIGV4dGVuc2lvbiBpcyAqbGlnaHQqIGFuZCBzaG91bGQgKm5vdCBpbnRlcmZlcmUqIHdpdGggR05PTUUgU2hlbGwgYmVoYXZpb3VyK2xvZ2ljLiBJZiB5b3Ugd2FudCBtb3JlLCBwbGVhc2UgY29uc2lkZXIgaW5zdGFsbGluZyBEYXNoIHRvIFBhbmVsLiIsCiAgIm5hbWUiOiAiU2ltcGxlIFRhc2sgQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9zaW1wbGUtdGFzay1iYXIiLAogICJ1dWlkIjogInNpbXBsZS10YXNrLWJhckBmdGh4IiwKICAidmVyc2lvbiI6IDMzCn0="}}}
-, {"uuid": "minimize-shelf@etenil", "name": "Minimize Shelf", "pname": "minimize-shelf", "description": "Minimize shelf in the top panel, with minimized windows of the current workspace.\n\n No settings but you can easily play around with CSS file. This extension is light and should not interfere with GNOME Shell behaviour+logic.", "link": "https://extensions.gnome.org/extension/2735/minimize-shelf/", "shell_version_map": {"40": {"version": "5", "sha256": "1jbxdy3wq2863zbzf7qipfnlqdxqqkkkp4cw49irqcdargjwxvzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIHNoZWxmIGluIHRoZSB0b3AgcGFuZWwsIHdpdGggbWluaW1pemVkIHdpbmRvd3Mgb2YgdGhlIGN1cnJlbnQgd29ya3NwYWNlLlxuXG4gTm8gc2V0dGluZ3MgYnV0IHlvdSBjYW4gZWFzaWx5IHBsYXkgYXJvdW5kIHdpdGggQ1NTIGZpbGUuIFRoaXMgZXh0ZW5zaW9uIGlzIGxpZ2h0IGFuZCBzaG91bGQgbm90IGludGVyZmVyZSB3aXRoIEdOT01FIFNoZWxsIGJlaGF2aW91citsb2dpYy4iLAogICJuYW1lIjogIk1pbmltaXplIFNoZWxmIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9FdGVuaWwvbWluaW1pemUtc2hlbGYiLAogICJ1dWlkIjogIm1pbmltaXplLXNoZWxmQGV0ZW5pbCIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1jbxdy3wq2863zbzf7qipfnlqdxqqkkkp4cw49irqcdargjwxvzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIHNoZWxmIGluIHRoZSB0b3AgcGFuZWwsIHdpdGggbWluaW1pemVkIHdpbmRvd3Mgb2YgdGhlIGN1cnJlbnQgd29ya3NwYWNlLlxuXG4gTm8gc2V0dGluZ3MgYnV0IHlvdSBjYW4gZWFzaWx5IHBsYXkgYXJvdW5kIHdpdGggQ1NTIGZpbGUuIFRoaXMgZXh0ZW5zaW9uIGlzIGxpZ2h0IGFuZCBzaG91bGQgbm90IGludGVyZmVyZSB3aXRoIEdOT01FIFNoZWxsIGJlaGF2aW91citsb2dpYy4iLAogICJuYW1lIjogIk1pbmltaXplIFNoZWxmIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9FdGVuaWwvbWluaW1pemUtc2hlbGYiLAogICJ1dWlkIjogIm1pbmltaXplLXNoZWxmQGV0ZW5pbCIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"uuid": "minimize-shelf@etenil", "name": "Minimize Shelf", "pname": "minimize-shelf", "description": "Minimize shelf in the top panel, with minimized windows of the current workspace.\n\n No settings but you can easily play around with CSS file. This extension is light and should not interfere with GNOME Shell behaviour+logic.", "link": "https://extensions.gnome.org/extension/2735/minimize-shelf/", "shell_version_map": {"40": {"version": "5", "sha256": "1is1nfpfwriqqraxgfsrg78v7cg5f9xddnkh7yiyfb14ih9qwwzp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIHNoZWxmIGluIHRoZSB0b3AgcGFuZWwsIHdpdGggbWluaW1pemVkIHdpbmRvd3Mgb2YgdGhlIGN1cnJlbnQgd29ya3NwYWNlLlxuXG4gTm8gc2V0dGluZ3MgYnV0IHlvdSBjYW4gZWFzaWx5IHBsYXkgYXJvdW5kIHdpdGggQ1NTIGZpbGUuIFRoaXMgZXh0ZW5zaW9uIGlzIGxpZ2h0IGFuZCBzaG91bGQgbm90IGludGVyZmVyZSB3aXRoIEdOT01FIFNoZWxsIGJlaGF2aW91citsb2dpYy4iLAogICJuYW1lIjogIk1pbmltaXplIFNoZWxmIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iYXRpc3Rlby9taW5pbWl6ZS1zaGVsZiIsCiAgInV1aWQiOiAibWluaW1pemUtc2hlbGZAZXRlbmlsIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "1is1nfpfwriqqraxgfsrg78v7cg5f9xddnkh7yiyfb14ih9qwwzp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIHNoZWxmIGluIHRoZSB0b3AgcGFuZWwsIHdpdGggbWluaW1pemVkIHdpbmRvd3Mgb2YgdGhlIGN1cnJlbnQgd29ya3NwYWNlLlxuXG4gTm8gc2V0dGluZ3MgYnV0IHlvdSBjYW4gZWFzaWx5IHBsYXkgYXJvdW5kIHdpdGggQ1NTIGZpbGUuIFRoaXMgZXh0ZW5zaW9uIGlzIGxpZ2h0IGFuZCBzaG91bGQgbm90IGludGVyZmVyZSB3aXRoIEdOT01FIFNoZWxsIGJlaGF2aW91citsb2dpYy4iLAogICJuYW1lIjogIk1pbmltaXplIFNoZWxmIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iYXRpc3Rlby9taW5pbWl6ZS1zaGVsZiIsCiAgInV1aWQiOiAibWluaW1pemUtc2hlbGZAZXRlbmlsIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "remove-alt-tab-delay@daase.net", "name": "Remove Alt+Tab Delay v2", "pname": "remove-alttab-delay-v2", "description": "Another extension that removes the 0.15 second popup delay in switcher pop-ups. This extension is actively maintained. It fixes at least this known issue: https://gitlab.gnome.org/GNOME/mutter/issues/888.", "link": "https://extensions.gnome.org/extension/2741/remove-alttab-delay-v2/", "shell_version_map": {"38": {"version": "6", "sha256": "02s82kndphmhx5vxldh08ig04jzhyg4dw73fi2j7vxs1hg9drv9a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uIHRoYXQgcmVtb3ZlcyB0aGUgMC4xNSBzZWNvbmQgcG9wdXAgZGVsYXkgaW4gc3dpdGNoZXIgcG9wLXVwcy4gVGhpcyBleHRlbnNpb24gaXMgYWN0aXZlbHkgbWFpbnRhaW5lZC4gSXQgZml4ZXMgYXQgbGVhc3QgdGhpcyBrbm93biBpc3N1ZTogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL211dHRlci9pc3N1ZXMvODg4LiIsCiAgIm5hbWUiOiAiUmVtb3ZlIEFsdCtUYWIgRGVsYXkgdjIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Jqb2VybkRhYXNlL3JlbW92ZS1hbHQtdGFiLWRlbGF5IiwKICAidXVpZCI6ICJyZW1vdmUtYWx0LXRhYi1kZWxheUBkYWFzZS5uZXQiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "02s82kndphmhx5vxldh08ig04jzhyg4dw73fi2j7vxs1hg9drv9a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uIHRoYXQgcmVtb3ZlcyB0aGUgMC4xNSBzZWNvbmQgcG9wdXAgZGVsYXkgaW4gc3dpdGNoZXIgcG9wLXVwcy4gVGhpcyBleHRlbnNpb24gaXMgYWN0aXZlbHkgbWFpbnRhaW5lZC4gSXQgZml4ZXMgYXQgbGVhc3QgdGhpcyBrbm93biBpc3N1ZTogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL211dHRlci9pc3N1ZXMvODg4LiIsCiAgIm5hbWUiOiAiUmVtb3ZlIEFsdCtUYWIgRGVsYXkgdjIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Jqb2VybkRhYXNlL3JlbW92ZS1hbHQtdGFiLWRlbGF5IiwKICAidXVpZCI6ICJyZW1vdmUtYWx0LXRhYi1kZWxheUBkYWFzZS5uZXQiLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "02s82kndphmhx5vxldh08ig04jzhyg4dw73fi2j7vxs1hg9drv9a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uIHRoYXQgcmVtb3ZlcyB0aGUgMC4xNSBzZWNvbmQgcG9wdXAgZGVsYXkgaW4gc3dpdGNoZXIgcG9wLXVwcy4gVGhpcyBleHRlbnNpb24gaXMgYWN0aXZlbHkgbWFpbnRhaW5lZC4gSXQgZml4ZXMgYXQgbGVhc3QgdGhpcyBrbm93biBpc3N1ZTogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL211dHRlci9pc3N1ZXMvODg4LiIsCiAgIm5hbWUiOiAiUmVtb3ZlIEFsdCtUYWIgRGVsYXkgdjIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Jqb2VybkRhYXNlL3JlbW92ZS1hbHQtdGFiLWRlbGF5IiwKICAidXVpZCI6ICJyZW1vdmUtYWx0LXRhYi1kZWxheUBkYWFzZS5uZXQiLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "corona-tracker@lachhebo.github.io", "name": "corona-tracker", "pname": "corona-tracker", "description": "A GNOME Shell extension (GNOME Panel applet) to notify you every day with information about the COVID-19 virus spread.", "link": "https://extensions.gnome.org/extension/2767/corona-tracker/", "shell_version_map": {"38": {"version": "14", "sha256": "12mnlkh2l23wdx6m28x332lhqd0yq16zhfnmdhk6bzma7wq73sxa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIG5vdGlmeSB5b3UgZXZlcnkgZGF5IHdpdGggaW5mb3JtYXRpb24gYWJvdXQgdGhlIENPVklELTE5IHZpcnVzIHNwcmVhZC4iLAogICJuYW1lIjogImNvcm9uYS10cmFja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xhY2hoZWJvL2Nvcm9uYS10cmFja2VyIiwKICAidXVpZCI6ICJjb3JvbmEtdHJhY2tlckBsYWNoaGViby5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "14", "sha256": "12mnlkh2l23wdx6m28x332lhqd0yq16zhfnmdhk6bzma7wq73sxa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIG5vdGlmeSB5b3UgZXZlcnkgZGF5IHdpdGggaW5mb3JtYXRpb24gYWJvdXQgdGhlIENPVklELTE5IHZpcnVzIHNwcmVhZC4iLAogICJuYW1lIjogImNvcm9uYS10cmFja2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xhY2hoZWJvL2Nvcm9uYS10cmFja2VyIiwKICAidXVpZCI6ICJjb3JvbmEtdHJhY2tlckBsYWNoaGViby5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
 , {"uuid": "gnome-trash@gnome-trash.b00f.gitlab.com", "name": "Gnome Trash - UNMAINTAINED", "pname": "gnome-trash", "description": "MOVED HERE:\n\nhttps://github.com/b00f/gnome-trash", "link": "https://extensions.gnome.org/extension/2773/gnome-trash/", "shell_version_map": {"38": {"version": "13", "sha256": "1z7da74nvl4wvy6ckv55xkl3sc5qzcv6lz5k6bdfa0xcshifhl6h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1PVkVEIEhFUkU6XG5cbmh0dHBzOi8vZ2l0aHViLmNvbS9iMDBmL2dub21lLXRyYXNoIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtdHJhc2giLAogICJuYW1lIjogIkdub21lIFRyYXNoIC0gVU5NQUlOVEFJTkVEIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYjAwZi9nbm9tZS10cmFzaCIsCiAgInV1aWQiOiAiZ25vbWUtdHJhc2hAZ25vbWUtdHJhc2guYjAwZi5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
@@ -288,22 +290,22 @@
 , {"uuid": "activities_icons@fawtytoo", "name": "Activities Icons", "pname": "activities-icons", "description": "The Activities button becomes 2 icons for selecting either Applications or Workspaces in the overview. Selecting the same view again will hide the overview.\nScrolling on the icons allows switching windows on a workspace or cycling through the Workspaces.", "link": "https://extensions.gnome.org/extension/2872/activities-icons/", "shell_version_map": {"38": {"version": "7", "sha256": "0f3h4cwkfx0r0l0fd2yvg7g8hj2lf5nhl6kan9p2p9dsn2sdnlvv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBiZWNvbWVzIDIgaWNvbnMgZm9yIHNlbGVjdGluZyBlaXRoZXIgQXBwbGljYXRpb25zIG9yIFdvcmtzcGFjZXMgaW4gdGhlIG92ZXJ2aWV3LiBTZWxlY3RpbmcgdGhlIHNhbWUgdmlldyBhZ2FpbiB3aWxsIGhpZGUgdGhlIG92ZXJ2aWV3LlxuU2Nyb2xsaW5nIG9uIHRoZSBpY29ucyBhbGxvd3Mgc3dpdGNoaW5nIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2Ugb3IgY3ljbGluZyB0aHJvdWdoIHRoZSBXb3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mYXd0eXRvby9hY3Rpdml0aWVzLWljb25zIiwKICAidXVpZCI6ICJhY3Rpdml0aWVzX2ljb25zQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "0f3h4cwkfx0r0l0fd2yvg7g8hj2lf5nhl6kan9p2p9dsn2sdnlvv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBiZWNvbWVzIDIgaWNvbnMgZm9yIHNlbGVjdGluZyBlaXRoZXIgQXBwbGljYXRpb25zIG9yIFdvcmtzcGFjZXMgaW4gdGhlIG92ZXJ2aWV3LiBTZWxlY3RpbmcgdGhlIHNhbWUgdmlldyBhZ2FpbiB3aWxsIGhpZGUgdGhlIG92ZXJ2aWV3LlxuU2Nyb2xsaW5nIG9uIHRoZSBpY29ucyBhbGxvd3Mgc3dpdGNoaW5nIHdpbmRvd3Mgb24gYSB3b3Jrc3BhY2Ugb3IgY3ljbGluZyB0aHJvdWdoIHRoZSBXb3Jrc3BhY2VzLiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBJY29ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mYXd0eXRvby9hY3Rpdml0aWVzLWljb25zIiwKICAidXVpZCI6ICJhY3Rpdml0aWVzX2ljb25zQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
 , {"uuid": "transparent_panel@fawtytoo", "name": "Transparent Top Panel", "pname": "transparent-top-panel", "description": "Totally transparent top panel in the Overview.\nAlso adds drop shadows to text and icons for those using GS 3.38.", "link": "https://extensions.gnome.org/extension/2878/transparent-top-panel/", "shell_version_map": {"38": {"version": "9", "sha256": "0samdl8ig95hin9xjc41pzh648s97cqs6sb6qmjzkhnd35cx0k9s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvdGFsbHkgdHJhbnNwYXJlbnQgdG9wIHBhbmVsIGluIHRoZSBPdmVydmlldy5cbkFsc28gYWRkcyBkcm9wIHNoYWRvd3MgdG8gdGV4dCBhbmQgaWNvbnMgZm9yIHRob3NlIHVzaW5nIEdTIDMuMzguIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRyYW5zcGFyZW50X3BhbmVsQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "0samdl8ig95hin9xjc41pzh648s97cqs6sb6qmjzkhnd35cx0k9s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvdGFsbHkgdHJhbnNwYXJlbnQgdG9wIHBhbmVsIGluIHRoZSBPdmVydmlldy5cbkFsc28gYWRkcyBkcm9wIHNoYWRvd3MgdG8gdGV4dCBhbmQgaWNvbnMgZm9yIHRob3NlIHVzaW5nIEdTIDMuMzguIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRyYW5zcGFyZW50X3BhbmVsQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
 , {"uuid": "overview_full_bright@fawtytoo", "name": "Overview Full Bright", "pname": "overview-full-bright", "description": "Shows the Overview in full brightness and without the vignette.\n\nNOTE: This will not be developed beyond GS 3.38.", "link": "https://extensions.gnome.org/extension/2884/overview-full-bright/", "shell_version_map": {"38": {"version": "4", "sha256": "1dm5h1kl40lsly9a80ch4mfi67ppwd7dgg4idx8vrcx5iksnzxil", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSBPdmVydmlldyBpbiBmdWxsIGJyaWdodG5lc3MgYW5kIHdpdGhvdXQgdGhlIHZpZ25ldHRlLlxuXG5OT1RFOiBUaGlzIHdpbGwgbm90IGJlIGRldmVsb3BlZCBiZXlvbmQgR1MgMy4zOC4iLAogICJuYW1lIjogIk92ZXJ2aWV3IEZ1bGwgQnJpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm92ZXJ2aWV3X2Z1bGxfYnJpZ2h0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "trayIconsReloaded@selfmade.pl", "name": "Tray Icons: Reloaded", "pname": "tray-icons-reloaded", "description": "Tray Icons Reloaded is a GNOME Shell extension which bring back Tray Icons to top panel, with additional features.\n\n>>> Read compatibility note on GitHub there is also bug reporting <<<", "link": "https://extensions.gnome.org/extension/2890/tray-icons-reloaded/", "shell_version_map": {"38": {"version": "11", "sha256": "19icczlk4j8a1fdl19lqzinx9l82lwnvj5q8xaazvgm4yicxmh4b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvVHJheS1JY29ucy1SZWxvYWRlZCIsCiAgInV1aWQiOiAidHJheUljb25zUmVsb2FkZWRAc2VsZm1hZGUucGwiLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "40": {"version": "16", "sha256": "0bwpxfc2wjvv254fnr05q3cvs1r0jw0fdj7n8b20vdwry48n30vb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAib3Blbi1ibGFja2xpc3QiOiBbCiAgICAiRWxlY3Ryb24iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01hcnRpblBML1RyYXktSWNvbnMtUmVsb2FkZWQiLAogICJ1dWlkIjogInRyYXlJY29uc1JlbG9hZGVkQHNlbGZtYWRlLnBsIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "41": {"version": "17", "sha256": "0m4krvi97m3g3ianm5y2vggjpszh96h66vgcji5dmy755f1rmrlr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAib3Blbi1ibGFja2xpc3QiOiBbCiAgICAiRWxlY3Ryb24iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01hcnRpblBML1RyYXktSWNvbnMtUmVsb2FkZWQiLAogICJ1dWlkIjogInRyYXlJY29uc1JlbG9hZGVkQHNlbGZtYWRlLnBsIiwKICAidmVyc2lvbiI6IDE3Cn0="}}}
+, {"uuid": "trayIconsReloaded@selfmade.pl", "name": "Tray Icons: Reloaded", "pname": "tray-icons-reloaded", "description": "Tray Icons Reloaded is a GNOME Shell extension which bring back Tray Icons to top panel, with additional features.\n\n>>> Read compatibility note on GitHub there is also bug reporting <<<", "link": "https://extensions.gnome.org/extension/2890/tray-icons-reloaded/", "shell_version_map": {"38": {"version": "11", "sha256": "19icczlk4j8a1fdl19lqzinx9l82lwnvj5q8xaazvgm4yicxmh4b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvVHJheS1JY29ucy1SZWxvYWRlZCIsCiAgInV1aWQiOiAidHJheUljb25zUmVsb2FkZWRAc2VsZm1hZGUucGwiLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "40": {"version": "16", "sha256": "0bwpxfc2wjvv254fnr05q3cvs1r0jw0fdj7n8b20vdwry48n30vb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAib3Blbi1ibGFja2xpc3QiOiBbCiAgICAiRWxlY3Ryb24iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRyYXlJY29uc1JlbG9hZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01hcnRpblBML1RyYXktSWNvbnMtUmVsb2FkZWQiLAogICJ1dWlkIjogInRyYXlJY29uc1JlbG9hZGVkQHNlbGZtYWRlLnBsIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "41": {"version": "19", "sha256": "00sgwpkfwfaqjf58j3i3w4brinmrc6x0dr6pf06vbp8vpzf51vdc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYXkgSWNvbnMgUmVsb2FkZWQgaXMgYSBHTk9NRSBTaGVsbCBleHRlbnNpb24gd2hpY2ggYnJpbmcgYmFjayBUcmF5IEljb25zIHRvIHRvcCBwYW5lbCwgd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuXG4+Pj4gUmVhZCBjb21wYXRpYmlsaXR5IG5vdGUgb24gR2l0SHViIHRoZXJlIGlzIGFsc28gYnVnIHJlcG9ydGluZyA8PDwiLAogICJuYW1lIjogIlRyYXkgSWNvbnM6IFJlbG9hZGVkIiwKICAib3Blbi1ibGFja2xpc3QiOiBbCiAgICAiRWxlY3Ryb24iLAogICAgIllhZCIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudHJheUljb25zUmVsb2FkZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvVHJheS1JY29ucy1SZWxvYWRlZCIsCiAgInV1aWQiOiAidHJheUljb25zUmVsb2FkZWRAc2VsZm1hZGUucGwiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
 , {"uuid": "messagingmenu@lauinger-clan.de", "name": "Messaging Menu", "pname": "messaging-menu", "description": "A Messaging Menu for the Gnome Shell. All Email and Chat Applications in one Place.", "link": "https://extensions.gnome.org/extension/2896/messaging-menu/", "shell_version_map": {"38": {"version": "4", "sha256": "1xa0hyvs2aw1z7kg5gcsgh2pjn7b13zhps98j4xpwfiv6zm0sa73", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvbWVzc2FnaW5nbWVudSIsCiAgInV1aWQiOiAibWVzc2FnaW5nbWVudUBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "8", "sha256": "1pxf5rk8nqm6scm38np546g5z9xlnf2nghzbayrxk91b67qq6znv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "1pxf5rk8nqm6scm38np546g5z9xlnf2nghzbayrxk91b67qq6znv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTWVzc2FnaW5nIE1lbnUgZm9yIHRoZSBHbm9tZSBTaGVsbC4gQWxsIEVtYWlsIGFuZCBDaGF0IEFwcGxpY2F0aW9ucyBpbiBvbmUgUGxhY2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWVzc2FnaW5nIE1lbnUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAic2luaXN0ZXJzdHVmIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lc3NhZ2luZ21lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0NocmlzTGF1aW5nZXI3Ny9tZXNzYWdpbmdtZW51IiwKICAidXVpZCI6ICJtZXNzYWdpbmdtZW51QGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"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 user/aggregate menu. Originally created by XES.\n\nv10: fix for older versions, i havent tested this on anything below 3.10, v9: minor cleanup, now has an icon for the main menu entry. \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 (3.8 replace Settings code credit IsacDaavid)\n\nCredit to @peaceseeker for updating this with a working repo, i do wish it could have been pushed to me but my blank repo was deleted as it was stale, i failed to push to git before going back to work around 1.5 years ago and i hadn't been active enough to notice anything other than emails(these things help people!)", "link": "https://extensions.gnome.org/extension/2899/settingscenter/", "shell_version_map": {"38": {"version": "2", "sha256": "150x8xp9xm28scw5lcmxq7xcfa17wbzy2y381xsv0mv0b03kvyqy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuNS40IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9DaHJpc0xhdWluZ2VyNzcvWEVTLVNldHRpbmdzLUNlbnRlci1FeHRlbnNpb24iLAogICJ1dWlkIjogIlNldHRpbmdzQ2VudGVyQGxhdWluZ2VyLWNsYW4uZGUiLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "6", "sha256": "0vbvkvrx9yd2jci452m1wdqhx1d1a858kgg45abqds8d7vdmlph1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L1hFUy1TZXR0aW5ncy1DZW50ZXItRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJTZXR0aW5nc0NlbnRlckBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "0vbvkvrx9yd2jci452m1wdqhx1d1a858kgg45abqds8d7vdmlph1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldHRpbmdzIENlbnRlciBpcyBhIGN1c3RvbWl6YWJsZSBkcm9wLWRvd24gbWVudSBmb3IgcXVpY2tseSBsYXVuY2hpbmcgZnJlcXVlbnRseSB1c2VkIGFwcHMgaW4gR25vbWU6U2hlbGwgdmlhIHRoZSB1c2VyL2FnZ3JlZ2F0ZSBtZW51LiBPcmlnaW5hbGx5IGNyZWF0ZWQgYnkgWEVTLlxuXG52MTA6IGZpeCBmb3Igb2xkZXIgdmVyc2lvbnMsIGkgaGF2ZW50IHRlc3RlZCB0aGlzIG9uIGFueXRoaW5nIGJlbG93IDMuMTAsIHY5OiBtaW5vciBjbGVhbnVwLCBub3cgaGFzIGFuIGljb24gZm9yIHRoZSBtYWluIG1lbnUgZW50cnkuIFxuXG5TZXR0aW5ncyBzaG9ydGN1dHMgOiBnbm9tZS10d2Vhay10b29sLCBkY29uZi1lZGl0b3IsIGdjb25mLWVkaXRvciwgZ25vbWUtc2Vzc2lvbi1wcm9wZXJ0aWVzLCBnbm9tZS1zaGVsbC1leHRlbnNpb24tcHJlZnMsIHNlYWhvcnNlIGFuZCBudmlkaWEtc2V0dGluZ3MuIFlvdSBjYW4gYWRkIHlvdXIgb3duXG5cbk9yaWdpbmFsIHNvdXJjZSA6IGh0dHA6Ly9zdm4ueGVzbmV0LmZyL2dub21lZXh0ZW5zaW9ucyAoMy44IHJlcGxhY2UgU2V0dGluZ3MgY29kZSBjcmVkaXQgSXNhY0RhYXZpZClcblxuQ3JlZGl0IHRvIEBwZWFjZXNlZWtlciBmb3IgdXBkYXRpbmcgdGhpcyB3aXRoIGEgd29ya2luZyByZXBvLCBpIGRvIHdpc2ggaXQgY291bGQgaGF2ZSBiZWVuIHB1c2hlZCB0byBtZSBidXQgbXkgYmxhbmsgcmVwbyB3YXMgZGVsZXRlZCBhcyBpdCB3YXMgc3RhbGUsIGkgZmFpbGVkIHRvIHB1c2ggdG8gZ2l0IGJlZm9yZSBnb2luZyBiYWNrIHRvIHdvcmsgYXJvdW5kIDEuNSB5ZWFycyBhZ28gYW5kIGkgaGFkbid0IGJlZW4gYWN0aXZlIGVub3VnaCB0byBub3RpY2UgYW55dGhpbmcgb3RoZXIgdGhhbiBlbWFpbHModGhlc2UgdGhpbmdzIGhlbHAgcGVvcGxlISkiLAogICJsb2NhbGUiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlNldHRpbmdzQ2VudGVyIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIlhlcywgbDMwMGx2bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQ2hyaXNMYXVpbmdlcjc3L1hFUy1TZXR0aW5ncy1DZW50ZXItRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJTZXR0aW5nc0NlbnRlckBsYXVpbmdlci1jbGFuLmRlIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"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"}}}
 , {"uuid": "optimus-manager-indicator@andr3slelouch.github.com", "name": "Optimus Manager Indicator", "pname": "optimus-manager-indicator", "description": "Intel/Hybrid/NVIDIA GPU Switch Note: The GPU mode activated doesn't show up in the options, by example: When you turn on the PC you are gonna be in Intel mode so Intel option is not gonna be shown. Note: Optimus Manager Indicator is made(for the moment) for Arch based distributions with optimus-manager.", "link": "https://extensions.gnome.org/extension/2908/optimus-manager-indicator/", "shell_version_map": {"38": {"version": "5", "sha256": "1mqgnwfdbd2460ngkkq6wiswvb9bvwgm5n32j7jgvn1xhb3mqn58", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVsL0h5YnJpZC9OVklESUEgR1BVIFN3aXRjaCBOb3RlOiBUaGUgR1BVIG1vZGUgYWN0aXZhdGVkIGRvZXNuJ3Qgc2hvdyB1cCBpbiB0aGUgb3B0aW9ucywgYnkgZXhhbXBsZTogV2hlbiB5b3UgdHVybiBvbiB0aGUgUEMgeW91IGFyZSBnb25uYSBiZSBpbiBJbnRlbCBtb2RlIHNvIEludGVsIG9wdGlvbiBpcyBub3QgZ29ubmEgYmUgc2hvd24uIE5vdGU6IE9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IgaXMgbWFkZShmb3IgdGhlIG1vbWVudCkgZm9yIEFyY2ggYmFzZWQgZGlzdHJpYnV0aW9ucyB3aXRoIG9wdGltdXMtbWFuYWdlci4iLAogICJuYW1lIjogIk9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyM3NsZWxvdWNoL09wdGltdXMtTWFuYWdlci1JbmRpY2F0b3IiLAogICJ1dWlkIjogIm9wdGltdXMtbWFuYWdlci1pbmRpY2F0b3JAYW5kcjNzbGVsb3VjaC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "1mqgnwfdbd2460ngkkq6wiswvb9bvwgm5n32j7jgvn1xhb3mqn58", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVsL0h5YnJpZC9OVklESUEgR1BVIFN3aXRjaCBOb3RlOiBUaGUgR1BVIG1vZGUgYWN0aXZhdGVkIGRvZXNuJ3Qgc2hvdyB1cCBpbiB0aGUgb3B0aW9ucywgYnkgZXhhbXBsZTogV2hlbiB5b3UgdHVybiBvbiB0aGUgUEMgeW91IGFyZSBnb25uYSBiZSBpbiBJbnRlbCBtb2RlIHNvIEludGVsIG9wdGlvbiBpcyBub3QgZ29ubmEgYmUgc2hvd24uIE5vdGU6IE9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IgaXMgbWFkZShmb3IgdGhlIG1vbWVudCkgZm9yIEFyY2ggYmFzZWQgZGlzdHJpYnV0aW9ucyB3aXRoIG9wdGltdXMtbWFuYWdlci4iLAogICJuYW1lIjogIk9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyM3NsZWxvdWNoL09wdGltdXMtTWFuYWdlci1JbmRpY2F0b3IiLAogICJ1dWlkIjogIm9wdGltdXMtbWFuYWdlci1pbmRpY2F0b3JAYW5kcjNzbGVsb3VjaC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "BringOutSubmenuOfPowerOffLogoutButton@pratap.fastmail.fm", "name": "Bring Out Submenu Of Power Off/Logout Button", "pname": "bring-out-submenu-of-power-offlogout-button", "description": "Bring Out Submenu Of Power Off/Logout Button and Rearrange the Order of System Menu.", "link": "https://extensions.gnome.org/extension/2917/bring-out-submenu-of-power-offlogout-button/", "shell_version_map": {"38": {"version": "22", "sha256": "0iigq5qb4jh8rjc7m8abz4fsqrihppax4czgwhphkc3fyk2r8iym", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvQnJpbmctT3V0LVN1Ym1lbnUtb2YtUG93ZXItT2ZmLUxvZ291dCIsCiAgInV1aWQiOiAiQnJpbmdPdXRTdWJtZW51T2ZQb3dlck9mZkxvZ291dEJ1dHRvbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "24", "sha256": "0mj3w7bn597barirp60isxbhrvwmms4xbpvk7j592yk5dbyidq65", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9CcmluZy1PdXQtU3VibWVudS1vZi1Qb3dlci1PZmYtTG9nb3V0IiwKICAidXVpZCI6ICJCcmluZ091dFN1Ym1lbnVPZlBvd2VyT2ZmTG9nb3V0QnV0dG9uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAyNAp9"}, "41": {"version": "24", "sha256": "0mj3w7bn597barirp60isxbhrvwmms4xbpvk7j592yk5dbyidq65", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9CcmluZy1PdXQtU3VibWVudS1vZi1Qb3dlci1PZmYtTG9nb3V0IiwKICAidXVpZCI6ICJCcmluZ091dFN1Ym1lbnVPZlBvd2VyT2ZmTG9nb3V0QnV0dG9uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAyNAp9"}}}
-, {"uuid": "batterytimepercentagecompact@sagrland.de", "name": "Battery Time (Percentage) Compact", "pname": "battery-time-percentage-compact", "description": "Show the remaining time until fully charged/discharged as well as percentage of battery charge in the panel.", "link": "https://extensions.gnome.org/extension/2929/battery-time-percentage-compact/", "shell_version_map": {"38": {"version": "4", "sha256": "1jv5k6ir968rh8pfrk1bcnddrdmrmx3kfc30zfsdlcpvmc8p03lb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NhR3JMYW5kL2dub21lLXNoZWxsLWJhdHRlcnktdGltZS1wZXJjZW50YWdlLWNvbXBhY3QiLAogICJ1dWlkIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3RAc2FncmxhbmQuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "1jv5k6ir968rh8pfrk1bcnddrdmrmx3kfc30zfsdlcpvmc8p03lb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NhR3JMYW5kL2dub21lLXNoZWxsLWJhdHRlcnktdGltZS1wZXJjZW50YWdlLWNvbXBhY3QiLAogICJ1dWlkIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3RAc2FncmxhbmQuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "batterytimepercentagecompact@sagrland.de", "name": "Battery Time (Percentage) Compact", "pname": "battery-time-percentage-compact", "description": "Shows the remaining time until fully charged/discharged as well as percentage of battery charge in the panel.", "link": "https://extensions.gnome.org/extension/2929/battery-time-percentage-compact/", "shell_version_map": {"38": {"version": "5", "sha256": "1ybq8k2nv1ym6dr9lkimrpbi9fhs2pnrm27382wpfly7qq1nflg9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSByZW1haW5pbmcgdGltZSB1bnRpbCBmdWxseSBjaGFyZ2VkL2Rpc2NoYXJnZWQgYXMgd2VsbCBhcyBwZXJjZW50YWdlIG9mIGJhdHRlcnkgY2hhcmdlIGluIHRoZSBwYW5lbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAibmFtZSI6ICJCYXR0ZXJ5IFRpbWUgKFBlcmNlbnRhZ2UpIENvbXBhY3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2FHckxhbmQvZ25vbWUtc2hlbGwtYmF0dGVyeS10aW1lLXBlcmNlbnRhZ2UtY29tcGFjdCIsCiAgInV1aWQiOiAiYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdEBzYWdybGFuZC5kZSIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "1ybq8k2nv1ym6dr9lkimrpbi9fhs2pnrm27382wpfly7qq1nflg9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSByZW1haW5pbmcgdGltZSB1bnRpbCBmdWxseSBjaGFyZ2VkL2Rpc2NoYXJnZWQgYXMgd2VsbCBhcyBwZXJjZW50YWdlIG9mIGJhdHRlcnkgY2hhcmdlIGluIHRoZSBwYW5lbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAibmFtZSI6ICJCYXR0ZXJ5IFRpbWUgKFBlcmNlbnRhZ2UpIENvbXBhY3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2FHckxhbmQvZ25vbWUtc2hlbGwtYmF0dGVyeS10aW1lLXBlcmNlbnRhZ2UtY29tcGFjdCIsCiAgInV1aWQiOiAiYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdEBzYWdybGFuZC5kZSIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1ybq8k2nv1ym6dr9lkimrpbi9fhs2pnrm27382wpfly7qq1nflg9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHRoZSByZW1haW5pbmcgdGltZSB1bnRpbCBmdWxseSBjaGFyZ2VkL2Rpc2NoYXJnZWQgYXMgd2VsbCBhcyBwZXJjZW50YWdlIG9mIGJhdHRlcnkgY2hhcmdlIGluIHRoZSBwYW5lbC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAibmFtZSI6ICJCYXR0ZXJ5IFRpbWUgKFBlcmNlbnRhZ2UpIENvbXBhY3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2FHckxhbmQvZ25vbWUtc2hlbGwtYmF0dGVyeS10aW1lLXBlcmNlbnRhZ2UtY29tcGFjdCIsCiAgInV1aWQiOiAiYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdEBzYWdybGFuZC5kZSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "executor@raujonas.github.io", "name": "Executor", "pname": "executor", "description": "Execute multiple shell commands periodically with separate intervals and display the output in gnome top bar.", "link": "https://extensions.gnome.org/extension/2932/executor/", "shell_version_map": {"38": {"version": "17", "sha256": "1g24qy5cai3kvl929mhr0hgqmknddbklncmjpj7fabr02fjsbprv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhdWpvbmFzL2V4ZWN1dG9yIiwKICAidXVpZCI6ICJleGVjdXRvckByYXVqb25hcy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "40": {"version": "17", "sha256": "1g24qy5cai3kvl929mhr0hgqmknddbklncmjpj7fabr02fjsbprv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhdWpvbmFzL2V4ZWN1dG9yIiwKICAidXVpZCI6ICJleGVjdXRvckByYXVqb25hcy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "41": {"version": "17", "sha256": "1g24qy5cai3kvl929mhr0hgqmknddbklncmjpj7fabr02fjsbprv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhdWpvbmFzL2V4ZWN1dG9yIiwKICAidXVpZCI6ICJleGVjdXRvckByYXVqb25hcy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
-, {"uuid": "ControlBlurEffectOnLockScreen@pratap.fastmail.fm", "name": "Control Blur Effect On Lock Screen", "pname": "control-blur-effect-on-lock-screen", "description": "Control the Blur Effect On Lock Screen.", "link": "https://extensions.gnome.org/extension/2935/control-blur-effect-on-lock-screen/", "shell_version_map": {"38": {"version": "14", "sha256": "176qxx2zykzzjq2xf8sf1c83r1skaxa2mzmp51v8bq3vbbxp0wij", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9Db250cm9sX0JsdXJfRWZmZWN0X09uX0xvY2tfU2NyZWVuIiwKICAidXVpZCI6ICJDb250cm9sQmx1ckVmZmVjdE9uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "16", "sha256": "11nz4ik3qwp1mb4v309wvmxx8ih4d72f5j3wcnz3xwjav9z2c1m0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL0NvbnRyb2xfQmx1cl9FZmZlY3RfT25fTG9ja19TY3JlZW4iLAogICJ1dWlkIjogIkNvbnRyb2xCbHVyRWZmZWN0T25Mb2NrU2NyZWVuQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAxNgp9"}, "41": {"version": "16", "sha256": "11nz4ik3qwp1mb4v309wvmxx8ih4d72f5j3wcnz3xwjav9z2c1m0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL0NvbnRyb2xfQmx1cl9FZmZlY3RfT25fTG9ja19TY3JlZW4iLAogICJ1dWlkIjogIkNvbnRyb2xCbHVyRWZmZWN0T25Mb2NrU2NyZWVuQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAxNgp9"}}}
-, {"uuid": "compiz-alike-windows-effect@hermes83.github.com", "name": "Compiz alike windows effect", "pname": "compiz-alike-windows-effect", "description": "Wobbly windows effect inspired by the Compiz ones\n\nNB\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)\n\n-----------------------------------\n ALTERNATIVE\n-----------------------------------\nalternative extension to obtain an effect more similar to the original:\nhttps://extensions.gnome.org/extension/3210/compiz-windows-effect/", "link": "https://extensions.gnome.org/extension/2950/compiz-alike-windows-effect/", "shell_version_map": {"38": {"version": "21", "sha256": "1r38ncljvf6l1zddiwsykgcq5yr6k777szpm61rgfj0bjf5gczbb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}, "40": {"version": "21", "sha256": "1r38ncljvf6l1zddiwsykgcq5yr6k777szpm61rgfj0bjf5gczbb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}, "41": {"version": "21", "sha256": "1r38ncljvf6l1zddiwsykgcq5yr6k777szpm61rgfj0bjf5gczbb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}}}
+, {"uuid": "ControlBlurEffectOnLockScreen@pratap.fastmail.fm", "name": "Control Blur Effect On Lock Screen", "pname": "control-blur-effect-on-lock-screen", "description": "Control the Blur Effect On Lock Screen.", "link": "https://extensions.gnome.org/extension/2935/control-blur-effect-on-lock-screen/", "shell_version_map": {"38": {"version": "14", "sha256": "176qxx2zykzzjq2xf8sf1c83r1skaxa2mzmp51v8bq3vbbxp0wij", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9Db250cm9sX0JsdXJfRWZmZWN0X09uX0xvY2tfU2NyZWVuIiwKICAidXVpZCI6ICJDb250cm9sQmx1ckVmZmVjdE9uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "17", "sha256": "1n8442n54hwjx1z4qww5mvb3w5v322d9zc78wm0kx378p4s3shsq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL0NvbnRyb2xfQmx1cl9FZmZlY3RfT25fTG9ja19TY3JlZW4iLAogICJ1dWlkIjogIkNvbnRyb2xCbHVyRWZmZWN0T25Mb2NrU2NyZWVuQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAxNwp9"}, "41": {"version": "17", "sha256": "1n8442n54hwjx1z4qww5mvb3w5v322d9zc78wm0kx378p4s3shsq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL0NvbnRyb2xfQmx1cl9FZmZlY3RfT25fTG9ja19TY3JlZW4iLAogICJ1dWlkIjogIkNvbnRyb2xCbHVyRWZmZWN0T25Mb2NrU2NyZWVuQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAxNwp9"}}}
+, {"uuid": "compiz-alike-windows-effect@hermes83.github.com", "name": "Compiz alike windows effect", "pname": "compiz-alike-windows-effect", "description": "Wobbly windows effect inspired by the Compiz ones\n\nNB\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)\n\n-----------------------------------\n ALTERNATIVE\n-----------------------------------\nalternative extension to obtain an effect more similar to the original:\nhttps://extensions.gnome.org/extension/3210/compiz-windows-effect/", "link": "https://extensions.gnome.org/extension/2950/compiz-alike-windows-effect/", "shell_version_map": {"38": {"version": "22", "sha256": "0zkc9lcirqg224m46jjz2vapfg4lg9x7s0h0kvv57rfmkhrxcgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "22", "sha256": "0zkc9lcirqg224m46jjz2vapfg4lg9x7s0h0kvv57rfmkhrxcgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}, "41": {"version": "22", "sha256": "0zkc9lcirqg224m46jjz2vapfg4lg9x7s0h0kvv57rfmkhrxcgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}}}
 , {"uuid": "light-dict@tuberry.github.io", "name": "Light Dict", "pname": "light-dict", "description": "Lightweight extension for on-the-fly manipulation to primary selections, especially optimized for Dictionary lookups.\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/2959/light-dict/", "shell_version_map": {"38": {"version": "47", "sha256": "1l36l9qmcz7c6i81w5fv083bg01qsgz681c2lan8f87hqdipl4r7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzLlxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsaWdodC1kaWN0IiwKICAibmFtZSI6ICJMaWdodCBEaWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxpZ2h0LWRpY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2xpZ2h0LWRpY3QiLAogICJ1dWlkIjogImxpZ2h0LWRpY3RAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNDcKfQ=="}, "40": {"version": "58", "sha256": "0x3rk3p2vlyd2n23jlmwqfc1akbbjfhyn9w1v44byw1nfc3b0n8z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzLlxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1OAp9"}, "41": {"version": "65", "sha256": "1hjaw62pxrpgismg6dhxqp04qhk1d4xkwlgzymmra7d428qjnxf2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzLlxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2NQp9"}}}
 , {"uuid": "InternetSpeedMeter@alshakib.dev", "name": "Internet Speed Meter", "pname": "internet-speed-meter", "description": "Simple and minimal internet speed meter extension for gnome shell", "link": "https://extensions.gnome.org/extension/2980/internet-speed-meter/", "shell_version_map": {"38": {"version": "9", "sha256": "1m8nlhk6zixbi3i081fcafdp07swfsrqjs2z81ghi7kj93hmj8vk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIGdub21lIHNoZWxsIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxTaGFraWIvSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAidXVpZCI6ICJJbnRlcm5ldFNwZWVkTWV0ZXJAYWxzaGFraWIuZGV2IiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "1m8nlhk6zixbi3i081fcafdp07swfsrqjs2z81ghi7kj93hmj8vk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIGdub21lIHNoZWxsIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxTaGFraWIvSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAidXVpZCI6ICJJbnRlcm5ldFNwZWVkTWV0ZXJAYWxzaGFraWIuZGV2IiwKICAidmVyc2lvbiI6IDkKfQ=="}, "41": {"version": "9", "sha256": "1m8nlhk6zixbi3i081fcafdp07swfsrqjs2z81ghi7kj93hmj8vk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbWluaW1hbCBpbnRlcm5ldCBzcGVlZCBtZXRlciBleHRlbnNpb24gZm9yIGdub21lIHNoZWxsIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQWxTaGFraWIvSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAidXVpZCI6ICJJbnRlcm5ldFNwZWVkTWV0ZXJAYWxzaGFraWIuZGV2IiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
-, {"uuid": "IP-Finder@linxgem33.com", "name": "IP Finder", "pname": "ip-finder", "description": "Displays useful information about your public IP Address\n\nIP Finder displays information about your public IP address, hostname, country, AS Block, as well as  a map tile of your Geolocation and country flag,  this extension is Also Useful for informational purposes to monitor VPN changes and public network IP Addresses.\n\n=====================\nIP Finder can monitor in real time\n=====================\n*Wireguard connections\n*OpenVPN connections\n*IPV4/6 connections\n*Proxy connections\n*VPN vendor applications\n*Manual static IP changes\n\n====================\nIP Finder has added security\n====================\nNewly developed revised code base using open technologies and using API's for Public IP and Map Tile image locations using GET requests over HTTPS for a added layer of encrypted  Security, Please see source code for more details.\n\n====================\nCompatible GNOME shell - 3.36 and newer.", "link": "https://extensions.gnome.org/extension/2983/ip-finder/", "shell_version_map": {"38": {"version": "7", "sha256": "0qnmmg8q6xdv0rg90rzimqzsnggnsq2x8nmz998x59q2ik67kqgq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzXG5cbklQIEZpbmRlciBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBhZGRyZXNzLCBob3N0bmFtZSwgY291bnRyeSwgQVMgQmxvY2ssIGFzIHdlbGwgYXMgIGEgbWFwIHRpbGUgb2YgeW91ciBHZW9sb2NhdGlvbiBhbmQgY291bnRyeSBmbGFnLCAgdGhpcyBleHRlbnNpb24gaXMgQWxzbyBVc2VmdWwgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgdG8gbW9uaXRvciBWUE4gY2hhbmdlcyBhbmQgcHVibGljIG5ldHdvcmsgSVAgQWRkcmVzc2VzLlxuXG49PT09PT09PT09PT09PT09PT09PT1cbklQIEZpbmRlciBjYW4gbW9uaXRvciBpbiByZWFsIHRpbWVcbj09PT09PT09PT09PT09PT09PT09PVxuKldpcmVndWFyZCBjb25uZWN0aW9uc1xuKk9wZW5WUE4gY29ubmVjdGlvbnNcbipJUFY0LzYgY29ubmVjdGlvbnNcbipQcm94eSBjb25uZWN0aW9uc1xuKlZQTiB2ZW5kb3IgYXBwbGljYXRpb25zXG4qTWFudWFsIHN0YXRpYyBJUCBjaGFuZ2VzXG5cbj09PT09PT09PT09PT09PT09PT09XG5JUCBGaW5kZXIgaGFzIGFkZGVkIHNlY3VyaXR5XG49PT09PT09PT09PT09PT09PT09PVxuTmV3bHkgZGV2ZWxvcGVkIHJldmlzZWQgY29kZSBiYXNlIHVzaW5nIG9wZW4gdGVjaG5vbG9naWVzIGFuZCB1c2luZyBBUEkncyBmb3IgUHVibGljIElQIGFuZCBNYXAgVGlsZSBpbWFnZSBsb2NhdGlvbnMgdXNpbmcgR0VUIHJlcXVlc3RzIG92ZXIgSFRUUFMgZm9yIGEgYWRkZWQgbGF5ZXIgb2YgZW5jcnlwdGVkICBTZWN1cml0eSwgUGxlYXNlIHNlZSBzb3VyY2UgY29kZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG49PT09PT09PT09PT09PT09PT09PVxuQ29tcGF0aWJsZSBHTk9NRSBzaGVsbCAtIDMuMzYgYW5kIG5ld2VyLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0xpbnhHZW0zMy9JUC1GaW5kZXIiLAogICJ1dWlkIjogIklQLUZpbmRlckBsaW54Z2VtMzMuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "IP-Finder@linxgem33.com", "name": "IP Finder", "pname": "ip-finder", "description": "Displays useful information about your public IP Address\n\nIP Finder displays information about your public IP address, hostname, country, AS Block, as well as  a map tile of your Geolocation and country flag,  this extension is Also Useful for informational purposes to monitor VPN changes and public network IP Addresses.\n\n=====================\nIP Finder can monitor in real time\n=====================\n*Wireguard connections\n*OpenVPN connections\n*IPV4/6 connections\n*Proxy connections\n*VPN vendor applications\n*Manual static IP changes\n\n====================\nIP Finder has added security\n====================\nNewly developed revised code base using open technologies and using API's for Public IP and Map Tile image locations using GET requests over HTTPS for a added layer of encrypted  Security, Please see source code for more details.\n\n====================\nCompatible GNOME shell - 3.36 and newer.", "link": "https://extensions.gnome.org/extension/2983/ip-finder/", "shell_version_map": {"38": {"version": "7", "sha256": "0qnmmg8q6xdv0rg90rzimqzsnggnsq2x8nmz998x59q2ik67kqgq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzXG5cbklQIEZpbmRlciBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBhZGRyZXNzLCBob3N0bmFtZSwgY291bnRyeSwgQVMgQmxvY2ssIGFzIHdlbGwgYXMgIGEgbWFwIHRpbGUgb2YgeW91ciBHZW9sb2NhdGlvbiBhbmQgY291bnRyeSBmbGFnLCAgdGhpcyBleHRlbnNpb24gaXMgQWxzbyBVc2VmdWwgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgdG8gbW9uaXRvciBWUE4gY2hhbmdlcyBhbmQgcHVibGljIG5ldHdvcmsgSVAgQWRkcmVzc2VzLlxuXG49PT09PT09PT09PT09PT09PT09PT1cbklQIEZpbmRlciBjYW4gbW9uaXRvciBpbiByZWFsIHRpbWVcbj09PT09PT09PT09PT09PT09PT09PVxuKldpcmVndWFyZCBjb25uZWN0aW9uc1xuKk9wZW5WUE4gY29ubmVjdGlvbnNcbipJUFY0LzYgY29ubmVjdGlvbnNcbipQcm94eSBjb25uZWN0aW9uc1xuKlZQTiB2ZW5kb3IgYXBwbGljYXRpb25zXG4qTWFudWFsIHN0YXRpYyBJUCBjaGFuZ2VzXG5cbj09PT09PT09PT09PT09PT09PT09XG5JUCBGaW5kZXIgaGFzIGFkZGVkIHNlY3VyaXR5XG49PT09PT09PT09PT09PT09PT09PVxuTmV3bHkgZGV2ZWxvcGVkIHJldmlzZWQgY29kZSBiYXNlIHVzaW5nIG9wZW4gdGVjaG5vbG9naWVzIGFuZCB1c2luZyBBUEkncyBmb3IgUHVibGljIElQIGFuZCBNYXAgVGlsZSBpbWFnZSBsb2NhdGlvbnMgdXNpbmcgR0VUIHJlcXVlc3RzIG92ZXIgSFRUUFMgZm9yIGEgYWRkZWQgbGF5ZXIgb2YgZW5jcnlwdGVkICBTZWN1cml0eSwgUGxlYXNlIHNlZSBzb3VyY2UgY29kZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG49PT09PT09PT09PT09PT09PT09PVxuQ29tcGF0aWJsZSBHTk9NRSBzaGVsbCAtIDMuMzYgYW5kIG5ld2VyLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0xpbnhHZW0zMy9JUC1GaW5kZXIiLAogICJ1dWlkIjogIklQLUZpbmRlckBsaW54Z2VtMzMuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "9", "sha256": "1iglj9l7c69ics43r675w4azc7x680n21vfr6jkdha8j47a79sn3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzXG5cbklQIEZpbmRlciBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBhZGRyZXNzLCBob3N0bmFtZSwgY291bnRyeSwgQVMgQmxvY2ssIGFzIHdlbGwgYXMgIGEgbWFwIHRpbGUgb2YgeW91ciBHZW9sb2NhdGlvbiBhbmQgY291bnRyeSBmbGFnLCAgdGhpcyBleHRlbnNpb24gaXMgQWxzbyBVc2VmdWwgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgdG8gbW9uaXRvciBWUE4gY2hhbmdlcyBhbmQgcHVibGljIG5ldHdvcmsgSVAgQWRkcmVzc2VzLlxuXG49PT09PT09PT09PT09PT09PT09PT1cbklQIEZpbmRlciBjYW4gbW9uaXRvciBpbiByZWFsIHRpbWVcbj09PT09PT09PT09PT09PT09PT09PVxuKldpcmVndWFyZCBjb25uZWN0aW9uc1xuKk9wZW5WUE4gY29ubmVjdGlvbnNcbipJUFY0LzYgY29ubmVjdGlvbnNcbipQcm94eSBjb25uZWN0aW9uc1xuKlZQTiB2ZW5kb3IgYXBwbGljYXRpb25zXG4qTWFudWFsIHN0YXRpYyBJUCBjaGFuZ2VzXG5cbj09PT09PT09PT09PT09PT09PT09XG5JUCBGaW5kZXIgaGFzIGFkZGVkIHNlY3VyaXR5XG49PT09PT09PT09PT09PT09PT09PVxuTmV3bHkgZGV2ZWxvcGVkIHJldmlzZWQgY29kZSBiYXNlIHVzaW5nIG9wZW4gdGVjaG5vbG9naWVzIGFuZCB1c2luZyBBUEkncyBmb3IgUHVibGljIElQIGFuZCBNYXAgVGlsZSBpbWFnZSBsb2NhdGlvbnMgdXNpbmcgR0VUIHJlcXVlc3RzIG92ZXIgSFRUUFMgZm9yIGEgYWRkZWQgbGF5ZXIgb2YgZW5jcnlwdGVkICBTZWN1cml0eSwgUGxlYXNlIHNlZSBzb3VyY2UgY29kZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG49PT09PT09PT09PT09PT09PT09PVxuQ29tcGF0aWJsZSBHTk9NRSBzaGVsbCAtIDMuMzYgYW5kIG5ld2VyLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vTGlueEdlbTMzL0lQLUZpbmRlciIsCiAgInV1aWQiOiAiSVAtRmluZGVyQGxpbnhnZW0zMy5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "1iglj9l7c69ics43r675w4azc7x680n21vfr6jkdha8j47a79sn3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHVzZWZ1bCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBBZGRyZXNzXG5cbklQIEZpbmRlciBkaXNwbGF5cyBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIHB1YmxpYyBJUCBhZGRyZXNzLCBob3N0bmFtZSwgY291bnRyeSwgQVMgQmxvY2ssIGFzIHdlbGwgYXMgIGEgbWFwIHRpbGUgb2YgeW91ciBHZW9sb2NhdGlvbiBhbmQgY291bnRyeSBmbGFnLCAgdGhpcyBleHRlbnNpb24gaXMgQWxzbyBVc2VmdWwgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgdG8gbW9uaXRvciBWUE4gY2hhbmdlcyBhbmQgcHVibGljIG5ldHdvcmsgSVAgQWRkcmVzc2VzLlxuXG49PT09PT09PT09PT09PT09PT09PT1cbklQIEZpbmRlciBjYW4gbW9uaXRvciBpbiByZWFsIHRpbWVcbj09PT09PT09PT09PT09PT09PT09PVxuKldpcmVndWFyZCBjb25uZWN0aW9uc1xuKk9wZW5WUE4gY29ubmVjdGlvbnNcbipJUFY0LzYgY29ubmVjdGlvbnNcbipQcm94eSBjb25uZWN0aW9uc1xuKlZQTiB2ZW5kb3IgYXBwbGljYXRpb25zXG4qTWFudWFsIHN0YXRpYyBJUCBjaGFuZ2VzXG5cbj09PT09PT09PT09PT09PT09PT09XG5JUCBGaW5kZXIgaGFzIGFkZGVkIHNlY3VyaXR5XG49PT09PT09PT09PT09PT09PT09PVxuTmV3bHkgZGV2ZWxvcGVkIHJldmlzZWQgY29kZSBiYXNlIHVzaW5nIG9wZW4gdGVjaG5vbG9naWVzIGFuZCB1c2luZyBBUEkncyBmb3IgUHVibGljIElQIGFuZCBNYXAgVGlsZSBpbWFnZSBsb2NhdGlvbnMgdXNpbmcgR0VUIHJlcXVlc3RzIG92ZXIgSFRUUFMgZm9yIGEgYWRkZWQgbGF5ZXIgb2YgZW5jcnlwdGVkICBTZWN1cml0eSwgUGxlYXNlIHNlZSBzb3VyY2UgY29kZSBmb3IgbW9yZSBkZXRhaWxzLlxuXG49PT09PT09PT09PT09PT09PT09PVxuQ29tcGF0aWJsZSBHTk9NRSBzaGVsbCAtIDMuMzYgYW5kIG5ld2VyLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJpcC1maW5kZXIiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpcC1maW5kZXIiLAogICJuYW1lIjogIklQIEZpbmRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wdWJsaWMtaXAtYWRkcmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vTGlueEdlbTMzL0lQLUZpbmRlciIsCiAgInV1aWQiOiAiSVAtRmluZGVyQGxpbnhnZW0zMy5jb20iLAogICJ2ZXJzaW9uIjogOQp9"}}}
 , {"uuid": "runcat@kolesnikov.se", "name": "RunCat", "pname": "runcat", "description": "The cat tells you the CPU usage by running speed", "link": "https://extensions.gnome.org/extension/2986/runcat/", "shell_version_map": {"38": {"version": "15", "sha256": "0crmi0n4vp7rhc6pnml0b1d4pszyhnp30cvj1r80agslvr8x7hgf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBjYXQgdGVsbHMgeW91IHRoZSBDUFUgdXNhZ2UgYnkgcnVubmluZyBzcGVlZCIsCiAgIm5hbWUiOiAiUnVuQ2F0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93aW4wZXJyL2dub21lLXJ1bmNhdCIsCiAgInV1aWQiOiAicnVuY2F0QGtvbGVzbmlrb3Yuc2UiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "15", "sha256": "0crmi0n4vp7rhc6pnml0b1d4pszyhnp30cvj1r80agslvr8x7hgf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBjYXQgdGVsbHMgeW91IHRoZSBDUFUgdXNhZ2UgYnkgcnVubmluZyBzcGVlZCIsCiAgIm5hbWUiOiAiUnVuQ2F0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93aW4wZXJyL2dub21lLXJ1bmNhdCIsCiAgInV1aWQiOiAicnVuY2F0QGtvbGVzbmlrb3Yuc2UiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "15", "sha256": "0crmi0n4vp7rhc6pnml0b1d4pszyhnp30cvj1r80agslvr8x7hgf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBjYXQgdGVsbHMgeW91IHRoZSBDUFUgdXNhZ2UgYnkgcnVubmluZyBzcGVlZCIsCiAgIm5hbWUiOiAiUnVuQ2F0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93aW4wZXJyL2dub21lLXJ1bmNhdCIsCiAgInV1aWQiOiAicnVuY2F0QGtvbGVzbmlrb3Yuc2UiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
 , {"uuid": "bowser-gnome@kronosoul.xyz", "name": "Bowser Gnome Extension", "pname": "bowser-gnome-extension", "description": "Create rules to open specific websites in specific web browsers for links clicked in any application on your computer. (emails, chat etc)", "link": "https://extensions.gnome.org/extension/2989/bowser-gnome-extension/", "shell_version_map": {"38": {"version": "10", "sha256": "0y41xz4j24lc50ai8dcvl1l773ral59ixcpvkjq1l82x7baq60pk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwuQm93c2VyIiwKICAiZGVzY3JpcHRpb24iOiAiQ3JlYXRlIHJ1bGVzIHRvIG9wZW4gc3BlY2lmaWMgd2Vic2l0ZXMgaW4gc3BlY2lmaWMgd2ViIGJyb3dzZXJzIGZvciBsaW5rcyBjbGlja2VkIGluIGFueSBhcHBsaWNhdGlvbiBvbiB5b3VyIGNvbXB1dGVyLiAoZW1haWxzLCBjaGF0IGV0YykiLAogICJleHRlbnNpb24taWQiOiAiYm93c2VyLWdub21lIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYm93c2VyLWdub21lIiwKICAibmFtZSI6ICJCb3dzZXIgR25vbWUgRXh0ZW5zaW9uIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFkbWluQGtyb25vc291bC54eXoiLAogICJyZXNvdXJjZS1wYXRoIjogIi9vcmcva3Jvbm9zb3VsL0Jvd3Nlci8iLAogICJzZXR0aW5ncy1wYXRoIjogIi9vcmcvZ25vbWUvc2hlbGwvZXh0ZW5zaW9ucy9Cb3dzZXIvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkJvd3NlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsaXBrL2Jvd3Nlci1nbm9tZSIsCiAgInV1aWQiOiAiYm93c2VyLWdub21lQGtyb25vc291bC54eXoiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
-, {"uuid": "ideapad@laurento.frittella", "name": "IdeaPad", "pname": "ideapad", "description": "Lenovo IdeaPad goodies for Gnome Shell\n\nAt the moment the extension only provides an easy and user-friendly way to toggle battery conservation mode available on Levono Ideapad laptops and visually get its current state.\n\nConfiguration needed! Please check the instruction on the homepage.", "link": "https://extensions.gnome.org/extension/2992/ideapad/", "shell_version_map": {"38": {"version": "8", "sha256": "1yixsrykqlp2zknxdz1kxcf0xwmp49l5s897hk0l8vw49w223bq0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxlbm92byBJZGVhUGFkIGdvb2RpZXMgZm9yIEdub21lIFNoZWxsXG5cbkF0IHRoZSBtb21lbnQgdGhlIGV4dGVuc2lvbiBvbmx5IHByb3ZpZGVzIGFuIGVhc3kgYW5kIHVzZXItZnJpZW5kbHkgd2F5IHRvIHRvZ2dsZSBiYXR0ZXJ5IGNvbnNlcnZhdGlvbiBtb2RlIGF2YWlsYWJsZSBvbiBMZXZvbm8gSWRlYXBhZCBsYXB0b3BzIGFuZCB2aXN1YWxseSBnZXQgaXRzIGN1cnJlbnQgc3RhdGUuXG5cbkNvbmZpZ3VyYXRpb24gbmVlZGVkISBQbGVhc2UgY2hlY2sgdGhlIGluc3RydWN0aW9uIG9uIHRoZSBob21lcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpZGVhcGFkIiwKICAibmFtZSI6ICJJZGVhUGFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sYXVyZW50by9nbm9tZS1zaGVsbC1leHRlbnNpb24taWRlYXBhZCIsCiAgInV1aWQiOiAiaWRlYXBhZEBsYXVyZW50by5mcml0dGVsbGEiLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "1yixsrykqlp2zknxdz1kxcf0xwmp49l5s897hk0l8vw49w223bq0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxlbm92byBJZGVhUGFkIGdvb2RpZXMgZm9yIEdub21lIFNoZWxsXG5cbkF0IHRoZSBtb21lbnQgdGhlIGV4dGVuc2lvbiBvbmx5IHByb3ZpZGVzIGFuIGVhc3kgYW5kIHVzZXItZnJpZW5kbHkgd2F5IHRvIHRvZ2dsZSBiYXR0ZXJ5IGNvbnNlcnZhdGlvbiBtb2RlIGF2YWlsYWJsZSBvbiBMZXZvbm8gSWRlYXBhZCBsYXB0b3BzIGFuZCB2aXN1YWxseSBnZXQgaXRzIGN1cnJlbnQgc3RhdGUuXG5cbkNvbmZpZ3VyYXRpb24gbmVlZGVkISBQbGVhc2UgY2hlY2sgdGhlIGluc3RydWN0aW9uIG9uIHRoZSBob21lcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpZGVhcGFkIiwKICAibmFtZSI6ICJJZGVhUGFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sYXVyZW50by9nbm9tZS1zaGVsbC1leHRlbnNpb24taWRlYXBhZCIsCiAgInV1aWQiOiAiaWRlYXBhZEBsYXVyZW50by5mcml0dGVsbGEiLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "1yixsrykqlp2zknxdz1kxcf0xwmp49l5s897hk0l8vw49w223bq0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxlbm92byBJZGVhUGFkIGdvb2RpZXMgZm9yIEdub21lIFNoZWxsXG5cbkF0IHRoZSBtb21lbnQgdGhlIGV4dGVuc2lvbiBvbmx5IHByb3ZpZGVzIGFuIGVhc3kgYW5kIHVzZXItZnJpZW5kbHkgd2F5IHRvIHRvZ2dsZSBiYXR0ZXJ5IGNvbnNlcnZhdGlvbiBtb2RlIGF2YWlsYWJsZSBvbiBMZXZvbm8gSWRlYXBhZCBsYXB0b3BzIGFuZCB2aXN1YWxseSBnZXQgaXRzIGN1cnJlbnQgc3RhdGUuXG5cbkNvbmZpZ3VyYXRpb24gbmVlZGVkISBQbGVhc2UgY2hlY2sgdGhlIGluc3RydWN0aW9uIG9uIHRoZSBob21lcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpZGVhcGFkIiwKICAibmFtZSI6ICJJZGVhUGFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sYXVyZW50by9nbm9tZS1zaGVsbC1leHRlbnNpb24taWRlYXBhZCIsCiAgInV1aWQiOiAiaWRlYXBhZEBsYXVyZW50by5mcml0dGVsbGEiLAogICJ2ZXJzaW9uIjogOAp9"}}}
+, {"uuid": "ideapad@laurento.frittella", "name": "IdeaPad", "pname": "ideapad", "description": "Lenovo IdeaPad goodies for Gnome Shell\n\nAt the moment the extension only provides an easy and user-friendly way to toggle battery conservation mode available on Levono Ideapad laptops and visually get its current state.\n\nConfiguration needed! Please check the instruction on the homepage.", "link": "https://extensions.gnome.org/extension/2992/ideapad/", "shell_version_map": {"38": {"version": "9", "sha256": "1b62spk8njkk1b25cafw1z18141hz6cx9mhwh0f3an84mdm7nvjz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxlbm92byBJZGVhUGFkIGdvb2RpZXMgZm9yIEdub21lIFNoZWxsXG5cbkF0IHRoZSBtb21lbnQgdGhlIGV4dGVuc2lvbiBvbmx5IHByb3ZpZGVzIGFuIGVhc3kgYW5kIHVzZXItZnJpZW5kbHkgd2F5IHRvIHRvZ2dsZSBiYXR0ZXJ5IGNvbnNlcnZhdGlvbiBtb2RlIGF2YWlsYWJsZSBvbiBMZXZvbm8gSWRlYXBhZCBsYXB0b3BzIGFuZCB2aXN1YWxseSBnZXQgaXRzIGN1cnJlbnQgc3RhdGUuXG5cbkNvbmZpZ3VyYXRpb24gbmVlZGVkISBQbGVhc2UgY2hlY2sgdGhlIGluc3RydWN0aW9uIG9uIHRoZSBob21lcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpZGVhcGFkIiwKICAibmFtZSI6ICJJZGVhUGFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sYXVyZW50by9nbm9tZS1zaGVsbC1leHRlbnNpb24taWRlYXBhZCIsCiAgInV1aWQiOiAiaWRlYXBhZEBsYXVyZW50by5mcml0dGVsbGEiLAogICJ2ZXJzaW9uIjogOQp9"}, "40": {"version": "9", "sha256": "1b62spk8njkk1b25cafw1z18141hz6cx9mhwh0f3an84mdm7nvjz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxlbm92byBJZGVhUGFkIGdvb2RpZXMgZm9yIEdub21lIFNoZWxsXG5cbkF0IHRoZSBtb21lbnQgdGhlIGV4dGVuc2lvbiBvbmx5IHByb3ZpZGVzIGFuIGVhc3kgYW5kIHVzZXItZnJpZW5kbHkgd2F5IHRvIHRvZ2dsZSBiYXR0ZXJ5IGNvbnNlcnZhdGlvbiBtb2RlIGF2YWlsYWJsZSBvbiBMZXZvbm8gSWRlYXBhZCBsYXB0b3BzIGFuZCB2aXN1YWxseSBnZXQgaXRzIGN1cnJlbnQgc3RhdGUuXG5cbkNvbmZpZ3VyYXRpb24gbmVlZGVkISBQbGVhc2UgY2hlY2sgdGhlIGluc3RydWN0aW9uIG9uIHRoZSBob21lcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpZGVhcGFkIiwKICAibmFtZSI6ICJJZGVhUGFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sYXVyZW50by9nbm9tZS1zaGVsbC1leHRlbnNpb24taWRlYXBhZCIsCiAgInV1aWQiOiAiaWRlYXBhZEBsYXVyZW50by5mcml0dGVsbGEiLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "1b62spk8njkk1b25cafw1z18141hz6cx9mhwh0f3an84mdm7nvjz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxlbm92byBJZGVhUGFkIGdvb2RpZXMgZm9yIEdub21lIFNoZWxsXG5cbkF0IHRoZSBtb21lbnQgdGhlIGV4dGVuc2lvbiBvbmx5IHByb3ZpZGVzIGFuIGVhc3kgYW5kIHVzZXItZnJpZW5kbHkgd2F5IHRvIHRvZ2dsZSBiYXR0ZXJ5IGNvbnNlcnZhdGlvbiBtb2RlIGF2YWlsYWJsZSBvbiBMZXZvbm8gSWRlYXBhZCBsYXB0b3BzIGFuZCB2aXN1YWxseSBnZXQgaXRzIGN1cnJlbnQgc3RhdGUuXG5cbkNvbmZpZ3VyYXRpb24gbmVlZGVkISBQbGVhc2UgY2hlY2sgdGhlIGluc3RydWN0aW9uIG9uIHRoZSBob21lcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJpZGVhcGFkIiwKICAibmFtZSI6ICJJZGVhUGFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sYXVyZW50by9nbm9tZS1zaGVsbC1leHRlbnNpb24taWRlYXBhZCIsCiAgInV1aWQiOiAiaWRlYXBhZEBsYXVyZW50by5mcml0dGVsbGEiLAogICJ2ZXJzaW9uIjogOQp9"}}}
 , {"uuid": "system-monitor-next@paradoxxx.zero.gmail.com", "name": "system-monitor-next", "pname": "system-monitor-next", "description": "Display system information in GNOME Shell status bar, such as memory, CPU, disk and battery usages, network rates…\n\nThis fork of paradoxxxzero/gnome-shell-system-monitor-applet is for packaging purposes only. This extension is built and updated continuously with the upstream master branch.\n\nThis is preferable for users on bleeding edge distributions that prefer not to wait for a stable release from the main repo. Of course, since we're releasing directly from master some instability is inevitable.\n\nIf you get an error after updating, try restarting Gnome Shell with Alt-F2 then 'r'.", "link": "https://extensions.gnome.org/extension/3010/system-monitor-next/", "shell_version_map": {"40": {"version": "38", "sha256": "0ppfn202x8s97yjd40xkm66pvf4fjddyil720xdpghriggxg5xpl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLlxuXG5UaGlzIGlzIHByZWZlcmFibGUgZm9yIHVzZXJzIG9uIGJsZWVkaW5nIGVkZ2UgZGlzdHJpYnV0aW9ucyB0aGF0IHByZWZlciBub3QgdG8gd2FpdCBmb3IgYSBzdGFibGUgcmVsZWFzZSBmcm9tIHRoZSBtYWluIHJlcG8uIE9mIGNvdXJzZSwgc2luY2Ugd2UncmUgcmVsZWFzaW5nIGRpcmVjdGx5IGZyb20gbWFzdGVyIHNvbWUgaW5zdGFiaWxpdHkgaXMgaW5ldml0YWJsZS5cblxuSWYgeW91IGdldCBhbiBlcnJvciBhZnRlciB1cGRhdGluZywgdHJ5IHJlc3RhcnRpbmcgR25vbWUgU2hlbGwgd2l0aCBBbHQtRjIgdGhlbiAncicuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic3lzdGVtLW1vbml0b3IiLAogICJuYW1lIjogInN5c3RlbS1tb25pdG9yLW5leHQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21nYWxncy9nbm9tZS1zaGVsbC1zeXN0ZW0tbW9uaXRvci1hcHBsZXQiLAogICJ1dWlkIjogInN5c3RlbS1tb25pdG9yLW5leHRAcGFyYWRveHh4Lnplcm8uZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM4Cn0="}, "41": {"version": "38", "sha256": "0ppfn202x8s97yjd40xkm66pvf4fjddyil720xdpghriggxg5xpl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2XG5cblRoaXMgZm9yayBvZiBwYXJhZG94eHh6ZXJvL2dub21lLXNoZWxsLXN5c3RlbS1tb25pdG9yLWFwcGxldCBpcyBmb3IgcGFja2FnaW5nIHB1cnBvc2VzIG9ubHkuIFRoaXMgZXh0ZW5zaW9uIGlzIGJ1aWx0IGFuZCB1cGRhdGVkIGNvbnRpbnVvdXNseSB3aXRoIHRoZSB1cHN0cmVhbSBtYXN0ZXIgYnJhbmNoLlxuXG5UaGlzIGlzIHByZWZlcmFibGUgZm9yIHVzZXJzIG9uIGJsZWVkaW5nIGVkZ2UgZGlzdHJpYnV0aW9ucyB0aGF0IHByZWZlciBub3QgdG8gd2FpdCBmb3IgYSBzdGFibGUgcmVsZWFzZSBmcm9tIHRoZSBtYWluIHJlcG8uIE9mIGNvdXJzZSwgc2luY2Ugd2UncmUgcmVsZWFzaW5nIGRpcmVjdGx5IGZyb20gbWFzdGVyIHNvbWUgaW5zdGFiaWxpdHkgaXMgaW5ldml0YWJsZS5cblxuSWYgeW91IGdldCBhbiBlcnJvciBhZnRlciB1cGRhdGluZywgdHJ5IHJlc3RhcnRpbmcgR25vbWUgU2hlbGwgd2l0aCBBbHQtRjIgdGhlbiAncicuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic3lzdGVtLW1vbml0b3IiLAogICJuYW1lIjogInN5c3RlbS1tb25pdG9yLW5leHQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3lzdGVtLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21nYWxncy9nbm9tZS1zaGVsbC1zeXN0ZW0tbW9uaXRvci1hcHBsZXQiLAogICJ1dWlkIjogInN5c3RlbS1tb25pdG9yLW5leHRAcGFyYWRveHh4Lnplcm8uZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDM4Cn0="}}}
 , {"uuid": "user-theme-x@tuberry.github.io", "name": "User Themes X", "pname": "user-themes-x", "description": "Customizable user-theme with user stylesheet and dark theme auto-switch support\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3019/user-themes-x/", "shell_version_map": {"38": {"version": "21", "sha256": "08992jny17mbw3gvlfwzgis1ld3wfkkd5fwdyq2c4s6l412fr0mz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIHN1cHBvcnRcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUteCIsCiAgImdldHRleHQtZG9tYWluIjogInVzZXItdGhlbWUteCIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZXMgWCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiam9obi5zdG93ZXJzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvdXNlci10aGVtZS14IiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lLXhAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMjEKfQ=="}, "40": {"version": "24", "sha256": "12scyi48nfbrl2bvhq4rwdcj7vyvpdc86sa8iw1fg3y0cw6vlvq6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIHN1cHBvcnRcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUteCIsCiAgImdldHRleHQtZG9tYWluIjogInVzZXItdGhlbWUteCIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZXMgWCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiam9obi5zdG93ZXJzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3VzZXItdGhlbWUteCIsCiAgInV1aWQiOiAidXNlci10aGVtZS14QHR1YmVycnkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDI0Cn0="}, "41": {"version": "25", "sha256": "101y4msarf1dglh0g4wybz4dx8zsz2yg8ny2q5rz3xy1cjj8ac5a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6YWJsZSB1c2VyLXRoZW1lIHdpdGggdXNlciBzdHlsZXNoZWV0IGFuZCBkYXJrIHRoZW1lIGF1dG8tc3dpdGNoIHN1cHBvcnRcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUteCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi11c2VyLXRoZW1lLXgiLAogICJuYW1lIjogIlVzZXIgVGhlbWVzIFgiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS91c2VyLXRoZW1lLXgiLAogICJ1dWlkIjogInVzZXItdGhlbWUteEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyNQp9"}}}
 , {"uuid": "app_view_text@fawtytoo", "name": "Application View Text", "pname": "application-view-text", "description": "The text in the Application view can be hard to read on a light coloured background. This extension makes the text bolder with a drop shadow.\nAlso improves the visibility of the app running dot.", "link": "https://extensions.gnome.org/extension/3028/application-view-text/", "shell_version_map": {"38": {"version": "6", "sha256": "0bigmnvybrflmc7dq9g00c8h9sfwd2c8iqm8j4zg7mzj1gjaazkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSB0ZXh0IGluIHRoZSBBcHBsaWNhdGlvbiB2aWV3IGNhbiBiZSBoYXJkIHRvIHJlYWQgb24gYSBsaWdodCBjb2xvdXJlZCBiYWNrZ3JvdW5kLiBUaGlzIGV4dGVuc2lvbiBtYWtlcyB0aGUgdGV4dCBib2xkZXIgd2l0aCBhIGRyb3Agc2hhZG93LlxuQWxzbyBpbXByb3ZlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgYXBwIHJ1bm5pbmcgZG90LiIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb24gVmlldyBUZXh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhcHBfdmlld190ZXh0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0bigmnvybrflmc7dq9g00c8h9sfwd2c8iqm8j4zg7mzj1gjaazkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSB0ZXh0IGluIHRoZSBBcHBsaWNhdGlvbiB2aWV3IGNhbiBiZSBoYXJkIHRvIHJlYWQgb24gYSBsaWdodCBjb2xvdXJlZCBiYWNrZ3JvdW5kLiBUaGlzIGV4dGVuc2lvbiBtYWtlcyB0aGUgdGV4dCBib2xkZXIgd2l0aCBhIGRyb3Agc2hhZG93LlxuQWxzbyBpbXByb3ZlcyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgYXBwIHJ1bm5pbmcgZG90LiIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb24gVmlldyBUZXh0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhcHBfdmlld190ZXh0QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
@@ -312,27 +314,28 @@
 , {"uuid": "ssss@tu.berry", "name": "Simple Subscriber", "pname": "ss-subscriber", "description": "Simple shadowsocks subscriber (SSD only), yet another proxy switcher for GNOME Shell\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3073/ss-subscriber/", "shell_version_map": {"38": {"version": "18", "sha256": "03gryl577559h2l1s3adi5gxa8ivp454p4lq7jng1db6smlpj95a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBzaGFkb3dzb2NrcyBzdWJzY3JpYmVyIChTU0Qgb25seSksIHlldCBhbm90aGVyIHByb3h5IHN3aXRjaGVyIGZvciBHTk9NRSBTaGVsbFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzcy1zdWJzY3JpYmVyIiwKICAibmFtZSI6ICJTaW1wbGUgU3Vic2NyaWJlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcy1zdWJzY3JpYmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9zcy1zdWJzY3JpYmVyIiwKICAidXVpZCI6ICJzc3NzQHR1LmJlcnJ5IiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "20", "sha256": "075d00xsbmr4qs554p2anddhkmgcx7xd4nn8prgmf4wpyfk87552", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBzaGFkb3dzb2NrcyBzdWJzY3JpYmVyIChTU0Qgb25seSksIHlldCBhbm90aGVyIHByb3h5IHN3aXRjaGVyIGZvciBHTk9NRSBTaGVsbFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzcy1zdWJzY3JpYmVyIiwKICAibmFtZSI6ICJTaW1wbGUgU3Vic2NyaWJlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcy1zdWJzY3JpYmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc3Mtc3Vic2NyaWJlciIsCiAgInV1aWQiOiAic3Nzc0B0dS5iZXJyeSIsCiAgInZlcnNpb24iOiAyMAp9"}, "41": {"version": "21", "sha256": "06ybzk62fbi88iqssl4pw0amsbcp09pnw99wxanh2jlvaakqgday", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBzaGFkb3dzb2NrcyBzdWJzY3JpYmVyIChTU0Qgb25seSksIHlldCBhbm90aGVyIHByb3h5IHN3aXRjaGVyIGZvciBHTk9NRSBTaGVsbFxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tc3Mtc3Vic2NyaWJlciIsCiAgIm5hbWUiOiAiU2ltcGxlIFN1YnNjcmliZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3Mtc3Vic2NyaWJlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3NzLXN1YnNjcmliZXIiLAogICJ1dWlkIjogInNzc3NAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMjEKfQ=="}}}
 , {"uuid": "extension-list@tu.berry", "name": "Extension List", "pname": "extension-list", "description": "Simple GNOME Shell extension manager in the top panel\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3088/extension-list/", "shell_version_map": {"38": {"version": "25", "sha256": "0cwabswbb5p0z156488ag095h558hf541650vfnjgw4nas7v2ccx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImV4dGVuc2lvbi1saXN0IiwKICAibmFtZSI6ICJFeHRlbnNpb24gTGlzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHRlbnNpb24tbGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvZXh0ZW5zaW9uLWxpc3QiLAogICJ1dWlkIjogImV4dGVuc2lvbi1saXN0QHR1LmJlcnJ5IiwKICAidmVyc2lvbiI6IDI1Cn0="}, "40": {"version": "27", "sha256": "0m13qzzbbx5rnq8a9xn09nvr3dy9zqkp8y9529y12250wyjafl1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImV4dGVuc2lvbi1saXN0IiwKICAibmFtZSI6ICJFeHRlbnNpb24gTGlzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHRlbnNpb24tbGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2V4dGVuc2lvbi1saXN0IiwKICAidXVpZCI6ICJleHRlbnNpb24tbGlzdEB0dS5iZXJyeSIsCiAgInZlcnNpb24iOiAyNwp9"}, "41": {"version": "29", "sha256": "1yl2b9phvrgsdpkwqjfqpaqi2xcj5bcd4zabqkrfwngqsg17s85j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBTaGVsbCBleHRlbnNpb24gbWFuYWdlciBpbiB0aGUgdG9wIHBhbmVsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1leHRlbnNpb24tbGlzdCIsCiAgIm5hbWUiOiAiRXh0ZW5zaW9uIExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXh0ZW5zaW9uLWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9leHRlbnNpb24tbGlzdCIsCiAgInV1aWQiOiAiZXh0ZW5zaW9uLWxpc3RAdHUuYmVycnkiLAogICJ2ZXJzaW9uIjogMjkKfQ=="}}}
 , {"uuid": "MaximizeToEmptyWorkspace-extension@kaisersite.de", "name": "Maximize To Empty Workspace", "pname": "maximize-to-empty-workspace", "description": "New and maximized windows will be moved to empty workspaces.\nSupports multiple monitors.", "link": "https://extensions.gnome.org/extension/3100/maximize-to-empty-workspace/", "shell_version_map": {"38": {"version": "10", "sha256": "05gi4r8wq8bnb1b5476w5h737swg0rdkm7fq1g2l2c9hg0h9r007", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlIiwKICAidXVpZCI6ICJNYXhpbWl6ZVRvRW1wdHlXb3Jrc3BhY2UtZXh0ZW5zaW9uQGthaXNlcnNpdGUuZGUiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "10", "sha256": "05gi4r8wq8bnb1b5476w5h737swg0rdkm7fq1g2l2c9hg0h9r007", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlIiwKICAidXVpZCI6ICJNYXhpbWl6ZVRvRW1wdHlXb3Jrc3BhY2UtZXh0ZW5zaW9uQGthaXNlcnNpdGUuZGUiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "05gi4r8wq8bnb1b5476w5h737swg0rdkm7fq1g2l2c9hg0h9r007", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thaXNlcmFjbS9nbm9tZS1zaGVsbC1leHRlbnNpb24tbWF4aW1pemUtdG8tZW1wdHktd29ya3NwYWNlIiwKICAidXVpZCI6ICJNYXhpbWl6ZVRvRW1wdHlXb3Jrc3BhY2UtZXh0ZW5zaW9uQGthaXNlcnNpdGUuZGUiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
-, {"uuid": "eye-extended@als.kz", "name": "Eye and Mouse Extended", "pname": "eye-extended", "description": "Adds an eye to the indicator bar that follows your cursor \nYou can also display the mouse indicator, perhaps it will help you with the problem of displaying the mouse cursor in Skype", "link": "https://extensions.gnome.org/extension/3139/eye-extended/", "shell_version_map": {"38": {"version": "8", "sha256": "0am93vkz74l70vavf8mlv8diga32xawvd5g79k8k7vwy15jg4zcj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsZXhleWxvdmNoaWtvdi9leWUtZXh0ZW5kZWQtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJleWUtZXh0ZW5kZWRAYWxzLmt6IiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0am93vkz74l70vavf8mlv8diga32xawvd5g79k8k7vwy15jg4zcj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsZXhleWxvdmNoaWtvdi9leWUtZXh0ZW5kZWQtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJleWUtZXh0ZW5kZWRAYWxzLmt6IiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "eye-extended@als.kz", "name": "Eye and Mouse Extended", "pname": "eye-extended", "description": "Adds an eye to the indicator bar that follows your cursor \nYou can also display the mouse indicator, perhaps it will help you with the problem of displaying the mouse cursor in Skype", "link": "https://extensions.gnome.org/extension/3139/eye-extended/", "shell_version_map": {"38": {"version": "9", "sha256": "1y2bgk2kww0g3f1d93s1w15g5xihjbipq40wr08f41jr8l53v9ay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZXlsb3ZjaGlrb3YvZXllLWV4dGVuZGVkLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZXllLWV4dGVuZGVkQGFscy5reiIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "9", "sha256": "1y2bgk2kww0g3f1d93s1w15g5xihjbipq40wr08f41jr8l53v9ay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZXlsb3ZjaGlrb3YvZXllLWV4dGVuZGVkLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZXllLWV4dGVuZGVkQGFscy5reiIsCiAgInZlcnNpb24iOiA5Cn0="}, "41": {"version": "9", "sha256": "1y2bgk2kww0g3f1d93s1w15g5xihjbipq40wr08f41jr8l53v9ay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZXlsb3ZjaGlrb3YvZXllLWV4dGVuZGVkLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZXllLWV4dGVuZGVkQGFscy5reiIsCiAgInZlcnNpb24iOiA5Cn0="}}}
 , {"uuid": "wireguard-indicator@gregos.me", "name": "Wireguard Indicator", "pname": "wireguard-indicator", "description": "Enable, disable, and view details of Wireguard.\nDeveloped by Gregos-Winus.", "link": "https://extensions.gnome.org/extension/3160/wireguard-indicator/", "shell_version_map": {"38": {"version": "3", "sha256": "07c3g7ynv95qs97fq2xyzn0xgg6nsjqrzn2f2ldpshdl31c76npf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSwgZGlzYWJsZSwgYW5kIHZpZXcgZGV0YWlscyBvZiBXaXJlZ3VhcmQuXG5EZXZlbG9wZWQgYnkgR3JlZ29zLVdpbnVzLiIsCiAgIm5hbWUiOiAiV2lyZWd1YXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAid2lyZWd1YXJkLWluZGljYXRvckBncmVnb3MubWUiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "07c3g7ynv95qs97fq2xyzn0xgg6nsjqrzn2f2ldpshdl31c76npf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSwgZGlzYWJsZSwgYW5kIHZpZXcgZGV0YWlscyBvZiBXaXJlZ3VhcmQuXG5EZXZlbG9wZWQgYnkgR3JlZ29zLVdpbnVzLiIsCiAgIm5hbWUiOiAiV2lyZWd1YXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAid2lyZWd1YXJkLWluZGljYXRvckBncmVnb3MubWUiLAogICJ2ZXJzaW9uIjogMwp9"}}}
 , {"uuid": "blur-my-shell@aunetx", "name": "Blur my Shell", "pname": "blur-my-shell", "description": "Adds a blur look to different parts of the GNOME Shell, including the top panel, dash and overview.\n\nIMPORTANT:\nAfter updating the extension, PLEASE make sure to logout and re-login so that gnome-shell can reload the extension correctly. This is not a bug from Blur my Shell, but an unfortunate issue from gnome shell.\n\nYou can support my work by sponsoring me on:\n- github: https://github.com/sponsors/aunetx\n- ko-fi: https://ko-fi.com/aunetx", "link": "https://extensions.gnome.org/extension/3193/blur-my-shell/", "shell_version_map": {"38": {"version": "22", "sha256": "0nkjqb5fyza2ah0dmcdfh4f998zyv8c955k3dzvybvb4rmmyvm8y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5JTVBPUlRBTlQ6XG5BZnRlciB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uLCBQTEVBU0UgbWFrZSBzdXJlIHRvIGxvZ291dCBhbmQgcmUtbG9naW4gc28gdGhhdCBnbm9tZS1zaGVsbCBjYW4gcmVsb2FkIHRoZSBleHRlbnNpb24gY29ycmVjdGx5LiBUaGlzIGlzIG5vdCBhIGJ1ZyBmcm9tIEJsdXIgbXkgU2hlbGwsIGJ1dCBhbiB1bmZvcnR1bmF0ZSBpc3N1ZSBmcm9tIGdub21lIHNoZWxsLlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eCIsCiAgIm5hbWUiOiAiQmx1ciBteSBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "25", "sha256": "1i7qlmfrq5hbd9jc4mj05i592fr5kcn0h4qappr2123saqdwnbl5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5JTVBPUlRBTlQ6XG5BZnRlciB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uLCBQTEVBU0UgbWFrZSBzdXJlIHRvIGxvZ291dCBhbmQgcmUtbG9naW4gc28gdGhhdCBnbm9tZS1zaGVsbCBjYW4gcmVsb2FkIHRoZSBleHRlbnNpb24gY29ycmVjdGx5LiBUaGlzIGlzIG5vdCBhIGJ1ZyBmcm9tIEJsdXIgbXkgU2hlbGwsIGJ1dCBhbiB1bmZvcnR1bmF0ZSBpc3N1ZSBmcm9tIGdub21lIHNoZWxsLlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eCIsCiAgIm5hbWUiOiAiQmx1ciBteSBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1ibHVyLW15LXNoZWxsIiwKICAidXVpZCI6ICJibHVyLW15LXNoZWxsQGF1bmV0eCIsCiAgInZlcnNpb24iOiAyNQp9"}, "41": {"version": "25", "sha256": "1i7qlmfrq5hbd9jc4mj05i592fr5kcn0h4qappr2123saqdwnbl5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5JTVBPUlRBTlQ6XG5BZnRlciB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uLCBQTEVBU0UgbWFrZSBzdXJlIHRvIGxvZ291dCBhbmQgcmUtbG9naW4gc28gdGhhdCBnbm9tZS1zaGVsbCBjYW4gcmVsb2FkIHRoZSBleHRlbnNpb24gY29ycmVjdGx5LiBUaGlzIGlzIG5vdCBhIGJ1ZyBmcm9tIEJsdXIgbXkgU2hlbGwsIGJ1dCBhbiB1bmZvcnR1bmF0ZSBpc3N1ZSBmcm9tIGdub21lIHNoZWxsLlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eCIsCiAgIm5hbWUiOiAiQmx1ciBteSBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1ibHVyLW15LXNoZWxsIiwKICAidXVpZCI6ICJibHVyLW15LXNoZWxsQGF1bmV0eCIsCiAgInZlcnNpb24iOiAyNQp9"}}}
 , {"uuid": "escape-overview@raelgc", "name": "ESCape Overview", "pname": "escape-overview", "description": "Close the Overview with a single ESC press when searchbox is empty.\n\nThe default gnome-shell behaviour is, during first ESC press, clean the searchbox, then second ESC press get back to Activities overview and then third ESC press will finally close the overview.", "link": "https://extensions.gnome.org/extension/3204/escape-overview/", "shell_version_map": {"38": {"version": "4", "sha256": "1yzba3d57s57wvviyr1gm1k5l15lnm7krhdcq6gv8gd5c80l3f02", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFlbGdjL2VzY2FwZS1vdmVydmlldyIsCiAgInV1aWQiOiAiZXNjYXBlLW92ZXJ2aWV3QHJhZWxnYyIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "1yzba3d57s57wvviyr1gm1k5l15lnm7krhdcq6gv8gd5c80l3f02", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFlbGdjL2VzY2FwZS1vdmVydmlldyIsCiAgInV1aWQiOiAiZXNjYXBlLW92ZXJ2aWV3QHJhZWxnYyIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "1yzba3d57s57wvviyr1gm1k5l15lnm7krhdcq6gv8gd5c80l3f02", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFlbGdjL2VzY2FwZS1vdmVydmlldyIsCiAgInV1aWQiOiAiZXNjYXBlLW92ZXJ2aWV3QHJhZWxnYyIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "compiz-windows-effect@hermes83.github.com", "name": "Compiz windows effect", "pname": "compiz-windows-effect", "description": "Compiz wobbly windows effect thanks to libanimation engine.\n\nThe use of the \"js engine\" option NOT requires any external library, orherwise you need to install the LIBANIMATION library patched for Gnome Shell: \nhttps://github.com/hermes83/libanimation\n\nNB:\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)\n\n-----------------------------------\n  Video\n-----------------------------------\nhttps://youtu.be/G8bAVIB9A7A", "link": "https://extensions.gnome.org/extension/3210/compiz-windows-effect/", "shell_version_map": {"38": {"version": "10", "sha256": "0s2pprlc0wi2ln45c6bj9gzh6rg3bkc1dxn85dq1c7r4h6ib14x2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBpeiB3b2JibHkgd2luZG93cyBlZmZlY3QgdGhhbmtzIHRvIGxpYmFuaW1hdGlvbiBlbmdpbmUuXG5cblRoZSB1c2Ugb2YgdGhlIFwianMgZW5naW5lXCIgb3B0aW9uIE5PVCByZXF1aXJlcyBhbnkgZXh0ZXJuYWwgbGlicmFyeSwgb3JoZXJ3aXNlIHlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIExJQkFOSU1BVElPTiBsaWJyYXJ5IHBhdGNoZWQgZm9yIEdub21lIFNoZWxsOiBcbmh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9saWJhbmltYXRpb25cblxuTkI6XG5JbiBjYXNlIG9mIHVwZGF0ZSBlcnJvciBwbGVhc2UgcmVzdGFydCBHbm9tZSBTaGVsbCAob24gWG9yZyBwcmVzcyBBTFQrRjIgdGhlbiB3cml0ZSByIGFuZCBwcmVzcyBlbnRlciwgb24gV2F5bGFuZCBlbmQgdGhlIHNlc3Npb24gYW5kIGxvZyBpbiBhZ2FpbilcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgVmlkZW9cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5odHRwczovL3lvdXR1LmJlL0c4YkFWSUI5QTdBIiwKICAibmFtZSI6ICJDb21waXogd2luZG93cyBlZmZlY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcm1lczgzL2NvbXBpei13aW5kb3dzLWVmZmVjdCIsCiAgInV1aWQiOiAiY29tcGl6LXdpbmRvd3MtZWZmZWN0QGhlcm1lczgzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "10", "sha256": "0s2pprlc0wi2ln45c6bj9gzh6rg3bkc1dxn85dq1c7r4h6ib14x2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBpeiB3b2JibHkgd2luZG93cyBlZmZlY3QgdGhhbmtzIHRvIGxpYmFuaW1hdGlvbiBlbmdpbmUuXG5cblRoZSB1c2Ugb2YgdGhlIFwianMgZW5naW5lXCIgb3B0aW9uIE5PVCByZXF1aXJlcyBhbnkgZXh0ZXJuYWwgbGlicmFyeSwgb3JoZXJ3aXNlIHlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIExJQkFOSU1BVElPTiBsaWJyYXJ5IHBhdGNoZWQgZm9yIEdub21lIFNoZWxsOiBcbmh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9saWJhbmltYXRpb25cblxuTkI6XG5JbiBjYXNlIG9mIHVwZGF0ZSBlcnJvciBwbGVhc2UgcmVzdGFydCBHbm9tZSBTaGVsbCAob24gWG9yZyBwcmVzcyBBTFQrRjIgdGhlbiB3cml0ZSByIGFuZCBwcmVzcyBlbnRlciwgb24gV2F5bGFuZCBlbmQgdGhlIHNlc3Npb24gYW5kIGxvZyBpbiBhZ2FpbilcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgVmlkZW9cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5odHRwczovL3lvdXR1LmJlL0c4YkFWSUI5QTdBIiwKICAibmFtZSI6ICJDb21waXogd2luZG93cyBlZmZlY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcm1lczgzL2NvbXBpei13aW5kb3dzLWVmZmVjdCIsCiAgInV1aWQiOiAiY29tcGl6LXdpbmRvd3MtZWZmZWN0QGhlcm1lczgzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "0s2pprlc0wi2ln45c6bj9gzh6rg3bkc1dxn85dq1c7r4h6ib14x2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBpeiB3b2JibHkgd2luZG93cyBlZmZlY3QgdGhhbmtzIHRvIGxpYmFuaW1hdGlvbiBlbmdpbmUuXG5cblRoZSB1c2Ugb2YgdGhlIFwianMgZW5naW5lXCIgb3B0aW9uIE5PVCByZXF1aXJlcyBhbnkgZXh0ZXJuYWwgbGlicmFyeSwgb3JoZXJ3aXNlIHlvdSBuZWVkIHRvIGluc3RhbGwgdGhlIExJQkFOSU1BVElPTiBsaWJyYXJ5IHBhdGNoZWQgZm9yIEdub21lIFNoZWxsOiBcbmh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9saWJhbmltYXRpb25cblxuTkI6XG5JbiBjYXNlIG9mIHVwZGF0ZSBlcnJvciBwbGVhc2UgcmVzdGFydCBHbm9tZSBTaGVsbCAob24gWG9yZyBwcmVzcyBBTFQrRjIgdGhlbiB3cml0ZSByIGFuZCBwcmVzcyBlbnRlciwgb24gV2F5bGFuZCBlbmQgdGhlIHNlc3Npb24gYW5kIGxvZyBpbiBhZ2FpbilcblxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgVmlkZW9cbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5odHRwczovL3lvdXR1LmJlL0c4YkFWSUI5QTdBIiwKICAibmFtZSI6ICJDb21waXogd2luZG93cyBlZmZlY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcm1lczgzL2NvbXBpei13aW5kb3dzLWVmZmVjdCIsCiAgInV1aWQiOiAiY29tcGl6LXdpbmRvd3MtZWZmZWN0QGhlcm1lczgzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
-, {"uuid": "block-caribou-36@lxylxy123456.ercli.dev", "name": "Block Caribou 36", "pname": "block-caribou-36", "description": "Blocks caribou (the on screen keyboard) from popping up when you use a touchscreen. Even if it's disabled in the accessibility services menu. Continuation of keringar's work. Note, only tested on gnome shell version 4.40 on Fedora 34 with Xorg", "link": "https://extensions.gnome.org/extension/3222/block-caribou-36/", "shell_version_map": {"40": {"version": "4", "sha256": "13szkkrc51b3sa5pgf6zy33kg63ksn77crah4fp4xzsd5rycji6g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBjYXJpYm91ICh0aGUgb24gc2NyZWVuIGtleWJvYXJkKSBmcm9tIHBvcHBpbmcgdXAgd2hlbiB5b3UgdXNlIGEgdG91Y2hzY3JlZW4uIEV2ZW4gaWYgaXQncyBkaXNhYmxlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzZXJ2aWNlcyBtZW51LiBDb250aW51YXRpb24gb2Yga2VyaW5nYXIncyB3b3JrLiBOb3RlLCBvbmx5IHRlc3RlZCBvbiBnbm9tZSBzaGVsbCB2ZXJzaW9uIDQuNDAgb24gRmVkb3JhIDM0IHdpdGggWG9yZyIsCiAgIm5hbWUiOiAiQmxvY2sgQ2FyaWJvdSAzNiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHh5bHh5MTIzNDU2L2Nhcmlib3VibG9ja2VyIiwKICAidXVpZCI6ICJibG9jay1jYXJpYm91LTM2QGx4eWx4eTEyMzQ1Ni5lcmNsaS5kZXYiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "13szkkrc51b3sa5pgf6zy33kg63ksn77crah4fp4xzsd5rycji6g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBjYXJpYm91ICh0aGUgb24gc2NyZWVuIGtleWJvYXJkKSBmcm9tIHBvcHBpbmcgdXAgd2hlbiB5b3UgdXNlIGEgdG91Y2hzY3JlZW4uIEV2ZW4gaWYgaXQncyBkaXNhYmxlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzZXJ2aWNlcyBtZW51LiBDb250aW51YXRpb24gb2Yga2VyaW5nYXIncyB3b3JrLiBOb3RlLCBvbmx5IHRlc3RlZCBvbiBnbm9tZSBzaGVsbCB2ZXJzaW9uIDQuNDAgb24gRmVkb3JhIDM0IHdpdGggWG9yZyIsCiAgIm5hbWUiOiAiQmxvY2sgQ2FyaWJvdSAzNiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHh5bHh5MTIzNDU2L2Nhcmlib3VibG9ja2VyIiwKICAidXVpZCI6ICJibG9jay1jYXJpYm91LTM2QGx4eWx4eTEyMzQ1Ni5lcmNsaS5kZXYiLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "block-caribou-36@lxylxy123456.ercli.dev", "name": "Block Caribou 36", "pname": "block-caribou-36", "description": "Blocks caribou (the on screen keyboard) from popping up when you use a touchscreen. Even if it's disabled in the accessibility services menu. Continuation of keringar's work. Tested on GNOME Shell version 3.36 - 41 on Fedora 32 - 35. For a higher version see https://github.com/lxylxy123456/cariboublocker#installing-on-high-gnome-shell-version .", "link": "https://extensions.gnome.org/extension/3222/block-caribou-36/", "shell_version_map": {"40": {"version": "4", "sha256": "1bnkwdsmsjr7x9cx31lfzs3dnfqzmdy8cq1zc26hgpvchd02ac60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBjYXJpYm91ICh0aGUgb24gc2NyZWVuIGtleWJvYXJkKSBmcm9tIHBvcHBpbmcgdXAgd2hlbiB5b3UgdXNlIGEgdG91Y2hzY3JlZW4uIEV2ZW4gaWYgaXQncyBkaXNhYmxlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzZXJ2aWNlcyBtZW51LiBDb250aW51YXRpb24gb2Yga2VyaW5nYXIncyB3b3JrLiBUZXN0ZWQgb24gR05PTUUgU2hlbGwgdmVyc2lvbiAzLjM2IC0gNDEgb24gRmVkb3JhIDMyIC0gMzUuIEZvciBhIGhpZ2hlciB2ZXJzaW9uIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbHh5bHh5MTIzNDU2L2Nhcmlib3VibG9ja2VyI2luc3RhbGxpbmctb24taGlnaC1nbm9tZS1zaGVsbC12ZXJzaW9uIC4iLAogICJuYW1lIjogIkJsb2NrIENhcmlib3UgMzYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x4eWx4eTEyMzQ1Ni9jYXJpYm91YmxvY2tlciIsCiAgInV1aWQiOiAiYmxvY2stY2FyaWJvdS0zNkBseHlseHkxMjM0NTYuZXJjbGkuZGV2IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1bnkwdsmsjr7x9cx31lfzs3dnfqzmdy8cq1zc26hgpvchd02ac60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBjYXJpYm91ICh0aGUgb24gc2NyZWVuIGtleWJvYXJkKSBmcm9tIHBvcHBpbmcgdXAgd2hlbiB5b3UgdXNlIGEgdG91Y2hzY3JlZW4uIEV2ZW4gaWYgaXQncyBkaXNhYmxlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzZXJ2aWNlcyBtZW51LiBDb250aW51YXRpb24gb2Yga2VyaW5nYXIncyB3b3JrLiBUZXN0ZWQgb24gR05PTUUgU2hlbGwgdmVyc2lvbiAzLjM2IC0gNDEgb24gRmVkb3JhIDMyIC0gMzUuIEZvciBhIGhpZ2hlciB2ZXJzaW9uIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbHh5bHh5MTIzNDU2L2Nhcmlib3VibG9ja2VyI2luc3RhbGxpbmctb24taGlnaC1nbm9tZS1zaGVsbC12ZXJzaW9uIC4iLAogICJuYW1lIjogIkJsb2NrIENhcmlib3UgMzYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x4eWx4eTEyMzQ1Ni9jYXJpYm91YmxvY2tlciIsCiAgInV1aWQiOiAiYmxvY2stY2FyaWJvdS0zNkBseHlseHkxMjM0NTYuZXJjbGkuZGV2IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "unmaximize_double_click@gonza.gmail.com", "name": "Unmaximize Double Click Panel", "pname": "unmaximize-double-click-panel", "description": "Unmaximize the current window on double click on the top panel. You can also maximize horizontally and vertically with middle and right click.", "link": "https://extensions.gnome.org/extension/3228/unmaximize-double-click-panel/", "shell_version_map": {"38": {"version": "3", "sha256": "17xpxzxqx6zgr484xxa9sz78f90mmdq7ihgnhfmlmscsz10v5h3z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci91bm1heGltaXplLWdub21lLWV4dCIsCiAgInV1aWQiOiAidW5tYXhpbWl6ZV9kb3VibGVfY2xpY2tAZ29uemEuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "17xpxzxqx6zgr484xxa9sz78f90mmdq7ihgnhfmlmscsz10v5h3z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci91bm1heGltaXplLWdub21lLWV4dCIsCiAgInV1aWQiOiAidW5tYXhpbWl6ZV9kb3VibGVfY2xpY2tAZ29uemEuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
 , {"uuid": "unity-like-appswitcher@gonza.com", "name": "Unity-like App Switcher", "pname": "unity-like-app-switcher", "description": "A bigger and more colourfull AppSwitcher", "link": "https://extensions.gnome.org/extension/3231/unity-like-app-switcher/", "shell_version_map": {"38": {"version": "6", "sha256": "0s5mza4x2hk6k95hm7xsyxhariffhb896676fhh5qriphxsrif2q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmlnZ2VyIGFuZCBtb3JlIGNvbG91cmZ1bGwgQXBwU3dpdGNoZXIiLAogICJuYW1lIjogIlVuaXR5LWxpa2UgQXBwIFN3aXRjaGVyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJnb256YSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0eS13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VuaXR5LWxpa2Utc3dpdGNoZXItZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bml0eS1saWtlLWFwcHN3aXRjaGVyQGdvbnphLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "6", "sha256": "0s5mza4x2hk6k95hm7xsyxhariffhb896676fhh5qriphxsrif2q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmlnZ2VyIGFuZCBtb3JlIGNvbG91cmZ1bGwgQXBwU3dpdGNoZXIiLAogICJuYW1lIjogIlVuaXR5LWxpa2UgQXBwIFN3aXRjaGVyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJnb256YSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0eS13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VuaXR5LWxpa2Utc3dpdGNoZXItZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bml0eS1saWtlLWFwcHN3aXRjaGVyQGdvbnphLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "add-to-desktop@tommimon.github.com", "name": "Add to Desktop", "pname": "add-to-desktop", "description": "An easy way to create desktop app shortcut in gnome", "link": "https://extensions.gnome.org/extension/3240/add-to-desktop/", "shell_version_map": {"38": {"version": "5", "sha256": "0kchr5daz3s4q18s6aphfyb50wglmlgmjnh3i9ka6d219r0srh64", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmJldGEiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tbWltb24vYWRkLXRvLWRlc2t0b3AiLAogICJ1dWlkIjogImFkZC10by1kZXNrdG9wQHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "0kchr5daz3s4q18s6aphfyb50wglmlgmjnh3i9ka6d219r0srh64", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLmJldGEiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tbWltb24vYWRkLXRvLWRlc2t0b3AiLAogICJ1dWlkIjogImFkZC10by1kZXNrdG9wQHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "6", "sha256": "04vk49629c9fhvix04h8r3mbnqyncvyzdkbm7bh3wyjhghnczbps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGVhc3kgd2F5IHRvIGNyZWF0ZSBkZXNrdG9wIGFwcCBzaG9ydGN1dCBpbiBnbm9tZSIsCiAgIm5hbWUiOiAiQWRkIHRvIERlc2t0b3AiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVG9tbWltb24vYWRkLXRvLWRlc2t0b3AiLAogICJ1dWlkIjogImFkZC10by1kZXNrdG9wQHRvbW1pbW9uLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "wifi-power-management-toggle@rthery", "name": "Wi-Fi Power Management Toggle", "pname": "wi-fi-power-management-toggle", "description": "Add a toggle to limit Wi-Fi power consumption (when supported by the card) in Gnome System Menu.", "link": "https://extensions.gnome.org/extension/3258/wi-fi-power-management-toggle/", "shell_version_map": {"38": {"version": "2", "sha256": "009r1pswkmisfw0zghk2cawx4qw6av5yldbnw7fcla13qpyj90zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBsaW1pdCBXaS1GaSBwb3dlciBjb25zdW1wdGlvbiAod2hlbiBzdXBwb3J0ZWQgYnkgdGhlIGNhcmQpIGluIEdub21lIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiV2ktRmkgUG93ZXIgTWFuYWdlbWVudCBUb2dnbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3J0aGVyeS9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaS1wb3dlci1tYW5hZ2VtZW50LXRvZ2dsZSIsCiAgInV1aWQiOiAid2lmaS1wb3dlci1tYW5hZ2VtZW50LXRvZ2dsZUBydGhlcnkiLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "2", "sha256": "009r1pswkmisfw0zghk2cawx4qw6av5yldbnw7fcla13qpyj90zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBsaW1pdCBXaS1GaSBwb3dlciBjb25zdW1wdGlvbiAod2hlbiBzdXBwb3J0ZWQgYnkgdGhlIGNhcmQpIGluIEdub21lIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiV2ktRmkgUG93ZXIgTWFuYWdlbWVudCBUb2dnbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3J0aGVyeS9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaS1wb3dlci1tYW5hZ2VtZW50LXRvZ2dsZSIsCiAgInV1aWQiOiAid2lmaS1wb3dlci1tYW5hZ2VtZW50LXRvZ2dsZUBydGhlcnkiLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "009r1pswkmisfw0zghk2cawx4qw6av5yldbnw7fcla13qpyj90zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHRvZ2dsZSB0byBsaW1pdCBXaS1GaSBwb3dlciBjb25zdW1wdGlvbiAod2hlbiBzdXBwb3J0ZWQgYnkgdGhlIGNhcmQpIGluIEdub21lIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiV2ktRmkgUG93ZXIgTWFuYWdlbWVudCBUb2dnbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3J0aGVyeS9nbm9tZS1zaGVsbC1leHRlbnNpb24td2lmaS1wb3dlci1tYW5hZ2VtZW50LXRvZ2dsZSIsCiAgInV1aWQiOiAid2lmaS1wb3dlci1tYW5hZ2VtZW50LXRvZ2dsZUBydGhlcnkiLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "touchpad_window_switcher@gonza.com", "name": "Touchpad Window Switcher", "pname": "tocuhpad-window-switcher", "description": "3 fingers window switcher. To make it work on Xorg check the service on github.\n\nUp - down: toggle between overview and show desktop (Needs Super+D shorcut to be set on Xorg. Set it with `gsettings set org.gnome.desktop.wm.keybindings show-desktop '<Super>d'`).\n\nYou can also change windows by going to the overview (up) and moving to the left and right, and choosing the window with down. The overview is modified so it’s shown in chronological order.\n", "link": "https://extensions.gnome.org/extension/3294/tocuhpad-window-switcher/", "shell_version_map": {"38": {"version": "8", "sha256": "1x016p30z0pci3qlhpmfqrsgy0vwcfxqladny66ppbb32qisbkac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIjMgZmluZ2VycyB3aW5kb3cgc3dpdGNoZXIuIFRvIG1ha2UgaXQgd29yayBvbiBYb3JnIGNoZWNrIHRoZSBzZXJ2aWNlIG9uIGdpdGh1Yi5cblxuVXAgLSBkb3duOiB0b2dnbGUgYmV0d2VlbiBvdmVydmlldyBhbmQgc2hvdyBkZXNrdG9wIChOZWVkcyBTdXBlcitEIHNob3JjdXQgdG8gYmUgc2V0IG9uIFhvcmcuIFNldCBpdCB3aXRoIGBnc2V0dGluZ3Mgc2V0IG9yZy5nbm9tZS5kZXNrdG9wLndtLmtleWJpbmRpbmdzIHNob3ctZGVza3RvcCAnPFN1cGVyPmQnYCkuXG5cbllvdSBjYW4gYWxzbyBjaGFuZ2Ugd2luZG93cyBieSBnb2luZyB0byB0aGUgb3ZlcnZpZXcgKHVwKSBhbmQgbW92aW5nIHRvIHRoZSBsZWZ0IGFuZCByaWdodCwgYW5kIGNob29zaW5nIHRoZSB3aW5kb3cgd2l0aCBkb3duLiBUaGUgb3ZlcnZpZXcgaXMgbW9kaWZpZWQgc28gaXRcdTIwMTlzIHNob3duIGluIGNocm9ub2xvZ2ljYWwgb3JkZXIuXG4iLAogICJuYW1lIjogIlRvdWNocGFkIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci90b3VjaHBhZC13aW5kb3ctc3dpdGNoZXItZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ0b3VjaHBhZF93aW5kb3dfc3dpdGNoZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "gnome-shell-duckduckgo-search-provider@keithcirkel.co.uk", "name": "DuckDuckGo Search Provider", "pname": "duckduckgo-search-provider", "description": "Add DuckDuckGo search suggestions to Gnome Shell Search", "link": "https://extensions.gnome.org/extension/3306/duckduckgo-search-provider/", "shell_version_map": {"38": {"version": "3", "sha256": "1id10vxz5dfq53wbiz8spqkr6d9qvs9dsykxpff29an96lzybj1w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1id10vxz5dfq53wbiz8spqkr6d9qvs9dsykxpff29an96lzybj1w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBEdWNrRHVja0dvIHNlYXJjaCBzdWdnZXN0aW9ucyB0byBHbm9tZSBTaGVsbCBTZWFyY2giLAogICJuYW1lIjogIkR1Y2tEdWNrR28gU2VhcmNoIFByb3ZpZGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2VpdGhhbXVzL2dub21lLXNoZWxsLWR1Y2tkdWNrZ28tc2VhcmNoLXByb3ZpZGVyIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1kdWNrZHVja2dvLXNlYXJjaC1wcm92aWRlckBrZWl0aGNpcmtlbC5jby51ayIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "translate-indicator@athenstaedt.net", "name": "Translate Indicator", "pname": "translate-indicator", "description": "Translate extension for Gnome-Shell - based on translate-shell, inspired by Tudmotu's clipboard-indicator and gufoe's text-translator", "link": "https://extensions.gnome.org/extension/3318/translate-indicator/", "shell_version_map": {"38": {"version": "3", "sha256": "04c3hjbcbn8y9d94swmc3qiv63sjynn71jnwp08sgqa79nrn4cyg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSBleHRlbnNpb24gZm9yIEdub21lLVNoZWxsIC0gYmFzZWQgb24gdHJhbnNsYXRlLXNoZWxsLCBpbnNwaXJlZCBieSBUdWRtb3R1J3MgY2xpcGJvYXJkLWluZGljYXRvciBhbmQgZ3Vmb2UncyB0ZXh0LXRyYW5zbGF0b3IiLAogICJuYW1lIjogIlRyYW5zbGF0ZSBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zZXZlbnV6L2dub21lLXRyYW5zbGF0ZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1pbmRpY2F0b3JAYXRoZW5zdGFlZHQubmV0IiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
 , {"uuid": "material-shell@papyelgringo", "name": "Material Shell", "pname": "material-shell", "description": "A modern desktop interface for Linux - packaged as an extension for GNOME Shell. Improve your user experience and get rid of the anarchy of traditional desktop workflows. Designed to simplify navigation and reduce the need to manipulate windows in order to improve productivity. It's meant to be 100% predictable and bring the benefits of tools coveted by professionals to everyone.", "link": "https://extensions.gnome.org/extension/3357/material-shell/", "shell_version_map": {"38": {"version": "12", "sha256": "1rjybqlgbjmflg21cm7js2gjzvdhw14lpzncpzwf18rh4mp2adnr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInRoZW1lIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwudGhlbWUiLAogICJ0d2Vha3MiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50d2Vha3MiLAogICJ1cmwiOiAiaHR0cHM6Ly9tYXRlcmlhbC1zaGVsbC5jb20iLAogICJ1dWlkIjogIm1hdGVyaWFsLXNoZWxsQHBhcHllbGdyaW5nbyIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "17", "sha256": "19zniqwksrfxcdw2byqhi8px0bzb28qljzzl0wl2cb8jnm517g6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidGhlbWUiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50aGVtZSIsCiAgInR3ZWFrcyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLnR3ZWFrcyIsCiAgInVybCI6ICJodHRwczovL21hdGVyaWFsLXNoZWxsLmNvbSIsCiAgInV1aWQiOiAibWF0ZXJpYWwtc2hlbGxAcGFweWVsZ3JpbmdvIiwKICAidmVyc2lvbiI6IDE3Cn0="}, "41": {"version": "17", "sha256": "19zniqwksrfxcdw2byqhi8px0bzb28qljzzl0wl2cb8jnm517g6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJpbmRpbmdzIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1hdGVyaWFsc2hlbGwuYmluZGluZ3MiLAogICJkZXNjcmlwdGlvbiI6ICJBIG1vZGVybiBkZXNrdG9wIGludGVyZmFjZSBmb3IgTGludXggLSBwYWNrYWdlZCBhcyBhbiBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBJbXByb3ZlIHlvdXIgdXNlciBleHBlcmllbmNlIGFuZCBnZXQgcmlkIG9mIHRoZSBhbmFyY2h5IG9mIHRyYWRpdGlvbmFsIGRlc2t0b3Agd29ya2Zsb3dzLiBEZXNpZ25lZCB0byBzaW1wbGlmeSBuYXZpZ2F0aW9uIGFuZCByZWR1Y2UgdGhlIG5lZWQgdG8gbWFuaXB1bGF0ZSB3aW5kb3dzIGluIG9yZGVyIHRvIGltcHJvdmUgcHJvZHVjdGl2aXR5LiBJdCdzIG1lYW50IHRvIGJlIDEwMCUgcHJlZGljdGFibGUgYW5kIGJyaW5nIHRoZSBiZW5lZml0cyBvZiB0b29scyBjb3ZldGVkIGJ5IHByb2Zlc3Npb25hbHMgdG8gZXZlcnlvbmUuIiwKICAibGF5b3V0cyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLmxheW91dHMiLAogICJuYW1lIjogIk1hdGVyaWFsIFNoZWxsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidGhlbWUiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWF0ZXJpYWxzaGVsbC50aGVtZSIsCiAgInR3ZWFrcyI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tYXRlcmlhbHNoZWxsLnR3ZWFrcyIsCiAgInVybCI6ICJodHRwczovL21hdGVyaWFsLXNoZWxsLmNvbSIsCiAgInV1aWQiOiAibWF0ZXJpYWwtc2hlbGxAcGFweWVsZ3JpbmdvIiwKICAidmVyc2lvbiI6IDE3Cn0="}}}
-, {"uuid": "proxyprofiles@massamany.github.com", "name": "Proxy Profiles", "pname": "proxy-profiles", "description": "Swich easily between several proxy profiles.", "link": "https://extensions.gnome.org/extension/3379/proxy-profiles/", "shell_version_map": {"38": {"version": "4", "sha256": "0zf77wc66k1hmq8praw2635kkfy90cmlp6phfxpy8rzw3002nvyi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aWNoIGVhc2lseSBiZXR3ZWVuIHNldmVyYWwgcHJveHkgcHJvZmlsZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJveHlwcm9maWxlcyIsCiAgIm5hbWUiOiAiUHJveHkgUHJvZmlsZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXNzYW1hbnkvcHJveHlwcm9maWxlcyIsCiAgInV1aWQiOiAicHJveHlwcm9maWxlc0BtYXNzYW1hbnkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "0zf77wc66k1hmq8praw2635kkfy90cmlp6phfxpy8rzw3002nvyi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aWNoIGVhc2lseSBiZXR3ZWVuIHNldmVyYWwgcHJveHkgcHJvZmlsZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJveHlwcm9maWxlcyIsCiAgIm5hbWUiOiAiUHJveHkgUHJvZmlsZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjUiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXNzYW1hbnkvcHJveHlwcm9maWxlcyIsCiAgInV1aWQiOiAicHJveHlwcm9maWxlc0BtYXNzYW1hbnkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "proxyprofiles@massamany.github.com", "name": "Proxy Profiles", "pname": "proxy-profiles", "description": "Swich easily between several proxy profiles.", "link": "https://extensions.gnome.org/extension/3379/proxy-profiles/", "shell_version_map": {"38": {"version": "5", "sha256": "1b2mabrvpkadxc6v5fczamh2hqh7va2990k10awxy18c0vm3p5kw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aWNoIGVhc2lseSBiZXR3ZWVuIHNldmVyYWwgcHJveHkgcHJvZmlsZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJveHlwcm9maWxlcyIsCiAgIm5hbWUiOiAiUHJveHkgUHJvZmlsZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFzc2FtYW55L3Byb3h5cHJvZmlsZXMiLAogICJ1dWlkIjogInByb3h5cHJvZmlsZXNAbWFzc2FtYW55LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1b2mabrvpkadxc6v5fczamh2hqh7va2990k10awxy18c0vm3p5kw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aWNoIGVhc2lseSBiZXR3ZWVuIHNldmVyYWwgcHJveHkgcHJvZmlsZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHJveHlwcm9maWxlcyIsCiAgIm5hbWUiOiAiUHJveHkgUHJvZmlsZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFzc2FtYW55L3Byb3h5cHJvZmlsZXMiLAogICJ1dWlkIjogInByb3h5cHJvZmlsZXNAbWFzc2FtYW55LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "galaxy-buds-battery@pemmoura", "name": "Galaxy Buds Battery", "pname": "galaxy-buds-battery", "description": "Galaxy Buds battery indicator.", "link": "https://extensions.gnome.org/extension/3383/galaxy-buds-battery/", "shell_version_map": {"38": {"version": "6", "sha256": "1f25mc5idqaw3v9b2xffiij9y0pcrl8msz85p8cz2x5l2r3sc7wm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdhbGF4eSBCdWRzIGJhdHRlcnkgaW5kaWNhdG9yLiIsCiAgIm5hbWUiOiAiR2FsYXh5IEJ1ZHMgQmF0dGVyeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BlbW1vdXJhL2dhbGF4eWJ1ZHMtZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnYWxheHktYnVkcy1iYXR0ZXJ5QHBlbW1vdXJhIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "color-picker@tuberry", "name": "Color Picker", "pname": "color-picker", "description": "Simple color picker for gnome shell\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3396/color-picker/", "shell_version_map": {"38": {"version": "20", "sha256": "1ss4r8dpa7smxbyz41rw3wl1gy20bvy89xdvwfz6zfhv3db5vl86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yLXBpY2tlciIsCiAgIm5hbWUiOiAiQ29sb3IgUGlja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yLXBpY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvY29sb3ItcGlja2VyIiwKICAidXVpZCI6ICJjb2xvci1waWNrZXJAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "25", "sha256": "0lx4bs7yfqkphb5cwmakl6xjf14q89m0yn70a882drakfhzgnagw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImNvbG9yLXBpY2tlciIsCiAgIm5hbWUiOiAiQ29sb3IgUGlja2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNvbG9yLXBpY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2NvbG9yLXBpY2tlciIsCiAgInV1aWQiOiAiY29sb3ItcGlja2VyQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "41": {"version": "27", "sha256": "1scc0cgdzrg9rmpr090myrsxhfgp03aqld9jh4grqbfza6lrz4jd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjb2xvciBwaWNrZXIgZm9yIGdub21lIHNoZWxsXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1jb2xvci1waWNrZXIiLAogICJuYW1lIjogIkNvbG9yIFBpY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jb2xvci1waWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9jb2xvci1waWNrZXIiLAogICJ1dWlkIjogImNvbG9yLXBpY2tlckB0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDI3Cn0="}}}
 , {"uuid": "yaru-remix-theme-toggle@muqtxdir.me", "name": "Yaru remix theme toggle", "pname": "yaru-remix-theme-toggle", "description": "Switches GTK3, Gnome-shell, cursor and icon themes to Yaru-remix variants", "link": "https://extensions.gnome.org/extension/3402/yaru-remix-theme-toggle/", "shell_version_map": {"38": {"version": "2", "sha256": "04dh163dshjnq3fa1y5kbkgl94q4cifvffq6i2pr4zd1v7d4zrf6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvcnMiOiBbCiAgICAibXVxdGFkaXI1NTU1QGdtYWlsLmNvbSIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJTd2l0Y2hlcyBHVEszLCBHbm9tZS1zaGVsbCwgY3Vyc29yIGFuZCBpY29uIHRoZW1lcyB0byBZYXJ1LXJlbWl4IHZhcmlhbnRzIiwKICAibmFtZSI6ICJZYXJ1IHJlbWl4IHRoZW1lIHRvZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL011cXR4ZGlyL3lhcnUtcmVtaXgtdGhlbWUtdG9nZ2xlIiwKICAidXVpZCI6ICJ5YXJ1LXJlbWl4LXRoZW1lLXRvZ2dsZUBtdXF0eGRpci5tZSIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "ascii_emoji_buckets@HarshKhandeparkar", "name": "ASCII Emoji Buckets", "pname": "ascii-emoji-buckets", "description": "Buckets of ASCII emojis for your messaging pleasure. A fork of Emoji Buckets.", "link": "https://extensions.gnome.org/extension/3408/ascii-emoji-buckets/", "shell_version_map": {"38": {"version": "9", "sha256": "1srqsjzcywywlhapaca41v4pc99w503m5532g6cc6qwz9f2r4w5h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1Y2tldHMgb2YgQVNDSUkgZW1vamlzIGZvciB5b3VyIG1lc3NhZ2luZyBwbGVhc3VyZS4gQSBmb3JrIG9mIEVtb2ppIEJ1Y2tldHMuIiwKICAibmFtZSI6ICJBU0NJSSBFbW9qaSBCdWNrZXRzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFzY2lpLWVtb2ppLWJ1Y2tldHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjMuMzguMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0hhcnNoS2hhbmRlcGFya2FyL2dub21lLWFzY2lpLWVtb2ppLWJ1Y2tldHMiLAogICJ1dWlkIjogImFzY2lpX2Vtb2ppX2J1Y2tldHNASGFyc2hLaGFuZGVwYXJrYXIiLAogICJ2ZXJzaW9uIjogOQp9"}}}
 , {"uuid": "user-stylesheet@tomaszgasior.pl", "name": "User style sheet & font", "pname": "user-stylesheet-font", "description": "Load custom style sheet from ~/.config/gnome-shell/gnome-shell.css. Use GTK font family and font size from GNOME Tweaks in GNOME Shell.", "link": "https://extensions.gnome.org/extension/3414/user-stylesheet-font/", "shell_version_map": {"38": {"version": "4", "sha256": "1ibmhj1ixw063r7p8fwnanf4k21k8vxmll78ydqia5gdwkv79i8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgY3VzdG9tIHN0eWxlIHNoZWV0IGZyb20gfi8uY29uZmlnL2dub21lLXNoZWxsL2dub21lLXNoZWxsLmNzcy4gVXNlIEdUSyBmb250IGZhbWlseSBhbmQgZm9udCBzaXplIGZyb20gR05PTUUgVHdlYWtzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiVXNlciBzdHlsZSBzaGVldCAmIGZvbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1RvbWFzekdhc2lvci9nbm9tZS1zaGVsbC11c2VyLXN0eWxlc2hlZXQtYW5kLWZvbnQiLAogICJ1dWlkIjogInVzZXItc3R5bGVzaGVldEB0b21hc3pnYXNpb3IucGwiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "1ibmhj1ixw063r7p8fwnanf4k21k8vxmll78ydqia5gdwkv79i8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgY3VzdG9tIHN0eWxlIHNoZWV0IGZyb20gfi8uY29uZmlnL2dub21lLXNoZWxsL2dub21lLXNoZWxsLmNzcy4gVXNlIEdUSyBmb250IGZhbWlseSBhbmQgZm9udCBzaXplIGZyb20gR05PTUUgVHdlYWtzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiVXNlciBzdHlsZSBzaGVldCAmIGZvbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1RvbWFzekdhc2lvci9nbm9tZS1zaGVsbC11c2VyLXN0eWxlc2hlZXQtYW5kLWZvbnQiLAogICJ1dWlkIjogInVzZXItc3R5bGVzaGVldEB0b21hc3pnYXNpb3IucGwiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "1ibmhj1ixw063r7p8fwnanf4k21k8vxmll78ydqia5gdwkv79i8a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgY3VzdG9tIHN0eWxlIHNoZWV0IGZyb20gfi8uY29uZmlnL2dub21lLXNoZWxsL2dub21lLXNoZWxsLmNzcy4gVXNlIEdUSyBmb250IGZhbWlseSBhbmQgZm9udCBzaXplIGZyb20gR05PTUUgVHdlYWtzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiVXNlciBzdHlsZSBzaGVldCAmIGZvbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1RvbWFzekdhc2lvci9nbm9tZS1zaGVsbC11c2VyLXN0eWxlc2hlZXQtYW5kLWZvbnQiLAogICJ1dWlkIjogInVzZXItc3R5bGVzaGVldEB0b21hc3pnYXNpb3IucGwiLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "wg-indicator@dpf12110.gmail.com", "name": "WG Indicator", "pname": "wg-indicator", "description": "A status indicator for Wireguard connections.", "link": "https://extensions.gnome.org/extension/3418/wg-indicator/", "shell_version_map": {"40": {"version": "13", "sha256": "126n9gbvh1yshbvx74af01f7jyrjr4p0299x9ki171d1f40djrvs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIGluZGljYXRvciBmb3IgV2lyZWd1YXJkIGNvbm5lY3Rpb25zLiIsCiAgIm5hbWUiOiAiV0cgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjEiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N5bmMxMjExL3dnLWluZGljYXRvciIsCiAgInV1aWQiOiAid2ctaW5kaWNhdG9yQGRwZjEyMTEwLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "126n9gbvh1yshbvx74af01f7jyrjr4p0299x9ki171d1f40djrvs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIGluZGljYXRvciBmb3IgV2lyZWd1YXJkIGNvbm5lY3Rpb25zLiIsCiAgIm5hbWUiOiAiV0cgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIyLjEiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N5bmMxMjExL3dnLWluZGljYXRvciIsCiAgInV1aWQiOiAid2ctaW5kaWNhdG9yQGRwZjEyMTEwLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxMwp9"}}}
-, {"uuid": "flypie@schneegans.github.com", "name": "Fly-Pie", "pname": "fly-pie", "description": "A marking menu which can be used to launch applications, simulate hotkeys, open URLs and much more.", "link": "https://extensions.gnome.org/extension/3433/fly-pie/", "shell_version_map": {"38": {"version": "9", "sha256": "1mcfhxfz1q7z47a0siiqs9dlc672i6sr5nrblq09m33jbrm4kkrg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "9", "sha256": "1mcfhxfz1q7z47a0siiqs9dlc672i6sr5nrblq09m33jbrm4kkrg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}, "41": {"version": "9", "sha256": "1mcfhxfz1q7z47a0siiqs9dlc672i6sr5nrblq09m33jbrm4kkrg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
+, {"uuid": "flypie@schneegans.github.com", "name": "Fly-Pie", "pname": "fly-pie", "description": "A marking menu which can be used to launch applications, simulate hotkeys, open URLs and much more.", "link": "https://extensions.gnome.org/extension/3433/fly-pie/", "shell_version_map": {"38": {"version": "12", "sha256": "0cafi61r07818jl9p65z36170nv2720g6vnwajr3xshw2qz7gwz0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "0cafi61r07818jl9p65z36170nv2720g6vnwajr3xshw2qz7gwz0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "0cafi61r07818jl9p65z36170nv2720g6vnwajr3xshw2qz7gwz0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgbWFya2luZyBtZW51IHdoaWNoIGNhbiBiZSB1c2VkIHRvIGxhdW5jaCBhcHBsaWNhdGlvbnMsIHNpbXVsYXRlIGhvdGtleXMsIG9wZW4gVVJMcyBhbmQgbXVjaCBtb3JlLiIsCiAgImdldHRleHQtZG9tYWluIjogImZseXBpZSIsCiAgIm5hbWUiOiAiRmx5LVBpZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbHlwaWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1NjaG5lZWdhbnMvRmx5LVBpZSIsCiAgInV1aWQiOiAiZmx5cGllQHNjaG5lZWdhbnMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMgp9"}}}
 , {"uuid": "jiggle@jeffchannell.com", "name": "Jiggle", "pname": "jiggle", "description": "Jiggle is a Gnome Shell extension that highlights the cursor position when the mouse is moved rapidly.", "link": "https://extensions.gnome.org/extension/3438/jiggle/", "shell_version_map": {"38": {"version": "8", "sha256": "0f5zwvcqz648sn11nl49r0ki6zy5c2hp4imgba0dlc02fags7pxz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkppZ2dsZSBpcyBhIEdub21lIFNoZWxsIGV4dGVuc2lvbiB0aGF0IGhpZ2hsaWdodHMgdGhlIGN1cnNvciBwb3NpdGlvbiB3aGVuIHRoZSBtb3VzZSBpcyBtb3ZlZCByYXBpZGx5LiIsCiAgIm5hbWUiOiAiSmlnZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2LjMiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plZmZjaGFubmVsbC9qaWdnbGUiLAogICJ1dWlkIjogImppZ2dsZUBqZWZmY2hhbm5lbGwuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0f5zwvcqz648sn11nl49r0ki6zy5c2hp4imgba0dlc02fags7pxz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkppZ2dsZSBpcyBhIEdub21lIFNoZWxsIGV4dGVuc2lvbiB0aGF0IGhpZ2hsaWdodHMgdGhlIGN1cnNvciBwb3NpdGlvbiB3aGVuIHRoZSBtb3VzZSBpcyBtb3ZlZCByYXBpZGx5LiIsCiAgIm5hbWUiOiAiSmlnZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2LjMiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plZmZjaGFubmVsbC9qaWdnbGUiLAogICJ1dWlkIjogImppZ2dsZUBqZWZmY2hhbm5lbGwuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "showtime-horizontal@xenlism.github.io", "name": "Showtime Horizontal - Desktop Widget", "pname": "showtime-horizontal", "description": "Horizontal Style Date &amp; Clock Widget base on Budgie Desktop Widget", "link": "https://extensions.gnome.org/extension/3442/showtime-horizontal/", "shell_version_map": {"38": {"version": "5", "sha256": "1rdf1alxfyi29wnz2bzm20j9k5q8sn3a6d4si841cjbhmvqdcqhj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvcml6b250YWwgU3R5bGUgRGF0ZSAmYW1wOyBDbG9jayBXaWRnZXQgYmFzZSBvbiBCdWRnaWUgRGVza3RvcCBXaWRnZXQiLAogICJleHRlbnNpb24taWQiOiAic2hvd3RpbWUtaG9yaXpvbnRhbCIsCiAgIm5hbWUiOiAiU2hvd3RpbWUgSG9yaXpvbnRhbCAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lLWhvcml6b250YWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS94ZW5saXNtL3Nob3d0aW1lIiwKICAidXVpZCI6ICJzaG93dGltZS1ob3Jpem9udGFsQHhlbmxpc20uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "6", "sha256": "1zy7lkkmcjxkc30hys98s0xlmi93cyc6jz6qx7zfv1v7w03iw3ld", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvcml6b250YWwgU3R5bGUgRGF0ZSAmYW1wOyBDbG9jayBXaWRnZXQgYmFzZSBvbiBCdWRnaWUgRGVza3RvcCBXaWRnZXQiLAogICJleHRlbnNpb24taWQiOiAic2hvd3RpbWUtaG9yaXpvbnRhbCIsCiAgIm5hbWUiOiAiU2hvd3RpbWUgSG9yaXpvbnRhbCAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lLWhvcml6b250YWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVubGlzbS9zaG93dGltZSIsCiAgInV1aWQiOiAic2hvd3RpbWUtaG9yaXpvbnRhbEB4ZW5saXNtLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "display-switcher@iyadk.com", "name": "Display Switcher 2", "pname": "display-switcher", "description": "This extension allows you to toggle between display modes quickly using Super + I.  You can switch between Extended, Primary, Clone, and Secondary Only modes quickly.  Selecting Extended mode multiple times will flip your secondary monitor's relative position to the primary (to the left or right of it).  This extension was originally developed by Lucas Diedrich - https://extensions.gnome.org/extension/1030/display-switcher/ and has been adapted to support Gnome Shell's v3.36.", "link": "https://extensions.gnome.org/extension/3459/display-switcher/", "shell_version_map": {"38": {"version": "2", "sha256": "13vb68xfmcx525yk2vgfny6xvi06nzv103an5zab90hvmj6ggzlj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyB5b3UgdG8gdG9nZ2xlIGJldHdlZW4gZGlzcGxheSBtb2RlcyBxdWlja2x5IHVzaW5nIFN1cGVyICsgSS4gIFlvdSBjYW4gc3dpdGNoIGJldHdlZW4gRXh0ZW5kZWQsIFByaW1hcnksIENsb25lLCBhbmQgU2Vjb25kYXJ5IE9ubHkgbW9kZXMgcXVpY2tseS4gIFNlbGVjdGluZyBFeHRlbmRlZCBtb2RlIG11bHRpcGxlIHRpbWVzIHdpbGwgZmxpcCB5b3VyIHNlY29uZGFyeSBtb25pdG9yJ3MgcmVsYXRpdmUgcG9zaXRpb24gdG8gdGhlIHByaW1hcnkgKHRvIHRoZSBsZWZ0IG9yIHJpZ2h0IG9mIGl0KS4gIFRoaXMgZXh0ZW5zaW9uIHdhcyBvcmlnaW5hbGx5IGRldmVsb3BlZCBieSBMdWNhcyBEaWVkcmljaCAtIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEwMzAvZGlzcGxheS1zd2l0Y2hlci8gYW5kIGhhcyBiZWVuIGFkYXB0ZWQgdG8gc3VwcG9ydCBHbm9tZSBTaGVsbCdzIHYzLjM2LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNwbGF5LXN3aXRjaGVyIiwKICAibmFtZSI6ICJEaXNwbGF5IFN3aXRjaGVyIDIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiTHVjYXMgRGllZHJpY2giLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGlzcGxheS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2l5YWRrYW5kYWxhZnQvZ25vbWUtZGlzcGxheS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZGlzcGxheS1zd2l0Y2hlckBpeWFkay5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
@@ -345,11 +348,12 @@
 , {"uuid": "transparent-shell@siroj42.github.io", "name": "Transparent Shell", "pname": "transparent-shell", "description": "Make the main shell components (Top bar, dash, search box) transparent.", "link": "https://extensions.gnome.org/extension/3518/transparent-shell/", "shell_version_map": {"38": {"version": "6", "sha256": "109c5w2p7w9arfy4wrqmyyi7vd5fwdr8n2cz250bpxiij6zq140k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIG1haW4gc2hlbGwgY29tcG9uZW50cyAoVG9wIGJhciwgZGFzaCwgc2VhcmNoIGJveCkgdHJhbnNwYXJlbnQuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1Npcm9qNDIvZ25vbWUtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXNoZWxsIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC1zaGVsbEBzaXJvajQyLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "7", "sha256": "0nzx401vvzn8n9xnkd13v5jim0l7zd01p1lf0lbgydrr8gh67i95", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIG1haW4gc2hlbGwgY29tcG9uZW50cyAoVG9wIGJhciwgZGFzaCwgc2VhcmNoIGJveCkgdHJhbnNwYXJlbnQuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBTaGVsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TaXJvajQyL2dub21lLWV4dGVuc2lvbi10cmFuc3BhcmVudC1zaGVsbCIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtc2hlbGxAc2lyb2o0Mi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"uuid": "true-color-invert@jackkenney", "name": "True Color Invert", "pname": "true-color-invert", "description": "Inverts the color of individual windows so they are hue-preserved.\nDefault shortcut is Super+I", "link": "https://extensions.gnome.org/extension/3530/true-color-invert/", "shell_version_map": {"38": {"version": "8", "sha256": "0l8sz8w8l6cmkn19sg34gmbh79sx49jdx1gk8xzh7yyxgqxhayzl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludmVydHMgdGhlIGNvbG9yIG9mIGluZGl2aWR1YWwgd2luZG93cyBzbyB0aGV5IGFyZSBodWUtcHJlc2VydmVkLlxuRGVmYXVsdCBzaG9ydGN1dCBpcyBTdXBlcitJIiwKICAibmFtZSI6ICJUcnVlIENvbG9yIEludmVydCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cnVlLWNvbG9yLWludmVydCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamFja2tlbm5leS9nbm9tZS10cnVlLWNvbG9yLWludmVydCIsCiAgInV1aWQiOiAidHJ1ZS1jb2xvci1pbnZlcnRAamFja2tlbm5leSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "0l8sz8w8l6cmkn19sg34gmbh79sx49jdx1gk8xzh7yyxgqxhayzl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludmVydHMgdGhlIGNvbG9yIG9mIGluZGl2aWR1YWwgd2luZG93cyBzbyB0aGV5IGFyZSBodWUtcHJlc2VydmVkLlxuRGVmYXVsdCBzaG9ydGN1dCBpcyBTdXBlcitJIiwKICAibmFtZSI6ICJUcnVlIENvbG9yIEludmVydCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cnVlLWNvbG9yLWludmVydCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamFja2tlbm5leS9nbm9tZS10cnVlLWNvbG9yLWludmVydCIsCiAgInV1aWQiOiAidHJ1ZS1jb2xvci1pbnZlcnRAamFja2tlbm5leSIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "0l8sz8w8l6cmkn19sg34gmbh79sx49jdx1gk8xzh7yyxgqxhayzl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludmVydHMgdGhlIGNvbG9yIG9mIGluZGl2aWR1YWwgd2luZG93cyBzbyB0aGV5IGFyZSBodWUtcHJlc2VydmVkLlxuRGVmYXVsdCBzaG9ydGN1dCBpcyBTdXBlcitJIiwKICAibmFtZSI6ICJUcnVlIENvbG9yIEludmVydCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cnVlLWNvbG9yLWludmVydCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamFja2tlbm5leS9nbm9tZS10cnVlLWNvbG9yLWludmVydCIsCiAgInV1aWQiOiAidHJ1ZS1jb2xvci1pbnZlcnRAamFja2tlbm5leSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
 , {"uuid": "gitlab-extension@infinicode.de", "name": "GitLab Extension", "pname": "gitlab-extension", "description": "GitLab extension utilizes the official GitLab API to provide a comfortable overview about your projects, commits & pipelines.\n", "link": "https://extensions.gnome.org/extension/3535/gitlab-extension/", "shell_version_map": {"38": {"version": "4", "sha256": "04hclkbj95alqv9lq5qa5dnf7wb8ssd08q0lzd9wxzw95hiqcvwd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdExhYiBleHRlbnNpb24gdXRpbGl6ZXMgdGhlIG9mZmljaWFsIEdpdExhYiBBUEkgdG8gcHJvdmlkZSBhIGNvbWZvcnRhYmxlIG92ZXJ2aWV3IGFib3V0IHlvdXIgcHJvamVjdHMsIGNvbW1pdHMgJiBwaXBlbGluZXMuXG4iLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIkdpdExhYiBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2luYXRpYy9naXRsYWItZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRsYWItZXh0ZW5zaW9uQGluZmluaWNvZGUuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "04hclkbj95alqv9lq5qa5dnf7wb8ssd08q0lzd9wxzw95hiqcvwd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdExhYiBleHRlbnNpb24gdXRpbGl6ZXMgdGhlIG9mZmljaWFsIEdpdExhYiBBUEkgdG8gcHJvdmlkZSBhIGNvbWZvcnRhYmxlIG92ZXJ2aWV3IGFib3V0IHlvdXIgcHJvamVjdHMsIGNvbW1pdHMgJiBwaXBlbGluZXMuXG4iLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIkdpdExhYiBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2luYXRpYy9naXRsYWItZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJnaXRsYWItZXh0ZW5zaW9uQGluZmluaWNvZGUuZGUiLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "downfall@torculus.github.com", "name": "DownFall", "pname": "downfall", "description": "Moves text of your choice across the screen. Can simulate leaves, snow, fireworks, ufos, and more!", "link": "https://extensions.gnome.org/extension/3539/downfall/", "shell_version_map": {"38": {"version": "12", "sha256": "0mrr6kdwi1qhqzxy3iymhc4jjplph2hrdc2r4xc4i4787qikw27x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAibmFtZSI6ICJEb3duRmFsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9yY3VsdXMvRG93bkZhbGwiLAogICJ1dWlkIjogImRvd25mYWxsQHRvcmN1bHVzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "12", "sha256": "0mrr6kdwi1qhqzxy3iymhc4jjplph2hrdc2r4xc4i4787qikw27x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAibmFtZSI6ICJEb3duRmFsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9yY3VsdXMvRG93bkZhbGwiLAogICJ1dWlkIjogImRvd25mYWxsQHRvcmN1bHVzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "41": {"version": "12", "sha256": "0mrr6kdwi1qhqzxy3iymhc4jjplph2hrdc2r4xc4i4787qikw27x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAibmFtZSI6ICJEb3duRmFsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9yY3VsdXMvRG93bkZhbGwiLAogICJ1dWlkIjogImRvd25mYWxsQHRvcmN1bHVzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
+, {"uuid": "downfall@torculus.github.com", "name": "DownFall", "pname": "downfall", "description": "Moves text of your choice across the screen. Can simulate leaves, snow, fireworks, ufos, and more!", "link": "https://extensions.gnome.org/extension/3539/downfall/", "shell_version_map": {"38": {"version": "15", "sha256": "1ggr1i9yl2jgdqqab5d5sdb0bs3rni24rliskj9ziyb3mqw3vzbr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAibmFtZSI6ICJEb3duRmFsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9yY3VsdXMvRG93bkZhbGwiLAogICJ1dWlkIjogImRvd25mYWxsQHRvcmN1bHVzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "15", "sha256": "1ggr1i9yl2jgdqqab5d5sdb0bs3rni24rliskj9ziyb3mqw3vzbr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAibmFtZSI6ICJEb3duRmFsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9yY3VsdXMvRG93bkZhbGwiLAogICJ1dWlkIjogImRvd25mYWxsQHRvcmN1bHVzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "15", "sha256": "1ggr1i9yl2jgdqqab5d5sdb0bs3rni24rliskj9ziyb3mqw3vzbr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRleHQgb2YgeW91ciBjaG9pY2UgYWNyb3NzIHRoZSBzY3JlZW4uIENhbiBzaW11bGF0ZSBsZWF2ZXMsIHNub3csIGZpcmV3b3JrcywgdWZvcywgYW5kIG1vcmUhIiwKICAibmFtZSI6ICJEb3duRmFsbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9yY3VsdXMvRG93bkZhbGwiLAogICJ1dWlkIjogImRvd25mYWxsQHRvcmN1bHVzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
 , {"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": "6", "sha256": "0kfw4s2y0r51plmchzga7fkd69ynksccz881xh683k4as6af4mcg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYWNrcyB0aGUgdGltZSB5b3UgaGF2ZSBiZWVuIGFjdGl2ZWx5IHVzaW5nIHlvdXIgY29tcHV0ZXIiLAogICJuYW1lIjogIlRpbWUgQXdhcmVuZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vc3IuaHQvfmthcHBhL2dub21lLXNoZWxsLXRpbWUtYXdhcmVuZXNzLyIsCiAgInV1aWQiOiAidGltZS1hd2FyZW5lc3NAZ25vbWUtZXh0ZW5zaW9ucy5rYXByYW5vZmYucnUiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "0kfw4s2y0r51plmchzga7fkd69ynksccz881xh683k4as6af4mcg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYWNrcyB0aGUgdGltZSB5b3UgaGF2ZSBiZWVuIGFjdGl2ZWx5IHVzaW5nIHlvdXIgY29tcHV0ZXIiLAogICJuYW1lIjogIlRpbWUgQXdhcmVuZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vc3IuaHQvfmthcHBhL2dub21lLXNoZWxsLXRpbWUtYXdhcmVuZXNzLyIsCiAgInV1aWQiOiAidGltZS1hd2FyZW5lc3NAZ25vbWUtZXh0ZW5zaW9ucy5rYXByYW5vZmYucnUiLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "0kfw4s2y0r51plmchzga7fkd69ynksccz881xh683k4as6af4mcg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYWNrcyB0aGUgdGltZSB5b3UgaGF2ZSBiZWVuIGFjdGl2ZWx5IHVzaW5nIHlvdXIgY29tcHV0ZXIiLAogICJuYW1lIjogIlRpbWUgQXdhcmVuZXNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vc3IuaHQvfmthcHBhL2dub21lLXNoZWxsLXRpbWUtYXdhcmVuZXNzLyIsCiAgInV1aWQiOiAidGltZS1hd2FyZW5lc3NAZ25vbWUtZXh0ZW5zaW9ucy5rYXByYW5vZmYucnUiLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "mullvadindicator@pobega.github.com", "name": "Mullvad Indicator", "pname": "mullvad-indicator", "description": "Mullvad connection status indicator", "link": "https://extensions.gnome.org/extension/3560/mullvad-indicator/", "shell_version_map": {"38": {"version": "4", "sha256": "05vcb7g51byvnk7bzajb1i7knj4zwjiksia97wabk41a2bagc4jc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUG9iZWdhL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tdWxsdmFkLWluZGljYXRvciIsCiAgInV1aWQiOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "05vcb7g51byvnk7bzajb1i7knj4zwjiksia97wabk41a2bagc4jc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUG9iZWdhL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tdWxsdmFkLWluZGljYXRvciIsCiAgInV1aWQiOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "05vcb7g51byvnk7bzajb1i7knj4zwjiksia97wabk41a2bagc4jc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11bGx2YWQgY29ubmVjdGlvbiBzdGF0dXMgaW5kaWNhdG9yIiwKICAibmFtZSI6ICJNdWxsdmFkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUG9iZWdhL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tdWxsdmFkLWluZGljYXRvciIsCiAgInV1aWQiOiAibXVsbHZhZGluZGljYXRvckBwb2JlZ2EuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"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": "10", "sha256": "16nx63qcaih4812hyvhw0kypvik88g8423i5sp1360bwkrdppc36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQiLAogICJ1dWlkIjogInRhc2std2lkZ2V0QGp1b3phc21pc2tpbmlzLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiAxMCwKICAid2lraSI6ICJodHRwczovL2dpdGxhYi5jb20vam1pc2tpbmlzL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrLXdpZGdldC93aWtpcyIKfQ=="}, "40": {"version": "10", "sha256": "16nx63qcaih4812hyvhw0kypvik88g8423i5sp1360bwkrdppc36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQiLAogICJ1dWlkIjogInRhc2std2lkZ2V0QGp1b3phc21pc2tpbmlzLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiAxMCwKICAid2lraSI6ICJodHRwczovL2dpdGxhYi5jb20vam1pc2tpbmlzL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrLXdpZGdldC93aWtpcyIKfQ=="}, "41": {"version": "10", "sha256": "16nx63qcaih4812hyvhw0kypvik88g8423i5sp1360bwkrdppc36", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImJhc2UiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGFzay13aWRnZXQiLAogICJjb2ZmZWUiOiAiaHR0cHM6Ly93d3cuYnV5bWVhY29mZmVlLmNvbS9uYnh3ZnBtIiwKICAiZGVwZW5kZW5jaWVzIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9qbWlza2luaXMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhc2std2lkZ2V0L3dpa2lzL0luc3RhbGxhdGlvbiIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGFza3MgbmV4dCB0byB0aGUgY2FsZW5kYXIgd2lkZ2V0LlxuXG5WaXNpdCBvdXIgV2lraSBwYWdlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCB0cm91Ymxlc2hvb3RpbmcuIiwKICAiZXBhdGgiOiAiL29yZy9nbm9tZS9zaGVsbC9leHRlbnNpb25zL3Rhc2std2lkZ2V0IiwKICAiZ3Jlc291cmNlIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhc2std2lkZ2V0LmdyZXNvdXJjZSIsCiAgImxpYmVyYXBheSI6ICJodHRwczovL2xpYmVyYXBheS5jb20vam9hc2lzLyIsCiAgImxvY2FsZSI6ICJ1c2VyLXNwZWNpZmljIiwKICAibmFtZSI6ICJUYXNrIFdpZGdldCIsCiAgInBheXBhbCI6ICJodHRwczovL3BheXBhbC5tZS9qbWlza2luaXMiLAogICJzY2hlbWFzIjogInVzZXItc3BlY2lmaWMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2ptaXNraW5pcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdGFzay13aWRnZXQiLAogICJ1dWlkIjogInRhc2std2lkZ2V0QGp1b3phc21pc2tpbmlzLmdpdGxhYi5pbyIsCiAgInZlcnNpb24iOiAxMCwKICAid2lraSI6ICJodHRwczovL2dpdGxhYi5jb20vam1pc2tpbmlzL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrLXdpZGdldC93aWtpcyIKfQ=="}}}
 , {"uuid": "air-quality@mcardillo55", "name": "Air Quality", "pname": "air-quality", "description": "View local air quality from PurpleAir in the top bar", "link": "https://extensions.gnome.org/extension/3574/air-quality/", "shell_version_map": {"40": {"version": "2", "sha256": "037hbbb6z3gj818hqxqq96yszd1hka57pn4gj9f5kps7ak5hca4l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpZXcgbG9jYWwgYWlyIHF1YWxpdHkgZnJvbSBQdXJwbGVBaXIgaW4gdGhlIHRvcCBiYXIiLAogICJuYW1lIjogIkFpciBRdWFsaXR5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21jYXJkaWxsbzU1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1haXItcXVhbGl0eSIsCiAgInV1aWQiOiAiYWlyLXF1YWxpdHlAbWNhcmRpbGxvNTUiLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "oclock@ortega.tech", "name": "OClock", "pname": "oclock", "description": "Shows an analog clock on the panel", "link": "https://extensions.gnome.org/extension/3578/oclock/", "shell_version_map": {"40": {"version": "2", "sha256": "1pp155a51c1fsmlwfsr1hxsv79xra3sbqrda3fkvhrv4jif7n7s8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJKZXJlbWlhcyBPcnRlZ2EiLAogICJkZXNjcmlwdGlvbiI6ICJTaG93cyBhbiBhbmFsb2cgY2xvY2sgb24gdGhlIHBhbmVsIiwKICAibmFtZSI6ICJPQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly93d3cuZ2l0aHViLmNvbS9qZXJlLW9ydGVnYTI0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1vY2xvY2svIiwKICAidXVpZCI6ICJvY2xvY2tAb3J0ZWdhLnRlY2giLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "1pp155a51c1fsmlwfsr1hxsv79xra3sbqrda3fkvhrv4jif7n7s8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJKZXJlbWlhcyBPcnRlZ2EiLAogICJkZXNjcmlwdGlvbiI6ICJTaG93cyBhbiBhbmFsb2cgY2xvY2sgb24gdGhlIHBhbmVsIiwKICAibmFtZSI6ICJPQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly93d3cuZ2l0aHViLmNvbS9qZXJlLW9ydGVnYTI0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1vY2xvY2svIiwKICAidXVpZCI6ICJvY2xvY2tAb3J0ZWdhLnRlY2giLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "azan@hatem.masmoudi.org", "name": "Azan Islamic Prayer Times", "pname": "azan-islamic-prayer-times", "description": "Azan is an Islamic prayer times extension for Gnome Shell based on the extension by Fahrinh.\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- Moon status icon", "link": "https://extensions.gnome.org/extension/3602/azan-islamic-prayer-times/", "shell_version_map": {"38": {"version": "2", "sha256": "1z58m1w04mdddq9p3102jv852zks41f2l7xbx7j8jcljy4ahiqll", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF6YW4gaXMgYW4gSXNsYW1pYyBwcmF5ZXIgdGltZXMgZXh0ZW5zaW9uIGZvciBHbm9tZSBTaGVsbCBiYXNlZCBvbiB0aGUgZXh0ZW5zaW9uIGJ5IEZhaHJpbmguXG5cbkZlYXR1cmVzXG4tIExpc3QgY29tcHVsc29yeSBwcmF5ZXIgdGltZXNcbiBPcHRpb25hbGx5IGRpc3BsYXkgSW1zYWssIFN1bnJpc2UsIFN1bnNldCBhbmQgTWlkbmlnaHRcbi0gU2hvdyByZW1haW5pbmcgdGltZSBmb3IgdGhlIHVwY29taW5nIHByYXllci5cbi0gU2hvdyBjdXJyZW50IGRhdGUgaW4gSGlqcmkgY2FsZW5kYXIuXG4tIERpc3BsYXkgYSBub3RpZmljYXRpb24gd2hlbiBpdCdzIHRpbWUgZm9yIHByYXllci5cbi0gQXV0b21hdGljIEdlb2NsdWUyIGxvY2F0aW9uIGRldGVjdGlvblxuLSBTaG93IHRpbWVzIGluIDI0IGhvdXIgYW5kIDEyIGhvdXIgZm9ybWF0c1xuLSBIaWpyaSBkYXRlIGFkanVzbWVudFxuLSBNb29uIHN0YXR1cyBpY29uIiwKICAibmFtZSI6ICJBemFuIElzbGFtaWMgUHJheWVyIFRpbWVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF6YW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMSIsCiAgICAiMy4zOC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vaG1hc21vdWRpL2F6YW4tZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhemFuQGhhdGVtLm1hc21vdWRpLm9yZyIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "blur-provider@corvettecole.github.com", "name": "blur-provider", "pname": "blur-provider", "description": "Provides an easy way for applications to request blur, and allows users to set blur on applications", "link": "https://extensions.gnome.org/extension/3607/blur-provider/", "shell_version_map": {"38": {"version": "2", "sha256": "1p0cyq1bfi18ysk1fvydjvk6qdl87qi9p3kpc165q5i0d4b41ffp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGVzIGFuIGVhc3kgd2F5IGZvciBhcHBsaWNhdGlvbnMgdG8gcmVxdWVzdCBibHVyLCBhbmQgYWxsb3dzIHVzZXJzIHRvIHNldCBibHVyIG9uIGFwcGxpY2F0aW9ucyIsCiAgImV4dGVuc2lvbi1pZCI6ICJibHVyLXByb3ZpZGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiYmx1ci1wcm92aWRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ibHVyLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29ydmV0dGVjb2xlL2JsdXItcHJvdmlkZXIiLAogICJ1dWlkIjogImJsdXItcHJvdmlkZXJAY29ydmV0dGVjb2xlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "wireguard-indicator@atareao.es", "name": "WireGuard Indicator", "pname": "wireguard-indicator", "description": "Manage WireGuard VPN from Desktop", "link": "https://extensions.gnome.org/extension/3612/wireguard-indicator/", "shell_version_map": {"40": {"version": "6", "sha256": "0qddl83x30y6jqm4nyjk6faklmv7cii2czmgmagcyllgkh0simav", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBXaXJlR3VhcmQgVlBOIGZyb20gRGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJpY29uIjogIndpcmVndWFyZC1pY29uIiwKICAibmFtZSI6ICJXaXJlR3VhcmQgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImVzLmF0YXJlYW8ud2lyZWd1YXJkLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdGFyZWFvL3dpcmVndWFyZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogIndpcmVndWFyZC1pbmRpY2F0b3JAYXRhcmVhby5lcyIsCiAgInZlcnNpb24iOiA2Cn0="}}}
@@ -367,9 +371,9 @@
 , {"uuid": "netspeedsimplified@prateekmedia.extension", "name": "Net speed Simplified", "pname": "net-speed-simplified", "description": "A Net Speed extension With Loads of Customization. Fork of simplenetspeed \n \nWhat's new\n☞ Add Use System Color Scheme option \n☞ Update Preferences logic \n☞ Filter more devices for net speed indicator \n\nFull CHANGELOG can be found on github releases page \n\nFeatures \n1. Clean UI \n2. Adjustable Refresh rate \n3. Preferences to manage extension \n4. Vertical Alignment Support \n5. Two Icon sets for Indicators \n\nFeature Highlights for Preferences \n1. Lock Mouse Actions option \n2. Advance Position options to pinpoint where to place the indicator on the Panel. \n3. Refresh time option by which you can change refresh rate value between 1.0 sec to 10.0 sec. \n4. Show Upload First option to show upload speed first \n5. Color Customizations for speed indicators \n6. Hide when Disconnected option \n7. Use Shorten Units option \n8. Limit Unit option and more... \n\nModes \n- Total net speed in b/s, kb/s, ... \n- Total net speed in B/s, KB/s, ... \n- Up & down speed in b/s, kb/s, ... \n- Up & down speed in B/s, KB/s, ... \n- Total downloads in B, KB, ... (Right click to reset counter) \n\nMouse Events \n- Left click to change modes \n- Right click(in 1-4 modes): Toggle the visibility of total loaded. \n- Right click(in 5th mode): Reset total downloaded. \n- Right Click(Four consecutive times): Toggle through horizontal/vertical alignment. \n- Middle click: Cycle through the font sizes.", "link": "https://extensions.gnome.org/extension/3724/net-speed-simplified/", "shell_version_map": {"38": {"version": "33", "sha256": "146p9vbwdp1d9h36jsvi6gkyklig06ic6gswln5cn5rck3w6m7bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhdGVla21lZGlhL25ldHNwZWVkc2ltcGxpZmllZCIsCiAgInV1aWQiOiAibmV0c3BlZWRzaW1wbGlmaWVkQHByYXRlZWttZWRpYS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "40": {"version": "33", "sha256": "146p9vbwdp1d9h36jsvi6gkyklig06ic6gswln5cn5rck3w6m7bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhdGVla21lZGlhL25ldHNwZWVkc2ltcGxpZmllZCIsCiAgInV1aWQiOiAibmV0c3BlZWRzaW1wbGlmaWVkQHByYXRlZWttZWRpYS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "41": {"version": "33", "sha256": "146p9vbwdp1d9h36jsvi6gkyklig06ic6gswln5cn5rck3w6m7bd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgTmV0IFNwZWVkIGV4dGVuc2lvbiBXaXRoIExvYWRzIG9mIEN1c3RvbWl6YXRpb24uIEZvcmsgb2Ygc2ltcGxlbmV0c3BlZWQgXG4gXG5XaGF0J3MgbmV3XG5cdTI2MWUgQWRkIFVzZSBTeXN0ZW0gQ29sb3IgU2NoZW1lIG9wdGlvbiBcblx1MjYxZSBVcGRhdGUgUHJlZmVyZW5jZXMgbG9naWMgXG5cdTI2MWUgRmlsdGVyIG1vcmUgZGV2aWNlcyBmb3IgbmV0IHNwZWVkIGluZGljYXRvciBcblxuRnVsbCBDSEFOR0VMT0cgY2FuIGJlIGZvdW5kIG9uIGdpdGh1YiByZWxlYXNlcyBwYWdlIFxuXG5GZWF0dXJlcyBcbjEuIENsZWFuIFVJIFxuMi4gQWRqdXN0YWJsZSBSZWZyZXNoIHJhdGUgXG4zLiBQcmVmZXJlbmNlcyB0byBtYW5hZ2UgZXh0ZW5zaW9uIFxuNC4gVmVydGljYWwgQWxpZ25tZW50IFN1cHBvcnQgXG41LiBUd28gSWNvbiBzZXRzIGZvciBJbmRpY2F0b3JzIFxuXG5GZWF0dXJlIEhpZ2hsaWdodHMgZm9yIFByZWZlcmVuY2VzIFxuMS4gTG9jayBNb3VzZSBBY3Rpb25zIG9wdGlvbiBcbjIuIEFkdmFuY2UgUG9zaXRpb24gb3B0aW9ucyB0byBwaW5wb2ludCB3aGVyZSB0byBwbGFjZSB0aGUgaW5kaWNhdG9yIG9uIHRoZSBQYW5lbC4gXG4zLiBSZWZyZXNoIHRpbWUgb3B0aW9uIGJ5IHdoaWNoIHlvdSBjYW4gY2hhbmdlIHJlZnJlc2ggcmF0ZSB2YWx1ZSBiZXR3ZWVuIDEuMCBzZWMgdG8gMTAuMCBzZWMuIFxuNC4gU2hvdyBVcGxvYWQgRmlyc3Qgb3B0aW9uIHRvIHNob3cgdXBsb2FkIHNwZWVkIGZpcnN0IFxuNS4gQ29sb3IgQ3VzdG9taXphdGlvbnMgZm9yIHNwZWVkIGluZGljYXRvcnMgXG42LiBIaWRlIHdoZW4gRGlzY29ubmVjdGVkIG9wdGlvbiBcbjcuIFVzZSBTaG9ydGVuIFVuaXRzIG9wdGlvbiBcbjguIExpbWl0IFVuaXQgb3B0aW9uIGFuZCBtb3JlLi4uIFxuXG5Nb2RlcyBcbi0gVG90YWwgbmV0IHNwZWVkIGluIGIvcywga2IvcywgLi4uIFxuLSBUb3RhbCBuZXQgc3BlZWQgaW4gQi9zLCBLQi9zLCAuLi4gXG4tIFVwICYgZG93biBzcGVlZCBpbiBiL3MsIGtiL3MsIC4uLiBcbi0gVXAgJiBkb3duIHNwZWVkIGluIEIvcywgS0IvcywgLi4uIFxuLSBUb3RhbCBkb3dubG9hZHMgaW4gQiwgS0IsIC4uLiAoUmlnaHQgY2xpY2sgdG8gcmVzZXQgY291bnRlcikgXG5cbk1vdXNlIEV2ZW50cyBcbi0gTGVmdCBjbGljayB0byBjaGFuZ2UgbW9kZXMgXG4tIFJpZ2h0IGNsaWNrKGluIDEtNCBtb2Rlcyk6IFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0b3RhbCBsb2FkZWQuIFxuLSBSaWdodCBjbGljayhpbiA1dGggbW9kZSk6IFJlc2V0IHRvdGFsIGRvd25sb2FkZWQuIFxuLSBSaWdodCBDbGljayhGb3VyIGNvbnNlY3V0aXZlIHRpbWVzKTogVG9nZ2xlIHRocm91Z2ggaG9yaXpvbnRhbC92ZXJ0aWNhbCBhbGlnbm1lbnQuIFxuLSBNaWRkbGUgY2xpY2s6IEN5Y2xlIHRocm91Z2ggdGhlIGZvbnQgc2l6ZXMuIiwKICAibmFtZSI6ICJOZXQgc3BlZWQgU2ltcGxpZmllZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJhdGVla21lZGlhL25ldHNwZWVkc2ltcGxpZmllZCIsCiAgInV1aWQiOiAibmV0c3BlZWRzaW1wbGlmaWVkQHByYXRlZWttZWRpYS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}}}
 , {"uuid": "cpupower-governors@icar.github.com", "name": "CPU Power Governor", "pname": "cpu-power-governor", "description": "Enables the ability to swap between kernel governors for the CPU useful for laptops.\n\nRequires: polkit, cpupower\nGithub: https://github.com/juxuanu/cpupower-governors", "link": "https://extensions.gnome.org/extension/3727/cpu-power-governor/", "shell_version_map": {"38": {"version": "2", "sha256": "1hb239w4cpz6yzs3pzd3hhrwswh6w5c5xw6dqn57m26cazh843qk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgdGhlIGFiaWxpdHkgdG8gc3dhcCBiZXR3ZWVuIGtlcm5lbCBnb3Zlcm5vcnMgZm9yIHRoZSBDUFUgdXNlZnVsIGZvciBsYXB0b3BzLlxuXG5SZXF1aXJlczogcG9sa2l0LCBjcHVwb3dlclxuR2l0aHViOiBodHRwczovL2dpdGh1Yi5jb20vanV4dWFudS9jcHVwb3dlci1nb3Zlcm5vcnMiLAogICJuYW1lIjogIkNQVSBQb3dlciBHb3Zlcm5vciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJjcHVwb3dlci1nb3Zlcm5vcnNAaWNhci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "floating-dock@nandoferreira_prof@hotmail.com", "name": "Floating Dock", "pname": "floating-dock", "description": "A Custom Floating Dock fork, now you can change the margin and border radius of the dock.", "link": "https://extensions.gnome.org/extension/3730/floating-dock/", "shell_version_map": {"38": {"version": "1", "sha256": "0giksm5fvrj412v8xnf2hi4s0yi2mqd9prd84npv8jxkfv78y414", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgQ3VzdG9tIEZsb2F0aW5nIERvY2sgZm9yaywgbm93IHlvdSBjYW4gY2hhbmdlIHRoZSBtYXJnaW4gYW5kIGJvcmRlciByYWRpdXMgb2YgdGhlIGRvY2suIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmxvYXRpbmdkb2NrIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm5hbmRvZmVycmVpcmFfcHJvZkBob3RtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zlci1tb3JlaXJhL2Zsb2F0aW5nLWRvY2siLAogICJ1dWlkIjogImZsb2F0aW5nLWRvY2tAbmFuZG9mZXJyZWlyYV9wcm9mQGhvdG1haWwuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "4", "sha256": "0ca22s5vbs6d32ppikmg0xcf5335qmighq6cpvly51q44hlqjamg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgQ3VzdG9tIEZsb2F0aW5nIERvY2sgZm9yaywgbm93IHlvdSBjYW4gY2hhbmdlIHRoZSBtYXJnaW4gYW5kIGJvcmRlciByYWRpdXMgb2YgdGhlIGRvY2suIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmxvYXRpbmdkb2NrIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zlci1tb3JlaXJhL2Zsb2F0aW5nLWRvY2siLAogICJ1dWlkIjogImZsb2F0aW5nLWRvY2tAbmFuZG9mZXJyZWlyYV9wcm9mQGhvdG1haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "0ca22s5vbs6d32ppikmg0xcf5335qmighq6cpvly51q44hlqjamg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgQ3VzdG9tIEZsb2F0aW5nIERvY2sgZm9yaywgbm93IHlvdSBjYW4gY2hhbmdlIHRoZSBtYXJnaW4gYW5kIGJvcmRlciByYWRpdXMgb2YgdGhlIGRvY2suIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZmxvYXRpbmdkb2NrIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIm1pY3hneEBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Zlci1tb3JlaXJhL2Zsb2F0aW5nLWRvY2siLAogICJ1dWlkIjogImZsb2F0aW5nLWRvY2tAbmFuZG9mZXJyZWlyYV9wcm9mQGhvdG1haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "tiling-assistant@leleat-on-github", "name": "Tiling Assistant", "pname": "tiling-assistant", "description": "Expand GNOME's 2 column tiling and add a Windows-snap-assist-inspired popup...", "link": "https://extensions.gnome.org/extension/3733/tiling-assistant/", "shell_version_map": {"38": {"version": "23", "sha256": "1b9hpll26ggwhw4f52wgflzjfqksmyfy5wyg1rpz41lr1dmva8vk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L1RpbGluZy1Bc3Npc3RhbnQiLAogICJ1dWlkIjogInRpbGluZy1hc3Npc3RhbnRAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiAyMwp9"}, "40": {"version": "27", "sha256": "17j3g32ha29i3jqy3183fn8ybkj5a3jjfl44nc6s4pxf8lqnh88j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aWxpbmctYXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9MZWxlYXQvVGlsaW5nLUFzc2lzdGFudCIsCiAgInV1aWQiOiAidGlsaW5nLWFzc2lzdGFudEBsZWxlYXQtb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDI3Cn0="}, "41": {"version": "27", "sha256": "17j3g32ha29i3jqy3183fn8ybkj5a3jjfl44nc6s4pxf8lqnh88j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aWxpbmctYXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9MZWxlYXQvVGlsaW5nLUFzc2lzdGFudCIsCiAgInV1aWQiOiAidGlsaW5nLWFzc2lzdGFudEBsZWxlYXQtb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDI3Cn0="}}}
-, {"uuid": "airpods-battery-status@ju.wtf", "name": "Airpods Battery status", "pname": "airpods-battery-status", "description": "Show Airpods battery level in top bar\n\n/!\\ See requirements on repository page", "link": "https://extensions.gnome.org/extension/3736/airpods-battery-status/", "shell_version_map": {"38": {"version": "5", "sha256": "0m68va2yh1cs91wb9c1yzdxj9pr3abj5jsx9q05cyiibd2zmbl92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgQWlycG9kcyBiYXR0ZXJ5IGxldmVsIGluIHRvcCBiYXJcblxuLyFcXCBTZWUgcmVxdWlyZW1lbnRzIG9uIHJlcG9zaXRvcnkgcGFnZSIsCiAgIm5hbWUiOiAiQWlycG9kcyBCYXR0ZXJ5IHN0YXR1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RlbHBoaWtpL2dub21lLWFpcnBvZHMtYmF0dGVyeS1zdGF0dXMiLAogICJ1dWlkIjogImFpcnBvZHMtYmF0dGVyeS1zdGF0dXNAanUud3RmIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "0m68va2yh1cs91wb9c1yzdxj9pr3abj5jsx9q05cyiibd2zmbl92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgQWlycG9kcyBiYXR0ZXJ5IGxldmVsIGluIHRvcCBiYXJcblxuLyFcXCBTZWUgcmVxdWlyZW1lbnRzIG9uIHJlcG9zaXRvcnkgcGFnZSIsCiAgIm5hbWUiOiAiQWlycG9kcyBCYXR0ZXJ5IHN0YXR1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RlbHBoaWtpL2dub21lLWFpcnBvZHMtYmF0dGVyeS1zdGF0dXMiLAogICJ1dWlkIjogImFpcnBvZHMtYmF0dGVyeS1zdGF0dXNAanUud3RmIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
-, {"uuid": "hue-lights@chlumskyvaclav.gmail.com", "name": "Hue Lights", "pname": "hue-lights", "description": "This extension controls Philips Hue compatible lights using Philips Hue Bridge on your local network, it also allows controlling Philips Hue Sync Box. If you are experiencing an error on the upgrade, please log out and log in again.", "link": "https://extensions.gnome.org/extension/3737/hue-lights/", "shell_version_map": {"38": {"version": "18", "sha256": "0p1cna0i3pbqlv9jw4bfx25ac4frqjc0k9a2rslxxi71fnq1plar", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "18", "sha256": "0p1cna0i3pbqlv9jw4bfx25ac4frqjc0k9a2rslxxi71fnq1plar", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "41": {"version": "18", "sha256": "0p1cna0i3pbqlv9jw4bfx25ac4frqjc0k9a2rslxxi71fnq1plar", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
+, {"uuid": "tiling-assistant@leleat-on-github", "name": "Tiling Assistant", "pname": "tiling-assistant", "description": "Expand GNOME's 2 column tiling and add a Windows-snap-assist-inspired popup...", "link": "https://extensions.gnome.org/extension/3733/tiling-assistant/", "shell_version_map": {"38": {"version": "23", "sha256": "1b9hpll26ggwhw4f52wgflzjfqksmyfy5wyg1rpz41lr1dmva8vk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L1RpbGluZy1Bc3Npc3RhbnQiLAogICJ1dWlkIjogInRpbGluZy1hc3Npc3RhbnRAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiAyMwp9"}, "40": {"version": "31", "sha256": "1ib1259wrm0ppdzb28xngh8hqmm12yp1ak7w2c46wk046arpqnkw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aWxpbmctYXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9MZWxlYXQvVGlsaW5nLUFzc2lzdGFudCIsCiAgInV1aWQiOiAidGlsaW5nLWFzc2lzdGFudEBsZWxlYXQtb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDMxCn0="}, "41": {"version": "31", "sha256": "1ib1259wrm0ppdzb28xngh8hqmm12yp1ak7w2c46wk046arpqnkw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cGFuZCBHTk9NRSdzIDIgY29sdW1uIHRpbGluZyBhbmQgYWRkIGEgV2luZG93cy1zbmFwLWFzc2lzdC1pbnNwaXJlZCBwb3B1cC4uLiIsCiAgIm5hbWUiOiAiVGlsaW5nIEFzc2lzdGFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aWxpbmctYXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9MZWxlYXQvVGlsaW5nLUFzc2lzdGFudCIsCiAgInV1aWQiOiAidGlsaW5nLWFzc2lzdGFudEBsZWxlYXQtb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDMxCn0="}}}
+, {"uuid": "airpods-battery-status@ju.wtf", "name": "Airpods Battery status", "pname": "airpods-battery-status", "description": "Show Airpods battery level in top bar", "link": "https://extensions.gnome.org/extension/3736/airpods-battery-status/", "shell_version_map": {"38": {"version": "6", "sha256": "0smryqirmjcswbs0gaz6v0kf1hisga1r949c3k7wnyjw9rqxhpc8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgQWlycG9kcyBiYXR0ZXJ5IGxldmVsIGluIHRvcCBiYXIiLAogICJuYW1lIjogIkFpcnBvZHMgQmF0dGVyeSBzdGF0dXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RlbHBoaWtpL2dub21lLWFpcnBvZHMtYmF0dGVyeS1zdGF0dXMiLAogICJ1dWlkIjogImFpcnBvZHMtYmF0dGVyeS1zdGF0dXNAanUud3RmIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0smryqirmjcswbs0gaz6v0kf1hisga1r949c3k7wnyjw9rqxhpc8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgQWlycG9kcyBiYXR0ZXJ5IGxldmVsIGluIHRvcCBiYXIiLAogICJuYW1lIjogIkFpcnBvZHMgQmF0dGVyeSBzdGF0dXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RlbHBoaWtpL2dub21lLWFpcnBvZHMtYmF0dGVyeS1zdGF0dXMiLAogICJ1dWlkIjogImFpcnBvZHMtYmF0dGVyeS1zdGF0dXNAanUud3RmIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "0smryqirmjcswbs0gaz6v0kf1hisga1r949c3k7wnyjw9rqxhpc8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgQWlycG9kcyBiYXR0ZXJ5IGxldmVsIGluIHRvcCBiYXIiLAogICJuYW1lIjogIkFpcnBvZHMgQmF0dGVyeSBzdGF0dXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RlbHBoaWtpL2dub21lLWFpcnBvZHMtYmF0dGVyeS1zdGF0dXMiLAogICJ1dWlkIjogImFpcnBvZHMtYmF0dGVyeS1zdGF0dXNAanUud3RmIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
+, {"uuid": "hue-lights@chlumskyvaclav.gmail.com", "name": "Hue Lights", "pname": "hue-lights", "description": "This extension controls Philips Hue compatible lights using Philips Hue Bridge on your local network, it also allows controlling Philips Hue Sync Box. If you are experiencing an error on the upgrade, please log out and log in again.", "link": "https://extensions.gnome.org/extension/3737/hue-lights/", "shell_version_map": {"38": {"version": "19", "sha256": "049vi65qprgiknpxbz1sv4vyhp749xb7g9369hjsg8fqs0jfwvgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "40": {"version": "19", "sha256": "049vi65qprgiknpxbz1sv4vyhp749xb7g9369hjsg8fqs0jfwvgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "41": {"version": "19", "sha256": "049vi65qprgiknpxbz1sv4vyhp749xb7g9369hjsg8fqs0jfwvgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNvbnRyb2xzIFBoaWxpcHMgSHVlIGNvbXBhdGlibGUgbGlnaHRzIHVzaW5nIFBoaWxpcHMgSHVlIEJyaWRnZSBvbiB5b3VyIGxvY2FsIG5ldHdvcmssIGl0IGFsc28gYWxsb3dzIGNvbnRyb2xsaW5nIFBoaWxpcHMgSHVlIFN5bmMgQm94LiBJZiB5b3UgYXJlIGV4cGVyaWVuY2luZyBhbiBlcnJvciBvbiB0aGUgdXBncmFkZSwgcGxlYXNlIGxvZyBvdXQgYW5kIGxvZyBpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJodWUtbGlnaHRzIiwKICAibmFtZSI6ICJIdWUgTGlnaHRzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL2h1ZS1saWdodHMiLAogICJ1dWlkIjogImh1ZS1saWdodHNAY2hsdW1za3l2YWNsYXYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}}}
 , {"uuid": "compiz-alike-magic-lamp-effect@hermes83.github.com", "name": "Compiz alike magic lamp effect", "pname": "compiz-alike-magic-lamp-effect", "description": "Magic lamp effect inspired by the Compiz ones\n\nNB:\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)", "link": "https://extensions.gnome.org/extension/3740/compiz-alike-magic-lamp-effect/", "shell_version_map": {"38": {"version": "10", "sha256": "1mkykm2ql888bksgw94wgvwfqlqnzr19rn629a4k6hph4b5rw5sf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ2ljIGxhbXAgZWZmZWN0IGluc3BpcmVkIGJ5IHRoZSBDb21waXogb25lc1xuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKSIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIG1hZ2ljIGxhbXAgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2UtbWFnaWMtbGFtcC1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS1tYWdpYy1sYW1wLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "10", "sha256": "1mkykm2ql888bksgw94wgvwfqlqnzr19rn629a4k6hph4b5rw5sf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ2ljIGxhbXAgZWZmZWN0IGluc3BpcmVkIGJ5IHRoZSBDb21waXogb25lc1xuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKSIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIG1hZ2ljIGxhbXAgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2UtbWFnaWMtbGFtcC1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS1tYWdpYy1sYW1wLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "41": {"version": "10", "sha256": "1mkykm2ql888bksgw94wgvwfqlqnzr19rn629a4k6hph4b5rw5sf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hZ2ljIGxhbXAgZWZmZWN0IGluc3BpcmVkIGJ5IHRoZSBDb21waXogb25lc1xuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKSIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIG1hZ2ljIGxhbXAgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2UtbWFnaWMtbGFtcC1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS1tYWdpYy1sYW1wLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
 , {"uuid": "latency-monitor@gitlab.labsatho.me", "name": "Latency Monitor", "pname": "latency-monitor", "description": "A simple extension for displaying latency information using pings in GNOME Shell.", "link": "https://extensions.gnome.org/extension/3746/latency-monitor/", "shell_version_map": {"38": {"version": "6", "sha256": "0k2y1qrq7irkn2c72pk4c5x4fwzaxkfp3jj7qvhzih6zmkifdzcd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGV4dGVuc2lvbiBmb3IgZGlzcGxheWluZyBsYXRlbmN5IGluZm9ybWF0aW9uIHVzaW5nIHBpbmdzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiTGF0ZW5jeSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxhdGVuY3ktbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3dhbGthZndhbGthL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sYXRlbmN5LW1vbml0b3IiLAogICJ1dWlkIjogImxhdGVuY3ktbW9uaXRvckBnaXRsYWIubGFic2F0aG8ubWUiLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "the-circles-widget@xenlism.github.io", "name": "The Circles - Desktop Widget", "pname": "the-circles-desktop-widget", "description": "Show System Infomations on Desktop as Circles Desktop Widget\n\nmore info \nhttps://www.linuxuprising.com/2020/11/display-clock-ram-and-cpu-usage-as.html", "link": "https://extensions.gnome.org/extension/3748/the-circles-desktop-widget/", "shell_version_map": {"38": {"version": "6", "sha256": "0kxync9gdjgcfq3vfhf5z0065n30jw5y5jl00hdgarsh4pkbji04", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgU3lzdGVtIEluZm9tYXRpb25zIG9uIERlc2t0b3AgYXMgQ2lyY2xlcyBEZXNrdG9wIFdpZGdldFxuXG5tb3JlIGluZm8gXG5odHRwczovL3d3dy5saW51eHVwcmlzaW5nLmNvbS8yMDIwLzExL2Rpc3BsYXktY2xvY2stcmFtLWFuZC1jcHUtdXNhZ2UtYXMuaHRtbCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0aGUtY2lyY2xlcy13aWRnZXQiLAogICJuYW1lIjogIlRoZSBDaXJjbGVzIC0gRGVza3RvcCBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGhlLWNpcmNsZXMtd2lkZ2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVubGlzbS9zaG93dGltZSIsCiAgInV1aWQiOiAidGhlLWNpcmNsZXMtd2lkZ2V0QHhlbmxpc20uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "12", "sha256": "0ngn00y97dqv667z47xahfv53dlb2asm0jbk9harlv4516jdrg0s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgU3lzdGVtIEluZm9tYXRpb25zIG9uIERlc2t0b3AgYXMgQ2lyY2xlcyBEZXNrdG9wIFdpZGdldFxuXG5tb3JlIGluZm8gXG5odHRwczovL3d3dy5saW51eHVwcmlzaW5nLmNvbS8yMDIwLzExL2Rpc3BsYXktY2xvY2stcmFtLWFuZC1jcHUtdXNhZ2UtYXMuaHRtbCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0aGUtY2lyY2xlcy13aWRnZXQiLAogICJuYW1lIjogIlRoZSBDaXJjbGVzIC0gRGVza3RvcCBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGhlLWNpcmNsZXMtd2lkZ2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJ1dWlkIjogInRoZS1jaXJjbGVzLXdpZGdldEB4ZW5saXNtLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMgp9"}}}
@@ -379,13 +383,13 @@
 , {"uuid": "miniCal2@breiq", "name": "Minimalist Calendar 2", "pname": "minimalist-calendar-2", "description": "Remove event list and clock/calendar app buttons from the calendar window.", "link": "https://extensions.gnome.org/extension/3775/minimalist-calendar-2/", "shell_version_map": {"38": {"version": "1", "sha256": "1nh10ik3zk3r4jr31mr8nw8nnamgj3mk1f3im06657wv18x9wvam", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIiwKICAibmFtZSI6ICJNaW5pbWFsaXN0IENhbGVuZGFyIDIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibWluaUNhbDJAYnJlaXEiLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "ddterm@amezin.github.com", "name": "ddterm", "pname": "ddterm", "description": "Another drop down terminal extension for GNOME Shell. With tabs. Works on Wayland natively\n\nUpdates sometimes require restarting your GNOME session (i. e. logging out).", "link": "https://extensions.gnome.org/extension/3780/ddterm/", "shell_version_map": {"38": {"version": "24", "sha256": "08vb6kvxb1722hd757jzakpn1p66wvcjq0xdinlgrxk3v2jmlsca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseVxuXG5VcGRhdGVzIHNvbWV0aW1lcyByZXF1aXJlIHJlc3RhcnRpbmcgeW91ciBHTk9NRSBzZXNzaW9uIChpLiBlLiBsb2dnaW5nIG91dCkuIiwKICAibmFtZSI6ICJkZHRlcm0iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5hbWV6aW4uZGR0ZXJtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWV6aW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkdGVybSIsCiAgInV1aWQiOiAiZGR0ZXJtQGFtZXppbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}, "40": {"version": "24", "sha256": "08vb6kvxb1722hd757jzakpn1p66wvcjq0xdinlgrxk3v2jmlsca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseVxuXG5VcGRhdGVzIHNvbWV0aW1lcyByZXF1aXJlIHJlc3RhcnRpbmcgeW91ciBHTk9NRSBzZXNzaW9uIChpLiBlLiBsb2dnaW5nIG91dCkuIiwKICAibmFtZSI6ICJkZHRlcm0iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5hbWV6aW4uZGR0ZXJtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWV6aW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkdGVybSIsCiAgInV1aWQiOiAiZGR0ZXJtQGFtZXppbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}, "41": {"version": "24", "sha256": "08vb6kvxb1722hd757jzakpn1p66wvcjq0xdinlgrxk3v2jmlsca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseVxuXG5VcGRhdGVzIHNvbWV0aW1lcyByZXF1aXJlIHJlc3RhcnRpbmcgeW91ciBHTk9NRSBzZXNzaW9uIChpLiBlLiBsb2dnaW5nIG91dCkuIiwKICAibmFtZSI6ICJkZHRlcm0iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiY29tLmdpdGh1Yi5hbWV6aW4uZGR0ZXJtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbWV6aW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkdGVybSIsCiAgInV1aWQiOiAiZGR0ZXJtQGFtZXppbi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI0Cn0="}}}
 , {"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="}}}
-, {"uuid": "notification-timeout@chlumskyvaclav.gmail.com", "name": "Notification Timeout", "pname": "notification-timeout", "description": "This extension allows configuring the same timeout for all notifications. It also allows ignoring the idle state.", "link": "https://extensions.gnome.org/extension/3795/notification-timeout/", "shell_version_map": {"38": {"version": "3", "sha256": "16cpl12jk90pw8nyvzara6fhb3jfiivf2qnvnsnrd237sjz344yw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBjb25maWd1cmluZyB0aGUgc2FtZSB0aW1lb3V0IGZvciBhbGwgbm90aWZpY2F0aW9ucy4gSXQgYWxzbyBhbGxvd3MgaWdub3JpbmcgdGhlIGlkbGUgc3RhdGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBUaW1lb3V0IiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92Y2hsdW0vbm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi10aW1lb3V0QGNobHVtc2t5dmFjbGF2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "16cpl12jk90pw8nyvzara6fhb3jfiivf2qnvnsnrd237sjz344yw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBjb25maWd1cmluZyB0aGUgc2FtZSB0aW1lb3V0IGZvciBhbGwgbm90aWZpY2F0aW9ucy4gSXQgYWxzbyBhbGxvd3MgaWdub3JpbmcgdGhlIGlkbGUgc3RhdGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBUaW1lb3V0IiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS92Y2hsdW0vbm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJ1dWlkIjogIm5vdGlmaWNhdGlvbi10aW1lb3V0QGNobHVtc2t5dmFjbGF2LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "notification-timeout@chlumskyvaclav.gmail.com", "name": "Notification Timeout", "pname": "notification-timeout", "description": "This extension allows configuring the same timeout for all notifications. It also allows ignoring the idle state.", "link": "https://extensions.gnome.org/extension/3795/notification-timeout/", "shell_version_map": {"38": {"version": "4", "sha256": "14hns3mw3rk6az31pck3rnsj74n98swaiv1ky57d0gs9409zha6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBjb25maWd1cmluZyB0aGUgc2FtZSB0aW1lb3V0IGZvciBhbGwgbm90aWZpY2F0aW9ucy4gSXQgYWxzbyBhbGxvd3MgaWdub3JpbmcgdGhlIGlkbGUgc3RhdGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBUaW1lb3V0IiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25vdGlmaWNhdGlvbi10aW1lb3V0IiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tdGltZW91dEBjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "14hns3mw3rk6az31pck3rnsj74n98swaiv1ky57d0gs9409zha6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBjb25maWd1cmluZyB0aGUgc2FtZSB0aW1lb3V0IGZvciBhbGwgbm90aWZpY2F0aW9ucy4gSXQgYWxzbyBhbGxvd3MgaWdub3JpbmcgdGhlIGlkbGUgc3RhdGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBUaW1lb3V0IiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25vdGlmaWNhdGlvbi10aW1lb3V0IiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tdGltZW91dEBjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "14hns3mw3rk6az31pck3rnsj74n98swaiv1ky57d0gs9409zha6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyBjb25maWd1cmluZyB0aGUgc2FtZSB0aW1lb3V0IGZvciBhbGwgbm90aWZpY2F0aW9ucy4gSXQgYWxzbyBhbGxvd3MgaWdub3JpbmcgdGhlIGlkbGUgc3RhdGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibm90aWZpY2F0aW9uLXRpbWVvdXQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBUaW1lb3V0IiwKICAib3JpZ2luYWwtYXV0aG9yIjogImNobHVtc2t5dmFjbGF2QGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdmNobHVtL25vdGlmaWNhdGlvbi10aW1lb3V0IiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tdGltZW91dEBjaGx1bXNreXZhY2xhdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "podman-as-docker@alberto.yomerengues.xyz", "name": "Podman and Docker", "pname": "podman-as-docker", "description": "podman extension as docker\nIn order to get it work on podman, you just need to create an alias\nSimply put: alias docker=podman\nand install podman-docker", "link": "https://extensions.gnome.org/extension/3799/podman-as-docker/", "shell_version_map": {"38": {"version": "1", "sha256": "18bkd6z5hm6zidh7xv8v3jvj36lmxzx4dar7nwa7nq3p51km6crz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInBvZG1hbiBleHRlbnNpb24gYXMgZG9ja2VyXG5JbiBvcmRlciB0byBnZXQgaXQgd29yayBvbiBwb2RtYW4sIHlvdSBqdXN0IG5lZWQgdG8gY3JlYXRlIGFuIGFsaWFzXG5TaW1wbHkgcHV0OiBhbGlhcyBkb2NrZXI9cG9kbWFuXG5hbmQgaW5zdGFsbCBwb2RtYW4tZG9ja2VyIiwKICAibmFtZSI6ICJQb2RtYW4gYW5kIERvY2tlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJwb2RtYW4tYXMtZG9ja2VyQGFsYmVydG8ueW9tZXJlbmd1ZXMueHl6IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "wacom-indicator@fthx", "name": "Wacom Indicator", "pname": "wacom-indicator", "description": "Wacom tablet indicator in the top bar: connection state and power level.\n\n On click: open GNOME Settings Wacom section. On hover or every minute: update connection state and power level.\n\n Settings (in extension.js file headers): show/hide model label, refresh delay, update/do nothing on indicator hover, show/hide if disconnected.", "link": "https://extensions.gnome.org/extension/3809/wacom-indicator/", "shell_version_map": {"38": {"version": "7", "sha256": "1sda66n1s3d28jd98xcznw5ljv10iwndpcbq7bfm5hqzrk8zimid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhY29tIHRhYmxldCBpbmRpY2F0b3IgaW4gdGhlIHRvcCBiYXI6IGNvbm5lY3Rpb24gc3RhdGUgYW5kIHBvd2VyIGxldmVsLlxuXG4gT24gY2xpY2s6IG9wZW4gR05PTUUgU2V0dGluZ3MgV2Fjb20gc2VjdGlvbi4gT24gaG92ZXIgb3IgZXZlcnkgbWludXRlOiB1cGRhdGUgY29ubmVjdGlvbiBzdGF0ZSBhbmQgcG93ZXIgbGV2ZWwuXG5cbiBTZXR0aW5ncyAoaW4gZXh0ZW5zaW9uLmpzIGZpbGUgaGVhZGVycyk6IHNob3cvaGlkZSBtb2RlbCBsYWJlbCwgcmVmcmVzaCBkZWxheSwgdXBkYXRlL2RvIG5vdGhpbmcgb24gaW5kaWNhdG9yIGhvdmVyLCBzaG93L2hpZGUgaWYgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiV2Fjb20gSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvd2Fjb20taW5kaWNhdG9yIiwKICAidXVpZCI6ICJ3YWNvbS1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "1sda66n1s3d28jd98xcznw5ljv10iwndpcbq7bfm5hqzrk8zimid", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhY29tIHRhYmxldCBpbmRpY2F0b3IgaW4gdGhlIHRvcCBiYXI6IGNvbm5lY3Rpb24gc3RhdGUgYW5kIHBvd2VyIGxldmVsLlxuXG4gT24gY2xpY2s6IG9wZW4gR05PTUUgU2V0dGluZ3MgV2Fjb20gc2VjdGlvbi4gT24gaG92ZXIgb3IgZXZlcnkgbWludXRlOiB1cGRhdGUgY29ubmVjdGlvbiBzdGF0ZSBhbmQgcG93ZXIgbGV2ZWwuXG5cbiBTZXR0aW5ncyAoaW4gZXh0ZW5zaW9uLmpzIGZpbGUgaGVhZGVycyk6IHNob3cvaGlkZSBtb2RlbCBsYWJlbCwgcmVmcmVzaCBkZWxheSwgdXBkYXRlL2RvIG5vdGhpbmcgb24gaW5kaWNhdG9yIGhvdmVyLCBzaG93L2hpZGUgaWYgZGlzY29ubmVjdGVkLiIsCiAgIm5hbWUiOiAiV2Fjb20gSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvd2Fjb20taW5kaWNhdG9yIiwKICAidXVpZCI6ICJ3YWNvbS1pbmRpY2F0b3JAZnRoeCIsCiAgInZlcnNpb24iOiA3Cn0="}}}
 , {"uuid": "hibernate@dafne.rocks", "name": "System Action - Hibernate", "pname": "system-action-hibernate", "description": "A GNOME extension that adds the option to hibernate amongst other system actions", "link": "https://extensions.gnome.org/extension/3814/system-action-hibernate/", "shell_version_map": {"38": {"version": "8", "sha256": "1rriknzx54f4wlfjm6wrcy9s86vchi5n3p3qp8lx52dsv36a22an", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRoYXQgYWRkcyB0aGUgb3B0aW9uIHRvIGhpYmVybmF0ZSBhbW9uZ3N0IG90aGVyIHN5c3RlbSBhY3Rpb25zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlQGRhZm5lLnJvY2tzIiwKICAibmFtZSI6ICJTeXN0ZW0gQWN0aW9uIC0gSGliZXJuYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2NvZGViZXJnLm9yZy9raXl1aS9nbm9tZS1zaGVsbC1oaWJlcm5hdGUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJoaWJlcm5hdGVAZGFmbmUucm9ja3MiLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "1rriknzx54f4wlfjm6wrcy9s86vchi5n3p3qp8lx52dsv36a22an", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgZXh0ZW5zaW9uIHRoYXQgYWRkcyB0aGUgb3B0aW9uIHRvIGhpYmVybmF0ZSBhbW9uZ3N0IG90aGVyIHN5c3RlbSBhY3Rpb25zIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlQGRhZm5lLnJvY2tzIiwKICAibmFtZSI6ICJTeXN0ZW0gQWN0aW9uIC0gSGliZXJuYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2NvZGViZXJnLm9yZy9raXl1aS9nbm9tZS1zaGVsbC1oaWJlcm5hdGUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJoaWJlcm5hdGVAZGFmbmUucm9ja3MiLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"uuid": "click-to-close-overview@l3nn4rt.github.io", "name": "Click to close overview", "pname": "click-to-close-overview", "description": "Close the overview by clicking empty space.", "link": "https://extensions.gnome.org/extension/3826/click-to-close-overview/", "shell_version_map": {"38": {"version": "3", "sha256": "17xd3k1xpsn8ma6f11f4sr26y5xbcs3hiw7lv1qqrn80lyjj2vz1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBieSBjbGlja2luZyBlbXB0eSBzcGFjZS4iLAogICJuYW1lIjogIkNsaWNrIHRvIGNsb3NlIG92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbDNubjRydC9jbGljay10by1jbG9zZS1vdmVydmlldyIsCiAgInV1aWQiOiAiY2xpY2stdG8tY2xvc2Utb3ZlcnZpZXdAbDNubjRydC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "5", "sha256": "1h12bhqac4zyvsj6xbjr7hnyah3bnbbx0r8ihblkw5l7a67ix1ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBieSBjbGlja2luZyBlbXB0eSBzcGFjZS4iLAogICJuYW1lIjogIkNsaWNrIHRvIGNsb3NlIG92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sM25uNHJ0L2NsaWNrLXRvLWNsb3NlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJjbGljay10by1jbG9zZS1vdmVydmlld0BsM25uNHJ0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1h12bhqac4zyvsj6xbjr7hnyah3bnbbx0r8ihblkw5l7a67ix1ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBieSBjbGlja2luZyBlbXB0eSBzcGFjZS4iLAogICJuYW1lIjogIkNsaWNrIHRvIGNsb3NlIG92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sM25uNHJ0L2NsaWNrLXRvLWNsb3NlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJjbGljay10by1jbG9zZS1vdmVydmlld0BsM25uNHJ0LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "just-perfection-desktop@just-perfection", "name": "Just Perfection", "pname": "just-perfection", "description": "Tweak Tool to Customize GNOME Shell and Disable UI Elements\n\n- Accessibility Menu Visibility\n- Activities Button Icon Visibility\n- Activities button Visibility\n- Always Show Workspace Switcher on Dynamic Workspaces (40, 41)\n- Animation Speed or Disable it\n- App Gesture (3.36, 3.38)\n- Applications Button Visibility\n- App Menu Icon Visibility\n- App Menu Visibility\n- Background Menu Visibility\n- Clock Menu Position\n- Clock Menu Visibility\n- Dash Icon Size\n- Dash Visibility\n- Disable Type to Search\n- Double Super Key to App Grid\n- GNOME Shell Theme Override\n- Hot Corner\n- Keyboard Layout Visibility\n- Notification Banner Position\n- OSD Visibility\n- Panel Arrow Visibility(3.36, 3.38)\n- Panel Button Padding Size\n- Panel Height\n- Panel Indicator Padding Size\n- Panel Notification icon Visibility\n- Panel Position\n- Panel Round Corner Size\n- Panel Visibility\n- Panel Visibility in Overview\n- Power Icon Visibility\n- Ripple Box\n- Search Visibility\n- Startup Status(40, 41)\n- System Menu (Aggregate Menu) Visibility\n- Window Demands Attention Focus\n- Window Picker Caption Visibility\n- Window Picker Close Button Visibility\n- Window Picker Icon(40, 41)\n- Workspace Background Corner Size in Overview(40, 41)\n- Workspace Popup Visibility\n- Workspaces in app grid Visibility (40, 41)\n- Workspace Switcher Size (40, 41)\n- Workspace Switcher Visibility\n- Workspace Wraparound", "link": "https://extensions.gnome.org/extension/3843/just-perfection/", "shell_version_map": {"38": {"version": "16", "sha256": "1y03n2p1jpdz7chzw3jrfbgy6zaav30rj6cc4cf6j1p0xl8wrn31", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENsb2NrIE1lbnUgUG9zaXRpb25cbi0gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIERhc2ggSWNvbiBTaXplXG4tIERhc2ggVmlzaWJpbGl0eVxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIERvdWJsZSBTdXBlciBLZXkgdG8gQXBwIEdyaWRcbi0gR05PTUUgU2hlbGwgVGhlbWUgT3ZlcnJpZGVcbi0gSG90IENvcm5lclxuLSBLZXlib2FyZCBMYXlvdXQgVmlzaWJpbGl0eVxuLSBOb3RpZmljYXRpb24gQmFubmVyIFBvc2l0aW9uXG4tIE9TRCBWaXNpYmlsaXR5XG4tIFBhbmVsIEFycm93IFZpc2liaWxpdHkoMy4zNiwgMy4zOClcbi0gUGFuZWwgQnV0dG9uIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBIZWlnaHRcbi0gUGFuZWwgSW5kaWNhdG9yIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBOb3RpZmljYXRpb24gaWNvbiBWaXNpYmlsaXR5XG4tIFBhbmVsIFBvc2l0aW9uXG4tIFBhbmVsIFJvdW5kIENvcm5lciBTaXplXG4tIFBhbmVsIFZpc2liaWxpdHlcbi0gUGFuZWwgVmlzaWJpbGl0eSBpbiBPdmVydmlld1xuLSBQb3dlciBJY29uIFZpc2liaWxpdHlcbi0gUmlwcGxlIEJveFxuLSBTZWFyY2ggVmlzaWJpbGl0eVxuLSBTdGFydHVwIFN0YXR1cyg0MCwgNDEpXG4tIFN5c3RlbSBNZW51IChBZ2dyZWdhdGUgTWVudSkgVmlzaWJpbGl0eVxuLSBXaW5kb3cgRGVtYW5kcyBBdHRlbnRpb24gRm9jdXNcbi0gV2luZG93IFBpY2tlciBDYXB0aW9uIFZpc2liaWxpdHlcbi0gV2luZG93IFBpY2tlciBDbG9zZSBCdXR0b24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIEljb24oNDAsIDQxKVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyg0MCwgNDEpXG4tIFdvcmtzcGFjZSBQb3B1cCBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZXMgaW4gYXBwIGdyaWQgVmlzaWJpbGl0eSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgVmlzaWJpbGl0eVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZCIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtcGVyZmVjdGlvbiIsCiAgIm5hbWUiOiAiSnVzdCBQZXJmZWN0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmp1c3QtcGVyZmVjdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvanJhaG1hdHphZGVoL2p1c3QtcGVyZmVjdGlvbiIsCiAgInV1aWQiOiAianVzdC1wZXJmZWN0aW9uLWRlc2t0b3BAanVzdC1wZXJmZWN0aW9uIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "40": {"version": "16", "sha256": "1y03n2p1jpdz7chzw3jrfbgy6zaav30rj6cc4cf6j1p0xl8wrn31", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENsb2NrIE1lbnUgUG9zaXRpb25cbi0gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIERhc2ggSWNvbiBTaXplXG4tIERhc2ggVmlzaWJpbGl0eVxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIERvdWJsZSBTdXBlciBLZXkgdG8gQXBwIEdyaWRcbi0gR05PTUUgU2hlbGwgVGhlbWUgT3ZlcnJpZGVcbi0gSG90IENvcm5lclxuLSBLZXlib2FyZCBMYXlvdXQgVmlzaWJpbGl0eVxuLSBOb3RpZmljYXRpb24gQmFubmVyIFBvc2l0aW9uXG4tIE9TRCBWaXNpYmlsaXR5XG4tIFBhbmVsIEFycm93IFZpc2liaWxpdHkoMy4zNiwgMy4zOClcbi0gUGFuZWwgQnV0dG9uIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBIZWlnaHRcbi0gUGFuZWwgSW5kaWNhdG9yIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBOb3RpZmljYXRpb24gaWNvbiBWaXNpYmlsaXR5XG4tIFBhbmVsIFBvc2l0aW9uXG4tIFBhbmVsIFJvdW5kIENvcm5lciBTaXplXG4tIFBhbmVsIFZpc2liaWxpdHlcbi0gUGFuZWwgVmlzaWJpbGl0eSBpbiBPdmVydmlld1xuLSBQb3dlciBJY29uIFZpc2liaWxpdHlcbi0gUmlwcGxlIEJveFxuLSBTZWFyY2ggVmlzaWJpbGl0eVxuLSBTdGFydHVwIFN0YXR1cyg0MCwgNDEpXG4tIFN5c3RlbSBNZW51IChBZ2dyZWdhdGUgTWVudSkgVmlzaWJpbGl0eVxuLSBXaW5kb3cgRGVtYW5kcyBBdHRlbnRpb24gRm9jdXNcbi0gV2luZG93IFBpY2tlciBDYXB0aW9uIFZpc2liaWxpdHlcbi0gV2luZG93IFBpY2tlciBDbG9zZSBCdXR0b24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIEljb24oNDAsIDQxKVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyg0MCwgNDEpXG4tIFdvcmtzcGFjZSBQb3B1cCBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZXMgaW4gYXBwIGdyaWQgVmlzaWJpbGl0eSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgVmlzaWJpbGl0eVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZCIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtcGVyZmVjdGlvbiIsCiAgIm5hbWUiOiAiSnVzdCBQZXJmZWN0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmp1c3QtcGVyZmVjdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvanJhaG1hdHphZGVoL2p1c3QtcGVyZmVjdGlvbiIsCiAgInV1aWQiOiAianVzdC1wZXJmZWN0aW9uLWRlc2t0b3BAanVzdC1wZXJmZWN0aW9uIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "41": {"version": "16", "sha256": "1y03n2p1jpdz7chzw3jrfbgy6zaav30rj6cc4cf6j1p0xl8wrn31", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR3ZWFrIFRvb2wgdG8gQ3VzdG9taXplIEdOT01FIFNoZWxsIGFuZCBEaXNhYmxlIFVJIEVsZW1lbnRzXG5cbi0gQWNjZXNzaWJpbGl0eSBNZW51IFZpc2liaWxpdHlcbi0gQWN0aXZpdGllcyBCdXR0b24gSWNvbiBWaXNpYmlsaXR5XG4tIEFjdGl2aXRpZXMgYnV0dG9uIFZpc2liaWxpdHlcbi0gQWx3YXlzIFNob3cgV29ya3NwYWNlIFN3aXRjaGVyIG9uIER5bmFtaWMgV29ya3NwYWNlcyAoNDAsIDQxKVxuLSBBbmltYXRpb24gU3BlZWQgb3IgRGlzYWJsZSBpdFxuLSBBcHAgR2VzdHVyZSAoMy4zNiwgMy4zOClcbi0gQXBwbGljYXRpb25zIEJ1dHRvbiBWaXNpYmlsaXR5XG4tIEFwcCBNZW51IEljb24gVmlzaWJpbGl0eVxuLSBBcHAgTWVudSBWaXNpYmlsaXR5XG4tIEJhY2tncm91bmQgTWVudSBWaXNpYmlsaXR5XG4tIENsb2NrIE1lbnUgUG9zaXRpb25cbi0gQ2xvY2sgTWVudSBWaXNpYmlsaXR5XG4tIERhc2ggSWNvbiBTaXplXG4tIERhc2ggVmlzaWJpbGl0eVxuLSBEaXNhYmxlIFR5cGUgdG8gU2VhcmNoXG4tIERvdWJsZSBTdXBlciBLZXkgdG8gQXBwIEdyaWRcbi0gR05PTUUgU2hlbGwgVGhlbWUgT3ZlcnJpZGVcbi0gSG90IENvcm5lclxuLSBLZXlib2FyZCBMYXlvdXQgVmlzaWJpbGl0eVxuLSBOb3RpZmljYXRpb24gQmFubmVyIFBvc2l0aW9uXG4tIE9TRCBWaXNpYmlsaXR5XG4tIFBhbmVsIEFycm93IFZpc2liaWxpdHkoMy4zNiwgMy4zOClcbi0gUGFuZWwgQnV0dG9uIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBIZWlnaHRcbi0gUGFuZWwgSW5kaWNhdG9yIFBhZGRpbmcgU2l6ZVxuLSBQYW5lbCBOb3RpZmljYXRpb24gaWNvbiBWaXNpYmlsaXR5XG4tIFBhbmVsIFBvc2l0aW9uXG4tIFBhbmVsIFJvdW5kIENvcm5lciBTaXplXG4tIFBhbmVsIFZpc2liaWxpdHlcbi0gUGFuZWwgVmlzaWJpbGl0eSBpbiBPdmVydmlld1xuLSBQb3dlciBJY29uIFZpc2liaWxpdHlcbi0gUmlwcGxlIEJveFxuLSBTZWFyY2ggVmlzaWJpbGl0eVxuLSBTdGFydHVwIFN0YXR1cyg0MCwgNDEpXG4tIFN5c3RlbSBNZW51IChBZ2dyZWdhdGUgTWVudSkgVmlzaWJpbGl0eVxuLSBXaW5kb3cgRGVtYW5kcyBBdHRlbnRpb24gRm9jdXNcbi0gV2luZG93IFBpY2tlciBDYXB0aW9uIFZpc2liaWxpdHlcbi0gV2luZG93IFBpY2tlciBDbG9zZSBCdXR0b24gVmlzaWJpbGl0eVxuLSBXaW5kb3cgUGlja2VyIEljb24oNDAsIDQxKVxuLSBXb3Jrc3BhY2UgQmFja2dyb3VuZCBDb3JuZXIgU2l6ZSBpbiBPdmVydmlldyg0MCwgNDEpXG4tIFdvcmtzcGFjZSBQb3B1cCBWaXNpYmlsaXR5XG4tIFdvcmtzcGFjZXMgaW4gYXBwIGdyaWQgVmlzaWJpbGl0eSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgU2l6ZSAoNDAsIDQxKVxuLSBXb3Jrc3BhY2UgU3dpdGNoZXIgVmlzaWJpbGl0eVxuLSBXb3Jrc3BhY2UgV3JhcGFyb3VuZCIsCiAgImdldHRleHQtZG9tYWluIjogImp1c3QtcGVyZmVjdGlvbiIsCiAgIm5hbWUiOiAiSnVzdCBQZXJmZWN0aW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmp1c3QtcGVyZmVjdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvanJhaG1hdHphZGVoL2p1c3QtcGVyZmVjdGlvbiIsCiAgInV1aWQiOiAianVzdC1wZXJmZWN0aW9uLWRlc2t0b3BAanVzdC1wZXJmZWN0aW9uIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
-, {"uuid": "workspaces-bar@fthx", "name": "Workspaces Bar", "pname": "workspaces-bar", "description": "Replace 'Activities' button by all current workspaces buttons. Switch workspace or toggle overview by clicking on these buttons.\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.", "link": "https://extensions.gnome.org/extension/3851/workspaces-bar/", "shell_version_map": {"38": {"version": "11", "sha256": "04lp3d2xfl024nrvnqwb4vv2qd7fbwhfq3gbaz1j0ds7dhq7bhir", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3dvcmtzcGFjZXMtYmFyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJhckBmdGh4IiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "04lp3d2xfl024nrvnqwb4vv2qd7fbwhfq3gbaz1j0ds7dhq7bhir", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3dvcmtzcGFjZXMtYmFyIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2VzLWJhckBmdGh4IiwKICAidmVyc2lvbiI6IDExCn0="}}}
+, {"uuid": "workspaces-bar@fthx", "name": "Workspaces Bar", "pname": "workspaces-bar", "description": "Replace 'Activities' button by all current workspaces buttons. Switch workspace or toggle overview by clicking on these buttons.\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.", "link": "https://extensions.gnome.org/extension/3851/workspaces-bar/", "shell_version_map": {"38": {"version": "12", "sha256": "1rskz8llic5g8cix4mb6iha9v789fg6yn2i25zj0ywb9qn063ld5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC93b3Jrc3BhY2VzLWJhciIsCiAgInV1aWQiOiAid29ya3NwYWNlcy1iYXJAZnRoeCIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "1rskz8llic5g8cix4mb6iha9v789fg6yn2i25zj0ywb9qn063ld5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC93b3Jrc3BhY2VzLWJhciIsCiAgInV1aWQiOiAid29ya3NwYWNlcy1iYXJAZnRoeCIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "1rskz8llic5g8cix4mb6iha9v789fg6yn2i25zj0ywb9qn063ld5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgJ0FjdGl2aXRpZXMnIGJ1dHRvbiBieSBhbGwgY3VycmVudCB3b3Jrc3BhY2VzIGJ1dHRvbnMuIFN3aXRjaCB3b3Jrc3BhY2Ugb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJXb3Jrc3BhY2VzIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC93b3Jrc3BhY2VzLWJhciIsCiAgInV1aWQiOiAid29ya3NwYWNlcy1iYXJAZnRoeCIsCiAgInZlcnNpb24iOiAxMgp9"}}}
 , {"uuid": "scanlines-effect@muratcileli.com", "name": "Scanlines Effect", "pname": "scanlines-effect", "description": "Retro monitor / CRT TV effect.", "link": "https://extensions.gnome.org/extension/3860/scanlines-effect/", "shell_version_map": {"38": {"version": "1", "sha256": "1xcsd700s9hkqmrqlv56ldiya2jk0d46j8k4a4i3m9c6k40c5z7v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJldHJvIG1vbml0b3IgLyBDUlQgVFYgZWZmZWN0LiIsCiAgIm5hbWUiOiAiU2NhbmxpbmVzIEVmZmVjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJjb20ubXVyYXRjaWxlbGkuc2NhbmxpbmVzLWVmZmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL211cmF0LWNpbGVsaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2NhbmxpbmVzLWVmZmVjdCIsCiAgInV1aWQiOiAic2NhbmxpbmVzLWVmZmVjdEBtdXJhdGNpbGVsaS5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "workspaces-thumbnails-applet@blogdron", "name": "Workspaces Thumbnails Applet", "pname": "workspaces-thumbnails-applet", "description": "Notice!\n\nThis is a fork of the extension https://extensions.gnome.org/extension/2557/workspaces-thumbnails/ It hasn't been updated in a long time, but it only needs a small fix to work. Until the author fixes the problem, I will keep this fork. Please, if you have the opportunity to contact the author of the original extension, let him fix the problem for himself.\n\n\nPut an indicator on the panel showing all the workspaces thumbnails, allowing to switch between them or moving windows to another workspace.\n\n This is a very tiny fork of the original (GNOME official extension) Workspace Indicator, allowing to use it like when the Horizontal Workspaces extension is activated. The vertical workspaces layout is not modified; the workspaces layout is horizontal only in the top panel and the workspaces switcher in the overview is still showed. Please note that any global bug should be reported against the Workspace Indicator extension. https://extensions.gnome.org/extension/21/workspace-indicator", "link": "https://extensions.gnome.org/extension/3872/workspaces-thumbnails-applet/", "shell_version_map": {"38": {"version": "1", "sha256": "02823b6rfnibb0mhnx848pdxc3birw2aqp8607wjf93mvy5388hm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGljZSFcblxuVGhpcyBpcyBhIGZvcmsgb2YgdGhlIGV4dGVuc2lvbiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8yNTU3L3dvcmtzcGFjZXMtdGh1bWJuYWlscy8gSXQgaGFzbid0IGJlZW4gdXBkYXRlZCBpbiBhIGxvbmcgdGltZSwgYnV0IGl0IG9ubHkgbmVlZHMgYSBzbWFsbCBmaXggdG8gd29yay4gVW50aWwgdGhlIGF1dGhvciBmaXhlcyB0aGUgcHJvYmxlbSwgSSB3aWxsIGtlZXAgdGhpcyBmb3JrLiBQbGVhc2UsIGlmIHlvdSBoYXZlIHRoZSBvcHBvcnR1bml0eSB0byBjb250YWN0IHRoZSBhdXRob3Igb2YgdGhlIG9yaWdpbmFsIGV4dGVuc2lvbiwgbGV0IGhpbSBmaXggdGhlIHByb2JsZW0gZm9yIGhpbXNlbGYuXG5cblxuUHV0IGFuIGluZGljYXRvciBvbiB0aGUgcGFuZWwgc2hvd2luZyBhbGwgdGhlIHdvcmtzcGFjZXMgdGh1bWJuYWlscywgYWxsb3dpbmcgdG8gc3dpdGNoIGJldHdlZW4gdGhlbSBvciBtb3Zpbmcgd2luZG93cyB0byBhbm90aGVyIHdvcmtzcGFjZS5cblxuIFRoaXMgaXMgYSB2ZXJ5IHRpbnkgZm9yayBvZiB0aGUgb3JpZ2luYWwgKEdOT01FIG9mZmljaWFsIGV4dGVuc2lvbikgV29ya3NwYWNlIEluZGljYXRvciwgYWxsb3dpbmcgdG8gdXNlIGl0IGxpa2Ugd2hlbiB0aGUgSG9yaXpvbnRhbCBXb3Jrc3BhY2VzIGV4dGVuc2lvbiBpcyBhY3RpdmF0ZWQuIFRoZSB2ZXJ0aWNhbCB3b3Jrc3BhY2VzIGxheW91dCBpcyBub3QgbW9kaWZpZWQ7IHRoZSB3b3Jrc3BhY2VzIGxheW91dCBpcyBob3Jpem9udGFsIG9ubHkgaW4gdGhlIHRvcCBwYW5lbCBhbmQgdGhlIHdvcmtzcGFjZXMgc3dpdGNoZXIgaW4gdGhlIG92ZXJ2aWV3IGlzIHN0aWxsIHNob3dlZC4gUGxlYXNlIG5vdGUgdGhhdCBhbnkgZ2xvYmFsIGJ1ZyBzaG91bGQgYmUgcmVwb3J0ZWQgYWdhaW5zdCB0aGUgV29ya3NwYWNlIEluZGljYXRvciBleHRlbnNpb24uIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzIxL3dvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJleHRlbnNpb24taWQiOiAid29ya3NwYWNlcy10aHVtYm5haWxzLWFwcGxldCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIldvcmtzcGFjZXMgVGh1bWJuYWlscyBBcHBsZXQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiLAogICAgImJsb2dkcm9uIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIndvcmtzcGFjZXMtdGh1bWJuYWlscy1hcHBsZXRAYmxvZ2Ryb24iLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "simple-monitor@fcaballerop.github.io", "name": "Simple monitor", "pname": "simple-monitor", "description": "It cases stuttering in videos for some users, this extension is not being updated.\nA simple panel button that shows CPU and RAM memory usage. Clicking shows the top 10 processes using CPU and memory.", "link": "https://extensions.gnome.org/extension/3891/simple-monitor/", "shell_version_map": {"38": {"version": "5", "sha256": "1gff73ddb7yinxzdqq1cliqf1xlav16j31wlc7nsnl899zj0cd5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0IGNhc2VzIHN0dXR0ZXJpbmcgaW4gdmlkZW9zIGZvciBzb21lIHVzZXJzLCB0aGlzIGV4dGVuc2lvbiBpcyBub3QgYmVpbmcgdXBkYXRlZC5cbkEgc2ltcGxlIHBhbmVsIGJ1dHRvbiB0aGF0IHNob3dzIENQVSBhbmQgUkFNIG1lbW9yeSB1c2FnZS4gQ2xpY2tpbmcgc2hvd3MgdGhlIHRvcCAxMCBwcm9jZXNzZXMgdXNpbmcgQ1BVIGFuZCBtZW1vcnkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZXhhbXBsZSIsCiAgIm5hbWUiOiAiU2ltcGxlIG1vbml0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc21vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic2ltcGxlLW1vbml0b3JAZmNhYmFsbGVyb3AuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
@@ -400,8 +404,8 @@
 , {"uuid": "focus@scaryrawr.github.io", "name": "Focus", "pname": "focus", "description": "Transparent inactive windows", "link": "https://extensions.gnome.org/extension/3924/focus/", "shell_version_map": {"38": {"version": "6", "sha256": "1ks47h0m50hssq5m25586lv5fa3yhwhdnb1jxgkfnb547k6qxb6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2NhcnlyYXdyL2dub21lLWZvY3VzIiwKICAidXVpZCI6ICJmb2N1c0BzY2FyeXJhd3IuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "1ks47h0m50hssq5m25586lv5fa3yhwhdnb1jxgkfnb547k6qxb6n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zcGFyZW50IGluYWN0aXZlIHdpbmRvd3MiLAogICJuYW1lIjogIkZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC5iZXRhIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2NhcnlyYXdyL2dub21lLWZvY3VzIiwKICAidXVpZCI6ICJmb2N1c0BzY2FyeXJhd3IuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "autoselectheadset@josephlbarnett.github.com", "name": "Auto select headset", "pname": "auto-select-headset", "description": "Auto selects headsets when possible instead of showing a dialog", "link": "https://extensions.gnome.org/extension/3928/auto-select-headset/", "shell_version_map": {"38": {"version": "3", "sha256": "097q3xgkm5g75vjy76v9y8q7n5jb1wvxv2ffvj1f0nk0ag7y909d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qb3NlcGhsYmFybmV0dC9hdXRvc2VsZWN0aGVhZHNldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImF1dG9zZWxlY3RoZWFkc2V0QGpvc2VwaGxiYXJuZXR0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "097q3xgkm5g75vjy76v9y8q7n5jb1wvxv2ffvj1f0nk0ag7y909d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qb3NlcGhsYmFybmV0dC9hdXRvc2VsZWN0aGVhZHNldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImF1dG9zZWxlY3RoZWFkc2V0QGpvc2VwaGxiYXJuZXR0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
 , {"uuid": "toggle-night-light@cansozbir.github.io", "name": "Toggle Night Light", "pname": "toggle-night-light", "description": "This extension lets you toggle night-light from the top-bar by clicking it.", "link": "https://extensions.gnome.org/extension/3933/toggle-night-light/", "shell_version_map": {"38": {"version": "5", "sha256": "1r7mjixc2r8p5cmgk94sbj7gsx9xfx5sfnaxa01prqrpd3pqlhzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jYW5zb3piaXIvZ25vbWUtc2hlbGwtdG9nZ2xlLW5pZ2h0LWxpZ2h0LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidG9nZ2xlLW5pZ2h0LWxpZ2h0QGNhbnNvemJpci5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1r7mjixc2r8p5cmgk94sbj7gsx9xfx5sfnaxa01prqrpd3pqlhzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jYW5zb3piaXIvZ25vbWUtc2hlbGwtdG9nZ2xlLW5pZ2h0LWxpZ2h0LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidG9nZ2xlLW5pZ2h0LWxpZ2h0QGNhbnNvemJpci5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1r7mjixc2r8p5cmgk94sbj7gsx9xfx5sfnaxa01prqrpd3pqlhzv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jYW5zb3piaXIvZ25vbWUtc2hlbGwtdG9nZ2xlLW5pZ2h0LWxpZ2h0LWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidG9nZ2xlLW5pZ2h0LWxpZ2h0QGNhbnNvemJpci5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}}}
-, {"uuid": "adwaita-theme-switcher@fthx", "name": "Adwaita Theme Switcher", "pname": "adwaita-theme-switcher", "description": "Button in panel: switch between Adwaita dark and light themes.", "link": "https://extensions.gnome.org/extension/3936/adwaita-theme-switcher/", "shell_version_map": {"38": {"version": "2", "sha256": "1rdmyf8wr3f1kizsirpjs61bdll507knls50c5ximjq14mk92b3q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gQWR3YWl0YSBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIiwKICAibmFtZSI6ICJBZHdhaXRhIFRoZW1lIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYWR3YWl0YS10aGVtZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR3YWl0YS10aGVtZS1zd2l0Y2hlckBmdGh4IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "1rdmyf8wr3f1kizsirpjs61bdll507knls50c5ximjq14mk92b3q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gQWR3YWl0YSBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIiwKICAibmFtZSI6ICJBZHdhaXRhIFRoZW1lIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYWR3YWl0YS10aGVtZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR3YWl0YS10aGVtZS1zd2l0Y2hlckBmdGh4IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
-, {"uuid": "fnlock-switch-tp-comp-usb-kb@goloshubov.github.io", "name": "FnLock switch (ThinkPad Compact USB Keyboard) ", "pname": "fnlock-switch-thinkpad-compact-usb-keyboard", "description": "FnLock switch for Lenovo ThinkPad Compact USB Keyboard ", "link": "https://extensions.gnome.org/extension/3939/fnlock-switch-thinkpad-compact-usb-keyboard/", "shell_version_map": {"38": {"version": "3", "sha256": "09a0i4zdf98j5cr7c8x79sk8yf2n35skkkz3chi6cc7q3va9ylg8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29sb3NodWJvdi9mbmxvY2stc3dpdGNoLXRwLWNvbXAtdXNiLWtiIiwKICAidXVpZCI6ICJmbmxvY2stc3dpdGNoLXRwLWNvbXAtdXNiLWtiQGdvbG9zaHVib3YuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "09a0i4zdf98j5cr7c8x79sk8yf2n35skkkz3chi6cc7q3va9ylg8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29sb3NodWJvdi9mbmxvY2stc3dpdGNoLXRwLWNvbXAtdXNiLWtiIiwKICAidXVpZCI6ICJmbmxvY2stc3dpdGNoLXRwLWNvbXAtdXNiLWtiQGdvbG9zaHVib3YuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "adwaita-theme-switcher@fthx", "name": "Adwaita Theme Switcher", "pname": "adwaita-theme-switcher", "description": "Button in panel: switch between Adwaita dark and light themes.", "link": "https://extensions.gnome.org/extension/3936/adwaita-theme-switcher/", "shell_version_map": {"38": {"version": "4", "sha256": "0015j3vqwvb0fs2n90lz0i66f23nr7mmvqzgwnsah46x8lkm2kpr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gQWR3YWl0YSBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIiwKICAibmFtZSI6ICJBZHdhaXRhIFRoZW1lIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Fkd2FpdGEtdGhlbWUtc3dpdGNoZXIiLAogICJ1dWlkIjogImFkd2FpdGEtdGhlbWUtc3dpdGNoZXJAZnRoeCIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "0015j3vqwvb0fs2n90lz0i66f23nr7mmvqzgwnsah46x8lkm2kpr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gQWR3YWl0YSBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIiwKICAibmFtZSI6ICJBZHdhaXRhIFRoZW1lIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Fkd2FpdGEtdGhlbWUtc3dpdGNoZXIiLAogICJ1dWlkIjogImFkd2FpdGEtdGhlbWUtc3dpdGNoZXJAZnRoeCIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "0015j3vqwvb0fs2n90lz0i66f23nr7mmvqzgwnsah46x8lkm2kpr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gQWR3YWl0YSBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIiwKICAibmFtZSI6ICJBZHdhaXRhIFRoZW1lIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Fkd2FpdGEtdGhlbWUtc3dpdGNoZXIiLAogICJ1dWlkIjogImFkd2FpdGEtdGhlbWUtc3dpdGNoZXJAZnRoeCIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "fnlock-switch-tp-comp-usb-kb@goloshubov.github.io", "name": "FnLock switch (ThinkPad Compact USB Keyboard) ", "pname": "fnlock-switch-thinkpad-compact-usb-keyboard", "description": "FnLock switch for Lenovo ThinkPad Compact USB Keyboard ", "link": "https://extensions.gnome.org/extension/3939/fnlock-switch-thinkpad-compact-usb-keyboard/", "shell_version_map": {"38": {"version": "4", "sha256": "1nybwgfp354zn1z1lkl3wvvz2zddk6nbm9n2h5f5gbp58vhl8mw4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "1nybwgfp354zn1z1lkl3wvvz2zddk6nbm9n2h5f5gbp58vhl8mw4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "1nybwgfp354zn1z1lkl3wvvz2zddk6nbm9n2h5f5gbp58vhl8mw4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "toggle-alacritty@itstime.tech", "name": "Toggle Alacritty", "pname": "toggle-alacritty", "description": "Toggles Alacritty window via hotkey: Alt+z\n\nIf Alacritty is not launched, attempts to start it (/usr/bin/alacritty)\n\nWorks under both Wayland and X11\n\nTo change hotkey please follow instruction in the README.md:", "link": "https://extensions.gnome.org/extension/3942/toggle-alacritty/", "shell_version_map": {"38": {"version": "4", "sha256": "1kz5a8x9fpvilcd4p9pn6cmsj6gvq44cg85yhkgdi9x2qpd52fn1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDoiLAogICJuYW1lIjogIlRvZ2dsZSBBbGFjcml0dHkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudG9nZ2xlLWFsYWNyaXR0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLWFsYWNyaXR0eS10b2dnbGUiLAogICJ1dWlkIjogInRvZ2dsZS1hbGFjcml0dHlAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1kz5a8x9fpvilcd4p9pn6cmsj6gvq44cg85yhkgdi9x2qpd52fn1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDoiLAogICJuYW1lIjogIlRvZ2dsZSBBbGFjcml0dHkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudG9nZ2xlLWFsYWNyaXR0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLWFsYWNyaXR0eS10b2dnbGUiLAogICJ1dWlkIjogInRvZ2dsZS1hbGFjcml0dHlAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1kz5a8x9fpvilcd4p9pn6cmsj6gvq44cg85yhkgdi9x2qpd52fn1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDoiLAogICJuYW1lIjogIlRvZ2dsZSBBbGFjcml0dHkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudG9nZ2xlLWFsYWNyaXR0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLWFsYWNyaXR0eS10b2dnbGUiLAogICJ1dWlkIjogInRvZ2dsZS1hbGFjcml0dHlAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "hide-panel@fthx", "name": "Hide Panel", "pname": "hide-panel", "description": "Hide top panel except in overview. Switch button in panel.\n\nVery very light extension. There is a 1 pixel wide line at the top of the screen that allows to blindly use the panel menus. This is needed to keep the native hot corner active without having to recreate it.", "link": "https://extensions.gnome.org/extension/3948/hide-panel/", "shell_version_map": {"38": {"version": "8", "sha256": "0nrj0kxfdxx7nmw0zai070ca5lv5r43bpgm2binv31xjyh385849", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy4gU3dpdGNoIGJ1dHRvbiBpbiBwYW5lbC5cblxuVmVyeSB2ZXJ5IGxpZ2h0IGV4dGVuc2lvbi4gVGhlcmUgaXMgYSAxIHBpeGVsIHdpZGUgbGluZSBhdCB0aGUgdG9wIG9mIHRoZSBzY3JlZW4gdGhhdCBhbGxvd3MgdG8gYmxpbmRseSB1c2UgdGhlIHBhbmVsIG1lbnVzLiBUaGlzIGlzIG5lZWRlZCB0byBrZWVwIHRoZSBuYXRpdmUgaG90IGNvcm5lciBhY3RpdmUgd2l0aG91dCBoYXZpbmcgdG8gcmVjcmVhdGUgaXQuIiwKICAibmFtZSI6ICJIaWRlIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbCIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0nrj0kxfdxx7nmw0zai070ca5lv5r43bpgm2binv31xjyh385849", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy4gU3dpdGNoIGJ1dHRvbiBpbiBwYW5lbC5cblxuVmVyeSB2ZXJ5IGxpZ2h0IGV4dGVuc2lvbi4gVGhlcmUgaXMgYSAxIHBpeGVsIHdpZGUgbGluZSBhdCB0aGUgdG9wIG9mIHRoZSBzY3JlZW4gdGhhdCBhbGxvd3MgdG8gYmxpbmRseSB1c2UgdGhlIHBhbmVsIG1lbnVzLiBUaGlzIGlzIG5lZWRlZCB0byBrZWVwIHRoZSBuYXRpdmUgaG90IGNvcm5lciBhY3RpdmUgd2l0aG91dCBoYXZpbmcgdG8gcmVjcmVhdGUgaXQuIiwKICAibmFtZSI6ICJIaWRlIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbCIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "persistent-email-notifications@fthx", "name": "Persistent Email Notifications", "pname": "persistent-email-notifications", "description": "Never hide a new mail notification, except if you close it.\n\nVery very light extension. Email clients supported: Thunderbird, Evolution, Geary, Mailspring, TypeApp, BlueMail. Please ask for another email client if needed.", "link": "https://extensions.gnome.org/extension/3951/persistent-email-notifications/", "shell_version_map": {"38": {"version": "3", "sha256": "06m6fhs50vlrwkgdk6cvkcl5f155a1w8szs1g9pzryf8mmldgmdd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldmVyIGhpZGUgYSBuZXcgbWFpbCBub3RpZmljYXRpb24sIGV4Y2VwdCBpZiB5b3UgY2xvc2UgaXQuXG5cblZlcnkgdmVyeSBsaWdodCBleHRlbnNpb24uIEVtYWlsIGNsaWVudHMgc3VwcG9ydGVkOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZywgVHlwZUFwcCwgQmx1ZU1haWwuIFBsZWFzZSBhc2sgZm9yIGFub3RoZXIgZW1haWwgY2xpZW50IGlmIG5lZWRlZC4iLAogICJuYW1lIjogIlBlcnNpc3RlbnQgRW1haWwgTm90aWZpY2F0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3BlcnNpc3RlbnQtZW1haWwtbm90aWZpY2F0aW9ucyIsCiAgInV1aWQiOiAicGVyc2lzdGVudC1lbWFpbC1ub3RpZmljYXRpb25zQGZ0aHgiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "06m6fhs50vlrwkgdk6cvkcl5f155a1w8szs1g9pzryf8mmldgmdd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldmVyIGhpZGUgYSBuZXcgbWFpbCBub3RpZmljYXRpb24sIGV4Y2VwdCBpZiB5b3UgY2xvc2UgaXQuXG5cblZlcnkgdmVyeSBsaWdodCBleHRlbnNpb24uIEVtYWlsIGNsaWVudHMgc3VwcG9ydGVkOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZywgVHlwZUFwcCwgQmx1ZU1haWwuIFBsZWFzZSBhc2sgZm9yIGFub3RoZXIgZW1haWwgY2xpZW50IGlmIG5lZWRlZC4iLAogICJuYW1lIjogIlBlcnNpc3RlbnQgRW1haWwgTm90aWZpY2F0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3BlcnNpc3RlbnQtZW1haWwtbm90aWZpY2F0aW9ucyIsCiAgInV1aWQiOiAicGVyc2lzdGVudC1lbWFpbC1ub3RpZmljYXRpb25zQGZ0aHgiLAogICJ2ZXJzaW9uIjogMwp9"}}}
@@ -409,47 +413,48 @@
 , {"uuid": "kitchentimer@blackjackshellac.ca", "name": "Kitchen Timer", "pname": "kitchen-timer", "description": "General purpose timer extension for Gnome Shell\n\nPlease report issues on github\n\nIf updating the extension reports an ERROR, it should work after the next reboot or if you logout and login again.", "link": "https://extensions.gnome.org/extension/3955/kitchen-timer/", "shell_version_map": {"38": {"version": "28", "sha256": "0k1ahswl2ipjz1v1z1j96lndbk26rgfr2ra2g78lvzjiv6j42sdf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYWwgcHVycG9zZSB0aW1lciBleHRlbnNpb24gZm9yIEdub21lIFNoZWxsXG5cblBsZWFzZSByZXBvcnQgaXNzdWVzIG9uIGdpdGh1YlxuXG5JZiB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uIHJlcG9ydHMgYW4gRVJST1IsIGl0IHNob3VsZCB3b3JrIGFmdGVyIHRoZSBuZXh0IHJlYm9vdCBvciBpZiB5b3UgbG9nb3V0IGFuZCBsb2dpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJraXRjaGVuLXRpbWVyLWJsYWNramFja3NoZWxsYWMiLAogICJuYW1lIjogIktpdGNoZW4gVGltZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2l0Y2hlbi10aW1lci1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMva2l0Y2hlblRpbWVyIiwKICAidXVpZCI6ICJraXRjaGVudGltZXJAYmxhY2tqYWNrc2hlbGxhYy5jYSIsCiAgInZlcnNpb24iOiAyOAp9"}, "40": {"version": "28", "sha256": "0k1ahswl2ipjz1v1z1j96lndbk26rgfr2ra2g78lvzjiv6j42sdf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYWwgcHVycG9zZSB0aW1lciBleHRlbnNpb24gZm9yIEdub21lIFNoZWxsXG5cblBsZWFzZSByZXBvcnQgaXNzdWVzIG9uIGdpdGh1YlxuXG5JZiB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uIHJlcG9ydHMgYW4gRVJST1IsIGl0IHNob3VsZCB3b3JrIGFmdGVyIHRoZSBuZXh0IHJlYm9vdCBvciBpZiB5b3UgbG9nb3V0IGFuZCBsb2dpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJraXRjaGVuLXRpbWVyLWJsYWNramFja3NoZWxsYWMiLAogICJuYW1lIjogIktpdGNoZW4gVGltZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2l0Y2hlbi10aW1lci1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMva2l0Y2hlblRpbWVyIiwKICAidXVpZCI6ICJraXRjaGVudGltZXJAYmxhY2tqYWNrc2hlbGxhYy5jYSIsCiAgInZlcnNpb24iOiAyOAp9"}}}
 , {"uuid": "gnome-fuzzy-app-search@gnome-shell-extensions.Czarlie.gitlab.com", "name": "GNOME Fuzzy App Search", "pname": "gnome-fuzzy-app-search", "description": "Fuzzy application search results for Gnome Search", "link": "https://extensions.gnome.org/extension/3956/gnome-fuzzy-app-search/", "shell_version_map": {"38": {"version": "3", "sha256": "0jxh2wcckwnijgabg9k7b7mi785j63pjkbjya4pbvnmiw4n4qbn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjIxLjIiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0N6YXJsaWUvZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgInV1aWQiOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaEBnbm9tZS1zaGVsbC1leHRlbnNpb25zLkN6YXJsaWUuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "0jxh2wcckwnijgabg9k7b7mi785j63pjkbjya4pbvnmiw4n4qbn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjIxLjIiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0N6YXJsaWUvZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgInV1aWQiOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaEBnbm9tZS1zaGVsbC1leHRlbnNpb25zLkN6YXJsaWUuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "0jxh2wcckwnijgabg9k7b7mi785j63pjkbjya4pbvnmiw4n4qbn0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjIxLjIiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0N6YXJsaWUvZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgInV1aWQiOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaEBnbm9tZS1zaGVsbC1leHRlbnNpb25zLkN6YXJsaWUuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "e-ink-mode@fujimo-t.github.io", "name": "E Ink Mode", "pname": "e-ink-mode", "description": "# GNOME Shell Extension: E Ink Mode\nMake desktop suitable for E Ink monitors.\n\n## Features\n* Switch Shell, GTK and icon theme to light high contrast one\n* Disable animations\n* Change background to white color\n\n## Dependencies\n* `High Constrast` theme for GTK and icon", "link": "https://extensions.gnome.org/extension/3957/e-ink-mode/", "shell_version_map": {"40": {"version": "3", "sha256": "1bzcv10c9wd2qga4z3swlyf0v0bv1s0j90vjxlmvylfr1nnbsjc9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiMgR05PTUUgU2hlbGwgRXh0ZW5zaW9uOiBFIEluayBNb2RlXG5NYWtlIGRlc2t0b3Agc3VpdGFibGUgZm9yIEUgSW5rIG1vbml0b3JzLlxuXG4jIyBGZWF0dXJlc1xuKiBTd2l0Y2ggU2hlbGwsIEdUSyBhbmQgaWNvbiB0aGVtZSB0byBsaWdodCBoaWdoIGNvbnRyYXN0IG9uZVxuKiBEaXNhYmxlIGFuaW1hdGlvbnNcbiogQ2hhbmdlIGJhY2tncm91bmQgdG8gd2hpdGUgY29sb3JcblxuIyMgRGVwZW5kZW5jaWVzXG4qIGBIaWdoIENvbnN0cmFzdGAgdGhlbWUgZm9yIEdUSyBhbmQgaWNvbiIsCiAgIm5hbWUiOiAiRSBJbmsgTW9kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdWppbW8tdC9nbm9tZS1zaGVsbC1leHRlbnNpb24tZS1pbmstbW9kZSIsCiAgInV1aWQiOiAiZS1pbmstbW9kZUBmdWppbW8tdC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMwp9"}}}
-, {"uuid": "transparent-top-bar@ftpix.com", "name": "Transparent Top Bar (Adjustable transparency)", "pname": "transparent-top-bar-adjustable-transparency", "description": "Fork of: https://github.com/zhanghai/gnome-shell-extension-transparent-top-bar\n\nBring back the transparent top bar in GNOME Shell with adjustable transparency.\n\nDoes not work well with custom shell themes.", "link": "https://extensions.gnome.org/extension/3960/transparent-top-bar-adjustable-transparency/", "shell_version_map": {"38": {"version": "5", "sha256": "09mym8h6lpb53b18c72vzl2y7myl1xg1lyg9jryf3nijna9adnr9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGFtYXJpb3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXRvcC1iYXIiLAogICJ1dWlkIjogInRyYW5zcGFyZW50LXRvcC1iYXJAZnRwaXguY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "9", "sha256": "0jyr7dilvnvdfg9k3w8mnwq573n259haq7i4kvp1kbkl5mdwh3jm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xhbWFyaW9zL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC10b3AtYmFyQGZ0cGl4LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}, "41": {"version": "9", "sha256": "0jyr7dilvnvdfg9k3w8mnwq573n259haq7i4kvp1kbkl5mdwh3jm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xhbWFyaW9zL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC10b3AtYmFyQGZ0cGl4LmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}}}
+, {"uuid": "transparent-top-bar@ftpix.com", "name": "Transparent Top Bar (Adjustable transparency)", "pname": "transparent-top-bar-adjustable-transparency", "description": "Fork of: https://github.com/zhanghai/gnome-shell-extension-transparent-top-bar\n\nBring back the transparent top bar in GNOME Shell with adjustable transparency.\n\nDoes not work well with custom shell themes.", "link": "https://extensions.gnome.org/extension/3960/transparent-top-bar-adjustable-transparency/", "shell_version_map": {"38": {"version": "5", "sha256": "09mym8h6lpb53b18c72vzl2y7myl1xg1lyg9jryf3nijna9adnr9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGFtYXJpb3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXRvcC1iYXIiLAogICJ1dWlkIjogInRyYW5zcGFyZW50LXRvcC1iYXJAZnRwaXguY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "10", "sha256": "0i37h2jcj2j64cc3y67irmmj1g7iqz5pzcdz9y8ws702jpg0pz2g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xhbWFyaW9zL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC10b3AtYmFyQGZ0cGl4LmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}, "41": {"version": "10", "sha256": "0i37h2jcj2j64cc3y67irmmj1g7iqz5pzcdz9y8ws702jpg0pz2g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xhbWFyaW9zL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC10b3AtYmFyIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC10b3AtYmFyQGZ0cGl4LmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}}}
 , {"uuid": "improved-workspace-indicator@michaelaquilina.github.io", "name": "Improved Workspace Indicator", "pname": "improved-workspace-indicator", "description": "Slightly improved workspace indicator that shows both current and in use workspaces similar to i3/sway", "link": "https://extensions.gnome.org/extension/3968/improved-workspace-indicator/", "shell_version_map": {"38": {"version": "8", "sha256": "0jgs5hl6qh56j6zash5n1gbgn93qwcf75fi7mrr80bdkyay0wv5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFlbEFxdWlsaW5hL2ltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3JAbWljaGFlbGFxdWlsaW5hLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "0jgs5hl6qh56j6zash5n1gbgn93qwcf75fi7mrr80bdkyay0wv5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFlbEFxdWlsaW5hL2ltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3JAbWljaGFlbGFxdWlsaW5hLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "0jgs5hl6qh56j6zash5n1gbgn93qwcf75fi7mrr80bdkyay0wv5j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFlbEFxdWlsaW5hL2ltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImltcHJvdmVkLXdvcmtzcGFjZS1pbmRpY2F0b3JAbWljaGFlbGFxdWlsaW5hLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="}}}
 , {"uuid": "guillotine@fopdoodle.net", "name": "Guillotine", "pname": "guillotine", "description": "Guillotine is a gnome extension designed for efficiently carrying out executions of commands from a customizable menu. Simply speaking: it is a highly customizable menu that enables you to launch commands and toggle services.", "link": "https://extensions.gnome.org/extension/3981/guillotine/", "shell_version_map": {"38": {"version": "3", "sha256": "0jpm8q47naxv5ld9yx6jjsnlm5snlqybilkmr8kvxq1an6pj36yw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW50ZTc2L2d1aWxsb3RpbmUvIiwKICAidXVpZCI6ICJndWlsbG90aW5lQGZvcGRvb2RsZS5uZXQiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "9", "sha256": "06mxhyxzfwgx2daqnkxw9mrxmi1p606miq5almnfaw2hk17sc45a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbnRlNzYvZ3VpbGxvdGluZS8iLAogICJ1dWlkIjogImd1aWxsb3RpbmVAZm9wZG9vZGxlLm5ldCIsCiAgInZlcnNpb24iOiA5Cn0="}, "41": {"version": "9", "sha256": "06mxhyxzfwgx2daqnkxw9mrxmi1p606miq5almnfaw2hk17sc45a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbnRlNzYvZ3VpbGxvdGluZS8iLAogICJ1dWlkIjogImd1aWxsb3RpbmVAZm9wZG9vZGxlLm5ldCIsCiAgInZlcnNpb24iOiA5Cn0="}}}
 , {"uuid": "shuzhi@tuberry", "name": "Shu Zhi", "pname": "shu-zhi", "description": "Wallpaper generation extension for GNOME Shell, inspired by Jizhi\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3985/shu-zhi/", "shell_version_map": {"38": {"version": "7", "sha256": "1yk39q1ydv7kmb8shi4cp7pf5zvpmj99gjl9svack4773dj9rrwi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogInNodXpoaSIsCiAgIm5hbWUiOiAiU2h1IFpoaSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV6aGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3NodXpoaSIsCiAgInV1aWQiOiAic2h1emhpQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "17", "sha256": "1n0ajmm6d7y6kify6k9g3j2kc3ass9s7zyif5jhr1djzsi6knpq0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxNwp9"}, "41": {"version": "19", "sha256": "1ib82yf7gh97hygbrxccpsh75jpg65rp834vygi25kyf0b8fykff", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxOQp9"}}}
 , {"uuid": "zilence@apankowski.github.com", "name": "Zilence", "pname": "zilence", "description": "Turns off notifications while sharing screen during a Zoom call", "link": "https://extensions.gnome.org/extension/3988/zilence/", "shell_version_map": {"38": {"version": "1", "sha256": "09j017cpiimqi97rk2zp1bidrvf026dv469w80wiikbq67r22c9w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1pdCI6ICIzNzBiODIzYmQ5NTM4MDY4MThmMmYwNzhiNGNmZWYyODIzMmVjOTMwIiwKICAiZGVzY3JpcHRpb24iOiAiVHVybnMgb2ZmIG5vdGlmaWNhdGlvbnMgd2hpbGUgc2hhcmluZyBzY3JlZW4gZHVyaW5nIGEgWm9vbSBjYWxsIiwKICAibmFtZSI6ICJaaWxlbmNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXBhbmtvd3NraS96aWxlbmNlIiwKICAidXVpZCI6ICJ6aWxlbmNlQGFwYW5rb3dza2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "bluetooth-battery@michalw.github.com", "name": "Bluetooth battery indicator", "pname": "bluetooth-battery", "description": "Bluetooth battery indicator", "link": "https://extensions.gnome.org/extension/3991/bluetooth-battery/", "shell_version_map": {"38": {"version": "18", "sha256": "1a9fvxhzyz5869s020icn3vx3pcwsnx59yjibhb6pqn0h61d8c83", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NaWNoYWxXL2dub21lLWJsdWV0b290aC1iYXR0ZXJ5LWluZGljYXRvciIsCiAgInV1aWQiOiAiYmx1ZXRvb3RoLWJhdHRlcnlAbWljaGFsdy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "18", "sha256": "1a9fvxhzyz5869s020icn3vx3pcwsnx59yjibhb6pqn0h61d8c83", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NaWNoYWxXL2dub21lLWJsdWV0b290aC1iYXR0ZXJ5LWluZGljYXRvciIsCiAgInV1aWQiOiAiYmx1ZXRvb3RoLWJhdHRlcnlAbWljaGFsdy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
+, {"uuid": "bluetooth-battery@michalw.github.com", "name": "Bluetooth battery indicator", "pname": "bluetooth-battery", "description": "Bluetooth battery indicator", "link": "https://extensions.gnome.org/extension/3991/bluetooth-battery/", "shell_version_map": {"38": {"version": "19", "sha256": "17wnkw6js16ivbpkizj9ph55nj2z2wcdj73c2yh4lvyifpks54ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxOQp9"}, "40": {"version": "19", "sha256": "17wnkw6js16ivbpkizj9ph55nj2z2wcdj73c2yh4lvyifpks54ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxOQp9"}, "41": {"version": "19", "sha256": "17wnkw6js16ivbpkizj9ph55nj2z2wcdj73c2yh4lvyifpks54ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxOQp9"}}}
 , {"uuid": "gnome-extension-all-ip-addresses@havekes.eu", "name": "All IP Addresses", "pname": "all-ip-addresses", "description": "Show IP addresses for LAN, WAN IPv6 and VPN in the GNOME panel. Click on the address to cycle trough different interfaces.", "link": "https://extensions.gnome.org/extension/3994/all-ip-addresses/", "shell_version_map": {"38": {"version": "3", "sha256": "1s08inwbr9g50g275sxsjggqgwh59gz664ay944ngn755vnr9y1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSVAgYWRkcmVzc2VzIGZvciBMQU4sIFdBTiBJUHY2IGFuZCBWUE4gaW4gdGhlIEdOT01FIHBhbmVsLiBDbGljayBvbiB0aGUgYWRkcmVzcyB0byBjeWNsZSB0cm91Z2ggZGlmZmVyZW50IGludGVyZmFjZXMuIiwKICAibmFtZSI6ICJBbGwgSVAgQWRkcmVzc2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9waGF2ZWtlcy9nbm9tZS1leHRlbnNpb24tYWxsLWlwLWFkZHJlc3NlcyIsCiAgInV1aWQiOiAiZ25vbWUtZXh0ZW5zaW9uLWFsbC1pcC1hZGRyZXNzZXNAaGF2ZWtlcy5ldSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1s08inwbr9g50g275sxsjggqgwh59gz664ay944ngn755vnr9y1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSVAgYWRkcmVzc2VzIGZvciBMQU4sIFdBTiBJUHY2IGFuZCBWUE4gaW4gdGhlIEdOT01FIHBhbmVsLiBDbGljayBvbiB0aGUgYWRkcmVzcyB0byBjeWNsZSB0cm91Z2ggZGlmZmVyZW50IGludGVyZmFjZXMuIiwKICAibmFtZSI6ICJBbGwgSVAgQWRkcmVzc2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9waGF2ZWtlcy9nbm9tZS1leHRlbnNpb24tYWxsLWlwLWFkZHJlc3NlcyIsCiAgInV1aWQiOiAiZ25vbWUtZXh0ZW5zaW9uLWFsbC1pcC1hZGRyZXNzZXNAaGF2ZWtlcy5ldSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "1s08inwbr9g50g275sxsjggqgwh59gz664ay944ngn755vnr9y1p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSVAgYWRkcmVzc2VzIGZvciBMQU4sIFdBTiBJUHY2IGFuZCBWUE4gaW4gdGhlIEdOT01FIHBhbmVsLiBDbGljayBvbiB0aGUgYWRkcmVzcyB0byBjeWNsZSB0cm91Z2ggZGlmZmVyZW50IGludGVyZmFjZXMuIiwKICAibmFtZSI6ICJBbGwgSVAgQWRkcmVzc2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9waGF2ZWtlcy9nbm9tZS1leHRlbnNpb24tYWxsLWlwLWFkZHJlc3NlcyIsCiAgInV1aWQiOiAiZ25vbWUtZXh0ZW5zaW9uLWFsbC1pcC1hZGRyZXNzZXNAaGF2ZWtlcy5ldSIsCiAgInZlcnNpb24iOiAzCn0="}}}
-, {"uuid": "app-grid-tweaks@Selenium-H", "name": "App Grid Tweaks", "pname": "app-grid-tweaks", "description": "Customize the application grid view.\n\nSet the rows, columns and the app icon size for a particular configuration to work.\nIf the screen space is out numbered, reduce the icon size to fit all the rows and columns.\nOr reduce the number of rows and columns.\n\nPress the Refresh button on the left of header bar to apply changes\n\nIn case of any errors due to update, Please try resetting the extension.  Reset button is present in Extension Preferences window in Top Right Application Menu > Preferences > Reset App Grid Tweaks Extension.  ", "link": "https://extensions.gnome.org/extension/3997/app-grid-tweaks/", "shell_version_map": {"38": {"version": "3", "sha256": "1zszxj4d4vdahc369jsk1544f6zrjnilpxa4ihdfx6ci3rgc16p6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXNcblxuSW4gY2FzZSBvZiBhbnkgZXJyb3JzIGR1ZSB0byB1cGRhdGUsIFBsZWFzZSB0cnkgcmVzZXR0aW5nIHRoZSBleHRlbnNpb24uICBSZXNldCBidXR0b24gaXMgcHJlc2VudCBpbiBFeHRlbnNpb24gUHJlZmVyZW5jZXMgd2luZG93IGluIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBNZW51ID4gUHJlZmVyZW5jZXMgPiBSZXNldCBBcHAgR3JpZCBUd2Vha3MgRXh0ZW5zaW9uLiAgIiwKICAibmFtZSI6ICJBcHAgR3JpZCBUd2Vha3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwLWdyaWQtdHdlYWtzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1zszxj4d4vdahc369jsk1544f6zrjnilpxa4ihdfx6ci3rgc16p6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXNcblxuSW4gY2FzZSBvZiBhbnkgZXJyb3JzIGR1ZSB0byB1cGRhdGUsIFBsZWFzZSB0cnkgcmVzZXR0aW5nIHRoZSBleHRlbnNpb24uICBSZXNldCBidXR0b24gaXMgcHJlc2VudCBpbiBFeHRlbnNpb24gUHJlZmVyZW5jZXMgd2luZG93IGluIFRvcCBSaWdodCBBcHBsaWNhdGlvbiBNZW51ID4gUHJlZmVyZW5jZXMgPiBSZXNldCBBcHAgR3JpZCBUd2Vha3MgRXh0ZW5zaW9uLiAgIiwKICAibmFtZSI6ICJBcHAgR3JpZCBUd2Vha3MiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwLWdyaWQtdHdlYWtzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogMwp9"}}}
-, {"uuid": "babar@fthx", "name": "BaBar Task Bar", "pname": "babar", "description": "Task 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": "56", "sha256": "1iwk1fi2kslpnjfy2xmq9baryrvijm9rh8m9zk15mbka4jmmkqnk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTYKfQ=="}, "40": {"version": "56", "sha256": "1iwk1fi2kslpnjfy2xmq9baryrvijm9rh8m9zk15mbka4jmmkqnk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTYKfQ=="}, "41": {"version": "56", "sha256": "1iwk1fi2kslpnjfy2xmq9baryrvijm9rh8m9zk15mbka4jmmkqnk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTYKfQ=="}}}
+, {"uuid": "app-grid-tweaks@Selenium-H", "name": "App Grid Tweaks", "pname": "app-grid-tweaks", "description": "Customize the application grid view.\n\nSet the rows, columns and the app icon size for a particular configuration to work.\nIf the screen space is out numbered, reduce the icon size to fit all the rows and columns.\nOr reduce the number of rows and columns.\n\nPress the Refresh button on the left of header bar to apply changes", "link": "https://extensions.gnome.org/extension/3997/app-grid-tweaks/", "shell_version_map": {"38": {"version": "4", "sha256": "17hriwcwhkjp3n20q7bm7iylr8862ghvnagf2xk0ci2hxwwbyc92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXMiLAogICJuYW1lIjogIkFwcCBHcmlkIFR3ZWFrcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHAtZ3JpZC10d2Vha3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "17hriwcwhkjp3n20q7bm7iylr8862ghvnagf2xk0ci2hxwwbyc92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXMiLAogICJuYW1lIjogIkFwcCBHcmlkIFR3ZWFrcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHAtZ3JpZC10d2Vha3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "17hriwcwhkjp3n20q7bm7iylr8862ghvnagf2xk0ci2hxwwbyc92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXMiLAogICJuYW1lIjogIkFwcCBHcmlkIFR3ZWFrcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHAtZ3JpZC10d2Vha3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "babar@fthx", "name": "BaBar Task Bar", "pname": "babar", "description": "Task 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": "0sgsz9skc0d3rx9lap6g8fnmb5ki4ylr8s5f8yk5wkpvzvh3gkgy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}, "40": {"version": "58", "sha256": "0sgsz9skc0d3rx9lap6g8fnmb5ki4ylr8s5f8yk5wkpvzvh3gkgy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}, "41": {"version": "58", "sha256": "0sgsz9skc0d3rx9lap6g8fnmb5ki4ylr8s5f8yk5wkpvzvh3gkgy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}}}
 , {"uuid": "kitsch@fopdoodle.net", "name": "Kitsch", "pname": "kitsch", "description": "Kitsch is a collection of cheap, popular, and marketable improvements to Gnome. One could consider it applying a cosmetic surgery to Gnome.\n\nKitsch can easily be configured and offers the following features:\n- remove application menu from the top bar\n- remove the activity button from the top bar\n- periodically change the background picture\n\nThis extension does not come with any button on the panel. Visit the website for a documentation.", "link": "https://extensions.gnome.org/extension/4001/kitsch/", "shell_version_map": {"38": {"version": "2", "sha256": "16zwz0p4f8zizr14k4jmdixgnjd0a67d0i3w6clrqgfl49cpdcdv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpdHNjaCBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlYXAsIHBvcHVsYXIsIGFuZCBtYXJrZXRhYmxlIGltcHJvdmVtZW50cyB0byBHbm9tZS4gT25lIGNvdWxkIGNvbnNpZGVyIGl0IGFwcGx5aW5nIGEgY29zbWV0aWMgc3VyZ2VyeSB0byBHbm9tZS5cblxuS2l0c2NoIGNhbiBlYXNpbHkgYmUgY29uZmlndXJlZCBhbmQgb2ZmZXJzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6XG4tIHJlbW92ZSBhcHBsaWNhdGlvbiBtZW51IGZyb20gdGhlIHRvcCBiYXJcbi0gcmVtb3ZlIHRoZSBhY3Rpdml0eSBidXR0b24gZnJvbSB0aGUgdG9wIGJhclxuLSBwZXJpb2RpY2FsbHkgY2hhbmdlIHRoZSBiYWNrZ3JvdW5kIHBpY3R1cmVcblxuVGhpcyBleHRlbnNpb24gZG9lcyBub3QgY29tZSB3aXRoIGFueSBidXR0b24gb24gdGhlIHBhbmVsLiBWaXNpdCB0aGUgd2Vic2l0ZSBmb3IgYSBkb2N1bWVudGF0aW9uLiIsCiAgIm5hbWUiOiAiS2l0c2NoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtpdHNjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VudGU3Ni9raXRzY2gvIiwKICAidXVpZCI6ICJraXRzY2hAZm9wZG9vZGxlLm5ldCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "5", "sha256": "1bbbdhf73sv240bid4s604g6r8axd40ph2yyf23z5fpj3679g2xr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktpdHNjaCBpcyBhIGNvbGxlY3Rpb24gb2YgY2hlYXAsIHBvcHVsYXIsIGFuZCBtYXJrZXRhYmxlIGltcHJvdmVtZW50cyB0byBHbm9tZS4gT25lIGNvdWxkIGNvbnNpZGVyIGl0IGFwcGx5aW5nIGEgY29zbWV0aWMgc3VyZ2VyeSB0byBHbm9tZS5cblxuS2l0c2NoIGNhbiBlYXNpbHkgYmUgY29uZmlndXJlZCBhbmQgb2ZmZXJzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6XG4tIHJlbW92ZSBhcHBsaWNhdGlvbiBtZW51IGZyb20gdGhlIHRvcCBiYXJcbi0gcmVtb3ZlIHRoZSBhY3Rpdml0eSBidXR0b24gZnJvbSB0aGUgdG9wIGJhclxuLSBwZXJpb2RpY2FsbHkgY2hhbmdlIHRoZSBiYWNrZ3JvdW5kIHBpY3R1cmVcblxuVGhpcyBleHRlbnNpb24gZG9lcyBub3QgY29tZSB3aXRoIGFueSBidXR0b24gb24gdGhlIHBhbmVsLiBWaXNpdCB0aGUgd2Vic2l0ZSBmb3IgYSBkb2N1bWVudGF0aW9uLiIsCiAgIm5hbWUiOiAiS2l0c2NoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtpdHNjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbnRlNzYva2l0c2NoLyIsCiAgInV1aWQiOiAia2l0c2NoQGZvcGRvb2RsZS5uZXQiLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "gnome-visuals-top-bar@evendanan.net", "name": "Top Bar Visuals - transparent and blur", "pname": "top-bar-visuals-transparent-and-blur", "description": "Fork of: https://github.com/lamarios/gnome-shell-extension-transparent-top-bar\n\nBring back the adjustable transparency top bar (panel) in GNOME Shell and add blur while at it.\n\nDoes not work well with custom shell themes.", "link": "https://extensions.gnome.org/extension/4003/top-bar-visuals-transparent-and-blur/", "shell_version_map": {"38": {"version": "2", "sha256": "0h1qx7bh4gb3xkc8g8byynfa3imxkx332kh88pm4g9zaa20fxzwr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS9sYW1hcmlvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSBhZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSB0b3AgYmFyIChwYW5lbCkgaW4gR05PTUUgU2hlbGwgYW5kIGFkZCBibHVyIHdoaWxlIGF0IGl0LlxuXG5Eb2VzIG5vdCB3b3JrIHdlbGwgd2l0aCBjdXN0b20gc2hlbGwgdGhlbWVzLiIsCiAgIm5hbWUiOiAiVG9wIEJhciBWaXN1YWxzIC0gdHJhbnNwYXJlbnQgYW5kIGJsdXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tZW5ueS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAiZ25vbWUtdmlzdWFscy10b3AtYmFyQGV2ZW5kYW5hbi5uZXQiLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "desktop-lyric@tuberry", "name": "Desktop Lyric", "pname": "desktop-lyric", "description": "Show the lyric of playing songs on the desktop\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/4006/desktop-lyric/", "shell_version_map": {"38": {"version": "3", "sha256": "1fxlszj21ppdl5k2x2samggxlnay5bqly604szv1sjsnfriqzz3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVza3RvcC1seXJpYyIsCiAgIm5hbWUiOiAiRGVza3RvcCBMeXJpYyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXNrdG9wLWx5cmljIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHViZXJyeS9kZXNrdG9wLWx5cmljIiwKICAidXVpZCI6ICJkZXNrdG9wLWx5cmljQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "7", "sha256": "1dd8i7845fshc2d04fgzjr1chrnwsfr7qyjjki1svw36mx1qsjm2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVza3RvcC1seXJpYyIsCiAgIm5hbWUiOiAiRGVza3RvcCBMeXJpYyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kZXNrdG9wLWx5cmljIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvZGVza3RvcC1seXJpYyIsCiAgInV1aWQiOiAiZGVza3RvcC1seXJpY0B0dWJlcnJ5IiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "12", "sha256": "056cdiw7rlqpxkmca3f1aic7wr9dppvhp1z7wfxl905xn21p9pqf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIGx5cmljIG9mIHBsYXlpbmcgc29uZ3Mgb24gdGhlIGRlc2t0b3BcblxuRm9yIHN1cHBvcnQsIHBsZWFzZSByZXBvcnQgYW55IGlzc3VlcyB2aWEgdGhlIGhvbWVwYWdlIGxpbmsgYmVsb3cuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRlc2t0b3AtbHlyaWMiLAogICJuYW1lIjogIkRlc2t0b3AgTHlyaWMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVza3RvcC1seXJpYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2Rlc2t0b3AtbHlyaWMiLAogICJ1dWlkIjogImRlc2t0b3AtbHlyaWNAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxMgp9"}}}
-, {"uuid": "alttab-mod@leleat-on-github", "name": "AltTab Mod", "pname": "alttab-mod", "description": "Alt/Super+Tab can also be navigated with WASD and hjkl. Q just closes the selected item and only the first window will be raised on app activation. Optionally, only show windows from the current workspace or monitor and remove the slight popup delay.", "link": "https://extensions.gnome.org/extension/4007/alttab-mod/", "shell_version_map": {"38": {"version": "6", "sha256": "069086j1855s0zrawx49h40l3qmzbsjl0n58wr74lxfk1s6sirww", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsdC9TdXBlcitUYWIgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHdpdGggV0FTRCBhbmQgaGprbC4gUSBqdXN0IGNsb3NlcyB0aGUgc2VsZWN0ZWQgaXRlbSBhbmQgb25seSB0aGUgZmlyc3Qgd2luZG93IHdpbGwgYmUgcmFpc2VkIG9uIGFwcCBhY3RpdmF0aW9uLiBPcHRpb25hbGx5LCBvbmx5IHNob3cgd2luZG93cyBmcm9tIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb25pdG9yIGFuZCByZW1vdmUgdGhlIHNsaWdodCBwb3B1cCBkZWxheS4iLAogICJuYW1lIjogIkFsdFRhYiBNb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xlbGVhdC9BbHRUYWItTW9kIiwKICAidXVpZCI6ICJhbHR0YWItbW9kQGxlbGVhdC1vbi1naXRodWIiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "069086j1855s0zrawx49h40l3qmzbsjl0n58wr74lxfk1s6sirww", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsdC9TdXBlcitUYWIgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHdpdGggV0FTRCBhbmQgaGprbC4gUSBqdXN0IGNsb3NlcyB0aGUgc2VsZWN0ZWQgaXRlbSBhbmQgb25seSB0aGUgZmlyc3Qgd2luZG93IHdpbGwgYmUgcmFpc2VkIG9uIGFwcCBhY3RpdmF0aW9uLiBPcHRpb25hbGx5LCBvbmx5IHNob3cgd2luZG93cyBmcm9tIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb25pdG9yIGFuZCByZW1vdmUgdGhlIHNsaWdodCBwb3B1cCBkZWxheS4iLAogICJuYW1lIjogIkFsdFRhYiBNb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xlbGVhdC9BbHRUYWItTW9kIiwKICAidXVpZCI6ICJhbHR0YWItbW9kQGxlbGVhdC1vbi1naXRodWIiLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "069086j1855s0zrawx49h40l3qmzbsjl0n58wr74lxfk1s6sirww", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsdC9TdXBlcitUYWIgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHdpdGggV0FTRCBhbmQgaGprbC4gUSBqdXN0IGNsb3NlcyB0aGUgc2VsZWN0ZWQgaXRlbSBhbmQgb25seSB0aGUgZmlyc3Qgd2luZG93IHdpbGwgYmUgcmFpc2VkIG9uIGFwcCBhY3RpdmF0aW9uLiBPcHRpb25hbGx5LCBvbmx5IHNob3cgd2luZG93cyBmcm9tIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb25pdG9yIGFuZCByZW1vdmUgdGhlIHNsaWdodCBwb3B1cCBkZWxheS4iLAogICJuYW1lIjogIkFsdFRhYiBNb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xlbGVhdC9BbHRUYWItTW9kIiwKICAidXVpZCI6ICJhbHR0YWItbW9kQGxlbGVhdC1vbi1naXRodWIiLAogICJ2ZXJzaW9uIjogNgp9"}}}
+, {"uuid": "alttab-mod@leleat-on-github", "name": "AltTab Mod", "pname": "alttab-mod", "description": "Alt/Super+Tab can also be navigated with WASD and hjkl. Q just closes the selected item and only the first window will be raised on app activation. Optionally, only show windows from the current workspace or monitor and remove the slight popup delay.", "link": "https://extensions.gnome.org/extension/4007/alttab-mod/", "shell_version_map": {"38": {"version": "6", "sha256": "069086j1855s0zrawx49h40l3qmzbsjl0n58wr74lxfk1s6sirww", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsdC9TdXBlcitUYWIgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHdpdGggV0FTRCBhbmQgaGprbC4gUSBqdXN0IGNsb3NlcyB0aGUgc2VsZWN0ZWQgaXRlbSBhbmQgb25seSB0aGUgZmlyc3Qgd2luZG93IHdpbGwgYmUgcmFpc2VkIG9uIGFwcCBhY3RpdmF0aW9uLiBPcHRpb25hbGx5LCBvbmx5IHNob3cgd2luZG93cyBmcm9tIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb25pdG9yIGFuZCByZW1vdmUgdGhlIHNsaWdodCBwb3B1cCBkZWxheS4iLAogICJuYW1lIjogIkFsdFRhYiBNb2QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xlbGVhdC9BbHRUYWItTW9kIiwKICAidXVpZCI6ICJhbHR0YWItbW9kQGxlbGVhdC1vbi1naXRodWIiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "7", "sha256": "1qnbga30wvsj6xny7ajvy8y6c4vm3cpwz3zkm5njr2d0qg4svsq0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsdC9TdXBlcitUYWIgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHdpdGggV0FTRCBhbmQgaGprbC4gUSBqdXN0IGNsb3NlcyB0aGUgc2VsZWN0ZWQgaXRlbSBhbmQgb25seSB0aGUgZmlyc3Qgd2luZG93IHdpbGwgYmUgcmFpc2VkIG9uIGFwcCBhY3RpdmF0aW9uLiBPcHRpb25hbGx5LCBvbmx5IHNob3cgd2luZG93cyBmcm9tIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb25pdG9yIGFuZCByZW1vdmUgdGhlIHNsaWdodCBwb3B1cCBkZWxheS4iLAogICJuYW1lIjogIkFsdFRhYiBNb2QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx0VGFiLW1vZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L0FsdFRhYi1Nb2QiLAogICJ1dWlkIjogImFsdHRhYi1tb2RAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "1qnbga30wvsj6xny7ajvy8y6c4vm3cpwz3zkm5njr2d0qg4svsq0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsdC9TdXBlcitUYWIgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHdpdGggV0FTRCBhbmQgaGprbC4gUSBqdXN0IGNsb3NlcyB0aGUgc2VsZWN0ZWQgaXRlbSBhbmQgb25seSB0aGUgZmlyc3Qgd2luZG93IHdpbGwgYmUgcmFpc2VkIG9uIGFwcCBhY3RpdmF0aW9uLiBPcHRpb25hbGx5LCBvbmx5IHNob3cgd2luZG93cyBmcm9tIHRoZSBjdXJyZW50IHdvcmtzcGFjZSBvciBtb25pdG9yIGFuZCByZW1vdmUgdGhlIHNsaWdodCBwb3B1cCBkZWxheS4iLAogICJuYW1lIjogIkFsdFRhYiBNb2QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx0VGFiLW1vZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTGVsZWF0L0FsdFRhYi1Nb2QiLAogICJ1dWlkIjogImFsdHRhYi1tb2RAbGVsZWF0LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA3Cn0="}}}
 , {"uuid": "personalize@Selenium-H", "name": "Personalize", "pname": "personalize", "description": "Personalize the looks of GNOME Desktop.\n\nSet the theme variant, window corner curvature and select accent color.\nThe Colors section contains colors generated from the selected accent color.\nThe color generation is not accurate. However, individual colors can be customised.\n\nNot all settings are applied automatically.\nPress Refresh button on the left of the headerbar to reload the extension \n\nCurrently, only Adwaita theme is supported. Also, Adwaita and Adwaita-dark gtk-2 themes\nmust be installed for the extension to work properly. Not all widgets are themed perfectly.", "link": "https://extensions.gnome.org/extension/4010/personalize/", "shell_version_map": {"38": {"version": "1", "sha256": "1rgh2zq7086ymf0222pbrx5n8q11v3f45095w4x3ikw7k12j9s0n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiUGVyc29uYWxpemUgR05PTUUgdGhlbWUgYW5kIGN1c3RvbWl6ZSB0aGVtLiIsCiAgImRlc2NyaXB0aW9uIjogIlBlcnNvbmFsaXplIHRoZSBsb29rcyBvZiBHTk9NRSBEZXNrdG9wLlxuXG5TZXQgdGhlIHRoZW1lIHZhcmlhbnQsIHdpbmRvdyBjb3JuZXIgY3VydmF0dXJlIGFuZCBzZWxlY3QgYWNjZW50IGNvbG9yLlxuVGhlIENvbG9ycyBzZWN0aW9uIGNvbnRhaW5zIGNvbG9ycyBnZW5lcmF0ZWQgZnJvbSB0aGUgc2VsZWN0ZWQgYWNjZW50IGNvbG9yLlxuVGhlIGNvbG9yIGdlbmVyYXRpb24gaXMgbm90IGFjY3VyYXRlLiBIb3dldmVyLCBpbmRpdmlkdWFsIGNvbG9ycyBjYW4gYmUgY3VzdG9taXNlZC5cblxuTm90IGFsbCBzZXR0aW5ncyBhcmUgYXBwbGllZCBhdXRvbWF0aWNhbGx5LlxuUHJlc3MgUmVmcmVzaCBidXR0b24gb24gdGhlIGxlZnQgb2YgdGhlIGhlYWRlcmJhciB0byByZWxvYWQgdGhlIGV4dGVuc2lvbiBcblxuQ3VycmVudGx5LCBvbmx5IEFkd2FpdGEgdGhlbWUgaXMgc3VwcG9ydGVkLiBBbHNvLCBBZHdhaXRhIGFuZCBBZHdhaXRhLWRhcmsgZ3RrLTIgdGhlbWVzXG5tdXN0IGJlIGluc3RhbGxlZCBmb3IgdGhlIGV4dGVuc2lvbiB0byB3b3JrIHByb3Blcmx5LiBOb3QgYWxsIHdpZGdldHMgYXJlIHRoZW1lZCBwZXJmZWN0bHkuIiwKICAibmFtZSI6ICJQZXJzb25hbGl6ZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wZXJzb25hbGl6ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJzdGF0dXMiOiAiICIsCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2VsZW5pdW0tSC9QZXJzb25hbGl6ZSIsCiAgInV1aWQiOiAicGVyc29uYWxpemVAU2VsZW5pdW0tSCIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "gnomebedtime@ionutbortis.gmail.com", "name": "Bedtime Mode", "pname": "gnome-bedtime", "description": "Hey Gnome, it's bedtime! Converts to grayscale the entire Gnome workspace by using a smooth transition. Best to use during evening/night.\n\nThis behaviour is similar to Android's bedtime mode which converts the phone screen to grayscale. It should somewhat make your device less appealing and limit the usage of it before bedtime. On my side, at least, it still requires a fair amount of self control in order to make that happen.\n\nThe extension has a nice Settings UI where you can customize it to your liking:\n- Set an automatic schedule for turning on/off the Bedtime Mode\n- Add an On Demand button to Top Bar or System Menu to manually toggle the mode\n- Control the On Demand button visibility, appearance and position in Top Bar\n- Choose another color preset and intensity, if you prefer a different color scheme\n- Change color intensity on the fly by scrolling over the On Demand button in Top Bar\n\nMulti language support is also available, please check the GitHub page if you want to help with the translations. So far, the extension is fully translated to Spanish, Dutch, German, Romanian and English.\n\nIf you want to use a keyboard shortcut in order to toggle the Bedtime Mode then you can use this command for the shortcut:\n\nbash -c 'schema_id=org.gnome.shell.extensions.bedtime-mode; schema_dir=~/.local/share/gnome-shell/extensions/gnomebedtime@ionutbortis.gmail.com/schemas/; if [[ $(gsettings --schemadir $schema_dir get $schema_id bedtime-mode-active) == \"true\" ]]; then turn_on=false; else turn_on=true; fi; gsettings --schemadir $schema_dir set $schema_id bedtime-mode-active $turn_on;'", "link": "https://extensions.gnome.org/extension/4012/gnome-bedtime/", "shell_version_map": {"38": {"version": "7", "sha256": "1ibar09d05ggc3v4c1gndpznarnq5xx2pqx7cglg0mbhc0lbpr3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51IHRvIG1hbnVhbGx5IHRvZ2dsZSB0aGUgbW9kZVxuLSBDb250cm9sIHRoZSBPbiBEZW1hbmQgYnV0dG9uIHZpc2liaWxpdHksIGFwcGVhcmFuY2UgYW5kIHBvc2l0aW9uIGluIFRvcCBCYXJcbi0gQ2hvb3NlIGFub3RoZXIgY29sb3IgcHJlc2V0IGFuZCBpbnRlbnNpdHksIGlmIHlvdSBwcmVmZXIgYSBkaWZmZXJlbnQgY29sb3Igc2NoZW1lXG4tIENoYW5nZSBjb2xvciBpbnRlbnNpdHkgb24gdGhlIGZseSBieSBzY3JvbGxpbmcgb3ZlciB0aGUgT24gRGVtYW5kIGJ1dHRvbiBpbiBUb3AgQmFyXG5cbk11bHRpIGxhbmd1YWdlIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUsIHBsZWFzZSBjaGVjayB0aGUgR2l0SHViIHBhZ2UgaWYgeW91IHdhbnQgdG8gaGVscCB3aXRoIHRoZSB0cmFuc2xhdGlvbnMuIFNvIGZhciwgdGhlIGV4dGVuc2lvbiBpcyBmdWxseSB0cmFuc2xhdGVkIHRvIFNwYW5pc2gsIER1dGNoLCBHZXJtYW4sIFJvbWFuaWFuIGFuZCBFbmdsaXNoLlxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0OlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmVkdGltZS1tb2RlIiwKICAibmFtZSI6ICJCZWR0aW1lIE1vZGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pb251dGJvcnRpcy9nbm9tZS1iZWR0aW1lLW1vZGUiLAogICJ1dWlkIjogImdub21lYmVkdGltZUBpb251dGJvcnRpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "1ibar09d05ggc3v4c1gndpznarnq5xx2pqx7cglg0mbhc0lbpr3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51IHRvIG1hbnVhbGx5IHRvZ2dsZSB0aGUgbW9kZVxuLSBDb250cm9sIHRoZSBPbiBEZW1hbmQgYnV0dG9uIHZpc2liaWxpdHksIGFwcGVhcmFuY2UgYW5kIHBvc2l0aW9uIGluIFRvcCBCYXJcbi0gQ2hvb3NlIGFub3RoZXIgY29sb3IgcHJlc2V0IGFuZCBpbnRlbnNpdHksIGlmIHlvdSBwcmVmZXIgYSBkaWZmZXJlbnQgY29sb3Igc2NoZW1lXG4tIENoYW5nZSBjb2xvciBpbnRlbnNpdHkgb24gdGhlIGZseSBieSBzY3JvbGxpbmcgb3ZlciB0aGUgT24gRGVtYW5kIGJ1dHRvbiBpbiBUb3AgQmFyXG5cbk11bHRpIGxhbmd1YWdlIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUsIHBsZWFzZSBjaGVjayB0aGUgR2l0SHViIHBhZ2UgaWYgeW91IHdhbnQgdG8gaGVscCB3aXRoIHRoZSB0cmFuc2xhdGlvbnMuIFNvIGZhciwgdGhlIGV4dGVuc2lvbiBpcyBmdWxseSB0cmFuc2xhdGVkIHRvIFNwYW5pc2gsIER1dGNoLCBHZXJtYW4sIFJvbWFuaWFuIGFuZCBFbmdsaXNoLlxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0OlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmVkdGltZS1tb2RlIiwKICAibmFtZSI6ICJCZWR0aW1lIE1vZGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pb251dGJvcnRpcy9nbm9tZS1iZWR0aW1lLW1vZGUiLAogICJ1dWlkIjogImdub21lYmVkdGltZUBpb251dGJvcnRpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "1ibar09d05ggc3v4c1gndpznarnq5xx2pqx7cglg0mbhc0lbpr3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhleSBHbm9tZSwgaXQncyBiZWR0aW1lISBDb252ZXJ0cyB0byBncmF5c2NhbGUgdGhlIGVudGlyZSBHbm9tZSB3b3Jrc3BhY2UgYnkgdXNpbmcgYSBzbW9vdGggdHJhbnNpdGlvbi4gQmVzdCB0byB1c2UgZHVyaW5nIGV2ZW5pbmcvbmlnaHQuXG5cblRoaXMgYmVoYXZpb3VyIGlzIHNpbWlsYXIgdG8gQW5kcm9pZCdzIGJlZHRpbWUgbW9kZSB3aGljaCBjb252ZXJ0cyB0aGUgcGhvbmUgc2NyZWVuIHRvIGdyYXlzY2FsZS4gSXQgc2hvdWxkIHNvbWV3aGF0IG1ha2UgeW91ciBkZXZpY2UgbGVzcyBhcHBlYWxpbmcgYW5kIGxpbWl0IHRoZSB1c2FnZSBvZiBpdCBiZWZvcmUgYmVkdGltZS4gT24gbXkgc2lkZSwgYXQgbGVhc3QsIGl0IHN0aWxsIHJlcXVpcmVzIGEgZmFpciBhbW91bnQgb2Ygc2VsZiBjb250cm9sIGluIG9yZGVyIHRvIG1ha2UgdGhhdCBoYXBwZW4uXG5cblRoZSBleHRlbnNpb24gaGFzIGEgbmljZSBTZXR0aW5ncyBVSSB3aGVyZSB5b3UgY2FuIGN1c3RvbWl6ZSBpdCB0byB5b3VyIGxpa2luZzpcbi0gU2V0IGFuIGF1dG9tYXRpYyBzY2hlZHVsZSBmb3IgdHVybmluZyBvbi9vZmYgdGhlIEJlZHRpbWUgTW9kZVxuLSBBZGQgYW4gT24gRGVtYW5kIGJ1dHRvbiB0byBUb3AgQmFyIG9yIFN5c3RlbSBNZW51IHRvIG1hbnVhbGx5IHRvZ2dsZSB0aGUgbW9kZVxuLSBDb250cm9sIHRoZSBPbiBEZW1hbmQgYnV0dG9uIHZpc2liaWxpdHksIGFwcGVhcmFuY2UgYW5kIHBvc2l0aW9uIGluIFRvcCBCYXJcbi0gQ2hvb3NlIGFub3RoZXIgY29sb3IgcHJlc2V0IGFuZCBpbnRlbnNpdHksIGlmIHlvdSBwcmVmZXIgYSBkaWZmZXJlbnQgY29sb3Igc2NoZW1lXG4tIENoYW5nZSBjb2xvciBpbnRlbnNpdHkgb24gdGhlIGZseSBieSBzY3JvbGxpbmcgb3ZlciB0aGUgT24gRGVtYW5kIGJ1dHRvbiBpbiBUb3AgQmFyXG5cbk11bHRpIGxhbmd1YWdlIHN1cHBvcnQgaXMgYWxzbyBhdmFpbGFibGUsIHBsZWFzZSBjaGVjayB0aGUgR2l0SHViIHBhZ2UgaWYgeW91IHdhbnQgdG8gaGVscCB3aXRoIHRoZSB0cmFuc2xhdGlvbnMuIFNvIGZhciwgdGhlIGV4dGVuc2lvbiBpcyBmdWxseSB0cmFuc2xhdGVkIHRvIFNwYW5pc2gsIER1dGNoLCBHZXJtYW4sIFJvbWFuaWFuIGFuZCBFbmdsaXNoLlxuXG5JZiB5b3Ugd2FudCB0byB1c2UgYSBrZXlib2FyZCBzaG9ydGN1dCBpbiBvcmRlciB0byB0b2dnbGUgdGhlIEJlZHRpbWUgTW9kZSB0aGVuIHlvdSBjYW4gdXNlIHRoaXMgY29tbWFuZCBmb3IgdGhlIHNob3J0Y3V0OlxuXG5iYXNoIC1jICdzY2hlbWFfaWQ9b3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlOyBzY2hlbWFfZGlyPX4vLmxvY2FsL3NoYXJlL2dub21lLXNoZWxsL2V4dGVuc2lvbnMvZ25vbWViZWR0aW1lQGlvbnV0Ym9ydGlzLmdtYWlsLmNvbS9zY2hlbWFzLzsgaWYgW1sgJChnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgZ2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSkgPT0gXCJ0cnVlXCIgXV07IHRoZW4gdHVybl9vbj1mYWxzZTsgZWxzZSB0dXJuX29uPXRydWU7IGZpOyBnc2V0dGluZ3MgLS1zY2hlbWFkaXIgJHNjaGVtYV9kaXIgc2V0ICRzY2hlbWFfaWQgYmVkdGltZS1tb2RlLWFjdGl2ZSAkdHVybl9vbjsnIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmVkdGltZS1tb2RlIiwKICAibmFtZSI6ICJCZWR0aW1lIE1vZGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYmVkdGltZS1tb2RlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pb251dGJvcnRpcy9nbm9tZS1iZWR0aW1lLW1vZGUiLAogICJ1dWlkIjogImdub21lYmVkdGltZUBpb251dGJvcnRpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"uuid": "transparentwindows.mdirshad07", "name": "Transparent Window", "pname": "transparent-window", "description": "Change the opacity of windows by compiz-style shortcut Alt+scroll.\nYou can customize hotkey in Preference page if Alt key doesn't work.", "link": "https://extensions.gnome.org/extension/4016/transparent-window/", "shell_version_map": {"38": {"version": "2", "sha256": "12d8ad0s3b2cd8gczsa2l2x5wf3rag9xfr12ljw2jlrzf99vnr70", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgb3BhY2l0eSBvZiB3aW5kb3dzIGJ5IGNvbXBpei1zdHlsZSBzaG9ydGN1dCBBbHQrc2Nyb2xsLlxuWW91IGNhbiBjdXN0b21pemUgaG90a2V5IGluIFByZWZlcmVuY2UgcGFnZSBpZiBBbHQga2V5IGRvZXNuJ3Qgd29yay4iLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFdpbmRvdyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5UcmFuc3BhcmVudFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4xIiwKICAgICIzLjM2LjEiLAogICAgIjMuMzguMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BieHFkb3duL2dub21lLXNoZWxsLWV4dGVuc2lvbi10cmFuc3BhcmVudC13aW5kb3ciLAogICJ1dWlkIjogInRyYW5zcGFyZW50d2luZG93cy5tZGlyc2hhZDA3IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "wandering-pixel@justinrdonnelly.github.com", "name": "Wandering Pixel", "pname": "wandering-pixel", "description": "Slide 1 pixel back and forth in the top bar as a workaround for various bugs in GNOME Shell and/or Mutter.", "link": "https://extensions.gnome.org/extension/4028/wandering-pixel/", "shell_version_map": {"38": {"version": "4", "sha256": "03hq51krmqm43vkrm3fpvy5da0y75wfpkjhfnch1cz5y3112d13q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWRlIDEgcGl4ZWwgYmFjayBhbmQgZm9ydGggaW4gdGhlIHRvcCBiYXIgYXMgYSB3b3JrYXJvdW5kIGZvciB2YXJpb3VzIGJ1Z3MgaW4gR05PTUUgU2hlbGwgYW5kL29yIE11dHRlci4iLAogICJuYW1lIjogIldhbmRlcmluZyBQaXhlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vanVzdGlucmRvbm5lbGx5L3dhbmRlcmluZy1waXhlbCIsCiAgInV1aWQiOiAid2FuZGVyaW5nLXBpeGVsQGp1c3RpbnJkb25uZWxseS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "03hq51krmqm43vkrm3fpvy5da0y75wfpkjhfnch1cz5y3112d13q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWRlIDEgcGl4ZWwgYmFjayBhbmQgZm9ydGggaW4gdGhlIHRvcCBiYXIgYXMgYSB3b3JrYXJvdW5kIGZvciB2YXJpb3VzIGJ1Z3MgaW4gR05PTUUgU2hlbGwgYW5kL29yIE11dHRlci4iLAogICJuYW1lIjogIldhbmRlcmluZyBQaXhlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vanVzdGlucmRvbm5lbGx5L3dhbmRlcmluZy1waXhlbCIsCiAgInV1aWQiOiAid2FuZGVyaW5nLXBpeGVsQGp1c3RpbnJkb25uZWxseS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "03hq51krmqm43vkrm3fpvy5da0y75wfpkjhfnch1cz5y3112d13q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWRlIDEgcGl4ZWwgYmFjayBhbmQgZm9ydGggaW4gdGhlIHRvcCBiYXIgYXMgYSB3b3JrYXJvdW5kIGZvciB2YXJpb3VzIGJ1Z3MgaW4gR05PTUUgU2hlbGwgYW5kL29yIE11dHRlci4iLAogICJuYW1lIjogIldhbmRlcmluZyBQaXhlbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vanVzdGlucmRvbm5lbGx5L3dhbmRlcmluZy1waXhlbCIsCiAgInV1aWQiOiAid2FuZGVyaW5nLXBpeGVsQGp1c3RpbnJkb25uZWxseS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "screenshot-directory@fawtytoo", "name": "Screenshot Directory", "pname": "screenshot-directory", "description": "The default screenshot directory is ~/Pictures. This extension changes that to use whatever is set if you used the Gnome Screenshot app. This can be found in the dconf setting: /org/gnome/gnome-screenshot/auto-save-directory. If that directory doesn't exist, the extension will use the Home directory instead.\n\nNote: If the dconf setting doesn't exist, you need to install the Gnome Screenshot app.\n\nThe idea was taken from the extension: Screenshot Locations.", "link": "https://extensions.gnome.org/extension/4031/screenshot-directory/", "shell_version_map": {"38": {"version": "6", "sha256": "15m291jjqfrfcg79nlsqq8zcqp218qrakp3044ik9xjl00yhjf1b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBkZWZhdWx0IHNjcmVlbnNob3QgZGlyZWN0b3J5IGlzIH4vUGljdHVyZXMuIFRoaXMgZXh0ZW5zaW9uIGNoYW5nZXMgdGhhdCB0byB1c2Ugd2hhdGV2ZXIgaXMgc2V0IGlmIHlvdSB1c2VkIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC4gVGhpcyBjYW4gYmUgZm91bmQgaW4gdGhlIGRjb25mIHNldHRpbmc6IC9vcmcvZ25vbWUvZ25vbWUtc2NyZWVuc2hvdC9hdXRvLXNhdmUtZGlyZWN0b3J5LiBJZiB0aGF0IGRpcmVjdG9yeSBkb2Vzbid0IGV4aXN0LCB0aGUgZXh0ZW5zaW9uIHdpbGwgdXNlIHRoZSBIb21lIGRpcmVjdG9yeSBpbnN0ZWFkLlxuXG5Ob3RlOiBJZiB0aGUgZGNvbmYgc2V0dGluZyBkb2Vzbid0IGV4aXN0LCB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC5cblxuVGhlIGlkZWEgd2FzIHRha2VuIGZyb20gdGhlIGV4dGVuc2lvbjogU2NyZWVuc2hvdCBMb2NhdGlvbnMuIiwKICAibmFtZSI6ICJTY3JlZW5zaG90IERpcmVjdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC1kaXJlY3RvcnlAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "15m291jjqfrfcg79nlsqq8zcqp218qrakp3044ik9xjl00yhjf1b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBkZWZhdWx0IHNjcmVlbnNob3QgZGlyZWN0b3J5IGlzIH4vUGljdHVyZXMuIFRoaXMgZXh0ZW5zaW9uIGNoYW5nZXMgdGhhdCB0byB1c2Ugd2hhdGV2ZXIgaXMgc2V0IGlmIHlvdSB1c2VkIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC4gVGhpcyBjYW4gYmUgZm91bmQgaW4gdGhlIGRjb25mIHNldHRpbmc6IC9vcmcvZ25vbWUvZ25vbWUtc2NyZWVuc2hvdC9hdXRvLXNhdmUtZGlyZWN0b3J5LiBJZiB0aGF0IGRpcmVjdG9yeSBkb2Vzbid0IGV4aXN0LCB0aGUgZXh0ZW5zaW9uIHdpbGwgdXNlIHRoZSBIb21lIGRpcmVjdG9yeSBpbnN0ZWFkLlxuXG5Ob3RlOiBJZiB0aGUgZGNvbmYgc2V0dGluZyBkb2Vzbid0IGV4aXN0LCB5b3UgbmVlZCB0byBpbnN0YWxsIHRoZSBHbm9tZSBTY3JlZW5zaG90IGFwcC5cblxuVGhlIGlkZWEgd2FzIHRha2VuIGZyb20gdGhlIGV4dGVuc2lvbjogU2NyZWVuc2hvdCBMb2NhdGlvbnMuIiwKICAibmFtZSI6ICJTY3JlZW5zaG90IERpcmVjdG9yeSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC1kaXJlY3RvcnlAZmF3dHl0b28iLAogICJ2ZXJzaW9uIjogNgp9"}}}
-, {"uuid": "x11gestures@joseexposito.github.io", "name": "X11 Gestures", "pname": "x11-gestures", "description": "Enable GNOME Shell multi-touch gestures on X11.\nRequires Touchégg https://github.com/JoseExposito/touchegg#readme", "link": "https://extensions.gnome.org/extension/4033/x11-gestures/", "shell_version_map": {"38": {"version": "12", "sha256": "0qgk3mfsvlfvkfssjy898gm491lryghk6hag3nhjhwwx8gy2l17w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2VFeHBvc2l0by9nbm9tZS1zaGVsbC1leHRlbnNpb24teDExZ2VzdHVyZXMiLAogICJ1dWlkIjogIngxMWdlc3R1cmVzQGpvc2VleHBvc2l0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "12", "sha256": "0qgk3mfsvlfvkfssjy898gm491lryghk6hag3nhjhwwx8gy2l17w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2VFeHBvc2l0by9nbm9tZS1zaGVsbC1leHRlbnNpb24teDExZ2VzdHVyZXMiLAogICJ1dWlkIjogIngxMWdlc3R1cmVzQGpvc2VleHBvc2l0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "41": {"version": "12", "sha256": "0qgk3mfsvlfvkfssjy898gm491lryghk6hag3nhjhwwx8gy2l17w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2VFeHBvc2l0by9nbm9tZS1zaGVsbC1leHRlbnNpb24teDExZ2VzdHVyZXMiLAogICJ1dWlkIjogIngxMWdlc3R1cmVzQGpvc2VleHBvc2l0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
+, {"uuid": "x11gestures@joseexposito.github.io", "name": "X11 Gestures", "pname": "x11-gestures", "description": "Enable GNOME Shell multi-touch gestures on X11.\nRequires Touchégg https://github.com/JoseExposito/touchegg#readme", "link": "https://extensions.gnome.org/extension/4033/x11-gestures/", "shell_version_map": {"38": {"version": "13", "sha256": "1fp2wx763cdvlbr4aa69c3ljdzzkngmzp9qf9gf11nrrxbkraaw0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2VFeHBvc2l0by9nbm9tZS1zaGVsbC1leHRlbnNpb24teDExZ2VzdHVyZXMiLAogICJ1dWlkIjogIngxMWdlc3R1cmVzQGpvc2VleHBvc2l0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "40": {"version": "13", "sha256": "1fp2wx763cdvlbr4aa69c3ljdzzkngmzp9qf9gf11nrrxbkraaw0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2VFeHBvc2l0by9nbm9tZS1zaGVsbC1leHRlbnNpb24teDExZ2VzdHVyZXMiLAogICJ1dWlkIjogIngxMWdlc3R1cmVzQGpvc2VleHBvc2l0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "41": {"version": "13", "sha256": "1fp2wx763cdvlbr4aa69c3ljdzzkngmzp9qf9gf11nrrxbkraaw0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0pvc2VFeHBvc2l0by9nbm9tZS1zaGVsbC1leHRlbnNpb24teDExZ2VzdHVyZXMiLAogICJ1dWlkIjogIngxMWdlc3R1cmVzQGpvc2VleHBvc2l0by5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}}}
 , {"uuid": "get-out-of-the-way@michaelmob.com", "name": "Get Out Of The Way!", "pname": "get-out-of-the-way", "description": "Push 'Always-on-Top' windows out of the way of the focused window.", "link": "https://extensions.gnome.org/extension/4034/get-out-of-the-way/", "shell_version_map": {"38": {"version": "1", "sha256": "1jpjqi2l6wjn9zbgpck04gm9vbspi066chby1j6k9km6dwljfbk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1c2ggJ0Fsd2F5cy1vbi1Ub3AnIHdpbmRvd3Mgb3V0IG9mIHRoZSB3YXkgb2YgdGhlIGZvY3VzZWQgd2luZG93LiIsCiAgIm5hbWUiOiAiR2V0IE91dCBPZiBUaGUgV2F5ISIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnZXQtb3V0LW9mLXRoZS13YXlAbWljaGFlbG1vYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "VPNStatus@jesusalc@intuivo.com", "name": "VPNStatus Indicator", "pname": "vpnstatus-indicator", "description": "displays the current state of VPNStatus VPN\n\nchecks, if /proc/net/route contains entries for device nmcli?, this is the VPNStatus network device.\n", "link": "https://extensions.gnome.org/extension/4039/vpnstatus-indicator/", "shell_version_map": {"38": {"version": "1", "sha256": "1y4ym6lpwfi03rc6186yjc7mns01q5nrwiqizghls7hiyfg3kqrn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImRpc3BsYXlzIHRoZSBjdXJyZW50IHN0YXRlIG9mIFZQTlN0YXR1cyBWUE5cblxuY2hlY2tzLCBpZiAvcHJvYy9uZXQvcm91dGUgY29udGFpbnMgZW50cmllcyBmb3IgZGV2aWNlIG5tY2xpPywgdGhpcyBpcyB0aGUgVlBOU3RhdHVzIG5ldHdvcmsgZGV2aWNlLlxuIiwKICAibmFtZSI6ICJWUE5TdGF0dXMgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIlZQTlN0YXR1c0BqZXN1c2FsY0BpbnR1aXZvLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "switchtwolayouts@qtmax.dev", "name": "Switch Two Layouts", "pname": "switch-two-layouts", "description": "This extension makes XKB shortcuts to switch keyboard layouts (such as Caps Lock, Ctrl+Shift, etc.) cycle between the two first layouts. The other ones still can be selected via the menu or using GNOME's shortcuts (Super+Space, Shift+Super+Space). It's useful when you have two primary layouts and more additional, which are used more rarely.", "link": "https://extensions.gnome.org/extension/4042/switch-two-layouts/", "shell_version_map": {"38": {"version": "3", "sha256": "0lzr3nx55842w7x60kx20fm8p07gz9gxh1lkqk9sic2784cbydsc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic3dpdGNodHdvbGF5b3V0c0BxdG1heC5kZXYiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "0lzr3nx55842w7x60kx20fm8p07gz9gxh1lkqk9sic2784cbydsc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic3dpdGNodHdvbGF5b3V0c0BxdG1heC5kZXYiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "0lzr3nx55842w7x60kx20fm8p07gz9gxh1lkqk9sic2784cbydsc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic3dpdGNodHdvbGF5b3V0c0BxdG1heC5kZXYiLAogICJ2ZXJzaW9uIjogMwp9"}}}
 , {"uuid": "notification-dismiss@kronosoul.xyz", "name": "Dismiss Notifications on Right Click", "pname": "dismiss-notifications-on-right-click", "description": "Simple extension that removes notification popups when they are right clicked.", "link": "https://extensions.gnome.org/extension/4048/dismiss-notifications-on-right-click/", "shell_version_map": {"38": {"version": "1", "sha256": "19pdz3lg1ybmgvpahfwzzhwk8fyhm1sr3wawddz5z66i22spcgjj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwubm90aWZpY2F0aW9uLWRpc21pc3MiLAogICJkZXNjcmlwdGlvbiI6ICJTaW1wbGUgZXh0ZW5zaW9uIHRoYXQgcmVtb3ZlcyBub3RpZmljYXRpb24gcG9wdXBzIHdoZW4gdGhleSBhcmUgcmlnaHQgY2xpY2tlZC4iLAogICJleHRlbnNpb24taWQiOiAiZ2R0b29scyIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzZXRzIiwKICAibmFtZSI6ICJEaXNtaXNzIE5vdGlmaWNhdGlvbnMgb24gUmlnaHQgQ2xpY2siLAogICJvcmlnaW5hbC1hdXRob3IiOiAiYWRtaW5Aa3Jvbm9zb3VsLnh5eiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4wIiwKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tZGlzbWlzc0Brcm9ub3NvdWwueHl6IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "disable-gestures-2021@verycrazydog.gmail.com", "name": "Disable Gestures 2021", "pname": "disable-gestures-2021", "description": "Disable all GNOME built-in gestures. Useful for kiosks and touch screen apps.", "link": "https://extensions.gnome.org/extension/4049/disable-gestures-2021/", "shell_version_map": {"40": {"version": "2", "sha256": "006xbxws1cvflsis129hl9sca22nig5prwaxfysxi7m13786rp0h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgYWxsIEdOT01FIGJ1aWx0LWluIGdlc3R1cmVzLiBVc2VmdWwgZm9yIGtpb3NrcyBhbmQgdG91Y2ggc2NyZWVuIGFwcHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIEdlc3R1cmVzIDIwMjEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9WZXJ5Q3JhenlEb2cvZ25vbWUtZGlzYWJsZS1nZXN0dXJlcyIsCiAgInV1aWQiOiAiZGlzYWJsZS1nZXN0dXJlcy0yMDIxQHZlcnljcmF6eWRvZy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "pi-hole@fnxweb.com", "name": "pi-hole", "pname": "pi-hole", "description": "Status and basic controls of local Pi-Hole", "link": "https://extensions.gnome.org/extension/4051/pi-hole/", "shell_version_map": {"38": {"version": "1", "sha256": "0m19lv8zfhh8vqn0ln4a8g4g4hw9p6h98gb656vb0hblp5gsycfm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBhbmQgYmFzaWMgY29udHJvbHMgb2YgbG9jYWwgUGktSG9sZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1mbnh3ZWItcGktaG9sZSIsCiAgIm5hbWUiOiAicGktaG9sZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbnh3ZWItcGktaG9sZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZueHdlYi9nbm9tZS1zaGVsbC1waS1ob2xlIiwKICAidXVpZCI6ICJwaS1ob2xlQGZueHdlYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
-, {"uuid": "miniCal3@mtharpe", "name": "Minimalist Calendar 3", "pname": "minimalist-calendar-3", "description": "Remove event list and clock/calendar app buttons from the calendar window. This is just an updated version of v2 by breiq", "link": "https://extensions.gnome.org/extension/4052/minimalist-calendar-3/", "shell_version_map": {"38": {"version": "2", "sha256": "19y4c1r52j0iabkib6pm65gslrl65l0ckhglqy8gxiw9hr7a0lwk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tdGhhcnBlL2dub21lLW1pbkNhbDMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJtaW5pQ2FsM0BtdGhhcnBlIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "19y4c1r52j0iabkib6pm65gslrl65l0ckhglqy8gxiw9hr7a0lwk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tdGhhcnBlL2dub21lLW1pbkNhbDMtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJtaW5pQ2FsM0BtdGhhcnBlIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "miniCal3@mtharpe", "name": "Minimalist Calendar 3", "pname": "minimalist-calendar-3", "description": "Remove event list and clock/calendar app buttons from the calendar window. This is just an updated version of v2 by breiq", "link": "https://extensions.gnome.org/extension/4052/minimalist-calendar-3/", "shell_version_map": {"38": {"version": "3", "sha256": "1vmqx1w9aymwb2a09b07fj18kxpki6blvzbvfamvk84b6x2qcxkn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXRoYXJwZS9nbm9tZS1taW5DYWwzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibWluaUNhbDNAbXRoYXJwZSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1vmqx1w9aymwb2a09b07fj18kxpki6blvzbvfamvk84b6x2qcxkn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXRoYXJwZS9nbm9tZS1taW5DYWwzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibWluaUNhbDNAbXRoYXJwZSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "1vmqx1w9aymwb2a09b07fj18kxpki6blvzbvfamvk84b6x2qcxkn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXRoYXJwZS9nbm9tZS1taW5DYWwzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibWluaUNhbDNAbXRoYXJwZSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "spotify-artwork-fixer@wjt.me.uk", "name": "Spotify Artwork Fixer", "pname": "spotify-artwork-fixer", "description": "Fix Spotify artwork missing in media notification", "link": "https://extensions.gnome.org/extension/4055/spotify-artwork-fixer/", "shell_version_map": {"38": {"version": "6", "sha256": "0jvvz9p576x95l6592icnswcbs2nhm0i01wpb8a45xy6iwb07nfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvZ25vbWUtc2hlbGwtc3BvdGlmeS1hcnR3b3JrLWZpeGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFydHdvcmstZml4ZXJAd2p0Lm1lLnVrIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0jvvz9p576x95l6592icnswcbs2nhm0i01wpb8a45xy6iwb07nfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvZ25vbWUtc2hlbGwtc3BvdGlmeS1hcnR3b3JrLWZpeGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFydHdvcmstZml4ZXJAd2p0Lm1lLnVrIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "0jvvz9p576x95l6592icnswcbs2nhm0i01wpb8a45xy6iwb07nfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvZ25vbWUtc2hlbGwtc3BvdGlmeS1hcnR3b3JrLWZpeGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFydHdvcmstZml4ZXJAd2p0Lm1lLnVrIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "custom-vpn-toggler@giteduberger.fr", "name": "Custom VPN Toggler (and indicator)", "pname": "custom-vpn-toggler", "description": "Custom VPN Toggler (and indicator) allows to see the status of a VPN (with its icon), see IP address associated and permit to start and stop VPN (from a menu).\n\nThis plugin required an additional script to interact with VPN. \nAn example for netExtender and GlobalProtect are available on extension repository. \nFollow the link to Extension Web Site and see README.", "link": "https://extensions.gnome.org/extension/4061/custom-vpn-toggler/", "shell_version_map": {"38": {"version": "5", "sha256": "09axc2jx7s2bak956yyv6c5826yl54ghriiwdgsajly5lncmypxw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbSBWUE4gVG9nZ2xlciAoYW5kIGluZGljYXRvcikgYWxsb3dzIHRvIHNlZSB0aGUgc3RhdHVzIG9mIGEgVlBOICh3aXRoIGl0cyBpY29uKSwgc2VlIElQIGFkZHJlc3MgYXNzb2NpYXRlZCBhbmQgcGVybWl0IHRvIHN0YXJ0IGFuZCBzdG9wIFZQTiAoZnJvbSBhIG1lbnUpLlxuXG5UaGlzIHBsdWdpbiByZXF1aXJlZCBhbiBhZGRpdGlvbmFsIHNjcmlwdCB0byBpbnRlcmFjdCB3aXRoIFZQTi4gXG5BbiBleGFtcGxlIGZvciBuZXRFeHRlbmRlciBhbmQgR2xvYmFsUHJvdGVjdCBhcmUgYXZhaWxhYmxlIG9uIGV4dGVuc2lvbiByZXBvc2l0b3J5LiBcbkZvbGxvdyB0aGUgbGluayB0byBFeHRlbnNpb24gV2ViIFNpdGUgYW5kIHNlZSBSRUFETUUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLXZwbi10b2dnbGVyQGdpdGVkdWJlcmdlci5mciIsCiAgIm5hbWUiOiAiQ3VzdG9tIFZQTiBUb2dnbGVyIChhbmQgaW5kaWNhdG9yKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJmci5naXRlZHViZXJnZXIuY3VzdG9tLXZwbi10b2dnbGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vWGF2aWVyQmVyZ2VyL2N1c3RvbS12cG4tdG9nZ2xlciIsCiAgInV1aWQiOiAiY3VzdG9tLXZwbi10b2dnbGVyQGdpdGVkdWJlcmdlci5mciIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "geary-tray-icon@taylantatli.github.com", "name": "Geary Tray Icon", "pname": "geary-tray-icon", "description": "Show a tray icon for Geary\n\nhttps://github.com/TaylanTatli/geary-tray-icon", "link": "https://extensions.gnome.org/extension/4073/geary-tray-icon/", "shell_version_map": {"38": {"version": "1", "sha256": "11kv47pz5p69j10r23zf8ls3fmanldx7diwsy34fhyxqfxjcd614", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSB0cmF5IGljb24gZm9yIEdlYXJ5XG5cbmh0dHBzOi8vZ2l0aHViLmNvbS9UYXlsYW5UYXRsaS9nZWFyeS10cmF5LWljb24iLAogICJuYW1lIjogIkdlYXJ5IFRyYXkgSWNvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnZWFyeS10cmF5LWljb25AdGF5bGFudGF0bGkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "iqair@wotmshuaisi_github", "name": "Iqair Gnome Extension", "pname": "iqair-gnome-extension", "description": "Gnome extension for tracking air quality in real-time. data provider: https://iqair.com/. to get an API token: https://www.iqair.com/us/dashboard/api", "link": "https://extensions.gnome.org/extension/4082/iqair-gnome-extension/", "shell_version_map": {"38": {"version": "6", "sha256": "150rn9gk6nzba30g38bjpgjyqr2a25cysg6fd6p1is92w8lknls4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93b3Rtc2h1YWlzaS9pcWFpckdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJpcWFpckB3b3Rtc2h1YWlzaV9naXRodWIiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "11", "sha256": "1j7q32g8zgcvrf3xvvzql9714965kidik5d7rkg41h3jmfqmaxzw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd290bXNodWFpc2kvaXFhaXJHbm9tZUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiaXFhaXJAd290bXNodWFpc2lfZ2l0aHViIiwKICAidmVyc2lvbiI6IDExCn0="}}}
+, {"uuid": "iqair@wotmshuaisi_github", "name": "Iqair Gnome Extension", "pname": "iqair-gnome-extension", "description": "Gnome extension for tracking air quality in real-time. data provider: https://iqair.com/. to get an API token: https://www.iqair.com/us/dashboard/api", "link": "https://extensions.gnome.org/extension/4082/iqair-gnome-extension/", "shell_version_map": {"38": {"version": "6", "sha256": "150rn9gk6nzba30g38bjpgjyqr2a25cysg6fd6p1is92w8lknls4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93b3Rtc2h1YWlzaS9pcWFpckdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJpcWFpckB3b3Rtc2h1YWlzaV9naXRodWIiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "12", "sha256": "0iz36hq4m8xxn26sar69dwd32n8y78097yj2fwrclcgs5n131d4c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dvdG1zaHVhaXNpL2lxYWlyR25vbWVFeHRlbnNpb24iLAogICJ1dWlkIjogImlxYWlyQHdvdG1zaHVhaXNpX2dpdGh1YiIsCiAgInZlcnNpb24iOiAxMgp9"}, "41": {"version": "12", "sha256": "0iz36hq4m8xxn26sar69dwd32n8y78097yj2fwrclcgs5n131d4c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dvdG1zaHVhaXNpL2lxYWlyR25vbWVFeHRlbnNpb24iLAogICJ1dWlkIjogImlxYWlyQHdvdG1zaHVhaXNpX2dpdGh1YiIsCiAgInZlcnNpb24iOiAxMgp9"}}}
 , {"uuid": "bigSur-StatusArea@ordissimo.com", "name": "Big Sur Status Area", "pname": "big-sur-status-area", "description": "Move the Power/Network/Volume/User/Date/Notifications menus to the status area. It is a fork of :https://github.com/Fausto-Korpsvart/Big-Sur-StatusArea", "link": "https://extensions.gnome.org/extension/4085/big-sur-status-area/", "shell_version_map": {"38": {"version": "25", "sha256": "0syp7ka1rakzw4rlhhl1klszg56pbhyz787hvkg738j9ycl1spyq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PcmRpc3NpbW8vQmlnLVN1ci1TdGF0dXNBcmVhL3RyZWUvNDEiLAogICJ1dWlkIjogImJpZ1N1ci1TdGF0dXNBcmVhQG9yZGlzc2ltby5jb20iLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "40": {"version": "26", "sha256": "0yb0r44h7qv9agncwr2aw6dj1qm82xxvr3811b77nyapcha9cagh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwLjAiLAogICAgIjQwLnJjIiwKICAgICI0MC4xIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3JkaXNzaW1vL0JpZy1TdXItU3RhdHVzQXJlYS90cmVlLzQxIiwKICAidXVpZCI6ICJiaWdTdXItU3RhdHVzQXJlYUBvcmRpc3NpbW8uY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "41": {"version": "27", "sha256": "17dxs5hgk1iq2d21rvjjswnlgjvlcb8jn30xi752gz94l0y66kcy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3JkaXNzaW1vL0JpZy1TdXItU3RhdHVzQXJlYS90cmVlLzQxIiwKICAidXVpZCI6ICJiaWdTdXItU3RhdHVzQXJlYUBvcmRpc3NpbW8uY29tIiwKICAidmVyc2lvbiI6IDI3Cn0="}}}
 , {"uuid": "disable-touch-osk@pardus.org.tr", "name": "disable-touch-osk", "pname": "disable-touch-osk", "description": "Disable on screen keyboard for touchscreens", "link": "https://extensions.gnome.org/extension/4087/disable-touch-osk/", "shell_version_map": {"38": {"version": "3", "sha256": "10ljbjbswzn9y30n2h39iiz673hhmazr2h14lhhws05m71xvbbfy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgb24gc2NyZWVuIGtleWJvYXJkIGZvciB0b3VjaHNjcmVlbnMiLAogICJuYW1lIjogImRpc2FibGUtdG91Y2gtb3NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3d3dy5wYXJkdXMub3JnLnRyLyIsCiAgInV1aWQiOiAiZGlzYWJsZS10b3VjaC1vc2tAcGFyZHVzLm9yZy50ciIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "right_click_for_apps@briansayre", "name": "Right Click for Apps", "pname": "right-click-for-apps", "description": "Allows you to right-click the Activities button to reveal the application menu.", "link": "https://extensions.gnome.org/extension/4090/right-click-for-apps/", "shell_version_map": {"38": {"version": "1", "sha256": "1rzx8ksl48badrwyqxwbgvfgf48z642mdwl57aq280ng61nrndaf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB5b3UgdG8gcmlnaHQtY2xpY2sgdGhlIEFjdGl2aXRpZXMgYnV0dG9uIHRvIHJldmVhbCB0aGUgYXBwbGljYXRpb24gbWVudS4iLAogICJuYW1lIjogIlJpZ2h0IENsaWNrIGZvciBBcHBzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJpYW5zYXlyZS9SaWdodC1DbGljay1Gb3ItQXBwcyIsCiAgInV1aWQiOiAicmlnaHRfY2xpY2tfZm9yX2FwcHNAYnJpYW5zYXlyZSIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "devbar@ludvigbostrom", "name": "DevBar", "pname": "devbar", "description": "This extension helps you keep track of your development workflow.", "link": "https://extensions.gnome.org/extension/4091/devbar/", "shell_version_map": {"38": {"version": "7", "sha256": "0gpmrsd5dva2d6aisr9fazipfxr2qw8p8bsn9avq8rijkya67c0v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHlvdSBrZWVwIHRyYWNrIG9mIHlvdXIgZGV2ZWxvcG1lbnQgd29ya2Zsb3cuIiwKICAibmFtZSI6ICJEZXZCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1ZHZpZ2Jvc3Ryb20vRGV2QmFyR25vbWUiLAogICJ1dWlkIjogImRldmJhckBsdWR2aWdib3N0cm9tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "0gpmrsd5dva2d6aisr9fazipfxr2qw8p8bsn9avq8rijkya67c0v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHlvdSBrZWVwIHRyYWNrIG9mIHlvdXIgZGV2ZWxvcG1lbnQgd29ya2Zsb3cuIiwKICAibmFtZSI6ICJEZXZCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1ZHZpZ2Jvc3Ryb20vRGV2QmFyR25vbWUiLAogICJ1dWlkIjogImRldmJhckBsdWR2aWdib3N0cm9tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "7", "sha256": "0gpmrsd5dva2d6aisr9fazipfxr2qw8p8bsn9avq8rijkya67c0v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHlvdSBrZWVwIHRyYWNrIG9mIHlvdXIgZGV2ZWxvcG1lbnQgd29ya2Zsb3cuIiwKICAibmFtZSI6ICJEZXZCYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1ZHZpZ2Jvc3Ryb20vRGV2QmFyR25vbWUiLAogICJ1dWlkIjogImRldmJhckBsdWR2aWdib3N0cm9tIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
 , {"uuid": "notifications_to_file@fawtytoo", "name": "Notifications To File", "pname": "notifications-to-file", "description": "Notifications are appended to a file in $HOME/.notifications/ with one file created per day.\nEntries show the following information:\nTimestamp\nWhether the banner was shown\nThe urgency\nThe title\nBanner text", "link": "https://extensions.gnome.org/extension/4093/notifications-to-file/", "shell_version_map": {"38": {"version": "2", "sha256": "0rn0c6ma6k129pkjk39dk05j6civxkm32zacv919zd3vvifckr1k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGlmaWNhdGlvbnMgYXJlIGFwcGVuZGVkIHRvIGEgZmlsZSBpbiAkSE9NRS8ubm90aWZpY2F0aW9ucy8gd2l0aCBvbmUgZmlsZSBjcmVhdGVkIHBlciBkYXkuXG5FbnRyaWVzIHNob3cgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjpcblRpbWVzdGFtcFxuV2hldGhlciB0aGUgYmFubmVyIHdhcyBzaG93blxuVGhlIHVyZ2VuY3lcblRoZSB0aXRsZVxuQmFubmVyIHRleHQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbnMgVG8gRmlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uc190b19maWxlQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "0rn0c6ma6k129pkjk39dk05j6civxkm32zacv919zd3vvifckr1k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vdGlmaWNhdGlvbnMgYXJlIGFwcGVuZGVkIHRvIGEgZmlsZSBpbiAkSE9NRS8ubm90aWZpY2F0aW9ucy8gd2l0aCBvbmUgZmlsZSBjcmVhdGVkIHBlciBkYXkuXG5FbnRyaWVzIHNob3cgdGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbjpcblRpbWVzdGFtcFxuV2hldGhlciB0aGUgYmFubmVyIHdhcyBzaG93blxuVGhlIHVyZ2VuY3lcblRoZSB0aXRsZVxuQmFubmVyIHRleHQiLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbnMgVG8gRmlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uc190b19maWxlQGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "change_desktop_background_when_empty@fawtytoo", "name": "Change Desktop Wallpaper When Workspace Empty", "pname": "change-desktop-background-when-workspace-empty", "description": "Changes the desktop background when the workspace is or becomes empty, such as switching to an empty workspace, when all windows on a workspace are closed, or after login.\nNo folder needs to be set explicitly, as it will use the folder that the current background is in.", "link": "https://extensions.gnome.org/extension/4096/change-desktop-background-when-workspace-empty/", "shell_version_map": {"38": {"version": "8", "sha256": "0s4s377rjvaqsagkksx7qkx28jml6sri6bw0n01a4p47xwkc4cwq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIFdhbGxwYXBlciBXaGVuIFdvcmtzcGFjZSBFbXB0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiY2hhbmdlX2Rlc2t0b3BfYmFja2dyb3VuZF93aGVuX2VtcHR5QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0s4s377rjvaqsagkksx7qkx28jml6sri6bw0n01a4p47xwkc4cwq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgdGhlIGRlc2t0b3AgYmFja2dyb3VuZCB3aGVuIHRoZSB3b3Jrc3BhY2UgaXMgb3IgYmVjb21lcyBlbXB0eSwgc3VjaCBhcyBzd2l0Y2hpbmcgdG8gYW4gZW1wdHkgd29ya3NwYWNlLCB3aGVuIGFsbCB3aW5kb3dzIG9uIGEgd29ya3NwYWNlIGFyZSBjbG9zZWQsIG9yIGFmdGVyIGxvZ2luLlxuTm8gZm9sZGVyIG5lZWRzIHRvIGJlIHNldCBleHBsaWNpdGx5LCBhcyBpdCB3aWxsIHVzZSB0aGUgZm9sZGVyIHRoYXQgdGhlIGN1cnJlbnQgYmFja2dyb3VuZCBpcyBpbi4iLAogICJuYW1lIjogIkNoYW5nZSBEZXNrdG9wIFdhbGxwYXBlciBXaGVuIFdvcmtzcGFjZSBFbXB0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiY2hhbmdlX2Rlc2t0b3BfYmFja2dyb3VuZF93aGVuX2VtcHR5QGZhd3R5dG9vIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
-, {"uuid": "translate-clipboard@lsnow.github.io", "name": "translate-clipboard", "pname": "translate-clipboard", "description": "translate clipboard text", "link": "https://extensions.gnome.org/extension/4097/translate-clipboard/", "shell_version_map": {"38": {"version": "1", "sha256": "091aywnrmaz5j2nzjv1n968a25k8hm6a7ykifrl1b1nswybx5ark", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "10", "sha256": "02y1hhi1l1bn3wv8b1czxk1il4kpaqssdfsnc5y023hlj42rm1v4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "02y1hhi1l1bn3wv8b1czxk1il4kpaqssdfsnc5y023hlj42rm1v4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
+, {"uuid": "translate-clipboard@lsnow.github.io", "name": "translate-clipboard", "pname": "translate-clipboard", "description": "translate clipboard text", "link": "https://extensions.gnome.org/extension/4097/translate-clipboard/", "shell_version_map": {"38": {"version": "1", "sha256": "091aywnrmaz5j2nzjv1n968a25k8hm6a7ykifrl1b1nswybx5ark", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xzbm93L3RyYW5zbGF0ZS1jbGlwYm9hcmQiLAogICJ1dWlkIjogInRyYW5zbGF0ZS1jbGlwYm9hcmRAbHNub3cuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "40": {"version": "11", "sha256": "0cvic6zpcvzvzascbcjanwgsbqd5npwz5r99d13pg8yy1y58x9q6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "41": {"version": "11", "sha256": "0cvic6zpcvzvzascbcjanwgsbqd5npwz5r99d13pg8yy1y58x9q6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInRyYW5zbGF0ZSBjbGlwYm9hcmQgdGV4dCIsCiAgIm5hbWUiOiAidHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHNub3cvdHJhbnNsYXRlLWNsaXBib2FyZCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWNsaXBib2FyZEBsc25vdy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
 , {"uuid": "no-overview@fthx", "name": "No overview at start-up", "pname": "no-overview", "description": "No overview at start-up. For GNOME Shell 40+.", "link": "https://extensions.gnome.org/extension/4099/no-overview/", "shell_version_map": {"40": {"version": "11", "sha256": "15abz4w5n4md1b0f7c403hiyifslgw7dw2jlhzpn47r7k7giwpdk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIG92ZXJ2aWV3IGF0IHN0YXJ0LXVwLiBGb3IgR05PTUUgU2hlbGwgNDArLiIsCiAgIm5hbWUiOiAiTm8gb3ZlcnZpZXcgYXQgc3RhcnQtdXAiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9uby1vdmVydmlldyIsCiAgInV1aWQiOiAibm8tb3ZlcnZpZXdAZnRoeCIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "15abz4w5n4md1b0f7c403hiyifslgw7dw2jlhzpn47r7k7giwpdk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5vIG92ZXJ2aWV3IGF0IHN0YXJ0LXVwLiBGb3IgR05PTUUgU2hlbGwgNDArLiIsCiAgIm5hbWUiOiAiTm8gb3ZlcnZpZXcgYXQgc3RhcnQtdXAiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImZ0aHgiCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9uby1vdmVydmlldyIsCiAgInV1aWQiOiAibm8tb3ZlcnZpZXdAZnRoeCIsCiAgInZlcnNpb24iOiAxMQp9"}}}
 , {"uuid": "notification-position@drugo.dev", "name": "Notification Banner Position", "pname": "notification-banner-position", "description": "Changes position of the notification banner from the default to the right side of the screen.", "link": "https://extensions.gnome.org/extension/4105/notification-banner-position/", "shell_version_map": {"38": {"version": "5", "sha256": "0svmx8767hpbmmvm2m90ksqbxqij5f3k5bamz05p73czqk58dizy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9kcnVnb3dpY2svbm90aWZpY2F0aW9uLXBvc2l0aW9uLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLXBvc2l0aW9uQGRydWdvLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "0svmx8767hpbmmvm2m90ksqbxqij5f3k5bamz05p73czqk58dizy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9kcnVnb3dpY2svbm90aWZpY2F0aW9uLXBvc2l0aW9uLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLXBvc2l0aW9uQGRydWdvLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "0svmx8767hpbmmvm2m90ksqbxqij5f3k5bamz05p73czqk58dizy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZXMgcG9zaXRpb24gb2YgdGhlIG5vdGlmaWNhdGlvbiBiYW5uZXIgZnJvbSB0aGUgZGVmYXVsdCB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgc2NyZWVuLiIsCiAgIm5hbWUiOiAiTm90aWZpY2F0aW9uIEJhbm5lciBQb3NpdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnJ1bm9kcnVnb3dpY2svbm90aWZpY2F0aW9uLXBvc2l0aW9uLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibm90aWZpY2F0aW9uLXBvc2l0aW9uQGRydWdvLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "volume_scroller@trflynn89.pm.me", "name": "Volume Scroller", "pname": "volume-scroller", "description": "Scroll up or down in the Top Bar to adjust volume.", "link": "https://extensions.gnome.org/extension/4109/volume-scroller/", "shell_version_map": {"38": {"version": "5", "sha256": "035gkl1g3k3jqmksgmh2aip3v4k8kkbc6gdnndg6lnhz6czn9c12", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RyZmx5bm44OS9nbm9tZS1zaGVsbC12b2x1bWUtc2Nyb2xsZXIiLAogICJ1dWlkIjogInZvbHVtZV9zY3JvbGxlckB0cmZseW5uODkucG0ubWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "035gkl1g3k3jqmksgmh2aip3v4k8kkbc6gdnndg6lnhz6czn9c12", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RyZmx5bm44OS9nbm9tZS1zaGVsbC12b2x1bWUtc2Nyb2xsZXIiLAogICJ1dWlkIjogInZvbHVtZV9zY3JvbGxlckB0cmZseW5uODkucG0ubWUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
-, {"uuid": "customize-ibus@hollowman.ml", "name": "Customize IBus", "pname": "customize-ibus", "description": "Full customization of appearance, behavior, system tray and input source indicator for IBus\n\nSupport Customization of:\n* Candidate Box Orientation\n* Candidate Box Animation\n* Right-click Candidate Box to Switch the Input Mode or Open the Tray Menu\n* Scroll on Candidate Box to Switch among Pages or Candidates\n* Fix Candidate Box to Not Follow the Caret and Set Fixed Position\n* Candidate Box Font\n* Input Mode Remember and Auto-switch by APP\n* Change Candidate Box Opacity\n* Fix IME List Order\n* Drag Candidate Box to Reposition\n* Show or Hide Candidate Box Page Buttons\n* System Tray Menus and Interaction Settings\n* * Show or Hide Tray Icon\n* * Directly Click Tray Icon to Switch Input Mode\n* * Add Additional Menu\n* Input Source Indicator Appearance and Interaction Settings\n* * Enable Indicator\n* * Only Indicate when Switching Input Mode\n* * Only Indicate when Using ASCII Input Mode\n* * Not Indicate when Using Single Mode IME\n* * Right-click Indicator to Hide\n* * Scroll on Indicator to Switch Input Mode\n* * Indicator Animation\n* * Customize Font\n* * Left-click Indicator to Drag to Move Indicator or Switch Input Mode\n* * Change Opacity\n* * Enable Indicator Show Delay and Configure Showing Timeout\n* * Enable Auto-hide Indicator and Configure Auto-hide Timeout\n* Theme (Stylesheet Provided or Extracted from GNOME Shell Themes, Refer to Help Instructions in Extension for More)\n* Candidate Box Background and its Displaying Style\n* Theme and Background Picture Follow GNOME Night Light Mode\n\nUser Guide: https://hollowmansblog.wordpress.com/2021/08/21/customize-ibus-user-guide/\n\n深度定制 IBus 的外观、行为、系统托盘以及输入指示\n\n支持自定义:\n* 候选框方向\n* 候选框动画\n* 右键单击候选框以切换输入源或打开任务栏菜单\n* 候选框上滚动以切换页面或候选词\n* 固定候选框使其不跟随光标以及设定固定位置\n* 候选框字体\n* 输入模式根据应用记忆并自动切换\n* 更改候选框透明度\n* 固定输入法列表顺序\n* 拖拽移动候选框\n* 显示或隐藏候选框调页按钮\n* 系统任务栏托盘显示和交互设置\n* * 显示或隐藏托盘图标\n* * 直接点击托盘图标切换输入源\n* * 添加额外菜单\n* 输入源指示器及其显示和交互设置\n* * 启用指示器\n* * 仅在切换输入法时指示\n* * 仅在英文输入时指示\n* * 使用单模式输入法时不指示\n* * 右击指示器来将其隐藏\n* * 指示器上滚动来切换输入源\n* * 指示器显示动画\n* * 自定义字体\n* * 左击指示器以拖拽移动或者切换输入源\n* * 更改透明度\n* * 启用延时显示以及配置显示时延\n* * 启用自动隐藏以及配置自动隐藏时延\n* 皮肤样式主题(提供的或者从GNOME Shell主题中提取的样式表,参见扩展的帮助部分来获取更多指导)\n* 候选框背景图片及其显示样式\n* 主题和背景图片跟随GNOME夜灯\n\n使用指南:https://blog.csdn.net/qq_18572023/article/details/116331601", "link": "https://extensions.gnome.org/extension/4112/customize-ibus/", "shell_version_map": {"38": {"version": "78", "sha256": "1zwxxgvk0zdalq8g40pgr7hn197j0gvrfk0rw3g7z2c33ilg8vcd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBOb3QgSW5kaWNhdGUgd2hlbiBVc2luZyBTaW5nbGUgTW9kZSBJTUVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgSW5kaWNhdG9yIFNob3cgRGVsYXkgYW5kIENvbmZpZ3VyZSBTaG93aW5nIFRpbWVvdXRcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRmN2ZcdTc1MjhcdTUzNTVcdTZhMjFcdTVmMGZcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTRlMGRcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTVlZjZcdTY1ZjZcdTY2M2VcdTc5M2FcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTY2M2VcdTc5M2FcdTY1ZjZcdTVlZjZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvQ3VzdG9taXplLUlCdXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA3OAp9"}, "40": {"version": "78", "sha256": "1zwxxgvk0zdalq8g40pgr7hn197j0gvrfk0rw3g7z2c33ilg8vcd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBOb3QgSW5kaWNhdGUgd2hlbiBVc2luZyBTaW5nbGUgTW9kZSBJTUVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgSW5kaWNhdG9yIFNob3cgRGVsYXkgYW5kIENvbmZpZ3VyZSBTaG93aW5nIFRpbWVvdXRcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRmN2ZcdTc1MjhcdTUzNTVcdTZhMjFcdTVmMGZcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTRlMGRcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTVlZjZcdTY1ZjZcdTY2M2VcdTc5M2FcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTY2M2VcdTc5M2FcdTY1ZjZcdTVlZjZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvQ3VzdG9taXplLUlCdXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA3OAp9"}, "41": {"version": "78", "sha256": "1zwxxgvk0zdalq8g40pgr7hn197j0gvrfk0rw3g7z2c33ilg8vcd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBOb3QgSW5kaWNhdGUgd2hlbiBVc2luZyBTaW5nbGUgTW9kZSBJTUVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgSW5kaWNhdG9yIFNob3cgRGVsYXkgYW5kIENvbmZpZ3VyZSBTaG93aW5nIFRpbWVvdXRcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRmN2ZcdTc1MjhcdTUzNTVcdTZhMjFcdTVmMGZcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTRlMGRcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTVlZjZcdTY1ZjZcdTY2M2VcdTc5M2FcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTY2M2VcdTc5M2FcdTY1ZjZcdTVlZjZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvQ3VzdG9taXplLUlCdXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA3OAp9"}}}
+, {"uuid": "Mock-Universal-Menu@zacharygough", "name": "Mock Universal Menu", "pname": "mock-universal-menu", "description": "Creates a Mock Apple Menu (THIS DOES NOTHING WHEN CLICKED)", "link": "https://extensions.gnome.org/extension/4111/mock-universal-menu/", "shell_version_map": {"40": {"version": "5", "sha256": "0irq4aamfdvnsjcb9cj4grp7z0s2rg5dv349v095ss7n7jxcmdx2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgYSBNb2NrIEFwcGxlIE1lbnUgKFRISVMgRE9FUyBOT1RISU5HIFdIRU4gQ0xJQ0tFRCkiLAogICJuYW1lIjogIk1vY2sgVW5pdmVyc2FsIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1phbnktWmFjaGFyeTEvTW9jay1Vbml2ZXJzYWwtTWVudSIsCiAgInV1aWQiOiAiTW9jay1Vbml2ZXJzYWwtTWVudUB6YWNoYXJ5Z291Z2giLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "0irq4aamfdvnsjcb9cj4grp7z0s2rg5dv349v095ss7n7jxcmdx2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNyZWF0ZXMgYSBNb2NrIEFwcGxlIE1lbnUgKFRISVMgRE9FUyBOT1RISU5HIFdIRU4gQ0xJQ0tFRCkiLAogICJuYW1lIjogIk1vY2sgVW5pdmVyc2FsIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1phbnktWmFjaGFyeTEvTW9jay1Vbml2ZXJzYWwtTWVudSIsCiAgInV1aWQiOiAiTW9jay1Vbml2ZXJzYWwtTWVudUB6YWNoYXJ5Z291Z2giLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "customize-ibus@hollowman.ml", "name": "Customize IBus", "pname": "customize-ibus", "description": "Full customization of appearance, behavior, system tray and input source indicator for IBus\n\nSupport Customization of:\n* Candidate Box Orientation\n* Candidate Box Animation\n* Right-click Candidate Box to Switch the Input Mode or Open the Tray Menu\n* Scroll on Candidate Box to Switch among Pages or Candidates\n* Fix Candidate Box to Not Follow the Caret and Set Fixed Position\n* Candidate Box Font\n* Input Mode Remember and Auto-switch by APP\n* Change Candidate Box Opacity\n* Fix IME List Order\n* Drag Candidate Box to Reposition\n* Show or Hide Candidate Box Page Buttons\n* System Tray Menus and Interaction Settings\n* * Show or Hide Tray Icon\n* * Directly Click Tray Icon to Switch Input Mode\n* * Add Additional Menu\n* Input Source Indicator Appearance and Interaction Settings\n* * Enable Indicator\n* * Only Indicate when Switching Input Mode\n* * Only Indicate when Using ASCII Input Mode\n* * Not Indicate when Using Single Mode IME\n* * Right-click Indicator to Hide\n* * Scroll on Indicator to Switch Input Mode\n* * Indicator Animation\n* * Customize Font\n* * Left-click Indicator to Drag to Move Indicator or Switch Input Mode\n* * Change Opacity\n* * Enable Indicator Show Delay and Configure Showing Timeout\n* * Enable Auto-hide Indicator and Configure Auto-hide Timeout\n* Theme (Stylesheet Provided or Extracted from GNOME Shell Themes, Refer to Help Instructions in Extension for More)\n* Candidate Box Background and its Displaying Style\n* Theme and Background Picture Follow GNOME Night Light Mode\n\nUser Guide: https://hollowmansblog.wordpress.com/2021/08/21/customize-ibus-user-guide/\n\n深度定制 IBus 的外观、行为、系统托盘以及输入指示\n\n支持自定义:\n* 候选框方向\n* 候选框动画\n* 右键单击候选框以切换输入源或打开任务栏菜单\n* 候选框上滚动以切换页面或候选词\n* 固定候选框使其不跟随光标以及设定固定位置\n* 候选框字体\n* 输入模式根据应用记忆并自动切换\n* 更改候选框透明度\n* 固定输入法列表顺序\n* 拖拽移动候选框\n* 显示或隐藏候选框调页按钮\n* 系统任务栏托盘显示和交互设置\n* * 显示或隐藏托盘图标\n* * 直接点击托盘图标切换输入源\n* * 添加额外菜单\n* 输入源指示器及其显示和交互设置\n* * 启用指示器\n* * 仅在切换输入法时指示\n* * 仅在英文输入时指示\n* * 使用单模式输入法时不指示\n* * 右击指示器来将其隐藏\n* * 指示器上滚动来切换输入源\n* * 指示器显示动画\n* * 自定义字体\n* * 左击指示器以拖拽移动或者切换输入源\n* * 更改透明度\n* * 启用延时显示以及配置显示时延\n* * 启用自动隐藏以及配置自动隐藏时延\n* 皮肤样式主题(提供的或者从GNOME Shell主题中提取的样式表,参见扩展的帮助部分来获取更多指导)\n* 候选框背景图片及其显示样式\n* 主题和背景图片跟随GNOME夜灯\n\n使用指南:https://blog.csdn.net/qq_18572023/article/details/116331601", "link": "https://extensions.gnome.org/extension/4112/customize-ibus/", "shell_version_map": {"38": {"version": "80", "sha256": "0w4mgjin6s5h8bc50830nd0b34hvij6vzsmp4ppw52ghnb46813p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBOb3QgSW5kaWNhdGUgd2hlbiBVc2luZyBTaW5nbGUgTW9kZSBJTUVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgSW5kaWNhdG9yIFNob3cgRGVsYXkgYW5kIENvbmZpZ3VyZSBTaG93aW5nIFRpbWVvdXRcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRmN2ZcdTc1MjhcdTUzNTVcdTZhMjFcdTVmMGZcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTRlMGRcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTVlZjZcdTY1ZjZcdTY2M2VcdTc5M2FcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTY2M2VcdTc5M2FcdTY1ZjZcdTVlZjZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvQ3VzdG9taXplLUlCdXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA4MAp9"}, "40": {"version": "80", "sha256": "0w4mgjin6s5h8bc50830nd0b34hvij6vzsmp4ppw52ghnb46813p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBOb3QgSW5kaWNhdGUgd2hlbiBVc2luZyBTaW5nbGUgTW9kZSBJTUVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgSW5kaWNhdG9yIFNob3cgRGVsYXkgYW5kIENvbmZpZ3VyZSBTaG93aW5nIFRpbWVvdXRcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRmN2ZcdTc1MjhcdTUzNTVcdTZhMjFcdTVmMGZcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTRlMGRcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTVlZjZcdTY1ZjZcdTY2M2VcdTc5M2FcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTY2M2VcdTc5M2FcdTY1ZjZcdTVlZjZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvQ3VzdG9taXplLUlCdXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA4MAp9"}, "41": {"version": "80", "sha256": "0w4mgjin6s5h8bc50830nd0b34hvij6vzsmp4ppw52ghnb46813p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGwgY3VzdG9taXphdGlvbiBvZiBhcHBlYXJhbmNlLCBiZWhhdmlvciwgc3lzdGVtIHRyYXkgYW5kIGlucHV0IHNvdXJjZSBpbmRpY2F0b3IgZm9yIElCdXNcblxuU3VwcG9ydCBDdXN0b21pemF0aW9uIG9mOlxuKiBDYW5kaWRhdGUgQm94IE9yaWVudGF0aW9uXG4qIENhbmRpZGF0ZSBCb3ggQW5pbWF0aW9uXG4qIFJpZ2h0LWNsaWNrIENhbmRpZGF0ZSBCb3ggdG8gU3dpdGNoIHRoZSBJbnB1dCBNb2RlIG9yIE9wZW4gdGhlIFRyYXkgTWVudVxuKiBTY3JvbGwgb24gQ2FuZGlkYXRlIEJveCB0byBTd2l0Y2ggYW1vbmcgUGFnZXMgb3IgQ2FuZGlkYXRlc1xuKiBGaXggQ2FuZGlkYXRlIEJveCB0byBOb3QgRm9sbG93IHRoZSBDYXJldCBhbmQgU2V0IEZpeGVkIFBvc2l0aW9uXG4qIENhbmRpZGF0ZSBCb3ggRm9udFxuKiBJbnB1dCBNb2RlIFJlbWVtYmVyIGFuZCBBdXRvLXN3aXRjaCBieSBBUFBcbiogQ2hhbmdlIENhbmRpZGF0ZSBCb3ggT3BhY2l0eVxuKiBGaXggSU1FIExpc3QgT3JkZXJcbiogRHJhZyBDYW5kaWRhdGUgQm94IHRvIFJlcG9zaXRpb25cbiogU2hvdyBvciBIaWRlIENhbmRpZGF0ZSBCb3ggUGFnZSBCdXR0b25zXG4qIFN5c3RlbSBUcmF5IE1lbnVzIGFuZCBJbnRlcmFjdGlvbiBTZXR0aW5nc1xuKiAqIFNob3cgb3IgSGlkZSBUcmF5IEljb25cbiogKiBEaXJlY3RseSBDbGljayBUcmF5IEljb24gdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBBZGQgQWRkaXRpb25hbCBNZW51XG4qIElucHV0IFNvdXJjZSBJbmRpY2F0b3IgQXBwZWFyYW5jZSBhbmQgSW50ZXJhY3Rpb24gU2V0dGluZ3NcbiogKiBFbmFibGUgSW5kaWNhdG9yXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFN3aXRjaGluZyBJbnB1dCBNb2RlXG4qICogT25seSBJbmRpY2F0ZSB3aGVuIFVzaW5nIEFTQ0lJIElucHV0IE1vZGVcbiogKiBOb3QgSW5kaWNhdGUgd2hlbiBVc2luZyBTaW5nbGUgTW9kZSBJTUVcbiogKiBSaWdodC1jbGljayBJbmRpY2F0b3IgdG8gSGlkZVxuKiAqIFNjcm9sbCBvbiBJbmRpY2F0b3IgdG8gU3dpdGNoIElucHV0IE1vZGVcbiogKiBJbmRpY2F0b3IgQW5pbWF0aW9uXG4qICogQ3VzdG9taXplIEZvbnRcbiogKiBMZWZ0LWNsaWNrIEluZGljYXRvciB0byBEcmFnIHRvIE1vdmUgSW5kaWNhdG9yIG9yIFN3aXRjaCBJbnB1dCBNb2RlXG4qICogQ2hhbmdlIE9wYWNpdHlcbiogKiBFbmFibGUgSW5kaWNhdG9yIFNob3cgRGVsYXkgYW5kIENvbmZpZ3VyZSBTaG93aW5nIFRpbWVvdXRcbiogKiBFbmFibGUgQXV0by1oaWRlIEluZGljYXRvciBhbmQgQ29uZmlndXJlIEF1dG8taGlkZSBUaW1lb3V0XG4qIFRoZW1lIChTdHlsZXNoZWV0IFByb3ZpZGVkIG9yIEV4dHJhY3RlZCBmcm9tIEdOT01FIFNoZWxsIFRoZW1lcywgUmVmZXIgdG8gSGVscCBJbnN0cnVjdGlvbnMgaW4gRXh0ZW5zaW9uIGZvciBNb3JlKVxuKiBDYW5kaWRhdGUgQm94IEJhY2tncm91bmQgYW5kIGl0cyBEaXNwbGF5aW5nIFN0eWxlXG4qIFRoZW1lIGFuZCBCYWNrZ3JvdW5kIFBpY3R1cmUgRm9sbG93IEdOT01FIE5pZ2h0IExpZ2h0IE1vZGVcblxuVXNlciBHdWlkZTogaHR0cHM6Ly9ob2xsb3dtYW5zYmxvZy53b3JkcHJlc3MuY29tLzIwMjEvMDgvMjEvY3VzdG9taXplLWlidXMtdXNlci1ndWlkZS9cblxuXHU2ZGYxXHU1ZWE2XHU1YjlhXHU1MjM2IElCdXMgXHU3Njg0XHU1OTE2XHU4OWMyXHUzMDAxXHU4ODRjXHU0ZTNhXHUzMDAxXHU3Y2ZiXHU3ZWRmXHU2MjU4XHU3NmQ4XHU0ZWU1XHU1M2NhXHU4ZjkzXHU1MTY1XHU2MzA3XHU3OTNhXG5cblx1NjUyZlx1NjMwMVx1ODFlYVx1NWI5YVx1NGU0OVx1ZmYxYVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTY1YjlcdTU0MTFcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU1MmE4XHU3NTNiXG4qIFx1NTNmM1x1OTUyZVx1NTM1NVx1NTFmYlx1NTAxOVx1OTAwOVx1Njg0Nlx1NGVlNVx1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFx1NjIxNlx1NjI1M1x1NWYwMFx1NGVmYlx1NTJhMVx1NjgwZlx1ODNkY1x1NTM1NVxuKiBcdTUwMTlcdTkwMDlcdTY4NDZcdTRlMGFcdTZlZGFcdTUyYThcdTRlZTVcdTUyMDdcdTYzNjJcdTk4NzVcdTk3NjJcdTYyMTZcdTUwMTlcdTkwMDlcdThiY2RcbiogXHU1NmZhXHU1YjlhXHU1MDE5XHU5MDA5XHU2ODQ2XHU0ZjdmXHU1MTc2XHU0ZTBkXHU4ZGRmXHU5NjhmXHU1MTQ5XHU2ODA3XHU0ZWU1XHU1M2NhXHU4YmJlXHU1YjlhXHU1NmZhXHU1YjlhXHU0ZjRkXHU3ZjZlXG4qIFx1NTAxOVx1OTAwOVx1Njg0Nlx1NWI1N1x1NGY1M1xuKiBcdThmOTNcdTUxNjVcdTZhMjFcdTVmMGZcdTY4MzlcdTYzNmVcdTVlOTRcdTc1MjhcdThiYjBcdTVmYzZcdTVlNzZcdTgxZWFcdTUyYThcdTUyMDdcdTYzNjJcbiogXHU2NmY0XHU2NTM5XHU1MDE5XHU5MDA5XHU2ODQ2XHU5MDBmXHU2NjBlXHU1ZWE2XG4qIFx1NTZmYVx1NWI5YVx1OGY5M1x1NTE2NVx1NmNkNVx1NTIxN1x1ODg2OFx1OTg3YVx1NWU4ZlxuKiBcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTUwMTlcdTkwMDlcdTY4NDZcbiogXHU2NjNlXHU3OTNhXHU2MjE2XHU5NjkwXHU4NWNmXHU1MDE5XHU5MDA5XHU2ODQ2XHU4YzAzXHU5ODc1XHU2MzA5XHU5NGFlXG4qIFx1N2NmYlx1N2VkZlx1NGVmYlx1NTJhMVx1NjgwZlx1NjI1OFx1NzZkOFx1NjYzZVx1NzkzYVx1NTQ4Y1x1NGVhNFx1NGU5Mlx1OGJiZVx1N2Y2ZVxuKiAqIFx1NjYzZVx1NzkzYVx1NjIxNlx1OTY5MFx1ODVjZlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1xuKiAqIFx1NzZmNFx1NjNhNVx1NzBiOVx1NTFmYlx1NjI1OFx1NzZkOFx1NTZmZVx1NjgwN1x1NTIwN1x1NjM2Mlx1OGY5M1x1NTE2NVx1NmU5MFxuKiAqIFx1NmRmYlx1NTJhMFx1OTg5ZFx1NTkxNlx1ODNkY1x1NTM1NVxuKiBcdThmOTNcdTUxNjVcdTZlOTBcdTYzMDdcdTc5M2FcdTU2NjhcdTUzY2FcdTUxNzZcdTY2M2VcdTc5M2FcdTU0OGNcdTRlYTRcdTRlOTJcdThiYmVcdTdmNmVcbiogKiBcdTU0MmZcdTc1MjhcdTYzMDdcdTc5M2FcdTU2NjhcbiogKiBcdTRlYzVcdTU3MjhcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRlYzVcdTU3MjhcdTgyZjFcdTY1ODdcdThmOTNcdTUxNjVcdTY1ZjZcdTYzMDdcdTc5M2FcbiogKiBcdTRmN2ZcdTc1MjhcdTUzNTVcdTZhMjFcdTVmMGZcdThmOTNcdTUxNjVcdTZjZDVcdTY1ZjZcdTRlMGRcdTYzMDdcdTc5M2FcbiogKiBcdTUzZjNcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTY3NjVcdTVjMDZcdTUxNzZcdTk2OTBcdTg1Y2ZcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTRlMGFcdTZlZGFcdTUyYThcdTY3NjVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTYzMDdcdTc5M2FcdTU2NjhcdTY2M2VcdTc5M2FcdTUyYThcdTc1M2JcbiogKiBcdTgxZWFcdTViOWFcdTRlNDlcdTViNTdcdTRmNTNcbiogKiBcdTVkZTZcdTUxZmJcdTYzMDdcdTc5M2FcdTU2NjhcdTRlZTVcdTYyZDZcdTYyZmRcdTc5ZmJcdTUyYThcdTYyMTZcdTgwMDVcdTUyMDdcdTYzNjJcdThmOTNcdTUxNjVcdTZlOTBcbiogKiBcdTY2ZjRcdTY1MzlcdTkwMGZcdTY2MGVcdTVlYTZcbiogKiBcdTU0MmZcdTc1MjhcdTVlZjZcdTY1ZjZcdTY2M2VcdTc5M2FcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTY2M2VcdTc5M2FcdTY1ZjZcdTVlZjZcbiogKiBcdTU0MmZcdTc1MjhcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTRlZTVcdTUzY2FcdTkxNGRcdTdmNmVcdTgxZWFcdTUyYThcdTk2OTBcdTg1Y2ZcdTY1ZjZcdTVlZjZcbiogXHU3NmFlXHU4MGE0XHU2ODM3XHU1ZjBmXHU0ZTNiXHU5ODk4XHVmZjA4XHU2M2QwXHU0ZjliXHU3Njg0XHU2MjE2XHU4MDA1XHU0ZWNlR05PTUUgU2hlbGxcdTRlM2JcdTk4OThcdTRlMmRcdTYzZDBcdTUzZDZcdTc2ODRcdTY4MzdcdTVmMGZcdTg4NjhcdWZmMGNcdTUzYzJcdTg5YzFcdTYyNjlcdTVjNTVcdTc2ODRcdTVlMmVcdTUyYTlcdTkwZThcdTUyMDZcdTY3NjVcdTgzYjdcdTUzZDZcdTY2ZjRcdTU5MWFcdTYzMDdcdTViZmNcdWZmMDlcbiogXHU1MDE5XHU5MDA5XHU2ODQ2XHU4MGNjXHU2NjZmXHU1NmZlXHU3MjQ3XHU1M2NhXHU1MTc2XHU2NjNlXHU3OTNhXHU2ODM3XHU1ZjBmXG4qIFx1NGUzYlx1OTg5OFx1NTQ4Y1x1ODBjY1x1NjY2Zlx1NTZmZVx1NzI0N1x1OGRkZlx1OTY4ZkdOT01FXHU1OTFjXHU3MDZmXG5cblx1NGY3Zlx1NzUyOFx1NjMwN1x1NTM1N1x1ZmYxYWh0dHBzOi8vYmxvZy5jc2RuLm5ldC9xcV8xODU3MjAyMy9hcnRpY2xlL2RldGFpbHMvMTE2MzMxNjAxIiwKICAiZXh0ZW5zaW9uLWlkIjogImN1c3RvbWl6ZS1pYnVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9taXplLWlidXMiLAogICJuYW1lIjogIkN1c3RvbWl6ZSBJQnVzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJob2xsb3dtYW5AaG9sbG93bWFuLm1sIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b21pemUtaWJ1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb3BlblNVU0UvQ3VzdG9taXplLUlCdXMiLAogICJ1dWlkIjogImN1c3RvbWl6ZS1pYnVzQGhvbGxvd21hbi5tbCIsCiAgInZlcnNpb24iOiA4MAp9"}}}
 , {"uuid": "fildemGMenu@gonza.com", "name": "Fildem global menu", "pname": "fildem-global-menu", "description": "Global menu and HUD for Gnome\n\nThis extension requires the installation of an external program. Please, check the instructions on Github.\n\nThis extension works on gnome 40 but the preferences doesn’t work, if you want you can install it manually modifing the version supported on metadata.", "link": "https://extensions.gnome.org/extension/4114/fildem-global-menu/", "shell_version_map": {"38": {"version": "1", "sha256": "0zgkf4cb4hl0r6r1kzwlvnr4f2svlpwayrw7xqs39fa19cc1zasv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdsb2JhbCBtZW51IGFuZCBIVUQgZm9yIEdub21lXG5cblRoaXMgZXh0ZW5zaW9uIHJlcXVpcmVzIHRoZSBpbnN0YWxsYXRpb24gb2YgYW4gZXh0ZXJuYWwgcHJvZ3JhbS4gUGxlYXNlLCBjaGVjayB0aGUgaW5zdHJ1Y3Rpb25zIG9uIEdpdGh1Yi5cblxuVGhpcyBleHRlbnNpb24gd29ya3Mgb24gZ25vbWUgNDAgYnV0IHRoZSBwcmVmZXJlbmNlcyBkb2Vzblx1MjAxOXQgd29yaywgaWYgeW91IHdhbnQgeW91IGNhbiBpbnN0YWxsIGl0IG1hbnVhbGx5IG1vZGlmaW5nIHRoZSB2ZXJzaW9uIHN1cHBvcnRlZCBvbiBtZXRhZGF0YS4iLAogICJuYW1lIjogIkZpbGRlbSBnbG9iYWwgbWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5maWxkZW0tZ2xvYmFsLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb256YWFyY3IvRmlsZGVtIiwKICAidXVpZCI6ICJmaWxkZW1HTWVudUBnb256YS5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "remove-panel@sulincix", "name": "RemovePanel", "pname": "removepanel", "description": "remove top panel from gnome-shell", "link": "https://extensions.gnome.org/extension/4118/removepanel/", "shell_version_map": {"38": {"version": "4", "sha256": "0f6p5cd68qlb082favqf2h7q4vn8c6rh0y48g3s2d9fxgccvc1di", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInJlbW92ZSB0b3AgcGFuZWwgZnJvbSBnbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiUmVtb3ZlUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAicmVtb3ZlLXBhbmVsQHN1bGluY2l4IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "bottom-triggers-activities@papjul", "name": "Bottom triggers Activities overview", "pname": "bottom-triggers-activities-overview", "description": "DEPRECATION NOTICE: No longer maintained. Please migrate to another extension such as Hot Edge https://extensions.gnome.org/extension/4222/hot-edge/\n\nAllows to toggle Activities overview when the mouse reaches the bottom edge of the screen.\nPLEASE report your bugs to the extension homepage link below. I cannot reply to you if you write a review here.\n\nThis is a fork of Dash to Dock focusing only on doing this, it adds support for Gnome Shell 40 and is mainly aimed at Gnome Shell 40 users to reduce mouse travel.\n\nI may backport fixes from upstream, but I don't intend to add any new feature and may not fix any bug if I'm not affected/cannot reproduce. However, I will accept pull requests that keep the extension in the KISS principle. It could be adding a prefs UI for toggle delay and edge(s) triggered, or supporting multiple monitors.\n\nYou can customize the following parameters from the constructor of extension.js:\n        this._position = St.Side.BOTTOM;\n        this._toggleDelay = 0.25;", "link": "https://extensions.gnome.org/extension/4120/bottom-triggers-activities-overview/", "shell_version_map": {"38": {"version": "2", "sha256": "1q1ahz612w2fzbvky8ydwns2kykbj2vqcr5ddyncg16lhrfzx9vq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRFUFJFQ0FUSU9OIE5PVElDRTogTm8gbG9uZ2VyIG1haW50YWluZWQuIFBsZWFzZSBtaWdyYXRlIHRvIGFub3RoZXIgZXh0ZW5zaW9uIHN1Y2ggYXMgSG90IEVkZ2UgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDIyMi9ob3QtZWRnZS9cblxuQWxsb3dzIHRvIHRvZ2dsZSBBY3Rpdml0aWVzIG92ZXJ2aWV3IHdoZW4gdGhlIG1vdXNlIHJlYWNoZXMgdGhlIGJvdHRvbSBlZGdlIG9mIHRoZSBzY3JlZW4uXG5QTEVBU0UgcmVwb3J0IHlvdXIgYnVncyB0byB0aGUgZXh0ZW5zaW9uIGhvbWVwYWdlIGxpbmsgYmVsb3cuIEkgY2Fubm90IHJlcGx5IHRvIHlvdSBpZiB5b3Ugd3JpdGUgYSByZXZpZXcgaGVyZS5cblxuVGhpcyBpcyBhIGZvcmsgb2YgRGFzaCB0byBEb2NrIGZvY3VzaW5nIG9ubHkgb24gZG9pbmcgdGhpcywgaXQgYWRkcyBzdXBwb3J0IGZvciBHbm9tZSBTaGVsbCA0MCBhbmQgaXMgbWFpbmx5IGFpbWVkIGF0IEdub21lIFNoZWxsIDQwIHVzZXJzIHRvIHJlZHVjZSBtb3VzZSB0cmF2ZWwuXG5cbkkgbWF5IGJhY2twb3J0IGZpeGVzIGZyb20gdXBzdHJlYW0sIGJ1dCBJIGRvbid0IGludGVuZCB0byBhZGQgYW55IG5ldyBmZWF0dXJlIGFuZCBtYXkgbm90IGZpeCBhbnkgYnVnIGlmIEknbSBub3QgYWZmZWN0ZWQvY2Fubm90IHJlcHJvZHVjZS4gSG93ZXZlciwgSSB3aWxsIGFjY2VwdCBwdWxsIHJlcXVlc3RzIHRoYXQga2VlcCB0aGUgZXh0ZW5zaW9uIGluIHRoZSBLSVNTIHByaW5jaXBsZS4gSXQgY291bGQgYmUgYWRkaW5nIGEgcHJlZnMgVUkgZm9yIHRvZ2dsZSBkZWxheSBhbmQgZWRnZShzKSB0cmlnZ2VyZWQsIG9yIHN1cHBvcnRpbmcgbXVsdGlwbGUgbW9uaXRvcnMuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBmcm9tIHRoZSBjb25zdHJ1Y3RvciBvZiBleHRlbnNpb24uanM6XG4gICAgICAgIHRoaXMuX3Bvc2l0aW9uID0gU3QuU2lkZS5CT1RUT007XG4gICAgICAgIHRoaXMuX3RvZ2dsZURlbGF5ID0gMC4yNTsiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJib3R0b210cmlnZ2Vyc2FjdGl2aXRpZXMiLAogICJuYW1lIjogIkJvdHRvbSB0cmlnZ2VycyBBY3Rpdml0aWVzIG92ZXJ2aWV3IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhcGp1bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXBqdWwvYm90dG9tLXRyaWdnZXJzLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImJvdHRvbS10cmlnZ2Vycy1hY3Rpdml0aWVzQHBhcGp1bCIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "1q1ahz612w2fzbvky8ydwns2kykbj2vqcr5ddyncg16lhrfzx9vq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRFUFJFQ0FUSU9OIE5PVElDRTogTm8gbG9uZ2VyIG1haW50YWluZWQuIFBsZWFzZSBtaWdyYXRlIHRvIGFub3RoZXIgZXh0ZW5zaW9uIHN1Y2ggYXMgSG90IEVkZ2UgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vNDIyMi9ob3QtZWRnZS9cblxuQWxsb3dzIHRvIHRvZ2dsZSBBY3Rpdml0aWVzIG92ZXJ2aWV3IHdoZW4gdGhlIG1vdXNlIHJlYWNoZXMgdGhlIGJvdHRvbSBlZGdlIG9mIHRoZSBzY3JlZW4uXG5QTEVBU0UgcmVwb3J0IHlvdXIgYnVncyB0byB0aGUgZXh0ZW5zaW9uIGhvbWVwYWdlIGxpbmsgYmVsb3cuIEkgY2Fubm90IHJlcGx5IHRvIHlvdSBpZiB5b3Ugd3JpdGUgYSByZXZpZXcgaGVyZS5cblxuVGhpcyBpcyBhIGZvcmsgb2YgRGFzaCB0byBEb2NrIGZvY3VzaW5nIG9ubHkgb24gZG9pbmcgdGhpcywgaXQgYWRkcyBzdXBwb3J0IGZvciBHbm9tZSBTaGVsbCA0MCBhbmQgaXMgbWFpbmx5IGFpbWVkIGF0IEdub21lIFNoZWxsIDQwIHVzZXJzIHRvIHJlZHVjZSBtb3VzZSB0cmF2ZWwuXG5cbkkgbWF5IGJhY2twb3J0IGZpeGVzIGZyb20gdXBzdHJlYW0sIGJ1dCBJIGRvbid0IGludGVuZCB0byBhZGQgYW55IG5ldyBmZWF0dXJlIGFuZCBtYXkgbm90IGZpeCBhbnkgYnVnIGlmIEknbSBub3QgYWZmZWN0ZWQvY2Fubm90IHJlcHJvZHVjZS4gSG93ZXZlciwgSSB3aWxsIGFjY2VwdCBwdWxsIHJlcXVlc3RzIHRoYXQga2VlcCB0aGUgZXh0ZW5zaW9uIGluIHRoZSBLSVNTIHByaW5jaXBsZS4gSXQgY291bGQgYmUgYWRkaW5nIGEgcHJlZnMgVUkgZm9yIHRvZ2dsZSBkZWxheSBhbmQgZWRnZShzKSB0cmlnZ2VyZWQsIG9yIHN1cHBvcnRpbmcgbXVsdGlwbGUgbW9uaXRvcnMuXG5cbllvdSBjYW4gY3VzdG9taXplIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBmcm9tIHRoZSBjb25zdHJ1Y3RvciBvZiBleHRlbnNpb24uanM6XG4gICAgICAgIHRoaXMuX3Bvc2l0aW9uID0gU3QuU2lkZS5CT1RUT007XG4gICAgICAgIHRoaXMuX3RvZ2dsZURlbGF5ID0gMC4yNTsiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJib3R0b210cmlnZ2Vyc2FjdGl2aXRpZXMiLAogICJuYW1lIjogIkJvdHRvbSB0cmlnZ2VycyBBY3Rpdml0aWVzIG92ZXJ2aWV3IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInBhcGp1bCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXBqdWwvYm90dG9tLXRyaWdnZXJzLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogImJvdHRvbS10cmlnZ2Vycy1hY3Rpdml0aWVzQHBhcGp1bCIsCiAgInZlcnNpb24iOiAyCn0="}}}
@@ -457,15 +462,15 @@
 , {"uuid": "disable-menu-switching@selfmade.pl", "name": "Disable Menu Switching", "pname": "disable-menu-switching", "description": "Disable changing menu on hover another panel button.", "link": "https://extensions.gnome.org/extension/4133/disable-menu-switching/", "shell_version_map": {"40": {"version": "3", "sha256": "12879vn6knafdcphg3wwbpbram5hrw79v68z9c9d5z4f9k781ksq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgY2hhbmdpbmcgbWVudSBvbiBob3ZlciBhbm90aGVyIHBhbmVsIGJ1dHRvbi4iLAogICJuYW1lIjogIkRpc2FibGUgTWVudSBTd2l0Y2hpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvRGlzYWJsZS1NZW51LVN3aXRjaGluZyIsCiAgInV1aWQiOiAiZGlzYWJsZS1tZW51LXN3aXRjaGluZ0BzZWxmbWFkZS5wbCIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "4", "sha256": "0fnzlmr12l8y689p6kclm3yd3b653jl9f1bhhy7652c1b4g515m0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgY2hhbmdpbmcgbWVudSBvbiBob3ZlciBhbm90aGVyIHBhbmVsIGJ1dHRvbi4iLAogICJuYW1lIjogIkRpc2FibGUgTWVudSBTd2l0Y2hpbmciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWFydGluUEwvRGlzYWJsZS1NZW51LVN3aXRjaGluZyIsCiAgInV1aWQiOiAiZGlzYWJsZS1tZW51LXN3aXRjaGluZ0BzZWxmbWFkZS5wbCIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "espresso@coadmunkee.github.com", "name": "Espresso", "pname": "espresso", "description": "Set conditions to disable the screensaver and auto suspend. Espresso is a fork of the Caffeine extension, and Espresso only supports Gnome 40 and Gnome 41. Please leave feedback or report issues through the Extension Homepage", "link": "https://extensions.gnome.org/extension/4135/espresso/", "shell_version_map": {"40": {"version": "4", "sha256": "1cvbi9yb4iz9178sjf3fppr1c4n8pm345b66njf1ij81qbllm9aw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBjb25kaXRpb25zIHRvIGRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQuIEVzcHJlc3NvIGlzIGEgZm9yayBvZiB0aGUgQ2FmZmVpbmUgZXh0ZW5zaW9uLCBhbmQgRXNwcmVzc28gb25seSBzdXBwb3J0cyBHbm9tZSA0MCBhbmQgR25vbWUgNDEuIFBsZWFzZSBsZWF2ZSBmZWVkYmFjayBvciByZXBvcnQgaXNzdWVzIHRocm91Z2ggdGhlIEV4dGVuc2lvbiBIb21lcGFnZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1lc3ByZXNzbyIsCiAgIm5hbWUiOiAiRXNwcmVzc28iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXNwcmVzc28iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvYWRtdW5rZWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAidXVpZCI6ICJlc3ByZXNzb0Bjb2FkbXVua2VlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "1cvbi9yb4iz9178sjf3fppr1c4n8pm345b66njf1ij81qbllm9aw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBjb25kaXRpb25zIHRvIGRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQuIEVzcHJlc3NvIGlzIGEgZm9yayBvZiB0aGUgQ2FmZmVpbmUgZXh0ZW5zaW9uLCBhbmQgRXNwcmVzc28gb25seSBzdXBwb3J0cyBHbm9tZSA0MCBhbmQgR25vbWUgNDEuIFBsZWFzZSBsZWF2ZSBmZWVkYmFjayBvciByZXBvcnQgaXNzdWVzIHRocm91Z2ggdGhlIEV4dGVuc2lvbiBIb21lcGFnZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1lc3ByZXNzbyIsCiAgIm5hbWUiOiAiRXNwcmVzc28iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZXNwcmVzc28iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NvYWRtdW5rZWUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWVzcHJlc3NvIiwKICAidXVpZCI6ICJlc3ByZXNzb0Bjb2FkbXVua2VlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "salat-dz@salat-dz.com", "name": "Salat Dz", "pname": "salat-dz", "description": "Show next salat using Salat Dz API", "link": "https://extensions.gnome.org/extension/4136/salat-dz/", "shell_version_map": {"38": {"version": "1", "sha256": "1kga5w2yp375h6lj3fmzr1agg43phyj5f45d7hjv04c405d32p8s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgbmV4dCBzYWxhdCB1c2luZyBTYWxhdCBEeiBBUEkiLAogICJuYW1lIjogIlNhbGF0IER6IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3NhbGF0LnB5dGhvbmFueXdoZXJlLmNvbSIsCiAgInV1aWQiOiAic2FsYXQtZHpAc2FsYXQtZHouY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
-, {"uuid": "user-at-host@cmm.github.com", "name": "Add user@host to top panel", "pname": "add-userhost-to-panel", "description": "Adds user@host to the top panel, on the left.\n\nNothing fancy, no support -- fork at will, the thing is very simple.", "link": "https://extensions.gnome.org/extension/4141/add-userhost-to-panel/", "shell_version_map": {"38": {"version": "5", "sha256": "0prq93aqyy7zsvbkpnb20xws5yf8jvicihn113y0b2nkjhd1n7s5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIG9uIHRoZSBsZWZ0LlxuXG5Ob3RoaW5nIGZhbmN5LCBubyBzdXBwb3J0IC0tIGZvcmsgYXQgd2lsbCwgdGhlIHRoaW5nIGlzIHZlcnkgc2ltcGxlLiIsCiAgIm5hbWUiOiAiQWRkIHVzZXJAaG9zdCB0byB0b3AgcGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiZGFuZGFtYW45NiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jbW0vZ25vbWUtdXNlci1hdC1ob3N0IiwKICAidXVpZCI6ICJ1c2VyLWF0LWhvc3RAY21tLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "0prq93aqyy7zsvbkpnb20xws5yf8jvicihn113y0b2nkjhd1n7s5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIG9uIHRoZSBsZWZ0LlxuXG5Ob3RoaW5nIGZhbmN5LCBubyBzdXBwb3J0IC0tIGZvcmsgYXQgd2lsbCwgdGhlIHRoaW5nIGlzIHZlcnkgc2ltcGxlLiIsCiAgIm5hbWUiOiAiQWRkIHVzZXJAaG9zdCB0byB0b3AgcGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiZGFuZGFtYW45NiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jbW0vZ25vbWUtdXNlci1hdC1ob3N0IiwKICAidXVpZCI6ICJ1c2VyLWF0LWhvc3RAY21tLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "user-at-host@cmm.github.com", "name": "Add user@host to top panel", "pname": "add-userhost-to-panel", "description": "Adds user@host to the top panel, on the left.\n\nNothing fancy, no support -- fork at will, the thing is very simple.", "link": "https://extensions.gnome.org/extension/4141/add-userhost-to-panel/", "shell_version_map": {"38": {"version": "6", "sha256": "0ypil2vcv0fx10gh8q3slvf2mbqf8y53mzrb2irxdbqjkn4mdnax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIG9uIHRoZSBsZWZ0LlxuXG5Ob3RoaW5nIGZhbmN5LCBubyBzdXBwb3J0IC0tIGZvcmsgYXQgd2lsbCwgdGhlIHRoaW5nIGlzIHZlcnkgc2ltcGxlLiIsCiAgIm5hbWUiOiAiQWRkIHVzZXJAaG9zdCB0byB0b3AgcGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiZGFuZGFtYW45NiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY21tL2dub21lLXVzZXItYXQtaG9zdCIsCiAgInV1aWQiOiAidXNlci1hdC1ob3N0QGNtbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0ypil2vcv0fx10gh8q3slvf2mbqf8y53mzrb2irxdbqjkn4mdnax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIG9uIHRoZSBsZWZ0LlxuXG5Ob3RoaW5nIGZhbmN5LCBubyBzdXBwb3J0IC0tIGZvcmsgYXQgd2lsbCwgdGhlIHRoaW5nIGlzIHZlcnkgc2ltcGxlLiIsCiAgIm5hbWUiOiAiQWRkIHVzZXJAaG9zdCB0byB0b3AgcGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiZGFuZGFtYW45NiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY21tL2dub21lLXVzZXItYXQtaG9zdCIsCiAgInV1aWQiOiAidXNlci1hdC1ob3N0QGNtbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "0ypil2vcv0fx10gh8q3slvf2mbqf8y53mzrb2irxdbqjkn4mdnax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdXNlckBob3N0IHRvIHRoZSB0b3AgcGFuZWwsIG9uIHRoZSBsZWZ0LlxuXG5Ob3RoaW5nIGZhbmN5LCBubyBzdXBwb3J0IC0tIGZvcmsgYXQgd2lsbCwgdGhlIHRoaW5nIGlzIHZlcnkgc2ltcGxlLiIsCiAgIm5hbWUiOiAiQWRkIHVzZXJAaG9zdCB0byB0b3AgcGFuZWwiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiZGFuZGFtYW45NiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY21tL2dub21lLXVzZXItYXQtaG9zdCIsCiAgInV1aWQiOiAidXNlci1hdC1ob3N0QGNtbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "vertical-overview@RensAlthuis.github.com", "name": "Vertical overview", "pname": "vertical-overview", "description": "Bringing back vertically stacked workspaces", "link": "https://extensions.gnome.org/extension/4144/vertical-overview/", "shell_version_map": {"40": {"version": "8", "sha256": "0h865ipn97k9yrj4r0qhfdj2vnwk92720ahim22sw86605ljc77z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5naW5nIGJhY2sgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMiLAogICJuYW1lIjogIlZlcnRpY2FsIG92ZXJ2aWV3IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInJlbnMuYWx0aHVpc0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC1vdmVydmlld0BSZW5zQWx0aHVpcy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "41": {"version": "8", "sha256": "0h865ipn97k9yrj4r0qhfdj2vnwk92720ahim22sw86605ljc77z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5naW5nIGJhY2sgdmVydGljYWxseSBzdGFja2VkIHdvcmtzcGFjZXMiLAogICJuYW1lIjogIlZlcnRpY2FsIG92ZXJ2aWV3IiwKICAib3JpZ2luYWwtYXV0aG9yIjogInJlbnMuYWx0aHVpc0BnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ2ZXJ0aWNhbC1vdmVydmlld0BSZW5zQWx0aHVpcy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "workspace-isolated_app-switcher@lestibournes", "name": "Workspace-Isolated App-Switcher", "pname": "workspace-isolated-app-switcher", "description": "App-Switcher modification that shows only the apps that are running on the current workspace. Fork of App-Switcher Current Workspace First by fawtytoo.", "link": "https://extensions.gnome.org/extension/4145/workspace-isolated-app-switcher/", "shell_version_map": {"38": {"version": "1", "sha256": "0bcf8l1sb73f0ggvavkfjk10s67k7w4f3yr0s9inil6z8pbk7bsr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcC1Td2l0Y2hlciBtb2RpZmljYXRpb24gdGhhdCBzaG93cyBvbmx5IHRoZSBhcHBzIHRoYXQgYXJlIHJ1bm5pbmcgb24gdGhlIGN1cnJlbnQgd29ya3NwYWNlLiBGb3JrIG9mIEFwcC1Td2l0Y2hlciBDdXJyZW50IFdvcmtzcGFjZSBGaXJzdCBieSBmYXd0eXRvby4iLAogICJuYW1lIjogIldvcmtzcGFjZS1Jc29sYXRlZCBBcHAtU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAid29ya3NwYWNlLWlzb2xhdGVkX2FwcC1zd2l0Y2hlckBsZXN0aWJvdXJuZXMiLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "kubectl@infinicode.de", "name": "Kubectl Extension", "pname": "kubectl-extension", "description": "Quick panel access to kubernetes resources utilizing kubectl CLI", "link": "https://extensions.gnome.org/extension/4147/kubectl-extension/", "shell_version_map": {"38": {"version": "4", "sha256": "1lcmkyns6s4nv9ag9h80vs4cxrjxw907b3bxzqvs7ig9s1h41rqm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIHBhbmVsIGFjY2VzcyB0byBrdWJlcm5ldGVzIHJlc291cmNlcyB1dGlsaXppbmcga3ViZWN0bCBDTEkiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIkt1YmVjdGwgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMva3ViZWN0bC1leHRlbnNpb24iLAogICJ1dWlkIjogImt1YmVjdGxAaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "1lcmkyns6s4nv9ag9h80vs4cxrjxw907b3bxzqvs7ig9s1h41rqm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIHBhbmVsIGFjY2VzcyB0byBrdWJlcm5ldGVzIHJlc291cmNlcyB1dGlsaXppbmcga3ViZWN0bCBDTEkiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9sb2NhbC9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIkt1YmVjdGwgRXh0ZW5zaW9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NpbmF0aWMva3ViZWN0bC1leHRlbnNpb24iLAogICJ1dWlkIjogImt1YmVjdGxAaW5maW5pY29kZS5kZSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "alwaysshowworkspacethumbnails@alynx.one", "name": "Always Show Workspace Thumbnails", "pname": "always-show-workspace-thumbnails", "description": "Always show workspace thumbnails even there is only one workspace.", "link": "https://extensions.gnome.org/extension/4156/always-show-workspace-thumbnails/", "shell_version_map": {"40": {"version": "3", "sha256": "08z8ij9cj198g7cw3mr9spy1pirqhxkhmqwhg2vysql9bwhc3w1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHdvcmtzcGFjZSB0aHVtYm5haWxzIGV2ZW4gdGhlcmUgaXMgb25seSBvbmUgd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgV29ya3NwYWNlIFRodW1ibmFpbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FseW54WmhvdS9nbm9tZS1zaGVsbC1leHRlbnNpb24tYWx3YXlzLXNob3ctd29ya3NwYWNlLXRodW1ibmFpbHMvIiwKICAidXVpZCI6ICJhbHdheXNzaG93d29ya3NwYWNldGh1bWJuYWlsc0BhbHlueC5vbmUiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "08z8ij9cj198g7cw3mr9spy1pirqhxkhmqwhg2vysql9bwhc3w1q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBzaG93IHdvcmtzcGFjZSB0aHVtYm5haWxzIGV2ZW4gdGhlcmUgaXMgb25seSBvbmUgd29ya3NwYWNlLiIsCiAgIm5hbWUiOiAiQWx3YXlzIFNob3cgV29ya3NwYWNlIFRodW1ibmFpbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FseW54WmhvdS9nbm9tZS1zaGVsbC1leHRlbnNpb24tYWx3YXlzLXNob3ctd29ya3NwYWNlLXRodW1ibmFpbHMvIiwKICAidXVpZCI6ICJhbHdheXNzaG93d29ya3NwYWNldGh1bWJuYWlsc0BhbHlueC5vbmUiLAogICJ2ZXJzaW9uIjogMwp9"}}}
 , {"uuid": "gnome-ui-tune@itstime.tech", "name": "Gnome 4x UI Improvements", "pname": "gnome-40-ui-improvements", "description": "Tunes gnome 40/41's Overview UI to make it more usable.\n\nChanges:\n- Search textbox is hidden by default and shown only when user begins to type-to-search\n- Scale of workspaces' thumbnails increased 2x\n- Restores wallpaper on workspaces' thumbnails. No more gray background\n- Show workspaces' thumbnails even when there is only one workspace\n- Firefox's PIP (picture in picture) window is now displayed on the overview screen\n\nAll modifications can be disabled in the extension's settings.\n\nATTENTION!\nAfter extension update, gnome-shell restart is required:\nX11: Alt+F2 => r\nWayland: logout => login", "link": "https://extensions.gnome.org/extension/4158/gnome-40-ui-improvements/", "shell_version_map": {"40": {"version": "7", "sha256": "1da7vqkjjqix29x7j3zv6plkzs45jcfz89i5d9pfk1jsmfcph2k4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR1bmVzIGdub21lIDQwLzQxJ3MgT3ZlcnZpZXcgVUkgdG8gbWFrZSBpdCBtb3JlIHVzYWJsZS5cblxuQ2hhbmdlczpcbi0gU2VhcmNoIHRleHRib3ggaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYW5kIHNob3duIG9ubHkgd2hlbiB1c2VyIGJlZ2lucyB0byB0eXBlLXRvLXNlYXJjaFxuLSBTY2FsZSBvZiB3b3Jrc3BhY2VzJyB0aHVtYm5haWxzIGluY3JlYXNlZCAyeFxuLSBSZXN0b3JlcyB3YWxscGFwZXIgb24gd29ya3NwYWNlcycgdGh1bWJuYWlscy4gTm8gbW9yZSBncmF5IGJhY2tncm91bmRcbi0gU2hvdyB3b3Jrc3BhY2VzJyB0aHVtYm5haWxzIGV2ZW4gd2hlbiB0aGVyZSBpcyBvbmx5IG9uZSB3b3Jrc3BhY2Vcbi0gRmlyZWZveCdzIFBJUCAocGljdHVyZSBpbiBwaWN0dXJlKSB3aW5kb3cgaXMgbm93IGRpc3BsYXllZCBvbiB0aGUgb3ZlcnZpZXcgc2NyZWVuXG5cbkFsbCBtb2RpZmljYXRpb25zIGNhbiBiZSBkaXNhYmxlZCBpbiB0aGUgZXh0ZW5zaW9uJ3Mgc2V0dGluZ3MuXG5cbkFUVEVOVElPTiFcbkFmdGVyIGV4dGVuc2lvbiB1cGRhdGUsIGdub21lLXNoZWxsIHJlc3RhcnQgaXMgcmVxdWlyZWQ6XG5YMTE6IEFsdCtGMiA9PiByXG5XYXlsYW5kOiBsb2dvdXQgPT4gbG9naW4iLAogICJuYW1lIjogIkdub21lIDR4IFVJIEltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS11aS10dW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9heHhhcHkvZ25vbWUtdWktdHVuZSIsCiAgInV1aWQiOiAiZ25vbWUtdWktdHVuZUBpdHN0aW1lLnRlY2giLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "1da7vqkjjqix29x7j3zv6plkzs45jcfz89i5d9pfk1jsmfcph2k4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlR1bmVzIGdub21lIDQwLzQxJ3MgT3ZlcnZpZXcgVUkgdG8gbWFrZSBpdCBtb3JlIHVzYWJsZS5cblxuQ2hhbmdlczpcbi0gU2VhcmNoIHRleHRib3ggaXMgaGlkZGVuIGJ5IGRlZmF1bHQgYW5kIHNob3duIG9ubHkgd2hlbiB1c2VyIGJlZ2lucyB0byB0eXBlLXRvLXNlYXJjaFxuLSBTY2FsZSBvZiB3b3Jrc3BhY2VzJyB0aHVtYm5haWxzIGluY3JlYXNlZCAyeFxuLSBSZXN0b3JlcyB3YWxscGFwZXIgb24gd29ya3NwYWNlcycgdGh1bWJuYWlscy4gTm8gbW9yZSBncmF5IGJhY2tncm91bmRcbi0gU2hvdyB3b3Jrc3BhY2VzJyB0aHVtYm5haWxzIGV2ZW4gd2hlbiB0aGVyZSBpcyBvbmx5IG9uZSB3b3Jrc3BhY2Vcbi0gRmlyZWZveCdzIFBJUCAocGljdHVyZSBpbiBwaWN0dXJlKSB3aW5kb3cgaXMgbm93IGRpc3BsYXllZCBvbiB0aGUgb3ZlcnZpZXcgc2NyZWVuXG5cbkFsbCBtb2RpZmljYXRpb25zIGNhbiBiZSBkaXNhYmxlZCBpbiB0aGUgZXh0ZW5zaW9uJ3Mgc2V0dGluZ3MuXG5cbkFUVEVOVElPTiFcbkFmdGVyIGV4dGVuc2lvbiB1cGRhdGUsIGdub21lLXNoZWxsIHJlc3RhcnQgaXMgcmVxdWlyZWQ6XG5YMTE6IEFsdCtGMiA9PiByXG5XYXlsYW5kOiBsb2dvdXQgPT4gbG9naW4iLAogICJuYW1lIjogIkdub21lIDR4IFVJIEltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS11aS10dW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9heHhhcHkvZ25vbWUtdWktdHVuZSIsCiAgInV1aWQiOiAiZ25vbWUtdWktdHVuZUBpdHN0aW1lLnRlY2giLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"uuid": "monitor-window-switcher@thefungusrocket.com", "name": "Monitor window switcher", "pname": "monitor-window-switcher", "description": "Improves the window switcher on dual (or more) monitor setups", "link": "https://extensions.gnome.org/extension/4164/monitor-window-switcher/", "shell_version_map": {"38": {"version": "6", "sha256": "0pazjbi0aikpnvnfxyamqy70xi1xclydyxdkf908c6ybwnc5956z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZWR6ZXBwZWxpbi9tb25pdG9yLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAibW9uaXRvci13aW5kb3ctc3dpdGNoZXJAdGhlZnVuZ3Vzcm9ja2V0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "6", "sha256": "0pazjbi0aikpnvnfxyamqy70xi1xclydyxdkf908c6ybwnc5956z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZWR6ZXBwZWxpbi9tb25pdG9yLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAibW9uaXRvci13aW5kb3ctc3dpdGNoZXJAdGhlZnVuZ3Vzcm9ja2V0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "0pazjbi0aikpnvnfxyamqy70xi1xclydyxdkf908c6ybwnc5956z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmVzIHRoZSB3aW5kb3cgc3dpdGNoZXIgb24gZHVhbCAob3IgbW9yZSkgbW9uaXRvciBzZXR1cHMiLAogICJuYW1lIjogIk1vbml0b3Igd2luZG93IHN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZWR6ZXBwZWxpbi9tb25pdG9yLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAibW9uaXRvci13aW5kb3ctc3dpdGNoZXJAdGhlZnVuZ3Vzcm9ja2V0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
-, {"uuid": "custom-hot-corners-extended@G-dH.github.com", "name": "Custom Hot Corners - Extended", "pname": "custom-hot-corners-extended", "description": "Give a function to any corner or edge of your monitors. Mouse pointer pressure, clicks and scrolls over the corners/edges can trigger any of dozens of built-in actions or your own shell commands.\nThis extension is a big collection of actions that lets you navigate and control the Gnome Shell environment and opened windows and launch applications and scripts not only through the corners and edges of your monitors, but also by the custom keyboard shortcuts.\n\nRestart your Gnome Shell after each update of the extension to load new code, and reload this site to get rid of the error message, before you post a bug report.\nPlease report bugs/issues on GitHub linked below and add output from these two commands:\njournalctl /usr/bin/gnome-shell --since \"2 days ago\" | grep corners-extended\njournalctl /usr/bin/gjs --since \"2 days ago\" | grep corners-extended\n\nkeywords: overview, app grid, command, brightness, contrast, transparent, opacity, color effect, invert lightness, color tint, color blind 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": "10", "sha256": "0qji91s5d681vvf3iwzf59ckxyzn3yhn1ak0fkys0ivk7cid8lay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycy4gTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIGNvcm5lcnMvZWRnZXMgY2FuIHRyaWdnZXIgYW55IG9mIGRvemVucyBvZiBidWlsdC1pbiBhY3Rpb25zIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuVGhpcyBleHRlbnNpb24gaXMgYSBiaWcgY29sbGVjdGlvbiBvZiBhY3Rpb25zIHRoYXQgbGV0cyB5b3UgbmF2aWdhdGUgYW5kIGNvbnRyb2wgdGhlIEdub21lIFNoZWxsIGVudmlyb25tZW50IGFuZCBvcGVuZWQgd2luZG93cyBhbmQgbGF1bmNoIGFwcGxpY2F0aW9ucyBhbmQgc2NyaXB0cyBub3Qgb25seSB0aHJvdWdoIHRoZSBjb3JuZXJzIGFuZCBlZGdlcyBvZiB5b3VyIG1vbml0b3JzLCBidXQgYWxzbyBieSB0aGUgY3VzdG9tIGtleWJvYXJkIHNob3J0Y3V0cy5cblxuUmVzdGFydCB5b3VyIEdub21lIFNoZWxsIGFmdGVyIGVhY2ggdXBkYXRlIG9mIHRoZSBleHRlbnNpb24gdG8gbG9hZCBuZXcgY29kZSwgYW5kIHJlbG9hZCB0aGlzIHNpdGUgdG8gZ2V0IHJpZCBvZiB0aGUgZXJyb3IgbWVzc2FnZSwgYmVmb3JlIHlvdSBwb3N0IGEgYnVnIHJlcG9ydC5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gR2l0SHViIGxpbmtlZCBiZWxvdyBhbmQgYWRkIG91dHB1dCBmcm9tIHRoZXNlIHR3byBjb21tYW5kczpcbmpvdXJuYWxjdGwgL3Vzci9iaW4vZ25vbWUtc2hlbGwgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuam91cm5hbGN0bCAvdXNyL2Jpbi9nanMgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuXG5rZXl3b3Jkczogb3ZlcnZpZXcsIGFwcCBncmlkLCBjb21tYW5kLCBicmlnaHRuZXNzLCBjb250cmFzdCwgdHJhbnNwYXJlbnQsIG9wYWNpdHksIGNvbG9yIGVmZmVjdCwgaW52ZXJ0IGxpZ2h0bmVzcywgY29sb3IgdGludCwgY29sb3IgYmxpbmQgc2ltdWxhdGlvbiwgZGVzYXR1cmF0ZSwgbmlnaHQgbGlnaHRzLCBkYXJrIHRoZW1lLCB2b2x1bWUsIG11dGUsIG1hZ25pZmllciwgem9vbSwgc2NyZWVuIGtleWJvYXJkLCByZWFkZXIsIGxhcmdlIHRleHQsIGZvcmNlIGNsb3NlLCBraWxsIC05LCBzaG93IGRlc2t0b3AsIHJlb3JkZXIgd29ya3NwYWNlLCB3aW5kb3cgdGh1bWJuYWlsIC8gcHJldmlldywgbG9va2luZyBnbGFzcywgY3VzdG9tIG1lbnUsIHdpbmRvdywgd29ya3NwYWNlLCBzd2l0Y2hlciwgaGlkZSBwYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImN1c3RvbS1ob3QtY29ybmVycy1leHRlbmRlZCIsCiAgIm5hbWUiOiAiQ3VzdG9tIEhvdCBDb3JuZXJzIC0gRXh0ZW5kZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL2N1c3RvbS1ob3QtY29ybmVycy90cmVlL2dkaCIsCiAgInV1aWQiOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}, "40": {"version": "10", "sha256": "0qji91s5d681vvf3iwzf59ckxyzn3yhn1ak0fkys0ivk7cid8lay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycy4gTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIGNvcm5lcnMvZWRnZXMgY2FuIHRyaWdnZXIgYW55IG9mIGRvemVucyBvZiBidWlsdC1pbiBhY3Rpb25zIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuVGhpcyBleHRlbnNpb24gaXMgYSBiaWcgY29sbGVjdGlvbiBvZiBhY3Rpb25zIHRoYXQgbGV0cyB5b3UgbmF2aWdhdGUgYW5kIGNvbnRyb2wgdGhlIEdub21lIFNoZWxsIGVudmlyb25tZW50IGFuZCBvcGVuZWQgd2luZG93cyBhbmQgbGF1bmNoIGFwcGxpY2F0aW9ucyBhbmQgc2NyaXB0cyBub3Qgb25seSB0aHJvdWdoIHRoZSBjb3JuZXJzIGFuZCBlZGdlcyBvZiB5b3VyIG1vbml0b3JzLCBidXQgYWxzbyBieSB0aGUgY3VzdG9tIGtleWJvYXJkIHNob3J0Y3V0cy5cblxuUmVzdGFydCB5b3VyIEdub21lIFNoZWxsIGFmdGVyIGVhY2ggdXBkYXRlIG9mIHRoZSBleHRlbnNpb24gdG8gbG9hZCBuZXcgY29kZSwgYW5kIHJlbG9hZCB0aGlzIHNpdGUgdG8gZ2V0IHJpZCBvZiB0aGUgZXJyb3IgbWVzc2FnZSwgYmVmb3JlIHlvdSBwb3N0IGEgYnVnIHJlcG9ydC5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gR2l0SHViIGxpbmtlZCBiZWxvdyBhbmQgYWRkIG91dHB1dCBmcm9tIHRoZXNlIHR3byBjb21tYW5kczpcbmpvdXJuYWxjdGwgL3Vzci9iaW4vZ25vbWUtc2hlbGwgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuam91cm5hbGN0bCAvdXNyL2Jpbi9nanMgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuXG5rZXl3b3Jkczogb3ZlcnZpZXcsIGFwcCBncmlkLCBjb21tYW5kLCBicmlnaHRuZXNzLCBjb250cmFzdCwgdHJhbnNwYXJlbnQsIG9wYWNpdHksIGNvbG9yIGVmZmVjdCwgaW52ZXJ0IGxpZ2h0bmVzcywgY29sb3IgdGludCwgY29sb3IgYmxpbmQgc2ltdWxhdGlvbiwgZGVzYXR1cmF0ZSwgbmlnaHQgbGlnaHRzLCBkYXJrIHRoZW1lLCB2b2x1bWUsIG11dGUsIG1hZ25pZmllciwgem9vbSwgc2NyZWVuIGtleWJvYXJkLCByZWFkZXIsIGxhcmdlIHRleHQsIGZvcmNlIGNsb3NlLCBraWxsIC05LCBzaG93IGRlc2t0b3AsIHJlb3JkZXIgd29ya3NwYWNlLCB3aW5kb3cgdGh1bWJuYWlsIC8gcHJldmlldywgbG9va2luZyBnbGFzcywgY3VzdG9tIG1lbnUsIHdpbmRvdywgd29ya3NwYWNlLCBzd2l0Y2hlciwgaGlkZSBwYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImN1c3RvbS1ob3QtY29ybmVycy1leHRlbmRlZCIsCiAgIm5hbWUiOiAiQ3VzdG9tIEhvdCBDb3JuZXJzIC0gRXh0ZW5kZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL2N1c3RvbS1ob3QtY29ybmVycy90cmVlL2dkaCIsCiAgInV1aWQiOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}, "41": {"version": "10", "sha256": "0qji91s5d681vvf3iwzf59ckxyzn3yhn1ak0fkys0ivk7cid8lay", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycy4gTW91c2UgcG9pbnRlciBwcmVzc3VyZSwgY2xpY2tzIGFuZCBzY3JvbGxzIG92ZXIgdGhlIGNvcm5lcnMvZWRnZXMgY2FuIHRyaWdnZXIgYW55IG9mIGRvemVucyBvZiBidWlsdC1pbiBhY3Rpb25zIG9yIHlvdXIgb3duIHNoZWxsIGNvbW1hbmRzLlxuVGhpcyBleHRlbnNpb24gaXMgYSBiaWcgY29sbGVjdGlvbiBvZiBhY3Rpb25zIHRoYXQgbGV0cyB5b3UgbmF2aWdhdGUgYW5kIGNvbnRyb2wgdGhlIEdub21lIFNoZWxsIGVudmlyb25tZW50IGFuZCBvcGVuZWQgd2luZG93cyBhbmQgbGF1bmNoIGFwcGxpY2F0aW9ucyBhbmQgc2NyaXB0cyBub3Qgb25seSB0aHJvdWdoIHRoZSBjb3JuZXJzIGFuZCBlZGdlcyBvZiB5b3VyIG1vbml0b3JzLCBidXQgYWxzbyBieSB0aGUgY3VzdG9tIGtleWJvYXJkIHNob3J0Y3V0cy5cblxuUmVzdGFydCB5b3VyIEdub21lIFNoZWxsIGFmdGVyIGVhY2ggdXBkYXRlIG9mIHRoZSBleHRlbnNpb24gdG8gbG9hZCBuZXcgY29kZSwgYW5kIHJlbG9hZCB0aGlzIHNpdGUgdG8gZ2V0IHJpZCBvZiB0aGUgZXJyb3IgbWVzc2FnZSwgYmVmb3JlIHlvdSBwb3N0IGEgYnVnIHJlcG9ydC5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gR2l0SHViIGxpbmtlZCBiZWxvdyBhbmQgYWRkIG91dHB1dCBmcm9tIHRoZXNlIHR3byBjb21tYW5kczpcbmpvdXJuYWxjdGwgL3Vzci9iaW4vZ25vbWUtc2hlbGwgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuam91cm5hbGN0bCAvdXNyL2Jpbi9nanMgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuXG5rZXl3b3Jkczogb3ZlcnZpZXcsIGFwcCBncmlkLCBjb21tYW5kLCBicmlnaHRuZXNzLCBjb250cmFzdCwgdHJhbnNwYXJlbnQsIG9wYWNpdHksIGNvbG9yIGVmZmVjdCwgaW52ZXJ0IGxpZ2h0bmVzcywgY29sb3IgdGludCwgY29sb3IgYmxpbmQgc2ltdWxhdGlvbiwgZGVzYXR1cmF0ZSwgbmlnaHQgbGlnaHRzLCBkYXJrIHRoZW1lLCB2b2x1bWUsIG11dGUsIG1hZ25pZmllciwgem9vbSwgc2NyZWVuIGtleWJvYXJkLCByZWFkZXIsIGxhcmdlIHRleHQsIGZvcmNlIGNsb3NlLCBraWxsIC05LCBzaG93IGRlc2t0b3AsIHJlb3JkZXIgd29ya3NwYWNlLCB3aW5kb3cgdGh1bWJuYWlsIC8gcHJldmlldywgbG9va2luZyBnbGFzcywgY3VzdG9tIG1lbnUsIHdpbmRvdywgd29ya3NwYWNlLCBzd2l0Y2hlciwgaGlkZSBwYW5lbCIsCiAgImdldHRleHQtZG9tYWluIjogImN1c3RvbS1ob3QtY29ybmVycy1leHRlbmRlZCIsCiAgIm5hbWUiOiAiQ3VzdG9tIEhvdCBDb3JuZXJzIC0gRXh0ZW5kZWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HLWRIL2N1c3RvbS1ob3QtY29ybmVycy90cmVlL2dkaCIsCiAgInV1aWQiOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}}}
-, {"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"}, "40": {"version": "5", "sha256": "01y0kdmdg48s26yf8l2kfrfd8zwjg8jj797g196wr5afy9fn55ws", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLiIsCiAgIm5hbWUiOiAiSG9tZSBBc3Npc3RhbnQgRXh0ZW5zaW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhc3MtZGF0YSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nZW9waDkvaGFzcy1nc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJoYXNzLWdzaGVsbEBnZW9waDktb24tZ2l0aHViIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "custom-hot-corners-extended@G-dH.github.com", "name": "Custom Hot Corners - Extended", "pname": "custom-hot-corners-extended", "description": "Give a function to any corner or edge of your monitors and expand your keyboard's capabilities. Mouse pointer pressure, clicks and scrolls over the corners/edges or keyboard shortcuts can trigger any of dozens of built-in actions or your own shell commands.\nThis extension is a big collection of actions that lets you navigate and control the Gnome Shell environment and windows and launch applications and scripts not only through the corners and edges of your monitors, but also using the custom keyboard shortcuts.\nSignificant part of available actions are visual adjustments (contrast, brightness, opacity) and color filters (red, green, desaturate, lightness and color inversions) , including correction filters for colorblind users and cb simulation filters for developers.\n\nRestart your Gnome Shell after each update of the extension to load new code, and reload this site to get rid of the error message, before you post a bug report.\nPlease report bugs/issues on GitHub linked below and add output from these two commands:\njournalctl /usr/bin/gnome-shell --since \"2 days ago\" | grep corners-extended\njournalctl /usr/bin/gjs --since \"2 days ago\" | grep corners-extended\n\nkeywords: 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": "11", "sha256": "101rw54gg991bmr7ggkl5km4r5h0bbjdh9861kji84dl4s9s9bf0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQncyBjYXBhYmlsaXRpZXMuIE1vdXNlIHBvaW50ZXIgcHJlc3N1cmUsIGNsaWNrcyBhbmQgc2Nyb2xscyBvdmVyIHRoZSBjb3JuZXJzL2VkZ2VzIG9yIGtleWJvYXJkIHNob3J0Y3V0cyBjYW4gdHJpZ2dlciBhbnkgb2YgZG96ZW5zIG9mIGJ1aWx0LWluIGFjdGlvbnMgb3IgeW91ciBvd24gc2hlbGwgY29tbWFuZHMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGJpZyBjb2xsZWN0aW9uIG9mIGFjdGlvbnMgdGhhdCBsZXRzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB0aGUgR25vbWUgU2hlbGwgZW52aXJvbm1lbnQgYW5kIHdpbmRvd3MgYW5kIGxhdW5jaCBhcHBsaWNhdGlvbnMgYW5kIHNjcmlwdHMgbm90IG9ubHkgdGhyb3VnaCB0aGUgY29ybmVycyBhbmQgZWRnZXMgb2YgeW91ciBtb25pdG9ycywgYnV0IGFsc28gdXNpbmcgdGhlIGN1c3RvbSBrZXlib2FyZCBzaG9ydGN1dHMuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy5cblxuUmVzdGFydCB5b3VyIEdub21lIFNoZWxsIGFmdGVyIGVhY2ggdXBkYXRlIG9mIHRoZSBleHRlbnNpb24gdG8gbG9hZCBuZXcgY29kZSwgYW5kIHJlbG9hZCB0aGlzIHNpdGUgdG8gZ2V0IHJpZCBvZiB0aGUgZXJyb3IgbWVzc2FnZSwgYmVmb3JlIHlvdSBwb3N0IGEgYnVnIHJlcG9ydC5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gR2l0SHViIGxpbmtlZCBiZWxvdyBhbmQgYWRkIG91dHB1dCBmcm9tIHRoZXNlIHR3byBjb21tYW5kczpcbmpvdXJuYWxjdGwgL3Vzci9iaW4vZ25vbWUtc2hlbGwgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuam91cm5hbGN0bCAvdXNyL2Jpbi9nanMgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuXG5rZXl3b3Jkczogb3ZlcnZpZXcsIGFwcCBncmlkLCBjb21tYW5kLCBicmlnaHRuZXNzLCBjb250cmFzdCwgdHJhbnNwYXJlbnQsIG9wYWNpdHksIGNvbG9yIGVmZmVjdCwgaW52ZXJ0IGxpZ2h0bmVzcywgY29sb3IgdGludCwgY29sb3IgYmxpbmQgZmlsdGVyLCBzaW11bGF0aW9uLCBkZXNhdHVyYXRlLCBuaWdodCBsaWdodHMsIGRhcmsgdGhlbWUsIHZvbHVtZSwgbXV0ZSwgbWFnbmlmaWVyLCB6b29tLCBzY3JlZW4ga2V5Ym9hcmQsIHJlYWRlciwgbGFyZ2UgdGV4dCwgZm9yY2UgY2xvc2UsIGtpbGwgLTksIHNob3cgZGVza3RvcCwgcmVvcmRlciB3b3Jrc3BhY2UsIHdpbmRvdyB0aHVtYm5haWwgLyBwcmV2aWV3LCBsb29raW5nIGdsYXNzLCBjdXN0b20gbWVudSwgd2luZG93LCB3b3Jrc3BhY2UsIHN3aXRjaGVyLCBoaWRlIHBhbmVsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzL3RyZWUvZ2RoIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "101rw54gg991bmr7ggkl5km4r5h0bbjdh9861kji84dl4s9s9bf0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQncyBjYXBhYmlsaXRpZXMuIE1vdXNlIHBvaW50ZXIgcHJlc3N1cmUsIGNsaWNrcyBhbmQgc2Nyb2xscyBvdmVyIHRoZSBjb3JuZXJzL2VkZ2VzIG9yIGtleWJvYXJkIHNob3J0Y3V0cyBjYW4gdHJpZ2dlciBhbnkgb2YgZG96ZW5zIG9mIGJ1aWx0LWluIGFjdGlvbnMgb3IgeW91ciBvd24gc2hlbGwgY29tbWFuZHMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGJpZyBjb2xsZWN0aW9uIG9mIGFjdGlvbnMgdGhhdCBsZXRzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB0aGUgR25vbWUgU2hlbGwgZW52aXJvbm1lbnQgYW5kIHdpbmRvd3MgYW5kIGxhdW5jaCBhcHBsaWNhdGlvbnMgYW5kIHNjcmlwdHMgbm90IG9ubHkgdGhyb3VnaCB0aGUgY29ybmVycyBhbmQgZWRnZXMgb2YgeW91ciBtb25pdG9ycywgYnV0IGFsc28gdXNpbmcgdGhlIGN1c3RvbSBrZXlib2FyZCBzaG9ydGN1dHMuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy5cblxuUmVzdGFydCB5b3VyIEdub21lIFNoZWxsIGFmdGVyIGVhY2ggdXBkYXRlIG9mIHRoZSBleHRlbnNpb24gdG8gbG9hZCBuZXcgY29kZSwgYW5kIHJlbG9hZCB0aGlzIHNpdGUgdG8gZ2V0IHJpZCBvZiB0aGUgZXJyb3IgbWVzc2FnZSwgYmVmb3JlIHlvdSBwb3N0IGEgYnVnIHJlcG9ydC5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gR2l0SHViIGxpbmtlZCBiZWxvdyBhbmQgYWRkIG91dHB1dCBmcm9tIHRoZXNlIHR3byBjb21tYW5kczpcbmpvdXJuYWxjdGwgL3Vzci9iaW4vZ25vbWUtc2hlbGwgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuam91cm5hbGN0bCAvdXNyL2Jpbi9nanMgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuXG5rZXl3b3Jkczogb3ZlcnZpZXcsIGFwcCBncmlkLCBjb21tYW5kLCBicmlnaHRuZXNzLCBjb250cmFzdCwgdHJhbnNwYXJlbnQsIG9wYWNpdHksIGNvbG9yIGVmZmVjdCwgaW52ZXJ0IGxpZ2h0bmVzcywgY29sb3IgdGludCwgY29sb3IgYmxpbmQgZmlsdGVyLCBzaW11bGF0aW9uLCBkZXNhdHVyYXRlLCBuaWdodCBsaWdodHMsIGRhcmsgdGhlbWUsIHZvbHVtZSwgbXV0ZSwgbWFnbmlmaWVyLCB6b29tLCBzY3JlZW4ga2V5Ym9hcmQsIHJlYWRlciwgbGFyZ2UgdGV4dCwgZm9yY2UgY2xvc2UsIGtpbGwgLTksIHNob3cgZGVza3RvcCwgcmVvcmRlciB3b3Jrc3BhY2UsIHdpbmRvdyB0aHVtYm5haWwgLyBwcmV2aWV3LCBsb29raW5nIGdsYXNzLCBjdXN0b20gbWVudSwgd2luZG93LCB3b3Jrc3BhY2UsIHN3aXRjaGVyLCBoaWRlIHBhbmVsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzL3RyZWUvZ2RoIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}, "41": {"version": "11", "sha256": "101rw54gg991bmr7ggkl5km4r5h0bbjdh9861kji84dl4s9s9bf0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdpdmUgYSBmdW5jdGlvbiB0byBhbnkgY29ybmVyIG9yIGVkZ2Ugb2YgeW91ciBtb25pdG9ycyBhbmQgZXhwYW5kIHlvdXIga2V5Ym9hcmQncyBjYXBhYmlsaXRpZXMuIE1vdXNlIHBvaW50ZXIgcHJlc3N1cmUsIGNsaWNrcyBhbmQgc2Nyb2xscyBvdmVyIHRoZSBjb3JuZXJzL2VkZ2VzIG9yIGtleWJvYXJkIHNob3J0Y3V0cyBjYW4gdHJpZ2dlciBhbnkgb2YgZG96ZW5zIG9mIGJ1aWx0LWluIGFjdGlvbnMgb3IgeW91ciBvd24gc2hlbGwgY29tbWFuZHMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGJpZyBjb2xsZWN0aW9uIG9mIGFjdGlvbnMgdGhhdCBsZXRzIHlvdSBuYXZpZ2F0ZSBhbmQgY29udHJvbCB0aGUgR25vbWUgU2hlbGwgZW52aXJvbm1lbnQgYW5kIHdpbmRvd3MgYW5kIGxhdW5jaCBhcHBsaWNhdGlvbnMgYW5kIHNjcmlwdHMgbm90IG9ubHkgdGhyb3VnaCB0aGUgY29ybmVycyBhbmQgZWRnZXMgb2YgeW91ciBtb25pdG9ycywgYnV0IGFsc28gdXNpbmcgdGhlIGN1c3RvbSBrZXlib2FyZCBzaG9ydGN1dHMuXG5TaWduaWZpY2FudCBwYXJ0IG9mIGF2YWlsYWJsZSBhY3Rpb25zIGFyZSB2aXN1YWwgYWRqdXN0bWVudHMgKGNvbnRyYXN0LCBicmlnaHRuZXNzLCBvcGFjaXR5KSBhbmQgY29sb3IgZmlsdGVycyAocmVkLCBncmVlbiwgZGVzYXR1cmF0ZSwgbGlnaHRuZXNzIGFuZCBjb2xvciBpbnZlcnNpb25zKSAsIGluY2x1ZGluZyBjb3JyZWN0aW9uIGZpbHRlcnMgZm9yIGNvbG9yYmxpbmQgdXNlcnMgYW5kIGNiIHNpbXVsYXRpb24gZmlsdGVycyBmb3IgZGV2ZWxvcGVycy5cblxuUmVzdGFydCB5b3VyIEdub21lIFNoZWxsIGFmdGVyIGVhY2ggdXBkYXRlIG9mIHRoZSBleHRlbnNpb24gdG8gbG9hZCBuZXcgY29kZSwgYW5kIHJlbG9hZCB0aGlzIHNpdGUgdG8gZ2V0IHJpZCBvZiB0aGUgZXJyb3IgbWVzc2FnZSwgYmVmb3JlIHlvdSBwb3N0IGEgYnVnIHJlcG9ydC5cblBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gR2l0SHViIGxpbmtlZCBiZWxvdyBhbmQgYWRkIG91dHB1dCBmcm9tIHRoZXNlIHR3byBjb21tYW5kczpcbmpvdXJuYWxjdGwgL3Vzci9iaW4vZ25vbWUtc2hlbGwgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuam91cm5hbGN0bCAvdXNyL2Jpbi9nanMgLS1zaW5jZSBcIjIgZGF5cyBhZ29cIiB8IGdyZXAgY29ybmVycy1leHRlbmRlZFxuXG5rZXl3b3Jkczogb3ZlcnZpZXcsIGFwcCBncmlkLCBjb21tYW5kLCBicmlnaHRuZXNzLCBjb250cmFzdCwgdHJhbnNwYXJlbnQsIG9wYWNpdHksIGNvbG9yIGVmZmVjdCwgaW52ZXJ0IGxpZ2h0bmVzcywgY29sb3IgdGludCwgY29sb3IgYmxpbmQgZmlsdGVyLCBzaW11bGF0aW9uLCBkZXNhdHVyYXRlLCBuaWdodCBsaWdodHMsIGRhcmsgdGhlbWUsIHZvbHVtZSwgbXV0ZSwgbWFnbmlmaWVyLCB6b29tLCBzY3JlZW4ga2V5Ym9hcmQsIHJlYWRlciwgbGFyZ2UgdGV4dCwgZm9yY2UgY2xvc2UsIGtpbGwgLTksIHNob3cgZGVza3RvcCwgcmVvcmRlciB3b3Jrc3BhY2UsIHdpbmRvdyB0aHVtYm5haWwgLyBwcmV2aWV3LCBsb29raW5nIGdsYXNzLCBjdXN0b20gbWVudSwgd2luZG93LCB3b3Jrc3BhY2UsIHN3aXRjaGVyLCBoaWRlIHBhbmVsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY3VzdG9tLWhvdC1jb3JuZXJzLWV4dGVuZGVkIiwKICAibmFtZSI6ICJDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvY3VzdG9tLWhvdC1jb3JuZXJzL3RyZWUvZ2RoIiwKICAidXVpZCI6ICJjdXN0b20taG90LWNvcm5lcnMtZXh0ZW5kZWRARy1kSC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}}}
+, {"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"}, "40": {"version": "6", "sha256": "1wajx49ci9146wi10z2nvhgc1iw7mfqp8a8z5gr708f90vfy93lc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLiIsCiAgIm5hbWUiOiAiSG9tZSBBc3Npc3RhbnQgRXh0ZW5zaW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhc3MtZGF0YSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VvcGg5L2hhc3MtZ3NoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiaGFzcy1nc2hlbGxAZ2VvcGg5LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "1wajx49ci9146wi10z2nvhgc1iw7mfqp8a8z5gr708f90vfy93lc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgSG9tZSBBc3Npc3RhbnQuIENoZWNrIHRoZSBSRUFETUUgb24gZ2l0aHViIGZvciBhZGRpdGlvbmFsIGhlbHAhXG5cbk1haW4gcG9pbnRzOlxuLSBZb3UgbmVlZCB0byBwcm92aWRlIHRoZSB1cmwgb2YgeW91ciBoYXNzLCBhIGxvbmcgbGl2ZSBhY2Nlc3MgdG9rZW4gb2J0YWluZWQgZnJvbSB5b3VyIHByb2ZpbGUgcGFnZSAob24geW91ciBoYXNzIHdlYiBpbnN0YW5jZSkgYW5kIHRoZSBlbnRpdHkgaWRzIG9mIHRoZSBlbnRpdGllcyB5b3Ugd2FudCB0byBoYXZlIGFzIHRvZ2dsYWJsZS5cbi0gSW4gb3JkZXIgdG8gYWRkIHNvbWUgbG9jYWwgdGVtcGVyYXR1cmUvaHVtaWRpdHkgc2Vuc29yLCB5b3UgbWF5IGFsc28gcHJvdmlkZSBhIHRlbXBlcmF0dXJlIGFuZC9vciBhIGh1bWlkaXR5IGVudGl0eSBpZCAod2hpY2ggc2hvdWxkIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGlkcyBvZiB5b3VyIGhhc3MgaW5zdGFuY2UpLiIsCiAgIm5hbWUiOiAiSG9tZSBBc3Npc3RhbnQgRXh0ZW5zaW9uIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmhhc3MtZGF0YSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VvcGg5L2hhc3MtZ3NoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiaGFzcy1nc2hlbGxAZ2VvcGg5LW9uLWdpdGh1YiIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"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": "5", "sha256": "12msvdg82rj34v338vsxqimy1p35isvl4db8k1sjq23ln1b6jak2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGx5IHRyYW5zcGFyZW50IHRvcGJhciwgcGFpcnMgd2l0aCB0aGUgemhhbmdoYWkgdHJhbnNwYXJlbnQgdG9wIGJhciBleHRlbnNpb24gdG8gbWFrZSBiYXIgb3BhcXVlIHdoZW4gd2luZG93IGlzIG1heGltaXplZCIsCiAgIm5hbWUiOiAiQ2xlYXIgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3VwZXJ0ZXJyYW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsZWFyLXRvcC1iYXIiLAogICJ1dWlkIjogImNsZWFyLXRvcC1iYXJAc3VwZXJ0ZXJyYW4ubmV0IiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "12msvdg82rj34v338vsxqimy1p35isvl4db8k1sjq23ln1b6jak2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGx5IHRyYW5zcGFyZW50IHRvcGJhciwgcGFpcnMgd2l0aCB0aGUgemhhbmdoYWkgdHJhbnNwYXJlbnQgdG9wIGJhciBleHRlbnNpb24gdG8gbWFrZSBiYXIgb3BhcXVlIHdoZW4gd2luZG93IGlzIG1heGltaXplZCIsCiAgIm5hbWUiOiAiQ2xlYXIgVG9wIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3VwZXJ0ZXJyYW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsZWFyLXRvcC1iYXIiLAogICJ1dWlkIjogImNsZWFyLXRvcC1iYXJAc3VwZXJ0ZXJyYW4ubmV0IiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "systemd-manager@hardpixel.eu", "name": "Systemd Manager", "pname": "systemd-manager", "description": "Toggle systemd services on/off from a popup menu in the top gnome panel. Can be used to start services like apache2, mysql, postgres. It uses `pkexec' to run `sytemctl'. If you want to start services without entering a password you have to polkit policy file. An example policy file can be found in the github repository.", "link": "https://extensions.gnome.org/extension/4174/systemd-manager/", "shell_version_map": {"38": {"version": "5", "sha256": "1df0xz4m2ysqk3bk7kqjjh04qwsffwc04jgihmid4whd3n2kglk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBzeXN0ZW1kIHNlcnZpY2VzIG9uL29mZiBmcm9tIGEgcG9wdXAgbWVudSBpbiB0aGUgdG9wIGdub21lIHBhbmVsLiBDYW4gYmUgdXNlZCB0byBzdGFydCBzZXJ2aWNlcyBsaWtlIGFwYWNoZTIsIG15c3FsLCBwb3N0Z3Jlcy4gSXQgdXNlcyBgcGtleGVjJyB0byBydW4gYHN5dGVtY3RsJy4gSWYgeW91IHdhbnQgdG8gc3RhcnQgc2VydmljZXMgd2l0aG91dCBlbnRlcmluZyBhIHBhc3N3b3JkIHlvdSBoYXZlIHRvIHBvbGtpdCBwb2xpY3kgZmlsZS4gQW4gZXhhbXBsZSBwb2xpY3kgZmlsZSBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdGh1YiByZXBvc2l0b3J5LiIsCiAgImdldHRleHQtZG9tYWluIjogInN5c3RlbWQtbWFuYWdlciIsCiAgIm5hbWUiOiAiU3lzdGVtZCBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbWQtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3N5c3RlbWQtbWFuYWdlciIsCiAgInV1aWQiOiAic3lzdGVtZC1tYW5hZ2VyQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "1df0xz4m2ysqk3bk7kqjjh04qwsffwc04jgihmid4whd3n2kglk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBzeXN0ZW1kIHNlcnZpY2VzIG9uL29mZiBmcm9tIGEgcG9wdXAgbWVudSBpbiB0aGUgdG9wIGdub21lIHBhbmVsLiBDYW4gYmUgdXNlZCB0byBzdGFydCBzZXJ2aWNlcyBsaWtlIGFwYWNoZTIsIG15c3FsLCBwb3N0Z3Jlcy4gSXQgdXNlcyBgcGtleGVjJyB0byBydW4gYHN5dGVtY3RsJy4gSWYgeW91IHdhbnQgdG8gc3RhcnQgc2VydmljZXMgd2l0aG91dCBlbnRlcmluZyBhIHBhc3N3b3JkIHlvdSBoYXZlIHRvIHBvbGtpdCBwb2xpY3kgZmlsZS4gQW4gZXhhbXBsZSBwb2xpY3kgZmlsZSBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdGh1YiByZXBvc2l0b3J5LiIsCiAgImdldHRleHQtZG9tYWluIjogInN5c3RlbWQtbWFuYWdlciIsCiAgIm5hbWUiOiAiU3lzdGVtZCBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbWQtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3N5c3RlbWQtbWFuYWdlciIsCiAgInV1aWQiOiAic3lzdGVtZC1tYW5hZ2VyQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1df0xz4m2ysqk3bk7kqjjh04qwsffwc04jgihmid4whd3n2kglk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBzeXN0ZW1kIHNlcnZpY2VzIG9uL29mZiBmcm9tIGEgcG9wdXAgbWVudSBpbiB0aGUgdG9wIGdub21lIHBhbmVsLiBDYW4gYmUgdXNlZCB0byBzdGFydCBzZXJ2aWNlcyBsaWtlIGFwYWNoZTIsIG15c3FsLCBwb3N0Z3Jlcy4gSXQgdXNlcyBgcGtleGVjJyB0byBydW4gYHN5dGVtY3RsJy4gSWYgeW91IHdhbnQgdG8gc3RhcnQgc2VydmljZXMgd2l0aG91dCBlbnRlcmluZyBhIHBhc3N3b3JkIHlvdSBoYXZlIHRvIHBvbGtpdCBwb2xpY3kgZmlsZS4gQW4gZXhhbXBsZSBwb2xpY3kgZmlsZSBjYW4gYmUgZm91bmQgaW4gdGhlIGdpdGh1YiByZXBvc2l0b3J5LiIsCiAgImdldHRleHQtZG9tYWluIjogInN5c3RlbWQtbWFuYWdlciIsCiAgIm5hbWUiOiAiU3lzdGVtZCBNYW5hZ2VyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbWQtbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFyZHBpeGVsL3N5c3RlbWQtbWFuYWdlciIsCiAgInV1aWQiOiAic3lzdGVtZC1tYW5hZ2VyQGhhcmRwaXhlbC5ldSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "auto-activities@acedron.github.io", "name": "Auto Activities", "pname": "auto-activities", "description": "Show activities overview when there are no windows, or hide it when there are new windows.", "link": "https://extensions.gnome.org/extension/4179/auto-activities/", "shell_version_map": {"40": {"version": "13", "sha256": "17w8rwn9y8li20gq3xnxialw17ay5mbpwz80hsrx3mprn1jlzgsg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYWN0aXZpdGllcyBvdmVydmlldyB3aGVuIHRoZXJlIGFyZSBubyB3aW5kb3dzLCBvciBoaWRlIGl0IHdoZW4gdGhlcmUgYXJlIG5ldyB3aW5kb3dzLiIsCiAgImdldHRleHQtZG9tYWluIjogImF1dG8tYWN0aXZpdGllcyIsCiAgIm5hbWUiOiAiQXV0byBBY3Rpdml0aWVzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFjZWRyb25zQHlhaG9vLmNvLmpwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hY2Vkcm9uL2F1dG8tYWN0aXZpdGllcyIsCiAgInV1aWQiOiAiYXV0by1hY3Rpdml0aWVzQGFjZWRyb24uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEzCn0="}, "41": {"version": "13", "sha256": "17w8rwn9y8li20gq3xnxialw17ay5mbpwz80hsrx3mprn1jlzgsg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYWN0aXZpdGllcyBvdmVydmlldyB3aGVuIHRoZXJlIGFyZSBubyB3aW5kb3dzLCBvciBoaWRlIGl0IHdoZW4gdGhlcmUgYXJlIG5ldyB3aW5kb3dzLiIsCiAgImdldHRleHQtZG9tYWluIjogImF1dG8tYWN0aXZpdGllcyIsCiAgIm5hbWUiOiAiQXV0byBBY3Rpdml0aWVzIiwKICAib3JpZ2luYWwtYXV0aG9yIjogImFjZWRyb25zQHlhaG9vLmNvLmpwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hY2Vkcm9uL2F1dG8tYWN0aXZpdGllcyIsCiAgInV1aWQiOiAiYXV0by1hY3Rpdml0aWVzQGFjZWRyb24uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
@@ -483,7 +488,7 @@
 , {"uuid": "better-osd@hllvc", "name": "Better OSD - Gnome 40", "pname": "better-osd-gnome-40", "description": "Customize your OSD popups. Move, resize, set delay and transparency!", "link": "https://extensions.gnome.org/extension/4231/better-osd-gnome-40/", "shell_version_map": {"40": {"version": "5", "sha256": "0z24civcgjsif2gyxkjamzx2nlxxzfnkg4fwip4jbxy5v3d090nq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIE9TRCBwb3B1cHMuIE1vdmUsIHJlc2l6ZSwgc2V0IGRlbGF5IGFuZCB0cmFuc3BhcmVuY3khIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmV0dGVyLW9zZCIsCiAgIm5hbWUiOiAiQmV0dGVyIE9TRCAtIEdub21lIDQwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9obGx2Yy9iZXR0ZXItb3NkIiwKICAidXVpZCI6ICJiZXR0ZXItb3NkQGhsbHZjIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "0z24civcgjsif2gyxkjamzx2nlxxzfnkg4fwip4jbxy5v3d090nq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSB5b3VyIE9TRCBwb3B1cHMuIE1vdmUsIHJlc2l6ZSwgc2V0IGRlbGF5IGFuZCB0cmFuc3BhcmVuY3khIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYmV0dGVyLW9zZCIsCiAgIm5hbWUiOiAiQmV0dGVyIE9TRCAtIEdub21lIDQwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9obGx2Yy9iZXR0ZXItb3NkIiwKICAidXVpZCI6ICJiZXR0ZXItb3NkQGhsbHZjIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "arbttstats@gervasioperez.ar", "name": "Arbtt stats", "pname": "arbtt-stats", "description": "Show simple arbtt stats on the panel\n*** This extension requires arbtt running and configured", "link": "https://extensions.gnome.org/extension/4234/arbtt-stats/", "shell_version_map": {"38": {"version": "9", "sha256": "0x3sxg8dv9gfq1f4m9bk4rb3395rdcf0srijxqphpwjmm0nsizql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc2ltcGxlIGFyYnR0IHN0YXRzIG9uIHRoZSBwYW5lbFxuKioqIFRoaXMgZXh0ZW5zaW9uIHJlcXVpcmVzIGFyYnR0IHJ1bm5pbmcgYW5kIGNvbmZpZ3VyZWQiLAogICJuYW1lIjogIkFyYnR0IHN0YXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NoZXJ3b29kaW5jL2FyYnR0LXN0YXRzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXJidHRzdGF0c0BnZXJ2YXNpb3BlcmV6LmFyIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "0x3sxg8dv9gfq1f4m9bk4rb3395rdcf0srijxqphpwjmm0nsizql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc2ltcGxlIGFyYnR0IHN0YXRzIG9uIHRoZSBwYW5lbFxuKioqIFRoaXMgZXh0ZW5zaW9uIHJlcXVpcmVzIGFyYnR0IHJ1bm5pbmcgYW5kIGNvbmZpZ3VyZWQiLAogICJuYW1lIjogIkFyYnR0IHN0YXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NoZXJ3b29kaW5jL2FyYnR0LXN0YXRzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXJidHRzdGF0c0BnZXJ2YXNpb3BlcmV6LmFyIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
 , {"uuid": "blur-me@nunchucks", "name": "Blur Me", "pname": "blur-me", "description": "Blur: Applications | Top Panel | Overview | Dash | More!\n\n\nCredit where it's due: Overview and dash blur are based on blur my shell", "link": "https://extensions.gnome.org/extension/4236/blur-me/", "shell_version_map": {"40": {"version": "11", "sha256": "13r77isf7ih0sklnms7blsk9a7av05d21rmjrnyr8jisr512991k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdXI6IEFwcGxpY2F0aW9ucyB8IFRvcCBQYW5lbCB8IE92ZXJ2aWV3IHwgRGFzaCB8IE1vcmUhXG5cblxuQ3JlZGl0IHdoZXJlIGl0J3MgZHVlOiBPdmVydmlldyBhbmQgZGFzaCBibHVyIGFyZSBiYXNlZCBvbiBibHVyIG15IHNoZWxsIiwKICAibmFtZSI6ICJCbHVyIE1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NraXNzYW5lL2JsdXItbWUiLAogICJ1dWlkIjogImJsdXItbWVAbnVuY2h1Y2tzIiwKICAidmVyc2lvbiI6IDExCn0="}}}
-, {"uuid": "gestureImprovements@gestures", "name": "Gesture Improvements", "pname": "gesture-improvements", "description": "Improve touchpad gestures for Wayland/X11\n\nThis extension adds following features:\n\n• Switch windows from current workspace using 3-finger horizontal swipe\n• Cyclic gestures between Desktop/Overview/AppGrid using 4 vertical swipe\n• Switch app-pages using 3-finger swipe gesture on AppGrid\n• Unmaximize/maximize/fullscreen/half-tiling using 3-finger vertical & horizontal gesture\n• Optional minimize a window gesture\n• Override 3-finger gesture with 4-finger for switching workspace\n• Configure speed of gestures\n• Support for X11\n   \nOn X11, you need to install https://github.com/harshadgavali/gnome-x11-gesture-daemon\n\nReport any bugs/requests on GitHub (link directly below)\n", "link": "https://extensions.gnome.org/extension/4245/gesture-improvements/", "shell_version_map": {"40": {"version": "17", "sha256": "1ir33hm2wl26pqhpdgw3vb7bws16x6wlqy68lbv6w4xq0aq1hmvs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdG91Y2hwYWQgZ2VzdHVyZXMgZm9yIFdheWxhbmQvWDExXG5cblRoaXMgZXh0ZW5zaW9uIGFkZHMgZm9sbG93aW5nIGZlYXR1cmVzOlxuXG5cdTIwMjIgU3dpdGNoIHdpbmRvd3MgZnJvbSBjdXJyZW50IHdvcmtzcGFjZSB1c2luZyAzLWZpbmdlciBob3Jpem9udGFsIHN3aXBlXG5cdTIwMjIgQ3ljbGljIGdlc3R1cmVzIGJldHdlZW4gRGVza3RvcC9PdmVydmlldy9BcHBHcmlkIHVzaW5nIDQgdmVydGljYWwgc3dpcGVcblx1MjAyMiBTd2l0Y2ggYXBwLXBhZ2VzIHVzaW5nIDMtZmluZ2VyIHN3aXBlIGdlc3R1cmUgb24gQXBwR3JpZFxuXHUyMDIyIFVubWF4aW1pemUvbWF4aW1pemUvZnVsbHNjcmVlbi9oYWxmLXRpbGluZyB1c2luZyAzLWZpbmdlciB2ZXJ0aWNhbCAmIGhvcml6b250YWwgZ2VzdHVyZVxuXHUyMDIyIE9wdGlvbmFsIG1pbmltaXplIGEgd2luZG93IGdlc3R1cmVcblx1MjAyMiBPdmVycmlkZSAzLWZpbmdlciBnZXN0dXJlIHdpdGggNC1maW5nZXIgZm9yIHN3aXRjaGluZyB3b3Jrc3BhY2Vcblx1MjAyMiBDb25maWd1cmUgc3BlZWQgb2YgZ2VzdHVyZXNcblx1MjAyMiBTdXBwb3J0IGZvciBYMTFcbiAgIFxuT24gWDExLCB5b3UgbmVlZCB0byBpbnN0YWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLXgxMS1nZXN0dXJlLWRhZW1vblxuXG5SZXBvcnQgYW55IGJ1Z3MvcmVxdWVzdHMgb24gR2l0SHViIChsaW5rIGRpcmVjdGx5IGJlbG93KVxuIiwKICAibmFtZSI6ICJHZXN0dXJlIEltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nZXN0dXJlSW1wcm92ZW1lbnRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLWdlc3R1cmUtaW1wcm92ZW1lbnRzIiwKICAidXVpZCI6ICJnZXN0dXJlSW1wcm92ZW1lbnRzQGdlc3R1cmVzIiwKICAidmVyc2lvbiI6IDE3Cn0="}, "41": {"version": "17", "sha256": "1ir33hm2wl26pqhpdgw3vb7bws16x6wlqy68lbv6w4xq0aq1hmvs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdG91Y2hwYWQgZ2VzdHVyZXMgZm9yIFdheWxhbmQvWDExXG5cblRoaXMgZXh0ZW5zaW9uIGFkZHMgZm9sbG93aW5nIGZlYXR1cmVzOlxuXG5cdTIwMjIgU3dpdGNoIHdpbmRvd3MgZnJvbSBjdXJyZW50IHdvcmtzcGFjZSB1c2luZyAzLWZpbmdlciBob3Jpem9udGFsIHN3aXBlXG5cdTIwMjIgQ3ljbGljIGdlc3R1cmVzIGJldHdlZW4gRGVza3RvcC9PdmVydmlldy9BcHBHcmlkIHVzaW5nIDQgdmVydGljYWwgc3dpcGVcblx1MjAyMiBTd2l0Y2ggYXBwLXBhZ2VzIHVzaW5nIDMtZmluZ2VyIHN3aXBlIGdlc3R1cmUgb24gQXBwR3JpZFxuXHUyMDIyIFVubWF4aW1pemUvbWF4aW1pemUvZnVsbHNjcmVlbi9oYWxmLXRpbGluZyB1c2luZyAzLWZpbmdlciB2ZXJ0aWNhbCAmIGhvcml6b250YWwgZ2VzdHVyZVxuXHUyMDIyIE9wdGlvbmFsIG1pbmltaXplIGEgd2luZG93IGdlc3R1cmVcblx1MjAyMiBPdmVycmlkZSAzLWZpbmdlciBnZXN0dXJlIHdpdGggNC1maW5nZXIgZm9yIHN3aXRjaGluZyB3b3Jrc3BhY2Vcblx1MjAyMiBDb25maWd1cmUgc3BlZWQgb2YgZ2VzdHVyZXNcblx1MjAyMiBTdXBwb3J0IGZvciBYMTFcbiAgIFxuT24gWDExLCB5b3UgbmVlZCB0byBpbnN0YWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLXgxMS1nZXN0dXJlLWRhZW1vblxuXG5SZXBvcnQgYW55IGJ1Z3MvcmVxdWVzdHMgb24gR2l0SHViIChsaW5rIGRpcmVjdGx5IGJlbG93KVxuIiwKICAibmFtZSI6ICJHZXN0dXJlIEltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nZXN0dXJlSW1wcm92ZW1lbnRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLWdlc3R1cmUtaW1wcm92ZW1lbnRzIiwKICAidXVpZCI6ICJnZXN0dXJlSW1wcm92ZW1lbnRzQGdlc3R1cmVzIiwKICAidmVyc2lvbiI6IDE3Cn0="}}}
+, {"uuid": "gestureImprovements@gestures", "name": "Gesture Improvements", "pname": "gesture-improvements", "description": "Improve touchpad gestures for Wayland/X11\n\nThis extension adds following features:\n\n• Switch windows from current workspace using 3-finger horizontal swipe\n• Cyclic gestures between Desktop/Overview/AppGrid using 4 vertical swipe\n• Switch app-pages using 3-finger swipe gesture on AppGrid\n• Unmaximize/maximize/fullscreen/half-tiling using 3-finger vertical & horizontal gesture\n• Optional minimize a window gesture\n• Override 3-finger gesture with 4-finger for switching workspace\n• Pinch to show desktop\n• Configure speed of gestures\n• Support for X11\n   \nOn X11, you need to install https://github.com/harshadgavali/gnome-x11-gesture-daemon\n\nReport any bugs/requests on GitHub (link directly below)\n", "link": "https://extensions.gnome.org/extension/4245/gesture-improvements/", "shell_version_map": {"40": {"version": "19", "sha256": "06s4igjx5r7k01yvylr0clg8j2m6sdywn00hr5xdp1a9v2r5v5ry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdG91Y2hwYWQgZ2VzdHVyZXMgZm9yIFdheWxhbmQvWDExXG5cblRoaXMgZXh0ZW5zaW9uIGFkZHMgZm9sbG93aW5nIGZlYXR1cmVzOlxuXG5cdTIwMjIgU3dpdGNoIHdpbmRvd3MgZnJvbSBjdXJyZW50IHdvcmtzcGFjZSB1c2luZyAzLWZpbmdlciBob3Jpem9udGFsIHN3aXBlXG5cdTIwMjIgQ3ljbGljIGdlc3R1cmVzIGJldHdlZW4gRGVza3RvcC9PdmVydmlldy9BcHBHcmlkIHVzaW5nIDQgdmVydGljYWwgc3dpcGVcblx1MjAyMiBTd2l0Y2ggYXBwLXBhZ2VzIHVzaW5nIDMtZmluZ2VyIHN3aXBlIGdlc3R1cmUgb24gQXBwR3JpZFxuXHUyMDIyIFVubWF4aW1pemUvbWF4aW1pemUvZnVsbHNjcmVlbi9oYWxmLXRpbGluZyB1c2luZyAzLWZpbmdlciB2ZXJ0aWNhbCAmIGhvcml6b250YWwgZ2VzdHVyZVxuXHUyMDIyIE9wdGlvbmFsIG1pbmltaXplIGEgd2luZG93IGdlc3R1cmVcblx1MjAyMiBPdmVycmlkZSAzLWZpbmdlciBnZXN0dXJlIHdpdGggNC1maW5nZXIgZm9yIHN3aXRjaGluZyB3b3Jrc3BhY2Vcblx1MjAyMiBQaW5jaCB0byBzaG93IGRlc2t0b3Bcblx1MjAyMiBDb25maWd1cmUgc3BlZWQgb2YgZ2VzdHVyZXNcblx1MjAyMiBTdXBwb3J0IGZvciBYMTFcbiAgIFxuT24gWDExLCB5b3UgbmVlZCB0byBpbnN0YWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLXgxMS1nZXN0dXJlLWRhZW1vblxuXG5SZXBvcnQgYW55IGJ1Z3MvcmVxdWVzdHMgb24gR2l0SHViIChsaW5rIGRpcmVjdGx5IGJlbG93KVxuIiwKICAibmFtZSI6ICJHZXN0dXJlIEltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nZXN0dXJlSW1wcm92ZW1lbnRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLWdlc3R1cmUtaW1wcm92ZW1lbnRzIiwKICAidXVpZCI6ICJnZXN0dXJlSW1wcm92ZW1lbnRzQGdlc3R1cmVzIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "41": {"version": "19", "sha256": "06s4igjx5r7k01yvylr0clg8j2m6sdywn00hr5xdp1a9v2r5v5ry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkltcHJvdmUgdG91Y2hwYWQgZ2VzdHVyZXMgZm9yIFdheWxhbmQvWDExXG5cblRoaXMgZXh0ZW5zaW9uIGFkZHMgZm9sbG93aW5nIGZlYXR1cmVzOlxuXG5cdTIwMjIgU3dpdGNoIHdpbmRvd3MgZnJvbSBjdXJyZW50IHdvcmtzcGFjZSB1c2luZyAzLWZpbmdlciBob3Jpem9udGFsIHN3aXBlXG5cdTIwMjIgQ3ljbGljIGdlc3R1cmVzIGJldHdlZW4gRGVza3RvcC9PdmVydmlldy9BcHBHcmlkIHVzaW5nIDQgdmVydGljYWwgc3dpcGVcblx1MjAyMiBTd2l0Y2ggYXBwLXBhZ2VzIHVzaW5nIDMtZmluZ2VyIHN3aXBlIGdlc3R1cmUgb24gQXBwR3JpZFxuXHUyMDIyIFVubWF4aW1pemUvbWF4aW1pemUvZnVsbHNjcmVlbi9oYWxmLXRpbGluZyB1c2luZyAzLWZpbmdlciB2ZXJ0aWNhbCAmIGhvcml6b250YWwgZ2VzdHVyZVxuXHUyMDIyIE9wdGlvbmFsIG1pbmltaXplIGEgd2luZG93IGdlc3R1cmVcblx1MjAyMiBPdmVycmlkZSAzLWZpbmdlciBnZXN0dXJlIHdpdGggNC1maW5nZXIgZm9yIHN3aXRjaGluZyB3b3Jrc3BhY2Vcblx1MjAyMiBQaW5jaCB0byBzaG93IGRlc2t0b3Bcblx1MjAyMiBDb25maWd1cmUgc3BlZWQgb2YgZ2VzdHVyZXNcblx1MjAyMiBTdXBwb3J0IGZvciBYMTFcbiAgIFxuT24gWDExLCB5b3UgbmVlZCB0byBpbnN0YWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLXgxMS1nZXN0dXJlLWRhZW1vblxuXG5SZXBvcnQgYW55IGJ1Z3MvcmVxdWVzdHMgb24gR2l0SHViIChsaW5rIGRpcmVjdGx5IGJlbG93KVxuIiwKICAibmFtZSI6ICJHZXN0dXJlIEltcHJvdmVtZW50cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nZXN0dXJlSW1wcm92ZW1lbnRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL2dub21lLWdlc3R1cmUtaW1wcm92ZW1lbnRzIiwKICAidXVpZCI6ICJnZXN0dXJlSW1wcm92ZW1lbnRzQGdlc3R1cmVzIiwKICAidmVyc2lvbiI6IDE5Cn0="}}}
 , {"uuid": "eclipse@blackjackshellac.ca", "name": "eclipse", "pname": "eclipse", "description": "eclipse clipboard interface with item encryption\n\nAdded encryption of clipboard items. Encrypted items can be\nsaved to disk in a folder of your choice. These items are persisted\nbetween sessions using openssl to encrypt the content.\n\nEclipse uses dbus to communicate with the gpaste daemon.\n\nThe following utilities are required,\n\n# for example, on fedora (add gpaste-ui for gpaste settings gui)\n$ sudo dnf install gpaste openssl\n# ubuntu\n$ sudo apt install gpaste openssl\n\nNow works with Gpaste 1 and Gpaste 2 on GS 3.36, 3.38 and 40\n\nIf updating the extension reports an ERROR it should work after the next reboot or if you logout and login again. If you're not running on Wayland you should be able to just restart the shell (Alt+F2,r).\n\nPlease report issues on github.\n", "link": "https://extensions.gnome.org/extension/4246/eclipse/", "shell_version_map": {"38": {"version": "8", "sha256": "09j5f8p23m4v2bdad582497r194z05x4izc2wywp9nhv1nldcs3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImVjbGlwc2UgY2xpcGJvYXJkIGludGVyZmFjZSB3aXRoIGl0ZW0gZW5jcnlwdGlvblxuXG5BZGRlZCBlbmNyeXB0aW9uIG9mIGNsaXBib2FyZCBpdGVtcy4gRW5jcnlwdGVkIGl0ZW1zIGNhbiBiZVxuc2F2ZWQgdG8gZGlzayBpbiBhIGZvbGRlciBvZiB5b3VyIGNob2ljZS4gVGhlc2UgaXRlbXMgYXJlIHBlcnNpc3RlZFxuYmV0d2VlbiBzZXNzaW9ucyB1c2luZyBvcGVuc3NsIHRvIGVuY3J5cHQgdGhlIGNvbnRlbnQuXG5cbkVjbGlwc2UgdXNlcyBkYnVzIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIGdwYXN0ZSBkYWVtb24uXG5cblRoZSBmb2xsb3dpbmcgdXRpbGl0aWVzIGFyZSByZXF1aXJlZCxcblxuIyBmb3IgZXhhbXBsZSwgb24gZmVkb3JhIChhZGQgZ3Bhc3RlLXVpIGZvciBncGFzdGUgc2V0dGluZ3MgZ3VpKVxuJCBzdWRvIGRuZiBpbnN0YWxsIGdwYXN0ZSBvcGVuc3NsXG4jIHVidW50dVxuJCBzdWRvIGFwdCBpbnN0YWxsIGdwYXN0ZSBvcGVuc3NsXG5cbk5vdyB3b3JrcyB3aXRoIEdwYXN0ZSAxIGFuZCBHcGFzdGUgMiBvbiBHUyAzLjM2LCAzLjM4IGFuZCA0MFxuXG5JZiB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uIHJlcG9ydHMgYW4gRVJST1IgaXQgc2hvdWxkIHdvcmsgYWZ0ZXIgdGhlIG5leHQgcmVib290IG9yIGlmIHlvdSBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLiBJZiB5b3UncmUgbm90IHJ1bm5pbmcgb24gV2F5bGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8ganVzdCByZXN0YXJ0IHRoZSBzaGVsbCAoQWx0K0YyLHIpLlxuXG5QbGVhc2UgcmVwb3J0IGlzc3VlcyBvbiBnaXRodWIuXG4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlY2xpcHNlLWJsYWNramFja3NoZWxsYWMiLAogICJuYW1lIjogImVjbGlwc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZWNsaXBzZS1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMvZWNsaXBzZSIsCiAgInV1aWQiOiAiZWNsaXBzZUBibGFja2phY2tzaGVsbGFjLmNhIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "09j5f8p23m4v2bdad582497r194z05x4izc2wywp9nhv1nldcs3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImVjbGlwc2UgY2xpcGJvYXJkIGludGVyZmFjZSB3aXRoIGl0ZW0gZW5jcnlwdGlvblxuXG5BZGRlZCBlbmNyeXB0aW9uIG9mIGNsaXBib2FyZCBpdGVtcy4gRW5jcnlwdGVkIGl0ZW1zIGNhbiBiZVxuc2F2ZWQgdG8gZGlzayBpbiBhIGZvbGRlciBvZiB5b3VyIGNob2ljZS4gVGhlc2UgaXRlbXMgYXJlIHBlcnNpc3RlZFxuYmV0d2VlbiBzZXNzaW9ucyB1c2luZyBvcGVuc3NsIHRvIGVuY3J5cHQgdGhlIGNvbnRlbnQuXG5cbkVjbGlwc2UgdXNlcyBkYnVzIHRvIGNvbW11bmljYXRlIHdpdGggdGhlIGdwYXN0ZSBkYWVtb24uXG5cblRoZSBmb2xsb3dpbmcgdXRpbGl0aWVzIGFyZSByZXF1aXJlZCxcblxuIyBmb3IgZXhhbXBsZSwgb24gZmVkb3JhIChhZGQgZ3Bhc3RlLXVpIGZvciBncGFzdGUgc2V0dGluZ3MgZ3VpKVxuJCBzdWRvIGRuZiBpbnN0YWxsIGdwYXN0ZSBvcGVuc3NsXG4jIHVidW50dVxuJCBzdWRvIGFwdCBpbnN0YWxsIGdwYXN0ZSBvcGVuc3NsXG5cbk5vdyB3b3JrcyB3aXRoIEdwYXN0ZSAxIGFuZCBHcGFzdGUgMiBvbiBHUyAzLjM2LCAzLjM4IGFuZCA0MFxuXG5JZiB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uIHJlcG9ydHMgYW4gRVJST1IgaXQgc2hvdWxkIHdvcmsgYWZ0ZXIgdGhlIG5leHQgcmVib290IG9yIGlmIHlvdSBsb2dvdXQgYW5kIGxvZ2luIGFnYWluLiBJZiB5b3UncmUgbm90IHJ1bm5pbmcgb24gV2F5bGFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8ganVzdCByZXN0YXJ0IHRoZSBzaGVsbCAoQWx0K0YyLHIpLlxuXG5QbGVhc2UgcmVwb3J0IGlzc3VlcyBvbiBnaXRodWIuXG4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJlY2xpcHNlLWJsYWNramFja3NoZWxsYWMiLAogICJuYW1lIjogImVjbGlwc2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZWNsaXBzZS1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMvZWNsaXBzZSIsCiAgInV1aWQiOiAiZWNsaXBzZUBibGFja2phY2tzaGVsbGFjLmNhIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "audio-switcher@albertomosconi", "name": "Audio Switcher 40", "pname": "audio-switcher-40", "description": "Adds a switch for choosing audio input/output to the system menu in GNOME 40. (Makes InputSlider always visible)", "link": "https://extensions.gnome.org/extension/4248/audio-switcher-40/", "shell_version_map": {"38": {"version": "4", "sha256": "0mvc4f6i7vsqijq8l4adcixdyycfxmd7kvw13d5h0vx4hg6vam1g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIGlucHV0L291dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUgaW4gR05PTUUgNDAuIChNYWtlcyBJbnB1dFNsaWRlciBhbHdheXMgdmlzaWJsZSkiLAogICJuYW1lIjogIkF1ZGlvIFN3aXRjaGVyIDQwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vYWxiZXJ0b21vc2NvbmkvYXVkaW8tc3dpdGNoZXIiLAogICJ1dWlkIjogImF1ZGlvLXN3aXRjaGVyQGFsYmVydG9tb3Njb25pIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "0mvc4f6i7vsqijq8l4adcixdyycfxmd7kvw13d5h0vx4hg6vam1g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIGlucHV0L291dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUgaW4gR05PTUUgNDAuIChNYWtlcyBJbnB1dFNsaWRlciBhbHdheXMgdmlzaWJsZSkiLAogICJuYW1lIjogIkF1ZGlvIFN3aXRjaGVyIDQwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cDovL2dpdGh1Yi5jb20vYWxiZXJ0b21vc2NvbmkvYXVkaW8tc3dpdGNoZXIiLAogICJ1dWlkIjogImF1ZGlvLXN3aXRjaGVyQGFsYmVydG9tb3Njb25pIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "shell-configurator@adeswanta", "name": "Shell Configurator", "pname": "shell-configurator", "description": "Configure and customize GNOME Shell with advanced settings.", "link": "https://extensions.gnome.org/extension/4254/shell-configurator/", "shell_version_map": {"38": {"version": "4", "sha256": "18dcbxizgj295v34m2dsz1dq9wxlk1s9cgqcgwd1k6r2v2f4p00z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBhbmQgY3VzdG9taXplIEdOT01FIFNoZWxsIHdpdGggYWR2YW5jZWQgc2V0dGluZ3MuIiwKICAiaWQiOiAic2hlbGwtY29uZmlndXJhdG9yIiwKICAiaW5zdGFsbC10eXBlIjogIlVzZXIiLAogICJuYW1lIjogIlNoZWxsIENvbmZpZ3VyYXRvciIsCiAgInJlbGVhc2Utc3RhdGUiOiAicmVsZWFzZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYWRlc3dhbnRhVGVjaHMvc2hlbGwtY29uZmlndXJhdG9yIiwKICAidXVpZCI6ICJzaGVsbC1jb25maWd1cmF0b3JAYWRlc3dhbnRhIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "18dcbxizgj295v34m2dsz1dq9wxlk1s9cgqcgwd1k6r2v2f4p00z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBhbmQgY3VzdG9taXplIEdOT01FIFNoZWxsIHdpdGggYWR2YW5jZWQgc2V0dGluZ3MuIiwKICAiaWQiOiAic2hlbGwtY29uZmlndXJhdG9yIiwKICAiaW5zdGFsbC10eXBlIjogIlVzZXIiLAogICJuYW1lIjogIlNoZWxsIENvbmZpZ3VyYXRvciIsCiAgInJlbGVhc2Utc3RhdGUiOiAicmVsZWFzZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYWRlc3dhbnRhVGVjaHMvc2hlbGwtY29uZmlndXJhdG9yIiwKICAidXVpZCI6ICJzaGVsbC1jb25maWd1cmF0b3JAYWRlc3dhbnRhIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
@@ -492,7 +497,7 @@
 , {"uuid": "rippleremove@slippinggitty", "name": "Ripple Remove", "pname": "ripple-remove", "description": "Removes the ripple effect from the Activities hot corner", "link": "https://extensions.gnome.org/extension/4264/ripple-remove/", "shell_version_map": {"40": {"version": "1", "sha256": "1dnk8nfnv5hp8c11fzhn5vscicij4lk9i1vz25fz6sjc3rn1a9pq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZXMgdGhlIHJpcHBsZSBlZmZlY3QgZnJvbSB0aGUgQWN0aXZpdGllcyBob3QgY29ybmVyIiwKICAibmFtZSI6ICJSaXBwbGUgUmVtb3ZlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5zbGlwcGluZ2l0dHkucmlwcGxlcmVtb3ZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJyaXBwbGVyZW1vdmVAc2xpcHBpbmdnaXR0eSIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "quickmenu@slippinggitty", "name": "Quick Menu [DEAD]", "pname": "quick-menu", "description": "This is a fork of fedoramenu (which is a fork of Big Sur Menu by fausto) that scrubs references of Fedora by replacing the icon with the GNOME logo.\n\nQuick Menu is a panel applet similar to the Apple menu found on macOS.\n\nEDIT: This extension's purpose is dead. Check out Tofu Menu, which is fedoramenu, but with the ability to change the icon. https://extensions.gnome.org/extension/4272/tofu-menu/", "link": "https://extensions.gnome.org/extension/4266/quick-menu/", "shell_version_map": {"40": {"version": "1", "sha256": "1qla029n79366a7xvg2d9v0wa7272bqj40ggvbjrfsbd8x066aca", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgYSBmb3JrIG9mIGZlZG9yYW1lbnUgKHdoaWNoIGlzIGEgZm9yayBvZiBCaWcgU3VyIE1lbnUgYnkgZmF1c3RvKSB0aGF0IHNjcnVicyByZWZlcmVuY2VzIG9mIEZlZG9yYSBieSByZXBsYWNpbmcgdGhlIGljb24gd2l0aCB0aGUgR05PTUUgbG9nby5cblxuUXVpY2sgTWVudSBpcyBhIHBhbmVsIGFwcGxldCBzaW1pbGFyIHRvIHRoZSBBcHBsZSBtZW51IGZvdW5kIG9uIG1hY09TLlxuXG5FRElUOiBUaGlzIGV4dGVuc2lvbidzIHB1cnBvc2UgaXMgZGVhZC4gQ2hlY2sgb3V0IFRvZnUgTWVudSwgd2hpY2ggaXMgZmVkb3JhbWVudSwgYnV0IHdpdGggdGhlIGFiaWxpdHkgdG8gY2hhbmdlIHRoZSBpY29uLiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80MjcyL3RvZnUtbWVudS8iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJxdWljay1tZW51IiwKICAibmFtZSI6ICJRdWljayBNZW51IFtERUFEXSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuc2xpcHBpbmdpdHR5LnF1aWNrLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2xpcHBpbmdHaXR0eS9xdWlja21lbnUiLAogICJ1dWlkIjogInF1aWNrbWVudUBzbGlwcGluZ2dpdHR5IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "show-desktop-applet@valent-in", "name": "Show Desktop Applet", "pname": "show-desktop-applet", "description": "Minimize/unminimize all open windows with a single click.\n\nForked from https://extensions.gnome.org/extension/1194/show-desktop-button/\n\nFeatures:\n- Windows-like behavior\n- Can be placed at the end of panel\n- Hotkey support (can be activated in settings)", "link": "https://extensions.gnome.org/extension/4267/show-desktop-applet/", "shell_version_map": {"38": {"version": "2", "sha256": "0ybzzr3gmii29lpjqzh7yad9yyvz1fg8gb3ip6lki2l84hs3aa0c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLlxuXG5Gb3JrZWQgZnJvbSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTk0L3Nob3ctZGVza3RvcC1idXR0b24vXG5cbkZlYXR1cmVzOlxuLSBXaW5kb3dzLWxpa2UgYmVoYXZpb3Jcbi0gQ2FuIGJlIHBsYWNlZCBhdCB0aGUgZW5kIG9mIHBhbmVsXG4tIEhvdGtleSBzdXBwb3J0IChjYW4gYmUgYWN0aXZhdGVkIGluIHNldHRpbmdzKSIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYXBwbGV0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWFwcGxldCIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEFwcGxldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ZhbGVudC1pbi9TaG93LURlc2t0b3AtQXBwbGV0IiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYXBwbGV0QHZhbGVudC1pbiIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "0ybzzr3gmii29lpjqzh7yad9yyvz1fg8gb3ip6lki2l84hs3aa0c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplL3VubWluaW1pemUgYWxsIG9wZW4gd2luZG93cyB3aXRoIGEgc2luZ2xlIGNsaWNrLlxuXG5Gb3JrZWQgZnJvbSBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTk0L3Nob3ctZGVza3RvcC1idXR0b24vXG5cbkZlYXR1cmVzOlxuLSBXaW5kb3dzLWxpa2UgYmVoYXZpb3Jcbi0gQ2FuIGJlIHBsYWNlZCBhdCB0aGUgZW5kIG9mIHBhbmVsXG4tIEhvdGtleSBzdXBwb3J0IChjYW4gYmUgYWN0aXZhdGVkIGluIHNldHRpbmdzKSIsCiAgImV4dGVuc2lvbi1pZCI6ICJzaG93LWRlc2t0b3AtYXBwbGV0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2hvdy1kZXNrdG9wLWFwcGxldCIsCiAgImxvY2FsZWRpciI6ICIvdXNyL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiU2hvdyBEZXNrdG9wIEFwcGxldCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaG93LWRlc2t0b3AtYXBwbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1ZhbGVudC1pbi9TaG93LURlc2t0b3AtQXBwbGV0IiwKICAidXVpZCI6ICJzaG93LWRlc2t0b3AtYXBwbGV0QHZhbGVudC1pbiIsCiAgInZlcnNpb24iOiAyCn0="}}}
-, {"uuid": "AlphabeticalAppGrid@stuarthayhurst", "name": "Alphabetical App Grid", "pname": "alphabetical-app-grid", "description": "Restore the alphabetical ordering of the app grid", "link": "https://extensions.gnome.org/extension/4269/alphabetical-app-grid/", "shell_version_map": {"38": {"version": "15", "sha256": "1h3b3a8cbkjqfv7d1sq6j2kmaq3lf255gx7qw2h34m64cahm943y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9hbHBoYWJldGljYWwtZ3JpZC1leHRlbnNpb24iLAogICJ1dWlkIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "15", "sha256": "1h3b3a8cbkjqfv7d1sq6j2kmaq3lf255gx7qw2h34m64cahm943y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9hbHBoYWJldGljYWwtZ3JpZC1leHRlbnNpb24iLAogICJ1dWlkIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "15", "sha256": "1h3b3a8cbkjqfv7d1sq6j2kmaq3lf255gx7qw2h34m64cahm943y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9hbHBoYWJldGljYWwtZ3JpZC1leHRlbnNpb24iLAogICJ1dWlkIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
+, {"uuid": "AlphabeticalAppGrid@stuarthayhurst", "name": "Alphabetical App Grid", "pname": "alphabetical-app-grid", "description": "Restore the alphabetical ordering of the app grid", "link": "https://extensions.gnome.org/extension/4269/alphabetical-app-grid/", "shell_version_map": {"38": {"version": "16", "sha256": "0sz207y0198q7g1f99wq2laf558bfhfdz13vmaxhj9j2lagm17j8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9hbHBoYWJldGljYWwtZ3JpZC1leHRlbnNpb24iLAogICJ1dWlkIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "40": {"version": "16", "sha256": "0sz207y0198q7g1f99wq2laf558bfhfdz13vmaxhj9j2lagm17j8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9hbHBoYWJldGljYWwtZ3JpZC1leHRlbnNpb24iLAogICJ1dWlkIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "41": {"version": "16", "sha256": "0sz207y0198q7g1f99wq2laf558bfhfdz13vmaxhj9j2lagm17j8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlYnVnIjogZmFsc2UsCiAgImRlc2NyaXB0aW9uIjogIlJlc3RvcmUgdGhlIGFscGhhYmV0aWNhbCBvcmRlcmluZyBvZiB0aGUgYXBwIGdyaWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJBbHBoYWJldGljYWxBcHBHcmlkQHN0dWFydGhheWh1cnN0IiwKICAibmFtZSI6ICJBbHBoYWJldGljYWwgQXBwIEdyaWQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWxwaGFiZXRpY2FsLWFwcC1ncmlkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9hbHBoYWJldGljYWwtZ3JpZC1leHRlbnNpb24iLAogICJ1dWlkIjogIkFscGhhYmV0aWNhbEFwcEdyaWRAc3R1YXJ0aGF5aHVyc3QiLAogICJ2ZXJzaW9uIjogMTYKfQ=="}}}
 , {"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="}}}
 , {"uuid": "cryptostash@filidorwiese.nl", "name": "CryptoStash", "pname": "cryptostash", "description": "Keep an eye on the real time value of your crypto coins collections.\n\nYou can create multiple \"stashes\" (portfolios) of coins and monitor the accumulated value in USD or EUR. Or if you prefer, you can simply track the current value of your favorite coin.", "link": "https://extensions.gnome.org/extension/4276/cryptostash/", "shell_version_map": {"38": {"version": "4", "sha256": "0n1452ky1dppcxazgqxv5jc91l4piwp64rmc9b41ak3792j1sgbw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvcl91cmwiOiAiaHR0cHM6Ly9maWxpZG9yd2llc2UubmwiLAogICJkZXNjcmlwdGlvbiI6ICJLZWVwIGFuIGV5ZSBvbiB0aGUgcmVhbCB0aW1lIHZhbHVlIG9mIHlvdXIgY3J5cHRvIGNvaW5zIGNvbGxlY3Rpb25zLlxuXG5Zb3UgY2FuIGNyZWF0ZSBtdWx0aXBsZSBcInN0YXNoZXNcIiAocG9ydGZvbGlvcykgb2YgY29pbnMgYW5kIG1vbml0b3IgdGhlIGFjY3VtdWxhdGVkIHZhbHVlIGluIFVTRCBvciBFVVIuIE9yIGlmIHlvdSBwcmVmZXIsIHlvdSBjYW4gc2ltcGx5IHRyYWNrIHRoZSBjdXJyZW50IHZhbHVlIG9mIHlvdXIgZmF2b3JpdGUgY29pbi4iLAogICJuYW1lIjogIkNyeXB0b1N0YXNoIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNyeXB0by1zdGFzaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ0YWciOiAxLjMsCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmlsaWRvcndpZXNlL2dub21lLXNoZWxsLWNyeXB0by1zdGFzaCIsCiAgInV1aWQiOiAiY3J5cHRvc3Rhc2hAZmlsaWRvcndpZXNlLm5sIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "xmlfix@pwall.github.com", "name": "XML-Fix", "pname": "xml-fix", "description": "Fixes the XML-Codes displaying instead of the characters on notifications.", "link": "https://extensions.gnome.org/extension/4279/xml-fix/", "shell_version_map": {"38": {"version": "2", "sha256": "1c9qa3ky873hkckylsbv0s7q9bmsnia7h8mlc36i7xz7h1ml6fpx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeGVzIHRoZSBYTUwtQ29kZXMgZGlzcGxheWluZyBpbnN0ZWFkIG9mIHRoZSBjaGFyYWN0ZXJzIG9uIG5vdGlmaWNhdGlvbnMuIiwKICAibmFtZSI6ICJYTUwtRml4IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFdhbGwyMjIyL1hNTEZpeCIsCiAgInV1aWQiOiAieG1sZml4QHB3YWxsLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
@@ -537,12 +542,12 @@
 , {"uuid": "replaceActivitiesText@pratap.fastmail.fm", "name": "Replace Activities Text", "pname": "replace-activities-text", "description": "A Simple Extension to Change 'Activities' Label with Logo and Text.\nYou can Keep Either\n1. Logo or\n2. Text or\n3. Both or\n4. None at all", "link": "https://extensions.gnome.org/extension/4405/replace-activities-text/", "shell_version_map": {"38": {"version": "8", "sha256": "04adx4043d3ni510h44pi3gr0k15a4n0zwr4k5fxisr4yjl1510w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9BY3Rpdml0aWVzVGV4dCIsCiAgInV1aWQiOiAicmVwbGFjZUFjdGl2aXRpZXNUZXh0QHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "10", "sha256": "0fkpphd6ly5n7fybrla1a31sqg10cdll44ilz1vc1achphmbxlk6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL0FjdGl2aXRpZXNUZXh0IiwKICAidXVpZCI6ICJyZXBsYWNlQWN0aXZpdGllc1RleHRAcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDEwCn0="}, "41": {"version": "10", "sha256": "0fkpphd6ly5n7fybrla1a31sqg10cdll44ilz1vc1achphmbxlk6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL0FjdGl2aXRpZXNUZXh0IiwKICAidXVpZCI6ICJyZXBsYWNlQWN0aXZpdGllc1RleHRAcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
 , {"uuid": "appMenuIcon@pratap.fastmail.fm", "name": "Colored Application Menu Icon", "pname": "app-menu-icon-remove-symbolic", "description": "Remove Symbolic Icons and Saturation Effect for App Menu Icon", "link": "https://extensions.gnome.org/extension/4408/app-menu-icon-remove-symbolic/", "shell_version_map": {"38": {"version": "2", "sha256": "1ggj4c7knbsjwg7n1g7sqjz188ivlihsq8p2a8jd71iw49b917cj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwTWVudUljb25AcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "1ggj4c7knbsjwg7n1g7sqjz188ivlihsq8p2a8jd71iw49b917cj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwTWVudUljb25AcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "41": {"version": "2", "sha256": "1ggj4c7knbsjwg7n1g7sqjz188ivlihsq8p2a8jd71iw49b917cj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYXBwTWVudUljb25AcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "gnome-trash@b00f.github.io", "name": "Gnome Trash", "pname": "gnome-trash", "description": "A gnome shell extension to manage your home trash. You can manage trash items from the panel and open or empty the trash.", "link": "https://extensions.gnome.org/extension/4410/gnome-trash/", "shell_version_map": {"38": {"version": "3", "sha256": "03pyala1i21izg5rl4qqh5bxk36fp8d52bs9ggrik2kav420xhhk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGhvbWUgdHJhc2guIFlvdSBjYW4gbWFuYWdlIHRyYXNoIGl0ZW1zIGZyb20gdGhlIHBhbmVsIGFuZCBvcGVuIG9yIGVtcHR5IHRoZSB0cmFzaC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS10cmFzaCIsCiAgIm5hbWUiOiAiR25vbWUgVHJhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iMDBmL2dub21lLXRyYXNoIiwKICAidXVpZCI6ICJnbm9tZS10cmFzaEBiMDBmLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}}}
-, {"uuid": "advanced-alt-tab@G-dH.github.com", "name": "AATWS - Advanced Alt-Tab Window Switcher", "pname": "advanced-alttab-window-switcher", "description": "Highly customizable replacement of the Alt-Tab window/app switchers that offers 'type to search' mode, various filtering and sorting options, workspace and monitor navigation, VIM navigation hotkeys, window control and an app launcher.\nAATWS is compatible with Custom Hot Corners - Extended extension, allows to configure any mouse button and scroll wheel and can be used instead of a dock.\n\nFollow the link below for more information and bug reports.\n\nKeywords: alttab, search, find, windows, popup delay, applications, apps, dock, monitor, thumbnail, preview, move windows, launch app, switch windows", "link": "https://extensions.gnome.org/extension/4412/advanced-alttab-window-switcher/", "shell_version_map": {"38": {"version": "8", "sha256": "00kl6fx7fdc55rv8zgicnk8dcy1m9wzv1yd2m38ngbkmf3cdy68j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgb2YgdGhlIEFsdC1UYWIgd2luZG93L2FwcCBzd2l0Y2hlcnMgdGhhdCBvZmZlcnMgJ3R5cGUgdG8gc2VhcmNoJyBtb2RlLCB2YXJpb3VzIGZpbHRlcmluZyBhbmQgc29ydGluZyBvcHRpb25zLCB3b3Jrc3BhY2UgYW5kIG1vbml0b3IgbmF2aWdhdGlvbiwgVklNIG5hdmlnYXRpb24gaG90a2V5cywgd2luZG93IGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIGEgZG9jay5cblxuRm9sbG93IHRoZSBsaW5rIGJlbG93IGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBidWcgcmVwb3J0cy5cblxuS2V5d29yZHM6IGFsdHRhYiwgc2VhcmNoLCBmaW5kLCB3aW5kb3dzLCBwb3B1cCBkZWxheSwgYXBwbGljYXRpb25zLCBhcHBzLCBkb2NrLCBtb25pdG9yLCB0aHVtYm5haWwsIHByZXZpZXcsIG1vdmUgd2luZG93cywgbGF1bmNoIGFwcCwgc3dpdGNoIHdpbmRvd3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "00kl6fx7fdc55rv8zgicnk8dcy1m9wzv1yd2m38ngbkmf3cdy68j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgb2YgdGhlIEFsdC1UYWIgd2luZG93L2FwcCBzd2l0Y2hlcnMgdGhhdCBvZmZlcnMgJ3R5cGUgdG8gc2VhcmNoJyBtb2RlLCB2YXJpb3VzIGZpbHRlcmluZyBhbmQgc29ydGluZyBvcHRpb25zLCB3b3Jrc3BhY2UgYW5kIG1vbml0b3IgbmF2aWdhdGlvbiwgVklNIG5hdmlnYXRpb24gaG90a2V5cywgd2luZG93IGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIGEgZG9jay5cblxuRm9sbG93IHRoZSBsaW5rIGJlbG93IGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBidWcgcmVwb3J0cy5cblxuS2V5d29yZHM6IGFsdHRhYiwgc2VhcmNoLCBmaW5kLCB3aW5kb3dzLCBwb3B1cCBkZWxheSwgYXBwbGljYXRpb25zLCBhcHBzLCBkb2NrLCBtb25pdG9yLCB0aHVtYm5haWwsIHByZXZpZXcsIG1vdmUgd2luZG93cywgbGF1bmNoIGFwcCwgc3dpdGNoIHdpbmRvd3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "00kl6fx7fdc55rv8zgicnk8dcy1m9wzv1yd2m38ngbkmf3cdy68j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgb2YgdGhlIEFsdC1UYWIgd2luZG93L2FwcCBzd2l0Y2hlcnMgdGhhdCBvZmZlcnMgJ3R5cGUgdG8gc2VhcmNoJyBtb2RlLCB2YXJpb3VzIGZpbHRlcmluZyBhbmQgc29ydGluZyBvcHRpb25zLCB3b3Jrc3BhY2UgYW5kIG1vbml0b3IgbmF2aWdhdGlvbiwgVklNIG5hdmlnYXRpb24gaG90a2V5cywgd2luZG93IGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIGEgZG9jay5cblxuRm9sbG93IHRoZSBsaW5rIGJlbG93IGZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBidWcgcmVwb3J0cy5cblxuS2V5d29yZHM6IGFsdHRhYiwgc2VhcmNoLCBmaW5kLCB3aW5kb3dzLCBwb3B1cCBkZWxheSwgYXBwbGljYXRpb25zLCBhcHBzLCBkb2NrLCBtb25pdG9yLCB0aHVtYm5haWwsIHByZXZpZXcsIG1vdmUgd2luZG93cywgbGF1bmNoIGFwcCwgc3dpdGNoIHdpbmRvd3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
-, {"uuid": "improvedosk@nick-shmyrev.dev", "name": "Improved OSK", "pname": "improved-osk", "description": "Makes Gnome's onscreen keyboard more useable with e.g. more keys.\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": "4", "sha256": "0f3051wf7lp9ia1r74j72ajlyph63nw4928wg16lfxhdzid4bymp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "0f3051wf7lp9ia1r74j72ajlyph63nw4928wg16lfxhdzid4bymp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "0f3051wf7lp9ia1r74j72ajlyph63nw4928wg16lfxhdzid4bymp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "advanced-alt-tab@G-dH.github.com", "name": "AATWS - Advanced Alt-Tab Window Switcher", "pname": "advanced-alttab-window-switcher", "description": "Highly customizable replacement of the Alt-Tab window/app switchers that offers 'type to search' mode, various filtering and sorting options, workspace and monitor navigation, VIM navigation hotkeys, window control and an app launcher.\nAATWS is compatible with Custom Hot Corners - Extended extension, allows to configure 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 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, windows, popup delay, applications, apps, dock, monitor, thumbnail, preview, move windows, launch app, switch windows", "link": "https://extensions.gnome.org/extension/4412/advanced-alttab-window-switcher/", "shell_version_map": {"38": {"version": "10", "sha256": "0zfll64krhibs0kiwyz8nw6wdxqd22510d5mvvcfi5l4qs2dm2b2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgb2YgdGhlIEFsdC1UYWIgd2luZG93L2FwcCBzd2l0Y2hlcnMgdGhhdCBvZmZlcnMgJ3R5cGUgdG8gc2VhcmNoJyBtb2RlLCB2YXJpb3VzIGZpbHRlcmluZyBhbmQgc29ydGluZyBvcHRpb25zLCB3b3Jrc3BhY2UgYW5kIG1vbml0b3IgbmF2aWdhdGlvbiwgVklNIG5hdmlnYXRpb24gaG90a2V5cywgd2luZG93IGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgZG9jay5cblxuTm90ZSB0aGF0IEdOT01FIGhhcyAzIGJ1aWx0LWluIHdpbmRvdyBzd2l0Y2hlciBwb3B1cHMgYW5kIHRoaXMgZXh0ZW5zaW9uIHJlcGxhY2VzIGFsbCBvZiB0aGVtLiBUaGUgZmlyc3Qgb25lIGlzIGdyb3VwaW5nIHdpbmRvd3MgYnkgYXBwbGljYXRpb25zIGFuZCBpcyB1c2VkIGFzIGRlZmF1bHQgaW4gdmFuaWxsYSBHTk9NRSBkaXN0cmlidXRpb25zLiBUaGUgc2Vjb25kIG9uZSBvZmZlcnMgd2luZG93IGxpc3QgYW5kIHRoZSB0aGlyZCBvbmUgd2luZG93cyBvZiBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93cywgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCB3aW5kb3dzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWR2YW5jZWQtYWx0LXRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJuYW1lIjogIkFBVFdTIC0gQWR2YW5jZWQgQWx0LVRhYiBXaW5kb3cgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWR2YW5jZWQtYWx0LXRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvYWR2YW5jZWQtYWx0dGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR2YW5jZWQtYWx0LXRhYkBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "10", "sha256": "0zfll64krhibs0kiwyz8nw6wdxqd22510d5mvvcfi5l4qs2dm2b2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgb2YgdGhlIEFsdC1UYWIgd2luZG93L2FwcCBzd2l0Y2hlcnMgdGhhdCBvZmZlcnMgJ3R5cGUgdG8gc2VhcmNoJyBtb2RlLCB2YXJpb3VzIGZpbHRlcmluZyBhbmQgc29ydGluZyBvcHRpb25zLCB3b3Jrc3BhY2UgYW5kIG1vbml0b3IgbmF2aWdhdGlvbiwgVklNIG5hdmlnYXRpb24gaG90a2V5cywgd2luZG93IGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgZG9jay5cblxuTm90ZSB0aGF0IEdOT01FIGhhcyAzIGJ1aWx0LWluIHdpbmRvdyBzd2l0Y2hlciBwb3B1cHMgYW5kIHRoaXMgZXh0ZW5zaW9uIHJlcGxhY2VzIGFsbCBvZiB0aGVtLiBUaGUgZmlyc3Qgb25lIGlzIGdyb3VwaW5nIHdpbmRvd3MgYnkgYXBwbGljYXRpb25zIGFuZCBpcyB1c2VkIGFzIGRlZmF1bHQgaW4gdmFuaWxsYSBHTk9NRSBkaXN0cmlidXRpb25zLiBUaGUgc2Vjb25kIG9uZSBvZmZlcnMgd2luZG93IGxpc3QgYW5kIHRoZSB0aGlyZCBvbmUgd2luZG93cyBvZiBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93cywgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCB3aW5kb3dzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWR2YW5jZWQtYWx0LXRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJuYW1lIjogIkFBVFdTIC0gQWR2YW5jZWQgQWx0LVRhYiBXaW5kb3cgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWR2YW5jZWQtYWx0LXRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvYWR2YW5jZWQtYWx0dGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR2YW5jZWQtYWx0LXRhYkBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "0zfll64krhibs0kiwyz8nw6wdxqd22510d5mvvcfi5l4qs2dm2b2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgb2YgdGhlIEFsdC1UYWIgd2luZG93L2FwcCBzd2l0Y2hlcnMgdGhhdCBvZmZlcnMgJ3R5cGUgdG8gc2VhcmNoJyBtb2RlLCB2YXJpb3VzIGZpbHRlcmluZyBhbmQgc29ydGluZyBvcHRpb25zLCB3b3Jrc3BhY2UgYW5kIG1vbml0b3IgbmF2aWdhdGlvbiwgVklNIG5hdmlnYXRpb24gaG90a2V5cywgd2luZG93IGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgZG9jay5cblxuTm90ZSB0aGF0IEdOT01FIGhhcyAzIGJ1aWx0LWluIHdpbmRvdyBzd2l0Y2hlciBwb3B1cHMgYW5kIHRoaXMgZXh0ZW5zaW9uIHJlcGxhY2VzIGFsbCBvZiB0aGVtLiBUaGUgZmlyc3Qgb25lIGlzIGdyb3VwaW5nIHdpbmRvd3MgYnkgYXBwbGljYXRpb25zIGFuZCBpcyB1c2VkIGFzIGRlZmF1bHQgaW4gdmFuaWxsYSBHTk9NRSBkaXN0cmlidXRpb25zLiBUaGUgc2Vjb25kIG9uZSBvZmZlcnMgd2luZG93IGxpc3QgYW5kIHRoZSB0aGlyZCBvbmUgd2luZG93cyBvZiBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93cywgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCB3aW5kb3dzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWR2YW5jZWQtYWx0LXRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJuYW1lIjogIkFBVFdTIC0gQWR2YW5jZWQgQWx0LVRhYiBXaW5kb3cgU3dpdGNoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWR2YW5jZWQtYWx0LXRhYi13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvYWR2YW5jZWQtYWx0dGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR2YW5jZWQtYWx0LXRhYkBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
+, {"uuid": "improvedosk@nick-shmyrev.dev", "name": "Improved OSK", "pname": "improved-osk", "description": "Makes Gnome's onscreen keyboard more useable with e.g. more keys.\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": "5", "sha256": "0kwcrks0g3f4f4hxy3h6jb0gpbqrbzg6l53cdcwljrq3q0q93r2l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "0kwcrks0g3f4f4hxy3h6jb0gpbqrbzg6l53cdcwljrq3q0q93r2l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "0kwcrks0g3f4f4hxy3h6jb0gpbqrbzg6l53cdcwljrq3q0q93r2l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9uaWNrLXNobXlyZXYvaW1wcm92ZWQtb3NrLWdub21lLWV4dCIsCiAgInV1aWQiOiAiaW1wcm92ZWRvc2tAbmljay1zaG15cmV2LmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "fedora-update@pepe386", "name": "Fedora Linux Updates Indicator", "pname": "fedora-linux-updates-indicator", "description": "Update indicator for Fedora Linux and GNOME Shell.", "link": "https://extensions.gnome.org/extension/4415/fedora-linux-updates-indicator/", "shell_version_map": {"40": {"version": "1", "sha256": "0sz69rs6z1fybva20xs8587bs4xaflb4frd14d729lqq5h1m8b2p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEZlZG9yYSBMaW51eCBhbmQgR05PTUUgU2hlbGwuIiwKICAibmFtZSI6ICJGZWRvcmEgTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGVwZTM4Ni9mZWRvcmEtdXBkYXRlIiwKICAidXVpZCI6ICJmZWRvcmEtdXBkYXRlQHBlcGUzODYiLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "readingstrip@lupantano.gihthub", "name": "Reading Strip", "pname": "reading-strip", "description": "It is a extension for Gnome-Shell with an equivalent function to a reading guide on the computer, that's really useful for people with dyslexia.", "link": "https://extensions.gnome.org/extension/4419/reading-strip/", "shell_version_map": {"40": {"version": "9", "sha256": "0r6ccgha8gqdqyy9z8sqxgpm1prbxfbh7cc8iyfhba5g40b4lh9g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0IGlzIGEgZXh0ZW5zaW9uIGZvciBHbm9tZS1TaGVsbCB3aXRoIGFuIGVxdWl2YWxlbnQgZnVuY3Rpb24gdG8gYSByZWFkaW5nIGd1aWRlIG9uIHRoZSBjb21wdXRlciwgdGhhdCdzIHJlYWxseSB1c2VmdWwgZm9yIHBlb3BsZSB3aXRoIGR5c2xleGlhLiIsCiAgIm5hbWUiOiAiUmVhZGluZyBTdHJpcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yZWFkaW5nc3RyaXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHVwYW50YW5vL3JlYWRpbmdzdHJpcCIsCiAgInV1aWQiOiAicmVhZGluZ3N0cmlwQGx1cGFudGFuby5naWh0aHViIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
 , {"uuid": "gnome-clipboard@b00f.github.io", "name": "Gnome Clipboard", "pname": "gnome-clipboard", "description": "A gnome shell extension to manage your clipboard.", "link": "https://extensions.gnome.org/extension/4422/gnome-clipboard/", "shell_version_map": {"38": {"version": "8", "sha256": "1zgymry549c6pmj1c0f6gvpyyfj0z93fwbhhxa67fx3nf95gb3kv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGNsaXBib2FyZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1jbGlwYm9hcmQiLAogICJuYW1lIjogIkdub21lIENsaXBib2FyZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2IwMGYvZ25vbWUtY2xpcGJvYXJkIiwKICAidXVpZCI6ICJnbm9tZS1jbGlwYm9hcmRAYjAwZi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogOAp9"}}}
-, {"uuid": "thanatophobia@yatx.one", "name": "Thanatophobia", "pname": "thanatophobia", "description": "Displays your age in real time. \n\nGreat source of motivation according to terror management theory!\n\nMay induce stress.", "link": "https://extensions.gnome.org/extension/4425/thanatophobia/", "shell_version_map": {"40": {"version": "4", "sha256": "14yijd7d2iad2axsqmx9dszs41cc691zbsqjhpjrfig4zf6blxik", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHlvdXIgYWdlIGluIHJlYWwgdGltZS4gXG5cbkdyZWF0IHNvdXJjZSBvZiBtb3RpdmF0aW9uIGFjY29yZGluZyB0byB0ZXJyb3IgbWFuYWdlbWVudCB0aGVvcnkhXG5cbk1heSBpbmR1Y2Ugc3RyZXNzLiIsCiAgIm5hbWUiOiAiVGhhbmF0b3Bob2JpYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAidGhhbmF0b3Bob2JpYUB5YXR4Lm9uZSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "thanatophobia@yatx.one", "name": "Thanatophobia", "pname": "thanatophobia", "description": "Displays your age in real time. \n\nGreat source of motivation according to terror management theory!", "link": "https://extensions.gnome.org/extension/4425/thanatophobia/", "shell_version_map": {"40": {"version": "7", "sha256": "0rk4yf62pv2mqfzmy56p5c57zjdml1953kycs78305c005ckcycc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHlvdXIgYWdlIGluIHJlYWwgdGltZS4gXG5cbkdyZWF0IHNvdXJjZSBvZiBtb3RpdmF0aW9uIGFjY29yZGluZyB0byB0ZXJyb3IgbWFuYWdlbWVudCB0aGVvcnkhIiwKICAibmFtZSI6ICJUaGFuYXRvcGhvYmlhIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aW9uc3ZlcnJ5ZnVsL3RoYW5hdG9waG9iaWEiLAogICJ1dWlkIjogInRoYW5hdG9waG9iaWFAeWF0eC5vbmUiLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "0rk4yf62pv2mqfzmy56p5c57zjdml1953kycs78305c005ckcycc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHlvdXIgYWdlIGluIHJlYWwgdGltZS4gXG5cbkdyZWF0IHNvdXJjZSBvZiBtb3RpdmF0aW9uIGFjY29yZGluZyB0byB0ZXJyb3IgbWFuYWdlbWVudCB0aGVvcnkhIiwKICAibmFtZSI6ICJUaGFuYXRvcGhvYmlhIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aW9uc3ZlcnJ5ZnVsL3RoYW5hdG9waG9iaWEiLAogICJ1dWlkIjogInRoYW5hdG9waG9iaWFAeWF0eC5vbmUiLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"uuid": "typewriter-kb@zzzheka97.gmail.com", "name": "Typewriter Keyboard", "pname": "typewriter-keyboard", "description": "Add a typewriter effect to your keyboard.\n \nThis extension is based on typewriter-kb application \n(https://github.com/ZhekehZ/linux-typewriter-kb), which \nis required to run the extension, but is not part of it.\n \n-------------------------------------------\nIcons made by Freepik from www.flaticon.com", "link": "https://extensions.gnome.org/extension/4427/typewriter-keyboard/", "shell_version_map": {"38": {"version": "2", "sha256": "1zmlmijkm6sgpp00qbrwnxmd4q5dfh07g9w9nynq3ciwxs9fjnai", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHR5cGV3cml0ZXIgZWZmZWN0IHRvIHlvdXIga2V5Ym9hcmQuXG4gXG5UaGlzIGV4dGVuc2lvbiBpcyBiYXNlZCBvbiB0eXBld3JpdGVyLWtiIGFwcGxpY2F0aW9uIFxuKGh0dHBzOi8vZ2l0aHViLmNvbS9aaGVrZWhaL2xpbnV4LXR5cGV3cml0ZXIta2IpLCB3aGljaCBcbmlzIHJlcXVpcmVkIHRvIHJ1biB0aGUgZXh0ZW5zaW9uLCBidXQgaXMgbm90IHBhcnQgb2YgaXQuXG4gXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5JY29ucyBtYWRlIGJ5IEZyZWVwaWsgZnJvbSB3d3cuZmxhdGljb24uY29tIiwKICAibmFtZSI6ICJUeXBld3JpdGVyIEtleWJvYXJkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInR5cGV3cml0ZXIta2JAenp6aGVrYTk3LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "dark-side@kamil-galek.pl", "name": "Dark side of Gnome", "pname": "dark-side-of-gnome", "description": "Join the dark side with some of your apps. For now it won't work with every app.", "link": "https://extensions.gnome.org/extension/4430/dark-side-of-gnome/", "shell_version_map": {"40": {"version": "2", "sha256": "08kzwpn22qwgyrps4khwkarn4rakr1rn57wg94wpfgd9pfbgb7ri", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkpvaW4gdGhlIGRhcmsgc2lkZSB3aXRoIHNvbWUgb2YgeW91ciBhcHBzLiBGb3Igbm93IGl0IHdvbid0IHdvcmsgd2l0aCBldmVyeSBhcHAuIiwKICAibmFtZSI6ICJEYXJrIHNpZGUgb2YgR25vbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImRhcmstc2lkZUBrYW1pbC1nYWxlay5wbCIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "wizlight@iabhilashjoshi", "name": "Wiz Light", "pname": "wiz-light", "description": "Control Wiz Connected Lights Through Gnome Shell\n\nRequirements:\n        #Wiz enabled smart bulb\n        #python3  (To install  use command \"sudo apt install python3\")\n        #pywizlight (To install use command \"pip3 install pywizlight\")\n\nTo Use go to the location where extension is installed (usually stored in \"~/.local/share/gnome-shell/extensions\") and change IP address in extension.js file to your smart bulb's IP address and then extension should work.", "link": "https://extensions.gnome.org/extension/4436/wiz-light/", "shell_version_map": {"38": {"version": "4", "sha256": "0pby93ivqz2ymdskyjp6ajc2c588dbpq7vjj7b7d8mc03hvkap5z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgV2l6IENvbm5lY3RlZCBMaWdodHMgVGhyb3VnaCBHbm9tZSBTaGVsbFxuXG5SZXF1aXJlbWVudHM6XG4gICAgICAgICNXaXogZW5hYmxlZCBzbWFydCBidWxiXG4gICAgICAgICNweXRob24zICAoVG8gaW5zdGFsbCAgdXNlIGNvbW1hbmQgXCJzdWRvIGFwdCBpbnN0YWxsIHB5dGhvbjNcIilcbiAgICAgICAgI3B5d2l6bGlnaHQgKFRvIGluc3RhbGwgdXNlIGNvbW1hbmQgXCJwaXAzIGluc3RhbGwgcHl3aXpsaWdodFwiKVxuXG5UbyBVc2UgZ28gdG8gdGhlIGxvY2F0aW9uIHdoZXJlIGV4dGVuc2lvbiBpcyBpbnN0YWxsZWQgKHVzdWFsbHkgc3RvcmVkIGluIFwifi8ubG9jYWwvc2hhcmUvZ25vbWUtc2hlbGwvZXh0ZW5zaW9uc1wiKSBhbmQgY2hhbmdlIElQIGFkZHJlc3MgaW4gZXh0ZW5zaW9uLmpzIGZpbGUgdG8geW91ciBzbWFydCBidWxiJ3MgSVAgYWRkcmVzcyBhbmQgdGhlbiBleHRlbnNpb24gc2hvdWxkIHdvcmsuIiwKICAibmFtZSI6ICJXaXogTGlnaHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbHBoYXNwZWFyL1dpei1MaWdodCIsCiAgInV1aWQiOiAid2l6bGlnaHRAaWFiaGlsYXNoam9zaGkiLAogICJ2ZXJzaW9uIjogNAp9"}}}
@@ -551,19 +556,19 @@
 , {"uuid": "logomenu@aryan_k", "name": "Logo Menu", "pname": "logo-menu", "description": "Logo Menu - Menu similar to Apple's macOS menu for the GNOME Desktop\nThis extension gives a simple menu along with the ability to get the icon of your distro on top left part of the panel for a great look.\nThe Icon can be customized through settings, it has both Linux and BSD logos.\nfor more screenshots, visit GitHub.\n\nThe default Terminal and Software center can also be changed.\n\nThis extension is a fork of - https://github.com/tofutech/tofumenu\n\nThe original project is no more supported thus I made this.", "link": "https://extensions.gnome.org/extension/4451/logo-menu/", "shell_version_map": {"38": {"version": "7", "sha256": "15n7ij36sizhg4arbn5x4b2j3nqlr4z7nvsbcqm3bvy9pjvmib2h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuYXJ5YW5fay5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "15n7ij36sizhg4arbn5x4b2j3nqlr4z7nvsbcqm3bvy9pjvmib2h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuYXJ5YW5fay5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "15n7ij36sizhg4arbn5x4b2j3nqlr4z7nvsbcqm3bvy9pjvmib2h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvZ28gTWVudSAtIE1lbnUgc2ltaWxhciB0byBBcHBsZSdzIG1hY09TIG1lbnUgZm9yIHRoZSBHTk9NRSBEZXNrdG9wXG5UaGlzIGV4dGVuc2lvbiBnaXZlcyBhIHNpbXBsZSBtZW51IGFsb25nIHdpdGggdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpY29uIG9mIHlvdXIgZGlzdHJvIG9uIHRvcCBsZWZ0IHBhcnQgb2YgdGhlIHBhbmVsIGZvciBhIGdyZWF0IGxvb2suXG5UaGUgSWNvbiBjYW4gYmUgY3VzdG9taXplZCB0aHJvdWdoIHNldHRpbmdzLCBpdCBoYXMgYm90aCBMaW51eCBhbmQgQlNEIGxvZ29zLlxuZm9yIG1vcmUgc2NyZWVuc2hvdHMsIHZpc2l0IEdpdEh1Yi5cblxuVGhlIGRlZmF1bHQgVGVybWluYWwgYW5kIFNvZnR3YXJlIGNlbnRlciBjYW4gYWxzbyBiZSBjaGFuZ2VkLlxuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgLSBodHRwczovL2dpdGh1Yi5jb20vdG9mdXRlY2gvdG9mdW1lbnVcblxuVGhlIG9yaWdpbmFsIHByb2plY3QgaXMgbm8gbW9yZSBzdXBwb3J0ZWQgdGh1cyBJIG1hZGUgdGhpcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsb2dvLW1lbnUiLAogICJuYW1lIjogIkxvZ28gTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuYXJ5YW5fay5sb2dvLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FyeWFuMjAvTG9nb21lbnUiLAogICJ1dWlkIjogImxvZ29tZW51QGFyeWFuX2siLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"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=="}}}
 , {"uuid": "titlebar-screenshot@jmaargh.github.com", "name": "Titlebar Screenshot", "pname": "titlebar-screenshot", "description": "Take screenshots by right-clicking on window titlebars.\n\nVarious configuration options include screenshots can be taken to the clipboard, to a file, or by opening the interactive tool.\n\nAll feedback and bug reports to Issues on the github page.", "link": "https://extensions.gnome.org/extension/4458/titlebar-screenshot/", "shell_version_map": {"38": {"version": "3", "sha256": "1vhphrjq2vyzlknfl3i7f8i3v9f8jcrpwiz26sigklmv3bmzb059", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2Ugc2NyZWVuc2hvdHMgYnkgcmlnaHQtY2xpY2tpbmcgb24gd2luZG93IHRpdGxlYmFycy5cblxuVmFyaW91cyBjb25maWd1cmF0aW9uIG9wdGlvbnMgaW5jbHVkZSBzY3JlZW5zaG90cyBjYW4gYmUgdGFrZW4gdG8gdGhlIGNsaXBib2FyZCwgdG8gYSBmaWxlLCBvciBieSBvcGVuaW5nIHRoZSBpbnRlcmFjdGl2ZSB0b29sLlxuXG5BbGwgZmVlZGJhY2sgYW5kIGJ1ZyByZXBvcnRzIHRvIElzc3VlcyBvbiB0aGUgZ2l0aHViIHBhZ2UuIiwKICAibmFtZSI6ICJUaXRsZWJhciBTY3JlZW5zaG90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpdGxlYmFyLXNjcmVlbnNob3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam1hYXJnaC90aXRsZWJhci1zY3JlZW5zaG90LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidGl0bGViYXItc2NyZWVuc2hvdEBqbWFhcmdoLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1vhphrjq2vyzlknfl3i7f8i3v9f8jcrpwiz26sigklmv3bmzb059", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRha2Ugc2NyZWVuc2hvdHMgYnkgcmlnaHQtY2xpY2tpbmcgb24gd2luZG93IHRpdGxlYmFycy5cblxuVmFyaW91cyBjb25maWd1cmF0aW9uIG9wdGlvbnMgaW5jbHVkZSBzY3JlZW5zaG90cyBjYW4gYmUgdGFrZW4gdG8gdGhlIGNsaXBib2FyZCwgdG8gYSBmaWxlLCBvciBieSBvcGVuaW5nIHRoZSBpbnRlcmFjdGl2ZSB0b29sLlxuXG5BbGwgZmVlZGJhY2sgYW5kIGJ1ZyByZXBvcnRzIHRvIElzc3VlcyBvbiB0aGUgZ2l0aHViIHBhZ2UuIiwKICAibmFtZSI6ICJUaXRsZWJhciBTY3JlZW5zaG90IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRpdGxlYmFyLXNjcmVlbnNob3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vam1hYXJnaC90aXRsZWJhci1zY3JlZW5zaG90LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAidGl0bGViYXItc2NyZWVuc2hvdEBqbWFhcmdoLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
-, {"uuid": "expandable-notifications@kaan.g.inam.org", "name": "Expandable Notifications", "pname": "expandable-notifications", "description": "Makes the notifications in the notification list expandable. In the settings, the user can define if all notifications should be expanded automatically or not.", "link": "https://extensions.gnome.org/extension/4463/expandable-notifications/", "shell_version_map": {"40": {"version": "6", "sha256": "18w5dn6l0nw9d1155yrznlgrj85xzqk9av2jlj07dsvmhqf5d505", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSBub3RpZmljYXRpb25zIGluIHRoZSBub3RpZmljYXRpb24gbGlzdCBleHBhbmRhYmxlLiBJbiB0aGUgc2V0dGluZ3MsIHRoZSB1c2VyIGNhbiBkZWZpbmUgaWYgYWxsIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIGV4cGFuZGVkIGF1dG9tYXRpY2FsbHkgb3Igbm90LiIsCiAgImdldHRleHQtZG9tYWluIjogImV4cGFuZGFibGUtbm90aWZpY2F0aW9ucyIsCiAgIm5hbWUiOiAiRXhwYW5kYWJsZSBOb3RpZmljYXRpb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmV4cGFuZGFibGUtbm90aWZpY2F0aW9ucy1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcva2FhbmdpbmFtL2V4cGFuZGFibGUtbm90aWZpY2F0aW9ucyIsCiAgInV1aWQiOiAiZXhwYW5kYWJsZS1ub3RpZmljYXRpb25zQGthYW4uZy5pbmFtLm9yZyIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "18w5dn6l0nw9d1155yrznlgrj85xzqk9av2jlj07dsvmhqf5d505", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSBub3RpZmljYXRpb25zIGluIHRoZSBub3RpZmljYXRpb24gbGlzdCBleHBhbmRhYmxlLiBJbiB0aGUgc2V0dGluZ3MsIHRoZSB1c2VyIGNhbiBkZWZpbmUgaWYgYWxsIG5vdGlmaWNhdGlvbnMgc2hvdWxkIGJlIGV4cGFuZGVkIGF1dG9tYXRpY2FsbHkgb3Igbm90LiIsCiAgImdldHRleHQtZG9tYWluIjogImV4cGFuZGFibGUtbm90aWZpY2F0aW9ucyIsCiAgIm5hbWUiOiAiRXhwYW5kYWJsZSBOb3RpZmljYXRpb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmV4cGFuZGFibGUtbm90aWZpY2F0aW9ucy1zZXR0aW5ncyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcva2FhbmdpbmFtL2V4cGFuZGFibGUtbm90aWZpY2F0aW9ucyIsCiAgInV1aWQiOiAiZXhwYW5kYWJsZS1ub3RpZmljYXRpb25zQGthYW4uZy5pbmFtLm9yZyIsCiAgInZlcnNpb24iOiA2Cn0="}}}
+, {"uuid": "expandable-notifications@kaan.g.inam.org", "name": "Expandable Notifications", "pname": "expandable-notifications", "description": "Makes the notifications in the notification list expandable. Using gsettings, you can choose between three modes: AUTO, ARROW and CRITICAL.\n\nAUTO will expand the notifications in the notification list automatically. \nARROW adds an arrow that lets you choose what to expand or unexpand. \nCRITICAL is similar to arrow, but expands notifications with the urgency critical automatically. \n\nFor more information and an example command to change the mode, I recommend to look at the repository.\"\n\nThe old repository has been deleted, however I reposted the extension on GitHub.", "link": "https://extensions.gnome.org/extension/4463/expandable-notifications/", "shell_version_map": {"40": {"version": "8", "sha256": "04i0hxsv41wfxg8z590mgn2klma47mgcz7qr52ca2llpd4dkrjj5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSBub3RpZmljYXRpb25zIGluIHRoZSBub3RpZmljYXRpb24gbGlzdCBleHBhbmRhYmxlLiBVc2luZyBnc2V0dGluZ3MsIHlvdSBjYW4gY2hvb3NlIGJldHdlZW4gdGhyZWUgbW9kZXM6IEFVVE8sIEFSUk9XIGFuZCBDUklUSUNBTC5cblxuQVVUTyB3aWxsIGV4cGFuZCB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgYXV0b21hdGljYWxseS4gXG5BUlJPVyBhZGRzIGFuIGFycm93IHRoYXQgbGV0cyB5b3UgY2hvb3NlIHdoYXQgdG8gZXhwYW5kIG9yIHVuZXhwYW5kLiBcbkNSSVRJQ0FMIGlzIHNpbWlsYXIgdG8gYXJyb3csIGJ1dCBleHBhbmRzIG5vdGlmaWNhdGlvbnMgd2l0aCB0aGUgdXJnZW5jeSBjcml0aWNhbCBhdXRvbWF0aWNhbGx5LiBcblxuRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGFuIGV4YW1wbGUgY29tbWFuZCB0byBjaGFuZ2UgdGhlIG1vZGUsIEkgcmVjb21tZW5kIHRvIGxvb2sgYXQgdGhlIHJlcG9zaXRvcnkuXCJcblxuVGhlIG9sZCByZXBvc2l0b3J5IGhhcyBiZWVuIGRlbGV0ZWQsIGhvd2V2ZXIgSSByZXBvc3RlZCB0aGUgZXh0ZW5zaW9uIG9uIEdpdEh1Yi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJleHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJuYW1lIjogIkV4cGFuZGFibGUgTm90aWZpY2F0aW9ucyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thYW5naW5hbS9leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogImV4cGFuZGFibGUtbm90aWZpY2F0aW9uc0BrYWFuLmcuaW5hbS5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "04i0hxsv41wfxg8z590mgn2klma47mgcz7qr52ca2llpd4dkrjj5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSBub3RpZmljYXRpb25zIGluIHRoZSBub3RpZmljYXRpb24gbGlzdCBleHBhbmRhYmxlLiBVc2luZyBnc2V0dGluZ3MsIHlvdSBjYW4gY2hvb3NlIGJldHdlZW4gdGhyZWUgbW9kZXM6IEFVVE8sIEFSUk9XIGFuZCBDUklUSUNBTC5cblxuQVVUTyB3aWxsIGV4cGFuZCB0aGUgbm90aWZpY2F0aW9ucyBpbiB0aGUgbm90aWZpY2F0aW9uIGxpc3QgYXV0b21hdGljYWxseS4gXG5BUlJPVyBhZGRzIGFuIGFycm93IHRoYXQgbGV0cyB5b3UgY2hvb3NlIHdoYXQgdG8gZXhwYW5kIG9yIHVuZXhwYW5kLiBcbkNSSVRJQ0FMIGlzIHNpbWlsYXIgdG8gYXJyb3csIGJ1dCBleHBhbmRzIG5vdGlmaWNhdGlvbnMgd2l0aCB0aGUgdXJnZW5jeSBjcml0aWNhbCBhdXRvbWF0aWNhbGx5LiBcblxuRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGFuIGV4YW1wbGUgY29tbWFuZCB0byBjaGFuZ2UgdGhlIG1vZGUsIEkgcmVjb21tZW5kIHRvIGxvb2sgYXQgdGhlIHJlcG9zaXRvcnkuXCJcblxuVGhlIG9sZCByZXBvc2l0b3J5IGhhcyBiZWVuIGRlbGV0ZWQsIGhvd2V2ZXIgSSByZXBvc3RlZCB0aGUgZXh0ZW5zaW9uIG9uIEdpdEh1Yi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJleHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJuYW1lIjogIkV4cGFuZGFibGUgTm90aWZpY2F0aW9ucyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMtc2V0dGluZ3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thYW5naW5hbS9leHBhbmRhYmxlLW5vdGlmaWNhdGlvbnMiLAogICJ1dWlkIjogImV4cGFuZGFibGUtbm90aWZpY2F0aW9uc0BrYWFuLmcuaW5hbS5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"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", "link": "https://extensions.gnome.org/extension/4469/orange-share/", "shell_version_map": {"40": {"version": "6", "sha256": "0hv84f6rwmrn1i9dasnrsc3dr4iryxg0mbd39ziq1iamas2j3biz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc21hbGwgcHl0aG9uIHNlcnZlciB0aGF0IGFjY2VwdHMgcmVxdWVzdHMgZnJvbSBhbiBhcHBsZSBzaG9ydGN1dCB0byBhbGxvdyBzaGFyaW5nIGFsbCBzb3J0cyBvZiBtZWRpYSBmcm9tIGlPUyIsCiAgIm5hbWUiOiAiT3JhbmdlIFNoYXJlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1lhbm5pczQ0NDQvT3JhbmdlLVNoYXJlLyIsCiAgInV1aWQiOiAib3JhbmdlLXNoYXJlQFlhbm5pczQ0NDQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"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\n    - Caches album art\n    - Control every element in the extension", "link": "https://extensions.gnome.org/extension/4470/media-controls/", "shell_version_map": {"38": {"version": "20", "sha256": "0cvn15w11vgjpgrwb7436gyy6v7zlbnfk8bd34wyijfd9ny7d0xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MVxuICAgIC0gQ2FjaGVzIGFsYnVtIGFydFxuICAgIC0gQ29udHJvbCBldmVyeSBlbGVtZW50IGluIHRoZSBleHRlbnNpb24iLAogICJuYW1lIjogIk1lZGlhIENvbnRyb2xzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lZGlhY29udHJvbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NsaWZmbmlmZi9tZWRpYS1jb250cm9scyIsCiAgInV1aWQiOiAibWVkaWFjb250cm9sc0BjbGlmZm5pZmYuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "20", "sha256": "0cvn15w11vgjpgrwb7436gyy6v7zlbnfk8bd34wyijfd9ny7d0xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MVxuICAgIC0gQ2FjaGVzIGFsYnVtIGFydFxuICAgIC0gQ29udHJvbCBldmVyeSBlbGVtZW50IGluIHRoZSBleHRlbnNpb24iLAogICJuYW1lIjogIk1lZGlhIENvbnRyb2xzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lZGlhY29udHJvbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NsaWZmbmlmZi9tZWRpYS1jb250cm9scyIsCiAgInV1aWQiOiAibWVkaWFjb250cm9sc0BjbGlmZm5pZmYuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}, "41": {"version": "20", "sha256": "0cvn15w11vgjpgrwb7436gyy6v7zlbnfk8bd34wyijfd9ny7d0xj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY29udHJvbHMgYW5kIGluZm9ybWF0aW9uIG9mIHRoZSBjdXJyZW50bHkgcGxheWluZyBtZWRpYSBpbiB0aGUgcGFuZWwuXG5cbiAgICAtIEhpZ2hseSBjdXN0b21pemFibGVcbiAgICAtIFN1cHBvcnQgR05PTUUgMy4zNihiZXRhKSAsIDMuMzgsIDQwLCA0MVxuICAgIC0gQ2FjaGVzIGFsYnVtIGFydFxuICAgIC0gQ29udHJvbCBldmVyeSBlbGVtZW50IGluIHRoZSBleHRlbnNpb24iLAogICJuYW1lIjogIk1lZGlhIENvbnRyb2xzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1lZGlhY29udHJvbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2NsaWZmbmlmZi9tZWRpYS1jb250cm9scyIsCiAgInV1aWQiOiAibWVkaWFjb250cm9sc0BjbGlmZm5pZmYuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyMAp9"}}}
 , {"uuid": "sp-tray@sp-tray.esenliyim.github.com", "name": "spotify-tray", "pname": "spotify-tray", "description": "Adds a simple label to the panel that shows currently playing song on Spotify, nothing more", "link": "https://extensions.gnome.org/extension/4472/spotify-tray/", "shell_version_map": {"38": {"version": "10", "sha256": "0j8sisaidsmybkf6agf580pqppamvs43dbmqjb8j769i1gdq0jp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzaW1wbGUgbGFiZWwgdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgY3VycmVudGx5IHBsYXlpbmcgc29uZyBvbiBTcG90aWZ5LCBub3RoaW5nIG1vcmUiLAogICJuYW1lIjogInNwb3RpZnktdHJheSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcC10cmF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lc2VubGl5aW0vc3AtdHJheSIsCiAgInV1aWQiOiAic3AtdHJheUBzcC10cmF5LmVzZW5saXlpbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "40": {"version": "10", "sha256": "0j8sisaidsmybkf6agf580pqppamvs43dbmqjb8j769i1gdq0jp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzaW1wbGUgbGFiZWwgdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgY3VycmVudGx5IHBsYXlpbmcgc29uZyBvbiBTcG90aWZ5LCBub3RoaW5nIG1vcmUiLAogICJuYW1lIjogInNwb3RpZnktdHJheSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcC10cmF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lc2VubGl5aW0vc3AtdHJheSIsCiAgInV1aWQiOiAic3AtdHJheUBzcC10cmF5LmVzZW5saXlpbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}, "41": {"version": "10", "sha256": "0j8sisaidsmybkf6agf580pqppamvs43dbmqjb8j769i1gdq0jp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzaW1wbGUgbGFiZWwgdG8gdGhlIHBhbmVsIHRoYXQgc2hvd3MgY3VycmVudGx5IHBsYXlpbmcgc29uZyBvbiBTcG90aWZ5LCBub3RoaW5nIG1vcmUiLAogICJuYW1lIjogInNwb3RpZnktdHJheSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcC10cmF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lc2VubGl5aW0vc3AtdHJheSIsCiAgInV1aWQiOiAic3AtdHJheUBzcC10cmF5LmVzZW5saXlpbS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
 , {"uuid": "aws-default-profile-switcher@kevin-chappell.com", "name": "AWS Default Profile Switcher", "pname": "aws-default-profile-switcher", "description": "Gnome shell extension for quickly setting named profiles as the default", "link": "https://extensions.gnome.org/extension/4473/aws-default-profile-switcher/", "shell_version_map": {"38": {"version": "3", "sha256": "0mal1290kdvqv60m0ps42hnx801knh5vd4mlwg1z7ydj9sw31cfg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3IgcXVpY2tseSBzZXR0aW5nIG5hbWVkIHByb2ZpbGVzIGFzIHRoZSBkZWZhdWx0IiwKICAibmFtZSI6ICJBV1MgRGVmYXVsdCBQcm9maWxlIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2V2aW5jaGFwcGVsbC9hd3MtZGVmYXVsdC1wcm9maWxlLXN3aXRjaGVyIiwKICAidXVpZCI6ICJhd3MtZGVmYXVsdC1wcm9maWxlLXN3aXRjaGVyQGtldmluLWNoYXBwZWxsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "hide-panel-for-fullscreen-windows-only@github.freder", "name": "Hide panel (only when active window is fullscreen)", "pname": "hide-panel-only-when-active-window-is-fullscreen", "description": "hide top panel only when a fullscreen application has focus", "link": "https://extensions.gnome.org/extension/4475/hide-panel-only-when-active-window-is-fullscreen/", "shell_version_map": {"40": {"version": "2", "sha256": "1hd5agdjq73qiqip0m3grmlxk8klp26pd71cz555414mi3f9mww3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImhpZGUgdG9wIHBhbmVsIG9ubHkgd2hlbiBhIGZ1bGxzY3JlZW4gYXBwbGljYXRpb24gaGFzIGZvY3VzIiwKICAibmFtZSI6ICJIaWRlIHBhbmVsIChvbmx5IHdoZW4gYWN0aXZlIHdpbmRvdyBpcyBmdWxsc2NyZWVuKSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mcmVkZXIvaGlkZS1wYW5lbC1mb3ItZnVsbHNjcmVlbi13aW5kb3dzLW9ubHkiLAogICJ1dWlkIjogImhpZGUtcGFuZWwtZm9yLWZ1bGxzY3JlZW4td2luZG93cy1vbmx5QGdpdGh1Yi5mcmVkZXIiLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "netspeed@alynx.one", "name": "Net Speed", "pname": "net-speed", "description": "Show current net speed on panel.", "link": "https://extensions.gnome.org/extension/4478/net-speed/", "shell_version_map": {"40": {"version": "2", "sha256": "0j48ai7nqkpr0ymypsicdp7nw59hx9rgya8qws58wx56q9bznl69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBuZXQgc3BlZWQgb24gcGFuZWwuIiwKICAibmFtZSI6ICJOZXQgU3BlZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm5ldHNwZWVkQGFseW54Lm9uZSIsCiAgInZlcnNpb24iOiAyCn0="}}}
-, {"uuid": "forge@jmmaranan.com", "name": "Forge", "pname": "forge", "description": "Tiling and window manager for GNOME\n\nMAJOR CHANGES\n\n - Drag-drop tiling regions.\n - Removed toggling monitor stacked/tabbed layout. Creates a split first then updating the layout.\n\n Please report bugs/issues on https://github.com/jmmaranan/forge/issues", "link": "https://extensions.gnome.org/extension/4481/forge/", "shell_version_map": {"38": {"version": "33", "sha256": "1kvhvg3bkh0dyvmr29ziplsaamzyca8c3iyb4qjcjssi9q9xx8il", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cbk1BSk9SIENIQU5HRVNcblxuIC0gRHJhZy1kcm9wIHRpbGluZyByZWdpb25zLlxuIC0gUmVtb3ZlZCB0b2dnbGluZyBtb25pdG9yIHN0YWNrZWQvdGFiYmVkIGxheW91dC4gQ3JlYXRlcyBhIHNwbGl0IGZpcnN0IHRoZW4gdXBkYXRpbmcgdGhlIGxheW91dC5cblxuIFBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZm9yZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qbW1hcmFuYW4vZm9yZ2UiLAogICJ1dWlkIjogImZvcmdlQGptbWFyYW5hbi5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "40": {"version": "34", "sha256": "0c4b6qkg869z3gj6j7lcld0ppkvi6pd0s3xy01prwlxfpn7p8nsx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cbk1BSk9SIENIQU5HRVNcblxuIC0gRHJhZy1kcm9wIHRpbGluZyByZWdpb25zLlxuIC0gUmVtb3ZlZCB0b2dnbGluZyBtb25pdG9yIHN0YWNrZWQvdGFiYmVkIGxheW91dC4gQ3JlYXRlcyBhIHNwbGl0IGZpcnN0IHRoZW4gdXBkYXRpbmcgdGhlIGxheW91dC5cblxuIFBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZm9yZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZSIsCiAgInV1aWQiOiAiZm9yZ2VAam1tYXJhbmFuLmNvbSIsCiAgInZlcnNpb24iOiAzNAp9"}, "41": {"version": "34", "sha256": "0c4b6qkg869z3gj6j7lcld0ppkvi6pd0s3xy01prwlxfpn7p8nsx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cbk1BSk9SIENIQU5HRVNcblxuIC0gRHJhZy1kcm9wIHRpbGluZyByZWdpb25zLlxuIC0gUmVtb3ZlZCB0b2dnbGluZyBtb25pdG9yIHN0YWNrZWQvdGFiYmVkIGxheW91dC4gQ3JlYXRlcyBhIHNwbGl0IGZpcnN0IHRoZW4gdXBkYXRpbmcgdGhlIGxheW91dC5cblxuIFBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZm9yZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZSIsCiAgInV1aWQiOiAiZm9yZ2VAam1tYXJhbmFuLmNvbSIsCiAgInZlcnNpb24iOiAzNAp9"}}}
-, {"uuid": "autonightlight@zefty.github.io", "name": "Auto Night Light", "pname": "auto-night-light", "description": "Automatically adjust night light", "link": "https://extensions.gnome.org/extension/4482/auto-night-light/", "shell_version_map": {"38": {"version": "3", "sha256": "0qpzr1gbrrdqmgnb0jwgp6n1bd9p2cixcj2b7qg2gdf8a01v7pvs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgYWRqdXN0IG5pZ2h0IGxpZ2h0IiwKICAibmFtZSI6ICJBdXRvIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWmVmdHkvQXV0b05pZ2h0TGlnaHQiLAogICJ1dWlkIjogImF1dG9uaWdodGxpZ2h0QHplZnR5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "0qpzr1gbrrdqmgnb0jwgp6n1bd9p2cixcj2b7qg2gdf8a01v7pvs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgYWRqdXN0IG5pZ2h0IGxpZ2h0IiwKICAibmFtZSI6ICJBdXRvIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWmVmdHkvQXV0b05pZ2h0TGlnaHQiLAogICJ1dWlkIjogImF1dG9uaWdodGxpZ2h0QHplZnR5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"uuid": "forge@jmmaranan.com", "name": "Forge", "pname": "forge", "description": "Tiling and window manager for GNOME\n\nMAJOR CHANGES\n\n - Drag-drop tiling regions.\n - Removed toggling monitor stacked/tabbed layout. Creates a split first then updating the layout.\n\n Please report bugs/issues on https://github.com/jmmaranan/forge/issues", "link": "https://extensions.gnome.org/extension/4481/forge/", "shell_version_map": {"38": {"version": "35", "sha256": "14pxp52j63x93lm80k27k7xafjnadifz2ral9a8sipqrdhdgji5b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cbk1BSk9SIENIQU5HRVNcblxuIC0gRHJhZy1kcm9wIHRpbGluZyByZWdpb25zLlxuIC0gUmVtb3ZlZCB0b2dnbGluZyBtb25pdG9yIHN0YWNrZWQvdGFiYmVkIGxheW91dC4gQ3JlYXRlcyBhIHNwbGl0IGZpcnN0IHRoZW4gdXBkYXRpbmcgdGhlIGxheW91dC5cblxuIFBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZm9yZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qbW1hcmFuYW4vZm9yZ2UiLAogICJ1dWlkIjogImZvcmdlQGptbWFyYW5hbi5jb20iLAogICJ2ZXJzaW9uIjogMzUKfQ=="}, "40": {"version": "37", "sha256": "0xm6ypj2p0hbmhxwx9snral0ca0yp0v9v7bd8nvg2ky8gqy744bn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cbk1BSk9SIENIQU5HRVNcblxuIC0gRHJhZy1kcm9wIHRpbGluZyByZWdpb25zLlxuIC0gUmVtb3ZlZCB0b2dnbGluZyBtb25pdG9yIHN0YWNrZWQvdGFiYmVkIGxheW91dC4gQ3JlYXRlcyBhIHNwbGl0IGZpcnN0IHRoZW4gdXBkYXRpbmcgdGhlIGxheW91dC5cblxuIFBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZm9yZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZSIsCiAgInV1aWQiOiAiZm9yZ2VAam1tYXJhbmFuLmNvbSIsCiAgInZlcnNpb24iOiAzNwp9"}, "41": {"version": "37", "sha256": "0xm6ypj2p0hbmhxwx9snral0ca0yp0v9v7bd8nvg2ky8gqy744bn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGluZyBhbmQgd2luZG93IG1hbmFnZXIgZm9yIEdOT01FXG5cbk1BSk9SIENIQU5HRVNcblxuIC0gRHJhZy1kcm9wIHRpbGluZyByZWdpb25zLlxuIC0gUmVtb3ZlZCB0b2dnbGluZyBtb25pdG9yIHN0YWNrZWQvdGFiYmVkIGxheW91dC4gQ3JlYXRlcyBhIHNwbGl0IGZpcnN0IHRoZW4gdXBkYXRpbmcgdGhlIGxheW91dC5cblxuIFBsZWFzZSByZXBvcnQgYnVncy9pc3N1ZXMgb24gaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZS9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmb3JnZSIsCiAgIm5hbWUiOiAiRm9yZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZm9yZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ptbWFyYW5hbi9mb3JnZSIsCiAgInV1aWQiOiAiZm9yZ2VAam1tYXJhbmFuLmNvbSIsCiAgInZlcnNpb24iOiAzNwp9"}}}
+, {"uuid": "autonightlight@zefty.github.io", "name": "Auto Night Light", "pname": "auto-night-light", "description": "Automatically adjust night light", "link": "https://extensions.gnome.org/extension/4482/auto-night-light/", "shell_version_map": {"38": {"version": "4", "sha256": "1ha064bx8n8369swwh96yd257h2han94v5xpyfilxa756yihcf4w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgYWRqdXN0IG5pZ2h0IGxpZ2h0IiwKICAibmFtZSI6ICJBdXRvIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1plZnR5L0F1dG9OaWdodExpZ2h0IiwKICAidXVpZCI6ICJhdXRvbmlnaHRsaWdodEB6ZWZ0eS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "1ha064bx8n8369swwh96yd257h2han94v5xpyfilxa756yihcf4w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgYWRqdXN0IG5pZ2h0IGxpZ2h0IiwKICAibmFtZSI6ICJBdXRvIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1plZnR5L0F1dG9OaWdodExpZ2h0IiwKICAidXVpZCI6ICJhdXRvbmlnaHRsaWdodEB6ZWZ0eS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "favourites-in-appgrid@harshadgavali.gitlab.org", "name": "Favourites in AppGrid", "pname": "favourites-in-appgrid", "description": "Keep favourite applications in AppGrid", "link": "https://extensions.gnome.org/extension/4485/favourites-in-appgrid/", "shell_version_map": {"40": {"version": "1", "sha256": "1zcbs36kcmw50wgxkqn22abh8g1nx17p48vbpzk5x2842mn8shaz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgZmF2b3VyaXRlIGFwcGxpY2F0aW9ucyBpbiBBcHBHcmlkIiwKICAibmFtZSI6ICJGYXZvdXJpdGVzIGluIEFwcEdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2hhcnNoYWRnYXZhbGkvZmF2b3VyaXRlcy1pbi1hcHBncmlkLyIsCiAgInV1aWQiOiAiZmF2b3VyaXRlcy1pbi1hcHBncmlkQGhhcnNoYWRnYXZhbGkuZ2l0bGFiLm9yZyIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "1zcbs36kcmw50wgxkqn22abh8g1nx17p48vbpzk5x2842mn8shaz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgZmF2b3VyaXRlIGFwcGxpY2F0aW9ucyBpbiBBcHBHcmlkIiwKICAibmFtZSI6ICJGYXZvdXJpdGVzIGluIEFwcEdyaWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2hhcnNoYWRnYXZhbGkvZmF2b3VyaXRlcy1pbi1hcHBncmlkLyIsCiAgInV1aWQiOiAiZmF2b3VyaXRlcy1pbi1hcHBncmlkQGhhcnNoYWRnYXZhbGkuZ2l0bGFiLm9yZyIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "dark-variant@hardpixel.eu", "name": "Dark Variant", "pname": "dark-variant", "description": "Enable dark window decorations on applications. This extension is not compatible with applications that use Client Side Decorations (CSD).\n\nThis extension depends on some Xorg utilities. To install them:\n- Debian/Ubuntu: apt install x11-utils\n- Fedora/RHEL: dnf install xorg-x11-utils\n- Arch: pacman -S xorg-xprop\n\n*Settings are provided to enable/disable applications.", "link": "https://extensions.gnome.org/extension/4488/dark-variant/", "shell_version_map": {"40": {"version": "3", "sha256": "08ywrbcqzijfw9hxlxn56j0dbavq413sbf2qlf6xpc9mi825jhin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBkYXJrIHdpbmRvdyBkZWNvcmF0aW9ucyBvbiBhcHBsaWNhdGlvbnMuIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggYXBwbGljYXRpb25zIHRoYXQgdXNlIENsaWVudCBTaWRlIERlY29yYXRpb25zIChDU0QpLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgeDExLXV0aWxzXG4tIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIGFwcGxpY2F0aW9ucy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkYXJrLXZhcmlhbnQiLAogICJuYW1lIjogIkRhcmsgVmFyaWFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXJrLXZhcmlhbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9kYXJrLXZhcmlhbnQiLAogICJ1dWlkIjogImRhcmstdmFyaWFudEBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "08ywrbcqzijfw9hxlxn56j0dbavq413sbf2qlf6xpc9mi825jhin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBkYXJrIHdpbmRvdyBkZWNvcmF0aW9ucyBvbiBhcHBsaWNhdGlvbnMuIFRoaXMgZXh0ZW5zaW9uIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggYXBwbGljYXRpb25zIHRoYXQgdXNlIENsaWVudCBTaWRlIERlY29yYXRpb25zIChDU0QpLlxuXG5UaGlzIGV4dGVuc2lvbiBkZXBlbmRzIG9uIHNvbWUgWG9yZyB1dGlsaXRpZXMuIFRvIGluc3RhbGwgdGhlbTpcbi0gRGViaWFuL1VidW50dTogYXB0IGluc3RhbGwgeDExLXV0aWxzXG4tIEZlZG9yYS9SSEVMOiBkbmYgaW5zdGFsbCB4b3JnLXgxMS11dGlsc1xuLSBBcmNoOiBwYWNtYW4gLVMgeG9yZy14cHJvcFxuXG4qU2V0dGluZ3MgYXJlIHByb3ZpZGVkIHRvIGVuYWJsZS9kaXNhYmxlIGFwcGxpY2F0aW9ucy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkYXJrLXZhcmlhbnQiLAogICJuYW1lIjogIkRhcmsgVmFyaWFudCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXJrLXZhcmlhbnQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcmRwaXhlbC9kYXJrLXZhcmlhbnQiLAogICJ1dWlkIjogImRhcmstdmFyaWFudEBoYXJkcGl4ZWwuZXUiLAogICJ2ZXJzaW9uIjogMwp9"}}}
 , {"uuid": "PrivacyMenu@stuarthayhurst", "name": "Privacy Settings Menu", "pname": "privacy-settings-menu", "description": "Add a privacy menu to the top bar for quick access to privacy settings", "link": "https://extensions.gnome.org/extension/4491/privacy-settings-menu/", "shell_version_map": {"38": {"version": "4", "sha256": "1kdkm032xz72cycaj85q1yjb7s6bv3srysp4sn69phclldyg6bhx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHByaXZhY3kgbWVudSB0byB0aGUgdG9wIGJhciBmb3IgcXVpY2sgYWNjZXNzIHRvIHByaXZhY3kgc2V0dGluZ3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBTZXR0aW5ncyBNZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9wcml2YWN5LW1lbnUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "1kdkm032xz72cycaj85q1yjb7s6bv3srysp4sn69phclldyg6bhx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHByaXZhY3kgbWVudSB0byB0aGUgdG9wIGJhciBmb3IgcXVpY2sgYWNjZXNzIHRvIHByaXZhY3kgc2V0dGluZ3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBTZXR0aW5ncyBNZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9wcml2YWN5LW1lbnUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "1kdkm032xz72cycaj85q1yjb7s6bv3srysp4sn69phclldyg6bhx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHByaXZhY3kgbWVudSB0byB0aGUgdG9wIGJhciBmb3IgcXVpY2sgYWNjZXNzIHRvIHByaXZhY3kgc2V0dGluZ3MiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgIm5hbWUiOiAiUHJpdmFjeSBTZXR0aW5ncyBNZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdHVhcnRoYXlodXJzdC9wcml2YWN5LW1lbnUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJQcml2YWN5TWVudUBzdHVhcnRoYXlodXJzdCIsCiAgInZlcnNpb24iOiA0Cn0="}}}
-, {"uuid": "hide-panel-lite@fthx", "name": "Hide Panel (light version & without hot corner)", "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": "1", "sha256": "092fqwypkfnzfa584nzg90ml9q8cvnxgfvhl4gj049745szs2j06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgKGxpZ2h0IHZlcnNpb24gJiB3aXRob3V0IGhvdCBjb3JuZXIpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2hpZGUtcGFuZWwtbGl0ZSIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbC1saXRlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMQp9"}, "40": {"version": "1", "sha256": "092fqwypkfnzfa584nzg90ml9q8cvnxgfvhl4gj049745szs2j06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgKGxpZ2h0IHZlcnNpb24gJiB3aXRob3V0IGhvdCBjb3JuZXIpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2hpZGUtcGFuZWwtbGl0ZSIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbC1saXRlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMQp9"}, "41": {"version": "1", "sha256": "092fqwypkfnzfa584nzg90ml9q8cvnxgfvhl4gj049745szs2j06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgKGxpZ2h0IHZlcnNpb24gJiB3aXRob3V0IGhvdCBjb3JuZXIpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2hpZGUtcGFuZWwtbGl0ZSIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbC1saXRlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"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="}, "40": {"version": "2", "sha256": "13kwd7sh0w34881wwaqvv0mchd7ym7av5s658jcrq2n8n2zma4xi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgTGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbC1saXRlIiwKICAidXVpZCI6ICJoaWRlLXBhbmVsLWxpdGVAZnRoeCIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "13kwd7sh0w34881wwaqvv0mchd7ym7av5s658jcrq2n8n2zma4xi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy5cblxuRm9yIHRob3NlIHdobyBkb24ndCBuZWVkIGEgaG90IGNvcm5lciAoZS5nLiBydW5uaW5nIEdOT01FIDQwKyB3aXRoIHRocmVlIGZpbmdlcnMgZ2VzdHVyZXMpLiBWZXJ5IHZlcnkgbGlnaHQgZXh0ZW5zaW9uLiBObyBvcHRpb25zLCBubyBidWdzLiA7LSkiLAogICJuYW1lIjogIkhpZGUgUGFuZWwgTGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbC1saXRlIiwKICAidXVpZCI6ICJoaWRlLXBhbmVsLWxpdGVAZnRoeCIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "ssm-gnome@lgiki.net", "name": "Simple System Monitor", "pname": "simple-system-monitor", "description": "Show current CPU usage, memory usage and net speed on panel.\n\nThis is a fork of https://extensions.gnome.org/extension/4478/net-speed/.", "link": "https://extensions.gnome.org/extension/4506/simple-system-monitor/", "shell_version_map": {"40": {"version": "5", "sha256": "1gzj7zryq716nq15im9wfiaxji3b6gaq0yvbc6cqp2fawj7ajj13", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBDUFUgdXNhZ2UsIG1lbW9yeSB1c2FnZSBhbmQgbmV0IHNwZWVkIG9uIHBhbmVsLlxuXG5UaGlzIGlzIGEgZm9yayBvZiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80NDc4L25ldC1zcGVlZC8uIiwKICAibmFtZSI6ICJTaW1wbGUgU3lzdGVtIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xHaWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zaW1wbGUtc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogInNzbS1nbm9tZUBsZ2lraS5uZXQiLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1gzj7zryq716nq15im9wfiaxji3b6gaq0yvbc6cqp2fawj7ajj13", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBDUFUgdXNhZ2UsIG1lbW9yeSB1c2FnZSBhbmQgbmV0IHNwZWVkIG9uIHBhbmVsLlxuXG5UaGlzIGlzIGEgZm9yayBvZiBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi80NDc4L25ldC1zcGVlZC8uIiwKICAibmFtZSI6ICJTaW1wbGUgU3lzdGVtIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xHaWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zaW1wbGUtc3lzdGVtLW1vbml0b3IiLAogICJ1dWlkIjogInNzbS1nbm9tZUBsZ2lraS5uZXQiLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "unredirect@aunetx", "name": "Disable unredirect fullscreen windows", "pname": "disable-unredirect-fullscreen-windows", "description": "Disables unredirect fullscreen windows in gnome-shell to prevent artifacts when in fullscreen.\n\nThis version makes sure the unredirect option is not re-enabled automatically by the shell.", "link": "https://extensions.gnome.org/extension/4509/disable-unredirect-fullscreen-windows/", "shell_version_map": {"40": {"version": "3", "sha256": "1mgvpzzfdzn5qsxwz5911a8qgq0r34az6xpmqr72ksx6yf13l85z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHByZXZlbnQgYXJ0aWZhY3RzIHdoZW4gaW4gZnVsbHNjcmVlbi5cblxuVGhpcyB2ZXJzaW9uIG1ha2VzIHN1cmUgdGhlIHVucmVkaXJlY3Qgb3B0aW9uIGlzIG5vdCByZS1lbmFibGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHNoZWxsLiIsCiAgIm5hbWUiOiAiRGlzYWJsZSB1bnJlZGlyZWN0IGZ1bGxzY3JlZW4gd2luZG93cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAYXVuZXR4IiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "1mgvpzzfdzn5qsxwz5911a8qgq0r34az6xpmqr72ksx6yf13l85z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGVzIHVucmVkaXJlY3QgZnVsbHNjcmVlbiB3aW5kb3dzIGluIGdub21lLXNoZWxsIHRvIHByZXZlbnQgYXJ0aWZhY3RzIHdoZW4gaW4gZnVsbHNjcmVlbi5cblxuVGhpcyB2ZXJzaW9uIG1ha2VzIHN1cmUgdGhlIHVucmVkaXJlY3Qgb3B0aW9uIGlzIG5vdCByZS1lbmFibGVkIGF1dG9tYXRpY2FsbHkgYnkgdGhlIHNoZWxsLiIsCiAgIm5hbWUiOiAiRGlzYWJsZSB1bnJlZGlyZWN0IGZ1bGxzY3JlZW4gd2luZG93cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNhYmxlLXVucmVkaXJlY3QiLAogICJ1dWlkIjogInVucmVkaXJlY3RAYXVuZXR4IiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
 , {"uuid": "nepali-date@biplab", "name": "Nepali Date", "pname": "nepali-calendar", "description": "Shows nepali date on the panel.", "link": "https://extensions.gnome.org/extension/4518/nepali-calendar/", "shell_version_map": {"40": {"version": "11", "sha256": "1g4zdhypy553wbdq0pnxva05ab6p3dv5dp4jcw8vrf8f0kblxxa5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxMQp9"}, "41": {"version": "11", "sha256": "1g4zdhypy553wbdq0pnxva05ab6p3dv5dp4jcw8vrf8f0kblxxa5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG5lcGFsaSBkYXRlIG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIk5lcGFsaSBEYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9CaXBsYWItRHV0dGEvTmVwYWxpX0RhdGUiLAogICJ1dWlkIjogIm5lcGFsaS1kYXRlQGJpcGxhYiIsCiAgInZlcnNpb24iOiAxMQp9"}}}
@@ -572,10 +577,10 @@
 , {"uuid": "taildropsendxuwuming2014@outlook.com", "name": "TailDrop Send", "pname": "taildrop-send", "description": "Send files via tailscale", "link": "https://extensions.gnome.org/extension/4533/taildrop-send/", "shell_version_map": {"40": {"version": "4", "sha256": "1w2nydglm2n0kyzwd4rh5q0x8h2d1ycy4ygxj00qfpxxnw477xda", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlbmQgZmlsZXMgdmlhIHRhaWxzY2FsZSIsCiAgImdldHRleHQtZG9tYWluIjogInRhaWxkcm9wLXNlbmQtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJUYWlsRHJvcCBTZW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhaWxkcm9wc2VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnIyMzMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhaWxkcm9wc2VuZCIsCiAgInV1aWQiOiAidGFpbGRyb3BzZW5keHV3dW1pbmcyMDE0QG91dGxvb2suY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1w2nydglm2n0kyzwd4rh5q0x8h2d1ycy4ygxj00qfpxxnw477xda", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlbmQgZmlsZXMgdmlhIHRhaWxzY2FsZSIsCiAgImdldHRleHQtZG9tYWluIjogInRhaWxkcm9wLXNlbmQtZXh0ZW5zaW9uIiwKICAibmFtZSI6ICJUYWlsRHJvcCBTZW5kIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhaWxkcm9wc2VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnIyMzMvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRhaWxkcm9wc2VuZCIsCiAgInV1aWQiOiAidGFpbGRyb3BzZW5keHV3dW1pbmcyMDE0QG91dGxvb2suY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "toggle-mute-on-middle-click-updated@konradmb", "name": "Toggle Mute on Middle Click", "pname": "toggle-mute-on-middle-click", "description": "Toggle mute by middle-clicking the volume indicator. Updated for Gnome 40 from: https://extensions.gnome.org/extension/1473/toggle-mute-on-middle-click/", "link": "https://extensions.gnome.org/extension/4538/toggle-mute-on-middle-click/", "shell_version_map": {"40": {"version": "1", "sha256": "0ag52arddv2dypfr1bs28c6dnfq0lrccibbl6cdzjx4d26j4cv4z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBtdXRlIGJ5IG1pZGRsZS1jbGlja2luZyB0aGUgdm9sdW1lIGluZGljYXRvci4gVXBkYXRlZCBmb3IgR25vbWUgNDAgZnJvbTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTQ3My90b2dnbGUtbXV0ZS1vbi1taWRkbGUtY2xpY2svIiwKICAibmFtZSI6ICJUb2dnbGUgTXV0ZSBvbiBNaWRkbGUgQ2xpY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInRvZ2dsZS1tdXRlLW9uLW1pZGRsZS1jbGljay11cGRhdGVkQGtvbnJhZG1iIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "autohide-volume@unboiled.info", "name": "Autohide Volume", "pname": "autohide-volume", "description": "Autohide volume indicator when muted\n\nI'm not interested in the fact my output audio device is muted: this is how it's supposed to be. But if it's unmuted, then I want to see the icon.\n\nExcept when the mic is on, then I'm probably in a call, frantically figuring out what's wrong.", "link": "https://extensions.gnome.org/extension/4539/autohide-volume/", "shell_version_map": {"41": {"version": "1", "sha256": "1kiki2gks6jvngx62jz1mdg3xpi4npc4sv9v4mc7fz4s91ibsykr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9oaWRlIHZvbHVtZSBpbmRpY2F0b3Igd2hlbiBtdXRlZFxuXG5JJ20gbm90IGludGVyZXN0ZWQgaW4gdGhlIGZhY3QgbXkgb3V0cHV0IGF1ZGlvIGRldmljZSBpcyBtdXRlZDogdGhpcyBpcyBob3cgaXQncyBzdXBwb3NlZCB0byBiZS4gQnV0IGlmIGl0J3MgdW5tdXRlZCwgdGhlbiBJIHdhbnQgdG8gc2VlIHRoZSBpY29uLlxuXG5FeGNlcHQgd2hlbiB0aGUgbWljIGlzIG9uLCB0aGVuIEknbSBwcm9iYWJseSBpbiBhIGNhbGwsIGZyYW50aWNhbGx5IGZpZ3VyaW5nIG91dCB3aGF0J3Mgd3JvbmcuIiwKICAibmFtZSI6ICJBdXRvaGlkZSBWb2x1bWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwOi8vZ2l0aHViLmNvbS90MTg0MjU2L2dub21lLXNoZWxsLWV4dGVuc2lvbi1hdXRvaGlkZS12b2x1bWUiLAogICJ1dWlkIjogImF1dG9oaWRlLXZvbHVtZUB1bmJvaWxlZC5pbmZvIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
-, {"uuid": "cloudflare@adam.gadmz", "name": "Cloudflare", "pname": "cloudflare", "description": "Warp Connect", "link": "https://extensions.gnome.org/extension/4542/cloudflare/", "shell_version_map": {"38": {"version": "6", "sha256": "1kng66bnbq9fa307zmijarn6s4672h13s8hl55k2yf406rl5bijz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiV2FycCBDb25uZWN0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsb3VkZmxhcmUiLAogICJuYW1lIjogIkNsb3VkZmxhcmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kdW9uZ2dpYWtoYW5oYi9DbG91ZGZsYXJlX0dOT01FX0V4dGVuc2lvbiIsCiAgInV1aWQiOiAiY2xvdWRmbGFyZUBhZGFtLmdhZG16IiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
-, {"uuid": "dell-command-configure-menu@vsimkus.github.io", "name": "Dell Command Configure menu", "pname": "dell-command-configure-menu", "description": "Adds submenu in gnome shell to access Dell Command Configure options.\n\nCurrently, only battery charge settings are implemented.\n\nThe Dell Command Configure tool must be installed separately from Dell https://www.dell.com/support/kbdoc/en-uk/000178000/dell-command-configure#Downloads.", "link": "https://extensions.gnome.org/extension/4545/dell-command-configure-menu/", "shell_version_map": {"38": {"version": "3", "sha256": "0mf9vibjzq1l9g6f3y7l7hx6dvqxbasdyhbrc8vfbczy9lar4v7h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgc3VibWVudSBpbiBnbm9tZSBzaGVsbCB0byBhY2Nlc3MgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBvcHRpb25zLlxuXG5DdXJyZW50bHksIG9ubHkgYmF0dGVyeSBjaGFyZ2Ugc2V0dGluZ3MgYXJlIGltcGxlbWVudGVkLlxuXG5UaGUgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSB0b29sIG11c3QgYmUgaW5zdGFsbGVkIHNlcGFyYXRlbHkgZnJvbSBEZWxsIGh0dHBzOi8vd3d3LmRlbGwuY29tL3N1cHBvcnQva2Jkb2MvZW4tdWsvMDAwMTc4MDAwL2RlbGwtY29tbWFuZC1jb25maWd1cmUjRG93bmxvYWRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlbGwtY29tbWFuZC1jb25maWd1cmUtbWVudSIsCiAgIm5hbWUiOiAiRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBtZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlbGxjb21tYW5kY29uZmlndXJlbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdnNpbWt1cy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVsbC1jb21tYW5kLWNvbmZpZ3VyZS1tZW51IiwKICAidXVpZCI6ICJkZWxsLWNvbW1hbmQtY29uZmlndXJlLW1lbnVAdnNpbWt1cy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "0mf9vibjzq1l9g6f3y7l7hx6dvqxbasdyhbrc8vfbczy9lar4v7h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgc3VibWVudSBpbiBnbm9tZSBzaGVsbCB0byBhY2Nlc3MgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBvcHRpb25zLlxuXG5DdXJyZW50bHksIG9ubHkgYmF0dGVyeSBjaGFyZ2Ugc2V0dGluZ3MgYXJlIGltcGxlbWVudGVkLlxuXG5UaGUgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSB0b29sIG11c3QgYmUgaW5zdGFsbGVkIHNlcGFyYXRlbHkgZnJvbSBEZWxsIGh0dHBzOi8vd3d3LmRlbGwuY29tL3N1cHBvcnQva2Jkb2MvZW4tdWsvMDAwMTc4MDAwL2RlbGwtY29tbWFuZC1jb25maWd1cmUjRG93bmxvYWRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlbGwtY29tbWFuZC1jb25maWd1cmUtbWVudSIsCiAgIm5hbWUiOiAiRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBtZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlbGxjb21tYW5kY29uZmlndXJlbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdnNpbWt1cy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVsbC1jb21tYW5kLWNvbmZpZ3VyZS1tZW51IiwKICAidXVpZCI6ICJkZWxsLWNvbW1hbmQtY29uZmlndXJlLW1lbnVAdnNpbWt1cy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "0mf9vibjzq1l9g6f3y7l7hx6dvqxbasdyhbrc8vfbczy9lar4v7h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgc3VibWVudSBpbiBnbm9tZSBzaGVsbCB0byBhY2Nlc3MgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBvcHRpb25zLlxuXG5DdXJyZW50bHksIG9ubHkgYmF0dGVyeSBjaGFyZ2Ugc2V0dGluZ3MgYXJlIGltcGxlbWVudGVkLlxuXG5UaGUgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSB0b29sIG11c3QgYmUgaW5zdGFsbGVkIHNlcGFyYXRlbHkgZnJvbSBEZWxsIGh0dHBzOi8vd3d3LmRlbGwuY29tL3N1cHBvcnQva2Jkb2MvZW4tdWsvMDAwMTc4MDAwL2RlbGwtY29tbWFuZC1jb25maWd1cmUjRG93bmxvYWRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlbGwtY29tbWFuZC1jb25maWd1cmUtbWVudSIsCiAgIm5hbWUiOiAiRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBtZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlbGxjb21tYW5kY29uZmlndXJlbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdnNpbWt1cy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVsbC1jb21tYW5kLWNvbmZpZ3VyZS1tZW51IiwKICAidXVpZCI6ICJkZWxsLWNvbW1hbmQtY29uZmlndXJlLW1lbnVAdnNpbWt1cy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "cloudflare@adam.gadmz", "name": "Cloudflare", "pname": "cloudflare", "description": "Warp Connect", "link": "https://extensions.gnome.org/extension/4542/cloudflare/", "shell_version_map": {"38": {"version": "7", "sha256": "0wizvqfcsyh43786zhci4j5b8z28y95cjajvqrb51x4r489l67lw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiV2FycCBDb25uZWN0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsb3VkZmxhcmUiLAogICJuYW1lIjogIkNsb3VkZmxhcmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZHVvbmdnaWFraGFuaGIvQ2xvdWRmbGFyZV9HTk9NRV9FeHRlbnNpb24iLAogICJ1dWlkIjogImNsb3VkZmxhcmVAYWRhbS5nYWRteiIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "0wizvqfcsyh43786zhci4j5b8z28y95cjajvqrb51x4r489l67lw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiV2FycCBDb25uZWN0IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsb3VkZmxhcmUiLAogICJuYW1lIjogIkNsb3VkZmxhcmUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZHVvbmdnaWFraGFuaGIvQ2xvdWRmbGFyZV9HTk9NRV9FeHRlbnNpb24iLAogICJ1dWlkIjogImNsb3VkZmxhcmVAYWRhbS5nYWRteiIsCiAgInZlcnNpb24iOiA3Cn0="}}}
+, {"uuid": "dell-command-configure-menu@vsimkus.github.io", "name": "Dell Command Configure menu", "pname": "dell-command-configure-menu", "description": "Adds submenu in gnome shell to access Dell Command Configure options.\n\nCurrently, only battery charge settings are implemented.\n\nThe Dell Command Configure tool must be installed separately from Dell https://www.dell.com/support/kbdoc/en-uk/000178000/dell-command-configure#Downloads.", "link": "https://extensions.gnome.org/extension/4545/dell-command-configure-menu/", "shell_version_map": {"38": {"version": "3", "sha256": "0mf9vibjzq1l9g6f3y7l7hx6dvqxbasdyhbrc8vfbczy9lar4v7h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgc3VibWVudSBpbiBnbm9tZSBzaGVsbCB0byBhY2Nlc3MgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBvcHRpb25zLlxuXG5DdXJyZW50bHksIG9ubHkgYmF0dGVyeSBjaGFyZ2Ugc2V0dGluZ3MgYXJlIGltcGxlbWVudGVkLlxuXG5UaGUgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSB0b29sIG11c3QgYmUgaW5zdGFsbGVkIHNlcGFyYXRlbHkgZnJvbSBEZWxsIGh0dHBzOi8vd3d3LmRlbGwuY29tL3N1cHBvcnQva2Jkb2MvZW4tdWsvMDAwMTc4MDAwL2RlbGwtY29tbWFuZC1jb25maWd1cmUjRG93bmxvYWRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlbGwtY29tbWFuZC1jb25maWd1cmUtbWVudSIsCiAgIm5hbWUiOiAiRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBtZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlbGxjb21tYW5kY29uZmlndXJlbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdnNpbWt1cy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVsbC1jb21tYW5kLWNvbmZpZ3VyZS1tZW51IiwKICAidXVpZCI6ICJkZWxsLWNvbW1hbmQtY29uZmlndXJlLW1lbnVAdnNpbWt1cy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "4", "sha256": "1dcb05c8aii2cnryjwn392991jk010gx6ihb4ld30ylkvd45v0lr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgc3VibWVudSBpbiBnbm9tZSBzaGVsbCB0byBhY2Nlc3MgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBvcHRpb25zLlxuXG5DdXJyZW50bHksIG9ubHkgYmF0dGVyeSBjaGFyZ2Ugc2V0dGluZ3MgYXJlIGltcGxlbWVudGVkLlxuXG5UaGUgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSB0b29sIG11c3QgYmUgaW5zdGFsbGVkIHNlcGFyYXRlbHkgZnJvbSBEZWxsIGh0dHBzOi8vd3d3LmRlbGwuY29tL3N1cHBvcnQva2Jkb2MvZW4tdWsvMDAwMTc4MDAwL2RlbGwtY29tbWFuZC1jb25maWd1cmUjRG93bmxvYWRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlbGwtY29tbWFuZC1jb25maWd1cmUtbWVudSIsCiAgIm5hbWUiOiAiRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBtZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlbGxjb21tYW5kY29uZmlndXJlbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdnNpbWt1cy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVsbC1jb21tYW5kLWNvbmZpZ3VyZS1tZW51IiwKICAidXVpZCI6ICJkZWxsLWNvbW1hbmQtY29uZmlndXJlLW1lbnVAdnNpbWt1cy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "1dcb05c8aii2cnryjwn392991jk010gx6ihb4ld30ylkvd45v0lr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgc3VibWVudSBpbiBnbm9tZSBzaGVsbCB0byBhY2Nlc3MgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBvcHRpb25zLlxuXG5DdXJyZW50bHksIG9ubHkgYmF0dGVyeSBjaGFyZ2Ugc2V0dGluZ3MgYXJlIGltcGxlbWVudGVkLlxuXG5UaGUgRGVsbCBDb21tYW5kIENvbmZpZ3VyZSB0b29sIG11c3QgYmUgaW5zdGFsbGVkIHNlcGFyYXRlbHkgZnJvbSBEZWxsIGh0dHBzOi8vd3d3LmRlbGwuY29tL3N1cHBvcnQva2Jkb2MvZW4tdWsvMDAwMTc4MDAwL2RlbGwtY29tbWFuZC1jb25maWd1cmUjRG93bmxvYWRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlbGwtY29tbWFuZC1jb25maWd1cmUtbWVudSIsCiAgIm5hbWUiOiAiRGVsbCBDb21tYW5kIENvbmZpZ3VyZSBtZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlbGxjb21tYW5kY29uZmlndXJlbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdnNpbWt1cy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVsbC1jb21tYW5kLWNvbmZpZ3VyZS1tZW51IiwKICAidXVpZCI6ICJkZWxsLWNvbW1hbmQtY29uZmlndXJlLW1lbnVAdnNpbWt1cy5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "tactile@lundal.io", "name": "Tactile", "pname": "tactile", "description": "Tile windows on a custom grid using your keyboard. Type Super-T to show the grid, then type two tiles (or the same tile twice) to move the active window.\n\nThe grid can be up to 4x3 (corresponding to one hand on the keyboard) and each row/column can be weighted to take up more or less space.", "link": "https://extensions.gnome.org/extension/4548/tactile/", "shell_version_map": {"38": {"version": "8", "sha256": "0zqzsywg616s8i2mla2bswnm8mskyis79sazwhrpy77yrhviy6zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2x1bmRhbC90YWN0aWxlIiwKICAidXVpZCI6ICJ0YWN0aWxlQGx1bmRhbC5pbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "0zqzsywg616s8i2mla2bswnm8mskyis79sazwhrpy77yrhviy6zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2x1bmRhbC90YWN0aWxlIiwKICAidXVpZCI6ICJ0YWN0aWxlQGx1bmRhbC5pbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "0zqzsywg616s8i2mla2bswnm8mskyis79sazwhrpy77yrhviy6zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGN1c3RvbSBncmlkIHVzaW5nIHlvdXIga2V5Ym9hcmQuIFR5cGUgU3VwZXItVCB0byBzaG93IHRoZSBncmlkLCB0aGVuIHR5cGUgdHdvIHRpbGVzIChvciB0aGUgc2FtZSB0aWxlIHR3aWNlKSB0byBtb3ZlIHRoZSBhY3RpdmUgd2luZG93LlxuXG5UaGUgZ3JpZCBjYW4gYmUgdXAgdG8gNHgzIChjb3JyZXNwb25kaW5nIHRvIG9uZSBoYW5kIG9uIHRoZSBrZXlib2FyZCkgYW5kIGVhY2ggcm93L2NvbHVtbiBjYW4gYmUgd2VpZ2h0ZWQgdG8gdGFrZSB1cCBtb3JlIG9yIGxlc3Mgc3BhY2UuIiwKICAibmFtZSI6ICJUYWN0aWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnRhY3RpbGUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2x1bmRhbC90YWN0aWxlIiwKICAidXVpZCI6ICJ0YWN0aWxlQGx1bmRhbC5pbyIsCiAgInZlcnNpb24iOiA4Cn0="}}}
-, {"uuid": "killapp@adam.gadmz", "name": "Kill App", "pname": "kill-app", "description": "Force quit or kill application", "link": "https://extensions.gnome.org/extension/4551/kill-app/", "shell_version_map": {"38": {"version": "1", "sha256": "1qd59hn43lia2b7wg89yhxnai4dg1v66rfafisy20sfdq1rhrqax", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiRm9yY2UgcXVpdCBvciBraWxsIGFwcGxpY2F0aW9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtpbGxhcHAiLAogICJuYW1lIjogIktpbGwgQXBwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZHVvbmdnaWFraGFuaGIvS2lsbGFwcF9HTk9NRV9FeHRlbnNpb24iLAogICJ1dWlkIjogImtpbGxhcHBAYWRhbS5nYWRteiIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "killapp@adam.gadmz", "name": "Kill App", "pname": "kill-app", "description": "Force quit or kill application", "link": "https://extensions.gnome.org/extension/4551/kill-app/", "shell_version_map": {"38": {"version": "3", "sha256": "0gc6bk4piblqmm6qhb0jicdg571b23b0mns6mqhws4glznn4ckry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiRm9yY2UgcXVpdCBvciBraWxsIGFwcGxpY2F0aW9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtpbGxhcHAiLAogICJuYW1lIjogIktpbGwgQXBwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2R1b25nZ2lha2hhbmhiL0tpbGxhcHBfR05PTUVfRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJraWxsYXBwQGFkYW0uZ2FkbXoiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "0gc6bk4piblqmm6qhb0jicdg571b23b0mns6mqhws4glznn4ckry", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJBZGFtIiwKICAiZGVzY3JpcHRpb24iOiAiRm9yY2UgcXVpdCBvciBraWxsIGFwcGxpY2F0aW9uIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtpbGxhcHAiLAogICJuYW1lIjogIktpbGwgQXBwIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2R1b25nZ2lha2hhbmhiL0tpbGxhcHBfR05PTUVfRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJraWxsYXBwQGFkYW0uZ2FkbXoiLAogICJ2ZXJzaW9uIjogMwp9"}}}
 , {"uuid": "hotkeys-popup@pimsnel.com", "name": "Hotkeys Popup", "pname": "hotkeys-popup", "description": "Pop-up cheatsheet with currently configured keyboard shortcuts.", "link": "https://extensions.gnome.org/extension/4553/hotkeys-popup/", "shell_version_map": {"40": {"version": "4", "sha256": "080ch8zg8y1ha9gq6hihjkqzymkwqarxsy3p8da8j6p6621w63y5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcC11cCBjaGVhdHNoZWV0IHdpdGggY3VycmVudGx5IGNvbmZpZ3VyZWQga2V5Ym9hcmQgc2hvcnRjdXRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImhvdGtleXMtcG9wdXAiLAogICJuYW1lIjogIkhvdGtleXMgUG9wdXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG90a2V5cy1wb3B1cCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlwbWlwL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtaG90a2V5cy1wb3B1cCIsCiAgInV1aWQiOiAiaG90a2V5cy1wb3B1cEBwaW1zbmVsLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "080ch8zg8y1ha9gq6hihjkqzymkwqarxsy3p8da8j6p6621w63y5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBvcC11cCBjaGVhdHNoZWV0IHdpdGggY3VycmVudGx5IGNvbmZpZ3VyZWQga2V5Ym9hcmQgc2hvcnRjdXRzLiIsCiAgImdldHRleHQtZG9tYWluIjogImhvdGtleXMtcG9wdXAiLAogICJuYW1lIjogIkhvdGtleXMgUG9wdXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG90a2V5cy1wb3B1cCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWlwbWlwL2dub21lLXNoZWxsLWV4dGVuc2lvbnMtaG90a2V5cy1wb3B1cCIsCiAgInV1aWQiOiAiaG90a2V5cy1wb3B1cEBwaW1zbmVsLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "inotch@alynx.one", "name": "iNotch", "pname": "inotch", "description": "Add a useless notch to your screen.", "link": "https://extensions.gnome.org/extension/4556/inotch/", "shell_version_map": {"40": {"version": "3", "sha256": "0x4zx4ph20maf5gw08j0j6v2whvviqs220vlr903nbcc5cxy7yil", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHVzZWxlc3Mgbm90Y2ggdG8geW91ciBzY3JlZW4uIiwKICAibmFtZSI6ICJpTm90Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FseW54WmhvdS9nbm9tZS1zaGVsbC1leHRlbnNpb24taW5vdGNoLyIsCiAgInV1aWQiOiAiaW5vdGNoQGFseW54Lm9uZSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "0x4zx4ph20maf5gw08j0j6v2whvviqs220vlr903nbcc5cxy7yil", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIHVzZWxlc3Mgbm90Y2ggdG8geW91ciBzY3JlZW4uIiwKICAibmFtZSI6ICJpTm90Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0FseW54WmhvdS9nbm9tZS1zaGVsbC1leHRlbnNpb24taW5vdGNoLyIsCiAgInV1aWQiOiAiaW5vdGNoQGFseW54Lm9uZSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "quick-lang-switch@ankostis.gmail.com", "name": "Quick Lang Switch", "pname": "quick-lang-switch", "description": "Quickly switch keyboard language layout without showing the switcher popup.\n\nThe language switcher popup by default takes ~0.7sec to appear, meaning that roughly 2-4 strokes are lost till the switch completes. This affects heavily users typing languages with non-latin based alphabets (e.g. Greek, Cyrilic, Arabic, Japanese), particularly when writting technical documents.\nThis extension reduces the switching time to 1/10th of a second (on a 2019 PC).", "link": "https://extensions.gnome.org/extension/4559/quick-lang-switch/", "shell_version_map": {"38": {"version": "4", "sha256": "111kpn5h913074icx2b915v2myz42j78y97y1j5003xzh5yhmzwi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc3dpdGNoIGtleWJvYXJkIGxhbmd1YWdlIGxheW91dCB3aXRob3V0IHNob3dpbmcgdGhlIHN3aXRjaGVyIHBvcHVwLlxuXG5UaGUgbGFuZ3VhZ2Ugc3dpdGNoZXIgcG9wdXAgYnkgZGVmYXVsdCB0YWtlcyB+MC43c2VjIHRvIGFwcGVhciwgbWVhbmluZyB0aGF0IHJvdWdobHkgMi00IHN0cm9rZXMgYXJlIGxvc3QgdGlsbCB0aGUgc3dpdGNoIGNvbXBsZXRlcy4gVGhpcyBhZmZlY3RzIGhlYXZpbHkgdXNlcnMgdHlwaW5nIGxhbmd1YWdlcyB3aXRoIG5vbi1sYXRpbiBiYXNlZCBhbHBoYWJldHMgKGUuZy4gR3JlZWssIEN5cmlsaWMsIEFyYWJpYywgSmFwYW5lc2UpLCBwYXJ0aWN1bGFybHkgd2hlbiB3cml0dGluZyB0ZWNobmljYWwgZG9jdW1lbnRzLlxuVGhpcyBleHRlbnNpb24gcmVkdWNlcyB0aGUgc3dpdGNoaW5nIHRpbWUgdG8gMS8xMHRoIG9mIGEgc2Vjb25kIChvbiBhIDIwMTkgUEMpLiIsCiAgIm5hbWUiOiAiUXVpY2sgTGFuZyBTd2l0Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Fua29zdGlzL2dub21lLXNoZWxsLXF1aWNrLWxhbmctc3dpdGNoIiwKICAidXVpZCI6ICJxdWljay1sYW5nLXN3aXRjaEBhbmtvc3Rpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "111kpn5h913074icx2b915v2myz42j78y97y1j5003xzh5yhmzwi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc3dpdGNoIGtleWJvYXJkIGxhbmd1YWdlIGxheW91dCB3aXRob3V0IHNob3dpbmcgdGhlIHN3aXRjaGVyIHBvcHVwLlxuXG5UaGUgbGFuZ3VhZ2Ugc3dpdGNoZXIgcG9wdXAgYnkgZGVmYXVsdCB0YWtlcyB+MC43c2VjIHRvIGFwcGVhciwgbWVhbmluZyB0aGF0IHJvdWdobHkgMi00IHN0cm9rZXMgYXJlIGxvc3QgdGlsbCB0aGUgc3dpdGNoIGNvbXBsZXRlcy4gVGhpcyBhZmZlY3RzIGhlYXZpbHkgdXNlcnMgdHlwaW5nIGxhbmd1YWdlcyB3aXRoIG5vbi1sYXRpbiBiYXNlZCBhbHBoYWJldHMgKGUuZy4gR3JlZWssIEN5cmlsaWMsIEFyYWJpYywgSmFwYW5lc2UpLCBwYXJ0aWN1bGFybHkgd2hlbiB3cml0dGluZyB0ZWNobmljYWwgZG9jdW1lbnRzLlxuVGhpcyBleHRlbnNpb24gcmVkdWNlcyB0aGUgc3dpdGNoaW5nIHRpbWUgdG8gMS8xMHRoIG9mIGEgc2Vjb25kIChvbiBhIDIwMTkgUEMpLiIsCiAgIm5hbWUiOiAiUXVpY2sgTGFuZyBTd2l0Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Fua29zdGlzL2dub21lLXNoZWxsLXF1aWNrLWxhbmctc3dpdGNoIiwKICAidXVpZCI6ICJxdWljay1sYW5nLXN3aXRjaEBhbmtvc3Rpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "111kpn5h913074icx2b915v2myz42j78y97y1j5003xzh5yhmzwi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc3dpdGNoIGtleWJvYXJkIGxhbmd1YWdlIGxheW91dCB3aXRob3V0IHNob3dpbmcgdGhlIHN3aXRjaGVyIHBvcHVwLlxuXG5UaGUgbGFuZ3VhZ2Ugc3dpdGNoZXIgcG9wdXAgYnkgZGVmYXVsdCB0YWtlcyB+MC43c2VjIHRvIGFwcGVhciwgbWVhbmluZyB0aGF0IHJvdWdobHkgMi00IHN0cm9rZXMgYXJlIGxvc3QgdGlsbCB0aGUgc3dpdGNoIGNvbXBsZXRlcy4gVGhpcyBhZmZlY3RzIGhlYXZpbHkgdXNlcnMgdHlwaW5nIGxhbmd1YWdlcyB3aXRoIG5vbi1sYXRpbiBiYXNlZCBhbHBoYWJldHMgKGUuZy4gR3JlZWssIEN5cmlsaWMsIEFyYWJpYywgSmFwYW5lc2UpLCBwYXJ0aWN1bGFybHkgd2hlbiB3cml0dGluZyB0ZWNobmljYWwgZG9jdW1lbnRzLlxuVGhpcyBleHRlbnNpb24gcmVkdWNlcyB0aGUgc3dpdGNoaW5nIHRpbWUgdG8gMS8xMHRoIG9mIGEgc2Vjb25kIChvbiBhIDIwMTkgUEMpLiIsCiAgIm5hbWUiOiAiUXVpY2sgTGFuZyBTd2l0Y2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Fua29zdGlzL2dub21lLXNoZWxsLXF1aWNrLWxhbmctc3dpdGNoIiwKICAidXVpZCI6ICJxdWljay1sYW5nLXN3aXRjaEBhbmtvc3Rpcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
@@ -584,16 +589,33 @@
 , {"uuid": "zfs-status-monitor@chris.hubick.com", "name": "ZFS Status Monitor", "pname": "zfs-status-monitor", "description": "Display status of ZFS filesystem pools currently present on the system, updating every 60 seconds.", "link": "https://extensions.gnome.org/extension/4568/zfs-status-monitor/", "shell_version_map": {"40": {"version": "1", "sha256": "07g6b3y2dpvb41qd0j5rkakxpvyfgwnwcqzfr00h6zfvrx32nnp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3RhdHVzIG9mIFpGUyBmaWxlc3lzdGVtIHBvb2xzIGN1cnJlbnRseSBwcmVzZW50IG9uIHRoZSBzeXN0ZW0sIHVwZGF0aW5nIGV2ZXJ5IDYwIHNlY29uZHMuIiwKICAibmFtZSI6ICJaRlMgU3RhdHVzIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2h1Ymljay9nbm9tZS1zaGVsbC1leHRlbnNpb24temZzLXN0YXR1cy1tb25pdG9yIiwKICAidXVpZCI6ICJ6ZnMtc3RhdHVzLW1vbml0b3JAY2hyaXMuaHViaWNrLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "07g6b3y2dpvb41qd0j5rkakxpvyfgwnwcqzfr00h6zfvrx32nnp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3RhdHVzIG9mIFpGUyBmaWxlc3lzdGVtIHBvb2xzIGN1cnJlbnRseSBwcmVzZW50IG9uIHRoZSBzeXN0ZW0sIHVwZGF0aW5nIGV2ZXJ5IDYwIHNlY29uZHMuIiwKICAibmFtZSI6ICJaRlMgU3RhdHVzIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2h1Ymljay9nbm9tZS1zaGVsbC1leHRlbnNpb24temZzLXN0YXR1cy1tb25pdG9yIiwKICAidXVpZCI6ICJ6ZnMtc3RhdHVzLW1vbml0b3JAY2hyaXMuaHViaWNrLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "dollar@dotpyc.com", "name": "Dollar", "pname": "dollar", "description": "Cotações do (USD Dólar Americano) convertido para (BRL Real Brasileiro).\n\nAs atualizações são recebidas a cada 30 segundos e utiliza como base informações disponiblizadas pela API AwesomeAPI, que pode ser consultada diretamente acessando o endereço eletronico https://docs.awesomeapi.com.br.", "link": "https://extensions.gnome.org/extension/4573/dollar/", "shell_version_map": {"38": {"version": "2", "sha256": "0100dspvm8ryqday9dqm76ykc9n9sikv3098yn6a92kpz9kgxacm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyAoVVNEIERcdTAwZjNsYXIgQW1lcmljYW5vKSBjb252ZXJ0aWRvIHBhcmEgKEJSTCBSZWFsIEJyYXNpbGVpcm8pLlxuXG5BcyBhdHVhbGl6YVx1MDBlN1x1MDBmNWVzIHNcdTAwZTNvIHJlY2ViaWRhcyBhIGNhZGEgMzAgc2VndW5kb3MgZSB1dGlsaXphIGNvbW8gYmFzZSBpbmZvcm1hXHUwMGU3XHUwMGY1ZXMgZGlzcG9uaWJsaXphZGFzIHBlbGEgQVBJIEF3ZXNvbWVBUEksIHF1ZSBwb2RlIHNlciBjb25zdWx0YWRhIGRpcmV0YW1lbnRlIGFjZXNzYW5kbyBvIGVuZGVyZVx1MDBlN28gZWxldHJvbmljbyBodHRwczovL2RvY3MuYXdlc29tZWFwaS5jb20uYnIuIiwKICAibmFtZSI6ICJEb2xsYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hhZWxkZW1hdHRvcy9kb2xsYXItZG90cHljLmNvbSIsCiAgInV1aWQiOiAiZG9sbGFyQGRvdHB5Yy5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "2", "sha256": "0100dspvm8ryqday9dqm76ykc9n9sikv3098yn6a92kpz9kgxacm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyAoVVNEIERcdTAwZjNsYXIgQW1lcmljYW5vKSBjb252ZXJ0aWRvIHBhcmEgKEJSTCBSZWFsIEJyYXNpbGVpcm8pLlxuXG5BcyBhdHVhbGl6YVx1MDBlN1x1MDBmNWVzIHNcdTAwZTNvIHJlY2ViaWRhcyBhIGNhZGEgMzAgc2VndW5kb3MgZSB1dGlsaXphIGNvbW8gYmFzZSBpbmZvcm1hXHUwMGU3XHUwMGY1ZXMgZGlzcG9uaWJsaXphZGFzIHBlbGEgQVBJIEF3ZXNvbWVBUEksIHF1ZSBwb2RlIHNlciBjb25zdWx0YWRhIGRpcmV0YW1lbnRlIGFjZXNzYW5kbyBvIGVuZGVyZVx1MDBlN28gZWxldHJvbmljbyBodHRwczovL2RvY3MuYXdlc29tZWFwaS5jb20uYnIuIiwKICAibmFtZSI6ICJEb2xsYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hhZWxkZW1hdHRvcy9kb2xsYXItZG90cHljLmNvbSIsCiAgInV1aWQiOiAiZG9sbGFyQGRvdHB5Yy5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "0100dspvm8ryqday9dqm76ykc9n9sikv3098yn6a92kpz9kgxacm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyAoVVNEIERcdTAwZjNsYXIgQW1lcmljYW5vKSBjb252ZXJ0aWRvIHBhcmEgKEJSTCBSZWFsIEJyYXNpbGVpcm8pLlxuXG5BcyBhdHVhbGl6YVx1MDBlN1x1MDBmNWVzIHNcdTAwZTNvIHJlY2ViaWRhcyBhIGNhZGEgMzAgc2VndW5kb3MgZSB1dGlsaXphIGNvbW8gYmFzZSBpbmZvcm1hXHUwMGU3XHUwMGY1ZXMgZGlzcG9uaWJsaXphZGFzIHBlbGEgQVBJIEF3ZXNvbWVBUEksIHF1ZSBwb2RlIHNlciBjb25zdWx0YWRhIGRpcmV0YW1lbnRlIGFjZXNzYW5kbyBvIGVuZGVyZVx1MDBlN28gZWxldHJvbmljbyBodHRwczovL2RvY3MuYXdlc29tZWFwaS5jb20uYnIuIiwKICAibmFtZSI6ICJEb2xsYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hhZWxkZW1hdHRvcy9kb2xsYXItZG90cHljLmNvbSIsCiAgInV1aWQiOiAiZG9sbGFyQGRvdHB5Yy5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "activate_gnome@isjerryxiao", "name": "Activate Gnome", "pname": "activate_gnome", "description": "Shows Activate Gnome watermark on your screen.", "link": "https://extensions.gnome.org/extension/4574/activate_gnome/", "shell_version_map": {"40": {"version": "3", "sha256": "1hmadwwzm6m9vg4wxz6lvalh9bvi2fnhzjyg9f4whzb5zp8klc4p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEFjdGl2YXRlIEdub21lIHdhdGVybWFyayBvbiB5b3VyIHNjcmVlbi4iLAogICJuYW1lIjogIkFjdGl2YXRlIEdub21lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFjdGl2YXRlX2dub21lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pc2plcnJ5eGlhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tYWN0aXZhdGUtZ25vbWUiLAogICJ1dWlkIjogImFjdGl2YXRlX2dub21lQGlzamVycnl4aWFvIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "1hmadwwzm6m9vg4wxz6lvalh9bvi2fnhzjyg9f4whzb5zp8klc4p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEFjdGl2YXRlIEdub21lIHdhdGVybWFyayBvbiB5b3VyIHNjcmVlbi4iLAogICJuYW1lIjogIkFjdGl2YXRlIEdub21lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFjdGl2YXRlX2dub21lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pc2plcnJ5eGlhby9nbm9tZS1zaGVsbC1leHRlbnNpb24tYWN0aXZhdGUtZ25vbWUiLAogICJ1dWlkIjogImFjdGl2YXRlX2dub21lQGlzamVycnl4aWFvIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
-, {"uuid": "huawei-wmi@apps.sdore.me", "name": "Huawei WMI controls", "pname": "huawei-wmi-controls", "description": "Control various Huawei & Honor laptops WMI functions, such as battery protection, Fn-lock and keyboard backlight (just not yet).", "link": "https://extensions.gnome.org/extension/4580/huawei-wmi-controls/", "shell_version_map": {"40": {"version": "1", "sha256": "0m1dfw61svxkrbcn5jjnsx48a6b0wrn788n2zrjbjr6dd98zwbn6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgJiBIb25vciBsYXB0b3BzIFdNSSBmdW5jdGlvbnMsIHN1Y2ggYXMgYmF0dGVyeSBwcm90ZWN0aW9uLCBGbi1sb2NrIGFuZCBrZXlib2FyZCBiYWNrbGlnaHQgKGp1c3Qgbm90IHlldCkuIiwKICAibmFtZSI6ICJIdWF3ZWkgV01JIGNvbnRyb2xzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9hcHBzLnNkb3JlLm1lL2dub21lLWV4dGVuc2lvbi1odWF3ZWktd21pIiwKICAidXVpZCI6ICJodWF3ZWktd21pQGFwcHMuc2RvcmUubWUiLAogICJ2ZXJzaW9uIjogMQp9"}}}
+, {"uuid": "huawei-wmi@apps.sdore.me", "name": "Huawei WMI controls", "pname": "huawei-wmi-controls", "description": "Control various Huawei &amp;amp;amp;amp;amp;amp; Honor laptops WMI functions, such as battery protection, Fn-lock and keyboard backlight (just not yet).\n\nRecommended to use with: https://github.com/qu1x/huawei-wmi.", "link": "https://extensions.gnome.org/extension/4580/huawei-wmi-controls/", "shell_version_map": {"40": {"version": "1", "sha256": "0yi513f5paf5xk4d8jx5q3gspj9m5dp7q1zwgx35z8wb3kqmfbb0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgJmFtcDthbXA7YW1wO2FtcDthbXA7YW1wOyBIb25vciBsYXB0b3BzIFdNSSBmdW5jdGlvbnMsIHN1Y2ggYXMgYmF0dGVyeSBwcm90ZWN0aW9uLCBGbi1sb2NrIGFuZCBrZXlib2FyZCBiYWNrbGlnaHQgKGp1c3Qgbm90IHlldCkuXG5cblJlY29tbWVuZGVkIHRvIHVzZSB3aXRoOiBodHRwczovL2dpdGh1Yi5jb20vcXUxeC9odWF3ZWktd21pLiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vYXBwcy5zZG9yZS5tZS9nbm9tZS1leHRlbnNpb24taHVhd2VpLXdtaSIsCiAgInV1aWQiOiAiaHVhd2VpLXdtaUBhcHBzLnNkb3JlLm1lIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "username-hotname@it-und-entwicklung-fg.de", "name": "Add Username and Hostname to panel", "pname": "username-and-hostname-to-panel", "description": "Adds your avatar icon, user displayname und username to the menu panel. Also it adds the hostname to the left of the panel.", "link": "https://extensions.gnome.org/extension/4583/username-and-hostname-to-panel/", "shell_version_map": {"38": {"version": "3", "sha256": "1vsm7r2i30pmkasb47ia29isrzn40hhhl52z7jq1wpwz0ip3k3g5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgeW91ciBhdmF0YXIgaWNvbiwgdXNlciBkaXNwbGF5bmFtZSB1bmQgdXNlcm5hbWUgdG8gdGhlIG1lbnUgcGFuZWwuIEFsc28gaXQgYWRkcyB0aGUgaG9zdG5hbWUgdG8gdGhlIGxlZnQgb2YgdGhlIHBhbmVsLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ1c2VybmFtZS1ob3RuYW1lIiwKICAibmFtZSI6ICJBZGQgVXNlcm5hbWUgYW5kIEhvc3RuYW1lIHRvIHBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaXQtZW50d2lja2x1bmctZmcvVXNlcm5hbWUtYW5kLUhvc3RuYW1lIiwKICAidXVpZCI6ICJ1c2VybmFtZS1ob3RuYW1lQGl0LXVuZC1lbnR3aWNrbHVuZy1mZy5kZSIsCiAgInZlcnNpb24iOiAzCn0="}}}
-, {"uuid": "InternetSpeedMonitor@Rishu", "name": "Internet Speed Monitor", "pname": "internet-speed-monitor", "description": "Extension to Monitor Internet Speed and Daily Data Usage minimally.\n It is a fork of InternetSpeedMeter", "link": "https://extensions.gnome.org/extension/4585/internet-speed-monitor/", "shell_version_map": {"38": {"version": "2", "sha256": "0nqy84r3knjbdd29pf4z1x84ign256gbqcavxp5fq5a9h4md4hrn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cbiBJdCBpcyBhIGZvcmsgb2YgSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Jpc2h1aW5maW5pdHkvSW50ZXJuZXRTcGVlZE1vbml0b3IiLAogICJ1dWlkIjogIkludGVybmV0U3BlZWRNb25pdG9yQFJpc2h1IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "0nqy84r3knjbdd29pf4z1x84ign256gbqcavxp5fq5a9h4md4hrn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cbiBJdCBpcyBhIGZvcmsgb2YgSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Jpc2h1aW5maW5pdHkvSW50ZXJuZXRTcGVlZE1vbml0b3IiLAogICJ1dWlkIjogIkludGVybmV0U3BlZWRNb25pdG9yQFJpc2h1IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "InternetSpeedMonitor@Rishu", "name": "Internet Speed Monitor", "pname": "internet-speed-monitor", "description": "Extension to Monitor Internet Speed and Daily Data Usage minimally.\n\nNew update for shell version 3.34+ : Added option to choose what to display in settings menu", "link": "https://extensions.gnome.org/extension/4585/internet-speed-monitor/", "shell_version_map": {"38": {"version": "5", "sha256": "0v4za9lcc7p861vyrnwwza1sizgzj2nv3yz1aixlsbq22d7zf0ac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cblxuTmV3IHVwZGF0ZSBmb3Igc2hlbGwgdmVyc2lvbiAzLjM0KyA6IEFkZGVkIG9wdGlvbiB0byBjaG9vc2Ugd2hhdCB0byBkaXNwbGF5IGluIHNldHRpbmdzIG1lbnUiLAogICJuYW1lIjogIkludGVybmV0IFNwZWVkIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Jpc2h1aW5maW5pdHkvSW50ZXJuZXRTcGVlZE1vbml0b3IiLAogICJ1dWlkIjogIkludGVybmV0U3BlZWRNb25pdG9yQFJpc2h1IiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "0v4za9lcc7p861vyrnwwza1sizgzj2nv3yz1aixlsbq22d7zf0ac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cblxuTmV3IHVwZGF0ZSBmb3Igc2hlbGwgdmVyc2lvbiAzLjM0KyA6IEFkZGVkIG9wdGlvbiB0byBjaG9vc2Ugd2hhdCB0byBkaXNwbGF5IGluIHNldHRpbmdzIG1lbnUiLAogICJuYW1lIjogIkludGVybmV0IFNwZWVkIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Jpc2h1aW5maW5pdHkvSW50ZXJuZXRTcGVlZE1vbml0b3IiLAogICJ1dWlkIjogIkludGVybmV0U3BlZWRNb25pdG9yQFJpc2h1IiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "0v4za9lcc7p861vyrnwwza1sizgzj2nv3yz1aixlsbq22d7zf0ac", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cblxuTmV3IHVwZGF0ZSBmb3Igc2hlbGwgdmVyc2lvbiAzLjM0KyA6IEFkZGVkIG9wdGlvbiB0byBjaG9vc2Ugd2hhdCB0byBkaXNwbGF5IGluIHNldHRpbmdzIG1lbnUiLAogICJuYW1lIjogIkludGVybmV0IFNwZWVkIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Jpc2h1aW5maW5pdHkvSW50ZXJuZXRTcGVlZE1vbml0b3IiLAogICJ1dWlkIjogIkludGVybmV0U3BlZWRNb25pdG9yQFJpc2h1IiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "simulate-switching-workspaces-on-active-monitor@micheledaros.com", "name": "Separate workspaces on multiple monitors", "pname": "switch-workspaces-on-active-monitor", "description": "To work properly, it require the options \"Static workspaces\" and \"Workspaces on primary display only\" of tweaks to be active  .\n\nAfter you switch to a different workspace(by using the preview, or by selecting an app on the dock),  the windows on the monitors that don't have the focus are moved to the visible workspace.  So it looks like you are switching workspaces only on the active monitor, leaving the others unchanged.\n\nAlternatively, you can switch workspace only on the active monitor by using Ctrl+Alt+q and Ctrl+Alt+a", "link": "https://extensions.gnome.org/extension/4586/switch-workspaces-on-active-monitor/", "shell_version_map": {"38": {"version": "6", "sha256": "1n63fs8apwfaivyb39v7bx29jswk53m1c761pg3shkpdz7mmasck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvIHdvcmsgcHJvcGVybHksIGl0IHJlcXVpcmUgdGhlIG9wdGlvbnMgXCJTdGF0aWMgd29ya3NwYWNlc1wiIGFuZCBcIldvcmtzcGFjZXMgb24gcHJpbWFyeSBkaXNwbGF5IG9ubHlcIiBvZiB0d2Vha3MgdG8gYmUgYWN0aXZlICAuXG5cbkFmdGVyIHlvdSBzd2l0Y2ggdG8gYSBkaWZmZXJlbnQgd29ya3NwYWNlKGJ5IHVzaW5nIHRoZSBwcmV2aWV3LCBvciBieSBzZWxlY3RpbmcgYW4gYXBwIG9uIHRoZSBkb2NrKSwgIHRoZSB3aW5kb3dzIG9uIHRoZSBtb25pdG9ycyB0aGF0IGRvbid0IGhhdmUgdGhlIGZvY3VzIGFyZSBtb3ZlZCB0byB0aGUgdmlzaWJsZSB3b3Jrc3BhY2UuICBTbyBpdCBsb29rcyBsaWtlIHlvdSBhcmUgc3dpdGNoaW5nIHdvcmtzcGFjZXMgb25seSBvbiB0aGUgYWN0aXZlIG1vbml0b3IsIGxlYXZpbmcgdGhlIG90aGVycyB1bmNoYW5nZWQuXG5cbkFsdGVybmF0aXZlbHksIHlvdSBjYW4gc3dpdGNoIHdvcmtzcGFjZSBvbmx5IG9uIHRoZSBhY3RpdmUgbW9uaXRvciBieSB1c2luZyBDdHJsK0FsdCtxIGFuZCBDdHJsK0FsdCthIiwKICAibmFtZSI6ICJTZXBhcmF0ZSB3b3Jrc3BhY2VzIG9uIG11bHRpcGxlIG1vbml0b3JzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJkYXJvc21pY0BnbWFpbC5jb20iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hlbGVkYXJvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3IiLAogICJ1dWlkIjogInNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yQG1pY2hlbGVkYXJvcy5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "1n63fs8apwfaivyb39v7bx29jswk53m1c761pg3shkpdz7mmasck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvIHdvcmsgcHJvcGVybHksIGl0IHJlcXVpcmUgdGhlIG9wdGlvbnMgXCJTdGF0aWMgd29ya3NwYWNlc1wiIGFuZCBcIldvcmtzcGFjZXMgb24gcHJpbWFyeSBkaXNwbGF5IG9ubHlcIiBvZiB0d2Vha3MgdG8gYmUgYWN0aXZlICAuXG5cbkFmdGVyIHlvdSBzd2l0Y2ggdG8gYSBkaWZmZXJlbnQgd29ya3NwYWNlKGJ5IHVzaW5nIHRoZSBwcmV2aWV3LCBvciBieSBzZWxlY3RpbmcgYW4gYXBwIG9uIHRoZSBkb2NrKSwgIHRoZSB3aW5kb3dzIG9uIHRoZSBtb25pdG9ycyB0aGF0IGRvbid0IGhhdmUgdGhlIGZvY3VzIGFyZSBtb3ZlZCB0byB0aGUgdmlzaWJsZSB3b3Jrc3BhY2UuICBTbyBpdCBsb29rcyBsaWtlIHlvdSBhcmUgc3dpdGNoaW5nIHdvcmtzcGFjZXMgb25seSBvbiB0aGUgYWN0aXZlIG1vbml0b3IsIGxlYXZpbmcgdGhlIG90aGVycyB1bmNoYW5nZWQuXG5cbkFsdGVybmF0aXZlbHksIHlvdSBjYW4gc3dpdGNoIHdvcmtzcGFjZSBvbmx5IG9uIHRoZSBhY3RpdmUgbW9uaXRvciBieSB1c2luZyBDdHJsK0FsdCtxIGFuZCBDdHJsK0FsdCthIiwKICAibmFtZSI6ICJTZXBhcmF0ZSB3b3Jrc3BhY2VzIG9uIG11bHRpcGxlIG1vbml0b3JzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJkYXJvc21pY0BnbWFpbC5jb20iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hlbGVkYXJvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3IiLAogICJ1dWlkIjogInNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yQG1pY2hlbGVkYXJvcy5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "1n63fs8apwfaivyb39v7bx29jswk53m1c761pg3shkpdz7mmasck", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvIHdvcmsgcHJvcGVybHksIGl0IHJlcXVpcmUgdGhlIG9wdGlvbnMgXCJTdGF0aWMgd29ya3NwYWNlc1wiIGFuZCBcIldvcmtzcGFjZXMgb24gcHJpbWFyeSBkaXNwbGF5IG9ubHlcIiBvZiB0d2Vha3MgdG8gYmUgYWN0aXZlICAuXG5cbkFmdGVyIHlvdSBzd2l0Y2ggdG8gYSBkaWZmZXJlbnQgd29ya3NwYWNlKGJ5IHVzaW5nIHRoZSBwcmV2aWV3LCBvciBieSBzZWxlY3RpbmcgYW4gYXBwIG9uIHRoZSBkb2NrKSwgIHRoZSB3aW5kb3dzIG9uIHRoZSBtb25pdG9ycyB0aGF0IGRvbid0IGhhdmUgdGhlIGZvY3VzIGFyZSBtb3ZlZCB0byB0aGUgdmlzaWJsZSB3b3Jrc3BhY2UuICBTbyBpdCBsb29rcyBsaWtlIHlvdSBhcmUgc3dpdGNoaW5nIHdvcmtzcGFjZXMgb25seSBvbiB0aGUgYWN0aXZlIG1vbml0b3IsIGxlYXZpbmcgdGhlIG90aGVycyB1bmNoYW5nZWQuXG5cbkFsdGVybmF0aXZlbHksIHlvdSBjYW4gc3dpdGNoIHdvcmtzcGFjZSBvbmx5IG9uIHRoZSBhY3RpdmUgbW9uaXRvciBieSB1c2luZyBDdHJsK0FsdCtxIGFuZCBDdHJsK0FsdCthIiwKICAibmFtZSI6ICJTZXBhcmF0ZSB3b3Jrc3BhY2VzIG9uIG11bHRpcGxlIG1vbml0b3JzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJkYXJvc21pY0BnbWFpbC5jb20iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21pY2hlbGVkYXJvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tc2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3IiLAogICJ1dWlkIjogInNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yQG1pY2hlbGVkYXJvcy5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
-, {"uuid": "newworkspaceshortcut@barnix.io", "name": "New Workspace Shortcut", "pname": "new-workspace-shortcut", "description": "Use a shortcut to move a window to a new and empty workspace on the right of your current workspace: \nSuper + Alt + Shift + n\n\nUse a shortcut to move an entire workspace left or right of the current workspace: ALT+Left ALT+Right. As there is not any UI feedback for this event, you will want to be in the Overview so you can see your Workspace-Thumbnail moving left and right.\n\nFind more  info by following the github repository link.", "link": "https://extensions.gnome.org/extension/4597/new-workspace-shortcut/", "shell_version_map": {"41": {"version": "2", "sha256": "04fkngb1vqgbvixc3ahsp4l5hz9cwh733qbd4f9f7dq4xsd393yc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVzZSBhIHNob3J0Y3V0IHRvIG1vdmUgYSB3aW5kb3cgdG8gYSBuZXcgYW5kIGVtcHR5IHdvcmtzcGFjZSBvbiB0aGUgcmlnaHQgb2YgeW91ciBjdXJyZW50IHdvcmtzcGFjZTogXG5TdXBlciArIEFsdCArIFNoaWZ0ICsgblxuXG5Vc2UgYSBzaG9ydGN1dCB0byBtb3ZlIGFuIGVudGlyZSB3b3Jrc3BhY2UgbGVmdCBvciByaWdodCBvZiB0aGUgY3VycmVudCB3b3Jrc3BhY2U6IEFMVCtMZWZ0IEFMVCtSaWdodC4gQXMgdGhlcmUgaXMgbm90IGFueSBVSSBmZWVkYmFjayBmb3IgdGhpcyBldmVudCwgeW91IHdpbGwgd2FudCB0byBiZSBpbiB0aGUgT3ZlcnZpZXcgc28geW91IGNhbiBzZWUgeW91ciBXb3Jrc3BhY2UtVGh1bWJuYWlsIG1vdmluZyBsZWZ0IGFuZCByaWdodC5cblxuRmluZCBtb3JlICBpbmZvIGJ5IGZvbGxvd2luZyB0aGUgZ2l0aHViIHJlcG9zaXRvcnkgbGluay4iLAogICJuYW1lIjogIk5ldyBXb3Jrc3BhY2UgU2hvcnRjdXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmV3d29ya3NwYWNlc2hvcnRjdXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmFybnNjb3R0L25ld3dvcmtzcGFjZXNob3J0Y3V0LWJhcm5peC5pbyIsCiAgInV1aWQiOiAibmV3d29ya3NwYWNlc2hvcnRjdXRAYmFybml4LmlvIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "newworkspaceshortcut@barnix.io", "name": "New Workspace Shortcut", "pname": "new-workspace-shortcut", "description": "This extension will enable the following:\n\nMove-window-to-new-workspace Shortcut:\nUse a shortcut to move the in-focus window to a new workspace on the right of your current workspace: Super + Alt + Shift + n\nOr to the left / backward: Super + Alt + Shift + b\n\nNew-empty-workspace Shortcut:\nUse a shortcut to create an empty workspace on the right: Super + Alt + n\nOr to the left / backward: Super + Alt + b\n\nReorder-workspace Shortcut:\nUse a shortcut to move an entire workspace left or right of the current workspace: Ctl + Super + Left or Ctl + Super + Right\nBy default, this shorcut with automatically trigger the Overview to provide a limited form of visual feedback. However, this preference can be changed via the extension's Settings panel.\n\nThese shortcuts are created to work logically with the vanilla gnome shortcuts including change-workspace (Super + ALT + Left/Right) and move-window-to-next-workspace (Shift + Super + ALT + Left/Right).", "link": "https://extensions.gnome.org/extension/4597/new-workspace-shortcut/", "shell_version_map": {"41": {"version": "5", "sha256": "0anj72nb9wf80xyhymzr0v97v6hkpi95nmpmpajg5a3w05dz8y7n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHdpbGwgZW5hYmxlIHRoZSBmb2xsb3dpbmc6XG5cbk1vdmUtd2luZG93LXRvLW5ldy13b3Jrc3BhY2UgU2hvcnRjdXQ6XG5Vc2UgYSBzaG9ydGN1dCB0byBtb3ZlIHRoZSBpbi1mb2N1cyB3aW5kb3cgdG8gYSBuZXcgd29ya3NwYWNlIG9uIHRoZSByaWdodCBvZiB5b3VyIGN1cnJlbnQgd29ya3NwYWNlOiBTdXBlciArIEFsdCArIFNoaWZ0ICsgblxuT3IgdG8gdGhlIGxlZnQgLyBiYWNrd2FyZDogU3VwZXIgKyBBbHQgKyBTaGlmdCArIGJcblxuTmV3LWVtcHR5LXdvcmtzcGFjZSBTaG9ydGN1dDpcblVzZSBhIHNob3J0Y3V0IHRvIGNyZWF0ZSBhbiBlbXB0eSB3b3Jrc3BhY2Ugb24gdGhlIHJpZ2h0OiBTdXBlciArIEFsdCArIG5cbk9yIHRvIHRoZSBsZWZ0IC8gYmFja3dhcmQ6IFN1cGVyICsgQWx0ICsgYlxuXG5SZW9yZGVyLXdvcmtzcGFjZSBTaG9ydGN1dDpcblVzZSBhIHNob3J0Y3V0IHRvIG1vdmUgYW4gZW50aXJlIHdvcmtzcGFjZSBsZWZ0IG9yIHJpZ2h0IG9mIHRoZSBjdXJyZW50IHdvcmtzcGFjZTogQ3RsICsgU3VwZXIgKyBMZWZ0IG9yIEN0bCArIFN1cGVyICsgUmlnaHRcbkJ5IGRlZmF1bHQsIHRoaXMgc2hvcmN1dCB3aXRoIGF1dG9tYXRpY2FsbHkgdHJpZ2dlciB0aGUgT3ZlcnZpZXcgdG8gcHJvdmlkZSBhIGxpbWl0ZWQgZm9ybSBvZiB2aXN1YWwgZmVlZGJhY2suIEhvd2V2ZXIsIHRoaXMgcHJlZmVyZW5jZSBjYW4gYmUgY2hhbmdlZCB2aWEgdGhlIGV4dGVuc2lvbidzIFNldHRpbmdzIHBhbmVsLlxuXG5UaGVzZSBzaG9ydGN1dHMgYXJlIGNyZWF0ZWQgdG8gd29yayBsb2dpY2FsbHkgd2l0aCB0aGUgdmFuaWxsYSBnbm9tZSBzaG9ydGN1dHMgaW5jbHVkaW5nIGNoYW5nZS13b3Jrc3BhY2UgKFN1cGVyICsgQUxUICsgTGVmdC9SaWdodCkgYW5kIG1vdmUtd2luZG93LXRvLW5leHQtd29ya3NwYWNlIChTaGlmdCArIFN1cGVyICsgQUxUICsgTGVmdC9SaWdodCkuIiwKICAibmFtZSI6ICJOZXcgV29ya3NwYWNlIFNob3J0Y3V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5ld3dvcmtzcGFjZXNob3J0Y3V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Jhcm5zY290dC9uZXd3b3Jrc3BhY2VzaG9ydGN1dC1iYXJuaXguaW8iLAogICJ1dWlkIjogIm5ld3dvcmtzcGFjZXNob3J0Y3V0QGJhcm5peC5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "p.stonham@switcheroo.org", "name": "Switcheroo", "pname": "switcheroo", "description": "Switch to the first window with the title x\n\nA very small extension to allow you to switch windows via gdbus. This is particularly useful if you are using wayland as utilities such as wmctrl won't work.\n\nSince Gnome 41 removed org.gnome.Shell.Eval for security reasons, if you ever used a command such as:\n\ngdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval\"var mw = global.get_window_actors().map(w=&gt;w.meta_window).find(mw=&gt;mw.get_title().includes('Firefox'));mw &amp;&amp; mw.activate(0)\"\n\nthis can now be replaced with:\n\ngdbus call --session --dest org.gnome.Shell --object-path /org/switcheroo/Switcheroo --method org.switcheroo.Switcheroo.Set Firefox\n\nThis can then be assigned to a shortcut key in Gnome settings or called programmatically.", "link": "https://extensions.gnome.org/extension/4600/switcheroo/", "shell_version_map": {"41": {"version": "3", "sha256": "0pfjhx8pm26zpizazd2pbpfqsr8vwc6znrm1cbf4ydcyvfxsnwwh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCB0byB0aGUgZmlyc3Qgd2luZG93IHdpdGggdGhlIHRpdGxlIHhcblxuQSB2ZXJ5IHNtYWxsIGV4dGVuc2lvbiB0byBhbGxvdyB5b3UgdG8gc3dpdGNoIHdpbmRvd3MgdmlhIGdkYnVzLiBUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgaWYgeW91IGFyZSB1c2luZyB3YXlsYW5kIGFzIHV0aWxpdGllcyBzdWNoIGFzIHdtY3RybCB3b24ndCB3b3JrLlxuXG5TaW5jZSBHbm9tZSA0MSByZW1vdmVkIG9yZy5nbm9tZS5TaGVsbC5FdmFsIGZvciBzZWN1cml0eSByZWFzb25zLCBpZiB5b3UgZXZlciB1c2VkIGEgY29tbWFuZCBzdWNoIGFzOlxuXG5nZGJ1cyBjYWxsIC0tc2Vzc2lvbiAtLWRlc3Qgb3JnLmdub21lLlNoZWxsIC0tb2JqZWN0LXBhdGggL29yZy9nbm9tZS9TaGVsbCAtLW1ldGhvZCBvcmcuZ25vbWUuU2hlbGwuRXZhbFwidmFyIG13ID0gZ2xvYmFsLmdldF93aW5kb3dfYWN0b3JzKCkubWFwKHc9Jmd0O3cubWV0YV93aW5kb3cpLmZpbmQobXc9Jmd0O213LmdldF90aXRsZSgpLmluY2x1ZGVzKCdGaXJlZm94JykpO213ICZhbXA7JmFtcDsgbXcuYWN0aXZhdGUoMClcIlxuXG50aGlzIGNhbiBub3cgYmUgcmVwbGFjZWQgd2l0aDpcblxuZ2RidXMgY2FsbCAtLXNlc3Npb24gLS1kZXN0IG9yZy5nbm9tZS5TaGVsbCAtLW9iamVjdC1wYXRoIC9vcmcvc3dpdGNoZXJvby9Td2l0Y2hlcm9vIC0tbWV0aG9kIG9yZy5zd2l0Y2hlcm9vLlN3aXRjaGVyb28uU2V0IEZpcmVmb3hcblxuVGhpcyBjYW4gdGhlbiBiZSBhc3NpZ25lZCB0byBhIHNob3J0Y3V0IGtleSBpbiBHbm9tZSBzZXR0aW5ncyBvciBjYWxsZWQgcHJvZ3JhbW1hdGljYWxseS4iLAogICJuYW1lIjogIlN3aXRjaGVyb28iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInAuc3RvbmhhbUBzd2l0Y2hlcm9vLm9yZyIsCiAgInZlcnNpb24iOiAzCn0="}}}
-, {"uuid": "sane-airplane-mode@kippi", "name": "Sane Airplane Mode", "pname": "sane-airplane-mode", "description": "Make airplane mode sane again! This extension gives you better control over the airplane mode. \nHint: With this extension you can also turn off the annoying \"Bluetooth gets turned on when I disable airplane mode\" behaviour.", "link": "https://extensions.gnome.org/extension/4604/sane-airplane-mode/", "shell_version_map": {"40": {"version": "5", "sha256": "1zk8dgv7nvmmh6vswh6c2i19rczm475rdd0pl5hqx2j0mr27jzsy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZS4gXG5IaW50OiBXaXRoIHRoaXMgZXh0ZW5zaW9uIHlvdSBjYW4gYWxzbyB0dXJuIG9mZiB0aGUgYW5ub3lpbmcgXCJCbHVldG9vdGggZ2V0cyB0dXJuZWQgb24gd2hlbiBJIGRpc2FibGUgYWlycGxhbmUgbW9kZVwiIGJlaGF2aW91ci4iLAogICJuYW1lIjogIlNhbmUgQWlycGxhbmUgTW9kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veEtpcHBpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zYW5lLWFpcnBsYW5lLW1vZGUiLAogICJ1dWlkIjogInNhbmUtYWlycGxhbmUtbW9kZUBraXBwaSIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1zk8dgv7nvmmh6vswh6c2i19rczm475rdd0pl5hqx2j0mr27jzsy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZS4gXG5IaW50OiBXaXRoIHRoaXMgZXh0ZW5zaW9uIHlvdSBjYW4gYWxzbyB0dXJuIG9mZiB0aGUgYW5ub3lpbmcgXCJCbHVldG9vdGggZ2V0cyB0dXJuZWQgb24gd2hlbiBJIGRpc2FibGUgYWlycGxhbmUgbW9kZVwiIGJlaGF2aW91ci4iLAogICJuYW1lIjogIlNhbmUgQWlycGxhbmUgTW9kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veEtpcHBpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zYW5lLWFpcnBsYW5lLW1vZGUiLAogICJ1dWlkIjogInNhbmUtYWlycGxhbmUtbW9kZUBraXBwaSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
+, {"uuid": "sane-airplane-mode@kippi", "name": "Sane Airplane Mode", "pname": "sane-airplane-mode", "description": "Make airplane mode sane again! This extension gives you better control over the airplane mode. \nHint: With this extension you can also turn off the annoying \"Bluetooth gets turned on when I disable airplane mode\" behaviour.", "link": "https://extensions.gnome.org/extension/4604/sane-airplane-mode/", "shell_version_map": {"40": {"version": "6", "sha256": "0jpis6rncjxjs90dlnl1677bxzk92x2zxzmnz2fmm0myl01pwnpa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZS4gXG5IaW50OiBXaXRoIHRoaXMgZXh0ZW5zaW9uIHlvdSBjYW4gYWxzbyB0dXJuIG9mZiB0aGUgYW5ub3lpbmcgXCJCbHVldG9vdGggZ2V0cyB0dXJuZWQgb24gd2hlbiBJIGRpc2FibGUgYWlycGxhbmUgbW9kZVwiIGJlaGF2aW91ci4iLAogICJuYW1lIjogIlNhbmUgQWlycGxhbmUgTW9kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veEtpcHBpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zYW5lLWFpcnBsYW5lLW1vZGUiLAogICJ1dWlkIjogInNhbmUtYWlycGxhbmUtbW9kZUBraXBwaSIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "0jpis6rncjxjs90dlnl1677bxzk92x2zxzmnz2fmm0myl01pwnpa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgYWlycGxhbmUgbW9kZSBzYW5lIGFnYWluISBUaGlzIGV4dGVuc2lvbiBnaXZlcyB5b3UgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGUgYWlycGxhbmUgbW9kZS4gXG5IaW50OiBXaXRoIHRoaXMgZXh0ZW5zaW9uIHlvdSBjYW4gYWxzbyB0dXJuIG9mZiB0aGUgYW5ub3lpbmcgXCJCbHVldG9vdGggZ2V0cyB0dXJuZWQgb24gd2hlbiBJIGRpc2FibGUgYWlycGxhbmUgbW9kZVwiIGJlaGF2aW91ci4iLAogICJuYW1lIjogIlNhbmUgQWlycGxhbmUgTW9kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veEtpcHBpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zYW5lLWFpcnBsYW5lLW1vZGUiLAogICJ1dWlkIjogInNhbmUtYWlycGxhbmUtbW9kZUBraXBwaSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "undecorate@tabdeveloper.com", "name": "Undecorate Window (Fork)", "pname": "undecorate-window-for-wayland", "description": "Adds undecorate option to window menu to toggle window decoration.", "link": "https://extensions.gnome.org/extension/4606/undecorate-window-for-wayland/", "shell_version_map": {"40": {"version": "1", "sha256": "0l7knd7xam0fh9c30wbrzm0yzwnjin97r1rjdpcw9vvh80yh3hsv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdW5kZWNvcmF0ZSBvcHRpb24gdG8gd2luZG93IG1lbnUgdG8gdG9nZ2xlIHdpbmRvdyBkZWNvcmF0aW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi11bmRlY29yYXRlIiwKICAibmFtZSI6ICJVbmRlY29yYXRlIFdpbmRvdyAoRm9yaykiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInN1bi53eGdAZ21haWwuY29tIiwKICAgICJ0aW1AdGFiZGV2ZWxvcGVyLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudW5kZWNvcmF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGJyYW55ZW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuZGVjb3JhdGUiLAogICJ1dWlkIjogInVuZGVjb3JhdGVAdGFiZGV2ZWxvcGVyLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "0l7knd7xam0fh9c30wbrzm0yzwnjin97r1rjdpcw9vvh80yh3hsv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgdW5kZWNvcmF0ZSBvcHRpb24gdG8gd2luZG93IG1lbnUgdG8gdG9nZ2xlIHdpbmRvdyBkZWNvcmF0aW9uLiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi11bmRlY29yYXRlIiwKICAibmFtZSI6ICJVbmRlY29yYXRlIFdpbmRvdyAoRm9yaykiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInN1bi53eGdAZ21haWwuY29tIiwKICAgICJ0aW1AdGFiZGV2ZWxvcGVyLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudW5kZWNvcmF0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdGJyYW55ZW4vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXVuZGVjb3JhdGUiLAogICJ1dWlkIjogInVuZGVjb3JhdGVAdGFiZGV2ZWxvcGVyLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "zenbook-duo@laurinneff.ch", "name": "Asus ZenBook Duo Integration", "pname": "asus-zenbook-duo-integration", "description": "Integrate the features of the Asus ZenBook Duo into GNOME", "link": "https://extensions.gnome.org/extension/4607/asus-zenbook-duo-integration/", "shell_version_map": {"40": {"version": "4", "sha256": "1kskb1iiz2v82yb07n9nh32hyamdqnwv0qbicvk481l22hgsx91b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSB0aGUgZmVhdHVyZXMgb2YgdGhlIEFzdXMgWmVuQm9vayBEdW8gaW50byBHTk9NRSIsCiAgIm5hbWUiOiAiQXN1cyBaZW5Cb29rIER1byBJbnRlZ3JhdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGF1cmlubmVmZi9nbm9tZS1zaGVsbC1leHRlbnNpb24temVuYm9vay1kdW8iLAogICJ1dWlkIjogInplbmJvb2stZHVvQGxhdXJpbm5lZmYuY2giLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "1kskb1iiz2v82yb07n9nh32hyamdqnwv0qbicvk481l22hgsx91b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSB0aGUgZmVhdHVyZXMgb2YgdGhlIEFzdXMgWmVuQm9vayBEdW8gaW50byBHTk9NRSIsCiAgIm5hbWUiOiAiQXN1cyBaZW5Cb29rIER1byBJbnRlZ3JhdGlvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGF1cmlubmVmZi9nbm9tZS1zaGVsbC1leHRlbnNpb24temVuYm9vay1kdW8iLAogICJ1dWlkIjogInplbmJvb2stZHVvQGxhdXJpbm5lZmYuY2giLAogICJ2ZXJzaW9uIjogNAp9"}}}
-, {"uuid": "batterythreshold@francku.gitlab.com", "name": "Battery threshold", "pname": "battery-threshold", "description": "A simple extension for gnome-shell that let easily set a threshold to limit battery charge level.\n\nThis extension uses \"pkexec\" since sudo permissions are needed to change the threshold level.\n\nTested on Fedora Silverblue 35 (gnome-shell 3.41) on an Asus Vivobook.", "link": "https://extensions.gnome.org/extension/4612/battery-threshold/", "shell_version_map": {"41": {"version": "1", "sha256": "0ln0k7p6f2ssjv3xgmdnakqshp033djvhjwvmmxrb974llfcpg10", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGV4dGVuc2lvbiBmb3IgZ25vbWUtc2hlbGwgdGhhdCBsZXQgZWFzaWx5IHNldCBhIHRocmVzaG9sZCB0byBsaW1pdCBiYXR0ZXJ5IGNoYXJnZSBsZXZlbC5cblxuVGhpcyBleHRlbnNpb24gdXNlcyBcInBrZXhlY1wiIHNpbmNlIHN1ZG8gcGVybWlzc2lvbnMgYXJlIG5lZWRlZCB0byBjaGFuZ2UgdGhlIHRocmVzaG9sZCBsZXZlbC5cblxuVGVzdGVkIG9uIEZlZG9yYSBTaWx2ZXJibHVlIDM1IChnbm9tZS1zaGVsbCAzLjQxKSBvbiBhbiBBc3VzIFZpdm9ib29rLiIsCiAgIm5hbWUiOiAiQmF0dGVyeSB0aHJlc2hvbGQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImJhdHRlcnl0aHJlc2hvbGRAZnJhbmNrdS5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "batterythreshold@francku.gitlab.com", "name": "Battery threshold", "pname": "battery-threshold", "description": "A simple extension for gnome-shell that let easily set a threshold to limit battery charge level.\n\nThis extension uses \"pkexec\" since sudo permissions are needed to change the threshold level.\n\nTested on Fedora Silverblue 35 (gnome-shell 3.41) on an Asus Vivobook.\n\nGithub page: https://github.com/francku/gnome-shell-extension-battery-threshold", "link": "https://extensions.gnome.org/extension/4612/battery-threshold/", "shell_version_map": {"41": {"version": "1", "sha256": "1dfnql5fmxxvaksl2c6v7sjq0339d2y5p8lznfdp2gb038l8bxjl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGV4dGVuc2lvbiBmb3IgZ25vbWUtc2hlbGwgdGhhdCBsZXQgZWFzaWx5IHNldCBhIHRocmVzaG9sZCB0byBsaW1pdCBiYXR0ZXJ5IGNoYXJnZSBsZXZlbC5cblxuVGhpcyBleHRlbnNpb24gdXNlcyBcInBrZXhlY1wiIHNpbmNlIHN1ZG8gcGVybWlzc2lvbnMgYXJlIG5lZWRlZCB0byBjaGFuZ2UgdGhlIHRocmVzaG9sZCBsZXZlbC5cblxuVGVzdGVkIG9uIEZlZG9yYSBTaWx2ZXJibHVlIDM1IChnbm9tZS1zaGVsbCAzLjQxKSBvbiBhbiBBc3VzIFZpdm9ib29rLlxuXG5HaXRodWIgcGFnZTogaHR0cHM6Ly9naXRodWIuY29tL2ZyYW5ja3UvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWJhdHRlcnktdGhyZXNob2xkIiwKICAibmFtZSI6ICJCYXR0ZXJ5IHRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiYmF0dGVyeXRocmVzaG9sZEBmcmFuY2t1LmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "one-third-window@chmouel.com", "name": "Center or rotate windows by one third of the screen", "pname": "one-third-window", "description": "Center or rotate  the current window by one third of the screen.\n\nPosition and resize your windows in three with key shortcuts, center it to one third of the screen or rotate it around.", "link": "https://extensions.gnome.org/extension/4615/one-third-window/", "shell_version_map": {"38": {"version": "3", "sha256": "07wgkcars3f9ngi435684fp1832zhnda8jljcqlknaxxnigsdd2n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNlbnRlciBvciByb3RhdGUgIHRoZSBjdXJyZW50IHdpbmRvdyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbi5cblxuUG9zaXRpb24gYW5kIHJlc2l6ZSB5b3VyIHdpbmRvd3MgaW4gdGhyZWUgd2l0aCBrZXkgc2hvcnRjdXRzLCBjZW50ZXIgaXQgdG8gb25lIHRoaXJkIG9mIHRoZSBzY3JlZW4gb3Igcm90YXRlIGl0IGFyb3VuZC4iLAogICJuYW1lIjogIkNlbnRlciBvciByb3RhdGUgd2luZG93cyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vbmV0aGlyZHdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2htb3VlbC9vbmUtdGhpcmQtd2luZG93LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAib25lLXRoaXJkLXdpbmRvd0BjaG1vdWVsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "07wgkcars3f9ngi435684fp1832zhnda8jljcqlknaxxnigsdd2n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNlbnRlciBvciByb3RhdGUgIHRoZSBjdXJyZW50IHdpbmRvdyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbi5cblxuUG9zaXRpb24gYW5kIHJlc2l6ZSB5b3VyIHdpbmRvd3MgaW4gdGhyZWUgd2l0aCBrZXkgc2hvcnRjdXRzLCBjZW50ZXIgaXQgdG8gb25lIHRoaXJkIG9mIHRoZSBzY3JlZW4gb3Igcm90YXRlIGl0IGFyb3VuZC4iLAogICJuYW1lIjogIkNlbnRlciBvciByb3RhdGUgd2luZG93cyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vbmV0aGlyZHdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2htb3VlbC9vbmUtdGhpcmQtd2luZG93LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAib25lLXRoaXJkLXdpbmRvd0BjaG1vdWVsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "07wgkcars3f9ngi435684fp1832zhnda8jljcqlknaxxnigsdd2n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNlbnRlciBvciByb3RhdGUgIHRoZSBjdXJyZW50IHdpbmRvdyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbi5cblxuUG9zaXRpb24gYW5kIHJlc2l6ZSB5b3VyIHdpbmRvd3MgaW4gdGhyZWUgd2l0aCBrZXkgc2hvcnRjdXRzLCBjZW50ZXIgaXQgdG8gb25lIHRoaXJkIG9mIHRoZSBzY3JlZW4gb3Igcm90YXRlIGl0IGFyb3VuZC4iLAogICJuYW1lIjogIkNlbnRlciBvciByb3RhdGUgd2luZG93cyBieSBvbmUgdGhpcmQgb2YgdGhlIHNjcmVlbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vbmV0aGlyZHdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2htb3VlbC9vbmUtdGhpcmQtd2luZG93LWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAib25lLXRoaXJkLXdpbmRvd0BjaG1vdWVsLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "hideTopBarWindow@kinzoku.one", "name": "Hide Top Bar Window", "pname": "hide-top-bar-window", "description": "Hides the selected window entry in the top bar.", "link": "https://extensions.gnome.org/extension/4621/hide-top-bar-window/", "shell_version_map": {"41": {"version": "1", "sha256": "0r7f8qb23ilz42pbbcd4rh22nnczqa9bags6msri1hl68lbv1qwj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBzZWxlY3RlZCB3aW5kb3cgZW50cnkgaW4gdGhlIHRvcCBiYXIuIiwKICAibmFtZSI6ICJIaWRlIFRvcCBCYXIgV2luZG93IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDEuMSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9raW56b2t1Lm9uZSIsCiAgInV1aWQiOiAiaGlkZVRvcEJhcldpbmRvd0BraW56b2t1Lm9uZSIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "alphatint@saifulbkhan.github.com", "name": "AlphaTint", "pname": "alphatint", "description": "Artificially reduce brightness of your displays (including external monitors).\n\nIt is a fork of ColorTint modified to reduce brightness without an alpha channel.", "link": "https://extensions.gnome.org/extension/4624/alphatint/", "shell_version_map": {"40": {"version": "4", "sha256": "0yzip19k148y7yjkgxirhmi5sqj8brgnxij310ka5sl3big95rqb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFydGlmaWNpYWxseSByZWR1Y2UgYnJpZ2h0bmVzcyBvZiB5b3VyIGRpc3BsYXlzIChpbmNsdWRpbmcgZXh0ZXJuYWwgbW9uaXRvcnMpLlxuXG5JdCBpcyBhIGZvcmsgb2YgQ29sb3JUaW50IG1vZGlmaWVkIHRvIHJlZHVjZSBicmlnaHRuZXNzIHdpdGhvdXQgYW4gYWxwaGEgY2hhbm5lbC4iLAogICJuYW1lIjogIkFscGhhVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2FpZnVsYmtoYW4vYWxwaGEtdGludCIsCiAgInV1aWQiOiAiYWxwaGF0aW50QHNhaWZ1bGJraGFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "0yzip19k148y7yjkgxirhmi5sqj8brgnxij310ka5sl3big95rqb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFydGlmaWNpYWxseSByZWR1Y2UgYnJpZ2h0bmVzcyBvZiB5b3VyIGRpc3BsYXlzIChpbmNsdWRpbmcgZXh0ZXJuYWwgbW9uaXRvcnMpLlxuXG5JdCBpcyBhIGZvcmsgb2YgQ29sb3JUaW50IG1vZGlmaWVkIHRvIHJlZHVjZSBicmlnaHRuZXNzIHdpdGhvdXQgYW4gYWxwaGEgY2hhbm5lbC4iLAogICJuYW1lIjogIkFscGhhVGludCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc2FpZnVsYmtoYW4vYWxwaGEtdGludCIsCiAgInV1aWQiOiAiYWxwaGF0aW50QHNhaWZ1bGJraGFuLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "focus-changer@heartmire", "name": "Focus changer", "pname": "focus-changer", "description": "Change focus between windows in all directions.\n\nThe extension will first try to find a suitable window within the same monitor. If there is none, it will try to find one on the next monitor in that direction (in a multi-monitor setup).\n\nDefault shortcuts (can be changed in preferences):\n<Super>+h = Focus left\n<Super>+j = Focus down\n<Super>+k = Focus up\n<Super>+l = Focus right", "link": "https://extensions.gnome.org/extension/4627/focus-changer/", "shell_version_map": {"38": {"version": "9", "sha256": "0ngn0bw0f2fpp0vv4hq7gb0vx2xq2gk3nkkb6p393i9qbr42l3y1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcnRpbmhqYXJ0bXlyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mb2N1cy1jaGFuZ2VyIiwKICAidXVpZCI6ICJmb2N1cy1jaGFuZ2VyQGhlYXJ0bWlyZSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "8", "sha256": "0lcws0mgf72pl8q9q4finfkkzxic22f6gfljfkv5yghl8v1ksv06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFydGluaGphcnRteXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZvY3VzLWNoYW5nZXIiLAogICJ1dWlkIjogImZvY3VzLWNoYW5nZXJAaGVhcnRtaXJlIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "41": {"version": "8", "sha256": "0lcws0mgf72pl8q9q4finfkkzxic22f6gfljfkv5yghl8v1ksv06", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSBmb2N1cyBiZXR3ZWVuIHdpbmRvd3MgaW4gYWxsIGRpcmVjdGlvbnMuXG5cblRoZSBleHRlbnNpb24gd2lsbCBmaXJzdCB0cnkgdG8gZmluZCBhIHN1aXRhYmxlIHdpbmRvdyB3aXRoaW4gdGhlIHNhbWUgbW9uaXRvci4gSWYgdGhlcmUgaXMgbm9uZSwgaXQgd2lsbCB0cnkgdG8gZmluZCBvbmUgb24gdGhlIG5leHQgbW9uaXRvciBpbiB0aGF0IGRpcmVjdGlvbiAoaW4gYSBtdWx0aS1tb25pdG9yIHNldHVwKS5cblxuRGVmYXVsdCBzaG9ydGN1dHMgKGNhbiBiZSBjaGFuZ2VkIGluIHByZWZlcmVuY2VzKTpcbjxTdXBlcj4raCA9IEZvY3VzIGxlZnRcbjxTdXBlcj4raiA9IEZvY3VzIGRvd25cbjxTdXBlcj4rayA9IEZvY3VzIHVwXG48U3VwZXI+K2wgPSBGb2N1cyByaWdodCIsCiAgIm5hbWUiOiAiRm9jdXMgY2hhbmdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWFydGluaGphcnRteXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZvY3VzLWNoYW5nZXIiLAogICJ1dWlkIjogImZvY3VzLWNoYW5nZXJAaGVhcnRtaXJlIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "no-titlebar-when-maximized@alec.ninja", "name": "No Titlebar When Maximized", "pname": "no-titlebar-when-maximized", "description": "This extension hides the classic title bar of maximized X.Org windows.\n\nNote: The xprop utility must be installed in order for this extension to function.", "link": "https://extensions.gnome.org/extension/4630/no-titlebar-when-maximized/", "shell_version_map": {"41": {"version": "3", "sha256": "1dc9b5haw4ijd3vrml1zhrcfh97w86pyqf312k1mi91za6j8bfjr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhpZGVzIHRoZSBjbGFzc2ljIHRpdGxlIGJhciBvZiBtYXhpbWl6ZWQgWC5Pcmcgd2luZG93cy5cblxuTm90ZTogVGhlIHhwcm9wIHV0aWxpdHkgbXVzdCBiZSBpbnN0YWxsZWQgaW4gb3JkZXIgZm9yIHRoaXMgZXh0ZW5zaW9uIHRvIGZ1bmN0aW9uLiIsCiAgIm5hbWUiOiAiTm8gVGl0bGViYXIgV2hlbiBNYXhpbWl6ZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxlY2RvdG5pbmphL25vLXRpdGxlYmFyLXdoZW4tbWF4aW1pemVkIiwKICAidXVpZCI6ICJuby10aXRsZWJhci13aGVuLW1heGltaXplZEBhbGVjLm5pbmphIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "cryptowatch@d0x2f.github.com", "name": "CryptoWatch", "pname": "cryptowatch", "description": "Display live crypto portfolio balances.", "link": "https://extensions.gnome.org/extension/4633/cryptowatch/", "shell_version_map": {"40": {"version": "5", "sha256": "1yxlqbqw1j2gsydfqiz6xqdl6yv6iww90c1l8f1y6601p8979rc0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbGl2ZSBjcnlwdG8gcG9ydGZvbGlvIGJhbGFuY2VzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJjcnlwdG93YXRjaCIsCiAgImdldHRleHQtZG9tYWluIjogImNyeXB0b3dhdGNoIiwKICAibmFtZSI6ICJDcnlwdG9XYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jcnlwdG93YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZDB4MmYvQ3J5cHRvV2F0Y2giLAogICJ1dWlkIjogImNyeXB0b3dhdGNoQGQweDJmLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1yxlqbqw1j2gsydfqiz6xqdl6yv6iww90c1l8f1y6601p8979rc0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgbGl2ZSBjcnlwdG8gcG9ydGZvbGlvIGJhbGFuY2VzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJjcnlwdG93YXRjaCIsCiAgImdldHRleHQtZG9tYWluIjogImNyeXB0b3dhdGNoIiwKICAibmFtZSI6ICJDcnlwdG9XYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jcnlwdG93YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZDB4MmYvQ3J5cHRvV2F0Y2giLAogICJ1dWlkIjogImNyeXB0b3dhdGNoQGQweDJmLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "mousefollowsfocus@matthes.biz", "name": "Mouse Follows Focus", "pname": "mouse-follows-focus", "description": "Are you a power-user?\nDo you like using Super+1,2,3 to access your favorite apps?\nAre you annoyed that you have to manually move your mouse between screens because it can't keep up with your keyboard shortcuts?\nThen this extension is for you!\n\nThis simple GNOME shell extension does the opposite of the 'focus follows mouse' setting. It makes the mouse follow your keyboard focus. Whenever you focus a window, if the cursor isn't already in it, it will jump to the windows center, making it easy to interact with it.", "link": "https://extensions.gnome.org/extension/4642/mouse-follows-focus/", "shell_version_map": {"41": {"version": "4", "sha256": "1zsy76sab87s74p30sxdp1cki1w956gm0sw27anpx1z6yih50rdv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFyZSB5b3UgYSBwb3dlci11c2VyP1xuRG8geW91IGxpa2UgdXNpbmcgU3VwZXIrMSwyLDMgdG8gYWNjZXNzIHlvdXIgZmF2b3JpdGUgYXBwcz9cbkFyZSB5b3UgYW5ub3llZCB0aGF0IHlvdSBoYXZlIHRvIG1hbnVhbGx5IG1vdmUgeW91ciBtb3VzZSBiZXR3ZWVuIHNjcmVlbnMgYmVjYXVzZSBpdCBjYW4ndCBrZWVwIHVwIHdpdGggeW91ciBrZXlib2FyZCBzaG9ydGN1dHM/XG5UaGVuIHRoaXMgZXh0ZW5zaW9uIGlzIGZvciB5b3UhXG5cblRoaXMgc2ltcGxlIEdOT01FIHNoZWxsIGV4dGVuc2lvbiBkb2VzIHRoZSBvcHBvc2l0ZSBvZiB0aGUgJ2ZvY3VzIGZvbGxvd3MgbW91c2UnIHNldHRpbmcuIEl0IG1ha2VzIHRoZSBtb3VzZSBmb2xsb3cgeW91ciBrZXlib2FyZCBmb2N1cy4gV2hlbmV2ZXIgeW91IGZvY3VzIGEgd2luZG93LCBpZiB0aGUgY3Vyc29yIGlzbid0IGFscmVhZHkgaW4gaXQsIGl0IHdpbGwganVtcCB0byB0aGUgd2luZG93cyBjZW50ZXIsIG1ha2luZyBpdCBlYXN5IHRvIGludGVyYWN0IHdpdGggaXQuIiwKICAibmFtZSI6ICJNb3VzZSBGb2xsb3dzIEZvY3VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0xlb25NYXR0aGVzL21vdXNlZm9sbG93c2ZvY3VzIiwKICAidXVpZCI6ICJtb3VzZWZvbGxvd3Nmb2N1c0BtYXR0aGVzLmJpeiIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "gnome-extension-pass-search-provider.lavrov.github.com", "name": "Pass Search Provider", "pname": "pass-search-provider", "description": "Shows matching pass entries in gnome search", "link": "https://extensions.gnome.org/extension/4645/pass-search-provider/", "shell_version_map": {"40": {"version": "4", "sha256": "1jnisq1bzl1dvb3a31rvn5swihs5js46n6bz2pmgc9npbzbvxlnk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIG1hdGNoaW5nIHBhc3MgZW50cmllcyBpbiBnbm9tZSBzZWFyY2giLAogICJuYW1lIjogIlBhc3MgU2VhcmNoIFByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xhdnJvdi9nbm9tZS1leHRlbnNpb24tcGFzcy1zZWFyY2gtcHJvdmlkZXIiLAogICJ1dWlkIjogImdub21lLWV4dGVuc2lvbi1wYXNzLXNlYXJjaC1wcm92aWRlci5sYXZyb3YuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "desktop-cube@schneegans.github.com", "name": "Desktop Cube", "pname": "desktop-cube", "description": "Indulge in nostalgia with useless 3D effects.", "link": "https://extensions.gnome.org/extension/4648/desktop-cube/", "shell_version_map": {"40": {"version": "5", "sha256": "0yjzayajrqkl5pxacmp1nqn32v3cslbvs804laibc3a0brlr5f3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9EZXNrdG9wLUN1YmUiLAogICJ1dWlkIjogImRlc2t0b3AtY3ViZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "0yjzayajrqkl5pxacmp1nqn32v3cslbvs804laibc3a0brlr5f3k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZHVsZ2UgaW4gbm9zdGFsZ2lhIHdpdGggdXNlbGVzcyAzRCBlZmZlY3RzLiIsCiAgImdldHRleHQtZG9tYWluIjogImRlc2t0b3AtY3ViZSIsCiAgIm5hbWUiOiAiRGVza3RvcCBDdWJlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRlc2t0b3AtY3ViZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9EZXNrdG9wLUN1YmUiLAogICJ1dWlkIjogImRlc2t0b3AtY3ViZUBzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "notification-banner-reloaded@marcinjakubowski.github.com", "name": "Notification Banner Reloaded", "pname": "notification-banner-reloaded", "description": "Configure notification banner position and animation to your liking", "link": "https://extensions.gnome.org/extension/4651/notification-banner-reloaded/", "shell_version_map": {"40": {"version": "2", "sha256": "0mral17kp1w4gsrq7lf8zs4nqa3v38828g04fyj0j5f675h9v9jf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBub3RpZmljYXRpb24gYmFubmVyIHBvc2l0aW9uIGFuZCBhbmltYXRpb24gdG8geW91ciBsaWtpbmciLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBCYW5uZXIgUmVsb2FkZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmpha3Vib3dza2kvbm90aWZpY2F0aW9uLXBvc2l0aW9uLXJlbG9hZGVkIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tYmFubmVyLXJlbG9hZGVkQG1hcmNpbmpha3Vib3dza2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "0mral17kp1w4gsrq7lf8zs4nqa3v38828g04fyj0j5f675h9v9jf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbmZpZ3VyZSBub3RpZmljYXRpb24gYmFubmVyIHBvc2l0aW9uIGFuZCBhbmltYXRpb24gdG8geW91ciBsaWtpbmciLAogICJuYW1lIjogIk5vdGlmaWNhdGlvbiBCYW5uZXIgUmVsb2FkZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21hcmNpbmpha3Vib3dza2kvbm90aWZpY2F0aW9uLXBvc2l0aW9uLXJlbG9hZGVkIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tYmFubmVyLXJlbG9hZGVkQG1hcmNpbmpha3Vib3dza2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "gnome-extension-brightness@bruno.englert.gitlab.com", "name": "Adjust Display Brightness", "pname": "adjust-display-brightness", "description": "Simple GNOME extension to control displays' brightness via DDC. It requires ddcutil to be installed, I2C permissions for non-root users configured.", "link": "https://extensions.gnome.org/extension/4652/adjust-display-brightness/", "shell_version_map": {"40": {"version": "15", "sha256": "06dmir4xr1w90qmqvjdvivb1q6253mhqc934ckp277kk3p1h47mb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBHTk9NRSBleHRlbnNpb24gdG8gY29udHJvbCBkaXNwbGF5cycgYnJpZ2h0bmVzcyB2aWEgRERDLiBJdCByZXF1aXJlcyBkZGN1dGlsIHRvIGJlIGluc3RhbGxlZCwgSTJDIHBlcm1pc3Npb25zIGZvciBub24tcm9vdCB1c2VycyBjb25maWd1cmVkLiIsCiAgIm5hbWUiOiAiQWRqdXN0IERpc3BsYXkgQnJpZ2h0bmVzcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9icnVuby5lbmdsZXJ0L2dub21lLWV4dGVuc2lvbi1icmlnaHRuZXNzIiwKICAidXVpZCI6ICJnbm9tZS1leHRlbnNpb24tYnJpZ2h0bmVzc0BicnVuby5lbmdsZXJ0LmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
+, {"uuid": "date-menu-formatter@marcinjakubowski.github.com", "name": "Date Menu Formatter", "pname": "date-menu-formatter", "description": "Allows customization of the date display in the panel.\n\nMight be especially useful if you're using a horizontal panel which does not at all work well with the default date display.\n\nCHANGELOG\nVersion 5: added support for multiple Dash To Panel panels", "link": "https://extensions.gnome.org/extension/4655/date-menu-formatter/", "shell_version_map": {"40": {"version": "5", "sha256": "0zhndqp2pnpa5kj93j2s7s7f98wnq1i36ap8m6w1nq7g3frarmn8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBkYXRlIGRpc3BsYXkgaW4gdGhlIHBhbmVsLlxuXG5NaWdodCBiZSBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB5b3UncmUgdXNpbmcgYSBob3Jpem9udGFsIHBhbmVsIHdoaWNoIGRvZXMgbm90IGF0IGFsbCB3b3JrIHdlbGwgd2l0aCB0aGUgZGVmYXVsdCBkYXRlIGRpc3BsYXkuXG5cbkNIQU5HRUxPR1xuVmVyc2lvbiA1OiBhZGRlZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBEYXNoIFRvIFBhbmVsIHBhbmVscyIsCiAgIm5hbWUiOiAiRGF0ZSBNZW51IEZvcm1hdHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXRlLW1lbnUtZm9ybWF0dGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGF0ZS1tZW51LWZvcm1hdHRlckBtYXJjaW5qYWt1Ym93c2tpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "0zhndqp2pnpa5kj93j2s7s7f98wnq1i36ap8m6w1nq7g3frarmn8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBkYXRlIGRpc3BsYXkgaW4gdGhlIHBhbmVsLlxuXG5NaWdodCBiZSBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB5b3UncmUgdXNpbmcgYSBob3Jpem9udGFsIHBhbmVsIHdoaWNoIGRvZXMgbm90IGF0IGFsbCB3b3JrIHdlbGwgd2l0aCB0aGUgZGVmYXVsdCBkYXRlIGRpc3BsYXkuXG5cbkNIQU5HRUxPR1xuVmVyc2lvbiA1OiBhZGRlZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBEYXNoIFRvIFBhbmVsIHBhbmVscyIsCiAgIm5hbWUiOiAiRGF0ZSBNZW51IEZvcm1hdHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXRlLW1lbnUtZm9ybWF0dGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGF0ZS1tZW51LWZvcm1hdHRlckBtYXJjaW5qYWt1Ym93c2tpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "CustomizeClockOnLockScreen@pratap.fastmail.fm", "name": "Customize Clock on Lock Screen", "pname": "customize-clock-on-lock-screen", "description": "Customize Clock on Lock Screen.", "link": "https://extensions.gnome.org/extension/4663/customize-clock-on-lock-screen/", "shell_version_map": {"41": {"version": "2", "sha256": "1rw16avp8svfhkis6ifljkwffy67f22zpql31nmhgsdsm4bsp3pw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBDbG9jayBvbiBMb2NrIFNjcmVlbi4iLAogICJuYW1lIjogIkN1c3RvbWl6ZSBDbG9jayBvbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvY3VzdG9taXplLWNsb2NrLW9uLWxvY2stc2NyZWVuIiwKICAidXVpZCI6ICJDdXN0b21pemVDbG9ja09uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"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": "4", "sha256": "0lsihlkx9is0cisx7wsz9jy5h91gqhcpqqpq3lpl3msvn90dlmj9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiTGVmdENsb2NrQGFkaXR5YXNocml2YXN0YXZhLnRrIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "0lsihlkx9is0cisx7wsz9jy5h91gqhcpqqpq3lpl3msvn90dlmj9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiTGVmdENsb2NrQGFkaXR5YXNocml2YXN0YXZhLnRrIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"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": "4", "sha256": "1afrdqjb5xvg57m5y7h33drs8yzwrblyddxypyrmc4xam37nq3lb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHNldHRpbmcgdGhlIGtleWJvYXJkIGJhY2tsaWdodCBicmlnaHRuZXNzIHdpdGggYSBzbGlkZXIgaW4gdGhlIG1haW4gbWVudSIsCiAgIm5hbWUiOiAiS2V5Ym9hcmQgQmFja2xpZ2h0IFNsaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbG92YXNvYS9nbm9tZS1rZXlib2FyZC1iYWNrbGlnaHQtbWVudSIsCiAgInV1aWQiOiAia2V5Ym9hcmQtYmFja2xpZ2h0LW1lbnVAb3BoaXIuZGV2IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1afrdqjb5xvg57m5y7h33drs8yzwrblyddxypyrmc4xam37nq3lb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IHNldHRpbmcgdGhlIGtleWJvYXJkIGJhY2tsaWdodCBicmlnaHRuZXNzIHdpdGggYSBzbGlkZXIgaW4gdGhlIG1haW4gbWVudSIsCiAgIm5hbWUiOiAiS2V5Ym9hcmQgQmFja2xpZ2h0IFNsaWRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbG92YXNvYS9nbm9tZS1rZXlib2FyZC1iYWNrbGlnaHQtbWVudSIsCiAgInV1aWQiOiAia2V5Ym9hcmQtYmFja2xpZ2h0LW1lbnVAb3BoaXIuZGV2IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "alt-tab-move-mouse@buzztaiki.github.com", "name": "Alt-Tab Move Mouse", "pname": "alt-tab-move-mouse", "description": "Move mouse pointer onto active window after Alt-Tab. This extension is workaround of some sloppy focus problems", "link": "https://extensions.gnome.org/extension/4673/alt-tab-move-mouse/", "shell_version_map": {"40": {"version": "1", "sha256": "0dl2v61v2iqnf1qk7dsi60bm68kk4kc16jbrk9knw4ys8n35bxy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgbW91c2UgcG9pbnRlciBvbnRvIGFjdGl2ZSB3aW5kb3cgYWZ0ZXIgQWx0LVRhYi4gVGhpcyBleHRlbnNpb24gaXMgd29ya2Fyb3VuZCBvZiBzb21lIHNsb3BweSBmb2N1cyBwcm9ibGVtcyIsCiAgIm5hbWUiOiAiQWx0LVRhYiBNb3ZlIE1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9idXp6dGFpa2kvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFsdC10YWItbW92ZS1tb3VzZSIsCiAgInV1aWQiOiAiYWx0LXRhYi1tb3ZlLW1vdXNlQGJ1enp0YWlraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "41": {"version": "1", "sha256": "0dl2v61v2iqnf1qk7dsi60bm68kk4kc16jbrk9knw4ys8n35bxy3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgbW91c2UgcG9pbnRlciBvbnRvIGFjdGl2ZSB3aW5kb3cgYWZ0ZXIgQWx0LVRhYi4gVGhpcyBleHRlbnNpb24gaXMgd29ya2Fyb3VuZCBvZiBzb21lIHNsb3BweSBmb2N1cyBwcm9ibGVtcyIsCiAgIm5hbWUiOiAiQWx0LVRhYiBNb3ZlIE1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9idXp6dGFpa2kvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFsdC10YWItbW92ZS1tb3VzZSIsCiAgInV1aWQiOiAiYWx0LXRhYi1tb3ZlLW1vdXNlQGJ1enp0YWlraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
+, {"uuid": "Server@sven.kramer", "name": "Server", "pname": "server", "description": "A simple Indicator that shows my home-server status (online / offline) on the main panel. Furthermore a wake on lan can be triggered. For WOL functionality, its necessary that you have 'wakeonlan' installed. This extension is only tested with Gnome 40+. Didnt test it yet with older versions.", "link": "https://extensions.gnome.org/extension/4676/server/", "shell_version_map": {"38": {"version": "3", "sha256": "11qhxnvi0l66pf817fcwfxccm5hcvdq5h6fifb30g3frnm0q8v96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIEluZGljYXRvciB0aGF0IHNob3dzIG15IGhvbWUtc2VydmVyIHN0YXR1cyAob25saW5lIC8gb2ZmbGluZSkgb24gdGhlIG1haW4gcGFuZWwuIEZ1cnRoZXJtb3JlIGEgd2FrZSBvbiBsYW4gY2FuIGJlIHRyaWdnZXJlZC4gRm9yIFdPTCBmdW5jdGlvbmFsaXR5LCBpdHMgbmVjZXNzYXJ5IHRoYXQgeW91IGhhdmUgJ3dha2VvbmxhbicgaW5zdGFsbGVkLiBUaGlzIGV4dGVuc2lvbiBpcyBvbmx5IHRlc3RlZCB3aXRoIEdub21lIDQwKy4gRGlkbnQgdGVzdCBpdCB5ZXQgd2l0aCBvbGRlciB2ZXJzaW9ucy4iLAogICJuYW1lIjogIlNlcnZlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5TZXJ2ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9zdmVucy1iLWxvZy5ibG9nc3BvdC5jb20vIiwKICAidXVpZCI6ICJTZXJ2ZXJAc3Zlbi5rcmFtZXIiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "11qhxnvi0l66pf817fcwfxccm5hcvdq5h6fifb30g3frnm0q8v96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIEluZGljYXRvciB0aGF0IHNob3dzIG15IGhvbWUtc2VydmVyIHN0YXR1cyAob25saW5lIC8gb2ZmbGluZSkgb24gdGhlIG1haW4gcGFuZWwuIEZ1cnRoZXJtb3JlIGEgd2FrZSBvbiBsYW4gY2FuIGJlIHRyaWdnZXJlZC4gRm9yIFdPTCBmdW5jdGlvbmFsaXR5LCBpdHMgbmVjZXNzYXJ5IHRoYXQgeW91IGhhdmUgJ3dha2VvbmxhbicgaW5zdGFsbGVkLiBUaGlzIGV4dGVuc2lvbiBpcyBvbmx5IHRlc3RlZCB3aXRoIEdub21lIDQwKy4gRGlkbnQgdGVzdCBpdCB5ZXQgd2l0aCBvbGRlciB2ZXJzaW9ucy4iLAogICJuYW1lIjogIlNlcnZlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5TZXJ2ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9zdmVucy1iLWxvZy5ibG9nc3BvdC5jb20vIiwKICAidXVpZCI6ICJTZXJ2ZXJAc3Zlbi5rcmFtZXIiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "11qhxnvi0l66pf817fcwfxccm5hcvdq5h6fifb30g3frnm0q8v96", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIEluZGljYXRvciB0aGF0IHNob3dzIG15IGhvbWUtc2VydmVyIHN0YXR1cyAob25saW5lIC8gb2ZmbGluZSkgb24gdGhlIG1haW4gcGFuZWwuIEZ1cnRoZXJtb3JlIGEgd2FrZSBvbiBsYW4gY2FuIGJlIHRyaWdnZXJlZC4gRm9yIFdPTCBmdW5jdGlvbmFsaXR5LCBpdHMgbmVjZXNzYXJ5IHRoYXQgeW91IGhhdmUgJ3dha2VvbmxhbicgaW5zdGFsbGVkLiBUaGlzIGV4dGVuc2lvbiBpcyBvbmx5IHRlc3RlZCB3aXRoIEdub21lIDQwKy4gRGlkbnQgdGVzdCBpdCB5ZXQgd2l0aCBvbGRlciB2ZXJzaW9ucy4iLAogICJuYW1lIjogIlNlcnZlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5TZXJ2ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9zdmVucy1iLWxvZy5ibG9nc3BvdC5jb20vIiwKICAidXVpZCI6ICJTZXJ2ZXJAc3Zlbi5rcmFtZXIiLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "burn-my-windows@schneegans.github.com", "name": "Burn My Windows", "pname": "burn-my-windows", "description": "Disintegrate your apps the old-school way.", "link": "https://extensions.gnome.org/extension/4679/burn-my-windows/", "shell_version_map": {"40": {"version": "2", "sha256": "0ijhg2672k78a4vdv354bfw9awrn6m7l5kxwwaym620gkr8bgg8v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIGFwcHMgdGhlIG9sZC1zY2hvb2wgd2F5LiIsCiAgImdldHRleHQtZG9tYWluIjogImJ1cm4tbXktd2luZG93cyIsCiAgIm5hbWUiOiAiQnVybiBNeSBXaW5kb3dzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJ1cm4tbXktd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9CdXJuLU15LVdpbmRvd3MiLAogICJ1dWlkIjogImJ1cm4tbXktd2luZG93c0BzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "0ijhg2672k78a4vdv354bfw9awrn6m7l5kxwwaym620gkr8bgg8v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2ludGVncmF0ZSB5b3VyIGFwcHMgdGhlIG9sZC1zY2hvb2wgd2F5LiIsCiAgImdldHRleHQtZG9tYWluIjogImJ1cm4tbXktd2luZG93cyIsCiAgIm5hbWUiOiAiQnVybiBNeSBXaW5kb3dzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJ1cm4tbXktd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2NobmVlZ2Fucy9CdXJuLU15LVdpbmRvd3MiLAogICJ1dWlkIjogImJ1cm4tbXktd2luZG93c0BzY2huZWVnYW5zLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "babar-lite@fthx", "name": "BaBar Lite", "pname": "babar-task-bar-lite-for-gnome-40", "description": "Task 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). Change 'Places' label to an icon. No settings, use BaBar classical for that.\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.", "link": "https://extensions.gnome.org/extension/4681/babar-task-bar-lite-for-gnome-40/", "shell_version_map": {"40": {"version": "2", "sha256": "0xdshww4fh4328sfbmb801nvrqpdshwq7jssifa8zvih55858qnk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gTm8gc2V0dGluZ3MsIHVzZSBCYUJhciBjbGFzc2ljYWwgZm9yIHRoYXQuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJCYUJhciBMaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9iYWJhci1saXRlIiwKICAidXVpZCI6ICJiYWJhci1saXRlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "0xdshww4fh4328sfbmb801nvrqpdshwq7jssifa8zvih55858qnk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gTm8gc2V0dGluZ3MsIHVzZSBCYUJhciBjbGFzc2ljYWwgZm9yIHRoYXQuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuIiwKICAibmFtZSI6ICJCYUJhciBMaXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9iYWJhci1saXRlIiwKICAidXVpZCI6ICJiYWJhci1saXRlQGZ0aHgiLAogICJ2ZXJzaW9uIjogMgp9"}}}
 ]
diff --git a/pkgs/desktops/gnome/extensions/freon/default.nix b/pkgs/desktops/gnome/extensions/freon/default.nix
index 39224e6245b60..90909608052bd 100644
--- a/pkgs/desktops/gnome/extensions/freon/default.nix
+++ b/pkgs/desktops/gnome/extensions/freon/default.nix
@@ -1,8 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, glib }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, glib
+, substituteAll
+, hddtemp
+, liquidctl
+, lm_sensors
+, netcat-gnu
+, nvme-cli
+, procps
+, smartmontools
+}:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-freon";
-  version = "44";
+  version = "45";
 
   passthru = {
     extensionUuid = "freon@UshakovVasilii_Github.yahoo.com";
@@ -13,11 +25,20 @@ stdenv.mkDerivation rec {
     owner = "UshakovVasilii";
     repo = "gnome-shell-extension-freon";
     rev = "EGO-${version}";
-    sha256 = "sha256-4DYAIC9N5id3vQe0WaOFP+MymsrPK18hbYqO4DjG+2U=";
+    sha256 = "sha256-tPb7SzHSwvz7VV+kZTmcw1eAdtL1J7FJ3BOtg4Us8jc=";
   };
 
   nativeBuildInputs = [ glib ];
 
+  patches = [
+    (substituteAll {
+      src = ./fix_paths.patch;
+      inherit hddtemp liquidctl lm_sensors procps smartmontools;
+      netcat = netcat-gnu;
+      nvmecli = nvme-cli;
+    })
+  ];
+
   buildPhase = ''
     runHook preBuild
     glib-compile-schemas --strict --targetdir="freon@UshakovVasilii_Github.yahoo.com/schemas" "freon@UshakovVasilii_Github.yahoo.com/schemas"
diff --git a/pkgs/desktops/gnome/extensions/freon/fix_paths.patch b/pkgs/desktops/gnome/extensions/freon/fix_paths.patch
new file mode 100644
index 0000000000000..b1be13e8ff589
--- /dev/null
+++ b/pkgs/desktops/gnome/extensions/freon/fix_paths.patch
@@ -0,0 +1,85 @@
+diff --git a/freon@UshakovVasilii_Github.yahoo.com/hddtempUtil.js b/freon@UshakovVasilii_Github.yahoo.com/hddtempUtil.js
+index e5d1d6d..856654b 100644
+--- a/freon@UshakovVasilii_Github.yahoo.com/hddtempUtil.js
++++ b/freon@UshakovVasilii_Github.yahoo.com/hddtempUtil.js
+@@ -7,7 +7,7 @@ var HddtempUtil = class extends CommandLineUtil.CommandLineUtil {
+ 
+     constructor() {
+         super();
+-        let hddtempArgv = GLib.find_program_in_path('hddtemp');
++        let hddtempArgv = GLib.find_program_in_path('@hddtemp@/bin/hddtemp');
+         if(hddtempArgv) {
+             // check if this user can run hddtemp directly.
+             if(!GLib.spawn_command_line_sync(hddtempArgv)[3]){
+@@ -19,8 +19,8 @@ var HddtempUtil = class extends CommandLineUtil.CommandLineUtil {
+         // doesn't seem to be the case… is it running as a daemon?
+         // Check first for systemd
+         let systemctl = GLib.find_program_in_path('systemctl');
+-        let pidof = GLib.find_program_in_path('pidof');
+-        let nc = GLib.find_program_in_path('nc');
++        let pidof = GLib.find_program_in_path('@procps@/bin/pidof');
++        let nc = GLib.find_program_in_path('@netcat@/bin/nc');
+         let pid = undefined;
+ 
+         if(systemctl) {
+@@ -35,7 +35,7 @@ var HddtempUtil = class extends CommandLineUtil.CommandLineUtil {
+ 
+         // systemd isn't used on this system, try sysvinit instead
+         if(!pid && pidof) {
+-            let output = GLib.spawn_command_line_sync("pidof hddtemp")[1].toString().trim();
++            let output = GLib.spawn_command_line_sync("@procps@/bin/pidof hddtemp")[1].toString().trim();
+             if(output.length)
+                 pid = Number(output.trim());
+         }
+diff --git a/freon@UshakovVasilii_Github.yahoo.com/liquidctlUtil.js b/freon@UshakovVasilii_Github.yahoo.com/liquidctlUtil.js
+index 766bf62..7cd4e94 100644
+--- a/freon@UshakovVasilii_Github.yahoo.com/liquidctlUtil.js
++++ b/freon@UshakovVasilii_Github.yahoo.com/liquidctlUtil.js
+@@ -8,7 +8,7 @@ const commandLineUtil = Me.imports.commandLineUtil;
+ var LiquidctlUtil = class extends commandLineUtil.CommandLineUtil {
+     constructor() {
+         super();
+-        const path = GLib.find_program_in_path('liquidctl');
++        const path = GLib.find_program_in_path('@liquidctl@/bin/liquidctl');
+         this._argv = path ? [path, 'status', '--json'] : null;
+     }
+ 
+diff --git a/freon@UshakovVasilii_Github.yahoo.com/nvmecliUtil.js b/freon@UshakovVasilii_Github.yahoo.com/nvmecliUtil.js
+index ae2ea93..2349b9e 100644
+--- a/freon@UshakovVasilii_Github.yahoo.com/nvmecliUtil.js
++++ b/freon@UshakovVasilii_Github.yahoo.com/nvmecliUtil.js
+@@ -3,7 +3,7 @@ const GLib = imports.gi.GLib;
+ const Me = imports.misc.extensionUtils.getCurrentExtension();
+ 
+ function getNvmeData (argv){
+-    const nvme = GLib.find_program_in_path('nvme')
++    const nvme = GLib.find_program_in_path('@nvmecli@/bin/nvme')
+     return JSON.parse(GLib.spawn_command_line_sync(`${nvme} ${argv} -o json`)[1].toString())
+ }
+ 
+diff --git a/freon@UshakovVasilii_Github.yahoo.com/sensorsUtil.js b/freon@UshakovVasilii_Github.yahoo.com/sensorsUtil.js
+index 62fa580..c017748 100644
+--- a/freon@UshakovVasilii_Github.yahoo.com/sensorsUtil.js
++++ b/freon@UshakovVasilii_Github.yahoo.com/sensorsUtil.js
+@@ -7,7 +7,7 @@ var SensorsUtil = class extends CommandLineUtil.CommandLineUtil {
+ 
+     constructor() {
+         super();
+-        let path = GLib.find_program_in_path('sensors');
++        let path = GLib.find_program_in_path('@lm_sensors@/bin/sensors');
+         // -A: Do not show adapter -j: JSON output
+         this._argv = path ? [path, '-A', '-j'] : null;
+     }
+diff --git a/freon@UshakovVasilii_Github.yahoo.com/smartctlUtil.js b/freon@UshakovVasilii_Github.yahoo.com/smartctlUtil.js
+index 03d469b..6057a3b 100644
+--- a/freon@UshakovVasilii_Github.yahoo.com/smartctlUtil.js
++++ b/freon@UshakovVasilii_Github.yahoo.com/smartctlUtil.js
+@@ -3,7 +3,7 @@ const GLib = imports.gi.GLib;
+ const Me = imports.misc.extensionUtils.getCurrentExtension();
+ const ByteArray = imports.byteArray;
+ function getSmartData (argv){
+-    const smartctl = GLib.find_program_in_path('smartctl')
++    const smartctl = GLib.find_program_in_path('@smartmontools@/bin/smartctl')
+     return JSON.parse(ByteArray.toString( GLib.spawn_command_line_sync(`${smartctl} ${argv} -j`)[1] ))
+ }
+ 
diff --git a/pkgs/desktops/gnome/extensions/manuallyPackaged.nix b/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
index 553d51de14d4c..a08af5734e471 100644
--- a/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
+++ b/pkgs/desktops/gnome/extensions/manuallyPackaged.nix
@@ -14,6 +14,7 @@
   "no-title-bar@jonaspoehler.de" = callPackage ./no-title-bar { };
   "paperwm@hedning:matrix.org" = callPackage ./paperwm { };
   "pidgin@muffinmad" = callPackage ./pidgin-im-integration { };
+  "pop-shell@system76.com" = callPackage ./pop-shell { };
   "sound-output-device-chooser@kgshank.net" = callPackage ./sound-output-device-chooser { };
   "system-monitor@paradoxxx.zero.gmail.com" = callPackage ./system-monitor { };
   "taskwhisperer-extension@infinicode.de" = callPackage ./taskwhisperer { };
diff --git a/pkgs/desktops/gnome/extensions/pop-shell/default.nix b/pkgs/desktops/gnome/extensions/pop-shell/default.nix
new file mode 100644
index 0000000000000..759deb98b19db
--- /dev/null
+++ b/pkgs/desktops/gnome/extensions/pop-shell/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, fetchFromGitHub, glib, nodePackages, gjs }:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-shell-extension-pop-shell";
+  version = "unstable-2021-11-30";
+
+  src = fetchFromGitHub {
+    owner = "pop-os";
+    repo = "shell";
+    rev = "4b65ee865d01436ec75a239a0586a2fa6051b8c3";
+    sha256 = "DHmp3kzBgbyxRe0TjER/CAqyUmD9LeRqAFQ9apQDzfk=";
+  };
+
+  nativeBuildInputs = [ glib nodePackages.typescript gjs ];
+
+  buildInputs = [ gjs ];
+
+  patches = [
+    ./fix-gjs.patch
+  ];
+
+  makeFlags = [ "XDG_DATA_HOME=$(out)/share" ];
+
+  passthru = {
+    extensionUuid = "pop-shell@system76.com";
+    extensionPortalSlug = "pop-shell";
+  };
+
+  meta = with lib; {
+    description = "Keyboard-driven layer for GNOME Shell";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.genofire ];
+    homepage = "https://github.com/pop-os/shell";
+  };
+}
diff --git a/pkgs/desktops/gnome/extensions/pop-shell/fix-gjs.patch b/pkgs/desktops/gnome/extensions/pop-shell/fix-gjs.patch
new file mode 100644
index 0000000000000..e1e6fb7a839ae
--- /dev/null
+++ b/pkgs/desktops/gnome/extensions/pop-shell/fix-gjs.patch
@@ -0,0 +1,67 @@
+diff --git a/src/color_dialog/src/main.ts b/src/color_dialog/src/main.ts
+index 9522499..9911530 100644
+--- a/src/color_dialog/src/main.ts
++++ b/src/color_dialog/src/main.ts
+@@ -1,4 +1,4 @@
+-#!/usr/bin/gjs
++#!/usr/bin/env gjs
+ 
+ imports.gi.versions.Gtk = '3.0';
+ 
+@@ -84,4 +84,4 @@ function launch_color_dialog() {
+ 
+ Gtk.init(null);
+ 
+-launch_color_dialog()
+\ No newline at end of file
++launch_color_dialog()
+diff --git a/src/extension.ts b/src/extension.ts
+index 7417c46..00d5829 100644
+--- a/src/extension.ts
++++ b/src/extension.ts
+@@ -534,7 +534,7 @@ export class Ext extends Ecs.System<ExtEvent> {
+             return true
+         }
+ 
+-        const ipc = utils.async_process_ipc(["gjs", path])
++        const ipc = utils.async_process_ipc([path])
+ 
+         if (ipc) {
+             const generator = (stdout: any, res: any) => {
+diff --git a/src/floating_exceptions/src/main.ts b/src/floating_exceptions/src/main.ts
+index f298ec7..87a6bc4 100644
+--- a/src/floating_exceptions/src/main.ts
++++ b/src/floating_exceptions/src/main.ts
+@@ -1,4 +1,4 @@
+-#!/usr/bin/gjs
++#!/usr/bin/env gjs
+ 
+ imports.gi.versions.Gtk = '3.0'
+ 
+@@ -329,4 +329,4 @@ function main() {
+     Gtk.main()
+ }
+ 
+-main()
+\ No newline at end of file
++main()
+diff --git a/src/panel_settings.ts b/src/panel_settings.ts
+index 83ff56c..1bc1e98 100644
+--- a/src/panel_settings.ts
++++ b/src/panel_settings.ts
+@@ -338,7 +338,7 @@ function color_selector(ext: Ext, menu: any) {
+     color_selector_item.add_child(color_button);
+     color_button.connect('button-press-event', () => {
+         let path = Me.dir.get_path() + "/color_dialog/main.js";
+-        let resp = GLib.spawn_command_line_async(`gjs ${path}`);
++        let resp = GLib.spawn_command_line_async(path);
+         if (!resp) {
+ 
+             return null;
+@@ -353,4 +353,4 @@ function color_selector(ext: Ext, menu: any) {
+     });
+ 
+     return color_selector_item;
+-}
+\ No newline at end of file
++}
diff --git a/pkgs/desktops/gnome/games/aisleriot/default.nix b/pkgs/desktops/gnome/games/aisleriot/default.nix
index 991bbb786b114..21e38c548e989 100644
--- a/pkgs/desktops/gnome/games/aisleriot/default.nix
+++ b/pkgs/desktops/gnome/games/aisleriot/default.nix
@@ -19,14 +19,14 @@
 
 stdenv.mkDerivation rec {
   pname = "aisleriot";
-  version = "3.22.19";
+  version = "3.22.20";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = pname;
     rev = version;
-    sha256 = "sha256-YY0/HkafcbbW0xuE9RmjYMHN50lM0o0zugOyTefT0bE=";
+    sha256 = "sha256-5xFwlhT9qjtvNDQ8kfGd2BeK2KcJDzpfsEC8z4Ei3ns=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/misc/gnome-flashback/default.nix b/pkgs/desktops/gnome/misc/gnome-flashback/default.nix
index 3df9d7450cd7f..9e796670aa02b 100644
--- a/pkgs/desktops/gnome/misc/gnome-flashback/default.nix
+++ b/pkgs/desktops/gnome/misc/gnome-flashback/default.nix
@@ -30,7 +30,7 @@
 }:
 let
   pname = "gnome-flashback";
-  version = "3.40.0";
+  version = "3.42.1";
 
   # From data/sessions/Makefile.am
   requiredComponentsCommon = enableGnomePanel:
@@ -61,7 +61,7 @@ let
 
     src = fetchurl {
       url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
-      sha256 = "0fxv13m2q9z1q3i9jbggl35cb7jlckbdrfsr5sf030hr1w836gz0";
+      sha256 = "sha256:0kl4m05whm03m2v0y3jd69lghkggn8s0hxdhvchcas7jmhh940n8";
     };
 
     # make .desktop Execs absolute
diff --git a/pkgs/desktops/gnome/misc/gpaste/default.nix b/pkgs/desktops/gnome/misc/gpaste/default.nix
index 98670c9931116..83928c04827b4 100644
--- a/pkgs/desktops/gnome/misc/gpaste/default.nix
+++ b/pkgs/desktops/gnome/misc/gpaste/default.nix
@@ -17,14 +17,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.42.1";
+  version = "3.42.2";
   pname = "gpaste";
 
   src = fetchFromGitHub {
     owner = "Keruspe";
     repo = "GPaste";
     rev = "v${version}";
-    sha256 = "sha256-yoJ/k9cXXF5ELKF0JXGtxsUjfQ/S1sccLRQOQG7YMXo=";
+    sha256 = "sha256-VWtq1jPwUHHIDpVaSYQ0FiihlfulRofFmacMyv/buMw=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnustep/make/builder.sh b/pkgs/desktops/gnustep/make/builder.sh
index 66afe1271cae5..39bd77038281c 100644
--- a/pkgs/desktops/gnustep/make/builder.sh
+++ b/pkgs/desktops/gnustep/make/builder.sh
@@ -30,92 +30,92 @@ postInstall() {
     # add the current package to the paths
     local tmp="$out/lib/GNUstep/Applications"
     if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_APPS" in *"${tmp}"*) false;; *) true;; esac; then
-	addToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$tmp"
+        addToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$tmp"
     fi
     tmp="$out/lib/GNUstep/Applications"
     if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" in *"${tmp}"*) false;; *) true;; esac; then
-	addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$tmp"
+        addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$tmp"
     fi
     tmp="$out/lib/GNUstep/WebApplications"
     if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_WEB_APPS" in *"${tmp}"*) false;; *) true;; esac; then
-	addToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$tmp"
+        addToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$tmp"
     fi
     tmp="$out/bin"
     if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_TOOLS" in *"${tmp}"*) false;; *) true;; esac; then
-	addToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$tmp"
+        addToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$tmp"
     fi
     tmp="$out/sbin"
     if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" in *"${tmp}"*) false;; *) true;; esac; then
-	addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$tmp"
+        addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$tmp"
     fi
     tmp="$out/lib/GNUstep"
     if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_LIBRARY" in *"${tmp}"*) false;; *) true;; esac; then
-    	addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$tmp"
+            addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$tmp"
     fi
     tmp="$out/include"
     if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_HEADERS" in *"${tmp}"*) false;; *) true;; esac; then
-    	if [ -z "$NIX_GNUSTEP_SYSTEM_HEADERS" ]; then
-    	    export NIX_GNUSTEP_SYSTEM_HEADERS="$tmp"
-    	else
-    	    export NIX_GNUSTEP_SYSTEM_HEADERS+=" $tmp"
-    	fi
+            if [ -z "$NIX_GNUSTEP_SYSTEM_HEADERS" ]; then
+                export NIX_GNUSTEP_SYSTEM_HEADERS="$tmp"
+            else
+                export NIX_GNUSTEP_SYSTEM_HEADERS+=" $tmp"
+            fi
     fi
     tmp="$out/lib"
     if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_LIBRARIES" in *"${tmp}"*) false;; *) true;; esac; then
-	addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$tmp"
+        addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$tmp"
     fi
     tmp="$out/share/GNUstep/Documentation"
     if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC" in *"${tmp}"*) false;; *) true;; esac; then
-	addToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$tmp"
+        addToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$tmp"
     fi
     tmp="$out/share/man"
     if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC_MAN" in *"${tmp}"*) false;; *) true;; esac; then
-	addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$tmp"
+        addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$tmp"
     fi
     tmp="$out/share/info"
     if [ -d "$tmp" ] && case "$NIX_GNUSTEP_SYSTEM_DOC_INFO" in *"${tmp}"*) false;; *) true;; esac; then
-	addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$tmp"
+        addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$tmp"
     fi
-    
+
     # write the config file
     echo GNUSTEP_MAKEFILES=$GNUSTEP_MAKEFILES >> $conf
     if [ -n "$NIX_GNUSTEP_SYSTEM_APPS" ]; then
-	echo NIX_GNUSTEP_SYSTEM_APPS="$NIX_GNUSTEP_SYSTEM_APPS"
+        echo NIX_GNUSTEP_SYSTEM_APPS="$NIX_GNUSTEP_SYSTEM_APPS"
     fi
     if [ -n "$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" ]; then
-	echo NIX_GNUSTEP_SYSTEM_ADMIN_APPS="$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" >> $conf
+        echo NIX_GNUSTEP_SYSTEM_ADMIN_APPS="$NIX_GNUSTEP_SYSTEM_ADMIN_APPS" >> $conf
     fi
     if [ -n "$NIX_GNUSTEP_SYSTEM_WEB_APPS" ]; then
-	echo NIX_GNUSTEP_SYSTEM_WEB_APPS="$NIX_GNUSTEP_SYSTEM_WEB_APPS" >> $conf
+        echo NIX_GNUSTEP_SYSTEM_WEB_APPS="$NIX_GNUSTEP_SYSTEM_WEB_APPS" >> $conf
     fi
     if [ -n "$NIX_GNUSTEP_SYSTEM_TOOLS" ]; then
-	echo NIX_GNUSTEP_SYSTEM_TOOLS="$NIX_GNUSTEP_SYSTEM_TOOLS" >> $conf
+        echo NIX_GNUSTEP_SYSTEM_TOOLS="$NIX_GNUSTEP_SYSTEM_TOOLS" >> $conf
     fi
     if [ -n "$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" ]; then
-	echo NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS="$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" >> $conf
+        echo NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS="$NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS" >> $conf
     fi
     if [ -n "$NIX_GNUSTEP_SYSTEM_LIBRARY" ]; then
-	echo NIX_GNUSTEP_SYSTEM_LIBRARY="$NIX_GNUSTEP_SYSTEM_LIBRARY" >> $conf
+        echo NIX_GNUSTEP_SYSTEM_LIBRARY="$NIX_GNUSTEP_SYSTEM_LIBRARY" >> $conf
     fi
     if [ -n "$NIX_GNUSTEP_SYSTEM_HEADERS" ]; then
-	echo NIX_GNUSTEP_SYSTEM_HEADERS="$NIX_GNUSTEP_SYSTEM_HEADERS" >> $conf
+        echo NIX_GNUSTEP_SYSTEM_HEADERS="$NIX_GNUSTEP_SYSTEM_HEADERS" >> $conf
     fi
     if [ -n "$NIX_GNUSTEP_SYSTEM_LIBRARIES" ]; then
-	echo NIX_GNUSTEP_SYSTEM_LIBRARIES="$NIX_GNUSTEP_SYSTEM_LIBRARIES" >> $conf
+        echo NIX_GNUSTEP_SYSTEM_LIBRARIES="$NIX_GNUSTEP_SYSTEM_LIBRARIES" >> $conf
     fi
     if [ -n "$NIX_GNUSTEP_SYSTEM_DOC" ]; then
-	echo NIX_GNUSTEP_SYSTEM_DOC="$NIX_GNUSTEP_SYSTEM_DOC" >> $conf
+        echo NIX_GNUSTEP_SYSTEM_DOC="$NIX_GNUSTEP_SYSTEM_DOC" >> $conf
     fi
     if [ -n "$NIX_GNUSTEP_SYSTEM_DOC_MAN" ]; then
-	echo NIX_GNUSTEP_SYSTEM_DOC_MAN="$NIX_GNUSTEP_SYSTEM_DOC_MAN" >> $conf
+        echo NIX_GNUSTEP_SYSTEM_DOC_MAN="$NIX_GNUSTEP_SYSTEM_DOC_MAN" >> $conf
     fi
     if [ -n "$NIX_GNUSTEP_SYSTEM_DOC_INFO" ]; then
-	echo NIX_GNUSTEP_SYSTEM_DOC_INFO="$NIX_GNUSTEP_SYSTEM_DOC_INFO" >> $conf
+        echo NIX_GNUSTEP_SYSTEM_DOC_INFO="$NIX_GNUSTEP_SYSTEM_DOC_INFO" >> $conf
     fi
-    
+
     for i in $out/bin/*; do
-	echo "wrapping $(basename $i)"
-	wrapGSMake "$i" "$out/share/.GNUstep.conf"
+        echo "wrapping $(basename $i)"
+        wrapGSMake "$i" "$out/share/.GNUstep.conf"
     done
 }
 
diff --git a/pkgs/desktops/gnustep/make/setup-hook.sh b/pkgs/desktops/gnustep/make/setup-hook.sh
index b2b90f1e5222d..177a381100a64 100644
--- a/pkgs/desktops/gnustep/make/setup-hook.sh
+++ b/pkgs/desktops/gnustep/make/setup-hook.sh
@@ -20,58 +20,58 @@ addEnvVars() {
     local filename
 
     for filename in $1/share/GNUstep/Makefiles/Additional/*.make ; do
-	if case "${NIX_GNUSTEP_MAKEFILES_ADDITIONAL-}" in *"{$filename}"*) false;; *) true;; esac; then
-	    export NIX_GNUSTEP_MAKEFILES_ADDITIONAL+=" $filename"
-	fi
+    if case "${NIX_GNUSTEP_MAKEFILES_ADDITIONAL-}" in *"{$filename}"*) false;; *) true;; esac; then
+        export NIX_GNUSTEP_MAKEFILES_ADDITIONAL+=" $filename"
+    fi
     done
 
     local tmp="$1/lib/GNUstep/Applications"
     if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then
-	addToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$tmp"
+    addToSearchPath NIX_GNUSTEP_SYSTEM_APPS "$tmp"
     fi
     tmp="$1/lib/GNUstep/Applications"
     if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_ADMIN_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then
-	addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$tmp"
+    addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_APPS "$tmp"
     fi
     tmp="$1/lib/GNUstep/WebApplications"
     if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_WEB_APPS-}" in *"${tmp}"*) false;; *) true;; esac; then
-	addToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$tmp"
+    addToSearchPath NIX_GNUSTEP_SYSTEM_WEB_APPS "$tmp"
     fi
     tmp="$1/bin"
     if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_TOOLS-}" in *"${tmp}"*) false;; *) true;; esac; then
-	addToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$tmp"
+    addToSearchPath NIX_GNUSTEP_SYSTEM_TOOLS "$tmp"
     fi
     tmp="$1/sbin"
     if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS-}" in *"${tmp}"*) false;; *) true;; esac; then
-	addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$tmp"
+    addToSearchPath NIX_GNUSTEP_SYSTEM_ADMIN_TOOLS "$tmp"
     fi
     tmp="$1/lib/GNUstep"
     if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_LIBRARY-}" in *"${tmp}"*) false;; *) true;; esac; then
-    	addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$tmp"
+        addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARY "$tmp"
     fi
     tmp="$1/include"
     if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_HEADERS-}" in *"${tmp}"*) false;; *) true;; esac; then
-    	if [ -z "${NIX_GNUSTEP_SYSTEM_HEADERS-}" ]; then
-    	    export NIX_GNUSTEP_SYSTEM_HEADERS="$tmp"
-    	else
-    	    export NIX_GNUSTEP_SYSTEM_HEADERS+=" $tmp"
-    	fi
+        if [ -z "${NIX_GNUSTEP_SYSTEM_HEADERS-}" ]; then
+            export NIX_GNUSTEP_SYSTEM_HEADERS="$tmp"
+        else
+            export NIX_GNUSTEP_SYSTEM_HEADERS+=" $tmp"
+        fi
     fi
     tmp="$1/lib"
     if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_LIBRARIES-}" in *"${tmp}"*) false;; *) true;; esac; then
-	addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$tmp"
+    addToSearchPath NIX_GNUSTEP_SYSTEM_LIBRARIES "$tmp"
     fi
     tmp="$1/share/GNUstep/Documentation"
     if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC-}" in *"${tmp}"*) false;; *) true;; esac; then
-	addToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$tmp"
+    addToSearchPath NIX_GNUSTEP_SYSTEM_DOC "$tmp"
     fi
     tmp="$1/share/man"
     if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC_MAN-}" in *"${tmp}"*) false;; *) true;; esac; then
-	addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$tmp"
+    addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_MAN "$tmp"
     fi
     tmp="$1/share/info"
     if [ -d "$tmp" ] && case "${NIX_GNUSTEP_SYSTEM_DOC_INFO-}" in *"${tmp}"*) false;; *) true;; esac; then
-	addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$tmp"
+    addToSearchPath NIX_GNUSTEP_SYSTEM_DOC_INFO "$tmp"
     fi
 }
 addEnvHooks "$targetOffset" addEnvVars
diff --git a/pkgs/desktops/mate/mate-session-manager/default.nix b/pkgs/desktops/mate/mate-session-manager/default.nix
index 1c51e2f6ae89e..dba5c374f94ae 100644
--- a/pkgs/desktops/mate/mate-session-manager/default.nix
+++ b/pkgs/desktops/mate/mate-session-manager/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, gettext, xtrans, dbus-glib, systemd,
-  libSM, libXtst, gtk3, epoxy, polkit, hicolor-icon-theme, mate,
+  libSM, libXtst, gtk3, libepoxy, polkit, hicolor-icon-theme, mate,
   wrapGAppsHook, fetchpatch, mateUpdateScript
 }:
 
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     gtk3
     mate.mate-desktop
     hicolor-icon-theme
-    epoxy
+    libepoxy
     polkit
   ];
 
diff --git a/pkgs/desktops/pantheon/apps/appcenter/add-packagekit-backend-option.patch b/pkgs/desktops/pantheon/apps/appcenter/add-packagekit-backend-option.patch
new file mode 100644
index 0000000000000..bd519c292c26b
--- /dev/null
+++ b/pkgs/desktops/pantheon/apps/appcenter/add-packagekit-backend-option.patch
@@ -0,0 +1,240 @@
+From b5d7cb20713eff3b3729e5c5fdd2f15680a29385 Mon Sep 17 00:00:00 2001
+From: Bobby Rong <rjl931189261@126.com>
+Date: Sun, 31 Oct 2021 23:12:46 +0800
+Subject: [PATCH] build: add packagekit_backend option
+
+---
+ .github/workflows/main.yml      |  7 +++++++
+ meson_options.txt               |  1 +
+ src/Application.vala            |  4 ++++
+ src/Core/BackendAggregator.vala |  2 ++
+ src/Core/Package.vala           | 21 +++++++++++++--------
+ src/Core/UpdateManager.vala     |  6 ++++++
+ src/Views/Homepage.vala         |  4 ++++
+ src/meson.build                 | 10 ++++++++--
+ 8 files changed, 45 insertions(+), 10 deletions(-)
+
+diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
+index daf13654..5dc5a2fb 100644
+--- a/.github/workflows/main.yml
++++ b/.github/workflows/main.yml
+@@ -42,6 +42,13 @@ jobs:
+         meson configure -Dcurated=false -Dpayments=false -Dsharing=false -Dname=Pop\!_Shop build
+         ninja -C build install
+ 
++    - name: Build (NixOS)
++      env:
++        DESTDIR: out
++      run: |
++        meson configure -Dcurated=false -Dpayments=false -Dpackagekit_backend=false build
++        ninja -C build install
++
+   lint:
+ 
+     runs-on: ubuntu-latest
+diff --git a/meson_options.txt b/meson_options.txt
+index 0ae93d07..37a6cd8a 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -4,3 +4,4 @@ option('name', type : 'string', value : 'AppCenter', description : 'The name of
+ option('payments', type : 'boolean', value : true, description : 'Enable payment features and display paid apps')
+ option('sharing', type : 'boolean', value : true, description : 'Display sharing features, i.e. copyable URLs to appcenter.elementary.io')
+ option('hide_upstream_distro_apps', type : 'boolean', value : true, description : 'Used for hiding Ubuntu repo apps on elementary OS')
++option('packagekit_backend', type : 'boolean', value : true, description : 'Enable PackageKit backend')
+diff --git a/src/Application.vala b/src/Application.vala
+index 65fae5aa..7c075076 100644
+--- a/src/Application.vala
++++ b/src/Application.vala
+@@ -167,9 +167,11 @@ public class AppCenter.App : Gtk.Application {
+ 
+         var client = AppCenterCore.Client.get_default ();
+ 
++#if PACKAGEKIT_BACKEND
+         if (fake_update_packages != null) {
+             AppCenterCore.PackageKitBackend.get_default ().fake_packages = fake_update_packages;
+         }
++#endif
+ 
+         if (silent) {
+             NetworkMonitor.get_default ().network_changed.connect ((available) => {
+@@ -183,6 +185,7 @@ public class AppCenter.App : Gtk.Application {
+             return;
+         }
+ 
++#if PACKAGEKIT_BACKEND
+         if (local_path != null) {
+             var file = File.new_for_commandline_arg (local_path);
+ 
+@@ -192,6 +195,7 @@ public class AppCenter.App : Gtk.Application {
+                 warning ("Failed to load local AppStream XML file: %s", e.message);
+             }
+         }
++#endif
+ 
+         if (main_window == null) {
+             main_window = new MainWindow (this);
+diff --git a/src/Core/BackendAggregator.vala b/src/Core/BackendAggregator.vala
+index 539dba98..feb1eaa9 100644
+--- a/src/Core/BackendAggregator.vala
++++ b/src/Core/BackendAggregator.vala
+@@ -26,8 +26,10 @@ public class AppCenterCore.BackendAggregator : Backend, Object {
+ 
+     construct {
+         backends = new Gee.ArrayList<unowned Backend> ();
++#if PACKAGEKIT_BACKEND
+         backends.add (PackageKitBackend.get_default ());
+         backends.add (UbuntuDriversBackend.get_default ());
++#endif
+         backends.add (FlatpakBackend.get_default ());
+ 
+         unowned Gtk.Application app = (Gtk.Application) GLib.Application.get_default ();
+diff --git a/src/Core/Package.vala b/src/Core/Package.vala
+index d6f12f15..8dbd7a22 100644
+--- a/src/Core/Package.vala
++++ b/src/Core/Package.vala
+@@ -328,7 +328,14 @@ public class AppCenterCore.Package : Object {
+     public string origin_description {
+         owned get {
+             unowned string origin = component.get_origin ();
+-            if (backend is PackageKitBackend) {
++            if (backend is FlatpakBackend) {
++                var fp_package = this as FlatpakPackage;
++                if (fp_package != null && fp_package.installation == FlatpakBackend.system_installation) {
++                    return _("%s (system-wide)").printf (origin);
++                }
++                return origin;
++#if PACKAGEKIT_BACKEND
++            } else if (backend is PackageKitBackend) {
+                 if (origin == APPCENTER_PACKAGE_ORIGIN) {
+                     return _("AppCenter");
+                 } else if (origin == ELEMENTARY_STABLE_PACKAGE_ORIGIN) {
+@@ -336,15 +343,9 @@ public class AppCenterCore.Package : Object {
+                 } else if (origin.has_prefix ("ubuntu-")) {
+                     return _("Ubuntu (non-curated)");
+                 }
+-            } else if (backend is FlatpakBackend) {
+-                var fp_package = this as FlatpakPackage;
+-                if (fp_package != null && fp_package.installation == FlatpakBackend.system_installation) {
+-                    return _("%s (system-wide)").printf (origin);
+-                }
+-
+-                return origin;
+             } else if (backend is UbuntuDriversBackend) {
+                 return _("Ubuntu Drivers");
++#endif
+             }
+ 
+             return _("Unknown Origin (non-curated)");
+@@ -434,11 +435,15 @@ public class AppCenterCore.Package : Object {
+         _author_title = null;
+         backend_details = null;
+ 
++#if PACKAGEKIT_BACKEND
+         // The version on a PackageKit package comes from the package not AppStream, so only reset the version
+         // on other backends
+         if (!(backend is PackageKitBackend)) {
+             _latest_version = null;
+         }
++#else
++        _latest_version = null;
++#endif
+ 
+         this.component = component;
+     }
+diff --git a/src/Core/UpdateManager.vala b/src/Core/UpdateManager.vala
+index 9deceaf5..c92c0d37 100644
+--- a/src/Core/UpdateManager.vala
++++ b/src/Core/UpdateManager.vala
+@@ -52,6 +52,7 @@ public class AppCenterCore.UpdateManager : Object {
+             installed_package.update_state ();
+         }
+ 
++#if PACKAGEKIT_BACKEND
+         Pk.Results pk_updates;
+         unowned PackageKitBackend client = PackageKitBackend.get_default ();
+         try {
+@@ -60,10 +61,12 @@ public class AppCenterCore.UpdateManager : Object {
+             warning ("Unable to get updates from PackageKit backend: %s", e.message);
+             return 0;
+         }
++#endif
+ 
+         uint os_count = 0;
+         string os_desc = "";
+ 
++#if PACKAGEKIT_BACKEND
+         var package_array = pk_updates.get_package_array ();
+         debug ("PackageKit backend reports %d updates", package_array.length);
+ 
+@@ -87,6 +90,7 @@ public class AppCenterCore.UpdateManager : Object {
+                 );
+             }
+         });
++#endif
+ 
+         os_updates.component.set_pkgnames ({});
+         os_updates.change_information.clear_update_info ();
+@@ -159,6 +163,7 @@ public class AppCenterCore.UpdateManager : Object {
+             count += 1;
+         }
+ 
++#if PACKAGEKIT_BACKEND
+         pk_updates.get_details_array ().foreach ((pk_detail) => {
+             var pk_package = new Pk.Package ();
+             try {
+@@ -181,6 +186,7 @@ public class AppCenterCore.UpdateManager : Object {
+                 critical (e.message);
+             }
+         });
++#endif
+ 
+         os_updates.update_state ();
+         return count;
+diff --git a/src/Views/Homepage.vala b/src/Views/Homepage.vala
+index 3673903f..2e128e77 100644
+--- a/src/Views/Homepage.vala
++++ b/src/Views/Homepage.vala
+@@ -107,9 +107,13 @@ public class AppCenter.Homepage : AbstractView {
+             column_spacing = 24,
+             orientation = Gtk.Orientation.VERTICAL
+         };
++#if PACKAGEKIT_BACKEND
+         grid.add (banner_revealer);
+         grid.add (recently_updated_revealer);
+         grid.add (categories_label);
++#else
++        category_flow.margin_top = 12;
++#endif
+         grid.add (category_flow);
+ 
+         scrolled_window = new Gtk.ScrolledWindow (null, null) {
+diff --git a/src/meson.build b/src/meson.build
+index 7b319fc6..d1d77931 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -12,10 +12,8 @@ appcenter_files = files(
+     'Core/FlatpakBackend.vala',
+     'Core/Job.vala',
+     'Core/Package.vala',
+-    'Core/PackageKitBackend.vala',
+     'Core/ScreenshotCache.vala',
+     'Core/Task.vala',
+-    'Core/UbuntuDriversBackend.vala',
+     'Core/UpdateManager.vala',
+     'Dialogs/InstallFailDialog.vala',
+     'Dialogs/NonCuratedWarningDialog.vala',
+@@ -76,6 +74,14 @@ if get_option('hide_upstream_distro_apps')
+     args += '--define=HIDE_UPSTREAM_DISTRO_APPS'
+ endif
+ 
++if get_option('packagekit_backend')
++    args += '--define=PACKAGEKIT_BACKEND'
++    appcenter_files += files(
++        'Core/PackageKitBackend.vala',
++        'Core/UbuntuDriversBackend.vala',
++    )
++endif
++
+ executable(
+     meson.project_name(),
+     appcenter_files,
diff --git a/pkgs/desktops/pantheon/apps/appcenter/default.nix b/pkgs/desktops/pantheon/apps/appcenter/default.nix
index a7e5af3370c3e..bdc2fbca591a0 100644
--- a/pkgs/desktops/pantheon/apps/appcenter/default.nix
+++ b/pkgs/desktops/pantheon/apps/appcenter/default.nix
@@ -21,7 +21,6 @@
 , meson
 , ninja
 , packagekit
-, pantheon
 , pkg-config
 , python3
 , vala
@@ -31,20 +30,21 @@
 
 stdenv.mkDerivation rec {
   pname = "appcenter";
-  version = "3.8.2";
+  version = "3.9.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-NHKP1vzb8qu+EkUWDvLWLl4U4pW9ZxbE7YFI6Vwesfg=";
+    sha256 = "sha256-xktIHQHmz5gh72NEz9UQ9fMvBlj1BihWxHgxsHmTIB0=";
   };
 
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
-  };
+  patches = [
+    # Introduces a packagekit_backend meson flag.
+    # Makes appcenter actually work by using only the flatpak backend.
+    # https://github.com/elementary/appcenter/pull/1739
+    ./add-packagekit-backend-option.patch
+  ];
 
   nativeBuildInputs = [
     appstream-glib
@@ -79,6 +79,8 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Dpayments=false"
     "-Dcurated=false"
+    # This option is introduced in add-packagekit-backend-option.patch
+    "-Dpackagekit_backend=false"
   ];
 
   postPatch = ''
@@ -86,6 +88,12 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     homepage = "https://github.com/elementary/appcenter";
     description = "An open, pay-what-you-want app store for indie developers, designed for elementary OS";
diff --git a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
index 2e52d39a6da44..115622e814353 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , fetchpatch
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , ninja
@@ -21,21 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-calculator";
-  version = "1.7.1";
-
-  repoName = "calculator";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = repoName;
+    repo = "calculator";
     rev = version;
-    sha256 = "sha256-GoQFWhEhUBVLYL1vsIIBMT8pKc0dK/ploiGfUtJAJQU=";
-  };
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
+    sha256 = "sha256-U0wXrw9ZJwkqZAtTTHmTzqYhwF9V2JZEZZdDak3kPIc=";
   };
 
   nativeBuildInputs = [
@@ -63,6 +55,12 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     homepage = "https://github.com/elementary/calculator";
     description = "Calculator app designed for elementary OS";
diff --git a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
index d46e3c9c8ee9e..019e2cf5a2421 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , ninja
diff --git a/pkgs/desktops/pantheon/apps/elementary-camera/default.nix b/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
index 708041bd88a81..932b54e82b67d 100644
--- a/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , ninja
@@ -25,15 +25,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-camera";
-  version = "6.0.1";
-
-  repoName = "camera";
+  version = "6.0.3";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = repoName;
+    repo = "camera";
     rev = version;
-    sha256 = "sha256-OdBinryF6XTcvtY4A1wdDVazjf/VritEGF97ts6d4RY=";
+    sha256 = "sha256-xIv+mOlZV58XD0Z6Vc2wA1EQUxT5BaQ0zhYc9v+ne1w=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/apps/elementary-code/default.nix b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
index 018e8cb775c37..f83839f6c92cf 100644
--- a/pkgs/desktops/pantheon/apps/elementary-code/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-code/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , ninja
@@ -21,7 +21,6 @@
 , libsoup
 , vte
 , webkitgtk
-, zeitgeist
 , ctags
 , libgit2-glib
 , wrapGAppsHook
@@ -30,15 +29,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-code";
-  version = "6.0.1";
-
-  repoName = "code";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = repoName;
+    repo = "code";
     rev = version;
-    sha256 = "120328pprzqj4587yj54yya9v2mv1rfwylpmxyr5l2qf80cjxi9d";
+    sha256 = "sha256-AXmMcPj2hf33G5v3TUg+eZwaKOdVlRvoVXglMJFHRjw=";
   };
 
   passthru = {
@@ -74,12 +71,8 @@ stdenv.mkDerivation rec {
     libsoup
     vte
     webkitgtk
-    zeitgeist
   ];
 
-  # install script fails with UnicodeDecodeError because of printing a fancy elipsis character
-  LC_ALL = "C.UTF-8";
-
   # ctags needed in path by outline plugin
   preFixup = ''
     gappsWrapperArgs+=(
diff --git a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
index 0a534e5e7d048..5aa61062a8f6f 100644
--- a/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , vala
 , atk
@@ -20,7 +21,6 @@
 , gnome-menus
 , libgee
 , wrapGAppsHook
-, pantheon
 , meson
 , ninja
 , granite
@@ -28,17 +28,15 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-dock";
-  version = "unstable-2021-07-16";
+  version = "unstable-2021-12-08";
 
   outputs = [ "out" "dev" ];
 
-  repoName = "dock";
-
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = repoName;
-    rev = "05fd6fccdf1a769f6737a0d7e57e092825348660";
-    sha256 = "0lqqq5cx0kk8y7qyjx7z2k3v1kw2xxzns968ianarcji19wzcns4";
+    repo = "dock";
+    rev = "5e4b5ba2eec3b522e107ad834a59c0f1271d4699";
+    sha256 = "sha256-/Ul21t9VFxhmlQbfx4eY86UKU33hiRfXF9OPHBzPe5o=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix b/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
index 05ac02150d791..8a9256f2a6153 100644
--- a/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , fetchpatch
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , ninja
diff --git a/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
index bddc9d5acff6d..21e25bad94514 100644
--- a/pkgs/desktops/pantheon/apps/elementary-files/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , ninja
@@ -33,23 +32,15 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-files";
-  version = "6.0.4";
-
-  repoName = "files";
+  version = "6.1.1";
 
   outputs = [ "out" "dev" ];
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = repoName;
+    repo = "files";
     rev = version;
-    sha256 = "sha256-FH6EYtgKADp8jjBoCwsdRdknlKS9v3iOtPiT3CyEc/8=";
-  };
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
+    sha256 = "sha256-5TSzV8MQG81aCCR8yiCPhKJaLrp/fwf4mjP32KkcbbY=";
   };
 
   nativeBuildInputs = [
@@ -68,6 +59,7 @@ stdenv.mkDerivation rec {
     bamf
     elementary-dock
     elementary-icon-theme
+    glib
     granite
     gtk3
     libcanberra
@@ -83,18 +75,17 @@ stdenv.mkDerivation rec {
     zeitgeist
   ];
 
-  patches = [
-    ./filechooser-portal-hardcode-gsettings-for-nixos.patch
-  ];
-
   postPatch = ''
     chmod +x meson/post_install.py
     patchShebangs meson/post_install.py
-
-    substituteInPlace filechooser-portal/LegacyFileChooserDialog.vala \
-      --subst-var-by ELEMENTARY_FILES_GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"}
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     description = "File browser designed for elementary OS";
     homepage = "https://github.com/elementary/files";
diff --git a/pkgs/desktops/pantheon/apps/elementary-files/filechooser-portal-hardcode-gsettings-for-nixos.patch b/pkgs/desktops/pantheon/apps/elementary-files/filechooser-portal-hardcode-gsettings-for-nixos.patch
deleted file mode 100644
index b04208cc8b86c..0000000000000
--- a/pkgs/desktops/pantheon/apps/elementary-files/filechooser-portal-hardcode-gsettings-for-nixos.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 726ab4c0ab01273cb2197e4c151a5b69ff0954b6 Mon Sep 17 00:00:00 2001
-From: Bobby Rong <rjl931189261@126.com>
-Date: Fri, 16 Jul 2021 18:24:58 +0800
-Subject: [PATCH] filechooser-portal: hardcode gsettings for nixos
-
----
- filechooser-portal/LegacyFileChooserDialog.vala | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/filechooser-portal/LegacyFileChooserDialog.vala b/filechooser-portal/LegacyFileChooserDialog.vala
-index 330718f..f383bb1 100644
---- a/filechooser-portal/LegacyFileChooserDialog.vala
-+++ b/filechooser-portal/LegacyFileChooserDialog.vala
-@@ -60,7 +60,9 @@ public class Files.LegacyFileChooserDialog : Object {
-         /* If not local only during creation, strange bug occurs on fresh installs */
-         chooser_dialog.local_only = true;
- 
--        var chooser_settings = new Settings ("io.elementary.files.file-chooser");
-+        SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@ELEMENTARY_FILES_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true);
-+        SettingsSchema chooser_schema = sss.lookup ("io.elementary.files.file-chooser", false);
-+        var chooser_settings = new Settings.full (chooser_schema, null, null);
- 
-         action_area = (Gtk.ButtonBox) chooser_dialog.get_action_area ();
- 
diff --git a/pkgs/desktops/pantheon/apps/elementary-mail/default.nix b/pkgs/desktops/pantheon/apps/elementary-mail/default.nix
index dd3e5268f9c23..90058633e9070 100644
--- a/pkgs/desktops/pantheon/apps/elementary-mail/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-mail/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , ninja
@@ -25,21 +25,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-mail";
-  version = "6.3.0";
-
-  repoName = "mail";
+  version = "6.3.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = repoName;
+    repo = "mail";
     rev = version;
-    sha256 = "sha256-lIVAMTtRrzJI5Qcd6y24ZmtzFWeTSbcKiEhG8hLC+PM=";
-  };
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
+    sha256 = "sha256-wOu9jvvwG53vzcNa38nk4eREZWW7Cin8el4qApQ8gI8=";
   };
 
   nativeBuildInputs = [
@@ -72,6 +64,12 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     description = "Mail app designed for elementary OS";
     homepage = "https://github.com/elementary/mail";
diff --git a/pkgs/desktops/pantheon/apps/elementary-music/default.nix b/pkgs/desktops/pantheon/apps/elementary-music/default.nix
index c2b89e7111d01..bee11ed055bc8 100644
--- a/pkgs/desktops/pantheon/apps/elementary-music/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-music/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , fetchpatch
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , ninja
diff --git a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
index 103d4692521bc..ca7b6fd3a7d12 100644
--- a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , meson
 , ninja
 , pkg-config
@@ -98,7 +98,7 @@ stdenv.mkDerivation rec {
     };
   };
 
-  meta =  with lib; {
+  meta = with lib; {
     description = "Photo viewer and organizer designed for elementary OS";
     homepage = "https://github.com/elementary/photos";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/desktops/pantheon/apps/elementary-screenshot/default.nix b/pkgs/desktops/pantheon/apps/elementary-screenshot/default.nix
index a4d966c6fc852..176c2919be042 100644
--- a/pkgs/desktops/pantheon/apps/elementary-screenshot/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-screenshot/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , ninja
@@ -19,21 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-screenshot";
-  version = "6.0.1";
-
-  repoName = "screenshot";
+  version = "6.0.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = repoName;
+    repo = "screenshot";
     rev = version;
-    sha256 = "sha256-MDmk+0IUCe6PSV5QOjjDRedv7X3lcBJ04jn9cE9DP3M=";
-  };
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
+    sha256 = "sha256-n+L08C/W5YnHZ5P3F1NGUYE2SH94sc4+kr1x+wXZ+cw=";
   };
 
   nativeBuildInputs = [
@@ -60,6 +52,12 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     description = "Screenshot tool designed for elementary OS";
     homepage = "https://github.com/elementary/screenshot";
diff --git a/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix b/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix
index 478fdc1db96ca..7ef0efaa49f13 100644
--- a/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , appstream
 , desktop-file-utils
 , meson
@@ -26,21 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-tasks";
-  version = "6.0.4";
-
-  repoName = "tasks";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = repoName;
+    repo = "tasks";
     rev = version;
-    sha256 = "1gb51gm8qgd8yzhqb7v69p2f1fgm3qf534if4lc85jrjsb8hgmhl";
-  };
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
+    sha256 = "sha256-Gt9Hp9m28QdAFnKIT1xcbiSM5cn6kW7wEXmi/iFfu8k=";
   };
 
   nativeBuildInputs = [
@@ -74,6 +66,12 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     homepage = "https://github.com/elementary/tasks";
     description = "Synced tasks and reminders on elementary OS";
diff --git a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
index 76c36f9e07044..4840f69e7cb48 100644
--- a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
@@ -1,8 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, fetchpatch
-, pantheon
 , pkg-config
 , meson
 , ninja
@@ -24,30 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-terminal";
-  version = "6.0.0";
-
-  repoName = "terminal";
+  version = "6.0.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = repoName;
+    repo = "terminal";
     rev = version;
-    sha256 = "08akr4sv4jy9kd4s26kib6j7i8hc3vs0sp71fifv7ww4mi9cm6jc";
-  };
-
-  patches = [
-    # Upstream code not respecting our localedir
-    # https://github.com/elementary/terminal/pull/611
-    (fetchpatch {
-      url = "https://github.com/elementary/terminal/commit/4f6f2d9f58642ed904240c247cc0a0846baecb6b.patch";
-      sha256 = "04pbd72migxw8i949v3bmw8kfi5nr02rjcwfrx3b6xkiic9825sv";
-    })
-  ];
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
+    sha256 = "sha256-4q7YQ4LxuiM/TRae1cc3ncmw7QwE1soC2Sh+GZ+Gpq0=";
   };
 
   nativeBuildInputs = [
@@ -81,6 +63,12 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     description = "Terminal emulator designed for elementary OS";
     longDescription = ''
diff --git a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
index a87ac48c7f300..f7286c9108a6a 100644
--- a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , ninja
@@ -22,15 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-videos";
-  version = "2.8.0";
-
-  repoName = "videos";
+  version = "2.8.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = repoName;
+    repo = "videos";
     rev = version;
-    sha256 = "sha256-FFCtQ42LygfjowehwZcISWTfv8PBZTH0X8mPrpiG8Ug=";
+    sha256 = "sha256-Ki6i9u+oXOBTH+dVJ9RgBxszD7Wvdrfahd9abyjFYJY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/apps/sideload/default.nix b/pkgs/desktops/pantheon/apps/sideload/default.nix
index 98f4d9f3c91d2..a065966ba1e32 100644
--- a/pkgs/desktops/pantheon/apps/sideload/default.nix
+++ b/pkgs/desktops/pantheon/apps/sideload/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , desktop-file-utils
 , nix-update-script
 , elementary-gtk-theme
@@ -13,7 +14,6 @@
 , libhandy
 , meson
 , ninja
-, pantheon
 , pkg-config
 , python3
 , vala
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
index 949f1ecc3d0bb..bcb7c39d17b4c 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
@@ -1,9 +1,9 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , substituteAll
 , fetchFromGitHub
 , fetchpatch
 , nix-update-script
-, pantheon
 , meson
 , ninja
 , pkg-config
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
index f196ba970bd6d..d48704736b1d6 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , substituteAll
 , meson
 , ninja
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
index 22c2f4f64af7d..d24b755026004 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , meson
 , ninja
 , pkg-config
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
index 2238125fe2f60..764845c020223 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , fetchpatch
 , nix-update-script
-, pantheon
 , meson
 , ninja
 , pkg-config
@@ -12,6 +12,7 @@
 , gtk3
 , bluez
 , switchboard
+, wingpanel-indicator-bluetooth
 }:
 
 stdenv.mkDerivation rec {
@@ -53,6 +54,7 @@ stdenv.mkDerivation rec {
     gtk3
     libgee
     switchboard
+    wingpanel-indicator-bluetooth # settings schema
   ];
 
   meta = with lib; {
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
index b4518ea1e440c..09717a584ce03 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , fetchpatch
 , nix-update-script
-, pantheon
 , meson
 , ninja
 , substituteAll
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
index 8e6cbf080631c..c25188add4503 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , meson
 , ninja
 , pkg-config
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
index c3860ba22789b..01a3da26b1d57 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
@@ -1,39 +1,42 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , substituteAll
 , meson
 , ninja
 , pkg-config
 , vala
 , libgee
+, gnome-settings-daemon
 , granite
+, gsettings-desktop-schemas
 , gtk3
 , libhandy
 , libxml2
 , libgnomekbd
 , libxklavier
 , ibus
+, onboard
 , switchboard
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-keyboard";
-  version = "2.5.1";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1p1l7dx5v1zzz89hhhkm6n3ls7ig4cf2prh1099f1c054qiy9b0y";
+    sha256 = "sha256-Bl0T+8upTdBnLs03UIimcAg0LO40KwuMZRNSM+y/3Hc=";
   };
 
   patches = [
     ./0001-Remove-Install-Unlisted-Engines-function.patch
     (substituteAll {
       src = ./fix-paths.patch;
-      ibus = ibus;
+      inherit ibus onboard;
     })
   ];
 
@@ -52,7 +55,9 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    gnome-settings-daemon # media-keys
     granite
+    gsettings-desktop-schemas
     gtk3
     ibus
     libgee
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch
index bb21712a5bc4f..0b5c8b8fd27e6 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/fix-paths.patch
@@ -1,8 +1,8 @@
 diff --git a/src/Views/InputMethod.vala b/src/Views/InputMethod.vala
-index 6d79fdc..de4276e 100644
+index 7f73c1e1..1f0d6400 100644
 --- a/src/Views/InputMethod.vala
 +++ b/src/Views/InputMethod.vala
-@@ -325,7 +325,7 @@ public class Pantheon.Keyboard.InputMethodPage.Page : Gtk.Grid {
+@@ -328,7 +328,7 @@ public class Pantheon.Keyboard.InputMethodPage.Page : Gtk.Grid {
      private void spawn_ibus_daemon () {
          bool is_spawn_succeeded = false;
          try {
@@ -11,3 +11,16 @@ index 6d79fdc..de4276e 100644
          } catch (GLib.SpawnError e) {
              warning (e.message);
              set_visible_view (e.message);
+diff --git a/src/Views/Layout.vala b/src/Views/Layout.vala
+index 75d2d805..b86252a4 100644
+--- a/src/Views/Layout.vala
++++ b/src/Views/Layout.vala
+@@ -219,7 +219,7 @@ namespace Pantheon.Keyboard {
+ 
+             onscreen_keyboard_settings.clicked.connect (() => {
+                 try {
+-                    var appinfo = AppInfo.create_from_commandline ("onboard-settings", null, AppInfoCreateFlags.NONE);
++                    var appinfo = AppInfo.create_from_commandline ("@onboard@/bin/onboard-settings", null, AppInfoCreateFlags.NONE);
+                     appinfo.launch (null, null);
+                 } catch (Error e) {
+                     warning ("Unable to launch onboard-settings: %s", e.message);
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
index 0368314e7b4f5..a765eca6de2db 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
 , substituteAll
-, pantheon
 , meson
 , ninja
 , pkg-config
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
index 7ccfb265e9e94..b88f3f72d035d 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , meson
 , ninja
 , pkg-config
@@ -56,7 +56,6 @@ stdenv.mkDerivation rec {
     })
   ];
 
-
   meta = with lib; {
     description = "Switchboard Networking Plug";
     homepage = "https://github.com/elementary/switchboard-plug-network";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
index 42cddfd2d67f8..fd5dfa3281040 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
 , fetchpatch
-, pantheon
 , meson
 , ninja
 , pkg-config
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
index 5e8447f629a3c..46703b349e674 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
@@ -1,42 +1,30 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , meson
 , ninja
 , pkg-config
 , vala
-, libgee
+, evolution-data-server
+, glib
 , granite
 , gtk3
-, libaccounts-glib
 , libgdata
 , libhandy
-, libsignon-glib
-, json-glib
-, librest
-, webkitgtk
-, libsoup
 , sqlite
 , switchboard
-, evolution-data-server
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-onlineaccounts";
-  version = "6.2.1";
+  version = "6.3.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1q3f7zr04p2100mb255zy38il2i47l6vqdc9a9acjbk3n7q5sf92";
-  };
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
+    sha256 = "sha256-aRh2zbKqcGOH4Qw5gdJw07hod8a/QGWUcJo/2R9erQs=";
   };
 
   nativeBuildInputs = [
@@ -48,23 +36,20 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     evolution-data-server
+    glib
     granite
     gtk3
-    json-glib
-    libaccounts-glib
     libgdata
-    libgee
     libhandy
-    libsignon-glib
-    libsoup
-    librest
     sqlite # needed for camel-1.2
     switchboard
-    webkitgtk
   ];
 
-  PKG_CONFIG_LIBACCOUNTS_GLIB_PROVIDERFILESDIR = "${placeholder "out"}/share/accounts/providers";
-  PKG_CONFIG_LIBACCOUNTS_GLIB_SERVICEFILESDIR = "${placeholder "out"}/share/accounts/services";
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
 
   meta = with lib; {
     description = "Switchboard Online Accounts Plug";
@@ -73,5 +58,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = teams.pantheon.members;
   };
-
 }
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
index 69242e8132f15..6fc961e4b5f55 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
@@ -1,8 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
-, fetchpatch
 , nix-update-script
-, pantheon
 , meson
 , ninja
 , pkg-config
@@ -25,28 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-pantheon-shell";
-  version = "6.0.0";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0349150kxdv14ald79pzn7lasiqipyc37fgchygbc8hsy62d9a32";
-  };
-
-  patches = [
-    # Upstream code not respecting our localedir
-    # https://github.com/elementary/switchboard-plug-pantheon-shell/pull/286
-    (fetchpatch {
-      url = "https://github.com/elementary/switchboard-plug-pantheon-shell/commit/0c3207ffaeaa82ca3c743bc9ec772185fbd7e8cf.patch";
-      sha256 = "11ymzqx6has4zf8y0xy7pfhymcl128hzzjcgp46inshjf99v5kiv";
-    })
-  ];
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
+    sha256 = "sha256-rwneQ1bqpWDyTHULMtGqhPdpSDa4ObnVortmL0E+gHA=";
   };
 
   nativeBuildInputs = [
@@ -73,6 +57,12 @@ stdenv.mkDerivation rec {
     wingpanel
   ];
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     description = "Switchboard Desktop Plug";
     homepage = "https://github.com/elementary/switchboard-plug-pantheon-shell";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
index 6a9848b34a7d8..16ed92b45d2da 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
@@ -1,13 +1,12 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , meson
 , ninja
 , pkg-config
 , vala
 , libgee
-, elementary-settings-daemon
 , gnome-settings-daemon
 , granite
 , gtk3
@@ -44,7 +43,6 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     dbus
-    elementary-settings-daemon
     gnome-settings-daemon
     glib
     granite
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
index cae5b570547fb..dbca28038ab35 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
 , fetchpatch
-, pantheon
 , meson
 , ninja
 , pkg-config
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
index 986aa171e920c..550562f19b177 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
@@ -1,15 +1,16 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
-, fetchpatch
 , nix-update-script
-, pantheon
 , meson
 , python3
 , ninja
 , pkg-config
 , vala
+, elementary-settings-daemon
 , libgee
 , granite
+, gsettings-desktop-schemas
 , gala
 , gtk3
 , glib
@@ -20,28 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-security-privacy";
-  version = "2.2.5";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1ydr1xpbyxjcnd36c9j7a64srbz6gpbshwhcqj6591kmiqhmvknk";
-  };
-
-  patches = [
-    # Upstream code not respecting our localedir
-    # https://github.com/elementary/switchboard-plug-security-privacy/pull/130
-    (fetchpatch {
-      url = "https://github.com/elementary/switchboard-plug-security-privacy/commit/18fe438baba651670d7f0534856c3b2433e3d75d.patch";
-      sha256 = "19qwm725k6h41kgg4a98i4rxx45s4bb1wxx0fzkh75gz9syfi58w";
-    })
-  ];
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
+    sha256 = "sha256-pkpS7BR/eXA0rWV1C5AR+FdF5OkDnV8YDBAt1ZkaVPo=";
   };
 
   nativeBuildInputs = [
@@ -53,9 +39,11 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    elementary-settings-daemon # settings schema
     gala
     glib
     granite
+    gsettings-desktop-schemas
     gtk3
     libgee
     polkit
@@ -68,6 +56,12 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     description = "Switchboard Security & Privacy Plug";
     homepage = "https://github.com/elementary/switchboard-plug-security-privacy";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
index 2eacf55851096..f41cfa2f74573 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
 , fetchpatch
-, pantheon
 , meson
 , ninja
 , pkg-config
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
index 7719477ce7020..8a23f09838eb6 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
@@ -1,8 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
-, fetchpatch
 , nix-update-script
-, pantheon
 , meson
 , ninja
 , pkg-config
@@ -17,28 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-sound";
-  version = "2.2.7";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0yjqws7ryfid9lcafgzzbfnjjwccsankscwdwqfw486qid85whzc";
-  };
-
-  patches = [
-    # Upstream code not respecting our localedir
-    # https://github.com/elementary/switchboard-plug-sound/pull/203
-    (fetchpatch {
-      url = "https://github.com/elementary/switchboard-plug-sound/commit/1f3b9f001ace4c457ab194158dff04ba5e25d278.patch";
-      sha256 = "1lmf2bbif2wkfv500nxbqxp8jdmnjg8yk8xhx3g2g55d15rc5hk4";
-    })
-  ];
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
+    sha256 = "sha256-yHuboDpIcioZPNgpmnrM6J2eUCJpoNDdvgu27YuN65I=";
   };
 
   nativeBuildInputs = [
@@ -57,6 +41,12 @@ stdenv.mkDerivation rec {
     switchboard
   ];
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     description = "Switchboard Sound Plug";
     homepage = "https://github.com/elementary/switchboard-plug-sound";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix
index 9268fa76aefc3..e31768c764d42 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/wacom/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , fetchpatch
 , nix-update-script
-, pantheon
 , meson
 , ninja
 , pkg-config
diff --git a/pkgs/desktops/pantheon/apps/switchboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard/default.nix
index 418b0b9319676..c8e6f11f111c6 100644
--- a/pkgs/desktops/pantheon/apps/switchboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , fetchpatch
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , python3
@@ -13,7 +13,6 @@
 , libhandy
 , granite
 , gettext
-, clutter-gtk
 , elementary-icon-theme
 , wrapGAppsHook
 }:
@@ -46,7 +45,6 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    clutter-gtk
     elementary-icon-theme
     granite
     gtk3
diff --git a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
index 439a8986ea461..b76a874490ed8 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , meson
 , ninja
 , gettext
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-gtk-theme";
-  version = "6.1.0";
+  version = "6.1.1";
 
   repoName = "stylesheet";
 
@@ -18,13 +18,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "sha256-YvBjMbC3aQtYc/jPZmGdL4VfBH/VuxQ70PD0BWg9DTg=";
-  };
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
+    sha256 = "sha256-gciBn5MQ5Cu+dROL5kCt2GCbNA7W4HOWXyjMBd4OP+8=";
   };
 
   nativeBuildInputs = [
@@ -34,6 +28,12 @@ stdenv.mkDerivation rec {
     sassc
   ];
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     description = "GTK theme designed to be smooth, attractive, fast, and usable";
     homepage = "https://github.com/elementary/stylesheet";
diff --git a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
index abaf8d6c31c54..450275d1050da 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , meson
 , python3
 , ninja
@@ -13,7 +13,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-icon-theme";
-  version = "6.0.0";
+  version = "6.1.0";
 
   repoName = "icons";
 
@@ -21,13 +21,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0k94zi8fzi0nf5q471fmrlz8jjkv8m6vav1spzv7ynkg2hik8d9b";
-  };
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
+    sha256 = "sha256-WR4HV0nJKj0WeSFHXLK64O0LhX8myAJE4w0aztyhPn4=";
   };
 
   nativeBuildInputs = [
@@ -57,6 +51,12 @@ stdenv.mkDerivation rec {
 
   postFixup = "gtk-update-icon-cache $out/share/icons/elementary";
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     description = "Named, vector icons for elementary OS";
     longDescription = ''
diff --git a/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix b/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix
index b9c51f5688c21..d6dc4e66cbcf3 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-redacted-script/default.nix
@@ -1,29 +1,36 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
-, pantheon
+, nix-update-script
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "elementary-redacted-script";
-  version = "unstable-2016-06-03";
+  version = "5.1.0";
 
   src = fetchFromGitHub {
-    owner = "png2378";
-    repo = "redacted-elementary";
-    rev = "346440ff9ce19465e6d5c3d6d67a8573f992c746";
-    sha256 = "1jpd13sxkarclr0mlm66wzgpjh52ghzjzn4mywhyshyyskwn7jg1";
+    owner = "elementary";
+    repo = "fonts";
+    rev = version;
+    sha256 = "sha256-YiE7yaH0ZrF1/Cp+3bcJYm2cExQjFcat6JLMJPjhops=";
   };
 
   dontBuild = true;
 
   installPhase = ''
     mkdir -p $out/share/fonts/truetype/redacted-elementary
-    cp -a truetype/*.ttf $out/share/fonts/truetype/redacted-elementary
+    cp -a redacted/*.ttf $out/share/fonts/truetype/redacted-elementary
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     description = "Font for concealing text";
-    homepage = "https://github.com/png2378/redacted-elementary";
+    homepage = "https://github.com/elementary/fonts";
     license = licenses.ofl;
     maintainers = teams.pantheon.members;
     platforms = platforms.linux;
diff --git a/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
index 6fe18119b4584..6bad05693fea8 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , meson
 , ninja
 , pkg-config
diff --git a/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix b/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
index 9fd0a4d1a4e86..debf7f0201a11 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
@@ -1,31 +1,36 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
+, gettext
 , meson
 , ninja
-, gettext
+, python3
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-wallpapers";
-  version = "6.0.0";
-
-  repoName = "wallpapers";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = repoName;
+    repo = "wallpapers";
     rev = version;
-    sha256 = "1qpf8w7x9sp3sd4zpsrlj5ywpwqkq4ywbagm4sf25cwwn82dl59b";
+    sha256 = "sha256-E/cUxa/GNt/01EjuuvurHxJu3qV9e+jcdcCi2+NxVDA=";
   };
 
   nativeBuildInputs = [
     gettext
     meson
     ninja
+    python3
   ];
 
+  postPatch = ''
+    chmod +x meson/symlink.py
+    patchShebangs meson/symlink.py
+  '';
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix
index 61436ba57ae53..617c6ed086dad 100644
--- a/pkgs/desktops/pantheon/default.nix
+++ b/pkgs/desktops/pantheon/default.nix
@@ -4,23 +4,37 @@
 lib.makeScope pkgs.newScope (self: with self; {
 
   switchboardPlugs = [
-    switchboard-plug-a11y switchboard-plug-about
-    switchboard-plug-applications switchboard-plug-bluetooth
-    switchboard-plug-datetime switchboard-plug-display
-    switchboard-plug-keyboard switchboard-plug-mouse-touchpad
-    switchboard-plug-network switchboard-plug-notifications
-    switchboard-plug-onlineaccounts switchboard-plug-pantheon-shell
-    switchboard-plug-power switchboard-plug-printers
-    switchboard-plug-security-privacy switchboard-plug-sharing
-    switchboard-plug-sound switchboard-plug-wacom
+    switchboard-plug-a11y
+    switchboard-plug-about
+    switchboard-plug-applications
+    switchboard-plug-bluetooth
+    switchboard-plug-datetime
+    switchboard-plug-display
+    switchboard-plug-keyboard
+    switchboard-plug-mouse-touchpad
+    switchboard-plug-network
+    switchboard-plug-notifications
+    switchboard-plug-onlineaccounts
+    switchboard-plug-pantheon-shell
+    switchboard-plug-power
+    switchboard-plug-printers
+    switchboard-plug-security-privacy
+    switchboard-plug-sharing
+    switchboard-plug-sound
+    switchboard-plug-wacom
   ];
 
   wingpanelIndicators = [
-    wingpanel-applications-menu wingpanel-indicator-a11y
-    wingpanel-indicator-bluetooth wingpanel-indicator-datetime
-    wingpanel-indicator-keyboard wingpanel-indicator-network
-    wingpanel-indicator-nightlight wingpanel-indicator-notifications
-    wingpanel-indicator-power wingpanel-indicator-session
+    wingpanel-applications-menu
+    wingpanel-indicator-a11y
+    wingpanel-indicator-bluetooth
+    wingpanel-indicator-datetime
+    wingpanel-indicator-keyboard
+    wingpanel-indicator-network
+    wingpanel-indicator-nightlight
+    wingpanel-indicator-notifications
+    wingpanel-indicator-power
+    wingpanel-indicator-session
     wingpanel-indicator-sound
   ];
 
@@ -33,8 +47,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   elementary-gsettings-schemas = callPackage ./desktop/elementary-gsettings-schemas { };
 
-  notes-up = pkgs.notes-up.override { withPantheon = true; };
-
   touchegg = pkgs.touchegg.override { withPantheon = true; };
 
   #### APPS
@@ -93,14 +105,18 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   elementary-shortcut-overlay = callPackage ./desktop/elementary-shortcut-overlay { };
 
-  extra-elementary-contracts = callPackage ./desktop/extra-elementary-contracts {
-    inherit (gnome) file-roller gnome-bluetooth;
+  file-roller-contract = callPackage ./desktop/file-roller-contract {
+    inherit (gnome) file-roller;
   };
 
   gala = callPackage ./desktop/gala {
     inherit (gnome) gnome-desktop;
   };
 
+  gnome-bluetooth-contract = callPackage ./desktop/gnome-bluetooth-contract {
+    inherit (gnome) gnome-bluetooth;
+  };
+
   wingpanel = callPackage ./desktop/wingpanel { };
 
   wingpanel-with-indicators = callPackage ./desktop/wingpanel/wrapper.nix {
@@ -125,6 +141,8 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   pantheon-agent-polkit = callPackage ./services/pantheon-agent-polkit { };
 
+  xdg-desktop-portal-pantheon = callPackage ./services/xdg-desktop-portal-pantheon { };
+
   #### WINGPANEL INDICATORS
 
   wingpanel-applications-menu = callPackage ./desktop/wingpanel-indicators/applications-menu { };
@@ -207,6 +225,13 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   elementary-wallpapers = callPackage ./artwork/elementary-wallpapers { };
 
+  ### THIRD-PARTY
+
+  # Put packages that ONLY works with Pantheon in pkgs/desktops/pantheon/third-party,
+  # specifically third party switchboard plugins and wingpanel indicators.
+  # Please call these packages in pkgs/top-level/all-packages.nix instead of this file.
+  # https://github.com/NixOS/nixpkgs/issues/115222#issuecomment-906868654
+
 } // lib.optionalAttrs (config.allowAliases or true) {
 
   ### ALIASES
@@ -217,4 +242,8 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   elementary-screenshot-tool = elementary-screenshot; # added 2021-07-21
 
+  extra-elementary-contracts = throw "extra-elementary-contracts has been removed as all contracts have been upstreamed."; # added 2021-12-01
+
+  inherit (pkgs) notes-up; # added 2021-12-18
+
 })
diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
index 7b0ea248ed616..a96bba4ab1159 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , meson
 , ninja
 , nixos-artwork
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
index 3d698a7807f91..25bce374c23c2 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
@@ -1,10 +1,10 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
 , linkFarm
 , substituteAll
 , elementary-greeter
-, pantheon
 , pkg-config
 , meson
 , ninja
@@ -19,7 +19,6 @@
 , elementary-icon-theme
 , wingpanel-with-indicators
 , elementary-gtk-theme
-, elementary-settings-daemon
 , nixos-artwork
 , lightdm
 , gdk-pixbuf
@@ -33,11 +32,9 @@ stdenv.mkDerivation rec {
   pname = "elementary-greeter";
   version = "6.0.1";
 
-  repoName = "greeter";
-
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = repoName;
+    repo = "greeter";
     rev = version;
     sha256 = "1f606ds56sp1c58q8dblfpaq9pwwkqw9i4gkwksw45m2xkwlbflq";
   };
@@ -67,7 +64,6 @@ stdenv.mkDerivation rec {
     clutter-gtk # else we get could not generate cargs for mutter-clutter-2
     elementary-gtk-theme
     elementary-icon-theme
-    elementary-settings-daemon
     gnome-settings-daemon
     gdk-pixbuf
     granite
@@ -101,7 +97,7 @@ stdenv.mkDerivation rec {
       # dbus-launch needed in path
       --prefix PATH : "${dbus}/bin"
 
-      # for `wingpanel -g`
+      # for `io.elementary.wingpanel -g`
       --prefix PATH : "${wingpanel-with-indicators}/bin"
 
       # for the compositor
diff --git a/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix b/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
index 3235442e332f5..e7a3d10b4fde7 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
@@ -1,8 +1,9 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , substituteAll
-, pantheon
 , pkg-config
 , meson
 , ninja
@@ -14,6 +15,7 @@
 , libgee
 , elementary-icon-theme
 , elementary-gtk-theme
+, elementary-settings-daemon
 , gettext
 , libhandy
 , wrapGAppsHook
@@ -22,7 +24,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-onboarding";
-  version = "6.0.0";
+  version = "6.1.0";
 
   repoName = "onboarding";
 
@@ -30,13 +32,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1mpw0j8ymb41py9v9qlk4nwy1lnwj7k388c7gqdv34ynck0ymfi4";
-  };
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
+    sha256 = "sha256-9voy9eje3VlV4IMM664EyjKWTfSVogX5JoRCqhsUXTE=";
   };
 
   nativeBuildInputs = [
@@ -52,6 +48,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     elementary-gtk-theme
     elementary-icon-theme
+    elementary-settings-daemon # settings schema
     glib
     granite
     gtk3
@@ -64,6 +61,12 @@ stdenv.mkDerivation rec {
       src = ./fix-paths.patch;
       appcenter = appcenter;
     })
+    # Provides the directory where the locales are actually installed
+    # https://github.com/elementary/onboarding/pull/147
+    (fetchpatch {
+      url = "https://github.com/elementary/onboarding/commit/af19c3dbefd1c0e0ec18eddacc1f21cb991f5513.patch";
+      sha256 = "sha256-fSFfjSd33W7rXXEUHY8b3rv9B9c31XfCjxjRxBBrqjs=";
+    })
   ];
 
   postPatch = ''
@@ -71,6 +74,12 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     description = "Onboarding app for new users designed for elementary OS";
     homepage = "https://github.com/elementary/onboarding";
diff --git a/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix b/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
index b305c7626cba2..119d5be21381d 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , meson
 , ninja
 , pkg-config
diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
index e3d0cb8c7282f..2c0d2ae100c7e 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
@@ -1,10 +1,10 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
 , desktop-file-utils
 , pkg-config
 , writeScript
-, pantheon
 , gnome-keyring
 , gnome-session
 , wingpanel
diff --git a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
index eb8563bc50d74..fbde187ce6dc0 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , ninja
diff --git a/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/default.nix b/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/default.nix
deleted file mode 100644
index 2db483cb5c7ef..0000000000000
--- a/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib, stdenv
-, substituteAll
-, fetchFromGitHub
-, file-roller
-, gnome-bluetooth
-}:
-
-stdenv.mkDerivation rec {
-  pname = "extra-elementary-contracts";
-  version = "2018-08-21";
-
-  src = fetchFromGitHub {
-    owner = "worldofpeace";
-    repo = pname;
-    rev = "a05dfb00695854163805b666185e3e9f31b6eb83";
-    sha256 = "0fkaf2w4xg0n9faj74rgzy7gvd3yz112l058b157a3pr39vpci7g";
-  };
-
-  patches = [
-    (substituteAll {
-      src = ./exec-path.patch;
-      file_roller = file-roller;
-      gnome_bluetooth = gnome-bluetooth;
-    })
-  ];
-
-  dontBuild = true;
-  dontConfigure = true;
-
-  installPhase = ''
-    mkdir -p $out/share/contractor
-
-    cp *.contract $out/share/contractor/
-  '';
-
-  meta = with lib; {
-    description = "Extra contractor files for elementary";
-    homepage = "https://github.com/worldofpeace/extra-elementary-contracts";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ worldofpeace ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/desktops/pantheon/desktop/file-roller-contract/default.nix b/pkgs/desktops/pantheon/desktop/file-roller-contract/default.nix
new file mode 100644
index 0000000000000..9f4d275f24620
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/file-roller-contract/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, substituteAll
+, file-roller
+}:
+
+stdenv.mkDerivation rec {
+  pname = "file-roller-contract";
+  version = "unstable-2021-02-23";
+
+  src = fetchFromGitHub {
+    owner = "elementary";
+    repo = pname;
+    rev = "cf001d84a7e2ddcfbee2cfdb19885798a869833e";
+    sha256 = "sha256-jnXq44NiQiSYsvaBF828TklLg9d6z6n+gCZKgbFiERI=";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./exec-path.patch;
+      file_roller = file-roller;
+    })
+  ];
+
+  dontConfigure = true;
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/contractor
+    cp *.contract $out/share/contractor/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Contractor extension for File Roller";
+    homepage = "https://github.com/elementary/file-roller-contract";
+    license = licenses.gpl3Plus;
+    maintainers = teams.pantheon.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/exec-path.patch b/pkgs/desktops/pantheon/desktop/file-roller-contract/exec-path.patch
index 3b97e306119d3..8349ae8088da7 100644
--- a/pkgs/desktops/pantheon/desktop/extra-elementary-contracts/exec-path.patch
+++ b/pkgs/desktops/pantheon/desktop/file-roller-contract/exec-path.patch
@@ -1,19 +1,18 @@
-diff --git a/file-roller-compress.contract b/file-roller-compress.contract
-index 8de5396..de7e939 100644
---- a/file-roller-compress.contract
-+++ b/file-roller-compress.contract
-@@ -3,6 +3,6 @@ Name=Compress
+diff --git a/io.elementary.contractor.file-roller-compress.contract b/io.elementary.contractor.file-roller-compress.contract
+index 11e4da3..d58549f 100644
+--- a/io.elementary.contractor.file-roller-compress.contract
++++ b/io.elementary.contractor.file-roller-compress.contract
+@@ -3,5 +3,5 @@ Name=Compress
  Icon=add-files-to-archive
  Description=Create a compressed archive with the selected objects
  MimeType=!archive;inode/blockdevice;inode/chardevice;inode/fifo;inode/socket;
 -Exec=file-roller --add %U
 +Exec=@file_roller@/bin/file-roller --add %U
  Gettext-Domain=file-roller
- 
-diff --git a/file-roller-extract-here.contract b/file-roller-extract-here.contract
+diff --git a/io.elementary.contractor.file-roller-extract-here.contract b/io.elementary.contractor.file-roller-extract-here.contract
 index 184a6f2..345f4e7 100644
---- a/file-roller-extract-here.contract
-+++ b/file-roller-extract-here.contract
+--- a/io.elementary.contractor.file-roller-extract-here.contract
++++ b/io.elementary.contractor.file-roller-extract-here.contract
 @@ -3,5 +3,5 @@ Name=Extract Here
  Icon=extract-archive
  Description=Extract the contents of the archives in the archive folder and quit the program
@@ -21,14 +20,3 @@ index 184a6f2..345f4e7 100644
 -Exec=file-roller --extract-here %U
 +Exec=@file_roller@/bin/file-roller --extract-here %U
  Gettext-Domain=file-roller
-diff --git a/gnome-bluetooth.contract b/gnome-bluetooth.contract
-index 745dbbe..8cc0102 100644
---- a/gnome-bluetooth.contract
-+++ b/gnome-bluetooth.contract
-@@ -3,5 +3,5 @@ Name=Send files via Bluetooth
- Icon=bluetooth
- Description=Send files to device...
- MimeType=!inode;
--Exec=bluetooth-sendto %F
-+Exec=@gnome_bluetooth@/bin/bluetooth-sendto %F
- Gettext-Domain=gnome-bluetooth2
diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix
index 208ea7cd8bd41..5a5af9ca5b983 100644
--- a/pkgs/desktops/pantheon/desktop/gala/default.nix
+++ b/pkgs/desktops/pantheon/desktop/gala/default.nix
@@ -3,7 +3,6 @@
 , fetchFromGitHub
 , fetchpatch
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , python3
@@ -16,14 +15,11 @@
 , granite
 , libgee
 , bamf
-, libcanberra
 , libcanberra-gtk3
 , gnome-desktop
 , mutter
 , clutter
-, elementary-dock
 , elementary-icon-theme
-, elementary-settings-daemon
 , gnome-settings-daemon
 , wrapGAppsHook
 , gexiv2
@@ -31,23 +27,28 @@
 
 stdenv.mkDerivation rec {
   pname = "gala";
-  version = "6.2.1";
+  version = "6.3.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1phnhj731kvk8ykmm33ypcxk8fkfny9k6kdapl582qh4d47wcy6f";
+    sha256 = "sha256-f/WDm9/+lXgplg9tGpct4f+1cOhKgdypwiDRBhewRGw=";
   };
 
   patches = [
     ./plugins-dir.patch
-    # Multitasking view: Don't use smooth scroll events to handle mouse wheel
-    # Avoid breaking the multitasking view scroll once xf86-input-libinput 1.2.0 lands
-    # https://github.com/elementary/gala/pull/1266
+    # Session crashes when switching windows with Alt+Tab
+    # https://github.com/elementary/gala/issues/1312
     (fetchpatch {
-      url = "https://github.com/elementary/gala/commit/d2dcfdefdf97c1b49654179a7acd01ebfe017308.patch";
-      sha256 = "sha256-2lKrCz3fSjrfKfysuUHzeUjhmMm84K47n882CLpfAyg=";
+      url = "https://github.com/elementary/gala/commit/cc83db8fe398feae9f3e4caa8352b65f0c8c96d4.patch";
+      sha256 = "sha256-CPO3EHIzqHAV6ZLHngivCdsD8je8CK/NHznfxSEkhzc=";
+    })
+    # WindowSwitcher: Clear indicator background
+    # https://github.com/elementary/gala/pull/1318
+    (fetchpatch {
+      url = "https://github.com/elementary/gala/commit/cce53acffecba795b6cc48916d4621a47996d2c9.patch";
+      sha256 = "sha256-5aTZE6poo4sQMTLfk9Nhw4G4BW8i9dvpWktizRIS58Q=";
     })
   ];
 
@@ -66,20 +67,23 @@ stdenv.mkDerivation rec {
   buildInputs = [
     bamf
     clutter
-    elementary-dock
     elementary-icon-theme
-    elementary-settings-daemon
     gnome-settings-daemon
     gexiv2
     gnome-desktop
     granite
     gtk3
-    libcanberra
     libcanberra-gtk3
     libgee
     mutter
   ];
 
+  mesonFlags = [
+    # TODO: enable this and remove --builtin flag from session-settings
+    # https://github.com/NixOS/nixpkgs/pull/140429
+    "-Dsystemd=false"
+  ];
+
   postPatch = ''
     chmod +x build-aux/meson/post_install.py
     patchShebangs build-aux/meson/post_install.py
@@ -91,7 +95,7 @@ stdenv.mkDerivation rec {
     };
   };
 
-  meta =  with lib; {
+  meta = with lib; {
     description = "A window & compositing manager based on mutter and designed by elementary for use with Pantheon";
     homepage = "https://github.com/elementary/gala";
     license = licenses.gpl3Plus;
diff --git a/pkgs/desktops/pantheon/desktop/gnome-bluetooth-contract/default.nix b/pkgs/desktops/pantheon/desktop/gnome-bluetooth-contract/default.nix
new file mode 100644
index 0000000000000..36f4d3e539f09
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/gnome-bluetooth-contract/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, substituteAll
+, gnome-bluetooth
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-bluetooth-contract";
+  version = "unstable-2021-02-23";
+
+  src = fetchFromGitHub {
+    owner = "elementary";
+    repo = pname;
+    rev = "8dcd4d03dc7a7d487980fd8bc95af985dc4fff5c";
+    sha256 = "sha256-9eX6j/cvN/CoqrHrh9mZEsUJ8viDWIGxIva1xFwIK7c=";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./exec-path.patch;
+      gnome_bluetooth = gnome-bluetooth;
+    })
+  ];
+
+  dontConfigure = true;
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/contractor
+    cp *.contract $out/share/contractor/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Contractor extension for GNOME Bluetooth";
+    homepage = "https://github.com/elementary/gnome-bluetooth-contract";
+    license = licenses.gpl3Plus;
+    maintainers = teams.pantheon.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/pantheon/desktop/gnome-bluetooth-contract/exec-path.patch b/pkgs/desktops/pantheon/desktop/gnome-bluetooth-contract/exec-path.patch
new file mode 100644
index 0000000000000..c0bd9e579f46a
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/gnome-bluetooth-contract/exec-path.patch
@@ -0,0 +1,11 @@
+diff --git a/io.elementary.contracter.gnome-bluetooth.contract b/io.elementary.contracter.gnome-bluetooth.contract
+index 3eb2334..ce0e5f5 100644
+--- a/io.elementary.contracter.gnome-bluetooth.contract
++++ b/io.elementary.contracter.gnome-bluetooth.contract
+@@ -3,5 +3,5 @@ Name=Send Files via Bluetooth
+ Icon=bluetooth
+ Description=Send files to device...
+ MimeType=!inode;
+-Exec=bluetooth-sendto %F
++Exec=@gnome_bluetooth@/bin/bluetooth-sendto %F
+ Gettext-Domain=gnome-bluetooth2
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/a11y/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/a11y/default.nix
index 7e185ece23ac3..7ffc2cebab794 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/a11y/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/a11y/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , fetchpatch
 , nix-update-script
-, pantheon
 , meson
 , ninja
 , pkg-config
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
index c2a4ad64ce955..badfec690eb58 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , substituteAll
 , meson
 , ninja
@@ -26,15 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-applications-menu";
-  version = "2.9.1";
-
-  repoName = "applications-menu";
+  version = "2.10.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
-    repo = repoName;
+    repo = "applications-menu";
     rev = version;
-    sha256 = "sha256-Q0ee8S8wWhK0Y16SWfE79Us6QD/oRE5Pxm3o//eb/po=";
+    sha256 = "sha256-xBuMJzIFOueSvNwvXc85AI9NHuMW3bOblNsyuDkIzyk=";
   };
 
   patches = [
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
index a9b13650ddba1..56d59ed4614a8 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , python3
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
index 8226ed5b0b3cf..1164e0592bfbb 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
@@ -3,7 +3,6 @@
 , fetchFromGitHub
 , nix-update-script
 , substituteAll
-, pantheon
 , pkg-config
 , meson
 , python3
@@ -24,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-datetime";
-  version = "2.3.1";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-/kbwZVzOlC3ATCuXVMdf2RIskoGQKG1evaDYO3yFerg=";
+    sha256 = "sha256-GxlnzLDrZmDDAGlUMoM4k4SkbCqra3Th6ugRAj3Wse4=";
   };
 
   patches = [
@@ -38,9 +37,6 @@ stdenv.mkDerivation rec {
       src = ./fix-paths.patch;
       elementary_calendar = elementary-calendar;
     })
-    # Fix incorrect month shown on re-opening indicator if previously changed month
-    # https://github.com/elementary/wingpanel-indicator-datetime/pull/284
-    ./fix-incorrect-month.patch
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-incorrect-month.patch b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-incorrect-month.patch
deleted file mode 100644
index 7e0dc09b16c2c..0000000000000
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-incorrect-month.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 401cb05d7181e69ae8edd347644f2518904e9acb Mon Sep 17 00:00:00 2001
-From: Jeremy Paul Wootten <jeremywootten@gmail.com>
-Date: Sat, 30 Oct 2021 17:44:12 +0100
-Subject: [PATCH] Reset position and relative position after rebuilding
- carousel
-
----
- src/Widgets/calendar/CalendarView.vala | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/Widgets/calendar/CalendarView.vala b/src/Widgets/calendar/CalendarView.vala
-index a41b37a4..f946b91c 100644
---- a/src/Widgets/calendar/CalendarView.vala
-+++ b/src/Widgets/calendar/CalendarView.vala
-@@ -216,7 +216,11 @@ public class DateTime.Widgets.CalendarView : Gtk.Grid {
-             carousel.add (right_grid);
-             carousel.scroll_to (start_month_grid);
-             label.label = calmodel.month_start.format (_("%OB, %Y"));
-+
-+            position = 1;
-+            rel_postion = 0;
-         }
-+
-         carousel.no_show_all = false;
-     }
- 
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-paths.patch b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-paths.patch
index bec5f43e0d78a..51c4953620272 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-paths.patch
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/fix-paths.patch
@@ -1,8 +1,21 @@
+diff --git a/src/Indicator.vala b/src/Indicator.vala
+index 4aba03c..6385bc9 100644
+--- a/src/Indicator.vala
++++ b/src/Indicator.vala
+@@ -55,7 +55,7 @@ public class DateTime.Indicator : Wingpanel.Indicator {
+ 
+             panel_label.button_press_event.connect ((e) => {
+                 if (e.button == Gdk.BUTTON_MIDDLE) {
+-                    var command = "io.elementary.calendar --show-day %s".printf (new GLib.DateTime.now_local ().format ("%F"));
++                    var command = "@elementary_calendar@/bin/io.elementary.calendar --show-day %s".printf (new GLib.DateTime.now_local ().format ("%F"));
+                     try {
+                         var appinfo = AppInfo.create_from_commandline (command, null, AppInfoCreateFlags.NONE);
+                         appinfo.launch_uris (null, null);
 diff --git a/src/Widgets/calendar/CalendarView.vala b/src/Widgets/calendar/CalendarView.vala
-index 6e0d530a..2f90f96c 100644
+index cb54253..7477d1a 100644
 --- a/src/Widgets/calendar/CalendarView.vala
 +++ b/src/Widgets/calendar/CalendarView.vala
-@@ -222,7 +222,7 @@ public class DateTime.Widgets.CalendarView : Gtk.Grid {
+@@ -242,7 +242,7 @@ public class DateTime.Widgets.CalendarView : Gtk.Grid {
  
      // TODO: As far as maya supports it use the Dbus Activation feature to run the calendar-app.
      public void show_date_in_maya (GLib.DateTime date) {
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
index 6d5227b7139f2..4ce8fb0434f93 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , fetchpatch
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , ninja
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
index 560d16111c501..fdb6481f7e7fa 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
@@ -3,7 +3,6 @@
 , fetchFromGitHub
 , nix-update-script
 , substituteAll
-, pantheon
 , pkg-config
 , meson
 , ninja
@@ -18,19 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-network";
-  version = "2.3.1";
+  version = "2.3.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-xr1ZihWK8fU8M/rXRKk5dOjoQNe3aJO8ouKC/iVZ7Sk=";
-  };
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
+    sha256 = "sha256-4Fg8/Gm9mUqaL3wEc8h+/pMvOfD75ILjo7LhLz6LQmo=";
   };
 
   nativeBuildInputs = [
@@ -49,6 +42,12 @@ stdenv.mkDerivation rec {
     wingpanel
   ];
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     description = "Network Indicator for Wingpanel";
     homepage = "https://github.com/elementary/wingpanel-indicator-network";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
index 23f9e400c01b5..ecaa05bc356cd 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , fetchpatch
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , ninja
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
index 5adf2c7da6f57..ceabac94a2360 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , ninja
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-notifications";
-  version = "6.0.2";
+  version = "6.0.4";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-ZuOZlfxtRq8ZcrXGe9wlFGwn2isdvMoXQveKKnEPFdo=";
+    sha256 = "sha256-tIpR/WIhE0Mmt2EploNNDVlAX4OUNI3VnEflTLVkfSo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
index f3d3ac0e46d55..38a8fb23701fe 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , substituteAll
 , nix-update-script
-, pantheon
 , gnome
 , pkg-config
 , meson
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
index eaccad35aa0bd..510558f3cb6ab 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
 , fetchpatch
-, pantheon
 , pkg-config
 , meson
 , ninja
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
index 19f44d8d165ee..16e04bedcb93b 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , python3
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
index e22c654e1ef89..0cd7a13c3e120 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , wrapGAppsHook
 , pkg-config
 , meson
@@ -22,19 +22,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel";
-  version = "3.0.1";
+  version = "3.0.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "078yi36r452sc33mv2ck8z0icya1lhzhickllrlhc60rdri36sb8";
-  };
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
+    sha256 = "sha256-WvkQx+9YjKCINpyVg8KjCV0GAb0rJfblSFaO14/4oas=";
   };
 
   nativeBuildInputs = [
@@ -75,6 +69,12 @@ stdenv.mkDerivation rec {
     )
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     description = "The extensible top panel for Pantheon";
     longDescription = ''
diff --git a/pkgs/desktops/pantheon/granite/default.nix b/pkgs/desktops/pantheon/granite/default.nix
index 20b5729ac302c..ec2255bbbc19f 100644
--- a/pkgs/desktops/pantheon/granite/default.nix
+++ b/pkgs/desktops/pantheon/granite/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
 , python3
@@ -7,7 +8,6 @@
 , vala
 , pkg-config
 , libgee
-, pantheon
 , gtk3
 , glib
 , gettext
@@ -18,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "granite";
-  version = "6.1.2";
+  version = "6.2.0";
 
   outputs = [ "out" "dev" ];
 
@@ -26,13 +26,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-d48KQH8uwkSZWQEFSq1BD+TVUi9PWVVtMjKYmleRW58=";
-  };
-
-  passthru = {
-    updateScript = nix-update-script {
-      attrPath = "pantheon.${pname}";
-    };
+    sha256 = "sha256-WM0Wo9giVP5pkMFaPCHsMfnAP6xD71zg6QLCYV6lmkY=";
   };
 
   nativeBuildInputs = [
@@ -58,6 +52,12 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     description = "An extension to GTK used by elementary OS";
     longDescription = ''
diff --git a/pkgs/desktops/pantheon/services/contractor/default.nix b/pkgs/desktops/pantheon/services/contractor/default.nix
index 2263442048794..a6c0cb8a3c53a 100644
--- a/pkgs/desktops/pantheon/services/contractor/default.nix
+++ b/pkgs/desktops/pantheon/services/contractor/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , meson
 , python3
 , ninja
diff --git a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
index c687b281a2a76..ed9919b0b0375 100644
--- a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , python3
diff --git a/pkgs/desktops/pantheon/services/elementary-notifications/default.nix b/pkgs/desktops/pantheon/services/elementary-notifications/default.nix
index 9dd5a86952581..2ea13c9cb5958 100644
--- a/pkgs/desktops/pantheon/services/elementary-notifications/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-notifications/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , meson
 , ninja
@@ -10,7 +11,6 @@
 , libgee
 , libhandy
 , libcanberra-gtk3
-, pantheon
 , python3
 , wrapGAppsHook
 }:
diff --git a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
index 79ced4bfe5828..69a0c2a7bb1a1 100644
--- a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
@@ -1,8 +1,8 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , meson
 , ninja
-, pantheon
 , pkg-config
 , python3
 , vala
diff --git a/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix b/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
index e2053ebf6a31f..c135ea4e18eda 100644
--- a/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
+++ b/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , ninja
@@ -38,13 +38,13 @@ stdenv.mkDerivation rec {
     pkg-config
     vala
     wrapGAppsHook
-   ];
+  ];
 
   buildInputs = [
     geoclue2
     gtk3
     libgee
-   ];
+  ];
 
   # This should be provided by a post_install.py script - See -> https://github.com/elementary/pantheon-agent-geoclue2/pull/21
   postInstall = ''
diff --git a/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix b/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
index 4bef7fd5e08e7..3644d9665df02 100644
--- a/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
+++ b/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , nix-update-script
-, pantheon
 , pkg-config
 , meson
 , ninja
diff --git a/pkgs/development/libraries/xdg-desktop-portal-pantheon/default.nix b/pkgs/desktops/pantheon/services/xdg-desktop-portal-pantheon/default.nix
index 68a187418343f..3ceff2095d2bf 100644
--- a/pkgs/development/libraries/xdg-desktop-portal-pantheon/default.nix
+++ b/pkgs/desktops/pantheon/services/xdg-desktop-portal-pantheon/default.nix
@@ -8,9 +8,9 @@
 , vala
 , wrapGAppsHook
 , glib
+, granite
 , gtk3
 , libhandy
-, pantheon
 , systemd
 , vte
 }:
@@ -36,9 +36,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib
+    granite
     gtk3
     libhandy
-    pantheon.granite
     systemd
     vte
   ];
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = nix-update-script {
-      attrPath = pname;
+      attrPath = "pantheon.${pname}";
     };
   };
 
diff --git a/pkgs/applications/system/pantheon-tweaks/default.nix b/pkgs/desktops/pantheon/third-party/pantheon-tweaks/default.nix
index 67e1bb32aeab6..af6bf54fd7152 100644
--- a/pkgs/applications/system/pantheon-tweaks/default.nix
+++ b/pkgs/desktops/pantheon/third-party/pantheon-tweaks/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pantheon-tweaks";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "pantheon-tweaks";
     repo = pname;
     rev = version;
-    sha256 = "sha256-2spZ6RQ5PhBNrv/xG1TNbYsJrmuRpaZ72CeH2s8+P8g=";
+    sha256 = "sha256-Pn/MIJ/WS/TY5bemM77B37E0KFRlDUfrOl1XS2yJlGk=";
   };
 
   patches = [
diff --git a/pkgs/applications/system/pantheon-tweaks/fix-paths.patch b/pkgs/desktops/pantheon/third-party/pantheon-tweaks/fix-paths.patch
index b2e0e0a7b4c8b..b2e0e0a7b4c8b 100644
--- a/pkgs/applications/system/pantheon-tweaks/fix-paths.patch
+++ b/pkgs/desktops/pantheon/third-party/pantheon-tweaks/fix-paths.patch
diff --git a/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/default.nix b/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/default.nix
new file mode 100644
index 0000000000000..6e3fbf5777bc7
--- /dev/null
+++ b/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, substituteAll
+, meson
+, ninja
+, pkg-config
+, vala
+, gtk3
+, libindicator-gtk3
+, pantheon
+, indicator-application-gtk3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wingpanel-indicator-ayatana";
+  version = "unstable-2021-12-18";
+
+  src = fetchFromGitHub {
+    owner = "Lafydev";
+    repo = pname;
+    rev = "5749f753ca64ce58232a46b9045949b3f8219827";
+    sha256 = "sha256-kuEVw62IDTyC3hRRcWv2RihPOohGqEt8YLr44SurwPM=";
+  };
+
+  patches = [
+    # Tells the indicator the path for libapplication.so
+    (substituteAll {
+      src = ./fix-libapplication-dir.patch;
+      indicator_application = indicator-application-gtk3;
+    })
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    vala
+  ];
+
+  buildInputs = [
+    gtk3
+    libindicator-gtk3
+    pantheon.granite
+    pantheon.wingpanel
+  ];
+
+  meta = with lib; {
+    description = "Ayatana Compatibility Indicator for Wingpanel";
+    homepage = "https://github.com/Lafydev/wingpanel-indicator-ayatana";
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
+    maintainers = teams.pantheon.members;
+  };
+}
diff --git a/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/fix-libapplication-dir.patch b/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/fix-libapplication-dir.patch
new file mode 100644
index 0000000000000..2d9a510b751e2
--- /dev/null
+++ b/pkgs/desktops/pantheon/third-party/wingpanel-indicator-ayatana/fix-libapplication-dir.patch
@@ -0,0 +1,13 @@
+diff --git a/src/IndicatorFactory.vala b/src/IndicatorFactory.vala
+index 9411de0..632d83b 100644
+--- a/src/IndicatorFactory.vala
++++ b/src/IndicatorFactory.vala
+@@ -24,7 +24,7 @@ public class AyatanaCompatibility.IndicatorFactory : Object, IndicatorLoader {
+     public Gee.Collection<IndicatorIface> get_indicators () {
+         if (indicators == null) {
+             indicators = new Gee.LinkedList<IndicatorIface> ();
+-            load_indicator (File.new_for_path (Constants.AYATANA_INDICATOR_DIR), "libapplication.so");
++            load_indicator (File.new_for_path ("@indicator_application@/lib/indicators3/7/"), "libapplication.so");
+         }
+ 
+         return indicators.read_only_view;
diff --git a/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/0001-Avoid-usage-of-npx.patch b/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/0001-Avoid-usage-of-npx.patch
deleted file mode 100644
index 34e06d77bd293..0000000000000
--- a/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/0001-Avoid-usage-of-npx.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From c9aaff2461daba31a25ed20c0789ffd7c3561887 Mon Sep 17 00:00:00 2001
-From: Pasquale <p3dimaria@hotmail.it>
-Date: Tue, 9 Nov 2021 23:12:50 +0100
-Subject: [PATCH] Avoid usage of npx
-
-tsc is only used for checking type annotation
-that are stripped by esbuild
-
----
- src/kwinscript/CMakeLists.txt | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/kwinscript/CMakeLists.txt b/src/kwinscript/CMakeLists.txt
-index 6d85d5d..6f966a4 100644
---- a/src/kwinscript/CMakeLists.txt
-+++ b/src/kwinscript/CMakeLists.txt
-@@ -29,7 +29,7 @@ add_custom_target(
-
- add_custom_command(
-   OUTPUT "bismuth/contents/code/index.mjs"
--  COMMAND "npx" "esbuild"
-+  COMMAND "esbuild"
-   "--bundle" "${CMAKE_CURRENT_SOURCE_DIR}/index.ts"
-   "--outfile=${CMAKE_CURRENT_BINARY_DIR}/bismuth/contents/code/index.mjs"
-   "--format=esm"
-@@ -40,7 +40,7 @@ add_custom_command(
-
- add_custom_target(
-   LintViaTSC
--  COMMAND "npx" "tsc" "--noEmit" "--incremental"
-+  COMMAND "true"
-   COMMENT "👮 Checking sources using TS Compiler..."
- )
-
---
-2.33.1
-
diff --git a/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix b/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix
index 114eb31e69ceb..3e9920cf6299c 100644
--- a/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix
+++ b/pkgs/desktops/plasma-5/3rdparty/addons/bismuth/default.nix
@@ -12,17 +12,18 @@
 
 mkDerivation rec {
   pname = "bismuth";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "Bismuth-Forge";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ICpGgFvVi7tiYbMCo3JWQmbA36rdWF4NFYTWIejhxr4=";
+    sha256 = "sha256-ntfLijYPaOHvQToiAxuBZ5ayHPyQyevP9l6++SL0vUw=";
   };
 
-  patches = [
-    ./0001-Avoid-usage-of-npx.patch
+  cmakeFlags = [
+    "-DUSE_TSC=OFF"
+    "-DUSE_NPM=OFF"
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/plasma-5/3rdparty/lightly/default.nix b/pkgs/desktops/plasma-5/3rdparty/lightly/default.nix
new file mode 100644
index 0000000000000..39be6c63f1e33
--- /dev/null
+++ b/pkgs/desktops/plasma-5/3rdparty/lightly/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, extra-cmake-modules
+, kdecoration
+, kcoreaddons
+, kguiaddons
+, kconfigwidgets
+, kwindowsystem
+, kiconthemes
+, qtx11extras
+}:
+
+mkDerivation rec{
+  pname = "lightly";
+  version = "0.4.1";
+  src = fetchFromGitHub {
+    owner = "Luwx";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "k1fEZbhzluNlAmj5s/O9X20aCVQxlWQm/Iw/euX7cmI=";
+  };
+
+  extraCmakeFlags=["-DBUILD_TESTING=OFF"];
+
+  nativeBuildInputs = [ cmake extra-cmake-modules ];
+
+  buildInputs = [
+    kcoreaddons
+    kguiaddons
+    kconfigwidgets
+    kwindowsystem
+    kiconthemes
+    qtx11extras
+    kdecoration
+  ];
+
+  meta = with lib; {
+    description = "A modern style for qt applications";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ pasqui23 ];
+    homepage = "https://github.com/Luwx/Lightly/";
+    inherit (kwindowsystem.meta) platforms;
+  };
+}
diff --git a/pkgs/desktops/plasma-5/default.nix b/pkgs/desktops/plasma-5/default.nix
index 8abf2b37dbeca..0eafc182e46f7 100644
--- a/pkgs/desktops/plasma-5/default.nix
+++ b/pkgs/desktops/plasma-5/default.nix
@@ -134,9 +134,11 @@ let
       milou = callPackage ./milou.nix {};
       oxygen = callPackage ./oxygen.nix {};
       plasma-browser-integration = callPackage ./plasma-browser-integration.nix {};
+      plasma-phone-components = callPackage ./plasma-phone-components {};
       plasma-desktop = callPackage ./plasma-desktop {};
       plasma-disks = callPackage ./plasma-disks.nix {};
       plasma-integration = callPackage ./plasma-integration {};
+      plasma-nano = callPackage ./plasma-nano {};
       plasma-nm = callPackage ./plasma-nm {};
       plasma-pa = callPackage ./plasma-pa.nix { inherit gconf; };
       plasma-sdk = callPackage ./plasma-sdk.nix {};
@@ -160,6 +162,7 @@ let
         kwin-tiling = callPackage ./3rdparty/kwin/scripts/tiling.nix { };
         krohnkite = callPackage ./3rdparty/kwin/scripts/krohnkite.nix { };
         krunner-symbols = callPackage ./3rdparty/addons/krunner-symbols.nix { };
+        lightly = callPackage ./3rdparty/lightly { };
         parachute = callPackage ./3rdparty/kwin/scripts/parachute.nix { };
       };
 
diff --git a/pkgs/desktops/plasma-5/fetch.sh b/pkgs/desktops/plasma-5/fetch.sh
index 91031ac618fb8..180092076b0e7 100644
--- a/pkgs/desktops/plasma-5/fetch.sh
+++ b/pkgs/desktops/plasma-5/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/plasma/5.23.3/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/plasma/5.23.4/ -A '*.tar.xz' )
diff --git a/pkgs/desktops/plasma-5/kwin/default.nix b/pkgs/desktops/plasma-5/kwin/default.nix
index 4e5ba348cd86f..36f0da9e96114 100644
--- a/pkgs/desktops/plasma-5/kwin/default.nix
+++ b/pkgs/desktops/plasma-5/kwin/default.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib,
   extra-cmake-modules, kdoctools, fetchpatch,
 
-  epoxy, lcms2, libICE, libSM, libcap, libdrm, libinput, libxkbcommon, mesa,
+  libepoxy, lcms2, libICE, libSM, libcap, libdrm, libinput, libxkbcommon, mesa,
   pipewire, udev, wayland, xcb-util-cursor, xwayland,
 
   qtdeclarative, qtmultimedia, qtquickcontrols2, qtscript, qtsensors,
@@ -21,7 +21,7 @@ mkDerivation {
   name = "kwin";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    epoxy lcms2 libICE libSM libcap libdrm libinput libxkbcommon mesa pipewire
+    libepoxy lcms2 libICE libSM libcap libdrm libinput libxkbcommon mesa pipewire
     udev wayland xcb-util-cursor xwayland
 
     qtdeclarative qtmultimedia qtquickcontrols2 qtscript qtsensors
diff --git a/pkgs/desktops/plasma-5/plasma-nano/default.nix b/pkgs/desktops/plasma-5/plasma-nano/default.nix
new file mode 100644
index 0000000000000..0960eec33f2d8
--- /dev/null
+++ b/pkgs/desktops/plasma-5/plasma-nano/default.nix
@@ -0,0 +1,13 @@
+{
+  mkDerivation,
+  extra-cmake-modules,
+  plasma-framework
+}:
+
+mkDerivation {
+  name = "plasma-nano";
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [
+    plasma-framework
+  ];
+}
diff --git a/pkgs/desktops/plasma-5/plasma-phone-components/default.nix b/pkgs/desktops/plasma-5/plasma-phone-components/default.nix
new file mode 100644
index 0000000000000..d925d7e408b51
--- /dev/null
+++ b/pkgs/desktops/plasma-5/plasma-phone-components/default.nix
@@ -0,0 +1,43 @@
+{
+  mkDerivation, lib,
+
+  extra-cmake-modules, kdoctools,
+
+  coreutils, dbus, gnugrep, gnused, libdbusmenu, pam, wayland, appstream,
+
+  kdeclarative, kdelibs4support, kpeople, kconfig, krunner, kinit, kwayland, kwin,
+  plasma-framework, telepathy, libphonenumber, protobuf, libqofono, modemmanager-qt,
+  plasma-workspace,
+  maliit-framework, maliit-keyboard,
+
+  qtwayland, qttools
+}:
+
+let inherit (lib) getBin getLib; in
+
+mkDerivation {
+  name = "plasma-phone-components";
+
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [
+    appstream libdbusmenu pam wayland
+    kdeclarative kdelibs4support kpeople kconfig krunner kinit kwayland kwin
+    plasma-framework telepathy libphonenumber protobuf libqofono modemmanager-qt
+    maliit-framework maliit-keyboard
+  ];
+
+  postPatch = ''
+    substituteInPlace bin/kwinwrapper.in \
+      --replace @KDE_INSTALL_FULL_LIBEXECDIR@ "${plasma-workspace}/libexec"
+
+    substituteInPlace bin/plasma-mobile.desktop.cmake \
+      --replace @CMAKE_INSTALL_FULL_LIBEXECDIR@ "${plasma-workspace}/libexec"
+  '';
+
+  # Ensures dependencies like libqofono (at the very least) are present for the shell.
+  preFixup = ''
+    wrapQtApp "$out/bin/kwinwrapper"
+  '';
+
+  passthru.providedSessions = [ "plasma-mobile" ];
+}
diff --git a/pkgs/desktops/plasma-5/srcs.nix b/pkgs/desktops/plasma-5/srcs.nix
index 70cb748709e93..3bcfca507ab4d 100644
--- a/pkgs/desktops/plasma-5/srcs.nix
+++ b/pkgs/desktops/plasma-5/srcs.nix
@@ -4,427 +4,427 @@
 
 {
   bluedevil = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/bluedevil-5.23.3.tar.xz";
-      sha256 = "1n6h2m4z67vl0mv0hs0g5xff1vcj03w0nhx4hkhy66hly556nq8x";
-      name = "bluedevil-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/bluedevil-5.23.4.tar.xz";
+      sha256 = "13sxwsks7gnws13jhk8428npzdyhvv5yhczzayi5yd3856d3g4av";
+      name = "bluedevil-5.23.4.tar.xz";
     };
   };
   breeze = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/breeze-5.23.3.tar.xz";
-      sha256 = "1514y4k52bc71nljihj655d7swk2qvr168i0j2xqcm0w4aiz4jmv";
-      name = "breeze-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/breeze-5.23.4.tar.xz";
+      sha256 = "1wbhir9g2gfwcvw0ib50qhqk0rgfji8wjipqqp7ddsm463ykp472";
+      name = "breeze-5.23.4.tar.xz";
     };
   };
   breeze-grub = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/breeze-grub-5.23.3.tar.xz";
-      sha256 = "1nwhjw0nkdg94znh7h80byrq8vpa1f20ph1m4fhlj233nfskw0zy";
-      name = "breeze-grub-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/breeze-grub-5.23.4.tar.xz";
+      sha256 = "1zkl8ddbdnckz4glaf0j6vkxf1z63d5q9nx0w64d17qydp1fwxjq";
+      name = "breeze-grub-5.23.4.tar.xz";
     };
   };
   breeze-gtk = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/breeze-gtk-5.23.3.tar.xz";
-      sha256 = "0wq313laj7nlsw3d6p1prq1d4gic5lz2ipklj4dq4vsvsh99ggvn";
-      name = "breeze-gtk-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/breeze-gtk-5.23.4.tar.xz";
+      sha256 = "0jv064y7wlvglk0w2yx1zwnxjhczi9gq6cfnz004z18rlqwnz9pq";
+      name = "breeze-gtk-5.23.4.tar.xz";
     };
   };
   breeze-plymouth = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/breeze-plymouth-5.23.3.tar.xz";
-      sha256 = "047clfgqcrplwi3158pw1r868yyqlxs7iqqy861wzlsmjz9qzqdl";
-      name = "breeze-plymouth-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/breeze-plymouth-5.23.4.tar.xz";
+      sha256 = "1qc8pnhhl89bqwyh215cn92qahw8k8gx7zr14rwxqjn9hxf9jxxy";
+      name = "breeze-plymouth-5.23.4.tar.xz";
     };
   };
   discover = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/discover-5.23.3.tar.xz";
-      sha256 = "056wcvk44r11rycnn12xf8r5psxqnm0f6i6z6nc5100sqkhip6p0";
-      name = "discover-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/discover-5.23.4.tar.xz";
+      sha256 = "0z5bp7p3f470i4x5796raawx7kjg1ca453y63wn9papdbiyl4iiz";
+      name = "discover-5.23.4.tar.xz";
     };
   };
   drkonqi = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/drkonqi-5.23.3.tar.xz";
-      sha256 = "14yc6nq3z6jm8siq2r15nzsqxpawk5iqy9ghmmwy9xa4vf18dxy5";
-      name = "drkonqi-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/drkonqi-5.23.4.tar.xz";
+      sha256 = "073vdclybx83dpvvqb3rc413k3nh50nil8rcig4kqm0gzjhp3qdb";
+      name = "drkonqi-5.23.4.tar.xz";
     };
   };
   kactivitymanagerd = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kactivitymanagerd-5.23.3.tar.xz";
-      sha256 = "0rizk05v19qqymrjh7vswcp80a4rpyffmq7kg88pv5k11fcjqw5b";
-      name = "kactivitymanagerd-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kactivitymanagerd-5.23.4.tar.xz";
+      sha256 = "1m0rbv8pkswkzfvbf231vn2c8x507ymc07kd0dw03np8h8zs5vbz";
+      name = "kactivitymanagerd-5.23.4.tar.xz";
     };
   };
   kde-cli-tools = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kde-cli-tools-5.23.3.tar.xz";
-      sha256 = "0f8wab6n4klxj4yy4l4k3q3pdqlz9718mbjydnsmn1jgn20shsa0";
-      name = "kde-cli-tools-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kde-cli-tools-5.23.4.tar.xz";
+      sha256 = "0ay320b3ixlicd8d1rjngkbxspmpk7rd8g562dv0c54hk73q61gj";
+      name = "kde-cli-tools-5.23.4.tar.xz";
     };
   };
   kde-gtk-config = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kde-gtk-config-5.23.3.tar.xz";
-      sha256 = "12w2jv0mi39c2g1w3g3c68m80ailcm98hibk1mg885r36gx9kskb";
-      name = "kde-gtk-config-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kde-gtk-config-5.23.4.tar.xz";
+      sha256 = "0537vk4wdvgz7jl0qkksf38bra5fdk6d0z6lnwm5v4fapdysbry9";
+      name = "kde-gtk-config-5.23.4.tar.xz";
     };
   };
   kdecoration = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kdecoration-5.23.3.tar.xz";
-      sha256 = "134jmp5l2bvl042a5a1f1d66mqi4g7vrpmrn3gi7ysi34w1ylfc8";
-      name = "kdecoration-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kdecoration-5.23.4.tar.xz";
+      sha256 = "0s80dhbba458yr85m6yfv7m5jkkn0xqzp42nhhaj4m9hh36bbd9s";
+      name = "kdecoration-5.23.4.tar.xz";
     };
   };
   kdeplasma-addons = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kdeplasma-addons-5.23.3.tar.xz";
-      sha256 = "139wzfj21k32m36014sas3ad5qdc0df4131ckj1shlz882w4l3dw";
-      name = "kdeplasma-addons-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kdeplasma-addons-5.23.4.tar.xz";
+      sha256 = "1j7xd2p8a8xi69sh91hldyajqg77lx5bla1vjg65f7yqz903bp4h";
+      name = "kdeplasma-addons-5.23.4.tar.xz";
     };
   };
   kgamma5 = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kgamma5-5.23.3.tar.xz";
-      sha256 = "06wzcpsjqy5pw3s6qg32l6qg9jf61bbpjwh802182balfq2jl0y5";
-      name = "kgamma5-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kgamma5-5.23.4.tar.xz";
+      sha256 = "1b3m812xxcya0gf665m8crpmwq91mkq28jkcjaavknr9dd22dkyk";
+      name = "kgamma5-5.23.4.tar.xz";
     };
   };
   khotkeys = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/khotkeys-5.23.3.tar.xz";
-      sha256 = "1ccjlr3q1lsmmdmh30wbrdaardvhivdzm9vrd46d301rdz6gyv86";
-      name = "khotkeys-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/khotkeys-5.23.4.tar.xz";
+      sha256 = "1fsll3cp6z763wp65iwqz244hzq0qlm4007jpxgd4gasbrd5zfg8";
+      name = "khotkeys-5.23.4.tar.xz";
     };
   };
   kinfocenter = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kinfocenter-5.23.3.tar.xz";
-      sha256 = "09yz5grzwzgs1cg39j18zy7af8azy2lbg4bkkmh7wayv8pngj4gv";
-      name = "kinfocenter-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kinfocenter-5.23.4.tar.xz";
+      sha256 = "0z3hwq5qjkrcxn0smgi7x49mcyixm1apjd4f16q0z40sn7sdybad";
+      name = "kinfocenter-5.23.4.tar.xz";
     };
   };
   kmenuedit = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kmenuedit-5.23.3.tar.xz";
-      sha256 = "006kkg7jzwp4icik1hv95wcpw5sb1l1s94wnljvxdfdjkgzjxq55";
-      name = "kmenuedit-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kmenuedit-5.23.4.tar.xz";
+      sha256 = "1iildwnhkvg2i2yhp6zl7m77fpa8vs7hhv8wjma3vbr2gh808nck";
+      name = "kmenuedit-5.23.4.tar.xz";
     };
   };
   kscreen = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kscreen-5.23.3.tar.xz";
-      sha256 = "1x4qlycb1dxw36s3zyyrjfmfvwvwk8f8r0jls6hq8gqkl810abhw";
-      name = "kscreen-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kscreen-5.23.4.tar.xz";
+      sha256 = "0sa9xvyz42c69aqnn2bm3j1hq87n2nk5yawppl7csxyz91iyv3n5";
+      name = "kscreen-5.23.4.tar.xz";
     };
   };
   kscreenlocker = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kscreenlocker-5.23.3.tar.xz";
-      sha256 = "0wjcrikx3q533qz9wi0z3jm4k0lc09w2xsxr4iw1hh3afsd6jr34";
-      name = "kscreenlocker-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kscreenlocker-5.23.4.tar.xz";
+      sha256 = "1n4gkcf74hk60fvbkb9940q5r89jbj4kwc4byi51523n038pvymf";
+      name = "kscreenlocker-5.23.4.tar.xz";
     };
   };
   ksshaskpass = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/ksshaskpass-5.23.3.tar.xz";
-      sha256 = "0dcych5zcv8fqmy1lhwpbfzj75ihs648d8ppfr0nj15mm2pgnvhx";
-      name = "ksshaskpass-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/ksshaskpass-5.23.4.tar.xz";
+      sha256 = "1s9wbfl867fgr5md51f63fc57626zw2b637xh7qy8sn563l8y1lk";
+      name = "ksshaskpass-5.23.4.tar.xz";
     };
   };
   ksystemstats = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/ksystemstats-5.23.3.tar.xz";
-      sha256 = "13jic16480rxhdwz0z49di19sxdi7rgvg61lg5i00w9mm6mbph3l";
-      name = "ksystemstats-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/ksystemstats-5.23.4.tar.xz";
+      sha256 = "00vs71jxqlv52absh16jyj1zryk2ib0bpd21c4qja11a3hw7j3gz";
+      name = "ksystemstats-5.23.4.tar.xz";
     };
   };
   kwallet-pam = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kwallet-pam-5.23.3.tar.xz";
-      sha256 = "0axxk7szp5kn5hhlxh2mjzbwzaj4g1yn40ymgb6dga10h1nfdkd8";
-      name = "kwallet-pam-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kwallet-pam-5.23.4.tar.xz";
+      sha256 = "08ycniyna3hzdgzi3m61iamwid32hajb1k1m27kw16abh3ds4vx7";
+      name = "kwallet-pam-5.23.4.tar.xz";
     };
   };
   kwayland-integration = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kwayland-integration-5.23.3.tar.xz";
-      sha256 = "01gm3xbaih22v33bd9142xnrli13yxmib42pj8rnczhczrpnc3z3";
-      name = "kwayland-integration-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kwayland-integration-5.23.4.tar.xz";
+      sha256 = "14j6iwakkmdyhf3796ap2dnfi0vdbrl3813x4ygzjyb8068a7k9g";
+      name = "kwayland-integration-5.23.4.tar.xz";
     };
   };
   kwayland-server = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kwayland-server-5.23.3.tar.xz";
-      sha256 = "1hjh278iaz3ydf9bqy2fmm4hsvc60hrqw4hlc3ddcadp28dhg3gx";
-      name = "kwayland-server-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kwayland-server-5.23.4.tar.xz";
+      sha256 = "13cvw4i1ysw4ncdnx7c4qw29zc350wbmc29dy06b574idm5rbnrm";
+      name = "kwayland-server-5.23.4.tar.xz";
     };
   };
   kwin = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kwin-5.23.3.tar.xz";
-      sha256 = "04w8vnz3rzd9g1j1f4fbgyxjvxqrhasx6f2vqkrrh4cd56ndmcbz";
-      name = "kwin-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kwin-5.23.4.tar.xz";
+      sha256 = "0rqim6p0r7k886mwvqy4zpz18scnah9zvjjbgx0p77f1086azvsc";
+      name = "kwin-5.23.4.tar.xz";
     };
   };
   kwrited = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/kwrited-5.23.3.tar.xz";
-      sha256 = "0156syandkq0s76xrrcz6nkxa6jgpf1a6nbkdw0a8biyxs5md644";
-      name = "kwrited-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/kwrited-5.23.4.tar.xz";
+      sha256 = "15sixbk5i5i1jv07hj820xi4fh0b6fmb4jkv2917911wpdkdnyik";
+      name = "kwrited-5.23.4.tar.xz";
     };
   };
   layer-shell-qt = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/layer-shell-qt-5.23.3.tar.xz";
-      sha256 = "15y7p0a59779aqxnsryqirsxslbvbig733i5s3n5jmg98y40712a";
-      name = "layer-shell-qt-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/layer-shell-qt-5.23.4.tar.xz";
+      sha256 = "0a74s7wx3jxxi1dp4j0a5dz7k45il4wjf7hf9j6cw2m5pdni1i2k";
+      name = "layer-shell-qt-5.23.4.tar.xz";
     };
   };
   libkscreen = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/libkscreen-5.23.3.tar.xz";
-      sha256 = "0kazvsahnk7ngld12lp1c07c34x9kal03fy8g7w9bgdha3j7xmdq";
-      name = "libkscreen-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/libkscreen-5.23.4.tar.xz";
+      sha256 = "0n1xghmabhn7sb99k0zsyrbx05mbaf926hyyw9qp5rf07r8yzk2p";
+      name = "libkscreen-5.23.4.tar.xz";
     };
   };
   libksysguard = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/libksysguard-5.23.3.tar.xz";
-      sha256 = "0ma4b0w08j0f46ivh9grci7wfh4z5j8nml83kcvnain1nwzprha0";
-      name = "libksysguard-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/libksysguard-5.23.4.tar.xz";
+      sha256 = "1xik5qaww9m26nkg804akaxbn7i7bd8ibc2v93h3p8ihkb5hh7lw";
+      name = "libksysguard-5.23.4.tar.xz";
     };
   };
   milou = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/milou-5.23.3.tar.xz";
-      sha256 = "0myvm9bkq189cfla7yqiwmbb5z2cm90rq5ll655n2c7zk3lqnn0d";
-      name = "milou-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/milou-5.23.4.tar.xz";
+      sha256 = "15wniaj9zprhvly6krxl5847q8kh8m8z5sr2wj816n70hh1y58f8";
+      name = "milou-5.23.4.tar.xz";
     };
   };
   oxygen = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/oxygen-5.23.3.tar.xz";
-      sha256 = "0r79xadvg7l4nsziy78wydhn4f0223fjc2xd60zih1dwmgapgf0z";
-      name = "oxygen-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/oxygen-5.23.4.tar.xz";
+      sha256 = "0b4rhf9500jhx73xw4ghqifgkfr527n2isiiys8g7m23ya38pbxz";
+      name = "oxygen-5.23.4.tar.xz";
     };
   };
   plasma-browser-integration = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-browser-integration-5.23.3.tar.xz";
-      sha256 = "0r3sq6w73qn246nddf4f8lbym8k4wp2ycfr2laz888b5cjf9df97";
-      name = "plasma-browser-integration-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-browser-integration-5.23.4.tar.xz";
+      sha256 = "004406s80i0gv1ga151ws7sny4l3y74swawdgd1swmvkjg2ii909";
+      name = "plasma-browser-integration-5.23.4.tar.xz";
     };
   };
   plasma-desktop = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-desktop-5.23.3.tar.xz";
-      sha256 = "01259pqncx3gcpanrmhal51dn4y8xcrs16pl5bjnasdn9r8mlhs3";
-      name = "plasma-desktop-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-desktop-5.23.4.tar.xz";
+      sha256 = "1p48sl6zyra1iyri9zrx88wka9fbzgyhkd9m7r4nqa8h0v5p12as";
+      name = "plasma-desktop-5.23.4.tar.xz";
     };
   };
   plasma-disks = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-disks-5.23.3.tar.xz";
-      sha256 = "1qwxhasmycn6ah2pv46z8vvls85lfwxm4z61q13l63a50489a05b";
-      name = "plasma-disks-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-disks-5.23.4.tar.xz";
+      sha256 = "0sgfwqyn539nd6s23nix3igf7z87sn3dn9zp8w2fy488vmm1pdmi";
+      name = "plasma-disks-5.23.4.tar.xz";
     };
   };
   plasma-firewall = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-firewall-5.23.3.tar.xz";
-      sha256 = "0kqb7sxysh6gq143rmmznv95mx4275bp1xfrlys518yn97clnwqq";
-      name = "plasma-firewall-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-firewall-5.23.4.tar.xz";
+      sha256 = "040w85ml5rh0l95l744576s3kb00niyr72q4pvf5xj98df1h89aw";
+      name = "plasma-firewall-5.23.4.tar.xz";
     };
   };
   plasma-integration = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-integration-5.23.3.tar.xz";
-      sha256 = "0q53b43yl5s1pvlqpmic2x8q5inawk66n8wng7rzgcfv9d3imhrn";
-      name = "plasma-integration-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-integration-5.23.4.tar.xz";
+      sha256 = "0b4rvfnd40xgvgab81p9qjgdpjww673nlaiklwrkrqmv41m0yy33";
+      name = "plasma-integration-5.23.4.tar.xz";
     };
   };
   plasma-nano = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-nano-5.23.3.tar.xz";
-      sha256 = "0ijygajn78c97s8ys8m2zn52zx45kxhk857hppkxp4jqpd5psf34";
-      name = "plasma-nano-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-nano-5.23.4.tar.xz";
+      sha256 = "1kw77w00261dmp2w0jvaslamia215mlhd3nnl0wr39p5vhlym70p";
+      name = "plasma-nano-5.23.4.tar.xz";
     };
   };
   plasma-nm = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-nm-5.23.3.tar.xz";
-      sha256 = "157almdi3br1qdfr0lwfdwc60fbizkwmpw3j2czk2sdsvm58rhgf";
-      name = "plasma-nm-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-nm-5.23.4.tar.xz";
+      sha256 = "0c4gfdyzac67yxjvz75mxd61wacnsa01liaajdyj853bn7wkx294";
+      name = "plasma-nm-5.23.4.tar.xz";
     };
   };
   plasma-pa = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-pa-5.23.3.tar.xz";
-      sha256 = "0md3vb2iffn4qdnj4msyn6j3hvidnsxzp2dfsnb3n0yp29niwxqk";
-      name = "plasma-pa-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-pa-5.23.4.tar.xz";
+      sha256 = "0g4q0y4sr14xsi71mv5qgn6qj8svmd045ff73hf34pb15qvdq0a7";
+      name = "plasma-pa-5.23.4.tar.xz";
     };
   };
   plasma-phone-components = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-phone-components-5.23.3.tar.xz";
-      sha256 = "1w8yqczr0933vhca5id32vg1k2np6n6hkh58n4x3z3xpdxpb5d4c";
-      name = "plasma-phone-components-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-phone-components-5.23.4.tar.xz";
+      sha256 = "0ml5pyi90nlmx5550sf3x9263f8mypj4jmdskzabzhnz44ck8vy9";
+      name = "plasma-phone-components-5.23.4.tar.xz";
     };
   };
   plasma-sdk = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-sdk-5.23.3.tar.xz";
-      sha256 = "0fb9g6vhsaxd6h6889jyhnxp86g7rwkmyiafq72hx6ikv69wyvbi";
-      name = "plasma-sdk-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-sdk-5.23.4.tar.xz";
+      sha256 = "1cbsksjy9x3jlk8bzd9m1zgr83rzkwv0jd015fap707ysdil1ypk";
+      name = "plasma-sdk-5.23.4.tar.xz";
     };
   };
   plasma-systemmonitor = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-systemmonitor-5.23.3.tar.xz";
-      sha256 = "1jlgfrkdw785x9bib2hzxjyd70b9aqgcp1w6lk75bhgkrz85kz8p";
-      name = "plasma-systemmonitor-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-systemmonitor-5.23.4.tar.xz";
+      sha256 = "16kfpzm8bhxyl9jx5xqbas4cm99sny4b2n6i27hc7ggjgx9r3j31";
+      name = "plasma-systemmonitor-5.23.4.tar.xz";
     };
   };
   plasma-tests = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-tests-5.23.3.tar.xz";
-      sha256 = "1fgl09c0ir8w128z4l0bggszjsvsqncb42k44vn6i6d0qdisxdgh";
-      name = "plasma-tests-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-tests-5.23.4.tar.xz";
+      sha256 = "1vnihnrxgbrk224xxpisqj84hjbllyk32vsra2rbgrwp2g58fh69";
+      name = "plasma-tests-5.23.4.tar.xz";
     };
   };
   plasma-thunderbolt = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-thunderbolt-5.23.3.tar.xz";
-      sha256 = "0vzdzsl6isg24j0830lg7is47kpmpvsni7gf4vri2l8a6fy7ibav";
-      name = "plasma-thunderbolt-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-thunderbolt-5.23.4.tar.xz";
+      sha256 = "0g5n24qwm6yd78rg14d6j2hn0krn0z0fm6bpyzr54ycrgiv850zz";
+      name = "plasma-thunderbolt-5.23.4.tar.xz";
     };
   };
   plasma-vault = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-vault-5.23.3.tar.xz";
-      sha256 = "061zq00mz1aamam4pc4kbbzdx4mi07iiach6w52n0c9d1bz16ym2";
-      name = "plasma-vault-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-vault-5.23.4.tar.xz";
+      sha256 = "1ay9x7kbgb5qg7w1m1rp9xbp8dzsxdj7zh2ifk3lff1g5f3yh9y6";
+      name = "plasma-vault-5.23.4.tar.xz";
     };
   };
   plasma-workspace = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-workspace-5.23.3.tar.xz";
-      sha256 = "0mz2aanm46s88lwm1s2nwm8yfanj78rnx1y14ppzm4dx0lrjx046";
-      name = "plasma-workspace-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-workspace-5.23.4.tar.xz";
+      sha256 = "0kd37sfg8hbf8biia3ip89nx0jgrdgfprmda392gx5xfzbnlxv0k";
+      name = "plasma-workspace-5.23.4.tar.xz";
     };
   };
   plasma-workspace-wallpapers = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plasma-workspace-wallpapers-5.23.3.tar.xz";
-      sha256 = "1kz4xqzgwnhp1wmqmgadn0jjc9033i2bm8hiycqkahhj603k552s";
-      name = "plasma-workspace-wallpapers-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plasma-workspace-wallpapers-5.23.4.tar.xz";
+      sha256 = "157kbi40bv9arxq7cvgxypk1qmrpd52d76xq99rsfbzdfrggx9nc";
+      name = "plasma-workspace-wallpapers-5.23.4.tar.xz";
     };
   };
   plymouth-kcm = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/plymouth-kcm-5.23.3.tar.xz";
-      sha256 = "1fa26h19g4f2fhpisp1jsl1niis50fbkdss7j1nqg44jih0g0qyf";
-      name = "plymouth-kcm-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/plymouth-kcm-5.23.4.tar.xz";
+      sha256 = "11f2r4nq7pi8xn3z6zjc58ix5hj3das16xqvq7m82p8zvw2qs44p";
+      name = "plymouth-kcm-5.23.4.tar.xz";
     };
   };
   polkit-kde-agent = {
-    version = "1-5.23.3";
+    version = "1-5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/polkit-kde-agent-1-5.23.3.tar.xz";
-      sha256 = "1r5sqxzj5r9xqn3iwsfj06f1w69q41j4wq2z11kndnjad0pwrf3r";
-      name = "polkit-kde-agent-1-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/polkit-kde-agent-1-5.23.4.tar.xz";
+      sha256 = "06qjz87c2h0vgpk0jpf24194rahdrwpc274k6vmfkmbr5232w48h";
+      name = "polkit-kde-agent-1-5.23.4.tar.xz";
     };
   };
   powerdevil = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/powerdevil-5.23.3.tar.xz";
-      sha256 = "0hcb22dy4hslzrk3md6amzm51hlmv08747f34x5drdl10cg98mzb";
-      name = "powerdevil-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/powerdevil-5.23.4.tar.xz";
+      sha256 = "1sl62vm25libbx2l2kw7s9p44kdq561gh8an03vkf1q1qgrnpwsf";
+      name = "powerdevil-5.23.4.tar.xz";
     };
   };
   qqc2-breeze-style = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/qqc2-breeze-style-5.23.3.tar.xz";
-      sha256 = "0716mw6dgpzwkaiinp8vphvxj3vrb95v7zckh4pgdky8ahxv655l";
-      name = "qqc2-breeze-style-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/qqc2-breeze-style-5.23.4.tar.xz";
+      sha256 = "1wl8zxq7bca6v40mnwjnpxc3pzz30khc223y9dwpgy8ampvy2ghr";
+      name = "qqc2-breeze-style-5.23.4.tar.xz";
     };
   };
   sddm-kcm = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/sddm-kcm-5.23.3.tar.xz";
-      sha256 = "0sb9sjdbhafjcx2nf2ffzjh14gyambj1w32gjz29fl15xjbmvqnr";
-      name = "sddm-kcm-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/sddm-kcm-5.23.4.tar.xz";
+      sha256 = "148vf9af4fhma0w6v7wwlxpq8v8a858yx3qx7w0pg8jq5zd1k6g2";
+      name = "sddm-kcm-5.23.4.tar.xz";
     };
   };
   systemsettings = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/systemsettings-5.23.3.tar.xz";
-      sha256 = "0i8vc1y95jd3g5vcgzixd73mn1r9s2jg9ix5nwfq4i5ihi0a0ph1";
-      name = "systemsettings-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/systemsettings-5.23.4.tar.xz";
+      sha256 = "0naw5zxgs47nx5wwg1li35salyg2cfpaphhn5m20plwqfi43zbdw";
+      name = "systemsettings-5.23.4.tar.xz";
     };
   };
   xdg-desktop-portal-kde = {
-    version = "5.23.3";
+    version = "5.23.4";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.23.3/xdg-desktop-portal-kde-5.23.3.tar.xz";
-      sha256 = "1aajlgccl1z9m49a016ixr2hiy231wyx6xnmpbvjx9h1b52b3rpz";
-      name = "xdg-desktop-portal-kde-5.23.3.tar.xz";
+      url = "${mirror}/stable/plasma/5.23.4/xdg-desktop-portal-kde-5.23.4.tar.xz";
+      sha256 = "17n5d4rjm28in7jpsq2qg2d7lv3qcnlpmgi9kclx81miih9rjwan";
+      name = "xdg-desktop-portal-kde-5.23.4.tar.xz";
     };
   };
 }
diff --git a/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix b/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
index f754bc5a46d4b..60d4867cb47f2 100644
--- a/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
+++ b/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib,
   extra-cmake-modules, gettext, kdoctools,
-  cups, epoxy, mesa, pcre, pipewire, wayland, wayland-protocols,
+  cups, libepoxy, mesa, pcre, pipewire, wayland, wayland-protocols,
   kcoreaddons, knotifications, kwayland, kwidgetsaddons, kwindowsystem,
   kirigami2, kdeclarative, plasma-framework, plasma-wayland-protocols, kio,
   qtbase
@@ -11,7 +11,7 @@ mkDerivation {
   name = "xdg-desktop-portal-kde";
   nativeBuildInputs = [ extra-cmake-modules gettext kdoctools ];
   buildInputs = [
-    cups epoxy mesa pcre pipewire wayland wayland-protocols
+    cups libepoxy mesa pcre pipewire wayland wayland-protocols
 
     kio kcoreaddons knotifications kwayland kwidgetsaddons kwindowsystem
     kirigami2 kdeclarative plasma-framework plasma-wayland-protocols
diff --git a/pkgs/desktops/xfce/applications/catfish/default.nix b/pkgs/desktops/xfce/applications/catfish/default.nix
index 5a4a5dc2a18a8..7d5ef0a288c9c 100644
--- a/pkgs/desktops/xfce/applications/catfish/default.nix
+++ b/pkgs/desktops/xfce/applications/catfish/default.nix
@@ -62,6 +62,6 @@ python3Packages.buildPythonApplication rec {
     '';
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = [ maintainers.romildo ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/gigolo/default.nix b/pkgs/desktops/xfce/applications/gigolo/default.nix
index 84fec43b3c2a0..c23abc1d561e3 100644
--- a/pkgs/desktops/xfce/applications/gigolo/default.nix
+++ b/pkgs/desktops/xfce/applications/gigolo/default.nix
@@ -10,8 +10,9 @@ mkXfceDerivation {
 
   buildInputs = [ gtk3 glib ];
 
-  meta = {
+  meta = with lib; {
     description = "A frontend to easily manage connections to remote filesystems";
-    license = with lib.licenses; [ gpl2Only ];
+    license = with licenses; [ gpl2Only ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/mousepad/default.nix b/pkgs/desktops/xfce/applications/mousepad/default.nix
index 1fdbe267c0399..2b794aa4b8ab1 100644
--- a/pkgs/desktops/xfce/applications/mousepad/default.nix
+++ b/pkgs/desktops/xfce/applications/mousepad/default.nix
@@ -1,12 +1,12 @@
-{ mkXfceDerivation, gobject-introspection, gtk3, gtksourceview4, gspell }:
+{ lib, mkXfceDerivation, gobject-introspection, gtk3, gtksourceview4, gspell }:
 
 mkXfceDerivation {
   category = "apps";
   pname = "mousepad";
-  version = "0.5.7";
+  version = "0.5.8";
   odd-unstable = false;
 
-  sha256 = "sha256-VLPzzM9dl+HAPI+Qn2QTjrKfRgngsExlPFRsdmsNcSM=";
+  sha256 = "sha256-Q5coRO2Swo0LpB+pzi+fxrwNyhcDbQXLuQtepPlCyxY=";
 
   nativeBuildInputs = [ gobject-introspection ];
 
@@ -15,7 +15,8 @@ mkXfceDerivation {
   # Use the GSettings keyfile backend rather than DConf
   configureFlags = [ "--enable-keyfile-settings" ];
 
-  meta = {
+  meta = with lib; {
     description = "Simple text editor for Xfce";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/orage/default.nix b/pkgs/desktops/xfce/applications/orage/default.nix
index f2747c9c62a5e..f38dacf0dbbce 100644
--- a/pkgs/desktops/xfce/applications/orage/default.nix
+++ b/pkgs/desktops/xfce/applications/orage/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     homepage = "https://git.xfce.org/archive/orage/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/parole/default.nix b/pkgs/desktops/xfce/applications/parole/default.nix
index 8ea2180dea289..70d287dcdf4cf 100644
--- a/pkgs/desktops/xfce/applications/parole/default.nix
+++ b/pkgs/desktops/xfce/applications/parole/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, dbus, dbus-glib
+{ lib, mkXfceDerivation, dbus, dbus-glib
 , gst_all_1, gtk3, libnotify, libxfce4ui, libxfce4util
 , taglib, xfconf }:
 
@@ -31,7 +31,8 @@ mkXfceDerivation {
     xfconf
   ];
 
-  meta = {
+  meta = with lib; {
     description = "Modern simple media player";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/ristretto/default.nix b/pkgs/desktops/xfce/applications/ristretto/default.nix
index c8b8f162da5db..aef93da5ee900 100644
--- a/pkgs/desktops/xfce/applications/ristretto/default.nix
+++ b/pkgs/desktops/xfce/applications/ristretto/default.nix
@@ -1,18 +1,19 @@
-{ mkXfceDerivation, gtk3, glib, libexif
+{ lib, mkXfceDerivation, gtk3, glib, libexif
 , libxfce4ui, libxfce4util, xfconf }:
 
 mkXfceDerivation {
   category = "apps";
   pname = "ristretto";
-  version = "0.12.0";
+  version = "0.12.1";
 
-  sha256 = "sha256-vf9OczDHG6iAd10BgbwfFG7uHBn3JnNT6AB/WGk40C8=";
+  sha256 = "sha256-Kwtema8mydSPQadeaw/OTnGCHUNuJpvHbf7l4YtICYE=";
 
   buildInputs = [ glib gtk3 libexif libxfce4ui libxfce4util xfconf ];
 
   NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
-  meta = {
+  meta = with lib; {
     description = "A fast and lightweight picture-viewer for the Xfce desktop environment";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/xfburn/default.nix b/pkgs/desktops/xfce/applications/xfburn/default.nix
index f44769ddd69ab..e9fbd88894b38 100644
--- a/pkgs/desktops/xfce/applications/xfburn/default.nix
+++ b/pkgs/desktops/xfce/applications/xfburn/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, docbook_xsl, exo, gtk3, libburn, libisofs, libxfce4ui, libxslt }:
+{ lib, mkXfceDerivation, docbook_xsl, exo, gtk3, libburn, libisofs, libxfce4ui, libxslt }:
 
 mkXfceDerivation {
   category = "apps";
@@ -9,4 +9,9 @@ mkXfceDerivation {
 
   nativeBuildInputs = [ libxslt docbook_xsl ];
   buildInputs = [ exo gtk3 libburn libisofs libxfce4ui ];
+
+  meta = with lib; {
+    description = "Disc burner and project creator for Xfce";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
+  };
 }
diff --git a/pkgs/desktops/xfce/applications/xfce4-dict/default.nix b/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
index 94f6f7c5dd5b6..989d07a44f65e 100644
--- a/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-dict/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, automakeAddFlags, gtk3, libxfce4ui, libxfce4util, xfce4-panel }:
+{ lib, mkXfceDerivation, automakeAddFlags, gtk3, libxfce4ui, libxfce4util, xfce4-panel }:
 
 mkXfceDerivation {
   category = "apps";
@@ -17,7 +17,8 @@ mkXfceDerivation {
 
   buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel ];
 
-  meta = {
+  meta = with lib; {
     description = "A Dictionary Client for the Xfce desktop environment";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix b/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
index 64fc7db4dbcc1..75a57ae037a17 100644
--- a/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-notifyd/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, glib, gtk3, libnotify, libxfce4ui, libxfce4util
+{ lib, mkXfceDerivation, glib, gtk3, libnotify, libxfce4ui, libxfce4util
 , xfce4-panel, xfconf }:
 
 mkXfceDerivation {
@@ -14,7 +14,8 @@ mkXfceDerivation {
     "--enable-dbus-start-daemon"
   ];
 
-  meta = {
+  meta = with lib; {
     description = "Simple notification daemon for Xfce";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/xfce4-panel-profiles/default.nix b/pkgs/desktops/xfce/applications/xfce4-panel-profiles/default.nix
index 3c7f99f7d3ac0..bb8ff12c31372 100644
--- a/pkgs/desktops/xfce/applications/xfce4-panel-profiles/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-panel-profiles/default.nix
@@ -23,7 +23,8 @@ in mkXfceDerivation {
       --set GI_TYPELIB_PATH ${makeTypelibPath [ gtk3 libxfce4ui libxfce4util pango harfbuzz gdk-pixbuf atk ]}
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Simple application to manage Xfce panel layouts";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix b/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
index f381b2d618175..99e5457a0106d 100644
--- a/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-screenshooter/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, exo, gtk3, libsoup, libxfce4ui, libxfce4util, xfce4-panel, glib-networking }:
+{ lib, mkXfceDerivation, exo, gtk3, libsoup, libxfce4ui, libxfce4util, xfce4-panel, glib-networking }:
 
 mkXfceDerivation {
   category = "apps";
@@ -10,7 +10,8 @@ mkXfceDerivation {
 
   buildInputs = [ exo gtk3 libsoup libxfce4ui libxfce4util xfce4-panel glib-networking ];
 
-  meta = {
+  meta = with lib; {
     description = "Screenshot utility for the Xfce desktop";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix b/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
index 6c7e0b2968191..ace9f16e42615 100644
--- a/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-taskmanager/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, exo, gtk3, libwnck, libXmu }:
+{ lib, mkXfceDerivation, exo, gtk3, libwnck, libXmu }:
 
 mkXfceDerivation {
   category = "apps";
@@ -10,7 +10,8 @@ mkXfceDerivation {
   nativeBuildInputs = [ exo ];
   buildInputs = [ gtk3 libwnck libXmu ];
 
-  meta = {
+  meta = with lib; {
     description = "Easy to use task manager for Xfce";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix b/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
index ce0c2d1f3cd35..4d887f96ffd26 100644
--- a/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-terminal/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, gtk3, libxfce4ui, vte, xfconf, pcre2, libxslt, docbook_xml_dtd_45, docbook_xsl }:
+{ lib, mkXfceDerivation, gtk3, libxfce4ui, vte, xfconf, pcre2, libxslt, docbook_xml_dtd_45, docbook_xsl }:
 
 mkXfceDerivation {
   category = "apps";
@@ -11,7 +11,8 @@ mkXfceDerivation {
 
   buildInputs = [ gtk3 libxfce4ui vte xfconf pcre2 ];
 
-  meta = {
+  meta = with lib; {
     description = "A modern terminal emulator";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix b/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix
index fc9328e0e2f07..131181031847c 100644
--- a/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix
+++ b/pkgs/desktops/xfce/applications/xfce4-volumed-pulse/default.nix
@@ -12,6 +12,6 @@ mkXfceDerivation {
   meta = with lib; {
     description = "A volume keys control daemon for Xfce using pulseaudio";
     license = licenses.gpl3Plus;
-    maintainers = [ maintainers.abbradar ];
+    maintainers = with maintainers; [ abbradar ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/applications/xfdashboard/default.nix b/pkgs/desktops/xfce/applications/xfdashboard/default.nix
index c5653ddc9fb15..ee09d6196c78c 100644
--- a/pkgs/desktops/xfce/applications/xfdashboard/default.nix
+++ b/pkgs/desktops/xfce/applications/xfdashboard/default.nix
@@ -1,4 +1,5 @@
-{ mkXfceDerivation
+{ lib
+, mkXfceDerivation
 , clutter
 , libXcomposite
 , libXinerama
@@ -39,7 +40,8 @@ mkXfceDerivation {
     xfconf
   ];
 
-  meta = {
+  meta = with lib; {
     description = "Gnome shell like dashboard";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/art/xfce4-icon-theme/default.nix b/pkgs/desktops/xfce/art/xfce4-icon-theme/default.nix
index 6ece5d68c5fb3..8c4dff80747db 100644
--- a/pkgs/desktops/xfce/art/xfce4-icon-theme/default.nix
+++ b/pkgs/desktops/xfce/art/xfce4-icon-theme/default.nix
@@ -39,6 +39,6 @@ stdenv.mkDerivation rec {
     description = "Icons for Xfce";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = [ maintainers.eelco ];
+    maintainers = with maintainers; [ eelco ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/art/xfwm4-themes/default.nix b/pkgs/desktops/xfce/art/xfwm4-themes/default.nix
index 5548be8f4abe2..2c84c619c64f9 100644
--- a/pkgs/desktops/xfce/art/xfwm4-themes/default.nix
+++ b/pkgs/desktops/xfce/art/xfwm4-themes/default.nix
@@ -24,6 +24,6 @@ stdenv.mkDerivation rec {
     description = "Themes for Xfce";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
-    maintainers = [ maintainers.volth ];
+    maintainers = with maintainers; [ volth ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/core/exo/default.nix b/pkgs/desktops/xfce/core/exo/default.nix
index 3ab53444a41af..7c891bd035845 100644
--- a/pkgs/desktops/xfce/core/exo/default.nix
+++ b/pkgs/desktops/xfce/core/exo/default.nix
@@ -1,12 +1,12 @@
-{ mkXfceDerivation, docbook_xsl, glib, libxslt, gtk3
+{ lib, mkXfceDerivation, docbook_xsl, glib, libxslt, gtk3
 , libxfce4ui, libxfce4util, perl }:
 
 mkXfceDerivation {
   category = "xfce";
   pname = "exo";
-  version = "4.16.2";
+  version = "4.16.3";
 
-  sha256 = "sha256-O9Ak1sGxcSl9xB//+/vqJjXuEv9WIZlnliVPSKRIV2c=";
+  sha256 = "sha256-PG3GWpZ04sX4HrgAy2Sqcb+vdhiNk7C3YP7KpwgHj+g=";
 
   nativeBuildInputs = [
     libxslt
@@ -25,7 +25,8 @@ mkXfceDerivation {
   # Workaround https://bugzilla.xfce.org/show_bug.cgi?id=15825
   NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
-  meta = {
+  meta = with lib; {
     description = "Application library for Xfce";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/core/garcon/default.nix b/pkgs/desktops/xfce/core/garcon/default.nix
index a3ff8e0afd1ff..740022550ebbc 100644
--- a/pkgs/desktops/xfce/core/garcon/default.nix
+++ b/pkgs/desktops/xfce/core/garcon/default.nix
@@ -11,8 +11,9 @@ mkXfceDerivation {
 
   buildInputs = [ gtk3 libxfce4ui libxfce4util ];
 
-  meta = {
+  meta = with lib; {
     description = "Xfce menu support library";
-    license = with lib.licenses; [ lgpl2Only fdl11Only ];
+    license = with licenses; [ lgpl2Only fdl11Only ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/core/libxfce4ui/default.nix b/pkgs/desktops/xfce/core/libxfce4ui/default.nix
index 0a937f68fd062..fc3535127fa29 100644
--- a/pkgs/desktops/xfce/core/libxfce4ui/default.nix
+++ b/pkgs/desktops/xfce/core/libxfce4ui/default.nix
@@ -1,5 +1,5 @@
 { lib, mkXfceDerivation, gobject-introspection, vala, gtk3, libICE, libSM
-, libstartup_notification, libgtop, epoxy, libxfce4util, xfconf }:
+, libstartup_notification, libgtop, libepoxy, libxfce4util, xfconf }:
 
 mkXfceDerivation {
   category = "xfce";
@@ -9,7 +9,7 @@ mkXfceDerivation {
   sha256 = "sha256-5mwyC3YA1LvdVSvaHN7CXDJh+IXjmdHGLKzhpjtUZkw=";
 
   nativeBuildInputs = [ gobject-introspection vala ];
-  buildInputs =  [ gtk3 libstartup_notification libgtop epoxy xfconf ];
+  buildInputs =  [ gtk3 libstartup_notification libgtop libepoxy xfconf ];
   propagatedBuildInputs = [ libxfce4util libICE libSM ];
 
   configureFlags = [
@@ -19,5 +19,6 @@ mkXfceDerivation {
   meta = with lib; {
     description = "Widgets library for Xfce";
     license = with licenses; [ lgpl2Plus lgpl21Plus ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/core/libxfce4util/default.nix b/pkgs/desktops/xfce/core/libxfce4util/default.nix
index 638c3a3158ddd..4262a03930352 100644
--- a/pkgs/desktops/xfce/core/libxfce4util/default.nix
+++ b/pkgs/desktops/xfce/core/libxfce4util/default.nix
@@ -12,5 +12,6 @@ mkXfceDerivation {
   meta = with lib; {
     description = "Extension library for Xfce";
     license = licenses.lgpl2Plus;
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/core/thunar-volman/default.nix b/pkgs/desktops/xfce/core/thunar-volman/default.nix
index 31d25f97d37d1..3fe2df6f1b62d 100644
--- a/pkgs/desktops/xfce/core/thunar-volman/default.nix
+++ b/pkgs/desktops/xfce/core/thunar-volman/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, exo, gtk3, libgudev, libxfce4ui, libxfce4util, xfconf }:
+{ lib, mkXfceDerivation, exo, gtk3, libgudev, libxfce4ui, libxfce4util, xfconf }:
 
 mkXfceDerivation {
   category = "xfce";
@@ -11,7 +11,8 @@ mkXfceDerivation {
 
   odd-unstable = false;
 
-  meta = {
+  meta = with lib; {
     description = "Thunar extension for automatic management of removable drives and media";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/core/thunar/default.nix b/pkgs/desktops/xfce/core/thunar/default.nix
index 2672da6ad3721..3319141a8be93 100644
--- a/pkgs/desktops/xfce/core/thunar/default.nix
+++ b/pkgs/desktops/xfce/core/thunar/default.nix
@@ -58,8 +58,9 @@ let unwrapped = mkXfceDerivation {
     sed -i -e 's|thunar_dialogs_show_insecure_program (parent, _(".*"), file, exec)|1|' thunar/thunar-file.c
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Xfce file manager";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 };
 
diff --git a/pkgs/desktops/xfce/core/thunar/wrapper.nix b/pkgs/desktops/xfce/core/thunar/wrapper.nix
index 5381dceae4a4a..584c356547b38 100644
--- a/pkgs/desktops/xfce/core/thunar/wrapper.nix
+++ b/pkgs/desktops/xfce/core/thunar/wrapper.nix
@@ -1,4 +1,4 @@
-{ makeWrapper, symlinkJoin, thunar, thunarPlugins, lib }:
+{ lib, makeWrapper, symlinkJoin, thunar, thunarPlugins }:
 
 symlinkJoin {
   name = "thunar-with-plugins-${thunar.version}";
diff --git a/pkgs/desktops/xfce/core/tumbler/default.nix b/pkgs/desktops/xfce/core/tumbler/default.nix
index a9642b3b52c6f..26a28b9b426d9 100644
--- a/pkgs/desktops/xfce/core/tumbler/default.nix
+++ b/pkgs/desktops/xfce/core/tumbler/default.nix
@@ -1,4 +1,5 @@
-{ mkXfceDerivation
+{ lib
+, mkXfceDerivation
 , ffmpegthumbnailer
 , gdk-pixbuf
 , glib
@@ -32,7 +33,8 @@ mkXfceDerivation {
     wrapProgram $out/lib/tumbler-1/tumblerd "''${gappsWrapperArgs[@]}"
   '';
 
-  meta = {
+  meta = with lib; {
     description = "A D-Bus thumbnailer service";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix b/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix
index 4d0f61863e7de..d98353a070afb 100644
--- a/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix
+++ b/pkgs/desktops/xfce/core/xfce4-appfinder/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, exo, garcon, gtk3, libxfce4util, libxfce4ui, xfconf }:
+{ lib, mkXfceDerivation, exo, garcon, gtk3, libxfce4util, libxfce4ui, xfconf }:
 
 mkXfceDerivation {
   category = "xfce";
@@ -10,7 +10,8 @@ mkXfceDerivation {
   nativeBuildInputs = [ exo ];
   buildInputs = [ garcon gtk3 libxfce4ui libxfce4util xfconf ];
 
-  meta = {
+  meta = with lib; {
     description = "Appfinder for the Xfce4 Desktop Environment";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/core/xfce4-dev-tools/default.nix b/pkgs/desktops/xfce/core/xfce4-dev-tools/default.nix
index fc8263abb4fc0..16c35e6002bfe 100644
--- a/pkgs/desktops/xfce/core/xfce4-dev-tools/default.nix
+++ b/pkgs/desktops/xfce/core/xfce4-dev-tools/default.nix
@@ -1,4 +1,5 @@
-{ mkXfceDerivation
+{ lib
+, mkXfceDerivation
 , autoreconfHook
 , libxslt
 , docbook_xsl
@@ -34,7 +35,8 @@ mkXfceDerivation {
 
   setupHook = ./setup-hook.sh;
 
-  meta = {
+  meta = with lib; {
     description = "Autoconf macros and scripts to augment app build systems";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/core/xfce4-panel/default.nix b/pkgs/desktops/xfce/core/xfce4-panel/default.nix
index 417241235b956..4fa26b3da024a 100644
--- a/pkgs/desktops/xfce/core/xfce4-panel/default.nix
+++ b/pkgs/desktops/xfce/core/xfce4-panel/default.nix
@@ -1,4 +1,5 @@
-{ mkXfceDerivation
+{ lib
+, mkXfceDerivation
 , exo
 , garcon
 , glib
@@ -51,7 +52,8 @@ mkXfceDerivation {
   # Workaround https://bugzilla.xfce.org/show_bug.cgi?id=15825
   NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
-  meta = {
+  meta = with lib; {
     description = "Panel for the Xfce desktop environment";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix b/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
index 9877027c4033c..107357d5a7318 100644
--- a/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
+++ b/pkgs/desktops/xfce/core/xfce4-power-manager/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, automakeAddFlags, exo, gtk3, libnotify
+{ lib, mkXfceDerivation, automakeAddFlags, exo, gtk3, libnotify
 , libxfce4ui, libxfce4util, upower, xfconf, xfce4-panel }:
 
 mkXfceDerivation {
@@ -17,7 +17,8 @@ mkXfceDerivation {
     automakeAddFlags settings/Makefile.am xfce4_power_manager_settings_CFLAGS GIO_CFLAGS
   '';
 
-  meta = {
+  meta = with lib; {
     description = "A power manager for the Xfce Desktop Environment";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/core/xfce4-session/default.nix b/pkgs/desktops/xfce/core/xfce4-session/default.nix
index 27eaf94b25996..5ce96c1b02b6a 100644
--- a/pkgs/desktops/xfce/core/xfce4-session/default.nix
+++ b/pkgs/desktops/xfce/core/xfce4-session/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, polkit, exo, libxfce4util, libxfce4ui, xfconf, iceauth, gtk3, glib, libwnck, xfce4-session }:
+{ lib, mkXfceDerivation, polkit, exo, libxfce4util, libxfce4ui, xfconf, iceauth, gtk3, glib, libwnck, xfce4-session }:
 
 mkXfceDerivation {
   category = "xfce";
@@ -16,7 +16,8 @@ mkXfceDerivation {
 
   passthru.xinitrc = "${xfce4-session}/etc/xdg/xfce4/xinitrc";
 
-  meta =  {
+  meta = with lib; {
     description = "Session manager for Xfce";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/core/xfce4-settings/default.nix b/pkgs/desktops/xfce/core/xfce4-settings/default.nix
index 61382ba8c5098..91714976f84dc 100644
--- a/pkgs/desktops/xfce/core/xfce4-settings/default.nix
+++ b/pkgs/desktops/xfce/core/xfce4-settings/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, exo, garcon, gtk3, glib
+{ lib, mkXfceDerivation, exo, garcon, gtk3, glib
 , libnotify, libxfce4ui, libxfce4util, libxklavier
 , upower, xfconf, xf86inputlibinput }:
 
@@ -34,7 +34,8 @@ mkXfceDerivation {
     "--enable-sound-settings"
   ];
 
-  meta = {
+  meta = with lib; {
     description = "Settings manager for Xfce";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/core/xfconf/default.nix b/pkgs/desktops/xfce/core/xfconf/default.nix
index f255c5e5e58b1..c3946258292bd 100644
--- a/pkgs/desktops/xfce/core/xfconf/default.nix
+++ b/pkgs/desktops/xfce/core/xfconf/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, libxfce4util, gobject-introspection, vala }:
+{ lib, mkXfceDerivation, libxfce4util, gobject-introspection, vala }:
 
 mkXfceDerivation {
   category = "xfce";
@@ -11,7 +11,8 @@ mkXfceDerivation {
 
   buildInputs = [ libxfce4util ];
 
-  meta = {
+  meta = with lib; {
     description = "Simple client-server configuration storage and query system for Xfce";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/core/xfdesktop/default.nix b/pkgs/desktops/xfce/core/xfdesktop/default.nix
index bc6a19346eceb..7e397b395f35f 100644
--- a/pkgs/desktops/xfce/core/xfdesktop/default.nix
+++ b/pkgs/desktops/xfce/core/xfdesktop/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, exo, gtk3, libxfce4ui, libxfce4util, libwnck, xfconf, libnotify, garcon, thunar }:
+{ lib, mkXfceDerivation, exo, gtk3, libxfce4ui, libxfce4util, libwnck, xfconf, libnotify, garcon, thunar }:
 
 mkXfceDerivation {
   category = "xfce";
@@ -19,7 +19,8 @@ mkXfceDerivation {
     thunar
   ];
 
-  meta = {
+  meta = with lib; {
     description = "Xfce's desktop manager";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/core/xfwm4/default.nix b/pkgs/desktops/xfce/core/xfwm4/default.nix
index cc998487f1650..efc12dd91eb96 100644
--- a/pkgs/desktops/xfce/core/xfwm4/default.nix
+++ b/pkgs/desktops/xfce/core/xfwm4/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, exo, librsvg, dbus-glib, epoxy, gtk3, libXdamage
+{ lib, mkXfceDerivation, exo, librsvg, dbus-glib, libepoxy, gtk3, libXdamage
 , libstartup_notification, libxfce4ui, libxfce4util, libwnck
 , libXpresent, xfconf }:
 
@@ -13,7 +13,7 @@ mkXfceDerivation {
 
   buildInputs = [
     dbus-glib
-    epoxy
+    libepoxy
     gtk3
     libXdamage
     libstartup_notification
@@ -24,7 +24,8 @@ mkXfceDerivation {
     xfconf
   ];
 
-  meta = {
+  meta = with lib; {
     description = "Window manager for Xfce";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-battery-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-battery-plugin/default.nix
index ffb0118edee82..bfaa340f52494 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-battery-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-battery-plugin/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, gtk3, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
+{ lib, mkXfceDerivation, gtk3, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
 
 mkXfceDerivation {
   category = "panel-plugins";
@@ -10,7 +10,8 @@ mkXfceDerivation {
 
   buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ];
 
-  meta = {
+  meta = with lib; {
     description = "Battery plugin for Xfce panel";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix
index 7f18009c51d21..0fd84aaba7485 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-clipman-plugin/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, libXtst, libxfce4ui, xfce4-panel, xfconf }:
+{ lib, mkXfceDerivation, libXtst, libxfce4ui, xfce4-panel, xfconf }:
 
 mkXfceDerivation {
   category = "panel-plugins";
@@ -8,7 +8,8 @@ mkXfceDerivation {
 
   buildInputs = [ libXtst libxfce4ui xfce4-panel xfconf ];
 
-  meta = {
+  meta = with lib; {
     description = "Clipboard manager for Xfce panel";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin/default.nix
index 358d2b64e446e..e382e8024dad9 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-cpufreq-plugin/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, gtk3, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
+{ lib, mkXfceDerivation, gtk3, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
 
 mkXfceDerivation {
   category = "panel-plugins";
@@ -8,7 +8,8 @@ mkXfceDerivation {
 
   buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ];
 
-  meta = {
+  meta = with lib; {
     description = "CPU Freq load plugin for Xfce panel";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin/default.nix
index f475793f29688..0d0bf49161d27 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-cpugraph-plugin/default.nix
@@ -56,6 +56,6 @@ in stdenv.mkDerivation rec {
     description = "CPU graph show for Xfce panel";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = [ ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix
index 2626ea749971b..70b3eca4137a6 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-datetime-plugin/default.nix
@@ -26,6 +26,6 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Shows the date and time in the panel, and a calendar appears when you left-click on it";
-    maintainers = [ ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix
index 41f71ec2f907e..97c564a40c63e 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-dockbarx-plugin/default.nix
@@ -7,7 +7,7 @@
 , keybinder3
 , pkg-config
 , python3Packages
-, vala_0_48
+, vala
 , wafHook
 , wrapGAppsHook
 , xfce
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     gobject-introspection
     pkg-config
     python3Packages.wrapPython
-    vala_0_48
+    vala
     wafHook
     wrapGAppsHook
   ];
@@ -64,6 +64,6 @@ stdenv.mkDerivation rec {
     description = "Plugins to embed DockbarX into xfce4-panel";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = [ maintainers.romildo ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin/default.nix
index 00738ccbc6297..76868bcd550ac 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-embed-plugin/default.nix
@@ -45,6 +45,6 @@ in stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     broken = true; # unmaintained plugin; no longer compatible with xfce 4.16
-    maintainers = [ ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin/default.nix
index 4bc0399404894..3ee90788137ed 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin/default.nix
@@ -46,6 +46,6 @@ in stdenv.mkDerivation rec {
     description = "Rolling eyes (following mouse pointer) plugin for the Xfce panel";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = [ ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-fsguard-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-fsguard-plugin/default.nix
index 1e98a5a621216..084cb764c627e 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-fsguard-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-fsguard-plugin/default.nix
@@ -46,6 +46,6 @@ in stdenv.mkDerivation rec {
     description = "Filesystem usage monitor plugin for the Xfce panel";
     license = licenses.bsd2;
     platforms = platforms.linux;
-    maintainers = [ ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-genmon-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-genmon-plugin/default.nix
index e190df90b83ba..9700d515fbcab 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-genmon-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-genmon-plugin/default.nix
@@ -44,6 +44,6 @@ in stdenv.mkDerivation rec {
     description = "Generic monitor plugin for the Xfce panel";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = [ ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin/default.nix
index 8ff68c21d61be..3f1f9c25c5094 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-hardware-monitor-plugin/default.nix
@@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     platforms = platforms.unix;
     broken = true; # unmaintained plugin; no longer compatible with xfce 4.16
-    maintainers = [ maintainers.romildo ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-i3-workspaces-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-i3-workspaces-plugin/default.nix
index 136b91a8a2f88..a65444f22786f 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-i3-workspaces-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-i3-workspaces-plugin/default.nix
@@ -41,6 +41,6 @@ stdenv.mkDerivation rec {
     description = "Workspace switcher plugin for xfce4-panel which can be used for the i3 window manager";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
-    maintainers = [ maintainers.berbiche ];
+    maintainers = with maintainers; [ berbiche ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin/default.nix
index 56d9a15aaada9..455370ca38bbc 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-mailwatch-plugin/default.nix
@@ -38,6 +38,6 @@ stdenv.mkDerivation rec {
     description = "Mail watcher plugin for Xfce panel";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
-    maintainers = [ ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-mpc-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-mpc-plugin/default.nix
index 8012b14b13893..1f935ac4a4d4e 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-mpc-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-mpc-plugin/default.nix
@@ -38,6 +38,6 @@ stdenv.mkDerivation rec {
     description = "MPD plugin for Xfce panel";
     platforms = platforms.linux;
     license = licenses.bsd2;
-    maintainers = [ ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin/default.nix
index baba34212fdc2..3f749c85b24ee 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-namebar-plugin/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, pkg-config, fetchFromGitHub, python3, vala_0_46
+{ lib, stdenv, pkg-config, fetchFromGitHub, python3, vala_0_40
 , gtk3, libwnck, libxfce4util, xfce4-panel, wafHook, xfce }:
 
 stdenv.mkDerivation rec {
@@ -12,7 +12,13 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-aKrJzf9rwCyXAJsRIXdBzmJBASuXD5I5kZrp+atx4FA=";
   };
 
-  nativeBuildInputs = [ pkg-config vala_0_46 wafHook python3 ];
+  # Does not build with vala 0.48 or later
+  # Upstream has no activity for a while
+  # libxfce4panel-2.0.vapi:92.3-92.41: error: overriding method `Xfce.PanelPlugin.remote_event' is incompatible
+  # with base method `bool Xfce.PanelPluginProvider.remote_event (string, GLib.Value, uint)': too few parameters.
+  #               public virtual signal bool remote_event (string name, GLib.Value value);
+  #               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  nativeBuildInputs = [ pkg-config vala_0_40 wafHook python3 ];
   buildInputs = [ gtk3 libwnck libxfce4util xfce4-panel ];
 
   postPatch = ''
@@ -32,6 +38,6 @@ stdenv.mkDerivation rec {
     description = "Plugin which integrates titlebar and window controls into the xfce4-panel";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = [ maintainers.volth ];
+    maintainers = with maintainers; [ volth ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-netload-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-netload-plugin/default.nix
index dc39001b8089d..2720520a047ba 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-netload-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-netload-plugin/default.nix
@@ -1,4 +1,4 @@
-{ mkXfceDerivation, gtk3, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
+{ lib, mkXfceDerivation, gtk3, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
 
 mkXfceDerivation {
   category = "panel-plugins";
@@ -10,7 +10,8 @@ mkXfceDerivation {
 
   buildInputs = [ gtk3 libxfce4ui libxfce4util xfce4-panel xfconf ];
 
-  meta = {
+  meta = with lib; {
     description = "Internet load speed plugin for Xfce4 panel";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin/default.nix
index 6e84c83eafcc0..c2a7aa694d7d9 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-notes-plugin/default.nix
@@ -42,6 +42,6 @@ in stdenv.mkDerivation rec {
     description = "Sticky notes plugin for Xfce panel";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = [ ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix
index ab3983721611c..5915a43372d98 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-pulseaudio-plugin/default.nix
@@ -1,4 +1,5 @@
-{ mkXfceDerivation
+{ lib
+, mkXfceDerivation
 , automakeAddFlags
 , dbus-glib
 , dbus
@@ -43,7 +44,8 @@ mkXfceDerivation {
     xfconf
   ];
 
-  meta = {
+  meta = with lib; {
     description = "Adjust the audio volume of the PulseAudio sound system";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix
index db6c50f07dee7..fa221e65ea1a0 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-sensors-plugin/default.nix
@@ -49,6 +49,6 @@ stdenv.mkDerivation rec {
     description = "A panel plug-in for different sensors using acpi, lm_sensors and hddtemp";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
-    maintainers = [ maintainers.romildo ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin/default.nix
index 092985f5acd2c..7236eb97d6de9 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-systemload-plugin/default.nix
@@ -42,6 +42,6 @@ in stdenv.mkDerivation rec {
     description = "System load plugin for Xfce panel";
     license = licenses.bsd2;
     platforms = platforms.linux;
-    maintainers = [ ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin/default.nix
index a31824ab771a9..35840b9d244be 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin/default.nix
@@ -39,6 +39,6 @@ stdenv.mkDerivation rec {
     description = "Simple countdown and alarm plugin for the Xfce panel";
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
-    maintainers = [ ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix
index 838dba46c8808..e0d2db11d6f5c 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-verve-plugin/default.nix
@@ -20,6 +20,6 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "A command-line plugin";
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin/default.nix
index d300329d2876c..4ce0fae5a391a 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-weather-plugin/default.nix
@@ -42,6 +42,6 @@ stdenv.mkDerivation rec {
     description = "Weather plugin for the Xfce desktop environment";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
-    maintainers = [ maintainers.romildo ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
index be59429fe1bb5..9d090e30c9328 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
@@ -1,12 +1,12 @@
-{ mkXfceDerivation, gettext, gtk3, glib, cmake, exo, garcon, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
+{ lib, mkXfceDerivation, gettext, gtk3, glib, cmake, exo, garcon, libxfce4ui, libxfce4util, xfce4-panel, xfconf }:
 
 mkXfceDerivation {
   category = "panel-plugins";
   pname = "xfce4-whiskermenu-plugin";
-  version = "2.6.2";
+  version = "2.7.0";
   rev-prefix = "v";
   odd-unstable = false;
-  sha256 = "sha256-Tg6jK2yvODvNykTRePmHWu3safgyKAd3tCMWGXuMhPM=";
+  sha256 = "sha256-wrFp+YMFfi1UZKQGkHnojAh+l170xW56ls9UJZXmzOo=";
 
   nativeBuildInputs = [ cmake ];
 
@@ -22,7 +22,8 @@ mkXfceDerivation {
       --replace $out/bin/xfce4-panel ${xfce4-panel.out}/bin/xfce4-panel
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Alternate application launcher for Xfce";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin/default.nix
index 8f4751b1737ba..6a2386e0f89e1 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-windowck-plugin/default.nix
@@ -45,6 +45,6 @@ stdenv.mkDerivation rec {
     description = "Xfce plugins which allows to put the maximized window title and buttons on the panel";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
-    maintainers = [ maintainers.volth ];
+    maintainers = with maintainers; [ volth ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/panel-plugins/xfce4-xkb-plugin/default.nix b/pkgs/desktops/xfce/panel-plugins/xfce4-xkb-plugin/default.nix
index 8145f1a2af069..97332cf36e98c 100644
--- a/pkgs/desktops/xfce/panel-plugins/xfce4-xkb-plugin/default.nix
+++ b/pkgs/desktops/xfce/panel-plugins/xfce4-xkb-plugin/default.nix
@@ -32,6 +32,6 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Allows you to setup and use multiple keyboard layouts";
-    maintainers = [ ];
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/thunar-plugins/archive/default.nix b/pkgs/desktops/xfce/thunar-plugins/archive/default.nix
index 53d18b4d9b367..ef1271bcba822 100644
--- a/pkgs/desktops/xfce/thunar-plugins/archive/default.nix
+++ b/pkgs/desktops/xfce/thunar-plugins/archive/default.nix
@@ -33,5 +33,6 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Thunar plugin providing file context menus for archives";
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix b/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix
index 3e8004d3d5389..75ef2491fe15d 100644
--- a/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix
+++ b/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     description = "A plugin that adds context-menu items for Dropbox to Thunar";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
+    maintainers = with maintainers; [ ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/desktops/xfce/thunar-plugins/media-tags/default.nix b/pkgs/desktops/xfce/thunar-plugins/media-tags/default.nix
index 5b97bb3066fd4..65f9942b3a53d 100644
--- a/pkgs/desktops/xfce/thunar-plugins/media-tags/default.nix
+++ b/pkgs/desktops/xfce/thunar-plugins/media-tags/default.nix
@@ -32,6 +32,6 @@ mkXfceDerivation {
 
   meta = with lib; {
     description = "Thunar plugin providing tagging and renaming features for media files";
-    maintainers = with maintainers; [ ncfavier ];
+    maintainers = with maintainers; [ ncfavier ] ++ teams.xfce.members;
   };
 }
diff --git a/pkgs/development/beam-modules/default.nix b/pkgs/development/beam-modules/default.nix
index 1c9d5099b44f7..1cbdf04bef93d 100644
--- a/pkgs/development/beam-modules/default.nix
+++ b/pkgs/development/beam-modules/default.nix
@@ -42,7 +42,12 @@ let
       elvis-erlang = callPackage ./elvis-erlang { };
 
       # BEAM-based languages.
-      elixir = elixir_1_12;
+      elixir = elixir_1_13;
+
+      elixir_1_13 = lib'.callElixir ../interpreters/elixir/1.13.nix {
+        inherit erlang;
+        debugInfo = true;
+      };
 
       elixir_1_12 = lib'.callElixir ../interpreters/elixir/1.12.nix {
         inherit erlang;
@@ -64,17 +69,8 @@ let
         debugInfo = true;
       };
 
-      elixir_1_8 = lib'.callElixir ../interpreters/elixir/1.8.nix {
-        erlang = pkgs.beam.interpreters.erlangR23;
-        debugInfo = true;
-      };
-
       # Remove old versions of elixir, when the supports fades out:
       # https://hexdocs.pm/elixir/compatibility-and-deprecations.html
-      elixir_1_7 = lib'.callElixir ../interpreters/elixir/1.7.nix {
-        inherit erlang;
-        debugInfo = true;
-      };
 
       elixir_ls = callPackage ./elixir-ls { inherit elixir fetchMixDeps mixRelease; };
 
diff --git a/pkgs/development/beam-modules/elixir-ls/default.nix b/pkgs/development/beam-modules/elixir-ls/default.nix
index e0a7cb4e539db..72862d5b9689e 100644
--- a/pkgs/development/beam-modules/elixir-ls/default.nix
+++ b/pkgs/development/beam-modules/elixir-ls/default.nix
@@ -2,23 +2,25 @@
 # Based on the work of Hauleth
 # None of this would have happened without him
 
-mixRelease rec {
+let
   pname = "elixir-ls";
-  version = "0.8.1";
-  inherit elixir;
-
+  pinData = lib.importJSON ./pin.json;
+  version = pinData.version;
   src = fetchFromGitHub {
     owner = "elixir-lsp";
     repo = "elixir-ls";
     rev = "v${version}";
-    sha256 = "sha256-KlZq12RCor9GrwA8QMP3R+jUQ/xFHRjkLwwkvthiMU0=";
+    sha256 = pinData.sha256;
     fetchSubmodules = true;
   };
+in
+mixRelease  {
+  inherit pname version src elixir;
 
   mixFodDeps = fetchMixDeps {
     pname = "mix-deps-${pname}";
     inherit src version elixir;
-    sha256 = "sha256-OzjToAg+q/ybCyqzNFk28OBsItjFTbdPi416EPh2qX0=";
+    sha256 = pinData.depsSha256;
   };
 
   # elixir_ls is an umbrella app
diff --git a/pkgs/development/beam-modules/elixir-ls/pin.json b/pkgs/development/beam-modules/elixir-ls/pin.json
new file mode 100644
index 0000000000000..02b0ef8c4ae9e
--- /dev/null
+++ b/pkgs/development/beam-modules/elixir-ls/pin.json
@@ -0,0 +1,5 @@
+{
+  "version": "0.9.0",
+  "sha256": "sha256-dHHmA9TAM5YEfbUoujgy1XLzdh7zGWhR9SsFoTnKX48=",
+  "depsSha256": "sha256-YkZ/tp537ULKfXka4IdD+RgLlXuv6ayxdYn9KFyXrr4="
+}
diff --git a/pkgs/development/beam-modules/elixir-ls/update.sh b/pkgs/development/beam-modules/elixir-ls/update.sh
index 8bc1c2b6e9668..eaa73815d735f 100755
--- a/pkgs/development/beam-modules/elixir-ls/update.sh
+++ b/pkgs/development/beam-modules/elixir-ls/update.sh
@@ -2,31 +2,30 @@
 #! nix-shell -i oil -p jq sd nix-prefetch-github ripgrep
 
 # TODO set to `verbose` or `extdebug` once implemented in oil
-shopt --set xtrace
+set -x
 
-var directory = $(dirname $0 | xargs realpath)
-var owner = "elixir-lsp"
-var repo = "elixir-ls"
-var latest_rev = $(curl -q https://api.github.com/repos/${owner}/${repo}/releases/latest | \
+const directory = $(dirname $0 | xargs realpath)
+const owner = "elixir-lsp"
+const repo = "elixir-ls"
+const latest_rev = $(curl -q https://api.github.com/repos/${owner}/${repo}/releases/latest | \
   jq -r '.tag_name')
-var latest_version = $(echo $latest_rev | sd 'v' '')
-var current_version = $(nix-instantiate -A elixir_ls.version --eval --json | jq -r)
-if ("$latest_version" == "$current_version") {
+const latest_version = $(echo $latest_rev | sd 'v' '')
+const current_version = $(jq -r '.version' $directory/pin.json)
+if ("$latest_version" === "$current_version") {
   echo "elixir-ls is already up-to-date"
   return 0
 } else {
-  var tarball_meta = $(nix-prefetch-github $owner $repo --rev "$latest_rev")
-  var tarball_hash = "sha256-$(echo $tarball_meta | jq -r '.sha256')"
-  var sha256s = $(rg '"sha256-.+"' $directory/default.nix | sd '.+"(.+)";' '$1' )
-  echo $sha256s | read --line :github_sha256
-  echo $sha256s | tail -n 1 | read --line :old_mix_sha256
-  sd 'version = ".+"' "version = \"$latest_version\"" "$directory/default.nix"
-  sd "sha256 = \"$github_sha256\"" "sha256 = \"$tarball_hash\"" "$directory/default.nix"
-  sd "sha256 = \"$old_mix_sha256\"" "sha256 = \"\"" "$directory/default.nix"
+  const tarball_meta = $(nix-prefetch-github $owner $repo --rev "$latest_rev")
+  const tarball_hash = "sha256-$(echo $tarball_meta | jq -r '.sha256')"
+  const sha256s = $(rg '"sha256-.+"' $directory/default.nix | sd '.+"(.+)";' '$1' )
 
-  var new_mix_hash = $(nix-build -A elixir_ls.mixFodDeps 2>&1 | \
+  jq ".version = \"$latest_version\" | \
+      .\"sha256\" = \"$tarball_hash\" | \
+      .\"depsSha256\" = \"\"" $directory/pin.json | sponge $directory/pin.json
+
+  const new_mix_hash = $(nix-build -A elixir_ls.mixFodDeps 2>&1 | \
     tail -n 1 | \
     sd '\s+got:\s+' '')
 
-  sd "sha256 = \"\"" "sha256 = \"$new_mix_hash\"" "$directory/default.nix"
+  jq ".depsSha256 = \"$new_mix_hash\"" $directory/pin.json | sponge $directory/pin.json
 }
diff --git a/pkgs/development/beam-modules/hex/default.nix b/pkgs/development/beam-modules/hex/default.nix
index 836740a793314..c9e45c4806109 100644
--- a/pkgs/development/beam-modules/hex/default.nix
+++ b/pkgs/development/beam-modules/hex/default.nix
@@ -8,13 +8,13 @@ let
 
   pkg = self: stdenv.mkDerivation rec {
     pname = "hex";
-    version = "0.21.2";
+    version = "1.0.1";
 
     src = fetchFromGitHub {
       owner = "hexpm";
       repo = "hex";
       rev = "v${version}";
-      sha256 = "18vwrc5b7pyi3nifmx5hd5wbz8fy3h6sfvkmskjg5acmz66fys0g";
+      sha256 = "sha256-5g2MDbStlUrAPQCv1xWp+oPyRIOqARmlsKo/ONLTLnY=";
     };
 
     setupHook = writeText "setupHook.sh" ''
diff --git a/pkgs/development/compilers/carp/default.nix b/pkgs/development/compilers/carp/default.nix
index fa2b4ebd620f8..3f188e23317c3 100644
--- a/pkgs/development/compilers/carp/default.nix
+++ b/pkgs/development/compilers/carp/default.nix
@@ -2,13 +2,13 @@
 
 haskellPackages.mkDerivation rec {
   pname = "carp";
-  version = "0.5.3";
+  version = "0.5.4";
 
   src = fetchFromGitHub {
     owner = "carp-lang";
     repo = "Carp";
     rev = "v${version}";
-    sha256 = "08ryk30ii24qsdpdq7bqi406ynv9nr8zy2pcv9n70ar8fxfw0859";
+    sha256 = "sha256-o7NLd7jC1BvcoVzbD18LvHg/SqOnfn9yELUrpg2uZtY=";
   };
 
   buildTools = [ makeWrapper ];
diff --git a/pkgs/development/compilers/chez-racket/default.nix b/pkgs/development/compilers/chez-racket/default.nix
new file mode 100644
index 0000000000000..fa32934243c6d
--- /dev/null
+++ b/pkgs/development/compilers/chez-racket/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, buildPackages, callPackage }:
+
+let
+  chezSystemMap = {
+    # See `/workarea` of source code for list of systems
+    "aarch64-darwin" = "tarm64osx";
+    "aarch64-linux" = "tarm64le";
+    "armv7l-linux" = "tarm32le";
+    "x86_64-darwin" = "ta6osx";
+    "x86_64-linux" = "ta6le";
+  };
+  inherit (stdenv.hostPlatform) system;
+  chezSystem = chezSystemMap.${system} or (throw "Add ${system} to chezSystemMap to enable building chez-racket");
+  # Chez Scheme uses an ad-hoc `configure`, hence we don't use the usual
+  # stdenv abstractions.
+  forBoot = {
+    pname = "chez-scheme-racket-boot";
+    configurePhase = ''
+      runHook preConfigure
+      ./configure --pb ZLIB=$ZLIB LZ4=$LZ4
+      runHook postConfigure
+    '';
+    makeFlags = [ "${chezSystem}.bootquick" ];
+    installPhase = ''
+      runHook preInstall
+      mkdir -p $out
+      pushd boot
+      mv $(ls -1 | grep -v "^pb$") -t $out
+      popd
+      runHook postInstall
+    '';
+  };
+  boot = buildPackages.callPackage (import ./shared.nix forBoot) {};
+  forFinal = {
+    pname = "chez-scheme-racket";
+    configurePhase = ''
+      runHook preConfigure
+      cp -r ${boot}/* -t ./boot
+      ./configure -m=${chezSystem} --installprefix=$out --installman=$out/share/man ZLIB=$ZLIB LZ4=$LZ4
+      runHook postConfigure
+    '';
+    preBuild = ''
+      pushd ${chezSystem}/c
+    '';
+    postBuild = ''
+      popd
+    '';
+    setupHook = ./setup-hook.sh;
+  };
+  final = callPackage (import ./shared.nix forFinal) {};
+in
+final
diff --git a/pkgs/development/compilers/chez-racket/setup-hook.sh b/pkgs/development/compilers/chez-racket/setup-hook.sh
new file mode 100644
index 0000000000000..1d81489bd4e46
--- /dev/null
+++ b/pkgs/development/compilers/chez-racket/setup-hook.sh
@@ -0,0 +1,5 @@
+addChezLibraryPath() {
+  addToSearchPath CHEZSCHEMELIBDIRS "$1/lib/csv-site"
+}
+
+addEnvHooks "$targetOffset" addChezLibraryPath
diff --git a/pkgs/development/compilers/chez-racket/shared.nix b/pkgs/development/compilers/chez-racket/shared.nix
new file mode 100644
index 0000000000000..f5a9bbc1e5b4b
--- /dev/null
+++ b/pkgs/development/compilers/chez-racket/shared.nix
@@ -0,0 +1,41 @@
+args:
+{ stdenv, lib, fetchFromGitHub, coreutils, darwin
+, ncurses, libiconv, libX11, zlib, lz4
+}:
+
+stdenv.mkDerivation (args // {
+  version = "unstable-2021-12-11";
+
+  src = fetchFromGitHub {
+    owner  = "racket";
+    repo   = "ChezScheme";
+    rev    = "8846c96b08561f05a937d5ecfe4edc96cc99be39";
+    sha256 = "IYJQzT88T8kFahx2BusDOyzz6lQDCbZIfSz9rZoNF7A=";
+    fetchSubmodules = true;
+  };
+
+  prePatch = ''
+    rm -rf zlib/*.c lz4/lib/*.c
+  '';
+
+  postPatch = ''
+    export ZLIB="$(find ${zlib.out}/lib -type f | sort | head -n1)"
+    export LZ4="$(find ${lz4.out}/lib -type f | sort | head -n1)"
+  '';
+
+  nativeBuildInputs = lib.optionals stdenv.isDarwin (with darwin; [ cctools autoSignDarwinBinariesHook ]);
+  buildInputs = [ ncurses libX11 zlib lz4 ]
+    ++ lib.optional stdenv.isDarwin libiconv;
+
+  enableParallelBuilding = true;
+
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-Wno-error=format-truncation";
+
+  meta = {
+    description  = "Fork of Chez Scheme for Racket";
+    homepage     = "https://github.com/racket/ChezScheme";
+    license      = lib.licenses.asl20;
+    maintainers  = with lib.maintainers; [ l-as ];
+    platforms    = lib.platforms.unix;
+  };
+})
diff --git a/pkgs/development/compilers/chez/default.nix b/pkgs/development/compilers/chez/default.nix
index a02256697dafe..82035e4563413 100644
--- a/pkgs/development/compilers/chez/default.nix
+++ b/pkgs/development/compilers/chez/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "chez-scheme";
-  version = "9.5.4";
+  version = "9.5.6";
 
   src = fetchFromGitHub {
     owner  = "cisco";
     repo   = "ChezScheme";
     rev    = "refs/tags/v${version}";
-    sha256 = "065dir19cqpn0d1bk9w49wnwzn6qfrgvcqw8da2fdhkafhfcb1bj";
+    sha256 = "sha256-1C5fEbVIpFXlDQ5wFmYZ2nrDUq9jBmvnku/7f0MH7vc=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/compilers/chicken/5/chicken.nix b/pkgs/development/compilers/chicken/5/chicken.nix
index 136140359f0ab..7793dd4e17dfc 100644
--- a/pkgs/development/compilers/chicken/5/chicken.nix
+++ b/pkgs/development/compilers/chicken/5/chicken.nix
@@ -10,13 +10,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "chicken";
-  version = "5.2.0";
+  version = "5.3.0";
 
   binaryVersion = 11;
 
   src = fetchurl {
     url = "https://code.call-cc.org/releases/${version}/chicken-${version}.tar.gz";
-    sha256 = "1yl0hxm9cirgcp8jgxp6vv29lpswfvaw3zfkh6rsj0vkrv44k4c1";
+    sha256 = "sha256-w62Z2PnhftgQkS75gaw7DC4vRvsOzAM7XDttyhvbDXY=";
   };
 
   setupHook = lib.optional (bootstrap-chicken != null) ./setup-hook.sh;
diff --git a/pkgs/development/compilers/ciao/default.nix b/pkgs/development/compilers/ciao/default.nix
index 4d26678605e7e..a5cdcb82bc05d 100644
--- a/pkgs/development/compilers/ciao/default.nix
+++ b/pkgs/development/compilers/ciao/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21;
     maintainers = with maintainers; [ suhr ];
     platforms = platforms.unix;
+    broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/ciao.x86_64-darwin
   };
 }
diff --git a/pkgs/development/compilers/closure/default.nix b/pkgs/development/compilers/closure/default.nix
index c967af75bf223..3f32be22bd109 100644
--- a/pkgs/development/compilers/closure/default.nix
+++ b/pkgs/development/compilers/closure/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "closure-compiler";
-  version = "20210808";
+  version = "20211107";
 
   src = fetchurl {
     url = "mirror://maven/com/google/javascript/closure-compiler/v${version}/closure-compiler-v${version}.jar";
-    sha256 = "1cvibvm8l4mp64ml6lpsh3w62bgbr42pi3i7ga8ss0prhr0dsk3y";
+    sha256 = "sha256-cz8A8KFlHJ1UCdkWLm+U8KPmFGNiiSXT1u9mvmDsFKY=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/compilers/copper/default.nix b/pkgs/development/compilers/copper/default.nix
index 736004fb580dc..67d31f6f5e10d 100644
--- a/pkgs/development/compilers/copper/default.nix
+++ b/pkgs/development/compilers/copper/default.nix
@@ -4,16 +4,15 @@
 }:
 stdenv.mkDerivation rec {
   pname = "copper";
-  version = "4.4";
+  version = "4.6";
   src = fetchurl {
     url = "https://tibleiz.net/download/copper-${version}-src.tar.gz";
-    sha256 = "1nf0bw143rjhd019yms3k6k531rahl8anidwh6bif0gm7cngfwfw";
+    sha256 = "sha256-tyxAMJp4H50eBz8gjt2O3zj5fq6nOIXKX47wql8aUUg=";
   };
   buildInputs = [
     libffi
   ];
   postPatch = ''
-    substituteInPlace Makefile --replace "-s scripts/" "scripts/"
     patchShebangs .
   '';
   buildPhase = ''
diff --git a/pkgs/development/compilers/dictu/default.nix b/pkgs/development/compilers/dictu/default.nix
index 6f685f0f3e87a..c4fe29077f419 100644
--- a/pkgs/development/compilers/dictu/default.nix
+++ b/pkgs/development/compilers/dictu/default.nix
@@ -80,5 +80,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ luc65r ];
     platforms = platforms.all;
+    broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/dictu.x86_64-darwin
   };
 }
diff --git a/pkgs/development/compilers/dotnet/build-dotnet.nix b/pkgs/development/compilers/dotnet/build-dotnet.nix
index 3080873bb96a5..21cc6c8227cdc 100644
--- a/pkgs/development/compilers/dotnet/build-dotnet.nix
+++ b/pkgs/development/compilers/dotnet/build-dotnet.nix
@@ -4,7 +4,8 @@
 }:
 
 assert builtins.elem type [ "aspnetcore" "runtime" "sdk"];
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchurl
 , libunwind
 , openssl
@@ -12,6 +13,7 @@ assert builtins.elem type [ "aspnetcore" "runtime" "sdk"];
 , libuuid
 , zlib
 , curl
+, lttng-ust_2_12
 }:
 
 let
@@ -40,15 +42,19 @@ let
 in stdenv.mkDerivation rec {
   inherit pname version;
 
-  rpath = lib.makeLibraryPath [
+  # Some of these dependencies are `dlopen()`ed.
+  rpath = lib.makeLibraryPath ([
+    stdenv.cc.cc
+    zlib
+
     curl
     icu
     libunwind
     libuuid
     openssl
-    stdenv.cc.cc
-    zlib
-  ];
+  ] ++ lib.optionals stdenv.isLinux [
+    lttng-ust_2_12
+  ]);
 
   src = fetchurl {
     url = builtins.getAttr type urls;
@@ -73,7 +79,7 @@ in stdenv.mkDerivation rec {
     patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $out/dotnet
     patchelf --set-rpath "${rpath}" $out/dotnet
     find $out -type f -name "*.so" -exec patchelf --set-rpath '$ORIGIN:${rpath}' {} \;
-    find $out -type f -name "apphost" -exec patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" --set-rpath '$ORIGIN:${rpath}' {} \;
+    find $out -type f \( -name "apphost" -or -name "createdump" \) -exec patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" --set-rpath '$ORIGIN:${rpath}' {} \;
   '';
 
   doInstallCheck = true;
diff --git a/pkgs/development/compilers/ecl/16.1.2.nix b/pkgs/development/compilers/ecl/16.1.2.nix
index 2742c2b8c07ea..9af1eccc7935a 100644
--- a/pkgs/development/compilers/ecl/16.1.2.nix
+++ b/pkgs/development/compilers/ecl/16.1.2.nix
@@ -1,38 +1,45 @@
-{ lib, stdenv, fetchurl, fetchpatch
-, libtool, autoconf, automake
-, gmp, mpfr, libffi, makeWrapper
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, libtool
+, autoconf
+, automake
+, gmp
+, mpfr
+, libffi
+, makeWrapper
 , noUnicode ? false
 , gcc
 , threadSupport ? false
-, useBoehmgc ? true, boehmgc
+, useBoehmgc ? true
+, boehmgc
 }:
 
-let
-  s = # Generated upstream information
-  rec {
-    baseName="ecl";
-    version="16.1.2";
-    name="${baseName}-${version}";
-    url="https://common-lisp.net/project/ecl/static/files/release/ecl-${version}.tgz";
-    sha256="16ab8qs3awvdxy8xs8jy82v8r04x4wr70l9l2j45vgag18d2nj1d";
+stdenv.mkDerivation rec {
+  pname = "ecl";
+  version = "16.1.2";
+
+  src = fetchurl {
+    url = "https://common-lisp.net/project/ecl/static/files/release/ecl-${version}.tgz";
+    sha256 = "sha256-LUgrGgpPvV2IFDRRcDInnYCMtkBeIt2R721zNTRGS5k=";
   };
+
   buildInputs = [
-    libtool autoconf automake makeWrapper
+    libtool
+    autoconf
+    automake
+    makeWrapper
   ];
   propagatedBuildInputs = [
-    libffi gmp mpfr gcc
+    libffi
+    gmp
+    mpfr
+    gcc
   ] ++ lib.optionals useBoehmgc [
     # replaces ecl's own gc which other packages can depend on, thus propagated
     boehmgc
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs propagatedBuildInputs;
-
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
 
   configureFlags = [
     (if threadSupport then "--enable-threads" else "--disable-threads")
@@ -40,8 +47,8 @@ stdenv.mkDerivation {
     "--with-gmp-libdir=${lib.getLib gmp}/lib"
     # -incdir, -libdir doesn't seem to be supported for libffi
     "--with-libffi-prefix=${lib.getDev libffi}"
-    ] ++ lib.optional (! noUnicode) "--enable-unicode"
-    ;
+  ] ++ lib.optional (! noUnicode) "--enable-unicode"
+  ;
 
   patches = [
     (fetchpatch {
@@ -80,17 +87,16 @@ stdenv.mkDerivation {
   # create the variables with suffixSalt (which seems to be necessary for
   # NIX_CFLAGS_COMPILE even).
   + lib.optionalString useBoehmgc ''
-      --prefix NIX_CFLAGS_COMPILE_${gcc.suffixSalt} ' ' "-I${lib.getDev boehmgc}/include" \
-      --prefix NIX_LDFLAGS_BEFORE_${gcc.bintools.suffixSalt} ' ' "-L${lib.getLib boehmgc}/lib" \
+    --prefix NIX_CFLAGS_COMPILE_${gcc.suffixSalt} ' ' "-I${lib.getDev boehmgc}/include" \
+    --prefix NIX_LDFLAGS_BEFORE_${gcc.bintools.suffixSalt} ' ' "-L${lib.getLib boehmgc}/lib" \
   '' + ''
-      --prefix NIX_LDFLAGS_BEFORE_${gcc.bintools.suffixSalt} ' ' "-L${lib.getLib libffi}/lib"
+    --prefix NIX_LDFLAGS_BEFORE_${gcc.bintools.suffixSalt} ' ' "-L${lib.getLib libffi}/lib"
   '';
 
   meta = with lib; {
-    inherit (s) version;
     description = "Lisp implementation aiming to be small, fast and easy to embed";
-    license = licenses.mit ;
-    maintainers = [ maintainers.raskin ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/compilers/ecl/default.nix b/pkgs/development/compilers/ecl/default.nix
index 5896e9488268b..c442364d198e4 100644
--- a/pkgs/development/compilers/ecl/default.nix
+++ b/pkgs/development/compilers/ecl/default.nix
@@ -1,39 +1,48 @@
-{lib, stdenv, fetchurl, fetchpatch
-, libtool, autoconf, automake
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, libtool
+, autoconf
+, automake
 , texinfo
-, gmp, mpfr, libffi, makeWrapper
+, gmp
+, mpfr
+, libffi
+, makeWrapper
 , noUnicode ? false
 , gcc
 , threadSupport ? true
-, useBoehmgc ? false, boehmgc
+, useBoehmgc ? false
+, boehmgc
 }:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="ecl";
-    version="21.2.1";
-    name="${baseName}-${version}";
-    url="https://common-lisp.net/project/ecl/static/files/release/${name}.tgz";
-    sha256="000906nnq25177bgsfndiw3iqqgrjc9spk10hzk653sbz3f7anmi";
+
+stdenv.mkDerivation rec {
+  pname = "ecl";
+  version = "21.2.1";
+
+  src = fetchurl {
+    url = "https://common-lisp.net/project/ecl/static/files/release/ecl-${version}.tgz";
+    sha256 = "sha256-sVp13PhLj2LmhyDMqxOT+WEcB4/NOv3WOaEIbK0BCQA=";
   };
+
   nativeBuildInputs = [
-    libtool autoconf automake texinfo makeWrapper
+    libtool
+    autoconf
+    automake
+    texinfo
+    makeWrapper
   ];
   propagatedBuildInputs = [
-    libffi gmp mpfr gcc
+    libffi
+    gmp
+    mpfr
+    gcc
     # replaces ecl's own gc which other packages can depend on, thus propagated
   ] ++ lib.optionals useBoehmgc [
     # replaces ecl's own gc which other packages can depend on, thus propagated
     boehmgc
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit nativeBuildInputs propagatedBuildInputs;
-
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
 
   patches = [
     # https://gitlab.com/embeddable-common-lisp/ecl/-/merge_requests/1
@@ -69,9 +78,9 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Lisp implementation aiming to be small, fast and easy to embed";
     homepage = "https://common-lisp.net/project/ecl/";
-    license = licenses.mit ;
-    maintainers = [ maintainers.raskin ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
-    changelog = "https://gitlab.com/embeddable-common-lisp/ecl/-/raw/${s.version}/CHANGELOG";
+    changelog = "https://gitlab.com/embeddable-common-lisp/ecl/-/raw/${version}/CHANGELOG";
   };
 }
diff --git a/pkgs/development/compilers/ecl/default.upstream b/pkgs/development/compilers/ecl/default.upstream
deleted file mode 100644
index eeb82cbfcab16..0000000000000
--- a/pkgs/development/compilers/ecl/default.upstream
+++ /dev/null
@@ -1,2 +0,0 @@
-url https://common-lisp.net/project/ecl/
-version_link '[.]tgz$'
diff --git a/pkgs/development/compilers/edk2/default.nix b/pkgs/development/compilers/edk2/default.nix
index aaf59ca1ef57c..e60d647f6d388 100644
--- a/pkgs/development/compilers/edk2/default.nix
+++ b/pkgs/development/compilers/edk2/default.nix
@@ -1,15 +1,12 @@
-{
-  stdenv,
-  clangStdenv,
-  fetchgit,
-  fetchpatch,
-  libuuid,
-  python3,
-  bc,
-  clang_9,
-  llvmPackages_9,
-  overrideCC,
-  lib,
+{ stdenv
+, clangStdenv
+, fetchFromGitHub
+, fetchpatch
+, libuuid
+, python3
+, bc
+, llvmPackages_9
+, lib
 }:
 
 let
@@ -25,7 +22,7 @@ else
   throw "Unsupported architecture";
 
 buildStdenv = if stdenv.isDarwin then
-  overrideCC clangStdenv [ clang_9 llvmPackages_9.llvm llvmPackages_9.lld ]
+  llvmPackages_9.stdenv
 else
   stdenv;
 
@@ -39,12 +36,26 @@ edk2 = buildStdenv.mkDerivation {
   version = "202108";
 
   # submodules
-  src = fetchgit {
-    url = "https://github.com/tianocore/edk2";
+  src = fetchFromGitHub {
+    owner = "tianocore";
+    repo = "edk2";
     rev = "edk2-stable${edk2.version}";
+    fetchSubmodules = true;
     sha256 = "1ps244f7y43afxxw6z95xscy24f9mpp8g0mfn90rd4229f193ba2";
   };
 
+  patches = [
+    # Pull upstream fix for gcc-11 build.
+    (fetchpatch {
+      name = "gcc-11-vla.patch";
+      url = "https://github.com/google/brotli/commit/0a3944c8c99b8d10cc4325f721b7c273d2b41f7b.patch";
+      sha256 = "10c6ibnxh4f8lrh9i498nywgva32jxy2c1zzvr9mcqgblf9d19pj";
+      # Apply submodule patch to subdirectory: "a/" -> "BaseTools/Source/C/BrotliCompress/brotli/"
+      stripLen = 1;
+      extraPrefix = "BaseTools/Source/C/BrotliCompress/brotli/";
+    })
+  ];
+
   buildInputs = [ libuuid pythonEnv ];
 
   makeFlags = [ "-C BaseTools" ]
diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix
index b82f14d9ef9f9..11b5f58a12d8a 100644
--- a/pkgs/development/compilers/elm/default.nix
+++ b/pkgs/development/compilers/elm/default.nix
@@ -1,10 +1,13 @@
 { lib, stdenv, pkgs
-, haskell, haskellPackages, nodejs
+, haskell, haskellPackages, nodejs-14_x
 , fetchurl, fetchpatch, makeWrapper, writeScriptBin
   # Rust dependecies
-, curl, rustPlatform, openssl, pkg-config, Security
+, curl, rustPlatform, openssl, pkg-config, Security, darwin
 }:
 let
+  # To controll nodejs version we pass down
+  nodejs = nodejs-14_x;
+
   fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; };
 
   hsPkgs = haskellPackages.override {
@@ -111,6 +114,17 @@ let
         maintainers = [ maintainers.turbomack ];
       };
     };
+
+    elm-test-rs = import ./packages/elm-test-rs.nix {
+      inherit lib rustPlatform fetchurl openssl stdenv Security darwin;
+    } // {
+      meta = with lib; {
+        description = "Fast and portable executable to run your Elm tests";
+        homepage = "https://github.com/mpizenberg/elm-test-rs";
+        license = licenses.bsd3;
+        maintainers = [ maintainers.jpagex ];
+      };
+    };
   };
 
   elmNodePackages = with elmLib;
@@ -204,7 +218,7 @@ let
         };
       };
 
-      inherit (nodePkgs) elm-doc-preview elm-live elm-upgrade elm-xref elm-analyse;
+      inherit (nodePkgs) elm-doc-preview elm-live elm-upgrade elm-xref elm-analyse elm-git-install;
     };
 
 in hsPkgs.elmPkgs // elmNodePackages // elmRustPackages // {
diff --git a/pkgs/development/compilers/elm/packages/elm-test-rs.nix b/pkgs/development/compilers/elm/packages/elm-test-rs.nix
new file mode 100644
index 0000000000000..a482809ab50d0
--- /dev/null
+++ b/pkgs/development/compilers/elm/packages/elm-test-rs.nix
@@ -0,0 +1,18 @@
+{ lib, rustPlatform, fetchurl, openssl, stdenv, Security, darwin }:
+rustPlatform.buildRustPackage rec {
+  pname = "elm-test-rs";
+  version = "2.0";
+
+  src = fetchurl {
+    url = "https://github.com/mpizenberg/elm-test-rs/archive/v${version}.tar.gz";
+    sha256 = "sha256:1manr42w613r9vyji7pxx5gb08jcgkdxv29qqylrqlwxa8d5dcid";
+  };
+
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security darwin.apple_sdk.frameworks.CoreServices ];
+
+  cargoSha256 = "sha256:1dpdlzv96kpc25yf5jgsz9qldghyw35x382qpxhkadkn5dryzjvd";
+  verifyCargoDeps = true;
+
+  # Tests perform networking and therefore can't work in sandbox
+  doCheck = false;
+}
diff --git a/pkgs/development/compilers/elm/packages/generate-node-packages.sh b/pkgs/development/compilers/elm/packages/generate-node-packages.sh
index 0ffa56eae90a6..49e697e43e88a 100755
--- a/pkgs/development/compilers/elm/packages/generate-node-packages.sh
+++ b/pkgs/development/compilers/elm/packages/generate-node-packages.sh
@@ -4,9 +4,7 @@ ROOT="$(realpath "$(dirname -- "$(readlink -f -- "${BASH_SOURCE[0]}")")"/../../.
 
 set -eu -o pipefail
 
-rm -f node-env.nix
 $(nix-build $ROOT -A nodePackages.node2nix --no-out-link)/bin/node2nix \
-    --nodejs-12 \
     -i node-packages.json \
     -o node-packages.nix \
     -c node-composition.nix \
diff --git a/pkgs/development/compilers/elm/packages/node-packages.json b/pkgs/development/compilers/elm/packages/node-packages.json
index b5c7216645b54..4adbebb53fddc 100644
--- a/pkgs/development/compilers/elm/packages/node-packages.json
+++ b/pkgs/development/compilers/elm/packages/node-packages.json
@@ -10,5 +10,6 @@
   "elm-xref",
   "create-elm-app",
   "elm-optimize-level-2",
-  "elm-review"
+  "elm-review",
+  "elm-git-install"
 ]
diff --git a/pkgs/development/compilers/elm/packages/node-packages.nix b/pkgs/development/compilers/elm/packages/node-packages.nix
index 6bc92789e0706..083ab8530d879 100644
--- a/pkgs/development/compilers/elm/packages/node-packages.nix
+++ b/pkgs/development/compilers/elm/packages/node-packages.nix
@@ -22,22 +22,22 @@ let
         sha512 = "OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==";
       };
     };
-    "@babel/code-frame-7.15.8" = {
+    "@babel/code-frame-7.16.0" = {
       name = "_at_babel_slash_code-frame";
       packageName = "@babel/code-frame";
-      version = "7.15.8";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.15.8.tgz";
-        sha512 = "2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==";
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz";
+        sha512 = "IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==";
       };
     };
-    "@babel/compat-data-7.15.0" = {
+    "@babel/compat-data-7.16.4" = {
       name = "_at_babel_slash_compat-data";
       packageName = "@babel/compat-data";
-      version = "7.15.0";
+      version = "7.16.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz";
-        sha512 = "0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==";
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz";
+        sha512 = "1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==";
       };
     };
     "@babel/core-7.12.10" = {
@@ -49,184 +49,193 @@ let
         sha512 = "eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==";
       };
     };
-    "@babel/generator-7.15.8" = {
+    "@babel/generator-7.16.5" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.15.8";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.15.8.tgz";
-        sha512 = "ECmAKstXbp1cvpTTZciZCgfOt6iN64lR0d+euv3UZisU5awfRawOvg07Utn/qBGuH4bRIEZKrA/4LzZyXhZr8g==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.16.5.tgz";
+        sha512 = "kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA==";
       };
     };
-    "@babel/helper-annotate-as-pure-7.15.4" = {
+    "@babel/helper-annotate-as-pure-7.16.0" = {
       name = "_at_babel_slash_helper-annotate-as-pure";
       packageName = "@babel/helper-annotate-as-pure";
-      version = "7.15.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz";
-        sha512 = "QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA==";
+        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz";
+        sha512 = "ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==";
       };
     };
-    "@babel/helper-builder-binary-assignment-operator-visitor-7.15.4" = {
+    "@babel/helper-builder-binary-assignment-operator-visitor-7.16.5" = {
       name = "_at_babel_slash_helper-builder-binary-assignment-operator-visitor";
       packageName = "@babel/helper-builder-binary-assignment-operator-visitor";
-      version = "7.15.4";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz";
-        sha512 = "P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q==";
+        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.5.tgz";
+        sha512 = "3JEA9G5dmmnIWdzaT9d0NmFRgYnWUThLsDaL7982H0XqqWr56lRrsmwheXFMjR+TMl7QMBb6mzy9kvgr1lRLUA==";
       };
     };
-    "@babel/helper-compilation-targets-7.15.4" = {
+    "@babel/helper-compilation-targets-7.16.3" = {
       name = "_at_babel_slash_helper-compilation-targets";
       packageName = "@babel/helper-compilation-targets";
-      version = "7.15.4";
+      version = "7.16.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz";
-        sha512 = "rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==";
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz";
+        sha512 = "vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==";
       };
     };
-    "@babel/helper-create-class-features-plugin-7.15.4" = {
+    "@babel/helper-create-class-features-plugin-7.16.5" = {
       name = "_at_babel_slash_helper-create-class-features-plugin";
       packageName = "@babel/helper-create-class-features-plugin";
-      version = "7.15.4";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz";
-        sha512 = "7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw==";
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.5.tgz";
+        sha512 = "NEohnYA7mkB8L5JhU7BLwcBdU3j83IziR9aseMueWGeAjblbul3zzb8UvJ3a1zuBiqCMObzCJHFqKIQE6hTVmg==";
       };
     };
-    "@babel/helper-create-regexp-features-plugin-7.14.5" = {
+    "@babel/helper-create-regexp-features-plugin-7.16.0" = {
       name = "_at_babel_slash_helper-create-regexp-features-plugin";
       packageName = "@babel/helper-create-regexp-features-plugin";
-      version = "7.14.5";
+      version = "7.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz";
+        sha512 = "3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA==";
+      };
+    };
+    "@babel/helper-environment-visitor-7.16.5" = {
+      name = "_at_babel_slash_helper-environment-visitor";
+      packageName = "@babel/helper-environment-visitor";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz";
-        sha512 = "TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==";
+        url = "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz";
+        sha512 = "ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg==";
       };
     };
-    "@babel/helper-explode-assignable-expression-7.15.4" = {
+    "@babel/helper-explode-assignable-expression-7.16.0" = {
       name = "_at_babel_slash_helper-explode-assignable-expression";
       packageName = "@babel/helper-explode-assignable-expression";
-      version = "7.15.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz";
-        sha512 = "J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g==";
+        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz";
+        sha512 = "Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ==";
       };
     };
-    "@babel/helper-function-name-7.15.4" = {
+    "@babel/helper-function-name-7.16.0" = {
       name = "_at_babel_slash_helper-function-name";
       packageName = "@babel/helper-function-name";
-      version = "7.15.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz";
-        sha512 = "Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==";
+        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz";
+        sha512 = "BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==";
       };
     };
-    "@babel/helper-get-function-arity-7.15.4" = {
+    "@babel/helper-get-function-arity-7.16.0" = {
       name = "_at_babel_slash_helper-get-function-arity";
       packageName = "@babel/helper-get-function-arity";
-      version = "7.15.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz";
-        sha512 = "1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==";
+        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz";
+        sha512 = "ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==";
       };
     };
-    "@babel/helper-hoist-variables-7.15.4" = {
+    "@babel/helper-hoist-variables-7.16.0" = {
       name = "_at_babel_slash_helper-hoist-variables";
       packageName = "@babel/helper-hoist-variables";
-      version = "7.15.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz";
-        sha512 = "VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==";
+        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz";
+        sha512 = "1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==";
       };
     };
-    "@babel/helper-member-expression-to-functions-7.15.4" = {
+    "@babel/helper-member-expression-to-functions-7.16.5" = {
       name = "_at_babel_slash_helper-member-expression-to-functions";
       packageName = "@babel/helper-member-expression-to-functions";
-      version = "7.15.4";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz";
-        sha512 = "cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==";
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.5.tgz";
+        sha512 = "7fecSXq7ZrLE+TWshbGT+HyCLkxloWNhTbU2QM1NTI/tDqyf0oZiMcEfYtDuUDCo528EOlt39G1rftea4bRZIw==";
       };
     };
-    "@babel/helper-module-imports-7.15.4" = {
+    "@babel/helper-module-imports-7.16.0" = {
       name = "_at_babel_slash_helper-module-imports";
       packageName = "@babel/helper-module-imports";
-      version = "7.15.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz";
-        sha512 = "jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==";
+        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz";
+        sha512 = "kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==";
       };
     };
-    "@babel/helper-module-transforms-7.15.8" = {
+    "@babel/helper-module-transforms-7.16.5" = {
       name = "_at_babel_slash_helper-module-transforms";
       packageName = "@babel/helper-module-transforms";
-      version = "7.15.8";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.8.tgz";
-        sha512 = "DfAfA6PfpG8t4S6npwzLvTUpp0sS7JrcuaMiy1Y5645laRJIp/LiLGIBbQKaXSInK8tiGNI7FL7L8UvB8gdUZg==";
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz";
+        sha512 = "CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ==";
       };
     };
-    "@babel/helper-optimise-call-expression-7.15.4" = {
+    "@babel/helper-optimise-call-expression-7.16.0" = {
       name = "_at_babel_slash_helper-optimise-call-expression";
       packageName = "@babel/helper-optimise-call-expression";
-      version = "7.15.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz";
-        sha512 = "E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==";
+        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz";
+        sha512 = "SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==";
       };
     };
-    "@babel/helper-plugin-utils-7.14.5" = {
+    "@babel/helper-plugin-utils-7.16.5" = {
       name = "_at_babel_slash_helper-plugin-utils";
       packageName = "@babel/helper-plugin-utils";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz";
-        sha512 = "/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==";
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz";
+        sha512 = "59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ==";
       };
     };
-    "@babel/helper-remap-async-to-generator-7.15.4" = {
+    "@babel/helper-remap-async-to-generator-7.16.5" = {
       name = "_at_babel_slash_helper-remap-async-to-generator";
       packageName = "@babel/helper-remap-async-to-generator";
-      version = "7.15.4";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz";
-        sha512 = "v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ==";
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.5.tgz";
+        sha512 = "X+aAJldyxrOmN9v3FKp+Hu1NO69VWgYgDGq6YDykwRPzxs5f2N+X988CBXS7EQahDU+Vpet5QYMqLk+nsp+Qxw==";
       };
     };
-    "@babel/helper-replace-supers-7.15.4" = {
+    "@babel/helper-replace-supers-7.16.5" = {
       name = "_at_babel_slash_helper-replace-supers";
       packageName = "@babel/helper-replace-supers";
-      version = "7.15.4";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz";
-        sha512 = "/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==";
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.5.tgz";
+        sha512 = "ao3seGVa/FZCMCCNDuBcqnBFSbdr8N2EW35mzojx3TwfIbdPmNK+JV6+2d5bR0Z71W5ocLnQp9en/cTF7pBJiQ==";
       };
     };
-    "@babel/helper-simple-access-7.15.4" = {
+    "@babel/helper-simple-access-7.16.0" = {
       name = "_at_babel_slash_helper-simple-access";
       packageName = "@babel/helper-simple-access";
-      version = "7.15.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz";
-        sha512 = "UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==";
+        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz";
+        sha512 = "o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==";
       };
     };
-    "@babel/helper-skip-transparent-expression-wrappers-7.15.4" = {
+    "@babel/helper-skip-transparent-expression-wrappers-7.16.0" = {
       name = "_at_babel_slash_helper-skip-transparent-expression-wrappers";
       packageName = "@babel/helper-skip-transparent-expression-wrappers";
-      version = "7.15.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz";
-        sha512 = "BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A==";
+        url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz";
+        sha512 = "+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==";
       };
     };
-    "@babel/helper-split-export-declaration-7.15.4" = {
+    "@babel/helper-split-export-declaration-7.16.0" = {
       name = "_at_babel_slash_helper-split-export-declaration";
       packageName = "@babel/helper-split-export-declaration";
-      version = "7.15.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz";
-        sha512 = "HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==";
+        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz";
+        sha512 = "0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==";
       };
     };
     "@babel/helper-validator-identifier-7.15.7" = {
@@ -247,157 +256,157 @@ let
         sha512 = "OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==";
       };
     };
-    "@babel/helper-wrap-function-7.15.4" = {
+    "@babel/helper-wrap-function-7.16.5" = {
       name = "_at_babel_slash_helper-wrap-function";
       packageName = "@babel/helper-wrap-function";
-      version = "7.15.4";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz";
-        sha512 = "Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw==";
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.5.tgz";
+        sha512 = "2J2pmLBqUqVdJw78U0KPNdeE2qeuIyKoG4mKV7wAq3mc4jJG282UgjZw4ZYDnqiWQuS3Y3IYdF/AQ6CpyBV3VA==";
       };
     };
-    "@babel/helpers-7.15.4" = {
+    "@babel/helpers-7.16.5" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.15.4";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz";
-        sha512 = "V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.5.tgz";
+        sha512 = "TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw==";
       };
     };
-    "@babel/highlight-7.14.5" = {
+    "@babel/highlight-7.16.0" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.14.5";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz";
-        sha512 = "qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz";
+        sha512 = "t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==";
       };
     };
-    "@babel/parser-7.15.8" = {
+    "@babel/parser-7.16.6" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.15.8";
+      version = "7.16.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.15.8.tgz";
-        sha512 = "BRYa3wcQnjS/nqI8Ac94pYYpJfojHVvVXJ97+IDCImX4Jc8W8Xv1+47enbruk+q1etOpsQNwnfFcNGw+gtPGxA==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.16.6.tgz";
+        sha512 = "Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ==";
       };
     };
-    "@babel/plugin-proposal-async-generator-functions-7.15.8" = {
+    "@babel/plugin-proposal-async-generator-functions-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-async-generator-functions";
       packageName = "@babel/plugin-proposal-async-generator-functions";
-      version = "7.15.8";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.8.tgz";
-        sha512 = "2Z5F2R2ibINTc63mY7FLqGfEbmofrHU9FitJW1Q7aPaKFhiPvSq6QEt/BoWN5oME3GVyjcRuNNSRbb9LC0CSWA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.5.tgz";
+        sha512 = "C/FX+3HNLV6sz7AqbTQqEo1L9/kfrKjxcVtgyBCmvIgOjvuBVUWooDoi7trsLxOzCEo5FccjRvKHkfDsJFZlfA==";
       };
     };
-    "@babel/plugin-proposal-class-properties-7.14.5" = {
+    "@babel/plugin-proposal-class-properties-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-class-properties";
       packageName = "@babel/plugin-proposal-class-properties";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz";
-        sha512 = "q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.5.tgz";
+        sha512 = "pJD3HjgRv83s5dv1sTnDbZOaTjghKEz8KUn1Kbh2eAIRhGuyQ1XSeI4xVXU3UlIEVA3DAyIdxqT1eRn7Wcn55A==";
       };
     };
-    "@babel/plugin-proposal-dynamic-import-7.14.5" = {
+    "@babel/plugin-proposal-dynamic-import-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-dynamic-import";
       packageName = "@babel/plugin-proposal-dynamic-import";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz";
-        sha512 = "ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.5.tgz";
+        sha512 = "P05/SJZTTvHz79LNYTF8ff5xXge0kk5sIIWAypcWgX4BTRUgyHc8wRxJ/Hk+mU0KXldgOOslKaeqnhthcDJCJQ==";
       };
     };
-    "@babel/plugin-proposal-export-namespace-from-7.14.5" = {
+    "@babel/plugin-proposal-export-namespace-from-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-export-namespace-from";
       packageName = "@babel/plugin-proposal-export-namespace-from";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz";
-        sha512 = "g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.5.tgz";
+        sha512 = "i+sltzEShH1vsVydvNaTRsgvq2vZsfyrd7K7vPLUU/KgS0D5yZMe6uipM0+izminnkKrEfdUnz7CxMRb6oHZWw==";
       };
     };
-    "@babel/plugin-proposal-json-strings-7.14.5" = {
+    "@babel/plugin-proposal-json-strings-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-json-strings";
       packageName = "@babel/plugin-proposal-json-strings";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz";
-        sha512 = "NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.5.tgz";
+        sha512 = "QQJueTFa0y9E4qHANqIvMsuxM/qcLQmKttBACtPCQzGUEizsXDACGonlPiSwynHfOa3vNw0FPMVvQzbuXwh4SQ==";
       };
     };
-    "@babel/plugin-proposal-logical-assignment-operators-7.14.5" = {
+    "@babel/plugin-proposal-logical-assignment-operators-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-logical-assignment-operators";
       packageName = "@babel/plugin-proposal-logical-assignment-operators";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz";
-        sha512 = "YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.5.tgz";
+        sha512 = "xqibl7ISO2vjuQM+MzR3rkd0zfNWltk7n9QhaD8ghMmMceVguYrNDt7MikRyj4J4v3QehpnrU8RYLnC7z/gZLA==";
       };
     };
-    "@babel/plugin-proposal-nullish-coalescing-operator-7.14.5" = {
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
       packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz";
-        sha512 = "gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.5.tgz";
+        sha512 = "YwMsTp/oOviSBhrjwi0vzCUycseCYwoXnLiXIL3YNjHSMBHicGTz7GjVU/IGgz4DtOEXBdCNG72pvCX22ehfqg==";
       };
     };
-    "@babel/plugin-proposal-numeric-separator-7.14.5" = {
+    "@babel/plugin-proposal-numeric-separator-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-numeric-separator";
       packageName = "@babel/plugin-proposal-numeric-separator";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz";
-        sha512 = "yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.5.tgz";
+        sha512 = "DvB9l/TcsCRvsIV9v4jxR/jVP45cslTVC0PMVHvaJhhNuhn2Y1SOhCSFlPK777qLB5wb8rVDaNoqMTyOqtY5Iw==";
       };
     };
-    "@babel/plugin-proposal-object-rest-spread-7.15.6" = {
+    "@babel/plugin-proposal-object-rest-spread-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-object-rest-spread";
       packageName = "@babel/plugin-proposal-object-rest-spread";
-      version = "7.15.6";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.15.6.tgz";
-        sha512 = "qtOHo7A1Vt+O23qEAX+GdBpqaIuD3i9VRrWgCJeq7WO6H2d14EK3q11urj5Te2MAeK97nMiIdRpwd/ST4JFbNg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.5.tgz";
+        sha512 = "UEd6KpChoyPhCoE840KRHOlGhEZFutdPDMGj+0I56yuTTOaT51GzmnEl/0uT41fB/vD2nT+Pci2KjezyE3HmUw==";
       };
     };
-    "@babel/plugin-proposal-optional-catch-binding-7.14.5" = {
+    "@babel/plugin-proposal-optional-catch-binding-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
       packageName = "@babel/plugin-proposal-optional-catch-binding";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz";
-        sha512 = "3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.5.tgz";
+        sha512 = "ihCMxY1Iljmx4bWy/PIMJGXN4NS4oUj1MKynwO07kiKms23pNvIn1DMB92DNB2R0EA882sw0VXIelYGdtF7xEQ==";
       };
     };
-    "@babel/plugin-proposal-optional-chaining-7.14.5" = {
+    "@babel/plugin-proposal-optional-chaining-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-optional-chaining";
       packageName = "@babel/plugin-proposal-optional-chaining";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz";
-        sha512 = "ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.5.tgz";
+        sha512 = "kzdHgnaXRonttiTfKYnSVafbWngPPr2qKw9BWYBESl91W54e+9R5pP70LtWxV56g0f05f/SQrwHYkfvbwcdQ/A==";
       };
     };
-    "@babel/plugin-proposal-private-methods-7.14.5" = {
+    "@babel/plugin-proposal-private-methods-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-private-methods";
       packageName = "@babel/plugin-proposal-private-methods";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz";
-        sha512 = "838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.5.tgz";
+        sha512 = "+yFMO4BGT3sgzXo+lrq7orX5mAZt57DwUK6seqII6AcJnJOIhBJ8pzKH47/ql/d426uQ7YhN8DpUFirQzqYSUA==";
       };
     };
-    "@babel/plugin-proposal-unicode-property-regex-7.14.5" = {
+    "@babel/plugin-proposal-unicode-property-regex-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
       packageName = "@babel/plugin-proposal-unicode-property-regex";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz";
-        sha512 = "6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.5.tgz";
+        sha512 = "s5sKtlKQyFSatt781HQwv1hoM5BQ9qRH30r+dK56OLDsHmV74mzwJNX7R1yMuE7VZKG5O6q/gmOGSAO6ikTudg==";
       };
     };
     "@babel/plugin-syntax-async-generators-7.8.4" = {
@@ -508,229 +517,229 @@ let
         sha512 = "hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==";
       };
     };
-    "@babel/plugin-transform-arrow-functions-7.14.5" = {
+    "@babel/plugin-transform-arrow-functions-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-arrow-functions";
       packageName = "@babel/plugin-transform-arrow-functions";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz";
-        sha512 = "KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.5.tgz";
+        sha512 = "8bTHiiZyMOyfZFULjsCnYOWG059FVMes0iljEHSfARhNgFfpsqE92OrCffv3veSw9rwMkYcFe9bj0ZoXU2IGtQ==";
       };
     };
-    "@babel/plugin-transform-async-to-generator-7.14.5" = {
+    "@babel/plugin-transform-async-to-generator-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-async-to-generator";
       packageName = "@babel/plugin-transform-async-to-generator";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz";
-        sha512 = "szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.5.tgz";
+        sha512 = "TMXgfioJnkXU+XRoj7P2ED7rUm5jbnDWwlCuFVTpQboMfbSya5WrmubNBAMlk7KXvywpo8rd8WuYZkis1o2H8w==";
       };
     };
-    "@babel/plugin-transform-block-scoped-functions-7.14.5" = {
+    "@babel/plugin-transform-block-scoped-functions-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-block-scoped-functions";
       packageName = "@babel/plugin-transform-block-scoped-functions";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz";
-        sha512 = "dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.5.tgz";
+        sha512 = "BxmIyKLjUGksJ99+hJyL/HIxLIGnLKtw772zYDER7UuycDZ+Xvzs98ZQw6NGgM2ss4/hlFAaGiZmMNKvValEjw==";
       };
     };
-    "@babel/plugin-transform-block-scoping-7.15.3" = {
+    "@babel/plugin-transform-block-scoping-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-block-scoping";
       packageName = "@babel/plugin-transform-block-scoping";
-      version = "7.15.3";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz";
-        sha512 = "nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.5.tgz";
+        sha512 = "JxjSPNZSiOtmxjX7PBRBeRJTUKTyJ607YUYeT0QJCNdsedOe+/rXITjP08eG8xUpsLfPirgzdCFN+h0w6RI+pQ==";
       };
     };
-    "@babel/plugin-transform-classes-7.15.4" = {
+    "@babel/plugin-transform-classes-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-classes";
       packageName = "@babel/plugin-transform-classes";
-      version = "7.15.4";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz";
-        sha512 = "Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.5.tgz";
+        sha512 = "DzJ1vYf/7TaCYy57J3SJ9rV+JEuvmlnvvyvYKFbk5u46oQbBvuB9/0w+YsVsxkOv8zVWKpDmUoj4T5ILHoXevA==";
       };
     };
-    "@babel/plugin-transform-computed-properties-7.14.5" = {
+    "@babel/plugin-transform-computed-properties-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-computed-properties";
       packageName = "@babel/plugin-transform-computed-properties";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz";
-        sha512 = "pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.5.tgz";
+        sha512 = "n1+O7xtU5lSLraRzX88CNcpl7vtGdPakKzww74bVwpAIRgz9JVLJJpOLb0uYqcOaXVM0TL6X0RVeIJGD2CnCkg==";
       };
     };
-    "@babel/plugin-transform-destructuring-7.14.7" = {
+    "@babel/plugin-transform-destructuring-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-destructuring";
       packageName = "@babel/plugin-transform-destructuring";
-      version = "7.14.7";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz";
-        sha512 = "0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.5.tgz";
+        sha512 = "GuRVAsjq+c9YPK6NeTkRLWyQskDC099XkBSVO+6QzbnOnH2d/4mBVXYStaPrZD3dFRfg00I6BFJ9Atsjfs8mlg==";
       };
     };
-    "@babel/plugin-transform-dotall-regex-7.14.5" = {
+    "@babel/plugin-transform-dotall-regex-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-dotall-regex";
       packageName = "@babel/plugin-transform-dotall-regex";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz";
-        sha512 = "loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.5.tgz";
+        sha512 = "iQiEMt8Q4/5aRGHpGVK2Zc7a6mx7qEAO7qehgSug3SDImnuMzgmm/wtJALXaz25zUj1PmnNHtShjFgk4PDx4nw==";
       };
     };
-    "@babel/plugin-transform-duplicate-keys-7.14.5" = {
+    "@babel/plugin-transform-duplicate-keys-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-duplicate-keys";
       packageName = "@babel/plugin-transform-duplicate-keys";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz";
-        sha512 = "iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.5.tgz";
+        sha512 = "81tijpDg2a6I1Yhj4aWY1l3O1J4Cg/Pd7LfvuaH2VVInAkXtzibz9+zSPdUM1WvuUi128ksstAP0hM5w48vQgg==";
       };
     };
-    "@babel/plugin-transform-exponentiation-operator-7.14.5" = {
+    "@babel/plugin-transform-exponentiation-operator-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-exponentiation-operator";
       packageName = "@babel/plugin-transform-exponentiation-operator";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz";
-        sha512 = "jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.5.tgz";
+        sha512 = "12rba2HwemQPa7BLIKCzm1pT2/RuQHtSFHdNl41cFiC6oi4tcrp7gjB07pxQvFpcADojQywSjblQth6gJyE6CA==";
       };
     };
-    "@babel/plugin-transform-for-of-7.15.4" = {
+    "@babel/plugin-transform-for-of-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-for-of";
       packageName = "@babel/plugin-transform-for-of";
-      version = "7.15.4";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz";
-        sha512 = "DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.5.tgz";
+        sha512 = "+DpCAJFPAvViR17PIMi9x2AE34dll5wNlXO43wagAX2YcRGgEVHCNFC4azG85b4YyyFarvkc/iD5NPrz4Oneqw==";
       };
     };
-    "@babel/plugin-transform-function-name-7.14.5" = {
+    "@babel/plugin-transform-function-name-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-function-name";
       packageName = "@babel/plugin-transform-function-name";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz";
-        sha512 = "vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.5.tgz";
+        sha512 = "Fuec/KPSpVLbGo6z1RPw4EE1X+z9gZk1uQmnYy7v4xr4TO9p41v1AoUuXEtyqAI7H+xNJYSICzRqZBhDEkd3kQ==";
       };
     };
-    "@babel/plugin-transform-literals-7.14.5" = {
+    "@babel/plugin-transform-literals-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-literals";
       packageName = "@babel/plugin-transform-literals";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz";
-        sha512 = "ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.5.tgz";
+        sha512 = "B1j9C/IfvshnPcklsc93AVLTrNVa69iSqztylZH6qnmiAsDDOmmjEYqOm3Ts2lGSgTSywnBNiqC949VdD0/gfw==";
       };
     };
-    "@babel/plugin-transform-member-expression-literals-7.14.5" = {
+    "@babel/plugin-transform-member-expression-literals-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-member-expression-literals";
       packageName = "@babel/plugin-transform-member-expression-literals";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz";
-        sha512 = "WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.5.tgz";
+        sha512 = "d57i3vPHWgIde/9Y8W/xSFUndhvhZN5Wu2TjRrN1MVz5KzdUihKnfDVlfP1U7mS5DNj/WHHhaE4/tTi4hIyHwQ==";
       };
     };
-    "@babel/plugin-transform-modules-amd-7.14.5" = {
+    "@babel/plugin-transform-modules-amd-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-modules-amd";
       packageName = "@babel/plugin-transform-modules-amd";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz";
-        sha512 = "3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.5.tgz";
+        sha512 = "oHI15S/hdJuSCfnwIz+4lm6wu/wBn7oJ8+QrkzPPwSFGXk8kgdI/AIKcbR/XnD1nQVMg/i6eNaXpszbGuwYDRQ==";
       };
     };
-    "@babel/plugin-transform-modules-commonjs-7.15.4" = {
+    "@babel/plugin-transform-modules-commonjs-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-modules-commonjs";
       packageName = "@babel/plugin-transform-modules-commonjs";
-      version = "7.15.4";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz";
-        sha512 = "qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.5.tgz";
+        sha512 = "ABhUkxvoQyqhCWyb8xXtfwqNMJD7tx+irIRnUh6lmyFud7Jln1WzONXKlax1fg/ey178EXbs4bSGNd6PngO+SQ==";
       };
     };
-    "@babel/plugin-transform-modules-systemjs-7.15.4" = {
+    "@babel/plugin-transform-modules-systemjs-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-modules-systemjs";
       packageName = "@babel/plugin-transform-modules-systemjs";
-      version = "7.15.4";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz";
-        sha512 = "fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.5.tgz";
+        sha512 = "53gmLdScNN28XpjEVIm7LbWnD/b/TpbwKbLk6KV4KqC9WyU6rq1jnNmVG6UgAdQZVVGZVoik3DqHNxk4/EvrjA==";
       };
     };
-    "@babel/plugin-transform-modules-umd-7.14.5" = {
+    "@babel/plugin-transform-modules-umd-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-modules-umd";
       packageName = "@babel/plugin-transform-modules-umd";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz";
-        sha512 = "RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.5.tgz";
+        sha512 = "qTFnpxHMoenNHkS3VoWRdwrcJ3FhX567GvDA3hRZKF0Dj8Fmg0UzySZp3AP2mShl/bzcywb/UWAMQIjA1bhXvw==";
       };
     };
-    "@babel/plugin-transform-named-capturing-groups-regex-7.14.9" = {
+    "@babel/plugin-transform-named-capturing-groups-regex-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
       packageName = "@babel/plugin-transform-named-capturing-groups-regex";
-      version = "7.14.9";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz";
-        sha512 = "l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.5.tgz";
+        sha512 = "/wqGDgvFUeKELW6ex6QB7dLVRkd5ehjw34tpXu1nhKC0sFfmaLabIswnpf8JgDyV2NeDmZiwoOb0rAmxciNfjA==";
       };
     };
-    "@babel/plugin-transform-new-target-7.14.5" = {
+    "@babel/plugin-transform-new-target-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-new-target";
       packageName = "@babel/plugin-transform-new-target";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz";
-        sha512 = "Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.5.tgz";
+        sha512 = "ZaIrnXF08ZC8jnKR4/5g7YakGVL6go6V9ql6Jl3ecO8PQaQqFE74CuM384kezju7Z9nGCCA20BqZaR1tJ/WvHg==";
       };
     };
-    "@babel/plugin-transform-object-super-7.14.5" = {
+    "@babel/plugin-transform-object-super-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-object-super";
       packageName = "@babel/plugin-transform-object-super";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz";
-        sha512 = "MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.5.tgz";
+        sha512 = "tded+yZEXuxt9Jdtkc1RraW1zMF/GalVxaVVxh41IYwirdRgyAxxxCKZ9XB7LxZqmsjfjALxupNE1MIz9KH+Zg==";
       };
     };
-    "@babel/plugin-transform-parameters-7.15.4" = {
+    "@babel/plugin-transform-parameters-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-parameters";
       packageName = "@babel/plugin-transform-parameters";
-      version = "7.15.4";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz";
-        sha512 = "9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.5.tgz";
+        sha512 = "B3O6AL5oPop1jAVg8CV+haeUte9oFuY85zu0jwnRNZZi3tVAbJriu5tag/oaO2kGaQM/7q7aGPBlTI5/sr9enA==";
       };
     };
-    "@babel/plugin-transform-property-literals-7.14.5" = {
+    "@babel/plugin-transform-property-literals-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-property-literals";
       packageName = "@babel/plugin-transform-property-literals";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz";
-        sha512 = "r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.5.tgz";
+        sha512 = "+IRcVW71VdF9pEH/2R/Apab4a19LVvdVsr/gEeotH00vSDVlKD+XgfSIw+cgGWsjDB/ziqGv/pGoQZBIiQVXHg==";
       };
     };
-    "@babel/plugin-transform-regenerator-7.14.5" = {
+    "@babel/plugin-transform-regenerator-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-regenerator";
       packageName = "@babel/plugin-transform-regenerator";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz";
-        sha512 = "NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.5.tgz";
+        sha512 = "2z+it2eVWU8TtQQRauvGUqZwLy4+7rTfo6wO4npr+fvvN1SW30ZF3O/ZRCNmTuu4F5MIP8OJhXAhRV5QMJOuYg==";
       };
     };
-    "@babel/plugin-transform-reserved-words-7.14.5" = {
+    "@babel/plugin-transform-reserved-words-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-reserved-words";
       packageName = "@babel/plugin-transform-reserved-words";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz";
-        sha512 = "cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.5.tgz";
+        sha512 = "aIB16u8lNcf7drkhXJRoggOxSTUAuihTSTfAcpynowGJOZiGf+Yvi7RuTwFzVYSYPmWyARsPqUGoZWWWxLiknw==";
       };
     };
     "@babel/plugin-transform-runtime-7.12.10" = {
@@ -742,67 +751,67 @@ let
         sha512 = "xOrUfzPxw7+WDm9igMgQCbO3cJKymX7dFdsgRr1eu9n3KjjyU4pptIXbXPseQDquw+W+RuJEJMHKHNsPNNm3CA==";
       };
     };
-    "@babel/plugin-transform-shorthand-properties-7.14.5" = {
+    "@babel/plugin-transform-shorthand-properties-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-shorthand-properties";
       packageName = "@babel/plugin-transform-shorthand-properties";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz";
-        sha512 = "xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.5.tgz";
+        sha512 = "ZbuWVcY+MAXJuuW7qDoCwoxDUNClfZxoo7/4swVbOW1s/qYLOMHlm9YRWMsxMFuLs44eXsv4op1vAaBaBaDMVg==";
       };
     };
-    "@babel/plugin-transform-spread-7.15.8" = {
+    "@babel/plugin-transform-spread-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-spread";
       packageName = "@babel/plugin-transform-spread";
-      version = "7.15.8";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.15.8.tgz";
-        sha512 = "/daZ8s2tNaRekl9YJa9X4bzjpeRZLt122cpgFnQPLGUe61PH8zMEBmYqKkW5xF5JUEh5buEGXJoQpqBmIbpmEQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.5.tgz";
+        sha512 = "5d6l/cnG7Lw4tGHEoga4xSkYp1euP7LAtrah1h1PgJ3JY7yNsjybsxQAnVK4JbtReZ/8z6ASVmd3QhYYKLaKZw==";
       };
     };
-    "@babel/plugin-transform-sticky-regex-7.14.5" = {
+    "@babel/plugin-transform-sticky-regex-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-sticky-regex";
       packageName = "@babel/plugin-transform-sticky-regex";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz";
-        sha512 = "Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.5.tgz";
+        sha512 = "usYsuO1ID2LXxzuUxifgWtJemP7wL2uZtyrTVM4PKqsmJycdS4U4mGovL5xXkfUheds10Dd2PjoQLXw6zCsCbg==";
       };
     };
-    "@babel/plugin-transform-template-literals-7.14.5" = {
+    "@babel/plugin-transform-template-literals-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-template-literals";
       packageName = "@babel/plugin-transform-template-literals";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz";
-        sha512 = "22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.5.tgz";
+        sha512 = "gnyKy9RyFhkovex4BjKWL3BVYzUDG6zC0gba7VMLbQoDuqMfJ1SDXs8k/XK41Mmt1Hyp4qNAvGFb9hKzdCqBRQ==";
       };
     };
-    "@babel/plugin-transform-typeof-symbol-7.14.5" = {
+    "@babel/plugin-transform-typeof-symbol-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-typeof-symbol";
       packageName = "@babel/plugin-transform-typeof-symbol";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz";
-        sha512 = "lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.5.tgz";
+        sha512 = "ldxCkW180qbrvyCVDzAUZqB0TAeF8W/vGJoRcaf75awm6By+PxfJKvuqVAnq8N9wz5Xa6mSpM19OfVKKVmGHSQ==";
       };
     };
-    "@babel/plugin-transform-unicode-escapes-7.14.5" = {
+    "@babel/plugin-transform-unicode-escapes-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-unicode-escapes";
       packageName = "@babel/plugin-transform-unicode-escapes";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz";
-        sha512 = "crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.5.tgz";
+        sha512 = "shiCBHTIIChGLdyojsKQjoAyB8MBwat25lKM7MJjbe1hE0bgIppD+LX9afr41lLHOhqceqeWl4FkLp+Bgn9o1Q==";
       };
     };
-    "@babel/plugin-transform-unicode-regex-7.14.5" = {
+    "@babel/plugin-transform-unicode-regex-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-unicode-regex";
       packageName = "@babel/plugin-transform-unicode-regex";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz";
-        sha512 = "UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.5.tgz";
+        sha512 = "GTJ4IW012tiPEMMubd7sD07iU9O/LOo8Q/oU4xNhcaq0Xn8+6TcUQaHtC8YxySo1T+ErQ8RaWogIEeFhKGNPzw==";
       };
     };
     "@babel/preset-env-7.12.10" = {
@@ -832,31 +841,31 @@ let
         sha512 = "plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==";
       };
     };
-    "@babel/template-7.15.4" = {
+    "@babel/template-7.16.0" = {
       name = "_at_babel_slash_template";
       packageName = "@babel/template";
-      version = "7.15.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz";
-        sha512 = "UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==";
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz";
+        sha512 = "MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==";
       };
     };
-    "@babel/traverse-7.15.4" = {
+    "@babel/traverse-7.16.5" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.15.4";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz";
-        sha512 = "W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.5.tgz";
+        sha512 = "FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ==";
       };
     };
-    "@babel/types-7.15.6" = {
+    "@babel/types-7.16.0" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.15.6";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz";
-        sha512 = "BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz";
+        sha512 = "PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==";
       };
     };
     "@hapi/address-2.1.4" = {
@@ -1021,13 +1030,13 @@ let
         sha512 = "SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==";
       };
     };
-    "@types/http-proxy-1.17.7" = {
+    "@types/http-proxy-1.17.8" = {
       name = "_at_types_slash_http-proxy";
       packageName = "@types/http-proxy";
-      version = "1.17.7";
+      version = "1.17.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.7.tgz";
-        sha512 = "9hdj6iXH64tHSLTY+Vt2eYOGzSogC+JQ2H7bdPWkuh7KXP5qLllWx++t+K9Wk556c3dkDdPws/SpMRi0sdCT1w==";
+        url = "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz";
+        sha512 = "5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==";
       };
     };
     "@types/json-schema-7.0.9" = {
@@ -1057,13 +1066,13 @@ let
         sha512 = "Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==";
       };
     };
-    "@types/node-16.11.4" = {
+    "@types/node-17.0.5" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "16.11.4";
+      version = "17.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-16.11.4.tgz";
-        sha512 = "TMgXmy0v2xWyuCSCJM6NCna2snndD8yvQF67J29ipdzMcsPa9u+o0tjF5+EQNdhcuZplYuouYqpc4zcd5I6amQ==";
+        url = "https://registry.npmjs.org/@types/node/-/node-17.0.5.tgz";
+        sha512 = "w3mrvNXLeDYV1GKTZorGJQivK6XLCoGwpnyJFbJVK/aTBQUxOCaa/GlFAAN3OTDFcb7h5tiFG+YXCO2By+riZw==";
       };
     };
     "@types/parse-json-4.0.0" = {
@@ -1120,13 +1129,13 @@ let
         sha512 = "O3MmRAk6ZuAKa9CHgg0Pr0+lUOqoMLpc9AS4R8ano2auvsg7IE8syF3Xh/NPr26TWklxYcqoEEFdzLLs1fV9PQ==";
       };
     };
-    "@types/webpack-4.41.31" = {
+    "@types/webpack-4.41.32" = {
       name = "_at_types_slash_webpack";
       packageName = "@types/webpack";
-      version = "4.41.31";
+      version = "4.41.32";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.31.tgz";
-        sha512 = "/i0J7sepXFIp1ZT7FjUGi1eXMCg8HCCzLJEQkKsOtbJFontsJLolBcDC+3qxn5pPwiCt1G0ZdRmYRzNBtvpuGQ==";
+        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.32.tgz";
+        sha512 = "cb+0ioil/7oz5//7tZUSwbrSAN/NWHrQylz5cW8G0dWTcF/g+/dSdMlKVZspBYuMAN1+WnwHrkxiRrLcwd0Heg==";
       };
     };
     "@types/webpack-sources-3.2.0" = {
@@ -1642,13 +1651,13 @@ let
         sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46";
       };
     };
-    "asn1-0.2.4" = {
+    "asn1-0.2.6" = {
       name = "asn1";
       packageName = "asn1";
-      version = "0.2.4";
+      version = "0.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz";
-        sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
+        url = "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz";
+        sha512 = "ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==";
       };
     };
     "asn1.js-5.4.1" = {
@@ -2047,6 +2056,15 @@ let
         sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
       };
     };
+    "body-parser-1.19.1" = {
+      name = "body-parser";
+      packageName = "body-parser";
+      version = "1.19.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz";
+        sha512 = "8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==";
+      };
+    };
     "bonjour-3.5.0" = {
       name = "bonjour";
       packageName = "bonjour";
@@ -2164,13 +2182,13 @@ let
         sha512 = "VBorw+tgpOtZ1BYhrVSVTzTt/3+vSE3eFUh0N2GCFK1HffceOaf32YS/bs6WiFhjDAblAFrx85jMy3BG9fBK2Q==";
       };
     };
-    "browserslist-4.17.5" = {
+    "browserslist-4.19.1" = {
       name = "browserslist";
       packageName = "browserslist";
-      version = "4.17.5";
+      version = "4.19.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.17.5.tgz";
-        sha512 = "I3ekeB92mmpctWBoLXe0d5wPS2cBuRvvW0JyyJHMrk9/HmP2ZjrTboNAZ8iuGqaEIlKguljbQY32OkOJIRrgoA==";
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz";
+        sha512 = "u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==";
       };
     };
     "buffer-4.9.2" = {
@@ -2254,6 +2272,15 @@ let
         sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
       };
     };
+    "bytes-3.1.1" = {
+      name = "bytes";
+      packageName = "bytes";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz";
+        sha512 = "dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==";
+      };
+    };
     "cacache-10.0.4" = {
       name = "cacache";
       packageName = "cacache";
@@ -2389,13 +2416,13 @@ let
         sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
       };
     };
-    "camelcase-6.2.0" = {
+    "camelcase-6.2.1" = {
       name = "camelcase";
       packageName = "camelcase";
-      version = "6.2.0";
+      version = "6.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz";
-        sha512 = "c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==";
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz";
+        sha512 = "tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==";
       };
     };
     "caniuse-api-3.0.0" = {
@@ -2407,13 +2434,13 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001271" = {
+    "caniuse-lite-1.0.30001294" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001271";
+      version = "1.0.30001294";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001271.tgz";
-        sha512 = "BBruZFWmt3HFdVPS8kceTBIguKxu4f99n5JNp06OlPD/luoAMIaIK5ieV5YjnBLH3Nysai9sxj9rpJj4ZisXOA==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001294.tgz";
+        sha512 = "LiMlrs1nSKZ8qkNhpUf5KD0Al1KCBE3zaT7OLOwEkagXMEDij98SiOovn9wxVGQpklk9vVC/pUSqgYmkmKOS8g==";
       };
     };
     "case-sensitive-paths-webpack-plugin-2.3.0" = {
@@ -2767,13 +2794,13 @@ let
         sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
       };
     };
-    "color-string-1.6.0" = {
+    "color-string-1.9.0" = {
       name = "color-string";
       packageName = "color-string";
-      version = "1.6.0";
+      version = "1.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz";
-        sha512 = "c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==";
+        url = "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz";
+        sha512 = "9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==";
       };
     };
     "colorette-1.4.0" = {
@@ -2875,13 +2902,13 @@ let
         sha512 = "QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==";
       };
     };
-    "common-tags-1.8.0" = {
+    "common-tags-1.8.2" = {
       name = "common-tags";
       packageName = "common-tags";
-      version = "1.8.0";
+      version = "1.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz";
-        sha512 = "6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==";
+        url = "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz";
+        sha512 = "gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==";
       };
     };
     "commondir-1.0.1" = {
@@ -3001,13 +3028,13 @@ let
         sha1 = "0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4";
       };
     };
-    "content-disposition-0.5.3" = {
+    "content-disposition-0.5.4" = {
       name = "content-disposition";
       packageName = "content-disposition";
-      version = "0.5.3";
+      version = "0.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz";
-        sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==";
+        url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz";
+        sha512 = "FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==";
       };
     };
     "content-type-1.0.4" = {
@@ -3037,13 +3064,13 @@ let
         sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb";
       };
     };
-    "cookie-0.4.0" = {
+    "cookie-0.4.1" = {
       name = "cookie";
       packageName = "cookie";
-      version = "0.4.0";
+      version = "0.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz";
-        sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==";
+        url = "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz";
+        sha512 = "ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==";
       };
     };
     "cookie-signature-1.0.6" = {
@@ -3091,13 +3118,13 @@ let
         sha512 = "Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==";
       };
     };
-    "core-js-compat-3.18.3" = {
+    "core-js-compat-3.20.1" = {
       name = "core-js-compat";
       packageName = "core-js-compat";
-      version = "3.18.3";
+      version = "3.20.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.18.3.tgz";
-        sha512 = "4zP6/y0a2RTHN5bRGT7PTq9lVt3WzvffTNjqnTKsXhkAYNDTkdCLOIfAdOLcQ/7TDdyRj3c+NeHe1NmF1eDScw==";
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.1.tgz";
+        sha512 = "AVhKZNpqMV3Jz8hU0YEXXE06qoxtQGsAqU0u1neUngz5IusDJRX/ZJ6t3i7mS7QxNyEONbCo14GprkBrxPlTZA==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -3271,13 +3298,13 @@ let
         sha512 = "Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==";
       };
     };
-    "css-select-4.1.3" = {
+    "css-select-4.2.1" = {
       name = "css-select";
       packageName = "css-select";
-      version = "4.1.3";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz";
-        sha512 = "gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==";
+        url = "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz";
+        sha512 = "/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==";
       };
     };
     "css-select-base-adapter-0.1.1" = {
@@ -3442,13 +3469,13 @@ let
         sha512 = "CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==";
       };
     };
-    "debug-4.3.2" = {
+    "debug-4.3.3" = {
       name = "debug";
       packageName = "debug";
-      version = "4.3.2";
+      version = "4.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz";
-        sha512 = "mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==";
+        url = "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz";
+        sha512 = "/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==";
       };
     };
     "decamelize-1.2.0" = {
@@ -3766,13 +3793,13 @@ let
         sha512 = "DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==";
       };
     };
-    "domhandler-4.2.2" = {
+    "domhandler-4.3.0" = {
       name = "domhandler";
       packageName = "domhandler";
-      version = "4.2.2";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz";
-        sha512 = "PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==";
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz";
+        sha512 = "fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==";
       };
     };
     "domutils-1.7.0" = {
@@ -3865,13 +3892,13 @@ let
         sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
       };
     };
-    "electron-to-chromium-1.3.878" = {
+    "electron-to-chromium-1.4.30" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.878";
+      version = "1.4.30";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.878.tgz";
-        sha512 = "O6yxWCN9ph2AdspAIszBnd9v8s11hQx8ub9w4UGApzmNRnoKhbulOWqbO8THEQec/aEHtvy+donHZMlh6l1rbA==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.30.tgz";
+        sha512 = "609z9sIMxDHg+TcR/VB3MXwH+uwtrYyeAwWc/orhnr90ixs6WVGSrt85CDLGUdNnLqCA7liv426V20EecjvflQ==";
       };
     };
     "elliptic-6.5.4" = {
@@ -3955,13 +3982,13 @@ let
         sha512 = "sd3nCQMeYMaY84Sz41bVJ30ZvQN1/4ZcD8uYMOuUbM39FDh58NY9/AcImVJ7Z+gjCFdcSU6VscZzhUoPW8jp6Q==";
       };
     };
-    "elm-tooling-1.6.0" = {
+    "elm-tooling-1.7.0" = {
       name = "elm-tooling";
       packageName = "elm-tooling";
-      version = "1.6.0";
+      version = "1.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/elm-tooling/-/elm-tooling-1.6.0.tgz";
-        sha512 = "quliLTmqEcqqFZEcJKnYcZ9BrL1K2sYvtryQl6BfaMD6HaI8oRaZYDPY/Ihdo7X7t7mY5TbSlrcxv6coJgWwtA==";
+        url = "https://registry.npmjs.org/elm-tooling/-/elm-tooling-1.7.0.tgz";
+        sha512 = "EHZ54voWrG3BhUONbH/wFw5U95H6N7R4QFgXHDrPIaDBDdeyNkpFu4QWArSWkhzxyCF7hqT8ya2yy7SferDsgg==";
       };
     };
     "elm-webpack-loader-6.0.1" = {
@@ -4180,13 +4207,13 @@ let
         sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==";
       };
     };
-    "estraverse-5.2.0" = {
+    "estraverse-5.3.0" = {
       name = "estraverse";
       packageName = "estraverse";
-      version = "5.2.0";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz";
-        sha512 = "BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==";
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz";
+        sha512 = "MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==";
       };
     };
     "esutils-2.0.3" = {
@@ -4306,13 +4333,13 @@ let
         sha1 = "6af8a502350db3246ecc4becf6b5a34d22f7ed53";
       };
     };
-    "express-4.17.1" = {
+    "express-4.17.2" = {
       name = "express";
       packageName = "express";
-      version = "4.17.1";
+      version = "4.17.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz";
-        sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==";
+        url = "https://registry.npmjs.org/express/-/express-4.17.2.tgz";
+        sha512 = "oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==";
       };
     };
     "express-ws-2.0.0" = {
@@ -4720,13 +4747,13 @@ let
         sha512 = "SDgHBgV+RCjrYs8aUwCb9rTgbTVuSdzvFmLaChsLre1yf+D64khCW++VYciaByZ8Rm0uKF8R/XEpXuTRSGUM1A==";
       };
     };
-    "follow-redirects-1.14.4" = {
+    "follow-redirects-1.14.6" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.14.4";
+      version = "1.14.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz";
-        sha512 = "zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz";
+        sha512 = "fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==";
       };
     };
     "for-in-1.0.2" = {
@@ -4765,13 +4792,13 @@ let
         sha512 = "buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==";
       };
     };
-    "fraction.js-4.1.1" = {
+    "fraction.js-4.1.2" = {
       name = "fraction.js";
       packageName = "fraction.js";
-      version = "4.1.1";
+      version = "4.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.1.tgz";
-        sha512 = "MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg==";
+        url = "https://registry.npmjs.org/fraction.js/-/fraction.js-4.1.2.tgz";
+        sha512 = "o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==";
       };
     };
     "fragment-cache-0.2.1" = {
@@ -5521,13 +5548,22 @@ let
         sha512 = "ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==";
       };
     };
-    "http-parser-js-0.5.3" = {
+    "http-errors-1.8.1" = {
+      name = "http-errors";
+      packageName = "http-errors";
+      version = "1.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz";
+        sha512 = "Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==";
+      };
+    };
+    "http-parser-js-0.5.5" = {
       name = "http-parser-js";
       packageName = "http-parser-js";
-      version = "0.5.3";
+      version = "0.5.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz";
-        sha512 = "t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==";
+        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz";
+        sha512 = "x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==";
       };
     };
     "http-proxy-1.17.0" = {
@@ -5656,13 +5692,13 @@ let
         sha512 = "Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==";
       };
     };
-    "ignore-5.1.8" = {
+    "ignore-5.2.0" = {
       name = "ignore";
       packageName = "ignore";
-      version = "5.1.8";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz";
-        sha512 = "BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==";
+        url = "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz";
+        sha512 = "CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==";
       };
     };
     "immer-1.7.2" = {
@@ -6088,6 +6124,15 @@ let
         sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
       };
     };
+    "is-git-url-1.0.0" = {
+      name = "is-git-url";
+      packageName = "is-git-url";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-git-url/-/is-git-url-1.0.0.tgz";
+        sha1 = "53f684cd143285b52c3244b4e6f28253527af66b";
+      };
+    };
     "is-glob-3.1.0" = {
       name = "is-glob";
       packageName = "is-glob";
@@ -6115,13 +6160,13 @@ let
         sha512 = "2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==";
       };
     };
-    "is-negative-zero-2.0.1" = {
+    "is-negative-zero-2.0.2" = {
       name = "is-negative-zero";
       packageName = "is-negative-zero";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz";
-        sha512 = "2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==";
+        url = "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz";
+        sha512 = "dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==";
       };
     };
     "is-number-3.0.0" = {
@@ -6331,13 +6376,13 @@ let
         sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72";
       };
     };
-    "is-weakref-1.0.1" = {
+    "is-weakref-1.0.2" = {
       name = "is-weakref";
       packageName = "is-weakref";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz";
-        sha512 = "b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==";
+        url = "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz";
+        sha512 = "qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==";
       };
     };
     "is-windows-1.0.2" = {
@@ -6502,13 +6547,13 @@ let
         sha512 = "xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==";
       };
     };
-    "json-schema-0.2.3" = {
+    "json-schema-0.4.0" = {
       name = "json-schema";
       packageName = "json-schema";
-      version = "0.2.3";
+      version = "0.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz";
-        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+        url = "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz";
+        sha512 = "es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==";
       };
     };
     "json-schema-traverse-0.4.1" = {
@@ -6610,13 +6655,13 @@ let
         sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
       };
     };
-    "jsprim-1.4.1" = {
+    "jsprim-1.4.2" = {
       name = "jsprim";
       packageName = "jsprim";
-      version = "1.4.1";
+      version = "1.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz";
-        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+        url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz";
+        sha512 = "P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==";
       };
     };
     "keyv-3.1.0" = {
@@ -6628,13 +6673,13 @@ let
         sha512 = "9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==";
       };
     };
-    "keyv-4.0.3" = {
+    "keyv-4.0.4" = {
       name = "keyv";
       packageName = "keyv";
-      version = "4.0.3";
+      version = "4.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz";
-        sha512 = "zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==";
+        url = "https://registry.npmjs.org/keyv/-/keyv-4.0.4.tgz";
+        sha512 = "vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==";
       };
     };
     "killable-1.0.1" = {
@@ -6700,13 +6745,13 @@ let
         sha512 = "eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==";
       };
     };
-    "klona-2.0.4" = {
+    "klona-2.0.5" = {
       name = "klona";
       packageName = "klona";
-      version = "2.0.4";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz";
-        sha512 = "ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==";
+        url = "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz";
+        sha512 = "pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==";
       };
     };
     "last-call-webpack-plugin-3.0.0" = {
@@ -6736,13 +6781,13 @@ let
         sha1 = "308accafa0bc483a3867b4b6f2b9506251d1b835";
       };
     };
-    "lines-and-columns-1.1.6" = {
+    "lines-and-columns-1.2.4" = {
       name = "lines-and-columns";
       packageName = "lines-and-columns";
-      version = "1.1.6";
+      version = "1.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz";
-        sha1 = "1c00c743b433cd0a4e80758f7b64a57440d9ff00";
+        url = "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz";
+        sha512 = "7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==";
       };
     };
     "load-json-file-1.1.0" = {
@@ -6781,13 +6826,13 @@ let
         sha512 = "qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==";
       };
     };
-    "loader-utils-2.0.0" = {
+    "loader-utils-2.0.2" = {
       name = "loader-utils";
       packageName = "loader-utils";
-      version = "2.0.0";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz";
-        sha512 = "rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==";
+        url = "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz";
+        sha512 = "TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==";
       };
     };
     "locate-path-2.0.0" = {
@@ -6889,13 +6934,13 @@ let
         sha512 = "8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==";
       };
     };
-    "loglevel-1.7.1" = {
+    "loglevel-1.8.0" = {
       name = "loglevel";
       packageName = "loglevel";
-      version = "1.7.1";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz";
-        sha512 = "Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==";
+        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz";
+        sha512 = "G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==";
       };
     };
     "lower-case-2.0.2" = {
@@ -7150,31 +7195,31 @@ let
         sha512 = "QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw==";
       };
     };
-    "mime-2.5.2" = {
+    "mime-2.6.0" = {
       name = "mime";
       packageName = "mime";
-      version = "2.5.2";
+      version = "2.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz";
-        sha512 = "tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==";
+        url = "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz";
+        sha512 = "USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==";
       };
     };
-    "mime-db-1.50.0" = {
+    "mime-db-1.51.0" = {
       name = "mime-db";
       packageName = "mime-db";
-      version = "1.50.0";
+      version = "1.51.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz";
-        sha512 = "9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==";
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz";
+        sha512 = "5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==";
       };
     };
-    "mime-types-2.1.33" = {
+    "mime-types-2.1.34" = {
       name = "mime-types";
       packageName = "mime-types";
-      version = "2.1.33";
+      version = "2.1.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz";
-        sha512 = "plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==";
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz";
+        sha512 = "6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==";
       };
     };
     "mimic-fn-1.2.0" = {
@@ -7276,13 +7321,13 @@ let
         sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==";
       };
     };
-    "minipass-3.1.5" = {
+    "minipass-3.1.6" = {
       name = "minipass";
       packageName = "minipass";
-      version = "3.1.5";
+      version = "3.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz";
-        sha512 = "+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==";
+        url = "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz";
+        sha512 = "rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==";
       };
     };
     "minizlib-1.3.3" = {
@@ -7402,6 +7447,15 @@ let
         sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
       };
     };
+    "ms-2.1.3" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz";
+        sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==";
+      };
+    };
     "multicast-dns-6.2.3" = {
       name = "multicast-dns";
       packageName = "multicast-dns";
@@ -7753,13 +7807,13 @@ let
         sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
       };
     };
-    "object-inspect-1.11.0" = {
+    "object-inspect-1.12.0" = {
       name = "object-inspect";
       packageName = "object-inspect";
-      version = "1.11.0";
+      version = "1.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz";
-        sha512 = "jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==";
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz";
+        sha512 = "Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==";
       };
     };
     "object-is-1.1.5" = {
@@ -8554,13 +8608,13 @@ let
         sha512 = "yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==";
       };
     };
-    "postcss-8.3.11" = {
+    "postcss-8.4.5" = {
       name = "postcss";
       packageName = "postcss";
-      version = "8.3.11";
+      version = "8.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz";
-        sha512 = "hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz";
+        sha512 = "jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==";
       };
     };
     "postcss-calc-7.0.5" = {
@@ -8860,13 +8914,13 @@ let
         sha512 = "h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==";
       };
     };
-    "postcss-selector-parser-6.0.6" = {
+    "postcss-selector-parser-6.0.8" = {
       name = "postcss-selector-parser";
       packageName = "postcss-selector-parser";
-      version = "6.0.6";
+      version = "6.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz";
-        sha512 = "9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==";
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz";
+        sha512 = "D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ==";
       };
     };
     "postcss-svgo-4.0.3" = {
@@ -8896,13 +8950,13 @@ let
         sha512 = "pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==";
       };
     };
-    "postcss-value-parser-4.1.0" = {
+    "postcss-value-parser-4.2.0" = {
       name = "postcss-value-parser";
       packageName = "postcss-value-parser";
-      version = "4.1.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz";
-        sha512 = "97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==";
+        url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz";
+        sha512 = "1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==";
       };
     };
     "prepend-http-1.0.4" = {
@@ -9148,6 +9202,15 @@ let
         sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
       };
     };
+    "qs-6.9.6" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.9.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz";
+        sha512 = "TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==";
+      };
+    };
     "query-string-4.3.4" = {
       name = "query-string";
       packageName = "query-string";
@@ -9238,6 +9301,15 @@ let
         sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==";
       };
     };
+    "raw-body-2.4.2" = {
+      name = "raw-body";
+      packageName = "raw-body";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz";
+        sha512 = "RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==";
+      };
+    };
     "rc-1.2.8" = {
       name = "rc";
       packageName = "rc";
@@ -10012,6 +10084,15 @@ let
         sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
       };
     };
+    "send-0.17.2" = {
+      name = "send";
+      packageName = "send";
+      version = "0.17.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/send/-/send-0.17.2.tgz";
+        sha512 = "UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==";
+      };
+    };
     "serialize-javascript-1.9.1" = {
       name = "serialize-javascript";
       packageName = "serialize-javascript";
@@ -10057,6 +10138,15 @@ let
         sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
       };
     };
+    "serve-static-1.14.2" = {
+      name = "serve-static";
+      packageName = "serve-static";
+      version = "1.14.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz";
+        sha512 = "+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==";
+      };
+    };
     "set-blocking-2.0.0" = {
       name = "set-blocking";
       packageName = "set-blocking";
@@ -10111,6 +10201,15 @@ let
         sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
       };
     };
+    "setprototypeof-1.2.0" = {
+      name = "setprototypeof";
+      packageName = "setprototypeof";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz";
+        sha512 = "E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==";
+      };
+    };
     "sha.js-2.4.11" = {
       name = "sha.js";
       packageName = "sha.js";
@@ -10174,13 +10273,22 @@ let
         sha512 = "q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==";
       };
     };
-    "signal-exit-3.0.5" = {
+    "signal-exit-3.0.6" = {
       name = "signal-exit";
       packageName = "signal-exit";
-      version = "3.0.5";
+      version = "3.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz";
+        sha512 = "sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==";
+      };
+    };
+    "simple-git-1.132.0" = {
+      name = "simple-git";
+      packageName = "simple-git";
+      version = "1.132.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz";
-        sha512 = "KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==";
+        url = "https://registry.npmjs.org/simple-git/-/simple-git-1.132.0.tgz";
+        sha512 = "xauHm1YqCTom1sC9eOjfq3/9RKiUA9iPnxBbrY2DdL8l4ADMu0jjM5l5lphQP5YWNqAL2aXC/OeuQ76vHtW5fg==";
       };
     };
     "simple-swizzle-0.2.2" = {
@@ -10336,13 +10444,13 @@ let
         sha512 = "CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==";
       };
     };
-    "source-map-js-0.6.2" = {
+    "source-map-js-1.0.1" = {
       name = "source-map-js";
       packageName = "source-map-js";
-      version = "0.6.2";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz";
-        sha512 = "/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==";
+        url = "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz";
+        sha512 = "4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==";
       };
     };
     "source-map-resolve-0.5.3" = {
@@ -10354,13 +10462,13 @@ let
         sha512 = "Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==";
       };
     };
-    "source-map-support-0.5.20" = {
+    "source-map-support-0.5.21" = {
       name = "source-map-support";
       packageName = "source-map-support";
-      version = "0.5.20";
+      version = "0.5.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz";
-        sha512 = "n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==";
+        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz";
+        sha512 = "uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==";
       };
     };
     "source-map-url-0.4.1" = {
@@ -10399,13 +10507,13 @@ let
         sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==";
       };
     };
-    "spdx-license-ids-3.0.10" = {
+    "spdx-license-ids-3.0.11" = {
       name = "spdx-license-ids";
       packageName = "spdx-license-ids";
-      version = "3.0.10";
+      version = "3.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz";
-        sha512 = "oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==";
+        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz";
+        sha512 = "Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==";
       };
     };
     "spdy-4.0.2" = {
@@ -11110,6 +11218,15 @@ let
         sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
       };
     };
+    "toidentifier-1.0.1" = {
+      name = "toidentifier";
+      packageName = "toidentifier";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz";
+        sha512 = "o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==";
+      };
+    };
     "touch-3.1.0" = {
       name = "touch";
       packageName = "touch";
@@ -11506,13 +11623,13 @@ let
         sha512 = "3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==";
       };
     };
-    "url-parse-1.5.3" = {
+    "url-parse-1.5.4" = {
       name = "url-parse";
       packageName = "url-parse";
-      version = "1.5.3";
+      version = "1.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz";
-        sha512 = "IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==";
+        url = "https://registry.npmjs.org/url-parse/-/url-parse-1.5.4.tgz";
+        sha512 = "ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg==";
       };
     };
     "url-parse-lax-3.0.0" = {
@@ -11704,13 +11821,13 @@ let
         sha512 = "k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==";
       };
     };
-    "vscode-uri-3.0.2" = {
+    "vscode-uri-3.0.3" = {
       name = "vscode-uri";
       packageName = "vscode-uri";
-      version = "3.0.2";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.2.tgz";
-        sha512 = "jkjy6pjU1fxUvI51P+gCsxg1u2n8LSt0W6KrCNQceaziKzff74GoWmjVG46KieVzybO1sttPQmYfrwSHey7GUA==";
+        url = "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.3.tgz";
+        sha512 = "EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA==";
       };
     };
     "watchpack-1.7.5" = {
@@ -12145,13 +12262,13 @@ let
         sha512 = "o41D/WmDeca0BqYhsr3nJzQyg9NF5X8l/UdnFNux9cS3lwB+swm8qGWX5rn+aD6xfBU3rGmtHij7g7x6LxFU3A==";
       };
     };
-    "ws-7.5.5" = {
+    "ws-7.5.6" = {
       name = "ws";
       packageName = "ws";
-      version = "7.5.5";
+      version = "7.5.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz";
-        sha512 = "BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==";
+        url = "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz";
+        sha512 = "6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==";
       };
     };
     "xmlbuilder-13.0.2" = {
@@ -12313,7 +12430,7 @@ in
       sources."accepts-1.3.7"
       sources."ajv-6.12.6"
       sources."array-flatten-1.1.1"
-      sources."asn1-0.2.4"
+      sources."asn1-0.2.6"
       sources."assert-plus-1.0.0"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
@@ -12395,18 +12512,18 @@ in
       sources."isarray-1.0.0"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-2.4.0"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."lodash-4.17.21"
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.4.1"
-      sources."mime-db-1.50.0"
-      sources."mime-types-2.1.33"
+      sources."mime-db-1.51.0"
+      sources."mime-types-2.1.34"
       sources."minimist-1.2.0"
       sources."ms-2.0.0"
       sources."negotiator-0.6.2"
@@ -12501,7 +12618,7 @@ in
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.2"
-      sources."asn1-0.2.4"
+      sources."asn1-0.2.6"
       sources."assert-plus-1.0.0"
       sources."astral-regex-1.0.0"
       sources."asynckit-0.4.0"
@@ -12614,11 +12731,11 @@ in
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-4.0.0"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
       (sources."lru-cache-4.1.5" // {
@@ -12626,11 +12743,11 @@ in
           sources."yallist-2.1.2"
         ];
       })
-      sources."mime-db-1.50.0"
-      sources."mime-types-2.1.33"
+      sources."mime-db-1.51.0"
+      sources."mime-types-2.1.34"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-3.1.5"
+      sources."minipass-3.1.6"
       sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."moment-2.29.1"
@@ -12766,10 +12883,10 @@ in
       sources."balanced-match-1.0.2"
       sources."batch-0.6.1"
       sources."binary-extensions-2.2.0"
-      sources."body-parser-1.19.0"
+      sources."body-parser-1.19.1"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.1"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."get-stream-5.2.0"
@@ -12783,9 +12900,9 @@ in
       sources."color-name-1.1.4"
       sources."commander-5.1.0"
       sources."concat-map-0.0.1"
-      sources."content-disposition-0.5.3"
+      sources."content-disposition-0.5.4"
       sources."content-type-1.0.4"
-      sources."cookie-0.4.0"
+      sources."cookie-0.4.1"
       sources."cookie-signature-1.0.6"
       sources."cross-spawn-7.0.3"
       sources."debug-2.6.9"
@@ -12800,7 +12917,7 @@ in
       sources."end-of-stream-1.4.4"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      sources."express-4.17.1"
+      sources."express-4.17.2"
       (sources."express-ws-4.0.0" // {
         dependencies = [
           sources."ws-5.2.3"
@@ -12818,10 +12935,10 @@ in
       sources."got-9.6.0"
       sources."has-flag-4.0.0"
       sources."http-cache-semantics-4.1.0"
-      sources."http-errors-1.7.2"
+      sources."http-errors-1.8.1"
       sources."iconv-lite-0.4.24"
       sources."inflight-1.0.6"
-      sources."inherits-2.0.3"
+      sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."ipaddr.js-1.9.1"
       sources."is-binary-path-2.1.0"
@@ -12839,8 +12956,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.50.0"
-      sources."mime-types-2.1.33"
+      sources."mime-db-1.51.0"
+      sources."mime-types-2.1.34"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -12861,31 +12978,32 @@ in
       sources."prepend-http-2.0.0"
       sources."proxy-addr-2.0.7"
       sources."pump-3.0.0"
-      sources."qs-6.7.0"
+      sources."qs-6.9.6"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.0"
+      sources."raw-body-2.4.2"
       sources."rc-1.2.8"
       sources."readdirp-3.6.0"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
       sources."responselike-1.0.2"
       sources."rimraf-2.7.1"
-      sources."safe-buffer-5.1.2"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-6.3.0"
-      (sources."send-0.17.1" // {
+      (sources."send-0.17.2" // {
         dependencies = [
-          sources."ms-2.1.1"
+          sources."ms-2.1.3"
         ];
       })
       (sources."serve-index-1.9.1" // {
         dependencies = [
           sources."http-errors-1.6.3"
+          sources."inherits-2.0.3"
           sources."setprototypeof-1.1.0"
         ];
       })
-      sources."serve-static-1.14.1"
-      sources."setprototypeof-1.1.1"
+      sources."serve-static-1.14.2"
+      sources."setprototypeof-1.2.0"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."statuses-1.5.0"
@@ -12894,7 +13012,7 @@ in
       sources."tmp-0.1.0"
       sources."to-readable-stream-1.0.0"
       sources."to-regex-range-5.0.1"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."type-is-1.6.18"
       sources."unpipe-1.0.0"
       sources."url-parse-lax-3.0.0"
@@ -12902,7 +13020,7 @@ in
       sources."vary-1.1.2"
       sources."which-2.0.2"
       sources."wrappy-1.0.2"
-      sources."ws-7.5.5"
+      sources."ws-7.5.6"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -12944,7 +13062,7 @@ in
       sources."glob-parent-5.1.2"
       sources."globby-11.0.4"
       sources."human-signals-2.1.0"
-      sources."ignore-5.1.8"
+      sources."ignore-5.2.0"
       sources."is-binary-path-2.1.0"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
@@ -12969,7 +13087,7 @@ in
       sources."run-parallel-1.2.0"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-3.0.0"
       sources."strip-final-newline-2.0.0"
       sources."to-regex-range-5.0.1"
@@ -12981,7 +13099,7 @@ in
       sources."vscode-languageserver-protocol-3.16.0"
       sources."vscode-languageserver-textdocument-1.0.2"
       sources."vscode-languageserver-types-3.16.0"
-      sources."vscode-uri-3.0.2"
+      sources."vscode-uri-3.0.3"
       sources."web-tree-sitter-0.19.4"
       sources."which-2.0.2"
     ];
@@ -13037,7 +13155,7 @@ in
       })
       sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
-      sources."follow-redirects-1.14.4"
+      sources."follow-redirects-1.14.6"
       sources."fresh-0.5.2"
       sources."fsevents-2.3.2"
       sources."get-stream-4.1.0"
@@ -13089,7 +13207,7 @@ in
       sources."setprototypeof-1.1.1"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."statuses-1.5.0"
       sources."strip-ansi-3.0.1"
       sources."strip-eof-1.0.0"
@@ -13134,7 +13252,7 @@ in
       sources."commander-7.2.0"
       sources."concat-map-0.0.1"
       sources."cross-spawn-7.0.3"
-      sources."elm-tooling-1.6.0"
+      sources."elm-tooling-1.7.0"
       sources."fill-range-7.0.1"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
@@ -13191,7 +13309,7 @@ in
       sources."@types/cacheable-request-6.0.2"
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/keyv-3.1.3"
-      sources."@types/node-16.11.4"
+      sources."@types/node-17.0.5"
       sources."@types/responselike-1.0.0"
       sources."cacheable-lookup-2.0.1"
       sources."cacheable-request-7.0.2"
@@ -13220,7 +13338,7 @@ in
       sources."isurl-1.0.0"
       sources."json-buffer-3.0.1"
       sources."jsonfile-4.0.0"
-      sources."keyv-4.0.3"
+      sources."keyv-4.0.4"
       sources."lowercase-keys-2.0.0"
       sources."lru-cache-6.0.0"
       sources."mimic-response-2.1.0"
@@ -13271,7 +13389,7 @@ in
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.2"
-      sources."asn1-0.2.4"
+      sources."asn1-0.2.6"
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
@@ -13355,15 +13473,15 @@ in
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-4.0.0"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."locate-path-3.0.0"
       sources."lodash-4.17.15"
-      sources."mime-db-1.50.0"
-      sources."mime-types-2.1.33"
+      sources."mime-db-1.51.0"
+      sources."mime-types-2.1.34"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minipass-2.9.0"
@@ -13507,52 +13625,53 @@ in
     };
     dependencies = [
       sources."@babel/cli-7.12.10"
-      sources."@babel/code-frame-7.15.8"
-      sources."@babel/compat-data-7.15.0"
+      sources."@babel/code-frame-7.16.0"
+      sources."@babel/compat-data-7.16.4"
       sources."@babel/core-7.12.10"
-      sources."@babel/generator-7.15.8"
-      sources."@babel/helper-annotate-as-pure-7.15.4"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.15.4"
-      (sources."@babel/helper-compilation-targets-7.15.4" // {
+      sources."@babel/generator-7.16.5"
+      sources."@babel/helper-annotate-as-pure-7.16.0"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.5"
+      (sources."@babel/helper-compilation-targets-7.16.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/helper-create-class-features-plugin-7.15.4"
-      sources."@babel/helper-create-regexp-features-plugin-7.14.5"
-      sources."@babel/helper-explode-assignable-expression-7.15.4"
-      sources."@babel/helper-function-name-7.15.4"
-      sources."@babel/helper-get-function-arity-7.15.4"
-      sources."@babel/helper-hoist-variables-7.15.4"
-      sources."@babel/helper-member-expression-to-functions-7.15.4"
-      sources."@babel/helper-module-imports-7.15.4"
-      sources."@babel/helper-module-transforms-7.15.8"
-      sources."@babel/helper-optimise-call-expression-7.15.4"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-remap-async-to-generator-7.15.4"
-      sources."@babel/helper-replace-supers-7.15.4"
-      sources."@babel/helper-simple-access-7.15.4"
-      sources."@babel/helper-skip-transparent-expression-wrappers-7.15.4"
-      sources."@babel/helper-split-export-declaration-7.15.4"
+      sources."@babel/helper-create-class-features-plugin-7.16.5"
+      sources."@babel/helper-create-regexp-features-plugin-7.16.0"
+      sources."@babel/helper-environment-visitor-7.16.5"
+      sources."@babel/helper-explode-assignable-expression-7.16.0"
+      sources."@babel/helper-function-name-7.16.0"
+      sources."@babel/helper-get-function-arity-7.16.0"
+      sources."@babel/helper-hoist-variables-7.16.0"
+      sources."@babel/helper-member-expression-to-functions-7.16.5"
+      sources."@babel/helper-module-imports-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
+      sources."@babel/helper-optimise-call-expression-7.16.0"
+      sources."@babel/helper-plugin-utils-7.16.5"
+      sources."@babel/helper-remap-async-to-generator-7.16.5"
+      sources."@babel/helper-replace-supers-7.16.5"
+      sources."@babel/helper-simple-access-7.16.0"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.16.0"
+      sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helper-wrap-function-7.15.4"
-      sources."@babel/helpers-7.15.4"
-      sources."@babel/highlight-7.14.5"
-      sources."@babel/parser-7.15.8"
-      sources."@babel/plugin-proposal-async-generator-functions-7.15.8"
-      sources."@babel/plugin-proposal-class-properties-7.14.5"
-      sources."@babel/plugin-proposal-dynamic-import-7.14.5"
-      sources."@babel/plugin-proposal-export-namespace-from-7.14.5"
-      sources."@babel/plugin-proposal-json-strings-7.14.5"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.14.5"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.14.5"
-      sources."@babel/plugin-proposal-numeric-separator-7.14.5"
-      sources."@babel/plugin-proposal-object-rest-spread-7.15.6"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.14.5"
-      sources."@babel/plugin-proposal-optional-chaining-7.14.5"
-      sources."@babel/plugin-proposal-private-methods-7.14.5"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.14.5"
+      sources."@babel/helper-wrap-function-7.16.5"
+      sources."@babel/helpers-7.16.5"
+      sources."@babel/highlight-7.16.0"
+      sources."@babel/parser-7.16.6"
+      sources."@babel/plugin-proposal-async-generator-functions-7.16.5"
+      sources."@babel/plugin-proposal-class-properties-7.16.5"
+      sources."@babel/plugin-proposal-dynamic-import-7.16.5"
+      sources."@babel/plugin-proposal-export-namespace-from-7.16.5"
+      sources."@babel/plugin-proposal-json-strings-7.16.5"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.5"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.5"
+      sources."@babel/plugin-proposal-numeric-separator-7.16.5"
+      sources."@babel/plugin-proposal-object-rest-spread-7.16.5"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.16.5"
+      sources."@babel/plugin-proposal-optional-chaining-7.16.5"
+      sources."@babel/plugin-proposal-private-methods-7.16.5"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.16.5"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
@@ -13565,45 +13684,45 @@ in
       sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-top-level-await-7.14.5"
-      sources."@babel/plugin-transform-arrow-functions-7.14.5"
-      sources."@babel/plugin-transform-async-to-generator-7.14.5"
-      sources."@babel/plugin-transform-block-scoped-functions-7.14.5"
-      sources."@babel/plugin-transform-block-scoping-7.15.3"
-      sources."@babel/plugin-transform-classes-7.15.4"
-      sources."@babel/plugin-transform-computed-properties-7.14.5"
-      sources."@babel/plugin-transform-destructuring-7.14.7"
-      sources."@babel/plugin-transform-dotall-regex-7.14.5"
-      sources."@babel/plugin-transform-duplicate-keys-7.14.5"
-      sources."@babel/plugin-transform-exponentiation-operator-7.14.5"
-      sources."@babel/plugin-transform-for-of-7.15.4"
-      sources."@babel/plugin-transform-function-name-7.14.5"
-      sources."@babel/plugin-transform-literals-7.14.5"
-      sources."@babel/plugin-transform-member-expression-literals-7.14.5"
-      sources."@babel/plugin-transform-modules-amd-7.14.5"
-      sources."@babel/plugin-transform-modules-commonjs-7.15.4"
-      sources."@babel/plugin-transform-modules-systemjs-7.15.4"
-      sources."@babel/plugin-transform-modules-umd-7.14.5"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.14.9"
-      sources."@babel/plugin-transform-new-target-7.14.5"
-      sources."@babel/plugin-transform-object-super-7.14.5"
-      sources."@babel/plugin-transform-parameters-7.15.4"
-      sources."@babel/plugin-transform-property-literals-7.14.5"
-      sources."@babel/plugin-transform-regenerator-7.14.5"
-      sources."@babel/plugin-transform-reserved-words-7.14.5"
+      sources."@babel/plugin-transform-arrow-functions-7.16.5"
+      sources."@babel/plugin-transform-async-to-generator-7.16.5"
+      sources."@babel/plugin-transform-block-scoped-functions-7.16.5"
+      sources."@babel/plugin-transform-block-scoping-7.16.5"
+      sources."@babel/plugin-transform-classes-7.16.5"
+      sources."@babel/plugin-transform-computed-properties-7.16.5"
+      sources."@babel/plugin-transform-destructuring-7.16.5"
+      sources."@babel/plugin-transform-dotall-regex-7.16.5"
+      sources."@babel/plugin-transform-duplicate-keys-7.16.5"
+      sources."@babel/plugin-transform-exponentiation-operator-7.16.5"
+      sources."@babel/plugin-transform-for-of-7.16.5"
+      sources."@babel/plugin-transform-function-name-7.16.5"
+      sources."@babel/plugin-transform-literals-7.16.5"
+      sources."@babel/plugin-transform-member-expression-literals-7.16.5"
+      sources."@babel/plugin-transform-modules-amd-7.16.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.16.5"
+      sources."@babel/plugin-transform-modules-systemjs-7.16.5"
+      sources."@babel/plugin-transform-modules-umd-7.16.5"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.5"
+      sources."@babel/plugin-transform-new-target-7.16.5"
+      sources."@babel/plugin-transform-object-super-7.16.5"
+      sources."@babel/plugin-transform-parameters-7.16.5"
+      sources."@babel/plugin-transform-property-literals-7.16.5"
+      sources."@babel/plugin-transform-regenerator-7.16.5"
+      sources."@babel/plugin-transform-reserved-words-7.16.5"
       sources."@babel/plugin-transform-runtime-7.12.10"
-      sources."@babel/plugin-transform-shorthand-properties-7.14.5"
-      sources."@babel/plugin-transform-spread-7.15.8"
-      sources."@babel/plugin-transform-sticky-regex-7.14.5"
-      sources."@babel/plugin-transform-template-literals-7.14.5"
-      sources."@babel/plugin-transform-typeof-symbol-7.14.5"
-      sources."@babel/plugin-transform-unicode-escapes-7.14.5"
-      sources."@babel/plugin-transform-unicode-regex-7.14.5"
+      sources."@babel/plugin-transform-shorthand-properties-7.16.5"
+      sources."@babel/plugin-transform-spread-7.16.5"
+      sources."@babel/plugin-transform-sticky-regex-7.16.5"
+      sources."@babel/plugin-transform-template-literals-7.16.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.16.5"
+      sources."@babel/plugin-transform-unicode-escapes-7.16.5"
+      sources."@babel/plugin-transform-unicode-regex-7.16.5"
       sources."@babel/preset-env-7.12.10"
       sources."@babel/preset-modules-0.1.5"
       sources."@babel/runtime-7.12.5"
-      sources."@babel/template-7.15.4"
-      sources."@babel/traverse-7.15.4"
-      sources."@babel/types-7.15.6"
+      sources."@babel/template-7.16.0"
+      sources."@babel/traverse-7.16.5"
+      sources."@babel/types-7.16.0"
       sources."@hapi/address-2.1.4"
       sources."@hapi/bourne-1.3.2"
       sources."@hapi/hoek-8.5.1"
@@ -13613,10 +13732,10 @@ in
       sources."@nodelib/fs.stat-1.1.3"
       sources."@types/glob-7.2.0"
       sources."@types/html-minifier-terser-5.1.2"
-      sources."@types/http-proxy-1.17.7"
+      sources."@types/http-proxy-1.17.8"
       sources."@types/json-schema-7.0.9"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.4"
+      sources."@types/node-17.0.5"
       sources."@types/parse-json-4.0.0"
       sources."@types/q-1.5.5"
       sources."@types/source-list-map-0.1.2"
@@ -13626,7 +13745,7 @@ in
           sources."source-map-0.6.1"
         ];
       })
-      (sources."@types/webpack-4.41.31" // {
+      (sources."@types/webpack-4.41.32" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -13682,7 +13801,7 @@ in
       sources."array-uniq-1.0.3"
       sources."array-unique-0.3.2"
       sources."asap-2.0.6"
-      sources."asn1-0.2.4"
+      sources."asn1-0.2.6"
       (sources."asn1.js-5.4.1" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -13739,12 +13858,12 @@ in
       sources."bindings-1.5.0"
       sources."bluebird-3.7.2"
       sources."bn.js-5.2.0"
-      (sources."body-parser-1.19.0" // {
+      (sources."body-parser-1.19.1" // {
         dependencies = [
-          sources."bytes-3.1.0"
+          sources."bytes-3.1.1"
           sources."debug-2.6.9"
           sources."ms-2.0.0"
-          sources."qs-6.7.0"
+          sources."qs-6.9.6"
         ];
       })
       (sources."bonjour-3.5.0" // {
@@ -13767,7 +13886,7 @@ in
         ];
       })
       sources."browserify-zlib-0.2.0"
-      sources."browserslist-4.17.5"
+      sources."browserslist-4.19.1"
       sources."buffer-4.9.2"
       sources."buffer-from-1.1.2"
       sources."buffer-indexof-1.1.1"
@@ -13784,7 +13903,7 @@ in
       sources."camel-case-4.1.2"
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001271"
+      sources."caniuse-lite-1.0.30001294"
       sources."case-sensitive-paths-webpack-plugin-2.3.0"
       sources."caseless-0.12.0"
       (sources."chalk-2.4.2" // {
@@ -13840,12 +13959,12 @@ in
       sources."color-3.2.1"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.6.0"
+      sources."color-string-1.9.0"
       sources."colorette-1.4.0"
       sources."colors-1.4.0"
       sources."combined-stream-1.0.8"
       sources."commander-4.1.1"
-      sources."common-tags-1.8.0"
+      sources."common-tags-1.8.2"
       sources."commondir-1.0.1"
       sources."component-emitter-1.3.0"
       sources."compressible-2.0.18"
@@ -13860,10 +13979,14 @@ in
       sources."connect-history-api-fallback-1.6.0"
       sources."console-browserify-1.2.0"
       sources."constants-browserify-1.0.0"
-      sources."content-disposition-0.5.3"
+      (sources."content-disposition-0.5.4" // {
+        dependencies = [
+          sources."safe-buffer-5.2.1"
+        ];
+      })
       sources."content-type-1.0.4"
       sources."convert-source-map-1.8.0"
-      sources."cookie-0.4.0"
+      sources."cookie-0.4.1"
       sources."cookie-signature-1.0.6"
       sources."copy-concurrently-1.0.5"
       sources."copy-descriptor-0.1.1"
@@ -13879,7 +14002,7 @@ in
         ];
       })
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.18.3" // {
+      (sources."core-js-compat-3.20.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -13899,14 +14022,14 @@ in
       sources."css-declaration-sorter-4.0.1"
       (sources."css-loader-4.3.0" // {
         dependencies = [
-          sources."camelcase-6.2.0"
-          sources."loader-utils-2.0.0"
+          sources."camelcase-6.2.1"
+          sources."loader-utils-2.0.2"
           sources."lru-cache-6.0.0"
           sources."semver-7.3.5"
           sources."yallist-4.0.0"
         ];
       })
-      sources."css-select-4.1.3"
+      sources."css-select-4.2.1"
       sources."css-select-base-adapter-0.1.1"
       (sources."css-tree-1.0.0-alpha.37" // {
         dependencies = [
@@ -13931,7 +14054,7 @@ in
       sources."cycle-1.0.3"
       sources."cyclist-1.0.1"
       sources."dashdash-1.14.1"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
       sources."deep-equal-0.2.2"
@@ -13971,7 +14094,7 @@ in
       sources."dom-serializer-1.3.2"
       sources."domain-browser-1.2.0"
       sources."domelementtype-2.2.0"
-      sources."domhandler-4.2.2"
+      sources."domhandler-4.3.0"
       sources."domutils-2.8.0"
       sources."dot-case-3.0.4"
       sources."dot-prop-5.3.0"
@@ -13980,7 +14103,7 @@ in
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.878"
+      sources."electron-to-chromium-1.4.30"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -14002,7 +14125,7 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      sources."elm-tooling-1.6.0"
+      sources."elm-tooling-1.7.0"
       sources."elm-webpack-loader-6.0.1"
       sources."emoji-regex-8.0.0"
       sources."emojis-list-3.0.0"
@@ -14025,7 +14148,7 @@ in
       sources."esprima-4.0.1"
       (sources."esrecurse-4.3.0" // {
         dependencies = [
-          sources."estraverse-5.2.0"
+          sources."estraverse-5.3.0"
         ];
       })
       sources."estraverse-4.3.0"
@@ -14065,12 +14188,13 @@ in
         ];
       })
       sources."expand-tilde-2.0.2"
-      (sources."express-4.17.1" // {
+      (sources."express-4.17.2" // {
         dependencies = [
           sources."array-flatten-1.1.1"
           sources."debug-2.6.9"
           sources."ms-2.0.0"
-          sources."qs-6.7.0"
+          sources."qs-6.9.6"
+          sources."safe-buffer-5.2.1"
         ];
       })
       sources."extend-3.0.2"
@@ -14120,7 +14244,7 @@ in
       })
       (sources."file-loader-6.2.0" // {
         dependencies = [
-          sources."loader-utils-2.0.0"
+          sources."loader-utils-2.0.2"
           sources."schema-utils-3.1.1"
         ];
       })
@@ -14143,12 +14267,12 @@ in
       sources."find-up-4.1.0"
       sources."firstline-1.3.1"
       sources."flush-write-stream-1.1.1"
-      sources."follow-redirects-1.14.4"
+      sources."follow-redirects-1.14.6"
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
       sources."forwarded-0.2.0"
-      sources."fraction.js-4.1.1"
+      sources."fraction.js-4.1.2"
       sources."fragment-cache-0.2.1"
       sources."fresh-0.5.2"
       sources."from2-2.3.0"
@@ -14231,12 +14355,8 @@ in
       sources."html-webpack-plugin-4.5.0"
       sources."htmlparser2-6.1.0"
       sources."http-deceiver-1.2.7"
-      (sources."http-errors-1.7.2" // {
-        dependencies = [
-          sources."inherits-2.0.3"
-        ];
-      })
-      sources."http-parser-js-0.5.3"
+      sources."http-errors-1.8.1"
+      sources."http-parser-js-0.5.5"
       sources."http-proxy-1.18.1"
       sources."http-proxy-middleware-0.21.0"
       sources."http-signature-1.2.0"
@@ -14298,7 +14418,7 @@ in
       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.1"
+      sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
       sources."is-number-object-1.0.6"
       sources."is-obj-2.0.0"
@@ -14317,7 +14437,7 @@ in
       sources."is-symbol-1.0.4"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
-      sources."is-weakref-1.0.1"
+      sources."is-weakref-1.0.2"
       sources."is-windows-1.0.2"
       sources."is-wsl-1.1.0"
       sources."isarray-1.0.0"
@@ -14330,7 +14450,7 @@ in
       sources."jsesc-2.5.2"
       sources."json-parse-better-errors-1.0.2"
       sources."json-parse-even-better-errors-2.3.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-1.0.1"
       sources."json-stringify-safe-5.0.1"
@@ -14338,13 +14458,13 @@ in
       sources."json5-2.2.0"
       sources."jsonfile-4.0.0"
       sources."jsonify-0.0.0"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."killable-1.0.1"
       sources."kind-of-6.0.3"
-      sources."klona-2.0.4"
+      sources."klona-2.0.5"
       sources."last-call-webpack-plugin-3.0.0"
       sources."lcid-1.0.0"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       (sources."load-json-file-1.1.0" // {
         dependencies = [
           sources."parse-json-2.2.0"
@@ -14364,7 +14484,7 @@ in
       sources."lodash.template-4.5.0"
       sources."lodash.templatesettings-4.2.0"
       sources."lodash.uniq-4.5.0"
-      sources."loglevel-1.7.1"
+      sources."loglevel-1.8.0"
       sources."lower-case-2.0.2"
       sources."lru-cache-5.1.1"
       sources."make-dir-2.1.0"
@@ -14384,8 +14504,8 @@ in
         ];
       })
       sources."mime-1.6.0"
-      sources."mime-db-1.50.0"
-      sources."mime-types-2.1.33"
+      sources."mime-db-1.51.0"
+      sources."mime-types-2.1.34"
       sources."mimic-fn-1.2.0"
       (sources."mini-css-extract-plugin-0.12.0" // {
         dependencies = [
@@ -14458,7 +14578,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.12.0"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
@@ -14564,7 +14684,7 @@ in
         dependencies = [
           sources."cosmiconfig-7.0.1"
           sources."import-fresh-3.3.0"
-          sources."loader-utils-2.0.0"
+          sources."loader-utils-2.0.2"
           sources."lru-cache-6.0.0"
           sources."parse-json-5.2.0"
           sources."path-type-4.0.0"
@@ -14663,17 +14783,17 @@ in
       })
       (sources."postcss-safe-parser-5.0.2" // {
         dependencies = [
-          sources."postcss-8.3.11"
+          sources."postcss-8.4.5"
         ];
       })
-      sources."postcss-selector-parser-6.0.6"
+      sources."postcss-selector-parser-6.0.8"
       (sources."postcss-svgo-4.0.3" // {
         dependencies = [
           sources."postcss-value-parser-3.3.1"
         ];
       })
       sources."postcss-unique-selectors-4.0.1"
-      sources."postcss-value-parser-4.1.0"
+      sources."postcss-value-parser-4.2.0"
       sources."prepend-http-1.0.4"
       sources."pretty-bytes-5.6.0"
       sources."pretty-error-2.1.2"
@@ -14707,9 +14827,9 @@ in
       sources."randombytes-2.1.0"
       sources."randomfill-1.0.4"
       sources."range-parser-1.2.1"
-      (sources."raw-body-2.4.0" // {
+      (sources."raw-body-2.4.2" // {
         dependencies = [
-          sources."bytes-3.1.0"
+          sources."bytes-3.1.1"
         ];
       })
       (sources."react-dev-utils-6.1.1" // {
@@ -14815,14 +14935,14 @@ in
       sources."select-hose-2.0.0"
       sources."selfsigned-1.10.11"
       sources."semver-5.7.1"
-      (sources."send-0.17.1" // {
+      (sources."send-0.17.2" // {
         dependencies = [
           (sources."debug-2.6.9" // {
             dependencies = [
               sources."ms-2.0.0"
             ];
           })
-          sources."ms-2.1.1"
+          sources."ms-2.1.3"
         ];
       })
       sources."serialize-javascript-4.0.0"
@@ -14835,7 +14955,7 @@ in
           sources."setprototypeof-1.1.0"
         ];
       })
-      sources."serve-static-1.14.1"
+      sources."serve-static-1.14.2"
       sources."set-blocking-2.0.0"
       (sources."set-value-2.0.1" // {
         dependencies = [
@@ -14843,13 +14963,13 @@ in
         ];
       })
       sources."setimmediate-1.0.5"
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."sha.js-2.4.11"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."shell-quote-1.6.1"
       sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       (sources."simple-swizzle-0.2.2" // {
         dependencies = [
           sources."is-arrayish-0.3.2"
@@ -14901,9 +15021,9 @@ in
       sources."sort-keys-1.1.2"
       sources."source-list-map-2.0.1"
       sources."source-map-0.5.7"
-      sources."source-map-js-0.6.2"
+      sources."source-map-js-1.0.1"
       sources."source-map-resolve-0.5.3"
-      (sources."source-map-support-0.5.20" // {
+      (sources."source-map-support-0.5.21" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -14912,7 +15032,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.10"
+      sources."spdx-license-ids-3.0.11"
       sources."spdy-4.0.2"
       (sources."spdy-transport-3.0.0" // {
         dependencies = [
@@ -14969,7 +15089,7 @@ in
       sources."strip-eof-1.0.0"
       (sources."style-loader-1.3.0" // {
         dependencies = [
-          sources."loader-utils-2.0.0"
+          sources."loader-utils-2.0.2"
         ];
       })
       (sources."stylehacks-4.0.3" // {
@@ -15032,7 +15152,7 @@ in
       })
       sources."to-regex-3.0.2"
       sources."to-regex-range-5.0.1"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."tough-cookie-2.5.0"
       sources."tslib-2.3.1"
       sources."tty-browserify-0.0.0"
@@ -15102,11 +15222,11 @@ in
       })
       (sources."url-loader-4.1.1" // {
         dependencies = [
-          sources."loader-utils-2.0.0"
+          sources."loader-utils-2.0.2"
           sources."schema-utils-3.1.1"
         ];
       })
-      sources."url-parse-1.5.3"
+      sources."url-parse-1.5.4"
       sources."use-3.1.1"
       (sources."util-0.11.1" // {
         dependencies = [
@@ -15162,7 +15282,7 @@ in
       })
       (sources."webpack-dev-middleware-3.7.3" // {
         dependencies = [
-          sources."mime-2.5.2"
+          sources."mime-2.6.0"
         ];
       })
       (sources."webpack-dev-server-3.11.0" // {
@@ -15365,10 +15485,10 @@ in
   elm-review = nodeEnv.buildNodePackage {
     name = "elm-review";
     packageName = "elm-review";
-    version = "2.6.1";
+    version = "2.7.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/elm-review/-/elm-review-2.6.1.tgz";
-      sha512 = "sWkHt1DMXkRyPqhMAIym4+5OVJHUmexvrYY5cdVkKr9Qdw+6ND1wH6V1ACu4vge3YdonG7UC+6gCYeHkgI760g==";
+      url = "https://registry.npmjs.org/elm-review/-/elm-review-2.7.0.tgz";
+      sha512 = "PvZj6M6rHYpyAGp2MKF/TzeDawioQacBTkVxzlBBGuMoO4LXw2PMIm/NmhkxcD38l5SvDIwpWmyDKvEsMaWNhQ==";
     };
     dependencies = [
       sources."@sindresorhus/is-2.1.1"
@@ -15376,7 +15496,7 @@ in
       sources."@types/cacheable-request-6.0.2"
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/keyv-3.1.3"
-      sources."@types/node-16.11.4"
+      sources."@types/node-17.0.5"
       sources."@types/responselike-1.0.0"
       (sources."ansi-escapes-4.3.2" // {
         dependencies = [
@@ -15410,12 +15530,12 @@ in
       sources."color-name-1.1.4"
       sources."concat-map-0.0.1"
       sources."cross-spawn-7.0.3"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decompress-response-5.0.0"
       sources."defaults-1.0.3"
       sources."defer-to-connect-2.0.1"
       sources."duplexer3-0.1.4"
-      sources."elm-tooling-1.6.0"
+      sources."elm-tooling-1.7.0"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."fast-levenshtein-3.0.0"
@@ -15446,7 +15566,7 @@ in
       sources."isexe-2.0.0"
       sources."json-buffer-3.0.1"
       sources."jsonfile-6.1.0"
-      sources."keyv-4.0.3"
+      sources."keyv-4.0.4"
       sources."kleur-3.0.3"
       sources."locate-path-5.0.0"
       sources."log-symbols-4.1.0"
@@ -15483,7 +15603,7 @@ in
       sources."safe-buffer-5.2.1"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."sisteransi-1.0.5"
       sources."string-width-4.2.3"
       sources."string_decoder-1.3.0"
@@ -15512,4 +15632,30 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  elm-git-install = nodeEnv.buildNodePackage {
+    name = "elm-git-install";
+    packageName = "elm-git-install";
+    version = "0.1.3";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/elm-git-install/-/elm-git-install-0.1.3.tgz";
+      sha512 = "TdMhhgnj15UtbVAIfGo71zoUYKlZRJISriDJLNH/jx1xbvYLAF/x5hbOUG2gFlWypLurUiEPvzpAZzIYdI0N9Q==";
+    };
+    dependencies = [
+      sources."debug-4.3.3"
+      sources."is-git-url-1.0.0"
+      sources."ms-2.1.2"
+      sources."semver-5.7.1"
+      sources."simple-git-1.132.0"
+      sources."upath-1.2.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "A tool for installing private Elm packages from any git url.";
+      homepage = "https://github.com/Skinney/elm-git-install#readme";
+      license = "BSD-3-Clause";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
 }
diff --git a/pkgs/development/compilers/factor-lang/adjust-paths-in-unit-tests.patch b/pkgs/development/compilers/factor-lang/adjust-paths-in-unit-tests.patch
new file mode 100644
index 0000000000000..068d7c09b686d
--- /dev/null
+++ b/pkgs/development/compilers/factor-lang/adjust-paths-in-unit-tests.patch
@@ -0,0 +1,31 @@
+From da8a4b9c1094a568f443c525ca1ce11f686be1bc Mon Sep 17 00:00:00 2001
+From: timor <timor.dd@googlemail.com>
+Date: Thu, 8 Aug 2019 14:13:09 +0200
+Subject: [PATCH] adjust unit test for finding executables in path for NixOS
+
+---
+ basis/io/standard-paths/unix/unix-tests.factor | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/basis/io/standard-paths/unix/unix-tests.factor b/basis/io/standard-paths/unix/unix-tests.factor
+index 986c0564d2..f0772fdcc9 100644
+--- a/basis/io/standard-paths/unix/unix-tests.factor
++++ b/basis/io/standard-paths/unix/unix-tests.factor
+@@ -5,12 +5,12 @@ sequences tools.test ;
+ 
+ { f } [ "" find-in-path ] unit-test
+ { t } [
+-    "ls" find-in-path { "/bin/ls" "/usr/bin/ls" } member?
++    "ls" find-in-path not not
+ ] unit-test
+ 
+ { t } [
+     "/sbin:" "PATH" os-env append "PATH" [
+         "ps" find-in-path
+-        { "/bin/ps" "/sbin/ps" "/usr/bin/ps" } member?
++        not not
+     ] with-os-env
+ ] unit-test
+-- 
+2.19.2
+
diff --git a/pkgs/development/compilers/factor-lang/default.nix b/pkgs/development/compilers/factor-lang/default.nix
deleted file mode 100644
index 4ce55b5ca25c6..0000000000000
--- a/pkgs/development/compilers/factor-lang/default.nix
+++ /dev/null
@@ -1,105 +0,0 @@
-{ lib, stdenv, fetchurl, glib, git,
-  rlwrap, curl, pkg-config, perl, makeWrapper, tzdata, ncurses,
-  pango, cairo, gtk2, gdk-pixbuf, gtkglext,
-  mesa, xorg, openssl, unzip }:
-
-stdenv.mkDerivation rec {
-  pname = "factor-lang";
-  version = "0.98";
-  rev = "7999e72aecc3c5bc4019d43dc4697f49678cc3b4";
-
-  src = fetchurl {
-    url = "https://downloads.factorcode.org/releases/0.98/factor-src-0.98.zip";
-    sha256 = "01ip9mbnar4sv60d2wcwfz62qaamdvbykxw3gbhzqa25z36vi3ri";
-  };
-
-  patches = [
-    ./staging-command-line-0.98-pre.patch
-    ./workdir-0.98-pre.patch
-    ./fuel-dir.patch
-  ];
-
-  nativeBuildInputs = [ makeWrapper unzip ];
-  buildInputs = with xorg; [ git rlwrap curl pkg-config perl
-    libX11 pango cairo gtk2 gdk-pixbuf gtkglext
-    mesa libXmu libXt libICE libSM openssl ];
-
-  buildPhase = ''
-    sed -ie '4i GIT_LABEL = heads/master-${rev}' GNUmakefile
-    make linux-x86-64
-    # De-memoize xdg-* functions, otherwise they break the image.
-    sed -ie 's/^MEMO:/:/' basis/xdg/xdg.factor
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin $out/lib/factor
-    # The released image has library path info embedded, so we
-    # first have to recreate the boot image with Nix paths, and
-    # then use it to build the Nix release image.
-    cp boot.unix-x86.64.image $out/lib/factor/factor.image
-
-    cp -r basis core extra $out/lib/factor
-
-    # Factor uses XDG_CACHE_HOME for cache during compilation.
-    # We can't have that. So set it to $TMPDIR/.cache
-    export XDG_CACHE_HOME=$TMPDIR/.cache && mkdir -p $XDG_CACHE_HOME
-
-    # There is no ld.so.cache in NixOS so we construct one
-    # out of known libraries. The side effect is that find-lib
-    # will work only on the known libraries. There does not seem
-    # to be a generic solution here.
-    find $(echo ${lib.makeLibraryPath (with xorg; [
-        glib libX11 pango cairo gtk2 gdk-pixbuf gtkglext
-        mesa libXmu libXt libICE libSM ])} | sed -e 's#:# #g') -name \*.so.\* > $TMPDIR/so.lst
-
-    (echo $(cat $TMPDIR/so.lst | wc -l) "libs found in cache \`/etc/ld.so.cache'";
-    for l in $(<$TMPDIR/so.lst);
-    do
-      echo "	$(basename $l) (libc6,x86-64) => $l";
-    done)> $out/lib/factor/ld.so.cache
-
-    sed -ie "s#/sbin/ldconfig -p#cat $out/lib/factor/ld.so.cache#g" \
-      $out/lib/factor/basis/alien/libraries/finder/linux/linux.factor
-
-    sed -ie 's#/usr/share/zoneinfo/#${tzdata}/share/zoneinfo/#g' \
-      $out/lib/factor/extra/tzinfo/tzinfo.factor
-
-    sed -ie 's#/usr/share/terminfo#${ncurses.out}/share/terminfo#g' \
-      $out/lib/factor/extra/terminfo/terminfo.factor
-
-    cp ./factor $out/bin
-    wrapProgram $out/bin/factor --prefix LD_LIBRARY_PATH : \
-      "${lib.makeLibraryPath (with xorg; [ glib
-        libX11 pango cairo gtk2 gdk-pixbuf gtkglext
-        mesa libXmu libXt libICE libSM openssl])}"
-
-    sed -ie 's#/bin/.factor-wrapped#/lib/factor/factor#g' $out/bin/factor
-    mv $out/bin/.factor-wrapped $out/lib/factor/factor
-
-    # build full factor image from boot image
-    (cd $out/bin && ./factor  -script -e='"unix-x86.64" USING: system bootstrap.image memory ; make-image save 0 exit' )
-
-    # make a new bootstrap image
-    (cd $out/bin && ./factor  -script -e='"unix-x86.64" USING: system tools.deploy.backend ; make-boot-image 0 exit' )
-
-    # rebuild final full factor image to include all patched sources
-    (cd $out/lib/factor && ./factor -i=boot.unix-x86.64.image)
-
-    # install fuel mode for emacs
-    mkdir -p $out/share/emacs/site-lisp
-    # update default paths in factor-listener.el for fuel mode
-    substituteInPlace misc/fuel/fuel-listener.el \
-      --subst-var-by fuel_factor_root_dir $out/lib/factor \
-      --subst-var-by fuel_listener_factor_binary $out/bin/factor
-    cp misc/fuel/*.el $out/share/emacs/site-lisp/
-  '';
-
-  meta = with lib; {
-    homepage = "https://factorcode.org";
-    license = licenses.bsd2;
-    description = "A concatenative, stack-based programming language";
-
-    maintainers = [ maintainers.vrthra maintainers.spacefrogg ];
-    platforms = [ "x86_64-linux" ];
-  };
-}
diff --git a/pkgs/development/compilers/factor-lang/factor98.nix b/pkgs/development/compilers/factor-lang/factor98.nix
new file mode 100644
index 0000000000000..f9b593398259b
--- /dev/null
+++ b/pkgs/development/compilers/factor-lang/factor98.nix
@@ -0,0 +1,218 @@
+{ lib
+, stdenv
+, cairo
+, curl
+, fetchurl
+, freealut
+, gdk-pixbuf
+, git
+, glib
+, gnome2
+, graphviz
+, gtk2-x11
+, interpreter
+, libGL
+, libGLU
+, libogg
+, librsvg
+, libvorbis
+, makeWrapper
+, ncurses
+, openal
+, openssl
+, pango
+, pcre
+, runCommand
+, runtimeShell
+, tzdata
+, udis86
+, unzip
+, writeScriptBin
+, zlib
+}:
+let
+  runtimeLibs = [
+    cairo
+    freealut
+    gdk-pixbuf
+    glib
+    gnome2.gtkglext
+    graphviz
+    gtk2-x11
+    libGL
+    libGLU
+    libogg
+    libvorbis
+    openal
+    openssl
+    pango
+    pcre
+    udis86
+    zlib
+  ];
+
+  wrapFactorScript = { from, to ? false, runtimeLibs }: ''
+    # Set Gdk pixbuf loaders file to the one from the build dependencies here
+    unset GDK_PIXBUF_MODULE_FILE
+    # Defined in gdk-pixbuf setup hook
+    findGdkPixbufLoaders "${librsvg}"
+
+    ${if to then "makeWrapper ${from} ${to}" else "wrapProgram ${from}"} \
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --argv0 factor \
+      --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:${lib.makeLibraryPath runtimeLibs} \
+      --prefix PATH : ${lib.makeBinPath [ graphviz ]}
+  '';
+
+  wrapFactor = runtimeLibs:
+    runCommand (lib.appendToName "with-libs" interpreter).name
+      {
+        nativeBuildInputs = [ makeWrapper ];
+        buildInputs = [ gdk-pixbuf ];
+        passthru.runtimeLibs = runtimeLibs ++ interpreter.runtimeLibs;
+      }
+      (wrapFactorScript {
+        from = "${interpreter}/lib/factor/.factor.wrapped";
+        to = "$out/bin/factor";
+        runtimeLibs = (runtimeLibs ++ interpreter.runtimeLibs);
+      });
+
+  # Development helper for use in nix shell
+  wrapLocalFactor = writeScriptBin "wrapFactor" ''
+    #!${runtimeShell}
+    ${wrapFactorScript { from = "./factor"; inherit runtimeLibs; }}
+    ln -sf factor.image .factor-wrapped.image
+  '';
+  rev = "7999e72aecc3c5bc4019d43dc4697f49678cc3b4";
+  version = "0.98";
+
+in
+stdenv.mkDerivation {
+  pname = "factor-lang";
+  inherit version;
+
+  src = fetchurl {
+    url = "https://downloads.factorcode.org/releases/${version}/factor-src-${version}.zip";
+    sha256 = "01ip9mbnar4sv60d2wcwfz62qaamdvbykxw3gbhzqa25z36vi3ri";
+  };
+
+  patches = [
+    ./staging-command-line-0.98-pre.patch
+    ./workdir-0.98-pre.patch
+    ./adjust-paths-in-unit-tests.patch
+  ];
+
+  nativeBuildInputs = [ git makeWrapper curl unzip wrapLocalFactor ];
+  buildInputs = runtimeLibs;
+
+  postPatch = ''
+    sed -ie '4i GIT_LABEL = heads/master-${rev}' GNUmakefile
+
+    # There is no ld.so.cache in NixOS so we patch out calls to that completely.
+    # This should work as long as no application code relies on `find-library*`
+    # to return a match, which currently is the case and also a justified assumption.
+
+    sed -ie "s#/sbin/ldconfig -p#cat $out/lib/factor/ld.so.cache#g" \
+      basis/alien/libraries/finder/linux/linux.factor
+
+    # Some other hard-coded paths to fix:
+    sed -i 's#/usr/share/zoneinfo/#${tzdata}/share/zoneinfo/#g' \
+      extra/tzinfo/tzinfo.factor
+
+    sed -i 's#/usr/share/terminfo#${ncurses.out}/share/terminfo#g' \
+      extra/terminfo/terminfo.factor
+
+    # De-memoize xdg-* functions, otherwise they break the image.
+    sed -ie 's/^MEMO:/:/' basis/xdg/xdg.factor
+
+    # update default paths in factor-listener.el for fuel mode
+    substituteInPlace misc/fuel/fuel-listener.el \
+      --replace '(defcustom fuel-factor-root-dir nil' "(defcustom fuel-factor-root-dir \"$out/lib/factor\""
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    # Necessary here, because ld.so.cache is needed in its final location during rebuild.
+    mkdir -p $out/bin $out/lib/factor
+    patchShebangs ./build.sh
+    # Factor uses XDG_CACHE_HOME for cache during compilation.
+    # We can't have that. So, set it to $TMPDIR/.cache
+    export XDG_CACHE_HOME=$TMPDIR/.cache && mkdir -p $XDG_CACHE_HOME
+
+    # There is no ld.so.cache in NixOS so we construct one
+    # out of known libraries. The side effect is that find-lib
+    # will work only on the known libraries. There does not seem
+    # to be a generic solution here.
+    find $(echo ${lib.makeLibraryPath runtimeLibs} | sed -e 's#:# #g') -name \*.so.\* > $TMPDIR/so.lst
+    (echo $(cat $TMPDIR/so.lst | wc -l) "libs found in cache \`/etc/ld.so.cache'";
+      for l in $(<$TMPDIR/so.lst); do
+        echo " $(basename $l) (libc6,x86-64) => $l";
+      done)> $out/lib/factor/ld.so.cache
+
+    make -j$NIX_BUILD_CORES linux-x86-64
+    ./build.sh bootstrap
+    runHook postBuild
+  '';
+
+  # For now, the check phase runs, but should always return 0. This way the logs
+  # contain the test failures until all unit tests are fixed. Then, it should
+  # return 1 if any test failures have occured.
+  doCheck = false;
+  checkPhase = ''
+    runHook preCheck
+    set +e
+    ./factor -e='USING: tools.test zealot.factor sequences namespaces formatting ;
+      zealot-core-vocabs "compiler" suffix [ test ] each :test-failures
+      test-failures get length "Number of failed Tests: %d\n" printf'
+    [ $? -eq 0 ] || {
+      mkdir -p "$out/nix-support"
+      touch "$out/nix-support/failed"
+    }
+    set -e
+    runHook postCheck
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    cp -r factor factor.image LICENSE.txt README.md basis core extra misc $out/lib/factor
+
+    # Create a wrapper in bin/ and lib/factor/
+    ${wrapFactorScript { from = "$out/lib/factor/factor"; inherit runtimeLibs; }}
+    mv $out/lib/factor/factor.image $out/lib/factor/.factor-wrapped.image
+    cp $out/lib/factor/factor $out/bin/
+
+    # Emacs fuel expects the image being named `factor.image` in the factor base dir
+    ln -s $out/lib/factor/.factor-wrapped.image $out/lib/factor/factor.image
+
+    # install fuel mode for emacs
+    mkdir -p $out/share/emacs/site-lisp
+    ln -s $out/lib/factor/misc/fuel/*.el $out/share/emacs/site-lisp/
+    runHook postInstall
+  '';
+
+  passthru = {
+    inherit runtimeLibs wrapFactorScript;
+    withLibs = wrapFactor;
+  };
+
+  meta = with lib; {
+    homepage = "https://factorcode.org/";
+    description = "A concatenative, stack-based programming language";
+    longDescription = ''
+      The Factor programming language is a concatenative, stack-based
+      programming language with high-level features including dynamic types,
+      extensible syntax, macros, and garbage collection. On a practical side,
+      Factor has a full-featured library, supports many different platforms, and
+      has been extensively documented.
+
+      The implementation is fully compiled for performance, while still
+      supporting interactive development. Factor applications are portable
+      between all common platforms. Factor can deploy stand-alone applications
+      on all platforms. Full source code for the Factor project is available
+      under a BSD license.
+    '';
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ vrthra spacefrogg ];
+    platforms = lib.intersectLists platforms.x86_64 platforms.linux;
+  };
+}
diff --git a/pkgs/development/compilers/factor-lang/fuel-dir.patch b/pkgs/development/compilers/factor-lang/fuel-dir.patch
deleted file mode 100644
index 8f45b0372469f..0000000000000
--- a/pkgs/development/compilers/factor-lang/fuel-dir.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/misc/fuel/fuel-listener.el b/misc/fuel/fuel-listener.el
-index 2d1b182a75..bf2e573425 100644
---- a/misc/fuel/fuel-listener.el
-+++ b/misc/fuel/fuel-listener.el
-@@ -30,13 +30,13 @@
-   "Interacting with a Factor listener inside Emacs."
-   :group 'fuel)
- 
--(defcustom fuel-factor-root-dir nil
-+(defcustom fuel-factor-root-dir "@fuel_factor_root_dir@"
-   "Full path to the factor root directory when starting a listener."
-   :type 'directory
-   :group 'fuel-listener)
- 
- ;;; Is factor.com still valid on Windows...?
--(defcustom fuel-listener-factor-binary nil
-+(defcustom fuel-listener-factor-binary "@fuel_listener_factor_binary@"
-   "Full path to the factor executable to use when starting a listener."
-   :type '(file :must-match t)
-   :group 'fuel-listener)
diff --git a/pkgs/development/compilers/factor-lang/scope.nix b/pkgs/development/compilers/factor-lang/scope.nix
new file mode 100644
index 0000000000000..02f0f88963418
--- /dev/null
+++ b/pkgs/development/compilers/factor-lang/scope.nix
@@ -0,0 +1,16 @@
+{ lib, pkgs
+, overrides ? (self: super: {})}:
+
+let
+  inside = (self:
+  let callPackage = pkgs.newScope self;
+  in rec {
+    interpreter = callPackage ./factor98.nix { inherit (pkgs) stdenv; };
+
+    # Convenience access for using the returned attribute the same way as the
+    # interpreter derivation. Takes a list of runtime libraries as its only
+    # argument.
+    inherit (self.interpreter) withLibs;
+  });
+  extensible-self = lib.makeExtensible (lib.extends overrides inside);
+in extensible-self
diff --git a/pkgs/development/compilers/fasm/bin.nix b/pkgs/development/compilers/fasm/bin.nix
index daadebf4c4dcc..9f4263b08ed54 100644
--- a/pkgs/development/compilers/fasm/bin.nix
+++ b/pkgs/development/compilers/fasm/bin.nix
@@ -3,11 +3,11 @@
 stdenvNoCC.mkDerivation rec {
   pname = "fasm-bin";
 
-  version = "1.73.27";
+  version = "1.73.29";
 
   src = fetchurl {
     url = "https://flatassembler.net/fasm-${version}.tgz";
-    sha256 = "sha256-aAFIN3+207ZmOFKID6oDUU1zJrWZV0LTOofiRPSM8LE=";
+    sha256 = "sha256-Yyj02DRo9wTkJ01ukOwElHr1ZyZFPOMTibwyAkqYISs=";
   };
 
   installPhase = ''
diff --git a/pkgs/development/compilers/flutter/default.nix b/pkgs/development/compilers/flutter/default.nix
index 940b379173fb2..a91105adc33e5 100644
--- a/pkgs/development/compilers/flutter/default.nix
+++ b/pkgs/development/compilers/flutter/default.nix
@@ -4,20 +4,20 @@ let
   getPatches = dir:
     let files = builtins.attrNames (builtins.readDir dir);
     in map (f: dir + ("/" + f)) files;
-  version = "2.5.1";
+  version = "2.8.0";
   channel = "stable";
   filename = "flutter_linux_${version}-${channel}.tar.xz";
 
   # Decouples flutter derivation from dart derivation,
   # use specific dart version to not need to bump dart derivation when bumping flutter.
-  dartVersion = "2.14.2";
+  dartVersion = "2.15.0";
   dartSourceBase = "https://storage.googleapis.com/dart-archive/channels";
   dartForFlutter = dart.override {
     version = dartVersion;
     sources = {
       "${dartVersion}-x86_64-linux" = fetchurl {
         url = "${dartSourceBase}/stable/release/${dartVersion}/sdk/dartsdk-linux-x64-release.zip";
-        sha256 = "1gr2dr683kz0a0k6rcn4jcbxf9fr2xlzi5fcgn1lzrrxvys2lddx";
+        sha256 = "sha256-U1V1OPmFeNZCdBxFy7yqAbAE0cxh9f2UqKQmreJu9YA=";
       };
     };
   };
@@ -29,7 +29,7 @@ in {
     pname = "flutter";
     src = fetchurl {
       url = "https://storage.googleapis.com/flutter_infra_release/releases/${channel}/linux/${filename}";
-      sha256 = "12ycz7iasrc9p9c6zr95l6llyji3za43gsx8cmr2kjfiv23bcrv2";
+      sha256 = "sha256-sSz/owGdCMB5b9+cAWvLkrfFcIIq5665Xopd4JKv1G4=";
     };
     patches = getPatches ./patches;
   };
diff --git a/pkgs/development/compilers/flutter/flutter.nix b/pkgs/development/compilers/flutter/flutter.nix
index 376e0f529874f..d700f686f630d 100644
--- a/pkgs/development/compilers/flutter/flutter.nix
+++ b/pkgs/development/compilers/flutter/flutter.nix
@@ -169,7 +169,7 @@ runCommand drvName
     homepage = "https://flutter.dev";
     license = licenses.bsd3;
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ babariviere ericdallo thiagokokada ];
+    maintainers = with maintainers; [ babariviere ericdallo ];
   };
 } ''
   mkdir -p $out/bin
diff --git a/pkgs/development/compilers/flutter/patches/move-cache.patch b/pkgs/development/compilers/flutter/patches/move-cache.patch
index 2610c155804b4..701cab54d8078 100644
--- a/pkgs/development/compilers/flutter/patches/move-cache.patch
+++ b/pkgs/development/compilers/flutter/patches/move-cache.patch
@@ -1,62 +1,57 @@
 diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart
-index 80fb16673f..5723f93f9f 100644
+index ed42baea29..fee2fb1d62 100644
 --- a/packages/flutter_tools/lib/src/asset.dart
 +++ b/packages/flutter_tools/lib/src/asset.dart
-@@ -7,6 +7,7 @@
- import 'package:meta/meta.dart';
- import 'package:package_config/package_config.dart';
- 
-+import 'base/common.dart';
- import 'base/context.dart';
- import 'base/deferred_component.dart';
- import 'base/file_system.dart';
-@@ -16,6 +17,7 @@ import 'build_info.dart';
- import 'cache.dart';
+@@ -11,11 +11,11 @@ import 'base/file_system.dart';
+ import 'base/logger.dart';
+ import 'base/platform.dart';
+ import 'build_info.dart';
+-import 'cache.dart';
  import 'convert.dart';
  import 'dart/package_map.dart';
-+import 'globals.dart' as globals;
  import 'devfs.dart';
  import 'flutter_manifest.dart';
++import 'globals.dart' as globals;
  import 'license_collector.dart';
-@@ -449,7 +451,7 @@ class ManifestAssetBundle implements AssetBundle {
-       for (final Map<String, Object> font in family['fonts'] as List<Map<String, Object>>) {
-         final Uri entryUri = _fileSystem.path.toUri(font['asset'] as String);
+ import 'project.dart';
+ 
+@@ -504,7 +504,7 @@ class ManifestAssetBundle implements AssetBundle {
+         }
+         final Uri entryUri = _fileSystem.path.toUri(asset);
          result.add(_Asset(
--          baseDir: _fileSystem.path.join(Cache.flutterRoot, 'bin', 'cache', 'artifacts', 'material_fonts'),
-+          baseDir: _fileSystem.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'artifacts', 'material_fonts'),
+-          baseDir: _fileSystem.path.join(Cache.flutterRoot!, 'bin', 'cache', 'artifacts', 'material_fonts'),
++          baseDir: _fileSystem.path.join(globals.fsUtils.homeDirPath!, '.cache', 'flutter', 'artifacts', 'material_fonts'),
            relativeUri: Uri(path: entryUri.pathSegments.last),
            entryUri: entryUri,
            package: null,
 diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
-index 152d4e75e5..1fcff7e2bd 100644
+index 7870c7807f..3fcf92f20d 100644
 --- a/packages/flutter_tools/lib/src/cache.dart
 +++ b/packages/flutter_tools/lib/src/cache.dart
-@@ -9,6 +9,7 @@ import 'package:file/memory.dart';
- import 'package:meta/meta.dart';
- import 'package:process/process.dart';
- 
+@@ -22,6 +22,7 @@ import 'base/user_messages.dart';
+ import 'build_info.dart';
+ import 'convert.dart';
+ import 'features.dart';
 +import 'globals.dart' as globals;
- import 'base/common.dart';
- import 'base/error_handling_io.dart';
- import 'base/file_system.dart';
-@@ -298,8 +299,15 @@ class Cache {
+ 
+ const String kFlutterRootEnvironmentVariableName = 'FLUTTER_ROOT'; // should point to //flutter/ (root of flutter/flutter repo)
+ const String kFlutterEngineEnvironmentVariableName = 'FLUTTER_ENGINE'; // should point to //engine/src/ (root of flutter/engine repo)
+@@ -302,8 +303,13 @@ class Cache {
        return;
      }
      assert(_lock == null);
-+
 +    final Directory dir = _fileSystem.directory(_fileSystem.path.join(globals.fsUtils.homeDirPath!, '.cache', 'flutter'));
 +    if (!dir.existsSync()) {
 +      dir.createSync(recursive: true);
 +      globals.os.chmod(dir, '755');
 +    }
-+
      final File lockFile =
 -      _fileSystem.file(_fileSystem.path.join(flutterRoot!, 'bin', 'cache', 'lockfile'));
 +      _fileSystem.file(_fileSystem.path.join(globals.fsUtils.homeDirPath!, '.cache', 'flutter', 'lockfile'));
      try {
        _lock = lockFile.openSync(mode: FileMode.write);
      } on FileSystemException catch (e) {
-@@ -404,7 +412,7 @@ class Cache {
+@@ -453,7 +459,7 @@ class Cache {
      if (_rootOverride != null) {
        return _fileSystem.directory(_fileSystem.path.join(_rootOverride!.path, 'bin', 'cache'));
      } else {
diff --git a/pkgs/development/compilers/fstar/default.nix b/pkgs/development/compilers/fstar/default.nix
index 9c25f9ec94a5a..43bdbda818467 100644
--- a/pkgs/development/compilers/fstar/default.nix
+++ b/pkgs/development/compilers/fstar/default.nix
@@ -1,36 +1,20 @@
 { lib, stdenv, fetchFromGitHub, z3, ocamlPackages, makeWrapper, installShellFiles }:
 
-let
-  # FStar requires sedlex < 2.4
-  # see https://github.com/FStarLang/FStar/issues/2343
-  sedlex-2_3 = ocamlPackages.sedlex_2.overrideAttrs (_: rec {
-    pname = "sedlex";
-    version = "2.3";
-    src = fetchFromGitHub {
-       owner = "ocaml-community";
-       repo = "sedlex";
-       rev = "v${version}";
-       sha256 = "WXUXUuIaBUrFPQOKtZ7dgDZYdpEVnoJck0dkrCi8g0c=";
-    };
-  });
-in
-
 stdenv.mkDerivation rec {
   pname = "fstar";
-  version = "2021.10.16";
+  version = "2021.12.25";
 
   src = fetchFromGitHub {
     owner = "FStarLang";
     repo = "FStar";
     rev = "v${version}";
-    sha256 = "03b693s7s7dzflv5qkf61gd8ji9bn6fq4pxd8pd3a6ppkwj6b5vc";
+    sha256 = "RmXKv/admC1w26z/ClNhH11J8n87WTfDr2lYOF6Fx7I=";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
   buildInputs = [
     z3
-    sedlex-2_3
   ] ++ (with ocamlPackages; [
     ocaml
     findlib
@@ -43,6 +27,7 @@ stdenv.mkDerivation rec {
     menhir
     menhirLib
     pprint
+    sedlex_2
     ppxlib
     ppx_deriving
     ppx_deriving_yojson
diff --git a/pkgs/development/compilers/gambit/bootstrap.nix b/pkgs/development/compilers/gambit/bootstrap.nix
index ec963ab3b8d4e..b81e64eaac325 100644
--- a/pkgs/development/compilers/gambit/bootstrap.nix
+++ b/pkgs/development/compilers/gambit/bootstrap.nix
@@ -15,6 +15,15 @@ gccStdenv.mkDerivation {
 
   buildInputs = [ autoconf ];
 
+  # disable stackprotector on aarch64-darwin for now
+  # build error:
+  # ```
+  # /private/tmp/nix-build-gambit-bootstrap-4.9.3.drv-0/ccbOVwnF.s:207:15: error: index must be an integer in range [-256, 255].
+  #         ldr     x2, [x2, ___stack_chk_guard];momd
+  #                          ^
+  # ```
+  hardeningDisable = lib.optionals (gccStdenv.isAarch64 && gccStdenv.isDarwin) [ "stackprotector" ];
+
   configurePhase = ''
     export CC=${gcc}/bin/gcc CXX=${gcc}/bin/g++ \
            CPP=${gcc}/bin/cpp CXXCPP=${gcc}/bin/cpp LD=${gcc}/bin/ld \
@@ -33,7 +42,7 @@ gccStdenv.mkDerivation {
   '';
 
   installPhase = ''
-    cp -fa ./ $out/gambit/
+    cp -fa ./gsc-boot $out/gambit/
   '';
 
   forceShare = [ "info" ];
diff --git a/pkgs/development/compilers/gambit/build.nix b/pkgs/development/compilers/gambit/build.nix
index d67e0053bbac0..e592107adeca7 100644
--- a/pkgs/development/compilers/gambit/build.nix
+++ b/pkgs/development/compilers/gambit/build.nix
@@ -35,6 +35,15 @@ gccStdenv.mkDerivation rec {
   # Or wrap relevant programs to add a suitable PATH ?
   #runtimeDeps = [ gnused gnugrep ];
 
+  # disable stackprotector on aarch64-darwin for now
+  # build error:
+  # ```
+  # /private/tmp/nix-build-gambit-unstable-2020-09-20.drv-0/ccIjyeeb.s:207:15: error: index must be an integer in range [-256, 255].
+  #         ldr     x2, [x2, ___stack_chk_guard];momd
+  #                          ^
+  # ```
+  hardeningDisable = lib.optionals (gccStdenv.isAarch64 && gccStdenv.isDarwin) [ "stackprotector" ];
+
   configureFlags = [
     "--enable-targets=${gambit-params.targets}"
     "--enable-single-host"
diff --git a/pkgs/development/compilers/gcc-arm-embedded/6/default.nix b/pkgs/development/compilers/gcc-arm-embedded/6/default.nix
index a0d414d974f01..6d7eed72932f3 100644
--- a/pkgs/development/compilers/gcc-arm-embedded/6/default.nix
+++ b/pkgs/development/compilers/gcc-arm-embedded/6/default.nix
@@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
   subdir = "6-2017q2";
 
   suffix = {
+    aarch64-darwin = "mac";  # use intel binaries via rosetta
     x86_64-darwin = "mac";
     x86_64-linux  = "linux";
   }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
@@ -19,6 +20,7 @@ stdenv.mkDerivation rec {
   src = fetchurl {
     url = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${subdir}/gcc-arm-none-eabi-${release}-${suffix}.tar.bz2";
     sha256 = {
+      aarch64-darwin = "0019ylpq4inq7p5gydpmc9m8ni72fz2csrjlqmgx1698998q0c3x";
       x86_64-darwin = "0019ylpq4inq7p5gydpmc9m8ni72fz2csrjlqmgx1698998q0c3x";
       x86_64-linux  = "1hvwi02mx34al525sngnl0cm7dkmzxfkb1brq9kvbv28wcplp3p6";
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
@@ -48,6 +50,6 @@ stdenv.mkDerivation rec {
     homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
     license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
     maintainers = with maintainers; [ prusnak ];
-    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/development/compilers/gcc-arm-embedded/7/default.nix b/pkgs/development/compilers/gcc-arm-embedded/7/default.nix
index 4df2a90f52ea0..36dc4fb12e456 100644
--- a/pkgs/development/compilers/gcc-arm-embedded/7/default.nix
+++ b/pkgs/development/compilers/gcc-arm-embedded/7/default.nix
@@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
   subdir = "7-2018q2";
 
   suffix = {
+    aarch64-darwin = "mac";  # use intel binaries via rosetta
     x86_64-darwin = "mac";
     x86_64-linux  = "linux";
   }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
@@ -19,6 +20,7 @@ stdenv.mkDerivation rec {
   src = fetchurl {
     url = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${subdir}/gcc-arm-none-eabi-${release}-${suffix}.tar.bz2";
     sha256 = {
+      aarch64-darwin = "0nc7m0mpa39qyhfyydxkkyqm7spfc27xf6ygi2vd2aym4r9azi61";
       x86_64-darwin = "0nc7m0mpa39qyhfyydxkkyqm7spfc27xf6ygi2vd2aym4r9azi61";
       x86_64-linux  = "0sgysp3hfpgrkcbfiwkp0a7ymqs02khfbrjabm52b5z61sgi05xv";
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
@@ -48,6 +50,6 @@ stdenv.mkDerivation rec {
     homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
     license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
     maintainers = with maintainers; [ prusnak ];
-    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/development/compilers/gcc-arm-embedded/8/default.nix b/pkgs/development/compilers/gcc-arm-embedded/8/default.nix
index 152ecdb867d9c..25d8b611f3dd0 100644
--- a/pkgs/development/compilers/gcc-arm-embedded/8/default.nix
+++ b/pkgs/development/compilers/gcc-arm-embedded/8/default.nix
@@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
   subdir = "8-2019q3/RC1.1";
 
   suffix = {
+    aarch64-darwin = "mac";  # use intel binaries via rosetta
     x86_64-darwin = "mac";
     x86_64-linux  = "linux";
   }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
@@ -19,6 +20,7 @@ stdenv.mkDerivation rec {
   src = fetchurl {
     url = "https://developer.arm.com/-/media/Files/downloads/gnu-rm/${subdir}/gcc-arm-none-eabi-${release}-${suffix}.tar.bz2";
     sha256 = {
+      aarch64-darwin = "fc235ce853bf3bceba46eff4b95764c5935ca07fc4998762ef5e5b7d05f37085";
       x86_64-darwin = "fc235ce853bf3bceba46eff4b95764c5935ca07fc4998762ef5e5b7d05f37085";
       x86_64-linux  = "b50b02b0a16e5aad8620e9d7c31110ef285c1dde28980b1a9448b764d77d8f92";
     }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
@@ -48,6 +50,6 @@ stdenv.mkDerivation rec {
     homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
     license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
     maintainers = with maintainers; [ prusnak ];
-    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/development/compilers/gcc/10/default.nix b/pkgs/development/compilers/gcc/10/default.nix
index f9dd0465b9258..4493fd936ec38 100644
--- a/pkgs/development/compilers/gcc/10/default.nix
+++ b/pkgs/development/compilers/gcc/10/default.nix
@@ -64,6 +64,7 @@ let majorVersion = "10";
     patches =
          optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
       ++ optional noSysDirs ../no-sys-dirs.patch
+      ++ optional (noSysDirs && hostPlatform.isRiscV) ../no-sys-dirs-riscv.patch
       /* ++ optional (hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied
         url = "https://git.busybox.net/buildroot/plain/package/gcc/${version}/0900-remove-selftests.patch?id=11271540bfe6adafbc133caf6b5b902a816f5f02";
         sha256 = ""; # TODO: uncomment and check hash when available.
diff --git a/pkgs/development/compilers/gcc/11/default.nix b/pkgs/development/compilers/gcc/11/default.nix
index f71f941540c47..a9498b1060dba 100644
--- a/pkgs/development/compilers/gcc/11/default.nix
+++ b/pkgs/development/compilers/gcc/11/default.nix
@@ -64,6 +64,7 @@ let majorVersion = "11";
     patches =
          optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
       ++ optional noSysDirs ../no-sys-dirs.patch
+      ++ optional (noSysDirs && hostPlatform.isRiscV) ../no-sys-dirs-riscv.patch
       /* ++ optional (hostPlatform != buildPlatform) (fetchpatch { # XXX: Refine when this should be applied
         url = "https://git.busybox.net/buildroot/plain/package/gcc/${version}/0900-remove-selftests.patch?id=11271540bfe6adafbc133caf6b5b902a816f5f02";
         sha256 = ""; # TODO: uncomment and check hash when available.
diff --git a/pkgs/development/compilers/gcc/9/default.nix b/pkgs/development/compilers/gcc/9/default.nix
index 604d90fa7828e..ebdc55ee3f8f1 100644
--- a/pkgs/development/compilers/gcc/9/default.nix
+++ b/pkgs/development/compilers/gcc/9/default.nix
@@ -63,6 +63,11 @@ with lib;
 with builtins;
 
 let majorVersion = "9";
+    /*
+      If you update, please build on aarch64-linux
+      and check braces adjacent to `cplusplus` lines in file
+      ./result/lib/gcc/aarch64-unknown-linux-gnu/9.*.0/include/arm_acle.h
+    */
     version = "${majorVersion}.3.0";
 
     inherit (stdenv) buildPlatform hostPlatform targetPlatform;
diff --git a/pkgs/development/compilers/gcc/no-sys-dirs-riscv.patch b/pkgs/development/compilers/gcc/no-sys-dirs-riscv.patch
new file mode 100644
index 0000000000000..00e2838af6fd4
--- /dev/null
+++ b/pkgs/development/compilers/gcc/no-sys-dirs-riscv.patch
@@ -0,0 +1,12 @@
+--- a/gcc/config/riscv/linux.h
++++ b/gcc/config/riscv/linux.h
+@@ -69,8 +69,4 @@
+ 
+ #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
+ 
+-#define STARTFILE_PREFIX_SPEC 			\
+-   "/lib" XLEN_SPEC "/" ABI_SPEC "/ "		\
+-   "/usr/lib" XLEN_SPEC "/" ABI_SPEC "/ "	\
+-   "/lib/ "					\
+-   "/usr/lib/ "
++#define STARTFILE_PREFIX_SPEC ""
diff --git a/pkgs/development/compilers/gerbil/build.nix b/pkgs/development/compilers/gerbil/build.nix
index 3d2fd7551e67d..040f17ff2850a 100644
--- a/pkgs/development/compilers/gerbil/build.nix
+++ b/pkgs/development/compilers/gerbil/build.nix
@@ -21,6 +21,15 @@ stdenv.mkDerivation rec {
   buildInputs = [ gambit ]
     ++ buildInputs_libraries; # ++ buildInputs_staticLibraries;
 
+  # disable stackprotector on aarch64-darwin for now
+  # build error:
+  # ```
+  # /private/tmp/nix-build-gerbil-unstable-2020-11-05.drv-0/ccjyhWKi.s:326:15: error: index must be an integer in range [-256, 255].
+  #         ldr     x2, [x2, ___stack_chk_guard];momd
+  #                          ^
+  # ```
+  hardeningDisable = lib.optionals (gccStdenv.isAarch64 && gccStdenv.isDarwin) [ "stackprotector" ];
+
   NIX_CFLAGS_COMPILE = "-I${libmysqlclient}/include/mysql -L${libmysqlclient}/lib/mysql";
 
   postPatch = ''
diff --git a/pkgs/development/compilers/ghc/8.10.2-binary.nix b/pkgs/development/compilers/ghc/8.10.2-binary.nix
index bf909016ac228..a29a5b0b5ab69 100644
--- a/pkgs/development/compilers/ghc/8.10.2-binary.nix
+++ b/pkgs/development/compilers/ghc/8.10.2-binary.nix
@@ -3,6 +3,8 @@
 , ncurses5
 , ncurses6, gmp, libiconv, numactl
 , llvmPackages
+, coreutils
+, targetPackages
 
   # minimal = true; will remove files that aren't strictly necessary for
   # regular builds and GHC bootstrapping.
@@ -140,6 +142,19 @@ let
   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 {
@@ -156,7 +171,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ perl ];
   propagatedBuildInputs =
-    lib.optionals useLLVM [ llvmPackages.llvm ]
     # 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
@@ -177,7 +191,7 @@ stdenv.mkDerivation rec {
     # 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
+    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.
@@ -278,6 +292,15 @@ stdenv.mkDerivation rec {
   # 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
@@ -360,7 +383,6 @@ stdenv.mkDerivation rec {
 
   doInstallCheck = true;
   installCheckPhase = ''
-    unset ${libEnvVar}
     # Sanity check, can ghc create executables?
     cd $TMP
     mkdir test-ghc; cd test-ghc
@@ -369,7 +391,9 @@ stdenv.mkDerivation rec {
       module Main where
       main = putStrLn \$([|"yes"|])
     EOF
-    $out/bin/ghc --make main.hs || exit 1
+    # 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" ]
   '';
@@ -378,6 +402,8 @@ stdenv.mkDerivation rec {
     targetPrefix = "";
     enableShared = true;
 
+    inherit llvmPackages;
+
     # Our Cabal compiler name
     haskellCompilerName = "ghc-${version}";
   };
diff --git a/pkgs/development/compilers/ghc/8.10.7-binary.nix b/pkgs/development/compilers/ghc/8.10.7-binary.nix
index 58be16dc5693d..7b10f60affda1 100644
--- a/pkgs/development/compilers/ghc/8.10.7-binary.nix
+++ b/pkgs/development/compilers/ghc/8.10.7-binary.nix
@@ -3,6 +3,8 @@
 , ncurses5
 , ncurses6, gmp, libiconv, numactl
 , llvmPackages
+, coreutils
+, targetPackages
 
   # minimal = true; will remove files that aren't strictly necessary for
   # regular builds and GHC bootstrapping.
@@ -155,6 +157,19 @@ let
   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 {
@@ -175,9 +190,6 @@ stdenv.mkDerivation rec {
   #       and update this comment accordingly.
 
   nativeBuildInputs = [ perl ];
-  propagatedBuildInputs =
-    lib.optionals useLLVM [ llvmPackages.llvm ]
-    ;
 
   # Set LD_LIBRARY_PATH or equivalent so that the programs running as part
   # of the bindist installer can find the libraries they expect.
@@ -278,6 +290,15 @@ stdenv.mkDerivation rec {
   # 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
@@ -360,7 +381,6 @@ stdenv.mkDerivation rec {
 
   doInstallCheck = true;
   installCheckPhase = ''
-    unset ${libEnvVar}
     # Sanity check, can ghc create executables?
     cd $TMP
     mkdir test-ghc; cd test-ghc
@@ -369,7 +389,7 @@ stdenv.mkDerivation rec {
       module Main where
       main = putStrLn \$([|"yes"|])
     EOF
-    $out/bin/ghc --make main.hs || exit 1
+    env -i $out/bin/ghc --make main.hs || exit 1
     echo compilation ok
     [ $(./main) == "yes" ]
   '';
@@ -378,6 +398,8 @@ stdenv.mkDerivation rec {
     targetPrefix = "";
     enableShared = true;
 
+    inherit llvmPackages;
+
     # Our Cabal compiler name
     haskellCompilerName = "ghc-${version}";
   };
diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix
index 7e59bd974a251..40b57223fa1da 100644
--- a/pkgs/development/compilers/ghc/8.10.7.nix
+++ b/pkgs/development/compilers/ghc/8.10.7.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, pkgsBuildTarget, targetPackages
+{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages
 
 # build-tools
 , bootPkgs
@@ -11,11 +11,13 @@
 , # GHC can be built with system libffi or a bundled one.
   libffi ? null
 
-, useLLVM ? !stdenv.targetPlatform.isx86
+, useLLVM ? !(stdenv.targetPlatform.isx86
+              || stdenv.targetPlatform.isPowerPC
+              || stdenv.targetPlatform.isSparc)
 , # LLVM is conceptually a run-time-only depedendency, but for
   # non-x86, we need LLVM to bootstrap later stages, so it becomes a
   # build-time dependency too.
-  buildLlvmPackages, llvmPackages
+  buildTargetLlvmPackages, llvmPackages
 
 , # If enabled, GHC will be built with the GPL-free but slower integer-simple
   # library instead of the faster but GPLed integer-gmp library.
@@ -120,26 +122,37 @@ let
     ++ lib.optional (!enableIntegerSimple) gmp
     ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
 
+  # TODO(@sternenseemann): is buildTarget LLVM unnecessary?
+  # GHC doesn't seem to have {LLC,OPT}_HOST
   toolsForTarget = [
     pkgsBuildTarget.targetPackages.stdenv.cc
-  ] ++ lib.optional useLLVM buildLlvmPackages.llvm;
+  ] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm;
 
   targetCC = builtins.head toolsForTarget;
 
+  # Sometimes we have to dispatch between the bintools wrapper and the unwrapped
+  # derivation for certain tools depending on the platform.
+  bintoolsFor = {
+    # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is
+    # part of the bintools wrapper (due to codesigning requirements), but not on
+    # x86_64-darwin.
+    install_name_tool =
+      if stdenv.targetPlatform.isAarch64
+      then targetCC.bintools
+      else targetCC.bintools.bintools;
+    # Same goes for strip.
+    strip =
+      # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold"
+      if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin
+      then targetCC.bintools
+      else targetCC.bintools.bintools;
+  };
+
   # Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
   # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
   # see #84670 and #49071 for more background.
   useLdGold = targetPlatform.linker == "gold" ||
-    (targetPlatform.linker == "bfd" && (targetPackages.stdenv.cc.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
-
-  runtimeDeps = [
-    targetPackages.stdenv.cc.bintools
-    coreutils
-  ]
-  # On darwin, we need unwrapped bintools as well (for otool)
-  ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [
-    targetPackages.stdenv.cc.bintools.bintools
-  ];
+    (targetPlatform.linker == "bfd" && (targetCC.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
 
   # Makes debugging easier to see which variant is at play in `nix-store -q --tree`.
   variantSuffix = lib.concatStrings [
@@ -148,6 +161,14 @@ let
   ];
 
 in
+
+# C compiler, bintools and LLVM are used at build time, but will also leak into
+# the resulting GHC's settings file and used at runtime. This means that we are
+# currently only able to build GHC if hostPlatform == buildPlatform.
+assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc;
+assert buildTargetLlvmPackages.llvm == llvmPackages.llvm;
+assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang;
+
 stdenv.mkDerivation (rec {
   version = "8.10.7";
   pname = "${targetPrefix}ghc${variantSuffix}";
@@ -196,6 +217,7 @@ stdenv.mkDerivation (rec {
   postPatch = "patchShebangs .";
 
   # GHC is a bit confused on its cross terminology.
+  # TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths
   preConfigure = ''
     for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
       export "''${env#TARGET_}=''${!env}"
@@ -211,7 +233,17 @@ stdenv.mkDerivation (rec {
     export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
     export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
     export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
-    export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
+    export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip"
+  '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
+    export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool"
+    export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool"
+  '' + lib.optionalString useLLVM ''
+    export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc"
+    export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
+  '' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
+    # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
+    export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
+  '' + ''
 
     echo -n "${buildMK}" > mk/build.mk
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
@@ -290,9 +322,6 @@ stdenv.mkDerivation (rec {
 
   buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
 
-  propagatedBuildInputs = [ targetPackages.stdenv.cc ]
-    ++ lib.optional useLLVM llvmPackages.llvm;
-
   depsTargetTarget = map lib.getDev (libDeps targetPlatform);
   depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
 
@@ -320,13 +349,6 @@ stdenv.mkDerivation (rec {
   postInstall = ''
     # Install the bash completion file.
     install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
-
-    # Patch scripts to include "readelf" and "cat" in $PATH.
-    for i in "$out/bin/"*; do
-      test ! -h $i || continue
-      egrep --quiet '^#!' <(head -n 1 $i) || continue
-      sed -i -e '2i export PATH="$PATH:${lib.makeBinPath runtimeDeps}"' $i
-    done
   '';
 
   passthru = {
diff --git a/pkgs/development/compilers/ghc/8.6.5-binary.nix b/pkgs/development/compilers/ghc/8.6.5-binary.nix
index b1126fda7d26d..22bfae79c0ce9 100644
--- a/pkgs/development/compilers/ghc/8.6.5-binary.nix
+++ b/pkgs/development/compilers/ghc/8.6.5-binary.nix
@@ -2,6 +2,8 @@
 , fetchurl, perl, gcc
 , ncurses5, ncurses6, gmp, glibc, libiconv
 , llvmPackages
+, coreutils
+, targetPackages
 }:
 
 # Prebuilt only does native
@@ -30,6 +32,19 @@ let
 
   downloadsUrl = "https://downloads.haskell.org/ghc";
 
+  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 {
@@ -62,7 +77,6 @@ stdenv.mkDerivation rec {
     or (throw "cannot bootstrap GHC on this platform"));
 
   nativeBuildInputs = [ perl ];
-  propagatedBuildInputs = lib.optionals useLLVM [ llvmPackages.llvm ];
 
   # Cannot patchelf beforehand due to relative RPATHs that anticipate
   # the final install location/
@@ -130,6 +144,15 @@ stdenv.mkDerivation rec {
   # 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
+  '';
+
   # On Linux, use patchelf to modify the executables so that they can
   # find editline/gmp.
   postFixup = lib.optionalString stdenv.isLinux ''
@@ -163,7 +186,6 @@ stdenv.mkDerivation rec {
 
   doInstallCheck = true;
   installCheckPhase = ''
-    unset ${libEnvVar}
     # Sanity check, can ghc create executables?
     cd $TMP
     mkdir test-ghc; cd test-ghc
@@ -172,7 +194,7 @@ stdenv.mkDerivation rec {
       module Main where
       main = putStrLn \$([|"yes"|])
     EOF
-    $out/bin/ghc --make main.hs || exit 1
+    env -i $out/bin/ghc --make main.hs || exit 1
     echo compilation ok
     [ $(./main) == "yes" ]
   '';
@@ -181,14 +203,15 @@ stdenv.mkDerivation rec {
     targetPrefix = "";
     enableShared = true;
 
+    inherit llvmPackages;
+
     # Our Cabal compiler name
     haskellCompilerName = "ghc-${version}";
   };
 
   meta = rec {
     license = lib.licenses.bsd3;
-    platforms = ["x86_64-linux" "aarch64-linux" "i686-linux" "x86_64-darwin"];
-    hydraPlatforms = builtins.filter (p: p != "aarch64-linux") platforms;
+    platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin"];
     # build segfaults, use ghc8102Binary which has proper musl support instead
     broken = stdenv.hostPlatform.isMusl;
     maintainers = with lib.maintainers; [
diff --git a/pkgs/development/compilers/ghc/8.8.4.nix b/pkgs/development/compilers/ghc/8.8.4.nix
index 1d31ffba41110..3ce47a20bad88 100644
--- a/pkgs/development/compilers/ghc/8.8.4.nix
+++ b/pkgs/development/compilers/ghc/8.8.4.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, pkgsBuildTarget, targetPackages
+{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages
 
 # build-tools
 , bootPkgs
@@ -10,11 +10,13 @@
 , # GHC can be built with system libffi or a bundled one.
   libffi ? null
 
-, useLLVM ? !stdenv.targetPlatform.isx86
+, useLLVM ? !(stdenv.targetPlatform.isx86
+              || stdenv.targetPlatform.isPowerPC
+              || stdenv.targetPlatform.isSparc)
 , # LLVM is conceptually a run-time-only depedendency, but for
   # non-x86, we need LLVM to bootstrap later stages, so it becomes a
   # build-time dependency too.
-  buildLlvmPackages, llvmPackages
+  buildTargetLlvmPackages, llvmPackages
 
 , # If enabled, GHC will be built with the GPL-free but slower integer-simple
   # library instead of the faster but GPLed integer-gmp library.
@@ -128,9 +130,11 @@ let
     ++ lib.optional (!enableIntegerSimple) gmp
     ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
 
+  # TODO(@sternenseemann): is buildTarget LLVM unnecessary?
+  # GHC doesn't seem to have {LLC,OPT}_HOST
   toolsForTarget = [
     pkgsBuildTarget.targetPackages.stdenv.cc
-  ] ++ lib.optional useLLVM buildLlvmPackages.llvm;
+  ] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm;
 
   targetCC = builtins.head toolsForTarget;
 
@@ -138,16 +142,7 @@ let
   # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
   # see #84670 and #49071 for more background.
   useLdGold = targetPlatform.linker == "gold" ||
-    (targetPlatform.linker == "bfd" && (targetPackages.stdenv.cc.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
-
-  runtimeDeps = [
-    targetPackages.stdenv.cc.bintools
-    coreutils
-  ]
-  # On darwin, we need unwrapped bintools as well (for otool)
-  ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [
-    targetPackages.stdenv.cc.bintools.bintools
-  ];
+    (targetPlatform.linker == "bfd" && (targetCC.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
 
   # Makes debugging easier to see which variant is at play in `nix-store -q --tree`.
   variantSuffix = lib.concatStrings [
@@ -156,6 +151,14 @@ let
   ];
 
 in
+
+# C compiler, bintools and LLVM are used at build time, but will also leak into
+# the resulting GHC's settings file and used at runtime. This means that we are
+# currently only able to build GHC if hostPlatform == buildPlatform.
+assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc;
+assert buildTargetLlvmPackages.llvm == llvmPackages.llvm;
+assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang;
+
 stdenv.mkDerivation (rec {
   version = "8.8.4";
   pname = "${targetPrefix}ghc${variantSuffix}";
@@ -197,6 +200,7 @@ stdenv.mkDerivation (rec {
   postPatch = "patchShebangs .";
 
   # GHC is a bit confused on its cross terminology.
+  # TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths
   preConfigure =
     # Aarch64 allow backward bootstrapping since earlier versions are unstable.
     # Same for musl, as earlier versions do not provide a musl bindist for bootstrapping.
@@ -220,6 +224,13 @@ stdenv.mkDerivation (rec {
     export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
     export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
     export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
+  '' + lib.optionalString useLLVM ''
+    export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc"
+    export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
+  '' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
+    # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
+    export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
+  '' + ''
 
     echo -n "${buildMK dontStrip}" > mk/build.mk
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
@@ -293,9 +304,6 @@ stdenv.mkDerivation (rec {
 
   buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
 
-  propagatedBuildInputs = [ targetPackages.stdenv.cc ]
-    ++ lib.optional useLLVM llvmPackages.llvm;
-
   depsTargetTarget = map lib.getDev (libDeps targetPlatform);
   depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
 
@@ -319,13 +327,6 @@ stdenv.mkDerivation (rec {
   postInstall = ''
     # Install the bash completion file.
     install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
-
-    # Patch scripts to include "readelf" and "cat" in $PATH.
-    for i in "$out/bin/"*; do
-      test ! -h $i || continue
-      egrep --quiet '^#!' <(head -n 1 $i) || continue
-      sed -i -e '2i export PATH="$PATH:${lib.makeBinPath runtimeDeps}"' $i
-    done
   '';
 
   passthru = {
@@ -345,7 +346,17 @@ stdenv.mkDerivation (rec {
       guibou
     ] ++ lib.teams.haskell.members;
     timeout = 24 * 3600;
-    inherit (ghc.meta) license platforms;
+    inherit (ghc.meta) license;
+    # hardcode platforms because the bootstrap GHC differs depending on the platform,
+    # with differing platforms available for each of them; See HACK comment in
+    # 8.10.2-binary.nix for an explanation of the musl special casing.
+    platforms = [
+      "x86_64-linux"
+    ] ++ lib.optionals (!hostPlatform.isMusl) [
+      "i686-linux"
+      "aarch64-linux"
+      "x86_64-darwin"
+    ];
     # integer-simple builds are broken with musl when bootstrapping using
     # GHC 8.10.2 and below, however it is not possible to reverse bootstrap
     # GHC 8.8.4 with GHC 8.10.7.
diff --git a/pkgs/development/compilers/ghc/9.0.1.nix b/pkgs/development/compilers/ghc/9.0.1.nix
index c0f42680bb87c..3f13fe1b9e1b9 100644
--- a/pkgs/development/compilers/ghc/9.0.1.nix
+++ b/pkgs/development/compilers/ghc/9.0.1.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, pkgsBuildTarget, targetPackages
+{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages
 
 # build-tools
 , bootPkgs
@@ -12,11 +12,13 @@
 , # GHC can be built with system libffi or a bundled one.
   libffi ? null
 
-, useLLVM ? !stdenv.targetPlatform.isx86
+, useLLVM ? !(stdenv.targetPlatform.isx86
+              || stdenv.targetPlatform.isPowerPC
+              || stdenv.targetPlatform.isSparc)
 , # LLVM is conceptually a run-time-only depedendency, but for
   # non-x86, we need LLVM to bootstrap later stages, so it becomes a
   # build-time dependency too.
-  buildLlvmPackages, llvmPackages
+  buildTargetLlvmPackages, llvmPackages
 
 , # If enabled, GHC will be built with the GPL-free but slower integer-simple
   # library instead of the faster but GPLed integer-gmp library.
@@ -115,26 +117,37 @@ let
     ++ lib.optional (!enableIntegerSimple) gmp
     ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
 
+  # TODO(@sternenseemann): is buildTarget LLVM unnecessary?
+  # GHC doesn't seem to have {LLC,OPT}_HOST
   toolsForTarget = [
     pkgsBuildTarget.targetPackages.stdenv.cc
-  ] ++ lib.optional useLLVM buildLlvmPackages.llvm;
+  ] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm;
 
   targetCC = builtins.head toolsForTarget;
 
+  # Sometimes we have to dispatch between the bintools wrapper and the unwrapped
+  # derivation for certain tools depending on the platform.
+  bintoolsFor = {
+    # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is
+    # part of the bintools wrapper (due to codesigning requirements), but not on
+    # x86_64-darwin.
+    install_name_tool =
+      if stdenv.targetPlatform.isAarch64
+      then targetCC.bintools
+      else targetCC.bintools.bintools;
+    # Same goes for strip.
+    strip =
+      # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold"
+      if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin
+      then targetCC.bintools
+      else targetCC.bintools.bintools;
+  };
+
   # Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
   # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
   # see #84670 and #49071 for more background.
   useLdGold = targetPlatform.linker == "gold" ||
-    (targetPlatform.linker == "bfd" && (targetPackages.stdenv.cc.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
-
-  runtimeDeps = [
-    targetPackages.stdenv.cc.bintools
-    coreutils
-  ]
-  # On darwin, we need unwrapped bintools as well (for otool)
-  ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [
-    targetPackages.stdenv.cc.bintools.bintools
-  ];
+    (targetPlatform.linker == "bfd" && (targetCC.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
 
   # Makes debugging easier to see which variant is at play in `nix-store -q --tree`.
   variantSuffix = lib.concatStrings [
@@ -143,6 +156,14 @@ let
   ];
 
 in
+
+# C compiler, bintools and LLVM are used at build time, but will also leak into
+# the resulting GHC's settings file and used at runtime. This means that we are
+# currently only able to build GHC if hostPlatform == buildPlatform.
+assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc;
+assert buildTargetLlvmPackages.llvm == llvmPackages.llvm;
+assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang;
+
 stdenv.mkDerivation (rec {
   version = "9.0.1";
   pname = "${targetPrefix}ghc${variantSuffix}";
@@ -162,6 +183,7 @@ stdenv.mkDerivation (rec {
   LANG = "en_US.UTF-8";
 
   # GHC is a bit confused on its cross terminology.
+  # TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths
   preConfigure = ''
     for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
       export "''${env#TARGET_}=''${!env}"
@@ -177,7 +199,17 @@ stdenv.mkDerivation (rec {
     export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
     export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
     export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
-    export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
+    export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip"
+  '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
+    export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool"
+    export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool"
+  '' + lib.optionalString useLLVM ''
+    export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc"
+    export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
+  '' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
+    # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
+    export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
+  '' + ''
 
     echo -n "${buildMK}" > mk/build.mk
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
@@ -255,9 +287,6 @@ stdenv.mkDerivation (rec {
 
   buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
 
-  propagatedBuildInputs = [ targetPackages.stdenv.cc ]
-    ++ lib.optional useLLVM llvmPackages.llvm;
-
   depsTargetTarget = map lib.getDev (libDeps targetPlatform);
   depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
 
@@ -285,13 +314,6 @@ stdenv.mkDerivation (rec {
   postInstall = ''
     # Install the bash completion file.
     install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
-
-    # Patch scripts to include "readelf" and "cat" in $PATH.
-    for i in "$out/bin/"*; do
-      test ! -h $i || continue
-      egrep --quiet '^#!' <(head -n 1 $i) || continue
-      sed -i -e '2i export PATH="$PATH:${lib.makeBinPath runtimeDeps}"' $i
-    done
   '';
 
   passthru = {
diff --git a/pkgs/development/compilers/ghc/9.2.1.nix b/pkgs/development/compilers/ghc/9.2.1.nix
index e43dea9cffb73..77d741a4f2b83 100644
--- a/pkgs/development/compilers/ghc/9.2.1.nix
+++ b/pkgs/development/compilers/ghc/9.2.1.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, pkgsBuildTarget, targetPackages
+{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages
 
 # build-tools
 , bootPkgs
@@ -12,11 +12,14 @@
 , # GHC can be built with system libffi or a bundled one.
   libffi ? null
 
-, useLLVM ? !stdenv.targetPlatform.isx86
+, useLLVM ? !(stdenv.targetPlatform.isx86
+              || stdenv.targetPlatform.isPowerPC
+              || stdenv.targetPlatform.isSparc
+              || (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin))
 , # LLVM is conceptually a run-time-only depedendency, but for
   # non-x86, we need LLVM to bootstrap later stages, so it becomes a
   # build-time dependency too.
-  buildLlvmPackages, llvmPackages
+  buildTargetLlvmPackages, llvmPackages
 
 , # If enabled, GHC will be built with the GPL-free but slower integer-simple
   # library instead of the faster but GPLed integer-gmp library.
@@ -115,25 +118,37 @@ let
     ++ lib.optional (!enableIntegerSimple) gmp
     ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
 
+  # TODO(@sternenseemann): is buildTarget LLVM unnecessary?
+  # GHC doesn't seem to have {LLC,OPT}_HOST
   toolsForTarget = [
     pkgsBuildTarget.targetPackages.stdenv.cc
-  ] ++ lib.optional useLLVM buildLlvmPackages.llvm;
+  ] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm;
 
   targetCC = builtins.head toolsForTarget;
 
+  # Sometimes we have to dispatch between the bintools wrapper and the unwrapped
+  # derivation for certain tools depending on the platform.
+  bintoolsFor = {
+    # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is
+    # part of the bintools wrapper (due to codesigning requirements), but not on
+    # x86_64-darwin.
+    install_name_tool =
+      if stdenv.targetPlatform.isAarch64
+      then targetCC.bintools
+      else targetCC.bintools.bintools;
+    # Same goes for strip.
+    strip =
+      # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold"
+      if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin
+      then targetCC.bintools
+      else targetCC.bintools.bintools;
+  };
+
   # Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
   # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
   # see #84670 and #49071 for more background.
-  useLdGold = targetPlatform.linker == "gold" || (targetPlatform.linker == "bfd" && !targetPlatform.isMusl);
-
-  runtimeDeps = [
-    targetPackages.stdenv.cc.bintools
-    coreutils
-  ]
-  # On darwin, we need unwrapped bintools as well (for otool)
-  ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [
-    targetPackages.stdenv.cc.bintools.bintools
-  ];
+  useLdGold = targetPlatform.linker == "gold" ||
+    (targetPlatform.linker == "bfd" && (targetCC.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
 
   # Makes debugging easier to see which variant is at play in `nix-store -q --tree`.
   variantSuffix = lib.concatStrings [
@@ -142,6 +157,14 @@ let
   ];
 
 in
+
+# C compiler, bintools and LLVM are used at build time, but will also leak into
+# the resulting GHC's settings file and used at runtime. This means that we are
+# currently only able to build GHC if hostPlatform == buildPlatform.
+assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc;
+assert buildTargetLlvmPackages.llvm == llvmPackages.llvm;
+assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang;
+
 stdenv.mkDerivation (rec {
   version = "9.2.1";
   pname = "${targetPrefix}ghc${variantSuffix}";
@@ -161,6 +184,7 @@ stdenv.mkDerivation (rec {
   LANG = "en_US.UTF-8";
 
   # GHC is a bit confused on its cross terminology.
+  # TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths
   preConfigure = ''
     for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
       export "''${env#TARGET_}=''${!env}"
@@ -176,7 +200,17 @@ stdenv.mkDerivation (rec {
     export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
     export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
     export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
-    export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
+    export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip"
+  '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
+    export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool"
+    export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool"
+  '' + lib.optionalString useLLVM ''
+    export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc"
+    export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
+  '' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
+    # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
+    export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
+  '' + ''
 
     echo -n "${buildMK}" > mk/build.mk
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
@@ -258,9 +292,6 @@ stdenv.mkDerivation (rec {
 
   buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
 
-  propagatedBuildInputs = [ targetPackages.stdenv.cc ]
-    ++ lib.optional useLLVM llvmPackages.llvm;
-
   depsTargetTarget = map lib.getDev (libDeps targetPlatform);
   depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
 
@@ -288,13 +319,6 @@ stdenv.mkDerivation (rec {
   postInstall = ''
     # Install the bash completion file.
     install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
-
-    # Patch scripts to include "readelf" and "cat" in $PATH.
-    for i in "$out/bin/"*; do
-      test ! -h $i || continue
-      egrep --quiet '^#!' <(head -n 1 $i) || continue
-      sed -i -e '2i export PATH="$PATH:${lib.makeBinPath runtimeDeps}"' $i
-    done
   '';
 
   passthru = {
diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix
index cb56087fe1b2c..a769647940159 100644
--- a/pkgs/development/compilers/ghc/head.nix
+++ b/pkgs/development/compilers/ghc/head.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, pkgsBuildTarget, targetPackages
+{ lib, stdenv, pkgsBuildTarget, pkgsHostTarget, targetPackages
 
 # build-tools
 , bootPkgs
@@ -12,16 +12,20 @@
   libffi ? null
 
   # Libdw.c only supports x86_64, i686 and s390x
-, enableDwarf ? stdenv.targetPlatform.isx86 &&
-                !stdenv.targetPlatform.isDarwin &&
-                !stdenv.targetPlatform.isWindows
+, enableDwarf ? (stdenv.targetPlatform.isx86 ||
+                 (stdenv.targetPlatform.isS390 && stdenv.targetPlatform.is64bit)) &&
+                lib.meta.availableOn stdenv.hostPlatform elfutils &&
+                lib.meta.availableOn stdenv.targetPlatform elfutils
 , elfutils # for DWARF support
 
-, useLLVM ? !stdenv.targetPlatform.isx86 || stdenv.targetPlatform.isiOS
+, useLLVM ? !(stdenv.targetPlatform.isx86
+              || stdenv.targetPlatform.isPowerPC
+              || stdenv.targetPlatform.isSparc
+              || (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin))
 , # LLVM is conceptually a run-time-only depedendency, but for
   # non-x86, we need LLVM to bootstrap later stages, so it becomes a
   # build-time dependency too.
-  buildLlvmPackages, llvmPackages
+  buildTargetLlvmPackages, llvmPackages
 
 , # If enabled, GHC will be built with the GPL-free but slightly slower native
   # bignum backend instead of the faster but GPLed gmp backend.
@@ -38,9 +42,6 @@
   # platform). Static libs are always built.
   enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
 
-, # Whether to build terminfo.
-  enableTerminfo ? !stdenv.targetPlatform.isWindows
-
 , version ? "9.3.20211111"
 , # What flavour to build. An empty string indicates no
   # specific flavour and falls back to ghc default values.
@@ -116,35 +117,52 @@ let
     GhcRtsHcOpts += -fPIC
   '' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
     EXTRA_CC_OPTS += -std=gnu99
+  ''
+  # While split sections are now enabled by default in ghc 8.8 for windows,
+  # they seem to lead to `too many sections` errors when building base for
+  # profiling.
+  + lib.optionalString targetPlatform.isWindows ''
+    SplitSections = NO
   '';
 
   # Splicer will pull out correct variations
-  libDeps = platform: lib.optional enableTerminfo ncurses
-    ++ [libffi]
+  libDeps = platform:
+       [libffi ncurses]
     ++ lib.optional (!enableNativeBignum) gmp
     ++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv
     ++ lib.optional enableDwarf elfutils;
 
+  # TODO(@sternenseemann): is buildTarget LLVM unnecessary?
+  # GHC doesn't seem to have {LLC,OPT}_HOST
   toolsForTarget = [
     pkgsBuildTarget.targetPackages.stdenv.cc
-  ] ++ lib.optional useLLVM buildLlvmPackages.llvm;
+  ] ++ lib.optional useLLVM buildTargetLlvmPackages.llvm;
 
   targetCC = builtins.head toolsForTarget;
 
+  # Sometimes we have to dispatch between the bintools wrapper and the unwrapped
+  # derivation for certain tools depending on the platform.
+  bintoolsFor = {
+    # GHC needs install_name_tool on all darwin platforms. On aarch64-darwin it is
+    # part of the bintools wrapper (due to codesigning requirements), but not on
+    # x86_64-darwin.
+    install_name_tool =
+      if stdenv.targetPlatform.isAarch64
+      then targetCC.bintools
+      else targetCC.bintools.bintools;
+    # Same goes for strip.
+    strip =
+      # TODO(@sternenseemann): also use wrapper if linker == "bfd" or "gold"
+      if stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin
+      then targetCC.bintools
+      else targetCC.bintools.bintools;
+  };
+
   # Use gold either following the default, or to avoid the BFD linker due to some bugs / perf issues.
   # But we cannot avoid BFD when using musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
   # see #84670 and #49071 for more background.
   useLdGold = targetPlatform.linker == "gold" ||
-    (targetPlatform.linker == "bfd" && (targetPackages.stdenv.cc.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
-
-  runtimeDeps = [
-    targetPackages.stdenv.cc.bintools
-    coreutils
-  ]
-  # On darwin, we need unwrapped bintools as well (for otool)
-  ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [
-    targetPackages.stdenv.cc.bintools.bintools
-  ];
+    (targetPlatform.linker == "bfd" && (targetCC.bintools.bintools.hasGold or false) && !targetPlatform.isMusl);
 
   # Makes debugging easier to see which variant is at play in `nix-store -q --tree`.
   variantSuffix = lib.concatStrings [
@@ -153,6 +171,14 @@ let
   ];
 
 in
+
+# C compiler, bintools and LLVM are used at build time, but will also leak into
+# the resulting GHC's settings file and used at runtime. This means that we are
+# currently only able to build GHC if hostPlatform == buildPlatform.
+assert targetCC == pkgsHostTarget.targetPackages.stdenv.cc;
+assert buildTargetLlvmPackages.llvm == llvmPackages.llvm;
+assert stdenv.targetPlatform.isDarwin -> buildTargetLlvmPackages.clang == llvmPackages.clang;
+
 stdenv.mkDerivation (rec {
   inherit version;
   inherit (src) rev;
@@ -171,6 +197,7 @@ stdenv.mkDerivation (rec {
   postPatch = "patchShebangs .";
 
   # GHC is a bit confused on its cross terminology.
+  # TODO(@sternenseemann): investigate coreutils dependencies and pass absolute paths
   preConfigure = ''
     for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
       export "''${env#TARGET_}=''${!env}"
@@ -187,7 +214,17 @@ stdenv.mkDerivation (rec {
     export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
     export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
     export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
-    export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
+    export STRIP="${bintoolsFor.strip}/bin/${bintoolsFor.strip.targetPrefix}strip"
+  '' + lib.optionalString (stdenv.targetPlatform.linker == "cctools") ''
+    export OTOOL="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}otool"
+    export INSTALL_NAME_TOOL="${bintoolsFor.install_name_tool}/bin/${bintoolsFor.install_name_tool.targetPrefix}install_name_tool"
+  '' + lib.optionalString useLLVM ''
+    export LLC="${lib.getBin buildTargetLlvmPackages.llvm}/bin/llc"
+    export OPT="${lib.getBin buildTargetLlvmPackages.llvm}/bin/opt"
+  '' + lib.optionalString (useLLVM && stdenv.targetPlatform.isDarwin) ''
+    # LLVM backend on Darwin needs clang: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/codegens.html#llvm-code-generator-fllvm
+    export CLANG="${buildTargetLlvmPackages.clang}/bin/${buildTargetLlvmPackages.clang.targetPrefix}clang"
+  '' + ''
 
     # otherwise haddock fails when generating the compiler docs
     export LANG=C.UTF-8
@@ -275,9 +312,6 @@ stdenv.mkDerivation (rec {
 
   buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
 
-  propagatedBuildInputs = [ targetPackages.stdenv.cc ]
-    ++ lib.optional useLLVM llvmPackages.llvm;
-
   depsTargetTarget = map lib.getDev (libDeps targetPlatform);
   depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
 
@@ -305,13 +339,6 @@ stdenv.mkDerivation (rec {
   postInstall = ''
     # Install the bash completion file.
     install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
-
-    # Patch scripts to include "readelf" and "cat" in $PATH.
-    for i in "$out/bin/"*; do
-      test ! -h $i || continue
-      egrep --quiet '^#!' <(head -n 1 $i) || continue
-      sed -i -e '2i export PATH="$PATH:${lib.makeBinPath runtimeDeps}"' $i
-    done
   '';
 
   passthru = {
diff --git a/pkgs/development/compilers/ghcjs/8.10/configured-ghcjs-src.nix b/pkgs/development/compilers/ghcjs/8.10/configured-ghcjs-src.nix
index 9fa6fae1a593e..4ea2de99fc9a3 100644
--- a/pkgs/development/compilers/ghcjs/8.10/configured-ghcjs-src.nix
+++ b/pkgs/development/compilers/ghcjs/8.10/configured-ghcjs-src.nix
@@ -26,8 +26,7 @@ runCommand "configured-ghcjs-src" {
     happy
     alex
     cabal-install
-  ] ++ lib.optionals stdenv.isDarwin [
-    gcc # https://github.com/ghcjs/ghcjs/issues/663
+    gcc
   ];
   inherit ghcjsSrc;
 } ''
diff --git a/pkgs/development/compilers/ghcjs/8.10/default.nix b/pkgs/development/compilers/ghcjs/8.10/default.nix
index b6c2f7e72ee01..2fbf7ded9c401 100644
--- a/pkgs/development/compilers/ghcjs/8.10/default.nix
+++ b/pkgs/development/compilers/ghcjs/8.10/default.nix
@@ -78,6 +78,11 @@ in stdenv.mkDerivation {
     ];
     dontConfigure = true;
     dontInstall = true;
+
+    # Newer versions of `config.sub` reject the `js-ghcjs` host string, but the
+    # older `config.sub` filed vendored within `ghc` still works
+    dontUpdateAutotoolsGnuConfigScripts = true;
+
     buildPhase = ''
       export HOME=$TMP
       mkdir $HOME/.cabal
diff --git a/pkgs/development/compilers/gleam/default.nix b/pkgs/development/compilers/gleam/default.nix
index d97ab82b39459..e766683f0228b 100644
--- a/pkgs/development/compilers/gleam/default.nix
+++ b/pkgs/development/compilers/gleam/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gleam";
-  version = "0.17.0";
+  version = "0.18.2";
 
   src = fetchFromGitHub {
     owner = "gleam-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-HFcJUOfWMgMm+Sc3nAXW6FwXkiY34826QxMZ8rWPmnk=";
+    sha256 = "sha256-uakZmaIkBgC/FTQ7us58pJT6IzpcF1cQxBfehlB3bWk=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ] ++
     lib.optionals stdenv.isDarwin [ Security libiconv ];
 
-  cargoSha256 = "sha256-zjb+ERikMwC+ulfx6EW+FXLweZACwKNw4HEIc9dH3+4=";
+  cargoSha256 = "sha256-NogDrd7YWl/CV0aCd1jfYWYB9VZG7u890VLEktI3sOQ=";
 
   meta = with lib; {
     description = "A statically typed language for the Erlang VM";
diff --git a/pkgs/development/compilers/go-jsonnet/default.nix b/pkgs/development/compilers/go-jsonnet/default.nix
index 1d8b912a978b5..2b7c6a2f07154 100644
--- a/pkgs/development/compilers/go-jsonnet/default.nix
+++ b/pkgs/development/compilers/go-jsonnet/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "go-jsonnet";
-  version = "0.17.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "go-jsonnet";
     rev = "v${version}";
-    sha256 = "1rprs8l15nbrx4dw4pdg81c5l22zhj80pl4zwqgsm4113wyyvc98";
+    sha256 = "sha256-o/IjXskGaMhvQmTsAS745anGBMI2bwHf/EOEp57H8LU=";
   };
 
-  vendorSha256 = "0nsm4gsbbn8myz4yfi6m7qc3iizhdambsr18iks0clkdn3mi2jn1";
+  vendorSha256 = "sha256-fZBhlZrLcC4xj5uvb862lBOczGnJa9CceS3D8lUhBQo=";
 
   doCheck = false;
 
diff --git a/pkgs/development/compilers/go/1.15.nix b/pkgs/development/compilers/go/1.15.nix
index 8908c6afceba9..5cba6be88999a 100644
--- a/pkgs/development/compilers/go/1.15.nix
+++ b/pkgs/development/compilers/go/1.15.nix
@@ -274,7 +274,7 @@ stdenv.mkDerivation rec {
   disallowedReferences = [ goBootstrap ];
 
   meta = with lib; {
-    homepage = "http://golang.org/";
+    homepage = "https://go.dev/";
     description = "The Go Programming language";
     license = licenses.bsd3;
     maintainers = teams.golang.members;
diff --git a/pkgs/development/compilers/go/1.16.nix b/pkgs/development/compilers/go/1.16.nix
index 433d3f9af7a3c..61d24b0ee0ce3 100644
--- a/pkgs/development/compilers/go/1.16.nix
+++ b/pkgs/development/compilers/go/1.16.nix
@@ -40,8 +40,11 @@ let
     "armv5tel" = "arm";
     "armv6l" = "arm";
     "armv7l" = "arm";
-    "powerpc64le" = "ppc64le";
     "mips" = "mips";
+    "mipsel" = "mipsle";
+    "riscv64" = "riscv64";
+    "s390x" = "s390x";
+    "powerpc64le" = "ppc64le";
   }.${platform.parsed.cpu.name} or (throw "Unsupported system");
 
   # We need a target compiler which is still runnable at build time,
@@ -51,11 +54,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.16.9";
+  version = "1.16.12";
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "sha256-ChzH/XvSBEj3Hr7WTYRhOIUNUJmxjPXMEKT8RRYNjD0=";
+    sha256 = "sha256-Kv2Dnct20rsILFAsAaClzb/An9YwdXg1NjxP3o4vv+g=";
   };
 
   # perl is used for testing go vet
@@ -269,7 +272,7 @@ stdenv.mkDerivation rec {
   disallowedReferences = [ goBootstrap ];
 
   meta = with lib; {
-    homepage = "http://golang.org/";
+    homepage = "https://go.dev/";
     description = "The Go Programming language";
     license = licenses.bsd3;
     maintainers = teams.golang.members;
diff --git a/pkgs/development/compilers/go/1.17.nix b/pkgs/development/compilers/go/1.17.nix
index 62b435c4615b5..e16e78d21a356 100644
--- a/pkgs/development/compilers/go/1.17.nix
+++ b/pkgs/development/compilers/go/1.17.nix
@@ -40,6 +40,10 @@ let
     "armv5tel" = "arm";
     "armv6l" = "arm";
     "armv7l" = "arm";
+    "mips" = "mips";
+    "mipsel" = "mipsle";
+    "riscv64" = "riscv64";
+    "s390x" = "s390x";
     "powerpc64le" = "ppc64le";
   }.${platform.parsed.cpu.name} or (throw "Unsupported system");
 
@@ -50,11 +54,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.17.3";
+  version = "1.17.5";
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "sha256-cFxkJR5bJdXVXt4QOcaqIr6kCnqTHRTDcDOYU2Q8PfA=";
+    sha256 = "sha256-Pe+5oJvtBCQDGV6HLcvIxvrhSFljMyJ5Zo7FLoCpWi0=";
   };
 
   # perl is used for testing go vet
@@ -268,7 +272,7 @@ stdenv.mkDerivation rec {
   disallowedReferences = [ goBootstrap ];
 
   meta = with lib; {
-    homepage = "http://golang.org/";
+    homepage = "https://go.dev/";
     description = "The Go Programming language";
     license = licenses.bsd3;
     maintainers = teams.golang.members;
diff --git a/pkgs/development/compilers/go/2-dev.nix b/pkgs/development/compilers/go/2-dev.nix
index 8fd0e2e6630c8..c70133c98b351 100644
--- a/pkgs/development/compilers/go/2-dev.nix
+++ b/pkgs/development/compilers/go/2-dev.nix
@@ -267,7 +267,7 @@ stdenv.mkDerivation rec {
   disallowedReferences = [ goBootstrap ];
 
   meta = with lib; {
-    homepage = "http://golang.org/";
+    homepage = "https://go.dev/";
     description = "The Go Programming language";
     license = licenses.bsd3;
     maintainers = teams.golang.members ++ [ maintainers._3noch ];
diff --git a/pkgs/development/compilers/go/binary.nix b/pkgs/development/compilers/go/binary.nix
index a2fff4f6d074c..d8e6b9e71de23 100644
--- a/pkgs/development/compilers/go/binary.nix
+++ b/pkgs/development/compilers/go/binary.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   name = "go-${version}-${platform}-bootstrap";
 
   src = fetchurl {
-    url = "https://golang.org/dl/go${version}.${platform}.tar.gz";
+    url = "https://go.dev/dl/go${version}.${platform}.tar.gz";
     sha256 = hashes.${platform} or (throw "Missing Go bootstrap hash for platform ${platform}");
   };
 
diff --git a/pkgs/development/compilers/go/print-hashes.sh b/pkgs/development/compilers/go/print-hashes.sh
index 97be7d189ad8a..f095b67c627bd 100755
--- a/pkgs/development/compilers/go/print-hashes.sh
+++ b/pkgs/development/compilers/go/print-hashes.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -euo pipefail
 
-BASEURL=https://golang.org/dl/
+BASEURL=https://go.dev/dl/
 VERSION=${1:-}
 
 if [[ -z $VERSION ]]
diff --git a/pkgs/development/compilers/graalvm/community-edition/mkGraal.nix b/pkgs/development/compilers/graalvm/community-edition/mkGraal.nix
index 2b1aa6b646945..ee016e71d312f 100644
--- a/pkgs/development/compilers/graalvm/community-edition/mkGraal.nix
+++ b/pkgs/development/compilers/graalvm/community-edition/mkGraal.nix
@@ -1,13 +1,41 @@
-{ version, javaVersion, platforms, hashes ? import ./hashes.nix }:
-
-{ stdenv, lib, fetchurl, autoPatchelfHook, setJavaClassPath, makeWrapper
-# minimum dependencies
-, Foundation, alsa-lib, fontconfig, freetype, glibc, openssl, perl, unzip, xorg
+{ version
+, javaVersion
+, platforms
+, hashes ? import ./hashes.nix
+, useMusl ? false
+}:
+
+{ stdenv
+, lib
+, autoPatchelfHook
+, fetchurl
+, makeWrapper
+, setJavaClassPath
+, writeShellScriptBin
+  # minimum dependencies
+, alsa-lib
+, fontconfig
+, Foundation
+, freetype
+, glibc
+, openssl
+, perl
+, unzip
+, xorg
 , zlib
-# runtime dependencies
+  # runtime dependencies
+, binutils
 , cups
-# runtime dependencies for GTK+ Look and Feel
-, gtkSupport ? true, cairo, glib, gtk3 }:
+, gcc
+, musl
+  # runtime dependencies for GTK+ Look and Feel
+, gtkSupport ? stdenv.isLinux
+, cairo
+, glib
+, gtk3
+}:
+
+assert useMusl -> stdenv.isLinux;
 
 let
   platform = {
@@ -16,10 +44,17 @@ let
     x86_64-darwin = "darwin-amd64";
   }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
 
-  runtimeDependencies = [ cups ]
-    ++ lib.optionals gtkSupport [ cairo glib gtk3 ];
+  runtimeLibraryPath = lib.makeLibraryPath
+    ([ cups ] ++ lib.optionals gtkSupport [ cairo glib gtk3 ]);
 
-  runtimeLibraryPath = lib.makeLibraryPath runtimeDependencies;
+  runtimeDependencies = lib.makeBinPath ([
+    binutils
+    stdenv.cc
+  ] ++ lib.optionals useMusl [
+    (lib.getDev musl)
+    # GraalVM 21.3.0+ expects musl-gcc as <system>-musl-gcc
+    (writeShellScriptBin "${stdenv.system}-musl-gcc" ''${lib.getDev musl}/bin/musl-gcc "$@"'')
+  ]);
 
   javaVersionPlatform = "${javaVersion}-${platform}";
 
@@ -51,10 +86,6 @@ let
       zlib
     ];
 
-    # Workaround for libssl.so.10 wanted by TruffleRuby
-    # Resulting TruffleRuby cannot use `openssl` library.
-    autoPatchelfIgnoreMissingDeps = true;
-
     nativeBuildInputs = [ unzip perl autoPatchelfHook makeWrapper ];
 
     unpackPhase = ''
@@ -108,55 +139,73 @@ let
 
     outputs = [ "out" "lib" ];
 
-    installPhase = let
-      copyClibrariesToOut = basepath: ''
-        # provide libraries needed for static compilation
-        for f in ${glibc}/lib/* ${glibc.static}/lib/* ${zlib.static}/lib/*; do
-          ln -s $f ${basepath}/${platform}/$(basename $f)
-        done
-      '';
-      copyClibrariesToLib = ''
-        # add those libraries to $lib output too, so we can use them with
-        # `native-image -H:CLibraryPath=''${graalvm11-ce.lib}/lib ...` and reduce
-        # closure size by not depending on GraalVM $out (that is much bigger)
+    installPhase =
+      let
+        copyClibrariesToOut = basepath: ''
+          # provide libraries needed for static compilation
+          ${
+            if useMusl then
+              "for f in ${musl.stdenv.cc.cc}/lib/* ${musl}/lib/* ${zlib.static}/lib/*; do"
+            else
+              "for f in ${glibc}/lib/* ${glibc.static}/lib/* ${zlib.static}/lib/*; do"
+          }
+            ln -s $f ${basepath}/${platform}/$(basename $f)
+          done
+        '';
+        copyClibrariesToLib = ''
+          # add those libraries to $lib output too, so we can use them with
+          # `native-image -H:CLibraryPath=''${lib.getLib graalvm11-ce}/lib ...` and reduce
+          # closure size by not depending on GraalVM $out (that is much bigger)
+          mkdir -p $lib/lib
+          for f in ${glibc}/lib/*; do
+            ln -s $f $lib/lib/$(basename $f)
+          done
+        '';
+      in
+      {
+        "11-linux-amd64" = ''
+          ${copyClibrariesToOut "$out/lib/svm/clibraries"}
+
+          ${copyClibrariesToLib}
+        '';
+        "17-linux-amd64" = ''
+          ${copyClibrariesToOut "$out/lib/svm/clibraries"}
+
+          ${copyClibrariesToLib}
+        '';
+        "11-linux-aarch64" = ''
+          ${copyClibrariesToOut "$out/lib/svm/clibraries"}
+
+          ${copyClibrariesToLib}
+        '';
+        "17-linux-aarch64" = ''
+          ${copyClibrariesToOut "$out/lib/svm/clibraries"}
+
+          ${copyClibrariesToLib}
+        '';
+        "11-darwin-amd64" = "";
+        "17-darwin-amd64" = "";
+      }.${javaVersionPlatform} + ''
+        # ensure that $lib/lib exists to avoid breaking builds
         mkdir -p $lib/lib
-        for f in ${glibc}/lib/*; do
-          ln -s $f $lib/lib/$(basename $f)
-        done
-      '';
-    in {
-      "11-linux-amd64" = ''
-        ${copyClibrariesToOut "$out/lib/svm/clibraries"}
-
-        ${copyClibrariesToLib}
-      '';
-      "17-linux-amd64" = ''
-        ${copyClibrariesToOut "$out/lib/svm/clibraries"}
-
-        ${copyClibrariesToLib}
-      '';
-      "11-linux-aarch64" = ''
-        ${copyClibrariesToOut "$out/lib/svm/clibraries"}
-
-        ${copyClibrariesToLib}
+        # jni.h expects jni_md.h to be in the header search path.
+        ln -s $out/include/linux/*_md.h $out/include/
+
+        # copy-paste openjdk's preFixup
+        # Set JAVA_HOME automatically.
+        mkdir -p $out/nix-support
+        cat <<EOF > $out/nix-support/setup-hook
+          if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
+        EOF
       '';
-      "17-linux-aarch64" = ''
-        ${copyClibrariesToOut "$out/lib/svm/clibraries"}
-
-        ${copyClibrariesToLib}
-      '';
-      "11-darwin-amd64" = "";
-      "17-darwin-amd64" = "";
-    }.${javaVersionPlatform} + ''
-      # ensure that $lib/lib exists to avoid breaking builds
-      mkdir -p $lib/lib
-      # jni.h expects jni_md.h to be in the header search path.
-      ln -s $out/include/linux/*_md.h $out/include/
-    '';
 
     dontStrip = true;
 
-    preFixup = ''
+    # Workaround for libssl.so.10 wanted by TruffleRuby
+    # Resulting TruffleRuby cannot use `openssl` library.
+    autoPatchelfIgnoreMissingDeps = stdenv.isDarwin;
+
+    preFixup = lib.optionalString (stdenv.isLinux) ''
       # We cannot use -exec since wrapProgram is a function but not a
       # command.
       #
@@ -165,19 +214,18 @@ let
       for bin in $( find "$out" -executable -type f -not -path '*/languages/ruby/lib/gems/*' -not -name jspawnhelper ); do
         if patchelf --print-interpreter "$bin" &> /dev/null || head -n 1 "$bin" | grep '^#!' -q; then
           wrapProgram "$bin" \
-            --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}"
+            --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}" \
+            --prefix PATH : "${runtimeDependencies}"
         fi
       done
 
-      # copy-paste openjdk's preFixup
-      # Set JAVA_HOME automatically.
-      mkdir -p $out/nix-support
-      cat <<EOF > $out/nix-support/setup-hook
-        if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
-      EOF
-
       find "$out" -name libfontmanager.so -exec \
         patchelf --add-needed libfontconfig.so {} \;
+
+      # Workaround for libssl.so.10/libcrypto.so.10 wanted by TruffleRuby
+      patchelf $out/languages/ruby/lib/mri/openssl.so \
+        --replace-needed libssl.so.10 libssl.so \
+        --replace-needed libcrypto.so.10 libcrypto.so
     '';
 
     # $out/bin/native-image needs zlib to build native executables.
@@ -204,19 +252,26 @@ let
       # run on JVM with Graal Compiler
       $out/bin/java -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler HelloWorld | fgrep 'Hello World'
 
-      # Ahead-Of-Time compilation
-      $out/bin/native-image -H:-CheckToolchain -H:+ReportExceptionStackTraces --no-server HelloWorld
-      ./helloworld | fgrep 'Hello World'
+      ${# --static flag doesn't work for darwin
+        lib.optionalString (stdenv.isLinux && !useMusl) ''
+          echo "Ahead-Of-Time compilation"
+          $out/bin/native-image -H:-CheckToolchain -H:+ReportExceptionStackTraces --no-server HelloWorld
+          ./helloworld | fgrep 'Hello World'
 
-      ${
-        lib.optionalString stdenv.isLinux ''
-          # Ahead-Of-Time compilation with --static
-          # --static flag doesn't work for darwin
+          echo "Ahead-Of-Time compilation with --static"
           $out/bin/native-image --no-server --static HelloWorld
           ./helloworld | fgrep 'Hello World'
         ''
       }
 
+      ${# --static flag doesn't work for darwin
+        lib.optionalString (stdenv.isLinux && useMusl) ''
+          echo "Ahead-Of-Time compilation with --static and --libc=musl"
+          $out/bin/native-image --no-server --libc=musl --static HelloWorld
+          ./helloworld | fgrep 'Hello World'
+        ''
+      }
+
       ${# TODO: Doesn't work on MacOS, we have this error:
         # "Launching JShell execution engine threw: Operation not permitted (Bind failed)"
         lib.optionalString (stdenv.isLinux) ''
@@ -275,4 +330,5 @@ let
       ];
     };
   };
-in graalvmXXX-ce
+in
+graalvmXXX-ce
diff --git a/pkgs/development/compilers/gwt/2.4.0.nix b/pkgs/development/compilers/gwt/2.4.0.nix
index 011a7979df7f9..38f29cb3200ce 100644
--- a/pkgs/development/compilers/gwt/2.4.0.nix
+++ b/pkgs/development/compilers/gwt/2.4.0.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, unzip }:
 
-stdenv.mkDerivation {
-  name = "gwt-java-2.4.0";
+stdenv.mkDerivation rec {
+  pname = "gwt-java";
+  version = "2.4.0";
 
   src = fetchurl {
-    url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/google-web-toolkit/gwt-2.4.0.zip";
+    url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/google-web-toolkit/gwt-${version}.zip";
     sha256 = "1gvyg00vx7fdqgfl2w7nhql78clg3abs6fxxy7m03pprdm5qmm17";
   };
 
diff --git a/pkgs/development/compilers/hip/default.nix b/pkgs/development/compilers/hip/default.nix
index 6a1e6383958da..68c6ea39cf7ef 100644
--- a/pkgs/development/compilers/hip/default.nix
+++ b/pkgs/development/compilers/hip/default.nix
@@ -8,9 +8,13 @@
 , fetchpatch
 , file
 , lib
+, libglvnd
+, libX11
+, libxml2
 , lld
 , llvm
 , makeWrapper
+, numactl
 , perl
 , python
 , rocclr
@@ -24,28 +28,96 @@
 , writeText
 }:
 
+let
+  hip = stdenv.mkDerivation rec {
+    pname = "hip";
+    version = "4.5.2";
+
+    src = fetchFromGitHub {
+      owner = "ROCm-Developer-Tools";
+      repo = "HIP";
+      rev = "rocm-${version}";
+      sha256 = "sha256-AuA5ubRPywXaBBrjdHg5AT8rrVKULKog6Lh8jPaUcXY=";
+    };
+
+    # - fix bash paths
+    # - fix path to rocm_agent_enumerator
+    # - fix hcc path
+    # - fix hcc version parsing
+    # - add linker flags for libhsa-runtime64 and hc_am since libhip_hcc
+    #   refers to them.
+    prePatch = ''
+      for f in $(find bin -type f); do
+        sed -e 's,#!/usr/bin/perl,#!${perl}/bin/perl,' \
+            -e 's,#!/bin/bash,#!${stdenv.shell},' \
+            -i "$f"
+      done
+
+      substituteInPlace bin/hip_embed_pch.sh \
+        --replace '$LLVM_DIR/bin/' ""
+
+      sed 's,#!/usr/bin/python,#!${python}/bin/python,' -i hip_prof_gen.py
+
+      sed -e 's,$ROCM_AGENT_ENUM = "''${ROCM_PATH}/bin/rocm_agent_enumerator";,$ROCM_AGENT_ENUM = "${rocminfo}/bin/rocm_agent_enumerator";,' \
+          -e 's,^\($DEVICE_LIB_PATH=\).*$,\1"${rocm-device-libs}/amdgcn/bitcode";,' \
+          -e 's,^\($HIP_COMPILER=\).*$,\1"clang";,' \
+          -e 's,^\($HIP_RUNTIME=\).*$,\1"ROCclr";,' \
+          -e 's,^\([[:space:]]*$HSA_PATH=\).*$,\1"${rocm-runtime}";,'g \
+          -e 's,^\([[:space:]]*\)$HIP_CLANG_INCLUDE_PATH = abs_path("$HIP_CLANG_PATH/../lib/clang/$HIP_CLANG_VERSION/include");,\1$HIP_CLANG_INCLUDE_PATH = "${clang-unwrapped}/lib/clang/$HIP_CLANG_VERSION/include";,' \
+          -e 's,^\([[:space:]]*$HIPCXXFLAGS .= " -isystem \\"$HIP_CLANG_INCLUDE_PATH/..\\"\)";,\1 -isystem ${rocm-runtime}/include";,' \
+          -e 's,`file,`${file}/bin/file,g' \
+          -e 's,`readelf,`${binutils-unwrapped}/bin/readelf,' \
+          -e 's, ar , ${binutils-unwrapped}/bin/ar ,g' \
+          -i bin/hipcc
+
+      sed -e 's,^\($HSA_PATH=\).*$,\1"${rocm-runtime}";,' \
+          -e 's,^\($HIP_CLANG_PATH=\).*$,\1"${clang}/bin";,' \
+          -e 's,^\($HIP_PLATFORM=\).*$,\1"amd";,' \
+          -e 's,$HIP_CLANG_PATH/llc,${llvm}/bin/llc,' \
+          -e 's, abs_path, Cwd::abs_path,' \
+          -i bin/hipconfig
+
+      sed -e 's, abs_path, Cwd::abs_path,' -i bin/hipvars.pm
+    '';
+
+    buildPhase = "";
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out
+      cp -r * $out/
+
+      runHook postInstall
+    '';
+
+    meta = with lib; {
+      description = "C++ Heterogeneous-Compute Interface for Portability";
+      homepage = "https://github.com/ROCm-Developer-Tools/HIP";
+      license = licenses.mit;
+      maintainers = with maintainers; [ lovesegfault ];
+      platforms = platforms.linux;
+    };
+  };
+in
 stdenv.mkDerivation rec {
-  name = "hip";
-  version = "4.3.1";
+  pname = "hip";
+  version = "4.5.2";
+
   src = fetchFromGitHub {
     owner = "ROCm-Developer-Tools";
-    repo = "HIP";
+    repo = "hipamd";
     rev = "rocm-${version}";
-    sha256 = "sha256-dUdP32H0u6kVItS+VUE549vvxkV1mSN84HvyfeK2hEE=";
+    sha256 = "WvOuQu/EN81Kwcoc3ZtGlhb996edQJ3OWFsmPuqeNXE=";
   };
 
-  # FIXME: https://github.com/ROCm-Developer-Tools/HIP/issues/2317
-  postPatch = ''
-    cp ${rocm-opencl-runtime.src}/amdocl/cl_vk_amd.hpp amdocl/
-  '';
-
-  nativeBuildInputs = [ cmake python makeWrapper ];
+  nativeBuildInputs = [ cmake python makeWrapper perl ];
+  buildInputs = [ libxml2 numactl libglvnd libX11 ];
   propagatedBuildInputs = [
     clang
     compiler-rt
     lld
     llvm
-    rocclr
     rocm-comgr
     rocm-device-libs
     rocm-runtime
@@ -58,123 +130,28 @@ stdenv.mkDerivation rec {
     export DEVICE_LIB_PATH=${rocm-device-libs}/lib
   '';
 
-  # The patch version is the last two digits of year + week number +
-  # day in the week: date -d "2021-07-25" +%y%U%w
-  workweek = "21300";
-
   cmakeFlags = [
-    "-DHSA_PATH=${rocm-runtime}"
-    "-DHIP_COMPILER=clang"
     "-DHIP_PLATFORM=amd"
-    "-DHIP_VERSION_GITDATE=${workweek}"
-    "-DCMAKE_C_COMPILER=${clang}/bin/clang"
-    "-DCMAKE_CXX_COMPILER=${clang}/bin/clang++"
-    "-DLLVM_ENABLE_RTTI=ON"
-    "-DLIBROCclr_STATIC_DIR=${rocclr}/lib/cmake"
-    "-DROCclr_DIR=${rocclr}"
-    "-DHIP_CLANG_ROOT=${clang-unwrapped}"
+    "-DAMD_OPENCL_PATH=${rocm-opencl-runtime.src}"
+    "-DHIP_COMMON_DIR=${hip}"
+    "-DROCCLR_PATH=${rocclr}"
   ];
 
-  patches = [
-    (fetchpatch {
-      name = "no-git-during-build";
-      url = "https://github.com/acowley/HIP/commit/310b7e972cfb23216250c0240ba6134741679aee.patch";
-      sha256 = "08ky7v1yvajabn9m5x3afzrnz38gnrgc7vgqlbyr7s801c383ha1";
-    })
-    (fetchpatch {
-      name = "use-PATH-when-compiling-pch";
-      url = "https://github.com/acowley/HIP/commit/bfb4dd1eafa9714a2c05a98229cc35ffa3429b37.patch";
-      sha256 = "1wp0m32df7pf4rhx3k5n750fd7kz10zr60z0wllb0mw6h00w6xpz";
-    })
-  ];
-
-  # - fix bash paths
-  # - fix path to rocm_agent_enumerator
-  # - fix hcc path
-  # - fix hcc version parsing
-  # - add linker flags for libhsa-runtime64 and hc_am since libhip_hcc
-  #   refers to them.
-  prePatch = ''
-    for f in $(find bin -type f); do
-      sed -e 's,#!/usr/bin/perl,#!${perl}/bin/perl,' \
-          -e 's,#!/bin/bash,#!${stdenv.shell},' \
-          -i "$f"
-    done
-
-    for f in $(find . -regex '.*\.cpp\|.*\.h\(pp\)?'); do
-      if grep -q __hcc_workweek__ "$f" ; then
-        substituteInPlace "$f" --replace '__hcc_workweek__' '${workweek}'
-      fi
-    done
-
-    sed 's,#!/usr/bin/python,#!${python}/bin/python,' -i hip_prof_gen.py
-
-    sed -e 's,$ROCM_AGENT_ENUM = "''${ROCM_PATH}/bin/rocm_agent_enumerator";,$ROCM_AGENT_ENUM = "${rocminfo}/bin/rocm_agent_enumerator";,' \
-        -e "s,^\($HIP_LIB_PATH=\).*$,\1\"$out/lib\";," \
-        -e 's,^\($HIP_CLANG_PATH=\).*$,\1"${clang}/bin";,' \
-        -e 's,^\($DEVICE_LIB_PATH=\).*$,\1"${rocm-device-libs}/amdgcn/bitcode";,' \
-        -e 's,^\($HIP_COMPILER=\).*$,\1"clang";,' \
-        -e 's,^\($HIP_RUNTIME=\).*$,\1"ROCclr";,' \
-        -e 's,^\([[:space:]]*$HSA_PATH=\).*$,\1"${rocm-runtime}";,'g \
-        -e 's,\([[:space:]]*$HOST_OSNAME=\).*,\1"nixos";,' \
-        -e 's,\([[:space:]]*$HOST_OSVER=\).*,\1"${lib.versions.majorMinor lib.version}";,' \
-        -e 's,^\([[:space:]]*\)$HIP_CLANG_INCLUDE_PATH = abs_path("$HIP_CLANG_PATH/../lib/clang/$HIP_CLANG_VERSION/include");,\1$HIP_CLANG_INCLUDE_PATH = "${clang-unwrapped}/lib/clang/$HIP_CLANG_VERSION/include";,' \
-        -e 's,^\([[:space:]]*$HIPCXXFLAGS .= " -isystem $HIP_CLANG_INCLUDE_PATH\)";,\1 -isystem ${rocm-runtime}/include";,' \
-        -e 's,\($HIPCXXFLAGS .= " -isystem \\"$HIP_INCLUDE_PATH\\"\)" ;,\1 --rocm-path=${rocclr}";,' \
-        -e "s,\$HIP_PATH/\(bin\|lib\),$out/\1,g" \
-        -e "s,^\$HIP_LIB_PATH=\$ENV{'HIP_LIB_PATH'};,\$HIP_LIB_PATH=\"$out/lib\";," \
-        -e 's,`file,`${file}/bin/file,g' \
-        -e 's,`readelf,`${binutils-unwrapped}/bin/readelf,' \
-        -e 's, ar , ${binutils-unwrapped}/bin/ar ,g' \
-        -i bin/hipcc
-
-    sed -e 's,^\($HSA_PATH=\).*$,\1"${rocm-runtime}";,' \
-        -e 's,^\($HIP_CLANG_PATH=\).*$,\1"${clang}/bin";,' \
-        -e 's,^\($HIP_PLATFORM=\).*$,\1"amd";,' \
-        -e 's,$HIP_CLANG_PATH/llc,${llvm}/bin/llc,' \
-        -e 's, abs_path, Cwd::abs_path,' \
-        -i bin/hipconfig
-
-    sed -e 's, abs_path, Cwd::abs_path,' -i bin/hipvars.pm
-
-    sed -e 's|_IMPORT_PREFIX}/../include|_IMPORT_PREFIX}/include|g' \
-        -e 's|''${HIP_CLANG_ROOT}/lib/clang/\*/include|${clang-unwrapped}/lib/clang/*/include|' \
-        -i hip-config.cmake.in
-  '';
-
-  preInstall = ''
-    mkdir -p $out/lib/cmake
-  '';
-
-  # The upstream ROCclr setup wants everything built into the same
-  # ROCclr output directory. We copy things into the HIP output
-  # directory, since it is downstream of ROCclr in terms of dependency
-  # direction. Thus we have device-libs and rocclr pieces in the HIP
-  # output directory.
   postInstall = ''
-    mkdir -p $out/share
-    mv $out/lib/cmake $out/share/
-    mv $out/cmake/* $out/share/cmake/hip
-    mkdir -p $out/lib
-    ln -s ${rocm-device-libs}/lib $out/lib/bitcode
-    mkdir -p $out/include
-    ln -s ${clang-unwrapped}/lib/clang/11.0.0/include $out/include/clang
-    ln -s ${rocclr}/lib/*.* $out/lib
-    ln -s ${rocclr}/include/* $out/include
-    wrapProgram $out/bin/hipcc --set HIP_PATH $out --set HSA_PATH ${rocm-runtime} --set HIP_CLANG_PATH ${clang}/bin --prefix PATH : ${lld}/bin --set NIX_CC_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt} 1 --prefix NIX_LDFLAGS ' ' -L${compiler-rt}/lib --prefix NIX_LDFLAGS_FOR_TARGET ' ' -L${compiler-rt}/lib
+    wrapProgram $out/bin/hipcc --set HIP_PATH $out --set HSA_PATH ${rocm-runtime} --set HIP_CLANG_PATH ${clang}/bin --prefix PATH : ${lld}/bin --set NIX_CC_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt} 1 --prefix NIX_LDFLAGS ' ' -L${compiler-rt}/lib --prefix NIX_LDFLAGS_FOR_TARGET ' ' -L${compiler-rt}/lib --add-flags "-nogpuinc"
     wrapProgram $out/bin/hipconfig --set HIP_PATH $out --set HSA_PATH ${rocm-runtime} --set HIP_CLANG_PATH ${clang}/bin
   '';
 
   passthru.updateScript = writeScript "update.sh" ''
     #!/usr/bin/env nix-shell
     #!nix-shell -i bash -p curl jq common-updater-scripts
-    version="$(curl -sL "https://api.github.com/repos/ROCm-Developer-Tools/HIP/tags" | jq '.[].name | split("-") | .[1] | select( . != null )' --raw-output | sort -n | tail -1)"
+    version="$(curl -sL "https://api.github.com/repos/ROCm-Developer-Tools/hipamd/tags" | jq '.[].name | split("-") | .[1] | select( . != null )' --raw-output | sort -n | tail -1)"
     update-source-version hip "$version"
   '';
 
   meta = with lib; {
     description = "C++ Heterogeneous-Compute Interface for Portability";
-    homepage = "https://github.com/ROCm-Developer-Tools/HIP";
+    homepage = "https://github.com/ROCm-Developer-Tools/hipamd";
     license = licenses.mit;
     maintainers = with maintainers; [ lovesegfault ];
     platforms = platforms.linux;
diff --git a/pkgs/development/compilers/idris2/default.nix b/pkgs/development/compilers/idris2/default.nix
index a8ac6431a4d30..4bf8f7e4af6c2 100644
--- a/pkgs/development/compilers/idris2/default.nix
+++ b/pkgs/development/compilers/idris2/default.nix
@@ -6,6 +6,7 @@
 , chez
 , gmp
 , zsh
+, callPackage
 }:
 
 # NOTICE: An `idris2WithPackages` is available at: https://github.com/claymager/idris2-pkgs
@@ -79,9 +80,12 @@ stdenv.mkDerivation rec {
       --suffix IDRIS2_LIBS ':' "$out/${name}/lib" \
       --suffix IDRIS2_DATA ':' "$out/${name}/support" \
       --suffix IDRIS2_PATH ':' "${additionalIdris2Paths}" \
-      --suffix LD_LIBRARY_PATH ':' "$out/${name}/lib"
+      --suffix ${if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH"} ':' "$out/${name}/lib"
   '';
 
+  # Run package tests
+  passthru.tests = callPackage ./tests.nix { inherit pname; };
+
   meta = {
     description = "A purely functional programming language with first class types";
     homepage = "https://github.com/idris-lang/Idris2";
diff --git a/pkgs/development/compilers/idris2/tests.nix b/pkgs/development/compilers/idris2/tests.nix
new file mode 100644
index 0000000000000..1e84ca6b77aa0
--- /dev/null
+++ b/pkgs/development/compilers/idris2/tests.nix
@@ -0,0 +1,67 @@
+{ stdenv, lib, pname, idris2, zsh }:
+
+let
+  testCompileAndRun = {testName, code, want, packages ? []}: let
+      packageString = builtins.concatStringsSep " " (map (p: "--package " + p) packages);
+    in stdenv.mkDerivation {
+      name = "${pname}-${testName}";
+      meta.timeout = 60;
+
+      # with idris2 compiled binaries assume zsh is available on darwin, but that
+      # is not the case with pure nix environments. Thus, we need to include zsh
+      # when we build for darwin in tests. While this is impure, this is also what
+      # we find in real darwin hosts.
+      nativeBuildInputs = lib.optional stdenv.isDarwin [ zsh ];
+
+      buildCommand = ''
+        set -eo pipefail
+
+        cat > packageTest.idr <<HERE
+        ${code}
+        HERE
+
+        ${idris2}/bin/idris2 ${packageString} -o packageTest packageTest.idr
+
+        GOT=$(./build/exec/packageTest)
+
+        if [ "$GOT" = "${want}" ]; then
+          echo "${testName} SUCCESS: '$GOT' = '${want}'"
+        else
+          >&2 echo "Got '$GOT', want: '${want}'"
+          exit 1
+        fi
+
+        touch $out
+      '';
+    };
+in {
+  # Simple hello world compiles, runs and outputs as expected
+  hello-world = testCompileAndRun {
+    testName = "hello-world";
+    code = ''
+      module Main
+
+      main : IO ()
+      main = putStrLn "Hello World!"
+    '';
+    want = "Hello World!";
+  };
+
+  # Data.Vect.Sort is available via --package contrib
+  use-contrib = testCompileAndRun {
+    testName = "use-contrib";
+    code = ''
+      module Main
+
+      import Data.Vect
+      import Data.Vect.Sort  -- from contrib
+
+      vect : Vect 3 Int
+      vect = 3 :: 1 :: 5 :: Nil
+
+      main : IO ()
+      main = putStrLn $ show (sort vect)
+    '';
+    want = "[1, 3, 5]";
+  };
+}
diff --git a/pkgs/development/compilers/ios-cross-compile/9.2_builder.sh b/pkgs/development/compilers/ios-cross-compile/9.2_builder.sh
index 4604b1fdea727..68ba3ed3a920a 100644
--- a/pkgs/development/compilers/ios-cross-compile/9.2_builder.sh
+++ b/pkgs/development/compilers/ios-cross-compile/9.2_builder.sh
@@ -8,43 +8,43 @@ function extract
 
     case "$1" in
         *.tar.xz)
-	    xz -dc $1 | tar "$tarflags" - ;;
-	*)
-	    printf "Make sure you give a iPhoneOS9.2.sdk.tar.xz file \n" ;;
+        xz -dc $1 | tar "$tarflags" - ;;
+    *)
+        printf "Make sure you give a iPhoneOS9.2.sdk.tar.xz file \n" ;;
     esac
 }
 
 function verify_arch {
     case "$1" in
-	# Our good arches.
-	armv7|arm64) ;;
-	*)
-	    local
-	    acc="armv7 | arm64"
-	    error_message=$(
-		printf '%s is not an acceptable arch. Try one of %s' "$1" "$acc"
-			 )
-	    printf "$error_message\n"
-	    exit
+    # Our good arches.
+    armv7|arm64) ;;
+    *)
+        local
+        acc="armv7 | arm64"
+        error_message=$(
+        printf '%s is not an acceptable arch. Try one of %s' "$1" "$acc"
+             )
+        printf "$error_message\n"
+        exit
     esac
 }
 
 function verify_sdk_version {
     sdk_version=$(basename "$1" | grep -P -o "[0-9].[0-9]+")
     case "$sdk_version" in
-	# Make sure the SDK is correct.
-	[5-9].[0-9]) ;;
-	*)
-	    printf 'No iPhone SDK version in file name\n'
+    # Make sure the SDK is correct.
+    [5-9].[0-9]) ;;
+    *)
+        printf 'No iPhone SDK version in file name\n'
     esac
 }
 
 function do_build {
 
     if [ $# -lt 2 ]; then
-	printf "usage: $0 iPhoneOS.sdk.tar* <target cpu>\n" 1>&2
-	printf "i.e. $0 /path/to/iPhoneOS.sdk.tar.xz armv7\n" 1>&2
-	exit 1
+    printf "usage: $0 iPhoneOS.sdk.tar* <target cpu>\n" 1>&2
+    printf "i.e. $0 /path/to/iPhoneOS.sdk.tar.xz armv7\n" 1>&2
+    exit 1
     fi
 
     mkdir -p $out
@@ -54,7 +54,7 @@ function do_build {
     pushd "$cctools_port"/usage_examples/ios_toolchain &> /dev/null
 
     export LC_ALL=C
-    
+
     local
     triple='%s-apple-darwin11'
     target_dir="$PWD/target"
@@ -75,12 +75,12 @@ function do_build {
     extract "$1"
 
     local sys_lib=$(
-    	find $sdk_dir -name libSystem.dylib -o -name libSystem.tbd | head -n1
-    	  )
+        find $sdk_dir -name libSystem.dylib -o -name libSystem.tbd | head -n1
+          )
 
     if [ -z "$sys_lib" ]; then
-    	printf "SDK should contain libSystem{.dylib,.tbd}\n" 1>&2
-    	exit 1
+        printf "SDK should contain libSystem{.dylib,.tbd}\n" 1>&2
+        exit 1
     fi
 
     local sys_root=$(readlink -f "$(dirname $sys_lib)/../..")
@@ -96,18 +96,18 @@ function do_build {
     printf "int main(){return 0;}" | clang -xc -O2 -o "$target_dir"/bin/dsymutil -
 
     clang -O2 -std=c99 $alt_wrapper \
-    	  -DTARGET_CPU=$(printf '"%s"' "$2") \
-    	  -DNIX_APPLE_HDRS=$(
-    	printf '"%s"' "-I$out/$sdk/usr/include"
-    	  ) \
-    	  -DNIX_APPLE_FRAMEWORKS=$(
-    	printf '"%s"' "$out/$sdk/System/Library/Frameworks"
-    	  ) \
-    	  -DNIX_APPLE_PRIV_FRAMEWORKS=$(
-    	printf '"%s"' "$out/$sdk/System/Library/PrivateFrameworks"
-    	  ) \
-    	  -DOS_VER_MIN=$(printf '"%s"' "7.1") \
-    	  -o "$target_dir/bin/$triple-clang"
+          -DTARGET_CPU=$(printf '"%s"' "$2") \
+          -DNIX_APPLE_HDRS=$(
+        printf '"%s"' "-I$out/$sdk/usr/include"
+          ) \
+          -DNIX_APPLE_FRAMEWORKS=$(
+        printf '"%s"' "$out/$sdk/System/Library/Frameworks"
+          ) \
+          -DNIX_APPLE_PRIV_FRAMEWORKS=$(
+        printf '"%s"' "$out/$sdk/System/Library/PrivateFrameworks"
+          ) \
+          -DOS_VER_MIN=$(printf '"%s"' "7.1") \
+          -o "$target_dir/bin/$triple-clang"
 
     pushd "$target_dir"/bin &>/dev/null
 
@@ -141,8 +141,8 @@ function do_build {
     local me=`whoami`
 
     for d in bin libexec SDK; do
-    	chown -R $me:$me target/$d
-    	cp -R target/$d $out
+        chown -R $me:$me target/$d
+        cp -R target/$d $out
     done
 
     # Crucial piece
diff --git a/pkgs/development/compilers/julia/1.0.nix b/pkgs/development/compilers/julia/1.0.nix
index 4f05329f595a5..28500815639a7 100644
--- a/pkgs/development/compilers/julia/1.0.nix
+++ b/pkgs/development/compilers/julia/1.0.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchpatch, fetchurl, fetchzip
 # build tools
-, gfortran, m4, makeWrapper, patchelf, perl, which, python2
+, gfortran, m4, makeWrapper, patchelf, perl, which, python3
 , cmake
 # libjulia dependencies
 , libunwind, readline, utf8proc, zlib
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
     sha256 = src_sha256;
   };
 
-  nativeBuildInputs = [ cmake curl gfortran m4 makeWrapper patchelf perl python2 which ];
+  nativeBuildInputs = [ cmake curl gfortran m4 makeWrapper patchelf perl python3 which ];
   # cmake is only used to build the bundled deps
   dontUseCmakeConfigure = true;
 
diff --git a/pkgs/development/compilers/julia/1.5.nix b/pkgs/development/compilers/julia/1.5.nix
index 06c0e2a30e8c0..3421af681a250 100644
--- a/pkgs/development/compilers/julia/1.5.nix
+++ b/pkgs/development/compilers/julia/1.5.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchzip
 # build tools
-, gfortran, m4, makeWrapper, patchelf, perl, which, python2, cmake
+, gfortran, m4, makeWrapper, patchelf, perl, which, python3, cmake
 # libjulia dependencies
 , libunwind, readline, utf8proc, zlib
 # standard library dependencies
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
     zlib
   ] ++ lib.optionals stdenv.isDarwin [CoreServices ApplicationServices];
 
-  nativeBuildInputs = [ curl gfortran m4 makeWrapper patchelf perl python2 which cmake ];
+  nativeBuildInputs = [ curl gfortran m4 makeWrapper patchelf perl python3 which cmake ];
 
   makeFlags =
     let
diff --git a/pkgs/development/compilers/julia/1.6-bin.nix b/pkgs/development/compilers/julia/1.6-bin.nix
index ad6083a1ea3b8..ece5a2a247164 100644
--- a/pkgs/development/compilers/julia/1.6-bin.nix
+++ b/pkgs/development/compilers/julia/1.6-bin.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "julia-bin";
-  version = "1.6.3";
+  version = "1.6.5";
 
   src = {
     x86_64-linux = fetchurl {
       url = "https://julialang-s3.julialang.org/bin/linux/x64/${lib.versions.majorMinor version}/julia-${version}-linux-x86_64.tar.gz";
-      sha256 = "0jrijj9snfx70692z2301rjassvwjcsjbxdsjyif9hyp9hrrqif7";
+      sha256 = "0b4fmcfd5q5wzvasmsfqq838rivpxn274n5y2kza4m3jakp27zmq";
     };
   }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
   '';
   patches = [
     # Source release Nix patch(es) relevant for binary releases as well.
-    ./patches/1.6-bin/0002-nix-Skip-tempname-test-broken-in-sandbox.patch
     ./patches/1.6-bin/0005-nix-Enable-parallel-unit-tests-for-sandbox.patch
   ];
   postPatch = ''
@@ -62,7 +61,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "High-level, high-performance dynamic language for technical computing.";
+    description = "High-level, high-performance, dynamic language for technical computing";
     homepage = "https://julialang.org";
     # Bundled and linked with various GPL code, although Julia itself is MIT.
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/development/compilers/julia/1.0-bin.nix b/pkgs/development/compilers/julia/1.7-bin.nix
index dfda8da9e4de9..dab58674f9d23 100644
--- a/pkgs/development/compilers/julia/1.0-bin.nix
+++ b/pkgs/development/compilers/julia/1.7-bin.nix
@@ -1,43 +1,43 @@
-{ autoPatchelfHook, fetchurl, lib, makeWrapper, openssl, stdenv }:
+{ autoPatchelfHook, fetchurl, lib, stdenv }:
 
 stdenv.mkDerivation rec {
   pname = "julia-bin";
-  version = "1.0.5";
+  version = "1.7.1";
 
   src = {
     x86_64-linux = fetchurl {
       url = "https://julialang-s3.julialang.org/bin/linux/x64/${lib.versions.majorMinor version}/julia-${version}-linux-x86_64.tar.gz";
-      sha256 = "00vbszpjmz47nqy19v83xa463ajhzwanjyg5mvcfp9kvfw9xdvcx";
+      sha256 = "04czipzai5628v1npa2y2xff0bd4rj8d2fcjnnsvkqj5gff8wra4";
     };
   }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
   # Julia’s source files are in different locations for source and binary
-  # releases. Thus we temporarily create symlinks to allow us to share patches
+  # releases. Thus we temporarily create a symlink to allow us to share patches
   # with source releases.
   prePatch = ''
-    ln -s share/julia/stdlib/v${lib.versions.majorMinor version} stdlib
     ln -s share/julia/test
   '';
   patches = [
     # Source release Nix patch(es) relevant for binary releases as well.
-    ./patches/1.0-bin/0002-nix-Skip-tests-that-require-network-access.patch
+    ./patches/1.7-bin/0005-nix-Enable-parallel-unit-tests-for-sandbox.patch
   ];
   postPatch = ''
     # Revert symlink hack.
-    rm stdlib test
+    rm test
+
+    # Julia fails to pick up our Certification Authority root certificates, but
+    # it provides its own so we can simply disable the test. Patching in the
+    # dynamic path to ours require us to rebuild the Julia system image.
+    substituteInPlace share/julia/stdlib/v${lib.versions.majorMinor version}/NetworkOptions/test/runtests.jl \
+      --replace '@test ca_roots_path() != bundled_ca_roots()' \
+        '@test_skip ca_roots_path() != bundled_ca_roots()'
   '';
 
-  buildInputs = [ makeWrapper ];
   nativeBuildInputs = [ autoPatchelfHook ];
 
   installPhase = ''
     runHook preInstall
     cp -r . $out
-    # Setting `LD_LIBRARY_PATH` resolves `Libdl` failures. Not sure why this is
-    # only necessary on v1.0.x and a cleaner solution is welcome, but after
-    # staring at `strace` for a few hours this is as clean as I could make it.
-    wrapProgram $out/bin/julia \
-      --suffix LD_LIBRARY_PATH : $out/lib
     runHook postInstall
   '';
 
@@ -45,7 +45,6 @@ stdenv.mkDerivation rec {
   dontStrip = true;
 
   doInstallCheck = true;
-  installCheckInputs = [ openssl ];
   preInstallCheck = ''
     # Some tests require read/write access to $HOME.
     export HOME="$TMPDIR"
@@ -62,19 +61,11 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "High-level, high-performance dynamic language for technical computing";
+    description = "High-level, high-performance, dynamic language for technical computing";
     homepage = "https://julialang.org";
     # Bundled and linked with various GPL code, although Julia itself is MIT.
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ ninjin raskin ];
     platforms = [ "x86_64-linux" ];
-    knownVulnerabilities = [
-      # Built with libgit2 v0.27.2:
-      #   https://github.com/JuliaLang/julia/blob/e0837d1e64a9e4d17534a9f981e9a2a3f221356f/deps/libgit2.version
-      # https://nvd.nist.gov/vuln/detail/CVE-2020-12278
-      "CVE-2020-12278"
-      # https://nvd.nist.gov/vuln/detail/CVE-2020-12279
-      "CVE-2020-12279"
-    ];
   };
 }
diff --git a/pkgs/development/compilers/julia/patches/1.0-bin/0002-nix-Skip-tests-that-require-network-access.patch b/pkgs/development/compilers/julia/patches/1.0-bin/0002-nix-Skip-tests-that-require-network-access.patch
deleted file mode 100644
index 0de1f7c010d39..0000000000000
--- a/pkgs/development/compilers/julia/patches/1.0-bin/0002-nix-Skip-tests-that-require-network-access.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 4954b99efae367da49412edd31a7bd832ec62c69 Mon Sep 17 00:00:00 2001
-From: Pontus Stenetorp <pontus@stenetorp.se>
-Date: Mon, 15 Mar 2021 05:55:18 +0000
-Subject: [PATCH 2/3] nix: Skip tests that require network access
-
-Necessary as the Nix build sandbox does not permit network access.
----
- stdlib/Sockets/test/runtests.jl | 40 ++++++++++++++++-----------------
- test/file.jl                    |  4 ++--
- 2 files changed, 22 insertions(+), 22 deletions(-)
-
-diff --git a/stdlib/Sockets/test/runtests.jl b/stdlib/Sockets/test/runtests.jl
-index 6145f87616..9cc7a001e5 100644
---- a/stdlib/Sockets/test/runtests.jl
-+++ b/stdlib/Sockets/test/runtests.jl
-@@ -151,33 +151,33 @@ defaultport = rand(2000:4000)
- end
- 
- @testset "getnameinfo on some unroutable IP addresses (RFC 5737)" begin
--    @test getnameinfo(ip"192.0.2.1") == "192.0.2.1"
--    @test getnameinfo(ip"198.51.100.1") == "198.51.100.1"
--    @test getnameinfo(ip"203.0.113.1") == "203.0.113.1"
--    @test getnameinfo(ip"0.1.1.1") == "0.1.1.1"
--    @test getnameinfo(ip"::ffff:0.1.1.1") == "::ffff:0.1.1.1"
--    @test getnameinfo(ip"::ffff:192.0.2.1") == "::ffff:192.0.2.1"
--    @test getnameinfo(ip"2001:db8::1") == "2001:db8::1"
-+    @test_skip getnameinfo(ip"192.0.2.1") == "192.0.2.1"
-+    @test_skip getnameinfo(ip"198.51.100.1") == "198.51.100.1"
-+    @test_skip getnameinfo(ip"203.0.113.1") == "203.0.113.1"
-+    @test_skip getnameinfo(ip"0.1.1.1") == "0.1.1.1"
-+    @test_skip getnameinfo(ip"::ffff:0.1.1.1") == "::ffff:0.1.1.1"
-+    @test_skip getnameinfo(ip"::ffff:192.0.2.1") == "::ffff:192.0.2.1"
-+    @test_skip getnameinfo(ip"2001:db8::1") == "2001:db8::1"
- end
- 
- @testset "getnameinfo on some valid IP addresses" begin
-     @test !isempty(getnameinfo(ip"::")::String)
--    @test !isempty(getnameinfo(ip"0.0.0.0")::String)
--    @test !isempty(getnameinfo(ip"10.1.0.0")::String)
--    @test !isempty(getnameinfo(ip"10.1.0.255")::String)
--    @test !isempty(getnameinfo(ip"10.1.255.1")::String)
--    @test !isempty(getnameinfo(ip"255.255.255.255")::String)
--    @test !isempty(getnameinfo(ip"255.255.255.0")::String)
--    @test !isempty(getnameinfo(ip"192.168.0.1")::String)
--    @test !isempty(getnameinfo(ip"::1")::String)
-+    @test_skip !isempty(getnameinfo(ip"0.0.0.0")::String)
-+    @test_skip !isempty(getnameinfo(ip"10.1.0.0")::String)
-+    @test_skip !isempty(getnameinfo(ip"10.1.0.255")::String)
-+    @test_skip !isempty(getnameinfo(ip"10.1.255.1")::String)
-+    @test_skip !isempty(getnameinfo(ip"255.255.255.255")::String)
-+    @test_skip !isempty(getnameinfo(ip"255.255.255.0")::String)
-+    @test_skip !isempty(getnameinfo(ip"192.168.0.1")::String)
-+    @test_skip !isempty(getnameinfo(ip"::1")::String)
- end
- 
- @testset "getaddrinfo" begin
--    let localhost = getnameinfo(ip"127.0.0.1")::String
--        @test !isempty(localhost) && localhost != "127.0.0.1"
--        @test !isempty(getalladdrinfo(localhost)::Vector{IPAddr})
--        @test getaddrinfo(localhost, IPv4)::IPv4 != ip"0.0.0.0"
--        @test try
-+    let localhost = getnameinfo(ip"::")::String
-+        @test_skip !isempty(localhost) && localhost != "127.0.0.1"
-+        @test_skip !isempty(getalladdrinfo(localhost)::Vector{IPAddr})
-+        @test_skip getaddrinfo(localhost, IPv4)::IPv4 != ip"0.0.0.0"
-+        @test_skip try
-             getaddrinfo(localhost, IPv6)::IPv6 != ip"::"
-         catch ex
-             isa(ex, Sockets.DNSError) && ex.code == Base.UV_EAI_NONAME && ex.host == localhost
-diff --git a/test/file.jl b/test/file.jl
-index e86476f975..579276f82c 100644
---- a/test/file.jl
-+++ b/test/file.jl
-@@ -874,8 +874,8 @@ if !Sys.iswindows() || (Sys.windows_version() >= Sys.WINDOWS_VISTA_VER)
- else
-     @test_throws ErrorException symlink(file, "ba\0d")
- end
--@test_throws ArgumentError download("good", "ba\0d")
--@test_throws ArgumentError download("ba\0d", "good")
-+@test_skip @test_throws ArgumentError download("good", "ba\0d")
-+@test_skip @test_throws ArgumentError download("ba\0d", "good")
- 
- ###################
- #     walkdir     #
--- 
-2.29.3
-
diff --git a/pkgs/development/compilers/julia/patches/1.6-bin/0002-nix-Skip-tempname-test-broken-in-sandbox.patch b/pkgs/development/compilers/julia/patches/1.6-bin/0002-nix-Skip-tempname-test-broken-in-sandbox.patch
deleted file mode 100644
index d47efe25c5a09..0000000000000
--- a/pkgs/development/compilers/julia/patches/1.6-bin/0002-nix-Skip-tempname-test-broken-in-sandbox.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From ffe227676352a910754d96d92e9b06e475f28ff1 Mon Sep 17 00:00:00 2001
-From: Pontus Stenetorp <pontus@stenetorp.se>
-Date: Thu, 8 Apr 2021 04:25:19 +0000
-Subject: [PATCH 2/6] nix: Skip `tempname` test broken in sandbox
-
-Reported upstream:
-
-    https://github.com/JuliaLang/julia/issues/38873
----
- test/file.jl | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/test/file.jl b/test/file.jl
-index 0f39bc7c14..bd4dd78f62 100644
---- a/test/file.jl
-+++ b/test/file.jl
-@@ -95,7 +95,7 @@ end
-     @test dirname(t) == tempdir()
-     mktempdir() do d
-         t = tempname(d)
--        @test dirname(t) == d
-+        @test_skip dirname(t) == d
-     end
-     @test_throws ArgumentError tempname(randstring())
- end
--- 
-2.29.3
-
diff --git a/pkgs/development/compilers/julia/patches/1.7-bin/0005-nix-Enable-parallel-unit-tests-for-sandbox.patch b/pkgs/development/compilers/julia/patches/1.7-bin/0005-nix-Enable-parallel-unit-tests-for-sandbox.patch
new file mode 100644
index 0000000000000..243a9cfd76aee
--- /dev/null
+++ b/pkgs/development/compilers/julia/patches/1.7-bin/0005-nix-Enable-parallel-unit-tests-for-sandbox.patch
@@ -0,0 +1,30 @@
+From 44c2c979c4f2222567ce65f506cf47fb87482348 Mon Sep 17 00:00:00 2001
+From: Pontus Stenetorp <pontus@stenetorp.se>
+Date: Thu, 8 Apr 2021 04:37:44 +0000
+Subject: [PATCH 5/6] nix: Enable parallel unit tests for sandbox
+
+Disabled by default due to lack of networking in the Nix sandbox. This
+greatly speeds up the build process on a multi-core system.
+---
+ test/runtests.jl | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/test/runtests.jl b/test/runtests.jl
+index 2f9cd058bb..2f8c19fa32 100644
+--- a/test/runtests.jl
++++ b/test/runtests.jl
+@@ -83,8 +83,9 @@ prepend!(tests, linalg_tests)
+ import LinearAlgebra
+ cd(@__DIR__) do
+     n = 1
+-    if net_on
+-        n = min(Sys.CPU_THREADS, length(tests))
++    if net_on || haskey(ENV, "NIX_BUILD_CORES")
++        x = haskey(ENV, "NIX_BUILD_CORES") ? parse(Int, ENV["NIX_BUILD_CORES"]) : Sys.CPU_THREADS
++        n = min(x, Sys.CPU_THREADS, length(tests))
+         n > 1 && addprocs_with_testenv(n)
+         LinearAlgebra.BLAS.set_num_threads(1)
+     end
+-- 
+2.29.3
+
diff --git a/pkgs/development/compilers/kaitai-struct-compiler/default.nix b/pkgs/development/compilers/kaitai-struct-compiler/default.nix
new file mode 100644
index 0000000000000..8561e7eae77eb
--- /dev/null
+++ b/pkgs/development/compilers/kaitai-struct-compiler/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, stdenv
+, fetchzip
+, openjdk8
+, makeWrapper
+}:
+
+
+stdenv.mkDerivation rec {
+  pname = "kaitai-struct-compiler";
+  version = "0.9";
+
+  src = fetchzip {
+    url = "https://github.com/kaitai-io/kaitai_struct_compiler/releases/download/${version}/kaitai-struct-compiler-${version}.zip";
+    sha256 = "sha256-2HSasigpJDuWNejNVklnpQwaA4MC030S9taF/7YvzgY=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    install -D $src/bin/kaitai-struct-compiler $out/bin/kaitai-struct-compiler
+    ln -s $out/bin/kaitai-struct-compiler $out/bin/ksc
+    cp -R $src/lib $out/lib
+    wrapProgram $out/bin/kaitai-struct-compiler --prefix PATH : ${lib.makeBinPath [ openjdk8 ] }
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/kaitai-io/kaitai_struct_compiler";
+    description =
+      "Compiler to generate binary data parsers in C++ / C# / Go / Java / JavaScript / Lua / Perl / PHP / Python / Ruby ";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ luis ];
+    platforms = platforms.unix;
+  };
+}
+
diff --git a/pkgs/development/compilers/koka/default.nix b/pkgs/development/compilers/koka/default.nix
index 9e4e446b12311..51d0a9ed7b908 100644
--- a/pkgs/development/compilers/koka/default.nix
+++ b/pkgs/development/compilers/koka/default.nix
@@ -4,12 +4,12 @@
 , parsec, process, regex-compat, text, time }:
 
 let
-  version = "2.3.2";
+  version = "2.3.6";
   src = fetchFromGitHub {
     owner = "koka-lang";
     repo = "koka";
     rev = "v${version}";
-    sha256 = "sha256-+w99Jvsd1tccUUYaP2TRgCNyGnMINWamuNRumHGzFWA=";
+    sha256 = "sha256-AibS/HudJKFQZlTxGD5LfwjBawIy1xwO2Hm8qzAUP2M=";
     fetchSubmodules = true;
   };
   kklib = stdenv.mkDerivation {
diff --git a/pkgs/development/compilers/kotlin/default.nix b/pkgs/development/compilers/kotlin/default.nix
index 4a92fd87f2676..82d7fe3237b2a 100644
--- a/pkgs/development/compilers/kotlin/default.nix
+++ b/pkgs/development/compilers/kotlin/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kotlin";
-  version = "1.6.0";
+  version = "1.6.10";
 
   src = fetchurl {
     url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
-    sha256 = "sha256-F0yS4SpUwJAf2fC62s8VFMKLUZepVlTk2rF3UpPd4dw=";
+    sha256 = "sha256-QyJnmW0Na0sXyo3g+HjkTUoJm36fFYepjtxNJ+dsIVo=";
   };
 
   propagatedBuildInputs = [ jre ] ;
diff --git a/pkgs/development/compilers/kotlin/native.nix b/pkgs/development/compilers/kotlin/native.nix
index b1a50cdcf40fa..514293e57459a 100644
--- a/pkgs/development/compilers/kotlin/native.nix
+++ b/pkgs/development/compilers/kotlin/native.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "kotlin-native";
-  version = "1.6.0";
+  version = "1.6.10";
 
   src = let
     getArch = {
@@ -20,9 +20,9 @@ stdenv.mkDerivation rec {
       "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-native-${arch}-${version}.tar.gz";
 
     getHash = arch: {
-      "macos-aarch64" = "sha256-HLI6E3Y8l/5vAgjT39ezBCEYhCGV3pdjx1B1fL57qO4=";
-      "macos-x86_64" = "sha256-cJV+dP9/pJHlJx55HMqd7KC/OIWEzPXKmobCZLBZ+ec=";
-      "linux-x86_64" = "sha256-C5R2hdPg1cOA9WcSZYkN22Ca3/pslEcp554tuy/HxnQ=";
+      "macos-aarch64" = "sha256-W+9F1YZ5ATa6KaALYQEXW4xr4UxfquuC72xoB2987iM=";
+      "macos-x86_64" = "sha256-pceORt+YJZiP67nbnUB6ny1ic/r0aTrdA2hsQi5Otp8=";
+      "linux-x86_64" = "sha256-tcZffJPcR6PYJ22wIh5BHn/yjG3Jb+MG5COLbAQ2/Ww=";
     }.${arch};
   in
     fetchurl {
diff --git a/pkgs/development/compilers/ldc/generic.nix b/pkgs/development/compilers/ldc/generic.nix
index 93ee83cb0abea..93423d5a1b290 100644
--- a/pkgs/development/compilers/ldc/generic.nix
+++ b/pkgs/development/compilers/ldc/generic.nix
@@ -132,6 +132,6 @@ stdenv.mkDerivation rec {
     # from https://github.com/ldc-developers/ldc/blob/master/LICENSE
     license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ];
     maintainers = with maintainers; [ ThomasMader lionello ];
-    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-darwin" ];
+    platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/development/compilers/llvm/10/libcxx/default.nix b/pkgs/development/compilers/llvm/10/libcxx/default.nix
index 7c01e73171164..d438294bdd0b6 100644
--- a/pkgs/development/compilers/llvm/10/libcxx/default.nix
+++ b/pkgs/development/compilers/llvm/10/libcxx/default.nix
@@ -21,6 +21,12 @@ stdenv.mkDerivation {
     ../../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")
diff --git a/pkgs/development/compilers/llvm/10/llvm/default.nix b/pkgs/development/compilers/llvm/10/llvm/default.nix
index 4e590dba4337d..30a2d016d67c7 100644
--- a/pkgs/development/compilers/llvm/10/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/10/llvm/default.nix
@@ -73,6 +73,20 @@ in stdenv.mkDerivation (rec {
       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;
+    })
   ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
 
   postPatch = optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/compilers/llvm/11/libcxx/default.nix b/pkgs/development/compilers/llvm/11/libcxx/default.nix
index 596d7f9976bbd..9aa49c9a009e6 100644
--- a/pkgs/development/compilers/llvm/11/libcxx/default.nix
+++ b/pkgs/development/compilers/llvm/11/libcxx/default.nix
@@ -29,6 +29,12 @@ stdenv.mkDerivation {
     ../../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 = lib.optionalString stdenv.hostPlatform.isMusl ''
     patchShebangs utils/cat_files.py
   '';
diff --git a/pkgs/development/compilers/llvm/11/libcxxabi/default.nix b/pkgs/development/compilers/llvm/11/libcxxabi/default.nix
index 65e0139a59106..61cfe8eede926 100644
--- a/pkgs/development/compilers/llvm/11/libcxxabi/default.nix
+++ b/pkgs/development/compilers/llvm/11/libcxxabi/default.nix
@@ -1,5 +1,7 @@
 { lib, stdenv, llvm_meta, cmake, fetch, libcxx, libunwind, llvm, version
 , enableShared ? !stdenv.hostPlatform.isStatic
+, standalone ? stdenv.hostPlatform.useLLVM or false
+, withLibunwind ? !stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm
 }:
 
 stdenv.mkDerivation {
@@ -29,10 +31,11 @@ stdenv.mkDerivation {
   ];
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
+  buildInputs = lib.optional withLibunwind libunwind;
 
-  cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [
+  cmakeFlags = lib.optionals standalone [
     "-DLLVM_ENABLE_LIBCXX=ON"
+  ] ++ lib.optionals (standalone && withLibunwind) [
     "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
   ] ++ lib.optionals stdenv.hostPlatform.isWasm [
     "-DLIBCXXABI_ENABLE_THREADS=OFF"
diff --git a/pkgs/development/compilers/llvm/11/llvm/default.nix b/pkgs/development/compilers/llvm/11/llvm/default.nix
index f0148850dbe8a..81ac4cb1ed080 100644
--- a/pkgs/development/compilers/llvm/11/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/11/llvm/default.nix
@@ -65,6 +65,26 @@ in stdenv.mkDerivation (rec {
       sha256 = "sha256:12s8vr6ibri8b48h2z38f3afhwam10arfiqfy4yg37bmc054p5hi";
       stripLen = 1;
     })
+    # gcc-11 compat upstream patch
+    (fetchpatch {
+      url = "https://github.com/llvm/llvm-project/commit/b498303066a63a203d24f739b2d2e0e56dca70d1.patch";
+      sha256 = "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;
+    })
   ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
 
   postPatch = optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/compilers/llvm/12/libcxx/default.nix b/pkgs/development/compilers/llvm/12/libcxx/default.nix
index 3ddcb79975050..30dc3f4f206cb 100644
--- a/pkgs/development/compilers/llvm/12/libcxx/default.nix
+++ b/pkgs/development/compilers/llvm/12/libcxx/default.nix
@@ -23,6 +23,12 @@ stdenv.mkDerivation {
     ../../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 = lib.optionalString stdenv.hostPlatform.isMusl ''
     patchShebangs utils/cat_files.py
   '';
diff --git a/pkgs/development/compilers/llvm/12/libcxxabi/default.nix b/pkgs/development/compilers/llvm/12/libcxxabi/default.nix
index 16eaed20d78c4..803fe6a62fac0 100644
--- a/pkgs/development/compilers/llvm/12/libcxxabi/default.nix
+++ b/pkgs/development/compilers/llvm/12/libcxxabi/default.nix
@@ -1,5 +1,7 @@
 { lib, stdenv, llvm_meta, cmake, python3, fetch, libcxx, libunwind, llvm, version
 , enableShared ? !stdenv.hostPlatform.isStatic
+, standalone ? stdenv.hostPlatform.useLLVM or false
+, withLibunwind ? !stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm
 }:
 
 stdenv.mkDerivation {
@@ -28,9 +30,9 @@ stdenv.mkDerivation {
   ];
 
   nativeBuildInputs = [ cmake python3 ];
-  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
+  buildInputs = lib.optional withLibunwind libunwind;
 
-  cmakeFlags = lib.optionals (stdenv.hostPlatform.useLLVM or false) [
+  cmakeFlags = lib.optionals standalone [
     "-DLLVM_ENABLE_LIBCXX=ON"
     "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
   ] ++ lib.optionals stdenv.hostPlatform.isWasm [
@@ -47,7 +49,7 @@ stdenv.mkDerivation {
         # 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
-        install_name_tool -id $out/$file $file
+        ${stdenv.cc.targetPrefix}install_name_tool -id $out/$file $file
       done
       make install
       install -d 755 $out/include
diff --git a/pkgs/development/compilers/llvm/13/clang/default.nix b/pkgs/development/compilers/llvm/13/clang/default.nix
index 78c2831a2f35f..ab826fa315261 100644
--- a/pkgs/development/compilers/llvm/13/clang/default.nix
+++ b/pkgs/development/compilers/llvm/13/clang/default.nix
@@ -37,6 +37,11 @@ let
       ./purity.patch
       # https://reviews.llvm.org/D51899
       ./gnu-install-dirs.patch
+      # Revert of https://reviews.llvm.org/D100879
+      # The malloc alignment assumption is incorrect for jemalloc and causes
+      # mis-compilation in firefox.
+      # See: https://bugzilla.mozilla.org/show_bug.cgi?id=1741454
+      ./revert-malloc-alignment-assumption.patch
       (substituteAll {
         src = ../../clang-11-12-LLVMgold-path.patch;
         libllvmLibdir = "${libllvm.lib}/lib";
@@ -44,6 +49,8 @@ let
     ];
 
     postPatch = ''
+      (cd tools && ln -s ../../clang-tools-extra extra)
+
       sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
              -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \
              lib/Driver/ToolChains/*.cpp
diff --git a/pkgs/development/compilers/llvm/13/clang/revert-malloc-alignment-assumption.patch b/pkgs/development/compilers/llvm/13/clang/revert-malloc-alignment-assumption.patch
new file mode 100644
index 0000000000000..f8e55ff7f8971
--- /dev/null
+++ b/pkgs/development/compilers/llvm/13/clang/revert-malloc-alignment-assumption.patch
@@ -0,0 +1,78 @@
+--- b/include/clang/Basic/TargetInfo.h
++++ a/include/clang/Basic/TargetInfo.h
+@@ -612,8 +612,8 @@
+   }
+ 
+   /// Return the largest alignment for which a suitably-sized allocation with
++  /// '::operator new(size_t)' is guaranteed to produce a correctly-aligned
++  /// pointer.
+-  /// '::operator new(size_t)' or 'malloc' is guaranteed to produce a
+-  /// correctly-aligned pointer.
+   unsigned getNewAlign() const {
+     return NewAlign ? NewAlign : std::max(LongDoubleAlign, LongLongAlign);
+   }
+--- b/lib/CodeGen/CGCall.cpp
++++ a/lib/CodeGen/CGCall.cpp
+@@ -2048,24 +2048,6 @@
+       // allows it to work on indirect virtual function calls.
+       if (AttrOnCallSite && TargetDecl->hasAttr<NoMergeAttr>())
+         FuncAttrs.addAttribute(llvm::Attribute::NoMerge);
+-
+-      // Add known guaranteed alignment for allocation functions.
+-      if (unsigned BuiltinID = Fn->getBuiltinID()) {
+-        switch (BuiltinID) {
+-        case Builtin::BIaligned_alloc:
+-        case Builtin::BIcalloc:
+-        case Builtin::BImalloc:
+-        case Builtin::BImemalign:
+-        case Builtin::BIrealloc:
+-        case Builtin::BIstrdup:
+-        case Builtin::BIstrndup:
+-          RetAttrs.addAlignmentAttr(Context.getTargetInfo().getNewAlign() /
+-                                    Context.getTargetInfo().getCharWidth());
+-          break;
+-        default:
+-          break;
+-        }
+-      }
+     }
+ 
+     // 'const', 'pure' and 'noalias' attributed functions are also nounwind.
+--- b/test/CodeGen/alloc-fns-alignment.c
++++ /dev/null
+@@ -1,35 +0,0 @@
+-// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -emit-llvm < %s | FileCheck %s --check-prefix=ALIGN16
+-// RUN: %clang_cc1 -triple x86_64-windows-msvc      -emit-llvm < %s | FileCheck %s --check-prefix=ALIGN16
+-// RUN: %clang_cc1 -triple i386-apple-darwin        -emit-llvm < %s | FileCheck %s --check-prefix=ALIGN16
+-// RUN: %clang_cc1 -triple i386-unknown-linux-gnu   -emit-llvm < %s | FileCheck %s --check-prefix=ALIGN8
+-// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fno-builtin-malloc  -emit-llvm < %s  | FileCheck %s --check-prefix=NOBUILTIN-MALLOC
+-// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fno-builtin-calloc  -emit-llvm < %s  | FileCheck %s --check-prefix=NOBUILTIN-CALLOC
+-// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fno-builtin-realloc -emit-llvm < %s  | FileCheck %s --check-prefix=NOBUILTIN-REALLOC
+-
+-typedef __SIZE_TYPE__ size_t;
+-
+-void *malloc(size_t);
+-void *calloc(size_t, size_t);
+-void *realloc(void *, size_t);
+-
+-void *malloc_test(size_t n) {
+-  return malloc(n);
+-}
+-
+-void *calloc_test(size_t n) {
+-  return calloc(1, n);
+-}
+-
+-void *raalloc_test(void *p, size_t n) {
+-  return realloc(p, n);
+-}
+-
+-// ALIGN16: align 16 i8* @malloc
+-// ALIGN16: align 16 i8* @calloc
+-// ALIGN16: align 16 i8* @realloc
+-// ALIGN8: align 8 i8* @malloc
+-// ALIGN8: align 8 i8* @calloc
+-// ALIGN8: align 8 i8* @realloc
+-// NOBUILTIN-MALLOC: declare i8* @malloc
+-// NOBUILTIN-CALLOC: declare i8* @calloc
+-// NOBUILTIN-REALLOC: declare i8* @realloc
diff --git a/pkgs/development/compilers/llvm/13/compiler-rt/armv7l.patch b/pkgs/development/compilers/llvm/13/compiler-rt/armv7l.patch
index 120cfe6feb2a6..6818684e6a71b 100644
--- a/pkgs/development/compilers/llvm/13/compiler-rt/armv7l.patch
+++ b/pkgs/development/compilers/llvm/13/compiler-rt/armv7l.patch
@@ -1,19 +1,18 @@
 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 @@
- 
+@@ -37,6 +37,6 @@
  
  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(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv8m.main armv8.1m.main)
++set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv7l armv8m.main armv8.1m.main)
  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 @@
+@@ -555,6 +555,7 @@
  set(armv7_SOURCES ${arm_SOURCES})
  set(armv7s_SOURCES ${arm_SOURCES})
  set(armv7k_SOURCES ${arm_SOURCES})
@@ -21,12 +20,12 @@ diff -ur compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt compiler-rt-10.0.0.s
  set(arm64_SOURCES ${aarch64_SOURCES})
  
  # macho_embedded archs
-@@ -595,7 +596,7 @@
+@@ -705,7 +705,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)$")
+-      if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em|armv8m.main|armv8.1m.main)$")
++      if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7l|armv7m|armv7em|armv8m.main|armv8.1m.main)$")
          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/13/default.nix b/pkgs/development/compilers/llvm/13/default.nix
index 13be739671438..a89c6dabe3912 100644
--- a/pkgs/development/compilers/llvm/13/default.nix
+++ b/pkgs/development/compilers/llvm/13/default.nix
@@ -244,14 +244,26 @@ let
       inherit llvm_meta;
       stdenv = if stdenv.hostPlatform.useLLVM or false
                then overrideCC stdenv buildLlvmTools.clangNoLibcxx
-               else stdenv;
+               else (
+                 # libcxx >= 13 does not build on gcc9
+                 if stdenv.cc.isGNU && lib.versionOlder stdenv.cc.version "10"
+                 then pkgs.gcc10Stdenv
+                 else stdenv
+               );
     };
 
-    libcxxabi = callPackage ./libcxxabi {
-      inherit llvm_meta;
-      stdenv = if stdenv.hostPlatform.useLLVM or false
+    libcxxabi = let
+      stdenv_ = if stdenv.hostPlatform.useLLVM or false
                then overrideCC stdenv buildLlvmTools.clangNoLibcxx
                else stdenv;
+      cxx-headers = callPackage ./libcxx {
+        inherit llvm_meta;
+        stdenv = stdenv_;
+        headersOnly = true;
+      };
+    in callPackage ./libcxxabi {
+      stdenv = stdenv_;
+      inherit llvm_meta cxx-headers;
     };
 
     libunwind = callPackage ./libunwind {
diff --git a/pkgs/development/compilers/llvm/13/libcxx/default.nix b/pkgs/development/compilers/llvm/13/libcxx/default.nix
index c60039274deb9..ddf51d9a2fa4d 100644
--- a/pkgs/development/compilers/llvm/13/libcxx/default.nix
+++ b/pkgs/development/compilers/llvm/13/libcxx/default.nix
@@ -1,15 +1,23 @@
 { lib, stdenv, llvm_meta, src, cmake, python3, fixDarwinDylibNames, version
+, libcxxabi
 , enableShared ? !stdenv.hostPlatform.isStatic
+
+# If headersOnly is true, the resulting package would only include the headers.
+# Use this to break the circular dependency between libcxx and libcxxabi.
+#
+# Some context:
+# https://reviews.llvm.org/rG1687f2bbe2e2aaa092f942d4a97d41fad43eedfb
+, headersOnly ? false
 }:
 
 stdenv.mkDerivation rec {
-  pname = "libcxx";
+  pname = if headersOnly then "cxx-headers" else "libcxx";
   inherit version;
 
   inherit src;
-  sourceRoot = "source/${pname}";
+  sourceRoot = "source/libcxx";
 
-  outputs = [ "out" "dev" ];
+  outputs = [ "out" ] ++ lib.optional (!headersOnly) "dev";
 
   patches = [
     ./gnu-install-dirs.patch
@@ -17,6 +25,12 @@ stdenv.mkDerivation rec {
     ../../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 = lib.optionalString stdenv.hostPlatform.isMusl ''
     patchShebangs utils/cat_files.py
   '';
@@ -24,15 +38,29 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake python3 ]
     ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
 
-  cmakeFlags = [
-  ] ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
+  buildInputs = lib.optionals (!headersOnly) [ libcxxabi ];
+
+  cmakeFlags = [ "-DLIBCXX_CXX_ABI=libcxxabi" ]
+    ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
     ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON"
-    ++ lib.optional stdenv.hostPlatform.isWasm [
+    ++ lib.optionals stdenv.hostPlatform.isWasm [
       "-DLIBCXX_ENABLE_THREADS=OFF"
       "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
       "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
     ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF";
 
+  buildFlags = lib.optional headersOnly "generate-cxx-headers";
+  installTargets = lib.optional headersOnly "install-cxx-headers";
+
+  # At this point, cxxabi headers would be installed in the dev output, which
+  # prevents moveToOutput from doing its job later in the build process.
+  postInstall = lib.optionalString (!headersOnly) ''
+    mv "$dev/include/c++/v1/"* "$out/include/c++/v1/"
+    pushd "$dev"
+    rmdir -p include/c++/v1
+    popd
+  '';
+
   passthru = {
     isLLVM = true;
   };
@@ -45,9 +73,6 @@ stdenv.mkDerivation rec {
       C++14 and above.
     '';
 
-    # https://github.com/NixOS/nixpkgs/pull/133217#issuecomment-895742807
-    broken = stdenv.isDarwin;
-
     # "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/13/libcxxabi/default.nix b/pkgs/development/compilers/llvm/13/libcxxabi/default.nix
index 6267678c46d55..0bdbee07b738b 100644
--- a/pkgs/development/compilers/llvm/13/libcxxabi/default.nix
+++ b/pkgs/development/compilers/llvm/13/libcxxabi/default.nix
@@ -1,6 +1,7 @@
-{ lib, stdenv, llvm_meta, cmake, python3, src, libunwind, version
+{ lib, stdenv, llvm_meta, cmake, python3, src, cxx-headers, libunwind, version
 , enableShared ? !stdenv.hostPlatform.isStatic
-, libcxx
+, standalone ? stdenv.hostPlatform.useLLVM or false
+, withLibunwind ? !stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm
 }:
 
 stdenv.mkDerivation rec {
@@ -23,12 +24,13 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ cmake python3 ];
-  buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
+  buildInputs = lib.optional withLibunwind libunwind;
 
   cmakeFlags = [
-    "-DLIBCXXABI_LIBCXX_INCLUDES=${libcxx.dev}/include/c++/v1"
-  ] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [
+    "-DLIBCXXABI_LIBCXX_INCLUDES=${cxx-headers}/include/c++/v1"
+  ] ++ lib.optionals standalone [
     "-DLLVM_ENABLE_LIBCXX=ON"
+  ] ++ lib.optionals (standalone && withLibunwind) [
     "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
   ] ++ lib.optionals stdenv.hostPlatform.isWasm [
     "-DLIBCXXABI_ENABLE_THREADS=OFF"
diff --git a/pkgs/development/compilers/llvm/5/llvm/default.nix b/pkgs/development/compilers/llvm/5/llvm/default.nix
index 6388cd65fbf47..fa99e275a6231 100644
--- a/pkgs/development/compilers/llvm/5/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/5/llvm/default.nix
@@ -66,6 +66,14 @@ stdenv.mkDerivation ({
     #  stripLen = 1;
     #})
     ./gnu-install-dirs.patch
+
+    # 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;
+    })
   ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
 
   postPatch = optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/compilers/llvm/6/libcxx/default.nix b/pkgs/development/compilers/llvm/6/libcxx/default.nix
index 3e39dd840424d..7077081c59173 100644
--- a/pkgs/development/compilers/llvm/6/libcxx/default.nix
+++ b/pkgs/development/compilers/llvm/6/libcxx/default.nix
@@ -19,6 +19,12 @@ stdenv.mkDerivation {
     ../../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++"
   '';
diff --git a/pkgs/development/compilers/llvm/6/llvm/default.nix b/pkgs/development/compilers/llvm/6/llvm/default.nix
index 0907c89561717..5925fab104fa2 100644
--- a/pkgs/development/compilers/llvm/6/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/6/llvm/default.nix
@@ -64,6 +64,14 @@ stdenv.mkDerivation ({
       sha256 = "0fxgrxmfnjx17w3lcq19rk68b2xksh1bynz3ina784kma7hp4wdb";
     })
     ./gnu-install-dirs.patch
+
+    # 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;
+    })
   ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
 
   postPatch = optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/compilers/llvm/7/libcxx/default.nix b/pkgs/development/compilers/llvm/7/libcxx/default.nix
index ac10e8eb77e34..07d84432d4220 100644
--- a/pkgs/development/compilers/llvm/7/libcxx/default.nix
+++ b/pkgs/development/compilers/llvm/7/libcxx/default.nix
@@ -21,6 +21,12 @@ stdenv.mkDerivation {
     ../../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++"
   '';
diff --git a/pkgs/development/compilers/llvm/7/llvm/default.nix b/pkgs/development/compilers/llvm/7/llvm/default.nix
index 4a9b4f5182056..e4410bedf9170 100644
--- a/pkgs/development/compilers/llvm/7/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/7/llvm/default.nix
@@ -68,6 +68,14 @@ in stdenv.mkDerivation ({
       sha256 = "0k6k1p5yisgwx417a67s7sr9930rqh1n0zv5jvply8vjjy4b3kf8";
     })
     ./gnu-install-dirs.patch
+
+    # 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;
+    })
   ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
 
   postPatch = optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/compilers/llvm/8/libcxx/default.nix b/pkgs/development/compilers/llvm/8/libcxx/default.nix
index 804b9a53c24a1..87cd734899fa2 100644
--- a/pkgs/development/compilers/llvm/8/libcxx/default.nix
+++ b/pkgs/development/compilers/llvm/8/libcxx/default.nix
@@ -21,6 +21,12 @@ stdenv.mkDerivation {
     ../../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++"
   '';
diff --git a/pkgs/development/compilers/llvm/8/llvm/default.nix b/pkgs/development/compilers/llvm/8/llvm/default.nix
index 83b779b56d827..8bb2293f81899 100644
--- a/pkgs/development/compilers/llvm/8/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/8/llvm/default.nix
@@ -71,6 +71,14 @@ in stdenv.mkDerivation ({
       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;
+    })
   ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
 
   postPatch = optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/compilers/llvm/9/libcxx/default.nix b/pkgs/development/compilers/llvm/9/libcxx/default.nix
index b2022f23e511f..2719711031070 100644
--- a/pkgs/development/compilers/llvm/9/libcxx/default.nix
+++ b/pkgs/development/compilers/llvm/9/libcxx/default.nix
@@ -21,6 +21,12 @@ stdenv.mkDerivation {
     ../../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")
diff --git a/pkgs/development/compilers/llvm/9/llvm/default.nix b/pkgs/development/compilers/llvm/9/llvm/default.nix
index 570795824ee58..f8c474775e48c 100644
--- a/pkgs/development/compilers/llvm/9/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/9/llvm/default.nix
@@ -69,6 +69,14 @@ in stdenv.mkDerivation (rec {
       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;
+    })
   ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
 
   postPatch = optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/compilers/llvm/git/clang/default.nix b/pkgs/development/compilers/llvm/git/clang/default.nix
index 78c2831a2f35f..a775af3031b7f 100644
--- a/pkgs/development/compilers/llvm/git/clang/default.nix
+++ b/pkgs/development/compilers/llvm/git/clang/default.nix
@@ -44,6 +44,8 @@ let
     ];
 
     postPatch = ''
+      (cd tools && ln -s ../../clang-tools-extra extra)
+
       sed -i -e 's/DriverArgs.hasArg(options::OPT_nostdlibinc)/true/' \
              -e 's/Args.hasArg(options::OPT_nostdlibinc)/true/' \
              lib/Driver/ToolChains/*.cpp
diff --git a/pkgs/development/compilers/llvm/git/default.nix b/pkgs/development/compilers/llvm/git/default.nix
index fb2baf0e29a31..666e9be3cd89e 100644
--- a/pkgs/development/compilers/llvm/git/default.nix
+++ b/pkgs/development/compilers/llvm/git/default.nix
@@ -247,11 +247,18 @@ let
                else stdenv;
     };
 
-    libcxxabi = callPackage ./libcxxabi {
-      inherit llvm_meta;
-      stdenv = if stdenv.hostPlatform.useLLVM or false
+    libcxxabi = let
+      stdenv_ = if stdenv.hostPlatform.useLLVM or false
                then overrideCC stdenv buildLlvmTools.clangNoLibcxx
                else stdenv;
+      cxx-headers = callPackage ./libcxx {
+        inherit llvm_meta;
+        stdenv = stdenv_;
+        headersOnly = true;
+      };
+    in callPackage ./libcxxabi {
+      stdenv = stdenv_;
+      inherit llvm_meta cxx-headers;
     };
 
     libunwind = callPackage ./libunwind {
diff --git a/pkgs/development/compilers/llvm/git/libcxx/default.nix b/pkgs/development/compilers/llvm/git/libcxx/default.nix
index f511eba81dc50..bedfd5afee150 100644
--- a/pkgs/development/compilers/llvm/git/libcxx/default.nix
+++ b/pkgs/development/compilers/llvm/git/libcxx/default.nix
@@ -1,15 +1,23 @@
 { lib, stdenv, llvm_meta, src, cmake, python3, fixDarwinDylibNames, version
+, libcxxabi
 , enableShared ? !stdenv.hostPlatform.isStatic
+
+# If headersOnly is true, the resulting package would only include the headers.
+# Use this to break the circular dependency between libcxx and libcxxabi.
+#
+# Some context:
+# https://reviews.llvm.org/rG1687f2bbe2e2aaa092f942d4a97d41fad43eedfb
+, headersOnly ? false
 }:
 
 stdenv.mkDerivation rec {
-  pname = "libcxx";
+  pname = if headersOnly then "cxx-headers" else "libcxx";
   inherit version;
 
   inherit src;
-  sourceRoot = "source/${pname}";
+  sourceRoot = "source/libcxx";
 
-  outputs = [ "out" "dev" ];
+  outputs = [ "out" ] ++ lib.optional (!headersOnly) "dev";
 
   patches = [
     ./gnu-install-dirs.patch
@@ -17,6 +25,12 @@ stdenv.mkDerivation rec {
     ../../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 = lib.optionalString stdenv.hostPlatform.isMusl ''
     patchShebangs utils/cat_files.py
   '';
@@ -24,15 +38,29 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake python3 ]
     ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
 
-  cmakeFlags = [
-  ] ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
+  buildInputs = lib.optionals (!headersOnly) [ libcxxabi ];
+
+  cmakeFlags = [ "-DLIBCXX_CXX_ABI=libcxxabi" ]
+    ++ lib.optional (stdenv.hostPlatform.isMusl || stdenv.hostPlatform.isWasi) "-DLIBCXX_HAS_MUSL_LIBC=1"
     ++ lib.optional (stdenv.hostPlatform.useLLVM or false) "-DLIBCXX_USE_COMPILER_RT=ON"
-    ++ lib.optional stdenv.hostPlatform.isWasm [
+    ++ lib.optionals stdenv.hostPlatform.isWasm [
       "-DLIBCXX_ENABLE_THREADS=OFF"
       "-DLIBCXX_ENABLE_FILESYSTEM=OFF"
       "-DLIBCXX_ENABLE_EXCEPTIONS=OFF"
     ] ++ lib.optional (!enableShared) "-DLIBCXX_ENABLE_SHARED=OFF";
 
+  buildFlags = lib.optional headersOnly "generate-cxx-headers";
+  installTargets = lib.optional headersOnly "install-cxx-headers";
+
+  # At this point, cxxabi headers would be installed in the dev output, which
+  # prevents moveToOutput from doing its job later in the build process.
+  postInstall = lib.optionalString (!headersOnly) ''
+    mv "$dev/include/c++/v1/"* "$out/include/c++/v1/"
+    pushd "$dev"
+    rmdir -p include/c++/v1
+    popd
+  '';
+
   passthru = {
     isLLVM = true;
   };
diff --git a/pkgs/development/compilers/llvm/git/libcxxabi/default.nix b/pkgs/development/compilers/llvm/git/libcxxabi/default.nix
index 6267678c46d55..9f14f87a7a024 100644
--- a/pkgs/development/compilers/llvm/git/libcxxabi/default.nix
+++ b/pkgs/development/compilers/llvm/git/libcxxabi/default.nix
@@ -1,6 +1,5 @@
-{ lib, stdenv, llvm_meta, cmake, python3, src, libunwind, version
+{ lib, stdenv, llvm_meta, cmake, python3, src, cxx-headers, libunwind, version
 , enableShared ? !stdenv.hostPlatform.isStatic
-, libcxx
 }:
 
 stdenv.mkDerivation rec {
@@ -26,7 +25,7 @@ stdenv.mkDerivation rec {
   buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
 
   cmakeFlags = [
-    "-DLIBCXXABI_LIBCXX_INCLUDES=${libcxx.dev}/include/c++/v1"
+    "-DLIBCXXABI_LIBCXX_INCLUDES=${cxx-headers}/include/c++/v1"
   ] ++ lib.optionals (stdenv.hostPlatform.useLLVM or false) [
     "-DLLVM_ENABLE_LIBCXX=ON"
     "-DLIBCXXABI_USE_LLVM_UNWINDER=ON"
diff --git a/pkgs/development/compilers/llvm/rocm/compiler-rt/68d5235cb58f988c71b403334cd9482d663841ab.patch b/pkgs/development/compilers/llvm/rocm/compiler-rt/68d5235cb58f988c71b403334cd9482d663841ab.patch
new file mode 100644
index 0000000000000..43803164a00f9
--- /dev/null
+++ b/pkgs/development/compilers/llvm/rocm/compiler-rt/68d5235cb58f988c71b403334cd9482d663841ab.patch
@@ -0,0 +1,78 @@
+--- a/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
++++ b/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc
+@@ -370,15 +370,6 @@
+ 
+ #if SANITIZER_GLIBC
+   // _(SIOCDEVPLIP, WRITE, struct_ifreq_sz); // the same as EQL_ENSLAVE
+-  _(CYGETDEFTHRESH, WRITE, sizeof(int));
+-  _(CYGETDEFTIMEOUT, WRITE, sizeof(int));
+-  _(CYGETMON, WRITE, struct_cyclades_monitor_sz);
+-  _(CYGETTHRESH, WRITE, sizeof(int));
+-  _(CYGETTIMEOUT, WRITE, sizeof(int));
+-  _(CYSETDEFTHRESH, NONE, 0);
+-  _(CYSETDEFTIMEOUT, NONE, 0);
+-  _(CYSETTHRESH, NONE, 0);
+-  _(CYSETTIMEOUT, NONE, 0);
+   _(EQL_EMANCIPATE, WRITE, struct_ifreq_sz);
+   _(EQL_ENSLAVE, WRITE, struct_ifreq_sz);
+   _(EQL_GETMASTRCFG, WRITE, struct_ifreq_sz);
+--- a/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
++++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
+@@ -143,7 +143,6 @@
+ # include <sys/procfs.h>
+ #endif
+ #include <sys/user.h>
+-#include <linux/cyclades.h>
+ #include <linux/if_eql.h>
+ #include <linux/if_plip.h>
+ #include <linux/lp.h>
+@@ -460,7 +459,6 @@
+ 
+ #if SANITIZER_GLIBC
+   unsigned struct_ax25_parms_struct_sz = sizeof(struct ax25_parms_struct);
+-  unsigned struct_cyclades_monitor_sz = sizeof(struct cyclades_monitor);
+ #if EV_VERSION > (0x010000)
+   unsigned struct_input_keymap_entry_sz = sizeof(struct input_keymap_entry);
+ #else
+@@ -824,15 +822,6 @@
+ #endif // SANITIZER_LINUX
+ 
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+-  unsigned IOCTL_CYGETDEFTHRESH = CYGETDEFTHRESH;
+-  unsigned IOCTL_CYGETDEFTIMEOUT = CYGETDEFTIMEOUT;
+-  unsigned IOCTL_CYGETMON = CYGETMON;
+-  unsigned IOCTL_CYGETTHRESH = CYGETTHRESH;
+-  unsigned IOCTL_CYGETTIMEOUT = CYGETTIMEOUT;
+-  unsigned IOCTL_CYSETDEFTHRESH = CYSETDEFTHRESH;
+-  unsigned IOCTL_CYSETDEFTIMEOUT = CYSETDEFTIMEOUT;
+-  unsigned IOCTL_CYSETTHRESH = CYSETTHRESH;
+-  unsigned IOCTL_CYSETTIMEOUT = CYSETTIMEOUT;
+   unsigned IOCTL_EQL_EMANCIPATE = EQL_EMANCIPATE;
+   unsigned IOCTL_EQL_ENSLAVE = EQL_ENSLAVE;
+   unsigned IOCTL_EQL_GETMASTRCFG = EQL_GETMASTRCFG;
+--- a/lib/sanitizer_common/sanitizer_platform_limits_posix.h
++++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+@@ -983,7 +983,6 @@
+ 
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+ extern unsigned struct_ax25_parms_struct_sz;
+-extern unsigned struct_cyclades_monitor_sz;
+ extern unsigned struct_input_keymap_entry_sz;
+ extern unsigned struct_ipx_config_data_sz;
+ extern unsigned struct_kbdiacrs_sz;
+@@ -1328,15 +1327,6 @@
+ #endif  // SANITIZER_LINUX
+ 
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+-extern unsigned IOCTL_CYGETDEFTHRESH;
+-extern unsigned IOCTL_CYGETDEFTIMEOUT;
+-extern unsigned IOCTL_CYGETMON;
+-extern unsigned IOCTL_CYGETTHRESH;
+-extern unsigned IOCTL_CYGETTIMEOUT;
+-extern unsigned IOCTL_CYSETDEFTHRESH;
+-extern unsigned IOCTL_CYSETDEFTIMEOUT;
+-extern unsigned IOCTL_CYSETTHRESH;
+-extern unsigned IOCTL_CYSETTIMEOUT;
+ extern unsigned IOCTL_EQL_EMANCIPATE;
+ extern unsigned IOCTL_EQL_ENSLAVE;
+ extern unsigned IOCTL_EQL_GETMASTRCFG;
diff --git a/pkgs/development/compilers/llvm/rocm/compiler-rt/default.nix b/pkgs/development/compilers/llvm/rocm/compiler-rt/default.nix
index 6ea4fb281f8f2..575082905fed4 100644
--- a/pkgs/development/compilers/llvm/rocm/compiler-rt/default.nix
+++ b/pkgs/development/compilers/llvm/rocm/compiler-rt/default.nix
@@ -31,12 +31,8 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./compiler-rt-codesign.patch # Revert compiler-rt commit that makes codesign mandatory
-    (fetchpatch {
-      name = "libsanitizer-no-cyclades-rocm.patch";
-      url = "https://gist.github.com/lovesegfault/b255dcf2fa4e202411a6a04b61e6cc04/raw";
-      sha256 = "sha256-PMMSLr2zHuNDn1OWqumqHwB74ktJSHxhJWkqEKB7Z64=";
-      stripLen = 1;
-     })
+    # https://github.com/llvm/llvm-project/commit/68d5235cb58f988c71b403334cd9482d663841ab.diff but the compiler-rt part of the path is stripped
+    ./68d5235cb58f988c71b403334cd9482d663841ab.patch
     ];
 
 
diff --git a/pkgs/development/compilers/llvm/rocm/default.nix b/pkgs/development/compilers/llvm/rocm/default.nix
index 3497f910d6dc3..b1297d7d0d1f6 100644
--- a/pkgs/development/compilers/llvm/rocm/default.nix
+++ b/pkgs/development/compilers/llvm/rocm/default.nix
@@ -1,12 +1,12 @@
 { stdenv, lib, buildPackages, fetchFromGitHub, callPackage, wrapCCWith, overrideCC }:
 
 let
-  version = "4.3.1";
+  version = "4.5.2";
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "llvm-project";
     rev = "rocm-${version}";
-    hash = "sha256-7XVtHcrTpw+NYUvuKQFWWFE0FlOTt8EnfZpvepQqE1c=";
+    hash = "sha256-XWh81+2yyXQEPO+5SgxHh66fzFG1bVbvnjPfvXDC+fU=";
   };
 in rec {
   clang = wrapCCWith rec {
diff --git a/pkgs/development/compilers/llvm/rocm/llvm/default.nix b/pkgs/development/compilers/llvm/rocm/llvm/default.nix
index 06dfd1870b078..724fd6b63f760 100644
--- a/pkgs/development/compilers/llvm/rocm/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/rocm/llvm/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , writeScript
 , cmake
+, ninja
 , python3
 , libxml2
 , libffi
@@ -30,7 +31,7 @@ in stdenv.mkDerivation rec {
   outputs = [ "out" "python" ]
     ++ lib.optional enableSharedLibraries "lib";
 
-  nativeBuildInputs = [ cmake python3 ];
+  nativeBuildInputs = [ cmake ninja python3 ];
 
   buildInputs = [ libxml2 libffi ];
 
diff --git a/pkgs/development/compilers/microscheme/default.nix b/pkgs/development/compilers/microscheme/default.nix
index 1f3a98de821eb..fa65622ba0cdf 100644
--- a/pkgs/development/compilers/microscheme/default.nix
+++ b/pkgs/development/compilers/microscheme/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = with lib; {
-    homepage = "http://microscheme.org";
+    homepage = "https://ryansuchocki.github.io/microscheme/";
     description = "A Scheme subset for Atmel microcontrollers";
     longDescription = ''
       Microscheme is a Scheme subset/variant designed for Atmel
diff --git a/pkgs/development/compilers/mint/default.nix b/pkgs/development/compilers/mint/default.nix
index a226c7edba45b..afa592ebaf45f 100644
--- a/pkgs/development/compilers/mint/default.nix
+++ b/pkgs/development/compilers/mint/default.nix
@@ -1,14 +1,14 @@
 { lib, fetchFromGitHub, crystal, openssl }:
 
 crystal.buildCrystalPackage rec {
-  version = "0.14.0";
+  version = "0.15.1";
   pname = "mint";
 
   src = fetchFromGitHub {
     owner = "mint-lang";
     repo = "mint";
     rev = version;
-    sha256 = "1mf9d0jpdb21hkzaqvwyx2171dv3hr50zhl07p85wpf0d3n5wml8";
+    sha256 = "sha256-naiZ51B5TBc88wH4Y7WcrkdFnZosEVCS5MlLAGVe8/E=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/compilers/mozart/default.nix b/pkgs/development/compilers/mozart/default.nix
index d9ab475880e0b..4c066de860a53 100644
--- a/pkgs/development/compilers/mozart/default.nix
+++ b/pkgs/development/compilers/mozart/default.nix
@@ -4,7 +4,8 @@
 , cmake
 , unzip
 , makeWrapper
-, boost
+, boost169
+, pinnedBoost ? boost169
 , llvmPackages
 , llvmPackages_5
 , gmp
@@ -67,7 +68,7 @@ in stdenv.mkDerivation rec {
   '';
 
   buildInputs = [
-    boost
+    pinnedBoost
     llvmPackages_5.llvm
     llvmPackages_5.clang
     llvmPackages_5.clang-unwrapped
diff --git a/pkgs/development/compilers/nextpnr/default.nix b/pkgs/development/compilers/nextpnr/default.nix
index 07d301187a8e2..16f0a8348d1c5 100644
--- a/pkgs/development/compilers/nextpnr/default.nix
+++ b/pkgs/development/compilers/nextpnr/default.nix
@@ -14,15 +14,15 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "nextpnr";
-  version = "2021.09.27";
+  version = "2021.15.21";
 
   srcs = [
     (fetchFromGitHub {
-      owner  = "YosysHQ";
-      repo   = "nextpnr";
-      rev    = "9d8d3bdbc48133ff7758c9c5293e5904bc6e5ba7";
-      sha256 = "sha256-5Axo8qX2+ATqQ170QqfhRwYfCRQLCKBW1kc89x9XljE=";
-      name   = "nextpnr";
+      owner = "YosysHQ";
+      repo  = "nextpnr";
+      rev   = "d04cfd5f0f6da184f5b8a03f0ce18fbd1d98eca3";
+      hash  = "sha256-gm/+kwIZ/m10+KuCJoK45F56nKZD3tM0myHwbFKIKAs=";
+      name  = "nextpnr";
     })
     (fetchFromGitHub {
       owner  = "YosysHQ";
diff --git a/pkgs/development/compilers/nim/default.nix b/pkgs/development/compilers/nim/default.nix
index c4be7c27d85c1..06b19b547b678 100644
--- a/pkgs/development/compilers/nim/default.nix
+++ b/pkgs/development/compilers/nim/default.nix
@@ -98,12 +98,12 @@ in {
 
   nim-unwrapped = stdenv.mkDerivation rec {
     pname = "nim-unwrapped";
-    version = "1.6.0";
+    version = "1.6.2";
     strictDeps = true;
 
     src = fetchurl {
       url = "https://nim-lang.org/download/nim-${version}.tar.xz";
-      hash = "sha256-UgZdSNcqcnAuwa/l96mDHhFnNTHiec3/nK7AGgfuxj0=";
+      hash = "sha256-msRxT6bDFdaR2n9diUHBsZDU1Dc5fZdC4yfC1RiT43M=";
     };
 
     buildInputs = [ boehmgc openssl pcre readline sqlite ];
diff --git a/pkgs/development/compilers/ocaml/ber-metaocaml.nix b/pkgs/development/compilers/ocaml/ber-metaocaml.nix
index 895706312c140..92fcb7c04c76d 100644
--- a/pkgs/development/compilers/ocaml/ber-metaocaml.nix
+++ b/pkgs/development/compilers/ocaml/ber-metaocaml.nix
@@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description     = "Multi-Stage Programming extension for OCaml";
-    homepage        = "http://okmij.org/ftp/ML/MetaOCaml.html";
+    homepage        = "https://okmij.org/ftp/ML/MetaOCaml.html";
     license         = with licenses; [ /* compiler */ qpl /* library */ lgpl2 ];
     maintainers     = with maintainers; [ thoughtpolice ];
 
diff --git a/pkgs/development/compilers/ocaml/generic.nix b/pkgs/development/compilers/ocaml/generic.nix
index 1b6a3b56e6226..ec52e56c1faa2 100644
--- a/pkgs/development/compilers/ocaml/generic.nix
+++ b/pkgs/development/compilers/ocaml/generic.nix
@@ -64,9 +64,15 @@ stdenv.mkDerivation (args // {
     "-target ${stdenv.targetPlatform.config}"
   ];
   dontAddStaticConfigureFlags = lib.versionOlder version "4.08";
-  configurePlatforms = lib.optionals (lib.versionAtLeast version "4.08") [ "host" "target" ];
+
+  # on aarch64-darwin using --host and --target causes the build to invoke
+  # `aarch64-apple-darwin-clang` while using assembler. However, such binary
+  # does not exist. So, disable these configure flags on `aarch64-darwin`.
+  # See #144785 for details.
+  configurePlatforms = lib.optionals (lib.versionAtLeast version "4.08" && !(stdenv.isDarwin && stdenv.isAarch64)) [ "host" "target" ];
   # x86_64-unknown-linux-musl-ld: -r and -pie may not be used together
-  hardeningDisable = lib.optional (lib.versionAtLeast version "4.09" && stdenv.hostPlatform.isMusl) "pie";
+  hardeningDisable = lib.optional (lib.versionAtLeast version "4.09" && stdenv.hostPlatform.isMusl) "pie"
+    ++ lib.optionals (args ? hardeningDisable) args.hardeningDisable;
 
   buildFlags = [ "world" ] ++ optionals useNativeCompilers [ "bootstrap" "world.opt" ];
   buildInputs = optional (!lib.versionAtLeast version "4.07") ncurses
diff --git a/pkgs/development/compilers/open-watcom-bin/default.nix b/pkgs/development/compilers/open-watcom/bin.nix
index 9a1066dd3c251..81d321c046206 100644
--- a/pkgs/development/compilers/open-watcom-bin/default.nix
+++ b/pkgs/development/compilers/open-watcom/bin.nix
@@ -87,6 +87,7 @@ in
 stdenvNoCC.mkDerivation rec {
   pname = "open-watcom-bin";
   version = "1.9";
+  name = "${pname}-unwrapped-${version}";
 
   src = fetchurl {
     url = "http://ftp.openwatcom.org/install/open-watcom-c-linux-${version}";
diff --git a/pkgs/development/compilers/open-watcom/v2.nix b/pkgs/development/compilers/open-watcom/v2.nix
new file mode 100644
index 0000000000000..6cb5c6dcc1058
--- /dev/null
+++ b/pkgs/development/compilers/open-watcom/v2.nix
@@ -0,0 +1,124 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, unstableGitUpdater
+
+# Docs cause an immense increase in build time, up to 2 additional hours
+, withDocs ? false
+, dosbox
+, ghostscript
+, withGUI ? false
+}:
+
+stdenv.mkDerivation rec {
+  pname = "open-watcom-v2";
+  version = "unstable-2021-12-10";
+  name = "${pname}-unwrapped-${version}";
+
+  src = fetchFromGitHub {
+    owner = "open-watcom";
+    repo = "open-watcom-v2";
+    rev = "ca685c1b780149f7210426f0bb78dd7b67b19e6d";
+    sha256 = "1nmmj94z5hips2426rcdqdcsm8015jjj51rm9fnx81qagdj52j5d";
+  };
+
+  postPatch = ''
+    patchShebangs *.sh
+
+    for dateSource in cmnvars.sh bld/wipfc/configure; do
+      substituteInPlace $dateSource \
+        --replace '`date ' '`date -ud "@$SOURCE_DATE_EPOCH" '
+    done
+
+    substituteInPlace bld/watcom/h/banner.h \
+      --replace '__DATE__' "\"$(date -ud "@$SOURCE_DATE_EPOCH" +'%b %d %Y')\"" \
+      --replace '__TIME__' "\"$(date -ud "@$SOURCE_DATE_EPOCH" +'%T')\""
+
+    substituteInPlace build/makeinit \
+      --replace '%__CYEAR__' '%OWCYEAR'
+  '' + lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
+    substituteInPlace build/mif/local.mif \
+      --replace '-static' ""
+  '';
+
+  nativeBuildInputs = [ ]
+    ++ lib.optional (withDocs || withGUI) dosbox
+    ++ lib.optional withDocs ghostscript;
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export OWROOT=$(realpath $PWD)
+    export OWTOOLS=${if stdenv.cc.isClang then "CLANG" else "GCC"}
+    export OWDOCBUILD=${if withDocs then "1" else "0"}
+    export OWGHOSTSCRIPTPATH=${lib.optionalString withDocs "${ghostscript}/bin"}
+    export OWGUINOBUILD=${if withGUI then "0" else "1"}
+    export OWNOBUILD=
+    export OWDISTRBUILD=0
+    export OWDOSBOX=${lib.optionalString (withDocs || withGUI) "${dosbox}/bin/dosbox"}
+    export OWVERBOSE=0
+    export OWRELROOT=$out
+
+    source cmnvars.sh
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+
+    ./build.sh build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    ./build.sh cprel
+
+    runHook postInstall
+  '';
+
+  # Stripping breaks many tools
+  dontStrip = true;
+
+  passthru.updateScript = unstableGitUpdater {
+    url = "https://github.com/open-watcom/open-watcom-v2.git";
+  };
+
+  meta = with lib; {
+    description = "The v2 fork of the Open Watcom suite of compilers and tools";
+    longDescription = ''
+      A fork of Open Watcom: A C/C++/Fortran compiler and assembler suite
+      targeting a multitude of architectures (x86, IA-32, Alpha AXP, MIPS,
+      PowerPC) and operating systems (DOS, OS/2, Windows, Linux).
+
+      Main differences from Open Watcom 1.9:
+
+      - New two-phase build system - Open Watcom can be built by the host's
+        native C/C++ compiler or by itself
+      - Code generator properly initializes pointers by DLL symbol addresses
+      - DOS tools now support long file names (LFN) if appropriate LFN driver
+        is loaded by DOS
+      - Open Watcom is ported to 64-bit hosts (Win64, Linux x64)
+      - Librarian supports x64 CPU object modules and libraries
+      - RDOS 32-bit C run-time compact memory model libraries are fixed
+      - Resource compiler and Resource editors support Win64 executables
+      - Open Watcom text editor is now self-contained, it can be used as
+        standalone tool without any requirements for any additional files or
+        configuration
+      - Broken C++ compiler pre-compiled header template support is fixed
+      - Many C++ compiler crashes are fixed
+      - Debugger has no length limit for any used environment variable
+    '' + lib.optionalString (!withDocs) ''
+
+      The documentation has been excluded from this build for build time reasons. It can be found here:
+      https://github.com/open-watcom/open-watcom-v2/wiki/Open-Watcom-Documentation
+    '';
+    homepage = "https://open-watcom.github.io";
+    license = licenses.watcom;
+    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "x86_64-windows" "i686-windows" ];
+    maintainers = with maintainers; [ OPNA2608 ];
+  };
+}
diff --git a/pkgs/development/compilers/open-watcom/wrapper.nix b/pkgs/development/compilers/open-watcom/wrapper.nix
new file mode 100644
index 0000000000000..94cca7ab34ce7
--- /dev/null
+++ b/pkgs/development/compilers/open-watcom/wrapper.nix
@@ -0,0 +1,130 @@
+# Arguments that this derivation gets when it is created with `callPackage`
+{ stdenv
+, lib
+, symlinkJoin
+, makeWrapper
+, runCommand
+, file
+}:
+
+open-watcom:
+
+let
+  wrapper =
+    {}:
+    let
+      binDirs = with stdenv.hostPlatform; if isWindows then [
+        (lib.optionalString is64bit "binnt64")
+        "binnt"
+        (lib.optionalString is32bit "binw")
+      ] else if (isDarwin && is64bit) then [
+        "osx64"
+      ] else [
+        (lib.optionalString is64bit "binl64")
+        "binl"
+      ];
+      includeDirs = with stdenv.hostPlatform; [
+        "h"
+      ]
+      ++ lib.optional isWindows "h/nt"
+      ++ lib.optional isLinux "lh";
+      listToDirs = list: lib.strings.concatMapStringsSep ":" (dir: "${placeholder "out"}/${dir}") list;
+      name = "${open-watcom.pname}-${open-watcom.version}";
+    in
+    symlinkJoin {
+      inherit name;
+
+      paths = [ open-watcom ];
+
+      buildInputs = [ makeWrapper ];
+
+      postBuild = ''
+        mkdir $out/bin
+
+        for binDir in ${lib.strings.concatStringsSep " " binDirs}; do
+          for exe in $(find ${open-watcom}/$binDir \
+          -type f -executable \
+          ${lib.optionalString stdenv.hostPlatform.isLinux "-not -iname '*.so' -not -iname '*.exe'"} \
+          ); do
+            if [ ! -f $out/bin/$(basename $exe) ]; then
+              makeWrapper $exe $out/bin/$(basename $exe) \
+                --set WATCOM ${open-watcom} \
+                --prefix PATH : ${listToDirs binDirs} \
+                --set EDPATH ${open-watcom}/eddat \
+                --set INCLUDE ${listToDirs includeDirs}
+            fi
+          done
+        done
+      '';
+
+      passthru = {
+        unwrapped = open-watcom;
+        tests = let
+          wrapped = wrapper { };
+        in {
+          simple = runCommand "${name}-test-simple" { nativeBuildInputs = [ wrapped ]; } ''
+            cat <<EOF >test.c
+            #include <stdio.h>
+            int main() {
+              printf ("Testing OpenWatcom C89 compiler.\n");
+              return 0;
+            }
+            EOF
+            cat test.c
+            # Darwin target not supported, only host
+            wcl386 -fe=test_c test.c
+            ${lib.optionalString (!stdenv.hostPlatform.isDarwin) "./test_c"}
+
+            cat <<EOF >test.cpp
+            #include <string>
+            #include <iostream>
+            int main() {
+              std::cout << "Testing OpenWatcom C++ library implementation." << std::endl;
+              watcom::istring HELLO ("HELLO");
+              if (HELLO != "hello") {
+                return 1;
+              }
+              if (HELLO.find ("ello") != 1) {
+                return 2;
+              }
+              return 0;
+            }
+            EOF
+            cat test.cpp
+            # Darwin target not supported, only host
+            wcl386 -fe=test_cpp test.cpp
+            ${lib.optionalString (!stdenv.hostPlatform.isDarwin) "./test_cpp"}
+            touch $out
+          '';
+          cross = runCommand "${name}-test-cross" { nativeBuildInputs = [ wrapped file ]; } ''
+            cat <<EOF >test.c
+            #include <stdio.h>
+            int main() {
+              printf ("Testing OpenWatcom cross-compilation.\n");
+              return 0;
+            }
+            EOF
+            cat test.c
+
+            echo "Test compiling"
+            wcl386 -bcl=linux -fe=linux test.c
+            wcl386 -bcl=nt -fe=nt test.c
+            wcl386 -bcl=dos4g -fe=dos4g test.c
+            wcl -bcl=windows -fe=windows test.c
+            wcl -bcl=dos -fe=dos test.c
+
+            echo "Test file format"
+            file ./linux | grep "32-bit" | grep "Linux"
+            file ./nt.exe | grep "PE32" | grep "Windows"
+            file ./dos4g.exe | grep "MS-DOS" | grep "LE executable"
+            file ./windows.exe | grep "MS-DOS" | grep "Windows 3.x"
+            file ./dos.exe | grep "MS-DOS" | grep -v "LE" | grep -v "Windows 3.x"
+            touch $out
+          '';
+        };
+      };
+
+      inherit (open-watcom) meta;
+    };
+in
+lib.makeOverridable wrapper
diff --git a/pkgs/development/compilers/opendylan/bin.nix b/pkgs/development/compilers/opendylan/bin.nix
index 9687f1b1a662f..f105707f93363 100644
--- a/pkgs/development/compilers/opendylan/bin.nix
+++ b/pkgs/development/compilers/opendylan/bin.nix
@@ -2,15 +2,16 @@
 # The binaries can also be used as is.
 {lib, stdenv, fetchurl, patchelf, boehmgc, gnused, gcc, makeWrapper}:
 
-stdenv.mkDerivation {
-  name = "opendylan-2013.2";
+stdenv.mkDerivation rec {
+  pname = "opendylan";
+  version = "2013.2";
 
   src = if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl {
-      url = "https://opendylan.org/downloads/opendylan/2013.2/opendylan-2013.2-x86_64-linux.tar.bz2";
+      url = "https://opendylan.org/downloads/opendylan/${version}/opendylan-${version}-x86_64-linux.tar.bz2";
       sha256 = "035brbw3hm7zrs593q4zc42yglj1gmmkw3b1r7zzlw3ks4i2lg7h";
     }
     else if stdenv.hostPlatform.system == "i686-linux" then fetchurl {
-      url = "https://opendylan.org/downloads/opendylan/2013.2/opendylan-2013.2-x86-linux.tar.bz2";
+      url = "https://opendylan.org/downloads/opendylan/${version}/opendylan-${version}-x86-linux.tar.bz2";
       sha256 = "0c61ihvblcsjrw6ncr8x8ylhskcrqs8pajs4mg5di36cvqw12nq5";
     }
     else throw "platform ${stdenv.hostPlatform.system} not supported.";
diff --git a/pkgs/development/compilers/openjdk/darwin/11.nix b/pkgs/development/compilers/openjdk/darwin/11.nix
index 0b158a1693217..d8c1bb6bf254d 100644
--- a/pkgs/development/compilers/openjdk/darwin/11.nix
+++ b/pkgs/development/compilers/openjdk/darwin/11.nix
@@ -1,4 +1,10 @@
-{ lib, stdenv, fetchurl, unzip, setJavaClassPath }:
+{ lib
+, stdenv
+, fetchurl
+, unzip
+, setJavaClassPath
+, enableJavaFX ? false
+}:
 let
   # Details from https://www.azul.com/downloads/?version=java-11-lts&os=macos&package=jdk
   # Note that the latest build may differ by platform
@@ -7,29 +13,34 @@ let
       arch = "x64";
       zuluVersion = "11.48.21";
       jdkVersion = "11.0.11";
-      sha256 = "0v0n7h7i04pvna41wpdq2k9qiy70sbbqzqzvazfdvgm3gb22asw6";
+      sha256 =
+        if enableJavaFX then "18bd9cd66d6abc6f8c627bc70278dc8fd4860e138e1dc9e170eddb89727ccc7b"
+        else "0v0n7h7i04pvna41wpdq2k9qiy70sbbqzqzvazfdvgm3gb22asw6";
     };
 
     aarch64-darwin = {
       arch = "aarch64";
       zuluVersion = "11.48.21";
       jdkVersion = "11.0.11";
-      sha256 = "066whglrxx81c95grv2kxdbvyh32728ixhml2v44ildh549n4lhc";
+      sha256 =
+        if enableJavaFX then "ef0de2705c6c2d586812f7f3736b70e22b069545b38034816016f9f264ad43f9"
+        else "066whglrxx81c95grv2kxdbvyh32728ixhml2v44ildh549n4lhc";
     };
   }."${stdenv.hostPlatform.system}";
 
   jce-policies = fetchurl {
-    # Ugh, unversioned URLs... I hope this doesn't change often enough to cause pain before we move to a Darwin source build of OpenJDK!
-    url    = "http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
+    url = "https://web.archive.org/web/20211126120343/http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
     sha256 = "0nk7m0lgcbsvldq2wbfni2pzq8h818523z912i7v8hdcij5s48c0";
   };
 
+  javaPackage = if enableJavaFX then "ca-fx-jdk" else "ca-jdk";
+
   jdk = stdenv.mkDerivation rec {
-    pname = "zulu${dist.zuluVersion}-ca-jdk";
+    pname = "zulu${dist.zuluVersion}-${javaPackage}";
     version = dist.jdkVersion;
 
     src = fetchurl {
-      url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-ca-jdk${dist.jdkVersion}-macosx_${dist.arch}.tar.gz";
+      url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-${javaPackage}${dist.jdkVersion}-macosx_${dist.arch}.tar.gz";
       inherit (dist) sha256;
       curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
     };
@@ -77,4 +88,5 @@ let
 
     meta = import ./meta.nix lib;
   };
-in jdk
+in
+jdk
diff --git a/pkgs/development/compilers/openjdk/darwin/16.nix b/pkgs/development/compilers/openjdk/darwin/16.nix
new file mode 100644
index 0000000000000..d491d75322f44
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/darwin/16.nix
@@ -0,0 +1,92 @@
+{ lib
+, stdenv
+, fetchurl
+, unzip
+, setJavaClassPath
+, enableJavaFX ? false
+}:
+let
+  # Details from https://www.azul.com/downloads/?version=java-16-sts&os=macos&package=jdk
+  # Note that the latest build may differ by platform
+  dist = {
+    x86_64-darwin = {
+      arch = "x64";
+      zuluVersion = "16.30.15";
+      jdkVersion = "16.0.1";
+      sha256 =
+        if enableJavaFX then "cbb3b96d80a0675893f21dc51ba3f532049c501bd7dc4c8d1ee930e63032c745"
+        else "1jihn125dmxr9y5h9jq89zywm3z6rbwv5q7msfzsf2wzrr13jh0z";
+    };
+
+    aarch64-darwin = {
+      arch = "aarch64";
+      zuluVersion = "16.30.19";
+      jdkVersion = "16.0.1";
+      sha256 =
+        if enableJavaFX then "a49b23abfd83784d2ac935fc24e25ab7cb09b8ffc8e47c32ed446e05b8a21396"
+        else "1i0bcjx3acb5dhslf6cabdcnd6mrz9728vxw9hb4al5y3f5fll4w";
+    };
+  }."${stdenv.hostPlatform.system}";
+
+  jce-policies = fetchurl {
+    url = "https://web.archive.org/web/20211126120343/http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
+    sha256 = "0nk7m0lgcbsvldq2wbfni2pzq8h818523z912i7v8hdcij5s48c0";
+  };
+
+  javaPackage = if enableJavaFX then "ca-fx-jdk" else "ca-jdk";
+
+  jdk = stdenv.mkDerivation rec {
+    pname = "zulu${dist.zuluVersion}-${javaPackage}";
+    version = dist.jdkVersion;
+
+    src = fetchurl {
+      url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-${javaPackage}${dist.jdkVersion}-macosx_${dist.arch}.tar.gz";
+      inherit (dist) sha256;
+      curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
+    };
+
+    nativeBuildInputs = [ unzip ];
+
+    installPhase = ''
+      mkdir -p $out
+      mv * $out
+
+      unzip ${jce-policies}
+      mv -f ZuluJCEPolicies/*.jar $out/lib/security/
+
+      # jni.h expects jni_md.h to be in the header search path.
+      ln -s $out/include/darwin/*_md.h $out/include/
+
+      if [ -f $out/LICENSE ]; then
+        install -D $out/LICENSE $out/share/zulu/LICENSE
+        rm $out/LICENSE
+      fi
+    '';
+
+    preFixup = ''
+      # Propagate the setJavaClassPath setup hook from the JDK so that
+      # any package that depends on the JDK has $CLASSPATH set up
+      # properly.
+      mkdir -p $out/nix-support
+      printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
+
+      # Set JAVA_HOME automatically.
+      cat <<EOF >> $out/nix-support/setup-hook
+      if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
+      EOF
+    '';
+
+    # fixupPhase is moving the man to share/man which breaks it because it's a
+    # relative symlink.
+    postFixup = ''
+      ln -nsf ../zulu-${lib.versions.major version}.jdk/Contents/Home/man $out/share/man
+    '';
+
+    passthru = {
+      home = jdk;
+    };
+
+    meta = import ./meta.nix lib;
+  };
+in
+jdk
diff --git a/pkgs/development/compilers/openjdk/darwin/default.nix b/pkgs/development/compilers/openjdk/darwin/17.nix
index 1d6776303bf0d..98e6fc6216e23 100644
--- a/pkgs/development/compilers/openjdk/darwin/default.nix
+++ b/pkgs/development/compilers/openjdk/darwin/17.nix
@@ -1,26 +1,26 @@
 { lib, stdenv, fetchurl, unzip, setJavaClassPath }:
 let
-  # Details from https://www.azul.com/downloads/?version=java-16-sts&os=macos&package=jdk
+  # Details from https://www.azul.com/downloads/?version=java-17-lts&os=macos&package=jdk
   # Note that the latest build may differ by platform
   dist = {
     x86_64-darwin = {
       arch = "x64";
-      zuluVersion = "16.30.15";
-      jdkVersion = "16.0.1";
-      sha256 = "1jihn125dmxr9y5h9jq89zywm3z6rbwv5q7msfzsf2wzrr13jh0z";
+      zuluVersion = "17.30.15";
+      jdkVersion = "17.0.1";
+      sha256 = "sha256-CdZP5XY3O0MUQigRvIQC+7dwAXaCKw4eK/L/imytEOs=";
     };
 
     aarch64-darwin = {
       arch = "aarch64";
-      zuluVersion = "16.30.19";
-      jdkVersion = "16.0.1";
-      sha256 = "1i0bcjx3acb5dhslf6cabdcnd6mrz9728vxw9hb4al5y3f5fll4w";
+      zuluVersion = "17.30.15";
+      jdkVersion = "17.0.1";
+      sha256 = "sha256-zhBCXOnO/fsj6+q+vAlEz7QVMRFKLVvYnjwZzFz6mRM=";
     };
   }."${stdenv.hostPlatform.system}";
 
   jce-policies = fetchurl {
     # Ugh, unversioned URLs... I hope this doesn't change often enough to cause pain before we move to a Darwin source build of OpenJDK!
-    url    = "http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
+    url = "http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
     sha256 = "0nk7m0lgcbsvldq2wbfni2pzq8h818523z912i7v8hdcij5s48c0";
   };
 
@@ -77,4 +77,5 @@ let
 
     meta = import ./meta.nix lib;
   };
-in jdk
+in
+jdk
diff --git a/pkgs/development/compilers/openjdk/darwin/8.nix b/pkgs/development/compilers/openjdk/darwin/8.nix
index c7367a5d642c3..1d829450a1ed1 100644
--- a/pkgs/development/compilers/openjdk/darwin/8.nix
+++ b/pkgs/development/compilers/openjdk/darwin/8.nix
@@ -1,4 +1,10 @@
-{ lib, stdenv, fetchurl, unzip, setJavaClassPath }:
+{ lib
+, stdenv
+, fetchurl
+, unzip
+, setJavaClassPath
+, enableJavaFX ? false
+}:
 let
   # Details from https://www.azul.com/downloads/?version=java-8-lts&os=macos&package=jdk
   # Note that the latest build may differ by platform
@@ -7,32 +13,37 @@ let
       arch = "x64";
       zuluVersion = "8.54.0.21";
       jdkVersion = "8.0.292";
-      sha256 = "1pgl0bir4r5v349gkxk54k6v62w241q7vw4gjxhv2g6pfq6hv7in";
+      sha256 =
+        if enableJavaFX then "e671f8990229b1ca2a76faabb21ba2f1a9e1f7211392e0f657225559be9b05c8"
+        else "1pgl0bir4r5v349gkxk54k6v62w241q7vw4gjxhv2g6pfq6hv7in";
     };
 
     aarch64-darwin = {
       arch = "aarch64";
       zuluVersion = "8.54.0.21";
       jdkVersion = "8.0.292";
-      sha256 = "05w89wfjlfbpqfjnv6wisxmaf13qb28b2223f9264jyx30qszw1c";
+      sha256 =
+        if enableJavaFX then "1b05b2e40f707a151b063ebba821270fa930ebfc05712bc1f5a8a112395731a6"
+        else "05w89wfjlfbpqfjnv6wisxmaf13qb28b2223f9264jyx30qszw1c";
     };
   }."${stdenv.hostPlatform.system}";
 
   jce-policies = fetchurl {
-    # Ugh, unversioned URLs... I hope this doesn't change often enough to cause pain before we move to a Darwin source build of OpenJDK!
-    url    = "http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
+    url = "https://web.archive.org/web/20211126120343/http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
     sha256 = "0nk7m0lgcbsvldq2wbfni2pzq8h818523z912i7v8hdcij5s48c0";
   };
 
+  javaPackage = if enableJavaFX then "ca-fx-jdk" else "ca-jdk";
+
   jdk = stdenv.mkDerivation rec {
     # @hlolli: Later version than 1.8.0_202 throws error when building jvmci.
     # dyld: lazy symbol binding failed: Symbol not found: _JVM_BeforeHalt
     # Referenced from: ../libjava.dylib Expected in: .../libjvm.dylib
-    pname = "zulu${dist.zuluVersion}-ca-jdk";
+    pname = "zulu${dist.zuluVersion}-${javaPackage}";
     version = dist.jdkVersion;
 
     src = fetchurl {
-      url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-ca-jdk${dist.jdkVersion}-macosx_${dist.arch}.tar.gz";
+      url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-${javaPackage}${dist.jdkVersion}-macosx_${dist.arch}.tar.gz";
       inherit (dist) sha256;
       curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
     };
@@ -75,4 +86,5 @@ let
 
     meta = import ./meta.nix lib;
   };
-in jdk
+in
+jdk
diff --git a/pkgs/development/compilers/openjdk/openjfx/11.nix b/pkgs/development/compilers/openjdk/openjfx/11.nix
index e751e9fc27325..e977d2b002035 100644
--- a/pkgs/development/compilers/openjdk/openjfx/11.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/11.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, writeText, gradleGen, pkg-config, perl, cmake
+{ stdenv, lib, fetchurl, writeText, gradle_4, pkg-config, perl, cmake
 , gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib, ffmpeg, python2, ruby
 , openjdk11-bootstrap }:
 
@@ -7,9 +7,9 @@ let
   update = ".0.3";
   build = "1";
   repover = "${major}${update}+${build}";
-  gradle_ = (gradleGen.override {
+  gradle_ = (gradle_4.override {
     java = openjdk11-bootstrap;
-  }).gradle_4_10;
+  });
 
   makePackage = args: stdenv.mkDerivation ({
     version = "${major}${update}-${build}";
diff --git a/pkgs/development/compilers/openjdk/openjfx/15.nix b/pkgs/development/compilers/openjdk/openjfx/15.nix
index c36cbaa03f957..26c16895c5d4e 100644
--- a/pkgs/development/compilers/openjdk/openjfx/15.nix
+++ b/pkgs/development/compilers/openjdk/openjfx/15.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, writeText, openjdk11_headless, gradleGen
+{ stdenv, lib, fetchFromGitHub, writeText, openjdk11_headless, gradle_5
 , pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib
 , ffmpeg, python3, ruby }:
 
@@ -7,9 +7,9 @@ let
   update = ".0.1";
   build = "+1";
   repover = "${major}${update}${build}";
-  gradle_ = (gradleGen.override {
+  gradle_ = (gradle_5.override {
     java = openjdk11_headless;
-  }).gradle_5_6;
+  });
 
   makePackage = args: stdenv.mkDerivation ({
     version = "${major}${update}${build}";
diff --git a/pkgs/development/compilers/polyml/default.nix b/pkgs/development/compilers/polyml/default.nix
index 2af100d067bce..8a283bb6cf998 100644
--- a/pkgs/development/compilers/polyml/default.nix
+++ b/pkgs/development/compilers/polyml/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "polyml";
-  version = "5.8.2";
+  version = "5.9";
 
   prePatch = lib.optionalString stdenv.isDarwin ''
     substituteInPlace configure.ac --replace stdc++ c++
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "polyml";
     repo = "polyml";
     rev = "v${version}";
-    sha256 = "0vvla816g9rk9aa75gq63rb7bf6yla27p8wh1s1ycgq2in2zk0py";
+    sha256 = "sha256-4oo4AB54CivhS99RuZVTP9+Ic0CDpsBb+OiHvOhmZnM=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/compilers/qbe/default.nix b/pkgs/development/compilers/qbe/default.nix
index fd6dea1cb1d5e..1751da3e8f303 100644
--- a/pkgs/development/compilers/qbe/default.nix
+++ b/pkgs/development/compilers/qbe/default.nix
@@ -6,12 +6,12 @@
 
 stdenv.mkDerivation rec {
   pname = "qbe";
-  version = "unstable-2021-11-10";
+  version = "unstable-2021-11-22";
 
   src = fetchgit {
     url = "git://c9x.me/qbe.git";
-    rev = "b0f16dad64d14f36ffe235b2e9cca96aa3ce35ba";
-    sha256 = "sha256-oPgr8PDxGNqIWxWsvVr9B8oN0Io/pUuzgIkZfY/qD+o=";
+    rev = "bf153b359e9ce3ebef9bca899eb7ed5bd9045c11";
+    sha256 = "sha256-13Mvq4VWZxlye/kncJibCnfSECx4PeHMYLuX0xMkN3A=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/development/compilers/rust/1_56.nix b/pkgs/development/compilers/rust/1_57.nix
index 49df8bcd5ecdc..f6b9d3c72a321 100644
--- a/pkgs/development/compilers/rust/1_56.nix
+++ b/pkgs/development/compilers/rust/1_57.nix
@@ -20,8 +20,8 @@
 } @ args:
 
 import ./default.nix {
-  rustcVersion = "1.56.1";
-  rustcSha256 = "04cmqx7nn63hzz7z27b2b0dj2qx18rck9ifvip43s6dampx8v2f3";
+  rustcVersion = "1.57.0";
+  rustcSha256 = "06jw8ka2p3kls8p0gd4p0chhhb1ia1mlvj96zn78n7qvp71zjiim";
 
   llvmSharedForBuild = pkgsBuildBuild.llvmPackages_13.libllvm.override { enableSharedLibraries = true; };
   llvmSharedForHost = pkgsBuildHost.llvmPackages_13.libllvm.override { enableSharedLibraries = true; };
@@ -37,24 +37,24 @@ import ./default.nix {
 
   # Note: the version MUST be one version prior to the version we're
   # building
-  bootstrapVersion = "1.55.0";
+  bootstrapVersion = "1.56.1";
 
   # fetch hashes by running `print-hashes.sh ${bootstrapVersion}`
   bootstrapHashes = {
-    i686-unknown-linux-gnu = "6e42b6c44d2eb4170f4144423fa3c33338d8d5c3ea00b03bbac200c877bc9e98";
-    x86_64-unknown-linux-gnu = "2080253a2ec36ac8ed6e060d30802d888533124b8d16545cfd4af898b365eaac";
-    x86_64-unknown-linux-musl = "f24f68587253c4bfbe59d3d10fe4897068d9130538de6b2d02097a25718030c2";
-    arm-unknown-linux-gnueabihf = "483444153d35cda51c6aec2c24bc4c97fa4fd30b28df4b60bf9763bd6e06da3a";
-    armv7-unknown-linux-gnueabihf = "8c72f0eb75b10db970fb546c3b41f5e97df294d5dbbf0b8fa96e17f2b281ee9c";
-    aarch64-unknown-linux-gnu = "eebdb2e659ed14884a49f0457d44e5e8c9f89fca3414533752c6dbb96232c156";
-    aarch64-unknown-linux-musl = "2ce36a7d34f1f2aa43b4cbc0b437d96eefb45743828bf9ae699ff581ae257f28";
-    x86_64-apple-darwin = "2e345ac7724c192c9487a2c6bd4f6c52c884d791981510288830d27d9a0bf2f3";
-    aarch64-apple-darwin = "70c71d30d0de76912fcd88d503a6cb4323cfe6250c1a255be7e0d4e644b3d40a";
-    powerpc64le-unknown-linux-gnu = "12bf6447d338cbe2b55539b84e6369b17e7eefe938d1ba7e3dd69781c9cc9812";
-    riscv64gc-unknown-linux-gnu = "effceb45346fef3b0b54b357336e6f374f788b803bb1bee4084f25eace8907f3";
+    i686-unknown-linux-gnu = "84db34603ce22d93312ff8bccd5580fe112e932bbeb0361e7cc37668a9803a27";
+    x86_64-unknown-linux-gnu = "a6be5d045183a0b12dddf0d81633e2a64e63e4c2dfa44eb7593970c1ef93a98f";
+    x86_64-unknown-linux-musl = "3c09058d104d9a88943fb343af1fb70422f9c4a987e6703666ee8a8051211190";
+    arm-unknown-linux-gnueabihf = "c445706d109bb74de4c889687ae08a48af5808676fda15b84b7ef5970a82a5f6";
+    armv7-unknown-linux-gnueabihf = "29ec65af502370c0c1a49faecd7131f1243fe3005b419ead4b40b267af2b2db0";
+    aarch64-unknown-linux-gnu = "69792887357c8dd78c5424f0b4a624578296796d99edf6c30ebe2acc2b939aa3";
+    aarch64-unknown-linux-musl = "971d13d41657e50e3ac54f17f52b4198c3d8bc25ec489a6a9e6d12c18226dda5";
+    x86_64-apple-darwin = "8d65ef02a123c23be00101fb204d28b60498b9145dd2ee8edabf0afde6e01e55";
+    aarch64-apple-darwin = "e71c14c1368048a22e4d1851f301872ac2e6f4c574f04d2a7ae4d64b0e7c7235";
+    powerpc64le-unknown-linux-gnu = "fa78b28fe1ef3cd4add9ec151e5eab756dfc83c8bc3e5a576a6eddd350c4de7a";
+    riscv64gc-unknown-linux-gnu = "5ec327d1bd3ba8d00afbe9be4a1f0fb8ab845063fcf9be479be9493c52a4dbb6";
   };
 
-  selectRustPackage = pkgs: pkgs.rust_1_56;
+  selectRustPackage = pkgs: pkgs.rust_1_57;
 
   rustcPatches = [
   ];
diff --git a/pkgs/development/compilers/rust/rust-src.nix b/pkgs/development/compilers/rust/rust-src.nix
index 489795ecec47a..4239e92b03638 100644
--- a/pkgs/development/compilers/rust/rust-src.nix
+++ b/pkgs/development/compilers/rust/rust-src.nix
@@ -1,4 +1,4 @@
-{ stdenv, rustc, minimalContent ? true }:
+{ lib, stdenv, rustc, minimalContent ? true }:
 
 stdenv.mkDerivation {
   name = "rust-src";
@@ -6,9 +6,20 @@ stdenv.mkDerivation {
   phases = [ "unpackPhase" "installPhase" ];
   installPhase = ''
     mv src $out
-    rm -rf $out/{${if minimalContent
-      then "ci,doc,etc,grammar,llvm-project,llvm-emscripten,rtstartup,rustllvm,test,tools,vendor,stdarch"
-      else "ci,doc,etc,grammar,llvm-project,llvm-emscripten,rtstartup,rustllvm,test,vendor"
-    }}
+    rm -rf $out/{${lib.concatStringsSep "," ([
+      "ci"
+      "doc"
+      "etc"
+      "grammar"
+      "llvm-project"
+      "llvm-emscripten"
+      "rtstartup"
+      "rustllvm"
+      "test"
+      "vendor"
+    ] ++ lib.optionals minimalContent [
+      "tools"
+      "stdarch"
+    ])}}
   '';
 }
diff --git a/pkgs/development/compilers/sbcl/2.1.10.nix b/pkgs/development/compilers/sbcl/2.1.10.nix
new file mode 100644
index 0000000000000..8cf6f50b5869b
--- /dev/null
+++ b/pkgs/development/compilers/sbcl/2.1.10.nix
@@ -0,0 +1,4 @@
+import ./common.nix {
+  version = "2.1.10";
+  sha256 = "0f5ihj486m7ghh3nc0jlnqa656sbqcmhdv32syz2rjx5b47ky67b";
+}
diff --git a/pkgs/development/compilers/sbcl/2.1.11.nix b/pkgs/development/compilers/sbcl/2.1.11.nix
new file mode 100644
index 0000000000000..abe48953a5736
--- /dev/null
+++ b/pkgs/development/compilers/sbcl/2.1.11.nix
@@ -0,0 +1,4 @@
+import ./common.nix {
+  version = "2.1.11";
+  sha256 = "1zgypmn19c58pv7j33ga7m1l7lzghj70w3xbybpgmggxwwflihdz";
+}
diff --git a/pkgs/development/compilers/shaderc/default.nix b/pkgs/development/compilers/shaderc/default.nix
index 40c216d79c348..ae9d0f8810e6d 100644
--- a/pkgs/development/compilers/shaderc/default.nix
+++ b/pkgs/development/compilers/shaderc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, python3 }:
+{ lib, stdenv, fetchFromGitHub, cmake, darwin, python3 }:
 # Like many google projects, shaderc doesn't gracefully support separately compiled dependencies, so we can't easily use
 # the versions of glslang and spirv-tools used by vulkan-loader. Exact revisions are taken from
 # https://github.com/google/shaderc/blob/known-good/known_good.json
@@ -42,7 +42,7 @@ in stdenv.mkDerivation rec {
     ln -s ${spirv-headers} third_party/spirv-tools/external/spirv-headers
   '';
 
-  nativeBuildInputs = [ cmake python3 ];
+  nativeBuildInputs = [ cmake python3 ] ++ lib.optionals stdenv.isDarwin [ darwin.cctools ];
 
   postInstall = ''
     moveToOutput "lib/*.a" $static
@@ -53,6 +53,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "A collection of tools, libraries and tests for shader compilation";
+    platforms = platforms.all;
     license = [ licenses.asl20 ];
   };
 }
diff --git a/pkgs/development/compilers/swift/default.nix b/pkgs/development/compilers/swift/default.nix
index 764c2c93daef2..b5009195ba7cc 100644
--- a/pkgs/development/compilers/swift/default.nix
+++ b/pkgs/development/compilers/swift/default.nix
@@ -340,7 +340,7 @@ stdenv.mkDerivation {
     # TODO: consider using stress-tester and integration-test.
 
     # Match the wrapped version of Swift to be installed.
-    export LIBRARY_PATH=${icu}/lib:${libgcc}/lib:${libuuid.out}/lib:$l
+    export LIBRARY_PATH=${lib.makeLibraryPath [icu libgcc libuuid]}:$l
 
     checkTarget=check-swift-all-${stdenv.hostPlatform.parsed.kernel.name}-${stdenv.hostPlatform.parsed.cpu.name}
     ninjaFlags='-C buildbot_linux/swift-${stdenv.hostPlatform.parsed.kernel.name}-${stdenv.hostPlatform.parsed.cpu.name}'
@@ -363,13 +363,13 @@ stdenv.mkDerivation {
       --set CC $out/bin/clang \
       --suffix C_INCLUDE_PATH : $out/lib/swift/clang/include \
       --suffix CPLUS_INCLUDE_PATH : $out/lib/swift/clang/include \
-      --suffix LIBRARY_PATH : ${icu}/lib:${libgcc}/lib:${libuuid.out}/lib
+      --suffix LIBRARY_PATH : ${lib.makeLibraryPath [icu libgcc libuuid]}
 
     wrapProgram $out/bin/swiftc \
       --set CC $out/bin/clang \
       --suffix C_INCLUDE_PATH : $out/lib/swift/clang/include \
       --suffix CPLUS_INCLUDE_PATH : $out/lib/swift/clang/include \
-      --suffix LIBRARY_PATH : ${icu}/lib:${libgcc}/lib:${libuuid.out}/lib
+      --suffix LIBRARY_PATH : ${lib.makeLibraryPath [icu libgcc libuuid]}
   '';
 
   # Hack to avoid build and install directories in RPATHs.
diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix
index 32c9e6f2290ac..f446251fd328c 100644
--- a/pkgs/development/compilers/vala/default.nix
+++ b/pkgs/development/compilers/vala/default.nix
@@ -28,18 +28,8 @@ let
         #     0.40.12: https://github.com/openembedded/openembedded-core/raw/8553c52f174af4c8c433c543f806f5ed5c1ec48c/meta/recipes-devtools/vala/vala/disable-graphviz.patch
         "0.40" = ./disable-graphviz-0.40.12.patch;
 
-        # NOTE: the openembedded-core project doesn't have a patch for 0.44.1
-        # We've reverted the addition of the "--disable-valadoc" option
-        # and then applied the following patch.
-        #     0.42.4: https://github.com/openembedded/openembedded-core/raw/f2b4f9ec6f44dced7f88df849cca68961419eeb8/meta/recipes-devtools/vala/vala/disable-graphviz.patch
-        "0.44" = ./disable-graphviz-0.44.3.patch;
-
-        "0.46" = ./disable-graphviz-0.46.1.patch;
-
         "0.48" = ./disable-graphviz-0.46.1.patch;
 
-        "0.50" = ./disable-graphviz-0.46.1.patch;
-
         "0.52" = ./disable-graphviz-0.46.1.patch;
 
         "0.54" = ./disable-graphviz-0.46.1.patch;
@@ -113,29 +103,19 @@ in rec {
     sha256 = "1pxpack8rrmywlf47v440hc6rv3vi8q9c6niwqnwikxvb2pwf3w7";
   };
 
-  vala_0_46 = generic {
-    version = "0.46.13";
-    sha256 = "0d7l4vh2xra3q75kw3sy2d9bn5p6s3g3r7j37bdn6ir8l3wp2ivs";
-  };
-
   vala_0_48 = generic {
-    version = "0.48.19";
-    sha256 = "sha256-gLdlijfZhE/NG0Mdr8WATeYWpYGW5PHxGeWyrraLSgE=";
-  };
-
-  vala_0_50 = generic {
-    version = "0.50.10";
-    sha256 = "sha256-vnIf8/AYHqttM+zKzygfZvMI+qHl5VTwj99nFZpFlRU=";
+    version = "0.48.20";
+    sha256 = "sha256-RrHIF/dIUfvMOV/E+eoRlQLPh7kzPMllbhzczAvTN24=";
   };
 
   vala_0_52 = generic {
-    version = "0.52.7";
-    sha256 = "sha256-C7WptPbRdUmewKWAJK3ANapRcAgPUzwo2cNY0aMsU2o=";
+    version = "0.52.8";
+    sha256 = "sha256-d3t9HLVnFewyJUXQEw5/9Y2eem0b2WtuKX6eYOgRh5M=";
   };
 
   vala_0_54 = generic {
-    version = "0.54.2";
-    sha256 = "iE3nRTF9TVbk6M7emT3I8E1Qz8o2z2DS8vJ4wwwrExE=";
+    version = "0.54.3";
+    sha256 = "7R1f5MvAzShF0N5PH/77Fa+waJLSMMfMppV4FnLo+2A=";
   };
 
   vala = vala_0_54;
diff --git a/pkgs/development/compilers/vala/disable-graphviz-0.44.3.patch b/pkgs/development/compilers/vala/disable-graphviz-0.44.3.patch
deleted file mode 100644
index fc971c26492b1..0000000000000
--- a/pkgs/development/compilers/vala/disable-graphviz-0.44.3.patch
+++ /dev/null
@@ -1,261 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index f70234759..b3d6c3833 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -13,19 +13,9 @@ SUBDIRS = \
- 	doc \
- 	gobject-introspection \
- 	vapigen \
--	$(NULL)
--
--if ENABLE_VALADOC
--SUBDIRS += \
- 	libvaladoc \
- 	valadoc \
- 	$(NULL)
--endif
--
--DISTCHECK_CONFIGURE_FLAGS = \
--	--enable-valadoc \
--	--enable-unversioned \
--	$(NULL)
-
- if ENABLE_UNVERSIONED
- aclocaldir = $(datadir)/aclocal
-diff --git a/configure.ac b/configure.ac
-index 504db13aa..622397747 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -157,10 +157,11 @@ AC_SUBST(GMODULE_CFLAGS)
- AC_SUBST(GMODULE_LIBS)
-
- AC_ARG_WITH(cgraph, AS_HELP_STRING([--with-cgraph], [Required flag for cross-compilation to define capability of graphviz]), [], with_cgraph=check)
--AC_ARG_ENABLE(valadoc, AS_HELP_STRING([--disable-valadoc], [Disable valadoc]), enable_valadoc=$enableval, enable_valadoc=yes)
--if test x$enable_valadoc = xyes; then
-+AC_ARG_ENABLE(graphviz, AS_HELP_STRING([--disable-graphviz], [Disable graphviz usage for valadoc]), enable_graphviz=$enableval, enable_graphviz=yes)
-+if test x$enable_graphviz = xyes; then
- 	PKG_CHECK_MODULES(LIBGVC, libgvc >= $LIBGVC_REQUIRED)
- 	AC_MSG_CHECKING([for CGRAPH])
-+	VALAFLAGS="$VALAFLAGS -D HAVE_GRAPHVIZ"
- 	cgraph_tmp_LIBADD="$LIBADD"
- 	cgraph_tmp_CFLAGS="$CFLAGS"
- 	LIBADD="$LIBADD $LIBGVC_LIBS"
-@@ -198,8 +199,8 @@ if test x$enable_valadoc = xyes; then
- 	LIBADD="$cgraph_tmp_LIBADD"
- 	CFLAGS="$cgraph_tmp_CFLAGS"
- fi
-+AM_CONDITIONAL(ENABLE_GRAPHVIZ, test x$enable_graphviz = xyes)
- AM_CONDITIONAL(HAVE_CGRAPH, test "$have_cgraph" = "yes")
--AM_CONDITIONAL(ENABLE_VALADOC, test x$enable_valadoc = xyes)
-
- AC_PATH_PROG([XSLTPROC], [xsltproc], :)
- AM_CONDITIONAL(HAVE_XSLTPROC, test "$XSLTPROC" != :)
-diff --git a/doc/Makefile.am b/doc/Makefile.am
-index d2684a0e0..b343c7c10 100644
---- a/doc/Makefile.am
-+++ b/doc/Makefile.am
-@@ -6,16 +6,11 @@ SUBDIRS = \
-
- dist_man_MANS = \
- 	valac.1 \
-+	valadoc.1 \
- 	vala-gen-introspect.1 \
- 	vapigen.1 \
- 	$(NULL)
-
--if ENABLE_VALADOC
--dist_man_MANS += \
--	valadoc.1 \
--	$(NULL)
--endif
--
- EXTRA_DIST = \
- 	valac.h2m \
- 	valadoc.h2m \
-@@ -24,11 +19,7 @@ EXTRA_DIST = \
- 	$(NULL)
-
- if HAVE_HELP2MAN
--if ENABLE_VALADOC
- manpages: valac.1 valadoc.1 vala-gen-introspect.1 vapigen.1
--else
--manpages: valac.1 vala-gen-introspect.1 vapigen.1
--endif
- 	@rm $^
- 	$(MAKE) $(AM_MAKEFLAGS) $^
-
-@@ -37,13 +28,11 @@ valac.1:
- 		--include $(srcdir)/valac.h2m \
- 		--libtool --no-info \
- 		--output=$@
--if ENABLE_VALADOC
- valadoc.1:
- 	$(HELP2MAN) $(top_builddir)/valadoc/valadoc \
- 		--include $(srcdir)/valadoc.h2m \
- 		--libtool --no-info \
- 		--output=$@
--endif
- vala-gen-introspect.1:
- 	$(HELP2MAN) $(top_builddir)/gobject-introspection/gen-introspect \
- 		--include $(srcdir)/vala-gen-introspect.h2m \
-@@ -60,15 +49,12 @@ endif
- if ENABLE_UNVERSIONED
- install-data-hook:
- 	cd $(DESTDIR)$(man1dir) && $(LN_S) -f valac@PACKAGE_SUFFIX@.1 valac.1
--if ENABLE_VALADOC
- 	cd $(DESTDIR)$(man1dir) && $(LN_S) -f valadoc@PACKAGE_SUFFIX@.1 valadoc.1
--endif
- 	cd $(DESTDIR)$(man1dir) && $(LN_S) -f vala-gen-introspect@PACKAGE_SUFFIX@.1 vala-gen-introspect.1
- 	cd $(DESTDIR)$(man1dir) && $(LN_S) -f vapigen@PACKAGE_SUFFIX@.1 vapigen.1
- endif
-
-
--if ENABLE_VALADOC
- COMMON_VALADOCFLAGS = \
- 	--force \
- 	--verbose \
-@@ -150,7 +136,6 @@ internal-apis/valadoc: $(valadoc_VALASOURCES) internal-apis/codegen
- 	@touch $@
-
- internal-api-docs: internal-apis/gee internal-apis/vala internal-apis/ccode internal-apis/codegen internal-apis/valadoc
--endif
-
- clean-local:
- 	rm -rf $(builddir)/internal-apis
-diff --git a/libvaladoc/Makefile.am b/libvaladoc/Makefile.am
-index 7456fb836..107338e91 100644
---- a/libvaladoc/Makefile.am
-+++ b/libvaladoc/Makefile.am
-@@ -119,10 +119,6 @@ libvaladoc_la_VALASOURCES = \
- 	content/tablerow.vala \
- 	content/taglet.vala \
- 	content/text.vala \
--	charts/chart.vala \
--	charts/chartfactory.vala \
--	charts/hierarchychart.vala \
--	charts/simplechartfactory.vala \
- 	parser/manyrule.vala \
- 	parser/oneofrule.vala \
- 	parser/optionalrule.vala \
-@@ -149,13 +145,24 @@ libvaladoc_la_VALASOURCES = \
- 	highlighter/codetoken.vala \
- 	highlighter/highlighter.vala \
- 	html/basicdoclet.vala \
--	html/htmlchartfactory.vala \
- 	html/linkhelper.vala \
- 	html/cssclassresolver.vala \
- 	html/htmlmarkupwriter.vala \
- 	html/htmlrenderer.vala \
- 	$(NULL)
-
-+if ENABLE_GRAPHVIZ
-+libvaladoc_la_VALASOURCES += \
-+	charts/chart.vala \
-+	charts/chartfactory.vala \
-+	charts/hierarchychart.vala \
-+	charts/simplechartfactory.vala \
-+	html/htmlchartfactory.vala \
-+	$(NULL)
-+
-+LIBGVC_PKG = --vapidir $(top_srcdir)/vapi --pkg libgvc
-+endif
-+
- libvaladoc@PACKAGE_SUFFIX@_la_SOURCES = \
- 	libvaladoc.vala.stamp \
- 	$(libvaladoc_la_VALASOURCES:.vala=.c) \
-@@ -175,11 +182,11 @@ libvaladoc.vala.stamp: $(libvaladoc_la_VALASOURCES)
- 		--library valadoc \
- 		--vapi valadoc@PACKAGE_SUFFIX@.vapi \
- 		--vapidir $(top_srcdir)/vapi --pkg gmodule-2.0 \
--		--vapidir $(top_srcdir)/vapi --pkg libgvc \
- 		--vapidir $(top_srcdir)/gee --pkg gee \
- 		--vapidir $(top_srcdir)/vala --pkg vala \
- 		--vapidir $(top_srcdir)/ccode --pkg ccode \
- 		--vapidir $(top_srcdir)/codegen --pkg codegen \
-+		$(LIBGVC_PKG) \
- 		--pkg config \
- 		$(filter %.vala %.c,$^)
- 	touch $@
-@@ -207,6 +214,9 @@ nodist_pkgconfig_DATA = valadoc@PACKAGE_SUFFIX@.pc
-
- valadoc@PACKAGE_SUFFIX@.pc: valadoc.pc
- 	cp $< $@
-+if !ENABLE_GRAPHVIZ
-+	sed -i "s/libgvc //g" $@
-+endif
-
- vapidir = $(datadir)/vala/vapi
- dist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.vapi
-@@ -214,6 +224,9 @@ nodist_vapi_DATA = valadoc@PACKAGE_SUFFIX@.deps
-
- valadoc@PACKAGE_SUFFIX@.deps: valadoc.deps
- 	cp $< $@
-+if !ENABLE_GRAPHVIZ
-+	sed -i "s/libgvc//g" $@
-+endif
-
- EXTRA_DIST = \
- 	$(libvaladoc_la_VALASOURCES) \
-diff --git a/libvaladoc/html/basicdoclet.vala b/libvaladoc/html/basicdoclet.vala
-index 46578c28f..f6ce7097c 100644
---- a/libvaladoc/html/basicdoclet.vala
-+++ b/libvaladoc/html/basicdoclet.vala
-@@ -46,7 +46,11 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
- 	protected HtmlRenderer _renderer;
- 	protected Html.MarkupWriter writer;
- 	protected Html.CssClassResolver cssresolver;
-+#if HAVE_GRAPHVIZ
- 	protected Charts.Factory image_factory;
-+#else
-+	protected void* image_factory;
-+#endif
- 	protected ErrorReporter reporter;
- 	protected string package_list_link = "../index.html";
-
-@@ -120,7 +124,9 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
- 		this.linker = new LinkHelper ();
-
- 		_renderer = new HtmlRenderer (settings, this.linker, this.cssresolver);
-+#if HAVE_GRAPHVIZ
- 		this.image_factory = new SimpleChartFactory (settings, linker);
-+#endif
- 	}
-
-
-@@ -1025,6 +1031,7 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
- 	}
-
- 	protected void write_image_block (Api.Node element) {
-+#if HAVE_GRAPHVIZ
- 		if (element is Class || element is Interface || element is Struct) {
- 			unowned string format = (settings.use_svg_images ? "svg" : "png");
- 			var chart = new Charts.Hierarchy (image_factory, element);
-@@ -1044,6 +1051,7 @@ public abstract class Valadoc.Html.BasicDoclet : Api.Visitor, Doclet {
- 									   this.get_img_path_html (element, format)});
- 			writer.add_usemap (chart);
- 		}
-+#endif
- 	}
-
- 	public void write_namespace_content (Namespace node, Api.Node? parent) {
-diff --git a/libvaladoc/html/htmlmarkupwriter.vala b/libvaladoc/html/htmlmarkupwriter.vala
-index 5aa4afdea..e79b0b8f5 100644
---- a/libvaladoc/html/htmlmarkupwriter.vala
-+++ b/libvaladoc/html/htmlmarkupwriter.vala
-@@ -51,12 +51,16 @@ public class Valadoc.Html.MarkupWriter : Valadoc.MarkupWriter {
- 		}
- 	}
-
-+#if HAVE_GRAPHVIZ
- 	public unowned MarkupWriter add_usemap (Charts.Chart chart) {
- 		string? buf = (string?) chart.write_buffer ("cmapx");
- 		if (buf != null) {
- 			raw_text ("\n");
- 			raw_text ((!) buf);
- 		}
-+#else
-+	public unowned MarkupWriter add_usemap (void* chart) {
-+#endif
-
- 		return this;
- 	}
diff --git a/pkgs/development/compilers/vlang/default.nix b/pkgs/development/compilers/vlang/default.nix
index 1535411149d66..1786c54ac7ef8 100644
--- a/pkgs/development/compilers/vlang/default.nix
+++ b/pkgs/development/compilers/vlang/default.nix
@@ -2,22 +2,20 @@
 
 stdenv.mkDerivation rec {
   pname = "vlang";
-  version = "weekly.2021.25";
+  version = "weekly.2021.51";
 
   src = fetchFromGitHub {
     owner = "vlang";
     repo = "v";
     rev = version;
-    sha256 = "0y4a5rmpcdqina32d6azbmsbi3zqqfl413sicg72x6a1pm2vg33j";
+    sha256 = "1jvq3fxckl2jidiigkvclacjxbg5k38268mck7bl1ky1yspgfrnq";
   };
 
-  # V compiler source translated to C for bootstrap.
-  # Use matching v.c release commit for now, 0.1.21 release is not available.
   vc = fetchFromGitHub {
     owner = "vlang";
     repo = "vc";
-    rev = "3201d2dd2faadfa370da0bad2a749a664ad5ade3";
-    sha256 = "0xzkjdph5wfjr3qfkihgc27vsbbjh2l31rp8z2avq9hc531hwvrz";
+    rev = "c8ed2cd82b247e94c33217dba35c420cfc02fef3";
+    sha256 = "1acgx1qp480jmsv1xvqy1zf7iyy90mvg9x1m1b0zrwx09wz4y1cq";
   };
 
   propagatedBuildInputs = [ glfw freetype openssl ]
diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix
index 56e0dc3b57d6c..9c3d9179f7ba2 100644
--- a/pkgs/development/compilers/yosys/default.nix
+++ b/pkgs/development/compilers/yosys/default.nix
@@ -34,13 +34,13 @@
 
 stdenv.mkDerivation rec {
   pname   = "yosys";
-  version = "0.10+1";
+  version = "0.12+36";
 
   src = fetchFromGitHub {
-    owner  = "YosysHQ";
-    repo   = "yosys";
-    rev    = "7a7df9a3b4996b17bb774377483b15de49aa3d9b";
-    sha256 = "sha256-gi/Q6loIQ75NTbS9b/Q8sdrl9NGBDae2+AAGHVYB0WI=";
+    owner = "YosysHQ";
+    repo  = "yosys";
+    rev   = "60c3ea367c942459a95e610ed98f277ce46c0142";
+    hash  = "sha256-NcfhNUmb3IDG08XgS+NGbRLI8sn4aQkOA7RF7wucDug=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/coq-modules/ITree/default.nix b/pkgs/development/coq-modules/ITree/default.nix
index 95174d9547edc..1ba8080e0b10f 100644
--- a/pkgs/development/coq-modules/ITree/default.nix
+++ b/pkgs/development/coq-modules/ITree/default.nix
@@ -5,7 +5,7 @@ with lib; mkCoqDerivation rec {
   owner = "DeepSpec";
   inherit version;
   defaultVersion = with versions; switch coq.coq-version [
-    { case = range "8.10" "8.13";  out = "4.0.0"; }
+    { case = range "8.10" "8.14";  out = "4.0.0"; }
   ] null;
   release."4.0.0".sha256 = "0h5rhndl8syc24hxq1gch86kj7mpmgr89bxp2hmf28fd7028ijsm";
   releaseRev = v: "${v}";
diff --git a/pkgs/development/coq-modules/StructTact/default.nix b/pkgs/development/coq-modules/StructTact/default.nix
index 08976c6898930..965a13eadfb9d 100644
--- a/pkgs/development/coq-modules/StructTact/default.nix
+++ b/pkgs/development/coq-modules/StructTact/default.nix
@@ -5,7 +5,7 @@ with lib; mkCoqDerivation {
   owner = "uwplse";
   inherit version;
   defaultVersion = with versions; switch coq.coq-version [
-    { case = range "8.6" "8.14"; out = "20210328"; }
+    { case = range "8.6" "8.15"; out = "20210328"; }
     { case = range "8.5" "8.13"; out = "20181102"; }
   ] null;
   release."20210328".rev =    "179bd5312e9d8b63fc3f4071c628cddfc496d741";
diff --git a/pkgs/development/coq-modules/bignums/default.nix b/pkgs/development/coq-modules/bignums/default.nix
index cb83a9fdc339c..0001ae1ded4d8 100644
--- a/pkgs/development/coq-modules/bignums/default.nix
+++ b/pkgs/development/coq-modules/bignums/default.nix
@@ -8,6 +8,7 @@ with lib; mkCoqDerivation {
   defaultVersion = if versions.isGe "8.5" coq.coq-version
     then "${coq.coq-version}.0" else null;
 
+  release."8.15.0".sha256 = "093klwlhclgyrba1iv18dyz1qp5f0lwiaa7y0qwvgmai8rll5fns";
   release."8.14.0".sha256 = "0jsgdvj0ddhkls32krprp34r64y1rb5mwxl34fgaxk2k4664yq06";
   release."8.13.0".sha256 = "1n66i7hd9222b2ks606mak7m4f0dgy02xgygjskmmav6h7g2sx7y";
   release."8.12.0".sha256 = "14ijb3qy2hin3g4djx437jmnswxxq7lkfh3dwh9qvrds9a015yg8";
diff --git a/pkgs/development/coq-modules/category-theory/default.nix b/pkgs/development/coq-modules/category-theory/default.nix
index d24cf14793079..ae3f7e809fb6f 100644
--- a/pkgs/development/coq-modules/category-theory/default.nix
+++ b/pkgs/development/coq-modules/category-theory/default.nix
@@ -5,6 +5,8 @@ with lib; mkCoqDerivation {
   pname = "category-theory";
   owner = "jwiegley";
 
+  release."20211213".rev    = "449e30e929d56f6f90c22af2c91ffcc4d79837be";
+  release."20211213".sha256 = "sha256:0vgfmph5l1zn6j4b851rcm43s8y9r83swsz07rpzhmfg34pk0nl0";
   release."20210730".rev    = "d87937faaf7460bcd6985931ac36f551d67e11af";
   release."20210730".sha256 = "04x7433yvibxknk6gy4971yzb4saa3z4dnfy9n6irhyafzlxyf0f";
   release."20190414".rev    = "706fdb4065cc2302d92ac2bce62cb59713253119";
@@ -14,7 +16,7 @@ with lib; mkCoqDerivation {
 
   inherit version;
   defaultVersion = with versions; switch coq.coq-version [
-    { case = range "8.10" "8.13"; out = "20210730"; }
+    { case = range "8.10" "8.14"; out = "20211213"; }
     { case = range "8.8" "8.9"; out = "20190414"; }
     { case = range "8.6" "8.7"; out = "20180709"; }
   ] null;
diff --git a/pkgs/development/coq-modules/compcert/default.nix b/pkgs/development/coq-modules/compcert/default.nix
index 3b94a8087d3f7..9757b3e43c8ba 100644
--- a/pkgs/development/coq-modules/compcert/default.nix
+++ b/pkgs/development/coq-modules/compcert/default.nix
@@ -16,12 +16,13 @@ let compcert = mkCoqDerivation rec {
 
   defaultVersion =  with versions; switch coq.version [
       { case = range "8.8" "8.11"; out = "3.8"; }
-      { case = range "8.12" "8.13"; out = "3.9"; }
+      { case = range "8.12" "8.14"; out = "3.10"; }
     ] null;
 
   release = {
     "3.8".sha256 = "1gzlyxvw64ca12qql3wnq3bidcx9ygsklv9grjma3ib4hvg7vnr7";
     "3.9".sha256 = "1srcz2dqrvmbvv5cl66r34zqkm0hsbryk7gd3i9xx4slahc9zvdb";
+    "3.10".sha256 = "sha256:19rmx8r8v46101ij5myfrz60arqjy7q3ra3fb8mxqqi3c8c4l4j6";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -105,6 +106,15 @@ compcert.overrideAttrs (o:
           })
         ];
       }
+      { cases = [ (isEq "8.14") "3.10" ];
+        out = [
+          # Support for Coq 8.14.1
+          (fetchpatch {
+            url = "https://github.com/AbsInt/CompCert/commit/a79f0f99831aa0b0742bf7cce459cc9353bd7cd0.patch";
+            sha256 = "sha256:0g20x8gfzvplpad9y9vr1p33k6qv6rsp691x6687v9ffvz7zsz94";
+          })
+        ];
+      }
     ] [];
   }
 )
diff --git a/pkgs/development/coq-modules/coq-record-update/default.nix b/pkgs/development/coq-modules/coq-record-update/default.nix
new file mode 100644
index 0000000000000..7c9ee2dca646c
--- /dev/null
+++ b/pkgs/development/coq-modules/coq-record-update/default.nix
@@ -0,0 +1,16 @@
+{ lib, mkCoqDerivation, coq, version ? null , paco, coq-ext-lib }:
+
+with lib; mkCoqDerivation rec {
+  pname = "coq-record-update";
+  owner = "tchajed";
+  inherit version;
+  defaultVersion = with versions; switch coq.coq-version [
+    { case = range "8.10" "8.14";  out = "0.3.0"; }
+  ] null;
+  release."0.3.0".sha256 = "1ffr21dd6hy19gxnvcd4if2450iksvglvkd6q5713fajd72hmc0z";
+  releaseRev = v: "v${v}";
+  meta = {
+    description = "Library to create Coq record update functions";
+    maintainers = with maintainers; [ ineol ];
+  };
+}
diff --git a/pkgs/development/coq-modules/coqeal/default.nix b/pkgs/development/coq-modules/coqeal/default.nix
index 3921104cb54b8..cbbddefffffea 100644
--- a/pkgs/development/coq-modules/coqeal/default.nix
+++ b/pkgs/development/coq-modules/coqeal/default.nix
@@ -10,7 +10,7 @@ with lib;
 
   inherit version;
   defaultVersion = with versions; switch [ coq.version mathcomp.version ]  [
-      { cases = [ (isGe "8.10") (isGe "1.12.0") ]; out = "1.1.0"; }
+      { cases = [ (range "8.10" "8.14") (isGe "1.12.0") ]; out = "1.1.0"; }
       { cases = [ (isGe "8.10") (range "1.11.0" "1.12.0") ]; out = "1.0.5"; }
       { cases = [ (isGe "8.7") "1.11.0" ]; out = "1.0.4"; }
       { cases = [ (isGe "8.7") "1.10.0" ]; out = "1.0.3"; }
diff --git a/pkgs/development/coq-modules/coqhammer/default.nix b/pkgs/development/coq-modules/coqhammer/default.nix
index 93582745564e6..7cb859b202a2e 100644
--- a/pkgs/development/coq-modules/coqhammer/default.nix
+++ b/pkgs/development/coq-modules/coqhammer/default.nix
@@ -5,13 +5,19 @@ with lib; mkCoqDerivation {
   pname = "coqhammer";
   owner = "lukaszcz";
   defaultVersion = with versions; switch coq.coq-version [
-    { case = "8.13"; out = "1.3.1-coq8.13"; }
-    { case = "8.12"; out = "1.3.1-coq8.12"; }
-    { case = "8.11"; out = "1.3.1-coq8.11"; }
-    { case = "8.10"; out = "1.3.1-coq8.10"; }
+    { case = "8.14"; out = "1.3.2-coq8.14"; }
+    { case = "8.13"; out = "1.3.2-coq8.13"; }
+    { case = "8.12"; out = "1.3.2-coq8.12"; }
+    { case = "8.11"; out = "1.3.2-coq8.11"; }
+    { case = "8.10"; out = "1.3.2-coq8.10"; }
     { case = "8.9";  out = "1.1.1-coq8.9"; }
     { case = "8.8";  out = "1.1-coq8.8"; }
   ] null;
+  release."1.3.2-coq8.14".sha256 = "sha256:1pvs4p95lr31jb86f33p2q9v8zq3xbci1fk6s6a2g2snfxng1574";
+  release."1.3.2-coq8.13".sha256 = "sha256:0krsm8qj9lgfbggxv2jhkbk3vy2cz63qypnarnl31fdmpykchi4b";
+  release."1.3.2-coq8.12".sha256 = "sha256:08mnr13lrdnpims6kf8pk6axf4s8qqs0a71hzg3frkx21d6nawhh";
+  release."1.3.2-coq8.11".sha256 = "sha256:1z54lmr180rdkv549f0dygxlmamsx3fygvsm0d7rz9j88f2z8kc5";
+  release."1.3.2-coq8.10".sha256 = "sha256:08d63ckiwjx07hy5smg5c7a6b3m3a8ra4ljk3z6597633dx85cd0";
   release."1.3.1-coq8.13".sha256 = "033j6saw24anb1lqbgsg1zynxi2rnxq7pgqwh11k8r8y3xisz78w";
   release."1.3.1-coq8.12".sha256 = "0xy3vy4rv8w5ydwb9nq8y4dcimd91yr0hak2j4kn02svssg1kv1y";
   release."1.3.1-coq8.11".sha256 = "0i9nlcayq0ac95vc09d1w8sd221gdjs0g215n086qscqjwimnz8j";
diff --git a/pkgs/development/coq-modules/coqprime/default.nix b/pkgs/development/coq-modules/coqprime/default.nix
index d738041d5d233..127d630752fe2 100644
--- a/pkgs/development/coq-modules/coqprime/default.nix
+++ b/pkgs/development/coq-modules/coqprime/default.nix
@@ -6,12 +6,13 @@ with lib; mkCoqDerivation {
   owner = "thery";
   inherit version;
   defaultVersion = with versions; switch coq.coq-version [
-    { case = range "8.12" "8.13"; out = "8.12"; }
+    { case = range "8.12" "8.14"; out = "8.14.1"; }
     { case = range "8.10" "8.11"; out = "8.10"; }
     { case = range "8.8"  "8.9";  out = "8.8"; }
     { case = "8.7";               out = "8.7.2"; }
   ] null;
 
+  release."8.14.1".sha256= "sha256:0dqf87xkzcpg7gglbxjyx68ad84w1w73icxgy3s7d3w563glc2p7";
   release."8.12".sha256  = "1slka4w0pya15js4drx9frj7lxyp3k2lzib8v23givzpnxs8ijdj";
   release."8.10".sha256  = "0r9gnh5a5ykiiz5h1i8xnzgiydpwc4z9qhndxyya85xq0f910qaz";
   release."8.8".sha256   = "075yjczk79pf1hd3lgdjiz84ilkzfxjh18lgzrhhqp7d3kz5lxp5";
diff --git a/pkgs/development/coq-modules/equations/default.nix b/pkgs/development/coq-modules/equations/default.nix
index e6d5e11fcc5f5..f563d1728744c 100644
--- a/pkgs/development/coq-modules/equations/default.nix
+++ b/pkgs/development/coq-modules/equations/default.nix
@@ -7,7 +7,7 @@ with lib; mkCoqDerivation {
   inherit version;
   defaultVersion = switch coq.coq-version [
     { case = "8.14"; out = "1.3-8.14"; }
-    { case = "8.13"; out = "1.2.4+coq8.13"; }
+    { case = "8.13"; out = "1.3-8.13"; }
     { case = "8.12"; out = "1.2.4+coq8.12"; }
     { case = "8.11"; out = "1.2.4+coq8.11"; }
     { case = "8.10"; out = "1.2.1+coq8.10-2"; }
@@ -44,6 +44,8 @@ with lib; mkCoqDerivation {
     release."1.2.4+coq8.12".sha256    = "1n0w8is464qcq8mk2mv7amaf0khbjz5mpc9phf0rhpjm0lb22cb3";
     release."1.2.4+coq8.13".rev       = "v1.2.4-8.13";
     release."1.2.4+coq8.13".sha256    = "0i014lshsdflzw6h0qxra9d2f0q82vffxv2f29awbb9ad0p4rq4q";
+    release."1.3-8.13".rev            = "v1.3-8.13";
+    release."1.3-8.13".sha256         = "1jwjbkkkk4bwf6pz4zzz8fy5bb17aqyf4smkja59rgj9ya6nrdhg";
     release."1.3-8.14".rev            = "v1.3-8.14";
     release."1.3-8.14".sha256         = "19bj9nncd1r9g4273h5qx35gs3i4bw5z9bhjni24b413hyj55hkv";
 
diff --git a/pkgs/development/coq-modules/gappalib/default.nix b/pkgs/development/coq-modules/gappalib/default.nix
index cd5aaa49025e1..440c9395a37f2 100644
--- a/pkgs/development/coq-modules/gappalib/default.nix
+++ b/pkgs/development/coq-modules/gappalib/default.nix
@@ -6,7 +6,7 @@ with lib; mkCoqDerivation {
   owner = "gappa";
   domain = "gitlab.inria.fr";
   inherit version;
-  defaultVersion = if versions.isGe "8.8" coq.coq-version then "1.5.0" else null;
+  defaultVersion = if versions.range "8.8" "8.14" coq.coq-version then "1.5.0" else null;
   release."1.5.0".sha256 = "1i1c0gakffxqqqqw064cbvc243yl325hxd50jmczr6mk18igk41n";
   release."1.4.5".sha256 = "081hib1d9wfm29kis390qsqch8v6fs3q71g2rgbbzx5y5cf48n9k";
   release."1.4.4".sha256 = "114q2hgw64j6kqa9mg3qcp1nlf0ia46z2xadq81fnkxqm856ml7l";
diff --git a/pkgs/development/coq-modules/graph-theory/default.nix b/pkgs/development/coq-modules/graph-theory/default.nix
index 5607d342a2eb2..6374ede7970b6 100644
--- a/pkgs/development/coq-modules/graph-theory/default.nix
+++ b/pkgs/development/coq-modules/graph-theory/default.nix
@@ -12,7 +12,7 @@ mkCoqDerivation {
 
   inherit version;
   defaultVersion = with versions; switch coq.coq-version [
-    { case = isGe "8.13"; out = "0.9"; }
+    { case = range "8.13" "8.14"; out = "0.9"; }
   ] null;
 
   propagatedBuildInputs = [ mathcomp-algebra mathcomp-finmap hierarchy-builder ];
diff --git a/pkgs/development/coq-modules/interval/default.nix b/pkgs/development/coq-modules/interval/default.nix
index 12fe66b50da6b..117eafae92399 100644
--- a/pkgs/development/coq-modules/interval/default.nix
+++ b/pkgs/development/coq-modules/interval/default.nix
@@ -6,7 +6,7 @@ mkCoqDerivation rec {
   domain = "gitlab.inria.fr";
   inherit version;
   defaultVersion = with lib.versions; lib.switch coq.coq-version [
-    { case = isGe "8.8" ;        out = "4.3.0"; }
+    { case = range "8.8" "8.14"; out = "4.3.0"; }
     { case = range "8.8" "8.12"; out = "4.0.0"; }
     { case = range "8.7" "8.11"; out = "3.4.2"; }
     { case = range "8.5" "8.6";  out = "3.3.0"; }
diff --git a/pkgs/development/coq-modules/iris/default.nix b/pkgs/development/coq-modules/iris/default.nix
index 606b4b11f44f7..4fceb7a2fd94b 100644
--- a/pkgs/development/coq-modules/iris/default.nix
+++ b/pkgs/development/coq-modules/iris/default.nix
@@ -6,7 +6,7 @@ with lib; mkCoqDerivation rec {
   owner = "iris";
   inherit version;
   defaultVersion = with versions; switch coq.coq-version [
-    { case = isGe "8.14"; out = "3.5.0"; }
+    { case = isEq "8.14"; out = "3.5.0"; }
     { case = range "8.11" "8.13"; out = "3.4.0"; }
     { case = range "8.9"  "8.10"; out = "3.3.0"; }
   ] null;
diff --git a/pkgs/development/coq-modules/mathcomp-bigenough/default.nix b/pkgs/development/coq-modules/mathcomp-bigenough/default.nix
index 296bd738928fa..2283d5ef17336 100644
--- a/pkgs/development/coq-modules/mathcomp-bigenough/default.nix
+++ b/pkgs/development/coq-modules/mathcomp-bigenough/default.nix
@@ -6,9 +6,15 @@ with lib; mkCoqDerivation {
   pname = "bigenough";
   owner = "math-comp";
 
-  release = { "1.0.0".sha256 = "10g0gp3hk7wri7lijkrqna263346wwf6a3hbd4qr9gn8hmsx70wg"; };
+  release = {
+    "1.0.0".sha256 = "10g0gp3hk7wri7lijkrqna263346wwf6a3hbd4qr9gn8hmsx70wg";
+    "1.0.1".sha256 = "sha256:02f4dv4rz72liciwxb2k7acwx6lgqz4381mqyq5854p3nbyn06aw";
+  };
   inherit version;
-  defaultVersion = "1.0.0";
+  defaultVersion = with versions; switch coq.version [
+    { case = range "8.10" "8.15"; out = "1.0.1"; }
+    { case = range "8.5"  "8.14"; out = "1.0.0"; }
+  ] null;
 
   propagatedBuildInputs = [ mathcomp.ssreflect ];
 
diff --git a/pkgs/development/coq-modules/mathcomp-word/default.nix b/pkgs/development/coq-modules/mathcomp-word/default.nix
new file mode 100644
index 0000000000000..b7f613ccfcc1b
--- /dev/null
+++ b/pkgs/development/coq-modules/mathcomp-word/default.nix
@@ -0,0 +1,27 @@
+{ coq, mkCoqDerivation, mathcomp, lib, version ? null }:
+
+with lib;
+mkCoqDerivation {
+  namePrefix = [ "coq" "mathcomp" ];
+  pname = "word";
+  owner = "jasmin-lang";
+  repo = "coqword";
+  useDune2 = true;
+
+  releaseRev = v: "v${v}";
+
+  release."1.0".sha256 = "sha256:0703m97rnivcbc7vvbd9rl2dxs6l8n52cbykynw61c6w9rhxspcg";
+
+  inherit version;
+  defaultVersion = with versions; switch [ coq.version mathcomp.version ] [
+    { cases = [ (range "8.12" "8.14") (range "1.12" "1.13") ]; out = "1.0"; }
+  ] null;
+
+  propagatedBuildInputs = [ mathcomp.algebra ];
+
+  meta = {
+    description = "Yet Another Coq Library on Machine Words";
+    maintainers = [ maintainers.vbgl ];
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/coq-modules/paco/default.nix b/pkgs/development/coq-modules/paco/default.nix
index 0a8bb78eeb70a..81455ba168d90 100644
--- a/pkgs/development/coq-modules/paco/default.nix
+++ b/pkgs/development/coq-modules/paco/default.nix
@@ -5,9 +5,13 @@ with lib; mkCoqDerivation {
   owner = "snu-sf";
   inherit version;
   defaultVersion = with versions; switch coq.coq-version [
+    { case = range "8.12" "8.15"; out = "4.1.2"; }
+    { case = range "8.9" "8.13"; out = "4.1.1"; }
     { case = range "8.6" "8.13"; out = "4.0.2"; }
     { case = isEq "8.5";         out = "1.2.8"; }
   ] null;
+  release."4.1.2".sha256 = "sha256:1l8mwakqp4wnppsldl8wp2j24h1jvadnvrsgf35xnvdyygypjp2v";
+  release."4.1.1".sha256 = "1qap8cyv649lr1s11r7h5jzdjd4hsna8kph15qy5fw24h5nx6byy";
   release."4.0.2".sha256 = "1q96bsxclqx84xn5vkid501jkwlc1p6fhb8szrlrp82zglj58b0b";
   release."1.2.8".sha256 = "05fskx5x1qgaf9qv626m38y5izichzzqc7g2rglzrkygbskrrwsb";
   releaseRev = v: "v${v}";
diff --git a/pkgs/development/coq-modules/semantics/default.nix b/pkgs/development/coq-modules/semantics/default.nix
index 796c9dee0a40f..9b8bb10a5f269 100644
--- a/pkgs/development/coq-modules/semantics/default.nix
+++ b/pkgs/development/coq-modules/semantics/default.nix
@@ -6,6 +6,7 @@ mkCoqDerivation rec {
   owner = "coq-community";
   releaseRev = v: "v${v}";
 
+  release."8.14.0".sha256 = "sha256-TB12C3hX9XucbsXr+UL+8jM19NOFXASW/lcytwy6uVE=";
   release."8.13.0".sha256 = "sha256-8bDr/Ovl6s8BFaRcHeS5H33/K/pYdeKfSN+krVuKulQ=";
   release."8.11.1".sha256 = "sha256-jTPgcXSNn1G2mMDC7ocFcmqs8svB7Yo1emXP15iuxiU=";
   release."8.9.0".sha256 = "sha256-UBsvzlDEZsZsVkbUI0GbFEhpxnnLCiaqlqDyWVC5I6s=";
@@ -15,7 +16,7 @@ mkCoqDerivation rec {
 
   inherit version;
   defaultVersion = with versions; switch coq.coq-version [
-    { case = range "8.10" "8.13"; out = "8.13.0"; }
+    { case = range "8.10" "8.14"; out = "8.14.0"; }
     { case = "8.9"; out = "8.9.0"; }
     { case = "8.8"; out = "8.8.0"; }
     { case = "8.7"; out = "8.7.0"; }
diff --git a/pkgs/development/coq-modules/serapi/default.nix b/pkgs/development/coq-modules/serapi/default.nix
index f70cdcc9322a5..383151a1cb5e7 100644
--- a/pkgs/development/coq-modules/serapi/default.nix
+++ b/pkgs/development/coq-modules/serapi/default.nix
@@ -15,6 +15,7 @@ let
       });
 
   release = {
+    "8.14.0+0.14.0".sha256 = "sha256:1kh80yb791yl771qbqkvwhbhydfii23a7lql0jgifvllm2k8hd8d";
     "8.14+rc1+0.14.0".sha256 = "1w7d7anvcfx8vz51mnrf1jkw6rlpzjkjlr06avf58wlhymww7pja";
     "8.13.0+0.13.0".sha256 = "0k69907xn4k61w4mkhwf8kh8drw9pijk9ynijsppihw98j8w38fy";
     "8.12.0+0.12.1".sha256 = "048x3sgcq4h845hi6hm4j4dsfca8zfj70dm42w68n63qcm6xf9hn";
@@ -27,8 +28,11 @@ in
   pname = "serapi";
   inherit version release;
 
-  defaultVersion =  with versions; switch coq.version [
-      { case = isEq "8.14"; out = "8.14+rc1+0.14.0"; }
+  defaultVersion =  with versions;
+    if isGe "4.12" coq.ocamlPackages.ocaml.version then null
+    else
+    switch coq.version [
+      { case = isEq "8.14"; out = "8.14.0+0.14.0"; }
       { case = isEq "8.13"; out = "8.13.0+0.13.0"; }
       { case = isEq "8.12"; out = "8.12.0+0.12.1"; }
       { case = isEq "8.11"; out = "8.11.0+0.11.1"; }
diff --git a/pkgs/development/coq-modules/stdpp/default.nix b/pkgs/development/coq-modules/stdpp/default.nix
index 0c9c4fb49c8ee..097293d581613 100644
--- a/pkgs/development/coq-modules/stdpp/default.nix
+++ b/pkgs/development/coq-modules/stdpp/default.nix
@@ -6,7 +6,7 @@ with lib; mkCoqDerivation rec {
   domain = "gitlab.mpi-sws.org";
   owner = "iris";
   defaultVersion = with versions; switch coq.coq-version [
-    { case = isGe "8.14"; out = "1.6.0"; }
+    { case = isEq "8.14"; out = "1.6.0"; }
     { case = range "8.11" "8.13"; out = "1.5.0"; }
     { case = range "8.8" "8.10";  out = "1.4.0"; }
   ] null;
diff --git a/pkgs/development/dhall-modules/dhall-grafana.nix b/pkgs/development/dhall-modules/dhall-grafana.nix
index f06a994a9a4c2..d91b9c21895d0 100644
--- a/pkgs/development/dhall-modules/dhall-grafana.nix
+++ b/pkgs/development/dhall-modules/dhall-grafana.nix
@@ -1,4 +1,4 @@
-{ dhallPackages, buildDhallGitHubPackage }:
+{ buildDhallGitHubPackage, Prelude }:
 
 buildDhallGitHubPackage {
   name = "grafana";
@@ -7,5 +7,5 @@ buildDhallGitHubPackage {
   # 2021-11-12
   rev = "d5630dc55deacf5100a99802a4df1d9680b263b3";
   sha256 = "01320hpqgr5r4grsydmdl9yznmly1ssnlc9gcwa8rj1ah0a8xlgz";
-  dependencies = [ dhallPackages.Prelude ];
+  dependencies = [ Prelude ];
 }
diff --git a/pkgs/development/dotnet-modules/python-language-server/create_deps.sh b/pkgs/development/dotnet-modules/python-language-server/create_deps.sh
deleted file mode 100755
index 37f0585d1fef2..0000000000000
--- a/pkgs/development/dotnet-modules/python-language-server/create_deps.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#! /usr/bin/env nix-shell
-#! nix-shell -p python3 dotnet-sdk_3 -i bash
-
-# Run this script to generate deps.nix
-# ./create_deps.sh /path/to/microsoft/python/language/server/source/checkout
-
-set -euo pipefail
-
-SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
-
-if [ -d "$1" ]; then
-    CHECKOUT_PATH="$1"
-else
-    echo "First argument must be a directory, the path to the Microsoft Python Language Server source checkout"
-    exit 1
-fi
-
-# Generate lockfiles in source checkout
-cd "$CHECKOUT_PATH/src"
-dotnet nuget locals all --clear
-dotnet restore -v normal --no-cache PLS.sln --use-lock-file -r linux-x64
-
-# Use the lockfiles to make a file with two columns: name and version number
-# for all possible package dependencies
-cd "$SCRIPTDIR"
-echo "" > all_versions.txt
-for lockfile in $(find "$CHECKOUT_PATH" -name packages.lock.json); do
-    echo "Processing lockfile $lockfile"
-    python ./process_lockfile.py "$lockfile" >> all_versions.txt
-done
-# Add extra manually added packages
-cat ./manual_deps.txt >> all_versions.txt
-cat all_versions.txt | sed '/^$/d' | sort | uniq > tmp
-mv tmp all_versions.txt
-
-# Retrieve sha256 hashes for each dependency and format fetchNuGet calls into deps.nix
-./format-deps.sh all_versions.txt > deps.nix
-rm all_versions.txt
diff --git a/pkgs/development/dotnet-modules/python-language-server/default.nix b/pkgs/development/dotnet-modules/python-language-server/default.nix
index 0af98bbfc07a3..420475806a0e0 100644
--- a/pkgs/development/dotnet-modules/python-language-server/default.nix
+++ b/pkgs/development/dotnet-modules/python-language-server/default.nix
@@ -1,105 +1,39 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
-, fetchurl
-, makeWrapper
-, dotnet-sdk_3
+, buildDotnetModule
+, dotnetCorePackages
+, autoPatchelfHook
 , openssl
 , icu
-, patchelf
-, Nuget
 }:
 
-let deps = import ./deps.nix { inherit fetchurl; };
-    version = "2021-05-20";
-
-    # Build the nuget source needed for the later build all by itself
-    # since it's a time-consuming step that only depends on ./deps.nix.
-    # This makes it easier to experiment with the main build.
-    nugetSource = stdenv.mkDerivation {
-      pname = "python-language-server-nuget-deps";
-      inherit version;
-
-      dontUnpack = true;
-
-      nativeBuildInputs = [ Nuget ];
-
-      buildPhase = ''
-        export HOME=$(mktemp -d)
-
-        mkdir -p $out/lib
-
-        # disable default-source so nuget does not try to download from online-repo
-        nuget sources Disable -Name "nuget.org"
-        # add all dependencies to the source
-        for package in ${toString deps}; do
-          nuget add $package -Source $out/lib
-        done
-      '';
-
-      dontInstall = true;
-    };
-
-in
-
-stdenv.mkDerivation {
+buildDotnetModule rec {
   pname = "python-language-server";
-  inherit version;
+  version = "2021-09-08";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "python-language-server";
-    rev = "86825796eae15d4d46919bc6e32f1197196ba1b3";
-    sha256 = "sha256-izDE7Oil9g47Jf3eHPtW5coNixF71t9i0oYSuelakCo=";
+    rev = "26ea18997f45f7d7bc5a3c5a9efc723a8dbb02fa";
+    sha256 = "1m8pf9k20wy4fzv27v3bswvc8s01ag6ka2qm9nn6bgq0s0lq78mh";
   };
 
-  buildInputs = [dotnet-sdk_3 openssl icu];
-
-  nativeBuildInputs = [
-    Nuget
-    makeWrapper
-    patchelf
-  ];
+  projectFile = "src/LanguageServer/Impl/Microsoft.Python.LanguageServer.csproj";
+  nugetDeps = ./deps.nix;
 
-  buildPhase = ''
-    runHook preBuild
+  dotnet-sdk = dotnetCorePackages.sdk_3_1;
+  dotnet-runtime = dotnetCorePackages.runtime_3_1;
 
-    mkdir home
-    export HOME=$(mktemp -d)
-    export DOTNET_CLI_TELEMETRY_OPTOUT=1
-    export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
-
-    pushd src
-    nuget sources Disable -Name "nuget.org"
-    dotnet restore --source ${nugetSource}/lib -r linux-x64
-    popd
-
-    pushd src/LanguageServer/Impl
-    dotnet publish --no-restore -c Release -r linux-x64
-    popd
-
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out
-    cp -r output/bin/Release/linux-x64/publish $out/lib
-
-    mkdir $out/bin
-    makeWrapper $out/lib/Microsoft.Python.LanguageServer $out/bin/python-language-server
-
-    runHook postInstall
-  '';
+  nativeBuildInputs = [ autoPatchelfHook ];
+  buildInputs = [ stdenv.cc.cc.lib ];
+  runtimeDeps = [ openssl icu ];
 
   postFixup = ''
-    patchelf --set-rpath ${icu}/lib $out/lib/System.Globalization.Native.so
-    patchelf --set-rpath ${openssl.out}/lib $out/lib/System.Security.Cryptography.Native.OpenSsl.so
+    mv $out/bin/Microsoft.Python.LanguageServer $out/bin/python-language-server
   '';
 
-  # If we don't disable stripping, the executable fails to start with an error about being unable
-  # to find some of the packaged DLLs.
-  dontStrip = true;
+  passthru.updateScript = ./updater.sh;
 
   meta = with lib; {
     description = "Microsoft Language Server for Python";
diff --git a/pkgs/development/dotnet-modules/python-language-server/deps.nix b/pkgs/development/dotnet-modules/python-language-server/deps.nix
index 7a15a5f384fd9..1a1ac569bb2ab 100644
--- a/pkgs/development/dotnet-modules/python-language-server/deps.nix
+++ b/pkgs/development/dotnet-modules/python-language-server/deps.nix
@@ -1,1231 +1,121 @@
-# This file is autogenerated.
-# To regenerate, run "create_deps.sh $PATH_TO_LANGUAGE_SERVER_CHECKOUT"
-
-{ fetchurl }: let
-
-  fetchNuGet = { name, version, sha256 }: fetchurl {
-    inherit sha256;
-    url = "https://www.nuget.org/api/v2/package/${name}/${version}";
-  };
-
-in [
-
-  (fetchNuGet {
-    name = "Ben.Demystifier";
-    version = "0.1.6";
-    sha256 = "03rk7imb2k3iass507rkr9chdnyk4h8ppyf20cdz3c2m3v1a5k9n";
-  })
-
-  (fetchNuGet {
-    name = "Castle.Core";
-    version = "4.4.0";
-    sha256 = "0rpcbmyhckvlvp6vbzpj03c1gqz56ixc6f15vgmxmyf1g40c24pf";
-  })
-
-  (fetchNuGet {
-    name = "FluentAssertions";
-    version = "5.9.0";
-    sha256 = "11mpnl6aar2yn7l6b1k4m3rdnl82ydmqbsja4rn84dhz1qdzfp8x";
-  })
-
-  (fetchNuGet {
-    name = "MessagePack";
-    version = "2.1.90";
-    sha256 = "1j5wjl7aq7nn5ga3j6zaaivdf2wlfyd7w66ak0i7krgrmv26lb8i";
-  })
-
-  (fetchNuGet {
-    name = "MessagePack.Annotations";
-    version = "2.1.90";
-    sha256 = "08sghhwbz8h7ji9lg0klhwcyndxg6v11pq9jac975sb38samnm11";
-  })
-
-  (fetchNuGet {
-    name = "MicroBuild.Core";
-    version = "0.3.0";
-    sha256 = "190d755l60j3l5m1661wj19gj9w6ngza56q3vkijkkmbbabdmqln";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
-    version = "3.1.21";
-    sha256 = "056g9nv8a7n8zdbgzmyzmn3pbg52yq2kv5d1rcp7h6plwzgpiwql";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.Bcl.AsyncInterfaces";
-    version = "1.0.0";
-    sha256 = "00dx5armvkqjxvkldz3invdlck9nj7w21dlsr2aqp1rqbyrbsbbh";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.CodeCoverage";
-    version = "16.7.1";
-    sha256 = "1farw63445cdyciplfs6l9j1gayxw16rkzmrwsiswfyjhqz70xd4";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.CSharp";
-    version = "4.0.1";
-    sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.Extensions.FileSystemGlobbing";
-    version = "3.1.8";
-    sha256 = "1v2lr0vbssqayzgxvdwb54jmvz7mvlih4l9h7i71gm3c62nlbq8y";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NetCore.App.Runtime.linux-x64";
-    version = "3.1.21";
-    sha256 = "13692wqcww0w6x4nhyxpxwprdg6mx9xmlvv38m6fvp6g0m27r43v";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
-    version = "1.1.0";
-    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
-    version = "1.1.1";
-    sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
-    version = "3.0.0";
-    sha256 = "1bk8r4r3ihmi6322jmcag14jmw11mjqys202azqjzglcx59pxh51";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
-    version = "3.1.0";
-    sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NETCore.Targets";
-    version = "1.1.0";
-    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NET.Test.Sdk";
-    version = "16.7.1";
-    sha256 = "0yqxipj74ax2n76w9ccydppx78ym8m5fda88qnvj4670qjvl0kf8";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.TestPlatform.ObjectModel";
-    version = "16.7.1";
-    sha256 = "0s9dyh99gzdpk1i5v468i2r9m6i3jrr41r394pwdwiajsz99kay0";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.TestPlatform.TestHost";
-    version = "16.7.1";
-    sha256 = "1xik06rxn9ps83in0zn9vcl2ibv3acmdqvrx07qq89lxj1sgqlhs";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.VisualStudio.Threading";
-    version = "16.5.132";
-    sha256 = "05lngndl6hg4v3vk9l1n1g2lbfjb7jnr5dnkjld9wx3vamdfcfxw";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.VisualStudio.Threading";
-    version = "16.6.13";
-    sha256 = "0qbvcwy7njz5zpqgfqdf41gf9xqcz64z4rkfjf6bi4zynpkv6n1l";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.VisualStudio.Threading.Analyzers";
-    version = "16.6.13";
-    sha256 = "09nqkjnarwj0chb6xrzscq98mpgi86n2a3mfdd3y695kviq99s18";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.VisualStudio.Validation";
-    version = "15.5.31";
-    sha256 = "1ah99rn922qa0sd2k3h64m324f2r32pw8cn4cfihgvwx4qdrpmgw";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.Win32.Primitives";
-    version = "4.3.0";
-    sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.Win32.Registry";
-    version = "4.6.0";
-    sha256 = "0i4y782yrqqyx85pg597m20gm0v126w0j9ddk5z7xb3crx4z9f2s";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.Win32.Registry";
-    version = "4.7.0";
-    sha256 = "0bx21jjbs7l5ydyw4p6cn07chryxpmchq2nl5pirzz4l3b0q4dgs";
-  })
-
-  (fetchNuGet {
-    name = "MSTest.TestAdapter";
-    version = "2.1.2";
-    sha256 = "1390nyc0sf5c4j75cq58bzqjcw77sp2lmpllmm5sp8ysi0fjyfs5";
-  })
-
-  (fetchNuGet {
-    name = "MSTest.TestFramework";
-    version = "2.1.2";
-    sha256 = "1617q2accpa8fwy9n1snmjxyx2fz3phks62mdi45cl65kdin0x4z";
-  })
-
-  (fetchNuGet {
-    name = "Nerdbank.Streams";
-    version = "2.5.76";
-    sha256 = "017h8m1zrm247alhlz4vqsz580b8b88s50cyxb939hmc2nn0qlfv";
-  })
-
-  (fetchNuGet {
-    name = "NETStandard.Library";
-    version = "1.6.1";
-    sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
-  })
-
-  (fetchNuGet {
-    name = "NETStandard.Library";
-    version = "2.0.3";
-    sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
-  })
-
-  (fetchNuGet {
-    name = "Newtonsoft.Json";
-    version = "12.0.2";
-    sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
-  })
-
-  (fetchNuGet {
-    name = "Newtonsoft.Json";
-    version = "12.0.3";
-    sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x";
-  })
-
-  (fetchNuGet {
-    name = "NewtonSoft.Json";
-    version = "12.0.3";
-    sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x";
-  })
-
-  (fetchNuGet {
-    name = "Newtonsoft.Json";
-    version = "9.0.1";
-    sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r";
-  })
-
-  (fetchNuGet {
-    name = "NSubstitute";
-    version = "4.2.2";
-    sha256 = "1zi1z5i61c2nq8p3jwbkca28yaannrvv6g6q5mmz1775apmfyh79";
-  })
-
-  (fetchNuGet {
-    name = "NuGet.Frameworks";
-    version = "5.0.0";
-    sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Collections";
-    version = "4.3.0";
-    sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Diagnostics.Tools";
-    version = "4.3.0";
-    sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Diagnostics.Tracing";
-    version = "4.3.0";
-    sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Globalization";
-    version = "4.3.0";
-    sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Globalization.Calendars";
-    version = "4.3.0";
-    sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.IO";
-    version = "4.3.0";
-    sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Reflection";
-    version = "4.3.0";
-    sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Reflection.Extensions";
-    version = "4.3.0";
-    sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Reflection.Primitives";
-    version = "4.3.0";
-    sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Resources.ResourceManager";
-    version = "4.3.0";
-    sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Runtime";
-    version = "4.3.0";
-    sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Runtime.Handles";
-    version = "4.3.0";
-    sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Runtime.InteropServices";
-    version = "4.3.0";
-    sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Text.Encoding";
-    version = "4.3.0";
-    sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Text.Encoding.Extensions";
-    version = "4.3.0";
-    sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Threading.Tasks";
-    version = "4.3.0";
-    sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Threading.Timer";
-    version = "4.3.0";
-    sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086";
-  })
-
-  (fetchNuGet {
-    name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
-  })
-
-  (fetchNuGet {
-    name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i";
-  })
-
-  (fetchNuGet {
-    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
-  })
-
-  (fetchNuGet {
-    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "1n06gxwlinhs0w7s8a94r1q3lwqzvynxwd3mp10ws9bg6gck8n4r";
-  })
-
-  (fetchNuGet {
-    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
-  })
-
-  (fetchNuGet {
-    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "0404wqrc7f2yc0wxv71y3nnybvqx8v4j9d47hlscxy759a525mc3";
-  })
-
-  (fetchNuGet {
-    name = "runtime.native.System";
-    version = "4.3.0";
-    sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
-  })
-
-  (fetchNuGet {
-    name = "runtime.native.System.IO.Compression";
-    version = "4.3.0";
-    sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d";
-  })
-
-  (fetchNuGet {
-    name = "runtime.native.System.Net.Http";
-    version = "4.3.0";
-    sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk";
-  })
-
-  (fetchNuGet {
-    name = "runtime.native.System.Security.Cryptography.Apple";
-    version = "4.3.0";
-    sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q";
-  })
-
-  (fetchNuGet {
-    name = "runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
-  })
-
-  (fetchNuGet {
-    name = "runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "0zy5r25jppz48i2bkg8b9lfig24xixg6nm3xyr1379zdnqnpm8f6";
-  })
-
-  (fetchNuGet {
-    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
-  })
-
-  (fetchNuGet {
-    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "096ch4n4s8k82xga80lfmpimpzahd2ip1mgwdqgar0ywbbl6x438";
-  })
-
-  (fetchNuGet {
-    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
-  })
-
-  (fetchNuGet {
-    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "1dm8fifl7rf1gy7lnwln78ch4rw54g0pl5g1c189vawavll7p6rj";
-  })
-
-  (fetchNuGet {
-    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple";
-    version = "4.3.0";
-    sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi";
-  })
-
-  (fetchNuGet {
-    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3";
-  })
-
-  (fetchNuGet {
-    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "1m9z1k9kzva9n9kwinqxl97x2vgl79qhqjlv17k9s2ymcyv2bwr6";
-  })
-
-  (fetchNuGet {
-    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
-  })
-
-  (fetchNuGet {
-    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "1cpx56mcfxz7cpn57wvj18sjisvzq8b5vd9rw16ihd2i6mcp3wa1";
-  })
-
-  (fetchNuGet {
-    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
-  })
-
-  (fetchNuGet {
-    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "15gsm1a8jdmgmf8j5v1slfz8ks124nfdhk2vxs2rw3asrxalg8hi";
-  })
-
-  (fetchNuGet {
-    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
-  })
-
-  (fetchNuGet {
-    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "0q0n5q1r1wnqmr5i5idsrd9ywl33k0js4pngkwq9p368mbxp8x1w";
-  })
-
-  (fetchNuGet {
-    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
-  })
-
-  (fetchNuGet {
-    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c";
-  })
-
-  (fetchNuGet {
-    name = "runtime.unix.Microsoft.Win32.Primitives";
-    version = "4.3.0";
-    sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id";
-  })
-
-  (fetchNuGet {
-    name = "runtime.unix.System.Console";
-    version = "4.3.0";
-    sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80";
-  })
-
-  (fetchNuGet {
-    name = "runtime.unix.System.Diagnostics.Debug";
-    version = "4.3.0";
-    sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5";
-  })
-
-  (fetchNuGet {
-    name = "runtime.unix.System.IO.FileSystem";
-    version = "4.3.0";
-    sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix";
-  })
-
-  (fetchNuGet {
-    name = "runtime.unix.System.Net.Primitives";
-    version = "4.3.0";
-    sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4";
-  })
-
-  (fetchNuGet {
-    name = "runtime.unix.System.Net.Sockets";
-    version = "4.3.0";
-    sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12";
-  })
-
-  (fetchNuGet {
-    name = "runtime.unix.System.Private.Uri";
-    version = "4.3.0";
-    sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk";
-  })
-
-  (fetchNuGet {
-    name = "runtime.unix.System.Runtime.Extensions";
-    version = "4.3.0";
-    sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p";
-  })
-
-  (fetchNuGet {
-    name = "StreamJsonRpc";
-    version = "2.5.46";
-    sha256 = "0rsgxfxcfgbx1w2jhllx1cwnbj9vra6034gv4kgzahh0v5vn8shf";
-  })
-
-  (fetchNuGet {
-    name = "System.AppContext";
-    version = "4.3.0";
-    sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya";
-  })
-
-  (fetchNuGet {
-    name = "System.Buffers";
-    version = "4.3.0";
-    sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy";
-  })
-
-  (fetchNuGet {
-    name = "System.Buffers";
-    version = "4.5.0";
-    sha256 = "1ywfqn4md6g3iilpxjn5dsr0f5lx6z0yvhqp4pgjcamygg73cz2c";
-  })
-
-  (fetchNuGet {
-    name = "System.Collections";
-    version = "4.0.11";
-    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
-  })
-
-  (fetchNuGet {
-    name = "System.Collections";
-    version = "4.3.0";
-    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
-  })
-
-  (fetchNuGet {
-    name = "System.Collections.Concurrent";
-    version = "4.3.0";
-    sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8";
-  })
-
-  (fetchNuGet {
-    name = "System.Collections.Immutable";
-    version = "1.5.0";
-    sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06";
-  })
-
-  (fetchNuGet {
-    name = "System.Collections.NonGeneric";
-    version = "4.3.0";
-    sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
-  })
-
-  (fetchNuGet {
-    name = "System.Collections.Specialized";
-    version = "4.3.0";
-    sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
-  })
-
-  (fetchNuGet {
-    name = "System.ComponentModel";
-    version = "4.3.0";
-    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
-  })
-
-  (fetchNuGet {
-    name = "System.ComponentModel.Primitives";
-    version = "4.3.0";
-    sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
-  })
-
-  (fetchNuGet {
-    name = "System.ComponentModel.TypeConverter";
-    version = "4.3.0";
-    sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
-  })
-
-  (fetchNuGet {
-    name = "System.Configuration.ConfigurationManager";
-    version = "4.4.0";
-    sha256 = "1hjgmz47v5229cbzd2pwz2h0dkq78lb2wp9grx8qr72pb5i0dk7v";
-  })
-
-  (fetchNuGet {
-    name = "System.Console";
-    version = "4.3.0";
-    sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay";
-  })
-
-  (fetchNuGet {
-    name = "System.Diagnostics.Debug";
-    version = "4.0.11";
-    sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
-  })
-
-  (fetchNuGet {
-    name = "System.Diagnostics.Debug";
-    version = "4.3.0";
-    sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
-  })
-
-  (fetchNuGet {
-    name = "System.Diagnostics.DiagnosticSource";
-    version = "4.3.0";
-    sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq";
-  })
-
-  (fetchNuGet {
-    name = "System.Diagnostics.TextWriterTraceListener";
-    version = "4.3.0";
-    sha256 = "09db74f36wkwg30f7v7zhz1yhkyrnl5v6bdwljq1jdfgzcfch7c3";
-  })
-
-  (fetchNuGet {
-    name = "System.Diagnostics.Tools";
-    version = "4.3.0";
-    sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
-  })
-
-  (fetchNuGet {
-    name = "System.Diagnostics.TraceSource";
-    version = "4.3.0";
-    sha256 = "1kyw4d7dpjczhw6634nrmg7yyyzq72k75x38y0l0nwhigdlp1766";
-  })
-
-  (fetchNuGet {
-    name = "System.Diagnostics.Tracing";
-    version = "4.3.0";
-    sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4";
-  })
-
-  (fetchNuGet {
-    name = "System.Dynamic.Runtime";
-    version = "4.0.11";
-    sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
-  })
-
-  (fetchNuGet {
-    name = "System.Dynamic.Runtime";
-    version = "4.3.0";
-    sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk";
-  })
-
-  (fetchNuGet {
-    name = "System.Globalization";
-    version = "4.0.11";
-    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
-  })
-
-  (fetchNuGet {
-    name = "System.Globalization";
-    version = "4.3.0";
-    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
-  })
-
-  (fetchNuGet {
-    name = "System.Globalization.Calendars";
-    version = "4.3.0";
-    sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq";
-  })
-
-  (fetchNuGet {
-    name = "System.Globalization.Extensions";
-    version = "4.3.0";
-    sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
-  })
-
-  (fetchNuGet {
-    name = "System.IO";
-    version = "4.1.0";
-    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
-  })
-
-  (fetchNuGet {
-    name = "System.IO";
-    version = "4.3.0";
-    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
-  })
-
-  (fetchNuGet {
-    name = "System.IO.Compression";
-    version = "4.3.0";
-    sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz";
-  })
-
-  (fetchNuGet {
-    name = "System.IO.Compression.ZipFile";
-    version = "4.3.0";
-    sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar";
-  })
-
-  (fetchNuGet {
-    name = "System.IO.FileSystem";
-    version = "4.3.0";
-    sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
-  })
-
-  (fetchNuGet {
-    name = "System.IO.FileSystem.Primitives";
-    version = "4.3.0";
-    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
-  })
-
-  (fetchNuGet {
-    name = "System.IO.Pipelines";
-    version = "4.7.0";
-    sha256 = "1cx6bl2bhzp30ahy2csnwbphmlwwp840j56wgab105xc32la0mg4";
-  })
-
-  (fetchNuGet {
-    name = "System.Linq";
-    version = "4.1.0";
-    sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
-  })
-
-  (fetchNuGet {
-    name = "System.Linq";
-    version = "4.3.0";
-    sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
-  })
-
-  (fetchNuGet {
-    name = "System.Linq.Expressions";
-    version = "4.1.0";
-    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
-  })
-
-  (fetchNuGet {
-    name = "System.Linq.Expressions";
-    version = "4.3.0";
-    sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
-  })
-
-  (fetchNuGet {
-    name = "System.Memory";
-    version = "4.5.3";
-    sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a";
-  })
-
-  (fetchNuGet {
-    name = "System.Net.Http";
-    version = "4.3.0";
-    sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j";
-  })
-
-  (fetchNuGet {
-    name = "System.Net.Http";
-    version = "4.3.4";
-    sha256 = "0kdp31b8819v88l719j6my0yas6myv9d1viql3qz5577mv819jhl";
-  })
-
-  (fetchNuGet {
-    name = "System.Net.NameResolution";
-    version = "4.3.0";
-    sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq";
-  })
-
-  (fetchNuGet {
-    name = "System.Net.Primitives";
-    version = "4.3.0";
-    sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii";
-  })
-
-  (fetchNuGet {
-    name = "System.Net.Sockets";
-    version = "4.3.0";
-    sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla";
-  })
-
-  (fetchNuGet {
-    name = "System.Net.WebSockets";
-    version = "4.3.0";
-    sha256 = "1gfj800078kggcgl0xyl00a6y5k4wwh2k2qm69rjy22wbmq7fy4p";
-  })
-
-  (fetchNuGet {
-    name = "System.ObjectModel";
-    version = "4.0.12";
-    sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
-  })
-
-  (fetchNuGet {
-    name = "System.ObjectModel";
-    version = "4.3.0";
-    sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
-  })
-
-  (fetchNuGet {
-    name = "System.Private.Uri";
-    version = "4.3.0";
-    sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx";
-  })
-
-  (fetchNuGet {
-    name = "System.Reflection";
-    version = "4.1.0";
-    sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
-  })
-
-  (fetchNuGet {
-    name = "System.Reflection";
-    version = "4.3.0";
-    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
-  })
-
-  (fetchNuGet {
-    name = "System.Reflection.Emit";
-    version = "4.0.1";
-    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
-  })
-
-  (fetchNuGet {
-    name = "System.Reflection.Emit";
-    version = "4.3.0";
-    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
-  })
-
-  (fetchNuGet {
-    name = "System.Reflection.Emit";
-    version = "4.6.0";
-    sha256 = "18h375q5bn9h7swxnk4krrxym1dxmi9bm26p89xps9ygrj4q6zqw";
-  })
-
-  (fetchNuGet {
-    name = "System.Reflection.Emit.ILGeneration";
-    version = "4.0.1";
-    sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
-  })
-
-  (fetchNuGet {
-    name = "System.Reflection.Emit.ILGeneration";
-    version = "4.3.0";
-    sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
-  })
-
-  (fetchNuGet {
-    name = "System.Reflection.Emit.Lightweight";
-    version = "4.3.0";
-    sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
-  })
-
-  (fetchNuGet {
-    name = "System.Reflection.Emit.Lightweight";
-    version = "4.6.0";
-    sha256 = "0hry2k6b7kicg4zxnq0hhn0ys52711pxy7l9v5sp7gvp9cicwpgp";
-  })
-
-  (fetchNuGet {
-    name = "System.Reflection.Extensions";
-    version = "4.0.1";
-    sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
-  })
-
-  (fetchNuGet {
-    name = "System.Reflection.Extensions";
-    version = "4.3.0";
-    sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
-  })
-
-  (fetchNuGet {
-    name = "System.Reflection.Metadata";
-    version = "1.6.0";
-    sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
-  })
-
-  (fetchNuGet {
-    name = "System.Reflection.Primitives";
-    version = "4.0.1";
-    sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
-  })
-
-  (fetchNuGet {
-    name = "System.Reflection.Primitives";
-    version = "4.3.0";
-    sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
-  })
-
-  (fetchNuGet {
-    name = "System.Reflection.TypeExtensions";
-    version = "4.1.0";
-    sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
-  })
-
-  (fetchNuGet {
-    name = "System.Reflection.TypeExtensions";
-    version = "4.3.0";
-    sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
-  })
-
-  (fetchNuGet {
-    name = "System.Resources.ResourceManager";
-    version = "4.0.1";
-    sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
-  })
-
-  (fetchNuGet {
-    name = "System.Resources.ResourceManager";
-    version = "4.3.0";
-    sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
-  })
-
-  (fetchNuGet {
-    name = "System.Runtime";
-    version = "4.1.0";
-    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
-  })
-
-  (fetchNuGet {
-    name = "System.Runtime";
-    version = "4.3.0";
-    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
-  })
-
-  (fetchNuGet {
-    name = "System.Runtime.CompilerServices.Unsafe";
-    version = "4.5.2";
-    sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi";
-  })
-
-  (fetchNuGet {
-    name = "System.Runtime.CompilerServices.Unsafe";
-    version = "4.6.0";
-    sha256 = "0xmzi2gpbmgyfr75p24rqqsba3cmrqgmcv45lsqp5amgrdwd0f0m";
-  })
-
-  (fetchNuGet {
-    name = "System.Runtime.Extensions";
-    version = "4.1.0";
-    sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
-  })
-
-  (fetchNuGet {
-    name = "System.Runtime.Extensions";
-    version = "4.3.0";
-    sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
-  })
-
-  (fetchNuGet {
-    name = "System.Runtime.Handles";
-    version = "4.3.0";
-    sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
-  })
-
-  (fetchNuGet {
-    name = "System.Runtime.InteropServices";
-    version = "4.1.0";
-    sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
-  })
-
-  (fetchNuGet {
-    name = "System.Runtime.InteropServices";
-    version = "4.3.0";
-    sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
-  })
-
-  (fetchNuGet {
-    name = "System.Runtime.InteropServices.RuntimeInformation";
-    version = "4.3.0";
-    sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
-  })
-
-  (fetchNuGet {
-    name = "System.Runtime.Numerics";
-    version = "4.3.0";
-    sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
-  })
-
-  (fetchNuGet {
-    name = "System.Runtime.Serialization.Primitives";
-    version = "4.1.1";
-    sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
-  })
-
-  (fetchNuGet {
-    name = "System.Security.AccessControl";
-    version = "4.6.0";
-    sha256 = "1wl1dyghi0qhpap1vgfhg2ybdyyhy9vc2a7dpm1xb30vfgmlkjmf";
-  })
-
-  (fetchNuGet {
-    name = "System.Security.AccessControl";
-    version = "4.7.0";
-    sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz";
-  })
-
-  (fetchNuGet {
-    name = "System.Security.Cryptography.Algorithms";
-    version = "4.3.0";
-    sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml";
-  })
-
-  (fetchNuGet {
-    name = "System.Security.Cryptography.Cng";
-    version = "4.3.0";
-    sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv";
-  })
-
-  (fetchNuGet {
-    name = "System.Security.Cryptography.Csp";
-    version = "4.3.0";
-    sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1";
-  })
-
-  (fetchNuGet {
-    name = "System.Security.Cryptography.Encoding";
-    version = "4.3.0";
-    sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32";
-  })
-
-  (fetchNuGet {
-    name = "System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc";
-  })
-
-  (fetchNuGet {
-    name = "System.Security.Cryptography.Primitives";
-    version = "4.3.0";
-    sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby";
-  })
-
-  (fetchNuGet {
-    name = "System.Security.Cryptography.ProtectedData";
-    version = "4.4.0";
-    sha256 = "1q8ljvqhasyynp94a1d7jknk946m20lkwy2c3wa8zw2pc517fbj6";
-  })
-
-  (fetchNuGet {
-    name = "System.Security.Cryptography.X509Certificates";
-    version = "4.3.0";
-    sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h";
-  })
-
-  (fetchNuGet {
-    name = "System.Security.Principal.Windows";
-    version = "4.3.0";
-    sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr";
-  })
-
-  (fetchNuGet {
-    name = "System.Security.Principal.Windows";
-    version = "4.6.0";
-    sha256 = "1jmfzfz1n8hp63s5lja5xxpzkinbp6g59l3km9h8avjiisdrg5wm";
-  })
-
-  (fetchNuGet {
-    name = "System.Security.Principal.Windows";
-    version = "4.7.0";
-    sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d";
-  })
-
-  (fetchNuGet {
-    name = "System.Text.Encoding";
-    version = "4.0.11";
-    sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
-  })
-
-  (fetchNuGet {
-    name = "System.Text.Encoding";
-    version = "4.3.0";
-    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
-  })
-
-  (fetchNuGet {
-    name = "System.Text.Encoding.Extensions";
-    version = "4.0.11";
-    sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
-  })
-
-  (fetchNuGet {
-    name = "System.Text.Encoding.Extensions";
-    version = "4.3.0";
-    sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
-  })
-
-  (fetchNuGet {
-    name = "System.Text.RegularExpressions";
-    version = "4.1.0";
-    sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
-  })
-
-  (fetchNuGet {
-    name = "System.Text.RegularExpressions";
-    version = "4.3.0";
-    sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
-  })
-
-  (fetchNuGet {
-    name = "System.Threading";
-    version = "4.0.11";
-    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
-  })
-
-  (fetchNuGet {
-    name = "System.Threading";
-    version = "4.3.0";
-    sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
-  })
-
-  (fetchNuGet {
-    name = "System.Threading.Tasks";
-    version = "4.0.11";
-    sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
-  })
-
-  (fetchNuGet {
-    name = "System.Threading.Tasks";
-    version = "4.3.0";
-    sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
-  })
-
-  (fetchNuGet {
-    name = "System.Threading.Tasks.Dataflow";
-    version = "4.9.0";
-    sha256 = "1g6s9pjg4z8iy98df60y9a01imdqy59zd767vz74rrng78jl2dk5";
-  })
-
-  (fetchNuGet {
-    name = "System.Threading.Tasks.Extensions";
-    version = "4.3.0";
-    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
-  })
-
-  (fetchNuGet {
-    name = "System.Threading.Tasks.Extensions";
-    version = "4.5.3";
-    sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i";
-  })
-
-  (fetchNuGet {
-    name = "System.Threading.ThreadPool";
-    version = "4.3.0";
-    sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1";
-  })
-
-  (fetchNuGet {
-    name = "System.Threading.Timer";
-    version = "4.3.0";
-    sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56";
-  })
-
-  (fetchNuGet {
-    name = "System.ValueTuple";
-    version = "4.5.0";
-    sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy";
-  })
-
-  (fetchNuGet {
-    name = "System.Xml.ReaderWriter";
-    version = "4.0.11";
-    sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
-  })
-
-  (fetchNuGet {
-    name = "System.Xml.ReaderWriter";
-    version = "4.3.0";
-    sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
-  })
-
-  (fetchNuGet {
-    name = "System.Xml.XDocument";
-    version = "4.0.11";
-    sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
-  })
-
-  (fetchNuGet {
-    name = "System.Xml.XDocument";
-    version = "4.3.0";
-    sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
-  })
-
-  (fetchNuGet {
-    name = "System.Xml.XmlDocument";
-    version = "4.3.0";
-    sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
-  })
-
+{ fetchNuGet }: [
+  (fetchNuGet { pname = "MessagePack"; version = "2.1.90"; sha256 = "1j5wjl7aq7nn5ga3j6zaaivdf2wlfyd7w66ak0i7krgrmv26lb8i"; })
+  (fetchNuGet { pname = "MessagePack.Annotations"; version = "2.1.90"; sha256 = "08sghhwbz8h7ji9lg0klhwcyndxg6v11pq9jac975sb38samnm11"; })
+  (fetchNuGet { pname = "MicroBuild.Core"; version = "0.3.0"; sha256 = "190d755l60j3l5m1661wj19gj9w6ngza56q3vkijkkmbbabdmqln"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "3.1.21"; sha256 = "056g9nv8a7n8zdbgzmyzmn3pbg52yq2kv5d1rcp7h6plwzgpiwql"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "3.1.21"; sha256 = "0akdzi35497v8yxr3a9q1g26cnx9vxnwv81kwxi293jklwnx8gsr"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "3.1.21"; sha256 = "16kya6xvi7k42sr8bxgpbz9116dj7g3i18ylpvji9qngdx41891v"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "3.1.21"; sha256 = "0rd3w3i6fzwhi71jcr8i0mchgfgpp1a0qhancg4dxsva032as4s6"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.0.0"; sha256 = "00dx5armvkqjxvkldz3invdlck9nj7w21dlsr2aqp1rqbyrbsbbh"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileSystemGlobbing"; version = "3.1.8"; sha256 = "1v2lr0vbssqayzgxvdwb54jmvz7mvlih4l9h7i71gm3c62nlbq8y"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.21"; sha256 = "1s5g9gk0hvs268q2zpc32m0my2m2ivlmsmza86797a9vkxr6pzw6"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "3.1.21"; sha256 = "0dl4yakfmdkx6xr18f09cdnl11b4fyp23jg3msr8a25zqdqvcr29"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "3.1.21"; sha256 = "1l5wh5c9bgnzph07cd72q08mr87lsczwl0vy0rzrsi7xpzryvw7l"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "3.1.21"; sha256 = "13692wqcww0w6x4nhyxpxwprdg6mx9xmlvv38m6fvp6g0m27r43v"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "3.1.21"; sha256 = "1p7fpcmx4m2374zjfh53i3mv4lkr8xrkz5lnawv95s7j005m07pc"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "3.1.21"; sha256 = "02zgxzf8l607mh17900n7msga0yfcnqgd70rj1rlwj23plifykx1"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "3.1.21"; sha256 = "1gsrajdhlyndwb0s1c03cbm7wh1yfiwpk075nrlfvicbc4m7h347"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.1"; sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "3.0.0"; sha256 = "1bk8r4r3ihmi6322jmcag14jmw11mjqys202azqjzglcx59pxh51"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Threading"; version = "16.6.13"; sha256 = "0qbvcwy7njz5zpqgfqdf41gf9xqcz64z4rkfjf6bi4zynpkv6n1l"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Threading.Analyzers"; version = "16.6.13"; sha256 = "09nqkjnarwj0chb6xrzscq98mpgi86n2a3mfdd3y695kviq99s18"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Validation"; version = "15.5.31"; sha256 = "1ah99rn922qa0sd2k3h64m324f2r32pw8cn4cfihgvwx4qdrpmgw"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.6.0"; sha256 = "0i4y782yrqqyx85pg597m20gm0v126w0j9ddk5z7xb3crx4z9f2s"; })
+  (fetchNuGet { pname = "Nerdbank.Streams"; version = "2.5.76"; sha256 = "017h8m1zrm247alhlz4vqsz580b8b88s50cyxb939hmc2nn0qlfv"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.3"; sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x"; })
+  (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
+  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
+  (fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
+  (fetchNuGet { pname = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; })
+  (fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; })
+  (fetchNuGet { pname = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; })
+  (fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
+  (fetchNuGet { pname = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
+  (fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
+  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i"; })
+  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1n06gxwlinhs0w7s8a94r1q3lwqzvynxwd3mp10ws9bg6gck8n4r"; })
+  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0404wqrc7f2yc0wxv71y3nnybvqx8v4j9d47hlscxy759a525mc3"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
+  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0zy5r25jppz48i2bkg8b9lfig24xixg6nm3xyr1379zdnqnpm8f6"; })
+  (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "096ch4n4s8k82xga80lfmpimpzahd2ip1mgwdqgar0ywbbl6x438"; })
+  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1dm8fifl7rf1gy7lnwln78ch4rw54g0pl5g1c189vawavll7p6rj"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1m9z1k9kzva9n9kwinqxl97x2vgl79qhqjlv17k9s2ymcyv2bwr6"; })
+  (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1cpx56mcfxz7cpn57wvj18sjisvzq8b5vd9rw16ihd2i6mcp3wa1"; })
+  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "15gsm1a8jdmgmf8j5v1slfz8ks124nfdhk2vxs2rw3asrxalg8hi"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0q0n5q1r1wnqmr5i5idsrd9ywl33k0js4pngkwq9p368mbxp8x1w"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c"; })
+  (fetchNuGet { pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
+  (fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
+  (fetchNuGet { pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
+  (fetchNuGet { pname = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; })
+  (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
+  (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
+  (fetchNuGet { pname = "runtime.win.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0k1h8nnp1s0p8rjwgjyj1387cc1yycv0k22igxc963lqdzrx2z36"; })
+  (fetchNuGet { pname = "runtime.win.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "16fbn4bcynad1ygdq0yk1wmckvs8jvrrf104xa5dc2hlc8y3x58f"; })
+  (fetchNuGet { pname = "runtime.win.System.IO.FileSystem"; version = "4.3.0"; sha256 = "1c01nklbxywszsbfaxc76hsz7gdxac3jkphrywfkdsi3v4bwd6g8"; })
+  (fetchNuGet { pname = "runtime.win.System.Net.Primitives"; version = "4.3.0"; sha256 = "1dixh195bi7473n17hspll6i562gghdz9m4jk8d4kzi1mlzjk9cf"; })
+  (fetchNuGet { pname = "runtime.win.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1700famsxndccfbcdz9q14qb20p49lax67mqwpgy4gx3vja1yczr"; })
+  (fetchNuGet { pname = "StreamJsonRpc"; version = "2.5.46"; sha256 = "0rsgxfxcfgbx1w2jhllx1cwnbj9vra6034gv4kgzahh0v5vn8shf"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.5.0"; sha256 = "1ywfqn4md6g3iilpxjn5dsr0f5lx6z0yvhqp4pgjcamygg73cz2c"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.5.0"; sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
+  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
+  (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.Pipelines"; version = "4.7.0"; sha256 = "1cx6bl2bhzp30ahy2csnwbphmlwwp840j56wgab105xc32la0mg4"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
+  (fetchNuGet { pname = "System.Net.Http"; version = "4.3.4"; sha256 = "0kdp31b8819v88l719j6my0yas6myv9d1viql3qz5577mv819jhl"; })
+  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
+  (fetchNuGet { pname = "System.Net.WebSockets"; version = "4.3.0"; sha256 = "1gfj800078kggcgl0xyl00a6y5k4wwh2k2qm69rjy22wbmq7fy4p"; })
+  (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.6.0"; sha256 = "18h375q5bn9h7swxnk4krrxym1dxmi9bm26p89xps9ygrj4q6zqw"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.6.0"; sha256 = "0hry2k6b7kicg4zxnq0hhn0ys52711pxy7l9v5sp7gvp9cicwpgp"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.6.0"; sha256 = "0xmzi2gpbmgyfr75p24rqqsba3cmrqgmcv45lsqp5amgrdwd0f0m"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
+  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "4.6.0"; sha256 = "1wl1dyghi0qhpap1vgfhg2ybdyyhy9vc2a7dpm1xb30vfgmlkjmf"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.6.0"; sha256 = "1jmfzfz1n8hp63s5lja5xxpzkinbp6g59l3km9h8avjiisdrg5wm"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
+  (fetchNuGet { pname = "System.Threading.Overlapped"; version = "4.3.0"; sha256 = "1nahikhqh9nk756dh8p011j36rlcp1bzz3vwi2b4m1l2s3vz8idm"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Dataflow"; version = "4.9.0"; sha256 = "1g6s9pjg4z8iy98df60y9a01imdqy59zd767vz74rrng78jl2dk5"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.3"; sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i"; })
+  (fetchNuGet { pname = "System.ValueTuple"; version = "4.5.0"; sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"; })
 ]
diff --git a/pkgs/development/dotnet-modules/python-language-server/format-deps.sh b/pkgs/development/dotnet-modules/python-language-server/format-deps.sh
deleted file mode 100755
index c2115edb18acf..0000000000000
--- a/pkgs/development/dotnet-modules/python-language-server/format-deps.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#! /usr/bin/env nix-shell
-#! nix-shell -p gawk nix -i bash
-
-# Retrieve sha256 hashes for each dependency in and format fetchNuGet calls
-echo "" > deps.nix
-urlbase="https://www.nuget.org/api/v2/package"
-cat << EOL
-# This file is autogenerated.
-# To regenerate, run "create_deps.sh \$PATH_TO_LANGUAGE_SERVER_CHECKOUT"
-
-{ fetchurl }: let
-
-  fetchNuGet = { name, version, sha256 }: fetchurl {
-    inherit sha256;
-    url = "$urlbase/\${name}/\${version}";
-  };
-
-in [
-EOL
-IFS=''
-while read line; do
-  name=$(echo $line | awk '{print $1}')
-  version=$(echo $line | awk '{print $2}')
-  sha256=$(nix-prefetch-url "$urlbase/$name/$version" 2>/dev/null)
-
-  if [ -n "$sha256" ]; then
-    cat << EOL
-
-  (fetchNuGet {
-    name = "$name";
-    version = "$version";
-    sha256 = "$sha256";
-  })
-EOL
-  fi
-done < $1
-cat << EOL
-
-]
-EOL
diff --git a/pkgs/development/dotnet-modules/python-language-server/manual_deps.txt b/pkgs/development/dotnet-modules/python-language-server/manual_deps.txt
deleted file mode 100644
index 35afa4da80aef..0000000000000
--- a/pkgs/development/dotnet-modules/python-language-server/manual_deps.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Microsoft.AspNetCore.App.Runtime.linux-x64 3.1.21
-Microsoft.NetCore.App.Runtime.linux-x64 3.1.21
diff --git a/pkgs/development/dotnet-modules/python-language-server/process_lockfile.py b/pkgs/development/dotnet-modules/python-language-server/process_lockfile.py
deleted file mode 100755
index d67bdf048c8a1..0000000000000
--- a/pkgs/development/dotnet-modules/python-language-server/process_lockfile.py
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/python
-
-import json
-import sys
-
-
-def process_section(name, section):
-    packages = set()
-
-    if "resolved" in section:
-        packages.add((name, section["resolved"]))
-
-    if "dependencies" in section:
-        for name in section["dependencies"]:
-            packages.add((name, section["dependencies"][name]))
-
-    return packages
-
-
-def main():
-    with open(sys.argv[1], 'r') as f:
-        tree = json.loads(f.read())
-
-    packages = set()
-
-    topDependencies = tree["dependencies"]
-
-    for area in topDependencies:
-        for name in topDependencies[area]:
-            packages = packages.union(process_section(name, topDependencies[area][name]))
-
-    for (name, version) in packages:
-        print("%s %s" % (name, version))
-
-
-if __name__ == "__main__":
-    main()
diff --git a/pkgs/development/dotnet-modules/python-language-server/updater.sh b/pkgs/development/dotnet-modules/python-language-server/updater.sh
new file mode 100755
index 0000000000000..3e82ad8421326
--- /dev/null
+++ b/pkgs/development/dotnet-modules/python-language-server/updater.sh
@@ -0,0 +1,41 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p gnused jq common-updater-scripts nuget-to-nix dotnet-sdk_3 nix-prefetch-git
+set -eo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+deps_file="$(realpath ./deps.nix)"
+
+nix-prefetch-git https://github.com/microsoft/python-language-server --quiet > repo_info
+new_version="$(jq -r ".date" < repo_info | cut -d"T" -f1)"
+new_hash="$(jq -r ".sha256" < repo_info)"
+new_rev="$(jq -r ".rev" < repo_info)"
+rm repo_info
+
+old_rev="$(sed -nE 's/\s*rev = "(.*)".*/\1/p' ./default.nix)"
+
+if [[ $new_rev == $old_rev ]]; then
+  echo "Already up to date!"
+  exit 0
+fi
+
+pushd ../../../..
+
+update-source-version python-language-server "$new_version" "$new_hash" --rev="$new_rev"
+store_src="$(nix-build -A python-language-server.src --no-out-link)"
+src="$(mktemp -d /tmp/pylang-server-src.XXX)"
+cp -rT "$store_src" "$src"
+chmod -R +w "$src"
+
+pushd "$src"
+
+export DOTNET_NOLOGO=1
+export DOTNET_CLI_TELEMETRY_OPTOUT=1
+
+mkdir ./nuget_pkgs
+dotnet restore src/LanguageServer/Impl/Microsoft.Python.LanguageServer.csproj --packages ./nuget_pkgs
+
+nuget-to-nix ./nuget_pkgs > "$deps_file"
+
+trap ''
+  rm -r "$src"
+'' EXIT
diff --git a/pkgs/development/embedded/arduino/arduino-core/chrootenv.nix b/pkgs/development/embedded/arduino/arduino-core/chrootenv.nix
new file mode 100644
index 0000000000000..4c13b2493a9a4
--- /dev/null
+++ b/pkgs/development/embedded/arduino/arduino-core/chrootenv.nix
@@ -0,0 +1,36 @@
+{ lib, buildFHSUserEnv, arduino-core-unwrapped, withGui ? false, withTeensyduino ? false }:
+let
+  arduino-unwrapped = arduino-core-unwrapped.override { inherit withGui withTeensyduino; };
+in
+buildFHSUserEnv {
+  name = "arduino";
+
+  targetPkgs =
+    pkgs: (with pkgs; [
+      ncurses
+      arduino-unwrapped
+      zlib
+      (python3.withPackages (p: with p; [
+        pyserial
+      ]))
+    ]);
+  multiPkgs = null;
+
+  extraInstallCommands = ''
+    ${lib.optionalString withGui ''
+      # desktop file
+      mkdir -p $out/share/applications
+      cp ${arduino-core-unwrapped.src}/build/linux/dist/desktop.template $out/share/applications/arduino.desktop
+      substituteInPlace $out/share/applications/arduino.desktop \
+        --replace '<BINARY_LOCATION>' "$out/bin/arduino" \
+        --replace '<ICON_NAME>' "$out/share/arduino/icons/128x128/apps/arduino.png"
+      # icon file
+      mkdir -p $out/share/arduino
+      cp -r ${arduino-core-unwrapped.src}/build/shared/icons $out/share/arduino
+    ''}
+  '';
+
+  runScript = "arduino";
+
+  meta = arduino-core-unwrapped.meta;
+}
diff --git a/pkgs/development/embedded/arduino/arduino-core/default.nix b/pkgs/development/embedded/arduino/arduino-core/default.nix
index a0184eb94e580..6b2c6203a3921 100644
--- a/pkgs/development/embedded/arduino/arduino-core/default.nix
+++ b/pkgs/development/embedded/arduino/arduino-core/default.nix
@@ -11,7 +11,7 @@
 , ncurses
 , readline
 , withGui ? false
-, gtk3 ? null
+, gtk3
 , wrapGAppsHook
 , withTeensyduino ? false
   /* Packages needed for Teensyduino */
@@ -31,7 +31,6 @@
 , udev
 }:
 
-assert withGui -> gtk3 != null && wrapGAppsHook != null;
 assert withTeensyduino -> withGui;
 let
   externalDownloads = import ./downloads.nix {
@@ -70,18 +69,17 @@ let
     xorg.libXxf86vm
     zlib
   ];
-  teensy_architecture = if stdenv.hostPlatform.isx86_32 then "linux32"
-                        else if stdenv.hostPlatform.isx86_64 then "linux64"
-                        else if stdenv.hostPlatform.isAarch64 then "linuxaarch64"
-                        else if stdenv.hostPlatform.isAarch32 then "linuxarm"
-                        else throw "${stdenv.hostPlatform.system} is not supported in teensy";
-
-  flavor = (if withTeensyduino then "teensyduino" else "arduino")
-             + lib.optionalString (!withGui) "-core";
+  teensy_architecture =
+    if stdenv.hostPlatform.isx86_32 then "linux32"
+    else if stdenv.hostPlatform.isx86_64 then "linux64"
+    else if stdenv.hostPlatform.isAarch64 then "linuxaarch64"
+    else if stdenv.hostPlatform.isAarch32 then "linuxarm"
+    else throw "${stdenv.hostPlatform.system} is not supported in teensy";
+
 in
 stdenv.mkDerivation rec {
+  pname = (if withTeensyduino then "teensyduino" else "arduino") + lib.optionalString (!withGui) "-core";
   version = "1.8.16";
-  name = "${flavor}-${version}";
 
   src = fetchFromGitHub {
     owner = "arduino";
@@ -103,13 +101,12 @@ stdenv.mkDerivation rec {
   # Used because teensyduino requires jars be a specific size
   arduino_dist_src = fetchurl {
     url = "https://downloads.arduino.cc/arduino-${version}-${teensy_architecture}.tar.xz";
-    sha256 =
-      {
-        linux64 = "sha256-VK+Skl2xjqPWYEEKt1CCLwBZRxoyRfYQ3/60Byen9po=";
-        linux32 = "sha256-fjqV4avddmWAdFqMuUNUcDguxv3SI45m5QHFiWP8EKE=";
-        linuxarm = "sha256-Br8vUN7njI7VCH+ZvUh44l8LcgW+61+Q0x2AiXxIhTM=";
-        linuxaarch64 = "sha256-bOizBUUuyINg0/EqEatBq9lECT97JXxKbesCGyCA3YQ=";
-      }.${teensy_architecture} or (throw "No arduino binaries for ${teensy_architecture}");
+    sha256 = {
+      linux64 = "sha256-VK+Skl2xjqPWYEEKt1CCLwBZRxoyRfYQ3/60Byen9po=";
+      linux32 = "sha256-fjqV4avddmWAdFqMuUNUcDguxv3SI45m5QHFiWP8EKE=";
+      linuxarm = "sha256-Br8vUN7njI7VCH+ZvUh44l8LcgW+61+Q0x2AiXxIhTM=";
+      linuxaarch64 = "sha256-bOizBUUuyINg0/EqEatBq9lECT97JXxKbesCGyCA3YQ=";
+    }.${teensy_architecture} or (throw "No arduino binaries for ${teensy_architecture}");
   };
 
   # the glib setup hook will populate GSETTINGS_SCHEMAS_PATH,
@@ -157,7 +154,7 @@ stdenv.mkDerivation rec {
   javaPath = lib.makeBinPath [ jdk ];
 
   # Everything else will be patched into rpath
-  rpath = (lib.makeLibraryPath [ zlib libusb-compat-0_1 libusb1 readline ncurses5 stdenv.cc.cc ]);
+  rpath = lib.makeLibraryPath [ zlib libusb-compat-0_1 libusb1 readline ncurses5 stdenv.cc.cc ];
 
   installPhase = ''
     mkdir -p $out/share/arduino
@@ -197,8 +194,8 @@ stdenv.mkDerivation rec {
       chmod +w ./TeensyduinoInstall.${teensy_architecture}
       upx -d ./TeensyduinoInstall.${teensy_architecture}
       patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
-          --set-rpath "${teensy_libpath}" \
-          ./TeensyduinoInstall.${teensy_architecture}
+        --set-rpath "${teensy_libpath}" \
+        ./TeensyduinoInstall.${teensy_architecture}
       chmod +x ./TeensyduinoInstall.${teensy_architecture}
       ./TeensyduinoInstall.${teensy_architecture} --dir=$out/share/arduino
       # Check for successful installation
@@ -215,8 +212,8 @@ stdenv.mkDerivation rec {
 
   preFixup = ''
     for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do
-        patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true
-        patchelf --set-rpath ${rpath}:$out/lib $file || true
+      patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true
+      patchelf --set-rpath ${rpath}:$out/lib $file || true
     done
 
     ${lib.concatMapStringsSep "\n"
@@ -237,15 +234,15 @@ stdenv.mkDerivation rec {
     ${lib.optionalString withTeensyduino ''
       # Patch the Teensy loader binary
       patchelf --debug \
-          --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
-          --set-rpath "${teensy_libpath}" \
-          $out/share/arduino/hardware/tools/teensy{,_ports,_reboot,_restart,_serialmon}
+        --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+        --set-rpath "${teensy_libpath}" \
+        $out/share/arduino/hardware/tools/teensy{,_ports,_reboot,_restart,_serialmon}
     ''}
   '';
 
   meta = with lib; {
     description = "Open-source electronics prototyping platform";
-    homepage = "http://arduino.cc/";
+    homepage = "https://www.arduino.cc/";
     license = if withTeensyduino then licenses.unfreeRedistributable else licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ antono auntie robberer bjornfor bergey ];
diff --git a/pkgs/development/embedded/fpga/icestorm/default.nix b/pkgs/development/embedded/fpga/icestorm/default.nix
index 2644821529b73..b660571eb3e5f 100644
--- a/pkgs/development/embedded/fpga/icestorm/default.nix
+++ b/pkgs/development/embedded/fpga/icestorm/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
       FPGAs and providing simple tools for analyzing and
       creating bitstream files.
     '';
-    homepage    = "http://www.clifford.at/icestorm/";
+    homepage    = "https://github.com/YosysHQ/icestorm/";
     license     = lib.licenses.isc;
     maintainers = with lib.maintainers; [ shell thoughtpolice emily ];
     platforms   = lib.platforms.all;
diff --git a/pkgs/development/embedded/fpga/openfpgaloader/default.nix b/pkgs/development/embedded/fpga/openfpgaloader/default.nix
index b08c94439b9fa..b44f78c03c469 100644
--- a/pkgs/development/embedded/fpga/openfpgaloader/default.nix
+++ b/pkgs/development/embedded/fpga/openfpgaloader/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openfpgaloader";
-  version = "0.5.0";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "trabucayre";
     repo = "openFPGALoader";
     rev = "v${version}";
-    sha256 = "sha256-g1mr7S9Z70A+dXWptZPLHt90JpuclJAEDwUTicpxtic=";
+    sha256 = "sha256-gPRBHy7WVra4IlGvzrhNqbEbOQtYtUC+zQ+SnJTMvRA=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/embedded/fpga/trellis/default.nix b/pkgs/development/embedded/fpga/trellis/default.nix
index 2289b6fb6398a..32a4bcdac0734 100644
--- a/pkgs/development/embedded/fpga/trellis/default.nix
+++ b/pkgs/development/embedded/fpga/trellis/default.nix
@@ -1,25 +1,28 @@
 { lib, stdenv, fetchFromGitHub, python3, boost, cmake }:
 
 let
-  rev = "03e0070f263fbe31c247de61d259544722786210";
+  rev = "2f06397673bbca3da11928d538b8ab7d01c944c6";
   # git describe --tags
-  realVersion = "1.0-532-g${builtins.substring 0 7 rev}";
+  realVersion = "1.0-534-g${builtins.substring 0 7 rev}";
 in stdenv.mkDerivation rec {
   pname = "trellis";
-  version = "2021-09-01";
+  version = "2021-12-14";
 
   srcs = [
     (fetchFromGitHub {
        owner  = "YosysHQ";
        repo   = "prjtrellis";
        inherit rev;
-       sha256 = "joQMsjVj8d3M3IaqOkfVQ1I5qPDM8HHJiye+Ak8f3dg=";
+       hash   = "sha256-m5CalAIbzY2bhOvpBbPBeLZeDp+itk1HlRsSmtiddaA=";
        name   = "trellis";
      })
 
     (fetchFromGitHub {
       owner  = "YosysHQ";
       repo   = "prjtrellis-db";
+      # note: the upstream submodule points to revision 0ee729d20eaf,
+      # but that's just the tip of the branch that was merged into master.
+      # fdf4bf275a is the merge commit itself
       rev    = "fdf4bf275a7402654bc643db537173e2fbc86103";
       sha256 = "eDq2wU2pnfK9bOkEVZ07NQPv02Dc6iB+p5GTtVBiyQA=";
       name   = "trellis-database";
diff --git a/pkgs/development/embedded/platformio/core.nix b/pkgs/development/embedded/platformio/core.nix
index fdd9580ed1d64..31255aaca534d 100644
--- a/pkgs/development/embedded/platformio/core.nix
+++ b/pkgs/development/embedded/platformio/core.nix
@@ -9,6 +9,16 @@
 let
   python = python3.override {
     packageOverrides = self: super: {
+      aiofiles = super.aiofiles.overridePythonAttrs (oldAttrs: rec {
+        version = "0.8.0";
+        src = fetchFromGitHub {
+          owner = "Tinche";
+          repo = "aiofiles";
+          rev = "v${version}";
+          sha256 = "0mr9pzji4vqyf2yzh8yxz5q7fm8mgmkimx1xh49wh625m72pxcap";
+        };
+      });
+
       asgiref = super.asgiref.overridePythonAttrs (oldAttrs: rec {
         version = "3.4.1";
         src = fetchFromGitHub {
@@ -41,12 +51,12 @@ let
       });
 
       uvicorn = super.uvicorn.overridePythonAttrs (oldAttrs: rec {
-        version = "0.15.0";
+        version = "0.16.0";
         src = fetchFromGitHub {
           owner = "encode";
           repo = "uvicorn";
           rev = version;
-          sha256 = "074smp3448wcazlhc7sb8r54l4kfavr6yks3w5x60zl1qpijf52r";
+          sha256 = "14jih6j4q2qp5c9rgl798i5p51b4y6zkkj434q2l1naw0csphk4s";
         };
       });
     };
@@ -164,7 +174,7 @@ with python.pkgs; buildPythonApplication rec {
       --subst-var-by SPDX_LICENSE_LIST_DATA '${spdx-license-list-data}'
 
     substituteInPlace setup.py \
-      --replace "zeroconf==0.28.*" "zeroconf"
+      --replace "zeroconf==0.37.*" "zeroconf"
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/embedded/platformio/default.nix b/pkgs/development/embedded/platformio/default.nix
index ab2b989696c1c..5bbc54916369b 100644
--- a/pkgs/development/embedded/platformio/default.nix
+++ b/pkgs/development/embedded/platformio/default.nix
@@ -4,14 +4,14 @@
 let
   callPackage = newScope self;
 
-  version = "5.2.3";
+  version = "5.2.4";
 
   # pypi tarballs don't contain tests - https://github.com/platformio/platformio-core/issues/1964
   src = fetchFromGitHub {
     owner = "platformio";
     repo = "platformio-core";
     rev = "v${version}";
-    sha256 = "0wbmwawn25srkyrd6hwrgli1himzsj08vbm76fgnpqdc84n78ckl";
+    sha256 = "1dhyxrdxrca669qm6alxxn2jmvcwlpqrx9kfwh4iqy9za5717ag9";
   };
 
   self = {
diff --git a/pkgs/development/embedded/platformio/use-local-spdx-license-list.patch b/pkgs/development/embedded/platformio/use-local-spdx-license-list.patch
index e8239150f380d..b56018902858c 100644
--- a/pkgs/development/embedded/platformio/use-local-spdx-license-list.patch
+++ b/pkgs/development/embedded/platformio/use-local-spdx-license-list.patch
@@ -6,7 +6,7 @@ index 416dccfd..896c3649 100644
      @staticmethod
      @memoized(expire="1h")
      def load_spdx_licenses():
--        version = "3.14"
+-        version = "3.15"
 -        spdx_data_url = (
 -            "https://raw.githubusercontent.com/spdx/license-list-data/"
 -            "v%s/json/licenses.json" % version
diff --git a/pkgs/development/gnuradio-modules/ais/default.nix b/pkgs/development/gnuradio-modules/ais/default.nix
index 638210f8412fb..98b8229bc1aea 100644
--- a/pkgs/development/gnuradio-modules/ais/default.nix
+++ b/pkgs/development/gnuradio-modules/ais/default.nix
@@ -12,6 +12,8 @@
 , mpir
 , fftwFloat
 , icu
+, gnuradio
+, thrift
 }:
 
 mkDerivation rec {
@@ -31,6 +33,10 @@ mkDerivation rec {
     python
   ];
 
+  cmakeFlags = [
+    "-DCMAKE_EXE_LINKER_FLAGS=-pthread"
+  ];
+
   buildInputs = [
     cppunit
     osmosdr
@@ -40,6 +46,8 @@ mkDerivation rec {
     mpir
     fftwFloat
     icu
+    thrift
+    gnuradio.python.pkgs.thrift
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/gnuradio-modules/grnet/default.nix b/pkgs/development/gnuradio-modules/grnet/default.nix
new file mode 100644
index 0000000000000..568e63a77b8b2
--- /dev/null
+++ b/pkgs/development/gnuradio-modules/grnet/default.nix
@@ -0,0 +1,84 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, gnuradio
+, cmake
+, pkg-config
+, boost
+, log4cpp
+, python
+, swig
+, mpir
+, gmp
+, doxygen
+, libpcap
+, icu
+, thrift
+}:
+
+let
+  # Each GR major version requires us to pull a specific git revision of the repository
+  version = {
+    "3.7" = {
+      # Last git revision from the `maint-3.7` branch:
+      # https://github.com/ghostop14/gr-grnet/tree/maint-3.7
+      name = "unstable-2019-08-06";
+      gitHash = "beb1cd75d006a982c0a9536e923800c5a0575451";
+    };
+    "3.8" = {
+      # Last git revision from the `maint-3.8` branch:
+      # https://github.com/ghostop14/gr-grnet/tree/maint-3.8
+      name = "unstable-2020-11-20";
+      gitHash = "b02016043b67a15f27134a4f0b0d43f5d1b9ed6d";
+    };
+    "3.9" = {
+      # This revision is taken from the `master` branch.
+      name = "unstable-2020-12-30";
+      gitHash = "e6dfd140cfda715de9bcef4c1116fcacfeb0c606";
+    };
+  }.${gnuradio.versionAttr.major};
+  src = fetchFromGitHub {
+    owner = "ghostop14";
+    repo = "gr-grnet";
+    rev = "${version.gitHash}";
+    sha256 = {
+      "3.7" = "LLQ0Jf0Oapecu9gj4IgxOdK7O/OSbHnwNk000GlODxk=";
+      "3.8" = "vO8l8nV1/yEQf7pKqBbzIg4KkyCyWu+OkKgISyI3PaQ=";
+      "3.9" = "NsL7HCOQmGyexzpH2qbzv8Bq4bsfiDTNEUi96QDOA/g=";
+    }.${gnuradio.versionAttr.major};
+  };
+in
+mkDerivation {
+  pname = "gr-grnet";
+  version = version.name;
+  inherit src;
+
+  buildInputs = [
+    boost
+    log4cpp
+    doxygen
+    mpir
+    gmp
+    libpcap
+    icu
+  ] ++ (if lib.versionAtLeast gnuradio.versionAttr.major "3.9" then with python.pkgs; [
+    pybind11
+    numpy
+  ] else [
+    swig
+    thrift
+    python.pkgs.thrift
+  ]);
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  meta = with lib; {
+    description = "GNURadio TCP/UDP source and sink blocks rewritten in C++/Boost";
+    homepage = "https://github.com/ghostop14/gr-grnet";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ chuangzhu ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/go-modules/generic/default.nix b/pkgs/development/go-modules/generic/default.nix
index 3b645f9ce8b9c..f00ca1984ec88 100644
--- a/pkgs/development/go-modules/generic/default.nix
+++ b/pkgs/development/go-modules/generic/default.nix
@@ -71,6 +71,7 @@ let
     inherit (go) GOOS GOARCH;
 
     patches = args.patches or [];
+    patchFlags = args.patchFlags or [];
     preBuild = args.preBuild or "";
     sourceRoot = args.sourceRoot or "";
 
diff --git a/pkgs/development/haskell-modules/configuration-arm.nix b/pkgs/development/haskell-modules/configuration-arm.nix
index 9fc87c06a7dd8..9e95e0bdad2a1 100644
--- a/pkgs/development/haskell-modules/configuration-arm.nix
+++ b/pkgs/development/haskell-modules/configuration-arm.nix
@@ -36,6 +36,7 @@ self: super: {
 
   # Similar to https://ghc.haskell.org/trac/ghc/ticket/13062
   happy = dontCheck super.happy;
+  happy_1_19_12 = doDistribute (dontCheck super.happy_1_19_12);
 
 } // lib.optionalAttrs pkgs.stdenv.hostPlatform.isAarch64 {
   # AARCH64-SPECIFIC OVERRIDES
@@ -94,6 +95,14 @@ self: super: {
   hls-pragmas-plugin = dontCheck super.hls-pragmas-plugin;
   hls-call-hierarchy-plugin = dontCheck super.hls-call-hierarchy-plugin;
   hls-module-name-plugin = dontCheck super.hls-module-name-plugin;
+  hls-brittany-plugin = dontCheck super.hls-brittany-plugin;
+
+  # Similar RTS issue in test suite:
+  # rts/linker/elf_reloc_aarch64.c:98: encodeAddendAarch64: Assertion `isInt64(21+12, addend)' failed.
+  hls-hlint-plugin = dontCheck super.hls-hlint-plugin;
+  hls-ormolu-plugin = dontCheck super.hls-ormolu-plugin;
+  hls-haddock-comments-plugin = dontCheck super.hls-haddock-comments-plugin;
+
 
   # https://github.com/ekmett/half/issues/35
   half = dontCheck super.half;
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 83e9ea32509fd..e8ca545e6cd57 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -54,6 +54,20 @@ self: super: {
   ghc-datasize = disableLibraryProfiling super.ghc-datasize;
   ghc-vis = disableLibraryProfiling super.ghc-vis;
 
+  # `pinch`s test suite uses a function called `openSocket` that's available
+  # in `network` versions 3.1.2.0 and bigger.
+  # There's an open PR updating the lower bound for `network`:
+  # > https://github.com/abhinav/pinch/pull/46
+  # With that said version tracked for `network` right now is 3.1.1.1 so we're
+  # replacing the network pinch uses with `network_3_1_2_5` for now.
+  pinch = super.pinch.overrideScope (self : super: {
+    network = self.network_3_1_2_5;
+  });
+
+  # We can remove this once fakedata version gets to 1.0.1 as the test suite
+  # works fine there.
+  fakedata = dontCheck super.fakedata;
+
   # This test keeps being aborted because it runs too quietly for too long
   Lazy-Pbkdf2 = if pkgs.stdenv.isi686 then dontCheck super.Lazy-Pbkdf2 else super.Lazy-Pbkdf2;
 
@@ -68,7 +82,7 @@ self: super: {
       name = "git-annex-${super.git-annex.version}-src";
       url = "git://git-annex.branchable.com/";
       rev = "refs/tags/" + super.git-annex.version;
-      sha256 = "1dj93291kh3wm46ardacpbblisarw5pmv683pdiqcngfhlp1m91a";
+      sha256 = "1x2d0gfqxxfygzigm34n0spaxh8bwipxs9317f6c5lkpj916p957";
       # delete android and Android directories which cause issues on
       # darwin (case insensitive directory). Since we don't need them
       # during the build process, we can delete it to prevent a hash
@@ -77,14 +91,6 @@ self: super: {
         rm -r $out/doc/?ndroid*
       '';
     };
-    patches = [
-      # Allows compilation with git-lfs 1.2.0
-      (pkgs.fetchpatch {
-        url = "https://git.joeyh.name/index.cgi/git-annex.git/patch/?id=f3326b8b5ae4d1caa5c6e3e192c58c6e064c425a";
-        sha256 = "1nzg4mna462ndylisyy3nfih49aznhzzf7b3krb4p9p0j1zrcy2s";
-        excludes = [ "doc/**" "CHANGELOG" ];
-      })
-    ] ++ (drv.patches or []);
   }) super.git-annex;
 
   # Fix test trying to access /home directory
@@ -95,6 +101,9 @@ self: super: {
   # https://github.com/froozen/kademlia/issues/2
   kademlia = dontCheck super.kademlia;
 
+  # https://github.com/haskell-game/dear-imgui.hs/issues/116
+  dear-imgui = doJailbreak super.dear-imgui;
+
   # Tests require older versions of tasty.
   hzk = dontCheck super.hzk;
   resolv = doJailbreak super.resolv;
@@ -849,8 +858,8 @@ self: super: {
     })
     super.hledger-lib;
 
-  # hledger-lib 1.23 depends on doctest >= 0.18
-  hledger-lib_1_23 = super.hledger-lib_1_23.override {
+  # hledger-lib 1.24 depends on doctest >= 0.18
+  hledger-lib_1_24_1 = super.hledger-lib_1_24_1.override {
     doctest = self.doctest_0_18_2;
   };
 
@@ -943,6 +952,7 @@ self: super: {
   dhall-json = generateOptparseApplicativeCompletions ["dhall-to-json" "dhall-to-yaml"] (dontCheck super.dhall-json);
   dhall-nix = generateOptparseApplicativeCompletion "dhall-to-nix" super.dhall-nix;
   dhall-yaml = generateOptparseApplicativeCompletions ["dhall-to-yaml-ng" "yaml-to-dhall"] super.dhall-yaml;
+  dhall-nixpkgs = generateOptparseApplicativeCompletion "dhall-to-nixpkgs" super.dhall-nixpkgs;
 
   # https://github.com/haskell-hvr/netrc/pull/2#issuecomment-469526558
   netrc = doJailbreak super.netrc;
@@ -963,6 +973,13 @@ self: super: {
   # dontCheck: use of non-standard strptime "%s" which musl doesn't support; only used in test
   unix-time = if pkgs.stdenv.hostPlatform.isMusl then dontCheck super.unix-time else super.unix-time;
 
+  # hslua has tests that appear to break when using musl.
+  # https://github.com/hslua/hslua/issues/106
+  # Note that hslua is currently version 1.3.  However, in the latest version
+  # (>= 2.0), hslua has been split into multiple packages and this override
+  # will likely need to be moved to the hslua-core package.
+  hslua = if pkgs.stdenv.hostPlatform.isMusl then dontCheck super.hslua else super.hslua;
+
   # The test suite runs for 20+ minutes on a very fast machine, which feels kinda disproportionate.
   prettyprinter = dontCheck super.prettyprinter;
   brittany = doJailbreak (dontCheck super.brittany);  # Outdated upperbound on ghc-exactprint: https://github.com/lspitzner/brittany/issues/342
@@ -1211,12 +1228,8 @@ self: super: {
     })
   ] super.polysemy;
 
-  # polysemy-plugin 0.2.5.0 has constraint ghc-tcplugins-extra (==0.3.*)
-  # This upstream issue is relevant:
-  # https://github.com/polysemy-research/polysemy/issues/322
-  polysemy-plugin = super.polysemy-plugin.override {
-    ghc-tcplugins-extra = self.ghc-tcplugins-extra_0_3_2;
-  };
+  # 2021-12-26: Too strict bounds on doctest
+  polysemy-plugin = doJailbreak super.polysemy-plugin;
 
   # Test suite requires running a database server. Testing is done upstream.
   hasql-notifications = dontCheck super.hasql-notifications;
@@ -1339,27 +1352,27 @@ self: super: {
   graphql-engine = overrideCabal (drv: {
     patches = [ ./patches/graphql-engine-mapkeys.patch ];
     doHaddock = false;
-    version = "2.0.9";
+    version = "2.0.10";
   }) (super.graphql-engine.overrideScope (self: super: {
     immortal = self.immortal_0_2_2_1;
     resource-pool = self.hasura-resource-pool;
     ekg-core = self.hasura-ekg-core;
     ekg-json = self.hasura-ekg-json;
-    hspec = dontCheck self.hspec_2_8_4;
-    hspec-core = dontCheck self.hspec-core_2_8_4;
-    hspec-discover = dontCheck super.hspec-discover_2_8_4;
+    hspec = dontCheck self.hspec_2_9_4;
+    hspec-core = dontCheck self.hspec-core_2_9_4;
+    hspec-discover = dontCheck super.hspec-discover_2_9_4;
     tasty-hspec = self.tasty-hspec_1_2;
   }));
-  hasura-ekg-core = super.hasura-ekg-core.overrideScope (self: super: {
-    hspec = dontCheck self.hspec_2_8_4;
-    hspec-core = dontCheck self.hspec-core_2_8_4;
-    hspec-discover = dontCheck super.hspec-discover_2_8_4;
-  });
+  hasura-ekg-core = doJailbreak (super.hasura-ekg-core.overrideScope (self: super: {
+    hspec = dontCheck self.hspec_2_9_4;
+    hspec-core = dontCheck self.hspec-core_2_9_4;
+    hspec-discover = dontCheck super.hspec-discover_2_9_4;
+  }));
   hasura-ekg-json = super.hasura-ekg-json.overrideScope (self: super: {
     ekg-core = self.hasura-ekg-core;
-    hspec = dontCheck self.hspec_2_8_4;
-    hspec-core = dontCheck self.hspec-core_2_8_4;
-    hspec-discover = dontCheck super.hspec-discover_2_8_4;
+    hspec = dontCheck self.hspec_2_9_4;
+    hspec-core = dontCheck self.hspec-core_2_9_4;
+    hspec-discover = dontCheck super.hspec-discover_2_9_4;
   });
   pg-client = overrideCabal (drv: {
     librarySystemDepends = with pkgs; [ postgresql krb5.dev openssl.dev ];
@@ -1434,6 +1447,20 @@ self: super: {
   # 2021-09-14: Tests are broken because of undeterministic variable names
   hls-tactics-plugin = dontCheck super.hls-tactics-plugin;
 
+  # 2021-11-20: https://github.com/haskell/haskell-language-server/pull/2373
+  hls-explicit-imports-plugin = dontCheck super.hls-explicit-imports-plugin;
+
+  # 2021-11-20: https://github.com/haskell/haskell-language-server/pull/2374
+  hls-module-name-plugin = dontCheck super.hls-module-name-plugin;
+
+  # 2021-11-20: Testsuite hangs.
+  # https://github.com/haskell/haskell-language-server/issues/2375
+  hls-pragmas-plugin = dontCheck super.hls-pragmas-plugin;
+
+  # 2021-11-23: Too strict bounds on ghcide, pending new release
+  hls-rename-plugin = assert super.hls-rename-plugin.version == "1.0.0.0";
+    doJailbreak super.hls-rename-plugin;
+
   # 2021-03-21: Test hangs
   # https://github.com/haskell/haskell-language-server/issues/1562
   # 2021-11-13: Too strict upper bound on implicit-hie-cradle
@@ -1482,9 +1509,6 @@ self: super: {
   # Due to tests restricting base in 0.8.0.0 release
   http-media = doJailbreak super.http-media;
 
-  # 2020-11-19: Jailbreaking until: https://github.com/snapframework/heist/pull/124
-  heist = doJailbreak super.heist;
-
   hinit = generateOptparseApplicativeCompletion "hi" (super.hinit.override { haskeline = self.haskeline_0_8_2; });
 
   # 2020-11-19: Jailbreaking until: https://github.com/snapframework/snap/pull/219
@@ -1677,12 +1701,18 @@ self: super: {
   # Issue reported upstream, no bug tracker url yet.
   darcs = doJailbreak super.darcs;
 
-  # Too strict version bounds on base16-bytestring and http-link-header.
-  # This patch will be merged when next release comes.
-  github = appendPatch (pkgs.fetchpatch {
-    url = "https://github.com/phadej/github/commit/514b175851dd7c4a9722ff203dd6f652a15d33e8.patch";
-    sha256 = "0pmx54xd7ah85y9mfi5366wbnwrp918j0wbx8yw8hrdac92qi4gh";
-  }) super.github;
+  # Too strict verion bounds on cryptonite and github.
+  # PRs are merged, will be fixed next release or Hackage revision.
+  nix-thunk = appendPatches [
+    (pkgs.fetchpatch {
+      url = "https://github.com/obsidiansystems/nix-thunk/commit/49d27a85dd39cd9413c99958c67e596756a502b5.patch";
+      sha256 = "1p1n0123yrbdqyfk4kx3gq6bdv65l1bxgbsg51ckcwclg54xp2p5";
+    })
+    (pkgs.fetchpatch {
+      url = "https://github.com/obsidiansystems/nix-thunk/commit/512867c651977265d5d8f456b538f7a364ec8a8b.patch";
+      sha256 = "121yg26y4g28k8xv7y1j6c3pxm17vsjn3vi62kkc8g928c47yd02";
+    })
+  ] super.nix-thunk;
 
   # list `modbus` in librarySystemDepends, correct to `libmodbus`
   libmodbus = overrideCabal (drv: {
@@ -1825,7 +1855,7 @@ self: super: {
   # https://github.com/enomsg/science-constants-dimensional/pull/1
   science-constants-dimensional = doJailbreak super.science-constants-dimensional;
 
-  # Tests are flaky on busy machines
+  # Tests are flaky on busy machines, upstream doesn't intend to fix
   # https://github.com/merijn/paramtree/issues/4
   paramtree = dontCheck super.paramtree;
 
@@ -1848,27 +1878,22 @@ self: super: {
 
   # Build haskell-ci from git repository, including some useful fixes,
   # e. g. required for generating the workflows for the cabal2nix repository
-  haskell-ci-unstable = (overrideSrc {
-    version = "0.13.20211011";
+  haskell-ci-unstable = (overrideSrc rec {
+    version = "0.13.20211116-${builtins.substring 0 7 src.rev}";
     src = pkgs.fetchFromGitHub {
       owner = "haskell-CI";
       repo = "haskell-ci";
-      rev = "c88e67e675bc4a990da53863c7fb42e67bcf9847";
-      sha256 = "1zhv1cg047lfyxfs3mvc73vv96pn240zaj7f2yl4lw5yj6y5rfk9";
+      rev = "b61df11e7f6010ce09920c231321ab1545a990b5";
+      sha256 = "0v6mqpavz5v161milq6a3x9gzap0pgksd3h4rwi2s3f9b15sczcy";
     };
   } super.haskell-ci).overrideScope (self: super: {
-    attoparsec = self.attoparsec_0_14_2;
+    attoparsec = self.attoparsec_0_14_3;
     Cabal = self.Cabal_3_6_2_0;
   });
 
-  Frames-streamly = overrideCabal (drv: {
-    # https://github.com/adamConnerSax/Frames-streamly/issues/1
-    patchPhase = ''
-cat > example_data/acs100k.csv <<EOT
-"YEAR","REGION","STATEFIP","DENSITY","METRO","PUMA","PERWT","SEX","AGE","RACE","RACED","HISPAN","HISPAND","CITIZEN","LANGUAGE","LANGUAGED","SPEAKENG","EDUC","EDUCD","GRADEATT","GRADEATTD","EMPSTAT","EMPSTATD","INCTOT","INCSS","POVERTY"
-2006,32,1,409.6,3,2300,87.0,1,47,1,100,0,0,0,1,100,3,6,65,0,0,1,12,36000,0,347
-EOT
-    ''; }) (super.Frames-streamly.override { relude = super.relude_1_0_0_1; });
+  Frames-streamly = super.Frames-streamly.override {
+    relude = super.relude_1_0_0_1;
+  };
 
   # 2021-05-09: compilation requires patches from master,
   # remove at next release (current is 0.1.0.4).
@@ -1956,10 +1981,6 @@ EOT
   composite-aeson = assert super.composite-aeson.version == "0.7.5.0";
     doJailbreak super.composite-aeson;
 
-  # Too strict bounds on profunctors
-  # https://github.com/google/proto-lens/issues/413
-  proto-lens = doJailbreak super.proto-lens;
-
   # 2021-06-20: Outdated upper bounds
   # https://github.com/Porges/email-validate-hs/issues/58
   email-validate = doJailbreak super.email-validate;
@@ -1989,7 +2010,7 @@ EOT
   ghcup = doJailbreak (super.ghcup.overrideScope (self: super: {
     hspec-golden-aeson = self.hspec-golden-aeson_0_9_0_0;
     optics = self.optics_0_4;
-    streamly = self.streamly_0_8_0;
+    streamly = self.streamly_0_8_1_1;
     Cabal = self.Cabal_3_6_2_0;
     libyaml-streamly = markUnbroken super.libyaml-streamly;
   }));
@@ -2079,22 +2100,158 @@ EOT
   gogol-core = appendPatch ./patches/gogol-core-144.patch super.gogol-core;
 
   # Jailbreak isn't sufficient, but this is ok as it's a leaf package.
-  hadolint = super.hadolint.overrideScope (self: super: {
-    language-docker = self.language-docker_10_3_0;
-    hspec = dontCheck self.hspec_2_8_4;
-    hspec-core = dontCheck self.hspec-core_2_8_4;
-    hspec-discover = dontCheck self.hspec-discover_2_8_4;
+  hadolint = overrideCabal (drv: {
+    # Test suite depends on ordering of unordered-containers returned values
+    # which was upgraded in LTS 18.19
+    # https://github.com/hadolint/hadolint/issues/753
+    testFlags = [
+      "--skip" "/Hadolint.Formatter.Sarif/Formatter: Sarif/print empty results/"
+    ] ++ drv.testFlags or [];
+  }) (super.hadolint.overrideScope (self: super: {
+    language-docker = self.language-docker_10_4_0;
+    hspec = dontCheck self.hspec_2_9_4;
+    hspec-core = dontCheck self.hspec-core_2_9_4;
+    hspec-discover = dontCheck self.hspec-discover_2_9_4;
     colourista = doJailbreak super.colourista;
-  });
+  }));
 
   # These should be updated in lockstep
-  hledger_1_23 = super.hledger_1_23.override {
-    hledger-lib = self.hledger-lib_1_23;
+  hledger_1_24_1 = super.hledger_1_24_1.override {
+    hledger-lib = self.hledger-lib_1_24_1;
   };
 
   # Needs brick > 0.64
   nix-tree = super.nix-tree.override {
-    brick = self.brick_0_64_2;
+    brick = self.brick_0_65;
   };
 
+  # build newer version for `pkgs.shellcheck`
+  ShellCheck_0_8_0 = doDistribute super.ShellCheck_0_8_0;
+
+  # test suite requires stack to run, https://github.com/dino-/photoname/issues/24
+  photoname = dontCheck super.photoname;
+
+  # Upgrade of unordered-containers in Stackage causes ordering-sensitive test to fail
+  # https://github.com/chrisdone/lucid/issues/123
+  # https://github.com/commercialhaskell/stackage/issues/6366
+  lucid = assert super.lucid.version == "2.9.12.1"; overrideCabal (drv: {
+    testFlags = [
+      "--skip" "/attributes-with/mixed/"
+    ] ++ drv.testFlags or [];
+  }) super.lucid;
+  # Basically the entire doctest suite of swagger2 fails for the same reason
+  swagger2 = assert super.swagger2.version == "2.6"; overrideCabal (drv: {
+    testTarget = "spec";
+  }) super.swagger2;
+  # https://github.com/kapralVV/Unique/issues/9
+  Unique = assert super.Unique.version == "0.4.7.9"; overrideCabal (drv: {
+    testFlags = [
+      "--skip" "/Data.List.UniqueUnsorted.removeDuplicates/removeDuplicates: simple test/"
+      "--skip" "/Data.List.UniqueUnsorted.repeatedBy,repeated,unique/unique: simple test/"
+      "--skip" "/Data.List.UniqueUnsorted.repeatedBy,repeated,unique/repeatedBy: simple test/"
+    ] ++ drv.testFlags or [];
+  }) super.Unique;
+  # https://github.com/AndrewRademacher/aeson-casing/issues/8
+  aeson-casing = assert super.aeson-casing.version == "0.2.0.0"; overrideCabal (drv: {
+    testFlags = [
+      "-p" "! /encode train/"
+    ] ++ drv.testFlags or [];
+  }) super.aeson-casing;
+  # https://github.com/Soostone/katip/issues/134
+  katip = assert super.katip.version == "0.8.7.0"; overrideCabal (drv: {
+    testFlags = [
+      "-p" "!/Text-golden/&&!/respects payloadKeys for each constituent payload/"
+    ] ++ drv.testFlags or [];
+  }) super.katip;
+  # 2020-11-19: Jailbreaking until: https://github.com/snapframework/heist/pull/124
+  # 2021-12-22: https://github.com/snapframework/heist/issues/131
+  heist = assert super.heist.version == "1.1.0.1"; overrideCabal (drv: {
+    testFlags = [
+      "-t" "!*/compiled/ns*"
+    ] ++ drv.testFlags or [];
+  }) (doJailbreak super.heist);
+  # https://github.com/hercules-ci/hercules-ci-agent/issues/352
+  hercules-ci-api-agent = assert super.hercules-ci-api-agent.version == "0.4.1.0"; overrideCabal (drv: {
+    testFlags = [
+      "--skip" "/hercules-ci-api/Hercules.API.Agent.Evaluate.EvaluateEvent.DerivationInfo/DerivationInfo/ToJSON/encodes v2 correctly/"
+    ] ++ drv.testFlags or [];
+  }) (doJailbreak super.hercules-ci-api-agent);
+  # https://github.com/emc2/HUnit-Plus/issues/26
+  HUnit-Plus = dontCheck super.HUnit-Plus;
+  # https://github.com/ewestern/haskell-postgis/issues/7
+  haskell-postgis = overrideCabal (drv: {
+    testFlags = [
+      "--skip" "/Geo/Hexable/Encodes a linestring/"
+    ] ++ drv.testFlags or [];
+  }) super.haskell-postgis;
+  # https://github.com/ChrisPenner/json-to-haskell/issues/5
+  json-to-haskell = overrideCabal (drv: {
+    testFlags = [
+      "--match" "/should sanitize weird field and record names/"
+    ] ++ drv.testFlags or [];
+  }) super.json-to-haskell;
+  # https://github.com/fieldstrength/aeson-deriving/issues/5
+  aeson-deriving = dontCheck super.aeson-deriving;
+  # https://github.com/morpheusgraphql/morpheus-graphql/issues/660
+  morpheus-graphql-core = overrideCabal (drv: {
+    testFlags = [
+      "-p" "!/field.unexpected-value/&&!/field.missing-field/&&!/argument.unexpected-value/&&!/argument.missing-field/"
+    ] ++ drv.testFlags or [];
+  }) super.morpheus-graphql-core;
+  morpheus-graphql = overrideCabal (drv: {
+    testFlags = [
+      "-p" "!/Test Rendering/"
+    ] ++ drv.testFlags or [];
+  }) super.morpheus-graphql;
+  # https://github.com/SupercedeTech/dropbox-client/issues/1
+  dropbox = overrideCabal (drv: {
+    testFlags = [
+      "--skip" "/Dropbox/Dropbox aeson aeson/encodes list folder correctly/"
+    ] ++ drv.testFlags or [];
+  }) super.dropbox;
+  # https://github.com/alonsodomin/haskell-schema/issues/11
+  hschema-aeson = overrideCabal (drv: {
+    testFlags = [
+      "--skip" "/toJsonSerializer/should generate valid JSON/"
+    ] ++ drv.testFlags or [];
+  }) super.hschema-aeson;
+  # https://gitlab.com/k0001/xmlbf/-/issues/32
+  xmlbf = overrideCabal (drv: {
+    testFlags = [
+      "-p" "!/xml: <x b=\"\" a=\"y\"><\\/x>/&&!/xml: <x b=\"z\" a=\"y\"><\\/x>/"
+    ] ++ drv.testFlags or [];
+  }) super.xmlbf;
+  # https://github.com/ssadler/aeson-quick/issues/3
+  aeson-quick = overrideCabal (drv: {
+    testFlags = [
+      "-p" "!/asLens.set/&&!/complex.set/&&!/multipleKeys.set/"
+    ] ++ drv.testFlags or [];
+  }) super.aeson-quick;
+  # https://github.com/minio/minio-hs/issues/165
+  minio-hs = overrideCabal (drv: {
+    testFlags = [
+      "-p" "!/Test mkSelectRequest/"
+    ] ++ drv.testFlags or [];
+  }) super.minio-hs;
+
+  # golden files expect an old version of hpack, so tests fail intermittently
+  # TODO: maybe disable golden test suite altogether? this will happen again as
+  #       hpack emits its version into the generated files…
+  hpack-dhall = assert super.hpack-dhall.version == "0.5.3"; dontCheck super.hpack-dhall;
+
+  # Invalid CPP in test suite: https://github.com/cdornan/memory-cd/issues/1
+  memory-cd = dontCheck super.memory-cd;
+
+  # https://github.com/andreymulik/sdp/issues/3
+  sdp = disableLibraryProfiling super.sdp;
+  sdp-binary = disableLibraryProfiling super.sdp-binary;
+  sdp-deepseq = disableLibraryProfiling super.sdp-deepseq;
+  sdp-hashable = disableLibraryProfiling super.sdp-hashable;
+  sdp-io = disableLibraryProfiling super.sdp-io;
+  sdp-quickcheck = disableLibraryProfiling super.sdp-quickcheck;
+  sdp4bytestring = disableLibraryProfiling super.sdp4bytestring;
+  sdp4text = disableLibraryProfiling super.sdp4text;
+  sdp4unordered = disableLibraryProfiling super.sdp4unordered;
+  sdp4vector = disableLibraryProfiling super.sdp4vector;
+
 } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
diff --git a/pkgs/development/haskell-modules/configuration-darwin.nix b/pkgs/development/haskell-modules/configuration-darwin.nix
index 2f632c6a90c0f..5248523e0cd1f 100644
--- a/pkgs/development/haskell-modules/configuration-darwin.nix
+++ b/pkgs/development/haskell-modules/configuration-darwin.nix
@@ -250,11 +250,11 @@ self: super: ({
   c2hsc = addTestToolDepends [ pkgs.gcc ] super.c2hsc;
 
   # streamly depends on Cocoa starting with 0.8.0
-  streamly_0_8_0 = overrideCabal (drv: {
+  streamly_0_8_1_1 = overrideCabal (drv: {
     libraryFrameworkDepends = [
       darwin.apple_sdk.frameworks.Cocoa
     ] ++ (drv.libraryFrameworkDepends or []);
-  }) super.streamly_0_8_0;
+  }) super.streamly_0_8_1_1;
 
 } // lib.optionalAttrs pkgs.stdenv.isAarch64 {  # aarch64-darwin
 
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
index 5e42a7c1131c0..ec55156593092 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
@@ -4,8 +4,7 @@ with haskellLib;
 
 self: super: {
 
-  # This compiler version needs llvm 9.x.
-  llvmPackages = pkgs.lib.dontRecurseIntoAttrs pkgs.llvmPackages_9;
+  llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
 
   # Disable GHC 8.10.x core libraries.
   array = null;
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
index db202735f8939..ce7bf88d1da8c 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
@@ -4,8 +4,7 @@ with haskellLib;
 
 self: super: {
 
-  # This compiler version needs llvm 6.x.
-  llvmPackages = pkgs.lib.dontRecurseIntoAttrs pkgs.llvmPackages_6;
+  llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
 
   # Disable GHC 8.6.x core libraries.
   array = null;
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
index a27a7c5220986..94e9a32ce05af 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
@@ -4,8 +4,7 @@ with haskellLib;
 
 self: super: {
 
-  # This compiler version needs llvm 7.x.
-  llvmPackages = pkgs.lib.dontRecurseIntoAttrs pkgs.llvmPackages_7;
+  llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
 
   # Disable GHC 8.8.x core libraries.
   array = null;
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
index 6aae6f1c63851..71b74f6db7031 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.0.x.nix
@@ -4,8 +4,7 @@ with haskellLib;
 
 self: super: {
 
-  # This compiler version needs llvm 10.x.
-  llvmPackages = pkgs.lib.dontRecurseIntoAttrs pkgs.llvmPackages_10;
+  llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
 
   # Disable GHC 9.0.x core libraries.
   array = null;
@@ -50,7 +49,6 @@ self: super: {
 
   # Jailbreaks & Version Updates
   async = doJailbreak super.async;
-  ChasingBottoms = markBrokenVersion "1.3.1.9" super.ChasingBottoms;
   data-fix = doJailbreak super.data-fix;
   dec = doJailbreak super.dec;
   ed25519 = doJailbreak super.ed25519;
@@ -79,10 +77,10 @@ self: super: {
   # 2021-11-08: Fixed in autoapply-0.4.2
   autoapply = doJailbreak self.autoapply_0_4_1_1;
 
-  # Doesn't allow Dhall 1.39.*
-  weeder_2_3_0 = super.weeder_2_3_0.override {
-    dhall = self.dhall_1_40_1;
-  };
+  # Doesn't allow Dhall 1.39.*; forbids lens 5.1
+  weeder_2_3_0 = doJailbreak (super.weeder_2_3_0.override {
+    dhall = self.dhall_1_40_2;
+  });
 
   # Upstream also disables test for GHC 9: https://github.com/kcsongor/generic-lens/pull/130
   generic-lens_2_2_0_0 = dontCheck super.generic-lens_2_2_0_0;
@@ -105,7 +103,7 @@ self: super: {
   base64-bytestring = dontCheck super.base64-bytestring;
 
   # 5 introduced support for GHC 9.0.x, but hasn't landed in stackage yet
-  lens = super.lens_5_0_1;
+  lens = super.lens_5_1;
 
   # 0.16.0 introduced support for GHC 9.0.x, stackage has 0.15.0
   memory = super.memory_0_16_0;
@@ -119,7 +117,7 @@ self: super: {
   retry = dontCheck super.retry;
 
   # Hlint needs >= 3.3.4 for ghc 9 support.
-  hlint = super.hlint_3_3_4;
+  hlint = doDistribute super.hlint_3_3_5;
 
   # 2021-09-18: ghc-api-compat and ghc-lib-* need >= 9.0.x versions for hls and hlint
   ghc-api-compat = doDistribute super.ghc-api-compat_9_0_1;
@@ -130,37 +128,6 @@ self: super: {
   # 2021-09-18: Need semialign >= 1.2 for correct bounds
   semialign = super.semialign_1_2_0_1;
 
-  # Will probably be needed for brittany support
-  # https://github.com/lspitzner/czipwith/pull/2
-  #czipwith = appendPatch
-  #    (pkgs.fetchpatch {
-  #      url = "https://github.com/lspitzner/czipwith/commit/b6245884ae83e00dd2b5261762549b37390179f8.patch";
-  #      sha256 = "08rpppdldsdwzb09fmn0j55l23pwyls2dyzziw3yjc1cm0j5vic5";
-  #    }) super.czipwith;
-
-  # 2021-09-18: https://github.com/mokus0/th-extras/pull/8
-  # Release is missing, but asked for in the above PR.
-  th-extras = overrideCabal (old: {
-      version = assert old.version == "0.0.0.4"; "unstable-2021-09-18";
-      src = pkgs.fetchFromGitHub  {
-        owner = "mokus0";
-        repo = "th-extras";
-        rev = "0d050b24ec5ef37c825b6f28ebd46787191e2a2d";
-        sha256 = "045f36yagrigrggvyb96zqmw8y42qjsllhhx2h20q25sk5h44xsd";
-      };
-      libraryHaskellDepends = old.libraryHaskellDepends ++ [self.th-abstraction];
-    }) super.th-extras;
-
-  # 2021-09-18: GHC 9 compat release is missing
-  # Issue: https://github.com/obsidiansystems/dependent-sum/issues/65
-  dependent-sum-template = dontCheck (appendPatch
-      (pkgs.fetchpatch {
-        url = "https://github.com/obsidiansystems/dependent-sum/commit/8cf4c7fbc3bfa2be475a17bb7c94a1e1e9a830b5.patch";
-        sha256 = "02wyy0ciicq2x8lw4xxz3x5i4a550mxfidhm2ihh60ni6am498ff";
-        stripLen = 2;
-        extraPrefix = "";
-      }) super.dependent-sum-template);
-
   # 2021-09-18: cabal2nix does not detect the need for ghc-api-compat.
   hiedb = overrideCabal (old: {
     libraryHaskellDepends = old.libraryHaskellDepends ++ [self.ghc-api-compat];
@@ -174,6 +141,14 @@ self: super: {
   # Restrictive upper bound on ormolu
   hls-ormolu-plugin = doJailbreak super.hls-ormolu-plugin;
 
+  # Too strict bounds on base
+  # https://github.com/lspitzner/multistate/issues/9
+  multistate = doJailbreak super.multistate;
+  # https://github.com/lspitzner/butcher/issues/7
+  butcher = doJailbreak super.butcher;
+  # Fixes a bug triggered on GHC 9.0.1
+  text-short = self.text-short_0_1_4;
+
   # 2021-09-18: The following plugins don‘t work yet on ghc9.
   haskell-language-server = appendConfigureFlags [
     "-f-tactic"
@@ -192,6 +167,6 @@ self: super: {
 
     hls-fourmolu-plugin = null; # No upstream support, needs new fourmolu release
     hls-stylish-haskell-plugin = null; # No upstream support
-    hls-brittany-plugin = null; # No upstream support, needs new brittany release
+    hls-brittany-plugin = null; # Dependencies don't build with 9.0.1
   });
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
index e2fca5199a61a..3b73361d23998 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
@@ -4,8 +4,7 @@ with haskellLib;
 
 self: super: {
 
-  # This compiler version needs llvm 10.x.
-  llvmPackages = pkgs.lib.dontRecurseIntoAttrs pkgs.llvmPackages_10;
+  llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
 
   # Disable GHC 9.2.x core libraries.
   array = null;
@@ -55,9 +54,6 @@ self: super: {
     excludes = ["*.cabal"];
   }) (doJailbreak super.aeson);
 
-  # Tests use Data.Semigroup.Option
-  aeson_2_0_1_0 = dontCheck (doJailbreak super.aeson_2_0_1_0);
-
   basement = overrideCabal (drv: {
     # This is inside a conditional block so `doJailbreak` doesn't work
     postPatch = "sed -i -e 's,<4.16,<4.17,' basement.cabal";
@@ -87,7 +83,7 @@ self: super: {
   # Jailbreaks & Version Updates
   assoc = doJailbreak super.assoc;
   async = doJailbreak super.async;
-  attoparsec = super.attoparsec_0_14_2;
+  attoparsec = super.attoparsec_0_14_3;
   base64-bytestring = doJailbreak super.base64-bytestring;
   base-compat = self.base-compat_0_12_1;
   base-compat-batteries = self.base-compat-batteries_0_12_1;
@@ -101,12 +97,28 @@ self: super: {
   data-fix = doJailbreak super.data-fix;
   dec = doJailbreak super.dec;
   ed25519 = doJailbreak super.ed25519;
+  genvalidity = self.genvalidity_1_0_0_1;
+  genvalidity-property = self.genvalidity-property_1_0_0_0;
+  genvalidity-hspec = self.genvalidity-hspec_1_0_0_0;
   ghc-byteorder = doJailbreak super.ghc-byteorder;
+  ghc-exactprint = overrideCabal (drv: {
+    # HACK: ghc-exactprint 1.3.0 is not buildable for GHC < 9.2,
+    # but hackage2nix evaluates the cabal file with GHC 8.10.*,
+    # causing the build-depends to be skipped. Since the dependency
+    # list hasn't changed much since 0.6.4, we can just reuse the
+    # normal expression.
+    inherit (self.ghc-exactprint_1_3_0) src version;
+    revision = null; editedCabalFile = null;
+    libraryHaskellDepends = [
+      self.fail
+      self.ordered-containers
+    ] ++ drv.libraryHaskellDepends or [];
+  }) super.ghc-exactprint;
   ghc-lib = self.ghc-lib_9_2_1_20211101;
   ghc-lib-parser = self.ghc-lib-parser_9_2_1_20211101;
   ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_1;
   hackage-security = doJailbreak super.hackage-security;
-  hashable = super.hashable_1_4_0_0;
+  hashable = super.hashable_1_4_0_1;
   hashable-time = doJailbreak super.hashable-time_0_3;
   hedgehog = doJailbreak super.hedgehog;
   HTTP = overrideCabal (drv: { postPatch = "sed -i -e 's,! Socket,!Socket,' Network/TCP.hs"; }) (doJailbreak super.HTTP);
@@ -116,13 +128,16 @@ self: super: {
   lifted-async = doJailbreak super.lifted-async;
   lukko = doJailbreak super.lukko;
   network = super.network_3_1_2_5;
+  ormolu = self.ormolu_0_4_0_0;
   OneTuple = super.OneTuple_0_3_1;
   parallel = doJailbreak super.parallel;
+  path = doJailbreak super.path_0_9_1;
   polyparse = overrideCabal (drv: { postPatch = "sed -i -e 's, <0.11, <0.12,' polyparse.cabal"; }) (doJailbreak super.polyparse);
   primitive = doJailbreak super.primitive;
-  quickcheck-instances = super.quickcheck-instances_0_3_26_1;
+  quickcheck-instances = super.quickcheck-instances_0_3_27;
   regex-posix = doJailbreak super.regex-posix;
   resolv = doJailbreak super.resolv;
+  retrie = doDistribute self.retrie_1_2_0_0;
   semialign = super.semialign_1_2_0_1;
   singleton-bool = doJailbreak super.singleton-bool;
   scientific = doJailbreak super.scientific;
@@ -151,17 +166,18 @@ self: super: {
     ] ++ drv.testFlags or [];
   }) (doJailbreak super.hpack);
 
-  # Patch for TH code from head.hackage
-  vector-th-unbox = appendPatch (pkgs.fetchpatch {
-    url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/vector-th-unbox-0.2.1.9.patch";
-    sha256 = "02bvvy3hx3cf4y4dr64zl5pjvq8giwk4286j5g1n6k8ikyn2403p";
-  }) (doJailbreak super.vector-th-unbox);
+  validity = pkgs.lib.pipe super.validity_0_12_0_0 [
+    # head.hackage patch
+    (appendPatch (pkgs.fetchpatch {
+      url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/9110e6972b5daf085e19cad41f97920d3ddac499/patches/validity-0.12.0.0.patch";
+      sha256 = "0hzns596dxvyn8irgi7aflx76wak1qi13chkkvl0055pkgykm08f";
+    }))
+    # head.hackage ignores test suite
+    dontCheck
+  ];
 
-  # base 4.15 support from head.hackage
-  lens = appendPatch (pkgs.fetchpatch {
-    url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/lens-5.0.1.patch";
-    sha256 = "1s8qqg7ymvv94dnfnr1ragx91chh9y7ydc4jx25zn361wbn00pv7";
-  }) (doJailbreak super.lens_5_0_1);
+  # lens >= 5.1 supports 9.2.1
+  lens = super.lens_5_1;
 
   # Syntax error in tests fixed in https://github.com/simonmar/alex/commit/84b29475e057ef744f32a94bc0d3954b84160760
   alex = dontCheck super.alex;
@@ -188,7 +204,10 @@ self: super: {
   memory = appendPatch (pkgs.fetchpatch {
     url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/memory-0.16.0.patch";
     sha256 = "1kjganx729a6xfgfnrb3z7q6mvnidl042zrsd9n5n5a3i76nl5nl";
-  }) super.memory_0_16_0;
+  }) (overrideCabal {
+    editedCabalFile = null;
+    revision = null;
+  } super.memory_0_16_0);
 
   # GHC 9.0.x doesn't like `import Spec (main)` in Main.hs
   # https://github.com/snoyberg/mono-traversable/issues/192
@@ -201,17 +220,25 @@ self: super: {
   # Upper bound on `hashable` is too restrictive
   semigroupoids = overrideCabal (drv: { postPatch = "sed -i -e 's,hashable >= 1.2.7.0  && < 1.4,hashable >= 1.2.7.0  \\&\\& < 1.5,' semigroupoids.cabal";}) super.semigroupoids;
 
-  streaming-commons = appendPatch (pkgs.fetchpatch {
-    url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/streaming-commons-0.2.2.1.patch";
-    sha256 = "04wi1jskr3j8ayh88kkx4irvhhgz0i7aj6fblzijy0fygikvidpy";
-  }) super.streaming-commons;
-
   # Tests have a circular dependency on quickcheck-instances
   text-short = dontCheck super.text-short_0_1_4;
 
-  # hlint 3.3 needs a ghc-lib-parser newer than the one from stackage
-  hlint = super.hlint_3_3_4.overrideScope (self: super: {
-    ghc-lib-parser = self.ghc-lib-parser_9_2_1_20211101;
-    ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_1;
-  });
+  # Use hlint from git for GHC 9.2.1 support
+  hlint = doDistribute (
+    overrideSrc {
+      version = "unstable-2021-12-12";
+      src = pkgs.fetchFromGitHub {
+        owner = "ndmitchell";
+        repo = "hlint";
+        rev = "77a9702e10b772a7695c08682cd4f450fd0e9e46";
+        sha256 = "0hpp3iw7m7w2abr8vb86gdz3x6c8lj119zxln933k90ia7bmk8jc";
+      };
+    } (super.hlint_3_3_5.overrideScope (self: super: {
+      ghc-lib-parser = self.ghc-lib-parser_9_2_1_20211101;
+      ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_1;
+    }))
+  );
+
+  # https://github.com/sjakobi/bsb-http-chunked/issues/38
+  bsb-http-chunked = dontCheck super.bsb-http-chunked;
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghc-head.nix b/pkgs/development/haskell-modules/configuration-ghc-head.nix
index 562a8fb44ba6e..e1e3f2c99884e 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-head.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-head.nix
@@ -11,7 +11,7 @@ with haskellLib;
 
 self: super: {
 
-  llvmPackages = pkgs.lib.dontRecurseIntoAttrs pkgs.llvmPackages_10;
+  llvmPackages = pkgs.lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
 
   # Disable GHC 8.7.x core libraries.
   array = null;
@@ -74,7 +74,4 @@ self: super: {
   # Break out of "yaml >=0.10.4.0 && <0.11": https://github.com/commercialhaskell/stack/issues/4485
   stack = doJailbreak super.stack;
 
-  # Fix build with ghc 8.6.x.
-  git-annex = appendPatch ./patches/git-annex-fix-ghc-8.6.x-build.patch super.git-annex;
-
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghcjs.nix b/pkgs/development/haskell-modules/configuration-ghcjs.nix
index 87f83182ea006..2bdf5cfbe51ed 100644
--- a/pkgs/development/haskell-modules/configuration-ghcjs.nix
+++ b/pkgs/development/haskell-modules/configuration-ghcjs.nix
@@ -24,7 +24,7 @@ self: super:
 
   # GHCJS does not ship with the same core packages as GHC.
   # https://github.com/ghcjs/ghcjs/issues/676
-  stm = doJailbreak self.stm_2_5_0_1;
+  stm = doJailbreak self.stm_2_5_0_2;
   exceptions = dontCheck self.exceptions_0_10_4;
 
 ## OTHER PACKAGES
@@ -101,9 +101,6 @@ self: super:
   # still present here https://github.com/glguy/th-abstraction/issues/53
   th-abstraction = dontCheck super.th-abstraction;
 
-  # https://github.com/haskell/vector/issues/410
-  vector = appendPatch super.vector (../compilers/ghcjs/patches/vector-ghcjs-storable-set.patch);
-
   # Need hedgehog for tests, which fails to compile due to dep on concurrent-output
   zenc = dontCheck super.zenc;
 }
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
index 951047fb54fd6..1a6eaaccd2ff3 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
@@ -88,6 +88,7 @@ broken-packages:
   - aeson-tiled
   - aeson-typescript
   - aeson-utils
+  - aeson-value-parser
   - affection
   - affine-invariant-ensemble-mcmc
   - Agata
@@ -221,6 +222,7 @@ broken-packages:
   - assumpta
   - ast-monad
   - astrds
+  - astro
   - async-combinators
   - async-dejafu
   - asynchronous-exceptions
@@ -1124,6 +1126,7 @@ broken-packages:
   - docopt
   - docrecords
   - doctest-discover-configurator
+  - doctest-parallel
   - doctest-prop
   - docusign-example
   - docvim
@@ -1135,6 +1138,7 @@ broken-packages:
   - dotfs
   - dot-linker
   - doublify-toolkit
+  - dovetail
   - downloader
   - dozenal
   - dozens
@@ -1328,6 +1332,7 @@ broken-packages:
   - explicit-constraint-lens
   - explicit-determinant
   - explicit-iomodes
+  - exploring-interpreters
   - exposed-containers
   - expression-parser
   - expressions
@@ -1350,7 +1355,6 @@ broken-packages:
   - fadno-braids
   - failable-list
   - failure-detector
-  - fakedata
   - fake-type
   - faktory
   - f-algebra-gen
@@ -1554,6 +1558,7 @@ broken-packages:
   - fused-effects-mwc-random
   - fused-effects-resumable
   - fusion
+  - futhark-manifest
   - futun
   - future
   - fuzzy-time-gen
@@ -1663,15 +1668,20 @@ broken-packages:
   - ghc-usage
   - gh-labeler
   - giak
+  - gi-cogl
   - Gifcurry
   - gi-graphene
   - gi-gsttag
+  - gi-gtk-layer-shell
   - gi-gtkosxapplication
   - gi-gtksheet
   - gi-handy
+  - gi-json
+  - gingersnap
   - ginsu
   - gipeda
   - giphy-api
+  - gi-rsvg
   - gist
   - GiST
   - git
@@ -1681,7 +1691,6 @@ broken-packages:
   - git-cuk
   - git-date
   - gitdo
-  - github
   - github-backup
   - github-data
   - github-tools
@@ -2021,6 +2030,7 @@ broken-packages:
   - hastache
   - haste
   - haste-prim
+  - has-transformers
   - hat
   - hatex-guide
   - hats
@@ -2069,6 +2079,7 @@ broken-packages:
   - hdph-closure
   - hdr-histogram
   - HDRUtils
+  - headed-megaparsec
   - headergen
   - heap-console
   - heapsort
@@ -2426,7 +2437,6 @@ broken-packages:
   - htssets
   - http2-client
   - http2-grpc-proto-lens
-  - http3
   - http-attoparsec
   - http-client-lens
   - http-client-request-modifiers
@@ -2725,6 +2735,7 @@ broken-packages:
   - kmonad
   - kmp-dfa
   - koellner-phonetic
+  - koji-install
   - Konf
   - kontra-config
   - kparams
@@ -3167,7 +3178,6 @@ broken-packages:
   - monad-mersenne-random
   - monad-mock
   - monad-open
-  - Monadoro
   - monad-parallel-progressbar
   - monad-param
   - monad-persist
@@ -3180,6 +3190,7 @@ broken-packages:
   - monad-ste
   - monad-stlike-io
   - monad-task
+  - monad-throw-exit
   - monad-timing
   - monad-tx
   - monad-unify
@@ -3376,7 +3387,6 @@ broken-packages:
   - nix-freeze-tree
   - nixfromnpm
   - nixpkgs-update
-  - nix-thunk
   - nix-tools
   - nkjp
   - nlp-scores
@@ -3456,6 +3466,7 @@ broken-packages:
   - onama
   - ONC-RPC
   - on-demand-ssh-tunnel
+  - one-line-aeson-text
   - one-liner-instances
   - oneormore
   - onpartitions
@@ -3492,6 +3503,8 @@ broken-packages:
   - opentelemetry-http-client
   - opentheory-char
   - opentok
+  - opentracing-jaeger
+  - opentracing-zipkin-v1
   - opentype
   - OpenVGRaw
   - Operads
@@ -3533,6 +3546,7 @@ broken-packages:
   - overloaded
   - overloaded-records
   - overture
+  - owoify-hs
   - pack
   - package-description-remote
   - package-o-tron
@@ -3557,11 +3571,13 @@ broken-packages:
   - pandoc-filter-indent
   - pandoc-include
   - pandoc-lens
+  - pandoc-lua-marshal
   - pandoc-markdown-ghci-filter
   - pandoc-placetable
   - pandoc-pyplot
   - pandoc-unlit
   - pandoc-utils
+  - pandora-io
   - pang-a-lambda
   - pangraph
   - pan-os-syslog
@@ -3588,6 +3604,7 @@ broken-packages:
   - pareto
   - parochial
   - Parry
+  - parse
   - parseargs
   - parsec2
   - parsec3
@@ -3716,7 +3733,6 @@ broken-packages:
   - pi-forall
   - pig
   - pi-hoole
-  - pinch
   - pinchot
   - Pipe
   - pipes-async
@@ -3784,7 +3800,9 @@ broken-packages:
   - polydata-core
   - polynom
   - polynomial
-  - polysemy-plugin
+  - polysemy-check
+  - polysemy-http
+  - polysemy-process
   - polysemy-zoo
   - polytypeable
   - pomaps
@@ -3835,6 +3853,7 @@ broken-packages:
   - PPrinter
   - pqc
   - praglude
+  - prairie
   - preamble
   - precis
   - precursor
@@ -4362,6 +4381,7 @@ broken-packages:
   - servant-static-th
   - servant-streaming
   - servant-to-elm
+  - servant-tracing
   - servant-yaml
   - servant-zeppelin
   - server-generic
@@ -4722,6 +4742,7 @@ broken-packages:
   - stripe-http-streams
   - stripe-signature
   - stripe-tests
+  - stripe-wreq
   - strong-path
   - strongswan-sql
   - structural-traversal
@@ -4773,6 +4794,7 @@ broken-packages:
   - syb-with-class-instances-text
   - sydtest-aeson
   - sydtest-hedis
+  - sydtest-hspec
   - sydtest-mongo
   - sydtest-persistent-postgresql
   - sydtest-rabbitmq
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
index 7c106393dd9fc..bca6360dca2ce 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
@@ -67,8 +67,6 @@ core-packages:
 # tracked in stackage.yaml. Adding conflicting overrides with stackage here will
 # not work.
 default-package-overrides:
-  # This was only intended for ghc-7.0.4, and has very old deps, one hidden behind a flag
-  - MissingH ==1.4.2.0
   # gi-gdkx11-4.x requires gtk-4.x, which is still under development and
   # not yet available in Nixpkgs
   - gi-gdkx11 < 4
@@ -101,6 +99,37 @@ default-package-overrides:
   # 2021-11-18: lucid-{alpine, htmx} are not in stackage, so we need to downgrade them
   - lucid-alpine == 0.1.0.2
   - lucid-htmx == 0.1.0.2
+  # 2021-11-21: restrict haskell-gi-related packages to match stackage version (0.25)
+  - gi-girepository < 1.0.25
+  - gi-ggit < 1.0.11
+  - gi-gst < 1.0.25
+  - gi-gstaudio < 1.0.24
+  - gi-gstbase < 1.0.25
+  - gi-gstvideo < 1.0.25
+  - gi-gtksource < 3.0.25
+  - gi-ibus < 1.5.4
+  - gi-javascriptcore < 4.0.24
+  - gi-ostree < 1.0.15
+  - gi-notify < 0.7.24
+  - gi-pangocairo < 1.0.26
+  - gi-poppler < 0.18.26
+  - gi-secret < 0.0.14
+  - gi-soup < 2.4.25
+  - gi-vte < 2.91.29
+  - gi-webkit2 < 4.0.28
+  - gi-webkit2webextension < 4.0.27
+  - gi-wnck < 3.0.11
+  # gi-cogl, gi-coglpango, gi-clutter, gi-json, gi-rsvg are only available for haskell-gi >= 0.26
+  # 1.2.1.0 needs opaleye >= 0.8 which stackage doesn't provide
+  - rel8 < 1.2.1.0
+  # 0.14.0.0 drops support for every GHC < 9.0.1
+  - brittany < 0.14
+  # 1.2.0.0: “Dropped support for GHC <9.2 (might readd it later)”
+  - retrie < 1.2.0.0
+  # Compat with polysemy in Stackage LTS 18
+  - polysemy-resume < 0.1.0.2
+  - polysemy-conc < 0.5
+  - polysemy-mocks < 0.2
 
 extra-packages:
   - base16-bytestring < 1               # required for cabal-install etc.
@@ -113,7 +142,6 @@ extra-packages:
   - dhall == 1.29.0                     # required for ats-pkg
   - dhall == 1.38.1                     # required for spago
   - Diff < 0.4                          # required by liquidhaskell-0.8.10.2: https://github.com/ucsd-progsys/liquidhaskell/issues/1729
-  - ghc-tcplugins-extra ==0.3.2         # required for polysemy-plugin 0.2.5.0
   - haddock == 2.23.*                   # required on GHC < 8.10.x
   - haddock-api == 2.23.*               # required on GHC < 8.10.x
   - haddock-library ==1.7.*             # required by stylish-cabal-0.5.0.0
@@ -133,6 +161,10 @@ extra-packages:
   - ghc-lib == 9.0.1.*                  # 2021-11-05: Need one GHC 9.0.1 compatible version
   - ghc-lib-parser == 9.0.1.*           # 2021-11-05: Need one GHC 9.0.1 compatible version
   - ghc-lib-parser-ex == 9.0.*          # 2021-11-05: Need one GHC 9.0.1 compatible version
+  - doctest == 0.18.*                   # 2021-11-19: closest to stackage version for GHC 9.*
+  - brick == 0.64.*                     # 2021-12-03: matterhorn depends on brick < 0.65
+  - path == 0.9.0                       # 2021-12-03: path version building with stackage genvalidity and GHC 9.0.1
+  - ormolu == 0.3.*                     # 2021-12-03: for HLS with GHC 9.0.1
 
 package-maintainers:
   abbradar:
@@ -250,6 +282,7 @@ package-maintainers:
     - Unique
   maralorn:
     - cabal-fmt
+    - ema
     - generic-optics
     - ghcup
     - ghcid
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
index 858eeac1e297e..1c22787d28a62 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
@@ -1,4 +1,4 @@
-# Stackage LTS 18.16
+# Stackage LTS 18.19
 # This file is auto-generated by
 # maintainers/scripts/haskell/update-stackage.sh
 default-package-overrides:
@@ -32,8 +32,8 @@ default-package-overrides:
   - aeson-typescript ==0.3.0.1
   - aeson-with ==0.1.2.0
   - aeson-yak ==0.1.1.3
-  - aeson-yaml ==1.1.0.0
-  - Agda ==2.6.2
+  - aeson-yaml ==1.1.0.1
+  - Agda ==2.6.2.1
   - agda2lagda ==0.2021.6.1
   - al ==0.1.4.2
   - alarmclock ==0.7.0.5
@@ -142,10 +142,10 @@ default-package-overrides:
   - amqp ==0.22.0
   - amqp-utils ==0.6.3.2
   - annotated-wl-pprint ==0.7.0
-  - ansi-terminal ==0.11
+  - ansi-terminal ==0.11.1
   - ansi-wl-pprint ==0.6.9
   - ANum ==0.2.0.2
-  - apecs ==0.9.3
+  - apecs ==0.9.4
   - apecs-gloss ==0.2.4
   - apecs-physics ==0.4.5
   - api-field-json-th ==0.1.0.2
@@ -155,7 +155,7 @@ default-package-overrides:
   - appendmap ==0.1.5
   - apply-refact ==0.9.3.0
   - apportionment ==0.0.0.3
-  - approximate ==0.3.4
+  - approximate ==0.3.5
   - approximate-equality ==1.1.0.2
   - app-settings ==0.2.0.12
   - arbor-lru-cache ==0.1.1.1
@@ -164,13 +164,13 @@ default-package-overrides:
   - arrow-extras ==0.1.0.1
   - arrows ==0.4.4.2
   - ascii ==1.0.1.6
-  - ascii-case ==1.0.0.6
-  - ascii-char ==1.0.0.10
+  - ascii-case ==1.0.0.8
+  - ascii-char ==1.0.0.12
   - asciidiagram ==1.3.3.3
-  - ascii-group ==1.0.0.6
+  - ascii-group ==1.0.0.8
   - ascii-predicates ==1.0.0.6
   - ascii-progress ==0.3.3.0
-  - ascii-superset ==1.0.1.6
+  - ascii-superset ==1.0.1.8
   - ascii-th ==1.0.0.6
   - asn1-encoding ==0.9.6
   - asn1-parse ==0.9.5
@@ -200,7 +200,7 @@ default-package-overrides:
   - autoexporter ==1.1.20
   - auto-update ==0.1.6
   - avro ==0.5.2.0
-  - aws-cloudfront-signed-cookies ==0.2.0.8
+  - aws-cloudfront-signed-cookies ==0.2.0.10
   - aws-xray-client ==0.1.0.1
   - aws-xray-client-wai ==0.1.0.1
   - backprop ==0.2.6.4
@@ -232,7 +232,7 @@ default-package-overrides:
   - bcp47 ==0.2.0.4
   - bcp47-orphans ==0.1.0.4
   - bcrypt ==0.0.11
-  - bech32 ==1.1.1
+  - bech32 ==1.1.2
   - bech32-th ==1.0.2
   - bench ==1.0.12
   - benchpress ==0.2.2.18
@@ -263,7 +263,7 @@ default-package-overrides:
   - bits ==0.5.3
   - bitset-word8 ==0.1.1.2
   - bits-extra ==0.0.2.0
-  - bitvec ==1.1.1.0
+  - bitvec ==1.1.2.0
   - bitwise-enum ==1.0.1.0
   - blake2 ==0.3.0
   - blanks ==0.5.0
@@ -288,7 +288,7 @@ default-package-overrides:
   - bordacount ==0.1.0.0
   - boring ==0.2
   - both ==0.1.1.2
-  - bound ==2.0.3
+  - bound ==2.0.4
   - BoundedChan ==1.0.3.0
   - bounded-queue ==1.0.0
   - boundingboxes ==0.2.3
@@ -301,16 +301,16 @@ default-package-overrides:
   - btrfs ==0.2.0.0
   - buffer-builder ==0.2.4.7
   - buffer-pipe ==0.0
-  - bugsnag-haskell ==0.0.4.1
+  - bugsnag-haskell ==0.0.4.2
   - bugsnag-hs ==0.2.0.7
   - bugzilla-redhat ==0.3.3
-  - burrito ==1.2.0.2
+  - burrito ==1.2.0.4
   - butcher ==1.3.3.2
   - buttplug-hs-core ==0.1.0.1
   - bv ==0.5
   - bv-little ==1.1.1
   - byteable ==0.1.1
-  - byte-count-reader ==0.10.1.6
+  - byte-count-reader ==0.10.1.7
   - bytedump ==1.0
   - byte-order ==0.1.2.0
   - byteorder ==1.0.4
@@ -320,7 +320,7 @@ default-package-overrides:
   - bytestring-conversion ==0.3.1
   - bytestring-lexing ==0.5.0.8
   - bytestring-mmap ==0.2.2
-  - bytestring-strict-builder ==0.4.5.4
+  - bytestring-strict-builder ==0.4.5.5
   - bytestring-to-vector ==0.3.0.1
   - bytestring-tree-builder ==0.2.7.9
   - bz2 ==1.0.1.0
@@ -332,7 +332,7 @@ default-package-overrides:
   - cabal-appimage ==0.3.0.3
   - cabal-clean ==0.1.20210924
   - cabal-debian ==5.1
-  - cabal-doctest ==1.0.8
+  - cabal-doctest ==1.0.9
   - cabal-file ==0.1.1
   - cabal-flatpak ==0.1.0.2
   - cabal-plan ==0.7.2.0
@@ -358,7 +358,7 @@ default-package-overrides:
   - cassava-megaparsec ==2.0.4
   - cast ==0.1.0.2
   - category ==0.2.5.0
-  - cayley-client ==0.4.16
+  - cayley-client ==0.4.17
   - cborg ==0.2.6.0
   - cborg-json ==0.2.3.0
   - cdar-mBound ==0.1.0.4
@@ -399,7 +399,7 @@ default-package-overrides:
   - clash-ghc ==1.4.6
   - clash-lib ==1.4.6
   - clash-prelude ==1.4.6
-  - classy-prelude ==1.5.0
+  - classy-prelude ==1.5.0.2
   - classy-prelude-conduit ==1.5.0
   - clay ==0.13.3
   - clientsession ==0.9.1.2
@@ -442,7 +442,7 @@ default-package-overrides:
   - concise ==0.1.0.1
   - concurrency ==1.11.0.2
   - concurrent-extra ==0.7.0.12
-  - concurrent-output ==1.10.12
+  - concurrent-output ==1.10.14
   - concurrent-split ==0.0.1.1
   - concurrent-supply ==0.1.8
   - cond ==0.4.1.1
@@ -455,7 +455,7 @@ default-package-overrides:
   - conduit-parse ==0.2.1.0
   - conduit-zstd ==0.0.2.0
   - conferer ==1.1.0.0
-  - conferer-aeson ==1.1.0.1
+  - conferer-aeson ==1.1.0.2
   - conferer-hspec ==1.1.0.0
   - conferer-warp ==1.1.0.0
   - config-ini ==0.2.4.0
@@ -466,7 +466,7 @@ default-package-overrides:
   - connection-pool ==0.2.2
   - console-style ==0.0.2.1
   - constraint ==0.1.4.0
-  - constraints ==0.13.1
+  - constraints ==0.13.2
   - constraints-extras ==0.3.2.0
   - constraint-tuples ==0.1.2
   - construct ==0.3.0.2
@@ -490,7 +490,7 @@ default-package-overrides:
   - crackNum ==3.1
   - crc32c ==0.0.0
   - credential-store ==0.1.2
-  - criterion ==1.5.11.0
+  - criterion ==1.5.12.0
   - criterion-measurement ==0.1.3.0
   - cron ==0.7.0
   - crypto-api ==0.13.3
@@ -499,9 +499,9 @@ default-package-overrides:
   - cryptohash ==0.11.9
   - cryptohash-cryptoapi ==0.1.4
   - cryptohash-md5 ==0.11.101.0
-  - cryptohash-sha1 ==0.11.100.1
+  - cryptohash-sha1 ==0.11.101.0
   - cryptohash-sha256 ==0.11.102.1
-  - cryptohash-sha512 ==0.11.100.1
+  - cryptohash-sha512 ==0.11.101.0
   - cryptonite ==0.29
   - cryptonite-conduit ==0.2.2
   - cryptonite-openssl ==0.7
@@ -523,13 +523,13 @@ default-package-overrides:
   - curl ==1.3.8
   - currencies ==0.2.0.0
   - currency ==0.2.0.0
-  - cursor ==0.3.0.0
-  - cursor-brick ==0.1.0.0
+  - cursor ==0.3.2.0
+  - cursor-brick ==0.1.0.1
   - cursor-fuzzy-time ==0.0.0.0
   - cursor-gen ==0.3.0.0
   - cutter ==0.0
   - cyclotomic ==1.1.1
-  - czipwith ==1.0.1.3
+  - czipwith ==1.0.1.4
   - d10 ==0.2.1.6
   - data-accessor ==0.2.3
   - data-accessor-mtl ==0.2.0.4
@@ -548,10 +548,10 @@ default-package-overrides:
   - data-default-instances-old-locale ==0.0.1
   - data-diverse ==4.7.0.0
   - datadog ==0.2.5.0
-  - data-dword ==0.3.2
+  - data-dword ==0.3.2.1
   - data-endian ==0.1.1
   - data-fix ==0.3.2
-  - data-forest ==0.1.0.8
+  - data-forest ==0.1.0.9
   - data-has ==0.4.0.0
   - data-hash ==0.2.0.1
   - data-interval ==2.1.1
@@ -584,18 +584,18 @@ default-package-overrides:
   - dense-linear-algebra ==0.1.0.0
   - dependent-map ==0.4.0.0
   - dependent-sum ==0.7.1.0
-  - dependent-sum-template ==0.1.0.3
+  - dependent-sum-template ==0.1.1.1
   - depq ==0.4.2
   - deque ==0.4.4
   - deriveJsonNoPrefix ==0.1.0.1
   - derive-topdown ==0.0.2.2
-  - deriving-aeson ==0.2.7
+  - deriving-aeson ==0.2.8
   - deriving-compat ==0.5.10
   - derulo ==1.0.10
   - dhall ==1.39.0
   - dhall-bash ==1.0.37
   - dhall-json ==1.7.7
-  - dhall-lsp-server ==1.0.16
+  - dhall-lsp-server ==1.0.17
   - dhall-yaml ==1.2.7
   - diagrams-solve ==0.1.3
   - dialogflow-fulfillment ==0.1.1.4
@@ -614,7 +614,6 @@ default-package-overrides:
   - distributed-closure ==0.4.2.0
   - distribution-opensuse ==1.1.1
   - distributive ==0.6.2.1
-  - dl-fedora ==0.9.2
   - dlist ==1.0
   - dlist-instances ==0.1.1.1
   - dlist-nonempty ==0.1.1
@@ -624,7 +623,7 @@ default-package-overrides:
   - doctemplates ==0.9
   - doctest ==0.17
   - doctest-discover ==0.2.0.0
-  - doctest-driver-gen ==0.3.0.4
+  - doctest-driver-gen ==0.3.0.5
   - doctest-exitcode-stdio ==0.0
   - doctest-extract ==0.1
   - doctest-lib ==0.1
@@ -658,7 +657,7 @@ default-package-overrides:
   - edit-distance ==0.2.2.1
   - edit-distance-vector ==1.0.0.4
   - editor-open ==0.6.0.0
-  - egison ==4.1.2
+  - egison ==4.1.3
   - egison-pattern-src ==0.2.1.2
   - egison-pattern-src-th-mode ==0.2.1.2
   - either ==5.0.1.1
@@ -703,7 +702,7 @@ default-package-overrides:
   - error-or-utils ==0.1.1
   - errors ==2.3.0
   - errors-ext ==0.4.2
-  - ersatz ==0.4.9
+  - ersatz ==0.4.10
   - esqueleto ==3.5.3.0
   - essence-of-live-coding ==0.2.5
   - essence-of-live-coding-gloss ==0.2.5
@@ -721,7 +720,7 @@ default-package-overrides:
   - exception-hierarchy ==0.1.0.4
   - exception-mtl ==0.4.0.1
   - exceptions ==0.10.4
-  - exception-transformers ==0.4.0.10
+  - exception-transformers ==0.4.0.11
   - exception-via ==0.1.0.0
   - executable-path ==0.0.3.1
   - exit-codes ==1.0.0
@@ -760,7 +759,7 @@ default-package-overrides:
   - file-embed-lzma ==0
   - filelock ==0.1.1.5
   - filemanip ==0.3.6.3
-  - filepath-bytestring ==1.4.2.1.8
+  - filepath-bytestring ==1.4.2.1.9
   - file-path-th ==0.1.0.0
   - filepattern ==0.1.2
   - fileplow ==0.1.0.0
@@ -775,7 +774,7 @@ default-package-overrides:
   - fixed ==0.3
   - fixed-length ==0.2.3
   - fixed-vector ==1.2.0.0
-  - fixed-vector-hetero ==0.6.1.0
+  - fixed-vector-hetero ==0.6.1.1
   - fix-whitespace ==0.0.7
   - flac ==0.2.0
   - flac-picture ==0.1.2
@@ -785,7 +784,7 @@ default-package-overrides:
   - flexible-defaults ==0.0.3
   - FloatingHex ==0.5
   - floatshow ==0.2.4
-  - flow ==1.0.22
+  - flow ==1.0.23
   - flush-queue ==1.0.0
   - fmlist ==0.9.4
   - fmt ==0.6.3.0
@@ -796,7 +795,7 @@ default-package-overrides:
   - fold-debounce ==0.2.0.9
   - fold-debounce-conduit ==0.2.0.6
   - foldl ==1.4.12
-  - folds ==0.7.6
+  - folds ==0.7.7
   - follow-file ==0.0.3
   - FontyFruity ==0.5.3.5
   - foreign-store ==0.2
@@ -829,7 +828,7 @@ default-package-overrides:
   - fuzzcheck ==0.1.1
   - fuzzy ==0.1.0.1
   - fuzzy-dates ==0.1.1.2
-  - fuzzyset ==0.2.1
+  - fuzzyset ==0.2.2
   - fuzzy-time ==0.1.0.0
   - gauge ==0.2.5
   - gd ==3000.7.3
@@ -886,7 +885,7 @@ default-package-overrides:
   - ghc-byteorder ==4.11.0.0.10
   - ghc-check ==0.5.0.6
   - ghc-core ==0.5.6
-  - ghc-events ==0.17.0
+  - ghc-events ==0.17.0.1
   - ghc-exactprint ==0.6.4
   - ghcid ==0.8.7
   - ghci-hexcalc ==0.1.1.0
@@ -900,11 +899,11 @@ default-package-overrides:
   - ghc-source-gen ==0.4.2.0
   - ghc-syntax-highlighter ==0.0.6.0
   - ghc-tcplugins-extra ==0.4.2
-  - ghc-trace-events ==0.1.2.3
+  - ghc-trace-events ==0.1.2.4
   - ghc-typelits-extra ==0.4.3
   - ghc-typelits-knownnat ==0.7.6
   - ghc-typelits-natnormalise ==0.7.6
-  - ghc-typelits-presburger ==0.6.0.0
+  - ghc-typelits-presburger ==0.6.2.0
   - ghost-buster ==0.1.1.0
   - gi-atk ==2.0.23
   - gi-cairo ==1.0.25
@@ -919,7 +918,7 @@ default-package-overrides:
   - gi-gobject ==2.0.26
   - gi-graphene ==1.0.3
   - gi-gtk ==3.0.37
-  - gi-gtk-hs ==0.3.10
+  - gi-gtk-hs ==0.3.12
   - gi-harfbuzz ==0.0.4
   - ginger ==0.10.1.0
   - gingersnap ==0.3.1.0
@@ -935,17 +934,17 @@ default-package-overrides:
   - gl ==0.9
   - glabrous ==2.0.5
   - GLFW-b ==3.3.0.0
-  - Glob ==0.10.1
+  - Glob ==0.10.2
   - gloss ==1.13.2.1
   - gloss-rendering ==1.13.1.1
-  - GLURaw ==2.0.0.4
+  - GLURaw ==2.0.0.5
   - GLUT ==2.7.0.16
   - gluturtle ==0.0.58.1
   - gnuplot ==0.5.6.1
   - goldplate ==0.2.0
   - google-isbn ==1.0.3
   - gopher-proxy ==0.1.1.2
-  - gothic ==0.1.7
+  - gothic ==0.1.8
   - gpolyline ==0.1.0.1
   - graph-core ==0.3.0.0
   - graphite ==0.10.0.1
@@ -955,9 +954,9 @@ default-package-overrides:
   - graphviz ==2999.20.1.0
   - graph-wrapper ==0.2.6.0
   - gravatar ==0.8.0
-  - greskell ==1.2.0.1
-  - greskell-core ==0.1.3.6
-  - greskell-websocket ==0.1.2.5
+  - greskell ==1.2.0.2
+  - greskell-core ==0.1.3.7
+  - greskell-websocket ==0.1.2.6
   - groom ==0.1.2.1
   - group-by-date ==0.1.0.4
   - groups ==0.5.3
@@ -1011,7 +1010,7 @@ default-package-overrides:
   - hasql-transaction ==1.0.1
   - hasty-hamiltonian ==1.3.4
   - HaTeX ==3.22.3.0
-  - HaXml ==1.25.7
+  - HaXml ==1.25.8
   - haxr ==3000.11.4.1
   - HCodecs ==0.5.2
   - hdaemonize ==0.5.6
@@ -1027,7 +1026,7 @@ default-package-overrides:
   - hedgehog-fn ==1.0
   - hedgehog-quickcheck ==0.1.1
   - hedis ==0.14.4
-  - hedn ==0.3.0.3
+  - hedn ==0.3.0.4
   - here ==1.2.13
   - heredoc ==0.2.0.0
   - heterocephalus ==1.0.5.4
@@ -1046,7 +1045,7 @@ default-package-overrides:
   - highlighting-kate ==0.6.4
   - hinfo ==0.0.3.0
   - hinotify ==0.4.1
-  - hint ==0.9.0.4
+  - hint ==0.9.0.5
   - hjsmin ==0.2.0.4
   - hkd-default ==1.1.0.0
   - hkgr ==0.3
@@ -1072,7 +1071,7 @@ default-package-overrides:
   - hnock ==0.4.0
   - hoauth2 ==1.16.0
   - hoogle ==5.0.18.2
-  - hOpenPGP ==2.9.5
+  - hOpenPGP ==2.9.7
   - hopenpgp-tools ==0.23.6
   - hopenssl ==2.2.4
   - hopfli ==0.2.2.1
@@ -1082,7 +1081,7 @@ default-package-overrides:
   - hourglass ==0.2.12
   - hourglass-orphans ==0.1.0.0
   - hp2pretty ==0.10
-  - hpack ==0.34.5
+  - hpack ==0.34.6
   - hpack-dhall ==0.5.3
   - hpc-codecov ==0.3.0.0
   - hpc-lcov ==1.0.1
@@ -1127,7 +1126,7 @@ default-package-overrides:
   - hspec-leancheck ==0.0.6
   - hspec-megaparsec ==2.2.0
   - hspec-meta ==2.7.8
-  - hspec-need-env ==0.1.0.7
+  - hspec-need-env ==0.1.0.8
   - hspec-parsec ==0
   - hspec-smallcheck ==0.5.2
   - hspec-tables ==0.0.1
@@ -1137,9 +1136,9 @@ default-package-overrides:
   - hsshellscript ==3.5.0
   - hs-tags ==0.1.5.2
   - HStringTemplate ==0.8.8
-  - HSvm ==0.1.1.3.22
+  - HSvm ==0.1.1.3.25
   - HsYAML ==0.2.1.0
-  - HsYAML-aeson ==0.2.0.0
+  - HsYAML-aeson ==0.2.0.1
   - hsyslog ==5.0.2
   - htaglib ==1.2.0
   - HTF ==0.14.0.6
@@ -1158,12 +1157,12 @@ default-package-overrides:
   - http-common ==0.8.3.4
   - http-conduit ==2.3.8
   - http-date ==0.0.11
-  - http-directory ==0.1.8
+  - http-directory ==0.1.9
   - http-download ==0.2.0.0
   - httpd-shed ==0.4.1.1
   - http-link-header ==1.2.1
   - http-media ==0.8.0.0
-  - http-query ==0.1.0.1
+  - http-query ==0.1.1
   - http-reverse-proxy ==0.6.0
   - http-streams ==0.8.9.4
   - http-types ==0.12.3
@@ -1207,14 +1206,14 @@ default-package-overrides:
   - hxt-unicode ==9.0.2.4
   - hybrid-vectors ==0.2.2
   - hyper ==0.2.1.1
-  - hyperloglog ==0.4.4
+  - hyperloglog ==0.4.5
   - hyphenation ==0.8.2
   - iconv ==0.4.1.3
   - identicon ==0.2.2
   - ieee754 ==0.8.0
   - if ==0.1.0.0
   - iff ==0.0.6
-  - ihaskell ==0.10.2.1
+  - ihaskell ==0.10.2.2
   - ihs ==0.1.0.3
   - ilist ==0.4.0.1
   - imagesize-conduit ==1.1
@@ -1233,20 +1232,20 @@ default-package-overrides:
   - indexed-traversable-instances ==0.1
   - infer-license ==0.2.0
   - inflections ==0.4.0.6
-  - influxdb ==1.9.2.1
+  - influxdb ==1.9.2.2
   - ini ==0.4.1
   - inj ==1.0
   - inline-c ==0.9.1.5
   - inline-c-cpp ==0.4.0.3
-  - inline-r ==0.10.4
+  - inline-r ==0.10.5
   - inliterate ==0.1.0
   - input-parsers ==0.2.3.1
-  - insert-ordered-containers ==0.2.5
+  - insert-ordered-containers ==0.2.5.1
   - inspection-testing ==0.4.6.0
   - instance-control ==0.1.2.0
   - int-cast ==0.2.0.0
   - integer-logarithms ==1.0.3.1
-  - integer-roots ==1.0.0.1
+  - integer-roots ==1.0.2.0
   - integration ==0.2.1
   - intern ==0.9.4
   - interpolate ==0.2.1
@@ -1272,7 +1271,7 @@ default-package-overrides:
   - iproute ==1.7.12
   - IPv6Addr ==2.0.3
   - ipynb ==0.1.0.2
-  - ipython-kernel ==0.10.2.1
+  - ipython-kernel ==0.10.2.2
   - irc ==0.6.1.0
   - irc-client ==1.1.2.2
   - irc-conduit ==0.3.0.5
@@ -1299,7 +1298,7 @@ default-package-overrides:
   - js-flot ==0.8.3
   - js-jquery ==3.3.1
   - json ==0.10
-  - json-feed ==1.0.14
+  - json-feed ==1.0.15
   - jsonifier ==0.1.1
   - jsonpath ==0.2.0.0
   - json-rpc ==1.0.3
@@ -1310,11 +1309,11 @@ default-package-overrides:
   - JuicyPixels-scale-dct ==0.1.2
   - junit-xml ==0.1.0.2
   - justified-containers ==0.3.0.0
-  - jwt ==0.10.0
+  - jwt ==0.10.1
   - kan-extensions ==5.2.3
   - kanji ==3.4.1
   - katip ==0.8.7.0
-  - katip-logstash ==0.1.0.0
+  - katip-logstash ==0.1.0.2
   - kawhi ==0.3.0
   - kazura-queue ==0.1.0.4
   - kdt ==0.2.4
@@ -1332,7 +1331,7 @@ default-package-overrides:
   - kubernetes-webhook-haskell ==0.2.0.3
   - l10n ==0.1.0.1
   - labels ==0.3.3
-  - lackey ==1.0.15
+  - lackey ==1.0.16
   - lambdabot-core ==5.3.0.2
   - LambdaHack ==0.10.3.0
   - lame ==0.2.0
@@ -1345,7 +1344,7 @@ default-package-overrides:
   - language-javascript ==0.7.1.0
   - language-protobuf ==1.0.1
   - language-python ==0.5.8
-  - language-thrift ==0.12.0.0
+  - language-thrift ==0.12.0.1
   - lapack ==0.3.2
   - lapack-carray ==0.0.3
   - lapack-comfort-array ==0.0.1
@@ -1364,13 +1363,13 @@ default-package-overrides:
   - leapseconds-announced ==2017.1.0.1
   - learn-physics ==0.6.5
   - lens ==4.19.2
-  - lens-action ==0.2.5
-  - lens-aeson ==1.1.2
+  - lens-action ==0.2.6
+  - lens-aeson ==1.1.3
   - lens-csv ==0.1.1.0
   - lens-datetime ==0.3
   - lens-family ==2.0.0
   - lens-family-core ==2.0.0
-  - lens-family-th ==0.5.2.0
+  - lens-family-th ==0.5.2.1
   - lens-misc ==0.0.2.0
   - lens-process ==0.4.0.0
   - lens-properties ==4.11.1
@@ -1378,7 +1377,7 @@ default-package-overrides:
   - lens-regex-pcre ==1.1.0.0
   - lenz ==0.4.2.0
   - leveldb-haskell ==0.6.5
-  - libBF ==0.6.2
+  - libBF ==0.6.3
   - libffi ==0.1
   - libgit ==0.3.1
   - libgraph ==1.14
@@ -1404,7 +1403,7 @@ default-package-overrides:
   - list-predicate ==0.1.0.1
   - listsafe ==0.1.0.1
   - list-singleton ==1.0.0.5
-  - list-t ==1.0.5
+  - list-t ==1.0.5.1
   - list-transformer ==1.0.7
   - ListTree ==0.2.3
   - literatex ==0.1.0.2
@@ -1417,13 +1416,13 @@ default-package-overrides:
   - locators ==0.3.0.3
   - loch-th ==0.2.2
   - lockfree-queue ==0.2.3.1
-  - log-domain ==0.13.1
+  - log-domain ==0.13.2
   - logfloat ==0.13.4
   - logging ==3.0.5
-  - logging-facade ==0.3.0
+  - logging-facade ==0.3.1
   - logging-facade-syslog ==1
   - logict ==0.7.1.0
-  - logstash ==0.1.0.1
+  - logstash ==0.1.0.3
   - loop ==0.3.0
   - lrucache ==1.2.0.1
   - lrucaching ==0.3.3
@@ -1445,7 +1444,7 @@ default-package-overrides:
   - mainland-pretty ==0.7.1
   - main-tester ==0.2.0.1
   - makefile ==1.1.0.0
-  - managed ==1.0.8
+  - managed ==1.0.9
   - MapWith ==0.2.0.0
   - markdown ==0.1.17.5
   - markdown-unlit ==0.5.1
@@ -1458,7 +1457,7 @@ default-package-overrides:
   - mathexpr ==0.3.0.0
   - math-extras ==0.1.1.0
   - math-functions ==0.3.4.2
-  - matplotlib ==0.7.6
+  - matplotlib ==0.7.7
   - matrices ==0.5.0
   - matrix ==0.3.6.1
   - matrix-as-xyz ==0.1.2.2
@@ -1490,7 +1489,7 @@ default-package-overrides:
   - microlens-contra ==0.1.0.2
   - microlens-ghc ==0.4.13.1
   - microlens-mtl ==0.2.0.1
-  - microlens-platform ==0.4.2
+  - microlens-platform ==0.4.2.1
   - microlens-process ==0.2.0.2
   - microlens-th ==0.4.3.10
   - microspec ==0.2.1.3
@@ -1507,7 +1506,7 @@ default-package-overrides:
   - minio-hs ==1.5.3
   - miniutter ==0.5.1.1
   - min-max-pqueue ==0.1.0.2
-  - mintty ==0.1.2
+  - mintty ==0.1.3
   - missing-foreign ==0.1.1
   - mixed-types-num ==0.5.9.1
   - mltool ==0.2.0.1
@@ -1582,7 +1581,7 @@ default-package-overrides:
   - murmur3 ==1.0.5
   - murmur-hash ==0.1.0.10
   - MusicBrainz ==0.4.1
-  - mustache ==2.3.1
+  - mustache ==2.3.2
   - mutable-containers ==0.3.4
   - mwc-probability ==2.3.1
   - mwc-random ==0.15.0.2
@@ -1639,7 +1638,7 @@ default-package-overrides:
   - nonemptymap ==0.0.6.0
   - non-empty-sequence ==0.2.0.4
   - nonempty-vector ==0.2.1.0
-  - nonempty-zipper ==1.0.0.2
+  - nonempty-zipper ==1.0.0.3
   - non-negative ==0.1.2
   - not-gloss ==0.7.7.0
   - no-value ==1.0.0.0
@@ -1661,10 +1660,10 @@ default-package-overrides:
   - nvim-hs-contrib ==2.0.0.0
   - nvim-hs-ghcid ==2.0.0.0
   - oauthenticated ==0.2.1.0
-  - ObjectName ==1.1.0.1
+  - ObjectName ==1.1.0.2
   - o-clock ==1.2.1
   - odbc ==0.2.5
-  - oeis2 ==1.0.5
+  - oeis2 ==1.0.6
   - ofx ==0.4.4.0
   - old-locale ==1.0.0.7
   - old-time ==1.1.0.3
@@ -1673,13 +1672,13 @@ default-package-overrides:
   - OneTuple ==0.2.2.1
   - Only ==0.1
   - oo-prototypes ==0.1.0.0
-  - opaleye ==0.7.6.1
+  - opaleye ==0.7.6.2
   - OpenAL ==1.7.0.5
   - openapi3 ==3.1.0
   - open-browser ==0.2.1.0
   - openexr-write ==0.1.0.2
   - OpenGL ==3.0.3.0
-  - OpenGLRaw ==3.3.4.0
+  - OpenGLRaw ==3.3.4.1
   - openpgp-asciiarmor ==0.1.2
   - opensource ==0.1.1.0
   - openssl-streams ==1.2.3.0
@@ -1687,7 +1686,7 @@ default-package-overrides:
   - opentelemetry-extra ==0.7.0
   - opentelemetry-lightstep ==0.7.0
   - opentelemetry-wai ==0.7.0
-  - operational ==0.2.4.0
+  - operational ==0.2.4.1
   - operational-class ==0.3.0.0
   - optics ==0.3
   - optics-core ==0.3.0.1
@@ -1697,7 +1696,7 @@ default-package-overrides:
   - optional-args ==1.0.2
   - options ==1.2.1.1
   - optparse-applicative ==0.16.1.0
-  - optparse-generic ==1.4.6
+  - optparse-generic ==1.4.7
   - optparse-simple ==0.1.1.4
   - optparse-text ==0.1.1.0
   - ordered-containers ==0.2.2
@@ -1779,7 +1778,7 @@ default-package-overrides:
   - pipes-attoparsec ==0.5.1.5
   - pipes-binary ==0.4.3
   - pipes-bytestring ==2.1.7
-  - pipes-concurrency ==2.0.12
+  - pipes-concurrency ==2.0.14
   - pipes-csv ==1.4.3
   - pipes-extras ==1.0.15
   - pipes-fastx ==0.3.0.0
@@ -1823,7 +1822,7 @@ default-package-overrides:
   - postgrest ==7.0.1
   - post-mess-age ==0.2.1.0
   - pptable ==0.3.0.0
-  - pqueue ==1.4.1.3
+  - pqueue ==1.4.1.4
   - prairie ==0.0.1.0
   - prefix-units ==0.2.0
   - prelude-compat ==0.0.0.2
@@ -1848,13 +1847,13 @@ default-package-overrides:
   - primitive-addr ==0.1.0.2
   - primitive-extras ==0.10.1
   - primitive-unaligned ==0.1.1.1
-  - primitive-unlifted ==0.1.3.0
+  - primitive-unlifted ==0.1.3.1
   - prim-uniq ==0.2
   - print-console-colors ==0.1.0.0
   - probability ==0.2.7
   - process-extras ==0.7.4
   - product-isomorphic ==0.0.3.3
-  - product-profunctors ==0.11.0.2
+  - product-profunctors ==0.11.0.3
   - profiterole ==0.1
   - profunctors ==5.6.2
   - projectroot ==0.2.0.1
@@ -1876,13 +1875,13 @@ default-package-overrides:
   - protolude ==0.3.0
   - proxied ==0.3.1
   - psqueues ==0.2.7.3
-  - ptr-poker ==0.1.1.4
+  - ptr-poker ==0.1.2.3
   - publicsuffix ==0.20200526
   - pulse-simple ==0.1.14
   - pureMD5 ==2.1.4
   - purescript-bridge ==0.14.0.0
   - pushbullet-types ==0.4.1.0
-  - pusher-http-haskell ==2.1.0.5
+  - pusher-http-haskell ==2.1.0.7
   - pvar ==1.0.0.0
   - PyF ==0.9.0.3
   - qchas ==1.1.0.1
@@ -1910,7 +1909,7 @@ default-package-overrides:
   - rainbow ==0.34.2.2
   - rainbox ==0.26.0.0
   - ral ==0.2
-  - rampart ==1.1.0.3
+  - rampart ==1.1.0.4
   - ramus ==0.1.2
   - rando ==0.0.0.4
   - random ==1.2.0
@@ -1927,12 +1926,12 @@ default-package-overrides:
   - rank2classes ==1.4.3
   - Rasterific ==0.7.5.4
   - rasterific-svg ==0.3.3.2
-  - ratel ==1.0.16
+  - ratel ==1.0.17
   - rate-limit ==1.4.2
   - ratel-wai ==1.1.5
   - rattle ==0.2
   - rattletrap ==11.1.1
-  - Rattus ==0.5
+  - Rattus ==0.5.0.1
   - rawfilepath ==0.2.4
   - rawstring-qm ==0.2.3.0
   - raw-strings-qq ==1.1
@@ -1945,7 +1944,7 @@ default-package-overrides:
   - read-env-var ==1.0.0.0
   - reanimate ==1.1.4.0
   - reanimate-svg ==0.13.0.1
-  - rebase ==1.13.0.1
+  - rebase ==1.13.2
   - record-dot-preprocessor ==0.2.13
   - record-hasfield ==1.0
   - records-sop ==0.1.1.0
@@ -1961,11 +1960,11 @@ default-package-overrides:
   - reform-hamlet ==0.0.5.3
   - reform-happstack ==0.2.5.4
   - RefSerialize ==0.4.0
-  - ref-tf ==0.5
-  - regex ==1.1.0.0
+  - ref-tf ==0.5.0.1
+  - regex ==1.1.0.1
   - regex-applicative ==0.3.4
   - regex-applicative-text ==0.1.0.1
-  - regex-base ==0.94.0.1
+  - regex-base ==0.94.0.2
   - regex-compat ==0.95.2.1
   - regex-compat-tdfa ==0.95.1.4
   - regex-pcre ==0.95.0.0
@@ -1973,15 +1972,15 @@ default-package-overrides:
   - regex-posix ==0.96.0.1
   - regex-posix-clib ==2.7
   - regex-tdfa ==1.3.1.1
-  - regex-with-pcre ==1.1.0.0
-  - registry ==0.2.0.3
+  - regex-with-pcre ==1.1.0.1
+  - registry ==0.2.1.0
   - reinterpret-cast ==0.1.0
   - relapse ==1.0.0.0
   - relational-query ==0.12.3.0
   - relational-query-HDBC ==0.7.2.0
   - relational-record ==0.2.2.0
   - relational-schemas ==0.1.8.0
-  - reliable-io ==0.0.1
+  - reliable-io ==0.0.2
   - relude ==0.7.0.0
   - renderable ==0.2.0.1
   - replace-attoparsec ==1.4.5.0
@@ -1989,7 +1988,7 @@ default-package-overrides:
   - repline ==0.4.0.0
   - req ==3.9.0
   - req-conduit ==1.0.1
-  - rerebase ==1.13.0.1
+  - rerebase ==1.13.2
   - rescue ==0.4.2.1
   - resistor-cube ==0.0.1.2
   - resolv ==0.1.2.0
@@ -2030,7 +2029,7 @@ default-package-overrides:
   - safe-exceptions ==0.1.7.2
   - safe-foldable ==0.1.0.0
   - safeio ==0.0.5.0
-  - safe-json ==1.1.1.1
+  - safe-json ==1.1.2.0
   - safe-money ==0.9.1
   - SafeSemaphore ==0.10.1
   - safe-tensor ==0.2.1.1
@@ -2107,7 +2106,7 @@ default-package-overrides:
   - servant-machines ==0.15.1
   - servant-multipart ==0.12.1
   - servant-multipart-api ==0.12.1
-  - servant-openapi3 ==2.0.1.2
+  - servant-openapi3 ==2.0.1.3
   - servant-pipes ==0.15.3
   - servant-rawm ==1.0.0.0
   - servant-server ==0.18.3
@@ -2142,7 +2141,7 @@ default-package-overrides:
   - show-combinators ==0.2.0.0
   - siggy-chardust ==1.0.0
   - signal ==0.1.0.4
-  - silently ==1.2.5.1
+  - silently ==1.2.5.2
   - simple-affine-space ==0.1.1
   - simple-cabal ==0.1.3
   - simple-cmd ==0.2.3
@@ -2157,7 +2156,7 @@ default-package-overrides:
   - singleton-bool ==0.1.5
   - singleton-nats ==0.4.5
   - singletons ==2.7
-  - singletons-presburger ==0.6.0.0
+  - singletons-presburger ==0.6.1.0
   - siphash ==1.0.3
   - Sit ==0.2021.1.18
   - sitemap-gen ==0.1.0.0
@@ -2195,7 +2194,7 @@ default-package-overrides:
   - sourcemap ==0.1.6.1
   - sox ==0.2.3.1
   - soxlib ==0.0.3.1
-  - spacecookie ==1.0.0.0
+  - spacecookie ==1.0.0.1
   - sparse-linear-algebra ==0.3.1
   - sparse-tensor ==0.2.1.5
   - spatial-math ==0.5.0.1
@@ -2237,11 +2236,11 @@ default-package-overrides:
   - stm-split ==0.0.2.1
   - stopwatch ==0.1.0.6
   - storable-complex ==0.2.3.0
-  - storable-endian ==0.2.6
+  - storable-endian ==0.2.6.1
   - storable-record ==0.0.5
   - storable-tuple ==0.0.3.3
   - storablevector ==0.2.13.1
-  - store ==0.7.12
+  - store ==0.7.14
   - store-core ==0.4.4.4
   - store-streaming ==0.2.0.3
   - stratosphere ==0.59.1
@@ -2249,7 +2248,7 @@ default-package-overrides:
   - streaming ==0.2.3.0
   - streaming-attoparsec ==1.0.0.1
   - streaming-bytestring ==0.2.1
-  - streaming-commons ==0.2.2.1
+  - streaming-commons ==0.2.2.3
   - streamly ==0.7.3
   - streams ==3.3
   - streamt ==0.5.0.0
@@ -2284,10 +2283,10 @@ default-package-overrides:
   - swagger ==0.3.0
   - swagger2 ==2.6
   - sweet-egison ==0.1.1.3
-  - swish ==0.10.0.7
+  - swish ==0.10.0.8
   - syb ==0.7.2.1
   - sydtest ==0.2.0.0
-  - sydtest-discover ==0.0.0.0
+  - sydtest-discover ==0.0.0.1
   - sydtest-persistent-sqlite ==0.1.0.0
   - sydtest-servant ==0.1.0.0
   - sydtest-wai ==0.1.0.0
@@ -2314,7 +2313,7 @@ default-package-overrides:
   - tar ==0.5.1.1
   - tar-conduit ==0.3.2
   - tardis ==0.4.3.0
-  - tasty ==1.4.2
+  - tasty ==1.4.2.1
   - tasty-ant-xml ==1.1.8
   - tasty-bench ==0.2.5
   - tasty-dejafu ==2.0.0.8
@@ -2331,7 +2330,7 @@ default-package-overrides:
   - tasty-leancheck ==0.0.2
   - tasty-lua ==0.2.3.2
   - tasty-program ==1.0.5
-  - tasty-quickcheck ==0.10.1.2
+  - tasty-quickcheck ==0.10.2
   - tasty-rerun ==1.1.18
   - tasty-silver ==3.2.3
   - tasty-smallcheck ==0.8.2
@@ -2358,7 +2357,7 @@ default-package-overrides:
   - test-framework-smallcheck ==0.2
   - test-fun ==0.1.0.0
   - testing-type-modifiers ==0.1.0.1
-  - texmath ==0.12.3.2
+  - texmath ==0.12.3.3
   - text-ansi ==0.1.1
   - text-binary ==0.2.1.1
   - text-builder ==0.6.6.3
@@ -2371,7 +2370,7 @@ default-package-overrides:
   - text-manipulate ==0.3.0.0
   - text-metrics ==0.3.1
   - text-postgresql ==0.0.3.1
-  - text-printer ==0.5.0.1
+  - text-printer ==0.5.0.2
   - text-regex-replace ==0.1.1.4
   - text-region ==0.3.1.0
   - text-short ==0.1.3
@@ -2392,9 +2391,9 @@ default-package-overrides:
   - these-optics ==1.0.1.2
   - these-skinny ==0.7.4
   - th-expand-syns ==0.4.8.0
-  - th-extras ==0.0.0.4
+  - th-extras ==0.0.0.5
   - th-lift ==0.8.2
-  - th-lift-instances ==0.1.18
+  - th-lift-instances ==0.1.19
   - th-nowq ==0.1.0.5
   - th-orphans ==0.13.12
   - th-printf ==0.7
@@ -2409,7 +2408,7 @@ default-package-overrides:
   - through-text ==0.1.0.0
   - throwable-exceptions ==0.1.0.9
   - th-strict-compat ==0.1.0.1
-  - th-test-utils ==1.1.0
+  - th-test-utils ==1.1.1
   - th-utilities ==0.2.4.3
   - thyme ==0.3.5.5
   - tidal ==1.7.8
@@ -2430,7 +2429,7 @@ default-package-overrides:
   - tinylog ==0.15.0
   - titlecase ==1.0.1
   - tldr ==0.9.2
-  - tls ==1.5.5
+  - tls ==1.5.6
   - tls-debug ==0.4.8
   - tls-session-manager ==0.0.4
   - tlynx ==0.5.1.1
@@ -2451,7 +2450,7 @@ default-package-overrides:
   - tree-diff ==0.2.1
   - tree-fun ==0.8.1.0
   - tree-view ==0.5.1
-  - trifecta ==2.1.1
+  - trifecta ==2.1.2
   - triplesec ==0.2.2.1
   - trivial-constraint ==0.7.0.0
   - tsv2csv ==0.1.0.2
@@ -2462,10 +2461,10 @@ default-package-overrides:
   - tuples-homogenous-h98 ==0.1.1.0
   - tuple-sop ==0.3.1.0
   - tuple-th ==0.2.5
-  - turtle ==1.5.22
+  - turtle ==1.5.23
   - typecheck-plugin-nat-simple ==0.1.0.2
   - TypeCompose ==0.9.14
-  - typed-process ==0.2.7.0
+  - typed-process ==0.2.8.0
   - typed-uuid ==0.1.0.0
   - type-equality ==1
   - type-errors ==0.2.0.0
@@ -2477,7 +2476,7 @@ default-package-overrides:
   - type-level-numbers ==0.1.1.1
   - typelits-witnesses ==0.4.0.0
   - type-map ==0.1.6.0
-  - type-natural ==1.1.0.0
+  - type-natural ==1.1.0.1
   - typenums ==0.1.4
   - type-of-html ==1.6.2.0
   - type-of-html-static ==0.1.0.2
@@ -2487,7 +2486,7 @@ default-package-overrides:
   - tzdata ==0.2.20201021.0
   - ua-parser ==0.7.6.0
   - uglymemo ==0.1.0.1
-  - unagi-chan ==0.4.1.3
+  - unagi-chan ==0.4.1.4
   - unbounded-delays ==0.1.1.1
   - unboxed-ref ==0.4.0.0
   - unboxing-vector ==0.2.0.0
@@ -2497,8 +2496,8 @@ default-package-overrides:
   - unexceptionalio ==0.5.1
   - unexceptionalio-trans ==0.5.1
   - unicode ==0.0.1.1
-  - unicode-collation ==0.1.3
-  - unicode-show ==0.1.0.4
+  - unicode-collation ==0.1.3.1
+  - unicode-show ==0.1.1.0
   - unicode-transforms ==0.3.7.1
   - unification-fd ==0.11.1
   - union-angle ==0.1.0.1
@@ -2528,7 +2527,7 @@ default-package-overrides:
   - unliftio-pool ==0.2.1.1
   - unliftio-streams ==0.1.1.1
   - unlit ==0.4.0.0
-  - unordered-containers ==0.2.14.0
+  - unordered-containers ==0.2.16.0
   - unsafe ==0.0
   - urbit-hob ==0.3.3
   - uri-bytestring ==0.3.3.1
@@ -2543,7 +2542,7 @@ default-package-overrides:
   - utility-ht ==0.0.16
   - uuid ==1.3.15
   - uuid-types ==1.0.5
-  - validation ==1.1.1
+  - validation ==1.1.2
   - validation-selective ==0.1.0.1
   - validity ==0.11.0.1
   - validity-aeson ==0.2.0.4
@@ -2553,7 +2552,7 @@ default-package-overrides:
   - validity-persistent ==0.0.0.0
   - validity-primitive ==0.0.0.1
   - validity-scientific ==0.2.0.3
-  - validity-text ==0.3.1.1
+  - validity-text ==0.3.1.2
   - validity-time ==0.4.0.0
   - validity-unordered-containers ==0.2.0.3
   - validity-uuid ==0.1.0.3
@@ -2575,9 +2574,9 @@ default-package-overrides:
   - vector-sized ==1.4.4
   - vector-space ==0.16
   - vector-split ==1.0.0.2
-  - vector-th-unbox ==0.2.1.9
+  - vector-th-unbox ==0.2.2
   - verbosity ==0.4.0.0
-  - versions ==5.0.0
+  - versions ==5.0.1
   - vformat ==0.14.1.0
   - vformat-aeson ==0.1.0.1
   - vformat-time ==0.1.0.0
@@ -2594,7 +2593,7 @@ default-package-overrides:
   - wai-extra ==3.1.7
   - wai-feature-flags ==0.1.0.2
   - wai-handler-launch ==3.0.3.1
-  - wai-logger ==2.3.6
+  - wai-logger ==2.3.7
   - wai-middleware-auth ==0.2.5.1
   - wai-middleware-caching ==0.1.0.2
   - wai-middleware-clacks ==0.1.0.1
@@ -2604,11 +2603,11 @@ default-package-overrides:
   - wai-rate-limit-redis ==0.1.0.0
   - wai-saml2 ==0.2.1.2
   - wai-session ==0.3.3
-  - wai-session-redis ==0.1.0.3
+  - wai-session-redis ==0.1.0.4
   - wai-slack-middleware ==0.2.0
   - wai-websockets ==3.0.1.2
   - wakame ==0.1.0.0
-  - warp ==3.3.17
+  - warp ==3.3.18
   - warp-tls ==3.3.2
   - warp-tls-uid ==0.2.0.6
   - wave ==0.2.0
@@ -2624,16 +2623,16 @@ default-package-overrides:
   - weigh ==0.0.16
   - wide-word ==0.1.1.2
   - wikicfp-scraper ==0.1.0.12
-  - wild-bind ==0.1.2.7
-  - wild-bind-x11 ==0.2.0.13
+  - wild-bind ==0.1.2.8
+  - wild-bind-x11 ==0.2.0.14
   - Win32 ==2.6.2.1
   - Win32-notify ==0.3.0.3
   - windns ==0.1.0.1
-  - witch ==0.3.4.0
+  - witch ==0.3.4.1
   - witherable ==0.4.2
   - within ==0.2.0.1
   - with-location ==0.1.0
-  - with-utf8 ==1.0.2.2
+  - with-utf8 ==1.0.2.3
   - wizards ==1.0.3
   - wl-pprint-annotated ==0.1.0.1
   - wl-pprint-console ==0.1.0.2
@@ -2650,9 +2649,9 @@ default-package-overrides:
   - writer-cps-mtl ==0.1.1.6
   - writer-cps-transformers ==0.5.6.1
   - wss-client ==0.3.0.0
-  - wuss ==1.1.18
+  - wuss ==1.1.19
   - X11 ==1.10.2
-  - X11-xft ==0.3.1
+  - X11-xft ==0.3.4
   - x11-xim ==0.0.9.0
   - x509 ==1.7.5
   - x509-store ==1.6.7
@@ -2686,7 +2685,7 @@ default-package-overrides:
   - yaml ==0.11.7.0
   - yamlparse-applicative ==0.2.0.1
   - yesod ==1.6.1.2
-  - yesod-auth ==1.6.10.4
+  - yesod-auth ==1.6.10.5
   - yesod-auth-hashdb ==1.7.1.7
   - yesod-auth-oauth2 ==0.6.3.4
   - yesod-bin ==1.6.1
@@ -2719,7 +2718,7 @@ default-package-overrides:
   - zip ==1.7.2
   - zip-archive ==0.4.1
   - zipper-extra ==0.1.3.2
-  - zippers ==0.3.1
+  - zippers ==0.3.2
   - zip-stream ==0.2.1.0
   - zlib ==0.6.2.3
   - zlib-bindings ==0.1.1.5
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
index 505358dd4c400..7e374de267c51 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
@@ -650,7 +650,6 @@ dont-distribute-packages:
  - cakyrespa
  - cal3d-examples
  - cal3d-opengl
- - calamity-commands
  - calc
  - calculator
  - caldims
@@ -930,6 +929,7 @@ dont-distribute-packages:
  - delta
  - delta-h
  - dep-t-advice
+ - dep-t-dynamic
  - dependent-literals-plugin
  - dependent-state
  - dephd
@@ -992,6 +992,7 @@ dont-distribute-packages:
  - domain-core
  - domain-optics
  - dormouse-client
+ - dovetail-aeson
  - dow
  - download-media-content
  - dph-examples
@@ -1083,10 +1084,10 @@ dont-distribute-packages:
  - extract-dependencies
  - extrapolate
  - factual-api
- - fakedata-quickcheck
  - falling-turnip
  - fallingblocks
  - family-tree
+ - fast-bech32
  - fastirc
  - fault-tree
  - fbrnch
@@ -1112,7 +1113,6 @@ dont-distribute-packages:
  - fields
  - filepath-crypto
  - filepath-io-access
- - filepather
  - filesystem-enumerator
  - find-clumpiness
  - findhttp
@@ -1153,7 +1153,6 @@ dont-distribute-packages:
  - fortran-vars
  - foscam-directory
  - foscam-sort
- - fp-ieee
  - fplll
  - fpnla-examples
  - frame-markdown
@@ -1228,9 +1227,11 @@ dont-distribute-packages:
  - ghcjs-hplay
  - ght
  - gi-cairo-again
+ - gi-clutter
+ - gi-coglpango
  - gi-gsk
  - gi-gstpbutils
- - gi-gtk_4_0_4
+ - gi-gtk_4_0_5
  - git-fmt
  - git-gpush
  - git-object
@@ -1511,10 +1512,10 @@ dont-distribute-packages:
  - heavy-logger-instances
  - hecc
  - hedgehog-checkers-lens
- - hedgehog-fakedata
  - hedgehog-gen-json
  - hedis-pile
  - heist-aeson
+ - helic
  - helics
  - helics-wai
  - helium
@@ -1575,7 +1576,7 @@ dont-distribute-packages:
  - hmeap
  - hmeap-utils
  - hmep
- - hmm-lapack_0_4_1
+ - hmm-lapack_0_5
  - hmt
  - hmt-diagrams
  - hnormalise
@@ -1921,7 +1922,7 @@ dont-distribute-packages:
  - language-python-colour
  - language-qux
  - language-spelling
- - lapack_0_4
+ - lapack_0_5
  - lat
  - latex-formulae-hakyll
  - latex-formulae-pandoc
@@ -2242,7 +2243,6 @@ dont-distribute-packages:
  - nomyx-language
  - nomyx-library
  - nomyx-server
- - notifications-tray-icon
  - notmuch-haskell
  - notmuch-web
  - numeric-ode
@@ -2252,6 +2252,7 @@ dont-distribute-packages:
  - numhask-range
  - numhask-test
  - nymphaea
+ - oath
  - obd
  - obdd
  - oberon0
@@ -2276,8 +2277,6 @@ dont-distribute-packages:
  - openpgp-Crypto
  - openpgp-crypto-api
  - openssh-github-keys
- - opentracing-jaeger
- - opentracing-zipkin-v1
  - optima-for-hasql
  - optimal-blocks
  - optimusprime
@@ -2291,7 +2290,7 @@ dont-distribute-packages:
  - pairing
  - panda
  - pandoc-japanese-filters
- - pandoc_2_16_1
+ - pandoc_2_16_2
  - papa
  - papa-base
  - papa-base-implement
@@ -2345,7 +2344,6 @@ dont-distribute-packages:
  - phonetic-languages-simplified-generalized-examples-array
  - phonetic-languages-simplified-lists-examples
  - phooey
- - photoname
  - pianola
  - pier
  - ping
@@ -2380,14 +2378,9 @@ dont-distribute-packages:
  - polh-lexicon
  - polydata
  - polysemy-RandomFu
- - polysemy-check
- - polysemy-http
  - polysemy-log-co
  - polysemy-methodology-co-log
  - polysemy-optics
- - polysemy-readline
- - polysemy-resume
- - polysemy-webserver
  - polyseq
  - polytypeable-utils
  - pomodoro
@@ -2636,7 +2629,6 @@ dont-distribute-packages:
  - rose-trie
  - roshask
  - rosmsg-bin
- - rounded-hw
  - roundtrip-xml
  - route-generator
  - route-planning
@@ -2728,7 +2720,6 @@ dont-distribute-packages:
  - servant-ede
  - servant-event-stream
  - servant-examples
- - servant-github-webhook
  - servant-http2-client
  - servant-matrix-param
  - servant-polysemy
@@ -3083,6 +3074,7 @@ dont-distribute-packages:
  - typed-encoding-encoding
  - typed-spreadsheet
  - typed-streams
+ - typelet
  - typelevel
  - typelevel-rewrite-rules
  - typescript-docs
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index 67224af62b392..86a60fd9097a1 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -223,6 +223,17 @@ self: super: builtins.intersectAttrs super {
 
   # Nix-specific workaround
   xmonad = appendPatch ./patches/xmonad-nix.patch (dontCheck super.xmonad);
+  xmonad_0_17_0 = doDistribute (appendPatch ./patches/xmonad_0_17_0-nix.patch (super.xmonad_0_17_0));
+
+  # Need matching xmonad version
+  xmonad-contrib_0_17_0 = doDistribute (super.xmonad-contrib_0_17_0.override {
+    xmonad = self.xmonad_0_17_0;
+  });
+
+  xmonad-extras_0_17_0 = doDistribute (super.xmonad-extras_0_17_0.override {
+    xmonad = self.xmonad_0_17_0;
+    xmonad-contrib = self.xmonad-contrib_0_17_0;
+  });
 
   # wxc supports wxGTX >= 3.0, but our current default version points to 2.8.
   # http://hydra.cryp.to/build/1331287/log/raw
@@ -491,12 +502,15 @@ self: super: builtins.intersectAttrs super {
     postPatch = ''
       sed -i -e 's|"abc"|"${pkgs.abc-verifier}/bin/abc"|' Data/SBV/Provers/ABC.hs
       sed -i -e 's|"boolector"|"${pkgs.boolector}/bin/boolector"|' Data/SBV/Provers/Boolector.hs
-      sed -i -e 's|"cvc4"|"${pkgs.cvc4}/bin/cvc4"|' Data/SBV/Provers/CVC4.hs
       sed -i -e 's|"yices-smt2"|"${pkgs.yices}/bin/yices-smt2"|' Data/SBV/Provers/Yices.hs
       sed -i -e 's|"z3"|"${pkgs.z3}/bin/z3"|' Data/SBV/Provers/Z3.hs
-
+    '' + (if pkgs.stdenv.isAarch64 then ''
+      sed -i -e 's|\[abc, boolector, cvc4, mathSAT, yices, z3, dReal\]|[abc, boolector, yices, z3]|' SBVTestSuite/SBVConnectionTest.hs
+    ''
+    else ''
+      sed -i -e 's|"cvc4"|"${pkgs.cvc4}/bin/cvc4"|' Data/SBV/Provers/CVC4.hs
       sed -i -e 's|\[abc, boolector, cvc4, mathSAT, yices, z3, dReal\]|[abc, boolector, cvc4, yices, z3]|' SBVTestSuite/SBVConnectionTest.hs
-   '';
+    '');
   }) super.sbv;
 
   # The test-suite requires a running PostgreSQL server.
@@ -704,9 +718,13 @@ self: super: builtins.intersectAttrs super {
   postgresql-pure = dontCheck super.postgresql-pure;
 
   retrie = overrideCabal (drv: {
-    testToolDepends = [ pkgs.git pkgs.mercurial ];
+    testToolDepends = [ pkgs.git pkgs.mercurial ] ++ drv.testToolDepends or [];
   }) super.retrie;
 
+  retrie_1_2_0_0 = overrideCabal (drv: {
+    testToolDepends = [ pkgs.git pkgs.mercurial ] ++ drv.testToolDepends or [];
+  }) super.retrie_1_2_0_0;
+
   nix-output-monitor = overrideCabal {
     # Can't ran the golden-tests with nix, because they call nix
     testTarget = "unit-tests";
@@ -854,6 +872,12 @@ self: super: builtins.intersectAttrs super {
       export HOME=$TMPDIR/home
     '';
   }) super.hls-pragmas-plugin;
+  hls-hlint-plugin = overrideCabal (drv: {
+    testToolDepends = [ pkgs.git ];
+    preCheck = ''
+      export HOME=$TMPDIR/home
+    '';
+  }) super.hls-hlint-plugin;
   hiedb = overrideCabal (drv: {
     preCheck = ''
       export PATH=$PWD/dist/build/hiedb:$PATH
@@ -1006,4 +1030,22 @@ self: super: builtins.intersectAttrs super {
       fi
     '' + (drv.postConfigure or "");
   }) super.procex;
+
+  # Apply a patch which hardcodes the store path of graphviz instead of using
+  # whatever graphviz is in PATH.
+  graphviz = overrideCabal (drv: {
+    patches = [
+      (pkgs.substituteAll {
+        src = ./patches/graphviz-hardcode-graphviz-store-path.patch;
+        inherit (pkgs) graphviz;
+      })
+    ] ++ (drv.patches or []);
+  }) super.graphviz;
+
+  # Test case tries to contact the network
+  http-api-data-qq = overrideCabal (drv: {
+    testFlags = [
+      "-p" "!/Can be used with http-client/"
+    ] ++ drv.testFlags or [];
+  }) super.http-api-data-qq;
 }
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index b775203566d2b..f19fd450bafaa 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -809,8 +809,8 @@ self: {
      }:
      mkDerivation {
        pname = "Agda";
-       version = "2.6.2";
-       sha256 = "159hznnsxg7hlp80r1wqizyd7gwgnq0j13cm4d27cns0ganslb07";
+       version = "2.6.2.1";
+       sha256 = "03dw7jfqr3ffik6avigm525djqh2gn5c3qwnb2h6298zkr9lch9w";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -977,6 +977,37 @@ self: {
        ];
      }) {};
 
+  "Allure_0_11_0_0" = callPackage
+    ({ mkDerivation, async, base, enummapset, file-embed, filepath
+     , ghc-compact, hsini, LambdaHack, optparse-applicative, primitive
+     , splitmix, tasty, tasty-hunit, template-haskell, text
+     , th-lift-instances, transformers
+     }:
+     mkDerivation {
+       pname = "Allure";
+       version = "0.11.0.0";
+       sha256 = "1mmnn86azcpig1j61mwks2z227sw70lc7hsmi342hprabrccq9b1";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         async base enummapset file-embed filepath ghc-compact hsini
+         LambdaHack optparse-applicative primitive splitmix template-haskell
+         text th-lift-instances transformers
+       ];
+       executableHaskellDepends = [
+         async base filepath LambdaHack optparse-applicative
+       ];
+       testHaskellDepends = [
+         base LambdaHack optparse-applicative tasty tasty-hunit text
+       ];
+       description = "Near-future Sci-Fi roguelike and tactical squad combat game";
+       license = lib.licenses.agpl3Plus;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "AndroidViewHierarchyImporter" = callPackage
     ({ mkDerivation, base, bytestring, cmdtheline, containers, mtl
      , network, opml, pretty, process, QuickCheck, split, transformers
@@ -3017,8 +3048,8 @@ self: {
        pname = "Chart-diagrams";
        version = "1.9.3";
        sha256 = "075yzq50jpakgq6lb3anr660jydm68ry0di33icdacbdymq8avwn";
-       revision = "2";
-       editedCabalFile = "00whqmaqrbidicsz9dqvq88jc88m8cixxkyf70qsdg7ysg8dad8m";
+       revision = "3";
+       editedCabalFile = "0gbmgvab7ggws65813xv9913g0jab8k6bcpdnwkri9s4y2pqsrk3";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base blaze-markup bytestring Chart colour containers
@@ -6729,8 +6760,8 @@ self: {
     ({ mkDerivation, base, libGL, libGLU, OpenGLRaw, transformers }:
      mkDerivation {
        pname = "GLURaw";
-       version = "2.0.0.4";
-       sha256 = "1i2xi35n5z0d372px9mh6cyhgg1m0cfaiy3fnspkf6kbn9fgsqxq";
+       version = "2.0.0.5";
+       sha256 = "1b3rnva77k9naw5bl573bqgmsq7n9i8rrrvfvhbjcndqgmzhkini";
        libraryHaskellDepends = [ base OpenGLRaw transformers ];
        librarySystemDepends = [ libGL libGLU ];
        description = "A raw binding for the OpenGL graphics system";
@@ -7303,32 +7334,10 @@ self: {
      }:
      mkDerivation {
        pname = "Glob";
-       version = "0.10.1";
-       sha256 = "05fknrb114qvfzv6324ngx0fz43cwgrhrc700l3h2is9jinlgr6a";
-       revision = "1";
-       editedCabalFile = "1mnhsl38mv9p46njns72xi4564nikx7v6plg2s6jilr3y3sfijqp";
-       libraryHaskellDepends = [
-         base containers directory dlist filepath transformers
-         transformers-compat
-       ];
-       testHaskellDepends = [
-         base containers directory dlist filepath HUnit QuickCheck
-         test-framework test-framework-hunit test-framework-quickcheck2
-         transformers transformers-compat
-       ];
-       description = "Globbing library";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "Glob_0_10_2" = callPackage
-    ({ mkDerivation, base, containers, directory, dlist, filepath
-     , HUnit, QuickCheck, test-framework, test-framework-hunit
-     , test-framework-quickcheck2, transformers, transformers-compat
-     }:
-     mkDerivation {
-       pname = "Glob";
        version = "0.10.2";
        sha256 = "1h3kh46qds4nqvixm4myy1kb5slg53f44hfn8aymrlr7hjn75xka";
+       revision = "2";
+       editedCabalFile = "175v5r0gzlln5y70dgxaq5xw4ilrf3xhgqr3hrzsilqnb32kfi9a";
        libraryHaskellDepends = [
          base containers directory dlist filepath transformers
          transformers-compat
@@ -7340,7 +7349,6 @@ self: {
        ];
        description = "Globbing library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "GlomeTrace" = callPackage
@@ -8850,8 +8858,8 @@ self: {
      }:
      mkDerivation {
        pname = "HMock";
-       version = "0.5.0.0";
-       sha256 = "0ib5cqwqqpyc58vg5h57410pq8ycr0y3ayck1pc6vq958m879v0r";
+       version = "0.5.1.0";
+       sha256 = "1nbdgndk5bmd45wabfnndzmava9d8cf24li0w1093yl6099gmwas";
        libraryHaskellDepends = [
          base constraints containers data-default exceptions
          explainable-predicates extra monad-control mtl stm syb
@@ -9409,8 +9417,8 @@ self: {
     ({ mkDerivation, base, containers }:
      mkDerivation {
        pname = "HSvm";
-       version = "0.1.1.3.22";
-       sha256 = "0vij1xp3gm7s0d5hqlpl6jm949gpimaxz8cr3njaa4kkgpw8yd4g";
+       version = "0.1.1.3.25";
+       sha256 = "1n97frz0hbc85wlyflihnj9w5hvg7x4cbawqjimr12zlsqh26iag";
        libraryHaskellDepends = [ base containers ];
        description = "Haskell Bindings for libsvm";
        license = lib.licenses.bsd3;
@@ -9784,8 +9792,8 @@ self: {
      }:
      mkDerivation {
        pname = "HaXml";
-       version = "1.25.7";
-       sha256 = "111cmrviw8d4cywyka4l0ni5ldi7y6m1nl8fcyjxh54b859c3bsn";
+       version = "1.25.8";
+       sha256 = "1n65s75l4manb65msh9fz97dzqf9554x58bqdhyylgsgk84mfg80";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -9793,7 +9801,7 @@ self: {
        ];
        executableHaskellDepends = [ base directory polyparse pretty ];
        description = "Utilities for manipulating XML documents";
-       license = "LGPL";
+       license = lib.licenses.lgpl21Only;
      }) {};
 
   "Hach" = callPackage
@@ -10812,6 +10820,8 @@ self: {
        pname = "HsOpenSSL";
        version = "0.11.7.2";
        sha256 = "0ysdfl8ck3nzhx597fa13dqf31jq5gzwajlak6r91jajks9w0dl5";
+       revision = "1";
+       editedCabalFile = "1lccw8x48xxmw1cpd260fdr9mxqr39f4b623i78027l0m93dw38b";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [ base bytestring network time ];
        librarySystemDepends = [ openssl ];
@@ -10950,24 +10960,6 @@ self: {
      }:
      mkDerivation {
        pname = "HsYAML-aeson";
-       version = "0.2.0.0";
-       sha256 = "12sxww260pc0bbpiyirm7911haxhljdi2f08a9ddpbgw8d5n7ffg";
-       revision = "3";
-       editedCabalFile = "0vhdndyj5f07vvvnssn5ybdja5wmaydq0n2lfpihvdg4dkhczrx2";
-       libraryHaskellDepends = [
-         aeson base bytestring containers HsYAML mtl scientific text
-         unordered-containers vector
-       ];
-       description = "JSON to YAML Adapter";
-       license = lib.licenses.gpl2Plus;
-     }) {};
-
-  "HsYAML-aeson_0_2_0_1" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, HsYAML, mtl
-     , scientific, text, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "HsYAML-aeson";
        version = "0.2.0.1";
        sha256 = "139hqd07hkr8ykvrgmcshh9f3vp9dnrj6ks5nl8hgrpi990jsy5r";
        isLibrary = true;
@@ -10978,7 +10970,6 @@ self: {
        ];
        description = "JSON to YAML Adapter";
        license = lib.licenses.gpl2Plus;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "Hsed" = callPackage
@@ -11784,8 +11775,8 @@ self: {
        pname = "JuicyPixels-blurhash";
        version = "0.1.0.3";
        sha256 = "0kgl2j7990p8q5yrkn0wgaszc9fzva1pc3277j11k1lbjsymz360";
-       revision = "5";
-       editedCabalFile = "1iv2jz1jwndpfj68zqkya1yc45fs43anc8dqbk2pdbqyxwlxwfaj";
+       revision = "6";
+       editedCabalFile = "13zdfmj6p6awpy74h09czpcjs0y642aawqb7y87vsz6pfm6zqwjz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -12409,6 +12400,46 @@ self: {
        ];
      }) {};
 
+  "LambdaHack_0_11_0_0" = callPackage
+    ({ mkDerivation, ansi-terminal, assert-failure, async, base
+     , base-compat, binary, bytestring, containers, deepseq, directory
+     , enummapset, file-embed, filepath, ghc-compact, hashable, hsini
+     , keys, miniutter, open-browser, optparse-applicative, pretty-show
+     , primitive, QuickCheck, sdl2, sdl2-ttf, splitmix, stm, tasty
+     , tasty-hunit, tasty-quickcheck, template-haskell, text
+     , th-lift-instances, time, transformers, unordered-containers
+     , vector, vector-binary-instances, witch, zlib
+     }:
+     mkDerivation {
+       pname = "LambdaHack";
+       version = "0.11.0.0";
+       sha256 = "19dmcbx0clzmblk3kh367dx3bbvmargjq1zkjhy2i1ixfpfcs9jm";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-terminal assert-failure async base base-compat binary
+         bytestring containers deepseq directory enummapset file-embed
+         filepath ghc-compact hashable hsini keys miniutter open-browser
+         optparse-applicative pretty-show primitive QuickCheck sdl2 sdl2-ttf
+         splitmix stm template-haskell text th-lift-instances time
+         transformers unordered-containers vector vector-binary-instances
+         witch zlib
+       ];
+       executableHaskellDepends = [
+         async base filepath optparse-applicative
+       ];
+       testHaskellDepends = [
+         base containers enummapset optparse-applicative splitmix tasty
+         tasty-hunit tasty-quickcheck text transformers vector
+       ];
+       description = "A game engine library for tactical squad ASCII roguelike dungeon crawlers";
+       license = lib.licenses.bsd3;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "LambdaINet" = callPackage
     ({ mkDerivation, base, containers, GLFW, GLFW-task, monad-task, mtl
      , OpenGL, transformers, vector
@@ -12620,6 +12651,17 @@ self: {
        broken = true;
      }) {};
 
+  "LetsBeRational" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "LetsBeRational";
+       version = "1.0.0.0";
+       sha256 = "1rj5n931370nxrnqj1728p38mcqbpswmxc73c5g1mlh66k0gqqk4";
+       libraryHaskellDepends = [ base ];
+       description = "European option implied vol calculation";
+       license = lib.licenses.mit;
+     }) {};
+
   "Level0" = callPackage
     ({ mkDerivation, base, directory, random, SDL, SDL-ttf }:
      mkDerivation {
@@ -13577,33 +13619,10 @@ self: {
      }:
      mkDerivation {
        pname = "MissingH";
-       version = "1.4.2.0";
-       sha256 = "1wfhpb351nrqjryf9si9j13nkvrqybhkkyc9643wqq8ywkdd59b9";
-       libraryHaskellDepends = [
-         array base containers directory filepath hslogger mtl network
-         network-bsd old-locale old-time parsec process random regex-compat
-         time unix
-       ];
-       testHaskellDepends = [
-         base containers directory errorcall-eq-instance filepath HUnit
-         old-time parsec regex-compat time unix
-       ];
-       description = "Large utility library";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "MissingH_1_4_3_0" = callPackage
-    ({ mkDerivation, array, base, containers, directory
-     , errorcall-eq-instance, filepath, hslogger, HUnit, mtl, network
-     , network-bsd, old-locale, old-time, parsec, process, random
-     , regex-compat, time, unix
-     }:
-     mkDerivation {
-       pname = "MissingH";
        version = "1.4.3.0";
        sha256 = "196cniya5wzcv2d777nr0f7hinclpals4ia1mkzzv35870pqr6lw";
-       revision = "1";
-       editedCabalFile = "0f8x0vpwcbcvy3b421pahx1ff6l3lfaqvvfkyks1vllcr4p8ky9j";
+       revision = "2";
+       editedCabalFile = "0p5md995w0nh2m89v3jsb1bvhfkrnp2s14smjbnh3g0pbq3fgfzg";
        libraryHaskellDepends = [
          array base containers directory filepath hslogger mtl network
          network-bsd old-locale old-time parsec process random regex-compat
@@ -13615,7 +13634,6 @@ self: {
        ];
        description = "Large utility library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "MissingK" = callPackage
@@ -13898,8 +13916,6 @@ self: {
        testHaskellDepends = [ ansi-terminal base doctest hspec time ];
        description = "A minimalistic CLI Pomodoro timer";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "Monaris" = callPackage
@@ -14255,8 +14271,8 @@ self: {
      }:
      mkDerivation {
        pname = "NaCl";
-       version = "0.0.4.0";
-       sha256 = "13wjrki7d7a7zk67np00in5n3gkpmgw682hib09fmncnnisrwd9m";
+       version = "0.0.5.0";
+       sha256 = "1q6wr6a3q0w594z8lrldmvzc1fs4krds8nbady8ymz2vll71q1kz";
        libraryHaskellDepends = [
          base bytestring libsodium memory safe-exceptions
        ];
@@ -14935,8 +14951,8 @@ self: {
     ({ mkDerivation, base, transformers }:
      mkDerivation {
        pname = "ObjectName";
-       version = "1.1.0.1";
-       sha256 = "046jm94rmm46cicd31pl54vdvfjvhd9ffbfycy2lxzc0fliyznvj";
+       version = "1.1.0.2";
+       sha256 = "0xdkfc97salzj5s3fvmwk4k0097dcd8c4xcr5ghhv9mz0wcxm9gz";
        libraryHaskellDepends = [ base transformers ];
        description = "Explicitly handled object names";
        license = lib.licenses.bsd3;
@@ -14985,6 +15001,8 @@ self: {
        pname = "OddWord";
        version = "1.0.2.0";
        sha256 = "14hd7dd3dyfd9cs9kgxjippi2awpambn2ia7s3kxcvinnfbigj3r";
+       revision = "1";
+       editedCabalFile = "0sam69p0j3a61cp3z19gla2bwbq3qyqda3xm5jx3k5skvsr4cz0x";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec QuickCheck ];
        benchmarkHaskellDepends = [ base criterion ];
@@ -15064,6 +15082,8 @@ self: {
        pname = "OneTuple";
        version = "0.3.1";
        sha256 = "1vry21z449ph9k61l5zm7mfmdwkwszxqdlawlhvwrd1gsn13d1cq";
+       revision = "2";
+       editedCabalFile = "0gk0656igxl0km9kgh8v7b5vq74kla59ka9hvpzq57njr6bc0j58";
        libraryHaskellDepends = [
          base base-orphans hashable template-haskell
        ];
@@ -15223,8 +15243,8 @@ self: {
      }:
      mkDerivation {
        pname = "OpenGLRaw";
-       version = "3.3.4.0";
-       sha256 = "0gmsmysqzpm13qnyq4vvqxm4dzw25nayfd9wi5x645pympm6jqbm";
+       version = "3.3.4.1";
+       sha256 = "07nk0rgm6jcxz6yshwhv5lj5frs6371w3hdjxwa4biws2kmbs6hj";
        libraryHaskellDepends = [
          base bytestring containers fixed half text transformers
        ];
@@ -16429,15 +16449,15 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "PyF_0_10_0_1" = callPackage
+  "PyF_0_10_2_0" = callPackage
     ({ mkDerivation, base, bytestring, deepseq, filepath, ghc, ghc-boot
      , hspec, HUnit, mtl, parsec, process, template-haskell, temporary
      , text, time
      }:
      mkDerivation {
        pname = "PyF";
-       version = "0.10.0.1";
-       sha256 = "0bgnqjvrn3jrlc0jhldab44dsh64dn428rmqnxcvpr6aqvv2qk6k";
+       version = "0.10.2.0";
+       sha256 = "0a1bq7c3vx6yp7745xr2vlxjsqgqa0s1f7yzqnfsybqwff03zbcw";
        libraryHaskellDepends = [
          base bytestring ghc ghc-boot mtl parsec template-haskell text time
        ];
@@ -17138,23 +17158,6 @@ self: {
      }:
      mkDerivation {
        pname = "Rattus";
-       version = "0.5";
-       sha256 = "1dh6ln8awqhgnk7hqh4zdkv4pqy3wmsqbmqrd016raf8vjbc1i3m";
-       setupHaskellDepends = [ base Cabal ];
-       libraryHaskellDepends = [
-         base containers ghc ghc-prim simple-affine-space transformers
-       ];
-       testHaskellDepends = [ base containers ];
-       description = "A modal FRP language";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "Rattus_0_5_0_1" = callPackage
-    ({ mkDerivation, base, Cabal, containers, ghc, ghc-prim
-     , simple-affine-space, transformers
-     }:
-     mkDerivation {
-       pname = "Rattus";
        version = "0.5.0.1";
        sha256 = "1rj29wbhk9bn7mazhrqcgas8m7rnfcak10krimsn08v2nzw2af79";
        setupHaskellDepends = [ base Cabal ];
@@ -17164,7 +17167,6 @@ self: {
        testHaskellDepends = [ base containers ];
        description = "A modal FRP language";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ReadArgs" = callPackage
@@ -17893,6 +17895,8 @@ self: {
        pname = "STMonadTrans";
        version = "0.4.6";
        sha256 = "0rvhh0hhwz601ibpzisry7xf3j61r5sxfgp47imaa37i5bvrlynb";
+       revision = "1";
+       editedCabalFile = "04svg3fwiir2zd5da44pklvw51bs2qm8pqmsnicyav0g0wvhbxbc";
        libraryHaskellDepends = [ array base mtl ];
        testHaskellDepends = [
          array base tasty tasty-hunit tasty-quickcheck transformers
@@ -21003,8 +21007,8 @@ self: {
     ({ mkDerivation, base, bytestring, transformers, vector, vulkan }:
      mkDerivation {
        pname = "VulkanMemoryAllocator";
-       version = "0.7.4";
-       sha256 = "0rzvishkjp4vjwc64a12knj1kr7c793ncpgf9x54l2xj6q7a9mrj";
+       version = "0.7.5";
+       sha256 = "0wcq09q5jhvigfp8vshgs3yc170g7c39jz2m6jk2j6v0nji2lp40";
        libraryHaskellDepends = [
          base bytestring transformers vector vulkan
        ];
@@ -21363,12 +21367,12 @@ self: {
        platforms = lib.platforms.none;
      }) {};
 
-  "Win32_2_13_1_0" = callPackage
+  "Win32_2_13_2_0" = callPackage
     ({ mkDerivation }:
      mkDerivation {
        pname = "Win32";
-       version = "2.13.1.0";
-       sha256 = "1a86hmkba4gd1qqfanl06vi2r77ip53l3dcbgvjp7wlp6rjampvc";
+       version = "2.13.2.0";
+       sha256 = "1gmhqb0v3ds7csrmzw211jqjjp955akgp7ykngwnpqb6kpbvpcf4";
        description = "A binding to Windows Win32 API";
        license = lib.licenses.bsd3;
        platforms = lib.platforms.none;
@@ -21748,12 +21752,12 @@ self: {
     ({ mkDerivation, base, libXft, utf8-string, X11 }:
      mkDerivation {
        pname = "X11-xft";
-       version = "0.3.1";
-       sha256 = "1lgqb0s2qfwwgbvwxhjbi23rbwamzdi0l0slfr20c3jpcbp3zfjf";
+       version = "0.3.4";
+       sha256 = "05m988r45jiqpxqsw3vafz158whlwfcl7v8z9nnqnqz9mggd4032";
        libraryHaskellDepends = [ base utf8-string X11 ];
        libraryPkgconfigDepends = [ libXft ];
-       description = "Bindings to the Xft, X Free Type interface library, and some Xrender parts";
-       license = "LGPL";
+       description = "Bindings to the Xft and some Xrender parts";
+       license = lib.licenses.bsd3;
      }) {inherit (pkgs.xorg) libXft;};
 
   "X11-xshape" = callPackage
@@ -22605,20 +22609,20 @@ self: {
      }) {};
 
   "acc" = callPackage
-    ({ mkDerivation, base, criterion, deepseq, QuickCheck
+    ({ mkDerivation, base, deepseq, gauge, QuickCheck
      , quickcheck-instances, rerebase, semigroupoids, tasty, tasty-hunit
      , tasty-quickcheck
      }:
      mkDerivation {
        pname = "acc";
-       version = "0.1.3";
-       sha256 = "12mzmxmdishmcym3ci8hihp97n17jl5hisnqg6y8yvqzfp7k3cd7";
+       version = "0.2.0.1";
+       sha256 = "03wk2pnh3scjf5102w882hg6hsczj9ihj8pb9g3928na2zk1jw1v";
        libraryHaskellDepends = [ base deepseq semigroupoids ];
        testHaskellDepends = [
          QuickCheck quickcheck-instances rerebase tasty tasty-hunit
          tasty-quickcheck
        ];
-       benchmarkHaskellDepends = [ criterion rerebase ];
+       benchmarkHaskellDepends = [ gauge rerebase ];
        description = "Sequence optimized for monoidal construction and folding";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
@@ -24056,6 +24060,8 @@ self: {
        pname = "active";
        version = "0.2.0.15";
        sha256 = "019xr66pahsssqr2hybs88mga4qshv1vmd22j7624wqafqm57d74";
+       revision = "1";
+       editedCabalFile = "0p13f762fgkwjldm45pawqv00hxyb2clny08pw8jkrd80li5rnan";
        libraryHaskellDepends = [
          base lens linear semigroupoids semigroups vector
        ];
@@ -24179,8 +24185,8 @@ self: {
        pname = "ad";
        version = "4.4.1";
        sha256 = "1afpqk0my4n50xvq9f0rhcs8kzy3w1xxjql462xc0mvvhsgp6s6g";
-       revision = "1";
-       editedCabalFile = "1sprgwc6niixmc3p073al3bm3ff873h6zjgizdz2wpqm0b6rfmka";
+       revision = "3";
+       editedCabalFile = "0dixfii8fk4drly5iwzy1ihnx5phmns0i8cbdhl6ylp79yyrdv2h";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          array base comonad containers data-reify erf free nats reflection
@@ -24271,8 +24277,8 @@ self: {
      }:
      mkDerivation {
        pname = "adblock2privoxy";
-       version = "2.0.2";
-       sha256 = "0klw0rbxp5g240igrv10808inqmlh3wr3d46zphy5xjxjih07yf3";
+       version = "2.1.0";
+       sha256 = "0w4yhpsl92wbijfkm37y3wl17vpsrf50mrgcllvd77ycak5w4nhw";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -24500,8 +24506,8 @@ self: {
      }:
      mkDerivation {
        pname = "advent-of-code-api";
-       version = "0.2.8.0";
-       sha256 = "1g1wybpir0053pjav8czccnva38jr35gnii1as0lbyinc1k7vlhq";
+       version = "0.2.8.1";
+       sha256 = "17s80883jq75i129b1976qbvr56ml0bsadhfnx2qybbh7b55gxfh";
        libraryHaskellDepends = [
          aeson base bytestring containers deepseq directory filepath
          finite-typelits http-api-data http-client http-client-tls
@@ -24602,8 +24608,8 @@ self: {
        pname = "aeson";
        version = "1.5.6.0";
        sha256 = "1s5z4bgb5150h6a4cjf5vh8dmyrn6ilh29gh05999v6jwd5w6q83";
-       revision = "2";
-       editedCabalFile = "1zxkarvmbgc2cpcc9sx1rlqm7nfh473052898ypiwk8azawp1hbj";
+       revision = "5";
+       editedCabalFile = "01mbxj0cqbf20pwgx2021r79xwp8r3sjpvhxlpay5lk0s9pvn0sh";
        libraryHaskellDepends = [
          attoparsec base base-compat-batteries bytestring containers
          data-fix deepseq dlist ghc-prim hashable primitive scientific
@@ -24622,35 +24628,38 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "aeson_2_0_1_0" = callPackage
+  "aeson_2_0_2_0" = callPackage
     ({ mkDerivation, attoparsec, base, base-compat
      , base-compat-batteries, base-orphans, base16-bytestring
      , bytestring, containers, data-fix, deepseq, Diff, directory, dlist
      , filepath, generic-deriving, ghc-prim, hashable
-     , indexed-traversable, integer-logarithms, primitive, QuickCheck
-     , quickcheck-instances, scientific, semialign, strict, tagged
-     , tasty, tasty-golden, tasty-hunit, tasty-quickcheck
-     , template-haskell, text, th-abstraction, these, time, time-compat
-     , unordered-containers, uuid-types, vector, witherable
+     , indexed-traversable, integer-logarithms, OneTuple, primitive
+     , QuickCheck, quickcheck-instances, scientific, semialign, strict
+     , tagged, tasty, tasty-golden, tasty-hunit, tasty-quickcheck
+     , template-haskell, text, text-short, th-abstraction, these, time
+     , time-compat, unordered-containers, uuid-types, vector, witherable
      }:
      mkDerivation {
        pname = "aeson";
-       version = "2.0.1.0";
-       sha256 = "0zlplkgsv1czp4rvi9k6pyyrfgd6vcdkj9vq84dr9zf7pzi8fl1s";
+       version = "2.0.2.0";
+       sha256 = "0dw041ha28r55ss5hjv6gc3rc5ins4a4vw36w6hd6mdbgzfmbjnm";
+       revision = "1";
+       editedCabalFile = "0xhchqq056fmdz01w73zdq1hhwc1inl0zklp211mbxyncabz6hdv";
        libraryHaskellDepends = [
          attoparsec base base-compat-batteries bytestring containers
          data-fix deepseq dlist ghc-prim hashable indexed-traversable
-         primitive scientific semialign strict tagged template-haskell text
-         th-abstraction these time time-compat unordered-containers
-         uuid-types vector witherable
+         OneTuple primitive scientific semialign strict tagged
+         template-haskell text text-short th-abstraction these time
+         time-compat unordered-containers uuid-types vector witherable
        ];
        testHaskellDepends = [
          attoparsec base base-compat base-orphans base16-bytestring
          bytestring containers data-fix Diff directory dlist filepath
-         generic-deriving ghc-prim hashable integer-logarithms QuickCheck
-         quickcheck-instances scientific strict tagged tasty tasty-golden
-         tasty-hunit tasty-quickcheck template-haskell text these time
-         time-compat unordered-containers uuid-types vector
+         generic-deriving ghc-prim hashable integer-logarithms OneTuple
+         QuickCheck quickcheck-instances scientific strict tagged tasty
+         tasty-golden tasty-hunit tasty-quickcheck template-haskell text
+         text-short these time time-compat unordered-containers uuid-types
+         vector
        ];
        description = "Fast JSON parsing and encoding";
        license = lib.licenses.bsd3;
@@ -24691,6 +24700,8 @@ self: {
        pname = "aeson-better-errors";
        version = "0.9.1.0";
        sha256 = "09vkyrhwak3bmpfsqcd2az8hfqqkxyhg468hv5avgisy0nzh3w38";
+       revision = "1";
+       editedCabalFile = "1kwhnabcfwbm9r116y19pgwsds5vd0g62sp8r6n43q5crdnc7ly7";
        libraryHaskellDepends = [
          aeson base bytestring dlist mtl scientific text transformers
          transformers-compat unordered-containers vector void
@@ -24807,6 +24818,8 @@ self: {
        pname = "aeson-compat";
        version = "0.3.10";
        sha256 = "0ia3qfdpbrzhwwg4ywpdwca0z1m85k081pcz6jh1sx8qjsvcr71w";
+       revision = "1";
+       editedCabalFile = "1k4bnmq76ihk0vlx9nhxsyyawhnbca9dxj1ivxs3k4aip40bjjq8";
        libraryHaskellDepends = [
          aeson attoparsec attoparsec-iso8601 base base-compat bytestring
          containers exceptions hashable scientific tagged text time
@@ -25100,6 +25113,8 @@ self: {
        pname = "aeson-iproute";
        version = "0.2.1";
        sha256 = "1130mr5fqwi4d74xg6nkvpqycc0vvd6rsiahm1pdhbrx3wvra8p2";
+       revision = "1";
+       editedCabalFile = "1q9yr42mvvcqy20ww1xcsy2q6jji0mrqng2clq8yd5diyy7kqx1a";
        libraryHaskellDepends = [
          aeson base iproute text unordered-containers
        ];
@@ -25277,6 +25292,8 @@ self: {
        pname = "aeson-pretty";
        version = "0.8.9";
        sha256 = "021az9az6xik9c9s3rnar5fr1lgy2h3igibf5ixnc7ps3m2lzg2x";
+       revision = "1";
+       editedCabalFile = "0x01ryaadmic21dy8ix73k4nkh1hkvwn5vp04vf95a6d30zcmnjf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -25385,8 +25402,8 @@ self: {
        pname = "aeson-schemas";
        version = "1.3.5";
        sha256 = "1fdq109yjmvixri7hamj8z0iryxxdja8kkm6pk54mi0az0vx9743";
-       revision = "1";
-       editedCabalFile = "05xdfrzcg9wg5fy6r95y1nxdzvl09ypxr2jdlq3n0mkdf0nph2w1";
+       revision = "2";
+       editedCabalFile = "0n312ks2jl9l44ijz3my2caxbl4lkw3db97sa74w8nnch0wvmslh";
        libraryHaskellDepends = [
          aeson base first-class-families hashable megaparsec
          template-haskell text unordered-containers
@@ -25554,19 +25571,21 @@ self: {
 
   "aeson-value-parser" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, hashable
-     , megaparsec, mtl, scientific, text, text-builder, transformers
+     , megaparsec, mtl, scientific, text, transformers
      , unordered-containers, vector
      }:
      mkDerivation {
        pname = "aeson-value-parser";
-       version = "0.19.4";
-       sha256 = "1z4l7x29zxalmf8qqynyz87mgr0xbjzvffmxk76r0kal31yljq81";
+       version = "0.19.6";
+       sha256 = "0nx0f46vrx94i6jnzh063fxjfwjm1snb9p41q18rlsj5hwgva0xs";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring hashable megaparsec mtl scientific
-         text text-builder transformers unordered-containers vector
+         text transformers unordered-containers vector
        ];
        description = "API for parsing \"aeson\" JSON tree into Haskell types";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "aeson-via" = callPackage
@@ -25623,17 +25642,15 @@ self: {
      }:
      mkDerivation {
        pname = "aeson-yaml";
-       version = "1.1.0.0";
-       sha256 = "1kyrh2w3qpzwm7kpb4rkrzi22kqqz1vcjw1f59wdkl8a5hffkv6y";
-       revision = "1";
-       editedCabalFile = "167gfgmy1pq50rh3rszj01ch4qy3jl4lpl3g8yq300kffrfs882a";
+       version = "1.1.0.1";
+       sha256 = "06x1l0a0dvzf8n2xmqny5qpsgdsl03xlh2z9x7wdxiykl8p4xd24";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson base bytestring text unordered-containers vector
        ];
        testHaskellDepends = [
-         aeson base bytestring string-qq tasty tasty-discover tasty-hunit
+         aeson base bytestring string-qq tasty tasty-hunit
          unordered-containers yaml
        ];
        testToolDepends = [ tasty-discover ];
@@ -26679,6 +26696,28 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "algebraic-graphs_0_6" = callPackage
+    ({ mkDerivation, array, base, containers, deepseq, extra
+     , inspection-testing, mtl, QuickCheck, transformers
+     }:
+     mkDerivation {
+       pname = "algebraic-graphs";
+       version = "0.6";
+       sha256 = "1d3gwyimrzcc7i2qj3iimab3wz6vicgwybhq7ac3da86b8pjlgim";
+       revision = "1";
+       editedCabalFile = "0f7ih4d0jls7399slxc3zkg38z32jm80jv74iyy42l8s6m5ya1cv";
+       libraryHaskellDepends = [
+         array base containers deepseq mtl transformers
+       ];
+       testHaskellDepends = [
+         array base containers deepseq extra inspection-testing mtl
+         QuickCheck transformers
+       ];
+       description = "A library for algebraic graph construction and transformation";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "algebraic-graphs-io" = callPackage
     ({ mkDerivation, algebraic-graphs, attoparsec, base, binary
      , binary-conduit, bytestring, conduit, conduit-extra, containers
@@ -26879,6 +26918,17 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "align-affine" = callPackage
+    ({ mkDerivation, base, containers, transformers, vector }:
+     mkDerivation {
+       pname = "align-affine";
+       version = "0.1.0.0";
+       sha256 = "01y9svlisci6yjb7xb424hmram33ri81v5a503gfvlg0g9p00237";
+       libraryHaskellDepends = [ base containers transformers vector ];
+       description = "Sequence alignment with an affine gap penalty model";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "align-audio" = callPackage
     ({ mkDerivation, base, comfort-array, comfort-fftw, containers
      , netlib-ffi, numeric-prelude, optparse-applicative, shell-utility
@@ -28112,8 +28162,8 @@ self: {
      }:
      mkDerivation {
        pname = "amazonka-contrib-rds-utils";
-       version = "1.6.1.0";
-       sha256 = "1j43kn2ia8q6689p8g1b5q8pd8zcmhfjny8kydh3g5zf5360hnaz";
+       version = "1.6.1.1";
+       sha256 = "16wjgsv0pd7lkpg4qwixlm8fkf6qzbspjb1xhyjh507lfgg2s1yl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -30658,8 +30708,8 @@ self: {
     ({ mkDerivation, base, colour }:
      mkDerivation {
        pname = "ansi-terminal";
-       version = "0.11";
-       sha256 = "14rp62c7y79n9dmmi7m0l9n3mcq6dh331b4yyyrivm5da6g1nqf6";
+       version = "0.11.1";
+       sha256 = "0avjvd2492y2rqvi63a633rqsrmi1aq6dv18q5cp0x4kch3dlm5f";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base colour ];
@@ -30669,24 +30719,24 @@ self: {
 
   "ansi-terminal-game" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, bytestring, cereal
-     , clock, exceptions, hspec, linebreak, mintty, mtl, QuickCheck
-     , random, split, terminal-size, timers-tick, unidecode
+     , clock, containers, exceptions, hspec, linebreak, mintty, mtl
+     , QuickCheck, random, split, terminal-size, timers-tick, unidecode
      }:
      mkDerivation {
        pname = "ansi-terminal-game";
-       version = "1.5.0.0";
-       sha256 = "161n02iywllrr49b1mzpa8lav9w41cmng7ca5vfhpxjjydd5rcbx";
+       version = "1.8.0.0";
+       sha256 = "09wd7gh8zm90wq080fsah0qjbr9x3vrh89am7yf0d84a0akqw65m";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         ansi-terminal array base bytestring cereal clock exceptions
-         linebreak mintty mtl QuickCheck random split terminal-size
-         timers-tick unidecode
+         ansi-terminal array base bytestring cereal clock containers
+         exceptions linebreak mintty mtl QuickCheck random split
+         terminal-size timers-tick unidecode
        ];
        testHaskellDepends = [
-         ansi-terminal array base bytestring cereal clock exceptions hspec
-         linebreak mtl QuickCheck random split terminal-size timers-tick
-         unidecode
+         ansi-terminal array base bytestring cereal clock containers
+         exceptions hspec linebreak mintty mtl QuickCheck random split
+         terminal-size timers-tick unidecode
        ];
        description = "sdl-like functions for terminal applications, based on ansi-terminal";
        license = lib.licenses.gpl3Only;
@@ -30698,8 +30748,8 @@ self: {
        pname = "ansi-wl-pprint";
        version = "0.6.9";
        sha256 = "1b2fg8px98dzbaqyns10kvs8kn6cl1hdq5wb9saz40izrpkyicm7";
-       revision = "2";
-       editedCabalFile = "1xrv66v5hqchjhj8a0g3awy1qpsswk2jqb4w4yh3mm1py5s0dlr0";
+       revision = "3";
+       editedCabalFile = "1km10sx7ldyv1vfyljik1gqnrwl7bnq2s5m40w41gc930vm48891";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ ansi-terminal base ];
@@ -31348,8 +31398,8 @@ self: {
      }:
      mkDerivation {
        pname = "apecs";
-       version = "0.9.3";
-       sha256 = "02qi63bj0prvmxi6ksw2cq0b7fvhcdv8fgbsjbv7vf51p4c6rbh7";
+       version = "0.9.4";
+       sha256 = "0h4pdfh6c2cc9w13crn90rlllykv2axjfmxb74ji2l9m17m4w4vy";
        libraryHaskellDepends = [
          array base containers exceptions mtl template-haskell vector
        ];
@@ -32349,8 +32399,8 @@ self: {
      }:
      mkDerivation {
        pname = "approximate";
-       version = "0.3.4";
-       sha256 = "06akbrmy66nkgnnk3x87jss9qgv5y9m638rvxy57mfzibf925kbd";
+       version = "0.3.5";
+       sha256 = "1f168ac9xryrv50k7gvh89xv0mj6c42cxw7pj01pqcbppbs0rm3g";
        libraryHaskellDepends = [
          base binary bytes cereal comonad deepseq ghc-prim hashable lens
          log-domain pointed safecopy semigroupoids semigroups vector
@@ -32956,8 +33006,8 @@ self: {
      }:
      mkDerivation {
        pname = "argo";
-       version = "0.2021.11.7";
-       sha256 = "1lmx938ydl94rmzifk5jbgmfx0p64chkl7dfp1rfxwvbmlp1aydy";
+       version = "0.2021.11.13";
+       sha256 = "0q0c9mpn2l212dmhkdg6g2v3mr18lagfv48mc68mixahslnrjv5z";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -33015,8 +33065,8 @@ self: {
        pname = "argon2";
        version = "1.3.0.1";
        sha256 = "1v0clf78hykdyhv81z8v3kwp86hjgqh6b8a7wfbjv0fyy55bwxry";
-       revision = "2";
-       editedCabalFile = "0y1dg4dp3f40ghh2zcn1s4l19i8pjs0d1zpbghy4aaar4npiqxz7";
+       revision = "3";
+       editedCabalFile = "1ykclhdr8jq1my18mcz3yx3vf30kvab0bxl0lgwx5nqf4dk3m5mp";
        libraryHaskellDepends = [ base bytestring deepseq text-short ];
        testHaskellDepends = [
          base bytestring QuickCheck tasty tasty-hunit tasty-quickcheck
@@ -33795,8 +33845,8 @@ self: {
     ({ mkDerivation, ascii-char, base, hashable }:
      mkDerivation {
        pname = "ascii-case";
-       version = "1.0.0.6";
-       sha256 = "1hsgid4c5w0b2bfgpsgbw21vxxflyg0imlcjqaaixnjzxzal2d6x";
+       version = "1.0.0.8";
+       sha256 = "0sfak0dg77anw532pj5fgv7z81mqbim9c5qg5hya26pjk759h2p8";
        libraryHaskellDepends = [ ascii-char base hashable ];
        testHaskellDepends = [ ascii-char base ];
        description = "ASCII letter case";
@@ -33807,8 +33857,8 @@ self: {
     ({ mkDerivation, base, hashable }:
      mkDerivation {
        pname = "ascii-char";
-       version = "1.0.0.10";
-       sha256 = "027pskgzrvyfgl1rw2rp17by5m8ak4v17hl590fflr2qc2wqcm5s";
+       version = "1.0.0.12";
+       sha256 = "0gdw0qjxznkx35larm4jb2rx3y6cz3a2zxr72c5006iymbnyky19";
        libraryHaskellDepends = [ base hashable ];
        testHaskellDepends = [ base ];
        description = "A Char type representing an ASCII character";
@@ -33846,8 +33896,8 @@ self: {
     ({ mkDerivation, ascii-char, base, hashable }:
      mkDerivation {
        pname = "ascii-group";
-       version = "1.0.0.6";
-       sha256 = "00qgs30jwxcrqjldzpd306yzhhjmrg9hfb4y4077shm7nqf75scv";
+       version = "1.0.0.8";
+       sha256 = "1scam60a3r9n1zagxf5qcpglnywlcqfq0jhp5fiy1rs4h6c81cl0";
        libraryHaskellDepends = [ ascii-char base hashable ];
        testHaskellDepends = [ ascii-char base ];
        description = "ASCII character groups";
@@ -33929,8 +33979,8 @@ self: {
     ({ mkDerivation, ascii-char, base, bytestring, hashable, text }:
      mkDerivation {
        pname = "ascii-superset";
-       version = "1.0.1.6";
-       sha256 = "06byxk5czii1i1hrm5m41g7ihccyykp9594406f260zhzrxrxll3";
+       version = "1.0.1.8";
+       sha256 = "1pzcabr8wghwjhfqwn6jvhdc7y4a96jqk0a52j000vli6379gn1s";
        libraryHaskellDepends = [
          ascii-char base bytestring hashable text
        ];
@@ -34606,6 +34656,8 @@ self: {
        ];
        description = "Amateur astronomical computations";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "astview" = callPackage
@@ -34932,8 +34984,8 @@ self: {
      }:
      mkDerivation {
        pname = "atlassian-connect-core";
-       version = "0.8.2.0";
-       sha256 = "06wrbz8r4yc6spjrawqrdsc1nf3bc5nr40ssnrmyv00xzkhvjq2j";
+       version = "0.10.0.2";
+       sha256 = "0nwsl8cvbqjjrvphc589dvld4yv5xnv9p2y80glxmzv32rwcnj36";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson atlassian-connect-descriptor base base64-bytestring
@@ -34954,8 +35006,8 @@ self: {
      }:
      mkDerivation {
        pname = "atlassian-connect-descriptor";
-       version = "0.4.12.0";
-       sha256 = "0l8912w6iscnv3q32kd7jfnymg7gnrjpx4jrn4bxggv8bdls7raa";
+       version = "0.4.13.0";
+       sha256 = "0fhzvqf18x44lvfwxzcvzwbnwl5anlyh47sni360f7w27g3b2jzz";
        libraryHaskellDepends = [
          aeson base cases network network-uri text time-units
          unordered-containers
@@ -35039,6 +35091,8 @@ self: {
        pname = "atom";
        version = "1.0.13";
        sha256 = "111lz39q12rvh2iigxakcnf2firxgbgm462id805n3z7rmg8f807";
+       revision = "1";
+       editedCabalFile = "1jz55sqwsdvx4nry4yfamyqv91d3cwxz5sxkf5apada2z08r3rzf";
        libraryHaskellDepends = [ base bimap containers mtl process syb ];
        description = "An EDSL for embedded hard realtime applications";
        license = lib.licenses.bsd3;
@@ -35501,7 +35555,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "attoparsec_0_14_2" = callPackage
+  "attoparsec_0_14_3" = callPackage
     ({ mkDerivation, array, base, bytestring, case-insensitive
      , containers, criterion, deepseq, directory, filepath, ghc-prim
      , http-types, parsec, QuickCheck, quickcheck-unicode, scientific
@@ -35510,8 +35564,10 @@ self: {
      }:
      mkDerivation {
        pname = "attoparsec";
-       version = "0.14.2";
-       sha256 = "157lc8s6a8jw4s8w1a1rylxlggsa6lyq239na8ix3czmi79g3jwz";
+       version = "0.14.3";
+       sha256 = "1j7sy24d7kf9qb99cr36zchb4gsj3gcy4yflawxqnng31lqdxjal";
+       revision = "1";
+       editedCabalFile = "1i3dwcq8970d7i7via7y0384hv7xqlajjlr9dlwlx1f29bx98pdn";
        libraryHaskellDepends = [
          array base bytestring containers deepseq ghc-prim scientific text
          transformers
@@ -35656,8 +35712,8 @@ self: {
        pname = "attoparsec-iso8601";
        version = "1.0.2.0";
        sha256 = "162gc101mwhmjbfhhv1wm3yvk2h4ra34wpw5x87735cfqxvjv582";
-       revision = "2";
-       editedCabalFile = "18557xy5gvkhj0sb35wwxmhqirkiqrkwm0y0pqygsr0aimccs5zm";
+       revision = "3";
+       editedCabalFile = "1kjwc15lwn9axsx4nkl0ar1afimvhz0wsfir2wrxq17jsj9k0cjj";
        libraryHaskellDepends = [
          attoparsec base base-compat-batteries text time time-compat
        ];
@@ -35743,8 +35799,8 @@ self: {
     ({ mkDerivation, attoparsec, base, bytestring, text, time }:
      mkDerivation {
        pname = "attoparsec-time";
-       version = "1.0.1.2";
-       sha256 = "1pc4dy4d6q11cfmgrg41h2nm34vgnnarah85gnwbd6x48cissrpp";
+       version = "1.0.3";
+       sha256 = "1zjr27ajqigl9nlmfrh7ypry36simcbxw61is73157pg0wjb7qyr";
        libraryHaskellDepends = [ attoparsec base bytestring text time ];
        description = "Attoparsec parsers of time";
        license = lib.licenses.mit;
@@ -36213,6 +36269,91 @@ self: {
        maintainers = with lib.maintainers; [ expipiplus1 ];
      }) {};
 
+  "autodocodec" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, doctest
+     , hashable, mtl, scientific, text, time, unordered-containers
+     , validity, validity-scientific, vector
+     }:
+     mkDerivation {
+       pname = "autodocodec";
+       version = "0.0.0.0";
+       sha256 = "0b8iwzmyf8l80i6p84yd4xhbxipbz10dn2428kmhyzlywjci6pps";
+       libraryHaskellDepends = [
+         aeson base bytestring containers hashable mtl scientific text time
+         unordered-containers validity validity-scientific vector
+       ];
+       testHaskellDepends = [ base doctest ];
+       description = "Self-documenting encoder and decoder";
+       license = lib.licenses.mit;
+     }) {};
+
+  "autodocodec-openapi3" = callPackage
+    ({ mkDerivation, aeson, autodocodec, base
+     , insert-ordered-containers, openapi3, scientific, text
+     }:
+     mkDerivation {
+       pname = "autodocodec-openapi3";
+       version = "0.0.0.0";
+       sha256 = "0fj4acmzrbv94zdm6h1c8r7z312gh6cmjj4gy16ykqhks965h9v9";
+       libraryHaskellDepends = [
+         aeson autodocodec base insert-ordered-containers openapi3
+         scientific text
+       ];
+       description = "Autodocodec interpreters for openapi3";
+       license = lib.licenses.mit;
+     }) {};
+
+  "autodocodec-schema" = callPackage
+    ({ mkDerivation, aeson, autodocodec, base, containers, mtl, text
+     , unordered-containers, validity, validity-aeson
+     , validity-containers, validity-text
+     }:
+     mkDerivation {
+       pname = "autodocodec-schema";
+       version = "0.0.0.0";
+       sha256 = "0r5mhzfcyl0vzxzih9ckq21nly1i3y0ch2yj49idvw4df2wl5q8p";
+       libraryHaskellDepends = [
+         aeson autodocodec base containers mtl text unordered-containers
+         validity validity-aeson validity-containers validity-text
+       ];
+       description = "Autodocodec interpreters for JSON Schema";
+       license = lib.licenses.mit;
+     }) {};
+
+  "autodocodec-swagger2" = callPackage
+    ({ mkDerivation, aeson, autodocodec, base
+     , insert-ordered-containers, scientific, swagger2, text
+     }:
+     mkDerivation {
+       pname = "autodocodec-swagger2";
+       version = "0.0.0.0";
+       sha256 = "1z7ap55y0wzrlkfa2z420flb5ipb5nmwfcgmw8ld8arp1p1dq80m";
+       libraryHaskellDepends = [
+         aeson autodocodec base insert-ordered-containers scientific
+         swagger2 text
+       ];
+       description = "Autodocodec interpreters for swagger2";
+       license = lib.licenses.mit;
+     }) {};
+
+  "autodocodec-yaml" = callPackage
+    ({ mkDerivation, autodocodec, autodocodec-schema, base, bytestring
+     , containers, path, path-io, safe-coloured-text, scientific, text
+     , unordered-containers, vector, yaml
+     }:
+     mkDerivation {
+       pname = "autodocodec-yaml";
+       version = "0.0.0.0";
+       sha256 = "19ryi7kqxazng2iy5bdf7h8r2bvdydbb1f2fbxf5gzf1algb421z";
+       libraryHaskellDepends = [
+         autodocodec autodocodec-schema base bytestring containers path
+         path-io safe-coloured-text scientific text unordered-containers
+         vector yaml
+       ];
+       description = "Autodocodec interpreters for yaml";
+       license = lib.licenses.mit;
+     }) {};
+
   "autoexporter" = callPackage
     ({ mkDerivation, base, Cabal, directory, filepath }:
      mkDerivation {
@@ -36827,8 +36968,8 @@ self: {
        pname = "aws";
        version = "0.22";
        sha256 = "1l3f94mpih7slz37ikyjkyrwvlf110w87997d8sbnbd8glwlcb8r";
-       revision = "2";
-       editedCabalFile = "02dn1wzcnsa9m6ycwnmfrrmsmlp9fl5x96xv95ifflfklnvy7ypl";
+       revision = "3";
+       editedCabalFile = "0k9xk07mviyvh5cxri7z923f5wfylmbrg63l1hqrnkd8hxk9w14y";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -36856,10 +36997,8 @@ self: {
      }:
      mkDerivation {
        pname = "aws-arn";
-       version = "0.1.0.0";
-       sha256 = "0wwmrpmcw01wifcpfsb81fx54c49zgg80h2y11cjpr7qkwdhiqwd";
-       revision = "2";
-       editedCabalFile = "17yvsm3rqvr8vy8qs7l4xvp3bnlmyvwq8bmb6gjacgz46k30dq0f";
+       version = "0.1.0.1";
+       sha256 = "0ml27685rjycrhc84sq41yniy15s2ak59cq5j1ybf9mxkwl52qcn";
        libraryHaskellDepends = [
          base deriving-compat hashable lens text
        ];
@@ -36875,18 +37014,18 @@ self: {
     ({ mkDerivation, aeson, aeson-pretty, asn1-encoding, asn1-types
      , base, base64-bytestring, bytestring, cookie, cryptonite, hedgehog
      , lens, lens-aeson, neat-interpolation, optparse-applicative, pem
-     , text, time, unordered-containers, vector
+     , text, time, vector
      }:
      mkDerivation {
        pname = "aws-cloudfront-signed-cookies";
-       version = "0.2.0.8";
-       sha256 = "07640asv46gvqqzv8d050x19b2j6wjasm98gpy6047aqg1a6f3ac";
+       version = "0.2.0.10";
+       sha256 = "1mzsg6wfzgiippl8kw54m16i1m7zxwfqfwx3wbb3m372pg4h9sza";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-pretty asn1-encoding asn1-types base base64-bytestring
          bytestring cookie cryptonite lens lens-aeson optparse-applicative
-         pem text time unordered-containers vector
+         pem text time vector
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [ base hedgehog neat-interpolation ];
@@ -38656,6 +38795,8 @@ self: {
        pname = "base-compat-batteries";
        version = "0.12.1";
        sha256 = "12w3bpsz3xykhibc8wkhiii9nav7yxhlv424cy1b9v9ihbfkr3zr";
+       revision = "2";
+       editedCabalFile = "0p522rvawkpyr12jwa0cikpqihvq2xd99nr95l0s3zdjf1srv0gf";
        libraryHaskellDepends = [ base base-compat ghc-prim OneTuple ];
        testHaskellDepends = [ base hspec QuickCheck ];
        testToolDepends = [ hspec-discover ];
@@ -38794,6 +38935,8 @@ self: {
        pname = "base16";
        version = "0.3.0.2";
        sha256 = "16jkb0cmi7gi6plm4ycrk6a1ahjzzlgjf937cv8hld83pg713yvz";
+       revision = "1";
+       editedCabalFile = "1w7msrq6340iadhsmbdk1lz4il2lylkv0m9szicbx0ln980xx1fd";
        libraryHaskellDepends = [
          base bytestring deepseq primitive text text-short
        ];
@@ -39122,8 +39265,8 @@ self: {
        pname = "base64-bytestring-type";
        version = "1.0.1";
        sha256 = "03kq4rjj6by02rf3hg815jfdqpdk0xygm5f46r2pn8mb99yd01zn";
-       revision = "10";
-       editedCabalFile = "0d9nd34ga5xhgkvbysqzyn03w3zi42hgfjk6cza2ymiqxrl2yk9m";
+       revision = "11";
+       editedCabalFile = "0aj0av37xgxz6pyzwc8d3qr915a2d2pwz1g21ad8nd5ms4zpgz7l";
        libraryHaskellDepends = [
          aeson base base-compat base64-bytestring binary bytestring cereal
          deepseq hashable http-api-data QuickCheck serialise text
@@ -39216,6 +39359,17 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "basement-cd" = callPackage
+    ({ mkDerivation, base, ghc-prim }:
+     mkDerivation {
+       pname = "basement-cd";
+       version = "0.0.12.1";
+       sha256 = "18w1rzn6p3a25y075rr1lmln74mfiv9dzgf01mipwjqfsirki15b";
+       libraryHaskellDepends = [ base ghc-prim ];
+       description = "Foundation scrap box of array & string";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "basen" = callPackage
     ({ mkDerivation, base, bytestring, quickcheck-instances, tasty
      , tasty-discover, tasty-hspec, tasty-quickcheck, text
@@ -39540,8 +39694,8 @@ self: {
      }:
      mkDerivation {
        pname = "battleship-combinatorics";
-       version = "0.0.0.2";
-       sha256 = "1vja3z9xna06cyb3xlx2p7z4drbglbyahr8fs3337phynv2h0v0g";
+       version = "0.0.1";
+       sha256 = "0pr1vcq69ndkln5jd6kxd0gn8jvc8n7aiqanxsrqnjpx4kkixph4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -39928,6 +40082,8 @@ self: {
        pname = "beam-core";
        version = "0.9.1.0";
        sha256 = "1rw3db9qmf08wi5gcd0cbsz5cpndf8cwkbzkh74gbwwpcpa7lg39";
+       revision = "1";
+       editedCabalFile = "1skynr0yg6ig6p9wic3dkbz88qrpnirljkb429yshwbzns55gimh";
        libraryHaskellDepends = [
          aeson base bytestring containers dlist free ghc-prim hashable
          microlens mtl network-uri scientific tagged text time vector
@@ -40133,35 +40289,6 @@ self: {
      }:
      mkDerivation {
        pname = "bech32";
-       version = "1.1.1";
-       sha256 = "0ibdibki3f51wpxby3cl6p0xzd32ddczlg2dcqxy7lgx7j3h9xgn";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         array base bytestring containers extra text
-       ];
-       executableHaskellDepends = [
-         base base58-bytestring bytestring extra memory optparse-applicative
-         text
-       ];
-       testHaskellDepends = [
-         base base58-bytestring bytestring containers deepseq extra hspec
-         memory process QuickCheck text vector
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Implementation of the Bech32 cryptocurrency address format (BIP 0173)";
-       license = lib.licenses.asl20;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "bech32_1_1_2" = callPackage
-    ({ mkDerivation, array, base, base58-bytestring, bytestring
-     , containers, deepseq, extra, hspec, hspec-discover, memory
-     , optparse-applicative, process, QuickCheck, text, vector
-     }:
-     mkDerivation {
-       pname = "bech32";
        version = "1.1.2";
        sha256 = "1iyjnyy7l0jf2azbgg6lc5k7n25h1r41fyyqfagyaz79vhi1k7j8";
        isLibrary = true;
@@ -41285,8 +41412,8 @@ self: {
      }:
      mkDerivation {
        pname = "binary-generic-combinators";
-       version = "0.4.3.0";
-       sha256 = "1ng2jg3qpwplx9yjpmkj232rflyjnc3fymzjifqdwmvvzsdf9v4v";
+       version = "0.4.4.0";
+       sha256 = "0kdgfhkfxsz7315jbf0a5vm15nwmd5gpgwk9hw2kwkfzl1k6iv7x";
        libraryHaskellDepends = [ base binary QuickCheck ];
        testHaskellDepends = [
          base binary byte-order generic-arbitrary hspec QuickCheck
@@ -41330,6 +41457,8 @@ self: {
        pname = "binary-instances";
        version = "1.0.2";
        sha256 = "10z29k35clq74ma2f0yrkbyf14wdax1zzgb6mn26ja4vp9f5wc14";
+       revision = "1";
+       editedCabalFile = "1k0dygivh0qrc9w9hck1qf4bmwwsni0kv16rjpidvp3nv3s45549";
        libraryHaskellDepends = [
          aeson base binary binary-orphans case-insensitive hashable
          scientific tagged text text-binary time-compat unordered-containers
@@ -41350,8 +41479,8 @@ self: {
      }:
      mkDerivation {
        pname = "binary-io";
-       version = "0.5.0";
-       sha256 = "15v5iqrxdlynllwb2p6v161cwvadri5jdpgknlcw1vpsgf1dnhy7";
+       version = "0.6.2";
+       sha256 = "0m2l4ipqk66wal51aabbry2pa642mali8r73pschg3v0dllzk6dq";
        libraryHaskellDepends = [
          base binary bytestring concurrency deque exceptions process
          transformers
@@ -41420,6 +41549,8 @@ self: {
        pname = "binary-orphans";
        version = "1.0.2";
        sha256 = "0q7yk3m275lcmar1dsrz009xasw34755cjrb6f2h4kkymy93qjsz";
+       revision = "1";
+       editedCabalFile = "01arf4sm4srri0iahvlzr2x2nzda7dnii1rwadlgaql5ns2ckazz";
        libraryHaskellDepends = [ base binary OneTuple transformers ];
        testHaskellDepends = [
          base binary OneTuple QuickCheck quickcheck-instances tagged tasty
@@ -41618,6 +41749,8 @@ self: {
        pname = "binary-tagged";
        version = "0.3.1";
        sha256 = "01d1wb8h5mz76l09r2azphvhm1y3nar8pqrh2waxn797bd2dh6fp";
+       revision = "1";
+       editedCabalFile = "08s4ryp28j0vg94rfp9gnlb8mfyfcnrqnvq59k88l7hh1s4af0r5";
        libraryHaskellDepends = [
          array base base16-bytestring binary bytestring containers
          structured tagged
@@ -42803,22 +42936,22 @@ self: {
     ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring
      , bytestring-lexing, case-insensitive, clustering, conduit
      , conduit-extra, containers, criterion, data-default-class
-     , data-ordlist, double-conversion, hexpat, HsHTSLib, http-conduit
-     , IntervalMap, math-functions, matrices, microlens, microlens-th
-     , mtl, parallel, primitive, random, split, statistics, tasty
-     , tasty-golden, tasty-hunit, text, transformers
+     , data-ordlist, deepseq, double-conversion, hexpat, HsHTSLib
+     , http-conduit, IntervalMap, math-functions, matrices, microlens
+     , microlens-th, mtl, parallel, primitive, random, split, statistics
+     , tasty, tasty-golden, tasty-hunit, text, transformers
      , unordered-containers, vector, vector-algorithms, word8
      }:
      mkDerivation {
        pname = "bioinformatics-toolkit";
-       version = "0.9.5";
-       sha256 = "03nra5ngirlkfm9xhndiwsl51ixcgp5rf7xfwgvw0bfvzddrc6i9";
+       version = "0.10.0";
+       sha256 = "07fzdwl5cknkjwzwf8ixhapx0c5wyxgimrx4pxipj5gm30ryl62z";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson aeson-pretty attoparsec base bytestring bytestring-lexing
          case-insensitive clustering conduit conduit-extra containers
-         data-default-class data-ordlist double-conversion hexpat HsHTSLib
-         http-conduit IntervalMap math-functions matrices microlens
+         data-default-class data-ordlist deepseq double-conversion hexpat
+         HsHTSLib http-conduit IntervalMap math-functions matrices microlens
          microlens-th mtl parallel primitive split statistics text
          transformers unordered-containers vector vector-algorithms word8
        ];
@@ -42828,8 +42961,8 @@ self: {
          unordered-containers vector
        ];
        benchmarkHaskellDepends = [
-         base bytestring clustering conduit criterion data-default-class mtl
-         random
+         base bytestring clustering conduit conduit-extra criterion
+         data-default-class mtl random
        ];
        description = "A collection of bioinformatics tools";
        license = lib.licenses.mit;
@@ -43108,8 +43241,8 @@ self: {
      }:
      mkDerivation {
        pname = "bishbosh";
-       version = "0.1.2.0";
-       sha256 = "1ldzl2f93nqaxs9wbf3s9w8wjrx1fx69w95y5fz7rla7szhrckdq";
+       version = "0.1.3.1";
+       sha256 = "17xbfcmbi8fx7ddxqc6h93c729bnx0vpanydbd2w3h24i2v75aqx";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -43918,20 +44051,20 @@ self: {
      }) {};
 
   "bitvec" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, ghc-prim
-     , integer-gmp, primitive, quickcheck-classes, random, tasty
-     , tasty-bench, tasty-hunit, tasty-quickcheck, vector
+    ({ mkDerivation, base, bytestring, containers, deepseq, integer-gmp
+     , primitive, quickcheck-classes, quickcheck-classes-base, random
+     , tasty, tasty-bench, tasty-hunit, tasty-quickcheck, vector
      }:
      mkDerivation {
        pname = "bitvec";
-       version = "1.1.1.0";
-       sha256 = "0652dxx19g26jlx945qas09jhbcy17yw4visk9qhi9fbjl53v3yv";
+       version = "1.1.2.0";
+       sha256 = "0h7c5kpx43bm6qqnkpbzma9n201987cnq1231zg33p3xp7qc1hm2";
        libraryHaskellDepends = [
-         base bytestring deepseq ghc-prim integer-gmp primitive vector
+         base bytestring deepseq integer-gmp primitive vector
        ];
        testHaskellDepends = [
-         base integer-gmp primitive quickcheck-classes tasty tasty-hunit
-         tasty-quickcheck vector
+         base integer-gmp primitive quickcheck-classes
+         quickcheck-classes-base tasty tasty-hunit tasty-quickcheck vector
        ];
        benchmarkHaskellDepends = [
          base containers integer-gmp random tasty-bench vector
@@ -43946,8 +44079,8 @@ self: {
        pname = "bitwise";
        version = "1.0.0.1";
        sha256 = "03xyzdkyb99gvm9g5chl07rqbnm7qrxba7wgmrfmal0rkwm0ibkn";
-       revision = "4";
-       editedCabalFile = "0fjcz8239fagjb4pc42digg511rjaz9r8j8fcvcb6ncxijg7g694";
+       revision = "5";
+       editedCabalFile = "0qfg5kwpavyikgyazwz8mwaykw5j6f3b1i5m0khdja4jbb3f1h04";
        libraryHaskellDepends = [ array base bytestring ];
        testHaskellDepends = [ base QuickCheck ];
        benchmarkHaskellDepends = [ array base bytestring criterion ];
@@ -44802,8 +44935,8 @@ self: {
      }:
      mkDerivation {
        pname = "blockfrost-api";
-       version = "0.2.0.0";
-       sha256 = "0j6ahr51dxwxzscix38awsrfkmz1wzfq3arn9h2s5iciicbj9cf9";
+       version = "0.2.1.0";
+       sha256 = "1mczzhpbdch3m5wmw9zr8pzwmg5jpg3qx167pxv548ykd0nvfjiq";
        libraryHaskellDepends = [
          aeson base bytestring data-default-class deriving-aeson lens
          QuickCheck quickcheck-instances safe-money servant servant-docs
@@ -44826,8 +44959,8 @@ self: {
      }:
      mkDerivation {
        pname = "blockfrost-client";
-       version = "0.2.0.0";
-       sha256 = "0hrdads05vzmsq8hz8w6x16h56frvsc7pscdvri3njb5nbvcfbcq";
+       version = "0.2.1.0";
+       sha256 = "19jw8dr49ahfy5ln8d7fnaxw07mqzj71dawv6bx0p5j0dqdhzxky";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -45581,12 +45714,12 @@ self: {
      }) {};
 
   "bookhound" = callPackage
-    ({ mkDerivation, base, containers, split, time }:
+    ({ mkDerivation, base, containers, time }:
      mkDerivation {
        pname = "bookhound";
-       version = "0.1.2.0";
-       sha256 = "093k8wnj1mgl0i8k3mz1bbigx2dr8shmqv51kq3bli5mkl7msc6w";
-       libraryHaskellDepends = [ base containers split time ];
+       version = "0.1.3.0";
+       sha256 = "1jdnh2sirazhhl1nqjzv3iz8vzv4wj6rn6x0zii78023iv94lwwz";
+       libraryHaskellDepends = [ base containers time ];
        description = "Simple Parser Combinators & Parsers for usual data formats";
        license = "LGPL";
      }) {};
@@ -46030,6 +46163,8 @@ self: {
        pname = "boring";
        version = "0.2";
        sha256 = "0d2cm9ra69cvaxs5x3lr2rfv7xx6xrbpb3dbcpyd8m77cqxm7b0b";
+       revision = "1";
+       editedCabalFile = "116sbp55pp6b4z9c1iyxaafxwd3mzra5ha2g65sfdla28rabwxj0";
        libraryHaskellDepends = [ base tagged transformers ];
        description = "Boring and Absurd types";
        license = lib.licenses.bsd3;
@@ -46133,31 +46268,6 @@ self: {
 
   "bound" = callPackage
     ({ mkDerivation, base, bifunctors, binary, bytes, cereal, comonad
-     , deepseq, deriving-compat, functor-classes-compat, hashable
-     , mmorph, profunctors, template-haskell, th-abstraction
-     , transformers, transformers-compat, vector, void
-     }:
-     mkDerivation {
-       pname = "bound";
-       version = "2.0.3";
-       sha256 = "0rhpcz99sax81zh2k1ww7g2xgfcna56ppj9xc1l4gfnsrrlb27yg";
-       revision = "2";
-       editedCabalFile = "1s2vmmmj9gshhisj7fplm146p69bd4js4w0x4zk3qcb9qxl707i2";
-       libraryHaskellDepends = [
-         base bifunctors binary bytes cereal comonad deepseq hashable mmorph
-         profunctors template-haskell th-abstraction transformers
-         transformers-compat
-       ];
-       testHaskellDepends = [
-         base deriving-compat functor-classes-compat transformers
-         transformers-compat vector void
-       ];
-       description = "Making de Bruijn Succ Less";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "bound_2_0_4" = callPackage
-    ({ mkDerivation, base, bifunctors, binary, bytes, cereal, comonad
      , deepseq, deriving-compat, hashable, mmorph, profunctors
      , template-haskell, th-abstraction, transformers
      , transformers-compat, vector, void
@@ -46178,7 +46288,6 @@ self: {
        ];
        description = "Making de Bruijn Succ Less";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "bound-extras" = callPackage
@@ -46636,6 +46745,33 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "brick_0_65" = callPackage
+    ({ mkDerivation, base, bytestring, config-ini, containers
+     , contravariant, data-clist, deepseq, directory, dlist, exceptions
+     , filepath, microlens, microlens-mtl, microlens-th, QuickCheck, stm
+     , template-haskell, text, text-zipper, transformers, unix, vector
+     , vty, word-wrap
+     }:
+     mkDerivation {
+       pname = "brick";
+       version = "0.65";
+       sha256 = "1yk9r5igg5p7aixlpls167z2fajq3vp0xxqcjw4cg168g20lnhbs";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring config-ini containers contravariant data-clist
+         deepseq directory dlist exceptions filepath microlens microlens-mtl
+         microlens-th stm template-haskell text text-zipper transformers
+         unix vector vty word-wrap
+       ];
+       testHaskellDepends = [
+         base containers microlens QuickCheck vector
+       ];
+       description = "A declarative terminal user interface library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "brick-dropdownmenu" = callPackage
     ({ mkDerivation, base, brick, containers, microlens, microlens-ghc
      , microlens-th, pointedlist, vector, vty
@@ -46869,6 +47005,42 @@ self: {
        license = lib.licenses.agpl3Only;
      }) {};
 
+  "brittany_0_14_0_0" = callPackage
+    ({ mkDerivation, aeson, base, butcher, bytestring, cmdargs
+     , containers, czipwith, data-tree-print, deepseq, directory, extra
+     , filepath, ghc, ghc-boot, ghc-boot-th, ghc-exactprint, hspec
+     , monad-memo, mtl, multistate, pretty, random, safe, semigroups
+     , strict, syb, text, transformers, uniplate, yaml
+     }:
+     mkDerivation {
+       pname = "brittany";
+       version = "0.14.0.0";
+       sha256 = "10xphm9szdflwqkfbhz9pngiq0sn5jmysa015dhqc3prhz4qha2b";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base butcher bytestring cmdargs containers czipwith
+         data-tree-print deepseq directory extra filepath ghc ghc-boot
+         ghc-boot-th ghc-exactprint monad-memo mtl multistate pretty random
+         safe semigroups strict syb text transformers uniplate yaml
+       ];
+       executableHaskellDepends = [
+         aeson base butcher bytestring cmdargs containers czipwith
+         data-tree-print deepseq directory extra filepath ghc ghc-boot
+         ghc-boot-th ghc-exactprint monad-memo mtl multistate pretty random
+         safe semigroups strict syb text transformers uniplate yaml
+       ];
+       testHaskellDepends = [
+         aeson base butcher bytestring cmdargs containers czipwith
+         data-tree-print deepseq directory extra filepath ghc ghc-boot
+         ghc-boot-th ghc-exactprint hspec monad-memo mtl multistate pretty
+         random safe semigroups strict syb text transformers uniplate yaml
+       ];
+       description = "Haskell source code formatter";
+       license = lib.licenses.agpl3Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "broadcast-chan" = callPackage
     ({ mkDerivation, async, base, criterion, deepseq, stm, transformers
      , unliftio-core
@@ -47539,8 +47711,8 @@ self: {
      }:
      mkDerivation {
        pname = "bugsnag-haskell";
-       version = "0.0.4.1";
-       sha256 = "0msr61bh2h9ncbar4kwsdpncvaasy3qa3n3vjgqvnsymvs257vaf";
+       version = "0.0.4.2";
+       sha256 = "0q7my31jq0rgpj08zxylvzmml5mms9f1hiavcfy4rpqkjqv8kwir";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47875,8 +48047,8 @@ self: {
      }:
      mkDerivation {
        pname = "burrito";
-       version = "1.2.0.2";
-       sha256 = "0d6qnajyh5v6hw89lw0d3lcan9l20zxkp8r3hq1imzbvb1mcasn5";
+       version = "1.2.0.4";
+       sha256 = "1i08p5g6yivmkgbhxv48amfdw523agjwyd02pbk5lbzyssc2sp7d";
        libraryHaskellDepends = [
          base bytestring containers parsec template-haskell text
          transformers
@@ -48233,8 +48405,8 @@ self: {
      }:
      mkDerivation {
        pname = "byte-count-reader";
-       version = "0.10.1.6";
-       sha256 = "182pc1fx74zfcrvp1g3ghqw3rhc9pcjkxy92n66pg0zm8yk8xqly";
+       version = "0.10.1.7";
+       sha256 = "0rfrz11zhba52jv16k9ml6f4bdy5rlkslckdaq71nm4y8zw4388d";
        libraryHaskellDepends = [ base extra parsec parsec-numbers text ];
        testHaskellDepends = [
          base extra hspec parsec parsec-numbers text
@@ -48282,26 +48454,26 @@ self: {
 
   "bytebuild" = callPackage
     ({ mkDerivation, base, byteslice, bytestring, gauge
-     , integer-logarithms, natural-arithmetic, primitive
-     , primitive-offset, primitive-unlifted, QuickCheck
+     , haskell-src-meta, integer-logarithms, natural-arithmetic
+     , primitive, primitive-offset, primitive-unlifted, QuickCheck
      , quickcheck-classes, quickcheck-instances, run-st, tasty
-     , tasty-hunit, tasty-quickcheck, text, text-short, vector
-     , wide-word
+     , tasty-hunit, tasty-quickcheck, template-haskell, text, text-short
+     , vector, wide-word
      }:
      mkDerivation {
        pname = "bytebuild";
-       version = "0.3.8.0";
-       sha256 = "19gg4qjlj595j8zd0n6cz2kgz70g8z6w666c6wlf5lj32j8p6yh5";
+       version = "0.3.9.0";
+       sha256 = "07ln4qva3qb81w8rsdfxg4i1m659lf97680abm78y1qb41c8ampz";
        libraryHaskellDepends = [
-         base byteslice bytestring integer-logarithms natural-arithmetic
-         primitive primitive-offset primitive-unlifted run-st text-short
-         wide-word
+         base byteslice bytestring haskell-src-meta integer-logarithms
+         natural-arithmetic primitive primitive-offset primitive-unlifted
+         run-st template-haskell text-short wide-word
        ];
        testHaskellDepends = [
          base byteslice bytestring natural-arithmetic primitive
          primitive-unlifted QuickCheck quickcheck-classes
-         quickcheck-instances tasty tasty-hunit tasty-quickcheck text vector
-         wide-word
+         quickcheck-instances tasty tasty-hunit tasty-quickcheck text
+         text-short vector wide-word
        ];
        benchmarkHaskellDepends = [
          base byteslice gauge natural-arithmetic primitive text-short
@@ -48378,6 +48550,34 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "bytepatch" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, either, generic-optics
+     , hspec, hspec-discover, megaparsec, mtl, optics
+     , optparse-applicative, QuickCheck, text, vinyl, yaml
+     }:
+     mkDerivation {
+       pname = "bytepatch";
+       version = "0.3.0";
+       sha256 = "13hy2107nlhglafc6qk4q8f8ds2ypd1cmjw2x1ma08yznapljsy4";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring either generic-optics megaparsec mtl optics
+         text vinyl
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring either generic-optics megaparsec mtl optics
+         optparse-applicative text vinyl yaml
+       ];
+       testHaskellDepends = [
+         aeson base bytestring either generic-optics hspec megaparsec mtl
+         optics QuickCheck text vinyl
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Patch byte-representable data in a bytestream";
+       license = lib.licenses.mit;
+     }) {};
+
   "bytes" = callPackage
     ({ mkDerivation, base, binary, binary-orphans, bytestring, cereal
      , containers, hashable, mtl, scientific, text, time, transformers
@@ -48458,28 +48658,39 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "bytestring_0_11_1_0" = callPackage
-    ({ mkDerivation, base, deepseq, dlist, ghc-prim, integer-gmp
-     , random, tasty, tasty-bench, tasty-hunit, tasty-quickcheck
-     , transformers
+  "bytestring_0_11_2_0" = callPackage
+    ({ mkDerivation, base, deepseq, ghc-prim, QuickCheck, random, tasty
+     , tasty-bench, tasty-quickcheck, template-haskell, transformers
      }:
      mkDerivation {
        pname = "bytestring";
-       version = "0.11.1.0";
-       sha256 = "1a29kwczd1hcpir691x936i9c5ys9d7m1lyby48djs9w54ksy1jw";
-       libraryHaskellDepends = [ base deepseq ghc-prim integer-gmp ];
+       version = "0.11.2.0";
+       sha256 = "16w5j3vxyak3ycfc8w1zwmagznlavgrwiqa1m0fn7s38vzjb7yjf";
+       libraryHaskellDepends = [ base deepseq ghc-prim template-haskell ];
        testHaskellDepends = [
-         base deepseq dlist ghc-prim tasty tasty-hunit tasty-quickcheck
-         transformers
-       ];
-       benchmarkHaskellDepends = [
-         base deepseq dlist random tasty-bench
+         base deepseq ghc-prim QuickCheck tasty tasty-quickcheck
+         template-haskell transformers
        ];
+       benchmarkHaskellDepends = [ base deepseq random tasty-bench ];
        description = "Fast, compact, strict and lazy byte strings with a list interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "bytestring-aeson-orphans" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring, bytestring, text
+     }:
+     mkDerivation {
+       pname = "bytestring-aeson-orphans";
+       version = "0.1.0.0";
+       sha256 = "0zr61jaj84js39w849mkz7wfgxc9pn9dg09hmjb7x11d86v3m2nh";
+       libraryHaskellDepends = [
+         aeson base base64-bytestring bytestring text
+       ];
+       description = "Aeson instances for ByteString, using base 64 encoding";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "bytestring-arbitrary" = callPackage
     ({ mkDerivation, base, bytestring, criterion, cryptohash
      , QuickCheck
@@ -48810,8 +49021,8 @@ self: {
      }:
      mkDerivation {
        pname = "bytestring-strict-builder";
-       version = "0.4.5.4";
-       sha256 = "1yjhxqsb96gi8ll70wf1p6islx0959f62fd6ypap4wyp4v2dr8c4";
+       version = "0.4.5.5";
+       sha256 = "1knin3mfj2qfh7xhvbrpakd037y7qqic24f1w93v8p6y5g7bc3zp";
        libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [
          QuickCheck quickcheck-instances rerebase tasty tasty-hunit
@@ -48889,12 +49100,18 @@ self: {
      }) {};
 
   "bytestring-trie" = callPackage
-    ({ mkDerivation, base, binary, bytestring }:
+    ({ mkDerivation, base, binary, bytestring, QuickCheck, smallcheck
+     , tasty, tasty-hunit, tasty-quickcheck, tasty-smallcheck
+     }:
      mkDerivation {
        pname = "bytestring-trie";
-       version = "0.2.5.3";
-       sha256 = "1751g4bgkvyjh46nzzy4m8cj71ml7znchqaicyz74n93j1bqpj89";
+       version = "0.2.6";
+       sha256 = "00wz54cmn2wa8vvhvhmdxj16nj0blhhyabp54ddahicnnizi2hzf";
        libraryHaskellDepends = [ base binary bytestring ];
+       testHaskellDepends = [
+         base binary bytestring QuickCheck smallcheck tasty tasty-hunit
+         tasty-quickcheck tasty-smallcheck
+       ];
        description = "An efficient finite map from (byte)strings to values";
        license = lib.licenses.bsd3;
      }) {};
@@ -49544,6 +49761,8 @@ self: {
        pname = "cabal-db";
        version = "0.1.12";
        sha256 = "1phksjb1ahg0dbgsxsckgmqvvhrzvpn02c3w26gbiq9diindx267";
+       revision = "1";
+       editedCabalFile = "10j6rc02wrxw72vy4d9pyr7gl5xkvkf9w5jb8x42scrvdyk6sd7a";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -49640,25 +49859,11 @@ self: {
     ({ mkDerivation, base, Cabal, directory, filepath }:
      mkDerivation {
        pname = "cabal-doctest";
-       version = "1.0.8";
-       sha256 = "03if74imlhhk7m56nci5f1wclniwqdmwl4hl177040j1gnlac9i0";
-       revision = "2";
-       editedCabalFile = "05v1awad3d1wvc763xcgvxm4n6n7bs7byc6s14kdbw35zcaddlcb";
-       libraryHaskellDepends = [ base Cabal directory filepath ];
-       description = "A Setup.hs helper for doctests running";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "cabal-doctest_1_0_9" = callPackage
-    ({ mkDerivation, base, Cabal, directory, filepath }:
-     mkDerivation {
-       pname = "cabal-doctest";
        version = "1.0.9";
        sha256 = "0wxs0xkspc80h0g8ks792lrzldxvcnhc9rja1j0k678ijs20hmjm";
        libraryHaskellDepends = [ base Cabal directory filepath ];
        description = "A Setup.hs helper for running doctests";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "cabal-edit" = callPackage
@@ -49748,6 +49953,29 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "cabal-flatpak_0_1_0_3" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, cabal-plan
+     , containers, cryptohash-sha256, http-client, http-client-tls
+     , http-types, optparse-applicative, pathtype, shell-utility, tar
+     , text, utility-ht, zlib
+     }:
+     mkDerivation {
+       pname = "cabal-flatpak";
+       version = "0.1.0.3";
+       sha256 = "1k0fzhyvlcq1l09fnf3f3wig4g9l61wsm1dmsjd3nwsgh52xb37v";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson aeson-pretty base bytestring cabal-plan containers
+         cryptohash-sha256 http-client http-client-tls http-types
+         optparse-applicative pathtype shell-utility tar text utility-ht
+         zlib
+       ];
+       description = "Generate a FlatPak manifest from a Cabal package description";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "cabal-fmt" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, directory
      , filepath, mtl, optparse-applicative, parsec, pretty, process
@@ -49890,6 +50118,8 @@ self: {
        pname = "cabal-install";
        version = "3.6.2.0";
        sha256 = "0dihpm4h3xh13vnpvwflnb7v614qdvljycc6ffg5cvhwbwfrxyfw";
+       revision = "1";
+       editedCabalFile = "0891zma6ci26ndbb98mahps0dxy7zccj3mqa9d194j3d305hs9av";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -51264,7 +51494,6 @@ self: {
        ];
        description = "A library for declaring, parsing, and invoking text-input based commands";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "calc" = callPackage
@@ -51410,6 +51639,8 @@ self: {
        pname = "call-alloy";
        version = "0.2.2.0";
        sha256 = "09xy823lxmp4siqxbv8f6v192a9bs0vmq36293cbiv7g7w65bnvi";
+       revision = "2";
+       editedCabalFile = "0c90z46ks7sybx899ama5dsvbxvm62a2cclwqav1rak1vjygglk2";
        libraryHaskellDepends = [
          base bytestring containers directory file-embed filepath hashable
          mtl process split trifecta unix
@@ -51898,10 +52129,8 @@ self: {
      }:
      mkDerivation {
        pname = "capnp";
-       version = "0.14.0.0";
-       sha256 = "15v0s597wq0ipvikd727fzcqg5r6685lvr8y1x93q5mdl975gi8m";
-       revision = "1";
-       editedCabalFile = "1s57x426qkn54g8zj8rbn77qg849mx5ps1zwjj6gwfjifddgd5g5";
+       version = "0.15.0.0";
+       sha256 = "15vywgr01as3avmz9q1zp899w39xf6p9pk95bvvdmh9py2jh4sf4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -52798,8 +53027,8 @@ self: {
        pname = "cassava";
        version = "0.5.2.0";
        sha256 = "01h1zrdqb313cjd4rqm1107azzx4czqi018c2djf66a5i7ajl3dk";
-       revision = "5";
-       editedCabalFile = "0d2zfs9a5rzljaz2dr47rypsj7aamgsfqn0gs0pwjhkwi8p1504y";
+       revision = "6";
+       editedCabalFile = "0r3daq24ng1sbypxr1h8m33pibwvrxyzd2inwhi5pvjckn2ghpmq";
        configureFlags = [ "-f-bytestring--lt-0_10_4" ];
        libraryHaskellDepends = [
          array attoparsec base bytestring containers deepseq hashable Only
@@ -53301,8 +53530,8 @@ self: {
      }:
      mkDerivation {
        pname = "cayley-client";
-       version = "0.4.16";
-       sha256 = "1h199fmjchfnfi80mwzhhaw3hi8zmw014w1dla2xkq7bw4cx69d9";
+       version = "0.4.17";
+       sha256 = "1mc4r45vlwbrcjz33akqs5kh27wc97b8dg1byanvyjyvsvabg5bb";
        libraryHaskellDepends = [
          aeson attoparsec base binary bytestring exceptions http-client
          http-conduit lens lens-aeson mtl text transformers
@@ -53383,6 +53612,8 @@ self: {
        pname = "cborg";
        version = "0.2.6.0";
        sha256 = "1mvsavi8ngsvmcvlmaygsnygf7hn8kdqdhfff91n1zajgpz577h6";
+       revision = "1";
+       editedCabalFile = "0ry5p8cnmm772m3z074azh1ldxvq851dmffsp2b7vljjhzd9j4sc";
        libraryHaskellDepends = [
          array base bytestring containers deepseq ghc-prim half integer-gmp
          primitive text
@@ -55003,18 +55234,18 @@ self: {
      }) {cherry-core = null;};
 
   "chessIO" = callPackage
-    ({ mkDerivation, attoparsec, base, binary, brick, bytestring
-     , containers, deepseq, directory, extra, file-embed, filepath
-     , hashable, haskeline, HUnit, lens, megaparsec, MonadRandom
-     , mono-traversable, mtl, o-clock, optparse-applicative, parallel
-     , prettyprinter, process, random, rosezipper, stm, template-haskell
-     , text, th-compat, th-lift-instances, time, unordered-containers
-     , vector, vector-binary-instances, vector-instances, vty
+    ({ mkDerivation, attoparsec, base, binary, bytestring, containers
+     , deepseq, directory, extra, file-embed, hashable, haskeline, HUnit
+     , lens, megaparsec, MonadRandom, mono-traversable, mtl, o-clock
+     , optparse-applicative, parallel, prettyprinter, process, random
+     , stm, template-haskell, text, th-compat, th-lift-instances, time
+     , unordered-containers, vector, vector-binary-instances
+     , vector-instances
      }:
      mkDerivation {
        pname = "chessIO";
-       version = "0.9.1.0";
-       sha256 = "19lkjrqji01kmfjm065xmlxsrwwr0z2vz2cz19wr0bx6sz4hw3zr";
+       version = "0.9.2.0";
+       sha256 = "024hzkgq7csmhxapxsl26c8sxpnngpwvikz4sg277arkj6j6mxf2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -55025,12 +55256,12 @@ self: {
          vector-binary-instances vector-instances
        ];
        executableHaskellDepends = [
-         attoparsec base binary brick bytestring containers deepseq extra
-         file-embed filepath hashable haskeline lens megaparsec MonadRandom
+         attoparsec base binary bytestring containers deepseq extra
+         file-embed hashable haskeline lens megaparsec MonadRandom
          mono-traversable mtl o-clock optparse-applicative prettyprinter
-         process random rosezipper stm template-haskell text th-compat
+         process random stm template-haskell text th-compat
          th-lift-instances time unordered-containers vector
-         vector-binary-instances vector-instances vty
+         vector-binary-instances vector-instances
        ];
        testHaskellDepends = [
          attoparsec base binary bytestring containers deepseq directory
@@ -55770,21 +56001,24 @@ self: {
      }) {};
 
   "cimple" = callPackage
-    ({ mkDerivation, aeson, alex, array, base, bytestring, compact
-     , containers, groom, happy, hspec, mtl, text
+    ({ mkDerivation, aeson, alex, ansi-wl-pprint, array, base
+     , bytestring, containers, filepath, groom, happy, hspec
+     , hspec-discover, mtl, text
      }:
      mkDerivation {
        pname = "cimple";
-       version = "0.0.1";
-       sha256 = "06sqdyqmvkaf4nsh1cq287pmki0dbzvh4yzlbcm5l7c2clxc7yg5";
+       version = "0.0.2";
+       sha256 = "0ija5g7myn50pyr4zyfya2p3vhgflfyf3pzjp8mg9i5ny9d8cqa4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson array base bytestring compact containers mtl text
+         aeson ansi-wl-pprint array base bytestring containers filepath
+         groom mtl text
        ];
        libraryToolDepends = [ alex happy ];
        executableHaskellDepends = [ base bytestring groom text ];
-       testHaskellDepends = [ base hspec ];
+       testHaskellDepends = [ ansi-wl-pprint base hspec text ];
+       testToolDepends = [ hspec-discover ];
        description = "Simple C-like programming language";
        license = lib.licenses.gpl3Only;
      }) {};
@@ -56698,8 +56932,10 @@ self: {
      }:
      mkDerivation {
        pname = "clash-shake";
-       version = "0.2.0";
-       sha256 = "023aa37j8fzy74x8bdd1jkmw60immvy6l3jvvyqkry46dilgsxb9";
+       version = "0.2.1";
+       sha256 = "0lxv3ihlhnibi7vmfa4pqmf04524vlr3ksmdzgrlcarximi122kd";
+       revision = "1";
+       editedCabalFile = "07yb41fg6s5r8cs4xvax8nk3mly33shbbclql0q24wz5g7h4w06d";
        libraryHaskellDepends = [
          aeson base bytestring clash-ghc clash-lib clash-prelude directory
          shake split stache text unordered-containers
@@ -56770,8 +57006,8 @@ self: {
      }:
      mkDerivation {
        pname = "clashilator";
-       version = "0.1.0";
-       sha256 = "0nlyjhf4vy5ypimdv3ac9qw9aljm2k99y42b2pkhhw84iblv4qgy";
+       version = "0.1.1";
+       sha256 = "0d95h9dflclzgfph4as4bzz0442z0a9w59d97snzih9wc1cg4vbp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -56890,22 +57126,20 @@ self: {
     ({ mkDerivation, async, base, basic-prelude, bifunctors, bytestring
      , chunked-data, containers, deepseq, dlist, ghc-prim, hashable
      , hspec, mono-traversable, mono-traversable-instances, mtl
-     , mutable-containers, primitive, QuickCheck, say, semigroups, stm
-     , stm-chans, text, time, transformers, unliftio
-     , unordered-containers, vector, vector-instances
+     , mutable-containers, primitive, QuickCheck, say, stm, stm-chans
+     , text, time, transformers, unliftio, unordered-containers, vector
+     , vector-instances
      }:
      mkDerivation {
        pname = "classy-prelude";
-       version = "1.5.0";
-       sha256 = "1nm4lygxqb1wq503maki6dsah2gpn5rd22jmbwjxfwyzgyqy9fnk";
-       revision = "1";
-       editedCabalFile = "1jivh1bmcvqn6bhh5z8x69v93zjcriklljm7gx342d8k5d5rsf4s";
+       version = "1.5.0.2";
+       sha256 = "0mxgx4hr5fsdg45wbilhsnryc61yclhf63bh94q88n26gjmjr60h";
        libraryHaskellDepends = [
          async base basic-prelude bifunctors bytestring chunked-data
          containers deepseq dlist ghc-prim hashable mono-traversable
-         mono-traversable-instances mtl mutable-containers primitive say
-         semigroups stm stm-chans text time transformers unliftio
-         unordered-containers vector vector-instances
+         mono-traversable-instances mtl mutable-containers primitive say stm
+         stm-chans text time transformers unliftio unordered-containers
+         vector vector-instances
        ];
        testHaskellDepends = [
          base containers hspec QuickCheck transformers unordered-containers
@@ -57983,8 +58217,8 @@ self: {
      }:
      mkDerivation {
        pname = "cloudi";
-       version = "2.0.2";
-       sha256 = "19m07hh2vrzgj6nalcm3fbrlxcv5c8ci6d9c9pihv82d444n37j6";
+       version = "2.0.4";
+       sha256 = "0d53ya6mqjl74yj1skmlbir5vvrfisrliahilm2jkaj3l8awyr2h";
        libraryHaskellDepends = [
          array base binary bytestring containers network time unix zlib
        ];
@@ -60896,6 +61130,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "comparse" = callPackage
+    ({ mkDerivation, base, mtl, tasty, tasty-hunit, transformers }:
+     mkDerivation {
+       pname = "comparse";
+       version = "0.1.0.0";
+       sha256 = "1y5i1k8psarnzs6j3dwhnjrzsl9yxz544xxbr0x41m494bbr38mx";
+       libraryHaskellDepends = [ base mtl transformers ];
+       testHaskellDepends = [ base mtl tasty tasty-hunit transformers ];
+       description = "An unopiniated parser combinators library";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "compdata" = callPackage
     ({ mkDerivation, base, containers, criterion, deepseq, HUnit, mtl
      , QuickCheck, random, template-haskell, test-framework
@@ -61060,6 +61306,8 @@ self: {
        pname = "compensated";
        version = "0.8.3";
        sha256 = "0xigi4pcw581d8kjbhdjkksyz9bgcgvq0j17br9z1x6a3hw1m39a";
+       revision = "1";
+       editedCabalFile = "0c1yzvchjbrv5q6b24y74026082f408d2kqv1789a27z78awfhwm";
        libraryHaskellDepends = [
          base bifunctors binary bytes cereal comonad deepseq distributive
          hashable lens log-domain safecopy semigroupoids semigroups vector
@@ -62183,8 +62431,8 @@ self: {
      }:
      mkDerivation {
        pname = "concurrent-output";
-       version = "1.10.12";
-       sha256 = "081wpag1d5znr0ynrjvkc14xl816m88vz9hgfm3g3sp6ak7s3y47";
+       version = "1.10.14";
+       sha256 = "01d5zq7ja55jjn65fj5rs11kzqnc6baysxkzkq0jfd23wdqf9f92";
        libraryHaskellDepends = [
          ansi-terminal async base directory exceptions process stm
          terminal-size text transformers unix
@@ -62967,8 +63215,8 @@ self: {
      }:
      mkDerivation {
        pname = "conferer-aeson";
-       version = "1.1.0.1";
-       sha256 = "1slz2gbnaca8ydl91rjhpjair90qnybcg6zkxdjrwr9jnxsp95s7";
+       version = "1.1.0.2";
+       sha256 = "07rdal3smq1s14zmsn7g26vc6sqj21rsa2a1vcbrwrfgh9x36jkn";
        libraryHaskellDepends = [
          aeson base bytestring conferer directory text unordered-containers
          vector
@@ -63319,8 +63567,8 @@ self: {
        pname = "config-schema";
        version = "1.2.2.0";
        sha256 = "10mp76j2gxcb51865lb6cf3nkc2nc7fwarkghb6yz71q6sbrg3yx";
-       revision = "1";
-       editedCabalFile = "0wswgb6m2whyxddm214fbrq69d9i2wrr6j2hhq1dn8p3gx91q3kv";
+       revision = "2";
+       editedCabalFile = "0i9r3a4xakq8a92gh10f8g885z0znnaadwz3sc1x7z0367bfsygg";
        libraryHaskellDepends = [
          base config-value containers free kan-extensions pretty
          semigroupoids text transformers
@@ -63352,10 +63600,8 @@ self: {
      }:
      mkDerivation {
        pname = "config-value";
-       version = "0.8.1";
-       sha256 = "086jv01a737547w6x9w1951vq0p7mx6vqw9ifw5kcs5nvhj5rx2q";
-       revision = "1";
-       editedCabalFile = "0wa3grq566fpkq5g9bcszwjv96drq6b3qg2w32rv8m00pd1j0n27";
+       version = "0.8.2";
+       sha256 = "1yfy453mykwav6b3i58bmpkyb8jxyh96b96lvx2iyd4dz1i75cdk";
        libraryHaskellDepends = [ array base containers pretty text ];
        libraryToolDepends = [ alex happy ];
        testHaskellDepends = [ base text ];
@@ -64012,29 +64258,10 @@ self: {
      }:
      mkDerivation {
        pname = "constraints";
-       version = "0.13.1";
-       sha256 = "0j10sn0i1pk0dsxnf728v0mjg9bcxblkhd8f4fm8rgi32v2sby6k";
-       revision = "1";
-       editedCabalFile = "115n8pqc26gqxgvvf4h4y1wkf3gw6nb3jfjfmdb4svlnk4jlyjm9";
-       libraryHaskellDepends = [
-         base binary deepseq ghc-prim hashable mtl transformers
-         transformers-compat type-equality
-       ];
-       testHaskellDepends = [ base hspec ];
-       testToolDepends = [ hspec-discover ];
-       description = "Constraint manipulation";
-       license = lib.licenses.bsd2;
-     }) {};
-
-  "constraints_0_13_2" = callPackage
-    ({ mkDerivation, base, binary, deepseq, ghc-prim, hashable, hspec
-     , hspec-discover, mtl, transformers, transformers-compat
-     , type-equality
-     }:
-     mkDerivation {
-       pname = "constraints";
        version = "0.13.2";
        sha256 = "1zfijh3jpdfrh8nwn5xv2z05jnxyf0ciqlfaja6g6ls654svrj70";
+       revision = "1";
+       editedCabalFile = "1h46cskb4ci2jigqlrd9x87n1i1d6q6w4r0in6i47ywmhjdv7xwg";
        libraryHaskellDepends = [
          base binary deepseq ghc-prim hashable mtl transformers
          transformers-compat type-equality
@@ -64043,7 +64270,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Constraint manipulation";
        license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "constraints-deriving" = callPackage
@@ -64097,6 +64323,21 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "constraints-extras_0_3_2_1" = callPackage
+    ({ mkDerivation, aeson, base, constraints, template-haskell }:
+     mkDerivation {
+       pname = "constraints-extras";
+       version = "0.3.2.1";
+       sha256 = "0w2wwqsgxqkn8byivrgcsi6fh1kxbivqarmdnpxyh1a1cg373xfp";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base constraints template-haskell ];
+       executableHaskellDepends = [ aeson base constraints ];
+       description = "Utility package for constraints";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "constrictor" = callPackage
     ({ mkDerivation, base, ghc-prim, transformers }:
      mkDerivation {
@@ -64512,6 +64753,8 @@ self: {
        pname = "contiguous";
        version = "0.6.1";
        sha256 = "1cgmz0adrv1kv1z21cfs4s4lmzbyp4acq5v2ly96bckp8a35cbix";
+       revision = "1";
+       editedCabalFile = "0lmqkbz8cgnxyds1wbhb9mxmc3rwz5x9hcamx08znrjl6fpkxs4f";
        libraryHaskellDepends = [
          base deepseq primitive primitive-unlifted run-st
        ];
@@ -65261,6 +65504,8 @@ self: {
        pname = "copilot-core";
        version = "3.6";
        sha256 = "00v8la4q15qj27wyqcbsv0h7m5k5ln98y4zkdzpng3z5gw4mpkm9";
+       revision = "2";
+       editedCabalFile = "0yrrrksyhn7xq0hrp5shlrs0mf725dwzaskd5f13v143k8yx6c7c";
        libraryHaskellDepends = [ base dlist mtl pretty ];
        testHaskellDepends = [
          base HUnit pretty QuickCheck test-framework test-framework-hunit
@@ -65493,7 +65738,7 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "core-program_0_3_4_1" = callPackage
+  "core-program_0_4_2_0" = callPackage
     ({ mkDerivation, async, base, bytestring, chronologique, core-data
      , core-text, directory, exceptions, filepath, fsnotify, hashable
      , hourglass, mtl, prettyprinter, safe-exceptions, stm
@@ -65502,8 +65747,8 @@ self: {
      }:
      mkDerivation {
        pname = "core-program";
-       version = "0.3.4.1";
-       sha256 = "01yk1dyr6z1g541v0y7cpnilbnqwvcn5si38r8flzq35svrk1bjn";
+       version = "0.4.2.0";
+       sha256 = "1xbfshfy6h7afpnlaafyq4mj3x0q4i83sxk6720k0dd0hhszb6b0";
        libraryHaskellDepends = [
          async base bytestring chronologique core-data core-text directory
          exceptions filepath fsnotify hashable hourglass mtl prettyprinter
@@ -66167,8 +66412,8 @@ self: {
     ({ mkDerivation, base, containers, directory, parallel }:
      mkDerivation {
        pname = "cpsa";
-       version = "3.6.7";
-       sha256 = "113w03i4a5xxxr9qc9zd2b00sp0m8lbf1mpgwf5zam3jjxzcq4x0";
+       version = "3.6.8";
+       sha256 = "1v3fm2gd47q0qd59zzd11mpmvmyxh9asb1aymg3337296irvnk66";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -67006,8 +67251,8 @@ self: {
      }:
      mkDerivation {
        pname = "criterion";
-       version = "1.5.11.0";
-       sha256 = "1lwawng4rmhmqqn8gsalfn4xj2n19gwz7pl4wjssicl5qgmnvp8s";
+       version = "1.5.12.0";
+       sha256 = "0wrb48byp906f9wc9ii2mi2b2k008ycbi8ffrrj86plhp5rpvzz5";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -67336,8 +67581,8 @@ self: {
        pname = "crypt-sha512";
        version = "0";
        sha256 = "1wsma9frdrn39i506zydlzlk1ir6jh1pidqfjms8rwqjpx965gn2";
-       revision = "6";
-       editedCabalFile = "1fkwa9vqkavy6pmig971xbk70kwn7hfpa7d1afvsp9g8sqpl52hz";
+       revision = "7";
+       editedCabalFile = "18i2irw9ghwic6yanl6iqqbqqvlwvm6hvvniqgb75hinxgyim0d4";
        libraryHaskellDepends = [
          attoparsec base bytestring cryptohash-sha512
        ];
@@ -67704,8 +67949,8 @@ self: {
      }:
      mkDerivation {
        pname = "crypto-sodium";
-       version = "0.0.4.0";
-       sha256 = "0wypzd06z12mc7pffryp7bq7rzzws348i79yg3x25d4kmi6xqydw";
+       version = "0.0.5.0";
+       sha256 = "0c1q0kmvglmlvv8z8q8nyjjjy02r41bk32pr1z080x79z612zad5";
        libraryHaskellDepends = [
          base bytestring cereal libsodium memory NaCl random safe-exceptions
        ];
@@ -67883,10 +68128,8 @@ self: {
      }:
      mkDerivation {
        pname = "cryptohash-sha1";
-       version = "0.11.100.1";
-       sha256 = "1aqdxdhxhl9jldh951djpwxx8z7gzaqspxl7iwpl84i5ahrsyy9w";
-       revision = "6";
-       editedCabalFile = "10rpxrmqgwihmplczglwxf5q3l13z9j3kvi065z884y4dymmnkgc";
+       version = "0.11.101.0";
+       sha256 = "0h9jl9v38gj0vnscqx7xdklk634p05fa6z2pcvknisq2mnbjq154";
        libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [
          base base16-bytestring bytestring SHA tasty tasty-hunit
@@ -67924,10 +68167,8 @@ self: {
      }:
      mkDerivation {
        pname = "cryptohash-sha512";
-       version = "0.11.100.1";
-       sha256 = "1abi23dr3vzslkh0cx24cdn2gy88jjm4qr6rcm543ajyaywqns8h";
-       revision = "6";
-       editedCabalFile = "0q9c08qd8ssl428ifa3g30r0lp81a8afcpyv7yzqjp88ihgcnfa6";
+       version = "0.11.101.0";
+       sha256 = "0a6sc5b6w0k47fyjhyrfm3p25jsbsqjknfq5mbj53p2p1qsfykc1";
        libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [
          base base16-bytestring bytestring SHA tasty tasty-hunit
@@ -68051,6 +68292,31 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "cryptonite-cd" = callPackage
+    ({ mkDerivation, base, basement-cd, bytestring, deepseq, gauge
+     , ghc-prim, integer-gmp, memory-cd, random, tasty, tasty-hunit
+     , tasty-kat, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "cryptonite-cd";
+       version = "0.29.1";
+       sha256 = "053zfjxwnpaiw0kkky0fdbdqqyarygqnvmlm4vziqqrlkm4nba0c";
+       revision = "1";
+       editedCabalFile = "1y97mmslygswj5aydkvlj5vvf5xzkjxxjrblp3h9mx6wr9k63iyi";
+       libraryHaskellDepends = [
+         base basement-cd bytestring deepseq ghc-prim integer-gmp memory-cd
+       ];
+       testHaskellDepends = [
+         base bytestring memory-cd tasty tasty-hunit tasty-kat
+         tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring deepseq gauge memory-cd random
+       ];
+       description = "Cryptography Primitives sink";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "cryptonite-conduit" = callPackage
     ({ mkDerivation, base, bytestring, conduit, conduit-combinators
      , conduit-extra, cryptonite, exceptions, memory, resourcet, tasty
@@ -69109,8 +69375,8 @@ self: {
      }:
      mkDerivation {
        pname = "curryer-rpc";
-       version = "0.1";
-       sha256 = "13xgmhdgnn3nw2knlr60ah51hbf34fiiiz7z6230976n78aa6vkh";
+       version = "0.2";
+       sha256 = "0vr4b2k688imxfgkh85i9k96djklp1pp75qzi9f8fl5c46flknrg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -69174,8 +69440,8 @@ self: {
      }:
      mkDerivation {
        pname = "cursor";
-       version = "0.3.0.0";
-       sha256 = "1k9x1pv8l8f1sfilwn3i4hrc643n6svjahl4gpd47jhjw8akval7";
+       version = "0.3.2.0";
+       sha256 = "092wybyn97cyf2077w0y23ypkkq02b1w5filpgza0ygilgqprsag";
        libraryHaskellDepends = [
          base containers deepseq microlens text validity validity-containers
          validity-text
@@ -69188,8 +69454,8 @@ self: {
     ({ mkDerivation, base, brick, cursor, text }:
      mkDerivation {
        pname = "cursor-brick";
-       version = "0.1.0.0";
-       sha256 = "018i8yrdcj69qf00vz1sx7is5cx1a7vn5b8kr9b226n7vxlr3nzd";
+       version = "0.1.0.1";
+       sha256 = "108pmv6f8y3szrh3n96dyl7hsfr6qim8axikf82dgs1fd2nx61vw";
        libraryHaskellDepends = [ base brick cursor text ];
        license = lib.licenses.mit;
      }) {};
@@ -69218,8 +69484,8 @@ self: {
      }:
      mkDerivation {
        pname = "cursor-fuzzy-time-gen";
-       version = "0.0.0.0";
-       sha256 = "1m18d7098vivbqj079axmhrwzwk7mr89m159apnx2ff9200br31z";
+       version = "0.1.0.0";
+       sha256 = "12bwxpghgry3dhlpny4zmyjf4xillrajdr2xas07aknddks5bzn1";
        libraryHaskellDepends = [
          base containers cursor-fuzzy-time cursor-gen deepseq fuzzy-time
          fuzzy-time-gen genvalidity genvalidity-time megaparsec time
@@ -69261,19 +69527,45 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "cursor-gen_0_4_0_0" = callPackage
+    ({ mkDerivation, base, containers, criterion, cursor, genvalidity
+     , genvalidity-containers, genvalidity-criterion, genvalidity-hspec
+     , genvalidity-hspec-optics, genvalidity-text, hspec, microlens
+     , pretty-show, QuickCheck, text
+     }:
+     mkDerivation {
+       pname = "cursor-gen";
+       version = "0.4.0.0";
+       sha256 = "1a591kx30d8zmwl1rp78scjgbakkslq45wx6f558wmpph33gnw5s";
+       libraryHaskellDepends = [
+         base containers cursor genvalidity genvalidity-containers
+         genvalidity-text QuickCheck text
+       ];
+       testHaskellDepends = [
+         base containers cursor genvalidity-hspec genvalidity-hspec-optics
+         hspec microlens pretty-show QuickCheck text
+       ];
+       benchmarkHaskellDepends = [
+         base criterion cursor genvalidity-criterion
+       ];
+       description = "Generators for Purely Functional Cursors";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "curve25519" = callPackage
-    ({ mkDerivation, base, bytestring, crypto-api, DRBG, HUnit
-     , QuickCheck, tagged, test-framework, test-framework-hunit
+    ({ mkDerivation, base, bytestring, crypto-api, HUnit, QuickCheck
+     , tagged, test-framework, test-framework-hunit
      , test-framework-quickcheck2
      }:
      mkDerivation {
        pname = "curve25519";
-       version = "0.2.6";
-       sha256 = "11xrr8d4a8mwagqy8wfmja9aj875854bc0ns37x01wdcpwsr3s2h";
+       version = "0.2.7";
+       sha256 = "1p8b1lppkvc19974hr43lcqdi4nj55j2nf7gsnp8dn7gyf23aayq";
        libraryHaskellDepends = [ base bytestring crypto-api ];
        testHaskellDepends = [
-         base bytestring crypto-api DRBG HUnit QuickCheck tagged
-         test-framework test-framework-hunit test-framework-quickcheck2
+         base bytestring crypto-api HUnit QuickCheck tagged test-framework
+         test-framework-hunit test-framework-quickcheck2
        ];
        description = "Fast implementations of the curve25519 elliptic curve primitives";
        license = lib.licenses.bsd3;
@@ -69474,25 +69766,14 @@ self: {
     ({ mkDerivation, base, template-haskell, transformers }:
      mkDerivation {
        pname = "czipwith";
-       version = "1.0.1.3";
-       sha256 = "11v61zmjfdvfi6r0vy9fsj7j4g8hpq42pjhkzqjcksvlwm08bi1d";
-       libraryHaskellDepends = [ base template-haskell ];
-       testHaskellDepends = [ base transformers ];
-       description = "CZipWith class and deriving via TH";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "czipwith_1_0_1_4" = callPackage
-    ({ mkDerivation, base, template-haskell, transformers }:
-     mkDerivation {
-       pname = "czipwith";
        version = "1.0.1.4";
        sha256 = "0zvi7wmbh09ngbyvavvhn6s3vz1pnps59fl1sq3vih6s03s0zmai";
+       revision = "1";
+       editedCabalFile = "1lijciq9ly8cmv7kjkazi8rz8zhh205f64iv3fsjj4spy2lpkyhx";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base transformers ];
        description = "CZipWith class and deriving via TH";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "d-bus" = callPackage
@@ -70747,8 +71028,8 @@ self: {
      }:
      mkDerivation {
        pname = "data-dword";
-       version = "0.3.2";
-       sha256 = "1avpf18pqpa9a53l1isk2par3jdk3yb84kfkrvl14ry57hikkjys";
+       version = "0.3.2.1";
+       sha256 = "0l6xvy89zch5kxkaafsg874xrwx0x1rpxpx1ywbhbs7qv3pz250i";
        libraryHaskellDepends = [
          base data-bword ghc-prim hashable template-haskell
        ];
@@ -71005,13 +71286,13 @@ self: {
      }) {};
 
   "data-forest" = callPackage
-    ({ mkDerivation, base, doctest }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "data-forest";
-       version = "0.1.0.8";
-       sha256 = "0b9b7h526580rsyqv8cfcc3109qjz4rv3prb7p98ddygcpbhm6rl";
+       version = "0.1.0.9";
+       sha256 = "1l16hg1pfzrbi2ih6najcam18p2b5lvmmkl6fxvk7izynvcc79jc";
        libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base doctest ];
+       testHaskellDepends = [ base ];
        description = "A simple multi-way tree data structure";
        license = lib.licenses.asl20;
      }) {};
@@ -71049,6 +71330,17 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "data-functor-logistic" = callPackage
+    ({ mkDerivation, base, distributive }:
+     mkDerivation {
+       pname = "data-functor-logistic";
+       version = "0.0";
+       sha256 = "0k2r4jpm7sa3hgd6i08sg9xbgjzkgzx44z5ai5zpw32b7pqr9xqm";
+       libraryHaskellDepends = [ base distributive ];
+       description = "Updatable analogue of Distributive functors";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "data-has" = callPackage
     ({ mkDerivation, base, criterion, transformers }:
      mkDerivation {
@@ -72645,7 +72937,7 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
-  "dbus_1_2_21" = callPackage
+  "dbus_1_2_23" = callPackage
     ({ mkDerivation, base, bytestring, cereal, conduit, containers
      , criterion, deepseq, directory, exceptions, extra, filepath, lens
      , network, parsec, process, QuickCheck, random, resourcet, split
@@ -72654,8 +72946,8 @@ self: {
      }:
      mkDerivation {
        pname = "dbus";
-       version = "1.2.21";
-       sha256 = "023lfywmxc5qqb31jaxpcf319az8ma9k9b0lkgriklskacq9sadi";
+       version = "1.2.23";
+       sha256 = "10dzqab23i4a2k7fjrbhy0gq6daf865d32mw75vqrgkmywqajp99";
        libraryHaskellDepends = [
          base bytestring cereal conduit containers deepseq exceptions
          filepath lens network parsec random split template-haskell text
@@ -73218,6 +73510,8 @@ self: {
        pname = "dear-imgui";
        version = "1.2.2";
        sha256 = "095mv60dvikw1pmj59kwq6p9s8yp04zd8ndbcq3fdia8w0razrxf";
+       revision = "1";
+       editedCabalFile = "002s2a3hl1scadwqvhairhh7kqvz6fzbjgw4knc9lj6qm9b70gf0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -73431,6 +73725,19 @@ self: {
        broken = true;
      }) {};
 
+  "debugger-hs" = callPackage
+    ({ mkDerivation, base, dlist, hspec, mtl, neat-interpolation, text
+     }:
+     mkDerivation {
+       pname = "debugger-hs";
+       version = "0.1.1.0";
+       sha256 = "1can59y3vcwms3y1bn3wm9cgya3r8f8b6ziv1g89dpav2lbrf70q";
+       libraryHaskellDepends = [ base dlist mtl text ];
+       testHaskellDepends = [ base hspec mtl neat-interpolation text ];
+       description = "Write your GDB scripts in Haskell";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "deburr" = callPackage
     ({ mkDerivation, base, hspec, QuickCheck }:
      mkDerivation {
@@ -73449,6 +73756,8 @@ self: {
        pname = "dec";
        version = "0.0.4";
        sha256 = "0yslffafmqfkvhcw2arpc53hfmn1788z85ss9lxnbclr29lbvzgc";
+       revision = "1";
+       editedCabalFile = "01xin7sn8j2aq4yq61qjxsggakl0igwhaqpsv6jcjraqgj7vwrq3";
        libraryHaskellDepends = [ base ];
        description = "Decidable propositions";
        license = lib.licenses.bsd3;
@@ -73515,24 +73824,24 @@ self: {
      }) {};
 
   "decision-diagrams" = callPackage
-    ({ mkDerivation, base, containers, hashable, hashtables, intern
-     , mwc-random, primitive, QuickCheck, random, reflection, statistics
-     , tasty, tasty-hunit, tasty-quickcheck, tasty-th
-     , unordered-containers
+    ({ mkDerivation, base, containers, deepseq, doctest, hashable
+     , hashtables, intern, mwc-random, primitive, QuickCheck
+     , quickcheck-instances, random, reflection, statistics, tasty
+     , tasty-hunit, tasty-quickcheck, tasty-th, unordered-containers
+     , vector
      }:
      mkDerivation {
        pname = "decision-diagrams";
-       version = "0.1.0.0";
-       sha256 = "056990c7bv7y4f51743jwqgdqpklgljn2v5g942wrzp71bkmgm9q";
-       revision = "1";
-       editedCabalFile = "18m9mxalyakxffjjkbh19vnnl7ix2slhyqdmcyvf5jm1r54d1v0j";
+       version = "0.2.0.0";
+       sha256 = "0l03mwig95h300rn1cfhd5ahwrlap6zsw09lwmkx6wkw6rjf4a5s";
        libraryHaskellDepends = [
          base containers hashable hashtables intern mwc-random primitive
-         random reflection unordered-containers
+         random reflection unordered-containers vector
        ];
        testHaskellDepends = [
-         base containers mwc-random QuickCheck statistics tasty tasty-hunit
-         tasty-quickcheck tasty-th
+         base containers deepseq doctest mwc-random QuickCheck
+         quickcheck-instances statistics tasty tasty-hunit tasty-quickcheck
+         tasty-th vector
        ];
        description = "Binary Decision Diagrams (BDD) and Zero-suppressed Binary Decision Diagrams (ZDD)";
        license = lib.licenses.bsd3;
@@ -73609,6 +73918,22 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "deep-map" = callPackage
+    ({ mkDerivation, base, containers, hedgehog, indexed-traversable
+     , text, time, time-compat
+     }:
+     mkDerivation {
+       pname = "deep-map";
+       version = "0.1.1.0";
+       sha256 = "0hb5wvdmjbxpa92p2zjxvnx1fxwq3gmalm18k6zkwyamk2isyb33";
+       libraryHaskellDepends = [ base containers indexed-traversable ];
+       testHaskellDepends = [
+         base containers hedgehog text time time-compat
+       ];
+       description = "Deeply-nested, multiple key type maps";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "deep-transformations" = callPackage
     ({ mkDerivation, base, Cabal, cabal-doctest, doctest, generic-lens
      , markdown-unlit, rank2classes, template-haskell
@@ -73698,14 +74023,14 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "deepseq_1_4_6_0" = callPackage
+  "deepseq_1_4_6_1" = callPackage
     ({ mkDerivation, array, base, ghc-prim, HUnit, test-framework
      , test-framework-hunit
      }:
      mkDerivation {
        pname = "deepseq";
-       version = "1.4.6.0";
-       sha256 = "0j6pxm9q3xanhxrdmxgzkfdlnpilnlvnnvazq61szl1q9d3mn6ql";
+       version = "1.4.6.1";
+       sha256 = "178k97l6yh8bklnkzqsla4l2vms16ys126abs7d5i0fcnyj472fm";
        libraryHaskellDepends = [ array base ];
        testHaskellDepends = [
          array base ghc-prim HUnit test-framework test-framework-hunit
@@ -73748,8 +74073,8 @@ self: {
        pname = "deepseq-generics";
        version = "0.2.0.0";
        sha256 = "17bwghc15mc9pchfd1w46jh2p3wzc86aj6a537wqwxn08rayzcxh";
-       revision = "6";
-       editedCabalFile = "1qwnpdjsrqzn18pjmvv9aqz3l12fbdcimf62wkj33yfh69rx4s42";
+       revision = "7";
+       editedCabalFile = "1issqf30ykabjpk7f66k8pfyylxw7bxa39b5iq72s76nxi392lig";
        libraryHaskellDepends = [ base deepseq ghc-prim ];
        testHaskellDepends = [
          base deepseq ghc-prim HUnit test-framework test-framework-hunit
@@ -74265,15 +74590,15 @@ self: {
      }:
      mkDerivation {
        pname = "dep-t";
-       version = "0.4.6.0";
-       sha256 = "0mhc5i54r8zbcq9wqmf25761b8dinkldcxq2x9f1l6mdy3zswsg3";
+       version = "0.6.1.0";
+       sha256 = "093zic45a0q3lr0shhc0yjp5gclskyk7ipva0khsqgk2wrqgwqx6";
        libraryHaskellDepends = [ base mtl transformers unliftio-core ];
        testHaskellDepends = [
          aeson barbies base bytestring containers doctest mtl rank2classes
          sop-core tasty tasty-hunit template-haskell text transformers
          unliftio-core
        ];
-       description = "Reader-like monad transformer for dependency injection";
+       description = "Dependency injection for records-of-functions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
        broken = true;
@@ -74281,23 +74606,51 @@ self: {
 
   "dep-t-advice" = callPackage
     ({ mkDerivation, aeson, barbies, base, containers, criterion, dep-t
-     , doctest, mtl, rank2classes, sop-core, tasty, tasty-hunit
-     , template-haskell, text, transformers
+     , doctest, microlens, mtl, rank2classes, sop-core, tasty
+     , tasty-hunit, template-haskell, text, transformers, unliftio-core
      }:
      mkDerivation {
        pname = "dep-t-advice";
-       version = "0.4.7.0";
-       sha256 = "0ry2bvqb030hwslxbidinjxb6fl3v8wah42r52xp92yxj10a9dq0";
-       libraryHaskellDepends = [ base dep-t sop-core transformers ];
+       version = "0.6.1.0";
+       sha256 = "1l3zphhyb55da4jrkbhgynwb72s1lm63iyi4p35np1jffwfcc9mg";
+       libraryHaskellDepends = [
+         base dep-t mtl sop-core transformers unliftio-core
+       ];
        testHaskellDepends = [
-         aeson barbies base containers dep-t doctest mtl rank2classes
-         sop-core tasty tasty-hunit template-haskell text transformers
+         aeson barbies base containers dep-t doctest microlens mtl
+         rank2classes sop-core tasty tasty-hunit template-haskell text
+         transformers unliftio-core
        ];
        benchmarkHaskellDepends = [
          base criterion dep-t mtl rank2classes sop-core template-haskell
-         text transformers
+         text transformers unliftio-core
+       ];
+       description = "Giving good advice to functions in records-of-functions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "dep-t-dynamic" = callPackage
+    ({ mkDerivation, aeson, algebraic-graphs, base, bytestring
+     , containers, dep-t, dep-t-advice, doctest, hashable, microlens
+     , mtl, sop-core, tasty, tasty-hunit, template-haskell, text
+     , transformers, unliftio-core, unordered-containers
+     }:
+     mkDerivation {
+       pname = "dep-t-dynamic";
+       version = "0.1.0.0";
+       sha256 = "0z0dhq5s4cn8y2r60d0ws44z7sq104ghfzic5yn1cicy0nlwddhk";
+       libraryHaskellDepends = [
+         algebraic-graphs base dep-t hashable sop-core transformers
+         unordered-containers
        ];
-       description = "Giving good advice to functions in a DepT environment";
+       testHaskellDepends = [
+         aeson algebraic-graphs base bytestring containers dep-t
+         dep-t-advice doctest hashable microlens mtl sop-core tasty
+         tasty-hunit template-haskell text transformers unliftio-core
+         unordered-containers
+       ];
+       description = "A dynamic environment for dependency injection";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
      }) {};
@@ -74475,14 +74828,14 @@ self: {
 
   "dependent-sum-template" = callPackage
     ({ mkDerivation, base, constraints-extras, dependent-sum
-     , template-haskell, th-extras
+     , template-haskell, th-abstraction, th-extras
      }:
      mkDerivation {
        pname = "dependent-sum-template";
-       version = "0.1.0.3";
-       sha256 = "1px4dj0czdsg4lx4c09v1pil4zifrvpsndhq0hp1hrlrzb9igsy8";
+       version = "0.1.1.1";
+       sha256 = "03xffmih70ksk7jgfs3ypaa91bm1x21fjxqpj1gkhp9gbj6w2vyl";
        libraryHaskellDepends = [
-         base dependent-sum template-haskell th-extras
+         base dependent-sum template-haskell th-abstraction th-extras
        ];
        testHaskellDepends = [ base constraints-extras dependent-sum ];
        description = "Template Haskell code to generate instances of classes in dependent-sum package";
@@ -74833,27 +75186,12 @@ self: {
     ({ mkDerivation, aeson, base, bytestring }:
      mkDerivation {
        pname = "deriving-aeson";
-       version = "0.2.7";
-       sha256 = "02mx8z1cgqn9wgwcp94am2g655hhn7sn12sikmm8jhbldnyv3ziz";
-       revision = "1";
-       editedCabalFile = "0qgkjl7h1d4w119a97wrsznnqys02mlkwv9hic1715swg0cp05ix";
-       libraryHaskellDepends = [ aeson base ];
-       testHaskellDepends = [ aeson base bytestring ];
-       description = "Type driven generic aeson instance customisation";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "deriving-aeson_0_2_8" = callPackage
-    ({ mkDerivation, aeson, base, bytestring }:
-     mkDerivation {
-       pname = "deriving-aeson";
        version = "0.2.8";
        sha256 = "0f59ar4cax7g0h6wrk8ckni7i4gw5wls5ybzbrji2a0qpd7q5lrd";
        libraryHaskellDepends = [ aeson base ];
        testHaskellDepends = [ aeson base bytestring ];
        description = "Type driven generic aeson instance customisation";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "deriving-compat" = callPackage
@@ -75538,42 +75876,41 @@ self: {
        maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
-  "dhall_1_40_1" = callPackage
+  "dhall_1_40_2" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, atomic-write
-     , base, bytestring, case-insensitive, cborg, cborg-json, containers
-     , contravariant, cryptonite, data-fix, deepseq, Diff, directory
-     , doctest, dotgen, either, exceptions, filepath, foldl, gauge
-     , generic-random, half, hashable, haskeline, http-client
-     , http-client-tls, http-types, lens-family-core, megaparsec, memory
-     , mmorph, mockery, mtl, network-uri, optparse-applicative
-     , parser-combinators, parsers, pretty-simple, prettyprinter
-     , prettyprinter-ansi-terminal, profunctors, QuickCheck
-     , quickcheck-instances, repline, scientific, serialise
-     , special-values, spoon, tasty, tasty-expected-failure, tasty-hunit
-     , tasty-quickcheck, tasty-silver, template-haskell, temporary, text
-     , text-manipulate, th-lift-instances, time, transformers, turtle
+     , base, base16-bytestring, bytestring, case-insensitive, cborg
+     , cborg-json, containers, contravariant, cryptohash-sha256
+     , data-fix, deepseq, Diff, directory, doctest, dotgen, either
+     , exceptions, filepath, foldl, gauge, generic-random, half
+     , hashable, haskeline, http-client, http-client-tls, http-types
+     , lens-family-core, megaparsec, mmorph, mockery, mtl, network-uri
+     , optparse-applicative, parser-combinators, parsers, pretty-simple
+     , prettyprinter, prettyprinter-ansi-terminal, profunctors
+     , QuickCheck, quickcheck-instances, repline, scientific, serialise
+     , special-values, spoon, system-filepath, tasty
+     , tasty-expected-failure, tasty-hunit, tasty-quickcheck
+     , tasty-silver, template-haskell, temporary, text, text-manipulate
+     , th-lift-instances, time, transformers, turtle
      , unordered-containers, uri-encode, vector
      }:
      mkDerivation {
        pname = "dhall";
-       version = "1.40.1";
-       sha256 = "0m2fw9ak9l6fz8ylpbi0cdihf2j66jlnd5j3vf56r7wlqgbkxhi1";
-       revision = "5";
-       editedCabalFile = "1dp9byzmjd2kvydc0q5s3mv59a131jqwhc9cl22jgbhp0whq9jgc";
+       version = "1.40.2";
+       sha256 = "14wh497fipvz01zc9s31gv144spg1iqfwp6x5mlk1hjk0v9qs5by";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson aeson-pretty ansi-terminal atomic-write base bytestring
-         case-insensitive cborg cborg-json containers contravariant
-         cryptonite data-fix deepseq Diff directory dotgen either exceptions
-         filepath half hashable haskeline http-client http-client-tls
-         http-types lens-family-core megaparsec memory mmorph mtl
-         network-uri optparse-applicative parser-combinators parsers
-         pretty-simple prettyprinter prettyprinter-ansi-terminal profunctors
-         repline scientific serialise template-haskell text text-manipulate
-         th-lift-instances time transformers unordered-containers uri-encode
-         vector
+         aeson aeson-pretty ansi-terminal atomic-write base
+         base16-bytestring bytestring case-insensitive cborg cborg-json
+         containers contravariant cryptohash-sha256 data-fix deepseq Diff
+         directory dotgen either exceptions filepath half hashable haskeline
+         http-client http-client-tls http-types lens-family-core megaparsec
+         mmorph mtl network-uri optparse-applicative parser-combinators
+         parsers pretty-simple prettyprinter prettyprinter-ansi-terminal
+         profunctors repline scientific serialise template-haskell text
+         text-manipulate th-lift-instances time transformers
+         unordered-containers uri-encode vector
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
@@ -75581,9 +75918,9 @@ self: {
          either filepath foldl generic-random http-client http-client-tls
          lens-family-core megaparsec mockery prettyprinter QuickCheck
          quickcheck-instances scientific serialise special-values spoon
-         tasty tasty-expected-failure tasty-hunit tasty-quickcheck
-         tasty-silver template-haskell temporary text time transformers
-         turtle unordered-containers vector
+         system-filepath tasty tasty-expected-failure tasty-hunit
+         tasty-quickcheck tasty-silver template-haskell temporary text time
+         transformers turtle unordered-containers vector
        ];
        benchmarkHaskellDepends = [
          base bytestring containers directory gauge text
@@ -75617,14 +75954,14 @@ self: {
        maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
-  "dhall-bash_1_0_38" = callPackage
+  "dhall-bash_1_0_39" = callPackage
     ({ mkDerivation, base, bytestring, containers, dhall
      , neat-interpolation, optparse-generic, shell-escape, text
      }:
      mkDerivation {
        pname = "dhall-bash";
-       version = "1.0.38";
-       sha256 = "0pfwqz4l3nn4mr16pv5703j517g3nsgzpmiv18kzl4fs6141d881";
+       version = "1.0.39";
+       sha256 = "0by0w5dqsi0yrs9qnkpls7n5m0qwslxkcycb4s97vk8xl6nj5kk8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -75668,10 +76005,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-csv";
-       version = "1.0.0";
-       sha256 = "1dg310mq4c00ykkm1vsvrcicls25zbx7iypcg0nqa8ggchac5jmh";
-       revision = "1";
-       editedCabalFile = "06mya0h8kw8609chxrbkq24gi7yk3fviz2q6balyv5gp3wivzzvg";
+       version = "1.0.1";
+       sha256 = "00a08lcxf9r1ln87bzy4j83z08yl1m7xmzv1irg0xa03vskby3lx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -75694,30 +76029,29 @@ self: {
      }) {};
 
   "dhall-docs" = callPackage
-    ({ mkDerivation, base, bytestring, containers, cryptonite, dhall
-     , directory, doctest, file-embed, filepath, foldl, hashable
-     , lens-family-core, lucid, megaparsec, memory, mmark, mtl
+    ({ mkDerivation, base, base16-bytestring, bytestring, containers
+     , cryptohash-sha256, dhall, directory, doctest, file-embed
+     , filepath, foldl, lens-family-core, lucid, megaparsec, mmark, mtl
      , optparse-applicative, path, path-io, pretty, prettyprinter, tasty
      , tasty-hunit, tasty-silver, text, transformers, turtle
      }:
      mkDerivation {
        pname = "dhall-docs";
-       version = "1.0.7";
-       sha256 = "1h7bzpp3xa5m8zknhi24q0wh1n6w6z26ka780mdsbmchhhj59njm";
-       revision = "2";
-       editedCabalFile = "19mn12l8qljrf41n0xs58hqi89xaaab4wp6dldvi7pym276zg7pn";
+       version = "1.0.8";
+       sha256 = "1rkwvk6vd8l52nxv186fw3qdmsjvi8098yccnnbysmf41rz80fi7";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         base bytestring containers cryptonite dhall directory file-embed
-         filepath lens-family-core lucid megaparsec memory mmark mtl
-         optparse-applicative path path-io prettyprinter text transformers
+         base base16-bytestring bytestring containers cryptohash-sha256
+         dhall directory file-embed filepath lens-family-core lucid
+         megaparsec mmark mtl optparse-applicative path path-io
+         prettyprinter text transformers
        ];
        executableHaskellDepends = [ base dhall ];
        testHaskellDepends = [
          base bytestring containers dhall directory doctest filepath foldl
-         hashable path path-io pretty tasty tasty-hunit tasty-silver text
+         lucid path path-io pretty tasty tasty-hunit tasty-silver text
          turtle
        ];
        description = "Generate HTML docs from a dhall package";
@@ -75790,7 +76124,7 @@ self: {
        maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
-  "dhall-json_1_7_8" = callPackage
+  "dhall-json_1_7_9" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, aeson-yaml, ansi-terminal
      , base, bytestring, containers, dhall, exceptions, filepath
      , lens-family-core, optparse-applicative, prettyprinter
@@ -75799,8 +76133,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-json";
-       version = "1.7.8";
-       sha256 = "0g4c71di93r6vnbhajsj5k3ivhzvn0n0aicvvc2j9nbjfhvahd3h";
+       version = "1.7.9";
+       sha256 = "11rl46vn6lzcm9kznpfc43c3a2cbq2si2zba3k2x4j360kvg9fgn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -75850,10 +76184,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-lsp-server";
-       version = "1.0.16";
-       sha256 = "04s4kvbjp4ai17l64syram0br3qc4fpz669ps24r8fkcbbaczckq";
-       revision = "1";
-       editedCabalFile = "1xhi855rcfm38p5wb8zk51m10m4afpxaglmhrinm4h2awawfvzpz";
+       version = "1.0.17";
+       sha256 = "0h4wji3fsvkplj78bfqi3x9p7q9ikcsmj65nfrfn4p6p6i1knhw8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -75896,14 +76228,14 @@ self: {
        maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
-  "dhall-nix_1_1_22" = callPackage
+  "dhall-nix_1_1_23" = callPackage
     ({ mkDerivation, base, containers, data-fix, dhall, hnix
      , lens-family-core, neat-interpolation, optparse-generic, text
      }:
      mkDerivation {
        pname = "dhall-nix";
-       version = "1.1.22";
-       sha256 = "1da64h52fz4imvk7hqblri27zg54r9rcs6hlyzkbnqg4yivpiclg";
+       version = "1.1.23";
+       sha256 = "17ajfkhxg4kjn6w7v3ymr6nsbqplvywkcwmfzybxqvmphh4zmfjb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -75920,23 +76252,24 @@ self: {
      }) {};
 
   "dhall-nixpkgs" = callPackage
-    ({ mkDerivation, aeson, base, data-fix, dhall, foldl, hnix
-     , lens-family-core, megaparsec, mmorph, neat-interpolation
-     , network-uri, optparse-applicative, prettyprinter, text
-     , transformers, turtle
+    ({ mkDerivation, aeson, base, base16-bytestring, base64-bytestring
+     , bytestring, data-fix, dhall, foldl, hnix, lens-family-core
+     , megaparsec, mmorph, neat-interpolation, network-uri
+     , optparse-applicative, prettyprinter, text, transformers, turtle
      }:
      mkDerivation {
        pname = "dhall-nixpkgs";
-       version = "1.0.6";
-       sha256 = "12sfxz7n86m69m1xbnrrr1ybggh70rfwmr4maflq522bhkc2hgvk";
-       revision = "2";
-       editedCabalFile = "13i04l52jb8xyhqa48r8rlr0d4p657aarfhsxm407ziph5pi60vk";
+       version = "1.0.7";
+       sha256 = "1s7md4b2jzgmf557clln9fc5lmdrd9xjs55dd97dv8q6krm8nabg";
+       revision = "1";
+       editedCabalFile = "0ld4z4d3gw9mxyhm5g2hgw4w68izjnwrcqd6j7yhwhrblhdmqrr4";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         aeson base data-fix dhall foldl hnix lens-family-core megaparsec
-         mmorph neat-interpolation network-uri optparse-applicative
-         prettyprinter text transformers turtle
+         aeson base base16-bytestring base64-bytestring bytestring data-fix
+         dhall foldl hnix lens-family-core megaparsec mmorph
+         neat-interpolation network-uri optparse-applicative prettyprinter
+         text transformers turtle
        ];
        description = "Convert Dhall projects to Nix packages";
        license = lib.licenses.bsd3;
@@ -75950,10 +76283,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-openapi";
-       version = "1.0.2";
-       sha256 = "1p678nn1gfj2xp0kmw8i5pzsv6s5bpnsmyng45adb9pnpiyxbcyj";
-       revision = "2";
-       editedCabalFile = "0gkxzfadkpz4dcmcfbyf66s2xa656lf2vw0n282qnc1rsy74ra85";
+       version = "1.0.3";
+       sha256 = "0k7yq7g77ws7wjfzd35ydsjwaq2kc1y0rhwjwb6yvkyvljmr0ykz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -76046,8 +76377,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-toml";
-       version = "1.0.0";
-       sha256 = "13pz6y0l70h3x62wkhay2jiws6s5m6dy9v7kpd2c5mqzaspfy0w2";
+       version = "1.0.1";
+       sha256 = "024cillwk8rq7jlv6vh85ifypy1ddfvszf3fzmgl1r0ca9iclmbb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -76094,7 +76425,7 @@ self: {
        maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
-  "dhall-yaml_1_2_8" = callPackage
+  "dhall-yaml_1_2_9" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring, dhall
      , dhall-json, exceptions, HsYAML, HsYAML-aeson
      , optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
@@ -76102,10 +76433,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-yaml";
-       version = "1.2.8";
-       sha256 = "1p766ybwib3f2i5h7m1hh71vc255ahvf7237bpprdapqw3ag8nak";
-       revision = "1";
-       editedCabalFile = "06jr2b5zj82zcsq7dp6d8v9rfarkpqkp6m1s61d76vlzv9kc2pp2";
+       version = "1.2.9";
+       sha256 = "0gn9jrqihimjs8i9ksgmlkh8c64km52rmsgz2y6k3ab0igkv8dw6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -76476,8 +76805,8 @@ self: {
        pname = "diagrams-core";
        version = "1.5.0";
        sha256 = "0y3smp3hiyfdirdak3j4048cgqv7a5q9p2jb6z8na2llys5mrmdn";
-       revision = "2";
-       editedCabalFile = "1wbvmarr8vaki80x19lwahsvyknw2047l1kmk3ybppg5s8mfiqpa";
+       revision = "3";
+       editedCabalFile = "16ylnccw5ddb856yn6araril0ppfmjla6prfqm0rnc6fjzmj9zcg";
        libraryHaskellDepends = [
          adjunctions base containers distributive dual-tree lens linear
          monoid-extras mtl profunctors semigroups unordered-containers
@@ -76601,10 +76930,8 @@ self: {
      }:
      mkDerivation {
        pname = "diagrams-lib";
-       version = "1.4.4";
-       sha256 = "09np7kj8si8kcb854f95a0cq392mgbxif8lnazbpfsa1k87d9vzy";
-       revision = "1";
-       editedCabalFile = "1c7kpnbvxwdcmk5znqyig3l6s986ppj168ck5v72dfbp8cjvwa8i";
+       version = "1.4.5.1";
+       sha256 = "1hkxp549i99s45qk8zmhjvz1xyyv3i0ffl8155bifkic6fd8y2gz";
        libraryHaskellDepends = [
          active adjunctions array base bytestring cereal colour containers
          data-default-class diagrams-core diagrams-solve directory
@@ -77496,8 +77823,8 @@ self: {
      }:
      mkDerivation {
        pname = "digit";
-       version = "0.10";
-       sha256 = "1qvz2gj4f2fcq8m8s4h6q5r2y3z55dhk4zxxijxha3mqfiybh4ky";
+       version = "0.11";
+       sha256 = "1ic9qvlqrdi3a8wlgrahl6mrc43sc9x1k9p7myydzai4zg1wr013";
        libraryHaskellDepends = [
          base lens parsers scientific semigroupoids semigroups
          template-haskell
@@ -78215,8 +78542,8 @@ self: {
      }:
      mkDerivation {
        pname = "discord-haskell";
-       version = "1.8.9";
-       sha256 = "0qgbiqn05bn52fsihvz385smgvbkagc435qgmlm74clqfg7flwi4";
+       version = "1.10.0";
+       sha256 = "1im1yjlnk8b8fcwyhlza1iggmry5r96sdibq2whcsyxqnpg24fr0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -78411,6 +78738,8 @@ self: {
        pname = "discrimination";
        version = "0.4.1";
        sha256 = "0p0hryrp15bc8cjfr2hypkg35fy1m30hr19s9p6rj91cxxgjbfq2";
+       revision = "1";
+       editedCabalFile = "1iz2vfizkid17m1k9j1a1rdzr44ir2fgw0nnhg1drjlyirc09p9f";
        libraryHaskellDepends = [
          array base containers contravariant deepseq ghc-prim hashable
          integer-gmp primitive promises transformers
@@ -79498,8 +79827,8 @@ self: {
        pname = "dlist-nonempty";
        version = "0.1.1";
        sha256 = "0csbspdy43pzvasb5mhs5pz2f49ws78pi253cx7pp84wjx6ads20";
-       revision = "11";
-       editedCabalFile = "1mnf6qa3773v2j2k2gp51qb0pbd9lf1hw9cx2sqrpcwjxfb3lfqg";
+       revision = "12";
+       editedCabalFile = "0b8lkcpzxjdwm13v7y35j2x3sy97rwzyjwdwzag1va4lvfwa1287";
        libraryHaskellDepends = [
          base base-compat deepseq dlist semigroupoids
        ];
@@ -79998,8 +80327,8 @@ self: {
      }:
      mkDerivation {
        pname = "docker";
-       version = "0.6.0.5";
-       sha256 = "1y7vs9s17gwls8f223b4vkwvwflyxr7spslccr9izlf4cblj216d";
+       version = "0.6.0.6";
+       sha256 = "15qai77a5wqb94lij4l24w516q7d5h6wn6h2g6lmgghwh3hafq8y";
        libraryHaskellDepends = [
          aeson base blaze-builder bytestring conduit conduit-combinators
          conduit-extra containers data-default-class directory exceptions
@@ -80302,6 +80631,39 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "doctest_0_20_0" = callPackage
+    ({ mkDerivation, base, base-compat, code-page, deepseq, directory
+     , exceptions, filepath, ghc, ghc-paths, hspec, hspec-core
+     , hspec-discover, HUnit, mockery, process, QuickCheck, setenv
+     , silently, stringbuilder, syb, transformers
+     }:
+     mkDerivation {
+       pname = "doctest";
+       version = "0.20.0";
+       sha256 = "0sk50b8zxq4hvc8qphlmfha1lsv3xha7q7ka081jgswf1qpg34y4";
+       revision = "5";
+       editedCabalFile = "0d7xgi71zdfbg3an6v2ss4lj6lvlmvq36hy788nd94ja2bgfsmpx";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base base-compat code-page deepseq directory exceptions filepath
+         ghc ghc-paths process syb transformers
+       ];
+       executableHaskellDepends = [
+         base base-compat code-page deepseq directory exceptions filepath
+         ghc ghc-paths process syb transformers
+       ];
+       testHaskellDepends = [
+         base base-compat code-page deepseq directory exceptions filepath
+         ghc ghc-paths hspec hspec-core HUnit mockery process QuickCheck
+         setenv silently stringbuilder syb transformers
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Test interactive Haskell examples";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "doctest-discover" = callPackage
     ({ mkDerivation, aeson, base, bytestring, directory, doctest
      , filepath
@@ -80354,10 +80716,8 @@ self: {
     ({ mkDerivation, base, doctest }:
      mkDerivation {
        pname = "doctest-driver-gen";
-       version = "0.3.0.4";
-       sha256 = "1fbqi4s4ajxhyv4a7nbh3v98limla0z8rfqlh02pwc1a90qpwy1a";
-       revision = "1";
-       editedCabalFile = "19xaynf2zzrvls6l57jzzxp3862d0d2q43amsgsch5ri8479m4dn";
+       version = "0.3.0.5";
+       sha256 = "08zv5c1cfklknpbw974sw4rb6jiijd3q28cpjw1cncc06n2jy85b";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base ];
@@ -80375,6 +80735,8 @@ self: {
        pname = "doctest-exitcode-stdio";
        version = "0.0";
        sha256 = "1g3c7yrqq2mwqbmvs8vkx1a3cf0p0x74b7fnn344dsk7bsfpgv0x";
+       revision = "1";
+       editedCabalFile = "1065s8bch6zhl6mc8nhvfpwd1irmjd04z7xgycbpihc14x4ijim3";
        libraryHaskellDepends = [
          base doctest-lib QuickCheck semigroups transformers
        ];
@@ -80390,6 +80752,8 @@ self: {
        pname = "doctest-extract";
        version = "0.1";
        sha256 = "1ncrq67d6zcqw5al5m2g7q6ys8rxhsq8rrzbj1dlsyl4q63vyrms";
+       revision = "1";
+       editedCabalFile = "11b43xx6bmn7zbw9hxjcfcbmhjsm1jbnh08qnfxiw9i02j12mnlj";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -80411,6 +80775,35 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "doctest-parallel" = callPackage
+    ({ mkDerivation, base, base-compat, Cabal, code-page, containers
+     , deepseq, directory, exceptions, filepath, ghc, ghc-paths, Glob
+     , hspec, hspec-core, hspec-discover, HUnit, mockery, pretty
+     , process, QuickCheck, setenv, silently, stringbuilder, syb
+     , template-haskell, transformers, unordered-containers
+     }:
+     mkDerivation {
+       pname = "doctest-parallel";
+       version = "0.2";
+       sha256 = "1p8mz36c9v0cql7hrw8f9m08x9ks31vwqv283dpr1h0s9m8pib6c";
+       libraryHaskellDepends = [
+         base base-compat Cabal code-page containers deepseq directory
+         exceptions filepath ghc ghc-paths Glob pretty process syb
+         template-haskell transformers unordered-containers
+       ];
+       testHaskellDepends = [
+         base base-compat code-page deepseq directory exceptions filepath
+         ghc ghc-paths hspec hspec-core hspec-discover HUnit mockery process
+         QuickCheck setenv silently stringbuilder syb transformers
+       ];
+       testToolDepends = [ hspec-discover ];
+       doHaddock = false;
+       description = "Test interactive Haskell examples";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "doctest-prop" = callPackage
     ({ mkDerivation, base, doctest, HUnit, QuickCheck }:
      mkDerivation {
@@ -80602,8 +80995,8 @@ self: {
      }:
      mkDerivation {
        pname = "dom-lt";
-       version = "0.2.2.1";
-       sha256 = "1gaavi6fqzsl5di889880m110a1hrlylbjckm6bg24sv8nn96glp";
+       version = "0.2.3";
+       sha256 = "1h73159h61f1wv6kans0nqspfq46wiz77isnjg8vd9m127hqn69x";
        libraryHaskellDepends = [ array base containers ];
        testHaskellDepends = [ base containers HUnit ];
        benchmarkHaskellDepends = [ base containers criterion deepseq ];
@@ -80905,6 +81298,36 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "dotenv_0_9_0_0" = callPackage
+    ({ mkDerivation, base, base-compat, containers, directory
+     , exceptions, hspec, hspec-discover, hspec-megaparsec, megaparsec
+     , optparse-applicative, process, text, transformers
+     }:
+     mkDerivation {
+       pname = "dotenv";
+       version = "0.9.0.0";
+       sha256 = "12w7n6yn8mk5l3b2a1ppzg3s4fvs24gx2plas8amhxrqdpx4gdk7";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base base-compat containers directory exceptions megaparsec process
+         text transformers
+       ];
+       executableHaskellDepends = [
+         base base-compat megaparsec optparse-applicative process text
+         transformers
+       ];
+       testHaskellDepends = [
+         base base-compat containers directory exceptions hspec
+         hspec-megaparsec megaparsec process text transformers
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Loads environment variables from dotenv files";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "dotfs" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, filepath
      , haskell-src, HFuse, HUnit, parsec, process, QuickCheck
@@ -81041,6 +81464,49 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "dovetail" = callPackage
+    ({ mkDerivation, ansi-terminal, base, containers, directory
+     , exceptions, filepath, generic-arbitrary, haskeline, hspec
+     , hspec-golden, mtl, purescript, purescript-cst, QuickCheck
+     , quickcheck-instances, semialign, text, these, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "dovetail";
+       version = "0.1.1.0";
+       sha256 = "1dldn8qac1w6bdm9jkl0ks6lb99p2477ndjafg5z567h9d67li39";
+       libraryHaskellDepends = [
+         ansi-terminal base containers exceptions haskeline mtl purescript
+         purescript-cst semialign text these transformers
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base directory filepath generic-arbitrary hspec hspec-golden
+         purescript QuickCheck quickcheck-instances text vector
+       ];
+       description = "A PureScript interpreter with a Haskell FFI";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "dovetail-aeson" = callPackage
+    ({ mkDerivation, aeson, base, dovetail, purescript, purescript-cst
+     , reflection, text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "dovetail-aeson";
+       version = "0.1.0.0";
+       sha256 = "1z2az5mbnxm6chkbacl8ky0vhmb4fsjf5ikka3z8m0impjbqxpy7";
+       libraryHaskellDepends = [
+         aeson base dovetail purescript purescript-cst reflection text
+         unordered-containers vector
+       ];
+       description = "Use Aeson from your Dovetail programs";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "dovin" = callPackage
     ({ mkDerivation, base, Cabal, containers, directory, filepath
      , hashable, lens, mtl, parsec, split, tasty, tasty-discover
@@ -81087,6 +81553,24 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "downhill" = callPackage
+    ({ mkDerivation, base, containers, reflection, tasty, tasty-hunit
+     , template-haskell, th-abstraction, transformers
+     , unordered-containers, vector-space
+     }:
+     mkDerivation {
+       pname = "downhill";
+       version = "0.1.0.0";
+       sha256 = "1q99aviwssd4k5kfmp9ik3lxsdqjjfk3d2mdbd0p5zrw36kcamhl";
+       libraryHaskellDepends = [
+         base containers reflection template-haskell th-abstraction
+         transformers unordered-containers vector-space
+       ];
+       testHaskellDepends = [ base tasty tasty-hunit vector-space ];
+       description = "Reverse mode automatic differentiation";
+       license = lib.licenses.mit;
+     }) {};
+
   "download" = callPackage
     ({ mkDerivation, base, bytestring, feed, hspec, tagsoup, xml }:
      mkDerivation {
@@ -81573,8 +82057,8 @@ self: {
     ({ mkDerivation, base, containers, ghc }:
      mkDerivation {
        pname = "driving-classes-plugin";
-       version = "0.1.2.0";
-       sha256 = "013c4qs919yp8nm2ammzr55rqzcai4ybsszilg9g48bd913hzrzl";
+       version = "0.1.3.0";
+       sha256 = "126bih4i3gyjdwnmvivz0kzn6viw1nlap9zz076xljgkf8qw3dwn";
        libraryHaskellDepends = [ base containers ghc ];
        testHaskellDepends = [ base ];
        description = "Deriving without spelling out \"deriving\"";
@@ -82019,8 +82503,8 @@ self: {
        pname = "dual-tree";
        version = "0.2.3.0";
        sha256 = "0qyn7kb42wvlcvb1wbf1qx3isc2y6k3hzp5iq6ab0r0llw9g6qlg";
-       revision = "1";
-       editedCabalFile = "1babd7ybsgk73x57yl35q0n1i7mbbqmv4am710kq1hzg3in4g9dv";
+       revision = "2";
+       editedCabalFile = "0cv2pkq85d7wgk6jjcq8vpv3577iyd1x0sg5ivw9ixyf5v5qwjxy";
        libraryHaskellDepends = [
          base monoid-extras newtype-generics semigroups
        ];
@@ -82143,6 +82627,8 @@ self: {
        pname = "dumb-cas";
        version = "0.2.1.0";
        sha256 = "1fxamg2npi1arhsjyxgbzcn50m3y9kn9ganc79gbn8xcx252rp63";
+       revision = "1";
+       editedCabalFile = "0fxsf82kqnfy6nn8805x6dksj6j5z0dyajb4nh47r3sq067jb1n0";
        libraryHaskellDepends = [
          base containers decimal-literals hashable template-haskell
          unordered-containers
@@ -82179,8 +82665,8 @@ self: {
      }:
      mkDerivation {
        pname = "dump-core";
-       version = "0.1.3.2";
-       sha256 = "04p3x8lvf4if82xjin9cxhc3r478lp3zmr3xn33xqp37lmcqvr5k";
+       version = "0.1.4";
+       sha256 = "0fl6lmwrzjxwirnpwmjiqbc5fj2s4fnp0dv8s3bcdslxwxkmi9l4";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring containers directory filepath ghc monadLib
@@ -82558,6 +83044,8 @@ self: {
        pname = "dyepack";
        version = "0.1.0.0";
        sha256 = "02kdcfnagp0aadfjhn17b47pz9bknl0yisyqpnf79v7g27szb74a";
+       revision = "1";
+       editedCabalFile = "0xsvb329fr2a2gqaxnk9kybfw4yn7af3hzsbp8jkcadaz8fsp4vq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base generics-sop ];
@@ -82749,8 +83237,8 @@ self: {
        pname = "dynamic-plot";
        version = "0.4.1.0";
        sha256 = "1nly6ra0kd72q42hiaqism94vmyg5hp4ppyd024iiq9pcbgpq7r6";
-       revision = "1";
-       editedCabalFile = "0chaa06bzf3jd55c9s6wcnl7i8j2wl55rr9g50aia4gsc47azgxr";
+       revision = "2";
+       editedCabalFile = "1nszn52hpimz5hnkd6q0gsv6cv8rl3g1h939bhr41x2fr5bjzimi";
        libraryHaskellDepends = [
          base colour colour-space constrained-categories containers
          data-default deepseq diagrams-cairo diagrams-core diagrams-gtk
@@ -83487,8 +83975,8 @@ self: {
        pname = "ede";
        version = "0.3.2.0";
        sha256 = "1y78l8b6wnl621nlfm3jwf9qskfnyd4ian1sxjsmk2jw22z1yp4d";
-       revision = "1";
-       editedCabalFile = "0zgz0d3qj8slkbsg4r7jdhnrr5zlq506hviq6kw20d78mafh16c0";
+       revision = "2";
+       editedCabalFile = "1nlyj74rhvvn8vgfwn4pzdlxjsi876fmd7pp46hndbyckwm2pika";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -83970,30 +84458,29 @@ self: {
      }) {};
 
   "egison" = callPackage
-    ({ mkDerivation, array, base, containers, criterion, directory
-     , exceptions, filepath, ghc, ghc-paths, Glob, hashable, haskeline
-     , HUnit, megaparsec, mtl, optparse-applicative, parsec
-     , parser-combinators, prettyprinter, process, random, regex-tdfa
-     , split, sweet-egison, test-framework, test-framework-hunit, text
-     , transformers, unicode-show, unordered-containers, vector
+    ({ mkDerivation, base, containers, criterion, directory, exceptions
+     , filepath, Glob, hashable, haskeline, HUnit, megaparsec, mtl
+     , optparse-applicative, parsec, parser-combinators, prettyprinter
+     , process, random, regex-tdfa, sweet-egison, test-framework
+     , test-framework-hunit, text, transformers, unicode-show
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "egison";
-       version = "4.1.2";
-       sha256 = "1h388s7pagjipzgxyy1l3w3f03vl17bg9vl0afidjdmqm294mp8m";
+       version = "4.1.3";
+       sha256 = "1azi22pbrc3v14zbrkdblx3sdc5qyn7agf0gvkaxxk98587kidrq";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         array base containers directory ghc ghc-paths hashable haskeline
-         megaparsec mtl optparse-applicative parsec parser-combinators
-         prettyprinter process random regex-tdfa split sweet-egison text
-         transformers unicode-show unordered-containers vector
+         base containers directory hashable haskeline megaparsec mtl
+         optparse-applicative parsec parser-combinators prettyprinter
+         process random regex-tdfa sweet-egison text transformers
+         unicode-show unordered-containers vector
        ];
        executableHaskellDepends = [
-         array base containers directory exceptions filepath ghc ghc-paths
-         haskeline mtl optparse-applicative parsec prettyprinter process
-         regex-tdfa split text transformers unordered-containers vector
+         base directory exceptions filepath haskeline mtl
+         optparse-applicative prettyprinter regex-tdfa text
        ];
        testHaskellDepends = [
          base filepath Glob HUnit mtl process test-framework
@@ -84086,17 +84573,17 @@ self: {
      }) {};
 
   "egison-tutorial" = callPackage
-    ({ mkDerivation, base, directory, egison, filepath, haskeline, mtl
-     , regex-posix, transformers
+    ({ mkDerivation, base, directory, egison, exceptions, filepath
+     , haskeline, mtl, regex-posix, transformers
      }:
      mkDerivation {
        pname = "egison-tutorial";
-       version = "4.0.1";
-       sha256 = "1g5vhf04b7r2g5kx0f5z9cci0nv55qbnjkvm81cg5yjh41bhffwn";
+       version = "4.1.3";
+       sha256 = "0qlkymw5vhclbgfcdpjh582nl1knrxb3j2xj6k4qp2yz6ljhjgrx";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base directory egison filepath haskeline mtl regex-posix
+         base directory egison exceptions filepath haskeline mtl regex-posix
          transformers
        ];
        description = "A tutorial program for the Egison programming language";
@@ -85556,30 +86043,29 @@ self: {
     ({ mkDerivation, aeson, async, base, blaze-html, blaze-markup
      , commonmark, commonmark-extensions, commonmark-pandoc, containers
      , data-default, directory, filepath, filepattern, fsnotify
-     , http-types, lvar, monad-logger, monad-logger-extras
-     , neat-interpolation, optparse-applicative, pandoc-types
-     , profunctors, relude, safe-exceptions, shower, stm, tagged, text
-     , time, unliftio, wai, wai-middleware-static, wai-websockets, warp
-     , websockets
+     , http-types, lvar, megaparsec, monad-logger, monad-logger-extras
+     , neat-interpolation, optparse-applicative, pandoc-types, parsec
+     , parser-combinators, relude, safe-exceptions, stm, text, time
+     , unicode-transforms, unionmount, unliftio, uri-encode, wai
+     , wai-middleware-static, wai-websockets, warp, websockets, yaml
      }:
      mkDerivation {
        pname = "ema";
-       version = "0.1.0.0";
-       sha256 = "0b7drwqcdap52slnw59vx3mhpabcl72p7rinnfkzsh74jfx21vz0";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.2.0.0";
+       sha256 = "1pjgpy4rvpwvrdszppb51nys281aglbpjgx4yci9hklp0kbkkh9i";
        libraryHaskellDepends = [
          aeson async base blaze-html blaze-markup commonmark
          commonmark-extensions commonmark-pandoc containers data-default
-         directory filepath filepattern fsnotify http-types lvar
+         directory filepath filepattern fsnotify http-types lvar megaparsec
          monad-logger monad-logger-extras neat-interpolation
-         optparse-applicative pandoc-types profunctors relude
-         safe-exceptions shower stm tagged text time unliftio wai
-         wai-middleware-static wai-websockets warp websockets
+         optparse-applicative pandoc-types parsec parser-combinators relude
+         safe-exceptions stm text time unicode-transforms unionmount
+         unliftio uri-encode wai wai-middleware-static wai-websockets warp
+         websockets yaml
        ];
-       executableHaskellDepends = [ base ];
        description = "Static site generator library with hot reload";
        license = lib.licenses.agpl3Only;
+       maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
   "emacs-keys" = callPackage
@@ -86516,6 +87002,8 @@ self: {
        pname = "enummapset-th";
        version = "0.6.2";
        sha256 = "010cldc2jhhizllqj810ani5rffakfzmxm1rj69v5q489fnngswl";
+       revision = "1";
+       editedCabalFile = "17cz6jj2d2kp3bjvi27xxap19mkxzanr60blvlxqr75hlz07wgy9";
        libraryHaskellDepends = [
          base containers deepseq template-haskell
        ];
@@ -87170,8 +87658,8 @@ self: {
     ({ mkDerivation, base, doctest, text }:
      mkDerivation {
        pname = "error";
-       version = "0.2.0.0";
-       sha256 = "0mxg2ky9j46xd378a8z2jl24pn9jvqjay22n3l9yfm7zwrmqrz35";
+       version = "0.2.1.2";
+       sha256 = "082g4ryz9inc7ghfiwhba501mjq0il9i7slg7mnarnscipwldyqf";
        libraryHaskellDepends = [ base text ];
        testHaskellDepends = [ base doctest ];
        description = "The canonical error type";
@@ -87429,18 +87917,19 @@ self: {
   "ersatz" = callPackage
     ({ mkDerivation, array, attoparsec, base, bytestring, containers
      , data-default, fail, lens, mtl, parsec, process, semigroups
-     , temporary, transformers, unordered-containers
+     , streams, temporary, transformers, unordered-containers
      }:
      mkDerivation {
        pname = "ersatz";
-       version = "0.4.9";
-       sha256 = "1pnqz7zvkfw70pjhhs5lm965iydrj8cgbj685fh50fpm0wapnmfd";
+       version = "0.4.10";
+       sha256 = "1pklw9zhpxkm5yhkdlw78c2324ffk8n5pqkvicxh0x0ha852fs7y";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array attoparsec base bytestring containers data-default lens mtl
-         process semigroups temporary transformers unordered-containers
+         process semigroups streams temporary transformers
+         unordered-containers
        ];
        executableHaskellDepends = [
          array base containers fail lens mtl parsec semigroups
@@ -88667,10 +89156,10 @@ self: {
      }:
      mkDerivation {
        pname = "eventlog2html";
-       version = "0.9.1";
-       sha256 = "17fp0q44lk3nkqzpilxlvzbr0b25girbh7j18yl6blcp5mcmq2cd";
-       revision = "1";
-       editedCabalFile = "17p7h7xii3p0k8ji11jw7dcprmcrwhw0lfpyq2f557s87cpwlinf";
+       version = "0.9.2";
+       sha256 = "0mr916gppp8pgyqdx89zhmcil7hkm7462h6vsq1y4n1qf5hx30jv";
+       revision = "2";
+       editedCabalFile = "1n6pjzjrzg6x6yasgzdm451xzil4b39kg3l3qln3cf9hmnhrnygp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -89014,8 +89503,8 @@ self: {
        pname = "exact-pi";
        version = "0.5.0.1";
        sha256 = "0q0qrkmpff835m3zz3w60i1y4sqicnzqb6vqmk13cjh4ign5d0ax";
-       revision = "1";
-       editedCabalFile = "1l55d7x61i2d5rlh7sh2nhn0af9cyp92gzdmqqnnjzg55d347qsm";
+       revision = "2";
+       editedCabalFile = "11g9w0rcndi8c28hykzipcfcxffxgdys21di1fdz4n5p05f3ldqa";
        libraryHaskellDepends = [ base numtype-dk ];
        testHaskellDepends = [
          base numtype-dk QuickCheck tasty tasty-hunit tasty-quickcheck
@@ -89031,8 +89520,8 @@ self: {
      }:
      mkDerivation {
        pname = "exact-real";
-       version = "0.12.5";
-       sha256 = "1xjj17h8a4sbja7f29xvasgzxzn58i2276ysqqkw8d5dsd5913lb";
+       version = "0.12.5.1";
+       sha256 = "0zm2rb2zhpf7ipiq4k06ix66ps026y0v83qqh83x5yfqv9hz22c7";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ base integer-gmp random ];
        testHaskellDepends = [
@@ -89154,16 +89643,16 @@ self: {
      }) {};
 
   "exception-transformers" = callPackage
-    ({ mkDerivation, base, HUnit, test-framework, test-framework-hunit
-     , transformers, transformers-compat
+    ({ mkDerivation, base, fail, HUnit, test-framework
+     , test-framework-hunit, transformers, transformers-compat
      }:
      mkDerivation {
        pname = "exception-transformers";
-       version = "0.4.0.10";
-       sha256 = "11ghvxm32q3kzccbngz4068j2rrrhs03amlaq5i5r1vankrbxg0n";
-       revision = "1";
-       editedCabalFile = "03f69b8i1gavjk94zj6krkzqk0360sngq0hzi291pmhghscsqcn0";
-       libraryHaskellDepends = [ base transformers transformers-compat ];
+       version = "0.4.0.11";
+       sha256 = "1zmd2s40m86c9mhv32l5bvvf5r52cgpxvb4v5phyc3pjwlr7m8g5";
+       libraryHaskellDepends = [
+         base fail transformers transformers-compat
+       ];
        testHaskellDepends = [
          base HUnit test-framework test-framework-hunit transformers
          transformers-compat
@@ -89222,8 +89711,8 @@ self: {
        pname = "exceptions";
        version = "0.10.4";
        sha256 = "1kw4pmx7j7zwbdwm0dyn9rcs6kp4byfxy48861yxdz6gam1zn2sd";
-       revision = "2";
-       editedCabalFile = "1154g0dqil2xf4wc1v6gndzhnbf5saf2dzf77c6lcjxssx360m6j";
+       revision = "3";
+       editedCabalFile = "0b9bml5j46zz62ik2827ndsd5293dh8630086x1mngb80gnrml3y";
        libraryHaskellDepends = [
          base mtl stm template-haskell transformers
        ];
@@ -89452,8 +89941,8 @@ self: {
        pname = "exiftool";
        version = "0.2.0.0";
        sha256 = "138d25fxqz3vg62mfgmva52flyzjxd8dxr0kc7ayfil1zk3bp4jg";
-       revision = "1";
-       editedCabalFile = "0sgi3w8x1zlch0v3zpxrjhisxd1s6wj1qznjlm0gz2r5d1pzc03z";
+       revision = "2";
+       editedCabalFile = "1f1qa9qlmi3i7iif6ddazgqpgds64fr467c0rs53060rcbyjr9gd";
        libraryHaskellDepends = [
          aeson base base64 bytestring hashable process scientific
          string-conversions temporary text unordered-containers vector
@@ -89958,8 +90447,8 @@ self: {
      }:
      mkDerivation {
        pname = "explainable-predicates";
-       version = "0.1.2.0";
-       sha256 = "02gcbg3fas0kk13hm8g79dj62nxs1gdxsf58kx35vm58c5i8jay2";
+       version = "0.1.2.1";
+       sha256 = "0hx11fp430lf60cwwas3x5jv5yg966fh9qrgxz2q65md6lx3yaga";
        libraryHaskellDepends = [
          array base HUnit mono-traversable QuickCheck regex-tdfa syb
          template-haskell
@@ -90079,14 +90568,22 @@ self: {
      }) {};
 
   "exploring-interpreters" = callPackage
-    ({ mkDerivation, base, containers, fgl, mtl, transformers }:
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, containers
+     , fgl, http-types, mtl, network, readline, scientific, text
+     , transformers
+     }:
      mkDerivation {
        pname = "exploring-interpreters";
-       version = "0.4.0.0";
-       sha256 = "07q4cjk2sqp471w0rgygf1x2c91vyajh93s8xzi3j09wdb23v9l3";
-       libraryHaskellDepends = [ base containers fgl mtl transformers ];
+       version = "1.0.0.0";
+       sha256 = "11anvk0m8ihl2pgf3wmlw97hc886wg2rngvw86zwyd5hzg0chi66";
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring containers fgl http-types mtl
+         network readline scientific text transformers
+       ];
        description = "A generic exploring interpreter for exploratory programming";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "exposed-containers" = callPackage
@@ -91018,8 +91515,6 @@ self: {
        ];
        description = "Library for producing fake data";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fakedata_1_0_1" = callPackage
@@ -91056,7 +91551,6 @@ self: {
        description = "Library for producing fake data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "fakedata-parser" = callPackage
@@ -91084,7 +91578,6 @@ self: {
        ];
        description = "Fake a -> Gen a";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "fakefs" = callPackage
@@ -91155,7 +91648,7 @@ self: {
        broken = true;
      }) {};
 
-  "faktory_1_1_2_0" = callPackage
+  "faktory_1_1_2_1" = callPackage
     ({ mkDerivation, aeson, aeson-casing, aeson-qq, async, base
      , bytestring, connection, cryptonite, errors, hspec, markdown-unlit
      , megaparsec, memory, mtl, network, random, safe-exceptions
@@ -91163,8 +91656,8 @@ self: {
      }:
      mkDerivation {
        pname = "faktory";
-       version = "1.1.2.0";
-       sha256 = "0rsypmqy6gkpsjgzzc20wy5jjw13bb4j2zsxwn9zchyihfpak36a";
+       version = "1.1.2.1";
+       sha256 = "0hdwp12qn6m7xd2d7wsj3092jgvx2h6gf4b0gdswy1mkf0c2jql9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -91280,8 +91773,8 @@ self: {
      }:
      mkDerivation {
        pname = "fast-arithmetic";
-       version = "0.6.5.1";
-       sha256 = "0yijbcp5918hnl32xvvpks652byad9zph901ab5bml3iy3a0n2pp";
+       version = "0.6.6.0";
+       sha256 = "0icr6aqnavxjnfpgmvvydx4nm0zxapl82n0kd3iaj1sfifgm05jh";
        libraryHaskellDepends = [ arithmoi base combinat hgmp ];
        testHaskellDepends = [ arithmoi base combinat hspec QuickCheck ];
        benchmarkHaskellDepends = [
@@ -91292,6 +91785,29 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "fast-bech32" = callPackage
+    ({ mkDerivation, base, base16, bech32, bytestring, criterion, hspec
+     , hspec-discover, QuickCheck, random-bytestring, relude, text
+     }:
+     mkDerivation {
+       pname = "fast-bech32";
+       version = "1.0.0";
+       sha256 = "1kvf9mk0dgrnm3wrb6pvgrjb3z35wk4bzc9kdilpiv3z4jvkacy9";
+       revision = "1";
+       editedCabalFile = "106qlfgkvsmz025f4k5ql10df9b20yraid3za93fl8c1bl3sx4ix";
+       libraryHaskellDepends = [ base bytestring relude text ];
+       testHaskellDepends = [
+         base base16 bech32 bytestring hspec QuickCheck text
+       ];
+       testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [
+         base bech32 bytestring criterion random-bytestring
+       ];
+       description = "Fast implementation of the Bech32 encoding format";
+       license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "fast-builder" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, criterion
      , deepseq, ghc-prim, process, QuickCheck, scientific, stm
@@ -91384,6 +91900,27 @@ self: {
        maintainers = with lib.maintainers; [ sternenseemann ];
      }) {};
 
+  "fast-logger_3_1_0" = callPackage
+    ({ mkDerivation, array, auto-update, base, bytestring, directory
+     , easy-file, filepath, hspec, hspec-discover, text, unix-compat
+     , unix-time
+     }:
+     mkDerivation {
+       pname = "fast-logger";
+       version = "3.1.0";
+       sha256 = "1qry775yd962zcx16k1syhx001hlkk15v6m6l3yylibhqh9b753y";
+       libraryHaskellDepends = [
+         array auto-update base bytestring directory easy-file filepath text
+         unix-compat unix-time
+       ];
+       testHaskellDepends = [ base bytestring directory hspec ];
+       testToolDepends = [ hspec-discover ];
+       description = "A fast logging system";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ sternenseemann ];
+     }) {};
+
   "fast-math" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -92094,6 +92631,8 @@ self: {
        pname = "fclabels";
        version = "2.0.5.1";
        sha256 = "0g4ca5pm2bafsnpari7wqhy79i5qs8njb3kdknk0xsrazdsl174k";
+       revision = "1";
+       editedCabalFile = "03df1mvfsnm4zbppvig7y49y935qxvkz4b5y24b17hsdj4l1nnyk";
        libraryHaskellDepends = [
          base base-orphans mtl template-haskell transformers
        ];
@@ -92359,8 +92898,8 @@ self: {
        pname = "feed";
        version = "1.3.2.0";
        sha256 = "0kv3vx3njqlhwvkmf12m1gmwl8jj97kfa60da2362vwdavhcf4dk";
-       revision = "2";
-       editedCabalFile = "12kl1bsgv6jdbvm1dblxjkvc2n8p83wgcpalp8vyf414lhxrjnpx";
+       revision = "3";
+       editedCabalFile = "029bip9jrmygvsdrdxn5gyb899kny41a98xjvy65gapd8ir1fd43";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base base-compat bytestring old-locale old-time safe text time
@@ -93476,14 +94015,12 @@ self: {
        broken = true;
      }) {};
 
-  "filepath_1_4_2_1" = callPackage
+  "filepath_1_4_2_2" = callPackage
     ({ mkDerivation, base, QuickCheck }:
      mkDerivation {
        pname = "filepath";
-       version = "1.4.2.1";
-       sha256 = "04jlcaaab4fvlkgpss2mfmr5ixnp1k8f8051nqf8avfg0qan6hqb";
-       revision = "2";
-       editedCabalFile = "0jpmcdm852wr18kliyp0a69iij3v9rp6wx92gkkk2nc9vns3mwdg";
+       version = "1.4.2.2";
+       sha256 = "0rr6jlzga2siwdizr1kp6s77dq3f3hsk6f57a4k723yvvkj4pmmx";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base QuickCheck ];
        description = "Library for manipulating FilePaths in a cross platform way";
@@ -93497,13 +94034,29 @@ self: {
      }:
      mkDerivation {
        pname = "filepath-bytestring";
-       version = "1.4.2.1.8";
-       sha256 = "0qrrvbjpjsk75ghqrdqzwqg7wjgm3rr9kk7p04ax98ilv90pm0ip";
+       version = "1.4.2.1.9";
+       sha256 = "1djbx4mxkzmbi6l44r4ag482r71hwd5s22fj2myz6c128lfrvlk7";
+       libraryHaskellDepends = [ base bytestring unix ];
+       testHaskellDepends = [ base bytestring filepath QuickCheck ];
+       benchmarkHaskellDepends = [ base criterion filepath ];
+       description = "Library for manipulating RawFilePaths in a cross platform way";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "filepath-bytestring_1_4_2_1_10" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, filepath, QuickCheck
+     , unix
+     }:
+     mkDerivation {
+       pname = "filepath-bytestring";
+       version = "1.4.2.1.10";
+       sha256 = "0nwfyld4ajikiinppkc0a92bbjnr1bcnpb6llg6k7av61xrv72ar";
        libraryHaskellDepends = [ base bytestring unix ];
        testHaskellDepends = [ base bytestring filepath QuickCheck ];
        benchmarkHaskellDepends = [ base criterion filepath ];
        description = "Library for manipulating RawFilePaths in a cross platform way";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "filepath-crypto" = callPackage
@@ -93539,20 +94092,20 @@ self: {
      }) {};
 
   "filepather" = callPackage
-    ({ mkDerivation, base, comonad, comonad-transformers, data-lens
-     , directory, filepath, mtl, transformers
+    ({ mkDerivation, base, bytestring, contravariant, directory
+     , filepath, lens, mmorph, mtl, semigroupoids, semigroups
+     , transformers
      }:
      mkDerivation {
        pname = "filepather";
-       version = "0.3.0";
-       sha256 = "1gqnanmnhrpdw5iryf757qwj7j9izyzx1j4y74ydivxafz8w469v";
+       version = "0.4.0";
+       sha256 = "0b103xaxs09lr720md8rrn5gc581ihja6v1jv8gcp8yfnqrn4m1p";
        libraryHaskellDepends = [
-         base comonad comonad-transformers data-lens directory filepath mtl
-         transformers
+         base bytestring contravariant directory filepath lens mmorph mtl
+         semigroupoids semigroups transformers
        ];
        description = "Functions on System.FilePath";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "filepattern" = callPackage
@@ -94244,6 +94797,8 @@ self: {
        pname = "first-class-families";
        version = "0.8.0.1";
        sha256 = "0wnsq69f2br9h9hnf8sx41pchwjag86hb41ivjl7wx81psyqy72a";
+       revision = "1";
+       editedCabalFile = "1n6hpfc65lwmiwdg2gwjngvy146sw43r6j9q06g4vv4p69ci5r4b";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "First-class type families";
@@ -94456,6 +95011,8 @@ self: {
        pname = "fix-whitespace";
        version = "0.0.7";
        sha256 = "1nx56dfgg0i75f007y0r5w0955y3x78drjkvdx278llalyfpc5bg";
+       revision = "1";
+       editedCabalFile = "17n8sdfcnyjm8ykkpw17apb9ah94r77azz9rzlwpfdps5w81s6gg";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -94594,14 +95151,27 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "fixed-vector_1_2_1_0" = callPackage
+    ({ mkDerivation, base, deepseq, doctest, filemanip, primitive }:
+     mkDerivation {
+       pname = "fixed-vector";
+       version = "1.2.1.0";
+       sha256 = "05x3qivymg02n17wik17fmz2bqbbhj4b0w5iz7vnjz3szhwjizdf";
+       libraryHaskellDepends = [ base deepseq primitive ];
+       testHaskellDepends = [ base doctest filemanip primitive ];
+       description = "Generic vectors with statically known size";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "fixed-vector-binary" = callPackage
     ({ mkDerivation, base, binary, fixed-vector, tasty
      , tasty-quickcheck
      }:
      mkDerivation {
        pname = "fixed-vector-binary";
-       version = "1.0.0.1";
-       sha256 = "10s0mc6xdx7n6dmdgpjysbqmk79ssfw9zmaz5j0spjy7dy55zq3m";
+       version = "1.0.0.2";
+       sha256 = "1cqy2zrc8c4p6vpy5bl5cr51qi335lkwjhwwrmwam66frp5p5lrl";
        libraryHaskellDepends = [ base binary fixed-vector ];
        testHaskellDepends = [
          base binary fixed-vector tasty tasty-quickcheck
@@ -94618,8 +95188,8 @@ self: {
      }:
      mkDerivation {
        pname = "fixed-vector-cborg";
-       version = "1.0.0.1";
-       sha256 = "0m5xcy99hydcs99yph6n63517h2asg611rgg0h28blqd1f7bfch8";
+       version = "1.0.0.2";
+       sha256 = "0rpdxkf0kmhrf7l1a7wvjxigg3yybmc3pcb5vxww57676qp0pm0d";
        libraryHaskellDepends = [ base cborg fixed-vector serialise ];
        testHaskellDepends = [
          base fixed-vector serialise tasty tasty-quickcheck
@@ -94636,8 +95206,8 @@ self: {
      }:
      mkDerivation {
        pname = "fixed-vector-cereal";
-       version = "1.0.0.1";
-       sha256 = "15vg3kr7fkd6i0swm4lm76gkfdnh0ydl4nci5abj1zss8qcn9gam";
+       version = "1.0.0.2";
+       sha256 = "0ivfpnkh76dxjxcvdv1c4m9blp237g1h071217yj5gjk3vigyf54";
        libraryHaskellDepends = [ base cereal fixed-vector ];
        testHaskellDepends = [
          base cereal fixed-vector tasty tasty-quickcheck
@@ -94652,8 +95222,8 @@ self: {
     ({ mkDerivation, base, deepseq, doctest, fixed-vector, primitive }:
      mkDerivation {
        pname = "fixed-vector-hetero";
-       version = "0.6.1.0";
-       sha256 = "1simmps9qz8q4kfx8vz26ww0xy70vahrsgphvfrf9ww8fk9yg518";
+       version = "0.6.1.1";
+       sha256 = "1amqpbvzyqfg5rsl4zm99qmiffbh0a5bf9jbwlm6snwm9024qsj3";
        libraryHaskellDepends = [ base deepseq fixed-vector primitive ];
        testHaskellDepends = [ base doctest fixed-vector ];
        description = "Library for working with product types generically";
@@ -95513,8 +96083,8 @@ self: {
      }:
      mkDerivation {
        pname = "floskell";
-       version = "0.10.5";
-       sha256 = "0cm12krcri332yw0zb3k4kakpq30xlfxkyc8i67bniwm7h973hnh";
+       version = "0.10.6";
+       sha256 = "0r7djm85lc7qmcfc6fi8kdshg22zc6xhwqg09ipimdbwhlwlpv7f";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -95543,8 +96113,8 @@ self: {
     ({ mkDerivation, base, HUnit }:
      mkDerivation {
        pname = "flow";
-       version = "1.0.22";
-       sha256 = "1xsifahlma8x130d8hc1k5hzcf1kr8qg8xxh67lshbvarrg19air";
+       version = "1.0.23";
+       sha256 = "064dzij0qj0psnis7fcr3zklkkm8bncl448c9k1na1g7h46660mv";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base HUnit ];
        description = "Write more understandable Haskell";
@@ -96275,6 +96845,8 @@ self: {
        pname = "foldl";
        version = "1.4.12";
        sha256 = "0zf4yljh3s2ddxa7dhzdglmylj14kfldhkclc44g37zvjq6kcnag";
+       revision = "1";
+       editedCabalFile = "15d002khil6d4qjzm4hgfwnl502884jys9pqdm22jvdvsln84jjm";
        libraryHaskellDepends = [
          base bytestring comonad containers contravariant hashable primitive
          profunctors random semigroupoids text transformers
@@ -96408,8 +96980,8 @@ self: {
      }:
      mkDerivation {
        pname = "folds";
-       version = "0.7.6";
-       sha256 = "06sy3arl37k7qz6zm2rscpvzl9za165214f5bgjppj7zdv0qkc3v";
+       version = "0.7.7";
+       sha256 = "1hggk92i61f3nxcjdxvgs3b8am3jypig09s9wqwrwzaclx0mk5sh";
        configureFlags = [ "-f-test-hlint" ];
        libraryHaskellDepends = [
          adjunctions base bifunctors comonad constraints contravariant
@@ -97119,12 +97691,13 @@ self: {
   "fortran-src" = callPackage
     ({ mkDerivation, alex, array, base, binary, bytestring, containers
      , deepseq, directory, fgl, filepath, GenericPretty, happy, hspec
-     , hspec-discover, mtl, pretty, temporary, text, uniplate
+     , hspec-discover, mtl, pretty, QuickCheck, temporary, text
+     , uniplate
      }:
      mkDerivation {
        pname = "fortran-src";
-       version = "0.6.1";
-       sha256 = "1d07ih8bcij71x4b5nwd4fk12cmmigpzcf98fixgayrkcvmnckzg";
+       version = "0.7.0";
+       sha256 = "1ngh156qyaha44ghisb3h8c2lxik0i6g0a46nq2fhif70r5piqw6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -97138,10 +97711,11 @@ self: {
        ];
        testHaskellDepends = [
          array base binary bytestring containers deepseq directory fgl
-         filepath GenericPretty hspec mtl pretty temporary text uniplate
+         filepath GenericPretty hspec mtl pretty QuickCheck temporary text
+         uniplate
        ];
        testToolDepends = [ hspec-discover ];
-       description = "Parsers and analyses for Fortran standards 66, 77, 90 and 95";
+       description = "Parsers and analyses for Fortran standards 66, 77, 90, 95 and 2003 (partial)";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
        broken = true;
@@ -97200,8 +97774,8 @@ self: {
     ({ mkDerivation, ansi-terminal, base, doctest, hspec, text }:
      mkDerivation {
        pname = "fortytwo";
-       version = "1.0.5";
-       sha256 = "1jmvj3h70h31a906b8wvycqwl1spfqgdmwhzf5x84aykih5xlcfs";
+       version = "1.0.6";
+       sha256 = "1jms8a39i6vvvdcs5ichzjcglz3dhmswldczd25gnpx5ahkl1d4r";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ ansi-terminal base text ];
@@ -97367,6 +97941,8 @@ self: {
        pname = "fourmolu";
        version = "0.4.0.0";
        sha256 = "1mq0h6nsl7ssfwh6zqhyja7w212vn8msmlm5iwwimca279hzwywb";
+       revision = "1";
+       editedCabalFile = "03bwhqj547brmgk191gy3k9xayi6fqqk2f5sbz3ail1bk7b73xnq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -97389,22 +97965,20 @@ self: {
      }) {};
 
   "fp-ieee" = callPackage
-    ({ mkDerivation, base, decimal-arithmetic, doctest, gauge, hspec
-     , hspec-core, integer-gmp, integer-logarithms, QuickCheck, random
+    ({ mkDerivation, base, doctest, hspec, hspec-core, integer-gmp
+     , integer-logarithms, QuickCheck, random, tasty-bench
      }:
      mkDerivation {
        pname = "fp-ieee";
-       version = "0.1.0.1";
-       sha256 = "11hj4ldpxcvpnyqhs02s0ryfjiql9pmn1h1caly3cfd1r9aairl9";
+       version = "0.1.0.2";
+       sha256 = "0zfrjqyi3pvfmsidq2vsfwqaah0ag6pkixlxicr43jmfyrhi4snl";
        libraryHaskellDepends = [ base integer-gmp integer-logarithms ];
        testHaskellDepends = [
-         base decimal-arithmetic doctest hspec hspec-core integer-logarithms
-         QuickCheck random
+         base doctest hspec hspec-core integer-logarithms QuickCheck random
        ];
-       benchmarkHaskellDepends = [ base gauge ];
+       benchmarkHaskellDepends = [ base tasty-bench ];
        description = "IEEE 754-2019 compliant operations";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "fpco-api" = callPackage
@@ -97681,26 +98255,27 @@ self: {
 
   "franz" = callPackage
     ({ mkDerivation, base, bytestring, cereal, concurrent-resource-map
-     , containers, cpu, deepseq, directory, fast-builder, filepath
-     , fsnotify, mtl, network, optparse-applicative, process, retry
-     , sendfile, stm, stm-delay, transformers, unboxed-ref
-     , unordered-containers, vector
+     , containers, cpu, deepseq, directory, exceptions, fast-builder
+     , filepath, fsnotify, hashable, mtl, network, optparse-applicative
+     , process, retry, sendfile, stm, stm-delay, temporary, text
+     , transformers, unboxed-ref, unordered-containers, vector
      }:
      mkDerivation {
        pname = "franz";
-       version = "0.3.0.1";
-       sha256 = "0lzi5ckz2x88yayrlq5w15wd6x05bx44210b10w0yz5vg9dfz2y0";
+       version = "0.5.1";
+       sha256 = "0y65ywk8k6by8k8wf71pfk8dsaq47sqjnw0ina09jgq66by4vgwq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring cereal concurrent-resource-map containers cpu
-         deepseq directory fast-builder filepath fsnotify mtl network
-         process retry sendfile stm stm-delay transformers unboxed-ref
-         unordered-containers vector
+         deepseq directory exceptions fast-builder filepath fsnotify
+         hashable mtl network process retry sendfile stm stm-delay temporary
+         text transformers unboxed-ref unordered-containers vector
        ];
        executableHaskellDepends = [
          base bytestring network optparse-applicative stm vector
        ];
+       testHaskellDepends = [ base fast-builder temporary ];
        description = "Append-only database";
        license = lib.licenses.bsd3;
      }) {};
@@ -97742,8 +98317,8 @@ self: {
      }:
      mkDerivation {
        pname = "freckle-app";
-       version = "1.0.2.0";
-       sha256 = "060yspa1qb0qp7yf7s71pfkq6jdd7bn9xy5kll45d8rvjazf10y6";
+       version = "1.0.2.2";
+       sha256 = "1n7fp40v8zac1b9gmq07c6d5lnbjh64ma0ykh35v87kd3jdrf9rk";
        libraryHaskellDepends = [
          aeson ansi-terminal base bytestring case-insensitive conduit
          data-default datadog doctest ekg-core errors exceptions fast-logger
@@ -97795,6 +98370,8 @@ self: {
        pname = "free";
        version = "5.1.7";
        sha256 = "121b81wxjk30nc27ivwzxjxi1dcwc30y0gy8l6wac3dxwvkx2c5j";
+       revision = "1";
+       editedCabalFile = "0x3d7jp17m65f25838ic26kvnpjfb99iw3d60ga57n8505shxywb";
        libraryHaskellDepends = [
          base comonad containers distributive exceptions indexed-traversable
          mtl profunctors semigroupoids template-haskell th-abstraction
@@ -99029,6 +99606,8 @@ self: {
        pname = "ftp-client";
        version = "0.5.1.4";
        sha256 = "0c2xn2q24imrfgsx4zxzi24ciwkrly6n47lc5k5406j5b4znn5lf";
+       revision = "2";
+       editedCabalFile = "128c6lalfyjqsrycgk0773fwww3a914qd4w62vv3hx4vpmy75gq4";
        libraryHaskellDepends = [
          attoparsec base bytestring connection containers exceptions network
          transformers
@@ -99483,12 +100062,12 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "functor-classes-compat_2" = callPackage
+  "functor-classes-compat_2_0_0_2" = callPackage
     ({ mkDerivation, base, containers }:
      mkDerivation {
        pname = "functor-classes-compat";
-       version = "2";
-       sha256 = "1icc2hnfbqphvxd9jqqyzd9dz1gmic84zvm85w0xp58v60babmq4";
+       version = "2.0.0.2";
+       sha256 = "02jamibwyr8hvf432m761v94xmwhbflrp6hd01jyv7fm95f5ki6h";
        libraryHaskellDepends = [ base containers ];
        description = "Data.Functor.Classes instances for core packages";
        license = lib.licenses.bsd3;
@@ -100062,7 +100641,7 @@ self: {
        license = lib.licenses.isc;
      }) {};
 
-  "futhark_0_20_6" = callPackage
+  "futhark_0_21_1" = callPackage
     ({ mkDerivation, aeson, alex, ansi-terminal, array, base
      , base16-bytestring, binary, blaze-html, bmp, bytestring
      , bytestring-to-vector, cmark-gfm, containers, cryptohash-md5
@@ -100077,8 +100656,8 @@ self: {
      }:
      mkDerivation {
        pname = "futhark";
-       version = "0.20.6";
-       sha256 = "1ysbxv597v1m1n655f5d8fvcx4mmxgip2858q81jv4lw9m3xg89l";
+       version = "0.21.1";
+       sha256 = "0ba87d670i2hwa3hma46yx149f0f3q0blpl5v72434dzid575kx5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -100110,8 +100689,8 @@ self: {
      }:
      mkDerivation {
        pname = "futhark-data";
-       version = "1.0.2.0";
-       sha256 = "1z5arzvd3n7cjmws2cwz7i8ji14xngrnza55781h06qh0pakg8dd";
+       version = "1.0.3.0";
+       sha256 = "1mskhngmxfd5mimr78wni6ih6mng9rg3mfyx9bfvi05vz9hdx54a";
        libraryHaskellDepends = [
          base binary bytestring bytestring-to-vector containers half
          megaparsec mtl scientific text vector vector-binary-instances
@@ -100124,6 +100703,25 @@ self: {
        license = lib.licenses.isc;
      }) {};
 
+  "futhark-manifest" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, QuickCheck
+     , quickcheck-instances, tasty, tasty-hunit, tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "futhark-manifest";
+       version = "1.0.0.1";
+       sha256 = "0zm6c907a9ywl9isslmqrl7k42076azzrrx16z0dj8w1pns69nw5";
+       libraryHaskellDepends = [ aeson base bytestring containers text ];
+       testHaskellDepends = [
+         base QuickCheck quickcheck-instances tasty tasty-hunit
+         tasty-quickcheck text
+       ];
+       description = "Definition and serialisation instances for Futhark manifests";
+       license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "futhark-server" = callPackage
     ({ mkDerivation, base, binary, bytestring, directory, futhark-data
      , mtl, process, temporary, text
@@ -100279,6 +100877,21 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "fuzzy-time_0_2_0_0" = callPackage
+    ({ mkDerivation, base, containers, deepseq, megaparsec, text, time
+     , validity, validity-time
+     }:
+     mkDerivation {
+       pname = "fuzzy-time";
+       version = "0.2.0.0";
+       sha256 = "0gf6bj0jrd8jh30n1cdjc31ynjpsrikwacp3mysa76kqb4mxl3xz";
+       libraryHaskellDepends = [
+         base containers deepseq megaparsec text time validity validity-time
+       ];
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "fuzzy-time-gen" = callPackage
     ({ mkDerivation, base, containers, criterion, fuzzy-time
      , genvalidity, genvalidity-criterion, genvalidity-hspec
@@ -100287,8 +100900,8 @@ self: {
      }:
      mkDerivation {
        pname = "fuzzy-time-gen";
-       version = "0.1.0.0";
-       sha256 = "01hvzb6x25qbsbcfacjba1niwfswkxmarspniiaa7agzcfds45z3";
+       version = "0.2.0.0";
+       sha256 = "0lcs0kgm935rizvsy2p8v8g1kjsjishd9l7jzgl45vlwbs5g863l";
        libraryHaskellDepends = [
          base containers fuzzy-time genvalidity genvalidity-time megaparsec
          QuickCheck time
@@ -100350,8 +100963,8 @@ self: {
      }:
      mkDerivation {
        pname = "fuzzyset";
-       version = "0.2.1";
-       sha256 = "13hzy1qkxd7d7qirxhixi1qyrcjjvx6y3qmbggw5c0mkgckw7gpi";
+       version = "0.2.2";
+       sha256 = "1153xv53l6khw7yy36pfaf7pmmlwpg4ig7ywk4rxj375janlg1g8";
        libraryHaskellDepends = [
          base data-default text text-metrics unordered-containers vector
        ];
@@ -101381,6 +101994,26 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "gemcap" = callPackage
+    ({ mkDerivation, base, bytestring, hspec, io-streams, network
+     , tcp-streams, text, tls, transformers, x509
+     }:
+     mkDerivation {
+       pname = "gemcap";
+       version = "0.1.0";
+       sha256 = "0173dhqdcfkkrlj3x3m0fml4rk3sfmiflwfp9bnpja7iq9br2vhf";
+       libraryHaskellDepends = [
+         base bytestring io-streams network tcp-streams text tls
+         transformers x509
+       ];
+       testHaskellDepends = [
+         base bytestring hspec io-streams network tcp-streams text tls
+         transformers x509
+       ];
+       description = "a simple Gemini capsule (server)";
+       license = lib.licenses.agpl3Plus;
+     }) {};
+
   "gemini-router" = callPackage
     ({ mkDerivation, base, gemini-server, HsOpenSSL, network-uri
      , transformers
@@ -101643,6 +102276,8 @@ self: {
        pname = "generic-aeson";
        version = "0.2.0.13";
        sha256 = "0w5xp1rfg3r90ja1f0s48i4x7yyynfv52p6b9ncsdqyrq3y9qvl0";
+       revision = "1";
+       editedCabalFile = "07kg0bc2jvfww9a9n5rzffsi23k2i3py7h7dq7qcj7817kkh0ig0";
        libraryHaskellDepends = [
          aeson attoparsec base generic-deriving mtl tagged text
          unordered-containers vector
@@ -101829,8 +102464,8 @@ self: {
        pname = "generic-functor";
        version = "0.2.0.0";
        sha256 = "0zrjsn78ip9kigqgw5cxzm9d7pqf1svdzrc3rm041889ca0szwjv";
-       revision = "1";
-       editedCabalFile = "1hgiwf6dajj4sp0a5px1c8yhm7abikmgn175m4cs22w5a72pi3dv";
+       revision = "2";
+       editedCabalFile = "0wmrfikbdc65lxa9x7gnmf2j0njiqgnpp5p5i8pjc009rqna1hzv";
        libraryHaskellDepends = [ ap-normalize base ];
        testHaskellDepends = [ base transformers ];
        description = "Deriving generalized functors with GHC.Generics";
@@ -102114,14 +102749,12 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "generic-random_1_5_0_0" = callPackage
+  "generic-random_1_5_0_1" = callPackage
     ({ mkDerivation, base, deepseq, QuickCheck }:
      mkDerivation {
        pname = "generic-random";
-       version = "1.5.0.0";
-       sha256 = "033cs5vkx57ny035ngndhg3n32jbzyp98li9559gyiz8glp79pzg";
-       revision = "1";
-       editedCabalFile = "0p0im7py1hrarad8pg5vcggz52d702p749nvx3h5glcygzlag14v";
+       version = "1.5.0.1";
+       sha256 = "02iczjf2xc4sxfi234nf6irfj5slvf3p5hpaxl8r5nc8hy052d6x";
        libraryHaskellDepends = [ base QuickCheck ];
        testHaskellDepends = [ base deepseq QuickCheck ];
        description = "Generic random generators for QuickCheck";
@@ -102553,6 +103186,21 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity_1_0_0_1" = callPackage
+    ({ mkDerivation, base, hspec, hspec-core, QuickCheck, random
+     , validity
+     }:
+     mkDerivation {
+       pname = "genvalidity";
+       version = "1.0.0.1";
+       sha256 = "1rkrw46mhb4cvvg69avmbvsmssg5aii9g2kb4xqa9488jf8wz3m0";
+       libraryHaskellDepends = [ base QuickCheck random validity ];
+       testHaskellDepends = [ base hspec hspec-core QuickCheck ];
+       description = "Testing utilities for the validity library";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-aeson" = callPackage
     ({ mkDerivation, aeson, base, genvalidity, genvalidity-hspec
      , genvalidity-scientific, genvalidity-text
@@ -102575,6 +103223,32 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-aeson_1_0_0_0" = callPackage
+    ({ mkDerivation, aeson, base, criterion, deepseq, genvalidity
+     , genvalidity-criterion, genvalidity-hspec, genvalidity-scientific
+     , genvalidity-text, genvalidity-unordered-containers
+     , genvalidity-vector, hspec, QuickCheck, validity, validity-aeson
+     }:
+     mkDerivation {
+       pname = "genvalidity-aeson";
+       version = "1.0.0.0";
+       sha256 = "1k28vl7i2idv44962wspvhpqpfznj52ckd3g7h580894vghhwi89";
+       libraryHaskellDepends = [
+         aeson base genvalidity genvalidity-scientific genvalidity-text
+         genvalidity-unordered-containers genvalidity-vector QuickCheck
+         validity validity-aeson
+       ];
+       testHaskellDepends = [
+         aeson base deepseq genvalidity genvalidity-hspec hspec
+       ];
+       benchmarkHaskellDepends = [
+         aeson base criterion genvalidity-criterion
+       ];
+       description = "GenValidity support for aeson";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-bytestring" = callPackage
     ({ mkDerivation, base, bytestring, criterion, deepseq, genvalidity
      , genvalidity-criterion, genvalidity-hspec, hspec, QuickCheck
@@ -102600,6 +103274,32 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-bytestring_1_0_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, deepseq, genvalidity
+     , genvalidity-criterion, genvalidity-hspec, hspec, QuickCheck
+     , random, validity, validity-bytestring
+     }:
+     mkDerivation {
+       pname = "genvalidity-bytestring";
+       version = "1.0.0.0";
+       sha256 = "0bsi0y05pivyx14cvl7w46fgp1y5b53w2bk07q3vgzk079vfrcrg";
+       libraryHaskellDepends = [
+         base bytestring genvalidity QuickCheck random validity
+         validity-bytestring
+       ];
+       testHaskellDepends = [
+         base bytestring deepseq genvalidity genvalidity-hspec hspec
+         QuickCheck validity
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion genvalidity genvalidity-criterion
+         QuickCheck
+       ];
+       description = "GenValidity support for ByteString";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-containers" = callPackage
     ({ mkDerivation, base, containers, criterion, genvalidity
      , genvalidity-criterion, genvalidity-hspec, genvalidity-property
@@ -102624,6 +103324,31 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-containers_1_0_0_0" = callPackage
+    ({ mkDerivation, base, containers, criterion, genvalidity
+     , genvalidity-criterion, genvalidity-hspec, genvalidity-property
+     , hspec, QuickCheck, validity, validity-containers
+     }:
+     mkDerivation {
+       pname = "genvalidity-containers";
+       version = "1.0.0.0";
+       sha256 = "146nnn1k82js6vkgx3ys5nl251jbryqg1lvb56fd3849az68px3k";
+       libraryHaskellDepends = [
+         base containers genvalidity QuickCheck validity validity-containers
+       ];
+       testHaskellDepends = [
+         base containers genvalidity genvalidity-hspec genvalidity-property
+         hspec QuickCheck validity validity-containers
+       ];
+       benchmarkHaskellDepends = [
+         base containers criterion genvalidity genvalidity-criterion
+         QuickCheck
+       ];
+       description = "GenValidity support for containers";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-criterion" = callPackage
     ({ mkDerivation, base, criterion, deepseq, genvalidity, QuickCheck
      }:
@@ -102641,6 +103366,24 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-criterion_1_0_0_0" = callPackage
+    ({ mkDerivation, base, criterion, deepseq, genvalidity, QuickCheck
+     }:
+     mkDerivation {
+       pname = "genvalidity-criterion";
+       version = "1.0.0.0";
+       sha256 = "050i515v8wggamlnywmx93nlb8gqhnlf5qafsrn0gl5w8d82blc9";
+       libraryHaskellDepends = [
+         base criterion deepseq genvalidity QuickCheck
+       ];
+       benchmarkHaskellDepends = [
+         base criterion genvalidity QuickCheck
+       ];
+       description = "Criterion benchmarks for generators";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-hspec" = callPackage
     ({ mkDerivation, base, genvalidity, genvalidity-property, hspec
      , hspec-core, QuickCheck, transformers, validity
@@ -102660,6 +103403,26 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-hspec_1_0_0_0" = callPackage
+    ({ mkDerivation, base, genvalidity, genvalidity-property, hspec
+     , hspec-core, QuickCheck, transformers, validity
+     }:
+     mkDerivation {
+       pname = "genvalidity-hspec";
+       version = "1.0.0.0";
+       sha256 = "1p00iphswnsaabcnjmvf4ahydpqg66zya4qfjb52bbz6cb7k06s7";
+       libraryHaskellDepends = [
+         base genvalidity genvalidity-property hspec hspec-core QuickCheck
+         transformers validity
+       ];
+       testHaskellDepends = [
+         base genvalidity hspec hspec-core QuickCheck
+       ];
+       description = "Standard spec's for GenValidity instances";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-hspec-aeson" = callPackage
     ({ mkDerivation, aeson, base, bytestring, deepseq, genvalidity
      , genvalidity-aeson, genvalidity-hspec, genvalidity-property
@@ -102682,6 +103445,29 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-hspec-aeson_1_0_0_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, deepseq, genvalidity
+     , genvalidity-aeson, genvalidity-hspec, genvalidity-property
+     , genvalidity-text, hspec, QuickCheck, text, validity
+     }:
+     mkDerivation {
+       pname = "genvalidity-hspec-aeson";
+       version = "1.0.0.0";
+       sha256 = "18ga4g62z0fwkxbr2390dbmhpxpzczgz923gq0vvhnvc34r1vjh6";
+       libraryHaskellDepends = [
+         aeson base bytestring deepseq genvalidity genvalidity-hspec hspec
+         QuickCheck
+       ];
+       testHaskellDepends = [
+         aeson base genvalidity genvalidity-aeson genvalidity-hspec
+         genvalidity-property genvalidity-text hspec QuickCheck text
+         validity
+       ];
+       description = "Standard spec's for aeson-related instances";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-hspec-binary" = callPackage
     ({ mkDerivation, base, binary, deepseq, genvalidity
      , genvalidity-hspec, genvalidity-property, hspec, QuickCheck
@@ -102701,6 +103487,26 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-hspec-binary_1_0_0_0" = callPackage
+    ({ mkDerivation, base, binary, deepseq, genvalidity
+     , genvalidity-hspec, genvalidity-property, hspec, QuickCheck
+     , validity
+     }:
+     mkDerivation {
+       pname = "genvalidity-hspec-binary";
+       version = "1.0.0.0";
+       sha256 = "08avm7kdx6y90mmms5hdq4xryg5jdca6bqfhzy9wrkr79q2jv4vc";
+       libraryHaskellDepends = [
+         base binary deepseq genvalidity genvalidity-hspec hspec QuickCheck
+       ];
+       testHaskellDepends = [
+         base binary genvalidity genvalidity-property hspec validity
+       ];
+       description = "Standard spec's for binary-related Instances";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-hspec-cereal" = callPackage
     ({ mkDerivation, base, cereal, deepseq, genvalidity
      , genvalidity-hspec, genvalidity-property, hspec, QuickCheck
@@ -102721,6 +103527,27 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-hspec-cereal_1_0_0_0" = callPackage
+    ({ mkDerivation, base, cereal, deepseq, genvalidity
+     , genvalidity-hspec, genvalidity-property, hspec, QuickCheck
+     , validity
+     }:
+     mkDerivation {
+       pname = "genvalidity-hspec-cereal";
+       version = "1.0.0.0";
+       sha256 = "1cj5jcgjyjf8ib7h8ldkjfwgdq4wzk7xkmxlmyyi37iscjpv32ni";
+       libraryHaskellDepends = [
+         base cereal deepseq genvalidity genvalidity-hspec hspec QuickCheck
+       ];
+       testHaskellDepends = [
+         base cereal genvalidity genvalidity-property hspec QuickCheck
+         validity
+       ];
+       description = "Standard spec's for cereal-related instances";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-hspec-hashable" = callPackage
     ({ mkDerivation, base, genvalidity, genvalidity-hspec
      , genvalidity-property, hashable, hspec, hspec-core, QuickCheck
@@ -102742,6 +103569,28 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-hspec-hashable_1_0_0_0" = callPackage
+    ({ mkDerivation, base, genvalidity, genvalidity-hspec
+     , genvalidity-property, hashable, hspec, hspec-core, QuickCheck
+     , validity
+     }:
+     mkDerivation {
+       pname = "genvalidity-hspec-hashable";
+       version = "1.0.0.0";
+       sha256 = "14fg796iivlpp4gqsmma9zf0z9iqk524ydyqmza83qrjh8v2ff5v";
+       libraryHaskellDepends = [
+         base genvalidity genvalidity-hspec genvalidity-property hashable
+         hspec QuickCheck validity
+       ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-hspec genvalidity-property hashable
+         hspec hspec-core QuickCheck validity
+       ];
+       description = "Standard spec's for Hashable instances";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-hspec-optics" = callPackage
     ({ mkDerivation, base, genvalidity, genvalidity-hspec
      , genvalidity-property, hspec, microlens, QuickCheck, validity
@@ -102761,6 +103610,26 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-hspec-optics_1_0_0_0" = callPackage
+    ({ mkDerivation, base, genvalidity, genvalidity-hspec
+     , genvalidity-property, hspec, microlens, QuickCheck, validity
+     }:
+     mkDerivation {
+       pname = "genvalidity-hspec-optics";
+       version = "1.0.0.0";
+       sha256 = "1bhhhihk4r8q78l35dm4gm8kf5mjzpynawbcq9vzpq3ny9h7bxmr";
+       libraryHaskellDepends = [
+         base genvalidity genvalidity-hspec hspec microlens QuickCheck
+       ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-hspec genvalidity-property hspec
+         microlens validity
+       ];
+       description = "Standard spec's for lens";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-hspec-persistent" = callPackage
     ({ mkDerivation, base, genvalidity, genvalidity-hspec
      , genvalidity-property, genvalidity-text, hspec, persistent
@@ -102781,6 +103650,27 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-hspec-persistent_1_0_0_0" = callPackage
+    ({ mkDerivation, base, genvalidity, genvalidity-hspec
+     , genvalidity-property, genvalidity-text, hspec, persistent
+     , QuickCheck, text, validity
+     }:
+     mkDerivation {
+       pname = "genvalidity-hspec-persistent";
+       version = "1.0.0.0";
+       sha256 = "131k8yibypaqb4pbwrm0ql6h2ywqchlm2w0rzmax9ylzg71vkm0z";
+       libraryHaskellDepends = [
+         base genvalidity genvalidity-hspec hspec persistent QuickCheck text
+       ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-hspec genvalidity-property
+         genvalidity-text hspec persistent QuickCheck text validity
+       ];
+       description = "Standard spec's for persistent-related instances";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-mergeful" = callPackage
     ({ mkDerivation, base, containers, criterion, genvalidity
      , genvalidity-containers, genvalidity-criterion, genvalidity-hspec
@@ -102806,6 +103696,32 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-mergeful_0_3_0_0" = callPackage
+    ({ mkDerivation, base, containers, criterion, genvalidity
+     , genvalidity-containers, genvalidity-criterion, genvalidity-hspec
+     , genvalidity-hspec-aeson, genvalidity-time, genvalidity-uuid
+     , hspec, mergeful, mtl, pretty-show, QuickCheck, random, time, uuid
+     }:
+     mkDerivation {
+       pname = "genvalidity-mergeful";
+       version = "0.3.0.0";
+       sha256 = "0dd22kdlydhdns86awmmzbnr9bwrb84623zcyb5b9aaxmq75ifza";
+       libraryHaskellDepends = [
+         base containers genvalidity genvalidity-containers genvalidity-time
+         mergeful QuickCheck
+       ];
+       testHaskellDepends = [
+         base containers genvalidity-hspec genvalidity-hspec-aeson
+         genvalidity-uuid hspec mergeful mtl pretty-show QuickCheck random
+         time uuid
+       ];
+       benchmarkHaskellDepends = [
+         base criterion genvalidity-criterion mergeful
+       ];
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-mergeless" = callPackage
     ({ mkDerivation, base, containers, criterion, genvalidity
      , genvalidity-containers, genvalidity-criterion, genvalidity-hspec
@@ -102832,6 +103748,33 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-mergeless_0_3_0_0" = callPackage
+    ({ mkDerivation, base, containers, criterion, genvalidity
+     , genvalidity-containers, genvalidity-criterion, genvalidity-hspec
+     , genvalidity-hspec-aeson, genvalidity-time, genvalidity-uuid
+     , hspec, mergeless, mtl, pretty-show, QuickCheck, random, time
+     , uuid
+     }:
+     mkDerivation {
+       pname = "genvalidity-mergeless";
+       version = "0.3.0.0";
+       sha256 = "1glz1w7mpbwpn800khqd2jzigs19k6y0bxx7cid2zvzwrnhz6prl";
+       libraryHaskellDepends = [
+         base containers genvalidity genvalidity-containers genvalidity-time
+         mergeless QuickCheck
+       ];
+       testHaskellDepends = [
+         base containers genvalidity-hspec genvalidity-hspec-aeson
+         genvalidity-uuid hspec mergeless mtl pretty-show QuickCheck random
+         time uuid
+       ];
+       benchmarkHaskellDepends = [
+         base criterion genvalidity-criterion mergeless
+       ];
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-path" = callPackage
     ({ mkDerivation, base, criterion, genvalidity
      , genvalidity-criterion, genvalidity-hspec, hspec, path, QuickCheck
@@ -102852,6 +103795,27 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-path_1_0_0_0" = callPackage
+    ({ mkDerivation, base, criterion, genvalidity
+     , genvalidity-criterion, genvalidity-hspec, hspec, path, QuickCheck
+     , validity-path
+     }:
+     mkDerivation {
+       pname = "genvalidity-path";
+       version = "1.0.0.0";
+       sha256 = "172gss10xl274s95l3ywgra32ldnl2a4gicc1xgi5q7v5zmj5gaa";
+       libraryHaskellDepends = [
+         base genvalidity path QuickCheck validity-path
+       ];
+       testHaskellDepends = [ base genvalidity-hspec hspec path ];
+       benchmarkHaskellDepends = [
+         base criterion genvalidity genvalidity-criterion path QuickCheck
+       ];
+       description = "GenValidity support for Path";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-persistent" = callPackage
     ({ mkDerivation, base, containers, criterion, deepseq, genvalidity
      , genvalidity-containers, genvalidity-criterion, genvalidity-hspec
@@ -102880,6 +103844,34 @@ self: {
        broken = true;
      }) {};
 
+  "genvalidity-persistent_1_0_0_0" = callPackage
+    ({ mkDerivation, base, containers, criterion, deepseq, genvalidity
+     , genvalidity-containers, genvalidity-criterion, genvalidity-hspec
+     , hspec, persistent, persistent-template, QuickCheck
+     , validity-containers, validity-persistent
+     }:
+     mkDerivation {
+       pname = "genvalidity-persistent";
+       version = "1.0.0.0";
+       sha256 = "0a03vgsi5px45838q6a4b4yckf7djdy3xwd4g85b2ik3psv9vgl9";
+       libraryHaskellDepends = [
+         base containers genvalidity genvalidity-containers persistent
+         QuickCheck validity-containers validity-persistent
+       ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-hspec hspec persistent
+         persistent-template QuickCheck validity-containers
+       ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq genvalidity genvalidity-criterion persistent
+         persistent-template
+       ];
+       description = "GenValidity support for Persistent";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "genvalidity-property" = callPackage
     ({ mkDerivation, base, directory, doctest, filepath, genvalidity
      , hspec, pretty-show, QuickCheck, validity
@@ -102896,6 +103888,23 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-property_1_0_0_0" = callPackage
+    ({ mkDerivation, base, genvalidity, hspec, pretty-show, QuickCheck
+     , validity
+     }:
+     mkDerivation {
+       pname = "genvalidity-property";
+       version = "1.0.0.0";
+       sha256 = "1nxcdq04rkckrb3v49pjx378n5s828k24x7hix6manyxqmd3hplw";
+       libraryHaskellDepends = [
+         base genvalidity hspec pretty-show QuickCheck validity
+       ];
+       testHaskellDepends = [ base genvalidity hspec QuickCheck ];
+       description = "Standard properties for functions on `Validity` types";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-scientific" = callPackage
     ({ mkDerivation, base, genvalidity, genvalidity-hspec, hspec
      , QuickCheck, scientific, validity, validity-scientific
@@ -102914,6 +103923,25 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-scientific_1_0_0_0" = callPackage
+    ({ mkDerivation, base, genvalidity, genvalidity-hspec, hspec
+     , QuickCheck, scientific, validity, validity-scientific
+     }:
+     mkDerivation {
+       pname = "genvalidity-scientific";
+       version = "1.0.0.0";
+       sha256 = "0xi1a1jsby1dqv50lmpp98x2y5j9vaf3sl38spv5bnafyp1i6pmq";
+       libraryHaskellDepends = [
+         base genvalidity QuickCheck scientific validity validity-scientific
+       ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-hspec hspec QuickCheck scientific
+       ];
+       description = "GenValidity support for Scientific";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-sydtest" = callPackage
     ({ mkDerivation, base, genvalidity, pretty-show, QuickCheck
      , sydtest, sydtest-discover, validity
@@ -102931,6 +103959,24 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-sydtest_1_0_0_0" = callPackage
+    ({ mkDerivation, base, genvalidity, pretty-show, QuickCheck
+     , sydtest, sydtest-discover, validity
+     }:
+     mkDerivation {
+       pname = "genvalidity-sydtest";
+       version = "1.0.0.0";
+       sha256 = "11v66s8srcfigb4jkvz7nm0ynczg8mdslw4vn98qyv2j85sp6l45";
+       libraryHaskellDepends = [
+         base genvalidity pretty-show QuickCheck sydtest validity
+       ];
+       testHaskellDepends = [ base genvalidity QuickCheck sydtest ];
+       testToolDepends = [ sydtest-discover ];
+       description = "Standard properties for functions on `Validity` types for the sydtest framework";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-sydtest-aeson" = callPackage
     ({ mkDerivation, aeson, base, bytestring, deepseq, genvalidity
      , genvalidity-aeson, genvalidity-sydtest, genvalidity-text
@@ -102953,6 +103999,29 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-sydtest-aeson_1_0_0_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, deepseq, genvalidity
+     , genvalidity-aeson, genvalidity-sydtest, genvalidity-text
+     , QuickCheck, sydtest, sydtest-discover, text, validity
+     }:
+     mkDerivation {
+       pname = "genvalidity-sydtest-aeson";
+       version = "1.0.0.0";
+       sha256 = "1n8n07h5v7gwpfrfd8f4jir3d2331licmv78ih0i0qxwr87grv02";
+       libraryHaskellDepends = [
+         aeson base bytestring deepseq genvalidity genvalidity-sydtest
+         QuickCheck sydtest
+       ];
+       testHaskellDepends = [
+         aeson base genvalidity genvalidity-aeson genvalidity-sydtest
+         genvalidity-text QuickCheck sydtest text validity
+       ];
+       testToolDepends = [ sydtest-discover ];
+       description = "Standard spec's for aeson-related instances in sydtest";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-sydtest-hashable" = callPackage
     ({ mkDerivation, base, genvalidity, genvalidity-sydtest, hashable
      , QuickCheck, sydtest, sydtest-discover, validity
@@ -102974,6 +104043,28 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-sydtest-hashable_1_0_0_0" = callPackage
+    ({ mkDerivation, base, genvalidity, genvalidity-sydtest, hashable
+     , QuickCheck, sydtest, sydtest-discover, validity
+     }:
+     mkDerivation {
+       pname = "genvalidity-sydtest-hashable";
+       version = "1.0.0.0";
+       sha256 = "05482ynm19k9wj0hvvlfimvdng1wkl35409lp1r6vj02b7ml4i2z";
+       libraryHaskellDepends = [
+         base genvalidity genvalidity-sydtest hashable QuickCheck sydtest
+         validity
+       ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-sydtest hashable QuickCheck sydtest
+         validity
+       ];
+       testToolDepends = [ sydtest-discover ];
+       description = "Standard spec's for Hashable instances for sydtest";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-sydtest-lens" = callPackage
     ({ mkDerivation, base, genvalidity, genvalidity-sydtest, microlens
      , QuickCheck, sydtest, sydtest-discover, validity
@@ -102993,6 +104084,26 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-sydtest-lens_1_0_0_0" = callPackage
+    ({ mkDerivation, base, genvalidity, genvalidity-sydtest, microlens
+     , QuickCheck, sydtest, sydtest-discover, validity
+     }:
+     mkDerivation {
+       pname = "genvalidity-sydtest-lens";
+       version = "1.0.0.0";
+       sha256 = "0yvgbyhbf8mbqy6hil8g1zk1l0zgjnrw3y3cydnqvvbvka5h7jm9";
+       libraryHaskellDepends = [
+         base genvalidity genvalidity-sydtest microlens QuickCheck sydtest
+       ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-sydtest microlens sydtest validity
+       ];
+       testToolDepends = [ sydtest-discover ];
+       description = "Standard spec's for lens for sydtest";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-sydtest-persistent" = callPackage
     ({ mkDerivation, base, genvalidity, genvalidity-sydtest
      , genvalidity-text, persistent, QuickCheck, sydtest
@@ -103015,6 +104126,29 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-sydtest-persistent_1_0_0_0" = callPackage
+    ({ mkDerivation, base, genvalidity, genvalidity-sydtest
+     , genvalidity-text, persistent, QuickCheck, sydtest
+     , sydtest-discover, text, validity
+     }:
+     mkDerivation {
+       pname = "genvalidity-sydtest-persistent";
+       version = "1.0.0.0";
+       sha256 = "1njjwl9x7kirvzxpqpdw5gzfba1ixxx8z3ji3yn3fvhm8rkswfyp";
+       libraryHaskellDepends = [
+         base genvalidity genvalidity-sydtest persistent QuickCheck sydtest
+         text
+       ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-sydtest genvalidity-text persistent
+         QuickCheck sydtest text validity
+       ];
+       testToolDepends = [ sydtest-discover ];
+       description = "Standard spec's for persistent-related instances for sydtest";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-text" = callPackage
     ({ mkDerivation, array, base, criterion, genvalidity
      , genvalidity-criterion, genvalidity-hspec, hspec, QuickCheck
@@ -103038,6 +104172,30 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-text_1_0_0_0" = callPackage
+    ({ mkDerivation, array, base, criterion, genvalidity
+     , genvalidity-criterion, genvalidity-hspec, hspec, QuickCheck
+     , random, text, validity, validity-text
+     }:
+     mkDerivation {
+       pname = "genvalidity-text";
+       version = "1.0.0.0";
+       sha256 = "1gr5wqp2rph212hz60kk94wp14p7pwrhay8vlg2b8g40ixai8qw6";
+       libraryHaskellDepends = [
+         array base genvalidity QuickCheck random text validity
+         validity-text
+       ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-hspec hspec QuickCheck text
+       ];
+       benchmarkHaskellDepends = [
+         base criterion genvalidity genvalidity-criterion QuickCheck text
+       ];
+       description = "GenValidity support for Text";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-time" = callPackage
     ({ mkDerivation, base, criterion, genvalidity
      , genvalidity-criterion, genvalidity-hspec, hspec, QuickCheck, time
@@ -103058,6 +104216,27 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-time_1_0_0_0" = callPackage
+    ({ mkDerivation, base, criterion, genvalidity
+     , genvalidity-criterion, genvalidity-hspec, hspec, QuickCheck, time
+     , validity-time
+     }:
+     mkDerivation {
+       pname = "genvalidity-time";
+       version = "1.0.0.0";
+       sha256 = "15xj7x915524h0hi9b6c7y6imwkv3g7b10cr7wx8yaysh5d1cx7r";
+       libraryHaskellDepends = [
+         base genvalidity QuickCheck time validity-time
+       ];
+       testHaskellDepends = [ base genvalidity-hspec hspec time ];
+       benchmarkHaskellDepends = [
+         base criterion genvalidity-criterion time
+       ];
+       description = "GenValidity support for time";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-typed-uuid" = callPackage
     ({ mkDerivation, base, criterion, genvalidity
      , genvalidity-criterion, genvalidity-hspec, genvalidity-hspec-aeson
@@ -103082,6 +104261,31 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-typed-uuid_0_1_0_1" = callPackage
+    ({ mkDerivation, base, criterion, genvalidity
+     , genvalidity-criterion, genvalidity-hspec, genvalidity-hspec-aeson
+     , genvalidity-uuid, hspec, QuickCheck, typed-uuid
+     }:
+     mkDerivation {
+       pname = "genvalidity-typed-uuid";
+       version = "0.1.0.1";
+       sha256 = "18lfvw9slpgpng80mcj7mh7pfpl4xdyn9cfydafb7yq5lyr1vkym";
+       libraryHaskellDepends = [
+         base genvalidity genvalidity-uuid QuickCheck typed-uuid
+       ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-hspec genvalidity-hspec-aeson
+         genvalidity-uuid hspec QuickCheck typed-uuid
+       ];
+       benchmarkHaskellDepends = [
+         base criterion genvalidity genvalidity-criterion genvalidity-uuid
+         QuickCheck typed-uuid
+       ];
+       description = "Generators for Phantom-Typed version of UUID";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-unordered-containers" = callPackage
     ({ mkDerivation, base, genvalidity, genvalidity-hspec, hashable
      , hspec, QuickCheck, unordered-containers, validity
@@ -103103,6 +104307,28 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-unordered-containers_1_0_0_0" = callPackage
+    ({ mkDerivation, base, genvalidity, genvalidity-hspec, hashable
+     , hspec, QuickCheck, unordered-containers, validity
+     , validity-unordered-containers
+     }:
+     mkDerivation {
+       pname = "genvalidity-unordered-containers";
+       version = "1.0.0.0";
+       sha256 = "1sd67x2kw7l0kbsaa67x3an94sv1hvnkbb8r42v36cc5jjaw29dk";
+       libraryHaskellDepends = [
+         base genvalidity hashable QuickCheck unordered-containers validity
+         validity-unordered-containers
+       ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-hspec hspec unordered-containers
+         validity
+       ];
+       description = "GenValidity support for unordered-containers";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-uuid" = callPackage
     ({ mkDerivation, base, criterion, genvalidity
      , genvalidity-criterion, genvalidity-hspec, hspec, QuickCheck, uuid
@@ -103125,6 +104351,29 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-uuid_1_0_0_0" = callPackage
+    ({ mkDerivation, base, criterion, genvalidity
+     , genvalidity-criterion, genvalidity-hspec, hspec, QuickCheck, uuid
+     , validity, validity-uuid
+     }:
+     mkDerivation {
+       pname = "genvalidity-uuid";
+       version = "1.0.0.0";
+       sha256 = "1w53ziz3zbm4dv64gr60md5riis28bi3lrznzsrjyvd6nngxx460";
+       libraryHaskellDepends = [
+         base genvalidity QuickCheck uuid validity validity-uuid
+       ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-hspec hspec QuickCheck uuid
+       ];
+       benchmarkHaskellDepends = [
+         base criterion genvalidity genvalidity-criterion QuickCheck uuid
+       ];
+       description = "GenValidity support for UUID";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "genvalidity-vector" = callPackage
     ({ mkDerivation, base, genvalidity, genvalidity-hspec, hspec
      , QuickCheck, validity, validity-vector, vector
@@ -103143,6 +104392,25 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "genvalidity-vector_1_0_0_0" = callPackage
+    ({ mkDerivation, base, genvalidity, genvalidity-hspec, hspec
+     , QuickCheck, validity, validity-vector, vector
+     }:
+     mkDerivation {
+       pname = "genvalidity-vector";
+       version = "1.0.0.0";
+       sha256 = "1l2zjbfjg05xxxgn359zfj93yx26zcz9xlayw2jf9brwv8wx23gy";
+       libraryHaskellDepends = [
+         base genvalidity QuickCheck validity validity-vector vector
+       ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-hspec hspec vector
+       ];
+       description = "GenValidity support for vector";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "geo-resolver" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, blaze-builder
      , bytestring, http-conduit, http-types, HUnit, QuickCheck
@@ -103648,8 +104916,8 @@ self: {
     ({ mkDerivation, base, ghc-bignum }:
      mkDerivation {
        pname = "ghc-bignum-orphans";
-       version = "0.1";
-       sha256 = "034m3qfw6rks1a0a5ivrhjb9my5prscq6ydc980cfdsz486pap8n";
+       version = "0.1.1";
+       sha256 = "1ns129cx6b2di2w66r38cwiirqcpkvwk6xn64hzbm202p73igim4";
        libraryHaskellDepends = [ base ghc-bignum ];
        description = "Backwards-compatible orphan instances for ghc-bignum";
        license = lib.licenses.bsd3;
@@ -103826,20 +105094,20 @@ self: {
 
   "ghc-debug-brick" = callPackage
     ({ mkDerivation, base, brick, containers, cursor, directory
-     , filepath, ghc-debug-client, ghc-debug-common
+     , exceptions, filepath, ghc-debug-client, ghc-debug-common
      , ghc-debug-convention, microlens, microlens-platform, text, time
      , unordered-containers, vty
      }:
      mkDerivation {
        pname = "ghc-debug-brick";
-       version = "0.1.0.0";
-       sha256 = "1gndynk42ln3hp0lg1y4rjzz6kmgp68lw077dj4zbbsam9skfgs0";
+       version = "0.2.0.0";
+       sha256 = "1jv2n0bxy37whsxs4drajs0mx83qng82qr62igicfnlqsvd5sk36";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base brick containers cursor directory filepath ghc-debug-client
-         ghc-debug-common ghc-debug-convention microlens microlens-platform
-         text time unordered-containers vty
+         base brick containers cursor directory exceptions filepath
+         ghc-debug-client ghc-debug-common ghc-debug-convention microlens
+         microlens-platform text time unordered-containers vty
        ];
        description = "A simple TUI using ghc-debug";
        license = lib.licenses.bsd3;
@@ -103849,19 +105117,19 @@ self: {
   "ghc-debug-client" = callPackage
     ({ mkDerivation, async, base, binary, bitwise, containers
      , directory, dom-lt, eventlog2html, filepath, ghc-debug-common
-     , ghc-debug-convention, ghc-prim, hashable, haxl, language-dot
+     , ghc-debug-convention, ghc-prim, hashable, language-dot
      , monoidal-containers, mtl, network, process, psqueues, stm, text
      , unordered-containers
      }:
      mkDerivation {
        pname = "ghc-debug-client";
-       version = "0.1.0.0";
-       sha256 = "1sl0xa7dhgnqprmi6sfbxzxz9m0vkni262s1ks09dkqs52bv68sx";
+       version = "0.2.0.0";
+       sha256 = "1v0hmvf5larppyx52fhvpwjbzjhn6rl9f5naikqmljp37dv503na";
        libraryHaskellDepends = [
          async base binary bitwise containers directory dom-lt eventlog2html
          filepath ghc-debug-common ghc-debug-convention ghc-prim hashable
-         haxl language-dot monoidal-containers mtl network process psqueues
-         stm text unordered-containers
+         language-dot monoidal-containers mtl network process psqueues stm
+         text unordered-containers
        ];
        description = "Useful functions for writing heap analysis tools which use ghc-debug";
        license = lib.licenses.bsd3;
@@ -103875,8 +105143,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-debug-common";
-       version = "0.1.0.0";
-       sha256 = "088ir70k1ssyri4w76si0bn186lq08hzdfhdr09bmx80dmyp5vzy";
+       version = "0.2.0.0";
+       sha256 = "1fw9whgh2zayvaagn1f7x1qkwvznpjhpn4zkfnfav24pkmpf5ijy";
        libraryHaskellDepends = [
          array base binary bytestring containers cpu deepseq directory
          dom-lt filepath ghc-debug-convention ghc-heap hashable transformers
@@ -103891,8 +105159,8 @@ self: {
     ({ mkDerivation, base, directory, filepath }:
      mkDerivation {
        pname = "ghc-debug-convention";
-       version = "0.1.0.0";
-       sha256 = "1cgsilxnz4dmx3y27qysyhf3jhsvj402wb0f50l30kqmlr0cp1hj";
+       version = "0.2.0.0";
+       sha256 = "1gyibklicl6sp9rbqqrqlxmys1cycxf3yzh2y5fy84djf3xqn4j2";
        libraryHaskellDepends = [ base directory filepath ];
        description = "Definitions needed by ghc-debug-stub and ghc-debug-common";
        license = lib.licenses.bsd3;
@@ -103906,10 +105174,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-debug-stub";
-       version = "0.1.0.0";
-       sha256 = "1gwp2hq3pxp9d4m4l30iwxlkd5ha9wk9mlhnlppiha09vdccd04r";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.2.0.0";
+       sha256 = "1zi388jwdad9qlj1v0ihrv67abknbhh7scr1fymc808xmkkwk701";
        libraryHaskellDepends = [
          base directory filepath ghc-debug-convention ghc-prim
        ];
@@ -104011,8 +105277,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-events";
-       version = "0.17.0";
-       sha256 = "059csl9j391iqbxaia9kawsksgbiy3ffdk9pqabb68gqrn0b7icc";
+       version = "0.17.0.1";
+       sha256 = "1jbfl8wprbrc1pwiw2dv70add9pssqrfllhn1zgic1vks15q37sr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -104097,12 +105363,12 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "ghc-exactprint_1_2_0" = callPackage
+  "ghc-exactprint_1_3_0" = callPackage
     ({ mkDerivation }:
      mkDerivation {
        pname = "ghc-exactprint";
-       version = "1.2.0";
-       sha256 = "0dxjhw7vqd7grhghwz5zcjfb7bm5sa9mq0iqsr9vsz4vxxlfyi4k";
+       version = "1.3.0";
+       sha256 = "012ka8qxc340sijbn6sgwdpzdkk07kpbs6i8b71kwnpk5k5ahqdl";
        isLibrary = true;
        isExecutable = true;
        description = "ExactPrint for GHC";
@@ -104154,8 +105420,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-heap-view";
-       version = "0.6.2";
-       sha256 = "1wj11g24zap7r2xvp46dir54hwyki025xnkgymc73224lisc3134";
+       version = "0.6.3";
+       sha256 = "1pwla6985y7kh98rpzl1wrcqcn6w47qaaviyd9vcpkwhgvv62zij";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal filepath ];
        libraryHaskellDepends = [
@@ -104871,18 +106137,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "ghc-syntax-highlighter_0_0_7_0" = callPackage
+  "ghc-syntax-highlighter_0_0_8_0" = callPackage
     ({ mkDerivation, base, ghc-lib-parser, hspec, hspec-discover, text
      }:
      mkDerivation {
        pname = "ghc-syntax-highlighter";
-       version = "0.0.7.0";
-       sha256 = "123kvcdlzx18n14122xbpp587byfd8w0z886grlxkzinb53bmzg6";
+       version = "0.0.8.0";
+       sha256 = "1s6bq90s75qfiv54qsskawv3ihwjhdml4fxq56ww01p54mnrwr27";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base ghc-lib-parser text ];
        testHaskellDepends = [ base hspec text ];
        testToolDepends = [ hspec-discover ];
-       description = "Syntax highlighter for Haskell using lexer of GHC itself";
+       description = "Syntax highlighter for Haskell using the lexer of GHC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
      }) {};
@@ -104897,6 +106163,8 @@ self: {
        pname = "ghc-tags";
        version = "1.3";
        sha256 = "1fshj5zdnhr879c9q48mb89f1fidc2skgmgi385sa5r8wxn1ili0";
+       revision = "1";
+       editedCabalFile = "000haj96zlg110hxi1hi9vpcyg8w4xkm24d1xbcccn71grvhig5i";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -104967,8 +106235,8 @@ self: {
     ({ mkDerivation, base, ghc, transformers }:
      mkDerivation {
        pname = "ghc-tcplugin-api";
-       version = "0.5.1.0";
-       sha256 = "1rwdq81k0f85idg3fypac127iq6r3da5jrkq4ynixvpahj1w6m87";
+       version = "0.6.1.0";
+       sha256 = "1ic243jdvmm8sqzksx6hady2p7ca07as04hxvsxa3vh6b9nwwkk2";
        libraryHaskellDepends = [ base ghc transformers ];
        description = "An API for type-checker plugins";
        license = lib.licenses.bsd3;
@@ -104976,18 +106244,6 @@ self: {
        broken = true;
      }) {};
 
-  "ghc-tcplugins-extra_0_3_2" = callPackage
-    ({ mkDerivation, base, ghc }:
-     mkDerivation {
-       pname = "ghc-tcplugins-extra";
-       version = "0.3.2";
-       sha256 = "13qhwjbhyi3nrjdvc0fdgxf4kz55my541mz2j3sndpxsmbymqs3m";
-       libraryHaskellDepends = [ base ghc ];
-       description = "Utilities for writing GHC type-checker plugins";
-       license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
   "ghc-tcplugins-extra" = callPackage
     ({ mkDerivation, base, ghc }:
      mkDerivation {
@@ -105035,8 +106291,8 @@ self: {
     ({ mkDerivation, base, bytestring, tasty-bench, text }:
      mkDerivation {
        pname = "ghc-trace-events";
-       version = "0.1.2.3";
-       sha256 = "11m2ihzlncvxp8x2zgbnzbyybz2lbpdl5flk4gzmq0qz0957j7qd";
+       version = "0.1.2.4";
+       sha256 = "1wwpq89bvgzfzrzvidyqk2953hcc9p9xz0vrb62vhgs6k885b90n";
        libraryHaskellDepends = [ base bytestring text ];
        benchmarkHaskellDepends = [ base bytestring tasty-bench ];
        description = "Faster traceEvent and traceMarker, and binary object logging for eventlog";
@@ -105110,33 +106366,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-typelits-presburger";
-       version = "0.6.0.0";
-       sha256 = "08jxp7xnpnlkn8429x25sy1r8xg4b4pv5a41bgw08dl0br4941cx";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base containers ghc ghc-tcplugins-extra mtl pretty reflection syb
-         transformers
-       ];
-       testHaskellDepends = [
-         base equational-reasoning tasty tasty-discover
-         tasty-expected-failure tasty-hunit text
-       ];
-       testToolDepends = [ tasty-discover ];
-       description = "Presburger Arithmetic Solver for GHC Type-level natural numbers";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "ghc-typelits-presburger_0_6_1_0" = callPackage
-    ({ mkDerivation, base, containers, equational-reasoning, ghc
-     , ghc-tcplugins-extra, mtl, pretty, reflection, syb, tasty
-     , tasty-discover, tasty-expected-failure, tasty-hunit, text
-     , transformers
-     }:
-     mkDerivation {
-       pname = "ghc-typelits-presburger";
-       version = "0.6.1.0";
-       sha256 = "1k9mh0w1xaz85jkdvwm5pxkqzwzrjmhzn1sj2nmilhbnhgfwm9vd";
+       version = "0.6.2.0";
+       sha256 = "11rzfvs2kvknz8892bii2ljh6hbaa1zy0hnwi6pi1xghvwp1fckq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -105150,7 +106381,6 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Presburger Arithmetic Solver for GHC Type-level natural numbers";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ghc-usage" = callPackage
@@ -105399,7 +106629,7 @@ self: {
      , base16-bytestring, binary, bytestring, bytestring-encoding
      , case-insensitive, containers, cryptohash-sha1, data-default
      , deepseq, dependent-map, dependent-sum, Diff, directory, dlist
-     , extra, filepath, fingertree, fuzzy, ghc, ghc-api-compat, ghc-boot
+     , exceptions, extra, filepath, fingertree, fuzzy, ghc, ghc-boot
      , ghc-boot-th, ghc-check, ghc-exactprint, ghc-paths
      , ghc-trace-events, ghc-typelits-knownnat, gitrev, Glob
      , haddock-library, hashable, heapsize, hie-bios, hie-compat, hiedb
@@ -105418,18 +106648,18 @@ self: {
      }:
      mkDerivation {
        pname = "ghcide";
-       version = "1.4.2.3";
-       sha256 = "18l5sqyxxx6xlxkky9yw6ld1r5xrkcnfaqm72f0kvqiwvinvr0hh";
+       version = "1.5.0.1";
+       sha256 = "0z6fq9p6wikcgacnqg8brq0bkphd14h7g5absw53ya047vgp02gc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-pretty array async base base16-bytestring binary
          bytestring bytestring-encoding case-insensitive containers
          cryptohash-sha1 data-default deepseq dependent-map dependent-sum
-         Diff directory dlist extra filepath fingertree fuzzy ghc
-         ghc-api-compat ghc-boot ghc-boot-th ghc-check ghc-exactprint
-         ghc-paths ghc-trace-events Glob haddock-library hashable heapsize
-         hie-bios hie-compat hiedb hls-graph hls-plugin-api hslogger
+         Diff directory dlist exceptions extra filepath fingertree fuzzy ghc
+         ghc-boot ghc-boot-th ghc-check ghc-exactprint ghc-paths
+         ghc-trace-events Glob haddock-library hashable heapsize hie-bios
+         hie-compat hiedb hls-graph hls-plugin-api hslogger
          implicit-hie-cradle lens lsp lsp-types monoid-subclasses mtl
          network-uri opentelemetry optparse-applicative parallel
          prettyprinter prettyprinter-ansi-terminal regex-tdfa retrie
@@ -105441,7 +106671,7 @@ self: {
          aeson base bytestring containers data-default directory extra
          filepath ghc gitrev hashable heapsize hie-bios hiedb hls-graph
          hls-plugin-api lens lsp lsp-test lsp-types optparse-applicative
-         process safe-exceptions shake text unordered-containers
+         process safe-exceptions shake tasty-hunit text unordered-containers
        ];
        testHaskellDepends = [
          aeson async base binary bytestring containers data-default
@@ -105454,7 +106684,7 @@ self: {
        ];
        testToolDepends = [ implicit-hie ];
        benchmarkHaskellDepends = [
-         aeson base directory extra filepath optparse-applicative shake
+         aeson base directory extra filepath lens optparse-applicative shake
          shake-bench text yaml
        ];
        benchmarkToolDepends = [ hp2pretty implicit-hie ];
@@ -105520,8 +106750,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghcjs-dom";
-       version = "0.9.4.0";
-       sha256 = "0vw3b45shbj1xvx729rrzjanb2wy49l182j11kv8hid1jcb9mwnl";
+       version = "0.9.5.0";
+       sha256 = "1ya4ns81xwri8knbhmkbxpvm48q4ygyn1sqq873sbpsawknqcn65";
        libraryHaskellDepends = [
          base containers ghcjs-dom-jsaddle text transformers
        ];
@@ -105557,8 +106787,8 @@ self: {
     ({ mkDerivation, jsaddle-dom }:
      mkDerivation {
        pname = "ghcjs-dom-jsaddle";
-       version = "0.9.4.0";
-       sha256 = "059qhv1y0q5cgk72fl9spc2l2mxwyw8wzkbmhyliwr6869az48f7";
+       version = "0.9.5.0";
+       sha256 = "12y95c10f16ysbbsfhwmw3pyyp339rm1hnzsb7hbbiwh6g2kx8vd";
        libraryHaskellDepends = [ jsaddle-dom ];
        doHaddock = false;
        description = "DOM library that supports both GHCJS and GHC using jsaddle";
@@ -105569,8 +106799,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "ghcjs-dom-jsffi";
-       version = "0.9.4.0";
-       sha256 = "02m0qszdl3kxyhjrzj1ph9gwbr9jkzak2v1b47v6ywsm7hmjgn7w";
+       version = "0.9.5.0";
+       sha256 = "1pmxrhpdh4630q0z8a8pqg5m7323a1w1z8ny2fvb1acr12x6l1f0";
        description = "DOM library using JSFFI and GHCJS";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
@@ -105767,8 +106997,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghcup";
-       version = "0.1.17.3";
-       sha256 = "0m2h3grx8w6zn2qz6wpp8kqjrd30h1i7bpy4h3x9sxmi8x11k84i";
+       version = "0.1.17.4";
+       sha256 = "0vvnjmw72jxqdpw5j8jb64bw0v49fjnz48x3335wflg8bk9nnjb6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -105784,10 +107014,10 @@ self: {
        ];
        executableHaskellDepends = [
          aeson aeson-pretty async base bytestring cabal-plan containers
-         deepseq filepath haskus-utils-variant libarchive megaparsec mtl
-         optics optparse-applicative pretty pretty-terminal regex-posix
-         resourcet safe safe-exceptions template-haskell text transformers
-         uri-bytestring utf8-string versions yaml-streamly
+         deepseq directory filepath haskus-utils-variant libarchive
+         megaparsec mtl optparse-applicative pretty pretty-terminal
+         resourcet safe safe-exceptions template-haskell text uri-bytestring
+         utf8-string versions yaml-streamly
        ];
        testHaskellDepends = [
          base bytestring containers generic-arbitrary hspec
@@ -105868,6 +107098,26 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) atk;};
 
+  "gi-atk_2_0_24" = callPackage
+    ({ mkDerivation, atk, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, haskell-gi, haskell-gi-base, haskell-gi-overloading
+     , text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-atk";
+       version = "2.0.24";
+       sha256 = "1xhjzjcdbnfk7b6r035ch3plpgk9yk2qawq7iffc47y67dxhcd6b";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ atk ];
+       description = "Atk bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) atk;};
+
   "gi-cairo" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, cairo, containers
      , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
@@ -105891,6 +107141,30 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) cairo;};
 
+  "gi-cairo_1_0_26" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, cairo, containers
+     , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gi-cairo";
+       version = "1.0.26";
+       sha256 = "1f3gfhqg03b64n4ipg3q96wkwsisrs79bbg7335nwg92frkv1j79";
+       setupHaskellDepends = [ base Cabal haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ cairo ];
+       preCompileBuildDriver = ''
+         PKG_CONFIG_PATH+=":${cairo}/lib/pkgconfig"
+         setupCompileFlags+=" $(pkg-config --libs cairo-gobject)"
+       '';
+       description = "Cairo bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) cairo;};
+
   "gi-cairo-again" = callPackage
     ({ mkDerivation, base, cairo-core, haskell-gi-base
      , template-haskell
@@ -105913,8 +107187,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-cairo-connector";
-       version = "0.1.0";
-       sha256 = "115iy6sd77aabzghdmfpn5w2zqqalrxgbs5i93z49y3vz4wsjiwf";
+       version = "0.1.1";
+       sha256 = "0jkca1x0dlyfwyywn6gmsnxhyad3j7vfwa0c4hpvx8k8m350dn3c";
        libraryHaskellDepends = [
          base gi-cairo gi-cairo-render haskell-gi-base mtl
        ];
@@ -105928,8 +107202,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-cairo-render";
-       version = "0.1.0";
-       sha256 = "1b2qxfahs4w288i6w5m0rs74amnm3zp0mj2vsccf34q437yni2gx";
+       version = "0.1.1";
+       sha256 = "09gxykx633xvwcqx1cjl9kj2748jdq49ayy6z5p3hz7bxqlna952";
        libraryHaskellDepends = [
          array base bytestring haskell-gi-base mtl text utf8-string
        ];
@@ -105939,6 +107213,76 @@ self: {
        license = lib.licenses.bsd3;
      }) {inherit (pkgs) cairo;};
 
+  "gi-clutter" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, clutter, containers
+     , gi-atk, gi-cairo, gi-cogl, gi-gio, gi-glib, gi-gobject, gi-json
+     , gi-pango, haskell-gi, haskell-gi-base, haskell-gi-overloading
+     , text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-clutter";
+       version = "1.0.2";
+       sha256 = "1fyqpgj2q7mnlvqp60203mnl797vvsrfmgildp3zdi4dmqsv4vws";
+       setupHaskellDepends = [
+         base Cabal gi-atk gi-cairo gi-cogl gi-gio gi-glib gi-gobject
+         gi-json gi-pango haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-atk gi-cairo gi-cogl gi-gio gi-glib
+         gi-gobject gi-json gi-pango haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ clutter ];
+       description = "clutter GObject bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) clutter;};
+
+  "gi-cogl" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, cogl, containers, gi-glib
+     , gi-gobject, haskell-gi, haskell-gi-base, haskell-gi-overloading
+     , text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-cogl";
+       version = "1.0.2";
+       sha256 = "0y7inkzp3vxck4para77dzd4qczl3r61nv5y5hcyycmlpzlwfjzj";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ cogl ];
+       description = "COGL GObject bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) cogl;};
+
+  "gi-coglpango" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, cogl-pango, containers
+     , gi-cogl, gi-glib, gi-gobject, gi-pango, gi-pangocairo, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-coglpango";
+       version = "1.0.2";
+       sha256 = "0yx0nqnpkkx0wcbljx02ivwf9749d02xqpwpp2zck2cpc9ll7xca";
+       setupHaskellDepends = [
+         base Cabal gi-cogl gi-glib gi-gobject gi-pango gi-pangocairo
+         haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-cogl gi-glib gi-gobject gi-pango
+         gi-pangocairo haskell-gi haskell-gi-base haskell-gi-overloading
+         text transformers
+       ];
+       libraryPkgconfigDepends = [ cogl-pango ];
+       description = "Cogl Pango GObject bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {cogl-pango = null;};
+
   "gi-dbusmenu" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
      , gi-gobject, haskell-gi, haskell-gi-base, haskell-gi-overloading
@@ -105961,6 +107305,29 @@ self: {
        ];
      }) {inherit (pkgs) libdbusmenu;};
 
+  "gi-dbusmenu_0_4_10" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, haskell-gi, haskell-gi-base, haskell-gi-overloading
+     , libdbusmenu, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-dbusmenu";
+       version = "0.4.10";
+       sha256 = "05q3sijfsma2rinyw1rb7z4fphdqakbg18zlpf8jpv89c1329d3q";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ libdbusmenu ];
+       description = "Dbusmenu bindings";
+       license = lib.licenses.lgpl21Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) libdbusmenu;};
+
   "gi-dbusmenugtk3" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
      , gi-dbusmenu, gi-gdk, gi-gdkpixbuf, gi-glib, gi-gobject, gi-gtk
@@ -105988,6 +107355,34 @@ self: {
        ];
      }) {inherit (pkgs) gtk3; inherit (pkgs) libdbusmenu-gtk3;};
 
+  "gi-dbusmenugtk3_0_4_11" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
+     , gi-dbusmenu, gi-gdk, gi-gdkpixbuf, gi-glib, gi-gobject, gi-gtk
+     , gtk3, haskell-gi, haskell-gi-base, haskell-gi-overloading
+     , libdbusmenu-gtk3, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-dbusmenugtk3";
+       version = "0.4.11";
+       sha256 = "1ipq8irzqswpak6zip9ghpkvk29mwnym8d70md3an0idlq0gcnw6";
+       setupHaskellDepends = [
+         base Cabal gi-atk gi-dbusmenu gi-gdk gi-gdkpixbuf gi-glib
+         gi-gobject gi-gtk haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-atk gi-dbusmenu gi-gdk gi-gdkpixbuf
+         gi-glib gi-gobject gi-gtk haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gtk3 libdbusmenu-gtk3 ];
+       description = "DbusmenuGtk bindings";
+       license = lib.licenses.lgpl21Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) gtk3; inherit (pkgs) libdbusmenu-gtk3;};
+
   "gi-gdk" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
      , gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject, gi-pango, gtk3
@@ -106012,7 +107407,7 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) gtk3;};
 
-  "gi-gdk_4_0_3" = callPackage
+  "gi-gdk_4_0_4" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
      , gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject, gi-pango, gtk4
      , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
@@ -106020,8 +107415,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gdk";
-       version = "4.0.3";
-       sha256 = "1bpg4x0hl9kdh1phplk1j616rjzf9gby1g23vm9xg93xfmaafr89";
+       version = "4.0.4";
+       sha256 = "1ah515cakq6w9bbwq393xbpx326v9xincvhgihqsc67gjcqpbva4";
        setupHaskellDepends = [
          base Cabal gi-cairo gi-gdkpixbuf gi-gio gi-glib gi-gobject gi-pango
          haskell-gi
@@ -106058,6 +107453,28 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) gdk-pixbuf;};
 
+  "gi-gdkpixbuf_2_0_28" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gdk-pixbuf
+     , gi-gio, gi-glib, gi-gmodule, gi-gobject, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gdkpixbuf";
+       version = "2.0.28";
+       sha256 = "01fjx8nwy27mlhhh3p8qi1z8xcbzi7cs07x01hk8kxrmvd71a2pf";
+       setupHaskellDepends = [
+         base Cabal gi-gio gi-glib gi-gmodule gi-gobject haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gio gi-glib gi-gmodule gi-gobject
+         haskell-gi haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gdk-pixbuf ];
+       description = "GdkPixbuf bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) gdk-pixbuf;};
+
   "gi-gdkx11" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
      , gi-gdk, gi-gio, gi-gobject, gi-xlib, gtk3, haskell-gi
@@ -106080,15 +107497,15 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) gtk3;};
 
-  "gi-gdkx11_4_0_3" = callPackage
+  "gi-gdkx11_4_0_4" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
      , gi-gdk, gi-gio, gi-gobject, gi-xlib, gtk4-x11, haskell-gi
      , haskell-gi-base, haskell-gi-overloading, text, transformers
      }:
      mkDerivation {
        pname = "gi-gdkx11";
-       version = "4.0.3";
-       sha256 = "13m2dvab8hqwa7h648asjg3llvdnpwdf1rli9i44nb6n1dfk7jbv";
+       version = "4.0.4";
+       sha256 = "1bbwy8sqn642y0yv10l65p2f7zc3nb14mcdwfd2k3cqpmyyhq0ns";
        setupHaskellDepends = [
          base Cabal gi-cairo gi-gdk gi-gio gi-gobject gi-xlib haskell-gi
        ];
@@ -106127,6 +107544,31 @@ self: {
        ];
      }) {inherit (pkgs) libgit2-glib;};
 
+  "gi-ggit_1_0_11" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
+     , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, libgit2-glib, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-ggit";
+       version = "1.0.11";
+       sha256 = "06hkq87q8a69ini8drwld4pd8z26mlysk9vkigpkigwlbsizjjm7";
+       setupHaskellDepends = [
+         base Cabal gi-gio gi-glib gi-gobject haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ libgit2-glib ];
+       description = "libgit2-glib bindings";
+       license = lib.licenses.lgpl21Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) libgit2-glib;};
+
   "gi-gio" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
      , gi-gobject, glib, haskell-gi, haskell-gi-base
@@ -106146,6 +107588,26 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) glib;};
 
+  "gi-gio_2_0_29" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, glib, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gio";
+       version = "2.0.29";
+       sha256 = "14kh1qdayi55flf2108ivq7sc1k9qd8dish19jbdij198hsjgria";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ glib ];
+       description = "Gio bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) glib;};
+
   "gi-gio-hs-list-model" = callPackage
     ({ mkDerivation, base, containers, gi-gio, gi-gobject
      , haskell-gi-base
@@ -106180,6 +107642,26 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) gobject-introspection;};
 
+  "gi-girepository_1_0_25" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, gobject-introspection, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-girepository";
+       version = "1.0.25";
+       sha256 = "0xpydz66vmb8f46ql2h8rq486i4pf5nbjm98839iyhsv653plxp0";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gobject-introspection ];
+       description = "GIRepository (gobject-introspection) bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) gobject-introspection;};
+
   "gi-glib" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, glib
      , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
@@ -106199,6 +107681,26 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) glib;};
 
+  "gi-glib_2_0_26" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, glib
+     , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gi-glib";
+       version = "2.0.26";
+       sha256 = "0i38ch8giqs92kkfzyw4wlz8y0r5kn2h94b6y33nj4ja3ggrg1qm";
+       setupHaskellDepends = [ base Cabal haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ glib ];
+       description = "GLib bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) glib;};
+
   "gi-gmodule" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
      , gmodule, haskell-gi, haskell-gi-base, haskell-gi-overloading
@@ -106218,6 +107720,26 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {gmodule = null;};
 
+  "gi-gmodule_2_0_2" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gmodule, haskell-gi, haskell-gi-base, haskell-gi-overloading
+     , text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gmodule";
+       version = "2.0.2";
+       sha256 = "1jbplvicc6jsjcz8gqkiq71b8cx57m010wbq2ilirv4rif90ggnx";
+       setupHaskellDepends = [ base Cabal gi-glib haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gmodule ];
+       description = "GModule bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {gmodule = null;};
+
   "gi-gobject" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib, glib
      , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
@@ -106237,6 +107759,26 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) glib;};
 
+  "gi-gobject_2_0_27" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib, glib
+     , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gi-gobject";
+       version = "2.0.27";
+       sha256 = "1xfw8jg81pbhgb20kw2jvhbxcs8d0sl4zf3dsar9sy7gl4lgwh0g";
+       setupHaskellDepends = [ base Cabal gi-glib haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ glib ];
+       description = "GObject bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) glib;};
+
   "gi-graphene" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
      , gi-gobject, graphene-gobject, haskell-gi, haskell-gi-base
@@ -106258,6 +107800,27 @@ self: {
        broken = true;
      }) {graphene-gobject = null;};
 
+  "gi-graphene_1_0_4" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, graphene-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-graphene";
+       version = "1.0.4";
+       sha256 = "0c1dh5jzmqm5ysv296c37ma8miscpba1z1kq7b4l9sfmnhi4blsa";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ graphene-gobject ];
+       description = "Graphene bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {graphene-gobject = null;};
+
   "gi-gsk" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
      , gi-gdk, gi-gdkpixbuf, gi-glib, gi-gobject, gi-graphene, gi-pango
@@ -106266,8 +107829,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gsk";
-       version = "4.0.3";
-       sha256 = "16qbmjshl8nz5xkkzas7c4a0w996mbzqkjn1w8crc1fz1v27ckg2";
+       version = "4.0.4";
+       sha256 = "0y2gpxy4bl3k1br3d6lm7javzw1q5r499lqhas028gawbfba6s4x";
        setupHaskellDepends = [
          base Cabal gi-cairo gi-gdk gi-gdkpixbuf gi-glib gi-gobject
          gi-graphene gi-pango haskell-gi
@@ -106302,6 +107865,26 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs.gst_all_1) gstreamer;};
 
+  "gi-gst_1_0_25" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, gstreamer, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gst";
+       version = "1.0.25";
+       sha256 = "1rx7arlghfvkh4ccl5dd40a108d4kmr2fmwrrgl22z7k2xgl0wqp";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gstreamer ];
+       description = "GStreamer bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs.gst_all_1) gstreamer;};
+
   "gi-gstaudio" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
      , gi-gobject, gi-gst, gi-gstbase, gst-plugins-base, haskell-gi
@@ -106323,6 +107906,28 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs.gst_all_1) gst-plugins-base;};
 
+  "gi-gstaudio_1_0_24" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, gi-gst, gi-gstbase, gst-plugins-base, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gstaudio";
+       version = "1.0.24";
+       sha256 = "09xfss2q4bywnidfqyq57zdma3qwhx7sl40qg7qdqhma36axxryk";
+       setupHaskellDepends = [
+         base Cabal gi-glib gi-gobject gi-gst gi-gstbase haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject gi-gst gi-gstbase
+         haskell-gi haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gst-plugins-base ];
+       description = "GStreamerAudio bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs.gst_all_1) gst-plugins-base;};
+
   "gi-gstbase" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
      , gi-gobject, gi-gst, gst-plugins-base, haskell-gi, haskell-gi-base
@@ -106344,6 +107949,28 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs.gst_all_1) gst-plugins-base;};
 
+  "gi-gstbase_1_0_25" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, gi-gst, gst-plugins-base, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gstbase";
+       version = "1.0.25";
+       sha256 = "179qi645giqkfdrig07l54wn2dj5wicjfhyy7m9132imxh8czcg9";
+       setupHaskellDepends = [
+         base Cabal gi-glib gi-gobject gi-gst haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject gi-gst haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gst-plugins-base ];
+       description = "GStreamerBase bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs.gst_all_1) gst-plugins-base;};
+
   "gi-gstpbutils" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
      , gi-gobject, gi-gst, gi-gstaudio, gi-gsttag, gi-gstvideo
@@ -106352,8 +107979,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gstpbutils";
-       version = "1.0.23";
-       sha256 = "1j7ml51gnpkcir75wybx93qgs4rll3i5vlhzbqk26xhqkbfzqsf7";
+       version = "1.0.24";
+       sha256 = "18sxnrx5wbr1fbmvrjk6v09nc5q2xxm36vmlbd331314fpr0ic7m";
        setupHaskellDepends = [
          base Cabal gi-glib gi-gobject gi-gst gi-gstaudio gi-gsttag
          gi-gstvideo haskell-gi
@@ -106376,8 +108003,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gsttag";
-       version = "1.0.23";
-       sha256 = "17nwiin58kgl3psbwf2ymy2pz87crlasllg1wsabmcbv1dj38sgi";
+       version = "1.0.24";
+       sha256 = "0l7h2r2q3sn8li1qq7bidplh1vic9w4054qnrimxhpndkcd8gxsk";
        setupHaskellDepends = [
          base Cabal gi-glib gi-gobject gi-gst gi-gstbase haskell-gi
        ];
@@ -106413,6 +108040,28 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs.gst_all_1) gst-plugins-base;};
 
+  "gi-gstvideo_1_0_25" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, gi-gst, gi-gstbase, gst-plugins-base, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gstvideo";
+       version = "1.0.25";
+       sha256 = "1zkzs7qkzfp8ixkagbqkmgylla7msdjg83sdf2qwmgcmzfk480c7";
+       setupHaskellDepends = [
+         base Cabal gi-glib gi-gobject gi-gst gi-gstbase haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject gi-gst gi-gstbase
+         haskell-gi haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gst-plugins-base ];
+       description = "GStreamerVideo bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs.gst_all_1) gst-plugins-base;};
+
   "gi-gtk" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
      , gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject
@@ -106437,7 +108086,7 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) gtk3;};
 
-  "gi-gtk_4_0_4" = callPackage
+  "gi-gtk_4_0_5" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
      , gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject
      , gi-graphene, gi-gsk, gi-pango, gtk4, haskell-gi, haskell-gi-base
@@ -106445,8 +108094,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gtk";
-       version = "4.0.4";
-       sha256 = "18c27hnfyyn3ajx73zy1laflv95xjafdm249ra6z9nynx9gqws6c";
+       version = "4.0.5";
+       sha256 = "04ph4adisr51j5dy2lpp0kxp06m332dfxmq92rnq3w0l810z2hi8";
        setupHaskellDepends = [
          base Cabal gi-atk gi-cairo gi-gdk gi-gdkpixbuf gi-gio gi-glib
          gi-gobject gi-graphene gi-gsk gi-pango haskell-gi
@@ -106514,8 +108163,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gtk-hs";
-       version = "0.3.10";
-       sha256 = "00vhnkblvvq7qjs65rmfy0q2rs388954p6yd1lga2y79lc2xr6fw";
+       version = "0.3.12";
+       sha256 = "1ph9fq2lwa16pq68vkmp2843n0hjx89zfjmxs80lsv41bkvza8qy";
        libraryHaskellDepends = [
          base base-compat containers gi-gdk gi-gdkpixbuf gi-glib gi-gobject
          gi-gtk haskell-gi-base mtl text transformers
@@ -106524,6 +108173,27 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {};
 
+  "gi-gtk-layer-shell" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gdk
+     , gi-gtk, gtk-layer-shell, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gtk-layer-shell";
+       version = "0.1.2";
+       sha256 = "0sdf71nqk3yxpyh7qdk65glg97nwc2almk852rqjlgjnlmjnyyx0";
+       setupHaskellDepends = [ base Cabal gi-gdk gi-gtk haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gdk gi-gtk haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gtk-layer-shell ];
+       description = "gtk-layer-shell bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) gtk-layer-shell;};
+
   "gi-gtkosxapplication" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-gdkpixbuf
      , gi-gobject, gi-gtk, gtk-mac-integration-gtk3, haskell-gi
@@ -106597,24 +108267,49 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) gtksourceview3;};
 
+  "gi-gtksource_3_0_25" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
+     , gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject
+     , gi-gtk, gi-pango, gtksourceview3, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gtksource";
+       version = "3.0.25";
+       sha256 = "0fxfl1gc75ffp7h1dmqwig681zw578rplhpb87bhhb811sw11ibd";
+       setupHaskellDepends = [
+         base Cabal gi-atk gi-cairo gi-gdk gi-gdkpixbuf gi-gio gi-glib
+         gi-gobject gi-gtk gi-pango haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-atk gi-cairo gi-gdk gi-gdkpixbuf
+         gi-gio gi-glib gi-gobject gi-gtk gi-pango haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gtksourceview3 ];
+       description = "GtkSource bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) gtksourceview3;};
+
   "gi-handy" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
-     , gi-gdk, gi-gio, gi-glib, gi-gobject, gi-gtk, gi-pango, haskell-gi
-     , haskell-gi-base, haskell-gi-overloading, libhandy, text
-     , transformers
+     , gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject, gi-gtk
+     , gi-pango, haskell-gi, haskell-gi-base, haskell-gi-overloading
+     , libhandy, text, transformers
      }:
      mkDerivation {
        pname = "gi-handy";
-       version = "0.0.8";
-       sha256 = "1k7czb0gszjif2ynz9p7r765ims5m3q5kb9npf97psw88zq6l965";
+       version = "1.0.1";
+       sha256 = "0i8lvwb4kzfnqnlj7bdy4pvif4hhaxpdkn2rga3i8l78cmm8y4kh";
        setupHaskellDepends = [
-         base Cabal gi-atk gi-gdk gi-gio gi-glib gi-gobject gi-gtk gi-pango
-         haskell-gi
+         base Cabal gi-atk gi-gdk gi-gdkpixbuf gi-gio gi-glib gi-gobject
+         gi-gtk gi-pango haskell-gi
        ];
        libraryHaskellDepends = [
-         base bytestring containers gi-atk gi-gdk gi-gio gi-glib gi-gobject
-         gi-gtk gi-pango haskell-gi haskell-gi-base haskell-gi-overloading
-         text transformers
+         base bytestring containers gi-atk gi-gdk gi-gdkpixbuf gi-gio
+         gi-glib gi-gobject gi-gtk gi-pango haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
        ];
        libraryPkgconfigDepends = [ libhandy ];
        description = "libhandy bindings";
@@ -106642,6 +108337,26 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) harfbuzz; harfbuzz-gobject = null;};
 
+  "gi-harfbuzz_0_0_5" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, harfbuzz, harfbuzz-gobject, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-harfbuzz";
+       version = "0.0.5";
+       sha256 = "1kngcm03596cqz4djll1snmif2wdpkih0awkavcl2m63xcd86m4z";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ harfbuzz harfbuzz-gobject ];
+       description = "HarfBuzz bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) harfbuzz; harfbuzz-gobject = null;};
+
   "gi-ibus" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
      , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
@@ -106666,6 +108381,31 @@ self: {
        ];
      }) {inherit (pkgs) ibus;};
 
+  "gi-ibus_1_5_4" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
+     , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, ibus, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-ibus";
+       version = "1.5.4";
+       sha256 = "0lrczkck1w0pydzsrjlf25m6pxri1kjd9hw7rz1wis36ahqvhbvr";
+       setupHaskellDepends = [
+         base Cabal gi-gio gi-glib gi-gobject haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ ibus ];
+       description = "IBus bindings";
+       license = lib.licenses.lgpl21Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) ibus;};
+
   "gi-javascriptcore" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
      , gi-gobject, haskell-gi, haskell-gi-base, haskell-gi-overloading
@@ -106688,6 +108428,52 @@ self: {
        ];
      }) {inherit (pkgs) webkitgtk;};
 
+  "gi-javascriptcore_4_0_24" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, haskell-gi, haskell-gi-base, haskell-gi-overloading
+     , text, transformers, webkitgtk
+     }:
+     mkDerivation {
+       pname = "gi-javascriptcore";
+       version = "4.0.24";
+       sha256 = "1jr7yp6hxcp2vqaa0s320hqhdfaflyby6rvgb2pfm9qs1dqzafsn";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ webkitgtk ];
+       description = "JavaScriptCore bindings";
+       license = lib.licenses.lgpl21Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) webkitgtk;};
+
+  "gi-json" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
+     , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, json-glib, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-json";
+       version = "1.0.2";
+       sha256 = "00qxmkdr9rl77aimfqk2s8m56anpy4fcn0b6m2k5dr4f9xf1i4nq";
+       setupHaskellDepends = [
+         base Cabal gi-gio gi-glib gi-gobject haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ json-glib ];
+       description = "JSON GObject bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) json-glib;};
+
   "gi-notify" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-gdkpixbuf
      , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
@@ -106709,6 +108495,28 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) libnotify;};
 
+  "gi-notify_0_7_24" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gdkpixbuf
+     , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, libnotify, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-notify";
+       version = "0.7.24";
+       sha256 = "1dgjj1nqy2b37si8y5g5m12nrbqkfx8z6hir0gsvymfkbzfcx7j1";
+       setupHaskellDepends = [
+         base Cabal gi-gdkpixbuf gi-glib gi-gobject haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gdkpixbuf gi-glib gi-gobject
+         haskell-gi haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ libnotify ];
+       description = "Libnotify bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) libnotify;};
+
   "gi-ostree" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
      , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
@@ -106733,6 +108541,31 @@ self: {
        ];
      }) {inherit (pkgs) ostree;};
 
+  "gi-ostree_1_0_15" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
+     , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, ostree, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-ostree";
+       version = "1.0.15";
+       sha256 = "1lrblmsn91an1mqv4iml235bbwx1yz0llhyzf62jr65krs11jhwd";
+       setupHaskellDepends = [
+         base Cabal gi-gio gi-glib gi-gobject haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ ostree ];
+       description = "OSTree bindings";
+       license = lib.licenses.lgpl21Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) ostree;};
+
   "gi-pango" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, cairo, containers
      , gi-glib, gi-gobject, gi-harfbuzz, haskell-gi, haskell-gi-base
@@ -106758,6 +108591,32 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) cairo; inherit (pkgs) pango;};
 
+  "gi-pango_1_0_25" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, cairo, containers
+     , gi-glib, gi-gobject, gi-harfbuzz, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, pango, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-pango";
+       version = "1.0.25";
+       sha256 = "1m1n9jcpr8j4k7212yv4asm62w0pp9wlikl164xfgv8yfa3gh7s0";
+       setupHaskellDepends = [
+         base Cabal gi-glib gi-gobject gi-harfbuzz haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject gi-harfbuzz
+         haskell-gi haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ cairo pango ];
+       preCompileBuildDriver = ''
+         PKG_CONFIG_PATH+=":${cairo}/lib/pkgconfig"
+         setupCompileFlags+=" $(pkg-config --libs cairo-gobject)"
+       '';
+       description = "Pango bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) cairo; inherit (pkgs) pango;};
+
   "gi-pangocairo" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, cairo, containers
      , gi-cairo, gi-glib, gi-gobject, gi-pango, haskell-gi
@@ -106784,6 +108643,33 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) cairo; inherit (pkgs) pango;};
 
+  "gi-pangocairo_1_0_26" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, cairo, containers
+     , gi-cairo, gi-glib, gi-gobject, gi-pango, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, pango, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gi-pangocairo";
+       version = "1.0.26";
+       sha256 = "0alm4v7dl44pv3ydw5fg4x6w6yzghjscnzd1qi6jbv1pqrv0f3xm";
+       setupHaskellDepends = [
+         base Cabal gi-cairo gi-glib gi-gobject gi-pango haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-cairo gi-glib gi-gobject gi-pango
+         haskell-gi haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ cairo pango ];
+       preCompileBuildDriver = ''
+         PKG_CONFIG_PATH+=":${cairo}/lib/pkgconfig"
+         setupCompileFlags+=" $(pkg-config --libs cairo-gobject)"
+       '';
+       description = "PangoCairo bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) cairo; inherit (pkgs) pango;};
+
   "gi-poppler" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
      , gi-gio, gi-glib, gi-gobject, haskell-gi, haskell-gi-base
@@ -106805,6 +108691,54 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) poppler_gi;};
 
+  "gi-poppler_0_18_26" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
+     , gi-gio, gi-glib, gi-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, poppler_gi, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-poppler";
+       version = "0.18.26";
+       sha256 = "1wxm7fx1xjj2a332mh2sr1pz994aici888x69a197ccnn8p3g75k";
+       setupHaskellDepends = [
+         base Cabal gi-cairo gi-gio gi-glib gi-gobject haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-cairo gi-gio gi-glib gi-gobject
+         haskell-gi haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ poppler_gi ];
+       description = "Poppler bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) poppler_gi;};
+
+  "gi-rsvg" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
+     , gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, librsvg, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gi-rsvg";
+       version = "2.0.2";
+       sha256 = "1c9rmawsz12i6rlq8s3mhsj8q5a7q3809y8bf1yq6nzvzkm8gsrj";
+       setupHaskellDepends = [
+         base Cabal gi-cairo gi-gdkpixbuf gi-gio gi-glib gi-gobject
+         haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-cairo gi-gdkpixbuf gi-gio gi-glib
+         gi-gobject haskell-gi haskell-gi-base haskell-gi-overloading text
+         transformers
+       ];
+       libraryPkgconfigDepends = [ librsvg ];
+       description = "librsvg bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) librsvg;};
+
   "gi-secret" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
      , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
@@ -106826,6 +108760,28 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) libsecret;};
 
+  "gi-secret_0_0_14" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
+     , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, libsecret, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-secret";
+       version = "0.0.14";
+       sha256 = "1n03lk4x7inkq68z9krv3jgkpjsya8jjyim09qzb83cj77wb67m8";
+       setupHaskellDepends = [
+         base Cabal gi-gio gi-glib gi-gobject haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ libsecret ];
+       description = "Libsecret bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) libsecret;};
+
   "gi-soup" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
      , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
@@ -106847,6 +108803,28 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) libsoup;};
 
+  "gi-soup_2_4_25" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
+     , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, libsoup, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-soup";
+       version = "2.4.25";
+       sha256 = "1rpl5q9xwfbbhzg7220855mb15qpdpx668gs7lxj7w26arp8xzcs";
+       setupHaskellDepends = [
+         base Cabal gi-gio gi-glib gi-gobject haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ libsoup ];
+       description = "Libsoup bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) libsoup;};
+
   "gi-vips" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
      , gi-gobject, haskell-gi, haskell-gi-base, haskell-gi-overloading
@@ -106854,8 +108832,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-vips";
-       version = "8.0.1";
-       sha256 = "1iq30mbyw638srpna9db1l039iz30zglxxfjysh0gmkrij4ky7kv";
+       version = "8.0.2";
+       sha256 = "055vlgxnvvdsq86d09jcv7d7fp0msw0gg95fm2vkpx3n1zx00z6j";
        setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
        libraryHaskellDepends = [
          base bytestring containers gi-glib gi-gobject haskell-gi
@@ -106895,6 +108873,34 @@ self: {
        ];
      }) {vte_291 = pkgs.vte;};
 
+  "gi-vte_2_91_29" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
+     , gi-gdk, gi-gio, gi-glib, gi-gobject, gi-gtk, gi-pango, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, text, transformers
+     , vte_291
+     }:
+     mkDerivation {
+       pname = "gi-vte";
+       version = "2.91.29";
+       sha256 = "15c1vmkk4h723qjvmq30rcqfk5b5kihcjdqmncmgshi2qv80aa2q";
+       setupHaskellDepends = [
+         base Cabal gi-atk gi-gdk gi-gio gi-glib gi-gobject gi-gtk gi-pango
+         haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-atk gi-gdk gi-gio gi-glib gi-gobject
+         gi-gtk gi-pango haskell-gi haskell-gi-base haskell-gi-overloading
+         text transformers
+       ];
+       libraryPkgconfigDepends = [ vte_291 ];
+       description = "Vte bindings";
+       license = lib.licenses.lgpl21Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       hydraPlatforms = lib.platforms.none;
+     }) {vte_291 = pkgs.vte;};
+
   "gi-webkit" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
      , gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject
@@ -106945,6 +108951,34 @@ self: {
        ];
      }) {inherit (pkgs) webkitgtk;};
 
+  "gi-webkit2_4_0_28" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
+     , gi-cairo, gi-gdk, gi-gio, gi-glib, gi-gobject, gi-gtk
+     , gi-javascriptcore, gi-soup, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers, webkitgtk
+     }:
+     mkDerivation {
+       pname = "gi-webkit2";
+       version = "4.0.28";
+       sha256 = "0k6y33vg6641a4qis2ypnj8xms40a203y0as299rsj0l5rk9ykaw";
+       setupHaskellDepends = [
+         base Cabal gi-atk gi-cairo gi-gdk gi-gio gi-glib gi-gobject gi-gtk
+         gi-javascriptcore gi-soup haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-atk gi-cairo gi-gdk gi-gio gi-glib
+         gi-gobject gi-gtk gi-javascriptcore gi-soup haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ webkitgtk ];
+       description = "WebKit2 bindings";
+       license = lib.licenses.lgpl21Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) webkitgtk;};
+
   "gi-webkit2webextension" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
      , gi-gobject, gi-gtk, gi-javascriptcore, gi-soup, haskell-gi
@@ -106972,6 +109006,34 @@ self: {
        ];
      }) {inherit (pkgs) webkitgtk;};
 
+  "gi-webkit2webextension_4_0_27" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
+     , gi-gobject, gi-gtk, gi-javascriptcore, gi-soup, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, text, transformers
+     , webkitgtk
+     }:
+     mkDerivation {
+       pname = "gi-webkit2webextension";
+       version = "4.0.27";
+       sha256 = "1m00h1yrnq6b5h635rpwhcdhvls3rg6lcp5gq3n22rqr131fsrr9";
+       setupHaskellDepends = [
+         base Cabal gi-gio gi-gobject gi-gtk gi-javascriptcore gi-soup
+         haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gio gi-gobject gi-gtk
+         gi-javascriptcore gi-soup haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ webkitgtk ];
+       description = "WebKit2-WebExtension bindings";
+       license = lib.licenses.lgpl21Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) webkitgtk;};
+
   "gi-wnck" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
      , gi-gdk, gi-gdkpixbuf, gi-gobject, gi-gtk, haskell-gi
@@ -106998,6 +109060,33 @@ self: {
        ];
      }) {inherit (pkgs) libwnck;};
 
+  "gi-wnck_3_0_11" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
+     , gi-gdk, gi-gdkpixbuf, gi-gobject, gi-gtk, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, libwnck, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gi-wnck";
+       version = "3.0.11";
+       sha256 = "0jhsr7skjn7i3klnfm9z2fg2gfl5mqsp7hd8ajlkjv7z8xk25j1w";
+       setupHaskellDepends = [
+         base Cabal gi-atk gi-gdk gi-gdkpixbuf gi-gobject gi-gtk haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-atk gi-gdk gi-gdkpixbuf gi-gobject
+         gi-gtk haskell-gi haskell-gi-base haskell-gi-overloading text
+         transformers
+       ];
+       libraryPkgconfigDepends = [ libwnck ];
+       description = "Wnck bindings";
+       license = lib.licenses.lgpl21Only;
+       platforms = [
+         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
+       ];
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) libwnck;};
+
   "gi-xlib" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, haskell-gi
      , haskell-gi-base, haskell-gi-overloading, text, transformers
@@ -107017,6 +109106,26 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) xlibsWrapper;};
 
+  "gi-xlib_2_0_11" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, text, transformers
+     , xlibsWrapper
+     }:
+     mkDerivation {
+       pname = "gi-xlib";
+       version = "2.0.11";
+       sha256 = "0l6xr26asmy3rvzi5lazkfpik1n41v9a7bg2pypssc26130amp1f";
+       setupHaskellDepends = [ base Cabal haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ xlibsWrapper ];
+       description = "xlib bindings";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) xlibsWrapper;};
+
   "giak" = callPackage
     ({ mkDerivation, async, base, bytestring, Cabal, containers
      , directory, extra, filemanip, filepath, mtl, process, semigroups
@@ -107146,6 +109255,8 @@ self: {
        ];
        description = "Consistent and safe JSON APIs with snap-core and (by default) postgresql-simple";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "ginsu" = callPackage
@@ -107331,8 +109442,8 @@ self: {
      }:
      mkDerivation {
        pname = "git-annex";
-       version = "8.20211028";
-       sha256 = "0bff1bchp60hbslb9yaagvd7hym26w0c3gkkssm7sildwqazwpng";
+       version = "8.20211123";
+       sha256 = "0i9dhh601axv0b1i56yzn6jnfp160z530fp9pd557kpq4nbvg5kl";
        configureFlags = [
          "-fassistant" "-f-benchmark" "-fdbus" "-f-debuglocks" "-fmagicmime"
          "-fnetworkbsd" "-fpairing" "-fproduction" "-fs3" "-ftorrentparser"
@@ -107862,6 +109973,8 @@ self: {
        pname = "github";
        version = "0.27";
        sha256 = "0vlqsdhhjnfw9wk5vn1i8cmwa45vgczhz4nn46mwgs600xfn94am";
+       revision = "1";
+       editedCabalFile = "02424a74kjzmwl0nwc4gl7xg0cgdsbspwj3mzzzgx5xxlh3vi212";
        libraryHaskellDepends = [
          aeson base base-compat base16-bytestring binary binary-instances
          bytestring containers cryptohash-sha1 deepseq deepseq-generics
@@ -107877,8 +109990,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Access to the GitHub API, v3";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "github-backup" = callPackage
@@ -107996,7 +110107,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "github-rest_1_1_1" = callPackage
+  "github-rest_1_1_2" = callPackage
     ({ mkDerivation, aeson, aeson-qq, base, bytestring, http-client
      , http-client-tls, http-types, jwt, mtl, scientific, tasty
      , tasty-golden, tasty-hunit, tasty-quickcheck, text, time
@@ -108004,8 +110115,8 @@ self: {
      }:
      mkDerivation {
        pname = "github-rest";
-       version = "1.1.1";
-       sha256 = "1wf4gs3324h4pfal5qcpb65lfpm4kpmxmv4fiv6asrvhas9cwglm";
+       version = "1.1.2";
+       sha256 = "139ysq1m1ndy6z1znfd1np25ynxankkfm6xmwabhdr7yiqzi2v1b";
        libraryHaskellDepends = [
          aeson base bytestring http-client http-client-tls http-types jwt
          mtl scientific text time transformers unliftio unliftio-core
@@ -108189,8 +110300,8 @@ self: {
      }:
      mkDerivation {
        pname = "gitit";
-       version = "0.15.0.0";
-       sha256 = "05kz7dxmiabp0gkivn5ngmn3xah3h7a14a421qw6nx2ld1cr9vgf";
+       version = "0.15.1.0";
+       sha256 = "1mnyk7gpi6hxvyh9cmc7mzlvx5m0kj102b0fq5xzljzb0bvh7wp2";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -112702,8 +114813,8 @@ self: {
      }:
      mkDerivation {
        pname = "gothic";
-       version = "0.1.7";
-       sha256 = "042kfadc9gvbdrcbh8z6hfb97jy2nrgspl88ii1lwfxzfy26j1vd";
+       version = "0.1.8";
+       sha256 = "1gicw2g86xz68a8qvj0p2nxw42rwibr0qqi53nily5yvlc40v4qd";
        libraryHaskellDepends = [
          aeson base binary bytestring connection exceptions hashable
          http-client http-client-tls http-conduit http-types lens lens-aeson
@@ -114099,27 +116210,6 @@ self: {
 
   "greskell" = callPackage
     ({ mkDerivation, aeson, base, bytestring, doctest, doctest-discover
-     , exceptions, greskell-core, hashable, hint, hspec, semigroups
-     , text, transformers, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "greskell";
-       version = "1.2.0.1";
-       sha256 = "13hshwnhl0wdnnkqamgdgw2awsh1pynwfg35c34m5fcphbmxwmms";
-       libraryHaskellDepends = [
-         aeson base exceptions greskell-core hashable semigroups text
-         transformers unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson base bytestring doctest doctest-discover greskell-core hint
-         hspec text unordered-containers
-       ];
-       description = "Haskell binding for Gremlin graph query language";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "greskell_1_2_0_2" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, doctest, doctest-discover
      , exceptions, greskell-core, hashable, hint, hspec, hspec-discover
      , semigroups, text, transformers, unordered-containers, vector
      }:
@@ -114138,7 +116228,6 @@ self: {
        testToolDepends = [ doctest-discover hspec-discover ];
        description = "Haskell binding for Gremlin graph query language";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "greskell-core" = callPackage
@@ -114148,28 +116237,6 @@ self: {
      }:
      mkDerivation {
        pname = "greskell-core";
-       version = "0.1.3.6";
-       sha256 = "1mfdi9sr0ic15bck6dv1k70cd0lnvimap9lqyhim2piz0f8jr53k";
-       libraryHaskellDepends = [
-         aeson base containers hashable scientific semigroups text
-         unordered-containers uuid vector
-       ];
-       testHaskellDepends = [
-         aeson base bytestring doctest doctest-discover hspec QuickCheck
-         text unordered-containers vector
-       ];
-       testToolDepends = [ doctest doctest-discover hspec-discover ];
-       description = "Haskell binding for Gremlin graph query language - core data types and tools";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "greskell-core_0_1_3_7" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, doctest
-     , doctest-discover, hashable, hspec, hspec-discover, QuickCheck
-     , scientific, semigroups, text, unordered-containers, uuid, vector
-     }:
-     mkDerivation {
-       pname = "greskell-core";
        version = "0.1.3.7";
        sha256 = "1lffgrc4q9iwfdgn7qfxyhk459x47fl2fg6rvgqr4jqz1xp7x9cy";
        libraryHaskellDepends = [
@@ -114183,33 +116250,10 @@ self: {
        testToolDepends = [ doctest-discover hspec-discover ];
        description = "Haskell binding for Gremlin graph query language - core data types and tools";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "greskell-websocket" = callPackage
     ({ mkDerivation, aeson, async, base, base64-bytestring, bytestring
-     , greskell-core, hashtables, hspec, safe-exceptions, stm, text
-     , unordered-containers, uuid, vector, websockets
-     }:
-     mkDerivation {
-       pname = "greskell-websocket";
-       version = "0.1.2.5";
-       sha256 = "0ybrfr4jj2bm8bdi1yr1j1nvfws64yi54gji4mrw46vrpqnsbbn0";
-       libraryHaskellDepends = [
-         aeson async base base64-bytestring bytestring greskell-core
-         hashtables safe-exceptions stm text unordered-containers uuid
-         vector websockets
-       ];
-       testHaskellDepends = [
-         aeson base bytestring greskell-core hspec unordered-containers uuid
-         vector
-       ];
-       description = "Haskell client for Gremlin Server using WebSocket serializer";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "greskell-websocket_0_1_2_6" = callPackage
-    ({ mkDerivation, aeson, async, base, base64-bytestring, bytestring
      , greskell-core, hashtables, hspec, hspec-discover, safe-exceptions
      , stm, text, unordered-containers, uuid, vector, websockets
      }:
@@ -114229,7 +116273,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Haskell client for Gremlin Server using WebSocket serializer";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "grid" = callPackage
@@ -116055,15 +118098,15 @@ self: {
      , bz2, conduit, conduit-extra, containers, criterion
      , crypto-cipher-types, cryptonite, errors, hashable
      , incremental-parser, ixset-typed, lens, memory, monad-loops
-     , nettle, network, network-uri, openpgp-asciiarmor, prettyprinter
+     , nettle, network-uri, openpgp-asciiarmor, prettyprinter
      , QuickCheck, quickcheck-instances, resourcet, split, tasty
      , tasty-hunit, tasty-quickcheck, text, time, time-locale-compat
      , transformers, unliftio-core, unordered-containers, zlib
      }:
      mkDerivation {
        pname = "hOpenPGP";
-       version = "2.9.5";
-       sha256 = "1wzvlk7my7a8rwmsw1glw2dlph3b2hwyz2jkcjr0hd1jj8ywksnx";
+       version = "2.9.7";
+       sha256 = "1fix387wi8fqdav4zzczc3dyzcwrnb4zvpq72prs5cs7sc609w3z";
        libraryHaskellDepends = [
          aeson asn1-encoding attoparsec base base16-bytestring bifunctors
          binary binary-conduit bytestring bz2 conduit conduit-extra
@@ -116074,21 +118117,20 @@ self: {
          unordered-containers zlib
        ];
        testHaskellDepends = [
-         aeson asn1-encoding attoparsec base base16-bytestring bifunctors
-         binary binary-conduit bytestring bz2 conduit conduit-extra
-         containers crypto-cipher-types cryptonite errors hashable
-         incremental-parser ixset-typed lens memory monad-loops nettle
-         network network-uri prettyprinter QuickCheck quickcheck-instances
-         resourcet split tasty tasty-hunit tasty-quickcheck text time
-         time-locale-compat transformers unliftio-core unordered-containers
-         zlib
+         aeson attoparsec base base16-bytestring bifunctors binary
+         binary-conduit bytestring bz2 conduit conduit-extra containers
+         crypto-cipher-types cryptonite errors hashable incremental-parser
+         ixset-typed lens memory monad-loops nettle network-uri
+         prettyprinter QuickCheck quickcheck-instances resourcet split tasty
+         tasty-hunit tasty-quickcheck text time time-locale-compat
+         transformers unliftio-core unordered-containers zlib
        ];
        benchmarkHaskellDepends = [
-         aeson base base16-bytestring bifunctors binary binary-conduit
-         bytestring bz2 conduit conduit-extra containers criterion
-         crypto-cipher-types cryptonite errors hashable incremental-parser
-         ixset-typed lens memory monad-loops nettle network network-uri
-         openpgp-asciiarmor prettyprinter resourcet split text time
+         aeson attoparsec base base16-bytestring bifunctors binary
+         binary-conduit bytestring bz2 conduit conduit-extra containers
+         criterion crypto-cipher-types cryptonite errors hashable
+         incremental-parser ixset-typed lens memory monad-loops nettle
+         network-uri prettyprinter resourcet split text time
          time-locale-compat transformers unliftio-core unordered-containers
          zlib
        ];
@@ -117445,8 +119487,8 @@ self: {
        pname = "haddock-library";
        version = "1.10.0";
        sha256 = "15ak06q8yp11xz1hwr0sg2jqi3r78p1n89ik05hicqvxl3awf1pq";
-       revision = "1";
-       editedCabalFile = "1r2mz68415wq3l194ryki8r8p7n7h21033m1ixrpd259s4yq6zdp";
+       revision = "2";
+       editedCabalFile = "12kw6y105fyilp2aby2vwzwgmnr3h2yrahhm1v34anfv8psjq1r0";
        libraryHaskellDepends = [
          base bytestring containers parsec text transformers
        ];
@@ -118458,8 +120500,8 @@ self: {
      }:
      mkDerivation {
        pname = "hakyll-shortcut-links";
-       version = "0.1.0.1";
-       sha256 = "0dk30mw5jk14my7b3j5s0z89z2bwc6a6yxc7sl1c1k71zl56zm39";
+       version = "0.1.0.2";
+       sha256 = "06wwp9vwxvhizhj8jvz77p5zycaqyjpm2dbh1k6m90hdlpzi0vcz";
        libraryHaskellDepends = [
          base hakyll mtl pandoc-types parsec shortcut-links text
        ];
@@ -118498,8 +120540,8 @@ self: {
        pname = "hal";
        version = "0.4.8";
        sha256 = "1j3prf81ni5v003byl992dxvvkv8prgmsqmnpkwpd0365ilxyv2y";
-       revision = "1";
-       editedCabalFile = "0jz54lz3wd05b2vabwlid31pyhvjrwbdr35nbqb9kdf13jfdgahr";
+       revision = "2";
+       editedCabalFile = "13cxps4cxwralwvn1fvg5jwdf4j0lkza147h97dmsxl56lz1ar0q";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring case-insensitive conduit
          conduit-extra containers envy exceptions hashable http-client
@@ -120399,6 +122441,23 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "has-transformers" = callPackage
+    ({ mkDerivation, base, hspec, hspec-discover, operational
+     , transformers
+     }:
+     mkDerivation {
+       pname = "has-transformers";
+       version = "0.1.0.3";
+       sha256 = "0mrz11hxm7nyxyirfz8f63w1mxf3snprrxvh2vvhmmi8p3wlay6n";
+       libraryHaskellDepends = [ base transformers ];
+       testHaskellDepends = [ base hspec operational ];
+       testToolDepends = [ hspec-discover ];
+       description = "This library 'Has' transformers";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hasbolt" = callPackage
     ({ mkDerivation, base, base64-bytestring, binary, bytestring
      , connection, containers, criterion, data-binary-ieee754
@@ -120709,7 +122768,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "hashable_1_4_0_0" = callPackage
+  "hashable_1_4_0_1" = callPackage
     ({ mkDerivation, base, base-orphans, bytestring, containers
      , deepseq, ghc-prim, HUnit, integer-gmp, QuickCheck, random
      , test-framework, test-framework-hunit, test-framework-quickcheck2
@@ -120717,8 +122776,10 @@ self: {
      }:
      mkDerivation {
        pname = "hashable";
-       version = "1.4.0.0";
-       sha256 = "0zg5fvr6561r6nzyqsirxcsyjc2rcr07snv2gl9vxp3dks44gbx1";
+       version = "1.4.0.1";
+       sha256 = "04v61w87hvm6lg9a7p5mz177iab3rvb86pzcclcdw0w314dsxpaw";
+       revision = "1";
+       editedCabalFile = "1rcvw4fjm3v29phg0q54x8358c4qvg1y8cwy6lqzmg1kvhd9qp63";
        libraryHaskellDepends = [
          base base-orphans bytestring containers deepseq ghc-prim
          integer-gmp text
@@ -121041,6 +123102,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hashtables_1_3" = callPackage
+    ({ mkDerivation, base, ghc-prim, hashable, HUnit, mwc-random
+     , primitive, QuickCheck, test-framework, test-framework-hunit
+     , test-framework-quickcheck2, vector
+     }:
+     mkDerivation {
+       pname = "hashtables";
+       version = "1.3";
+       sha256 = "1lqdz4hp6lrzi37f6d2448dmk8jpv56igv5h0kcbnbl42dnmly5g";
+       libraryHaskellDepends = [
+         base ghc-prim hashable primitive vector
+       ];
+       testHaskellDepends = [
+         base ghc-prim hashable HUnit mwc-random primitive QuickCheck
+         test-framework test-framework-hunit test-framework-quickcheck2
+         vector
+       ];
+       description = "Mutable hash tables in the ST monad";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hashtables-plus" = callPackage
     ({ mkDerivation, base, criterion-plus, deepseq, hashable
      , hashtables, lens, loch-th, mtl, mwc-random, placeholders
@@ -121290,6 +123373,8 @@ self: {
        pname = "haskeline";
        version = "0.8.2";
        sha256 = "1pr7zik1138cj0463867i1qqb2bgsq716mryap18jx7zb9f1b7gc";
+       revision = "1";
+       editedCabalFile = "0p78p32xlmjdksdyansw6gxxhiz58fqqdcjh1gfw0mlafxyj5gf3";
        configureFlags = [ "-fterminfo" ];
        isLibrary = true;
        isExecutable = true;
@@ -121880,6 +123965,29 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) glib; inherit (pkgs) gobject-introspection;};
 
+  "haskell-gi_0_26_0" = callPackage
+    ({ mkDerivation, ansi-terminal, attoparsec, base, bytestring, Cabal
+     , cabal-doctest, containers, directory, doctest, filepath, glib
+     , gobject-introspection, haskell-gi-base, mtl, pretty-show, process
+     , regex-tdfa, safe, text, transformers, xdg-basedir, xml-conduit
+     }:
+     mkDerivation {
+       pname = "haskell-gi";
+       version = "0.26.0";
+       sha256 = "0k8xpllviq67zm72dwnh5k05x8l42irzh7sdxi1jwjjm26sc3xm9";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         ansi-terminal attoparsec base bytestring Cabal containers directory
+         filepath haskell-gi-base mtl pretty-show process regex-tdfa safe
+         text transformers xdg-basedir xml-conduit
+       ];
+       libraryPkgconfigDepends = [ glib gobject-introspection ];
+       testHaskellDepends = [ base doctest process ];
+       description = "Generate Haskell bindings for GObject Introspection capable libraries";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) glib; inherit (pkgs) gobject-introspection;};
+
   "haskell-gi-base" = callPackage
     ({ mkDerivation, base, bytestring, containers, glib, text }:
      mkDerivation {
@@ -121894,6 +124002,19 @@ self: {
        license = lib.licenses.lgpl21Only;
      }) {inherit (pkgs) glib;};
 
+  "haskell-gi-base_0_26_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, glib, text }:
+     mkDerivation {
+       pname = "haskell-gi-base";
+       version = "0.26.0";
+       sha256 = "1skxqs8vp8q42g59j7sa1zr25fnqjahbngpgrc2bqs6r5yj00mb7";
+       libraryHaskellDepends = [ base bytestring containers text ];
+       libraryPkgconfigDepends = [ glib ];
+       description = "Foundation for libraries generated by haskell-gi";
+       license = lib.licenses.lgpl21Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) glib;};
+
   "haskell-gi-overloading" = callPackage
     ({ mkDerivation }:
      mkDerivation {
@@ -122034,24 +124155,23 @@ self: {
     ({ mkDerivation, aeson, aeson-pretty, async, base
      , base16-bytestring, binary, bytestring, containers
      , cryptohash-sha1, data-default, deepseq, directory, extra
-     , filepath, ghc, ghc-api-compat, ghc-boot-th, ghc-paths, ghcide
-     , gitrev, hashable, hie-bios, hiedb, hls-brittany-plugin
-     , hls-call-hierarchy-plugin, hls-class-plugin, hls-eval-plugin
-     , hls-explicit-imports-plugin, hls-floskell-plugin
-     , hls-fourmolu-plugin, hls-graph, hls-haddock-comments-plugin
-     , hls-hlint-plugin, hls-module-name-plugin, hls-ormolu-plugin
-     , hls-plugin-api, hls-pragmas-plugin, hls-refine-imports-plugin
-     , hls-retrie-plugin, hls-splice-plugin, hls-stylish-haskell-plugin
-     , hls-tactics-plugin, hls-test-utils, hslogger, hspec-expectations
-     , lens, lsp, lsp-test, lsp-types, mtl, optparse-applicative
-     , optparse-simple, process, regex-tdfa, safe-exceptions
-     , sqlite-simple, temporary, text, transformers
-     , unordered-containers
+     , filepath, ghc, ghc-boot-th, ghc-paths, ghcide, gitrev, hashable
+     , hie-bios, hiedb, hls-brittany-plugin, hls-call-hierarchy-plugin
+     , hls-class-plugin, hls-eval-plugin, hls-explicit-imports-plugin
+     , hls-floskell-plugin, hls-fourmolu-plugin, hls-graph
+     , hls-haddock-comments-plugin, hls-hlint-plugin
+     , hls-module-name-plugin, hls-ormolu-plugin, hls-plugin-api
+     , hls-pragmas-plugin, hls-refine-imports-plugin, hls-retrie-plugin
+     , hls-splice-plugin, hls-stylish-haskell-plugin, hls-tactics-plugin
+     , hls-test-utils, hslogger, hspec-expectations, lens, lsp, lsp-test
+     , lsp-types, mtl, optparse-applicative, optparse-simple, process
+     , regex-tdfa, safe-exceptions, sqlite-simple, temporary, text
+     , transformers, unordered-containers
      }:
      mkDerivation {
        pname = "haskell-language-server";
-       version = "1.4.0.0";
-       sha256 = "1zyvfh9lmr97i221kqkjilq1di3l5h2qk2d46rcl3gyfrdpc2cil";
+       version = "1.5.1.0";
+       sha256 = "0aixq570sbrg9nnhaxlj8lv3k1dskbz53iwp5c1ljgrlmsz786ky";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -122064,17 +124184,16 @@ self: {
        executableHaskellDepends = [
          aeson async base base16-bytestring binary bytestring containers
          cryptohash-sha1 data-default deepseq directory extra filepath ghc
-         ghc-api-compat ghc-boot-th ghc-paths ghcide gitrev hashable
-         hie-bios hiedb hls-brittany-plugin hls-call-hierarchy-plugin
-         hls-class-plugin hls-eval-plugin hls-explicit-imports-plugin
-         hls-floskell-plugin hls-fourmolu-plugin hls-graph
-         hls-haddock-comments-plugin hls-hlint-plugin hls-module-name-plugin
-         hls-ormolu-plugin hls-plugin-api hls-pragmas-plugin
-         hls-refine-imports-plugin hls-retrie-plugin hls-splice-plugin
-         hls-stylish-haskell-plugin hls-tactics-plugin hslogger lens lsp mtl
-         optparse-applicative optparse-simple process regex-tdfa
-         safe-exceptions sqlite-simple temporary text transformers
-         unordered-containers
+         ghc-boot-th ghc-paths ghcide gitrev hashable hie-bios hiedb
+         hls-brittany-plugin hls-call-hierarchy-plugin hls-class-plugin
+         hls-eval-plugin hls-explicit-imports-plugin hls-floskell-plugin
+         hls-fourmolu-plugin hls-graph hls-haddock-comments-plugin
+         hls-hlint-plugin hls-module-name-plugin hls-ormolu-plugin
+         hls-plugin-api hls-pragmas-plugin hls-refine-imports-plugin
+         hls-retrie-plugin hls-splice-plugin hls-stylish-haskell-plugin
+         hls-tactics-plugin hslogger lens lsp mtl optparse-applicative
+         optparse-simple process regex-tdfa safe-exceptions sqlite-simple
+         temporary text transformers unordered-containers
        ];
        testHaskellDepends = [
          aeson base bytestring containers data-default directory extra
@@ -123781,8 +125900,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskellish";
-       version = "0.2.4.3";
-       sha256 = "09hxl72ivd7dc1fcwdd5w081crc4b8yinxddxcydb9ak0dg7hj26";
+       version = "0.3.1";
+       sha256 = "1a3lsdy78f4lfgrag2ppy4yp2snvn1dg5krhbxwarl70sd2j4fhg";
        libraryHaskellDepends = [
          base containers haskell-src-exts mtl template-haskell text
        ];
@@ -124145,7 +126264,7 @@ self: {
      }) {};
 
   "haskoin-core" = callPackage
-    ({ mkDerivation, aeson, array, base, base16, binary, bytes
+    ({ mkDerivation, aeson, array, base, base16, base64, binary, bytes
      , bytestring, cereal, conduit, containers, cryptonite, deepseq
      , entropy, hashable, hspec, hspec-discover, HUnit, lens, lens-aeson
      , memory, mtl, murmur3, network, QuickCheck, safe, scientific
@@ -124154,8 +126273,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-core";
-       version = "0.20.5";
-       sha256 = "1nx0m51nxm6m2nq6cdcsd8xiap7x6rr2z5ckbzga33fh73ivmkmp";
+       version = "0.21.1";
+       sha256 = "0ld1a0pn5llnzdnffvcwh8zzh8143vkx3f5y1ixgb7qx6gpqnzrs";
        libraryHaskellDepends = [
          aeson array base base16 binary bytes bytestring cereal conduit
          containers cryptonite deepseq entropy hashable hspec memory mtl
@@ -124164,11 +126283,11 @@ self: {
          vector
        ];
        testHaskellDepends = [
-         aeson array base base16 binary bytes bytestring cereal conduit
-         containers cryptonite deepseq entropy hashable hspec HUnit lens
-         lens-aeson memory mtl murmur3 network QuickCheck safe scientific
-         secp256k1-haskell split string-conversions text time transformers
-         unordered-containers vector
+         aeson array base base16 base64 binary bytes bytestring cereal
+         conduit containers cryptonite deepseq entropy hashable hspec HUnit
+         lens lens-aeson memory mtl murmur3 network QuickCheck safe
+         scientific secp256k1-haskell split string-conversions text time
+         transformers unordered-containers vector
        ];
        testToolDepends = [ hspec-discover ];
        description = "Bitcoin & Bitcoin Cash library for Haskell";
@@ -124288,12 +126407,12 @@ self: {
      , optparse-applicative, QuickCheck, random, rocksdb-haskell-jprupp
      , rocksdb-query, scotty, stm, string-conversions, text, time
      , transformers, unliftio, unordered-containers, vault, wai
-     , wai-extra, warp, wreq
+     , wai-extra, wai-websockets, warp, websockets, wreq
      }:
      mkDerivation {
        pname = "haskoin-store";
-       version = "0.53.11";
-       sha256 = "0b6q74zk58chz1b9pv6rm1ipx2ss08ks4qwlyhzqgwfy5npn1x6p";
+       version = "0.62.1";
+       sha256 = "12s8qwhxm8llz4asyapvd3mi8g9iv3yw65vyi55960cncvnha8a0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -124303,7 +126422,7 @@ self: {
          monad-control monad-logger mtl network nqe random
          rocksdb-haskell-jprupp rocksdb-query scotty stm string-conversions
          text time transformers unliftio unordered-containers vault wai
-         wai-extra warp wreq
+         wai-extra wai-websockets warp websockets wreq
        ];
        executableHaskellDepends = [
          aeson aeson-pretty base base16 bytes bytestring cereal conduit
@@ -124312,7 +126431,8 @@ self: {
          http-types lens monad-control monad-logger mtl network nqe
          optparse-applicative random rocksdb-haskell-jprupp rocksdb-query
          scotty stm string-conversions text time transformers unliftio
-         unordered-containers vault wai wai-extra warp wreq
+         unordered-containers vault wai wai-extra wai-websockets warp
+         websockets wreq
        ];
        testHaskellDepends = [
          aeson aeson-pretty base base16 base64 bytes bytestring cereal
@@ -124321,7 +126441,8 @@ self: {
          http-types lens monad-control monad-logger mtl network nqe
          QuickCheck random rocksdb-haskell-jprupp rocksdb-query scotty stm
          string-conversions text time transformers unliftio
-         unordered-containers vault wai wai-extra warp wreq
+         unordered-containers vault wai wai-extra wai-websockets warp
+         websockets wreq
        ];
        testToolDepends = [ hspec-discover ];
        description = "Storage and index for Bitcoin and Bitcoin Cash";
@@ -124338,8 +126459,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-store-data";
-       version = "0.53.11";
-       sha256 = "0x75vm28j8gpwan2kdy3di14myhk6gfk8wa70iys8cj43c7ds83l";
+       version = "0.62.1";
+       sha256 = "1v66d369fda1prcb8knmszi8kgp2x321pmdk8mwdd3059vcvsw84";
        libraryHaskellDepends = [
          aeson base binary bytes bytestring cereal containers data-default
          deepseq hashable haskoin-core http-client http-types lens mtl
@@ -124610,8 +126731,8 @@ self: {
        pname = "hasktags";
        version = "0.72.0";
        sha256 = "09p79w16fgpqi6bwq162769xdrnyb7wnmz56k00nz6dj1a0bbbdd";
-       revision = "1";
-       editedCabalFile = "0q39ssdgm6lcmqj92frjvr53i34divx53zli0qar39mx8ka1l8ml";
+       revision = "2";
+       editedCabalFile = "0f3v6k3bvsczz0z5i09286c0i74wz782vayzyp5lndqvrx3b4g0x";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -125020,8 +127141,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskus-utils-variant";
-       version = "3.2";
-       sha256 = "0bhs2ybwbn9g1h879dd3pxs99rl40kvpsj1dn3lk3yk7h071bqbg";
+       version = "3.2.1";
+       sha256 = "1a15jm4rbvw2gmv5dzzwv0cwsq0qgxnxvq4x3qpr19dmnmq77vn2";
        libraryHaskellDepends = [
          base deepseq exceptions haskus-utils-data haskus-utils-types mtl
          template-haskell transformers
@@ -125351,8 +127472,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-interpolate";
-       version = "0.1.0.0";
-       sha256 = "0l9gpkkwkypvz3020p5khvxzrq6x62z3i1xjrbzal7yj0gic4klg";
+       version = "0.1.0.1";
+       sha256 = "134h9jrqdnvki97dq3cagzwabcnbcbls72l5f32m9s44dbrnq5bl";
        libraryHaskellDepends = [
          aeson array base bytestring containers haskell-src-meta hasql
          megaparsec mtl scientific template-haskell text time transformers
@@ -126712,8 +128833,8 @@ self: {
      }:
      mkDerivation {
        pname = "hchesslib";
-       version = "0.1.0.0";
-       sha256 = "10785d9n87ddln1rvr19wnvcj401x3b53psdcf8vrwfaq930kjrv";
+       version = "0.2.0.0";
+       sha256 = "1vwarq21kvrk22cbkmgalig3gr6r2xbzcvz1sryxgyjn17fi6py4";
        libraryHaskellDepends = [ array attoparsec base containers text ];
        testHaskellDepends = [
          array attoparsec base containers hlint hspec QuickCheck text
@@ -127385,13 +129506,15 @@ self: {
      }:
      mkDerivation {
        pname = "headed-megaparsec";
-       version = "0.2.0.1";
-       sha256 = "1bkjk5bzlzsigqdcb3vyqmjxddf4hm7b5a4ppb0iwh5n78whxpjc";
+       version = "0.2.0.2";
+       sha256 = "07ddg7v55pbgalajnln37276x25632mj8s6xnwfd79pbwj3rg0rg";
        libraryHaskellDepends = [
          base case-insensitive megaparsec parser-combinators selective
        ];
        description = "More informative parser";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "headergen" = callPackage
@@ -127867,10 +129990,8 @@ self: {
      }:
      mkDerivation {
        pname = "hedgehog-classes";
-       version = "0.2.5.2";
-       sha256 = "0h9givw1l83l8z59w6y1rjcnply297b2iag3qhy1rmcjyq3d6m0m";
-       revision = "1";
-       editedCabalFile = "1z8b4mn4y0lnna5acp7fryqpq2355bgi7rzivg34fgfnf3fmwa0a";
+       version = "0.2.5.3";
+       sha256 = "1qanfnvciykm5hmiqyf0icn4xn16v6zvlfal98lphhcmym26m9x1";
        libraryHaskellDepends = [
          aeson base binary comonad containers hedgehog pretty-show primitive
          semirings silently transformers vector wl-pprint-annotated
@@ -127903,7 +130024,6 @@ self: {
        testHaskellDepends = [ base containers fakedata hedgehog ];
        description = "Use 'fakedata' with 'hedgehog'";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "hedgehog-fn" = callPackage
@@ -128053,6 +130173,8 @@ self: {
        pname = "hedis";
        version = "0.14.4";
        sha256 = "0h6s3x3pylyidjbzjqyrmc2cm5ls67m9iij35fn48rvq4l41w9h9";
+       revision = "1";
+       editedCabalFile = "0w7960730qh8y41xa1mx4lbk288axkqa03wamh9j6pmag9axcphq";
        libraryHaskellDepends = [
          async base bytestring bytestring-lexing containers deepseq errors
          exceptions HTTP mtl network network-uri resource-pool scanner stm
@@ -128078,6 +130200,8 @@ self: {
        pname = "hedis";
        version = "0.15.0";
        sha256 = "1wcsjvya9hnvgjl9vnimi3928fx2gy0glgdc30slfwnjpijs97n0";
+       revision = "1";
+       editedCabalFile = "0njy7nh5r935xb0za9r0hligqy0nzwlfnzlfqcvb1frkzxissydp";
        libraryHaskellDepends = [
          async base bytestring bytestring-lexing containers deepseq errors
          exceptions HTTP mtl network network-uri resource-pool scanner stm
@@ -128214,10 +130338,8 @@ self: {
      }:
      mkDerivation {
        pname = "hedn";
-       version = "0.3.0.3";
-       sha256 = "0amfsmnly9yxzv1j34ya8kq9fqd067kgklx7rswy5g7aflj3bpwl";
-       revision = "1";
-       editedCabalFile = "0b7574wgav4xkk4ykazvh2dpl3z5dyln2n55m6z288rbw56diylb";
+       version = "0.3.0.4";
+       sha256 = "06js9mcif99k8bfyrsynlg1w5rjygydk5l0qhlrk6pa5v288a7wv";
        libraryHaskellDepends = [
          base containers deepseq deriving-compat megaparsec
          parser-combinators prettyprinter scientific template-haskell text
@@ -128403,6 +130525,44 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "helic" = callPackage
+    ({ mkDerivation, aeson, base, chronos, containers, data-default
+     , either, exon, gi-gdk, gi-glib, gi-gtk, hostname, http-client
+     , http-client-tls, optparse-applicative, path, path-io, polysemy
+     , polysemy-chronos, polysemy-conc, polysemy-http, polysemy-log
+     , polysemy-plugin, polysemy-process, polysemy-resume, polysemy-test
+     , polysemy-time, relude, servant, servant-client
+     , servant-client-core, servant-server, table-layout, tasty
+     , template-haskell, terminal-size, text, torsor, typed-process
+     , unix, wai-extra, warp, yaml
+     }:
+     mkDerivation {
+       pname = "helic";
+       version = "0.3.1.0";
+       sha256 = "1bshhddy04w5p6546fxdvk11g6pq781dp4mf4r84qqi7avfjp0xk";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base chronos containers data-default either exon gi-gdk
+         gi-glib gi-gtk hostname http-client http-client-tls
+         optparse-applicative path path-io polysemy polysemy-chronos
+         polysemy-conc polysemy-http polysemy-log polysemy-plugin
+         polysemy-process polysemy-resume polysemy-time relude servant
+         servant-client servant-client-core servant-server table-layout
+         template-haskell terminal-size text typed-process unix wai-extra
+         warp yaml
+       ];
+       executableHaskellDepends = [ base polysemy polysemy-plugin ];
+       testHaskellDepends = [
+         base chronos containers path polysemy polysemy-chronos
+         polysemy-conc polysemy-log polysemy-plugin polysemy-test
+         polysemy-time tasty torsor
+       ];
+       description = "Clipboard Manager";
+       license = "BSD-2-Clause-Patent";
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "helics" = callPackage
     ({ mkDerivation, base, bytestring, bytestring-show
      , data-default-class, newrelic-collector-client, newrelic-common
@@ -130270,6 +132430,43 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hgeometry_0_13" = callPackage
+    ({ mkDerivation, aeson, base, bifunctors, bytestring, containers
+     , data-clist, deepseq, deepseq-generics, dlist, doctest
+     , doctest-discover, fingertree, fixed-vector, hashable
+     , hgeometry-combinatorial, hspec, lens, linear, MonadRandom, mtl
+     , nonempty-vector, optparse-applicative, primitive, QuickCheck
+     , quickcheck-instances, random, reflection, semigroupoids
+     , semigroups, tasty-bench, template-haskell, text, vector
+     , vector-algorithms, vector-builder, vector-circular, vinyl
+     , witherable, yaml
+     }:
+     mkDerivation {
+       pname = "hgeometry";
+       version = "0.13";
+       sha256 = "0g9napakxq2x5m8ql7npc72fd212n9pwgv5ja9hzfcdfxqhbsxsy";
+       libraryHaskellDepends = [
+         aeson base bifunctors bytestring containers data-clist deepseq
+         dlist fingertree fixed-vector hashable hgeometry-combinatorial
+         hspec lens linear MonadRandom mtl nonempty-vector primitive
+         QuickCheck quickcheck-instances random reflection semigroupoids
+         semigroups template-haskell text vector vector-algorithms
+         vector-builder vector-circular vinyl witherable yaml
+       ];
+       testHaskellDepends = [
+         base doctest doctest-discover QuickCheck quickcheck-instances
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring containers deepseq deepseq-generics dlist
+         fixed-vector hashable hgeometry-combinatorial lens linear
+         MonadRandom mtl optparse-applicative QuickCheck semigroupoids
+         semigroups tasty-bench vector vector-circular vinyl
+       ];
+       description = "Geometric Algorithms, Data structures, and Data types";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hgeometry-combinatorial" = callPackage
     ({ mkDerivation, aeson, approximate-equality, array, base
      , bifunctors, bytestring, containers, contravariant, data-clist
@@ -130303,6 +132500,41 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hgeometry-combinatorial_0_13" = callPackage
+    ({ mkDerivation, aeson, approximate-equality, array, base
+     , bifunctors, bytestring, containers, contravariant, data-clist
+     , deepseq, directory, dlist, doctest, filepath, fingertree
+     , hashable, hspec, hspec-discover, lens, linear, math-functions
+     , MonadRandom, mtl, nonempty-vector, primitive, QuickCheck
+     , quickcheck-instances, random, reflection, semigroupoids
+     , semigroups, template-haskell, text, unordered-containers, vector
+     , vector-builder, vector-circular, vinyl, witherable, yaml
+     }:
+     mkDerivation {
+       pname = "hgeometry-combinatorial";
+       version = "0.13";
+       sha256 = "1avw51fjdxixsj00scfffb0drcish2sb76x6ny0zfg6hb0pvrl69";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson array base bifunctors bytestring containers contravariant
+         data-clist deepseq dlist fingertree hashable lens linear
+         math-functions MonadRandom mtl nonempty-vector primitive QuickCheck
+         quickcheck-instances random reflection semigroupoids semigroups
+         template-haskell text unordered-containers vector vector-builder
+         vector-circular vinyl witherable yaml
+       ];
+       testHaskellDepends = [
+         approximate-equality base bytestring containers data-clist deepseq
+         directory doctest filepath hspec lens linear MonadRandom QuickCheck
+         quickcheck-instances random semigroupoids semigroups vector vinyl
+         yaml
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Data structures, and Data types";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hgeometry-ipe" = callPackage
     ({ mkDerivation, aeson, approximate-equality, base, bifunctors
      , bytestring, colour, containers, data-clist, deepseq, directory
@@ -130310,19 +132542,20 @@ self: {
      , hgeometry-combinatorial, hspec, hspec-discover, lens, linear
      , MonadRandom, mtl, parsec, QuickCheck, quickcheck-instances
      , random, reflection, semigroupoids, semigroups, singletons
-     , template-haskell, text, vector, vinyl, yaml
+     , template-haskell, text, typed-process, vector, vinyl, yaml
      }:
      mkDerivation {
        pname = "hgeometry-ipe";
-       version = "0.12.0.0";
-       sha256 = "0hljjl2812i9nicajc0xb53wfkq7q3hsicdqdj5z8kr8zrf09lbh";
+       version = "0.13";
+       sha256 = "0f5qkj26w1yb857xa4x4bz9p4xgw608pr6hras2h2yv00zcfmfaf";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bifunctors bytestring colour containers data-clist
-         deepseq dlist fingertree fixed-vector hexpat hgeometry
-         hgeometry-combinatorial lens linear MonadRandom mtl parsec
-         QuickCheck quickcheck-instances random reflection semigroupoids
-         semigroups singletons template-haskell text vector vinyl yaml
+         deepseq directory dlist filepath fingertree fixed-vector hexpat
+         hgeometry hgeometry-combinatorial lens linear MonadRandom mtl
+         parsec QuickCheck quickcheck-instances random reflection
+         semigroupoids semigroups singletons template-haskell text
+         typed-process vector vinyl yaml
        ];
        testHaskellDepends = [
          approximate-equality base bytestring colour containers data-clist
@@ -130859,6 +133092,39 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hie-bios_0_8_0" = callPackage
+    ({ mkDerivation, aeson, base, base16-bytestring, bytestring
+     , conduit, conduit-extra, containers, cryptohash-sha1, deepseq
+     , directory, exceptions, extra, file-embed, filepath, ghc, hslogger
+     , hspec-expectations, optparse-applicative, process, tasty
+     , tasty-expected-failure, tasty-hunit, temporary, text, time
+     , transformers, unix-compat, unordered-containers, vector, yaml
+     }:
+     mkDerivation {
+       pname = "hie-bios";
+       version = "0.8.0";
+       sha256 = "1apy7zdafrw96f7sbhhq62hlk4blcsi4kc4kq59wcm2yvj134rvv";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base base16-bytestring bytestring conduit conduit-extra
+         containers cryptohash-sha1 deepseq directory exceptions extra
+         file-embed filepath ghc hslogger process temporary text time
+         transformers unix-compat unordered-containers vector yaml
+       ];
+       executableHaskellDepends = [
+         base directory filepath ghc optparse-applicative
+       ];
+       testHaskellDepends = [
+         aeson base directory extra filepath ghc hspec-expectations tasty
+         tasty-expected-failure tasty-hunit temporary text
+         unordered-containers yaml
+       ];
+       description = "Set up a GHC API session";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hie-compat" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, directory
      , filepath, ghc, ghc-boot, transformers
@@ -131781,11 +134047,11 @@ self: {
      }:
      mkDerivation {
        pname = "hint";
-       version = "0.9.0.4";
-       sha256 = "0hdhnkldscq3hp5xn5ns79f6cd6bw6ih6k550d5c38sdqypx73ns";
+       version = "0.9.0.5";
+       sha256 = "1qjasjbilvrfwk8lxfw0pa0hwpsr7nn0n9yd95lwjgfnqnigzcb8";
        libraryHaskellDepends = [
-         base directory exceptions filepath ghc ghc-boot ghc-paths random
-         temporary transformers unix
+         base containers directory exceptions filepath ghc ghc-boot
+         ghc-paths random temporary transformers unix
        ];
        testHaskellDepends = [
          base containers directory exceptions filepath HUnit stm unix
@@ -132263,8 +134529,8 @@ self: {
     ({ mkDerivation, base, containers }:
      mkDerivation {
        pname = "histogram-simple";
-       version = "1.0";
-       sha256 = "11x8v0svvsc0impf59vixbsaxh5nwvyc9wmw9xkshd4k4a30bdb8";
+       version = "1.2";
+       sha256 = "12zvs148c224lcvs8b5kc6nsxma5k3bn7srxfm3xjx48fcjbpl00";
        libraryHaskellDepends = [ base containers ];
        description = "Simple Data.Map-based histogram";
        license = lib.licenses.bsd3;
@@ -132404,6 +134670,8 @@ self: {
        pname = "hjsmin";
        version = "0.2.0.4";
        sha256 = "1r2p5rjdjr25j3w4s57q5hxw2c3ymw12x7ms18yvglnq2ivr9fc1";
+       revision = "1";
+       editedCabalFile = "0ni726dy3a0mmqwlpqby4yhy7cdddjala1vwgaq75pgb0bmp7wr0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -132803,46 +135071,42 @@ self: {
        maintainers = with lib.maintainers; [ peti ];
      }) {};
 
-  "hledger_1_23" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, base, base-compat-batteries
-     , bytestring, cmdargs, containers, data-default, Decimal, Diff
-     , directory, extra, filepath, githash, hashable, haskeline
-     , hledger-lib, lucid, math-functions, megaparsec, microlens, mtl
-     , process, regex-tdfa, safe, shakespeare, split, tabular, tasty
-     , temporary, terminfo, text, time, timeit, transformers
-     , unordered-containers, utf8-string, utility-ht, wizards
+  "hledger_1_24_1" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, base, bytestring, cmdargs
+     , containers, data-default, Decimal, Diff, directory, extra
+     , filepath, githash, hashable, haskeline, hledger-lib, lucid
+     , math-functions, megaparsec, microlens, mtl, process, regex-tdfa
+     , safe, shakespeare, split, tabular, tasty, temporary, terminfo
+     , text, time, timeit, transformers, unordered-containers
+     , utf8-string, utility-ht, wizards
      }:
      mkDerivation {
        pname = "hledger";
-       version = "1.23";
-       sha256 = "0s7dbizgx6x6p5phn61ljnhjwm7alp3vgbakbd51m30asnzxm98b";
-       revision = "1";
-       editedCabalFile = "1mpl3scnif7p51clbdhak1z7ja7bky73c3a223fv1q4n8y9zxpk6";
+       version = "1.24.1";
+       sha256 = "01y9i7xrw22nx8qq8iq6xy0f84jf8khfk0h0r2y21cg96s65fyjy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson ansi-terminal base base-compat-batteries bytestring cmdargs
-         containers data-default Decimal Diff directory extra filepath
-         githash hashable haskeline hledger-lib lucid math-functions
-         megaparsec microlens mtl process regex-tdfa safe shakespeare split
-         tabular tasty temporary terminfo text time timeit transformers
-         unordered-containers utf8-string utility-ht wizards
+         aeson ansi-terminal base bytestring cmdargs containers data-default
+         Decimal Diff directory extra filepath githash hashable haskeline
+         hledger-lib lucid math-functions megaparsec microlens mtl process
+         regex-tdfa safe shakespeare split tabular tasty temporary terminfo
+         text time timeit transformers unordered-containers utf8-string
+         utility-ht wizards
        ];
        executableHaskellDepends = [
-         aeson ansi-terminal base base-compat-batteries bytestring cmdargs
-         containers data-default Decimal directory extra filepath githash
-         haskeline hledger-lib math-functions megaparsec microlens mtl
-         process regex-tdfa safe shakespeare split tabular tasty temporary
-         terminfo text time timeit transformers unordered-containers
-         utf8-string utility-ht wizards
+         aeson ansi-terminal base bytestring cmdargs containers data-default
+         Decimal directory extra filepath githash haskeline hledger-lib
+         math-functions megaparsec microlens mtl process regex-tdfa safe
+         shakespeare split tabular tasty temporary terminfo text time timeit
+         transformers unordered-containers utf8-string utility-ht wizards
        ];
        testHaskellDepends = [
-         aeson ansi-terminal base base-compat-batteries bytestring cmdargs
-         containers data-default Decimal directory extra filepath githash
-         haskeline hledger-lib math-functions megaparsec microlens mtl
-         process regex-tdfa safe shakespeare split tabular tasty temporary
-         terminfo text time timeit transformers unordered-containers
-         utf8-string utility-ht wizards
+         aeson ansi-terminal base bytestring cmdargs containers data-default
+         Decimal directory extra filepath githash haskeline hledger-lib
+         math-functions megaparsec microlens mtl process regex-tdfa safe
+         shakespeare split tabular tasty temporary terminfo text time timeit
+         transformers unordered-containers utf8-string utility-ht wizards
        ];
        description = "Command-line interface for the hledger accounting system";
        license = lib.licenses.gpl3Only;
@@ -132979,8 +135243,8 @@ self: {
        pname = "hledger-iadd";
        version = "1.3.16";
        sha256 = "09b8519s8f3ckh1ghcj8zn0s4dnagbpaf0hyinvmy5vjnjvnyf1f";
-       revision = "1";
-       editedCabalFile = "1d26wsa0dyifvw3j8yhw6j7idb1rcsmb3k8dmvrvyginwc4hl3ay";
+       revision = "2";
+       editedCabalFile = "00sl5wqwi2zd735lqpm9na4qkiq0g8nkzb2gwdrhyczvbbad5ffb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -133027,6 +135291,8 @@ self: {
        pname = "hledger-interest";
        version = "1.6.3";
        sha256 = "1r8iydl66k2j7xv1b465alf3h8mqwjfz13ffwsd50h0kscxjmxhg";
+       revision = "1";
+       editedCabalFile = "0blklcmhxnvrm7lqzkhjfb3czl1lbkk14z8m2jqj0q2l8hm94afb";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -133094,39 +135360,37 @@ self: {
        license = lib.licenses.gpl3Only;
      }) {};
 
-  "hledger-lib_1_23" = callPackage
+  "hledger-lib_1_24_1" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, array, base
-     , base-compat-batteries, blaze-markup, bytestring, call-stack
-     , cassava, cassava-megaparsec, cmdargs, containers, data-default
-     , Decimal, directory, doctest, extra, file-embed, filepath, Glob
-     , hashtables, megaparsec, microlens, microlens-th, mtl
-     , parser-combinators, pretty-simple, regex-tdfa, safe, tabular
-     , tasty, tasty-hunit, template-haskell, text, time, timeit
-     , transformers, uglymemo, unordered-containers, utf8-string
+     , blaze-markup, bytestring, call-stack, cassava, cassava-megaparsec
+     , cmdargs, containers, data-default, Decimal, directory, doclayout
+     , doctest, extra, file-embed, filepath, Glob, hashtables
+     , megaparsec, microlens, microlens-th, mtl, parser-combinators
+     , pretty-simple, regex-tdfa, safe, tabular, tasty, tasty-hunit
+     , template-haskell, text, time, timeit, transformers, uglymemo
+     , unordered-containers, utf8-string
      }:
      mkDerivation {
        pname = "hledger-lib";
-       version = "1.23";
-       sha256 = "182pa9f4paqbyrqqnn8vhgwys0sk9lrkvf972d9hbvr339iysm1c";
-       revision = "1";
-       editedCabalFile = "0xrzix8fw4dyyga7pqqqdsz6bdljf5sx3l6g81iyqg5y4a9grv9h";
+       version = "1.24.1";
+       sha256 = "13lq518v6nmv89pbsw4qa1rvplwpnyz8sz5wd1y2wa1066rh0qli";
        libraryHaskellDepends = [
-         aeson aeson-pretty ansi-terminal array base base-compat-batteries
-         blaze-markup bytestring call-stack cassava cassava-megaparsec
-         cmdargs containers data-default Decimal directory extra file-embed
-         filepath Glob hashtables megaparsec microlens microlens-th mtl
+         aeson aeson-pretty ansi-terminal array base blaze-markup bytestring
+         call-stack cassava cassava-megaparsec cmdargs containers
+         data-default Decimal directory doclayout extra file-embed filepath
+         Glob hashtables megaparsec microlens microlens-th mtl
          parser-combinators pretty-simple regex-tdfa safe tabular tasty
          tasty-hunit template-haskell text time timeit transformers uglymemo
          unordered-containers utf8-string
        ];
        testHaskellDepends = [
-         aeson aeson-pretty ansi-terminal array base base-compat-batteries
-         blaze-markup bytestring call-stack cassava cassava-megaparsec
-         cmdargs containers data-default Decimal directory doctest extra
-         file-embed filepath Glob hashtables megaparsec microlens
-         microlens-th mtl parser-combinators pretty-simple regex-tdfa safe
-         tabular tasty tasty-hunit template-haskell text time timeit
-         transformers uglymemo unordered-containers utf8-string
+         aeson aeson-pretty ansi-terminal array base blaze-markup bytestring
+         call-stack cassava cassava-megaparsec cmdargs containers
+         data-default Decimal directory doclayout doctest extra file-embed
+         filepath Glob hashtables megaparsec microlens microlens-th mtl
+         parser-combinators pretty-simple regex-tdfa safe tabular tasty
+         tasty-hunit template-haskell text time timeit transformers uglymemo
+         unordered-containers utf8-string
        ];
        description = "A reusable library providing the core functionality of hledger";
        license = lib.licenses.gpl3Only;
@@ -133207,26 +135471,24 @@ self: {
        maintainers = with lib.maintainers; [ peti ];
      }) {};
 
-  "hledger-ui_1_23" = callPackage
-    ({ mkDerivation, ansi-terminal, async, base, base-compat-batteries
-     , brick, cmdargs, containers, data-default, directory, extra
-     , filepath, fsnotify, hledger, hledger-lib, megaparsec, microlens
+  "hledger-ui_1_24_1" = callPackage
+    ({ mkDerivation, ansi-terminal, async, base, brick, cmdargs
+     , containers, data-default, directory, doclayout, extra, filepath
+     , fsnotify, hledger, hledger-lib, megaparsec, microlens
      , microlens-platform, process, safe, split, text, text-zipper, time
      , transformers, unix, vector, vty
      }:
      mkDerivation {
        pname = "hledger-ui";
-       version = "1.23";
-       sha256 = "04wsp0jlrv5lmlaw38644q66mg8ga6l2ij32pqa585713zcx2frs";
-       revision = "1";
-       editedCabalFile = "1199c443hfy8pdag6h218kwi237g51b7ljy5vvswmslkc9xa37x8";
+       version = "1.24.1";
+       sha256 = "1afxvj8x8wq3rvbmzhrls4688gdkqsjm4kaa9zarkrrgf585q22q";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         ansi-terminal async base base-compat-batteries brick cmdargs
-         containers data-default directory extra filepath fsnotify hledger
-         hledger-lib megaparsec microlens microlens-platform process safe
-         split text text-zipper time transformers unix vector vty
+         ansi-terminal async base brick cmdargs containers data-default
+         directory doclayout extra filepath fsnotify hledger hledger-lib
+         megaparsec microlens microlens-platform process safe split text
+         text-zipper time transformers unix vector vty
        ];
        description = "Curses-style terminal interface for the hledger accounting system";
        license = lib.licenses.gpl3Only;
@@ -133291,7 +135553,7 @@ self: {
        maintainers = with lib.maintainers; [ peti ];
      }) {};
 
-  "hledger-web_1_23" = callPackage
+  "hledger-web_1_24_1" = callPackage
     ({ mkDerivation, aeson, base, base64, blaze-html, blaze-markup
      , bytestring, case-insensitive, clientsession, cmdargs, conduit
      , conduit-extra, containers, data-default, Decimal, directory
@@ -133304,10 +135566,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-web";
-       version = "1.23";
-       sha256 = "0sphhmh43d2lifvx8xbvgdmfs0f8cd5zpnpzhv8dp6mzd72g44wi";
-       revision = "1";
-       editedCabalFile = "1ck8jv7hx8kzzimg9hm39h5la8im2kn4f21g7nqmzl4s7bqmmkrw";
+       version = "1.24.1";
+       sha256 = "1nms55xb1hmiz3l307r690qwa7avj4racir1pg74xxwymldsafs8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -133446,7 +135706,7 @@ self: {
        maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
-  "hlint_3_3_4" = callPackage
+  "hlint_3_3_5" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring, cmdargs
      , containers, cpphs, data-default, directory, extra, file-embed
      , filepath, filepattern, ghc-lib-parser, ghc-lib-parser-ex
@@ -133455,10 +135715,8 @@ self: {
      }:
      mkDerivation {
        pname = "hlint";
-       version = "3.3.4";
-       sha256 = "030hvf0hmnf5pamrcqvr97zmm185b1vs0y28nq6vzlyyg15ap6qq";
-       revision = "1";
-       editedCabalFile = "10h1asqbk2qqmxac34amwjz9ybz2vahpa0dsrdljg3zw1r1yzkb8";
+       version = "3.3.5";
+       sha256 = "1pry95jik5bl49v1mj5g7lbax0937ra6g5wcpblypkpfwgh1h8l1";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -133580,10 +135838,8 @@ self: {
      }:
      mkDerivation {
        pname = "hlrdb-core";
-       version = "0.1.6.1";
-       sha256 = "0sy87qz7v1x4rmqclfz2q8bnca2k7zyc7cgk67s80xhp4jsab90x";
-       revision = "1";
-       editedCabalFile = "1nyvgbpvr7l0b9cvnlavmc88aszvxfrdcj57grrs6dcd1d4lv7ss";
+       version = "0.1.6.2";
+       sha256 = "19pnwjlcg504kpvxq8r1hwb533adi2d919vgb1lr25c9bdyxc32n";
        libraryHaskellDepends = [
          base bytestring hashable hedis lens mtl profunctors random time
          unordered-containers
@@ -133614,8 +135870,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-brittany-plugin";
-       version = "1.0.1.0";
-       sha256 = "0wkarbbq3nq923d169k8g6z8svnqp8ghikh2q7nbrdg8anhrbgqz";
+       version = "1.0.1.1";
+       sha256 = "09j40rh3nn5i8h8k5hpqy1vwjjmfma8n8lf59180ravia4pfddli";
        libraryHaskellDepends = [
          base brittany czipwith extra filepath ghc ghc-boot-th
          ghc-exactprint ghcide hls-plugin-api lens lsp-types text
@@ -133628,18 +135884,16 @@ self: {
 
   "hls-call-hierarchy-plugin" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, extra
-     , filepath, ghc, ghc-api-compat, ghcide, hiedb, hls-plugin-api
-     , hls-test-utils, lens, lsp, lsp-test, sqlite-simple, text
-     , unordered-containers
+     , filepath, ghc, ghcide, hiedb, hls-plugin-api, hls-test-utils
+     , lens, lsp, lsp-test, sqlite-simple, text, unordered-containers
      }:
      mkDerivation {
        pname = "hls-call-hierarchy-plugin";
-       version = "1.0.1.0";
-       sha256 = "1vzxiwxj14kmabcggp9dnq8jw9kcqknlg4xyv9cp69djz5ssrnzr";
+       version = "1.0.1.1";
+       sha256 = "10faqaj4zhpl2aqlmqr8l96dij31x47vj2sfbpxhpcm5j3zxqwni";
        libraryHaskellDepends = [
-         aeson base bytestring containers extra ghc ghc-api-compat ghcide
-         hiedb hls-plugin-api lens lsp sqlite-simple text
-         unordered-containers
+         aeson base bytestring containers extra ghc ghcide hiedb
+         hls-plugin-api lens lsp sqlite-simple text unordered-containers
        ];
        testHaskellDepends = [
          aeson base containers extra filepath hls-test-utils lens lsp
@@ -133651,16 +135905,16 @@ self: {
 
   "hls-class-plugin" = callPackage
     ({ mkDerivation, aeson, base, containers, filepath, ghc
-     , ghc-api-compat, ghc-exactprint, ghcide, hls-plugin-api
-     , hls-test-utils, lens, lsp, lsp-types, text, transformers
+     , ghc-exactprint, ghcide, hls-plugin-api, hls-test-utils, lens, lsp
+     , lsp-types, text, transformers
      }:
      mkDerivation {
        pname = "hls-class-plugin";
-       version = "1.0.1.0";
-       sha256 = "0m1yifv7pfb4gll0zajdzxy0v0a7kwivfvbamvh9g3lf7iiy0vd0";
+       version = "1.0.1.2";
+       sha256 = "1ybg6dd3m8ynhkn80189nqc8ng2lfplk3xrq7cq4mdx4bgdnjbgq";
        libraryHaskellDepends = [
-         aeson base containers ghc ghc-api-compat ghc-exactprint ghcide
-         hls-plugin-api lens lsp text transformers
+         aeson base containers ghc ghc-exactprint ghcide hls-plugin-api lens
+         lsp text transformers
        ];
        testHaskellDepends = [
          base filepath hls-test-utils lens lsp-types
@@ -133670,20 +135924,21 @@ self: {
      }) {};
 
   "hls-eval-plugin" = callPackage
-    ({ mkDerivation, aeson, base, containers, deepseq, Diff, directory
-     , dlist, extra, filepath, ghc, ghc-api-compat, ghc-boot-th
-     , ghc-paths, ghcide, hashable, hls-plugin-api, hls-test-utils, lens
-     , lsp, lsp-types, megaparsec, mtl, parser-combinators
-     , pretty-simple, QuickCheck, safe-exceptions, temporary, text, time
-     , transformers, unliftio, unordered-containers
+    ({ mkDerivation, aeson, base, containers, data-default, deepseq
+     , Diff, directory, dlist, extra, filepath, ghc, ghc-boot-th
+     , ghc-paths, ghcide, hashable, hls-graph, hls-plugin-api
+     , hls-test-utils, lens, lsp, lsp-types, megaparsec, mtl
+     , parser-combinators, pretty-simple, QuickCheck, safe-exceptions
+     , temporary, text, time, transformers, unliftio
+     , unordered-containers
      }:
      mkDerivation {
        pname = "hls-eval-plugin";
-       version = "1.1.2.0";
-       sha256 = "11h017jy9g21ziiql61hr0q9g3wfvckyf1nfkg8vf9wnrmlzjqid";
+       version = "1.2.0.2";
+       sha256 = "0nrlfs40hmbjjw6r01b3fcxwh01b4ap9v2ij6jyqrgkbs19qfp49";
        libraryHaskellDepends = [
-         aeson base containers deepseq Diff directory dlist extra filepath
-         ghc ghc-api-compat ghc-boot-th ghc-paths ghcide hashable
+         aeson base containers data-default deepseq Diff directory dlist
+         extra filepath ghc ghc-boot-th ghc-paths ghcide hashable hls-graph
          hls-plugin-api lens lsp lsp-types megaparsec mtl parser-combinators
          pretty-simple QuickCheck safe-exceptions temporary text time
          transformers unliftio unordered-containers
@@ -133716,18 +135971,19 @@ self: {
      }) {};
 
   "hls-explicit-imports-plugin" = callPackage
-    ({ mkDerivation, aeson, base, containers, deepseq, ghc
-     , ghc-api-compat, ghcide, hls-graph, hls-plugin-api, lsp, text
+    ({ mkDerivation, aeson, base, containers, deepseq, filepath, ghc
+     , ghcide, hls-graph, hls-plugin-api, hls-test-utils, lsp, text
      , unordered-containers
      }:
      mkDerivation {
        pname = "hls-explicit-imports-plugin";
-       version = "1.0.1.0";
-       sha256 = "0frk2id6k3r58799qvppryapayvkim969xhh89i8ak5vs4a8ygpy";
+       version = "1.0.1.2";
+       sha256 = "12m0idqxx47ixyn6i03jzwp4z9xwnb5q0p0655ik03xhibwjja7d";
        libraryHaskellDepends = [
-         aeson base containers deepseq ghc ghc-api-compat ghcide hls-graph
-         hls-plugin-api lsp text unordered-containers
+         aeson base containers deepseq ghc ghcide hls-graph hls-plugin-api
+         lsp text unordered-containers
        ];
+       testHaskellDepends = [ base filepath hls-test-utils text ];
        description = "Explicit imports plugin for Haskell Language Server";
        license = lib.licenses.asl20;
      }) {};
@@ -133738,8 +135994,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-floskell-plugin";
-       version = "1.0.0.1";
-       sha256 = "0d68fa83f5r1mn0pgsi6ff3q75z83gdivmfj0pkzp1m4acy2nx7z";
+       version = "1.0.0.2";
+       sha256 = "0b9dil7sc334iv4kn1gbkvjg78pamlhrw12r6k2vsz57xkz1b7ls";
        libraryHaskellDepends = [
          base floskell ghcide hls-plugin-api lsp-types text transformers
        ];
@@ -133754,8 +136010,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-fourmolu-plugin";
-       version = "1.0.0.2";
-       sha256 = "1m56xpzf5dqmwl2jryh1lv6pghngkzr7lsda1gf0j4ydajkm5app";
+       version = "1.0.1.2";
+       sha256 = "1w7rnb18fn71aqzspq7wic0nd1qwh5r2vr9j2yiwvp95p42zxf0n";
        libraryHaskellDepends = [
          base filepath fourmolu ghc ghc-boot-th ghcide hls-plugin-api lens
          lsp text
@@ -133766,13 +136022,20 @@ self: {
      }) {};
 
   "hls-graph" = callPackage
-    ({ mkDerivation, base, bytestring, shake, unordered-containers }:
+    ({ mkDerivation, aeson, async, base, bytestring, containers
+     , deepseq, directory, exceptions, extra, filepath, hashable
+     , js-dgtable, js-flot, js-jquery, primitive, time, transformers
+     , unordered-containers
+     }:
      mkDerivation {
        pname = "hls-graph";
-       version = "1.4.0.0";
-       sha256 = "0x54lli368wncwb41klg7jpkbzm219b417aar50mgw8igwmbzqwf";
+       version = "1.5.1.1";
+       sha256 = "1ak6i03ch5xm6r4ym09k9vxfq7y5xwr9c6d84cgl8288g2i0fnpz";
+       enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         base bytestring shake unordered-containers
+         aeson async base bytestring containers deepseq directory exceptions
+         extra filepath hashable js-dgtable js-flot js-jquery primitive time
+         transformers unordered-containers
        ];
        description = "Haskell Language Server internal graph API";
        license = lib.licenses.asl20;
@@ -133785,8 +136048,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-haddock-comments-plugin";
-       version = "1.0.0.3";
-       sha256 = "1gvzzm1m6n69126z3b7mb57n0hmnj5zmn1agj927zvjvs7m1hgpx";
+       version = "1.0.0.4";
+       sha256 = "0c4s10jmp5whi7k48llqs51vp22fav5ldzyxq1cv38ai1wqma3g8";
        libraryHaskellDepends = [
          base containers ghc ghc-exactprint ghcide hls-plugin-api lsp-types
          text unordered-containers
@@ -133800,13 +136063,14 @@ self: {
     ({ mkDerivation, aeson, apply-refact, base, binary, bytestring
      , containers, data-default, deepseq, Diff, directory, extra
      , filepath, ghc, ghc-exactprint, ghc-lib, ghc-lib-parser-ex, ghcide
-     , hashable, hlint, hls-plugin-api, hslogger, lens, lsp, regex-tdfa
-     , temporary, text, transformers, unordered-containers
+     , hashable, hlint, hls-plugin-api, hls-test-utils, hslogger, lens
+     , lsp, lsp-types, regex-tdfa, temporary, text, transformers
+     , unordered-containers
      }:
      mkDerivation {
        pname = "hls-hlint-plugin";
-       version = "1.0.1.1";
-       sha256 = "0yvl7lxb5cw71nl8pzrplhws8k8khjjqxivyzs50f9yn6msr0w3z";
+       version = "1.0.2.1";
+       sha256 = "11a6gkz4af137zdg0m4bipjy2vn8bmarjd127sdrwli3vy7jzs3s";
        libraryHaskellDepends = [
          aeson apply-refact base binary bytestring containers data-default
          deepseq Diff directory extra filepath ghc ghc-exactprint ghc-lib
@@ -133814,6 +136078,10 @@ self: {
          lens lsp regex-tdfa temporary text transformers
          unordered-containers
        ];
+       testHaskellDepends = [
+         aeson base containers filepath hls-plugin-api hls-test-utils lens
+         lsp-types text
+       ];
        description = "Hlint integration plugin with Haskell Language Server";
        license = lib.licenses.asl20;
      }) {};
@@ -133825,8 +136093,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-module-name-plugin";
-       version = "1.0.0.1";
-       sha256 = "06lf7wsci6yfmlm8slv8bwmkac9086pc7lxm38ivwffrsz3ninxx";
+       version = "1.0.0.3";
+       sha256 = "0nymxfwvqalmwgv3a0a5a10vk8yi6k7r3gb1yyd0iz6vkz6k10p3";
        libraryHaskellDepends = [
          aeson base directory filepath ghcide hls-plugin-api lsp text
          transformers unordered-containers
@@ -133837,19 +136105,17 @@ self: {
      }) {};
 
   "hls-ormolu-plugin" = callPackage
-    ({ mkDerivation, base, filepath, ghc, ghc-api-compat, ghc-boot-th
-     , ghcide, hls-plugin-api, hls-test-utils, lens, lsp, lsp-types
-     , ormolu, text
+    ({ mkDerivation, base, filepath, ghc, ghc-boot-th, ghcide
+     , hls-plugin-api, hls-test-utils, lens, lsp, lsp-types, ormolu
+     , text
      }:
      mkDerivation {
        pname = "hls-ormolu-plugin";
-       version = "1.0.1.0";
-       sha256 = "0s7hynj50vldxgzii4gb0mml9gyizy3vaan1scpmhrj7kh44w746";
-       revision = "1";
-       editedCabalFile = "01g0csnjygylg0a0zmyz66rm7xvhnys40hgclm13g5rakh2jmfak";
+       version = "1.0.1.2";
+       sha256 = "1kp63ydmczvjbwzkmxzd8m4fnm8yljzxraisa85sd7pagv2djh7q";
        libraryHaskellDepends = [
-         base filepath ghc ghc-api-compat ghc-boot-th ghcide hls-plugin-api
-         lens lsp ormolu text
+         base filepath ghc ghc-boot-th ghcide hls-plugin-api lens lsp ormolu
+         text
        ];
        testHaskellDepends = [ base filepath hls-test-utils lsp-types ];
        description = "Integration with the Ormolu code formatter";
@@ -133858,19 +136124,19 @@ self: {
 
   "hls-plugin-api" = callPackage
     ({ mkDerivation, aeson, base, containers, data-default
-     , dependent-map, dependent-sum, Diff, dlist, ghc, ghc-api-compat
-     , hashable, hls-graph, hslogger, lens, lsp, opentelemetry
+     , dependent-map, dependent-sum, Diff, dlist, ghc, hashable
+     , hls-graph, hslogger, lens, lsp, opentelemetry
      , optparse-applicative, process, regex-tdfa, text, unix
      , unordered-containers
      }:
      mkDerivation {
        pname = "hls-plugin-api";
-       version = "1.2.0.1";
-       sha256 = "0hixalca3lznzgcdzk7aix0nkhdlwds83kvz7bxjgvfs3ml7gw01";
+       version = "1.2.0.2";
+       sha256 = "0mrfkqrkgvg53za026rfk6yqyyr1irk9k6k375dylaas7qlh0f0p";
        libraryHaskellDepends = [
          aeson base containers data-default dependent-map dependent-sum Diff
-         dlist ghc ghc-api-compat hashable hls-graph hslogger lens lsp
-         opentelemetry optparse-applicative process regex-tdfa text unix
+         dlist ghc hashable hls-graph hslogger lens lsp opentelemetry
+         optparse-applicative process regex-tdfa text unix
          unordered-containers
        ];
        description = "Haskell Language Server API for plugin communication";
@@ -133884,8 +136150,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-pragmas-plugin";
-       version = "1.0.1.0";
-       sha256 = "0w4q1mkpqbl27wqa06l7709y1qfdlfvavfcqvyjs1vwqf1c4q5ag";
+       version = "1.0.1.1";
+       sha256 = "1yy6avwff8swxrkhfcslckx6ql26w2chcv19z217s00y30z70xmq";
        libraryHaskellDepends = [
          base extra fuzzy ghcide hls-plugin-api lens lsp text transformers
          unordered-containers
@@ -133904,8 +136170,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-refine-imports-plugin";
-       version = "1.0.0.1";
-       sha256 = "1gc899yiqic4sbv9q70xasv96s1l7ypgxjrafqlbvw6gyyn4sarj";
+       version = "1.0.0.2";
+       sha256 = "0spxczjf85z8zvkqyqrmwjacw9f44zminm8k8ygyn6b2wh9bzyqr";
        libraryHaskellDepends = [
          aeson base containers deepseq ghc ghcide
          hls-explicit-imports-plugin hls-graph hls-plugin-api lsp text
@@ -133925,6 +136191,8 @@ self: {
        pname = "hls-rename-plugin";
        version = "1.0.0.0";
        sha256 = "0j13nh3fvvmj1sd11fiq9fccq23s6p7jz3m96b49kprkayx65zhh";
+       revision = "1";
+       editedCabalFile = "193q5qz563lvwm1vpfadr7cy7yxk15z2va5p9bw0xjz2x8yhc5fq";
        libraryHaskellDepends = [
          base containers extra ghc ghc-exactprint ghcide hiedb
          hls-plugin-api hls-retrie-plugin lsp lsp-types syb text
@@ -133937,18 +136205,17 @@ self: {
 
   "hls-retrie-plugin" = callPackage
     ({ mkDerivation, aeson, base, containers, deepseq, directory, extra
-     , ghc, ghc-api-compat, ghcide, hashable, hls-plugin-api, lsp
-     , lsp-types, retrie, safe-exceptions, text, transformers
-     , unordered-containers
+     , ghc, ghcide, hashable, hls-plugin-api, lsp, lsp-types, retrie
+     , safe-exceptions, text, transformers, unordered-containers
      }:
      mkDerivation {
        pname = "hls-retrie-plugin";
-       version = "1.0.1.2";
-       sha256 = "0pvz8vgzpaljlpfpwzhsfj5yyd3m5hvhy8b17q87ripbffpb58dr";
+       version = "1.0.1.4";
+       sha256 = "18ldvywi8zl08xfd1z4dhj84xhxa9kq0hdminv6d3xf470ghkrdv";
        libraryHaskellDepends = [
-         aeson base containers deepseq directory extra ghc ghc-api-compat
-         ghcide hashable hls-plugin-api lsp lsp-types retrie safe-exceptions
-         text transformers unordered-containers
+         aeson base containers deepseq directory extra ghc ghcide hashable
+         hls-plugin-api lsp lsp-types retrie safe-exceptions text
+         transformers unordered-containers
        ];
        description = "Retrie integration plugin for Haskell Language Server";
        license = lib.licenses.asl20;
@@ -133962,8 +136229,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-splice-plugin";
-       version = "1.0.0.4";
-       sha256 = "0l929w9f6ay4ih1yi70lhn60zy79wq2mhmmhfyv0944x44dxjk8n";
+       version = "1.0.0.6";
+       sha256 = "0cnm0kaimbcyrjgphz61fhs9wg4wscv8bj9c09pxxwz6npf2r3wz";
        libraryHaskellDepends = [
          aeson base containers dlist extra foldl ghc ghc-exactprint ghcide
          hls-plugin-api lens lsp retrie syb text transformers unliftio-core
@@ -133981,10 +136248,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-stylish-haskell-plugin";
-       version = "1.0.0.2";
-       sha256 = "0i8kjxqwg8mkk2imbc36ic2n59c09zc79g12c64vrjb7pgxpxrid";
-       revision = "1";
-       editedCabalFile = "0hwjh5b71hj6gwr73r9imlggkzv4j3z116va3y4v3h7zcjs11c4k";
+       version = "1.0.0.4";
+       sha256 = "0p6cqjslf9qnb2df6dvznyzily55mcs13f0kd0x64p8kf2chc6ic";
        libraryHaskellDepends = [
          base directory filepath ghc ghc-boot-th ghcide hls-plugin-api
          lsp-types stylish-haskell text
@@ -134006,8 +136271,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-tactics-plugin";
-       version = "1.4.0.0";
-       sha256 = "189d43vpf3sky9qh5mswmr4i0qxmjaayg20x21swaf7sglgw6lw8";
+       version = "1.5.0.1";
+       sha256 = "1fji3m1dczswzsrvvsg00jflsq9h4jpgclyma91rcncdrl7j4ylz";
        libraryHaskellDepends = [
          aeson base containers deepseq directory extra filepath fingertree
          generic-lens ghc ghc-boot-th ghc-exactprint ghc-source-gen ghcide
@@ -134034,8 +136299,8 @@ self: {
      }:
      mkDerivation {
        pname = "hls-test-utils";
-       version = "1.1.0.0";
-       sha256 = "10sjizl6bxmcf90ksrgzvxmrka41g3pa2ciwcxfpkzgx3wnf1855";
+       version = "1.1.0.2";
+       sha256 = "1506438g4bzc05f8km5kcjq8hv1sk56bllbcnjkx3fdqdamr3piv";
        libraryHaskellDepends = [
          aeson async base blaze-markup bytestring containers data-default
          directory extra filepath ghcide hls-graph hls-plugin-api hspec
@@ -134626,7 +136891,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "hmm-lapack_0_4_1" = callPackage
+  "hmm-lapack_0_5" = callPackage
     ({ mkDerivation, base, comfort-array, comfort-array-shape
      , containers, deepseq, doctest-exitcode-stdio, doctest-lib
      , explicit-exception, fixed-length, lapack, lazy-csv, netlib-ffi
@@ -134635,8 +136900,8 @@ self: {
      }:
      mkDerivation {
        pname = "hmm-lapack";
-       version = "0.4.1";
-       sha256 = "0m0axils10dr49b7ag8cnfnlwb9va6ng615hhbpqw81kir6avq6z";
+       version = "0.5";
+       sha256 = "1f66q9xq6da4xyl564jxixn60hs4qh4ksgdfigj4xsi44zij9gyx";
        libraryHaskellDepends = [
          base comfort-array comfort-array-shape containers deepseq
          explicit-exception fixed-length lapack lazy-csv netlib-ffi
@@ -135369,8 +137634,8 @@ self: {
        pname = "hoist-error";
        version = "0.2.1.0";
        sha256 = "028lczd80nhj3yj5dq9qixzdzkyisl34qpi6bb28r8b9nj2i2nss";
-       revision = "4";
-       editedCabalFile = "1xp8l236gflh5njl3s8f0d2ahqypks70pfjnawskc0fcnl818qpa";
+       revision = "5";
+       editedCabalFile = "173vmbviw39ivb1cg2c0w35m0dd32n0ki82nd6h3j8yww0pzgk5p";
        libraryHaskellDepends = [ base either mtl ];
        description = "Some convenience facilities for hoisting errors into a monad";
        license = lib.licenses.mit;
@@ -136768,8 +139033,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpack";
-       version = "0.34.5";
-       sha256 = "0gmm6jgi1sgyilphww6apq1x04grqznm7xhyb7g1rj5j7my40ws2";
+       version = "0.34.6";
+       sha256 = "0hmaf5j4blyav3a0r1qbdhr5hs8s88c6l7ryxi011xj7hqs4fi8w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -136859,6 +139124,37 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hpack-dhall_0_5_4" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, Cabal
+     , dhall, dhall-json, Diff, directory, filepath, hlint, hpack
+     , megaparsec, microlens, optparse-applicative, prettyprinter, tasty
+     , tasty-golden, text, transformers, utf8-string, yaml
+     }:
+     mkDerivation {
+       pname = "hpack-dhall";
+       version = "0.5.4";
+       sha256 = "0yhf9b1nadcz98bq84jzb80mc1w4a6sph5d6c4pnf2xj2akdxcxf";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty base bytestring dhall dhall-json filepath hpack
+         megaparsec microlens prettyprinter text transformers yaml
+       ];
+       executableHaskellDepends = [
+         aeson aeson-pretty base bytestring dhall dhall-json filepath hpack
+         megaparsec microlens optparse-applicative prettyprinter text
+         transformers yaml
+       ];
+       testHaskellDepends = [
+         aeson aeson-pretty base bytestring Cabal dhall dhall-json Diff
+         directory filepath hlint hpack megaparsec microlens prettyprinter
+         tasty tasty-golden text transformers utf8-string yaml
+       ];
+       description = "hpack's dhalling";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hpaco" = callPackage
     ({ mkDerivation, aeson, base, cmdargs, filepath, hpaco-lib, strict
      , utf8-string, yaml
@@ -137382,8 +139678,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpqtypes-extras";
-       version = "1.13.0.0";
-       sha256 = "07pma23i8cy8153g3grb1jr4sasaaczlqym1jv9q5vzb03mdqcaw";
+       version = "1.14.0.0";
+       sha256 = "143ghr188d9kp0cz421pr87sdvf2nzabp76b3py716xmrz9jckq5";
        libraryHaskellDepends = [
          base base16-bytestring bytestring containers cryptohash exceptions
          extra fields-json hpqtypes lifted-base log-base monad-control mtl
@@ -137902,6 +140198,29 @@ self: {
        license = lib.licenses.bsd3;
      }) {inherit (pkgs) ruby;};
 
+  "hruby_0_4_0_0" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal
+     , process, QuickCheck, ruby, scientific, stm, text
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "hruby";
+       version = "0.4.0.0";
+       sha256 = "0qd3mfc8mr5b0vmvfqnmjrba5abvwb4vn6mjlm0mhlgigmh685f9";
+       setupHaskellDepends = [ base Cabal process ];
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring scientific stm text
+         unordered-containers vector
+       ];
+       librarySystemDepends = [ ruby ];
+       testHaskellDepends = [
+         aeson attoparsec base QuickCheck text vector
+       ];
+       description = "Embed a Ruby intepreter in your Haskell program !";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) ruby;};
+
   "hs" = callPackage
     ({ mkDerivation, base, containers, data-default, directory
      , enum-text, filepath, fmt, optparse-applicative, possibly, text
@@ -138419,6 +140738,169 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hs-opentelemetry-api" = callPackage
+    ({ mkDerivation, async, attoparsec, base, binary, bytestring
+     , charset, clock, containers, ghc-prim, hashable, hspec, http-types
+     , memory, mtl, template-haskell, text, thread-utils-context
+     , unliftio-core, unordered-containers, vault, vector
+     , vector-builder
+     }:
+     mkDerivation {
+       pname = "hs-opentelemetry-api";
+       version = "0.0.2.0";
+       sha256 = "1mbcqifvpx4xrlwv6bg2rgz8m6b55f40vlc23yi03893i885qn86";
+       libraryHaskellDepends = [
+         async attoparsec base binary bytestring charset clock containers
+         ghc-prim hashable http-types memory mtl template-haskell text
+         thread-utils-context unliftio-core unordered-containers vault
+         vector vector-builder
+       ];
+       testHaskellDepends = [
+         async attoparsec base binary bytestring charset clock containers
+         ghc-prim hashable hspec http-types memory mtl template-haskell text
+         thread-utils-context unliftio-core unordered-containers vault
+         vector vector-builder
+       ];
+       description = "OpenTelemetry API for use by libraries for direct instrumentation or wrapper packages";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "hs-opentelemetry-exporter-in-memory" = callPackage
+    ({ mkDerivation, async, base, hs-opentelemetry-api, unagi-chan }:
+     mkDerivation {
+       pname = "hs-opentelemetry-exporter-in-memory";
+       version = "0.0.1.1";
+       sha256 = "0vfkfdr20w6a7xf0ppsj4nns5nfgs6bib8vm7fpgra1mpsvi31v7";
+       libraryHaskellDepends = [
+         async base hs-opentelemetry-api unagi-chan
+       ];
+       testHaskellDepends = [
+         async base hs-opentelemetry-api unagi-chan
+       ];
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "hs-opentelemetry-exporter-otlp" = callPackage
+    ({ mkDerivation, base, bytestring, case-insensitive, clock
+     , hs-opentelemetry-api, hs-opentelemetry-otlp, http-client
+     , http-conduit, http-types, microlens, mtl, proto-lens, text
+     , unordered-containers, vector, vector-builder, zlib
+     }:
+     mkDerivation {
+       pname = "hs-opentelemetry-exporter-otlp";
+       version = "0.0.1.1";
+       sha256 = "1r7f54dw183gg3vh806saqwmmf0yvh2w4a854szp9h0x5qf17hn1";
+       libraryHaskellDepends = [
+         base bytestring case-insensitive clock hs-opentelemetry-api
+         hs-opentelemetry-otlp http-client http-conduit http-types microlens
+         mtl proto-lens text unordered-containers vector vector-builder zlib
+       ];
+       testHaskellDepends = [
+         base bytestring case-insensitive clock hs-opentelemetry-api
+         hs-opentelemetry-otlp http-client http-conduit http-types microlens
+         mtl proto-lens text unordered-containers vector vector-builder zlib
+       ];
+       description = "OpenTelemetry exporter supporting the standard OTLP protocol";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "hs-opentelemetry-instrumentation-wai" = callPackage
+    ({ mkDerivation, base, bytestring, hs-opentelemetry-api, http-types
+     , iproute, network, text, vault, wai
+     }:
+     mkDerivation {
+       pname = "hs-opentelemetry-instrumentation-wai";
+       version = "0.0.1.1";
+       sha256 = "1pc3m8sw7nymcx3f3ys24hby9j6g874ijxr7lnxmp8iis3l0kd3d";
+       libraryHaskellDepends = [
+         base bytestring hs-opentelemetry-api http-types iproute network
+         text vault wai
+       ];
+       testHaskellDepends = [
+         base bytestring hs-opentelemetry-api http-types iproute network
+         text vault wai
+       ];
+       description = "WAI instrumentation middleware for OpenTelemetry";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "hs-opentelemetry-instrumentation-yesod" = callPackage
+    ({ mkDerivation, base, hs-opentelemetry-api
+     , hs-opentelemetry-instrumentation-wai, microlens, mtl
+     , template-haskell, text, unliftio, wai, yesod-core
+     }:
+     mkDerivation {
+       pname = "hs-opentelemetry-instrumentation-yesod";
+       version = "0.0.1.1";
+       sha256 = "0wavva2amc439qa7zjf9q323dcpjg1kcbgzbhw71wljywjv9g9xg";
+       libraryHaskellDepends = [
+         base hs-opentelemetry-api hs-opentelemetry-instrumentation-wai
+         microlens mtl template-haskell text unliftio wai yesod-core
+       ];
+       testHaskellDepends = [
+         base hs-opentelemetry-api hs-opentelemetry-instrumentation-wai
+         microlens mtl template-haskell text unliftio wai yesod-core
+       ];
+       description = "Yesod middleware for providing OpenTelemetry instrumentation";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "hs-opentelemetry-otlp" = callPackage
+    ({ mkDerivation, base, proto-lens, proto-lens-runtime }:
+     mkDerivation {
+       pname = "hs-opentelemetry-otlp";
+       version = "0.0.1.0";
+       sha256 = "1hlflmr51lz4pbxxmlmp2rb5p4lcj09fhry41rv52nmk9iim4qr0";
+       libraryHaskellDepends = [ base proto-lens proto-lens-runtime ];
+       description = "OpenTelemetry protocol buffer modules generated for the OTLP protocol by the proto-lens package";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "hs-opentelemetry-propagator-w3c" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, hs-opentelemetry-api
+     , http-types, text
+     }:
+     mkDerivation {
+       pname = "hs-opentelemetry-propagator-w3c";
+       version = "0.0.1.1";
+       sha256 = "02jxrfx7jccbd8n2w3brnz4dzhabysrrbsps77xhpma7dpfmgq5q";
+       libraryHaskellDepends = [
+         attoparsec base bytestring hs-opentelemetry-api http-types text
+       ];
+       testHaskellDepends = [
+         attoparsec base bytestring hs-opentelemetry-api http-types text
+       ];
+       description = "Trace propagation via HTTP headers following the w3c tracestate spec";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "hs-opentelemetry-sdk" = callPackage
+    ({ mkDerivation, async, base, bytestring, clock
+     , hs-opentelemetry-api, hs-opentelemetry-exporter-otlp
+     , hs-opentelemetry-propagator-w3c, hspec, http-types, mwc-random
+     , network-bsd, random, random-bytestring, stm, text, unagi-chan
+     , unix, unordered-containers, vector, vector-builder
+     }:
+     mkDerivation {
+       pname = "hs-opentelemetry-sdk";
+       version = "0.0.2.0";
+       sha256 = "0kph4vqapk15c833kakvk9nl2v07sa8cwy6bj2graini386f04d5";
+       libraryHaskellDepends = [
+         async base bytestring hs-opentelemetry-api
+         hs-opentelemetry-exporter-otlp hs-opentelemetry-propagator-w3c
+         http-types mwc-random network-bsd random random-bytestring stm text
+         unagi-chan unix unordered-containers vector vector-builder
+       ];
+       testHaskellDepends = [
+         async base bytestring clock hs-opentelemetry-api
+         hs-opentelemetry-exporter-otlp hs-opentelemetry-propagator-w3c
+         hspec http-types mwc-random network-bsd random random-bytestring
+         stm text unagi-chan unix unordered-containers vector vector-builder
+       ];
+       description = "OpenTelemetry SDK for use in applications";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "hs-pattrans" = callPackage
     ({ mkDerivation, async, base, bytestring, cassava, Chart
      , Chart-cairo, colour, containers, contravariant, directory
@@ -140516,6 +142998,28 @@ self: {
        license = lib.licenses.isc;
      }) {};
 
+  "hsinstall_2_7" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, base, Cabal, directory, exceptions
+     , filepath, heredoc, newtype-generics, optparse-applicative
+     , process, safe-exceptions, transformers
+     }:
+     mkDerivation {
+       pname = "hsinstall";
+       version = "2.7";
+       sha256 = "142gdcdka2i61hv9pxpqfi25h5nzz8k7nxlnymfmn4inpayvdr29";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base directory filepath ];
+       executableHaskellDepends = [
+         ansi-wl-pprint base Cabal directory exceptions filepath heredoc
+         newtype-generics optparse-applicative process safe-exceptions
+         transformers
+       ];
+       description = "Install Haskell software";
+       license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hskeleton" = callPackage
     ({ mkDerivation, base, Cabal }:
      mkDerivation {
@@ -140587,8 +143091,8 @@ self: {
        pname = "hslogger";
        version = "1.3.1.0";
        sha256 = "0nyar9xcblx5jwks85y8f4jfy9k1h4ss6rvj4mdbiidrq3v688vz";
-       revision = "4";
-       editedCabalFile = "0249qf58s5dvqf98xqbqqigav055dgj5cx4dmz4ssl8ckk2dizdk";
+       revision = "5";
+       editedCabalFile = "1qd2z4rn478mwqcslzdk71izjmmhn1kw115fy7iryaf3kdc1j0g4";
        libraryHaskellDepends = [
          base bytestring containers deepseq network network-bsd old-locale
          time unix
@@ -140737,6 +143241,31 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hslua-aeson_2_0_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, hashable
+     , hslua-core, hslua-marshalling, ieee754, mtl, QuickCheck
+     , quickcheck-instances, scientific, tasty, tasty-hunit
+     , tasty-quickcheck, text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "hslua-aeson";
+       version = "2.0.0";
+       sha256 = "0djxr6f93n8dmaq4s8dfx0msx8vsg4mdszn407p48vlykxlgzpvd";
+       libraryHaskellDepends = [
+         aeson base bytestring containers hashable hslua-core
+         hslua-marshalling mtl scientific text unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers hashable hslua-core
+         hslua-marshalling ieee754 mtl QuickCheck quickcheck-instances
+         scientific tasty tasty-hunit tasty-quickcheck text
+         unordered-containers vector
+       ];
+       description = "Allow aeson data types to be used with lua";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hslua-classes" = callPackage
     ({ mkDerivation, base, bytestring, containers, exceptions
      , hslua-core, hslua-marshalling, lua-arbitrary, QuickCheck
@@ -141397,14 +143926,14 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hspec_2_8_4" = callPackage
+  "hspec_2_9_4" = callPackage
     ({ mkDerivation, base, hspec-core, hspec-discover
      , hspec-expectations, QuickCheck
      }:
      mkDerivation {
        pname = "hspec";
-       version = "2.8.4";
-       sha256 = "08br1ln5drvw1b9sf9cpxbz31v88p9b7b3hb00qn9vcim5yridz1";
+       version = "2.9.4";
+       sha256 = "1s009dn0hkqfn5c0y0xfja18wps430f2dkga9mfrrndhvlvx8fm3";
        libraryHaskellDepends = [
          base hspec-core hspec-discover hspec-expectations QuickCheck
        ];
@@ -141495,26 +144024,27 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hspec-core_2_8_4" = callPackage
-    ({ mkDerivation, ansi-terminal, array, base, call-stack, clock
-     , deepseq, directory, filepath, hspec-expectations, hspec-meta
-     , HUnit, process, QuickCheck, quickcheck-io, random, setenv
-     , silently, stm, temporary, tf-random, transformers
+  "hspec-core_2_9_4" = callPackage
+    ({ mkDerivation, ansi-terminal, array, base, base-orphans
+     , call-stack, clock, deepseq, directory, filepath, ghc, ghc-boot-th
+     , hspec-expectations, hspec-meta, HUnit, process, QuickCheck
+     , quickcheck-io, random, setenv, silently, stm, temporary
+     , tf-random, transformers
      }:
      mkDerivation {
        pname = "hspec-core";
-       version = "2.8.4";
-       sha256 = "11iii063vhsr3qpcadwllmgfhyvykkh1chzpm3bzqfjm1n00vy6d";
+       version = "2.9.4";
+       sha256 = "0bkr2hywmlawyyrp27xgfd4a080bk1i5kj81hcxbg2w8y0i7r0w4";
        libraryHaskellDepends = [
          ansi-terminal array base call-stack clock deepseq directory
-         filepath hspec-expectations HUnit QuickCheck quickcheck-io random
-         setenv stm tf-random transformers
+         filepath ghc ghc-boot-th hspec-expectations HUnit QuickCheck
+         quickcheck-io random setenv stm tf-random transformers
        ];
        testHaskellDepends = [
-         ansi-terminal array base call-stack clock deepseq directory
-         filepath hspec-expectations hspec-meta HUnit process QuickCheck
-         quickcheck-io random setenv silently stm temporary tf-random
-         transformers
+         ansi-terminal array base base-orphans call-stack clock deepseq
+         directory filepath ghc ghc-boot-th hspec-expectations hspec-meta
+         HUnit process QuickCheck quickcheck-io random setenv silently stm
+         temporary tf-random transformers
        ];
        testToolDepends = [ hspec-meta ];
        testTarget = "--test-option=--skip --test-option='Test.Hspec.Core.Runner.hspecResult runs specs in parallel'";
@@ -141561,16 +144091,14 @@ self: {
        maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
-  "hspec-discover_2_8_4" = callPackage
+  "hspec-discover_2_9_4" = callPackage
     ({ mkDerivation, base, directory, filepath, hspec-meta, mockery
      , QuickCheck
      }:
      mkDerivation {
        pname = "hspec-discover";
-       version = "2.8.4";
-       sha256 = "0nwayx09i7dfqc56gxq6pq629gnwy10bbn3px7lrq4rkbz3l86y6";
-       revision = "1";
-       editedCabalFile = "1wi0lq9zhgd5v9zavlw65dhzyw7hyivp8rv3i2ik54pk4j5gp36q";
+       version = "2.9.4";
+       sha256 = "16y3z6f32bbnkxw142y90hs0512rh2mp9904ffahmag9m95qfbnv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base directory filepath ];
@@ -141614,6 +144142,23 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hspec-expectations-json_1_0_0_5" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, aeson-qq, base, Diff, hspec
+     , HUnit, scientific, text, vector
+     }:
+     mkDerivation {
+       pname = "hspec-expectations-json";
+       version = "1.0.0.5";
+       sha256 = "12kb0dsw36rwg522lhs31gi2ij8vf8lq36j3983i352yiqrzb586";
+       libraryHaskellDepends = [
+         aeson aeson-pretty base Diff HUnit scientific text vector
+       ];
+       testHaskellDepends = [ aeson-qq base hspec ];
+       description = "Hspec expectations for JSON Values";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hspec-expectations-lens" = callPackage
     ({ mkDerivation, base, hspec, hspec-expectations, HUnit, lens
      , silently
@@ -141847,19 +144392,24 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hspec-junit-formatter_1_0_1_0" = callPackage
+  "hspec-junit-formatter_1_1_0_0" = callPackage
     ({ mkDerivation, base, conduit, containers, directory, exceptions
-     , filepath, hspec, hspec-core, text, time, xml-conduit, xml-types
+     , filepath, hspec, hspec-core, markdown-unlit, temporary, text
+     , time, xml-conduit, xml-types
      }:
      mkDerivation {
        pname = "hspec-junit-formatter";
-       version = "1.0.1.0";
-       sha256 = "1n0hv2xhplpg6fhy8dxzp63k4b7mfzm1g92wglrsqc2lsvnx09ky";
+       version = "1.1.0.0";
+       sha256 = "024xvpnyhlgg435bhh4klf2bl8siy7vx0k5y2nccyhv16bchhl96";
        libraryHaskellDepends = [
          base conduit containers directory exceptions filepath hspec-core
          text time xml-conduit xml-types
        ];
-       testHaskellDepends = [ base hspec ];
+       testHaskellDepends = [
+         base containers filepath hspec hspec-core markdown-unlit temporary
+         text xml-conduit
+       ];
+       testToolDepends = [ markdown-unlit ];
        description = "A JUnit XML runner/formatter for hspec";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
@@ -141931,6 +144481,32 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hspec-meta_2_9_3" = callPackage
+    ({ mkDerivation, ansi-terminal, array, base, call-stack, clock
+     , deepseq, directory, filepath, ghc, ghc-boot-th, QuickCheck
+     , quickcheck-io, random, setenv, stm, time, transformers
+     }:
+     mkDerivation {
+       pname = "hspec-meta";
+       version = "2.9.3";
+       sha256 = "1raxwpsmcijl3x2h5naw6aydhbiknxvhj3x7v384bi1rqi51ainm";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-terminal array base call-stack clock deepseq directory
+         filepath ghc ghc-boot-th QuickCheck quickcheck-io random setenv stm
+         time transformers
+       ];
+       executableHaskellDepends = [
+         ansi-terminal array base call-stack clock deepseq directory
+         filepath ghc ghc-boot-th QuickCheck quickcheck-io random setenv
+         time transformers
+       ];
+       description = "A version of Hspec which is used to test Hspec itself";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hspec-monad-control" = callPackage
     ({ mkDerivation, base, hspec-core, monad-control, transformers
      , transformers-base
@@ -141970,8 +144546,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-need-env";
-       version = "0.1.0.7";
-       sha256 = "068cv4n3j5x0zdjrhrk2acc17gr2rvr9n5d4znzmmfbmcrpqhwkp";
+       version = "0.1.0.8";
+       sha256 = "0bh420y4rcp3pvdccxzlasmcbqpj4zdxfphywfi8q4gqryz32cc9";
        libraryHaskellDepends = [ base hspec-core hspec-expectations ];
        testHaskellDepends = [ base hspec hspec-core setenv transformers ];
        testToolDepends = [ hspec-discover ];
@@ -143946,8 +146522,8 @@ self: {
        pname = "http-api-data";
        version = "0.4.3";
        sha256 = "171bw2a44pg50d3y77gw2y9vmx72laky7hnn5hw6r93pnjmlf9yz";
-       revision = "3";
-       editedCabalFile = "0hmi3jbk53pa58k86nl07m133x20bx3ls3vyvn4sjxfapdyh81wn";
+       revision = "5";
+       editedCabalFile = "18gh7q1j2jiz4c6sn352j5rl4009gi238nni8ff9kqgi3c4mlrs0";
        libraryHaskellDepends = [
          attoparsec attoparsec-iso8601 base base-compat bytestring
          containers cookie hashable http-types tagged text time-compat
@@ -143964,6 +146540,26 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "http-api-data-qq" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, http-api-data
+     , http-client, tasty, tasty-hunit, tasty-quickcheck
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "http-api-data-qq";
+       version = "0.1.0.0";
+       sha256 = "1lvfdbprdwq09k1wkjfvvkpi79053dc4kzkv4g1cx94qb1flbd7a";
+       libraryHaskellDepends = [
+         base http-api-data template-haskell text
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers http-api-data http-client tasty
+         tasty-hunit tasty-quickcheck text
+       ];
+       description = "Quasiquoter for building URLs with ToHttpApiData types";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "http-attoparsec" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, http-types }:
      mkDerivation {
@@ -144398,16 +146994,16 @@ self: {
 
   "http-directory" = callPackage
     ({ mkDerivation, base, bytestring, hspec, html-conduit, http-client
-     , http-client-tls, http-date, http-types, network-uri, text, time
-     , xml-conduit
+     , http-client-tls, http-conduit, http-date, http-types, network-uri
+     , text, time, xml-conduit
      }:
      mkDerivation {
        pname = "http-directory";
-       version = "0.1.8";
-       sha256 = "0sav7z5vdda6zq1xyhvrqwh3kdn1bnpmwlhiaxr3sb1npz3hjgcn";
+       version = "0.1.9";
+       sha256 = "0hvrajwap7ilqi6ika0vd3hf83k1p3wr3ck6bvz8kayim8ih7apz";
        libraryHaskellDepends = [
-         base bytestring html-conduit http-client http-client-tls http-date
-         http-types network-uri text time xml-conduit
+         base bytestring html-conduit http-client http-client-tls
+         http-conduit http-date http-types network-uri text time xml-conduit
        ];
        testHaskellDepends = [ base hspec text ];
        description = "http directory listing library";
@@ -144632,8 +147228,8 @@ self: {
        pname = "http-media";
        version = "0.8.0.0";
        sha256 = "0lww5cxrc9jlvzsysjv99lca33i4rb7cll66p3c0rdpmvz8pk0ir";
-       revision = "5";
-       editedCabalFile = "0wf39pdag8a81ksk5xrgjzzzhav62vw2s77p43y7n3zkz5vynw7n";
+       revision = "6";
+       editedCabalFile = "08r6a83awajyyv9wwd2i17vvksvg9b7d8kyblfi4j3ab1bz62grv";
        libraryHaskellDepends = [
          base bytestring case-insensitive containers utf8-string
        ];
@@ -144799,8 +147395,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-query";
-       version = "0.1.0.1";
-       sha256 = "11l3bxbaxkd0mrarp5l3s3c4xhvdiq8lj739hxspi6cgk0ywjwxw";
+       version = "0.1.1";
+       sha256 = "0k97ck1x2j9is5bslxaaw1fghh4yrvy50fahdy7sg51h5ihzcarp";
        libraryHaskellDepends = [
          aeson base bytestring http-conduit network-uri text
        ];
@@ -145192,8 +147788,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "HTTP/3 library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "httpd-shed" = callPackage
@@ -146025,14 +148619,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "hvega_0_12_0_0" = callPackage
+  "hvega_0_12_0_2" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
      , filepath, tasty, tasty-golden, text, unordered-containers
      }:
      mkDerivation {
        pname = "hvega";
-       version = "0.12.0.0";
-       sha256 = "1zb79dbnznp1y08a497kgc423c7zmppz0qkfb04bnmffcp1p1ymn";
+       version = "0.12.0.2";
+       sha256 = "0m78j7w7sf09yvvs995pvk66ifli7q1bl7r739mgm9dgxaw7wqhm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ aeson base text unordered-containers ];
@@ -148306,8 +150900,8 @@ self: {
      }:
      mkDerivation {
        pname = "hyperloglog";
-       version = "0.4.4";
-       sha256 = "0iwjxv934vid7bzaxyqq4v7r52vdcqjxmw043dmxykwyzim59l3v";
+       version = "0.4.5";
+       sha256 = "0v2zw0p104gbydj6hp2cxa2s4b85pq4srcspr582aqj38bs7spfz";
        libraryHaskellDepends = [
          approximate base binary bits bytes cereal cereal-vector comonad
          deepseq distributive hashable lens reflection semigroupoids
@@ -148399,6 +150993,8 @@ self: {
        pname = "hyphenation";
        version = "0.8.2";
        sha256 = "05330kd99cg9v6w26sj87wk2nfvpmn2r177kr66vr9n0rlmia60y";
+       revision = "1";
+       editedCabalFile = "1ylp7a274rg3ymkj39v27ab387dp04cbagd5jxb4qfqqjrbkvyrs";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers file-embed text unordered-containers
@@ -149506,27 +152102,27 @@ self: {
      }) {};
 
   "ihaskell" = callPackage
-    ({ mkDerivation, aeson, base, base64-bytestring, bytestring, cereal
+    ({ mkDerivation, aeson, base, base64-bytestring, binary, bytestring
      , cmdargs, containers, directory, exceptions, filepath, ghc
      , ghc-boot, ghc-parser, ghc-paths, haskeline, here, hlint, hspec
      , hspec-contrib, http-client, http-client-tls, HUnit
-     , ipython-kernel, mtl, parsec, process, random, raw-strings-qq
-     , setenv, shelly, split, stm, strict, text, time, transformers
-     , unix, unordered-containers, utf8-string, vector
+     , ipython-kernel, parsec, process, random, raw-strings-qq, setenv
+     , shelly, split, stm, strict, text, time, transformers, unix
+     , unordered-containers, utf8-string, vector
      }:
      mkDerivation {
        pname = "ihaskell";
-       version = "0.10.2.1";
-       sha256 = "1bpxm51c8f0cl7cvg7d2f39fnar7a811s3fgxvxmvsb7yw3v92vc";
+       version = "0.10.2.2";
+       sha256 = "1lcyhj19v44wc6blj31fc4gfzsbqj0wnf9fyll8xi4nq0wq0zw89";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson base base64-bytestring bytestring cereal cmdargs containers
+         aeson base base64-bytestring binary bytestring cmdargs containers
          directory exceptions filepath ghc ghc-boot ghc-parser ghc-paths
-         haskeline hlint http-client http-client-tls ipython-kernel mtl
-         parsec process random shelly split stm strict text time
-         transformers unix unordered-containers utf8-string vector
+         haskeline hlint http-client http-client-tls ipython-kernel parsec
+         process random shelly split stm strict text time transformers unix
+         unordered-containers utf8-string vector
        ];
        executableHaskellDepends = [
          aeson base bytestring containers directory ghc ipython-kernel
@@ -149657,8 +152253,8 @@ self: {
     ({ mkDerivation, aeson, base, hvega, ihaskell, text }:
      mkDerivation {
        pname = "ihaskell-hvega";
-       version = "0.4.0.0";
-       sha256 = "0sdgrlirnjb1bg6l5a6k3y084q3jddl08h032m0smaalvzcyl21b";
+       version = "0.5.0.2";
+       sha256 = "0r0q4hfjcm2p229k2xwyh9xrxbm6i3vpy13rjpsv4x5n30rsv56s";
        libraryHaskellDepends = [ aeson base hvega ihaskell text ];
        description = "IHaskell display instance for hvega types";
        license = lib.licenses.bsd3;
@@ -149817,8 +152413,8 @@ self: {
        pname = "ilist";
        version = "0.4.0.1";
        sha256 = "016wa9n4glxcyvbifvfz2khk9i1i5wzfyl952vp1fhwpjrr8aj04";
-       revision = "1";
-       editedCabalFile = "0v95piihkiaw69n5wr761h7ky463z6irpg4dwszj1b7g0g7vcyhy";
+       revision = "2";
+       editedCabalFile = "0iq78rqv6w6vir85p921sawbvkn8lrlhfqd5yx4j2laljcmg2isr";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec transformers ];
        benchmarkHaskellDepends = [
@@ -150383,8 +152979,8 @@ self: {
      }:
      mkDerivation {
        pname = "implicit-hie-cradle";
-       version = "0.4.0.1";
-       sha256 = "07k0d2lda4kj20121h8lzbjl074s90cnhbins1dvgngxbz0ddxa2";
+       version = "0.5.0.0";
+       sha256 = "0cfciqc0lpvksyvs3azqncbc0c2ckqg9avzd69cnd59b0mc8jsiy";
        libraryHaskellDepends = [
          base base16-bytestring bytestring containers directory extra
          filepath hie-bios hslogger implicit-hie process temporary text time
@@ -151064,6 +153660,8 @@ self: {
        pname = "indexed-traversable";
        version = "0.1.2";
        sha256 = "13b91rkhs6wcshaz3dwx6x3xjpw5z5bm2riwp78zxccqf7p5hs2i";
+       revision = "1";
+       editedCabalFile = "0rbcfl0iklix3ppfkxh88y70qmm64lg1l4679z5krya2fa42hqnn";
        libraryHaskellDepends = [ array base containers transformers ];
        description = "FunctorWithIndex, FoldableWithIndex, TraversableWithIndex";
        license = lib.licenses.bsd2;
@@ -151400,8 +153998,8 @@ self: {
      }:
      mkDerivation {
        pname = "influxdb";
-       version = "1.9.2.1";
-       sha256 = "1w47wfzrl6bqac251qfpq7mja9n08kf9cgp76mmyfq3yfzcxn1wl";
+       version = "1.9.2.2";
+       sha256 = "08nqby0m69n8vqppprd3wk5z4r0aqs8kggkjzps106k809q0ycdg";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -151706,8 +154304,8 @@ self: {
      }:
      mkDerivation {
        pname = "inline-r";
-       version = "0.10.4";
-       sha256 = "0jvfi2izhxn0n5xzz6rhhfs3fxlx7p1mhd9pjrazqckib14jw8ml";
+       version = "0.10.5";
+       sha256 = "1jaj3p4vj9g1pk4rfs1sywbq04w24g137yvl6g6mlsxyzd4mldwh";
        libraryHaskellDepends = [
          aeson base bytestring containers data-default-class deepseq
          exceptions inline-c mtl pretty primitive process reflection setenv
@@ -151785,24 +154383,20 @@ self: {
   "insert-ordered-containers" = callPackage
     ({ mkDerivation, aeson, base, base-compat, deepseq, hashable
      , indexed-traversable, lens, optics-core, optics-extra, QuickCheck
-     , semigroupoids, semigroups, tasty, tasty-quickcheck, text
-     , transformers, unordered-containers
+     , semigroupoids, tasty, tasty-quickcheck, text, transformers
+     , unordered-containers
      }:
      mkDerivation {
        pname = "insert-ordered-containers";
-       version = "0.2.5";
-       sha256 = "0bb3ggzic8z5zmvmzp1fsnb572c2v383740b0ddf1fwihpn52c1y";
-       revision = "2";
-       editedCabalFile = "1xjrd1sn3wkhv8f40wi5p53y8n74lkj5pnr4psjlbpqqlr4hy2ya";
+       version = "0.2.5.1";
+       sha256 = "1mnc0gby7xz8065rvkqsaqk1vqs0gv1y9qgvwsvxx3gsg9yj3a7r";
        libraryHaskellDepends = [
-         aeson base base-compat deepseq hashable indexed-traversable lens
-         optics-core optics-extra semigroupoids semigroups text transformers
-         unordered-containers
+         aeson base deepseq hashable indexed-traversable lens optics-core
+         optics-extra semigroupoids text transformers unordered-containers
        ];
        testHaskellDepends = [
-         aeson base base-compat hashable lens QuickCheck semigroupoids
-         semigroups tasty tasty-quickcheck text transformers
-         unordered-containers
+         aeson base base-compat hashable lens QuickCheck semigroupoids tasty
+         tasty-quickcheck text unordered-containers
        ];
        description = "Associative containers retaining insertion order for traversals";
        license = lib.licenses.bsd3;
@@ -152152,8 +154746,8 @@ self: {
        pname = "intcode";
        version = "0.3.0.0";
        sha256 = "0qcws15hn03wnsv1rg93sw9zhwsyvwpiafrmwnyv9v990qap1x8y";
-       revision = "2";
-       editedCabalFile = "1yd0i90i910ysc7xflpdnkp4bgp1k6cdcl8p3qwqi07vlngkscxw";
+       revision = "3";
+       editedCabalFile = "1afp0s2zgqnkfh7qszpqbm3slmj021pmin9id1pyns8k9al06v2y";
        libraryHaskellDepends = [ base containers primitive ];
        testHaskellDepends = [ base containers doctest primitive ];
        description = "Advent of Code 2019 intcode interpreter";
@@ -152212,25 +154806,8 @@ self: {
      }:
      mkDerivation {
        pname = "integer-roots";
-       version = "1.0.0.1";
-       sha256 = "1q0gmgxr5xm15y1id47851z2mcklzrwrv5a9jcjadkarx21knc7q";
-       libraryHaskellDepends = [ base integer-gmp ];
-       testHaskellDepends = [
-         base doctest smallcheck tasty tasty-hunit tasty-quickcheck
-         tasty-smallcheck
-       ];
-       description = "Integer roots and perfect powers";
-       license = lib.licenses.mit;
-     }) {};
-
-  "integer-roots_1_0_1_0" = callPackage
-    ({ mkDerivation, base, doctest, integer-gmp, smallcheck, tasty
-     , tasty-hunit, tasty-quickcheck, tasty-smallcheck
-     }:
-     mkDerivation {
-       pname = "integer-roots";
-       version = "1.0.1.0";
-       sha256 = "13x74gdh5wh9cr1yfx5l57p06aslcb3pncf8rhn6ihsfk2ni1sm4";
+       version = "1.0.2.0";
+       sha256 = "15sn3jgm8axm8f9z02aj3xdf318qwwc5qfc8b4r0n7hfr1jgrqs5";
        libraryHaskellDepends = [ base integer-gmp ];
        testHaskellDepends = [
          base doctest smallcheck tasty tasty-hunit tasty-quickcheck
@@ -152238,7 +154815,6 @@ self: {
        ];
        description = "Integer roots and perfect powers";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "integer-simple" = callPackage
@@ -152763,8 +155339,8 @@ self: {
      }:
      mkDerivation {
        pname = "interval-algebra";
-       version = "1.1.0";
-       sha256 = "16xx8fw7xf8rrji9n34r3xchjpd6sh3wnlbz70a3mhbdl3yp55vq";
+       version = "1.1.2";
+       sha256 = "0cnzlsmqg6snvggq7fh2c6hmjaijxqz8ng0lnzfyz8p3lk4p42zi";
        libraryHaskellDepends = [
          base containers foldl QuickCheck safe time witherable
        ];
@@ -153061,6 +155637,8 @@ self: {
        pname = "invertible-grammar";
        version = "0.1.3.2";
        sha256 = "14i0xf5j01j6ayvxix32qr2m0bz3818q26z3b4xyw41ikbhxmkp2";
+       revision = "1";
+       editedCabalFile = "0h3m4i3myp1vv9arw4v0yy88ddwgynyna2s86kvfa9sjljb6nbqh";
        libraryHaskellDepends = [
          base bifunctors containers mtl prettyprinter profunctors semigroups
          tagged template-haskell text transformers
@@ -153460,12 +156038,17 @@ self: {
      }) {};
 
   "ip2location" = callPackage
-    ({ mkDerivation, base, binary, bytestring, iproute }:
+    ({ mkDerivation, aeson, base, binary, bytestring, http-client
+     , http-client-tls, http-types, iproute, split, uri-encode
+     }:
      mkDerivation {
        pname = "ip2location";
-       version = "8.3.1";
-       sha256 = "01sdx0j0rm7rgylac51mk4ph5krdnzdd8532di5g5ik3p112dzg8";
-       libraryHaskellDepends = [ base binary bytestring iproute ];
+       version = "8.4.0";
+       sha256 = "0004hfjvy5dcvvphiarswpy7vnl4lip25qbc662l6vjia0wwn95x";
+       libraryHaskellDepends = [
+         aeson base binary bytestring http-client http-client-tls http-types
+         iproute split uri-encode
+       ];
        description = "IP2Location Haskell package for IP geolocation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
@@ -153758,22 +156341,22 @@ self: {
      }) {};
 
   "ipython-kernel" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, cereal, cereal-text
-     , containers, cryptonite, directory, filepath, memory, mtl, parsec
-     , process, temporary, text, transformers, unordered-containers
-     , uuid, zeromq4-haskell
+    ({ mkDerivation, aeson, base, binary, bytestring, containers
+     , cryptonite, directory, filepath, memory, parsec, process
+     , temporary, text, transformers, unordered-containers, uuid
+     , zeromq4-haskell
      }:
      mkDerivation {
        pname = "ipython-kernel";
-       version = "0.10.2.1";
-       sha256 = "016w7bmji3k1cnnl3vq35zq6fnqdvc2x762zfzv4ync2jz63rq38";
+       version = "0.10.2.2";
+       sha256 = "1zvpabfqnkga2smp4p0p46i9llkvxdcdvf0ysafh5xia4ls2icyq";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson base bytestring cereal cereal-text containers cryptonite
-         directory filepath memory mtl parsec process temporary text
-         transformers unordered-containers uuid zeromq4-haskell
+         aeson base binary bytestring containers cryptonite directory
+         filepath memory parsec process temporary text transformers
+         unordered-containers uuid zeromq4-haskell
        ];
        description = "A library for creating kernels for IPython frontends";
        license = lib.licenses.mit;
@@ -155238,8 +157821,8 @@ self: {
      }:
      mkDerivation {
        pname = "j";
-       version = "0.3.0.0";
-       sha256 = "15vzhvb0vhahyl0wxcqqf19si6r00y6l6nirmimjriznbzqccjz9";
+       version = "0.3.0.1";
+       sha256 = "1v4hp7skddbjw6d2ggyfspijmsxh346c97nxwh2anp05aykmzk7b";
        libraryHaskellDepends = [ base bytestring repa unix vector ];
        testHaskellDepends = [ base bytestring repa tasty tasty-hunit ];
        description = "J in Haskell";
@@ -155882,6 +158465,44 @@ self: {
        broken = true;
      }) {};
 
+  "jet" = callPackage
+    ({ mkDerivation, aeson, aeson-extra, aeson-pretty, ansi-terminal
+     , base, bytestring, comonad, containers, free, hashable, Hclip
+     , lens, mtl, prettyprinter, prettyprinter-ansi-terminal
+     , recursion-schemes, recursive-zipper, scientific, text
+     , text-zipper, transformers, unix, unordered-containers, vector
+     , vty
+     }:
+     mkDerivation {
+       pname = "jet";
+       version = "0.0.0.2";
+       sha256 = "0cwh3s1zwfsj1qqnvrg7ianp45sfx7v8ws6gkyjk6paagnjlnj7z";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson aeson-extra aeson-pretty ansi-terminal base bytestring
+         comonad containers free hashable Hclip lens mtl prettyprinter
+         prettyprinter-ansi-terminal recursion-schemes recursive-zipper
+         scientific text text-zipper transformers unix unordered-containers
+         vector vty
+       ];
+       executableHaskellDepends = [
+         aeson aeson-extra aeson-pretty ansi-terminal base bytestring
+         comonad containers free hashable Hclip lens mtl prettyprinter
+         prettyprinter-ansi-terminal recursion-schemes recursive-zipper
+         scientific text text-zipper transformers unix unordered-containers
+         vector vty
+       ];
+       testHaskellDepends = [
+         aeson aeson-extra aeson-pretty ansi-terminal base bytestring
+         comonad containers free hashable Hclip lens mtl prettyprinter
+         prettyprinter-ansi-terminal recursion-schemes recursive-zipper
+         scientific text text-zipper transformers unix unordered-containers
+         vector vty
+       ];
+       license = lib.licenses.bsd3;
+     }) {};
+
   "jet-stream" = callPackage
     ({ mkDerivation, async, base, bytestring, conceit, doctest, foldl
      , process, stm, stm-chans, tasty, tasty-hunit, text, time
@@ -156481,8 +159102,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle";
-       version = "0.9.8.0";
-       sha256 = "0g3jdh4x80fsbrcj5kd81inv8hcx662v5dsn9d6q1dla0cz8w8i9";
+       version = "0.9.8.1";
+       sha256 = "19jszi6b2fhgz8cb0a4p6ixjg78c28cr78abwjcffbx173jp981h";
        libraryHaskellDepends = [
          aeson attoparsec base base-compat base64-bytestring bytestring
          containers deepseq exceptions filepath ghc-prim http-types lens
@@ -156514,8 +159135,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-dom";
-       version = "0.9.4.1";
-       sha256 = "190r17hfwkkwycj9ikdfvhvfpga30k5rnspib9hi8dygwxgifc6j";
+       version = "0.9.5.0";
+       sha256 = "1abl7rwh8yc7852vphv5g5k3jv6454cdrqd2dzmhxxhxqkgxv88p";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
          base base-compat exceptions jsaddle lens text transformers
@@ -156579,8 +159200,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-webkit2gtk";
-       version = "0.9.8.0";
-       sha256 = "01iav691d3h6l9x7vw0spb68n4y5m9pb8d02iyp5lvkqr2y4h9kv";
+       version = "0.9.8.1";
+       sha256 = "1q4hyjlvw3m2139s1rp658hkqhnayk00nijdymjr8606d7cfyp7p";
        libraryHaskellDepends = [
          aeson base bytestring directory gi-gio gi-glib gi-gtk
          gi-javascriptcore gi-webkit2 haskell-gi-base haskell-gi-overloading
@@ -156970,8 +159591,8 @@ self: {
      }:
      mkDerivation {
        pname = "json-feed";
-       version = "1.0.14";
-       sha256 = "1jfyx1n3yxb8shi2s6an0glccniyp2hwyas38xpf6a9q6nzjagys";
+       version = "1.0.15";
+       sha256 = "1hnppgsp9s26yxjq5ha4znfgw2g1ibjrhp55qw3wh58ljlcz8qpp";
        libraryHaskellDepends = [
          aeson base bytestring mime-types network-uri tagsoup text time
        ];
@@ -157345,6 +159966,8 @@ self: {
        pname = "json-stream";
        version = "0.4.2.4";
        sha256 = "1ryv2738ajagb0wdkac5lka1kzprrf85gqxabafmm3g5szllxjl1";
+       revision = "1";
+       editedCabalFile = "0i1250irn8zxhr3vlik3zaja81a8yj7rjyfk1654bwpih9rq81f6";
        libraryHaskellDepends = [
          aeson base bytestring scientific text unordered-containers vector
        ];
@@ -157635,15 +160258,15 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "jsonifier_0_1_2" = callPackage
+  "jsonifier_0_2" = callPackage
     ({ mkDerivation, aeson, base, buffer-builder, bytestring, gauge
      , hedgehog, numeric-limits, ptr-poker, rerebase, scientific, text
      , text-builder
      }:
      mkDerivation {
        pname = "jsonifier";
-       version = "0.1.2";
-       sha256 = "14cgk8h7lasnm0z9qlddkn166vk557msnkrpahdzqpl7arwdddid";
+       version = "0.2";
+       sha256 = "1bxcm4kzsscgc2kh17arq5556yyzhjl8pqc8m5i5jcqbs9ia0jh5";
        libraryHaskellDepends = [
          base bytestring ptr-poker scientific text
        ];
@@ -157739,8 +160362,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsonrpc-conduit";
-       version = "0.3.6";
-       sha256 = "1czk9i9xkw4r6pg2x8ics4ki15icq2mh8zby2ci9ld5b6iz61196";
+       version = "0.3.7";
+       sha256 = "0i1anr471rm7wil2l62mcwkqsyd62zwcgc0rb3iblr64bjd6kl80";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring conduit conduit-extra mtl text
          transformers unordered-containers
@@ -158278,10 +160901,8 @@ self: {
      }:
      mkDerivation {
        pname = "jwt";
-       version = "0.10.0";
-       sha256 = "1a1fqmqfm2ajq75mq2x6la8jb2g5hzl4dk8cgx9xsrikp8c7n75w";
-       revision = "2";
-       editedCabalFile = "1ld5dh4x3sb28416bk3k39k46vmx1s7agk17v7cb5cxam4hj3c1c";
+       version = "0.10.1";
+       sha256 = "02nymdz8yrvq4vw41ah5qmb4rn01xf300d7vz18j4nif55viag4z";
        libraryHaskellDepends = [
          aeson base bytestring containers cryptonite http-types memory
          network-uri scientific semigroups text time unordered-containers
@@ -158297,6 +160918,33 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "jwt_0_11_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, cryptonite
+     , cryptostore, doctest, http-types, HUnit, lens, lens-aeson, memory
+     , network-uri, QuickCheck, scientific, semigroups, tasty
+     , tasty-hunit, tasty-quickcheck, tasty-th, text, time
+     , unordered-containers, vector, x509, x509-store
+     }:
+     mkDerivation {
+       pname = "jwt";
+       version = "0.11.0";
+       sha256 = "1l9qblq11kbrrmcfnh0hcjqnhmi3qm6va3z4pmi4i32wqh3bwjnx";
+       libraryHaskellDepends = [
+         aeson base bytestring containers cryptonite cryptostore http-types
+         memory network-uri scientific semigroups text time
+         unordered-containers vector x509 x509-store
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers cryptonite cryptostore doctest
+         http-types HUnit lens lens-aeson memory network-uri QuickCheck
+         scientific semigroups tasty tasty-hunit tasty-quickcheck tasty-th
+         text time unordered-containers vector x509 x509-store
+       ];
+       description = "JSON Web Token (JWT) decoding and encoding";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "kademlia" = callPackage
     ({ mkDerivation, base, bytestring, containers, HUnit, mtl, network
      , QuickCheck, stm, tasty, tasty-hunit, tasty-quickcheck
@@ -158581,6 +161229,26 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "kanji_3_5_0" = callPackage
+    ({ mkDerivation, aeson, base, containers, criterion, deepseq
+     , hashable, HUnit-approx, tasty, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "kanji";
+       version = "3.5.0";
+       sha256 = "15s640fq65l3f93w2sr3kyjm5gvp78lflcvmrz4ldndnyrzcq2c2";
+       libraryHaskellDepends = [
+         aeson base containers deepseq hashable text
+       ];
+       testHaskellDepends = [
+         aeson base containers HUnit-approx tasty tasty-hunit text
+       ];
+       benchmarkHaskellDepends = [ aeson base containers criterion text ];
+       description = "Perform 漢字検定 (Japan Kanji Aptitude Test) level analysis on Japanese Kanji";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "kansas-comet" = callPackage
     ({ mkDerivation, aeson, base, containers, data-default-class
      , scotty, stm, text, time, transformers, unordered-containers
@@ -158871,8 +161539,8 @@ self: {
      }:
      mkDerivation {
        pname = "katip-logstash";
-       version = "0.1.0.0";
-       sha256 = "16rw2bxbi5kklz6pz8zj7dq7as58v4yfjq7npnlyyx658nvhia6l";
+       version = "0.1.0.2";
+       sha256 = "0hd277cvgs83aqr70g3c59nb5jc81fxhv7ngkk80gx4gc62q6l19";
        libraryHaskellDepends = [
          aeson base katip logstash retry stm stm-chans text transformers
          unliftio
@@ -159796,8 +162464,8 @@ self: {
      }:
      mkDerivation {
        pname = "kempe";
-       version = "0.2.0.9";
-       sha256 = "0jjm31zngnyg9k0i033zwikkjk6n490j1jjrkvnzhcvm0rjvh5vj";
+       version = "0.2.0.11";
+       sha256 = "1w8gkw64f68xalcags3lqaa07jcmh1y5z43c64xprqplgnh5fs98";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -160444,6 +163112,23 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "kmn-programming" = callPackage
+    ({ mkDerivation, base, optparse-applicative, random, random-shuffle
+     , time, x86-64bit
+     }:
+     mkDerivation {
+       pname = "kmn-programming";
+       version = "0.9.2";
+       sha256 = "0frvinckcw90y75qmnm8ns0c9ydcpmdakdk53hwga7i4sqrjdwma";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base optparse-applicative random random-shuffle time x86-64bit
+       ];
+       description = "K_M,N quadratic programming";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "kmonad" = callPackage
     ({ mkDerivation, base, cereal, lens, megaparsec, mtl
      , optparse-applicative, resourcet, rio, time, unix, unliftio
@@ -160623,6 +163308,28 @@ self: {
        license = lib.licenses.gpl2Only;
      }) {};
 
+  "koji-install" = callPackage
+    ({ mkDerivation, base, directory, extra, filepath, Glob
+     , http-directory, koji, rpm-nvr, simple-cmd, simple-cmd-args
+     , xdg-userdirs
+     }:
+     mkDerivation {
+       pname = "koji-install";
+       version = "0.4";
+       sha256 = "1qsrg57ak7zxmx6c6q83da0dzfhvdcj4ycnz4026xp25ijhl5frd";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base directory extra filepath Glob http-directory koji rpm-nvr
+         simple-cmd simple-cmd-args xdg-userdirs
+       ];
+       testHaskellDepends = [ base simple-cmd ];
+       description = "CLI tool for installing rpms directly from Fedora Koji";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "kontra-config" = callPackage
     ({ mkDerivation, base, bytestring, data-default, exceptions, text
      , transformers-base, unjson, utf8-string, yaml
@@ -161256,8 +163963,8 @@ self: {
     ({ mkDerivation, base, hspec, servant, servant-foreign, text }:
      mkDerivation {
        pname = "lackey";
-       version = "1.0.15";
-       sha256 = "144wlp75gaz7yjb3rb1f1l79qmh2mms3vrrn5v4a13wjmqsd7brw";
+       version = "1.0.16";
+       sha256 = "0m9mx71gg68mb7i7a1zhxvij196k4icq4wknznx33395k0dzki80";
        libraryHaskellDepends = [ base servant servant-foreign text ];
        testHaskellDepends = [ base hspec servant servant-foreign text ];
        description = "Generate Ruby clients from Servant APIs";
@@ -162433,6 +165140,8 @@ self: {
        pname = "language-c99-util";
        version = "0.1.1";
        sha256 = "0rdwb29d2aa9mqkn5b4acwviymxy18sjfmzr01j7n3j4n3q4d2lz";
+       revision = "1";
+       editedCabalFile = "0wnrdcw05zmk1flycjavdb8188qy93p6m1b6k38799ngsm78qq7k";
        libraryHaskellDepends = [ base language-c99 ];
        description = "Utilities for language-c99";
        license = lib.licenses.mit;
@@ -162576,15 +165285,15 @@ self: {
        license = lib.licenses.gpl3Only;
      }) {};
 
-  "language-docker_10_3_0" = callPackage
+  "language-docker_10_4_0" = callPackage
     ({ mkDerivation, base, bytestring, containers, data-default-class
      , hspec, hspec-megaparsec, HUnit, megaparsec, prettyprinter
      , QuickCheck, split, text, time
      }:
      mkDerivation {
        pname = "language-docker";
-       version = "10.3.0";
-       sha256 = "1vwgm2902xzmcq9bkjs4nah5jcijmqa7qviaz96awgb6rc5wamnb";
+       version = "10.4.0";
+       sha256 = "04qn8a0jaxcaircl8ib9p5m45xiay33i4i0gdpgk2qdidac9m2al";
        libraryHaskellDepends = [
          base bytestring containers data-default-class megaparsec
          prettyprinter split text time
@@ -163467,6 +166176,8 @@ self: {
        pname = "language-sygus";
        version = "0.1.1.2";
        sha256 = "1vgd45bd866mm2w80hg8q11iz8g9ifz5ccm0sh13xrnpvfvdv862";
+       revision = "1";
+       editedCabalFile = "1byjfj7r2ggw122hl1vrx4crdnq9xi57xipyxfa35ixmx4r306ji";
        libraryHaskellDepends = [ array base hashable text ];
        testHaskellDepends = [ base deepseq tasty tasty-hunit text ];
        description = "A parser and printer for the SyGuS 2.0 language.";
@@ -163482,8 +166193,8 @@ self: {
      }:
      mkDerivation {
        pname = "language-thrift";
-       version = "0.12.0.0";
-       sha256 = "1a7v0337zvfc3x6665grzngs9m9ya3jk27h3blcz9p33m8rladhl";
+       version = "0.12.0.1";
+       sha256 = "1cn92cf60j34ybchgg0zyc3nzy1iw6mz69cn16y28pkaymaz5lrn";
        libraryHaskellDepends = [
          ansi-wl-pprint base containers megaparsec scientific semigroups
          text transformers
@@ -163586,8 +166297,8 @@ self: {
        pname = "lapack";
        version = "0.3.2";
        sha256 = "12h9k8hx3qpfa3ma24glngpk1x9m8h17qzv86sfq54br19ikz5y0";
-       revision = "1";
-       editedCabalFile = "1ji3cj8ggj6prxcn9z0678x1i5j25cwxj3bxnv4s9nn8qayyflpn";
+       revision = "2";
+       editedCabalFile = "13hjcwcpwsgmyj95ddys5ivd7xs7fzlbggx0cyffp79wvm0l81q8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -163605,7 +166316,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "lapack_0_4" = callPackage
+  "lapack_0_5" = callPackage
     ({ mkDerivation, base, blas-ffi, blaze-html, boxes, ChasingBottoms
      , comfort-array, comfort-array-shape, data-ref, deepseq
      , doctest-exitcode-stdio, fixed-length, guarded-allocation, hyper
@@ -163615,8 +166326,8 @@ self: {
      }:
      mkDerivation {
        pname = "lapack";
-       version = "0.4";
-       sha256 = "138vy9nxvqlv2lkgq5i9fkyf6140vw6pk60374vjcgv2h8hkkbqd";
+       version = "0.5";
+       sha256 = "0g4nwbkb5nxfmh7aan7r94gchr3wmr45g18mzxzcxqxqpllj3vs1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -163710,8 +166421,8 @@ self: {
      }:
      mkDerivation {
        pname = "lapack-hmatrix";
-       version = "0.0";
-       sha256 = "024lfbj5v4rgxvfs4cgfr6xajf3svdlxv7sl9wkyzwi7dk1zh9pr";
+       version = "0.0.0.1";
+       sha256 = "0jd3sy03cxdfxakxaj1kxpc3jn0z8sd74lpxxg9s9jdvaxxxyflj";
        libraryHaskellDepends = [
          base comfort-array hmatrix lapack netlib-ffi transformers
          utility-ht vector
@@ -164056,6 +166767,8 @@ self: {
        pname = "lattices";
        version = "2.0.3";
        sha256 = "1mn78xqwsksybggnsnx8xkmzlc9his1si14dy5v6vmlchkjym9qg";
+       revision = "2";
+       editedCabalFile = "0dnfpgvrq7qkza4k82siayy0rpwj0gcdd2nybzp0m25dq7lign3r";
        libraryHaskellDepends = [
          base base-compat containers deepseq hashable integer-logarithms
          OneTuple QuickCheck semigroupoids tagged transformers universe-base
@@ -164958,6 +167671,22 @@ self: {
        broken = true;
      }) {};
 
+  "leb128-binary" = callPackage
+    ({ mkDerivation, base, binary, bytestring, hedgehog, tasty
+     , tasty-hedgehog, tasty-hunit
+     }:
+     mkDerivation {
+       pname = "leb128-binary";
+       version = "0.1.1";
+       sha256 = "06i32qa79iwjb76caj5c1b32xi29mq1h0zfakz270p6q89hwkp1v";
+       libraryHaskellDepends = [ base binary bytestring ];
+       testHaskellDepends = [
+         base binary bytestring hedgehog tasty tasty-hedgehog tasty-hunit
+       ];
+       description = "Signed and unsigned LEB128 codec for binary library";
+       license = lib.licenses.asl20;
+     }) {};
+
   "leb128-cereal" = callPackage
     ({ mkDerivation, base, bytestring, cereal, tasty, tasty-hunit
      , tasty-quickcheck
@@ -165229,7 +167958,7 @@ self: {
        license = lib.licenses.bsd2;
      }) {};
 
-  "lens_5_0_1" = callPackage
+  "lens_5_1" = callPackage
     ({ mkDerivation, array, assoc, base, base-compat, base-orphans
      , bifunctors, bytestring, call-stack, comonad, containers
      , contravariant, criterion, deepseq, distributive, exceptions
@@ -165243,10 +167972,8 @@ self: {
      }:
      mkDerivation {
        pname = "lens";
-       version = "5.0.1";
-       sha256 = "0gzwx4b758phm51hz5i4bbkbvjw1ka7qj04zd9l9sh9n6s9ksm7c";
-       revision = "2";
-       editedCabalFile = "1h3jcadrms3xqd0887ckf9190xc3dblmlz9xhb0imlw1rkvj62dw";
+       version = "5.1";
+       sha256 = "1g9mwfs0vs0kq6affrdl07z2zkl39pd2362vn9iycpwr3bg2284j";
        libraryHaskellDepends = [
          array assoc base base-orphans bifunctors bytestring call-stack
          comonad containers contravariant distributive exceptions filepath
@@ -165287,8 +168014,8 @@ self: {
      }:
      mkDerivation {
        pname = "lens-action";
-       version = "0.2.5";
-       sha256 = "02sv76far3y57p2pgcjsx5ffaai8rm4669qkp82l06vv964f0v2r";
+       version = "0.2.6";
+       sha256 = "0cdprc5j6r976dmrga2zwvcr7qsv7nqy3nvncp66yyy0dk2qlwm3";
        libraryHaskellDepends = [
          base comonad contravariant lens mtl profunctors semigroupoids
          transformers
@@ -165303,8 +168030,8 @@ self: {
      }:
      mkDerivation {
        pname = "lens-aeson";
-       version = "1.1.2";
-       sha256 = "0pdjjyjwlavcgm2wrv1fiz09l41hisl2xj6y67xbdix1h6h07hxz";
+       version = "1.1.3";
+       sha256 = "05jyn6rn0anhgfmk754gmmpcy5jv3ki213z4v243n9jvdjdlg7ms";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring lens scientific text
          unordered-containers vector
@@ -165418,25 +168145,12 @@ self: {
     ({ mkDerivation, base, hspec, template-haskell, transformers }:
      mkDerivation {
        pname = "lens-family-th";
-       version = "0.5.2.0";
-       sha256 = "00glipk0mzq6mjvdi2lqys1d9gsncvphcccigw2ry8k9zc8l85zb";
-       libraryHaskellDepends = [ base template-haskell ];
-       testHaskellDepends = [ base hspec template-haskell transformers ];
-       description = "Generate lens-family style lenses";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "lens-family-th_0_5_2_1" = callPackage
-    ({ mkDerivation, base, hspec, template-haskell, transformers }:
-     mkDerivation {
-       pname = "lens-family-th";
        version = "0.5.2.1";
        sha256 = "1w8k68a1lyfd79xkc4fbf6z7p5gpriq4pjgb4n9p58az6awnn7dh";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base hspec template-haskell transformers ];
        description = "Generate lens-family style lenses";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lens-filesystem" = callPackage
@@ -165784,8 +168498,8 @@ self: {
      }:
      mkDerivation {
        pname = "lentil";
-       version = "1.5.3.0";
-       sha256 = "14fpvclm0xvwsgc2hgnq3jxlh5mdbq7gn713nnblc92pghfgbx18";
+       version = "1.5.3.2";
+       sha256 = "0knc3g5n6h0yzr0kpgmgk44kbwh200qafjdvwpca92n3s0wf76py";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -166197,8 +168911,8 @@ self: {
     ({ mkDerivation, base, deepseq, hashable }:
      mkDerivation {
        pname = "libBF";
-       version = "0.6.2";
-       sha256 = "00axpwgwzqchma89fdp1dxk97palvgv4j1ag8dq1w4gl9yh5q0vx";
+       version = "0.6.3";
+       sha256 = "1zfnyxplfffs8739b3p6yxy706nkm0qsnxn4yxyrrris637ync3f";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base deepseq hashable ];
@@ -166724,18 +169438,18 @@ self: {
      }) {};
 
   "libnix" = callPackage
-    ({ mkDerivation, aeson, base, directory, errors, filepath, process
-     , protolude, tasty, tasty-hunit, text
+    ({ mkDerivation, aeson, base, bytestring, deepseq, directory
+     , errors, filepath, mtl, process, tasty, tasty-hunit, text
      }:
      mkDerivation {
        pname = "libnix";
-       version = "0.2.0.1";
-       sha256 = "1a2j2pg9j65k34dxmkl1lqjj2q28j99dcadkwfhwwj6sy70v7gvg";
+       version = "0.4.1.0";
+       sha256 = "0p9icnwwz38whg9vnvy5id7rnj92n9mgb8jhrlahbgxhz1af7idk";
        libraryHaskellDepends = [
-         aeson base errors filepath process protolude text
+         aeson base bytestring deepseq errors filepath mtl process text
        ];
        testHaskellDepends = [
-         base directory errors protolude tasty tasty-hunit text
+         base directory errors tasty tasty-hunit text
        ];
        description = "Bindings to the nix package manager";
        license = lib.licenses.gpl3Only;
@@ -167262,13 +169976,15 @@ self: {
      }) {};
 
   "libyaml-streamly" = callPackage
-    ({ mkDerivation, base, bytestring, safe-exceptions, streamly }:
+    ({ mkDerivation, base, bytestring, deepseq, safe-exceptions
+     , streamly
+     }:
      mkDerivation {
        pname = "libyaml-streamly";
-       version = "0.2.0";
-       sha256 = "0lvpavy78clizrizj7zlj9msgfwkhj3c6shnss7swnp1xfi1a1k9";
+       version = "0.2.1";
+       sha256 = "0jh980ilaxhdhyp3vbmg0s3c2vf5ckxlkyj6n45vqb56847mg5bk";
        libraryHaskellDepends = [
-         base bytestring safe-exceptions streamly
+         base bytestring deepseq safe-exceptions streamly
        ];
        description = "Low-level, streaming YAML interface via streamly";
        license = lib.licenses.bsd3;
@@ -167583,10 +170299,8 @@ self: {
      }:
      mkDerivation {
        pname = "lifx-lan";
-       version = "0.5.0.1";
-       sha256 = "0rww31gcp5asbc0zb6fz7ddgw3dih6l2mc0rln7nf3qd04hplk6v";
-       revision = "2";
-       editedCabalFile = "0k4lm2qbqq4xb5rxb0nik5sc898g4w7k050j4gs1ri4xbz32z7cn";
+       version = "0.5.1.1";
+       sha256 = "1rk1ln19hlcvs3g25pq4p136zxbd1lxi4pjfflngb691mvvb7ih6";
        libraryHaskellDepends = [
          base binary bytestring composition containers extra monad-loops mtl
          network random safe text time transformers
@@ -167977,7 +170691,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "linear_1_21_7" = callPackage
+  "linear_1_21_8" = callPackage
     ({ mkDerivation, adjunctions, base, base-orphans, binary, bytes
      , bytestring, cereal, containers, deepseq, distributive, ghc-prim
      , hashable, HUnit, indexed-traversable, lens, random, reflection
@@ -167988,8 +170702,8 @@ self: {
      }:
      mkDerivation {
        pname = "linear";
-       version = "1.21.7";
-       sha256 = "0k5vpd5rmxwnrax3zl305h941kxqz0kg6qpscdxf0brmxamjlx4i";
+       version = "1.21.8";
+       sha256 = "0m2lr86l932rn2cnxaplaicfbg7makhrh8xbnj3m8jhhnyn3v88b";
        libraryHaskellDepends = [
          adjunctions base base-orphans binary bytes cereal containers
          deepseq distributive ghc-prim hashable indexed-traversable lens
@@ -168095,15 +170809,15 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "linear-circuit_0_1_0_3" = callPackage
+  "linear-circuit_0_1_0_4" = callPackage
     ({ mkDerivation, base, comfort-array, comfort-graph, containers
      , lapack, netlib-ffi, non-empty, QuickCheck, transformers
      , utility-ht
      }:
      mkDerivation {
        pname = "linear-circuit";
-       version = "0.1.0.3";
-       sha256 = "0nffl1sq273ndfsnfhbblbxmnh53v0b8p6hgd3d3lbnypksh7bkk";
+       version = "0.1.0.4";
+       sha256 = "0pyja29w1vrsi8vi65qdbc3c1vajiqgf5gff2zqh368k3hd4zpi4";
        libraryHaskellDepends = [
          base comfort-array comfort-graph containers lapack netlib-ffi
          transformers utility-ht
@@ -168343,8 +171057,8 @@ self: {
     ({ mkDerivation, base, hspec, hyphenation }:
      mkDerivation {
        pname = "linebreak";
-       version = "1.1.0.0";
-       sha256 = "1a1yzpdr1h9a1gnf1iwsqxzpv3w13vd7yb6c0djdc1yq25q0jg7d";
+       version = "1.1.0.1";
+       sha256 = "11vqz7zv8ihvhbyma9j6pvxainxfg4kml9fylfjy9jpfvilxq5vq";
        libraryHaskellDepends = [ base hyphenation ];
        testHaskellDepends = [ base hspec hyphenation ];
        description = "breaks strings to fit width";
@@ -169415,8 +172129,8 @@ self: {
      }:
      mkDerivation {
        pname = "list-t";
-       version = "1.0.5";
-       sha256 = "1gyn25ra5y8bv1hxlsjg6l1dmzp6wj9g81v1nxz1p545cbl3g9my";
+       version = "1.0.5.1";
+       sha256 = "0apcqxz5i0swwfkszwh5rdrda641n4jzkdc5kp3q78ja932vavwy";
        libraryHaskellDepends = [
          base foldl logict mmorph monad-control mtl semigroups transformers
          transformers-base
@@ -169821,6 +172535,8 @@ self: {
        pname = "little-earley";
        version = "0.2.0.0";
        sha256 = "0zqlnaj1w6m2h7g55xg9cjl978ij66lw69x4v5b9vi7x7maa44ms";
+       revision = "1";
+       editedCabalFile = "0p5pzqvhkc3c95dpzcyynm94gq00klvcvcy7a34abdj1jvxvnimb";
        libraryHaskellDepends = [ base containers mtl ];
        testHaskellDepends = [ base containers mtl tasty tasty-hunit ];
        description = "Simple implementation of Earley parsing";
@@ -170966,8 +173682,8 @@ self: {
      }:
      mkDerivation {
        pname = "log-domain";
-       version = "0.13.1";
-       sha256 = "0ipiiflzs1r7wm5k8b9cqn4l09rjdyks3pxnm4p3kmncd5s2ajsv";
+       version = "0.13.2";
+       sha256 = "0i4fx9k8cwjvmj0pgfnbici1b68zmif1jmmqxplpjqy32ksnyifa";
        libraryHaskellDepends = [
          base binary bytes cereal comonad deepseq distributive hashable
          semigroupoids semigroups vector
@@ -171348,13 +174064,16 @@ self: {
      }) {};
 
   "logging-facade" = callPackage
-    ({ mkDerivation, base, call-stack, hspec, transformers }:
+    ({ mkDerivation, base, call-stack, hspec, hspec-discover
+     , transformers
+     }:
      mkDerivation {
        pname = "logging-facade";
-       version = "0.3.0";
-       sha256 = "0d0lwxxgd16is9aw6v3ps4r9prv3dj8xscmm45fvzq3nicjiawcf";
+       version = "0.3.1";
+       sha256 = "0rn12j77gn3p84khrmbn5kq6fyj44i3z1hrdm29apikp7csv65ib";
        libraryHaskellDepends = [ base call-stack transformers ];
        testHaskellDepends = [ base hspec ];
+       testToolDepends = [ hspec-discover ];
        description = "Simple logging abstraction that allows multiple back-ends";
        license = lib.licenses.mit;
      }) {};
@@ -171537,8 +174256,8 @@ self: {
      }:
      mkDerivation {
        pname = "logstash";
-       version = "0.1.0.1";
-       sha256 = "1hi77m4iijrkyg3v2g6m0yqh1vga35sbh9nq22g9mdflsv353ffi";
+       version = "0.1.0.3";
+       sha256 = "17s7529mcvpm7pqjz5d980ra70z41zk0k52l6ps1p1zfi5p4niys";
        libraryHaskellDepends = [
          aeson async base bytestring data-default-class exceptions
          monad-control mtl network resource-pool resourcet retry stm
@@ -171845,8 +174564,8 @@ self: {
      }:
      mkDerivation {
        pname = "longshot";
-       version = "0.1.0.5";
-       sha256 = "1xgdkfykiwzscq91z7xg1dgsh9ma6bg03d82f58r297c7fzivvak";
+       version = "0.1.0.6";
+       sha256 = "0wwlc78yhks2wwjawvf43d57kfq8cwghvx5ha54f1zkn2xds16zf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -171901,6 +174620,18 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "loop-dsl" = callPackage
+    ({ mkDerivation, base, hspec, mtl, transformers, vector }:
+     mkDerivation {
+       pname = "loop-dsl";
+       version = "0.1.0.0";
+       sha256 = "1vf4wykfcw06v3qpxjh87n3v702jw765dv8j977dk0490zgj7gv0";
+       libraryHaskellDepends = [ base mtl transformers ];
+       testHaskellDepends = [ base hspec mtl transformers vector ];
+       description = "monadic loop dsl";
+       license = lib.licenses.mit;
+     }) {};
+
   "loop-effin" = callPackage
     ({ mkDerivation, base, effin }:
      mkDerivation {
@@ -172063,18 +174794,18 @@ self: {
 
   "lorentz" = callPackage
     ({ mkDerivation, aeson-pretty, base-noprelude, bimap, bytestring
-     , constraints, containers, data-default, first-class-families, fmt
-     , interpolate, lens, morley, morley-prelude, mtl, named
-     , optparse-applicative, singletons, template-haskell, text
+     , constraints, containers, cryptonite, data-default
+     , first-class-families, fmt, lens, morley, morley-prelude, mtl
+     , named, optparse-applicative, singletons, template-haskell, text
      , text-manipulate, unordered-containers, vinyl, with-utf8
      }:
      mkDerivation {
        pname = "lorentz";
-       version = "0.12.1";
-       sha256 = "1ba511lxmlmv3dj483q6bgk5bvb16d2js0qldz513j4azqjr5f19";
+       version = "0.13.0";
+       sha256 = "1r4pni5hnf8vaxyv62jvq9dvhwalgzczhymm4w9ixfhncnr6znv4";
        libraryHaskellDepends = [
          aeson-pretty base-noprelude bimap bytestring constraints containers
-         data-default first-class-families fmt interpolate lens morley
+         cryptonite data-default first-class-families fmt lens morley
          morley-prelude mtl named optparse-applicative singletons
          template-haskell text text-manipulate unordered-containers vinyl
          with-utf8
@@ -172266,8 +174997,8 @@ self: {
        pname = "lrucaching";
        version = "0.3.3";
        sha256 = "192a2zap1bmxa2y48n48rmngf18fr8k0az4a230hziv3g795yzma";
-       revision = "10";
-       editedCabalFile = "1yzmwvwzby4dx896jlgznlpigqlsl475a57l1npjz0rimlqr71w6";
+       revision = "11";
+       editedCabalFile = "0qvpsrsr9fw0lyybaq53zskfgawka0lwpkvxaihbyp0k4alj7yjx";
        libraryHaskellDepends = [
          base base-compat deepseq hashable psqueues vector
        ];
@@ -172661,8 +175392,8 @@ self: {
     ({ mkDerivation, base, lua5_3, tasty, tasty-hunit }:
      mkDerivation {
        pname = "lua";
-       version = "2.0.1";
-       sha256 = "1ff50sqk52kpyam5mb66spnk8j1n8vbyqgd6p0kmhqpc71890zmp";
+       version = "2.0.2";
+       sha256 = "0hsbwws16p9xrpmx4j8f9hmz8lhjjz9b8ngb3y7pxi6lx08mypgw";
        configureFlags = [ "-fsystem-lua" "-f-use-pkgconfig" ];
        libraryHaskellDepends = [ base ];
        librarySystemDepends = [ lua5_3 ];
@@ -173433,8 +176164,8 @@ self: {
        pname = "lzma";
        version = "0.0.0.3";
        sha256 = "0i416gqi8j55nd1pqbkxvf3f6hn6fjys6gq98lkkxphva71j30xg";
-       revision = "6";
-       editedCabalFile = "1sh2g5wkh0m6646cxnii0k20f0crwdcnprfl9jfg7gxn5875bkip";
+       revision = "7";
+       editedCabalFile = "07gc1zl4a38p3yg7md1hfrb2ca7yjzansh1mv8xs0c89jaqbgcr5";
        libraryHaskellDepends = [ base bytestring ];
        librarySystemDepends = [ xz ];
        testHaskellDepends = [
@@ -174160,14 +176891,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "magico_0_0_2_2" = callPackage
+  "magico_0_0_2_3" = callPackage
     ({ mkDerivation, base, comfort-array, lapack, transformers
      , utility-ht
      }:
      mkDerivation {
        pname = "magico";
-       version = "0.0.2.2";
-       sha256 = "17mpxfw6y1swk0d8dksr71qvagrgmw38xj585dz0s0zwn4y73bzx";
+       version = "0.0.2.3";
+       sha256 = "0hj6rn52qcxjwkrbxglh1yga53jj9skvmhnan1j7nz94rpi3fm04";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -174565,8 +177296,10 @@ self: {
     ({ mkDerivation, base, transformers }:
      mkDerivation {
        pname = "managed";
-       version = "1.0.8";
-       sha256 = "00wzfy9facwgimrilz7bxaigr79w10733h8zfgyhll644p2rnz38";
+       version = "1.0.9";
+       sha256 = "0vx8aim8bcyyvxxnmi1xkbl3kwrvskjn99z3y8h458g7nsinsisd";
+       revision = "1";
+       editedCabalFile = "1sp7nsav3ln1m4kiian9y2jql0ywlswk8zb4wv8i4wkcr2cbbjkq";
        libraryHaskellDepends = [ base transformers ];
        description = "A monad for managed values";
        license = lib.licenses.bsd3;
@@ -175719,15 +178452,14 @@ self: {
      }) {};
 
   "mason" = callPackage
-    ({ mkDerivation, array, base, bytestring, ghc-prim, integer-gmp
-     , network, text
+    ({ mkDerivation, array, base, bytestring, ghc-prim, network, text
      }:
      mkDerivation {
        pname = "mason";
-       version = "0.2.4";
-       sha256 = "1ic2h2mj31hb972x146wn7p29hlmx9p30f5gi2ccqv2ww96l56fv";
+       version = "0.2.5";
+       sha256 = "0ch8qajaj83pifxy24z4srb3j51z5zn94lrx0ziqcfrpshck569j";
        libraryHaskellDepends = [
-         array base bytestring ghc-prim integer-gmp network text
+         array base bytestring ghc-prim network text
        ];
        description = "Fast and extensible bytestring builder";
        license = lib.licenses.bsd3;
@@ -175742,8 +178474,8 @@ self: {
        pname = "massiv";
        version = "0.6.1.0";
        sha256 = "0j3br93kxxyb1q5mdf440f8l8d2lc0gi9vhc3h3ri94ls4ix099v";
-       revision = "1";
-       editedCabalFile = "10k8az97kvwbs9ac1dwvrhlawr0v89ksb4wji8c8i3kas1vmnhqh";
+       revision = "2";
+       editedCabalFile = "1ymbmgcd312r0nqzh5gmm05inqw3iajzmhzbhc162xb1n30ks0kn";
        libraryHaskellDepends = [
          base bytestring deepseq exceptions primitive scheduler
          unliftio-core vector
@@ -175756,14 +178488,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "massiv_1_0_1_0" = callPackage
+  "massiv_1_0_1_1" = callPackage
     ({ mkDerivation, base, bytestring, deepseq, doctest, exceptions
      , primitive, random, scheduler, unliftio-core, vector
      }:
      mkDerivation {
        pname = "massiv";
-       version = "1.0.1.0";
-       sha256 = "1s47x3cya73mp4gxqn271yp8z23pfgw170pnlxbka61ap4kykmkk";
+       version = "1.0.1.1";
+       sha256 = "1yg594y0v8bpymd5g6hy8a7cy2hbvlpyxm9hnq3pprbhbcrrx22w";
        libraryHaskellDepends = [
          base bytestring deepseq exceptions primitive random scheduler
          unliftio-core vector
@@ -175849,15 +178581,15 @@ self: {
        broken = true;
      }) {};
 
-  "massiv-persist_1_0_0_1" = callPackage
+  "massiv-persist_1_0_0_2" = callPackage
     ({ mkDerivation, base, bytestring, deepseq, doctest, hspec
      , hspec-discover, massiv, massiv-test, persist, primitive
      , QuickCheck
      }:
      mkDerivation {
        pname = "massiv-persist";
-       version = "1.0.0.1";
-       sha256 = "1j5vzk5m2r1cs5v5pzmf1i7p8zdlf29g0gdklf6snl9llk755pgy";
+       version = "1.0.0.2";
+       sha256 = "1hqmwbrxv664y4rfm37ziym25l9218pd21lz4180c0k3hfpdfsxy";
        libraryHaskellDepends = [
          base bytestring deepseq massiv persist primitive
        ];
@@ -175912,14 +178644,14 @@ self: {
        broken = true;
      }) {};
 
-  "massiv-serialise_1_0_0_1" = callPackage
+  "massiv-serialise_1_0_0_2" = callPackage
     ({ mkDerivation, base, deepseq, doctest, hspec, hspec-discover
      , massiv, massiv-test, QuickCheck, serialise, vector
      }:
      mkDerivation {
        pname = "massiv-serialise";
-       version = "1.0.0.1";
-       sha256 = "0zmikmfjjshf9p0fawcg05832hxdzj04kqqh11bz1kqcc1yc7yk0";
+       version = "1.0.0.2";
+       sha256 = "1309nsjk36l1qiq769f9yrvn20xgf6abkmqqddzb8gqfbvhkzzym";
        libraryHaskellDepends = [ base deepseq massiv serialise vector ];
        testHaskellDepends = [
          base doctest hspec massiv massiv-test QuickCheck serialise
@@ -176370,28 +179102,6 @@ self: {
      }:
      mkDerivation {
        pname = "matplotlib";
-       version = "0.7.6";
-       sha256 = "0wykzz4d6a55x3bxn9r01bvgvz26yvldgyrnz87rqncxymdawmd4";
-       libraryHaskellDepends = [
-         aeson base bytestring containers deepseq filepath process split
-         temporary
-       ];
-       testHaskellDepends = [
-         ad base bytestring directory process random raw-strings-qq split
-         tasty tasty-expected-failure tasty-golden tasty-hunit temporary
-       ];
-       description = "Bindings to Matplotlib; a Python plotting library";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "matplotlib_0_7_7" = callPackage
-    ({ mkDerivation, ad, aeson, base, bytestring, containers, deepseq
-     , directory, filepath, process, random, raw-strings-qq, split
-     , tasty, tasty-expected-failure, tasty-golden, tasty-hunit
-     , temporary
-     }:
-     mkDerivation {
-       pname = "matplotlib";
        version = "0.7.7";
        sha256 = "08qwqnsdch7hzyy0jiz6yvirf0gqm9xx24i3ikm5q993prsdpi2h";
        libraryHaskellDepends = [
@@ -176404,7 +179114,6 @@ self: {
        ];
        description = "Bindings to Matplotlib; a Python plotting library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "matrices" = callPackage
@@ -176637,8 +179346,8 @@ self: {
      }:
      mkDerivation {
        pname = "matterhorn";
-       version = "50200.14.1";
-       sha256 = "0bxz54881pypwwr2acxarsk362708vwii2krq1ya0kg2ybhcxh72";
+       version = "50200.15.0";
+       sha256 = "0hn3d1fifzls714a0hsvhbf7wxhg0q60igpr2jcd76yqnzax1mda";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -177706,6 +180415,35 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "melf" = callPackage
+    ({ mkDerivation, base, binary, bytestring, containers, directory
+     , exceptions, filepath, mtl, optparse-applicative, prettyprinter
+     , singletons, tasty, tasty-golden, tasty-hunit, template-haskell
+     , unix
+     }:
+     mkDerivation {
+       pname = "melf";
+       version = "1.0.1";
+       sha256 = "1k4174ssrj5d6qjj9fcxd8q586c96jpwzf4f19kqhv8w4mbpvfl0";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base binary bytestring exceptions mtl prettyprinter singletons
+         template-haskell
+       ];
+       executableHaskellDepends = [
+         base binary bytestring exceptions optparse-applicative
+         prettyprinter
+       ];
+       testHaskellDepends = [
+         base binary bytestring containers directory exceptions filepath mtl
+         prettyprinter singletons tasty tasty-golden tasty-hunit unix
+       ];
+       description = "An Elf parser";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "mellon-core" = callPackage
     ({ mkDerivation, async, base, doctest, hspec, mtl, protolude
      , QuickCheck, quickcheck-instances, time, transformers
@@ -178115,6 +180853,8 @@ self: {
        pname = "memory";
        version = "0.16.0";
        sha256 = "0zzxyr2b7gj92h3jzaq1lfqfyfkfj4l636ry35191i9bp3wa0v8l";
+       revision = "1";
+       editedCabalFile = "02ql04drvyk8sdadxs4yi1h4aic0pxgnrph3j5ndcm6r7hfnv8py";
        libraryHaskellDepends = [
          base basement bytestring deepseq ghc-prim
        ];
@@ -178124,6 +180864,24 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "memory-cd" = callPackage
+    ({ mkDerivation, base, basement-cd, bytestring, deepseq, foundation
+     , ghc-prim, memory
+     }:
+     mkDerivation {
+       pname = "memory-cd";
+       version = "0.16.0.1";
+       sha256 = "05dkgkms159k4mk4l1ngcnxqs2hbnzmh9zv3gks0cx7wba6qyrf1";
+       libraryHaskellDepends = [
+         base basement-cd bytestring deepseq ghc-prim
+       ];
+       testHaskellDepends = [
+         base basement-cd bytestring foundation memory
+       ];
+       description = "memory and related abstraction stuff";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "memorypool" = callPackage
     ({ mkDerivation, base, containers, transformers, unsafe, vector }:
      mkDerivation {
@@ -178285,8 +181043,8 @@ self: {
      }:
      mkDerivation {
        pname = "mergeful-persistent";
-       version = "0.0.0.0";
-       sha256 = "13lw0gb57as7mplaqwg0i6cpdp1gyw0qghbq4l19y7ib8c6jqnxi";
+       version = "0.1.0.0";
+       sha256 = "13i2bajgxwmyr5w8qfswlpizhsajnnhgs96hav74sj5m5i6z0dpi";
        libraryHaskellDepends = [
          base containers mergeful microlens mtl persistent
        ];
@@ -178324,8 +181082,8 @@ self: {
      }:
      mkDerivation {
        pname = "mergeless-persistent";
-       version = "0.0.0.0";
-       sha256 = "0b75qs3f1vp4cab28j9znr83apzrsfx7i0p42nk42m5kn5vg2rzs";
+       version = "0.1.0.0";
+       sha256 = "05fazha6q5lmpagfazlrly7ms0p1jag9n6llwmr0zspx0raq35mb";
        libraryHaskellDepends = [
          base containers mergeless microlens persistent
        ];
@@ -179211,22 +181969,6 @@ self: {
      }:
      mkDerivation {
        pname = "microlens-platform";
-       version = "0.4.2";
-       sha256 = "0yf0z0glq2d6mpclzswc64h9w2cck4fd8l8ffm89pyb0a5n8m4c7";
-       libraryHaskellDepends = [
-         base hashable microlens microlens-ghc microlens-mtl microlens-th
-         text unordered-containers vector
-       ];
-       description = "microlens + all batteries included (best for apps)";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "microlens-platform_0_4_2_1" = callPackage
-    ({ mkDerivation, base, hashable, microlens, microlens-ghc
-     , microlens-mtl, microlens-th, text, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "microlens-platform";
        version = "0.4.2.1";
        sha256 = "0z8snyzy18kqj32fb89mzgscjrg6w2z0jkkj4b9vl2jvbps0gkg6";
        libraryHaskellDepends = [
@@ -179235,7 +181977,6 @@ self: {
        ];
        description = "microlens + all batteries included (best for apps)";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "microlens-process" = callPackage
@@ -179330,6 +182071,8 @@ self: {
        pname = "microstache";
        version = "1.0.2";
        sha256 = "0pirywb9304j2ylasskwq20k6d2srk616sh41l4s37yajsjggx5i";
+       revision = "2";
+       editedCabalFile = "1hvvqn3l8y3mxvzpnh0p801zp2j0m8immbabbzn8nc6wp88rwvd4";
        libraryHaskellDepends = [
          aeson base containers deepseq directory filepath parsec text
          transformers unordered-containers vector
@@ -179441,8 +182184,10 @@ self: {
      }:
      mkDerivation {
        pname = "midi-music-box";
-       version = "0.0.1.1";
-       sha256 = "15i28iw6ssl7f8iivqyxgd8rg3vg76hspsyv347195d74xb5s7zb";
+       version = "0.0.1.2";
+       sha256 = "0rnjwis6y0lnyfjxnxqk3zsh78ylccq5v21avb97vybmj0pld1l9";
+       revision = "1";
+       editedCabalFile = "1z8ahx8hkg1gciddin86w7x136y49i6ymwvkjmf28a397kkxmcb7";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -180372,23 +183117,11 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "mintty";
-       version = "0.1.2";
-       sha256 = "1njhz7wjmsk5pbr7gfkl95k50npkmm0iyxp3j93bbsg4rmxzg2kw";
-       libraryHaskellDepends = [ base ];
-       description = "A reliable way to detect the presence of a MinTTY console on Windows";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "mintty_0_1_3" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "mintty";
        version = "0.1.3";
        sha256 = "07gy5w0zbx9q64kdr6rzkwdxrgxh2h188bkdvbbgxwk86m9q9i7x";
        libraryHaskellDepends = [ base ];
        description = "A reliable way to detect the presence of a MinTTY console on Windows";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "mios" = callPackage
@@ -180565,18 +183298,18 @@ self: {
   "miso" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, file-embed
      , http-api-data, http-types, jsaddle, lucid, network-uri, servant
-     , servant-lucid, tagsoup, text, transformers, vector
+     , servant-lucid, tagsoup, text, transformers
      }:
      mkDerivation {
        pname = "miso";
-       version = "1.8.0.0";
-       sha256 = "02j6z7l8016cccm9i699b0ggp3l6hxhk0j7m8kiw5d7ik4wciphv";
+       version = "1.8.1.0";
+       sha256 = "0p7gh5ibz84fckc7pkh789jwl0ffxz0ixygbxx1w0r0hs22pn4ia";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson base bytestring containers file-embed http-api-data
          http-types jsaddle lucid network-uri servant servant-lucid tagsoup
-         text transformers vector
+         text transformers
        ];
        description = "A tasty Haskell front-end framework";
        license = lib.licenses.bsd3;
@@ -180599,8 +183332,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "miso-examples";
-       version = "1.8.0.0";
-       sha256 = "1dr967y1ffp1lw6jiclrgqvfvfi68d88l5qbsyl8bidfzvm7sbk1";
+       version = "1.8.1.0";
+       sha256 = "1l9984zzfb6dkrid342p6y0v36xx0jki54mlhq3w7j4x4ppjxj0k";
        isLibrary = false;
        isExecutable = true;
        description = "A tasty Haskell front-end framework";
@@ -181604,6 +184337,8 @@ self: {
        pname = "modern-uri";
        version = "0.3.4.2";
        sha256 = "018hiiqx6n272mwbmhd5j9wlzyz0x7ppa9jsrv4zx1nb6n7shkh5";
+       revision = "1";
+       editedCabalFile = "01v497wkcida80xlkg25yhppb711ynyx2zyv9hdyzrflq8pz4g6w";
        libraryHaskellDepends = [
          base bytestring containers contravariant deepseq exceptions
          megaparsec mtl profunctors QuickCheck reflection tagged
@@ -182064,8 +184799,8 @@ self: {
        pname = "monad-chronicle";
        version = "1.0.0.1";
        sha256 = "1p9w9f5sw4adxxrgfba0vxs5kdhl82ibnwfqal7nrrhp3v86imbg";
-       revision = "1";
-       editedCabalFile = "097f5wvzx10i9zgx4gn7wm81z7dfyhj9lx8jyy4n90j0adpbjryq";
+       revision = "2";
+       editedCabalFile = "1h3dk50wpbpi5qdxfwk8d5c22ad0ll1j647b4dbcjm4318l4ahkm";
        libraryHaskellDepends = [
          base data-default-class mtl semigroupoids these transformers
          transformers-compat
@@ -182456,6 +185191,8 @@ self: {
        pname = "monad-logger";
        version = "0.3.36";
        sha256 = "12rw0k01gkhiqjm2fhxgkmribksmizhj14xphfn8fkd86wzl0vbh";
+       revision = "1";
+       editedCabalFile = "04andpzbq8dlffhqwdy1a70r7g2gx1nahq67c06gcydldybb3l6i";
        libraryHaskellDepends = [
          base bytestring conduit conduit-extra exceptions fast-logger
          lifted-base monad-control monad-loops mtl resourcet stm stm-chans
@@ -182514,6 +185251,23 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "monad-logger-logstash_0_2_0_2" = callPackage
+    ({ mkDerivation, aeson, base, logstash, monad-logger, retry, stm
+     , stm-chans, text, transformers, unliftio
+     }:
+     mkDerivation {
+       pname = "monad-logger-logstash";
+       version = "0.2.0.2";
+       sha256 = "1f0376s3xmrd0gqz0laxbqsh3h4g12bk0v885ik648bxwaliq2zf";
+       libraryHaskellDepends = [
+         aeson base logstash monad-logger retry stm stm-chans text
+         transformers unliftio
+       ];
+       description = "Logstash backend for monad-logger";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "monad-logger-prefix" = callPackage
     ({ mkDerivation, base, criterion, exceptions, monad-control
      , monad-logger, mtl, resourcet, text, transformers
@@ -182929,12 +185683,26 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "monad-skeleton_0_2" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "monad-skeleton";
+       version = "0.2";
+       sha256 = "0hqlwimwdhxwcikmy41qlkzr09dxx7ibpzr2g4czlv07c6fwlm3q";
+       libraryHaskellDepends = [ base ];
+       description = "Monads of program skeleta";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "monad-st" = callPackage
     ({ mkDerivation, base, transformers }:
      mkDerivation {
        pname = "monad-st";
        version = "0.2.4.1";
        sha256 = "025zi9xzliwgyasq5hrfxwzg4ksj3kj0ys2kp62fi1n4ddbih64f";
+       revision = "1";
+       editedCabalFile = "01bb0a8h51inkn0hyvgw5iw662q6853j47bvjdha8a2z3fwapfya";
        libraryHaskellDepends = [ base transformers ];
        description = "Provides a MonadST class";
        license = lib.licenses.bsd3;
@@ -183051,6 +185819,23 @@ self: {
        broken = true;
      }) {};
 
+  "monad-throw-exit" = callPackage
+    ({ mkDerivation, base, exceptions, hspec, QuickCheck, typed-process
+     }:
+     mkDerivation {
+       pname = "monad-throw-exit";
+       version = "0.1.0.0";
+       sha256 = "06f5z978gjmqpclqzyvy7yp9jdwifl0dnmkvid73hvndj05g89xf";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base exceptions ];
+       testHaskellDepends = [ base hspec QuickCheck typed-process ];
+       description = "Functions to exit the program anywhere in MonadThrow monads";
+       license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "monad-time" = callPackage
     ({ mkDerivation, base, mtl, time }:
      mkDerivation {
@@ -183214,8 +185999,8 @@ self: {
        pname = "monadLib";
        version = "3.10";
        sha256 = "18vvcq6s9aci314daqkniq9aj1wdqa7rd3v06vd506a98c7lwp31";
-       revision = "1";
-       editedCabalFile = "072k4hnqkrfq80yh4qz2zw72fn43zm8l5rbjnckjaqdx4l315p11";
+       revision = "2";
+       editedCabalFile = "053qbz7k8r3rf948f6y74x16xjvcd4vnyfkrk55xv40qvl3ay89i";
        libraryHaskellDepends = [ base ];
        description = "A collection of monad transformers";
        license = lib.licenses.bsd3;
@@ -183805,14 +186590,29 @@ self: {
      }:
      mkDerivation {
        pname = "monoid-extras";
-       version = "0.6";
-       sha256 = "0ki1d3b1xpf653qj7brlqdgngghwrnmapy5gja75iiydfx2506a1";
+       version = "0.6.1";
+       sha256 = "1nj5rfax9lmr1pprvgdgq90am9mknx9iv7s84smv6qaw050356jf";
+       revision = "1";
+       editedCabalFile = "0csv73ism5b94lhbp95s63rqhyaaphrz2cci2407a10d3ssswki9";
        libraryHaskellDepends = [ base groups semigroupoids ];
        benchmarkHaskellDepends = [ base criterion semigroups ];
        description = "Various extra monoid-related definitions and utilities";
        license = lib.licenses.bsd3;
      }) {};
 
+  "monoid-map" = callPackage
+    ({ mkDerivation, base, monoidal-containers, reflex, witherable }:
+     mkDerivation {
+       pname = "monoid-map";
+       version = "0.1.1.0";
+       sha256 = "0rqmgqvq19yjy3g977zm12ih7a3s3giv2dz32qw1xq8cqjxyc709";
+       libraryHaskellDepends = [
+         base monoidal-containers reflex witherable
+       ];
+       description = "A monoidal map with the right group instance";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "monoid-owns" = callPackage
     ({ mkDerivation, base, bytestring, containers }:
      mkDerivation {
@@ -183890,17 +186690,15 @@ self: {
 
   "monoidal-containers" = callPackage
     ({ mkDerivation, aeson, base, containers, deepseq, hashable, lens
-     , newtype, semialign, semigroups, these, unordered-containers
+     , newtype, semialign, these, unordered-containers, witherable
      }:
      mkDerivation {
        pname = "monoidal-containers";
-       version = "0.6.0.1";
-       sha256 = "1j5mfs0ysvwk3jsmq4hlj4l3kasfc28lk1b3xaymf9dw48ac5j82";
-       revision = "4";
-       editedCabalFile = "1vi30clh5j3zzirbl4wch40vjds4p6sdmf1q1qadm4zzj7zahvpm";
+       version = "0.6.2.0";
+       sha256 = "0rnhlm77zrql42z3zsn3ag279q0vrz2idygc0x4p50q3780670p3";
        libraryHaskellDepends = [
-         aeson base containers deepseq hashable lens newtype semialign
-         semigroups these unordered-containers
+         aeson base containers deepseq hashable lens newtype semialign these
+         unordered-containers witherable
        ];
        description = "Containers with monoidal accumulation";
        license = lib.licenses.bsd3;
@@ -183912,12 +186710,13 @@ self: {
      }:
      mkDerivation {
        pname = "monoidal-functors";
-       version = "0.1.0.0";
-       sha256 = "0k590a0hmdzg9zwq697v73xdr0xh03yalr5pzxqkbx59grg31dw3";
+       version = "0.1.1.0";
+       sha256 = "11qac7z7xy8rwdzmp3x1i7bd28xvpd13yyfi27rsn56pyq6a4rqf";
        libraryHaskellDepends = [
          base bifunctors comonad contravariant profunctors semigroupoids
          tagged these
        ];
+       description = "Monoidal Functors Library";
        license = lib.licenses.mit;
      }) {};
 
@@ -184294,55 +187093,50 @@ self: {
 
   "morley" = callPackage
     ({ mkDerivation, aeson, aeson-casing, aeson-pretty, base-noprelude
-     , base58-bytestring, binary, bytestring, Cabal, constraints
-     , containers, cryptonite, data-default, doctest, elliptic-curve
-     , first-class-families, fmt, galois-field, generic-deriving, gitrev
-     , haskeline, hex-text, interpolate, lens, megaparsec, memory
-     , MonadRandom, morley-prelude, mtl, named, optparse-applicative
-     , pairing, parser-combinators, process, scientific, semigroups
-     , show-type, singletons, syb, tasty-discover, template-haskell
-     , text, text-manipulate, th-lift, th-lift-instances, time, timerep
+     , base58-bytestring, binary, bytestring, constraints, containers
+     , cryptonite, data-default, elliptic-curve, first-class-families
+     , fmt, galois-field, generic-deriving, gitrev, haskeline, hex-text
+     , lens, megaparsec, memory, MonadRandom, morley-prelude, mtl, named
+     , optparse-applicative, pairing, parser-combinators, scientific
+     , semigroups, show-type, singletons, syb, template-haskell, text
+     , text-manipulate, th-lift, th-lift-instances, time, timerep
      , uncaught-exception, unordered-containers, vector, vinyl
      , with-utf8, wl-pprint-text
      }:
      mkDerivation {
        pname = "morley";
-       version = "1.15.1";
-       sha256 = "03r6p37b9hw9n0b143d38z07fjv05jnbw76s1fjx92rm2ybbgh3p";
+       version = "1.16.0";
+       sha256 = "02ysr8qh0jgwz25nlwk88qxkpx3jsijd854i5dp9h19n5iibh7l8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-casing aeson-pretty base-noprelude base58-bytestring
          binary bytestring constraints containers cryptonite data-default
          elliptic-curve first-class-families fmt galois-field
-         generic-deriving gitrev hex-text interpolate lens megaparsec memory
-         MonadRandom morley-prelude mtl named optparse-applicative pairing
+         generic-deriving gitrev hex-text lens megaparsec memory MonadRandom
+         morley-prelude mtl named optparse-applicative pairing
          parser-combinators scientific semigroups show-type singletons syb
          template-haskell text text-manipulate th-lift th-lift-instances
          time timerep uncaught-exception unordered-containers vector vinyl
          with-utf8 wl-pprint-text
        ];
        executableHaskellDepends = [
-         aeson base-noprelude bytestring fmt haskeline megaparsec
-         morley-prelude named optparse-applicative text vinyl with-utf8
+         aeson base-noprelude base58-bytestring bytestring fmt haskeline
+         hex-text megaparsec MonadRandom morley-prelude named
+         optparse-applicative text vinyl with-utf8
        ];
-       testHaskellDepends = [
-         base-noprelude bytestring Cabal doctest morley-prelude
-         optparse-applicative process
-       ];
-       testToolDepends = [ tasty-discover ];
        description = "Developer tools for the Michelson Language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
   "morley-prelude" = callPackage
-    ({ mkDerivation, base-noprelude, lens, universum }:
+    ({ mkDerivation, base-noprelude, int-cast, lens, universum }:
      mkDerivation {
        pname = "morley-prelude";
-       version = "0.4.2";
-       sha256 = "0cmrs0hqrbwrmxycqk39csk0y7hswj2r6p1hgzrxyhy536szabby";
-       libraryHaskellDepends = [ base-noprelude lens universum ];
+       version = "0.5.0";
+       sha256 = "1j78ki07jh31am9i2g43crkajynb39agdk4as7gdkhj3lfrbriz4";
+       libraryHaskellDepends = [ base-noprelude int-cast lens universum ];
        description = "A custom prelude used in Morley";
        license = lib.licenses.mit;
      }) {};
@@ -185373,25 +188167,28 @@ self: {
   "mptcp-pm" = callPackage
     ({ mkDerivation, aeson, aeson-extra, aeson-pretty, base, bytestring
      , bytestring-conversion, c2hs, cereal, containers, enumset
-     , filepath, hslogger, HUnit, ip, katip, mtl, netlink
-     , optparse-applicative, process, temporary, text, transformers
+     , filepath, formatting, HUnit, ip, mtl, netlink
+     , optparse-applicative, polysemy, polysemy-log, polysemy-log-co
+     , polysemy-plugin, process, readable, temporary, text, transformers
      , unordered-containers
      }:
      mkDerivation {
        pname = "mptcp-pm";
-       version = "0.0.3";
-       sha256 = "0h7r9i9izflsbgb8kimsz0hmglbd4s9pjycjsm0h64lg8b1sy4gs";
+       version = "0.0.4";
+       sha256 = "1i84pkifb8mqyhv4cg0gc6adss673yp25ffmlyif3zcrc3dshjyc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-extra aeson-pretty base bytestring
-         bytestring-conversion cereal containers enumset ip katip mtl
-         netlink process text transformers unordered-containers
+         bytestring-conversion cereal containers enumset formatting ip mtl
+         netlink polysemy polysemy-log polysemy-log-co polysemy-plugin
+         process readable text transformers unordered-containers
        ];
        libraryToolDepends = [ c2hs ];
        executableHaskellDepends = [
          aeson aeson-extra aeson-pretty base bytestring cereal containers
-         filepath hslogger ip mtl netlink optparse-applicative process
+         filepath formatting ip mtl netlink optparse-applicative polysemy
+         polysemy-log polysemy-log-co polysemy-plugin process readable
          temporary text transformers
        ];
        testHaskellDepends = [ base HUnit ip text ];
@@ -185695,13 +188492,13 @@ self: {
 
   "msgpack-types" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq
-     , generic-arbitrary, hashable, hspec, QuickCheck, text
-     , unordered-containers, vector
+     , generic-arbitrary, hashable, hspec, hspec-discover, QuickCheck
+     , text, unordered-containers, vector
      }:
      mkDerivation {
        pname = "msgpack-types";
-       version = "0.0.4";
-       sha256 = "076szvjs80a765c72prjp73416gyq70b4k1319qfl339sa8lz1ky";
+       version = "0.1.0";
+       sha256 = "1q28xxv6093h6xp6mih515cid5dm08dz5ak2y1jvcb1b2lf29s01";
        libraryHaskellDepends = [
          base bytestring containers deepseq hashable QuickCheck text
          unordered-containers vector
@@ -185710,6 +188507,7 @@ self: {
          base bytestring containers deepseq generic-arbitrary hashable hspec
          QuickCheck text unordered-containers vector
        ];
+       testToolDepends = [ hspec-discover ];
        description = "A Haskell implementation of MessagePack";
        license = lib.licenses.bsd3;
      }) {};
@@ -187620,23 +190418,22 @@ self: {
 
   "mustache" = callPackage
     ({ mkDerivation, aeson, base, base-unicode-symbols, bytestring
-     , cmdargs, containers, directory, either, filepath, hspec, lens
-     , mtl, parsec, process, scientific, tar, template-haskell
-     , temporary, text, th-lift, unordered-containers, vector, wreq
-     , yaml, zlib
+     , cmdargs, containers, directory, filepath, hspec, lens, mtl
+     , parsec, process, scientific, tar, template-haskell, temporary
+     , text, th-lift, unordered-containers, vector, wreq, yaml, zlib
      }:
      mkDerivation {
        pname = "mustache";
-       version = "2.3.1";
-       sha256 = "0j5kzlirirnj2lscxgc6r9j0if8s3pvxswjblma6yxpw6qyzk2xc";
+       version = "2.3.2";
+       sha256 = "0pnvnqrm7sd1iglh298yl91mv69p3ra25s5xrlk73kb56albdbaq";
        revision = "1";
-       editedCabalFile = "05qsxxpbqacfbvdzmz2y2yh3rpf2f0n2rvhvmhn33gsvydxvadbv";
+       editedCabalFile = "11y1mdb9p5b86ld8giy5n5idylnmyafp170rhp45vmdjhyfjivjv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base bytestring containers directory either filepath mtl
-         parsec scientific template-haskell text th-lift
-         unordered-containers vector
+         aeson base bytestring containers directory filepath mtl parsec
+         scientific template-haskell text th-lift unordered-containers
+         vector
        ];
        executableHaskellDepends = [
          aeson base bytestring cmdargs filepath text yaml
@@ -187895,6 +190692,8 @@ self: {
        pname = "mwc-random";
        version = "0.15.0.2";
        sha256 = "0ny2mw4am24d6ykrm8rbcjnrq6p2cjmzjb4m6qfk54wfdxflvmim";
+       revision = "1";
+       editedCabalFile = "15q5pax8708shpmmf2ql6ximsidzmfsrqkf4ix3dljz65jvhz7hh";
        libraryHaskellDepends = [
          base math-functions primitive random time vector
        ];
@@ -189260,8 +192059,8 @@ self: {
      }:
      mkDerivation {
        pname = "natural";
-       version = "0.3.0.5";
-       sha256 = "0w137fa7qy70zi0a2r38bbczpyiafvqf2x7y91r3h0g1ajk9zfys";
+       version = "0.3.0.6";
+       sha256 = "0bnqniczz0hzdlxn3l97k51jm8ivm06plj3khzcksf9al7269hzv";
        libraryHaskellDepends = [ base lens semigroupoids ];
        testHaskellDepends = [
          base checkers hedgehog lens QuickCheck tasty tasty-hedgehog
@@ -189344,8 +192143,8 @@ self: {
        pname = "natural-transformation";
        version = "0.4";
        sha256 = "1by8xwjc23l6pa9l4iv7zp82dykpll3vc3hgxk0pgva724n8xhma";
-       revision = "9";
-       editedCabalFile = "1db5ln24wcn4fcf92096iff8jp7q531ccm8pgbqincrbxayahl1s";
+       revision = "10";
+       editedCabalFile = "18d14fasp1l5xdfgp8swgcyyjd3irqj19cn298ksx9wiw43j818p";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base containers quickcheck-instances tasty tasty-quickcheck
@@ -191236,15 +194035,16 @@ self: {
 
   "network-protocol-xmpp" = callPackage
     ({ mkDerivation, base, bytestring, gnuidn, gnutls, gsasl
-     , libxml-sax, monads-tf, network, text, transformers, xml-types
+     , libxml-sax, monads-tf, network, network-simple, text
+     , transformers, xml-types
      }:
      mkDerivation {
        pname = "network-protocol-xmpp";
-       version = "0.4.9";
-       sha256 = "1qjm22qvsmfsf9kmg0ha117yidys0yp80mawvnzs8ym5a6j80x42";
+       version = "0.4.10";
+       sha256 = "03xlw8337lzwp7f5jvbvgirf546pfmfsfjvnik08qjjy1rfn5jji";
        libraryHaskellDepends = [
          base bytestring gnuidn gnutls gsasl libxml-sax monads-tf network
-         text transformers xml-types
+         network-simple text transformers xml-types
        ];
        description = "Client library for the XMPP protocol";
        license = lib.licenses.gpl3Only;
@@ -192041,8 +194841,8 @@ self: {
        pname = "newtype";
        version = "0.2.2.0";
        sha256 = "1b7bamnd0p8vmxvlg39g5d4a2av49kx10rdyz04ixa28pg8zy01s";
-       revision = "1";
-       editedCabalFile = "0261ljw57c7l7mw3z553s6ak8lmgyqwmfhk1m2jv6snra2i5shs4";
+       revision = "2";
+       editedCabalFile = "0zfrjyybccr5prjkfazh0bgybjfv5vr1zpyxi1nqkqia1rm7pjrn";
        libraryHaskellDepends = [ base ];
        description = "A typeclass and set of functions for working with newtypes";
        license = lib.licenses.bsd3;
@@ -192228,8 +195028,8 @@ self: {
      }:
      mkDerivation {
        pname = "ngx-export";
-       version = "1.7.4";
-       sha256 = "11qmyj0cdmj9il2w5b25k45q59f1paia5yc98z999lj1fw7x27w6";
+       version = "1.7.5";
+       sha256 = "0n94r5q3awf5imx08fwmx5c2vm44jc2apnakw8q91bwlg0gfa0iq";
        libraryHaskellDepends = [
          async base binary bytestring deepseq monad-loops template-haskell
          unix
@@ -192238,6 +195038,17 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "ngx-export-distribution" = callPackage
+    ({ mkDerivation, base, Cabal, directory, filepath }:
+     mkDerivation {
+       pname = "ngx-export-distribution";
+       version = "0.3.0.0";
+       sha256 = "0vxbrr82w8sw7fbp5nwi6ksfdlbgwqsdfzlyp72fx71dradqpbsx";
+       libraryHaskellDepends = [ base Cabal directory filepath ];
+       description = "Build custom libraries for Nginx haskell module";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "ngx-export-tools" = callPackage
     ({ mkDerivation, aeson, base, binary, bytestring, ngx-export, safe
      , template-haskell
@@ -192263,8 +195074,8 @@ self: {
      }:
      mkDerivation {
        pname = "ngx-export-tools-extra";
-       version = "0.8.2.0";
-       sha256 = "1dkjfjgizi3sqnz894im70hgpabrngz6fqgzzizilg2hj0250xhm";
+       version = "1.0";
+       sha256 = "1p77wanci0bs5bvhxd8fjfqpm5aasvwxgxhpazkcvhb0s8lr67am";
        libraryHaskellDepends = [
          aeson array base base64 binary bytestring case-insensitive
          containers ede enclosed-exceptions http-client http-types network
@@ -192588,19 +195399,20 @@ self: {
      }) {};
 
   "nix-diff" = callPackage
-    ({ mkDerivation, attoparsec, base, containers, directory, filepath
-     , mtl, nix-derivation, optparse-applicative, patience, process
-     , text, unix, vector
+    ({ mkDerivation, attoparsec, base, bytestring, containers
+     , directory, filepath, mtl, nix-derivation, optparse-applicative
+     , patience, process, text, unix, vector
      }:
      mkDerivation {
        pname = "nix-diff";
-       version = "1.0.16";
-       sha256 = "1l6d43d4pr9ql4lbcslk9cjw1lxj9y0bbgxdfqxrj46lg9w63h6g";
+       version = "1.0.17";
+       sha256 = "1jv7gqa081fjkf36l7868slpqr9qf0jd65s3wr24h5q1jlbcnfk2";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         attoparsec base containers directory filepath mtl nix-derivation
-         optparse-applicative patience process text unix vector
+         attoparsec base bytestring containers directory filepath mtl
+         nix-derivation optparse-applicative patience process text unix
+         vector
        ];
        description = "Explain why two Nix derivations differ";
        license = lib.licenses.bsd3;
@@ -192734,8 +195546,6 @@ self: {
        ];
        description = "Lightweight dependency management with Nix";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "nix-tools" = callPackage
@@ -193552,8 +196362,8 @@ self: {
     ({ mkDerivation, base, comonad, deepseq, doctest, Glob, safe }:
      mkDerivation {
        pname = "nonempty-zipper";
-       version = "1.0.0.2";
-       sha256 = "10fj56ry851npkhrkw9gb1sckhx764l2s2c5x83cnylxlg7cfijj";
+       version = "1.0.0.3";
+       sha256 = "1cifrld76j43spf265arwp2sdpkbhrb4ca2fmj4g9mw0nxj4dbqq";
        libraryHaskellDepends = [ base comonad deepseq safe ];
        testHaskellDepends = [ base comonad deepseq doctest Glob safe ];
        description = "A non-empty comonadic list zipper";
@@ -193601,8 +196411,8 @@ self: {
        pname = "nonlinear-optimization-ad";
        version = "0.2.4";
        sha256 = "0wqi1y4f2sqn7wg1bj3i73kwdawg9ni6lq1s87m6sshy34n0vbx5";
-       revision = "1";
-       editedCabalFile = "0m3320spwzlyiyfjwdkxn92c858pivskrgazby1c1b3qp3nl2dk6";
+       revision = "2";
+       editedCabalFile = "09q4c4vaxs1dxi6m8ph8r1jw95hwsqvcybsfpzxdrk2j5mp43gw8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -193666,8 +196476,8 @@ self: {
        pname = "normalization-insensitive";
        version = "2.0.2";
        sha256 = "1rr12rrij64hi6jkd42h4x2m86k1ra10ykzpzc38n6rfdhyiswpn";
-       revision = "1";
-       editedCabalFile = "0q5h2017r0zwgi2xdrznhq2llljz9bslqnhq1l5zczrm9xs3304x";
+       revision = "2";
+       editedCabalFile = "1gf3msmrgd6amqhsy18b7wygjmjcz295v7pj9pdwdig7mlak1r7s";
        libraryHaskellDepends = [
          base bytestring deepseq hashable text unicode-transforms
        ];
@@ -193835,7 +196645,6 @@ self: {
        platforms = [
          "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
        ];
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "notmuch" = callPackage
@@ -195348,6 +198157,24 @@ self: {
        broken = true;
      }) {};
 
+  "oath" = callPackage
+    ({ mkDerivation, async, base, futures, promise, stm, stm-delay
+     , streamly, tasty-bench, unsafe-promises
+     }:
+     mkDerivation {
+       pname = "oath";
+       version = "0.0";
+       sha256 = "1vrspqs9inhdwavz39z0fy05kjpbklz07qm4irx6h9w1552xwb77";
+       libraryHaskellDepends = [ base stm stm-delay ];
+       testHaskellDepends = [
+         async base futures promise streamly unsafe-promises
+       ];
+       benchmarkHaskellDepends = [ async base streamly tasty-bench ];
+       description = "Composable concurrent computation done right";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "oauth10a" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, bytestring
      , cryptohash, entropy, http-types, time, transformers
@@ -195904,8 +198731,8 @@ self: {
      }:
      mkDerivation {
        pname = "oeis2";
-       version = "1.0.5";
-       sha256 = "1incjy5si6lwsvh2hfdw61m3jq9qad06nrrylj5b8n5yj54wzna8";
+       version = "1.0.6";
+       sha256 = "1y1i2v59nhijh50akkjk9b7cnmrx33lgmk4p13fvwimkm5g9avs2";
        libraryHaskellDepends = [
          aeson base containers http-conduit lens lens-aeson text vector
        ];
@@ -196373,15 +199200,17 @@ self: {
      }) {};
 
   "one-line-aeson-text" = callPackage
-    ({ mkDerivation, aeson, base, text, unordered-containers }:
+    ({ mkDerivation, aeson, base, text }:
      mkDerivation {
        pname = "one-line-aeson-text";
-       version = "0.1.0.2";
-       sha256 = "033dqj6qc0fjq9nq22mbdrhn8nllmx95x785dwv5l7yj7q1rm7q9";
-       libraryHaskellDepends = [ aeson base text unordered-containers ];
+       version = "0.1.0.3";
+       sha256 = "15p493sapvnn89sv43gxnpx4nyz8l8wdk1jr5w7nha50szbsabv3";
+       libraryHaskellDepends = [ aeson base text ];
        testHaskellDepends = [ aeson base text ];
        description = "Pretty-printing short Aeson values as text";
        license = lib.licenses.asl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "one-liner" = callPackage
@@ -196425,8 +199254,8 @@ self: {
     ({ mkDerivation, base, one-liner, random }:
      mkDerivation {
        pname = "one-liner-instances";
-       version = "0.1.2.1";
-       sha256 = "1gy900nd5n6cffqw63hlkqg4ly86wjlfqgdcm1zy2nyx7dxg914k";
+       version = "0.1.3.0";
+       sha256 = "0qkvbrxgnr51a0hdd2ap6fndipgfplsdy4lh841h8hda5d4dhabg";
        libraryHaskellDepends = [ base one-liner random ];
        description = "Generics-based implementations for common typeclasses";
        license = lib.licenses.bsd3;
@@ -196590,8 +199419,10 @@ self: {
      }:
      mkDerivation {
        pname = "opaleye";
-       version = "0.7.6.1";
-       sha256 = "1kfi47vjg06c5r88n16cqnr6ywb3cs2w6a3w4wljal1r5cskqyay";
+       version = "0.7.6.2";
+       sha256 = "0dln0r4qk5k4gmjg06275zgbzgivwxw471sd0y4l01j3x7ix3q46";
+       revision = "1";
+       editedCabalFile = "0dq8h20072nnir5bp17qyz27l2gnbwdr2dvyz84f8cgr2jvyhspb";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring case-insensitive
          contravariant postgresql-simple pretty product-profunctors
@@ -196609,7 +199440,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "opaleye_0_7_6_2" = callPackage
+  "opaleye_0_8_0_1" = callPackage
     ({ mkDerivation, aeson, base, base16-bytestring, bytestring
      , case-insensitive, containers, contravariant, dotenv, hspec
      , hspec-discover, multiset, postgresql-simple, pretty
@@ -196619,8 +199450,8 @@ self: {
      }:
      mkDerivation {
        pname = "opaleye";
-       version = "0.7.6.2";
-       sha256 = "0dln0r4qk5k4gmjg06275zgbzgivwxw471sd0y4l01j3x7ix3q46";
+       version = "0.8.0.1";
+       sha256 = "1py950js9k80manm3xj1sfls0xnw1kd609hw268wr9izd0syfva4";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring case-insensitive
          contravariant postgresql-simple pretty product-profunctors
@@ -197006,8 +199837,45 @@ self: {
        pname = "openapi3";
        version = "3.1.0";
        sha256 = "011754qyxxw5mn06hdmxalvsiff7a4x4k2yb2r6ylzr6zhyz818z";
-       revision = "2";
-       editedCabalFile = "0hjczkslbn7m9vpn6vqxsr0b8aqa6im8pms3jbfcd7pfkp810z2s";
+       revision = "3";
+       editedCabalFile = "1p4vlia591sf94448qn1fqf6ibzp0z92x4xya5y31d6skffr3ryj";
+       isLibrary = true;
+       isExecutable = true;
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         aeson aeson-pretty base base-compat-batteries bytestring containers
+         cookie generics-sop hashable http-media insert-ordered-containers
+         lens mtl network optics-core optics-th QuickCheck scientific
+         template-haskell text time transformers unordered-containers
+         uuid-types vector
+       ];
+       executableHaskellDepends = [ aeson base lens text ];
+       testHaskellDepends = [
+         aeson base base-compat-batteries bytestring containers doctest Glob
+         hashable hspec HUnit insert-ordered-containers lens mtl QuickCheck
+         quickcheck-instances template-haskell text time
+         unordered-containers utf8-string vector
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "OpenAPI 3.0 data model";
+       license = lib.licenses.bsd3;
+     }) {};
+
+  "openapi3_3_2_0" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, base-compat-batteries
+     , bytestring, Cabal, cabal-doctest, containers, cookie, doctest
+     , generics-sop, Glob, hashable, hspec, hspec-discover, http-media
+     , HUnit, insert-ordered-containers, lens, mtl, network, optics-core
+     , optics-th, QuickCheck, quickcheck-instances, scientific
+     , template-haskell, text, time, transformers, unordered-containers
+     , utf8-string, uuid-types, vector
+     }:
+     mkDerivation {
+       pname = "openapi3";
+       version = "3.2.0";
+       sha256 = "0xlfjpcl8l7xf8g65hqbiynhqh9yzsm11gm0qaax8mn7hc8k7jji";
+       revision = "1";
+       editedCabalFile = "0mhfsg1mgkanxy9rzhvsn3zibqhbqwsvqj6pawhsnbfn9fcyjmgb";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -197028,39 +199896,43 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "OpenAPI 3.0 data model";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "openapi3-code-generator" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, directory
-     , filepath, genvalidity, genvalidity-hspec, genvalidity-text
-     , hashmap, hspec, http-client, http-conduit, http-types, mtl
-     , options, QuickCheck, scientific, split, template-haskell, text
+    ({ mkDerivation, aeson, autodocodec, autodocodec-yaml, base
+     , bytestring, containers, directory, filepath, genvalidity
+     , genvalidity-hspec, genvalidity-text, hashmap, hspec, http-client
+     , http-conduit, http-types, mtl, optparse-applicative, path
+     , path-io, QuickCheck, scientific, split, template-haskell, text
      , time, transformers, unordered-containers, validity, validity-text
      , vector, yaml
      }:
      mkDerivation {
        pname = "openapi3-code-generator";
-       version = "0.1.0.6";
-       sha256 = "1nf7m27m5l56ms45lldbbqcwz3rcdw5jr3kk7si280h3153yhayc";
+       version = "0.1.0.7";
+       sha256 = "18g7xca0q4l4zn5k1wvx3zvnvidagab7vjwb4g68xy18rxh3q2ap";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base bytestring containers hashmap http-client http-conduit
-         http-types mtl options scientific split template-haskell text time
-         transformers unordered-containers vector yaml
+         aeson autodocodec autodocodec-yaml base bytestring containers
+         directory filepath hashmap http-client http-conduit http-types mtl
+         optparse-applicative path path-io scientific split template-haskell
+         text time transformers unordered-containers vector yaml
        ];
        executableHaskellDepends = [
-         aeson base bytestring containers directory filepath hashmap
-         http-client http-conduit http-types mtl options scientific split
-         template-haskell text time transformers unordered-containers vector
-         yaml
+         aeson autodocodec autodocodec-yaml base bytestring containers
+         directory filepath hashmap http-client http-conduit http-types mtl
+         optparse-applicative path path-io scientific split template-haskell
+         text time transformers unordered-containers vector yaml
        ];
        testHaskellDepends = [
-         aeson base bytestring containers genvalidity genvalidity-hspec
-         genvalidity-text hashmap hspec http-client http-conduit http-types
-         mtl options QuickCheck scientific split template-haskell text time
-         transformers unordered-containers validity validity-text vector
-         yaml
+         aeson autodocodec autodocodec-yaml base bytestring containers
+         directory filepath genvalidity genvalidity-hspec genvalidity-text
+         hashmap hspec http-client http-conduit http-types mtl
+         optparse-applicative path path-io QuickCheck scientific split
+         template-haskell text time transformers unordered-containers
+         validity validity-text vector yaml
        ];
        description = "OpenAPI3 Haskell Client Code Generator";
        license = lib.licenses.mit;
@@ -197939,6 +200811,7 @@ self: {
        description = "Jaeger backend for OpenTracing";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "opentracing-wai" = callPackage
@@ -197981,6 +200854,7 @@ self: {
        description = "Zipkin V1 backend for OpenTracing";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "opentracing-zipkin-v2" = callPackage
@@ -198063,22 +200937,6 @@ self: {
     ({ mkDerivation, base, mtl, random }:
      mkDerivation {
        pname = "operational";
-       version = "0.2.4.0";
-       sha256 = "1hwmwbsxzwv68b39rv4gn3da6irv8zm89gqrkc3rdsgwi5ziyn3i";
-       revision = "1";
-       editedCabalFile = "1b5vjp87lh34lpp9i4mrwcmr6rs45r6azdamwinlhrxynn91n8ri";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base mtl ];
-       executableHaskellDepends = [ base mtl random ];
-       description = "Implementation of difficult monads made easy with operational semantics";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "operational_0_2_4_1" = callPackage
-    ({ mkDerivation, base, mtl, random }:
-     mkDerivation {
-       pname = "operational";
        version = "0.2.4.1";
        sha256 = "0aa1pxymvkhbs0x03ikfiap2skzyf2z7307kz5adkmb3qmykcqa2";
        isLibrary = true;
@@ -198087,7 +200945,6 @@ self: {
        executableHaskellDepends = [ base mtl random ];
        description = "Implementation of difficult monads made easy with operational semantics";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "operational-alacarte" = callPackage
@@ -198309,8 +201166,8 @@ self: {
        pname = "optics-extra";
        version = "0.3";
        sha256 = "15vnznmi4h9xrrp7dk6fqgz9cwlqlmdr2h4nx1n5q6hi2ic1bmm4";
-       revision = "2";
-       editedCabalFile = "13x3mavf2bi25ns03b93b5ghhkyivwxf6idn0wqs9fdiih1xvhv8";
+       revision = "3";
+       editedCabalFile = "1mfxbi2a0hbdzd5blps2s6ik0phia5w8nh9fs3wfa990m63nsscr";
        libraryHaskellDepends = [
          array base bytestring containers hashable indexed-profunctors mtl
          optics-core text transformers unordered-containers vector
@@ -198328,6 +201185,8 @@ self: {
        pname = "optics-extra";
        version = "0.4";
        sha256 = "1ynhyw22rwvvh5yglybmb6skhpgqk4gh9w2w4dh8kb7myzcwfj1s";
+       revision = "1";
+       editedCabalFile = "0imfv8ax513jnlcjqhxvwsn6izi6rndf42qkpjaycbw23a163fj4";
        libraryHaskellDepends = [
          array base bytestring containers hashable indexed-profunctors
          indexed-traversable-instances mtl optics-core text transformers
@@ -198365,6 +201224,8 @@ self: {
        pname = "optics-th";
        version = "0.4";
        sha256 = "1qddzwhzlhhp1902irswjj18aa5ziavn4klhy7najxjwndilb55y";
+       revision = "1";
+       editedCabalFile = "061axc65h2lzqj7ya8h7xmd6rz944dsdj6i2i4ad6ij3157zcyc4";
        libraryHaskellDepends = [
          base containers mtl optics-core template-haskell th-abstraction
          transformers
@@ -198586,8 +201447,8 @@ self: {
        pname = "optparse-applicative";
        version = "0.16.1.0";
        sha256 = "16nnrkmgd28h540f17nb017ziq4gbzgkxpdraqicaczkca1jf1b2";
-       revision = "1";
-       editedCabalFile = "0401ik87gm9gjpch6lmkczygp59na3f1j7bcs6mc2r929c2xgsqn";
+       revision = "2";
+       editedCabalFile = "0ccpk2nb9fvj97z00w8cmlpw4fn94ayndg4ngm2ls4hrdbnj5321";
        libraryHaskellDepends = [
          ansi-wl-pprint base process transformers transformers-compat
        ];
@@ -198646,24 +201507,6 @@ self: {
      }:
      mkDerivation {
        pname = "optparse-generic";
-       version = "1.4.6";
-       sha256 = "1ihr5ly5xkhhds7frifgy1djay1d7yvdc617qqb7h61h4930kl3k";
-       libraryHaskellDepends = [
-         base bytestring Only optparse-applicative system-filepath text time
-         transformers transformers-compat void
-       ];
-       description = "Auto-generate a command-line parser for your datatype";
-       license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
-     }) {};
-
-  "optparse-generic_1_4_7" = callPackage
-    ({ mkDerivation, base, bytestring, Only, optparse-applicative
-     , system-filepath, text, time, transformers, transformers-compat
-     , void
-     }:
-     mkDerivation {
-       pname = "optparse-generic";
        version = "1.4.7";
        sha256 = "03s6iwfr2iiypnx3wmnrb37zz7kflk40dj38v8j4ccqxkkf9h0kk";
        libraryHaskellDepends = [
@@ -198672,7 +201515,6 @@ self: {
        ];
        description = "Auto-generate a command-line parser for your datatype";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
        maintainers = with lib.maintainers; [ Gabriel439 ];
      }) {};
 
@@ -199278,6 +202120,35 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "ormolu_0_4_0_0" = callPackage
+    ({ mkDerivation, ansi-terminal, array, base, bytestring, Cabal
+     , containers, Diff, directory, dlist, exceptions, filepath
+     , ghc-lib-parser, gitrev, hspec, hspec-discover, mtl
+     , optparse-applicative, path, path-io, syb, temporary, text
+     }:
+     mkDerivation {
+       pname = "ormolu";
+       version = "0.4.0.0";
+       sha256 = "1alibf9ya2igwwjx23pjd0fi2kdaldrkfdpyr2w211irf9agy0j9";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-terminal array base bytestring Cabal containers Diff directory
+         dlist exceptions filepath ghc-lib-parser mtl syb text
+       ];
+       executableHaskellDepends = [
+         base filepath ghc-lib-parser gitrev optparse-applicative text
+       ];
+       testHaskellDepends = [
+         base containers directory filepath hspec path path-io temporary
+         text
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "A formatter for Haskell source code";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "orthotope" = callPackage
     ({ mkDerivation, base, deepseq, dlist, HUnit, pretty, QuickCheck
      , test-framework, test-framework-hunit, test-framework-quickcheck2
@@ -199319,8 +202190,8 @@ self: {
      }:
      mkDerivation {
        pname = "ory-hydra-client";
-       version = "1.9.2";
-       sha256 = "0z1897xl10465mzhriis9bmxk0hnswl5ap2m6x8ks5m120irh894";
+       version = "1.10";
+       sha256 = "0ciyyd1925z2wnd6w57f993dva519cm1wgcs39kiw20n2bpb2myi";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring case-insensitive containers
          deepseq exceptions http-api-data http-client http-client-tls
@@ -199332,7 +202203,7 @@ self: {
          aeson base bytestring containers hspec iso8601-time mtl QuickCheck
          semigroups text time transformers unordered-containers vector
        ];
-       description = "Auto-generated ory-hydra API Client";
+       description = "Auto-generated ory-hydra-client API Client";
        license = lib.licenses.mit;
      }) {};
 
@@ -199725,6 +202596,8 @@ self: {
        ];
        description = "Turn any English text into nonsensical babyspeaks";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "pack" = callPackage
@@ -199750,6 +202623,8 @@ self: {
        pname = "package-description-remote";
        version = "0.2.0.0";
        sha256 = "0i47yvjcfc6fyxvz39bambvfsnpix5r25cbm12b4sp968qinv4sa";
+       revision = "1";
+       editedCabalFile = "0kl6g6yqznzrp5r48xwy5hbmi3hx3vhvln8699zdb7nymsiympis";
        libraryHaskellDepends = [
          base bytestring Cabal lens lens-aeson wreq
        ];
@@ -199780,6 +202655,26 @@ self: {
        broken = true;
      }) {};
 
+  "package-version" = callPackage
+    ({ mkDerivation, base, deepseq, doctest, hedgehog, prettyprinter
+     , safe-exceptions, tagged, tasty, tasty-hedgehog, tasty-hunit
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "package-version";
+       version = "0.1.0.0";
+       sha256 = "1r1rw412f40ylnyhxjb04f2ch52wqqblm8979x92n8fd9jj3lr84";
+       libraryHaskellDepends = [
+         base deepseq prettyprinter safe-exceptions template-haskell text
+       ];
+       testHaskellDepends = [
+         base doctest hedgehog safe-exceptions tagged tasty tasty-hedgehog
+         tasty-hunit text
+       ];
+       description = "A package for retrieving a package's version number";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "package-vt" = callPackage
     ({ mkDerivation, base, Cabal, Diff, filepath, haskell-src-exts }:
      mkDerivation {
@@ -200441,7 +203336,7 @@ self: {
        maintainers = with lib.maintainers; [ peti ];
      }) {};
 
-  "pandoc_2_16_1" = callPackage
+  "pandoc_2_16_2" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, array, attoparsec, base
      , base64-bytestring, binary, blaze-html, blaze-markup, bytestring
      , case-insensitive, citeproc, commonmark, commonmark-extensions
@@ -200451,7 +203346,7 @@ self: {
      , hslua-marshalling, hslua-module-path, hslua-module-system
      , hslua-module-text, hslua-module-version, http-client
      , http-client-tls, http-types, ipynb, jira-wiki-markup, JuicyPixels
-     , mtl, network, network-uri, pandoc-types, parsec, pretty
+     , lpeg, mtl, network, network-uri, pandoc-types, parsec, pretty
      , pretty-show, process, QuickCheck, random, safe, scientific, SHA
      , skylighting, skylighting-core, split, syb, tagsoup, tasty
      , tasty-bench, tasty-golden, tasty-hunit, tasty-lua
@@ -200461,8 +203356,10 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc";
-       version = "2.16.1";
-       sha256 = "1gjmry6bnwh20myhqsj8ysfdhhcq7ccawkykxf4k4bnp7yppdfza";
+       version = "2.16.2";
+       sha256 = "0pnw4v5i20bi9j3gg0i9wlikk2fhj34x5vhh23zhj8v4p72r3wkj";
+       revision = "1";
+       editedCabalFile = "013i4hsgfdq38zsxq4c3l80hqxrqccy41h1ihyakamb8m3p3pq8q";
        configureFlags = [ "-fhttps" "-f-trypandoc" ];
        isLibrary = true;
        isExecutable = true;
@@ -200475,7 +203372,7 @@ self: {
          emojis exceptions file-embed filepath Glob haddock-library hslua
          hslua-marshalling hslua-module-path hslua-module-system
          hslua-module-text hslua-module-version http-client http-client-tls
-         http-types ipynb jira-wiki-markup JuicyPixels mtl network
+         http-types ipynb jira-wiki-markup JuicyPixels lpeg mtl network
          network-uri pandoc-types parsec pretty pretty-show process random
          safe scientific SHA skylighting skylighting-core split syb tagsoup
          temporary texmath text text-conversions time unicode-collation
@@ -200489,7 +203386,7 @@ self: {
          zip-archive
        ];
        benchmarkHaskellDepends = [
-         base bytestring containers deepseq mtl tasty-bench text time
+         base bytestring deepseq mtl tasty-bench text
        ];
        postInstall = ''
          mkdir -p $out/share/man/man1
@@ -200802,6 +203699,30 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "pandoc-lua-marshal" = callPackage
+    ({ mkDerivation, base, bytestring, containers, exceptions, hslua
+     , hslua-marshalling, lua, pandoc-types, QuickCheck, safe, tasty
+     , tasty-hunit, tasty-lua, tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "pandoc-lua-marshal";
+       version = "0.1.2";
+       sha256 = "13w9wp5gq0mici6faf2shpwbm7a7akh4h4gvkhki88kj4sbfvikp";
+       libraryHaskellDepends = [
+         base bytestring containers exceptions hslua hslua-marshalling lua
+         pandoc-types safe text
+       ];
+       testHaskellDepends = [
+         base bytestring containers exceptions hslua hslua-marshalling lua
+         pandoc-types QuickCheck safe tasty tasty-hunit tasty-lua
+         tasty-quickcheck text
+       ];
+       description = "Use pandoc types in Lua";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "pandoc-markdown-ghci-filter" = callPackage
     ({ mkDerivation, aeson, base, containers, ghcid, pandoc
      , pandoc-types, QuickCheck, tasty, tasty-hunit, tasty-quickcheck
@@ -201097,8 +204018,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "pandora";
-       version = "0.4.7";
-       sha256 = "1kda661i18kzrfj38si48n1shbqxh30p1sz97cb871ni2hlqsarj";
+       version = "0.4.8";
+       sha256 = "0ifhigbvx24j8xg4h90xc2lfpzlb04ndlqyvym2gbmh8rmg87bjd";
        description = "A box of patterns and paradigms";
        license = lib.licenses.mit;
      }) {};
@@ -201112,6 +204033,8 @@ self: {
        libraryHaskellDepends = [ ghc-prim pandora ];
        description = "...";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "pang-a-lambda" = callPackage
@@ -202174,6 +205097,17 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "park-bench" = callPackage
+    ({ mkDerivation, base, bytestring, text }:
+     mkDerivation {
+       pname = "park-bench";
+       version = "0.1.0";
+       sha256 = "0ygj4x3s0s53pwp256ypwarfiwccg3mr7drgjxp41bpc8hs66v4y";
+       libraryHaskellDepends = [ base bytestring text ];
+       description = "A quick-and-dirty, low-friction benchmark tool with immediate feedback";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "parochial" = callPackage
     ({ mkDerivation, base, blaze-html, blaze-markup, Cabal, directory
      , filepath, filepattern, hackage-db, hoogle, optparse-generic
@@ -202239,6 +205173,21 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "parse" = callPackage
+    ({ mkDerivation, base, split, tasty, tasty-hunit, template-haskell
+     }:
+     mkDerivation {
+       pname = "parse";
+       version = "0.1.0.0";
+       sha256 = "0jnj2q99z2q4l4iclkissq6328dr51pv9g225nrbqanihwai6pl3";
+       libraryHaskellDepends = [ base split template-haskell ];
+       testHaskellDepends = [ base tasty tasty-hunit ];
+       description = "Simple way to parse strings with Python-like format strings";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "parse-dimacs" = callPackage
     ({ mkDerivation, array, base, bytestring, parsec }:
      mkDerivation {
@@ -202304,22 +205253,16 @@ self: {
        broken = true;
      }) {};
 
-  "parsec_3_1_14_0" = callPackage
-    ({ mkDerivation, base, bytestring, HUnit, mtl, test-framework
-     , test-framework-hunit, text
-     }:
+  "parsec_3_1_15_0" = callPackage
+    ({ mkDerivation, base, bytestring, mtl, tasty, tasty-hunit, text }:
      mkDerivation {
        pname = "parsec";
-       version = "3.1.14.0";
-       sha256 = "132waj2cpn892midbhpkfmb74qq83v0zv29v885frlp1gvh94b67";
-       revision = "3";
-       editedCabalFile = "1qclpv599691710g321x1864js3gqyfv35xbh6kxlshjdrzcbmbj";
+       version = "3.1.15.0";
+       sha256 = "1v8zs8zv1rk16lag2yqaxfwanjpgnh4gxw1vd70py0n04d20z0lq";
        libraryHaskellDepends = [ base bytestring mtl text ];
-       testHaskellDepends = [
-         base HUnit mtl test-framework test-framework-hunit
-       ];
+       testHaskellDepends = [ base mtl tasty tasty-hunit ];
        description = "Monadic parser combinators";
-       license = lib.licenses.bsd3;
+       license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -202813,8 +205756,8 @@ self: {
      }:
      mkDerivation {
        pname = "parsley";
-       version = "1.0.0.3";
-       sha256 = "1nw25yzyx5q38hll5mvgwijp1rxsgfcm1vmhchlb6a3phya12xhj";
+       version = "2.0.0.0";
+       sha256 = "0h6msk2a11bq4bzl5gs3aq0sqd1z13smp2n8bxsr49vm51hmd1qh";
        libraryHaskellDepends = [
          base parsley-core template-haskell text
        ];
@@ -202835,14 +205778,14 @@ self: {
 
   "parsley-core" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, cpphs
-     , dependent-map, dependent-sum, ghc-prim, hashable, mtl
+     , deepseq, dependent-map, dependent-sum, ghc-prim, hashable, mtl
      , pretty-terminal, tasty, tasty-hunit, tasty-quickcheck
-     , template-haskell, text, unordered-containers
+     , template-haskell, text, th-test-utils, unordered-containers
      }:
      mkDerivation {
        pname = "parsley-core";
-       version = "1.7.2.0";
-       sha256 = "1fwlpz4ysngncsjamxdk3fkv5rg47nbkah2dkrp1zjm5ckd1cgcs";
+       version = "2.0.0.0";
+       sha256 = "1v46wpi80fdjpdgr6jcrhljxjrmf1gf7cxmi3y0sdlininr4273i";
        libraryHaskellDepends = [
          array base bytestring containers dependent-map dependent-sum
          ghc-prim hashable mtl pretty-terminal template-haskell text
@@ -202850,7 +205793,8 @@ self: {
        ];
        libraryToolDepends = [ cpphs ];
        testHaskellDepends = [
-         base containers tasty tasty-hunit tasty-quickcheck
+         base containers deepseq tasty tasty-hunit tasty-quickcheck
+         template-haskell th-test-utils
        ];
        description = "A fast parser combinator library backed by Typed Template Haskell";
        license = lib.licenses.bsd3;
@@ -203467,6 +206411,29 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "path_0_9_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, deepseq, exceptions
+     , filepath, genvalidity, genvalidity-hspec, genvalidity-property
+     , hashable, hspec, mtl, QuickCheck, template-haskell, text
+     , validity
+     }:
+     mkDerivation {
+       pname = "path";
+       version = "0.9.1";
+       sha256 = "0n0mp0cs2abybhpbrj1xgdcllcrxnjpw0c663aapm48irrq1fjbf";
+       libraryHaskellDepends = [
+         aeson base deepseq exceptions filepath hashable template-haskell
+         text
+       ];
+       testHaskellDepends = [
+         aeson base bytestring filepath genvalidity genvalidity-hspec
+         genvalidity-property hspec mtl QuickCheck template-haskell validity
+       ];
+       description = "Support for well-typed paths";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "path-binary-instance" = callPackage
     ({ mkDerivation, base, binary, path }:
      mkDerivation {
@@ -204230,15 +207197,15 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
-  "pcre2_2_0_2" = callPackage
+  "pcre2_2_0_3" = callPackage
     ({ mkDerivation, base, containers, criterion, hspec, microlens
      , microlens-platform, mtl, pcre-light, regex-pcre-builtin
      , template-haskell, text
      }:
      mkDerivation {
        pname = "pcre2";
-       version = "2.0.2";
-       sha256 = "0v96cxkx1c9x9n5z2fh1xawgrnaz00pf7ip76my8r92rzayzy0kw";
+       version = "2.0.3";
+       sha256 = "0fcgaf1w5y2mwki4zp4yx2a65g7aqqrpmrrjdjybwz37bp5hzihs";
        libraryHaskellDepends = [
          base containers microlens mtl template-haskell text
        ];
@@ -204951,8 +207918,8 @@ self: {
      }:
      mkDerivation {
        pname = "perceptual-hash";
-       version = "0.1.4.3";
-       sha256 = "096kr8hjcqj6qdaynl5yll4q8544iwwkwa0ihzinpghi94yq97yv";
+       version = "0.1.4.5";
+       sha256 = "1qh7crpb78pd7kn7g8sh5h8wr911ldz30p23m9lqfk0cyxd1pxvy";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -205569,26 +208536,27 @@ self: {
      }) {};
 
   "persistent-discover" = callPackage
-    ({ mkDerivation, base, directory, dlist, file-embed, filepath
-     , hspec, hspec-discover, mtl, persistent, template-haskell
+    ({ mkDerivation, base, directory, discover-instances, dlist
+     , file-embed, filepath, hspec, hspec-discover, mtl, persistent
+     , some-dict-of, template-haskell, text
      }:
      mkDerivation {
        pname = "persistent-discover";
-       version = "0.1.0.4";
-       sha256 = "0p5nfxs885siy0a629iwqxksz3704zyinfhl55n74crxad3kgacj";
+       version = "0.1.0.5";
+       sha256 = "1y90046yva6zxm0im8p51yivqyp8nhgplwgnmw78sw1fa2gvjvs9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base directory dlist file-embed filepath mtl persistent
-         template-haskell
+         base directory discover-instances dlist file-embed filepath mtl
+         persistent some-dict-of template-haskell text
        ];
        executableHaskellDepends = [
-         base directory dlist file-embed filepath mtl persistent
-         template-haskell
+         base directory discover-instances dlist file-embed filepath mtl
+         persistent some-dict-of template-haskell text
        ];
        testHaskellDepends = [
-         base directory dlist file-embed filepath hspec hspec-discover mtl
-         persistent template-haskell
+         base directory discover-instances dlist file-embed filepath hspec
+         hspec-discover mtl persistent some-dict-of template-haskell text
        ];
        testToolDepends = [ hspec-discover ];
        description = "Persistent module discover utilities";
@@ -205782,24 +208750,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "persistent-mtl_0_3_0_0" = callPackage
+  "persistent-mtl_0_4_0_0" = callPackage
     ({ mkDerivation, base, bytestring, conduit, containers, esqueleto
-     , monad-logger, mtl, persistent, persistent-postgresql
-     , persistent-sqlite, persistent-template, resource-pool, resourcet
-     , tasty, tasty-golden, tasty-hunit, text, transformers, unliftio
-     , unliftio-core, unliftio-pool
+     , exceptions, explainable-predicates, monad-logger, mtl, persistent
+     , persistent-postgresql, persistent-sqlite, persistent-template
+     , resource-pool, resourcet, tasty, tasty-golden, tasty-hunit, text
+     , transformers, unliftio, unliftio-core, unliftio-pool
      }:
      mkDerivation {
        pname = "persistent-mtl";
-       version = "0.3.0.0";
-       sha256 = "1srahd7n5xcl6sai2p3y1vmin9sbyf30xxqcjhqsj3bl5hjab5hz";
+       version = "0.4.0.0";
+       sha256 = "1i8azgcgj245dw59wnsh1cpn8n3l6b8s8gh5rim8jl315rxbsn5w";
        libraryHaskellDepends = [
-         base conduit containers mtl persistent resource-pool resourcet text
-         transformers unliftio unliftio-core unliftio-pool
+         base conduit containers exceptions monad-logger mtl persistent
+         resource-pool resourcet text transformers unliftio unliftio-core
+         unliftio-pool
        ];
        testHaskellDepends = [
-         base bytestring conduit containers esqueleto monad-logger
-         persistent persistent-postgresql persistent-sqlite
+         base bytestring conduit containers esqueleto explainable-predicates
+         monad-logger persistent persistent-postgresql persistent-sqlite
          persistent-template resource-pool resourcet tasty tasty-golden
          tasty-hunit text unliftio
        ];
@@ -207111,8 +210080,8 @@ self: {
      }:
      mkDerivation {
        pname = "phonetic-languages-simplified-examples-array";
-       version = "0.15.1.0";
-       sha256 = "1y9i8278737dqil8gx8m27c8fwlzi949wb86z31r9v8k8irsx3p1";
+       version = "0.15.2.1";
+       sha256 = "0ag3nnmfipngc9xf70s5dla84ynab9r9ipswrxcxyga5mx5zw1da";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -207368,25 +210337,31 @@ self: {
      }) {};
 
   "photoname" = callPackage
-    ({ mkDerivation, base, directory, exif, filepath, HUnit, mtl
-     , old-locale, parsec, process, regex-posix, time, unix
+    ({ mkDerivation, ansi-wl-pprint, base, containers, directory
+     , filepath, heredoc, hsexif, hslogger, mtl, newtype-generics
+     , optparse-applicative, parsec, process, regex-posix, tasty
+     , tasty-hunit, tasty-quickcheck, time, unix
      }:
      mkDerivation {
        pname = "photoname";
-       version = "3.3";
-       sha256 = "1fcl0m5hm6xvnzvn8v0l69vr7yh2q58six62147mwf4nlzny61gd";
-       isLibrary = false;
+       version = "5.0";
+       sha256 = "0g17jbnrgl2crgd04sy9s8d1g8da7p8wxq7hgnlg9h4n40yjxbd8";
+       isLibrary = true;
        isExecutable = true;
+       libraryHaskellDepends = [
+         base containers directory filepath hsexif hslogger mtl
+         newtype-generics parsec process time unix
+       ];
        executableHaskellDepends = [
-         base directory exif filepath mtl old-locale parsec time unix
+         ansi-wl-pprint base directory filepath heredoc hslogger
+         newtype-generics optparse-applicative unix
        ];
        testHaskellDepends = [
-         base directory exif filepath HUnit mtl old-locale parsec process
-         regex-posix time unix
+         base directory filepath process regex-posix tasty tasty-hunit
+         tasty-quickcheck time unix
        ];
        description = "Rename photo image files based on EXIF shoot date";
        license = lib.licenses.isc;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "phraskell" = callPackage
@@ -207703,6 +210678,19 @@ self: {
        broken = true;
      }) {};
 
+  "pid" = callPackage
+    ({ mkDerivation, base, mtl }:
+     mkDerivation {
+       pname = "pid";
+       version = "0.1.0.1";
+       sha256 = "0qabdl1y7k7ycsg4r4hhq8lvq8vaps5rhv4r45mwfbj90vm1n9wa";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [ base mtl ];
+       description = "a simple pid controller";
+       license = "unknown";
+     }) {};
+
   "pid1" = callPackage
     ({ mkDerivation, base, directory, process, unix }:
      mkDerivation {
@@ -207870,8 +210858,8 @@ self: {
      }:
      mkDerivation {
        pname = "pinch";
-       version = "0.4.0.0";
-       sha256 = "0xn79n8r42wl48fkbbplyhj4ykfky7kzzj96qb8qn0w1f70pi3i2";
+       version = "0.4.1.2";
+       sha256 = "0khgx08mpj16lzqkk3xmxf5a6a68fc6x1vfg1r0lgj5lx2dgl89j";
        libraryHaskellDepends = [
          array base bytestring cereal containers deepseq ghc-prim hashable
          network semigroups text unordered-containers vector
@@ -207884,8 +210872,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "An alternative implementation of Thrift for Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "pinch-gen" = callPackage
@@ -207895,8 +210881,8 @@ self: {
      }:
      mkDerivation {
        pname = "pinch-gen";
-       version = "0.4.2.0";
-       sha256 = "0saacr8q2varfqcq386dk9k04caijm90yi106wyl88pn3f5piaq3";
+       version = "0.4.3.0";
+       sha256 = "0bj1b891zm62iz9dl61zy5aw4750f222s472x2wnxzxjsb53d4fi";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -208019,8 +211005,8 @@ self: {
      }:
      mkDerivation {
        pname = "pinned-warnings";
-       version = "0.1.0.8";
-       sha256 = "0ky5lqvf1bfbjzblqgnj47jhkxw4fb7gz7k268hnf41gfnbsy3i4";
+       version = "0.1.0.9";
+       sha256 = "10iis47wdlhncq1aa6gbcjawpj9bx04kx4qfnf99qxjb095w0vm3";
        libraryHaskellDepends = [
          base bytestring containers directory ghc time transformers
        ];
@@ -208467,17 +211453,13 @@ self: {
      }) {};
 
   "pipes-concurrency" = callPackage
-    ({ mkDerivation, async, base, contravariant, pipes, semigroups, stm
-     , void
-     }:
+    ({ mkDerivation, async, base, contravariant, pipes, stm, void }:
      mkDerivation {
        pname = "pipes-concurrency";
-       version = "2.0.12";
-       sha256 = "17aqh6p1az09n6b6vs06pxcha5aq6dvqjwskgjcdiz7221vwchs3";
-       revision = "2";
-       editedCabalFile = "1c06nypirrd76jg5y508517smxh3izy98y6kj89k79kbpi5rncbj";
+       version = "2.0.14";
+       sha256 = "1waf70qqakz9car35c1nxb0bdjniq46lfk1vmxdjrp76ri2gzd7f";
        libraryHaskellDepends = [
-         async base contravariant pipes semigroups stm void
+         async base contravariant pipes stm void
        ];
        testHaskellDepends = [ async base pipes stm ];
        description = "Concurrency for the pipes ecosystem";
@@ -208597,8 +211579,8 @@ self: {
        pname = "pipes-extras";
        version = "1.0.15";
        sha256 = "1cyb05bv5xkarab3090ikpjiqm79lr46n3nalplliz8jr4x67a82";
-       revision = "3";
-       editedCabalFile = "177l1fs1wgm34ifbx83xxf29m0ghq6z9skpkwm86qfln2hpikkj9";
+       revision = "4";
+       editedCabalFile = "0dis0i8l76cd94qgabvjbmn7iqwnqqdf8kgj4d5nby0xc02mqbw9";
        libraryHaskellDepends = [ base foldl lens pipes transformers ];
        testHaskellDepends = [
          base HUnit pipes test-framework test-framework-hunit transformers
@@ -208681,8 +211663,8 @@ self: {
        pname = "pipes-group";
        version = "1.0.12";
        sha256 = "1issfj3syi6lfbcdn3bhlbnlh86s92ldsb04c4ac69xipsgyhwqk";
-       revision = "4";
-       editedCabalFile = "16y13pmwwfj0cgwdjf9nglxgfxv3fkznjp1bf344jfvjm14vwg43";
+       revision = "5";
+       editedCabalFile = "0hkh6s4n1sv83a8fzhryz9l229g9d59sxkh60fcn04jp2431335h";
        libraryHaskellDepends = [
          base free pipes pipes-parse transformers
        ];
@@ -211170,7 +214152,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "polysemy_1_6_0_0" = callPackage
+  "polysemy_1_7_1_0" = callPackage
     ({ mkDerivation, async, base, Cabal, cabal-doctest, containers
      , criterion, doctest, first-class-families, free, freer-simple
      , hspec, hspec-discover, inspection-testing, mtl, QuickCheck, stm
@@ -211179,8 +214161,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy";
-       version = "1.6.0.0";
-       sha256 = "1s2hmfp1ii5q8qpxiqm825ykh4fpcq06wphfqbhp7p3sxkkr3c68";
+       version = "1.7.1.0";
+       sha256 = "09629gyjdp567dsqk0mgzzk5glrwnpn0cwanank5z3zkqg05d5ac";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          async base containers first-class-families mtl QuickCheck stm syb
@@ -211231,8 +214213,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-check";
-       version = "0.8.1.0";
-       sha256 = "18nf74y8zcm3hi5gmg8zm6x13rwr17wvbw4bcm779l3v3y3ddwqw";
+       version = "0.9.0.0";
+       sha256 = "092p92aavd3jqq7kjp3n2kx3zyg6k49zd99rliaw4gvgn6zk8k0l";
        libraryHaskellDepends = [
          base containers kind-generics kind-generics-th polysemy QuickCheck
        ];
@@ -211244,23 +214226,20 @@ self: {
        description = "QuickCheck for Polysemy";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "polysemy-chronos" = callPackage
-    ({ mkDerivation, aeson, base, chronos, containers, hedgehog
-     , polysemy, polysemy-test, polysemy-time, relude, tasty
-     , tasty-hedgehog, text
+    ({ mkDerivation, base, chronos, polysemy, polysemy-test
+     , polysemy-time, tasty
      }:
      mkDerivation {
        pname = "polysemy-chronos";
-       version = "0.1.4.0";
-       sha256 = "1rkk87rnvs58hlcm46l8hqd8zf27madk8yr5p8zs0iliy0j1zsi0";
-       libraryHaskellDepends = [
-         aeson base chronos containers polysemy polysemy-time relude text
-       ];
+       version = "0.2.0.1";
+       sha256 = "1i33hr807kk4cvhk0gzm1b96zjp3zbbhg3dc7585i2hj9jmf6858";
+       libraryHaskellDepends = [ base chronos polysemy polysemy-time ];
        testHaskellDepends = [
-         aeson base chronos containers hedgehog polysemy polysemy-test
-         polysemy-time relude tasty tasty-hedgehog text
+         base chronos polysemy-test polysemy-time tasty
        ];
        description = "Polysemy-time Interpreters for Chronos";
        license = "BSD-2-Clause-Patent";
@@ -211287,6 +214266,29 @@ self: {
        license = "BSD-2-Clause-Patent";
      }) {};
 
+  "polysemy-conc_0_5_1_1" = callPackage
+    ({ mkDerivation, async, base, containers, data-default, polysemy
+     , polysemy-plugin, polysemy-test, polysemy-time, relude, stm
+     , stm-chans, tasty, template-haskell, text, time, torsor
+     , unagi-chan, unix
+     }:
+     mkDerivation {
+       pname = "polysemy-conc";
+       version = "0.5.1.1";
+       sha256 = "0ix59hjrlhk04pwif6kszk7xpkkapxx7hr1vpm7nrggjgfk1015i";
+       libraryHaskellDepends = [
+         async base containers data-default polysemy polysemy-time relude
+         stm stm-chans template-haskell text time torsor unagi-chan unix
+       ];
+       testHaskellDepends = [
+         async base polysemy polysemy-plugin polysemy-test polysemy-time stm
+         tasty time unagi-chan unix
+       ];
+       description = "Polysemy Effects for Concurrency";
+       license = "BSD-2-Clause-Patent";
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "polysemy-extra" = callPackage
     ({ mkDerivation, base, containers, polysemy, polysemy-kvstore }:
      mkDerivation {
@@ -211344,8 +214346,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-http";
-       version = "0.4.0.6";
-       sha256 = "1h35qv4gnjkgn37q6gvdn3www83azq7gj6d1zza0g6dmil0vvlr4";
+       version = "0.5.0.0";
+       sha256 = "19v8ddpwn87cnipyxp3p0ppp86gvzjb6krwwlci6899k91qj2vsp";
        libraryHaskellDepends = [
          aeson ansi-terminal base bytestring case-insensitive composition
          containers data-default either http-client http-client-tls
@@ -211359,9 +214361,10 @@ self: {
          relude servant servant-client servant-server string-interpolate
          tasty tasty-hedgehog template-haskell text time warp
        ];
-       description = "Polysemy Effect for Http-Client";
+       description = "Polysemy Effects for HTTP clients";
        license = "BSD-2-Clause-Patent";
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "polysemy-keyed-state" = callPackage
@@ -211414,23 +214417,20 @@ self: {
      }) {};
 
   "polysemy-log" = callPackage
-    ({ mkDerivation, ansi-terminal, base, hedgehog, polysemy
-     , polysemy-conc, polysemy-test, polysemy-time, relude
-     , string-interpolate, tasty, tasty-hedgehog, template-haskell, text
-     , time
+    ({ mkDerivation, ansi-terminal, base, polysemy, polysemy-conc
+     , polysemy-test, polysemy-time, relude, tasty, template-haskell
+     , text, time
      }:
      mkDerivation {
        pname = "polysemy-log";
-       version = "0.2.2.4";
-       sha256 = "17jzmiqqwq44zvg1m6w0m3ishkwfcz66gagijwkqbrk1rcn3bmc0";
+       version = "0.4.0.0";
+       sha256 = "0jizgwd1vjhdn2m4d2xdhzawmdblvhk12v6blcnyxm94nab215li";
        libraryHaskellDepends = [
          ansi-terminal base polysemy polysemy-conc polysemy-time relude
-         string-interpolate template-haskell text time
+         template-haskell text time
        ];
        testHaskellDepends = [
-         ansi-terminal base hedgehog polysemy polysemy-conc polysemy-test
-         polysemy-time relude string-interpolate tasty tasty-hedgehog
-         template-haskell text time
+         base polysemy polysemy-conc polysemy-test polysemy-time tasty time
        ];
        description = "Polysemy Effects for Logging";
        license = "BSD-2-Clause-Patent";
@@ -211438,21 +214438,20 @@ self: {
 
   "polysemy-log-co" = callPackage
     ({ mkDerivation, base, co-log, co-log-core, co-log-polysemy
-     , hedgehog, polysemy, polysemy-conc, polysemy-log, polysemy-test
-     , polysemy-time, relude, tasty, tasty-hedgehog, text, time
+     , polysemy, polysemy-conc, polysemy-log, polysemy-test
+     , polysemy-time, tasty
      }:
      mkDerivation {
        pname = "polysemy-log-co";
-       version = "0.2.2.4";
-       sha256 = "0ph24p6b7m4icq65kc6ws8ih9p1arpq9zx3abwzsq2f4dcgmibhx";
+       version = "0.4.0.0";
+       sha256 = "0c778m2ibs09aw9lv2a7xs3ywj0c8agnpx3vg114dh1ndbvcyhl5";
        libraryHaskellDepends = [
          base co-log co-log-core co-log-polysemy polysemy polysemy-conc
-         polysemy-log polysemy-time relude text time
+         polysemy-log polysemy-time
        ];
        testHaskellDepends = [
-         base co-log co-log-core co-log-polysemy hedgehog polysemy
-         polysemy-conc polysemy-log polysemy-test polysemy-time relude tasty
-         tasty-hedgehog text time
+         base co-log co-log-polysemy polysemy polysemy-log polysemy-test
+         polysemy-time tasty
        ];
        description = "Colog Adapters for Polysemy-Log";
        license = "BSD-2-Clause-Patent";
@@ -211460,21 +214459,18 @@ self: {
      }) {};
 
   "polysemy-log-di" = callPackage
-    ({ mkDerivation, base, di-polysemy, hedgehog, polysemy
-     , polysemy-conc, polysemy-log, polysemy-test, polysemy-time, relude
-     , tasty, tasty-hedgehog, text, time
+    ({ mkDerivation, base, di-polysemy, polysemy, polysemy-conc
+     , polysemy-log, polysemy-test, polysemy-time, tasty
      }:
      mkDerivation {
        pname = "polysemy-log-di";
-       version = "0.2.2.4";
-       sha256 = "1m2zssg54lx0drc8vw0jjhdl74pks6752am8467xv3qawndm71kg";
+       version = "0.4.0.0";
+       sha256 = "0dnprxjafy2jy7mlj4h6jh456mys4af467kagdvbv8kllc66rrsc";
        libraryHaskellDepends = [
          base di-polysemy polysemy polysemy-conc polysemy-log polysemy-time
-         relude text time
        ];
        testHaskellDepends = [
-         base di-polysemy hedgehog polysemy polysemy-conc polysemy-log
-         polysemy-test polysemy-time relude tasty tasty-hedgehog text time
+         base polysemy polysemy-log polysemy-test tasty
        ];
        description = "Di Adapters for Polysemy-Log";
        license = "BSD-2-Clause-Patent";
@@ -211547,6 +214543,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "polysemy-mocks_0_2_0_0" = callPackage
+    ({ mkDerivation, base, hspec, hspec-discover, polysemy
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "polysemy-mocks";
+       version = "0.2.0.0";
+       sha256 = "1l17n7hxzb23y0vp9h8cxvfgdkwzbz8g0q37qppl4cqjkhcdq0ya";
+       libraryHaskellDepends = [ base polysemy template-haskell ];
+       testHaskellDepends = [ base hspec polysemy ];
+       testToolDepends = [ hspec-discover ];
+       description = "Mocking framework for polysemy effects";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "polysemy-optics" = callPackage
     ({ mkDerivation, base, optics, polysemy, polysemy-zoo }:
      mkDerivation {
@@ -211582,6 +214594,8 @@ self: {
        pname = "polysemy-plugin";
        version = "0.3.0.0";
        sha256 = "0pcy476nndcvszkl57d5sd2m64zvjzvvxz4ldg2bdg6mdi4apl23";
+       revision = "1";
+       editedCabalFile = "16db3syamiknwg3yqh50ak37cfnzkrrwg8qg7157nykx0mkiv8b5";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base containers ghc ghc-tcplugins-extra polysemy syb transformers
@@ -211593,11 +214607,9 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Disambiguate obvious uses of effects";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
-  "polysemy-plugin_0_4_1_0" = callPackage
+  "polysemy-plugin_0_4_3_0" = callPackage
     ({ mkDerivation, base, Cabal, cabal-doctest, containers, doctest
      , ghc, ghc-tcplugins-extra, hspec, hspec-discover
      , inspection-testing, polysemy, should-not-typecheck, syb
@@ -211605,8 +214617,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-plugin";
-       version = "0.4.1.0";
-       sha256 = "1ry32mldi5mzlayb5anjzw4adqydilxfj1as01an2x9y0hp4yy00";
+       version = "0.4.3.0";
+       sha256 = "1y4najvwas9rmd7xzn4k1nkpdld86606z3qzky7zr1d3l1z1vafb";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base containers ghc ghc-tcplugins-extra polysemy syb transformers
@@ -211619,6 +214631,30 @@ self: {
        description = "Disambiguate obvious uses of effects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "polysemy-process" = callPackage
+    ({ mkDerivation, async, base, bytestring, containers, polysemy
+     , polysemy-conc, polysemy-plugin, polysemy-resume, polysemy-test
+     , polysemy-time, relude, stm, stm-chans, tasty, template-haskell
+     , text, time, typed-process
+     }:
+     mkDerivation {
+       pname = "polysemy-process";
+       version = "0.5.1.1";
+       sha256 = "1231d7nwmn4krs9rj5yivfnfqdhpc3dlj17a1lhih3dzxwzlizyi";
+       libraryHaskellDepends = [
+         async base bytestring containers polysemy polysemy-conc
+         polysemy-resume polysemy-time relude stm stm-chans template-haskell
+         text time typed-process
+       ];
+       testHaskellDepends = [
+         base bytestring polysemy polysemy-conc polysemy-plugin
+         polysemy-resume polysemy-test tasty typed-process
+       ];
+       description = "Polysemy Effects for System Processes";
+       license = "BSD-2-Clause-Patent";
+       hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
 
@@ -211643,7 +214679,6 @@ self: {
        ];
        description = "Readline effect for polysemy";
        license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polysemy-req" = callPackage
@@ -211663,6 +214698,25 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-resume";
+       version = "0.1.0.1";
+       sha256 = "1pgirh7sz1lx45pkss1a4w7xgy7gcxmm7i2vz9hf0z7qdj9wfn8i";
+       libraryHaskellDepends = [
+         base polysemy polysemy-plugin relude transformers
+       ];
+       testHaskellDepends = [
+         base hedgehog polysemy polysemy-plugin polysemy-test relude tasty
+         tasty-hedgehog text transformers
+       ];
+       description = "Polysemy error tracking";
+       license = "BSD-2-Clause-Patent";
+     }) {};
+
+  "polysemy-resume_0_2_0_0" = callPackage
+    ({ mkDerivation, base, hedgehog, polysemy, polysemy-plugin
+     , polysemy-test, relude, tasty, tasty-hedgehog, text, transformers
+     }:
+     mkDerivation {
+       pname = "polysemy-resume";
        version = "0.2.0.0";
        sha256 = "08m9h9yfi0wasyaxjs27km41q648p8qna8imc4dhcp75q6bwc65g";
        libraryHaskellDepends = [ base polysemy relude transformers ];
@@ -211726,24 +214780,18 @@ self: {
      }) {};
 
   "polysemy-time" = callPackage
-    ({ mkDerivation, aeson, base, composition, containers, data-default
-     , either, hedgehog, polysemy, polysemy-test, relude
-     , string-interpolate, tasty, tasty-hedgehog, template-haskell, text
-     , time, torsor
+    ({ mkDerivation, aeson, base, polysemy, polysemy-test, relude
+     , string-interpolate, tasty, template-haskell, text, time, torsor
      }:
      mkDerivation {
        pname = "polysemy-time";
-       version = "0.1.4.0";
-       sha256 = "1j6qm8nribp876z4h8jgms0790qmm37f32k5aw883c8716nfavjq";
+       version = "0.2.0.1";
+       sha256 = "1scq1lvjmhh5qilbq1dl5pkywnyhdrzwgd9i27hyfwijzldac31m";
        libraryHaskellDepends = [
-         aeson base composition containers data-default either polysemy
-         relude string-interpolate template-haskell text time torsor
-       ];
-       testHaskellDepends = [
-         aeson base composition containers data-default either hedgehog
-         polysemy polysemy-test relude string-interpolate tasty
-         tasty-hedgehog template-haskell text time torsor
+         aeson base polysemy relude string-interpolate template-haskell text
+         time torsor
        ];
+       testHaskellDepends = [ base polysemy polysemy-test tasty time ];
        description = "Polysemy Effect for Time";
        license = "BSD-2-Clause-Patent";
      }) {};
@@ -211817,7 +214865,6 @@ self: {
        ];
        description = "Start web servers from within a Polysemy effect stack";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "polysemy-zoo" = callPackage
@@ -213166,8 +216213,8 @@ self: {
        pname = "postgresql-libpq";
        version = "0.9.4.3";
        sha256 = "1gfnhc5pibn7zmifdf2g0c112xrpzsk756ln2kjzqljkspf4dqp3";
-       revision = "1";
-       editedCabalFile = "1clivf13z15w954a0kcfkv8yc0d8kx61b68x2hk7a9236ck7l2m2";
+       revision = "2";
+       editedCabalFile = "1n4zlj5vjn4bhvy345730gcwl8272k2kihkq7gmyazsgkcqfwjyn";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [ base bytestring unix ];
        librarySystemDepends = [ postgresql ];
@@ -213219,6 +216266,8 @@ self: {
        pname = "postgresql-migration";
        version = "0.2.1.3";
        sha256 = "1qxkan5f328rv3nl31pvhz305k7b4ah98s0j1bc4hcaa5g5d3052";
+       revision = "2";
+       editedCabalFile = "00j04r4i837qxpnn087b6602iwzl3g04rwwrn9a0sqwh0yfn4y3k";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -213443,8 +216492,8 @@ self: {
        pname = "postgresql-simple";
        version = "0.6.4";
        sha256 = "0rz2bklxp4pvbxb2w49h5p6pbwabn6d5d4j4mrya4fpa0d13k43d";
-       revision = "3";
-       editedCabalFile = "1gx4vjk99lr10bcvdismr84i6rpl5ny0j08f7f7rq9j8hivj0frp";
+       revision = "5";
+       editedCabalFile = "0vnawd7f2lwqgh1hi6s5y5wny85a12i27haz93bmjvpmdljjmsjk";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring bytestring-builder
          case-insensitive containers hashable Only postgresql-libpq
@@ -214198,8 +217247,8 @@ self: {
      }:
      mkDerivation {
        pname = "powerdns";
-       version = "0.1.1";
-       sha256 = "1pyh9whqzx7fkvr3090paiz1x29fkfkrgs1v3k4d0x3vfdxv6n1f";
+       version = "0.2.0";
+       sha256 = "0ddrgvpvss342zmnyd0svj7424k8gynd7bwb2i0r10zw1l4kai26";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring case-insensitive containers
          deepseq servant servant-client servant-client-core text time
@@ -214380,8 +217429,8 @@ self: {
     ({ mkDerivation, base, deepseq, QuickCheck }:
      mkDerivation {
        pname = "pqueue";
-       version = "1.4.1.3";
-       sha256 = "1sz7hlnfd86hbwrgqxczmsjsl1ki0ryi9dgzscxlsgjkdgcdia2p";
+       version = "1.4.1.4";
+       sha256 = "06hjgy7q6dmz6g0m2w466cn5yfdhsv4qqyhmd4wwggvpcn89yr5d";
        libraryHaskellDepends = [ base deepseq ];
        testHaskellDepends = [ base deepseq QuickCheck ];
        description = "Reliable, persistent, fast priority queues";
@@ -214477,6 +217526,8 @@ self: {
        testHaskellDepends = [ aeson base ];
        description = "A first class record field library";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "preamble" = callPackage
@@ -215226,6 +218277,8 @@ self: {
        pname = "pretty-ncols";
        version = "0.1";
        sha256 = "0bvd8wgjrj9g86b1z8m9mjzswibrmhasgajnkgr2dlizl5lg7faq";
+       revision = "1";
+       editedCabalFile = "10pda3rz9wi5alcqvxzqsqwd7gqa73lvagda5m3jkgkbz400566m";
        libraryHaskellDepends = [ base pretty ];
        description = "A implementation of multi-column layout w/ Text.PrettyPrint";
        license = lib.licenses.bsd3;
@@ -215250,6 +218303,25 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "pretty-relative-time_0_3_0_0" = callPackage
+    ({ mkDerivation, base, genvalidity, genvalidity-hspec
+     , genvalidity-time, hspec, QuickCheck, time, validity
+     , validity-time
+     }:
+     mkDerivation {
+       pname = "pretty-relative-time";
+       version = "0.3.0.0";
+       sha256 = "1sqdz7bh99ya0d8wb721bbs25cqjfhg81q8xxvrmlamrrgc1z7bh";
+       libraryHaskellDepends = [ base time validity validity-time ];
+       testHaskellDepends = [
+         base genvalidity genvalidity-hspec genvalidity-time hspec
+         QuickCheck time validity validity-time
+       ];
+       description = "Pretty relative time";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "pretty-show" = callPackage
     ({ mkDerivation, array, base, filepath, ghc-prim, happy
      , haskell-lexer, pretty, text
@@ -215829,7 +218901,7 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "primitive-extras_0_10_1_1" = callPackage
+  "primitive-extras_0_10_1_2" = callPackage
     ({ mkDerivation, base, bytestring, cereal, deferred-folds, focus
      , foldl, list-t, primitive, primitive-unlifted, profunctors
      , QuickCheck, quickcheck-instances, rerebase, tasty, tasty-hunit
@@ -215837,8 +218909,8 @@ self: {
      }:
      mkDerivation {
        pname = "primitive-extras";
-       version = "0.10.1.1";
-       sha256 = "117bgh5bafzvamkpl4g97c8vprs4lndl5pjc3nl6wqj7jbrgpw25";
+       version = "0.10.1.2";
+       sha256 = "0517ln7ihsqb15m0h0nw9qjh73kdwcc2nkg9n39hnmhiw4im9d1i";
        libraryHaskellDepends = [
          base bytestring cereal deferred-folds focus foldl list-t primitive
          primitive-unlifted profunctors vector
@@ -215974,8 +219046,8 @@ self: {
     ({ mkDerivation, base, bytestring, primitive, stm, text-short }:
      mkDerivation {
        pname = "primitive-unlifted";
-       version = "0.1.3.0";
-       sha256 = "1q7scarsdv51x74g6ahvc5znk9h628s984a7bawig0lnx67wzwih";
+       version = "0.1.3.1";
+       sha256 = "1gilzgclpvz200sybw86nmdm7084nrklscq48cs36qqlgcd0wcwb";
        libraryHaskellDepends = [ base bytestring primitive text-short ];
        testHaskellDepends = [ base primitive stm ];
        description = "Primitive GHC types with unlifted types inside";
@@ -216333,6 +219405,8 @@ self: {
        pname = "process";
        version = "1.6.13.2";
        sha256 = "01p3lqj23czqpmih4mdz1lknsy1c4z6ly3iyrnx4pxxmw9vnp2lw";
+       revision = "1";
+       editedCabalFile = "1s5z0q9nx0g6qa9b8lpsp4pigli0msilrxqpb3c2jvkrk1b0llx6";
        libraryHaskellDepends = [ base deepseq directory filepath unix ];
        testHaskellDepends = [ base bytestring directory ];
        description = "Process libraries";
@@ -216691,8 +219765,8 @@ self: {
      }:
      mkDerivation {
        pname = "product-profunctors";
-       version = "0.11.0.2";
-       sha256 = "13q1zq5gli21khsxrgiwqilqfasb16hks5w0ikkm1i735z0pf97l";
+       version = "0.11.0.3";
+       sha256 = "11q9vxj7pnby51gwgm0d17gd6ps2bxwrvajpqaqcg6bsdgdzvjws";
        libraryHaskellDepends = [
          base bifunctors contravariant profunctors tagged template-haskell
          th-abstraction
@@ -216875,8 +219949,8 @@ self: {
        pname = "profunctors";
        version = "5.6.2";
        sha256 = "0an9v003ivxmjid0s51qznbjhd5fsa1dkcfsrhxllnjja1xmv5b5";
-       revision = "1";
-       editedCabalFile = "1babivznc9027xdafv28jb34a74bsymafp1xahbdd1n1gz7q27nr";
+       revision = "2";
+       editedCabalFile = "1dhg8bys9qnfbvhy4cm4fivanmnik4rg0spshkwyp9s3j88qadix";
        libraryHaskellDepends = [
          base base-orphans bifunctors comonad contravariant distributive
          tagged transformers
@@ -216885,6 +219959,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "program" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "program";
+       version = "0.1.0.0";
+       sha256 = "00zzd0fnkjvrazmc9icn0zvzdb6imbw4ajb4fip3w4zv63qzv266";
+       revision = "1";
+       editedCabalFile = "0dz2wbgzraizgr34xjarmhf1ncx1b785gv4ddnni0l14h51sks9h";
+       libraryHaskellDepends = [ base ];
+       description = "Programs with Environments and Managed Resources";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "progress" = callPackage
     ({ mkDerivation, base, time }:
      mkDerivation {
@@ -216993,70 +220080,75 @@ self: {
      }) {inherit (pkgs) proj;};
 
   "project-m36" = callPackage
-    ({ mkDerivation, aeson, async, attoparsec, base, base64-bytestring
-     , binary, blaze-html, bytestring, Cabal, cassava, conduit
-     , containers, criterion, cryptohash-sha256, curryer-rpc
-     , data-interval, deepseq, deepseq-generics, deferred-folds
-     , directory, either, exceptions, extended-reals, filepath, foldl
-     , ghc, ghc-boot, ghc-paths, ghci, Glob, gnuplot, hashable
-     , hashable-time, haskeline, http-api-data, http-types, HUnit
-     , list-t, megaparsec, monad-parallel, MonadRandom, mtl, network
-     , old-locale, optparse-applicative, parallel, parser-combinators
-     , path-pieces, prettyprinter, QuickCheck, quickcheck-instances
-     , random, random-shuffle, resourcet, rset, scotty, semigroups, stm
-     , stm-containers, template-haskell, temporary, text
-     , text-manipulate, time, transformers, unix, unordered-containers
-     , uuid, vector, vector-binary-instances, vector-instances
-     , websockets, winery, zlib
+    ({ mkDerivation, aeson, async, attoparsec, barbies, base
+     , base16-bytestring, base64-bytestring, binary, blaze-html
+     , bytestring, Cabal, cassava, conduit, containers, convertible
+     , criterion, cryptohash-sha256, curryer-rpc, data-interval, deepseq
+     , deepseq-generics, deferred-folds, directory, either, exceptions
+     , extended-reals, filepath, foldl, ghc, ghc-boot, ghc-paths, ghci
+     , Glob, gnuplot, hashable, hashable-time, haskeline, http-api-data
+     , http-conduit, http-types, HUnit, list-t, megaparsec, modern-uri
+     , monad-parallel, MonadRandom, mtl, network, old-locale
+     , optparse-applicative, parallel, parser-combinators, path-pieces
+     , prettyprinter, QuickCheck, quickcheck-instances, random
+     , random-shuffle, recursion-schemes, resourcet, rset, scotty
+     , semigroups, stm, stm-containers, streamly, template-haskell
+     , temporary, text, text-manipulate, time, transformers, unix
+     , unordered-containers, uuid, vector, vector-instances, wai
+     , wai-websockets, warp, warp-tls, websockets, winery, zlib
      }:
      mkDerivation {
        pname = "project-m36";
-       version = "0.9.0";
-       sha256 = "0ijh0ywz32ywryqrpdadry50lf2cfdglahkiqwwi1f6vvd55rb6p";
+       version = "0.9.4";
+       sha256 = "0byxxgakhkmqgzc0p394fi3k3qffn65zkk51zgvlzin0m074baxp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson async attoparsec base base64-bytestring bytestring cassava
-         conduit containers cryptohash-sha256 curryer-rpc data-interval
-         deepseq deepseq-generics deferred-folds directory either exceptions
-         extended-reals filepath foldl ghc ghc-boot ghc-paths ghci Glob
-         gnuplot hashable hashable-time haskeline http-api-data list-t
-         monad-parallel MonadRandom mtl network old-locale
-         optparse-applicative parallel path-pieces QuickCheck
-         quickcheck-instances random-shuffle resourcet rset semigroups stm
-         stm-containers temporary text text-manipulate time transformers
-         unix unordered-containers uuid vector vector-instances winery zlib
-       ];
-       executableHaskellDepends = [
-         aeson attoparsec base base64-bytestring blaze-html bytestring Cabal
-         cassava conduit containers curryer-rpc data-interval deepseq
+         conduit containers convertible cryptohash-sha256 curryer-rpc
+         data-interval deepseq deepseq-generics deferred-folds directory
+         either exceptions extended-reals filepath foldl ghc ghc-boot
+         ghc-paths ghci Glob gnuplot hashable hashable-time haskeline
+         http-api-data list-t monad-parallel MonadRandom mtl network
+         old-locale optparse-applicative parallel path-pieces QuickCheck
+         quickcheck-instances random-shuffle recursion-schemes resourcet
+         rset semigroups stm stm-containers streamly temporary text
+         text-manipulate time transformers unix unordered-containers uuid
+         vector vector-instances winery zlib
+       ];
+       executableHaskellDepends = [
+         aeson attoparsec barbies base base16-bytestring base64-bytestring
+         binary blaze-html bytestring Cabal cassava conduit containers
+         cryptohash-sha256 curryer-rpc data-interval deepseq
          deepseq-generics directory either filepath ghc ghc-paths gnuplot
-         hashable hashable-time haskeline http-api-data http-types HUnit
-         list-t megaparsec MonadRandom mtl network optparse-applicative
-         parallel parser-combinators path-pieces prettyprinter random scotty
-         semigroups stm stm-containers template-haskell temporary text time
-         transformers unordered-containers uuid vector
-         vector-binary-instances websockets winery
-       ];
-       testHaskellDepends = [
-         aeson attoparsec base base64-bytestring binary bytestring Cabal
-         cassava containers curryer-rpc data-interval deepseq
-         deepseq-generics directory filepath gnuplot hashable hashable-time
-         haskeline HUnit list-t megaparsec MonadRandom mtl network
+         hashable hashable-time haskeline http-api-data http-conduit
+         http-types HUnit list-t megaparsec modern-uri MonadRandom mtl
+         network optparse-applicative parallel parser-combinators
+         path-pieces prettyprinter random scotty semigroups stm
+         stm-containers template-haskell temporary text time transformers
+         unordered-containers uuid vector wai wai-websockets warp warp-tls
+         websockets winery
+       ];
+       testHaskellDepends = [
+         aeson attoparsec base base16-bytestring base64-bytestring
+         bytestring Cabal cassava containers cryptohash-sha256 curryer-rpc
+         data-interval deepseq deepseq-generics directory filepath gnuplot
+         hashable hashable-time haskeline http-conduit http-types HUnit
+         list-t megaparsec modern-uri MonadRandom mtl network
          optparse-applicative parallel parser-combinators prettyprinter
          random semigroups stm stm-containers temporary text time
-         transformers unordered-containers uuid vector
-         vector-binary-instances websockets winery
+         transformers unordered-containers uuid vector websockets winery
        ];
        benchmarkHaskellDepends = [
-         aeson attoparsec base base64-bytestring bytestring Cabal cassava
-         containers criterion curryer-rpc data-interval deepseq
-         deepseq-generics directory filepath gnuplot hashable hashable-time
-         haskeline HUnit list-t megaparsec MonadRandom mtl network
-         optparse-applicative parallel parser-combinators prettyprinter
-         random semigroups stm stm-containers temporary text time
-         transformers unordered-containers uuid vector
-         vector-binary-instances websockets winery
+         aeson attoparsec base base16-bytestring base64-bytestring
+         bytestring Cabal cassava containers criterion cryptohash-sha256
+         curryer-rpc data-interval deepseq deepseq-generics directory
+         filepath gnuplot hashable hashable-time haskeline http-conduit
+         http-types HUnit list-t megaparsec modern-uri MonadRandom mtl
+         network optparse-applicative parallel parser-combinators
+         prettyprinter random semigroups stm stm-containers temporary text
+         time transformers unordered-containers uuid vector websockets
+         winery
        ];
        description = "Relational Algebra Engine";
        license = lib.licenses.mit;
@@ -217363,8 +220455,8 @@ self: {
      }:
      mkDerivation {
        pname = "prometheus-proc";
-       version = "0.1.3.0";
-       sha256 = "0pljmmas8wsigwd3m2ddjzn9mbsgsh0hbf1kz7301w8g5hnjfx03";
+       version = "0.1.3.1";
+       sha256 = "1g4pfnyamcn3p2qgnviz1f1lq808jpbi2fkibrxk0xb60flism3l";
        libraryHaskellDepends = [
          base directory filepath prometheus-client regex-applicative text
          unix unix-memory
@@ -218011,6 +221103,33 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "protobuf_0_2_1_4" = callPackage
+    ({ mkDerivation, base, base-orphans, binary, bytestring, containers
+     , criterion, data-binary-ieee754, deepseq, hex, HUnit, mtl
+     , QuickCheck, semigroups, tagged, tasty, tasty-hunit
+     , tasty-quickcheck, text, unordered-containers
+     }:
+     mkDerivation {
+       pname = "protobuf";
+       version = "0.2.1.4";
+       sha256 = "0qcnhj0ryaz4naqkqc7gankgwb6r7psl3njk7f6vi3l2y88ssa4v";
+       libraryHaskellDepends = [
+         base base-orphans binary bytestring data-binary-ieee754 deepseq mtl
+         semigroups text unordered-containers
+       ];
+       testHaskellDepends = [
+         base binary bytestring containers hex HUnit mtl QuickCheck tagged
+         tasty tasty-hunit tasty-quickcheck text unordered-containers
+       ];
+       benchmarkHaskellDepends = [
+         base binary bytestring containers criterion deepseq hex mtl tagged
+         text unordered-containers
+       ];
+       description = "Google Protocol Buffers via GHC.Generics";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "protobuf-native" = callPackage
     ({ mkDerivation, base, bytestring, cereal, cplusplus-th, criterion
      , hprotoc-fork, protobuf, protocol-buffers-fork, QuickCheck
@@ -218353,27 +221472,29 @@ self: {
     ({ mkDerivation, aeson, base, bytestring, Cabal
      , cabal-install-parsers, containers, directory, file-embed
      , file-path-th, filepath, hspec, megaparsec, monad-logger, mtl
-     , optparse-applicative, process, text, yaml
+     , optparse-applicative, process, regex-compat, text, text-ansi
+     , yaml
      }:
      mkDerivation {
        pname = "prune-juice";
-       version = "0.6";
-       sha256 = "0g7gn0158hkr5b27iqlzmhnarb05y5id92qk2jl6azqnzrb2p5j7";
+       version = "0.7";
+       sha256 = "1f5247qvd0gladsncxpzhs3ha75i3jms43ha62hr4phwk59zd78a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson base bytestring Cabal cabal-install-parsers containers
-         directory filepath megaparsec monad-logger mtl process text yaml
+         directory filepath megaparsec monad-logger mtl process regex-compat
+         text text-ansi yaml
        ];
        executableHaskellDepends = [
          aeson base bytestring Cabal cabal-install-parsers containers
          directory filepath megaparsec monad-logger mtl optparse-applicative
-         process text yaml
+         process regex-compat text text-ansi yaml
        ];
        testHaskellDepends = [
          aeson base bytestring Cabal cabal-install-parsers containers
          directory file-embed file-path-th filepath hspec megaparsec
-         monad-logger mtl process text yaml
+         monad-logger mtl process regex-compat text text-ansi yaml
        ];
        description = "Prune unused Haskell dependencies";
        license = lib.licenses.mit;
@@ -218422,8 +221543,8 @@ self: {
        pname = "pseudo-boolean";
        version = "0.1.10.0";
        sha256 = "1p9w1d80d2kp7wp7wp6xf9dz1iv9knhy8b75mklz7zq3cf5gvnrh";
-       revision = "1";
-       editedCabalFile = "05jvm2bhvzsxwiazsvgk6xwzjg1isabqnx8grx1v9hrxr6hjhlap";
+       revision = "2";
+       editedCabalFile = "0i5f3p9rhb3pvrrcw5x83h5vhkg5pmakfs1prg7fik447k1bda66";
        libraryHaskellDepends = [
          attoparsec base bytestring bytestring-builder containers deepseq
          dlist hashable megaparsec parsec void
@@ -218577,8 +221698,8 @@ self: {
      }:
      mkDerivation {
        pname = "ptr-poker";
-       version = "0.1.1.4";
-       sha256 = "1g9b3dixrgi1k8vg85mgdpnph1dz02xggwp61naak6j392kg6rkf";
+       version = "0.1.2.3";
+       sha256 = "0930yrqvp9m28ypc3l4fgxbclp3a9b8r8drylws2s7jflss778bn";
        libraryHaskellDepends = [ base bytestring scientific text ];
        testHaskellDepends = [ hedgehog numeric-limits rerebase ];
        benchmarkHaskellDepends = [ gauge rerebase ];
@@ -219556,29 +222677,8 @@ self: {
      }:
      mkDerivation {
        pname = "pusher-http-haskell";
-       version = "2.1.0.5";
-       sha256 = "1nwnwli1pr2f2q77awy4b2ilph0y2hpi4wvv4wj4ha80lpniba55";
-       libraryHaskellDepends = [
-         aeson base base16-bytestring bytestring cryptonite hashable
-         http-client http-client-tls http-types memory text time
-         unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base bytestring hspec QuickCheck text unordered-containers
-       ];
-       description = "Haskell client library for the Pusher Channels HTTP API";
-       license = lib.licenses.mit;
-     }) {};
-
-  "pusher-http-haskell_2_1_0_6" = callPackage
-    ({ mkDerivation, aeson, base, base16-bytestring, bytestring
-     , cryptonite, hashable, hspec, http-client, http-client-tls
-     , http-types, memory, QuickCheck, text, time, unordered-containers
-     }:
-     mkDerivation {
-       pname = "pusher-http-haskell";
-       version = "2.1.0.6";
-       sha256 = "029pxzidmflsa19417bcx82hbxj3yq1khzb6skf97xbzzf3hs6ki";
+       version = "2.1.0.7";
+       sha256 = "0dk3m4gxcifarmn8l92bqlpn1n6fdmryjazspj0nm1a6r0zc1q9p";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring cryptonite hashable
          http-client http-client-tls http-types memory text time
@@ -219589,7 +222689,6 @@ self: {
        ];
        description = "Haskell client library for the Pusher Channels HTTP API";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "pusher-ws" = callPackage
@@ -220755,8 +223854,8 @@ self: {
      }:
      mkDerivation {
        pname = "quic";
-       version = "0.0.0";
-       sha256 = "0hiyw9qpx7h42ay9jna8xr7vr16jlr62v0nfnq4y29gki38221a4";
+       version = "0.0.1";
+       sha256 = "0vwcfzkz56ldp8fx322vgxrh8g4f236zrv05rg9839x95l6jscsv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -220992,7 +224091,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "quickcheck-instances_0_3_26_1" = callPackage
+  "quickcheck-instances_0_3_27" = callPackage
     ({ mkDerivation, array, base, bytestring, case-insensitive
      , containers, data-fix, hashable, integer-logarithms, old-time
      , OneTuple, QuickCheck, scientific, splitmix, strict, tagged, text
@@ -221001,8 +224100,8 @@ self: {
      }:
      mkDerivation {
        pname = "quickcheck-instances";
-       version = "0.3.26.1";
-       sha256 = "0zgsz1sisw3zlxlc5ssir6q4sm1qcvzwkmw50plrna04i0xj8bv4";
+       version = "0.3.27";
+       sha256 = "10vb3rl1ma9x4qdych9vn8gj9kngkqs2b97f4s6s1a908ddxv4m5";
        libraryHaskellDepends = [
          array base bytestring case-insensitive containers data-fix hashable
          integer-logarithms old-time OneTuple QuickCheck scientific splitmix
@@ -222027,8 +225126,8 @@ self: {
      }:
      mkDerivation {
        pname = "raaz";
-       version = "0.3.5";
-       sha256 = "1b1xwsh01d5p685r85w0mlnf6ldqzy57vrbcsnr9lgdn6bjhvlih";
+       version = "0.3.6";
+       sha256 = "0h6jc7093r9z729pmy0p9rsyg6nz3yksrkmj2pn6n6ddyw0cfp21";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -222528,8 +225627,8 @@ self: {
     ({ mkDerivation, base, criterion, hspec }:
      mkDerivation {
        pname = "rampart";
-       version = "1.1.0.3";
-       sha256 = "090n80qkfcp219lq3dqjpvvvr8dpnc8srzldch4f4vfazw289b0y";
+       version = "1.1.0.4";
+       sha256 = "1kchbdzc4blis2l9k8dzzzib0zqg443iwmsgdzpsqgq7la6ajcgc";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec ];
        benchmarkHaskellDepends = [ base criterion ];
@@ -222998,8 +226097,8 @@ self: {
        pname = "range-set-list";
        version = "0.1.3.1";
        sha256 = "0m8c8qhpk9vaykqfy6gsv1csmvdclm27zv9l56ipv152k75xks0j";
-       revision = "2";
-       editedCabalFile = "08b5zlc2q3nyxxjzzigjbjygvd2001i2w3vslacib3kxm4569n8v";
+       revision = "3";
+       editedCabalFile = "0r6ilczzhzhkndg56bih8na4jf62nrwwpkc5n16sbm61yr49hsha";
        libraryHaskellDepends = [ base containers deepseq hashable ];
        testHaskellDepends = [
          base containers deepseq hashable tasty tasty-quickcheck
@@ -223431,8 +226530,8 @@ self: {
      }:
      mkDerivation {
        pname = "ratel";
-       version = "1.0.16";
-       sha256 = "0n29h5g5bhin3hza334fdmxvk48gnpvg0dldck8rd9kn0713n032";
+       version = "1.0.17";
+       sha256 = "0yi70cxzaxwdz0l6s114bp0x6khvjbca2l95sv1grwrk6imlja4v";
        libraryHaskellDepends = [
          aeson base bytestring case-insensitive containers http-client
          http-client-tls http-types text uuid
@@ -223601,14 +226700,14 @@ self: {
        broken = true;
      }) {};
 
-  "rattletrap_11_2_3" = callPackage
+  "rattletrap_11_2_4" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, array, base, bytestring
      , containers, filepath, http-client, http-client-tls, text
      }:
      mkDerivation {
        pname = "rattletrap";
-       version = "11.2.3";
-       sha256 = "00hqymw1fbg4crgrd5ixivbpx5qblvp109j0yw8nkzidb4bbdhjj";
+       version = "11.2.4";
+       sha256 = "0cqk2sfh4brm94zvy3d23khxl2x7zrjc0c62ww96549qpvp8za4y";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -224842,41 +227941,43 @@ self: {
 
   "rebase" = callPackage
     ({ mkDerivation, base, bifunctors, bytestring, comonad, containers
-     , contravariant, deepseq, dlist, either, hashable, hashable-time
-     , mtl, profunctors, scientific, selective, semigroupoids, stm, text
-     , time, transformers, unordered-containers, uuid-types, vector
-     , vector-instances, void
+     , contravariant, deepseq, dlist, either, groups, hashable
+     , hashable-time, invariant, mtl, profunctors, scientific, selective
+     , semigroupoids, stm, text, time, transformers
+     , unordered-containers, uuid-types, vector, vector-instances, void
      }:
      mkDerivation {
        pname = "rebase";
-       version = "1.13.0.1";
-       sha256 = "0sh1vha10n28c4jb97p99xglghqph8ppydqzbnb2h25a34057927";
+       version = "1.13.2";
+       sha256 = "0lvz4cx9bgny4s5az75clza90nb573vqr8c2ls0bmrsb7sx4p3jh";
        libraryHaskellDepends = [
          base bifunctors bytestring comonad containers contravariant deepseq
-         dlist either hashable hashable-time mtl profunctors scientific
-         selective semigroupoids stm text time transformers
-         unordered-containers uuid-types vector vector-instances void
+         dlist either groups hashable hashable-time invariant mtl
+         profunctors scientific selective semigroupoids stm text time
+         transformers unordered-containers uuid-types vector
+         vector-instances void
        ];
        description = "A more progressive alternative to the \"base\" package";
        license = lib.licenses.mit;
      }) {};
 
-  "rebase_1_13_1" = callPackage
+  "rebase_1_14" = callPackage
     ({ mkDerivation, base, bifunctors, bytestring, comonad, containers
-     , contravariant, deepseq, dlist, either, hashable, hashable-time
-     , mtl, profunctors, scientific, selective, semigroupoids, stm, text
-     , time, transformers, unordered-containers, uuid-types, vector
-     , vector-instances, void
+     , contravariant, deepseq, dlist, either, groups, hashable
+     , hashable-time, invariant, mtl, profunctors, scientific, selective
+     , semigroupoids, stm, text, time, transformers
+     , unordered-containers, uuid-types, vector, vector-instances, void
      }:
      mkDerivation {
        pname = "rebase";
-       version = "1.13.1";
-       sha256 = "1ffl4lxan27g6fkhyddbgf7n0b57l4zbzngrz0fajdfp96xklsn4";
+       version = "1.14";
+       sha256 = "1jcr5cpwdlgk96nx0ml1bam5c9qdmd848i0krcykv96p05bs1vmy";
        libraryHaskellDepends = [
          base bifunctors bytestring comonad containers contravariant deepseq
-         dlist either hashable hashable-time mtl profunctors scientific
-         selective semigroupoids stm text time transformers
-         unordered-containers uuid-types vector vector-instances void
+         dlist either groups hashable hashable-time invariant mtl
+         profunctors scientific selective semigroupoids stm text time
+         transformers unordered-containers uuid-types vector
+         vector-instances void
        ];
        description = "A more progressive alternative to the \"base\" package";
        license = lib.licenses.mit;
@@ -225242,6 +228343,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "recursive-zipper" = callPackage
+    ({ mkDerivation, base, comonad, containers, free, lens, mtl
+     , recursion-schemes, transformers
+     }:
+     mkDerivation {
+       pname = "recursive-zipper";
+       version = "0.0.0.1";
+       sha256 = "0qv8zwss6csbhib840d8r45bkrpnvx832vvi1kl749mh2aywi5rl";
+       libraryHaskellDepends = [
+         base comonad containers free lens mtl recursion-schemes
+         transformers
+       ];
+       description = "Zippers over recursive data structures";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "recursors" = callPackage
     ({ mkDerivation, base, hspec, QuickCheck, template-haskell }:
      mkDerivation {
@@ -225658,8 +228775,8 @@ self: {
     ({ mkDerivation, base, stm, transformers }:
      mkDerivation {
        pname = "ref-tf";
-       version = "0.5";
-       sha256 = "06lf3267b68syiqcwvgw8a7yi0ki3khnh4i9s8z7zjrjnj6h9r4v";
+       version = "0.5.0.1";
+       sha256 = "0isilgcbw12zyh8s2liaj5r9r5m3yg1xskyhag6f36qi60y29hx5";
        libraryHaskellDepends = [ base stm transformers ];
        description = "A type class for monads with references using type families";
        license = lib.licenses.bsd3;
@@ -225806,6 +228923,8 @@ self: {
        pname = "reflection";
        version = "2.1.6";
        sha256 = "1kd6dgnp99dzbkxdnj01g81j03v7zq5cwg0sf19rlcmvgs8i8gmz";
+       revision = "1";
+       editedCabalFile = "1bnpkfmagii4mc8258yjy4f4lykflmljkqcifnxpfqv99bszw6pl";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base containers hspec QuickCheck ];
        testToolDepends = [ hspec-discover ];
@@ -226814,8 +229933,8 @@ self: {
      }:
      mkDerivation {
        pname = "regex";
-       version = "1.1.0.0";
-       sha256 = "02hxgy5ck3h5pwd5gzs4565qbql8457cjdbbc2yrk236qzc1qa8x";
+       version = "1.1.0.1";
+       sha256 = "0gjascxc2x4mxq570wv1q5fn6qfkk9lc4x0xdkhqrd84aw4pc3qm";
        libraryHaskellDepends = [
          array base base-compat bytestring containers hashable regex-base
          regex-pcre-builtin regex-tdfa template-haskell text time
@@ -226862,16 +229981,12 @@ self: {
      }) {};
 
   "regex-base" = callPackage
-    ({ mkDerivation, array, base, bytestring, containers, mtl, text }:
+    ({ mkDerivation, array, base, bytestring, containers, text }:
      mkDerivation {
        pname = "regex-base";
-       version = "0.94.0.1";
-       sha256 = "1ngdmmrxs1rhvib052c6shfa40yad82jylylikz327r0zxpxkcbi";
-       revision = "1";
-       editedCabalFile = "19rzll80mpr4licfzz6qfy4i9xbmhxy4r7n1d523db73q09jvzrm";
-       libraryHaskellDepends = [
-         array base bytestring containers mtl text
-       ];
+       version = "0.94.0.2";
+       sha256 = "1w9fxad1dwi040r3db9i2cjhhrl86p3hngj13ixbcnqgb27l16bv";
+       libraryHaskellDepends = [ array base bytestring containers text ];
        description = "Common \"Text.Regex.*\" API for Regex matching";
        license = lib.licenses.bsd3;
      }) {};
@@ -226971,32 +230086,32 @@ self: {
   "regex-examples" = callPackage
     ({ mkDerivation, array, base, base-compat, blaze-html, bytestring
      , containers, data-default, directory, filepath, hashable, heredoc
-     , http-conduit, regex, regex-base, regex-pcre-builtin, regex-tdfa
-     , regex-with-pcre, shelly, smallcheck, tasty, tasty-hunit
+     , regex, regex-base, regex-pcre-builtin, regex-tdfa
+     , regex-with-pcre, shelly, smallcheck, stm, tasty, tasty-hunit
      , tasty-smallcheck, template-haskell, text, time
-     , time-locale-compat, transformers, unordered-containers
-     , utf8-string
+     , time-locale-compat, transformers, typed-process
+     , unordered-containers, utf8-string
      }:
      mkDerivation {
        pname = "regex-examples";
-       version = "1.1.0.0";
-       sha256 = "02lpkr6y6q8mz30ily0gj6haqzma9a5x002jc08s5lx3s5h60b63";
+       version = "1.1.0.1";
+       sha256 = "1x8611bnvzj8pcc2g934gif4m6sssi08rxyqamn1b2i28ixzfh0c";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          array base base-compat blaze-html bytestring containers
-         data-default directory filepath hashable heredoc http-conduit regex
-         regex-base regex-pcre-builtin regex-tdfa regex-with-pcre shelly
-         smallcheck tasty tasty-hunit tasty-smallcheck template-haskell text
-         time time-locale-compat transformers unordered-containers
+         data-default directory filepath hashable heredoc regex regex-base
+         regex-pcre-builtin regex-tdfa regex-with-pcre shelly smallcheck stm
+         tasty tasty-hunit tasty-smallcheck template-haskell text time
+         time-locale-compat transformers typed-process unordered-containers
          utf8-string
        ];
        testHaskellDepends = [
          array base base-compat blaze-html bytestring containers
-         data-default directory filepath hashable heredoc http-conduit regex
-         regex-base regex-pcre-builtin regex-tdfa regex-with-pcre shelly
-         smallcheck tasty tasty-hunit tasty-smallcheck template-haskell text
-         time time-locale-compat transformers unordered-containers
+         data-default directory filepath hashable heredoc regex regex-base
+         regex-pcre-builtin regex-tdfa regex-with-pcre shelly smallcheck stm
+         tasty tasty-hunit tasty-smallcheck template-haskell text time
+         time-locale-compat transformers typed-process unordered-containers
          utf8-string
        ];
        description = "Tutorial, tests and example programs for regex";
@@ -227328,8 +230443,8 @@ self: {
      }:
      mkDerivation {
        pname = "regex-with-pcre";
-       version = "1.1.0.0";
-       sha256 = "18wq136snwk0i8l1fv878lmwh3rlvz6k68skrda70xr0i132wpax";
+       version = "1.1.0.1";
+       sha256 = "1dypklwhjcsq1y7nfpn6z6gj9c4j1wg3x55yvfczlnk97jl6dk1m";
        libraryHaskellDepends = [
          base base-compat bytestring containers regex regex-base
          regex-pcre-builtin regex-tdfa template-haskell text transformers
@@ -227563,8 +230678,8 @@ self: {
      }:
      mkDerivation {
        pname = "registry";
-       version = "0.2.0.3";
-       sha256 = "1fhqcpbvz16yj93mhf7lx40i8a00mizj51m3nyazg785xhil9xbs";
+       version = "0.2.1.0";
+       sha256 = "1qsw33fysnq5lxb48ckcwja7ws99fji5w2hkq7y3nly8yj6mdna3";
        libraryHaskellDepends = [
          base containers exceptions hashable mmorph mtl protolude resourcet
          semigroupoids semigroups template-haskell text transformers-base
@@ -227584,24 +230699,24 @@ self: {
      }) {};
 
   "registry-hedgehog" = callPackage
-    ({ mkDerivation, base, containers, generic-lens, hedgehog, mmorph
-     , multimap, protolude, registry, tasty, tasty-discover
-     , tasty-hedgehog, tasty-th, template-haskell, text, transformers
-     , universum, unordered-containers
+    ({ mkDerivation, base, containers, hedgehog, mmorph, multimap
+     , protolude, registry, tasty, tasty-discover, tasty-hedgehog
+     , tasty-th, template-haskell, text, transformers, universum
+     , unordered-containers
      }:
      mkDerivation {
        pname = "registry-hedgehog";
-       version = "0.4.0.0";
-       sha256 = "0mq5x9a8z70ibq78wx1p1za2f4r1mgrpdy78p5yvxvlzcazwqnp6";
+       version = "0.4.1.0";
+       sha256 = "1wak4bg7fkd1ywacg74snr1wvain62mg62i7wqk5zllypf3rxkxi";
        libraryHaskellDepends = [
          base containers hedgehog mmorph multimap protolude registry tasty
          tasty-discover tasty-hedgehog tasty-th template-haskell text
          transformers universum unordered-containers
        ];
        testHaskellDepends = [
-         base containers generic-lens hedgehog mmorph multimap protolude
-         registry tasty tasty-discover tasty-hedgehog tasty-th
-         template-haskell text transformers universum unordered-containers
+         base containers hedgehog mmorph multimap protolude registry tasty
+         tasty-discover tasty-hedgehog tasty-th template-haskell text
+         transformers universum unordered-containers
        ];
        testToolDepends = [ tasty-discover ];
        description = "utilities to work with Hedgehog generators and `registry`";
@@ -227815,6 +230930,34 @@ self: {
        maintainers = with lib.maintainers; [ sternenseemann ];
      }) {};
 
+  "rel8_1_2_1_0" = callPackage
+    ({ mkDerivation, aeson, base, bifunctors, bytestring
+     , case-insensitive, comonad, containers, contravariant, hasql
+     , hasql-transaction, hedgehog, mmorph, opaleye, pretty
+     , product-profunctors, profunctors, scientific, semialign
+     , semigroupoids, tasty, tasty-hedgehog, text, these, time
+     , tmp-postgres, transformers, uuid
+     }:
+     mkDerivation {
+       pname = "rel8";
+       version = "1.2.1.0";
+       sha256 = "0f4rnyr90f989ww4hh8h65fhnj16ir144qsin9abc767fxnb7wis";
+       libraryHaskellDepends = [
+         aeson base bifunctors bytestring case-insensitive comonad
+         contravariant hasql opaleye pretty product-profunctors profunctors
+         scientific semialign semigroupoids text these time uuid
+       ];
+       testHaskellDepends = [
+         base bytestring case-insensitive containers hasql hasql-transaction
+         hedgehog mmorph scientific tasty tasty-hedgehog text time
+         tmp-postgres transformers uuid
+       ];
+       description = "Hey! Hey! Can u rel8?";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = with lib.maintainers; [ sternenseemann ];
+     }) {};
+
   "relacion" = callPackage
     ({ mkDerivation, array, base, containers }:
      mkDerivation {
@@ -228071,8 +231214,8 @@ self: {
     ({ mkDerivation, base, bindings-DSL }:
      mkDerivation {
        pname = "reliable-io";
-       version = "0.0.1";
-       sha256 = "0dbp5s8acn6fzcvlplkn4dbcn06l6jsvwilcz45kchss7p4j3gvx";
+       version = "0.0.2";
+       sha256 = "15hc82xp8p2jr9q0acssir81fcpvgahj4s19j8352adzp2jiv2k6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bindings-DSL ];
@@ -229289,19 +232432,19 @@ self: {
     ({ mkDerivation, rebase }:
      mkDerivation {
        pname = "rerebase";
-       version = "1.13.0.1";
-       sha256 = "0j50l96whwi65ir35nfhn24h6103zy1ilfjsqiax63ajzw169fkv";
+       version = "1.13.2";
+       sha256 = "04bzdyz17azwx6afdys3vh8iydrq6z58j77ib4pwvmz54v2jfcaa";
        libraryHaskellDepends = [ rebase ];
        description = "Reexports from \"base\" with a bunch of other standard libraries";
        license = lib.licenses.mit;
      }) {};
 
-  "rerebase_1_13_1" = callPackage
+  "rerebase_1_14" = callPackage
     ({ mkDerivation, rebase }:
      mkDerivation {
        pname = "rerebase";
-       version = "1.13.1";
-       sha256 = "1g3lwnkykl4np2fzylhi7469y10a3vpxxn1i5mqhm0mmx5lwrhw3";
+       version = "1.14";
+       sha256 = "09d34kf28q5p3xq87yak4lkzijfhfla3dgph98iv6ym11wagdwkx";
        libraryHaskellDepends = [ rebase ];
        description = "Reexports from \"base\" with a bunch of other standard libraries";
        license = lib.licenses.mit;
@@ -229428,12 +232571,12 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "resistor-cube_0_0_1_3" = callPackage
+  "resistor-cube_0_0_1_4" = callPackage
     ({ mkDerivation, base, comfort-array, lapack }:
      mkDerivation {
        pname = "resistor-cube";
-       version = "0.0.1.3";
-       sha256 = "1i96s6x3xzs3jxk00fakfjk4jvfr700gfh56jgzqj4w49pdf09k4";
+       version = "0.0.1.4";
+       sha256 = "1rwqbvjrvii7c47dvdp4kcfgh62v5a846wklx9z6iz555dhyk2y9";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base comfort-array lapack ];
@@ -229588,6 +232731,22 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "resource-pool-fork-avanov" = callPackage
+    ({ mkDerivation, base, hashable, stm, time, transformers
+     , transformers-base, unliftio, vector
+     }:
+     mkDerivation {
+       pname = "resource-pool-fork-avanov";
+       version = "0.2.4.0";
+       sha256 = "19jdi2rm9l68465y9l6gnywg7pizzvlyr48jyypp0aqhvjycmk3x";
+       libraryHaskellDepends = [
+         base hashable stm time transformers transformers-base unliftio
+         vector
+       ];
+       description = "A high-performance striped resource pooling implementation";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "resource-pool-monad" = callPackage
     ({ mkDerivation, base, free, kan-extensions, monad-control
      , resource-pool, transformers
@@ -230104,20 +233263,21 @@ self: {
   "retrie" = callPackage
     ({ mkDerivation, ansi-terminal, async, base, bytestring, containers
      , data-default, deepseq, directory, filepath, ghc, ghc-exactprint
-     , ghc-paths, haskell-src-exts, HUnit, mtl, optparse-applicative
-     , process, random-shuffle, syb, tasty, tasty-hunit, temporary, text
-     , transformers, unordered-containers
+     , ghc-paths, haskell-src-exts, HUnit, list-t, mtl
+     , optparse-applicative, process, random-shuffle, syb, tasty
+     , tasty-hunit, temporary, text, transformers, unordered-containers
      }:
      mkDerivation {
        pname = "retrie";
-       version = "1.0.0.0";
-       sha256 = "1hrkx7gx7hwgljvx8zm1yhn7xvyif943hvxx5b27ali6grmndy9w";
+       version = "1.1.0.0";
+       sha256 = "148d1pl52mac4mz4pl9qmmynjjbzygg4x6vlsyblb268drcjn3f8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          ansi-terminal async base bytestring containers data-default
-         directory filepath ghc ghc-exactprint mtl optparse-applicative
-         process random-shuffle syb text transformers unordered-containers
+         directory filepath ghc ghc-exactprint list-t mtl
+         optparse-applicative process random-shuffle syb text transformers
+         unordered-containers
        ];
        executableHaskellDepends = [ base haskell-src-exts ];
        testHaskellDepends = [
@@ -230129,6 +233289,37 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "retrie_1_2_0_0" = callPackage
+    ({ mkDerivation, ansi-terminal, async, base, bytestring, containers
+     , data-default, deepseq, directory, exceptions, filepath, ghc
+     , ghc-exactprint, ghc-paths, haskell-src-exts, HUnit, list-t, mtl
+     , optparse-applicative, process, random-shuffle, syb, tasty
+     , tasty-hunit, temporary, text, transformers, unordered-containers
+     }:
+     mkDerivation {
+       pname = "retrie";
+       version = "1.2.0.0";
+       sha256 = "0l4n1yhq388x774w2qyzsi4q1xsj121ccd60q21b5fz0hdzrxy26";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-terminal async base bytestring containers data-default
+         directory filepath ghc ghc-exactprint list-t mtl
+         optparse-applicative process random-shuffle syb text transformers
+         unordered-containers
+       ];
+       executableHaskellDepends = [ base ghc-paths haskell-src-exts ];
+       testHaskellDepends = [
+         base containers data-default deepseq directory exceptions filepath
+         ghc ghc-exactprint ghc-paths haskell-src-exts HUnit mtl
+         optparse-applicative process syb tasty tasty-hunit temporary text
+         unordered-containers
+       ];
+       description = "A powerful, easy-to-use codemodding tool for Haskell";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "retroclash-lib" = callPackage
     ({ mkDerivation, barbies, base, clash-ghc, clash-lib, clash-prelude
      , containers, ghc-typelits-extra, ghc-typelits-knownnat
@@ -231775,8 +234966,8 @@ self: {
      }:
      mkDerivation {
        pname = "rock";
-       version = "0.3.1.0";
-       sha256 = "0rv689w41dbspn40nblkjg81csp5jvk069c92c6dkvfx1biblhwn";
+       version = "0.3.1.1";
+       sha256 = "0r6z9all4ynsam4z3ln0ad0zycfk6pxvwavfzr4icfwg5ifj01hi";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -232568,7 +235759,6 @@ self: {
        ];
        description = "Directed rounding for built-in floating types";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "rounding" = callPackage
@@ -232984,8 +236174,8 @@ self: {
      }:
      mkDerivation {
        pname = "rrule";
-       version = "0.1.1";
-       sha256 = "0xb0yf0p5r7szb7zxlcc95d22f49s9ql671f1lmvjvzg1jkmsvva";
+       version = "0.1.2";
+       sha256 = "0mq2nlkw7244x2y8qh1m1mpff3ykygr7xrvadjfrx6m6sbp4wl1n";
        libraryHaskellDepends = [
          base megaparsec parser-combinators text time
        ];
@@ -233942,10 +237132,8 @@ self: {
      }:
      mkDerivation {
        pname = "safe-json";
-       version = "1.1.1.1";
-       sha256 = "0wp955ak673jjcjwqmliwv3dk723kf0nl4rwvzqmlgfg9c57n2j3";
-       revision = "1";
-       editedCabalFile = "0bwdim4vslpgnh77b5lgxmfrh2xaza1rgqgnh2xz73b4jb8lg2p4";
+       version = "1.1.2.0";
+       sha256 = "1908s40l6chnxlxnqmn95p8hvr5jbjm8hm5dnjbq7czxpw22x7s2";
        libraryHaskellDepends = [
          aeson base bytestring containers dlist hashable scientific tasty
          tasty-hunit tasty-quickcheck text time unordered-containers
@@ -234188,6 +237376,8 @@ self: {
        pname = "safecopy";
        version = "0.10.4.2";
        sha256 = "0r2mf0p82gf8vnldx477b5ykrj1x7hyg13nqfn6gzb50japs6h3i";
+       revision = "1";
+       editedCabalFile = "1lah4m6rjq08bj5sfwh6azw2srrz2n68zmmp7vimxrhakvf3fpm4";
        libraryHaskellDepends = [
          array base bytestring cereal containers generic-data old-time
          template-haskell text time transformers vector
@@ -235209,8 +238399,8 @@ self: {
      }:
      mkDerivation {
        pname = "satyros";
-       version = "0.3.1.3";
-       sha256 = "1d0x3cm0wf4bpncb73b3mzmpcwdnwyf3pi7848hr3blnz5v3aj2b";
+       version = "0.3.1.4";
+       sha256 = "0f5520sw3ywjv60zqdm5ccy8wfxbwknh153n6n4qglbcl7049z7x";
        libraryHaskellDepends = [
          base containers extra free lens mtl random vector
        ];
@@ -235318,7 +238508,7 @@ self: {
        license = lib.licenses.lgpl3Only;
      }) {};
 
-  "sbp_4_0_3" = callPackage
+  "sbp_4_1_1" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, array, base
      , base64-bytestring, basic-prelude, binary, binary-conduit
      , bytestring, cmdargs, conduit, conduit-extra, data-binary-ieee754
@@ -235327,8 +238517,8 @@ self: {
      }:
      mkDerivation {
        pname = "sbp";
-       version = "4.0.3";
-       sha256 = "1pcrpykf6wzpkrgxi08niwadvdk5rab3ddcba28j84d3agzv7192";
+       version = "4.1.1";
+       sha256 = "18nhbxq2d07a0hnrb3acm1yi8hlyi84wnia2fc6p1lw9nmlrkzbv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -235409,6 +238599,8 @@ self: {
        pname = "sbv";
        version = "8.15";
        sha256 = "11qzh2gfq9v8cxz6jjbipnfiwjs0hw34ghg5gdpr0h7bj77in30p";
+       revision = "1";
+       editedCabalFile = "16bbwp94hzwgj0im1rd106hbz3hx2wymq43r8pcqpcxd439wwmv3";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array async base containers deepseq directory filepath libBF mtl
@@ -235444,6 +238636,8 @@ self: {
        pname = "sbv";
        version = "8.17";
        sha256 = "0l9dwydrjipgq3cbv0g6y820mi7lf5lcn3hidl6a60zzdrkfyxhd";
+       revision = "1";
+       editedCabalFile = "18jjnxxq9bh5raxw3khgkx14wq4fv1kfd59lhh9v55z59sjaydiy";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array async base containers deepseq directory filepath libBF mtl
@@ -237434,12 +240628,13 @@ self: {
      }) {};
 
   "sdp" = callPackage
-    ({ mkDerivation, base, data-default-class, fmr, ghc-prim }:
+    ({ mkDerivation, base, cpphs, data-default-class, fmr, ghc-prim }:
      mkDerivation {
        pname = "sdp";
-       version = "0.2.1";
-       sha256 = "1hz6b1fr47dwi3pml627f280ac6j8yp2hmjm1kvlzicsk0hj12hf";
+       version = "0.2.1.1";
+       sha256 = "19s78i5aaj24wbbqkfa6xjkj95fgl23gyqan57pkdjcnknwpymqq";
        libraryHaskellDepends = [ base data-default-class fmr ghc-prim ];
+       libraryToolDepends = [ cpphs ];
        description = "Simple Data Processing";
        license = lib.licenses.bsd3;
      }) {};
@@ -237972,8 +241167,8 @@ self: {
      }:
      mkDerivation {
        pname = "secure-memory";
-       version = "0.0.0.1";
-       sha256 = "0765lkdnkzdmk3r8hbipxb2brg000jg4dqscqcjjh59lvsiaq367";
+       version = "0.0.0.2";
+       sha256 = "1635ygbqbr6x86y6n88j4d8hlwqskic2ri7vc6fiwsy650zr563q";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -238178,6 +241373,19 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "selective_0_5" = callPackage
+    ({ mkDerivation, base, containers, QuickCheck, transformers }:
+     mkDerivation {
+       pname = "selective";
+       version = "0.5";
+       sha256 = "18wd5wn8xaw0ilx34j292l06cqn6r2rri1wvxng8ygd8141sizdh";
+       libraryHaskellDepends = [ base containers transformers ];
+       testHaskellDepends = [ base containers QuickCheck transformers ];
+       description = "Selective applicative functors";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "selectors" = callPackage
     ({ mkDerivation, alex, array, base, containers, happy
      , template-haskell, text, xml-conduit
@@ -238381,6 +241589,8 @@ self: {
        pname = "semialign";
        version = "1.2.0.1";
        sha256 = "0ci1jpp37p1lzyjxc1bljd6zgg407qmkl9s36b50qjxf85q6j06r";
+       revision = "1";
+       editedCabalFile = "00cmkdmgqlk8v2jg084nddlj2qkwj68nqk9p3l07kzwf796rn5qf";
        libraryHaskellDepends = [
          base containers hashable indexed-traversable
          indexed-traversable-instances semigroupoids tagged these
@@ -238567,6 +241777,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "semigroups_0_20" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "semigroups";
+       version = "0.20";
+       sha256 = "1qbk6scp1rzb69dy8mz26p6az5vi16g2lzwmwnfshh3br4rjwbch";
+       libraryHaskellDepends = [ base ];
+       description = "Anything that associates";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "semigroups-actions" = callPackage
     ({ mkDerivation, base, containers, semigroups }:
      mkDerivation {
@@ -238657,6 +241879,8 @@ self: {
        pname = "semirings";
        version = "0.6";
        sha256 = "16q535bvjl7395sqkx6zlw48y4fzr7irp44pcp7w9irpn4cncdcr";
+       revision = "1";
+       editedCabalFile = "1c06yhfa053sv3rfz0d72a33l5qb0xmj1b3hy2z7pzxrcay6g1yc";
        libraryHaskellDepends = [
          base base-compat-batteries containers hashable unordered-containers
        ];
@@ -238751,14 +241975,14 @@ self: {
 
   "sensei" = callPackage
     ({ mkDerivation, ansi-terminal, base, bytestring, directory
-     , filepath, fsnotify, hspec, hspec-discover, hspec-meta, hspec-wai
-     , http-client, http-types, interpolate, mockery, network, process
-     , silently, stm, text, time, unix, wai, warp
+     , filepath, fsnotify, hspec, hspec-discover, hspec-wai, http-client
+     , http-types, mockery, network, process, silently, stm, text, time
+     , unix, wai, warp
      }:
      mkDerivation {
        pname = "sensei";
-       version = "0.6.0";
-       sha256 = "19hbm83v3bn2ximfd5bqjzq1xb079ajxbw1kc8gkm9ds4mg7aw0b";
+       version = "0.6.1";
+       sha256 = "1x5wvxfa08mmfwsyfm5h50lag5knyf19lycvjp3zb6ih70j2l390";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -238767,8 +241991,8 @@ self: {
        ];
        testHaskellDepends = [
          ansi-terminal base bytestring directory filepath fsnotify hspec
-         hspec-meta hspec-wai http-client http-types interpolate mockery
-         network process silently stm text time unix wai warp
+         hspec-wai http-client http-types mockery network process silently
+         stm text time unix wai warp
        ];
        testToolDepends = [ hspec-discover ];
        description = "Automatically run Hspec tests on file modifications";
@@ -238882,17 +242106,18 @@ self: {
      }) {};
 
   "seonbi" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal, cases
-     , cassava, containers, data-default, Diff, directory, doctest
+    ({ mkDerivation, aeson, attoparsec, base, bytestring
+     , bytestring-trie, Cabal, case-insensitive, cases, cassava, cmark
+     , containers, data-default, Diff, directory, doctest
      , doctest-discover, file-embed, filepath, hlint, hspec
-     , hspec-discover, html-charset, http-client, http-types
-     , interpolatedstring-perl6, optparse-applicative, QuickCheck
-     , random, temporary, text, text-trie, unicode-show, wai, warp, zip
+     , hspec-discover, html-charset, html-entities, http-client
+     , http-types, interpolatedstring-perl6, optparse-applicative
+     , QuickCheck, random, temporary, text, unicode-show, wai, warp, zip
      }:
      mkDerivation {
        pname = "seonbi";
-       version = "0.2.3";
-       sha256 = "1wr32bpn6hg6gjd9ppzim0212b04dwcbllk64h8395nnklcv1j44";
+       version = "0.3.1";
+       sha256 = "11hbx3d0d3c08axbxa275rlsa6kgr7p4h6wdwvlpnwmp7h4sgasi";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -238901,16 +242126,17 @@ self: {
          zip
        ];
        libraryHaskellDepends = [
-         aeson attoparsec base bytestring cassava containers data-default
-         file-embed filepath text text-trie
+         aeson attoparsec base bytestring bytestring-trie case-insensitive
+         cassava cmark containers data-default file-embed filepath
+         html-entities text
        ];
        executableHaskellDepends = [
-         aeson base bytestring cases containers html-charset http-types
-         optparse-applicative text wai warp
+         aeson base bytestring cases containers html-charset html-entities
+         http-types optparse-applicative text wai warp
        ];
        testHaskellDepends = [
          aeson base bytestring containers Diff directory doctest
-         doctest-discover filepath hlint hspec hspec-discover
+         doctest-discover filepath hlint hspec hspec-discover html-entities
          interpolatedstring-perl6 QuickCheck random text unicode-show
        ];
        testToolDepends = [ hspec-discover ];
@@ -239079,6 +242305,8 @@ self: {
        pname = "sequence-formats";
        version = "1.6.1";
        sha256 = "0r2p8aap9z82yhw6gagl1h7s8v05zf6w82qzhqr6p1msv183fm2a";
+       revision = "1";
+       editedCabalFile = "1alwdzr8m41ckyipxzaamyb7j7lbz41wmxsqzz57a9z8dfvfx01j";
        libraryHaskellDepends = [
          attoparsec base bytestring containers errors exceptions foldl
          lens-family pipes pipes-attoparsec pipes-bytestring pipes-safe
@@ -240496,7 +243724,6 @@ self: {
        ];
        description = "Servant combinators to facilitate writing GitHub webhooks";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "servant-haxl-client" = callPackage
@@ -240529,26 +243756,20 @@ self: {
      }) {};
 
   "servant-hmac-auth" = callPackage
-    ({ mkDerivation, aeson, base, base64-bytestring, binary, bytestring
+    ({ mkDerivation, base, base64-bytestring, binary, bytestring
      , case-insensitive, containers, cryptonite, http-client, http-types
-     , markdown-unlit, memory, mtl, servant, servant-client
-     , servant-client-core, servant-server, transformers, wai, warp
+     , memory, mtl, servant, servant-client, servant-client-core
+     , servant-server, transformers, wai
      }:
      mkDerivation {
        pname = "servant-hmac-auth";
-       version = "0.0.0";
-       sha256 = "08873pwmn2wzhl2r87gx6db3f2j8848g4xq2i4gnwqj23s7sfy0z";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.1.3";
+       sha256 = "057v665rkdblqga71sm4pk7gklwpnrgkwg540ky7mmhmdm2nicj4";
        libraryHaskellDepends = [
          base base64-bytestring binary bytestring case-insensitive
          containers cryptonite http-client http-types memory mtl servant
          servant-client servant-client-core servant-server transformers wai
        ];
-       executableHaskellDepends = [
-         aeson base http-client servant servant-client servant-server warp
-       ];
-       executableToolDepends = [ markdown-unlit ];
        testHaskellDepends = [ base ];
        description = "Servant authentication with HMAC";
        license = lib.licenses.mit;
@@ -240974,10 +244195,10 @@ self: {
      }:
      mkDerivation {
        pname = "servant-openapi3";
-       version = "2.0.1.2";
-       sha256 = "1lqvycbv49x0i3adbsdlcl49n65wxfjzhiz9pj11hg4k0j952q5p";
-       revision = "3";
-       editedCabalFile = "0pbv4h3nb61b8ykxniav1a8b769i8qbvxdkpkncgsx1xaklq16ly";
+       version = "2.0.1.3";
+       sha256 = "1nvxaskizv5qgznvxdg4crdh4dra5rj7abiky5bd927gnwvbir6s";
+       revision = "1";
+       editedCabalFile = "08ajlbydnklqdv8gyrqihdn27h5hjvlvjv628xg05w7waa2c15vy";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson aeson-pretty base base-compat bytestring hspec http-media
@@ -241015,8 +244236,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-pagination";
-       version = "2.4.1";
-       sha256 = "181an5p0qfzbv3cirnaq8bw778iib4qhv53y60z1ssn16v2vxhq5";
+       version = "2.4.2";
+       sha256 = "050ixkfqrfjvgz293q91iw0v6a4xfan0n0gn7pq3yh2dndz4if3a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -241906,25 +245127,19 @@ self: {
 
   "servant-tracing" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, bytestring-lexing
-     , containers, hashable, http-api-data, http-client, HUnit
-     , lifted-base, monad-control, mtl, QuickCheck, random, servant
-     , servant-server, tasty, tasty-hunit, tasty-quickcheck, text, time
-     , transformers, unordered-containers, wai, warp
+     , containers, hashable, http-api-data, http-client, http-types
+     , HUnit, lifted-base, monad-control, mtl, QuickCheck, random
+     , servant, tasty, tasty-hunit, tasty-quickcheck, text, time
+     , transformers, unordered-containers, wai
      }:
      mkDerivation {
        pname = "servant-tracing";
-       version = "0.1.0.2";
-       sha256 = "0qpamaf3ydfb8197iz2prjh9nxwxi03cdfsp3jl28rhbqrc2xpry";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.2.0.0";
+       sha256 = "1wlk7nbfhwrz233ld2lpkjgrbhc999gq5x880s41x089kaixf4jb";
        libraryHaskellDepends = [
          aeson async base bytestring bytestring-lexing containers hashable
-         http-api-data http-client lifted-base monad-control mtl random
-         servant servant-server text time unordered-containers wai
-       ];
-       executableHaskellDepends = [
-         async base bytestring containers http-client lifted-base
-         monad-control mtl servant servant-server text transformers wai warp
+         http-api-data http-client http-types lifted-base monad-control mtl
+         random servant text time unordered-containers wai
        ];
        testHaskellDepends = [
          aeson base containers http-api-data HUnit monad-control mtl
@@ -241932,6 +245147,8 @@ self: {
          transformers
        ];
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "servant-util" = callPackage
@@ -242846,6 +246063,8 @@ self: {
        pname = "sexp-grammar";
        version = "2.3.3.1";
        sha256 = "08sqpk5qgq3mqlxvz24sw43m52khynpf41cnd4yif4b4ri583mb9";
+       revision = "1";
+       editedCabalFile = "1g7bzfkphrih83vqx4l4vdwyn700lihz2vnwp5gnrrf2ka4zswx6";
        libraryHaskellDepends = [
          array base bytestring containers data-fix deepseq
          invertible-grammar prettyprinter recursion-schemes scientific
@@ -244237,8 +247456,8 @@ self: {
        pname = "shelly";
        version = "1.9.0";
        sha256 = "1kma77gixhyciimh19p64h1ndbcrs9qhk8fgyv71iqh5q57zvday";
-       revision = "1";
-       editedCabalFile = "0827p6wq8j92svrvmx02gdk961xx42g1ng4j6g7nflrfks9hw0zf";
+       revision = "2";
+       editedCabalFile = "0d08dlfgwi2m3wvcmcrcsn2g8lpqzkmxwxw74sysh94qb1gasr0y";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -244298,8 +247517,8 @@ self: {
      }:
      mkDerivation {
        pname = "shh";
-       version = "0.7.1.4";
-       sha256 = "1yriini033kja8w9hrxyfbc62nbwg4fb5nl8rj004gdkbaiz7wbl";
+       version = "0.7.2.0";
+       sha256 = "0rcjvkpxdwvhgn7i1dindhbskr8kwgm977kxgi2xcv398c71014y";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -244310,8 +247529,8 @@ self: {
          async base bytestring deepseq directory temporary unix
        ];
        testHaskellDepends = [
-         async base bytestring directory doctest filepath markdown-unlit
-         tasty tasty-hunit tasty-quickcheck utf8-string
+         async base bytestring directory doctest filepath tasty tasty-hunit
+         tasty-quickcheck utf8-string
        ];
        testToolDepends = [ markdown-unlit ];
        description = "Simple shell scripting from Haskell";
@@ -244552,8 +247771,8 @@ self: {
      }:
      mkDerivation {
        pname = "shortbytestring";
-       version = "0.2.0.0";
-       sha256 = "1mwr0nf0jd8j0yd2lzvlaav44g5kil7yh3yazvdqc35bf52chc6s";
+       version = "0.2.1.0";
+       sha256 = "1aisvy9a0lbql7p1lhlbkpa3gp57cahb9fblg9rps8wz613vy62w";
        libraryHaskellDepends = [
          base bytestring exceptions primitive template-haskell text word16
          word8
@@ -245001,8 +248220,8 @@ self: {
        pname = "sign";
        version = "0.4.4";
        sha256 = "1z9csfbl5h4cprvykszn81xncsry7fama2y3gbgnqr7mq15qziq7";
-       revision = "1";
-       editedCabalFile = "1zjwcfvdnwcz9qynalyryavh7x99k3g66zmrlzv8bccvhgihg08j";
+       revision = "2";
+       editedCabalFile = "1si2x4ip4lqh9zj249f1rsslzxxj94arww63bqaha2zkg25sfykz";
        libraryHaskellDepends = [
          base containers deepseq hashable lattices universe-base
        ];
@@ -245152,25 +248371,12 @@ self: {
     ({ mkDerivation, base, deepseq, directory, nanospec, temporary }:
      mkDerivation {
        pname = "silently";
-       version = "1.2.5.1";
-       sha256 = "1lgs1gsr5dp0x21diqn4l03fxgai2kgdmj85gqp0iz3zykvbmjbz";
-       libraryHaskellDepends = [ base deepseq directory ];
-       testHaskellDepends = [ base deepseq directory nanospec temporary ];
-       description = "Prevent or capture writing to stdout and other handles";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "silently_1_2_5_2" = callPackage
-    ({ mkDerivation, base, deepseq, directory, nanospec, temporary }:
-     mkDerivation {
-       pname = "silently";
        version = "1.2.5.2";
        sha256 = "15dnp83b0wj7m5v4r2yfrwxg9g6szv94ldcb74fpidninrqgqns6";
        libraryHaskellDepends = [ base deepseq directory ];
        testHaskellDepends = [ base deepseq directory nanospec temporary ];
        description = "Prevent or capture writing to stdout and other handles";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "silkscreen" = callPackage
@@ -246389,30 +249595,32 @@ self: {
      , attoparsec, base, base64-bytestring, bytestring, composition
      , constraints, containers, cryptonite, cryptostore, direct-sqlite
      , directory, file-embed, filepath, generic-random, hspec
-     , hspec-core, HUnit, ini, iso8601-time, memory, mtl, network
-     , network-transport, optparse-applicative, QuickCheck, random
-     , simple-logger, sqlite-simple, stm, template-haskell, text, time
-     , timeit, transformers, unliftio, unliftio-core, websockets, x509
+     , hspec-core, http-types, HUnit, ini, iso8601-time, memory, mtl
+     , network, network-transport, optparse-applicative, QuickCheck
+     , random, simple-logger, sqlite-simple, stm, template-haskell, text
+     , time, timeit, transformers, unliftio, unliftio-core, websockets
+     , x509
      }:
      mkDerivation {
        pname = "simplexmq";
-       version = "0.4.1";
-       sha256 = "0bqpjvcxk8fij0bvdp8abpaca17hwkjrya5fhiwzjsrs48c5w0by";
+       version = "0.5.0";
+       sha256 = "0wmhqmrxzgb4zvxmcsv49lzmvgqrqljivzcjfp4s04j87968x79j";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          ansi-terminal asn1-encoding asn1-types async attoparsec base
          base64-bytestring bytestring composition constraints containers
          cryptonite direct-sqlite directory file-embed filepath
-         generic-random iso8601-time memory mtl network network-transport
-         QuickCheck random simple-logger sqlite-simple stm template-haskell
-         text time transformers unliftio unliftio-core websockets x509
+         generic-random http-types iso8601-time memory mtl network
+         network-transport QuickCheck random simple-logger sqlite-simple stm
+         template-haskell text time transformers unliftio unliftio-core
+         websockets x509
        ];
        executableHaskellDepends = [
          ansi-terminal asn1-encoding asn1-types async attoparsec base
          base64-bytestring bytestring composition constraints containers
          cryptonite cryptostore direct-sqlite directory file-embed filepath
-         generic-random ini iso8601-time memory mtl network
+         generic-random http-types ini iso8601-time memory mtl network
          network-transport optparse-applicative QuickCheck random
          simple-logger sqlite-simple stm template-haskell text time
          transformers unliftio unliftio-core websockets x509
@@ -246421,10 +249629,10 @@ self: {
          ansi-terminal asn1-encoding asn1-types async attoparsec base
          base64-bytestring bytestring composition constraints containers
          cryptonite direct-sqlite directory file-embed filepath
-         generic-random hspec hspec-core HUnit iso8601-time memory mtl
-         network network-transport QuickCheck random simple-logger
-         sqlite-simple stm template-haskell text time timeit transformers
-         unliftio unliftio-core websockets x509
+         generic-random hspec hspec-core http-types HUnit iso8601-time
+         memory mtl network network-transport QuickCheck random
+         simple-logger sqlite-simple stm template-haskell text time timeit
+         transformers unliftio unliftio-core websockets x509
        ];
        description = "SimpleXMQ message broker";
        license = lib.licenses.agpl3Only;
@@ -246447,6 +249655,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "simpoole" = callPackage
+    ({ mkDerivation, base, concurrency, containers, exceptions, hspec
+     , time
+     }:
+     mkDerivation {
+       pname = "simpoole";
+       version = "0.0.1";
+       sha256 = "0wzmr1gj01vl37hwnwy03mq3ywhqxn0y25y2f0q1yky698yq87lw";
+       libraryHaskellDepends = [
+         base concurrency containers exceptions time
+       ];
+       testHaskellDepends = [ base concurrency hspec ];
+       description = "Simple pool";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "simseq" = callPackage
     ({ mkDerivation, base, bio, bytestring, random }:
      mkDerivation {
@@ -246557,6 +249781,8 @@ self: {
        pname = "singleton-bool";
        version = "0.1.6";
        sha256 = "1pc34dbzx5g3vw5w03zifvqva3whyvxzfy3yh78qkpd05f0g98sw";
+       revision = "1";
+       editedCabalFile = "0wg0js2fn7xpvaxz5jmghhc1al3lpwmhjb43mn731ffrbmfryihx";
        libraryHaskellDepends = [ base boring dec deepseq some ];
        description = "Type level booleans";
        license = lib.licenses.bsd3;
@@ -246681,23 +249907,6 @@ self: {
      }:
      mkDerivation {
        pname = "singletons-presburger";
-       version = "0.6.0.0";
-       sha256 = "1yg1l770c2817yhm569ij5rb8l15c69p5f68i0vrdd8kwpv1ka63";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base ghc-typelits-presburger mtl reflection singletons
-       ];
-       description = "Presburger Arithmetic Solver for GHC Type-level natural numbers with Singletons package";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "singletons-presburger_0_6_1_0" = callPackage
-    ({ mkDerivation, base, ghc-typelits-presburger, mtl, reflection
-     , singletons
-     }:
-     mkDerivation {
-       pname = "singletons-presburger";
        version = "0.6.1.0";
        sha256 = "1s12g1qcdz035y2lzjivw2m2jm9hqvbwvgmxvahn4a2j89f4zgky";
        isLibrary = true;
@@ -246707,7 +249916,6 @@ self: {
        ];
        description = "Presburger Arithmetic Solver for GHC Type-level natural numbers with Singletons package";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "singletons-th" = callPackage
@@ -246803,8 +250011,8 @@ self: {
        pname = "siphash";
        version = "1.0.3";
        sha256 = "1wq5dan30ggjgmravy92ylqjvjv1q7mxrmddr7zc8h6aqr0wx0fg";
-       revision = "1";
-       editedCabalFile = "1q2dy0ywngm9iv7k6d9gnf860m9hpf62q5qvdzmxw5s629gk4afn";
+       revision = "2";
+       editedCabalFile = "14l9ndv8l2vysb3fp00gfh2g6j5bwhkh67kwbx9ish74ncmqkznv";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base bytestring cpu ];
        testHaskellDepends = [
@@ -248632,6 +251840,8 @@ self: {
        pname = "smtlib2";
        version = "1.0";
        sha256 = "1wgd2nv100a9nmpzl15x4r0mkr4dzzi7z2018f19nfj9ri70x89w";
+       revision = "1";
+       editedCabalFile = "00f34fam5sdy06j4mbqpfki1fkslcq4swszlvpv9drcyyc3z7lqi";
        libraryHaskellDepends = [
          base constraints containers dependent-map dependent-sum mtl
          template-haskell
@@ -249233,8 +252443,8 @@ self: {
      }:
      mkDerivation {
        pname = "snap-stream";
-       version = "0.1";
-       sha256 = "0f8ai7ys7wb4aa9l7hn7zmdj1byia5s7nnnr1gvq8xwlkapr15w3";
+       version = "0.1.1.0";
+       sha256 = "1p1ip3rsk9xmy9758csf1c4nxng9kas5qya2nlcrd02q3lmfna6x";
        libraryHaskellDepends = [
          attoparsec base bytestring io-streams snap-core
        ];
@@ -251012,8 +254222,8 @@ self: {
        pname = "some";
        version = "1.0.3";
        sha256 = "0w3syapwz9v916zf1i4f8vxymdfg7syc2cpxgnqr018pbswzxrk2";
-       revision = "1";
-       editedCabalFile = "14nsajf1n3ba58ljhbk3hk2nr61s896grbi07jvg68dvg7h5rln5";
+       revision = "2";
+       editedCabalFile = "1w3snkgqhrgi2x2bdny9i7a9ybmal3asrh6g6kg8v86kq1gyr34k";
        libraryHaskellDepends = [ base deepseq ];
        testHaskellDepends = [ base ];
        description = "Existential type: Some";
@@ -251455,8 +254665,8 @@ self: {
      }:
      mkDerivation {
        pname = "spacecookie";
-       version = "1.0.0.0";
-       sha256 = "0v61n5afcrfmj7dd51h4wi7d5hzl4r86wvaymhsi3h4jday58ln0";
+       version = "1.0.0.1";
+       sha256 = "1qv48gbq5h1vqinihgzjgljd7igrnypp55kvy9f7q0vyxha5gg88";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -252575,6 +255785,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "spooky" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "spooky";
+       version = "0.1.0.0";
+       sha256 = "0c1hvbj7d7mgpvba43yb33jvm1fzaqgzijljh3flb14k99pi5x39";
+       revision = "1";
+       editedCabalFile = "0j9jsbn4f73fb1a5rp1qzw4jdh6n3mmlky16pvxw2gnz8kcficng";
+       libraryHaskellDepends = [ base ];
+       description = "Unified API for phantom typed newtypes and type aliases";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "spool" = callPackage
     ({ mkDerivation, base, bytestring, vector }:
      mkDerivation {
@@ -253755,6 +256978,8 @@ self: {
        pname = "stache";
        version = "2.3.1";
        sha256 = "1a26pwg6y90588yf9sp18w4b2ahr64fxdhy1c3zv0c9pw7bv6k6q";
+       revision = "1";
+       editedCabalFile = "0yfy56ax3zbikvmdyplx5l3rzq50fjwz6rcb9l8iwz167h7gzjpr";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -253923,8 +257148,8 @@ self: {
      }:
      mkDerivation {
        pname = "stack-clean-old";
-       version = "0.4.1";
-       sha256 = "08sbgclcbnl67zayps2clgw8xk7s6bbyhm8r0pp4slx9mk4nrv4l";
+       version = "0.4.3";
+       sha256 = "1978fc1v7i6g41fa755sb2lpwbkahr76w5f5bm0iqv5hid536a60";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -255728,8 +258953,8 @@ self: {
        pname = "step-function";
        version = "0.2";
        sha256 = "1mg7zqqs32zdh1x1738kk0yydyksbhx3y3x8n31f7byk5fvzqq6j";
-       revision = "6";
-       editedCabalFile = "01ncir4kfij1wp591wi333isf20v4sppjfcv27siz6m048cbscg4";
+       revision = "7";
+       editedCabalFile = "0fnzln04c8wvhag730hl3h4wwykizwwg5xzsbw5qd3zzx2fmbywz";
        libraryHaskellDepends = [
          base base-compat-batteries containers deepseq QuickCheck
        ];
@@ -255827,12 +259052,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "stm_2_5_0_1" = callPackage
+  "stm_2_5_0_2" = callPackage
     ({ mkDerivation, array, base }:
      mkDerivation {
        pname = "stm";
-       version = "2.5.0.1";
-       sha256 = "1fipf3bbk34mbld1apwnq6kbjxbrz2nc9cxxmhkk2bdcc2z4y7j5";
+       version = "2.5.0.2";
+       sha256 = "1x5kj5jn6c3jc5asipiai9zp6fzkqcqrh8j2imclyls1nybccjm0";
+       revision = "1";
+       editedCabalFile = "0m8sfzgcqldpp3q6x5291sxpa7b53ppf7d6axkbznxdaz9rn9p74";
        libraryHaskellDepends = [ array base ];
        description = "Software Transactional Memory";
        license = lib.licenses.bsd3;
@@ -255988,8 +259215,8 @@ self: {
      }:
      mkDerivation {
        pname = "stm-hamt";
-       version = "1.2.0.6";
-       sha256 = "15jqj31h9ff4g2k3sq35nm122sy0hqapxf4fm5vlkfh33zdn28di";
+       version = "1.2.0.7";
+       sha256 = "1sny6ippahlxhm94888lj19ar36cnjilbw2yza5p223mv0cgnapx";
        libraryHaskellDepends = [
          base deferred-folds focus hashable list-t primitive
          primitive-extras transformers
@@ -256314,10 +259541,8 @@ self: {
     ({ mkDerivation, base, byteorder }:
      mkDerivation {
        pname = "storable-endian";
-       version = "0.2.6";
-       sha256 = "12allvahkgx1nr10z4gp07gwaxqf52n4yyzihdxiilsf127sqhrp";
-       revision = "1";
-       editedCabalFile = "12f8sscsvsarlwz3p6kk9vbvqsbyhs8lhafgn9h7c0z6pz1amrya";
+       version = "0.2.6.1";
+       sha256 = "0icyf3w9hw2k5naxjsfvmykj98l94bz626qadz37r0wv22lsicff";
        libraryHaskellDepends = [ base byteorder ];
        description = "Storable instances with endianness";
        license = lib.licenses.bsd3;
@@ -256448,17 +259673,17 @@ self: {
      , base64-bytestring, bifunctors, bytestring, cereal, cereal-vector
      , clock, containers, contravariant, criterion, cryptohash, deepseq
      , directory, filepath, free, ghc-prim, hashable, hspec
-     , hspec-smallcheck, integer-gmp, lifted-base, monad-control
-     , mono-traversable, nats, network, primitive, resourcet, safe
-     , smallcheck, store-core, syb, template-haskell, text, th-lift
-     , th-lift-instances, th-orphans, th-reify-many, th-utilities, time
-     , transformers, unordered-containers, vector
+     , hspec-discover, hspec-smallcheck, integer-gmp, lifted-base
+     , monad-control, mono-traversable, nats, network, primitive
+     , resourcet, safe, smallcheck, store-core, syb, template-haskell
+     , text, th-lift, th-lift-instances, th-orphans, th-reify-many
+     , th-utilities, time, transformers, unordered-containers, vector
      , vector-binary-instances, void, weigh
      }:
      mkDerivation {
        pname = "store";
-       version = "0.7.12";
-       sha256 = "1r6wajaxjlh38bivzmcdx8p0x89g04p6alddlibpa356drzl3jbp";
+       version = "0.7.14";
+       sha256 = "1x4l8fifv785vf6l5z5v090bkfag7d7bvid41v5sdmkw57gxn92h";
        libraryHaskellDepends = [
          array async base base-orphans base64-bytestring bifunctors
          bytestring containers contravariant cryptohash deepseq directory
@@ -256477,6 +259702,7 @@ self: {
          text th-lift th-lift-instances th-orphans th-reify-many
          th-utilities time transformers unordered-containers vector void
        ];
+       testToolDepends = [ hspec-discover ];
        benchmarkHaskellDepends = [
          array async base base-orphans base64-bytestring bifunctors
          bytestring cereal cereal-vector containers contravariant criterion
@@ -256796,6 +260022,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "streaming_0_2_3_1" = callPackage
+    ({ mkDerivation, base, containers, ghc-prim, hspec, mmorph, mtl
+     , QuickCheck, transformers, transformers-base
+     }:
+     mkDerivation {
+       pname = "streaming";
+       version = "0.2.3.1";
+       sha256 = "127azyczj0ab2wv7d4mb86zsbffkvjg9fpjwrqlrf2vmjgizlppw";
+       libraryHaskellDepends = [
+         base containers ghc-prim mmorph mtl transformers transformers-base
+       ];
+       testHaskellDepends = [ base hspec QuickCheck ];
+       description = "an elementary streaming prelude and general stream type";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "streaming-attoparsec" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, streaming
      , streaming-bytestring, tasty, tasty-hunit
@@ -256964,30 +260207,8 @@ self: {
      }:
      mkDerivation {
        pname = "streaming-commons";
-       version = "0.2.2.1";
-       sha256 = "1pc13vz4n0a8lrvc2ck3r3ph10819n9pysklwqabg83q92zl0s9h";
-       libraryHaskellDepends = [
-         array async base bytestring directory network process random stm
-         text transformers unix zlib
-       ];
-       testHaskellDepends = [
-         array async base bytestring deepseq hspec network QuickCheck text
-         unix zlib
-       ];
-       benchmarkHaskellDepends = [ base bytestring deepseq gauge text ];
-       description = "Common lower-level functions needed by various streaming data libraries";
-       license = lib.licenses.mit;
-     }) {};
-
-  "streaming-commons_0_2_2_2" = callPackage
-    ({ mkDerivation, array, async, base, bytestring, deepseq, directory
-     , gauge, hspec, network, process, QuickCheck, random, stm, text
-     , transformers, unix, zlib
-     }:
-     mkDerivation {
-       pname = "streaming-commons";
-       version = "0.2.2.2";
-       sha256 = "0j1hwqadczg4rw9pmiv21qs9kvqxarxqg4dv4cpcrxx72b4xssvq";
+       version = "0.2.2.3";
+       sha256 = "12zhy0nk9cxijhc66sjg1zgyv5qrvvrpxwzfvjpdxncv3v606w32";
        libraryHaskellDepends = [
          array async base bytestring directory network process random stm
          text transformers unix zlib
@@ -256999,7 +260220,6 @@ self: {
        benchmarkHaskellDepends = [ base bytestring deepseq gauge text ];
        description = "Common lower-level functions needed by various streaming data libraries";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "streaming-concurrency" = callPackage
@@ -257365,20 +260585,21 @@ self: {
        maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
-  "streamly_0_8_0" = callPackage
+  "streamly_0_8_1_1" = callPackage
     ({ mkDerivation, atomic-primops, base, containers, deepseq
-     , directory, exceptions, fusion-plugin-types, ghc-prim, heaps
-     , lockfree-queue, monad-control, mtl, network, primitive
-     , transformers, transformers-base
+     , directory, exceptions, filepath, fusion-plugin-types, ghc-prim
+     , heaps, lockfree-queue, monad-control, mtl, network, primitive
+     , transformers, transformers-base, unicode-data
      }:
      mkDerivation {
        pname = "streamly";
-       version = "0.8.0";
-       sha256 = "1ng1zfayk21z03rr3m1kwhrj0if4yl3nggp971r25rks9rb01il5";
+       version = "0.8.1.1";
+       sha256 = "13m415pcyyzipm5nsf9l8lcan3dn2ck666rq014y46zd66l5ahb9";
        libraryHaskellDepends = [
          atomic-primops base containers deepseq directory exceptions
-         fusion-plugin-types ghc-prim heaps lockfree-queue monad-control mtl
-         network primitive transformers transformers-base
+         filepath fusion-plugin-types ghc-prim heaps lockfree-queue
+         monad-control mtl network primitive transformers transformers-base
+         unicode-data
        ];
        description = "Dataflow programming and declarative concurrency";
        license = lib.licenses.bsd3;
@@ -257467,15 +260688,15 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "streamly-bytestring_0_1_3" = callPackage
+  "streamly-bytestring_0_1_4" = callPackage
     ({ mkDerivation, base, bytestring, deepseq, directory, filepath
      , gauge, hspec, hspec-discover, quickcheck-instances, random
      , streamly, temporary
      }:
      mkDerivation {
        pname = "streamly-bytestring";
-       version = "0.1.3";
-       sha256 = "00iqbzijxs112sd9423q35w0v8cx9wpq1y2kfikc3sacqvfwx0cs";
+       version = "0.1.4";
+       sha256 = "1qwgrxm2x46951si18sbmqhq4fik26l07kmspv23m9q3drn0mklc";
        libraryHaskellDepends = [ base bytestring streamly ];
        testHaskellDepends = [
          base bytestring directory filepath hspec hspec-discover
@@ -257762,8 +260983,8 @@ self: {
        pname = "strict";
        version = "0.4.0.1";
        sha256 = "0hb24a09c3agsq7sdv8r2b2jc2f4g1blg2xvj4cfadynib0apxnz";
-       revision = "2";
-       editedCabalFile = "1zrimwpr4ilvivkdf4yfryic354pbj34cf6kvvh7vjb6mw31j15b";
+       revision = "3";
+       editedCabalFile = "13yn5xvywyy3zwhyhl6dq3qrk6im6sm94q98647vgh6xs8xvlvya";
        libraryHaskellDepends = [
          assoc base binary bytestring deepseq ghc-prim hashable text these
          transformers
@@ -257793,6 +261014,8 @@ self: {
        pname = "strict-base-types";
        version = "0.7";
        sha256 = "079pa6w3f5i5kv1v6mwhp2k0siyywnk3igm93y2kaz37f352x5jn";
+       revision = "1";
+       editedCabalFile = "0v6x606rn7f2az97y1dwydbrj2f1r9zpsr365xczr1cwi5s4rjaf";
        libraryHaskellDepends = [
          aeson base quickcheck-instances strict strict-lens
        ];
@@ -257933,6 +261156,8 @@ self: {
        pname = "strict-lens";
        version = "0.4.0.2";
        sha256 = "1dsgr53q0sdivrxc7jmbqjd65hav9zwjqc8zfbyybkr1ww17bhf5";
+       revision = "1";
+       editedCabalFile = "0vr7aw644imrd26cmipp2i0ssv2x2ac2797204z94q0v0vjs9hfg";
        libraryHaskellDepends = [ base lens strict ];
        description = "Lenses for types in strict package";
        license = lib.licenses.bsd3;
@@ -258025,6 +261250,18 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "strict-wrapper" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "strict-wrapper";
+       version = "0.0.0.0";
+       sha256 = "0vbix0pg17qgnjvyqjahrig7lsf1rwrc4jah5nw84gai768j32qc";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       description = "Lightweight strict types";
+       license = lib.licenses.mit;
+     }) {};
+
   "strict-writer" = callPackage
     ({ mkDerivation, base, doctest, mtl }:
      mkDerivation {
@@ -258082,6 +261319,8 @@ self: {
        pname = "string-class";
        version = "0.1.7.0";
        sha256 = "1s0bj0wvwriw4516za6ar7w7zsz5mmnf1dba0ch239n27rb00nwf";
+       revision = "1";
+       editedCabalFile = "1z3cq57j6gjkz8q0wn9y222qw8lg560372na0nn7fcbf54yc749r";
        libraryHaskellDepends = [ base bytestring tagged text ];
        description = "String class library";
        license = lib.licenses.bsd3;
@@ -258164,8 +261403,8 @@ self: {
        pname = "string-interpolate";
        version = "0.3.1.1";
        sha256 = "0hhzvrs9msyqsxwsqqm55lyxf85vhg4vcsszl735zsbs7431av69";
-       revision = "1";
-       editedCabalFile = "1grn08zg3n26d58al25hvg6czbliabrlf1srlhymjdvkvd4a5i4y";
+       revision = "2";
+       editedCabalFile = "1blxy1ld69i8bg2340j0dcrcbdrqqnx5q8v47jda6183jfzwrxr6";
        libraryHaskellDepends = [
          base bytestring haskell-src-exts haskell-src-meta split
          template-haskell text text-conversions utf8-string
@@ -258571,15 +261810,15 @@ self: {
 
   "stripe-scotty" = callPackage
     ({ mkDerivation, aeson, base, bytestring, http-types, scotty
-     , stripe-concepts, stripe-signature, text, unordered-containers
+     , stripe-concepts, stripe-signature, text
      }:
      mkDerivation {
        pname = "stripe-scotty";
-       version = "1.1";
-       sha256 = "15l3b01wf55k3cnwspkqvphs822cmdbnxyfcka8bi0vaj8xl84x9";
+       version = "1.1.0.1";
+       sha256 = "1izc4mhfvwf83mnacmqghhz9fx9h12mdk4hc963ddk6k4lda3w80";
        libraryHaskellDepends = [
          aeson base bytestring http-types scotty stripe-concepts
-         stripe-signature text unordered-containers
+         stripe-signature text
        ];
        description = "Listen for Stripe webhook events with Scotty";
        license = lib.licenses.mit;
@@ -258642,18 +261881,19 @@ self: {
 
   "stripe-wreq" = callPackage
     ({ mkDerivation, aeson, base, bytestring, lens, stripe-concepts
-     , text, unordered-containers, wreq
+     , text, wreq
      }:
      mkDerivation {
        pname = "stripe-wreq";
-       version = "1.0.1.10";
-       sha256 = "0pxaffbmnibivg8pdkvmyjkw8hz0grq3x84apd94mkji7vjg9xgh";
+       version = "1.0.1.12";
+       sha256 = "0ixxzzd2yap0xgz47x335sp02jkmkilv0ra4b8v0x55pg2f377w2";
        libraryHaskellDepends = [
-         aeson base bytestring lens stripe-concepts text
-         unordered-containers wreq
+         aeson base bytestring lens stripe-concepts text wreq
        ];
        description = "Use the Stripe API via Wreq";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "stripeapi" = callPackage
@@ -258663,8 +261903,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripeapi";
-       version = "1.0.0.0";
-       sha256 = "0wg3b08gvkcqinc5r9jcrcfrgw0c3mh57ca5hzcrknddwd23flbj";
+       version = "2.0.0.1";
+       sha256 = "1kqmdw0f9cppbvirizmyfcsc26iczwrn6hrhmi9y6fhhxiy4wd1z";
        libraryHaskellDepends = [
          aeson base bytestring ghc-prim http-client http-conduit http-types
          mtl scientific text time transformers unordered-containers vector
@@ -258714,6 +261954,8 @@ self: {
        pname = "strong-path";
        version = "1.1.1.0";
        sha256 = "1jqz927n21q44i8021x8r1swppn6n6dy0z4zv0509jc7s6vf34vi";
+       revision = "1";
+       editedCabalFile = "01j3fgkhqln8nj4wh4za1l8b6fpms7fxifzi2fwlfaxnwis029vv";
        libraryHaskellDepends = [
          base exceptions filepath path template-haskell
        ];
@@ -258836,6 +262078,8 @@ self: {
        pname = "structured";
        version = "0.1.1";
        sha256 = "1mz02ys85z79nj24ylsmgh8v2m7zv2rixf7w0iqnwc49lax52w4q";
+       revision = "1";
+       editedCabalFile = "0ijyzfr55xyp692aj9jch81lwqx3pavg4ci8hzbc230zjs5idc50";
        libraryHaskellDepends = [
          aeson array base base16-bytestring binary bytestring containers
          hashable scientific tagged text time-compat transformers
@@ -259092,10 +262336,8 @@ self: {
      }:
      mkDerivation {
        pname = "stylist";
-       version = "2.4.0.0";
-       sha256 = "0nkz6jnfx7si473lz0b907lq6zjpw2apbcph61s2aw44j5zgdg96";
-       revision = "2";
-       editedCabalFile = "104rdqv33v54sj6yf8438sk7d0x0964b3gr1cj42qlxa8wl2idx0";
+       version = "2.4.0.2";
+       sha256 = "02p1xm9m1l9qgn6dyi2kc2zlb7iixx7ikwg3vwq4pgszjmhisbi6";
        libraryHaskellDepends = [
          async base css-syntax hashable network-uri regex-tdfa text
          unordered-containers
@@ -260598,31 +263840,6 @@ self: {
      }:
      mkDerivation {
        pname = "swish";
-       version = "0.10.0.7";
-       sha256 = "1ii1fcpnhvbid0jwlnya746qh0h4jla8ibx1vn59wyjxb8frlvxk";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         base containers directory filepath hashable intern mtl network-uri
-         old-locale polyparse text time
-       ];
-       executableHaskellDepends = [ base ];
-       testHaskellDepends = [
-         base containers hashable HUnit network-uri old-locale semigroups
-         test-framework test-framework-hunit text time
-       ];
-       description = "A semantic web toolkit";
-       license = lib.licenses.lgpl21Only;
-     }) {};
-
-  "swish_0_10_0_8" = callPackage
-    ({ mkDerivation, base, containers, directory, filepath, hashable
-     , HUnit, intern, mtl, network-uri, old-locale, polyparse
-     , semigroups, test-framework, test-framework-hunit, text, time
-     }:
-     mkDerivation {
-       pname = "swish";
        version = "0.10.0.8";
        sha256 = "1a7iz3d78r00mgkq370zy5fxjkb5x34c9iq3kc3gbl6hs6m6l579";
        isLibrary = true;
@@ -260639,7 +263856,6 @@ self: {
        ];
        description = "A semantic web toolkit";
        license = lib.licenses.lgpl21Only;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "swiss-ephemeris" = callPackage
@@ -260648,8 +263864,8 @@ self: {
      }:
      mkDerivation {
        pname = "swiss-ephemeris";
-       version = "1.4.0.0";
-       sha256 = "0ss502h2083qbiprspylwv02lbgidqgi106qs6k4s6jppgay34gx";
+       version = "1.4.2.0";
+       sha256 = "1m4k798qb46c3i633j5hprym5mfnyrna9y3za452g2h2icb420md";
        libraryHaskellDepends = [ base time vector ];
        testHaskellDepends = [
          base directory hspec QuickCheck random time vector
@@ -260823,25 +264039,26 @@ self: {
        license = "unknown";
      }) {};
 
-  "sydtest_0_4_1_0" = callPackage
-    ({ mkDerivation, async, base, bytestring, containers, Diff, dlist
-     , envparse, filepath, MonadRandom, mtl, optparse-applicative, path
-     , path-io, pretty-show, QuickCheck, quickcheck-io, random-shuffle
+  "sydtest_0_7_0_0" = callPackage
+    ({ mkDerivation, async, autodocodec, autodocodec-yaml, base
+     , bytestring, containers, Diff, dlist, envparse, filepath
+     , MonadRandom, mtl, optparse-applicative, path, path-io
+     , pretty-show, QuickCheck, quickcheck-io, random, random-shuffle
      , safe, safe-coloured-text, safe-coloured-text-terminfo, split, stm
-     , sydtest-discover, text, yaml, yamlparse-applicative
+     , sydtest-discover, text, yaml
      }:
      mkDerivation {
        pname = "sydtest";
-       version = "0.4.1.0";
-       sha256 = "1g63qq1hisfpnic9sl2a8bry1wyr6ccdcq0l2dagdnggripjgdl1";
+       version = "0.7.0.0";
+       sha256 = "16lgys2l3ywai85mf80r212l3m15mbd4a2zgg8wpmn98d798qjr1";
        libraryHaskellDepends = [
-         async base bytestring containers Diff dlist envparse filepath
-         MonadRandom mtl optparse-applicative path path-io pretty-show
-         QuickCheck quickcheck-io random-shuffle safe safe-coloured-text
-         safe-coloured-text-terminfo split text yaml yamlparse-applicative
+         async autodocodec autodocodec-yaml base bytestring containers Diff
+         dlist envparse filepath MonadRandom mtl optparse-applicative path
+         path-io pretty-show QuickCheck quickcheck-io random-shuffle safe
+         safe-coloured-text safe-coloured-text-terminfo split text yaml
        ];
        testHaskellDepends = [
-         base bytestring path path-io QuickCheck safe-coloured-text
+         base bytestring path path-io QuickCheck random safe-coloured-text
          safe-coloured-text-terminfo stm text
        ];
        testToolDepends = [ sydtest-discover ];
@@ -260897,8 +264114,8 @@ self: {
      }:
      mkDerivation {
        pname = "sydtest-discover";
-       version = "0.0.0.0";
-       sha256 = "1kyjcvi9paax0hi05d2qab8pdkvvabq8s0gl772qiq8rhmrmazsx";
+       version = "0.0.0.1";
+       sha256 = "1f0a169cl8lv6zz9hs351f6aqha9iyl1n2fwfzskccvx1m4dk8z6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -260936,13 +264153,15 @@ self: {
      }:
      mkDerivation {
        pname = "sydtest-hspec";
-       version = "0.0.0.0";
-       sha256 = "1fjj6v1f6rilzjcjgg0yqmhhmj067g45sw7q2xr8q9p7qiqnpkh1";
+       version = "0.0.0.1";
+       sha256 = "14z15z0yihssy2s0cn570q61md3zbagf329gj26i5r7rfwr9mm7m";
        libraryHaskellDepends = [ base hspec-core mtl sydtest ];
        testHaskellDepends = [ base hspec sydtest ];
        testToolDepends = [ sydtest-discover ];
        description = "An Hspec companion library for sydtest";
        license = "unknown";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "sydtest-mongo" = callPackage
@@ -263478,6 +266697,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "tagtree" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, data-default
+     , filepattern, megaparsec, parser-combinators, relude, text
+     }:
+     mkDerivation {
+       pname = "tagtree";
+       version = "0.1.0.0";
+       sha256 = "1gmfw1znz4n6a08fpi0g4jkkz1m03yl59v1yj1w6kmlvyzf6dw1z";
+       libraryHaskellDepends = [
+         aeson base bytestring containers data-default filepattern
+         megaparsec parser-combinators relude text
+       ];
+       description = "Hierarchical Tags & Tag Trees";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "tai" = callPackage
     ({ mkDerivation, base, clock, lens, mtl, parsers, time, trifecta
      , wreq
@@ -264067,10 +267302,8 @@ self: {
      }:
      mkDerivation {
        pname = "taskwarrior";
-       version = "0.3.0.0";
-       sha256 = "1h24d799q1s6b36hd40bxa4c9m1izkgh6j7p2jv1p6cxngz28ni0";
-       revision = "6";
-       editedCabalFile = "02jag4yib1fqf2fp9p323hb3vsbkrqm1k9zp2wag6ysl5kvvq1x6";
+       version = "0.3.1.0";
+       sha256 = "04cnrzl9rj9zhdbk9g6hjsvd69v3g6w8d2jkh51a2pqjrw4bljf0";
        libraryHaskellDepends = [
          aeson base bytestring containers process random text time
          unordered-containers uuid
@@ -264085,15 +267318,15 @@ self: {
        maintainers = with lib.maintainers; [ maralorn ];
      }) {};
 
-  "taskwarrior_0_4_0_0" = callPackage
+  "taskwarrior_0_6_0_1" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, hspec
      , hspec-discover, process, QuickCheck, quickcheck-instances, random
      , text, time, uuid
      }:
      mkDerivation {
        pname = "taskwarrior";
-       version = "0.4.0.0";
-       sha256 = "0f815vfhabry64zjwjp48cdcnk875bx2a8c1ix8lxsa700g2rmav";
+       version = "0.6.0.1";
+       sha256 = "0g7g03hnlij7ggrq0rlxy4gay6b8f9j1yxm71y4yb80wnrj9lgwf";
        libraryHaskellDepends = [
          aeson base bytestring containers process random text time uuid
        ];
@@ -264115,8 +267348,10 @@ self: {
      }:
      mkDerivation {
        pname = "tasty";
-       version = "1.4.2";
-       sha256 = "0574hbqzxzyv6vsk5kzbf04kz58y0iy8x9ydcj4b8fpncgmgy63g";
+       version = "1.4.2.1";
+       sha256 = "0ki3gdzfsqvk9mwzzvgj18ck1sbkwac06gcc128wpwh9g8c4bzqr";
+       revision = "1";
+       editedCabalFile = "1fm1yx9dqikspw3a6ygnwj61vx1zwgjxm84zpkydbhcf6hgab5sg";
        libraryHaskellDepends = [
          ansi-terminal base clock containers mtl optparse-applicative stm
          tagged unbounded-delays unix wcwidth
@@ -264394,6 +267629,8 @@ self: {
        pname = "tasty-hedgehog";
        version = "1.1.0.0";
        sha256 = "0cy49z8n124xh2ra2482vfy5if1n6d9lbdjma2zg1mxfj0k0zyfb";
+       revision = "1";
+       editedCabalFile = "0zn29qgsb5v4y7s4lrrhav9wqaz6pm97rcj1gl88qvvvi000jjbx";
        libraryHaskellDepends = [ base hedgehog tagged tasty ];
        testHaskellDepends = [
          base hedgehog tasty tasty-expected-failure
@@ -264466,6 +267703,8 @@ self: {
        pname = "tasty-hspec";
        version = "1.2";
        sha256 = "0hnq6q4mk2avirb8cgibaxj5m2c4rf5xsqry04zx4nc15la5xniw";
+       revision = "2";
+       editedCabalFile = "0a97zm7lxc7m0qw3i3grwzdmbpar5bf2cj31ip37mh9w1x2nzqvx";
        libraryHaskellDepends = [
          base hspec hspec-core QuickCheck tasty tasty-quickcheck
          tasty-smallcheck
@@ -264773,8 +268012,8 @@ self: {
      }:
      mkDerivation {
        pname = "tasty-quickcheck";
-       version = "0.10.1.2";
-       sha256 = "0i1i78587znqzwps49milyr5n2k388ld2kr9ysz1vw8gcw51qq49";
+       version = "0.10.2";
+       sha256 = "1qnc6rdvjvlw08q6sln2n98rvj0s0pp689h6w4z58smjbn0lr25l";
        libraryHaskellDepends = [
          base optparse-applicative QuickCheck random tagged tasty
        ];
@@ -265634,8 +268873,8 @@ self: {
      }:
      mkDerivation {
        pname = "telegram-bot-simple";
-       version = "0.3.7";
-       sha256 = "09bi2rbajiv3p2anky9zjnbvxxd79d70p3im94zrp14db0zjhnp7";
+       version = "0.3.8";
+       sha256 = "0nqzghd3apfic1idrx03g5a6xihghi35ha28mcksgji9zp42595q";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -266895,26 +270134,27 @@ self: {
 
   "tesla" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, bytestring, casing
-     , containers, cryptonite, exceptions, generic-deriving, http-client
-     , HUnit, lens, lens-aeson, memory, monad-logger, mtl, random, retry
-     , tagsoup, tasty, tasty-hunit, tasty-quickcheck, template-haskell
-     , text, time, unliftio-core, vector, wreq
+     , containers, cryptonite, exceptions, finite-typelits
+     , generic-deriving, http-client, HUnit, lens, lens-aeson, memory
+     , monad-logger, mtl, random, retry, tagsoup, tasty, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, time, unliftio-core
+     , vector, wreq
      }:
      mkDerivation {
        pname = "tesla";
-       version = "0.4.1.3";
-       sha256 = "1g4kl1lnbx37ffqir3w20j5aifl3196cnb28366c77jmp9dmwxna";
+       version = "0.5.0.0";
+       sha256 = "1nlzibxw9ayb2yjhpfky0sxd8q44ss8hxvgs4vi9xkw4afymr2w5";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring casing containers
-         cryptonite exceptions generic-deriving http-client lens lens-aeson
-         memory monad-logger mtl random retry tagsoup template-haskell text
-         time unliftio-core vector wreq
+         cryptonite exceptions finite-typelits generic-deriving http-client
+         lens lens-aeson memory monad-logger mtl random retry tagsoup
+         template-haskell text time unliftio-core vector wreq
        ];
        testHaskellDepends = [
          aeson base base64-bytestring bytestring casing containers
-         cryptonite exceptions generic-deriving http-client HUnit lens
-         lens-aeson memory monad-logger mtl random retry tagsoup tasty
-         tasty-hunit tasty-quickcheck template-haskell text time
+         cryptonite exceptions finite-typelits generic-deriving http-client
+         HUnit lens lens-aeson memory monad-logger mtl random retry tagsoup
+         tasty tasty-hunit tasty-quickcheck template-haskell text time
          unliftio-core vector wreq
        ];
        description = "Tesla API client";
@@ -266955,8 +270195,8 @@ self: {
        pname = "test-framework";
        version = "0.8.2.0";
        sha256 = "1hhacrzam6b8f10hyldmjw8pb7frdxh04rfg3farxcxwbnhwgbpm";
-       revision = "7";
-       editedCabalFile = "0an5fypqx6r9v3ql5n9xwdxnaq922lpwh759z5y6vx8rasnd98jw";
+       revision = "8";
+       editedCabalFile = "1sal1qqvc8c1rvsqz292bniy1kr5rx6ll7z9chwsz6j2ncw5sgmg";
        libraryHaskellDepends = [
          ansi-terminal ansi-wl-pprint base containers hostname old-locale
          random regex-posix time xml
@@ -267661,8 +270901,8 @@ self: {
      }:
      mkDerivation {
        pname = "texmath";
-       version = "0.12.3.2";
-       sha256 = "1d9r3na7hmkgr0j63fs50ssll506l1wyqhw0dpap7jk0rdz8pv6n";
+       version = "0.12.3.3";
+       sha256 = "0zccnb61z0l2h6yzvnqh78bhqrqjd8237rrw4llsyzz149m7j3n8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -267769,8 +271009,8 @@ self: {
        pname = "text-ansi";
        version = "0.1.1";
        sha256 = "1vcrsg7v8n6znh1pd9kbm20bc6dg3zijd3xjdjljadf15vfkd5f6";
-       revision = "1";
-       editedCabalFile = "09s363h3lw4p8f73m7vw0d1cqnwmap9ndrfxd4qbzbra5xf58q38";
+       revision = "2";
+       editedCabalFile = "03r5318sxzxykms6jjmry6mkm4zy83ajamk727jym9r9kp16dkmc";
        libraryHaskellDepends = [ base text ];
        description = "Text styling for ANSI terminals";
        license = lib.licenses.bsd3;
@@ -267892,6 +271132,8 @@ self: {
        pname = "text-display";
        version = "0.0.1.0";
        sha256 = "0ljh2pxwk6nl37z6az83wh50lvh5mr0gwxjc1vwnwva62yg3f0nx";
+       revision = "1";
+       editedCabalFile = "1094rlcqs2dl6j0gapaspvl80dv4k34r1lpqqz6xnxwb33s4padq";
        libraryHaskellDepends = [ base bytestring text ];
        testHaskellDepends = [
          base bytestring hspec should-not-typecheck text
@@ -268281,24 +271523,6 @@ self: {
      }) {};
 
   "text-printer" = callPackage
-    ({ mkDerivation, base, bytestring, pretty, QuickCheck, semigroups
-     , test-framework, test-framework-quickcheck2, text, text-latin1
-     }:
-     mkDerivation {
-       pname = "text-printer";
-       version = "0.5.0.1";
-       sha256 = "065m64f5l4yyccb04c7bwax09wk6aafm2v9sl3w8w1asqw7ni9sq";
-       libraryHaskellDepends = [
-         base bytestring pretty semigroups text text-latin1
-       ];
-       testHaskellDepends = [
-         base QuickCheck test-framework test-framework-quickcheck2
-       ];
-       description = "Abstract interface for text builders/printers";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "text-printer_0_5_0_2" = callPackage
     ({ mkDerivation, base, bytestring, pretty, QuickCheck
      , test-framework, test-framework-quickcheck2, text, text-latin1
      }:
@@ -268314,7 +271538,6 @@ self: {
        ];
        description = "Abstract interface for text builders/printers";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "text-regex-replace" = callPackage
@@ -268427,8 +271650,8 @@ self: {
        pname = "text-short";
        version = "0.1.4";
        sha256 = "1p56cjm6f883ajb54y8hmrl01sqda6a36xvbmgjv3mb9gxv953v4";
-       revision = "1";
-       editedCabalFile = "049fahl19pxbsqjrfvfm0ll3mclgin7pw04350k1sfdgigkpcyjg";
+       revision = "2";
+       editedCabalFile = "08rgniynvmfla0v6xsq5347i7r0jig9bzjppnwjddzahhqa8jirc";
        libraryHaskellDepends = [
          base binary bytestring deepseq ghc-prim hashable template-haskell
          text
@@ -268538,33 +271761,33 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "text-show-instances_3_8_5" = callPackage
+  "text-show-instances_3_8_6" = callPackage
     ({ mkDerivation, base, base-compat-batteries, bifunctors, binary
      , containers, directory, generic-deriving, ghc-boot-th, ghc-prim
      , haskeline, hpc, hspec, hspec-discover, old-locale, old-time
-     , pretty, QuickCheck, quickcheck-instances, random, semigroups
-     , tagged, template-haskell, terminfo, text, text-short, text-show
-     , th-orphans, time, transformers, transformers-compat, unix
-     , unordered-containers, vector, xhtml
+     , pretty, QuickCheck, quickcheck-instances, random, scientific
+     , semigroups, tagged, template-haskell, terminfo, text, text-short
+     , text-show, th-orphans, time, transformers, transformers-compat
+     , unix, unordered-containers, vector, xhtml
      }:
      mkDerivation {
        pname = "text-show-instances";
-       version = "3.8.5";
-       sha256 = "1qpkap6p57js8x4b3hm0xnk3xbyv8w1g6w84qda49dv6x67chyn3";
+       version = "3.8.6";
+       sha256 = "1jg1wsjnp6q68nsynwzw26s4akr0d9a4frd9dvnddalm2c6vdwaz";
        libraryHaskellDepends = [
          base base-compat-batteries bifunctors binary containers directory
          ghc-boot-th haskeline hpc old-locale old-time pretty random
-         semigroups tagged template-haskell terminfo text text-short
-         text-show time transformers transformers-compat unix
+         scientific semigroups tagged template-haskell terminfo text
+         text-short text-show time transformers transformers-compat unix
          unordered-containers vector xhtml
        ];
        testHaskellDepends = [
          base base-compat-batteries bifunctors binary containers directory
          generic-deriving ghc-boot-th ghc-prim haskeline hpc hspec
          old-locale old-time pretty QuickCheck quickcheck-instances random
-         tagged template-haskell terminfo text-short text-show th-orphans
-         time transformers transformers-compat unix unordered-containers
-         vector xhtml
+         scientific tagged template-haskell terminfo text-short text-show
+         th-orphans time transformers transformers-compat unix
+         unordered-containers vector xhtml
        ];
        testToolDepends = [ hspec-discover ];
        description = "Additional instances for text-show";
@@ -269160,12 +272383,16 @@ self: {
      }) {};
 
   "th-extras" = callPackage
-    ({ mkDerivation, base, syb, template-haskell }:
+    ({ mkDerivation, base, containers, syb, template-haskell
+     , th-abstraction
+     }:
      mkDerivation {
        pname = "th-extras";
-       version = "0.0.0.4";
-       sha256 = "1vgvqgfm2lvx6v5r2mglwyl63647c9n6b9a5ikqc93pjm98g9vwg";
-       libraryHaskellDepends = [ base syb template-haskell ];
+       version = "0.0.0.5";
+       sha256 = "03pfwadxxnabkpy1i6jmmgk6p8w3r9cn3xz7d7jvzqsig70mnpim";
+       libraryHaskellDepends = [
+         base containers syb template-haskell th-abstraction
+       ];
        description = "A grab bag of functions for use with Template Haskell";
        license = lib.licenses.publicDomain;
      }) {};
@@ -269337,8 +272564,8 @@ self: {
      }:
      mkDerivation {
        pname = "th-lift-instances";
-       version = "0.1.18";
-       sha256 = "09nv1zsffvv6zfz1fjzcqrla3lc350qr4i4xf7wgvzp049sprrdy";
+       version = "0.1.19";
+       sha256 = "0rk0q609q8pha4wqxxhrr221nc9lc9wanif3qm1g8lav51500pd8";
        libraryHaskellDepends = [
          base bytestring containers template-haskell text th-lift
          transformers vector
@@ -269372,8 +272599,8 @@ self: {
        pname = "th-orphans";
        version = "0.13.12";
        sha256 = "03n6qxnpxhbzyzbyrjq77d1y62dwgx39mmxfwmnc04l8pawgrxxz";
-       revision = "1";
-       editedCabalFile = "0vfz9dl5g9xwp2zmwqc5gngyvjaqj3i0s97vbcslafcqhdqw3qaj";
+       revision = "2";
+       editedCabalFile = "15660jac7m705jp6nm5lia51ifchbjrr6x3kj5sfij9dbj1f5dkj";
        libraryHaskellDepends = [
          base mtl template-haskell th-compat th-expand-syns th-lift
          th-lift-instances th-reify-many
@@ -269493,27 +272720,6 @@ self: {
      }:
      mkDerivation {
        pname = "th-test-utils";
-       version = "1.1.0";
-       sha256 = "12a8yp9wfl40afa3ps8jg3axcaah018pangjm0fzzga2awr1wzwk";
-       revision = "3";
-       editedCabalFile = "10726mnihw50vjbl6qqccx18a3wjcik5jl5gw85jfxlam7ifwyrb";
-       libraryHaskellDepends = [
-         base template-haskell th-orphans transformers
-       ];
-       testHaskellDepends = [
-         base bytestring tasty tasty-golden tasty-hunit template-haskell
-         th-orphans transformers
-       ];
-       description = "Utility functions for testing Template Haskell code";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "th-test-utils_1_1_1" = callPackage
-    ({ mkDerivation, base, bytestring, tasty, tasty-golden, tasty-hunit
-     , template-haskell, th-orphans, transformers
-     }:
-     mkDerivation {
-       pname = "th-test-utils";
        version = "1.1.1";
        sha256 = "03qpszfhb58nmm673zhbkvsmw1ynjr2h19qpggyay2fk5zgq7n3q";
        libraryHaskellDepends = [
@@ -269525,7 +272731,6 @@ self: {
        ];
        description = "Utility functions for testing Template Haskell code";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "th-to-exp" = callPackage
@@ -269753,8 +272958,8 @@ self: {
        pname = "these";
        version = "1.1.1.1";
        sha256 = "027m1gd7i6jf2ppfkld9qrv3xnxg276587pmx10z9phpdvswk66p";
-       revision = "4";
-       editedCabalFile = "0pbj0ac11imj70xqpfxm968zanyjxcm9phh96l3qpmjs1sqqrsrd";
+       revision = "5";
+       editedCabalFile = "0jk8cyxlvwfxg3j3cxixs36rnlswgwcwq86agx2kvmzyp1kffsgh";
        libraryHaskellDepends = [ assoc base binary deepseq hashable ];
        description = "An either-or-both data type";
        license = lib.licenses.bsd3;
@@ -269766,6 +272971,8 @@ self: {
        pname = "these-lens";
        version = "1.0.1.2";
        sha256 = "1v3kj7j4bkywbmdbblwqs5gsj5s23d59sb3s27jf3bwdzf9d21p6";
+       revision = "1";
+       editedCabalFile = "0rpcbl8j61qmdhsyq8nf7as29w156iq09q5clz51vmxbl1j2ggqp";
        libraryHaskellDepends = [ base lens these ];
        description = "Lenses for These";
        license = lib.licenses.bsd3;
@@ -270297,8 +273504,8 @@ self: {
        pname = "through-text";
        version = "0.1.0.0";
        sha256 = "1kdl36n98kajaa7v7js2sy8bi09p8rrxmlfcclcfc1l92bd2aclk";
-       revision = "6";
-       editedCabalFile = "12mqlm77g0fymx3xwlkf6s9nqivcf78szhrzkvssi7lq1lqq9lbc";
+       revision = "7";
+       editedCabalFile = "0cgh3sxd7ms5wdrrr174jf7pf6n7c66srpsmg3yk8h8msnrvw1qr";
        libraryHaskellDepends = [ base bytestring case-insensitive text ];
        description = "Convert textual types through Text without needing O(n^2) instances";
        license = lib.licenses.bsd3;
@@ -270844,8 +274051,8 @@ self: {
        pname = "time-compat";
        version = "1.9.6.1";
        sha256 = "103b3vpn277kkccv6jv54b2wpi5c00mpb01ndl9w4y4nxc0bn1xd";
-       revision = "2";
-       editedCabalFile = "01qzncax21hbv7qlx5p5km2pscyrq4jjvl99b7zj07g4ss72w6iq";
+       revision = "3";
+       editedCabalFile = "1lafp8yk2n8g873ivi36gnwd8syhw5lssm3xj4c1fplnivhg5n22";
        libraryHaskellDepends = [
          base base-orphans deepseq hashable time
        ];
@@ -271228,8 +274435,8 @@ self: {
        pname = "timeit";
        version = "2.0";
        sha256 = "1sliqpvl501rlcj6s0lhmsf5ym24j4h881wzc1f1wdyvg3jz8kd1";
-       revision = "1";
-       editedCabalFile = "0d4vjg48xyqjmydnjqjxica0zr30vgb91b3vv75cig686ikpjmq7";
+       revision = "2";
+       editedCabalFile = "1vgxfk2021jh6jk3dimchmf9f71844zj080342qvnn5lck7c7mrm";
        libraryHaskellDepends = [ base ];
        description = "Time monadic computations with an IO base";
        license = lib.licenses.bsd3;
@@ -271479,8 +274686,8 @@ self: {
     ({ mkDerivation, base, hspec, QuickCheck }:
      mkDerivation {
        pname = "timers-tick";
-       version = "0.5.0.0";
-       sha256 = "0j4nf3l939dwn35q2qan58pxs4v82s1nh6zm5jgbpq38bhxvjvmc";
+       version = "0.5.0.1";
+       sha256 = "1kv646l77bzjgs2v39axsi405zvapwks1vj4ff341r5agpwrfqlc";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec QuickCheck ];
        description = "tick based timers";
@@ -271634,8 +274841,8 @@ self: {
      }:
      mkDerivation {
        pname = "timezone-olson-th";
-       version = "0.1.0.5";
-       sha256 = "1b28drcgdal7ifghw9bk3k8rmk7k0mjq3kl55xqbnlip6p99pka7";
+       version = "0.1.0.10";
+       sha256 = "0lks0mgshcsq36aminfbrz524mgn5q02lwln8lli1l54d8bn4x8n";
        libraryHaskellDepends = [
          base template-haskell time timezone-olson timezone-series
        ];
@@ -272170,8 +275377,8 @@ self: {
      }:
      mkDerivation {
        pname = "tls";
-       version = "1.5.5";
-       sha256 = "0j1rxxq5lzs584nk19610mk7mmsqqkgfxw2qj74ibb1zsk7baj4a";
+       version = "1.5.6";
+       sha256 = "0mr5p1h161bdhnkfx4mvlk1hqq89z0fh7z37jgrbx4i8aa61cs96";
        libraryHaskellDepends = [
          asn1-encoding asn1-types async base bytestring cereal cryptonite
          data-default-class hourglass memory mtl network transformers x509
@@ -272670,17 +275877,17 @@ self: {
      }) {};
 
   "toilet" = callPackage
-    ({ mkDerivation, base, containers, old-locale, strict, time
-     , transformers, utility-ht
+    ({ mkDerivation, base, containers, strict, time, transformers
+     , utility-ht
      }:
      mkDerivation {
        pname = "toilet";
-       version = "0.0.1";
-       sha256 = "09j6h4rwb6i87223zhbzclns12iyrbdmv0kawd27any5r2hkz63x";
+       version = "0.0.2";
+       sha256 = "0a570jkqgq7g2qrmbmpgx0kiin3gdqhqpdqcmj7psfg8fxvhd7k6";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base containers old-locale strict time transformers utility-ht
+         base containers strict time transformers utility-ht
        ];
        description = "Manage the toilet queue at the IMO";
        license = "GPL";
@@ -273294,8 +276501,8 @@ self: {
     ({ mkDerivation, base, filepath, hspec, profunctors, text }:
      mkDerivation {
        pname = "tophat";
-       version = "1.0.4.0";
-       sha256 = "1hzppwrdqz4l88r33m1gh9kzialjq82m1mhzqzzlsaicy5ps84zw";
+       version = "1.0.5.0";
+       sha256 = "1g8mwf734kc9gkvc8q67jj0bfsh1vi8qxdsr58jax64cxr6vlv95";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base profunctors text ];
@@ -273570,8 +276777,8 @@ self: {
        pname = "toysolver";
        version = "0.7.0";
        sha256 = "1r8z8fg3iyz5cc7cmwv29i7gwdcb789s7p6yklfgmz8w314m83gj";
-       revision = "2";
-       editedCabalFile = "0ccdmmckw9gkqxvr8f8h84m4mybcpbmrv1yv0kvbl1qhrb01ihli";
+       revision = "4";
+       editedCabalFile = "10fq2a4bllhgf566hxv7qhldq7xmmqc19kk968s096ac5myhzc0x";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -273678,8 +276885,8 @@ self: {
      }:
      mkDerivation {
        pname = "tpdb";
-       version = "2.2.0";
-       sha256 = "1hrnfvp49rny9rznnhlhvgw4ffmn9nbbdiknsbwxgjfh1ixir1vf";
+       version = "2.2.2";
+       sha256 = "0061140xvd06nki4r6xh59cqw9v8kl12dqgd8qx7d2kkjw2qvpn8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -273689,7 +276896,7 @@ self: {
        executableHaskellDepends = [ base bytestring ];
        testHaskellDepends = [ base pretty text ];
        description = "Data Type for Rewriting Systems";
-       license = "GPL";
+       license = lib.licenses.gpl3Only;
      }) {};
 
   "tptp" = callPackage
@@ -273832,8 +277039,8 @@ self: {
      }:
      mkDerivation {
        pname = "tracing-control";
-       version = "0.0.6";
-       sha256 = "06hw4199yggvqlg3f1qhf67x8ij3v4kj5l79rhnngsqkpgl1yaww";
+       version = "0.0.7.2";
+       sha256 = "06ac0k90d51lll4l16wg715d50j6cv47jbxy76ifal1qizpr520c";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring case-insensitive containers
          http-client lifted-base monad-control mtl network random stm
@@ -275354,8 +278561,8 @@ self: {
      }:
      mkDerivation {
        pname = "trifecta";
-       version = "2.1.1";
-       sha256 = "1lhzi0xxvilvgjy3yf3f85wfmrks562hhsnl0kg1xwji36rgwp6y";
+       version = "2.1.2";
+       sha256 = "1akx8m6mgskwsbhsf90cxlqjq23jk4pwaxagvm923dpncwrlwfla";
        libraryHaskellDepends = [
          ansi-terminal array base blaze-builder blaze-html blaze-markup
          bytestring charset comonad containers deepseq fingertree ghc-prim
@@ -276319,15 +279526,17 @@ self: {
 
   "turtle" = callPackage
     ({ mkDerivation, ansi-wl-pprint, async, base, bytestring, clock
-     , containers, criterion, directory, doctest, exceptions, foldl
-     , hostname, managed, optional-args, optparse-applicative, process
-     , stm, streaming-commons, system-fileio, system-filepath, temporary
-     , text, time, transformers, unix, unix-compat
+     , containers, directory, doctest, exceptions, foldl, hostname
+     , managed, optional-args, optparse-applicative, process, stm
+     , streaming-commons, system-fileio, system-filepath, tasty-bench
+     , temporary, text, time, transformers, unix, unix-compat
      }:
      mkDerivation {
        pname = "turtle";
-       version = "1.5.22";
-       sha256 = "14lf43b5rxci6p9sy1gkb715m4b1s4rl65swn2qpdqv3h2yvpi4s";
+       version = "1.5.23";
+       sha256 = "02g0a6az01lfikrinx2027zqrp8wyivldwi36s2yqk9a5qm3ap5c";
+       revision = "1";
+       editedCabalFile = "1qzkxl8zhqqcic7dv6l777152zm7vfd33zrqls89s7236c19ki53";
        libraryHaskellDepends = [
          ansi-wl-pprint async base bytestring clock containers directory
          exceptions foldl hostname managed optional-args
@@ -276335,7 +279544,7 @@ self: {
          system-filepath temporary text time transformers unix unix-compat
        ];
        testHaskellDepends = [ base doctest system-filepath temporary ];
-       benchmarkHaskellDepends = [ base criterion text ];
+       benchmarkHaskellDepends = [ base tasty-bench text ];
        description = "Shell programming, Haskell-style";
        license = lib.licenses.bsd3;
        maintainers = with lib.maintainers; [ Gabriel439 ];
@@ -276860,27 +280069,27 @@ self: {
   "twitter-conduit" = callPackage
     ({ mkDerivation, aeson, attoparsec, authenticate-oauth, base
      , bytestring, Cabal, cabal-doctest, conduit, conduit-extra
-     , containers, data-default, doctest, exceptions, ghc-prim, hlint
+     , containers, data-default, deepseq, doctest, exceptions, ghc-prim
      , hspec, hspec-discover, http-client, http-conduit, http-types
      , lens, lens-aeson, resourcet, text, time, transformers
      , twitter-types, twitter-types-lens
      }:
      mkDerivation {
        pname = "twitter-conduit";
-       version = "0.5.1";
-       sha256 = "0xhkxgpcz6fzkc1w69542zk5y58irw33ljmg8bfl3xi722yazvgs";
+       version = "0.6.1";
+       sha256 = "06fbcbx4cyi1m4qvxc16qfn66fnv5lp3naawqf6xw6yj3lczzh6w";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson attoparsec authenticate-oauth base bytestring conduit
-         conduit-extra containers data-default exceptions ghc-prim
+         conduit-extra containers data-default deepseq exceptions ghc-prim
          http-client http-conduit http-types lens lens-aeson resourcet text
          time transformers twitter-types twitter-types-lens
        ];
        testHaskellDepends = [
          aeson attoparsec authenticate-oauth base bytestring conduit
-         conduit-extra containers data-default doctest hlint hspec
-         http-client http-conduit http-types lens lens-aeson resourcet text
-         time twitter-types twitter-types-lens
+         conduit-extra containers data-default doctest hspec http-client
+         http-conduit http-types lens lens-aeson resourcet text time
+         twitter-types twitter-types-lens
        ];
        testToolDepends = [ hspec-discover ];
        description = "Twitter API package with conduit interface and Streaming API support";
@@ -276936,8 +280145,8 @@ self: {
      }:
      mkDerivation {
        pname = "twitter-types";
-       version = "0.10.1";
-       sha256 = "0rz4xq66fckvd6q7qlsz2bgi1df95cs5mksihzjcq9x2axvsz632";
+       version = "0.11.0";
+       sha256 = "04jg21ma0pqx1j0502ascq4nr8dmykzf171ig66563abmkck012i";
        libraryHaskellDepends = [
          aeson base text time unordered-containers
        ];
@@ -276956,8 +280165,8 @@ self: {
      }:
      mkDerivation {
        pname = "twitter-types-lens";
-       version = "0.10.1";
-       sha256 = "07znqqb4lhhzlzvi1nl3m13cnskfakq4pnn52wpn554igxymgvsd";
+       version = "0.11.0";
+       sha256 = "0l0qbpri3ah0xw6k74a5490fsxwisc8h8yip7ikhbsyf0vkqr2wc";
        libraryHaskellDepends = [
          base lens template-haskell text time twitter-types
        ];
@@ -277272,8 +280481,8 @@ self: {
        pname = "type-errors";
        version = "0.2.0.0";
        sha256 = "1d1fi4ij18q39rpibc056mgvly75zqixkba4l8bn307c62f50k8p";
-       revision = "2";
-       editedCabalFile = "1rlhswrkyvhaqhgk2yr9xk49yp196p5fy37hmyni9g7rx1d07qyj";
+       revision = "3";
+       editedCabalFile = "0ig8qd2g8rd5n78039xhbq7n8r514f8kvbh0mgajav2a5lp549s1";
        libraryHaskellDepends = [
          base first-class-families syb template-haskell th-abstraction
        ];
@@ -277561,8 +280770,8 @@ self: {
      }:
      mkDerivation {
        pname = "type-natural";
-       version = "1.1.0.0";
-       sha256 = "0asyjp426931j4ym2qvx5xy9fjyf734sy02gscpd1d0fa8d1xbjm";
+       version = "1.1.0.1";
+       sha256 = "1dzmaia5w59cmq6aivsamklq6ydd72l9y44az1plycmscm0kchiz";
        libraryHaskellDepends = [
          base constraints equational-reasoning ghc ghc-typelits-knownnat
          ghc-typelits-natnormalise ghc-typelits-presburger
@@ -277966,8 +281175,8 @@ self: {
      }:
      mkDerivation {
        pname = "typed-process";
-       version = "0.2.7.0";
-       sha256 = "07iwas0awr9kcfkgd8fqdhaamyrppc1zpa01q3qix3afz0lwwy47";
+       version = "0.2.8.0";
+       sha256 = "1af0g34sws7fppziv7firr9r2wrnly4y6sr9nyqa8bvbbmadly45";
        libraryHaskellDepends = [
          async base bytestring process stm transformers unliftio-core
        ];
@@ -278053,6 +281262,24 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "typed-uuid_0_2_0_0" = callPackage
+    ({ mkDerivation, aeson, autodocodec, base, binary, bytestring
+     , deepseq, hashable, http-api-data, random, text, uuid, validity
+     , validity-uuid
+     }:
+     mkDerivation {
+       pname = "typed-uuid";
+       version = "0.2.0.0";
+       sha256 = "1f97q4vxr30sinbcilhyizhri4gkq68yzw6pnv2dh2bdy1nd2yqk";
+       libraryHaskellDepends = [
+         aeson autodocodec base binary bytestring deepseq hashable
+         http-api-data random text uuid validity validity-uuid
+       ];
+       description = "Phantom-Typed version of UUID";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "typed-wire" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, directory
      , filepath, gitrev, HTF, http-types, mtl, optparse-applicative
@@ -278141,6 +281368,24 @@ self: {
        broken = true;
      }) {};
 
+  "typelet" = callPackage
+    ({ mkDerivation, base, cabal-doctest, containers, ghc
+     , ghc-tcplugin-api, tasty, tasty-hunit, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "typelet";
+       version = "0.1.0.0";
+       sha256 = "0kmidkbdq40bhfz4kqcb81kn2h67vcrl5lrpv3hg3ca79wxnxk2s";
+       isLibrary = true;
+       isExecutable = true;
+       setupHaskellDepends = [ base cabal-doctest ];
+       libraryHaskellDepends = [ base containers ghc ghc-tcplugin-api ];
+       testHaskellDepends = [ base tasty tasty-hunit tasty-quickcheck ];
+       description = "Plugin to faciliate type-level let";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "typelevel" = callPackage
     ({ mkDerivation, base, constraints, convert, exceptions, lens, mtl
      , pretty, pretty-show, primitive, transformers
@@ -279115,8 +282360,8 @@ self: {
      }:
      mkDerivation {
        pname = "unagi-chan";
-       version = "0.4.1.3";
-       sha256 = "15fnk9x4fd2ryp31fjfrwm8k61m3a0qyb95m4065zc0yi0jyacp2";
+       version = "0.4.1.4";
+       sha256 = "1d98a6s7rydjlf2p3jv6j7wglq8ahf8kgcibji5fiy6y0ymz9mnr";
        libraryHaskellDepends = [ atomic-primops base ghc-prim primitive ];
        testHaskellDepends = [
          atomic-primops base containers ghc-prim primitive
@@ -279644,33 +282889,6 @@ self: {
      }:
      mkDerivation {
        pname = "unicode-collation";
-       version = "0.1.3";
-       sha256 = "0nbxkpd29ivdi6vcikbaasffkcz9m2vd4nhv29p6gmvckzmhj7zi";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base binary bytestring containers parsec template-haskell text
-         th-lift-instances
-       ];
-       testHaskellDepends = [
-         base bytestring tasty tasty-hunit tasty-quickcheck text
-         unicode-transforms
-       ];
-       benchmarkHaskellDepends = [
-         base QuickCheck quickcheck-instances tasty-bench text text-icu
-       ];
-       description = "Haskell implementation of the Unicode Collation Algorithm";
-       license = lib.licenses.bsd2;
-     }) {};
-
-  "unicode-collation_0_1_3_1" = callPackage
-    ({ mkDerivation, base, binary, bytestring, containers, parsec
-     , QuickCheck, quickcheck-instances, tasty, tasty-bench, tasty-hunit
-     , tasty-quickcheck, template-haskell, text, text-icu
-     , th-lift-instances, unicode-transforms
-     }:
-     mkDerivation {
-       pname = "unicode-collation";
        version = "0.1.3.1";
        sha256 = "1b04ml07ghfsh9cmp6b0l8c6ywxrn3c4xs7swvlmxx64asmicf3i";
        isLibrary = true;
@@ -279688,15 +282906,14 @@ self: {
        ];
        description = "Haskell implementation of the Unicode Collation Algorithm";
        license = lib.licenses.bsd2;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "unicode-data" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "unicode-data";
-       version = "0.1.0.1";
-       sha256 = "1rxybzbls2l732gj5ql0ccmlzsmcncaw22g0l9bc2ism0i2qf2gz";
+       version = "0.2.0";
+       sha256 = "1vn1kzy49k314gprpi8ls91vs5xrjwwxklzgnxx0krcpjq8zy100";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base ];
@@ -279776,22 +282993,8 @@ self: {
     ({ mkDerivation, base, hspec, QuickCheck }:
      mkDerivation {
        pname = "unicode-show";
-       version = "0.1.0.4";
-       sha256 = "158vnv6d7s1ahm3fr5s8ns585bcds8pf19rsglsyfk33qps3il9i";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base hspec QuickCheck ];
-       description = "print and show in unicode";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "unicode-show_0_1_0_5" = callPackage
-    ({ mkDerivation, base, hspec, QuickCheck }:
-     mkDerivation {
-       pname = "unicode-show";
-       version = "0.1.0.5";
-       sha256 = "0iq2fivi6fclra32y5yqc6p18pd7qlyxb042hkc082pvgmj8b40v";
+       version = "0.1.1.0";
+       sha256 = "1g945vkj75vrm4c3v79c61hlhx3s6q5v0lm92bjzf29r45clnzsi";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec QuickCheck ];
        description = "print and show in unicode";
@@ -279837,23 +283040,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "unicode-transforms_0_3_8" = callPackage
-    ({ mkDerivation, base, bytestring, deepseq, filepath
-     , getopt-generics, ghc-prim, hspec, path, path-io, QuickCheck
-     , split, tasty-bench, text, unicode-data
+  "unicode-transforms_0_4_0" = callPackage
+    ({ mkDerivation, base, bytestring, deepseq, filepath, ghc-prim
+     , hspec, path, path-io, QuickCheck, split, tasty-bench, text
+     , unicode-data
      }:
      mkDerivation {
        pname = "unicode-transforms";
-       version = "0.3.8";
-       sha256 = "1j3dwz3qmak3fyb1p4qzr1rnxch2ydqfp2jizyy4rv425h0smxzl";
+       version = "0.4.0";
+       sha256 = "0m234yhjizl28xm8y08bdhrbni666r7q2z71a8s64lynqk4lzq5k";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring ghc-prim text unicode-data
        ];
        testHaskellDepends = [
-         base deepseq getopt-generics hspec QuickCheck split text
-         unicode-data
+         base deepseq hspec QuickCheck split text unicode-data
        ];
        benchmarkHaskellDepends = [
          base deepseq filepath path path-io tasty-bench text
@@ -280129,6 +283331,24 @@ self: {
        broken = true;
      }) {};
 
+  "unionmount" = callPackage
+    ({ mkDerivation, async, base, bytestring, containers, data-default
+     , directory, filepath, filepattern, fsnotify, lvar, monad-logger
+     , mtl, relude, text, time, unliftio, with-utf8
+     }:
+     mkDerivation {
+       pname = "unionmount";
+       version = "0.1.0.0";
+       sha256 = "05i7bh8dg8bcm8070hxdh8fc2y0l2v25bvsqmbvnlbrlfcijphg6";
+       libraryHaskellDepends = [
+         async base bytestring containers data-default directory filepath
+         filepattern fsnotify lvar monad-logger mtl relude text time
+         unliftio with-utf8
+       ];
+       description = "Union mount filesystem paths into Haskell datastructures";
+       license = lib.licenses.mit;
+     }) {};
+
   "unipatterns" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -280653,6 +283873,8 @@ self: {
        pname = "universe-base";
        version = "1.1.3";
        sha256 = "0lnvjpndqj7kk3f95dmpa62ax0m243h8iy7ghcsd2db4nyczx7f5";
+       revision = "2";
+       editedCabalFile = "1fr7w3qc46aph0xxya8jw1a4gqzvq03f6vpx75pam9ynfndz8gw0";
        libraryHaskellDepends = [
          base containers OneTuple tagged transformers
        ];
@@ -280755,8 +283977,8 @@ self: {
        pname = "universe-some";
        version = "1.2.1";
        sha256 = "0pdvk5qi39d0wg8ac936c1fxs7v7qld2ggpqc9v7xc4pk3xq24bp";
-       revision = "1";
-       editedCabalFile = "1hrb5anm2cp2a8zhhzazxc8zjm2nm8q7zvl1c4shx7arpi1ka3ax";
+       revision = "2";
+       editedCabalFile = "0haz8fprwxx22jg4394p7a6zll8jim2hcb1rjy366vslwlczr03z";
        libraryHaskellDepends = [
          base some template-haskell th-abstraction transformers
          universe-base
@@ -280847,6 +284069,8 @@ self: {
        pname = "unix-compat";
        version = "0.5.3";
        sha256 = "1j75i3dj489rz60ij3nfza774mb7mw33amhdkm10dd0dxabvb4q8";
+       revision = "1";
+       editedCabalFile = "0njyblscnj44gl55rgr66fv9q9camgw9zff93hj3q2d7k49vv726";
        libraryHaskellDepends = [ base unix ];
        description = "Portable POSIX-compatibility layer";
        license = lib.licenses.bsd3;
@@ -281232,8 +284456,8 @@ self: {
      }:
      mkDerivation {
        pname = "unordered-containers";
-       version = "0.2.14.0";
-       sha256 = "0rw8kmg7xjlacmr1hcpin95abkd387awf154s9ran7zg9jllh3x1";
+       version = "0.2.16.0";
+       sha256 = "1vs97x7qzb0n9qwdpi1ffym2yr2rgnlc8nxjrpl4k8b2yay6ikxw";
        libraryHaskellDepends = [ base deepseq hashable ];
        testHaskellDepends = [
          base ChasingBottoms containers hashable HUnit QuickCheck random
@@ -281247,29 +284471,6 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "unordered-containers_0_2_15_0" = callPackage
-    ({ mkDerivation, base, bytestring, ChasingBottoms, containers
-     , deepseq, gauge, hashable, hashmap, HUnit, mtl, QuickCheck, random
-     , test-framework, test-framework-hunit, test-framework-quickcheck2
-     }:
-     mkDerivation {
-       pname = "unordered-containers";
-       version = "0.2.15.0";
-       sha256 = "0s6kmkz0p5iw5bkmbv4fhgd6cb7v8a75wkv7h5acxp52h3qfm4kc";
-       libraryHaskellDepends = [ base deepseq hashable ];
-       testHaskellDepends = [
-         base ChasingBottoms containers hashable HUnit QuickCheck random
-         test-framework test-framework-hunit test-framework-quickcheck2
-       ];
-       benchmarkHaskellDepends = [
-         base bytestring containers deepseq gauge hashable hashmap mtl
-         random
-       ];
-       description = "Efficient hashing-based container types";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-     }) {};
-
   "unordered-containers-rematch" = callPackage
     ({ mkDerivation, base, hashable, hspec, HUnit, rematch
      , unordered-containers
@@ -282596,6 +285797,8 @@ self: {
        pname = "utf8-light";
        version = "0.4.2";
        sha256 = "0rwyc5z331yfnm4hpx0sph6i1zvkd1z10vvglhnp0vc9wy644k0q";
+       revision = "1";
+       editedCabalFile = "08fwf4pchlrmqrk78wijncrkvv0kssl1140xm9cfl7rd2y97cs7n";
        libraryHaskellDepends = [ base bytestring ghc-prim ];
        description = "Unicode";
        license = lib.licenses.bsd3;
@@ -283441,18 +286644,16 @@ self: {
 
   "validated-literals" = callPackage
     ({ mkDerivation, base, bytestring, deepseq, tasty, tasty-hunit
-     , tasty-travis, template-haskell
+     , tasty-travis, template-haskell, th-compat
      }:
      mkDerivation {
        pname = "validated-literals";
-       version = "0.3.0";
-       sha256 = "1k77jp19kl7h4v9hl2jhsmbq8dhzl8z9sgkw1jxx1rblm3fszjx1";
-       revision = "4";
-       editedCabalFile = "16fwvivw1barrgkw7cl2hfgksfhambfmhrwibhi6n8096sj79h0j";
-       libraryHaskellDepends = [ base template-haskell ];
+       version = "0.3.1";
+       sha256 = "0s6ag8wm19qzfhxpz686nsmvrf3lhbq1g5fcck6d97lij559xlvg";
+       libraryHaskellDepends = [ base template-haskell th-compat ];
        testHaskellDepends = [
          base bytestring deepseq tasty tasty-hunit tasty-travis
-         template-haskell
+         template-haskell th-compat
        ];
        description = "Compile-time checking for partial smart-constructors";
        license = lib.licenses.bsd3;
@@ -283478,8 +286679,8 @@ self: {
      }:
      mkDerivation {
        pname = "validation";
-       version = "1.1.1";
-       sha256 = "1dv7azpljdcf7irbnznnz31hq611bn1aj2m6ywghz3hgv835qqak";
+       version = "1.1.2";
+       sha256 = "15hhz2kj6h9zv568bvq79ymck3s3b89fpkasdavbwvyhfyjm5k8x";
        libraryHaskellDepends = [
          assoc base bifunctors deepseq lens semigroupoids semigroups
        ];
@@ -283569,6 +286770,19 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "validity_0_12_0_0" = callPackage
+    ({ mkDerivation, base, hspec }:
+     mkDerivation {
+       pname = "validity";
+       version = "0.12.0.0";
+       sha256 = "03md04q3ymilgc1pssczij392bphmg9ld6aa0fwfwjyjlqjj67fk";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec ];
+       description = "Validity typeclass";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "validity-aeson" = callPackage
     ({ mkDerivation, aeson, base, hspec, validity, validity-scientific
      , validity-text, validity-unordered-containers, validity-vector
@@ -283661,8 +286875,8 @@ self: {
     ({ mkDerivation, base, bytestring, text, validity }:
      mkDerivation {
        pname = "validity-text";
-       version = "0.3.1.1";
-       sha256 = "1sdcivm7mbvi71zkm36g95wrb0y8fzhrnryp01m2wpmhffk1z5cf";
+       version = "0.3.1.2";
+       sha256 = "00sfiykazz2iwwr43lxl0q6dn03jpf515k0s8hymqpychmflyqhi";
        libraryHaskellDepends = [ base bytestring text validity ];
        description = "Validity instances for text";
        license = lib.licenses.mit;
@@ -283679,6 +286893,18 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "validity-time_0_5_0_0" = callPackage
+    ({ mkDerivation, base, time, validity }:
+     mkDerivation {
+       pname = "validity-time";
+       version = "0.5.0.0";
+       sha256 = "1ik3syh9hd7jcfydp7fj8rghxl6zjs6lcm1f0xadm0czw6gb82k1";
+       libraryHaskellDepends = [ base time validity ];
+       description = "Validity instances for time";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "validity-unordered-containers" = callPackage
     ({ mkDerivation, base, hashable, unordered-containers, validity }:
      mkDerivation {
@@ -284353,6 +287579,8 @@ self: {
        pname = "vector";
        version = "0.12.3.1";
        sha256 = "0dczbcisxhhix859dng5zhxkn3xvlnllsq60apqzvmyl5g056jpv";
+       revision = "1";
+       editedCabalFile = "02284cr5f5ghbz18shn8g6jvsgfs0dwgf81kxvf59r2wks8i00h4";
        libraryHaskellDepends = [ base deepseq ghc-prim primitive ];
        testHaskellDepends = [
          base base-orphans HUnit primitive QuickCheck random tasty
@@ -284562,8 +287790,8 @@ self: {
      }:
      mkDerivation {
        pname = "vector-extras";
-       version = "0.2.1.1";
-       sha256 = "0q5wm0hfk84hr9rgbb084d222ys0k1hab5cydwnnrpb7wy42199p";
+       version = "0.2.3";
+       sha256 = "13iiy6jdbp4fgdxhm7jhkr1hqilgmzwmfjyjna6a64vb20vr9xyr";
        libraryHaskellDepends = [
          base containers deferred-folds foldl hashable unordered-containers
          vector
@@ -284904,18 +288132,6 @@ self: {
     ({ mkDerivation, base, data-default, template-haskell, vector }:
      mkDerivation {
        pname = "vector-th-unbox";
-       version = "0.2.1.9";
-       sha256 = "0jbzm31d91kxn8m0h6iplj54h756q6f4zzdrnb2w7rzz5zskgqyl";
-       libraryHaskellDepends = [ base template-haskell vector ];
-       testHaskellDepends = [ base data-default vector ];
-       description = "Deriver for Data.Vector.Unboxed using Template Haskell";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "vector-th-unbox_0_2_2" = callPackage
-    ({ mkDerivation, base, data-default, template-haskell, vector }:
-     mkDerivation {
-       pname = "vector-th-unbox";
        version = "0.2.2";
        sha256 = "0j81m09xxv24zziv0nanfppckzmas5184jr3npjhc9w49r3cm94a";
        revision = "1";
@@ -284924,7 +288140,6 @@ self: {
        testHaskellDepends = [ base data-default vector ];
        description = "Deriver for Data.Vector.Unboxed using Template Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "vectortiles" = callPackage
@@ -284980,8 +288195,8 @@ self: {
      }:
      mkDerivation {
        pname = "venzone";
-       version = "1.1.0.0";
-       sha256 = "19ivc72skzl8h06h5bfl6lfnph3knd9zz7842rsarjknbmszrgqg";
+       version = "1.1.0.1";
+       sha256 = "0z03vvbd2p4qs0fkzfnkhfz7lvslcg0kz5n61j67n0323yk394xm";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -285205,8 +288420,8 @@ self: {
      }:
      mkDerivation {
        pname = "versions";
-       version = "5.0.0";
-       sha256 = "1rfxjivdsaqc6w7dfqdycy3a81rsajvpfyi5si9ssc0w3ljfsbzr";
+       version = "5.0.1";
+       sha256 = "0m7c0iiws3j716a5wksv9dxfcsz6dlvpw147m7ah2b8pfjwqg48c";
        libraryHaskellDepends = [
          base deepseq hashable megaparsec parser-combinators text
        ];
@@ -285228,8 +288443,8 @@ self: {
      }:
      mkDerivation {
        pname = "vessel";
-       version = "0.1.0.0";
-       sha256 = "0j6i2xgb9yahyw5ab15gg5qy5dphkblkcn1p629dm800759njy1s";
+       version = "0.2.0.0";
+       sha256 = "04zdcl4pbqf4b9nvgp7dnv91i1mbm60lnldxijgpnmlhrrff2dd4";
        libraryHaskellDepends = [
          aeson aeson-gadt-th base bifunctors constraints constraints-extras
          containers dependent-map dependent-monoidal-map dependent-sum
@@ -285359,6 +288574,8 @@ self: {
        pname = "vgrep";
        version = "0.2.3.0";
        sha256 = "1zzzmvhqcvgvni96b1zzqjwpmlncsjd08sqllrbp4d4a7j43b9g5";
+       revision = "1";
+       editedCabalFile = "1avwygy2xrh9z1dj5k4gb0r1pwrrljd9l1hgpc8y4h4w97hxwbi3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -285873,6 +289090,8 @@ self: {
        pname = "visualize-cbn";
        version = "0.1.0.2";
        sha256 = "1vlidljhy0ykflgf7k8gawlqazcrkvcs7r8wbv7h9x6wfnx0w334";
+       revision = "1";
+       editedCabalFile = "04cb9j0m83g6qix3lwh62l56kk8qvpzsv3ia8yw43aw9zi4jnrc3";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -286385,8 +289604,8 @@ self: {
      }:
      mkDerivation {
        pname = "vulkan";
-       version = "3.13.2";
-       sha256 = "1bbqz5xpd3jw71m70pdg6nifi63m0s42jvnldf55nj2ms0mzjmhr";
+       version = "3.14.2";
+       sha256 = "0zd6zki6hx0bhqvy20yhvd3597nxaasl2665s7m64bi02qjgjwsj";
        libraryHaskellDepends = [ base bytestring transformers vector ];
        libraryPkgconfigDepends = [ vulkan ];
        testHaskellDepends = [
@@ -286418,8 +289637,8 @@ self: {
      }:
      mkDerivation {
        pname = "vulkan-utils";
-       version = "0.5.3";
-       sha256 = "16p1yn72il988phw4h8ixs0p2dgk96xg26yp9lgbpri1l0da8kiq";
+       version = "0.5.4";
+       sha256 = "1mkx2h7yjmq8djgg1pi3vlx2pq4armasa1hvam955p3x09vwbisk";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base bytestring containers dependent-map dependent-sum extra
@@ -287181,8 +290400,8 @@ self: {
      }:
      mkDerivation {
        pname = "wai-logger";
-       version = "2.3.6";
-       sha256 = "0hbm7if28p6qa36cgpyq6i569275si53z9gsl2g1z8x09z3xiyz2";
+       version = "2.3.7";
+       sha256 = "0kp2bg8s2vz9lxa7hmd7xv3jlsz1dmfsgkb405x9sz92x6jb521f";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base byteorder bytestring fast-logger http-types network wai
@@ -288264,8 +291483,8 @@ self: {
      }:
      mkDerivation {
        pname = "wai-session-redis";
-       version = "0.1.0.3";
-       sha256 = "1ikm5i4cvx2wzlq5ij7aqk9c37jpnw9c0dl0xdw3c4hqsnjnb5yj";
+       version = "0.1.0.4";
+       sha256 = "15qmv4ivp9zcz90p5k0lbcfv7pq5rszalvc9gh191ngmnl2z0w5g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -288616,8 +291835,8 @@ self: {
      }:
      mkDerivation {
        pname = "warp";
-       version = "3.3.17";
-       sha256 = "0v54ca3wpa79gdyiikwhbv9h8b5vr3d60piq3ndb2v7s7fi1qpm0";
+       version = "3.3.18";
+       sha256 = "1m93s3p2zz00fdgkisl6sbnqnc6vvq0vz997i5y4mk9a3ssjflqw";
        libraryHaskellDepends = [
          array auto-update base bsb-http-chunked bytestring case-insensitive
          containers ghc-prim hashable http-date http-types http2 iproute
@@ -288782,29 +292001,22 @@ self: {
      }) {};
 
   "wasm" = callPackage
-    ({ mkDerivation, alex, array, base, base64-bytestring, bytestring
-     , cereal, containers, deepseq, directory, filepath, happy, ieee754
-     , mtl, optparse-applicative, tasty, tasty-hunit, text, transformers
-     , utf8-string, vector
+    ({ mkDerivation, alex, array, base, bytestring, cereal, containers
+     , deepseq, directory, filepath, happy, ieee754, mtl, primitive
+     , tasty, tasty-hunit, text, transformers, utf8-string, vector
      }:
      mkDerivation {
        pname = "wasm";
-       version = "1.0.0";
-       sha256 = "0l5llqc05fr7zkva3ll8hy0qxx19r17qs6zcp098yz6vsnkavzx6";
-       isLibrary = true;
-       isExecutable = true;
+       version = "1.1.1";
+       sha256 = "004vv18wikxwjdx647grn95hj77h9l5dvsz6iprfy2pbycd40wij";
        libraryHaskellDepends = [
-         array base bytestring cereal containers deepseq ieee754 mtl text
-         transformers utf8-string vector
+         array base bytestring cereal containers deepseq ieee754 mtl
+         primitive text transformers utf8-string vector
        ];
        libraryToolDepends = [ alex happy ];
-       executableHaskellDepends = [
-         base base64-bytestring bytestring optparse-applicative
-       ];
        testHaskellDepends = [
          base bytestring directory filepath mtl tasty tasty-hunit text
        ];
-       testToolDepends = [ alex happy ];
        description = "WebAssembly Language Toolkit and Interpreter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
@@ -290749,8 +293961,8 @@ self: {
        pname = "wide-word";
        version = "0.1.1.2";
        sha256 = "10sj7nca2sba74bkiicnp95xrfq2j1al93ggw3z24982nm9x3j8r";
-       revision = "2";
-       editedCabalFile = "09nr9ni9vs38ldzrx3vmlm6dr2avmwx6p9wlaml0nhr6sh4lbjsr";
+       revision = "3";
+       editedCabalFile = "15k9saqnib9vc9s4dsvamvnb3m6cjmnlwsy1brwfnd90vzzxmwjz";
        libraryHaskellDepends = [ base deepseq primitive ];
        testHaskellDepends = [
          base bytestring ghc-prim hedgehog primitive QuickCheck
@@ -290845,8 +294057,8 @@ self: {
      }:
      mkDerivation {
        pname = "wild-bind";
-       version = "0.1.2.7";
-       sha256 = "1vp88124shp9f79wfrdkp964pfmyzhsg3j718bkqrpgw5wbnwds0";
+       version = "0.1.2.8";
+       sha256 = "1ag0lwh5pii8z356sii2zm2i7qyk9q9j7ivc3x0fkvz6p5gk1aj1";
        libraryHaskellDepends = [
          base containers semigroups text transformers
        ];
@@ -290898,8 +294110,8 @@ self: {
      }:
      mkDerivation {
        pname = "wild-bind-x11";
-       version = "0.2.0.13";
-       sha256 = "0fs8k2kfzm6qq9xy35278xprgq7vf0v4qz7q0gz8qv480hffccc5";
+       version = "0.2.0.14";
+       sha256 = "0qxzv4xvqqm7xcz17a3h1pgc3g84dp3676vb40yi9dfxdwag3xxs";
        libraryHaskellDepends = [
          base containers fold-debounce mtl semigroups stm text transformers
          wild-bind X11
@@ -291145,8 +294357,8 @@ self: {
      }:
      mkDerivation {
        pname = "witch";
-       version = "0.3.4.0";
-       sha256 = "0ykdd47kfan9zr656l6q3cmp3npxq44ykjci2q51bphlawiwh496";
+       version = "0.3.4.1";
+       sha256 = "12nrikciqg85lnkncdibs65z0psn93n68ljy1gvdiaxcbxzydswp";
        libraryHaskellDepends = [
          base bytestring containers template-haskell text time
        ];
@@ -291188,8 +294400,8 @@ self: {
      }:
      mkDerivation {
        pname = "with-utf8";
-       version = "1.0.2.2";
-       sha256 = "04ymb90yli9sbdl750yh0nvpn6crnrb2axhx8hrswz5g86cabcmq";
+       version = "1.0.2.3";
+       sha256 = "0ddhnnp48ndngwd81agxajig533r39wy31l49znpjqy9d1ccw1q7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base safe-exceptions text ];
@@ -291231,8 +294443,8 @@ self: {
        pname = "witherable";
        version = "0.4.2";
        sha256 = "0121ic4xkv3k568j23zp22a5lrv0k11h94fq7cbijd18fjr2n3br";
-       revision = "1";
-       editedCabalFile = "1mwmnc4pdsw0v8p9bh8n49xjjmbyf5bd0kvlg970iyq3cqik546f";
+       revision = "2";
+       editedCabalFile = "1ljnv5xf6w7x58akj0a0yw16j63jkka0dvfvmjqwbn76aqg3pzc1";
        libraryHaskellDepends = [
          base base-orphans containers hashable indexed-traversable
          indexed-traversable-instances transformers unordered-containers
@@ -291479,6 +294691,8 @@ self: {
        pname = "wl-pprint-text";
        version = "1.2.0.1";
        sha256 = "030ckgzz14sv2c317g4j5g68hyq9xi40cmv0apwclw6sc6xgsvly";
+       revision = "1";
+       editedCabalFile = "0yy27q99hmkf8amy0gfrh2xgwa22nb294p2fvqawjbpwxa2x1qxb";
        libraryHaskellDepends = [ base base-compat text ];
        description = "A Wadler/Leijen Pretty Printer for Text values";
        license = lib.licenses.bsd3;
@@ -291700,6 +294914,8 @@ self: {
        pname = "word16";
        version = "0.1.0.0";
        sha256 = "0z2nabnh7b42bl7hqy2iw68a1gxay26pgsid7m4hs8s2d7cghndx";
+       revision = "1";
+       editedCabalFile = "0vnjz4rxg062r306ycjlrxk6s4823gwiv8dcq2yn66rxif79ax5a";
        libraryHaskellDepends = [ base bytestring template-haskell text ];
        testHaskellDepends = [ base hspec ];
        testToolDepends = [ hspec-discover ];
@@ -292828,6 +296044,23 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "wuerfelschlange" = callPackage
+    ({ mkDerivation, base, comfort-array, containers, lapack
+     , netlib-ffi, utility-ht
+     }:
+     mkDerivation {
+       pname = "wuerfelschlange";
+       version = "0.1";
+       sha256 = "1vgz6mz0cxc4hgp80v51qac306yikgixqwv1zcsjcnrmnz2qqy44";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base comfort-array containers lapack netlib-ffi utility-ht
+       ];
+       description = "Code for the dice chain problem";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "wumpus-basic" = callPackage
     ({ mkDerivation, base, containers, directory, filepath
      , vector-space, wumpus-core
@@ -292913,8 +296146,8 @@ self: {
      }:
      mkDerivation {
        pname = "wuss";
-       version = "1.1.18";
-       sha256 = "0idxk1q0gsh1hq56w8jxnsb58p8z8d45qgj6zqzsszlccwzgr24f";
+       version = "1.1.19";
+       sha256 = "1i7y6kqynbc5qbl091ihdfn9ak8ny8rdp83svl06m6ijvphjqskq";
        libraryHaskellDepends = [
          base bytestring connection network websockets
        ];
@@ -293262,8 +296495,8 @@ self: {
      }:
      mkDerivation {
        pname = "x86-64bit";
-       version = "0.4.6.1";
-       sha256 = "155ii89a3qjjb1crbps8h41sd9wm5b2qamhw8gpbmywshk9pnd87";
+       version = "0.4.6.2";
+       sha256 = "117r80i4xgjn9naxffgz871i7cclxjr7m0llfjkgwgqd01sqjdqi";
        libraryHaskellDepends = [ base deepseq monads-tf tardis vector ];
        testHaskellDepends = [
          base deepseq monads-tf QuickCheck tardis vector
@@ -294281,8 +297514,8 @@ self: {
      }:
      mkDerivation {
        pname = "xml-optics";
-       version = "0.1.0";
-       sha256 = "01sa1hk87aw32wafxxnvnljazi78bnishpmk5k77p28jmhpa1gn8";
+       version = "0.2.0";
+       sha256 = "1faxprzgql8kbji7ip53dn3xcxwhbqzgjjyabf5dmcfq98kv87mk";
        libraryHaskellDepends = [
          base containers optics-core text xml-conduit
        ];
@@ -295073,6 +298306,8 @@ self: {
        pname = "xmonad-extras";
        version = "0.17.0";
        sha256 = "0kkwng84hp19vc9nw97y77n3hsg9scn0c9fa1ivf4r9s5x3p6flx";
+       revision = "1";
+       editedCabalFile = "1ivm1nncg8qa5ww1kgk1d8zdawniz83ab5s2dj0hbcxffymgxp0k";
        configureFlags = [
          "-f-with_hlist" "-fwith_parsec" "-fwith_split"
        ];
@@ -296246,20 +299481,23 @@ self: {
 
   "yaml-streamly" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base-compat, bytestring
-     , containers, directory, filepath, hspec, hspec-discover, HUnit
-     , libyaml-streamly, mockery, mtl, raw-strings-qq, safe-exceptions
-     , scientific, streamly, template-haskell, temporary, text
-     , transformers, unordered-containers, vector
+     , containers, criterion, deepseq, directory, filepath, hspec
+     , hspec-discover, HUnit, libyaml-streamly, megaparsec, mockery, mtl
+     , raw-strings-qq, safe-exceptions, scientific, streamly, strict
+     , template-haskell, temporary, text, transformers
+     , unordered-containers, vector, versions
      }:
      mkDerivation {
        pname = "yaml-streamly";
-       version = "0.12.0";
-       sha256 = "1jvvj1g20n8v7rnbvqgsvqm7l4nnh97ibkvb2zkj2wskir0l00mc";
+       version = "0.12.1";
+       sha256 = "1rcv4y9f2p1biiaxh4j1wdq79ba1mi33yn5v6kds20am574ia1hq";
+       revision = "1";
+       editedCabalFile = "18gv1h6h9n8bmysdfb0h9kgifhi3rj9zf055l2dibaw0jixqqs2c";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson attoparsec base bytestring containers directory filepath
-         libyaml-streamly mtl safe-exceptions scientific streamly
+         aeson attoparsec base bytestring containers deepseq directory
+         filepath libyaml-streamly mtl safe-exceptions scientific streamly
          template-haskell text transformers unordered-containers vector
        ];
        testHaskellDepends = [
@@ -296268,6 +299506,10 @@ self: {
          temporary text unordered-containers vector
        ];
        testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [
+         aeson base bytestring containers criterion deepseq directory
+         filepath megaparsec strict temporary text versions
+       ];
        description = "Support for parsing and rendering YAML documents";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -296310,8 +299552,8 @@ self: {
      }:
      mkDerivation {
        pname = "yaml-unscrambler";
-       version = "0.1.0.3";
-       sha256 = "1n8q5dsvs6sh2gzs24m49cz5pg1pavn9sma4fk5jizrjrabik4sj";
+       version = "0.1.0.5";
+       sha256 = "07h0mlj929ngp4nm89yd7a6g68ixh0271i7d3jq6wg6j06pck4cz";
        libraryHaskellDepends = [
          acc attoparsec attoparsec-data attoparsec-time base base64
          bytestring conduit containers foldl hashable libyaml mtl scientific
@@ -297108,8 +300350,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-auth";
-       version = "1.6.10.4";
-       sha256 = "01s5svba45g0d12cz8kc8lvdw18jfhjxr7yk69cf5157qg0f2czv";
+       version = "1.6.10.5";
+       sha256 = "11nywgjnivbfrbn8mg3lfr8r8lfpygn30vhnn0bzy9pa07nvgxnz";
        libraryHaskellDepends = [
          aeson authenticate base base16-bytestring base64-bytestring binary
          blaze-builder blaze-html blaze-markup bytestring conduit
@@ -297461,6 +300703,55 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "yesod-auth-oidc" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring, blaze-html, broch
+     , bytestring, classy-prelude, classy-prelude-yesod, containers
+     , cryptonite, directory, email-validate, fast-logger, hspec
+     , hspec-discover, http-client, http-conduit, http-types, jose-jwt
+     , lens, lens-regex-pcre, memory, monad-logger, oidc-client
+     , persistent, persistent-sqlite, postgresql-simple, reroute
+     , resource-pool, shakespeare, sqlite-simple, text, time
+     , unordered-containers, wai-app-static, wai-extra, warp, yesod
+     , yesod-auth, yesod-core, yesod-form, yesod-persistent, yesod-test
+     }:
+     mkDerivation {
+       pname = "yesod-auth-oidc";
+       version = "0.1.0";
+       sha256 = "1kxki50zwyqblpglm8rgmhvf8rm0fr38vzygigxpky4qaraqxpk6";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base base64-bytestring classy-prelude-yesod cryptonite
+         http-client jose-jwt oidc-client shakespeare text time
+         unordered-containers yesod-auth yesod-core yesod-form
+       ];
+       executableHaskellDepends = [
+         aeson base base64-bytestring blaze-html broch bytestring
+         classy-prelude classy-prelude-yesod containers cryptonite directory
+         email-validate fast-logger hspec http-client http-conduit
+         http-types jose-jwt lens lens-regex-pcre memory monad-logger
+         oidc-client persistent persistent-sqlite postgresql-simple reroute
+         resource-pool shakespeare sqlite-simple text time
+         unordered-containers wai-app-static wai-extra warp yesod yesod-auth
+         yesod-core yesod-form yesod-persistent yesod-test
+       ];
+       testHaskellDepends = [
+         aeson base base64-bytestring blaze-html broch bytestring
+         classy-prelude classy-prelude-yesod containers cryptonite directory
+         email-validate fast-logger hspec http-client http-conduit
+         http-types jose-jwt lens lens-regex-pcre memory monad-logger
+         oidc-client persistent persistent-sqlite postgresql-simple reroute
+         resource-pool shakespeare sqlite-simple text time
+         unordered-containers wai-app-static wai-extra warp yesod yesod-auth
+         yesod-core yesod-form yesod-persistent yesod-test
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "A yesod-auth plugin for multi-tenant SSO via OpenID Connect";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {broch = null;};
+
   "yesod-auth-pam" = callPackage
     ({ mkDerivation, base, hamlet, pam, text, yesod-auth, yesod-core
      , yesod-form
@@ -298682,16 +301973,22 @@ self: {
 
   "yesod-routes-flow" = callPackage
     ({ mkDerivation, attoparsec, base, classy-prelude, containers
-     , system-fileio, system-filepath, text, yesod-core
+     , hspec, hspec-expectations, semigroups, shakespeare, system-fileio
+     , system-filepath, text, yesod-core
      }:
      mkDerivation {
        pname = "yesod-routes-flow";
-       version = "2.0";
-       sha256 = "0brfc4kcqj8lvlx7s5nyzsipyi71yxcy6r9xrnhd6q36i2vb6mgq";
+       version = "3.0.0.1";
+       sha256 = "18pw4m7dbj2j35frpl08r940sibdbwl8mzw3c3jgrzxb5ahj6p1w";
        libraryHaskellDepends = [
          attoparsec base classy-prelude containers system-fileio
          system-filepath text yesod-core
        ];
+       testHaskellDepends = [
+         attoparsec base classy-prelude containers hspec hspec-expectations
+         semigroups shakespeare system-fileio system-filepath text
+         yesod-core
+       ];
        description = "Generate Flow routes for Yesod";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
@@ -299721,8 +303018,8 @@ self: {
        pname = "yoctoparsec";
        version = "0.1.0.0";
        sha256 = "0p9kw60glcgrjfx04x3innn3rqnh12yrv4wh0a0fivcx8b9kj1yp";
-       revision = "4";
-       editedCabalFile = "00icvzsb8l70w5dcy0kkxrg0hpq273r8zyy6cx6hscpzgck090jf";
+       revision = "5";
+       editedCabalFile = "1xf2haxw974zsnwx5dqflqq736i7cfz1mqfpfkkggsnfx86d5gg0";
        libraryHaskellDepends = [ base free mtl ];
        description = "A truly tiny monadic parsing library";
        license = lib.licenses.mit;
@@ -300306,8 +303603,8 @@ self: {
      }:
      mkDerivation {
        pname = "zeolite-lang";
-       version = "0.19.0.0";
-       sha256 = "1qhmc55b5a5vvgwskp0lg4rq1vmsy9hb6h4cplb457cp53d329s6";
+       version = "0.22.0.0";
+       sha256 = "1569qdpy2llvi4cvbmya89ll21rjjwbzxhm0f639aaaxal21szj5";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -300981,8 +304278,8 @@ self: {
      }:
      mkDerivation {
        pname = "zippers";
-       version = "0.3.1";
-       sha256 = "17z1zi9zd6a8g7sp4zyimgwdvhjj27hj4znbm4ps0kp73gadb953";
+       version = "0.3.2";
+       sha256 = "0n85mnp3mv8qwk3wmmm2wpc3j2l4q2fb0gbzb5il3nrd0p42xjld";
        libraryHaskellDepends = [
          base fail indexed-traversable lens profunctors semigroupoids
          semigroups
@@ -301346,8 +304643,8 @@ self: {
      }:
      mkDerivation {
        pname = "zoovisitor";
-       version = "0.1.5.0";
-       sha256 = "0sksa3sjgd2yg2cj6vr9ssk52zlhap45c93cwslk3q788c8krr35";
+       version = "0.1.7.0";
+       sha256 = "0g9881llwb7arv4m3klc69lhzlwbdb7wrgv7418qcl2a8nmvp4cb";
        libraryHaskellDepends = [ base Z-Data Z-IO ];
        librarySystemDepends = [ zookeeper_mt ];
        testHaskellDepends = [ async base hspec uuid Z-Data ];
diff --git a/pkgs/development/haskell-modules/lib/compose.nix b/pkgs/development/haskell-modules/lib/compose.nix
index d84c804272dbe..a831a83a15f55 100644
--- a/pkgs/development/haskell-modules/lib/compose.nix
+++ b/pkgs/development/haskell-modules/lib/compose.nix
@@ -121,7 +121,10 @@ rec {
   /* doDistribute enables the distribution of binaries for the package
      via hydra.
    */
-  doDistribute = overrideCabal (drv: { hydraPlatforms = drv.platforms or ["i686-linux" "x86_64-linux" "x86_64-darwin"]; });
+  doDistribute = overrideCabal (drv: {
+    # lib.platforms.all is the default value for platforms (since GHC can cross-compile)
+    hydraPlatforms = drv.platforms or lib.platforms.all;
+  });
   /* dontDistribute disables the distribution of binaries for the package
      via hydra.
    */
@@ -285,7 +288,11 @@ rec {
     enableLibraryProfiling = false;
     isLibrary = false;
     doHaddock = false;
-    postFixup = "rm -rf $out/lib $out/nix-support $out/share/doc";
+    postFixup = drv.postFixup or "" + ''
+
+      # Remove every directory which could have links to other store paths.
+      rm -rf $out/lib $out/nix-support $out/share/doc
+    '';
   });
 
   /* Build a source distribution tarball instead of using the source files
diff --git a/pkgs/development/haskell-modules/patches/graphviz-hardcode-graphviz-store-path.patch b/pkgs/development/haskell-modules/patches/graphviz-hardcode-graphviz-store-path.patch
new file mode 100644
index 0000000000000..f0331e3a2b60b
--- /dev/null
+++ b/pkgs/development/haskell-modules/patches/graphviz-hardcode-graphviz-store-path.patch
@@ -0,0 +1,40 @@
+diff --git a/Data/GraphViz/Commands.hs b/Data/GraphViz/Commands.hs
+index 20e7dbe..514c29d 100644
+--- a/Data/GraphViz/Commands.hs
++++ b/Data/GraphViz/Commands.hs
+@@ -63,14 +63,14 @@ import           System.IO        (Handle, hPutStrLn, hSetBinaryMode, stderr)
+ -- -----------------------------------------------------------------------------
+ 
+ showCmd           :: GraphvizCommand -> String
+-showCmd Dot       = "dot"
+-showCmd Neato     = "neato"
+-showCmd TwoPi     = "twopi"
+-showCmd Circo     = "circo"
+-showCmd Fdp       = "fdp"
+-showCmd Sfdp      = "sfdp"
+-showCmd Osage     = "osage"
+-showCmd Patchwork = "patchwork"
++showCmd Dot       = "@graphviz@/bin/dot"
++showCmd Neato     = "@graphviz@/bin/neato"
++showCmd TwoPi     = "@graphviz@/bin/twopi"
++showCmd Circo     = "@graphviz@/bin/circo"
++showCmd Fdp       = "@graphviz@/bin/fdp"
++showCmd Sfdp      = "@graphviz@/bin/sfdp"
++showCmd Osage     = "@graphviz@/bin/osage"
++showCmd Patchwork = "@graphviz@/bin/patchwork"
+ 
+ -- | The default command for directed graphs.
+ dirCommand :: GraphvizCommand
+@@ -312,8 +312,11 @@ runGraphvizCanvas' d = runGraphvizCanvas (commandFor d) d
+ 
+ -- | Is the Graphviz suite of tools installed?  This is determined by
+ --   whether @dot@ is available in the @PATH@.
++--
++--   Note: With nixpkgs, this will always return 'True' as graphviz'
++--   store paths are hardcoded instead of looking at @PATH@.
+ isGraphvizInstalled :: IO Bool
+-isGraphvizInstalled = liftM isJust . findExecutable $ showCmd Dot
++isGraphvizInstalled = pure True -- :)
+ 
+ -- | If Graphviz does not seem to be available, print the provided
+ --   error message and then exit fatally.
diff --git a/pkgs/development/haskell-modules/patches/xmonad_0_17_0-nix.patch b/pkgs/development/haskell-modules/patches/xmonad_0_17_0-nix.patch
new file mode 100644
index 0000000000000..e313aed69063a
--- /dev/null
+++ b/pkgs/development/haskell-modules/patches/xmonad_0_17_0-nix.patch
@@ -0,0 +1,34 @@
+diff --git a/src/XMonad/Core.hs b/src/XMonad/Core.hs
+index 46a0939..92af53d 100644
+--- a/src/XMonad/Core.hs
++++ b/src/XMonad/Core.hs
+@@ -46,6 +46,7 @@ import Data.Traversable (for)
+ import Data.Time.Clock (UTCTime)
+ import Data.Default.Class
+ import Data.List (isInfixOf)
++import System.Environment (lookupEnv)
+ import System.FilePath
+ import System.IO
+ import System.Info
+@@ -458,7 +459,8 @@ xfork x = io . forkProcess . finally nullStdin $ do
+ -- | Use @xmessage@ to show information to the user.
+ xmessage :: MonadIO m => String -> m ()
+ xmessage msg = void . xfork $ do
+-    executeFile "xmessage" True
++    xmessageBin <- fromMaybe "xmessage" <$> liftIO (lookupEnv "XMONAD_XMESSAGE")
++    executeFile xmessageBin True
+         [ "-default", "okay"
+         , "-xrm", "*international:true"
+         , "-xrm", "*fontSet:-*-fixed-medium-r-normal-*-18-*-*-*-*-*-*-*,-*-fixed-*-*-*-*-18-*-*-*-*-*-*-*,-*-*-*-*-*-*-18-*-*-*-*-*-*-*"
+@@ -654,8 +656,9 @@ compile dirs method =
+         bracket (openFile (errFileName dirs) WriteMode) hClose $ \err -> do
+             let run = runProc (cfgDir dirs) err
+             case method of
+-                CompileGhc ->
+-                    run "ghc" ghcArgs
++                CompileGhc -> do
++                    ghc <- fromMaybe "ghc" <$> (lookupEnv "NIX_GHC")
++                    run ghc ghcArgs
+                 CompileStackGhc stackYaml ->
+                     run "stack" ["build", "--silent", "--stack-yaml", stackYaml] .&&.
+                     run "stack" ("ghc" : "--stack-yaml" : stackYaml : "--" : ghcArgs)
diff --git a/pkgs/development/haskell-modules/with-packages-wrapper.nix b/pkgs/development/haskell-modules/with-packages-wrapper.nix
index fdcd40fc99b0e..e5fe60a0ae5c2 100644
--- a/pkgs/development/haskell-modules/with-packages-wrapper.nix
+++ b/pkgs/development/haskell-modules/with-packages-wrapper.nix
@@ -1,5 +1,8 @@
 { lib, stdenv, ghc, llvmPackages, packages, symlinkJoin, makeWrapper
-, withLLVM ? !(stdenv.hostPlatform.isx86_64 || stdenv.hostPlatform.isPowerPC)
+# GHC will have LLVM available if necessary for the respective target,
+# so useLLVM only needs to be changed if -fllvm is to be used for a
+# platform that has NCG support
+, useLLVM ? false
 , postBuild ? ""
 , ghcLibdir ? null # only used by ghcjs, when resolving plugins
 }:
@@ -50,7 +53,7 @@ let
                   ([ llvmPackages.llvm ]
                    ++ lib.optional stdenv.targetPlatform.isDarwin llvmPackages.clang);
 in
-if paths == [] && !withLLVM then ghc else
+if paths == [] && !useLLVM then ghc else
 symlinkJoin {
   # this makes computing paths from the name attribute impossible;
   # if such a feature is needed, the real compiler name should be saved
@@ -73,7 +76,7 @@ symlinkJoin {
           ${lib.optionalString (ghc.isGhcjs or false)
             ''--set NODE_PATH "${ghc.socket-io}/lib/node_modules"''
           } \
-          ${lib.optionalString withLLVM ''--prefix "PATH" ":" "${llvm}"''}
+          ${lib.optionalString useLLVM ''--prefix "PATH" ":" "${llvm}"''}
       fi
     done
 
diff --git a/pkgs/development/idris-modules/build-idris-package.nix b/pkgs/development/idris-modules/build-idris-package.nix
index ac0555636be0b..7869c2706999b 100644
--- a/pkgs/development/idris-modules/build-idris-package.nix
+++ b/pkgs/development/idris-modules/build-idris-package.nix
@@ -36,9 +36,10 @@ stdenv.mkDerivation ({
   # Some packages use the style
   # opts = -i ../../path/to/package
   # rather than the declarative pkgs attribute so we have to rewrite the path.
-  postPatch = ''
+  patchPhase = ''
     runHook prePatch
     sed -i ${ipkgName}.ipkg -e "/^opts/ s|-i \\.\\./|-i ${idris-with-packages}/libs/|g"
+    runHook postPatch
   '';
 
   buildPhase = ''
diff --git a/pkgs/development/interpreters/alda/default.nix b/pkgs/development/interpreters/alda/default.nix
index 96d4207dbe8f8..ec46a5e3923d8 100644
--- a/pkgs/development/interpreters/alda/default.nix
+++ b/pkgs/development/interpreters/alda/default.nix
@@ -1,20 +1,34 @@
-{ lib, stdenv, fetchurl, jre }:
+{ lib, stdenv, fetchurl, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
   pname = "alda";
-  version = "1.5.0";
+  version = "2.0.6";
 
-  src = fetchurl {
-    url = "https://github.com/alda-lang/alda/releases/download/${version}/alda";
-    sha256 = "sha256-OHbOsgYN87ThU7EgjCgxADnOv32qIi+7XwDwcW0dmV0=";
+  src_alda = fetchurl {
+    url = "https://alda-releases.nyc3.digitaloceanspaces.com/${version}/client/linux-amd64/alda";
+    sha256 = "1078hywl3gim5wfgxb0xwbk1dn80ls3i7y33n76qsdd4b0x0sn7i";
+  };
+
+  src_player = fetchurl {
+    url = "https://alda-releases.nyc3.digitaloceanspaces.com/${version}/player/non-windows/alda-player";
+    sha256 = "1g7k2qnh4vcw63604z7zbvhbpn7l1v3m9mx4j4vywfq6qar1r6ck";
   };
 
   dontUnpack = true;
 
-  installPhase = ''
-    install -Dm755 $src $out/bin/alda
-    sed -i -e '1 s!java!${jre}/bin/java!' $out/bin/alda
-  '';
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase =
+    let
+      binPath = lib.makeBinPath [ jre ];
+    in
+    ''
+      install -D $src_alda $out/bin/alda
+      install -D $src_player $out/bin/alda-player
+
+      wrapProgram $out/bin/alda --prefix PATH : $out/bin:${binPath}
+      wrapProgram $out/bin/alda-player --prefix PATH : $out/bin:${binPath}
+    '';
 
   meta = with lib; {
     description = "A music programming language for musicians";
@@ -23,5 +37,4 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.ericdallo ];
     platforms = jre.meta.platforms;
   };
-
 }
diff --git a/pkgs/development/interpreters/angelscript/2.22.nix b/pkgs/development/interpreters/angelscript/2.22.nix
index 4c35f065cb5cd..26625f612366e 100644
--- a/pkgs/development/interpreters/angelscript/2.22.nix
+++ b/pkgs/development/interpreters/angelscript/2.22.nix
@@ -1,26 +1,19 @@
-{lib, stdenv, fetchurl, unzip}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="angelscript";
-    version = "2.22.2";
-    name="${baseName}-${version}";
-    url="http://www.angelcode.com/angelscript/sdk/files/angelscript_${version}.zip";
-    sha256 = "1pp853lbnz383ilp9wbgc3wv1dn7lpx3idz8dmzda94rckl7sd43";
-  };
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
+{ lib, stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  pname = "angelscript";
+  version = "2.22.2";
   nativeBuildInputs = [ unzip ];
 
   src = fetchurl {
-    inherit (s) url sha256;
+    url = "http://www.angelcode.com/angelscript/sdk/files/angelscript_${version}.zip";
+    sha256 = "sha256-gzR96GSZJNV+bei3OPqlx7aw+WBv8XRpHGh8u+go6N4=";
   };
   preConfigure = ''
     cd angelscript/projects/gnuc
     sed -i makefile -e "s@LOCAL = .*@LOCAL = $out@"
     export SHARED=1
-    export VERSION="${s.version}"
+    export VERSION="${version}"
     mkdir -p "$out/lib" "$out/bin" "$out/share" "$out/include"
   '';
   postBuild = ''
@@ -30,14 +23,13 @@ stdenv.mkDerivation {
     mkdir -p "$out/share/docs/angelscript"
     cp -r ../../../docs/* "$out/share/docs/angelscript"
   '';
-  meta = {
-    inherit (s) version;
+  meta = with lib; {
     description = "Light-weight scripting library";
-    license = lib.licenses.zlib ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.zlib;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
     badPlatforms = [ "aarch64-linux" ];
     downloadPage = "http://www.angelcode.com/angelscript/downloads.html";
-    homepage="http://www.angelcode.com/angelscript/";
+    homepage = "http://www.angelcode.com/angelscript/";
   };
 }
diff --git a/pkgs/development/interpreters/asmrepl/Gemfile b/pkgs/development/interpreters/asmrepl/Gemfile
new file mode 100644
index 0000000000000..0b617ffb90b2c
--- /dev/null
+++ b/pkgs/development/interpreters/asmrepl/Gemfile
@@ -0,0 +1,3 @@
+source 'https://rubygems.org' do
+  gem 'asmrepl'
+end
diff --git a/pkgs/development/interpreters/asmrepl/Gemfile.lock b/pkgs/development/interpreters/asmrepl/Gemfile.lock
new file mode 100644
index 0000000000000..f845e91b6c90f
--- /dev/null
+++ b/pkgs/development/interpreters/asmrepl/Gemfile.lock
@@ -0,0 +1,18 @@
+GEM
+  specs:
+
+GEM
+  remote: https://rubygems.org/
+  specs:
+    asmrepl (1.0.3)
+      fisk (~> 2)
+    fisk (2.3.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  asmrepl!
+
+BUNDLED WITH
+   2.2.24
diff --git a/pkgs/development/interpreters/asmrepl/default.nix b/pkgs/development/interpreters/asmrepl/default.nix
new file mode 100644
index 0000000000000..a046a3c601758
--- /dev/null
+++ b/pkgs/development/interpreters/asmrepl/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+  pname = "asmrepl";
+  gemdir = ./.;
+  exes = [ "asmrepl" ];
+
+  passthru.updateScript = bundlerUpdateScript "asmrepl";
+
+  meta = with lib; {
+    description = "A REPL for x86-64 assembly language";
+    homepage = "https://github.com/tenderlove/asmrepl";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ lom ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/pkgs/development/interpreters/asmrepl/gemset.nix b/pkgs/development/interpreters/asmrepl/gemset.nix
new file mode 100644
index 0000000000000..a7af8d50c6859
--- /dev/null
+++ b/pkgs/development/interpreters/asmrepl/gemset.nix
@@ -0,0 +1,23 @@
+{
+  asmrepl = {
+    dependencies = ["fisk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10d0zvkhk3ja48vvx28hfsqfrzfl66vdpmk3gcgb5viy174c72v6";
+      type = "gem";
+    };
+    version = "1.0.3";
+  };
+  fisk = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mq2a7hjs9xfg514ci0xw90c33rzq1y58ywpnmhp7w767ll6wldd";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+}
diff --git a/pkgs/development/interpreters/bqn/cbqn/default.nix b/pkgs/development/interpreters/bqn/cbqn/default.nix
index 4d872f0084e4a..992caf200a748 100644
--- a/pkgs/development/interpreters/bqn/cbqn/default.nix
+++ b/pkgs/development/interpreters/bqn/cbqn/default.nix
@@ -11,21 +11,21 @@ let
     name = "cbqn-bytecode-files";
     owner = "dzaima";
     repo = "CBQN";
-    rev = "db686e89d4d2e9bfac3dddf306dff890135b2de1";
-    hash = "sha256-RJ751jCsAGjqQx3V5S5Uc611n+/TBs6G2o0q26x98NM=";
+    rev = "b000b951aa8f3590b196b4c09056604c0b32a168";
+    hash = "sha256-znW0xOXogP4TfifUmk3cs4aN/9mMSpSD2WJppmeI1Fg=";
   };
 in
 assert genBytecode -> ((bqn-path != null) && (mbqn-source != null));
 
 stdenv.mkDerivation rec {
   pname = "cbqn" + lib.optionalString (!genBytecode) "-standalone";
-  version = "0.pre+date=2021-11-06";
+  version = "0.pre+date=2021-12-13";
 
   src = fetchFromGitHub {
     owner = "dzaima";
     repo = "CBQN";
-    rev = "cd866e1e45ce0f22bfacd25565ab912c06cb040f";
-    hash = "sha256-XuowrGDgrttRL/SY5si0nqHMKEidSNrQuquxNdBCW8o=";
+    rev = "e7662b0f6a44add0749fba2a6d7309a5c1eb2601";
+    hash = "sha256-2nfkTZBIGHX5cok6Ea3KSewakZy8Ey8nSO2Fe4xGgvg=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix b/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix
index e9b6bdf83c785..b6591825f8878 100644
--- a/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix
+++ b/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dbqn" + lib.optionalString buildNativeImage "-native";
-  version = "0.pre+date=2021-10-08";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "dzaima";
     repo = "BQN";
-    rev = "0001109a1c5a420421b368c79d34b1e93bfe606e";
-    hash = "sha256-riHHclTLkrVbtzmcz9ungAIc7kaoFHS77+SNatsfNhc=";
+    rev = "v${version}";
+    sha256 = "1kxzxz2hrd1871281s4rsi569qk314aqfmng9pkqn8gv9nqhmph0";
   };
 
   nativeBuildInputs = [
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres sternenseemann ];
     inherit (jdk.meta) platforms;
+    broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/dbqn-native.x86_64-darwin
   };
 }
 # TODO: Processing app
diff --git a/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix b/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix
index fd0ff51c0eb1d..fbb5b458d08b1 100644
--- a/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix
+++ b/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix
@@ -7,13 +7,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "bqn";
-  version = "0.pre+date=2021-11-08";
+  version = "0.pre+date=2021-12-13";
 
   src = fetchFromGitHub {
     owner = "mlochbaum";
     repo = "BQN";
-    rev = "5c68173276c1c1b136a7eda3ad8f4423ab0ee9d0";
-    hash = "sha256-e0P1I8I/J41Hk7Edb4uKCdx30Azkiheq014kSZzJ8yg=";
+    rev = "2c2e86e10ff963a6aefa14f76fd8833ce3c9157c";
+    hash = "sha256-iAlDXGlHTeI6+r/QKFiBHhj5A+FgUy7JFrCpAwpyVQU=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/interpreters/bwbasic/default.nix b/pkgs/development/interpreters/bwbasic/default.nix
new file mode 100644
index 0000000000000..4fec1cc7b3e4b
--- /dev/null
+++ b/pkgs/development/interpreters/bwbasic/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, dos2unix, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  pname = "bwbasic";
+  version = "3.20";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/bwbasic/bwbasic/version%203.20/bwbasic-3.20.zip";
+    sha256 = "1w9r4cl7z1lh52c1jpjragbspi1qn0zb7jhcsldav4gdnzxfw67f";
+  };
+
+  nativeBuildInputs = [ dos2unix unzip ];
+
+  unpackPhase = ''
+    unzip $src
+  '';
+
+  postPatch = ''
+    dos2unix configure
+    patchShebangs configure
+    chmod +x configure
+  '';
+
+  hardeningDisable = [ "format" ];
+
+  preInstall = ''
+    mkdir -p $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Bywater BASIC Interpreter";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ irenes ];
+    platforms = platforms.all;
+    homepage = "https://sourceforge.net/projects/bwbasic/";
+  };
+}
diff --git a/pkgs/development/interpreters/clojure/babashka.nix b/pkgs/development/interpreters/clojure/babashka.nix
index 85daec0d2ac98..93755e83a3d69 100644
--- a/pkgs/development/interpreters/clojure/babashka.nix
+++ b/pkgs/development/interpreters/clojure/babashka.nix
@@ -1,56 +1,21 @@
-{ lib, stdenv, fetchurl, graalvm11-ce, glibcLocales, writeScript }:
+{ lib, buildGraalvmNativeImage, fetchurl, writeScript }:
 
-stdenv.mkDerivation rec {
+buildGraalvmNativeImage rec {
   pname = "babashka";
-  version = "0.6.5";
+  version = "0.7.3";
 
   src = fetchurl {
     url = "https://github.com/babashka/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
-    sha256 = "sha256-72D/HzDIxkGD4zTPE9gHf/uFtboLbNnT7CTslSlAqjc=";
+    sha256 = "sha256-zbxFMc02hbsU2ERlUzqMBHwHYfORB7TkMINrKC52PPU=";
   };
 
-  dontUnpack = true;
+  executable = "bb";
 
-  nativeBuildInputs = [ graalvm11-ce glibcLocales ];
-
-  LC_ALL = "en_US.UTF-8";
-  BABASHKA_JAR = src;
-  BABASHKA_BINARY = "bb";
-  BABASHKA_XMX = "-J-Xmx4500m";
-
-  buildPhase = ''
-    runHook preBuild
-
-    # https://github.com/babashka/babashka/blob/v0.6.2/script/compile#L41-L52
-    args=("-jar" "$BABASHKA_JAR"
-          "-H:CLibraryPath=${graalvm11-ce.lib}/lib"
-          # Required to build babashka on darwin. Do not remove.
-          "${lib.optionalString stdenv.isDarwin "-H:-CheckToolchain"}"
-          "-H:Name=$BABASHKA_BINARY"
-          "-H:+ReportExceptionStackTraces"
-          # "-H:+PrintAnalysisCallTree"
-          # "-H:+DashboardAll"
-          # "-H:DashboardDump=reports/dump"
-          # "-H:+DashboardPretty"
-          # "-H:+DashboardJson"
-          "--verbose"
-          "--no-fallback"
-          "--native-image-info"
-          "$BABASHKA_XMX")
-
-     native-image ''${args[@]}
-
-     runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/bin
-    cp bb $out/bin/bb
-
-    runHook postInstall
-  '';
+  extraNativeImageBuildArgs = [
+    "-H:+ReportExceptionStackTraces"
+    "--no-fallback"
+    "--native-image-info"
+  ];
 
   installCheckPhase = ''
     $out/bin/bb --version | grep '${version}'
@@ -102,7 +67,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/babashka/babashka";
     changelog = "https://github.com/babashka/babashka/blob/v${version}/CHANGELOG.md";
     license = licenses.epl10;
-    platforms = graalvm11-ce.meta.platforms;
     maintainers = with maintainers; [
       bandresen
       bhougland
diff --git a/pkgs/development/interpreters/clojure/default.nix b/pkgs/development/interpreters/clojure/default.nix
index a412aafe2ac04..9fba39d70c7ff 100644
--- a/pkgs/development/interpreters/clojure/default.nix
+++ b/pkgs/development/interpreters/clojure/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "clojure";
-  version = "1.10.3.1029";
+  version = "1.10.3.1053";
 
   src = fetchurl {
     # https://clojure.org/releases/tools
     url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz";
-    sha256 = "14c08xva1r6sl3h78vhckwx5dd8kqwi7457prygh9330b7r8caa2";
+    sha256 = "p91+Ylx8HQL/o3Pq4Pd1c9GAMiOXvJSw+09LGYLj5Wo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/interpreters/dhall/generate-dhall-directory-package.nix b/pkgs/development/interpreters/dhall/generate-dhall-directory-package.nix
new file mode 100644
index 0000000000000..03dfb72d7aba1
--- /dev/null
+++ b/pkgs/development/interpreters/dhall/generate-dhall-directory-package.nix
@@ -0,0 +1,27 @@
+{ dhall-nixpkgs, lib, stdenv }:
+
+# This function calls `dhall-to-nixpkgs directory --fixed-output-derivations`
+# within a Nix derivation.
+#
+# This is possible because
+# `dhall-to-nixpkgs directory --fixed-output-derivations` will turn remote
+# Dhall imports protected with Dhall integrity checksinto fixed-output
+# derivations (with the `buildDhallUrl` function), so no unrestricted network
+# access is necessary.
+lib.makePackageOverridable
+  ( { src
+    , # The file to import, relative to the root directory
+      file ? "package.dhall"
+    , # Set to `true` to generate documentation for the package
+      document ? false
+    }:
+    stdenv.mkDerivation {
+      name = "dhall-directory-package.nix";
+
+      buildCommand = ''
+        dhall-to-nixpkgs directory --fixed-output-derivations --file "${file}" "${src}" ${if document then "--document" else ""} > $out
+      '';
+
+      nativeBuildInputs = [ dhall-nixpkgs ];
+    }
+  )
diff --git a/pkgs/development/interpreters/dzaima-apl/default.nix b/pkgs/development/interpreters/dzaima-apl/default.nix
index d061a6cb9cdf5..e0a8478297773 100644
--- a/pkgs/development/interpreters/dzaima-apl/default.nix
+++ b/pkgs/development/interpreters/dzaima-apl/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres ];
     inherit (jdk.meta) platforms;
+    broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/dapl-native.x86_64-darwin
   };
 }
 # TODO: Processing app
diff --git a/pkgs/development/interpreters/elixir/1.13.nix b/pkgs/development/interpreters/elixir/1.13.nix
new file mode 100644
index 0000000000000..78a7458443e91
--- /dev/null
+++ b/pkgs/development/interpreters/elixir/1.13.nix
@@ -0,0 +1,9 @@
+{ mkDerivation }:
+
+# How to obtain `sha256`:
+# nix-prefetch-url --unpack https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz
+mkDerivation {
+  version = "1.13.1";
+  sha256 = "0z0b1w2vvw4vsnb99779c2jgn9bgslg7b1pmd9vlbv02nza9qj5p";
+  minimumOTPVersion = "22";
+}
diff --git a/pkgs/development/interpreters/elixir/1.7.nix b/pkgs/development/interpreters/elixir/1.7.nix
deleted file mode 100644
index 10ebd5438a110..0000000000000
--- a/pkgs/development/interpreters/elixir/1.7.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ mkDerivation }:
-
-mkDerivation {
-  version = "1.7.4";
-  sha256 = "0f8j4pib13kffiihagdwl3xqs3a1ak19qz3z8fpyfxn9dnjiinla";
-  minimumOTPVersion = "19";
-}
diff --git a/pkgs/development/interpreters/elixir/1.8.nix b/pkgs/development/interpreters/elixir/1.8.nix
deleted file mode 100644
index 931fa50b1f725..0000000000000
--- a/pkgs/development/interpreters/elixir/1.8.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ mkDerivation }:
-
-mkDerivation {
-  version = "1.8.2";
-  sha256 = "1n77cpcl2b773gmj3m9s24akvj9gph9byqbmj2pvlsmby4aqwckq";
-  minimumOTPVersion = "20";
-}
diff --git a/pkgs/development/interpreters/erlang/R24.nix b/pkgs/development/interpreters/erlang/R24.nix
index 544bfbec5305a..b59626e70671f 100644
--- a/pkgs/development/interpreters/erlang/R24.nix
+++ b/pkgs/development/interpreters/erlang/R24.nix
@@ -3,6 +3,6 @@
 # How to obtain `sha256`:
 # nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
 mkDerivation {
-  version = "24.1.6";
-  sha256 = "sha256-Jh9w3+ft1RZjmb4PriCmHPj0tgkx8LBFjsg1s4BGojs=";
+  version = "24.1.7";
+  sha256 = "sha256-R4rZVMn9AGvOy31eA1dsz2CFMKOG/cXkbLaJtT7zBrU=";
 }
diff --git a/pkgs/development/interpreters/evcxr/default.nix b/pkgs/development/interpreters/evcxr/default.nix
index 81200a94aae9c..97cae4089256c 100644
--- a/pkgs/development/interpreters/evcxr/default.nix
+++ b/pkgs/development/interpreters/evcxr/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "evcxr";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "evcxr";
     rev = "v${version}";
-    sha256 = "sha256-JziLEsY6kF5UeDt17q/HDrTlNtHj7DWy1tTq3s2eZHE=";
+    sha256 = "sha256-sD/eykXoeJq43o3xyFx2VIoH+xZrMmb6vZKVt4CO7B4=";
   };
 
-  cargoSha256 = "sha256-I164eXgc/yiKKskloh6FGYD3bLCLWXaM6uWa01PRDXs=";
+  cargoSha256 = "sha256-eySdhzavm9NGv2xjgdq/C2iv6lxdulhgYNs9ehnSzKQ=";
 
   RUST_SRC_PATH = "${rustPlatform.rustLibSrc}";
 
diff --git a/pkgs/development/interpreters/jruby/default.nix b/pkgs/development/interpreters/jruby/default.nix
index 68724a55b98ae..4c19a2da8739f 100644
--- a/pkgs/development/interpreters/jruby/default.nix
+++ b/pkgs/development/interpreters/jruby/default.nix
@@ -6,11 +6,11 @@ rubyVersion = callPackage ../ruby/ruby-version.nix {} "2" "5" "7" "";
 jruby = stdenv.mkDerivation rec {
   pname = "jruby";
 
-  version = "9.2.19.0";
+  version = "9.3.2.0";
 
   src = fetchurl {
     url = "https://s3.amazonaws.com/jruby.org/downloads/${version}/jruby-bin-${version}.tar.gz";
-    sha256 = "sha256-H3SIWi0/pYn8vrKSo5+s9/hr4+rBqwFeMsZdMqzz878=";
+    sha256 = "sha256-JmmcoCvur6gyZXPBElxXpZcbqLlNFfhOazuvJZQkTzM=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/interpreters/kona/default.nix b/pkgs/development/interpreters/kona/default.nix
index ff5929745baa0..24e10eb7306aa 100644
--- a/pkgs/development/interpreters/kona/default.nix
+++ b/pkgs/development/interpreters/kona/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kona";
-  version = "20201009";
+  version = "20211225";
 
   src = fetchFromGitHub {
     owner = "kevinlawler";
     repo = "kona";
     rev = "Win64-${version}";
-    sha256 = "0v252zds61y01cf29hxznz1zc1724vxmzy059k9jiri4r73k679v";
+    sha256 = "sha256-m3a9conyKN0qHSSAG8zAb3kx8ir+7dqgxm1XGjCQcfk=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/development/interpreters/lfe/generic-builder.nix b/pkgs/development/interpreters/lfe/generic-builder.nix
index 6205689674524..2431199beaaf1 100644
--- a/pkgs/development/interpreters/lfe/generic-builder.nix
+++ b/pkgs/development/interpreters/lfe/generic-builder.nix
@@ -83,7 +83,7 @@ buildRebar3 {
       code. An LFE evaluator and shell is also included.
     '';
 
-    homepage     = "http://lfe.io";
+    homepage     = "https://lfe.io";
     downloadPage = "https://github.com/rvirding/lfe/releases";
 
     license      = licenses.asl20;
diff --git a/pkgs/development/interpreters/love/0.7.nix b/pkgs/development/interpreters/love/0.7.nix
index 6cba19bff0f16..6d8b996f18358 100644
--- a/pkgs/development/interpreters/love/0.7.nix
+++ b/pkgs/development/interpreters/love/0.7.nix
@@ -6,9 +6,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "love-0.7.2";
+  pname = "love";
+  version = "0.7.2";
+
   src = fetchurl {
-    url = "https://bitbucket.org/rude/love/downloads/${name}-linux-src.tar.gz";
+    url = "https://bitbucket.org/rude/love/downloads/love-${version}-linux-src.tar.gz";
     sha256 = "0s7jywkvydlshlgy11ilzngrnybmq5xlgzp2v2dhlffwrfqdqym5";
   };
 
diff --git a/pkgs/development/interpreters/love/0.9.nix b/pkgs/development/interpreters/love/0.9.nix
index b7e20498a39c3..512aade7f9539 100644
--- a/pkgs/development/interpreters/love/0.9.nix
+++ b/pkgs/development/interpreters/love/0.9.nix
@@ -5,9 +5,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "love-0.9.1";
+  pname = "love";
+  version = "0.9.1";
+
   src = fetchurl {
-    url = "https://bitbucket.org/rude/love/downloads/${name}-linux-src.tar.gz";
+    url = "https://bitbucket.org/rude/love/downloads/love-${version}-linux-src.tar.gz";
     sha256 = "1pikd0bzb44r4bf0jbgn78whz1yswpq1n5jc8nf87v42pm30kp84";
   };
 
diff --git a/pkgs/development/interpreters/lunatic/default.nix b/pkgs/development/interpreters/lunatic/default.nix
index de0c927567d14..cf4339c69ac49 100644
--- a/pkgs/development/interpreters/lunatic/default.nix
+++ b/pkgs/development/interpreters/lunatic/default.nix
@@ -1,33 +1,24 @@
-{ lib, rustPlatform, fetchFromGitHub, fetchpatch, cmake, stdenv }:
+{ lib, rustPlatform, fetchFromGitHub, cmake, stdenv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "lunatic";
-  version = "0.6.2";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "lunatic-solutions";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1dz8v19jw9v55p3mz4932v6z24ihp6wk238n4d4lx9xj91mf3g6r";
+    sha256 = "sha256-+4014p+4QJ7nytFHHszAOYQHXLYXqR+Cip+vHxsH9l8=";
   };
 
-  cargoPatches = [
-    # NOTE: remove on next update
-    # update dependencies to resolve incompatibility with rust 1.56
-    (fetchpatch {
-      name = "update-wasmtime.patch";
-      url = "https://github.com/lunatic-solutions/lunatic/commit/cd8db51732712c19a8114db290882d1bb6b928c0.patch";
-      sha256 = "sha256-eyoIOTqGSU/XNfF55FG+WrQPSMvt9L/S/KBsUQB5z1k=";
-    })
-  ];
-
-  cargoSha256 = "sha256-yoG4gCk+nHE8pBqV6ND9NCegx4bxbdGEU5hY5JauloM=";
+  cargoSha256 = "sha256-RnaAiumTP4cW2eHUbnwyPdgJQLK65gqDI/NP2SOrO4E=";
 
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
     description = "An Erlang inspired runtime for WebAssembly";
     homepage = "https://lunatic.solutions";
+    changelog = "https://github.com/lunatic-solutions/lunatic/blob/v${version}/RELEASES.md";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
     broken = stdenv.isDarwin;
diff --git a/pkgs/development/interpreters/lush/default.nix b/pkgs/development/interpreters/lush/default.nix
deleted file mode 100644
index fe51d154956a1..0000000000000
--- a/pkgs/development/interpreters/lush/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{lib, stdenv, fetchurl, libX11, xorgproto, indent, readline, gsl, freeglut, libGLU, libGL, SDL
-, blas, libbfd, intltool, gettext, zlib, libSM}:
-
-stdenv.mkDerivation rec {
-  baseName = "lush";
-  version = "2.0.1";
-  name = "${baseName}-${version}";
-
-  src = fetchurl {
-    url="mirror://sourceforge/project/lush/lush2/lush-2.0.1.tar.gz";
-    sha256 = "02pkfn3nqdkm9fm44911dbcz0v3r0l53vygj8xigl6id5g3iwi4k";
-  };
-
-  buildInputs = [
-    libX11 libSM xorgproto indent readline gsl freeglut libGLU libGL SDL blas libbfd
-    intltool gettext zlib
-  ];
-
-  hardeningDisable = [ "pic" ];
-
-  NIX_LDFLAGS=" -lz ";
-
-  meta = {
-    description = "Lisp Universal SHell";
-    license = lib.licenses.gpl2Plus ;
-    maintainers = [ lib.maintainers.raskin ];
-    platforms = lib.platforms.linux;
-  };
-}
diff --git a/pkgs/development/interpreters/lush/default.upstream b/pkgs/development/interpreters/lush/default.upstream
deleted file mode 100644
index 8a8b08fcd68ab..0000000000000
--- a/pkgs/development/interpreters/lush/default.upstream
+++ /dev/null
@@ -1,4 +0,0 @@
-url https://sourceforge.net/projects/lush/files/lush2/
-version_link '[.]tar[.]gz/download$'
-SF_redirect
-minimize_overwrite
diff --git a/pkgs/development/interpreters/metamath/default.nix b/pkgs/development/interpreters/metamath/default.nix
index d5c021a815f9e..9c6c64f739134 100644
--- a/pkgs/development/interpreters/metamath/default.nix
+++ b/pkgs/development/interpreters/metamath/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "metamath";
-  version = "0.196";
+  version = "0.198";
 
   nativeBuildInputs = [ autoreconfHook ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "metamath";
     repo = "metamath-exe";
     rev = "v${version}";
-    sha256 = "sha256-/ofH5fq7lUxbbRBAczsLNG3UPsOMbCdcxkB3el5OPcU=";
+    sha256 = "sha256-Cg1dgz+uphDlGhKH3mTywtAccWinC5+pwNv4TB3YAnI=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/interpreters/mujs/default.nix b/pkgs/development/interpreters/mujs/default.nix
index 46f86f85fc3ae..062647416b158 100644
--- a/pkgs/development/interpreters/mujs/default.nix
+++ b/pkgs/development/interpreters/mujs/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mujs";
-  version = "1.1.2";
+  version = "1.2.0";
 
   src = fetchurl {
     url = "https://mujs.com/downloads/mujs-${version}.tar.xz";
-    sha256 = "sha256-cZ6IK7fZhkDvoWM4Hpto7xzjXIekIuKqQZDJ5AIlh10=";
+    sha256 = "sha256-ZpdtHgajUnVKI0Kvc9Guy7U8x82uK2jNoBO33c+SMjM=";
   };
 
   buildInputs = [ readline ];
diff --git a/pkgs/development/interpreters/ngn-k/default.nix b/pkgs/development/interpreters/ngn-k/default.nix
index e70ac29921460..dfd6b17f65fad 100644
--- a/pkgs/development/interpreters/ngn-k/default.nix
+++ b/pkgs/development/interpreters/ngn-k/default.nix
@@ -13,14 +13,14 @@ in
 
 useStdenv.mkDerivation {
   pname = "ngn-k";
-  version = "unstable-2021-08-30";
+  version = "unstable-2021-12-17";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "ngn";
     repo = "k";
-    rev = "3e2bcb81c723e268015818570f2805547114b5dd";
-    sha256 = "0b16971xgf0sgx7qf41dilrpz02jnas61gfwkyvbxv18874w5vap";
+    rev = "26f83645e9ed4798b43390fb9dcdfa0ab8245a8f";
+    sha256 = "sha256-VcJcLcL1C8yQH6xvpKR0R0gMrhSfsU4tW+Yy0rGdSSw=";
   };
 
   patches = [
@@ -28,8 +28,7 @@ useStdenv.mkDerivation {
   ];
 
   postPatch = ''
-    # make self-reference for LICENSE
-    substituteAllInPlace repl.k
+    patchShebangs a19/a.sh a20/a.sh a21/a.sh dy/a.sh e/a.sh
 
     # don't use hardcoded /bin/sh
     for f in repl.k m.c;do
@@ -38,14 +37,18 @@ useStdenv.mkDerivation {
   '';
 
   makeFlags = [ "-e" ];
-  buildFlags = [ "k" ];
+  buildFlags = [ "k" "libk.so" ];
   checkTarget = "t";
   inherit doCheck;
 
+  outputs = [ "out" "dev" "lib" ];
+
   installPhase = ''
     runHook preInstall
     install -Dm755 k "$out/bin/k"
     install -Dm755 repl.k "$out/bin/k-repl"
+    install -Dm755 libk.so "$lib/lib/libk.so"
+    install -Dm644 k.h "$dev/include/k.h"
     install -Dm644 LICENSE -t "$out/share/ngn-k"
     substituteInPlace "$out/bin/k-repl" --replace "#!k" "#!$out/bin/k"
     runHook postInstall
diff --git a/pkgs/development/interpreters/ngn-k/repl-license-path.patch b/pkgs/development/interpreters/ngn-k/repl-license-path.patch
index 1b0ce708f0c3a..6b5d1e4fb6ae7 100644
--- a/pkgs/development/interpreters/ngn-k/repl-license-path.patch
+++ b/pkgs/development/interpreters/ngn-k/repl-license-path.patch
@@ -1,14 +1,10 @@
-diff --git a/repl.k b/repl.k
-index e4071e6..70ae276 100755
 --- a/repl.k
 +++ b/repl.k
-@@ -3,8 +3,7 @@ repl.banner:"ngn/k, (c) 2019-2021 ngn, GNU AGPLv3. type \\ for more info\n"
- repl.prompt:," "
- repl.cmds:""!()
- repl.cmds["vf"]:{` 0:($!h),'":",'`k'. h:(&(x~"v")=^`o`p`q`r`u`v`w?@'h)#h:``repl_.:0#`}
--repl.cmds["a"]:{` 1:1:repl.basename[`argv 0],"/LICENSE";}
--repl.basename:{$[#x:"/"/-1_"/"\x;x;,"."]}
-+repl.cmds["a"]:{` 1:1:"@out@/share/ngn-k/LICENSE";}
+@@ -1,6 +1,6 @@
+ #!k
+ `1:"ngn/k, (c) 2019-2021 ngn, GNU AGPLv3. type \\ for more info\n",repl.prompt:," "
+-repl.cmds:(,"a")!{`1:1:repl.joinpath[repl.dirname`argv 0]"LICENSE";}
++repl.cmds:(,"a")!{`1:1:repl.joinpath[repl.dirname`argv 0]"../share/ngn-k/LICENSE";}
+ repl.dirname:{$[#x:"/"/-1_"/"\x;x;,"."]}
+ repl.joinpath:{$[x~,".";y;"/"~*|x;x,y;x,"/",y]}
  repl.fmt:{$[x~(::);"";(`A~@x)&1<#x;"(",("\n "/`k'x),")\n";`k[x],"\n"]}
- repl.line:{$[#x;;:0];x:-1_x;$[(3>#x)&("\\"=*x)&~^(!repl.cmds)?x 1;repl.cmds[x 1]x 1;.[` 1:repl.fmt@.:;,x;`epr@]];` 1:repl.prompt;1}
- {repl.cmds[x[1]1]:{y;` 0:x}2_x}'{(&x~\:80#"-")_x:(1+*&x~\:,"/")_-1_x}@0:`argv 1;
diff --git a/pkgs/development/interpreters/octave/default.nix b/pkgs/development/interpreters/octave/default.nix
index 033cc2f872ab6..1bd78a8a2d4e4 100644
--- a/pkgs/development/interpreters/octave/default.nix
+++ b/pkgs/development/interpreters/octave/default.nix
@@ -187,11 +187,6 @@ let
     # Fix linker error on Darwin (see https://trac.macports.org/ticket/61865)
     NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-lobjc";
 
-    # Avoid Qt 5.12 problem on Big Sur: https://bugreports.qt.io/browse/QTBUG-87014
-    qtWrapperArgs = lib.optionals stdenv.isDarwin [
-      "--set QT_MAC_WANTS_LAYER 1"
-    ];
-
     # See https://savannah.gnu.org/bugs/?50339
     F77_INTEGER_8_FLAG = if use64BitIdx then "-fdefault-integer-8" else "";
 
@@ -240,7 +235,7 @@ let
       homepage = "https://www.gnu.org/software/octave/";
       license = lib.licenses.gpl3Plus;
       maintainers = with lib.maintainers; [ raskin doronbehar ];
-      description = "Scientific Pragramming Language";
+      description = "Scientific Programming Language";
       # https://savannah.gnu.org/bugs/?func=detailitem&item_id=56425 is the best attempt to fix JIT
       broken = enableJIT;
       platforms = if overridePlatforms == null then
diff --git a/pkgs/development/interpreters/perl/default.nix b/pkgs/development/interpreters/perl/default.nix
index 45c12b9720c46..54769a03b7b6f 100644
--- a/pkgs/development/interpreters/perl/default.nix
+++ b/pkgs/development/interpreters/perl/default.nix
@@ -100,9 +100,22 @@ let
 
     enableParallelBuilding = !crossCompiling;
 
+    # perl includes the build date, the uname of the build system and the
+    # username of the build user in some files.
+    # We override these to make it build deterministically.
+    # other distro solutions
+    # https://github.com/bmwiedemann/openSUSE/blob/master/packages/p/perl/perl-reproducible.patch
+    # https://github.com/archlinux/svntogit-packages/blob/packages/perl/trunk/config.over
+    # https://salsa.debian.org/perl-team/interpreter/perl/blob/debian-5.26/debian/config.over
+    # A ticket has been opened upstream to possibly clean some of this up: https://rt.perl.org/Public/Bug/Display.html?id=133452
     preConfigure = ''
-        substituteInPlace ./Configure --replace '`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1`' 'Thu Jan  1 00:00:01 UTC 1970'
-        substituteInPlace ./Configure --replace '$uname -a' '$uname --kernel-name --machine --operating-system'
+        cat > config.over <<EOF
+        ${lib.optionalString (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isGnu) ''osvers="gnulinux"''}
+        myuname="nixpkgs"
+        myhostname="nixpkgs"
+        cf_by="nixpkgs"
+        cf_time="$(date -d "@$SOURCE_DATE_EPOCH")"
+        EOF
       '' + optionalString stdenv.isDarwin ''
         substituteInPlace hints/darwin.sh --replace "env MACOSX_DEPLOYMENT_TARGET=10.3" ""
       '' + optionalString (!enableThreading) ''
@@ -110,6 +123,9 @@ let
         sed -i 's,\(libswanted.*\)pthread,\1,g' Configure
       '';
 
+    # Default perl does not support --host= & co.
+    configurePlatforms = [];
+
     setupHook = ./setup-hook.sh;
 
     passthru = rec {
diff --git a/pkgs/development/interpreters/php/7.4.nix b/pkgs/development/interpreters/php/7.4.nix
index 93ce56e875cda..1cc63d7b58a42 100644
--- a/pkgs/development/interpreters/php/7.4.nix
+++ b/pkgs/development/interpreters/php/7.4.nix
@@ -2,8 +2,8 @@
 
 let
   base = callPackage ./generic.nix (_args // {
-    version = "7.4.25";
-    sha256 = "sha256-J5klcMrz4uUyOrezeFPETBUpsdMeqU2Xdu+pHVp4ExM=";
+    version = "7.4.26";
+    sha256 = "0k803j5wf4jv72px0zqz2z2hxyk2w3jr6xyczy568dx4z2l8i2yn";
   });
 
 in
diff --git a/pkgs/development/interpreters/php/8.0.nix b/pkgs/development/interpreters/php/8.0.nix
index 5c393d8ed9610..8cf7d4ebc8dfd 100644
--- a/pkgs/development/interpreters/php/8.0.nix
+++ b/pkgs/development/interpreters/php/8.0.nix
@@ -2,8 +2,8 @@
 
 let
   base = callPackage ./generic.nix (_args // {
-    version = "8.0.12";
-    sha256 = "sha256-tIhtsd8yLcj7Eo2LNK5+lPb8aC7LKf9PWlkdTen+rb8=";
+    version = "8.0.13";
+    sha256 = "0djqh650clz4fy1zifazf0jq383znksydx23f1s48prrlixrshf2";
   });
 
 in
diff --git a/pkgs/development/interpreters/php/8.1.nix b/pkgs/development/interpreters/php/8.1.nix
new file mode 100644
index 0000000000000..736d6c808cde4
--- /dev/null
+++ b/pkgs/development/interpreters/php/8.1.nix
@@ -0,0 +1,51 @@
+{ callPackage, lib, stdenv, ... }@_args:
+
+let
+  base = callPackage ./generic.nix (_args // {
+    version = "8.1.1";
+    sha256 = "sha256-j4vJytbNEk7cER99sKEJdF4vY4dwoQGzwiopU/eptA4=";
+  });
+
+in
+base.withExtensions ({ all, ... }: with all; ([
+  bcmath
+  calendar
+  curl
+  ctype
+  dom
+  exif
+  fileinfo
+  filter
+  ftp
+  gd
+  gettext
+  gmp
+  iconv
+  intl
+  ldap
+  mbstring
+  mysqli
+  mysqlnd
+  opcache
+  openssl
+  pcntl
+  pdo
+  pdo_mysql
+  pdo_odbc
+  pdo_pgsql
+  pdo_sqlite
+  pgsql
+  posix
+  readline
+  session
+  simplexml
+  sockets
+  soap
+  sodium
+  sqlite3
+  tokenizer
+  xmlreader
+  xmlwriter
+  zip
+  zlib
+] ++ lib.optionals (!stdenv.isDarwin) [ imap ]))
diff --git a/pkgs/development/interpreters/php/fix-tokenizer-php81.patch b/pkgs/development/interpreters/php/fix-tokenizer-php81.patch
new file mode 100644
index 0000000000000..b43eeefa3c287
--- /dev/null
+++ b/pkgs/development/interpreters/php/fix-tokenizer-php81.patch
@@ -0,0 +1,12 @@
+diff --git a/ext/tokenizer/Makefile.frag b/ext/tokenizer/Makefile.frag
+index 745cbfce91..07bace6022 100644
+--- a/ext/tokenizer/Makefile.frag
++++ b/ext/tokenizer/Makefile.frag
+@@ -1,5 +1,5 @@
+-$(top_srcdir)/ext/tokenizer/tokenizer_data.c: $(top_srcdir)/Zend/zend_language_parser.y
++$(top_srcdir)/tokenizer_data.c: $(top_srcdir)/../../Zend/zend_language_parser.y
+ 	@if test ! -z "$(PHP)"; then \
+ 		$(PHP) $(srcdir)/tokenizer_data_gen.php; \
+ 	fi;
+-$(builddir)/tokenizer.lo: $(top_srcdir)/Zend/zend_language_parser.c $(top_srcdir)/Zend/zend_language_scanner.c
++$(builddir)/tokenizer.lo: $(top_srcdir)/../../Zend/zend_language_parser.c $(top_srcdir)/../../Zend/zend_language_scanner.c
diff --git a/pkgs/development/interpreters/php/generic.nix b/pkgs/development/interpreters/php/generic.nix
index 7a1ee2a2ebafc..bf2ff11158ecb 100644
--- a/pkgs/development/interpreters/php/generic.nix
+++ b/pkgs/development/interpreters/php/generic.nix
@@ -212,6 +212,7 @@ let
           ;
 
           CXXFLAGS = lib.optionalString stdenv.cc.isClang "-std=c++11";
+          SKIP_PERF_SENSITIVE = 1;
 
           configureFlags =
             # Disable all extensions
diff --git a/pkgs/development/interpreters/python/cpython/3.11/no-ldconfig.patch b/pkgs/development/interpreters/python/cpython/3.11/no-ldconfig.patch
new file mode 100644
index 0000000000000..ca6a76d0ffd98
--- /dev/null
+++ b/pkgs/development/interpreters/python/cpython/3.11/no-ldconfig.patch
@@ -0,0 +1,107 @@
+From 5330b6af9f832af59aa5c61d9ef6971053a8e709 Mon Sep 17 00:00:00 2001
+From: Jonathan Ringer <jonringer117@gmail.com>
+Date: Mon, 9 Nov 2020 10:24:35 -0800
+Subject: [PATCH] CPython: Don't use ldconfig
+
+---
+ Lib/ctypes/util.py | 77 ++--------------------------------------------
+ 1 file changed, 2 insertions(+), 75 deletions(-)
+
+diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py
+index 0c2510e161..7fb98af308 100644
+--- a/Lib/ctypes/util.py
++++ b/Lib/ctypes/util.py
+@@ -100,53 +100,7 @@ def _is_elf(filename):
+             return thefile.read(4) == elf_header
+ 
+     def _findLib_gcc(name):
+-        # Run GCC's linker with the -t (aka --trace) option and examine the
+-        # library name it prints out. The GCC command will fail because we
+-        # haven't supplied a proper program with main(), but that does not
+-        # matter.
+-        expr = os.fsencode(r'[^\(\)\s]*lib%s\.[^\(\)\s]*' % re.escape(name))
+-
+-        c_compiler = shutil.which('gcc')
+-        if not c_compiler:
+-            c_compiler = shutil.which('cc')
+-        if not c_compiler:
+-            # No C compiler available, give up
+-            return None
+-
+-        temp = tempfile.NamedTemporaryFile()
+-        try:
+-            args = [c_compiler, '-Wl,-t', '-o', temp.name, '-l' + name]
+-
+-            env = dict(os.environ)
+-            env['LC_ALL'] = 'C'
+-            env['LANG'] = 'C'
+-            try:
+-                proc = subprocess.Popen(args,
+-                                        stdout=subprocess.PIPE,
+-                                        stderr=subprocess.STDOUT,
+-                                        env=env)
+-            except OSError:  # E.g. bad executable
+-                return None
+-            with proc:
+-                trace = proc.stdout.read()
+-        finally:
+-            try:
+-                temp.close()
+-            except FileNotFoundError:
+-                # Raised if the file was already removed, which is the normal
+-                # behaviour of GCC if linking fails
+-                pass
+-        res = re.findall(expr, trace)
+-        if not res:
+-            return None
+-
+-        for file in res:
+-            # Check if the given file is an elf file: gcc can report
+-            # some files that are linker scripts and not actual
+-            # shared objects. See bpo-41976 for more details
+-            if not _is_elf(file):
+-                continue
+-            return os.fsdecode(file)
++        return None
+ 
+ 
+     if sys.platform == "sunos5":
+@@ -268,34 +222,7 @@ def find_library(name, is64 = False):
+     else:
+ 
+         def _findSoname_ldconfig(name):
+-            import struct
+-            if struct.calcsize('l') == 4:
+-                machine = os.uname().machine + '-32'
+-            else:
+-                machine = os.uname().machine + '-64'
+-            mach_map = {
+-                'x86_64-64': 'libc6,x86-64',
+-                'ppc64-64': 'libc6,64bit',
+-                'sparc64-64': 'libc6,64bit',
+-                's390x-64': 'libc6,64bit',
+-                'ia64-64': 'libc6,IA-64',
+-                }
+-            abi_type = mach_map.get(machine, 'libc6')
+-
+-            # XXX assuming GLIBC's ldconfig (with option -p)
+-            regex = r'\s+(lib%s\.[^\s]+)\s+\(%s'
+-            regex = os.fsencode(regex % (re.escape(name), abi_type))
+-            try:
+-                with subprocess.Popen(['/sbin/ldconfig', '-p'],
+-                                      stdin=subprocess.DEVNULL,
+-                                      stderr=subprocess.DEVNULL,
+-                                      stdout=subprocess.PIPE,
+-                                      env={'LC_ALL': 'C', 'LANG': 'C'}) as p:
+-                    res = re.search(regex, p.stdout.read())
+-                    if res:
+-                        return os.fsdecode(res.group(1))
+-            except OSError:
+-                pass
++            return None
+ 
+         def _findLib_ld(name):
+             # See issue #9998 for why this is needed
+-- 
+2.33.1
+
diff --git a/pkgs/development/interpreters/python/cpython/docs/2.7-html.nix b/pkgs/development/interpreters/python/cpython/docs/2.7-html.nix
index e033858acc018..dbfe1c51b4d04 100644
--- a/pkgs/development/interpreters/python/cpython/docs/2.7-html.nix
+++ b/pkgs/development/interpreters/python/cpython/docs/2.7-html.nix
@@ -2,10 +2,12 @@
 
 { stdenv, fetchurl, lib }:
 
-stdenv.mkDerivation {
-  name = "python27-docs-html-2.7.16";
+stdenv.mkDerivation rec {
+  pname = "python27-docs-html";
+  version = "2.7.16";
+
   src = fetchurl {
-    url = "http://docs.python.org/ftp/python/doc/2.7.16/python-2.7.16-docs-html.tar.bz2";
+    url = "http://docs.python.org/ftp/python/doc/${version}/python-${version}-docs-html.tar.bz2";
     sha256 = "1razs1grzhai65ihaiyph8kz6ncjkgp1gsn3c8v7kanf13lqim02";
   };
   installPhase = ''
diff --git a/pkgs/development/interpreters/python/cpython/docs/2.7-pdf-a4.nix b/pkgs/development/interpreters/python/cpython/docs/2.7-pdf-a4.nix
index c9a770a6fcf1c..cf03df68b0f38 100644
--- a/pkgs/development/interpreters/python/cpython/docs/2.7-pdf-a4.nix
+++ b/pkgs/development/interpreters/python/cpython/docs/2.7-pdf-a4.nix
@@ -2,10 +2,12 @@
 
 { stdenv, fetchurl, lib }:
 
-stdenv.mkDerivation {
-  name = "python27-docs-pdf-a4-2.7.16";
+stdenv.mkDerivation rec {
+  pname = "python27-docs-pdf-a4";
+  version = "2.7.16";
+
   src = fetchurl {
-    url = "http://docs.python.org/ftp/python/doc/2.7.16/python-2.7.16-docs-pdf-a4.tar.bz2";
+    url = "http://docs.python.org/ftp/python/doc/${version}/python-${version}-docs-pdf-a4.tar.bz2";
     sha256 = "14ml1ynrlbhg43737bdsb8k5y39wsffqj4iwhylhb8n8l5dplfdq";
   };
   installPhase = ''
diff --git a/pkgs/development/interpreters/python/cpython/docs/2.7-pdf-letter.nix b/pkgs/development/interpreters/python/cpython/docs/2.7-pdf-letter.nix
index e03d031bae487..d75ea77f78775 100644
--- a/pkgs/development/interpreters/python/cpython/docs/2.7-pdf-letter.nix
+++ b/pkgs/development/interpreters/python/cpython/docs/2.7-pdf-letter.nix
@@ -2,10 +2,12 @@
 
 { stdenv, fetchurl, lib }:
 
-stdenv.mkDerivation {
-  name = "python27-docs-pdf-letter-2.7.16";
+stdenv.mkDerivation rec {
+  pname = "python27-docs-pdf-letter";
+  version = "2.7.16";
+
   src = fetchurl {
-    url = "http://docs.python.org/ftp/python/doc/2.7.16/python-2.7.16-docs-pdf-letter.tar.bz2";
+    url = "http://docs.python.org/ftp/python/doc/${version}/python-${version}-docs-pdf-letter.tar.bz2";
     sha256 = "019i8n48m71mn31v8d85kkwyqfgcgqnqh506y4a7fcgf656bajs0";
   };
   installPhase = ''
diff --git a/pkgs/development/interpreters/python/cpython/docs/2.7-text.nix b/pkgs/development/interpreters/python/cpython/docs/2.7-text.nix
index d19d7be193572..0c217d188410d 100644
--- a/pkgs/development/interpreters/python/cpython/docs/2.7-text.nix
+++ b/pkgs/development/interpreters/python/cpython/docs/2.7-text.nix
@@ -2,10 +2,12 @@
 
 { stdenv, fetchurl, lib }:
 
-stdenv.mkDerivation {
-  name = "python27-docs-text-2.7.16";
+stdenv.mkDerivation rec {
+  pname = "python27-docs-text";
+  version = "2.7.16";
+
   src = fetchurl {
-    url = "http://docs.python.org/ftp/python/doc/2.7.16/python-2.7.16-docs-text.tar.bz2";
+    url = "http://docs.python.org/ftp/python/doc/${version}/python-${version}-docs-text.tar.bz2";
     sha256 = "1da7swlykvc013684nywycinfz3v8dqkcmv0zj8p7l5lyi5mq03r";
   };
   installPhase = ''
diff --git a/pkgs/development/interpreters/python/cpython/docs/3.7-html.nix b/pkgs/development/interpreters/python/cpython/docs/3.7-html.nix
index a83363b5c4738..2e399aa52fcd6 100644
--- a/pkgs/development/interpreters/python/cpython/docs/3.7-html.nix
+++ b/pkgs/development/interpreters/python/cpython/docs/3.7-html.nix
@@ -2,10 +2,12 @@
 
 { stdenv, fetchurl, lib }:
 
-stdenv.mkDerivation {
-  name = "python37-docs-html-3.7.2";
+stdenv.mkDerivation rec {
+  pname = "python37-docs-html";
+  version = "3.7.2";
+
   src = fetchurl {
-    url = "http://docs.python.org/ftp/python/doc/3.7.2/python-3.7.2-docs-html.tar.bz2";
+    url = "http://docs.python.org/ftp/python/doc/${version}/python-${version}-docs-html.tar.bz2";
     sha256 = "19wbrawpdam09fmyipfy92sxwn1rl93v8jkfqsfx028qhvzf0422";
   };
   installPhase = ''
diff --git a/pkgs/development/interpreters/python/cpython/docs/3.7-pdf-a4.nix b/pkgs/development/interpreters/python/cpython/docs/3.7-pdf-a4.nix
index e60032f71bf8b..9879a26be525f 100644
--- a/pkgs/development/interpreters/python/cpython/docs/3.7-pdf-a4.nix
+++ b/pkgs/development/interpreters/python/cpython/docs/3.7-pdf-a4.nix
@@ -2,10 +2,12 @@
 
 { stdenv, fetchurl, lib }:
 
-stdenv.mkDerivation {
-  name = "python37-docs-pdf-a4-3.7.2";
+stdenv.mkDerivation rec {
+  pname = "python37-docs-pdf-a4";
+  version = "3.7.2";
+
   src = fetchurl {
-    url = "http://docs.python.org/ftp/python/doc/3.7.2/python-3.7.2-docs-pdf-a4.tar.bz2";
+    url = "http://docs.python.org/ftp/python/doc/${version}/python-${version}-docs-pdf-a4.tar.bz2";
     sha256 = "0vdx762m30hjaabn6w88awcj2qpbz0b6z59zn9wmamd35k59lfba";
   };
   installPhase = ''
diff --git a/pkgs/development/interpreters/python/cpython/docs/3.7-pdf-letter.nix b/pkgs/development/interpreters/python/cpython/docs/3.7-pdf-letter.nix
index b737a1e32995b..7c58c45776e7a 100644
--- a/pkgs/development/interpreters/python/cpython/docs/3.7-pdf-letter.nix
+++ b/pkgs/development/interpreters/python/cpython/docs/3.7-pdf-letter.nix
@@ -2,10 +2,12 @@
 
 { stdenv, fetchurl, lib }:
 
-stdenv.mkDerivation {
-  name = "python37-docs-pdf-letter-3.7.2";
+stdenv.mkDerivation rec {
+  pname = "python37-docs-pdf-letter";
+  version = "3.7.2";
+
   src = fetchurl {
-    url = "http://docs.python.org/ftp/python/doc/3.7.2/python-3.7.2-docs-pdf-letter.tar.bz2";
+    url = "http://docs.python.org/ftp/python/doc/${version}/python-${version}-docs-pdf-letter.tar.bz2";
     sha256 = "17g57vlyvqx0k916q84q2pcx7y8myw0fda9fvg9kh0ph930c837x";
   };
   installPhase = ''
diff --git a/pkgs/development/interpreters/python/cpython/docs/3.7-text.nix b/pkgs/development/interpreters/python/cpython/docs/3.7-text.nix
index 2897042ec04a3..641e4913f65a3 100644
--- a/pkgs/development/interpreters/python/cpython/docs/3.7-text.nix
+++ b/pkgs/development/interpreters/python/cpython/docs/3.7-text.nix
@@ -2,10 +2,12 @@
 
 { stdenv, fetchurl, lib }:
 
-stdenv.mkDerivation {
-  name = "python37-docs-text-3.7.2";
+stdenv.mkDerivation rec {
+  pname = "python37-docs-text";
+  version = "3.7.2";
+
   src = fetchurl {
-    url = "http://docs.python.org/ftp/python/doc/3.7.2/python-3.7.2-docs-text.tar.bz2";
+    url = "http://docs.python.org/ftp/python/doc/${version}/python-${version}-docs-text.tar.bz2";
     sha256 = "0h50rlr8jclwfxa106b42q2vn2ynp219c4zsy5qz65n5m3b7y1g2";
   };
   installPhase = ''
diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix
index 471320ee2c113..3e53ea251a27b 100644
--- a/pkgs/development/interpreters/python/default.nix
+++ b/pkgs/development/interpreters/python/default.nix
@@ -95,6 +95,7 @@ with pkgs;
         isPy38 = pythonVersion == "3.8";
         isPy39 = pythonVersion == "3.9";
         isPy310 = pythonVersion == "3.10";
+        isPy311 = pythonVersion == "3.11";
         isPy2 = lib.strings.substring 0 1 pythonVersion == "2";
         isPy3 = lib.strings.substring 0 1 pythonVersion == "3";
         isPy3k = isPy3;
@@ -132,10 +133,10 @@ with pkgs;
       sourceVersion = {
         major = "3";
         minor = "9";
-        patch = "6";
+        patch = "9";
         suffix = "";
       };
-      sha256 = "12hhw2685i68pwfx5hdkqngzhbji4ccyjmqb5rzvkigg6fpj0y9r";
+      sha256 = "sha256-BoKMBKVzwHOk5RxCkqJ8G+SuJmIcPtx8+TGEGM47bSc=";
     };
   };
 
@@ -192,6 +193,19 @@ in {
     inherit passthruFun;
   };
 
+  python311 = callPackage ./cpython {
+    self = python311;
+    sourceVersion = {
+      major = "3";
+      minor = "11";
+      patch = "0";
+      suffix = "a2";
+    };
+    sha256 = "sha256-aKjE1s4lSKe2F9aZ+9s0iTe9rODPltsaoIOEnfXa0T8=";
+    inherit (darwin) configd;
+    inherit passthruFun;
+  };
+
   # Minimal versions of Python (built without optional dependencies)
   python3Minimal = (callPackage ./cpython ({
     self = python3Minimal;
@@ -238,21 +252,26 @@ in {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
-  pypy37 = callPackage ./pypy {
-    self = pypy37;
+  pypy38 = callPackage ./pypy {
+    self = pypy38;
     sourceVersion = {
       major = "7";
       minor = "3";
-      patch = "5";
+      patch = "7";
     };
-    sha256 = "sha256-2SD+QJqeytnQdKqFaMpfPtNYG+ZvZuXYmIt+xm5tmaI=";
-    pythonVersion = "3.7";
+    sha256 = "sha256-Ia4zn09QFtbKcwAwXz47VUNzg1yzw5qQQf4w5oEcgMY=";
+    pythonVersion = "3.8";
     db = db.override { dbmSupport = !stdenv.isDarwin; };
     python = python27;
     inherit passthruFun;
     inherit (darwin) libunwind;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
+  pypy37 = pypy38.override {
+    self = pythonInterpreters.pypy37;
+    pythonVersion = "3.7";
+    sha256 = "sha256-LtAqyecQhZxBvILer7CGGXkruaJ+6qFnbHQe3t0hTdc=";
+  };
 
   pypy27_prebuilt = callPackage ./pypy/prebuilt.nix {
     # Not included at top-level
@@ -285,4 +304,8 @@ in {
     inherit passthruFun;
   };
 
+  rustpython = callPackage ./rustpython/default.nix {
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
+  };
+
 })
diff --git a/pkgs/development/interpreters/python/hooks/python-namespaces-hook.sh b/pkgs/development/interpreters/python/hooks/python-namespaces-hook.sh
index 15d2bd0eb34c5..37479d9d4111c 100644
--- a/pkgs/development/interpreters/python/hooks/python-namespaces-hook.sh
+++ b/pkgs/development/interpreters/python/hooks/python-namespaces-hook.sh
@@ -24,6 +24,17 @@ pythonNamespacesHook() {
                 rm -v "$pathToRemove"
             fi
 
+            # remove ${pname}-${version}-${python-interpeter}-nspkg.pth
+            #
+            # Still need to check that parent directory exists in the
+            # event of a "meta-package" package, which will just install
+            # other packages, but not produce anything in site-packages
+            # besides meta information
+            if [ -d "${constructedPath}/../" -a -z ${dontRemovePth-} ]; then
+                # .pth files are located in the parent directory of a module
+                @findutils@/bin/find ${constructedPath}/../ -name '*-nspkg.pth' -exec rm -v "{}" +
+            fi
+
             # remove __pycache__/ entry, can be interpreter specific. E.g. __init__.cpython-38.pyc
             # use null characters to perserve potential whitespace in filepath
             if [ -d "$pycachePath" ]; then
diff --git a/pkgs/development/interpreters/python/rustpython/default.nix b/pkgs/development/interpreters/python/rustpython/default.nix
new file mode 100644
index 0000000000000..ad4382203223f
--- /dev/null
+++ b/pkgs/development/interpreters/python/rustpython/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, SystemConfiguration
+, python3
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rustpython";
+  version = "unstable-2021-12-09";
+
+  src = fetchFromGitHub {
+    owner = "RustPython";
+    repo = "RustPython";
+    rev = "db3b3127df34ff5dd569301aa36ed71ae5624e4e";
+    sha256 = "sha256-YwGfXs3A5L/18mHnnWubPU3Y8EI9uU3keJ2HJnnTwv0=";
+  };
+
+  cargoHash = "sha256-T85kiPG80oZ4mwpb8Ag40wDHKx2Aens+gM7NGXan5lM=";
+
+  # freeze the stdlib into the rustpython binary
+  cargoBuildFlags = "--features=freeze-stdlib";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ SystemConfiguration ];
+
+  checkInputs = [ python3 ];
+
+  meta = with lib; {
+    description = "Python 3 interpreter in written Rust";
+    homepage = "https://rustpython.github.io";
+    license = licenses.mit;
+    maintainers = with maintainers; [ prusnak ];
+
+    # TODO: Remove once nixpkgs uses newer SDKs that supports '*at' functions.
+    # Probably macOS SDK 10.13 or later. Check the current version in
+    # .../os-specific/darwin/apple-sdk/default.nix
+    #
+    # From the build logs:
+    #
+    # > Undefined symbols for architecture x86_64: "_utimensat"
+    broken = stdenv.isDarwin && stdenv.isx86_64;
+  };
+}
diff --git a/pkgs/development/interpreters/python/tests.nix b/pkgs/development/interpreters/python/tests.nix
index 764ab29e919b0..49dfe0e4644ee 100644
--- a/pkgs/development/interpreters/python/tests.nix
+++ b/pkgs/development/interpreters/python/tests.nix
@@ -20,7 +20,15 @@ let
     envs = let
       inherit python;
       pythonEnv = python.withPackages(ps: with ps; [ ]);
-      pythonVirtualEnv = python.withPackages(ps: with ps; [ virtualenv ]);
+      pythonVirtualEnv = if python.isPy3k
+        then
+           python.withPackages(ps: with ps; [ virtualenv ])
+        else
+          python.buildEnv.override {
+            extraLibs = with python.pkgs; [ virtualenv ];
+            # Collisions because of namespaces __init__.py
+            ignoreCollisions = true;
+          };
     in {
       # Plain Python interpreter
       plain = rec {
diff --git a/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py b/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py
index d3642592ae43b..3a6a14133ea37 100755
--- a/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py
+++ b/pkgs/development/interpreters/python/update-python-libraries/update-python-libraries.py
@@ -309,8 +309,8 @@ def _update_package(path, target):
     with open(path, 'r') as f:
         text = f.read()
 
-    # Determine pname.
-    pname = _get_unique_value('pname', text)
+    # Determine pname. Many files have more than one pname
+    pnames = _get_values('pname', text)
 
     # Determine version.
     version = _get_unique_value('version', text)
@@ -320,7 +320,18 @@ def _update_package(path, target):
 
     extension = _determine_extension(text, fetcher)
 
-    new_version, new_sha256, prefix = FETCHERS[fetcher](pname, extension, version, target)
+    # Attempt a fetch using each pname, e.g. backports-zoneinfo vs backports.zoneinfo
+    successful_fetch = False
+    for pname in pnames:
+        try:
+            new_version, new_sha256, prefix = FETCHERS[fetcher](pname, extension, version, target)
+            successful_fetch = True
+            break
+        except ValueError:
+            continue
+
+    if not successful_fetch:
+        raise ValueError(f"Unable to find correct package using these pnames: {pnames}")
 
     if new_version == version:
         logging.info("Path {}: no update available for {}.".format(path, pname))
@@ -331,7 +342,15 @@ def _update_package(path, target):
         raise ValueError("no file available for {}.".format(pname))
 
     text = _replace_value('version', new_version, text)
-    text = _replace_value('sha256', new_sha256, text)
+
+    # fetchers can specify a sha256, or a sri hash
+    try:
+        text = _replace_value('sha256', new_sha256, text)
+    except ValueError:
+        # hashes from pypi are 16-bit encoded sha256's, need translate to an sri hash if used with "hash"
+        sri_hash = subprocess.check_output(["nix", "hash", "to-sri", "--type", "sha256", new_sha256]).decode('utf-8').strip()
+        text = _replace_value('hash', sri_hash, text)
+
     if fetcher == 'fetchFromGitHub':
         text = _replace_value('rev', f"{prefix}${{version}}", text)
         # incase there's no prefix, just rewrite without interpolation
diff --git a/pkgs/development/interpreters/rakudo/default.nix b/pkgs/development/interpreters/rakudo/default.nix
index ede9fe0bed0b0..254228ea55bb5 100644
--- a/pkgs/development/interpreters/rakudo/default.nix
+++ b/pkgs/development/interpreters/rakudo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rakudo";
-  version = "2021.10";
+  version = "2021.12";
 
   src = fetchurl {
-    url    = "https://rakudo.org/dl/rakudo/rakudo-${version}.tar.gz";
-    sha256 = "sha256-sXTHU3Mo77Xj90JF55+nFZtwExuExZeRbPWmXCrKJKE=";
+    url = "https://rakudo.org/dl/rakudo/rakudo-${version}.tar.gz";
+    sha256 = "sha256-f1PSxxONE6sBaS1b19vCjz8p7Ya9ltUoCFb1WhqwVAY=";
   };
 
   nativeBuildInputs = [ removeReferencesTo ];
@@ -25,9 +25,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Raku implementation on top of Moar virtual machine";
-    homepage    = "https://rakudo.org";
-    license     = licenses.artistic2;
-    platforms   = platforms.unix;
+    homepage = "https://rakudo.org";
+    license = licenses.artistic2;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ thoughtpolice vrthra sgo ];
   };
 }
diff --git a/pkgs/development/interpreters/rakudo/moarvm.nix b/pkgs/development/interpreters/rakudo/moarvm.nix
index b8ed60c69a996..cbc283ce25f2f 100644
--- a/pkgs/development/interpreters/rakudo/moarvm.nix
+++ b/pkgs/development/interpreters/rakudo/moarvm.nix
@@ -1,14 +1,19 @@
-{ lib, stdenv, fetchurl, perl
-, CoreServices, ApplicationServices }:
+{ lib
+, stdenv
+, fetchurl
+, perl
+, CoreServices
+, ApplicationServices
+}:
 
 stdenv.mkDerivation rec {
   pname = "moarvm";
-  version = "2021.10";
+  version = "2021.12";
 
   src = fetchurl {
     url = "https://moarvm.org/releases/MoarVM-${version}.tar.gz";
-    sha256 = "sha256-fzSHpw6Ld74OTi8SsUxJ9qAdA3jglAyGlYyQFsSVrXU=";
-   };
+    sha256 = "sha256-1Ju+sQ2WFsLYen+t0ca7elzhHBnHxEu7i+928ltQXE8=";
+  };
 
   postPatch = ''
     patchShebangs .
@@ -28,9 +33,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "VM with adaptive optimization and JIT compilation, built for Rakudo";
-    homepage    = "https://moarvm.org";
-    license     = licenses.artistic2;
-    platforms   = platforms.unix;
+    homepage = "https://moarvm.org";
+    license = licenses.artistic2;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ thoughtpolice vrthra sgo ];
   };
 }
diff --git a/pkgs/development/interpreters/rakudo/nqp.nix b/pkgs/development/interpreters/rakudo/nqp.nix
index 96ac0b40febcb..8a64430d24a0c 100644
--- a/pkgs/development/interpreters/rakudo/nqp.nix
+++ b/pkgs/development/interpreters/rakudo/nqp.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nqp";
-  version = "2021.10";
+  version = "2021.12";
 
   src = fetchurl {
-    url    = "https://github.com/raku/nqp/releases/download/${version}/nqp-${version}.tar.gz";
-    sha256 = "sha256-SBNbwbPOIsHFfM70ZTHnaI7sg9a5BbUC/879bCMpS0k=";
+    url = "https://github.com/raku/nqp/releases/download/${version}/nqp-${version}.tar.gz";
+    sha256 = "sha256-Dh1TT9HuYaTIByMJuvvARmDprnLYhhjaoOjxUCLw2RM=";
   };
 
   buildInputs = [ perl ];
@@ -21,9 +21,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Not Quite Perl -- a lightweight Raku-like environment for virtual machines";
-    homepage    = "https://github.com/perl6/nqp";
-    license     = licenses.artistic2;
-    platforms   = platforms.unix;
+    homepage = "https://github.com/Raku/nqp";
+    license = licenses.artistic2;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ thoughtpolice vrthra sgo ];
   };
 }
diff --git a/pkgs/development/interpreters/rakudo/zef.nix b/pkgs/development/interpreters/rakudo/zef.nix
index c06823ef7b532..d151c6765bf3a 100644
--- a/pkgs/development/interpreters/rakudo/zef.nix
+++ b/pkgs/development/interpreters/rakudo/zef.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zef";
-  version = "0.13.0";
+  version = "0.13.4";
 
   src = fetchFromGitHub {
     owner = "ugexe";
     repo = "zef";
     rev = "v${version}";
-    sha256 = "sha256-4B0xhEBjIPFXyT/SdT5qeDNnpntk2nd/zYwgt35sD+s=";
+    sha256 = "sha256-zTgXMICuLn612bmL5e6GP5aBQ4uOcSLfce0PCRYGob0=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix
index b6010cf32d101..7ab397bfc191b 100644
--- a/pkgs/development/interpreters/ruby/default.nix
+++ b/pkgs/development/interpreters/ruby/default.nix
@@ -252,18 +252,18 @@ let
 
 in {
   ruby_2_7 = generic {
-    version = rubyVersion "2" "7" "4" "";
+    version = rubyVersion "2" "7" "5" "";
     sha256 = {
-      src = "0nxwkxh7snmjqf787qsp4i33mxd1rbf9yzyfiky5k230i680jhrh";
-      git = "1prsrqwkla4k5japlm54k0j700j4824rg8z8kpswr9r3swrmrf5p";
+      src = "1wc1hwmz4m6iqlmqag8liyld917p6a8dvnhnpd1v8d8jl80bjm97";
+      git = "16565fyl7141hr6q6d74myhsz46lvgam8ifnacshi68vzibwjbbh";
     };
   };
 
   ruby_3_0 = generic {
-    version = rubyVersion "3" "0" "2" "";
+    version = rubyVersion "3" "0" "3" "";
     sha256 = {
-      src = "1wg6yyzc6arzikcy48igqbxfcdc79bmfpiyfi9m9j1lzmphdx1ah";
-      git = "1kbkxqichi11vli080jgyvjf2xgnlbl9l2f2n1hv4s8b31gjib3r";
+      src = "1b4j39zyyvdkf1ax2c6qfa40b4mxfkr87zghhw19fmnzn8f8d1im";
+      git = "1q19w5i1jkfxn7qq6f9v9ngax9h52gxwijk7hp312dx6amwrkaim";
     };
   };
 }
diff --git a/pkgs/development/interpreters/ruby/patchsets.nix b/pkgs/development/interpreters/ruby/patchsets.nix
index 3ea358c349a34..31a9a9f1c08db 100644
--- a/pkgs/development/interpreters/ruby/patchsets.nix
+++ b/pkgs/development/interpreters/ruby/patchsets.nix
@@ -1,12 +1,12 @@
 { patchSet, useRailsExpress, ops, patchLevel, fetchpatch }:
 
 {
-  "2.7.4" = ops useRailsExpress [
+  "2.7.5" = ops useRailsExpress [
     "${patchSet}/patches/ruby/2.7/head/railsexpress/01-fix-broken-tests-caused-by-ad.patch"
     "${patchSet}/patches/ruby/2.7/head/railsexpress/02-improve-gc-stats.patch"
     "${patchSet}/patches/ruby/2.7/head/railsexpress/03-more-detailed-stacktrace.patch"
   ];
-  "3.0.2" = ops useRailsExpress [
+  "3.0.3" = ops useRailsExpress [
     "${patchSet}/patches/ruby/3.0/head/railsexpress/01-improve-gc-stats.patch"
     "${patchSet}/patches/ruby/3.0/head/railsexpress/02-malloc-trim.patch"
   ];
diff --git a/pkgs/development/interpreters/spidermonkey/78.nix b/pkgs/development/interpreters/spidermonkey/78.nix
index 5a63be5b838b2..cd745c5ba9e03 100644
--- a/pkgs/development/interpreters/spidermonkey/78.nix
+++ b/pkgs/development/interpreters/spidermonkey/78.nix
@@ -21,11 +21,11 @@
 
 stdenv.mkDerivation rec {
   pname = "spidermonkey";
-  version = "78.11.0";
+  version = "78.15.0";
 
   src = fetchurl {
     url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
-    sha256 = "0zjpzkxx3wc2840d7q4b9lnkj1kwk1qps29s9c83jf5y6xclnf9q";
+    sha256 = "0l91cxdc5v9fps79ckb1kid4gw6v5qng1jd9zvaacwaiv628shx4";
   };
 
   patches = [
diff --git a/pkgs/development/interpreters/spidermonkey/91.nix b/pkgs/development/interpreters/spidermonkey/91.nix
index 953a4c506b5cf..a8927e79f9a4c 100644
--- a/pkgs/development/interpreters/spidermonkey/91.nix
+++ b/pkgs/development/interpreters/spidermonkey/91.nix
@@ -20,11 +20,11 @@
 
 stdenv.mkDerivation rec {
   pname = "spidermonkey";
-  version = "91.3.0";
+  version = "91.4.0";
 
   src = fetchurl {
     url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
-    sha256 = "0v79c435vfbhsx7pqyq4jm5rv8iysig69wwqhvys1n0jy54m72qj";
+    sha256 = "09xkzk27krzyj1qx8cjjn2zpnws1cncka75828kk7ychnjfq48p7";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/interpreters/tinyscheme/default.nix b/pkgs/development/interpreters/tinyscheme/default.nix
index 3d4cfea465a64..0590062b3a4be 100644
--- a/pkgs/development/interpreters/tinyscheme/default.nix
+++ b/pkgs/development/interpreters/tinyscheme/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsdOriginal;
     maintainers = [ maintainers.ebzzry ];
     platforms = platforms.unix;
+    badPlatforms = [ "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/development/interpreters/wasmer/default.nix b/pkgs/development/interpreters/wasmer/default.nix
index 6c714bc3de5fb..1537dcee67d35 100644
--- a/pkgs/development/interpreters/wasmer/default.nix
+++ b/pkgs/development/interpreters/wasmer/default.nix
@@ -8,17 +8,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasmer";
-  version = "2.0.0";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "wasmerio";
     repo = pname;
     rev = version;
-    sha256 = "191f60db2y1f3xw1x81mw88vclf1c4kgvnfv74g5vb3vn7n57c5j";
+    sha256 = "sha256-uD+JH42AxXxLMLqBurNDfYc7tLlBlEmaLB5rbip+/D4=";
     fetchSubmodules = true;
   };
 
-  cargoSha256 = "0hhwixqhrl79hpzmvq7ga3kp2cfrwr4i8364cwnr7195xwnfxb0k";
+  cargoSha256 = "sha256-eiX5p2qWUZgoHzoHYXDsp9N6foiX3JovKO6MpoJOXFo=";
 
   nativeBuildInputs = [ cmake pkg-config ];
 
@@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec {
   ];
 
   # Can't use test-jit:
-  # error: Package `wasmer-workspace v2.0.0 (/build/source)` does not have the feature `test-jit`
+  # error: Package `wasmer-workspace v2.1.1 (/build/source)` does not have the feature `test-jit`
   checkFeatures = [ "test-cranelift" ];
 
   LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
diff --git a/pkgs/development/libraries/CGAL/4.nix b/pkgs/development/libraries/CGAL/4.nix
index 7028572174ff2..a1d3c183b8e2f 100644
--- a/pkgs/development/libraries/CGAL/4.nix
+++ b/pkgs/development/libraries/CGAL/4.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, boost, gmp, mpfr }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, boost, gmp, mpfr }:
 
 stdenv.mkDerivation rec {
   version = "4.14.2";
@@ -11,6 +11,28 @@ stdenv.mkDerivation rec {
     sha256 = "1p1xyws2s9h2c8hlkz1af4ix48qma160av24by6lcm8al1g44pca";
   };
 
+  patches = [
+
+    # Pull upstream fix for c++17 (gcc-12):
+    #  https://github.com/CGAL/cgal/pull/6109
+    (fetchpatch {
+      name = "gcc-12-prereq.patch";
+      url = "https://github.com/CGAL/cgal/commit/4581f1b7a8e97d1a136830e64b77cdae3546c4bf.patch";
+      sha256 = "1gzrvbrwxylv80v0m3j2s1znlysmr69lp3ggagnh38lp6423i6pq";
+      # Upstream slightly reordered directory structure since.
+      stripLen = 1;
+      # Fill patch does not apply: touches too many parts of the source.
+      includes = [ "include/CGAL/CORE/BigFloatRep.h" ];
+    })
+    (fetchpatch {
+      name = "gcc-12.patch";
+      url = "https://github.com/CGAL/cgal/commit/6680a6e6f994b2c5b9f068eb3014d12ee1134d53.patch";
+      sha256 = "1c0h1lh8zng60yx78qc8wx714b517mil8mac87v6xr21q0b11wk7";
+      # Upstream slightly reordered directory structure since.
+      stripLen = 1;
+    })
+  ];
+
   # note: optional component libCGAL_ImageIO would need zlib and opengl;
   #   there are also libCGAL_Qt{3,4} omitted ATM
   buildInputs = [ boost gmp mpfr ];
diff --git a/pkgs/development/libraries/CGAL/default.nix b/pkgs/development/libraries/CGAL/default.nix
index d83560568121d..630ff8a6964f7 100644
--- a/pkgs/development/libraries/CGAL/default.nix
+++ b/pkgs/development/libraries/CGAL/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cgal";
-  version = "5.3";
+  version = "5.3.1";
 
   src = fetchFromGitHub {
     owner = "CGAL";
     repo = "releases";
     rev = "CGAL-${version}";
-    sha256 = "sha256-ogY47Ggtj9k2U5pop1DNFkTusgQi2nNLc5OGN45SBCk=";
+    sha256 = "sha256-atILY/d2b99v0Kk226KwJ/qEcJnWBhtge52wkz6Bgcg=";
   };
 
   # note: optional component libCGAL_ImageIO would need zlib and opengl;
diff --git a/pkgs/development/libraries/SDL_image/default.nix b/pkgs/development/libraries/SDL_image/default.nix
index d6424575a7641..30f71bd3e520e 100644
--- a/pkgs/development/libraries/SDL_image/default.nix
+++ b/pkgs/development/libraries/SDL_image/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, SDL, libpng, libjpeg, libtiff, giflib, libXpm }:
+{ lib, stdenv, fetchurl, fetchpatch, SDL, libpng, libjpeg, libtiff, giflib, libXpm, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "SDL_image";
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
     "--disable-tif-shared"
   ] ++ lib.optional stdenv.isDarwin "--disable-sdltest";
 
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ SDL libpng libjpeg libtiff giflib libXpm ];
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/SDL_mixer/default.nix b/pkgs/development/libraries/SDL_mixer/default.nix
index 291e9790e4423..91e9f0a3edf0b 100644
--- a/pkgs/development/libraries/SDL_mixer/default.nix
+++ b/pkgs/development/libraries/SDL_mixer/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, fetchurl
 , SDL, libogg, libvorbis, smpeg, libmikmod
-, fluidsynth
+, fluidsynth, pkg-config
 , enableNativeMidi ? false
 }:
 
@@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "0alrhqgm40p4c92s26mimg9cm1y7rzr6m0p49687jxd9g6130i0n";
   };
 
+  nativeBuildInputs = [ pkg-config ];
   buildInputs = [ SDL libogg libvorbis fluidsynth smpeg libmikmod ];
 
   configureFlags = [ "--disable-music-ogg-shared" "--disable-music-mod-shared" ]
diff --git a/pkgs/development/libraries/SDL_net/default.nix b/pkgs/development/libraries/SDL_net/default.nix
index f55332a0ee0e0..e902213c9710f 100644
--- a/pkgs/development/libraries/SDL_net/default.nix
+++ b/pkgs/development/libraries/SDL_net/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, SDL }:
+{ lib, stdenv, fetchurl, SDL, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "SDL_net";
@@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = lib.optional stdenv.isDarwin "--disable-sdltest";
 
+  nativeBuildInputs = [ pkg-config ];
   propagatedBuildInputs = [ SDL ];
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/Xaw3d/default.nix b/pkgs/development/libraries/Xaw3d/default.nix
index 88501ca1ee60d..3ec220ca80de9 100644
--- a/pkgs/development/libraries/Xaw3d/default.nix
+++ b/pkgs/development/libraries/Xaw3d/default.nix
@@ -1,11 +1,23 @@
-{ lib, stdenv, fetchurl
-, imake, gccmakedep, bison, flex, pkg-config
-, xlibsWrapper, libXmu, libXpm, libXp }:
+{ lib
+, stdenv
+, fetchurl
+, imake
+, gccmakedep
+, bison
+, flex
+, pkg-config
+, xlibsWrapper
+, libXmu
+, libXpm
+, libXp
+}:
+
+stdenv.mkDerivation rec {
+  pname = "Xaw3d";
+  version = "1.6.3";
 
-stdenv.mkDerivation {
-  name = "Xaw3d-1.6.3";
   src = fetchurl {
-    url = "https://www.x.org/releases/individual/lib/libXaw3d-1.6.3.tar.bz2";
+    url = "https://www.x.org/releases/individual/lib/libXaw3d-${version}.tar.bz2";
     sha256 = "0i653s8g25cc0mimkwid9366bqkbyhdyjhckx7bw77j20hzrkfid";
   };
   dontUseImakeConfigure = true;
diff --git a/pkgs/development/libraries/aalib/default.nix b/pkgs/development/libraries/aalib/default.nix
index b007e71ce44d7..af0fa61740150 100644
--- a/pkgs/development/libraries/aalib/default.nix
+++ b/pkgs/development/libraries/aalib/default.nix
@@ -1,10 +1,11 @@
 {lib, stdenv, fetchurl, ncurses, automake}:
 
-stdenv.mkDerivation {
-  name = "aalib-1.4rc5";
+stdenv.mkDerivation rec {
+  pname = "aalib";
+  version = "1.4rc5";
 
   src = fetchurl {
-    url = "mirror://sourceforge/aa-project/aalib-1.4rc5.tar.gz";
+    url = "mirror://sourceforge/aa-project/aalib-${version}.tar.gz";
     sha256 = "1vkh19gb76agvh4h87ysbrgy82hrw88lnsvhynjf4vng629dmpgv";
   };
 
diff --git a/pkgs/development/libraries/ace/default.nix b/pkgs/development/libraries/ace/default.nix
index 35f78d4afeb46..df390ec1668da 100644
--- a/pkgs/development/libraries/ace/default.nix
+++ b/pkgs/development/libraries/ace/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ace";
-  version = "7.0.3";
+  version = "7.0.5";
 
   src = fetchurl {
     url = "https://download.dre.vanderbilt.edu/previous_versions/ACE-${version}.tar.bz2";
-    sha256 = "sha256-aKSxKYJ2OmxCDHwBrfUMenT9LYzFYH5P3R8q/QhkM+c=";
+    sha256 = "sha256-Q4v0HhhKUmLit5+V7bb9g4T7fqaeJJxU512vBZqNl1c=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/acl/default.nix b/pkgs/development/libraries/acl/default.nix
index 936e793cafef4..1ac577e19cdb8 100644
--- a/pkgs/development/libraries/acl/default.nix
+++ b/pkgs/development/libraries/acl/default.nix
@@ -6,10 +6,11 @@
 # files.
 
 stdenv.mkDerivation rec {
-  name = "acl-2.3.1";
+  pname = "acl";
+  version = "2.3.1";
 
   src = fetchurl {
-    url = "mirror://savannah/acl/${name}.tar.gz";
+    url = "mirror://savannah/acl/acl-${version}.tar.gz";
     sha256 = "sha256-dgxhxokBs3/dXu/ur0wMeia9/disdHoe3/HODiQ8Ea8=";
   };
 
diff --git a/pkgs/development/libraries/agda/agda-categories/default.nix b/pkgs/development/libraries/agda/agda-categories/default.nix
index 267ee041bdc17..12bc6e7e4e192 100644
--- a/pkgs/development/libraries/agda/agda-categories/default.nix
+++ b/pkgs/development/libraries/agda/agda-categories/default.nix
@@ -11,6 +11,13 @@ mkDerivation rec {
     sha256 = "1acb693ad2nrmnn6jxsyrlkc0di3kk2ksj2w9wnyfxrgvfsil7rn";
   };
 
+  # Remove this once new version of agda-categories is released which
+  # directly references standard-library-1.7.1
+  postPatch = ''
+    substituteInPlace agda-categories.agda-lib \
+      --replace 'standard-library-1.7' 'standard-library-1.7.1'
+  '';
+
   buildInputs = [ standard-library ];
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/agda/cubical/default.nix b/pkgs/development/libraries/agda/cubical/default.nix
index 8e654444dd6ac..4cbbf53050944 100644
--- a/pkgs/development/libraries/agda/cubical/default.nix
+++ b/pkgs/development/libraries/agda/cubical/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "cubical";
-  version = "0.3pred5030a9";
+  version = "0.4prec3e097a";
 
   src = fetchFromGitHub {
     repo = pname;
     owner = "agda";
-    rev = "d5030a9c89070255fc575add4e9f37b97e6a0c0c";
-    sha256 = "18achbxap4ikydigmz3m3xjfn3i9dw4rn8yih82vrlc01j02nqpi";
+    rev = "c3e097a98c84083550fa31101346bd42a0501add";
+    sha256 = "101cni2a9xvia1mglb94z61jm8xk9r5kc1sn44cri0qsmk1zbqxs";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/libraries/agda/standard-library/default.nix b/pkgs/development/libraries/agda/standard-library/default.nix
index 99cb863a598de..bad3a02470e45 100644
--- a/pkgs/development/libraries/agda/standard-library/default.nix
+++ b/pkgs/development/libraries/agda/standard-library/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "standard-library";
-  version = "1.7";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     repo = "agda-stdlib";
     owner = "agda";
     rev = "v${version}";
-    sha256 = "14h3jprm6924g9576v25axn9v6xnip354hvpzlcqsc5qqyj7zzjs";
+    sha256 = "0khl12jvknsvjsq3l5cbp2b5qlw983qbymi1dcgfz9z0b92si3r0";
   };
 
   nativeBuildInputs = [ (ghcWithPackages (self : [ self.filemanip ])) ];
diff --git a/pkgs/development/libraries/agg/default.nix b/pkgs/development/libraries/agg/default.nix
index e5ce7537f250a..bfa7449b04c65 100644
--- a/pkgs/development/libraries/agg/default.nix
+++ b/pkgs/development/libraries/agg/default.nix
@@ -32,10 +32,12 @@ stdenv.mkDerivation rec {
     sh autogen.sh
   '';
 
-  configureFlags = lib.optionals stdenv.isLinux [
+  configureFlags = [
+    (lib.strings.enableFeature stdenv.isLinux "platform")
+    "--enable-examples=no"
+  ] ++ lib.optionals stdenv.isLinux [
     "--x-includes=${lib.getDev libX11}/include"
     "--x-libraries=${lib.getLib libX11}/lib"
-    "--enable-examples=no"
   ];
 
   # libtool --tag=CXX --mode=link g++ -g -O2 libexamples.la ../src/platform/X11/libaggplatformX11.la ../src/libagg.la -o alpha_mask2 alpha_mask2.o
diff --git a/pkgs/development/libraries/amdvlk/default.nix b/pkgs/development/libraries/amdvlk/default.nix
index de3c2bc4a0722..6c9650cacca94 100644
--- a/pkgs/development/libraries/amdvlk/default.nix
+++ b/pkgs/development/libraries/amdvlk/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchRepoProject
+, writeScript
 , cmake
 , ninja
 , patchelf
@@ -21,17 +22,18 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "amdvlk";
-  version = "2021.Q3.7";
+  version = "2021.Q4.2";
 
   src = fetchRepoProject {
     name = "${pname}-src";
     manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
     rev = "refs/tags/v-${version}";
-    sha256 = "sha256-0Q6c10lQSxgqOB6X6F8LyeF2aoyicmp0tZlknuZjQHE=";
+    sha256 = "DpylZjIqWmCnUI0lEvd/HQcY+lr8asMurt1K9MI3qQw=";
   };
 
   buildInputs = [
     expat
+    libdrm
     ncurses
     openssl
     wayland
@@ -66,16 +68,36 @@ in stdenv.mkDerivation rec {
   cmakeDir = "../drivers/xgl";
 
   installPhase = ''
+    runHook preInstall
+
     install -Dm755 -t $out/lib icd/amdvlk${suffix}.so
     install -Dm644 -t $out/share/vulkan/icd.d icd/amd_icd${suffix}.json
     install -Dm644 -t $out/share/vulkan/implicit_layer.d icd/amd_icd${suffix}.json
 
     patchelf --set-rpath "$rpath" $out/lib/amdvlk${suffix}.so
+
+    runHook postInstall
   '';
 
   # Keep the rpath, otherwise vulkaninfo and vkcube segfault
   dontPatchELF = true;
 
+  passthru.updateScript = writeScript "update.sh" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p coreutils curl gnused jq common-updater-scripts
+
+    function setHash() {
+      sed -i "pkgs/development/libraries/amdvlk/default.nix" -e 's,sha256 = "[^.'"'"']*",sha256 = "'"$1"'",'
+    }
+
+    version="$(curl -sL "https://api.github.com/repos/GPUOpen-Drivers/AMDVLK/releases?per_page=1" | jq '.[0].tag_name | split("-") | .[1]' --raw-output)"
+    sed -i "pkgs/development/libraries/amdvlk/default.nix" -e 's/version = "[^.'"'"']*"/version = "'"$version"'"/'
+
+    setHash "$(nix-instantiate --eval -A lib.fakeSha256 | xargs echo)"
+    hash="$(nix to-base64 $(nix-build -A amdvlk 2>&1 | tail -n3 | grep 'got:' | cut -d: -f2- | xargs echo || true))"
+    setHash "$hash"
+  '';
+
   meta = with lib; {
     description = "AMD Open Source Driver For Vulkan";
     homepage = "https://github.com/GPUOpen-Drivers/AMDVLK";
diff --git a/pkgs/development/libraries/apache-activemq/default.nix b/pkgs/development/libraries/apache-activemq/default.nix
index 13305d312736b..b188754607d55 100644
--- a/pkgs/development/libraries/apache-activemq/default.nix
+++ b/pkgs/development/libraries/apache-activemq/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "apache-activemq";
-  version = "5.16.2";
+  version = "5.16.3";
 
   src = fetchurl {
-    sha256 = "sha256-IS/soe5Lx1C+/UWnNcv+8AwMmu5FHvURbpkTMMGrEFs=";
+    sha256 = "sha256-GEbaKYXsZCU+zEGlTxR3cx60dQ/oQKndn9/uiOXJQlI=";
     url = "mirror://apache/activemq/${version}/${pname}-${version}-bin.tar.gz";
   };
 
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    homepage = "http://activemq.apache.org/";
+    homepage = "https://activemq.apache.org/";
     description = "Messaging and Integration Patterns server written in Java";
     license = lib.licenses.asl20;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/apr/default.nix b/pkgs/development/libraries/apr/default.nix
index 0292fb223e7c2..e2db4db80e29b 100644
--- a/pkgs/development/libraries/apr/default.nix
+++ b/pkgs/development/libraries/apr/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    homepage = "http://apr.apache.org/";
+    homepage = "https://apr.apache.org/";
     description = "The Apache Portable Runtime library";
     platforms = platforms.all;
     license = licenses.asl20;
diff --git a/pkgs/development/libraries/arb/default.nix b/pkgs/development/libraries/arb/default.nix
index 393639ea558b0..e47dcd8e0ba20 100644
--- a/pkgs/development/libraries/arb/default.nix
+++ b/pkgs/development/libraries/arb/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "arb";
-  version = "2.20.0";
+  version = "2.21.1";
 
   src = fetchFromGitHub {
     owner = "fredrik-johansson";
     repo = pname;
     rev = version;
-    sha256 = "sha256-HOIbdkVV7NKowIGhDdn/S8unIRV469OnRHiuiCGaWgk=";
+    sha256 = "sha256-OBY2gKVnvrZLVrv+d6rXQLo026mrGB9eyNV4LESgrNI=";
   };
 
   buildInputs = [ mpir gmp mpfr flint ];
diff --git a/pkgs/development/libraries/armadillo/default.nix b/pkgs/development/libraries/armadillo/default.nix
index 6e9f67a9a33c2..839a59edfe74b 100644
--- a/pkgs/development/libraries/armadillo/default.nix
+++ b/pkgs/development/libraries/armadillo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "armadillo";
-  version = "10.6.2";
+  version = "10.7.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
-    sha256 = "sha256-KoA9b4921AfbnBXtw4lJZSOMjliflMyQeoNz7pRXKKg=";
+    sha256 = "sha256-LBsyxbJZsF40vC3N4cq1ic/LtYF5xyqTxdquoeOVBlI=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/arrow-cpp/default.nix b/pkgs/development/libraries/arrow-cpp/default.nix
index 36e98bde70300..5138a9654522f 100644
--- a/pkgs/development/libraries/arrow-cpp/default.nix
+++ b/pkgs/development/libraries/arrow-cpp/default.nix
@@ -38,6 +38,7 @@
 , zstd
 , enableShared ? !stdenv.hostPlatform.isStatic
 , enableFlight ? !stdenv.isDarwin # libnsl is not supported on darwin
+, enableJemalloc ? !(stdenv.isAarch64 && stdenv.isDarwin)
   # boost/process is broken in 1.69 on darwin, but fixed in 1.70 and
   # non-existent in older versions
   # see https://github.com/boostorg/process/issues/55
@@ -53,8 +54,8 @@ let
   arrow-testing = fetchFromGitHub {
     owner = "apache";
     repo = "arrow-testing";
-    rev = "a60b715263d9bbf7e744527fb0c084b693f58043";
-    hash = "sha256-Dz1dCV0m5Y24qzXdVaqrZ7hK3MRSb4GF0PXrjMAsjZU=";
+    rev = "1d8525e109a12a8c67c489eba48715a199609153";
+    hash = "sha256-tesDW/1yRyhZtpLbPvCVEsocs6KtstYofxB5GiSMEFM=";
   };
 
   parquet-testing = fetchFromGitHub {
@@ -67,16 +68,16 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "arrow-cpp";
-  version = "6.0.0";
+  version = "6.0.1";
 
   src = fetchurl {
     url =
       "mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz";
-    hash = "sha256-adJo+egtPr71la0b3IPUywKyDBgZRqaGMfZkXXwfepA=";
+    hash = "sha256-N4az0t+VTQeLPmj5jS5a7Lqj+irM8HXXo6E8GHucUpQ=";
   };
   sourceRoot = "apache-arrow-${version}/cpp";
 
-  ARROW_JEMALLOC_URL = jemalloc.src;
+  ${if enableJemalloc then "ARROW_JEMALLOC_URL" else null} = jemalloc.src;
 
   ARROW_MIMALLOC_URL = fetchFromGitHub {
     # From
@@ -140,7 +141,7 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     patchShebangs build-support/
     substituteInPlace "src/arrow/vendored/datetime/tz.cpp" \
-      --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
+      --replace 'discover_tz_dir();' '"${tzdata}/share/zoneinfo";'
   '';
 
   cmakeFlags = [
@@ -155,6 +156,7 @@ stdenv.mkDerivation rec {
     "-DARROW_COMPUTE=ON"
     "-DARROW_CSV=ON"
     "-DARROW_DATASET=ON"
+    "-DARROW_JEMALLOC=${if enableJemalloc then "ON" else "OFF"}"
     "-DARROW_JSON=ON"
     "-DARROW_PLASMA=ON"
     # Disable Python for static mode because openblas is currently broken there.
@@ -197,6 +199,7 @@ stdenv.mkDerivation rec {
         "S3RegionResolutionTest.PublicBucket"
         "S3RegionResolutionTest.RestrictedBucket"
         "TestMinioServer.Connect"
+        "TestS3FS.GetFileInfoRoot"
         "TestS3FS.OpenOutputStreamBackgroundWrites"
         "TestS3FS.OpenOutputStreamDestructorBackgroundWrites"
         "TestS3FS.OpenOutputStreamDestructorSyncWrite"
@@ -236,4 +239,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = with maintainers; [ tobim veprbl cpcloud ];
   };
+  passthru = {
+    inherit enableFlight enableJemalloc enableS3 enableGcs;
+  };
 }
diff --git a/pkgs/development/libraries/aspell/dictionaries.nix b/pkgs/development/libraries/aspell/dictionaries.nix
index 81f4bb6c2dce0..c0d9d87aa4223 100644
--- a/pkgs/development/libraries/aspell/dictionaries.nix
+++ b/pkgs/development/libraries/aspell/dictionaries.nix
@@ -41,10 +41,14 @@ let
     stdenv.mkDerivation ({
       name = "aspell-dict-${shortName}";
 
-      buildInputs = [aspell which];
+      strictDeps = true;
+
+      nativeBuildInputs = [ aspell which ];
 
       dontAddPrefix = true;
 
+      configurePlatforms = [ ];
+
       preBuild = "makeFlagsArray=(dictdir=$out/lib/aspell datadir=$out/lib/aspell)";
 
       meta = {
diff --git a/pkgs/development/libraries/assimp/default.nix b/pkgs/development/libraries/assimp/default.nix
index a2cd3a2a45710..a98242f9c7c5a 100644
--- a/pkgs/development/libraries/assimp/default.nix
+++ b/pkgs/development/libraries/assimp/default.nix
@@ -2,13 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "assimp";
-  version = "5.0.1";
+  version = "5.1.3";
+  outputs = [ "out" "lib" "dev" ];
 
   src = fetchFromGitHub{
     owner = "assimp";
     repo = "assimp";
     rev = "v${version}";
-    sha256 = "00vxzfcrs856qnyk806wqr67nmpjk06mjby0fqmyhm6i1jj2hg1w";
+    hash = "sha256-GNSfaP8O5IsjGwtC3DFaV4OiMMUXIcmHmz+5TCT/HP8=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -16,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A library to import various 3D model formats";
-    homepage = "http://assimp.sourceforge.net/";
+    homepage = "https://www.assimp.org/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ehmry ];
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/development/libraries/aubio/default.nix b/pkgs/development/libraries/aubio/default.nix
index e1f2d326879c2..22cac39dbe10c 100644
--- a/pkgs/development/libraries/aubio/default.nix
+++ b/pkgs/development/libraries/aubio/default.nix
@@ -3,10 +3,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "aubio-0.4.9";
+  pname = "aubio";
+  version = "0.4.9";
 
   src = fetchurl {
-    url = "https://aubio.org/pub/${name}.tar.bz2";
+    url = "https://aubio.org/pub/aubio-${version}.tar.bz2";
     sha256 = "1npks71ljc48w6858l9bq30kaf5nph8z0v61jkfb70xb9np850nl";
   };
 
diff --git a/pkgs/development/libraries/audio/libbass/default.nix b/pkgs/development/libraries/audio/libbass/default.nix
index ab97090e88994..a8648a1a1c7bb 100644
--- a/pkgs/development/libraries/audio/libbass/default.nix
+++ b/pkgs/development/libraries/audio/libbass/default.nix
@@ -60,6 +60,8 @@ let
       homepage = "https://www.un4seen.com/";
       license = licenses.unfreeRedistributable;
       platforms = builtins.attrNames bass.so;
+      # until upstream has stable URLs, this package is prone to always being broken
+      broken = true;
     };
   };
 
diff --git a/pkgs/development/libraries/audio/ntk/default.nix b/pkgs/development/libraries/audio/ntk/default.nix
index ecb0215a2287f..d101e2a960c62 100644
--- a/pkgs/development/libraries/audio/ntk/default.nix
+++ b/pkgs/development/libraries/audio/ntk/default.nix
@@ -1,18 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, cairo, libjpeg, libXft, pkg-config, python2, wafHook }:
+{ lib, stdenv, fetchFromGitHub, cairo, libjpeg, libXft, pkg-config, python3, wafHook }:
 
 stdenv.mkDerivation rec {
   pname = "ntk";
-  version = "1.3.1000";
+  version = "1.3.1001";
   src = fetchFromGitHub {
-    owner = "original-male";
+    owner = "linuxaudio";
     repo = "ntk";
     rev = "v${version}";
-    sha256 = "0j38mhnfqy6swcrnc5zxcwlqi8b1pgklyghxk6qs1lf4japv2zc0";
+    sha256 = "sha256-NyEdg6e+9CI9V+TIgdpPyH1ei+Vq8pUxD3wPzWY5fEU=";
   };
 
   nativeBuildInputs = [ pkg-config wafHook ];
   buildInputs = [
-    cairo libjpeg libXft python2
+    cairo libjpeg libXft python3
   ];
 
   meta = {
diff --git a/pkgs/development/libraries/audio/rtmidi/default.nix b/pkgs/development/libraries/audio/rtmidi/default.nix
index 6c75b9866e897..2ba981ae46edd 100644
--- a/pkgs/development/libraries/audio/rtmidi/default.nix
+++ b/pkgs/development/libraries/audio/rtmidi/default.nix
@@ -42,6 +42,9 @@ stdenv.mkDerivation rec {
       url = "https://github.com/thestk/rtmidi/pull/230/commits/892fe5492f0e787484fa4a37027b08c265ce001f.patch";
       sha256 = "0ca9m42xa3gmycimzvzvl67wa266xq9pfp1b4v555rh2fp52kbcj";
     })
+
+    # https://github.com/thestk/rtmidi/pull/277
+    ./macos_include_targetconditionals.patch
   ];
 
   postPatch = ''
diff --git a/pkgs/development/libraries/audio/rtmidi/macos_include_targetconditionals.patch b/pkgs/development/libraries/audio/rtmidi/macos_include_targetconditionals.patch
new file mode 100644
index 0000000000000..58eaf5f490b1a
--- /dev/null
+++ b/pkgs/development/libraries/audio/rtmidi/macos_include_targetconditionals.patch
@@ -0,0 +1,13 @@
+diff -ru a/RtMidi.cpp b/RtMidi.cpp
+--- a/RtMidi.cpp	2021-12-23 16:46:33.000000000 -0500
++++ b/RtMidi.cpp	2021-12-23 16:48:19.000000000 -0500
+@@ -39,6 +39,9 @@
+ 
+ #include "RtMidi.h"
+ #include <sstream>
++#if defined(__APPLE__)
++#include <TargetConditionals.h>
++#endif
+ 
+ #if defined(__MACOSX_CORE__)
+   #if TARGET_OS_IPHONE
diff --git a/pkgs/development/libraries/audio/suil/default.nix b/pkgs/development/libraries/audio/suil/default.nix
index 1c978a18f8f98..ac10472e014e3 100644
--- a/pkgs/development/libraries/audio/suil/default.nix
+++ b/pkgs/development/libraries/audio/suil/default.nix
@@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
     description = "A lightweight C library for loading and wrapping LV2 plugin UIs";
     license = licenses.mit;
     maintainers = with maintainers; [ goibhniu ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/audiofile/default.nix b/pkgs/development/libraries/audiofile/default.nix
index 54df6d7b25508..64c6d8ee4f516 100644
--- a/pkgs/development/libraries/audiofile/default.nix
+++ b/pkgs/development/libraries/audiofile/default.nix
@@ -11,7 +11,8 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "audiofile-0.3.6";
+  pname = "audiofile";
+  version = "0.3.6";
 
   buildInputs =
     lib.optionals stdenv.isLinux [
@@ -21,7 +22,7 @@ stdenv.mkDerivation rec {
     ];
 
   src = fetchurl {
-    url = "https://audiofile.68k.org/${name}.tar.gz";
+    url = "https://audiofile.68k.org/audiofile-${version}.tar.gz";
     sha256 = "0rb927zknk9kmhprd8rdr4azql4gn2dp75a36iazx2xhkbqhvind";
   };
 
diff --git a/pkgs/development/libraries/avro-c++/default.nix b/pkgs/development/libraries/avro-c++/default.nix
index ad373300e02fb..7ff60b9659534 100644
--- a/pkgs/development/libraries/avro-c++/default.nix
+++ b/pkgs/development/libraries/avro-c++/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, cmake, boost, python2}:
+{ lib, stdenv, fetchurl, cmake, boost, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "avro-c++";
@@ -9,8 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1ars58bfw83s8f1iqbhnqp4n9wc9cxsph0gs2a8k7r9fi09vja2k";
   };
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ python2 boost ];
+  nativeBuildInputs = [ cmake python3 ];
+  buildInputs = [ boost ];
 
   preConfigure = ''
     substituteInPlace test/SchemaTests.cc --replace "BOOST_CHECKPOINT" "BOOST_TEST_CHECKPOINT"
diff --git a/pkgs/development/libraries/aws-c-auth/default.nix b/pkgs/development/libraries/aws-c-auth/default.nix
index 7de3523281000..ad1f3483cff0b 100644
--- a/pkgs/development/libraries/aws-c-auth/default.nix
+++ b/pkgs/development/libraries/aws-c-auth/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-auth";
-  version = "0.6.5";
+  version = "0.6.8";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-c-auth";
     rev = "v${version}";
-    sha256 = "sha256-d3UdZucicp+Z0EjWNE5Xa/EMIGPk6GtQc7f0H8RBHA8=";
+    sha256 = "sha256-cZyWe3kX5JiB6th1VkkBFKa2MEilRtU+tHvu7c9e+Yw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/aws-c-cal/default.nix b/pkgs/development/libraries/aws-c-cal/default.nix
index d0bcfc9010842..87d66e15355da 100644
--- a/pkgs/development/libraries/aws-c-cal/default.nix
+++ b/pkgs/development/libraries/aws-c-cal/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-cal";
-  version = "0.5.11";
+  version = "0.5.12";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-rmEsDsY50IKpCpQTvAFEkgCtuHwwgwMwcRpBUyyZGGc=";
+    sha256 = "sha256-KzuaT9c1l9Uhyj6IEy8JfDYzEYI2OcUkq+KRDoJx+Cc=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/aws-c-common/default.nix b/pkgs/development/libraries/aws-c-common/default.nix
index c927ca53336a3..e7a09a19ece56 100644
--- a/pkgs/development/libraries/aws-c-common/default.nix
+++ b/pkgs/development/libraries/aws-c-common/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-common";
-  version = "0.6.14";
+  version = "0.6.17";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-JEaRB0k6zyk5UKuB2hEZUAsnp2SuI9mrok/EvwclUJk=";
+    sha256 = "sha256-+FzTEpotxco4+9gLVUL+rkCWoMjRCorKQ47JINHsnNA=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/aws-c-http/default.nix b/pkgs/development/libraries/aws-c-http/default.nix
index a577472605133..a25231ee88316 100644
--- a/pkgs/development/libraries/aws-c-http/default.nix
+++ b/pkgs/development/libraries/aws-c-http/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-http";
-  version = "0.6.8";
+  version = "0.6.10";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-c-http";
     rev = "v${version}";
-    sha256 = "sha256-JqFvKoWW/2UV0jcR50QlD+LEPwQ4qwPoaPpioAuwf90=";
+    sha256 = "sha256-R+teEKSQjSFYt3+XXvooAy4GJwN4yzEhJtiuknBZIgU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/aws-c-io/default.nix b/pkgs/development/libraries/aws-c-io/default.nix
index 1ff28dccc9efe..2cfba1bd2046e 100644
--- a/pkgs/development/libraries/aws-c-io/default.nix
+++ b/pkgs/development/libraries/aws-c-io/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-io";
-  version = "0.10.12";
+  version = "0.10.13";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-8v38NN9qrgdrshMx3l2wLrl7l77HjsW2GPu8IwkclJQ=";
+    sha256 = "sha256-wdsSxEY9FwJoqdi0S8TNoyq8oxoZORKWeorsSpn+1IY=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/aws-c-mqtt/default.nix b/pkgs/development/libraries/aws-c-mqtt/default.nix
index 39a75c5116223..f75b744c3a91f 100644
--- a/pkgs/development/libraries/aws-c-mqtt/default.nix
+++ b/pkgs/development/libraries/aws-c-mqtt/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-mqtt";
-  version = "0.7.8";
+  version = "0.7.9";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-c-mqtt";
     rev = "v${version}";
-    sha256 = "19j6nw2v36c4yff4p0fbf0748s06fd5r9cp2yakry9ybn1ada99c";
+    sha256 = "sha256-YMAqK4DOFA5TkMNwLHRk1m14V8lN6X5SDAwrTYWdGMc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/aws-crt-cpp/default.nix b/pkgs/development/libraries/aws-crt-cpp/default.nix
index 68414931e4133..5d4a44ccf1595 100644
--- a/pkgs/development/libraries/aws-crt-cpp/default.nix
+++ b/pkgs/development/libraries/aws-crt-cpp/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-crt-cpp";
-  version = "0.17.0";
+  version = "0.17.8";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-crt-cpp";
     rev = "v${version}";
-    sha256 = "0ijvyg3hrh1d0npca62syz8qy6nkqh90fq54cqyln0p333z16q52";
+    sha256 = "sha256-eHABIg3v5ycpQzacW/8C74PT6yDOXGmJqDa9P1hN7Mo=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/bashup-events/generic.nix b/pkgs/development/libraries/bashup-events/generic.nix
index fd4e2cfe9f5f2..2f99a26168163 100644
--- a/pkgs/development/libraries/bashup-events/generic.nix
+++ b/pkgs/development/libraries/bashup-events/generic.nix
@@ -3,7 +3,6 @@
   lib
 , resholvePackage
 , bash
-, shellcheck
 , doCheck ? true
 , doInstallCheck ? true
   # variant-specific
@@ -50,12 +49,10 @@ resholvePackage rec {
   '';
 
   inherit doCheck;
-  checkInputs = [ shellcheck bash ];
+  checkInputs = [ bash ];
 
-  # check based on https://github.com/bashup/events/blob/master/.dkrc
   checkPhase = ''
     runHook preCheck
-    SHELLCHECK_OPTS='-e SC2016,SC2145' ${shellcheck}/bin/shellcheck ./bashup.events
     ${bash}/bin/bash -n ./bashup.events
     ${bash}/bin/bash ./bashup.events
     runHook postCheck
diff --git a/pkgs/development/libraries/bctoolbox/default.nix b/pkgs/development/libraries/bctoolbox/default.nix
index c1d2813a4f2ac..f03014b2cd701 100644
--- a/pkgs/development/libraries/bctoolbox/default.nix
+++ b/pkgs/development/libraries/bctoolbox/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "bctoolbox";
-  version = "5.0.0";
+  version = "5.0.55";
 
   nativeBuildInputs = [ cmake bcunit ];
   buildInputs = [ mbedtls ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "sha256-/jv59ZeELfP7PokzthvZNL4FS3tyzRmCHp4I/Lp8BJM=";
+    sha256 = "sha256-fZ+8XBTZ6/wNd8odzg20dAXtbjRudI6Nw0hKC9bopGo=";
   };
 
   # Do not build static libraries
diff --git a/pkgs/development/libraries/beecrypt/default.nix b/pkgs/development/libraries/beecrypt/default.nix
index 6b86fca868f6b..f6c61254c1010 100644
--- a/pkgs/development/libraries/beecrypt/default.nix
+++ b/pkgs/development/libraries/beecrypt/default.nix
@@ -1,9 +1,11 @@
 {lib, stdenv, fetchurl, m4}:
 
-stdenv.mkDerivation {
-  name = "beecrypt-4.2.1";
+stdenv.mkDerivation rec {
+  pname = "beecrypt";
+  version = "4.2.1";
+
   src = fetchurl {
-    url = "mirror://sourceforge/beecrypt/beecrypt-4.2.1.tar.gz";
+    url = "mirror://sourceforge/beecrypt/beecrypt-${version}.tar.gz";
     sha256 = "0pf5k1c4nsj77jfq5ip0ra1gzx2q47xaa0s008fnn6hd11b1yvr8";
   };
   buildInputs = [ m4 ];
diff --git a/pkgs/development/libraries/boost-process/default.nix b/pkgs/development/libraries/boost-process/default.nix
index 148e27faa2b66..551c1247949ea 100644
--- a/pkgs/development/libraries/boost-process/default.nix
+++ b/pkgs/development/libraries/boost-process/default.nix
@@ -1,18 +1,19 @@
 { lib, stdenv, fetchurl, unzip }:
 
-stdenv.mkDerivation {
-  name = "boost-process-0.5";
+stdenv.mkDerivation rec {
+  pname = "boost-process";
+  version = "0.5";
 
   src = fetchurl {
-    url = "http://www.highscore.de/boost/process0.5/process.zip";
+    url = "http://www.highscore.de/boost/process${version}/process.zip";
     sha256 = "1v9y9pffb2b7p642kp9ic4z6kg42ziizmyvbgrqd1ci0i4gn0831";
   };
 
   nativeBuildInputs = [ unzip ];
 
   unpackPhase = ''
-    mkdir $name
-    cd $name
+    mkdir boost-process-$version
+    cd boost-process-$version
     unzip $src
   '';
 
diff --git a/pkgs/development/libraries/boost/1.55.nix b/pkgs/development/libraries/boost/1.55.nix
index bcb452ea4f866..b01f62e9dea65 100644
--- a/pkgs/development/libraries/boost/1.55.nix
+++ b/pkgs/development/libraries/boost/1.55.nix
@@ -1,12 +1,12 @@
 { callPackage, fetchurl, ... } @ args:
 
-callPackage ./generic.nix (args // {
+callPackage ./generic.nix (args // rec {
   version = "1.55.0";
 
   patches = [ ./clang-math.patch ./clang-math-2.patch ./gcc-5.patch ];
 
   src = fetchurl {
-    url = "mirror://sourceforge/boost/boost_1_55_0.tar.bz2";
+    url = "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2";
     sha256 = "0lkv5dzssbl5fmh2nkaszi8x9qbj80pr4acf9i26sj3rvlih1w7z";
   };
 })
diff --git a/pkgs/development/libraries/boost/1.59.nix b/pkgs/development/libraries/boost/1.59.nix
index 0f6e9a35b6e07..88e584f5e4159 100644
--- a/pkgs/development/libraries/boost/1.59.nix
+++ b/pkgs/development/libraries/boost/1.59.nix
@@ -1,10 +1,10 @@
 { callPackage, fetchurl, ... } @ args:
 
-callPackage ./generic.nix (args // {
+callPackage ./generic.nix (args // rec {
   version = "1.59.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/boost/boost_1_59_0.tar.bz2";
+    url = "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2";
     sha256 = "1jj1aai5rdmd72g90a3pd8sw9vi32zad46xv5av8fhnr48ir6ykj";
   };
 })
diff --git a/pkgs/development/libraries/boost/1.60.nix b/pkgs/development/libraries/boost/1.60.nix
index 4bc7a1cc7327d..0cf81a0602935 100644
--- a/pkgs/development/libraries/boost/1.60.nix
+++ b/pkgs/development/libraries/boost/1.60.nix
@@ -1,10 +1,10 @@
 { callPackage, fetchurl, ... } @ args:
 
-callPackage ./generic.nix (args // {
+callPackage ./generic.nix (args // rec {
   version = "1.60.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/boost/boost_1_60_0.tar.bz2";
+    url = "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2";
     sha256 = "0fzx6dwqbrkd4bcd8pjv0fpapwmrxxwr8yx9g67lihlsk3zzysk8";
   };
 
diff --git a/pkgs/development/libraries/boost/1.65.nix b/pkgs/development/libraries/boost/1.65.nix
index 764f38d5b7472..6238a88424ff5 100644
--- a/pkgs/development/libraries/boost/1.65.nix
+++ b/pkgs/development/libraries/boost/1.65.nix
@@ -1,10 +1,10 @@
 { callPackage, fetchurl, ... } @ args:
 
-callPackage ./generic.nix (args // {
+callPackage ./generic.nix (args // rec {
   version = "1.65.1";
 
   src = fetchurl {
-    url = "mirror://sourceforge/boost/boost_1_65_1.tar.bz2";
+    url = "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2";
     # SHA256 from http://www.boost.org/users/history/version_1_65_1.html
     sha256 = "9807a5d16566c57fd74fb522764e0b134a8bbe6b6e8967b83afefd30dcd3be81";
   };
diff --git a/pkgs/development/libraries/boost/1.66.nix b/pkgs/development/libraries/boost/1.66.nix
index af61aa51944c7..5bc3dcbff5acd 100644
--- a/pkgs/development/libraries/boost/1.66.nix
+++ b/pkgs/development/libraries/boost/1.66.nix
@@ -1,10 +1,10 @@
 { callPackage, fetchurl, ... } @ args:
 
-callPackage ./generic.nix (args // {
+callPackage ./generic.nix (args // rec {
   version = "1.66.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/boost/boost_1_66_0.tar.bz2";
+    url = "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2";
     # SHA256 from http://www.boost.org/users/history/version_1_66_0.html
     sha256 = "5721818253e6a0989583192f96782c4a98eb6204965316df9f5ad75819225ca9";
   };
diff --git a/pkgs/development/libraries/boost/1.68.nix b/pkgs/development/libraries/boost/1.68.nix
index 920dd9a300b14..7fb85d7239f25 100644
--- a/pkgs/development/libraries/boost/1.68.nix
+++ b/pkgs/development/libraries/boost/1.68.nix
@@ -1,10 +1,10 @@
 { callPackage, fetchurl, fetchpatch, ... } @ args:
 
-callPackage ./generic.nix (args // {
+callPackage ./generic.nix (args // rec {
   version = "1.68.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/boost/boost_1_68_0.tar.bz2";
+    url = "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2";
     # SHA256 from http://www.boost.org/users/history/version_1_68_0.html
     sha256 = "7f6130bc3cf65f56a618888ce9d5ea704fa10b462be126ad053e80e553d6d8b7";
   };
diff --git a/pkgs/development/libraries/boost/1.69.nix b/pkgs/development/libraries/boost/1.69.nix
index 7292356ecd1c4..d934e3267fcb2 100644
--- a/pkgs/development/libraries/boost/1.69.nix
+++ b/pkgs/development/libraries/boost/1.69.nix
@@ -1,10 +1,10 @@
 { callPackage, fetchurl, fetchpatch, ... } @ args:
 
-callPackage ./generic.nix (args // {
+callPackage ./generic.nix (args // rec {
   version = "1.69.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/boost/boost_1_69_0.tar.bz2";
+    url = "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2";
     # SHA256 from http://www.boost.org/users/history/version_1_69_0.html
     sha256 = "8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406";
   };
diff --git a/pkgs/development/libraries/boost/1.70.nix b/pkgs/development/libraries/boost/1.70.nix
index 3b898cfc0ae5b..bc70797acda8d 100644
--- a/pkgs/development/libraries/boost/1.70.nix
+++ b/pkgs/development/libraries/boost/1.70.nix
@@ -1,10 +1,10 @@
 { callPackage, fetchurl, fetchpatch, ... } @ args:
 
-callPackage ./generic.nix (args // {
+callPackage ./generic.nix (args // rec {
   version = "1.70.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/boost/boost_1_70_0.tar.bz2";
+    url = "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2";
     # SHA256 from http://www.boost.org/users/history/version_1_70_0.html
     sha256 = "430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778";
   };
diff --git a/pkgs/development/libraries/boost/1.72.nix b/pkgs/development/libraries/boost/1.72.nix
index 97dad9b6c8a80..bb2fccdfaf786 100644
--- a/pkgs/development/libraries/boost/1.72.nix
+++ b/pkgs/development/libraries/boost/1.72.nix
@@ -4,10 +4,9 @@ callPackage ./generic.nix (args // rec {
   version = "1.72.0";
 
   src = fetchurl {
-    #url = "mirror://sourceforge/boost/boost_1_72_0.tar.bz2";
     urls = [
-      "mirror://sourceforge/boost/boost_1_72_0.tar.bz2"
-      "https://dl.bintray.com/boostorg/release/1.72.0/source/boost_1_72_0.tar.bz2"
+      "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
+      "https://dl.bintray.com/boostorg/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
     ];
     # SHA256 from http://www.boost.org/users/history/version_1_72_0.html
     sha256 = "59c9b274bc451cf91a9ba1dd2c7fdcaf5d60b1b3aa83f2c9fa143417cc660722";
diff --git a/pkgs/development/libraries/boost/1.73.nix b/pkgs/development/libraries/boost/1.73.nix
index 289bea197c354..1d53ebcccd75e 100644
--- a/pkgs/development/libraries/boost/1.73.nix
+++ b/pkgs/development/libraries/boost/1.73.nix
@@ -4,10 +4,9 @@ callPackage ./generic.nix (args // rec {
   version = "1.73.0";
 
   src = fetchurl {
-    #url = "mirror://sourceforge/boost/boost_1_73_0.tar.bz2";
     urls = [
-      "mirror://sourceforge/boost/boost_1_73_0.tar.bz2"
-      "https://dl.bintray.com/boostorg/release/1.73.0/source/boost_1_73_0.tar.bz2"
+      "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
+      "https://dl.bintray.com/boostorg/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
     ];
     # SHA256 from http://www.boost.org/users/history/version_1_73_0.html
     sha256 = "4eb3b8d442b426dc35346235c8733b5ae35ba431690e38c6a8263dce9fcbb402";
diff --git a/pkgs/development/libraries/boost/1.74.nix b/pkgs/development/libraries/boost/1.74.nix
index a181ed94c266b..f3a29dafbcd9c 100644
--- a/pkgs/development/libraries/boost/1.74.nix
+++ b/pkgs/development/libraries/boost/1.74.nix
@@ -5,8 +5,8 @@ callPackage ./generic.nix (args // rec {
 
   src = fetchurl {
     urls = [
-      "mirror://sourceforge/boost/boost_1_74_0.tar.bz2"
-      "https://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.tar.bz2"
+      "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
+      "https://dl.bintray.com/boostorg/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
     ];
     # SHA256 from http://www.boost.org/users/history/version_1_74_0.html
     sha256 = "83bfc1507731a0906e387fc28b7ef5417d591429e51e788417fe9ff025e116b1";
diff --git a/pkgs/development/libraries/boost/1.75.nix b/pkgs/development/libraries/boost/1.75.nix
index ff1073bd02681..1432899f99673 100644
--- a/pkgs/development/libraries/boost/1.75.nix
+++ b/pkgs/development/libraries/boost/1.75.nix
@@ -5,8 +5,8 @@ callPackage ./generic.nix (args // rec {
 
   src = fetchurl {
     urls = [
-      "mirror://sourceforge/boost/boost_1_75_0.tar.bz2"
-      "https://dl.bintray.com/boostorg/release/1.75.0/source/boost_1_75_0.tar.bz2"
+      "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
+      "https://dl.bintray.com/boostorg/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
     ];
     # SHA256 from http://www.boost.org/users/history/version_1_75_0.html
     sha256 = "953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb";
diff --git a/pkgs/development/libraries/boost/1.77.nix b/pkgs/development/libraries/boost/1.77.nix
new file mode 100644
index 0000000000000..634523b244ce7
--- /dev/null
+++ b/pkgs/development/libraries/boost/1.77.nix
@@ -0,0 +1,15 @@
+{ callPackage, fetchurl, fetchpatch, ... } @ args:
+
+callPackage ./generic.nix (args // rec {
+  version = "1.77.0";
+
+  src = fetchurl {
+    urls = [
+      "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
+      "https://dl.bintray.com/boostorg/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
+    ];
+    # SHA256 from http://www.boost.org/users/history/version_1_77_0.html
+    sha256 = "sha256-/J+F/AMOIzFCkIJBr3qEbmBjCqc4jeml+vsfOiaECFQ=";
+  };
+})
+
diff --git a/pkgs/development/libraries/boost/default.nix b/pkgs/development/libraries/boost/default.nix
index 3b79378605f28..aeb0878a0d11f 100644
--- a/pkgs/development/libraries/boost/default.nix
+++ b/pkgs/development/libraries/boost/default.nix
@@ -44,4 +44,5 @@ in {
   boost173 = makeBoost ./1.73.nix;
   boost174 = makeBoost ./1.74.nix;
   boost175 = makeBoost ./1.75.nix;
+  boost177 = makeBoost ./1.77.nix;
 }
diff --git a/pkgs/development/libraries/boost/generic.nix b/pkgs/development/libraries/boost/generic.nix
index fdc8f7c21f181..6358df1a555cd 100644
--- a/pkgs/development/libraries/boost/generic.nix
+++ b/pkgs/development/libraries/boost/generic.nix
@@ -137,6 +137,7 @@ stdenv.mkDerivation {
     badPlatforms = optional (versionOlder version "1.59") "aarch64-linux"
                  ++ optional ((versionOlder version "1.57") || version == "1.58") "x86_64-darwin"
                  ++ optionals (versionOlder version "1.73") lib.platforms.riscv;
+    maintainers = with maintainers; [ hjones2199 ];
   };
 
   preConfigure = optionalString useMpi ''
diff --git a/pkgs/development/libraries/boringssl/default.nix b/pkgs/development/libraries/boringssl/default.nix
index 32a4859a1bc91..b9b2e568ce6b9 100644
--- a/pkgs/development/libraries/boringssl/default.nix
+++ b/pkgs/development/libraries/boringssl/default.nix
@@ -36,7 +36,7 @@ buildGoModule {
   cmakeFlags = [ "-GNinja" ] ++ lib.optionals (stdenv.isLinux) [ "-DCMAKE_OSX_ARCHITECTURES=" ];
 
   installPhase = ''
-    mkdir -p $bin/bin $out/include $out/lib
+    mkdir -p $bin/bin $dev $out/lib
 
     mv tool/bssl $bin/bin
 
@@ -44,10 +44,10 @@ buildGoModule {
     mv crypto/libcrypto.a     $out/lib
     mv decrepit/libdecrepit.a $out/lib
 
-    mv ../include/openssl $out/include
+    mv ../include $dev
   '';
 
-  outputs = [ "out" "bin" ];
+  outputs = [ "out" "bin" "dev" ];
 
   meta = with lib; {
     description = "Free TLS/SSL implementation";
diff --git a/pkgs/development/libraries/bzrtp/default.nix b/pkgs/development/libraries/bzrtp/default.nix
index 6ee48a0a042a5..1144f4afaf54f 100644
--- a/pkgs/development/libraries/bzrtp/default.nix
+++ b/pkgs/development/libraries/bzrtp/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "bzrtp";
-  version = "5.0.0";
+  version = "5.0.55";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "sha256-cagRN0DQw1/efCuMWngcF04SE9bViHANaNsQNKB5txA=";
+    sha256 = "sha256-+rUDKdMUeVnGsvG7NgQkN6e+DY2bThIyuPTvqxG6uDk=";
   };
 
   buildInputs = [ bctoolbox sqlite ];
diff --git a/pkgs/development/libraries/capnproto/default.nix b/pkgs/development/libraries/capnproto/default.nix
index 0eaf6eda07a5c..cda5f005f9a2f 100644
--- a/pkgs/development/libraries/capnproto/default.nix
+++ b/pkgs/development/libraries/capnproto/default.nix
@@ -1,15 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, capnproto, cmake }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, capnproto
+, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "capnproto";
-  version = "0.9.0";
+  version = "0.9.1";
 
   # release tarballs are missing some ekam rules
   src = fetchFromGitHub {
     owner = "capnproto";
     repo = "capnproto";
     rev = "v${version}";
-    sha256 = "038i40apywn8sg95kwld4mg9p9m08izcw5xj7mwkmshycmqw65na";
+    sha256 = "0cbiwkmd29abih8rjjm35dfkrkr8c6axbzq3fkryay6jyvpi42c5";
   };
 
   nativeBuildInputs = [ cmake ]
diff --git a/pkgs/development/libraries/ccrtp/default.nix b/pkgs/development/libraries/ccrtp/default.nix
index 39792d4fd6a13..3fdbbd23ecdc5 100644
--- a/pkgs/development/libraries/ccrtp/default.nix
+++ b/pkgs/development/libraries/ccrtp/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, pkg-config, ucommon, openssl, libgcrypt }:
 
 stdenv.mkDerivation rec {
-  name = "ccrtp-2.1.2";
+  pname = "ccrtp";
+  version = "2.1.2";
 
   src = fetchurl {
-    url = "mirror://gnu/ccrtp/${name}.tar.gz";
+    url = "mirror://gnu/ccrtp/ccrtp-${version}.tar.gz";
     sha256 = "17ili8l7zqbbkzr1rcy4hlnazkf50mds41wg6n7bfdsx3c7cldgh";
   };
 
diff --git a/pkgs/development/libraries/cdk/default.nix b/pkgs/development/libraries/cdk/default.nix
index 1a4f617cf469b..2700a9cbad846 100644
--- a/pkgs/development/libraries/cdk/default.nix
+++ b/pkgs/development/libraries/cdk/default.nix
@@ -16,8 +16,16 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-xBbJh793tPGycD18XkM7qUWMi+Uma/RUy/gBrYfnKTY=";
   };
 
+  patches = [
+    # Proposed upstream as https://lists.gnu.org/archive/html/bug-ncurses/2021-12/msg00004.html
+    ./parallel.patch
+  ];
+
+  enableParallelBuilding = true;
+
   meta = with lib; {
     description = "Curses development kit";
+    homepage = "https://invisible-island.net/cdk/";
     license = licenses.bsdOriginal ;
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/cdk/parallel.patch b/pkgs/development/libraries/cdk/parallel.patch
new file mode 100644
index 0000000000000..729c71e96aff1
--- /dev/null
+++ b/pkgs/development/libraries/cdk/parallel.patch
@@ -0,0 +1,13 @@
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -296,7 +296,9 @@ LIB_OBJECT	= @LIB_OBJECT@
+ 
+ all sources :: $(AUTO_SRC)
+ 
+-$(OBJECTS) :	include/cdk_config.h
++# make sure we generate all headers before trying
++# to build first source file.
++$(OBJECTS) :	$(MY_HDR)
+ 
+ #
+ # Standard library directive.
diff --git a/pkgs/development/libraries/cgreen/default.nix b/pkgs/development/libraries/cgreen/default.nix
index 5a1dd2d264007..85532bfd74b03 100644
--- a/pkgs/development/libraries/cgreen/default.nix
+++ b/pkgs/development/libraries/cgreen/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cgreen";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "cgreen-devs";
     repo = "cgreen";
     rev = version;
-    sha256 = "JEpvkM0EZiiQUZRngICNxHbNqS/qjqkEdMPckGbdWac=";
+    sha256 = "sha256-aQrfsiPuNrEMscZrOoONiN665KlNmnOiYj9ZIyzW304=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/clearsilver/default.nix b/pkgs/development/libraries/clearsilver/default.nix
index 73ffd6c12b23a..1a3e261c60ed5 100644
--- a/pkgs/development/libraries/clearsilver/default.nix
+++ b/pkgs/development/libraries/clearsilver/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, fetchpatch, python2 }:
 
 stdenv.mkDerivation rec {
-  name = "clearsilver-0.10.5";
+  pname = "clearsilver";
+  version = "0.10.5";
 
   src = fetchurl {
-    url = "http://www.clearsilver.net/downloads/${name}.tar.gz";
+    url = "http://www.clearsilver.net/downloads/clearsilver-${version}.tar.gz";
     sha256 = "1046m1dpq3nkgxbis2dr2x7hynmy51n64465q78d7pdgvqwa178y";
   };
 
diff --git a/pkgs/development/libraries/cloog/0.18.0.nix b/pkgs/development/libraries/cloog/0.18.0.nix
index c952c1a563b80..12e279797e764 100644
--- a/pkgs/development/libraries/cloog/0.18.0.nix
+++ b/pkgs/development/libraries/cloog/0.18.0.nix
@@ -1,10 +1,11 @@
 { fetchurl, lib, stdenv, gmp, isl }:
 
 stdenv.mkDerivation rec {
-  name = "cloog-0.18.0";
+  pname = "cloog";
+  version = "0.18.0";
 
   src = fetchurl {
-    url = "http://www.bastoul.net/cloog/pages/download/count.php3?url=./${name}.tar.gz";
+    url = "http://www.bastoul.net/cloog/pages/download/count.php3?url=./cloog-${version}.tar.gz";
     sha256 = "1c4aa8dde7886be9cbe0f9069c334843b21028f61d344a2d685f88cb1dcf2228";
   };
 
diff --git a/pkgs/development/libraries/clucene-core/2.x.nix b/pkgs/development/libraries/clucene-core/2.x.nix
index 9c1f3c21cd278..52caa26c9c58b 100644
--- a/pkgs/development/libraries/clucene-core/2.x.nix
+++ b/pkgs/development/libraries/clucene-core/2.x.nix
@@ -1,10 +1,11 @@
 {lib, stdenv, fetchurl, cmake, boost, zlib}:
 
 stdenv.mkDerivation rec {
-  name = "clucene-core-2.3.3.4";
+  pname = "clucene-core";
+  version = "2.3.3.4";
 
   src = fetchurl {
-    url = "mirror://sourceforge/clucene/${name}.tar.gz";
+    url = "mirror://sourceforge/clucene/clucene-core-${version}.tar.gz";
     sha256 = "1arffdwivig88kkx685pldr784njm0249k0rb1f1plwavlrw9zfx";
   };
 
diff --git a/pkgs/development/libraries/clucene-core/default.nix b/pkgs/development/libraries/clucene-core/default.nix
index 8d5b389150a41..6f0eb8dfff008 100644
--- a/pkgs/development/libraries/clucene-core/default.nix
+++ b/pkgs/development/libraries/clucene-core/default.nix
@@ -1,10 +1,11 @@
 {lib, stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "clucene-core-0.9.21b";
+  pname = "clucene-core";
+  version = "0.9.21b";
 
   src = fetchurl {
-    url = "mirror://sourceforge/clucene/${name}.tar.bz2";
+    url = "mirror://sourceforge/clucene/clucene-core-${version}.tar.bz2";
     sha256 = "202ee45af747f18642ae0a088d7c4553521714a511a1a9ec99b8144cf9928317";
   };
 
diff --git a/pkgs/development/libraries/cminpack/default.nix b/pkgs/development/libraries/cminpack/default.nix
index 10d0686043699..02ad6acfbe2a6 100644
--- a/pkgs/development/libraries/cminpack/default.nix
+++ b/pkgs/development/libraries/cminpack/default.nix
@@ -1,10 +1,11 @@
 {lib, stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  name = "cminpack-1.3.6";
+  pname = "cminpack";
+  version = "1.3.6";
 
   src = fetchurl {
-    url = "http://devernay.free.fr/hacks/cminpack/${name}.tar.gz";
+    url = "http://devernay.free.fr/hacks/cminpack/cminpack-${version}.tar.gz";
     sha256 = "17yh695aim508x1kn9zf6g13jxwk3pi3404h5ix4g5lc60hzs1rw";
   };
 
diff --git a/pkgs/development/libraries/codec2/default.nix b/pkgs/development/libraries/codec2/default.nix
index 9f15f9e16d4f0..bf8a6897f27d9 100644
--- a/pkgs/development/libraries/codec2/default.nix
+++ b/pkgs/development/libraries/codec2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "codec2";
-  version = "1.0.1";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "drowe67";
     repo = "codec2";
     rev = "v${version}";
-    sha256 = "05xjsb67dzwncl2rnhg6fqih8krf38b7vmvzlsb7y9g6d1b085wg";
+    hash = "sha256-2/Ef5cEe7Kr3a/D8u4BgvTQM6M6vglXsF+ccstFHDUw=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/coeurl/default.nix b/pkgs/development/libraries/coeurl/default.nix
index df87210bb791f..44e534757ce9f 100644
--- a/pkgs/development/libraries/coeurl/default.nix
+++ b/pkgs/development/libraries/coeurl/default.nix
@@ -11,14 +11,14 @@
 
 stdenv.mkDerivation rec {
   pname = "coeurl";
-  version = "0.1.0";
+  version = "0.1.1";
 
   src = fetchFromGitLab {
     domain = "nheko.im";
     owner = "nheko-reborn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "10a5klr44m2xy6law8s3s5rynk1q268fa4pkhilbn52yyv0fwajq";
+    sha256 = "sha256-F4kHE9r2pR8hI+CrZQ9ElPjtp0McgwfSxoD5p56KDGs=";
   };
 
   nativeBuildInputs = [ ninja pkg-config meson ];
diff --git a/pkgs/development/libraries/cpp-utilities/default.nix b/pkgs/development/libraries/cpp-utilities/default.nix
index 6a0087d4bfbc5..3f5b7b3db91dd 100644
--- a/pkgs/development/libraries/cpp-utilities/default.nix
+++ b/pkgs/development/libraries/cpp-utilities/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cpp-utilities";
-  version = "5.11.2";
+  version = "5.11.3";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-my4799a9XFXWl9Xyq6gRfw4YTOCEWJgTvRKz0mVqrkQ=";
+    sha256 = "sha256-a/fuzZ8crmyO87QzIKuYPk0LC3EvvHZrWO17LtWu77I=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/cpptest/default.nix b/pkgs/development/libraries/cpptest/default.nix
index 17bd390038613..a3558e0ef4937 100644
--- a/pkgs/development/libraries/cpptest/default.nix
+++ b/pkgs/development/libraries/cpptest/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "cpptest-2.0.0";
+  pname = "cpptest";
+  version = "2.0.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/cpptest/cpptest/${name}/${name}.tar.gz";
+    url = "mirror://sourceforge/project/cpptest/cpptest/cpptest-${version}/cpptest-${version}.tar.gz";
     sha256 = "0lpy3f2fjx1srh02myanlp6zfi497whlldcrnij39ghfhm0arcnm";
   };
 
diff --git a/pkgs/development/libraries/crypto++/default.nix b/pkgs/development/libraries/crypto++/default.nix
index fe553cb37b9ed..bedf75e75ca46 100644
--- a/pkgs/development/libraries/crypto++/default.nix
+++ b/pkgs/development/libraries/crypto++/default.nix
@@ -5,30 +5,22 @@
 
 stdenv.mkDerivation rec {
   pname = "crypto++";
-  version = "8.4.0";
+  version = "8.6.0";
   underscoredVersion = lib.strings.replaceStrings ["."] ["_"] version;
 
   src = fetchFromGitHub {
     owner = "weidai11";
     repo = "cryptopp";
     rev = "CRYPTOPP_${underscoredVersion}";
-    sha256 = "1gwn8yh1mh41hkh6sgnhb9c3ygrdazd7645msl20i0zdvcp7f5w3";
+    hash = "sha256-a3TYaK34WvKEXN7LKAfGwQ3ZL6a3k/zMZyyVfnkQqO4=";
   };
 
   outputs = [ "out" "dev" ];
 
   postPatch = ''
     substituteInPlace GNUmakefile \
-        --replace "AR = libtool" "AR = ar" \
-        --replace "ARFLAGS = -static -o" "ARFLAGS = -cru"
-
-    # See https://github.com/weidai11/cryptopp/issues/1011
-    substituteInPlace GNUmakefile \
-      --replace "ZOPT = -O0" "ZOPT ="
-  '';
-
-  preConfigure = ''
-    sh TestScripts/configure.sh
+      --replace "AR = libtool" "AR = ar" \
+      --replace "ARFLAGS = -static -o" "ARFLAGS = -cru"
   '';
 
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
@@ -37,10 +29,11 @@ stdenv.mkDerivation rec {
     ++ lib.optional enableShared "shared"
     ++ [ "libcryptopp.pc" ];
   enableParallelBuilding = true;
+  hardeningDisable = [ "fortify" ];
 
   doCheck = true;
 
-  # built for checks but we don't install static lib into the nix store
+  # always built for checks but install static lib only when necessary
   preInstall = lib.optionalString (!enableStatic) "rm libcryptopp.a";
 
   installTargets = [ "install-lib" ];
diff --git a/pkgs/development/libraries/dbus-glib/default.nix b/pkgs/development/libraries/dbus-glib/default.nix
index 0bab4eb1949ee..c6be0dd419db9 100644
--- a/pkgs/development/libraries/dbus-glib/default.nix
+++ b/pkgs/development/libraries/dbus-glib/default.nix
@@ -3,10 +3,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "dbus-glib-0.112";
+  pname = "dbus-glib";
+  version = "0.112";
 
   src = fetchurl {
-    url = "${meta.homepage}/releases/dbus-glib/${name}.tar.gz";
+    url = "${meta.homepage}/releases/dbus-glib/dbus-glib-${version}.tar.gz";
     sha256 = "sha256-fVUNzN/NKG4ziVUBgp7Zce62XGFOc6rbSgiu73GbFDo=";
   };
 
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index a1e42a435ab4b..a3c5bbbf70be6 100644
--- a/pkgs/development/libraries/dbus/default.nix
+++ b/pkgs/development/libraries/dbus/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , lib
+, fetchpatch
 , fetchurl
 , pkg-config
 , expat
@@ -15,6 +16,8 @@
 , docbook_xml_dtd_44
 , docbook-xsl-nons
 , xmlto
+, autoreconfHook
+, autoconf-archive
 }:
 
 stdenv.mkDerivation rec {
@@ -32,15 +35,23 @@ stdenv.mkDerivation rec {
     # Also applied upstream in https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/189,
     # expected in version 1.14
     ./docs-reproducible-ids.patch
+    # AC_PATH_XTRA doesn't seem to find X11 libs even though libX11 seems
+    # to provide valid pkg-config files. This replace AC_PATH_XTRA with
+    # PKG_CHECK_MODULES.
+    # MR merged cf https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/212/diffs?commit_id=23880a181e82ee7f
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/dbus/dbus/-/commit/6bfaea0707ba1a7788c4b6d30c18fb094f3a1dd4.patch";
+      sha256 = "1d8ay55n2ksw5faqx3hsdpfni3xl3gq9hnjl65073xcfnx67x8d2";
+    })
   ] ++ (lib.optional stdenv.isSunOS ./implement-getgrouplist.patch);
 
   postPatch = ''
-    substituteInPlace tools/Makefile.in \
-      --replace 'install-localstatelibDATA:' 'disabled:' \
+    substituteInPlace bus/Makefile.am \
+      --replace 'install-data-hook:' 'disabled:' \
+      --replace '$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus' ':'
+    substituteInPlace tools/Makefile.am \
       --replace 'install-data-local:' 'disabled:' \
       --replace 'installcheck-local:' 'disabled:'
-    substituteInPlace bus/Makefile.in \
-      --replace '$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus' ':'
   '' + /* cleanup of runtime references */ ''
     substituteInPlace ./dbus/dbus-sysdeps-unix.c \
       --replace 'DBUS_BINDIR "/dbus-launch"' "\"$lib/bin/dbus-launch\""
@@ -51,6 +62,8 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "lib" "doc" "man" ];
 
   nativeBuildInputs = [
+    autoreconfHook
+    autoconf-archive
     pkg-config
     docbook_xml_dtd_44
     docbook-xsl-nons
@@ -86,10 +99,6 @@ stdenv.mkDerivation rec {
   ] ++ lib.optional (!x11Support) "--without-x"
   ++ lib.optionals stdenv.isLinux [ "--enable-apparmor" "--enable-libaudit" ];
 
-  # Enable X11 autolaunch support in libdbus. This doesn't actually depend on X11
-  # (it just execs dbus-launch in dbus.tools), contrary to what the configure script demands.
-  # problems building without x11Support so disabled in that case for now
-  NIX_CFLAGS_COMPILE = lib.optionalString x11Support "-DDBUS_ENABLE_X11_AUTOLAUNCH=1";
   NIX_CFLAGS_LINK = lib.optionalString (!stdenv.isDarwin) "-Wl,--as-needed";
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/dclib/default.nix b/pkgs/development/libraries/dclib/default.nix
index b393b74f2b2fe..05ea7db2caccd 100644
--- a/pkgs/development/libraries/dclib/default.nix
+++ b/pkgs/development/libraries/dclib/default.nix
@@ -1,10 +1,11 @@
 {lib, stdenv, fetchurl, libxml2, openssl, bzip2}:
 
-stdenv.mkDerivation {
-  name = "dclib-0.3.7";
+stdenv.mkDerivation rec {
+  pname = "dclib";
+  version = "0.3.7";
 
   src = fetchurl {
-    url = "ftp://ftp.debian.nl/pub/freebsd/ports/distfiles/dclib-0.3.7.tar.bz2";
+    url = "ftp://ftp.debian.nl/pub/freebsd/ports/distfiles/dclib-${version}.tar.bz2";
     sha256 = "02jdzm5hqzs1dv2rd596vgpcjaapm55pqqapz5m94l30v4q72rfc";
   };
 
diff --git a/pkgs/development/libraries/dclxvi/default.nix b/pkgs/development/libraries/dclxvi/default.nix
index 8d7dc5a01781a..ac2664a1c9f99 100644
--- a/pkgs/development/libraries/dclxvi/default.nix
+++ b/pkgs/development/libraries/dclxvi/default.nix
@@ -1,7 +1,8 @@
 { lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation {
-  name = "dclxvi-2013-01-27";
+  pname = "dclxvi";
+  version = "unstable-2013-01-27";
 
   src = fetchFromGitHub {
     owner = "agl";
diff --git a/pkgs/development/libraries/dconf/default.nix b/pkgs/development/libraries/dconf/default.nix
index 550940f5a1e78..a5879011697b1 100644
--- a/pkgs/development/libraries/dconf/default.nix
+++ b/pkgs/development/libraries/dconf/default.nix
@@ -52,6 +52,10 @@ stdenv.mkDerivation rec {
     "-Dgtk_doc=${lib.boolToString (!isCross)}" # gtk-doc does do some gobject introspection, which doesn't yet cross-compile.
   ] ++ lib.optional isCross "-Dvapi=false";
 
+  checkInputs = [
+    dbus # for dbus-daemon
+  ];
+
   doCheck = !stdenv.isAarch32 && !stdenv.isAarch64 && !stdenv.isDarwin;
 
   postPatch = ''
diff --git a/pkgs/development/libraries/doctest/default.nix b/pkgs/development/libraries/doctest/default.nix
index c8e31d43e9538..11a2906b5c0f1 100644
--- a/pkgs/development/libraries/doctest/default.nix
+++ b/pkgs/development/libraries/doctest/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "doctest";
-  version = "2.4.6";
+  version = "2.4.7";
 
   src = fetchFromGitHub {
     owner = "onqtam";
     repo = "doctest";
     rev = version;
-    sha256 = "14m3q6d96zg6d99x1152jkly50gdjrn5ylrbhax53pfgfzzc5yqx";
+    sha256 = "sha256-pXUg+NHSCKOudkmDCU3ePZrvs8DlM/CEZntEd78oTJ0=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/draco/default.nix b/pkgs/development/libraries/draco/default.nix
index ed65be9a2561b..ecbd125212632 100644
--- a/pkgs/development/libraries/draco/default.nix
+++ b/pkgs/development/libraries/draco/default.nix
@@ -1,33 +1,35 @@
-{ lib, stdenv, fetchFromGitHub, cmake
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, python3
+, withAnimation ? true
+, withTranscoder ? true
 }:
 
+let
+  cmakeBool = b: if b then "ON" else "OFF";
+in
 stdenv.mkDerivation rec {
-  version = "1.4.3";
+  version = "1.5.0";
   pname = "draco";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "draco";
     rev = version;
-    sha256 = "sha256-eSu6tkWbRHzJkWwPgljaScAuL0gRkp8PJUHWC8mUvOw=";
+    hash = "sha256-BoJg2lZBPVVm6Nc0XK8QSISpe+B8tpgRg9PFncN4+fY=";
+    fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake python3 ];
 
   cmakeFlags = [
-    # Fake these since we are building from a tarball
-    "-Ddraco_git_hash=${version}"
-    "-Ddraco_git_desc=${version}"
-
-    "-DBUILD_UNITY_PLUGIN=1"
+    "-DDRACO_ANIMATION_ENCODING=${cmakeBool withAnimation}"
+    "-DDRACO_TRANSCODER_SUPPORTED=${cmakeBool withTranscoder}"
+    "-DBUILD_SHARED_LIBS=${cmakeBool true}"
   ];
 
-  # Upstream mistakenly installs to /nix/store/.../nix/store/.../*, work around that
-  postInstall = ''
-    mv $out/nix/store/*/* $out
-    rm -rf $out/nix
-  '';
-
   meta = with lib; {
     description = "Library for compressing and decompressing 3D geometric meshes and point clouds";
     homepage = "https://google.github.io/draco/";
diff --git a/pkgs/development/libraries/drogon/default.nix b/pkgs/development/libraries/drogon/default.nix
index 90bd4035ed6af..7258cb767e3fb 100644
--- a/pkgs/development/libraries/drogon/default.nix
+++ b/pkgs/development/libraries/drogon/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "drogon";
-  version = "1.7.3";
+  version = "1.7.4";
 
   src = fetchFromGitHub {
     owner = "drogonframework";
     repo = "drogon";
     rev = "v${version}";
-    sha256 = "0j7bnc6l5hbcf0l7pjzw82i9z1rbh57ni60wpa50q10gwbm4waxn";
+    sha256 = "02igryrv8782rwqb4w49frymlw9n7hv8fskqsw43rqly650vzakb";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/libraries/drumstick/default.nix b/pkgs/development/libraries/drumstick/default.nix
index 36f2ecd84be2e..7cbeffd5b7ec7 100644
--- a/pkgs/development/libraries/drumstick/default.nix
+++ b/pkgs/development/libraries/drumstick/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "drumstick";
-  version = "2.3.1";
+  version = "2.4.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/drumstick/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-0DUFmL8sifxbC782CYT4eoe4m1kq8T1tEs3YNy8iQuc=";
+    sha256 = "sha256-nmqgS08ZBQ2vBEDtoriNbYLaNQA1DWeDhbRo70rBOP0=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/duckdb/default.nix b/pkgs/development/libraries/duckdb/default.nix
index 5f62acf2dc0f5..f1e4f56a59501 100644
--- a/pkgs/development/libraries/duckdb/default.nix
+++ b/pkgs/development/libraries/duckdb/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "duckdb";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-SvihG6PdHQ+03JAXdkuzvGug4lw0ngcxYigS7R7yK9g=";
+    sha256 = "sha256-apTU7WgKw/YEnT4maibyffqOrCoVwHPOkNINlAmtYYI=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/eccodes/default.nix b/pkgs/development/libraries/eccodes/default.nix
index a528656fe4644..dc0648366a9fe 100644
--- a/pkgs/development/libraries/eccodes/default.nix
+++ b/pkgs/development/libraries/eccodes/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "eccodes";
-  version = "2.23.0";
+  version = "2.24.0";
 
   src = fetchurl {
     url = "https://confluence.ecmwf.int/download/attachments/45757960/eccodes-${version}-Source.tar.gz";
-    sha256 = "sha256-y9yFMlN+loLxqT3bA0QEFrZpBqTMJd7Dy9c5QNGUvww=";
+    sha256 = "sha256-MHrit59KfTF4mCS8od8UEvYMrWj0m/xJu8HUeA8+W5Y=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/elfio/default.nix b/pkgs/development/libraries/elfio/default.nix
new file mode 100644
index 0000000000000..98e9ee3f59ed5
--- /dev/null
+++ b/pkgs/development/libraries/elfio/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, boost
+}:
+
+stdenv.mkDerivation rec {
+  pname = "elfio";
+  version = "3.9";
+
+  src = fetchFromGitHub {
+    owner = "serge1";
+    repo = "elfio";
+    rev = "Release_${version}";
+    sha256 = "sha256-5O9KnHZXzepp3O1PGenJarrHElWLHgyBvvDig1Hkmo4=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  checkInputs = [ boost ];
+
+  cmakeFlags = [ "-DELFIO_BUILD_TESTS=ON" ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Header-only C++ library for reading and generating files in the ELF binary format";
+    homepage = "https://github.com/serge1/ELFIO";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/pkgs/development/libraries/elpa/default.nix b/pkgs/development/libraries/elpa/default.nix
new file mode 100644
index 0000000000000..3bb59ce9ca6a8
--- /dev/null
+++ b/pkgs/development/libraries/elpa/default.nix
@@ -0,0 +1,95 @@
+{ lib, stdenv, fetchurl, autoreconfHook, gfortran, perl
+, mpi, blas, lapack, scalapack, openssh
+# CPU optimizations
+, avxSupport ? stdenv.hostPlatform.avxSupport
+, avx2Support ? stdenv.hostPlatform.avx2Support
+, avx512Support ? stdenv.hostPlatform.avx512Support
+# Enable NIVIA GPU support
+# Note, that this needs to be built on a system with a GPU
+# present for the tests to succeed.
+, enableCuda ? false
+# type of GPU architecture
+, nvidiaArch ? "sm_60"
+, cudatoolkit
+} :
+
+# The standard Scalapack has no iLP64 interface
+assert (!blas.isILP64) && (!lapack.isILP64);
+
+stdenv.mkDerivation rec {
+  pname = "elpa";
+  version = "2021.11.001";
+
+  src = fetchurl {
+    url = "https://elpa.mpcdf.mpg.de/software/tarball-archive/Releases/${version}/elpa-${version}.tar.gz";
+    sha256 = "0bw0nwzwvjfmijfwznmrghypd3q237a3h5g5fcdncilrqnk1sdpv";
+  };
+
+  patches = [
+    # Use a plain name for the pkg-config file
+    ./pkg-config.patch
+  ];
+
+  postPatch = ''
+    patchShebangs ./fdep/fortran_dependencies.pl
+    patchShebangs ./test-driver
+
+    # Fix the test script generator
+    substituteInPlace Makefile.am --replace '#!/bin/bash' '#!${stdenv.shell}'
+  '';
+
+  nativeBuildInputs = [ autoreconfHook perl openssh ];
+
+  buildInputs = [ mpi blas lapack scalapack ]
+    ++ lib.optional enableCuda cudatoolkit;
+
+  preConfigure = ''
+    export FC="mpifort"
+    export CC="mpicc"
+
+    # These need to be set for configure to succeed
+    export FCFLAGS="${lib.optionalString stdenv.hostPlatform.isx86_64 "-msse3 "
+      + lib.optionalString avxSupport "-mavx "
+      + lib.optionalString avx2Support "-mavx2 -mfma "
+      + lib.optionalString avx512Support "-mavx512"}"
+
+    export CFLAGS=$FCFLAGS
+  '';
+
+  configureFlags = [
+    "--with-mpi"
+    "--enable-openmp"
+    "--without-threading-support-check-during-build"
+  ] ++ lib.optional (!avxSupport) "--disable-avx"
+    ++ lib.optional (!avx2Support) "--disable-avx2"
+    ++ lib.optional (!avx512Support) "--disable-avx512"
+    ++ lib.optional (!stdenv.hostPlatform.isx86_64) "--disable-sse"
+    ++ lib.optional stdenv.hostPlatform.isx86_64 "--enable-sse-assembly"
+    ++ lib.optionals enableCuda [  "--enable-nvidia-gpu" "--with-NVIDIA-GPU-compute-capability=${nvidiaArch}" ];
+
+  doCheck = true;
+
+  preCheck = ''
+    #patchShebangs ./
+
+    # make sure the test starts even if we have less than 4 cores
+    export OMPI_MCA_rmaps_base_oversubscribe=1
+
+    # Fix to make mpich run in a sandbox
+    export HYDRA_IFACE=lo
+
+    # Run dual threaded
+    export OMP_NUM_THREADS=2
+
+    # Reduce test problem sizes
+    export TEST_FLAGS="1500 50 16"
+  '';
+
+  meta = with lib; {
+    description = "Eigenvalue Solvers for Petaflop-Applications";
+    homepage = "https://elpa.mpcdf.mpg.de/";
+    license = licenses.lgpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.markuskowa ];
+  };
+}
diff --git a/pkgs/development/libraries/elpa/pkg-config.patch b/pkgs/development/libraries/elpa/pkg-config.patch
new file mode 100644
index 0000000000000..2fc1399483c67
--- /dev/null
+++ b/pkgs/development/libraries/elpa/pkg-config.patch
@@ -0,0 +1,13 @@
+diff --git a/configure.ac b/configure.ac
+index 0aa533a..da5d1f7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2336,7 +2336,7 @@ if test x"$have_loop_blocking" = x"yes"; then
+ fi
+ 
+ AC_SUBST([SUFFIX])
+-AC_SUBST([PKG_CONFIG_FILE],[elpa${SUFFIX}.pc])
++AC_SUBST([PKG_CONFIG_FILE],[elpa.pc])
+ 
+ AC_CONFIG_FILES([
+   Makefile
diff --git a/pkgs/development/libraries/entt/default.nix b/pkgs/development/libraries/entt/default.nix
index 122bd93873081..c514e3d78003a 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.8.1";
+  version = "3.9.0";
 
   src = fetchFromGitHub {
     owner = "skypjack";
     repo = "entt";
     rev = "v${version}";
-    sha256 = "sha256-vg2tpGyZZM8c97Qko88JMP5YNPZx5kI5qRkkRclvZtA=";
+    sha256 = "sha256-7UeL8D+A0pH3TKNO5B8A1nhD7uDWeirHnHaI/YKVwyo=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/skypjack/entt";
     description = "A header-only, tiny and easy to use library for game programming and much more written in modern C++";
     maintainers = with maintainers; [ twey ];
+    platforms = platforms.all;
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/libraries/epoxy/default.nix b/pkgs/development/libraries/epoxy/default.nix
deleted file mode 100644
index 7ae0e73953f44..0000000000000
--- a/pkgs/development/libraries/epoxy/default.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, utilmacros, python3
-, libGL, libX11
-}:
-
-with lib;
-
-stdenv.mkDerivation rec {
-  pname = "epoxy";
-  version = "1.5.4";
-
-  src = fetchFromGitHub {
-    owner = "anholt";
-    repo = "libepoxy";
-    rev = version;
-    sha256 = "0rmg0qlswn250h0arx434jh3hwzsr95lawanpmh1czsfvrcx59l6";
-  };
-
-  outputs = [ "out" "dev" ];
-
-  nativeBuildInputs = [ autoreconfHook pkg-config utilmacros python3 ];
-  buildInputs = [ libGL libX11 ];
-
-  preConfigure = optionalString stdenv.isDarwin ''
-    substituteInPlace configure --replace build_glx=no build_glx=yes
-    substituteInPlace src/dispatch_common.h --replace "PLATFORM_HAS_GLX 0" "PLATFORM_HAS_GLX 1"
-  '';
-
-  patches = [ ./libgl-path.patch ];
-
-  NIX_CFLAGS_COMPILE = ''-DLIBGL_PATH="${getLib libGL}/lib"'';
-
-  doCheck = false; # needs X11
-
-  meta = {
-    description = "A library for handling OpenGL function pointer management";
-    homepage = "https://github.com/anholt/libepoxy";
-    license = licenses.mit;
-    maintainers = [ maintainers.goibhniu ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/ethash/default.nix b/pkgs/development/libraries/ethash/default.nix
index 1283ec8cfab0d..8d45a7186e74d 100644
--- a/pkgs/development/libraries/ethash/default.nix
+++ b/pkgs/development/libraries/ethash/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ethash";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src =
     fetchFromGitHub {
       owner = "chfast";
       repo = "ethash";
       rev = "v${version}";
-      sha256 = "sha256-ba8SBtJd0ERunO9KpJZkutkO6ZnZOEGzWn2IjO1Uu28=";
+      sha256 = "sha256-4SJk4niSpLPjymwTCD0kHOrqpMf+vE3J/O7DiffUSJ4=";
     };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/exiv2/default.nix b/pkgs/development/libraries/exiv2/default.nix
index e532898f80e22..5ef3bfa2ac408 100644
--- a/pkgs/development/libraries/exiv2/default.nix
+++ b/pkgs/development/libraries/exiv2/default.nix
@@ -79,6 +79,10 @@ stdenv.mkDerivation rec {
       rm -f ../tests/bugfixes/redmine/test_issue_460.py
       rm -f ../tests/bugfixes/redmine/test_issue_662.py
       rm -f ../tests/bugfixes/github/test_issue_1046.py
+
+      # disable tests that requires loopback networking
+      substituteInPlace  ../tests/bash_tests/testcases.py \
+        --replace "def io_test(self):" "def io_disabled(self):"
      ''}
   '';
 
diff --git a/pkgs/development/libraries/exosip/default.nix b/pkgs/development/libraries/exosip/default.nix
index f40dea19bb9d6..10d390bd678d3 100644
--- a/pkgs/development/libraries/exosip/default.nix
+++ b/pkgs/development/libraries/exosip/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
  pname = "libexosip2";
- version = "5.2.0";
+ version = "5.3.0";
 
  src = fetchurl {
     url = "mirror://savannah/exosip/${pname}-${version}.tar.gz";
-    sha256 = "09bj7cm6mk8yr68y5a09a625x10ql6an3zi4pj6y1jbkhpgqibp3";
+    sha256 = "sha256-W3gjmGQx6lztyfCV1pZKzpZvCTsq59CwhAR4i/zrycI=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/libraries/fcft/default.nix b/pkgs/development/libraries/fcft/default.nix
index 2101ee6dd42be..de20caf22fbc3 100644
--- a/pkgs/development/libraries/fcft/default.nix
+++ b/pkgs/development/libraries/fcft/default.nix
@@ -20,14 +20,14 @@ in
 
 stdenv.mkDerivation rec {
   pname = "fcft";
-  version = "2.5.0";
+  version = "2.5.1";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "dnkl";
     repo = "fcft";
     rev = version;
-    sha256 = "0agqldh68hn898d3f6k99kjbz8had5j5k0jyvi71d4k9vhx8cy7c";
+    sha256 = "0dn0ic2ddi5qz6nqscsn7nlih67ad8vpclppbqwas6xavdfq6va2";
   };
 
   depsBuildBuild = [ pkg-config ];
@@ -44,6 +44,8 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  outputs = [ "out" "doc" "man" ];
+
   passthru.tests = {
     noShaping = fcft.override { withShapingTypes = []; };
     onlyGraphemeShaping = fcft.override { withShapingTypes = [ "grapheme" ]; };
diff --git a/pkgs/development/libraries/flatbuffers/2.0.nix b/pkgs/development/libraries/flatbuffers/2.0.nix
index 2b907e77c499c..27b661ee09004 100644
--- a/pkgs/development/libraries/flatbuffers/2.0.nix
+++ b/pkgs/development/libraries/flatbuffers/2.0.nix
@@ -1,6 +1,16 @@
-{ callPackage }:
+{ callPackage, fetchpatch }:
 
 callPackage ./generic.nix {
   version = "2.0.0";
   sha256 = "1zbf6bdpps8369r1ql00irxrp58jnalycc8jcapb8iqg654vlfz8";
+
+  patches = [
+    # Pull patch pending upstream inclustion for gcc-12 support:
+    #  https://github.com/google/flatbuffers/pull/6946
+    (fetchpatch {
+      name = "gcc-12.patch";
+      url = "https://github.com/google/flatbuffers/commit/17d9f0c4cf47a9575b4f43a2ac33eb35ba7f9e3e.patch";
+      sha256 = "0sksk47hi7camja9ppnjr88jfdgj0nxqxy8976qs1nx73zkgbpf9";
+    })
+  ];
 }
diff --git a/pkgs/development/libraries/flint/default.nix b/pkgs/development/libraries/flint/default.nix
index 548f561f25a03..858144b150aa0 100644
--- a/pkgs/development/libraries/flint/default.nix
+++ b/pkgs/development/libraries/flint/default.nix
@@ -13,11 +13,11 @@ assert withBlas -> openblas != null && blas.implementation == "openblas" && lapa
 
 stdenv.mkDerivation rec {
   pname = "flint";
-  version = "2.8.0";
+  version = "2.8.4";
 
   src = fetchurl {
     url = "https://www.flintlib.org/flint-${version}.tar.gz";
-    sha256 = "sha256-WEI1zcOdd52ZIOrvFv4ITzwm/+7qADo//2SiCg8zRJ4=";
+    sha256 = "sha256-Yd+S6oyOncaS1Gxx1/UKqgmjPUugjQKheEcwpEXl5L4=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/fltk/1.4.nix b/pkgs/development/libraries/fltk/1.4.nix
index 2a430844ebe74..d5aa780affa70 100644
--- a/pkgs/development/libraries/fltk/1.4.nix
+++ b/pkgs/development/libraries/fltk/1.4.nix
@@ -1,5 +1,5 @@
 import ./common.nix rec {
-  version = "1.4.x-2021-07-04";
-  rev = "1008cdfab27609a6f6a0e82dadad9fd9cbd8a66d";
-  sha256 = "1h057dyhd04b9bjci952b2l7brxv183l9jw9i50mn9qjfljmvqim";
+  version = "1.4.x-2021-12-21";
+  rev = "c8bb2a35850be7c6eaec5ad5a2936a77f7913de2";
+  sha256 = "1fwfg1hp1ajqh2b4ra4phi96854q9i8c0gbyi7pr35ljyv848295";
 }
diff --git a/pkgs/development/libraries/fltk/default.nix b/pkgs/development/libraries/fltk/default.nix
index 831a96f71f3e9..61d73b83e4979 100644
--- a/pkgs/development/libraries/fltk/default.nix
+++ b/pkgs/development/libraries/fltk/default.nix
@@ -1,5 +1,5 @@
 import ./common.nix rec {
-  version = "1.3.6";
+  version = "1.3.8";
   rev = "release-${version}";
-  sha256 = "0vzk4d6j927v7dxywr5xlqlf70myal1xikkdfvd11p94rcdf9bsv";
+  sha256 = "1pw4ndwn9rr1cxw5qiw32r9la2z9zbjphgsqq1hj2yy4blwv419r";
 }
diff --git a/pkgs/development/libraries/freealut/default.nix b/pkgs/development/libraries/freealut/default.nix
index 3bb6eaddfa366..36bc4a2567770 100644
--- a/pkgs/development/libraries/freealut/default.nix
+++ b/pkgs/development/libraries/freealut/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, darwin, fetchurl, openal }:
 
 stdenv.mkDerivation rec {
-  name = "freealut-1.1.0";
+  pname = "freealut";
+  version = "1.1.0";
 
   src = fetchurl {
-    url = "http://www.openal.org/openal_webstf/downloads/${name}.tar.gz";
+    url = "http://www.openal.org/openal_webstf/downloads/freealut-${version}.tar.gz";
     sha256 = "0kzlil6112x2429nw6mycmif8y6bxr2cwjcvp18vh6s7g63ymlb0";
   };
 
diff --git a/pkgs/development/libraries/freetds/default.nix b/pkgs/development/libraries/freetds/default.nix
index b79fb2fd06dc0..ed455c534b2af 100644
--- a/pkgs/development/libraries/freetds/default.nix
+++ b/pkgs/development/libraries/freetds/default.nix
@@ -8,11 +8,11 @@ assert odbcSupport -> unixODBC != null;
 
 stdenv.mkDerivation rec {
   pname = "freetds";
-  version = "1.3";
+  version = "1.3.3";
 
   src = fetchurl {
     url    = "https://www.freetds.org/files/stable/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-j5ecrU2DUJBubDZF9wRxr0eNCHWe2TzToxQn8HkrX5c=";
+    sha256 = "sha256-26AufwZh/0LcKJ/EHXzefgMIn9Mm8I7ijIcqyf9KHIQ=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/gaia/default.nix b/pkgs/development/libraries/gaia/default.nix
deleted file mode 100644
index 47926e2ec0bea..0000000000000
--- a/pkgs/development/libraries/gaia/default.nix
+++ /dev/null
@@ -1,87 +0,0 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, libyaml
-, swig
-, eigen
-, pkg-config
-, python2
-, wafHook
-, makeWrapper
-, qt4
-, pythonPackages ? null
-, pythonSupport ? false
-# Default to false since it breaks the build, see https://github.com/MTG/gaia/issues/11
-, stlfacadeSupport ? false
-, assertsSupport ? true
-, cyclopsSupport ? true
-}:
-
-assert pythonSupport -> pythonPackages != null;
-
-stdenv.mkDerivation rec {
-  pname = "gaia";
-  version = "2.4.6";
-
-  src = fetchFromGitHub {
-    owner = "MTG";
-    repo = "gaia";
-    rev = "v${version}";
-    sha256 = "03vmdq7ca4f7zp2f4sxyqa8sdpdma3mn9fz4z7d93qryl0bhi7z3";
-  };
-
-  # Fix installation error when waf tries to put files in /etc/
-  prePatch = "" + lib.optionalString cyclopsSupport ''
-    substituteInPlace src/wscript \
-      --replace "/etc/cyclops" "$out/etc/cyclops" \
-      --replace "/etc/init.d" "$out/etc/init.d"
-  '';
-
-  nativeBuildInputs = [
-    pkg-config
-    python2 # For wafHook
-    swig
-    wafHook
-  ]
-    # The gaiafusion binary inside $out/bin needs a shebangs patch, and
-    # wrapping with the appropriate $PYTHONPATH
-    ++ lib.optionals (pythonSupport) [
-      pythonPackages.wrapPython
-    ]
-  ;
-
-  buildInputs = [
-    libyaml
-    eigen
-    qt4
-  ];
-
-  propagatedBuildInputs = []
-    ++ lib.optionals (pythonSupport) [
-      # This is not exactly specified in upstream's README but it's needed by the
-      # resulting $out/bin/gaiafusion script
-      pythonPackages.pyyaml
-    ]
-  ;
-
-  wafConfigureFlags = []
-    ++ lib.optionals (pythonSupport) [ "--with-python-bindings" ]
-    ++ lib.optionals (stlfacadeSupport) [ "--with-stlfacade" ]
-    ++ lib.optionals (assertsSupport) [ "--with-asserts" ]
-    ++ lib.optionals (cyclopsSupport) [ "--with-cyclops" ]
-  ;
-
-  postFixup = ""
-    + lib.optionalString pythonSupport ''
-      wrapPythonPrograms
-    ''
-  ;
-
-  meta = with lib; {
-    homepage = "https://github.com/MTG/gaia";
-    description = "General library to work with points in a semimetric space";
-    maintainers = with maintainers; [ doronbehar ];
-    platforms = platforms.x86; # upstream assume SSE2 / fails on ARM
-    license = licenses.agpl3;
-  };
-}
diff --git a/pkgs/development/libraries/gamin/default.nix b/pkgs/development/libraries/gamin/default.nix
index 56de42d9dc5b5..a2d6078024d58 100644
--- a/pkgs/development/libraries/gamin/default.nix
+++ b/pkgs/development/libraries/gamin/default.nix
@@ -1,12 +1,11 @@
 { lib, stdenv, fetchurl, fetchpatch, pkg-config, glib, autoreconfHook }:
 
-let
-  cross = stdenv.hostPlatform != stdenv.buildPlatform;
-in stdenv.mkDerivation (rec {
-  name = "gamin-0.1.10";
+stdenv.mkDerivation rec {
+  pname = "gamin";
+  version = "0.1.10";
 
   src = fetchurl {
-    url = "https://www.gnome.org/~veillard/gamin/sources/${name}.tar.gz";
+    url = "https://www.gnome.org/~veillard/gamin/sources/gamin-${version}.tar.gz";
     sha256 = "18cr51y5qacvs2fc2p1bqv32rs8bzgs6l67zhasyl45yx055y218";
   };
 
@@ -22,6 +21,10 @@ in stdenv.mkDerivation (rec {
     "CPPFLAGS=-D_GNU_SOURCE"
   ];
 
+  preBuild = lib.optionalString stdenv.isDarwin ''
+    sed -i 's/,--version-script=.*$/\\/' libgamin/Makefile
+  '';
+
   patches = [ ./deadlock.patch ]
     ++ map fetchurl (import ./debian-patches.nix)
     ++ lib.optional stdenv.cc.isClang ./returnval.patch
@@ -29,7 +32,7 @@ in stdenv.mkDerivation (rec {
       name = "fix-pthread-mutex.patch";
       url = "https://git.alpinelinux.org/aports/plain/main/gamin/fix-pthread-mutex.patch?h=3.4-stable&id=a1a836b089573752c1b0da7d144c0948b04e8ea8";
       sha256 = "13igdbqsxb3sz0h417k6ifmq2n4siwqspj6slhc7fdl5wd1fxmdz";
-    }) ++ lib.optional (cross) ./abstract-socket-namespace.patch ;
+    }) ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ./abstract-socket-namespace.patch;
 
 
   meta = with lib; {
@@ -41,8 +44,3 @@ in stdenv.mkDerivation (rec {
   };
 }
 
-// lib.optionalAttrs stdenv.isDarwin {
-  preBuild =  ''
-    sed -i 's/,--version-script=.*$/\\/' libgamin/Makefile
-  '';
-})
diff --git a/pkgs/development/libraries/gd/default.nix b/pkgs/development/libraries/gd/default.nix
index 3a64cc5639798..cd971b291b980 100644
--- a/pkgs/development/libraries/gd/default.nix
+++ b/pkgs/development/libraries/gd/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetchurl, fetchpatch
+{ lib, stdenv, fetchurl
+, fetchpatch
 , autoconf
 , automake
 , pkg-config
@@ -14,24 +15,29 @@
 
 stdenv.mkDerivation rec {
   pname = "gd";
-  version = "2.3.2";
+  version = "2.3.3";
 
   src = fetchurl {
     url = "https://github.com/libgd/libgd/releases/download/${pname}-${version}/libgd-${version}.tar.xz";
-    sha256 = "1yypywkh8vphcy4qqpf51kxpb0a3r7rjqk3fc61rpn70hiq092j7";
+    sha256 = "0qas3q9xz3wgw06dm2fj0i189rain6n60z1vyq50d5h7wbn25s1z";
   };
 
-  hardeningDisable = [ "format" ];
   patches = [
-    (fetchpatch {
-      name = "CVE-2021-40812.partial.patch";
-      url = "https://github.com/libgd/libgd/commit/6f5136821be86e7068fcdf651ae9420b5d42e9a9.patch";
-      sha256 = "11rvhd23bl05ksj8z39hwrhqqjm66svr4hl3y230wrc64rvnd2d2";
+    (fetchpatch { # included in > 2.3.3
+      name = "restore-GD_FLIP.patch";
+      url = "https://github.com/libgd/libgd/commit/f4bc1f5c26925548662946ed7cfa473c190a104a.diff";
+      sha256 = "XRXR3NOkbEub3Nybaco2duQk0n8vxif5mTl2AUacn9w=";
     })
   ];
 
-  # -pthread gets passed to clang, causing warnings
-  configureFlags = lib.optional stdenv.isDarwin "--enable-werror=no";
+  hardeningDisable = [ "format" ];
+
+  configureFlags =
+    [
+      "--enable-gd-formats"
+    ]
+    # -pthread gets passed to clang, causing warnings
+    ++ lib.optional stdenv.isDarwin "--enable-werror=no";
 
   nativeBuildInputs = [ autoconf automake pkg-config ];
 
diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix
index 7f63d5f67e789..3182a4b39988c 100644
--- a/pkgs/development/libraries/gdk-pixbuf/default.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/default.nix
@@ -16,10 +16,11 @@
 , libjpeg
 , libpng
 , gnome
-, gobject-introspection
 , doCheck ? false
 , makeWrapper
 , lib
+, withIntrospection ? (stdenv.buildPlatform == stdenv.hostPlatform)
+, gobject-introspection
 }:
 
 let
@@ -43,13 +44,19 @@ stdenv.mkDerivation rec {
     ./installed-tests-path.patch
   ];
 
+  # gdk-pixbuf-thumbnailer is not wrapped therefore strictDeps will work
+  strictDeps = true;
+
+  depsBuildBuild = [
+    pkg-config
+  ];
+
   nativeBuildInputs = [
     meson
     ninja
     pkg-config
     gettext
     python3
-    gobject-introspection
     makeWrapper
     glib
     gi-docgen
@@ -58,7 +65,11 @@ stdenv.mkDerivation rec {
     libxslt
     docbook-xsl-nons
     docbook_xml_dtd_43
-  ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
+  ] ++ lib.optionals stdenv.isDarwin [
+    fixDarwinDylibNames
+  ] ++ lib.optionals withIntrospection [
+    gobject-introspection
+  ];
 
   propagatedBuildInputs = [
     glib
@@ -69,7 +80,7 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Dgtk_doc=${lib.boolToString withGtkDoc}"
-    "-Dintrospection=${if (stdenv.buildPlatform == stdenv.hostPlatform) then "enabled" else "disabled"}"
+    "-Dintrospection=${if withIntrospection then "enabled" else "disabled"}"
     "-Dgio_sniffing=false"
   ];
 
diff --git a/pkgs/development/libraries/gdk-pixbuf/setup-hook.sh b/pkgs/development/libraries/gdk-pixbuf/setup-hook.sh
index bdfd00009dc5d..ecf9793b91f6c 100644
--- a/pkgs/development/libraries/gdk-pixbuf/setup-hook.sh
+++ b/pkgs/development/libraries/gdk-pixbuf/setup-hook.sh
@@ -1,16 +1,16 @@
 findGdkPixbufLoaders() {
 
-	# choose the longest loaders.cache
-	local loadersCache="$1/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"
-	if [[ -f "$loadersCache" ]]; then
-		if [[ -f "${GDK_PIXBUF_MODULE_FILE-}" ]]; then
-			if (( "$(cat "$loadersCache" | wc -l)" > "$(cat "$GDK_PIXBUF_MODULE_FILE" | wc -l)" )); then
-				export GDK_PIXBUF_MODULE_FILE="$loadersCache"
-			fi
-		else
-			export GDK_PIXBUF_MODULE_FILE="$loadersCache"
-		fi
-	fi
+    # choose the longest loaders.cache
+    local loadersCache="$1/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"
+    if [[ -f "$loadersCache" ]]; then
+        if [[ -f "${GDK_PIXBUF_MODULE_FILE-}" ]]; then
+            if (( "$(cat "$loadersCache" | wc -l)" > "$(cat "$GDK_PIXBUF_MODULE_FILE" | wc -l)" )); then
+                export GDK_PIXBUF_MODULE_FILE="$loadersCache"
+            fi
+        else
+            export GDK_PIXBUF_MODULE_FILE="$loadersCache"
+        fi
+    fi
 
 }
 
diff --git a/pkgs/development/libraries/gegl/default.nix b/pkgs/development/libraries/gegl/default.nix
index 3277faa4c2d66..6acb93c82bed7 100644
--- a/pkgs/development/libraries/gegl/default.nix
+++ b/pkgs/development/libraries/gegl/default.nix
@@ -36,14 +36,14 @@
 
 stdenv.mkDerivation rec {
   pname = "gegl";
-  version = "0.4.32";
+  version = "0.4.34";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "dev";
 
   src = fetchurl {
     url = "https://download.gimp.org/pub/gegl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-Zo48a5+vdfsAUScBw2J0q28iqLoF7GLb8YfTS40pj6E=";
+    sha256 = "sha256-72PwvKW0McYRmt3YNMp/u1B8kAxIYcV7Nme29Mz8qqo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/getdata/default.nix b/pkgs/development/libraries/getdata/default.nix
index 25321c22434e6..5978c3dc31c58 100644
--- a/pkgs/development/libraries/getdata/default.nix
+++ b/pkgs/development/libraries/getdata/default.nix
@@ -1,19 +1,15 @@
-{ lib, stdenv, fetchurl, fetchpatch, libtool }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, libtool }:
 stdenv.mkDerivation rec {
   pname = "getdata";
-  version = "0.10.0";
-  src = fetchurl {
-    url = "mirror://sourceforge/getdata/${pname}-${version}.tar.xz";
-    sha256 = "18xbb32vygav9x6yz0gdklif4chjskmkgp06rwnjdf9myhia0iym";
+  version = "0.11.0";
+  src = fetchFromGitHub {
+    owner = "ketiltrout";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-fuFakbkxDwDp6Z9VITPIB8NiYRSp98Ub1y5SC6W5S1E=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://sources.debian.org/data/main/libg/libgetdata/0.10.0-10/debian/patches/CVE-2021-20204.patch";
-      sha256 = "1lvp1c2pkk9kxniwlvax6d8fsmjrkpxawf71c7j4rfjm6dgvivzm";
-    })
-  ];
-
+  nativeBuildInputs = [ autoreconfHook ];
   buildInputs = [ libtool ];
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/getdns/default.nix b/pkgs/development/libraries/getdns/default.nix
index edf0ac27ea97c..1db1c3737bcce 100644
--- a/pkgs/development/libraries/getdns/default.nix
+++ b/pkgs/development/libraries/getdns/default.nix
@@ -1,37 +1,87 @@
-{ lib, stdenv, fetchurl, unbound, libidn2, openssl, doxygen, cmake }:
-
-stdenv.mkDerivation rec {
-  pname = "getdns";
-  version = "1.6.0";
-  versionRewrite = builtins.splitVersion version;
-
-  src = fetchurl {
-    url = "https://getdnsapi.net/releases/${pname}-${
-        builtins.concatStringsSep "-" versionRewrite
-      }/${pname}-${version}.tar.gz";
-    sha256 = "0jhg7258wz287kjymimvdvv04n69lwxdc3sb62l2p453f5s77ra0";
-  };
+# Getdns and Stubby are released together, see https://getdnsapi.net/releases/
 
-  nativeBuildInputs = [ cmake ];
-
-  buildInputs = [ unbound libidn2 openssl doxygen ];
-
-  meta = with lib; {
-    description = "A modern asynchronous DNS API";
-    longDescription = ''
-      getdns is an implementation of a modern asynchronous DNS API; the
-      specification was originally edited by Paul Hoffman. It is intended to make all
-      types of DNS information easily available to application developers and non-DNS
-      experts. DNSSEC offers a unique global infrastructure for establishing and
-      enhancing cryptographic trust relations. With the development of this API the
-      developers intend to offer application developers a modern and flexible
-      interface that enables end-to-end trust in the DNS architecture, and which will
-      inspire application developers to implement innovative security solutions in
-      their applications.
-    '';
-    homepage = "https://getdnsapi.net";
+{ lib, stdenv, fetchurl, cmake, darwin, doxygen, libidn2, libyaml, openssl
+, systemd, unbound, yq }:
+let
+  metaCommon = with lib; {
     maintainers = with maintainers; [ leenaars ehmry ];
     license = licenses.bsd3;
     platforms = platforms.all;
   };
+in rec {
+
+  getdns = stdenv.mkDerivation rec {
+    pname = "getdns";
+    version = "1.7.0";
+    outputs = [ "out" "dev" "lib" "man" ];
+
+    src = fetchurl {
+      url = "https://getdnsapi.net/releases/${pname}-${
+          with builtins;
+          concatStringsSep "-" (splitVersion version)
+        }/${pname}-${version}.tar.gz";
+      sha256 = "sha256-6ocTzl4HesdrFBjOtq/SXm1OOelgD29egdOjoTpg9lI=";
+    };
+
+    nativeBuildInputs = [ cmake doxygen ];
+
+    buildInputs = [ libidn2 openssl unbound ];
+
+    postInstall = "rm -r $out/share/doc";
+
+    meta = with lib;
+      metaCommon // {
+        description = "A modern asynchronous DNS API";
+        longDescription = ''
+          getdns is an implementation of a modern asynchronous DNS API; the
+          specification was originally edited by Paul Hoffman. It is intended to make all
+          types of DNS information easily available to application developers and non-DNS
+          experts. DNSSEC offers a unique global infrastructure for establishing and
+          enhancing cryptographic trust relations. With the development of this API the
+          developers intend to offer application developers a modern and flexible
+          interface that enables end-to-end trust in the DNS architecture, and which will
+          inspire application developers to implement innovative security solutions in
+          their applications.
+        '';
+        homepage = "https://getdnsapi.net";
+      };
+  };
+
+  stubby = stdenv.mkDerivation rec {
+    pname = "stubby";
+    version = "0.4.0";
+    outputs = [ "out" "man" "stubbyExampleJson" ];
+
+    inherit (getdns) src;
+    sourceRoot = "${getdns.name}/stubby";
+
+    nativeBuildInputs = [ cmake doxygen yq ];
+
+    buildInputs = [ getdns libyaml openssl systemd ]
+      ++ lib.optionals stdenv.isDarwin [ darwin.Security ];
+
+    postInstall = ''
+      rm -r $out/share/doc
+      yq \
+        < $NIX_BUILD_TOP/$sourceRoot/stubby.yml.example \
+        > $stubbyExampleJson
+    '';
+
+    passthru.settingsExample = with builtins;
+      fromJSON (readFile stubby.stubbyExampleJson);
+
+    meta = with lib;
+      metaCommon // {
+        description = "A local DNS Privacy stub resolver (using DNS-over-TLS)";
+        longDescription = ''
+          Stubby is an application that acts as a local DNS Privacy stub
+          resolver (using RFC 7858, aka DNS-over-TLS). Stubby encrypts DNS
+          queries sent from a client machine (desktop or laptop) to a DNS
+          Privacy resolver increasing end user privacy. Stubby is developed by
+          the getdns team.
+        '';
+        homepage = "https://dnsprivacy.org/wiki/x/JYAT";
+      };
+  };
+
 }
diff --git a/pkgs/development/libraries/gf2x/default.nix b/pkgs/development/libraries/gf2x/default.nix
index 3440697989eef..c37dcf4242d2f 100644
--- a/pkgs/development/libraries/gf2x/default.nix
+++ b/pkgs/development/libraries/gf2x/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Routines for fast arithmetic in GF(2)[x]";
-    homepage = "http://gf2x.gforge.inria.fr";
+    homepage = "https://gitlab.inria.fr/gf2x/gf2x/";
     license = licenses.gpl2Plus;
     maintainers = teams.sage.members;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/giblib/default.nix b/pkgs/development/libraries/giblib/default.nix
index e66f7bfe2a8c2..ca4a3c98e0a60 100644
--- a/pkgs/development/libraries/giblib/default.nix
+++ b/pkgs/development/libraries/giblib/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, xlibsWrapper, imlib2 }:
 
 stdenv.mkDerivation rec {
-  name = "giblib-1.2.4";
+  pname = "giblib";
+  version = "1.2.4";
 
   src = fetchurl {
-    url = "http://linuxbrit.co.uk/downloads/${name}.tar.gz";
+    url = "http://linuxbrit.co.uk/downloads/giblib-${version}.tar.gz";
     sha256 = "1b4bmbmj52glq0s898lppkpzxlprq9aav49r06j2wx4dv3212rhp";
   };
 
diff --git a/pkgs/development/libraries/giflib/4.1.nix b/pkgs/development/libraries/giflib/4.1.nix
index c0afe067c499c..8f3ebcf7d3be8 100644
--- a/pkgs/development/libraries/giflib/4.1.nix
+++ b/pkgs/development/libraries/giflib/4.1.nix
@@ -1,10 +1,11 @@
 {lib, stdenv, fetchurl}:
 
-stdenv.mkDerivation {
-  name = "giflib-4.1.6";
+stdenv.mkDerivation rec {
+  pname = "giflib";
+  version = "4.1.6";
 
   src = fetchurl {
-    url = "mirror://sourceforge/giflib/giflib-4.1.6.tar.bz2";
+    url = "mirror://sourceforge/giflib/giflib-${version}.tar.bz2";
     sha256 = "1v9b7ywz7qg8hli0s9vv1b8q9xxb2xvqq2mg1zpr73xwqpcwxhg1";
   };
 
diff --git a/pkgs/development/libraries/giflib/default.nix b/pkgs/development/libraries/giflib/default.nix
index c86b706e13c82..2016742351cd1 100644
--- a/pkgs/development/libraries/giflib/default.nix
+++ b/pkgs/development/libraries/giflib/default.nix
@@ -1,9 +1,10 @@
 { lib, stdenv, fetchurl, fetchpatch, xmlto, docbook_xml_dtd_412, docbook_xsl, libxml2, fixDarwinDylibNames, pkgsStatic }:
 
 stdenv.mkDerivation rec {
-  name = "giflib-5.2.1";
+  pname = "giflib";
+  version = "5.2.1";
   src = fetchurl {
-    url = "mirror://sourceforge/giflib/${name}.tar.gz";
+    url = "mirror://sourceforge/giflib/giflib-${version}.tar.gz";
     sha256 = "1gbrg03z1b6rlrvjyc6d41bc8j1bsr7rm8206gb1apscyii5bnii";
   };
 
diff --git a/pkgs/development/libraries/gle/default.nix b/pkgs/development/libraries/gle/default.nix
index b7a4f7f2fef18..79be821faaecb 100644
--- a/pkgs/development/libraries/gle/default.nix
+++ b/pkgs/development/libraries/gle/default.nix
@@ -1,11 +1,12 @@
 {lib, stdenv, fetchurl, freeglut, libX11, libXt, libXmu, libXi, libXext, libGL, libGLU}:
-stdenv.mkDerivation {
-  name = "gle-3.1.0";
+stdenv.mkDerivation rec {
+  pname = "gle";
+  version = "3.1.0";
   buildInputs = [libGLU libGL freeglut libX11 libXt libXmu libXi libXext];
   src = fetchurl {
     urls = [
-      "mirror://sourceforge/project/gle/gle/gle-3.1.0/gle-3.1.0.tar.gz"
-      "https://www.linas.org/gle/pub/gle-3.1.0.tar.gz"
+      "mirror://sourceforge/project/gle/gle/gle-${version}/gle-${version}.tar.gz"
+      "https://www.linas.org/gle/pub/gle-${version}.tar.gz"
       ];
     sha256 = "09zs1di4dsssl9k322nzildvf41jwipbzhik9p43yb1bcfsp92nw";
   };
diff --git a/pkgs/development/libraries/glew/1.10.nix b/pkgs/development/libraries/glew/1.10.nix
index 29376cb256721..ab2e740cd8646 100644
--- a/pkgs/development/libraries/glew/1.10.nix
+++ b/pkgs/development/libraries/glew/1.10.nix
@@ -5,10 +5,11 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  name = "glew-1.10.0";
+  pname = "glew";
+  version = "1.10.0";
 
   src = fetchurl {
-    url = "mirror://sourceforge/glew/${name}.tgz";
+    url = "mirror://sourceforge/glew/glew-${version}.tgz";
     sha256 = "01zki46dr5khzlyywr3cg615bcal32dazfazkf360s1znqh17i4r";
   };
 
diff --git a/pkgs/development/libraries/glfw/2.x.nix b/pkgs/development/libraries/glfw/2.x.nix
index d05fa6e5f7721..75a7c97db2bda 100644
--- a/pkgs/development/libraries/glfw/2.x.nix
+++ b/pkgs/development/libraries/glfw/2.x.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, libGLU, libGL, libX11, libXext }:
 
 stdenv.mkDerivation rec {
-  name = "glfw-2.7.9";
+  pname = "glfw";
+  version = "2.7.9";
 
   src = fetchurl {
-    url = "mirror://sourceforge/glfw/${name}.tar.bz2";
+    url = "mirror://sourceforge/glfw/glfw-${version}.tar.bz2";
     sha256 = "17c2msdcb7pn3p8f83805h1c216bmdqnbn9hgzr1j8wnwjcpxx6i";
   };
 
diff --git a/pkgs/development/libraries/glfw/3.x.nix b/pkgs/development/libraries/glfw/3.x.nix
index f9089384a8a52..53409ec7f732b 100644
--- a/pkgs/development/libraries/glfw/3.x.nix
+++ b/pkgs/development/libraries/glfw/3.x.nix
@@ -6,17 +6,19 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.3.4";
+  version = "3.3.6";
   pname = "glfw";
 
   src = fetchFromGitHub {
     owner = "glfw";
     repo = "GLFW";
     rev = version;
-    sha256 = "sha256-BP4wxjgm0x0E68tNz5eudkVUyBnXkQlP7LY3ppZunhw=";
+    sha256 = "sha256-mYcnucIRudLLySShKSDzsQfuoM2/0guKpeLSGuAWEkQ=";
   };
 
-  patches = lib.optional waylandSupport ./wayland.patch;
+  # Fix freezing on Wayland (https://github.com/glfw/glfw/pull/1711)
+  # and linkage issues on X11 (https://github.com/NixOS/nixpkgs/issues/142583)
+  patches = if waylandSupport then ./wayland.patch else ./x11.patch;
 
   propagatedBuildInputs = [ libGL ];
 
diff --git a/pkgs/development/libraries/glfw/x11.patch b/pkgs/development/libraries/glfw/x11.patch
new file mode 100644
index 0000000000000..5cadf53bfe708
--- /dev/null
+++ b/pkgs/development/libraries/glfw/x11.patch
@@ -0,0 +1,18 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index a0be580e..ba143851 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -219,6 +219,13 @@ if (GLFW_BUILD_X11)
+     if (NOT X11_Xshape_INCLUDE_PATH)
+         message(FATAL_ERROR "X Shape headers not found; install libxext development package")
+     endif()
++
++    target_link_libraries(glfw PRIVATE ${X11_Xrandr_LIB}
++                                       ${X11_Xinerama_LIB}
++                                       ${X11_Xkb_LIB}
++                                       ${X11_Xcursor_LIB}
++                                       ${X11_Xi_LIB}
++                                       ${X11_Xshape_LIB})
+ endif()
+ 
+ if (UNIX AND NOT APPLE)
diff --git a/pkgs/development/libraries/glibc/2.33-master.patch.gz b/pkgs/development/libraries/glibc/2.33-master.patch.gz
index 3dc7774cf8416..50f74b15822e9 100644
--- a/pkgs/development/libraries/glibc/2.33-master.patch.gz
+++ b/pkgs/development/libraries/glibc/2.33-master.patch.gz
Binary files differdiff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix
index 57c2e259e0663..6fa46d6d6c10e 100644
--- a/pkgs/development/libraries/glibc/common.nix
+++ b/pkgs/development/libraries/glibc/common.nix
@@ -44,7 +44,7 @@
 
 let
   version = "2.33";
-  patchSuffix = "-56";
+  patchSuffix = "-59";
   sha256 = "sha256-LiVWAA4QXb1X8Layoy/yzxc73k8Nhd/8z9i35RoGd/8=";
 in
 
@@ -63,7 +63,7 @@ stdenv.mkDerivation ({
     [
       /* No tarballs for stable upstream branch, only https://sourceware.org/git/glibc.git and using git would complicate bootstrapping.
           $ git fetch --all -p && git checkout origin/release/2.33/master && git describe
-          glibc-2.33-56-g6090cf1330
+          glibc-2.33-59-gf9592d65f2
           $ git show --minimal --reverse glibc-2.33.. | gzip -9n --rsyncable - > 2.33-master.patch.gz
 
          To compare the archive contents zdiff can be used.
diff --git a/pkgs/development/libraries/glm/default.nix b/pkgs/development/libraries/glm/default.nix
index ef8cd49ba297b..81b0b47d5ba8c 100644
--- a/pkgs/development/libraries/glm/default.nix
+++ b/pkgs/development/libraries/glm/default.nix
@@ -1,4 +1,9 @@
-{ lib, stdenv, fetchFromGitHub, cmake }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+}:
 
 stdenv.mkDerivation rec {
   version = "0.9.9.8";
@@ -11,6 +16,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-F//+3L5Ozrw6s7t4LrcUmO7sN30ZSESdrPAYX57zgr8=";
   };
 
+  # https://github.com/g-truc/glm/pull/1055
+  # Fix more implicit-int-float-conversion warnings
+  # (https://github.com/g-truc/glm/pull/986 wasn't enough, and -Werror is used)
+  patches = [(fetchpatch {
+    url = "https://github.com/kraj/glm/commit/bd9b5060bc3b9581090d44f15b4e236566ea86a6.patch";
+    sha256 = "sha256-QO4o/wV564kJimBcEyr9TWzREEnRJ1n0j0HPojN4pkI=";
+  })];
+
   outputs = [ "out" "doc" ];
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/gmp/4.3.2.nix b/pkgs/development/libraries/gmp/4.3.2.nix
index ce870581f5e94..50e26b4c1327a 100644
--- a/pkgs/development/libraries/gmp/4.3.2.nix
+++ b/pkgs/development/libraries/gmp/4.3.2.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, m4, cxx ? true }:
 
 let self = stdenv.mkDerivation rec {
-  name = "gmp-4.3.2";
+  pname = "gmp";
+  version = "4.3.2";
 
   src = fetchurl {
-    url = "mirror://gnu/gmp/${name}.tar.bz2";
+    url = "mirror://gnu/gmp/gmp-${version}.tar.bz2";
     sha256 = "0x8prpqi9amfcmi7r4zrza609ai9529pjaq0h4aw51i867064qck";
   };
 
diff --git a/pkgs/development/libraries/gmp/5.1.x.nix b/pkgs/development/libraries/gmp/5.1.x.nix
index ea6a7ee42310a..aa3704eb0b58c 100644
--- a/pkgs/development/libraries/gmp/5.1.x.nix
+++ b/pkgs/development/libraries/gmp/5.1.x.nix
@@ -6,10 +6,11 @@
 let inherit (lib) optional; in
 
 let self = stdenv.mkDerivation rec {
-  name = "gmp-5.1.3";
+  pname = "gmp";
+  version = "5.1.3";
 
   src = fetchurl { # we need to use bz2, others aren't in bootstrapping stdenv
-    urls = [ "mirror://gnu/gmp/${name}.tar.bz2" "ftp://ftp.gmplib.org/pub/${name}/${name}.tar.bz2" ];
+    urls = [ "mirror://gnu/gmp/gmp-${version}.tar.bz2" "ftp://ftp.gmplib.org/pub/gmp-${version}/gmp-${version}.tar.bz2" ];
     sha256 = "0q5i39pxrasgn9qdxzpfbwhh11ph80p57x6hf48m74261d97j83m";
   };
 
diff --git a/pkgs/development/libraries/gmp/6.x.nix b/pkgs/development/libraries/gmp/6.x.nix
index 6228b6aaab9e4..59bc98aa559f2 100644
--- a/pkgs/development/libraries/gmp/6.x.nix
+++ b/pkgs/development/libraries/gmp/6.x.nix
@@ -12,10 +12,11 @@
 let inherit (lib) optional; in
 
 let self = stdenv.mkDerivation rec {
-  name = "gmp-6.2.1";
+  pname = "gmp";
+  version = "6.2.1";
 
   src = fetchurl { # we need to use bz2, others aren't in bootstrapping stdenv
-    urls = [ "mirror://gnu/gmp/${name}.tar.bz2" "ftp://ftp.gmplib.org/pub/${name}/${name}.tar.bz2" ];
+    urls = [ "mirror://gnu/gmp/gmp-${version}.tar.bz2" "ftp://ftp.gmplib.org/pub/gmp-${version}/gmp-${version}.tar.bz2" ];
     sha256 = "0z2ddfiwgi0xbf65z4fg4hqqzlhv0cc6hdcswf3c6n21xdmk5sga";
   };
 
diff --git a/pkgs/development/libraries/gnutls/default.nix b/pkgs/development/libraries/gnutls/default.nix
index ace18afdeed8d..f560529530337 100644
--- a/pkgs/development/libraries/gnutls/default.nix
+++ b/pkgs/development/libraries/gnutls/default.nix
@@ -1,8 +1,10 @@
 { config, lib, stdenv, fetchurl, zlib, lzo, libtasn1, nettle, pkg-config, lzip
-, perl, gmp, autoconf, automake, libidn, p11-kit, libiconv
+, perl, gmp, autoconf, automake, libidn, libiconv
 , unbound, dns-root-data, gettext, util-linux
+, cxxBindings ? !stdenv.hostPlatform.isStatic # tries to link libstdc++.so
 , guileBindings ? config.gnutls.guile or false, guile
 , tpmSupport ? false, trousers, which, nettools, libunistring
+, withP11-kit ? !stdenv.hostPlatform.isStatic, p11-kit
 , withSecurity ? false, Security  # darwin Security.framework
 }:
 
@@ -51,11 +53,15 @@ stdenv.mkDerivation rec {
 
   preConfigure = "patchShebangs .";
   configureFlags =
-    lib.optional stdenv.isLinux "--with-default-trust-store-file=/etc/ssl/certs/ca-certificates.crt"
-  ++ [
+    lib.optionals withP11-kit [
+    "--with-default-trust-store-file=/etc/ssl/certs/ca-certificates.crt"
+    "--with-default-trust-store-pkcs11=pkcs11:"
+  ] ++ [
     "--disable-dependency-tracking"
     "--enable-fast-install"
     "--with-unbound-root-key-file=${dns-root-data}/root.key"
+    (lib.withFeature withP11-kit "p11-kit")
+    (lib.enableFeature cxxBindings "cxx")
   ] ++ lib.optional guileBindings [
     "--enable-guile"
     "--with-guile-site-dir=\${out}/share/guile/site"
@@ -65,7 +71,8 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  buildInputs = [ lzo lzip libtasn1 libidn p11-kit zlib gmp libunistring unbound gettext libiconv ]
+  buildInputs = [ lzo lzip libtasn1 libidn zlib gmp libunistring unbound gettext libiconv ]
+    ++ lib.optional (withP11-kit) p11-kit
     ++ lib.optional (isDarwin && withSecurity) Security
     ++ lib.optional (tpmSupport && stdenv.isLinux) trousers
     ++ lib.optional guileBindings guile;
diff --git a/pkgs/development/libraries/grantlee/5/default.nix b/pkgs/development/libraries/grantlee/5/default.nix
index 4eef2d407d8ea..6c8bf6eb72235 100644
--- a/pkgs/development/libraries/grantlee/5/default.nix
+++ b/pkgs/development/libraries/grantlee/5/default.nix
@@ -46,7 +46,7 @@ mkDerivation rec {
       The syntax is intended to follow the syntax of the Django template system,
       and the design of Django is reused in Grantlee.'';
 
-    homepage = "http://gitorious.org/grantlee";
+    homepage = "https://github.com/steveire/grantlee";
     maintainers = [ maintainers.ttuegel ];
     license = licenses.lgpl21;
     inherit (qtbase.meta) platforms;
diff --git a/pkgs/development/libraries/grantlee/default.nix b/pkgs/development/libraries/grantlee/default.nix
index 869430538e898..3301d6c47cff2 100644
--- a/pkgs/development/libraries/grantlee/default.nix
+++ b/pkgs/development/libraries/grantlee/default.nix
@@ -1,13 +1,14 @@
 { lib, stdenv, fetchurl, qt4, cmake }:
 
 stdenv.mkDerivation rec {
-  name = "grantlee-0.5.1";
+  pname = "grantlee";
+  version = "0.5.1";
 
 # Upstream download server has country code firewall, so I made a mirror.
   src = fetchurl {
     urls = [
-      "http://downloads.grantlee.org/${name}.tar.gz"
-      "http://www.loegria.net/grantlee/${name}.tar.gz"
+      "http://downloads.grantlee.org/grantlee-${version}.tar.gz"
+      "http://www.loegria.net/grantlee/grantlee-${version}.tar.gz"
     ];
     sha256 = "1b501xbimizmbmysl1j5zgnp48qw0r2r7lhgmxvzhzlv9jzhj60r";
   };
@@ -26,7 +27,7 @@ stdenv.mkDerivation rec {
       The syntax is intended to follow the syntax of the Django template system,
       and the design of Django is reused in Grantlee.'';
 
-    homepage = "http://gitorious.org/grantlee";
+    homepage = "https://github.com/steveire/grantlee";
     license = lib.licenses.lgpl21;
     inherit (qt4.meta) platforms;
   };
diff --git a/pkgs/development/libraries/graphene/default.nix b/pkgs/development/libraries/graphene/default.nix
index a0bfc6f017adb..22c0e044f1e84 100644
--- a/pkgs/development/libraries/graphene/default.nix
+++ b/pkgs/development/libraries/graphene/default.nix
@@ -19,7 +19,8 @@ stdenv.mkDerivation rec {
   pname = "graphene";
   version = "1.10.6";
 
-  outputs = [ "out" "devdoc" "installedTests" ];
+  outputs = [ "out" ]
+    ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" "installedTests" ];
 
   src = fetchFromGitHub {
     owner = "ebassi";
@@ -33,6 +34,10 @@ stdenv.mkDerivation rec {
     ./0001-meson-add-options-for-tests-installation-dirs.patch
   ];
 
+  depsBuildBuild = [
+    pkg-config
+  ];
+
   nativeBuildInputs = [
     docbook_xml_dtd_43
     docbook_xsl
@@ -47,7 +52,6 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib
-    gobject-introspection
   ];
 
   checkInputs = [
@@ -55,7 +59,8 @@ stdenv.mkDerivation rec {
   ];
 
   mesonFlags = [
-    "-Dgtk_doc=true"
+    "-Dgtk_doc=${lib.boolToString (stdenv.buildPlatform == stdenv.hostPlatform)}"
+    "-Dintrospection=${if (stdenv.buildPlatform == stdenv.hostPlatform) then "enabled" else "disabled"}"
     "-Dinstalled_test_datadir=${placeholder "installedTests"}/share"
     "-Dinstalled_test_bindir=${placeholder "installedTests"}/libexec"
   ];
@@ -64,6 +69,7 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     patchShebangs tests/gen-installed-test.py
+  '' + lib.optionalString (stdenv.buildPlatform == stdenv.hostPlatform) ''
     PATH=${python3.withPackages (pp: [ pp.pygobject3 pp.tappy ])}/bin:$PATH patchShebangs tests/introspection.py
   '';
 
@@ -88,7 +94,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A thin layer of graphic data types";
-    homepage = "https://ebassi.github.com/graphene";
+    homepage = "https://github.com/ebassi/graphene";
     license = licenses.mit;
     maintainers = teams.gnome.members ++ (with maintainers; [ ]);
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/grpc/default.nix b/pkgs/development/libraries/grpc/default.nix
index ae49974fefe11..28c47640ca6a9 100644
--- a/pkgs/development/libraries/grpc/default.nix
+++ b/pkgs/development/libraries/grpc/default.nix
@@ -13,17 +13,22 @@
 , grpc
 , abseil-cpp
 , libnsl
+
+# tests
+, python3
 }:
 
 stdenv.mkDerivation rec {
   pname = "grpc";
-  version = "1.42.0"; # N.B: if you change this, change pythonPackages.grpcio-tools to a matching version too
+  version = "1.43.0"; # N.B: if you change this, please update:
+    # pythonPackages.grpcio-tools
+    # pythonPackages.grpcio-status
 
   src = fetchFromGitHub {
     owner = "grpc";
     repo = "grpc";
     rev = "v${version}";
-    sha256 = "sha256-9/ywbnvd8hqeblFe+X9SM6PkRPB/yqE8Iw9TNmLMSOE=";
+    sha256 = "sha256-NPyCQsrmD/gBs4UHPGbBACmGRTNQDj6WfnfLNdWulK4=";
     fetchSubmodules = true;
   };
 
@@ -86,6 +91,10 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilds = true;
 
+  passthru.tests = {
+    inherit (python3.pkgs) grpcio-status grpcio-tools;
+  };
+
   meta = with lib; {
     description = "The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)";
     license = licenses.asl20;
diff --git a/pkgs/development/libraries/gsl/default.nix b/pkgs/development/libraries/gsl/default.nix
index dec2125974d71..9cc27ef489843 100644
--- a/pkgs/development/libraries/gsl/default.nix
+++ b/pkgs/development/libraries/gsl/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isx86_64 "-mno-fma";
 
   # https://lists.gnu.org/archive/html/bug-gsl/2015-11/msg00012.html
-  doCheck = stdenv.hostPlatform.system != "i686-linux" && stdenv.hostPlatform.system != "aarch64-linux";
+  doCheck = stdenv.hostPlatform.system != "i686-linux";
 
   meta = {
     description = "The GNU Scientific Library, a large numerical library";
diff --git a/pkgs/development/libraries/gsl/gsl-1_16.nix b/pkgs/development/libraries/gsl/gsl-1_16.nix
index d266518757561..2cda6c7955c23 100644
--- a/pkgs/development/libraries/gsl/gsl-1_16.nix
+++ b/pkgs/development/libraries/gsl/gsl-1_16.nix
@@ -1,10 +1,11 @@
 { fetchurl, fetchpatch, lib, stdenv }:
 
 stdenv.mkDerivation rec {
-  name = "gsl-1.16";
+  pname = "gsl";
+  version = "1.16";
 
   src = fetchurl {
-    url = "mirror://gnu/gsl/${name}.tar.gz";
+    url = "mirror://gnu/gsl/gsl-${version}.tar.gz";
     sha256 = "0lrgipi0z6559jqh82yx8n4xgnxkhzj46v96dl77hahdp58jzg3k";
   };
 
@@ -17,8 +18,15 @@ stdenv.mkDerivation rec {
       url = "https://git.savannah.gnu.org/cgit/gsl.git/patch/?id=9cc12d";
       sha256 = "1bmrmihi28cly9g9pq54kkix2jy59y7cd7h5fw4v1c7h5rc2qvs8";
     })
+
+    (fetchpatch {
+      name = "fix-parallel-test.patch";
+      url = "https://git.savannah.gnu.org/cgit/gsl.git/patch/?id=12654373c3b60541230921aae81f93b484ec5eaf";
+      sha256 = "1flzpbsfj7gjywv6v9qvm8wpdrkbpj7shryinfdpb40y7si9njdw";
+    })
   ];
 
+  enableParallelBuilding = true;
   doCheck = true;
 
   meta = {
diff --git a/pkgs/development/libraries/gss/default.nix b/pkgs/development/libraries/gss/default.nix
index ec4e54c339b08..0c49e97a56bd8 100644
--- a/pkgs/development/libraries/gss/default.nix
+++ b/pkgs/development/libraries/gss/default.nix
@@ -1,21 +1,20 @@
 { lib, stdenv, fetchurl
-, withShishi ? !stdenv.isDarwin, shishi ? null
+, withShishi ? !stdenv.isDarwin, shishi
 }:
 
-assert withShishi -> shishi != null;
-
 stdenv.mkDerivation rec {
-  name = "gss-1.0.3";
+  pname = "gss";
+  version = "1.0.3";
 
   src = fetchurl {
-    url = "mirror://gnu/gss/${name}.tar.gz";
+    url = "mirror://gnu/gss/gss-${version}.tar.gz";
     sha256 = "1syyvh3k659xf1hdv9pilnnhbbhs6vfapayp4xgdcc8mfgf9v4gz";
   };
 
   buildInputs = lib.optional withShishi shishi;
 
   configureFlags = [
-    "--${if withShishi != null then "enable" else "disable"}-kereberos5"
+    "--${if withShishi then "enable" else "disable"}-kerberos5"
   ];
 
   doCheck = true;
diff --git a/pkgs/development/libraries/gssdp/default.nix b/pkgs/development/libraries/gssdp/default.nix
index 9947214bf7fc0..a8f8535138e35 100644
--- a/pkgs/development/libraries/gssdp/default.nix
+++ b/pkgs/development/libraries/gssdp/default.nix
@@ -18,7 +18,8 @@ stdenv.mkDerivation rec {
   pname = "gssdp";
   version = "1.4.0.1";
 
-  outputs = [ "out" "dev" "devdoc" ];
+  outputs = [ "out" "dev" ]
+    ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gssdp/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
@@ -44,13 +45,14 @@ stdenv.mkDerivation rec {
   ];
 
   mesonFlags = [
-    "-Dgtk_doc=true"
+    "-Dgtk_doc=${lib.boolToString (stdenv.buildPlatform == stdenv.hostPlatform)}"
     "-Dsniffer=false"
+    "-Dintrospection=${lib.boolToString (stdenv.buildPlatform == stdenv.hostPlatform)}"
   ];
 
   doCheck = true;
 
-  postFixup = ''
+  postFixup = lib.optionalString (stdenv.buildPlatform == stdenv.hostPlatform) ''
     # Move developer documentation to devdoc output.
     # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
     find -L "$out/share/doc" -type f -regex '.*\.devhelp2?' -print0 \
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
index de6ccd1537805..8c6a8b056781b 100644
--- a/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -105,7 +105,6 @@ stdenv.mkDerivation rec {
   patches = [
     # Use pkgconfig to inject the includedirs
     ./fix_pkgconfig_includedir.patch
-  ] ++ lib.optionals stdenv.isDarwin [
     # Fix “error: cannot initialize a parameter of type 'unsigned long *' with an rvalue of type 'typename std::remove_reference<decltype(*(&opencv_dilate_erode_type))>::type *' (aka 'volatile unsigned long *')” on Darwin.
     (fetchpatch {
       url = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/commit/640a65bf966df065d41a511e2d76d1f26a2e770c.patch";
diff --git a/pkgs/development/libraries/gtdialog/default.nix b/pkgs/development/libraries/gtdialog/default.nix
index ac925477adb3f..d7e60659a5eab 100644
--- a/pkgs/development/libraries/gtdialog/default.nix
+++ b/pkgs/development/libraries/gtdialog/default.nix
@@ -1,32 +1,29 @@
-{lib, stdenv, fetchurl, cdk, unzip, gtk2, glib, ncurses, pkg-config}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="gtdialog";
-    version="1.4";
-    name="${baseName}-${version}";
-    hash="1lhsaz56s8m838fi6vnfcd2r6djymvy3n2pbqhii88hraapq3rfk";
-    url="https://foicica.com/gtdialog/download/gtdialog_1.4.zip";
-    sha256="1lhsaz56s8m838fi6vnfcd2r6djymvy3n2pbqhii88hraapq3rfk";
+{ lib, stdenv, fetchurl, cdk, unzip, gtk2, glib, ncurses, pkg-config }:
+
+stdenv.mkDerivation rec {
+  pname = "gtdialog";
+  version = "1.4";
+
+  src = fetchurl {
+    url = "https://foicica.com/gtdialog/download/gtdialog_${version}.zip";
+    sha256 = "sha256-0+WBr1IZIhQjxOsKO/yuXjaTRWPObhMdGqgibcpXGtI=";
   };
+
   nativeBuildInputs = [ pkg-config unzip ];
   buildInputs = [
-    cdk gtk2 glib ncurses
+    cdk
+    gtk2
+    glib
+    ncurses
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit nativeBuildInputs buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
-  makeFlags = ["PREFIX=$(out)"];
-  meta = {
-    inherit (s) version;
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
     description = "Cross-platform helper for creating interactive dialogs";
-    license = lib.licenses.mit ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.mit;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
     homepage = "http://foicica.com/gtdialog";
     downloadPage = "http://foicica.com/gtdialog/download";
   };
diff --git a/pkgs/development/libraries/gtdialog/default.upstream b/pkgs/development/libraries/gtdialog/default.upstream
deleted file mode 100644
index b9cbcf4c5c752..0000000000000
--- a/pkgs/development/libraries/gtdialog/default.upstream
+++ /dev/null
@@ -1,3 +0,0 @@
-url http://foicica.com/gtdialog/download
-version_link '[.]zip$'
-version '.*_([0-9.]*)[.]zip' '\1'
diff --git a/pkgs/development/libraries/gtest/default.nix b/pkgs/development/libraries/gtest/default.nix
index ffe85538684d3..59bfb4492783a 100644
--- a/pkgs/development/libraries/gtest/default.nix
+++ b/pkgs/development/libraries/gtest/default.nix
@@ -26,6 +26,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/google/googletest";
     license = licenses.bsd3;
     platforms = platforms.all;
-    maintainers = with maintainers; [ zoomulator ivan-tkatchev ];
+    maintainers = with maintainers; [ ivan-tkatchev ];
   };
 }
diff --git a/pkgs/development/libraries/gthree/default.nix b/pkgs/development/libraries/gthree/default.nix
index 990e151efe444..a59541edb2570 100644
--- a/pkgs/development/libraries/gthree/default.nix
+++ b/pkgs/development/libraries/gthree/default.nix
@@ -11,7 +11,7 @@
 , glib
 , gtk3
 , graphene
-, epoxy
+, libepoxy
 , json-glib
 }:
 
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    epoxy
+    libepoxy
     json-glib
   ];
 
diff --git a/pkgs/development/libraries/gtk-engine-bluecurve/default.nix b/pkgs/development/libraries/gtk-engine-bluecurve/default.nix
index 918e1679eba20..43cf8675735fa 100644
--- a/pkgs/development/libraries/gtk-engine-bluecurve/default.nix
+++ b/pkgs/development/libraries/gtk-engine-bluecurve/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, pkg-config, intltool, gtk2 }:
 
-stdenv.mkDerivation {
-  name = "gtk-engine-bluecurve-1.0";
+stdenv.mkDerivation rec {
+  pname = "gtk-engine-bluecurve";
+  version = "1.0";
 
   src = fetchurl {
-    url = "https://ftp.gnome.org/pub/gnome/teams/art.gnome.org/archive/themes/gtk2/GTK2-Wonderland-Engine-1.0.tar.bz2";
+    url = "https://ftp.gnome.org/pub/gnome/teams/art.gnome.org/archive/themes/gtk2/GTK2-Wonderland-Engine-${version}.tar.bz2";
     sha256 = "1nim3lhmbs5mw1hh76d9258c1p923854x2j6i30gmny812c7qjnm";
   };
 
diff --git a/pkgs/development/libraries/gtk-engines/default.nix b/pkgs/development/libraries/gtk-engines/default.nix
index 70b2c4d1e229b..e553efa5f2520 100644
--- a/pkgs/development/libraries/gtk-engines/default.nix
+++ b/pkgs/development/libraries/gtk-engines/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, pkg-config, intltool, gtk2 }:
 
-stdenv.mkDerivation {
-  name = "gtk-engines-2.20.2";
+stdenv.mkDerivation rec {
+  pname = "gtk-engines";
+  version = "2.20.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtk-engines/2.20/gtk-engines-2.20.2.tar.bz2";
+    url = "mirror://gnome/sources/gtk-engines/${lib.versions.majorMinor version}/gtk-engines-${version}.tar.bz2";
     sha256 = "1db65pb0j0mijmswrvpgkdabilqd23x22d95hp5kwxvcramq1dhm";
   };
 
diff --git a/pkgs/development/libraries/gtk/2.x.nix b/pkgs/development/libraries/gtk/2.x.nix
index bbf20d6097020..396366324d3a5 100644
--- a/pkgs/development/libraries/gtk/2.x.nix
+++ b/pkgs/development/libraries/gtk/2.x.nix
@@ -4,7 +4,7 @@
 , cupsSupport ? config.gtk2.cups or stdenv.isLinux, cups
 , gdktarget ? if stdenv.isDarwin then "quartz" else "x11"
 , AppKit, Cocoa
-, fetchpatch
+, fetchpatch, buildPackages
 }:
 
 with lib;
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
     gtkCleanImmodulesCache
   ];
 
+
   nativeBuildInputs = setupHooks ++ [ perl pkg-config gettext gobject-introspection ];
 
   patches = [
@@ -72,6 +73,9 @@ stdenv.mkDerivation rec {
     "--disable-glibtest"
     "--disable-introspection"
     "--disable-visibility"
+  ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+    "ac_cv_path_GTK_UPDATE_ICON_CACHE=${buildPackages.gtk2}/bin/gtk-update-icon-cache"
+    "ac_cv_path_GDK_PIXBUF_CSOURCE=${buildPackages.gdk-pixbuf.dev}/bin/gdk-pixbuf-csource"
   ];
 
   doCheck = false; # needs X11
diff --git a/pkgs/development/libraries/gtk/3.x.nix b/pkgs/development/libraries/gtk/3.x.nix
index 6fce8ca78e815..82bcad0b98564 100644
--- a/pkgs/development/libraries/gtk/3.x.nix
+++ b/pkgs/development/libraries/gtk/3.x.nix
@@ -24,7 +24,7 @@
 , gobject-introspection
 , fribidi
 , xorg
-, epoxy
+, libepoxy
 , libxkbcommon
 , libxml2
 , gmp
@@ -104,7 +104,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     libxkbcommon
-    epoxy
+    libepoxy
     isocodes
   ] ++ lib.optionals stdenv.isDarwin [
     AppKit
diff --git a/pkgs/development/libraries/gtk/4.x.nix b/pkgs/development/libraries/gtk/4.x.nix
index 38df17765c86c..d763c99882e00 100644
--- a/pkgs/development/libraries/gtk/4.x.nix
+++ b/pkgs/development/libraries/gtk/4.x.nix
@@ -21,7 +21,7 @@
 , fribidi
 , harfbuzz
 , xorg
-, epoxy
+, libepoxy
 , libxkbcommon
 , libxml2
 , gnome
@@ -89,7 +89,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     libxkbcommon
-    epoxy
+    libepoxy
     isocodes
   ] ++ lib.optionals vulkanSupport [
     vulkan-headers
@@ -216,6 +216,7 @@ stdenv.mkDerivation rec {
   passthru = {
     updateScript = gnome.updateScript {
       packageName = "gtk";
+      versionPolicy = "odd-unstable";
       attrPath = "gtk4";
     };
   };
diff --git a/pkgs/development/libraries/gtkmm/3.x.nix b/pkgs/development/libraries/gtkmm/3.x.nix
index 734cf833fd846..2d0921cf097fb 100644
--- a/pkgs/development/libraries/gtkmm/3.x.nix
+++ b/pkgs/development/libraries/gtkmm/3.x.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, meson, ninja, python3, gtk3, glibmm, cairomm, pangomm, atkmm, epoxy, gnome }:
+{ lib, stdenv, fetchurl, pkg-config, meson, ninja, python3, gtk3, glibmm, cairomm, pangomm, atkmm, libepoxy, gnome }:
 
 stdenv.mkDerivation rec {
   pname = "gtkmm";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [ pkg-config meson ninja python3 ];
-  buildInputs = [ epoxy ];
+  buildInputs = [ libepoxy ];
 
   propagatedBuildInputs = [ glibmm gtk3 atkmm cairomm pangomm ];
 
diff --git a/pkgs/development/libraries/gtkmm/4.x.nix b/pkgs/development/libraries/gtkmm/4.x.nix
index 67afc4026d1ac..c1bac87a6c08d 100644
--- a/pkgs/development/libraries/gtkmm/4.x.nix
+++ b/pkgs/development/libraries/gtkmm/4.x.nix
@@ -9,7 +9,7 @@
 , glibmm_2_68
 , cairomm_1_16
 , pangomm_2_48
-, epoxy
+, libepoxy
 , gnome
 , makeFontsConf
 , xvfb-run
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    epoxy
+    libepoxy
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/libraries/gtksourceviewmm/4.x.nix b/pkgs/development/libraries/gtksourceviewmm/4.x.nix
index 5bdcc029c5c8c..d6e7dfd3db56e 100644
--- a/pkgs/development/libraries/gtksourceviewmm/4.x.nix
+++ b/pkgs/development/libraries/gtksourceviewmm/4.x.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     platforms = platforms.linux;
-    homepage = "https://developer.gnome.org/gtksourceviewmm/";
+    homepage = "https://gitlab.gnome.org/GNOME/gtksourceviewmm";
     description = "C++ wrapper for gtksourceview";
     license = licenses.lgpl2;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/gtksourceviewmm/default.nix b/pkgs/development/libraries/gtksourceviewmm/default.nix
index cdc96f3f1a04b..ec13965129291 100644
--- a/pkgs/development/libraries/gtksourceviewmm/default.nix
+++ b/pkgs/development/libraries/gtksourceviewmm/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     platforms = platforms.unix;
-    homepage = "https://developer.gnome.org/gtksourceviewmm/";
+    homepage = "https://gitlab.gnome.org/GNOME/gtksourceviewmm";
     description = "C++ wrapper for gtksourceview";
     license = licenses.lgpl2;
     maintainers = [ maintainers.juliendehos ];
diff --git a/pkgs/development/libraries/gupnp-igd/default.nix b/pkgs/development/libraries/gupnp-igd/default.nix
index 6eb44b9172abd..45e17704449da 100644
--- a/pkgs/development/libraries/gupnp-igd/default.nix
+++ b/pkgs/development/libraries/gupnp-igd/default.nix
@@ -17,13 +17,18 @@ stdenv.mkDerivation rec {
   pname = "gupnp-igd";
   version = "1.2.0";
 
-  outputs = [ "out" "dev" "devdoc" ];
+  outputs = [ "out" "dev" ]
+    ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "sha256-S1EgCYqhPt0ngYup7k1/6WG/VAv1DQVv9wPGFUXgK+E=";
   };
 
+  depsBuildBuild = [
+    pkg-config
+  ];
+
   nativeBuildInputs = [
     pkg-config
     meson
@@ -41,7 +46,8 @@ stdenv.mkDerivation rec {
   ];
 
   mesonFlags = [
-    "-Dgtk_doc=true"
+    "-Dgtk_doc=${lib.boolToString (stdenv.buildPlatform == stdenv.hostPlatform)}"
+    "-Dintrospection=${lib.boolToString (stdenv.buildPlatform == stdenv.hostPlatform)}"
   ];
 
   # Seems to get stuck sometimes.
diff --git a/pkgs/development/libraries/gupnp/default.nix b/pkgs/development/libraries/gupnp/default.nix
index 32f7c201fad4d..1a77e50eb5404 100644
--- a/pkgs/development/libraries/gupnp/default.nix
+++ b/pkgs/development/libraries/gupnp/default.nix
@@ -22,7 +22,8 @@ stdenv.mkDerivation rec {
   pname = "gupnp";
   version = "1.4.0";
 
-  outputs = [ "out" "dev" "devdoc" ];
+  outputs = [ "out" "dev" ]
+    ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gupnp/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
@@ -34,6 +35,10 @@ stdenv.mkDerivation rec {
     ./0001-pkg-config-Declare-header-dependencies-as-public.patch
   ];
 
+  depsBuildBuild = [
+    pkg-config
+  ];
+
   nativeBuildInputs = [
     meson
     ninja
@@ -58,7 +63,8 @@ stdenv.mkDerivation rec {
   ];
 
   mesonFlags = [
-    "-Dgtk_doc=true"
+    "-Dgtk_doc=${lib.boolToString (stdenv.buildPlatform == stdenv.hostPlatform)}"
+    "-Dintrospection=${lib.boolToString (stdenv.buildPlatform == stdenv.hostPlatform)}"
   ];
 
   doCheck = true;
diff --git a/pkgs/development/libraries/hamlib/4.nix b/pkgs/development/libraries/hamlib/4.nix
index cad69e8b41877..474db9891aa77 100644
--- a/pkgs/development/libraries/hamlib/4.nix
+++ b/pkgs/development/libraries/hamlib/4.nix
@@ -20,11 +20,11 @@
 
 stdenv.mkDerivation rec {
   pname = "hamlib";
-  version = "4.2";
+  version = "4.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "1m8gb20i8ga6ndnnw187ry1h4z8wx27v1hl7c610r6ky60pv4072";
+    sha256 = "sha256-i/AQewcfUvCFh/OOLe6KeEjeE0NDWzJvj2bZXh+KJIc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix
index e94fcc5ece9d7..06cc41c6b58ad 100644
--- a/pkgs/development/libraries/harfbuzz/default.nix
+++ b/pkgs/development/libraries/harfbuzz/default.nix
@@ -24,7 +24,7 @@
 }:
 
 let
-  version = "2.8.2";
+  version = "3.0.0";
   inherit (lib) optional optionals optionalString;
   mesonFeatureFlag = opt: b:
     "-D${opt}=${if b then "enabled" else "disabled"}";
@@ -39,7 +39,7 @@ stdenv.mkDerivation {
     owner = "harfbuzz";
     repo = "harfbuzz";
     rev = version;
-    sha256 = "sha256-uqcwfe5Oa3S0tyZDzqhIQfRFEv/HaiVWzVvwjqpLo5g=";
+    sha256 = "sha256-yRRr4RcnbwoZ1Hn3+zbbocKFyBSLYx/exaAHNGsPINA=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/hotpatch/default.nix b/pkgs/development/libraries/hotpatch/default.nix
index 2dd894ff4a36a..84803159a2b3c 100644
--- a/pkgs/development/libraries/hotpatch/default.nix
+++ b/pkgs/development/libraries/hotpatch/default.nix
@@ -1,7 +1,8 @@
 { lib, stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
-  name = "hotpatch-0.2";
+  pname = "hotpatch";
+  version = "0.2";
 
   src = fetchFromGitHub {
     owner = "vikasnkumar";
diff --git a/pkgs/development/libraries/hunspell/dictionaries.nix b/pkgs/development/libraries/hunspell/dictionaries.nix
index bc651dc4eedc3..ffa8c5d191b99 100644
--- a/pkgs/development/libraries/hunspell/dictionaries.nix
+++ b/pkgs/development/libraries/hunspell/dictionaries.nix
@@ -5,25 +5,25 @@
 
 let
   mkDict =
-  { pname, readmeFile, dictFileName, ... }@args:
-  stdenv.mkDerivation ({
-    inherit pname;
-    installPhase = ''
-      runHook preInstall
-      # hunspell dicts
-      install -dm755 "$out/share/hunspell"
-      install -m644 ${dictFileName}.dic "$out/share/hunspell/"
-      install -m644 ${dictFileName}.aff "$out/share/hunspell/"
-      # myspell dicts symlinks
-      install -dm755 "$out/share/myspell/dicts"
-      ln -sv "$out/share/hunspell/${dictFileName}.dic" "$out/share/myspell/dicts/"
-      ln -sv "$out/share/hunspell/${dictFileName}.aff" "$out/share/myspell/dicts/"
-      # docs
-      install -dm755 "$out/share/doc"
-      install -m644 ${readmeFile} $out/share/doc/${pname}.txt
-      runHook postInstall
-    '';
-  } // args);
+    { pname, readmeFile, dictFileName, ... }@args:
+    stdenv.mkDerivation ({
+      inherit pname;
+      installPhase = ''
+        runHook preInstall
+        # hunspell dicts
+        install -dm755 "$out/share/hunspell"
+        install -m644 ${dictFileName}.dic "$out/share/hunspell/"
+        install -m644 ${dictFileName}.aff "$out/share/hunspell/"
+        # myspell dicts symlinks
+        install -dm755 "$out/share/myspell/dicts"
+        ln -sv "$out/share/hunspell/${dictFileName}.dic" "$out/share/myspell/dicts/"
+        ln -sv "$out/share/hunspell/${dictFileName}.aff" "$out/share/myspell/dicts/"
+        # docs
+        install -dm755 "$out/share/doc"
+        install -m644 ${readmeFile} $out/share/doc/${pname}.txt
+        runHook postInstall
+      '';
+    } // args);
 
   mkDictFromRla =
     { shortName, shortDescription, dictFileName }:
@@ -79,9 +79,9 @@ let
       };
       meta = with lib; {
         longDescription = ''
-        Svensk ordlista baserad på DSSO (den stora svenska ordlistan) och Göran
-        Anderssons (goran@init.se) arbete med denna. Ordlistan hämtas från
-        LibreOffice då dsso.se inte längre verkar vara med oss.
+          Svensk ordlista baserad på DSSO (den stora svenska ordlistan) och Göran
+          Anderssons (goran@init.se) arbete med denna. Ordlistan hämtas från
+          LibreOffice då dsso.se inte längre verkar vara med oss.
         '';
         description = "Hunspell dictionary for ${shortDescription} from LibreOffice";
         license = licenses.lgpl3;
@@ -90,7 +90,7 @@ let
       nativeBuildInputs = [ unzip ];
       sourceRoot = ".";
       unpackCmd = ''
-      unzip $src dictionaries/${dictFileName}.dic dictionaries/${dictFileName}.aff $readmeFile
+        unzip $src dictionaries/${dictFileName}.dic dictionaries/${dictFileName}.aff $readmeFile
       '';
       installPhase = ''
         # hunspell dicts
@@ -115,8 +115,8 @@ let
       pname = "hunspell-dict-${shortName}-dicollecte";
       readmeFile = "README_dict_fr.txt";
       src = fetchurl {
-         url = "http://www.dicollecte.org/download/fr/hunspell-french-dictionaries-v${version}.zip";
-         sha256 = "0ca7084jm7zb1ikwzh1frvpb97jn27i7a5d48288h2qlfp068ik0";
+        url = "http://www.dicollecte.org/download/fr/hunspell-french-dictionaries-v${version}.zip";
+        sha256 = "0ca7084jm7zb1ikwzh1frvpb97jn27i7a5d48288h2qlfp068ik0";
       };
       meta = with lib; {
         inherit longDescription;
@@ -266,7 +266,8 @@ let
     , dictFileName
     , license
     , readmeFile ? "README_${dictFileName}.txt"
-    , sourceRoot ? dictFileName }:
+    , sourceRoot ? dictFileName
+    }:
     mkDict rec {
       pname = "hunspell-dict-${shortName}-libreoffice";
       version = "6.3.0.4";
@@ -289,7 +290,8 @@ let
       };
     };
 
-in rec {
+in
+rec {
 
   /* ENGLISH */
 
@@ -598,7 +600,7 @@ in rec {
   /* ITALIAN */
 
   it_IT = it-it;
-  it-it =  mkDictFromLinguistico {
+  it-it = mkDictFromLinguistico {
     shortName = "it-it";
     dictFileName = "it_IT";
     shortDescription = "Hunspell dictionary for 'Italian (Italy)' from Linguistico";
@@ -821,4 +823,27 @@ in rec {
     readmeFile = "README_he_IL.txt";
     license = with lib.licenses; [ agpl3Plus ];
   };
+
+  /* THAI */
+
+  th_TH = th-th;
+  th-th = mkDict {
+    pname = "hunspell-dict-th-th";
+    version = "experimental-2021-12-20";
+    dictFileName = "th_TH";
+    readmeFile = "README.md";
+    src = fetchFromGitHub {
+      owner = "SyafiqHadzir";
+      repo = "Hunspell-TH";
+      rev = "f119e58e5f6954965d6abd683e7d4c4b9be2684f";
+      sha256 = "sha256-hwqKvuLxbtzxfyQ5YhC/sdb3QQwxCfzgDOHeatxDjxM=";
+    };
+    meta = with lib; {
+      description = "Hunspell dictionary for Central Thai (Thailand)";
+      homepage = "https://github.com/SyafiqHadzir/Hunspell-TH";
+      license = with licenses; [ gpl3 ];
+      maintainers = with maintainers; [ toastal ]; # looking for a native speaker
+      platforms = platforms.all;
+    };
+  };
 }
diff --git a/pkgs/development/libraries/hwloc/default.nix b/pkgs/development/libraries/hwloc/default.nix
index 08beeba725c8e..a1119f4be2c6e 100644
--- a/pkgs/development/libraries/hwloc/default.nix
+++ b/pkgs/development/libraries/hwloc/default.nix
@@ -8,11 +8,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "hwloc";
-  version = "2.6.0";
+  version = "2.7.0";
 
   src = fetchurl {
     url = "https://www.open-mpi.org/software/hwloc/v${versions.majorMinor version}/downloads/hwloc-${version}.tar.bz2";
-    sha256 = "0fm8ky2qx5aq4dwx3slmgyvjc93fpplxbsldhkzrdhi89vj77w71";
+    sha256 = "1q440fwvhnxz6j8k5bn3bxj86b3lzbr8fgib78l4iq6gxd9yx302";
   };
 
   configureFlags = [
diff --git a/pkgs/development/libraries/imgui/default.nix b/pkgs/development/libraries/imgui/default.nix
new file mode 100644
index 0000000000000..038c5a0362005
--- /dev/null
+++ b/pkgs/development/libraries/imgui/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "imgui";
+  version = "1.86";
+
+  src = fetchFromGitHub {
+    owner = "ocornut";
+    repo = "imgui";
+    rev = "v${version}";
+    sha256 = "sha256-NuyWrtD+/bRkMlsvU0gNkQhDJVlSPPWhBELN/AtYRwk=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/include/imgui
+
+    cp *.h $out/include/imgui
+    cp *.cpp $out/include/imgui
+    cp -a backends $out/include/imgui/
+    cp -a misc $out/include/imgui/
+  '';
+
+  meta = with lib; {
+    description = "Bloat-free Graphical User interface for C++ with minimal dependencies";
+    homepage = "https://github.com/ocornut/imgui";
+    license = licenses.mit;
+    maintainers = with maintainers; [ wolfangaukang ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/incrtcl/default.nix b/pkgs/development/libraries/incrtcl/default.nix
index dae01961a10cf..0a57b3c26fffc 100644
--- a/pkgs/development/libraries/incrtcl/default.nix
+++ b/pkgs/development/libraries/incrtcl/default.nix
@@ -2,11 +2,11 @@
 
 tcl.mkTclDerivation rec {
   pname = "incrtcl";
-  version = "4.2.0";
+  version = "4.2.2";
 
   src = fetchurl {
     url    = "mirror://sourceforge/incrtcl/%5BIncr%20Tcl_Tk%5D-source/3.4/itcl${version}.tar.gz";
-    sha256 = "0w28v0zaraxcq1s9pa6cihqqwqvvwfgz275lks7w4gl7hxjxmasw";
+    sha256 = "sha256-rExnDq8bWyVb/KzKgyCzPVa72S/VRGPGPW9pmocOFWw=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/intel-gmmlib/default.nix b/pkgs/development/libraries/intel-gmmlib/default.nix
index 59aaeb6ad9285..644975ca66c1a 100644
--- a/pkgs/development/libraries/intel-gmmlib/default.nix
+++ b/pkgs/development/libraries/intel-gmmlib/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-gmmlib";
-  version = "21.3.3";
+  version = "22.0.1";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "gmmlib";
     rev = "intel-gmmlib-${version}";
-    sha256 = "0hvly3fykhy4m7mzaa7xadaz7jz8krnfgj3zgzl2a2rpzja6frdn";
+    sha256 = "1s46vwcs26hdlsa8h51gq4fyi9i8k5hrcx5ffbv9g7v3x706nplf";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/intel-media-driver/default.nix b/pkgs/development/libraries/intel-media-driver/default.nix
index ef422380557a9..d76a58fc633dd 100644
--- a/pkgs/development/libraries/intel-media-driver/default.nix
+++ b/pkgs/development/libraries/intel-media-driver/default.nix
@@ -7,13 +7,14 @@
 , libva
 , libpciaccess
 , intel-gmmlib
+, libdrm
 , enableX11 ? stdenv.isLinux
 , libX11
 }:
 
 stdenv.mkDerivation rec {
   pname = "intel-media-driver";
-  version = "21.4.1";
+  version = "22.1.0";
 
   outputs = [ "out" "dev" ];
 
@@ -21,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "intel";
     repo = "media-driver";
     rev = "intel-media-${version}";
-    sha256 = "1gf3gkxr68n8ca5bk269w469jykq90z8d3a9v0gag02cl1d6ca3i";
+    sha256 = "0giba5274kzpjb5rp3d9bbnvcz7fp8ybi4s3hha2idxk0l5yamf1";
   };
 
   patches = [
@@ -43,7 +44,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ libva libpciaccess intel-gmmlib ]
+  buildInputs = [ libva libpciaccess intel-gmmlib libdrm ]
     ++ lib.optional enableX11 libX11;
 
   postFixup = lib.optionalString enableX11 ''
diff --git a/pkgs/development/libraries/intel-media-sdk/default.nix b/pkgs/development/libraries/intel-media-sdk/default.nix
index c0bac7e5466d7..870276c17232e 100644
--- a/pkgs/development/libraries/intel-media-sdk/default.nix
+++ b/pkgs/development/libraries/intel-media-sdk/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-media-sdk";
-  version = "21.3.1";
+  version = "21.4.3";
 
   src = fetchFromGitHub {
     owner = "Intel-Media-SDK";
     repo = "MediaSDK";
     rev = "intel-mediasdk-${version}";
-    sha256 = "sha256-Ki+gTDL6gj+f3wjhVp4EIVvrPn6NRmCCkCj5g//kAW8=";
+    sha256 = "sha256-Z6wIwgcKa+EaqSmbD//pYzGjDezASNWGnLCROiRvACo=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/libraries/ip2location-c/default.nix b/pkgs/development/libraries/ip2location-c/default.nix
index 510bc162501d0..40a5d834f71af 100644
--- a/pkgs/development/libraries/ip2location-c/default.nix
+++ b/pkgs/development/libraries/ip2location-c/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ip2location-c";
-  version = "8.4.0";
+  version = "8.4.1";
 
   src = fetchFromGitHub {
     owner = "chrislim2888";
     repo = "IP2Location-C-Library";
     rev = version;
-    sha256 = "0rqjgmv62s7abiiqi3ff3ff838qx4pzr509irmzvqlflnkxxi0q6";
+    sha256 = "sha256-a2ekDi8+08Mm/OsWZbahcpFMPNqmv+cECAONQLynhSY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/irrlicht/mac_device.patch b/pkgs/development/libraries/irrlicht/mac_device.patch
index dc68c509975c2..2cd4029382865 100644
--- a/pkgs/development/libraries/irrlicht/mac_device.patch
+++ b/pkgs/development/libraries/irrlicht/mac_device.patch
@@ -18,3 +18,21 @@
  			[NSBundle loadNibNamed:@"MainMenu" owner:[NSApp delegate]];

  			[NSApp finishLaunching];

  		}

+@@ -642,7 +642,7 @@
+ 						NSOpenGLPFASamples, (NSOpenGLPixelFormatAttribute)CreationParams.AntiAlias,

+ 						NSOpenGLPFAStencilSize, (NSOpenGLPixelFormatAttribute)(CreationParams.Stencilbuffer?1:0),

+ 						NSOpenGLPFADoubleBuffer,

+-						(NSOpenGLPixelFormatAttribute)nil

++						(NSOpenGLPixelFormatAttribute)0

+ 					};

+ 

+ 					if (CreationParams.AntiAlias<2)

+@@ -668,7 +668,7 @@
+ 						{

+ 							// Third try without Doublebuffer

+ 							os::Printer::log("No doublebuffering available.", ELL_WARNING);

+-							windowattribs[14]=(NSOpenGLPixelFormatAttribute)nil;

++							windowattribs[14]=(NSOpenGLPixelFormatAttribute)0;

+ 						}

+ 

+ 						format = [[NSOpenGLPixelFormat alloc] initWithAttributes:windowattribs];

diff --git a/pkgs/development/libraries/java/commons/bsf/default.nix b/pkgs/development/libraries/java/commons/bsf/default.nix
index 629ab7ec131a4..08b6a99a55dad 100644
--- a/pkgs/development/libraries/java/commons/bsf/default.nix
+++ b/pkgs/development/libraries/java/commons/bsf/default.nix
@@ -1,10 +1,11 @@
 {lib, stdenv, fetchurl}:
 
-stdenv.mkDerivation {
-  name = "commons-bsf-1.2";
+stdenv.mkDerivation rec {
+  pname = "commons-bsf";
+  version = "2.4.0";
 
   src = fetchurl {
-    url = "mirror://apache/commons/bsf/binaries/bsf-bin-2.4.0.tar.gz";
+    url = "mirror://apache/commons/bsf/binaries/bsf-bin-${version}.tar.gz";
     sha256 = "1my3hv4y8cvrd1kr315wvbjqsamzlzswnbqcmsa2m4hqcafddfr8";
   };
 
diff --git a/pkgs/development/libraries/java/commons/io/default.nix b/pkgs/development/libraries/java/commons/io/default.nix
index 0c5ac8f4dded5..ba8b59162c5c6 100644
--- a/pkgs/development/libraries/java/commons/io/default.nix
+++ b/pkgs/development/libraries/java/commons/io/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "2.8.0";
+  version = "2.11.0";
   pname = "commons-io";
 
   src = fetchurl {
     url    = "mirror://apache/commons/io/binaries/${pname}-${version}-bin.tar.gz";
-    sha256 = "02c54cjf3sdwbc9rcgg3xkx1f3yk8p5iv3iwvq78f5vfxsj53lkk";
+    sha256 = "sha256-9RXVNzjEhdYCYWbB9/xW3rm+gSOuD6+jwAO9zJVt4fk=";
   };
 
   installPhase = ''
diff --git a/pkgs/development/libraries/java/commons/logging/default.nix b/pkgs/development/libraries/java/commons/logging/default.nix
index d63a214e2ad7e..5b6c8b36b3491 100644
--- a/pkgs/development/libraries/java/commons/logging/default.nix
+++ b/pkgs/development/libraries/java/commons/logging/default.nix
@@ -1,10 +1,11 @@
 {lib, stdenv, fetchurl}:
 
-stdenv.mkDerivation {
-  name = "commons-logging-1.2";
+stdenv.mkDerivation rec {
+  pname = "commons-logging";
+  version = "1.2";
 
   src = fetchurl {
-    url    = "mirror://apache/commons/logging/binaries/commons-logging-1.2-bin.tar.gz";
+    url    = "mirror://apache/commons/logging/binaries/commons-logging-${version}-bin.tar.gz";
     sha256 = "1gc70pmcv0x6ibl89jglmr22f8zpr63iaifi49nrq399qw2qhx9z";
   };
 
diff --git a/pkgs/development/libraries/java/commons/math/default.nix b/pkgs/development/libraries/java/commons/math/default.nix
index 960f12fb8bfb9..5543532015e0b 100644
--- a/pkgs/development/libraries/java/commons/math/default.nix
+++ b/pkgs/development/libraries/java/commons/math/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    homepage    = "http://commons.apache.org/proper/commons-math/";
+    homepage    = "https://commons.apache.org/proper/commons-math/";
     description = "A library of lightweight, self-contained mathematics and statistics components";
     maintainers = with lib.maintainers; [ copumpkin ];
     license     = lib.licenses.asl20;
diff --git a/pkgs/development/libraries/java/dbus-java/default.nix b/pkgs/development/libraries/java/dbus-java/default.nix
index 9fbcf8b020ced..c8e67edfe2b57 100644
--- a/pkgs/development/libraries/java/dbus-java/default.nix
+++ b/pkgs/development/libraries/java/dbus-java/default.nix
@@ -1,18 +1,19 @@
-{lib, stdenv, fetchurl, gettext, jdk8, libmatthew_java}:
+{ lib, stdenv, fetchurl, gettext, jdk8, libmatthew_java }:
+
+stdenv.mkDerivation rec {
+  pname = "dbus-java";
+  version = "2.7";
 
-let jdk = jdk8; in
-stdenv.mkDerivation {
-  name = "dbus-java-2.7";
   src = fetchurl {
-    url = "https://dbus.freedesktop.org/releases/dbus-java/dbus-java-2.7.tar.gz";
+    url = "https://dbus.freedesktop.org/releases/dbus-java/dbus-java-${version}.tar.gz";
     sha256 = "0cyaxd8x6sxmi6pklkkx45j311a6w51fxl4jc5j3inc4cailwh5y";
   };
-  JAVA_HOME=jdk;
-  JAVA="${jdk}/bin/java";
+  JAVA_HOME=jdk8;
+  JAVA="${jdk8}/bin/java";
   PREFIX="\${out}";
   JAVAUNIXLIBDIR="${libmatthew_java}/lib/jni";
   JAVAUNIXJARDIR="${libmatthew_java}/share/java";
-  buildInputs = [ gettext jdk ];
+  buildInputs = [ gettext jdk8 ];
   # I'm too lazy to build the documentation
   preBuild = ''
     sed -i -e "s|all: bin doc man|all: bin|" \
diff --git a/pkgs/development/libraries/java/geoipjava/default.nix b/pkgs/development/libraries/java/geoipjava/default.nix
index 0e5b1084b49c8..cbb6b35a65c92 100644
--- a/pkgs/development/libraries/java/geoipjava/default.nix
+++ b/pkgs/development/libraries/java/geoipjava/default.nix
@@ -1,9 +1,11 @@
 {lib, stdenv, fetchurl, jdk, unzip}:
 
-stdenv.mkDerivation {
-  name = "GeoIPJava-1.2.5";
+stdenv.mkDerivation rec {
+  pname = "GeoIPJava";
+  version = "1.2.5";
+
   src = fetchurl {
-    url = "https://geolite.maxmind.com/download/geoip/api/java/GeoIPJava-1.2.5.zip";
+    url = "https://geolite.maxmind.com/download/geoip/api/java/GeoIPJava-${version}.zip";
     sha256 = "1gb2d0qvvq7xankz7l7ymbr3qprwk9bifpy4hlgw0sq4i6a55ypd";
   };
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/development/libraries/java/hsqldb/default.nix b/pkgs/development/libraries/java/hsqldb/default.nix
index 19c8833db7283..8f678ce7555b7 100644
--- a/pkgs/development/libraries/java/hsqldb/default.nix
+++ b/pkgs/development/libraries/java/hsqldb/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "hsqldb";
-  version = "2.6.0";
+  version = "2.6.1";
   underscoreMajMin = lib.strings.replaceChars ["."] ["_"] (lib.versions.majorMinor version);
 
   src = fetchurl {
     url = "mirror://sourceforge/project/hsqldb/hsqldb/hsqldb_${underscoreMajMin}/hsqldb-${version}.zip";
-    sha256 = "sha256-GhuTBJl1E+aoWa8pTWEqzghHDXXiCQFIt++8pjCQYik=";
+    sha256 = "sha256-cixyEwjEt68UOotd1TcJNyVUxTRDx4XyfyYg9k6kRtQ=";
   };
 
   nativeBuildInputs = [ unzip makeWrapper ];
diff --git a/pkgs/development/libraries/java/httpunit/builder.sh b/pkgs/development/libraries/java/httpunit/builder.sh
deleted file mode 100755
index 2738500829580..0000000000000
--- a/pkgs/development/libraries/java/httpunit/builder.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-source $stdenv/setup
-
-$unzip/bin/unzip $src
-mkdir $out
-mv $name/* $out/
diff --git a/pkgs/development/libraries/java/httpunit/default.nix b/pkgs/development/libraries/java/httpunit/default.nix
index ad276fcdd6364..a93a646e21ac9 100644
--- a/pkgs/development/libraries/java/httpunit/default.nix
+++ b/pkgs/development/libraries/java/httpunit/default.nix
@@ -1,15 +1,17 @@
-{lib, stdenv, fetchurl, unzip} :
+{ lib, stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "httpunit-1.7";
-  builder = ./builder.sh;
+stdenv.mkDerivation rec {
+  pname = "httpunit";
+  version = "1.7";
 
   src = fetchurl {
-    url = "mirror://sourceforge/httpunit/httpunit-1.7.zip";
+    url = "mirror://sourceforge/httpunit/httpunit-${version}.zip";
     sha256 = "09gnayqgizd8cjqayvdpkxrc69ipyxawc96aznfrgdhdiwv8l5zf";
   };
 
-  inherit unzip;
+  buildCommand = ''
+    cp ./* $out
+  '';
 
   meta = with lib; {
     homepage = "http://httpunit.sourceforge.net";
diff --git a/pkgs/development/libraries/java/jdom/builder.sh b/pkgs/development/libraries/java/jdom/builder.sh
deleted file mode 100755
index dbec4b6f3e0e5..0000000000000
--- a/pkgs/development/libraries/java/jdom/builder.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-set -e
-source $stdenv/setup
-
-tar zxvf $src
-mkdir -p $out
-mv * $out
diff --git a/pkgs/development/libraries/java/jdom/default.nix b/pkgs/development/libraries/java/jdom/default.nix
index 4bb90dd98874b..cbbec60ad32b0 100644
--- a/pkgs/development/libraries/java/jdom/default.nix
+++ b/pkgs/development/libraries/java/jdom/default.nix
@@ -1,14 +1,18 @@
-{lib, stdenv, fetchurl} :
+{ lib, stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "jdom-1.0";
-  builder = ./builder.sh;
+stdenv.mkDerivation rec {
+  pname = "jdom";
+  version = "1.0";
 
   src = fetchurl {
-    url = "http://www.jdom.org/dist/binary/jdom-1.0.tar.gz";
+    url = "http://www.jdom.org/dist/binary/jdom-${version}.tar.gz";
     sha256 = "1igmxzcy0s25zcy9vmcw0kd13lh60r0b4qg8lnp1jic33f427pxf";
   };
 
+  buildCommand = ''
+    cp -r ./ $out
+  '';
+
   meta = with lib; {
     description = "Java-based solution for accessing, manipulating, and outputting XML data from Java code";
     homepage = "http://www.jdom.org";
diff --git a/pkgs/development/libraries/java/jflex/default.nix b/pkgs/development/libraries/java/jflex/default.nix
index cf5b42a0ac215..4f5a9de7bd5c2 100644
--- a/pkgs/development/libraries/java/jflex/default.nix
+++ b/pkgs/development/libraries/java/jflex/default.nix
@@ -1,14 +1,15 @@
 {lib, stdenv, fetchurl, jre} :
 
 stdenv.mkDerivation rec {
-  name = "jflex-1.8.2";
+  pname = "jflex";
+  version = "1.8.2";
 
   src = fetchurl {
-    url = "http://jflex.de/release/${name}.tar.gz";
+    url = "http://jflex.de/release/jflex-${version}.tar.gz";
     sha256 = "1ar7g6zb2xjgnws3j4cqcp86jplhc9av8cpcjdmxw08x6igd5q51";
   };
 
-  sourceRoot = name;
+  sourceRoot = "${pname}-${version}";
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/development/libraries/java/libmatthew-java/default.nix b/pkgs/development/libraries/java/libmatthew-java/default.nix
index a3cdaa37ed065..6f736403e0565 100644
--- a/pkgs/development/libraries/java/libmatthew-java/default.nix
+++ b/pkgs/development/libraries/java/libmatthew-java/default.nix
@@ -1,9 +1,11 @@
 {lib, stdenv, fetchurl, jdk}:
 
-stdenv.mkDerivation {
-  name = "libmatthew-java-0.8";
+stdenv.mkDerivation rec {
+  pname = "libmatthew-java";
+  version = "0.8";
+
   src = fetchurl {
-    url = "https://src.fedoraproject.org/repo/pkgs/libmatthew-java/libmatthew-java-0.8.tar.gz/8455b8751083ce25c99c2840609271f5/libmatthew-java-0.8.tar.gz";
+    url = "https://src.fedoraproject.org/repo/pkgs/libmatthew-java/libmatthew-java-${version}.tar.gz/8455b8751083ce25c99c2840609271f5/libmatthew-java-${version}.tar.gz";
     sha256 = "1yldkhsdzm0a41a0i881bin2jklhp85y3ah245jd6fz3npcx7l85";
   };
   JAVA_HOME=jdk;
diff --git a/pkgs/development/libraries/java/lombok/default.nix b/pkgs/development/libraries/java/lombok/default.nix
index b4f0f4525f79e..af75be5375796 100644
--- a/pkgs/development/libraries/java/lombok/default.nix
+++ b/pkgs/development/libraries/java/lombok/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, makeWrapper, jdk }:
 
 stdenv.mkDerivation rec {
-  name = "lombok-1.18.20";
+  pname = "lombok";
+  version = "1.18.20";
 
   src = fetchurl {
-    url = "https://projectlombok.org/downloads/${name}.jar";
+    url = "https://projectlombok.org/downloads/lombok-${version}.jar";
     sha256 = "sha256-zpR75sL751n7vo7ztCtoJfgUyYyIU/EBPy2WMM7fdLA=";
   };
 
diff --git a/pkgs/development/libraries/java/lucene/builder.sh b/pkgs/development/libraries/java/lucene/builder.sh
deleted file mode 100755
index d95feb5eeb44f..0000000000000
--- a/pkgs/development/libraries/java/lucene/builder.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-set -e
-source $stdenv/setup
-
-tar zxvf $src
-mkdir -p $out
-mv $name/* $out
diff --git a/pkgs/development/libraries/java/lucene/default.nix b/pkgs/development/libraries/java/lucene/default.nix
index 417c7b9690009..9791c0ee45562 100644
--- a/pkgs/development/libraries/java/lucene/default.nix
+++ b/pkgs/development/libraries/java/lucene/default.nix
@@ -1,16 +1,18 @@
-{lib, stdenv, fetchurl} :
+{ lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   pname = "lucene";
   version = "1.4.3";
 
-  builder = ./builder.sh;
-
   src = fetchurl {
-    url = "https://archive.apache.org/dist/jakarta/lucene/${pname}-${version}.tar.gz";
+    url = "https://archive.apache.org/dist/jakarta/lucene/lucene-${version}.tar.gz";
     sha256 = "1mxaxg65f7v8n60irjwm24v7hcisbl0srmpvcy1l4scs6rjj1awh";
   };
 
+  buildCommand = ''
+    cp -r . $out/
+  '';
+
   meta = with lib; {
     description = "Java full-text search engine";
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/java/mockobjects/default.nix b/pkgs/development/libraries/java/mockobjects/default.nix
index 3780ef4abed2d..93b222357840d 100644
--- a/pkgs/development/libraries/java/mockobjects/default.nix
+++ b/pkgs/development/libraries/java/mockobjects/default.nix
@@ -1,10 +1,11 @@
-{lib, stdenv, fetchurl} :
+{ lib, stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "mockobjects-0.09";
+stdenv.mkDerivation rec {
+  pname = "mockobjects";
+  version = "0.09";
 
   src = fetchurl {
-    url = "mirror://sourceforge/mockobjects/mockobjects-bin-0.09.tar";
+    url = "mirror://sourceforge/mockobjects/mockobjects-bin-${version}.tar";
     sha256 = "18rnyqfcyh0s3dwkkaszdd50ssyjx5fa1y3ii309ldqg693lfgnz";
   };
 
diff --git a/pkgs/development/libraries/java/smack/default.nix b/pkgs/development/libraries/java/smack/default.nix
index c5d6098a3cde2..5c032f5469ce0 100644
--- a/pkgs/development/libraries/java/smack/default.nix
+++ b/pkgs/development/libraries/java/smack/default.nix
@@ -1,10 +1,11 @@
-{lib, stdenv, fetchurl}:
+{ lib, stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "smack-4.1.9";
+stdenv.mkDerivation rec {
+  pname = "smack";
+  version = "4.1.9";
 
   src = fetchurl {
-    url = "http://www.igniterealtime.org/downloadServlet?filename=smack/smack_4_1_9.tar.gz";
+    url = "http://www.igniterealtime.org/downloadServlet?filename=smack/smack_${lib.replaceStrings ["."] ["_"] version}.tar.gz";
     sha256 = "009x0qcxd4dkvwcjz2nla470pwbabwvg37wc21pslpw42ldi0bzp";
   };
 
diff --git a/pkgs/development/libraries/jemalloc/common.nix b/pkgs/development/libraries/jemalloc/common.nix
deleted file mode 100644
index d5fe07b00f2ac..0000000000000
--- a/pkgs/development/libraries/jemalloc/common.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ version, sha256 }:
-{ lib, stdenv, fetchurl
-# By default, jemalloc puts a je_ prefix onto all its symbols on OSX, which
-# then stops downstream builds (mariadb in particular) from detecting it. This
-# option should remove the prefix and give us a working jemalloc.
-# Causes segfaults with some software (ex. rustc), but defaults to true for backward
-# compatibility.
-, stripPrefix ? stdenv.hostPlatform.isDarwin
-, disableInitExecTls ? false
-}:
-
-with lib;
-
-stdenv.mkDerivation rec {
-  pname = "jemalloc";
-  inherit version;
-
-  src = fetchurl {
-    url = "https://github.com/jemalloc/jemalloc/releases/download/${version}/${pname}-${version}.tar.bz2";
-    inherit sha256;
-  };
-
-  # see the comment on stripPrefix
-  configureFlags = []
-    ++ optional stripPrefix "--with-jemalloc-prefix="
-    ++ optional disableInitExecTls "--disable-initial-exec-tls"
-    # jemalloc is unable to correctly detect transparent hugepage support on
-    # ARM (https://github.com/jemalloc/jemalloc/issues/526), and the default
-    # kernel ARMv6/7 kernel does not enable it, so we explicitly disable support
-    ++ optionals (stdenv.isAarch32 && versionOlder version "5") [
-      "--disable-thp"
-      "je_cv_thp=no"
-    ]
-  ;
-
-  doCheck = true;
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    homepage = "http://jemalloc.net";
-    description = "General purpose malloc(3) implementation";
-    longDescription = ''
-      malloc(3)-compatible memory allocator that emphasizes fragmentation
-      avoidance and scalable concurrency support.
-    '';
-    license = licenses.bsd2;
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/libraries/jemalloc/default.nix b/pkgs/development/libraries/jemalloc/default.nix
index 9324279ed1002..8ed9219fb7b49 100644
--- a/pkgs/development/libraries/jemalloc/default.nix
+++ b/pkgs/development/libraries/jemalloc/default.nix
@@ -1,4 +1,58 @@
-import ./common.nix {
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+# By default, jemalloc puts a je_ prefix onto all its symbols on OSX, which
+# then stops downstream builds (mariadb in particular) from detecting it. This
+# option should remove the prefix and give us a working jemalloc.
+# Causes segfaults with some software (ex. rustc), but defaults to true for backward
+# compatibility.
+, stripPrefix ? stdenv.hostPlatform.isDarwin
+, disableInitExecTls ? false
+}:
+
+stdenv.mkDerivation rec {
+  pname = "jemalloc";
   version = "5.2.1";
-  sha256 = "1xl7z0vwbn5iycg7amka9jd6hxd8nmfk7nahi4p9w2bnw9f0wcrl";
+
+  src = fetchurl {
+    url = "https://github.com/jemalloc/jemalloc/releases/download/${version}/${pname}-${version}.tar.bz2";
+    sha256 = "1xl7z0vwbn5iycg7amka9jd6hxd8nmfk7nahi4p9w2bnw9f0wcrl";
+  };
+
+  patches = [
+    # workaround https://github.com/jemalloc/jemalloc/issues/2091
+    (fetchpatch {
+      url = "https://github.com/jemalloc/jemalloc/commit/3b4a03b92b2e415415a08f0150fdb9eeb659cd52.diff";
+      sha256 = "sha256-6AYtADREhfj93ZLk9xnXtjc6vHDU0EKLLOvLd6YdJeI=";
+    })
+  ];
+
+  # see the comment on stripPrefix
+  configureFlags = []
+    ++ lib.optional stripPrefix "--with-jemalloc-prefix="
+    ++ lib.optional disableInitExecTls "--disable-initial-exec-tls"
+    # jemalloc is unable to correctly detect transparent hugepage support on
+    # ARM (https://github.com/jemalloc/jemalloc/issues/526), and the default
+    # kernel ARMv6/7 kernel does not enable it, so we explicitly disable support
+    ++ lib.optionals (stdenv.isAarch32 && lib.versionOlder version "5") [
+      "--disable-thp"
+      "je_cv_thp=no"
+    ]
+  ;
+
+  doCheck = true;
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    homepage = "http://jemalloc.net";
+    description = "General purpose malloc(3) implementation";
+    longDescription = ''
+      malloc(3)-compatible memory allocator that emphasizes fragmentation
+      avoidance and scalable concurrency support.
+    '';
+    license = licenses.bsd2;
+    platforms = platforms.all;
+  };
 }
diff --git a/pkgs/development/libraries/jemalloc/jemalloc450.nix b/pkgs/development/libraries/jemalloc/jemalloc450.nix
deleted file mode 100644
index 85b4fb100f742..0000000000000
--- a/pkgs/development/libraries/jemalloc/jemalloc450.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-import ./common.nix {
-  version = "4.5.0";
-  sha256 = "10373xhpc10pgmai9fkc1z0rs029qlcb3c0qfnvkbwdlcibdh2cl";
-}
diff --git a/pkgs/development/libraries/judy/default.nix b/pkgs/development/libraries/judy/default.nix
index 077c4fe90fdb4..bec72ac802061 100644
--- a/pkgs/development/libraries/judy/default.nix
+++ b/pkgs/development/libraries/judy/default.nix
@@ -15,6 +15,12 @@ stdenv.mkDerivation rec {
     configureFlagsArray+=("CFLAGS=-fno-strict-aliasing -fno-aggressive-loop-optimizations")
   '';
 
+  # Disable parallel builds as manpages lack some dependencies:
+  #    ../tool/jhton ext/JudyHS_funcs_3.htm | grep -v '^[   ]*$' | sed -e 's/\.C//' > man/man3/JudyHS_funcs
+  #    make[2]: *** No rule to make target 'man/man3/JSLD', needed by 'all-am'.  Stop.
+  # Let's wait for the upstream fix similar to https://sourceforge.net/p/judy/patches/4/
+  enableParallelBuilding = false;
+
   meta = {
     homepage = "http://judy.sourceforge.net/";
     license = lib.licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/kddockwidgets/default.nix b/pkgs/development/libraries/kddockwidgets/default.nix
index b63bdc979c429..c91cf6ecffa60 100644
--- a/pkgs/development/libraries/kddockwidgets/default.nix
+++ b/pkgs/development/libraries/kddockwidgets/default.nix
@@ -8,13 +8,13 @@
 
 mkDerivation rec {
   pname = "KDDockWidgets";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "KDAB";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lgNRuRoJhBw0n/Hb58uxpa+4aXoOrK4bRldtIXYIKLI=";
+    sha256 = "sha256-7jC0zl5ESwqZXzvFJYmPvRhwFitse05NuYoTgFWiHac=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/kde-frameworks/kdeclarative.nix b/pkgs/development/libraries/kde-frameworks/kdeclarative.nix
index cc4e269982121..1389df5eb1528 100644
--- a/pkgs/development/libraries/kde-frameworks/kdeclarative.nix
+++ b/pkgs/development/libraries/kde-frameworks/kdeclarative.nix
@@ -1,6 +1,6 @@
 {
   mkDerivation, extra-cmake-modules,
-  epoxy, kconfig, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio, kpackage,
+  libepoxy, kconfig, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio, kpackage,
   kwidgetsaddons, kwindowsystem, qtdeclarative
 }:
 
@@ -8,7 +8,7 @@ mkDerivation {
   name = "kdeclarative";
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
-    epoxy kglobalaccel kguiaddons ki18n kiconthemes kio kwidgetsaddons
+    libepoxy kglobalaccel kguiaddons ki18n kiconthemes kio kwidgetsaddons
     kwindowsystem
   ];
   propagatedBuildInputs = [ kconfig kpackage qtdeclarative ];
diff --git a/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix b/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix
index b0f1f0eae257f..1d4afb973fbb8 100644
--- a/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix
+++ b/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "khronos-ocl-icd-loader-${version}";
-  version = "2020.06.16";
+  version = "2021.06.30";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "OpenCL-ICD-Loader";
     rev = "v${version}";
-    sha256 = "0v2yi6d3g5qshzy6pjic09c5irwgds106yvr93q62f32psfblnmy";
+    sha256 = "sha256-1bSeGI8IufKtdcyxVHX4DVxkPKfJrUBVzzIGe8rQ/AA=";
   };
 
   patches = lib.optional withTracing ./tracing.patch;
diff --git a/pkgs/development/libraries/kimageannotator/default.nix b/pkgs/development/libraries/kimageannotator/default.nix
index b43883b645d85..508f795edfed4 100644
--- a/pkgs/development/libraries/kimageannotator/default.nix
+++ b/pkgs/development/libraries/kimageannotator/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "kimageannotator";
-  version = "0.5.2";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "ksnip";
     repo = "kImageAnnotator";
     rev = "v${version}";
-    sha256 = "07m3il928gwzzab349grpaksqqv4n7r6mn317sx2jly0x0bpv0rh";
+    sha256 = "sha256-dkZa+OhU3w4dUy/Edd0R2UFNYuIdeYe3H1SOtW5ario=";
   };
 
   nativeBuildInputs = [ cmake qttools ];
diff --git a/pkgs/development/libraries/kronosnet/default.nix b/pkgs/development/libraries/kronosnet/default.nix
index cc282d9abc9c8..fb9c5c57eca16 100644
--- a/pkgs/development/libraries/kronosnet/default.nix
+++ b/pkgs/development/libraries/kronosnet/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kronosnet";
-  version = "1.21";
+  version = "1.23";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "14i4fl3g60gn5ay3dbwjcay3dnmnqr16zcp3g0wv9a3hjwh1if28";
+    sha256 = "sha256-+uQXV5tOLsBPFzfFHqwV1Oz4+KwZMkdjO8zfIljV+ro=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config doxygen ];
diff --git a/pkgs/development/libraries/ldns/default.nix b/pkgs/development/libraries/ldns/default.nix
index 5873e707e7cca..1ccb0e41e7086 100644
--- a/pkgs/development/libraries/ldns/default.nix
+++ b/pkgs/development/libraries/ldns/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ldns";
-  version = "1.7.1";
+  version = "1.8.1";
 
   src = fetchurl {
     url = "https://www.nlnetlabs.nl/downloads/ldns/${pname}-${version}.tar.gz";
-    sha256 = "0ac242n7996fswq1a3nlh1bbbhrsdwsq4mx7xq8ffq6aplb4rj4a";
+    sha256 = "sha256-lYIpq85NOqoZp1wNEnZmVksXIWkCGG6VLKSu9Hxtf6M=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/leptonica/default.nix b/pkgs/development/libraries/leptonica/default.nix
index 723b5a0ec1fff..27d2d5e30de47 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.81.1";
+  version = "1.82.0";
 
   src = fetchurl {
     url = "http://www.leptonica.org/source/${pname}-${version}.tar.gz";
-    sha256 = "sha256-D06zFem93deX9MVf3qTh9F/Kfjs1ii/Gk/2VfOLEPKk=";
+    sha256 = "sha256-FVMC7pFGaMJ7b+PKn/LaY7JF9tYvMGHI8nVjd0uK4tY=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/development/libraries/leveldb/default.nix b/pkgs/development/libraries/leveldb/default.nix
index 2a7fb196ea687..c29a323272782 100644
--- a/pkgs/development/libraries/leveldb/default.nix
+++ b/pkgs/development/libraries/leveldb/default.nix
@@ -1,39 +1,61 @@
-{ lib, stdenv, fetchFromGitHub, fixDarwinDylibNames, snappy }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, fixDarwinDylibNames, snappy, cmake
+, static ? stdenv.hostPlatform.isStatic }:
 
 stdenv.mkDerivation rec {
   pname = "leveldb";
-  version = "1.20";
+  version = "1.23";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "leveldb";
-    rev = "v${version}";
-    sha256 = "01kxga1hv4wp94agx5vl3ybxfw5klqrdsrb6p6ywvnjmjxm8322y";
+    rev = "${version}";
+    sha256 = "sha256-RL+dfSFZZzWvUobSqiPbuC4nDiGzjIIukbVJZRacHbI=";
   };
 
+  patches = [
+    # Re-enable RTTI. Needed for e.g. Ceph to compile properly.
+    # See https://github.com/NixOS/nixpkgs/issues/147801,
+    # https://github.com/google/leveldb/issues/731,
+    # https://lists.ceph.io/hyperkitty/list/dev@ceph.io/thread/K4OSAA4AJS2V7FQI6GNCKCK3IRQDBQRS/.
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/leveldb/raw/e8178670c664e952fdd00f1fc6e3eb28b2c5b6a8/f/0006-revert-no-rtti.patch";
+      sha256 = "sha256-d2YAV8O+1VKu3WwgNsWw6Cxg5sUUR+xOlJtA7pTcigQ=";
+    })
+  ];
+
+  outputs = [ "out" "dev" ];
+
   buildInputs = [ snappy ];
 
-  nativeBuildInputs = lib.optional stdenv.isDarwin fixDarwinDylibNames;
+  nativeBuildInputs = lib.optional stdenv.isDarwin fixDarwinDylibNames ++ [ cmake ];
 
   doCheck = true;
 
   buildFlags = [ "all" ];
 
+  # NOTE: disabling tests due to gtest issue
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}"
+    "-DCMAKE_SKIP_BUILD_RPATH=OFF"
+    "-DLEVELDB_BUILD_TESTS=OFF"
+  ];
+
   postPatch = lib.optionalString stdenv.hostPlatform.isStatic ''
     # remove shared objects from "all" target
     sed -i '/^all:/ s/$(SHARED_LIBS) $(SHARED_PROGRAMS)//' Makefile
   '';
 
-  installPhase = ''
-    runHook preInstall
-
-    install -D -t $out/include/leveldb include/leveldb/*
-    install -D helpers/memenv/memenv.h $out/include/leveldb/helpers
-
-    install -D -t $out/lib out-{static,shared}/lib*
-    install -D -t $out/bin out-static/{leveldbutil,db_bench}
-
-    runHook postInstall
+  postInstall = ''
+    substituteInPlace "$out"/lib/cmake/leveldb/leveldbTargets.cmake \
+      --replace 'INTERFACE_INCLUDE_DIRECTORIES "''${_IMPORT_PREFIX}/include"' 'INTERFACE_INCLUDE_DIRECTORIES "'$dev'"'
+    mkdir -p $dev/lib/pkgconfig
+    cat <<EOF > $dev/lib/pkgconfig/leveldb.pc
+      Name: leveldb
+      Description: Fast and lightweight key/value database library by Google.
+      Version: ${version}
+      Libs: -L$out/lib -lleveldb
+      Cflags: -I$dev/include
+    EOF
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/libAfterImage/default.nix b/pkgs/development/libraries/libAfterImage/default.nix
index de463cdf42cb4..b414d79b0ad2f 100644
--- a/pkgs/development/libraries/libAfterImage/default.nix
+++ b/pkgs/development/libraries/libAfterImage/default.nix
@@ -44,6 +44,16 @@ stdenv.mkDerivation {
       url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libafterimage/files/libafterimage-makefile.in.patch?id=4aa4fca00611b0b3a4007870da43cc5fd63f76c4";
       sha256 = "1n6fniz6dldms615046yhc4mlg9gb53y4yfia8wfz6szgq5zicj4";
     })
+
+    # Fix build failure against binutils-2.36:
+    #  https://sourceforge.net/p/afterstep/bugs/5/
+    (fetchpatch {
+      name = "binutils-2.36.patch";
+      url = "https://sourceforge.net/p/afterstep/bugs/5/attachment/libafterimage-binutils-2.36-support.patch";
+      sha256 = "1cfgm2ffwlsmhvvfmrxlglddaigr99k88d5xqva9pkl3mmzy3jym";
+      # workaround '-p0' patchflags below.
+      stripLen = 1;
+    })
   ];
   patchFlags = [ "-p0" ];
 
diff --git a/pkgs/development/libraries/libabigail/default.nix b/pkgs/development/libraries/libabigail/default.nix
index 49d84c1b5c79e..d18b5e11cf90b 100644
--- a/pkgs/development/libraries/libabigail/default.nix
+++ b/pkgs/development/libraries/libabigail/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libabigail";
-  version = "1.8.2";
+  version = "2.0";
 
   outputs = [ "bin" "out" "dev" ];
 
   src = fetchurl {
     url = "https://mirrors.kernel.org/sourceware/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-hjR8nwqGZvJj/WP4w/5MT5yxvbPsQmDsuvEX0Tfol4c=";
+    sha256 = "sha256-NwSul6Vr8HbKCPtd6msh25mPu/FMT53hKCS3jbU7b9o=";
   };
 
   nativeBuildInputs = [
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "ABI Generic Analysis and Instrumentation Library";
     homepage = "https://sourceware.org/libabigail/";
-    license = licenses.lgpl3Plus;
+    license = with licenses; [ asl20 llvm-exception ];
     maintainers = with maintainers; [ jtojnar ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/development/libraries/libadwaita/default.nix b/pkgs/development/libraries/libadwaita/default.nix
index 5889c6ee3acfc..6324a134ed88b 100644
--- a/pkgs/development/libraries/libadwaita/default.nix
+++ b/pkgs/development/libraries/libadwaita/default.nix
@@ -5,7 +5,7 @@
 , gi-docgen
 , gtk-doc
 , libxml2
-, meson
+, meson_0_60
 , ninja
 , pkg-config
 , sassc
@@ -21,7 +21,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libadwaita";
-  version = "1.0.0.alpha.3";
+  version = "1.0.0.alpha.4";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "devdoc"; # demo app
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     owner = "GNOME";
     repo = "libadwaita";
     rev = version;
-    sha256 = "sha256-4ED2m8hZMWbu5sFbkH0W6q05+cYCCkx+ubeDqg3W3a0=";
+    sha256 = "sha256-3aVeBaKSl6SaPQLodsyJHwnNOlXlWfIaLnbbl3+mlDA=";
   };
 
   nativeBuildInputs = [
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     gi-docgen
     gtk-doc
     libxml2 # for xmllint
-    meson
+    meson_0_60
     ninja
     pkg-config
     sassc
diff --git a/pkgs/development/libraries/libaec/default.nix b/pkgs/development/libraries/libaec/default.nix
index aa146ca241336..58d7150a23464 100644
--- a/pkgs/development/libraries/libaec/default.nix
+++ b/pkgs/development/libraries/libaec/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "libaec";
-  version  = "1.0.5";
+  version  = "1.0.6";
 
   src = fetchFromGitLab {
     domain = "gitlab.dkrz.de";
     owner = "k202009";
     repo = "libaec";
     rev = "v${version}";
-    sha256 = "sha256-Vi0fCd9V/EH+PcD+e6RZK2/isR1xGX25POhm1Xen5ak=";
+    sha256 = "sha256-N0YwJuVqv8jv/uSbpn/eJBTMhlHDcY/74+anH2vNvpI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libargs/default.nix b/pkgs/development/libraries/libargs/default.nix
index f4395d134bc96..dd3f304ef8b88 100644
--- a/pkgs/development/libraries/libargs/default.nix
+++ b/pkgs/development/libraries/libargs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "args";
-  version = "6.2.6";
+  version = "6.2.7";
 
   src = fetchFromGitHub {
     owner = "Taywee";
     repo = pname;
     rev = version;
-    sha256 = "sha256-g5OXuZNi5bkWuSg7SNmhA6vyHUOFU8suYkH8nGx6tvg=";
+    sha256 = "sha256-I297qPXs8Fj7Ibq2PN6y/Eas3DiW5Ecvqot0ePwFNTI=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libavif/default.nix b/pkgs/development/libraries/libavif/default.nix
index 81f07703c942e..03dd9a33628f2 100644
--- a/pkgs/development/libraries/libavif/default.nix
+++ b/pkgs/development/libraries/libavif/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libavif";
-  version = "0.9.2";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
     owner = "AOMediaCodec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-0/5JLynYzr7ZewBbrNoxr26UkVzpSP9RqlmH2ql8tfs=";
+    sha256 = "sha256-ME/mkaHhFeHajTbc7zhg9vtf/8XgkgSRu9I/mlQXnds=";
   };
 
   # reco: encode libaom slowest but best, decode dav1d fastest
diff --git a/pkgs/development/libraries/libb64/default.nix b/pkgs/development/libraries/libb64/default.nix
index 81ba4263a1d6c..987a36cd79fe5 100644
--- a/pkgs/development/libraries/libb64/default.nix
+++ b/pkgs/development/libraries/libb64/default.nix
@@ -19,7 +19,11 @@ stdenv.mkDerivation rec {
       url = "https://github.com/libb64/libb64/commit/4fe47c052e9123da8f751545deb48be08c3411f6.patch";
       sha256 = "18b3np3gpyzimqmk6001riqv5n70wfbclky6zzsrvj5zl1dj4ljf";
     })
-  ];
+  ] ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) (fetchpatch {
+    name = "0001-example-Do-not-run-the-tests.patch";
+    url = "https://cgit.openembedded.org/meta-openembedded/plain/meta-oe/recipes-support/libb64/libb64/0001-example-Do-not-run-the-tests.patch?id=484e0de1e4ee107f21ae2a5c5f976ed987978baf";
+    sha256 = "sha256-KTsiIWJe66BKlu/A43FWfW0XAu4E7lWX/RY4NITRrm4=";
+  });
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/libcacard/default.nix b/pkgs/development/libraries/libcacard/default.nix
index c484a49b1a2bd..1ab5b428f57a7 100644
--- a/pkgs/development/libraries/libcacard/default.nix
+++ b/pkgs/development/libraries/libcacard/default.nix
@@ -2,13 +2,18 @@
 
 stdenv.mkDerivation rec {
   pname = "libcacard";
-  version = "2.7.0";
+  version = "2.8.1";
 
   src = fetchurl {
     url = "https://www.spice-space.org/download/libcacard/${pname}-${version}.tar.xz";
-    sha256 = "0vyvkk4b6xjwq1ccggql13c1x7g4y90clpkqw28257azgn2a1c8n";
+    sha256 = "sha256-+79N6Mt9tb3/XstnL/Db5pOfufNEuQDVG6YpUymjMuc=";
   };
 
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    sed -i '/--version-script/d' Makefile.in
+    sed -i 's/^vflag = .*$/vflag = ""/' meson.build
+  '';
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ glib nss ];
 
@@ -16,7 +21,7 @@ stdenv.mkDerivation rec {
     description = "Smart card emulation library";
     homepage = "https://gitlab.freedesktop.org/spice/libcacard";
     license = licenses.lgpl21;
-    maintainers = with maintainers; [ yegortimoshenko ];
+    maintainers = with maintainers; [ yana ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libcamera/default.nix b/pkgs/development/libraries/libcamera/default.nix
index 506a626e7c869..187e2cf908e21 100644
--- a/pkgs/development/libraries/libcamera/default.nix
+++ b/pkgs/development/libraries/libcamera/default.nix
@@ -31,10 +31,11 @@ stdenv.mkDerivation {
     patchShebangs utils/
   '';
 
+  strictDeps = true;
+
   buildInputs = [
     # IPA and signing
     gnutls
-    openssl
     boost
 
     # gstreamer integration
@@ -46,6 +47,8 @@ stdenv.mkDerivation {
 
     # lttng tracing
     lttng-ust
+
+    gtest
   ];
 
   nativeBuildInputs = [
@@ -57,9 +60,9 @@ stdenv.mkDerivation {
     python3Packages.pyyaml
     python3Packages.ply
     python3Packages.sphinx
-    gtest
     graphviz
     doxygen
+    openssl
   ];
 
   mesonFlags = [ "-Dv4l2=true" "-Dqcam=disabled" ];
diff --git a/pkgs/development/libraries/libcanberra/default.nix b/pkgs/development/libraries/libcanberra/default.nix
index e5525a2bd827f..91b720303199c 100644
--- a/pkgs/development/libraries/libcanberra/default.nix
+++ b/pkgs/development/libraries/libcanberra/default.nix
@@ -65,8 +65,5 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl2Plus;
     maintainers = [ ];
     platforms = platforms.unix;
-    # canberra-gtk-module.c:28:10: fatal error: 'gdk/gdkx.h' file not found
-    # #include <gdk/gdkx.h>
-    broken = stdenv.isDarwin && (gtkSupport == "gtk3");
   };
 }
diff --git a/pkgs/development/libraries/libcdio/default.nix b/pkgs/development/libraries/libcdio/default.nix
index cfe796b14d062..71a953b83904f 100644
--- a/pkgs/development/libraries/libcdio/default.nix
+++ b/pkgs/development/libraries/libcdio/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, libcddb, pkg-config, ncurses, help2man, libiconv, Carbon, IOKit }:
+{ lib, stdenv, fetchurl, fetchpatch, libcddb, pkg-config, ncurses, help2man, libiconv, Carbon, IOKit }:
 
 stdenv.mkDerivation rec {
   name = "libcdio-2.1.0";
@@ -8,6 +8,16 @@ stdenv.mkDerivation rec {
     sha256 = "0avi6apv5ydjy6b9c3z9a46rvp5i57qyr09vr7x4nndxkmcfjl45";
   };
 
+  patches = [
+    # pull pending upstream patch to fix build on ncurses-6.3:
+    #  https://savannah.gnu.org/patch/index.php?10130
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://savannah.gnu.org/patch/download.php?file_id=52179";
+      sha256 = "1v15gxhpi4bgcr12pb3d9c3hiwj0drvc832vic7sham34lhjmcbb";
+    })
+  ];
+
   postPatch = ''
     patchShebangs .
   '';
diff --git a/pkgs/development/libraries/libcint/default.nix b/pkgs/development/libraries/libcint/default.nix
index a6f2e05d73614..1ff5eb338a9ef 100644
--- a/pkgs/development/libraries/libcint/default.nix
+++ b/pkgs/development/libraries/libcint/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libcint";
-  version = "4.4.0";
+  version = "4.4.6";
 
   src = fetchFromGitHub {
     owner = "sunqm";
     repo = "libcint";
     rev = "v${version}";
-    hash = "sha256-nsIyosn8dBf217UmjXSKLTM2RhIQHCSvPlrvlqo5KLc=";
+    sha256 = "sha256-eWUuORMZs6Bl/zFGYZkpgNAgJPIei+k0cQoWl+v+zxo=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -24,6 +24,9 @@ stdenv.mkDerivation rec {
     "-DENABLE_TEST=1"
     "-DQUICK_TEST=1"
     "-DCMAKE_INSTALL_PREFIX=" # ends up double-adding /nix/store/... prefix, this avoids issue
+    "-DWITH_RANGE_COULOMB:STRING=1"
+    "-DWITH_FORTRAN:STRING=1"
+    "-DMIN_EXPCUTOFF:STRING=20"
   ];
 
   strictDeps = true;
diff --git a/pkgs/development/libraries/libcyaml/default.nix b/pkgs/development/libraries/libcyaml/default.nix
index 26ac159646f14..4b8d85b5b55b3 100644
--- a/pkgs/development/libraries/libcyaml/default.nix
+++ b/pkgs/development/libraries/libcyaml/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libcyaml";
-  version = "1.2.1";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "tlsa";
     repo = "libcyaml";
     rev = "v${version}";
-    sha256 = "sha256-u5yLrAXaavALNArj6yw+v5Yn4eqXWTHmUxHe+pVCbXM=";
+    sha256 = "sha256-8Dd6LQovPx+y2957zY8blA0ls10ekGvTCeKmLyHZnOI=";
   };
 
   buildInputs = [ libyaml ];
@@ -20,7 +20,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/tlsa/libcyaml";
     description = "C library for reading and writing YAML";
+    changelog = "https://github.com/tlsa/libcyaml/raw/v${version}/CHANGES.md";
     license = licenses.isc;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libdeflate/default.nix b/pkgs/development/libraries/libdeflate/default.nix
index 3fb89091aa0d0..449a3d309cd17 100644
--- a/pkgs/development/libraries/libdeflate/default.nix
+++ b/pkgs/development/libraries/libdeflate/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, fixDarwinDylibNames }:
+{ stdenv, lib, fetchpatch, fetchFromGitHub, fixDarwinDylibNames, pkgsStatic }:
 
 stdenv.mkDerivation rec {
   pname = "libdeflate";
@@ -11,10 +11,19 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-P7YbuhP2/zJCpE9dxZev1yy5oda8WKAHY84ZLTL8gVs=";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/ebiggers/libdeflate/commit/ee4d18872bfe09a32cfd031c716b9069a04a50a0.diff";
+      sha256 = "0d2lllg60zbbbch0w0qrcqijrgski8xlsy5llg3i684d66ci538a";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace Makefile --replace /usr/local $out
   '';
 
+  makeFlags = lib.optional stdenv.hostPlatform.isStatic [ "DISABLE_SHARED=1"];
+
   nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
 
   configurePhase = ''
@@ -23,11 +32,12 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.tests.static = pkgsStatic.libdeflate;
   meta = with lib; {
     description = "Fast DEFLATE/zlib/gzip compressor and decompressor";
     license = licenses.mit;
     homepage = "https://github.com/ebiggers/libdeflate";
     platforms = platforms.unix;
-    maintainers = with maintainers; [ orivej ];
+    maintainers = with maintainers; [ orivej kaction ];
   };
 }
diff --git a/pkgs/development/libraries/libdeltachat/default.nix b/pkgs/development/libraries/libdeltachat/default.nix
index 8f6beb01ea39b..5db8e7524b59c 100644
--- a/pkgs/development/libraries/libdeltachat/default.nix
+++ b/pkgs/development/libraries/libdeltachat/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libdeltachat";
-  version = "1.65.0";
+  version = "1.70.0";
 
   src = fetchFromGitHub {
     owner = "deltachat";
     repo = "deltachat-core-rust";
     rev = version;
-    sha256 = "1k906pll4k8bc2xc9qd9g7q10rikbij2sy0w2wg9mf335rfym6z4";
+    hash = "sha256-702XhFWvFG+g++3X97sy6C5DMNWogv1Xbr8QPR8QyLo=";
   };
 
   patches = [
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    sha256 = "0jc9kyn5h3cn2ni5h3km47sfprpxr7hc96ca01yal2zyksm7zqxn";
+    hash = "sha256-MiSGJMXe8vouv4XEHXq274FHEvBMtd7IX6DyNJIWYeU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libdevil/default.nix b/pkgs/development/libraries/libdevil/default.nix
index fa48c773dfc99..a79e5371c01b4 100644
--- a/pkgs/development/libraries/libdevil/default.nix
+++ b/pkgs/development/libraries/libdevil/default.nix
@@ -54,6 +54,6 @@ stdenv.mkDerivation rec {
     description = "An image library which can can load, save, convert, manipulate, filter and display a wide variety of image formats";
     license = licenses.lgpl2;
     platforms = platforms.mesaPlatforms;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/libraries/libdrm/default.nix b/pkgs/development/libraries/libdrm/default.nix
index c5bf352ff5789..731039e26a08b 100644
--- a/pkgs/development/libraries/libdrm/default.nix
+++ b/pkgs/development/libraries/libdrm/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libdrm";
-  version = "2.4.107";
+  version = "2.4.109";
 
   src = fetchurl {
     url = "https://dri.freedesktop.org/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "127qf1rzhaf13vdd75a58v5q34617hvangjlfnlkcdh37gqcwm65";
+    sha256 = "09kzrdsd14zr0i3izvi5mck4vqccl3c9hr84r9i4is0zikh554v2";
   };
 
   outputs = [ "out" "dev" "bin" ];
diff --git a/pkgs/development/libraries/libe-book/default.nix b/pkgs/development/libraries/libe-book/default.nix
index f467a01ea7ab5..b3a1cab066e4a 100644
--- a/pkgs/development/libraries/libe-book/default.nix
+++ b/pkgs/development/libraries/libe-book/default.nix
@@ -1,41 +1,45 @@
-{ lib, stdenv, fetchurl, gperf, pkg-config, librevenge, libxml2, boost, icu
-, cppunit, zlib, liblangtag
+{ lib
+, stdenv
+, fetchurl
+, gperf
+, pkg-config
+, librevenge
+, libxml2
+, boost
+, icu
+, cppunit
+, zlib
+, liblangtag
 }:
 
-let
-  s = # Generated upstream information
-  rec {
-    baseName="libe-book";
-    version="0.1.3";
-    name="${baseName}-${version}";
-    hash="1yg1vws1wggzhjw672bpgh2x541g5i9wryf67g51m0r79zrqz3by";
-    url="https://kent.dl.sourceforge.net/project/libebook/libe-book-0.1.3/libe-book-0.1.3.tar.xz";
-    sha256="1yg1vws1wggzhjw672bpgh2x541g5i9wryf67g51m0r79zrqz3by";
+stdenv.mkDerivation rec {
+  pname = "libe-book";
+  version = "0.1.3";
+  src = fetchurl {
+    url = "https://kent.dl.sourceforge.net/project/libebook/libe-book-${version}/libe-book-${version}.tar.xz";
+    sha256 = "sha256-fo2P808ngxrKO8b5zFMsL5DSBXx3iWO4hP89HjTf4fk=";
   };
-
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    gperf librevenge libxml2 boost icu cppunit zlib liblangtag
+    gperf
+    librevenge
+    libxml2
+    boost
+    icu
+    cppunit
+    zlib
+    liblangtag
   ];
-
   # Boost 1.59 compatability fix
   # Attempt removing when updating
   postPatch = ''
     sed -i 's,^CPPFLAGS.*,\0 -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED,' src/lib/Makefile.in
   '';
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit nativeBuildInputs buildInputs postPatch;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
   NIX_CFLAGS_COMPILE = "-Wno-error=unused-function";
-  meta = {
-    inherit (s) version;
+  meta = with lib; {
     description = "Library for import of reflowable e-book formats";
-    license = lib.licenses.lgpl21Plus ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.unix;
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libe-book/default.upstream b/pkgs/development/libraries/libe-book/default.upstream
deleted file mode 100644
index a06a9af99bb44..0000000000000
--- a/pkgs/development/libraries/libe-book/default.upstream
+++ /dev/null
@@ -1,4 +0,0 @@
-url https://sourceforge.net/projects/libebook/files/
-SF_version_dir libe-book-
-version_link '[.]tar.xz/download$'
-SF_redirect
diff --git a/pkgs/development/libraries/libepoxy/default.nix b/pkgs/development/libraries/libepoxy/default.nix
new file mode 100644
index 0000000000000..4141de4fc00da
--- /dev/null
+++ b/pkgs/development/libraries/libepoxy/default.nix
@@ -0,0 +1,74 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, utilmacros
+, python3
+, libGL
+, libX11
+, Carbon
+, OpenGL
+}:
+
+let
+  inherit (lib) getLib optional optionalString;
+
+in
+stdenv.mkDerivation (rec {
+  pname = "libepoxy";
+  version = "1.5.9";
+
+  src = fetchFromGitHub {
+    owner = "anholt";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-8rdmC8FZUkKkEvWPJIdfrBQHiwa81vl5tmVqRdU4UIY=";
+  };
+
+  patches = [ ./libgl-path.patch ];
+
+  postPatch = ''
+    patchShebangs src/*.py
+  ''
+  + optionalString stdenv.isDarwin ''
+    substituteInPlace src/dispatch_common.h --replace "PLATFORM_HAS_GLX 0" "PLATFORM_HAS_GLX 1"
+  '';
+
+  outputs = [ "out" "dev" ];
+
+  nativeBuildInputs = [ meson ninja pkg-config utilmacros python3 ];
+
+  buildInputs = [
+    libGL
+    libX11
+  ] ++ lib.optionals stdenv.isDarwin [
+    Carbon
+    OpenGL
+  ];
+
+  mesonFlags = [
+    "-Dtests=${if doCheck then "true" else "false"}"
+  ]
+  ++ optional stdenv.isDarwin "-Dglx=yes";
+
+  NIX_CFLAGS_COMPILE = ''-DLIBGL_PATH="${getLib libGL}/lib"'';
+
+  # tests are running from version 1.5.9
+  doCheck = true;
+
+  meta = with lib; {
+    description = "A library for handling OpenGL function pointer management";
+    homepage = "https://github.com/anholt/libepoxy";
+    license = licenses.mit;
+    maintainers = with maintainers; [ goibhniu erictapen ];
+    platforms = platforms.unix;
+  };
+} // lib.optionalAttrs stdenv.isDarwin {
+  # cgl_epoxy_api fails in darwin sandbox and on Hydra (because it's headless?)
+  preCheck = ''
+    substituteInPlace ../test/meson.build \
+      --replace "[ 'cgl_epoxy_api', [ 'cgl_epoxy_api.c' ] ]," ""
+  '';
+})
diff --git a/pkgs/development/libraries/epoxy/libgl-path.patch b/pkgs/development/libraries/libepoxy/libgl-path.patch
index 8f38ee27174b6..8f38ee27174b6 100644
--- a/pkgs/development/libraries/epoxy/libgl-path.patch
+++ b/pkgs/development/libraries/libepoxy/libgl-path.patch
diff --git a/pkgs/development/libraries/libexif/default.nix b/pkgs/development/libraries/libexif/default.nix
index 1c650ad60de0d..0ab1f8fa984ab 100644
--- a/pkgs/development/libraries/libexif/default.nix
+++ b/pkgs/development/libraries/libexif/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libexif";
-  version = "0.6.23";
+  version = "0.6.24";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "${pname}-${builtins.replaceStrings ["."] ["_"] version}-release";
-    sha256 = "sha256-Os0yI/IPoe9MuhXgNdDaIg6uohclA2bjeu9t3tbUoNA=";
+    sha256 = "sha256-Eqgnm31s8iPJdhTpk5HM89HSZTXTK+e7YZ/CCdbeJX4=";
   };
 
   nativeBuildInputs = [ autoreconfHook gettext ];
diff --git a/pkgs/development/libraries/libexttextcat/default.nix b/pkgs/development/libraries/libexttextcat/default.nix
index 8efdb1bee02df..c315379d92c73 100644
--- a/pkgs/development/libraries/libexttextcat/default.nix
+++ b/pkgs/development/libraries/libexttextcat/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libexttextcat";
-  version = "3.4.5";
+  version = "3.4.6";
 
   src = fetchurl {
     url = "https://dev-www.libreoffice.org/src/libexttextcat/${pname}-${version}.tar.xz";
-    sha256 = "1j6sjwkyhqvsgyw938bxxfwkzzi1mahk66g5342lv6j89jfvrz8k";
+    sha256 = "sha256-bXfqziDp6hBsEzDiaO3nDJpKiXRN3CVxVoJ1TsozaN8=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/libfabric/default.nix b/pkgs/development/libraries/libfabric/default.nix
index 4142c3763b52c..c1c6ef7032ae7 100644
--- a/pkgs/development/libraries/libfabric/default.nix
+++ b/pkgs/development/libraries/libfabric/default.nix
@@ -3,7 +3,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libfabric";
-  version = "1.13.1";
+  version = "1.13.2";
 
   enableParallelBuilding = true;
 
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     owner = "ofiwg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0USQMBXZrbz4GtXLNsSti9ohUOqqo0OCtVz+0Uk9ndI=";
+    sha256 = "sha256-ydMZP83keUGDYDw9i/SCa4U1KEgfuqkFklwRKbfLoK8=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/pkgs/development/libraries/libff/default.nix b/pkgs/development/libraries/libff/default.nix
index 72d2406aa82bb..35b7a33cc38f8 100644
--- a/pkgs/development/libraries/libff/default.nix
+++ b/pkgs/development/libraries/libff/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libff";
-  version = "1.0.0";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "scipr-lab";
@@ -12,7 +12,8 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
-  cmakeFlags = [ "-DWITH_PROCPS=Off" ];
+  cmakeFlags = [ "-DWITH_PROCPS=Off" ]
+    ++ lib.optional stdenv.isAarch64 [ "-DCURVE=ALT_BN128" "-DUSE_ASM=OFF" ];
 
   # CMake is hardcoded to always build static library which causes linker
   # failure for Haskell applications depending on haskellPackages.hevm on macOS.
diff --git a/pkgs/development/libraries/libfilezilla/default.nix b/pkgs/development/libraries/libfilezilla/default.nix
index 2e0b77d812fbe..95e00cdd73293 100644
--- a/pkgs/development/libraries/libfilezilla/default.nix
+++ b/pkgs/development/libraries/libfilezilla/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libfilezilla";
-  version = "0.31.1";
+  version = "0.35.0";
 
   src = fetchurl {
     url = "https://download.filezilla-project.org/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-mX1Yh7YBXzhp03Wwy8S0lC/LJNvktDRohclGz+czFm8=";
+    sha256 = "sha256-7uJRDc49BpHqc9wdoQ+sfbEhWwup7vphbfMFNosJKug=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/development/libraries/libfyaml/default.nix b/pkgs/development/libraries/libfyaml/default.nix
index dc599a48f3804..e1e30657a3529 100644
--- a/pkgs/development/libraries/libfyaml/default.nix
+++ b/pkgs/development/libraries/libfyaml/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libfyaml";
-  version = "0.7.2";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
     owner = "pantoniou";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0wq7ah9a83w0c5qppdpwqqjffwi85q7slz4im0kmkhxdp23v9m1i";
+    sha256 = "sha256-RxaeDtsdPtcTYJ7qMVmBCm1TsMI7YsXCz2w/Bq2RmaA=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/development/libraries/libgbinder/default.nix b/pkgs/development/libraries/libgbinder/default.nix
index 374a316abba7f..38b0c6c8def0f 100644
--- a/pkgs/development/libraries/libgbinder/default.nix
+++ b/pkgs/development/libraries/libgbinder/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libgbinder";
-  version = "1.1.12";
+  version = "1.1.14";
 
   src = fetchFromGitHub {
     owner = "mer-hybris";
     repo = pname;
     rev = version;
-    sha256 = "03p5ala9lnfcizh7832ax5phdvfzrdxw6acw8zib8wj0s133wyhb";
+    sha256 = "sha256-WYVFbp5aEqdxZQYSJ96Mi7ruLu4TkDbw/NCV8roPN28=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/libgit2-glib/default.nix b/pkgs/development/libraries/libgit2-glib/default.nix
index 56259814d8a51..2cd1be1fff2b5 100644
--- a/pkgs/development/libraries/libgit2-glib/default.nix
+++ b/pkgs/development/libraries/libgit2-glib/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libgit2-glib";
-  version = "0.99.0.1";
+  version = "1.0.0.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1pmrcnsa7qdda73c3dxf47733mwprmj5ljpw3acxbj6r8k27anp0";
+    sha256 = "RgpdaTaVDKCNLYUYv8kMErsYfPbmdN5xX3BV/FgQK1c=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/libgpg-error/default.nix b/pkgs/development/libraries/libgpg-error/default.nix
index 72d28761323d7..ec2b614ee9caf 100644
--- a/pkgs/development/libraries/libgpg-error/default.nix
+++ b/pkgs/development/libraries/libgpg-error/default.nix
@@ -38,8 +38,8 @@ in stdenv.mkDerivation (rec {
   '' + lib.optionalString (stdenv.hostPlatform.isi686 && stdenv.hostPlatform.isMusl) ''
     ln -s lock-obj-pub.i686-unknown-linux-gnu.h src/syscfg/lock-obj-pub.linux-musl.h
   '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.hostPlatform.isMusl) ''
-    ln -s src/syscfg/lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.arm-unknown-linux-musleabihf.h
-    ln -s src/syscfg/lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-musleabihf.h
+    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.arm-unknown-linux-musleabihf.h
+    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-musleabihf.h
   '';
 
   outputs = [ "out" "dev" "info" ];
diff --git a/pkgs/development/libraries/libgphoto2/default.nix b/pkgs/development/libraries/libgphoto2/default.nix
index 666135f91bb98..63015fdf6cb36 100644
--- a/pkgs/development/libraries/libgphoto2/default.nix
+++ b/pkgs/development/libraries/libgphoto2/default.nix
@@ -1,10 +1,18 @@
-{ lib, stdenv, fetchFromGitHub, buildPackages
-, autoreconfHook, pkg-config, gettext
+{ lib
+, stdenv
+, fetchFromGitHub
+, buildPackages
+, autoreconfHook
+, pkg-config
+, gettext
 , libusb1
 , libtool
 , libexif
 , libgphoto2
 , libjpeg
+, curl
+, libxml2
+, gd
 }:
 
 stdenv.mkDerivation rec {
@@ -24,12 +32,16 @@ stdenv.mkDerivation rec {
     autoreconfHook
     gettext
     libtool
+    pkg-config
   ];
 
   buildInputs = [
     libjpeg
     libtool # for libltdl
     libusb1
+    curl
+    libxml2
+    gd
   ];
 
   # These are mentioned in the Requires line of libgphoto's pkg-config file.
@@ -37,17 +49,20 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
-  postInstall = let
-    executablePrefix = if stdenv.buildPlatform == stdenv.hostPlatform then
-      "$out"
-    else
-      buildPackages.libgphoto2;
-  in ''
-    mkdir -p $out/lib/udev/rules.d
-    ${executablePrefix}/lib/libgphoto2/print-camera-list \
-        udev-rules version 175 group camera \
-        >$out/lib/udev/rules.d/40-gphoto2.rules
-  '';
+  postInstall =
+    let
+      executablePrefix =
+        if stdenv.buildPlatform == stdenv.hostPlatform then
+          "$out"
+        else
+          buildPackages.libgphoto2;
+    in
+    ''
+      mkdir -p $out/lib/udev/rules.d
+      ${executablePrefix}/lib/libgphoto2/print-camera-list \
+          udev-rules version 175 group camera \
+          >$out/lib/udev/rules.d/40-gphoto2.rules
+    '';
 
   meta = {
     homepage = "http://www.gphoto.org/proj/libgphoto2/";
diff --git a/pkgs/development/libraries/libgudev/default.nix b/pkgs/development/libraries/libgudev/default.nix
index 87061ae6559a9..6a63947c8a57f 100644
--- a/pkgs/development/libraries/libgudev/default.nix
+++ b/pkgs/development/libraries/libgudev/default.nix
@@ -5,9 +5,10 @@
 , ninja
 , udev
 , glib
-, gobject-introspection
 , gnome
 , vala
+, withIntrospection ? (stdenv.buildPlatform == stdenv.hostPlatform)
+, gobject-introspection
 }:
 
 stdenv.mkDerivation rec {
@@ -21,12 +22,18 @@ stdenv.mkDerivation rec {
     sha256 = "1al6nr492nzbm8ql02xhzwci2kwb1advnkaky3j9636jf08v41hd";
   };
 
+  strictDeps = true;
+
+  depsBuildBuild = [ pkg-config ];
+
   nativeBuildInputs = [
     pkg-config
-    gobject-introspection
     meson
     ninja
     vala
+    glib # for glib-mkenums needed during the build
+  ] ++ lib.optionals withIntrospection [
+    gobject-introspection
   ];
 
   buildInputs = [
@@ -37,8 +44,8 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     # There's a dependency cycle with umockdev and the tests fail to LD_PRELOAD anyway
     "-Dtests=disabled"
+    "-Dintrospection=${if withIntrospection then "enabled" else "disabled"}"
   ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
-    "-Dintrospection=disabled"
     "-Dvapi=disabled"
   ];
 
diff --git a/pkgs/development/libraries/libhandy/default.nix b/pkgs/development/libraries/libhandy/default.nix
index bb4b03515eda7..0744ae30f3444 100644
--- a/pkgs/development/libraries/libhandy/default.nix
+++ b/pkgs/development/libraries/libhandy/default.nix
@@ -9,10 +9,11 @@
 , gtk-doc
 , docbook-xsl-nons
 , docbook_xml_dtd_43
+, glib
+, gsettings-desktop-schemas
 , gtk3
 , enableGlade ? false
 , glade
-, dbus
 , xvfb-run
 , libxml2
 , gdk-pixbuf
@@ -27,7 +28,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libhandy";
-  version = "1.4.0";
+  version = "1.5.0";
 
   outputs = [
     "out"
@@ -40,7 +41,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-JnbVH6H6QP3udJfT52P++hiwM4v/zS7jLn9+YzyIVEY=";
+    sha256 = "sha256-RmueAmwfnrO2WWb1MNl3A6ghLar5EXSMFF6cuEPb1v4=";
   };
 
   nativeBuildInputs = [
@@ -64,7 +65,6 @@ stdenv.mkDerivation rec {
   ];
 
   checkInputs = [
-    dbus
     xvfb-run
     at-spi2-atk
     at-spi2-core
@@ -84,12 +84,26 @@ stdenv.mkDerivation rec {
   doCheck = !stdenv.isDarwin;
 
   checkPhase = ''
-    NO_AT_BRIDGE=1 \
-    XDG_DATA_DIRS="$XDG_DATA_DIRS:${hicolor-icon-theme}/share" \
-    GDK_PIXBUF_MODULE_FILE="${librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" \
-    xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
-      --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+    runHook preCheck
+
+    testEnvironment=(
+      # Disable portal since we cannot run it in tests.
+      HDY_DISABLE_PORTAL=1
+
+      "XDG_DATA_DIRS=${lib.concatStringsSep ":" [
+        # HdySettings needs to be initialized from “org.gnome.desktop.interface” GSettings schema when portal is not used for color scheme.
+        # It will not actually be used since the “color-scheme” key will only have been introduced in GNOME 42, falling back to detecting theme name.
+        # See hdy_settings_constructed function in https://gitlab.gnome.org/GNOME/libhandy/-/commit/bb68249b005c445947bfb2bee66c91d0fe9c41a4
+        "${glib.getSchemaPath gsettings-desktop-schemas}/../.."
+
+        # Some tests require icons
+        "${hicolor-icon-theme}/share"
+      ]}"
+    )
+    env "''${testEnvironment[@]}" xvfb-run \
       meson test --print-errorlogs
+
+    runHook postCheck
   '';
 
   passthru = {
diff --git a/pkgs/development/libraries/libime/default.nix b/pkgs/development/libraries/libime/default.nix
index 4f0caa7cc33ce..b8efaf8017d2c 100644
--- a/pkgs/development/libraries/libime/default.nix
+++ b/pkgs/development/libraries/libime/default.nix
@@ -18,21 +18,21 @@ let
     url = "https://download.fcitx-im.org/data/lm_sc.3gm.arpa-${arpaVer}.tar.bz2";
     sha256 = "0bqy3l7mif0yygjrcm65qallszgn17mvgyxhvz7a54zaamyan6vm";
   };
-  dictVer = "20210402";
+  dictVer = "20211021";
   dict = fetchurl {
     url = "https://download.fcitx-im.org/data/dict.utf8-${dictVer}.tar.xz";
-    sha256 = "sha256-gYz7tama5bQMJwe2FYc09KEBlkRIU0AMvWsUUFWS2A0=";
+    sha256 = "sha256-MAWX5vf3n3iEgP1mXeige/6QInBItafjn0D0OmKpgd8=";
   };
 in
 stdenv.mkDerivation rec {
   pname = "libime";
-  version = "1.0.7";
+  version = "1.0.10";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "libime";
     rev = version;
-    sha256 = "sha256-q/SXS6pT4vBkCkCTarPVHrZPXijYnc2t51YGRvzQ0FY=";
+    sha256 = "sha256-dHlya2vC3ugslP0K2oIHadcZQTmzt+tzNMkLy8V5M1Q=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/libraries/libinfinity/default.nix b/pkgs/development/libraries/libinfinity/default.nix
index e68d27cacff54..4b379660a84e6 100644
--- a/pkgs/development/libraries/libinfinity/default.nix
+++ b/pkgs/development/libraries/libinfinity/default.nix
@@ -46,7 +46,7 @@ let
       homepage = "https://gobby.github.io/";
       description = "An implementation of the Infinote protocol written in GObject-based C";
       license = lib.licenses.lgpl2Plus;
-      maintainers = [ lib.maintainers.phreedom ];
+      maintainers = [ ];
       platforms = with lib.platforms; linux ++ darwin;
     };
   };
diff --git a/pkgs/development/libraries/libinotify-kqueue/default.nix b/pkgs/development/libraries/libinotify-kqueue/default.nix
index ff74060d3d464..1f147b0ad5c57 100644
--- a/pkgs/development/libraries/libinotify-kqueue/default.nix
+++ b/pkgs/development/libraries/libinotify-kqueue/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     description = "Inotify shim for macOS and BSD";
     homepage = "https://github.com/libinotify-kqueue/libinotify-kqueue";
     license = licenses.mit;
-    maintainers = with maintainers; [ yegortimoshenko ];
+    maintainers = with maintainers; [ yana ];
     platforms = with platforms; darwin ++ freebsd ++ netbsd ++ openbsd;
   };
 }
diff --git a/pkgs/development/libraries/libiodbc/default.nix b/pkgs/development/libraries/libiodbc/default.nix
index a15b00a66ef74..eb34bc56f4437 100644
--- a/pkgs/development/libraries/libiodbc/default.nix
+++ b/pkgs/development/libraries/libiodbc/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libiodbc";
-  version = "3.52.12";
+  version = "3.52.15";
 
   src = fetchurl {
     url = "mirror://sourceforge/iodbc/${pname}-${version}.tar.gz";
-    sha256 = "0qpvklgr1lcn5g8xbz7fbc9rldqf9r8s6xybhqj20m4sglxgziai";
+    sha256 = "sha256-x0VB4zJ/yaHHzPEDZFRxxnvAFFQtcPVyR26wfAst1Dw=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/libraries/liblastfm/default.nix b/pkgs/development/libraries/liblastfm/default.nix
index 5183c47bc061a..6b28175a9b62b 100644
--- a/pkgs/development/libraries/liblastfm/default.nix
+++ b/pkgs/development/libraries/liblastfm/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     repositories.git = "git://github.com/lastfm/liblastfm.git";
     description = "Official LastFM library";
     platforms = platforms.unix;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     license = licenses.gpl3;
   };
 }
diff --git a/pkgs/development/libraries/liblcf/default.nix b/pkgs/development/libraries/liblcf/default.nix
index 1e6f57368b788..50c41982450f9 100644
--- a/pkgs/development/libraries/liblcf/default.nix
+++ b/pkgs/development/libraries/liblcf/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     description = "Library to handle RPG Maker 2000/2003 and EasyRPG projects";
     homepage = "https://github.com/EasyRPG/liblcf";
     license = licenses.mit;
-    maintainers = with maintainers; [ yegortimoshenko ];
+    maintainers = with maintainers; [ yana ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/liblouis/default.nix b/pkgs/development/libraries/liblouis/default.nix
index dba0b39566167..f61fb775fbda2 100644
--- a/pkgs/development/libraries/liblouis/default.nix
+++ b/pkgs/development/libraries/liblouis/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "liblouis";
-  version = "3.19.0";
+  version = "3.20.0";
 
   src = fetchFromGitHub {
     owner = "liblouis";
     repo = "liblouis";
     rev = "v${version}";
-    sha256 = "sha256-vuD+afTOzldhfCRG5ghnWulNhip7BaTE7GfPhxXSMFw=";
+    sha256 = "sha256-DuMVs9cC0VnZg3E9GtZB8LYkp3Ybfzlv8vd4d1Muwyc=";
   };
 
   outputs = [ "out" "dev" "man" "info" "doc" ];
diff --git a/pkgs/development/libraries/liblscp/default.nix b/pkgs/development/libraries/liblscp/default.nix
index 813aa660ae9d5..993c090299bd1 100644
--- a/pkgs/development/libraries/liblscp/default.nix
+++ b/pkgs/development/libraries/liblscp/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "liblscp";
-  version = "0.9.2";
+  version = "0.9.4";
 
   src = fetchurl {
     url = "https://download.linuxsampler.org/packages/${pname}-${version}.tar.gz";
-    sha256 = "sha256-GTW6SBQVCDtzeU+arLmAJi6N9jtN68NdI69p6RSazvs=";
+    sha256 = "sha256-8+3qHgIv32wfNHHggXID1W8M7pTqji4bHNGob3DTkho=";
   };
 
   nativeBuildInputs = [ autoconf automake libtool pkg-config ];
diff --git a/pkgs/development/libraries/libmwaw/default.nix b/pkgs/development/libraries/libmwaw/default.nix
index ed479ad53e12d..8f83c2055c62c 100644
--- a/pkgs/development/libraries/libmwaw/default.nix
+++ b/pkgs/development/libraries/libmwaw/default.nix
@@ -1,32 +1,29 @@
-{lib, stdenv, fetchurl, boost, pkg-config, cppunit, zlib, libwpg, libwpd, librevenge}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="libmwaw";
-    version="0.3.20";
-    name="${baseName}-${version}";
-    hash="sha256-FMOLBiFPJ3zNFFDiLm4yZIlVAY12lYlrxWAWV0jIzSE=";
-    url="mirror://sourceforge/libmwaw/libmwaw/libmwaw-0.3.20/libmwaw-0.3.20.tar.xz";
-    sha256="sha256-FMOLBiFPJ3zNFFDiLm4yZIlVAY12lYlrxWAWV0jIzSE=";
+{ lib, stdenv, fetchurl, boost, pkg-config, cppunit, zlib, libwpg, libwpd, librevenge }:
+
+stdenv.mkDerivation rec {
+  pname = "libmwaw";
+  version = "0.3.21";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/libmwaw/libmwaw/libmwaw-${version}/libmwaw-${version}.tar.xz";
+    sha256 = "sha256-6HUBI6eNYblDzveLdzbIp/ILsKZJqhEkAhJPunlPwhw=";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    boost cppunit zlib libwpg libwpd librevenge
+    boost
+    cppunit
+    zlib
+    libwpg
+    libwpd
+    librevenge
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit nativeBuildInputs buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
   enableParallelBuilding = true;
-  meta = {
-    inherit (s) version;
+
+  meta = with lib; {
     description = "Import library for some old mac text documents";
-    license = lib.licenses.mpl20 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.unix;
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libmwaw/default.upstream b/pkgs/development/libraries/libmwaw/default.upstream
deleted file mode 100644
index bcfb53770e1ef..0000000000000
--- a/pkgs/development/libraries/libmwaw/default.upstream
+++ /dev/null
@@ -1,4 +0,0 @@
-url https://sourceforge.net/projects/libmwaw/files/libmwaw/
-SF_version_dir libmwaw-
-version_link '[.]tar.xz/download$'
-SF_redirect
diff --git a/pkgs/development/libraries/libnest2d/default.nix b/pkgs/development/libraries/libnest2d/default.nix
index 1e666758f816b..4117b38e1d9b9 100644
--- a/pkgs/development/libraries/libnest2d/default.nix
+++ b/pkgs/development/libraries/libnest2d/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, cmake, clipper, nlopt, boost, python3 }:
 
 stdenv.mkDerivation rec {
-  version = "2020-10-09-unstable";
+  version = "4.12.0";
   pname = "libnest2d";
 
   # This revision is waiting to be merged upstream
diff --git a/pkgs/development/libraries/libnetfilter_log/default.nix b/pkgs/development/libraries/libnetfilter_log/default.nix
index 4ac20cf29cb4a..aadc3d92b597f 100644
--- a/pkgs/development/libraries/libnetfilter_log/default.nix
+++ b/pkgs/development/libraries/libnetfilter_log/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libnetfilter_log";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchurl {
     url = "https://netfilter.org/projects/libnetfilter_log/files/${pname}-${version}.tar.bz2";
-    sha256 = "089vjcfxl5qjqpswrbgklf4wflh44irmw6sk2k0kmfixfmszxq3l";
+    sha256 = "1spy9xs41v76kid5ana8n126f3mvgq6fjibbfbj4kn0larbhix73";
   };
 
   buildInputs = [ libmnl ];
diff --git a/pkgs/development/libraries/libnftnl/default.nix b/pkgs/development/libraries/libnftnl/default.nix
index 276ee52ed54d9..2c351181ee22b 100644
--- a/pkgs/development/libraries/libnftnl/default.nix
+++ b/pkgs/development/libraries/libnftnl/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, pkg-config, libmnl }:
 
 stdenv.mkDerivation rec {
-  version = "1.2.0";
+  version = "1.2.1";
   pname = "libnftnl";
 
   src = fetchurl {
     url = "https://netfilter.org/projects/${pname}/files/${pname}-${version}.tar.bz2";
-    sha256 = "1xblq1cbcxhr6qmjpy98i1qdza148idgz99vbhjc7s4vzvfizc4h";
+    sha256 = "0z4khm2mnys9mcl8ckwf19cw20jgrv8650nfncy3xcgs2k2aa23m";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -17,6 +17,6 @@ stdenv.mkDerivation rec {
     homepage = "http://netfilter.org/projects/libnftnl";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ fpletz ];
+    maintainers = with maintainers; [ fpletz ajs124 ];
   };
 }
diff --git a/pkgs/development/libraries/libnice/default.nix b/pkgs/development/libraries/libnice/default.nix
index 7c5043165f9d4..87f2d73271253 100644
--- a/pkgs/development/libraries/libnice/default.nix
+++ b/pkgs/development/libraries/libnice/default.nix
@@ -19,7 +19,8 @@ stdenv.mkDerivation rec {
   pname = "libnice";
   version = "0.1.18";
 
-  outputs = [ "bin" "out" "dev" "devdoc" ];
+  outputs = [ "bin" "out" "dev" ]
+    ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ "devdoc" ];
 
   src = fetchurl {
     url = "https://libnice.freedesktop.org/releases/${pname}-${version}.tar.gz";
@@ -61,7 +62,8 @@ stdenv.mkDerivation rec {
   ];
 
   mesonFlags = [
-    "-Dgtk_doc=enabled" # Disabled by default as of libnice-0.1.15
+    "-Dgtk_doc=${if (stdenv.buildPlatform == stdenv.hostPlatform) then "enabled" else "disabled"}"
+    "-Dintrospection=${if (stdenv.buildPlatform == stdenv.hostPlatform) then "enabled" else "disabled"}"
     "-Dexamples=disabled" # requires many dependencies and probably not useful for our users
   ];
 
diff --git a/pkgs/development/libraries/libnotify/default.nix b/pkgs/development/libraries/libnotify/default.nix
index b108a5c5eea54..d3b857d76739f 100644
--- a/pkgs/development/libraries/libnotify/default.nix
+++ b/pkgs/development/libraries/libnotify/default.nix
@@ -7,8 +7,9 @@
 , docbook-xsl-ns
 , glib
 , gdk-pixbuf
-, gobject-introspection
 , gnome
+, withIntrospection ? (stdenv.buildPlatform == stdenv.hostPlatform)
+, gobject-introspection
 }:
 
 stdenv.mkDerivation rec {
@@ -27,15 +28,24 @@ stdenv.mkDerivation rec {
     "-Dtests=false"
     "-Ddocbook_docs=disabled"
     "-Dgtk_doc=false"
+    "-Dintrospection=${if withIntrospection then "enabled" else "disabled"}"
   ];
 
+  strictDeps = true;
+
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkg-config
     libxslt
     docbook-xsl-ns
+    glib # for glib-mkenums needed during the build
+  ] ++ lib.optionals withIntrospection [
+    gobject-introspection
+  ];
+
+  buildInputs = lib.optionals withIntrospection [
+    gobject-introspection
   ];
 
   propagatedBuildInputs = [
@@ -51,7 +61,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    homepage = "https://developer.gnome.org/notification-spec/";
+    homepage = "https://gitlab.gnome.org/GNOME/libnotify";
     description = "A library that sends desktop notifications to a notification daemon";
     platforms = platforms.unix;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/libodfgen/default.nix b/pkgs/development/libraries/libodfgen/default.nix
index b891c320e8686..d4a6aab24c871 100644
--- a/pkgs/development/libraries/libodfgen/default.nix
+++ b/pkgs/development/libraries/libodfgen/default.nix
@@ -1,30 +1,28 @@
-{lib, stdenv, fetchurl, boost, pkg-config, cppunit, zlib, libwpg, libwpd, librevenge}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="libodfgen";
-    version="0.1.7";
-    name="${baseName}-${version}";
-    hash="0cdq48wlpp8m0qmndybv64r0m4vh0qsqx69cn6ms533cjlgljgij";
-    url="mirror://sourceforge/project/libwpd/libodfgen/libodfgen-0.1.7/libodfgen-0.1.7.tar.xz";
-    sha256="0cdq48wlpp8m0qmndybv64r0m4vh0qsqx69cn6ms533cjlgljgij";
+{ lib, stdenv, fetchurl, boost, pkg-config, cppunit, zlib, libwpg, libwpd, librevenge }:
+
+stdenv.mkDerivation rec {
+  pname = "libodfgen";
+  version = "0.1.7";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/libwpd/libodfgen/libodfgen-${version}/libodfgen-${version}.tar.xz";
+    sha256 = "sha256-Mj5JH5VsjKKrsSyZjjUGcJMKMjF7+WYrBhXdSzkiuDE=";
   };
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    boost cppunit zlib libwpg libwpd librevenge
+    boost
+    cppunit
+    zlib
+    libwpg
+    libwpd
+    librevenge
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit nativeBuildInputs buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
-  meta = {
-    inherit (s) version;
+
+  meta = with lib; {
     description = "A base library for generating ODF documents";
-    license = lib.licenses.mpl20 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.unix;
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libodfgen/default.upstream b/pkgs/development/libraries/libodfgen/default.upstream
deleted file mode 100644
index bd78e974e42fd..0000000000000
--- a/pkgs/development/libraries/libodfgen/default.upstream
+++ /dev/null
@@ -1,4 +0,0 @@
-url https://sourceforge.net/projects/libwpd/files/libodfgen/
-SF_version_dir libodfgen-
-version_link '[.]tar.xz/download$'
-SF_redirect
diff --git a/pkgs/development/libraries/liboping/default.nix b/pkgs/development/libraries/liboping/default.nix
index 932133e01921c..9a44e84b136f7 100644
--- a/pkgs/development/libraries/liboping/default.nix
+++ b/pkgs/development/libraries/liboping/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ncurses ? null, perl ? null, lib }:
+{ stdenv, fetchurl, fetchpatch, ncurses ? null, perl ? null, lib }:
 
 stdenv.mkDerivation rec {
   pname = "liboping";
@@ -9,6 +9,20 @@ stdenv.mkDerivation rec {
     sha256 = "1n2wkmvw6n80ybdwkjq8ka43z2x8mvxq49byv61b52iyz69slf7b";
   };
 
+  patches = [
+    # Add support for ncurses-6.3. A backport of patch pending upstream
+    # inclusion: https://github.com/octo/liboping/pull/61
+    ./ncurses-6.3.patch
+
+    # Pull pending fix for format arguments mismatch:
+    #  https://github.com/octo/liboping/pull/60
+    (fetchpatch {
+      name = "format-args.patch";
+      url = "https://github.com/octo/liboping/commit/7a50e33f2a686564aa43e4920141e6f64e042df1.patch";
+      sha256 = "118fl3k84m3iqwfp49g5qil4lw1gcznzmyxnfna0h7za2nm50cxw";
+    })
+  ];
+
   NIX_CFLAGS_COMPILE = lib.optionalString
     stdenv.cc.isGNU "-Wno-error=format-truncation";
 
diff --git a/pkgs/development/libraries/liboping/ncurses-6.3.patch b/pkgs/development/libraries/liboping/ncurses-6.3.patch
new file mode 100644
index 0000000000000..14d2be07fe38a
--- /dev/null
+++ b/pkgs/development/libraries/liboping/ncurses-6.3.patch
@@ -0,0 +1,21 @@
+A backport of https://github.com/octo/liboping/pull/61
+--- a/src/oping.c
++++ b/src/oping.c
+@@ -1125,7 +1125,7 @@ static int update_graph_prettyping (ping_context_t *ctx, /* {{{ */
+ 			wattron (ctx->window, COLOR_PAIR(color));
+ 
+ 		if (has_utf8())
+-			mvwprintw (ctx->window, /* y = */ 3, /* x = */ x + 2, symbol);
++			mvwprintw (ctx->window, /* y = */ 3, /* x = */ x + 2, "%s", symbol);
+ 		else
+ 			mvwaddch (ctx->window, /* y = */ 3, /* x = */ x + 2, symbolc);
+ 
+@@ -1222,7 +1222,7 @@ static int update_graph_histogram (ping_context_t *ctx) /* {{{ */
+ 		if (counters[x] == 0)
+ 			mvwaddch (ctx->window, /* y = */ 3, /* x = */ x + 2, ' ');
+ 		else if (has_utf8 ())
+-			mvwprintw (ctx->window, /* y = */ 3, /* x = */ x + 2,
++			mvwprintw (ctx->window, /* y = */ 3, /* x = */ x + 2, "%s",
+ 					hist_symbols_utf8[index]);
+ 		else
+ 			mvwaddch (ctx->window, /* y = */ 3, /* x = */ x + 2,
diff --git a/pkgs/development/libraries/libosmium/default.nix b/pkgs/development/libraries/libosmium/default.nix
index 546d89449deae..917a64f40e94e 100644
--- a/pkgs/development/libraries/libosmium/default.nix
+++ b/pkgs/development/libraries/libosmium/default.nix
@@ -1,19 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, cmake, protozero, expat, zlib, bzip2, boost }:
+{ lib, stdenv, fetchFromGitHub, cmake, protozero, expat, zlib, bzip2, boost, lz4 }:
 
 stdenv.mkDerivation rec {
   pname = "libosmium";
-  version = "2.17.1";
+  version = "2.17.2";
 
   src = fetchFromGitHub {
     owner = "osmcode";
     repo = "libosmium";
     rev = "v${version}";
-    sha256 = "sha256-riNcIC60gw9qxF8UmPjq03XuD3of0BxKbZpgwjMNh3c=";
+    sha256 = "sha256-+WeEK7rWoUPAiAsgd5qT2bwDf+5IlP4uuyh7+i2L/HU=";
   };
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ protozero zlib bzip2 expat boost ];
+  buildInputs = [ protozero zlib bzip2 expat boost lz4 ];
 
   cmakeFlags = [ "-DINSTALL_GDALCPP:BOOL=ON" ];
 
diff --git a/pkgs/development/libraries/libplacebo/default.nix b/pkgs/development/libraries/libplacebo/default.nix
index 099bac9274b26..5ce953be07011 100644
--- a/pkgs/development/libraries/libplacebo/default.nix
+++ b/pkgs/development/libraries/libplacebo/default.nix
@@ -9,7 +9,7 @@
 , shaderc
 , glslang
 , lcms2
-, epoxy
+, libepoxy
 , libGL
 , xorg
 }:
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     shaderc
     glslang
     lcms2
-    epoxy
+    libepoxy
     libGL
     xorg.libX11
   ];
diff --git a/pkgs/development/libraries/libplctag/default.nix b/pkgs/development/libraries/libplctag/default.nix
index e17f8d6e239b8..334fc61fc3d63 100644
--- a/pkgs/development/libraries/libplctag/default.nix
+++ b/pkgs/development/libraries/libplctag/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libplctag";
-  version = "2.4.2";
+  version = "2.4.8";
 
   src = fetchFromGitHub {
     owner = "libplctag";
     repo = "libplctag";
     rev = "v${version}";
-    sha256 = "sha256-LyFCKWOjqSHWGBm2p52R/eYuPjtf5IfqqMtrLCNWIV8=";
+    sha256 = "sha256-GVYG+ioqGo0k6ClrJu2mijtuBBFc9l6dNexNDNyh5+8=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libpsl/default.nix b/pkgs/development/libraries/libpsl/default.nix
index 562820bed6a49..0a710d648fbfc 100644
--- a/pkgs/development/libraries/libpsl/default.nix
+++ b/pkgs/development/libraries/libpsl/default.nix
@@ -21,11 +21,11 @@ let
     && !stdenv.isAarch64;
 in stdenv.mkDerivation rec {
   pname = "libpsl";
-  version = "0.21.0";
+  version = "0.21.1";
 
   src = fetchurl {
-    url = "https://github.com/rockdaboot/${pname}/releases/download/${pname}-${version}/${pname}-${version}.tar.lz";
-    sha256 = "183hadbira0d2zvv8272lspy31dgm9x26z35c61s5axcd5wd9g9i";
+    url = "https://github.com/rockdaboot/libpsl/releases/download/${version}/libpsl-${version}.tar.lz";
+    sha256 = "1a9kp2rj71jb9q030lmp3zhy33rqxscawbfzhp288fxvazapahv4";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libqalculate/default.nix b/pkgs/development/libraries/libqalculate/default.nix
index a148807b80c65..0f7757007005f 100644
--- a/pkgs/development/libraries/libqalculate/default.nix
+++ b/pkgs/development/libraries/libqalculate/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libqalculate";
-  version = "3.21.0";
+  version = "3.22.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "libqalculate";
     rev = "v${version}";
-    sha256 = "sha256-aKNoLkqpnC+jOvqs7S7SYBu+5VZ+hHHzBkwccg+kYMQ=";
+    sha256 = "sha256-yj6adBP9nZLXZVg62bYenfuiMeyULEql25KbDen9ljA=";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/pkgs/development/libraries/libqb/default.nix b/pkgs/development/libraries/libqb/default.nix
index bb3f568b1cf83..fa448fa09695c 100644
--- a/pkgs/development/libraries/libqb/default.nix
+++ b/pkgs/development/libraries/libqb/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libqb";
-  version = "2.0.3";
+  version = "2.0.4";
 
   src = fetchFromGitHub {
     owner = "ClusterLabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-a9CnqfrQUL0DdPPOJjfh9tQ0O8iRHPP3iBmy3MKvt/0=";
+    sha256 = "sha256-s6b2/bCVNzr3IBqiSAjiJ/DHCqkRwR1aA+J4uBP5mO4=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/development/libraries/librevenge/default.nix b/pkgs/development/libraries/librevenge/default.nix
index 1d7754bfcaeff..627b7596c029e 100644
--- a/pkgs/development/libraries/librevenge/default.nix
+++ b/pkgs/development/libraries/librevenge/default.nix
@@ -1,25 +1,20 @@
-{lib, stdenv, fetchurl, boost, pkg-config, cppunit, zlib}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="librevenge";
-    version="0.0.4";
-    name="${baseName}-${version}";
-    hash="1cj76cz4mqcy2mgv9l5xlc95bypyk8zbq0ls9cswqrs2y0lhfgwk";
-    url="mirror://sourceforge/project/libwpd/librevenge/librevenge-0.0.4/librevenge-0.0.4.tar.xz";
-    sha256="1cj76cz4mqcy2mgv9l5xlc95bypyk8zbq0ls9cswqrs2y0lhfgwk";
+{ lib, stdenv, fetchurl, boost, pkg-config, cppunit, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "librevenge";
+  version = "0.0.4";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/libwpd/librevenge/librevenge-${version}/librevenge-${version}.tar.xz";
+    sha256 = "sha256-kz8HKfBCZ8w1S5oCvD6a/vpVEqO90LRfFZ7hSj4zR7I=";
   };
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    boost cppunit zlib
+    boost
+    cppunit
+    zlib
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit nativeBuildInputs buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
 
   # Clang and gcc-7 generate warnings, and
   # -Werror causes these warnings to be interpreted as errors
@@ -32,11 +27,10 @@ stdenv.mkDerivation {
     sed -i 's,-DLIBREVENGE_BUILD,\0 -DBOOST_ERROR_CODE_HEADER_ONLY,g' src/lib/Makefile.in
   '';
 
-  meta = {
-    inherit (s) version;
+  meta = with lib; {
     description = "A base library for writing document import filters";
-    license = lib.licenses.mpl20 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.unix;
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/librevenge/default.upstream b/pkgs/development/libraries/librevenge/default.upstream
deleted file mode 100644
index 78e47f83433f7..0000000000000
--- a/pkgs/development/libraries/librevenge/default.upstream
+++ /dev/null
@@ -1,4 +0,0 @@
-url https://sourceforge.net/projects/libwpd/files/librevenge/
-SF_version_dir librevenge-
-version_link '[.]tar.xz/download$'
-SF_redirect
diff --git a/pkgs/development/libraries/librime/default.nix b/pkgs/development/libraries/librime/default.nix
index 3a2ca1e18c152..6877f9ab7b3f2 100644
--- a/pkgs/development/libraries/librime/default.nix
+++ b/pkgs/development/libraries/librime/default.nix
@@ -1,6 +1,13 @@
 { lib, stdenv, fetchFromGitHub, cmake, boost, glog, leveldb, marisa, opencc,
-  libyamlcpp, gtest, capnproto, pkg-config }:
+  libyamlcpp, gtest, capnproto, pkg-config, plugins ? [ ] }:
 
+let
+  copySinglePlugin = plug: "cp -r ${plug} plugins/${plug.name}";
+  copyPlugins = ''
+    ${lib.concatMapStringsSep "\n" copySinglePlugin plugins}
+    chmod +w -R plugins/*
+  '';
+in
 stdenv.mkDerivation rec {
   pname = "librime";
   version = "1.7.3";
@@ -14,13 +21,16 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ boost glog leveldb marisa opencc libyamlcpp gtest capnproto ];
+  buildInputs = [ boost glog leveldb marisa opencc libyamlcpp gtest capnproto ]
+              ++ plugins; # for propagated build inputs
+
+  preConfigure = copyPlugins;
 
   meta = with lib; {
     homepage    = "https://rime.im/";
     description = "Rime Input Method Engine, the core library";
     license     = licenses.bsd3;
-    maintainers = with maintainers; [ sifmelcara ];
+    maintainers = with maintainers; [ vonfry ];
     platforms   = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/librsb/default.nix b/pkgs/development/libraries/librsb/default.nix
index ef8b9ee441d30..0acca9ae24fc4 100644
--- a/pkgs/development/libraries/librsb/default.nix
+++ b/pkgs/development/libraries/librsb/default.nix
@@ -82,5 +82,7 @@ stdenv.mkDerivation rec {
     license = with licenses; [ lgpl3Plus ];
     maintainers = with maintainers; [ KarlJoad ];
     platforms = platforms.all;
+    # ./rsb_common.h:56:10: fatal error: 'omp.h' file not found
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/libraries/librsvg/default.nix b/pkgs/development/libraries/librsvg/default.nix
index c59a80c0e0f63..25f8209dd3d17 100644
--- a/pkgs/development/libraries/librsvg/default.nix
+++ b/pkgs/development/libraries/librsvg/default.nix
@@ -105,6 +105,9 @@ stdenv.mkDerivation rec {
     # Fix thumbnailer path
     sed -e "s#@bindir@\(/gdk-pixbuf-thumbnailer\)#${gdk-pixbuf}/bin\1#g" \
         -i gdk-pixbuf-loader/librsvg.thumbnailer.in
+
+    # 'error: linker `cc` not found' when cross-compiling
+    export RUSTFLAGS="-Clinker=$CC"
   '';
 
   # Not generated when cross compiling.
diff --git a/pkgs/development/libraries/libsass/default.nix b/pkgs/development/libraries/libsass/default.nix
index 9b61ce65d4535..83df5161a8ef1 100644
--- a/pkgs/development/libraries/libsass/default.nix
+++ b/pkgs/development/libraries/libsass/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libsass";
-  version = "3.6.5";
+  version = "3.6.5"; # also check sassc for updates
 
   src = fetchFromGitHub {
     owner = "sass";
diff --git a/pkgs/development/libraries/libsidplayfp/default.nix b/pkgs/development/libraries/libsidplayfp/default.nix
index fe902bfdd3066..50e6d8846f23e 100644
--- a/pkgs/development/libraries/libsidplayfp/default.nix
+++ b/pkgs/development/libraries/libsidplayfp/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , nix-update-script
 , autoreconfHook
 , pkg-config
@@ -16,16 +17,25 @@
 
 stdenv.mkDerivation rec {
   pname = "libsidplayfp";
-  version = "2.3.0";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "libsidplayfp";
     repo = "libsidplayfp";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-NtT6NaNs43gp8sgPNkRj85PBbpaG7hdUctDF564nZIk=";
+    sha256 = "sha256-Cu5mZzsqAO4X4Y8QAn851zIFPVPwxj5pB+jvA62L108=";
   };
 
+  patches = [
+    # Fixes test failure on x86_64-darwin
+    # Drop when fix for https://github.com/libsidplayfp/libsidplayfp/issues/39 in a release (>2.3.1)
+    (fetchpatch {
+      url = "https://github.com/libsidplayfp/libsidplayfp/commit/337020a91caa0113de4f4374e0dc770e4056d2c7.patch";
+      sha256 = "0sd7bqic8k945f05d8sk9mshf5d90ykd7f5p6m0n6v3jjhpwmqlq";
+    })
+  ];
+
   postPatch = ''
     patchShebangs .
   '';
diff --git a/pkgs/development/libraries/libsolv/default.nix b/pkgs/development/libraries/libsolv/default.nix
index c7dede355df61..1062cc8e65056 100644
--- a/pkgs/development/libraries/libsolv/default.nix
+++ b/pkgs/development/libraries/libsolv/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, cmake, ninja, zlib, expat, rpm, db }:
 
 stdenv.mkDerivation rec {
-  version  = "0.7.19";
+  version  = "0.7.20";
   pname = "libsolv";
 
   src = fetchFromGitHub {
     owner  = "openSUSE";
     repo   = "libsolv";
     rev    = version;
-    sha256 = "sha256-AN4cgpMBqTtK04CU89Yqd1ZfWyPrCociPd3XKdVONMU=";
+    sha256 = "sha256-NVyLa/fPGnO5jAz9rePFXg/z6RZeFCrkJBCG3gGh+YM=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/development/libraries/libspatialaudio/default.nix b/pkgs/development/libraries/libspatialaudio/default.nix
new file mode 100644
index 0000000000000..c8d29a87a03dd
--- /dev/null
+++ b/pkgs/development/libraries/libspatialaudio/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, cmake, fetchFromGitHub, libmysofa, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "libspatialaudio";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "videolabs";
+    repo = "libspatialaudio";
+    rev = version;
+    hash = "sha256-sPnQPD41AceXM4uGqWXMYhuQv0TUkA6TZP8ChxUFIoI=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ libmysofa zlib ];
+
+  meta = with lib; {
+    description =
+      "Ambisonic encoding / decoding and binauralization library in C++";
+    homepage = "https://github.com/videolabs/libspatialaudio";
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ krav ];
+  };
+}
diff --git a/pkgs/development/libraries/libspf2/default.nix b/pkgs/development/libraries/libspf2/default.nix
index dc46e356e2c89..6ec8f24b71328 100644
--- a/pkgs/development/libraries/libspf2/default.nix
+++ b/pkgs/development/libraries/libspf2/default.nix
@@ -1,29 +1,18 @@
-{ lib, stdenv, fetchurl, autoreconfHook }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook }:
 
 with lib;
 
 stdenv.mkDerivation rec {
   pname = "libspf2";
-  version = "1.2.10";
+  version = "2.2.12";
 
-  src = fetchurl {
-    url = "https://www.libspf2.org/spf/libspf2-${version}.tar.gz";
-    sha256 = "1j91p0qiipzf89qxq4m1wqhdf01hpn1h5xj4djbs51z23bl3s7nr";
+  src = fetchFromGitHub {
+    owner = "helsinki-systems";
+    repo = "libspf2";
+    rev = "v${version}";
+    sha256 = "03iiaafdcwh220pqignk407h6klrakwz0zkb8iwk6nkwipkwvhsx";
   };
 
-  patches = [
-    (fetchurl {
-      name = "0001-gcc-variadic-macros.patch";
-      url = "https://github.com/shevek/libspf2/commit/5852828582f556e73751076ad092f72acf7fc8b6.patch";
-      sha256 = "1v6ashqzpr0xidxq0vpkjd8wd66cj8df01kyzj678ljzcrax35hk";
-    })
-    (fetchurl {
-      name = "0002-CVE-2021-20314.patch";
-      url = "https://github.com/shevek/libspf2/commit/c37b7c13c30e225183899364b9f2efdfa85552ef.patch";
-      sha256 = "190nnh7mlz6328829ba6jajad16s3md8kraspn81qnvhwh0nkiak";
-    })
-  ];
-
   postPatch = ''
     # disable static bins compilation
     sed -i \
@@ -42,7 +31,7 @@ stdenv.mkDerivation rec {
     description = "Implementation of the Sender Policy Framework for SMTP authorization";
     homepage = "https://www.libspf2.org";
     license = with licenses; [ lgpl21Plus bsd2 ];
-    maintainers = with maintainers; [ pacien ];
+    maintainers = with maintainers; [ pacien ajs124 das_j ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/libspng/default.nix b/pkgs/development/libraries/libspng/default.nix
index c778ae485bd61..99a243733cf8f 100644
--- a/pkgs/development/libraries/libspng/default.nix
+++ b/pkgs/development/libraries/libspng/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libspng";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "randy408";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0zk0w09is4g7gysax4h0f4xj5f40vm6ipc1wi98ymzban89cjjnz";
+    sha256 = "sha256-JBNFYmmd1UnoIfV6iWeDIw/kgvl8AArxfHK+TKjZ9rk=";
   };
 
   doCheck = true;
diff --git a/pkgs/development/libraries/libstatgrab/default.nix b/pkgs/development/libraries/libstatgrab/default.nix
index 5daf93b943ba8..d2a94d7168a8d 100644
--- a/pkgs/development/libraries/libstatgrab/default.nix
+++ b/pkgs/development/libraries/libstatgrab/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libstatgrab";
-  version = "0.92";
+  version = "0.92.1";
 
   src = fetchurl {
     url = "https://ftp.i-scream.org/pub/i-scream/libstatgrab/${pname}-${version}.tar.gz";
-    sha256 = "15m1sl990l85ijf8pnc6hdfha6fqyiq74mijrzm3xz4zzxm91wav";
+    sha256 = "sha256-VoiqSmhVR9cXSoo3PqnY7pJ+dm48wwK97jRSPCxdbBE=";
   };
 
   buildInputs = lib.optional stdenv.isDarwin IOKit;
diff --git a/pkgs/development/libraries/libthreadar/default.nix b/pkgs/development/libraries/libthreadar/default.nix
index 953800cdd576e..bff42af3acaa4 100644
--- a/pkgs/development/libraries/libthreadar/default.nix
+++ b/pkgs/development/libraries/libthreadar/default.nix
@@ -3,12 +3,12 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "1.3.2";
+  version = "1.3.5";
   pname = "libthreadar";
 
   src = fetchurl {
     url = "mirror://sourceforge/libthreadar/${pname}-${version}.tar.gz";
-    sha256 = "sha256-q5FiBlncbhdXDgRm7wgxcd4rkxqje/1ls9kPGqmomP0=";
+    sha256 = "sha256-T5W83Ry3e1hHrnpmSLkfJDYHrVP6YDpXTqmf0WGCjB8=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/libtiff/default.nix b/pkgs/development/libraries/libtiff/default.nix
index ea246790020e6..2fe6159556f60 100644
--- a/pkgs/development/libraries/libtiff/default.nix
+++ b/pkgs/development/libraries/libtiff/default.nix
@@ -8,6 +8,11 @@
 , libjpeg
 , xz
 , zlib
+
+, Cocoa
+, GLUT
+, libGL
+, libGLU
 }:
 
 #FIXME: fix aarch64-darwin build and get rid of ./aarch64-darwin.nix
@@ -21,8 +26,17 @@ stdenv.mkDerivation rec {
     sha256 = "1j3snghqjbhwmnm5vz3dr1zm68dj15mgbx1wqld7vkl7n2nfaihf";
   };
 
-  # FreeImage needs this patch
-  patches = [ ./headers.patch ];
+  patches = [
+    # FreeImage needs this patch
+    ./headers.patch
+    # libc++abi 11 has an `#include <version>`, this picks up files name
+    # `version` in the project's include paths
+    ./rename-version.patch
+  ];
+
+  postPatch = ''
+    mv VERSION VERSION.txt
+  '';
 
   outputs = [ "bin" "dev" "dev_private" "out" "man" "doc" ];
 
@@ -38,7 +52,8 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ libjpeg xz zlib ]; #TODO: opengl support (bogus configure detection)
 
-  buildInputs = [ libdeflate ]; # TODO: move all propagatedBuildInputs to buildInputs.
+  buildInputs = [ libdeflate ] # TODO: move all propagatedBuildInputs to buildInputs.
+    ++ lib.optionals (stdenv.isDarwin) [ Cocoa GLUT libGL libGLU ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/libtiff/rename-version.patch b/pkgs/development/libraries/libtiff/rename-version.patch
new file mode 100644
index 0000000000000..30601c0f04ee2
--- /dev/null
+++ b/pkgs/development/libraries/libtiff/rename-version.patch
@@ -0,0 +1,20 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -34,7 +34,7 @@ docfiles = \
+ 	README.md \
+ 	RELEASE-DATE \
+ 	TODO \
+-	VERSION
++	VERSION.txt
+ 
+ EXTRA_DIST = \
+ 	cmake \
+@@ -61,7 +61,7 @@ SUBDIRS = port libtiff tools build contrib test man html
+ 
+ release:
+ 	(rm -f $(top_srcdir)/RELEASE-DATE && echo $(LIBTIFF_RELEASE_DATE) > $(top_srcdir)/RELEASE-DATE)
+-	(rm -f $(top_srcdir)/VERSION && echo $(LIBTIFF_VERSION) > $(top_srcdir)/VERSION)
++	(rm -f $(top_srcdir)/VERSION.txt && echo $(LIBTIFF_VERSION) > $(top_srcdir)/VERSION.txt)
+ 	(rm -f $(top_srcdir)/libtiff/tiffvers.h && sed 's,LIBTIFF_VERSION,$(LIBTIFF_VERSION),;s,LIBTIFF_RELEASE_DATE,$(LIBTIFF_RELEASE_DATE),' $(top_srcdir)/libtiff/tiffvers.h.in > $(top_srcdir)/libtiff/tiffvers.h)
+ 
+ pkgconfigdir = $(libdir)/pkgconfig
diff --git a/pkgs/development/libraries/libtorrent-rasterbar/1.1.nix b/pkgs/development/libraries/libtorrent-rasterbar/1.1.nix
index a898dd8e24e66..52a88e2194d64 100644
--- a/pkgs/development/libraries/libtorrent-rasterbar/1.1.nix
+++ b/pkgs/development/libraries/libtorrent-rasterbar/1.1.nix
@@ -44,7 +44,7 @@ in stdenv.mkDerivation {
     homepage = "https://libtorrent.org/";
     description = "A C++ BitTorrent implementation focusing on efficiency and scalability";
     license = licenses.bsd3;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libtorrent-rasterbar/1.2.nix b/pkgs/development/libraries/libtorrent-rasterbar/1.2.nix
index fc97b629a52fd..adea75b02e945 100644
--- a/pkgs/development/libraries/libtorrent-rasterbar/1.2.nix
+++ b/pkgs/development/libraries/libtorrent-rasterbar/1.2.nix
@@ -47,7 +47,7 @@ in stdenv.mkDerivation {
     homepage = "https://libtorrent.org/";
     description = "A C++ BitTorrent implementation focusing on efficiency and scalability";
     license = licenses.bsd3;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     broken = stdenv.isDarwin;
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/libraries/libtorrent-rasterbar/default.nix b/pkgs/development/libraries/libtorrent-rasterbar/default.nix
index c822d9dd12f63..0f5253f850e3f 100644
--- a/pkgs/development/libraries/libtorrent-rasterbar/default.nix
+++ b/pkgs/development/libraries/libtorrent-rasterbar/default.nix
@@ -3,7 +3,7 @@
 }:
 
 let
-  version = "2.0.4";
+  version = "2.0.5";
 
   # Make sure we override python, so the correct version is chosen
   boostPython = boost.override { enablePython = true; inherit python; };
@@ -16,7 +16,7 @@ in stdenv.mkDerivation {
     owner = "arvidn";
     repo = "libtorrent";
     rev = "v${version}";
-    sha256 = "sha256-D+Euv71pquqyKGPvk76IwYKvVj+/oNtJfiLleiafthQ=";
+    sha256 = "sha256-wTyeGTxihnjTGBsVa0Yq2M/cxhWhZ9KLHVy10ya2gc4=";
     fetchSubmodules = true;
   };
 
@@ -40,7 +40,7 @@ in stdenv.mkDerivation {
     homepage = "https://libtorrent.org/";
     description = "A C++ BitTorrent implementation focusing on efficiency and scalability";
     license = licenses.bsd3;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libtoxcore/default.nix b/pkgs/development/libraries/libtoxcore/default.nix
index 4badf32fe8cc9..10cc499d09d68 100644
--- a/pkgs/development/libraries/libtoxcore/default.nix
+++ b/pkgs/development/libraries/libtoxcore/default.nix
@@ -53,7 +53,7 @@ in {
   };
 
   libtoxcore_0_2 = generic {
-    version = "0.2.12";
-    sha256 = "0a6sqpm00d2rn0nviqfz4gh9ck1wzci6rxgmqmcyryl5ca19ffvp";
+    version = "0.2.13";
+    sha256 = "0a1cp00bnxl3q4l74yqp4aa6fg9slz4rg4lfzkl3khvmm6nzckds";
   };
 }
diff --git a/pkgs/development/libraries/libudev-zero/default.nix b/pkgs/development/libraries/libudev-zero/default.nix
new file mode 100644
index 0000000000000..9b154f34205e6
--- /dev/null
+++ b/pkgs/development/libraries/libudev-zero/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch }:
+
+stdenv.mkDerivation rec {
+  pname = "libudev-zero";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "illiliti";
+    repo = "libudev-zero";
+    rev = version;
+    sha256 = "0mln7iwyz7lxz8dx7bx7b47j6yws1dvfq35qsdcwg3wwmd4ngsz6";
+  };
+
+  patches = [
+    # Fix static.
+    # https://github.com/illiliti/libudev-zero/pull/48
+    (fetchpatch {
+      url = "https://github.com/illiliti/libudev-zero/commit/505c61819b371a1802e054fe2601e64f2dc6d79e.patch";
+      sha256 = "0y06rgjv73dd7fi3a0dlabcc8ryk3yhbsyrrhnnn3v36y1wz6m0g";
+    })
+  ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  # Just let the installPhase build stuff, because there's no
+  # non-install target that builds everything anyway.
+  dontBuild = true;
+
+  installTargets = lib.optionals stdenv.hostPlatform.isStatic "install-static";
+
+  meta = with lib; {
+    homepage = "https://github.com/illiliti/libudev-zero";
+    description = "Daemonless replacement for libudev";
+    maintainers = with maintainers; [ qyliss shamilton ];
+    license = licenses.isc;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/libuninameslist/default.nix b/pkgs/development/libraries/libuninameslist/default.nix
index 2e75c783681ea..cd615ed81fe97 100644
--- a/pkgs/development/libraries/libuninameslist/default.nix
+++ b/pkgs/development/libraries/libuninameslist/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libuninameslist";
-  version = "20200413";
+  version = "20211114";
 
   src = fetchFromGitHub {
     owner = "fontforge";
     repo = pname;
     rev = version;
-    sha256 = "0jbg94z00f5vwqyjfrbill6cjvzp1zrki6m3d235jjxyw0hm3wr5";
+    sha256 = "sha256-izxG2mx+D83s78eL19ERUaLrw9FPjlJRcFZw3+xzLDQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libunwind/backtrace-only-with-glibc.patch b/pkgs/development/libraries/libunwind/backtrace-only-with-glibc.patch
deleted file mode 100644
index 5fcaa72c0c013..0000000000000
--- a/pkgs/development/libraries/libunwind/backtrace-only-with-glibc.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 04437142399662b576bd55a85485c6dcc14d0812 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem at gmail.com>
-Date: Thu, 31 Dec 2015 06:44:07 +0000
-Subject: [PATCH] backtrace: Use only with glibc and uclibc
-
-backtrace API is glibc specific not linux specific
-so make it behave so.
-
-Signed-off-by: Khem Raj <raj.khem at gmail.com>
----
-Upstream-Status: Pending
-
- tests/test-coredump-unwind.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/tests/test-coredump-unwind.c b/tests/test-coredump-unwind.c
-index 5254708..8767b42 100644
---- a/tests/test-coredump-unwind.c
-+++ b/tests/test-coredump-unwind.c
-@@ -57,7 +57,9 @@
- #include <grp.h>
- 
- /* For SIGSEGV handler code */
-+#ifdef __GLIBC__
- #include <execinfo.h>
-+#endif
- #include <sys/ucontext.h>
- 
- #include <libunwind-coredump.h>
-@@ -238,11 +240,11 @@ void handle_sigsegv(int sig, siginfo_t *info, void *ucontext)
- 			ip);
- 
-   {
-+#ifdef __GLIBC__
-     /* glibc extension */
-     void *array[50];
-     int size;
-     size = backtrace(array, 50);
--#ifdef __linux__
-     backtrace_symbols_fd(array, size, 2);
- #endif
-   }
--- 
-2.6.4
-
diff --git a/pkgs/development/libraries/libunwind/default.nix b/pkgs/development/libraries/libunwind/default.nix
index 643752da1dc57..4bce1341c7d8c 100644
--- a/pkgs/development/libraries/libunwind/default.nix
+++ b/pkgs/development/libraries/libunwind/default.nix
@@ -1,25 +1,17 @@
-{ stdenv, lib, fetchurl, fetchpatch, autoreconfHook, xz, coreutils }:
+{ stdenv, lib, fetchurl, autoreconfHook, xz, buildPackages }:
 
 stdenv.mkDerivation rec {
   pname = "libunwind";
-  version = "1.4.0";
+  version = "1.6.2";
 
   src = fetchurl {
     url = "mirror://savannah/libunwind/${pname}-${version}.tar.gz";
-    sha256 = "0dc46flppifrv2z0mrdqi60165ghxm1wk0g47vcbyzjdplqwjnfz";
+    sha256 = "sha256-SmrsZmmR+0XQiJxErt6K1usQgHHDVU/N/2cfnJR5SXY=";
   };
 
-  patches = [
-    ./backtrace-only-with-glibc.patch
-
-    (fetchpatch {
-      # upstream build fix against -fno-common compilers like >=gcc-10
-      url = "https://github.com/libunwind/libunwind/commit/29e17d8d2ccbca07c423e3089a6d5ae8a1c9cb6e.patch";
-      sha256 = "1angwfq6h0jskg6zx8g6w9min38g5mgmrcbppcy5hqn59cgsxbw0";
-    })
-  ];
-
-  postPatch = lib.optionalString stdenv.hostPlatform.isMusl ''
+  postPatch = if stdenv.cc.isClang then ''
+    substituteInPlace configure.ac --replace "-lgcc_s" ""
+  '' else lib.optionalString stdenv.hostPlatform.isMusl ''
     substituteInPlace configure.ac --replace "-lgcc_s" "-lgcc_eh"
   '';
 
@@ -29,7 +21,7 @@ stdenv.mkDerivation rec {
 
   # Without latex2man, no man pages are installed despite being
   # prebuilt in the source tarball.
-  configureFlags = [ "LATEX2MAN=${coreutils}/bin/true" ];
+  configureFlags = [ "LATEX2MAN=${buildPackages.coreutils}/bin/true" ];
 
   propagatedBuildInputs = [ xz ];
 
@@ -46,7 +38,7 @@ stdenv.mkDerivation rec {
     description = "A portable and efficient API to determine the call-chain of a program";
     maintainers = with maintainers; [ orivej ];
     platforms = platforms.linux;
-    badPlatforms = [ "riscv32-linux" "riscv64-linux" ];
+    badPlatforms = [ "riscv32-linux" ];
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/libraries/libvdpau/default.nix b/pkgs/development/libraries/libvdpau/default.nix
index 75dcd337c38bb..a83893b01a7ff 100644
--- a/pkgs/development/libraries/libvdpau/default.nix
+++ b/pkgs/development/libraries/libvdpau/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-lX11";
 
   meta = with lib; {
-    homepage = "https://people.freedesktop.org/~aplattner/vdpau/";
+    homepage = "https://www.freedesktop.org/wiki/Software/VDPAU/";
     description = "Library to use the Video Decode and Presentation API for Unix (VDPAU)";
     license = licenses.mit; # expat version
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libviper/default.nix b/pkgs/development/libraries/libviper/default.nix
index e3b3674acc9f0..993e260b7bd35 100644
--- a/pkgs/development/libraries/libviper/default.nix
+++ b/pkgs/development/libraries/libviper/default.nix
@@ -7,8 +7,18 @@ stdenv.mkDerivation rec {
     sha256 = "1jvm7wdgw6ixyhl0pcfr9lnr9g6sg6whyrs9ihjiz0agvqrgvxwc";
   };
 
-  patchPhase = ''
+  postPatch = ''
     sed -i -e s@/usr/local@$out@ -e /ldconfig/d -e '/cd vdk/d' Makefile
+
+    # Fix pending upstream inclusion for ncurses-6.3 support:
+    #   https://github.com/TragicWarrior/libviper/pull/16
+    # Not applied as it due to unrelated code changes in context.
+    substituteInPlace viper_msgbox.c --replace \
+      'mvwprintw(window,height-3,tmp,prompt);' \
+      'mvwprintw(window,height-3,tmp,"%s",prompt);'
+    substituteInPlace w_decorate.c --replace \
+      'mvwprintw(window,0,x,title);' \
+      'mvwprintw(window,0,x,"%s",title);'
   '';
 
   preInstall = ''
diff --git a/pkgs/development/libraries/libvncserver/default.nix b/pkgs/development/libraries/libvncserver/default.nix
index 01a079a20512b..b9890f6a806b8 100644
--- a/pkgs/development/libraries/libvncserver/default.nix
+++ b/pkgs/development/libraries/libvncserver/default.nix
@@ -1,21 +1,26 @@
-{ lib, stdenv, fetchzip, fetchpatch, cmake
-, libjpeg, openssl, zlib, libgcrypt, libpng
-, systemd, Carbon
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, libjpeg
+, openssl
+, zlib
+, libgcrypt
+, libpng
+, systemd
+, Carbon
 }:
 
-let
-  s = # Generated upstream information
-  rec {
-    pname = "libvncserver";
-    version = "0.9.13";
-    url = "https://github.com/LibVNC/libvncserver/archive/LibVNCServer-${version}.tar.gz";
-    sha256 = "0zz0hslw8b1p3crnfy3xnmrljik359h83dpk64s697dqdcrzy141"; # unpacked archive checksum
-  };
-in
-stdenv.mkDerivation {
-  inherit (s) pname version;
-  src = fetchzip {
-    inherit (s) url sha256;
+stdenv.mkDerivation rec {
+  pname = "libvncserver";
+  version = "0.9.13";
+
+  src = fetchFromGitHub {
+    owner = "LibVNC";
+    repo = "libvncserver";
+    rev = "LibVNCServer-${version}";
+    sha256 = "sha256-gQT/M2u4nWQ0MfO2gWAqY0ZJc7V9eGczGzcsxKmG4H8=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -24,12 +29,11 @@ stdenv.mkDerivation {
     ++ lib.optional stdenv.isDarwin Carbon;
   propagatedBuildInputs = [ zlib ];
 
-  meta = {
-    inherit (s) version;
+  meta = with lib; {
     description = "VNC server library";
     homepage = "https://libvnc.github.io/";
-    license = lib.licenses.gpl2Plus ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.unix;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libwebp/default.nix b/pkgs/development/libraries/libwebp/default.nix
index 4908dc4a9ce1d..4333b4fbda495 100644
--- a/pkgs/development/libraries/libwebp/default.nix
+++ b/pkgs/development/libraries/libwebp/default.nix
@@ -27,13 +27,13 @@ in
 with lib;
 stdenv.mkDerivation rec {
   pname = "libwebp";
-  version = "1.1.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner  = "webmproject";
     repo   = pname;
-    rev    = version;
-    sha256 = "1kl6qqa29ygqb2fpv140y59v539gdqx4vcf3mlaxhca2bks98qgm";
+    rev    = "v${version}";
+    hash   = "sha256-KrvB5d3KNmujbfekWaevz2JZrWtK3PjEG9NEzRBYIDw=";
   };
 
   prePatch = "patchShebangs .";
diff --git a/pkgs/development/libraries/libwebsockets/default.nix b/pkgs/development/libraries/libwebsockets/default.nix
index 15bf77d2fc688..faf6acd40b922 100644
--- a/pkgs/development/libraries/libwebsockets/default.nix
+++ b/pkgs/development/libraries/libwebsockets/default.nix
@@ -5,6 +5,8 @@
 , openssl
 , zlib
 , libuv
+# External poll is required for e.g. mosquitto, but discouraged by the maintainer.
+, withExternalPoll ? false
 }:
 
 let
@@ -29,7 +31,8 @@ let
       "-DLWS_WITH_SOCKS5=ON"
       # Required since v4.2.0
       "-DLWS_BUILD_HASH=no_hash"
-    ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "-DLWS_WITHOUT_TESTAPPS=ON";
+    ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "-DLWS_WITHOUT_TESTAPPS=ON"
+      ++ lib.optional withExternalPoll "-DLWS_WITH_EXTERNAL_POLL=ON";
 
     NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-Wno-error=unused-but-set-variable";
 
diff --git a/pkgs/development/libraries/libwpe/fdo.nix b/pkgs/development/libraries/libwpe/fdo.nix
index e9c0e3c7f44f0..e68c60ebbdbf8 100644
--- a/pkgs/development/libraries/libwpe/fdo.nix
+++ b/pkgs/development/libraries/libwpe/fdo.nix
@@ -5,7 +5,7 @@
 , pkg-config
 , ninja
 , wayland
-, epoxy
+, libepoxy
 , glib
 , libwpe
 , libxkbcommon
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     wayland
-    epoxy
+    libepoxy
     glib
     libwpe
     libxkbcommon
diff --git a/pkgs/development/libraries/libxc/default.nix b/pkgs/development/libraries/libxc/default.nix
index 653f437646825..5ed5ef1fc3732 100644
--- a/pkgs/development/libraries/libxc/default.nix
+++ b/pkgs/development/libraries/libxc/default.nix
@@ -17,11 +17,17 @@ stdenv.mkDerivation rec {
     patchShebangs ./
   '';
 
-  cmakeFlags = [ "-DENABLE_FORTRAN=ON" "-DBUILD_SHARED_LIBS=ON" ];
-
-  preCheck = ''
-    export LD_LIBRARY_PATH=$(pwd)
-  '';
+  cmakeFlags = [
+    "-DENABLE_FORTRAN=ON"
+    "-DBUILD_SHARED_LIBS=ON"
+    # needed for tests to link
+    "-DCMAKE_SKIP_BUILD_RPATH=OFF"
+    # Force compilation of higher derivatives
+    "-DDISABLE_VXC=0"
+    "-DDISABLE_FXC=0"
+    "-DDISABLE_KXC=0"
+    "-DDISABLE_LXC=0"
+  ];
 
   doCheck = true;
 
@@ -29,7 +35,7 @@ stdenv.mkDerivation rec {
     description = "Library of exchange-correlation functionals for density-functional theory";
     homepage = "https://www.tddft.org/programs/Libxc/";
     license = licenses.mpl20;
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.unix;
     maintainers = with maintainers; [ markuskowa ];
   };
 }
diff --git a/pkgs/development/libraries/libxklavier/default.nix b/pkgs/development/libraries/libxklavier/default.nix
index b3b87e46b72aa..cdce45e11fe41 100644
--- a/pkgs/development/libraries/libxklavier/default.nix
+++ b/pkgs/development/libraries/libxklavier/default.nix
@@ -1,5 +1,7 @@
 { lib, stdenv, fetchgit, autoreconfHook, pkg-config, gtk-doc, xkeyboard_config, libxml2, xorg, docbook_xsl
-, glib, isocodes, gobject-introspection }:
+, glib, isocodes, gobject-introspection
+, withDoc ? (stdenv.buildPlatform == stdenv.hostPlatform)
+}:
 
 stdenv.mkDerivation rec {
   pname = "libxklavier";
@@ -13,14 +15,12 @@ stdenv.mkDerivation rec {
 
   patches = [ ./honor-XKB_CONFIG_ROOT.patch ];
 
-  outputs = [ "out" "dev" "devdoc" ];
+  outputs = [ "out" "dev" ] ++ lib.optionals withDoc [ "devdoc" ];
 
   # TODO: enable xmodmap support, needs xmodmap DB
   propagatedBuildInputs = with xorg; [ libX11 libXi xkeyboard_config libxml2 libICE glib libxkbfile isocodes ];
 
-  nativeBuildInputs = [ autoreconfHook pkg-config gtk-doc docbook_xsl ];
-
-  buildInputs = [ gobject-introspection ];
+  nativeBuildInputs = [ autoreconfHook pkg-config gtk-doc docbook_xsl gobject-introspection ];
 
   preAutoreconf = ''
     export NOCONFIGURE=1
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     "--with-xkb-base=${xkeyboard_config}/etc/X11/xkb"
     "--with-xkb-bin-base=${xorg.xkbcomp}/bin"
     "--disable-xmodmap-support"
-    "--enable-gtk-doc"
+    "${if withDoc then "--enable-gtk-doc" else "--disable-gtk-doc"}"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/libxmlxx/default.nix b/pkgs/development/libraries/libxmlxx/default.nix
index 19af942d759f7..16c29647a7c43 100644
--- a/pkgs/development/libraries/libxmlxx/default.nix
+++ b/pkgs/development/libraries/libxmlxx/default.nix
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     description = "C++ wrapper for the libxml2 XML parser library";
     license = licenses.lgpl2Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ phreedom ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/libraries/log4cplus/default.nix b/pkgs/development/libraries/log4cplus/default.nix
index e9ef841b65d76..99728a3854dec 100644
--- a/pkgs/development/libraries/log4cplus/default.nix
+++ b/pkgs/development/libraries/log4cplus/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchurl }:
 
 let
-  name = "log4cplus-2.0.6";
+  name = "log4cplus-2.0.7";
 in
 stdenv.mkDerivation {
   inherit name;
 
   src = fetchurl {
     url = "mirror://sourceforge/log4cplus/${name}.tar.bz2";
-    sha256 = "sha256-GpY6/Q+IPWLelGsYkn0jgFH9R5NuQV6r7/4rE5fxbso=";
+    sha256 = "sha256-j626/uK6TlWKD3iEJhPJ+yOcd12D8jNA0JEITA4bEqs=";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/lyra/default.nix b/pkgs/development/libraries/lyra/default.nix
index 31b85b01d6a5f..bc2661548888b 100644
--- a/pkgs/development/libraries/lyra/default.nix
+++ b/pkgs/development/libraries/lyra/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lyra";
-  version = "1.5.1";
+  version = "1.6";
 
   src = fetchFromGitHub {
     owner = "bfgroup";
     repo = "lyra";
     rev = version;
-    sha256 = "0xil6b055csnrvxxmby5x9njf166bri472jxwzshc49cz7svhhpk";
+    sha256 = "sha256-5k4b1JVrGDmT65tSWo6AkqvNpN+6n8wZgqEuXLL7stI=";
   };
 
   nativeBuildInputs = [ meson ninja ];
diff --git a/pkgs/development/libraries/lzlib/default.nix b/pkgs/development/libraries/lzlib/default.nix
new file mode 100644
index 0000000000000..9c5311d742a95
--- /dev/null
+++ b/pkgs/development/libraries/lzlib/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchurl, texinfo }:
+
+stdenv.mkDerivation rec {
+  pname = "lzlib";
+  version = "1.12";
+  outputs = [ "out" "info" ];
+
+  nativeBuildInputs = [ texinfo ];
+
+  src = fetchurl {
+    url = "mirror://savannah/lzip/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "sha256-jl2EJC61LPHcyY5YvZuo7xrvpQFDGr3QJzoiv0zjN7E=";
+  };
+
+  makeFlags = [ "AR:=$(AR)" "CC:=$(CC)" ];
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://www.nongnu.org/lzip/${pname}.html";
+    description =
+      "Data compression library providing in-memory LZMA compression and decompression functions, including integrity checking of the decompressed data";
+    license = licenses.bsd2;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ehmry ];
+  };
+}
diff --git a/pkgs/development/libraries/malcontent/default.nix b/pkgs/development/libraries/malcontent/default.nix
index 82635ae66d63d..5f46ec313b15b 100644
--- a/pkgs/development/libraries/malcontent/default.nix
+++ b/pkgs/development/libraries/malcontent/default.nix
@@ -19,7 +19,7 @@
 
 stdenv.mkDerivation rec {
   pname = "malcontent";
-  version = "0.10.1";
+  version = "0.10.3";
 
   outputs = [ "bin" "out" "lib" "pam" "dev" "man" "installedTests" ];
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     owner = "pwithnall";
     repo = pname;
     rev = version;
-    sha256 = "sha256-GgY+E+1gzmiAAALzdKu1CjN3xPeVMhbmNLqJNB1zHaU=";
+    sha256 = "sha256-SA4QyzV/aNUmyr9BYTsemx5x7S6WpxdTBK6zmVMkwh4=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/mdds/default.nix b/pkgs/development/libraries/mdds/default.nix
index 89fbdd9f21559..4ddd3b40d3641 100644
--- a/pkgs/development/libraries/mdds/default.nix
+++ b/pkgs/development/libraries/mdds/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mdds";
-  version = "1.7.0";
+  version = "2.0.1";
 
   src = fetchurl {
     url = "https://kohei.us/files/${pname}/src/${pname}-${version}.tar.bz2";
-    sha256 = "1kzy70b18f2dsqarmdmzbj9nc9kf2lvc5xxgkg6wdax3jf12lsm6";
+    sha256 = "sha256-OrM/zljmrPlUDMGlImS+aGPvgPVawocZTMmM2kjnH+Y=";
   };
 
   postInstall = ''
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 31f0a0e750d16..4b9849fd87880 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -33,7 +33,7 @@ with lib;
 let
   # Release calendar: https://www.mesa3d.org/release-calendar.html
   # Release frequency: https://www.mesa3d.org/releasing.html#schedule
-  version = "21.2.5";
+  version = "21.3.2";
   branch  = versions.major version;
 
 self = stdenv.mkDerivation {
@@ -47,7 +47,7 @@ self = stdenv.mkDerivation {
       "ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz"
       "ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
     ];
-    sha256 = "1fxcdf4qs4vmyjcns7jv62w4jy3gr383ar5b7mr77nb0nxgmhjcf";
+    sha256 = "1g96y59bw10ml8h4jl259g41jdmf5ww3jbwqpz1sprq7hgxvmrz2";
   };
 
   # TODO:
@@ -129,6 +129,9 @@ self = stdenv.mkDerivation {
     "-Dgallium-nine=${boolToString enableGalliumNine}" # Direct3D in Wine
     "-Dosmesa=${boolToString enableOSMesa}" # used by wine
     "-Dmicrosoft-clc=disabled" # Only relevant on Windows (OpenCL 1.2 API on top of D3D12)
+
+    # To enable non-mesa gbm backends to be found (e.g. Nvidia)
+    "-Dgbm-backends-path=${libglvnd.driverLink}/lib/gbm:${placeholder "out"}/lib/gbm"
   ] ++ optionals stdenv.isLinux [
     "-Dglvnd=true"
   ] ++ optionals enableOpenCL [
diff --git a/pkgs/development/libraries/movit/default.nix b/pkgs/development/libraries/movit/default.nix
index 9c03a9f6c4913..de69bd730d25f 100644
--- a/pkgs/development/libraries/movit/default.nix
+++ b/pkgs/development/libraries/movit/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, SDL2, eigen, epoxy, fftw, gtest, pkg-config }:
+{ lib, stdenv, fetchurl, SDL2, eigen, libepoxy, fftw, gtest, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "movit";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   GTEST_DIR = "${gtest.src}/googletest";
 
-  propagatedBuildInputs = [ eigen epoxy ];
+  propagatedBuildInputs = [ eigen libepoxy ];
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ SDL2 fftw gtest ];
diff --git a/pkgs/development/libraries/mpich/default.nix b/pkgs/development/libraries/mpich/default.nix
index 3aed0d2885273..7fe1dc33134bc 100644
--- a/pkgs/development/libraries/mpich/default.nix
+++ b/pkgs/development/libraries/mpich/default.nix
@@ -11,11 +11,11 @@ assert (ch4backend.pname == "ucx" || ch4backend.pname == "libfabric");
 
 stdenv.mkDerivation  rec {
   pname = "mpich";
-  version = "3.4.2";
+  version = "3.4.3";
 
   src = fetchurl {
     url = "https://www.mpich.org/static/downloads/${version}/mpich-${version}.tar.gz";
-    sha256 = "1gw7qpb27mhsj7ip0hhljshgpwvz2hmyhizhlp6793afp2lbw6aw";
+    sha256 = "1msg5i2mcmjix5pvpa84dwmlqpqm3206frl1060k342i62gxhm41";
   };
 
   configureFlags = [
diff --git a/pkgs/development/libraries/mtxclient/default.nix b/pkgs/development/libraries/mtxclient/default.nix
index 48f860c672c71..4e5eed1e43919 100644
--- a/pkgs/development/libraries/mtxclient/default.nix
+++ b/pkgs/development/libraries/mtxclient/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mtxclient";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "Nheko-Reborn";
     repo = "mtxclient";
     rev = "v${version}";
-    sha256 = "0sxx7vj6a1n2d95c118pjq52707qwf16154fdvz5f4z1pq7c8dsi";
+    sha256 = "sha256-hTB0a5KXcQb0MCEX9YonDJOGlTmRkrOIP9UFlwuJc6g=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/muparserx/default.nix b/pkgs/development/libraries/muparserx/default.nix
index 4d3036d4cfbbe..bdc558dc10292 100644
--- a/pkgs/development/libraries/muparserx/default.nix
+++ b/pkgs/development/libraries/muparserx/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "muparserx";
-  version = "4.0.8";
+  version = "4.0.11";
 
   src = fetchFromGitHub {
     owner = "beltoforion";
     repo = "muparserx";
     rev = "v${version}";
-    sha256 = "097pkdffv0phr0345hy06mjm5pfy259z13plsvbxvcmds80wl48v";
+    sha256 = "sha256-BWzHlz1mQYsvWa53EtO05Rb4rRHJBSRguJTHLtgqpPw=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/ndn-cxx/default.nix b/pkgs/development/libraries/ndn-cxx/default.nix
index 3fb3fc305a335..410ede638c06d 100644
--- a/pkgs/development/libraries/ndn-cxx/default.nix
+++ b/pkgs/development/libraries/ndn-cxx/default.nix
@@ -1,11 +1,12 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , doxygen
 , pkg-config
 , python3
 , python3Packages
 , wafHook
-, boost
+, boost175
 , openssl
 , sqlite
 }:
@@ -18,19 +19,28 @@ stdenv.mkDerivation rec {
     owner = "named-data";
     repo = "ndn-cxx";
     rev = "${pname}-${version}";
-    sha256 = "1lcaqc79n3d9sip7knddblba17sz18b0w7nlxmj3fz3lb3z9qd51";
+    sha256 = "sha256-oTSc/lh0fDdk7dQeDhYKX5+gFl2t2Xlu1KkNmw7DitE=";
   };
 
   nativeBuildInputs = [ doxygen pkg-config python3 python3Packages.sphinx wafHook ];
 
-  buildInputs = [ boost openssl sqlite ];
+  buildInputs = [ boost175 openssl sqlite ];
 
   wafConfigureFlags = [
     "--with-openssl=${openssl.dev}"
-    "--boost-includes=${boost.dev}/include"
-    "--boost-libs=${boost.out}/lib"
+    "--boost-includes=${boost175.dev}/include"
+    "--boost-libs=${boost175.out}/lib"
+    # "--with-tests" # disabled since upstream tests fail (Net/TestFaceUri/ParseDev Bug #3896)
   ];
 
+
+  doCheck = false; # disabled since upstream tests fail (Net/TestFaceUri/ParseDev Bug #3896)
+  checkPhase = ''
+    runHook preCheck
+    LD_PRELOAD=build/ndn-cxx.so build/unit-tests
+    runHook postCheck
+  '';
+
   meta = with lib; {
     homepage = "https://named-data.net/";
     description = "A Named Data Neworking (NDN) or Content Centric Networking (CCN) abstraction";
@@ -49,6 +59,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.lgpl3;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ sjmackenzie ];
+    maintainers = with maintainers; [ sjmackenzie bertof ];
   };
 }
diff --git a/pkgs/development/libraries/netcdf-fortran/default.nix b/pkgs/development/libraries/netcdf-fortran/default.nix
index fc13fbe85bfda..40f22b0cabe50 100644
--- a/pkgs/development/libraries/netcdf-fortran/default.nix
+++ b/pkgs/development/libraries/netcdf-fortran/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, netcdf, hdf5, curl, gfortran }:
+{ lib, stdenv, fetchFromGitHub, netcdf, hdf5, curl, gfortran, CoreFoundation }:
 stdenv.mkDerivation rec {
   pname = "netcdf-fortran";
   version = "4.4.5";
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ gfortran ];
-  buildInputs = [ netcdf hdf5 curl ];
+  buildInputs = [ netcdf hdf5 curl ]
+    ++ lib.optional stdenv.isDarwin CoreFoundation;
   doCheck = true;
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/nghttp3/default.nix b/pkgs/development/libraries/nghttp3/default.nix
new file mode 100644
index 0000000000000..85a66f940658c
--- /dev/null
+++ b/pkgs/development/libraries/nghttp3/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub
+, autoreconfHook, pkg-config
+, cunit, file
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nghttp3";
+  version = "unstable-2021-11-10";
+
+  src = fetchFromGitHub {
+    owner = "ngtcp2";
+    repo = pname;
+    rev = "270e75447ed9e2a05b78ba89d0699d076230ea60";
+    sha256 = "01cla03cv8nd2rf5p77h0xzvn9f8sfwn8pp3r2jshvqp9ipa8065";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config cunit file ];
+
+  preConfigure = ''
+    substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file
+  '';
+
+  outputs = [ "out" "dev" ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/ngtcp2/nghttp3";
+    description = "nghttp3 is an implementation of HTTP/3 mapping over QUIC and QPACK in C.";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ izorkin ];
+  };
+}
diff --git a/pkgs/development/libraries/ngtcp2/default.nix b/pkgs/development/libraries/ngtcp2/default.nix
new file mode 100644
index 0000000000000..0d4002ca10d7c
--- /dev/null
+++ b/pkgs/development/libraries/ngtcp2/default.nix
@@ -0,0 +1,36 @@
+{ lib, stdenv, fetchFromGitHub
+, autoreconfHook, pkg-config
+, cunit, file
+, jemalloc, libev, nghttp3, quictls
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ngtcp2";
+  version = "unstable-2021-11-10";
+
+  src = fetchFromGitHub {
+    owner = "ngtcp2";
+    repo = pname;
+    rev = "7039808c044152c14b44046468bd16249b4d7048";
+    sha256 = "1cjsky24f6fazw9b1r6w9cgp09vi8wp99sv76gg2b1r8ic3hgq23";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config cunit file ];
+  buildInputs = [ jemalloc libev nghttp3 quictls ];
+
+  preConfigure = ''
+    substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file
+  '';
+
+  outputs = [ "out" "dev" ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/ngtcp2/ngtcp2";
+    description = "ngtcp2 project is an effort to implement QUIC protocol which is now being discussed in IETF QUICWG for its standardization.";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ izorkin ];
+  };
+}
diff --git a/pkgs/development/libraries/nix-plugins/default.nix b/pkgs/development/libraries/nix-plugins/default.nix
index a4c18e9f0466b..c17a0e8c7fe71 100644
--- a/pkgs/development/libraries/nix-plugins/default.nix
+++ b/pkgs/development/libraries/nix-plugins/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nix-plugins";
-  version = "6.0.0";
+  version = "8.0.0";
 
   src = fetchFromGitHub {
     owner = "shlevy";
     repo = "nix-plugins";
     rev = version;
-    sha256 = "08kxdci0sijj1hfkn3dbr7nbpb9xck0xr3xa3a0j116n4kvwb6qv";
+    hash = "sha256-Zz8cPHK4w0qimYu6III6XfiKVQIzEMMV9P6ER5fveZY=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/libraries/nlopt/default.nix b/pkgs/development/libraries/nlopt/default.nix
index 36fcf90811825..ea216335b7afd 100644
--- a/pkgs/development/libraries/nlopt/default.nix
+++ b/pkgs/development/libraries/nlopt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nlopt";
-  version = "2.7.0";
+  version = "2.7.1";
 
   src = fetchFromGitHub {
     owner = "stevengj";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0xm8y9cg5p2vgxbn8wn8gqfpxkbm0m4qsidp0bq1dqs8gvj9017v";
+    sha256 = "sha256-TgieCX7yUdTAEblzXY/gCN0r6F9TVDh4RdNDjQdXZ1o=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/nss/default.nix b/pkgs/development/libraries/nss/default.nix
index 9d85515e2faf6..4a69ad54c4e49 100644
--- a/pkgs/development/libraries/nss/default.nix
+++ b/pkgs/development/libraries/nss/default.nix
@@ -27,7 +27,7 @@ let
   #       It will rebuild itself using the version of this package (NSS) and if
   #       an update is required do the required changes to the expression.
   #       Example: nix-shell ./maintainers/scripts/update.nix --argstr package cacert
-  version = "3.71";
+  version = "3.73";
 
 in
 stdenv.mkDerivation rec {
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://mozilla/security/nss/releases/NSS_${lib.replaceStrings [ "." ] [ "_" ] version}_RTM/src/${pname}-${version}.tar.gz";
-    sha256 = "0ly2l3dv6z5hlxs72h5x6796ni3x1bq60saavaf42ddgv4ax7b4r";
+    sha256 = "1rfqjq02rfv0ycdmvic51pi093rg33zb8kpqkvddf44vv9l3lvan";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
diff --git a/pkgs/development/libraries/nsss/default.nix b/pkgs/development/libraries/nsss/default.nix
index 9fee8333fb3d3..e6db2aee60c54 100644
--- a/pkgs/development/libraries/nsss/default.nix
+++ b/pkgs/development/libraries/nsss/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "nsss";
-  version = "0.2.0.0";
-  sha256 = "0zg0lwkvx9ch4a6h9ryc73nqfz733v2pv4gbf65qzpz7ccniwagi";
+  version = "0.2.0.1";
+  sha256 = "0nqjnfqvzzn4i45h849b3n8qwcrzd5wlrwlvkmjdga5k4yk4x63x";
 
   description = "An implementation of a subset of the pwd.h, group.h and shadow.h family of functions.";
 
diff --git a/pkgs/development/libraries/ntirpc/default.nix b/pkgs/development/libraries/ntirpc/default.nix
index e98cfac78581b..55f1edf490b49 100644
--- a/pkgs/development/libraries/ntirpc/default.nix
+++ b/pkgs/development/libraries/ntirpc/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ntirpc";
-  version = "3.4";
+  version = "4.0";
 
   src = fetchFromGitHub {
     owner = "nfs-ganesha";
     repo = "ntirpc";
     rev = "v${version}";
-    sha256 = "1xdwqyc9m4lbsgr7ll1g0f84c2h8jrfkg67cgvsp424i1a7r9mm1";
+    sha256 = "0hffma57b4c7g7862yvfr8bvbsbxh5w383mvjkjv3jpzi01l79yv";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/ntl/default.nix b/pkgs/development/libraries/ntl/default.nix
index 6e41639d48e55..f204ae68fb52c 100644
--- a/pkgs/development/libraries/ntl/default.nix
+++ b/pkgs/development/libraries/ntl/default.nix
@@ -14,11 +14,11 @@ assert withGf2x -> gf2x != null;
 
 stdenv.mkDerivation rec {
   pname = "ntl";
-  version = "11.4.4";
+  version = "11.5.1";
 
   src = fetchurl {
     url = "http://www.shoup.net/ntl/ntl-${version}.tar.gz";
-    sha256 = "sha256-nX9uguEaQJ8VHA3i3rCMDXY7r5g0/d/UMr89IY+AIds=";
+    sha256 = "sha256-IQ0GwxMGy8bq9oFEU8Vsd22djo3zbXTrMG9qUj0caoo=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/oatpp/default.nix b/pkgs/development/libraries/oatpp/default.nix
index e9f92a31f2c57..3f554807d0d34 100644
--- a/pkgs/development/libraries/oatpp/default.nix
+++ b/pkgs/development/libraries/oatpp/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "oatpp";
-  version = "1.2.5";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "oatpp";
     repo = "oatpp";
     rev = version;
-    sha256 = "sha256-Vtdz03scx0hvY1yeM7yfSxCVKzi84OQ1Oh9b922movE=";
+    sha256 = "sha256-k6RPg53z9iTrrKZXOm5Ga9qxI32mHgB+4d6y+IUvJC0=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/ocl-icd/default.nix b/pkgs/development/libraries/ocl-icd/default.nix
index 7dbcecab0c861..ea8e1841b0c1a 100644
--- a/pkgs/development/libraries/ocl-icd/default.nix
+++ b/pkgs/development/libraries/ocl-icd/default.nix
@@ -25,10 +25,15 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ opencl-headers ];
 
+  configureFlags = [
+    "--enable-custom-vendordir=/run/opengl-driver/etc/OpenCL/vendors"
+  ];
+
   meta = with lib; {
     description = "OpenCL ICD Loader for ${opencl-headers.name}";
     homepage    = "https://github.com/OCL-dev/ocl-icd";
     license     = licenses.bsd2;
     platforms = platforms.unix;
+    maintainers = with maintainers; [ r-burns ];
   };
 }
diff --git a/pkgs/development/libraries/odpic/default.nix b/pkgs/development/libraries/odpic/default.nix
index 9e4b01ef172cf..b9095f214814f 100644
--- a/pkgs/development/libraries/odpic/default.nix
+++ b/pkgs/development/libraries/odpic/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, fixDarwinDylibNames, oracle-instantclient, libaio }:
 
 let
-  version = "4.2.1";
+  version = "4.3.0";
   libPath = lib.makeLibraryPath [ oracle-instantclient.lib ];
 
 in stdenv.mkDerivation {
@@ -13,7 +13,7 @@ in stdenv.mkDerivation {
     owner = "oracle";
     repo = "odpi";
     rev = "v${version}";
-    sha256 = "sha256-jdDMG6+bvsKQkHSpUrwtwU/ngq1iINcUhWu2b9lJgPY=";
+    sha256 = "sha256-oL2yehjP8JJxU19VY4e/ueh2xjo1yp4X7FGslqCXO8A=";
   };
 
   nativeBuildInputs = lib.optional stdenv.isDarwin fixDarwinDylibNames;
diff --git a/pkgs/development/libraries/okapi/default.nix b/pkgs/development/libraries/okapi/default.nix
new file mode 100644
index 0000000000000..e9b0b95d1af80
--- /dev/null
+++ b/pkgs/development/libraries/okapi/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, rustPlatform, fetchurl, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "okapi";
+  version = "1.2.0";
+
+  src = fetchurl {
+    url = "https://github.com/trinsic-id/okapi/releases/download/v${version}/okapi-vendor-${version}.tar.gz";
+    sha256 = "sha256-1aADcwEEWMhoJjwc8wkEcmBYXz+5josOfI/KLaton2k=";
+  };
+
+  cargoVendorDir = "vendor";
+  doCheck = false;
+
+  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+
+  postInstall = ''
+    cp -r include $out
+  '';
+
+  meta = with lib; {
+    description = "Okapi Library";
+    longDescription = ''
+      Collection of tools that support workflows for working
+      with authentic data and identity management
+    '';
+    homepage = "https://github.com/trinsic-id/okapi";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ tmarkovski ];
+  };
+}
diff --git a/pkgs/development/libraries/olm/default.nix b/pkgs/development/libraries/olm/default.nix
index 252bebd9eff5c..e5c2d66827bf6 100644
--- a/pkgs/development/libraries/olm/default.nix
+++ b/pkgs/development/libraries/olm/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "olm";
-  version = "3.2.6";
+  version = "3.2.8";
 
   src = fetchFromGitLab {
     domain = "gitlab.matrix.org";
     owner = "matrix-org";
     repo = pname;
     rev = version;
-    sha256 = "1srmw36nxi0z2y5d9adks09p950qm0fscbnrq1fl37fdypvjl1sk";
+    sha256 = "1jfhydfcnqpksb2bhi960v3h10prf4v5gx42mm2rp6p0jfbqcy50";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/opencl-clhpp/default.nix b/pkgs/development/libraries/opencl-clhpp/default.nix
index b6aa71491680d..8410aa4aa0638 100644
--- a/pkgs/development/libraries/opencl-clhpp/default.nix
+++ b/pkgs/development/libraries/opencl-clhpp/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "opencl-clhpp";
-  version = "2.0.12";
+  version = "2.0.15";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "OpenCL-CLHPP";
     rev = "v${version}";
-    sha256 = "04g3mg2cpbi048fxxkghra81bpxzqr4r3gspx5mvqipx1lzypsci";
+    sha256 = "sha256-A12GdevbMaO2QkGAk3VsXzwcDkF+6dEapse2xfdqzPM=";
   };
 
   nativeBuildInputs = [ cmake python3 ];
diff --git a/pkgs/development/libraries/opencl-headers/default.nix b/pkgs/development/libraries/opencl-headers/default.nix
index d7a8b4497f7f4..661fd734d8863 100644
--- a/pkgs/development/libraries/opencl-headers/default.nix
+++ b/pkgs/development/libraries/opencl-headers/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   name = "opencl-headers-${version}";
-  version = "2020.06.16";
+  version = "2021.06.30";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "OpenCL-Headers";
     rev = "v${version}";
-    sha256 = "0viiwhfqccw90r3mr45ab3wyhabpdrihplj5842brn5ny0ayh73z";
+    sha256 = "sha256-MdKC48f1zhVAcHrqzrgT9iaYrHXurV8vDt+GnDroO9s=";
   };
 
   installPhase = ''
diff --git a/pkgs/development/libraries/openfst/default.nix b/pkgs/development/libraries/openfst/default.nix
index 08767680ffd6c..599d1cad0cc50 100644
--- a/pkgs/development/libraries/openfst/default.nix
+++ b/pkgs/development/libraries/openfst/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
       FSTs have key applications in speech recognition and synthesis, machine translation, optical character recognition,
       pattern matching, string processing, machine learning, information extraction and retrieval among others
     '';
-    homepage = "http://www.openfst.org/twiki/bin/view/FST/WebHome";
+    homepage = "https://www.openfst.org/twiki/bin/view/FST/WebHome";
     license = licenses.asl20;
     maintainers = [ maintainers.dfordivam ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/opengrm-ngram/default.nix b/pkgs/development/libraries/opengrm-ngram/default.nix
index 3b00ae17e9107..06f2e3542bba4 100644
--- a/pkgs/development/libraries/opengrm-ngram/default.nix
+++ b/pkgs/development/libraries/opengrm-ngram/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library to make and modify n-gram language models encoded as weighted finite-state transducers";
-    homepage = "http://www.openfst.org/twiki/bin/view/GRM/NGramLibrary";
+    homepage = "https://www.openfst.org/twiki/bin/view/GRM/NGramLibrary";
     license = licenses.asl20;
     maintainers = with maintainers; [ mic92 ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/openh264/default.nix b/pkgs/development/libraries/openh264/default.nix
index 6e856b04ac4a8..3858cb4dc2d5c 100644
--- a/pkgs/development/libraries/openh264/default.nix
+++ b/pkgs/development/libraries/openh264/default.nix
@@ -13,7 +13,10 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ nasm ];
 
-  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "ARCH=${stdenv.hostPlatform.linuxArch}"
+  ];
 
   meta = with lib; {
     description = "A codec library which supports H.264 encoding and decoding";
diff --git a/pkgs/development/libraries/openmpi/default.nix b/pkgs/development/libraries/openmpi/default.nix
index d3323b1fa9e0b..aac11dc83bda1 100644
--- a/pkgs/development/libraries/openmpi/default.nix
+++ b/pkgs/development/libraries/openmpi/default.nix
@@ -27,11 +27,11 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "openmpi";
-  version = "4.1.1";
+  version = "4.1.2";
 
   src = with lib.versions; fetchurl {
     url = "https://www.open-mpi.org/software/ompi/v${major version}.${minor version}/downloads/${pname}-${version}.tar.bz2";
-    sha256 = "1nkwq123vvmggcay48snm9qqmrh0bdzpln0l1jnp26niidvplkz2";
+    sha256 = "09xmlr4mfs02kwcf5cmdgkcdjj81fjwjmpa3rz2k28f3gz7wfy4v";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index ca2e240dd869f..30721129073bd 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -108,6 +108,7 @@ let
       "-DUSE_CRYPTODEV_DIGESTS"
     ] ++ lib.optional enableSSL2 "enable-ssl2"
       ++ lib.optional enableSSL3 "enable-ssl3"
+      ++ lib.optional (versionAtLeast version "3.0.0") "enable-ktls"
       ++ lib.optional (versionAtLeast version "1.1.0" && stdenv.hostPlatform.isAarch64) "no-afalgeng"
       # OpenSSL needs a specific `no-shared` configure flag.
       # See https://wiki.openssl.org/index.php/Compilation_and_Installation#Configure_Options
@@ -207,8 +208,8 @@ in {
   };
 
   openssl_3_0 = common {
-    version = "3.0.0";
-    sha256 = "sha256-We7fy0bCUhTJvTftYHgpe03wHQEiZ/6enu4x9hvHBTY=";
+    version = "3.0.1";
+    sha256 = "sha256-wxGthTNTvOeW7a0BqGLFCopYf2Ln4hAO9GWrU+ybBtE=";
     patches = [
       ./3.0/nix-ssl-cert-file.patch
 
diff --git a/pkgs/development/libraries/openwsman/default.nix b/pkgs/development/libraries/openwsman/default.nix
index 9276ccac6fd26..446952b30051b 100644
--- a/pkgs/development/libraries/openwsman/default.nix
+++ b/pkgs/development/libraries/openwsman/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openwsman";
-  version = "2.7.0";
+  version = "2.7.1";
 
   src = fetchFromGitHub {
     owner  = "Openwsman";
     repo   = "openwsman";
     rev    = "v${version}";
-    sha256 = "19dj38jyzhhhvk863cikcwk5awzlq3337pxmsaqqm4wrcygrkfmx";
+    sha256 = "sha256-/fSVzpGPObMkJIu7j6eR6A7Gtf2jttoPhcSayBvn3IU=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/libraries/osip/default.nix b/pkgs/development/libraries/osip/default.nix
index b0603cc454f62..92da6bbdd4a1a 100644
--- a/pkgs/development/libraries/osip/default.nix
+++ b/pkgs/development/libraries/osip/default.nix
@@ -1,9 +1,9 @@
 {lib, stdenv, fetchurl}:
 stdenv.mkDerivation rec {
-  version = "5.2.0";
+  version = "5.3.0";
   src = fetchurl {
     url = "mirror://gnu/osip/libosip2-${version}.tar.gz";
-    sha256 = "0xdk3cszkzb8nb757gl47slrr13mf6xz43ab4k343fv8llp8pd2g";
+    sha256 = "sha256-9HJZFsIs9RSWnvsVw8IHIz1kc5OD99QpVgOLePbK6Mg=";
   };
   pname = "libosip2";
 
diff --git a/pkgs/development/libraries/p11-kit/default.nix b/pkgs/development/libraries/p11-kit/default.nix
index 4ddc01ee6b2bf..34a3788d78602 100644
--- a/pkgs/development/libraries/p11-kit/default.nix
+++ b/pkgs/development/libraries/p11-kit/default.nix
@@ -31,7 +31,11 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--sysconfdir=/etc"
     "--localstatedir=/var"
-    "--with-trust-paths=/etc/ssl/trust-source:/etc/ssl/certs/ca-certificates.crt"
+    "--with-trust-paths=${lib.concatStringsSep ":" [
+      "/etc/ssl/trust-source"               # p11-kit trust source
+      "/etc/ssl/certs/ca-certificates.crt"  # NixOS + Debian/Ubuntu/Arch/Gentoo...
+      "/etc/pki/tls/certs/ca-bundle.crt"    # Fedora/CentOS
+    ]}"
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/pango/default.nix b/pkgs/development/libraries/pango/default.nix
index 513bfe2d17e6a..c298ca8c17da9 100644
--- a/pkgs/development/libraries/pango/default.nix
+++ b/pkgs/development/libraries/pango/default.nix
@@ -6,7 +6,6 @@
 , harfbuzz
 , libintl
 , libthai
-, gobject-introspection
 , darwin
 , fribidi
 , gnome
@@ -16,12 +15,13 @@
 , meson
 , ninja
 , glib
+, python3
 , x11Support? !stdenv.isDarwin, libXft
+, withIntrospection ? (stdenv.buildPlatform == stdenv.hostPlatform)
+, gobject-introspection
+, withDocs ? (stdenv.buildPlatform == stdenv.hostPlatform)
 }:
 
-let
-  withDocs = stdenv.buildPlatform == stdenv.hostPlatform;
-in
 stdenv.mkDerivation rec {
   pname = "pango";
   version = "1.48.10";
@@ -34,12 +34,21 @@ stdenv.mkDerivation rec {
     sha256 = "IeH1eYvN/adeq8QoBRSwiWq1b2VtTn5mAwuaJTXs3Jg=";
   };
 
+  strictDeps = !withIntrospection;
+
+  depsBuildBuild = [
+    pkg-config
+  ];
+
   nativeBuildInputs = [
     meson ninja
     glib # for glib-mkenum
     pkg-config
+  ] ++ lib.optionals withIntrospection [
     gobject-introspection
+  ] ++ lib.optionals withDocs [
     gi-docgen
+    python3
   ];
 
   buildInputs = [
@@ -63,10 +72,9 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Dgtk_doc=${lib.boolToString withDocs}"
+    "-Dintrospection=${if withIntrospection then "enabled" else "disabled"}"
   ] ++ lib.optionals (!x11Support) [
     "-Dxft=disabled" # only works with x11
-  ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
-    "-Dintrospection=disabled"
   ];
 
   # Fontconfig error: Cannot load default config file
diff --git a/pkgs/development/libraries/pangomm/2.48.nix b/pkgs/development/libraries/pangomm/2.48.nix
index c2ab993954531..f3fa6acec7360 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.48.1";
+  version= "2.48.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-d2rVPnkeQxBrf0D/CDS+5uTrHGrXy20hVUb3o98O3E0=";
+    sha256 = "sha256-4ddVIsU/RieZh1zSR/m0nJHO1LGr5oOHrDWycTktTqU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix
index d2fe9a84ac371..f7094e04a9d6d 100644
--- a/pkgs/development/libraries/pcre/default.nix
+++ b/pkgs/development/libraries/pcre/default.nix
@@ -7,14 +7,11 @@ with lib;
 
 assert elem variant [ null "cpp" "pcre16" "pcre32" ];
 
-let
+stdenv.mkDerivation rec {
+  pname = "pcre"
+    + lib.optionalString (variant == "cpp") "-cpp"
+    + lib.optionalString (variant != "cpp" && variant != null) variant;
   version = "8.44";
-  pname = if (variant == null) then "pcre"
-    else  if (variant == "cpp") then "pcre-cpp"
-    else  variant;
-
-in stdenv.mkDerivation {
-  name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/pcre/pcre/${version}/pcre-${version}.tar.bz2";
@@ -43,8 +40,7 @@ in stdenv.mkDerivation {
 
   postFixup = ''
     moveToOutput bin/pcre-config "$dev"
-  ''
-    + optionalString (variant != null) ''
+  '' + optionalString (variant != null) ''
     ln -sf -t "$out/lib/" '${pcre.out}'/lib/libpcre{,posix}.{so.*.*.*,*dylib}
   '';
 
@@ -62,5 +58,6 @@ in stdenv.mkDerivation {
     '';
 
     platforms = platforms.all;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/libraries/physics/apfel/default.nix b/pkgs/development/libraries/physics/apfel/default.nix
index b0fff0c92ba5d..9697133a70eeb 100644
--- a/pkgs/development/libraries/physics/apfel/default.nix
+++ b/pkgs/development/libraries/physics/apfel/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, gfortran, lhapdf, python2, zlib }:
+{ lib, stdenv, fetchFromGitHub, gfortran, lhapdf, python3, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "apfel";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-szEtSC/NouYlHSjVoX9Hoh7yQ0W82rVccYEF1L2tXoU=";
   };
 
-  buildInputs = [ gfortran lhapdf python2 zlib ];
+  buildInputs = [ gfortran lhapdf python3 zlib ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/physics/cernlib/default.nix b/pkgs/development/libraries/physics/cernlib/default.nix
index b2656f1cc999e..7028c44b434bf 100644
--- a/pkgs/development/libraries/physics/cernlib/default.nix
+++ b/pkgs/development/libraries/physics/cernlib/default.nix
@@ -19,15 +19,23 @@ stdenv.mkDerivation rec {
   patches = [ ./patch.patch ./0001-Use-strerror-rather-than-sys_errlist-to-fix-compilat.patch ];
 
   postPatch = ''
+    echo 'InstallBinSubdirs(packlib scripts)' >> 2006/src/Imakefile
     substituteInPlace 2006/src/config/site.def \
       --replace "# define MakeCmd gmake" "# define MakeCmd make"
     substituteInPlace 2006/src/config/lnxLib.rules \
       --replace "# lib" "// lib"
+
+    substituteInPlace 2006/src/config/linux.cf \
+      --replace "# ifdef Hasgfortran" "# if 1" \
+      --replace "# define CcCmd			gcc4" "# define CcCmd			gcc"
+    substituteInPlace 2006/src/scripts/cernlib \
+      --replace "-lnsl" ""
+
     # binutils 2.37 fix
     substituteInPlace 2006/src/config/Imake.tmpl --replace "clq" "cq"
   '';
 
-  configurePhase = ''
+  preConfigure = ''
     export CERN=`pwd`
     export CERN_LEVEL=${version}
     export CERN_ROOT=$CERN/$CERN_LEVEL
@@ -43,32 +51,39 @@ stdenv.mkDerivation rec {
     "-fallow-argument-mismatch"
   ];
 
+  NIX_CFLAGS = [ "-Wno-return-type" ];
+
   makeFlags = [
     "FORTRANOPTIONS=$(FFLAGS)"
+    "CCOPTIONS=$(NIX_CFLAGS)"
   ];
 
-  buildPhase = ''
-    cd $CERN_ROOT
-    mkdir -p build bin lib
+  configurePhase = ''
+    runHook preConfigure
 
+    cd $CERN_ROOT
+    mkdir -p build
     cd $CERN_ROOT/build
     $CVSCOSRC/config/imake_boot
+
+    runHook postConfigure
+  '';
+
+  preBuild = ''
     make -j $NIX_BUILD_CORES $makeFlags bin/kuipc
     make -j $NIX_BUILD_CORES $makeFlags scripts/Makefile
     pushd scripts
-    make -j $NIX_BUILD_CORES $makeFlags install.bin
+    make -j $NIX_BUILD_CORES $makeFlags bin/cernlib
     popd
-    make -j $NIX_BUILD_CORES $makeFlags
   '';
 
-  installPhase = ''
-    mkdir "$out"
-    cp -r "$CERN_ROOT/bin" "$out"
-    cp -r "$CERN_ROOT/lib" "$out"
-    mkdir "$out/$CERN_LEVEL"
-    ln -s "$out/bin" "$out/$CERN_LEVEL/bin"
-    ln -s "$out/lib" "$out/$CERN_LEVEL/lib"
-  '';
+  installTargets = [ "install.bin" "install.lib" "install.include" ];
+  installFlags = [
+    "CERN_BINDIR=${placeholder "out"}/bin"
+    "CERN_INCLUDEDIR=${placeholder "out"}/include"
+    "CERN_LIBDIR=${placeholder "out"}/lib"
+    "CERN_SHLIBDIR=${placeholder "out"}/libexec"
+  ];
 
   setupHook = ./setup-hook.sh;
 
diff --git a/pkgs/development/libraries/physics/geant4/datasets.nix b/pkgs/development/libraries/physics/geant4/datasets.nix
index 4c6906c9c2e35..e9b7f54e2a487 100644
--- a/pkgs/development/libraries/physics/geant4/datasets.nix
+++ b/pkgs/development/libraries/physics/geant4/datasets.nix
@@ -36,84 +36,84 @@ in
     {
       name = "G4NDL";
       version = "4.6";
-      sha256 = "022l2jjhi57frfdv9nk6s6q23gmr9zkix06fmni8gf0gmvr7qa4x";
+      sha256 = "sha256-nSh88q4PuIeirc6AHudPub4hsNFm2rSby+6UCKUUVAg=";
       envvar = "NEUTRONHP";
     }
 
     {
       name = "G4EMLOW";
-      version = "7.13";
-      sha256 = "0scczd4ismvd4g3vfshbvwv92bzkdjz0ma7y21n6qxxy96v9cj1p";
+      version = "8.0";
+      sha256 = "sha256-2Rmo5YOGiCV7kkimE5EOsqdjMFngMMi1DAosKtn9Kzs=";
       envvar = "LE";
     }
 
     {
       name = "G4PhotonEvaporation";
       version = "5.7";
-      sha256 = "1rg7fygfxx06h98ywlci6b0b9ih74q8diygr76c3vppxdzjl47kn";
+      sha256 = "sha256-dh5C5W/93j2YOfn52BAmB8a0wDKRUe5Rggb07p535+U=";
       envvar = "LEVELGAMMA";
     }
 
     {
       name = "G4RadioactiveDecay";
       version = "5.6";
-      sha256 = "1w8d9zzc4ss7sh1f8cxv5pmrx2b74p1y26377rw9hnlfkiy0g1iq";
+      sha256 = "sha256-OIYHfJyOWph4PmcY4cMlZ4me6y27M+QC1Edrwv5PDfE=";
       envvar = "RADIOACTIVE";
     }
 
     {
       name = "G4SAIDDATA";
       version = "2.0";
-      sha256 = "149fqy801n1pj2g6lcai2ziyvdz8cxdgbfarax6y8wdakgksh9hx";
+      sha256 = "sha256-HSao55uqceRNV1m59Vpn6Lft4xdRMWqekDfYAJDHLpE=";
       envvar = "SAIDXS";
     }
 
     {
       name = "G4PARTICLEXS";
-      version = "3.1.1";
-      sha256 = "1nmgy8w1s196php7inrkbsi0f690qa2dsyj9s1sp75mndkfpxhb6";
+      version = "4.0";
+      sha256 = "sha256-k4EDlwPD8rD9NqtJmTYqLItP+QgMMi+QtOMZKBEzypU=";
       envvar = "PARTICLEXS";
     }
 
     {
       name = "G4ABLA";
       version = "3.1";
-      sha256 = "1v97q28g1xqwnav0lwzwk7hc3b87yrmbvkgadf4bkwcbnm9b163n";
+      sha256 = "sha256-dpiwUrWL8bmIa+rNvWr2B63B4Jn8cwq2shz38JDAJ+0=";
       envvar = "ABLA";
     }
 
     {
       name = "G4INCL";
       version = "1.0";
-      sha256 = "0z9nqk125vvf4f19lhgb37jy60jf9zrjqg5zbxbd1wz93a162qbi";
+      sha256 = "sha256-cWFhghrp89BWX788LPNPTgLj5RnrQZqCI27vIsLENn0=";
       envvar = "INCL";
     }
 
     {
       name = "G4PII";
       version = "1.3";
-      sha256 = "09p92rk1sj837m6n6yd9k9a8gkh6bby2bfn6k0f3ix3m4s8as9b2";
+      sha256 = "sha256-YiWtkCZ19DgcmMa6JfxaBs6HVJqpeWNNPQNJHWYW6SY=";
       envvar = "PII";
     }
 
     {
       name = "G4ENSDFSTATE";
       version = "2.3";
-      sha256 = "00wjir59rrrlk0a12vi8rsnhyya71rdi1kmark9sp487hbhcai4l";
+      sha256 = "sha256-lETF4IIHkavTzKrOEFsOR3kPrc4obhEUmDTnnEqOkgM=";
       envvar = "ENSDFSTATE";
     }
 
     {
       name = "G4RealSurface";
       version = "2.2";
-      sha256 = "08382y1258ifs7nap6zaaazvabg72blr0dkqgwk32lrg07hdwm4r";
+      sha256 = "sha256-mVTe4AEvUzEmf3g2kOkS5y21v1Lqm6vs0S6iIoIXaCA=";
       envvar = "REALSURFACE";
     }
 
     {
       name = "G4TENDL";
-      version = "1.3.2";
-      sha256 = "0jdqmz3rz5a7yrq1mli6dj3bnmn73igf4fdxwfbl3rxywg38fa9v";
+      version = "1.4";
+      sha256 = "sha256-S3J0AgzItO1Wm4ku8YwuCI7c22tm850lWFzO4l2XIeA=";
       envvar = "PARTICLEHP";
     }
   ])
diff --git a/pkgs/development/libraries/physics/geant4/default.nix b/pkgs/development/libraries/physics/geant4/default.nix
index 8d2f2f1ef55dd..6f29b5909810c 100644
--- a/pkgs/development/libraries/physics/geant4/default.nix
+++ b/pkgs/development/libraries/physics/geant4/default.nix
@@ -49,24 +49,14 @@ let
 in
 
 stdenv.mkDerivation rec {
-  version = "10.7.1";
+  version = "11.0.0";
   pname = "geant4";
 
   src = fetchurl{
-    url = "https://geant4-data.web.cern.ch/geant4-data/releases/geant4.10.07.p01.tar.gz";
-    sha256 = "07if874aljizkjyp21qj6v193pmyifyfmwi5kg8jm71x79sn2laj";
+    url = "https://cern.ch/geant4-data/releases/geant4-v${version}.tar.gz";
+    sha256 = "sha256-PMin350/8ceiGmLS6zoQvhX2uxWNOTI78yEzScnvdbk=";
   };
 
-  boost_python_lib = "python${builtins.replaceStrings ["."] [""] python3.pythonVersion}";
-  postPatch = ''
-    # Fix for boost 1.67+
-    substituteInPlace environments/g4py/CMakeLists.txt \
-      --replace "REQUIRED python" \
-                "REQUIRED COMPONENTS $boost_python_lib"
-    substituteInPlace environments/g4py/G4PythonHelpers.cmake \
-      --replace "Boost::python" "Boost::$boost_python_lib"
-  '';
-
   cmakeFlags = [
     "-DGEANT4_INSTALL_DATA=OFF"
     "-DGEANT4_USE_GDML=${if enableGDML then "ON" else "OFF"}"
@@ -137,7 +127,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://www.geant4.org";
     license = licenses.g4sl;
-    maintainers = with maintainers; [ tmplt omnipotententity ];
+    maintainers = with maintainers; [ omnipotententity ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/physics/lhapdf/maintainer.sh b/pkgs/development/libraries/physics/lhapdf/maintainer.sh
index 92c225f90ccdf..6e263dcebfde7 100755
--- a/pkgs/development/libraries/physics/lhapdf/maintainer.sh
+++ b/pkgs/development/libraries/physics/lhapdf/maintainer.sh
@@ -7,7 +7,7 @@ set -xe
 BASE_URL="https://lhapdfsets.web.cern.ch/lhapdfsets/current/"
 
 for pdf_set in `curl -L $BASE_URL 2>/dev/null | "$SED" -e "s/.*<a href=\"\([^\"/]*.tar.gz\)\".*/\1/;tx;d;:x" | sort -u`; do
-	echo -n "    \"${pdf_set%.tar.gz}\" = \""
-	nix-prefetch-url "${BASE_URL}${pdf_set}" 2>/dev/null | tr -d '\n'
-	echo "\";"
+    echo -n "    \"${pdf_set%.tar.gz}\" = \""
+    nix-prefetch-url "${BASE_URL}${pdf_set}" 2>/dev/null | tr -d '\n'
+    echo "\";"
 done
diff --git a/pkgs/development/libraries/physics/yoda/default.nix b/pkgs/development/libraries/physics/yoda/default.nix
index e23f7aaadd99f..a2bb09b58a27c 100644
--- a/pkgs/development/libraries/physics/yoda/default.nix
+++ b/pkgs/development/libraries/physics/yoda/default.nix
@@ -2,22 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yoda";
-  version = "1.9.2";
+  version = "1.9.4";
 
   src = fetchurl {
     url = "https://www.hepforge.org/archive/yoda/YODA-${version}.tar.bz2";
-    hash = "sha256-zb7j7fBMv2brJ+gUMMDTKFEJDC2embENe3wXdx0VTOA=";
+    hash = "sha256-KifrhuZH11szennCDC2sJeHxO9JZJbnJWuKK3JN5NwU=";
   };
 
-  patches = [
-    # Prevent ROOT from initializing X11 or Cocoa (helps with sandboxing)
-    (fetchpatch {
-      url = "https://gitlab.com/hepcedar/yoda/-/commit/36c035f4f0385dec58702f09564ca66a14ca2c3e.diff";
-      sha256 = "sha256-afB+y33TVNJtxY5As18EcutJEGDE4g0UzMxzA+YgICk=";
-      excludes = [ "ChangeLog" ];
-    })
-  ];
-
   nativeBuildInputs = with python.pkgs; [ cython makeWrapper ];
   buildInputs = [ python ]
     ++ (with python.pkgs; [ numpy matplotlib ])
@@ -41,11 +32,10 @@ stdenv.mkDerivation rec {
 
   doInstallCheck = true;
   installCheckTarget = "check";
-  enableParallelChecking = false; # testreader consumes output of testwriter
 
   meta = {
     description = "Provides small set of data analysis (specifically histogramming) classes";
-    license = lib.licenses.gpl3;
+    license = lib.licenses.gpl3Only;
     homepage = "https://yoda.hepforge.org";
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ veprbl ];
diff --git a/pkgs/development/libraries/pipewire/0.2.nix b/pkgs/development/libraries/pipewire/0.2.nix
index 276ad6b8c4923..d21ceafbcf9dc 100644
--- a/pkgs/development/libraries/pipewire/0.2.nix
+++ b/pkgs/development/libraries/pipewire/0.2.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, doxygen, graphviz, valgrind
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, doxygen, graphviz
 , glib, dbus, gst_all_1, alsa-lib, ffmpeg_4, libjack2, udev, libva, xorg
 , sbc, SDL2, makeFontsConf
 }:
@@ -21,7 +21,7 @@ in stdenv.mkDerivation rec {
   outputs = [ "out" "lib" "dev" "doc" ];
 
   nativeBuildInputs = [
-    meson ninja pkg-config doxygen graphviz valgrind
+    meson ninja pkg-config doxygen graphviz
   ];
   buildInputs = [
     glib dbus gst_all_1.gst-plugins-base gst_all_1.gstreamer
diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix
index cf02589792f3d..03125f225b854 100644
--- a/pkgs/development/libraries/pipewire/default.nix
+++ b/pkgs/development/libraries/pipewire/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , lib
+, buildPackages
 , fetchFromGitLab
 , removeReferencesTo
 , python3
@@ -10,7 +11,6 @@
 , docutils
 , doxygen
 , graphviz
-, valgrind
 , glib
 , dbus
 , alsa-lib
@@ -28,28 +28,30 @@
 , makeFontsConf
 , callPackage
 , nixosTests
+, withValgrind ? lib.meta.availableOn stdenv.hostPlatform valgrind
+, valgrind
 , withMediaSession ? true
 , libcameraSupport ? true
 , libcamera
 , libdrm
 , gstreamerSupport ? true
-, gst_all_1 ? null
+, gst_all_1
 , ffmpegSupport ? true
-, ffmpeg ? null
+, ffmpeg
 , bluezSupport ? true
-, bluez ? null
-, sbc ? null
-, libfreeaptx ? null
-, ldacbt ? null
-, fdk_aac ? null
+, bluez
+, sbc
+, libfreeaptx
+, ldacbt
+, fdk_aac
 , nativeHspSupport ? true
 , nativeHfpSupport ? true
 , ofonoSupport ? true
 , hsphfpdSupport ? true
 , pulseTunnelSupport ? true
-, libpulseaudio ? null
+, libpulseaudio
 , zeroconfSupport ? true
-, avahi ? null
+, avahi
 }:
 
 let
@@ -121,7 +123,6 @@ let
       vulkan-headers
       vulkan-loader
       webrtc-audio-processing
-      valgrind
       SDL2
       systemd
     ] ++ lib.optionals gstreamerSupport [ gst_all_1.gst-plugins-base gst_all_1.gstreamer ]
@@ -131,6 +132,9 @@ let
     ++ lib.optional pulseTunnelSupport libpulseaudio
     ++ lib.optional zeroconfSupport avahi;
 
+    # Valgrind binary is required for running one optional test.
+    checkInputs = lib.optional withValgrind valgrind;
+
     mesonFlags = [
       "-Ddocs=enabled"
       "-Dudevrulesdir=lib/udev/rules.d"
@@ -168,12 +172,17 @@ let
 
     postInstall = ''
       mkdir $out/nix-support
-      pushd $lib/share/pipewire
-      for f in *.conf; do
-        echo "Generating JSON from $f"
-        $out/bin/spa-json-dump "$f" > "$out/nix-support/$f.json"
-      done
-      popd
+      ${if (stdenv.hostPlatform == stdenv.buildPlatform) then ''
+        pushd $lib/share/pipewire
+        for f in *.conf; do
+          echo "Generating JSON from $f"
+
+          $out/bin/spa-json-dump "$f" > "$out/nix-support/$f.json"
+        done
+        popd
+      '' else ''
+        cp ${buildPackages.pipewire}/nix-support/*.json "$out/nix-support"
+      ''}
 
       moveToOutput "share/systemd/user/pipewire-pulse.*" "$pulse"
       moveToOutput "lib/systemd/user/pipewire-pulse.*" "$pulse"
diff --git a/pkgs/development/libraries/portaudio/default.nix b/pkgs/development/libraries/portaudio/default.nix
index b0ab32c9e392c..c1c76a900175a 100644
--- a/pkgs/development/libraries/portaudio/default.nix
+++ b/pkgs/development/libraries/portaudio/default.nix
@@ -11,7 +11,7 @@
 
 stdenv.mkDerivation rec {
   pname = "portaudio";
-  version =  "190700_20210406";
+  version = "190700_20210406";
 
   src = fetchurl {
     url = "http://files.portaudio.com/archives/pa_stable_v${version}.tgz";
@@ -23,9 +23,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [ "--disable-mac-universal" "--enable-cxx" ];
 
-  postConfigure = ''
-    substituteInPlace Makefile --replace "-Werror" ""
-  '';
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=nullability-inferred-on-nested-type -Wno-error=nullability-completeness-on-arrays -Wno-error=implicit-const-int-float-conversion";
 
   propagatedBuildInputs = lib.optionals stdenv.isDarwin [ AudioUnit AudioToolbox CoreAudio CoreServices Carbon ];
 
diff --git a/pkgs/development/libraries/ptex/default.nix b/pkgs/development/libraries/ptex/default.nix
index 3f62d672ea978..d0bdb95fecc2d 100644
--- a/pkgs/development/libraries/ptex/default.nix
+++ b/pkgs/development/libraries/ptex/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec
 {
   pname = "ptex";
-  version = "2.3.2";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "wdas";
     repo = "ptex";
     rev = "v${version}";
-    sha256 = "1c3pdqszn4y3d86qzng8b0hqdrchnl39adq5ab30wfnrgl2hnm4z";
+    sha256 = "sha256-TuwgZJHvQUqBEFeZYvzpi+tmXB97SkOairYnuUahtSA=";
   };
 
   outputs = [ "bin" "dev" "out" "lib" ];
diff --git a/pkgs/development/libraries/qca-qt5/default.nix b/pkgs/development/libraries/qca-qt5/default.nix
index f8159417378c0..9bd57e7ae97ba 100644
--- a/pkgs/development/libraries/qca-qt5/default.nix
+++ b/pkgs/development/libraries/qca-qt5/default.nix
@@ -9,6 +9,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-wThREJq+/EYjNwmJ+uOnRb9rGss8KhOolYU5gj6XTks=";
   };
 
+  patches = [
+    # Pull upstream fix for gcc-11
+    (fetchurl {
+      url = "https://github.com/KDE/qca/commit/32275f1a74c161d2fed8c056b2dd9555687a22f2.patch";
+      sha256 = "sha256-SUH2eyzP2vH/ZjYcX8ybwiqhoTm/QjuEpTKjb2iH1No=";
+    })
+  ];
+
   buildInputs = [ openssl qtbase ];
   nativeBuildInputs = [ cmake pkg-config ];
 
diff --git a/pkgs/development/libraries/qgnomeplatform/default.nix b/pkgs/development/libraries/qgnomeplatform/default.nix
index bfb1859ba6553..b8115331be77d 100644
--- a/pkgs/development/libraries/qgnomeplatform/default.nix
+++ b/pkgs/development/libraries/qgnomeplatform/default.nix
@@ -15,13 +15,13 @@
 
 mkDerivation rec {
   pname = "qgnomeplatform";
-  version = "0.8.0";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "FedoraQt";
     repo = "QGnomePlatform";
     rev = version;
-    sha256 = "C/n8i5j0UWfxhP10c4j89U+LrpPozXnam4fIPYMXZAA=";
+    sha256 = "sha256-950VEcxhJeBPSQToC8KpBx/KSneARN6Y8X7CAuFyRjo=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/qrencode/default.nix b/pkgs/development/libraries/qrencode/default.nix
index c005b835a9322..abab060bf2cd0 100644
--- a/pkgs/development/libraries/qrencode/default.nix
+++ b/pkgs/development/libraries/qrencode/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     '';
 
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ adolfogc yegortimoshenko ];
+    maintainers = with maintainers; [ adolfogc yana ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/qt-4.x/4.8/default.nix b/pkgs/development/libraries/qt-4.x/4.8/default.nix
index 5856e0b84b5c6..96d2abe5a6ea4 100644
--- a/pkgs/development/libraries/qt-4.x/4.8/default.nix
+++ b/pkgs/development/libraries/qt-4.x/4.8/default.nix
@@ -97,6 +97,16 @@ stdenv.mkDerivation rec {
           + "0d4a3dd61ccb156dee556c214dbe91c04d44a717/debian/patches/gcc9-qforeach.patch";
         sha256 = "0dzn6qxrgxb75rvck9kmy5gspawdn970wsjw56026dhkih8cp3pg";
       })
+
+      # Pull upstream fix for gcc-11 support.
+      (fetchpatch {
+        name = "gcc11-ptr-cmp.patch";
+        url = "https://github.com/qt/qttools/commit/7138c963f9d1258bc1b49cb4d63c3e2b7d0ccfda.patch";
+        sha256 = "1a9g05r267c94qpw3ssb6k4lci200vla3vm5hri1nna6xwdsmrhc";
+        # "src/" -> "tools/"
+        stripLen = 2;
+        extraPrefix = "tools/";
+      })
     ]
     ++ lib.optional gtkStyle (substituteAll ({
         src = ./dlopen-gtkstyle.diff;
@@ -232,7 +242,7 @@ stdenv.mkDerivation rec {
     homepage    = "https://qt-project.org/";
     description = "A cross-platform application framework for C++";
     license     = lib.licenses.lgpl21Plus; # or gpl3
-    maintainers = with lib.maintainers; [ orivej lovek323 phreedom sander ];
+    maintainers = with lib.maintainers; [ orivej lovek323 sander ];
     platforms   = lib.platforms.unix;
     badPlatforms = [ "x86_64-darwin" ];
   };
diff --git a/pkgs/development/libraries/qt-5/5.12/default.nix b/pkgs/development/libraries/qt-5/5.12/default.nix
index 0f5eb19474e40..c400620466588 100644
--- a/pkgs/development/libraries/qt-5/5.12/default.nix
+++ b/pkgs/development/libraries/qt-5/5.12/default.nix
@@ -18,7 +18,7 @@ top-level attribute to `top-level/all-packages.nix`.
 , lib, stdenv, fetchurl, fetchpatch, fetchFromGitHub, makeSetupHook, makeWrapper
 , bison, cups ? null, harfbuzz, libGL, perl
 , gstreamer, gst-plugins-base, gtk3, dconf
-, llvmPackages_5, darwin
+, darwin
 
   # options
 , developerBuild ? false
@@ -30,8 +30,6 @@ let
 
   qtCompatVersion = srcs.qtbase.version;
 
-  stdenvActual = if stdenv.cc.isClang then llvmPackages_5.stdenv else stdenv;
-
   mirror = "https://download.qt.io";
   srcs = import ./srcs.nix { inherit fetchurl; inherit mirror; } // {
     # Community port of the now unmaintained upstream qtwebkit.
@@ -70,6 +68,17 @@ let
       # Ensure -I${includedir} is added to Cflags in pkg-config files.
       # See https://github.com/NixOS/nixpkgs/issues/52457
       ./qtbase.patch.d/0014-qtbase-pkg-config.patch
+
+      # Make Qt applications work on macOS Big Sur even if they're
+      # built with an older version of the macOS SDK (<10.14). This
+      # issue is fixed in 5.12.11, but it requires macOS SDK 10.13 to
+      # build. See https://bugreports.qt.io/browse/QTBUG-87014 for
+      # more info.
+      (fetchpatch {
+        name = "big_sur_layer_backed_views.patch";
+        url = "https://codereview.qt-project.org/gitweb?p=qt/qtbase.git;a=patch;h=c5d904639dbd690a36306e2b455610029704d821";
+        sha256 = "0crkw3j1iwdc1pbf5dhar0b4q3h5gs2q1sika8m12y02yk3ns697";
+      })
     ];
     qtdeclarative = [ ./qtdeclarative.patch ];
     qtlocation = [ ./qtlocation-gcc-9.patch ];
@@ -118,7 +127,7 @@ let
       mkDerivation =
         import ../mkDerivation.nix
         { inherit lib; inherit debug; wrapQtAppsHook = null; }
-        stdenvActual.mkDerivation;
+        stdenv.mkDerivation;
     }
     { inherit self srcs patches; };
 
@@ -133,7 +142,7 @@ let
         import ../mkDerivation.nix
         { inherit lib; inherit debug; inherit (self) wrapQtAppsHook; };
 
-      mkDerivation = mkDerivationWith stdenvActual.mkDerivation;
+      mkDerivation = mkDerivationWith stdenv.mkDerivation;
 
       qtbase = callPackage ../modules/qtbase.nix {
         inherit (srcs.qtbase) src version;
@@ -151,7 +160,9 @@ let
       qtconnectivity = callPackage ../modules/qtconnectivity.nix {};
       qtdeclarative = callPackage ../modules/qtdeclarative.nix {};
       qtdoc = callPackage ../modules/qtdoc.nix {};
-      qtgamepad = callPackage ../modules/qtgamepad.nix {};
+      qtgamepad = callPackage ../modules/qtgamepad.nix {
+        inherit (darwin.apple_sdk.frameworks) GameController;
+      };
       qtgraphicaleffects = callPackage ../modules/qtgraphicaleffects.nix {};
       qtimageformats = callPackage ../modules/qtimageformats.nix {};
       qtlocation = callPackage ../modules/qtlocation.nix {};
diff --git a/pkgs/development/libraries/qt-5/5.14/default.nix b/pkgs/development/libraries/qt-5/5.14/default.nix
index c12a20dd4daf2..ddd9d76df4ea5 100644
--- a/pkgs/development/libraries/qt-5/5.14/default.nix
+++ b/pkgs/development/libraries/qt-5/5.14/default.nix
@@ -18,7 +18,7 @@ top-level attribute to `top-level/all-packages.nix`.
 , lib, stdenv, fetchurl, fetchpatch, fetchFromGitHub, makeSetupHook, makeWrapper
 , bison, cups ? null, harfbuzz, libGL, perl
 , gstreamer, gst-plugins-base, gtk3, dconf
-, llvmPackages_5, darwin
+, darwin
 
   # options
 , developerBuild ? false
@@ -30,8 +30,6 @@ let
 
   qtCompatVersion = srcs.qtbase.version;
 
-  stdenvActual = if stdenv.cc.isClang then llvmPackages_5.stdenv else stdenv;
-
   mirror = "https://download.qt.io";
   srcs = import ./srcs.nix { inherit fetchurl; inherit mirror; } // {
     # qtwebkit does not have an official release tarball on the qt mirror and is
@@ -130,7 +128,7 @@ let
       mkDerivation =
         import ../mkDerivation.nix
         { inherit lib; inherit debug; wrapQtAppsHook = null; }
-        stdenvActual.mkDerivation;
+        stdenv.mkDerivation;
     }
     { inherit self srcs patches; };
 
@@ -145,7 +143,7 @@ let
         import ../mkDerivation.nix
         { inherit lib; inherit debug; inherit (self) wrapQtAppsHook; };
 
-      mkDerivation = mkDerivationWith stdenvActual.mkDerivation;
+      mkDerivation = mkDerivationWith stdenv.mkDerivation;
 
       qtbase = callPackage ../modules/qtbase.nix {
         inherit (srcs.qtbase) src version;
@@ -163,6 +161,9 @@ let
       qtconnectivity = callPackage ../modules/qtconnectivity.nix {};
       qtdeclarative = callPackage ../modules/qtdeclarative.nix {};
       qtdoc = callPackage ../modules/qtdoc.nix {};
+      qtgamepad = callPackage ../modules/qtgamepad.nix {
+        inherit (darwin.apple_sdk.frameworks) GameController;
+      };
       qtgraphicaleffects = callPackage ../modules/qtgraphicaleffects.nix {};
       qtimageformats = callPackage ../modules/qtimageformats.nix {};
       qtlocation = callPackage ../modules/qtlocation.nix {};
diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix
index 183311c5f18ab..7c4845fd84a6d 100644
--- a/pkgs/development/libraries/qt-5/5.15/default.nix
+++ b/pkgs/development/libraries/qt-5/5.15/default.nix
@@ -11,7 +11,7 @@ Check for any minor version changes.
 , lib, stdenv, fetchurl, fetchgit, fetchpatch, fetchFromGitHub, makeSetupHook, makeWrapper
 , bison, cups ? null, harfbuzz, libGL, perl
 , gstreamer, gst-plugins-base, gtk3, dconf
-, llvmPackages_5, darwin
+, darwin
 
   # options
 , developerBuild ? false
@@ -25,8 +25,6 @@ let
 
   qtCompatVersion = srcs.qtbase.version;
 
-  stdenvActual = if stdenv.cc.isClang then llvmPackages_5.stdenv else stdenv;
-
   patches = {
     qtbase = lib.optionals stdenv.isDarwin [
       ./qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
@@ -58,14 +56,7 @@ let
     qtdeclarative = [ ./qtdeclarative.patch ];
     qtscript = [ ./qtscript.patch ];
     qtserialport = [ ./qtserialport.patch ];
-    qtwebengine = [
-      # Fix invisible fonts with glibc 2.33: https://github.com/NixOS/nixpkgs/issues/131074
-      (fetchpatch {
-        url = "https://src.fedoraproject.org/rpms/qt5-qtwebengine/raw/d122c011631137b79455850c363676c655cf9e09/f/qtwebengine-everywhere-src-5.15.5-%231904652.patch";
-        name = "qtwebengine-everywhere-src-5.15.5-_1904652.patch";
-        sha256 = "01q7hagq0ysii1jnrh5adm97vdm9cis592xr6im7accyw6hgcn7b";
-      })
-    ] ++ lib.optionals stdenv.isDarwin [
+    qtwebengine = lib.optionals stdenv.isDarwin [
       ./qtwebengine-darwin-no-platform-check.patch
       ./qtwebengine-mac-dont-set-dsymutil-path.patch
     ];
@@ -99,7 +90,7 @@ let
       mkDerivation =
         import ../mkDerivation.nix
         { inherit lib; inherit debug; wrapQtAppsHook = null; }
-        stdenvActual.mkDerivation;
+        stdenv.mkDerivation;
     }
     { inherit self srcs patches; };
 
@@ -114,7 +105,7 @@ let
         import ../mkDerivation.nix
         { inherit lib; inherit debug; inherit (self) wrapQtAppsHook; };
 
-      mkDerivation = mkDerivationWith stdenvActual.mkDerivation;
+      mkDerivation = mkDerivationWith stdenv.mkDerivation;
 
       qtbase = callPackage ../modules/qtbase.nix {
         inherit (srcs.qtbase) src version;
@@ -132,7 +123,9 @@ let
       qtconnectivity = callPackage ../modules/qtconnectivity.nix {};
       qtdeclarative = callPackage ../modules/qtdeclarative.nix {};
       qtdoc = callPackage ../modules/qtdoc.nix {};
-      qtgamepad = callPackage ../modules/qtgamepad.nix {};
+      qtgamepad = callPackage ../modules/qtgamepad.nix {
+        inherit (darwin.apple_sdk.frameworks) GameController;
+      };
       qtgraphicaleffects = callPackage ../modules/qtgraphicaleffects.nix {};
       qtimageformats = callPackage ../modules/qtimageformats.nix {};
       qtlocation = callPackage ../modules/qtlocation.nix {};
diff --git a/pkgs/development/libraries/qt-5/5.15/qtwebkit-darwin-no-readline.patch b/pkgs/development/libraries/qt-5/5.15/qtwebkit-darwin-no-readline.patch
index 26d189d860195..4871032f6f2c7 100644
--- a/pkgs/development/libraries/qt-5/5.15/qtwebkit-darwin-no-readline.patch
+++ b/pkgs/development/libraries/qt-5/5.15/qtwebkit-darwin-no-readline.patch
@@ -28,18 +28,3 @@ diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
  #define HAVE_SYS_TIMEB_H 1
  
  #if !PLATFORM(GTK) && !PLATFORM(QT)
-diff --git a/Source/WTF/wtf/PlatformMac.cmake b/Source/WTF/wtf/PlatformMac.cmake
---- a/Source/WTF/wtf/PlatformMac.cmake
-+++ b/Source/WTF/wtf/PlatformMac.cmake
-@@ -2,11 +2,9 @@ set(WTF_LIBRARY_TYPE SHARED)
- 
- find_library(COCOA_LIBRARY Cocoa)
- find_library(COREFOUNDATION_LIBRARY CoreFoundation)
--find_library(READLINE_LIBRARY Readline)
- list(APPEND WTF_LIBRARIES
-     ${COREFOUNDATION_LIBRARY}
-     ${COCOA_LIBRARY}
--    ${READLINE_LIBRARY}
-     libicucore.dylib
- )
- 
diff --git a/pkgs/development/libraries/qt-5/5.15/srcs.nix b/pkgs/development/libraries/qt-5/5.15/srcs.nix
index e254912b6009f..21b4f55a3d5df 100644
--- a/pkgs/development/libraries/qt-5/5.15/srcs.nix
+++ b/pkgs/development/libraries/qt-5/5.15/srcs.nix
@@ -38,15 +38,15 @@ lib.mapAttrs mk (lib.importJSON ./srcs-generated.json)
 
   qtwebengine =
     let
-      branchName = "5.15.6";
+      branchName = "5.15.7";
       rev = "v${branchName}-lts";
     in
     {
-      version = "${branchName}-${lib.substring 0 7 rev}";
+      version = branchName;
 
       src = fetchgit {
         url = "https://github.com/qt/qtwebengine.git";
-        sha256 = "17bw9yf04zmr9ck5jkrd435c8b03zpf937vn2nwgsr8p78wkg3kr";
+        sha256 = "fssBN/CDgXAuiNj14MPeIDI15ZDRBGuF7wxSXns9exU=";
         inherit rev branchName;
         fetchSubmodules = true;
         leaveDotGit = true;
diff --git a/pkgs/development/libraries/qt-5/modules/qtbase.nix b/pkgs/development/libraries/qt-5/modules/qtbase.nix
index 44f08699824fb..5e2bb41c40f1d 100644
--- a/pkgs/development/libraries/qt-5/modules/qtbase.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtbase.nix
@@ -184,6 +184,10 @@ stdenv.mkDerivation {
     ''-DNIXPKGS_LIBXCURSOR="${libXcursor.out}/lib/libXcursor"''
   ] ++ lib.optional libGLSupported ''-DNIXPKGS_MESA_GL="${libGL.out}/lib/libGL"''
     ++ lib.optional stdenv.isLinux "-DUSE_X11"
+    ++ lib.optionals (stdenv.hostPlatform.system == "x86_64-darwin") [
+      # ignore "is only available on macOS 10.12.2 or newer" in obj-c code
+      "-Wno-error=unguarded-availability"
+    ]
     ++ lib.optionals withGtk3 [
          ''-DNIXPKGS_QGTK3_XDG_DATA_DIRS="${gtk3}/share/gsettings-schemas/${gtk3.name}"''
          ''-DNIXPKGS_QGTK3_GIO_EXTRA_MODULES="${dconf.lib}/lib/gio/modules"''
@@ -358,7 +362,12 @@ stdenv.mkDerivation {
     license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ];
     maintainers = with maintainers; [ qknight ttuegel periklis bkchr ];
     platforms = platforms.unix;
-    broken = stdenv.isDarwin && (compareVersion "5.9.0" < 0);
+    # Qt5 is broken on aarch64-darwin
+    # the build ends up with the following error:
+    #   error: unknown target CPU 'armv8.3-a+crypto+sha2+aes+crc+fp16+lse+simd+ras+rdm+rcpc'
+    #   note: valid target CPU values are: nocona, core2, penryn, ..., znver1, znver2, x86-64
+    # it seems the qmake/cmake passes x86_64 as preferred architecture somewhere
+    broken = stdenv.isDarwin && stdenv.isAarch64;
   };
 
 }
diff --git a/pkgs/development/libraries/qt-5/modules/qtgamepad.nix b/pkgs/development/libraries/qt-5/modules/qtgamepad.nix
index 2e266060a3411..147fb0745dbdc 100644
--- a/pkgs/development/libraries/qt-5/modules/qtgamepad.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtgamepad.nix
@@ -1,8 +1,9 @@
-{ qtModule, qtbase, qtdeclarative, pkg-config }:
+{ lib, stdenv, qtModule, qtbase, qtdeclarative, GameController, pkg-config }:
 
 qtModule {
   pname = "qtgamepad";
-  qtInputs = [ qtbase qtdeclarative ];
+  qtInputs = [ qtbase qtdeclarative ]
+    ++ lib.optional stdenv.isDarwin GameController;
   buildInputs = [ ];
   nativeBuildInputs = [ pkg-config ];
   outputs = [ "out" "dev" "bin" ];
diff --git a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
index b49efa600fa5d..68945625f5b4d 100644
--- a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
@@ -110,6 +110,8 @@ qtModule {
     # it fails when compiled with -march=sandybridge https://github.com/NixOS/nixpkgs/pull/59148#discussion_r276696940
     # TODO: investigate and fix properly
     "-march=westmere"
+  ] ++ lib.optionals stdenv.cc.isClang [
+    "-Wno-elaborated-enum-base"
   ] ++ lib.optionals stdenv.isDarwin [
     "-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_12"
     "-DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_12"
@@ -239,6 +241,10 @@ qtModule {
     platforms = platforms.unix;
     # This build takes a long time; particularly on slow architectures
     timeout = 24 * 3600;
-    broken = stdenv.isDarwin && (lib.versionAtLeast qtCompatVersion "5.14"); # requires a newer SDK
+    # we are still stuck with MacOS SDK 10.12 on x86_64-darwin
+    # and qtwebengine 5.14+ requires at least SDK 10.14
+    # (qtwebengine 5.12 is fine with SDK 10.12)
+    # on aarch64-darwin we are already at MacOS SDK 11.0
+    broken = stdenv.isDarwin && stdenv.isx86_64 && (lib.versionAtLeast qtCompatVersion "5.14");
   };
 }
diff --git a/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix b/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix
index c7a8a400a9813..72413b372f004 100644
--- a/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix
+++ b/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qtstyleplugin-kvantum-qt4";
-  version = "0.20.1";
+  version = "0.20.2";
 
   src = fetchFromGitHub {
     owner = "tsujan";
     repo = "Kvantum";
     rev = "V${version}";
-    sha256 = "sha256-sY2slI9ZVuEurBIEaJMxUiKiUNXx+h7UEwEZKKr7R2Y=";
+    sha256 = "sha256-aIhLrGKb8iPl8N483+EOaCrTua96Qvl2lc2UXRiqvJA=";
   };
 
   nativeBuildInputs = [ qmake4Hook ];
diff --git a/pkgs/development/libraries/qtstyleplugin-kvantum/default.nix b/pkgs/development/libraries/qtstyleplugin-kvantum/default.nix
index f25173c41c96a..909903c2c34ce 100644
--- a/pkgs/development/libraries/qtstyleplugin-kvantum/default.nix
+++ b/pkgs/development/libraries/qtstyleplugin-kvantum/default.nix
@@ -4,18 +4,19 @@
 
 stdenv.mkDerivation rec {
   pname = "qtstyleplugin-kvantum";
-  version = "0.20.2";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "tsujan";
     repo = "Kvantum";
     rev = "V${version}";
-    sha256 = "145wm8c5v56djmvgjhksmywx6ak81vhxyg6yy3jj7wlvcan4p238";
+    sha256 = "0yvxj7r9z890nfq5cadw7ys144c2mnvaplvx4v4ndv7238b741l8";
   };
 
   nativeBuildInputs = [
     qmake qttools wrapQtAppsHook
   ];
+
   buildInputs = [
     qtbase qtsvg qtx11extras kwindowsystem libX11 libXext
   ];
diff --git a/pkgs/development/libraries/qtutilities/default.nix b/pkgs/development/libraries/qtutilities/default.nix
index 260e612840407..6027e5b038549 100644
--- a/pkgs/development/libraries/qtutilities/default.nix
+++ b/pkgs/development/libraries/qtutilities/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qtutilities";
-  version = "6.5.1";
+  version = "6.5.3";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-J5yPezXU+AIvmLTBs4lWU35DvfP+0EuuhOJpxAzwRtw=";
+    sha256 = "sha256-P1vAmH1cF5qQxpa4AOIOyK8ogLZgyXt8jaxaHwE9qck=";
   };
 
   buildInputs = [ qtbase cpp-utilities ];
diff --git a/pkgs/development/libraries/quazip/default.nix b/pkgs/development/libraries/quazip/default.nix
index 4184f3276c06e..e670d6bd916da 100644
--- a/pkgs/development/libraries/quazip/default.nix
+++ b/pkgs/development/libraries/quazip/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "quazip";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchFromGitHub {
     owner = "stachenov";
     repo = pname;
     rev = "v${version}";
-    sha256 = "06srglrj6jvy5ngmidlgx03i0d5w91yhi7sf846wql00v8rvhc5h";
+    sha256 = "sha256-fsEMmbatTB1s8JnUYE18/vj2FZ2b40zHoOlL2OVplLc=";
   };
 
   buildInputs = [ zlib qtbase ];
diff --git a/pkgs/development/libraries/quictls/default.nix b/pkgs/development/libraries/quictls/default.nix
new file mode 100644
index 0000000000000..a91015e1b8a7a
--- /dev/null
+++ b/pkgs/development/libraries/quictls/default.nix
@@ -0,0 +1,170 @@
+{ lib, stdenv, fetchurl, buildPackages, perl, coreutils, fetchFromGitHub
+, withCryptodev ? false, cryptodev
+, enableSSL2 ? false
+, enableSSL3 ? false
+, static ? stdenv.hostPlatform.isStatic
+# Used to avoid cross compiling perl, for example, in darwin bootstrap tools.
+# This will cause c_rehash to refer to perl via the environment, but otherwise
+# will produce a perfectly functional openssl binary and library.
+, withPerl ? stdenv.hostPlatform == stdenv.buildPlatform
+}:
+
+assert (
+  lib.assertMsg (!withPerl -> stdenv.hostPlatform != stdenv.buildPlatform)
+  "withPerl should not be disabled unless cross compiling"
+);
+
+stdenv.mkDerivation rec {
+  pname = "quictls";
+  version = "3.0.0+quick_unstable-2021-11.02";
+
+  src = fetchFromGitHub {
+    owner = "quictls";
+    repo = "openssl";
+    rev = "62d4de00abfa82fc01efa2eba1982a86c4864f39";
+    sha256 = "11mi4bkkyy4qd2wml6p7xcsbps0mabk3bp537rp7n43qnhwyg1g3";
+  };
+
+  patches = [
+    ../openssl/3.0/nix-ssl-cert-file.patch
+
+    # openssl will only compile in KTLS if the current kernel supports it.
+    # This patch disables build-time detection.
+    ../openssl/3.0/openssl-disable-kernel-detection.patch
+
+    (if stdenv.hostPlatform.isDarwin
+      then ../openssl/use-etc-ssl-certs-darwin.patch
+      else ../openssl/use-etc-ssl-certs.patch)
+  ];
+
+  postPatch = ''
+    patchShebangs Configure
+  ''
+  # config is a configure script which is not installed.
+  + ''
+    substituteInPlace config --replace '/usr/bin/env' '${buildPackages.coreutils}/bin/env'
+  '' + lib.optionalString stdenv.hostPlatform.isMusl ''
+    substituteInPlace crypto/async/arch/async_posix.h \
+      --replace '!defined(__ANDROID__) && !defined(__OpenBSD__)' \
+                '!defined(__ANDROID__) && !defined(__OpenBSD__) && 0'
+  '';
+
+  outputs = [ "bin" "dev" "out" "man" "doc" ];
+  setOutputFlags = false;
+  separateDebugInfo =
+    !stdenv.hostPlatform.isDarwin &&
+    !(stdenv.hostPlatform.useLLVM or false) &&
+    stdenv.cc.isGNU;
+
+  nativeBuildInputs = [ perl ];
+  buildInputs = lib.optional withCryptodev cryptodev
+    # perl is included to allow the interpreter path fixup hook to set the
+    # correct interpreter in c_rehash.
+    ++ lib.optional withPerl perl;
+
+  # TODO(@Ericson2314): Improve with mass rebuild
+  configurePlatforms = [];
+  configureScript = {
+      armv5tel-linux = "./Configure linux-armv4 -march=armv5te";
+      armv6l-linux = "./Configure linux-armv4 -march=armv6";
+      armv7l-linux = "./Configure linux-armv4 -march=armv7-a";
+      x86_64-darwin  = "./Configure darwin64-x86_64-cc";
+      aarch64-darwin = "./Configure darwin64-arm64-cc";
+      x86_64-linux = "./Configure linux-x86_64";
+      x86_64-solaris = "./Configure solaris64-x86_64-gcc";
+      riscv64-linux = "./Configure linux64-riscv64";
+    }.${stdenv.hostPlatform.system} or (
+      if stdenv.hostPlatform == stdenv.buildPlatform
+        then "./config"
+      else if stdenv.hostPlatform.isBSD && stdenv.hostPlatform.isx86_64
+        then "./Configure BSD-x86_64"
+      else if stdenv.hostPlatform.isBSD && stdenv.hostPlatform.isx86_32
+        then "./Configure BSD-x86" + lib.optionalString (stdenv.hostPlatform.parsed.kernel.execFormat.name == "elf") "-elf"
+      else if stdenv.hostPlatform.isBSD
+        then "./Configure BSD-generic${toString stdenv.hostPlatform.parsed.cpu.bits}"
+      else if stdenv.hostPlatform.isMinGW
+        then "./Configure mingw${lib.optionalString
+                                   (stdenv.hostPlatform.parsed.cpu.bits != 32)
+                                   (toString stdenv.hostPlatform.parsed.cpu.bits)}"
+      else if stdenv.hostPlatform.isLinux
+        then "./Configure linux-generic${toString stdenv.hostPlatform.parsed.cpu.bits}"
+      else if stdenv.hostPlatform.isiOS
+        then "./Configure ios${toString stdenv.hostPlatform.parsed.cpu.bits}-cross"
+      else
+        throw "Not sure what configuration to use for ${stdenv.hostPlatform.config}"
+    );
+
+  # OpenSSL doesn't like the `--enable-static` / `--disable-shared` flags.
+  dontAddStaticConfigureFlags = true;
+  configureFlags = [
+    "shared" # "shared" builds both shared and static libraries
+    "--libdir=lib"
+    "--openssldir=etc/ssl"
+    "enable-ktls"
+  ] ++ lib.optionals withCryptodev [
+    "-DHAVE_CRYPTODEV"
+    "-DUSE_CRYPTODEV_DIGESTS"
+  ] ++ lib.optional enableSSL2 "enable-ssl2"
+    ++ lib.optional enableSSL3 "enable-ssl3"
+    ++ lib.optional stdenv.hostPlatform.isAarch64 "no-afalgeng"
+    # OpenSSL needs a specific `no-shared` configure flag.
+    # See https://wiki.openssl.org/index.php/Compilation_and_Installation#Configure_Options
+    # for a comprehensive list of configuration options.
+    ++ lib.optional static "no-shared";
+
+  makeFlags = [
+    "MANDIR=$(man)/share/man"
+    # This avoids conflicts between man pages of openssl subcommands (for
+    # example 'ts' and 'err') man pages and their equivalent top-level
+    # command in other packages (respectively man-pages and moreutils).
+    # This is done in ubuntu and archlinux, and possiibly many other distros.
+    "MANSUFFIX=ssl"
+  ];
+
+  enableParallelBuilding = true;
+
+  postInstall = lib.optionalString (!static) ''
+    # If we're building dynamic libraries, then don't install static
+    # libraries.
+    if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib $out/lib/*.dll)" ]; then
+        rm "$out/lib/"*.a
+    fi
+  '' + lib.optionalString (!stdenv.hostPlatform.isWindows)
+    # Fix bin/c_rehash's perl interpreter line
+    #
+    # - openssl 1_0_2: embeds a reference to buildPackages.perl
+    # - openssl 1_1:   emits "#!/usr/bin/env perl"
+    #
+    # In the case of openssl_1_0_2, reset the invalid reference and let the
+    # interpreter hook take care of it.
+    #
+    # In both cases, if withPerl = false, the intepreter line is expected be
+    # "#!/usr/bin/env perl"
+  ''
+    substituteInPlace $out/bin/c_rehash --replace ${buildPackages.perl}/bin/perl "/usr/bin/env perl"
+  '' + ''
+    mkdir -p $bin
+    mv $out/bin $bin/bin
+    mkdir $dev
+    mv $out/include $dev/
+    # remove dependency on Perl at runtime
+    rm -r $out/etc/ssl/misc
+    rmdir $out/etc/ssl/{certs,private}
+  '';
+
+  postFixup = lib.optionalString (!stdenv.hostPlatform.isWindows) ''
+    # Check to make sure the main output doesn't depend on perl
+    if grep -r '${buildPackages.perl}' $out; then
+      echo "Found an erroneous dependency on perl ^^^" >&2
+      exit 1
+    fi
+  '';
+
+  meta = with lib; {
+    homepage = "https://quictls.github.io/openssl/";
+    description = "TLS/SSL and crypto library with QUIC APIs";
+    license = licenses.openssl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ izorkin ];
+  };
+}
diff --git a/pkgs/development/libraries/rdkafka/default.nix b/pkgs/development/libraries/rdkafka/default.nix
index 78ffab44edd9b..829b298107f9e 100644
--- a/pkgs/development/libraries/rdkafka/default.nix
+++ b/pkgs/development/libraries/rdkafka/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rdkafka";
-  version = "1.8.0";
+  version = "1.8.2";
 
   src = fetchFromGitHub {
     owner = "edenhill";
     repo = "librdkafka";
     rev = "v${version}";
-    sha256 = "sha256-LTO27UQqGHOEOXaw2Aln1i37ZaXIAKK8r7P2WAx8nIQ=";
+    sha256 = "sha256-YagvXeusHThUo5/1mMs+r+Nr03vAagdnFMkwX3hJsq4=";
   };
 
   nativeBuildInputs = [ pkg-config python3 ];
diff --git a/pkgs/development/libraries/re2/default.nix b/pkgs/development/libraries/re2/default.nix
index d2942e6be2a09..a70ad0f69e036 100644
--- a/pkgs/development/libraries/re2/default.nix
+++ b/pkgs/development/libraries/re2/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "re2";
@@ -11,6 +11,15 @@ stdenv.mkDerivation rec {
     sha256 = "1fyhypw345xz8zdh53gz6j1fwgrx0gszk1d349ja37dpxh4jp2jh";
   };
 
+  patches = [
+    # Pull upstreal fix for parallel testing.
+    (fetchpatch {
+      name = "parallel-tests.patch";
+      url = "https://github.com/google/re2/commit/9262284a7edc1b83e7172f4ec2d7967d695e7420.patch";
+      sha256 = "1knhfx9cs4841r09jw4ha6mdx9qwpvlcxvd04i8vr84kd0lilqms";
+    })
+  ];
+
   preConfigure = ''
     substituteInPlace Makefile --replace "/usr/local" "$out"
     # we're using gnu sed, even on darwin
@@ -19,6 +28,8 @@ stdenv.mkDerivation rec {
 
   buildFlags = lib.optionals stdenv.hostPlatform.isStatic [ "static" ];
 
+  enableParallelBuilding = true;
+
   preCheck = "patchShebangs runtests";
   doCheck = true;
   checkTarget = "test";
diff --git a/pkgs/development/libraries/relibc/default.nix b/pkgs/development/libraries/relibc/default.nix
index 5f27f902fa9ba..eb84ed85c6116 100644
--- a/pkgs/development/libraries/relibc/default.nix
+++ b/pkgs/development/libraries/relibc/default.nix
@@ -73,6 +73,6 @@ redoxRustPlatform.buildRustPackage rec {
     description = "C Library in Rust for Redox and Linux";
     license = licenses.mit;
     maintainers = [ maintainers.aaronjanse ];
-    platforms = platforms.redox;
+    platforms = platforms.redox ++ [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/development/libraries/restinio/default.nix b/pkgs/development/libraries/restinio/default.nix
index 2f26fdceb12c2..1954bb45f3df2 100644
--- a/pkgs/development/libraries/restinio/default.nix
+++ b/pkgs/development/libraries/restinio/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "restinio";
-  version = "0.6.13";
+  version = "0.6.14";
 in
 fetchzip {
   name = "${pname}-${version}";
   url = "https://github.com/Stiffstream/restinio/releases/download/v.${version}/${pname}-${version}-full.tar.bz2";
-  sha256 = "0cwbd5ni5pm25c7njs3wllrblb2i853ibjvpbb1iicy833zais8d";
+  sha256 = "sha256-v/t3Lo1D6rHMx3GywPpEhOnHrT7JVC8n++YxpMTRfDM=";
 
   postFetch = ''
     mkdir -p $out/include/restinio
diff --git a/pkgs/development/libraries/retro-gtk/default.nix b/pkgs/development/libraries/retro-gtk/default.nix
index 3ab3ffcda0d3c..e1385f7a3ef02 100644
--- a/pkgs/development/libraries/retro-gtk/default.nix
+++ b/pkgs/development/libraries/retro-gtk/default.nix
@@ -5,7 +5,7 @@
 , meson
 , ninja
 , pkg-config
-, epoxy
+, libepoxy
 , glib
 , gtk3
 , libpulseaudio
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    epoxy
+    libepoxy
     glib
     gtk3
     libpulseaudio
diff --git a/pkgs/development/libraries/rocclr/default.nix b/pkgs/development/libraries/rocclr/default.nix
index eed5b998ee7be..4d78209f14113 100644
--- a/pkgs/development/libraries/rocclr/default.nix
+++ b/pkgs/development/libraries/rocclr/default.nix
@@ -1,55 +1,34 @@
 { lib, stdenv
 , fetchFromGitHub
 , writeScript
-, cmake
-, rocm-cmake
-, clang
 , rocm-comgr
-, rocm-opencl-runtime
-, rocm-runtime
-, rocm-thunk
-, libelf
-, libglvnd
-, libX11
-, numactl
 }:
 
 stdenv.mkDerivation rec {
   pname = "rocclr";
-  version = "4.3.1";
+  version = "4.5.2";
 
   src = fetchFromGitHub {
     owner = "ROCm-Developer-Tools";
     repo = "ROCclr";
     rev = "rocm-${version}";
-    hash = "sha256-3lk7Zucoam+11gFBzg/TWQI1L8uAlxTrPz/mDwTwod4=";
+    hash = "sha256-fsQANBND/oDeC/+wmCH/aLlDTxPIi7Z/oN1HnNHHnm0=";
   };
 
-  nativeBuildInputs = [ cmake rocm-cmake ];
-
-  buildInputs = [ clang rocm-comgr rocm-runtime rocm-thunk ];
-
-  propagatedBuildInputs = [ libelf libglvnd libX11 numactl ];
-
   prePatch = ''
-    substituteInPlace CMakeLists.txt \
-      --replace 'set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ''${CMAKE_CURRENT_BINARY_DIR}/lib)' \
-        'set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ''${CMAKE_INSTALL_LIBDIR})'
     substituteInPlace device/comgrctx.cpp \
       --replace "libamd_comgr.so" "${rocm-comgr}/lib/libamd_comgr.so"
   '';
 
-  cmakeFlags = [
-    "-DOPENCL_DIR=${rocm-opencl-runtime.src}"
-  ];
+  buildPhase = "";
+
+  installPhase = ''
+    runHook preInstall
 
-  preFixup = ''
-    # Work around broken cmake files
-    ln -s $out/include/compiler/lib/include/* $out/include
-    ln -s $out/include/elf/elfio $out/include/elfio
+    mkdir -p $out
+    cp -r * $out/
 
-    substituteInPlace $out/lib/cmake/rocclr/ROCclrConfig.cmake \
-      --replace "/build/source/build" "$out"
+    runHook postInstall
   '';
 
   passthru.updateScript = writeScript "update.sh" ''
@@ -60,7 +39,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "Radeon Open Compute common language runtime";
+    description = "Source package of the Radeon Open Compute common language runtime";
     homepage = "https://github.com/ROCm-Developer-Tools/ROCclr";
     license = licenses.mit;
     maintainers = with maintainers; [ lovesegfault ];
diff --git a/pkgs/development/libraries/rocksdb/default.nix b/pkgs/development/libraries/rocksdb/default.nix
index 83cdeecab2ebb..9364fdf75d5be 100644
--- a/pkgs/development/libraries/rocksdb/default.nix
+++ b/pkgs/development/libraries/rocksdb/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocksdb";
-  version = "6.26.0";
+  version = "6.27.3";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1nd8ixj249qiw089piw28aly0zmlla2k62gd6axd0bs2wfc4zma8";
+    sha256 = "sha256-s3vBW/vN6lUvOp3vlx/Wo2ZrzobZ2s8MHujFouSU2NM=";
   };
 
   nativeBuildInputs = [ cmake ninja ];
diff --git a/pkgs/development/libraries/rocm-comgr/default.nix b/pkgs/development/libraries/rocm-comgr/default.nix
index ee646b008a048..3ae872f23158c 100644
--- a/pkgs/development/libraries/rocm-comgr/default.nix
+++ b/pkgs/development/libraries/rocm-comgr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-comgr";
-  version = "4.3.1";
+  version = "4.5.2";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "ROCm-CompilerSupport";
     rev = "rocm-${version}";
-    hash = "sha256-wHSAhp1cqR9xOreGt2M2Td/ELCuLEHjpMRRkqE9dUy0=";
+    hash = "sha256-enGzu1EOo87/S5oH1eEqPy0AtsBhCcroG3DYemeNgR0=";
   };
 
   sourceRoot = "source/lib/comgr";
diff --git a/pkgs/development/libraries/rocm-device-libs/default.nix b/pkgs/development/libraries/rocm-device-libs/default.nix
index e32331486569a..13a326581117d 100644
--- a/pkgs/development/libraries/rocm-device-libs/default.nix
+++ b/pkgs/development/libraries/rocm-device-libs/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-device-libs";
-  version = "4.3.1";
+  version = "4.5.2";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "ROCm-Device-Libs";
     rev = "rocm-${version}";
-    hash = "sha256-fPD9vevO2UDaFaclSI0CC/lRfM5WemWmxP1K5ajXHbk=";
+    hash = "sha256-UeunsDRLhmsDOzesiEgYIzYotwecehB6VswshzdRwjw=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/rocm-opencl-runtime/default.nix b/pkgs/development/libraries/rocm-opencl-runtime/default.nix
index f92d495a83c44..f69165c5811e0 100644
--- a/pkgs/development/libraries/rocm-opencl-runtime/default.nix
+++ b/pkgs/development/libraries/rocm-opencl-runtime/default.nix
@@ -13,7 +13,8 @@
 , lld
 , llvm
 , mesa
-, python2
+, numactl
+, python3
 , rocclr
 , rocm-comgr
 , rocm-device-libs
@@ -23,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-opencl-runtime";
-  version = "4.3.1";
+  version = "4.5.2";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "ROCm-OpenCL-Runtime";
     rev = "rocm-${version}";
-    hash = "sha256-4+PNxRqvAvU0Nj2igYl3WiS5h5HGV63J+cHbIVW89LE=";
+    hash = "sha256-0OGYF4urlscr8tMkQwo2yATXwN0DjB092KQ+CBEhfIA=";
   };
 
   nativeBuildInputs = [ cmake rocm-cmake ];
@@ -43,8 +44,8 @@ stdenv.mkDerivation rec {
     lld
     llvm
     mesa
-    python2
-    rocclr
+    numactl
+    python3
     rocm-comgr
     rocm-device-libs
     rocm-runtime
@@ -52,12 +53,8 @@ stdenv.mkDerivation rec {
   ];
 
   cmakeFlags = [
-    "-DAMDGPU_TARGET_TRIPLE='amdgcn-amd-amdhsa'"
-    "-DCLANG_OPTIONS_APPEND=-Wno-bitwise-conditional-parentheses"
-    "-DClang_DIR=${clang-unwrapped}/lib/cmake/clang"
-    "-DLIBROCclr_STATIC_DIR=${rocclr}/lib/cmake"
-    "-DLLVM_DIR=${llvm.out}/lib/cmake/llvm"
-    "-DUSE_COMGR_LIBRARY='yes'"
+    "-DAMD_OPENCL_PATH=${src}"
+    "-DROCCLR_PATH=${rocclr}"
   ];
 
   dontStrip = true;
@@ -72,7 +69,6 @@ stdenv.mkDerivation rec {
   postPatch = ''
     substituteInPlace khronos/icd/loader/linux/icd_linux.c \
       --replace 'ICD_VENDOR_PATH' '"${addOpenGLRunpath.driverLink}/etc/OpenCL/vendors/"'
-    echo 'add_dependencies(amdocl64 OpenCL)' >> amdocl/CMakeLists.txt
   '';
 
   passthru.updateScript = writeScript "update.sh" ''
diff --git a/pkgs/development/libraries/rocm-runtime/default.nix b/pkgs/development/libraries/rocm-runtime/default.nix
index f7ed0107fa5e0..54ecd4f59b8da 100644
--- a/pkgs/development/libraries/rocm-runtime/default.nix
+++ b/pkgs/development/libraries/rocm-runtime/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-runtime";
-  version = "4.3.1";
+  version = "4.5.2";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "ROCR-Runtime";
     rev = "rocm-${version}";
-    hash = "sha256-B67v9B8LXDbWNxYNRxM3dgFFLjFSyJmm0zd3G5Bgvek=";
+    hash = "sha256-DJDlEHnXhegcenO8BIY/8GnZdHldVs0GFLrQy4Z6heY=";
   };
 
   sourceRoot = "source/src";
diff --git a/pkgs/development/libraries/rocm-thunk/default.nix b/pkgs/development/libraries/rocm-thunk/default.nix
index 4d641f873021a..e76b7c1993ae7 100644
--- a/pkgs/development/libraries/rocm-thunk/default.nix
+++ b/pkgs/development/libraries/rocm-thunk/default.nix
@@ -3,18 +3,19 @@
 , writeScript
 , cmake
 , pkg-config
+, libdrm
 , numactl
 }:
 
 stdenv.mkDerivation rec {
   pname = "rocm-thunk";
-  version = "4.3.1";
+  version = "4.5.2";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "ROCT-Thunk-Interface";
     rev = "rocm-${version}";
-    hash = "sha256-jpwFL4UbEnWkw1AiM4U1s1t7GiqzBeOwa55VpnOG2Dk=";
+    hash = "sha256-s/N1wkAgpxYCK6rIiWH8cGQU5YFGj0q4Dxj9j3yIys8=";
   };
 
   preConfigure = ''
@@ -23,7 +24,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ numactl ];
+  buildInputs = [ libdrm numactl ];
 
   postInstall = ''
     cp -r $src/include $out
diff --git a/pkgs/development/libraries/s2n-tls/default.nix b/pkgs/development/libraries/s2n-tls/default.nix
index 1ce6f26721044..35a37fbddb86e 100644
--- a/pkgs/development/libraries/s2n-tls/default.nix
+++ b/pkgs/development/libraries/s2n-tls/default.nix
@@ -1,29 +1,20 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , openssl
 }:
 
 stdenv.mkDerivation rec {
   pname = "s2n-tls";
-  version = "1.0.17";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-6XqBpNURU8fzGkTt4jsijgMiOkzMebmLmPAq8yQsTg4=";
+    sha256 = "sha256-gd91thIcJO6Bhn1ENkW0k2iDzu1CvSYwWVv0VEM9umU=";
   };
 
-  patches = [
-    # Fix FindLibCrypto paths (https://github.com/aws/s2n-tls/pull/3067)
-    (fetchpatch {
-      url = "https://github.com/aws/s2n-tls/commit/bda649524402be4018c44bff07f6c64502a351ec.patch";
-      sha256 = "02jmxsrd506vhjzlrgh1p2z1f1sn4v8klks25zisiykyqkyaczkv";
-    })
-  ];
-
   nativeBuildInputs = [ cmake ];
 
   outputs = [ "out" "dev"];
diff --git a/pkgs/development/libraries/science/astronomy/cfitsio/default.nix b/pkgs/development/libraries/science/astronomy/cfitsio/default.nix
index e38c384009c9a..9f9545e52f3b1 100644
--- a/pkgs/development/libraries/science/astronomy/cfitsio/default.nix
+++ b/pkgs/development/libraries/science/astronomy/cfitsio/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
       '';
     changelog = "https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/docs/changes.txt";
     license = licenses.mit;
-    maintainers = [ maintainers.xbreak ];
+    maintainers = with maintainers; [ xbreak hjones2199 ];
     platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/pkgs/development/libraries/science/astronomy/indilib/default.nix b/pkgs/development/libraries/science/astronomy/indilib/default.nix
index 0ab4c8cd6ca60..2ac1ba9536f6b 100644
--- a/pkgs/development/libraries/science/astronomy/indilib/default.nix
+++ b/pkgs/development/libraries/science/astronomy/indilib/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "indilib";
-  version = "1.9.2";
+  version = "1.9.3";
 
   src = fetchFromGitHub {
     owner = "indilib";
     repo = "indi";
     rev = "v${version}";
-    sha256 = "sha256-5MaN1aNyHpZzKwQPUpp9NYRh7i+lx1N70+J1gczdtAE=";
+    sha256 = "sha256-Ik62kbOetA2vSMpnwrSiNRNJqOgmqlCB2+KNhpBo9TA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix b/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix
index 5cdd4c4b2b26e..a20c92dfaeba9 100644
--- a/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix
+++ b/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix
@@ -1,12 +1,12 @@
 { stdenv, lib, callPackage, fetchFromGitHub, indilib }:
 
 let
-  indi-version = "1.9.2";
+  indi-version = "1.9.3";
   indi-3rdparty-src = fetchFromGitHub {
     owner = "indilib";
     repo = "indi-3rdparty";
     rev = "v${indi-version}";
-    sha256 = "sha256-dpuJ/J5gc+kAklbvMjsWic9jusXWB4gUcT8E/1eSLXQ=";
+    sha256 = "sha256-TBccdheBEO48uIXd6tya6dytkzxaHg2+YancBkcL3bw=";
   };
   indi-firmware = callPackage ./indi-firmware.nix {
     version = indi-version;
diff --git a/pkgs/development/libraries/science/biology/bicgl/default.nix b/pkgs/development/libraries/science/biology/bicgl/default.nix
index bc2de6e882f9e..4f98874b25959 100644
--- a/pkgs/development/libraries/science/biology/bicgl/default.nix
+++ b/pkgs/development/libraries/science/biology/bicgl/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, libminc, bicpl, freeglut, mesa_glu }:
+{ lib, stdenv, fetchFromGitHub, cmake, libminc, bicpl, freeglut, mesa_glu, GLUT }:
 
 stdenv.mkDerivation rec {
   pname = "bicgl";
@@ -8,13 +8,15 @@ stdenv.mkDerivation rec {
 
   src = fetchFromGitHub {
     inherit owner;
-    repo   = pname;
-    rev    = "61a035751c9244fcca1edf94d6566fa2a709ce90";
+    repo = pname;
+    rev = "61a035751c9244fcca1edf94d6566fa2a709ce90";
     sha256 = "0lzirdi1mf4yl8srq7vjn746sbydz7h0wjh7wy8gycy6hq04qrg4";
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ libminc bicpl freeglut mesa_glu ];
+  buildInputs = [ libminc bicpl mesa_glu ]
+    ++ lib.optionals stdenv.isDarwin [ GLUT ]
+    ++ lib.optionals stdenv.isLinux [ freeglut ];
 
   cmakeFlags = [
     "-DLIBMINC_DIR=${libminc}/lib/cmake"
@@ -26,6 +28,6 @@ stdenv.mkDerivation rec {
     description = "Brain Imaging Centre graphics library";
     maintainers = with maintainers; [ bcdarwin ];
     platforms = platforms.unix;
-    license   = licenses.free;
+    license = licenses.free;
   };
 }
diff --git a/pkgs/development/libraries/science/chemistry/cppe/default.nix b/pkgs/development/libraries/science/chemistry/cppe/default.nix
new file mode 100644
index 0000000000000..9781ce7806605
--- /dev/null
+++ b/pkgs/development/libraries/science/chemistry/cppe/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, lib, fetchFromGitHub, cmake, llvmPackages }:
+
+stdenv.mkDerivation rec {
+  pname = "cppe";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "maxscheurer";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-guM7+ZWDJLcAUJtPkKLvC4LYSA2eBvER7cgwPZ7FxHw=";
+  };
+
+  nativeBuildInputs = [ cmake ]
+    ++ lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ];
+
+  cmakeFlags = [ "-DCMAKE_INSTALL_LIBDIR=lib" ];
+
+  meta = with lib; {
+    description = "C++ and Python library for Polarizable Embedding";
+    homepage = "https://github.com/maxscheurer/cppe";
+    license = licenses.lgpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.sheepforce ];
+  };
+}
diff --git a/pkgs/development/libraries/science/chemistry/xcfun/default.nix b/pkgs/development/libraries/science/chemistry/xcfun/default.nix
index 7f8ef3dc47d7f..0856168092cbc 100644
--- a/pkgs/development/libraries/science/chemistry/xcfun/default.nix
+++ b/pkgs/development/libraries/science/chemistry/xcfun/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     owner = "dftlibs";
     repo = pname;
     rev = "v${version}";
-    sha256= "1bj70cnhbh6ziy02x988wwl7cbwaq17ld7qwhswqkgnnx8rpgxid";
+    sha256 = "1bj70cnhbh6ziy02x988wwl7cbwaq17ld7qwhswqkgnnx8rpgxid";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix
index bf7eb3d0d38c1..0fc00efcff0a7 100644
--- a/pkgs/development/libraries/science/math/openblas/default.nix
+++ b/pkgs/development/libraries/science/math/openblas/default.nix
@@ -129,7 +129,7 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "openblas";
-  version = "0.3.17";
+  version = "0.3.18";
 
   outputs = [ "out" "dev" ];
 
@@ -137,7 +137,7 @@ stdenv.mkDerivation rec {
     owner = "xianyi";
     repo = "OpenBLAS";
     rev = "v${version}";
-    sha256 = "11j103s851mml6kns781kha0asxjz6b6s1vbv80aq3b6g7p05pms";
+    sha256 = "sha256-b5i52rjsH65qAIlYGXQrzVxChi8/fwbD4eJTrxVq7Z8=";
   };
 
   inherit blas64;
diff --git a/pkgs/development/libraries/science/math/petsc/default.nix b/pkgs/development/libraries/science/math/petsc/default.nix
index 1bffb41806c5a..e9ca9b849462e 100644
--- a/pkgs/development/libraries/science/math/petsc/default.nix
+++ b/pkgs/development/libraries/science/math/petsc/default.nix
@@ -18,11 +18,11 @@ assert petsc-withp4est -> p4est.mpiSupport;
 
 stdenv.mkDerivation rec {
   pname = "petsc";
-  version = "3.14.3";
+  version = "3.16.2";
 
   src = fetchurl {
     url = "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-${version}.tar.gz";
-    sha256 = "sha256-1rdyLNSH8jMkmIg88uHMN3ZXqTHAtzU1adybJEZzJ9M=";
+    sha256 = "sha256-erJXrhUNSDesjThyodIGmXliV4eF7CQnY5zqxG0TG7w=";
   };
 
   mpiSupport = !withp4est || p4est.mpiSupport;
diff --git a/pkgs/development/libraries/science/math/primecount/default.nix b/pkgs/development/libraries/science/math/primecount/default.nix
new file mode 100644
index 0000000000000..7985b9d6dbd6d
--- /dev/null
+++ b/pkgs/development/libraries/science/math/primecount/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchFromGitHub, cmake, primesieve }:
+
+stdenv.mkDerivation rec {
+  pname = "primecount";
+  version = "7.2";
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ primesieve ];
+
+  src = fetchFromGitHub {
+    owner = "kimwalisch";
+    repo = "primecount";
+    rev = "v${version}";
+    sha256 = "sha256-/Cb/HkD4UQ9gXsRpvRiEuQBoRd0THxNHsBaAAa+CqQo=";
+  };
+
+  meta = with lib; {
+    description = "Fast prime counting function implementations";
+    homepage = "https://github.com/kimwalisch/primecount";
+    license = licenses.bsd2;
+    platforms = platforms.unix;
+    maintainers = teams.sage.members;
+  };
+}
diff --git a/pkgs/development/libraries/science/math/primesieve/default.nix b/pkgs/development/libraries/science/math/primesieve/default.nix
index 15b4d6a66a30b..2367b373b1c51 100644
--- a/pkgs/development/libraries/science/math/primesieve/default.nix
+++ b/pkgs/development/libraries/science/math/primesieve/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "primesieve";
-  version = "7.6";
+  version = "7.7";
 
   nativeBuildInputs = [ cmake ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "kimwalisch";
     repo = "primesieve";
     rev = "v${version}";
-    sha256 = "sha256-rSNYoWBy80BgPi1c+BSKbWTyGGb7/fxmu+mq1DXakHY=";
+    sha256 = "sha256-1Gfo00yaf7zHzCLfu/abWqeM0qBuLu+f+lowFFnWFxY=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/sentry-native/default.nix b/pkgs/development/libraries/sentry-native/default.nix
index af2a5e64d119f..ba4c8fcd0efd4 100644
--- a/pkgs/development/libraries/sentry-native/default.nix
+++ b/pkgs/development/libraries/sentry-native/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sentry-native";
-  version = "0.4.12";
+  version = "0.4.13";
 
   src = fetchFromGitHub {
     owner = "getsentry";
     repo = "sentry-native";
     rev = version;
-    sha256 = "sha256-ut864o4LHmuHYJszFz7LFoIiSvf6a0S42xmV51CVBQ0=";
+    sha256 = "sha256-btgv/GwwQhT/DtWhjM/g081UYLT7E76ZhqXZdMiIWsk=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/simdjson/default.nix b/pkgs/development/libraries/simdjson/default.nix
index a2c8c7199a2b0..56b76ba8875fb 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 = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "simdjson";
     repo = "simdjson";
     rev = "v${version}";
-    sha256 = "sha256-NpRpF+1tzPEjBo6i1GxACeAMDn+WEX8C80vInNffqug=";
+    sha256 = "sha256-WuqBR1/Iqly+Y8kJxTuZLTVkR3ltXdyr+/6J3zhBNkQ=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/simpleitk/default.nix b/pkgs/development/libraries/simpleitk/default.nix
index 2ae8b28b64f23..c38257dadb048 100644
--- a/pkgs/development/libraries/simpleitk/default.nix
+++ b/pkgs/development/libraries/simpleitk/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, cmake, swig, lua, itk }:
+{ lib, stdenv, fetchFromGitHub, cmake, swig4, lua, itk }:
 
 stdenv.mkDerivation rec {
   pname = "simpleitk";
-  version = "2.0.2";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "SimpleITK";
     repo = "SimpleITK";
     rev = "v${version}";
-    sha256 = "1q51jmd6skrr31avxlrxx433lawc838ilzrj5vvv38a9f4gl45v8";
+    sha256 = "0ShUo9UVkliROIIR5bJtqlzESByfq9SQ1+Hy/40vJ50=";
   };
 
-  nativeBuildInputs = [ cmake swig ];
+  nativeBuildInputs = [ cmake swig4 ];
   buildInputs = [ lua itk ];
 
   # 2.0.0: linker error building examples
diff --git a/pkgs/development/libraries/skalibs/default.nix b/pkgs/development/libraries/skalibs/default.nix
index 7e3e457d5034e..ddf2ee5b467d1 100644
--- a/pkgs/development/libraries/skalibs/default.nix
+++ b/pkgs/development/libraries/skalibs/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "skalibs";
-  version = "2.11.0.0";
-  sha256 = "1n9l7mb54dlb0iijjaf446jba6nmq1ql9n39s095ngrk5ahcipwq";
+  version = "2.11.1.0";
+  sha256 = "1fga2kmzcp2llqv5nzrmgm33p1jz7y9pnaghzbxf8ldnsns800a0";
 
   description = "A set of general-purpose C programming libraries";
 
diff --git a/pkgs/development/libraries/slib/setup-hook.sh b/pkgs/development/libraries/slib/setup-hook.sh
index 3c7e91e81886b..e820d80e7a4ea 100644
--- a/pkgs/development/libraries/slib/setup-hook.sh
+++ b/pkgs/development/libraries/slib/setup-hook.sh
@@ -1,12 +1,12 @@
 addSlibPath () {
     if test -f "$1/lib/slib/slibcat"
     then
-	export SCHEME_LIBRARY_PATH="$1/lib/slib/"
-	echo "SLIB found in \`$1'; setting \$SCHEME_LIBRARY_PATH to \`$SCHEME_LIBRARY_PATH'"
+        export SCHEME_LIBRARY_PATH="$1/lib/slib/"
+        echo "SLIB found in \`$1'; setting \$SCHEME_LIBRARY_PATH to \`$SCHEME_LIBRARY_PATH'"
 
-	# This is needed so that `(load-from-path "slib/guile.init")' works.
-	export GUILE_LOAD_PATH="$1/lib:$GUILE_LOAD_PATH"
-	echo "SLIB: setting \$GUILE_LOAD_PATH to \`$GUILE_LOAD_PATH'"
+        # This is needed so that `(load-from-path "slib/guile.init")' works.
+        export GUILE_LOAD_PATH="$1/lib:$GUILE_LOAD_PATH"
+        echo "SLIB: setting \$GUILE_LOAD_PATH to \`$GUILE_LOAD_PATH'"
     fi
 }
 
diff --git a/pkgs/development/libraries/snappy/default.nix b/pkgs/development/libraries/snappy/default.nix
index 71209295b9fdb..797db5b69b0c3 100644
--- a/pkgs/development/libraries/snappy/default.nix
+++ b/pkgs/development/libraries/snappy/default.nix
@@ -20,6 +20,14 @@ stdenv.mkDerivation rec {
       url = "https://github.com/google/snappy/pull/142/commits/658cb2fcf67b626fff2122a3dbf7a3560c58f7ee.patch";
       sha256 = "1kg3lxjwmhc7gjx36nylilnf444ddbnr3px1wpvyc6l1nh6zh4al";
     })
+    # Re-enable RTTI, without which other applications can't subclass
+    # snappy::Source (this breaks Ceph, as one example)
+    # https://tracker.ceph.com/issues/53060
+    # https://build.opensuse.org/package/show/openSUSE:Factory/snappy
+    (fetchpatch {
+      url = "https://build.opensuse.org/public/source/openSUSE:Factory/snappy/reenable-rtti.patch?rev=a759aa6fba405cd40025e3f0ab89941d";
+      sha256 = "sha256-RMuM5yd6zP1eekN/+vfS54EyY4cFbGDVor1E1vj3134=";
+    })
   ];
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/sope/default.nix b/pkgs/development/libraries/sope/default.nix
index 3b41495be7d42..415a2b1e1fbb6 100644
--- a/pkgs/development/libraries/sope/default.nix
+++ b/pkgs/development/libraries/sope/default.nix
@@ -4,13 +4,13 @@ with lib;
 
 gnustep.stdenv.mkDerivation rec {
   pname = "sope";
-  version = "5.3.0";
+  version = "5.4.0";
 
   src = fetchFromGitHub {
     owner = "inverse-inc";
     repo = pname;
     rev = "SOPE-${version}";
-    sha256 = "0xqa7fsf60acbri5dd9x8nmf1zdkalxnmkm559w4xz7sdi569ssa";
+    sha256 = "sha256-jOF429Gaf1Qo3bx9mUogBQ0u/tBUxnX7VZxJjxF24Rg=";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/pkgs/development/libraries/spdk/default.nix b/pkgs/development/libraries/spdk/default.nix
index ec20f68b6f48c..e4884b85b4ae9 100644
--- a/pkgs/development/libraries/spdk/default.nix
+++ b/pkgs/development/libraries/spdk/default.nix
@@ -1,7 +1,6 @@
 { lib, stdenv
-, fetchurl
-, fetchFromGitHub
 , fetchpatch
+, fetchFromGitHub
 , ncurses
 , python3
 , cunit
@@ -15,15 +14,27 @@
 
 stdenv.mkDerivation rec {
   pname = "spdk";
-  version = "21.07";
+  version = "21.10";
 
   src = fetchFromGitHub {
     owner = "spdk";
     repo = "spdk";
     rev = "v${version}";
-    sha256 = "sha256-/hynuYVdzIfiHUUfuuOY8SBJ18DqJr2Fos2JjQQVvbg=";
+    sha256 = "sha256-pFynTbbSF1g58VD9bOhe3c4oCozeqE+35kECTQwDBDM=";
   };
 
+  patches = [
+    # Backport of upstream patch for ncurses-6.3 support.
+    # Will be in next release after 21.10.
+    ./ncurses-6.3.patch
+
+    # DPDK 21.11 compatibility.
+    (fetchpatch {
+      url = "https://github.com/spdk/spdk/commit/f72cab94dd35d7b45ec5a4f35967adf3184ca616.patch";
+      sha256 = "sha256-sSetvyNjlM/hSOUsUO3/dmPzAliVcteNDvy34yM5d4A=";
+    })
+  ];
+
   nativeBuildInputs = [
     python3
   ];
@@ -36,6 +47,8 @@ stdenv.mkDerivation rec {
     patchShebangs .
   '';
 
+  enableParallelBuilding = true;
+
   configureFlags = [ "--with-dpdk=${dpdk}" ];
 
   NIX_CFLAGS_COMPILE = "-mssse3"; # Necessary to compile.
diff --git a/pkgs/development/libraries/spdk/ncurses-6.3.patch b/pkgs/development/libraries/spdk/ncurses-6.3.patch
new file mode 100644
index 0000000000000..174c9b6435ef3
--- /dev/null
+++ b/pkgs/development/libraries/spdk/ncurses-6.3.patch
@@ -0,0 +1,48 @@
+Backport of upstream https://review.spdk.io/gerrit/c/spdk/spdk/+/10300
+--- a/app/spdk_top/spdk_top.c
++++ b/app/spdk_top/spdk_top.c
+@@ -1012 +1012 @@ print_max_len(WINDOW *win, int row, uint16_t col, uint16_t max_len, enum str_ali
+-	mvwprintw(win, row, col, tmp_str);
++	mvwprintw(win, row, col, "%s", tmp_str);
+@@ -1944 +1944 @@ display_thread(struct rpc_thread_info *thread_info)
+-	mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 6, "%" PRIu64,
++	mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 6, "%d",
+@@ -1949 +1949 @@ display_thread(struct rpc_thread_info *thread_info)
+-		mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 32, idle_time);
++		mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 32, "%s", idle_time);
+@@ -1951 +1951 @@ display_thread(struct rpc_thread_info *thread_info)
+-		mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 54, busy_time);
++		mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 54, "%s", busy_time);
+@@ -1954 +1954 @@ display_thread(struct rpc_thread_info *thread_info)
+-		mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 32, idle_time);
++		mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 32, "%s", idle_time);
+@@ -1956 +1956 @@ display_thread(struct rpc_thread_info *thread_info)
+-		mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 54, busy_time);
++		mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 54, "%s", busy_time);
+@@ -2111 +2111 @@ show_core(uint8_t current_page)
+-	mvwprintw(core_win, 5, CORE_WIN_FIRST_COL + 20, idle_time);
++	mvwprintw(core_win, 5, CORE_WIN_FIRST_COL + 20, "%s", idle_time);
+@@ -2118 +2118 @@ show_core(uint8_t current_page)
+-	mvwprintw(core_win, 7, CORE_WIN_FIRST_COL + 20, busy_time);
++	mvwprintw(core_win, 7, CORE_WIN_FIRST_COL + 20, "%s", busy_time);
+@@ -2124 +2124 @@ show_core(uint8_t current_page)
+-		mvwprintw(core_win, i + 10, 1, core_info->threads.thread[i].name);
++		mvwprintw(core_win, i + 10, 1, "%s", core_info->threads.thread[i].name);
+@@ -2137 +2137 @@ show_core(uint8_t current_page)
+-				mvwprintw(core_win, i + 10, 1, core_info->threads.thread[i].name);
++				mvwprintw(core_win, i + 10, 1, "%s", core_info->threads.thread[i].name);
+@@ -2214 +2214 @@ show_poller(uint8_t current_page)
+-	mvwprintw(poller_win, 3, POLLER_WIN_FIRST_COL,
++	mvwprintw(poller_win, 3, POLLER_WIN_FIRST_COL, "%s",
+@@ -2216 +2216 @@ show_poller(uint8_t current_page)
+-	mvwprintw(poller_win, 3, POLLER_WIN_FIRST_COL + 23, poller->thread_name);
++	mvwprintw(poller_win, 3, POLLER_WIN_FIRST_COL + 23, "%s", poller->thread_name);
+@@ -2231 +2231 @@ show_poller(uint8_t current_page)
+-		mvwprintw(poller_win, 4, POLLER_WIN_FIRST_COL + 23, poller_period);
++		mvwprintw(poller_win, 4, POLLER_WIN_FIRST_COL + 23, "%s", poller_period);
+@@ -2264 +2264 @@ print_bottom_error_message(char *msg)
+-	mvprintw(g_max_row - 1, g_max_col - strlen(msg) - 2, msg);
++	mvprintw(g_max_row - 1, g_max_col - strlen(msg) - 2, "%s", msg);
+@@ -2434 +2434 @@ show_stats(pthread_t *data_thread)
+-			mvprintw(g_max_row - 1, 1, current_page_str);
++			mvprintw(g_max_row - 1, 1, "%s", current_page_str);
diff --git a/pkgs/development/libraries/spdk/spdk-dpdk-meson.patch b/pkgs/development/libraries/spdk/spdk-dpdk-meson.patch
deleted file mode 100644
index 9cc6d89ce50e9..0000000000000
--- a/pkgs/development/libraries/spdk/spdk-dpdk-meson.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-1. dpdk built with meson generates rte_build_config.h rather than rte_config.h.
-2. dpdk configured with libbsd requires that dependents link with libbsd.
-
---- a/lib/env_dpdk/env.mk
-+++ b/lib/env_dpdk/env.mk
-@@ -140,6 +140,9 @@ endif
- 
--ifneq (,$(wildcard $(DPDK_INC_DIR)/rte_config.h))
--ifneq (,$(shell grep -e "define RTE_LIBRTE_VHOST_NUMA 1" -e "define RTE_EAL_NUMA_AWARE_HUGEPAGES 1" $(DPDK_INC_DIR)/rte_config.h))
-+ifneq (,$(wildcard $(DPDK_INC_DIR)/rte_build_config.h))
-+ifneq (,$(shell grep -e "define RTE_LIBRTE_VHOST_NUMA 1" -e "define RTE_EAL_NUMA_AWARE_HUGEPAGES 1" $(DPDK_INC_DIR)/rte_build_config.h))
- ENV_LINKER_ARGS += -lnuma
- endif
-+ifneq (,$(shell grep -e "define RTE_USE_LIBBSD 1" $(DPDK_INC_DIR)/rte_build_config.h))
-+ENV_LINKER_ARGS += -lbsd
-+endif
- endif
diff --git a/pkgs/development/libraries/spglib/default.nix b/pkgs/development/libraries/spglib/default.nix
index 9f50c80bf7a10..6d973f36c02ba 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 = "1.16.2";
+  version = "1.16.3";
 
   src = fetchFromGitHub {
     owner = "atztogo";
     repo = "spglib";
     rev = "v${version}";
-    sha256 = "1sbrk26xyvlhqxxv9cq2ycxwbiafgmh7lf221377zpqq8q3iavd7";
+    sha256 = "sha256-sM6+RBAVc2aJYlWatdD4nYZkFnaTFVjBzd/VDSSA+kk=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/spice-gtk/default.nix b/pkgs/development/libraries/spice-gtk/default.nix
index 3d76e67f67ad1..13bfae944e02e 100644
--- a/pkgs/development/libraries/spice-gtk/default.nix
+++ b/pkgs/development/libraries/spice-gtk/default.nix
@@ -3,7 +3,7 @@
 , acl
 , cyrus_sasl
 , docbook_xsl
-, epoxy
+, libepoxy
 , gettext
 , gobject-introspection
 , gst_all_1
@@ -94,7 +94,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     cyrus_sasl
-    epoxy
+    libepoxy
     gtk3
     json-glib
     libcacard
diff --git a/pkgs/development/libraries/spice/default.nix b/pkgs/development/libraries/spice/default.nix
index 0bf09eef19c90..ee0f6be16984b 100644
--- a/pkgs/development/libraries/spice/default.nix
+++ b/pkgs/development/libraries/spice/default.nix
@@ -24,6 +24,16 @@
 , orc
 }:
 
+let
+  # This file was mistakenly not included with the 0.15.0 release tarball.
+  # Should be fixed with the next release.
+  # https://gitlab.freedesktop.org/spice/spice/-/issues/56
+  doxygen_sh = fetchurl {
+    url = "https://gitlab.freedesktop.org/spice/spice/-/raw/v0.15.0/doxygen.sh";
+    sha256 = "0g4bx91qclihp1jfhdhyj7wp4hf4289794xxbw32kk58lnd7bzkg";
+  };
+in
+
 stdenv.mkDerivation rec {
   pname = "spice";
   version = "0.15.0";
@@ -34,10 +44,10 @@ stdenv.mkDerivation rec {
   };
 
   postPatch = ''
+    install ${doxygen_sh} doxygen.sh
     patchShebangs build-aux
   '';
 
-
   nativeBuildInputs = [
     glib
     meson
@@ -74,7 +84,6 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Dgstreamer=1.0"
-    "-Dcelt051=disabled"
   ];
 
   postInstall = ''
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index acfce3d2e77af..de433ba5008da 100644
--- a/pkgs/development/libraries/sqlite/default.nix
+++ b/pkgs/development/libraries/sqlite/default.nix
@@ -11,12 +11,12 @@ in
 
 stdenv.mkDerivation rec {
   pname = "sqlite";
-  version = "3.36.0";
+  version = "3.37.0";
 
   # NB! Make sure to update ./tools.nix src (in the same directory).
   src = fetchurl {
     url = "https://sqlite.org/2021/sqlite-autoconf-${archiveVersion version}.tar.gz";
-    sha256 = "sha256-vZDD65a+6ZYga4O+cGXJzhmu84w/T7Uwc62g0LabvOM=";
+    sha256 = "sha256-cxpGUdTUs2/H0h21hrLeTdAK8x/VT7WppLf0kgV0efc=";
   };
 
   outputs = [ "bin" "dev" "out" ];
diff --git a/pkgs/development/libraries/sqlite/tools.nix b/pkgs/development/libraries/sqlite/tools.nix
index 352577fd2daea..7309e1de0b687 100644
--- a/pkgs/development/libraries/sqlite/tools.nix
+++ b/pkgs/development/libraries/sqlite/tools.nix
@@ -4,11 +4,11 @@ let
   archiveVersion = import ./archive-version.nix lib;
   mkTool = { pname, makeTarget, description, homepage }: stdenv.mkDerivation rec {
     inherit pname;
-    version = "3.36.0";
+    version = "3.37.0";
 
     src = assert version == sqlite.version; fetchurl {
       url = "https://sqlite.org/2021/sqlite-src-${archiveVersion version}.zip";
-      sha256 = "092khwfm0m0i80sjb4fc5569jj0kilm6pa867w0akcv6h38bk8r5";
+      sha256 = "sha256-cJd/s5Qhh9RidBOv3pqUkvoCuVSFCBK1OXS2ox7Oj68=";
     };
 
     nativeBuildInputs = [ unzip ];
diff --git a/pkgs/development/libraries/stfl/default.nix b/pkgs/development/libraries/stfl/default.nix
index 20676c16b9c67..48c5edd13bf30 100644
--- a/pkgs/development/libraries/stfl/default.nix
+++ b/pkgs/development/libraries/stfl/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, ncurses, libiconv }:
 
 stdenv.mkDerivation rec {
-  name = "stfl-0.24";
+  pname = "stfl";
+  version = "0.24";
 
   src = fetchurl {
-    url = "http://www.clifford.at/stfl/${name}.tar.gz";
+    url = "http://www.clifford.at/stfl/stfl-${version}.tar.gz";
     sha256 = "1460d5lc780p3q38l3wc9jfr2a7zlyrcra0li65aynj738cam9yl";
   };
 
@@ -13,9 +14,9 @@ stdenv.mkDerivation rec {
   buildPhase = ''
     sed -i s/gcc/cc/g Makefile
     sed -i s%ncursesw/ncurses.h%ncurses.h% stfl_internals.h
-  '' + ( lib.optionalString stdenv.isDarwin ''
+  '' + (lib.optionalString stdenv.isDarwin ''
     sed -i s/-soname/-install_name/ Makefile
-  '' ) + ''
+  '') + ''
     make
   '';
 
@@ -27,10 +28,10 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    homepage    = "http://www.clifford.at/stfl/";
+    homepage = "http://www.clifford.at/stfl/";
     description = "A library which implements a curses-based widget set for text terminals";
     maintainers = with lib.maintainers; [ lovek323 ];
-    license     = lib.licenses.lgpl3;
-    platforms   = lib.platforms.unix;
+    license = lib.licenses.lgpl3;
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/t1lib/default.nix b/pkgs/development/libraries/t1lib/default.nix
index 5bd4b02b61d90..69940c18aafc3 100644
--- a/pkgs/development/libraries/t1lib/default.nix
+++ b/pkgs/development/libraries/t1lib/default.nix
@@ -16,11 +16,12 @@ let
       # this ^ also fixes CVE-2011-5244
   ];
 in
-stdenv.mkDerivation {
-  name = "t1lib-5.1.2";
+stdenv.mkDerivation rec {
+  pname = "t1lib";
+  version = "5.1.2";
 
   src = fetchurl {
-    url = "mirror://metalab/libs/graphics/t1lib-5.1.2.tar.gz";
+    url = "mirror://metalab/libs/graphics/t1lib-${version}.tar.gz";
     sha256 = "0nbvjpnmcznib1nlgg8xckrmsw3haa154byds2h90y2g0nsjh4w2";
   };
   inherit patches;
diff --git a/pkgs/development/libraries/tclap/default.nix b/pkgs/development/libraries/tclap/default.nix
index eb49efa6c871f..c24768bbbdc83 100644
--- a/pkgs/development/libraries/tclap/default.nix
+++ b/pkgs/development/libraries/tclap/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tclap";
-  version = "1.2.4";
+  version = "1.2.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/tclap/${pname}-${version}.tar.gz";
-    sha256 = "sha256-Y0xbWduxzLydal9t5JSiV+KaP1nctvwwRF/zm0UYhXQ=";
+    sha256 = "sha256-u2SfdtrjXo0Ny6S1Ks/U4GLXh+aoG0P3pLASdRUxZaY=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/tdb/default.nix b/pkgs/development/libraries/tdb/default.nix
index 2e2e09be10838..febf1b97eb685 100644
--- a/pkgs/development/libraries/tdb/default.nix
+++ b/pkgs/development/libraries/tdb/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tdb";
-  version = "1.4.3";
+  version = "1.4.5";
 
   src = fetchurl {
     url = "mirror://samba/tdb/${pname}-${version}.tar.gz";
-    sha256 = "06waz0k50c7v3chd08mzp2rv7w4k4q9isbxx3vhlfpx1vy9q61f8";
+    sha256 = "sha256-vPztiE9wMQgJmLXEscXc5XVnBV95QX+G26QNzemaDkE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/tdlib/default.nix b/pkgs/development/libraries/tdlib/default.nix
index efad8832a31bd..79895a63a34c6 100644
--- a/pkgs/development/libraries/tdlib/default.nix
+++ b/pkgs/development/libraries/tdlib/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "tdlib";
-  version = "1.7.9";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "tdlib";
     repo = "td";
-    # https://github.com/tdlib/td/issues/1718
-    rev = "7d41d9eaa58a6e0927806283252dc9e74eda5512";
-    sha256 = "09b7srbfqi4gmg5pdi398pr0pxihw4d3cw85ycky54g862idzqs8";
+    # https://github.com/tdlib/td/issues/1790
+    rev = "b3ab664a18f8611f4dfcd3054717504271eeaa7a";
+    sha256 = "OBgzFBi+lIBbKnHDm5D/F3Xi4s1x4geb+1OoBP3F+qY=";
   };
 
   buildInputs = [ gperf openssl readline zlib ];
diff --git a/pkgs/development/libraries/tecla/default.nix b/pkgs/development/libraries/tecla/default.nix
index 9682ac1637a39..11918d76da6c0 100644
--- a/pkgs/development/libraries/tecla/default.nix
+++ b/pkgs/development/libraries/tecla/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "tecla-1.6.3";
+  pname = "tecla";
+  version = "1.6.3";
 
   src = fetchurl {
-    url = "https://www.astro.caltech.edu/~mcs/tecla/lib${name}.tar.gz";
+    url = "https://www.astro.caltech.edu/~mcs/tecla/libtecla-${version}.tar.gz";
     sha256 = "06pfq5wa8d25i9bdjkp4xhms5101dsrbg82riz7rz1a0a32pqxgj";
   };
 
diff --git a/pkgs/development/libraries/telepathy/qt/default.nix b/pkgs/development/libraries/telepathy/qt/default.nix
index dbbaca7e11a7a..37a71fb25363f 100644
--- a/pkgs/development/libraries/telepathy/qt/default.nix
+++ b/pkgs/development/libraries/telepathy/qt/default.nix
@@ -1,13 +1,25 @@
-{ lib, stdenv, fetchurl, cmake, qtbase, pkg-config, python3Packages, dbus-glib, dbus
-, telepathy-farstream, telepathy-glib }:
+{ lib
+, stdenv
+, fetchurl
+, cmake
+, qtbase
+, pkg-config
+, python3Packages
+, dbus-glib
+, dbus
+, telepathy-farstream
+, telepathy-glib
+}:
 
 let
   inherit (python3Packages) python dbus-python;
-in stdenv.mkDerivation rec {
-  name = "telepathy-qt-0.9.8";
+in
+stdenv.mkDerivation rec {
+  pname = "telepathy-qt";
+  version = "0.9.8";
 
   src = fetchurl {
-    url = "https://telepathy.freedesktop.org/releases/telepathy-qt/${name}.tar.gz";
+    url = "https://telepathy.freedesktop.org/releases/telepathy-qt/telepathy-qt-${version}.tar.gz";
     sha256 = "bf8e2a09060addb80475a4938105b9b41d9e6837999b7a00e5351783857e18ad";
   };
 
diff --git a/pkgs/development/libraries/termcolor/default.nix b/pkgs/development/libraries/termcolor/default.nix
new file mode 100644
index 0000000000000..3d94583412119
--- /dev/null
+++ b/pkgs/development/libraries/termcolor/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "termcolor";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "ikalnytskyi";
+    repo = "termcolor";
+    rev = "v${version}";
+    sha256 = "sha256-W0hB+lFJ2sm7DsbOzITOtjJuntSM55BfwUunOOS4RcA=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = [ "-DTERMCOLOR_TESTS=ON" ];
+
+  doCheck = true;
+
+  checkPhase = ''
+    runHook preCheck
+    ./test_termcolor
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "Header-only C++ library for printing colored messages";
+    homepage = "https://github.com/ikalnytskyi/termcolor";
+    license = licenses.bsd3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/pkgs/development/libraries/tkrzw/default.nix b/pkgs/development/libraries/tkrzw/default.nix
index e8163c5282c7b..84a026be20fb0 100644
--- a/pkgs/development/libraries/tkrzw/default.nix
+++ b/pkgs/development/libraries/tkrzw/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "tkrzw";
-  version = "0.9.51";
+  version = "1.0.21";
   # TODO: defeat multi-output reference cycles
 
   src = fetchurl {
     url = "https://dbmx.net/tkrzw/pkg/tkrzw-${version}.tar.gz";
-    hash = "sha256-UqF2cJ/r8OksAKyHw6B9UiBFIXgKeDmD2ZyJ+iPkY2w=";
+    hash = "sha256-1g3sIRXxYtD8XGVNpbn4HLTCi+xl2yfJklbUouMQcHs=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/tokyo-tyrant/default.nix b/pkgs/development/libraries/tokyo-tyrant/default.nix
index 6431e6a1a7a53..6407840c443c7 100644
--- a/pkgs/development/libraries/tokyo-tyrant/default.nix
+++ b/pkgs/development/libraries/tokyo-tyrant/default.nix
@@ -1,17 +1,18 @@
 { fetchurl, lib, stdenv, tokyocabinet, pkg-config }:
 
 stdenv.mkDerivation rec {
-  name = "tokyotyrant-1.1.41";
+  pname = "tokyotyrant";
+  version = "1.1.41";
 
   src = fetchurl {
-    url = "https://fallabs.com/tokyotyrant/${name}.tar.gz";
+    url = "https://fallabs.com/tokyotyrant/tokyotyrant-${version}.tar.gz";
     sha256 = "13xqcinhydqmh7231qlir6pymacjwcf98drybkhd9597kzxp1bs2";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ tokyocabinet ];
 
-  doCheck = false;                                # FIXME
+  doCheck = false; # FIXME
 
   meta = {
     description = "Network interface of the Tokyo Cabinet DBM";
@@ -35,7 +36,7 @@ stdenv.mkDerivation rec {
 
     license = lib.licenses.lgpl21Plus;
 
-    platforms = lib.platforms.gnu ++ lib.platforms.linux;         # arbitrary choice
+    platforms = lib.platforms.gnu ++ lib.platforms.linux; # arbitrary choice
     maintainers = [ ];
   };
 }
diff --git a/pkgs/development/libraries/tracker/default.nix b/pkgs/development/libraries/tracker/default.nix
index fc0ba54cbe7ef..7dbe0d410f754 100644
--- a/pkgs/development/libraries/tracker/default.nix
+++ b/pkgs/development/libraries/tracker/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchurl
-, fetchpatch
 , gettext
 , meson
 , ninja
@@ -31,13 +30,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tracker";
-  version = "3.2.0";
+  version = "3.2.1";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-8RelKHXUpNCceqmT+Mio0GRo1dz7FT642qUesThEUTo=";
+    sha256 = "GEfgiznm5h2EhzWqH5f32WwDggFlP6DXy56Bs365wDo=";
   };
 
   patches = [
@@ -45,13 +44,6 @@ stdenv.mkDerivation rec {
       src = ./fix-paths.patch;
       inherit asciidoc;
     })
-  ] ++ lib.optionals (stdenv.hostPlatform.isi686) [
-    # Upstream: https://gitlab.gnome.org/GNOME/tracker/-/issues/332
-    (fetchpatch {
-      name = "i686-test.patch";
-      url = "https://gitlab.gnome.org/GNOME/tracker/-/commit/af707181a2c492a794daec7ce3f3062d67ffd9dc.patch";
-      sha256 = "sha256-KOdkTy79w3oiQILrPG00UVrv+VBjAk4Y868I8jtifqk=";
-    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/tremor/default.nix b/pkgs/development/libraries/tremor/default.nix
index 16e1a78d396ed..d17ef6c8fd7ce 100644
--- a/pkgs/development/libraries/tremor/default.nix
+++ b/pkgs/development/libraries/tremor/default.nix
@@ -1,7 +1,8 @@
 { lib, stdenv, fetchFromGitLab, autoreconfHook, pkg-config, libogg }:
 
 stdenv.mkDerivation {
-  name = "tremor-unstable-2018-03-16";
+  pname = "tremor";
+  version = "unstable-2018-03-16";
 
   src = fetchFromGitLab {
     owner = "xiph";
diff --git a/pkgs/development/libraries/trompeloeil/default.nix b/pkgs/development/libraries/trompeloeil/default.nix
index 8a6f03dd99ea4..2ebee9bfae0b2 100644
--- a/pkgs/development/libraries/trompeloeil/default.nix
+++ b/pkgs/development/libraries/trompeloeil/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "trompeloeil";
-  version = "41";
+  version = "42";
 
   src = fetchFromGitHub {
     owner = "rollbear";
     repo = "trompeloeil";
     rev = "v${version}";
-    sha256 = "sha256-NsWRN520K4FLp+8W83bXT6pgQEADYFnWiB6gy3MjsWY=";
+    sha256 = "sha256-QGATz/uDk1GsifGddFBQvUdgaCgUERnUp9CRA2dQVz0=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/tsocks/default.nix b/pkgs/development/libraries/tsocks/default.nix
index 728c6e71f7fb9..d312944118561 100644
--- a/pkgs/development/libraries/tsocks/default.nix
+++ b/pkgs/development/libraries/tsocks/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     description = "Transparent SOCKS v4 proxying library";
     homepage = "http://tsocks.sourceforge.net/";
     license = lib.licenses.gpl2;
-    maintainers = with maintainers; [ edwtjo phreedom ];
+    maintainers = with maintainers; [ edwtjo ];
     platforms = platforms.unix;
     broken = stdenv.hostPlatform.isDarwin;
   };
diff --git a/pkgs/development/libraries/ucl/default.nix b/pkgs/development/libraries/ucl/default.nix
index 43f7ddf63af95..5aef7e9d8f4e5 100644
--- a/pkgs/development/libraries/ucl/default.nix
+++ b/pkgs/development/libraries/ucl/default.nix
@@ -1,9 +1,11 @@
 { lib, stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "ucl-1.03";
+stdenv.mkDerivation rec {
+  pname = "ucl";
+  version = "1.03";
+
   src = fetchurl {
-    url = "https://www.oberhumer.com/opensource/ucl/download/ucl-1.03.tar.gz";
+    url = "https://www.oberhumer.com/opensource/ucl/download/ucl-${version}.tar.gz";
     sha256 = "b865299ffd45d73412293369c9754b07637680e5c826915f097577cd27350348";
   };
 
diff --git a/pkgs/development/libraries/ucx/default.nix b/pkgs/development/libraries/ucx/default.nix
index 0bb3fe135d664..06c0ada16feb0 100644
--- a/pkgs/development/libraries/ucx/default.nix
+++ b/pkgs/development/libraries/ucx/default.nix
@@ -1,8 +1,17 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook, doxygen
-, numactl, rdma-core, libbfd, libiberty, perl, zlib
+, numactl, rdma-core, libbfd, libiberty, perl, zlib, symlinkJoin
+, enableCuda ? false
+, cudatoolkit
 }:
 
-stdenv.mkDerivation rec {
+let
+  # Needed for configure to find all libraries
+  cudatoolkit' = symlinkJoin {
+    inherit (cudatoolkit) name meta;
+    paths = [ cudatoolkit cudatoolkit.lib ];
+  };
+
+in stdenv.mkDerivation rec {
   pname = "ucx";
   version = "1.11.2";
 
@@ -15,7 +24,14 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook doxygen ];
 
-  buildInputs = [ numactl rdma-core libbfd libiberty perl zlib ];
+  buildInputs = [
+    libbfd
+    libiberty
+    numactl
+    perl
+    rdma-core
+    zlib
+  ] ++ lib.optional enableCuda cudatoolkit;
 
   configureFlags = [
     "--with-rdmacm=${rdma-core}"
@@ -23,7 +39,7 @@ stdenv.mkDerivation rec {
     "--with-rc"
     "--with-dm"
     "--with-verbs=${rdma-core}"
-  ];
+  ] ++ lib.optional enableCuda "--with-cuda=${cudatoolkit'}";
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/development/libraries/uhttpmock/default.nix b/pkgs/development/libraries/uhttpmock/default.nix
index 5420eb204e3d9..7a27cd1fd678b 100644
--- a/pkgs/development/libraries/uhttpmock/default.nix
+++ b/pkgs/development/libraries/uhttpmock/default.nix
@@ -11,10 +11,10 @@ stdenv.mkDerivation rec {
     sha256 = "0kkf670abkq5ikm3mqls475lydfsd9by1kv5im4k757xrl1br1d4";
   };
 
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ autoconf gtk-doc automake libtool glib libsoup gobject-introspection ];
+  nativeBuildInputs = [ pkg-config autoconf automake gtk-doc libtool gobject-introspection ];
+  buildInputs = [ glib libsoup ];
 
-  preConfigure = "./autogen.sh";
+  preConfigure = "NOCONFIGURE=1 ./autogen.sh";
 
   meta = with lib; {
     description = "Project for mocking web service APIs which use HTTP or HTTPS";
diff --git a/pkgs/development/libraries/uid_wrapper/default.nix b/pkgs/development/libraries/uid_wrapper/default.nix
index ec7626a7e8bcf..8ba9066de32bf 100644
--- a/pkgs/development/libraries/uid_wrapper/default.nix
+++ b/pkgs/development/libraries/uid_wrapper/default.nix
@@ -1,11 +1,12 @@
 { lib, stdenv, fetchurl, cmake, pkg-config }:
 
 stdenv.mkDerivation rec {
-  name = "uid_wrapper-1.2.8";
+  pname = "uid_wrapper";
+  version = "1.2.9";
 
   src = fetchurl {
-    url = "mirror://samba/cwrap/${name}.tar.gz";
-    sha256 = "0swm9d8l69dw7nbrw6xh7rdy7cfrqflw3hxshicsrhd9v03iwvqf";
+    url = "mirror://samba/cwrap/uid_wrapper-${version}.tar.gz";
+    sha256 = "sha256-fowCQHKCX+hrq0ZZHPS5CeOZz5j1SCL55SdC9CAEcIQ=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/libraries/umockdev/default.nix b/pkgs/development/libraries/umockdev/default.nix
index d432fd158892d..25773027941d0 100644
--- a/pkgs/development/libraries/umockdev/default.nix
+++ b/pkgs/development/libraries/umockdev/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "umockdev";
-  version = "0.16.3";
+  version = "0.17.1";
 
   outputs = [ "bin" "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "https://github.com/martinpitt/umockdev/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "TjHxqtz8mPhzpsMb5lXWdj8hx/whsadTfor4S2x4U2M=";
+    sha256 = "sha256-lq8lVQlSZpFGDL7nGV8pPe+AClK8PjzWoPmhfWvHpJs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/unicorn/default.nix b/pkgs/development/libraries/unicorn/default.nix
index 2be3c95082914..ce1f91eee8671 100644
--- a/pkgs/development/libraries/unicorn/default.nix
+++ b/pkgs/development/libraries/unicorn/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "unicorn";
-  version = "2.0.0-rc4";
+  version = "2.0.0-rc5";
 
   src = fetchFromGitHub {
     owner = "unicorn-engine";
     repo = pname;
     rev = version;
-    sha256 = "sha256-dNBebXp8HVmmY1RVRYuRFoJ3PStCf4taNTeYKi2lhQM=";
+    sha256 = "1q9k8swnq4qsi54zdfaap69z56w3yj4n4ggm9pscmmmr69nply5f";
   };
 
   nativeBuildInputs = [ pkg-config cmake ];
diff --git a/pkgs/development/libraries/usbredir/default.nix b/pkgs/development/libraries/usbredir/default.nix
index 141c9edbd2372..60f532b9779a1 100644
--- a/pkgs/development/libraries/usbredir/default.nix
+++ b/pkgs/development/libraries/usbredir/default.nix
@@ -11,14 +11,14 @@
 
 stdenv.mkDerivation rec {
   pname = "usbredir";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "spice";
     repo = "usbredir";
     rev = "${pname}-${version}";
-    sha256 = "1ra8vpi6wdq1fvvqzx4ny2ga0p0q1cwz72gr15nghyfp75y3d31l";
+    sha256 = "sha256-OVLc3FWLBjWJnqIhhe6k+pl/HsJGzqD6xp/fXXEgRwY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/ustr/default.nix b/pkgs/development/libraries/ustr/default.nix
index 2b04d8c0c5b78..564a996949d8a 100644
--- a/pkgs/development/libraries/ustr/default.nix
+++ b/pkgs/development/libraries/ustr/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.and.org/ustr/";
     description = "Micro String API for C language";
     license = licenses.bsd2;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/utf8proc/default.nix b/pkgs/development/libraries/utf8proc/default.nix
index b78999e96a767..ec8dab3f90c76 100644
--- a/pkgs/development/libraries/utf8proc/default.nix
+++ b/pkgs/development/libraries/utf8proc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "utf8proc";
-  version = "2.6.1";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "JuliaStrings";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zqc6airkzkssbjxanx5v8blfk90180gc9id0dx8ncs54f1ib8w7";
+    sha256 = "sha256-UjZFW+ECU1qbKoo2J2GE8gMEas7trz7YI4mqF5WtOvM=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -19,12 +19,6 @@ stdenv.mkDerivation rec {
     "-DCMAKE_SKIP_BUILD_RPATH=OFF"
   ];
 
-  # the pkg-config file is not created in the cmake installation
-  # process, so we use the Makefile and install it manually
-  # see https://github.com/JuliaStrings/utf8proc/issues/198
-  preConfigure = "make libutf8proc.pc prefix=$out";
-  postInstall = "install -Dm644 ../libutf8proc.pc -t $out/lib/pkgconfig/";
-
   doCheck = true;
 
   meta = with lib; {
@@ -32,6 +26,6 @@ stdenv.mkDerivation rec {
     homepage = "https://juliastrings.github.io/utf8proc/";
     license = licenses.mit;
     platforms = platforms.all;
-    maintainers = [ maintainers.ftrvxmtrx ];
+    maintainers = [ maintainers.ftrvxmtrx maintainers.sternenseemann ];
   };
 }
diff --git a/pkgs/development/libraries/utmps/default.nix b/pkgs/development/libraries/utmps/default.nix
index fcf032b265007..84f5b26c300c6 100644
--- a/pkgs/development/libraries/utmps/default.nix
+++ b/pkgs/development/libraries/utmps/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "utmps";
-  version = "0.1.0.3";
-  sha256 = "0npgg90lzxmhld6hp296gbnrsixip28s7axirc2g6yjpjz2bvcan";
+  version = "0.1.1.0";
+  sha256 = "0vsx5b99fwmp05l4wsw744gg79hbfb4wlzyfip3k0g76fcs49nil";
 
   description = "A secure utmpx and wtmp implementation";
 
diff --git a/pkgs/development/libraries/v8/plv8_6_x.nix b/pkgs/development/libraries/v8/plv8_6_x.nix
deleted file mode 100644
index 71e14a82c3e5d..0000000000000
--- a/pkgs/development/libraries/v8/plv8_6_x.nix
+++ /dev/null
@@ -1,189 +0,0 @@
-# NOTE: this expression is NOT exported from the top-level of all-packages.nix,
-# it is exclusively used by the 'plv8' PostgreSQL extension.
-# Since plv8 2.3.2, plv8 no longer requires this specific version, but as of
-# 2019-08-29, nixpkgs does not have v8 6.x, and v8_5 is bumped to 5.4.232, which
-# is a bit outdated.  plv8 3.x is planned to support v8 7.x
-
-{ stdenv, lib, fetchgit, fetchFromGitHub, gn, ninja, python, glib, pkg-config
-, doCheck ? false
-, snapshot ? true
-}:
-
-let
-  arch = if stdenv.isAarch32
-         then if stdenv.is64bit
-              then"arm64"
-              else "arm"
-         else if stdenv.is64bit
-              then"x64"
-              else "ia32";
-  git_url = "https://chromium.googlesource.com";
-
-  # This data is from the DEPS file in the root of a V8 checkout
-  deps = {
-    "base/trace_event/common" = fetchgit {
-      url    = "${git_url}/chromium/src/base/trace_event/common.git";
-      rev    = "0e9a47d74970bee1bbfc063c47215406f8918699";
-      sha256 = "07rbzrlscp8adh4z86yl5jxdnvgkc3xs950xldpk318wf9i3bh6c";
-    };
-    build = fetchgit {
-      url    = "${git_url}/chromium/src/build.git";
-      rev    = "9338ce52d0b9bcef34c38285fbd5023b62739fac";
-      sha256 = "1s2sa8dy3waidsirjylc82ggb18l1108bczjc8z0v4ywyj4k0cvh";
-    };
-    buildtools = fetchgit {
-      url    = "${git_url}/chromium/buildtools.git";
-      rev    = "505de88083136eefd056e5ee4ca0f01fe9b33de8";
-      sha256 = "0vj216nhb803bggsl0hnyagj8njrm96pn8sim6xcnqb7nhz1vabw";
-    };
-    "test/benchmarks/data" = fetchgit {
-      url    = "${git_url}/v8/deps/third_party/benchmarks.git";
-      rev    = "05d7188267b4560491ff9155c5ee13e207ecd65f";
-      sha256 = "0ad2ay14bn67d61ks4dmzadfnhkj9bw28r4yjdjjyzck7qbnzchl";
-    };
-    "test/mozilla/data" = fetchgit {
-      url    = "${git_url}/v8/deps/third_party/mozilla-tests.git";
-      rev    = "f6c578a10ea707b1a8ab0b88943fe5115ce2b9be";
-      sha256 = "0rfdan76yfawqxbwwb35aa57b723j3z9fx5a2w16nls02yk2kqyn";
-    };
-    "test/test262/data" = fetchgit {
-      url    = "${git_url}/external/github.com/tc39/test262.git";
-      rev    = "5d4c667b271a9b39d0de73aef5ffe6879c6f8811";
-      sha256 = "0q9iwb2nkybf9np95wgf5m372aw2lhx9wlsw41a2a80kbkvb2kqg";
-    };
-    "test/test262/harness" = fetchgit {
-      url    = "${git_url}/external/github.com/test262-utils/test262-harness-py.git";
-      rev    = "0f2acdd882c84cff43b9d60df7574a1901e2cdcd";
-      sha256 = "00brj5avp43yamc92kinba2mg3a2x1rcd7wnm7z093l73idprvkp";
-    };
-    "test/wasm-js" = fetchgit {
-      url    = "${git_url}/external/github.com/WebAssembly/spec.git";
-      rev    = "a7e226a92e660a3d5413cfea4269824f513259d2";
-      sha256 = "0z3aybj3ykajwh2bv5fwd6pwqjjsq8dnwrqc2wncb6r9xcjwbgxp";
-    };
-    "testing/gtest" = fetchgit {
-      url    = "${git_url}/external/github.com/google/googletest.git";
-      rev    = "6f8a66431cb592dad629028a50b3dd418a408c87";
-      sha256 = "0bdba2lr6pg15bla9600zg0r0vm4lnrx0wqz84p376wfdxra24vw";
-    };
-    "third_party/icu" = fetchgit {
-      url    = "${git_url}/chromium/deps/icu.git";
-      rev    = "741688ebf328da9adc52505248bf4e2ef868722c";
-      sha256 = "02ifm18qjlrkn5nm2rxkf9yz9bdlyq7c65jfjndv63vi1drqh1r9";
-    };
-    "third_party/instrumented_libraries" = fetchgit {
-      url    = "${git_url}/chromium/src/third_party/instrumented_libraries.git";
-      rev    = "28417458ac4dc79f68915079d0f283f682504cc0";
-      sha256 = "1qf5c2946n37p843yriv7xawi6ss6samabghq43s49cgd4wq8dc3";
-    };
-    "third_party/jinja2" = fetchgit {
-      url    = "${git_url}/chromium/src/third_party/jinja2.git";
-      rev    = "d34383206fa42d52faa10bb9931d6d538f3a57e0";
-      sha256 = "0d9hyw0bvp3p0dbwy833cm9vdqxcam0qbm9jc561ynphddxlkmgd";
-    };
-    "third_party/markupsafe" = fetchgit {
-      url    = "${git_url}/chromium/src/third_party/markupsafe.git";
-      rev    = "8f45f5cfa0009d2a70589bcda0349b8cb2b72783";
-      sha256 = "168ppjmicfdh4i1l0l25s86mdbrz9fgxmiq1rx33x79mph41scfz";
-    };
-    "tools/clang" = fetchgit {
-      url    = "${git_url}/chromium/src/tools/clang.git";
-      rev    = "8688d267571de76a56746324dcc249bf4232b85a";
-      sha256 = "0krq4zz1vnwp064bm517gwr2napy18wyccdh8w5s4qgkjwwxd63s";
-    };
-    "tools/gyp" = fetchgit {
-      url    = "${git_url}/external/gyp.git";
-      rev    = "d61a9397e668fa9843c4aa7da9e79460fe590bfb";
-      sha256 = "1z081h72mjy285jb1kj5xd0pb4p12n9blvsimsavyn3ldmswv0r0";
-    };
-    "tools/luci-go" = fetchgit {
-      url    = "${git_url}/chromium/src/tools/luci-go.git";
-      rev    = "45a8a51fda92e123619a69e7644d9c64a320b0c1";
-      sha256 = "0r7736gqk7r0i7ig0b5ib10d9q8a8xzsmc0f0fbkm9k78v847vpj";
-    };
-    "tools/swarming_client" = fetchgit {
-      url    = "${git_url}/infra/luci/client-py.git";
-      rev    = "4bd9152f8a975d57c972c071dfb4ddf668e02200";
-      sha256 = "03zk91gzvqv01g1vbl8d7h8al7vs4ymrrdc8ipg9wpq52yh65smh";
-    };
-  };
-
-in
-
-stdenv.mkDerivation rec {
-  pname = "v8";
-  version = "6.4.388.40";
-
-  inherit doCheck;
-
-  src = fetchFromGitHub {
-    owner = "v8";
-    repo = "v8";
-    rev = version;
-    sha256 = "1lq239cgqyidrynz8g3wbdv70ymzv6s0ppad8s219gb3jnizm16a";
-  };
-
-  postUnpack = ''
-    ${lib.concatStringsSep "\n" (
-      lib.mapAttrsToList (n: v: ''
-        mkdir -p $sourceRoot/${n}
-        cp -r ${v}/* $sourceRoot/${n}
-      '') deps)}
-  '';
-
-  prePatch = ''
-    # use our gn, not the bundled one
-    sed -i -e 's#gn_path = .*#gn_path = "${gn}/bin/gn"#' tools/mb/mb.py
-
-    # disable tests
-    if [ "$doCheck" = "" ]; then sed -i -e '/"test:gn_all",/d' BUILD.gn; fi
-
-    # disable sysroot usage
-    chmod u+w build/config build/config/sysroot.gni
-    sed -i build/config/sysroot.gni \
-        -e '/use_sysroot =/ { s#\(use_sysroot =\).*#\1 false#; :a  n; /current_cpu/ { s/^/#/; ba };  }'
-
-    # patch shebangs (/usr/bin/env)
-    patchShebangs tools/dev/v8gen.py
-  '';
-
-  configurePhase = ''
-    tools/dev/v8gen.py -vv ${arch}.release -- \
-        is_component_build=true               \
-        ${if snapshot then "v8_use_external_startup_data=false" else "v8_use_snapshot=false"} \
-        is_clang=false                        \
-        linux_use_bundled_binutils=false      \
-        treat_warnings_as_errors=false        \
-        use_custom_libcxx=false               \
-        use_custom_libcxx_for_host=false
-  '';
-
-  nativeBuildInputs = [ gn ninja pkg-config ];
-  buildInputs = [ python glib ];
-
-  buildPhase = ''
-    ninja -C out.gn/${arch}.release/
-  '';
-
-  enableParallelBuilding = true;
-
-  installPhase = ''
-    install -vD out.gn/${arch}.release/d8 "$out/bin/d8"
-    install -vD out.gn/${arch}.release/mksnapshot "$out/bin/mksnapshot"
-    mkdir -p "$out/lib"
-    for f in libicui18n.so libicuuc.so libv8_libbase.so libv8_libplatform.so libv8.so; do
-        install -vD out.gn/${arch}.release/$f "$out/lib/$f"
-    done
-    install -vD out.gn/${arch}.release/icudtl.dat "$out/lib/icudtl.dat"
-    mkdir -p "$out/include"
-    cp -vr include/*.h "$out/include"
-    cp -vr include/libplatform "$out/include"
-  '';
-
-  meta = with lib; {
-    description = "Google's open source JavaScript engine";
-    maintainers = with maintainers; [ cstrahan proglodyte ];
-    platforms = platforms.linux;
-    license = licenses.bsd3;
-  };
-}
diff --git a/pkgs/development/libraries/virglrenderer/default.nix b/pkgs/development/libraries/virglrenderer/default.nix
index 4c4af6b2c1f8c..1fbf94452f769 100644
--- a/pkgs/development/libraries/virglrenderer/default.nix
+++ b/pkgs/development/libraries/virglrenderer/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, cmake, meson, ninja, pkg-config, python3
-, libGLU, epoxy, libX11, libdrm, mesa
+, libGLU, libepoxy, libX11, libdrm, mesa
 }:
 
 stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1h76a1ylhh4niq33sa5knx033sr4k2816vibh4m58j54y7qc6346";
   };
 
-  buildInputs = [ libGLU epoxy libX11 libdrm mesa ];
+  buildInputs = [ libGLU libepoxy libX11 libdrm mesa ];
 
   nativeBuildInputs = [ cmake meson ninja pkg-config python3 ];
 
diff --git a/pkgs/development/libraries/wayland/default.nix b/pkgs/development/libraries/wayland/default.nix
index 08741c29dd6d1..1d6bf0f7aa486 100644
--- a/pkgs/development/libraries/wayland/default.nix
+++ b/pkgs/development/libraries/wayland/default.nix
@@ -78,6 +78,7 @@ stdenv.mkDerivation rec {
     xmlto
     python3
     docbook_xml_dtd_45
+    docbook_xsl
   ];
 
   buildInputs = [
diff --git a/pkgs/development/libraries/wayland/protocols.nix b/pkgs/development/libraries/wayland/protocols.nix
index 71131516f9428..73fef21eccb76 100644
--- a/pkgs/development/libraries/wayland/protocols.nix
+++ b/pkgs/development/libraries/wayland/protocols.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wayland-protocols";
-  version = "1.23";
+  version = "1.24";
 
   doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
 
   src = fetchurl {
     url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "0xizccackgwszjhlq7jjiv2z2gwppljx0w32ga91bxlnby8z22kc";
+    sha256 = "1hlb6gvyqlmsdkv5179ccj07p04cn6xacjkgklakbszczv7xiw5z";
   };
 
   postPatch = lib.optionalString doCheck ''
diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix
index 304dfbc2e7849..d8b7bbc6d65b8 100644
--- a/pkgs/development/libraries/webkitgtk/default.nix
+++ b/pkgs/development/libraries/webkitgtk/default.nix
@@ -21,7 +21,7 @@
 , enchant2
 , xorg
 , libxkbcommon
-, epoxy
+, libepoxy
 , at-spi2-core
 , libxml2
 , libsoup
@@ -64,7 +64,7 @@ assert enableGeoLocation -> geoclue2 != null;
 
 stdenv.mkDerivation rec {
   pname = "webkitgtk";
-  version = "2.34.1";
+  version = "2.34.3";
 
   outputs = [ "out" "dev" ];
 
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://webkitgtk.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "sha256-RDwTFnBd4CR0F0joX+MjJNKZ2e5o5v6zQLieSgQHPe4=";
+    sha256 = "sha256-DS83qjLiGjbk3Vpc565c4nQ1wp1oA7liuMkMsMxJxS0=";
   };
 
   patches = lib.optionals stdenv.isLinux [
@@ -112,7 +112,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     at-spi2-core
     enchant2
-    epoxy
+    libepoxy
     gnutls
     gst-plugins-bad
     gst-plugins-base
diff --git a/pkgs/development/libraries/webrtc-audio-processing/default.nix b/pkgs/development/libraries/webrtc-audio-processing/default.nix
index d757789fc2689..1ce3c2d9fa8be 100644
--- a/pkgs/development/libraries/webrtc-audio-processing/default.nix
+++ b/pkgs/development/libraries/webrtc-audio-processing/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, darwin }:
 
 stdenv.mkDerivation rec {
-  name = "webrtc-audio-processing-0.3.1";
+  pname = "webrtc-audio-processing";
+  version = "0.3.1";
 
   src = fetchurl {
-    url = "https://freedesktop.org/software/pulseaudio/webrtc-audio-processing/${name}.tar.xz";
+    url = "https://freedesktop.org/software/pulseaudio/webrtc-audio-processing/webrtc-audio-processing-${version}.tar.xz";
     sha256 = "1gsx7k77blfy171b6g3m0k0s0072v6jcawhmx1kjs9w5zlwdkzd0";
   };
 
diff --git a/pkgs/development/libraries/wlroots/protocols.nix b/pkgs/development/libraries/wlroots/protocols.nix
new file mode 100644
index 0000000000000..0ec1584055876
--- /dev/null
+++ b/pkgs/development/libraries/wlroots/protocols.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, fetchFromGitLab, wayland-scanner }:
+
+stdenv.mkDerivation rec {
+  pname = "wlr-protocols";
+  version = "unstable-2021-11-01";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "wlroots";
+    repo = "wlr-protocols";
+    rev = "d998ee6fc64ea7e066014023653d1271b7702c09";
+    sha256 = "1vw8b10d1pwsj6f4sr3imvwsy55d3435sp068sj4hdszkxc6axsr";
+  };
+
+  checkInputs = [ wayland-scanner ];
+
+  patchPhase = ''
+    substituteInPlace wlr-protocols.pc.in \
+      --replace '=''${pc_sysrootdir}' "=" \
+      --replace '=@prefix@' "=$out"
+
+    substituteInPlace Makefile \
+      --replace 'wlr-output-power-management-v1.xml' 'wlr-output-power-management-unstable-v1.xml'
+  '';
+
+  doCheck = true;
+  checkPhase = ''
+    make check
+  '';
+
+  installFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
+
+  meta = with lib; {
+    description = "Wayland roots protocol extensions";
+    longDescription = ''
+      wlr-protocols contains Wayland protocols that add functionality not
+      available in the Wayland core protocol, and specific to wlroots-based
+      compositors. Such protocols either add completely new functionality, or
+      extend the functionality of some other protocol either in Wayland core,
+      or some other protocol in wayland-protocols.
+    '';
+    homepage    = "https://gitlab.freedesktop.org/wlroots/wlr-protocols";
+    license     = licenses.mit; # See file headers
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ twitchyliquid64 ];
+  };
+}
diff --git a/pkgs/development/libraries/wt/default.nix b/pkgs/development/libraries/wt/default.nix
index cb3ceeae2f1c1..934369ac8e85e 100644
--- a/pkgs/development/libraries/wt/default.nix
+++ b/pkgs/development/libraries/wt/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, cmake, boost, pkg-config, doxygen, qt48Full, libharu
 , pango, fcgi, firebird, libmysqlclient, postgresql, graphicsmagick, glew, openssl
-, pcre, harfbuzz
+, pcre, harfbuzz, icu
 }:
 
 let
@@ -21,7 +21,7 @@ let
       buildInputs = [
         boost doxygen qt48Full libharu
         pango fcgi firebird libmysqlclient postgresql graphicsmagick glew
-        openssl pcre harfbuzz
+        openssl pcre harfbuzz icu
       ];
 
       cmakeFlags = [
@@ -45,12 +45,12 @@ let
     };
 in {
   wt3 = generic {
-    version = "3.5.0";
-    sha256 = "1xcwzldbval5zrf7f3n2gkpscagg51cw2jp6p3q1yh6bi59haida";
+    version = "3.7.1";
+    sha256 = "19gf5lbrc5shpvcdyzjh20k8zdj4cybxqvkhwqfl9rvhw89qr11k";
   };
 
   wt4 = generic {
-    version = "4.5.0";
-    sha256 = "16svzdma2mc2ggnpy5z7m1ggzhd5nrccmmj8xnc7bd1dd3486xwv";
+    version = "4.6.1";
+    sha256 = "04pv4kb8d576bfnd9kjc3cfjls9cm3cgpaiabwb3iyq9z0w585gh";
   };
 }
diff --git a/pkgs/development/libraries/xml-security-c/default.nix b/pkgs/development/libraries/xml-security-c/default.nix
index c3275c0ad5072..925f9553fdfcb 100644
--- a/pkgs/development/libraries/xml-security-c/default.nix
+++ b/pkgs/development/libraries/xml-security-c/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xml-security-c";
-  version = "2.0.2";
+  version = "2.0.4";
 
   src = fetchurl {
     url = "mirror://apache/santuario/c-library/${pname}-${version}.tar.gz";
-    sha256 = "1prh5sxzipkqglpsh53iblbr7rxi54wbijxdjiahzjmrijqa40y3";
+    sha256 = "sha256-p42mcg9sK6FBANJCYTHg0z6sWi26XMEb3QSXS364kAM=";
   };
 
   configureFlags = [
diff --git a/pkgs/development/libraries/zlib-ng/default.nix b/pkgs/development/libraries/zlib-ng/default.nix
index 4323d8adda056..0ae0def3725d5 100644
--- a/pkgs/development/libraries/zlib-ng/default.nix
+++ b/pkgs/development/libraries/zlib-ng/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zlib-ng";
-  version = "2.0.5";
+  version = "2.0.6";
 
   src = fetchFromGitHub {
     owner = "zlib-ng";
     repo = "zlib-ng";
     rev = version;
-    sha256 = "sha256-KvV1XtPoagqPmijdr20eejsXWG7PRjMUwGPLXazqUHM=";
+    sha256 = "sha256-8siO8NY+hIkYmumqglirh7HulRIyWSwsyGkAbHSFuhw=";
   };
 
   outputs = [ "out" "dev" "bin" ];
diff --git a/pkgs/development/libraries/zydis/default.nix b/pkgs/development/libraries/zydis/default.nix
index 20f403eb86667..7009123a45286 100644
--- a/pkgs/development/libraries/zydis/default.nix
+++ b/pkgs/development/libraries/zydis/default.nix
@@ -1,23 +1,30 @@
-{ lib, stdenv, fetchFromGitHub, cmake }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+}:
 
 stdenv.mkDerivation rec {
   pname = "zydis";
-  version = "3.2.0";
+  version = "3.2.1";
 
   src = fetchFromGitHub {
     owner = "zyantific";
     repo = "zydis";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-1XGELwMuFlIt6Z3+kfD6VAgDZOwhhCSG42dkYh7WLf8=";
+    sha256 = "sha256-FB7hGQ9vI3ZE376iROEpdtZm91IiccBhtAFa94JgnUY=";
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [
+    cmake
+  ];
 
   meta = with lib; {
+    homepage = "https://zydis.re/";
     description = "Fast and lightweight x86/x86-64 disassembler library";
     license = licenses.mit;
-    maintainers = [ maintainers.jbcrail ];
+    maintainers = with maintainers; [ jbcrail AndersonTorres ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/lisp-modules/asdf/2.26.nix b/pkgs/development/lisp-modules/asdf/2.26.nix
index e2f655a5b6ea4..05851777a7fe0 100644
--- a/pkgs/development/lisp-modules/asdf/2.26.nix
+++ b/pkgs/development/lisp-modules/asdf/2.26.nix
@@ -1,23 +1,19 @@
-{lib, stdenv, fetchurl, texinfo, texLive, perl}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="asdf";
-    version="2.26";
-    name="${baseName}-${version}";
-    url="http://common-lisp.net/project/asdf/archives/asdf-${version}.tar.gz";
-    sha256="1qzp444rgnqf1cz9v48nh0yvz7wjq9fjdpimifsfcjswaqi2xrdn";
+{ lib, stdenv, fetchurl, texinfo, texLive, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "asdf";
+  version = "2.26";
+
+  src = fetchurl {
+    url = "http://common-lisp.net/project/asdf/archives/asdf-${version}.tar.gz";
+    sha256 = "sha256-tuUuIlZcS+a0izXeJl3Ckp+/PYAWkZ0+Cw7blwkh9+M=";
   };
+
   buildInputs = [
-    texinfo texLive perl
+    texinfo
+    texLive
+    perl
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
 
   buildPhase = ''
     make asdf.lisp
@@ -31,11 +27,11 @@ stdenv.mkDerivation {
     cp -r doc/* "$out"/share/doc/asdf/
     ln -s  "$out"/lib/common-lisp/{asdf/uiop,uiop}
   '';
+
   meta = with lib; {
-    inherit (s) version;
     description = "Standard software-system definition library for Common Lisp";
     license = licenses.mit;
-    maintainers = [maintainers.raskin];
+    maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/lisp-modules/asdf/3.1.nix b/pkgs/development/lisp-modules/asdf/3.1.nix
index 7e697d3a63766..11cee90bf1fea 100644
--- a/pkgs/development/lisp-modules/asdf/3.1.nix
+++ b/pkgs/development/lisp-modules/asdf/3.1.nix
@@ -1,23 +1,19 @@
-{lib, stdenv, fetchurl, texinfo, texLive, perl}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="asdf";
-    version="3.1.7";
-    name="${baseName}-${version}";
-    url="http://common-lisp.net/project/asdf/archives/asdf-${version}.tar.gz";
-    sha256="1g8wp3vi7gwrs22gnjy9lvrxqag3m8apxnryfs8n5bv6rln8bzzq";
+{ lib, stdenv, fetchurl, texinfo, texLive, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "asdf";
+  version = "3.1.7";
+
+  src = fetchurl {
+    url = "http://common-lisp.net/project/asdf/archives/asdf-${version}.tar.gz";
+    sha256 = "sha256-+P+FLM1mr2KRdj7bfhWq4ync86bJS/uE0Jm/E/e4HL0=";
   };
+
   buildInputs = [
-    texinfo texLive perl
+    texinfo
+    texLive
+    perl
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
 
   buildPhase = ''
     make build/asdf.lisp
@@ -30,11 +26,11 @@ stdenv.mkDerivation {
     cp -r doc/* "$out"/share/doc/asdf/
     ln -s  "$out"/lib/common-lisp/{asdf/uiop,uiop}
   '';
+
   meta = with lib; {
-    inherit (s) version;
     description = "Standard software-system definition library for Common Lisp";
-    license = licenses.mit ;
-    maintainers = [maintainers.raskin];
+    license = licenses.mit;
+    maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/lisp-modules/asdf/default.nix b/pkgs/development/lisp-modules/asdf/default.nix
index eecea3f98b636..d1b45cb32c33b 100644
--- a/pkgs/development/lisp-modules/asdf/default.nix
+++ b/pkgs/development/lisp-modules/asdf/default.nix
@@ -1,24 +1,19 @@
-{lib, stdenv, fetchurl, texinfo, texLive, perl}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="asdf";
-    version="3.3.4";
-    name="${baseName}-${version}";
-    hash="07npcxgq2m07w78k8gnz9i73kbw6ky2zh2pylhh9b69jvncdqkpy";
-    url="http://common-lisp.net/project/asdf/archives/asdf-3.3.4.tar.gz";
-    sha256="07npcxgq2m07w78k8gnz9i73kbw6ky2zh2pylhh9b69jvncdqkpy";
+{ lib, stdenv, fetchurl, texinfo, texLive, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "asdf";
+  version = "3.3.4";
+
+  src = fetchurl {
+    url = "http://common-lisp.net/project/asdf/archives/asdf-${version}.tar.gz";
+    sha256 = "sha256-/k7cmN0ymZUgpP4K+IWfhq85TkzfPjTR4QdUgV9n1x4=";
   };
+
   buildInputs = [
-    texinfo texLive perl
+    texinfo
+    texLive
+    perl
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
 
   buildPhase = ''
     make build/asdf.lisp
@@ -31,11 +26,11 @@ stdenv.mkDerivation {
     cp -r doc/* "$out"/share/doc/asdf/
     ln -s  "$out"/lib/common-lisp/{asdf/uiop,uiop}
   '';
+
   meta = with lib; {
-    inherit (s) version;
     description = "Standard software-system definition library for Common Lisp";
-    license = licenses.mit ;
-    maintainers = [maintainers.raskin];
+    license = licenses.mit;
+    maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/lisp-modules/asdf/default.upstream b/pkgs/development/lisp-modules/asdf/default.upstream
deleted file mode 100644
index d8625182352f3..0000000000000
--- a/pkgs/development/lisp-modules/asdf/default.upstream
+++ /dev/null
@@ -1,2 +0,0 @@
-url http://common-lisp.net/project/asdf/archives/
-version_link asdf-[0-9].*[.]tar[.].*
diff --git a/pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh b/pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh
index 828920c5acccc..d6fec46b449ea 100755
--- a/pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh
+++ b/pkgs/development/lisp-modules/clwrapper/cl-wrapper.sh
@@ -18,59 +18,59 @@ fi
 export NIX_LISP NIX_LISP_LOAD_FILE NIX_LISP_EXEC_CODE NIX_LISP_COMMAND NIX_LISP_FINAL_PARAMETERS
 
 test -n "$NIX_LISP_LD_LIBRARY_PATH" &&
-	export LD_LIBRARY_PATH="$LD_LIBRARY_PATH${LD_LIBRARY_PATH:+:}$NIX_LISP_LD_LIBRARY_PATH"
+        export LD_LIBRARY_PATH="$LD_LIBRARY_PATH${LD_LIBRARY_PATH:+:}$NIX_LISP_LD_LIBRARY_PATH"
 
 declare -a NIX_LISP_FINAL_PARAMETERS;
 
 case "$NIX_LISP" in
-	sbcl)
-		NIX_LISP_LOAD_FILE="--load"
-		NIX_LISP_EXEC_CODE="--eval"
+        sbcl)
+                NIX_LISP_LOAD_FILE="--load"
+                NIX_LISP_EXEC_CODE="--eval"
                 NIX_LISP_QUIT="(quit)"
                 NIX_LISP_NODEBUG='--non-interactive'
-		NIX_LISP_FINAL_PARAMETERS=
+                NIX_LISP_FINAL_PARAMETERS=
                 NIX_LISP_FASL_TYPE="fasl"
-		;;
-	ecl)
-		NIX_LISP_LOAD_FILE="-load"
-		NIX_LISP_EXEC_CODE="-eval"
+                ;;
+        ecl)
+                NIX_LISP_LOAD_FILE="-load"
+                NIX_LISP_EXEC_CODE="-eval"
                 NIX_LISP_QUIT="(quit)"
                 NIX_LISP_NODEBUG='--nodebug'
-		NIX_LISP_FINAL_PARAMETERS=
+                NIX_LISP_FINAL_PARAMETERS=
                 NIX_LISP_FASL_TYPE="fas"
-		;;
-	clisp)
-		NIX_LISP_LOAD_FILE="-c -l"
-		NIX_LISP_EXEC_CODE="-x"
+                ;;
+        clisp)
+                NIX_LISP_LOAD_FILE="-c -l"
+                NIX_LISP_EXEC_CODE="-x"
                 NIX_LISP_QUIT="(quit)"
                 NIX_LISP_NODEBUG='-on-error exit'
-		NIX_LISP_FINAL_PARAMETERS="-repl"
+                NIX_LISP_FINAL_PARAMETERS="-repl"
                 NIX_LISP_FASL_TYPE="fas"
-		;;
-	lx86cl64)
-		NIX_LISP_LOAD_FILE="-l"
-		NIX_LISP_EXEC_CODE="-e"
+                ;;
+        lx86cl64)
+                NIX_LISP_LOAD_FILE="-l"
+                NIX_LISP_EXEC_CODE="-e"
                 NIX_LISP_QUIT="(quit)"
                 NIX_LISP_NODEBUG='-b'
-		NIX_LISP_FINAL_PARAMETERS=
+                NIX_LISP_FINAL_PARAMETERS=
                 NIX_LISP_FASL_TYPE="lx64fsl"
-		;;
-	lx86cl)
-		NIX_LISP_LOAD_FILE="-l"
-		NIX_LISP_EXEC_CODE="-e"
+                ;;
+        lx86cl)
+                NIX_LISP_LOAD_FILE="-l"
+                NIX_LISP_EXEC_CODE="-e"
                 NIX_LISP_QUIT="(quit)"
                 NIX_LISP_NODEBUG='-b'
-		NIX_LISP_FINAL_PARAMETERS=
+                NIX_LISP_FINAL_PARAMETERS=
                 NIX_LISP_FASL_TYPE="lx32fsl"
-		;;
-	abcl)
-		NIX_LISP_LOAD_FILE="--load"
-		NIX_LISP_EXEC_CODE="--eval"
+                ;;
+        abcl)
+                NIX_LISP_LOAD_FILE="--load"
+                NIX_LISP_EXEC_CODE="--eval"
                 NIX_LISP_QUIT="(quit)"
                 NIX_LISP_NODEBUG=''
-		NIX_LISP_FINAL_PARAMETERS=
+                NIX_LISP_FINAL_PARAMETERS=
                 NIX_LISP_FASL_TYPE="abcl"
-		;;
+                ;;
 esac
 
 NIX_LISP_ASDF_REGISTRY_CODE="
@@ -127,8 +127,8 @@ eval "$NIX_LISP_PRELAUNCH_HOOK"
 
 if [ -z "$NIX_LISP_SKIP_CODE" ]; then
     "$NIX_LISP_COMMAND" $NIX_LISP_EARLY_OPTIONS \
-	                $NIX_LISP_EXEC_CODE "${NIX_LISP_ASDF_LOAD:-"(load \"$NIX_LISP_ASDF/lib/common-lisp/asdf/build/asdf.$NIX_LISP_FASL_TYPE\")"}" \
-	                $NIX_LISP_EXEC_CODE "$NIX_LISP_ASDF_REGISTRY_CODE" \
-	                ${NIX_LISP_FINAL_PARAMETERS[*]:+"${NIX_LISP_FINAL_PARAMETERS[@]}"} \
-	                "$@"
+                        $NIX_LISP_EXEC_CODE "${NIX_LISP_ASDF_LOAD:-"(load \"$NIX_LISP_ASDF/lib/common-lisp/asdf/build/asdf.$NIX_LISP_FASL_TYPE\")"}" \
+                        $NIX_LISP_EXEC_CODE "$NIX_LISP_ASDF_REGISTRY_CODE" \
+                        ${NIX_LISP_FINAL_PARAMETERS[*]:+"${NIX_LISP_FINAL_PARAMETERS[@]}"} \
+                        "$@"
 fi
diff --git a/pkgs/development/lisp-modules/from-quicklisp/asdf-description.sh b/pkgs/development/lisp-modules/from-quicklisp/asdf-description.sh
index 6c240d15c76e3..bdb5981bf4fb3 100755
--- a/pkgs/development/lisp-modules/from-quicklisp/asdf-description.sh
+++ b/pkgs/development/lisp-modules/from-quicklisp/asdf-description.sh
@@ -11,6 +11,6 @@
 name="$1"
 
 sbcl --noinform --load "$NIX_QUICKLISP_DIR"/setup.lisp --eval "(ql:quickload :$name)" \
-	--eval "(format t \"~a~%\" (or (asdf::system-description (asdf::find-system \"$name\")) \"\"))" \
-	--eval '(quit)' --script |
+    --eval "(format t \"~a~%\" (or (asdf::system-description (asdf::find-system \"$name\")) \"\"))" \
+    --eval '(quit)' --script |
     tee /dev/stderr | tail -n 1
diff --git a/pkgs/development/lisp-modules/from-quicklisp/barebones-quicklisp-expression.sh b/pkgs/development/lisp-modules/from-quicklisp/barebones-quicklisp-expression.sh
index d2d846b78f2bb..f8bae8997272c 100755
--- a/pkgs/development/lisp-modules/from-quicklisp/barebones-quicklisp-expression.sh
+++ b/pkgs/development/lisp-modules/from-quicklisp/barebones-quicklisp-expression.sh
@@ -122,8 +122,8 @@ url="${ql_src##* }"
   with (import <nixpkgs> {});
       fetchdarcs {
         url=''$url'';
-	rev=''$version'';
-	sha256=''0000000000000000000000000000000000000000000000000000000000000000'';
+    rev=''$version'';
+    sha256=''0000000000000000000000000000000000000000000000000000000000000000'';
     }" | nix-instantiate - | tail -n 1 |
     xargs nix-store -r 2>&1 | tee /dev/stderr | grep 'instead has' | tail -n 1 |
     sed -e 's/.* instead has .//;s/[^0-9a-z].*//')
@@ -149,7 +149,7 @@ url="${ql_src##* }"
 }
 
 if [ "$ql_src" = '{"error":"Not Found"}' ]; then
-	echo "# $name: not found"
+    echo "# $name: not found"
 else
 cat << EOF | grep -Ev '^[ ]+$'
 
diff --git a/pkgs/development/lisp-modules/lisp-packages.nix b/pkgs/development/lisp-modules/lisp-packages.nix
index 4b3ecb1a0f0a9..7a7cc165fe517 100644
--- a/pkgs/development/lisp-modules/lisp-packages.nix
+++ b/pkgs/development/lisp-modules/lisp-packages.nix
@@ -24,8 +24,8 @@ let lispPackages = rec {
       quicklispdist = pkgs.fetchurl {
         # Will usually be replaced with a fresh version anyway, but needs to be
         # a valid distinfo.txt
-        url = "http://beta.quicklisp.org/dist/quicklisp/2021-10-21/distinfo.txt";
-        sha256 = "sha256:0ihi3p6fvagzfzkkyzs6b3jrz5yidj4f5dcgnh73qas19mk345ai";
+        url = "http://beta.quicklisp.org/dist/quicklisp/2021-12-09/distinfo.txt";
+        sha256 = "sha256:0gc4cv73nl7xkfwvmkmfhfx6yqf876nfm2v24v6fky9n24sh4y6w";
       };
       buildPhase = "true; ";
       postInstall = ''
@@ -124,7 +124,7 @@ let lispPackages = rec {
   };
   nyxt = pkgs.lispPackages.buildLispPackage rec {
     baseName = "nyxt";
-    version = "2.0.0";
+    version = "2.2.3";
 
     description = "Browser";
 
@@ -146,6 +146,9 @@ let lispPackages = rec {
         ' "$out/bin/nyxt-lisp-launcher.sh"
         cp "$out/lib/common-lisp/nyxt/nyxt" "$out/bin/"
       '';
+
+      # Prevent nyxt from trying to obtain dependencies as submodules
+      makeFlags = [ "NYXT_SUBMODULES=false" ] ++ x.buildFlags or [];
     };
 
     deps = with pkgs.lispPackages; [
@@ -160,6 +163,8 @@ let lispPackages = rec {
             cl-prevalence
             closer-mop
             cl-containers
+            cl-qrencode
+            clss
             cluffer
             moptilities
             dexador
@@ -168,17 +173,20 @@ let lispPackages = rec {
             iolib
             local-time
             log4cl
+            lparallel
             mk-string-metrics
             osicat
             parenscript
             quri
             serapeum
+            spinneret
             str
             plump
             swank
             trivia
             trivial-clipboard
             trivial-features
+            trivial-garbage
             trivial-package-local-nicknames
             trivial-types
             unix-opts
@@ -194,7 +202,7 @@ let lispPackages = rec {
       owner = "atlas-engineer";
       repo = "nyxt";
       rev = "${version}";
-      sha256 = "sha256-eSRNfzkAzGTorLjdHo1LQEKLx4ASdv3RGXIFZ5WFIXk=";
+      sha256 = "1v1szbj44pwxh3k70fvg78xjfkab29dqnlafa722sppdyqd06cqp";
     };
 
     packageName = "nyxt";
@@ -233,7 +241,7 @@ let lispPackages = rec {
     description = "Multi-dimensional arrays with FFI/CUDA support";
     deps = with pkgs.lispPackages; [
       alexandria bordeaux-threads cffi cffi-grovel cl-cuda flexi-streams ieee-floats
-      lla mgl-pax static-vectors trivial-garbage
+      lla mgl-pax static-vectors trivial-garbage cl-fad
     ];
     src = pkgs.fetchFromGitHub {
       owner = "melisgl";
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/alexandria.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/alexandria.nix
index 33bb0cc20ad17..91fadede82502 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/alexandria.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/alexandria.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "alexandria";
-  version = "20210807-git";
+  version = "20211209-git";
 
   description = "Alexandria is a collection of portable public domain utilities.";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/alexandria/2021-08-07/alexandria-20210807-git.tgz";
-    sha256 = "0y2x3xapx06v8083ls4pz12s63gv33d6ix05r61m62h4qqm8qk3j";
+    url = "http://beta.quicklisp.org/archive/alexandria/2021-12-09/alexandria-20211209-git.tgz";
+    sha256 = "13xyajg5n3ad3x2hrmzni1w87b0wc41wn7manbvc3dc5n55afxk0";
   };
 
   packageName = "alexandria";
@@ -20,8 +20,8 @@ rec {
 }
 /* (SYSTEM alexandria DESCRIPTION
     Alexandria is a collection of portable public domain utilities. SHA256
-    0y2x3xapx06v8083ls4pz12s63gv33d6ix05r61m62h4qqm8qk3j URL
-    http://beta.quicklisp.org/archive/alexandria/2021-08-07/alexandria-20210807-git.tgz
-    MD5 0193fd1a1d702b4a0fafa19361b1e644 NAME alexandria FILENAME alexandria
-    DEPS NIL DEPENDENCIES NIL VERSION 20210807-git SIBLINGS (alexandria-tests)
+    13xyajg5n3ad3x2hrmzni1w87b0wc41wn7manbvc3dc5n55afxk0 URL
+    http://beta.quicklisp.org/archive/alexandria/2021-12-09/alexandria-20211209-git.tgz
+    MD5 4f578a956567ea0d6c99c2babd1752f3 NAME alexandria FILENAME alexandria
+    DEPS NIL DEPENDENCIES NIL VERSION 20211209-git SIBLINGS (alexandria-tests)
     PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/anaphora.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/anaphora.nix
index 2a7018d535692..32091d66e8e02 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/anaphora.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/anaphora.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "anaphora";
-  version = "20210124-git";
+  version = "20211209-git";
 
   parasites = [ "anaphora/test" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."rt" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/anaphora/2021-01-24/anaphora-20210124-git.tgz";
-    sha256 = "0b4xwrnv007sfcqkxkarrbf99v3md8h199z1z69r4vx7r5pq2i4v";
+    url = "http://beta.quicklisp.org/archive/anaphora/2021-12-09/anaphora-20211209-git.tgz";
+    sha256 = "1pi166qwf3zwswhgq8c4r84rl5d6lnn0rkb3cdf5afyxmminsadg";
   };
 
   packageName = "anaphora";
@@ -21,8 +21,8 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM anaphora DESCRIPTION The Anaphoric Macro Package from Hell SHA256
-    0b4xwrnv007sfcqkxkarrbf99v3md8h199z1z69r4vx7r5pq2i4v URL
-    http://beta.quicklisp.org/archive/anaphora/2021-01-24/anaphora-20210124-git.tgz
-    MD5 09a11971206da9d259b34c050783b74b NAME anaphora FILENAME anaphora DEPS
-    ((NAME rt FILENAME rt)) DEPENDENCIES (rt) VERSION 20210124-git SIBLINGS NIL
+    1pi166qwf3zwswhgq8c4r84rl5d6lnn0rkb3cdf5afyxmminsadg URL
+    http://beta.quicklisp.org/archive/anaphora/2021-12-09/anaphora-20211209-git.tgz
+    MD5 81827cd43d29293e967916bb11c4df88 NAME anaphora FILENAME anaphora DEPS
+    ((NAME rt FILENAME rt)) DEPENDENCIES (rt) VERSION 20211209-git SIBLINGS NIL
     PARASITES (anaphora/test)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-form-types.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-form-types.nix
index 24ba2fecf0c0a..5ffd2e2860c31 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-form-types.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-form-types.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-form-types";
-  version = "20211020-git";
+  version = "20211209-git";
 
   parasites = [ "cl-form-types/test" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."agutil" args."alexandria" args."anaphora" args."arrows" args."cl-environments" args."closer-mop" args."collectors" args."fiveam" args."introspect-environment" args."iterate" args."optima" args."parse-declarations-1_dot_0" args."symbol-munger" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-form-types/2021-10-20/cl-form-types-20211020-git.tgz";
-    sha256 = "1f5wni1jrd5jbra2z2smw4vdw4k3bkbas8n676y3g3yv10lhddg8";
+    url = "http://beta.quicklisp.org/archive/cl-form-types/2021-12-09/cl-form-types-20211209-git.tgz";
+    sha256 = "1w1918a9rjw9dp5qpwq3mf0p4yyd2xladnd6sz4zk645y7wxd08i";
   };
 
   packageName = "cl-form-types";
@@ -22,9 +22,9 @@ rec {
 }
 /* (SYSTEM cl-form-types DESCRIPTION
     Library for determining types of Common Lisp forms. SHA256
-    1f5wni1jrd5jbra2z2smw4vdw4k3bkbas8n676y3g3yv10lhddg8 URL
-    http://beta.quicklisp.org/archive/cl-form-types/2021-10-20/cl-form-types-20211020-git.tgz
-    MD5 53e67d9fd55ac6a382635b119aeb5431 NAME cl-form-types FILENAME
+    1w1918a9rjw9dp5qpwq3mf0p4yyd2xladnd6sz4zk645y7wxd08i URL
+    http://beta.quicklisp.org/archive/cl-form-types/2021-12-09/cl-form-types-20211209-git.tgz
+    MD5 2c128061c2e8a97b70fbf8939708d53e NAME cl-form-types FILENAME
     cl-form-types DEPS
     ((NAME agutil FILENAME agutil) (NAME alexandria FILENAME alexandria)
      (NAME anaphora FILENAME anaphora) (NAME arrows FILENAME arrows)
@@ -39,4 +39,4 @@ rec {
     (agutil alexandria anaphora arrows cl-environments closer-mop collectors
      fiveam introspect-environment iterate optima parse-declarations-1.0
      symbol-munger)
-    VERSION 20211020-git SIBLINGS NIL PARASITES (cl-form-types/test)) */
+    VERSION 20211209-git SIBLINGS NIL PARASITES (cl-form-types/test)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-l10n.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-l10n.nix
index 44b2a64be9098..fd0d22547a6f7 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-l10n.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-l10n.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-l10n";
-  version = "20161204-darcs";
+  version = "20211209-git";
 
   parasites = [ "cl-l10n/test" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cl-fad" args."cl-l10n-cldr" args."cl-ppcre" args."closer-mop" args."closure-common" args."cxml" args."flexi-streams" args."hu_dot_dwim_dot_stefil" args."iterate" args."local-time" args."metabang-bind" args."parse-number" args."puri" args."trivial-features" args."trivial-gray-streams" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-l10n/2016-12-04/cl-l10n-20161204-darcs.tgz";
-    sha256 = "1r8jgwks21az78c5kdxgw5llk9ml423vjkv1f93qg1vx3zma6vzl";
+    url = "http://beta.quicklisp.org/archive/cl-l10n/2021-12-09/cl-l10n-20211209-git.tgz";
+    sha256 = "0l67xg282pim6167g27zcqk4xj51cfpmcbzc8bjg8933w42fdjf4";
   };
 
   packageName = "cl-l10n";
@@ -21,9 +21,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-l10n DESCRIPTION Portable CL Locale Support SHA256
-    1r8jgwks21az78c5kdxgw5llk9ml423vjkv1f93qg1vx3zma6vzl URL
-    http://beta.quicklisp.org/archive/cl-l10n/2016-12-04/cl-l10n-20161204-darcs.tgz
-    MD5 c7cb0bb584b061799abaaaf2bd65c9c5 NAME cl-l10n FILENAME cl-l10n DEPS
+    0l67xg282pim6167g27zcqk4xj51cfpmcbzc8bjg8933w42fdjf4 URL
+    http://beta.quicklisp.org/archive/cl-l10n/2021-12-09/cl-l10n-20211209-git.tgz
+    MD5 e575bb4ff3a6d0bbba5220c631f9c83a NAME cl-l10n FILENAME cl-l10n DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME cl-fad FILENAME cl-fad) (NAME cl-l10n-cldr FILENAME cl-l10n-cldr)
@@ -40,4 +40,4 @@ rec {
     (alexandria babel bordeaux-threads cl-fad cl-l10n-cldr cl-ppcre closer-mop
      closure-common cxml flexi-streams hu.dwim.stefil iterate local-time
      metabang-bind parse-number puri trivial-features trivial-gray-streams)
-    VERSION 20161204-darcs SIBLINGS NIL PARASITES (cl-l10n/test)) */
+    VERSION 20211209-git SIBLINGS NIL PARASITES (cl-l10n/test)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres.nix
index 729e6eeaba658..5a46814fc28f6 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-postgres.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-postgres";
-  version = "postmodern-20211020-git";
+  version = "postmodern-20211209-git";
 
   parasites = [ "cl-postgres/simple-date-tests" "cl-postgres/tests" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."bordeaux-threads" args."cl-base64" args."cl-ppcre" args."fiveam" args."ironclad" args."md5" args."simple-date" args."simple-date_slash_postgres-glue" args."split-sequence" args."uax-15" args."uiop" args."usocket" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/postmodern/2021-10-20/postmodern-20211020-git.tgz";
-    sha256 = "0iw0sbjra3g57ivfqgx3c97mlcdzlh2kgqp12d1r2i9pw8z0ckh6";
+    url = "http://beta.quicklisp.org/archive/postmodern/2021-12-09/postmodern-20211209-git.tgz";
+    sha256 = "1qcbg31mz5r7ibmq2y7r3vqvdwpznxvwdnwd94hfil7pg4j119d6";
   };
 
   packageName = "cl-postgres";
@@ -21,9 +21,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-postgres DESCRIPTION Low-level client library for PostgreSQL
-    SHA256 0iw0sbjra3g57ivfqgx3c97mlcdzlh2kgqp12d1r2i9pw8z0ckh6 URL
-    http://beta.quicklisp.org/archive/postmodern/2021-10-20/postmodern-20211020-git.tgz
-    MD5 84f4ad8ce7ac0f7f78cbfcf2f0bd3aa4 NAME cl-postgres FILENAME cl-postgres
+    SHA256 1qcbg31mz5r7ibmq2y7r3vqvdwpznxvwdnwd94hfil7pg4j119d6 URL
+    http://beta.quicklisp.org/archive/postmodern/2021-12-09/postmodern-20211209-git.tgz
+    MD5 6d14c4b5fec085594dc66d520174e0e6 NAME cl-postgres FILENAME cl-postgres
     DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -37,5 +37,5 @@ rec {
     DEPENDENCIES
     (alexandria bordeaux-threads cl-base64 cl-ppcre fiveam ironclad md5
      simple-date simple-date/postgres-glue split-sequence uax-15 uiop usocket)
-    VERSION postmodern-20211020-git SIBLINGS (postmodern s-sql simple-date)
+    VERSION postmodern-20211209-git SIBLINGS (postmodern s-sql simple-date)
     PARASITES (cl-postgres/simple-date-tests cl-postgres/tests)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-qrencode.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-qrencode.nix
new file mode 100644
index 0000000000000..22a6b64b55648
--- /dev/null
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-qrencode.nix
@@ -0,0 +1,30 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "cl-qrencode";
+  version = "20191007-git";
+
+  description = "QR code 2005 encoder in Common Lisp";
+
+  deps = [ args."salza2" args."trivial-gray-streams" args."zpng" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/cl-qrencode/2019-10-07/cl-qrencode-20191007-git.tgz";
+    sha256 = "0jc4bmw498bxkw5imvsj4p49njyybsjhbbvnmykivc38k5nlypz4";
+  };
+
+  packageName = "cl-qrencode";
+
+  asdFilesToKeep = ["cl-qrencode.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM cl-qrencode DESCRIPTION QR code 2005 encoder in Common Lisp SHA256
+    0jc4bmw498bxkw5imvsj4p49njyybsjhbbvnmykivc38k5nlypz4 URL
+    http://beta.quicklisp.org/archive/cl-qrencode/2019-10-07/cl-qrencode-20191007-git.tgz
+    MD5 e94ac1137949ef70dea11ca78431e956 NAME cl-qrencode FILENAME cl-qrencode
+    DEPS
+    ((NAME salza2 FILENAME salza2)
+     (NAME trivial-gray-streams FILENAME trivial-gray-streams)
+     (NAME zpng FILENAME zpng))
+    DEPENDENCIES (salza2 trivial-gray-streams zpng) VERSION 20191007-git
+    SIBLINGS (cl-qrencode-test) PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-shellwords.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-shellwords.nix
new file mode 100644
index 0000000000000..268c260e1a3f0
--- /dev/null
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-shellwords.nix
@@ -0,0 +1,29 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "cl-shellwords";
+  version = "20150923-git";
+
+  description = "Common Lisp port of Ruby's shellwords.rb, for escaping and
+splitting strings to be passed to a shell.";
+
+  deps = [ args."cl-ppcre" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/cl-shellwords/2015-09-23/cl-shellwords-20150923-git.tgz";
+    sha256 = "1rb0ajpl2lai6bj4x0p3wf0cnf51nnyidhca4lpqp1w1wf1vkcqk";
+  };
+
+  packageName = "cl-shellwords";
+
+  asdFilesToKeep = ["cl-shellwords.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM cl-shellwords DESCRIPTION
+    Common Lisp port of Ruby's shellwords.rb, for escaping and
+splitting strings to be passed to a shell.
+    SHA256 1rb0ajpl2lai6bj4x0p3wf0cnf51nnyidhca4lpqp1w1wf1vkcqk URL
+    http://beta.quicklisp.org/archive/cl-shellwords/2015-09-23/cl-shellwords-20150923-git.tgz
+    MD5 c2c62c6a2ce4ed2590d60707ead2e084 NAME cl-shellwords FILENAME
+    cl-shellwords DEPS ((NAME cl-ppcre FILENAME cl-ppcre)) DEPENDENCIES
+    (cl-ppcre) VERSION 20150923-git SIBLINGS (cl-shellwords-test) PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-webkit2.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-webkit2.nix
index 4ce813119b468..aef004926cb03 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-webkit2.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl-webkit2.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl-webkit2";
-  version = "cl-webkit-20211020-git";
+  version = "cl-webkit-20211209-git";
 
   description = "An FFI binding to WebKit2GTK+";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cl-cffi-gtk" args."cl-cffi-gtk-cairo" args."cl-cffi-gtk-gdk" args."cl-cffi-gtk-gdk-pixbuf" args."cl-cffi-gtk-gio" args."cl-cffi-gtk-glib" args."cl-cffi-gtk-gobject" args."cl-cffi-gtk-pango" args."closer-mop" args."iterate" args."trivial-features" args."trivial-garbage" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-webkit/2021-10-20/cl-webkit-20211020-git.tgz";
-    sha256 = "0kx9mjk8zgzkm60g0469mp53mj2jzxdb2baqr7sj0rkijc609821";
+    url = "http://beta.quicklisp.org/archive/cl-webkit/2021-12-09/cl-webkit-20211209-git.tgz";
+    sha256 = "1lpzp9rb011zbl8j2jpqhal38slyqq1p6cxxjk51h6mdq7x7z1a0";
   };
 
   packageName = "cl-webkit2";
@@ -19,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl-webkit2 DESCRIPTION An FFI binding to WebKit2GTK+ SHA256
-    0kx9mjk8zgzkm60g0469mp53mj2jzxdb2baqr7sj0rkijc609821 URL
-    http://beta.quicklisp.org/archive/cl-webkit/2021-10-20/cl-webkit-20211020-git.tgz
-    MD5 fc73d56d8289729e93dd8c4793ea82e4 NAME cl-webkit2 FILENAME cl-webkit2
+    1lpzp9rb011zbl8j2jpqhal38slyqq1p6cxxjk51h6mdq7x7z1a0 URL
+    http://beta.quicklisp.org/archive/cl-webkit/2021-12-09/cl-webkit-20211209-git.tgz
+    MD5 cf710088281b691a91aa29566f50f83a NAME cl-webkit2 FILENAME cl-webkit2
     DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -41,4 +41,4 @@ rec {
      cl-cffi-gtk-gdk cl-cffi-gtk-gdk-pixbuf cl-cffi-gtk-gio cl-cffi-gtk-glib
      cl-cffi-gtk-gobject cl-cffi-gtk-pango closer-mop iterate trivial-features
      trivial-garbage)
-    VERSION cl-webkit-20211020-git SIBLINGS NIL PARASITES NIL) */
+    VERSION cl-webkit-20211209-git SIBLINGS NIL PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl_plus_ssl.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl_plus_ssl.nix
index 4520d367b38cc..3278bc9977bde 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl_plus_ssl.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/cl_plus_ssl.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "cl_plus_ssl";
-  version = "cl+ssl-20211020-git";
+  version = "cl+ssl-20211209-git";
 
   parasites = [ "cl+ssl/config" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."flexi-streams" args."split-sequence" args."trivial-features" args."trivial-garbage" args."trivial-gray-streams" args."uiop" args."usocket" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl+ssl/2021-10-20/cl+ssl-20211020-git.tgz";
-    sha256 = "05yzc736lnsaniv76753flsbzvip0sma4jy3fl124r704gknsvsl";
+    url = "http://beta.quicklisp.org/archive/cl+ssl/2021-12-09/cl+ssl-20211209-git.tgz";
+    sha256 = "1m1dx4jfqpd2jdica7safq3fig31xyn96a0yslvszbhkyn22r0nb";
   };
 
   packageName = "cl+ssl";
@@ -21,9 +21,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM cl+ssl DESCRIPTION Common Lisp interface to OpenSSL. SHA256
-    05yzc736lnsaniv76753flsbzvip0sma4jy3fl124r704gknsvsl URL
-    http://beta.quicklisp.org/archive/cl+ssl/2021-10-20/cl+ssl-20211020-git.tgz
-    MD5 2122250563c6454ba1abdd36e9432f0c NAME cl+ssl FILENAME cl_plus_ssl DEPS
+    1m1dx4jfqpd2jdica7safq3fig31xyn96a0yslvszbhkyn22r0nb URL
+    http://beta.quicklisp.org/archive/cl+ssl/2021-12-09/cl+ssl-20211209-git.tgz
+    MD5 900134876fea38710e6535420ec60864 NAME cl+ssl FILENAME cl_plus_ssl DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME cffi FILENAME cffi) (NAME flexi-streams FILENAME flexi-streams)
@@ -35,5 +35,5 @@ rec {
     DEPENDENCIES
     (alexandria babel bordeaux-threads cffi flexi-streams split-sequence
      trivial-features trivial-garbage trivial-gray-streams uiop usocket)
-    VERSION cl+ssl-20211020-git SIBLINGS (cl+ssl.test) PARASITES
+    VERSION cl+ssl-20211209-git SIBLINGS (cl+ssl.test) PARASITES
     (cl+ssl/config)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-socket.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-socket.nix
index 0a19ab43c23da..3418c76a5d657 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-socket.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack-socket.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "clack-socket";
-  version = "clack-20210807-git";
+  version = "clack-20211209-git";
 
   description = "System lacks description";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/clack/2021-08-07/clack-20210807-git.tgz";
-    sha256 = "00bwpw04d6rri4hww9n1fa9ygvjgr5d18r7iadqwz0ns795p2pva";
+    url = "http://beta.quicklisp.org/archive/clack/2021-12-09/clack-20211209-git.tgz";
+    sha256 = "1gp323083ds89cw3vd6w40d4cwx04y0qaqdz4wx2332klhvvdnsd";
   };
 
   packageName = "clack-socket";
@@ -19,10 +19,10 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM clack-socket DESCRIPTION System lacks description SHA256
-    00bwpw04d6rri4hww9n1fa9ygvjgr5d18r7iadqwz0ns795p2pva URL
-    http://beta.quicklisp.org/archive/clack/2021-08-07/clack-20210807-git.tgz
-    MD5 a518c42a4d433be7da579b2d46caa438 NAME clack-socket FILENAME
-    clack-socket DEPS NIL DEPENDENCIES NIL VERSION clack-20210807-git SIBLINGS
+    1gp323083ds89cw3vd6w40d4cwx04y0qaqdz4wx2332klhvvdnsd URL
+    http://beta.quicklisp.org/archive/clack/2021-12-09/clack-20211209-git.tgz
+    MD5 c223a854a79b257e0489e185abe48e16 NAME clack-socket FILENAME
+    clack-socket DEPS NIL DEPENDENCIES NIL VERSION clack-20211209-git SIBLINGS
     (clack-handler-fcgi clack-handler-hunchentoot clack-handler-toot
      clack-handler-wookie clack-test clack t-clack-handler-fcgi
      t-clack-handler-hunchentoot t-clack-handler-toot t-clack-handler-wookie)
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack.nix
index 1b54ed8caa951..74038d47d8ae8 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/clack.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "clack";
-  version = "20210807-git";
+  version = "20211209-git";
 
   description = "Web application environment for Common Lisp";
 
   deps = [ args."alexandria" args."bordeaux-threads" args."ironclad" args."lack" args."lack-component" args."lack-middleware-backtrace" args."lack-util" args."split-sequence" args."uiop" args."usocket" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/clack/2021-08-07/clack-20210807-git.tgz";
-    sha256 = "00bwpw04d6rri4hww9n1fa9ygvjgr5d18r7iadqwz0ns795p2pva";
+    url = "http://beta.quicklisp.org/archive/clack/2021-12-09/clack-20211209-git.tgz";
+    sha256 = "1gp323083ds89cw3vd6w40d4cwx04y0qaqdz4wx2332klhvvdnsd";
   };
 
   packageName = "clack";
@@ -19,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM clack DESCRIPTION Web application environment for Common Lisp SHA256
-    00bwpw04d6rri4hww9n1fa9ygvjgr5d18r7iadqwz0ns795p2pva URL
-    http://beta.quicklisp.org/archive/clack/2021-08-07/clack-20210807-git.tgz
-    MD5 a518c42a4d433be7da579b2d46caa438 NAME clack FILENAME clack DEPS
+    1gp323083ds89cw3vd6w40d4cwx04y0qaqdz4wx2332klhvvdnsd URL
+    http://beta.quicklisp.org/archive/clack/2021-12-09/clack-20211209-git.tgz
+    MD5 c223a854a79b257e0489e185abe48e16 NAME clack FILENAME clack DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME ironclad FILENAME ironclad) (NAME lack FILENAME lack)
@@ -33,7 +33,7 @@ rec {
     DEPENDENCIES
     (alexandria bordeaux-threads ironclad lack lack-component
      lack-middleware-backtrace lack-util split-sequence uiop usocket)
-    VERSION 20210807-git SIBLINGS
+    VERSION 20211209-git SIBLINGS
     (clack-handler-fcgi clack-handler-hunchentoot clack-handler-toot
      clack-handler-wookie clack-socket clack-test t-clack-handler-fcgi
      t-clack-handler-hunchentoot t-clack-handler-toot t-clack-handler-wookie)
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/closer-mop.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/closer-mop.nix
index 4df32e3cc2bcb..a6de9070d9a99 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/closer-mop.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/closer-mop.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "closer-mop";
-  version = "20211020-git";
+  version = "20211209-git";
 
   description = "Closer to MOP is a compatibility layer that rectifies many of the absent or incorrect CLOS MOP features across a broad range of Common Lisp implementations.";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/closer-mop/2021-10-20/closer-mop-20211020-git.tgz";
-    sha256 = "1m5ri5br262li2w4qljbplrgk6pm1w5vil5qa71bc1h7fbl0qh07";
+    url = "http://beta.quicklisp.org/archive/closer-mop/2021-12-09/closer-mop-20211209-git.tgz";
+    sha256 = "1zrjsibbph8dz8k0qjawp9c22094rag3aasd4r761m2r482xf5zl";
   };
 
   packageName = "closer-mop";
@@ -20,7 +20,7 @@ rec {
 }
 /* (SYSTEM closer-mop DESCRIPTION
     Closer to MOP is a compatibility layer that rectifies many of the absent or incorrect CLOS MOP features across a broad range of Common Lisp implementations.
-    SHA256 1m5ri5br262li2w4qljbplrgk6pm1w5vil5qa71bc1h7fbl0qh07 URL
-    http://beta.quicklisp.org/archive/closer-mop/2021-10-20/closer-mop-20211020-git.tgz
-    MD5 09606b3803a2b3d727fb94cc59313bd8 NAME closer-mop FILENAME closer-mop
-    DEPS NIL DEPENDENCIES NIL VERSION 20211020-git SIBLINGS NIL PARASITES NIL) */
+    SHA256 1zrjsibbph8dz8k0qjawp9c22094rag3aasd4r761m2r482xf5zl URL
+    http://beta.quicklisp.org/archive/closer-mop/2021-12-09/closer-mop-20211209-git.tgz
+    MD5 0b2a02f6b6a57b5b707df5e1d51950cd NAME closer-mop FILENAME closer-mop
+    DEPS NIL DEPENDENCIES NIL VERSION 20211209-git SIBLINGS NIL PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/dexador.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/dexador.nix
index 13aa8f0f7ca49..3bbb155768f51 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/dexador.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/dexador.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "dexador";
-  version = "20210807-git";
+  version = "20211209-git";
 
   description = "Yet another HTTP client for Common Lisp";
 
-  deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cffi-grovel" args."cffi-toolchain" args."chipz" args."chunga" args."cl_plus_ssl" args."cl-base64" args."cl-cookie" args."cl-ppcre" args."cl-reexport" args."cl-utilities" args."fast-http" args."fast-io" args."flexi-streams" args."local-time" args."proc-parse" args."quri" args."smart-buffer" args."split-sequence" args."static-vectors" args."trivial-features" args."trivial-garbage" args."trivial-gray-streams" args."trivial-mimes" args."usocket" args."xsubseq" ];
+  deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cffi-grovel" args."cffi-toolchain" args."chipz" args."chunga" args."cl_plus_ssl" args."cl-base64" args."cl-cookie" args."cl-ppcre" args."cl-utilities" args."fast-http" args."fast-io" args."flexi-streams" args."local-time" args."proc-parse" args."quri" args."smart-buffer" args."split-sequence" args."static-vectors" args."trivial-features" args."trivial-garbage" args."trivial-gray-streams" args."trivial-mimes" args."uiop" args."usocket" args."xsubseq" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/dexador/2021-08-07/dexador-20210807-git.tgz";
-    sha256 = "04x29nr2h70b08yail6mf2pgpcgqwx3zxdizkzrj4mv6mi8pdy29";
+    url = "http://beta.quicklisp.org/archive/dexador/2021-12-09/dexador-20211209-git.tgz";
+    sha256 = "0cknpgz9cbqnaa0wafs7nfqlis8cikfxi11gd5r9md8zm0iw3gi7";
   };
 
   packageName = "dexador";
@@ -19,16 +19,16 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM dexador DESCRIPTION Yet another HTTP client for Common Lisp SHA256
-    04x29nr2h70b08yail6mf2pgpcgqwx3zxdizkzrj4mv6mi8pdy29 URL
-    http://beta.quicklisp.org/archive/dexador/2021-08-07/dexador-20210807-git.tgz
-    MD5 92b460917f8fa1c668c770fa850de5c7 NAME dexador FILENAME dexador DEPS
+    0cknpgz9cbqnaa0wafs7nfqlis8cikfxi11gd5r9md8zm0iw3gi7 URL
+    http://beta.quicklisp.org/archive/dexador/2021-12-09/dexador-20211209-git.tgz
+    MD5 211593b3d20b0be78f8c525a9a1f5cfb NAME dexador FILENAME dexador DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME cffi FILENAME cffi) (NAME cffi-grovel FILENAME cffi-grovel)
      (NAME cffi-toolchain FILENAME cffi-toolchain) (NAME chipz FILENAME chipz)
      (NAME chunga FILENAME chunga) (NAME cl+ssl FILENAME cl_plus_ssl)
      (NAME cl-base64 FILENAME cl-base64) (NAME cl-cookie FILENAME cl-cookie)
-     (NAME cl-ppcre FILENAME cl-ppcre) (NAME cl-reexport FILENAME cl-reexport)
+     (NAME cl-ppcre FILENAME cl-ppcre)
      (NAME cl-utilities FILENAME cl-utilities)
      (NAME fast-http FILENAME fast-http) (NAME fast-io FILENAME fast-io)
      (NAME flexi-streams FILENAME flexi-streams)
@@ -40,12 +40,12 @@ rec {
      (NAME trivial-features FILENAME trivial-features)
      (NAME trivial-garbage FILENAME trivial-garbage)
      (NAME trivial-gray-streams FILENAME trivial-gray-streams)
-     (NAME trivial-mimes FILENAME trivial-mimes)
+     (NAME trivial-mimes FILENAME trivial-mimes) (NAME uiop FILENAME uiop)
      (NAME usocket FILENAME usocket) (NAME xsubseq FILENAME xsubseq))
     DEPENDENCIES
     (alexandria babel bordeaux-threads cffi cffi-grovel cffi-toolchain chipz
-     chunga cl+ssl cl-base64 cl-cookie cl-ppcre cl-reexport cl-utilities
-     fast-http fast-io flexi-streams local-time proc-parse quri smart-buffer
-     split-sequence static-vectors trivial-features trivial-garbage
-     trivial-gray-streams trivial-mimes usocket xsubseq)
-    VERSION 20210807-git SIBLINGS (dexador-test) PARASITES NIL) */
+     chunga cl+ssl cl-base64 cl-cookie cl-ppcre cl-utilities fast-http fast-io
+     flexi-streams local-time proc-parse quri smart-buffer split-sequence
+     static-vectors trivial-features trivial-garbage trivial-gray-streams
+     trivial-mimes uiop usocket xsubseq)
+    VERSION 20211209-git SIBLINGS (dexador-test) PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/djula.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/djula.nix
index 59c249bcc4557..4a556f875c48d 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/djula.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/djula.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "djula";
-  version = "20211020-git";
+  version = "20211209-git";
 
   description = "An implementation of Django templates for Common Lisp.";
 
   deps = [ args."access" args."alexandria" args."anaphora" args."arnesi" args."babel" args."cl-annot" args."cl-interpol" args."cl-locale" args."cl-ppcre" args."cl-slice" args."cl-syntax" args."cl-syntax-annot" args."cl-unicode" args."closer-mop" args."collectors" args."flexi-streams" args."gettext" args."iterate" args."let-plus" args."local-time" args."named-readtables" args."parser-combinators" args."split-sequence" args."symbol-munger" args."trivial-backtrace" args."trivial-features" args."trivial-gray-streams" args."trivial-types" args."yacc" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/djula/2021-10-20/djula-20211020-git.tgz";
-    sha256 = "1izz1bl5yjcfx7hldj2scdwwr6fybxrw2h4wwkpkwisadh42b648";
+    url = "http://beta.quicklisp.org/archive/djula/2021-12-09/djula-20211209-git.tgz";
+    sha256 = "0csr3c12wf1qcwwfabgz9rvkramj74l15cwj8c01pmcraly8cya7";
   };
 
   packageName = "djula";
@@ -20,9 +20,9 @@ rec {
 }
 /* (SYSTEM djula DESCRIPTION
     An implementation of Django templates for Common Lisp. SHA256
-    1izz1bl5yjcfx7hldj2scdwwr6fybxrw2h4wwkpkwisadh42b648 URL
-    http://beta.quicklisp.org/archive/djula/2021-10-20/djula-20211020-git.tgz
-    MD5 0b6464f786f65c14d71499fc0114733d NAME djula FILENAME djula DEPS
+    0csr3c12wf1qcwwfabgz9rvkramj74l15cwj8c01pmcraly8cya7 URL
+    http://beta.quicklisp.org/archive/djula/2021-12-09/djula-20211209-git.tgz
+    MD5 f7cb3581b5eb40c8609e90cdf87a2a06 NAME djula FILENAME djula DEPS
     ((NAME access FILENAME access) (NAME alexandria FILENAME alexandria)
      (NAME anaphora FILENAME anaphora) (NAME arnesi FILENAME arnesi)
      (NAME babel FILENAME babel) (NAME cl-annot FILENAME cl-annot)
@@ -51,4 +51,4 @@ rec {
      named-readtables parser-combinators split-sequence symbol-munger
      trivial-backtrace trivial-features trivial-gray-streams trivial-types
      yacc)
-    VERSION 20211020-git SIBLINGS (djula-demo djula-test) PARASITES NIL) */
+    VERSION 20211209-git SIBLINGS (djula-demo djula-test) PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/enchant.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/enchant.nix
index 15035fe13d587..d56865fc3f8b5 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/enchant.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/enchant.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "enchant";
-  version = "cl-20190521-git";
+  version = "cl-20211209-git";
 
   description = "Programming interface for Enchant spell-checker library";
 
   deps = [ args."alexandria" args."babel" args."cffi" args."trivial-features" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/cl-enchant/2019-05-21/cl-enchant-20190521-git.tgz";
-    sha256 = "16ag48fr74m536an8fak5z0lfjdb265gv1ajai1lqg0vq2l5mr14";
+    url = "http://beta.quicklisp.org/archive/cl-enchant/2021-12-09/cl-enchant-20211209-git.tgz";
+    sha256 = "1j9qliyxfjfz4bbc6snysccnmmk2d2y8kb613rna239dh5g6c03c";
   };
 
   packageName = "enchant";
@@ -20,11 +20,11 @@ rec {
 }
 /* (SYSTEM enchant DESCRIPTION
     Programming interface for Enchant spell-checker library SHA256
-    16ag48fr74m536an8fak5z0lfjdb265gv1ajai1lqg0vq2l5mr14 URL
-    http://beta.quicklisp.org/archive/cl-enchant/2019-05-21/cl-enchant-20190521-git.tgz
-    MD5 2a868c280fd5a74f9c298c384567e31b NAME enchant FILENAME enchant DEPS
+    1j9qliyxfjfz4bbc6snysccnmmk2d2y8kb613rna239dh5g6c03c URL
+    http://beta.quicklisp.org/archive/cl-enchant/2021-12-09/cl-enchant-20211209-git.tgz
+    MD5 c12162b3a7c383815ff77c96aca0c11f NAME enchant FILENAME enchant DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME cffi FILENAME cffi)
      (NAME trivial-features FILENAME trivial-features))
     DEPENDENCIES (alexandria babel cffi trivial-features) VERSION
-    cl-20190521-git SIBLINGS (enchant-autoload) PARASITES NIL) */
+    cl-20211209-git SIBLINGS (enchant-autoload) PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/fiveam.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/fiveam.nix
index 8f88f6dfe91b8..b341fdbe2f9dc 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/fiveam.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/fiveam.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "fiveam";
-  version = "20200925-git";
+  version = "20211209-git";
 
   parasites = [ "fiveam/test" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."net_dot_didierverna_dot_asdf-flv" args."trivial-backtrace" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/fiveam/2020-09-25/fiveam-20200925-git.tgz";
-    sha256 = "0j9dzjs4prlx33f5idbcic4amx2mcgnjcyrpc3dd4b7lrw426l0d";
+    url = "http://beta.quicklisp.org/archive/fiveam/2021-12-09/fiveam-20211209-git.tgz";
+    sha256 = "0kyyr2dlgpzkn2cw9i4fwyip1d1la4cbv8l4b8jz31f5c1p76ab7";
   };
 
   packageName = "fiveam";
@@ -21,11 +21,11 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM fiveam DESCRIPTION A simple regression testing framework SHA256
-    0j9dzjs4prlx33f5idbcic4amx2mcgnjcyrpc3dd4b7lrw426l0d URL
-    http://beta.quicklisp.org/archive/fiveam/2020-09-25/fiveam-20200925-git.tgz
-    MD5 858ecfdf7821630ad11e6859100d4650 NAME fiveam FILENAME fiveam DEPS
+    0kyyr2dlgpzkn2cw9i4fwyip1d1la4cbv8l4b8jz31f5c1p76ab7 URL
+    http://beta.quicklisp.org/archive/fiveam/2021-12-09/fiveam-20211209-git.tgz
+    MD5 10d6a5a19f47ed94cbd9edf1d4c20933 NAME fiveam FILENAME fiveam DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME net.didierverna.asdf-flv FILENAME net_dot_didierverna_dot_asdf-flv)
      (NAME trivial-backtrace FILENAME trivial-backtrace))
     DEPENDENCIES (alexandria net.didierverna.asdf-flv trivial-backtrace)
-    VERSION 20200925-git SIBLINGS NIL PARASITES (fiveam/test)) */
+    VERSION 20211209-git SIBLINGS NIL PARASITES (fiveam/test)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_common-lisp.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_common-lisp.nix
new file mode 100644
index 0000000000000..4faa57b5f4c4c
--- /dev/null
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_common-lisp.nix
@@ -0,0 +1,29 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "hu_dot_dwim_dot_common-lisp";
+  version = "stable-git";
+
+  description = "A redefinition of the standard Common Lisp package that includes a number of renames and shadows.";
+
+  deps = [ args."hu_dot_dwim_dot_asdf" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/hu.dwim.common-lisp/2021-02-28/hu.dwim.common-lisp-stable-git.tgz";
+    sha256 = "1v111qvpfs0jml54a4qccyicgq4jg3h72z8484wa1x0acc9hgz76";
+  };
+
+  packageName = "hu.dwim.common-lisp";
+
+  asdFilesToKeep = ["hu.dwim.common-lisp.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM hu.dwim.common-lisp DESCRIPTION
+    A redefinition of the standard Common Lisp package that includes a number of renames and shadows.
+    SHA256 1v111qvpfs0jml54a4qccyicgq4jg3h72z8484wa1x0acc9hgz76 URL
+    http://beta.quicklisp.org/archive/hu.dwim.common-lisp/2021-02-28/hu.dwim.common-lisp-stable-git.tgz
+    MD5 4f0c7a375cc55381efdbeb17ef17dd7d NAME hu.dwim.common-lisp FILENAME
+    hu_dot_dwim_dot_common-lisp DEPS
+    ((NAME hu.dwim.asdf FILENAME hu_dot_dwim_dot_asdf)) DEPENDENCIES
+    (hu.dwim.asdf) VERSION stable-git SIBLINGS
+    (hu.dwim.common-lisp.documentation) PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_common.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_common.nix
new file mode 100644
index 0000000000000..b123762ce0ac4
--- /dev/null
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_common.nix
@@ -0,0 +1,37 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "hu_dot_dwim_dot_common";
+  version = "20150709-darcs";
+
+  description = "An extended Common Lisp package to the general needs of other hu.dwim systems.";
+
+  deps = [ args."alexandria" args."anaphora" args."closer-mop" args."hu_dot_dwim_dot_asdf" args."hu_dot_dwim_dot_common-lisp" args."iterate" args."metabang-bind" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/hu.dwim.common/2015-07-09/hu.dwim.common-20150709-darcs.tgz";
+    sha256 = "12l1rr6w9m99w0b5gc6hv58ainjfhbc588kz6vwshn4gqsxyzbhp";
+  };
+
+  packageName = "hu.dwim.common";
+
+  asdFilesToKeep = ["hu.dwim.common.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM hu.dwim.common DESCRIPTION
+    An extended Common Lisp package to the general needs of other hu.dwim systems.
+    SHA256 12l1rr6w9m99w0b5gc6hv58ainjfhbc588kz6vwshn4gqsxyzbhp URL
+    http://beta.quicklisp.org/archive/hu.dwim.common/2015-07-09/hu.dwim.common-20150709-darcs.tgz
+    MD5 fff7f05c24e71a0270021909ca86a9ef NAME hu.dwim.common FILENAME
+    hu_dot_dwim_dot_common DEPS
+    ((NAME alexandria FILENAME alexandria) (NAME anaphora FILENAME anaphora)
+     (NAME closer-mop FILENAME closer-mop)
+     (NAME hu.dwim.asdf FILENAME hu_dot_dwim_dot_asdf)
+     (NAME hu.dwim.common-lisp FILENAME hu_dot_dwim_dot_common-lisp)
+     (NAME iterate FILENAME iterate)
+     (NAME metabang-bind FILENAME metabang-bind))
+    DEPENDENCIES
+    (alexandria anaphora closer-mop hu.dwim.asdf hu.dwim.common-lisp iterate
+     metabang-bind)
+    VERSION 20150709-darcs SIBLINGS (hu.dwim.common.documentation) PARASITES
+    NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_def.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_def.nix
new file mode 100644
index 0000000000000..6208aa1cc43dc
--- /dev/null
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_def.nix
@@ -0,0 +1,36 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "hu_dot_dwim_dot_def";
+  version = "20201016-darcs";
+
+  description = "General purpose, homogenous, extensible definer macro.";
+
+  deps = [ args."alexandria" args."anaphora" args."hu_dot_dwim_dot_asdf" args."iterate" args."metabang-bind" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/hu.dwim.def/2020-10-16/hu.dwim.def-20201016-darcs.tgz";
+    sha256 = "0m9id405f0s1438yr2qppdw5z7xdx3ajaa1frd04pibqgf4db4cj";
+  };
+
+  packageName = "hu.dwim.def";
+
+  asdFilesToKeep = ["hu.dwim.def.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM hu.dwim.def DESCRIPTION
+    General purpose, homogenous, extensible definer macro. SHA256
+    0m9id405f0s1438yr2qppdw5z7xdx3ajaa1frd04pibqgf4db4cj URL
+    http://beta.quicklisp.org/archive/hu.dwim.def/2020-10-16/hu.dwim.def-20201016-darcs.tgz
+    MD5 c4d7469472f57cd700d8319e35dd5f32 NAME hu.dwim.def FILENAME
+    hu_dot_dwim_dot_def DEPS
+    ((NAME alexandria FILENAME alexandria) (NAME anaphora FILENAME anaphora)
+     (NAME hu.dwim.asdf FILENAME hu_dot_dwim_dot_asdf)
+     (NAME iterate FILENAME iterate)
+     (NAME metabang-bind FILENAME metabang-bind))
+    DEPENDENCIES (alexandria anaphora hu.dwim.asdf iterate metabang-bind)
+    VERSION 20201016-darcs SIBLINGS
+    (hu.dwim.def+cl-l10n hu.dwim.def+contextl hu.dwim.def+hu.dwim.common
+     hu.dwim.def+hu.dwim.delico hu.dwim.def+swank hu.dwim.def.documentation
+     hu.dwim.def.namespace hu.dwim.def.test)
+    PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_def_plus_swank.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_def_plus_swank.nix
new file mode 100644
index 0000000000000..852b0c79e13d7
--- /dev/null
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_def_plus_swank.nix
@@ -0,0 +1,37 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "hu_dot_dwim_dot_def_plus_swank";
+  version = "hu.dwim.def-20201016-darcs";
+
+  description = "System lacks description";
+
+  deps = [ args."alexandria" args."anaphora" args."hu_dot_dwim_dot_asdf" args."hu_dot_dwim_dot_def" args."iterate" args."metabang-bind" args."swank" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/hu.dwim.def/2020-10-16/hu.dwim.def-20201016-darcs.tgz";
+    sha256 = "0m9id405f0s1438yr2qppdw5z7xdx3ajaa1frd04pibqgf4db4cj";
+  };
+
+  packageName = "hu.dwim.def+swank";
+
+  asdFilesToKeep = ["hu.dwim.def+swank.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM hu.dwim.def+swank DESCRIPTION System lacks description SHA256
+    0m9id405f0s1438yr2qppdw5z7xdx3ajaa1frd04pibqgf4db4cj URL
+    http://beta.quicklisp.org/archive/hu.dwim.def/2020-10-16/hu.dwim.def-20201016-darcs.tgz
+    MD5 c4d7469472f57cd700d8319e35dd5f32 NAME hu.dwim.def+swank FILENAME
+    hu_dot_dwim_dot_def_plus_swank DEPS
+    ((NAME alexandria FILENAME alexandria) (NAME anaphora FILENAME anaphora)
+     (NAME hu.dwim.asdf FILENAME hu_dot_dwim_dot_asdf)
+     (NAME hu.dwim.def FILENAME hu_dot_dwim_dot_def)
+     (NAME iterate FILENAME iterate)
+     (NAME metabang-bind FILENAME metabang-bind) (NAME swank FILENAME swank))
+    DEPENDENCIES
+    (alexandria anaphora hu.dwim.asdf hu.dwim.def iterate metabang-bind swank)
+    VERSION hu.dwim.def-20201016-darcs SIBLINGS
+    (hu.dwim.def+cl-l10n hu.dwim.def+contextl hu.dwim.def+hu.dwim.common
+     hu.dwim.def+hu.dwim.delico hu.dwim.def hu.dwim.def.documentation
+     hu.dwim.def.namespace hu.dwim.def.test)
+    PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_defclass-star.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_defclass-star.nix
index cee334c9f3814..dcebc1b13a1b9 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_defclass-star.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_defclass-star.nix
@@ -4,13 +4,15 @@ rec {
   baseName = "hu_dot_dwim_dot_defclass-star";
   version = "stable-git";
 
+  parasites = [ "hu.dwim.defclass-star/test" ];
+
   description = "Simplify class like definitions with defclass* and friends.";
 
-  deps = [ args."hu_dot_dwim_dot_asdf" ];
+  deps = [ args."hu_dot_dwim_dot_asdf" args."hu_dot_dwim_dot_common" args."hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def_plus_swank" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/hu.dwim.defclass-star/2021-02-28/hu.dwim.defclass-star-stable-git.tgz";
-    sha256 = "1zj4c9pz7y69gclyd7kzf6d6s1r0am49czgvp2axbv7w50j5caf9";
+    url = "http://beta.quicklisp.org/archive/hu.dwim.defclass-star/2021-12-09/hu.dwim.defclass-star-stable-git.tgz";
+    sha256 = "0draahmhi5mmrj9aqabqdaipqcb9adxqdypjbdiawg55dw36g0cy";
   };
 
   packageName = "hu.dwim.defclass-star";
@@ -20,13 +22,16 @@ rec {
 }
 /* (SYSTEM hu.dwim.defclass-star DESCRIPTION
     Simplify class like definitions with defclass* and friends. SHA256
-    1zj4c9pz7y69gclyd7kzf6d6s1r0am49czgvp2axbv7w50j5caf9 URL
-    http://beta.quicklisp.org/archive/hu.dwim.defclass-star/2021-02-28/hu.dwim.defclass-star-stable-git.tgz
-    MD5 adb295fecbe4570f4c03dbd857b2ddbc NAME hu.dwim.defclass-star FILENAME
+    0draahmhi5mmrj9aqabqdaipqcb9adxqdypjbdiawg55dw36g0cy URL
+    http://beta.quicklisp.org/archive/hu.dwim.defclass-star/2021-12-09/hu.dwim.defclass-star-stable-git.tgz
+    MD5 e35fa9767089eb2fb03befaec18d5081 NAME hu.dwim.defclass-star FILENAME
     hu_dot_dwim_dot_defclass-star DEPS
-    ((NAME hu.dwim.asdf FILENAME hu_dot_dwim_dot_asdf)) DEPENDENCIES
-    (hu.dwim.asdf) VERSION stable-git SIBLINGS
+    ((NAME hu.dwim.asdf FILENAME hu_dot_dwim_dot_asdf)
+     (NAME hu.dwim.common FILENAME hu_dot_dwim_dot_common)
+     (NAME hu.dwim.stefil+hu.dwim.def+swank FILENAME
+      hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def_plus_swank))
+    DEPENDENCIES (hu.dwim.asdf hu.dwim.common hu.dwim.stefil+hu.dwim.def+swank)
+    VERSION stable-git SIBLINGS
     (hu.dwim.defclass-star+contextl hu.dwim.defclass-star+hu.dwim.def+contextl
-     hu.dwim.defclass-star+hu.dwim.def hu.dwim.defclass-star+swank
-     hu.dwim.defclass-star.documentation hu.dwim.defclass-star.test)
-    PARASITES NIL) */
+     hu.dwim.defclass-star+hu.dwim.def hu.dwim.defclass-star+swank)
+    PARASITES (hu.dwim.defclass-star/test)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def.nix
new file mode 100644
index 0000000000000..2f365dced0451
--- /dev/null
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def.nix
@@ -0,0 +1,37 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def";
+  version = "hu.dwim.stefil-20200218-darcs";
+
+  description = "System lacks description";
+
+  deps = [ args."alexandria" args."anaphora" args."hu_dot_dwim_dot_asdf" args."hu_dot_dwim_dot_def" args."hu_dot_dwim_dot_stefil" args."iterate" args."metabang-bind" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/hu.dwim.stefil/2020-02-18/hu.dwim.stefil-20200218-darcs.tgz";
+    sha256 = "16p25pq9fhk0dny6r43yl9z24g6qm6dag9zf2cila9v9jh3r76qf";
+  };
+
+  packageName = "hu.dwim.stefil+hu.dwim.def";
+
+  asdFilesToKeep = ["hu.dwim.stefil+hu.dwim.def.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM hu.dwim.stefil+hu.dwim.def DESCRIPTION System lacks description
+    SHA256 16p25pq9fhk0dny6r43yl9z24g6qm6dag9zf2cila9v9jh3r76qf URL
+    http://beta.quicklisp.org/archive/hu.dwim.stefil/2020-02-18/hu.dwim.stefil-20200218-darcs.tgz
+    MD5 3e87e0973f8373e342b75b13c802cc53 NAME hu.dwim.stefil+hu.dwim.def
+    FILENAME hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def DEPS
+    ((NAME alexandria FILENAME alexandria) (NAME anaphora FILENAME anaphora)
+     (NAME hu.dwim.asdf FILENAME hu_dot_dwim_dot_asdf)
+     (NAME hu.dwim.def FILENAME hu_dot_dwim_dot_def)
+     (NAME hu.dwim.stefil FILENAME hu_dot_dwim_dot_stefil)
+     (NAME iterate FILENAME iterate)
+     (NAME metabang-bind FILENAME metabang-bind))
+    DEPENDENCIES
+    (alexandria anaphora hu.dwim.asdf hu.dwim.def hu.dwim.stefil iterate
+     metabang-bind)
+    VERSION hu.dwim.stefil-20200218-darcs SIBLINGS
+    (hu.dwim.stefil+hu.dwim.def+swank hu.dwim.stefil+swank hu.dwim.stefil)
+    PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def_plus_swank.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def_plus_swank.nix
new file mode 100644
index 0000000000000..eff179a55efab
--- /dev/null
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def_plus_swank.nix
@@ -0,0 +1,43 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def_plus_swank";
+  version = "hu.dwim.stefil-20200218-darcs";
+
+  description = "System lacks description";
+
+  deps = [ args."alexandria" args."anaphora" args."hu_dot_dwim_dot_asdf" args."hu_dot_dwim_dot_def" args."hu_dot_dwim_dot_def_plus_swank" args."hu_dot_dwim_dot_stefil" args."hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def" args."hu_dot_dwim_dot_stefil_plus_swank" args."iterate" args."metabang-bind" args."swank" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/hu.dwim.stefil/2020-02-18/hu.dwim.stefil-20200218-darcs.tgz";
+    sha256 = "16p25pq9fhk0dny6r43yl9z24g6qm6dag9zf2cila9v9jh3r76qf";
+  };
+
+  packageName = "hu.dwim.stefil+hu.dwim.def+swank";
+
+  asdFilesToKeep = ["hu.dwim.stefil+hu.dwim.def+swank.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM hu.dwim.stefil+hu.dwim.def+swank DESCRIPTION
+    System lacks description SHA256
+    16p25pq9fhk0dny6r43yl9z24g6qm6dag9zf2cila9v9jh3r76qf URL
+    http://beta.quicklisp.org/archive/hu.dwim.stefil/2020-02-18/hu.dwim.stefil-20200218-darcs.tgz
+    MD5 3e87e0973f8373e342b75b13c802cc53 NAME hu.dwim.stefil+hu.dwim.def+swank
+    FILENAME hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def_plus_swank DEPS
+    ((NAME alexandria FILENAME alexandria) (NAME anaphora FILENAME anaphora)
+     (NAME hu.dwim.asdf FILENAME hu_dot_dwim_dot_asdf)
+     (NAME hu.dwim.def FILENAME hu_dot_dwim_dot_def)
+     (NAME hu.dwim.def+swank FILENAME hu_dot_dwim_dot_def_plus_swank)
+     (NAME hu.dwim.stefil FILENAME hu_dot_dwim_dot_stefil)
+     (NAME hu.dwim.stefil+hu.dwim.def FILENAME
+      hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def)
+     (NAME hu.dwim.stefil+swank FILENAME hu_dot_dwim_dot_stefil_plus_swank)
+     (NAME iterate FILENAME iterate)
+     (NAME metabang-bind FILENAME metabang-bind) (NAME swank FILENAME swank))
+    DEPENDENCIES
+    (alexandria anaphora hu.dwim.asdf hu.dwim.def hu.dwim.def+swank
+     hu.dwim.stefil hu.dwim.stefil+hu.dwim.def hu.dwim.stefil+swank iterate
+     metabang-bind swank)
+    VERSION hu.dwim.stefil-20200218-darcs SIBLINGS
+    (hu.dwim.stefil+hu.dwim.def hu.dwim.stefil+swank hu.dwim.stefil) PARASITES
+    NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_stefil_plus_swank.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_stefil_plus_swank.nix
new file mode 100644
index 0000000000000..6d9614d2dee70
--- /dev/null
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/hu_dot_dwim_dot_stefil_plus_swank.nix
@@ -0,0 +1,34 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "hu_dot_dwim_dot_stefil_plus_swank";
+  version = "hu.dwim.stefil-20200218-darcs";
+
+  description = "System lacks description";
+
+  deps = [ args."alexandria" args."hu_dot_dwim_dot_asdf" args."hu_dot_dwim_dot_stefil" args."swank" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/hu.dwim.stefil/2020-02-18/hu.dwim.stefil-20200218-darcs.tgz";
+    sha256 = "16p25pq9fhk0dny6r43yl9z24g6qm6dag9zf2cila9v9jh3r76qf";
+  };
+
+  packageName = "hu.dwim.stefil+swank";
+
+  asdFilesToKeep = ["hu.dwim.stefil+swank.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM hu.dwim.stefil+swank DESCRIPTION System lacks description SHA256
+    16p25pq9fhk0dny6r43yl9z24g6qm6dag9zf2cila9v9jh3r76qf URL
+    http://beta.quicklisp.org/archive/hu.dwim.stefil/2020-02-18/hu.dwim.stefil-20200218-darcs.tgz
+    MD5 3e87e0973f8373e342b75b13c802cc53 NAME hu.dwim.stefil+swank FILENAME
+    hu_dot_dwim_dot_stefil_plus_swank DEPS
+    ((NAME alexandria FILENAME alexandria)
+     (NAME hu.dwim.asdf FILENAME hu_dot_dwim_dot_asdf)
+     (NAME hu.dwim.stefil FILENAME hu_dot_dwim_dot_stefil)
+     (NAME swank FILENAME swank))
+    DEPENDENCIES (alexandria hu.dwim.asdf hu.dwim.stefil swank) VERSION
+    hu.dwim.stefil-20200218-darcs SIBLINGS
+    (hu.dwim.stefil+hu.dwim.def+swank hu.dwim.stefil+hu.dwim.def
+     hu.dwim.stefil)
+    PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/hunchensocket.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/hunchensocket.nix
index 7aa4f50c57d16..0179451ed7bc3 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/hunchensocket.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/hunchensocket.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "hunchensocket";
-  version = "20180711-git";
+  version = "20210531-git";
 
   parasites = [ "hunchensocket-tests" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."chunga" args."cl_plus_ssl" args."cl-base64" args."cl-fad" args."cl-ppcre" args."fiasco" args."flexi-streams" args."hunchentoot" args."ironclad" args."md5" args."rfc2388" args."split-sequence" args."trivial-backtrace" args."trivial-features" args."trivial-garbage" args."trivial-gray-streams" args."trivial-utf-8" args."usocket" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/hunchensocket/2018-07-11/hunchensocket-20180711-git.tgz";
-    sha256 = "03igrp8svb4gkwhhhgmxwrnp5vq5ndp15mxqsafyi065xj3ppw48";
+    url = "http://beta.quicklisp.org/archive/hunchensocket/2021-05-31/hunchensocket-20210531-git.tgz";
+    sha256 = "18zy11fir6vlg5vh29pr221dydbl9carfj9xkmsnygyzxkl6jghl";
   };
 
   packageName = "hunchensocket";
@@ -21,9 +21,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM hunchensocket DESCRIPTION WebSockets for Hunchentoot SHA256
-    03igrp8svb4gkwhhhgmxwrnp5vq5ndp15mxqsafyi065xj3ppw48 URL
-    http://beta.quicklisp.org/archive/hunchensocket/2018-07-11/hunchensocket-20180711-git.tgz
-    MD5 bf6cd52c13e3b1f464c8a45a8bac85b8 NAME hunchensocket FILENAME
+    18zy11fir6vlg5vh29pr221dydbl9carfj9xkmsnygyzxkl6jghl URL
+    http://beta.quicklisp.org/archive/hunchensocket/2021-05-31/hunchensocket-20210531-git.tgz
+    MD5 a529901753a54eb48c93aa86b0c3747d NAME hunchensocket FILENAME
     hunchensocket DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -45,4 +45,4 @@ rec {
      cl-ppcre fiasco flexi-streams hunchentoot ironclad md5 rfc2388
      split-sequence trivial-backtrace trivial-features trivial-garbage
      trivial-gray-streams trivial-utf-8 usocket)
-    VERSION 20180711-git SIBLINGS NIL PARASITES (hunchensocket-tests)) */
+    VERSION 20210531-git SIBLINGS NIL PARASITES (hunchensocket-tests)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-component.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-component.nix
index 04c0a45e859c5..ce77c0cf8af28 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-component.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-component.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "lack-component";
-  version = "lack-20211020-git";
+  version = "lack-20211209-git";
 
   description = "System lacks description";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/lack/2021-10-20/lack-20211020-git.tgz";
-    sha256 = "0ly7bdvrl5xsls9syybcf0qm2981m434rhr3gr756kvvk4s9mdn2";
+    url = "http://beta.quicklisp.org/archive/lack/2021-12-09/lack-20211209-git.tgz";
+    sha256 = "0vd36hjcf98s9slkm6rmgsa7r10wvzl9s4xhfmcwh7qv7jxdgkhg";
   };
 
   packageName = "lack-component";
@@ -19,10 +19,10 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM lack-component DESCRIPTION System lacks description SHA256
-    0ly7bdvrl5xsls9syybcf0qm2981m434rhr3gr756kvvk4s9mdn2 URL
-    http://beta.quicklisp.org/archive/lack/2021-10-20/lack-20211020-git.tgz MD5
-    4a98955fb9cd5db45b796a0b269a57e1 NAME lack-component FILENAME
-    lack-component DEPS NIL DEPENDENCIES NIL VERSION lack-20211020-git SIBLINGS
+    0vd36hjcf98s9slkm6rmgsa7r10wvzl9s4xhfmcwh7qv7jxdgkhg URL
+    http://beta.quicklisp.org/archive/lack/2021-12-09/lack-20211209-git.tgz MD5
+    610b1aea0280193d6f125aa1317a2d79 NAME lack-component FILENAME
+    lack-component DEPS NIL DEPENDENCIES NIL VERSION lack-20211209-git SIBLINGS
     (lack-app-directory lack-app-file lack-middleware-accesslog
      lack-middleware-auth-basic lack-middleware-backtrace lack-middleware-csrf
      lack-middleware-mount lack-middleware-session lack-middleware-static
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-middleware-backtrace.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-middleware-backtrace.nix
index ce8cea2192cea..eee9c9430fa91 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-middleware-backtrace.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-middleware-backtrace.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "lack-middleware-backtrace";
-  version = "lack-20211020-git";
+  version = "lack-20211209-git";
 
   description = "System lacks description";
 
   deps = [ args."uiop" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/lack/2021-10-20/lack-20211020-git.tgz";
-    sha256 = "0ly7bdvrl5xsls9syybcf0qm2981m434rhr3gr756kvvk4s9mdn2";
+    url = "http://beta.quicklisp.org/archive/lack/2021-12-09/lack-20211209-git.tgz";
+    sha256 = "0vd36hjcf98s9slkm6rmgsa7r10wvzl9s4xhfmcwh7qv7jxdgkhg";
   };
 
   packageName = "lack-middleware-backtrace";
@@ -19,11 +19,11 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM lack-middleware-backtrace DESCRIPTION System lacks description
-    SHA256 0ly7bdvrl5xsls9syybcf0qm2981m434rhr3gr756kvvk4s9mdn2 URL
-    http://beta.quicklisp.org/archive/lack/2021-10-20/lack-20211020-git.tgz MD5
-    4a98955fb9cd5db45b796a0b269a57e1 NAME lack-middleware-backtrace FILENAME
+    SHA256 0vd36hjcf98s9slkm6rmgsa7r10wvzl9s4xhfmcwh7qv7jxdgkhg URL
+    http://beta.quicklisp.org/archive/lack/2021-12-09/lack-20211209-git.tgz MD5
+    610b1aea0280193d6f125aa1317a2d79 NAME lack-middleware-backtrace FILENAME
     lack-middleware-backtrace DEPS ((NAME uiop FILENAME uiop)) DEPENDENCIES
-    (uiop) VERSION lack-20211020-git SIBLINGS
+    (uiop) VERSION lack-20211209-git SIBLINGS
     (lack-app-directory lack-app-file lack-component lack-middleware-accesslog
      lack-middleware-auth-basic lack-middleware-csrf lack-middleware-mount
      lack-middleware-session lack-middleware-static lack-request lack-response
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-util.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-util.nix
index 377732c4d4ee2..422850c8b36f0 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-util.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack-util.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "lack-util";
-  version = "lack-20211020-git";
+  version = "lack-20211209-git";
 
   description = "System lacks description";
 
   deps = [ args."alexandria" args."bordeaux-threads" args."ironclad" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/lack/2021-10-20/lack-20211020-git.tgz";
-    sha256 = "0ly7bdvrl5xsls9syybcf0qm2981m434rhr3gr756kvvk4s9mdn2";
+    url = "http://beta.quicklisp.org/archive/lack/2021-12-09/lack-20211209-git.tgz";
+    sha256 = "0vd36hjcf98s9slkm6rmgsa7r10wvzl9s4xhfmcwh7qv7jxdgkhg";
   };
 
   packageName = "lack-util";
@@ -19,14 +19,14 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM lack-util DESCRIPTION System lacks description SHA256
-    0ly7bdvrl5xsls9syybcf0qm2981m434rhr3gr756kvvk4s9mdn2 URL
-    http://beta.quicklisp.org/archive/lack/2021-10-20/lack-20211020-git.tgz MD5
-    4a98955fb9cd5db45b796a0b269a57e1 NAME lack-util FILENAME lack-util DEPS
+    0vd36hjcf98s9slkm6rmgsa7r10wvzl9s4xhfmcwh7qv7jxdgkhg URL
+    http://beta.quicklisp.org/archive/lack/2021-12-09/lack-20211209-git.tgz MD5
+    610b1aea0280193d6f125aa1317a2d79 NAME lack-util FILENAME lack-util DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME ironclad FILENAME ironclad))
     DEPENDENCIES (alexandria bordeaux-threads ironclad) VERSION
-    lack-20211020-git SIBLINGS
+    lack-20211209-git SIBLINGS
     (lack-app-directory lack-app-file lack-component lack-middleware-accesslog
      lack-middleware-auth-basic lack-middleware-backtrace lack-middleware-csrf
      lack-middleware-mount lack-middleware-session lack-middleware-static
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack.nix
index 7ecebef786107..723bc52d97820 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/lack.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "lack";
-  version = "20211020-git";
+  version = "20211209-git";
 
   description = "A minimal Clack";
 
   deps = [ args."alexandria" args."bordeaux-threads" args."ironclad" args."lack-component" args."lack-util" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/lack/2021-10-20/lack-20211020-git.tgz";
-    sha256 = "0ly7bdvrl5xsls9syybcf0qm2981m434rhr3gr756kvvk4s9mdn2";
+    url = "http://beta.quicklisp.org/archive/lack/2021-12-09/lack-20211209-git.tgz";
+    sha256 = "0vd36hjcf98s9slkm6rmgsa7r10wvzl9s4xhfmcwh7qv7jxdgkhg";
   };
 
   packageName = "lack";
@@ -19,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM lack DESCRIPTION A minimal Clack SHA256
-    0ly7bdvrl5xsls9syybcf0qm2981m434rhr3gr756kvvk4s9mdn2 URL
-    http://beta.quicklisp.org/archive/lack/2021-10-20/lack-20211020-git.tgz MD5
-    4a98955fb9cd5db45b796a0b269a57e1 NAME lack FILENAME lack DEPS
+    0vd36hjcf98s9slkm6rmgsa7r10wvzl9s4xhfmcwh7qv7jxdgkhg URL
+    http://beta.quicklisp.org/archive/lack/2021-12-09/lack-20211209-git.tgz MD5
+    610b1aea0280193d6f125aa1317a2d79 NAME lack FILENAME lack DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME ironclad FILENAME ironclad)
@@ -29,7 +29,7 @@ rec {
      (NAME lack-util FILENAME lack-util))
     DEPENDENCIES
     (alexandria bordeaux-threads ironclad lack-component lack-util) VERSION
-    20211020-git SIBLINGS
+    20211209-git SIBLINGS
     (lack-app-directory lack-app-file lack-component lack-middleware-accesslog
      lack-middleware-auth-basic lack-middleware-backtrace lack-middleware-csrf
      lack-middleware-mount lack-middleware-session lack-middleware-static
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/lift.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/lift.nix
index b48a569de3d27..f422f5ec6b221 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/lift.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/lift.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "lift";
-  version = "20190521-git";
+  version = "20211209-git";
 
   description = "LIsp Framework for Testing";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/lift/2019-05-21/lift-20190521-git.tgz";
-    sha256 = "0cinilin9bxzsj3mzd4488zx2irvyl5qpbykv0xbyfz2mjh94ac9";
+    url = "http://beta.quicklisp.org/archive/lift/2021-12-09/lift-20211209-git.tgz";
+    sha256 = "1r3i1gi2kggxbvh6mk58cddp5mi9kh7v23gd3z5q70w7cy69iiy7";
   };
 
   packageName = "lift";
@@ -19,8 +19,8 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM lift DESCRIPTION LIsp Framework for Testing SHA256
-    0cinilin9bxzsj3mzd4488zx2irvyl5qpbykv0xbyfz2mjh94ac9 URL
-    http://beta.quicklisp.org/archive/lift/2019-05-21/lift-20190521-git.tgz MD5
-    c03d3fa715792440c7b51a852ad581e3 NAME lift FILENAME lift DEPS NIL
-    DEPENDENCIES NIL VERSION 20190521-git SIBLINGS
+    1r3i1gi2kggxbvh6mk58cddp5mi9kh7v23gd3z5q70w7cy69iiy7 URL
+    http://beta.quicklisp.org/archive/lift/2021-12-09/lift-20211209-git.tgz MD5
+    b98c58658dba0b84a034aa1f0f68dcc9 NAME lift FILENAME lift DEPS NIL
+    DEPENDENCIES NIL VERSION 20211209-git SIBLINGS
     (lift-documentation lift-test) PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/log4cl.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/log4cl.nix
index fc3d2caa38bf6..84c31acd5e579 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/log4cl.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/log4cl.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "log4cl";
-  version = "20211020-git";
+  version = "20211209-git";
 
   parasites = [ "log4cl/syslog" "log4cl/test" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."bordeaux-threads" args."stefil" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/log4cl/2021-10-20/log4cl-20211020-git.tgz";
-    sha256 = "1nqryqd5z4grg75hffqs2x6nzdf972cp4f41l1dr8wdf3fp0ifz8";
+    url = "http://beta.quicklisp.org/archive/log4cl/2021-12-09/log4cl-20211209-git.tgz";
+    sha256 = "17jwxhc2ysh3m3cp7wvh8cy359v7w6kz9vk9f07japzi3krv9iq9";
   };
 
   packageName = "log4cl";
@@ -21,12 +21,12 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM log4cl DESCRIPTION System lacks description SHA256
-    1nqryqd5z4grg75hffqs2x6nzdf972cp4f41l1dr8wdf3fp0ifz8 URL
-    http://beta.quicklisp.org/archive/log4cl/2021-10-20/log4cl-20211020-git.tgz
-    MD5 d4eb0d4c8a9bc2f2037d7a64d44292d4 NAME log4cl FILENAME log4cl DEPS
+    17jwxhc2ysh3m3cp7wvh8cy359v7w6kz9vk9f07japzi3krv9iq9 URL
+    http://beta.quicklisp.org/archive/log4cl/2021-12-09/log4cl-20211209-git.tgz
+    MD5 569122fed30c089b67527926468dcf44 NAME log4cl FILENAME log4cl DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME stefil FILENAME stefil))
-    DEPENDENCIES (alexandria bordeaux-threads stefil) VERSION 20211020-git
+    DEPENDENCIES (alexandria bordeaux-threads stefil) VERSION 20211209-git
     SIBLINGS (log4cl-examples log4cl.log4slime log4cl.log4sly) PARASITES
     (log4cl/syslog log4cl/test)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/mgl-pax.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/mgl-pax.nix
index d1f9c4702c36f..c0e9819b0edc9 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/mgl-pax.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/mgl-pax.nix
@@ -2,18 +2,18 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "mgl-pax";
-  version = "20211020-git";
+  version = "20211209-git";
 
-  parasites = [ "mgl-pax/full" ];
+  parasites = [ "mgl-pax/document" "mgl-pax/navigate" ];
 
   description = "Exploratory programming tool and documentation
   generator.";
 
-  deps = [ args."_3bmd" args."_3bmd-ext-code-blocks" args."alexandria" args."babel" args."cl-fad" args."colorize" args."ironclad" args."named-readtables" args."pythonic-string-reader" args."swank" ];
+  deps = [ args."_3bmd" args."_3bmd-ext-code-blocks" args."alexandria" args."colorize" args."md5" args."named-readtables" args."pythonic-string-reader" args."swank" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/mgl-pax/2021-10-20/mgl-pax-20211020-git.tgz";
-    sha256 = "04vddyvyxja8dabksfqqr80xjnvdiiv61zidjvijlpkk8shwaw1g";
+    url = "http://beta.quicklisp.org/archive/mgl-pax/2021-12-09/mgl-pax-20211209-git.tgz";
+    sha256 = "19d47msc8240bldkc0fi60cpzsx1q9392dxhmqn28gn7998pdkgh";
   };
 
   packageName = "mgl-pax";
@@ -23,18 +23,17 @@ rec {
 }
 /* (SYSTEM mgl-pax DESCRIPTION Exploratory programming tool and documentation
   generator.
-    SHA256 04vddyvyxja8dabksfqqr80xjnvdiiv61zidjvijlpkk8shwaw1g URL
-    http://beta.quicklisp.org/archive/mgl-pax/2021-10-20/mgl-pax-20211020-git.tgz
-    MD5 2ad25d62d83b98e3e855b35414a5093d NAME mgl-pax FILENAME mgl-pax DEPS
+    SHA256 19d47msc8240bldkc0fi60cpzsx1q9392dxhmqn28gn7998pdkgh URL
+    http://beta.quicklisp.org/archive/mgl-pax/2021-12-09/mgl-pax-20211209-git.tgz
+    MD5 605583bb2910e0fe2211c8152fe38e0e NAME mgl-pax FILENAME mgl-pax DEPS
     ((NAME 3bmd FILENAME _3bmd)
      (NAME 3bmd-ext-code-blocks FILENAME _3bmd-ext-code-blocks)
-     (NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
-     (NAME cl-fad FILENAME cl-fad) (NAME colorize FILENAME colorize)
-     (NAME ironclad FILENAME ironclad)
-     (NAME named-readtables FILENAME named-readtables)
+     (NAME alexandria FILENAME alexandria) (NAME colorize FILENAME colorize)
+     (NAME md5 FILENAME md5) (NAME named-readtables FILENAME named-readtables)
      (NAME pythonic-string-reader FILENAME pythonic-string-reader)
      (NAME swank FILENAME swank))
     DEPENDENCIES
-    (3bmd 3bmd-ext-code-blocks alexandria babel cl-fad colorize ironclad
-     named-readtables pythonic-string-reader swank)
-    VERSION 20211020-git SIBLINGS NIL PARASITES (mgl-pax/full)) */
+    (3bmd 3bmd-ext-code-blocks alexandria colorize md5 named-readtables
+     pythonic-string-reader swank)
+    VERSION 20211209-git SIBLINGS NIL PARASITES
+    (mgl-pax/document mgl-pax/navigate)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/named-readtables.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/named-readtables.nix
index ccbe5caa85e56..198768fe70425 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/named-readtables.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/named-readtables.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "named-readtables";
-  version = "20210531-git";
+  version = "20211209-git";
 
   parasites = [ "named-readtables/test" ];
 
@@ -12,8 +12,8 @@ rec {
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/named-readtables/2021-05-31/named-readtables-20210531-git.tgz";
-    sha256 = "1z9c02924wqmxmcr1m1fzhw0gib138yllg70j5imiww9dmqbm9wf";
+    url = "http://beta.quicklisp.org/archive/named-readtables/2021-12-09/named-readtables-20211209-git.tgz";
+    sha256 = "0mlxbs7r6ksjk9ilsgp756qp4jlgplr30kxdn7npq27wg0rpvz2n";
   };
 
   packageName = "named-readtables";
@@ -24,8 +24,8 @@ rec {
 /* (SYSTEM named-readtables DESCRIPTION
     Library that creates a namespace for named readtable
   akin to the namespace of packages.
-    SHA256 1z9c02924wqmxmcr1m1fzhw0gib138yllg70j5imiww9dmqbm9wf URL
-    http://beta.quicklisp.org/archive/named-readtables/2021-05-31/named-readtables-20210531-git.tgz
-    MD5 a79f2cc78e84c4b474f818132c8cc4d8 NAME named-readtables FILENAME
-    named-readtables DEPS NIL DEPENDENCIES NIL VERSION 20210531-git SIBLINGS
+    SHA256 0mlxbs7r6ksjk9ilsgp756qp4jlgplr30kxdn7npq27wg0rpvz2n URL
+    http://beta.quicklisp.org/archive/named-readtables/2021-12-09/named-readtables-20211209-git.tgz
+    MD5 52def9392c93bb9c6da4b957549bcb0b NAME named-readtables FILENAME
+    named-readtables DEPS NIL DEPENDENCIES NIL VERSION 20211209-git SIBLINGS
     NIL PARASITES (named-readtables/test)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/nibbles.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/nibbles.nix
index b030a0ecea9d8..d20890e36c050 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/nibbles.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/nibbles.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "nibbles";
-  version = "20210531-git";
+  version = "20211209-git";
 
   parasites = [ "nibbles/tests" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."rt" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/nibbles/2021-05-31/nibbles-20210531-git.tgz";
-    sha256 = "1gwk44l86z6yyyn1fqf72rvlh93i61v6430njl9c6cmm05hf8lzz";
+    url = "http://beta.quicklisp.org/archive/nibbles/2021-12-09/nibbles-20211209-git.tgz";
+    sha256 = "1zkywrhz8p09pwdsa2mklr0yspqvvwa5fi6cz22n1z6fzvxz7m2s";
   };
 
   packageName = "nibbles";
@@ -22,8 +22,8 @@ rec {
 }
 /* (SYSTEM nibbles DESCRIPTION
     A library for accessing octet-addressed blocks of data in big- and little-endian orders
-    SHA256 1gwk44l86z6yyyn1fqf72rvlh93i61v6430njl9c6cmm05hf8lzz URL
-    http://beta.quicklisp.org/archive/nibbles/2021-05-31/nibbles-20210531-git.tgz
-    MD5 ec4ee1a201aef6325e071a9d9e3f6380 NAME nibbles FILENAME nibbles DEPS
-    ((NAME rt FILENAME rt)) DEPENDENCIES (rt) VERSION 20210531-git SIBLINGS NIL
+    SHA256 1zkywrhz8p09pwdsa2mklr0yspqvvwa5fi6cz22n1z6fzvxz7m2s URL
+    http://beta.quicklisp.org/archive/nibbles/2021-12-09/nibbles-20211209-git.tgz
+    MD5 c6e7348a8a979da7cd4852b5df8a4384 NAME nibbles FILENAME nibbles DEPS
+    ((NAME rt FILENAME rt)) DEPENDENCIES (rt) VERSION 20211209-git SIBLINGS NIL
     PARASITES (nibbles/tests)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/osicat.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/osicat.nix
index 07d16b17c030b..a88bc8670ebe8 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/osicat.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/osicat.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "osicat";
-  version = "20211020-git";
+  version = "20211209-git";
 
   parasites = [ "osicat/tests" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."babel" args."cffi" args."cffi-grovel" args."cffi-toolchain" args."rt" args."trivial-features" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/osicat/2021-10-20/osicat-20211020-git.tgz";
-    sha256 = "0rb53m4hg8dllljjvj9a76mq4hn9cl7wp0lqg50gs0l6v2c7qlbw";
+    url = "http://beta.quicklisp.org/archive/osicat/2021-12-09/osicat-20211209-git.tgz";
+    sha256 = "0c85aapyvr2f5c3lvpfv3hfdghwmsqf40qgyk9hwjva8s9242pgl";
   };
 
   packageName = "osicat";
@@ -21,13 +21,13 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM osicat DESCRIPTION A lightweight operating system interface SHA256
-    0rb53m4hg8dllljjvj9a76mq4hn9cl7wp0lqg50gs0l6v2c7qlbw URL
-    http://beta.quicklisp.org/archive/osicat/2021-10-20/osicat-20211020-git.tgz
-    MD5 2cf6739bb39a2bf414de19037f867c87 NAME osicat FILENAME osicat DEPS
+    0c85aapyvr2f5c3lvpfv3hfdghwmsqf40qgyk9hwjva8s9242pgl URL
+    http://beta.quicklisp.org/archive/osicat/2021-12-09/osicat-20211209-git.tgz
+    MD5 3581652999e0b16c6a1a8295585e7491 NAME osicat FILENAME osicat DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME cffi FILENAME cffi) (NAME cffi-grovel FILENAME cffi-grovel)
      (NAME cffi-toolchain FILENAME cffi-toolchain) (NAME rt FILENAME rt)
      (NAME trivial-features FILENAME trivial-features))
     DEPENDENCIES
     (alexandria babel cffi cffi-grovel cffi-toolchain rt trivial-features)
-    VERSION 20211020-git SIBLINGS NIL PARASITES (osicat/tests)) */
+    VERSION 20211209-git SIBLINGS NIL PARASITES (osicat/tests)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/postmodern.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/postmodern.nix
index 95de05fe0334c..0fb11190e7829 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/postmodern.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/postmodern.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "postmodern";
-  version = "20211020-git";
+  version = "20211209-git";
 
   parasites = [ "postmodern/tests" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."bordeaux-threads" args."cl-base64" args."cl-postgres" args."cl-postgres_plus_local-time" args."cl-postgres_slash_tests" args."cl-ppcre" args."closer-mop" args."fiveam" args."global-vars" args."ironclad" args."local-time" args."md5" args."s-sql" args."s-sql_slash_tests" args."simple-date" args."simple-date_slash_postgres-glue" args."split-sequence" args."uax-15" args."uiop" args."usocket" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/postmodern/2021-10-20/postmodern-20211020-git.tgz";
-    sha256 = "0iw0sbjra3g57ivfqgx3c97mlcdzlh2kgqp12d1r2i9pw8z0ckh6";
+    url = "http://beta.quicklisp.org/archive/postmodern/2021-12-09/postmodern-20211209-git.tgz";
+    sha256 = "1qcbg31mz5r7ibmq2y7r3vqvdwpznxvwdnwd94hfil7pg4j119d6";
   };
 
   packageName = "postmodern";
@@ -21,9 +21,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM postmodern DESCRIPTION PostgreSQL programming API SHA256
-    0iw0sbjra3g57ivfqgx3c97mlcdzlh2kgqp12d1r2i9pw8z0ckh6 URL
-    http://beta.quicklisp.org/archive/postmodern/2021-10-20/postmodern-20211020-git.tgz
-    MD5 84f4ad8ce7ac0f7f78cbfcf2f0bd3aa4 NAME postmodern FILENAME postmodern
+    1qcbg31mz5r7ibmq2y7r3vqvdwpznxvwdnwd94hfil7pg4j119d6 URL
+    http://beta.quicklisp.org/archive/postmodern/2021-12-09/postmodern-20211209-git.tgz
+    MD5 6d14c4b5fec085594dc66d520174e0e6 NAME postmodern FILENAME postmodern
     DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
@@ -46,5 +46,5 @@ rec {
      cl-postgres/tests cl-ppcre closer-mop fiveam global-vars ironclad
      local-time md5 s-sql s-sql/tests simple-date simple-date/postgres-glue
      split-sequence uax-15 uiop usocket)
-    VERSION 20211020-git SIBLINGS (cl-postgres s-sql simple-date) PARASITES
+    VERSION 20211209-git SIBLINGS (cl-postgres s-sql simple-date) PARASITES
     (postmodern/tests)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/rove.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/rove.nix
index b5f42dd5d1e99..c02f2cd2ed19d 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/rove.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/rove.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "rove";
-  version = "20211020-git";
+  version = "20211209-git";
 
   description = "Yet another testing framework intended to be a successor of Prove";
 
   deps = [ args."alexandria" args."bordeaux-threads" args."dissect" args."trivial-gray-streams" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/rove/2021-10-20/rove-20211020-git.tgz";
-    sha256 = "1p54dp4m2wnmff6dyfh2k4crk83n38nyix1g8csixvn8jkk2gi4b";
+    url = "http://beta.quicklisp.org/archive/rove/2021-12-09/rove-20211209-git.tgz";
+    sha256 = "1b1fajdxnba743l7mv4nc31az2g7mapalq3z3l57j7r5sximf0qr";
   };
 
   packageName = "rove";
@@ -20,12 +20,12 @@ rec {
 }
 /* (SYSTEM rove DESCRIPTION
     Yet another testing framework intended to be a successor of Prove SHA256
-    1p54dp4m2wnmff6dyfh2k4crk83n38nyix1g8csixvn8jkk2gi4b URL
-    http://beta.quicklisp.org/archive/rove/2021-10-20/rove-20211020-git.tgz MD5
-    119a5c0f506db2b301eb19bfed7c403d NAME rove FILENAME rove DEPS
+    1b1fajdxnba743l7mv4nc31az2g7mapalq3z3l57j7r5sximf0qr URL
+    http://beta.quicklisp.org/archive/rove/2021-12-09/rove-20211209-git.tgz MD5
+    d9f6cb2e26f06cfbd5c83bf3fa4fc206 NAME rove FILENAME rove DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME dissect FILENAME dissect)
      (NAME trivial-gray-streams FILENAME trivial-gray-streams))
     DEPENDENCIES (alexandria bordeaux-threads dissect trivial-gray-streams)
-    VERSION 20211020-git SIBLINGS NIL PARASITES NIL) */
+    VERSION 20211209-git SIBLINGS NIL PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sql.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sql.nix
index 6624f1b38e76f..510475d89baa0 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sql.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/s-sql.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "s-sql";
-  version = "postmodern-20211020-git";
+  version = "postmodern-20211209-git";
 
   parasites = [ "s-sql/tests" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."alexandria" args."bordeaux-threads" args."cl-base64" args."cl-postgres" args."cl-postgres_slash_tests" args."cl-ppcre" args."closer-mop" args."fiveam" args."global-vars" args."ironclad" args."md5" args."postmodern" args."split-sequence" args."uax-15" args."usocket" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/postmodern/2021-10-20/postmodern-20211020-git.tgz";
-    sha256 = "0iw0sbjra3g57ivfqgx3c97mlcdzlh2kgqp12d1r2i9pw8z0ckh6";
+    url = "http://beta.quicklisp.org/archive/postmodern/2021-12-09/postmodern-20211209-git.tgz";
+    sha256 = "1qcbg31mz5r7ibmq2y7r3vqvdwpznxvwdnwd94hfil7pg4j119d6";
   };
 
   packageName = "s-sql";
@@ -21,9 +21,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM s-sql DESCRIPTION Lispy DSL for SQL SHA256
-    0iw0sbjra3g57ivfqgx3c97mlcdzlh2kgqp12d1r2i9pw8z0ckh6 URL
-    http://beta.quicklisp.org/archive/postmodern/2021-10-20/postmodern-20211020-git.tgz
-    MD5 84f4ad8ce7ac0f7f78cbfcf2f0bd3aa4 NAME s-sql FILENAME s-sql DEPS
+    1qcbg31mz5r7ibmq2y7r3vqvdwpznxvwdnwd94hfil7pg4j119d6 URL
+    http://beta.quicklisp.org/archive/postmodern/2021-12-09/postmodern-20211209-git.tgz
+    MD5 6d14c4b5fec085594dc66d520174e0e6 NAME s-sql FILENAME s-sql DEPS
     ((NAME alexandria FILENAME alexandria)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME cl-base64 FILENAME cl-base64)
@@ -39,5 +39,5 @@ rec {
     (alexandria bordeaux-threads cl-base64 cl-postgres cl-postgres/tests
      cl-ppcre closer-mop fiveam global-vars ironclad md5 postmodern
      split-sequence uax-15 usocket)
-    VERSION postmodern-20211020-git SIBLINGS
+    VERSION postmodern-20211209-git SIBLINGS
     (cl-postgres postmodern simple-date) PARASITES (s-sql/tests)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/serapeum.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/serapeum.nix
index 68e82317ffe2b..4500ca4bf5f35 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/serapeum.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/serapeum.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "serapeum";
-  version = "20211020-git";
+  version = "20211209-git";
 
   description = "Utilities beyond Alexandria.";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."closer-mop" args."fare-quasiquote" args."fare-quasiquote-extras" args."fare-quasiquote-optima" args."fare-quasiquote-readtable" args."fare-utils" args."global-vars" args."introspect-environment" args."iterate" args."lisp-namespace" args."named-readtables" args."parse-declarations-1_dot_0" args."parse-number" args."split-sequence" args."string-case" args."trivia" args."trivia_dot_balland2006" args."trivia_dot_level0" args."trivia_dot_level1" args."trivia_dot_level2" args."trivia_dot_quasiquote" args."trivia_dot_trivial" args."trivial-cltl2" args."trivial-features" args."trivial-file-size" args."trivial-garbage" args."trivial-macroexpand-all" args."type-i" args."uiop" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/serapeum/2021-10-20/serapeum-20211020-git.tgz";
-    sha256 = "1lax10p8apgsm09wcnmxn1p52hgngwp8j6dsk5y8r2dj7h73529v";
+    url = "http://beta.quicklisp.org/archive/serapeum/2021-12-09/serapeum-20211209-git.tgz";
+    sha256 = "19ndbi69b60rxh1jvs7jrwg6bgzpkrfd22cnhyd2mir4ybmrdllh";
   };
 
   packageName = "serapeum";
@@ -19,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM serapeum DESCRIPTION Utilities beyond Alexandria. SHA256
-    1lax10p8apgsm09wcnmxn1p52hgngwp8j6dsk5y8r2dj7h73529v URL
-    http://beta.quicklisp.org/archive/serapeum/2021-10-20/serapeum-20211020-git.tgz
-    MD5 2f15c5635215fd23ddd43dba01647f82 NAME serapeum FILENAME serapeum DEPS
+    19ndbi69b60rxh1jvs7jrwg6bgzpkrfd22cnhyd2mir4ybmrdllh URL
+    http://beta.quicklisp.org/archive/serapeum/2021-12-09/serapeum-20211209-git.tgz
+    MD5 be358e1693fd0883042d849199ab72d1 NAME serapeum FILENAME serapeum DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME closer-mop FILENAME closer-mop)
@@ -60,4 +60,4 @@ rec {
      trivia.level2 trivia.quasiquote trivia.trivial trivial-cltl2
      trivial-features trivial-file-size trivial-garbage trivial-macroexpand-all
      type-i uiop)
-    VERSION 20211020-git SIBLINGS NIL PARASITES NIL) */
+    VERSION 20211209-git SIBLINGS NIL PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date.nix
index b8b23ee17518e..b46901bf497ff 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/simple-date.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "simple-date";
-  version = "postmodern-20211020-git";
+  version = "postmodern-20211209-git";
 
   parasites = [ "simple-date/tests" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."fiveam" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/postmodern/2021-10-20/postmodern-20211020-git.tgz";
-    sha256 = "0iw0sbjra3g57ivfqgx3c97mlcdzlh2kgqp12d1r2i9pw8z0ckh6";
+    url = "http://beta.quicklisp.org/archive/postmodern/2021-12-09/postmodern-20211209-git.tgz";
+    sha256 = "1qcbg31mz5r7ibmq2y7r3vqvdwpznxvwdnwd94hfil7pg4j119d6";
   };
 
   packageName = "simple-date";
@@ -22,9 +22,9 @@ rec {
 }
 /* (SYSTEM simple-date DESCRIPTION
     Simple date library that can be used with postmodern SHA256
-    0iw0sbjra3g57ivfqgx3c97mlcdzlh2kgqp12d1r2i9pw8z0ckh6 URL
-    http://beta.quicklisp.org/archive/postmodern/2021-10-20/postmodern-20211020-git.tgz
-    MD5 84f4ad8ce7ac0f7f78cbfcf2f0bd3aa4 NAME simple-date FILENAME simple-date
+    1qcbg31mz5r7ibmq2y7r3vqvdwpznxvwdnwd94hfil7pg4j119d6 URL
+    http://beta.quicklisp.org/archive/postmodern/2021-12-09/postmodern-20211209-git.tgz
+    MD5 6d14c4b5fec085594dc66d520174e0e6 NAME simple-date FILENAME simple-date
     DEPS ((NAME fiveam FILENAME fiveam)) DEPENDENCIES (fiveam) VERSION
-    postmodern-20211020-git SIBLINGS (cl-postgres postmodern s-sql) PARASITES
+    postmodern-20211209-git SIBLINGS (cl-postgres postmodern s-sql) PARASITES
     (simple-date/tests)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/spinneret.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/spinneret.nix
new file mode 100644
index 0000000000000..8475d80c41926
--- /dev/null
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/spinneret.nix
@@ -0,0 +1,67 @@
+/* Generated file. */
+args @ { fetchurl, ... }:
+rec {
+  baseName = "spinneret";
+  version = "20211020-git";
+
+  description = "Common Lisp HTML5 generator.";
+
+  deps = [ args."alexandria" args."anaphora" args."babel" args."bordeaux-threads" args."cl-ppcre" args."closer-mop" args."fare-quasiquote" args."fare-quasiquote-extras" args."fare-quasiquote-optima" args."fare-quasiquote-readtable" args."fare-utils" args."global-vars" args."introspect-environment" args."iterate" args."lisp-namespace" args."named-readtables" args."parenscript" args."parse-declarations-1_dot_0" args."parse-number" args."serapeum" args."split-sequence" args."string-case" args."trivia" args."trivia_dot_balland2006" args."trivia_dot_level0" args."trivia_dot_level1" args."trivia_dot_level2" args."trivia_dot_quasiquote" args."trivia_dot_trivial" args."trivial-cltl2" args."trivial-features" args."trivial-file-size" args."trivial-garbage" args."trivial-gray-streams" args."trivial-macroexpand-all" args."type-i" ];
+
+  src = fetchurl {
+    url = "http://beta.quicklisp.org/archive/spinneret/2021-10-20/spinneret-20211020-git.tgz";
+    sha256 = "1j3z2sr98j7rd8ssxp8r1yxlj8chvldn0k2nh2vf2jaynhwk3slq";
+  };
+
+  packageName = "spinneret";
+
+  asdFilesToKeep = ["spinneret.asd"];
+  overrides = x: x;
+}
+/* (SYSTEM spinneret DESCRIPTION Common Lisp HTML5 generator. SHA256
+    1j3z2sr98j7rd8ssxp8r1yxlj8chvldn0k2nh2vf2jaynhwk3slq URL
+    http://beta.quicklisp.org/archive/spinneret/2021-10-20/spinneret-20211020-git.tgz
+    MD5 f10e1537f3bfd16a0a189d16fd86790b NAME spinneret FILENAME spinneret DEPS
+    ((NAME alexandria FILENAME alexandria) (NAME anaphora FILENAME anaphora)
+     (NAME babel FILENAME babel)
+     (NAME bordeaux-threads FILENAME bordeaux-threads)
+     (NAME cl-ppcre FILENAME cl-ppcre) (NAME closer-mop FILENAME closer-mop)
+     (NAME fare-quasiquote FILENAME fare-quasiquote)
+     (NAME fare-quasiquote-extras FILENAME fare-quasiquote-extras)
+     (NAME fare-quasiquote-optima FILENAME fare-quasiquote-optima)
+     (NAME fare-quasiquote-readtable FILENAME fare-quasiquote-readtable)
+     (NAME fare-utils FILENAME fare-utils)
+     (NAME global-vars FILENAME global-vars)
+     (NAME introspect-environment FILENAME introspect-environment)
+     (NAME iterate FILENAME iterate)
+     (NAME lisp-namespace FILENAME lisp-namespace)
+     (NAME named-readtables FILENAME named-readtables)
+     (NAME parenscript FILENAME parenscript)
+     (NAME parse-declarations-1.0 FILENAME parse-declarations-1_dot_0)
+     (NAME parse-number FILENAME parse-number)
+     (NAME serapeum FILENAME serapeum)
+     (NAME split-sequence FILENAME split-sequence)
+     (NAME string-case FILENAME string-case) (NAME trivia FILENAME trivia)
+     (NAME trivia.balland2006 FILENAME trivia_dot_balland2006)
+     (NAME trivia.level0 FILENAME trivia_dot_level0)
+     (NAME trivia.level1 FILENAME trivia_dot_level1)
+     (NAME trivia.level2 FILENAME trivia_dot_level2)
+     (NAME trivia.quasiquote FILENAME trivia_dot_quasiquote)
+     (NAME trivia.trivial FILENAME trivia_dot_trivial)
+     (NAME trivial-cltl2 FILENAME trivial-cltl2)
+     (NAME trivial-features FILENAME trivial-features)
+     (NAME trivial-file-size FILENAME trivial-file-size)
+     (NAME trivial-garbage FILENAME trivial-garbage)
+     (NAME trivial-gray-streams FILENAME trivial-gray-streams)
+     (NAME trivial-macroexpand-all FILENAME trivial-macroexpand-all)
+     (NAME type-i FILENAME type-i))
+    DEPENDENCIES
+    (alexandria anaphora babel bordeaux-threads cl-ppcre closer-mop
+     fare-quasiquote fare-quasiquote-extras fare-quasiquote-optima
+     fare-quasiquote-readtable fare-utils global-vars introspect-environment
+     iterate lisp-namespace named-readtables parenscript parse-declarations-1.0
+     parse-number serapeum split-sequence string-case trivia trivia.balland2006
+     trivia.level0 trivia.level1 trivia.level2 trivia.quasiquote trivia.trivial
+     trivial-cltl2 trivial-features trivial-file-size trivial-garbage
+     trivial-gray-streams trivial-macroexpand-all type-i)
+    VERSION 20211020-git SIBLINGS NIL PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/static-dispatch.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/static-dispatch.nix
index 04e338d7f7658..92708af60523f 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/static-dispatch.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/static-dispatch.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "static-dispatch";
-  version = "20211020-git";
+  version = "20211209-git";
 
   parasites = [ "static-dispatch/test" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."agutil" args."alexandria" args."anaphora" args."arrows" args."cl-environments" args."cl-form-types" args."closer-mop" args."collectors" args."fiveam" args."introspect-environment" args."iterate" args."optima" args."parse-declarations-1_dot_0" args."symbol-munger" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/static-dispatch/2021-10-20/static-dispatch-20211020-git.tgz";
-    sha256 = "0zm8haaf65a6mw1jwkzf2fhlh19ixq1asjc2kiz1jhdy40qdkkfj";
+    url = "http://beta.quicklisp.org/archive/static-dispatch/2021-12-09/static-dispatch-20211209-git.tgz";
+    sha256 = "04hvwn5fvxlblhicdbj0sbvlgcxsnykak05j3pdv5laic50jz192";
   };
 
   packageName = "static-dispatch";
@@ -22,9 +22,9 @@ rec {
 }
 /* (SYSTEM static-dispatch DESCRIPTION
     Static generic function dispatch for Common Lisp. SHA256
-    0zm8haaf65a6mw1jwkzf2fhlh19ixq1asjc2kiz1jhdy40qdkkfj URL
-    http://beta.quicklisp.org/archive/static-dispatch/2021-10-20/static-dispatch-20211020-git.tgz
-    MD5 f26f461213b1c8b78ede26c692e00442 NAME static-dispatch FILENAME
+    04hvwn5fvxlblhicdbj0sbvlgcxsnykak05j3pdv5laic50jz192 URL
+    http://beta.quicklisp.org/archive/static-dispatch/2021-12-09/static-dispatch-20211209-git.tgz
+    MD5 f74cb2bd29ef9cfe966f470c7f63420f NAME static-dispatch FILENAME
     static-dispatch DEPS
     ((NAME agutil FILENAME agutil) (NAME alexandria FILENAME alexandria)
      (NAME anaphora FILENAME anaphora) (NAME arrows FILENAME arrows)
@@ -40,4 +40,4 @@ rec {
     (agutil alexandria anaphora arrows cl-environments cl-form-types closer-mop
      collectors fiveam introspect-environment iterate optima
      parse-declarations-1.0 symbol-munger)
-    VERSION 20211020-git SIBLINGS NIL PARASITES (static-dispatch/test)) */
+    VERSION 20211209-git SIBLINGS NIL PARASITES (static-dispatch/test)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/stumpwm.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/stumpwm.nix
index e6f1eab605d81..d7ea271633891 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/stumpwm.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/stumpwm.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "stumpwm";
-  version = "20210807-git";
+  version = "20211209-git";
 
   description = "A tiling, keyboard driven window manager";
 
   deps = [ args."alexandria" args."cl-ppcre" args."clx" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/stumpwm/2021-08-07/stumpwm-20210807-git.tgz";
-    sha256 = "0j9wb6djsyf2r2a4paj2s1f2sbw70wnr999abrsrkljxpayyma82";
+    url = "http://beta.quicklisp.org/archive/stumpwm/2021-12-09/stumpwm-20211209-git.tgz";
+    sha256 = "1n7wj2jn6sydnyrjmic53lqkqigk1cg140b9pcnk09ngsrq3cn60";
   };
 
   packageName = "stumpwm";
@@ -19,10 +19,10 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM stumpwm DESCRIPTION A tiling, keyboard driven window manager SHA256
-    0j9wb6djsyf2r2a4paj2s1f2sbw70wnr999abrsrkljxpayyma82 URL
-    http://beta.quicklisp.org/archive/stumpwm/2021-08-07/stumpwm-20210807-git.tgz
-    MD5 ec6d05208e0899fc929d2ea4ba61de9d NAME stumpwm FILENAME stumpwm DEPS
+    1n7wj2jn6sydnyrjmic53lqkqigk1cg140b9pcnk09ngsrq3cn60 URL
+    http://beta.quicklisp.org/archive/stumpwm/2021-12-09/stumpwm-20211209-git.tgz
+    MD5 a556b95108398e56159bafe31c4dbabf NAME stumpwm FILENAME stumpwm DEPS
     ((NAME alexandria FILENAME alexandria) (NAME cl-ppcre FILENAME cl-ppcre)
      (NAME clx FILENAME clx))
-    DEPENDENCIES (alexandria cl-ppcre clx) VERSION 20210807-git SIBLINGS
+    DEPENDENCIES (alexandria cl-ppcre clx) VERSION 20211209-git SIBLINGS
     (stumpwm-tests) PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-features.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-features.nix
index e762613bf0869..46c6b635a6a9e 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-features.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-features.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivial-features";
-  version = "20210411-git";
+  version = "20211209-git";
 
   description = "Ensures consistent *FEATURES* across multiple CLs.";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivial-features/2021-04-11/trivial-features-20210411-git.tgz";
-    sha256 = "0z6nzql8z7bz8kzd08mh36h0r54vqx7pwigy8r617jhvb0r0n0n4";
+    url = "http://beta.quicklisp.org/archive/trivial-features/2021-12-09/trivial-features-20211209-git.tgz";
+    sha256 = "1sxblr86hvbb99isr86y08snfpcajd6ra3396ibqkfnw33hhkgql";
   };
 
   packageName = "trivial-features";
@@ -20,8 +20,8 @@ rec {
 }
 /* (SYSTEM trivial-features DESCRIPTION
     Ensures consistent *FEATURES* across multiple CLs. SHA256
-    0z6nzql8z7bz8kzd08mh36h0r54vqx7pwigy8r617jhvb0r0n0n4 URL
-    http://beta.quicklisp.org/archive/trivial-features/2021-04-11/trivial-features-20210411-git.tgz
-    MD5 5ec554fff48d38af5023604a1ae42d3a NAME trivial-features FILENAME
-    trivial-features DEPS NIL DEPENDENCIES NIL VERSION 20210411-git SIBLINGS
+    1sxblr86hvbb99isr86y08snfpcajd6ra3396ibqkfnw33hhkgql URL
+    http://beta.quicklisp.org/archive/trivial-features/2021-12-09/trivial-features-20211209-git.tgz
+    MD5 eca3e353c7d7f100a07a5aeb4de02098 NAME trivial-features FILENAME
+    trivial-features DEPS NIL DEPENDENCIES NIL VERSION 20211209-git SIBLINGS
     (trivial-features-tests) PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-utf-8.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-utf-8.nix
index d6b0addde3a9d..67e07fcd9f412 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-utf-8.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/trivial-utf-8.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "trivial-utf-8";
-  version = "20200925-git";
+  version = "20211209-git";
 
   parasites = [ "trivial-utf-8/doc" "trivial-utf-8/tests" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."mgl-pax" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/trivial-utf-8/2020-09-25/trivial-utf-8-20200925-git.tgz";
-    sha256 = "06v9jif4f5xyl5jd7ldg69ds7cypf72xl7nda5q55fssmgcydi1b";
+    url = "http://beta.quicklisp.org/archive/trivial-utf-8/2021-12-09/trivial-utf-8-20211209-git.tgz";
+    sha256 = "1bis8shbdva1diwms2lvhlbdz9rvazqqxi9h8d33vlbw4xai075y";
   };
 
   packageName = "trivial-utf-8";
@@ -22,9 +22,9 @@ rec {
 }
 /* (SYSTEM trivial-utf-8 DESCRIPTION
     A small library for doing UTF-8-based input and output. SHA256
-    06v9jif4f5xyl5jd7ldg69ds7cypf72xl7nda5q55fssmgcydi1b URL
-    http://beta.quicklisp.org/archive/trivial-utf-8/2020-09-25/trivial-utf-8-20200925-git.tgz
-    MD5 799ece1f87cc4a83e81e598bc6b1dd1d NAME trivial-utf-8 FILENAME
+    1bis8shbdva1diwms2lvhlbdz9rvazqqxi9h8d33vlbw4xai075y URL
+    http://beta.quicklisp.org/archive/trivial-utf-8/2021-12-09/trivial-utf-8-20211209-git.tgz
+    MD5 65603f3c4421a93d5d8c214bb406988d NAME trivial-utf-8 FILENAME
     trivial-utf-8 DEPS ((NAME mgl-pax FILENAME mgl-pax)) DEPENDENCIES (mgl-pax)
-    VERSION 20200925-git SIBLINGS NIL PARASITES
+    VERSION 20211209-git SIBLINGS NIL PARASITES
     (trivial-utf-8/doc trivial-utf-8/tests)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/uax-15.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/uax-15.nix
index b1c853cd39b09..c87e149673490 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/uax-15.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/uax-15.nix
@@ -2,7 +2,7 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "uax-15";
-  version = "20211020-git";
+  version = "20211209-git";
 
   parasites = [ "uax-15/tests" ];
 
@@ -11,8 +11,8 @@ rec {
   deps = [ args."cl-ppcre" args."parachute" args."split-sequence" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/uax-15/2021-10-20/uax-15-20211020-git.tgz";
-    sha256 = "1g6mbwxv8cbv9gbpkj267lwdgq8k21qx0isy1gbrc158h0al7bp9";
+    url = "http://beta.quicklisp.org/archive/uax-15/2021-12-09/uax-15-20211209-git.tgz";
+    sha256 = "0haqp2vgnwq6p4j44xz0xzz4lcf15pj3pla4ybnpral2218j2cdz";
   };
 
   packageName = "uax-15";
@@ -22,10 +22,10 @@ rec {
 }
 /* (SYSTEM uax-15 DESCRIPTION
     Common lisp implementation of Unicode normalization functions :nfc, :nfd, :nfkc and :nfkd (Uax-15)
-    SHA256 1g6mbwxv8cbv9gbpkj267lwdgq8k21qx0isy1gbrc158h0al7bp9 URL
-    http://beta.quicklisp.org/archive/uax-15/2021-10-20/uax-15-20211020-git.tgz
-    MD5 27503fd1e91e494cc9ac10a985dbf95e NAME uax-15 FILENAME uax-15 DEPS
+    SHA256 0haqp2vgnwq6p4j44xz0xzz4lcf15pj3pla4ybnpral2218j2cdz URL
+    http://beta.quicklisp.org/archive/uax-15/2021-12-09/uax-15-20211209-git.tgz
+    MD5 431f4e399305c7ed8d3ce151ea6ff132 NAME uax-15 FILENAME uax-15 DEPS
     ((NAME cl-ppcre FILENAME cl-ppcre) (NAME parachute FILENAME parachute)
      (NAME split-sequence FILENAME split-sequence))
-    DEPENDENCIES (cl-ppcre parachute split-sequence) VERSION 20211020-git
+    DEPENDENCIES (cl-ppcre parachute split-sequence) VERSION 20211209-git
     SIBLINGS NIL PARASITES (uax-15/tests)) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/vas-string-metrics.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/vas-string-metrics.nix
index 122bab4b3b3a5..7b8e125ac9eae 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/vas-string-metrics.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/vas-string-metrics.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "vas-string-metrics";
-  version = "20160208-git";
+  version = "20211209-git";
 
   description = "Jaro-Winkler and Levenshtein string distance algorithms.";
 
   deps = [ ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/vas-string-metrics/2016-02-08/vas-string-metrics-20160208-git.tgz";
-    sha256 = "1s9a9bgc2ibknjr6mlbr4gsxcwpjivz5hbl1wz57fsh4n0w8h7ch";
+    url = "http://beta.quicklisp.org/archive/vas-string-metrics/2021-12-09/vas-string-metrics-20211209-git.tgz";
+    sha256 = "0q8zzfmwprjw6wmj8aifizx06xw9yrq0c8qhwhrak62cyz9lvf8n";
   };
 
   packageName = "vas-string-metrics";
@@ -20,8 +20,8 @@ rec {
 }
 /* (SYSTEM vas-string-metrics DESCRIPTION
     Jaro-Winkler and Levenshtein string distance algorithms. SHA256
-    1s9a9bgc2ibknjr6mlbr4gsxcwpjivz5hbl1wz57fsh4n0w8h7ch URL
-    http://beta.quicklisp.org/archive/vas-string-metrics/2016-02-08/vas-string-metrics-20160208-git.tgz
-    MD5 5f38d4ee241c11286be6147f481e7fd0 NAME vas-string-metrics FILENAME
-    vas-string-metrics DEPS NIL DEPENDENCIES NIL VERSION 20160208-git SIBLINGS
+    0q8zzfmwprjw6wmj8aifizx06xw9yrq0c8qhwhrak62cyz9lvf8n URL
+    http://beta.quicklisp.org/archive/vas-string-metrics/2021-12-09/vas-string-metrics-20211209-git.tgz
+    MD5 b1264bac0f9516d9617397e1b7a7c20e NAME vas-string-metrics FILENAME
+    vas-string-metrics DEPS NIL DEPENDENCIES NIL VERSION 20211209-git SIBLINGS
     (test.vas-string-metrics) PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-output/woo.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-output/woo.nix
index d0d04fb5371e7..b502989b51bbf 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-output/woo.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-output/woo.nix
@@ -2,15 +2,15 @@
 args @ { fetchurl, ... }:
 rec {
   baseName = "woo";
-  version = "20210630-git";
+  version = "20211209-git";
 
   description = "An asynchronous HTTP server written in Common Lisp";
 
   deps = [ args."alexandria" args."babel" args."bordeaux-threads" args."cffi" args."cffi-grovel" args."cffi-toolchain" args."cl-utilities" args."clack-socket" args."fast-http" args."fast-io" args."flexi-streams" args."lev" args."proc-parse" args."quri" args."smart-buffer" args."split-sequence" args."static-vectors" args."swap-bytes" args."trivial-features" args."trivial-gray-streams" args."trivial-utf-8" args."vom" args."xsubseq" ];
 
   src = fetchurl {
-    url = "http://beta.quicklisp.org/archive/woo/2021-06-30/woo-20210630-git.tgz";
-    sha256 = "0znpjcrw2gskcgf8ipgvqg87b9b2n4x6jkm25rizj6h7bms6v21r";
+    url = "http://beta.quicklisp.org/archive/woo/2021-12-09/woo-20211209-git.tgz";
+    sha256 = "0pm4l4sp3zgygkhjzd03kjjk032m5cra628fs25lvcshbrpmkcp3";
   };
 
   packageName = "woo";
@@ -19,9 +19,9 @@ rec {
   overrides = x: x;
 }
 /* (SYSTEM woo DESCRIPTION An asynchronous HTTP server written in Common Lisp
-    SHA256 0znpjcrw2gskcgf8ipgvqg87b9b2n4x6jkm25rizj6h7bms6v21r URL
-    http://beta.quicklisp.org/archive/woo/2021-06-30/woo-20210630-git.tgz MD5
-    f7b2586ed1ab916c43bfab9de5693450 NAME woo FILENAME woo DEPS
+    SHA256 0pm4l4sp3zgygkhjzd03kjjk032m5cra628fs25lvcshbrpmkcp3 URL
+    http://beta.quicklisp.org/archive/woo/2021-12-09/woo-20211209-git.tgz MD5
+    8f4926c010491996b1ffe39882fafb2b NAME woo FILENAME woo DEPS
     ((NAME alexandria FILENAME alexandria) (NAME babel FILENAME babel)
      (NAME bordeaux-threads FILENAME bordeaux-threads)
      (NAME cffi FILENAME cffi) (NAME cffi-grovel FILENAME cffi-grovel)
@@ -44,4 +44,4 @@ rec {
      cl-utilities clack-socket fast-http fast-io flexi-streams lev proc-parse
      quri smart-buffer split-sequence static-vectors swap-bytes
      trivial-features trivial-gray-streams trivial-utf-8 vom xsubseq)
-    VERSION 20210630-git SIBLINGS (clack-handler-woo woo-test) PARASITES NIL) */
+    VERSION 20211209-git SIBLINGS (clack-handler-woo woo-test) PARASITES NIL) */
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix b/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
index e9cdf50b15ab2..b68a2b2c2fb70 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-overrides.nix
@@ -292,17 +292,5 @@ $out/lib/common-lisp/query-fs"
     };
   };
   lla = addNativeLibs [ pkgs.openblas ];
-  uax-15 = x: {
-    overrides = y: (x.overrides y) // {
-      postPatch = ''
-        patch -p1 < ${
-          pkgs.fetchurl {
-            # https://github.com/sabracrolleton/uax-15/pull/12
-            url = "https://github.com/nuddyco/uax-15/commit/d553181669f488636df03d60ad7f5bec64d566bf.diff";
-            sha256 = "sha256:1608jzw7giy18vlw7pz4pl8prwlprgif8zcl9hwa0wf5gdxwd7gn";
-          }}
-      '';
-    };
-  };
 #  cl-opengl = addNativeLibs [ pkgs.libGL pkgs.glfw ];
 }
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt b/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt
index 2e02fa02e42a3..3d67721f7f354 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix-systems.txt
@@ -69,8 +69,10 @@ cl-ppcre-template
 cl-ppcre-unicode
 cl-prevalence
 cl-protobufs
+cl-qrencode
 cl-qprint
 cl-reexport
+cl-shellwords
 cl-slice
 cl-smt-lib
 cl-smtp
@@ -204,6 +206,7 @@ simple-date
 simple-date-time
 smart-buffer
 smug
+spinneret
 split-sequence
 sqlite
 static-vectors
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix.nix b/pkgs/development/lisp-modules/quicklisp-to-nix.nix
index 8b75a94de6de7..1040c2e51e27c 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix.nix
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix.nix
@@ -14,6 +14,70 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "hu_dot_dwim_dot_stefil_plus_swank" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."hu_dot_dwim_dot_stefil_plus_swank" or (x: {}))
+       (import ./quicklisp-to-nix-output/hu_dot_dwim_dot_stefil_plus_swank.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "hu_dot_dwim_dot_asdf" = quicklisp-to-nix-packages."hu_dot_dwim_dot_asdf";
+           "hu_dot_dwim_dot_stefil" = quicklisp-to-nix-packages."hu_dot_dwim_dot_stefil";
+           "swank" = quicklisp-to-nix-packages."swank";
+       }));
+
+
+  "hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def" or (x: {}))
+       (import ./quicklisp-to-nix-output/hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "anaphora" = quicklisp-to-nix-packages."anaphora";
+           "hu_dot_dwim_dot_asdf" = quicklisp-to-nix-packages."hu_dot_dwim_dot_asdf";
+           "hu_dot_dwim_dot_def" = quicklisp-to-nix-packages."hu_dot_dwim_dot_def";
+           "hu_dot_dwim_dot_stefil" = quicklisp-to-nix-packages."hu_dot_dwim_dot_stefil";
+           "iterate" = quicklisp-to-nix-packages."iterate";
+           "metabang-bind" = quicklisp-to-nix-packages."metabang-bind";
+       }));
+
+
+  "hu_dot_dwim_dot_def_plus_swank" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."hu_dot_dwim_dot_def_plus_swank" or (x: {}))
+       (import ./quicklisp-to-nix-output/hu_dot_dwim_dot_def_plus_swank.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "anaphora" = quicklisp-to-nix-packages."anaphora";
+           "hu_dot_dwim_dot_asdf" = quicklisp-to-nix-packages."hu_dot_dwim_dot_asdf";
+           "hu_dot_dwim_dot_def" = quicklisp-to-nix-packages."hu_dot_dwim_dot_def";
+           "iterate" = quicklisp-to-nix-packages."iterate";
+           "metabang-bind" = quicklisp-to-nix-packages."metabang-bind";
+           "swank" = quicklisp-to-nix-packages."swank";
+       }));
+
+
+  "hu_dot_dwim_dot_def" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."hu_dot_dwim_dot_def" or (x: {}))
+       (import ./quicklisp-to-nix-output/hu_dot_dwim_dot_def.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "anaphora" = quicklisp-to-nix-packages."anaphora";
+           "hu_dot_dwim_dot_asdf" = quicklisp-to-nix-packages."hu_dot_dwim_dot_asdf";
+           "iterate" = quicklisp-to-nix-packages."iterate";
+           "metabang-bind" = quicklisp-to-nix-packages."metabang-bind";
+       }));
+
+
+  "hu_dot_dwim_dot_common-lisp" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."hu_dot_dwim_dot_common-lisp" or (x: {}))
+       (import ./quicklisp-to-nix-output/hu_dot_dwim_dot_common-lisp.nix {
+         inherit fetchurl;
+           "hu_dot_dwim_dot_asdf" = quicklisp-to-nix-packages."hu_dot_dwim_dot_asdf";
+       }));
+
+
   "rove" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."rove" or (x: {}))
@@ -62,16 +126,6 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
-  "zpng" = buildLispPackage
-    ((f: x: (x // (f x)))
-       (qlOverrides."zpng" or (x: {}))
-       (import ./quicklisp-to-nix-output/zpng.nix {
-         inherit fetchurl;
-           "salza2" = quicklisp-to-nix-packages."salza2";
-           "trivial-gray-streams" = quicklisp-to-nix-packages."trivial-gray-streams";
-       }));
-
-
   "vas-string-metrics" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."vas-string-metrics" or (x: {}))
@@ -380,6 +434,40 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def_plus_swank" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def_plus_swank" or (x: {}))
+       (import ./quicklisp-to-nix-output/hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def_plus_swank.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "anaphora" = quicklisp-to-nix-packages."anaphora";
+           "hu_dot_dwim_dot_asdf" = quicklisp-to-nix-packages."hu_dot_dwim_dot_asdf";
+           "hu_dot_dwim_dot_def" = quicklisp-to-nix-packages."hu_dot_dwim_dot_def";
+           "hu_dot_dwim_dot_def_plus_swank" = quicklisp-to-nix-packages."hu_dot_dwim_dot_def_plus_swank";
+           "hu_dot_dwim_dot_stefil" = quicklisp-to-nix-packages."hu_dot_dwim_dot_stefil";
+           "hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def" = quicklisp-to-nix-packages."hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def";
+           "hu_dot_dwim_dot_stefil_plus_swank" = quicklisp-to-nix-packages."hu_dot_dwim_dot_stefil_plus_swank";
+           "iterate" = quicklisp-to-nix-packages."iterate";
+           "metabang-bind" = quicklisp-to-nix-packages."metabang-bind";
+           "swank" = quicklisp-to-nix-packages."swank";
+       }));
+
+
+  "hu_dot_dwim_dot_common" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."hu_dot_dwim_dot_common" or (x: {}))
+       (import ./quicklisp-to-nix-output/hu_dot_dwim_dot_common.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "anaphora" = quicklisp-to-nix-packages."anaphora";
+           "closer-mop" = quicklisp-to-nix-packages."closer-mop";
+           "hu_dot_dwim_dot_asdf" = quicklisp-to-nix-packages."hu_dot_dwim_dot_asdf";
+           "hu_dot_dwim_dot_common-lisp" = quicklisp-to-nix-packages."hu_dot_dwim_dot_common-lisp";
+           "iterate" = quicklisp-to-nix-packages."iterate";
+           "metabang-bind" = quicklisp-to-nix-packages."metabang-bind";
+       }));
+
+
   "type-i" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."type-i" or (x: {}))
@@ -1288,6 +1376,16 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "zpng" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."zpng" or (x: {}))
+       (import ./quicklisp-to-nix-output/zpng.nix {
+         inherit fetchurl;
+           "salza2" = quicklisp-to-nix-packages."salza2";
+           "trivial-gray-streams" = quicklisp-to-nix-packages."trivial-gray-streams";
+       }));
+
+
   "asdf" = quicklisp-to-nix-packages."uiop";
 
 
@@ -2165,6 +2263,50 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "spinneret" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."spinneret" or (x: {}))
+       (import ./quicklisp-to-nix-output/spinneret.nix {
+         inherit fetchurl;
+           "alexandria" = quicklisp-to-nix-packages."alexandria";
+           "anaphora" = quicklisp-to-nix-packages."anaphora";
+           "babel" = quicklisp-to-nix-packages."babel";
+           "bordeaux-threads" = quicklisp-to-nix-packages."bordeaux-threads";
+           "cl-ppcre" = quicklisp-to-nix-packages."cl-ppcre";
+           "closer-mop" = quicklisp-to-nix-packages."closer-mop";
+           "fare-quasiquote" = quicklisp-to-nix-packages."fare-quasiquote";
+           "fare-quasiquote-extras" = quicklisp-to-nix-packages."fare-quasiquote-extras";
+           "fare-quasiquote-optima" = quicklisp-to-nix-packages."fare-quasiquote-optima";
+           "fare-quasiquote-readtable" = quicklisp-to-nix-packages."fare-quasiquote-readtable";
+           "fare-utils" = quicklisp-to-nix-packages."fare-utils";
+           "global-vars" = quicklisp-to-nix-packages."global-vars";
+           "introspect-environment" = quicklisp-to-nix-packages."introspect-environment";
+           "iterate" = quicklisp-to-nix-packages."iterate";
+           "lisp-namespace" = quicklisp-to-nix-packages."lisp-namespace";
+           "named-readtables" = quicklisp-to-nix-packages."named-readtables";
+           "parenscript" = quicklisp-to-nix-packages."parenscript";
+           "parse-declarations-1_dot_0" = quicklisp-to-nix-packages."parse-declarations-1_dot_0";
+           "parse-number" = quicklisp-to-nix-packages."parse-number";
+           "serapeum" = quicklisp-to-nix-packages."serapeum";
+           "split-sequence" = quicklisp-to-nix-packages."split-sequence";
+           "string-case" = quicklisp-to-nix-packages."string-case";
+           "trivia" = quicklisp-to-nix-packages."trivia";
+           "trivia_dot_balland2006" = quicklisp-to-nix-packages."trivia_dot_balland2006";
+           "trivia_dot_level0" = quicklisp-to-nix-packages."trivia_dot_level0";
+           "trivia_dot_level1" = quicklisp-to-nix-packages."trivia_dot_level1";
+           "trivia_dot_level2" = quicklisp-to-nix-packages."trivia_dot_level2";
+           "trivia_dot_quasiquote" = quicklisp-to-nix-packages."trivia_dot_quasiquote";
+           "trivia_dot_trivial" = quicklisp-to-nix-packages."trivia_dot_trivial";
+           "trivial-cltl2" = quicklisp-to-nix-packages."trivial-cltl2";
+           "trivial-features" = quicklisp-to-nix-packages."trivial-features";
+           "trivial-file-size" = quicklisp-to-nix-packages."trivial-file-size";
+           "trivial-garbage" = quicklisp-to-nix-packages."trivial-garbage";
+           "trivial-gray-streams" = quicklisp-to-nix-packages."trivial-gray-streams";
+           "trivial-macroexpand-all" = quicklisp-to-nix-packages."trivial-macroexpand-all";
+           "type-i" = quicklisp-to-nix-packages."type-i";
+       }));
+
+
   "smug" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."smug" or (x: {}))
@@ -2582,10 +2724,8 @@ let quicklisp-to-nix-packages = rec {
            "_3bmd" = quicklisp-to-nix-packages."_3bmd";
            "_3bmd-ext-code-blocks" = quicklisp-to-nix-packages."_3bmd-ext-code-blocks";
            "alexandria" = quicklisp-to-nix-packages."alexandria";
-           "babel" = quicklisp-to-nix-packages."babel";
-           "cl-fad" = quicklisp-to-nix-packages."cl-fad";
            "colorize" = quicklisp-to-nix-packages."colorize";
-           "ironclad" = quicklisp-to-nix-packages."ironclad";
+           "md5" = quicklisp-to-nix-packages."md5";
            "named-readtables" = quicklisp-to-nix-packages."named-readtables";
            "pythonic-string-reader" = quicklisp-to-nix-packages."pythonic-string-reader";
            "swank" = quicklisp-to-nix-packages."swank";
@@ -2984,6 +3124,8 @@ let quicklisp-to-nix-packages = rec {
        (import ./quicklisp-to-nix-output/hu_dot_dwim_dot_defclass-star.nix {
          inherit fetchurl;
            "hu_dot_dwim_dot_asdf" = quicklisp-to-nix-packages."hu_dot_dwim_dot_asdf";
+           "hu_dot_dwim_dot_common" = quicklisp-to-nix-packages."hu_dot_dwim_dot_common";
+           "hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def_plus_swank" = quicklisp-to-nix-packages."hu_dot_dwim_dot_stefil_plus_hu_dot_dwim_dot_def_plus_swank";
        }));
 
 
@@ -3351,7 +3493,6 @@ let quicklisp-to-nix-packages = rec {
            "cl-base64" = quicklisp-to-nix-packages."cl-base64";
            "cl-cookie" = quicklisp-to-nix-packages."cl-cookie";
            "cl-ppcre" = quicklisp-to-nix-packages."cl-ppcre";
-           "cl-reexport" = quicklisp-to-nix-packages."cl-reexport";
            "cl-utilities" = quicklisp-to-nix-packages."cl-utilities";
            "fast-http" = quicklisp-to-nix-packages."fast-http";
            "fast-io" = quicklisp-to-nix-packages."fast-io";
@@ -3366,6 +3507,7 @@ let quicklisp-to-nix-packages = rec {
            "trivial-garbage" = quicklisp-to-nix-packages."trivial-garbage";
            "trivial-gray-streams" = quicklisp-to-nix-packages."trivial-gray-streams";
            "trivial-mimes" = quicklisp-to-nix-packages."trivial-mimes";
+           "uiop" = quicklisp-to-nix-packages."uiop";
            "usocket" = quicklisp-to-nix-packages."usocket";
            "xsubseq" = quicklisp-to-nix-packages."xsubseq";
        }));
@@ -4024,6 +4166,15 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "cl-shellwords" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."cl-shellwords" or (x: {}))
+       (import ./quicklisp-to-nix-output/cl-shellwords.nix {
+         inherit fetchurl;
+           "cl-ppcre" = quicklisp-to-nix-packages."cl-ppcre";
+       }));
+
+
   "cl-reexport" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."cl-reexport" or (x: {}))
@@ -4043,6 +4194,17 @@ let quicklisp-to-nix-packages = rec {
        }));
 
 
+  "cl-qrencode" = buildLispPackage
+    ((f: x: (x // (f x)))
+       (qlOverrides."cl-qrencode" or (x: {}))
+       (import ./quicklisp-to-nix-output/cl-qrencode.nix {
+         inherit fetchurl;
+           "salza2" = quicklisp-to-nix-packages."salza2";
+           "trivial-gray-streams" = quicklisp-to-nix-packages."trivial-gray-streams";
+           "zpng" = quicklisp-to-nix-packages."zpng";
+       }));
+
+
   "cl-protobufs" = buildLispPackage
     ((f: x: (x // (f x)))
        (qlOverrides."cl-protobufs" or (x: {}))
diff --git a/pkgs/development/lisp-modules/quicklisp-to-nix/system-info.lisp b/pkgs/development/lisp-modules/quicklisp-to-nix/system-info.lisp
index e9df02e010ea5..af8d450272c05 100644
--- a/pkgs/development/lisp-modules/quicklisp-to-nix/system-info.lisp
+++ b/pkgs/development/lisp-modules/quicklisp-to-nix/system-info.lisp
@@ -245,7 +245,10 @@ dependencies that are detected during the install."
     "symbol-munger-test" ;; Dependency cycle between lisp-unit2 and symbol-munger
     "cl-postgres-simple-date-tests" ;; Dependency cycle between cl-postgres and simple-date
     "cl-containers/with-variates" ;; Symbol conflict between cl-variates:next-element, metabang.utilities:next-element
-    "serapeum/docs") ;; Weird issue with FUN-INFO redefinition
+    "serapeum/docs" ;; Weird issue with FUN-INFO redefinition
+    "spinneret/cl-markdown" ;; Weird issue with FUN-INFO redefinition
+    "spinneret/ps" ;; Weird issue with FUN-INFO redefinition
+    "spinneret/tests") ;; Weird issue with FUN-INFO redefinition
   "A vector of systems that shouldn't be loaded by `quickload-parasitic-systems'.
 
 These systems are known to be troublemakers.  In some sense, all
diff --git a/pkgs/development/lua-modules/generated-packages.nix b/pkgs/development/lua-modules/generated-packages.nix
index 983efa4329ded..c4442f1fd7957 100644
--- a/pkgs/development/lua-modules/generated-packages.nix
+++ b/pkgs/development/lua-modules/generated-packages.nix
@@ -15,7 +15,7 @@ buildLuarocksPackage {
   pname = "alt-getopt";
   version = "0.8.0-1";
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/alt-getopt-0.8.0-1.rockspec";
+    url    = "https://luafr.org/luarocks/alt-getopt-0.8.0-1.rockspec";
     sha256 = "17yxi1lsrbkmwzcn1x48x8758d7v1frsz1bmnpqfv4vfnlh0x210";
   }).outPath;
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
@@ -159,7 +159,7 @@ buildLuarocksPackage {
   pname = "busted";
   version = "2.0.0-1";
   knownRockspec = (fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/busted-2.0.0-1.rockspec";
+    url    = "https://luafr.org/luarocks/busted-2.0.0-1.rockspec";
     sha256 = "0cbw95bjxl667n9apcgng2kr5hq6bc7gp3vryw4dzixmfabxkcbw";
   }).outPath;
   src = fetchurl {
@@ -184,7 +184,7 @@ buildLuarocksPackage {
   pname = "cassowary";
   version = "2.3.1-2";
   knownRockspec = (fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/cassowary-2.3.1-2.rockspec";
+    url    = "https://luafr.org/luarocks/cassowary-2.3.1-2.rockspec";
     sha256 = "04y882f9ai1jhk0zwla2g0fvl56a75rwnxhsl9r3m0qa5i0ia1i5";
   }).outPath;
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
@@ -244,7 +244,7 @@ buildLuarocksPackage {
   pname = "cosmo";
   version = "16.06.04-1";
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/cosmo-16.06.04-1.rockspec";
+    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/cosmo-16.06.04-1.rockspec";
     sha256 = "0ipv1hrlhvaz1myz6qxabq7b7kb3bz456cya3r292487a3g9h9pb";
   }).outPath;
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
@@ -276,7 +276,7 @@ buildLuarocksPackage {
   pname = "coxpcall";
   version = "1.17.0-1";
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/coxpcall-1.17.0-1.rockspec";
+    url    = "https://luafr.org/luarocks/coxpcall-1.17.0-1.rockspec";
     sha256 = "0mf0nggg4ajahy5y1q5zh2zx9rmgzw06572bxx6k8b736b8j7gca";
   }).outPath;
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
@@ -307,7 +307,7 @@ buildLuarocksPackage {
   pname = "cqueues";
   version = "20200726.52-0";
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/cqueues-20200726.52-0.rockspec";
+    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/cqueues-20200726.52-0.rockspec";
     sha256 = "0w2kq9w0wda56k02rjmvmzccz6bc3mn70s9v7npjadh85i5zlhhp";
   }).outPath;
   src = fetchurl {
@@ -393,7 +393,7 @@ buildLuarocksPackage {
   pname = "dkjson";
   version = "2.5-3";
   knownRockspec = (fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/dkjson-2.5-3.rockspec";
+    url    = "https://luafr.org/luarocks/dkjson-2.5-3.rockspec";
     sha256 = "18xngdzl2q207cil64aj81qi6qvj1g269pf07j5x4pbvamd6a1l3";
   }).outPath;
   src = fetchurl {
@@ -418,7 +418,7 @@ buildLuarocksPackage {
   pname = "fifo";
   version = "0.2-0";
   knownRockspec = (fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/fifo-0.2-0.rockspec";
+    url    = "https://luafr.org/luarocks/fifo-0.2-0.rockspec";
     sha256 = "0vr9apmai2cyra2n573nr3dyk929gzcs4nm1096jdxcixmvh2ymq";
   }).outPath;
   src = fetchurl {
@@ -444,10 +444,10 @@ buildLuarocksPackage {
 
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
   "url": "https://github.com/lewis6991/gitsigns.nvim",
-  "rev": "552f114caeaec4ce97822cb55dfa7c7e5368136b",
-  "date": "2021-10-15T13:31:44+01:00",
-  "path": "/nix/store/40vkv3sc4h6gh9ac88k7pilszxmy38yv-gitsigns.nvim",
-  "sha256": "0qdafm3arjf8bcqpvv085dwzbikad3sr3xzvrn3gfa0dsls8pg6q",
+  "rev": "5eb87a0b05914d3763277ebe257bd5bafcdde8cd",
+  "date": "2021-12-06T18:02:22+00:00",
+  "path": "/nix/store/c5l5bz7m5f48l57p4yrpxfhqga0cxsny-gitsigns.nvim",
+  "sha256": "02cmgc3fgrwx6v6ylzqxdwgk9jsmd8j2q6fdnfbllg3zjwx3agcd",
   "fetchLFS": false,
   "fetchSubmodules": true,
   "deepClone": false,
@@ -496,14 +496,14 @@ inspect = callPackage({ buildLuarocksPackage, luaOlder, luaAtLeast
 }:
 buildLuarocksPackage {
   pname = "inspect";
-  version = "3.1.1-0";
+  version = "3.1.2-0";
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/inspect-3.1.1-0.rockspec";
-    sha256 = "00spibq2h4an8v0204vr1hny4vv6za720c37ipsahpjk198ayf1p";
+    url    = "https://luarocks.org/inspect-3.1.2-0.rockspec";
+    sha256 = "13jbv3rhj4mv2farrxns88g7j34ljag7vz0kma0fm2pzdz3686vx";
   }).outPath;
   src = fetchurl {
-    url    = "https://github.com/kikito/inspect.lua/archive/v3.1.1.tar.gz";
-    sha256 = "1nz0yqhkd0nkymghrj99gb2id40g50drh4a96g3v5k7h1sbg94h2";
+    url    = "https://github.com/kikito/inspect.lua/archive/v3.1.2.tar.gz";
+    sha256 = "08ln4p5bmvcs8wj8hzs4ny66m63abyxjkmcxhjji5ay99g85cn3b";
   };
 
   disabled = with lua; (luaOlder "5.1");
@@ -524,14 +524,14 @@ buildLuarocksPackage {
   version = "scm-0";
   knownRockspec = (fetchurl {
     url    = "mirror://luarocks/ldbus-scm-0.rockspec";
-    sha256 = "1yhkw5y8h1qf44vx31934k042cmnc7zcv2k0pv0g27wsmlxrlznx";
+    sha256 = "1c0h6fx7avzh89hl17v6simy1p4mjg8bimlsbjybks0zxznd8rbm";
   }).outPath;
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
   "url": "https://github.com/daurnimator/ldbus.git",
-  "rev": "9e176fe851006037a643610e6d8f3a8e597d4073",
-  "date": "2019-08-16T14:26:05+10:00",
-  "path": "/nix/store/gg4zldd6kx048d6p65b9cimg3arma8yh-ldbus",
-  "sha256": "06wcz4i5b7kphqbry274q3ivnsh331rxiyf7n4qk3zx2kvarq08s",
+  "rev": "6d4909c983c8a0e2c7384bac8055c628aa524ea2",
+  "date": "2021-11-10T23:58:54+11:00",
+  "path": "/nix/store/j830jk2hkanz7abkdsbvg2warsyr0a2c-ldbus",
+  "sha256": "18q98b98mfvjzbyssf18bpnlx4hsx4s9lwcwia4z9dxiaiw7b77j",
   "fetchLFS": false,
   "fetchSubmodules": true,
   "deepClone": false,
@@ -539,7 +539,7 @@ buildLuarocksPackage {
 }
  '') ["date" "path"]) ;
 
-  disabled = with lua; (luaOlder "5.1") || (luaAtLeast "5.4");
+  disabled = with lua; (luaOlder "5.1") || (luaAtLeast "5.5");
   propagatedBuildInputs = [ lua ];
 
   meta = {
@@ -572,7 +572,7 @@ buildLuarocksPackage {
   propagatedBuildInputs = [ penlight markdown ];
 
   meta = {
-    homepage = "http://stevedonovan.github.com/ldoc";
+    homepage = "https://github.com/lunarmodules/LDoc";
     description = "A Lua Documentation Tool";
     license.fullName = "MIT/X11";
   };
@@ -585,7 +585,7 @@ buildLuarocksPackage {
   pname = "lgi";
   version = "0.9.2-1";
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/lgi-0.9.2-1.rockspec";
+    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/lgi-0.9.2-1.rockspec";
     sha256 = "1gqi07m4bs7xibsy4vx8qgyp3yb1wnh0gdq1cpwqzv35y6hn5ds3";
   }).outPath;
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
@@ -605,7 +605,7 @@ buildLuarocksPackage {
   propagatedBuildInputs = [ lua ];
 
   meta = {
-    homepage = "http://github.com/pavouk/lgi";
+    homepage = "https://github.com/pavouk/lgi";
     description = "Lua bindings to GObject libraries";
     license.fullName = "MIT/X11";
   };
@@ -666,7 +666,7 @@ buildLuarocksPackage {
   pname = "lpeg";
   version = "1.0.2-1";
   knownRockspec = (fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/lpeg-1.0.2-1.rockspec";
+    url    = "https://luafr.org/luarocks/lpeg-1.0.2-1.rockspec";
     sha256 = "08a8p5cwlwpjawk8sczb7bq2whdsng4mmhphahyklf1bkvl2li89";
   }).outPath;
   src = fetchurl {
@@ -692,7 +692,7 @@ buildLuarocksPackage {
   pname = "lpeg_patterns";
   version = "0.5-0";
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/lpeg_patterns-0.5-0.rockspec";
+    url    = "https://luafr.org/luarocks/lpeg_patterns-0.5-0.rockspec";
     sha256 = "1vzl3ryryc624mchclzsfl3hsrprb9q214zbi1xsjcc4ckq5qfh7";
   }).outPath;
   src = fetchurl {
@@ -716,7 +716,7 @@ buildLuarocksPackage {
   pname = "lpeglabel";
   version = "1.6.0-1";
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/lpeglabel-1.6.0-1.rockspec";
+    url    = "https://luafr.org/luarocks/lpeglabel-1.6.0-1.rockspec";
     sha256 = "13gc32pggng6f95xx5zw9n9ian518wlgb26mna9kh4q2xa1k42pm";
   }).outPath;
   src = fetchurl {
@@ -741,7 +741,7 @@ buildLuarocksPackage {
   pname = "lpty";
   version = "1.2.2-1";
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/lpty-1.2.2-1.rockspec";
+    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/lpty-1.2.2-1.rockspec";
     sha256 = "04af4mhiqrw3br4qzz7yznw9zy2m50wddwzgvzkvhd99ng71fkzg";
   }).outPath;
   src = fetchurl {
@@ -766,7 +766,7 @@ buildLuarocksPackage {
   pname = "lrexlib-gnu";
   version = "2.9.1-1";
   knownRockspec = (fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/lrexlib-gnu-2.9.1-1.rockspec";
+    url    = "https://luafr.org/luarocks/lrexlib-gnu-2.9.1-1.rockspec";
     sha256 = "1jfjxh26iwsavipkwmscwv52l77qxzvibfmlvpskcpawyii7xcw8";
   }).outPath;
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
@@ -799,7 +799,7 @@ buildLuarocksPackage {
   pname = "lrexlib-pcre";
   version = "2.9.1-1";
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/lrexlib-pcre-2.9.1-1.rockspec";
+    url    = "https://luafr.org/luarocks/lrexlib-pcre-2.9.1-1.rockspec";
     sha256 = "036k27xaplxn128b3p67xiqm8k40s7bxvh87wc8v2cx1cc4b9ia4";
   }).outPath;
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
@@ -833,7 +833,7 @@ buildLuarocksPackage {
   pname = "lrexlib-posix";
   version = "2.9.1-1";
   knownRockspec = (fetchurl {
-    url    = "https://luafr.org/luarocks/lrexlib-posix-2.9.1-1.rockspec";
+    url    = "https://luarocks.org/lrexlib-posix-2.9.1-1.rockspec";
     sha256 = "1zxrx9yifm9ry4wbjgv86rlvq3ff6qivldvib3ha4767azla0j0r";
   }).outPath;
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
@@ -1111,17 +1111,17 @@ lua-resty-openssl = callPackage({ buildLuarocksPackage, luaOlder, luaAtLeast
 , fetchgit}:
 buildLuarocksPackage {
   pname = "lua-resty-openssl";
-  version = "0.7.5-1";
+  version = "0.8.2-1";
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/lua-resty-openssl-0.7.5-1.rockspec";
-    sha256 = "13v14in9cgmjgarmy6br9629ns1qlhw7a30c061y6gncjannnv6y";
+    url    = "https://luarocks.org/lua-resty-openssl-0.8.2-1.rockspec";
+    sha256 = "1dxaxh3l4vhrv5p2pwphl7jn7jpcjq3dmawfl9wbp3a88121gbsx";
   }).outPath;
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
   "url": "https://github.com/fffonion/lua-resty-openssl.git",
-  "rev": "6a7f4a1649da7e0499b542b73c61e8dbdf91f57e",
-  "date": "2021-09-18T06:15:54+08:00",
-  "path": "/nix/store/01bninsbgix30zl97lk0p10ycqkc37kx-lua-resty-openssl",
-  "sha256": "1ypji678lna9z3a48lhxs7wrw8d1prln7yfvqfm96lbmfvr5wfxw",
+  "rev": "53e2d4ba7e8c31181c1fd71d3817911da0533675",
+  "date": "2021-11-22T12:07:07+08:00",
+  "path": "/nix/store/x7s51wf9ysxs2xs4adixf7ypmadfwp5c-lua-resty-openssl",
+  "sha256": "19cvqz81d0lxql55pgsbgynval0jxh8sicps94nzapvj90xqjviy",
   "fetchLFS": false,
   "fetchSubmodules": true,
   "deepClone": false,
@@ -1176,7 +1176,7 @@ buildLuarocksPackage {
   pname = "lua-term";
   version = "0.7-1";
   knownRockspec = (fetchurl {
-    url    = "https://luafr.org/luarocks/lua-term-0.7-1.rockspec";
+    url    = "https://luarocks.org/lua-term-0.7-1.rockspec";
     sha256 = "0r9g5jw7pqr1dyj6w58dqlr7y7l0jp077n8nnji4phf10biyrvg2";
   }).outPath;
   src = fetchurl {
@@ -1232,7 +1232,7 @@ buildLuarocksPackage {
   pname = "lua-yajl";
   version = "2.0-1";
   knownRockspec = (fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/lua-yajl-2.0-1.rockspec";
+    url    = "https://luarocks.org/lua-yajl-2.0-1.rockspec";
     sha256 = "0h600zgq5qc9z3cid1kr35q3qb98alg0m3qf0a3mfj33hya6pcxp";
   }).outPath;
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
@@ -1266,7 +1266,7 @@ buildLuarocksPackage {
   pname = "lua-zlib";
   version = "1.2-1";
   knownRockspec = (fetchurl {
-    url    = "https://luafr.org/luarocks/lua-zlib-1.2-1.rockspec";
+    url    = "https://luarocks.org/lua-zlib-1.2-1.rockspec";
     sha256 = "18rpbg9b4vsnh3svapiqrvwwshw1abb5l5fd7441byx1nm3fjq9w";
   }).outPath;
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
@@ -1385,7 +1385,7 @@ buildLuarocksPackage {
   pname = "luacov";
   version = "0.15.0-1";
   knownRockspec = (fetchurl {
-    url    = "https://luafr.org/luarocks/luacov-0.15.0-1.rockspec";
+    url    = "https://luarocks.org/luacov-0.15.0-1.rockspec";
     sha256 = "18byfl23c73pazi60hsx0vd74hqq80mzixab76j36cyn8k4ni9db";
   }).outPath;
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
@@ -1484,7 +1484,7 @@ buildLuarocksPackage {
   pname = "luadbi-postgresql";
   version = "0.7.2-1";
   knownRockspec = (fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/luadbi-postgresql-0.7.2-1.rockspec";
+    url    = "https://luarocks.org/luadbi-postgresql-0.7.2-1.rockspec";
     sha256 = "07rx4agw4hjyzf8157apdwfqh9s26nqndmkr3wm7v09ygjvdjiix";
   }).outPath;
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
@@ -1550,7 +1550,7 @@ buildLuarocksPackage {
   pname = "luaepnf";
   version = "0.3-2";
   knownRockspec = (fetchurl {
-    url    = "https://luafr.org/luarocks/luaepnf-0.3-2.rockspec";
+    url    = "https://luarocks.org/luaepnf-0.3-2.rockspec";
     sha256 = "0kqmnj11wmfpc9mz04zzq8ab4mnbkrhcgc525wrq6pgl3p5li8aa";
   }).outPath;
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
@@ -1667,7 +1667,7 @@ buildLuarocksPackage {
   pname = "luafilesystem";
   version = "1.7.0-2";
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/luafilesystem-1.7.0-2.rockspec";
+    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/luafilesystem-1.7.0-2.rockspec";
     sha256 = "0xivgn8bbkx1g5a30jrjcv4hg5mpiiyrm3fhlz9lndgbh4cnjrq6";
   }).outPath;
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
@@ -1699,17 +1699,17 @@ lualogging = callPackage({ buildLuarocksPackage, luaOlder, luaAtLeast
 }:
 buildLuarocksPackage {
   pname = "lualogging";
-  version = "1.5.2-1";
+  version = "1.6.0-2";
   knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/lualogging-1.5.2-1.rockspec";
-    sha256 = "0jlqjhr5p9ji51bkmz8n9jc55i3vzqjfwjxvxp2ib9h4gmh2zqk3";
+    url    = "https://luarocks.org/lualogging-1.6.0-2.rockspec";
+    sha256 = "1235sfss0gmcw744rnhzfffhd1z732g2b2vsbpbz9kcvvhznmamb";
   }).outPath;
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
   "url": "https://github.com/lunarmodules/lualogging.git",
-  "rev": "8b4d8dd5a311245a197890405ba9324b9f5f5ab1",
-  "date": "2021-08-12T19:29:39+02:00",
-  "path": "/nix/store/q1v28n04hh3r7aw37cxakzksfa3kw5qa-lualogging",
-  "sha256": "0nj0ik91lgl9rwgizdkn7vy9brddsz1kxfn70c01x861vaxi63iz",
+  "rev": "0bc4415de03ff1a99c92c02a5bed14a45b078079",
+  "date": "2021-11-09T20:20:42+01:00",
+  "path": "/nix/store/p3cyhqjw12bj7s6y4hndzqdkdfwq3958-lualogging",
+  "sha256": "18664k4kfi4zq9n0217j57h42li6ws8s3f6d4yj0rcqsl19fxa7c",
   "fetchLFS": false,
   "fetchSubmodules": true,
   "deepClone": false,
@@ -2060,7 +2060,7 @@ buildLuarocksPackage {
   pname = "lyaml";
   version = "6.2.7-1";
   knownRockspec = (fetchurl {
-    url    = "https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/lyaml-6.2.7-1.rockspec";
+    url    = "https://luarocks.org/lyaml-6.2.7-1.rockspec";
     sha256 = "0m5bnzg24nyk35gcn4rydgzk0ysk1f6rslxwxd0w3drl1bg64zja";
   }).outPath;
   src = fetchurl {
@@ -2138,15 +2138,12 @@ buildLuarocksPackage {
 }) {};
 
 moonscript = callPackage({ buildLuarocksPackage, luaOlder, luaAtLeast
-, fetchgit, lua, lpeg, alt-getopt, luafilesystem
+, fetchgit, lua, lpeg, argparse, luafilesystem
 }:
 buildLuarocksPackage {
   pname = "moonscript";
-  version = "0.5.0-1";
-  knownRockspec = (fetchurl {
-    url    = "https://luarocks.org/moonscript-0.5.0-1.rockspec";
-    sha256 = "06ykvmzndkcmbwn85a4l1cl8v8jw38g0isdyhwwbgv0m5a306j6d";
-  }).outPath;
+  version = "dev-1";
+
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
   "url": "https://github.com/leafo/moonscript.git",
   "rev": "b7efcd131046ed921ae1075d7c0f6a3b64a570f7",
@@ -2161,7 +2158,7 @@ buildLuarocksPackage {
  '') ["date" "path"]) ;
 
   disabled = with lua; (luaOlder "5.1");
-  propagatedBuildInputs = [ lua lpeg alt-getopt luafilesystem ];
+  propagatedBuildInputs = [ lua lpeg argparse luafilesystem ];
 
   meta = {
     homepage = "http://moonscript.org";
@@ -2255,10 +2252,10 @@ buildLuarocksPackage {
 
   src = fetchgit ( removeAttrs (builtins.fromJSON ''{
   "url": "https://github.com/nvim-lua/plenary.nvim",
-  "rev": "80bb2b9bb74bdca38a46480b6f2e15af990406e4",
-  "date": "2021-10-06T19:20:08+02:00",
-  "path": "/nix/store/mw4r562qxr7giy1n43iylp3qb8ch0jqs-plenary.nvim",
-  "sha256": "11akcpxcp4m997a2y76ajknnmsifac2hj4nq9i4a8b1j08bxinim",
+  "rev": "c2bb2d8fd5b44bfc6aad3a5463c84576a98dd4a9",
+  "date": "2021-12-06T21:11:29+01:00",
+  "path": "/nix/store/h376md0lpbv31n5wyrq0cilkpx2lkr18-plenary.nvim",
+  "sha256": "12csjz882yv9wwhzx964fq210655m8820491xjsrjlwccfc09i35",
   "fetchLFS": false,
   "fetchSubmodules": true,
   "deepClone": false,
diff --git a/pkgs/development/misc/haskell/hasura/graphql-engine.nix b/pkgs/development/misc/haskell/hasura/graphql-engine.nix
index ba9d1d5bf9f46..d5d8e693ab41a 100644
--- a/pkgs/development/misc/haskell/hasura/graphql-engine.nix
+++ b/pkgs/development/misc/haskell/hasura/graphql-engine.nix
@@ -32,8 +32,8 @@ mkDerivation {
   version = "1.0.0";
   src = fetchgit {
     url = "https://github.com/hasura/graphql-engine.git";
-    sha256 = "0ky23f700pmzb6anx44xzh6dixixmn7kq1ypj0yy4kqiqzqdb2dg";
-    rev = "7c35ffb36561214390d0d545d418746f29a29ba4";
+    sha256 = "04ns40wk1760pxi18pyqzgrk8h28mw6402zkjc1g52ny6afchs05";
+    rev = "8be851c2a1326b2caada13a3c43becd2e848db6c";
     fetchSubmodules = true;
   };
   postUnpack = "sourceRoot+=/server; echo source root reset to $sourceRoot";
diff --git a/pkgs/development/mobile/imgpatchtools/default.nix b/pkgs/development/mobile/imgpatchtools/default.nix
index 2b746423cfe99..f5725054bb5e6 100644
--- a/pkgs/development/mobile/imgpatchtools/default.nix
+++ b/pkgs/development/mobile/imgpatchtools/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://github.com/erfanoabdi/imgpatchtools";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ yegortimoshenko ];
+    maintainers = with maintainers; [ yana ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/mobile/titaniumenv/titaniumsdk-7.5.nix b/pkgs/development/mobile/titaniumenv/titaniumsdk-7.5.nix
index ea6ead43f0c0f..4c8a63a0a5285 100644
--- a/pkgs/development/mobile/titaniumenv/titaniumsdk-7.5.nix
+++ b/pkgs/development/mobile/titaniumenv/titaniumsdk-7.5.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, unzip, makeWrapper}:
+{ stdenv, fetchurl, unzip, makeWrapper }:
 
 let
   # Gradle is a build system that bootstraps itself. This is what it actually
@@ -53,16 +53,21 @@ let
   };
 in
 stdenv.mkDerivation {
-  name = "mobilesdk-7.5.1.GA";
-  src = if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") then fetchurl {
-    url = "https://builds.appcelerator.com/mobile/7_5_X/mobilesdk-7.5.1.v20190124152315-linux.zip";
-    sha256 = "1ihyh6szl9a2gbdgv13msd3g7i3xi9ifmgsh6v562hqlfi4lixng";
-  }
-  else if stdenv.system == "x86_64-darwin" then fetchurl {
-    url = "https://builds.appcelerator.com/mobile/7_5_X/mobilesdk-7.5.1.v20190124152315-osx.zip";
-    sha256 = "1whs1j7fkk2hxr4nxq50d7ic5wj83b1i1jl0p722sqbvkmgxssa2";
-  }
-  else throw "Platform: ${stdenv.system} not supported!";
+  pname = "mobilesdk";
+  version = "7.5.1.GA";
+
+  src =
+    if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") then
+      fetchurl {
+        url = "https://builds.appcelerator.com/mobile/7_5_X/mobilesdk-7.5.1.v20190124152315-linux.zip";
+        sha256 = "1ihyh6szl9a2gbdgv13msd3g7i3xi9ifmgsh6v562hqlfi4lixng";
+      }
+    else if stdenv.system == "x86_64-darwin" then
+      fetchurl {
+        url = "https://builds.appcelerator.com/mobile/7_5_X/mobilesdk-7.5.1.v20190124152315-osx.zip";
+        sha256 = "1whs1j7fkk2hxr4nxq50d7ic5wj83b1i1jl0p722sqbvkmgxssa2";
+      }
+    else throw "Platform: ${stdenv.system} not supported!";
 
   nativeBuildInputs = [ makeWrapper unzip ];
 
diff --git a/pkgs/development/mobile/titaniumenv/titaniumsdk-8.2.nix b/pkgs/development/mobile/titaniumenv/titaniumsdk-8.2.nix
index 7cb0390417fd6..e51775b8c6df6 100644
--- a/pkgs/development/mobile/titaniumenv/titaniumsdk-8.2.nix
+++ b/pkgs/development/mobile/titaniumenv/titaniumsdk-8.2.nix
@@ -1,4 +1,4 @@
-{stdenv, lib, fetchurl, unzip, makeWrapper}:
+{ stdenv, lib, fetchurl, unzip, makeWrapper }:
 
 let
   # Gradle is a build system that bootstraps itself. This is what it actually
@@ -53,16 +53,21 @@ let
   };
 in
 stdenv.mkDerivation {
-  name = "mobilesdk-8.2.1.GA";
-  src = if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") then fetchurl {
-    url = "https://builds.appcelerator.com/mobile/8_2_X/mobilesdk-8.2.1.v20191025070136-linux.zip";
-    sha256 = "1nvcmm6cby6bmwdiacq46n5y4zjpz9qlipakvglw27j3p4rbmkwl";
-  }
-  else if stdenv.system == "x86_64-darwin" then fetchurl {
-    url = "https://builds.appcelerator.com/mobile/8_2_X/mobilesdk-8.2.1.v20191025070136-osx.zip";
-    sha256 = "1nxwmyw3vqc5wghj38kpksisy0i808x0x3pa8w3p290w709g311l";
-  }
-  else throw "Platform: ${stdenv.system} not supported!";
+  pname = "mobilesdk";
+  version = "8.2.1.GA";
+
+  src =
+    if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") then
+      fetchurl {
+        url = "https://builds.appcelerator.com/mobile/8_2_X/mobilesdk-8.2.1.v20191025070136-linux.zip";
+        sha256 = "1nvcmm6cby6bmwdiacq46n5y4zjpz9qlipakvglw27j3p4rbmkwl";
+      }
+    else if stdenv.system == "x86_64-darwin" then
+      fetchurl {
+        url = "https://builds.appcelerator.com/mobile/8_2_X/mobilesdk-8.2.1.v20191025070136-osx.zip";
+        sha256 = "1nxwmyw3vqc5wghj38kpksisy0i808x0x3pa8w3p290w709g311l";
+      }
+    else throw "Platform: ${stdenv.system} not supported!";
 
   nativeBuildInputs = [ makeWrapper unzip ];
 
diff --git a/pkgs/development/mobile/titaniumenv/titaniumsdk-8.3.nix b/pkgs/development/mobile/titaniumenv/titaniumsdk-8.3.nix
index aef3e0c56e455..eadbad7e0f5f4 100644
--- a/pkgs/development/mobile/titaniumenv/titaniumsdk-8.3.nix
+++ b/pkgs/development/mobile/titaniumenv/titaniumsdk-8.3.nix
@@ -1,4 +1,4 @@
-{stdenv, lib, fetchurl, unzip, makeWrapper}:
+{ stdenv, lib, fetchurl, unzip, makeWrapper }:
 
 let
   # Gradle is a build system that bootstraps itself. This is what it actually
@@ -53,16 +53,21 @@ let
   };
 in
 stdenv.mkDerivation {
-  name = "mobilesdk-8.3.2.GA";
-  src = if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") then fetchurl {
-    url = "https://builds.appcelerator.com/mobile/8_3_X/mobilesdk-8.3.2.v20200117111803-linux.zip";
-    sha256 = "04pfw21jrx9w259lphynwykqjk4c9hm0zix4d40s7mf8mmh3xdx9";
-  }
-  else if stdenv.system == "x86_64-darwin" then fetchurl {
-    url = "https://builds.appcelerator.com/mobile/8_3_X/mobilesdk-8.3.2.v20200117111803-osx.zip";
-    sha256 = "1zflq5hc96lrriw71ya623kkskkisi9yayg8qs03zimi0gksizxw";
-  }
-  else throw "Platform: ${stdenv.system} not supported!";
+  pname = "mobilesdk";
+  version = "8.3.2.GA";
+
+  src =
+    if (stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux") then
+      fetchurl {
+        url = "https://builds.appcelerator.com/mobile/8_3_X/mobilesdk-8.3.2.v20200117111803-linux.zip";
+        sha256 = "04pfw21jrx9w259lphynwykqjk4c9hm0zix4d40s7mf8mmh3xdx9";
+      }
+    else if stdenv.system == "x86_64-darwin" then
+      fetchurl {
+        url = "https://builds.appcelerator.com/mobile/8_3_X/mobilesdk-8.3.2.v20200117111803-osx.zip";
+        sha256 = "1zflq5hc96lrriw71ya623kkskkisi9yayg8qs03zimi0gksizxw";
+      }
+    else throw "Platform: ${stdenv.system} not supported!";
 
   nativeBuildInputs = [ makeWrapper unzip ];
 
diff --git a/pkgs/development/nim-packages/build-nim-package/default.nix b/pkgs/development/nim-packages/build-nim-package/default.nix
index 6c7aafd22c81e..acf67b9f8977b 100644
--- a/pkgs/development/nim-packages/build-nim-package/default.nix
+++ b/pkgs/development/nim-packages/build-nim-package/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation (attrs // {
     nim_builder --phase:configure
     runHook postConfigure
   '' else
-    buildPhase;
+    configurePhase;
 
   buildPhase = if isNull buildPhase then ''
     runHook preBuild
diff --git a/pkgs/development/nim-packages/nim_builder/nim_builder.nim b/pkgs/development/nim-packages/nim_builder/nim_builder.nim
index b8881b700047f..90dcb46588b72 100644
--- a/pkgs/development/nim-packages/nim_builder/nim_builder.nim
+++ b/pkgs/development/nim-packages/nim_builder/nim_builder.nim
@@ -64,6 +64,19 @@ proc getNimbleValues(filePath, key: string): seq[string] =
     if s.len > 0 and s[0] == '"':
       s = s.unescape()
 
+proc getOutputDir(name: string): string =
+  ## Return the output directory for output `name`.
+  ## If `name` is not a valid output then the first output
+  ## is returned as a default.
+  let outputs = splitWhitespace getEnv("outputs")
+  doAssert(outputs.len > 0)
+  if outputs.contains name:
+    result = getEnv(name)
+  if result == "":
+    result = getEnv("out")
+  if result == "":
+    result = getEnv(outputs[0], "/dev/null")
+
 proc configurePhase*() =
   ## Generate "config.nims" which will be read by the Nim
   ## compiler during later phases.
@@ -103,14 +116,14 @@ proc buildPhase*() =
     nf = getNimbleFilePath()
     bins = nf.getNimbleValues("bin")
     srcDir = nf.getNimbleValue("srcDir", ".")
-    binDir = getenv("outputBin", getenv("out", "/dev/null")) / "bin"
+    binDir = getOutputDir("bin") / "bin"
   if bins != @[]:
     for bin in bins:
       cmds.add("nim compile $# --outdir:$# $#" %
           [getenv"nimFlags", binDir, normalizedPath(srcDir / bin)])
   if getEnvBool"nimDoc":
     echo "generating documentation"
-    let docDir = getenv("outputDoc", (getenv("out", "/dev/null") / "doc"))
+    let docDir = getOutputDir("doc") / "doc"
     for path in walkFiles(srcDir / "*.nim"):
       cmds.add("nim doc --outdir:$# $#" % [docDir, path])
   if cmds.len > 0:
@@ -126,7 +139,7 @@ proc installPhase*() =
     let
       nf = getNimbleFilePath()
       srcDir = nf.getNimbleValue("srcDir", ".")
-      devDir = getenv("outputDev", getenv("out", "/dev/null"))
+      devDir = getOutputDir "dev"
     echo "Install ", srcDir, " to ", devDir
     copyDir(normalizedPath(srcDir), normalizedPath(devDir / srcDir))
     copyFile(nf, devDir / nf.extractFilename)
diff --git a/pkgs/development/nim-packages/python/default.nix b/pkgs/development/nim-packages/python/default.nix
deleted file mode 100644
index 38002c15c9395..0000000000000
--- a/pkgs/development/nim-packages/python/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, buildNimPackage, fetchFromGitHub, python27 }:
-
-buildNimPackage rec {
-  pname = "python";
-  version = "1.2";
-  src = fetchFromGitHub {
-    owner = "nim-lang";
-    repo = pname;
-    rev = "b7c3b2c447a69fdb0a974ba149062e52182fda08";
-    hash = "sha256-Wl4on0rf4zbNxmwmq/ZkNiPIFCZY+1BdokPQoba2EVI=";
-  };
-  postPatch = let pythonLib = "${python27}/lib/libpython2.7.so";
-  in ''
-    substituteInPlace src/python.nim \
-      --replace 'items(LibNames)' "[\"${pythonLib}\"]" \
-      --replace 'dynlib: dllname' 'dynlib: "${pythonLib}"'
-  '';
-  doCheck = true;
-  meta = with lib;
-    src.meta // {
-      description = "Nim wrapper for the Python 2 programming language";
-      license = [ licenses.mit ];
-      maintainers = [ maintainers.ehmry ];
-    };
-}
diff --git a/pkgs/development/nim-packages/snappy/default.nix b/pkgs/development/nim-packages/snappy/default.nix
index 4e0282cd23ccf..88de1f4552a97 100644
--- a/pkgs/development/nim-packages/snappy/default.nix
+++ b/pkgs/development/nim-packages/snappy/default.nix
@@ -11,7 +11,6 @@ buildNimPackage rec {
   };
   propagatedBuildInputs = [ snappy ];
   patches = [ ./config.patch ];
-  doCheck = true;
   preCheck = ''
     mkdir $NIX_BUILD_TOP/nimcache/
     mv -v tests/data $NIX_BUILD_TOP/nimcache/data
diff --git a/pkgs/development/nim-packages/spry/default.nix b/pkgs/development/nim-packages/spry/default.nix
index 497431be1e86d..ebb23de70144b 100644
--- a/pkgs/development/nim-packages/spry/default.nix
+++ b/pkgs/development/nim-packages/spry/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildNimPackage, fetchFromGitHub, python, rocksdb, snappy, spryvm, stew
+{ lib, buildNimPackage, fetchFromGitHub, rocksdb, snappy, spryvm, stew
 , tempfile, ui }:
 
 buildNimPackage rec {
@@ -10,8 +10,8 @@ buildNimPackage rec {
     rev = "098da7bb34a9113d5db5402fecfc76b1c3fa3b36";
     hash = "sha256-PfWBrG2Z16tLgcN8JYpHaNMysBbbYX812Lkgk0ItMwE=";
   };
-  buildInputs = [ python rocksdb snappy spryvm stew tempfile ui ];
-  patches = [ ./nil.patch ];
+  buildInputs = [ rocksdb snappy spryvm stew tempfile ui ];
+  patches = [ ./nil.patch ./python.patch ];
   doCheck = true;
   meta = with lib;
     src.meta // {
diff --git a/pkgs/development/nim-packages/spry/python.patch b/pkgs/development/nim-packages/spry/python.patch
new file mode 100644
index 0000000000000..565e53c2ddcd4
--- /dev/null
+++ b/pkgs/development/nim-packages/spry/python.patch
@@ -0,0 +1,43 @@
+diff --git a/src/ispry.nim b/src/ispry.nim
+index 23ad6c3..d2cfc89 100644
+--- a/src/ispry.nim
++++ b/src/ispry.nim
+@@ -21,7 +21,7 @@ import spryvm/sprycore, spryvm/sprylib, spryvm/spryextend, spryvm/sprymath,
+   spryvm/spryos, spryvm/spryio, spryvm/sprymemfile, spryvm/sprythread,
+   spryvm/spryoo, spryvm/sprydebug, spryvm/sprycompress, spryvm/sprystring,
+   spryvm/sprymodules, spryvm/spryreflect, spryvm/spryblock, spryvm/sprynet,
+-  spryvm/sprysmtp, spryvm/spryjson, spryvm/sprysqlite, spryvm/sprypython,
++  spryvm/sprysmtp, spryvm/spryjson, spryvm/sprysqlite,
+   spryvm/spryrocksdb
+ 
+ const Prompt = ">>> "
+@@ -63,7 +63,6 @@ proc main() =
+ 
+   spry.addMemfile()
+   spry.addThread()
+-  spry.addPython()
+   spry.addDebug()
+   spry.addCompress()
+   spry.addReflect()
+diff --git a/src/spry.nim b/src/spry.nim
+index 670a280..cda9027 100644
+--- a/src/spry.nim
++++ b/src/spry.nim
+@@ -14,8 +14,7 @@ import spryvm/sprycore, spryvm/sprylib, spryvm/spryextend, spryvm/sprymath,
+   spryvm/spryos, spryvm/spryio, spryvm/sprymemfile, spryvm/sprythread,
+   spryvm/spryoo, spryvm/sprydebug, spryvm/sprycompress, spryvm/sprystring,
+   spryvm/sprymodules, spryvm/spryreflect, spryvm/spryui, spryvm/spryblock, spryvm/sprynet,
+-  spryvm/sprysmtp, spryvm/spryjson, spryvm/sprysqlite, spryvm/spryrocksdb,
+-  spryvm/sprypython
++  spryvm/sprysmtp, spryvm/spryjson, spryvm/sprysqlite, spryvm/spryrocksdb
+ 
+ var spry = newInterpreter()
+ 
+@@ -34,7 +33,6 @@ spry.addOO()
+ 
+ spry.addMemfile()
+ spry.addThread()
+-spry.addPython()
+ spry.addDebug()
+ spry.addCompress()
+ spry.addReflect()
diff --git a/pkgs/development/node-packages/composition.nix b/pkgs/development/node-packages/composition.nix
index 53bdef1f98646..4dfddf3e5bcaf 100644
--- a/pkgs/development/node-packages/composition.nix
+++ b/pkgs/development/node-packages/composition.nix
@@ -2,7 +2,7 @@
 
 {pkgs ? import <nixpkgs> {
     inherit system;
-  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-14_x"}:
 
 let
   nodeEnv = import ./node-env.nix {
diff --git a/pkgs/development/node-packages/default.nix b/pkgs/development/node-packages/default.nix
index 9738d16353d4b..e063a0d7c0126 100644
--- a/pkgs/development/node-packages/default.nix
+++ b/pkgs/development/node-packages/default.nix
@@ -309,20 +309,13 @@ let
 
     prisma = super.prisma.override rec {
       nativeBuildInputs = [ pkgs.makeWrapper ];
-      version = "3.5.0";
+
+      inherit (pkgs.prisma-engines) version;
+
       src = fetchurl {
         url = "https://registry.npmjs.org/prisma/-/prisma-${version}.tgz";
-        sha512 = "sha512-WEYQ+H98O0yigG+lI0gfh4iyBChvnM6QTXPDtY9eFraLXAmyb6tf/T2mUdrUAU1AEvHLVzQA5A+RpONZlQozBg==";
+        sha512 = "sha512-pzgc95msPLcCHqOli7Hnabu/GRfSGSUWl5s2P6N13T/rgMB+NNeKbxCmzQiZT2yLOeLEPivV6YrW1oeQIwJxcg==";
       };
-      dependencies = [ rec {
-        name = "_at_prisma_slash_engines";
-        packageName = "@prisma/engines";
-        version = "3.5.0-38.78a5df6def6943431f4c022e1428dbc3e833cf8e";
-        src = fetchurl {
-          url = "https://registry.npmjs.org/@prisma/engines/-/engines-${version}.tgz";
-          sha512 = "sha512-MqZUrxuLlIbjB3wu8LrRJOKcvR4k3dunKoI4Q2bPfAwLQY0XlpsLZ3TRVW1c32ooVk939p6iGNkaCUo63Et36g==";
-        };
-      }];
       postInstall = with pkgs; ''
         wrapProgram "$out/bin/prisma" \
           --set PRISMA_MIGRATION_ENGINE_BINARY ${prisma-engines}/bin/migration-engine \
@@ -392,6 +385,7 @@ let
     };
 
     teck-programmer = super.teck-programmer.override {
+      nativeBuildInputs = [ self.node-gyp-build ];
       buildInputs = [ pkgs.libusb1 ];
     };
 
diff --git a/pkgs/development/node-packages/generate.sh b/pkgs/development/node-packages/generate.sh
index 9e5162676dc38..869303a064b50 100755
--- a/pkgs/development/node-packages/generate.sh
+++ b/pkgs/development/node-packages/generate.sh
@@ -1,9 +1,20 @@
 #!/usr/bin/env bash
+
 set -eu -o pipefail
+
 cd "$( dirname "${BASH_SOURCE[0]}" )"
+
 node2nix=$(nix-build ../../.. -A nodePackages.node2nix)
+
 rm -f ./node-env.nix
-${node2nix}/bin/node2nix -i node-packages.json -o node-packages.nix -c composition.nix
+
+# Track the latest active nodejs LTS here: https://nodejs.org/en/about/releases/
+${node2nix}/bin/node2nix \
+    -i node-packages.json \
+    -o node-packages.nix \
+    -c composition.nix \
+    --pkg-name nodejs-14_x
+
 # using --no-out-link in nix-build argument would cause the
 # gc to run before the script finishes
 # which would cause a failure
diff --git a/pkgs/development/node-packages/node-packages.json b/pkgs/development/node-packages/node-packages.json
index 701f187ee997f..bd7197185af85 100644
--- a/pkgs/development/node-packages/node-packages.json
+++ b/pkgs/development/node-packages/node-packages.json
@@ -2,6 +2,7 @@
   "@angular/cli"
 , "@antora/cli"
 , "@antora/site-generator-default"
+, "@astrojs/language-server"
 , "@bitwarden/cli"
 , "@commitlint/cli"
 , "@commitlint/config-conventional"
@@ -20,6 +21,7 @@
 , "alex"
 , "alloy"
 , "asar"
+, "audiosprite"
 , "autoprefixer"
 , "aws-azure-login"
 , "awesome-lint"
@@ -128,6 +130,7 @@
 , "@gitbeaker/cli"
 , "gitmoji-cli"
 , "glob"
+, "gramma"
 , "graphql-cli"
 , "graphqurl"
 , "grunt-cli"
@@ -209,6 +212,7 @@
 , "npm-check-updates"
 , "npm-merge-driver"
 , {"npm2nix": "git://github.com/NixOS/npm2nix.git#5.12.0"}
+, "nrm"
 , "ocaml-language-server"
 , "parcel-bundler"
 , "parsoid"
@@ -224,6 +228,7 @@
 , "prettier"
 , "prettier-plugin-toml"
 , "prisma"
+, "@prisma/language-server"
 , "pscid"
 , "pulp"
 , "purescript-language-server"
@@ -264,6 +269,7 @@
 , "svelte-language-server"
 , "svgo"
 , "swagger"
+, "tailwindcss"
 , {"tedicross": "git+https://github.com/TediCross/TediCross.git#v0.8.7"}
 , "teck-programmer"
 , "tern"
diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix
index 955b684a9ff76..59d6d063130fc 100644
--- a/pkgs/development/node-packages/node-packages.nix
+++ b/pkgs/development/node-packages/node-packages.nix
@@ -58,40 +58,40 @@ let
         sha512 = "o/xdK8b4P0t/xpCARgWXAeaiWeh9jeua6bP1jrcbfN39+Z4zC4x2jg4NysHNhz6spRG8dJFH3kJIUoIbs0Ckww==";
       };
     };
-    "@angular-devkit/architect-0.1300.2" = {
+    "@angular-devkit/architect-0.1301.2" = {
       name = "_at_angular-devkit_slash_architect";
       packageName = "@angular-devkit/architect";
-      version = "0.1300.2";
+      version = "0.1301.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1300.2.tgz";
-        sha512 = "cCTPFKZlR+Szt+X/l/eo4KBYnRba2NiCpFNPVsujitm7JqCXkjab7NDlf+2XMVD8vZl/kR1hfyF6O9ywYmhEFA==";
+        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1301.2.tgz";
+        sha512 = "v8e6OF80Ezo5MTHtFcq1AZJH+Wq+hN9pMZ1iLGkODIfKIW9zx6aPhx0JY0b7sZkfNVL8ay8JA8f339eBMnOE9A==";
       };
     };
-    "@angular-devkit/core-12.2.10" = {
+    "@angular-devkit/core-13.0.2" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "12.2.10";
+      version = "13.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.10.tgz";
-        sha512 = "0qhmS7Qvl0hiRVTHxEC/ipFAfzYofPstw0ZITDpEMw+pgHlOZolOlnFrv8LyOXWNqlSIH5fS9D3WF7Hpm7ApYA==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-13.0.2.tgz";
+        sha512 = "I4co4GH+iu0tns+UXfMtjJISO+cLpaUuiEH6kf0wF5cqjaIeluA9UjIRnxuNbdTW8iE2xVj/UWhQfHe/Ncp76w==";
       };
     };
-    "@angular-devkit/core-13.0.2" = {
+    "@angular-devkit/core-13.1.1" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "13.0.2";
+      version = "13.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-13.0.2.tgz";
-        sha512 = "I4co4GH+iu0tns+UXfMtjJISO+cLpaUuiEH6kf0wF5cqjaIeluA9UjIRnxuNbdTW8iE2xVj/UWhQfHe/Ncp76w==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-13.1.1.tgz";
+        sha512 = "tpOOzdrbrXG+BiJ/iKUX5VU5vBXN/n+H1EMThTwjgT11mqw2uvMj4sSRPvHUrrfxbLE9deuCDQEzmci71enn2w==";
       };
     };
-    "@angular-devkit/schematics-12.2.10" = {
-      name = "_at_angular-devkit_slash_schematics";
-      packageName = "@angular-devkit/schematics";
-      version = "12.2.10";
+    "@angular-devkit/core-13.1.2" = {
+      name = "_at_angular-devkit_slash_core";
+      packageName = "@angular-devkit/core";
+      version = "13.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-12.2.10.tgz";
-        sha512 = "oQ2EWdkEDE+eAttHeviXsvBi85PsntQT+IffjKUZdbQU+Leuk/pKUpTeea1YosU1p4Cz3PKYF+P/Nl5Jy3B7IQ==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-13.1.2.tgz";
+        sha512 = "uXVesIRiCL/Nv+RSV8JM4j8IoZiGCGnqV2FOJ1hvH7DPxIjhjPMdG/B54xMydZpeASW3ofuxeORyAXxFIBm8Zg==";
       };
     };
     "@angular-devkit/schematics-13.0.2" = {
@@ -103,13 +103,31 @@ let
         sha512 = "qrTe1teQptgP8gmVy6QX0T4dNfnNipEv+cM2cr7JXOmkPpwF+6oBDrTRIJ55t6rziqrXHJ3rxjKm1aHAxFrIEQ==";
       };
     };
-    "@angular-devkit/schematics-cli-12.2.10" = {
+    "@angular-devkit/schematics-13.1.1" = {
+      name = "_at_angular-devkit_slash_schematics";
+      packageName = "@angular-devkit/schematics";
+      version = "13.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.1.1.tgz";
+        sha512 = "uDE0vzjx7MyiJOul91MYMVpRPnAW5/o+pHcINx85wR6t4/RDQSH3UdBCCFxxwv1W9YZSR4kMiwi/sUYqPqbQMw==";
+      };
+    };
+    "@angular-devkit/schematics-13.1.2" = {
+      name = "_at_angular-devkit_slash_schematics";
+      packageName = "@angular-devkit/schematics";
+      version = "13.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.1.2.tgz";
+        sha512 = "ayYbHGU8QpMGx8ZyhKOBupz+Zfv/2H1pNQErahYV3qg7hA9hfjTGmNmDQ4iw0fiT04NajjUxuomlKsCsg7oXDw==";
+      };
+    };
+    "@angular-devkit/schematics-cli-13.1.1" = {
       name = "_at_angular-devkit_slash_schematics-cli";
       packageName = "@angular-devkit/schematics-cli";
-      version = "12.2.10";
+      version = "13.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-12.2.10.tgz";
-        sha512 = "eXzsQ4nM+g4EB0Ixh8rdN1hhm1KEnjychhITvzHgIFSLu0n6o8g36PrZgvshzvHlJViViNztm9uKjX54eaJ/Dw==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-13.1.1.tgz";
+        sha512 = "i3hkJ/k0gZMmxIAq0yq0V7mW1kSRJcyND6NN6fmeOEd0UMCwtNhn1sbVdxbdUiKD5vcpNTi5prRmqDITF894bA==";
       };
     };
     "@antora/asciidoc-loader-2.3.4" = {
@@ -229,15 +247,6 @@ let
         sha512 = "GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==";
       };
     };
-    "@apollo/client-3.5.2" = {
-      name = "_at_apollo_slash_client";
-      packageName = "@apollo/client";
-      version = "3.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@apollo/client/-/client-3.5.2.tgz";
-        sha512 = "STC7ZQthcOGU+MXRIzcb3s1ULW9QQFEhXFEIUaK3Jdwy0RxncxYkg2LpwxXV0FqlYUjKEW92f+NUIZ2FhpKGug==";
-      };
-    };
     "@apollo/protobufjs-1.2.2" = {
       name = "_at_apollo_slash_protobufjs";
       packageName = "@apollo/protobufjs";
@@ -265,15 +274,6 @@ let
         sha512 = "tea2LweZvn6y6xFV11K0KC8ETjmm52mQrW+ezgB2O/aTQf8JGyFmMcRPFgUaQZeHbWdm8iisDC6EjOKsXu0nfw==";
       };
     };
-    "@apollographql/graphql-playground-html-1.6.29" = {
-      name = "_at_apollographql_slash_graphql-playground-html";
-      packageName = "@apollographql/graphql-playground-html";
-      version = "1.6.29";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.29.tgz";
-        sha512 = "xCcXpoz52rI4ksJSdOCxeOCn2DLocxwHf9dVT/Q90Pte1LX+LY+91SFtJF3KXVHH8kEin+g1KKCQPKBjZJfWNA==";
-      };
-    };
     "@apollographql/graphql-upload-8-fork-8.1.3" = {
       name = "_at_apollographql_slash_graphql-upload-8-fork";
       packageName = "@apollographql/graphql-upload-8-fork";
@@ -346,13 +346,13 @@ let
         sha512 = "IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==";
       };
     };
-    "@babel/compat-data-7.16.0" = {
+    "@babel/compat-data-7.16.4" = {
       name = "_at_babel_slash_compat-data";
       packageName = "@babel/compat-data";
-      version = "7.16.0";
+      version = "7.16.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.0.tgz";
-        sha512 = "DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew==";
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz";
+        sha512 = "1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==";
       };
     };
     "@babel/core-7.10.5" = {
@@ -364,13 +364,13 @@ let
         sha512 = "O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==";
       };
     };
-    "@babel/core-7.16.0" = {
+    "@babel/core-7.16.5" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz";
-        sha512 = "mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.16.5.tgz";
+        sha512 = "wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ==";
       };
     };
     "@babel/core-7.9.0" = {
@@ -382,13 +382,13 @@ let
         sha512 = "kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==";
       };
     };
-    "@babel/generator-7.16.0" = {
+    "@babel/generator-7.16.5" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz";
-        sha512 = "RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.16.5.tgz";
+        sha512 = "kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA==";
       };
     };
     "@babel/helper-annotate-as-pure-7.16.0" = {
@@ -400,13 +400,13 @@ let
         sha512 = "ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==";
       };
     };
-    "@babel/helper-builder-binary-assignment-operator-visitor-7.16.0" = {
+    "@babel/helper-builder-binary-assignment-operator-visitor-7.16.5" = {
       name = "_at_babel_slash_helper-builder-binary-assignment-operator-visitor";
       packageName = "@babel/helper-builder-binary-assignment-operator-visitor";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz";
-        sha512 = "9KuleLT0e77wFUku6TUkqZzCEymBdtuQQ27MhEKzf9UOOJu3cYj98kyaDAzxpC7lV6DGiZFuC8XqDsq8/Kl6aQ==";
+        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.5.tgz";
+        sha512 = "3JEA9G5dmmnIWdzaT9d0NmFRgYnWUThLsDaL7982H0XqqWr56lRrsmwheXFMjR+TMl7QMBb6mzy9kvgr1lRLUA==";
       };
     };
     "@babel/helper-compilation-targets-7.16.3" = {
@@ -418,13 +418,13 @@ let
         sha512 = "vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==";
       };
     };
-    "@babel/helper-create-class-features-plugin-7.16.0" = {
+    "@babel/helper-create-class-features-plugin-7.16.5" = {
       name = "_at_babel_slash_helper-create-class-features-plugin";
       packageName = "@babel/helper-create-class-features-plugin";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz";
-        sha512 = "XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA==";
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.5.tgz";
+        sha512 = "NEohnYA7mkB8L5JhU7BLwcBdU3j83IziR9aseMueWGeAjblbul3zzb8UvJ3a1zuBiqCMObzCJHFqKIQE6hTVmg==";
       };
     };
     "@babel/helper-create-regexp-features-plugin-7.16.0" = {
@@ -436,13 +436,22 @@ let
         sha512 = "3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA==";
       };
     };
-    "@babel/helper-define-polyfill-provider-0.2.4" = {
+    "@babel/helper-define-polyfill-provider-0.3.0" = {
       name = "_at_babel_slash_helper-define-polyfill-provider";
       packageName = "@babel/helper-define-polyfill-provider";
-      version = "0.2.4";
+      version = "0.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.4.tgz";
-        sha512 = "OrpPZ97s+aPi6h2n1OXzdhVis1SGSsMU2aMHgLcOKfsp4/v1NWpx3CWT3lBj5eeBq9cDkPkh+YCfdF7O12uNDQ==";
+        url = "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz";
+        sha512 = "7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==";
+      };
+    };
+    "@babel/helper-environment-visitor-7.16.5" = {
+      name = "_at_babel_slash_helper-environment-visitor";
+      packageName = "@babel/helper-environment-visitor";
+      version = "7.16.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz";
+        sha512 = "ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg==";
       };
     };
     "@babel/helper-explode-assignable-expression-7.16.0" = {
@@ -481,13 +490,13 @@ let
         sha512 = "1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==";
       };
     };
-    "@babel/helper-member-expression-to-functions-7.16.0" = {
+    "@babel/helper-member-expression-to-functions-7.16.5" = {
       name = "_at_babel_slash_helper-member-expression-to-functions";
       packageName = "@babel/helper-member-expression-to-functions";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz";
-        sha512 = "bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==";
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.5.tgz";
+        sha512 = "7fecSXq7ZrLE+TWshbGT+HyCLkxloWNhTbU2QM1NTI/tDqyf0oZiMcEfYtDuUDCo528EOlt39G1rftea4bRZIw==";
       };
     };
     "@babel/helper-module-imports-7.16.0" = {
@@ -499,13 +508,13 @@ let
         sha512 = "kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==";
       };
     };
-    "@babel/helper-module-transforms-7.16.0" = {
+    "@babel/helper-module-transforms-7.16.5" = {
       name = "_at_babel_slash_helper-module-transforms";
       packageName = "@babel/helper-module-transforms";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz";
-        sha512 = "My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==";
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz";
+        sha512 = "CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ==";
       };
     };
     "@babel/helper-optimise-call-expression-7.16.0" = {
@@ -526,31 +535,31 @@ let
         sha512 = "O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==";
       };
     };
-    "@babel/helper-plugin-utils-7.14.5" = {
+    "@babel/helper-plugin-utils-7.16.5" = {
       name = "_at_babel_slash_helper-plugin-utils";
       packageName = "@babel/helper-plugin-utils";
-      version = "7.14.5";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz";
-        sha512 = "/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==";
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz";
+        sha512 = "59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ==";
       };
     };
-    "@babel/helper-remap-async-to-generator-7.16.0" = {
+    "@babel/helper-remap-async-to-generator-7.16.5" = {
       name = "_at_babel_slash_helper-remap-async-to-generator";
       packageName = "@babel/helper-remap-async-to-generator";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.0.tgz";
-        sha512 = "MLM1IOMe9aQBqMWxcRw8dcb9jlM86NIw7KA0Wri91Xkfied+dE0QuBFSBjMNvqzmS0OSIDsMNC24dBEkPUi7ew==";
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.5.tgz";
+        sha512 = "X+aAJldyxrOmN9v3FKp+Hu1NO69VWgYgDGq6YDykwRPzxs5f2N+X988CBXS7EQahDU+Vpet5QYMqLk+nsp+Qxw==";
       };
     };
-    "@babel/helper-replace-supers-7.16.0" = {
+    "@babel/helper-replace-supers-7.16.5" = {
       name = "_at_babel_slash_helper-replace-supers";
       packageName = "@babel/helper-replace-supers";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz";
-        sha512 = "TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==";
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.5.tgz";
+        sha512 = "ao3seGVa/FZCMCCNDuBcqnBFSbdr8N2EW35mzojx3TwfIbdPmNK+JV6+2d5bR0Z71W5ocLnQp9en/cTF7pBJiQ==";
       };
     };
     "@babel/helper-simple-access-7.16.0" = {
@@ -598,22 +607,22 @@ let
         sha512 = "OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==";
       };
     };
-    "@babel/helper-wrap-function-7.16.0" = {
+    "@babel/helper-wrap-function-7.16.5" = {
       name = "_at_babel_slash_helper-wrap-function";
       packageName = "@babel/helper-wrap-function";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz";
-        sha512 = "VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g==";
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.5.tgz";
+        sha512 = "2J2pmLBqUqVdJw78U0KPNdeE2qeuIyKoG4mKV7wAq3mc4jJG282UgjZw4ZYDnqiWQuS3Y3IYdF/AQ6CpyBV3VA==";
       };
     };
-    "@babel/helpers-7.16.3" = {
+    "@babel/helpers-7.16.5" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.16.3";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz";
-        sha512 = "Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.5.tgz";
+        sha512 = "TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw==";
       };
     };
     "@babel/highlight-7.16.0" = {
@@ -625,31 +634,31 @@ let
         sha512 = "t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==";
       };
     };
-    "@babel/node-7.16.0" = {
+    "@babel/node-7.16.5" = {
       name = "_at_babel_slash_node";
       packageName = "@babel/node";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/node/-/node-7.16.0.tgz";
-        sha512 = "eFUU2RHkgMW0X1lHVVOWJYlaDTwCX2LduQQLfehAfID5VhAjNnBhGZ/r0zk3FSQfFn6enJ2aXyRCiZ829bYVeA==";
+        url = "https://registry.npmjs.org/@babel/node/-/node-7.16.5.tgz";
+        sha512 = "NUzl2ILzKE7lu5yj4pFLeOmREwOq6//8bFBB3m7XXz73INCSI1rjQJbUYLwZrpZWlt6RY536nDJFqo2MnY43nA==";
       };
     };
-    "@babel/parser-7.13.13" = {
+    "@babel/parser-7.16.2" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.13.13";
+      version = "7.16.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz";
-        sha512 = "OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.16.2.tgz";
+        sha512 = "RUVpT0G2h6rOZwqLDTrKk7ksNv7YpAilTnYe1/Q+eDjxEceRMKVWbCsX7t8h6C1qCFi/1Y8WZjcEPBAFG27GPw==";
       };
     };
-    "@babel/parser-7.16.3" = {
+    "@babel/parser-7.16.6" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.16.3";
+      version = "7.16.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.16.3.tgz";
-        sha512 = "dcNwU1O4sx57ClvLBVFbEgx0UZWfd0JQX5X6fxFRCLHelFBGXFfSz6Y0FAq2PEwUqlqLkdVjVr4VASEOuUnLJw==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.16.6.tgz";
+        sha512 = "Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ==";
       };
     };
     "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2" = {
@@ -679,94 +688,94 @@ let
         sha512 = "mx0WXDDiIl5DwzMtzWGRSPugXi9BxROS05GQrhLNbEamhBiicgn994ibwkyiBH+6png7bm/yA7AUsvHyCXi4Vw==";
       };
     };
-    "@babel/plugin-proposal-async-generator-functions-7.16.0" = {
+    "@babel/plugin-proposal-async-generator-functions-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-async-generator-functions";
       packageName = "@babel/plugin-proposal-async-generator-functions";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.0.tgz";
-        sha512 = "nyYmIo7ZqKsY6P4lnVmBlxp9B3a96CscbLotlsNuktMHahkDwoPYEjXrZHU0Tj844Z9f1IthVxQln57mhkcExw==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.5.tgz";
+        sha512 = "C/FX+3HNLV6sz7AqbTQqEo1L9/kfrKjxcVtgyBCmvIgOjvuBVUWooDoi7trsLxOzCEo5FccjRvKHkfDsJFZlfA==";
       };
     };
-    "@babel/plugin-proposal-class-properties-7.16.0" = {
+    "@babel/plugin-proposal-class-properties-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-class-properties";
       packageName = "@babel/plugin-proposal-class-properties";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz";
-        sha512 = "mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.5.tgz";
+        sha512 = "pJD3HjgRv83s5dv1sTnDbZOaTjghKEz8KUn1Kbh2eAIRhGuyQ1XSeI4xVXU3UlIEVA3DAyIdxqT1eRn7Wcn55A==";
       };
     };
-    "@babel/plugin-proposal-class-static-block-7.16.0" = {
+    "@babel/plugin-proposal-class-static-block-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-class-static-block";
       packageName = "@babel/plugin-proposal-class-static-block";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.0.tgz";
-        sha512 = "mAy3sdcY9sKAkf3lQbDiv3olOfiLqI51c9DR9b19uMoR2Z6r5pmGl7dfNFqEvqOyqbf1ta4lknK4gc5PJn3mfA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.5.tgz";
+        sha512 = "EEFzuLZcm/rNJ8Q5krK+FRKdVkd6FjfzT9tuSZql9sQn64K0hHA2KLJ0DqVot9/iV6+SsuadC5yI39zWnm+nmQ==";
       };
     };
-    "@babel/plugin-proposal-dynamic-import-7.16.0" = {
+    "@babel/plugin-proposal-dynamic-import-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-dynamic-import";
       packageName = "@babel/plugin-proposal-dynamic-import";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.0.tgz";
-        sha512 = "QGSA6ExWk95jFQgwz5GQ2Dr95cf7eI7TKutIXXTb7B1gCLTCz5hTjFTQGfLFBBiC5WSNi7udNwWsqbbMh1c4yQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.5.tgz";
+        sha512 = "P05/SJZTTvHz79LNYTF8ff5xXge0kk5sIIWAypcWgX4BTRUgyHc8wRxJ/Hk+mU0KXldgOOslKaeqnhthcDJCJQ==";
       };
     };
-    "@babel/plugin-proposal-export-default-from-7.16.0" = {
+    "@babel/plugin-proposal-export-default-from-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-export-default-from";
       packageName = "@babel/plugin-proposal-export-default-from";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.0.tgz";
-        sha512 = "kFAhaIbh5qbBwETRNa/cgGmPJ/BicXhIyrZhAkyYhf/Z9LXCTRGO1mvUwczto0Hl1q4YtzP9cRtTKT4wujm38Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.16.5.tgz";
+        sha512 = "pU4aCS+AzGjDD/6LnwSmeelmtqfMSjzQxs7+/AS673bYsshK1XZm9eth6OkgivVscQM8XdkVYhrb6tPFVTBVHA==";
       };
     };
-    "@babel/plugin-proposal-export-namespace-from-7.16.0" = {
+    "@babel/plugin-proposal-export-namespace-from-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-export-namespace-from";
       packageName = "@babel/plugin-proposal-export-namespace-from";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.0.tgz";
-        sha512 = "CjI4nxM/D+5wCnhD11MHB1AwRSAYeDT+h8gCdcVJZ/OK7+wRzFsf7PFPWVpVpNRkHMmMkQWAHpTq+15IXQ1diA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.5.tgz";
+        sha512 = "i+sltzEShH1vsVydvNaTRsgvq2vZsfyrd7K7vPLUU/KgS0D5yZMe6uipM0+izminnkKrEfdUnz7CxMRb6oHZWw==";
       };
     };
-    "@babel/plugin-proposal-json-strings-7.16.0" = {
+    "@babel/plugin-proposal-json-strings-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-json-strings";
       packageName = "@babel/plugin-proposal-json-strings";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.0.tgz";
-        sha512 = "kouIPuiv8mSi5JkEhzApg5Gn6hFyKPnlkO0a9YSzqRurH8wYzSlf6RJdzluAsbqecdW5pBvDJDfyDIUR/vLxvg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.5.tgz";
+        sha512 = "QQJueTFa0y9E4qHANqIvMsuxM/qcLQmKttBACtPCQzGUEizsXDACGonlPiSwynHfOa3vNw0FPMVvQzbuXwh4SQ==";
       };
     };
-    "@babel/plugin-proposal-logical-assignment-operators-7.16.0" = {
+    "@babel/plugin-proposal-logical-assignment-operators-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-logical-assignment-operators";
       packageName = "@babel/plugin-proposal-logical-assignment-operators";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.0.tgz";
-        sha512 = "pbW0fE30sVTYXXm9lpVQQ/Vc+iTeQKiXlaNRZPPN2A2VdlWyAtsUrsQ3xydSlDW00TFMK7a8m3cDTkBF5WnV3Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.5.tgz";
+        sha512 = "xqibl7ISO2vjuQM+MzR3rkd0zfNWltk7n9QhaD8ghMmMceVguYrNDt7MikRyj4J4v3QehpnrU8RYLnC7z/gZLA==";
       };
     };
-    "@babel/plugin-proposal-nullish-coalescing-operator-7.16.0" = {
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
       packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz";
-        sha512 = "3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.5.tgz";
+        sha512 = "YwMsTp/oOviSBhrjwi0vzCUycseCYwoXnLiXIL3YNjHSMBHicGTz7GjVU/IGgz4DtOEXBdCNG72pvCX22ehfqg==";
       };
     };
-    "@babel/plugin-proposal-numeric-separator-7.16.0" = {
+    "@babel/plugin-proposal-numeric-separator-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-numeric-separator";
       packageName = "@babel/plugin-proposal-numeric-separator";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.0.tgz";
-        sha512 = "FAhE2I6mjispy+vwwd6xWPyEx3NYFS13pikDBWUAFGZvq6POGs5eNchw8+1CYoEgBl9n11I3NkzD7ghn25PQ9Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.5.tgz";
+        sha512 = "DvB9l/TcsCRvsIV9v4jxR/jVP45cslTVC0PMVHvaJhhNuhn2Y1SOhCSFlPK777qLB5wb8rVDaNoqMTyOqtY5Iw==";
       };
     };
     "@babel/plugin-proposal-object-rest-spread-7.10.4" = {
@@ -778,58 +787,58 @@ let
         sha512 = "6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==";
       };
     };
-    "@babel/plugin-proposal-object-rest-spread-7.16.0" = {
+    "@babel/plugin-proposal-object-rest-spread-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-object-rest-spread";
       packageName = "@babel/plugin-proposal-object-rest-spread";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz";
-        sha512 = "LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.5.tgz";
+        sha512 = "UEd6KpChoyPhCoE840KRHOlGhEZFutdPDMGj+0I56yuTTOaT51GzmnEl/0uT41fB/vD2nT+Pci2KjezyE3HmUw==";
       };
     };
-    "@babel/plugin-proposal-optional-catch-binding-7.16.0" = {
+    "@babel/plugin-proposal-optional-catch-binding-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
       packageName = "@babel/plugin-proposal-optional-catch-binding";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.0.tgz";
-        sha512 = "kicDo0A/5J0nrsCPbn89mTG3Bm4XgYi0CZtvex9Oyw7gGZE3HXGD0zpQNH+mo+tEfbo8wbmMvJftOwpmPy7aVw==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.5.tgz";
+        sha512 = "ihCMxY1Iljmx4bWy/PIMJGXN4NS4oUj1MKynwO07kiKms23pNvIn1DMB92DNB2R0EA882sw0VXIelYGdtF7xEQ==";
       };
     };
-    "@babel/plugin-proposal-optional-chaining-7.16.0" = {
+    "@babel/plugin-proposal-optional-chaining-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-optional-chaining";
       packageName = "@babel/plugin-proposal-optional-chaining";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz";
-        sha512 = "Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.5.tgz";
+        sha512 = "kzdHgnaXRonttiTfKYnSVafbWngPPr2qKw9BWYBESl91W54e+9R5pP70LtWxV56g0f05f/SQrwHYkfvbwcdQ/A==";
       };
     };
-    "@babel/plugin-proposal-private-methods-7.16.0" = {
+    "@babel/plugin-proposal-private-methods-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-private-methods";
       packageName = "@babel/plugin-proposal-private-methods";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.0.tgz";
-        sha512 = "IvHmcTHDFztQGnn6aWq4t12QaBXTKr1whF/dgp9kz84X6GUcwq9utj7z2wFCUfeOup/QKnOlt2k0zxkGFx9ubg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.5.tgz";
+        sha512 = "+yFMO4BGT3sgzXo+lrq7orX5mAZt57DwUK6seqII6AcJnJOIhBJ8pzKH47/ql/d426uQ7YhN8DpUFirQzqYSUA==";
       };
     };
-    "@babel/plugin-proposal-private-property-in-object-7.16.0" = {
+    "@babel/plugin-proposal-private-property-in-object-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-private-property-in-object";
       packageName = "@babel/plugin-proposal-private-property-in-object";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.0.tgz";
-        sha512 = "3jQUr/HBbMVZmi72LpjQwlZ55i1queL8KcDTQEkAHihttJnAPrcvG9ZNXIfsd2ugpizZo595egYV6xy+pv4Ofw==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.5.tgz";
+        sha512 = "+YGh5Wbw0NH3y/E5YMu6ci5qTDmAEVNoZ3I54aB6nVEOZ5BQ7QJlwKq5pYVucQilMByGn/bvX0af+uNaPRCabA==";
       };
     };
-    "@babel/plugin-proposal-unicode-property-regex-7.16.0" = {
+    "@babel/plugin-proposal-unicode-property-regex-7.16.5" = {
       name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
       packageName = "@babel/plugin-proposal-unicode-property-regex";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.0.tgz";
-        sha512 = "ti7IdM54NXv29cA4+bNNKEMS4jLMCbJgl+Drv+FgYy0erJLAxNAIXcNjNjrRZEcWq0xJHsNVwQezskMFpF8N9g==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.5.tgz";
+        sha512 = "s5sKtlKQyFSatt781HQwv1hoM5BQ9qRH30r+dK56OLDsHmV74mzwJNX7R1yMuE7VZKG5O6q/gmOGSAO6ikTudg==";
       };
     };
     "@babel/plugin-syntax-async-generators-7.8.4" = {
@@ -877,13 +886,13 @@ let
         sha512 = "5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==";
       };
     };
-    "@babel/plugin-syntax-export-default-from-7.16.0" = {
+    "@babel/plugin-syntax-export-default-from-7.16.5" = {
       name = "_at_babel_slash_plugin-syntax-export-default-from";
       packageName = "@babel/plugin-syntax-export-default-from";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.0.tgz";
-        sha512 = "xllLOdBj77mFSw8s02I+2SSQGHOftbWTlGmagheuNk/gjQsk7IrYsR/EosXVAVpgIUFffLckB/iPRioQYLHSrQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.16.5.tgz";
+        sha512 = "tvY55nhq4mSG9WbM7IZcLIhdc5jzIZu0PQKJHtZ16+dF7oBxKbqV/Z0e9ta2zaLMvUjH+3rJv1hbZ0+lpXzuFQ==";
       };
     };
     "@babel/plugin-syntax-export-namespace-from-7.8.3" = {
@@ -895,13 +904,13 @@ let
         sha512 = "MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==";
       };
     };
-    "@babel/plugin-syntax-flow-7.16.0" = {
+    "@babel/plugin-syntax-flow-7.16.5" = {
       name = "_at_babel_slash_plugin-syntax-flow";
       packageName = "@babel/plugin-syntax-flow";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.0.tgz";
-        sha512 = "dH91yCo0RyqfzWgoM5Ji9ir8fQ+uFbt9KHM3d2x4jZOuHS6wNA+CRmRUP/BWCsHG2bjc7A2Way6AvH1eQk0wig==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.16.5.tgz";
+        sha512 = "Nrx+7EAJx1BieBQseZa2pavVH2Rp7hADK2xn7coYqVbWRu9C2OFizYcsKo6TrrqJkJl+qF/+Qqzrk/+XDu4GnA==";
       };
     };
     "@babel/plugin-syntax-import-meta-7.10.4" = {
@@ -931,13 +940,13 @@ let
         sha512 = "KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==";
       };
     };
-    "@babel/plugin-syntax-jsx-7.16.0" = {
+    "@babel/plugin-syntax-jsx-7.16.5" = {
       name = "_at_babel_slash_plugin-syntax-jsx";
       packageName = "@babel/plugin-syntax-jsx";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz";
-        sha512 = "8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.5.tgz";
+        sha512 = "42OGssv9NPk4QHKVgIHlzeLgPOW5rGgfV5jzG90AhcXXIv6hu/eqj63w4VgvRxdvZY3AlYeDgPiSJ3BqAd1Y6Q==";
       };
     };
     "@babel/plugin-syntax-logical-assignment-operators-7.10.4" = {
@@ -1012,337 +1021,337 @@ let
         sha512 = "hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==";
       };
     };
-    "@babel/plugin-syntax-typescript-7.16.0" = {
+    "@babel/plugin-syntax-typescript-7.16.5" = {
       name = "_at_babel_slash_plugin-syntax-typescript";
       packageName = "@babel/plugin-syntax-typescript";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz";
-        sha512 = "Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.5.tgz";
+        sha512 = "/d4//lZ1Vqb4mZ5xTep3dDK888j7BGM/iKqBmndBaoYAFPlPKrGU608VVBz5JeyAb6YQDjRu1UKqj86UhwWVgw==";
       };
     };
-    "@babel/plugin-transform-arrow-functions-7.16.0" = {
+    "@babel/plugin-transform-arrow-functions-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-arrow-functions";
       packageName = "@babel/plugin-transform-arrow-functions";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.0.tgz";
-        sha512 = "vIFb5250Rbh7roWARvCLvIJ/PtAU5Lhv7BtZ1u24COwpI9Ypjsh+bZcKk6rlIyalK+r0jOc1XQ8I4ovNxNrWrA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.5.tgz";
+        sha512 = "8bTHiiZyMOyfZFULjsCnYOWG059FVMes0iljEHSfARhNgFfpsqE92OrCffv3veSw9rwMkYcFe9bj0ZoXU2IGtQ==";
       };
     };
-    "@babel/plugin-transform-async-to-generator-7.16.0" = {
+    "@babel/plugin-transform-async-to-generator-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-async-to-generator";
       packageName = "@babel/plugin-transform-async-to-generator";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz";
-        sha512 = "PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.5.tgz";
+        sha512 = "TMXgfioJnkXU+XRoj7P2ED7rUm5jbnDWwlCuFVTpQboMfbSya5WrmubNBAMlk7KXvywpo8rd8WuYZkis1o2H8w==";
       };
     };
-    "@babel/plugin-transform-block-scoped-functions-7.16.0" = {
+    "@babel/plugin-transform-block-scoped-functions-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-block-scoped-functions";
       packageName = "@babel/plugin-transform-block-scoped-functions";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.0.tgz";
-        sha512 = "V14As3haUOP4ZWrLJ3VVx5rCnrYhMSHN/jX7z6FAt5hjRkLsb0snPCmJwSOML5oxkKO4FNoNv7V5hw/y2bjuvg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.5.tgz";
+        sha512 = "BxmIyKLjUGksJ99+hJyL/HIxLIGnLKtw772zYDER7UuycDZ+Xvzs98ZQw6NGgM2ss4/hlFAaGiZmMNKvValEjw==";
       };
     };
-    "@babel/plugin-transform-block-scoping-7.16.0" = {
+    "@babel/plugin-transform-block-scoping-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-block-scoping";
       packageName = "@babel/plugin-transform-block-scoping";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.0.tgz";
-        sha512 = "27n3l67/R3UrXfizlvHGuTwsRIFyce3D/6a37GRxn28iyTPvNXaW4XvznexRh1zUNLPjbLL22Id0XQElV94ruw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.5.tgz";
+        sha512 = "JxjSPNZSiOtmxjX7PBRBeRJTUKTyJ607YUYeT0QJCNdsedOe+/rXITjP08eG8xUpsLfPirgzdCFN+h0w6RI+pQ==";
       };
     };
-    "@babel/plugin-transform-classes-7.16.0" = {
+    "@babel/plugin-transform-classes-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-classes";
       packageName = "@babel/plugin-transform-classes";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.0.tgz";
-        sha512 = "HUxMvy6GtAdd+GKBNYDWCIA776byUQH8zjnfjxwT1P1ARv/wFu8eBDpmXQcLS/IwRtrxIReGiplOwMeyO7nsDQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.5.tgz";
+        sha512 = "DzJ1vYf/7TaCYy57J3SJ9rV+JEuvmlnvvyvYKFbk5u46oQbBvuB9/0w+YsVsxkOv8zVWKpDmUoj4T5ILHoXevA==";
       };
     };
-    "@babel/plugin-transform-computed-properties-7.16.0" = {
+    "@babel/plugin-transform-computed-properties-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-computed-properties";
       packageName = "@babel/plugin-transform-computed-properties";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.0.tgz";
-        sha512 = "63l1dRXday6S8V3WFY5mXJwcRAnPYxvFfTlt67bwV1rTyVTM5zrp0DBBb13Kl7+ehkCVwIZPumPpFP/4u70+Tw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.5.tgz";
+        sha512 = "n1+O7xtU5lSLraRzX88CNcpl7vtGdPakKzww74bVwpAIRgz9JVLJJpOLb0uYqcOaXVM0TL6X0RVeIJGD2CnCkg==";
       };
     };
-    "@babel/plugin-transform-destructuring-7.16.0" = {
+    "@babel/plugin-transform-destructuring-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-destructuring";
       packageName = "@babel/plugin-transform-destructuring";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.0.tgz";
-        sha512 = "Q7tBUwjxLTsHEoqktemHBMtb3NYwyJPTJdM+wDwb0g8PZ3kQUIzNvwD5lPaqW/p54TXBc/MXZu9Jr7tbUEUM8Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.5.tgz";
+        sha512 = "GuRVAsjq+c9YPK6NeTkRLWyQskDC099XkBSVO+6QzbnOnH2d/4mBVXYStaPrZD3dFRfg00I6BFJ9Atsjfs8mlg==";
       };
     };
-    "@babel/plugin-transform-dotall-regex-7.16.0" = {
+    "@babel/plugin-transform-dotall-regex-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-dotall-regex";
       packageName = "@babel/plugin-transform-dotall-regex";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.0.tgz";
-        sha512 = "FXlDZfQeLILfJlC6I1qyEwcHK5UpRCFkaoVyA1nk9A1L1Yu583YO4un2KsLBsu3IJb4CUbctZks8tD9xPQubLw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.5.tgz";
+        sha512 = "iQiEMt8Q4/5aRGHpGVK2Zc7a6mx7qEAO7qehgSug3SDImnuMzgmm/wtJALXaz25zUj1PmnNHtShjFgk4PDx4nw==";
       };
     };
-    "@babel/plugin-transform-duplicate-keys-7.16.0" = {
+    "@babel/plugin-transform-duplicate-keys-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-duplicate-keys";
       packageName = "@babel/plugin-transform-duplicate-keys";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.0.tgz";
-        sha512 = "LIe2kcHKAZOJDNxujvmp6z3mfN6V9lJxubU4fJIGoQCkKe3Ec2OcbdlYP+vW++4MpxwG0d1wSDOJtQW5kLnkZQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.5.tgz";
+        sha512 = "81tijpDg2a6I1Yhj4aWY1l3O1J4Cg/Pd7LfvuaH2VVInAkXtzibz9+zSPdUM1WvuUi128ksstAP0hM5w48vQgg==";
       };
     };
-    "@babel/plugin-transform-exponentiation-operator-7.16.0" = {
+    "@babel/plugin-transform-exponentiation-operator-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-exponentiation-operator";
       packageName = "@babel/plugin-transform-exponentiation-operator";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.0.tgz";
-        sha512 = "OwYEvzFI38hXklsrbNivzpO3fh87skzx8Pnqi4LoSYeav0xHlueSoCJrSgTPfnbyzopo5b3YVAJkFIcUpK2wsw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.5.tgz";
+        sha512 = "12rba2HwemQPa7BLIKCzm1pT2/RuQHtSFHdNl41cFiC6oi4tcrp7gjB07pxQvFpcADojQywSjblQth6gJyE6CA==";
       };
     };
-    "@babel/plugin-transform-flow-strip-types-7.16.0" = {
+    "@babel/plugin-transform-flow-strip-types-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-flow-strip-types";
       packageName = "@babel/plugin-transform-flow-strip-types";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.0.tgz";
-        sha512 = "vs/F5roOaO/+WxKfp9PkvLsAyj0G+Q0zbFimHm9X2KDgabN2XmNFoAafmeGEYspUlIF9+MvVmyek9UyHiqeG/w==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.16.5.tgz";
+        sha512 = "skE02E/MptkZdBS4HwoRhjWXqeKQj0BWKEAPfPC+8R4/f6bjQqQ9Nftv/+HkxWwnVxh/E2NV9TNfzLN5H/oiBw==";
       };
     };
-    "@babel/plugin-transform-for-of-7.16.0" = {
+    "@babel/plugin-transform-for-of-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-for-of";
       packageName = "@babel/plugin-transform-for-of";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.0.tgz";
-        sha512 = "5QKUw2kO+GVmKr2wMYSATCTTnHyscl6sxFRAY+rvN7h7WB0lcG0o4NoV6ZQU32OZGVsYUsfLGgPQpDFdkfjlJQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.5.tgz";
+        sha512 = "+DpCAJFPAvViR17PIMi9x2AE34dll5wNlXO43wagAX2YcRGgEVHCNFC4azG85b4YyyFarvkc/iD5NPrz4Oneqw==";
       };
     };
-    "@babel/plugin-transform-function-name-7.16.0" = {
+    "@babel/plugin-transform-function-name-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-function-name";
       packageName = "@babel/plugin-transform-function-name";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.0.tgz";
-        sha512 = "lBzMle9jcOXtSOXUpc7tvvTpENu/NuekNJVova5lCCWCV9/U1ho2HH2y0p6mBg8fPm/syEAbfaaemYGOHCY3mg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.5.tgz";
+        sha512 = "Fuec/KPSpVLbGo6z1RPw4EE1X+z9gZk1uQmnYy7v4xr4TO9p41v1AoUuXEtyqAI7H+xNJYSICzRqZBhDEkd3kQ==";
       };
     };
-    "@babel/plugin-transform-literals-7.16.0" = {
+    "@babel/plugin-transform-literals-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-literals";
       packageName = "@babel/plugin-transform-literals";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.0.tgz";
-        sha512 = "gQDlsSF1iv9RU04clgXqRjrPyyoJMTclFt3K1cjLmTKikc0s/6vE3hlDeEVC71wLTRu72Fq7650kABrdTc2wMQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.5.tgz";
+        sha512 = "B1j9C/IfvshnPcklsc93AVLTrNVa69iSqztylZH6qnmiAsDDOmmjEYqOm3Ts2lGSgTSywnBNiqC949VdD0/gfw==";
       };
     };
-    "@babel/plugin-transform-member-expression-literals-7.16.0" = {
+    "@babel/plugin-transform-member-expression-literals-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-member-expression-literals";
       packageName = "@babel/plugin-transform-member-expression-literals";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.0.tgz";
-        sha512 = "WRpw5HL4Jhnxw8QARzRvwojp9MIE7Tdk3ez6vRyUk1MwgjJN0aNpRoXainLR5SgxmoXx/vsXGZ6OthP6t/RbUg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.5.tgz";
+        sha512 = "d57i3vPHWgIde/9Y8W/xSFUndhvhZN5Wu2TjRrN1MVz5KzdUihKnfDVlfP1U7mS5DNj/WHHhaE4/tTi4hIyHwQ==";
       };
     };
-    "@babel/plugin-transform-modules-amd-7.16.0" = {
+    "@babel/plugin-transform-modules-amd-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-modules-amd";
       packageName = "@babel/plugin-transform-modules-amd";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.0.tgz";
-        sha512 = "rWFhWbCJ9Wdmzln1NmSCqn7P0RAD+ogXG/bd9Kg5c7PKWkJtkiXmYsMBeXjDlzHpVTJ4I/hnjs45zX4dEv81xw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.5.tgz";
+        sha512 = "oHI15S/hdJuSCfnwIz+4lm6wu/wBn7oJ8+QrkzPPwSFGXk8kgdI/AIKcbR/XnD1nQVMg/i6eNaXpszbGuwYDRQ==";
       };
     };
-    "@babel/plugin-transform-modules-commonjs-7.16.0" = {
+    "@babel/plugin-transform-modules-commonjs-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-modules-commonjs";
       packageName = "@babel/plugin-transform-modules-commonjs";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz";
-        sha512 = "Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.5.tgz";
+        sha512 = "ABhUkxvoQyqhCWyb8xXtfwqNMJD7tx+irIRnUh6lmyFud7Jln1WzONXKlax1fg/ey178EXbs4bSGNd6PngO+SQ==";
       };
     };
-    "@babel/plugin-transform-modules-systemjs-7.16.0" = {
+    "@babel/plugin-transform-modules-systemjs-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-modules-systemjs";
       packageName = "@babel/plugin-transform-modules-systemjs";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.0.tgz";
-        sha512 = "yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.5.tgz";
+        sha512 = "53gmLdScNN28XpjEVIm7LbWnD/b/TpbwKbLk6KV4KqC9WyU6rq1jnNmVG6UgAdQZVVGZVoik3DqHNxk4/EvrjA==";
       };
     };
-    "@babel/plugin-transform-modules-umd-7.16.0" = {
+    "@babel/plugin-transform-modules-umd-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-modules-umd";
       packageName = "@babel/plugin-transform-modules-umd";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.0.tgz";
-        sha512 = "nx4f6no57himWiHhxDM5pjwhae5vLpTK2zCnDH8+wNLJy0TVER/LJRHl2bkt6w9Aad2sPD5iNNoUpY3X9sTGDg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.5.tgz";
+        sha512 = "qTFnpxHMoenNHkS3VoWRdwrcJ3FhX567GvDA3hRZKF0Dj8Fmg0UzySZp3AP2mShl/bzcywb/UWAMQIjA1bhXvw==";
       };
     };
-    "@babel/plugin-transform-named-capturing-groups-regex-7.16.0" = {
+    "@babel/plugin-transform-named-capturing-groups-regex-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
       packageName = "@babel/plugin-transform-named-capturing-groups-regex";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.0.tgz";
-        sha512 = "LogN88uO+7EhxWc8WZuQ8vxdSyVGxhkh8WTC3tzlT8LccMuQdA81e9SGV6zY7kY2LjDhhDOFdQVxdGwPyBCnvg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.5.tgz";
+        sha512 = "/wqGDgvFUeKELW6ex6QB7dLVRkd5ehjw34tpXu1nhKC0sFfmaLabIswnpf8JgDyV2NeDmZiwoOb0rAmxciNfjA==";
       };
     };
-    "@babel/plugin-transform-new-target-7.16.0" = {
+    "@babel/plugin-transform-new-target-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-new-target";
       packageName = "@babel/plugin-transform-new-target";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.0.tgz";
-        sha512 = "fhjrDEYv2DBsGN/P6rlqakwRwIp7rBGLPbrKxwh7oVt5NNkIhZVOY2GRV+ULLsQri1bDqwDWnU3vhlmx5B2aCw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.5.tgz";
+        sha512 = "ZaIrnXF08ZC8jnKR4/5g7YakGVL6go6V9ql6Jl3ecO8PQaQqFE74CuM384kezju7Z9nGCCA20BqZaR1tJ/WvHg==";
       };
     };
-    "@babel/plugin-transform-object-super-7.16.0" = {
+    "@babel/plugin-transform-object-super-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-object-super";
       packageName = "@babel/plugin-transform-object-super";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.0.tgz";
-        sha512 = "fds+puedQHn4cPLshoHcR1DTMN0q1V9ou0mUjm8whx9pGcNvDrVVrgw+KJzzCaiTdaYhldtrUps8DWVMgrSEyg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.5.tgz";
+        sha512 = "tded+yZEXuxt9Jdtkc1RraW1zMF/GalVxaVVxh41IYwirdRgyAxxxCKZ9XB7LxZqmsjfjALxupNE1MIz9KH+Zg==";
       };
     };
-    "@babel/plugin-transform-parameters-7.16.3" = {
+    "@babel/plugin-transform-parameters-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-parameters";
       packageName = "@babel/plugin-transform-parameters";
-      version = "7.16.3";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz";
-        sha512 = "3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.5.tgz";
+        sha512 = "B3O6AL5oPop1jAVg8CV+haeUte9oFuY85zu0jwnRNZZi3tVAbJriu5tag/oaO2kGaQM/7q7aGPBlTI5/sr9enA==";
       };
     };
-    "@babel/plugin-transform-property-literals-7.16.0" = {
+    "@babel/plugin-transform-property-literals-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-property-literals";
       packageName = "@babel/plugin-transform-property-literals";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.0.tgz";
-        sha512 = "XLldD4V8+pOqX2hwfWhgwXzGdnDOThxaNTgqagOcpBgIxbUvpgU2FMvo5E1RyHbk756WYgdbS0T8y0Cj9FKkWQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.5.tgz";
+        sha512 = "+IRcVW71VdF9pEH/2R/Apab4a19LVvdVsr/gEeotH00vSDVlKD+XgfSIw+cgGWsjDB/ziqGv/pGoQZBIiQVXHg==";
       };
     };
-    "@babel/plugin-transform-react-display-name-7.16.0" = {
+    "@babel/plugin-transform-react-display-name-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-react-display-name";
       packageName = "@babel/plugin-transform-react-display-name";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.0.tgz";
-        sha512 = "FJFdJAqaCpndL+pIf0aeD/qlQwT7QXOvR6Cc8JPvNhKJBi2zc/DPc4g05Y3fbD/0iWAMQFGij4+Xw+4L/BMpTg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.5.tgz";
+        sha512 = "dHYCOnzSsXFz8UcdNQIHGvg94qPL/teF7CCiCEMRxmA1G2p5Mq4JnKVowCDxYfiQ9D7RstaAp9kwaSI+sXbnhw==";
       };
     };
-    "@babel/plugin-transform-react-jsx-7.16.0" = {
+    "@babel/plugin-transform-react-jsx-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-react-jsx";
       packageName = "@babel/plugin-transform-react-jsx";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.0.tgz";
-        sha512 = "rqDgIbukZ44pqq7NIRPGPGNklshPkvlmvqjdx3OZcGPk4zGIenYkxDTvl3LsSL8gqcc3ZzGmXPE6hR/u/voNOw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.5.tgz";
+        sha512 = "+arLIz1d7kmwX0fKxTxbnoeG85ONSnLpvdODa4P3pc1sS7CV1hfmtYWufkW/oYsPnkDrEeQFxhUWcFnrXW7jQQ==";
       };
     };
-    "@babel/plugin-transform-react-jsx-development-7.16.0" = {
+    "@babel/plugin-transform-react-jsx-development-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-react-jsx-development";
       packageName = "@babel/plugin-transform-react-jsx-development";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.0.tgz";
-        sha512 = "qq65iSqBRq0Hr3wq57YG2AmW0H6wgTnIzpffTphrUWUgLCOK+zf1f7G0vuOiXrp7dU1qq+fQBoqZ3wCDAkhFzw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.5.tgz";
+        sha512 = "uQSLacMZSGLCxOw20dzo1dmLlKkd+DsayoV54q3MHXhbqgPzoiGerZQgNPl/Ro8/OcXV2ugfnkx+rxdS0sN5Uw==";
       };
     };
-    "@babel/plugin-transform-react-pure-annotations-7.16.0" = {
+    "@babel/plugin-transform-react-pure-annotations-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-react-pure-annotations";
       packageName = "@babel/plugin-transform-react-pure-annotations";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.0.tgz";
-        sha512 = "NC/Bj2MG+t8Ef5Pdpo34Ay74X4Rt804h5y81PwOpfPtmAK3i6CizmQqwyBQzIepz1Yt8wNr2Z2L7Lu3qBMfZMA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.5.tgz";
+        sha512 = "0nYU30hCxnCVCbRjSy9ahlhWZ2Sn6khbY4FqR91W+2RbSqkWEbVu2gXh45EqNy4Bq7sRU+H4i0/6YKwOSzh16A==";
       };
     };
-    "@babel/plugin-transform-regenerator-7.16.0" = {
+    "@babel/plugin-transform-regenerator-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-regenerator";
       packageName = "@babel/plugin-transform-regenerator";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.0.tgz";
-        sha512 = "JAvGxgKuwS2PihiSFaDrp94XOzzTUeDeOQlcKzVAyaPap7BnZXK/lvMDiubkPTdotPKOIZq9xWXWnggUMYiExg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.5.tgz";
+        sha512 = "2z+it2eVWU8TtQQRauvGUqZwLy4+7rTfo6wO4npr+fvvN1SW30ZF3O/ZRCNmTuu4F5MIP8OJhXAhRV5QMJOuYg==";
       };
     };
-    "@babel/plugin-transform-reserved-words-7.16.0" = {
+    "@babel/plugin-transform-reserved-words-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-reserved-words";
       packageName = "@babel/plugin-transform-reserved-words";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.0.tgz";
-        sha512 = "Dgs8NNCehHSvXdhEhln8u/TtJxfVwGYCgP2OOr5Z3Ar+B+zXicEOKNTyc+eca2cuEOMtjW6m9P9ijOt8QdqWkg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.5.tgz";
+        sha512 = "aIB16u8lNcf7drkhXJRoggOxSTUAuihTSTfAcpynowGJOZiGf+Yvi7RuTwFzVYSYPmWyARsPqUGoZWWWxLiknw==";
       };
     };
-    "@babel/plugin-transform-runtime-7.16.0" = {
+    "@babel/plugin-transform-runtime-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-runtime";
       packageName = "@babel/plugin-transform-runtime";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.0.tgz";
-        sha512 = "zlPf1/XFn5+vWdve3AAhf+Sxl+MVa5VlwTwWgnLx23u4GlatSRQJ3Eoo9vllf0a9il3woQsT4SK+5Z7c06h8ag==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.5.tgz";
+        sha512 = "gxpfS8XQWDbQ8oP5NcmpXxtEgCJkbO+W9VhZlOhr0xPyVaRjAQPOv7ZDj9fg0d5s9+NiVvMCE6gbkEkcsxwGRw==";
       };
     };
-    "@babel/plugin-transform-shorthand-properties-7.16.0" = {
+    "@babel/plugin-transform-shorthand-properties-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-shorthand-properties";
       packageName = "@babel/plugin-transform-shorthand-properties";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.0.tgz";
-        sha512 = "iVb1mTcD8fuhSv3k99+5tlXu5N0v8/DPm2mO3WACLG6al1CGZH7v09HJyUb1TtYl/Z+KrM6pHSIJdZxP5A+xow==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.5.tgz";
+        sha512 = "ZbuWVcY+MAXJuuW7qDoCwoxDUNClfZxoo7/4swVbOW1s/qYLOMHlm9YRWMsxMFuLs44eXsv4op1vAaBaBaDMVg==";
       };
     };
-    "@babel/plugin-transform-spread-7.16.0" = {
+    "@babel/plugin-transform-spread-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-spread";
       packageName = "@babel/plugin-transform-spread";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.0.tgz";
-        sha512 = "Ao4MSYRaLAQczZVp9/7E7QHsCuK92yHRrmVNRe/SlEJjhzivq0BSn8mEraimL8wizHZ3fuaHxKH0iwzI13GyGg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.5.tgz";
+        sha512 = "5d6l/cnG7Lw4tGHEoga4xSkYp1euP7LAtrah1h1PgJ3JY7yNsjybsxQAnVK4JbtReZ/8z6ASVmd3QhYYKLaKZw==";
       };
     };
-    "@babel/plugin-transform-sticky-regex-7.16.0" = {
+    "@babel/plugin-transform-sticky-regex-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-sticky-regex";
       packageName = "@babel/plugin-transform-sticky-regex";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.0.tgz";
-        sha512 = "/ntT2NljR9foobKk4E/YyOSwcGUXtYWv5tinMK/3RkypyNBNdhHUaq6Orw5DWq9ZcNlS03BIlEALFeQgeVAo4Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.5.tgz";
+        sha512 = "usYsuO1ID2LXxzuUxifgWtJemP7wL2uZtyrTVM4PKqsmJycdS4U4mGovL5xXkfUheds10Dd2PjoQLXw6zCsCbg==";
       };
     };
-    "@babel/plugin-transform-template-literals-7.16.0" = {
+    "@babel/plugin-transform-template-literals-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-template-literals";
       packageName = "@babel/plugin-transform-template-literals";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.0.tgz";
-        sha512 = "Rd4Ic89hA/f7xUSJQk5PnC+4so50vBoBfxjdQAdvngwidM8jYIBVxBZ/sARxD4e0yMXRbJVDrYf7dyRtIIKT6Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.5.tgz";
+        sha512 = "gnyKy9RyFhkovex4BjKWL3BVYzUDG6zC0gba7VMLbQoDuqMfJ1SDXs8k/XK41Mmt1Hyp4qNAvGFb9hKzdCqBRQ==";
       };
     };
-    "@babel/plugin-transform-typeof-symbol-7.16.0" = {
+    "@babel/plugin-transform-typeof-symbol-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-typeof-symbol";
       packageName = "@babel/plugin-transform-typeof-symbol";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.0.tgz";
-        sha512 = "++V2L8Bdf4vcaHi2raILnptTBjGEFxn5315YU+e8+EqXIucA+q349qWngCLpUYqqv233suJ6NOienIVUpS9cqg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.5.tgz";
+        sha512 = "ldxCkW180qbrvyCVDzAUZqB0TAeF8W/vGJoRcaf75awm6By+PxfJKvuqVAnq8N9wz5Xa6mSpM19OfVKKVmGHSQ==";
       };
     };
     "@babel/plugin-transform-typescript-7.16.1" = {
@@ -1354,40 +1363,40 @@ let
         sha512 = "NO4XoryBng06jjw/qWEU2LhcLJr1tWkhpMam/H4eas/CDKMX/b2/Ylb6EI256Y7+FVPCawwSM1rrJNOpDiz+Lg==";
       };
     };
-    "@babel/plugin-transform-unicode-escapes-7.16.0" = {
+    "@babel/plugin-transform-unicode-escapes-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-unicode-escapes";
       packageName = "@babel/plugin-transform-unicode-escapes";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.0.tgz";
-        sha512 = "VFi4dhgJM7Bpk8lRc5CMaRGlKZ29W9C3geZjt9beuzSUrlJxsNwX7ReLwaL6WEvsOf2EQkyIJEPtF8EXjB/g2A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.5.tgz";
+        sha512 = "shiCBHTIIChGLdyojsKQjoAyB8MBwat25lKM7MJjbe1hE0bgIppD+LX9afr41lLHOhqceqeWl4FkLp+Bgn9o1Q==";
       };
     };
-    "@babel/plugin-transform-unicode-regex-7.16.0" = {
+    "@babel/plugin-transform-unicode-regex-7.16.5" = {
       name = "_at_babel_slash_plugin-transform-unicode-regex";
       packageName = "@babel/plugin-transform-unicode-regex";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.0.tgz";
-        sha512 = "jHLK4LxhHjvCeZDWyA9c+P9XH1sOxRd1RO9xMtDVRAOND/PczPqizEtVdx4TQF/wyPaewqpT+tgQFYMnN/P94A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.5.tgz";
+        sha512 = "GTJ4IW012tiPEMMubd7sD07iU9O/LOo8Q/oU4xNhcaq0Xn8+6TcUQaHtC8YxySo1T+ErQ8RaWogIEeFhKGNPzw==";
       };
     };
-    "@babel/preset-env-7.16.0" = {
+    "@babel/preset-env-7.16.5" = {
       name = "_at_babel_slash_preset-env";
       packageName = "@babel/preset-env";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.0.tgz";
-        sha512 = "cdTu/W0IrviamtnZiTfixPfIncr2M1VqRrkjzZWlr1B4TVYimCFK5jkyOdP4qw2MrlKHi+b3ORj6x8GoCew8Dg==";
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.5.tgz";
+        sha512 = "MiJJW5pwsktG61NDxpZ4oJ1CKxM1ncam9bzRtx9g40/WkLRkxFP6mhpkYV0/DxcciqoiHicx291+eUQrXb/SfQ==";
       };
     };
-    "@babel/preset-flow-7.16.0" = {
+    "@babel/preset-flow-7.16.5" = {
       name = "_at_babel_slash_preset-flow";
       packageName = "@babel/preset-flow";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.16.0.tgz";
-        sha512 = "e5NE1EoPMpoHFkyFkMSj2h9tu7OolARcUHki8mnBv4NiFK9so+UrhbvT9mV99tMJOUEx8BOj67T6dXvGcTeYeQ==";
+        url = "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.16.5.tgz";
+        sha512 = "rmC6Nznp4V55N4Zfec87jwd14TdREqwKVJFM/6Z2wTwoeZQr56czjaPRCezqzqc8TsHF7aLP1oczjadIQ058gw==";
       };
     };
     "@babel/preset-modules-0.1.5" = {
@@ -1399,13 +1408,13 @@ let
         sha512 = "A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==";
       };
     };
-    "@babel/preset-react-7.16.0" = {
+    "@babel/preset-react-7.16.5" = {
       name = "_at_babel_slash_preset-react";
       packageName = "@babel/preset-react";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.0.tgz";
-        sha512 = "d31IFW2bLRB28uL1WoElyro8RH5l6531XfxMtCeCmp6RVAF1uTfxxUA0LH1tXl+psZdwfmIbwoG4U5VwgbhtLw==";
+        url = "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.5.tgz";
+        sha512 = "3kzUOQeaxY/2vhPDS7CX/KGEGu/1bOYGvdRDJ2U5yjEz5o5jmIeTPLoiQBPGjfhPascLuW5OlMiPzwOOuB6txg==";
       };
     };
     "@babel/preset-stage-0-7.8.3" = {
@@ -1426,22 +1435,22 @@ let
         sha512 = "dStnEQgejNYIHFNACdDCigK4BF7wgW6Zahv9Dc2un7rGjbeVtZhBfR3sy0I7ZJOhBexkFxVdMZ5hqmll7BFShw==";
       };
     };
-    "@babel/preset-typescript-7.16.0" = {
+    "@babel/preset-typescript-7.16.5" = {
       name = "_at_babel_slash_preset-typescript";
       packageName = "@babel/preset-typescript";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.0.tgz";
-        sha512 = "txegdrZYgO9DlPbv+9QOVpMnKbOtezsLHWsnsRF4AjbSIsVaujrq1qg8HK0mxQpWv0jnejt0yEoW1uWpvbrDTg==";
+        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.5.tgz";
+        sha512 = "lmAWRoJ9iOSvs3DqOndQpj8XqXkzaiQs50VG/zESiI9D3eoZhGriU675xNCr0UwvsuXrhMAGvyk1w+EVWF3u8Q==";
       };
     };
-    "@babel/register-7.16.0" = {
+    "@babel/register-7.16.5" = {
       name = "_at_babel_slash_register";
       packageName = "@babel/register";
-      version = "7.16.0";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/register/-/register-7.16.0.tgz";
-        sha512 = "lzl4yfs0zVXnooeLE0AAfYaT7F3SPA8yB2Bj4W1BiZwLbMS3MZH35ZvCWSRHvneUugwuM+Wsnrj7h0F7UmU3NQ==";
+        url = "https://registry.npmjs.org/@babel/register/-/register-7.16.5.tgz";
+        sha512 = "NpluD+cToBiZiDsG3y9rtIcqDyivsahpaM9csfyfiq1qQWduSmihUZ+ruIqqSDGjZKZMJfgAElo9x2YWlOQuRw==";
       };
     };
     "@babel/runtime-7.13.9" = {
@@ -1453,13 +1462,13 @@ let
         sha512 = "aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==";
       };
     };
-    "@babel/runtime-7.16.3" = {
+    "@babel/runtime-7.16.5" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.16.3";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz";
-        sha512 = "WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.5.tgz";
+        sha512 = "TXWihFIS3Pyv5hzR7j6ihmeLkZfrXGxAr5UfSl8CHf+6q/wpiYDkUau0czckpYG8QmnCIuPpdLtuA9VmuGGyMA==";
       };
     };
     "@babel/runtime-7.9.0" = {
@@ -1471,22 +1480,22 @@ let
         sha512 = "cTIudHnzuWLS56ik4DnRnqqNf8MkdUzV4iFFI1h7Jo9xvrpQROYaAnaSd2mHLQAzzZAPfATynX5ord6YlNYNMA==";
       };
     };
-    "@babel/runtime-corejs3-7.16.3" = {
+    "@babel/runtime-corejs3-7.16.5" = {
       name = "_at_babel_slash_runtime-corejs3";
       packageName = "@babel/runtime-corejs3";
-      version = "7.16.3";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.3.tgz";
-        sha512 = "IAdDC7T0+wEB4y2gbIL0uOXEYpiZEeuFUTVbdGq+UwCcF35T/tS8KrmMomEwEc5wBbyfH3PJVpTSUqrhPDXFcQ==";
+        url = "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.5.tgz";
+        sha512 = "F1pMwvTiUNSAM8mc45kccMQxj31x3y3P+tA/X8hKNWp3/hUsxdGxZ3D3H8JIkxtfA8qGkaBTKvcmvStaYseAFw==";
       };
     };
-    "@babel/standalone-7.16.3" = {
+    "@babel/standalone-7.16.6" = {
       name = "_at_babel_slash_standalone";
       packageName = "@babel/standalone";
-      version = "7.16.3";
+      version = "7.16.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/standalone/-/standalone-7.16.3.tgz";
-        sha512 = "hoStDfHl2+EYUv1LNHhZTysa+lMSwIEkkT4HnDNX+F0zqvPdoE2QLF7qtkd45cgCGOwQjrvwe2mOKcX3f6Wr8A==";
+        url = "https://registry.npmjs.org/@babel/standalone/-/standalone-7.16.6.tgz";
+        sha512 = "wjildVe951w1IPEPN4G76j+y5JFZfJN9gdyP8o9zd61qbiVEecAgORKskK1D/7VrJZrZS+nxDbhj2akEFU2RJw==";
       };
     };
     "@babel/template-7.16.0" = {
@@ -1498,22 +1507,13 @@ let
         sha512 = "MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==";
       };
     };
-    "@babel/traverse-7.16.3" = {
+    "@babel/traverse-7.16.5" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.16.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz";
-        sha512 = "eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==";
-      };
-    };
-    "@babel/types-7.13.12" = {
-      name = "_at_babel_slash_types";
-      packageName = "@babel/types";
-      version = "7.13.12";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz";
-        sha512 = "K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.5.tgz";
+        sha512 = "FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ==";
       };
     };
     "@babel/types-7.16.0" = {
@@ -1525,22 +1525,22 @@ let
         sha512 = "PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==";
       };
     };
-    "@blueprintjs/colors-4.0.0-beta.2" = {
+    "@blueprintjs/colors-4.0.0-beta.3" = {
       name = "_at_blueprintjs_slash_colors";
       packageName = "@blueprintjs/colors";
-      version = "4.0.0-beta.2";
+      version = "4.0.0-beta.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@blueprintjs/colors/-/colors-4.0.0-beta.2.tgz";
-        sha512 = "yNSdk+lU0esQUDsCLc4T79+6rmEa4gH0RENpebXImq1si/txJfdSyEhUj4Hd//0YXy3P+CTXWhIBVThucfDDNQ==";
+        url = "https://registry.npmjs.org/@blueprintjs/colors/-/colors-4.0.0-beta.3.tgz";
+        sha512 = "42i7qeyFZT/qJFj8iagVECB91HmqxiCY7rw+EaOHSKCwbasbJF0BmAMViZCrOhvw++ZQ2WXmu+CxH6jkvSeDtg==";
       };
     };
-    "@blueprintjs/core-3.51.3" = {
+    "@blueprintjs/core-3.52.0" = {
       name = "_at_blueprintjs_slash_core";
       packageName = "@blueprintjs/core";
-      version = "3.51.3";
+      version = "3.52.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@blueprintjs/core/-/core-3.51.3.tgz";
-        sha512 = "Z3xGWBMBuboKFx19uxWNAUjITsCmpm+594R/KEAM578uT6yoydT6s5S7N12APAsFe8w3H1Yu2hbWHlHTvRfOhA==";
+        url = "https://registry.npmjs.org/@blueprintjs/core/-/core-3.52.0.tgz";
+        sha512 = "92Tsr0uw1ey8ZsdYSfPyeN1hbjI8PC+HWyXUSNG+nM4g5AYTuKXVXKTxxGBtZN9hG2LlmUld8YIMFWtuLBErDQ==";
       };
     };
     "@blueprintjs/icons-3.31.0" = {
@@ -1606,31 +1606,31 @@ let
         sha512 = "GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==";
       };
     };
-    "@cdktf/hcl2cdk-0.7.0" = {
+    "@cdktf/hcl2cdk-0.8.3" = {
       name = "_at_cdktf_slash_hcl2cdk";
       packageName = "@cdktf/hcl2cdk";
-      version = "0.7.0";
+      version = "0.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/hcl2cdk/-/hcl2cdk-0.7.0.tgz";
-        sha512 = "HASCRZcHX/qnDYD8sgdh/AY3Npj3AW6zZlFKUAyWM3veutWoYcUl+sPC7HwpQYkREhoNRMYWbrcq6VurgrpnOg==";
+        url = "https://registry.npmjs.org/@cdktf/hcl2cdk/-/hcl2cdk-0.8.3.tgz";
+        sha512 = "Rm0h1OjgbUoefC34JlW+73GnD8OUOLKn/mDe0AH8/0XWl6WBPRYw/kjBND7xv09WvABmfzd7SBrKU2VHrv0xiQ==";
       };
     };
-    "@cdktf/hcl2json-0.7.0" = {
+    "@cdktf/hcl2json-0.8.3" = {
       name = "_at_cdktf_slash_hcl2json";
       packageName = "@cdktf/hcl2json";
-      version = "0.7.0";
+      version = "0.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.7.0.tgz";
-        sha512 = "YwZnPwEYplGalUsfJzptlIer2w7o/FmtGNblZEVlLRXqioALvDXMRrmwSeOFAQ1ycPaCMTllB4nXIaqftfTVWg==";
+        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.8.3.tgz";
+        sha512 = "0jvkpZy65cWpzQl6yZ69pQffFXX21eKDbF94q6JeMAXtFiWDJLWyOFuKQ/dapnPPM7+BYC8osXKFO9hvo3ko7g==";
       };
     };
-    "@cdktf/provider-generator-0.7.0" = {
+    "@cdktf/provider-generator-0.8.3" = {
       name = "_at_cdktf_slash_provider-generator";
       packageName = "@cdktf/provider-generator";
-      version = "0.7.0";
+      version = "0.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/provider-generator/-/provider-generator-0.7.0.tgz";
-        sha512 = "PzL3qTxZEnXWFGB+nQOHub8xmEykJKhHLgc6CUEfu9z8PCmK9dnPLK6BKvDgvQtnTT2/aXmFjDr9GVbuOZ5Gsw==";
+        url = "https://registry.npmjs.org/@cdktf/provider-generator/-/provider-generator-0.8.3.tgz";
+        sha512 = "oh0O3EA0u2xmhSlL1JkJpA8K9mENKuRB1y1ChSnkoP5OS2GK0YebPQcrUTcvixW3tNi8ciYalC4JsY5oCKpFDQ==";
       };
     };
     "@chemzqm/neovim-5.4.0" = {
@@ -1660,130 +1660,130 @@ let
         sha512 = "sR9Go0U6puXoXyW9UgIiIQhRcJ8jVOvGl4BptUiXAtheMs72WcakZ1udh6J0ZOivr3o8jAM+MTCHLP8FZMbVpQ==";
       };
     };
-    "@commitlint/ensure-14.1.0" = {
+    "@commitlint/ensure-15.0.0" = {
       name = "_at_commitlint_slash_ensure";
       packageName = "@commitlint/ensure";
-      version = "14.1.0";
+      version = "15.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/ensure/-/ensure-14.1.0.tgz";
-        sha512 = "xrYvFdqVepT3XA1BmSh88eKbvYKtLuQu98QLfgxVmwS99Kj3yW0sT3D7jGvNsynbIx2dhbXofDyubf/DKkpFrQ==";
+        url = "https://registry.npmjs.org/@commitlint/ensure/-/ensure-15.0.0.tgz";
+        sha512 = "7DV4iNIald3vycwaWBNGk5FbonaNzOlU8nBe5m5AgU2dIeNKuXwLm+zzJzG27j0Ho56rgz//3F6RIvmsoxY9ZA==";
       };
     };
-    "@commitlint/execute-rule-14.0.0" = {
+    "@commitlint/execute-rule-15.0.0" = {
       name = "_at_commitlint_slash_execute-rule";
       packageName = "@commitlint/execute-rule";
-      version = "14.0.0";
+      version = "15.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-14.0.0.tgz";
-        sha512 = "Hh/HLpCBDlrD3Rx2x2pDBx6CU+OtVqGXh7mbFpNihAVx6B0zyZqm/vv0cdwdhfGW5OEn1BhCqHf1ZOvL/DwdWA==";
+        url = "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-15.0.0.tgz";
+        sha512 = "pyE4ApxjbWhb1TXz5vRiGwI2ssdMMgZbaaheZq1/7WC0xRnqnIhE1yUC1D2q20qPtvkZPstTYvMiRVtF+DvjUg==";
       };
     };
-    "@commitlint/format-14.1.0" = {
+    "@commitlint/format-15.0.0" = {
       name = "_at_commitlint_slash_format";
       packageName = "@commitlint/format";
-      version = "14.1.0";
+      version = "15.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/format/-/format-14.1.0.tgz";
-        sha512 = "sF6engqqHjvxGctWRKjFs/HQeNowlpbVmmoP481b2UMQnVQnjjfXJvQsoLpaqFUvgc2sHM4L85F8BmAw+iHG1w==";
+        url = "https://registry.npmjs.org/@commitlint/format/-/format-15.0.0.tgz";
+        sha512 = "bPhAfqwRhPk92WiuY0ktEJNpRRHSCd+Eg1MdhGyL9Bl3U25E5zvuInA+dNctnzZiOBSH/37ZaD0eOKCpQE6acg==";
       };
     };
-    "@commitlint/is-ignored-14.0.0" = {
+    "@commitlint/is-ignored-15.0.0" = {
       name = "_at_commitlint_slash_is-ignored";
       packageName = "@commitlint/is-ignored";
-      version = "14.0.0";
+      version = "15.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-14.0.0.tgz";
-        sha512 = "nJltYjXTa+mk+6SPe35nOZCCvt3Gh5mbDz008KQ4OPcn1GX1NG+pEgz1Kx3agDp/pc+JGnsrr5GV00gygIoloA==";
+        url = "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-15.0.0.tgz";
+        sha512 = "edtnkf2QZ/7e/YCJDgn1WDw9wfF1WfOitW5YEoSOb4SxjJEb/oE87kxNPZ2j8mnDMuunspcMfGHeg6fRlwaEWg==";
       };
     };
-    "@commitlint/lint-14.1.0" = {
+    "@commitlint/lint-15.0.0" = {
       name = "_at_commitlint_slash_lint";
       packageName = "@commitlint/lint";
-      version = "14.1.0";
+      version = "15.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/lint/-/lint-14.1.0.tgz";
-        sha512 = "CApGJEOtWU/CcuPD8HkOR1jdUYpjKutGPaeby9nSFzJhwl/UQOjxc4Nd+2g2ygsMi5l3N4j2sWQYEgccpFC3lA==";
+        url = "https://registry.npmjs.org/@commitlint/lint/-/lint-15.0.0.tgz";
+        sha512 = "hUi2+Im/2dJ5FBvWnodypTkg+5haCgsDzB0fyMApWLUA1IucYUAqRCQCW5em1Mhk9Crw1pd5YzFNikhIclkqCw==";
       };
     };
-    "@commitlint/load-14.1.0" = {
+    "@commitlint/load-15.0.0" = {
       name = "_at_commitlint_slash_load";
       packageName = "@commitlint/load";
-      version = "14.1.0";
+      version = "15.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/load/-/load-14.1.0.tgz";
-        sha512 = "p+HbgjhkqLsnxyjOUdEYHztHCp8n2oLVUJTmRPuP5FXLNevh6Gwmxf+NYC2J0sgD084aV2CFi3qu1W4yHWIknA==";
+        url = "https://registry.npmjs.org/@commitlint/load/-/load-15.0.0.tgz";
+        sha512 = "Ak1YPeOhvxmY3ioe0o6m1yLGvUAYb4BdfGgShU8jiTCmU3Mnmms0Xh/kfQz8AybhezCC3AmVTyBLaBZxOHR8kg==";
       };
     };
-    "@commitlint/message-14.0.0" = {
+    "@commitlint/message-15.0.0" = {
       name = "_at_commitlint_slash_message";
       packageName = "@commitlint/message";
-      version = "14.0.0";
+      version = "15.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/message/-/message-14.0.0.tgz";
-        sha512 = "316Pum+bwDcZamOQw0DXSY17Dq9EjvL1zKdYIZqneu4lnXN6uFfi53Y/sP5crW6zlLdnuTHe1MnuewXPLHfH1Q==";
+        url = "https://registry.npmjs.org/@commitlint/message/-/message-15.0.0.tgz";
+        sha512 = "L8euabzboKavPuDJsdIYAY2wx97LbiGEYsckMo6NmV8pOun50c8hQx6ouXFSAx4pp+mX9yUGmMiVqfrk2LKDJQ==";
       };
     };
-    "@commitlint/parse-14.0.0" = {
+    "@commitlint/parse-15.0.0" = {
       name = "_at_commitlint_slash_parse";
       packageName = "@commitlint/parse";
-      version = "14.0.0";
+      version = "15.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/parse/-/parse-14.0.0.tgz";
-        sha512 = "49qkk0TcwdxJPZUX8MElEzMlRFIL/cg64P4pk8HotFEm2HYdbxxZp6v3cbVw5WOsnRA0frrs+NNoOcIT83ccMQ==";
+        url = "https://registry.npmjs.org/@commitlint/parse/-/parse-15.0.0.tgz";
+        sha512 = "7fweM67tZfBNS7zw1KTuuT5K2u9nGytUJqFqT/1Ln3Na9cBCsoAqR47mfsNOTlRCgGwakm4xiQ7BpS2gN0OGuw==";
       };
     };
-    "@commitlint/read-14.0.0" = {
+    "@commitlint/read-15.0.0" = {
       name = "_at_commitlint_slash_read";
       packageName = "@commitlint/read";
-      version = "14.0.0";
+      version = "15.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/read/-/read-14.0.0.tgz";
-        sha512 = "WXXcSLBqwXTqnEmB0lbU2TrayDJ2G3qI/lxy1ianVmpQol8p9BjodAA6bYxtYYHdQFVXUrIsclzFP/naWG+hlQ==";
+        url = "https://registry.npmjs.org/@commitlint/read/-/read-15.0.0.tgz";
+        sha512 = "5yI1o2HKZFVe7RTjL7IhuhHMKar/MDNY34vEHqqz9gMI7BK/rdP8uVb4Di1efl2V0UPnwID0nPKWESjQ8Ti0gw==";
       };
     };
-    "@commitlint/resolve-extends-14.1.0" = {
+    "@commitlint/resolve-extends-15.0.0" = {
       name = "_at_commitlint_slash_resolve-extends";
       packageName = "@commitlint/resolve-extends";
-      version = "14.1.0";
+      version = "15.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-14.1.0.tgz";
-        sha512 = "ko80k6QB6E6/OvGNWy4u7gzzWyluDT3VDNL2kfZaDywsnrYntUKyT4Do97gQ7orttITzj2GRtk3KWClVz4rUUQ==";
+        url = "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-15.0.0.tgz";
+        sha512 = "7apfRJjgJsKja7lHsPfEFixKjA/fk/UeD3owkOw1174yYu4u8xBDLSeU3IinGPdMuF9m245eX8wo7vLUy+EBSg==";
       };
     };
-    "@commitlint/rules-14.1.0" = {
+    "@commitlint/rules-15.0.0" = {
       name = "_at_commitlint_slash_rules";
       packageName = "@commitlint/rules";
-      version = "14.1.0";
+      version = "15.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/rules/-/rules-14.1.0.tgz";
-        sha512 = "6jmv414/1JzGzDI/DS+snAMhcL6roQKPdg0WB3kWTWN52EvWXBFm0HIMGt2H/FlRKxozwVXlQN60/1fNIl98xA==";
+        url = "https://registry.npmjs.org/@commitlint/rules/-/rules-15.0.0.tgz";
+        sha512 = "SqXfp6QUlwBS+0IZm4FEA/NmmAwcFQIkG3B05BtemOVWXQdZ8j1vV6hDwvA9oMPCmUSrrGpHOtZK7HaHhng2yA==";
       };
     };
-    "@commitlint/to-lines-14.0.0" = {
+    "@commitlint/to-lines-15.0.0" = {
       name = "_at_commitlint_slash_to-lines";
       packageName = "@commitlint/to-lines";
-      version = "14.0.0";
+      version = "15.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-14.0.0.tgz";
-        sha512 = "uIXk54oJDuYyLpI208s3+cGmJ323yvSJ9LB7yUDMWUeJi2LgRxE2EBZL995kLQdnoAsBBXcLq+VDyppg5bV/cg==";
+        url = "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-15.0.0.tgz";
+        sha512 = "mY3MNA9ujPqVpiJjTYG9MDsYCobue5PJFO0MfcIzS1mCVvngH8ZFTPAh1fT5t+t1h876boS88+9WgqjRvbYItw==";
       };
     };
-    "@commitlint/top-level-14.0.0" = {
+    "@commitlint/top-level-15.0.0" = {
       name = "_at_commitlint_slash_top-level";
       packageName = "@commitlint/top-level";
-      version = "14.0.0";
+      version = "15.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/top-level/-/top-level-14.0.0.tgz";
-        sha512 = "MZDKZfWfl9g4KozgWBGTCrI2cXkMHnBFlhwvEfrAu5G8wd5aL1f2uWEUMnBMjUikmhVj99i1pzge4XFWHQ29wQ==";
+        url = "https://registry.npmjs.org/@commitlint/top-level/-/top-level-15.0.0.tgz";
+        sha512 = "7Gz3t7xcuuUw1d1Nou6YLaztzp2Em+qZ6YdCzrqYc+aquca3Vt0O696nuiBDU/oE+tls4Hx2CNpAbWhTgEwB5A==";
       };
     };
-    "@commitlint/types-14.0.0" = {
+    "@commitlint/types-15.0.0" = {
       name = "_at_commitlint_slash_types";
       packageName = "@commitlint/types";
-      version = "14.0.0";
+      version = "15.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@commitlint/types/-/types-14.0.0.tgz";
-        sha512 = "sIls1nP2uSbGL466edYlh8mn7O/WP4i3bcvP+2DMhkscRCSgaPhNRWDilhYVsHt2Vu1HTQ27uT0Bj5/Lt2+EcQ==";
+        url = "https://registry.npmjs.org/@commitlint/types/-/types-15.0.0.tgz";
+        sha512 = "OMSLX+QJnyNoTwws54ULv9sOvuw9GdVezln76oyUd4YbMMJyaav62aSXDuCdWyL2sm9hTkSzyEi52PNaIj/vqw==";
       };
     };
     "@corestore/networker-1.2.0" = {
@@ -1804,22 +1804,22 @@ let
         sha512 = "do5jDoX9oCR/dGHE4POVQ3PYDCmQ2Fow4CA72UL4WoE8zUImA/0lChczjfl+ucNjE4sXFWUnzoO6j4WzrUvLnw==";
       };
     };
-    "@cspell/cspell-bundled-dicts-5.12.6" = {
+    "@cspell/cspell-bundled-dicts-5.13.3" = {
       name = "_at_cspell_slash_cspell-bundled-dicts";
       packageName = "@cspell/cspell-bundled-dicts";
-      version = "5.12.6";
+      version = "5.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-5.12.6.tgz";
-        sha512 = "EInU8wtlT0j5XKh73pe60VF0H+rlVMycy6ZEXo6+6LJC80eUoovASGzWHzdtQhAVVhzny4wJG36Jbcz006HJPw==";
+        url = "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-5.13.3.tgz";
+        sha512 = "IfjMBNA0M9QsZQW68rGNfWGawAAw5gkjDstuvsEuJfFoOHBT6NB8T5asGmMPJcRdfLvLSaVSG5IYnYWxL0wu/A==";
       };
     };
-    "@cspell/cspell-types-5.12.6" = {
+    "@cspell/cspell-types-5.13.3" = {
       name = "_at_cspell_slash_cspell-types";
       packageName = "@cspell/cspell-types";
-      version = "5.12.6";
+      version = "5.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-5.12.6.tgz";
-        sha512 = "7RoUkmMd3ugSLL3j6NIJf6o5XIERxoPrNa74fq5PftibafliPZF2xt0oHezcoRtSZUY/FH/Xt3j/E9Su2atEMg==";
+        url = "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-5.13.3.tgz";
+        sha512 = "T70PvJQ5GV8BW7U2Q5mnrIB5poPnF7bNk7Cp95piYUcv/jlrPdWanDvdp+2gJLM+h0GUDRXscoX3Air4BmAwng==";
       };
     };
     "@cspell/dict-ada-1.1.2" = {
@@ -1840,13 +1840,13 @@ let
         sha512 = "K21CfB4ZpKYwwDQiPfic2zJA/uxkbsd4IQGejEvDAhE3z8wBs6g6BwwqdVO767M9NgZqc021yAVpr79N5pWe3w==";
       };
     };
-    "@cspell/dict-bash-1.0.16" = {
+    "@cspell/dict-bash-1.0.17" = {
       name = "_at_cspell_slash_dict-bash";
       packageName = "@cspell/dict-bash";
-      version = "1.0.16";
+      version = "1.0.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-1.0.16.tgz";
-        sha512 = "GyxHfX23AWv4iJyKQsQ5lq4qlEXzi/mjyUmCh3LY+jv8Kggqt0F/KCxOHhH7vrFgInnZyuPrRuwxtWv+I2rbwQ==";
+        url = "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-1.0.17.tgz";
+        sha512 = "BlX+pnDlLmIf776C9d71QjXl4NOIz+yloeixx1ZZjrwvKPLF+ffE/Ez13eV+D9R2Ps1rW10UvW8u3Hbmwme+Fw==";
       };
     };
     "@cspell/dict-companies-2.0.2" = {
@@ -1930,13 +1930,13 @@ let
         sha512 = "tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==";
       };
     };
-    "@cspell/dict-en_us-2.1.3" = {
+    "@cspell/dict-en_us-2.1.4" = {
       name = "_at_cspell_slash_dict-en_us";
       packageName = "@cspell/dict-en_us";
-      version = "2.1.3";
+      version = "2.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-2.1.3.tgz";
-        sha512 = "71YlVhKRBd758UNPMNeZrZQdPafEKS0e4LAgbhyuGhJhwxzAJnJolKT3vQpiFdaH4zsEGVvK1l2oTHpQDt9sng==";
+        url = "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-2.1.4.tgz";
+        sha512 = "W4b+aIvZ637FqtTmrTe/T9i9748cuTQf82eWUgV9O296WzZj7rCxm+rzOrmRTAcCmU+9+6Cdsr0unETFQfuxww==";
       };
     };
     "@cspell/dict-filetypes-2.0.1" = {
@@ -2074,31 +2074,31 @@ let
         sha512 = "zF/raM/lkhXeHf4I43OtK0gP9rBeEJFArscTVwLWOCIvNk21MJcNoTYoaGw+c056+Q+hJL0psGLO7QN+mxYH1A==";
       };
     };
-    "@cspell/dict-public-licenses-1.0.3" = {
+    "@cspell/dict-public-licenses-1.0.4" = {
       name = "_at_cspell_slash_dict-public-licenses";
       packageName = "@cspell/dict-public-licenses";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-1.0.3.tgz";
-        sha512 = "sXjxOHJ9Q4rZvE1UbwpwJQ8EXO3fadKBjJIWmz0z+dZAbvTrmz5Ln1Ef9ruJvLPfwAps8m3TCV6Diz60RAQqHg==";
+        url = "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-1.0.4.tgz";
+        sha512 = "h4xULfVEDUeWyvp1OO19pcGDqWcBEQ7WGMp3QBHyYpjsamlzsyYYjCRSY2ZvpM7wruDmywSRFmRHJ/+uNFT7nA==";
       };
     };
-    "@cspell/dict-python-2.0.4" = {
+    "@cspell/dict-python-2.0.5" = {
       name = "_at_cspell_slash_dict-python";
       packageName = "@cspell/dict-python";
-      version = "2.0.4";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-2.0.4.tgz";
-        sha512 = "71X/VnyFPm6OPEkqmoVXCJz28RvBgktxy6zF6D5TLt97LbWg2JyRrWSXaf2+seVoLnJQ5CHACxcs+jyEyLhBJA==";
+        url = "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-2.0.5.tgz";
+        sha512 = "WkyGYtNmUsOHsWixck7AxNvveDgVPqw0H51hzIY+/5u3c94wZUweIj0vfFOGIfOBq8e1ZxpjumKBxVDGXTmQkw==";
       };
     };
-    "@cspell/dict-ruby-1.0.14" = {
+    "@cspell/dict-ruby-1.0.15" = {
       name = "_at_cspell_slash_dict-ruby";
       packageName = "@cspell/dict-ruby";
-      version = "1.0.14";
+      version = "1.0.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-1.0.14.tgz";
-        sha512 = "XHBGN4U1y9rjRuqrCA+3yIm2TCdhwwHXpOEcWkNeyXm8K03yPnIrKFS+kap8GTTrLpfNDuFsrmkkQTa7ssXLRA==";
+        url = "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-1.0.15.tgz";
+        sha512 = "I76hJA///lc1pgmDTGUFHN/O8KLIZIU/8TgIYIGI6Ix/YzSEvWNdQYbANn6JbCynS0X+7IbZ2Ft+QqvmGtIWuA==";
       };
     };
     "@cspell/dict-rust-1.0.23" = {
@@ -2119,13 +2119,13 @@ let
         sha512 = "5V/R7PRbbminTpPS3ywgdAalI9BHzcEjEj9ug4kWYvBIGwSnS7T6QCFCiu+e9LvEGUqQC+NHgLY4zs1NaBj2vA==";
       };
     };
-    "@cspell/dict-software-terms-2.0.9" = {
+    "@cspell/dict-software-terms-2.0.11" = {
       name = "_at_cspell_slash_dict-software-terms";
       packageName = "@cspell/dict-software-terms";
-      version = "2.0.9";
+      version = "2.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-2.0.9.tgz";
-        sha512 = "LhUmmJYD5Kzj04UgqPW7EvJ4eEVKkrPl4ki29ClwUg/uQNZh5JwcsxEMqh5+PHD7GggDqKPYcYZanytDELTZpg==";
+        url = "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-2.0.11.tgz";
+        sha512 = "ix5k4m9Y5ZcozgE8QdEhiMIksreGozBETsCo5tGKAs4xDDkS4G07lOMFbek6m5poJ5qk5My0A/iz1j9f3L3aOg==";
       };
     };
     "@cspell/dict-swift-1.0.1" = {
@@ -2218,6 +2218,15 @@ let
         sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==";
       };
     };
+    "@deltachat/message_parser_wasm-0.1.0" = {
+      name = "_at_deltachat_slash_message_parser_wasm";
+      packageName = "@deltachat/message_parser_wasm";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@deltachat/message_parser_wasm/-/message_parser_wasm-0.1.0.tgz";
+        sha512 = "Tp3kWY9rp73omU8afIm3Vijydg+WFrrbsbmlKNXPg4Ao3PDSHuY76zKzDuX22QxdW0KlXi/RaHQ1++zJm8+DBg==";
+      };
+    };
     "@devicefarmer/adbkit-2.11.3" = {
       name = "_at_devicefarmer_slash_adbkit";
       packageName = "@devicefarmer/adbkit";
@@ -2245,13 +2254,13 @@ let
         sha512 = "HilPrVrCosYWqSyjfpDtaaN1kJwdlBpS+IAflP3z+e7nsEgk3JGJf1Vg0NgHJooTf5HDfXSyZqMVg+5jvXCK0g==";
       };
     };
-    "@discoveryjs/json-ext-0.5.5" = {
+    "@discoveryjs/json-ext-0.5.6" = {
       name = "_at_discoveryjs_slash_json-ext";
       packageName = "@discoveryjs/json-ext";
-      version = "0.5.5";
+      version = "0.5.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz";
-        sha512 = "6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==";
+        url = "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz";
+        sha512 = "ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==";
       };
     };
     "@electron-forge/async-ora-6.0.0-beta.61" = {
@@ -2515,13 +2524,13 @@ let
         sha512 = "J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==";
       };
     };
-    "@eslint/eslintrc-1.0.4" = {
+    "@eslint/eslintrc-1.0.5" = {
       name = "_at_eslint_slash_eslintrc";
       packageName = "@eslint/eslintrc";
-      version = "1.0.4";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz";
-        sha512 = "h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==";
+        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz";
+        sha512 = "BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==";
       };
     };
     "@exodus/schemasafe-1.0.0-rc.6" = {
@@ -2551,22 +2560,22 @@ let
         sha512 = "Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==";
       };
     };
-    "@expo/config-6.0.7" = {
+    "@expo/config-6.0.13" = {
       name = "_at_expo_slash_config";
       packageName = "@expo/config";
-      version = "6.0.7";
+      version = "6.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config/-/config-6.0.7.tgz";
-        sha512 = "aOsm+ZSqCgQrDf+UPHM62QGIpNdt+D3NJSFdHECnTUS6vWiTXhdVS23VQ4ris2thQS0ZRKKlX90S8CBUU49fIg==";
+        url = "https://registry.npmjs.org/@expo/config/-/config-6.0.13.tgz";
+        sha512 = "smVwkWQQrLaWO3/sIhT/7qX3qN29fvNB6kw5bGNzUQTJQ/gbjnwcZ522ME1QrcBQM6/uVWZ6Nu6+JTANk7h/Yg==";
       };
     };
-    "@expo/config-plugins-4.0.7" = {
+    "@expo/config-plugins-4.0.13" = {
       name = "_at_expo_slash_config-plugins";
       packageName = "@expo/config-plugins";
-      version = "4.0.7";
+      version = "4.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-4.0.7.tgz";
-        sha512 = "m160Y039LJcI8Q4arzA9edWNRPPnLnTe5tB41812Mn1BAmtoZy9OMs4Rj78OKFkMx6A9JJKUTWMnP/FVAbeMiw==";
+        url = "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-4.0.13.tgz";
+        sha512 = "yFcqqllAKz472UUdMRtcmfz8cHBT5VJ044cDY2E5JvaO/DQ9lfe4j/0soVUv7aeiHIWOheywJeefNfqpCo0glQ==";
       };
     };
     "@expo/config-types-43.0.1" = {
@@ -2578,22 +2587,22 @@ let
         sha512 = "EtllpCGDdB/UdwAIs5YXJwBLpbFQNdlLLrxIvoILA9cXrpQMWkeDCT9lQPJzFRMFcLUaMuGvkzX2tR4tx5EQFQ==";
       };
     };
-    "@expo/dev-server-0.1.94" = {
+    "@expo/dev-server-0.1.100" = {
       name = "_at_expo_slash_dev-server";
       packageName = "@expo/dev-server";
-      version = "0.1.94";
+      version = "0.1.100";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.94.tgz";
-        sha512 = "WHInk1uB/vNNGdtDxRqrkdYFhuLE4hADKgEgwNBSkcWBWnJIvdXtp/EWbh8zVWF8atvPrtM9JrBtMV3LVIf84g==";
+        url = "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.100.tgz";
+        sha512 = "ypu1Qka1AjR+jPDVoNrNW5o+w412vhTezlM80mvzcmswGOVYshp32+qTGJKtuwdGIir0bgbjHbZ/Sp8T/9Ps7Q==";
       };
     };
-    "@expo/dev-tools-0.13.129" = {
+    "@expo/dev-tools-0.13.136" = {
       name = "_at_expo_slash_dev-tools";
       packageName = "@expo/dev-tools";
-      version = "0.13.129";
+      version = "0.13.136";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/dev-tools/-/dev-tools-0.13.129.tgz";
-        sha512 = "4VLVxI05z65fbuNn5pi3cY+o/4e7Lnw6JmbtImVq/cknCGY0aCnWJWZB1KUZOvvpobI3zga/QAb/6poTtQy09w==";
+        url = "https://registry.npmjs.org/@expo/dev-tools/-/dev-tools-0.13.136.tgz";
+        sha512 = "3L486Jf9D0ErVF+ypUjx74BdyXo4r5iyOtLjvskVkCLxMtuFtjqqyVste3/zBKqHgF/A2ZWo8XfU8v+5SNa00g==";
       };
     };
     "@expo/devcert-1.0.0" = {
@@ -2605,94 +2614,85 @@ let
         sha512 = "cahGyQCmpZmHpn2U04NR9KwsOIZy7Rhsw8Fg4q+A6563lIJxbkrgPnxq/O3NQAh3ohEvOXOOnoFx0b4yycCkpQ==";
       };
     };
-    "@expo/image-utils-0.3.17" = {
+    "@expo/image-utils-0.3.18" = {
       name = "_at_expo_slash_image-utils";
       packageName = "@expo/image-utils";
-      version = "0.3.17";
+      version = "0.3.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.17.tgz";
-        sha512 = "zaOj24JK5F+pPGpULP8D9aAbApcR7ixV2GjT43YzZqjHuyxQ5knI+EsbmZ1TNnA1vNJJKMYrigB5+chcUGwkpw==";
+        url = "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.18.tgz";
+        sha512 = "77/ub2aGuf7SYfaFhvCHE54Hs/jRuU5j+pemS5seLfVHNwHbJSse91TMhsTLLNz3GwwqTxFVe3KMycSccJ73nA==";
       };
     };
-    "@expo/json-file-8.2.33" = {
+    "@expo/json-file-8.2.34" = {
       name = "_at_expo_slash_json-file";
       packageName = "@expo/json-file";
-      version = "8.2.33";
+      version = "8.2.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.33.tgz";
-        sha512 = "CDnhjdirUs6OdN5hOSTJ2y3i9EiJMk7Z5iDljC5xyCHCrUex7oyI8vbRsZEojAahxZccgL/PrO+CjakiFFWurg==";
+        url = "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.34.tgz";
+        sha512 = "ZxtBodAZGxdLtgKzmsC+8ViUxt1mhFW642Clu2OuG3f6PAyAFsU/SqEGag9wKFaD3x3Wt8VhL+3y5fMJmUFgPw==";
       };
     };
-    "@expo/metro-config-0.3.0" = {
+    "@expo/metro-config-0.3.6" = {
       name = "_at_expo_slash_metro-config";
       packageName = "@expo/metro-config";
-      version = "0.3.0";
+      version = "0.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.3.0.tgz";
-        sha512 = "bwpxqrcziDuqLvSzJ18N/c3+VOVI03gZ4ZWZQ8N6s7OVJrRjUMcSlFzjKlrJNm1t9m44Xl5mzhJYGFK2WsdI+Q==";
+        url = "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.3.6.tgz";
+        sha512 = "GK7esyK2Cn/v5xoksD6x+45eE/PE7YUO9vuaLIwd8QHX7FyWWe3KAC6Mi/sCqNN+GP6E+TL8tgPFaVAr7R/WTw==";
       };
     };
-    "@expo/osascript-2.0.30" = {
+    "@expo/osascript-2.0.31" = {
       name = "_at_expo_slash_osascript";
       packageName = "@expo/osascript";
-      version = "2.0.30";
+      version = "2.0.31";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.30.tgz";
-        sha512 = "IlBCyso1wJl8AbgS8n5lcUcXa/8TTU/rHgurWvJRWjErtFOELsqV4O+NCcB7jr4bvv8uZHeRKHQpsoyZWmmk/g==";
+        url = "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.31.tgz";
+        sha512 = "5OE8+Fb1mLu9EJNUOx5RcetkJZMXJxthVuIzHPlEZFEAZa3f/zQtJ6vA/hnt1BLZ2X9BR3OzBMALrUzVo95L2w==";
       };
     };
-    "@expo/package-manager-0.0.47" = {
+    "@expo/package-manager-0.0.48" = {
       name = "_at_expo_slash_package-manager";
       packageName = "@expo/package-manager";
-      version = "0.0.47";
+      version = "0.0.48";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.47.tgz";
-        sha512 = "guFnGAiNLW/JsienEq3NkZk5khTP+RdT/czk/teJUiYLkBy0hLmMTJsNXurGgFwI33+ScEbDvFmN5IOEBGpUDQ==";
+        url = "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.48.tgz";
+        sha512 = "mR+UytJc26XE3aGp8ug3MsgDKiOs4Uy5ATbjmoiYQmppJmmT9w14MVP5Iwe7ATwrCkvwqYyQ9uD8UknzCGcBCA==";
       };
     };
-    "@expo/plist-0.0.15" = {
+    "@expo/plist-0.0.16" = {
       name = "_at_expo_slash_plist";
       packageName = "@expo/plist";
-      version = "0.0.15";
+      version = "0.0.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/plist/-/plist-0.0.15.tgz";
-        sha512 = "LDxiS0KNZAGJu4fIJhbEKczmb+zeftl1NU0LE0tj0mozoMI5HSKdMUchgvnBm35bwBl8ekKkAfJJ0ONxljWQjQ==";
+        url = "https://registry.npmjs.org/@expo/plist/-/plist-0.0.16.tgz";
+        sha512 = "yQMt2CTm2VNLiHv2/EqHYrHvfflI2mFJd+DZIQQy569hvpZle0CxMPGH1p2KatbrO8htxJNvwrlR/4TIwhQJ5w==";
       };
     };
-    "@expo/prebuild-config-3.0.7" = {
+    "@expo/prebuild-config-3.0.13" = {
       name = "_at_expo_slash_prebuild-config";
       packageName = "@expo/prebuild-config";
-      version = "3.0.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-3.0.7.tgz";
-        sha512 = "0lcgbqC5EP5f+SXu7jY0krLqqKfIbpp4LuDKJBpB7+ytM5W6VOURcCJA7BmwYD42kxsj9JOz/qjU1+OLr3g1qQ==";
-      };
-    };
-    "@expo/results-1.0.0" = {
-      name = "_at_expo_slash_results";
-      packageName = "@expo/results";
-      version = "1.0.0";
+      version = "3.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/results/-/results-1.0.0.tgz";
-        sha512 = "qECzzXX5oJot3m2Gu9pfRDz50USdBieQVwYAzeAtQRUTD3PVeTK1tlRUoDcrK8PSruDLuVYdKkLebX4w/o55VA==";
+        url = "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-3.0.13.tgz";
+        sha512 = "g85sgDFITEWKIKNUcab9AGPdnPSp8Msb49bhp03ckvM4gjgN7Ir/u4qN6DPm28JMRwf00aSfoMSZf8JTpSirCw==";
       };
     };
-    "@expo/rudder-sdk-node-1.1.0" = {
+    "@expo/rudder-sdk-node-1.1.1" = {
       name = "_at_expo_slash_rudder-sdk-node";
       packageName = "@expo/rudder-sdk-node";
-      version = "1.1.0";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.0.tgz";
-        sha512 = "XUxJi2xUEi3RNdKc78emywcl8jQ+iGzpBq0gC1Gpu2/3gAuIxIfp/vGWp1vWo58cZtabhbQx/AMmbOfsHK35Qw==";
+        url = "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz";
+        sha512 = "uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==";
       };
     };
-    "@expo/schemer-1.3.31" = {
+    "@expo/schemer-1.3.32" = {
       name = "_at_expo_slash_schemer";
       packageName = "@expo/schemer";
-      version = "1.3.31";
+      version = "1.3.32";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/schemer/-/schemer-1.3.31.tgz";
-        sha512 = "gW4r6FIHjlD1sJfAO7JZtrHiIYEf6s5mbEsgU1lxi8bs3vV2feVqb05U8oTCuf0imawNf5aHhvgTL8CUVLA5tA==";
+        url = "https://registry.npmjs.org/@expo/schemer/-/schemer-1.3.32.tgz";
+        sha512 = "cmyIL8glJPLNf1MFMJ5LLSdCC3f3jjItinClZ5Ne0qB5gqjRj2f8JwNZBpYKJ06xKULWtaJrWzw0jIgFmVzchQ==";
       };
     };
     "@expo/sdk-runtime-versions-1.0.0" = {
@@ -2713,22 +2713,22 @@ let
         sha512 = "LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==";
       };
     };
-    "@expo/webpack-config-0.16.7" = {
+    "@expo/webpack-config-0.16.13" = {
       name = "_at_expo_slash_webpack-config";
       packageName = "@expo/webpack-config";
-      version = "0.16.7";
+      version = "0.16.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/webpack-config/-/webpack-config-0.16.7.tgz";
-        sha512 = "/dph1dMDcxb7BJwUERD5LQLSjo16KWhephcjarH4T3dqRAFIR/RihFLI/suPM7dg4g7gFN9/qXYNpsZ75fvaxw==";
+        url = "https://registry.npmjs.org/@expo/webpack-config/-/webpack-config-0.16.13.tgz";
+        sha512 = "VLJzDKaeX27hfMk+ydTO3m+xyBuVEACMYM/wJv4Wo6KgxvJqmYO9d4YzVgU5nW3tnn+eN4+Q02JweyCD+DxjbQ==";
       };
     };
-    "@expo/xcpretty-4.0.0" = {
+    "@expo/xcpretty-4.1.0" = {
       name = "_at_expo_slash_xcpretty";
       packageName = "@expo/xcpretty";
-      version = "4.0.0";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.0.0.tgz";
-        sha512 = "0yx68FKGm/spdmYgSFrx6p0NePzcXBPjX+VlBHssTPGEyhxnBGKNepyW+YP/tCVlb9++ApXe2u5wIdTK72h/1w==";
+        url = "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.1.0.tgz";
+        sha512 = "Q2FCVFpMEeWk2oxEx3nFg2AAwyzPdSAOVWa25f734+qCL9szL7sj20a53q4QH1T52BaGvdLoBaq/cNNCA5SzRg==";
       };
     };
     "@fast-csv/format-4.3.5" = {
@@ -2776,13 +2776,13 @@ let
         sha512 = "iT1bU56rKrKEOfODoW6fScY11qj3iaYrZ+z11T6fo5+TDm84UGkkXjLXJTE57ZJzg0/gbccHQWYv+chY7bJN8Q==";
       };
     };
-    "@fluentui/react-7.179.2" = {
+    "@fluentui/react-7.180.2" = {
       name = "_at_fluentui_slash_react";
       packageName = "@fluentui/react";
-      version = "7.179.2";
+      version = "7.180.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.179.2.tgz";
-        sha512 = "II+ChNZC6Ds5JTk7rNWyErERdhgVvpvhk4GsUUvTnmZvnrtnmVQs4HGuq6J+EHDhfKSymlONcvNePACw5j/f+g==";
+        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.180.2.tgz";
+        sha512 = "dx6euh+JxENUfmfnbA/w3liUD0IMvqZ0MfjkX76ALBI+UDaig2bJqxgaIwZjeX2Z3WOer/ZjpHx2Q+w5PoOJ8g==";
       };
     };
     "@fluentui/react-focus-7.18.1" = {
@@ -2821,31 +2821,31 @@ let
         sha512 = "82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==";
       };
     };
-    "@gitbeaker/core-34.6.0" = {
+    "@gitbeaker/core-35.1.0" = {
       name = "_at_gitbeaker_slash_core";
       packageName = "@gitbeaker/core";
-      version = "34.6.0";
+      version = "35.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@gitbeaker/core/-/core-34.6.0.tgz";
-        sha512 = "yKF+oxffPyzOnyuHCqLGJrBHhcFHuGHtcmqKhGKtnYPfqcNYA8rt4INAHaE5wMz4ILua9b4sB8p42fki+xn6WA==";
+        url = "https://registry.npmjs.org/@gitbeaker/core/-/core-35.1.0.tgz";
+        sha512 = "DM9w3wgrS8GoXMLJb0DL2VSxTvP3yoaGDfX2d8n3wMGSjZbCknh3YnbVG/OfnaPbh9PH71kGll3SY5rJgz7XJg==";
       };
     };
-    "@gitbeaker/node-34.6.0" = {
+    "@gitbeaker/node-35.1.0" = {
       name = "_at_gitbeaker_slash_node";
       packageName = "@gitbeaker/node";
-      version = "34.6.0";
+      version = "35.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@gitbeaker/node/-/node-34.6.0.tgz";
-        sha512 = "gVV4Wuev43Jbyoy1fszC885+bkvWH4zWiUhtIu0PSAm628j/OxO7idLIqUEMV0hDf6wm/PE/vOSP6PhjE0N+fA==";
+        url = "https://registry.npmjs.org/@gitbeaker/node/-/node-35.1.0.tgz";
+        sha512 = "t0lXqSuY93jVffo6WMeo4tvZtkMQXPKuGb1qNh3HOuW4+KyEqmrdQnorGyyRYH7uRTmQeHEe33BL1Ttc5F5YrA==";
       };
     };
-    "@gitbeaker/requester-utils-34.6.0" = {
+    "@gitbeaker/requester-utils-35.1.0" = {
       name = "_at_gitbeaker_slash_requester-utils";
       packageName = "@gitbeaker/requester-utils";
-      version = "34.6.0";
+      version = "35.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-34.6.0.tgz";
-        sha512 = "H8utxbSP1kEdX0KcyVYrTDTT0A3UcPwrIV1ahyufX9ZLybYSUsA56B8Wx5kJSbWGFT1ffu2f8H2YDMwNCKKsBg==";
+        url = "https://registry.npmjs.org/@gitbeaker/requester-utils/-/requester-utils-35.1.0.tgz";
+        sha512 = "00aQYCxs3wBHrD5HGWh0l1FRsX1NYJ1GEq4Reyo1NpVgjwzO/T1jjMFy3jikjJ+UGeg0sfqV9h91mwtCQ4SmRA==";
       };
     };
     "@google-cloud/paginator-3.0.6" = {
@@ -2884,13 +2884,13 @@ let
         sha512 = "j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA==";
       };
     };
-    "@google-cloud/pubsub-2.18.2" = {
+    "@google-cloud/pubsub-2.18.4" = {
       name = "_at_google-cloud_slash_pubsub";
       packageName = "@google-cloud/pubsub";
-      version = "2.18.2";
+      version = "2.18.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-2.18.2.tgz";
-        sha512 = "wEJQNlsMuGNPq72r2D7CRRrYV0Q7tIVMpJjU3PT7z1fmuLZbjfNZJl38uT3scsmqTf9pu9jNcAiWtQv6qCSq4g==";
+        url = "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-2.18.4.tgz";
+        sha512 = "mgKZ7XdXN7MEGK+MCmRKuoq3GBiuYIa9ytYuV1DIHbd+eYqqyPYZHvL8g/73eogkNYK5TxSydja7TCRDzfJaxA==";
       };
     };
     "@graphql-cli/common-4.1.0" = {
@@ -2920,6 +2920,15 @@ let
         sha512 = "IuR2SB2MnC2ztA/XeTMTfWcA0Wy7ZH5u+nDkDNLAdX+AaSyDnsQS35sCmHqG0VOGTl7rzoyBWLCKGwSJplgtwg==";
       };
     };
+    "@graphql-tools/batch-execute-8.3.1" = {
+      name = "_at_graphql-tools_slash_batch-execute";
+      packageName = "@graphql-tools/batch-execute";
+      version = "8.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.3.1.tgz";
+        sha512 = "63kHY8ZdoO5FoeDXYHnAak1R3ysMViMPwWC2XUblFckuVLMUPmB2ONje8rjr2CvzWBHAW8c1Zsex+U3xhKtGIA==";
+      };
+    };
     "@graphql-tools/delegate-7.1.5" = {
       name = "_at_graphql-tools_slash_delegate";
       packageName = "@graphql-tools/delegate";
@@ -2929,6 +2938,15 @@ let
         sha512 = "bQu+hDd37e+FZ0CQGEEczmRSfQRnnXeUxI/0miDV+NV/zCbEdIJj5tYFNrKT03W6wgdqx8U06d8L23LxvGri/g==";
       };
     };
+    "@graphql-tools/delegate-8.4.3" = {
+      name = "_at_graphql-tools_slash_delegate";
+      packageName = "@graphql-tools/delegate";
+      version = "8.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.4.3.tgz";
+        sha512 = "hKTJdJXJnKL0+2vpU+Kt7OHQTIXZ9mBmNBwHsYiG5WNArz/vNI7910r6TC2XMf/e7zhyyK+mXxMDBmDQkkJagA==";
+      };
+    };
     "@graphql-tools/graphql-file-loader-6.2.7" = {
       name = "_at_graphql-tools_slash_graphql-file-loader";
       packageName = "@graphql-tools/graphql-file-loader";
@@ -2938,13 +2956,22 @@ let
         sha512 = "5k2SNz0W87tDcymhEMZMkd6/vs6QawDyjQXWtqkuLTBF3vxjxPD1I4dwHoxgWPIjjANhXybvulD7E+St/7s9TQ==";
       };
     };
-    "@graphql-tools/import-6.6.1" = {
+    "@graphql-tools/graphql-file-loader-7.3.3" = {
+      name = "_at_graphql-tools_slash_graphql-file-loader";
+      packageName = "@graphql-tools/graphql-file-loader";
+      version = "7.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.3.3.tgz";
+        sha512 = "6kUJZiNpYKVhum9E5wfl5PyLLupEDYdH7c8l6oMrk6c7EPEVs6iSUyB7yQoWrtJccJLULBW2CRQ5IHp5JYK0mA==";
+      };
+    };
+    "@graphql-tools/import-6.6.3" = {
       name = "_at_graphql-tools_slash_import";
       packageName = "@graphql-tools/import";
-      version = "6.6.1";
+      version = "6.6.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.1.tgz";
-        sha512 = "i9WA6k+erJMci822o9w9DoX+uncVBK60LGGYW8mdbhX0l7wEubUpA000thJ1aarCusYh0u+ZT9qX0HyVPXu25Q==";
+        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.3.tgz";
+        sha512 = "k/QkWCZ5rPVgFw1eE4GXPXltw9/mEiJj6F6bJvFKJr1C6im8Y60pl0Pv+SByGZQGuukXE0uR16Mv4OFGSMQIaQ==";
       };
     };
     "@graphql-tools/json-file-loader-6.2.6" = {
@@ -2956,6 +2983,15 @@ let
         sha512 = "CnfwBSY5926zyb6fkDBHnlTblHnHI4hoBALFYXnrg0Ev4yWU8B04DZl/pBRUc459VNgO2x8/mxGIZj2hPJG1EA==";
       };
     };
+    "@graphql-tools/json-file-loader-7.3.3" = {
+      name = "_at_graphql-tools_slash_json-file-loader";
+      packageName = "@graphql-tools/json-file-loader";
+      version = "7.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.3.3.tgz";
+        sha512 = "CN2Qk9rt+Gepa3rb3X/mpxYA5MIYLwZBPj2Njw6lbZ6AaxG+O1ArDCL5ACoiWiBimn1FCOM778uhRM9znd0b3Q==";
+      };
+    };
     "@graphql-tools/load-6.2.4" = {
       name = "_at_graphql-tools_slash_load";
       packageName = "@graphql-tools/load";
@@ -2965,13 +3001,13 @@ let
         sha512 = "FlQC50VELwRxoWUbJMMMs5gG0Dl8BaQYMrXUHTsxwqR7UmksUYnysC21rdousvs6jVZ7pf4unZfZFtBjz+8Edg==";
       };
     };
-    "@graphql-tools/load-6.2.8" = {
+    "@graphql-tools/load-7.5.0" = {
       name = "_at_graphql-tools_slash_load";
       packageName = "@graphql-tools/load";
-      version = "6.2.8";
+      version = "7.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-6.2.8.tgz";
-        sha512 = "JpbyXOXd8fJXdBh2ta0Q4w8ia6uK5FHzrTNmcvYBvflFuWly2LDTk2abbSl81zKkzswQMEd2UIYghXELRg8eTA==";
+        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.0.tgz";
+        sha512 = "f0k12xZzxfV4BxWyvt/f8opqICXvz4WzDrVVG4udHFgUJIjhGeE67SRTWFAK/jlIp4QgaDux7L1DXQkJnmx64w==";
       };
     };
     "@graphql-tools/merge-6.2.17" = {
@@ -2992,15 +3028,6 @@ let
         sha512 = "Q240kcUszhXiAYudjuJgNuLgy9CryDP3wp83NOZQezfA6h3ByYKU7xI6DiKrdjyVaGpYN3ppUmdj0uf5GaXzMA==";
       };
     };
-    "@graphql-tools/mock-8.4.3" = {
-      name = "_at_graphql-tools_slash_mock";
-      packageName = "@graphql-tools/mock";
-      version = "8.4.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/mock/-/mock-8.4.3.tgz";
-        sha512 = "jj7obzDz4FAfmIGSh1Mo6cUs9d8MSaN6TH/iju3Qyuz6CZ6NLuJrWOg50ysEUgkT4Y/Aey8SlWOf/U15Z7qWYw==";
-      };
-    };
     "@graphql-tools/schema-7.1.5" = {
       name = "_at_graphql-tools_slash_schema";
       packageName = "@graphql-tools/schema";
@@ -3028,6 +3055,15 @@ let
         sha512 = "DSDrbhQIv7fheQ60pfDpGD256ixUQIR6Hhf9Z5bRjVkXOCvO5XrkwoWLiU7iHL81GB1r0Ba31bf+sl+D4nyyfw==";
       };
     };
+    "@graphql-tools/url-loader-7.7.0" = {
+      name = "_at_graphql-tools_slash_url-loader";
+      packageName = "@graphql-tools/url-loader";
+      version = "7.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.7.0.tgz";
+        sha512 = "mBBb+aJqI4E0MVEzyfi76Pi/G6lGxGTVt/tP1YtKJly7UnonNoWOtDusdL3zIVAGhGgLsNrLbGhLDbwSd6TV6A==";
+      };
+    };
     "@graphql-tools/utils-6.2.4" = {
       name = "_at_graphql-tools_slash_utils";
       packageName = "@graphql-tools/utils";
@@ -3055,13 +3091,13 @@ let
         sha512 = "gzkavMOgbhnwkHJYg32Adv6f+LxjbQmmbdD5Hty0+CWxvaiuJq+nU6tzb/7VSU4cwhbNLx/lGu2jbCPEW1McZQ==";
       };
     };
-    "@graphql-tools/utils-8.5.3" = {
+    "@graphql-tools/utils-8.5.5" = {
       name = "_at_graphql-tools_slash_utils";
       packageName = "@graphql-tools/utils";
-      version = "8.5.3";
+      version = "8.5.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.5.3.tgz";
-        sha512 = "HDNGWFVa8QQkoQB0H1lftvaO1X5xUaUDk1zr1qDe0xN1NL0E/CrQdJ5UKLqOvH4hkqVUPxQsyOoAZFkaH6rLHg==";
+        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.5.5.tgz";
+        sha512 = "y7zRXWIUI73X+9/rf/0KzrNFMlpRKFfzLiwdbIeWwgLs+NV9vfUOoVkX8luXX6LwQxhSypHATMiwZGM2ro/wJA==";
       };
     };
     "@graphql-tools/wrap-7.0.8" = {
@@ -3073,13 +3109,13 @@ let
         sha512 = "1NDUymworsOlb53Qfh7fonDi2STvqCtbeE68ntKY9K/Ju/be2ZNxrFSbrBHwnxWcN9PjISNnLcAyJ1L5tCUyhg==";
       };
     };
-    "@graphql-typed-document-node/core-3.1.0" = {
-      name = "_at_graphql-typed-document-node_slash_core";
-      packageName = "@graphql-typed-document-node/core";
-      version = "3.1.0";
+    "@graphql-tools/wrap-8.3.2" = {
+      name = "_at_graphql-tools_slash_wrap";
+      packageName = "@graphql-tools/wrap";
+      version = "8.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.0.tgz";
-        sha512 = "wYn6r8zVZyQJ6rQaALBEln5B1pzxb9shV5Ef97kTvn6yVGrqyXVnDqnU24MXnFubR+rZjBY9NWuxX3FB2sTsjg==";
+        url = "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-8.3.2.tgz";
+        sha512 = "7DcOBFB+Dd84x9dxSm7qS4iJONMyfLnCJb8A19vGPffpu4SMJ3sFcgwibKFu5l6mMUiigKgXna2RRgWI+02bKQ==";
       };
     };
     "@grpc/grpc-js-1.4.4" = {
@@ -3091,6 +3127,15 @@ let
         sha512 = "a6222b7Dl6fIlMgzVl7e+NiRoLiZFbpcwvBH2Oli56Bn7W4/3Ld+86hK4ffPn5rx2DlDidmIcvIJiOQXyhv9gA==";
       };
     };
+    "@grpc/grpc-js-1.4.5" = {
+      name = "_at_grpc_slash_grpc-js";
+      packageName = "@grpc/grpc-js";
+      version = "1.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.4.5.tgz";
+        sha512 = "A6cOzSu7dqXZ7rzvh/9JZf+Jg/MOpLEMP0IdT8pT8hrWJZ6TB4ydN/MRuqOtAugInJe/VQ9F8BPricUpYZSaZA==";
+      };
+    };
     "@grpc/proto-loader-0.6.6" = {
       name = "_at_grpc_slash_proto-loader";
       packageName = "@grpc/proto-loader";
@@ -3100,6 +3145,15 @@ let
         sha512 = "cdMaPZ8AiFz6ua6PUbP+LKbhwJbFXnrQ/mlnKGUyzDUZ3wp7vPLksnmLCBX6SHgSmjX7CbNVNLFYD5GmmjO4GQ==";
       };
     };
+    "@grpc/proto-loader-0.6.7" = {
+      name = "_at_grpc_slash_proto-loader";
+      packageName = "@grpc/proto-loader";
+      version = "0.6.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.7.tgz";
+        sha512 = "QzTPIyJxU0u+r2qGe8VMl3j/W2ryhEvBv7hc42OjYfthSj370fUrb7na65rG6w3YLZS/fb8p89iTBobfWGDgdw==";
+      };
+    };
     "@gulp-sourcemaps/identity-map-1.0.2" = {
       name = "_at_gulp-sourcemaps_slash_identity-map";
       packageName = "@gulp-sourcemaps/identity-map";
@@ -3226,6 +3280,15 @@ let
         sha512 = "JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==";
       };
     };
+    "@humanwhocodes/config-array-0.9.2" = {
+      name = "_at_humanwhocodes_slash_config-array";
+      packageName = "@humanwhocodes/config-array";
+      version = "0.9.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz";
+        sha512 = "UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==";
+      };
+    };
     "@humanwhocodes/object-schema-1.2.1" = {
       name = "_at_humanwhocodes_slash_object-schema";
       packageName = "@humanwhocodes/object-schema";
@@ -3559,31 +3622,22 @@ let
         sha512 = "4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==";
       };
     };
-    "@jsii/check-node-1.37.0" = {
-      name = "_at_jsii_slash_check-node";
-      packageName = "@jsii/check-node";
-      version = "1.37.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.37.0.tgz";
-        sha512 = "s0jhnq/1X1IQQpKcAoUAd3KZ6X58nEjIi+vL4aC0iyDW6v2pmt8J5G/ilUZSbvplyJ2GdTMYi7NOCz2f3QAGZA==";
-      };
-    };
-    "@jsii/check-node-1.44.0" = {
+    "@jsii/check-node-1.49.0" = {
       name = "_at_jsii_slash_check-node";
       packageName = "@jsii/check-node";
-      version = "1.44.0";
+      version = "1.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.44.0.tgz";
-        sha512 = "f5yHUWdhPWav5Bf3O0BtT89LYg1YjLQib6LzroHXJOwCgQZdK9A+eZZ0bTmtWSEKd5UDhZmrN1JCXpZ7UzgpnA==";
+        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.49.0.tgz";
+        sha512 = "NRlfVfsczS503K0Y476YkfqLr1yjtgGpj5xcPahS4qaPHJoxMdeiiPuvtybKif37+CKUj/BGsZc8yRXp5bzI1w==";
       };
     };
-    "@jsii/spec-1.44.0" = {
+    "@jsii/spec-1.49.0" = {
       name = "_at_jsii_slash_spec";
       packageName = "@jsii/spec";
-      version = "1.44.0";
+      version = "1.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.44.0.tgz";
-        sha512 = "q0hbiXrDqQ2FsM4RA/aKyB8Zy8oi7ukDBJt/kEMO8rN9RC5uQ5uxFoR6UTS3d3raQpyzXpAkfs7UQldvi65B3w==";
+        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.49.0.tgz";
+        sha512 = "uf3wr4c/bCl52VDLQGOGQQynAvyEvwCJ2jcN83nmHhovUkxmhVlqaKt8pumOyjfB5N5SoLW5tiY7ClMQ/q8UoQ==";
       };
     };
     "@kwsites/file-exists-1.1.1" = {
@@ -4252,13 +4306,13 @@ let
         sha512 = "/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==";
       };
     };
-    "@mapbox/node-pre-gyp-1.0.6" = {
+    "@mapbox/node-pre-gyp-1.0.8" = {
       name = "_at_mapbox_slash_node-pre-gyp";
       packageName = "@mapbox/node-pre-gyp";
-      version = "1.0.6";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.6.tgz";
-        sha512 = "qK1ECws8UxuPqOA8F5LFD90vyVU33W7N3hGfgsOVfrJaRVc8McC3JClTDHpeSbL9CBrOHly/4GsNPAvIgNZE+g==";
+        url = "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.8.tgz";
+        sha512 = "CMGKi28CF+qlbXh26hDe6NxCd7amqeAzEqnS6IHeO6LoaKyM/n+Xw3HT1COdq8cuioOdlKdqn/hCmqPUOMOywg==";
       };
     };
     "@mapbox/point-geometry-0.1.0" = {
@@ -4324,13 +4378,13 @@ let
         sha512 = "7AQsO0hMmpqDledV7AhBuSYqYPFsKP9PaltMecX9nlnsyFxqtsqUg9/pvB2L/jxvskrDrNkdKYz2KTbQznCtng==";
       };
     };
-    "@mdn/browser-compat-data-4.0.5" = {
+    "@mdn/browser-compat-data-4.0.11" = {
       name = "_at_mdn_slash_browser-compat-data";
       packageName = "@mdn/browser-compat-data";
-      version = "4.0.5";
+      version = "4.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.0.5.tgz";
-        sha512 = "KPSNaHUl5aikqsQU7LpBntFzaPbhm5OJxD88Wv00OKDc4wudyid2wDFqLeb7VcYT9x5bND8PPFloWdK5DY0pHA==";
+        url = "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.0.11.tgz";
+        sha512 = "rmQPBLe3/DuJy0Bcr1KNuSiIcgV67R2AeLxagKMQTI0R8F9lLC894wJRYhA5ytV0CIi7dzxILqdFeuVbqrkoCA==";
       };
     };
     "@mdx-js/util-2.0.0-next.8" = {
@@ -4486,13 +4540,13 @@ let
         sha512 = "W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==";
       };
     };
-    "@microsoft/load-themed-styles-1.10.230" = {
+    "@microsoft/load-themed-styles-1.10.240" = {
       name = "_at_microsoft_slash_load-themed-styles";
       packageName = "@microsoft/load-themed-styles";
-      version = "1.10.230";
+      version = "1.10.240";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.230.tgz";
-        sha512 = "EMc7AqUZxRnZTpnPasItHN5DXV/EdJ19wHyOls69PF089Ny9pUxZEbAPROOuR6I1m8WvNRJrlagLJgG9Yq0Y2w==";
+        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.240.tgz";
+        sha512 = "Db8ycvx1Kf+GWFbGMOVHB7YLOx5TANxDf7t4Qnre+iuf1O0X+YhB4vsGrNFcOL8OJXIa9P+ZaEC1GFL1bp8+4g==";
       };
     };
     "@mitmaro/errors-1.0.0" = {
@@ -4531,15 +4585,6 @@ let
         sha512 = "bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==";
       };
     };
-    "@msgpack/msgpack-1.12.2" = {
-      name = "_at_msgpack_slash_msgpack";
-      packageName = "@msgpack/msgpack";
-      version = "1.12.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-1.12.2.tgz";
-        sha512 = "Vwhc3ObxmDZmA5hY8mfsau2rJ4vGPvzbj20QSZ2/E1GDPF61QVyjLfNHak9xmel6pW4heRt3v1fHa6np9Ehfeg==";
-      };
-    };
     "@msgpack/msgpack-2.7.1" = {
       name = "_at_msgpack_slash_msgpack";
       packageName = "@msgpack/msgpack";
@@ -4549,13 +4594,22 @@ let
         sha512 = "ApwiSL2c9ObewdOE/sqt788P1C5lomBOHyO8nUBCr4ofErBCnYQ003NtJ8lS9OQZc11ximkbmgAZJjB8y6cCdA==";
       };
     };
-    "@nestjs/schematics-8.0.4" = {
+    "@n1ru4l/graphql-live-query-0.9.0" = {
+      name = "_at_n1ru4l_slash_graphql-live-query";
+      packageName = "@n1ru4l/graphql-live-query";
+      version = "0.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@n1ru4l/graphql-live-query/-/graphql-live-query-0.9.0.tgz";
+        sha512 = "BTpWy1e+FxN82RnLz4x1+JcEewVdfmUhV1C6/XYD5AjS7PQp9QFF7K8bCD6gzPTr2l+prvqOyVueQhFJxB1vfg==";
+      };
+    };
+    "@nestjs/schematics-8.0.5" = {
       name = "_at_nestjs_slash_schematics";
       packageName = "@nestjs/schematics";
-      version = "8.0.4";
+      version = "8.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nestjs/schematics/-/schematics-8.0.4.tgz";
-        sha512 = "uEmEfuNuIgsNr4m0wEkXIIG6usegehnpwhtOoxXWwvKO0CFO3POAx4pOazPgC4ky6pJ0XROhE/8O55JtmEw0UQ==";
+        url = "https://registry.npmjs.org/@nestjs/schematics/-/schematics-8.0.5.tgz";
+        sha512 = "nK1hWQeLNbdhsiJDX/XJXLqq7nC6/xxC8CN+seFTQmly+H3gG2xaFnl6JPHURumuQaYJX8JEpC8m0+4tz+wvOg==";
       };
     };
     "@netflix/nerror-1.1.3" = {
@@ -4567,58 +4621,58 @@ let
         sha512 = "b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==";
       };
     };
-    "@node-red/editor-api-2.1.3" = {
+    "@node-red/editor-api-2.1.4" = {
       name = "_at_node-red_slash_editor-api";
       packageName = "@node-red/editor-api";
-      version = "2.1.3";
+      version = "2.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-2.1.3.tgz";
-        sha512 = "57r4f5/8Sz8Q7HEjlNWgzaMIavoWHas3boJhXpU0yLL1LBytzwZZh1jBCdYitROT37wruwPGH8XKR3s2FvBEjQ==";
+        url = "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-2.1.4.tgz";
+        sha512 = "FQn/lAIEa/1oJqkq8cPWMQ/RMiLkZDOFoYw6gM3WjAKwpX7AN/FuZi8R6qUfcn0cylwQzYzx43ggUq2/3f81xQ==";
       };
     };
-    "@node-red/editor-client-2.1.3" = {
+    "@node-red/editor-client-2.1.4" = {
       name = "_at_node-red_slash_editor-client";
       packageName = "@node-red/editor-client";
-      version = "2.1.3";
+      version = "2.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-2.1.3.tgz";
-        sha512 = "omSk73AKgVTrSsEphEOFQtl4SBtATWPihGJJ4UabPkeY+OBcHRfgjroMHERZ80pXPmjwVLfC0GUN0OYUs08TYA==";
+        url = "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-2.1.4.tgz";
+        sha512 = "Q9HUZDnEw6VbQBs14yW01uV4KbIgqxqriFkwfEzfbi5dNag2sqQSrf6XSfg7OuqIf3iC10Wbm5/0Y67rMtV9gA==";
       };
     };
-    "@node-red/nodes-2.1.3" = {
+    "@node-red/nodes-2.1.4" = {
       name = "_at_node-red_slash_nodes";
       packageName = "@node-red/nodes";
-      version = "2.1.3";
+      version = "2.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/nodes/-/nodes-2.1.3.tgz";
-        sha512 = "J2GOKY/4AoUK9BGBXEuPjhJQLGaaYbYtaH0GKQXfD6ROBiPQzbSOYIEWq8ZMXLdUXVcyyFTVBSIsy+2+RCdqEg==";
+        url = "https://registry.npmjs.org/@node-red/nodes/-/nodes-2.1.4.tgz";
+        sha512 = "di57I/0BUMfpRL9vLBomOp1QIyStDwvb+TXUd54b8FEopfAn5h3E7avL6te7yZSUuKVipqUd54CHJepRubRxBQ==";
       };
     };
-    "@node-red/registry-2.1.3" = {
+    "@node-red/registry-2.1.4" = {
       name = "_at_node-red_slash_registry";
       packageName = "@node-red/registry";
-      version = "2.1.3";
+      version = "2.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/registry/-/registry-2.1.3.tgz";
-        sha512 = "78FoG2AsMHiMYdV1fCMvAkwTKkdF+rP8mv5OfNa+iPhTU66n24AtnwFeWOdasc2ZIP4zd7Tbxr3pcT/+m0kFIw==";
+        url = "https://registry.npmjs.org/@node-red/registry/-/registry-2.1.4.tgz";
+        sha512 = "OinEVN4js8ewEf4q89FJxoCdGELXIjuZo+3AtlXDqZD8uJOnKnB48avXhrWuMFjYCJhQN8PUqulHj6Ru596lPA==";
       };
     };
-    "@node-red/runtime-2.1.3" = {
+    "@node-red/runtime-2.1.4" = {
       name = "_at_node-red_slash_runtime";
       packageName = "@node-red/runtime";
-      version = "2.1.3";
+      version = "2.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/runtime/-/runtime-2.1.3.tgz";
-        sha512 = "+Vu7a14CcODQh/fQyYP7sanPc7CFWOK4JI2l9K0n4Oy3d/4TOQ12k3ync0cFpgmJ1I/foFIN/oIg7T2ZVjQvDA==";
+        url = "https://registry.npmjs.org/@node-red/runtime/-/runtime-2.1.4.tgz";
+        sha512 = "fU6lvgmpcnxQPc0CEyvgvDtGmNsgS5k6zJ9No+9jPCAkUAO069pFrecCddo9j/sN+8FRw4ikwqvKI0uAgTFx1Q==";
       };
     };
-    "@node-red/util-2.1.3" = {
+    "@node-red/util-2.1.4" = {
       name = "_at_node-red_slash_util";
       packageName = "@node-red/util";
-      version = "2.1.3";
+      version = "2.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/util/-/util-2.1.3.tgz";
-        sha512 = "FMqNwd7Lac3jm83uSQurR3N7E62jY6QDvOP2pQ4LCCtGYRKRFwukfzG9mzumioKS740vN8If8EBTIPQgRTSZ6A==";
+        url = "https://registry.npmjs.org/@node-red/util/-/util-2.1.4.tgz";
+        sha512 = "OdlMz2Q2ivfw1NoW2qi4ymB+WMRe3ICGkPkPhc1dlp1NSsuXXXNdi9jXglYo/cTF8v/QLihnXZf2ppCm4iiqRQ==";
       };
     };
     "@nodelib/fs.scandir-2.1.5" = {
@@ -4657,13 +4711,13 @@ let
         sha512 = "oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==";
       };
     };
-    "@npmcli/arborist-4.0.4" = {
+    "@npmcli/arborist-4.1.1" = {
       name = "_at_npmcli_slash_arborist";
       packageName = "@npmcli/arborist";
-      version = "4.0.4";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/arborist/-/arborist-4.0.4.tgz";
-        sha512 = "5hRkiHF9zu62z6a7CJqhVG5CFUVnbYqvrrcxxEmhxFgyH2ovICyULOrj7nF4VBlfzp7OPu/rveV2ts9iYrn74g==";
+        url = "https://registry.npmjs.org/@npmcli/arborist/-/arborist-4.1.1.tgz";
+        sha512 = "sASzHngGWt8l6ic1VP0Qf3+ral/RL8L+MculTp2w8NYjjkDiurByOT39KiYmLwpeJ2GQoDR/rdhEwnII8wZQ9g==";
       };
     };
     "@npmcli/ci-detect-1.4.0" = {
@@ -4675,13 +4729,13 @@ let
         sha512 = "3BGrt6FLjqM6br5AhWRKTr3u5GIVkjRYeAFrMp3HjnfICrg4xOrVRwFavKT6tsp++bq5dluL5t8ME/Nha/6c1Q==";
       };
     };
-    "@npmcli/fs-1.0.0" = {
+    "@npmcli/fs-1.1.0" = {
       name = "_at_npmcli_slash_fs";
       packageName = "@npmcli/fs";
-      version = "1.0.0";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/fs/-/fs-1.0.0.tgz";
-        sha512 = "8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==";
+        url = "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.0.tgz";
+        sha512 = "VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA==";
       };
     };
     "@npmcli/git-2.1.0" = {
@@ -4792,6 +4846,15 @@ let
         sha512 = "5vwpq6kbvwkQwKqAoOU3L72GZ3Ta8RRrewKj9OJRolx28KLJJ8Dg9Rf7obRwt5jQA9bkYd8gqzMTrI7H3xLfaw==";
       };
     };
+    "@oclif/command-1.8.15" = {
+      name = "_at_oclif_slash_command";
+      packageName = "@oclif/command";
+      version = "1.8.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@oclif/command/-/command-1.8.15.tgz";
+        sha512 = "lMRsr38sm4XBDBt2u88nvGyk3YxMjQenfX1HM140ZckTVqwuvFVZLP4HZ0rSAK9FdJzfryO/tH5hovdiC6bgsw==";
+      };
+    };
     "@oclif/config-1.17.0" = {
       name = "_at_oclif_slash_config";
       packageName = "@oclif/config";
@@ -4801,13 +4864,13 @@ let
         sha512 = "Lmfuf6ubjQ4ifC/9bz1fSCHc6F6E653oyaRXxg+lgT4+bYf9bk+nqrUpAbrXyABkCqgIBiFr3J4zR/kiFdE1PA==";
       };
     };
-    "@oclif/core-0.5.41" = {
-      name = "_at_oclif_slash_core";
-      packageName = "@oclif/core";
-      version = "0.5.41";
+    "@oclif/config-1.18.2" = {
+      name = "_at_oclif_slash_config";
+      packageName = "@oclif/config";
+      version = "1.18.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/core/-/core-0.5.41.tgz";
-        sha512 = "zEYbpxSQr80t7MkLMHOmZr8QCrCIbVrI7fLSZWlsvD2AEM0vvzuhWymjo9/kHy2/kNfxwu7NTI4i2a0zoHu11w==";
+        url = "https://registry.npmjs.org/@oclif/config/-/config-1.18.2.tgz";
+        sha512 = "cE3qfHWv8hGRCP31j7fIS7BfCflm/BNZ2HNqHexH+fDrdF2f1D5S8VmXWLC77ffv3oDvWyvE9AZeR0RfmHCCaA==";
       };
     };
     "@oclif/errors-1.3.4" = {
@@ -4828,6 +4891,15 @@ let
         sha512 = "OivucXPH/eLLlOT7FkCMoZXiaVYf8I/w1eTAM1+gKzfhALwWTusxEx7wBmW0uzvkSg/9ovWLycPaBgJbM3LOCQ==";
       };
     };
+    "@oclif/help-1.0.1" = {
+      name = "_at_oclif_slash_help";
+      packageName = "@oclif/help";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@oclif/help/-/help-1.0.1.tgz";
+        sha512 = "8rsl4RHL5+vBUAKBL6PFI3mj58hjPCp2VYyXD4TAa7IMStikFfOH2gtWmqLzIlxAED2EpD0dfYwo9JJxYsH7Aw==";
+      };
+    };
     "@oclif/linewrap-1.0.0" = {
       name = "_at_oclif_slash_linewrap";
       packageName = "@oclif/linewrap";
@@ -4837,13 +4909,13 @@ let
         sha512 = "Ups2dShK52xXa8w6iBWLgcjPJWjais6KPJQq3gQ/88AY6BXoTX+MIGFPrWQO1KLMiQfoTpcLnUwloN4brrVUHw==";
       };
     };
-    "@oclif/parser-3.8.5" = {
+    "@oclif/parser-3.8.6" = {
       name = "_at_oclif_slash_parser";
       packageName = "@oclif/parser";
-      version = "3.8.5";
+      version = "3.8.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.5.tgz";
-        sha512 = "yojzeEfmSxjjkAvMRj0KzspXlMjCfBzNRPkWw8ZwOSoNWoJn+OCS/m/S+yfV6BvAM4u2lTzX9Y5rCbrFIgkJLg==";
+        url = "https://registry.npmjs.org/@oclif/parser/-/parser-3.8.6.tgz";
+        sha512 = "tXb0NKgSgNxmf6baN6naK+CCwOueaFk93FG9u202U7mTBHUKsioOUlw1SG/iPi9aJM3WE4pHLXmty59pci0OEw==";
       };
     };
     "@oclif/plugin-autocomplete-0.1.5" = {
@@ -4873,13 +4945,13 @@ let
         sha512 = "vq7rn16TrQmjX3Al/k1Z5iBZWZ3HE8fDXs52OmDJmmTqryPSNvURH9WCAsqr0PODYCSR17Hy1VTzS0x7vVVLEQ==";
       };
     };
-    "@oclif/plugin-help-3.3.0" = {
+    "@oclif/plugin-help-3.3.1" = {
       name = "_at_oclif_slash_plugin-help";
       packageName = "@oclif/plugin-help";
-      version = "3.3.0";
+      version = "3.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.3.0.tgz";
-        sha512 = "+eYQZXsWnc54IM5Hv2+IoKBTKUSDt+vRbwf5I8w+DaXvzOmx0VzAbLgL1ciJzYh66CknjWMUJf/hxoc8ykJHaQ==";
+        url = "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.3.1.tgz";
+        sha512 = "QuSiseNRJygaqAdABYFWn/H1CwIZCp9zp/PLid6yXvy6VcQV7OenEFF5XuYaCvSARe2Tg9r8Jqls5+fw1A9CbQ==";
       };
     };
     "@oclif/screen-1.0.4" = {
@@ -4981,6 +5053,15 @@ let
         sha512 = "r+fArdP5+TG6l1Rv/C9hVoty6tldw6cE2pRHNGmFPdyfrc696R6JjrQ3d7HdVqGwuzfyrcaLAKD7K8TX8aehUQ==";
       };
     };
+    "@octokit/plugin-throttling-3.5.2" = {
+      name = "_at_octokit_slash_plugin-throttling";
+      packageName = "@octokit/plugin-throttling";
+      version = "3.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-3.5.2.tgz";
+        sha512 = "Eu7kfJxU8vmHqWGNszWpg+GVp2tnAfax3XQV5CkYPEE69C+KvInJXW9WajgSeW+cxYe0UVdouzCtcreGNuJo7A==";
+      };
+    };
     "@octokit/request-5.6.2" = {
       name = "_at_octokit_slash_request";
       packageName = "@octokit/request";
@@ -5062,328 +5143,328 @@ let
         sha512 = "a/szuMQV0Quy0/M7kKdglcbRSoorleyyOwbTNNJ32O+RBN766wbQlMTvdimImTmwYWGr+NJOni1EcC242WlRcA==";
       };
     };
-    "@ot-builder/bin-composite-types-1.3.1" = {
+    "@ot-builder/bin-composite-types-1.3.2" = {
       name = "_at_ot-builder_slash_bin-composite-types";
       packageName = "@ot-builder/bin-composite-types";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/bin-composite-types/-/bin-composite-types-1.3.1.tgz";
-        sha512 = "ienMPhQZNLqHmdriCS+vilh/6eRMGMMqrqsjjrI09MxftNPKmVoIv3nzEHgJE6fIMluX8c+cNfUuaWZaaqpiYg==";
+        url = "https://registry.npmjs.org/@ot-builder/bin-composite-types/-/bin-composite-types-1.3.2.tgz";
+        sha512 = "mtNln6Ve4bg3DxfOFFqAaNc/2DZmUSu8hZf9tM0pYoE5mOfeNfMQZEnD8Mo3WJ74bSi1SaJdXGoI00/7jPowCg==";
       };
     };
-    "@ot-builder/bin-util-1.3.1" = {
+    "@ot-builder/bin-util-1.3.2" = {
       name = "_at_ot-builder_slash_bin-util";
       packageName = "@ot-builder/bin-util";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/bin-util/-/bin-util-1.3.1.tgz";
-        sha512 = "HbHBWypPP+bUuCn/JUwmRDizRB8Q+AgW7+QKhBx8MfASR3OLCXDLFSwjW+uI95XkDEimryb4DmQ6AXRS1VtTtQ==";
+        url = "https://registry.npmjs.org/@ot-builder/bin-util/-/bin-util-1.3.2.tgz";
+        sha512 = "v+36AFrFJVQlqPF+vcZzYExCeeryPpjP2hGCGLAf+ADKLtw1sMS39+UHxmNwx5wmlfnhHtg6WTIVOV5l9grpkA==";
       };
     };
-    "@ot-builder/cli-help-shower-1.3.1" = {
+    "@ot-builder/cli-help-shower-1.3.2" = {
       name = "_at_ot-builder_slash_cli-help-shower";
       packageName = "@ot-builder/cli-help-shower";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-help-shower/-/cli-help-shower-1.3.1.tgz";
-        sha512 = "PO40RTulmPRHwNigxDszJURSC+gMWeV9F2EuRNSmdnoFxCmZgFgKla7waGawIMaUWAFxMfM54R2uyQgkdOt9SQ==";
+        url = "https://registry.npmjs.org/@ot-builder/cli-help-shower/-/cli-help-shower-1.3.2.tgz";
+        sha512 = "zkaFrbS6+8GGIsx0YiXUl4vrhd4dV8ADmscc372F0fg8Wnu3k6LJClEFBYSzJAAJxxfDuuPBBDmxrHJafLg0sg==";
       };
     };
-    "@ot-builder/cli-proc-1.3.1" = {
+    "@ot-builder/cli-proc-1.3.2" = {
       name = "_at_ot-builder_slash_cli-proc";
       packageName = "@ot-builder/cli-proc";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-proc/-/cli-proc-1.3.1.tgz";
-        sha512 = "FbffCJpLKFJ/f7vhs0vW85/fMO4j+tI13zv+vFf92udIZCPBxzacWU65HVdD+8BGjoDdKkGFCujRnx80BONVvg==";
+        url = "https://registry.npmjs.org/@ot-builder/cli-proc/-/cli-proc-1.3.2.tgz";
+        sha512 = "qNvhZINthCthkuzfeTmp9bHP7jesbvovcfy7f0lu6Rd7ODdU/ia/qNs58cGWcW6skN7f21Ba6TnAFzyGsll1Fg==";
       };
     };
-    "@ot-builder/cli-shared-1.3.1" = {
+    "@ot-builder/cli-shared-1.3.2" = {
       name = "_at_ot-builder_slash_cli-shared";
       packageName = "@ot-builder/cli-shared";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/cli-shared/-/cli-shared-1.3.1.tgz";
-        sha512 = "BCbTyVlWkvRML0PqseA9RRlBl5mCKDMr51k6F4d10LZXRdMi3KobtiHTYh9R+dN63KhyooSrfi810RJYau7bBg==";
+        url = "https://registry.npmjs.org/@ot-builder/cli-shared/-/cli-shared-1.3.2.tgz";
+        sha512 = "QqOGIOHJQ73MHdzSE7FM5Ip4wE8QwILfiJViB5++74qU7m8wqF3u7TsPbUxlnoYsyMv4xkHI2Bd20VHcboJ+sA==";
       };
     };
-    "@ot-builder/common-impl-1.3.1" = {
+    "@ot-builder/common-impl-1.3.2" = {
       name = "_at_ot-builder_slash_common-impl";
       packageName = "@ot-builder/common-impl";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/common-impl/-/common-impl-1.3.1.tgz";
-        sha512 = "COHVcH3naONXd5SeSUgpo58k03Y4W+aEo6VKt36kVFfVOkhnR9htOc7HUy7+UBk0MhRQ9/WSA5BmLC+ZkFRDYw==";
+        url = "https://registry.npmjs.org/@ot-builder/common-impl/-/common-impl-1.3.2.tgz";
+        sha512 = "GMJfo9am2LqVMbYloPxdatAfuphbjahpLDPRU0qcpw495SInTeYCqysuiJ5iP+PwOOua18Lay9wrPFOVbnp77g==";
       };
     };
-    "@ot-builder/errors-1.3.1" = {
+    "@ot-builder/errors-1.3.2" = {
       name = "_at_ot-builder_slash_errors";
       packageName = "@ot-builder/errors";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/errors/-/errors-1.3.1.tgz";
-        sha512 = "NVbpMCFrKLOAIMdk6fIsqHhHCrP8o54HOJd0dnpGmydhDXRns+ju8y28dKctnhqgbwBOaVJnRsqhzvgUX2OyFA==";
+        url = "https://registry.npmjs.org/@ot-builder/errors/-/errors-1.3.2.tgz";
+        sha512 = "QoQ9ksBaQxt/KyW7NRvaPPOQRKRYmLAdfKNT0GCL8eHViOxQNhFZR9OcdVQEgetxpi2HFOd7L4Mw9Jg+sugLXw==";
       };
     };
-    "@ot-builder/io-bin-cff-1.3.1" = {
+    "@ot-builder/io-bin-cff-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-cff";
       packageName = "@ot-builder/io-bin-cff";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-cff/-/io-bin-cff-1.3.1.tgz";
-        sha512 = "BHyDiQsBPQzF4AzK1spyHM/Jaw7OnI2UPEK6N+2ah7I5HcJO8TWq6MbNSFnnKgjdw6Iiz/sSXZgPYy7cVNLRYA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-cff/-/io-bin-cff-1.3.2.tgz";
+        sha512 = "JNt/2zvTxHRQJSWJ23I8zufkyjOEaKkGt4x0JkdyvVBK7TGMu2z29ZArNCCceBr+DFAMfB0M826glHrE9DNwFQ==";
       };
     };
-    "@ot-builder/io-bin-encoding-1.3.1" = {
+    "@ot-builder/io-bin-encoding-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-encoding";
       packageName = "@ot-builder/io-bin-encoding";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-encoding/-/io-bin-encoding-1.3.1.tgz";
-        sha512 = "SPXxoPNE/wMcCK/ktY42bvksrBFTwbrDokydFs7m7RdEwn9fdhF0jYV/HSwwbTfrKdnr8SMeEPTHCx/1fRuivQ==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-encoding/-/io-bin-encoding-1.3.2.tgz";
+        sha512 = "MLHhwtD8onUkYnC0I3Wxyk5te0qYnWVrmTsnANUEiCyUMcwNGLvJnX0273Gczq41IfsL6C7KFd3AlwXHCyepkw==";
       };
     };
-    "@ot-builder/io-bin-ext-private-1.3.1" = {
+    "@ot-builder/io-bin-ext-private-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-ext-private";
       packageName = "@ot-builder/io-bin-ext-private";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-ext-private/-/io-bin-ext-private-1.3.1.tgz";
-        sha512 = "fMcJbWRBe+ms7ED/6zjQZAVEcRREx88EHBUQsvzV02ydL0iUHWdy0uB7GpzcjqP1JWIPmC3Kk5leYjqgy/X4VQ==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-ext-private/-/io-bin-ext-private-1.3.2.tgz";
+        sha512 = "BXpOFvKMAq3dbEin+9GrU7rHjdkDX2/CEXpdfGVVAsI91pcNlF0Kd200rUv7B1HoyIP5GQAhkn3/gfZCtbVKYg==";
       };
     };
-    "@ot-builder/io-bin-font-1.3.1" = {
+    "@ot-builder/io-bin-font-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-font";
       packageName = "@ot-builder/io-bin-font";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-font/-/io-bin-font-1.3.1.tgz";
-        sha512 = "3u8bQDw7yvywBhkrtnnUXzPqSo/wLmifJxg+AKomifKEws4aTmlrslDrpg8B8Vip2wPmY/ta6qsu6QywSTjgEQ==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-font/-/io-bin-font-1.3.2.tgz";
+        sha512 = "b/f3ckpBoY7OMWs0Lnp1N5mnmsOg3pc27Q9LE85tlJvx8k19NDVWOHGxr2TRiSRYgzHm5m4mCi9q8Vd9QRU/Rw==";
       };
     };
-    "@ot-builder/io-bin-glyph-store-1.3.1" = {
+    "@ot-builder/io-bin-glyph-store-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-glyph-store";
       packageName = "@ot-builder/io-bin-glyph-store";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-glyph-store/-/io-bin-glyph-store-1.3.1.tgz";
-        sha512 = "oO86B63BhkF2CCbIAroUxhyKdeeQiH4Q+BQH74Z9WxK0nMlpM/OhqzAqAhlNUzzwYpqa05fJgigqNCXyQncJbg==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-glyph-store/-/io-bin-glyph-store-1.3.2.tgz";
+        sha512 = "PPZZIwWm3njbDJMojxgwJerQFEL/eAfM1It8Wrgo/04d87jMECWhV+YML/8YEu67TuZiRhKhP27jnPENX1WavQ==";
       };
     };
-    "@ot-builder/io-bin-layout-1.3.1" = {
+    "@ot-builder/io-bin-layout-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-layout";
       packageName = "@ot-builder/io-bin-layout";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-layout/-/io-bin-layout-1.3.1.tgz";
-        sha512 = "BGThzzwMMBi0XwV0Tw97JxKyglsm9KEoY05T0L4RYmtqNxHi5K+BWBrqScspmBVq7ai+pHCiMvh+JlP3Tfq/oA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-layout/-/io-bin-layout-1.3.2.tgz";
+        sha512 = "o1M9y2R2KbL9X6DmOx6zeBG126mwDyhxoDYFPXMEaa3x1an7zAavkOd4gZxBFgWPqeVFXScGFTge9WX7DYSDnw==";
       };
     };
-    "@ot-builder/io-bin-metadata-1.3.1" = {
+    "@ot-builder/io-bin-metadata-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-metadata";
       packageName = "@ot-builder/io-bin-metadata";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-metadata/-/io-bin-metadata-1.3.1.tgz";
-        sha512 = "hrBDfxXu6oBWvhgXqiomHwjsr+X0BYB+WqT/W5LxntdUpheGFEU/UXYlMHAidZRg7++KjjkU0q2vRqKiUe+7wg==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-metadata/-/io-bin-metadata-1.3.2.tgz";
+        sha512 = "odT8UNrlVJrtWKwNbSTrs2exddXfNLP4Ee24eoXKYsRXgbfXI97FbqOMPzGRVnXEeFI0iXQ3ZMdaJHow4yLljg==";
       };
     };
-    "@ot-builder/io-bin-metric-1.3.1" = {
+    "@ot-builder/io-bin-metric-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-metric";
       packageName = "@ot-builder/io-bin-metric";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-metric/-/io-bin-metric-1.3.1.tgz";
-        sha512 = "vq6y9K8vUIfQ3EHYZeQ2e6T1UTznFPNDo/tkAK9lmwC0QhEBAIt/qIR8ntXd6I5gvDJt9JcO3GtsvD4nJW3/fA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-metric/-/io-bin-metric-1.3.2.tgz";
+        sha512 = "sstjrdY6Qi16idjlnwALy6bXy8QuOSIcOE5hiQeEJ3NJWgLvPcc7LIPXvwEPhv5IeyZ+ClLFn9n5cFAq3gfUdw==";
       };
     };
-    "@ot-builder/io-bin-name-1.3.1" = {
+    "@ot-builder/io-bin-name-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-name";
       packageName = "@ot-builder/io-bin-name";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-name/-/io-bin-name-1.3.1.tgz";
-        sha512 = "rzbZoPm4Wxk6nLdeipRhZHgSOjP0WDMEZCTYsFsL8ttlthtwSWH1/FVGe3z0yxgL3W9MVtTRWZNyiaT3/DOKrA==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-name/-/io-bin-name-1.3.2.tgz";
+        sha512 = "JxRB5fg78m7M4GS6uuriu1dPIeLHPqzwKJFmBZH9FStULBUtU5dc5/HaIJJg4ozIukRHyXIwnmsGZO1XsHq3VA==";
       };
     };
-    "@ot-builder/io-bin-sfnt-1.3.1" = {
+    "@ot-builder/io-bin-sfnt-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-sfnt";
       packageName = "@ot-builder/io-bin-sfnt";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-sfnt/-/io-bin-sfnt-1.3.1.tgz";
-        sha512 = "CzGr3sd3hmC66+gMDslBSwAvBjsqoJ/I8LIzz/YbCLOulC1dNKMqfkTHD9kmK26OYTD3ZlPn0f19vXwtkZ70AQ==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-sfnt/-/io-bin-sfnt-1.3.2.tgz";
+        sha512 = "6wKIR+gABvsJOL94IehuwUbVMDcSokoAv1mXI6IFVhKmdd/ev2PM7KWP3SGSJXV8Kr1QTDFORthLH4D8YFLIYA==";
       };
     };
-    "@ot-builder/io-bin-ttf-1.3.1" = {
+    "@ot-builder/io-bin-ttf-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-ttf";
       packageName = "@ot-builder/io-bin-ttf";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-ttf/-/io-bin-ttf-1.3.1.tgz";
-        sha512 = "kVLoeI4l14gMR3uMiNVpP/MN0VXxR/rUyMZGKKALq1DmwjKUdIb0drbXOUXUw4lNnkc4jq/82wM+vyVIkPS9zw==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-ttf/-/io-bin-ttf-1.3.2.tgz";
+        sha512 = "ILIs2vFdV9O14SoMMWkXikLgsSqt5sUP9EBJqdHCTv0iVaXT6SFjAWCH8EFMEMKvvaKn4Iarimty9Z+kO7DZDQ==";
       };
     };
-    "@ot-builder/io-bin-vtt-private-1.3.1" = {
+    "@ot-builder/io-bin-vtt-private-1.3.2" = {
       name = "_at_ot-builder_slash_io-bin-vtt-private";
       packageName = "@ot-builder/io-bin-vtt-private";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/io-bin-vtt-private/-/io-bin-vtt-private-1.3.1.tgz";
-        sha512 = "mkh/lYFJWM9bm5wA5xiH0AXG1imWsDJR5/7Diwyq0C0lurzwNfGeDlCMG3TPc+NRA598dWX9rHkYu/v8pVkgBg==";
+        url = "https://registry.npmjs.org/@ot-builder/io-bin-vtt-private/-/io-bin-vtt-private-1.3.2.tgz";
+        sha512 = "tHUcaCoCFXexp1AHGVW5uXO1NIKhqKMJEcx6Rp0s82CaVUSaORp362MYUPVcGoLylbQfBsR1c1CpLwrmzB8VoQ==";
       };
     };
-    "@ot-builder/ot-1.3.1" = {
+    "@ot-builder/ot-1.3.2" = {
       name = "_at_ot-builder_slash_ot";
       packageName = "@ot-builder/ot";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot/-/ot-1.3.1.tgz";
-        sha512 = "kdWupASaMG2AbBl9c9+QQ/mFKaNu+oTCUVfAvBIjf370Q+oR5A0Ri+4MqVRB5Aspls250l6WoNMElaceL1QjNw==";
+        url = "https://registry.npmjs.org/@ot-builder/ot/-/ot-1.3.2.tgz";
+        sha512 = "+AqSS8xW+OxlsMT5NFztGNfVCzl/dWazJYTk1JHcMK0xajJnTIrORr/rPvdbKR4iNzGbEi8R++MnGhhllBAO+w==";
       };
     };
-    "@ot-builder/ot-encoding-1.3.1" = {
+    "@ot-builder/ot-encoding-1.3.2" = {
       name = "_at_ot-builder_slash_ot-encoding";
       packageName = "@ot-builder/ot-encoding";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-encoding/-/ot-encoding-1.3.1.tgz";
-        sha512 = "oQ8chRnkdnYZh+s9w+ToLkjNUtqxUma3uLY7a6AdFsV91YugIr5kAFTIokBp7Mo4mqdWcE93HooAryaEulPEJg==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-encoding/-/ot-encoding-1.3.2.tgz";
+        sha512 = "x7AiuYe6r0uyvuw52/dWvfG6fj47v+nnQrvswOr2lOniZMhhRPRbek5y7dWCuabmRFdxmZKClK3PEgmNbVWJQQ==";
       };
     };
-    "@ot-builder/ot-ext-private-1.3.1" = {
+    "@ot-builder/ot-ext-private-1.3.2" = {
       name = "_at_ot-builder_slash_ot-ext-private";
       packageName = "@ot-builder/ot-ext-private";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-ext-private/-/ot-ext-private-1.3.1.tgz";
-        sha512 = "ZIkGHqGu4+flRAntXgdHVApVbBVvzjI0nyRr+31/JVvC4h1ZLO+okBnCfTvUcGsfqRwSE1p4htWpKEWf+0AK3A==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-ext-private/-/ot-ext-private-1.3.2.tgz";
+        sha512 = "IbZNrhXBw5AgbVoUahkDxxpuBDhpstadKdfVS8IcAZHhVyyqOD4+gkAQDfIxqNOMaCXi73dLAcQwNofF63/08w==";
       };
     };
-    "@ot-builder/ot-glyphs-1.3.1" = {
+    "@ot-builder/ot-glyphs-1.3.2" = {
       name = "_at_ot-builder_slash_ot-glyphs";
       packageName = "@ot-builder/ot-glyphs";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-glyphs/-/ot-glyphs-1.3.1.tgz";
-        sha512 = "1/I5qFAeVMh2G9XlYplgmQGHZIvlm+wI51RyCyUiISCtk7LLYtfwD5iw3BvG20FhVH5VMlkdsmDrqDjENuSnSQ==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-glyphs/-/ot-glyphs-1.3.2.tgz";
+        sha512 = "lmt3fSv4bR9xnQKVHz+B9VNnFwVCIlSXyecEhEJqCzQ5UFt3dBHgh8l29n6Yg7FL84m/wB+0vxLdLmGeRvZYeQ==";
       };
     };
-    "@ot-builder/ot-layout-1.3.1" = {
+    "@ot-builder/ot-layout-1.3.2" = {
       name = "_at_ot-builder_slash_ot-layout";
       packageName = "@ot-builder/ot-layout";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-layout/-/ot-layout-1.3.1.tgz";
-        sha512 = "70U5lSA0rzq+1KfUZxrKIUG+PI6reH/5hXRG+4y57vypsV2DDfuCgDAfGxwRo6yyi/2+RLQfqm35oRVQbqjFnw==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-layout/-/ot-layout-1.3.2.tgz";
+        sha512 = "tSdTZtExUmNRiksf6HTzHi8q3i+BazW0O9NANvK5OLroEDcHXn/2DKq4e9DNsuEjDrGLZR4vvAQ9Dx4bhvYSHg==";
       };
     };
-    "@ot-builder/ot-metadata-1.3.1" = {
+    "@ot-builder/ot-metadata-1.3.2" = {
       name = "_at_ot-builder_slash_ot-metadata";
       packageName = "@ot-builder/ot-metadata";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-metadata/-/ot-metadata-1.3.1.tgz";
-        sha512 = "XIkF8N3YgI7aAfLzJpQUPuhCBRlf6sb6q3vME+xcaZsvv4dsT24Zi11ICQW/dxTcQDA2h8Rj7OnFg2O2I7JDzw==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-metadata/-/ot-metadata-1.3.2.tgz";
+        sha512 = "JIX3zX9t3B81OTSZC39Irt9Oia8U4kMRPs4qAusGeGkxyRgVsDcHrnQjxECj/b/RPJbtVzGUxK7o+rEkUaw7Qg==";
       };
     };
-    "@ot-builder/ot-name-1.3.1" = {
+    "@ot-builder/ot-name-1.3.2" = {
       name = "_at_ot-builder_slash_ot-name";
       packageName = "@ot-builder/ot-name";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-name/-/ot-name-1.3.1.tgz";
-        sha512 = "CPbbNSgiy1YohipP638AEzrCGxZn8HOYtR17VIUbGE4DTToaFgGNbzuXnHxo2Gujvsk3PvFTC4Yu6VjYg3R8vw==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-name/-/ot-name-1.3.2.tgz";
+        sha512 = "ecqgZx589wI2YejSUMdxssoguq9CTw4Lymb3cyhdoxXxDP7Y55l2ycOU7HXAfbzwSEWYEh4wDO/y+NL0iV5d2A==";
       };
     };
-    "@ot-builder/ot-sfnt-1.3.1" = {
+    "@ot-builder/ot-sfnt-1.3.2" = {
       name = "_at_ot-builder_slash_ot-sfnt";
       packageName = "@ot-builder/ot-sfnt";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-sfnt/-/ot-sfnt-1.3.1.tgz";
-        sha512 = "RxzBnK3S1Lh+fWW23jLss22S5hH8RBIpQTgbujR5B2DgoXvcawGlIFjNiI18YOuApJySicEnCzbV3rnVY3u4sA==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-sfnt/-/ot-sfnt-1.3.2.tgz";
+        sha512 = "nXZzF4nRGH60J1rVW9ljAlLJavYH0Bp+6L3r0gQvmtLspO3w2s7dYSM1fSfkH2wCG6FqAf8C7TIUgqOS5QyzBQ==";
       };
     };
-    "@ot-builder/ot-standard-glyph-namer-1.3.1" = {
+    "@ot-builder/ot-standard-glyph-namer-1.3.2" = {
       name = "_at_ot-builder_slash_ot-standard-glyph-namer";
       packageName = "@ot-builder/ot-standard-glyph-namer";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-standard-glyph-namer/-/ot-standard-glyph-namer-1.3.1.tgz";
-        sha512 = "QgcdlBV/G5Faf17OTjTcv5QcHhvwI2UE2YU+LmZbruozsloBR3hodliovS9iOUL5oRjolSce8Yk4hKd5zhcldg==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-standard-glyph-namer/-/ot-standard-glyph-namer-1.3.2.tgz";
+        sha512 = "A3Kg35P7pThuEz6eFSAtNbZEvHMferWcs4O4jWUetBqaV6ZbOZ504hVOPVJT7WaT2iS7X4sd0BKNRJLXCwqCbA==";
       };
     };
-    "@ot-builder/ot-vtt-private-1.3.1" = {
+    "@ot-builder/ot-vtt-private-1.3.2" = {
       name = "_at_ot-builder_slash_ot-vtt-private";
       packageName = "@ot-builder/ot-vtt-private";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/ot-vtt-private/-/ot-vtt-private-1.3.1.tgz";
-        sha512 = "JbWU6WMzvjL9XRZNE2hzqC1DlunOMZy7fzW0YXcCmIfc8++gn2KaIZJ9PVjpoEXpILTPY+QtIr1R2x8Apjn2qg==";
+        url = "https://registry.npmjs.org/@ot-builder/ot-vtt-private/-/ot-vtt-private-1.3.2.tgz";
+        sha512 = "ny7u9ZalS6I3tzr8EKDVHLBe8gcBb02GruqFCzhx20115F7Gtk165PqqJTKH5yi2nAh2e92WallUOE7ouB11TQ==";
       };
     };
-    "@ot-builder/prelude-1.3.1" = {
+    "@ot-builder/prelude-1.3.2" = {
       name = "_at_ot-builder_slash_prelude";
       packageName = "@ot-builder/prelude";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/prelude/-/prelude-1.3.1.tgz";
-        sha512 = "uF0nQ9wIzlZ8zxrLqqU3vHPnDxMxzGsdmJrFY1AhtRsc4W8zJg5aPMC+Lpf1eIXVnAJUpolOLIILapNs+UMs1Q==";
+        url = "https://registry.npmjs.org/@ot-builder/prelude/-/prelude-1.3.2.tgz";
+        sha512 = "zDr5gEaBC47gaBsIvz46M52pIUDzPmH4nEwKYmtOQDklR+6A37/2SUOeKMBB1FCPCutyWgSWdwdiUm5wSi77lQ==";
       };
     };
-    "@ot-builder/primitive-1.3.1" = {
+    "@ot-builder/primitive-1.3.2" = {
       name = "_at_ot-builder_slash_primitive";
       packageName = "@ot-builder/primitive";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/primitive/-/primitive-1.3.1.tgz";
-        sha512 = "ZH/nn4MpX2OSvbbb0Ag0F/23EwiA3vtmFcoVUV5ouip47mZyx0Uc4s/YWjKlD1B5wjQl2s2Aa+bgswO1DiMefw==";
+        url = "https://registry.npmjs.org/@ot-builder/primitive/-/primitive-1.3.2.tgz";
+        sha512 = "hoIWTUac1//Uglj78S2w24mMB0wgMoyOZV1h0tpIaisnN2A/rhId6lOLUskn3em8j9+VcvRyIxmIvoVhDKi6mQ==";
       };
     };
-    "@ot-builder/rectify-1.3.1" = {
+    "@ot-builder/rectify-1.3.2" = {
       name = "_at_ot-builder_slash_rectify";
       packageName = "@ot-builder/rectify";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/rectify/-/rectify-1.3.1.tgz";
-        sha512 = "VlBwTQq4magiorU4DAWSZc+Ee4JzfNoUHoC1tIc62Qa0sEE0q3cTIwX8gwr7Gb/AIB7gYra6b0GzNymzOtFTow==";
+        url = "https://registry.npmjs.org/@ot-builder/rectify/-/rectify-1.3.2.tgz";
+        sha512 = "3wZy4fMSHELSaAyi/1ONQ6OLMozLvQjmyPxTkSIPlq6JbUQEOEhwTF+DgqDh6kZixaXeP/Dd/4azhDL0hbsocQ==";
       };
     };
-    "@ot-builder/stat-glyphs-1.3.1" = {
+    "@ot-builder/stat-glyphs-1.3.2" = {
       name = "_at_ot-builder_slash_stat-glyphs";
       packageName = "@ot-builder/stat-glyphs";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/stat-glyphs/-/stat-glyphs-1.3.1.tgz";
-        sha512 = "pRMLK4PFhJan4FJgTYnWXdvgDAprwHN18TGZvmoij0fwEtbGbptG639fT0NsdlOOn0U+FSanVU+pHAqvibyHIw==";
+        url = "https://registry.npmjs.org/@ot-builder/stat-glyphs/-/stat-glyphs-1.3.2.tgz";
+        sha512 = "2F3qwwAzYZcwjmRVUOC9KS7mTB0R+76ZtGoYS28kBz/WHVOduvsxr8xiUwYM/0PAZttWA1eB/CwFjZ2WhQEDAg==";
       };
     };
-    "@ot-builder/trace-1.3.1" = {
+    "@ot-builder/trace-1.3.2" = {
       name = "_at_ot-builder_slash_trace";
       packageName = "@ot-builder/trace";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/trace/-/trace-1.3.1.tgz";
-        sha512 = "N3DO0OPkZFlqhj0ncjiZCLym+wsr5AuN1k+Se5lOfad2fwzuWi/eWbSxrgFcd4ENfhFj5p+f2P5plygQEFWGQA==";
+        url = "https://registry.npmjs.org/@ot-builder/trace/-/trace-1.3.2.tgz";
+        sha512 = "TGjyWSo64Cv0pwZtiLba65qz3BZrS2fshQTnBPWa42CWVoC9wpvF+rMQarvdksJH5UZGkgXRXfdT6rXumo9D7Q==";
       };
     };
-    "@ot-builder/var-store-1.3.1" = {
+    "@ot-builder/var-store-1.3.2" = {
       name = "_at_ot-builder_slash_var-store";
       packageName = "@ot-builder/var-store";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/var-store/-/var-store-1.3.1.tgz";
-        sha512 = "8/OfcmSoMyOojFGFdRJXMeFDs2MbWQkeq3mMIOReMJ4Eai0tM5mv/Iz+ml9P1soCb6H5vHJGHPvz2jSVH/k0xA==";
+        url = "https://registry.npmjs.org/@ot-builder/var-store/-/var-store-1.3.2.tgz";
+        sha512 = "RbCBl+7xCYFgR1bvvDmD7rMU/8J5oESiHWGtx0y1KfykHP4AGElH0ZcocXE/fx8s4Q/s6oXlulojKEWt0r7GfA==";
       };
     };
-    "@ot-builder/variance-1.3.1" = {
+    "@ot-builder/variance-1.3.2" = {
       name = "_at_ot-builder_slash_variance";
       packageName = "@ot-builder/variance";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@ot-builder/variance/-/variance-1.3.1.tgz";
-        sha512 = "b/XIQjy72e0R0v1OQVzEVDfX/tt+L7toVpborgqbWEW+Cl43ZlBFXBgQQ/8FkWSWkbrNjNrVuI36WkvvIJDbzA==";
+        url = "https://registry.npmjs.org/@ot-builder/variance/-/variance-1.3.2.tgz";
+        sha512 = "DEC1r6TZTuhhmzz+j5/rEULkOIgtH1NWVVoo7jff4BPK879hHY56hU5mhcnkvTX9BZ02rHQcYu3ka7ddZ80ZJQ==";
       };
     };
     "@parcel/fs-1.11.0" = {
@@ -5476,13 +5557,40 @@ let
         sha512 = "I/gRlM2meKPKXFN/1fxLoigPXvAUsivxRCih7vgeO7o4qrNNsl6Ah85l3UBbFi0t7ttjMde2+bS1A32a1Hu0BA==";
       };
     };
-    "@prisma/engines-3.4.1-2.57771c0558568c7d08bd34c7248af5244ae16bd9" = {
+    "@prisma/debug-3.5.0" = {
+      name = "_at_prisma_slash_debug";
+      packageName = "@prisma/debug";
+      version = "3.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@prisma/debug/-/debug-3.5.0.tgz";
+        sha512 = "JWBmzqxtbq6rJfMyIIQVL/QSAIsiCOp20ArTl5zUHtSYH/MrNmuQ69YAn9RuUQBOTIAQaVTIMII2xpN5kB5RRg==";
+      };
+    };
+    "@prisma/engines-3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727" = {
       name = "_at_prisma_slash_engines";
       packageName = "@prisma/engines";
-      version = "3.4.1-2.57771c0558568c7d08bd34c7248af5244ae16bd9";
+      version = "3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/engines/-/engines-3.4.1-2.57771c0558568c7d08bd34c7248af5244ae16bd9.tgz";
-        sha512 = "NO4Q88k3CfUpYzfpDD+0wSVCqhaeljCFAGSe1XyvmXAOlMU2AAjCwmRn6S4UXlT9yEGB/LwFjdvGjcgfUQ+Mtw==";
+        url = "https://registry.npmjs.org/@prisma/engines/-/engines-3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727.tgz";
+        sha512 = "dRClHS7DsTVchDKzeG72OaEyeDskCv91pnZ72Fftn0mp4BkUvX2LvWup65hCNzwwQm5IDd6A88APldKDnMiEMA==";
+      };
+    };
+    "@prisma/get-platform-3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727" = {
+      name = "_at_prisma_slash_get-platform";
+      packageName = "@prisma/get-platform";
+      version = "3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727.tgz";
+        sha512 = "zvlddqvNU5rXnjTeT+0DOyMwH9E8NwV1a1F3tYN6lNWAjpWx26nGDGkIOO5Nid5mIjz+SDz5VM2NEZ+HXgDuMQ==";
+      };
+    };
+    "@prisma/prisma-fmt-wasm-3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727" = {
+      name = "_at_prisma_slash_prisma-fmt-wasm";
+      packageName = "@prisma/prisma-fmt-wasm";
+      version = "3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@prisma/prisma-fmt-wasm/-/prisma-fmt-wasm-3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727.tgz";
+        sha512 = "Nt4A2SZ4MASAliZ9OaXCYG1xr80lEcJABliUAi/tvzCU8r5W3V4Tp5XDqchxuN/w71XY/s+OaWce7PHnoMGpkA==";
       };
     };
     "@protobufjs/aspromise-1.1.2" = {
@@ -5638,13 +5746,13 @@ let
         sha512 = "y9qNj0//tZtWB2jfXNK3BX18BSBp9zNR7KE7lMysVHwbZtY392OJCjm6Rb/h4UHH2r1AqjNEHFD6bRn+DqU9Mw==";
       };
     };
-    "@redocly/openapi-core-1.0.0-beta.68" = {
+    "@redocly/openapi-core-1.0.0-beta.73" = {
       name = "_at_redocly_slash_openapi-core";
       packageName = "@redocly/openapi-core";
-      version = "1.0.0-beta.68";
+      version = "1.0.0-beta.73";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.68.tgz";
-        sha512 = "ocvDC13Fr8USbBlBUgl8wQlRFBCNEqz6gVTNlQ8IFOglCKxmOeu4JqnFENNGow3ycKTl35c891clfCw1vPyPcQ==";
+        url = "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.73.tgz";
+        sha512 = "1wmKGJp+lvhNFDEfTzjB6QlyEPNyozSiDb4sfr+R97pcGa+6YdSmgItPl5P/21Y0fBZYku9Uo1n0rhFVdr20EQ==";
       };
     };
     "@redocly/react-dropdown-aria-2.0.12" = {
@@ -5683,13 +5791,13 @@ let
         sha512 = "c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==";
       };
     };
-    "@schematics/angular-13.0.2" = {
+    "@schematics/angular-13.1.2" = {
       name = "_at_schematics_slash_angular";
       packageName = "@schematics/angular";
-      version = "13.0.2";
+      version = "13.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/angular/-/angular-13.0.2.tgz";
-        sha512 = "qdzgd/CT6Y3U/98f/n66pnIMY5RuLW7WAmz+KQiuqaLgYWZNUbqYtAoxFI5ABTSKQoZSjjfescWL2R3XN9g3Xw==";
+        url = "https://registry.npmjs.org/@schematics/angular/-/angular-13.1.2.tgz";
+        sha512 = "OMbuOsnzUFjIGeo99NYwIPwjX6udJAiT5Sj5K7QZZYj66HuAqNBMV57J8GPA56edx5mOHZZApWMjXLlOxRXbJA==";
       };
     };
     "@segment/loosely-validate-event-2.0.0" = {
@@ -5719,13 +5827,13 @@ let
         sha512 = "lOUyRopNTKJYVEU9T6stp2irwlTDsYMmUKBOUjnMcwGveuUfIJqrCOtFLtIPPj3XJlbZy5F68l4KP9rZ8Ipang==";
       };
     };
-    "@serverless/components-3.18.0" = {
+    "@serverless/components-3.18.1" = {
       name = "_at_serverless_slash_components";
       packageName = "@serverless/components";
-      version = "3.18.0";
+      version = "3.18.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/components/-/components-3.18.0.tgz";
-        sha512 = "/mg+A9HACedGD3qJ0MxepmmBwFi3hwUYFNEDJi7Z63pkHvXg+jLEeHtbAx2HdqxY1SHH/LtRzZR4GBcFCaY+Og==";
+        url = "https://registry.npmjs.org/@serverless/components/-/components-3.18.1.tgz";
+        sha512 = "36XSYHjPkSEiSwWkl/xwWgYXa32Fk1CAbHvtWGheCtKV4+I3Yxzhe7FbgR84O0FeGQ/qM3QI8i5vtPUxeDeB9g==";
       };
     };
     "@serverless/core-1.1.2" = {
@@ -5764,13 +5872,13 @@ let
         sha512 = "q2CMqCkKeBaKA/UwfJAZLkdUsbghSbiYPvAX4rl9rsR5APm4KWtjKQP9CTOtVO5JRMWYoysK6jF0d5VJOABRzQ==";
       };
     };
-    "@serverless/platform-client-china-2.3.2" = {
+    "@serverless/platform-client-china-2.3.3" = {
       name = "_at_serverless_slash_platform-client-china";
       packageName = "@serverless/platform-client-china";
-      version = "2.3.2";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/platform-client-china/-/platform-client-china-2.3.2.tgz";
-        sha512 = "ZeB64IKuvFnuwwFHAJHEl0ZsJ6QPgGPUjfa8KEzIIn2kZ4lXpESJ+YKvo5PFn4jS+eZajbGrQZ4wCWdEFcuS3w==";
+        url = "https://registry.npmjs.org/@serverless/platform-client-china/-/platform-client-china-2.3.3.tgz";
+        sha512 = "qlw6HA/ooo0h5o4ihLDGKUQKY5xnSpS/0mvv/ZQvmk3atQnDCfuRYUM+3UEPcST1iTObxw3GoKdCUO2oOqb2Lg==";
       };
     };
     "@serverless/template-1.1.4" = {
@@ -5818,13 +5926,13 @@ let
         sha512 = "8s73M1k+mST7Z/Rp8wgmZh50tjpwX+fqsbYYRuFGgyuWTvgqAlUflDOWAeQuDx4pEndWEqjbG09ZrZNqlHuZqQ==";
       };
     };
-    "@sideway/address-4.1.2" = {
+    "@sideway/address-4.1.3" = {
       name = "_at_sideway_slash_address";
       packageName = "@sideway/address";
-      version = "4.1.2";
+      version = "4.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sideway/address/-/address-4.1.2.tgz";
-        sha512 = "idTz8ibqWFrPU8kMirL0CoPH/A29XOzzAzpyN3zQ4kAWnzmNfFmRaoMNN6VI8ske5M73HZyhIaW4OuSFIdM4oA==";
+        url = "https://registry.npmjs.org/@sideway/address/-/address-4.1.3.tgz";
+        sha512 = "8ncEUtmnTsMmL7z1YPB47kPUq7LpKWJNFPsRzHiIajGC5uXlWGn+AmkYPcHNl8S4tcEGx+cnORnNYaw2wvL+LQ==";
       };
     };
     "@sideway/formula-3.0.0" = {
@@ -5890,15 +5998,6 @@ let
         sha512 = "/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==";
       };
     };
-    "@sindresorhus/is-3.1.2" = {
-      name = "_at_sindresorhus_slash_is";
-      packageName = "@sindresorhus/is";
-      version = "3.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz";
-        sha512 = "JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ==";
-      };
-    };
     "@sindresorhus/is-4.2.0" = {
       name = "_at_sindresorhus_slash_is";
       packageName = "@sindresorhus/is";
@@ -5917,33 +6016,6 @@ let
         sha512 = "ikwHOfJF0umx1eV/JpQDMsFxODvCSdD9zdIQVDEjcTNpfofz7+PZrjfKUFkG3iQ9mSUG3BwODv0XOEvTRNdovw==";
       };
     };
-    "@skorfmann/ink-confirm-input-3.0.0" = {
-      name = "_at_skorfmann_slash_ink-confirm-input";
-      packageName = "@skorfmann/ink-confirm-input";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@skorfmann/ink-confirm-input/-/ink-confirm-input-3.0.0.tgz";
-        sha512 = "mPZe3gBAV4ZDeYZbEs6WpNZuHHj7Hse9p44z6lrKBcbAMWnvApVOC7zZUpeQsUuWPTOWQRu/QSYElDKNajQ2oA==";
-      };
-    };
-    "@skorfmann/jsii-srcmak-0.1.374" = {
-      name = "_at_skorfmann_slash_jsii-srcmak";
-      packageName = "@skorfmann/jsii-srcmak";
-      version = "0.1.374";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@skorfmann/jsii-srcmak/-/jsii-srcmak-0.1.374.tgz";
-        sha512 = "laXjQBxKD/592o4GXQVpGwR66Hdi0o4jn5lOl3ff3Mk3NnTQmeMYWeQYfk+CI5fJPkipy/brnqtxk3IoFjr2TA==";
-      };
-    };
-    "@skorfmann/terraform-cloud-1.10.1" = {
-      name = "_at_skorfmann_slash_terraform-cloud";
-      packageName = "@skorfmann/terraform-cloud";
-      version = "1.10.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@skorfmann/terraform-cloud/-/terraform-cloud-1.10.1.tgz";
-        sha512 = "yQpxfH1VbwIcsyRQ8eN8qLJ76pZ4CQ1Ck1SmFtiKE7J790KFwC8o2r1dlTU130M/bv1eb/8gdPY1T3DLj40D8w==";
-      };
-    };
     "@slack/client-3.16.0" = {
       name = "_at_slack_slash_client";
       packageName = "@slack/client";
@@ -6106,13 +6178,13 @@ let
         sha512 = "AmyMQndtxMsM59eDeA0gGiw8T2LzNvDhx/xl+ygFXXrsw+yb/mit73ndHkiHKcRA1EpNHTyD1PN9ATxghzplfg==";
       };
     };
-    "@textlint/ast-node-types-12.0.0" = {
+    "@textlint/ast-node-types-12.1.0" = {
       name = "_at_textlint_slash_ast-node-types";
       packageName = "@textlint/ast-node-types";
-      version = "12.0.0";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.0.0.tgz";
-        sha512 = "qUjmlpz1vR3AStBA9RPDCVT0/pGtePvBJ5Vb/0PzTrnr04iFktG6P6B1VOmgTh8J9Kl/FonQFo3A9M1Q3UH+JA==";
+        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-12.1.0.tgz";
+        sha512 = "UlxqemrV/EnGTCl26OU7JhtFJpH7NZdgXvnsuII604orcIkvywUA1GGlg51grfbfqi+ar4zRsOb6fVbcbMZnKA==";
       };
     };
     "@textlint/ast-node-types-4.4.3" = {
@@ -6124,67 +6196,67 @@ let
         sha512 = "qi2jjgO6Tn3KNPGnm6B7p6QTEPvY95NFsIAaJuwbulur8iJUEenp1OnoUfiDaC/g2WPPEFkcfXpmnu8XEMFo2A==";
       };
     };
-    "@textlint/ast-tester-12.0.2" = {
+    "@textlint/ast-tester-12.1.0" = {
       name = "_at_textlint_slash_ast-tester";
       packageName = "@textlint/ast-tester";
-      version = "12.0.2";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.0.2.tgz";
-        sha512 = "kHta27+SJC0YxEyEdlNux6m2JepX920gc5x98lVBVYK6Wq6cAF67EEGl1o9ynqroIHEc3wTSEDOFwxXpnlfsNA==";
+        url = "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-12.1.0.tgz";
+        sha512 = "s3VHRDaULFYhxjJ3vP9LUIt2aHLnUB4XFUSRhUVnW4/GDOb1EXCGWFd+wtYy6jTtBg/5TR5ApdC6sNu/SLcb5w==";
       };
     };
-    "@textlint/ast-traverse-12.0.2" = {
+    "@textlint/ast-traverse-12.1.0" = {
       name = "_at_textlint_slash_ast-traverse";
       packageName = "@textlint/ast-traverse";
-      version = "12.0.2";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.0.2.tgz";
-        sha512 = "OrbGnwtqNAsX7jVSRKecc1Lp2tg54ntnTuvOHkYrZrlC72Hk7+7V/UFQBmFNQCe0cH6Tjb5FFFcgp6f8gM+ehw==";
+        url = "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-12.1.0.tgz";
+        sha512 = "NJCCMS7lxZ6Ed15zsosbe/5i/SyynqQsxOYxhsMHuyU/adx27WzNWLoFbgTdz6Wmn3Ok1PSFf0442MpoS6SP7g==";
       };
     };
-    "@textlint/feature-flag-12.0.2" = {
+    "@textlint/feature-flag-12.1.0" = {
       name = "_at_textlint_slash_feature-flag";
       packageName = "@textlint/feature-flag";
-      version = "12.0.2";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.0.2.tgz";
-        sha512 = "yNq5uErjFrVq1gghg3A8D77+E36wLXRws5LwSsoRC4LVPIGR+LYZ9BlkoyNTas8dOzGwTs6XZIcWCIWXy77M8Q==";
+        url = "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-12.1.0.tgz";
+        sha512 = "pQfA2bUXimBQjxT5hVmGGuFf1Cwwx26kbrcwkGHsgxgXlXkg1zboby5UCMOjWda/TbJjynzqDO0JaU24Ms9fZg==";
       };
     };
-    "@textlint/fixer-formatter-12.0.2" = {
+    "@textlint/fixer-formatter-12.1.0" = {
       name = "_at_textlint_slash_fixer-formatter";
       packageName = "@textlint/fixer-formatter";
-      version = "12.0.2";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.0.2.tgz";
-        sha512 = "ii49bDLVcgnnxmnaZFX0rDFEIGH3o6DGKnr76cfqy6+DWkGQlhBPyRdbx2bIF65KT+7nAMU0JjfEK+n/WIYFTA==";
+        url = "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-12.1.0.tgz";
+        sha512 = "ELG9ehkid+J0sRd0mVRbZ+2UOnLqowycrYsaHxDE+xf2s33OcogZa9i3Uact7y2oSCadX00oNLEhsQcwkAqvpw==";
       };
     };
-    "@textlint/kernel-12.0.2" = {
+    "@textlint/kernel-12.1.0" = {
       name = "_at_textlint_slash_kernel";
       packageName = "@textlint/kernel";
-      version = "12.0.2";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.0.2.tgz";
-        sha512 = "IVWC5xyHj58X3/sUXAOndOPMQMkvGaXXPCtLITm8rSwKRc4D/qF2hhwAisOu8XImIwBGzvhFlq+IM7cUW1qDtA==";
+        url = "https://registry.npmjs.org/@textlint/kernel/-/kernel-12.1.0.tgz";
+        sha512 = "6crFn0Ng4Y8PnUvD8HdGMZUlxURx3YgbDv/Grp+7kg8qLlNAkvbyJ1cE8ZYJTF+PfJ1dK1FZmmlZsvrieI4KBQ==";
       };
     };
-    "@textlint/linter-formatter-12.0.2" = {
+    "@textlint/linter-formatter-12.1.0" = {
       name = "_at_textlint_slash_linter-formatter";
       packageName = "@textlint/linter-formatter";
-      version = "12.0.2";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.0.2.tgz";
-        sha512 = "xRTkLmMUnxW5Y6UXsIc9iLo8hyj5toYXVA/u5ABO4t3QObgtUllWi9W2eauZeY19pLTXweBHYxqG/tl3jTCpJQ==";
+        url = "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-12.1.0.tgz";
+        sha512 = "OoDvn7wD+pAV+W2loCKgxO9V11rYo14GVKkp8UktsqzeOzxxRY5iZUOALMOOde19fOklb2mEvs8AJ4lDaRDJVQ==";
       };
     };
-    "@textlint/markdown-to-ast-12.0.2" = {
+    "@textlint/markdown-to-ast-12.1.0" = {
       name = "_at_textlint_slash_markdown-to-ast";
       packageName = "@textlint/markdown-to-ast";
-      version = "12.0.2";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.0.2.tgz";
-        sha512 = "xAJ4U/fOL7FoX4bYeYRCsSIeTxFqzKd944AsVxAYrz2ZfKH0TtBSNDDtN22uBEXOrSCCR12Z7QuMcp+URyYWlw==";
+        url = "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-12.1.0.tgz";
+        sha512 = "22FRiXRxTrNVe1gbE18V8TxAtrWb9rKUb1+2mt5vXdgByZ+rHUJuEc4UonAiye/8+0eTrJ4brjPNXgYsJGeMKg==";
       };
     };
     "@textlint/markdown-to-ast-6.1.7" = {
@@ -6196,49 +6268,49 @@ let
         sha512 = "B0QtokeQR4a9+4q0NQr8T9l7A1fFihTN5Ze57tVgqW+3ymzXEouh8DvPHeNQ4T6jEkAThvdjk95mxAMpGRJ79w==";
       };
     };
-    "@textlint/module-interop-12.0.2" = {
+    "@textlint/module-interop-12.1.0" = {
       name = "_at_textlint_slash_module-interop";
       packageName = "@textlint/module-interop";
-      version = "12.0.2";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.0.2.tgz";
-        sha512 = "jnFx7B7Q/au49n5Kt/ttPhecvnJGj7643KzPxRNXy422nmafi1EfOZDMGkNEJhlVsQ9WzAnliTTXTFTrBhtVYA==";
+        url = "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-12.1.0.tgz";
+        sha512 = "J1VhFZ7lK1V3Ue7DCvZlGIFEuaongBCkir1XFL+f1yfhfQlgfM5TCp3OBBB6NhKPff8T6sPA9niBzMYr+NyKyA==";
       };
     };
-    "@textlint/source-code-fixer-12.0.2" = {
+    "@textlint/source-code-fixer-12.1.0" = {
       name = "_at_textlint_slash_source-code-fixer";
       packageName = "@textlint/source-code-fixer";
-      version = "12.0.2";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.0.2.tgz";
-        sha512 = "lWNndH7Z+KGo8NhM4e3I5fR0SfZeS25AW7MRQGsKbxHL8NSi6KmCXVK8unEls82+DKXW4VdjTTgVYTTOVGa3BA==";
+        url = "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-12.1.0.tgz";
+        sha512 = "3HEWCu8XlRpxK0UmUxGEzc4u0deaO0GtisqaEsCVHzlQFq6tzE+5VTdZ4ffon64UN8UV57EAC2ralEV/VgxkBQ==";
       };
     };
-    "@textlint/text-to-ast-12.0.2" = {
+    "@textlint/text-to-ast-12.1.0" = {
       name = "_at_textlint_slash_text-to-ast";
       packageName = "@textlint/text-to-ast";
-      version = "12.0.2";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.0.2.tgz";
-        sha512 = "vgB4k4CpY59XVrcvWLyFkCoMIVpiUheuy2FC1+Qb44hmoEYT26uglX7SEkBRTQvlzsjChgryzA2PFf2c1wkL0Q==";
+        url = "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-12.1.0.tgz";
+        sha512 = "s45+d0E9+gMKz+LC9+sJamU7SVrPyGYsXVLDRM5oxqjdb0MeIfjIFj7xl52MUpAHnywbPSgakB6HHiryiEAmqQ==";
       };
     };
-    "@textlint/textlint-plugin-markdown-12.0.2" = {
+    "@textlint/textlint-plugin-markdown-12.1.0" = {
       name = "_at_textlint_slash_textlint-plugin-markdown";
       packageName = "@textlint/textlint-plugin-markdown";
-      version = "12.0.2";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.0.2.tgz";
-        sha512 = "3qizGxt/cz0foqmUuqpk0hnQzXdDehG0CBrzUINJVa7btpDn8bD9fRYn88OdmGLtejVJR/pUDOOZk3RYYEVmlQ==";
+        url = "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-12.1.0.tgz";
+        sha512 = "bS67fq4Ea2JdKO4mJM4sGSATVI1bw9++IfOIsx2rc01NfZlTxwz4kM8lrhvNFHGY4URaN1kCULSgupeI/u/Seg==";
       };
     };
-    "@textlint/textlint-plugin-text-12.0.2" = {
+    "@textlint/textlint-plugin-text-12.1.0" = {
       name = "_at_textlint_slash_textlint-plugin-text";
       packageName = "@textlint/textlint-plugin-text";
-      version = "12.0.2";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.0.2.tgz";
-        sha512 = "giCTwrioT6bYlOZ+xf/c9ML1GYitQVrtToHzWI6AAs8szg+Q5+h3KCG921sDEGgZfqnljuBaYcHJsW/iNG1+UA==";
+        url = "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-12.1.0.tgz";
+        sha512 = "ItqpVEYLDYQkEk0ixeD4wElqkgkDErAGGDN/QK4cmIvtBeVd/GSIQFS1pwC1/Abmd4dTK3j/9z/dov1gVFZB1Q==";
       };
     };
     "@textlint/types-1.5.5" = {
@@ -6250,22 +6322,22 @@ let
         sha512 = "80P6fcqgsG9bP6JgR6W/E/oIx+71pplaicYCvvB4vMIeGk0OnWls4Q21kCpDYmq/C/ABtZ/Gy/Ov/8ExQPeQ7A==";
       };
     };
-    "@textlint/types-12.0.2" = {
+    "@textlint/types-12.1.0" = {
       name = "_at_textlint_slash_types";
       packageName = "@textlint/types";
-      version = "12.0.2";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/types/-/types-12.0.2.tgz";
-        sha512 = "w5aWSCd1sot1waiYw8KnmJNY1q+k9LDoaA6xjGbBuVBGJl0TLXIZoOP8HYFUcKFfJRpqGGob1geTHiyFdnyS0w==";
+        url = "https://registry.npmjs.org/@textlint/types/-/types-12.1.0.tgz";
+        sha512 = "O8RQUiGnBvBrwV/fLHp2vU+y3w223G+qKUzvW/k2eFwAdbtmCfordoKESXAIGuqAUZjgiM2+Mt3We1pY+tMR3g==";
       };
     };
-    "@textlint/utils-12.0.2" = {
+    "@textlint/utils-12.1.0" = {
       name = "_at_textlint_slash_utils";
       packageName = "@textlint/utils";
-      version = "12.0.2";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/utils/-/utils-12.0.2.tgz";
-        sha512 = "IYmibhDMWd8EmRvk8ii9AA/ecrZk5Wj5NNcKuB78+ae2PIVI1zWzQoieSvQyX7DLPRVH4S22RORiEpruRcDzng==";
+        url = "https://registry.npmjs.org/@textlint/utils/-/utils-12.1.0.tgz";
+        sha512 = "WE0bxQ/q+PgSslqEBuDi4Z8ZskBA0ZEehmKqcsd0hpDWU4VRU/R9o/WVXwia0APbQxgXPYWaHf1Rb7FAKUcVcg==";
       };
     };
     "@tokenizer/token-0.1.1" = {
@@ -6331,6 +6403,15 @@ let
         sha512 = "L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==";
       };
     };
+    "@ts-morph/common-0.11.1" = {
+      name = "_at_ts-morph_slash_common";
+      packageName = "@ts-morph/common";
+      version = "0.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@ts-morph/common/-/common-0.11.1.tgz";
+        sha512 = "7hWZS0NRpEsNV8vWJzg7FEz6V8MaLNeJOmwmghqUXTpzk16V1LLZhdo+4QvE/+zv4cVci0OviuJFnqhEfoV3+g==";
+      };
+    };
     "@turist/fetch-7.1.7" = {
       name = "_at_turist_slash_fetch";
       packageName = "@turist/fetch";
@@ -6394,13 +6475,13 @@ let
         sha512 = "pkPtJUUY+Vwv6B1inAz55rQvivClHJxc9aVEPPmaq2cbyeMLCiDpbKpcKyX4LAwpNGi+SHBv0tHv6+0gXv0P2A==";
       };
     };
-    "@types/babel__core-7.1.16" = {
+    "@types/babel__core-7.1.17" = {
       name = "_at_types_slash_babel__core";
       packageName = "@types/babel__core";
-      version = "7.1.16";
+      version = "7.1.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz";
-        sha512 = "EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==";
+        url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.17.tgz";
+        sha512 = "6zzkezS9QEIL8yCBvXWxPTJPNuMeECJVxSOhxNY/jfq9LxOTHivaYTqr37n9LknWWRTIkzqH2UilS5QFvfa90A==";
       };
     };
     "@types/babel__generator-7.6.3" = {
@@ -6466,13 +6547,13 @@ let
         sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==";
       };
     };
-    "@types/body-parser-1.19.1" = {
+    "@types/body-parser-1.19.2" = {
       name = "_at_types_slash_body-parser";
       packageName = "@types/body-parser";
-      version = "1.19.1";
+      version = "1.19.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz";
-        sha512 = "a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==";
+        url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz";
+        sha512 = "ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==";
       };
     };
     "@types/cacheable-request-6.0.2" = {
@@ -6691,13 +6772,22 @@ let
         sha512 = "VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==";
       };
     };
-    "@types/eslint-scope-3.7.1" = {
+    "@types/eslint-8.2.1" = {
+      name = "_at_types_slash_eslint";
+      packageName = "@types/eslint";
+      version = "8.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/eslint/-/eslint-8.2.1.tgz";
+        sha512 = "UP9rzNn/XyGwb5RQ2fok+DzcIRIYwc16qTXse5+Smsy8MOIccCChT15KAwnsgQx4PzJkaMq4myFyZ4CL5TjhIQ==";
+      };
+    };
+    "@types/eslint-scope-3.7.2" = {
       name = "_at_types_slash_eslint-scope";
       packageName = "@types/eslint-scope";
-      version = "3.7.1";
+      version = "3.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz";
-        sha512 = "SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==";
+        url = "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.2.tgz";
+        sha512 = "TzgYCWoPiTeRg6RQYgtuW7iODtVoKu3RVL72k3WohqhjfaOLK5Mg2T4Tg1o2bSfu0vPkoI48wdQFv5b/Xe04wQ==";
       };
     };
     "@types/eslint-visitor-keys-1.0.0" = {
@@ -6754,22 +6844,13 @@ let
         sha512 = "wLhcKh3PMlyA2cNAB9sjM1BntnhPMiM0JOBwPBqttjHev2428MLEB4AYVN+d8s2iyCVZac+o41Pflm/ZH5vLXQ==";
       };
     };
-    "@types/express-serve-static-core-4.17.24" = {
+    "@types/express-serve-static-core-4.17.26" = {
       name = "_at_types_slash_express-serve-static-core";
       packageName = "@types/express-serve-static-core";
-      version = "4.17.24";
+      version = "4.17.26";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz";
-        sha512 = "3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==";
-      };
-    };
-    "@types/express-serve-static-core-4.17.25" = {
-      name = "_at_types_slash_express-serve-static-core";
-      packageName = "@types/express-serve-static-core";
-      version = "4.17.25";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.25.tgz";
-        sha512 = "OUJIVfRMFijZukGGwTpKNFprqCCXk5WjNGvUgB/CxxBR40QWSjsNK86+yvGKlCOGc7sbwfHLaXhkG+NsytwBaQ==";
+        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.26.tgz";
+        sha512 = "zeu3tpouA043RHxW0gzRxwCHchMgftE8GArRsvYT0ByDMbn19olQHx5jLue0LxWY6iYtXb7rXmuVtSkhy9YZvQ==";
       };
     };
     "@types/fancy-log-1.3.0" = {
@@ -6889,13 +6970,13 @@ let
         sha512 = "e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q==";
       };
     };
-    "@types/http-proxy-1.17.7" = {
+    "@types/http-proxy-1.17.8" = {
       name = "_at_types_slash_http-proxy";
       packageName = "@types/http-proxy";
-      version = "1.17.7";
+      version = "1.17.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.7.tgz";
-        sha512 = "9hdj6iXH64tHSLTY+Vt2eYOGzSogC+JQ2H7bdPWkuh7KXP5qLllWx++t+K9Wk556c3dkDdPws/SpMRi0sdCT1w==";
+        url = "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz";
+        sha512 = "5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==";
       };
     };
     "@types/inquirer-6.5.0" = {
@@ -6952,13 +7033,22 @@ let
         sha512 = "c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==";
       };
     };
-    "@types/jquery-3.5.8" = {
+    "@types/jquery-3.5.10" = {
       name = "_at_types_slash_jquery";
       packageName = "@types/jquery";
-      version = "3.5.8";
+      version = "3.5.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.8.tgz";
-        sha512 = "cXk6NwqjDYg+UI9p2l3x0YmPa4m7RrXqmbK4IpVVpRJiYXU/QTo+UZrn54qfE1+9Gao4qpYqUnxm5ZCy2FTXAw==";
+        url = "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.10.tgz";
+        sha512 = "w2qT5DFikh5TXrW/aOaCvCP8g2MMAfPXo3oeHR9v7dRuAZhu38PUWEkYrL4e9VRTcgZE4yER21AHndgpq2QPTQ==";
+      };
+    };
+    "@types/js-levenshtein-1.1.0" = {
+      name = "_at_types_slash_js-levenshtein";
+      packageName = "@types/js-levenshtein";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.0.tgz";
+        sha512 = "14t0v1ICYRtRVcHASzes0v/O+TIeASb8aD55cWF1PidtInhFWSXcmhzhHqGjUWf9SUq1w70cvd1cWKUULubAfQ==";
       };
     };
     "@types/js-yaml-3.12.5" = {
@@ -6979,13 +7069,13 @@ let
         sha512 = "S6+8JAYTE1qdsc9HMVsfY7+SgSuUU/Tp6TYTmITW0PZxiyIMvol3Gy//y69Wkhs0ti4py5qgR3uZH6uz/DNzJQ==";
       };
     };
-    "@types/js-yaml-4.0.4" = {
+    "@types/js-yaml-4.0.5" = {
       name = "_at_types_slash_js-yaml";
       packageName = "@types/js-yaml";
-      version = "4.0.4";
+      version = "4.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.4.tgz";
-        sha512 = "AuHubXUmg0AzkXH0Mx6sIxeY/1C110mm/EkE/gB1sTRz3h2dao2W/63q42SlVST+lICxz5Oki2hzYA6+KnnieQ==";
+        url = "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz";
+        sha512 = "FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==";
       };
     };
     "@types/jscodeshift-0.7.2" = {
@@ -7069,13 +7159,13 @@ let
         sha512 = "EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA==";
       };
     };
-    "@types/lodash-4.14.177" = {
+    "@types/lodash-4.14.178" = {
       name = "_at_types_slash_lodash";
       packageName = "@types/lodash";
-      version = "4.14.177";
+      version = "4.14.178";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.177.tgz";
-        sha512 = "0fDwydE2clKe9MNfvXHBHF9WEahRuj+msTuQqOmAApNORFvhMYZKNGGJdCzuhheVjMps/ti0Ak/iJPACMaevvw==";
+        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz";
+        sha512 = "0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==";
       };
     };
     "@types/long-4.0.1" = {
@@ -7276,13 +7366,22 @@ let
         sha512 = "oTQgnd0hblfLsJ6BvJzzSL+Inogp3lq9fGgqRkMB/ziKMgEUaFl801OncOzUmalfzt14N0oPHMK47ipl+wbTIw==";
       };
     };
-    "@types/node-14.17.33" = {
+    "@types/node-14.17.34" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "14.17.33";
+      version = "14.17.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.17.33.tgz";
-        sha512 = "noEeJ06zbn3lOh4gqe2v7NMGS33jrulfNqYFDjjEbhpDEHR5VTxgYNQSBqBlJIsBJW3uEYDgD6kvMnrrhGzq8g==";
+        url = "https://registry.npmjs.org/@types/node/-/node-14.17.34.tgz";
+        sha512 = "USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg==";
+      };
+    };
+    "@types/node-14.18.0" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "14.18.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-14.18.0.tgz";
+        sha512 = "0GeIl2kmVMXEnx8tg1SlG6Gg8vkqirrW752KqolYo1PHevhhZN3bhJ67qHj+bQaINhX0Ra3TlWwRvMCd9iEfNQ==";
       };
     };
     "@types/node-15.14.9" = {
@@ -7294,6 +7393,33 @@ let
         sha512 = "qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==";
       };
     };
+    "@types/node-16.11.11" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "16.11.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz";
+        sha512 = "KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==";
+      };
+    };
+    "@types/node-16.11.12" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "16.11.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-16.11.12.tgz";
+        sha512 = "+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw==";
+      };
+    };
+    "@types/node-16.11.14" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "16.11.14";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-16.11.14.tgz";
+        sha512 = "mK6BKLpL0bG6v2CxHbm0ed6RcZrAtTHBTd/ZpnlVPVa3HkumsqLE4BC4u6TQ8D7pnrRbOU0am6epuALs+Ncnzw==";
+      };
+    };
     "@types/node-16.11.7" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
@@ -7303,6 +7429,15 @@ let
         sha512 = "QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==";
       };
     };
+    "@types/node-17.0.0" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "17.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-17.0.0.tgz";
+        sha512 = "eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==";
+      };
+    };
     "@types/node-6.14.13" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
@@ -7366,13 +7501,13 @@ let
         sha512 = "kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==";
       };
     };
-    "@types/parse5-6.0.2" = {
+    "@types/parse5-6.0.3" = {
       name = "_at_types_slash_parse5";
       packageName = "@types/parse5";
-      version = "6.0.2";
+      version = "6.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.2.tgz";
-        sha512 = "+hQX+WyJAOne7Fh3zF5CxPemILIbuhNcqHHodzK9caYOLnC8pD5efmPleRnw0z++LfKUC/sVNMwk0Gap+B0baA==";
+        url = "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz";
+        sha512 = "SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==";
       };
     };
     "@types/pbkdf2-3.1.0" = {
@@ -7555,13 +7690,13 @@ let
         sha512 = "xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==";
       };
     };
-    "@types/sass-1.43.0" = {
+    "@types/sass-1.43.1" = {
       name = "_at_types_slash_sass";
       packageName = "@types/sass";
-      version = "1.43.0";
+      version = "1.43.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/sass/-/sass-1.43.0.tgz";
-        sha512 = "DPSXNJ1rYLo88GyF9tuB4bsYGfpKI1a4+wOQmc+LI1SUoocm9QLRSpz0GxxuyjmJsYFIQo/dDlRSSpIXngff+w==";
+        url = "https://registry.npmjs.org/@types/sass/-/sass-1.43.1.tgz";
+        sha512 = "BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g==";
       };
     };
     "@types/scheduler-0.16.2" = {
@@ -7762,13 +7897,13 @@ let
         sha512 = "ayJ0iOCDNHnKpKTgBG6Q6JOnHTj9zFta+3j2b8Ejza0e4cvRyMn0ZoLEmbPrTHe5YYRlDYPvPWVdV4cTaRyH7g==";
       };
     };
-    "@types/vscode-1.62.0" = {
+    "@types/vscode-1.63.1" = {
       name = "_at_types_slash_vscode";
       packageName = "@types/vscode";
-      version = "1.62.0";
+      version = "1.63.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.62.0.tgz";
-        sha512 = "iGlQJ1w5e3qPUryroO6v4lxg3ql1ztdTCwQW3xEwFawdyPLoeUSv48SYfMwc7kQA7h6ThUqflZIjgKAykeF9oA==";
+        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.63.1.tgz";
+        sha512 = "Z+ZqjRcnGfHP86dvx/BtSwWyZPKQ/LBdmAVImY82TphyjOw2KgTKcp7Nx92oNwCTsHzlshwexAG/WiY2JuUm3g==";
       };
     };
     "@types/webpack-4.41.32" = {
@@ -7798,6 +7933,15 @@ let
         sha512 = "B5m9aq7cbbD/5/jThEr33nUY8WEfVi6A2YKCTOvw5Ldy7mtsOkqRvGjnzy6g7iMMDsgu7xREuCzqATLDLQVKcQ==";
       };
     };
+    "@types/websocket-1.0.4" = {
+      name = "_at_types_slash_websocket";
+      packageName = "@types/websocket";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.4.tgz";
+        sha512 = "qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA==";
+      };
+    };
     "@types/ws-7.4.7" = {
       name = "_at_types_slash_ws";
       packageName = "@types/ws";
@@ -7816,6 +7960,24 @@ let
         sha512 = "cyeefcUCgJlEk+hk2h3N+MqKKsPViQgF5boi9TTHSK+PoR9KWBb/C5ccPcDyAqgsbAYHTwulch725DV84+pSpg==";
       };
     };
+    "@types/ws-8.2.1" = {
+      name = "_at_types_slash_ws";
+      packageName = "@types/ws";
+      version = "8.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/ws/-/ws-8.2.1.tgz";
+        sha512 = "SqQ+LhVZaJi7c7sYVkjWALDigi/Wy7h7Iu72gkQp8Y8OWw/DddEVBrTSKu86pQftV2+Gm8lYM61hadPKqyaIeg==";
+      };
+    };
+    "@types/ws-8.2.2" = {
+      name = "_at_types_slash_ws";
+      packageName = "@types/ws";
+      version = "8.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz";
+        sha512 = "NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==";
+      };
+    };
     "@types/yargs-15.0.14" = {
       name = "_at_types_slash_yargs";
       packageName = "@types/yargs";
@@ -8131,31 +8293,31 @@ let
         sha512 = "B4Rc4wGgxTAOivy0tmBEuPAbSYeTzv3dusoQUOW1CVT3N5zYkEuxVj8OXmUQ1YECWaK+IjvQQMFkBuXt//lp7g==";
       };
     };
-    "@vue/compiler-core-3.2.22" = {
+    "@vue/compiler-core-3.2.26" = {
       name = "_at_vue_slash_compiler-core";
       packageName = "@vue/compiler-core";
-      version = "3.2.22";
+      version = "3.2.26";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.22.tgz";
-        sha512 = "uAkovrVeTcjzpiM4ECmVaMrv/bjdgAaLzvjcGqQPBEyUrcqsCgccT9fHJ/+hWVGhyMahmBwLqcn4guULNx7sdw==";
+        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.26.tgz";
+        sha512 = "N5XNBobZbaASdzY9Lga2D9Lul5vdCIOXvUMd6ThcN8zgqQhPKfCV+wfAJNNJKQkSHudnYRO2gEB+lp0iN3g2Tw==";
       };
     };
-    "@vue/compiler-dom-3.2.22" = {
+    "@vue/compiler-dom-3.2.26" = {
       name = "_at_vue_slash_compiler-dom";
       packageName = "@vue/compiler-dom";
-      version = "3.2.22";
+      version = "3.2.26";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.22.tgz";
-        sha512 = "VZdsw/VuO1ODs8K7NQwnMQzKITDkIFlYYC03SVnunuf6eNRxBPEonSyqbWNoo6qNaHAEBTG6VVcZC5xC9bAx1g==";
+        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.26.tgz";
+        sha512 = "smBfaOW6mQDxcT3p9TKT6mE22vjxjJL50GFVJiI0chXYGU/xzC05QRGrW3HHVuJrmLTLx5zBhsZ2dIATERbarg==";
       };
     };
-    "@vue/shared-3.2.22" = {
+    "@vue/shared-3.2.26" = {
       name = "_at_vue_slash_shared";
       packageName = "@vue/shared";
-      version = "3.2.22";
+      version = "3.2.26";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.2.22.tgz";
-        sha512 = "qWVav014mpjEtbWbEgl0q9pEyrrIySKum8UVYjwhC6njrKzknLZPvfuYdQyVbApsqr94tf/3dP4pCuZmmjdCWQ==";
+        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.2.26.tgz";
+        sha512 = "vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA==";
       };
     };
     "@webassemblyjs/ast-1.11.1" = {
@@ -8680,15 +8842,6 @@ let
         sha512 = "ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA==";
       };
     };
-    "@wry/context-0.6.1" = {
-      name = "_at_wry_slash_context";
-      packageName = "@wry/context";
-      version = "0.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz";
-        sha512 = "LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==";
-      };
-    };
     "@wry/equality-0.1.11" = {
       name = "_at_wry_slash_equality";
       packageName = "@wry/equality";
@@ -8698,24 +8851,6 @@ let
         sha512 = "mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==";
       };
     };
-    "@wry/equality-0.5.2" = {
-      name = "_at_wry_slash_equality";
-      packageName = "@wry/equality";
-      version = "0.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz";
-        sha512 = "oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA==";
-      };
-    };
-    "@wry/trie-0.3.1" = {
-      name = "_at_wry_slash_trie";
-      packageName = "@wry/trie";
-      version = "0.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@wry/trie/-/trie-0.3.1.tgz";
-        sha512 = "WwB53ikYudh9pIorgxrkHKrQZcCqNM/Q/bDzZBffEaGUKGuHrRb3zZUT9Sh2qw9yogC7SsdRmQ1ER0pqvd3bfw==";
-      };
-    };
     "@xmldom/xmldom-0.7.5" = {
       name = "_at_xmldom_slash_xmldom";
       packageName = "@xmldom/xmldom";
@@ -9256,13 +9391,13 @@ let
         sha512 = "nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==";
       };
     };
-    "acorn-8.5.0" = {
+    "acorn-8.6.0" = {
       name = "acorn";
       packageName = "acorn";
-      version = "8.5.0";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz";
-        sha512 = "yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==";
+        url = "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz";
+        sha512 = "U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==";
       };
     };
     "acorn-globals-1.0.9" = {
@@ -9418,13 +9553,13 @@ let
         sha1 = "6a7990437ca736d5e1288db92bd3266d5f5cb2aa";
       };
     };
-    "addons-linter-3.20.0" = {
+    "addons-linter-4.4.0" = {
       name = "addons-linter";
       packageName = "addons-linter";
-      version = "3.20.0";
+      version = "4.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-3.20.0.tgz";
-        sha512 = "rHaahIZ34HSL1D7ZYCMs/QQPOp0pAnsOMqtNSy/zDSrkgVtlCQvSeMpx1a3ZnE2pGRVHjMIO506KWUmrN1lPRw==";
+        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-4.4.0.tgz";
+        sha512 = "2N8oo97y2w2MJX/bcvnSb5BG2s+0BOlOu/0Q06wp5bnyEwWbfKFOVX/CorivGkRteY0fbSUWvU55LXgIiLyH5w==";
       };
     };
     "addons-moz-compare-1.2.0" = {
@@ -9436,13 +9571,13 @@ let
         sha512 = "COG8qk2/dubPqabfcoJW4E7pm2EQDI43iMrHnhlobvq/uRMEzx/PYJ1KaUZ97Vgg44R3QdRG5CvDsTRbMUHcDw==";
       };
     };
-    "addons-scanner-utils-5.0.0" = {
+    "addons-scanner-utils-6.1.0" = {
       name = "addons-scanner-utils";
       packageName = "addons-scanner-utils";
-      version = "5.0.0";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-5.0.0.tgz";
-        sha512 = "uENKmGryUeR07I1c8RonDZY/bkAG+zKfZ3T61JFusgY5wiARQJ5+8hI33m8sctXxPopjfxiIjHsG/g7cQzn4Yw==";
+        url = "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-6.1.0.tgz";
+        sha512 = "O9rObtOmnMI1qBmHH2RlV+H3vAJWm594bbxbFYEkYeqSUkXd0Ohzjwnv1af4GFDlrBK6wB8TS0+/2X/zB8+LnA==";
       };
     };
     "addr-to-ip-port-1.5.4" = {
@@ -9634,15 +9769,6 @@ let
         sha512 = "LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==";
       };
     };
-    "ajv-8.6.2" = {
-      name = "ajv";
-      packageName = "ajv";
-      version = "8.6.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz";
-        sha512 = "9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==";
-      };
-    };
     "ajv-8.6.3" = {
       name = "ajv";
       packageName = "ajv";
@@ -9652,13 +9778,13 @@ let
         sha512 = "SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==";
       };
     };
-    "ajv-8.8.0" = {
+    "ajv-8.8.2" = {
       name = "ajv";
       packageName = "ajv";
-      version = "8.8.0";
+      version = "8.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-8.8.0.tgz";
-        sha512 = "L+cJ/+pkdICMueKR6wIx3VP2fjIx3yAhuvadUv/osv9yFD7OVZy442xFF+Oeu3ZvmhBGQzoF6mTSt+LUWBmGQg==";
+        url = "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz";
+        sha512 = "x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==";
       };
     };
     "ajv-errors-1.0.1" = {
@@ -9670,15 +9796,6 @@ let
         sha512 = "DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==";
       };
     };
-    "ajv-formats-2.1.0" = {
-      name = "ajv-formats";
-      packageName = "ajv-formats";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.0.tgz";
-        sha512 = "USH2jBb+C/hIpwD2iRjp0pe0k+MvzG0mlSn/FIdCgQhUb9ALPRjt2KIQdfZDS9r0ZIeUAg7gOu9KL0PFqGqr5Q==";
-      };
-    };
     "ajv-formats-2.1.1" = {
       name = "ajv-formats";
       packageName = "ajv-formats";
@@ -9715,6 +9832,15 @@ let
         sha512 = "5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==";
       };
     };
+    "ajv-keywords-5.1.0" = {
+      name = "ajv-keywords";
+      packageName = "ajv-keywords";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz";
+        sha512 = "YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==";
+      };
+    };
     "ajv-merge-patch-4.1.0" = {
       name = "ajv-merge-patch";
       packageName = "ajv-merge-patch";
@@ -9940,6 +10066,15 @@ let
         sha512 = "gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==";
       };
     };
+    "ansi-escapes-5.0.0" = {
+      name = "ansi-escapes";
+      packageName = "ansi-escapes";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz";
+        sha512 = "5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==";
+      };
+    };
     "ansi-gray-0.1.1" = {
       name = "ansi-gray";
       packageName = "ansi-gray";
@@ -10246,15 +10381,6 @@ let
         sha512 = "y8H99NExU1Sk4TvcaUxTdzfq2SZo6uSj5dyh75XSQvbpH6gdAXIW9MaBcvlNC7n0cVPsidHmOcHOWxJ/pTXGjA==";
       };
     };
-    "apollo-datasource-3.3.0" = {
-      name = "apollo-datasource";
-      packageName = "apollo-datasource";
-      version = "3.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-3.3.0.tgz";
-        sha512 = "It8POTZTOCAnedRj2izEVeySN06LIfojigZjWaOY7voLe0DIgtvhql91xr27fuIWsR/Ew9twO3dLBjjvy34J4Q==";
-      };
-    };
     "apollo-graphql-0.9.5" = {
       name = "apollo-graphql";
       packageName = "apollo-graphql";
@@ -10291,15 +10417,6 @@ let
         sha512 = "B3XmnkH6Y458iV6OsA7AhfwvTgeZnFq9nPVjbxmLKnvfkEl8hYADtz724uPa0WeBiD7DSFcnLtqg9yGmCkBohg==";
       };
     };
-    "apollo-reporting-protobuf-3.2.0" = {
-      name = "apollo-reporting-protobuf";
-      packageName = "apollo-reporting-protobuf";
-      version = "3.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-3.2.0.tgz";
-        sha512 = "2v/5IRJeTGakCJo8kS2LeKUcLsgqxO/HpEyu1EaW79F0CsvrIk10tOIGxouoOgtVl5e1wfGePJ849CUWWczx2A==";
-      };
-    };
     "apollo-server-caching-0.7.0" = {
       name = "apollo-server-caching";
       packageName = "apollo-server-caching";
@@ -10309,15 +10426,6 @@ let
         sha512 = "MsVCuf/2FxuTFVhGLK13B+TZH9tBd2qkyoXKKILIiGcZ5CDUEBO14vIV63aNkMkS1xxvK2U4wBcuuNj/VH2Mkw==";
       };
     };
-    "apollo-server-caching-3.3.0" = {
-      name = "apollo-server-caching";
-      packageName = "apollo-server-caching";
-      version = "3.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-3.3.0.tgz";
-        sha512 = "Wgcb0ArjZ5DjQ7ID+tvxUcZ7Yxdbk5l1MxZL8D8gkyjooOkhPNzjRVQ7ubPoXqO54PrOMOTm1ejVhsF+AfIirQ==";
-      };
-    };
     "apollo-server-core-2.25.3" = {
       name = "apollo-server-core";
       packageName = "apollo-server-core";
@@ -10327,15 +10435,6 @@ let
         sha512 = "Midow3uZoJ9TjFNeCNSiWElTVZlvmB7G7tG6PPoxIR9Px90/v16Q6EzunDIO0rTJHRC3+yCwZkwtf8w2AcP0sA==";
       };
     };
-    "apollo-server-core-3.5.0" = {
-      name = "apollo-server-core";
-      packageName = "apollo-server-core";
-      version = "3.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-3.5.0.tgz";
-        sha512 = "c3wEnPSnzvWvYvRJq1B+yIpa+vBvm0kq0tvD4j/IOw/F1s3sadu43Xr4FiLw++UfeLyh3aS5Wk68hjvrW1ceiQ==";
-      };
-    };
     "apollo-server-env-3.1.0" = {
       name = "apollo-server-env";
       packageName = "apollo-server-env";
@@ -10345,15 +10444,6 @@ let
         sha512 = "iGdZgEOAuVop3vb0F2J3+kaBVi4caMoxefHosxmgzAbbSpvWehB8Y1QiSyyMeouYC38XNVk5wnZl+jdGSsWsIQ==";
       };
     };
-    "apollo-server-env-4.2.0" = {
-      name = "apollo-server-env";
-      packageName = "apollo-server-env";
-      version = "4.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-4.2.0.tgz";
-        sha512 = "4xJ+PCoWsFLj4rU6iXrIhqD7nI42goi4Iqrhsof9680ljSzkzd+PCwZsja3mHOFXKUQQUvJ7StVSgwaiRu45+A==";
-      };
-    };
     "apollo-server-errors-2.5.0" = {
       name = "apollo-server-errors";
       packageName = "apollo-server-errors";
@@ -10363,15 +10453,6 @@ let
         sha512 = "lO5oTjgiC3vlVg2RKr3RiXIIQ5pGXBFxYGGUkKDhTud3jMIhs+gel8L8zsEjKaKxkjHhCQAA/bcEfYiKkGQIvA==";
       };
     };
-    "apollo-server-errors-3.3.0" = {
-      name = "apollo-server-errors";
-      packageName = "apollo-server-errors";
-      version = "3.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-3.3.0.tgz";
-        sha512 = "9/MNlPZBbEjcCdJcUSbKbVEBT9xZS8GSpX7T/TyzcxHSbsXJszSDSipQNGC+PRKTKAUnv61IONScVyLKEZ5XEQ==";
-      };
-    };
     "apollo-server-express-2.25.3" = {
       name = "apollo-server-express";
       packageName = "apollo-server-express";
@@ -10381,15 +10462,6 @@ let
         sha512 = "tTFYn0oKH2qqLwVj7Ez2+MiKleXACODiGh5IxsB7VuYCPMAi9Yl8iUSlwTjQUvgCWfReZjnf0vFL2k5YhDlrtQ==";
       };
     };
-    "apollo-server-express-3.5.0" = {
-      name = "apollo-server-express";
-      packageName = "apollo-server-express";
-      version = "3.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-3.5.0.tgz";
-        sha512 = "eFyBC4ate/g5GrvxM+HrtiElxCEbvG+CiJ0/R1i62L+wzXDhgD6MU0SW17ceS1mpBJgDxURu/VS5hUSNyWMa3Q==";
-      };
-    };
     "apollo-server-plugin-base-0.13.0" = {
       name = "apollo-server-plugin-base";
       packageName = "apollo-server-plugin-base";
@@ -10399,15 +10471,6 @@ let
         sha512 = "L3TMmq2YE6BU6I4Tmgygmd0W55L+6XfD9137k+cWEBFu50vRY4Re+d+fL5WuPkk5xSPKd/PIaqzidu5V/zz8Kg==";
       };
     };
-    "apollo-server-plugin-base-3.4.0" = {
-      name = "apollo-server-plugin-base";
-      packageName = "apollo-server-plugin-base";
-      version = "3.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-3.4.0.tgz";
-        sha512 = "Z9musk7Z/1v+Db6aOoxcHfmsgej2yEBzBz5kVGOc81/XAtdv6bjasKSLC3RiySAUzWSLBJRUeEGIEVhhk/j2Zg==";
-      };
-    };
     "apollo-server-types-0.9.0" = {
       name = "apollo-server-types";
       packageName = "apollo-server-types";
@@ -10417,15 +10480,6 @@ let
         sha512 = "qk9tg4Imwpk732JJHBkhW0jzfG0nFsLqK2DY6UhvJf7jLnRePYsPxWfPiNkxni27pLE2tiNlCwoDFSeWqpZyBg==";
       };
     };
-    "apollo-server-types-3.4.0" = {
-      name = "apollo-server-types";
-      packageName = "apollo-server-types";
-      version = "3.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-3.4.0.tgz";
-        sha512 = "iFNRENtxDoFWoY+KxpGP+TYyRnqUPqUTubMJVgiXPDvOPFL8dzqGGmqq1g/VCeWFHRJTPBLWhOfQU7ktwDEjnQ==";
-      };
-    };
     "apollo-tracing-0.15.0" = {
       name = "apollo-tracing";
       packageName = "apollo-tracing";
@@ -10660,6 +10714,15 @@ let
         sha512 = "58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==";
       };
     };
+    "arg-5.0.1" = {
+      name = "arg";
+      packageName = "arg";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz";
+        sha512 = "e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==";
+      };
+    };
     "argparse-0.1.15" = {
       name = "argparse";
       packageName = "argparse";
@@ -11524,15 +11587,6 @@ let
         sha512 = "zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==";
       };
     };
-    "async-3.2.0" = {
-      name = "async";
-      packageName = "async";
-      version = "3.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz";
-        sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==";
-      };
-    };
     "async-3.2.2" = {
       name = "async";
       packageName = "async";
@@ -11875,13 +11929,13 @@ let
         sha1 = "00f35b2d27ac91b1f0d3ef2084c98cf1d1f0adc3";
       };
     };
-    "aws-sdk-2.1029.0" = {
+    "aws-sdk-2.1046.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.1029.0";
+      version = "2.1046.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1029.0.tgz";
-        sha512 = "nCmaMPkJr3EATXaeqR3JeNC0GTDH2lJZ3Xq/ZCAW+yrfaPQWv8HqJJHBCNGtmk3FmcCoxc7ed/gEB8XSl0tocA==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1046.0.tgz";
+        sha512 = "ocwHclMXdIA+NWocUyvp9Ild3/zy2vr5mHp3mTyodf0WU5lzBE8PocCVLSWhMAXLxyia83xv2y5f5AzAcetbqA==";
       };
     };
     "aws-sdk-2.920.0" = {
@@ -11956,6 +12010,15 @@ let
         sha512 = "Z0U3uhqQeg1oNcihswf4ZD57O3NrR1+ZXhxaROaWpDmsDTx7T2HNBV2ulBtie2hwJptu8UvgnJoK+BIqdzh/1w==";
       };
     };
+    "axios-0.24.0" = {
+      name = "axios";
+      packageName = "axios";
+      version = "0.24.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz";
+        sha512 = "Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==";
+      };
+    };
     "axios-cookiejar-support-0.5.1" = {
       name = "axios-cookiejar-support";
       packageName = "axios-cookiejar-support";
@@ -11974,13 +12037,13 @@ let
         sha512 = "4TVv2X7oNStT0vLaEfExmy3J4/CzfuXolEcQl/BRUmvGySqKStTG2O55/hUQ0kM7UJlZBLgniM0SBq4d/WkKow==";
       };
     };
-    "azure-devops-node-api-11.0.1" = {
+    "azure-devops-node-api-11.1.0" = {
       name = "azure-devops-node-api";
       packageName = "azure-devops-node-api";
-      version = "11.0.1";
+      version = "11.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.0.1.tgz";
-        sha512 = "YMdjAw9l5p/6leiyIloxj3k7VIvYThKjvqgiQn88r3nhT93ENwsoDS3A83CyJ4uTWzCZ5f5jCi6c27rTU5Pz+A==";
+        url = "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.1.0.tgz";
+        sha512 = "6/2YZuf+lJzJLrjXNYEA5RXAkMCb8j/4VcHD0qJQRsgG/KsRMYo0HgDh0by1FGHyZkQWY5LmQyJqCwRVUB3Y7Q==";
       };
     };
     "b24.js-1.0.3" = {
@@ -11992,13 +12055,13 @@ let
         sha512 = "j2hHu0asf6HxacVmGJKFSsrfoG8nC0JEjujIpsmRVkr74nC6o5gs6YF6AQD3e7YyJ8PaKuA7k2uSL9A2mAG9Og==";
       };
     };
-    "b4a-1.1.2" = {
+    "b4a-1.3.1" = {
       name = "b4a";
       packageName = "b4a";
-      version = "1.1.2";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/b4a/-/b4a-1.1.2.tgz";
-        sha512 = "mL0ZchJqyNLojO7XxJ7VYk5lws0RVFvjDiLilAbJTsClbpIE1ESUOBNKQaRIXmlZgoU8ckusIEeOrWEbFuDymg==";
+        url = "https://registry.npmjs.org/b4a/-/b4a-1.3.1.tgz";
+        sha512 = "ULHjbJGjZcdA5bugDNAAcMA6GWXX/9N10I6AQc14TH+Sr7bMfT+NHuJnOFGPJWLtzYa6Tz+PnFD2D/1bISLLZQ==";
       };
     };
     "babel-code-frame-6.26.0" = {
@@ -12262,40 +12325,40 @@ let
         sha1 = "1bc6f15b87f7ab1085d42b330b717657a2156500";
       };
     };
-    "babel-plugin-polyfill-corejs2-0.2.3" = {
+    "babel-plugin-polyfill-corejs2-0.3.0" = {
       name = "babel-plugin-polyfill-corejs2";
       packageName = "babel-plugin-polyfill-corejs2";
-      version = "0.2.3";
+      version = "0.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.3.tgz";
-        sha512 = "NDZ0auNRzmAfE1oDDPW2JhzIMXUk+FFe2ICejmt5T4ocKgiQx3e0VCRx9NCAidcMtL2RUZaWtXnmjTCkx0tcbA==";
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz";
+        sha512 = "wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==";
       };
     };
-    "babel-plugin-polyfill-corejs3-0.3.0" = {
+    "babel-plugin-polyfill-corejs3-0.4.0" = {
       name = "babel-plugin-polyfill-corejs3";
       packageName = "babel-plugin-polyfill-corejs3";
-      version = "0.3.0";
+      version = "0.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.3.0.tgz";
-        sha512 = "JLwi9vloVdXLjzACL80j24bG6/T1gYxwowG44dg6HN/7aTPdyPbJJidf6ajoA3RPHHtW0j9KMrSOLpIZpAnPpg==";
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz";
+        sha512 = "YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==";
       };
     };
-    "babel-plugin-polyfill-regenerator-0.2.3" = {
+    "babel-plugin-polyfill-regenerator-0.3.0" = {
       name = "babel-plugin-polyfill-regenerator";
       packageName = "babel-plugin-polyfill-regenerator";
-      version = "0.2.3";
+      version = "0.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.3.tgz";
-        sha512 = "JVE78oRZPKFIeUqFGrSORNzQnrDwZR16oiWeGM8ZyjBn2XAT5OjP+wXx5ESuo33nUsFUEJYjtklnsKbxW5L+7g==";
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz";
+        sha512 = "dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==";
       };
     };
-    "babel-plugin-styled-components-1.13.3" = {
+    "babel-plugin-styled-components-2.0.2" = {
       name = "babel-plugin-styled-components";
       packageName = "babel-plugin-styled-components";
-      version = "1.13.3";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.13.3.tgz";
-        sha512 = "meGStRGv+VuKA/q0/jXxrPNWEm4LPfYIqxooDTdmh8kFsP/Ph7jJG5rUPwUPX3QHUvggwdbgdGpo88P/rRYsVw==";
+        url = "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.0.2.tgz";
+        sha512 = "7eG5NE8rChnNTDxa6LQfynwgHTVOYYaHJbUYSlOhk8QBXIQiMBKq4gyfHBBKPrxUcVBXVJL61ihduCpCQbuNbw==";
       };
     };
     "babel-plugin-syntax-flow-6.18.0" = {
@@ -12658,15 +12721,6 @@ let
         sha512 = "H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==";
       };
     };
-    "base32.js-0.1.0" = {
-      name = "base32.js";
-      packageName = "base32.js";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/base32.js/-/base32.js-0.1.0.tgz";
-        sha1 = "b582dec693c2f11e893cf064ee6ac5b6131a2202";
-      };
-    };
     "base62-0.1.1" = {
       name = "base62";
       packageName = "base62";
@@ -12901,13 +12955,13 @@ let
         sha512 = "KDX2CR29o6ZoqpQndcCxFZAtYA1jDMnXU3jmCfzP44g++Cu7AHHtZN/JbrN/MXAg9SLvtQ8XISG+eVD9zH1+Jg==";
       };
     };
-    "bcurl-0.1.9" = {
+    "bcurl-0.1.10" = {
       name = "bcurl";
       packageName = "bcurl";
-      version = "0.1.9";
+      version = "0.1.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bcurl/-/bcurl-0.1.9.tgz";
-        sha512 = "WV9LKCqFPtmGwIOqHexJx3Mm/9H/G5bwSCZxJXq9WRrnVQmd58L+Ltxgp/2QicveDG6AgTfepP6JtNiYWbbeHQ==";
+        url = "https://registry.npmjs.org/bcurl/-/bcurl-0.1.10.tgz";
+        sha512 = "NPxrIkc61tI2FvuibKW8IHaWs7YpgGvOWTgYEJYoE0vOiCvjuL6PXeKYq6bZqadeZfQ6v+R74qvj3Siiv+/Pvg==";
       };
     };
     "bdb-1.3.0" = {
@@ -13045,6 +13099,15 @@ let
         sha512 = "kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA==";
       };
     };
+    "better-opn-3.0.1" = {
+      name = "better-opn";
+      packageName = "better-opn";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/better-opn/-/better-opn-3.0.1.tgz";
+        sha512 = "u7pU4QnwLQ+wCDLHdvtWbI/41pSRayJ+UHyAqpb5sr42FGnqzBlEyWdCklfaSzXqbmnXDBzCvWcaZmL3qp0xGA==";
+      };
+    };
     "better-queue-3.8.10" = {
       name = "better-queue";
       packageName = "better-queue";
@@ -13171,13 +13234,13 @@ let
         sha512 = "t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==";
       };
     };
-    "bignumber.js-9.0.1" = {
+    "bignumber.js-9.0.2" = {
       name = "bignumber.js";
       packageName = "bignumber.js";
-      version = "9.0.1";
+      version = "9.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz";
-        sha512 = "IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==";
+        url = "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz";
+        sha512 = "GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==";
       };
     };
     "bigspinner-3.1.0" = {
@@ -13360,13 +13423,13 @@ let
         sha512 = "O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==";
       };
     };
-    "bipf-1.5.1" = {
+    "bipf-1.5.4" = {
       name = "bipf";
       packageName = "bipf";
-      version = "1.5.1";
+      version = "1.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bipf/-/bipf-1.5.1.tgz";
-        sha512 = "SrLwMzrpETJDiH9z12EMcqtApgcQo9XsPi+S9Aodezu53ALcGjBBQ7+C+IWbsSCBlSvNEec8sqfh3itO/j/QUw==";
+        url = "https://registry.npmjs.org/bipf/-/bipf-1.5.4.tgz";
+        sha512 = "/bQfGxhC9D0plJPFamZBL5d4q41d/lh1g+uFglrO5TA09ka/BE3oDE2YAZSPYzqdeq4LyM6uKJaGPhd6athgYg==";
       };
     };
     "bit-field-1.5.3" = {
@@ -13405,6 +13468,15 @@ let
         sha512 = "KYx81rVE4LDbZcHfE375NCX4CDeZuz7HECZm/KAmqKMY2jpD3ZcUnI7Fm+QX5EMF/xmtzzfrNL/BNxo8o0iOQg==";
       };
     };
+    "bitcoinjs-lib-6.0.1" = {
+      name = "bitcoinjs-lib";
+      packageName = "bitcoinjs-lib";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.0.1.tgz";
+        sha512 = "x/7D4jDj/MMkmO6t3p2CSDXTqpwZ/jRsRiJDmaiXabrR9XRo7jwby8HRn7EyK1h24rKFFI7vI0ay4czl6bDOZQ==";
+      };
+    };
     "bitfield-0.1.0" = {
       name = "bitfield";
       packageName = "bitfield";
@@ -13558,13 +13630,13 @@ let
         sha512 = "8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==";
       };
     };
-    "blake2b-2.1.3" = {
+    "blake2b-2.1.4" = {
       name = "blake2b";
       packageName = "blake2b";
-      version = "2.1.3";
+      version = "2.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/blake2b/-/blake2b-2.1.3.tgz";
-        sha512 = "pkDss4xFVbMb4270aCyGD3qLv92314Et+FsKzilCLxDz5DuZ2/1g3w4nmBbu6nKApPspnjG7JcwTjGZnduB1yg==";
+        url = "https://registry.npmjs.org/blake2b/-/blake2b-2.1.4.tgz";
+        sha512 = "AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A==";
       };
     };
     "blake2b-universal-1.0.1" = {
@@ -13576,13 +13648,13 @@ let
         sha512 = "vmMqpF8E9RCde8/+Su/s2rZRxOBwAYQsTyCgok4kLWhWrzMrX0CzID6pVheNJSESY0S0FNTOG4QfRJqnSLOjFA==";
       };
     };
-    "blake2b-wasm-1.1.7" = {
+    "blake2b-wasm-2.4.0" = {
       name = "blake2b-wasm";
       packageName = "blake2b-wasm";
-      version = "1.1.7";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-1.1.7.tgz";
-        sha512 = "oFIHvXhlz/DUgF0kq5B1CqxIDjIJwh9iDeUUGQUcvgiGz7Wdw03McEO7CfLBy7QKGdsydcMCgO9jFNBAFCtFcA==";
+        url = "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz";
+        sha512 = "S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w==";
       };
     };
     "blake2s-1.1.0" = {
@@ -13882,6 +13954,15 @@ let
         sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
       };
     };
+    "body-parser-1.19.1" = {
+      name = "body-parser";
+      packageName = "body-parser";
+      version = "1.19.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz";
+        sha512 = "8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==";
+      };
+    };
     "bolt01-1.2.3" = {
       name = "bolt01";
       packageName = "bolt01";
@@ -13963,13 +14044,13 @@ let
         sha512 = "yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==";
       };
     };
-    "bootstrap-5.0.2" = {
+    "bootstrap-5.1.3" = {
       name = "bootstrap";
       packageName = "bootstrap";
-      version = "5.0.2";
+      version = "5.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bootstrap/-/bootstrap-5.0.2.tgz";
-        sha512 = "1Ge963tyEQWJJ+8qtXFU6wgmAVj9gweEjibUdbmcCEYsn38tVwRk8107rk2vzt6cfQcRr3SlZ8aQBqaD8aqf+Q==";
+        url = "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz";
+        sha512 = "fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==";
       };
     };
     "bootstrap-vue-helper-json-1.1.1" = {
@@ -14422,13 +14503,13 @@ let
         sha512 = "HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==";
       };
     };
-    "browserslist-4.18.1" = {
+    "browserslist-4.19.1" = {
       name = "browserslist";
       packageName = "browserslist";
-      version = "4.18.1";
+      version = "4.19.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz";
-        sha512 = "8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==";
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz";
+        sha512 = "u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==";
       };
     };
     "brq-0.1.8" = {
@@ -15449,6 +15530,15 @@ let
         sha512 = "tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==";
       };
     };
+    "camelcase-css-2.0.1" = {
+      name = "camelcase-css";
+      packageName = "camelcase-css";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz";
+        sha512 = "QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==";
+      };
+    };
     "camelcase-keys-2.1.0" = {
       name = "camelcase-keys";
       packageName = "camelcase-keys";
@@ -15503,13 +15593,13 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001280" = {
+    "caniuse-lite-1.0.30001287" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001280";
+      version = "1.0.30001287";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001280.tgz";
-        sha512 = "kFXwYvHe5rix25uwueBxC569o53J6TpnGu0BEEn+6Lhl2vsnAumRFWEBhDft1fwyo6m1r4i+RqA4+163FpeFcA==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001287.tgz";
+        sha512 = "4udbs9bc0hfNrcje++AxBuc6PfLNHwh3PO9kbwnfCQWyqtlzg3py0YgFu8jyRTTo85VAz4U+VLxSlID09vNtWA==";
       };
     };
     "canvas-2.8.0" = {
@@ -15674,31 +15764,31 @@ let
         sha512 = "eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==";
       };
     };
-    "cdk8s-1.1.35" = {
+    "cdk8s-1.3.2" = {
       name = "cdk8s";
       packageName = "cdk8s";
-      version = "1.1.35";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-1.1.35.tgz";
-        sha512 = "6hhAP+XivkMFKiqenOuBX+7D+5Ae6s+X8KF0TEoiwrrRFa1Wt5LvM7JGsJT7F7+jMNF+UAF53kxpffNZMCpOJA==";
+        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-1.3.2.tgz";
+        sha512 = "ZAYcx5EplKocUWhB50cYqs6C21+27ogXZiqY68J521Lt0cGgCm95Z0Ul3vErmcxaRPGto66odmgZ9FkGBAW8bA==";
       };
     };
-    "cdk8s-plus-22-1.0.0-beta.42" = {
+    "cdk8s-plus-22-1.0.0-beta.62" = {
       name = "cdk8s-plus-22";
       packageName = "cdk8s-plus-22";
-      version = "1.0.0-beta.42";
+      version = "1.0.0-beta.62";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdk8s-plus-22/-/cdk8s-plus-22-1.0.0-beta.42.tgz";
-        sha512 = "aC9H+ulFxXIafMhIj5w5KxTY3Fknjxztc2/uEPWZqB9K+aUozhfTTeVcBsmFuOw3p6LvI6Xbs6cJuJ2h7zCiDQ==";
+        url = "https://registry.npmjs.org/cdk8s-plus-22/-/cdk8s-plus-22-1.0.0-beta.62.tgz";
+        sha512 = "VlRod4cmslhNOUt34d1gysY5qlK2lbhXI5PI4wXbvKDDEUvi5MGPGXCREtvDcgzDZk+EqdJ6QTnjYWnqLzcAng==";
       };
     };
-    "cdktf-0.7.0" = {
+    "cdktf-0.8.3" = {
       name = "cdktf";
       packageName = "cdktf";
-      version = "0.7.0";
+      version = "0.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.7.0.tgz";
-        sha512 = "AhT3I6O3XAeBh2t2MiiAuPelPXmtaD4P3wIbcDtPxtlAX4gO5jTGVNHqHp11SdwvbncbDuhetdI7Egyor/EsEQ==";
+        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.8.3.tgz";
+        sha512 = "XW1bmmZ71OslgcCpmippWJOzdL1prJ1rTVADk4AKN+cw0s8udJ/FDJJVdfwH0ZMvFtU82ha+epOIHO8GJjSPHA==";
       };
     };
     "center-align-0.1.3" = {
@@ -15710,15 +15800,6 @@ let
         sha1 = "aa0d32629b6ee972200411cbd4461c907bc2b7ad";
       };
     };
-    "cert-info-1.5.1" = {
-      name = "cert-info";
-      packageName = "cert-info";
-      version = "1.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cert-info/-/cert-info-1.5.1.tgz";
-        sha512 = "eoQC/yAgW3gKTKxjzyClvi+UzuY97YCjcl+lSqbsGIy7HeGaWxCPOQFivhUYm27hgsBMhsJJFya3kGvK6PMIcQ==";
-      };
-    };
     "chacha20-universal-1.0.4" = {
       name = "chacha20-universal";
       packageName = "chacha20-universal";
@@ -15845,6 +15926,15 @@ let
         sha512 = "oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==";
       };
     };
+    "chalk-5.0.0" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-5.0.0.tgz";
+        sha512 = "/duVOqst+luxCQRKEo4bNxinsOQtMP80ZYm7mMqzuh5PociNL0PvmHFvREJ9ueYL2TxlHjBcmLCdmocx9Vg+IQ==";
+      };
+    };
     "chance-1.0.18" = {
       name = "chance";
       packageName = "chance";
@@ -15998,13 +16088,13 @@ let
         sha512 = "+2jlOobSk52c1VU6fzkh3UwqHMdSlgH1xFv9FKMqHiNCpXsGPQa/+81AFa+i3jZ253Mq9aAycPwDjnn1XbRNNw==";
       };
     };
-    "chart.js-3.6.0" = {
+    "chart.js-3.6.2" = {
       name = "chart.js";
       packageName = "chart.js";
-      version = "3.6.0";
+      version = "3.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chart.js/-/chart.js-3.6.0.tgz";
-        sha512 = "iOzzDKePL+bj+ccIsVAgWQehCXv8xOKGbaU2fO/myivH736zcx535PGJzQGanvcSGVOqX6yuLZsN3ygcQ35UgQ==";
+        url = "https://registry.npmjs.org/chart.js/-/chart.js-3.6.2.tgz";
+        sha512 = "Xz7f/fgtVltfQYWq0zL1Xbv7N2inpG+B54p3D5FSvpCdy3sM+oZhbqa42eNuYXltaVvajgX5UpKCU2GeeJIgxg==";
       };
     };
     "chartjs-color-2.4.1" = {
@@ -16106,15 +16196,6 @@ let
         sha512 = "g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==";
       };
     };
-    "cheerio-1.0.0-rc.3" = {
-      name = "cheerio";
-      packageName = "cheerio";
-      version = "1.0.0-rc.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz";
-        sha512 = "0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==";
-      };
-    };
     "cheerio-select-1.5.0" = {
       name = "cheerio-select";
       packageName = "cheerio-select";
@@ -16277,13 +16358,13 @@ let
         sha512 = "HqsYJgIc8ljJJOqOzLphjAs79EUuWSX3nzZi2LNkzlw3GIzAeZbaSektC8iT/tKvLqZq8yl1GJu5o6doA4TRbg==";
       };
     };
-    "chrome-launcher-0.14.0" = {
+    "chrome-launcher-0.15.0" = {
       name = "chrome-launcher";
       packageName = "chrome-launcher";
-      version = "0.14.0";
+      version = "0.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.14.0.tgz";
-        sha512 = "W//HpflaW6qBGrmuskup7g+XJZN6w03ko9QSIe5CtcTal2u0up5SeReK3Ll1Why4Ey8dPkv8XSodZyHPnGbVHQ==";
+        url = "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.0.tgz";
+        sha512 = "ZQqX5kb9H0+jy1OqLnWampfocrtSZaGl7Ny3F9GRha85o4odbL8x55paUzh51UC7cEmZ5obp3H2Mm70uC2PpRA==";
       };
     };
     "chrome-net-3.3.4" = {
@@ -16376,13 +16457,13 @@ let
         sha512 = "5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==";
       };
     };
-    "ci-info-3.2.0" = {
+    "ci-info-3.3.0" = {
       name = "ci-info";
       packageName = "ci-info";
-      version = "3.2.0";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz";
-        sha512 = "dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==";
+        url = "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz";
+        sha512 = "riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==";
       };
     };
     "cint-8.2.1" = {
@@ -16691,13 +16772,13 @@ let
         sha512 = "AXxiCe2a0Lm0VN+9L0jzmfQSkcZm5EYspfqXKaSIQKqIk+0hnkZ3/v1E9B39mkD6vYhKih3c/RPsJBSwq9O99Q==";
       };
     };
-    "cli-progress-footer-2.1.1" = {
+    "cli-progress-footer-2.3.0" = {
       name = "cli-progress-footer";
       packageName = "cli-progress-footer";
-      version = "2.1.1";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-progress-footer/-/cli-progress-footer-2.1.1.tgz";
-        sha512 = "fBEAKLDp/CCMzQSeEbvz4POvomCekmT0LodI/mchzrjIPeLXQHJ9Gb28leAqEjdc9wyV40cjsB2aWpvO5MA7Pw==";
+        url = "https://registry.npmjs.org/cli-progress-footer/-/cli-progress-footer-2.3.0.tgz";
+        sha512 = "xJl+jqvdsE0Gjh5tKoLzZrQS4nPHC+yzeitgq2faAZiHl+/Peuwzoy5Sed6EBkm8JNrPk7W4U3YNVO/uxoqOFg==";
       };
     };
     "cli-spinner-0.2.10" = {
@@ -16718,15 +16799,6 @@ let
         sha512 = "1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==";
       };
     };
-    "cli-spinners-2.6.0" = {
-      name = "cli-spinners";
-      packageName = "cli-spinners";
-      version = "2.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz";
-        sha512 = "t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==";
-      };
-    };
     "cli-spinners-2.6.1" = {
       name = "cli-spinners";
       packageName = "cli-spinners";
@@ -16745,13 +16817,13 @@ let
         sha512 = "t3LcCdPvrypZovStadWdRS4a186gsq9aoHJYTIer55VY20YdVjGVHDV4uPWcWCXTw1tPjfwlRGE7zKMWJ663Sw==";
       };
     };
-    "cli-table-0.3.6" = {
+    "cli-table-0.3.11" = {
       name = "cli-table";
       packageName = "cli-table";
-      version = "0.3.6";
+      version = "0.3.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-table/-/cli-table-0.3.6.tgz";
-        sha512 = "ZkNZbnZjKERTY5NwC2SeMeLeifSPq/pubeRoTpdr3WchLlnZg6hEgvHkK5zL7KNFdd9PmHN8lxrENUwI3cE8vQ==";
+        url = "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz";
+        sha512 = "IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==";
       };
     };
     "cli-table3-0.5.1" = {
@@ -16826,13 +16898,13 @@ let
         sha512 = "/1owvF0SZ5Gn54cgrikJ0QskgTzeg30HGjkmjFoaHDJzAqFpuX1DBpFR8aLvsE1J5s9MgeYRENQK4BFwOag5VA==";
       };
     };
-    "cli-ux-5.6.3" = {
+    "cli-ux-5.6.7" = {
       name = "cli-ux";
       packageName = "cli-ux";
-      version = "5.6.3";
+      version = "5.6.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-ux/-/cli-ux-5.6.3.tgz";
-        sha512 = "/oDU4v8BiDjX2OKcSunGH0iGDiEtj2rZaGyqNuv9IT4CgcSMyVWAMfn0+rEHaOc4n9ka78B0wo1+N1QX89f7mw==";
+        url = "https://registry.npmjs.org/cli-ux/-/cli-ux-5.6.7.tgz";
+        sha512 = "dsKAurMNyFDnO6X1TiiRNiVbL90XReLKcvIq4H777NMqXGBxBws23ag8ubCJE97vVZEgWG2eSUhsyLf63Jv8+g==";
       };
     };
     "cli-width-1.1.1" = {
@@ -17276,6 +17348,15 @@ let
         sha512 = "tge3BeOtehBouqo8sdrjRuQxsAWuwUxWJN1pTttZ8HpV+fe2fxmBE9lqrzzOlRIysBvgsZr7D0FdNfrwRwpK8A==";
       };
     };
+    "code-block-writer-10.1.1" = {
+      name = "code-block-writer";
+      packageName = "code-block-writer";
+      version = "10.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/code-block-writer/-/code-block-writer-10.1.1.tgz";
+        sha512 = "67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==";
+      };
+    };
     "code-excerpt-3.0.0" = {
       name = "code-excerpt";
       packageName = "code-excerpt";
@@ -17321,13 +17402,13 @@ let
         sha512 = "3WQV/Fpa77nvzjUlc+0u53uIroJyyMB2Qwl++aXpAiDIsrsiAQq4uCURwdRBRX+eLkOTIAmT0L4qna3T7+2pUg==";
       };
     };
-    "codemaker-1.44.0" = {
+    "codemaker-1.49.0" = {
       name = "codemaker";
       packageName = "codemaker";
-      version = "1.44.0";
+      version = "1.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.44.0.tgz";
-        sha512 = "GrUjFBFDbMyykrmL9aGf7Viv2I+wAH9mnkW/5qCHsZw51LuZKAidBHp5nS3oT1mdkcIorjqUJjRSJ3LzslgFEQ==";
+        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.49.0.tgz";
+        sha512 = "WtHwTvbR1uORGHNnl2D3kcPk52u21x4oQNsLC5n7r6vCXdRE7RAsy0hUi1ovt+9NQ4jvM9BfeMUdZp9o8h4oog==";
       };
     };
     "codepage-1.4.0" = {
@@ -17447,13 +17528,13 @@ let
         sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
       };
     };
-    "color-string-1.6.0" = {
+    "color-string-1.9.0" = {
       name = "color-string";
       packageName = "color-string";
-      version = "1.6.0";
+      version = "1.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz";
-        sha512 = "c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==";
+        url = "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz";
+        sha512 = "9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==";
       };
     };
     "color-support-1.1.3" = {
@@ -17780,15 +17861,6 @@ let
         sha512 = "P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==";
       };
     };
-    "commander-6.0.0" = {
-      name = "commander";
-      packageName = "commander";
-      version = "6.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/commander/-/commander-6.0.0.tgz";
-        sha512 = "s7EA+hDtTYNhuXkTlhqew4txMZVdszBmKWSPEMxGr8ru8JXR7bLUFIAtPhcSuFdJQ0ILMxnJi8GkQL0yvDy/YA==";
-      };
-    };
     "commander-6.1.0" = {
       name = "commander";
       packageName = "commander";
@@ -17834,15 +17906,6 @@ let
         sha512 = "Xvf85aAtu6v22+E5hfVoLHqyul/jyxh91zvqk/ioJTQuJR7Z78n7H558vMPKanPSRgIEeZemT92I2g9Y8LPbSQ==";
       };
     };
-    "commander-8.2.0" = {
-      name = "commander";
-      packageName = "commander";
-      version = "8.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/commander/-/commander-8.2.0.tgz";
-        sha512 = "LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==";
-      };
-    };
     "commander-8.3.0" = {
       name = "commander";
       packageName = "commander";
@@ -17897,13 +17960,13 @@ let
         sha512 = "6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==";
       };
     };
-    "common-tags-1.8.1" = {
+    "common-tags-1.8.2" = {
       name = "common-tags";
       packageName = "common-tags";
-      version = "1.8.1";
+      version = "1.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/common-tags/-/common-tags-1.8.1.tgz";
-        sha512 = "uOZd85rJqrdEIE/JjhW5YAeatX8iqjjvVzIyfx7JL7G5r9Tep6YpYT9gEJWhWpVyDQEyzukWd6p2qULpJ8tmBw==";
+        url = "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz";
+        sha512 = "gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==";
       };
     };
     "commondir-1.0.1" = {
@@ -18131,13 +18194,13 @@ let
         sha512 = "bzlVWS2THbMetHqXKB8ypsXN4DQ/1qopGwNJi1eYbpwesJcd86FBjFciCQX/YwAhp9bM7NVnPFqZ5LpV7gP0Dg==";
       };
     };
-    "conf-10.0.3" = {
+    "conf-10.1.1" = {
       name = "conf";
       packageName = "conf";
-      version = "10.0.3";
+      version = "10.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conf/-/conf-10.0.3.tgz";
-        sha512 = "4gtQ/Q36qVxBzMe6B7gWOAfni1VdhuHkIzxydHkclnwGmgN+eW4bb6jj73vigCfr7d3WlmqawvhZrpCUCTPYxQ==";
+        url = "https://registry.npmjs.org/conf/-/conf-10.1.1.tgz";
+        sha512 = "z2civwq/k8TMYtcn3SVP0Peso4otIWnHtcTuHhQ0zDZDdP4NTxqEc8owfkz4zBsdMYdn/LFcE+ZhbCeqkhtq3Q==";
       };
     };
     "conf-6.2.4" = {
@@ -18374,22 +18437,22 @@ let
         sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
       };
     };
-    "constructs-10.0.9" = {
+    "constructs-10.0.12" = {
       name = "constructs";
       packageName = "constructs";
-      version = "10.0.9";
+      version = "10.0.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/constructs/-/constructs-10.0.9.tgz";
-        sha512 = "C9la/fcnCKe3XIjKPbWuD49mnOYqSWdiMI6TNJmF0ao3pJw6Hap03Q4nsmCxpWMXuMzM546Kw/WnW7ElB3g4OA==";
+        url = "https://registry.npmjs.org/constructs/-/constructs-10.0.12.tgz";
+        sha512 = "wVQcQgwwK7b//7yI54/3hundmXAw7RBpuy5f6yIBFNceJr8feTK6Cs2I2f3+gp3/ikszzTouLup9AzxioEEXPQ==";
       };
     };
-    "constructs-3.3.161" = {
+    "constructs-3.3.166" = {
       name = "constructs";
       packageName = "constructs";
-      version = "3.3.161";
+      version = "3.3.166";
       src = fetchurl {
-        url = "https://registry.npmjs.org/constructs/-/constructs-3.3.161.tgz";
-        sha512 = "/27vW3fo0iyb3py4vKI1BduEYmv8vv8uJgLXvI+5F0Jbnn0/E+As2wkGMa7bumhzCd0Ckv/USkAXstGYVXTYQA==";
+        url = "https://registry.npmjs.org/constructs/-/constructs-3.3.166.tgz";
+        sha512 = "vhFswEqFb5BRkeYbWPd66A+BtvSSSdRI/1TYNwetC2reJul+ztI40vK9l2CNx1Vi/EOAQp1qjjjTEg+29irtYA==";
       };
     };
     "consume-http-header-1.0.0" = {
@@ -18437,6 +18500,15 @@ let
         sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==";
       };
     };
+    "content-disposition-0.5.4" = {
+      name = "content-disposition";
+      packageName = "content-disposition";
+      version = "0.5.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz";
+        sha512 = "FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==";
+      };
+    };
     "content-type-1.0.4" = {
       name = "content-type";
       packageName = "content-type";
@@ -18465,22 +18537,22 @@ let
         sha1 = "0e790b3abfef90f6ecb77ae8585db9099caf7578";
       };
     };
-    "contentful-management-7.45.2" = {
+    "contentful-management-7.47.0" = {
       name = "contentful-management";
       packageName = "contentful-management";
-      version = "7.45.2";
+      version = "7.47.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/contentful-management/-/contentful-management-7.45.2.tgz";
-        sha512 = "NFAkV6mxqOW4SIx8pAhraQq234Gl8+Np8cxaw7+bB9DCelpxmWvySyaoDczAaYmXLZcejeOFt/NS+Rhp7hPvJA==";
+        url = "https://registry.npmjs.org/contentful-management/-/contentful-management-7.47.0.tgz";
+        sha512 = "DruvWHDD/og1Qpu0T5kCmRlm6XSJYFDPNNJOlgo3DeUVLEvp/76nAhEjsW2sPV2KBANgD4wVytP4p6/vO3/LxA==";
       };
     };
-    "contentful-sdk-core-6.10.3" = {
+    "contentful-sdk-core-6.10.4" = {
       name = "contentful-sdk-core";
       packageName = "contentful-sdk-core";
-      version = "6.10.3";
+      version = "6.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.10.3.tgz";
-        sha512 = "IUBkAU1sJuVaEa2Nv1NKK5ImqpBZ5Q3EmaCFmMZx/UHKa+i98nDCSTUBOL1aJnpZ/s3AaSramsh73VQ4aK2kyA==";
+        url = "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.10.4.tgz";
+        sha512 = "vnivU13pKqFzs/eEugqOaDkKce6ZljBkpp6l25MsG8LA1HPCQNBnIkqP5VUbwk/ub7tkHteV9HtoTnmpdvB+Zg==";
       };
     };
     "continuable-1.1.8" = {
@@ -18789,22 +18861,22 @@ let
         sha512 = "ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==";
       };
     };
-    "cookie-parser-1.4.5" = {
+    "cookie-parser-1.4.6" = {
       name = "cookie-parser";
       packageName = "cookie-parser";
-      version = "1.4.5";
+      version = "1.4.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz";
-        sha512 = "f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw==";
+        url = "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz";
+        sha512 = "z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==";
       };
     };
-    "cookie-session-2.0.0-rc.1" = {
+    "cookie-session-2.0.0" = {
       name = "cookie-session";
       packageName = "cookie-session";
-      version = "2.0.0-rc.1";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cookie-session/-/cookie-session-2.0.0-rc.1.tgz";
-        sha512 = "zg80EsLe7S1J4y0XxV7SZ8Fbi90ZZoampuX2bfYDOvJfc//98sSlZC41YDzTTjtVbeU1VlVdBbldXOOyi5xzEw==";
+        url = "https://registry.npmjs.org/cookie-session/-/cookie-session-2.0.0.tgz";
+        sha512 = "hKvgoThbw00zQOleSlUr2qpvuNweoqBtxrmx0UFosx6AGi9lYtLoA+RbsvknrEX8Pr6MDbdWAb2j6SnMn+lPsg==";
       };
     };
     "cookie-signature-1.0.1" = {
@@ -18969,31 +19041,31 @@ let
         sha512 = "WJeQqq6jOYgVgg4NrXKL0KLQhi0CT4ZOCvFL+3CQ5o7I6J8HkT5wd53EadMfqTDp1so/MT1J+w2ujhWcCJtN7w==";
       };
     };
-    "core-js-3.19.1" = {
+    "core-js-3.20.0" = {
       name = "core-js";
       packageName = "core-js";
-      version = "3.19.1";
+      version = "3.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.19.1.tgz";
-        sha512 = "Tnc7E9iKd/b/ff7GFbhwPVzJzPztGrChB8X8GLqoYGdEOG8IpLnK1xPyo3ZoO3HsK6TodJS58VGPOxA+hLHQMg==";
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.20.0.tgz";
+        sha512 = "KjbKU7UEfg4YPpskMtMXPhUKn7m/1OdTHTVjy09ScR2LVaoUXe8Jh0UdvN2EKUR6iKTJph52SJP95mAB0MnVLQ==";
       };
     };
-    "core-js-compat-3.19.1" = {
+    "core-js-compat-3.20.0" = {
       name = "core-js-compat";
       packageName = "core-js-compat";
-      version = "3.19.1";
+      version = "3.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.1.tgz";
-        sha512 = "Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g==";
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.0.tgz";
+        sha512 = "relrah5h+sslXssTTOkvqcC/6RURifB0W5yhYBdBkaPYa5/2KBMiog3XiD+s3TwEHWxInWVv4Jx2/Lw0vng+IQ==";
       };
     };
-    "core-js-pure-3.19.1" = {
+    "core-js-pure-3.20.0" = {
       name = "core-js-pure";
       packageName = "core-js-pure";
-      version = "3.19.1";
+      version = "3.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.19.1.tgz";
-        sha512 = "Q0Knr8Es84vtv62ei6/6jXH/7izKmOrtrxH9WJTHLCMAVeU+8TF8z8Nr08CsH4Ot0oJKzBzJJL9SJBYIv7WlfQ==";
+        url = "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.0.tgz";
+        sha512 = "qsrbIwWSEEYOM7z616jAVgwhuDDtPLwZSpUsU3vyUkHYqKTf/uwOJBZg2V7lMurYWkpVlaVOxBrfX0Q3ppvjfg==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -19104,6 +19176,15 @@ let
         sha512 = "a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==";
       };
     };
+    "cosmiconfig-toml-loader-1.0.0" = {
+      name = "cosmiconfig-toml-loader";
+      packageName = "cosmiconfig-toml-loader";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cosmiconfig-toml-loader/-/cosmiconfig-toml-loader-1.0.0.tgz";
+        sha512 = "H/2gurFWVi7xXvCyvsWRLCMekl4tITJcX0QEsDMpzxtuxDyM59xLatYNg4s/k9AA/HdtCYfj2su8mgA0GSDLDA==";
+      };
+    };
     "couch-login-0.1.20" = {
       name = "couch-login";
       packageName = "couch-login";
@@ -19230,13 +19311,13 @@ let
         sha1 = "06be7abef947a3f14a30fd610671d401bca8b7b6";
       };
     };
-    "create-gatsby-2.1.1" = {
+    "create-gatsby-2.4.0" = {
       name = "create-gatsby";
       packageName = "create-gatsby";
-      version = "2.1.1";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/create-gatsby/-/create-gatsby-2.1.1.tgz";
-        sha512 = "TyTrJD5Wa2WTa5PVY3ng1aIo7vqyR3rmQJuGRNPNeRZIfrYBrMGILWIh8TV+pofTKiZsRhPPMmHlpDD62tqPcw==";
+        url = "https://registry.npmjs.org/create-gatsby/-/create-gatsby-2.4.0.tgz";
+        sha512 = "tBGS/Fv4KPNIe8bJE58OyZlIjdvTzwm830RkNQspI+f4V69u0d+API6KGk1UFaGG63n5/d+1Efu/inzp9TMylQ==";
       };
     };
     "create-graphback-1.0.1" = {
@@ -19410,6 +19491,15 @@ let
         sha512 = "mkLtJJcYbDCxEG7Js6eUnUNndWjyUZwJ3H7bErmmtOYU/Zb99DyUkpamuIZE0b3bhmJyZ7D90uS6f+CGxRRjOw==";
       };
     };
+    "cross-undici-fetch-0.1.4" = {
+      name = "cross-undici-fetch";
+      packageName = "cross-undici-fetch";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.1.4.tgz";
+        sha512 = "jIcyxjQ6mEvUS3y2yhIVktOR7wlGZuyjFAK8woo7pMb+BR1f2ylfTxsN01UPwhqT8gtYPmZ2rPdyoInr1Cdrrw==";
+      };
+    };
     "crossroads-0.12.2" = {
       name = "crossroads";
       packageName = "crossroads";
@@ -19482,49 +19572,49 @@ let
         sha512 = "v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==";
       };
     };
-    "cspell-gitignore-5.12.6" = {
+    "cspell-gitignore-5.13.3" = {
       name = "cspell-gitignore";
       packageName = "cspell-gitignore";
-      version = "5.12.6";
+      version = "5.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-5.12.6.tgz";
-        sha512 = "4C6kNc6y9avFvd0/1LiSi139TZwWc4o1vxWBlSEACjeJ7fMKiunIRCrDPb8QPtzDy+Ot+CGNk+ONi3nBqMX8cw==";
+        url = "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-5.13.3.tgz";
+        sha512 = "/x8C9v0WINmyD6rgyX3OByN7lVgk1EIt0AGfYZXcVgx6iCpvBNyz8It1l3kaCEw5OPWyHvCEGeL8cy53y2dZxQ==";
       };
     };
-    "cspell-glob-5.12.6" = {
+    "cspell-glob-5.13.3" = {
       name = "cspell-glob";
       packageName = "cspell-glob";
-      version = "5.12.6";
+      version = "5.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-glob/-/cspell-glob-5.12.6.tgz";
-        sha512 = "trAnJLEsqpS8SbD2ZTBjLlLuauneZwC4BFiizUeb80EoCgexwMS1F2pzHngDQ+u4JmMcIuBsNgTWiYwuyu+/Wg==";
+        url = "https://registry.npmjs.org/cspell-glob/-/cspell-glob-5.13.3.tgz";
+        sha512 = "9g1/AJs7ws1tLDXFJwcePhmab3wxrWbxEZVfmJIHhawp9rWc+cU6BZFdxJJ52EHClKa+DuKJxYsyohE1ctD9rA==";
       };
     };
-    "cspell-io-5.12.6" = {
+    "cspell-io-5.13.3" = {
       name = "cspell-io";
       packageName = "cspell-io";
-      version = "5.12.6";
+      version = "5.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-io/-/cspell-io-5.12.6.tgz";
-        sha512 = "pTcxw5+/GKD5qIxTcQzWq6pTfWmSVAZVD11kkQ9gFYwX+JYdYmm3Af2x8u5oV46IKL0eAuLp7F1kfan1IsRnEA==";
+        url = "https://registry.npmjs.org/cspell-io/-/cspell-io-5.13.3.tgz";
+        sha512 = "4OwpSprgaUc8yZGWHUBiy5Uv528gmk7wMai6c2ZQOd8HEOkIoxWIjCVnOEYHsXBflhcrvSPxirwcsLOcGU2bkQ==";
       };
     };
-    "cspell-lib-5.12.6" = {
+    "cspell-lib-5.13.3" = {
       name = "cspell-lib";
       packageName = "cspell-lib";
-      version = "5.12.6";
+      version = "5.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-lib/-/cspell-lib-5.12.6.tgz";
-        sha512 = "aUM9/YKduhyNNpnPxoJqcMj+cuoJqoiKbkp3lm+p08nf6tR7NFGRjf7jtSB5WJh/ZGOoF6F1/7hIIKXxHSvzqA==";
+        url = "https://registry.npmjs.org/cspell-lib/-/cspell-lib-5.13.3.tgz";
+        sha512 = "X4GkrxhMkNTH+H+irHHL2GluwQHhR3G0/5+bF/KOYtZ4Ypi2iVYkzcxB3xPmaeM82+NHyoNu/TU5I1jspt4GSg==";
       };
     };
-    "cspell-trie-lib-5.12.6" = {
+    "cspell-trie-lib-5.13.3" = {
       name = "cspell-trie-lib";
       packageName = "cspell-trie-lib";
-      version = "5.12.6";
+      version = "5.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-5.12.6.tgz";
-        sha512 = "ahT/lzhA7WiXzkFadOaXngPfxA74n4YLXXsZi+lL8/GgdezgbcsL4OoKuiKv24pMSLQBuJ6MOSWSr6rlNrImkw==";
+        url = "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-5.13.3.tgz";
+        sha512 = "CbydOTo7u/XxBn2tyWwIkl/KQ8ikLT4TSBM2M/3e7pZMtbAKGlV2L8P0M77mHbz5HrlL+pqrU/Ywk7TwoXmKNQ==";
       };
     };
     "csrf-3.1.0" = {
@@ -19662,13 +19752,13 @@ let
         sha512 = "Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==";
       };
     };
-    "css-select-4.1.3" = {
+    "css-select-4.2.0" = {
       name = "css-select";
       packageName = "css-select";
-      version = "4.1.3";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz";
-        sha512 = "gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==";
+        url = "https://registry.npmjs.org/css-select/-/css-select-4.2.0.tgz";
+        sha512 = "6YVG6hsH9yIb/si3Th/is8Pex7qnVHO6t7q7U6TIUnkQASGbS8tnUDBftnPynLNnuUl/r2+PTd0ekiiq7R0zJw==";
       };
     };
     "css-select-base-adapter-0.1.1" = {
@@ -19959,13 +20049,13 @@ let
         sha1 = "d1cfd8743c2f849a0abb2fd544db56695d19a490";
       };
     };
-    "csv-parse-4.16.3" = {
+    "csv-parse-5.0.3" = {
       name = "csv-parse";
       packageName = "csv-parse";
-      version = "4.16.3";
+      version = "5.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-4.16.3.tgz";
-        sha512 = "cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==";
+        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-5.0.3.tgz";
+        sha512 = "86R0WU4aEEF/1fPZKxP3NmDAYC4Ce1t9iFgKPZogG5Lvk4m9WZQkCEsDANktG29jppejwclTtEOzubN2ieCJqw==";
       };
     };
     "csv-parser-1.12.1" = {
@@ -20139,13 +20229,13 @@ let
         sha512 = "4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==";
       };
     };
-    "d3-7.1.1" = {
+    "d3-7.2.1" = {
       name = "d3";
       packageName = "d3";
-      version = "7.1.1";
+      version = "7.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d3/-/d3-7.1.1.tgz";
-        sha512 = "8zkLMwSvUAnfN9pcJDfkuxU0Nvg4RLUD0A4BZN1KxJPtlnCGzMx3xM5cRl4m8fym/Vy8rlq52tl90UF3m91OnA==";
+        url = "https://registry.npmjs.org/d3/-/d3-7.2.1.tgz";
+        sha512 = "E/5sP0aeK6YPXI/+4QlefvBFgmcyR2jYftId0PrYWv4Y/gW3c3thp1XG4rQzF0eUwV9tR1x05X5eWuJ6rQXvew==";
       };
     };
     "d3-array-1.2.4" = {
@@ -20472,13 +20562,13 @@ let
         sha512 = "Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==";
       };
     };
-    "d3-format-3.0.1" = {
+    "d3-format-3.1.0" = {
       name = "d3-format";
       packageName = "d3-format";
-      version = "3.0.1";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d3-format/-/d3-format-3.0.1.tgz";
-        sha512 = "hdL7+HBIohpgfolhBxr1KX47VMD6+vVD/oEFrxk5yhmzV2prk99EkFKYpXuhVkFpTgHdJ6/4bYcjdLPPXV4tIA==";
+        url = "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz";
+        sha512 = "YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==";
       };
     };
     "d3-geo-1.12.1" = {
@@ -20544,13 +20634,13 @@ let
         sha512 = "SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==";
       };
     };
-    "d3-hierarchy-3.0.1" = {
+    "d3-hierarchy-3.1.1" = {
       name = "d3-hierarchy";
       packageName = "d3-hierarchy";
-      version = "3.0.1";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.0.1.tgz";
-        sha512 = "RlLTaofEoOrMK1JoXYIGhKTkJFI/6rFrYPgxy6QlZo2BcVc4HGTqEU0rPpzuMq5T/5XcMtAzv1XiLA3zRTfygw==";
+        url = "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.1.tgz";
+        sha512 = "LtAIu54UctRmhGKllleflmHalttH3zkfSi4NlKrTAoFKjC+AFBJohsCAdgCBYQwH0F8hIOGY89X1pPqAchlMkA==";
       };
     };
     "d3-interpolate-1.4.0" = {
@@ -20814,13 +20904,13 @@ let
         sha512 = "UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==";
       };
     };
-    "d3-time-format-4.0.0" = {
+    "d3-time-format-4.1.0" = {
       name = "d3-time-format";
       packageName = "d3-time-format";
-      version = "4.0.0";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.0.0.tgz";
-        sha512 = "nzaCwlj+ZVBIlFuVOT1RmU+6xb/7D5IcnhHzHQcBgS/aTa5K9fWZNN5LCXA27LgF5WxoSNJqKBbLcGMtM6Ca6A==";
+        url = "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz";
+        sha512 = "dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==";
       };
     };
     "d3-timer-1.0.10" = {
@@ -21147,13 +21237,13 @@ let
         sha512 = "hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==";
       };
     };
-    "date-fns-2.25.0" = {
+    "date-fns-2.27.0" = {
       name = "date-fns";
       packageName = "date-fns";
-      version = "2.25.0";
+      version = "2.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/date-fns/-/date-fns-2.25.0.tgz";
-        sha512 = "ovYRFnTrbGPD4nqaEqescPEv1mNwvt+UTqI3Ay9SzNtey9NZnYu6E2qCcBBgJ6/2VF1zGGygpyTDITqpQQ5e+w==";
+        url = "https://registry.npmjs.org/date-fns/-/date-fns-2.27.0.tgz";
+        sha512 = "sj+J0Mo2p2X1e306MHq282WS4/A8Pz/95GIFcsPNMPMZVI3EUrAdSv90al1k+p74WGLCruMXk23bfEDZa71X9Q==";
       };
     };
     "date-format-1.2.0" = {
@@ -21417,6 +21507,15 @@ let
         sha512 = "mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==";
       };
     };
+    "debug-4.3.3" = {
+      name = "debug";
+      packageName = "debug";
+      version = "4.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz";
+        sha512 = "/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==";
+      };
+    };
     "debug-fabulous-1.1.0" = {
       name = "debug-fabulous";
       packageName = "debug-fabulous";
@@ -21525,6 +21624,15 @@ let
         sha1 = "fd43c735e967b8013306884a56fbe665996b6817";
       };
     };
+    "decode-named-character-reference-1.0.1" = {
+      name = "decode-named-character-reference";
+      packageName = "decode-named-character-reference";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz";
+        sha512 = "YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w==";
+      };
+    };
     "decode-uri-component-0.2.0" = {
       name = "decode-uri-component";
       packageName = "decode-uri-component";
@@ -22056,13 +22164,13 @@ let
         sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
       };
     };
-    "deltachat-node-1.60.0" = {
+    "deltachat-node-1.70.0" = {
       name = "deltachat-node";
       packageName = "deltachat-node";
-      version = "1.60.0";
+      version = "1.70.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/deltachat-node/-/deltachat-node-1.60.0.tgz";
-        sha512 = "ONDEN3IM2F2XPs2G/6Cc3MeZnyRicm4sa/Sm/J0xxVA9ApGORMQF2v4X5pwMt4liYD84De2P95R85VhwSM4GVA==";
+        url = "https://registry.npmjs.org/deltachat-node/-/deltachat-node-1.70.0.tgz";
+        sha512 = "PjI8X+MPPdVLF2Tq+WG0r9twwxFAWAi1yz+23+Qt07qTNcyeYHJx499Ssc3II5Q5MW00ylTdnFd+APD7FpFqLQ==";
       };
     };
     "denodeify-1.2.1" = {
@@ -22371,6 +22479,15 @@ let
         sha512 = "4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==";
       };
     };
+    "devtools-protocol-0.0.937139" = {
+      name = "devtools-protocol";
+      packageName = "devtools-protocol";
+      version = "0.0.937139";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.937139.tgz";
+        sha512 = "daj+rzR3QSxsPRy5vjjthn58axO8c11j58uY0lG5vvlJk/EiOdCWOptGdkXDjtuRHr78emKq0udHCXM4trhoDQ==";
+      };
+    };
     "dezalgo-1.0.3" = {
       name = "dezalgo";
       packageName = "dezalgo";
@@ -22452,6 +22569,15 @@ let
         sha512 = "P/J2VQp/hDsMTfJhmIYPUBxZqezWuDaUzSgb6oW7JLpUV2So9jCXbR5TaUYXwfO50ZXPYEzQqQHPQK3pKcs7Rg==";
       };
     };
+    "didyoumean-1.2.2" = {
+      name = "didyoumean";
+      packageName = "didyoumean";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz";
+        sha512 = "gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==";
+      };
+    };
     "diff-1.4.0" = {
       name = "diff";
       packageName = "diff";
@@ -22677,15 +22803,6 @@ let
         sha512 = "EAyaxl8hy4Ph07kzlzGTfpbZMNAAAHXSZtNEMwdlnSd1noHzvA6HsgKt4fEMSvaEXQYLSphe5rPMxN4WOj0hcQ==";
       };
     };
-    "dispensary-0.62.0" = {
-      name = "dispensary";
-      packageName = "dispensary";
-      version = "0.62.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dispensary/-/dispensary-0.62.0.tgz";
-        sha512 = "x8vqPX7owhzDp3Y6t/iOuTuNoWx5hlZKITlzlybETsZoY05cYDubGpwt0soLfRLAWLuxX1lq0lTc/vXtk/CDCw==";
-      };
-    };
     "diveSync-0.3.0" = {
       name = "diveSync";
       packageName = "diveSync";
@@ -22803,31 +22920,31 @@ let
         sha512 = "2FFKzmLGOnD+Y378bRKH+gTjRMuSpH7OKgPy31KjjfCoKZx7tU8Dmqfd/3fhG2d/4bppuN8/KtWMUZBAcUCRnQ==";
       };
     };
-    "dockerfile-ast-0.3.4" = {
+    "dockerfile-ast-0.4.1" = {
       name = "dockerfile-ast";
       packageName = "dockerfile-ast";
-      version = "0.3.4";
+      version = "0.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.3.4.tgz";
-        sha512 = "QjNH/VnTrWjlDekJtk5GBKbypcFUBdGexd+eOAeivwwSWky6bIJps1cw/qw1jU5K3TDMgtufAHaBh7OV5X/EqA==";
+        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.4.1.tgz";
+        sha512 = "qM5/m+Ez4GOM3ILkG13+cPxwgIcuA/z3LmEPZf4VJ82f7T1DuVbz7ctw4IzWdbiecuXcs+C4fFVbo5priGnIIQ==";
       };
     };
-    "dockerfile-language-service-0.7.3" = {
+    "dockerfile-language-service-0.7.4" = {
       name = "dockerfile-language-service";
       packageName = "dockerfile-language-service";
-      version = "0.7.3";
+      version = "0.7.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-language-service/-/dockerfile-language-service-0.7.3.tgz";
-        sha512 = "zTDkmeBmafVGDx/34gWAst8tAysx2bUWcSnw+f5SI+b3SzpJNUzoWpgm7xtoNwHoWRuB7xHdiGmvkbrRfA2o8Q==";
+        url = "https://registry.npmjs.org/dockerfile-language-service/-/dockerfile-language-service-0.7.4.tgz";
+        sha512 = "SxKqTMQshN6xr20qTeurUydI432+ZUrkfhMurknjPvhdTc5oheH+WeN1cqKKQrILlcVq7agbFlXH51sdempuGQ==";
       };
     };
-    "dockerfile-utils-0.9.2" = {
+    "dockerfile-utils-0.9.3" = {
       name = "dockerfile-utils";
       packageName = "dockerfile-utils";
-      version = "0.9.2";
+      version = "0.9.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-utils/-/dockerfile-utils-0.9.2.tgz";
-        sha512 = "QgcYXSZFBBbPuiQskEAVnW3qSShSCSisLNt2wQZXupBQ/x1lFIyvVfWXk4OQqWoatHyAfUBiXDNx9eRXkmSALQ==";
+        url = "https://registry.npmjs.org/dockerfile-utils/-/dockerfile-utils-0.9.3.tgz";
+        sha512 = "tMPdbywzglQh7JieKL1vn7HyJoYwk8J8AyfyLaqkLJ5tRA/TSrOVK6R40C3bwEceYg875crMo8yHSkz09Fc6VA==";
       };
     };
     "doctoc-2.1.0" = {
@@ -22866,13 +22983,13 @@ let
         sha1 = "ea80b106a87538774e8a3a4a5afe293de489e0a9";
       };
     };
-    "doipjs-0.13.0" = {
+    "doipjs-0.14.0" = {
       name = "doipjs";
       packageName = "doipjs";
-      version = "0.13.0";
+      version = "0.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/doipjs/-/doipjs-0.13.0.tgz";
-        sha512 = "PgLmVcrSAfIZk/Tb9xvmDQ2S9dkHd+o7i2NBI0mEI0rTWk6p2TvpWSPyrupaPeAmNDSbKwmmBmXH/+ThdWqHMg==";
+        url = "https://registry.npmjs.org/doipjs/-/doipjs-0.14.0.tgz";
+        sha512 = "FX0rRv4h+/IaCCS2YSrEdx7nbM1iHimJfXhGDi5OU+0ALw5868RLDUQoWNpTfS+PtKX4vOgqmMAGuGlPLJiqkA==";
       };
     };
     "dom-converter-0.2.0" = {
@@ -23064,13 +23181,13 @@ let
         sha512 = "J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==";
       };
     };
-    "domhandler-4.2.2" = {
+    "domhandler-4.3.0" = {
       name = "domhandler";
       packageName = "domhandler";
-      version = "4.2.2";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz";
-        sha512 = "PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==";
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz";
+        sha512 = "fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==";
       };
     };
     "domino-2.1.6" = {
@@ -23082,13 +23199,13 @@ let
         sha512 = "3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==";
       };
     };
-    "dompurify-2.3.3" = {
+    "dompurify-2.3.4" = {
       name = "dompurify";
       packageName = "dompurify";
-      version = "2.3.3";
+      version = "2.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dompurify/-/dompurify-2.3.3.tgz";
-        sha512 = "dqnqRkPMAjOZE0FogZ+ceJNM2dZ3V/yNOuFB7+39qpO93hHhfRpHw3heYQC7DPK9FqbQTfBKUJhiSfz4MvXYwg==";
+        url = "https://registry.npmjs.org/dompurify/-/dompurify-2.3.4.tgz";
+        sha512 = "6BVcgOAVFXjI0JTjEvZy901Rghm+7fDQOrNIcxB4+gdhj6Kwp6T9VBhBY/AbagKHJocRkDYGd6wvI+p4/10xtQ==";
       };
     };
     "domutils-1.4.3" = {
@@ -23334,6 +23451,15 @@ let
         sha1 = "d813ccdac8d39d8ad526775514a13dda664d6b4b";
       };
     };
+    "dset-3.1.1" = {
+      name = "dset";
+      packageName = "dset";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dset/-/dset-3.1.1.tgz";
+        sha512 = "hYf+jZNNqJBD2GiMYb+5mqOIX4R4RRHXU3qWMWYN+rqcR2/YpRL2bUHr8C8fU+5DNvqYjJ8YvMGSLuVPWU1cNg==";
+      };
+    };
     "dtrace-provider-0.6.0" = {
       name = "dtrace-provider";
       packageName = "dtrace-provider";
@@ -23586,13 +23712,13 @@ let
         sha512 = "9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==";
       };
     };
-    "electron-13.6.1" = {
+    "electron-13.6.3" = {
       name = "electron";
       packageName = "electron";
-      version = "13.6.1";
+      version = "13.6.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron/-/electron-13.6.1.tgz";
-        sha512 = "rZ6Y7RberigruefQpWOiI4bA9ppyT88GQF8htY6N1MrAgal5RrBc+Mh92CcGU7zT9QO+XO3DarSgZafNTepffQ==";
+        url = "https://registry.npmjs.org/electron/-/electron-13.6.3.tgz";
+        sha512 = "kevgR6/RuEhchJQbgCKhHle9HvJhi2dOJlicFZJqbbqa9BVpZARqqFDlwTSatYxmUPUJwu09FvyMwJG2DMQIng==";
       };
     };
     "electron-notarize-1.1.1" = {
@@ -23631,13 +23757,13 @@ let
         sha512 = "U9dKi10V9w/BdIVB8a8dTKYLK3Q1d2WZ+Yo5qfM3XX/O4jI7KpnwgvWgGoVv0jTWPC2NlebF00ffWS/8NfUAtA==";
       };
     };
-    "electron-to-chromium-1.3.899" = {
+    "electron-to-chromium-1.4.21" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.899";
+      version = "1.4.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.899.tgz";
-        sha512 = "w16Dtd2zl7VZ4N4Db+FIa7n36sgPGCKjrKvUUmp5ialsikvcQLjcJR9RWnlYNxIyEHLdHaoIZEqKsPxU9MdyBg==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.21.tgz";
+        sha512 = "T04U2ciApGbm+dESFEBbewi2Xt0Dgyww8M4n4sOt9lnmFuYbaHEDWCROkx4jvAZDUWWry9YOdnAs+7468q80Qg==";
       };
     };
     "electrum-client-git://github.com/janoside/electrum-client" = {
@@ -23705,13 +23831,13 @@ let
         sha512 = "Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==";
       };
     };
-    "emmet-2.3.4" = {
+    "emmet-2.3.5" = {
       name = "emmet";
       packageName = "emmet";
-      version = "2.3.4";
+      version = "2.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/emmet/-/emmet-2.3.4.tgz";
-        sha512 = "3IqSwmO+N2ZGeuhDyhV/TIOJFUbkChi53bcasSNRE7Yd+4eorbbYz4e53TpMECt38NtYkZNupQCZRlwdAYA42A==";
+        url = "https://registry.npmjs.org/emmet/-/emmet-2.3.5.tgz";
+        sha512 = "LcWfTamJnXIdMfLvJEC5Ld3hY5/KHXgv1L1bp6I7eEvB0ZhacHZ1kX0BYovJ8FroEsreLcq7n7kZhRMsf6jkXQ==";
       };
     };
     "emoji-js-clean-4.0.0" = {
@@ -23858,6 +23984,15 @@ let
         sha512 = "AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==";
       };
     };
+    "encode-utf8-1.0.3" = {
+      name = "encode-utf8";
+      packageName = "encode-utf8";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz";
+        sha512 = "ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==";
+      };
+    };
     "encodeurl-1.0.2" = {
       name = "encodeurl";
       packageName = "encodeurl";
@@ -23975,6 +24110,15 @@ let
         sha512 = "21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==";
       };
     };
+    "engine.io-4.1.1" = {
+      name = "engine.io";
+      packageName = "engine.io";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz";
+        sha512 = "t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==";
+      };
+    };
     "engine.io-5.1.1" = {
       name = "engine.io";
       packageName = "engine.io";
@@ -23984,13 +24128,13 @@ let
         sha512 = "aMWot7H5aC8L4/T8qMYbLdvKlZOdJTH54FxfdFunTGvhMx1BHkJOntWArsVfgAZVwAO9LC2sryPWRcEeUzCe5w==";
       };
     };
-    "engine.io-6.0.1" = {
+    "engine.io-6.1.0" = {
       name = "engine.io";
       packageName = "engine.io";
-      version = "6.0.1";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io/-/engine.io-6.0.1.tgz";
-        sha512 = "Y53UaciUh2Rmx5MiogtMxOQcfh7pnemday+Bb4QDg0Wjmnvo/VTvuEyNGQgYmh8L7VOe8Je1QuiqjLNDelMqLA==";
+        url = "https://registry.npmjs.org/engine.io/-/engine.io-6.1.0.tgz";
+        sha512 = "ErhZOVu2xweCjEfYcTdkCnEYUiZgkAcBBAhW4jbIvNG8SLU3orAqoJCiytZjYF7eTpVmmCrLDjLIEaPlUAs1uw==";
       };
     };
     "engine.io-client-1.3.1" = {
@@ -24209,15 +24353,6 @@ let
         sha512 = "bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==";
       };
     };
-    "envinfo-7.7.3" = {
-      name = "envinfo";
-      packageName = "envinfo";
-      version = "7.7.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/envinfo/-/envinfo-7.7.3.tgz";
-        sha512 = "46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA==";
-      };
-    };
     "envinfo-7.8.1" = {
       name = "envinfo";
       packageName = "envinfo";
@@ -24506,6 +24641,15 @@ let
         sha512 = "p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==";
       };
     };
+    "esbuild-0.12.29" = {
+      name = "esbuild";
+      packageName = "esbuild";
+      version = "0.12.29";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esbuild/-/esbuild-0.12.29.tgz";
+        sha512 = "w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==";
+      };
+    };
     "esc-exit-3.0.0" = {
       name = "esc-exit";
       packageName = "esc-exit";
@@ -24695,6 +24839,15 @@ let
         sha512 = "VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==";
       };
     };
+    "eslint-8.3.0" = {
+      name = "eslint";
+      packageName = "eslint";
+      version = "8.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz";
+        sha512 = "aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==";
+      };
+    };
     "eslint-formatter-pretty-4.1.0" = {
       name = "eslint-formatter-pretty";
       packageName = "eslint-formatter-pretty";
@@ -24704,13 +24857,13 @@ let
         sha512 = "IsUTtGxF1hrH6lMWiSl1WbGaiP01eT6kzywdY1U+zLc0MP+nwEnUiS9UI8IaOTUhTeQJLlCEWIbXINBH4YJbBQ==";
       };
     };
-    "eslint-plugin-no-unsanitized-3.1.5" = {
+    "eslint-plugin-no-unsanitized-4.0.0" = {
       name = "eslint-plugin-no-unsanitized";
       packageName = "eslint-plugin-no-unsanitized";
-      version = "3.1.5";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-3.1.5.tgz";
-        sha512 = "s/6w++p1590h/H/dE2Wo660bOkaM/3OEK14Y7xm1UT0bafxkKw1Cq0ksjxkxLdH/WWd014DlsLKuD6CyNrR2Dw==";
+        url = "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-4.0.0.tgz";
+        sha512 = "Wguc3EZS+7BJ/Pgu8C1/G86eXHUIRz4ZHEhPlwVkS42MbHEyfh8Wm+pDRVAg73EE0TR//SbjkPlHr93yLJT10g==";
       };
     };
     "eslint-plugin-vue-6.2.2" = {
@@ -24767,13 +24920,13 @@ let
         sha512 = "2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==";
       };
     };
-    "eslint-scope-6.0.0" = {
+    "eslint-scope-7.1.0" = {
       name = "eslint-scope";
       packageName = "eslint-scope";
-      version = "6.0.0";
+      version = "7.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-6.0.0.tgz";
-        sha512 = "uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==";
+        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz";
+        sha512 = "aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==";
       };
     };
     "eslint-utils-1.4.3" = {
@@ -24821,15 +24974,6 @@ let
         sha512 = "0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==";
       };
     };
-    "eslint-visitor-keys-3.0.0" = {
-      name = "eslint-visitor-keys";
-      packageName = "eslint-visitor-keys";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.0.0.tgz";
-        sha512 = "mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==";
-      };
-    };
     "eslint-visitor-keys-3.1.0" = {
       name = "eslint-visitor-keys";
       packageName = "eslint-visitor-keys";
@@ -24902,13 +25046,22 @@ let
         sha512 = "v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==";
       };
     };
-    "espree-9.0.0" = {
+    "espree-9.1.0" = {
       name = "espree";
       packageName = "espree";
-      version = "9.0.0";
+      version = "9.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/espree/-/espree-9.1.0.tgz";
+        sha512 = "ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==";
+      };
+    };
+    "espree-9.2.0" = {
+      name = "espree";
+      packageName = "espree";
+      version = "9.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/espree/-/espree-9.0.0.tgz";
-        sha512 = "r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==";
+        url = "https://registry.npmjs.org/espree/-/espree-9.2.0.tgz";
+        sha512 = "oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==";
       };
     };
     "esprima-1.1.1" = {
@@ -25676,13 +25829,22 @@ let
         sha1 = "a793d3ac0cad4c6ab571e9968fbbab6cb2532929";
       };
     };
-    "expo-pwa-0.0.102" = {
+    "expo-modules-autolinking-0.4.0" = {
+      name = "expo-modules-autolinking";
+      packageName = "expo-modules-autolinking";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-0.4.0.tgz";
+        sha512 = "GRGHbQ4b/aOtEup/oA6YVS7OOBKqU4sNLhoiTkEJWXmYDRERZiRvp8N2krQtn54y5PqucftqlBrMbdCinTouqg==";
+      };
+    };
+    "expo-pwa-0.0.108" = {
       name = "expo-pwa";
       packageName = "expo-pwa";
-      version = "0.0.102";
+      version = "0.0.108";
       src = fetchurl {
-        url = "https://registry.npmjs.org/expo-pwa/-/expo-pwa-0.0.102.tgz";
-        sha512 = "8vqf+hXpQhzDvEj0Wxx3bD4ZtZTU200F4qGO7QFv16Ji5yGPYgb7bAPokUU5v2DF6q0gsDgEF0WtqCU67lScgQ==";
+        url = "https://registry.npmjs.org/expo-pwa/-/expo-pwa-0.0.108.tgz";
+        sha512 = "+DIFOpzx5oPOYbm7PqCCZVyVZQGJ78r9Ra1rCri2QiYSyH+tS8Yzns1885SdcSh0xLMW7I0ZhKrFs/RB++u7fg==";
       };
     };
     "express-2.5.11" = {
@@ -25820,13 +25982,13 @@ let
         sha1 = "f5fc2f9fa9e9a8578634f10e86ba5a4346b96f4f";
       };
     };
-    "express-validator-6.13.0" = {
+    "express-validator-6.14.0" = {
       name = "express-validator";
       packageName = "express-validator";
-      version = "6.13.0";
+      version = "6.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/express-validator/-/express-validator-6.13.0.tgz";
-        sha512 = "gvLqMFPwEm+C1CQlF3l695ubY1Shd3AtfI5JDYXM0Ju0A2GsGX+VjjQN7TcHXF6cO8wPgU8hSSFqWecBR0Gx1g==";
+        url = "https://registry.npmjs.org/express-validator/-/express-validator-6.14.0.tgz";
+        sha512 = "ZWHJfnRgePp3FKRSKMtnZVnD1s8ZchWD+jSl7UMseGIqhweCo1Z9916/xXBbJAa6PrA3pUZfkOvIsHZG4ZtIMw==";
       };
     };
     "express-ws-2.0.0" = {
@@ -25991,6 +26153,15 @@ let
         sha512 = "HNuNPCXRMqJDQ1OHAUehoY+0JVCnw9Y/H22FQzYVwo8Ulgew98AGDu0grnY5c7xwiXHjQa6yJ/1dxLCI/xqTyQ==";
       };
     };
+    "extract-files-11.0.0" = {
+      name = "extract-files";
+      packageName = "extract-files";
+      version = "11.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extract-files/-/extract-files-11.0.0.tgz";
+        sha512 = "FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==";
+      };
+    };
     "extract-files-9.0.0" = {
       name = "extract-files";
       packageName = "extract-files";
@@ -26486,15 +26657,6 @@ let
         sha1 = "25c7c89cb1f9077f8891bbe61d8f390eae256f1e";
       };
     };
-    "fecha-2.3.3" = {
-      name = "fecha";
-      packageName = "fecha";
-      version = "2.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz";
-        sha512 = "lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==";
-      };
-    };
     "fecha-4.2.1" = {
       name = "fecha";
       packageName = "fecha";
@@ -26675,13 +26837,13 @@ let
         sha512 = "uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==";
       };
     };
-    "file-type-14.7.1" = {
+    "file-type-16.2.0" = {
       name = "file-type";
       packageName = "file-type";
-      version = "14.7.1";
+      version = "16.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/file-type/-/file-type-14.7.1.tgz";
-        sha512 = "sXAMgFk67fQLcetXustxfKX+PZgHIUFn96Xld9uH8aXPdX3xOp0/jg9OdouVTvQrf7mrn+wAa4jN/y9fUOOiRA==";
+        url = "https://registry.npmjs.org/file-type/-/file-type-16.2.0.tgz";
+        sha512 = "1Wwww3mmZCMmLjBfslCluwt2mxH80GsAXYrvPnfQ42G1EGWag336kB1iyCgyn7UXiKY3cJrNykXPrCwA7xb5Ag==";
       };
     };
     "file-type-16.5.3" = {
@@ -26792,13 +26954,13 @@ let
         sha512 = "ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==";
       };
     };
-    "filenamify-4.1.0" = {
+    "filenamify-4.2.0" = {
       name = "filenamify";
       packageName = "filenamify";
-      version = "4.1.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/filenamify/-/filenamify-4.1.0.tgz";
-        sha512 = "KQV/uJDI9VQgN7sHH1Zbk6+42cD6mnQ2HONzkXUfPJ+K2FC8GZ1dpewbbHw0Sz8Tf5k3EVdHVayM4DoAwWlmtg==";
+        url = "https://registry.npmjs.org/filenamify/-/filenamify-4.2.0.tgz";
+        sha512 = "pkgE+4p7N1n7QieOopmn3TqJaefjdWXwEkj2XLZJLKfOgcQKkn11ahvGNgTD8mLggexLiDFQxeTs14xVU22XPA==";
       };
     };
     "filenamify-4.3.0" = {
@@ -27116,13 +27278,13 @@ let
         sha512 = "ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==";
       };
     };
-    "firefox-profile-4.2.1" = {
+    "firefox-profile-4.2.2" = {
       name = "firefox-profile";
       packageName = "firefox-profile";
-      version = "4.2.1";
+      version = "4.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.2.1.tgz";
-        sha512 = "KyA5ruS7V1nXpaHlJrKPW1jkoc9bq/WKquaKuca/ETembuxcBQPEPpxAp0biwjQCPf3sBslN/heZLdfa5Eotzg==";
+        url = "https://registry.npmjs.org/firefox-profile/-/firefox-profile-4.2.2.tgz";
+        sha512 = "3kI17Xl9dL9AeRkpV1yahsJ+UbekkPtlQswKrIsTY1NLgxtEOR4R19rjGGz5+7/rP8Jt6fvxHk+Bai9R6Eai3w==";
       };
     };
     "first-chunk-stream-2.0.0" = {
@@ -27242,15 +27404,6 @@ let
         sha1 = "248cf79a3da7d7dc379e2a11c92a2719cbb540f6";
       };
     };
-    "flatstr-1.0.12" = {
-      name = "flatstr";
-      packageName = "flatstr";
-      version = "1.0.12";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz";
-        sha512 = "4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==";
-      };
-    };
     "flatted-2.0.2" = {
       name = "flatted";
       packageName = "flatted";
@@ -27296,13 +27449,13 @@ let
         sha512 = "jlbUu0XkbpXeXhan5xyTqVK1jmEKNxE8hpzznI3TThHTr76GiFwK0iRzhDo4KNy+S9h/KxHaqVhTP86vA6wHCg==";
       };
     };
-    "flow-parser-0.164.0" = {
+    "flow-parser-0.168.0" = {
       name = "flow-parser";
       packageName = "flow-parser";
-      version = "0.164.0";
+      version = "0.168.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.164.0.tgz";
-        sha512 = "aJWAhnazcz0o8xIbCW5LBTf+tnsAtLwaMSCcRqA15UTkPBY1Vq1vy1WEPKwcWsve5tos5kkOeCXgd/Nal+LUUQ==";
+        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.168.0.tgz";
+        sha512 = "YMlc+6vvyDPqWKOpzmyifJXBbwlNdqznuy8YBHxX1/90F8d+NnhsxMe1u/ok5LNvNJVJ2TVMkWudu0BUKOSawA==";
       };
     };
     "fluent-ffmpeg-2.1.2" = {
@@ -27449,13 +27602,13 @@ let
         sha512 = "GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==";
       };
     };
-    "follow-redirects-1.14.5" = {
+    "follow-redirects-1.14.6" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.14.5";
+      version = "1.14.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz";
-        sha512 = "wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz";
+        sha512 = "fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==";
       };
     };
     "follow-redirects-1.5.10" = {
@@ -27575,13 +27728,13 @@ let
         sha512 = "DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==";
       };
     };
-    "fork-ts-checker-webpack-plugin-6.3.4" = {
+    "fork-ts-checker-webpack-plugin-6.5.0" = {
       name = "fork-ts-checker-webpack-plugin";
       packageName = "fork-ts-checker-webpack-plugin";
-      version = "6.3.4";
+      version = "6.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.3.4.tgz";
-        sha512 = "z0dns2NXH9NHH0wpW6iuUmyXYRN9BI2Lqnv+RCdL+9GXSW6tKUqYnwf+h3ZaucJsbsrdobdxuOELGgm1xVZITA==";
+        url = "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz";
+        sha512 = "cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==";
       };
     };
     "form-data-1.0.0-rc3" = {
@@ -27638,6 +27791,15 @@ let
         sha512 = "ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==";
       };
     };
+    "form-data-encoder-1.7.1" = {
+      name = "form-data-encoder";
+      packageName = "form-data-encoder";
+      version = "1.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz";
+        sha512 = "EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==";
+      };
+    };
     "form-urlencoded-4.5.1" = {
       name = "form-urlencoded";
       packageName = "form-urlencoded";
@@ -27656,6 +27818,15 @@ let
         sha1 = "d6170107e9efdc4ed30c9dc39016df942b5cb58b";
       };
     };
+    "formdata-node-4.3.1" = {
+      name = "formdata-node";
+      packageName = "formdata-node";
+      version = "4.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/formdata-node/-/formdata-node-4.3.1.tgz";
+        sha512 = "8xKSa9et4zb+yziWsD/bI+EYjdg1z2p9EpKr+o+Yk12F/wP66bmDdvjj2ZXd2K/MJlR3HBzWnuV7f82jzHRqCA==";
+      };
+    };
     "formidable-1.0.11" = {
       name = "formidable";
       packageName = "formidable";
@@ -28223,13 +28394,13 @@ let
         sha1 = "979e22f9451b4b38f051f7937c919dbacc692958";
       };
     };
-    "fx-runner-1.1.0" = {
+    "fx-runner-1.2.0" = {
       name = "fx-runner";
       packageName = "fx-runner";
-      version = "1.1.0";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fx-runner/-/fx-runner-1.1.0.tgz";
-        sha512 = "v/Eo69DDFW30zPdvjCYVXddjVvLy2xGeRbg0S18bPd8kEc0q9VsDoDkjyOxY5lTZsAqcQGy0OWjs3HCfRVBNSg==";
+        url = "https://registry.npmjs.org/fx-runner/-/fx-runner-1.2.0.tgz";
+        sha512 = "/zR9BmHF8h4OaVJ+fHHJBv/5FdPV9mjOAPIscQZbAijm7Aa15Ls/P8UBHD5OKU5jwu2niTxkkzzHKITE7oCMoQ==";
       };
     };
     "galactus-0.2.1" = {
@@ -28241,31 +28412,31 @@ let
         sha1 = "cbed2d20a40c1f5679a35908e2b9415733e78db9";
       };
     };
-    "gatsby-core-utils-3.1.3" = {
+    "gatsby-core-utils-3.4.0" = {
       name = "gatsby-core-utils";
       packageName = "gatsby-core-utils";
-      version = "3.1.3";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.1.3.tgz";
-        sha512 = "+pg2i3DYVLzmJ/67SVGM+zVxerilGCbcgVxDoN58Y+Htv5TwogUWzPymfoFrJEsWGhlVKlYq7I8jVWSXPzwMHw==";
+        url = "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.4.0.tgz";
+        sha512 = "dYQpyo1BLGJzxQOXgGs1Fbj7jzGj5cKAIPYz2hz2l4Aus6skwjjaUlOjZlrWIahNHoLkx3mH0f5y6E8205T/aQ==";
       };
     };
-    "gatsby-recipes-1.1.3" = {
+    "gatsby-recipes-1.4.0" = {
       name = "gatsby-recipes";
       packageName = "gatsby-recipes";
-      version = "1.1.3";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.1.3.tgz";
-        sha512 = "AdO9Y7vtpa0VSWXe3gZIeIUDJ6/j/MeAkpkuJHbbU8hix9gtbVPoOcmF8VFJUMALNRzhhFsgqRN2mK6jXJlang==";
+        url = "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-1.4.0.tgz";
+        sha512 = "4KJIKe4nInKBX8uYieC1Jt1+VJz4RadGJeMJPx0JckF8/UbXETwLTOhQQZ8bqDBQaanXqDfATdp4D/a1O9C2DA==";
       };
     };
-    "gatsby-telemetry-3.1.3" = {
+    "gatsby-telemetry-3.4.0" = {
       name = "gatsby-telemetry";
       packageName = "gatsby-telemetry";
-      version = "3.1.3";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.1.3.tgz";
-        sha512 = "vZSj67F4vzoqqK5CyNIRTDTWOqhBYkMey+i6swY3H51tehGTHRyzzOhJorQOJa76cQOcOMXr1/vvxX1T84Y96g==";
+        url = "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-3.4.0.tgz";
+        sha512 = "c5N7x4GkOyg5WUQN0DPeCHkjPvZ3c1yVs43dDPN5MZAqYiyTqzBJ9BXCMb7dBtFDVQB25b+Z96FUTQXfitrWww==";
       };
     };
     "gauge-1.2.7" = {
@@ -28286,13 +28457,22 @@ let
         sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
       };
     };
-    "gauge-3.0.1" = {
+    "gauge-3.0.2" = {
       name = "gauge";
       packageName = "gauge";
-      version = "3.0.1";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz";
+        sha512 = "+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==";
+      };
+    };
+    "gauge-4.0.0" = {
+      name = "gauge";
+      packageName = "gauge";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gauge/-/gauge-3.0.1.tgz";
-        sha512 = "6STz6KdQgxO4S/ko+AbjlFGGdGcknluoqU+79GOFCDqqyYj5OanQf9AjxwN0jCidtT+ziPMmPSt9E4hfQ0CwIQ==";
+        url = "https://registry.npmjs.org/gauge/-/gauge-4.0.0.tgz";
+        sha512 = "F8sU45yQpjQjxKkm1UOAhf0U/O0aFt//Fl7hsrNVto+patMHjs7dPI9mFOGUKbhrgKm0S3EjW3scMFuQmWSROw==";
       };
     };
     "gaxios-2.3.4" = {
@@ -29313,15 +29493,6 @@ let
         sha512 = "iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==";
       };
     };
-    "globby-11.0.3" = {
-      name = "globby";
-      packageName = "globby";
-      version = "11.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz";
-        sha512 = "ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==";
-      };
-    };
     "globby-11.0.4" = {
       name = "globby";
       packageName = "globby";
@@ -29457,13 +29628,13 @@ let
         sha512 = "Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ==";
       };
     };
-    "google-auth-library-7.10.2" = {
+    "google-auth-library-7.11.0" = {
       name = "google-auth-library";
       packageName = "google-auth-library";
-      version = "7.10.2";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.10.2.tgz";
-        sha512 = "M37o9Kxa/TLvOLgF71SXvLeVEP5sbSTmKl1zlIgl72SFy5PtsU3pOdu8G8MIHHpQ3/NZabDI8rQkA9DvQVKkPA==";
+        url = "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.11.0.tgz";
+        sha512 = "3S5jn2quRumvh9F/Ubf7GFrIq71HZ5a6vqosgdIu105kkk0WtSqc2jGCRqtWWOLRS8SX3AHACMOEDxhyWAQIcg==";
       };
     };
     "google-closure-compiler-js-20170910.0.1" = {
@@ -29529,22 +29700,22 @@ let
         sha512 = "aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==";
       };
     };
-    "got-11.5.2" = {
+    "got-11.8.2" = {
       name = "got";
       packageName = "got";
-      version = "11.5.2";
+      version = "11.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/got/-/got-11.5.2.tgz";
-        sha512 = "yUhpEDLeuGiGJjRSzEq3kvt4zJtAcjKmhIiwNp/eUs75tRlXfWcHo5tcBaMQtnjHWC7nQYT5HkY/l0QOQTkVww==";
+        url = "https://registry.npmjs.org/got/-/got-11.8.2.tgz";
+        sha512 = "D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==";
       };
     };
-    "got-11.8.2" = {
+    "got-11.8.3" = {
       name = "got";
       packageName = "got";
-      version = "11.8.2";
+      version = "11.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/got/-/got-11.8.2.tgz";
-        sha512 = "D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==";
+        url = "https://registry.npmjs.org/got/-/got-11.8.3.tgz";
+        sha512 = "7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==";
       };
     };
     "got-3.3.1" = {
@@ -29736,13 +29907,13 @@ let
         sha512 = "EB3zgGchcabbsU9cFe1j+yxdzKQKAbGUWRb13DsrsMN1yyfmmIq+2+L5MqVWcDCE4V89R5AyUOi7sMOGxdsYtA==";
       };
     };
-    "graphql-15.7.2" = {
+    "graphql-15.8.0" = {
       name = "graphql";
       packageName = "graphql";
-      version = "15.7.2";
+      version = "15.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql/-/graphql-15.7.2.tgz";
-        sha512 = "AnnKk7hFQFmU/2I9YSQf3xw44ctnSFCfp3zE0N6W174gqe9fWG/2rKaKxROK7CcI3XtERpjEKFqts8o319Kf7A==";
+        url = "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz";
+        sha512 = "5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==";
       };
     };
     "graphql-compose-7.25.1" = {
@@ -29763,6 +29934,15 @@ let
         sha512 = "MBY0wEjvcgJtZUyoqpPvOE1e5qPI0hJaa1gKTqjonSFiCsNHX2lykNjpOPcodmAgH1V06ELxhGnm9kcVzqvi/g==";
       };
     };
+    "graphql-config-4.1.0" = {
+      name = "graphql-config";
+      packageName = "graphql-config";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graphql-config/-/graphql-config-4.1.0.tgz";
+        sha512 = "Myqay6pmdcmX3KqoH+bMbeKZ1cTODpHS2CxF1ZzNnfTE+YUpGTcp01bOw6LpzamRb0T/WTYtGFbZeXGo9Hab2Q==";
+      };
+    };
     "graphql-extensions-0.15.0" = {
       name = "graphql-extensions";
       packageName = "graphql-extensions";
@@ -29772,31 +29952,31 @@ let
         sha512 = "bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA==";
       };
     };
-    "graphql-language-service-interface-2.9.1" = {
+    "graphql-language-service-interface-2.10.2" = {
       name = "graphql-language-service-interface";
       packageName = "graphql-language-service-interface";
-      version = "2.9.1";
+      version = "2.10.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-language-service-interface/-/graphql-language-service-interface-2.9.1.tgz";
-        sha512 = "yGsE67fxJBXxY82+rLDMvUpmzpOUM8XFB+k+xOTUyABWs27osKaoGiuDDXAVGg1adhm+cpunWbipe763ZJkAVA==";
+        url = "https://registry.npmjs.org/graphql-language-service-interface/-/graphql-language-service-interface-2.10.2.tgz";
+        sha512 = "RKIEBPhRMWdXY3fxRs99XysTDnEgAvNbu8ov/5iOlnkZsWQNzitjtd0O0l1CutQOQt3iXoHde7w8uhCnKL4tcg==";
       };
     };
-    "graphql-language-service-parser-1.10.0" = {
+    "graphql-language-service-parser-1.10.4" = {
       name = "graphql-language-service-parser";
       packageName = "graphql-language-service-parser";
-      version = "1.10.0";
+      version = "1.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-language-service-parser/-/graphql-language-service-parser-1.10.0.tgz";
-        sha512 = "cLExv0EjqT2hsKdwVTPmKU6eMfjZAjxqywgCPnWD48eJn6tyuePMyG7ye+jpX1PRPPx/cDHfFJGf8sUclchvng==";
+        url = "https://registry.npmjs.org/graphql-language-service-parser/-/graphql-language-service-parser-1.10.4.tgz";
+        sha512 = "duDE+0aeKLFVrb9Kf28U84ZEHhHcvTjWIT6dJbIAQJWBaDoht0D4BK9EIhd94I3DtKRc1JCJb2+70y1lvP/hiA==";
       };
     };
-    "graphql-language-service-types-1.8.3" = {
+    "graphql-language-service-types-1.8.7" = {
       name = "graphql-language-service-types";
       packageName = "graphql-language-service-types";
-      version = "1.8.3";
+      version = "1.8.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-language-service-types/-/graphql-language-service-types-1.8.3.tgz";
-        sha512 = "m+RHnlGkKDcesW/gC4M7I2pSmWJB84uWS6LtnjplO/07JN312nJCJYCwV/DBny2m1fmSOxN7H/o+JW0l56KwBA==";
+        url = "https://registry.npmjs.org/graphql-language-service-types/-/graphql-language-service-types-1.8.7.tgz";
+        sha512 = "LP/Mx0nFBshYEyD0Ny6EVGfacJAGVx+qXtlJP4hLzUdBNOGimfDNtMVIdZANBXHXcM41MDgMHTnyEx2g6/Ttbw==";
       };
     };
     "graphql-language-service-utils-2.5.1" = {
@@ -29808,13 +29988,22 @@ let
         sha512 = "Lzz723cYrYlVN4WVzIyFGg3ogoe+QYAIBfdtDboiIILoy0FTmqbyC2TOErqbmWKqO4NK9xDA95cSRFbWiHYj0g==";
       };
     };
-    "graphql-language-service-utils-2.6.0" = {
+    "graphql-language-service-utils-2.7.1" = {
       name = "graphql-language-service-utils";
       packageName = "graphql-language-service-utils";
-      version = "2.6.0";
+      version = "2.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-language-service-utils/-/graphql-language-service-utils-2.6.0.tgz";
-        sha512 = "idqwmbREixhDuQMcYp8WH0btQT02xZny8MO/HduNTVjnPrmTYnZUbpZ9AejdflmaKoS0o8nNvgXQ0GpIOzbG5g==";
+        url = "https://registry.npmjs.org/graphql-language-service-utils/-/graphql-language-service-utils-2.7.1.tgz";
+        sha512 = "Wci5MbrQj+6d7rfvbORrA9uDlfMysBWYaG49ST5TKylNaXYFf3ixFOa74iM1KtM9eidosUbI3E1JlWi0JaidJA==";
+      };
+    };
+    "graphql-sse-1.0.6" = {
+      name = "graphql-sse";
+      packageName = "graphql-sse";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graphql-sse/-/graphql-sse-1.0.6.tgz";
+        sha512 = "y2mVBN2KwNrzxX2KBncQ6kzc6JWvecxuBernrl0j65hsr6MAS3+Yn8PTFSOgRmtolxugepxveyZVQEuaNEbw3w==";
       };
     };
     "graphql-subscriptions-1.2.1" = {
@@ -29871,6 +30060,15 @@ let
         sha512 = "sHkK9+lUm20/BGawNEWNtVAeJzhZeBg21VmvmLoT5NdGVeZWv5PdIhkcayQIAgjSyyQ17WMKmbDijIPG2On+Ag==";
       };
     };
+    "graphql-ws-5.5.5" = {
+      name = "graphql-ws";
+      packageName = "graphql-ws";
+      version = "5.5.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.5.5.tgz";
+        sha512 = "hvyIS71vs4Tu/yUYHPvGXsTgo0t3arU820+lT5VjZS2go0ewp2LqyCgxEN56CzOG7Iys52eRhHBiD1gGRdiQtw==";
+      };
+    };
     "gray-matter-2.1.1" = {
       name = "gray-matter";
       packageName = "gray-matter";
@@ -30303,15 +30501,6 @@ let
         sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
       };
     };
-    "has-flag-5.0.1" = {
-      name = "has-flag";
-      packageName = "has-flag";
-      version = "5.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/has-flag/-/has-flag-5.0.1.tgz";
-        sha512 = "CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==";
-      };
-    };
     "has-generators-1.0.1" = {
       name = "has-generators";
       packageName = "has-generators";
@@ -30600,13 +30789,13 @@ let
         sha512 = "oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==";
       };
     };
-    "hast-util-is-element-2.1.1" = {
+    "hast-util-is-element-2.1.2" = {
       name = "hast-util-is-element";
       packageName = "hast-util-is-element";
-      version = "2.1.1";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.1.tgz";
-        sha512 = "ag0fiZfRWsPiR1udvnSbaazJLGv8qd8E+/e3rW8rUZhbKG4HNJmFL4QkEceN+22BgE+uozXY30z/s+2dL6Z++g==";
+        url = "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.2.tgz";
+        sha512 = "thjnlGAnwP8ef/GSO1Q8BfVk2gundnc2peGQqEg2kUt/IqesiGg/5mSwN2fE7nLzy61pg88NG6xV+UrGOrx9EA==";
       };
     };
     "hast-util-parse-selector-2.2.5" = {
@@ -30780,13 +30969,13 @@ let
         sha1 = "6e62fae668947f88184d5c156ede7c5695a7e9c8";
       };
     };
-    "heap-0.2.6" = {
+    "heap-0.2.7" = {
       name = "heap";
       packageName = "heap";
-      version = "0.2.6";
+      version = "0.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz";
-        sha1 = "087e1f10b046932fc8594dd9e6d378afc9d1e5ac";
+        url = "https://registry.npmjs.org/heap/-/heap-0.2.7.tgz";
+        sha512 = "2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==";
       };
     };
     "heapdump-0.3.15" = {
@@ -31483,13 +31672,13 @@ let
         sha1 = "3bd6d6fde6e3172c9334c3b33b6c193d80fe1137";
       };
     };
-    "http-parser-js-0.5.3" = {
+    "http-parser-js-0.5.5" = {
       name = "http-parser-js";
       packageName = "http-parser-js";
-      version = "0.5.3";
+      version = "0.5.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz";
-        sha512 = "t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==";
+        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz";
+        sha512 = "x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==";
       };
     };
     "http-proxy-1.18.1" = {
@@ -31573,13 +31762,13 @@ let
         sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
       };
     };
-    "http-signature-1.3.5" = {
+    "http-signature-1.3.6" = {
       name = "http-signature";
       packageName = "http-signature";
-      version = "1.3.5";
+      version = "1.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.3.5.tgz";
-        sha512 = "NwoTQYSJoFt34jSBbwzDHDofoA61NGXzu6wXh95o1Ry62EnmKjXb/nR/RknLeZ3G/uGwrlKNY2z7uPt+Cdl7Tw==";
+        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz";
+        sha512 = "3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==";
       };
     };
     "http-status-1.5.0" = {
@@ -31717,6 +31906,15 @@ let
         sha512 = "PH5GBkXqFxw5+4eKaKRIkD23y6vRd/IXSl7IldyJxEXpDH9SEIXRORkBtkGni/ae2P7RVOw6Wxypd2tGXhha1w==";
       };
     };
+    "humps-2.0.1" = {
+      name = "humps";
+      packageName = "humps";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/humps/-/humps-2.0.1.tgz";
+        sha1 = "dd02ea6081bd0568dc5d073184463957ba9ef9aa";
+      };
+    };
     "hyperbeam-1.1.3" = {
       name = "hyperbeam";
       packageName = "hyperbeam";
@@ -31726,13 +31924,13 @@ let
         sha512 = "yozWXZx3yXVprf/MM9WqMt5WY60Im8k6ELJDNFGfyMeO+UieITbDmkvVwMnKQA3ptWqUK8fPf/tEGgklWh7Weg==";
       };
     };
-    "hyperbee-1.6.3" = {
+    "hyperbee-1.7.0" = {
       name = "hyperbee";
       packageName = "hyperbee";
-      version = "1.6.3";
+      version = "1.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hyperbee/-/hyperbee-1.6.3.tgz";
-        sha512 = "Jn3i5IUrW/8Qv6xKCIJI38omFSZFhv8xnPk7YTlW90zBQJtwfA8qx3NSK27idrl11iXtmCAETnZRDZrmjlMywQ==";
+        url = "https://registry.npmjs.org/hyperbee/-/hyperbee-1.7.0.tgz";
+        sha512 = "gV1maZK6fyD4UlMGTS23bi8/nnsPyq7Jn2Qzr5n3qPCQOUN3Y9vEN4oqnJxTenaOSNvDta6g0wzzSeYxYY21og==";
       };
     };
     "hypercore-7.7.1" = {
@@ -31942,13 +32140,13 @@ let
         sha512 = "FYz4wlXgkQwIPqhzC5TdNMLSE5+GS1IIDJZY/1ZiEPCT2S3COUVZeT5OW4BmW4r5LHLQuOosSwsvnroG9GR59Q==";
       };
     };
-    "i18next-21.3.1" = {
+    "i18next-21.5.4" = {
       name = "i18next";
       packageName = "i18next";
-      version = "21.3.1";
+      version = "21.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/i18next/-/i18next-21.3.1.tgz";
-        sha512 = "VElMm+LoeEuhViVwnDw1gR3snTItK9NJqgok8PZ5WU870MVO1x+5KEbzLO/6GC1zu42Uc3EuGj3nsGMGMNwT0A==";
+        url = "https://registry.npmjs.org/i18next/-/i18next-21.5.4.tgz";
+        sha512 = "ukwRJpLhYg4EUfCOtbaKjlwF71qyel1XMXQN78OkQMcaQG68UzlYgLC6g2fhoTNBvoH2tJkaaqzDumhC9skAhA==";
       };
     };
     "iconv-lite-0.4.19" = {
@@ -32230,6 +32428,15 @@ let
         sha1 = "c2439951455bb39913daf281376f1530e104adf3";
       };
     };
+    "immutable-4.0.0" = {
+      name = "immutable";
+      packageName = "immutable";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz";
+        sha512 = "zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==";
+      };
+    };
     "import-cwd-2.1.0" = {
       name = "import-cwd";
       packageName = "import-cwd";
@@ -32608,15 +32815,6 @@ let
         sha512 = "euuugcNExOx5E+qNM1c+pDF7V8yw/xzCRWEfFk1KjQT9CYtaVAYre13YbMFsYPkGD26dvX6XAffUgkwXme/p5Q==";
       };
     };
-    "ink-use-stdout-dimensions-1.0.5" = {
-      name = "ink-use-stdout-dimensions";
-      packageName = "ink-use-stdout-dimensions";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ink-use-stdout-dimensions/-/ink-use-stdout-dimensions-1.0.5.tgz";
-        sha512 = "rVsqnw4tQEAJUoknU09+zHdDf30GJdkumkHr0iz/TOYMYEZJkYqziQSGJAM+Z+M603EDfO89+Nxyn/Ko2Zknfw==";
-      };
-    };
     "inline-process-browser-1.0.0" = {
       name = "inline-process-browser";
       packageName = "inline-process-browser";
@@ -32752,15 +32950,6 @@ let
         sha512 = "ON8pEJPPCdyjxj+cxsYRe6XfCJepTxANdNnTebsTuQgXpRyZRRT9t4dJwjRubgmvn20CLSEnozRUayXyM9VTXA==";
       };
     };
-    "inquirer-8.1.2" = {
-      name = "inquirer";
-      packageName = "inquirer";
-      version = "8.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/inquirer/-/inquirer-8.1.2.tgz";
-        sha512 = "DHLKJwLPNgkfwNmsuEUKSejJFbkv0FMO9SMiQbjI3n5NQuCrSIBqP66ggqyz2a6t2qEolKrMjhQ3+W/xXgUQ+Q==";
-      };
-    };
     "inquirer-8.2.0" = {
       name = "inquirer";
       packageName = "inquirer";
@@ -32905,6 +33094,15 @@ let
         sha1 = "277b228a87d95ad777d07c13832022406a473423";
       };
     };
+    "intercept-stdout-0.1.2" = {
+      name = "intercept-stdout";
+      packageName = "intercept-stdout";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/intercept-stdout/-/intercept-stdout-0.1.2.tgz";
+        sha1 = "126abf1fae6c509a428a98c61a631559042ae9fd";
+      };
+    };
     "internal-ip-1.2.0" = {
       name = "internal-ip";
       packageName = "internal-ip";
@@ -32923,15 +33121,6 @@ let
         sha512 = "S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==";
       };
     };
-    "internal-ip-6.2.0" = {
-      name = "internal-ip";
-      packageName = "internal-ip";
-      version = "6.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/internal-ip/-/internal-ip-6.2.0.tgz";
-        sha512 = "D8WGsR6yDt8uq7vDMu7mjcR+yRMm3dW8yufyChmszWRjcSHuxLBkR3GdS2HZAjodsaGuCvXeEJpueisXJULghg==";
-      };
-    };
     "internal-slot-1.0.3" = {
       name = "internal-slot";
       packageName = "internal-slot";
@@ -33157,15 +33346,6 @@ let
         sha512 = "JdHz4tSMx1IeFj8yEcQU0i58qiSkOlmZXkZ8+HJ0ROV5KcgLRDO9F703oJ1GeZCvqggrcCbmagD/V7hghY62wA==";
       };
     };
-    "ipaddr.js-0.1.3" = {
-      name = "ipaddr.js";
-      packageName = "ipaddr.js";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-0.1.3.tgz";
-        sha1 = "27a9ca37f148d2102b0ef191ccbf2c51a8f025c6";
-      };
-    };
     "ipaddr.js-1.4.0" = {
       name = "ipaddr.js";
       packageName = "ipaddr.js";
@@ -33211,13 +33391,13 @@ let
         sha512 = "HtszKchBQTcqw1DC09uD7i7vvMayHGM1OCo6AHt5pkgZEyo99ClhHTMJdf+Ezc9ovuNNxcH89QfyclGthjZJOw==";
       };
     };
-    "irc-framework-4.9.0" = {
+    "irc-framework-4.11.0" = {
       name = "irc-framework";
       packageName = "irc-framework";
-      version = "4.9.0";
+      version = "4.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/irc-framework/-/irc-framework-4.9.0.tgz";
-        sha512 = "cUYMnnKwcNpXtEw/CXnEwUtglmaWZbfu0E/0iI7bENC3bASPNfcvcyTsFQcdknpnoFLyh5kXpQCjPBWKTbOQAQ==";
+        url = "https://registry.npmjs.org/irc-framework/-/irc-framework-4.11.0.tgz";
+        sha512 = "A7AoNxAGzViARQv4sVchmTzRiWiQZMCuQVnCOhrggEgAMsc8Vr345U5/JMN5I45gqL4LVfjtruWokp5YiU23Iw==";
       };
     };
     "irc-replies-2.0.1" = {
@@ -33949,15 +34129,6 @@ let
         sha1 = "307a855b3cf1a938b44ea70d2c61106053714f34";
       };
     };
-    "is-ip-3.1.0" = {
-      name = "is-ip";
-      packageName = "is-ip";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz";
-        sha512 = "35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==";
-      };
-    };
     "is-lambda-1.0.1" = {
       name = "is-lambda";
       packageName = "is-lambda";
@@ -34030,13 +34201,13 @@ let
         sha1 = "6910bca5da8c95e784b5751b976cf5a10fee36d2";
       };
     };
-    "is-negative-zero-2.0.1" = {
+    "is-negative-zero-2.0.2" = {
       name = "is-negative-zero";
       packageName = "is-negative-zero";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz";
-        sha512 = "2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==";
+        url = "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz";
+        sha512 = "dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==";
       };
     };
     "is-npm-1.0.0" = {
@@ -34165,13 +34336,13 @@ let
         sha512 = "NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==";
       };
     };
-    "is-options-1.0.1" = {
+    "is-options-1.0.2" = {
       name = "is-options";
       packageName = "is-options";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-options/-/is-options-1.0.1.tgz";
-        sha512 = "2Xj8sA0zDrAcaoWfBiNmc6VPWAgKDpim0T3J9Djq7vbm1UjwbUWzeuLu/FwC46g3cBbAn0E5R0xwVtOobM6Xxg==";
+        url = "https://registry.npmjs.org/is-options/-/is-options-1.0.2.tgz";
+        sha512 = "u+Ai74c8Q74aS8BuHwPdI1jptGOT1FQXgCq8/zv0xRuE+wRgSMEJLj8lVO8Zp9BeGb29BXY6AsNPinfqjkr7Fg==";
       };
     };
     "is-path-cwd-1.0.0" = {
@@ -34669,13 +34840,13 @@ let
         sha512 = "Yd9oD7sgCycVvH8CHy5U4fLXibPwxVw2+diudYbT8ZfAiQDtW1H9WvPRR4+rtN9qOll+r+KAfO4SjO28OPpitA==";
       };
     };
-    "is-valid-domain-0.1.4" = {
+    "is-valid-domain-0.1.5" = {
       name = "is-valid-domain";
       packageName = "is-valid-domain";
-      version = "0.1.4";
+      version = "0.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-valid-domain/-/is-valid-domain-0.1.4.tgz";
-        sha512 = "Caa6rwGze6pihA29wy3T1yNXzd53caGHvL0OfJ8RLtv0tVVzVZGlxFcQ0W8kls/uG0QUrv2B3J9xi/YB5/cfUQ==";
+        url = "https://registry.npmjs.org/is-valid-domain/-/is-valid-domain-0.1.5.tgz";
+        sha512 = "ilzfGo1kXzoVpSLplJWOexoiuAc6mRK+vPlNAeEPVJ29RagETpCz0izg6CZfY72DCuA+PCrEAEJeaecRLMNq5Q==";
       };
     };
     "is-valid-glob-1.0.0" = {
@@ -34705,22 +34876,22 @@ let
         sha512 = "NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==";
       };
     };
-    "is-weakref-1.0.1" = {
+    "is-weakref-1.0.2" = {
       name = "is-weakref";
       packageName = "is-weakref";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz";
-        sha512 = "b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==";
+        url = "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz";
+        sha512 = "qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==";
       };
     };
-    "is-weakset-2.0.1" = {
+    "is-weakset-2.0.2" = {
       name = "is-weakset";
       packageName = "is-weakset";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.1.tgz";
-        sha512 = "pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==";
+        url = "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz";
+        sha512 = "t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==";
       };
     };
     "is-what-3.14.1" = {
@@ -35209,13 +35380,13 @@ let
         sha512 = "KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==";
       };
     };
-    "jest-worker-27.3.1" = {
+    "jest-worker-27.4.5" = {
       name = "jest-worker";
       packageName = "jest-worker";
-      version = "27.3.1";
+      version = "27.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-27.3.1.tgz";
-        sha512 = "ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==";
+        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.5.tgz";
+        sha512 = "f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg==";
       };
     };
     "jimp-compact-0.16.1" = {
@@ -35227,13 +35398,13 @@ let
         sha512 = "dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==";
       };
     };
-    "jitdb-3.5.0" = {
+    "jitdb-4.0.0" = {
       name = "jitdb";
       packageName = "jitdb";
-      version = "3.5.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jitdb/-/jitdb-3.5.0.tgz";
-        sha512 = "VWaJoWOxQ9mNL+YIHJdlgNiGoADh91McAls+AjRbZeG0Ul0/0CVddVNqJpW4WLAFThqgLeFroMyZNIwqOsoUnQ==";
+        url = "https://registry.npmjs.org/jitdb/-/jitdb-4.0.0.tgz";
+        sha512 = "+jpM3dpRHHicXsph8XcuQer8droFbzcKS1lhiB4chxUtNjw+dOcuwX2jvPIj0ufFqcukyKHg45trA0HaoUCkUA==";
       };
     };
     "jju-1.4.0" = {
@@ -35272,13 +35443,13 @@ let
         sha1 = "06d4912255093419477d425633606e0e90782967";
       };
     };
-    "joi-17.4.2" = {
+    "joi-17.5.0" = {
       name = "joi";
       packageName = "joi";
-      version = "17.4.2";
+      version = "17.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/joi/-/joi-17.4.2.tgz";
-        sha512 = "Lm56PP+n0+Z2A2rfRvsfWVDXGEWjXxatPopkQ8qQ5mxCEhwHG+Ettgg5o98FFaxilOxozoa14cFhrE/hOzh/Nw==";
+        url = "https://registry.npmjs.org/joi/-/joi-17.5.0.tgz";
+        sha512 = "R7hR50COp7StzLnDi4ywOXHrBrgNXuUUfJWIR5lPY5Bm/pOD3jZaTwpluUXVLRWcoWZxkrHBBJ5hLxgnlehbdw==";
       };
     };
     "join-component-1.1.0" = {
@@ -35363,13 +35534,13 @@ let
         sha1 = "bcb4045c8dd0539c134bc1488cdd3e768a7a9e51";
       };
     };
-    "jquery.terminal-2.29.4" = {
+    "jquery.terminal-2.30.1" = {
       name = "jquery.terminal";
       packageName = "jquery.terminal";
-      version = "2.29.4";
+      version = "2.30.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.29.4.tgz";
-        sha512 = "ugzctBbbJmw3ZGIhYziBFEK8QnWAZy2q6sZUtmPgjni4ILg59tO0WJI9DkKiDZ4LQtdCVexQ5oP0J90jMN+TzA==";
+        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.30.1.tgz";
+        sha512 = "kZ7mQTKhT/b5js9PYP2uVjyya11wqe2lpEyGgxqQJovmt91Rw0IxGK4iDdvQ1SVPKPbRnJp+OavNR7Uno3fJIg==";
       };
     };
     "js-base64-2.6.4" = {
@@ -35633,13 +35804,13 @@ let
         sha512 = "u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==";
       };
     };
-    "jsdom-18.1.0" = {
+    "jsdom-18.1.1" = {
       name = "jsdom";
       packageName = "jsdom";
-      version = "18.1.0";
+      version = "18.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsdom/-/jsdom-18.1.0.tgz";
-        sha512 = "q6QFAfSGLEUqRJ+GCV6vn6ItZCMARWh1d33wiJZPxc+wMNw7HK71JPmQ4C2lIZAsBH8TiJu4uplach/UcrC6bQ==";
+        url = "https://registry.npmjs.org/jsdom/-/jsdom-18.1.1.tgz";
+        sha512 = "NmJQbjQ/gpS/1at/ce3nCx89HbXL/f5OcenBe8wU1Eik0ROhyUc3LtmG3567dEHAGXkN8rmILW/qtCOPxPHQJw==";
       };
     };
     "jsdom-7.2.2" = {
@@ -35678,67 +35849,49 @@ let
         sha512 = "xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==";
       };
     };
-    "jsii-1.37.0" = {
+    "jsii-1.49.0" = {
       name = "jsii";
       packageName = "jsii";
-      version = "1.37.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-1.37.0.tgz";
-        sha512 = "M+opnlcNb1Ne5igms/OJn/e2ZyQgcCwmqqljuOsHXBMFm7vMOVLSjEUcBYcW7ifJeM1+XYg8+wfuAoZhqY1zCg==";
-      };
-    };
-    "jsii-1.44.0" = {
-      name = "jsii";
-      packageName = "jsii";
-      version = "1.44.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-1.44.0.tgz";
-        sha512 = "6CRoO+swOmTyvuYbMzZJ89pCn3cbCLUUo8qLN9JLZhT5Pc8uJgCdCn67rK9Vu5LRgwI7thOKP2ij9TG+8Ejyng==";
-      };
-    };
-    "jsii-pacmak-1.37.0" = {
-      name = "jsii-pacmak";
-      packageName = "jsii-pacmak";
-      version = "1.37.0";
+      version = "1.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.37.0.tgz";
-        sha512 = "cXLXAOyCqd/QNBy+OfcmMgj8UdNVbJJsKoM/C3SvRgdi+fpQlxh1iDTOcKUwd3/QgMuDMDLvKCCpLmq/YRjreA==";
+        url = "https://registry.npmjs.org/jsii/-/jsii-1.49.0.tgz";
+        sha512 = "0/nn32SoCVgvuDSvVD8UuEwMJZbKbROuYtYQJRNN3n/O9g1jA/cj1eM95rRlu4THdWChTw0FDQxLfcuK+oEwpQ==";
       };
     };
-    "jsii-pacmak-1.44.0" = {
+    "jsii-pacmak-1.49.0" = {
       name = "jsii-pacmak";
       packageName = "jsii-pacmak";
-      version = "1.44.0";
+      version = "1.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.44.0.tgz";
-        sha512 = "m6x3xQM20vi0jIXCpW4lIOYK4dS8jdOIi4mQNQcreraoskYSsrv9d2G2THXGPojF5ozNjnPBNgsIXaH4XdkZKw==";
+        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.49.0.tgz";
+        sha512 = "tU5N3wFAl0MrjR29JBzN96kAmm2swrMW3nK8YRdVOZDgNzhyuh0+d6tFfrS5/b6/LTV2sM+wVH6uH6w0FYWxOw==";
       };
     };
-    "jsii-reflect-1.44.0" = {
+    "jsii-reflect-1.49.0" = {
       name = "jsii-reflect";
       packageName = "jsii-reflect";
-      version = "1.44.0";
+      version = "1.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.44.0.tgz";
-        sha512 = "mgyCUYXqLbOxkNgiENDuRnDB0S0pIKZvqFZPW7fMBTOU8XxVPhZD3DhFGEIj6cPtbTUbz18Kc5qKk3l8mEkmfg==";
+        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.49.0.tgz";
+        sha512 = "aTpvvkSuinx2xtuxEz69LchQAN7eTK79s6M9512c8Ajvg0+brolHR83mzINKp/i3DWrUAZ+fb3su+PuSmqvEuQ==";
       };
     };
-    "jsii-rosetta-1.44.0" = {
+    "jsii-rosetta-1.49.0" = {
       name = "jsii-rosetta";
       packageName = "jsii-rosetta";
-      version = "1.44.0";
+      version = "1.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.44.0.tgz";
-        sha512 = "6loHTZdcNLYs4JNi2Uwe9xY9caFGpKC/OPtj5Je1+zLx/MyiJeAhd448T+Tg8SXRRIZ549ZZ6Xn4COYZQVU+AA==";
+        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.49.0.tgz";
+        sha512 = "rXj3z0qssulanbqSegJIYhHZmJqwjBed4nJYIsxiUstDCM8vQ5QoewSAO4c7+EZV68EklHh3UCKBkBa5QmQ/hw==";
       };
     };
-    "jsii-srcmak-0.1.400" = {
+    "jsii-srcmak-0.1.426" = {
       name = "jsii-srcmak";
       packageName = "jsii-srcmak";
-      version = "0.1.400";
+      version = "0.1.426";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.400.tgz";
-        sha512 = "7FVK/c8VBb33mqUYDHJ5JnnW6xmGFyf7Z5LWf2yVAD1FXk3kj4BYpcnJ5K7eDHpY60PtNeivEzM8vJrrDqPIpQ==";
+        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.426.tgz";
+        sha512 = "qiKIpps0TXLmSNjSS7P4Y8znoKhd+6sI+K/8HGWrzLvmv7XD0IhZYIKvzwGV1McA/JOhhMq05LtECS49309PHQ==";
       };
     };
     "json-bigint-1.0.0" = {
@@ -36029,13 +36182,13 @@ let
         sha512 = "0/4Lv6IenJV0qj2oBdgPIAmFiKKnh8qh7bmLFJ+/ZZHLjSeiL3fKKGX3UryvKPbxFbhV+JcYo9KUC19GJ/Z/4A==";
       };
     };
-    "json2jsii-0.2.53" = {
+    "json2jsii-0.2.81" = {
       name = "json2jsii";
       packageName = "json2jsii";
-      version = "0.2.53";
+      version = "0.2.81";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json2jsii/-/json2jsii-0.2.53.tgz";
-        sha512 = "mofX4sQEkIJWtFn6ZLZZwOpPd/T0KLgiVCN8jFgSxYiED36xp9CXkU+UV3lPRiUMGhDmo/brXRuQ8U7vRutgCg==";
+        url = "https://registry.npmjs.org/json2jsii/-/json2jsii-0.2.81.tgz";
+        sha512 = "0gdbZdLZM8IPb9bva40Iba9GT8944x61CZivTDBygOlrYImR+wVZ4CzQtKwH8Od6BcM5kGSDjoLGNkT20Uhu2w==";
       };
     };
     "json3-3.2.6" = {
@@ -36308,13 +36461,22 @@ let
         sha1 = "a3b87e40298d8c380552d8cc7628a0bb95a22918";
       };
     };
-    "jsprim-1.4.1" = {
+    "jsprim-1.4.2" = {
       name = "jsprim";
       packageName = "jsprim";
-      version = "1.4.1";
+      version = "1.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz";
+        sha512 = "P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==";
+      };
+    };
+    "jsprim-2.0.2" = {
+      name = "jsprim";
+      packageName = "jsprim";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz";
-        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+        url = "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz";
+        sha512 = "gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==";
       };
     };
     "jsqr-1.4.0" = {
@@ -36416,22 +36578,22 @@ let
         sha512 = "xtgnwBBZaLtKspGo6jDX/H0FDsHrn41mQVWhNHge7pZe6Nj2gU2izfC09O0rPU/i97iMcJFVjbecFiTAvmNhLQ==";
       };
     };
-    "just-diff-3.1.1" = {
+    "just-diff-5.0.1" = {
       name = "just-diff";
       packageName = "just-diff";
-      version = "3.1.1";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/just-diff/-/just-diff-3.1.1.tgz";
-        sha512 = "sdMWKjRq8qWZEjDcVA6llnUT8RDEBIfOiGpYFPYa9u+2c39JCsejktSP7mj5eRid5EIvTzIpQ2kDOCw1Nq9BjQ==";
+        url = "https://registry.npmjs.org/just-diff/-/just-diff-5.0.1.tgz";
+        sha512 = "X00TokkRIDotUIf3EV4xUm6ELc/IkqhS/vPSHdWnsM5y0HoNMfEqrazizI7g78lpHvnRSRt/PFfKtRqJCOGIuQ==";
       };
     };
-    "just-diff-apply-3.1.2" = {
+    "just-diff-apply-4.0.1" = {
       name = "just-diff-apply";
       packageName = "just-diff-apply";
-      version = "3.1.2";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-3.1.2.tgz";
-        sha512 = "TCa7ZdxCeq6q3Rgms2JCRHTCfWAETPZ8SzYUbkYF6KR3I03sN29DaOIC+xyWboIcMvjAsD5iG2u/RWzHD8XpgQ==";
+        url = "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-4.0.1.tgz";
+        sha512 = "AKOkzB5P6FkfP21UlZVX/OPXx/sC2GagpLX9cBxqHqDuRjwmZ/AJRKSNrB9jHPpRW1W1ONs6gly1gW46t055nQ==";
       };
     };
     "jwa-1.4.1" = {
@@ -36839,6 +37001,15 @@ let
         sha512 = "8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==";
       };
     };
+    "klona-2.0.5" = {
+      name = "klona";
+      packageName = "klona";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz";
+        sha512 = "pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==";
+      };
+    };
     "knockout-3.5.1" = {
       name = "knockout";
       packageName = "knockout";
@@ -37118,13 +37289,13 @@ let
         sha1 = "544ff7032b7b83c68f0701328d9297aa694340f9";
       };
     };
-    "ldapjs-2.1.1" = {
+    "ldapjs-2.3.1" = {
       name = "ldapjs";
       packageName = "ldapjs";
-      version = "2.1.1";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ldapjs/-/ldapjs-2.1.1.tgz";
-        sha512 = "XzF2BEGeM/nenYDAJvkDMYovZ07fIGalrYD+suprSqUWPCWpoa+a4vWl5g8o/En85m6NHWBpirDFNClWLAd77w==";
+        url = "https://registry.npmjs.org/ldapjs/-/ldapjs-2.3.1.tgz";
+        sha512 = "kf0tHHLrpwKaBAQOhYHXgdeh2PkFuCCxWgLb1MRn67ZQVo787D2pij3mmHVZx193GIdM8xcfi8HF6AIYYnj0fQ==";
       };
     };
     "lead-1.0.0" = {
@@ -37361,13 +37532,13 @@ let
         sha1 = "22c59bcaefaa9a8ef359cf759784e4bf106aea1b";
       };
     };
-    "libnested-1.5.0" = {
+    "libnested-1.5.1" = {
       name = "libnested";
       packageName = "libnested";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/libnested/-/libnested-1.5.0.tgz";
-        sha512 = "IR5ASkAU4NHTN1JFeP9bYvhARhaBg8VD8yUcmvNIvFWg6L3dsM2yK1A9EM6MpPvWYKH9SEiljB59ZUa5s2pYnA==";
+        url = "https://registry.npmjs.org/libnested/-/libnested-1.5.1.tgz";
+        sha512 = "mA68lhvC5NypD/21rBNziTmqWaukivdbbDkWnXrry8iCV0/PuD8GSxa8W+ZtJwAOzvu/AdOx/YEb9NbqPq6s5Q==";
       };
     };
     "libnpmaccess-4.0.3" = {
@@ -37487,6 +37658,24 @@ let
         sha512 = "5i0XgY+PSaGmMQTuVdtnzDg0LiTp1krfH4seefFLJNFb6Hunxic00D/roybGgd9hlbqeGmGYXZ+YQpATKQtblA==";
       };
     };
+    "lightning-5.1.1" = {
+      name = "lightning";
+      packageName = "lightning";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lightning/-/lightning-5.1.1.tgz";
+        sha512 = "KsLcijLhonCRwa9HiAyluIeH3Iju2W0w365/Nd5f6I157zHhnRIZAyCc2QgzklhN1yiDl2CbBJ7AGgM1RUOm7w==";
+      };
+    };
+    "lightning-5.2.1" = {
+      name = "lightning";
+      packageName = "lightning";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lightning/-/lightning-5.2.1.tgz";
+        sha512 = "Mt9J8OvPC0A1xeNhT6mqWiBefer6hEVosLPiqBXJ1BsNPhGYAIEEuWCWT3Yy0biPm6FUotAdfb1IO6B4NILBhg==";
+      };
+    };
     "lilconfig-2.0.4" = {
       name = "lilconfig";
       packageName = "lilconfig";
@@ -37532,13 +37721,13 @@ let
         sha1 = "17e44818da0ac335675ba300954f94ef670e66fd";
       };
     };
-    "lines-and-columns-1.1.6" = {
+    "lines-and-columns-1.2.4" = {
       name = "lines-and-columns";
       packageName = "lines-and-columns";
-      version = "1.1.6";
+      version = "1.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz";
-        sha1 = "1c00c743b433cd0a4e80758f7b64a57440d9ff00";
+        url = "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz";
+        sha512 = "7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==";
       };
     };
     "linewise-0.0.3" = {
@@ -37550,13 +37739,13 @@ let
         sha1 = "bf967ba0dd31faaf09ab5bdb3676ad7f2aa18493";
       };
     };
-    "link-check-4.5.4" = {
+    "link-check-5.0.1" = {
       name = "link-check";
       packageName = "link-check";
-      version = "4.5.4";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/link-check/-/link-check-4.5.4.tgz";
-        sha512 = "VdjiYrIBNHtqH7NEvIlF/4i0V9xQWkoBry+65DtmmyKyD5qBZ2U9fCJYx75SI5Ms4ILJzGlNNojPKbPMpg5Spg==";
+        url = "https://registry.npmjs.org/link-check/-/link-check-5.0.1.tgz";
+        sha512 = "SAPnWm0XYp6cke1ho9DieUJGeSaQ6v7LVvK6dSO52zDuEGDryvlPlw0XjB7LKyHFzXRsgg9DSGu3j88U/NoFQg==";
       };
     };
     "linkify-it-2.2.0" = {
@@ -37568,15 +37757,6 @@ let
         sha512 = "GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==";
       };
     };
-    "linkify-it-3.0.2" = {
-      name = "linkify-it";
-      packageName = "linkify-it";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.2.tgz";
-        sha512 = "gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ==";
-      };
-    };
     "linkify-it-3.0.3" = {
       name = "linkify-it";
       packageName = "linkify-it";
@@ -37676,6 +37856,24 @@ let
         sha512 = "20ZIPPyGI4odh/Jxq6Lawtc+Zx7MkPuxnn34TuhZpM6ppwVbSGJSuJPctLrhZvWdaYYeboz3BITiqI/o4KvChQ==";
       };
     };
+    "ln-service-53.1.2" = {
+      name = "ln-service";
+      packageName = "ln-service";
+      version = "53.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ln-service/-/ln-service-53.1.2.tgz";
+        sha512 = "suXjhDhulSS5pruRaFQdY3FLf6VMrnDqo1f+RcCFNQN7nvA1mFIT2L6bSrnduRGMFofhlOwUWB5DuLBQgTal5w==";
+      };
+    };
+    "ln-service-53.2.0" = {
+      name = "ln-service";
+      packageName = "ln-service";
+      version = "53.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ln-service/-/ln-service-53.2.0.tgz";
+        sha512 = "4qaKYQV6vRlIja7j5lo5G8srABzFmt/fY+8/EVYhU6hdLhAxNPDUZ8zSQky6bWOwtb2zZYejUZYT2GqI2tfq5w==";
+      };
+    };
     "ln-sync-3.0.1" = {
       name = "ln-sync";
       packageName = "ln-sync";
@@ -37685,6 +37883,15 @@ let
         sha512 = "rCH59pxjqsWrcwse8hL9FdWGMj7L3tGMTzxussOnbM2oEfj9LsvRPxrcj7+mEMhuJ+/OZ8V31jIUwCGwUTMz6w==";
       };
     };
+    "ln-sync-3.3.0" = {
+      name = "ln-sync";
+      packageName = "ln-sync";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ln-sync/-/ln-sync-3.3.0.tgz";
+        sha512 = "FXfoGbvYkR+VyMtRMn6RsW6dujt+jI5cUqXJ36sWdnn5XS60sCEeATWvn48vi60BzqgDFMCX7aDHG5v4s7IRbw==";
+      };
+    };
     "ln-telegram-3.4.2" = {
       name = "ln-telegram";
       packageName = "ln-telegram";
@@ -38036,6 +38243,15 @@ let
         sha512 = "ikQPBTiq/d5m6dfKQlFdIXFzvThPi2Be9/AHxktOnDSfSxE1j9ICbBT5Elk1ke7HSTgM38LHTpmJovo9/klnLg==";
       };
     };
+    "lodash._arraycopy-3.0.0" = {
+      name = "lodash._arraycopy";
+      packageName = "lodash._arraycopy";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz";
+        sha1 = "76e7b7c1f1fb92547374878a562ed06a3e50f6e1";
+      };
+    };
     "lodash._arrayeach-3.0.0" = {
       name = "lodash._arrayeach";
       packageName = "lodash._arrayeach";
@@ -38846,15 +39062,6 @@ let
         sha1 = "4fb54f816652e5ae10e8f72f717a388c7326538a";
       };
     };
-    "lodash.omit-4.5.0" = {
-      name = "lodash.omit";
-      packageName = "lodash.omit";
-      version = "4.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz";
-        sha1 = "6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60";
-      };
-    };
     "lodash.once-4.1.1" = {
       name = "lodash.once";
       packageName = "lodash.once";
@@ -39017,6 +39224,15 @@ let
         sha1 = "c23e91b710242ac70c37f1e1cda9274cc39bf2f4";
       };
     };
+    "lodash.toarray-3.0.2" = {
+      name = "lodash.toarray";
+      packageName = "lodash.toarray";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-3.0.2.tgz";
+        sha1 = "2b204f0fa4f51c285c6f00c81d1cea5a23041179";
+      };
+    };
     "lodash.toarray-4.4.0" = {
       name = "lodash.toarray";
       packageName = "lodash.toarray";
@@ -39161,13 +39377,13 @@ let
         sha512 = "8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==";
       };
     };
-    "log-symbols-5.0.0" = {
+    "log-symbols-5.1.0" = {
       name = "log-symbols";
       packageName = "log-symbols";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/log-symbols/-/log-symbols-5.0.0.tgz";
-        sha512 = "zBsSKauX7sM0kcqrf8VpMRPqcWzU6a/Wi7iEl0QlVSCiIZ4CctaLdfVdiZUn6q2/nenyt392qJqpw9FhNAwqxQ==";
+        url = "https://registry.npmjs.org/log-symbols/-/log-symbols-5.1.0.tgz";
+        sha512 = "l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==";
       };
     };
     "log-update-1.0.2" = {
@@ -39197,6 +39413,15 @@ let
         sha512 = "ILKe88NeMt4gmDvk/eb615U/IVn7K9KWGkoYbdatQ69Z65nj1ZzjM6fHXfcs0Uge+e+EGnMW7DY4T9yko8vWFg==";
       };
     };
+    "log-update-5.0.0" = {
+      name = "log-update";
+      packageName = "log-update";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/log-update/-/log-update-5.0.0.tgz";
+        sha512 = "HovF3knyZX9sleS0OkSJ6f53JEpbzcbomC6/WJ3iuGK8i6CRb6WZ542gO2F3pdQK8hwlijddDefVFhlMpwkOSQ==";
+      };
+    };
     "log4js-3.0.6" = {
       name = "log4js";
       packageName = "log4js";
@@ -39215,15 +39440,6 @@ let
         sha512 = "Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==";
       };
     };
-    "logform-1.10.0" = {
-      name = "logform";
-      packageName = "logform";
-      version = "1.10.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz";
-        sha512 = "em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg==";
-      };
-    };
     "logform-2.3.0" = {
       name = "logform";
       packageName = "logform";
@@ -39242,13 +39458,13 @@ let
         sha512 = "B1Rjay3Ye/JcythUjMt+KLiLIwOjnMJN1M5BRbDgNMsJhmn7yApbx6n1rw7cT3Fi/NA77HDM+y3y1nXvKQVB9Q==";
       };
     };
-    "loglevel-1.7.1" = {
+    "loglevel-1.8.0" = {
       name = "loglevel";
       packageName = "loglevel";
-      version = "1.7.1";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz";
-        sha512 = "Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==";
+        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz";
+        sha512 = "G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==";
       };
     };
     "loglevel-colored-level-prefix-1.0.0" = {
@@ -40017,6 +40233,15 @@ let
         sha512 = "Wjws+uCrVQRqOoJvze4HCqkKl1AsSh95iFAeQDwnyfxM09divCBSXlDR1uTvyUP3Grzpn4Ru8GeCxYPM8vkCQg==";
       };
     };
+    "markdown-it-12.3.0" = {
+      name = "markdown-it";
+      packageName = "markdown-it";
+      version = "12.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.0.tgz";
+        sha512 = "T345UZZ6ejQWTjG6PSEHplzNy5m4kF6zvUpHVDv8Snl/pEU0OxIK0jGg8YLVNwJvT8E0YJC7/2UvssJDk/wQCQ==";
+      };
+    };
     "markdown-it-8.4.2" = {
       name = "markdown-it";
       packageName = "markdown-it";
@@ -40197,13 +40422,13 @@ let
         sha512 = "Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==";
       };
     };
-    "markdown-table-3.0.1" = {
+    "markdown-table-3.0.2" = {
       name = "markdown-table";
       packageName = "markdown-table";
-      version = "3.0.1";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.1.tgz";
-        sha512 = "CBbaYXKSGnE1uLRpKA1SWgIRb2PQrpkllNWpZtZe6VojOJ4ysqiq7/2glYcmKsOYN09QgH/HEBX5hIshAeiK6A==";
+        url = "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.2.tgz";
+        sha512 = "y8j3a5/DkJCmS5x4dMCQL+OR0+2EAq3DOtio1COSHsmW2BGXnNCK3v12hJt1LrUz5iZH5g0LmuYOjDdI+czghA==";
       };
     };
     "markdownlint-0.24.0" = {
@@ -40521,13 +40746,13 @@ let
         sha512 = "2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==";
       };
     };
-    "mdast-util-from-markdown-1.1.0" = {
+    "mdast-util-from-markdown-1.2.0" = {
       name = "mdast-util-from-markdown";
       packageName = "mdast-util-from-markdown";
-      version = "1.1.0";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.1.0.tgz";
-        sha512 = "Mex7IIeIKRpGYNNywpxTfPhfFBTxBL5IVacPMU6GjYF+EkIvy++19cBgxVFyHVd2JpC/chG2IKGqZLffoo7Q1g==";
+        url = "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz";
+        sha512 = "iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==";
       };
     };
     "mdast-util-frontmatter-0.2.0" = {
@@ -40674,13 +40899,13 @@ let
         sha512 = "RDLRkBFmBKCJl6/fQdxxKL2BqNtoPFoNBmQAlj5ZNKOijIWRKjdhPkeufsUOaexLj+78mhJc+L7d1MYka8/LdQ==";
       };
     };
-    "mdast-util-mdx-jsx-1.1.2" = {
+    "mdast-util-mdx-jsx-1.2.0" = {
       name = "mdast-util-mdx-jsx";
       packageName = "mdast-util-mdx-jsx";
-      version = "1.1.2";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-1.1.2.tgz";
-        sha512 = "1/bDUZvPGNVxiAjrVsehMZTaNomihpbIMoMr8/UcAQ4h7itDFhN93LtO9XzQPlEM+CMueCoRYGQfl7N+5R+8Mg==";
+        url = "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-1.2.0.tgz";
+        sha512 = "5+ot/kfxYd3ChgEMwsMUO71oAfYjyRI3pADEK4I7xTmWLGQ8Y7ghm1CG36zUoUvDPxMlIYwQV/9DYHAUWdG4dA==";
       };
     };
     "mdast-util-mdxjs-esm-1.1.1" = {
@@ -40701,13 +40926,13 @@ let
         sha512 = "XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==";
       };
     };
-    "mdast-util-to-markdown-1.2.4" = {
+    "mdast-util-to-markdown-1.2.6" = {
       name = "mdast-util-to-markdown";
       packageName = "mdast-util-to-markdown";
-      version = "1.2.4";
+      version = "1.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.4.tgz";
-        sha512 = "Wive3NvrNS4OY5yYKBADdK1QSlbJUZyZ2ssanITUzNQ7sxMfBANTVjLrAA9BFXshaeG9G77xpOK/z+TTret5Hg==";
+        url = "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.6.tgz";
+        sha512 = "doJZmTEGagHypWvJ8ltinmwUsT9ZaNgNIQW6Gl7jNdsI1QZkTHTimYW561Niy2s8AEPAqEgV0dIh2UOVlSXUJA==";
       };
     };
     "mdast-util-to-nlcst-3.2.3" = {
@@ -40926,13 +41151,13 @@ let
         sha512 = "QKFbPwGCh1ypmc2H8BUYpbapwT/x2AOCYZQogzSui4rUNes7WVMagQXsirPIfp18EarX0SSY9Fpg426nSjew4Q==";
       };
     };
-    "memfs-3.3.0" = {
+    "memfs-3.4.0" = {
       name = "memfs";
       packageName = "memfs";
-      version = "3.3.0";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/memfs/-/memfs-3.3.0.tgz";
-        sha512 = "BEE62uMfKOavX3iG7GYX43QJ+hAeeWnwIAuJ/R6q96jaMtiLzhsxHJC8B1L7fK7Pt/vXDRwb3SG/yBpNGDPqzg==";
+        url = "https://registry.npmjs.org/memfs/-/memfs-3.4.0.tgz";
+        sha512 = "o/RfP0J1d03YwsAxyHxAYs2kyJp55AFkMazlFAZFR2I2IXkxiUTXRabJ6RmNNCQ83LAD2jy52Khj0m3OffpNdA==";
       };
     };
     "memoize-one-5.2.1" = {
@@ -41052,13 +41277,13 @@ let
         sha512 = "ctDyraFPyJDXi6RWgWZ8SyDk2bAsFaBpobprCl7xbcfQamjtfuaN8+lcWUt8ARYfQKb1f8mcPVhQ+Q2ObeD/3A==";
       };
     };
-    "meow-10.1.1" = {
+    "meow-10.1.2" = {
       name = "meow";
       packageName = "meow";
-      version = "10.1.1";
+      version = "10.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/meow/-/meow-10.1.1.tgz";
-        sha512 = "uzOAEBTGujHAD6bVzIQQk5kDTgatxmpVmr1pj9QhwsHLEG2AiB+9F08/wmjrZIk4h5pWxERd7+jqGZywYx3ZFw==";
+        url = "https://registry.npmjs.org/meow/-/meow-10.1.2.tgz";
+        sha512 = "zbuAlN+V/sXlbGchNS9WTWjUzeamwMt/BApKCJi7B0QyZstZaMx0n4Unll/fg0njGtMdC9UP5SAscvOCLYdM+Q==";
       };
     };
     "meow-3.7.0" = {
@@ -41205,13 +41430,13 @@ let
         sha512 = "TIurLf/ustQNMXi5foClGTcEsRvH6DCvxeAKu68OrwHMOSM/M1pgPXb7qe52Svk1ClvmZuAVpLtP5FWKzPr/sw==";
       };
     };
-    "mermaid-8.13.3" = {
+    "mermaid-8.13.6" = {
       name = "mermaid";
       packageName = "mermaid";
-      version = "8.13.3";
+      version = "8.13.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mermaid/-/mermaid-8.13.3.tgz";
-        sha512 = "w6KmDtSzkk856WUVqlBsyLZX0q4Jr35IlxiHTPTaWwMgWHFpI8rEJzcxWoyrpxeT/Rac/vvvSFOZymDTeA0iiA==";
+        url = "https://registry.npmjs.org/mermaid/-/mermaid-8.13.6.tgz";
+        sha512 = "mz8MHq0IyEM7vLyl3fEOWgqMNYrowTS1s8Tx2EC1BGlT0KHpy4BFFgcKlLdor2vxSMSlXq1sAZS+aykFC6uUBA==";
       };
     };
     "meros-1.1.4" = {
@@ -41322,22 +41547,22 @@ let
         sha512 = "+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==";
       };
     };
-    "micromark-3.0.7" = {
+    "micromark-3.0.10" = {
       name = "micromark";
       packageName = "micromark";
-      version = "3.0.7";
+      version = "3.0.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromark/-/micromark-3.0.7.tgz";
-        sha512 = "67ipZ2CzQVsDyH1kqNLh7dLwe5QMPJwjFBGppW7JCLByaSc6ZufV0ywPOxt13MIDAzzmj3wctDL6Ov5w0fOHXw==";
+        url = "https://registry.npmjs.org/micromark/-/micromark-3.0.10.tgz";
+        sha512 = "ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==";
       };
     };
-    "micromark-core-commonmark-1.0.4" = {
+    "micromark-core-commonmark-1.0.6" = {
       name = "micromark-core-commonmark";
       packageName = "micromark-core-commonmark";
-      version = "1.0.4";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.4.tgz";
-        sha512 = "HAtoZisp1M/sQFuw2zoUKGo1pMKod7GSvdM6B2oBU0U2CEN5/C6Tmydmi1rmvEieEhGQsjMyiiSoYgxISNxGFA==";
+        url = "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz";
+        sha512 = "K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==";
       };
     };
     "micromark-extension-footnote-0.3.2" = {
@@ -41394,22 +41619,22 @@ let
         sha512 = "ePiDGH0/lhcngCe8FtH4ARFoxKTUelMp4L7Gg2pujYD5CSMb9PbblnyL+AAMud/SNMyusbS2XDSiPIRcQoNFAw==";
       };
     };
-    "micromark-extension-gfm-autolink-literal-1.0.2" = {
+    "micromark-extension-gfm-autolink-literal-1.0.3" = {
       name = "micromark-extension-gfm-autolink-literal";
       packageName = "micromark-extension-gfm-autolink-literal";
-      version = "1.0.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.2.tgz";
-        sha512 = "z2Asd0v4iV/QoI1l23J1qB6G8IqVWTKmwdlP45YQfdGW47ZzpddyzSxZ78YmlucOLqIbS5H98ekKf9GunFfnLA==";
+        url = "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz";
+        sha512 = "i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==";
       };
     };
-    "micromark-extension-gfm-footnote-1.0.2" = {
+    "micromark-extension-gfm-footnote-1.0.3" = {
       name = "micromark-extension-gfm-footnote";
       packageName = "micromark-extension-gfm-footnote";
-      version = "1.0.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.2.tgz";
-        sha512 = "C6o+B7w1wDM4JjDJeHCTszFYF1q46imElNY6mfXsBfw4E91M9TvEEEt3sy0FbJmGVzdt1pqFVRYWT9ZZ0FjFuA==";
+        url = "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.3.tgz";
+        sha512 = "bn62pC5y39rIo2g1RqZk1NhF7T7cJLuJlbevunQz41U0iPVCdVOFASe5/L1kke+DFKSgfCRhv24+o42cZ1+ADw==";
       };
     };
     "micromark-extension-gfm-strikethrough-0.6.5" = {
@@ -41421,13 +41646,13 @@ let
         sha512 = "PpOKlgokpQRwUesRwWEp+fHjGGkZEejj83k9gU5iXCbDG+XBA92BqnRKYJdfqfkrRcZRgGuPuXb7DaK/DmxOhw==";
       };
     };
-    "micromark-extension-gfm-strikethrough-1.0.3" = {
+    "micromark-extension-gfm-strikethrough-1.0.4" = {
       name = "micromark-extension-gfm-strikethrough";
       packageName = "micromark-extension-gfm-strikethrough";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.3.tgz";
-        sha512 = "PJKhBNyrNIo694ZQCE/FBBQOQSb6YC0Wi5Sv0OCah5XunnNaYbtak9CSv9/eq4YeFMMyd1jX84IRwUSE+7ioLA==";
+        url = "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz";
+        sha512 = "/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==";
       };
     };
     "micromark-extension-gfm-table-0.4.3" = {
@@ -41439,13 +41664,13 @@ let
         sha512 = "hVGvESPq0fk6ALWtomcwmgLvH8ZSVpcPjzi0AjPclB9FsVRgMtGZkUcpE0zgjOCFAznKepF4z3hX8z6e3HODdA==";
       };
     };
-    "micromark-extension-gfm-table-1.0.3" = {
+    "micromark-extension-gfm-table-1.0.5" = {
       name = "micromark-extension-gfm-table";
       packageName = "micromark-extension-gfm-table";
-      version = "1.0.3";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.3.tgz";
-        sha512 = "JIfE1DGi64zzOx39/pGg6cZbiaUAF/MXbBLZnVl4aFz6Mja7GYMZjksfTGm9NzbgZkiZvbD77NLPuwGIRcFMjg==";
+        url = "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz";
+        sha512 = "xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==";
       };
     };
     "micromark-extension-gfm-tagfilter-0.3.0" = {
@@ -41457,13 +41682,13 @@ let
         sha512 = "9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q==";
       };
     };
-    "micromark-extension-gfm-tagfilter-1.0.0" = {
+    "micromark-extension-gfm-tagfilter-1.0.1" = {
       name = "micromark-extension-gfm-tagfilter";
       packageName = "micromark-extension-gfm-tagfilter";
-      version = "1.0.0";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.0.tgz";
-        sha512 = "GGUZhzQrOdHR8RHU2ru6K+4LMlj+pBdNuXRtw5prOflDOk2hHqDB0xEgej1AHJ2VETeycX7tzQh2EmaTUOmSKg==";
+        url = "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz";
+        sha512 = "Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==";
       };
     };
     "micromark-extension-gfm-task-list-item-0.3.3" = {
@@ -41475,22 +41700,22 @@ let
         sha512 = "0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ==";
       };
     };
-    "micromark-extension-gfm-task-list-item-1.0.2" = {
+    "micromark-extension-gfm-task-list-item-1.0.3" = {
       name = "micromark-extension-gfm-task-list-item";
       packageName = "micromark-extension-gfm-task-list-item";
-      version = "1.0.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.2.tgz";
-        sha512 = "8AZib9xxPtppTKig/d00i9uKi96kVgoqin7+TRtGprDb8uTUrN1ZfJ38ga8yUdmu7EDQxr2xH8ltZdbCcmdshg==";
+        url = "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz";
+        sha512 = "PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==";
       };
     };
-    "micromark-extension-mdx-expression-1.0.2" = {
+    "micromark-extension-mdx-expression-1.0.3" = {
       name = "micromark-extension-mdx-expression";
       packageName = "micromark-extension-mdx-expression";
-      version = "1.0.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-1.0.2.tgz";
-        sha512 = "KbkM9D9x/ZOV6gLwaN8izl2ZMI3sg+C4JLuUSmd8zJ4Z2d3mSWrznJRLuXkZcyN9lLaRm4Dz2VPjae3AkC5X1A==";
+        url = "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-1.0.3.tgz";
+        sha512 = "TjYtjEMszWze51NJCZmhv7MEBcgYRgb3tJeMAJ+HQCAaZHHRBaDCccqQzGizR/H4ODefP44wRTgOn2vE5I6nZA==";
       };
     };
     "micromark-extension-mdx-jsx-1.0.2" = {
@@ -41547,13 +41772,13 @@ let
         sha512 = "CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==";
       };
     };
-    "micromark-factory-mdx-expression-1.0.4" = {
+    "micromark-factory-mdx-expression-1.0.5" = {
       name = "micromark-factory-mdx-expression";
       packageName = "micromark-factory-mdx-expression";
-      version = "1.0.4";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-1.0.4.tgz";
-        sha512 = "1mS1Cg/GmvvafgHQvxz4OqhcO1JGwzzTuGh1C8NIUrmnr6/3A1dJiAphHz7kJKI/b9WIr69Q8VswuwyWo576yQ==";
+        url = "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-1.0.5.tgz";
+        sha512 = "1DSMCBeCUj4m01P8uYbNWvOsv+FtpDTcBUcDCdE06sENTBX54lndRs9neWOgsNWfLDm2EzCyNKiUaoJ+mWa/WA==";
       };
     };
     "micromark-factory-space-1.0.0" = {
@@ -41628,13 +41853,13 @@ let
         sha512 = "OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==";
       };
     };
-    "micromark-util-decode-string-1.0.1" = {
+    "micromark-util-decode-string-1.0.2" = {
       name = "micromark-util-decode-string";
       packageName = "micromark-util-decode-string";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.1.tgz";
-        sha512 = "Wf3H6jLaO3iIlHEvblESXaKAr72nK7JtBbLLICPwuZc3eJkMcp4j8rJ5Xv1VbQWMCWWDvKUbVUbE2MfQNznwTA==";
+        url = "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz";
+        sha512 = "DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==";
       };
     };
     "micromark-util-encode-1.0.0" = {
@@ -41700,22 +41925,22 @@ let
         sha512 = "d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==";
       };
     };
-    "micromark-util-symbol-1.0.0" = {
+    "micromark-util-symbol-1.0.1" = {
       name = "micromark-util-symbol";
       packageName = "micromark-util-symbol";
-      version = "1.0.0";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz";
-        sha512 = "NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ==";
+        url = "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz";
+        sha512 = "oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==";
       };
     };
-    "micromark-util-types-1.0.1" = {
+    "micromark-util-types-1.0.2" = {
       name = "micromark-util-types";
       packageName = "micromark-util-types";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.1.tgz";
-        sha512 = "UT0ylWEEy80RFYzK9pEaugTqaxoD/j0Y9WhHpSyitxd99zjoQz7JJ+iKuhPAgOW2MiPSUAx+c09dcqokeyaROA==";
+        url = "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz";
+        sha512 = "DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==";
       };
     };
     "micromatch-2.3.11" = {
@@ -41862,13 +42087,13 @@ let
         sha512 = "BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==";
       };
     };
-    "mime-db-1.44.0" = {
+    "mime-db-1.50.0" = {
       name = "mime-db";
       packageName = "mime-db";
-      version = "1.44.0";
+      version = "1.50.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz";
-        sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz";
+        sha512 = "9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==";
       };
     };
     "mime-db-1.51.0" = {
@@ -41889,13 +42114,13 @@ let
         sha512 = "lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==";
       };
     };
-    "mime-types-2.1.27" = {
+    "mime-types-2.1.33" = {
       name = "mime-types";
       packageName = "mime-types";
-      version = "2.1.27";
+      version = "2.1.33";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz";
-        sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz";
+        sha512 = "plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==";
       };
     };
     "mime-types-2.1.34" = {
@@ -42132,13 +42357,13 @@ let
         sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==";
       };
     };
-    "minipass-3.1.5" = {
+    "minipass-3.1.6" = {
       name = "minipass";
       packageName = "minipass";
-      version = "3.1.5";
+      version = "3.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz";
-        sha512 = "+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==";
+        url = "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz";
+        sha512 = "rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==";
       };
     };
     "minipass-collect-1.0.2" = {
@@ -42357,13 +42582,13 @@ let
         sha512 = "sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==";
       };
     };
-    "mobx-6.3.7" = {
+    "mobx-6.3.9" = {
       name = "mobx";
       packageName = "mobx";
-      version = "6.3.7";
+      version = "6.3.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mobx/-/mobx-6.3.7.tgz";
-        sha512 = "X7yU7eOEyxIBk4gjIi2UIilwdw48gXh0kcZ5ex3Rc+COJsJmJ4SNpf42uYea3aUqb1hedTv5xzJrq5Q55p0P5g==";
+        url = "https://registry.npmjs.org/mobx/-/mobx-6.3.9.tgz";
+        sha512 = "u9vhETRPgx6s+MD2NhGaOQJMJa/qszflwFxKryCXotERWY77ocdrRQUp7Jwt1urjefUXNj3fQbTnKrCV+kBaXw==";
       };
     };
     "mobx-react-7.2.1" = {
@@ -42510,15 +42735,6 @@ let
         sha512 = "9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ==";
       };
     };
-    "moment-timezone-0.5.33" = {
-      name = "moment-timezone";
-      packageName = "moment-timezone";
-      version = "0.5.33";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.33.tgz";
-        sha512 = "PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==";
-      };
-    };
     "moment-timezone-0.5.34" = {
       name = "moment-timezone";
       packageName = "moment-timezone";
@@ -42762,6 +42978,15 @@ let
         sha512 = "np0YLKncuZoTzufbkM6wEKp68EhWJXcU6fq6QqrSwkckd2LlMgd1UqhUJLj6NS/5sZ8dE8LYDWslsltJznnXlg==";
       };
     };
+    "multer-1.4.4" = {
+      name = "multer";
+      packageName = "multer";
+      version = "1.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/multer/-/multer-1.4.4.tgz";
+        sha512 = "2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw==";
+      };
+    };
     "multi-progress-2.0.0" = {
       name = "multi-progress";
       packageName = "multi-progress";
@@ -43041,13 +43266,13 @@ let
         sha512 = "nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==";
       };
     };
-    "mutexify-1.3.1" = {
+    "mutexify-1.4.0" = {
       name = "mutexify";
       packageName = "mutexify";
-      version = "1.3.1";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mutexify/-/mutexify-1.3.1.tgz";
-        sha512 = "nU7mOEuaXiQIB/EgTIjYZJ7g8KqMm2D8l4qp+DqA4jxWOb/tnb1KEoqp+tlbdQIDIAiC1i7j7X/3yHDFXLxr9g==";
+        url = "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz";
+        sha512 = "pbYSsOrSB/AKN5h/WzzLRMFgZhClWccf2XIB4RSMC8JbquiB0e0/SH5AIfdQMdyHmYtv4seU7yV/TvAwPLJ1Yg==";
       };
     };
     "muxrpc-6.5.3" = {
@@ -43392,15 +43617,6 @@ let
         sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
       };
     };
-    "natural-compare-lite-1.4.0" = {
-      name = "natural-compare-lite";
-      packageName = "natural-compare-lite";
-      version = "1.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz";
-        sha1 = "17b09581988979fddafe0201e931ba933c96cbb4";
-      };
-    };
     "natural-orderby-2.0.3" = {
       name = "natural-orderby";
       packageName = "natural-orderby";
@@ -43590,6 +43806,15 @@ let
         sha512 = "6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==";
       };
     };
+    "needle-3.0.0" = {
+      name = "needle";
+      packageName = "needle";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/needle/-/needle-3.0.0.tgz";
+        sha512 = "eGr0qnfHxAjr+Eptl1zr2lgUQUPC1SZfTkg2kFi0kxr1ChJonHUVYobkug8siBKMlyUVVp56MSkp6CSeXH/jgw==";
+      };
+    };
     "negotiator-0.3.0" = {
       name = "negotiator";
       packageName = "negotiator";
@@ -44050,6 +44275,15 @@ let
         sha1 = "5f5665d93351335caabef8f1c554516cf5f1e4e5";
       };
     };
+    "node-domexception-1.0.0" = {
+      name = "node-domexception";
+      packageName = "node-domexception";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz";
+        sha512 = "/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==";
+      };
+    };
     "node-downloader-helper-1.0.19" = {
       name = "node-downloader-helper";
       packageName = "node-downloader-helper";
@@ -44077,16 +44311,6 @@ let
         sha512 = "wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==";
       };
     };
-    "node-emoji-git+https://github.com/laurent22/node-emoji.git" = {
-      name = "node-emoji";
-      packageName = "node-emoji";
-      version = "1.8.1";
-      src = fetchgit {
-        url = "https://github.com/laurent22/node-emoji.git";
-        rev = "9fa01eac463e94dde1316ef8c53089eeef4973b5";
-        sha256 = "224950cc405150c37dbd3c4aa65dc0cfb799b1a57f674e9bb76f993268106406";
-      };
-    };
     "node-environment-flags-1.0.6" = {
       name = "node-environment-flags";
       packageName = "node-environment-flags";
@@ -44141,6 +44365,15 @@ let
         sha512 = "V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==";
       };
     };
+    "node-fetch-2.6.5" = {
+      name = "node-fetch";
+      packageName = "node-fetch";
+      version = "2.6.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz";
+        sha512 = "mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==";
+      };
+    };
     "node-fetch-2.6.6" = {
       name = "node-fetch";
       packageName = "node-fetch";
@@ -44186,15 +44419,6 @@ let
         sha512 = "sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==";
       };
     };
-    "node-forge-0.9.1" = {
-      name = "node-forge";
-      packageName = "node-forge";
-      version = "0.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-forge/-/node-forge-0.9.1.tgz";
-        sha512 = "G6RlQt5Sb4GMBzXvhfkeFmbqR6MzhtnT7VTHuLadjkii3rdYHNdw0m8zA4BTxVIh68FicCQ2NSUANpsqkr9jvQ==";
-      };
-    };
     "node-gyp-3.8.0" = {
       name = "node-gyp";
       packageName = "node-gyp";
@@ -44222,13 +44446,13 @@ let
         sha512 = "CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==";
       };
     };
-    "node-gyp-8.4.0" = {
+    "node-gyp-8.4.1" = {
       name = "node-gyp";
       packageName = "node-gyp";
-      version = "8.4.0";
+      version = "8.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.0.tgz";
-        sha512 = "Bi/oCm5bH6F+FmzfUxJpPaxMEyIhszULGR3TprmTeku8/dMFcdTcypk120NeZqEt54r1BrgEKtm2jJiuIKE28Q==";
+        url = "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz";
+        sha512 = "olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==";
       };
     };
     "node-gyp-build-3.9.0" = {
@@ -44303,15 +44527,6 @@ let
         sha512 = "NMWCSWWc6JbHT5PyWlNT2i8r7PgGYXVntmKawY83k/M0UJScZ5jirb61TLnqKwd815DfBQu+lR3sRw08SPzIaQ==";
       };
     };
-    "node-modules-regexp-1.0.0" = {
-      name = "node-modules-regexp";
-      packageName = "node-modules-regexp";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz";
-        sha1 = "8d9dbe28964a4ac5712e9131642107c71e90ec40";
-      };
-    };
     "node-notifier-8.0.2" = {
       name = "node-notifier";
       packageName = "node-notifier";
@@ -44807,6 +45022,15 @@ let
         sha1 = "df7c3ed5a277c3f9d4b5d819b05311d10a200ae6";
       };
     };
+    "npm-7.24.2" = {
+      name = "npm";
+      packageName = "npm";
+      version = "7.24.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm/-/npm-7.24.2.tgz";
+        sha512 = "120p116CE8VMMZ+hk8IAb1inCPk4Dj3VZw29/n2g6UI77urJKVYb7FZUDW8hY+EBnfsjI/2yrobBgFyzo7YpVQ==";
+      };
+    };
     "npm-bundled-1.1.2" = {
       name = "npm-bundled";
       packageName = "npm-bundled";
@@ -45068,6 +45292,15 @@ let
         sha512 = "AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==";
       };
     };
+    "npmlog-6.0.0" = {
+      name = "npmlog";
+      packageName = "npmlog";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npmlog/-/npmlog-6.0.0.tgz";
+        sha512 = "03ppFRGlsyUaQFbGC2C8QWJN/C/K7PsfyD9aQdhVKAQIH4sQBc8WASqFBP7O+Ut4d2oo5LoeoboB3cGdBZSp6Q==";
+      };
+    };
     "nprogress-0.2.0" = {
       name = "nprogress";
       packageName = "nprogress";
@@ -45294,13 +45527,13 @@ let
         sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
       };
     };
-    "oauth2orize-1.11.0" = {
+    "oauth2orize-1.11.1" = {
       name = "oauth2orize";
       packageName = "oauth2orize";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oauth2orize/-/oauth2orize-1.11.0.tgz";
-        sha1 = "793cef251d45ebdeac32ae40a8b6814faab1d483";
+        url = "https://registry.npmjs.org/oauth2orize/-/oauth2orize-1.11.1.tgz";
+        sha512 = "9dSx/Gwm0J2Rvj4RH9+h7iXVnRXZ6biwWRgb2dCeQhCosODS0nYdM9I/G7BUGsjbgn0pHjGcn1zcCRtzj2SlRA==";
       };
     };
     "object-assign-1.0.0" = {
@@ -45384,13 +45617,13 @@ let
         sha512 = "gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==";
       };
     };
-    "object-inspect-1.11.0" = {
+    "object-inspect-1.11.1" = {
       name = "object-inspect";
       packageName = "object-inspect";
-      version = "1.11.0";
+      version = "1.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz";
-        sha512 = "jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==";
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz";
+        sha512 = "If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==";
       };
     };
     "object-inspect-1.4.1" = {
@@ -45645,13 +45878,13 @@ let
         sha512 = "rH3U4eLHsV+OgkOS29ULiC9JLspwMCyCIH/+BglLPXDxQs13IK8AGD+nVmkGXqGN5JefZu85YhfIi05CsOKWPw==";
       };
     };
-    "office-ui-fabric-react-7.179.2" = {
+    "office-ui-fabric-react-7.180.2" = {
       name = "office-ui-fabric-react";
       packageName = "office-ui-fabric-react";
-      version = "7.179.2";
+      version = "7.180.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.179.2.tgz";
-        sha512 = "OIErGO8lLKOBbQPa/dfTXsWQR+Jp41ruSqA7kEcp6F2cBMzKS862Y8bIr0/SpUUzRhGLsaFIIc/UbCflOn1L5w==";
+        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.180.2.tgz";
+        sha512 = "84cpy9ZlIgI4tH9EL2ueHsywe+NA0sWuutWbd2pFx/QsWPZlXuNDCvJrqCprD+icJje365WCxwsYp8xyll63Tg==";
       };
     };
     "omggif-1.0.10" = {
@@ -45672,6 +45905,15 @@ let
         sha1 = "d977249477f91726949d80e82346dab6ef45216b";
       };
     };
+    "on-exit-leak-free-0.2.0" = {
+      name = "on-exit-leak-free";
+      packageName = "on-exit-leak-free";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz";
+        sha512 = "dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==";
+      };
+    };
     "on-finished-2.2.1" = {
       name = "on-finished";
       packageName = "on-finished";
@@ -45807,6 +46049,15 @@ let
         sha512 = "kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==";
       };
     };
+    "only-0.0.2" = {
+      name = "only";
+      packageName = "only";
+      version = "0.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/only/-/only-0.0.2.tgz";
+        sha1 = "2afde84d03e50b9a8edc444e30610a70295edfb4";
+      };
+    };
     "onml-2.1.0" = {
       name = "onml";
       packageName = "onml";
@@ -45816,13 +46067,13 @@ let
         sha512 = "fvaSZRzprpwLFge/mcwE0CItfniNisVNamDdMK1FQUjh4ArQZ8ZWSkDaJbZc3XaANKZHq0xIa8NJpZ2HSe3oXA==";
       };
     };
-    "oo-ascii-tree-1.44.0" = {
+    "oo-ascii-tree-1.49.0" = {
       name = "oo-ascii-tree";
       packageName = "oo-ascii-tree";
-      version = "1.44.0";
+      version = "1.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.44.0.tgz";
-        sha512 = "31f6M3ID8HKIOOAlyQWlURL0koXyEgjF0U1fiu2BuV8TepwCUDUy6MnKHE/72H9cXAwnBXpJHf0dun4B8D3AlA==";
+        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.49.0.tgz";
+        sha512 = "Y84LTdUO7/ptZRgJqzmxgvuSDlRh23p/mag4T4NTN3TVuBlfg9pvu80Hqo5NEC2Z3GFpUTI5FgIEwiSgqWlevA==";
       };
     };
     "opal-runtime-1.0.11" = {
@@ -45897,15 +46148,6 @@ let
         sha512 = "jB5hAtsDOhCy/FNQJwQJOrGlxLUat482Yr14rbA5l2Zb1eOeoS+ccQPO036C1+z9VDBTmOZqzh1tBbI4myzIYw==";
       };
     };
-    "open-8.3.0" = {
-      name = "open";
-      packageName = "open";
-      version = "8.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/open/-/open-8.3.0.tgz";
-        sha512 = "7INcPWb1UcOwSQxAXTnBJ+FxVV4MPs/X++FWWBtgY69/J5lc+tCteMt/oFK1MnkyHC4VILLa9ntmwKTwDR4Q9w==";
-      };
-    };
     "open-8.4.0" = {
       name = "open";
       packageName = "open";
@@ -46230,15 +46472,6 @@ let
         sha512 = "I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==";
       };
     };
-    "optimism-0.16.1" = {
-      name = "optimism";
-      packageName = "optimism";
-      version = "0.16.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz";
-        sha512 = "64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==";
-      };
-    };
     "optimist-0.2.8" = {
       name = "optimist";
       packageName = "optimist";
@@ -46545,22 +46778,22 @@ let
         sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
       };
     };
-    "ot-builder-1.3.1" = {
+    "ot-builder-1.3.2" = {
       name = "ot-builder";
       packageName = "ot-builder";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ot-builder/-/ot-builder-1.3.1.tgz";
-        sha512 = "D/E2rbNPKGOOyodYEbDEn0nKcPraDuZvIpCPkTeP80+hAxrrhdv2XGE97SGT33pr23EbOiWTJ71gW62KADLmCw==";
+        url = "https://registry.npmjs.org/ot-builder/-/ot-builder-1.3.2.tgz";
+        sha512 = "sWAQ6ZRqzsvlxa81clJ9xMuPHhDVKqDtsGjgZvR4vo+BFlK232PZaFML5seQ0dIZaw/IBP2t2nmyn6s4dauPkQ==";
       };
     };
-    "otb-ttc-bundle-1.3.1" = {
+    "otb-ttc-bundle-1.3.2" = {
       name = "otb-ttc-bundle";
       packageName = "otb-ttc-bundle";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/otb-ttc-bundle/-/otb-ttc-bundle-1.3.1.tgz";
-        sha512 = "OMtFR7CuG6f3Q+Wl1burzRK2Zet2QjlODbUcyy/0GJTFsmz72tWIKNa6rvzcYo7djldeLPy6uzBqGAFwtMJZtw==";
+        url = "https://registry.npmjs.org/otb-ttc-bundle/-/otb-ttc-bundle-1.3.2.tgz";
+        sha512 = "0Ibk+w278i7wjPntVZItgvjTZ5X596OYcSUayo8XndrN94l/M8+GOpH9tJTSCyI/0WKj8DhwI+NA8LZsh42K9w==";
       };
     };
     "ow-0.21.0" = {
@@ -47184,13 +47417,13 @@ let
         sha1 = "ad1f22ce1bf0fdc0d6ddd908af17f351a404b8ac";
       };
     };
-    "paid-services-3.1.2" = {
+    "paid-services-3.2.0" = {
       name = "paid-services";
       packageName = "paid-services";
-      version = "3.1.2";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/paid-services/-/paid-services-3.1.2.tgz";
-        sha512 = "aVjouLGNT4q45PnBt0WoDJBHA6TVG/lQwKgcZAe9EDYOzjWfHonQK7zcN8tB6wZY8kb0FUHXDdfg4oQbR3LQXQ==";
+        url = "https://registry.npmjs.org/paid-services/-/paid-services-3.2.0.tgz";
+        sha512 = "kktETjyuk7ptb1OLdT6pv5eNCzQclfig+Ys+9SSEYvJWklI3QXnoxI1Wpo8FWlAm9tu6SFlr3EcnsncAcu7pZw==";
       };
     };
     "pako-0.2.9" = {
@@ -47328,13 +47561,13 @@ let
         sha512 = "bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==";
       };
     };
-    "parse-conflict-json-1.1.1" = {
+    "parse-conflict-json-2.0.1" = {
       name = "parse-conflict-json";
       packageName = "parse-conflict-json";
-      version = "1.1.1";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-1.1.1.tgz";
-        sha512 = "4gySviBiW5TRl7XHvp1agcS7SOe0KZOjC//71dzZVWJrY9hCrgtvl5v3SyIxCZ4fZF47TxD9nfzmxcx76xmbUw==";
+        url = "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-2.0.1.tgz";
+        sha512 = "Y7nYw+QaSGBto1LB9lgwOR05Rtz5SbuTf+Oe7HJ6SYQ/DHsvRjQ8O03oWdJbvkt6GzDWospgyZbGmjDYL0sDgA==";
       };
     };
     "parse-english-4.2.0" = {
@@ -47373,13 +47606,13 @@ let
         sha512 = "kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==";
       };
     };
-    "parse-entities-3.1.0" = {
+    "parse-entities-4.0.0" = {
       name = "parse-entities";
       packageName = "parse-entities";
-      version = "3.1.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parse-entities/-/parse-entities-3.1.0.tgz";
-        sha512 = "xf2yeHbsfg1vJySsQelVwgtI/67eAndVU05skrr/XN6KFMoVVA95BYrW8y78OfW4jqcuHwB7tlMlLkvbq4WbHQ==";
+        url = "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.0.tgz";
+        sha512 = "5nk9Fn03x3rEhGaX1FU6IDwG/k+GxLXlFAkgrbM1asuAFl3BhdQWvASaIsmwWypRNcZKHPYnIuOSfIWEyEQnPQ==";
       };
     };
     "parse-filepath-1.0.2" = {
@@ -47616,15 +47849,6 @@ let
         sha1 = "9b7f3b0de32be78dc2401b17573ccaf0f6f59d94";
       };
     };
-    "parse5-3.0.3" = {
-      name = "parse5";
-      packageName = "parse5";
-      version = "3.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz";
-        sha512 = "rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==";
-      };
-    };
     "parse5-4.0.0" = {
       name = "parse5";
       packageName = "parse5";
@@ -48201,13 +48425,13 @@ let
         sha512 = "iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==";
       };
     };
-    "peek-readable-4.0.1" = {
+    "peek-readable-4.0.2" = {
       name = "peek-readable";
       packageName = "peek-readable";
-      version = "4.0.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.1.tgz";
-        sha512 = "7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ==";
+        url = "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.2.tgz";
+        sha512 = "9fMaz6zoxw9ypO1KZy5RDJgSupEtu0Q+g/OqqsVHX3rKGR8qehRLYzsFARZ4bVvdvfknKiXvuDbkMnO1g6cRpQ==";
       };
     };
     "peek-stream-1.1.3" = {
@@ -48525,31 +48749,31 @@ let
         sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
       };
     };
-    "pino-6.11.3" = {
+    "pino-7.4.0" = {
       name = "pino";
       packageName = "pino";
-      version = "6.11.3";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pino/-/pino-6.11.3.tgz";
-        sha512 = "drPtqkkSf0ufx2gaea3TryFiBHdNIdXKf5LN0hTM82SXI4xVIve2wLwNg92e1MT6m3jASLu6VO7eGY6+mmGeyw==";
+        url = "https://registry.npmjs.org/pino/-/pino-7.4.0.tgz";
+        sha512 = "qEHLtKcmYcid6s2qjlGTxaLe9Lq1IiGmd74IZb9Obi/FRTaA+ymb8FD/cmOIL4vt6ug/EtmhGwxZbiGhI+7cuQ==";
       };
     };
-    "pino-6.13.3" = {
-      name = "pino";
-      packageName = "pino";
-      version = "6.13.3";
+    "pino-abstract-transport-0.5.0" = {
+      name = "pino-abstract-transport";
+      packageName = "pino-abstract-transport";
+      version = "0.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pino/-/pino-6.13.3.tgz";
-        sha512 = "tJy6qVgkh9MwNgqX1/oYi3ehfl2Y9H0uHyEEMsBe74KinESIjdMrMQDWpcZPpPicg3VV35d/GLQZmo4QgU2Xkg==";
+        url = "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz";
+        sha512 = "+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==";
       };
     };
-    "pino-std-serializers-3.2.0" = {
+    "pino-std-serializers-4.0.0" = {
       name = "pino-std-serializers";
       packageName = "pino-std-serializers";
-      version = "3.2.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz";
-        sha512 = "EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==";
+        url = "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz";
+        sha512 = "cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==";
       };
     };
     "pipe-functions-1.3.0" = {
@@ -48570,13 +48794,13 @@ let
         sha1 = "f8436f8565ed1d97bf3a80632a5397bfd353385f";
       };
     };
-    "pirates-4.0.1" = {
+    "pirates-4.0.4" = {
       name = "pirates";
       packageName = "pirates";
-      version = "4.0.1";
+      version = "4.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz";
-        sha512 = "WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==";
+        url = "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz";
+        sha512 = "ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==";
       };
     };
     "pixelmatch-4.0.2" = {
@@ -48642,13 +48866,13 @@ let
         sha512 = "NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==";
       };
     };
-    "pkg-fetch-3.2.4" = {
+    "pkg-fetch-3.2.5" = {
       name = "pkg-fetch";
       packageName = "pkg-fetch";
-      version = "3.2.4";
+      version = "3.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.2.4.tgz";
-        sha512 = "ewUD26GP86/8+Fu93zrb30CpJjKOtT4maSgm4SwTX9Ujy1pfdUdv+1PubsY9tTJES0iBYItAtqbfkf7Wu5LV9w==";
+        url = "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.2.5.tgz";
+        sha512 = "jPtyX2VTbG+9yaeGsJEBT+3qVN8qfxxfn7n2lmcx1FDSPsr8jwXDRf6BeCNBV+M5aEQmmtpMeKs7ZILQ9YlSPA==";
       };
     };
     "pkg-up-2.0.0" = {
@@ -49066,13 +49290,13 @@ let
         sha512 = "hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==";
       };
     };
-    "postcss-8.3.9" = {
+    "postcss-8.4.5" = {
       name = "postcss";
       packageName = "postcss";
-      version = "8.3.9";
+      version = "8.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-8.3.9.tgz";
-        sha512 = "f/ZFyAKh9Dnqytx5X62jgjhhzttjZS7hMsohcI7HEI5tjELX/HxCy3EFhsRxyzGvrzFF+82XPvCS8T9TFleVJw==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz";
+        sha512 = "jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==";
       };
     };
     "postcss-calc-7.0.5" = {
@@ -49165,6 +49389,15 @@ let
         sha512 = "HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==";
       };
     };
+    "postcss-js-3.0.3" = {
+      name = "postcss-js";
+      packageName = "postcss-js";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-js/-/postcss-js-3.0.3.tgz";
+        sha512 = "gWnoWQXKFw65Hk/mi2+WTQTHdPD5UJdDXZmX073EY/B3BWnYjO4F4t0VneTCnCGQ5E5GsCdMkzPaTXwl3r5dJw==";
+      };
+    };
     "postcss-less-1.1.5" = {
       name = "postcss-less";
       packageName = "postcss-less";
@@ -49363,6 +49596,15 @@ let
         sha512 = "1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==";
       };
     };
+    "postcss-nested-5.0.6" = {
+      name = "postcss-nested";
+      packageName = "postcss-nested";
+      version = "5.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz";
+        sha512 = "rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==";
+      };
+    };
     "postcss-normalize-charset-4.0.1" = {
       name = "postcss-normalize-charset";
       packageName = "postcss-normalize-charset";
@@ -49579,13 +49821,13 @@ let
         sha512 = "36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==";
       };
     };
-    "postcss-selector-parser-6.0.6" = {
+    "postcss-selector-parser-6.0.7" = {
       name = "postcss-selector-parser";
       packageName = "postcss-selector-parser";
-      version = "6.0.6";
+      version = "6.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz";
-        sha512 = "9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==";
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.7.tgz";
+        sha512 = "U+b/Deoi4I/UmE6KOVPpnhS7I7AYdKbhGcat+qTQ27gycvaACvNEw11ba6RrkwVmDVRW7sigWgLj4/KbbJjeDA==";
       };
     };
     "postcss-svgo-4.0.3" = {
@@ -49624,13 +49866,13 @@ let
         sha512 = "pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==";
       };
     };
-    "postcss-value-parser-4.1.0" = {
+    "postcss-value-parser-4.2.0" = {
       name = "postcss-value-parser";
       packageName = "postcss-value-parser";
-      version = "4.1.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz";
-        sha512 = "97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==";
+        url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz";
+        sha512 = "1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==";
       };
     };
     "postgres-array-2.0.0" = {
@@ -49984,15 +50226,6 @@ let
         sha512 = "s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==";
       };
     };
-    "prebuild-install-6.0.1" = {
-      name = "prebuild-install";
-      packageName = "prebuild-install";
-      version = "6.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.0.1.tgz";
-        sha512 = "7GOJrLuow8yeiyv75rmvZyeMGzl8mdEX5gY69d6a6bHWmiPevwqFw+tQavhK0EYMaSg3/KD24cWqeQv1EWsqDQ==";
-      };
-    };
     "prebuild-install-6.1.4" = {
       name = "prebuild-install";
       packageName = "prebuild-install";
@@ -50101,13 +50334,22 @@ let
         sha512 = "7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==";
       };
     };
-    "prettier-2.4.1" = {
+    "prettier-2.5.0" = {
       name = "prettier";
       packageName = "prettier";
-      version = "2.4.1";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz";
-        sha512 = "9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==";
+        url = "https://registry.npmjs.org/prettier/-/prettier-2.5.0.tgz";
+        sha512 = "FM/zAKgWTxj40rH03VxzIPdXmj39SwSjwG0heUcNFwI+EMZJnY93yAiKXM3dObIKAM5TA88werc8T/EwhB45eg==";
+      };
+    };
+    "prettier-2.5.1" = {
+      name = "prettier";
+      packageName = "prettier";
+      version = "2.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz";
+        sha512 = "vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==";
       };
     };
     "prettier-bytes-1.0.4" = {
@@ -50137,13 +50379,13 @@ let
         sha512 = "2UzApPuxi2yRoyMlXMazgR6UcH9DKJhNgCviIwY3ixZ9THWSSrUww5vkiZ3C48WvpFl1M1y/oU63deSy1puWEA==";
       };
     };
-    "prettier-plugin-svelte-2.5.0" = {
+    "prettier-plugin-svelte-2.5.1" = {
       name = "prettier-plugin-svelte";
       packageName = "prettier-plugin-svelte";
-      version = "2.5.0";
+      version = "2.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.5.0.tgz";
-        sha512 = "+iHY2uGChOngrgKielJUnqo74gIL/EO5oeWm8MftFWjEi213lq9QYTOwm1pv4lI1nA61tdgf80CF2i5zMcu1kw==";
+        url = "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.5.1.tgz";
+        sha512 = "IhZUcqr7Bg4LY15d87t9lDr7EyC0IPehkzH5ya5igG8zYwf3UYaYDFnVW2mckREaZyLREcH9YOouesmt4f5Ozg==";
       };
     };
     "prettier-stylelint-0.4.2" = {
@@ -50470,6 +50712,15 @@ let
         sha1 = "2cd3cfea33ba3a89c9c121ec3347abe9ab125f77";
       };
     };
+    "progress-stream-2.0.0" = {
+      name = "progress-stream";
+      packageName = "progress-stream";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/progress-stream/-/progress-stream-2.0.0.tgz";
+        sha1 = "fac63a0b3d11deacbb0969abcc93b214bce19ed5";
+      };
+    };
     "progress-string-1.2.2" = {
       name = "progress-string";
       packageName = "progress-string";
@@ -51856,6 +52107,15 @@ let
         sha512 = "2cP8mBoqnu5gzAVpbZ0fRaobBWZM8GEUF4I1F6WbgHrKV/rz7SX8PG2wMymZgD0wo0UBlg2FBPNxlF/xlqW6+w==";
       };
     };
+    "puppeteer-13.0.0" = {
+      name = "puppeteer";
+      packageName = "puppeteer";
+      version = "13.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/puppeteer/-/puppeteer-13.0.0.tgz";
+        sha512 = "kZfGAieIVSo4bFqYuvY2KvhgP9txzmPbbnpZIzLlfdt8nEu9evXEwsbBt1BHocVQM4fJmCiS+FRyw7c8aWadNg==";
+      };
+    };
     "puppeteer-9.1.1" = {
       name = "puppeteer";
       packageName = "puppeteer";
@@ -51928,13 +52188,13 @@ let
         sha1 = "15931d3cd967ade52206f523aa7331aef7d43af7";
       };
     };
-    "pyright-1.1.187" = {
+    "pyright-1.1.196" = {
       name = "pyright";
       packageName = "pyright";
-      version = "1.1.187";
+      version = "1.1.196";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.187.tgz";
-        sha512 = "g3M7FoNH1HiCmOK0c6Y7c4KdUSqwDyuUQKiU11onzHT17ZHLpcLo7drDBEnBREUSlG30FpxRKFHqk0doo90Yyg==";
+        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.196.tgz";
+        sha512 = "63LF3JNElRU9wkCLgJLk8NMi4tJ/aB97itckp19zb4g8wXmlc90nyvA5bUk19ey10R4yAmlp8ol8Tz/mxAUmGQ==";
       };
     };
     "q-0.9.7" = {
@@ -51991,13 +52251,13 @@ let
         sha1 = "cace86386f59a0db8050fa90d9b6b0e88a1e364f";
       };
     };
-    "qrcode-1.4.4" = {
+    "qrcode-1.5.0" = {
       name = "qrcode";
       packageName = "qrcode";
-      version = "1.4.4";
+      version = "1.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/qrcode/-/qrcode-1.4.4.tgz";
-        sha512 = "oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q==";
+        url = "https://registry.npmjs.org/qrcode/-/qrcode-1.5.0.tgz";
+        sha512 = "9MgRpgVc+/+47dFvQeD6U2s0Z92EsKzcHogtum4QB+UNd025WOJSHvn/hjk9xmzj7Stj95CyUAs31mrjxliEsQ==";
       };
     };
     "qrcode-terminal-0.11.0" = {
@@ -52072,13 +52332,13 @@ let
         sha1 = "c31d9b74ec27df75e543a86c78728ed8d4623607";
       };
     };
-    "qs-6.10.1" = {
+    "qs-6.10.2" = {
       name = "qs";
       packageName = "qs";
-      version = "6.10.1";
+      version = "6.10.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz";
-        sha512 = "M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==";
+        url = "https://registry.npmjs.org/qs/-/qs-6.10.2.tgz";
+        sha512 = "mSIdjzqznWgfd4pMii7sHtaYF8rx8861hBO80SraY5GT0XQibWZWJSid0avzHGkDIZLImux2S5mXO0Hfct2QCw==";
       };
     };
     "qs-6.2.3" = {
@@ -52135,6 +52395,15 @@ let
         sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
       };
     };
+    "qs-6.9.6" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.9.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz";
+        sha512 = "TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==";
+      };
+    };
     "query-string-1.0.1" = {
       name = "query-string";
       packageName = "query-string";
@@ -52414,13 +52683,13 @@ let
         sha512 = "maAX1cnBkzIZ89O4tSQUOF098xjGMC8N+9vuY/WfHwg87THw6odD2Br35donlj5e6KnB1SB0QBHhTQhhDHuTPQ==";
       };
     };
-    "random-access-chrome-file-1.1.4" = {
+    "random-access-chrome-file-1.2.0" = {
       name = "random-access-chrome-file";
       packageName = "random-access-chrome-file";
-      version = "1.1.4";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/random-access-chrome-file/-/random-access-chrome-file-1.1.4.tgz";
-        sha512 = "xZW1BT26g+gl8AF1kC/oXX97jCMVoLIbf6yx4eVMwLgOddGhhkJygimnfERSEmhUKiGs3DTymNao6wf/P23Nkg==";
+        url = "https://registry.npmjs.org/random-access-chrome-file/-/random-access-chrome-file-1.2.0.tgz";
+        sha512 = "M1NOdkHEcjRB+acKrdQkwf8aMTnZUIGboiH6i2PMNkjfChBIJiB4j4MuhpOn+u+XU2n7GqpocPN4bzfv0jrBsg==";
       };
     };
     "random-access-file-2.2.0" = {
@@ -52450,13 +52719,13 @@ let
         sha512 = "CdVAoFNNDn5uAgYOJ8J3ICSaFzaMOa95XnYcX+taj4jirJuRASiTyQSOGR+Z0K8ZkBGuj0A8ivyeRAWuxRCgQA==";
       };
     };
-    "random-access-memory-3.1.3" = {
+    "random-access-memory-3.1.4" = {
       name = "random-access-memory";
       packageName = "random-access-memory";
-      version = "3.1.3";
+      version = "3.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/random-access-memory/-/random-access-memory-3.1.3.tgz";
-        sha512 = "PTNiZXth70psEIZpmCivnBWzRyAsVyU9wDOfcDn7HvSADP2q7IY5KeTFCJJ3N0+DU0OxhMbjWD5n9udiyu3qsg==";
+        url = "https://registry.npmjs.org/random-access-memory/-/random-access-memory-3.1.4.tgz";
+        sha512 = "rqgqd/8ec65gbpKaYHnDOW391OR39d+eXn8NI87G+f3sUKrtGib9jC+/5/9MBFBwwHAZIS8RLJ8yyB4etzbYTA==";
       };
     };
     "random-access-storage-1.3.0" = {
@@ -52639,13 +52908,13 @@ let
         sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==";
       };
     };
-    "raw-body-2.4.1" = {
+    "raw-body-2.4.2" = {
       name = "raw-body";
       packageName = "raw-body";
-      version = "2.4.1";
+      version = "2.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz";
-        sha512 = "9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==";
+        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz";
+        sha512 = "RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==";
       };
     };
     "raw-loader-3.1.0" = {
@@ -52729,13 +52998,13 @@ let
         sha512 = "wuygyq8TXUlSdVXv2kigXxQNOgdb9m7LbIjwfTNGSpaY1riLd5e+VeQjlQMyUtrk0oiyhi1AqIVynworl3qxHA==";
       };
     };
-    "re2-1.16.0" = {
+    "re2-1.17.1" = {
       name = "re2";
       packageName = "re2";
-      version = "1.16.0";
+      version = "1.17.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/re2/-/re2-1.16.0.tgz";
-        sha512 = "eizTZL2ZO0ZseLqfD4t3Qd0M3b3Nr0MBWpX81EbPMIud/1d/CSfUIx2GQK8fWiAeHoSekO5EOeFib2udTZLwYw==";
+        url = "https://registry.npmjs.org/re2/-/re2-1.17.1.tgz";
+        sha512 = "TrhxVzakyO/WJsErkc01zjlEiDLCuuRuddbVi2I8YasIbh6MEJfkRoajBRj+ggm00gnGI2EMemE9GrlKrgUZ8Q==";
       };
     };
     "reachdown-1.1.0" = {
@@ -52774,13 +53043,13 @@ let
         sha512 = "dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A==";
       };
     };
-    "react-devtools-core-4.21.0" = {
+    "react-devtools-core-4.22.1" = {
       name = "react-devtools-core";
       packageName = "react-devtools-core";
-      version = "4.21.0";
+      version = "4.22.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.21.0.tgz";
-        sha512 = "clGWwJHV5MHwTwYyKc+7FZHwzdbzrD2/AoZSkicUcr6YLc3Za9a9FaLhccWDHfjQ+ron9yzNhDT6Tv+FiPkD3g==";
+        url = "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.22.1.tgz";
+        sha512 = "pvpNDHE7p0FtcCmIWGazoY8LLVfBI9sw0Kf10kdHhPI9Tzt3OG/qEt16GrAbE0keuna5WzX3r1qPKVjqOqsuUg==";
       };
     };
     "react-dom-16.14.0" = {
@@ -52801,13 +53070,13 @@ let
         sha512 = "s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==";
       };
     };
-    "react-error-overlay-6.0.9" = {
+    "react-error-overlay-6.0.10" = {
       name = "react-error-overlay";
       packageName = "react-error-overlay";
-      version = "6.0.9";
+      version = "6.0.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz";
-        sha512 = "nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==";
+        url = "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz";
+        sha512 = "mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA==";
       };
     };
     "react-fast-compare-3.2.0" = {
@@ -53278,15 +53547,6 @@ let
         sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
       };
     };
-    "readable-web-to-node-stream-2.0.0" = {
-      name = "readable-web-to-node-stream";
-      packageName = "readable-web-to-node-stream";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-2.0.0.tgz";
-        sha512 = "+oZJurc4hXpaaqsN68GoZGQAQIA3qr09Or4fqEsargABnbe5Aau8hFn6ISVleT3cpY/0n/8drn7huyyEvTbghA==";
-      };
-    };
     "readable-web-to-node-stream-3.0.2" = {
       name = "readable-web-to-node-stream";
       packageName = "readable-web-to-node-stream";
@@ -53386,6 +53646,15 @@ let
         sha1 = "41059608ffc154757b715d9989d199ffbf372e35";
       };
     };
+    "real-require-0.1.0" = {
+      name = "real-require";
+      packageName = "real-require";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz";
+        sha512 = "r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==";
+      };
+    };
     "realpath-native-2.0.0" = {
       name = "realpath-native";
       packageName = "realpath-native";
@@ -53575,13 +53844,13 @@ let
         sha1 = "b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4";
       };
     };
-    "redoc-2.0.0-rc.57" = {
+    "redoc-2.0.0-rc.59" = {
       name = "redoc";
       packageName = "redoc";
-      version = "2.0.0-rc.57";
+      version = "2.0.0-rc.59";
       src = fetchurl {
-        url = "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.57.tgz";
-        sha512 = "f8XIqvZF1agphq6xmOU9jTDVNDFHJt3MzDq1lUgZojb/7YY4eqLyDi6er/yCWYkY9DuB+v2jHCOn5UUbMuKAfg==";
+        url = "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.59.tgz";
+        sha512 = "1Wkj/HSCv5CdtwF7FSZc5L0EeBgI0N7YpAIsatMtfiMHEon0WhuArAkc5rMQ6mQXUPRrqq5Fs6QPc4GpNp6DuA==";
       };
     };
     "reduce-component-1.0.1" = {
@@ -53611,13 +53880,13 @@ let
         sha512 = "pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==";
       };
     };
-    "redux-4.0.5" = {
+    "redux-4.1.2" = {
       name = "redux";
       packageName = "redux";
-      version = "4.0.5";
+      version = "4.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz";
-        sha512 = "VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==";
+        url = "https://registry.npmjs.org/redux/-/redux-4.1.2.tgz";
+        sha512 = "SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw==";
       };
     };
     "reflect-metadata-0.1.13" = {
@@ -54844,15 +55113,6 @@ let
         sha512 = "y3cj3wDwpXTE1boMco/nsquHj2noK0mtnXwBC8FJ/CtU06y66jOBWX1kLknluBl06pYbxtx1ypAOHKvjgT4vsA==";
       };
     };
-    "remark-mdx-2.0.0-rc.2" = {
-      name = "remark-mdx";
-      packageName = "remark-mdx";
-      version = "2.0.0-rc.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/remark-mdx/-/remark-mdx-2.0.0-rc.2.tgz";
-        sha512 = "TMgFSEVx42/YzJWjDY+GKw7CGSbp3XKqBraXPxFS27r8iD9U6zuOZKXH4MoLl9JqiTOmQi0M1zJwT2YhPs32ug==";
-      };
-    };
     "remark-mdxjs-2.0.0-next.8" = {
       name = "remark-mdxjs";
       packageName = "remark-mdxjs";
@@ -54889,13 +55149,13 @@ let
         sha512 = "xKRWl1NTBOKed0oEtCd8BUfH5m4s8WXxFFSoo7uUwx6GW/qdCy4zov5LfPyw7emantDmhfWn5PdIZgcbVcWMDQ==";
       };
     };
-    "remark-parse-10.0.0" = {
+    "remark-parse-10.0.1" = {
       name = "remark-parse";
       packageName = "remark-parse";
-      version = "10.0.0";
+      version = "10.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.0.tgz";
-        sha512 = "07ei47p2Xl7Bqbn9H2VYQYirnAFJPwdMuypdozWsSbnmrkgA2e2sZLZdnDNrrsxR4onmIzH/J6KXqKxCuqHtPQ==";
+        url = "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz";
+        sha512 = "1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==";
       };
     };
     "remark-parse-4.0.0" = {
@@ -55240,13 +55500,13 @@ let
         sha512 = "fimzjIVw506FBZLspTAXHdpvgvQebyjpNyLRd0e6drPPRq7gcrROeGWRyF81wLqFg5ijPgnOQbmfck5wdTqpSA==";
       };
     };
-    "request-light-0.5.4" = {
+    "request-light-0.5.5" = {
       name = "request-light";
       packageName = "request-light";
-      version = "0.5.4";
+      version = "0.5.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/request-light/-/request-light-0.5.4.tgz";
-        sha512 = "t3566CMweOFlUk7Y1DJMu5OrtpoZEb6aSTsLQVT3wtrIEJ5NhcY9G/Oqxvjllzl4a15zXfFlcr9q40LbLVQJqw==";
+        url = "https://registry.npmjs.org/request-light/-/request-light-0.5.5.tgz";
+        sha512 = "AvjfJuhyT6dYfhtIBF+IpTPQco+Td1QJ6PsIJ5xui110vQ5p9HxHk+m1XJqXazLQT6CxxSx9eNv6R/+fu4bZig==";
       };
     };
     "request-progress-2.0.1" = {
@@ -55393,13 +55653,13 @@ let
         sha512 = "YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==";
       };
     };
-    "reselect-4.1.3" = {
+    "reselect-4.1.5" = {
       name = "reselect";
       packageName = "reselect";
-      version = "4.1.3";
+      version = "4.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/reselect/-/reselect-4.1.3.tgz";
-        sha512 = "TVpMknnmdSRNhLPgTDSCQKw32zt1ZIJtEcSxfL/ihtDqShEMUs2X2UY/g96YAVynUXxqLWSXObLGIcqKHQObHw==";
+        url = "https://registry.npmjs.org/reselect/-/reselect-4.1.5.tgz";
+        sha512 = "uVdlz8J7OO+ASpBYoz1Zypgx0KasCY20H+N8JD13oUMtPvSHQuscrHop4KbXrbsBcdB9Ds7lVK7eRkBIfO43vQ==";
       };
     };
     "reserved-words-0.1.2" = {
@@ -55879,13 +56139,13 @@ let
         sha1 = "fece61bfa0c1b52a206bd6b18198184bdd523a3b";
       };
     };
-    "reveal.js-4.1.3" = {
+    "reveal.js-4.2.1" = {
       name = "reveal.js";
       packageName = "reveal.js";
-      version = "4.1.3";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/reveal.js/-/reveal.js-4.1.3.tgz";
-        sha512 = "5VbL4nVDUedVKnOIIM3UQAIUlp+CvR/SrUkrN5GDoVfcWJAxH2oIh7PWyShy7+pE7tgkH2q+3e5EikGRpgE+oA==";
+        url = "https://registry.npmjs.org/reveal.js/-/reveal.js-4.2.1.tgz";
+        sha512 = "OXH4qT5Gs9di6lZPDmRuanIvdiVzltCe8W9ELz6Q3EhoWS+RjRp5HBwFHr+k1fbbP82/Z83sQiK+/ZYFBwrrsQ==";
       };
     };
     "reverse-http-1.3.0" = {
@@ -56158,13 +56418,13 @@ let
         sha1 = "c52a794bf0db9fad567536e41898f0c9e0a86697";
       };
     };
-    "round-to-3.0.0" = {
+    "round-to-6.0.0" = {
       name = "round-to";
       packageName = "round-to";
-      version = "3.0.0";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/round-to/-/round-to-3.0.0.tgz";
-        sha512 = "h8xeIC7dRHkY++BGKtXTlO/FifRJdUmW5YObBk/8X9nc/2syNXKN8qUA6OvCgmPdtYlWvDqKZOuxz/CX6dcZNg==";
+        url = "https://registry.npmjs.org/round-to/-/round-to-6.0.0.tgz";
+        sha512 = "jFvBgyRueGU0QVa7EqXZOkarkzrqEnF3VTCzATRcBkzxXJ4/+pzDf1iouqOqGsx6ZpnIIu5gvFDGnyzoX58ldQ==";
       };
     };
     "router-0.6.2" = {
@@ -56491,15 +56751,6 @@ let
         sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
       };
     };
-    "safe-buffer-5.2.0" = {
-      name = "safe-buffer";
-      packageName = "safe-buffer";
-      version = "5.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz";
-        sha512 = "fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==";
-      };
-    };
     "safe-buffer-5.2.1" = {
       name = "safe-buffer";
       packageName = "safe-buffer";
@@ -56545,6 +56796,15 @@ let
         sha512 = "ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==";
       };
     };
+    "safe-stable-stringify-2.3.1" = {
+      name = "safe-stable-stringify";
+      packageName = "safe-stable-stringify";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz";
+        sha512 = "kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==";
+      };
+    };
     "safer-buffer-2.1.2" = {
       name = "safer-buffer";
       packageName = "safer-buffer";
@@ -56626,13 +56886,13 @@ let
         sha1 = "478be1429500fcfaa780be88b3343ced7d2a9182";
       };
     };
-    "sass-1.43.4" = {
+    "sass-1.45.0" = {
       name = "sass";
       packageName = "sass";
-      version = "1.43.4";
+      version = "1.45.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sass/-/sass-1.43.4.tgz";
-        sha512 = "/ptG7KE9lxpGSYiXn7Ar+lKOv37xfWsZRtFYal2QHNigyVQDx685VFT/h7ejVr+R8w7H4tmUgtulsKl5YpveOg==";
+        url = "https://registry.npmjs.org/sass/-/sass-1.45.0.tgz";
+        sha512 = "ONy5bjppoohtNkFJRqdz1gscXamMzN3wQy1YH9qO2FiNpgjLhpz/IPRGg0PpCjyz/pWfCOaNEaiEGCcjOFAjqw==";
       };
     };
     "sax-0.5.8" = {
@@ -56752,6 +57012,15 @@ let
         sha512 = "Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==";
       };
     };
+    "schema-utils-4.0.0" = {
+      name = "schema-utils";
+      packageName = "schema-utils";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz";
+        sha512 = "1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==";
+      };
+    };
     "scoped-regex-2.1.0" = {
       name = "scoped-regex";
       packageName = "scoped-regex";
@@ -57130,6 +57399,15 @@ let
         sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
       };
     };
+    "send-0.17.2" = {
+      name = "send";
+      packageName = "send";
+      version = "0.17.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/send/-/send-0.17.2.tgz";
+        sha512 = "UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==";
+      };
+    };
     "sentence-splitter-2.3.2" = {
       name = "sentence-splitter";
       packageName = "sentence-splitter";
@@ -57274,6 +57552,15 @@ let
         sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
       };
     };
+    "serve-static-1.14.2" = {
+      name = "serve-static";
+      packageName = "serve-static";
+      version = "1.14.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz";
+        sha512 = "+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==";
+      };
+    };
     "server-destroy-1.0.1" = {
       name = "server-destroy";
       packageName = "server-destroy";
@@ -57427,13 +57714,13 @@ let
         sha512 = "kehYuigMoRkIngCv7rhgruLJNNHDnitGTBdkcYbCbooL8Cidj/bS78MDxByIjcc69M915WxcQTgZetZ1JbeQTQ==";
       };
     };
-    "sha512-wasm-2.3.2" = {
+    "sha512-wasm-2.3.3" = {
       name = "sha512-wasm";
       packageName = "sha512-wasm";
-      version = "2.3.2";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sha512-wasm/-/sha512-wasm-2.3.2.tgz";
-        sha512 = "vywsp4B4T7bv0xdBFiZAc88uEbuQd0Ll8hrnpZOsR/6Vz5lqJgboWdD6HEIUBIfMxQRaxwywDOKPSsa0Hp9pcA==";
+        url = "https://registry.npmjs.org/sha512-wasm/-/sha512-wasm-2.3.3.tgz";
+        sha512 = "x8McxarTu+Wv5hu5TQE4qgSSGQ3JOX/OmkhLGVty+ajcEN6zLPqTS6Ljt/N6Gl2jI+3y0wjj+RxDxy8Ca9Krfw==";
       };
     };
     "shallow-clone-3.0.1" = {
@@ -57742,13 +58029,13 @@ let
         sha512 = "a8IzM3jNPSHcf2wSkhLgME4QrIe+rKTb8y/qYwGGzby5ktODAH+WBsKIgGZ9p5d2mpppPwbNEsA+YzcL117bbA==";
       };
     };
-    "signal-exit-3.0.5" = {
+    "signal-exit-3.0.6" = {
       name = "signal-exit";
       packageName = "signal-exit";
-      version = "3.0.5";
+      version = "3.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz";
-        sha512 = "KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==";
+        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz";
+        sha512 = "sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==";
       };
     };
     "signals-1.0.0" = {
@@ -57823,13 +58110,13 @@ let
         sha512 = "rohCHmEjD/ESXFLxF4bVeqgdb4Awc65ZyyuCKl3f7BvgMbZOBa/Ye3HN/GFnvruiUOAWWNupxhz3Rz5/3vJLTg==";
       };
     };
-    "simple-git-2.47.0" = {
+    "simple-git-2.48.0" = {
       name = "simple-git";
       packageName = "simple-git";
-      version = "2.47.0";
+      version = "2.48.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-git/-/simple-git-2.47.0.tgz";
-        sha512 = "+HfCpqPBEZTPWiW9fPdbiPJDslM22MLqrktfzNKyI2pWaJa6DhfNVx4Mds04KZzVv5vjC9/ksw3y5gVf8ECWDg==";
+        url = "https://registry.npmjs.org/simple-git/-/simple-git-2.48.0.tgz";
+        sha512 = "z4qtrRuaAFJS4PUd0g+xy7aN4y+RvEt/QTJpR184lhJguBA1S/LsVlvE/CM95RsYMOFJG3NGGDjqFCzKU19S/A==";
       };
     };
     "simple-handshake-3.0.0" = {
@@ -57859,15 +58146,6 @@ let
         sha512 = "ZmlNUGR1KI12sPHeQ7dQY1qM5KfOgFqClNNVO8zQ9Pg6u7gHLCPFGD+VC7MCwpGDMd1uw3Bb2TfFfR8d6bB34A==";
       };
     };
-    "simple-markdown-0.7.3" = {
-      name = "simple-markdown";
-      packageName = "simple-markdown";
-      version = "0.7.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/simple-markdown/-/simple-markdown-0.7.3.tgz";
-        sha512 = "uGXIc13NGpqfPeFJIt/7SHHxd6HekEJYtsdoCM06mEBPL9fQH/pSD7LRM6PZ7CKchpSvxKL4tvwMamqAaNDAyg==";
-      };
-    };
     "simple-message-channels-1.2.1" = {
       name = "simple-message-channels";
       packageName = "simple-message-channels";
@@ -57985,13 +58263,13 @@ let
         sha1 = "81f0ad2ad645181945c80952a5c1414992ee9664";
       };
     };
-    "siphash24-1.2.0" = {
+    "siphash24-1.3.0" = {
       name = "siphash24";
       packageName = "siphash24";
-      version = "1.2.0";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/siphash24/-/siphash24-1.2.0.tgz";
-        sha512 = "51yTA4ZqBY0tHTsBVGy3KAmMI7ArtwSOSmfFwJnZHFL+K76RMzZLx4m59HY5HSByjGHF3q+Fmcl8e5bMF160iQ==";
+        url = "https://registry.npmjs.org/siphash24/-/siphash24-1.3.0.tgz";
+        sha512 = "2HvNPUYcmoFks2IX2wI5D80NspdlgSJlCmPencbBMWhrZnNW3sgiC7owaB2Jj/9IiV9bdN2A00LaM8IcojB8rw==";
       };
     };
     "siphash24-universal-1.0.0" = {
@@ -58174,13 +58452,13 @@ let
         sha512 = "tf+h5W1IrjNm/9rKKj0JU2MDMruiopx0jjVA5zCdBtcGjfp0+c5rHw/zADLC3IeKlGHtVbHtpfzvYA0OYT+HKg==";
       };
     };
-    "slugify-1.6.2" = {
+    "slugify-1.6.4" = {
       name = "slugify";
       packageName = "slugify";
-      version = "1.6.2";
+      version = "1.6.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/slugify/-/slugify-1.6.2.tgz";
-        sha512 = "XMtI8qD84LwCpthLMBHlIhcrj10cgA+U/Ot8G6FD6uFuWZtMfKK75JO7l81nzpFJsPlsW6LT+VKqWQJW3+6New==";
+        url = "https://registry.npmjs.org/slugify/-/slugify-1.6.4.tgz";
+        sha512 = "Pcz296CK0uGnTf4iNQId79Uv6/5G16t0g0x3OsxWS8qVSOW+JXNnNHKVcuDiMgEGTWyK6zjlWXo2dvzV/FLf9Q==";
       };
     };
     "smart-buffer-4.2.0" = {
@@ -58354,6 +58632,15 @@ let
         sha512 = "Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==";
       };
     };
+    "socket.io-3.1.2" = {
+      name = "socket.io";
+      packageName = "socket.io";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz";
+        sha512 = "JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==";
+      };
+    };
     "socket.io-4.1.3" = {
       name = "socket.io";
       packageName = "socket.io";
@@ -58363,13 +58650,13 @@ let
         sha512 = "tLkaY13RcO4nIRh1K2hT5iuotfTaIQw7cVIe0FUykN3SuQi0cm7ALxuyT5/CtDswOMWUzMGTibxYNx/gU7In+Q==";
       };
     };
-    "socket.io-4.3.2" = {
+    "socket.io-4.4.0" = {
       name = "socket.io";
       packageName = "socket.io";
-      version = "4.3.2";
+      version = "4.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io/-/socket.io-4.3.2.tgz";
-        sha512 = "6S5tV4jcY6dbZ/lLzD6EkvNWI3s81JO6ABP/EpvOlK1NPOcIj3AS4khi6xXw6JlZCASq82HQV4SapfmVMMl2dg==";
+        url = "https://registry.npmjs.org/socket.io/-/socket.io-4.4.0.tgz";
+        sha512 = "bnpJxswR9ov0Bw6ilhCvO38/1WPtE3eA2dtxi2Iq4/sFebiDJQzgKNYA7AuVVdGW09nrESXd90NbZqtDd9dzRQ==";
       };
     };
     "socket.io-adapter-0.2.0" = {
@@ -58390,13 +58677,22 @@ let
         sha512 = "WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==";
       };
     };
-    "socket.io-adapter-2.3.2" = {
+    "socket.io-adapter-2.1.0" = {
       name = "socket.io-adapter";
       packageName = "socket.io-adapter";
-      version = "2.3.2";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz";
+        sha512 = "+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==";
+      };
+    };
+    "socket.io-adapter-2.3.3" = {
+      name = "socket.io-adapter";
+      packageName = "socket.io-adapter";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.2.tgz";
-        sha512 = "PBZpxUPYjmoogY0aoaTmo1643JelsaS1CiAwNjRVdrI0X9Seuc19Y2Wife8k88avW6haG8cznvwbubAZwH4Mtg==";
+        url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz";
+        sha512 = "Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==";
       };
     };
     "socket.io-client-1.0.6" = {
@@ -58498,13 +58794,13 @@ let
         sha512 = "SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==";
       };
     };
-    "sockjs-0.3.21" = {
+    "sockjs-0.3.24" = {
       name = "sockjs";
       packageName = "sockjs";
-      version = "0.3.21";
+      version = "0.3.24";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz";
-        sha512 = "DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==";
+        url = "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz";
+        sha512 = "GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==";
       };
     };
     "sockjs-client-1.4.0" = {
@@ -58543,13 +58839,13 @@ let
         sha512 = "vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==";
       };
     };
-    "socks-proxy-agent-6.1.0" = {
+    "socks-proxy-agent-6.1.1" = {
       name = "socks-proxy-agent";
       packageName = "socks-proxy-agent";
-      version = "6.1.0";
+      version = "6.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.0.tgz";
-        sha512 = "57e7lwCN4Tzt3mXz25VxOErJKXlPfXmkMLnk310v/jwW20jWRVcgsOit+xNkN3eIEdB47GwnfAEBLacZ/wVIKg==";
+        url = "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz";
+        sha512 = "t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==";
       };
     };
     "socks5-client-1.2.8" = {
@@ -58579,15 +58875,6 @@ let
         sha512 = "FbZ/X/2Xq3DAMhuRA4bnN0jy1QxaPTVPLFvyv6CEj0QDKSTdWp9yRxo1JhqXmWKhPQeJyUMajHJB2UjT43pFcw==";
       };
     };
-    "socksjs-0.5.0" = {
-      name = "socksjs";
-      packageName = "socksjs";
-      version = "0.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/socksjs/-/socksjs-0.5.0.tgz";
-        sha1 = "77b005e32d1bfc96e560fedd5d7eedcf120f87e3";
-      };
-    };
     "sodium-browserify-1.3.0" = {
       name = "sodium-browserify";
       packageName = "sodium-browserify";
@@ -58669,13 +58956,13 @@ let
         sha512 = "WnBQ0GDo/82shKQHZBZT9h4q4miCtxkbzcwVLsCBPWNq4qbq8BXhKICt9nPwQAsJ43ct/rF61FKu4t0druUBug==";
       };
     };
-    "sonic-boom-1.4.1" = {
+    "sonic-boom-2.4.1" = {
       name = "sonic-boom";
       packageName = "sonic-boom";
-      version = "1.4.1";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz";
-        sha512 = "LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==";
+        url = "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.4.1.tgz";
+        sha512 = "WgtVLfGl347/zS1oTuLaOAvVD5zijgjphAJHgbbnBJGgexnr+C1ULSj0j7ftoGxpuxR4PaV635NkwFemG8m/5w==";
       };
     };
     "sorcery-0.10.0" = {
@@ -58849,6 +59136,15 @@ let
         sha512 = "/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==";
       };
     };
+    "source-map-js-1.0.1" = {
+      name = "source-map-js";
+      packageName = "source-map-js";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz";
+        sha512 = "4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==";
+      };
+    };
     "source-map-resolve-0.5.3" = {
       name = "source-map-resolve";
       packageName = "source-map-resolve";
@@ -58894,6 +59190,15 @@ let
         sha512 = "n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==";
       };
     };
+    "source-map-support-0.5.21" = {
+      name = "source-map-support";
+      packageName = "source-map-support";
+      version = "0.5.21";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz";
+        sha512 = "uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==";
+      };
+    };
     "source-map-url-0.4.1" = {
       name = "source-map-url";
       packageName = "source-map-url";
@@ -59137,6 +59442,15 @@ let
         sha1 = "9876dbd2a169d3115402d48e6ea6329c8816a50d";
       };
     };
+    "speedometer-1.0.0" = {
+      name = "speedometer";
+      packageName = "speedometer";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/speedometer/-/speedometer-1.0.0.tgz";
+        sha1 = "cd671cb06752c22bca3370e2f334440be4fc62e2";
+      };
+    };
     "speedometer-1.1.0" = {
       name = "speedometer";
       packageName = "speedometer";
@@ -59272,6 +59586,15 @@ let
         sha512 = "9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==";
       };
     };
+    "split2-4.1.0" = {
+      name = "split2";
+      packageName = "split2";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz";
+        sha512 = "VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==";
+      };
+    };
     "sprintf-0.1.5" = {
       name = "sprintf";
       packageName = "sprintf";
@@ -59452,13 +59775,13 @@ let
         sha512 = "pJAFizB6OcuJLX4RJJuU9HWyPwM2CqLi/vs08lhVIR3TGxacxpavvK5LzbxT+Y3iWkBchOTKS5hHCigA5aaung==";
       };
     };
-    "ssb-db2-2.7.2" = {
+    "ssb-db2-2.8.3" = {
       name = "ssb-db2";
       packageName = "ssb-db2";
-      version = "2.7.2";
+      version = "2.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-db2/-/ssb-db2-2.7.2.tgz";
-        sha512 = "TJ1N2Sf39DlQHyT7E8KoQ8Oft+73SuoP75cVlCeyDxCUhNKVUKL+7Eu7ln2YOZsOF0DnZfw3VZ55l+iJwtvLiQ==";
+        url = "https://registry.npmjs.org/ssb-db2/-/ssb-db2-2.8.3.tgz";
+        sha512 = "45qxUO4ULsQKf79IUma0fuMIatyQac83pmmMZPQHHbiPr001hlgUnZvVzgNgGq7eZE5J6451/TBrBKzO5jjILg==";
       };
     };
     "ssb-ebt-5.6.7" = {
@@ -59758,13 +60081,13 @@ let
         sha512 = "zZ/Q1M+9ZWlrchgh4QauD/MEUFa6eC6H6FYq6T8Of/y82JqsQBLwN6YlzbO09evE7Rx6x0oliXDCnQSjwGwQRA==";
       };
     };
-    "sscaff-1.2.129" = {
+    "sscaff-1.2.151" = {
       name = "sscaff";
       packageName = "sscaff";
-      version = "1.2.129";
+      version = "1.2.151";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sscaff/-/sscaff-1.2.129.tgz";
-        sha512 = "S9j7nQ83ETJv+NV9nV6Dr5gOAD/gnzMwlf9LLzDEPuwvDolXkIN9kFnzi+Sqxb0zoHxev7t+2342qbcsU0ORgg==";
+        url = "https://registry.npmjs.org/sscaff/-/sscaff-1.2.151.tgz";
+        sha512 = "6UfOVW4ElZDCutLaPUULDA/RdtV5zs2qsmSVkg47mE0WrGXmaG/vC/4k668/s+MbpGjCCW+dytbmNkcduREEJw==";
       };
     };
     "ssh-config-1.1.6" = {
@@ -60136,15 +60459,6 @@ let
         sha1 = "91d5f5130d1cef96dcfa7f726945188741d09ee4";
       };
     };
-    "stream-buffers-3.0.2" = {
-      name = "stream-buffers";
-      packageName = "stream-buffers";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz";
-        sha512 = "DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==";
-      };
-    };
     "stream-chain-2.2.4" = {
       name = "stream-chain";
       packageName = "stream-chain";
@@ -60415,22 +60729,22 @@ let
         sha1 = "808b9d0e56fc273d809ba57338e929919a1a9f1a";
       };
     };
-    "streamx-2.11.3" = {
+    "streamx-2.12.0" = {
       name = "streamx";
       packageName = "streamx";
-      version = "2.11.3";
+      version = "2.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/streamx/-/streamx-2.11.3.tgz";
-        sha512 = "NhcjG/xi33S4O2LRXZnBg7TLhnlE7RKWTeUx3N08K/89PKZ6MehEtSE+aToT5f2Cer2ArX9FwUhVfZbsUjnvrw==";
+        url = "https://registry.npmjs.org/streamx/-/streamx-2.12.0.tgz";
+        sha512 = "PR93KgPkga2p27UhCI9lf096qPyRMDn/zemRQeAgr1azVLDMr8tZZGpgfEw2/cYY/8mTU4dshLMGNYBsNeQGQw==";
       };
     };
-    "strftime-0.10.0" = {
+    "strftime-0.10.1" = {
       name = "strftime";
       packageName = "strftime";
-      version = "0.10.0";
+      version = "0.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/strftime/-/strftime-0.10.0.tgz";
-        sha1 = "b3f0fa419295202a5a289f6d6be9f4909a617193";
+        url = "https://registry.npmjs.org/strftime/-/strftime-0.10.1.tgz";
+        sha512 = "nVvH6JG8KlXFPC0f8lojLgEsPA18lRpLZ+RrJh/NkQV2tqOgZfbas8gcU8SFgnnqR3rWzZPYu6N2A3xzs/8rQg==";
       };
     };
     "strict-uri-encode-1.1.0" = {
@@ -61162,13 +61476,13 @@ let
         sha512 = "luHn2OAMGJouOnadm6Fim6WXodQ2AWDkWjYq0rMdyEwzO5PdE4LzoXAEn9LL2snmBAlwUp1URVOTF7lZR3KU+Q==";
       };
     };
-    "stylis-4.0.10" = {
+    "stylis-4.0.13" = {
       name = "stylis";
       packageName = "stylis";
-      version = "4.0.10";
+      version = "4.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylis/-/stylis-4.0.10.tgz";
-        sha512 = "m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg==";
+        url = "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz";
+        sha512 = "xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==";
       };
     };
     "stylus-0.54.8" = {
@@ -61225,6 +61539,15 @@ let
         sha512 = "cVqd/URpp7si1HWu5YqQ3vqQkjuolAwHypY1B4itPlS71/lsf6TQPZ2Y0ijT22EYVkvH5ove9JFJf4u7VGPuZw==";
       };
     };
+    "subscriptions-transport-ws-0.11.0" = {
+      name = "subscriptions-transport-ws";
+      packageName = "subscriptions-transport-ws";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.11.0.tgz";
+        sha512 = "8D4C6DIH5tGiAIpp5I0wD/xRlNiZAPGHygzCe7VzyzUoxHtawzjNAY9SUTXU05/EY2NMY9/9GF0ycizkXr1CWQ==";
+      };
+    };
     "subscriptions-transport-ws-0.9.18" = {
       name = "subscriptions-transport-ws";
       packageName = "subscriptions-transport-ws";
@@ -61468,13 +61791,13 @@ let
         sha512 = "MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==";
       };
     };
-    "supports-color-9.0.2" = {
+    "supports-color-9.2.1" = {
       name = "supports-color";
       packageName = "supports-color";
-      version = "9.0.2";
+      version = "9.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/supports-color/-/supports-color-9.0.2.tgz";
-        sha512 = "ii6tc8ImGFrgMPYq7RVAMKkhPo9vk8uA+D3oKbJq/3Pk2YSMv1+9dUAesa9UxMbxBTvxwKTQffBahNVNxEvM8Q==";
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz";
+        sha512 = "Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==";
       };
     };
     "supports-hyperlinks-1.0.1" = {
@@ -61504,13 +61827,13 @@ let
         sha512 = "N7bBZJH0iF24wsalFZF+fVYMUOigaAUQMIcEKHO3jstK/iL8VmP9xE+P0/a76+FkNcWt+TDv2Gx1taUoUscrvw==";
       };
     };
-    "svelte-preprocess-4.7.4" = {
+    "svelte-preprocess-4.10.0" = {
       name = "svelte-preprocess";
       packageName = "svelte-preprocess";
-      version = "4.7.4";
+      version = "4.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.7.4.tgz";
-        sha512 = "mDAmaltQl6e5zU2VEtoWEf7eLTfuOTGr9zt+BpA3AGHo8MIhKiNSPE9OLTCTOMgj0vj/uL9QBbaNmpG4G1CgIA==";
+        url = "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.10.0.tgz";
+        sha512 = "uZgGyC4SwkFoby2ceiMgGYs4qHYGz2fT06cAsHO8FHdDbvj1dKQyQ/fD9OB0KLymVv0fmzuJo/On7Kv7AeVhWA==";
       };
     };
     "svelte-preprocess-4.9.8" = {
@@ -61522,13 +61845,13 @@ let
         sha512 = "EQS/oRZzMtYdAprppZxY3HcysKh11w54MgA63ybtL+TAZ4hVqYOnhw41JVJjWN9dhPnNjjLzvbZ2tMhTsla1Og==";
       };
     };
-    "svelte2tsx-0.4.9" = {
+    "svelte2tsx-0.4.11" = {
       name = "svelte2tsx";
       packageName = "svelte2tsx";
-      version = "0.4.9";
+      version = "0.4.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.4.9.tgz";
-        sha512 = "FXly9uQTzdLFliTF86mfkT8MgR1DGJ3yvRC/jv2t2RoRLKNgLaXBv8DP2o2RcJL+NQ2X4kRD3IQsf9/99KZ5mg==";
+        url = "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.4.11.tgz";
+        sha512 = "y1mqNrxv3TzDHstM0qlHrbKwfWk+G/uB28yRH4JYMjJ7N3XZrfrLad+/+P6ITTawbUfLqfs/WlxJDKzl7F2CPw==";
       };
     };
     "sver-compat-1.5.0" = {
@@ -61792,6 +62115,15 @@ let
         sha512 = "dJp4qg+x4JwSEW1HibAuMi0IIrBI3wuQr2GimmqB7OXR50wmwzfdusG+p39R9w3R6aFtZ2mzvxvWKQ3Bd/vx3g==";
       };
     };
+    "sync-fetch-0.3.1" = {
+      name = "sync-fetch";
+      packageName = "sync-fetch";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.3.1.tgz";
+        sha512 = "xj5qiCDap/03kpci5a+qc5wSJjc8ZSixgG2EUmH1B8Ea2sfWclQA7eH40hiHPCtkCn6MCk4Wb+dqcXdCy2PP3g==";
+      };
+    };
     "syntax-error-1.4.0" = {
       name = "syntax-error";
       packageName = "syntax-error";
@@ -61810,13 +62142,13 @@ let
         sha512 = "33+lQwlLxXoxy0o9WLOgw8OjbXeS3Jv+pSl+nxKc2AOClBI28HsdRPpH0u9Xa9OVjHLT9vonnOMw1ug7YXI0dA==";
       };
     };
-    "systeminformation-5.9.13" = {
+    "systeminformation-5.9.17" = {
       name = "systeminformation";
       packageName = "systeminformation";
-      version = "5.9.13";
+      version = "5.9.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-5.9.13.tgz";
-        sha512 = "AGL34jWboB7bjmNYIcJ5hbYEVYXQuLPbIq7bJg3rJJNHYZvZkQC9hH15KpH9CPg9ZxCsTqAfUNyGMv1jmv78Tw==";
+        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-5.9.17.tgz";
+        sha512 = "hbJtPsG63PCst4PLXFq8hycbkeR5oGDquRowfLK0gNX7nJ1qx3tCbsWu83OL4GP1dkcLMKsVooLUn5x2K1Epgg==";
       };
     };
     "sywac-1.3.0" = {
@@ -61873,6 +62205,15 @@ let
         sha512 = "5DkIxeA7XERBqMwJq0aHZOdMadBx4e6eDoFRuyT5VR82J0Ycg2DwM6GfA/EQAhJ+toRTaS1lIdSQCqgrmhPnlw==";
       };
     };
+    "table-6.7.5" = {
+      name = "table";
+      packageName = "table";
+      version = "6.7.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/table/-/table-6.7.5.tgz";
+        sha512 = "LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==";
+      };
+    };
     "table-layout-0.4.5" = {
       name = "table-layout";
       packageName = "table-layout";
@@ -62171,13 +62512,13 @@ let
         sha512 = "6u5UyW2KpMS/hwC4DKLGlicK/rVSYCahPFgF14ioP6BzwcDwQlciHCB/oWguvxLJaYGrvY6crzLHfjupFTBPXw==";
       };
     };
-    "telegraf-4.4.2" = {
+    "telegraf-4.5.2" = {
       name = "telegraf";
       packageName = "telegraf";
-      version = "4.4.2";
+      version = "4.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/telegraf/-/telegraf-4.4.2.tgz";
-        sha512 = "OGt9w1LbxYUOsRk3htAavBnL9hqWycmJNiOmS74oARzxKFnYS/MdwW8b5CX9VLCJt537AXkm8/eBNiEYD8E7lQ==";
+        url = "https://registry.npmjs.org/telegraf/-/telegraf-4.5.2.tgz";
+        sha512 = "OG68wQqYQQq2ldzAMv6JJUkh9XU+4mWRgHinMeJ8FoRA5ZZuA4WauqRFi8aY/OQiwJM2gTT2XWCfopN2dZWDNw==";
       };
     };
     "temp-0.6.0" = {
@@ -62432,13 +62773,13 @@ let
         sha512 = "3qAQpykRTD5DReLu5/cwpsg7EZFzP3Q0Hp2XUWJUw2mpq2jfgOKTZr8IZKKnNieRVVo1UauROTdhbQJZveGKtQ==";
       };
     };
-    "terser-webpack-plugin-5.2.5" = {
+    "terser-webpack-plugin-5.3.0" = {
       name = "terser-webpack-plugin";
       packageName = "terser-webpack-plugin";
-      version = "5.2.5";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz";
-        sha512 = "3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g==";
+        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz";
+        sha512 = "LPIisi3Ol4chwAaPP8toUJ3L4qCM1G0wao7L3qNv57Drezxj6+VEyySpPw4B1HSO2Eg/hDY/MNF5XihCAoqnsQ==";
       };
     };
     "test-exclude-6.0.0" = {
@@ -62585,6 +62926,15 @@ let
         sha1 = "4ca2fffc02a51290d2744b9e3f557693ca6b627a";
       };
     };
+    "thread-stream-0.13.0" = {
+      name = "thread-stream";
+      packageName = "thread-stream";
+      version = "0.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/thread-stream/-/thread-stream-0.13.0.tgz";
+        sha512 = "kTMZeX4Dzlb1zZ00/01aerGaTw2i8NE4sWF0TvF1uXewRhCiUjCvatQkvxIvFqauWG2ADFS2Wpd3qBeYL9i3dg==";
+      };
+    };
     "thriftrw-3.12.0" = {
       name = "thriftrw";
       packageName = "thriftrw";
@@ -62963,13 +63313,13 @@ let
         sha512 = "rUwGDruKq1gX+FFHbTl5qjI7teVO7eOe+C8IcQ7QT+1BK3eEUXJqbZcBOeaRP4FwSC/C1A5jDoIVta0nIQ9yew==";
       };
     };
-    "tkwidgets-0.5.26" = {
+    "tkwidgets-0.5.27" = {
       name = "tkwidgets";
       packageName = "tkwidgets";
-      version = "0.5.26";
+      version = "0.5.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tkwidgets/-/tkwidgets-0.5.26.tgz";
-        sha512 = "zxhwsBpxD5fglnqHYZ9ZjunC8Hc67u/7QXzxHmhAIzzSr4a/Cq5PbzCeHsBZ7WL99uBUa6xgVLfjmGxnFU8XMg==";
+        url = "https://registry.npmjs.org/tkwidgets/-/tkwidgets-0.5.27.tgz";
+        sha512 = "748OLoNS77xzyVNDst906EhIX/rRVb8IVM5Cb7hkO5nyrnngx70vHtmeWVUy+e3lz3I0CgRzYSUJIt7bDQ6PAQ==";
       };
     };
     "tldjs-2.3.1" = {
@@ -62981,13 +63331,13 @@ let
         sha512 = "W/YVH/QczLUxVjnQhFC61Iq232NWu3TqDdO0S/MtXVz4xybejBov4ud+CIwN9aYqjOecEqIy0PscGkwpG9ZyTw==";
       };
     };
-    "tlds-1.208.0" = {
+    "tlds-1.216.0" = {
       name = "tlds";
       packageName = "tlds";
-      version = "1.208.0";
+      version = "1.216.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tlds/-/tlds-1.208.0.tgz";
-        sha512 = "6kbY7GJpRQXwBddSOAbVUZXjObbCGFXliWWN+kOSEoRWIOyRWLB6zdeKC/Tguwwenl/KsUx016XR50EdHYsxZw==";
+        url = "https://registry.npmjs.org/tlds/-/tlds-1.216.0.tgz";
+        sha512 = "y9A+eMRKLdAOclcFRTk3durpvCWiEdWcQhCOopCO654pckH9+o5Z5VgBsTTAFqtyxB8yFRXSG1q7BCCeHyrm0w==";
       };
     };
     "tmp-0.0.29" = {
@@ -63782,15 +64132,6 @@ let
         sha512 = "uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==";
       };
     };
-    "ts-invariant-0.9.3" = {
-      name = "ts-invariant";
-      packageName = "ts-invariant";
-      version = "0.9.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.9.3.tgz";
-        sha512 = "HinBlTbFslQI0OHP07JLsSXPibSegec6r9ai5xxq/qHYCsIQbzpymLpDhAUsnXcSrDEcd0L62L8vsOEdzM0qlA==";
-      };
-    };
     "ts-loader-8.0.4" = {
       name = "ts-loader";
       packageName = "ts-loader";
@@ -63818,6 +64159,15 @@ let
         sha512 = "DEQrfv6l7IvN2jlzc/VTdZJYsWUnQNCsueYjMkC/iXoEoi5fNan6MjeDqkvhfzbmHgdz9UxDUluX3V5HdjTydQ==";
       };
     };
+    "ts-morph-12.2.0" = {
+      name = "ts-morph";
+      packageName = "ts-morph";
+      version = "12.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ts-morph/-/ts-morph-12.2.0.tgz";
+        sha512 = "WHXLtFDcIRwoqaiu0elAoZ/AmI+SwwDafnPKjgJmdwJ2gRVO0jMKBt88rV2liT/c6MTsXyuWbGFiHe9MRddWJw==";
+      };
+    };
     "ts-node-8.9.1" = {
       name = "ts-node";
       packageName = "ts-node";
@@ -63845,22 +64195,22 @@ let
         sha512 = "csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==";
       };
     };
-    "tsconfig-paths-3.11.0" = {
+    "tsconfig-paths-3.12.0" = {
       name = "tsconfig-paths";
       packageName = "tsconfig-paths";
-      version = "3.11.0";
+      version = "3.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz";
-        sha512 = "7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA==";
+        url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz";
+        sha512 = "e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==";
       };
     };
-    "tsconfig-paths-webpack-plugin-3.5.1" = {
+    "tsconfig-paths-webpack-plugin-3.5.2" = {
       name = "tsconfig-paths-webpack-plugin";
       packageName = "tsconfig-paths-webpack-plugin";
-      version = "3.5.1";
+      version = "3.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.5.1.tgz";
-        sha512 = "n5CMlUUj+N5pjBhBACLq4jdr9cPTitySCjIosoQm0zwK99gmrcTGAfY9CwxRFT9+9OleNWXPRUcxsKP4AYExxQ==";
+        url = "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.5.2.tgz";
+        sha512 = "EhnfjHbzm5IYI9YPNVIxx1moxMI4bpHD2e0zTXeDNQcwjjRaGepP7IhTHJkyDBG0CAOoxRfe7jCG630Ou+C6Pw==";
       };
     };
     "tslib-1.13.0" = {
@@ -64151,13 +64501,13 @@ let
         sha1 = "0762378f1dc1c050e48f666aca904e24b1a962f4";
       };
     };
-    "tx2-1.0.4" = {
+    "tx2-1.0.5" = {
       name = "tx2";
       packageName = "tx2";
-      version = "1.0.4";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tx2/-/tx2-1.0.4.tgz";
-        sha512 = "rU+y30nUY3PyIi+znvv74HzxlpULKwMPAyRK+YiCjvGkk3rY3fic3D6Z+avLpun3V5A6HFwPQ9JrBTMNEV/dxg==";
+        url = "https://registry.npmjs.org/tx2/-/tx2-1.0.5.tgz";
+        sha512 = "sJ24w0y03Md/bxzK4FU8J8JveYYUbSs2FViLJ2D/8bytSiyPRbuE3DyL/9UKYXTZlV3yXq0L8GLlhobTnekCVg==";
       };
     };
     "txt-to-ast-3.0.3" = {
@@ -64331,13 +64681,13 @@ let
         sha512 = "yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==";
       };
     };
-    "type-fest-2.5.3" = {
+    "type-fest-2.8.0" = {
       name = "type-fest";
       packageName = "type-fest";
-      version = "2.5.3";
+      version = "2.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/type-fest/-/type-fest-2.5.3.tgz";
-        sha512 = "7VNmE7FlsrdcWjKbtuRuynZz96Gmf35p5DvoR2tbceNP0vd58ISx87PvUUInlhtRC49vSX6qlxEKc7AoiHRirg==";
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-2.8.0.tgz";
+        sha512 = "O+V9pAshf9C6loGaH0idwsmugI2LxVNR7DtS40gVo2EXZVYFgz9OuNtOhgHLdHdapOEWNdvz9Ob/eeuaWwwlxA==";
       };
     };
     "type-is-1.6.18" = {
@@ -64412,13 +64762,13 @@ let
         sha512 = "7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==";
       };
     };
-    "typegram-3.5.1" = {
+    "typegram-3.6.2" = {
       name = "typegram";
       packageName = "typegram";
-      version = "3.5.1";
+      version = "3.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typegram/-/typegram-3.5.1.tgz";
-        sha512 = "cDCj4KMycgpdoDihK9LbJbLBBrZdDDQskR4aeoLawyk6YS2GXmr4jncGQGvu6Wav1iNTGvSDwr4b3ipLHh1edA==";
+        url = "https://registry.npmjs.org/typegram/-/typegram-3.6.2.tgz";
+        sha512 = "q222XE5vFtzhY8q+x+yl4oNhVqjDSAixwvnpmzze61i+u/eaKIrimT3xz/oJrCUmSvaROH1GNZS3jqDDDNp94A==";
       };
     };
     "typescript-2.9.2" = {
@@ -64493,13 +64843,13 @@ let
         sha512 = "DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==";
       };
     };
-    "typescript-4.4.4" = {
+    "typescript-4.5.4" = {
       name = "typescript";
       packageName = "typescript";
-      version = "4.4.4";
+      version = "4.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz";
-        sha512 = "DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz";
+        sha512 = "VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==";
       };
     };
     "typescript-eslint-parser-16.0.1" = {
@@ -64556,13 +64906,13 @@ let
         sha512 = "W20RYp2OCEGMhEYayR0cAP67AUWiGRUufMs6Clul7MAmu5SpLuOG/RWk7+LkL65wsugcfhPQlFEJ231C2xHNQg==";
       };
     };
-    "ua-parser-js-0.7.21" = {
+    "ua-parser-js-0.7.30" = {
       name = "ua-parser-js";
       packageName = "ua-parser-js";
-      version = "0.7.21";
+      version = "0.7.30";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz";
-        sha512 = "+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==";
+        url = "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.30.tgz";
+        sha512 = "uXEtSresNUlXQ1QL4/3dQORcGv7+J2ookOG2ybA/ga9+HYEXueT2o+8dUJQkpedsyTyCJ6jCCirRcKtdtx1kbg==";
       };
     };
     "ua-parser-js-0.7.31" = {
@@ -64601,22 +64951,22 @@ let
         sha1 = "29c5733148057bb4e1f75df35b7a9cb72e6a59dd";
       };
     };
-    "uglify-js-3.14.2" = {
+    "uglify-js-3.14.4" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.14.2";
+      version = "3.14.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.2.tgz";
-        sha512 = "rtPMlmcO4agTUfz10CbgJ1k6UAoXM2gWb3GoMPPZB/+/Ackf8lNWk11K4rYi2D0apgoFRLtQOZhb+/iGNJq26A==";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.4.tgz";
+        sha512 = "AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA==";
       };
     };
-    "uglify-js-3.14.3" = {
+    "uglify-js-3.14.5" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.14.3";
+      version = "3.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.3.tgz";
-        sha512 = "mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g==";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.5.tgz";
+        sha512 = "qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ==";
       };
     };
     "uglify-js-3.4.10" = {
@@ -64844,13 +65194,13 @@ let
         sha512 = "hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==";
       };
     };
-    "underscore-1.13.1" = {
+    "underscore-1.13.2" = {
       name = "underscore";
       packageName = "underscore";
-      version = "1.13.1";
+      version = "1.13.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz";
-        sha512 = "hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==";
+        url = "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz";
+        sha512 = "ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==";
       };
     };
     "underscore-1.2.1" = {
@@ -64880,6 +65230,15 @@ let
         sha1 = "8b38b10cacdef63337b8b24e4ff86d45aea529a8";
       };
     };
+    "underscore-1.8.3" = {
+      name = "underscore";
+      packageName = "underscore";
+      version = "1.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz";
+        sha1 = "4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022";
+      };
+    };
     "underscore-1.9.1" = {
       name = "underscore";
       packageName = "underscore";
@@ -64925,6 +65284,15 @@ let
         sha1 = "5e4bda308e4a8a2ae584f9b9a4359a499825cc50";
       };
     };
+    "undici-4.12.0" = {
+      name = "undici";
+      packageName = "undici";
+      version = "4.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/undici/-/undici-4.12.0.tgz";
+        sha512 = "sJ4CyO3ZPaoxWpLQTJpH/gWD+tCIra2OJ9UPvrX1siyJkgh8NOAybRejJ/g2xHyOdAuoSE0lPRJwRl8AZSXYJQ==";
+      };
+    };
     "unherit-1.1.3" = {
       name = "unherit";
       packageName = "unherit";
@@ -65015,13 +65383,13 @@ let
         sha1 = "afb10e4ef1eeddc711417bbb652bc885da9d4171";
       };
     };
-    "unified-10.1.0" = {
+    "unified-10.1.1" = {
       name = "unified";
       packageName = "unified";
-      version = "10.1.0";
+      version = "10.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz";
-        sha512 = "4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==";
+        url = "https://registry.npmjs.org/unified/-/unified-10.1.1.tgz";
+        sha512 = "v4ky1+6BN9X3pQrOdkFIPWAaeDsHPE1svRDxq7YpTc2plkIqFMwukfqM+l0ewpP9EfwARlt9pPFAeWYhHm8X9w==";
       };
     };
     "unified-2.1.4" = {
@@ -66122,13 +66490,13 @@ let
         sha1 = "23f89069a6c62f46cf3a1d3b00169cefb90be0c6";
       };
     };
-    "usb-1.9.1" = {
+    "usb-1.9.2" = {
       name = "usb";
       packageName = "usb";
-      version = "1.9.1";
+      version = "1.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/usb/-/usb-1.9.1.tgz";
-        sha512 = "T6DZbJAFNcxhY1FzaYdXhV2oqoRlvLhtSSmnbFAqyCxahUkc+g0BPZVXv7hIeQQxDCAQnr4Ia8bfOk1JlzNzzw==";
+        url = "https://registry.npmjs.org/usb/-/usb-1.9.2.tgz";
+        sha512 = "dryNz030LWBPAf6gj8vyq0Iev3vPbCLHCT8dBw3gQRXRzVNsIdeuU+VjPp3ksmSPkeMAl1k+kQ14Ij0QHyeiAg==";
       };
     };
     "use-3.1.1" = {
@@ -66182,8 +66550,8 @@ let
       version = "1.0.4";
       src = fetchgit {
         url = "https://github.com/laurent22/uslug.git";
-        rev = "ba2834d79beb0435318709958b2f5e817d96674d";
-        sha256 = "e23c172456a8fa0af48dba3f89ca0d525dd870408f7bd6ad1d776cdbe13f0489";
+        rev = "8c12bc7678eaefa752e673ea9cfbc0b1a14d7237";
+        sha256 = "679cfa6f5c73bc070a567b942a648a213beb608efdff876c715f008ba11f5039";
       };
     };
     "ut_metadata-3.5.2" = {
@@ -66393,15 +66761,6 @@ let
         sha1 = "1352c340eb820e4d8ddba039a4fbfaa32ed4ef3a";
       };
     };
-    "utility-types-3.10.0" = {
-      name = "utility-types";
-      packageName = "utility-types";
-      version = "3.10.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz";
-        sha512 = "O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==";
-      };
-    };
     "utils-merge-1.0.1" = {
       name = "utils-merge";
       packageName = "utils-merge";
@@ -66501,15 +66860,6 @@ let
         sha512 = "CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg==";
       };
     };
-    "uuid-8.3.0" = {
-      name = "uuid";
-      packageName = "uuid";
-      version = "8.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz";
-        sha512 = "fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==";
-      };
-    };
     "uuid-8.3.2" = {
       name = "uuid";
       packageName = "uuid";
@@ -66834,15 +67184,6 @@ let
         sha512 = "JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==";
       };
     };
-    "vega-event-selector-2.0.6" = {
-      name = "vega-event-selector";
-      packageName = "vega-event-selector";
-      version = "2.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz";
-        sha512 = "UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==";
-      };
-    };
     "vega-event-selector-3.0.0" = {
       name = "vega-event-selector";
       packageName = "vega-event-selector";
@@ -66852,15 +67193,6 @@ let
         sha512 = "Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==";
       };
     };
-    "vega-expression-4.0.1" = {
-      name = "vega-expression";
-      packageName = "vega-expression";
-      version = "4.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz";
-        sha512 = "ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==";
-      };
-    };
     "vega-expression-5.0.0" = {
       name = "vega-expression";
       packageName = "vega-expression";
@@ -67032,15 +67364,6 @@ let
         sha512 = "88cIrjmoTxo/0nWTf+GuitkFhirHWVWCfymADiCUXt6s9arpQ6XPP5xjrN5KDc0LZd9xr7p4FIiEgADghgLTgw==";
       };
     };
-    "vega-util-1.16.1" = {
-      name = "vega-util";
-      packageName = "vega-util";
-      version = "1.16.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz";
-        sha512 = "FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==";
-      };
-    };
     "vega-util-1.17.0" = {
       name = "vega-util";
       packageName = "vega-util";
@@ -67095,13 +67418,13 @@ let
         sha512 = "/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==";
       };
     };
-    "verda-1.4.2" = {
+    "verda-1.4.3" = {
       name = "verda";
       packageName = "verda";
-      version = "1.4.2";
+      version = "1.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/verda/-/verda-1.4.2.tgz";
-        sha512 = "wyFXcOfspMxP/GB/+2nMrQNv0ojpYo3b5m48Yo+E3kGUWD2k1uw5Tr9HrXgPV/nWH0eT8Lgodn5Gx6eV6b/9iQ==";
+        url = "https://registry.npmjs.org/verda/-/verda-1.4.3.tgz";
+        sha512 = "zj/pnwAFnHabaQLadBWCu6QqxbZ28IPb5XiKPoIBaP9g6kOpqsimkEjFUa8E/ixFiV9NSK60VEz5JnG0IpMWLw==";
       };
     };
     "verror-1.1.0" = {
@@ -67320,13 +67643,13 @@ let
         sha512 = "GN2bH2gs4eLnw/4jPSgfBjo+XCuvnX9elHICJZjVD4+NM0nsUrMTvdjGY5Sc/XG69XVTgLwj7hknQVc6M9FukA==";
       };
     };
-    "vfile-reporter-7.0.2" = {
+    "vfile-reporter-7.0.3" = {
       name = "vfile-reporter";
       packageName = "vfile-reporter";
-      version = "7.0.2";
+      version = "7.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-7.0.2.tgz";
-        sha512 = "1bYxpyhl8vhAICiKR59vYyZHIOWsF7P1nV6xjaz3ZWAyOQDQhR4DjlOZo14+PiV9oLEWIrolvGHs0/2Bnaw5Vw==";
+        url = "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-7.0.3.tgz";
+        sha512 = "q+ruTWxFHbow359TDqoNJn5THdwRDeV+XUOtzdT/OESgaGw05CjL68ImlbzRzqS5xL62Y1IaIWb8x+RbaNjayA==";
       };
     };
     "vfile-reporter-pretty-5.0.0" = {
@@ -67545,22 +67868,22 @@ let
         sha1 = "614f7fbf8d801f0bb5f0661f5b2f5785750e4f09";
       };
     };
-    "vsce-1.88.0" = {
+    "vsce-1.103.1" = {
       name = "vsce";
       packageName = "vsce";
-      version = "1.88.0";
+      version = "1.103.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vsce/-/vsce-1.88.0.tgz";
-        sha512 = "FS5ou3G+WRnPPr/tWVs8b/jVzeDacgZHy/y7/QQW7maSPFEAmRt2bFGUJtJVEUDLBqtDm/3VGMJ7D31cF2U1tw==";
+        url = "https://registry.npmjs.org/vsce/-/vsce-1.103.1.tgz";
+        sha512 = "98oKQKKRp7J/vTIk1cuzom5cezZpYpRHs3WlySdsrTCrAEipB/HvaPTc4VZ3hGZHzHXS9P5p2L0IllntJeXwiQ==";
       };
     };
-    "vsce-1.95.1" = {
+    "vsce-1.88.0" = {
       name = "vsce";
       packageName = "vsce";
-      version = "1.95.1";
+      version = "1.88.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vsce/-/vsce-1.95.1.tgz";
-        sha512 = "2v8g3ZtZkaOTscRjjCAtM3Au6YYWJtg9UNt1iyyWko7ZHejbt5raClcNzQ7/WYVLYhYHc+otHQifV0gCBREgNg==";
+        url = "https://registry.npmjs.org/vsce/-/vsce-1.88.0.tgz";
+        sha512 = "FS5ou3G+WRnPPr/tWVs8b/jVzeDacgZHy/y7/QQW7maSPFEAmRt2bFGUJtJVEUDLBqtDm/3VGMJ7D31cF2U1tw==";
       };
     };
     "vscode-css-languageservice-3.0.13" = {
@@ -67581,31 +67904,31 @@ let
         sha512 = "jWi+297PJUUWTHwlcrZz0zIuEXuHOBJIQMapXmEzbosWGv/gMnNSAMV4hTKnl5wzxvZKZzV6j+WFdrSlKQ5qnw==";
       };
     };
-    "vscode-css-languageservice-5.1.8" = {
+    "vscode-css-languageservice-5.1.9" = {
       name = "vscode-css-languageservice";
       packageName = "vscode-css-languageservice";
-      version = "5.1.8";
+      version = "5.1.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-5.1.8.tgz";
-        sha512 = "Si1sMykS8U/p8LYgLGPCfZD1YFT0AtvUJQp9XJGw64DZWhtwYo28G2l64USLS9ge4ZPMZpwdpOK7PfbVKfgiiA==";
+        url = "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-5.1.9.tgz";
+        sha512 = "/tFOWeZBL3Oc9Zc+2MAi3rEwiXJTSZsvjB+M7nSjWLbGPUIjukUA7YzLgsBoUfR35sPJYnXWUkL56PdfIYM8GA==";
       };
     };
-    "vscode-debugadapter-testsupport-1.50.0" = {
+    "vscode-debugadapter-testsupport-1.51.0" = {
       name = "vscode-debugadapter-testsupport";
       packageName = "vscode-debugadapter-testsupport";
-      version = "1.50.0";
+      version = "1.51.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-debugadapter-testsupport/-/vscode-debugadapter-testsupport-1.50.0.tgz";
-        sha512 = "stS8yE8le59FLeKvCvdSY6PoYtmUXMxR1WiAW2JS65Sg7ip+yQm+WMKQZz8Dat0vtUF4ALcaKf/P+KjPTdzVww==";
+        url = "https://registry.npmjs.org/vscode-debugadapter-testsupport/-/vscode-debugadapter-testsupport-1.51.0.tgz";
+        sha512 = "rb8tfn7J3kxLi1rRhEyG5ggGkFcJH2WrYYrq6Vb1tDAcHoFXF580M1dAA2jPOrc0I14GuWxMnndvfGkfG10VxA==";
       };
     };
-    "vscode-debugprotocol-1.50.1" = {
+    "vscode-debugprotocol-1.51.0" = {
       name = "vscode-debugprotocol";
       packageName = "vscode-debugprotocol";
-      version = "1.50.1";
+      version = "1.51.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.50.1.tgz";
-        sha512 = "kIHIipklHnSjBm2KkRqTJLKL2FMZlJl0+/qpJt2y62YOamMNwcxNATnXXRgAwnzKKRMweqp93tJ83UTJ8+O7SQ==";
+        url = "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.51.0.tgz";
+        sha512 = "dzKWTMMyebIMPF1VYMuuQj7gGFq7guR8AFya0mKacu+ayptJfaRuM0mdHCqiOth4FnRP8mPhEroFPx6Ift8wHA==";
       };
     };
     "vscode-emmet-helper-1.2.17" = {
@@ -67617,6 +67940,15 @@ let
         sha512 = "X4pzcrJ8dE7M3ArFuySF5fgipKDd/EauXkiJwtjBIVRWpVNq0tF9+lNCyuC7iDUwP3Oq7ow/TGssD3GdG96Jow==";
       };
     };
+    "vscode-emmet-helper-2.1.2" = {
+      name = "vscode-emmet-helper";
+      packageName = "vscode-emmet-helper";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-emmet-helper/-/vscode-emmet-helper-2.1.2.tgz";
+        sha512 = "Fy6UNawSgxE3Kuqi54vSXohf03iOIrp1A74ReAgzvGP9Yt7fUAvkqF6No2WAc34/w0oWAHAeqoBNqmKKWh6U5w==";
+      };
+    };
     "vscode-emmet-helper-2.6.4" = {
       name = "vscode-emmet-helper";
       packageName = "vscode-emmet-helper";
@@ -67635,6 +67967,15 @@ let
         sha512 = "mIb5VMXM5jI97HzCk2eadI1K//rCEZXte0wBqA7PGXsyJH4KTyJUaYk9MR+mbfpUl2vMi3HZw9GUOLGYLc6l5w==";
       };
     };
+    "vscode-html-languageservice-3.2.0" = {
+      name = "vscode-html-languageservice";
+      packageName = "vscode-html-languageservice";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-3.2.0.tgz";
+        sha512 = "aLWIoWkvb5HYTVE0kI9/u3P0ZAJGrYOSAAE6L0wqB9radKRtbJNrF9+BjSUFyCgBdNBE/GFExo35LoknQDJrfw==";
+      };
+    };
     "vscode-html-languageservice-4.1.1" = {
       name = "vscode-html-languageservice";
       packageName = "vscode-html-languageservice";
@@ -67644,6 +67985,15 @@ let
         sha512 = "rrDyCiOgMwOPgchpPGAeLzjYVVEW/Ror2/a1BWUEI3S9+NQhA9vj4SQkzmH6g2Bq9S9SV0OQeadD+xphOf1N3w==";
       };
     };
+    "vscode-html-languageservice-4.2.1" = {
+      name = "vscode-html-languageservice";
+      packageName = "vscode-html-languageservice";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-4.2.1.tgz";
+        sha512 = "PgaToZVXJ44nFWEBuSINdDgVV6EnpC3MnXBsysR3O5TKcAfywbYeRGRy+Y4dVR7YeUgDvtb+JkJoSkaYC0mxXQ==";
+      };
+    };
     "vscode-json-languageserver-1.3.4" = {
       name = "vscode-json-languageserver";
       packageName = "vscode-json-languageserver";
@@ -67680,6 +68030,15 @@ let
         sha512 = "IHliMEEYSY0tJjJt0ECb8ESx/nRXpoy9kN42WVQXgaqGyizFAf3jibSiezDQTrrY7f3kywXggCU+kkJEM+OLZQ==";
       };
     };
+    "vscode-json-languageservice-4.2.0-next.2" = {
+      name = "vscode-json-languageservice";
+      packageName = "vscode-json-languageservice";
+      version = "4.2.0-next.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.2.0-next.2.tgz";
+        sha512 = "P0sdiZS7bM8+bxrkpL7XPwwhmZj94pcJIAZUh/QeessvYtXFnRmOEybe20rC+CS7b7DfwFcVt0p4p93hGZQ5gg==";
+      };
+    };
     "vscode-jsonrpc-3.5.0" = {
       name = "vscode-jsonrpc";
       packageName = "vscode-jsonrpc";
@@ -67752,13 +68111,13 @@ let
         sha512 = "gxUyTBAjmwGkiHW/UaRScre2s4i98P8M7gnc3VB4DrVQUm3vQ0idi2cN9nbkfcjATx+uEt8C22j+MLN/8UzsJA==";
       };
     };
-    "vscode-jsonrpc-8.0.0-next.3" = {
+    "vscode-jsonrpc-8.0.0-next.4" = {
       name = "vscode-jsonrpc";
       packageName = "vscode-jsonrpc";
-      version = "8.0.0-next.3";
+      version = "8.0.0-next.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.0-next.3.tgz";
-        sha512 = "2wRiBR5tZAXZ4UxIO4F0cT/zN6OpruoWO0vc7EpQZxVfumb0pYiSegB+PaOzXCuFQzh7YEshW/XMg4zTz3FGVQ==";
+        url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.0.0-next.4.tgz";
+        sha512 = "i+wvza5Wd0YV/t9qhnS8I+dJdhJ1fHIhRW4f262rXXM9Mgts5VZhYrRZufGcai4y99RlbZvwaZhplQ6diRXkaA==";
       };
     };
     "vscode-languageclient-4.0.1" = {
@@ -67860,13 +68219,13 @@ let
         sha512 = "/65lxR/CuLJoOdzTjOTYUPWS7k5qzaWese4PObnWc6jwLryUrSa7DslYfaRXigh5/xr1nlaUZCcJwkpgM0wFvw==";
       };
     };
-    "vscode-languageserver-8.0.0-next.3" = {
+    "vscode-languageserver-8.0.0-next.5" = {
       name = "vscode-languageserver";
       packageName = "vscode-languageserver";
-      version = "8.0.0-next.3";
+      version = "8.0.0-next.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.0.0-next.3.tgz";
-        sha512 = "uxL/tKUa/gRdvQINVmMnK32d6LwfTPTvF7l1iZIFDuAdhGrQ+Po+4lS3w4hwQSeUmapM1WMELXNBFca/u3H5Uw==";
+        url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-8.0.0-next.5.tgz";
+        sha512 = "3E2W0eWtGKb6QAJqspOnD0thrBRRo8IGUMV5jpDNMcMKvmtkcxMwsBh0VxdvuWaZ51PiNyR4L+B+GUvkYsyFEg==";
       };
     };
     "vscode-languageserver-protocol-3.14.1" = {
@@ -67905,6 +68264,15 @@ let
         sha512 = "atmkGT/W6tF0cx4SaWFYtFs2UeSeC28RPiap9myv2YZTaTCFvTBEPNWrU5QRKfkyM0tbgtGo6T3UCQ8tkDpjzA==";
       };
     };
+    "vscode-languageserver-protocol-3.17.0-next.11" = {
+      name = "vscode-languageserver-protocol";
+      packageName = "vscode-languageserver-protocol";
+      version = "3.17.0-next.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.0-next.11.tgz";
+        sha512 = "9FqHT7XvM6tWFsnLvRfuQA7Zh7wZZYAwA9dK85lYthA8M1aXpXEP9drXVvO/Fe03MUeJpKVf2e4/NvDaFUnttg==";
+      };
+    };
     "vscode-languageserver-protocol-3.17.0-next.5" = {
       name = "vscode-languageserver-protocol";
       packageName = "vscode-languageserver-protocol";
@@ -67923,15 +68291,6 @@ let
         sha512 = "P89vSuJ+FA5JzFmcOoZN13Ig1yd6LsiPOig0O5m5BSGuO/rplQegCd9J0wKpaTy7trf/SYHRoypnbUBdzy14sg==";
       };
     };
-    "vscode-languageserver-protocol-3.17.0-next.9" = {
-      name = "vscode-languageserver-protocol";
-      packageName = "vscode-languageserver-protocol";
-      version = "3.17.0-next.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.0-next.9.tgz";
-        sha512 = "DGkRmbI1hRBMY6HU6MOyza5AvYp0+HcbMf2qdmI98luyQJ26dOfHY5K38OS4hlTHhdJg9RypTQ/uBbLZehmn1Q==";
-      };
-    };
     "vscode-languageserver-protocol-3.5.1" = {
       name = "vscode-languageserver-protocol";
       packageName = "vscode-languageserver-protocol";
@@ -67959,13 +68318,13 @@ let
         sha512 = "N8bOS8i0xuQMn/y0bijyefDbOsMl6hiH6LDREYWavTLTM5jbj44EiQfStsbmAv/0eaFKkL/jf5hW7nWwBy2HBw==";
       };
     };
-    "vscode-languageserver-textdocument-1.0.2" = {
+    "vscode-languageserver-textdocument-1.0.3" = {
       name = "vscode-languageserver-textdocument";
       packageName = "vscode-languageserver-textdocument";
-      version = "1.0.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.2.tgz";
-        sha512 = "T7uPC18+f8mYE4lbVZwb3OSmvwTZm3cuFhrdx9Bn2l11lmp3SvSuSVjy2JtvrghzjAo4G6Trqny2m9XGnFnWVA==";
+        url = "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.3.tgz";
+        sha512 = "ynEGytvgTb6HVSUwPJIAZgiHQmPCx8bZ8w5um5Lz+q5DjP0Zj8wTFhQpyg8xaMvefDytw2+HH5yzqS+FhsR28A==";
       };
     };
     "vscode-languageserver-types-3.14.0" = {
@@ -68031,13 +68390,13 @@ let
         sha512 = "VQcXnhKYxUW6OiRMhG++SzmZYMJwusXknJGd+FfdOnS1yHAo734OHyR0e2eEHDlv0/oWc8RZPgx/VKSKyondVg==";
       };
     };
-    "vscode-languageserver-types-3.17.0-next.4" = {
+    "vscode-languageserver-types-3.17.0-next.5" = {
       name = "vscode-languageserver-types";
       packageName = "vscode-languageserver-types";
-      version = "3.17.0-next.4";
+      version = "3.17.0-next.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.0-next.4.tgz";
-        sha512 = "MraVkZDhfqa3ftnKW9rEDeqsV+ji8OrtEjx6mVjzVGm5U2XXT+mdqDWyQ+y0Gvb2/aa2oJJQyTAaDmRTUKiUbg==";
+        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.0-next.5.tgz";
+        sha512 = "Zcfaw8BznhlJWB09LDR0dscXyxn9+liREqJnPF4pigeUCHwKxYapYqizwuCpMHQ/oLYiAvKwU+f28hPleYu7pA==";
       };
     };
     "vscode-languageserver-types-3.5.0" = {
@@ -68355,13 +68714,13 @@ let
         sha512 = "Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==";
       };
     };
-    "watchpack-2.2.0" = {
+    "watchpack-2.3.1" = {
       name = "watchpack";
       packageName = "watchpack";
-      version = "2.2.0";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz";
-        sha512 = "up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==";
+        url = "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz";
+        sha512 = "x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==";
       };
     };
     "watchpack-chokidar2-2.0.1" = {
@@ -68445,13 +68804,13 @@ let
         sha512 = "bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==";
       };
     };
-    "web-push-3.4.4" = {
+    "web-push-3.4.5" = {
       name = "web-push";
       packageName = "web-push";
-      version = "3.4.4";
+      version = "3.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/web-push/-/web-push-3.4.4.tgz";
-        sha512 = "tB0F+ccobsfw5jTWBinWJKyd/YdCdRbKj+CFSnsJeEgFYysOULvWFYyeCxn9KuQvG/3UF1t3cTAcJzBec5LCWA==";
+        url = "https://registry.npmjs.org/web-push/-/web-push-3.4.5.tgz";
+        sha512 = "2njbTqZ6Q7ZqqK14YpK1GGmaZs3NmuGYF5b7abCXulUIWFSlSYcZ3NBJQRFcMiQDceD7vQknb8FUuvI1F7Qe/g==";
       };
     };
     "web-streams-polyfill-3.2.0" = {
@@ -68463,6 +68822,15 @@ let
         sha512 = "EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==";
       };
     };
+    "web-streams-polyfill-4.0.0-beta.1" = {
+      name = "web-streams-polyfill";
+      packageName = "web-streams-polyfill";
+      version = "4.0.0-beta.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.1.tgz";
+        sha512 = "3ux37gEX670UUphBF9AMCq8XM6iQ8Ac6A+DSRRjDoRBm1ufCkaCDdNVbaqq60PsEkdNlLKrGtv/YBP4EJXqNtQ==";
+      };
+    };
     "web-tree-sitter-0.17.1" = {
       name = "web-tree-sitter";
       packageName = "web-tree-sitter";
@@ -68589,22 +68957,13 @@ let
         sha512 = "6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==";
       };
     };
-    "webpack-5.58.2" = {
-      name = "webpack";
-      packageName = "webpack";
-      version = "5.58.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/webpack/-/webpack-5.58.2.tgz";
-        sha512 = "3S6e9Vo1W2ijk4F4PPWRIu6D/uGgqaPmqw+av3W3jLDujuNkdxX5h5c+RQ6GkjVR+WwIPOfgY8av+j5j4tMqJw==";
-      };
-    };
-    "webpack-5.64.1" = {
+    "webpack-5.65.0" = {
       name = "webpack";
       packageName = "webpack";
-      version = "5.64.1";
+      version = "5.65.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack/-/webpack-5.64.1.tgz";
-        sha512 = "b4FHmRgaaAjP+aVOVz41a9Qa5SmkUPQ+u8FntTQ1roPHahSComB6rXnLwc976VhUY4CqTaLu5mCswuHiNhOfVw==";
+        url = "https://registry.npmjs.org/webpack/-/webpack-5.65.0.tgz";
+        sha512 = "Q5or2o6EKs7+oKmJo7LaqZaMOlDWQse9Tm5l1WAfU/ujLGN5Pb0SqGeVkN/4bpPmEqEP5RnVhiqsOtWtUVwGRw==";
       };
     };
     "webpack-bundle-analyzer-3.9.0" = {
@@ -68652,13 +69011,13 @@ let
         sha512 = "djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==";
       };
     };
-    "webpack-dev-middleware-5.2.1" = {
+    "webpack-dev-middleware-5.3.0" = {
       name = "webpack-dev-middleware";
       packageName = "webpack-dev-middleware";
-      version = "5.2.1";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.2.1.tgz";
-        sha512 = "Kx1X+36Rn9JaZcQMrJ7qN3PMAuKmEDD9ZISjUj3Cgq4A6PtwYsC4mpaKotSRYH3iOF6HsUa8viHKS59FlyVifQ==";
+        url = "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.0.tgz";
+        sha512 = "MouJz+rXAm9B1OTOYaJnn6rtD/lWZPy2ufQCH3BPs8Rloh/Du6Jze4p7AeLYHkVi0giJnYLaSGDC7S+GM9arhg==";
       };
     };
     "webpack-dev-server-3.11.0" = {
@@ -69255,6 +69614,15 @@ let
         sha1 = "64b6abf4cd01adcaefd5009393b1d8e8bec19db0";
       };
     };
+    "winston-1.0.2" = {
+      name = "winston";
+      packageName = "winston";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston/-/winston-1.0.2.tgz";
+        sha1 = "351c58e2323f8a4ca29a45195aa9aa3b4c35d76f";
+      };
+    };
     "winston-2.1.1" = {
       name = "winston";
       packageName = "winston";
@@ -69273,15 +69641,6 @@ let
         sha512 = "TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==";
       };
     };
-    "winston-3.1.0" = {
-      name = "winston";
-      packageName = "winston";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/winston/-/winston-3.1.0.tgz";
-        sha512 = "FsQfEE+8YIEeuZEYhHDk5cILo1HOcWkGwvoidLrDgPog0r4bser1lEIOco2dN9zpDJ1M88hfDgZvxe5z4xNcwg==";
-      };
-    };
     "winston-3.2.1" = {
       name = "winston";
       packageName = "winston";
@@ -69300,13 +69659,13 @@ let
         sha512 = "oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==";
       };
     };
-    "winston-transport-4.4.0" = {
+    "winston-transport-4.4.1" = {
       name = "winston-transport";
       packageName = "winston-transport";
-      version = "4.4.0";
+      version = "4.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz";
-        sha512 = "Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==";
+        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.1.tgz";
+        sha512 = "ciZRlU4CSjHqHe8RQG1iPxKMRVwv6ZJ0RC7DxStKWd0KjpAhPDy5gVYSCpIUq+5CUsP+IyNOTZy1X0tO2QZqjg==";
       };
     };
     "with-5.1.1" = {
@@ -69471,6 +69830,15 @@ let
         sha512 = "YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==";
       };
     };
+    "wrap-ansi-8.0.1" = {
+      name = "wrap-ansi";
+      packageName = "wrap-ansi";
+      version = "8.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.0.1.tgz";
+        sha512 = "QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==";
+      };
+    };
     "wrap-fn-0.1.5" = {
       name = "wrap-fn";
       packageName = "wrap-fn";
@@ -69678,13 +70046,13 @@ let
         sha512 = "2c6faOUH/nhoQN6abwMloF7Iyl0ZS2E9HGtsiLrWn0zOOMWlhtDmdf/uihDt6jnuCxgtwGBNy6Onsoy2s2O2Ow==";
       };
     };
-    "ws-7.5.5" = {
+    "ws-7.5.6" = {
       name = "ws";
       packageName = "ws";
-      version = "7.5.5";
+      version = "7.5.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz";
-        sha512 = "BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==";
+        url = "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz";
+        sha512 = "6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==";
       };
     };
     "ws-8.2.3" = {
@@ -69696,6 +70064,15 @@ let
         sha512 = "wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==";
       };
     };
+    "ws-8.3.0" = {
+      name = "ws";
+      packageName = "ws";
+      version = "8.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ws/-/ws-8.3.0.tgz";
+        sha512 = "Gs5EZtpqZzLvmIM59w4igITU57lrtYVFneaa434VROv4thzJyV6UjIL3D42lslWlI+D4KzLYnxSwtfuiO79sNw==";
+      };
+    };
     "x-default-browser-0.3.1" = {
       name = "x-default-browser";
       packageName = "x-default-browser";
@@ -69786,13 +70163,13 @@ let
         sha512 = "N1XQngeqMBoj9wM4ZFadVV2MymImeiFfYD+fJrNlcVcOHsJFFQe7n3b+aBoTPwARuq2HQxukfzVpQmAk1gN4sQ==";
       };
     };
-    "xdl-59.2.13" = {
+    "xdl-59.2.20" = {
       name = "xdl";
       packageName = "xdl";
-      version = "59.2.13";
+      version = "59.2.20";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xdl/-/xdl-59.2.13.tgz";
-        sha512 = "GDfdIAKWP4ZcjNOne6bzCcCm+BVPJB2L3KuQj6PizXo5Tx9cmvROVzEd/YNQcn8hTSliCmZ1RXexSIx3xfJ5Sg==";
+        url = "https://registry.npmjs.org/xdl/-/xdl-59.2.20.tgz";
+        sha512 = "wP9zY0/yRoOvSMlaoIhpZXQKrtNNjDDFop4TT/Mvrjy5dqQHY6+eB5w0Jla74W+wHSBzcRPBxtRpqwcAl3Q6TA==";
       };
     };
     "xenvar-0.5.1" = {
@@ -70174,13 +70551,13 @@ let
         sha1 = "52a63e56ca0b84a7f3a5f3d61872f126ad7a5943";
       };
     };
-    "xsalsa20-1.1.0" = {
+    "xsalsa20-1.2.0" = {
       name = "xsalsa20";
       packageName = "xsalsa20";
-      version = "1.1.0";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.1.0.tgz";
-        sha512 = "zd3ytX2cm+tcSndRU+krm0eL4TMMpZE7evs5hLRAoOy6gviqLfe3qOlkjF3i5SeAkQUCeJk0lJZrEU56kHRfWw==";
+        url = "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.2.0.tgz";
+        sha512 = "FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w==";
       };
     };
     "xsalsa20-universal-1.0.0" = {
@@ -70210,13 +70587,13 @@ let
         sha512 = "qmoqrRksmzqSKvgqzN0055UFWY7OKx1/9JWeRswwEVX9fCG5jcYRxa/A2DHcmZX6VJvjzHRQ2STeeVcQkrmLSw==";
       };
     };
-    "xstate-4.26.0" = {
+    "xstate-4.26.1" = {
       name = "xstate";
       packageName = "xstate";
-      version = "4.26.0";
+      version = "4.26.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xstate/-/xstate-4.26.0.tgz";
-        sha512 = "l0tfRBhVYM17D6IWT4pVOzzN9kY/5lnPWCe4LXjJ3F9HCrJOPBn6tPRAb9mapSRBS8cOeByJFDCRSNopgaoC5w==";
+        url = "https://registry.npmjs.org/xstate/-/xstate-4.26.1.tgz";
+        sha512 = "JLofAEnN26l/1vbODgsDa+Phqa61PwDlxWu8+2pK+YbXf+y9pQSDLRvcYH2H1kkeUBA5fGp+xFL/zfE8jNMw4g==";
       };
     };
     "xstream-11.14.0" = {
@@ -70507,6 +70884,15 @@ let
         sha512 = "XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q==";
       };
     };
+    "yargs-17.3.0" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "17.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-17.3.0.tgz";
+        sha512 = "GQl1pWyDoGptFPJx9b9L6kmR33TGusZvXIZUT+BOz9f7X2L94oeAskFYLEg/FkhV06zZPBYLvLZRWeYId29lew==";
+      };
+    };
     "yargs-3.10.0" = {
       name = "yargs";
       packageName = "yargs";
@@ -70633,6 +71019,15 @@ let
         sha512 = "y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==";
       };
     };
+    "yargs-parser-21.0.0" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "21.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz";
+        sha512 = "z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==";
+      };
+    };
     "yargs-parser-4.2.1" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
@@ -70687,13 +71082,22 @@ let
         sha512 = "7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==";
       };
     };
-    "yarn-1.22.4" = {
+    "yarn-1.22.10" = {
       name = "yarn";
       packageName = "yarn";
-      version = "1.22.4";
+      version = "1.22.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yarn/-/yarn-1.22.4.tgz";
-        sha512 = "oYM7hi/lIWm9bCoDMEWgffW8aiNZXCWeZ1/tGy0DWrN6vmzjCXIKu2Y21o8DYVBUtiktwKcNoxyGl/2iKLUNGA==";
+        url = "https://registry.npmjs.org/yarn/-/yarn-1.22.10.tgz";
+        sha512 = "IanQGI9RRPAN87VGTF7zs2uxkSyQSrSPsju0COgbsKQOOXr5LtcVPeyXWgwVa0ywG3d8dg6kSYKGBuYK021qeA==";
+      };
+    };
+    "yarn-1.22.17" = {
+      name = "yarn";
+      packageName = "yarn";
+      version = "1.22.17";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yarn/-/yarn-1.22.17.tgz";
+        sha512 = "H0p241BXaH0UN9IeH//RT82tl5PfNraVpSpEoW+ET7lmopNC61eZ+A+IDvU8FM6Go5vx162SncDL8J1ZjRBriQ==";
       };
     };
     "yarn-or-npm-3.0.1" = {
@@ -70750,13 +71154,13 @@ let
         sha512 = "9Ni+uXWeFix9+1t7s1q40zZdbcpdi/OwgD4N4cVaqI+bppPciOOXQ/RSggannwZu8m8zrSWELn6/93G7308jgg==";
       };
     };
-    "yeoman-environment-3.8.0" = {
+    "yeoman-environment-3.8.1" = {
       name = "yeoman-environment";
       packageName = "yeoman-environment";
-      version = "3.8.0";
+      version = "3.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.8.0.tgz";
-        sha512 = "BPo3btCxefe8NzDMk59QRDNBXMC4Ra6SHhFfEsV2DTmAp/6ZoovMANlJiWrXu41rtFQBmjH/rT2tSiHGowt38w==";
+        url = "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.8.1.tgz";
+        sha512 = "UM42p60GcJOwPfL63yBwBiiZiZ4p7taEjR5B+XdEu+sf73T+510gxiAqYuTCDOVTYBqhywVpZoWEnR+HtshiBA==";
       };
     };
     "yeoman-generator-5.4.2" = {
@@ -70849,15 +71253,6 @@ let
         sha512 = "Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==";
       };
     };
-    "zen-observable-ts-1.2.2" = {
-      name = "zen-observable-ts";
-      packageName = "zen-observable-ts";
-      version = "1.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.2.tgz";
-        sha512 = "o15G3luGAPoWD2//djCQsnC7886KpgQETAvTwnDPMN33RS+XACoFR46fm5e3tC/WNTF0uzHPL91Yyakc280Xiw==";
-      };
-    };
     "zeromq-5.2.8" = {
       name = "zeromq";
       packageName = "zeromq";
@@ -70954,44 +71349,38 @@ in
   "@angular/cli" = nodeEnv.buildNodePackage {
     name = "_at_angular_slash_cli";
     packageName = "@angular/cli";
-    version = "13.0.2";
+    version = "13.1.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@angular/cli/-/cli-13.0.2.tgz";
-      sha512 = "eFEVZR56q1zCCBfp7e7sqmrqbHhdDd/1QGv9FYD+2HoC1VHYQf5w+NyWofQhx7a+tnGGqoR28LYzSsL7fFW8pw==";
+      url = "https://registry.npmjs.org/@angular/cli/-/cli-13.1.2.tgz";
+      sha512 = "jEsQWzHgODFpppWGb49jfqlN8YYhphsKY3MPHlrjmd05qWgKItUGSgA46hSoDqjaJKVUN9koUnJBFCc9utERYA==";
     };
     dependencies = [
-      sources."@angular-devkit/architect-0.1300.2"
-      sources."@angular-devkit/core-13.0.2"
-      sources."@angular-devkit/schematics-13.0.2"
+      sources."@angular-devkit/architect-0.1301.2"
+      sources."@angular-devkit/core-13.1.2"
+      sources."@angular-devkit/schematics-13.1.2"
       sources."@gar/promisify-1.1.2"
-      sources."@npmcli/fs-1.0.0"
+      sources."@npmcli/fs-1.1.0"
       sources."@npmcli/git-2.1.0"
       sources."@npmcli/installed-package-contents-1.0.7"
       sources."@npmcli/move-file-1.1.2"
       sources."@npmcli/node-gyp-1.0.3"
       sources."@npmcli/promise-spawn-1.3.2"
       sources."@npmcli/run-script-2.0.0"
-      sources."@schematics/angular-13.0.2"
+      sources."@schematics/angular-13.1.2"
       sources."@tootallnate/once-1.1.2"
       sources."@yarnpkg/lockfile-1.1.0"
       sources."abbrev-1.1.1"
       sources."agent-base-6.0.2"
       sources."agentkeepalive-4.1.4"
       sources."aggregate-error-3.1.0"
-      sources."ajv-8.6.3"
+      sources."ajv-8.8.2"
       sources."ajv-formats-2.1.1"
       sources."ansi-colors-4.1.1"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
-      sources."aproba-1.2.0"
-      (sources."are-we-there-yet-1.1.7" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."aproba-2.0.0"
+      sources."are-we-there-yet-2.0.0"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bl-4.1.0"
@@ -71007,13 +71396,12 @@ in
       sources."cli-spinners-2.6.1"
       sources."cli-width-3.0.0"
       sources."clone-1.0.4"
-      sources."code-point-at-1.1.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
+      sources."color-support-1.1.3"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
-      sources."core-util-is-1.0.3"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."defaults-1.0.3"
       sources."define-lazy-prop-2.0.0"
       sources."delegates-1.0.0"
@@ -71034,14 +71422,7 @@ in
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
-      (sources."gauge-2.7.4" // {
-        dependencies = [
-          sources."ansi-regex-2.1.1"
-          sources."is-fullwidth-code-point-1.0.0"
-          sources."string-width-1.0.2"
-          sources."strip-ansi-3.0.1"
-        ];
-      })
+      sources."gauge-4.0.0"
       sources."glob-7.2.0"
       sources."graceful-fs-4.2.8"
       sources."has-1.0.3"
@@ -71075,7 +71456,6 @@ in
       sources."is-lambda-1.0.1"
       sources."is-unicode-supported-0.1.0"
       sources."is-wsl-2.2.0"
-      sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-traverse-1.0.0"
@@ -71088,7 +71468,7 @@ in
       sources."make-fetch-happen-9.1.0"
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
-      sources."minipass-3.1.5"
+      sources."minipass-3.1.6"
       sources."minipass-collect-1.0.2"
       sources."minipass-fetch-1.4.1"
       sources."minipass-flush-1.0.5"
@@ -71100,7 +71480,7 @@ in
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
       sources."negotiator-0.6.2"
-      sources."node-gyp-8.4.0"
+      sources."node-gyp-8.4.1"
       sources."nopt-5.0.0"
       sources."npm-bundled-1.1.2"
       sources."npm-install-checks-4.0.0"
@@ -71109,9 +71489,7 @@ in
       sources."npm-packlist-3.0.0"
       sources."npm-pick-manifest-6.1.1"
       sources."npm-registry-fetch-11.0.0"
-      sources."npmlog-4.1.2"
-      sources."number-is-nan-1.0.1"
-      sources."object-assign-4.1.1"
+      sources."npmlog-6.0.0"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
       sources."open-8.4.0"
@@ -71121,7 +71499,6 @@ in
       sources."pacote-12.0.2"
       sources."path-is-absolute-1.0.1"
       sources."path-parse-1.0.7"
-      sources."process-nextick-args-2.0.1"
       sources."promise-inflight-1.0.1"
       sources."promise-retry-2.0.1"
       sources."punycode-2.1.1"
@@ -71138,10 +71515,10 @@ in
       sources."safer-buffer-2.1.2"
       sources."semver-7.3.5"
       sources."set-blocking-2.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.1"
-      sources."socks-proxy-agent-6.1.0"
+      sources."socks-proxy-agent-6.1.1"
       sources."source-map-0.7.3"
       sources."sourcemap-codec-1.4.8"
       sources."ssri-8.0.1"
@@ -71493,7 +71870,7 @@ in
         ];
       })
       sources."to-utf8-0.0.1"
-      sources."uglify-js-3.14.3"
+      sources."uglify-js-3.14.5"
       sources."unc-path-regex-0.1.2"
       sources."unique-stream-2.3.1"
       sources."universalify-0.1.2"
@@ -71530,18 +71907,90 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  "@astrojs/language-server" = nodeEnv.buildNodePackage {
+    name = "_at_astrojs_slash_language-server";
+    packageName = "@astrojs/language-server";
+    version = "0.8.4";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/@astrojs/language-server/-/language-server-0.8.4.tgz";
+      sha512 = "708BHd8clydMkrsUrh05vPL13RSoU6Cjuu6QExps1co7PDo218EgDBku+JS8g/pnDqDfQwC2Rmo/6GwZ/hfXpA==";
+    };
+    dependencies = [
+      sources."@emmetio/abbreviation-2.2.2"
+      sources."@emmetio/css-abbreviation-2.1.4"
+      sources."@emmetio/scanner-1.0.0"
+      sources."@nodelib/fs.scandir-2.1.5"
+      sources."@nodelib/fs.stat-2.0.5"
+      sources."@nodelib/fs.walk-1.2.8"
+      sources."@ts-morph/common-0.11.1"
+      sources."balanced-match-1.0.2"
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."code-block-writer-10.1.1"
+      sources."concat-map-0.0.1"
+      sources."emmet-2.3.5"
+      sources."fast-glob-3.2.7"
+      sources."fastq-1.13.0"
+      sources."fill-range-7.0.1"
+      sources."glob-parent-5.1.2"
+      sources."is-extglob-2.1.1"
+      sources."is-glob-4.0.3"
+      sources."is-number-7.0.0"
+      sources."jsonc-parser-2.3.1"
+      sources."lodash-4.17.21"
+      sources."merge2-1.4.1"
+      sources."micromatch-4.0.4"
+      sources."minimatch-3.0.4"
+      sources."mkdirp-1.0.4"
+      sources."path-browserify-1.0.1"
+      sources."picomatch-2.3.0"
+      sources."queue-microtask-1.2.3"
+      sources."reusify-1.0.4"
+      sources."run-parallel-1.2.0"
+      sources."source-map-0.7.3"
+      sources."to-regex-range-5.0.1"
+      sources."ts-morph-12.2.0"
+      sources."typescript-4.5.4"
+      sources."vscode-css-languageservice-5.1.9"
+      (sources."vscode-emmet-helper-2.1.2" // {
+        dependencies = [
+          sources."vscode-uri-2.1.2"
+        ];
+      })
+      (sources."vscode-html-languageservice-3.2.0" // {
+        dependencies = [
+          sources."vscode-languageserver-types-3.16.0-next.2"
+          sources."vscode-uri-2.1.2"
+        ];
+      })
+      sources."vscode-jsonrpc-6.0.0"
+      sources."vscode-languageserver-6.1.1"
+      sources."vscode-languageserver-protocol-3.16.0"
+      sources."vscode-languageserver-textdocument-1.0.3"
+      sources."vscode-languageserver-types-3.16.0"
+      sources."vscode-nls-5.0.0"
+      sources."vscode-uri-3.0.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   "@bitwarden/cli" = nodeEnv.buildNodePackage {
     name = "_at_bitwarden_slash_cli";
     packageName = "@bitwarden/cli";
-    version = "1.19.1";
+    version = "1.20.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@bitwarden/cli/-/cli-1.19.1.tgz";
-      sha512 = "xDoqjMffFgl6JPgjRYDHZARuCNNhFd/set30pUub52lHtvKPRYsH3mIr7V3yg9luqspzXNr5jMcAqxib+TNKzg==";
+      url = "https://registry.npmjs.org/@bitwarden/cli/-/cli-1.20.0.tgz";
+      sha512 = "i6s9f4/aKhzG1Kbf9tk/1wAvF0Ng8PjQW0nSEzYcNlA4zPicHh4VLD8lsT3quNJABpIFIADEJE5pFqHSDUBFew==";
     };
     dependencies = [
       sources."@tootallnate/once-1.1.2"
       sources."abab-2.0.5"
-      sources."acorn-8.5.0"
+      sources."acorn-8.6.0"
       (sources."acorn-globals-6.0.0" // {
         dependencies = [
           sources."acorn-7.4.1"
@@ -71571,7 +72020,7 @@ in
         ];
       })
       sources."data-urls-2.0.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decimal.js-10.3.1"
       sources."deep-is-0.1.4"
       sources."define-lazy-prop-2.0.0"
@@ -71641,7 +72090,7 @@ in
       sources."rxjs-6.6.7"
       sources."safer-buffer-2.1.2"
       sources."saxes-5.0.1"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."source-map-0.6.1"
       sources."steno-0.4.4"
       sources."string-width-4.2.3"
@@ -71668,7 +72117,7 @@ in
       sources."whatwg-mimetype-2.3.0"
       sources."whatwg-url-8.7.0"
       sources."word-wrap-1.2.3"
-      sources."ws-7.5.5"
+      sources."ws-7.5.6"
       sources."xml-name-validator-3.0.0"
       sources."xmlchars-2.2.0"
       sources."zxcvbn-4.4.2"
@@ -71686,10 +72135,10 @@ in
   "@commitlint/cli" = nodeEnv.buildNodePackage {
     name = "_at_commitlint_slash_cli";
     packageName = "@commitlint/cli";
-    version = "14.1.0";
+    version = "15.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@commitlint/cli/-/cli-14.1.0.tgz";
-      sha512 = "Orq62jkl9qAGvjFqhehtAqjGY/duJ8hIRPPIHmGR2jIB96D4VTmazS3ZvqJz2Q9kKr61mLAk/171zm0FVzQCYA==";
+      url = "https://registry.npmjs.org/@commitlint/cli/-/cli-15.0.0.tgz";
+      sha512 = "Y5xmDCweytqzo4N4lOI2YRiuX35xTjcs8n5hUceBH8eyK0YbwtgWX50BJOH2XbkwEmII9blNhlBog6AdQsqicg==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.0"
@@ -71704,19 +72153,19 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@commitlint/ensure-14.1.0"
-      sources."@commitlint/execute-rule-14.0.0"
-      sources."@commitlint/format-14.1.0"
-      sources."@commitlint/is-ignored-14.0.0"
-      sources."@commitlint/lint-14.1.0"
-      sources."@commitlint/load-14.1.0"
-      sources."@commitlint/message-14.0.0"
-      sources."@commitlint/parse-14.0.0"
-      sources."@commitlint/read-14.0.0"
-      sources."@commitlint/resolve-extends-14.1.0"
-      sources."@commitlint/rules-14.1.0"
-      sources."@commitlint/to-lines-14.0.0"
-      (sources."@commitlint/top-level-14.0.0" // {
+      sources."@commitlint/ensure-15.0.0"
+      sources."@commitlint/execute-rule-15.0.0"
+      sources."@commitlint/format-15.0.0"
+      sources."@commitlint/is-ignored-15.0.0"
+      sources."@commitlint/lint-15.0.0"
+      sources."@commitlint/load-15.0.0"
+      sources."@commitlint/message-15.0.0"
+      sources."@commitlint/parse-15.0.0"
+      sources."@commitlint/read-15.0.0"
+      sources."@commitlint/resolve-extends-15.0.0"
+      sources."@commitlint/rules-15.0.0"
+      sources."@commitlint/to-lines-15.0.0"
+      (sources."@commitlint/top-level-15.0.0" // {
         dependencies = [
           sources."find-up-5.0.0"
           sources."locate-path-6.0.0"
@@ -71724,7 +72173,7 @@ in
           sources."p-locate-5.0.0"
         ];
       })
-      sources."@commitlint/types-14.0.0"
+      sources."@commitlint/types-15.0.0"
       sources."@endemolshinegroup/cosmiconfig-typescript-loader-3.0.2"
       sources."@types/minimist-1.2.2"
       sources."@types/normalize-package-data-2.4.1"
@@ -71797,7 +72246,7 @@ in
       sources."jsonfile-6.1.0"
       sources."jsonparse-1.3.1"
       sources."kind-of-6.0.3"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
       sources."lodash.get-4.4.2"
@@ -71846,9 +72295,9 @@ in
       sources."semver-7.3.5"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."source-map-0.6.1"
-      sources."source-map-support-0.5.20"
+      sources."source-map-support-0.5.21"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
@@ -71867,7 +72316,7 @@ in
       sources."ts-node-9.1.1"
       sources."tslib-2.3.1"
       sources."type-fest-0.18.1"
-      sources."typescript-4.4.4"
+      sources."typescript-4.5.4"
       sources."universalify-2.0.0"
       sources."util-deprecate-1.0.2"
       sources."validate-npm-package-license-3.0.4"
@@ -71876,7 +72325,11 @@ in
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
       sources."yaml-1.10.2"
-      sources."yargs-17.2.1"
+      (sources."yargs-17.3.0" // {
+        dependencies = [
+          sources."yargs-parser-21.0.0"
+        ];
+      })
       sources."yargs-parser-20.2.9"
       sources."yn-3.1.1"
       sources."yocto-queue-0.1.0"
@@ -71894,10 +72347,10 @@ in
   "@commitlint/config-conventional" = nodeEnv.buildNodePackage {
     name = "_at_commitlint_slash_config-conventional";
     packageName = "@commitlint/config-conventional";
-    version = "14.1.0";
+    version = "15.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-14.1.0.tgz";
-      sha512 = "JuhCqkEv8jyqmd54EpXPsQFpYc/8k7sfP1UziRdEvZSJUCLxz+8Pk4cNS0oF1BtjaWO7ITgXPlIZg47PyApGmg==";
+      url = "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-15.0.0.tgz";
+      sha512 = "eZBRL8Lk3hMNHp1wUMYj0qrZQEsST1ai7KHR8J1IDD9aHgT7L2giciibuQ+Og7vxVhR5WtYDvh9xirXFVPaSkQ==";
     };
     dependencies = [
       sources."array-ify-1.0.0"
@@ -71936,7 +72389,7 @@ in
       sources."@hyperswarm/hypersign-2.1.1"
       sources."@hyperswarm/network-2.1.0"
       sources."@leichtgewicht/ip-codec-2.0.3"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."abstract-extension-3.1.1"
       sources."abstract-leveldown-6.2.3"
       sources."ansi-colors-3.2.3"
@@ -71953,7 +72406,7 @@ in
       sources."array-lru-1.1.1"
       sources."atomic-batcher-1.0.2"
       sources."await-lock-2.1.0"
-      sources."b4a-1.1.2"
+      sources."b4a-1.3.1"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."binary-extensions-2.2.0"
@@ -71962,9 +72415,9 @@ in
           sources."varint-4.0.1"
         ];
       })
-      sources."blake2b-2.1.3"
+      sources."blake2b-2.1.4"
       sources."blake2b-universal-1.0.1"
-      sources."blake2b-wasm-1.1.7"
+      sources."blake2b-wasm-2.4.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."browser-stdout-1.3.1"
@@ -71988,11 +72441,7 @@ in
       sources."call-bind-1.0.2"
       sources."call-me-maybe-1.0.1"
       sources."camelcase-5.3.1"
-      (sources."chacha20-universal-1.0.4" // {
-        dependencies = [
-          sources."nanoassert-2.0.0"
-        ];
-      })
+      sources."chacha20-universal-1.0.4"
       sources."chalk-1.1.3"
       sources."chokidar-3.5.2"
       sources."cliclopts-1.1.1"
@@ -72083,11 +72532,15 @@ in
       sources."has-tostringtag-1.0.0"
       sources."hashlru-2.3.0"
       sources."he-1.2.0"
-      sources."hmac-blake2b-2.0.0"
+      (sources."hmac-blake2b-2.0.0" // {
+        dependencies = [
+          sources."nanoassert-1.1.0"
+        ];
+      })
       sources."hrpc-2.2.0"
       sources."hrpc-runtime-2.1.1"
       sources."hyperbeam-1.1.3"
-      sources."hyperbee-1.6.3"
+      sources."hyperbee-1.7.0"
       sources."hypercore-9.12.0"
       (sources."hypercore-byte-stream-1.0.12" // {
         dependencies = [
@@ -72104,7 +72557,7 @@ in
       sources."hypercore-promisifier-1.1.0"
       (sources."hypercore-protocol-8.0.7" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -72137,17 +72590,17 @@ in
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.3"
-      sources."is-negative-zero-2.0.1"
+      sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
       sources."is-number-object-1.0.6"
-      sources."is-options-1.0.1"
+      sources."is-options-1.0.2"
       sources."is-property-1.0.2"
       sources."is-regex-1.1.4"
       sources."is-shared-array-buffer-1.0.1"
       sources."is-stream-1.1.0"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
-      sources."is-weakref-1.0.1"
+      sources."is-weakref-1.0.2"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."js-yaml-3.13.1"
@@ -72206,8 +72659,8 @@ in
       sources."mountable-hypertrie-2.8.0"
       sources."ms-2.0.0"
       sources."multicast-dns-7.2.4"
-      sources."mutexify-1.3.1"
-      sources."nanoassert-1.1.0"
+      sources."mutexify-1.4.0"
+      sources."nanoassert-2.0.0"
       sources."nanoguard-1.3.0"
       sources."nanoiterator-1.2.1"
       sources."nanoresource-1.3.0"
@@ -72220,15 +72673,11 @@ in
           sources."readable-stream-3.6.0"
         ];
       })
-      (sources."noise-protocol-3.0.1" // {
-        dependencies = [
-          sources."nanoassert-2.0.0"
-        ];
-      })
+      sources."noise-protocol-3.0.1"
       sources."normalize-path-3.0.0"
       sources."npm-run-path-1.0.0"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.0"
       sources."object.getownpropertydescriptors-2.1.3"
@@ -72261,7 +72710,7 @@ in
       })
       sources."queue-tick-1.0.0"
       sources."random-access-file-2.2.0"
-      sources."random-access-memory-3.1.3"
+      sources."random-access-memory-3.1.4"
       sources."random-access-storage-1.4.2"
       sources."random-words-1.1.1"
       sources."randombytes-2.1.0"
@@ -72276,59 +72725,31 @@ in
       sources."require-main-filename-2.0.0"
       sources."resolve-1.20.0"
       sources."safe-buffer-5.1.2"
-      (sources."secretstream-stream-2.0.0" // {
-        dependencies = [
-          sources."nanoassert-2.0.0"
-        ];
-      })
+      sources."secretstream-stream-2.0.0"
       sources."semver-5.7.1"
       sources."set-blocking-2.0.0"
       sources."sha256-universal-1.2.1"
-      (sources."sha256-wasm-2.2.2" // {
-        dependencies = [
-          sources."nanoassert-2.0.0"
-        ];
-      })
+      sources."sha256-wasm-2.2.2"
       sources."sha512-universal-1.2.1"
-      (sources."sha512-wasm-2.3.2" // {
-        dependencies = [
-          sources."nanoassert-2.0.0"
-        ];
-      })
+      sources."sha512-wasm-2.3.3"
       sources."shuffled-priority-queue-2.1.0"
       sources."side-channel-1.0.4"
       sources."signed-varint-2.0.1"
-      (sources."simple-handshake-3.0.0" // {
-        dependencies = [
-          sources."nanoassert-2.0.0"
-        ];
-      })
+      sources."simple-handshake-3.0.0"
       sources."simple-hypercore-protocol-2.1.2"
       sources."simple-message-channels-1.2.1"
-      (sources."siphash24-1.2.0" // {
-        dependencies = [
-          sources."nanoassert-2.0.0"
-        ];
-      })
+      sources."siphash24-1.3.0"
       sources."siphash24-universal-1.0.0"
-      (sources."sodium-javascript-0.7.4" // {
-        dependencies = [
-          sources."nanoassert-2.0.0"
-        ];
-      })
+      sources."sodium-javascript-0.7.4"
       sources."sodium-native-3.3.0"
-      (sources."sodium-universal-3.0.4" // {
-        dependencies = [
-          sources."nanoassert-2.0.0"
-        ];
-      })
+      sources."sodium-universal-3.0.4"
       sources."sparse-bitfield-3.0.3"
       sources."speedometer-1.1.0"
       sources."sprintf-js-1.0.3"
       sources."stream-collector-1.0.1"
       sources."stream-equal-1.1.1"
       sources."stream-shift-1.0.1"
-      sources."streamx-2.11.3"
+      sources."streamx-2.12.0"
       (sources."string-width-2.1.1" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
@@ -72343,7 +72764,7 @@ in
       sources."strip-json-comments-2.0.1"
       (sources."subcommand-2.1.1" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -72404,7 +72825,7 @@ in
       })
       sources."wrappy-1.0.2"
       sources."xor-distance-2.0.0"
-      sources."xsalsa20-1.1.0"
+      sources."xsalsa20-1.2.0"
       sources."xsalsa20-universal-1.0.0"
       sources."xtend-4.0.2"
       sources."y18n-4.0.3"
@@ -72439,7 +72860,7 @@ in
       sha512 = "7EpRhhrJqICbMGjLkdthQYLLGMXNCsrsq8/xxYX1cdRiNwoGb84yjL1WFBrnQtaM8rXShOvhf4lrM2W0K9m4lQ==";
     };
     dependencies = [
-      sources."@babel/parser-7.16.3"
+      sources."@babel/parser-7.16.6"
       sources."@medable/mdctl-api-1.0.62"
       sources."@medable/mdctl-core-1.0.62"
       sources."@medable/mdctl-core-schemas-1.0.62"
@@ -72469,7 +72890,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@types/glob-7.2.0"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/tough-cookie-2.3.8"
       sources."abbrev-1.1.1"
       sources."abort-controller-3.0.0"
@@ -72570,7 +72991,7 @@ in
         ];
       })
       sources."cli-cursor-2.1.0"
-      sources."cli-table-0.3.6"
+      sources."cli-table-0.3.11"
       sources."cli-width-2.2.1"
       (sources."cliui-4.1.0" // {
         dependencies = [
@@ -72599,7 +73020,7 @@ in
       sources."create-hmac-1.1.7"
       sources."cross-spawn-6.0.5"
       sources."dashdash-1.14.1"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
       sources."decompress-response-3.3.0"
@@ -72690,7 +73111,7 @@ in
       })
       sources."fill-range-7.0.1"
       sources."find-up-3.0.0"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."for-in-1.0.2"
       sources."foreach-2.0.5"
       sources."forever-agent-0.6.1"
@@ -72831,7 +73252,7 @@ in
           sources."strip-json-comments-3.1.1"
         ];
       })
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       (sources."jsonpath-1.1.1" // {
@@ -72841,7 +73262,7 @@ in
         ];
       })
       sources."jsonwebtoken-8.5.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       (sources."jstransform-11.0.3" // {
         dependencies = [
           sources."object-assign-2.1.1"
@@ -73147,11 +73568,11 @@ in
           sources."glob-7.2.0"
         ];
       })
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
       sources."slash-3.0.0"
-      sources."slugify-1.6.2"
+      sources."slugify-1.6.4"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -73268,8 +73689,8 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
       sources."uc.micro-1.0.6"
-      sources."uglify-js-3.14.3"
-      sources."underscore-1.13.1"
+      sources."uglify-js-3.14.5"
+      sources."underscore-1.13.2"
       sources."union-value-1.0.1"
       (sources."universal-url-2.0.0" // {
         dependencies = [
@@ -73345,10 +73766,10 @@ in
   "@nerdwallet/shepherd" = nodeEnv.buildNodePackage {
     name = "_at_nerdwallet_slash_shepherd";
     packageName = "@nerdwallet/shepherd";
-    version = "1.15.5";
+    version = "1.16.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@nerdwallet/shepherd/-/shepherd-1.15.5.tgz";
-      sha512 = "1/Y4YtYQYBZLJJThAZbN4fz+9QfFcS3AvYAYTDYHL5ifMX358ZpQrqtdSSe1c3uGTPs6lQrT+gho/+Pk9dgNEQ==";
+      url = "https://registry.npmjs.org/@nerdwallet/shepherd/-/shepherd-1.16.0.tgz";
+      sha512 = "wNbAzVF3G4zjGkxATccYtiSgiWXseDRacra71ozH5JOUX4L3RRbd1iaqKRwILLKzcyxsvsOWbV47CSBRR6bK5g==";
     };
     dependencies = [
       sources."@hapi/hoek-9.2.1"
@@ -73364,11 +73785,12 @@ in
       sources."@octokit/plugin-request-log-1.0.4"
       sources."@octokit/plugin-rest-endpoint-methods-5.13.0"
       sources."@octokit/plugin-retry-3.0.9"
+      sources."@octokit/plugin-throttling-3.5.2"
       sources."@octokit/request-5.6.2"
       sources."@octokit/request-error-2.1.0"
       sources."@octokit/rest-18.12.0"
       sources."@octokit/types-6.34.0"
-      sources."@sideway/address-4.1.2"
+      sources."@sideway/address-4.1.3"
       sources."@sideway/formula-3.0.0"
       sources."@sideway/pinpoint-2.0.0"
       sources."@types/js-yaml-3.12.7"
@@ -73390,7 +73812,7 @@ in
       sources."color-name-1.1.4"
       sources."commander-6.2.1"
       sources."cross-spawn-4.0.2"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."defaults-1.0.3"
       sources."deprecation-2.3.1"
       sources."esprima-4.0.1"
@@ -73403,7 +73825,7 @@ in
       sources."is-plain-object-5.0.0"
       sources."is-unicode-supported-0.1.0"
       sources."isexe-2.0.0"
-      sources."joi-17.4.2"
+      sources."joi-17.5.0"
       sources."js-yaml-3.14.1"
       sources."jsonfile-6.1.0"
       sources."lodash-4.17.21"
@@ -73423,8 +73845,8 @@ in
       sources."readable-stream-3.6.0"
       sources."restore-cursor-3.1.0"
       sources."safe-buffer-5.2.1"
-      sources."signal-exit-3.0.5"
-      sources."simple-git-2.47.0"
+      sources."signal-exit-3.0.6"
+      sources."simple-git-2.48.0"
       sources."sprintf-js-1.0.3"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.1"
@@ -73454,18 +73876,18 @@ in
   "@nestjs/cli" = nodeEnv.buildNodePackage {
     name = "_at_nestjs_slash_cli";
     packageName = "@nestjs/cli";
-    version = "8.1.4";
+    version = "8.1.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@nestjs/cli/-/cli-8.1.4.tgz";
-      sha512 = "QXZ0fkybNEPUeP3wcWuFore8XVicrT76IYToHkc4PJ+kQ7/thQzpy5mqWGTalv83aNM5LKAjl5OTSBBrPiWrlg==";
+      url = "https://registry.npmjs.org/@nestjs/cli/-/cli-8.1.6.tgz";
+      sha512 = "SFz/DNjsxNamBEi00ml6+Qx7DmnljI+lYqNzk/+1WZWCfONmvGxQrUaXcUHulkwMXZF/wpD93rgbbnT1CXirqQ==";
     };
     dependencies = [
-      sources."@angular-devkit/core-12.2.10"
-      sources."@angular-devkit/schematics-12.2.10"
-      (sources."@angular-devkit/schematics-cli-12.2.10" // {
+      sources."@angular-devkit/core-13.1.1"
+      sources."@angular-devkit/schematics-13.1.1"
+      (sources."@angular-devkit/schematics-cli-13.1.1" // {
         dependencies = [
           sources."chalk-4.1.2"
-          sources."inquirer-8.1.2"
+          sources."inquirer-8.2.0"
           sources."rxjs-7.4.0"
           sources."tslib-2.1.0"
         ];
@@ -73482,13 +73904,19 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@nestjs/schematics-8.0.4"
-      sources."@types/eslint-7.29.0"
-      sources."@types/eslint-scope-3.7.1"
+      (sources."@nestjs/schematics-8.0.5" // {
+        dependencies = [
+          sources."@angular-devkit/core-13.0.2"
+          sources."@angular-devkit/schematics-13.0.2"
+          sources."ajv-8.6.3"
+        ];
+      })
+      sources."@types/eslint-8.2.1"
+      sources."@types/eslint-scope-3.7.2"
       sources."@types/estree-0.0.50"
       sources."@types/json-schema-7.0.9"
       sources."@types/json5-0.0.29"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/parse-json-4.0.0"
       sources."@webassemblyjs/ast-1.11.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.1"
@@ -73507,10 +73935,10 @@ in
       sources."@webassemblyjs/wast-printer-1.11.1"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
-      sources."acorn-8.5.0"
+      sources."acorn-8.6.0"
       sources."acorn-import-assertions-1.8.0"
-      sources."ajv-8.6.2"
-      sources."ajv-formats-2.1.0"
+      sources."ajv-8.8.2"
+      sources."ajv-formats-2.1.1"
       sources."ajv-keywords-3.5.2"
       sources."ansi-colors-4.1.1"
       sources."ansi-escapes-4.3.2"
@@ -73524,11 +73952,11 @@ in
       sources."bl-4.1.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."buffer-5.7.1"
       sources."buffer-from-1.1.2"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001280"
+      sources."caniuse-lite-1.0.30001287"
       sources."chalk-3.0.0"
       sources."chardet-0.7.0"
       sources."chokidar-3.5.2"
@@ -73547,7 +73975,7 @@ in
       sources."cross-spawn-7.0.3"
       sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
-      sources."electron-to-chromium-1.3.899"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       (sources."enhanced-resolve-5.8.3" // {
@@ -73573,7 +74001,7 @@ in
       sources."fast-json-stable-stringify-2.1.0"
       sources."figures-3.2.0"
       sources."fill-range-7.0.1"
-      (sources."fork-ts-checker-webpack-plugin-6.3.4" // {
+      (sources."fork-ts-checker-webpack-plugin-6.5.0" // {
         dependencies = [
           sources."chalk-4.1.2"
           sources."fs-extra-9.1.0"
@@ -73614,7 +74042,7 @@ in
       sources."is-stream-2.0.1"
       sources."is-unicode-supported-0.1.0"
       sources."isexe-2.0.0"
-      (sources."jest-worker-27.3.1" // {
+      (sources."jest-worker-27.4.5" // {
         dependencies = [
           sources."supports-color-8.1.1"
         ];
@@ -73626,7 +74054,7 @@ in
       sources."json5-1.0.1"
       sources."jsonc-parser-3.0.0"
       sources."jsonfile-6.1.0"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."loader-runner-4.2.0"
       sources."lodash-4.17.21"
       (sources."log-symbols-4.1.0" // {
@@ -73637,7 +74065,7 @@ in
       sources."lru-cache-6.0.0"
       sources."macos-release-2.5.0"
       sources."magic-string-0.25.7"
-      sources."memfs-3.3.0"
+      sources."memfs-3.4.0"
       sources."merge-stream-2.0.0"
       sources."mime-db-1.51.0"
       sources."mime-types-2.1.34"
@@ -73695,9 +74123,9 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."shelljs-0.8.4"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."source-map-0.7.3"
-      (sources."source-map-support-0.5.20" // {
+      (sources."source-map-support-0.5.21" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -73716,7 +74144,7 @@ in
           sources."commander-2.20.3"
         ];
       })
-      (sources."terser-webpack-plugin-5.2.5" // {
+      (sources."terser-webpack-plugin-5.3.0" // {
         dependencies = [
           sources."ajv-6.12.6"
           sources."json-schema-traverse-0.4.1"
@@ -73728,8 +74156,8 @@ in
       sources."tmp-0.0.33"
       sources."to-regex-range-5.0.1"
       sources."tree-kill-1.2.2"
-      sources."tsconfig-paths-3.11.0"
-      (sources."tsconfig-paths-webpack-plugin-3.5.1" // {
+      sources."tsconfig-paths-3.12.0"
+      (sources."tsconfig-paths-webpack-plugin-3.5.2" // {
         dependencies = [
           sources."chalk-4.1.2"
         ];
@@ -73740,9 +74168,9 @@ in
       sources."universalify-2.0.0"
       sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
-      sources."watchpack-2.2.0"
+      sources."watchpack-2.3.1"
       sources."wcwidth-1.0.1"
-      (sources."webpack-5.58.2" // {
+      (sources."webpack-5.65.0" // {
         dependencies = [
           sources."ajv-6.12.6"
           sources."json-schema-traverse-0.4.1"
@@ -73806,7 +74234,7 @@ in
       sources."readable-stream-3.6.0"
       sources."restore-cursor-3.1.0"
       sources."safe-buffer-5.2.1"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.1"
       sources."supports-color-7.2.0"
@@ -73828,10 +74256,10 @@ in
   "@tailwindcss/language-server" = nodeEnv.buildNodePackage {
     name = "_at_tailwindcss_slash_language-server";
     packageName = "@tailwindcss/language-server";
-    version = "0.0.4";
+    version = "0.0.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@tailwindcss/language-server/-/language-server-0.0.4.tgz";
-      sha512 = "7d0wkTY7abvLr/PQvSqBOni91LsTt2ahbUHf5sW55SxcQtJc1y9TnwjrB2uR4lzbFhyexplZSFol8AN99TmDLw==";
+      url = "https://registry.npmjs.org/@tailwindcss/language-server/-/language-server-0.0.5.tgz";
+      sha512 = "BOmC7U+FsN2Tuvet6LNSMn/0Up1Vz9f5TaXB3VttlpSdjfJJxiZJisJK7xgag/jlTHQ4dWr3VqASMkYSoJUcOw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -73861,58 +74289,59 @@ in
       sources."@apollographql/graphql-playground-html-1.6.27"
       sources."@apollographql/graphql-upload-8-fork-8.1.3"
       sources."@babel/code-frame-7.16.0"
-      sources."@babel/compat-data-7.16.0"
-      sources."@babel/core-7.16.0"
-      sources."@babel/generator-7.16.0"
+      sources."@babel/compat-data-7.16.4"
+      sources."@babel/core-7.16.5"
+      sources."@babel/generator-7.16.5"
       sources."@babel/helper-annotate-as-pure-7.16.0"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.0"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.5"
       sources."@babel/helper-compilation-targets-7.16.3"
-      sources."@babel/helper-create-class-features-plugin-7.16.0"
+      sources."@babel/helper-create-class-features-plugin-7.16.5"
       sources."@babel/helper-create-regexp-features-plugin-7.16.0"
-      sources."@babel/helper-define-polyfill-provider-0.2.4"
+      sources."@babel/helper-define-polyfill-provider-0.3.0"
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-explode-assignable-expression-7.16.0"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
+      sources."@babel/helper-member-expression-to-functions-7.16.5"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
       sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-remap-async-to-generator-7.16.0"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-plugin-utils-7.16.5"
+      sources."@babel/helper-remap-async-to-generator-7.16.5"
+      sources."@babel/helper-replace-supers-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helper-wrap-function-7.16.0"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helper-wrap-function-7.16.5"
+      sources."@babel/helpers-7.16.5"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.3"
+      sources."@babel/parser-7.16.6"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0"
-      sources."@babel/plugin-proposal-async-generator-functions-7.16.0"
-      sources."@babel/plugin-proposal-class-properties-7.16.0"
-      sources."@babel/plugin-proposal-class-static-block-7.16.0"
-      sources."@babel/plugin-proposal-dynamic-import-7.16.0"
-      sources."@babel/plugin-proposal-export-namespace-from-7.16.0"
-      sources."@babel/plugin-proposal-json-strings-7.16.0"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.0"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.0"
-      sources."@babel/plugin-proposal-numeric-separator-7.16.0"
-      sources."@babel/plugin-proposal-object-rest-spread-7.16.0"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.16.0"
-      sources."@babel/plugin-proposal-optional-chaining-7.16.0"
-      sources."@babel/plugin-proposal-private-methods-7.16.0"
-      sources."@babel/plugin-proposal-private-property-in-object-7.16.0"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.16.0"
+      sources."@babel/plugin-proposal-async-generator-functions-7.16.5"
+      sources."@babel/plugin-proposal-class-properties-7.16.5"
+      sources."@babel/plugin-proposal-class-static-block-7.16.5"
+      sources."@babel/plugin-proposal-dynamic-import-7.16.5"
+      sources."@babel/plugin-proposal-export-namespace-from-7.16.5"
+      sources."@babel/plugin-proposal-json-strings-7.16.5"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.5"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.5"
+      sources."@babel/plugin-proposal-numeric-separator-7.16.5"
+      sources."@babel/plugin-proposal-object-rest-spread-7.16.5"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.16.5"
+      sources."@babel/plugin-proposal-optional-chaining-7.16.5"
+      sources."@babel/plugin-proposal-private-methods-7.16.5"
+      sources."@babel/plugin-proposal-private-property-in-object-7.16.5"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.16.5"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
       sources."@babel/plugin-syntax-class-static-block-7.14.5"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
       sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
-      sources."@babel/plugin-syntax-flow-7.16.0"
+      sources."@babel/plugin-syntax-flow-7.16.5"
       sources."@babel/plugin-syntax-json-strings-7.8.3"
       sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
       sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
@@ -73922,55 +74351,55 @@ in
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-private-property-in-object-7.14.5"
       sources."@babel/plugin-syntax-top-level-await-7.14.5"
-      sources."@babel/plugin-syntax-typescript-7.16.0"
-      sources."@babel/plugin-transform-arrow-functions-7.16.0"
-      sources."@babel/plugin-transform-async-to-generator-7.16.0"
-      sources."@babel/plugin-transform-block-scoped-functions-7.16.0"
-      sources."@babel/plugin-transform-block-scoping-7.16.0"
-      sources."@babel/plugin-transform-classes-7.16.0"
-      sources."@babel/plugin-transform-computed-properties-7.16.0"
-      sources."@babel/plugin-transform-destructuring-7.16.0"
-      sources."@babel/plugin-transform-dotall-regex-7.16.0"
-      sources."@babel/plugin-transform-duplicate-keys-7.16.0"
-      sources."@babel/plugin-transform-exponentiation-operator-7.16.0"
-      sources."@babel/plugin-transform-flow-strip-types-7.16.0"
-      sources."@babel/plugin-transform-for-of-7.16.0"
-      sources."@babel/plugin-transform-function-name-7.16.0"
-      sources."@babel/plugin-transform-literals-7.16.0"
-      sources."@babel/plugin-transform-member-expression-literals-7.16.0"
-      sources."@babel/plugin-transform-modules-amd-7.16.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.16.0"
-      sources."@babel/plugin-transform-modules-systemjs-7.16.0"
-      sources."@babel/plugin-transform-modules-umd-7.16.0"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.0"
-      sources."@babel/plugin-transform-new-target-7.16.0"
-      sources."@babel/plugin-transform-object-super-7.16.0"
-      sources."@babel/plugin-transform-parameters-7.16.3"
-      sources."@babel/plugin-transform-property-literals-7.16.0"
-      sources."@babel/plugin-transform-regenerator-7.16.0"
-      sources."@babel/plugin-transform-reserved-words-7.16.0"
-      sources."@babel/plugin-transform-shorthand-properties-7.16.0"
-      sources."@babel/plugin-transform-spread-7.16.0"
-      sources."@babel/plugin-transform-sticky-regex-7.16.0"
-      sources."@babel/plugin-transform-template-literals-7.16.0"
-      sources."@babel/plugin-transform-typeof-symbol-7.16.0"
+      sources."@babel/plugin-syntax-typescript-7.16.5"
+      sources."@babel/plugin-transform-arrow-functions-7.16.5"
+      sources."@babel/plugin-transform-async-to-generator-7.16.5"
+      sources."@babel/plugin-transform-block-scoped-functions-7.16.5"
+      sources."@babel/plugin-transform-block-scoping-7.16.5"
+      sources."@babel/plugin-transform-classes-7.16.5"
+      sources."@babel/plugin-transform-computed-properties-7.16.5"
+      sources."@babel/plugin-transform-destructuring-7.16.5"
+      sources."@babel/plugin-transform-dotall-regex-7.16.5"
+      sources."@babel/plugin-transform-duplicate-keys-7.16.5"
+      sources."@babel/plugin-transform-exponentiation-operator-7.16.5"
+      sources."@babel/plugin-transform-flow-strip-types-7.16.5"
+      sources."@babel/plugin-transform-for-of-7.16.5"
+      sources."@babel/plugin-transform-function-name-7.16.5"
+      sources."@babel/plugin-transform-literals-7.16.5"
+      sources."@babel/plugin-transform-member-expression-literals-7.16.5"
+      sources."@babel/plugin-transform-modules-amd-7.16.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.16.5"
+      sources."@babel/plugin-transform-modules-systemjs-7.16.5"
+      sources."@babel/plugin-transform-modules-umd-7.16.5"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.5"
+      sources."@babel/plugin-transform-new-target-7.16.5"
+      sources."@babel/plugin-transform-object-super-7.16.5"
+      sources."@babel/plugin-transform-parameters-7.16.5"
+      sources."@babel/plugin-transform-property-literals-7.16.5"
+      sources."@babel/plugin-transform-regenerator-7.16.5"
+      sources."@babel/plugin-transform-reserved-words-7.16.5"
+      sources."@babel/plugin-transform-shorthand-properties-7.16.5"
+      sources."@babel/plugin-transform-spread-7.16.5"
+      sources."@babel/plugin-transform-sticky-regex-7.16.5"
+      sources."@babel/plugin-transform-template-literals-7.16.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.16.5"
       sources."@babel/plugin-transform-typescript-7.16.1"
-      sources."@babel/plugin-transform-unicode-escapes-7.16.0"
-      sources."@babel/plugin-transform-unicode-regex-7.16.0"
-      sources."@babel/preset-env-7.16.0"
-      sources."@babel/preset-flow-7.16.0"
+      sources."@babel/plugin-transform-unicode-escapes-7.16.5"
+      sources."@babel/plugin-transform-unicode-regex-7.16.5"
+      sources."@babel/preset-env-7.16.5"
+      sources."@babel/preset-flow-7.16.5"
       sources."@babel/preset-modules-0.1.5"
-      sources."@babel/preset-typescript-7.16.0"
-      (sources."@babel/register-7.16.0" // {
+      sources."@babel/preset-typescript-7.16.5"
+      (sources."@babel/register-7.16.5" // {
         dependencies = [
           sources."make-dir-2.1.0"
           sources."pify-4.0.1"
           sources."semver-5.7.1"
         ];
       })
-      sources."@babel/runtime-7.16.3"
+      sources."@babel/runtime-7.16.5"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@hapi/address-2.1.4"
       sources."@hapi/bourne-1.3.2"
@@ -74005,7 +74434,7 @@ in
       sources."@types/cors-2.8.10"
       sources."@types/ejs-2.7.0"
       sources."@types/express-4.17.13"
-      sources."@types/express-serve-static-core-4.17.25"
+      sources."@types/express-serve-static-core-4.17.26"
       sources."@types/fs-capacitor-2.0.0"
       sources."@types/glob-7.2.0"
       sources."@types/http-assert-1.5.3"
@@ -74024,7 +74453,7 @@ in
       sources."@types/long-4.0.1"
       sources."@types/mime-1.3.2"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/qs-6.9.7"
       sources."@types/range-parser-1.2.4"
@@ -74039,13 +74468,13 @@ in
       })
       sources."@vue/cli-ui-addon-webpack-4.5.15"
       sources."@vue/cli-ui-addon-widgets-4.5.15"
-      (sources."@vue/compiler-core-3.2.22" // {
+      (sources."@vue/compiler-core-3.2.26" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      sources."@vue/compiler-dom-3.2.22"
-      sources."@vue/shared-3.2.22"
+      sources."@vue/compiler-dom-3.2.26"
+      sources."@vue/shared-3.2.26"
       sources."@wry/equality-0.1.11"
       sources."accepts-1.3.7"
       sources."aggregate-error-3.1.0"
@@ -74107,9 +74536,9 @@ in
       sources."aws4-1.11.0"
       sources."babel-core-7.0.0-bridge.0"
       sources."babel-plugin-dynamic-import-node-2.3.3"
-      sources."babel-plugin-polyfill-corejs2-0.2.3"
-      sources."babel-plugin-polyfill-corejs3-0.3.0"
-      sources."babel-plugin-polyfill-regenerator-0.2.3"
+      sources."babel-plugin-polyfill-corejs2-0.3.0"
+      sources."babel-plugin-polyfill-corejs3-0.4.0"
+      sources."babel-plugin-polyfill-regenerator-0.3.0"
       sources."backo2-1.0.2"
       sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
@@ -74120,14 +74549,10 @@ in
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bl-1.2.3"
-      (sources."body-parser-1.19.0" // {
+      (sources."body-parser-1.19.1" // {
         dependencies = [
           sources."debug-2.6.9"
-          sources."http-errors-1.7.2"
-          sources."inherits-2.0.3"
-          sources."qs-6.7.0"
-          sources."setprototypeof-1.1.1"
-          sources."toidentifier-1.0.0"
+          sources."qs-6.9.6"
         ];
       })
       (sources."boxen-4.2.0" // {
@@ -74143,7 +74568,7 @@ in
       })
       sources."brace-expansion-1.1.11"
       sources."braces-2.3.2"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -74152,7 +74577,7 @@ in
       sources."buffer-from-1.1.2"
       sources."builtins-1.0.3"
       sources."busboy-0.3.1"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.1"
       sources."cache-base-1.0.1"
       (sources."cacheable-request-2.1.4" // {
         dependencies = [
@@ -74163,7 +74588,7 @@ in
       sources."call-bind-1.0.2"
       sources."call-me-maybe-1.0.1"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001280"
+      sources."caniuse-lite-1.0.30001287"
       sources."caseless-0.12.0"
       sources."caw-2.0.1"
       sources."chalk-2.4.2"
@@ -74219,12 +74644,12 @@ in
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
-      (sources."core-js-compat-3.19.1" // {
+      (sources."core-js-compat-3.20.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
       })
-      sources."core-js-pure-3.19.1"
+      sources."core-js-pure-3.20.0"
       sources."core-util-is-1.0.2"
       sources."cors-2.8.5"
       (sources."cross-spawn-6.0.5" // {
@@ -74235,7 +74660,7 @@ in
       sources."cssfilter-0.0.10"
       sources."csv-parser-1.12.1"
       sources."dashdash-1.14.1"
-      (sources."debug-4.3.2" // {
+      (sources."debug-4.3.3" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -74290,7 +74715,7 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.3.899"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
@@ -74331,10 +74756,16 @@ in
       sources."expand-tilde-2.0.2"
       (sources."express-4.17.1" // {
         dependencies = [
+          sources."body-parser-1.19.0"
+          sources."bytes-3.1.0"
           sources."debug-2.6.9"
+          sources."http-errors-1.7.2"
+          sources."inherits-2.0.3"
           sources."qs-6.7.0"
+          sources."raw-body-2.4.0"
           sources."safe-buffer-5.1.2"
           sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
       sources."express-history-api-fallback-2.2.1"
@@ -74373,7 +74804,7 @@ in
       })
       sources."find-up-3.0.0"
       sources."fkill-6.2.0"
-      sources."flow-parser-0.164.0"
+      sources."flow-parser-0.168.0"
       sources."for-each-0.3.3"
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
@@ -74497,7 +74928,7 @@ in
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-natural-number-4.0.1"
-      sources."is-negative-zero-2.0.1"
+      sources."is-negative-zero-2.0.2"
       (sources."is-number-3.0.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
@@ -74516,7 +74947,7 @@ in
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-typedarray-1.0.0"
-      sources."is-weakref-1.0.1"
+      sources."is-weakref-1.0.2"
       sources."is-windows-1.0.2"
       sources."is-wsl-1.1.0"
       sources."isarray-1.0.0"
@@ -74543,17 +74974,17 @@ in
       sources."jsesc-2.5.2"
       sources."json-buffer-3.0.0"
       sources."json-parse-even-better-errors-2.3.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."json5-2.2.0"
       sources."jsonfile-4.0.0"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."keyv-3.0.0"
       sources."kind-of-6.0.3"
       sources."launch-editor-2.2.1"
       sources."leven-3.1.0"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."locate-path-3.0.0"
       sources."lodash-4.17.21"
       sources."lodash.clonedeep-4.5.0"
@@ -74561,7 +74992,7 @@ in
       sources."lodash.merge-4.6.2"
       sources."lodash.sortby-4.7.0"
       sources."log-symbols-2.2.0"
-      sources."loglevel-1.7.1"
+      sources."loglevel-1.8.0"
       sources."long-4.0.0"
       sources."lowdb-1.0.0"
       sources."lowercase-keys-1.0.1"
@@ -74619,7 +75050,6 @@ in
       sources."node-dir-0.1.17"
       sources."node-fetch-2.6.6"
       sources."node-ipc-9.2.1"
-      sources."node-modules-regexp-1.0.0"
       (sources."node-notifier-9.0.1" // {
         dependencies = [
           sources."is-wsl-2.2.0"
@@ -74657,7 +75087,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."object-keys-1.1.1"
       sources."object-path-0.11.8"
       sources."object-visit-1.0.1"
@@ -74710,7 +75140,7 @@ in
       sources."pify-3.0.0"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
-      sources."pirates-4.0.1"
+      sources."pirates-4.0.4"
       sources."pkg-dir-3.0.0"
       (sources."portfinder-1.0.28" // {
         dependencies = [
@@ -74735,14 +75165,7 @@ in
       sources."query-string-5.1.1"
       sources."queue-microtask-1.2.3"
       sources."range-parser-1.2.1"
-      (sources."raw-body-2.4.0" // {
-        dependencies = [
-          sources."http-errors-1.7.2"
-          sources."inherits-2.0.3"
-          sources."setprototypeof-1.1.1"
-          sources."toidentifier-1.0.0"
-        ];
-      })
+      sources."raw-body-2.4.2"
       sources."read-pkg-5.2.0"
       (sources."readable-stream-2.3.7" // {
         dependencies = [
@@ -74818,7 +75241,7 @@ in
       sources."shellwords-0.1.1"
       sources."shortid-2.2.16"
       sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-3.0.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
@@ -74852,7 +75275,7 @@ in
       sources."sort-keys-length-1.0.1"
       sources."source-map-0.5.7"
       sources."source-map-resolve-0.5.3"
-      (sources."source-map-support-0.5.20" // {
+      (sources."source-map-support-0.5.21" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -75037,7 +75460,7 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-2.4.3"
-      sources."ws-7.5.5"
+      sources."ws-7.5.6"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
       sources."xss-1.0.10"
@@ -75190,10 +75613,10 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.16.0"
-      sources."@babel/generator-7.16.0"
+      sources."@babel/generator-7.16.5"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.3"
+      sources."@babel/parser-7.16.6"
       sources."@babel/template-7.16.0"
       sources."@babel/types-7.16.0"
       sources."@webassemblyjs/ast-1.11.1"
@@ -75281,17 +75704,17 @@ in
       sources."@types/estree-jsx-0.0.1"
       sources."@types/hast-2.3.4"
       sources."@types/is-empty-1.2.1"
-      sources."@types/js-yaml-4.0.4"
+      sources."@types/js-yaml-4.0.5"
       sources."@types/mdast-3.0.10"
       sources."@types/minimist-1.2.2"
       sources."@types/ms-0.7.31"
       sources."@types/nlcst-1.0.0"
-      sources."@types/node-16.11.7"
+      sources."@types/node-16.11.14"
       sources."@types/normalize-package-data-2.4.1"
-      sources."@types/parse5-6.0.2"
+      sources."@types/parse5-6.0.3"
       sources."@types/supports-color-8.1.1"
       sources."@types/unist-2.0.6"
-      sources."acorn-8.5.0"
+      sources."acorn-8.6.0"
       sources."acorn-jsx-5.3.2"
       sources."ansi-align-3.0.1"
       sources."ansi-regex-5.0.1"
@@ -75348,7 +75771,7 @@ in
       sources."core-util-is-1.0.3"
       sources."crypto-random-string-2.0.0"
       sources."cuss-2.0.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decamelize-5.0.1"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -75356,6 +75779,7 @@ in
           sources."map-obj-1.0.1"
         ];
       })
+      sources."decode-named-character-reference-1.0.1"
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
       sources."defer-to-connect-1.1.3"
@@ -75408,7 +75832,7 @@ in
           sources."hast-util-is-element-1.1.0"
         ];
       })
-      sources."hast-util-is-element-2.1.1"
+      sources."hast-util-is-element-2.1.2"
       sources."hast-util-parse-selector-3.1.0"
       sources."hast-util-phrasing-2.0.0"
       sources."hast-util-to-nlcst-2.2.0"
@@ -75461,7 +75885,7 @@ in
         ];
       })
       sources."limit-spawn-0.0.3"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."load-plugin-4.0.1"
       sources."locate-path-6.0.0"
       sources."longest-streak-3.0.1"
@@ -75474,14 +75898,14 @@ in
       })
       sources."map-obj-4.3.0"
       sources."map-stream-0.1.0"
-      sources."markdown-table-3.0.1"
+      sources."markdown-table-3.0.2"
       sources."mdast-comment-marker-2.1.0"
       (sources."mdast-util-find-and-replace-2.1.0" // {
         dependencies = [
           sources."escape-string-regexp-5.0.0"
         ];
       })
-      sources."mdast-util-from-markdown-1.1.0"
+      sources."mdast-util-from-markdown-1.2.0"
       sources."mdast-util-frontmatter-1.0.0"
       sources."mdast-util-gfm-2.0.0"
       sources."mdast-util-gfm-autolink-literal-1.0.2"
@@ -75491,30 +75915,30 @@ in
       sources."mdast-util-gfm-task-list-item-1.0.0"
       sources."mdast-util-mdx-1.1.0"
       sources."mdast-util-mdx-expression-1.1.1"
-      sources."mdast-util-mdx-jsx-1.1.2"
+      sources."mdast-util-mdx-jsx-1.2.0"
       sources."mdast-util-mdxjs-esm-1.1.1"
-      sources."mdast-util-to-markdown-1.2.4"
+      sources."mdast-util-to-markdown-1.2.6"
       sources."mdast-util-to-nlcst-5.2.1"
       sources."mdast-util-to-string-3.1.0"
-      sources."meow-10.1.1"
-      sources."micromark-3.0.7"
-      sources."micromark-core-commonmark-1.0.4"
+      sources."meow-10.1.2"
+      sources."micromark-3.0.10"
+      sources."micromark-core-commonmark-1.0.6"
       sources."micromark-extension-frontmatter-1.0.0"
       sources."micromark-extension-gfm-2.0.0"
-      sources."micromark-extension-gfm-autolink-literal-1.0.2"
-      sources."micromark-extension-gfm-footnote-1.0.2"
-      sources."micromark-extension-gfm-strikethrough-1.0.3"
-      sources."micromark-extension-gfm-table-1.0.3"
-      sources."micromark-extension-gfm-tagfilter-1.0.0"
-      sources."micromark-extension-gfm-task-list-item-1.0.2"
-      sources."micromark-extension-mdx-expression-1.0.2"
+      sources."micromark-extension-gfm-autolink-literal-1.0.3"
+      sources."micromark-extension-gfm-footnote-1.0.3"
+      sources."micromark-extension-gfm-strikethrough-1.0.4"
+      sources."micromark-extension-gfm-table-1.0.5"
+      sources."micromark-extension-gfm-tagfilter-1.0.1"
+      sources."micromark-extension-gfm-task-list-item-1.0.3"
+      sources."micromark-extension-mdx-expression-1.0.3"
       sources."micromark-extension-mdx-jsx-1.0.2"
       sources."micromark-extension-mdx-md-1.0.0"
       sources."micromark-extension-mdxjs-1.0.0"
       sources."micromark-extension-mdxjs-esm-1.0.2"
       sources."micromark-factory-destination-1.0.0"
       sources."micromark-factory-label-1.0.2"
-      sources."micromark-factory-mdx-expression-1.0.4"
+      sources."micromark-factory-mdx-expression-1.0.5"
       sources."micromark-factory-space-1.0.0"
       sources."micromark-factory-title-1.0.2"
       sources."micromark-factory-whitespace-1.0.0"
@@ -75523,7 +75947,7 @@ in
       sources."micromark-util-classify-character-1.0.0"
       sources."micromark-util-combine-extensions-1.0.0"
       sources."micromark-util-decode-numeric-character-reference-1.0.0"
-      sources."micromark-util-decode-string-1.0.1"
+      sources."micromark-util-decode-string-1.0.2"
       sources."micromark-util-encode-1.0.0"
       sources."micromark-util-events-to-acorn-1.0.4"
       sources."micromark-util-html-tag-name-1.0.0"
@@ -75531,8 +75955,8 @@ in
       sources."micromark-util-resolve-all-1.0.0"
       sources."micromark-util-sanitize-uri-1.0.0"
       sources."micromark-util-subtokenize-1.0.2"
-      sources."micromark-util-symbol-1.0.0"
-      sources."micromark-util-types-1.0.1"
+      sources."micromark-util-symbol-1.0.1"
+      sources."micromark-util-types-1.0.2"
       sources."mimic-response-1.0.1"
       sources."min-indent-1.0.1"
       sources."minimatch-3.0.4"
@@ -75562,7 +75986,7 @@ in
           sources."nlcst-to-string-2.0.4"
         ];
       })
-      sources."parse-entities-3.1.0"
+      sources."parse-entities-4.0.0"
       sources."parse-json-5.2.0"
       (sources."parse-latin-5.0.0" // {
         dependencies = [
@@ -75595,7 +76019,7 @@ in
       sources."remark-gfm-3.0.1"
       sources."remark-mdx-2.0.0-rc.1"
       sources."remark-message-control-7.1.1"
-      sources."remark-parse-10.0.0"
+      sources."remark-parse-10.0.1"
       sources."remark-retext-5.0.1"
       sources."responselike-1.0.2"
       sources."retext-english-4.1.0"
@@ -75609,7 +76033,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."sliced-1.0.1"
       sources."space-separated-tokens-2.0.1"
       (sources."spawn-to-readstream-0.1.3" // {
@@ -75653,7 +76077,7 @@ in
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
       sources."unherit-3.0.0"
-      (sources."unified-10.1.0" // {
+      (sources."unified-10.1.1" // {
         dependencies = [
           sources."is-plain-obj-4.0.0"
         ];
@@ -75702,15 +76126,14 @@ in
       sources."vfile-find-up-6.0.0"
       sources."vfile-location-4.0.1"
       sources."vfile-message-3.0.2"
-      (sources."vfile-reporter-7.0.2" // {
+      (sources."vfile-reporter-7.0.3" // {
         dependencies = [
           sources."ansi-regex-6.0.1"
           sources."emoji-regex-9.2.2"
-          sources."has-flag-5.0.1"
           sources."is-fullwidth-code-point-4.0.0"
           sources."string-width-5.0.1"
           sources."strip-ansi-7.0.1"
-          sources."supports-color-9.0.2"
+          sources."supports-color-9.2.1"
         ];
       })
       sources."vfile-sort-3.0.0"
@@ -75746,42 +76169,40 @@ in
   alloy = nodeEnv.buildNodePackage {
     name = "alloy";
     packageName = "alloy";
-    version = "1.17.0";
+    version = "1.17.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/alloy/-/alloy-1.17.0.tgz";
-      sha512 = "7EfMZRe18XKyd0HeZxCXurS03YE39LNuvt/7hhko7FG+zrsB8ZsLAPLx2XmwwCo+gKNED/Tq0GiNxATYlz8uug==";
+      url = "https://registry.npmjs.org/alloy/-/alloy-1.17.1.tgz";
+      sha512 = "fLYUFiga1hybXkV5p1hhRqWO2LhGPPqdxREr1GtXz3SpsdfYDBQCTcXd79RG3RciFurmmKqClpfM5AemiWQDuA==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.0"
-      sources."@babel/compat-data-7.16.0"
-      (sources."@babel/core-7.16.0" // {
+      sources."@babel/compat-data-7.16.4"
+      (sources."@babel/core-7.16.5" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.16.0" // {
+      (sources."@babel/generator-7.16.5" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
       sources."@babel/helper-compilation-targets-7.16.3"
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
-      sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helpers-7.16.5"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.3"
+      sources."@babel/parser-7.16.6"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."JSV-4.0.2"
       sources."ansi-styles-3.2.1"
@@ -75789,8 +76210,8 @@ in
       sources."async-3.2.2"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."browserslist-4.18.1"
-      sources."caniuse-lite-1.0.30001280"
+      sources."browserslist-4.19.1"
+      sources."caniuse-lite-1.0.30001287"
       sources."chalk-2.4.2"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -75798,9 +76219,9 @@ in
       sources."commander-8.3.0"
       sources."concat-map-0.0.1"
       sources."convert-source-map-1.8.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."ejs-3.1.6"
-      sources."electron-to-chromium-1.3.899"
+      sources."electron-to-chromium-1.4.21"
       sources."ensure-posix-path-1.1.1"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
@@ -75895,7 +76316,7 @@ in
     dependencies = [
       sources."@types/glob-7.2.0"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."chromium-pickle-js-0.2.0"
@@ -75920,6 +76341,56 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  audiosprite = nodeEnv.buildNodePackage {
+    name = "audiosprite";
+    packageName = "audiosprite";
+    version = "0.7.2";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/audiosprite/-/audiosprite-0.7.2.tgz";
+      sha512 = "9Z6UwUuv4To5nUQNRIw5/Q3qA7HYm0ANzoW5EDGPEsU2oIRVgmIlLlm9YZfpPKoeUxt54vMStl2/762189VmJw==";
+    };
+    dependencies = [
+      sources."async-0.9.2"
+      sources."balanced-match-1.0.2"
+      sources."brace-expansion-1.1.11"
+      sources."colors-1.0.3"
+      sources."concat-map-0.0.1"
+      sources."cycle-1.0.3"
+      sources."eyes-0.1.8"
+      sources."glob-6.0.4"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."isstream-0.1.2"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."mkdirp-0.5.5"
+      sources."once-1.4.0"
+      (sources."optimist-0.6.1" // {
+        dependencies = [
+          sources."minimist-0.0.10"
+        ];
+      })
+      sources."path-is-absolute-1.0.1"
+      sources."pkginfo-0.3.1"
+      sources."stack-trace-0.0.10"
+      sources."underscore-1.8.3"
+      (sources."winston-1.0.2" // {
+        dependencies = [
+          sources."async-1.0.0"
+        ];
+      })
+      sources."wordwrap-0.0.3"
+      sources."wrappy-1.0.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Concat small audio files into single file and export in many formats.";
+      homepage = "https://github.com/tonistiigi/audiosprite#readme";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   autoprefixer = nodeEnv.buildNodePackage {
     name = "autoprefixer";
     packageName = "autoprefixer";
@@ -75929,15 +76400,15 @@ in
       sha512 = "7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA==";
     };
     dependencies = [
-      sources."browserslist-4.18.1"
-      sources."caniuse-lite-1.0.30001280"
-      sources."electron-to-chromium-1.3.899"
+      sources."browserslist-4.19.1"
+      sources."caniuse-lite-1.0.30001287"
+      sources."electron-to-chromium-1.4.21"
       sources."escalade-3.1.1"
       sources."fraction.js-4.1.2"
       sources."node-releases-2.0.1"
       sources."normalize-range-0.1.2"
       sources."picocolors-1.0.0"
-      sources."postcss-value-parser-4.1.0"
+      sources."postcss-value-parser-4.2.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -75959,14 +76430,14 @@ in
     };
     dependencies = [
       sources."@tootallnate/once-1.1.2"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/yauzl-2.9.2"
       sources."agent-base-6.0.2"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."ast-types-0.13.4"
-      (sources."aws-sdk-2.1029.0" // {
+      (sources."aws-sdk-2.1046.0" // {
         dependencies = [
           sources."uuid-3.3.2"
         ];
@@ -75983,7 +76454,7 @@ in
       sources."brace-expansion-1.1.11"
       sources."buffer-4.9.2"
       sources."buffer-crc32-0.2.13"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.1"
       sources."chalk-4.1.2"
       sources."chardet-0.7.0"
       sources."cheerio-1.0.0-rc.10"
@@ -75998,10 +76469,10 @@ in
       sources."commander-8.3.0"
       sources."concat-map-0.0.1"
       sources."core-util-is-1.0.3"
-      sources."css-select-4.1.3"
+      sources."css-select-4.2.0"
       sources."css-what-5.1.0"
       sources."data-uri-to-buffer-3.0.1"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."deep-is-0.1.4"
       sources."defaults-1.0.3"
       sources."degenerator-2.2.0"
@@ -76009,7 +76480,7 @@ in
       sources."devtools-protocol-0.0.901419"
       sources."dom-serializer-1.3.2"
       sources."domelementtype-2.2.0"
-      sources."domhandler-4.2.2"
+      sources."domhandler-4.3.0"
       sources."domutils-2.8.0"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
@@ -76043,7 +76514,7 @@ in
       sources."graceful-fs-4.2.8"
       sources."has-flag-4.0.0"
       sources."htmlparser2-6.1.0"
-      sources."http-errors-1.7.3"
+      sources."http-errors-1.8.1"
       sources."http-proxy-agent-4.0.1"
       sources."https-proxy-agent-5.0.0"
       sources."iconv-lite-0.4.24"
@@ -76101,7 +76572,7 @@ in
         ];
       })
       sources."querystring-0.2.0"
-      sources."raw-body-2.4.1"
+      sources."raw-body-2.4.2"
       sources."readable-stream-3.6.0"
       sources."restore-cursor-3.1.0"
       sources."rimraf-3.0.2"
@@ -76114,8 +76585,8 @@ in
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.1"
-      sources."setprototypeof-1.1.1"
-      sources."signal-exit-3.0.5"
+      sources."setprototypeof-1.2.0"
+      sources."signal-exit-3.0.6"
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.1"
       sources."socks-proxy-agent-5.0.1"
@@ -76133,7 +76604,7 @@ in
       sources."tar-stream-2.2.0"
       sources."through-2.3.8"
       sources."tmp-0.0.33"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."tslib-2.3.1"
       sources."type-check-0.3.2"
       sources."type-fest-0.21.3"
@@ -76245,7 +76716,7 @@ in
       sources."concat-map-0.0.1"
       sources."cross-spawn-6.0.5"
       sources."crypto-random-string-2.0.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -76325,7 +76796,7 @@ in
       sources."json-parse-even-better-errors-2.3.1"
       sources."keyv-3.1.0"
       sources."kind-of-6.0.3"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."locate-path-5.0.0"
       sources."lodash.iteratee-4.7.0"
       sources."log-symbols-4.1.0"
@@ -76480,7 +76951,7 @@ in
       sources."semver-5.7.1"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-3.0.0"
       sources."sliced-1.0.1"
       sources."spdx-correct-3.1.1"
@@ -76587,10 +77058,10 @@ in
   balanceofsatoshis = nodeEnv.buildNodePackage {
     name = "balanceofsatoshis";
     packageName = "balanceofsatoshis";
-    version = "11.12.0";
+    version = "11.15.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/balanceofsatoshis/-/balanceofsatoshis-11.12.0.tgz";
-      sha512 = "wb6LDwuSA5UGHb7yIRZK3YAk9odlPkV5e4qwswwlKTOj0BV2gawClTsJ1uE27WIWFIu7OQaoB1TxUiL1jKQueQ==";
+      url = "https://registry.npmjs.org/balanceofsatoshis/-/balanceofsatoshis-11.15.0.tgz";
+      sha512 = "M9z7lob87YaxDc42JLHLUyaw1+mDg4Hykk31HfZSTJ0hL8rUqxjYg5d5BHep43Ue0ZwkYgTWahBgORfLj8QR8Q==";
     };
     dependencies = [
       sources."@alexbosworth/fiat-1.0.0"
@@ -76614,14 +77085,14 @@ in
       sources."@protobufjs/utf8-1.1.0"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/body-parser-1.19.1"
+      sources."@types/body-parser-1.19.2"
       sources."@types/caseless-0.12.2"
       sources."@types/connect-3.4.35"
       sources."@types/express-4.17.13"
-      sources."@types/express-serve-static-core-4.17.25"
+      sources."@types/express-serve-static-core-4.17.26"
       sources."@types/long-4.0.1"
       sources."@types/mime-1.3.2"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/qs-6.9.7"
       sources."@types/range-parser-1.2.4"
       sources."@types/request-2.48.7"
@@ -76630,7 +77101,7 @@ in
       sources."@types/ws-8.2.0"
       sources."abort-controller-3.0.0"
       sources."accepts-1.3.7"
-      sources."ajv-8.8.0"
+      sources."ajv-8.8.2"
       sources."ansi-0.3.1"
       (sources."ansi-align-3.0.1" // {
         dependencies = [
@@ -76676,13 +77147,17 @@ in
       sources."bip66-1.1.5"
       sources."bip68-1.0.4"
       sources."bitcoin-ops-1.4.1"
-      sources."bitcoinjs-lib-6.0.0"
+      sources."bitcoinjs-lib-6.0.1"
       sources."bl-4.1.0"
       sources."bluebird-3.7.2"
       sources."bn.js-5.2.0"
       sources."body-parser-1.19.0"
       sources."bolt01-1.2.3"
-      sources."bolt03-1.2.12"
+      (sources."bolt03-1.2.12" // {
+        dependencies = [
+          sources."bitcoinjs-lib-6.0.0"
+        ];
+      })
       sources."bolt07-1.7.4"
       sources."bolt09-0.2.0"
       (sources."boxen-5.1.2" // {
@@ -76719,7 +77194,6 @@ in
         ];
       })
       sources."cbor-8.1.0"
-      sources."cert-info-1.5.1"
       (sources."chalk-1.1.3" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -76773,7 +77247,7 @@ in
       sources."create-hmac-1.1.7"
       sources."crypto-js-4.1.1"
       sources."crypto-random-string-2.0.0"
-      sources."csv-parse-4.16.3"
+      sources."csv-parse-5.0.3"
       sources."cycle-1.0.3"
       sources."debug-2.6.9"
       sources."decompress-response-3.3.0"
@@ -76824,7 +77298,12 @@ in
       sources."get-caller-file-2.0.5"
       sources."get-stream-4.1.0"
       sources."global-dirs-3.0.0"
-      sources."goldengate-10.4.2"
+      (sources."goldengate-10.4.2" // {
+        dependencies = [
+          sources."bitcoinjs-lib-6.0.0"
+          sources."ln-service-52.16.0"
+        ];
+      })
       sources."got-9.6.0"
       sources."graceful-fs-4.2.8"
       (sources."has-ansi-2.0.0" // {
@@ -76871,7 +77350,11 @@ in
           sources."tmp-0.0.33"
         ];
       })
-      sources."invoices-2.0.2"
+      (sources."invoices-2.0.2" // {
+        dependencies = [
+          sources."bitcoinjs-lib-6.0.0"
+        ];
+      })
       sources."ipaddr.js-1.9.1"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-buffer-1.1.6"
@@ -76905,6 +77388,8 @@ in
       sources."latest-version-5.1.0"
       (sources."lightning-4.14.3" // {
         dependencies = [
+          sources."@types/node-16.11.7"
+          sources."bitcoinjs-lib-6.0.0"
           (sources."invoices-2.0.1" // {
             dependencies = [
               (sources."bitcoinjs-lib-5.2.0" // {
@@ -76916,11 +77401,38 @@ in
           })
         ];
       })
-      sources."ln-accounting-5.0.5"
-      sources."ln-service-52.16.0"
-      (sources."ln-sync-3.0.1" // {
+      (sources."ln-accounting-5.0.5" // {
+        dependencies = [
+          sources."bitcoinjs-lib-6.0.0"
+          sources."ln-service-52.16.0"
+        ];
+      })
+      (sources."ln-service-53.2.0" // {
+        dependencies = [
+          sources."@grpc/proto-loader-0.6.7"
+          sources."@types/node-16.11.12"
+          sources."@types/ws-8.2.2"
+          sources."lightning-5.2.1"
+          sources."type-fest-2.8.0"
+          sources."ws-8.3.0"
+        ];
+      })
+      (sources."ln-sync-3.3.0" // {
         dependencies = [
+          sources."@grpc/proto-loader-0.6.7"
+          sources."@types/node-16.11.12"
+          sources."@types/ws-8.2.2"
+          sources."lightning-5.2.1"
+          sources."type-fest-2.8.0"
+        ];
+      })
+      (sources."ln-telegram-3.4.2" // {
+        dependencies = [
+          sources."@types/node-16.11.7"
+          sources."ansi-regex-5.0.1"
           sources."bech32-1.1.4"
+          sources."bitcoinjs-lib-6.0.0"
+          sources."cbor-8.0.2"
           (sources."invoices-2.0.1" // {
             dependencies = [
               sources."bech32-2.0.0"
@@ -76931,15 +77443,19 @@ in
               })
             ];
           })
+          sources."is-fullwidth-code-point-3.0.0"
           (sources."lightning-4.13.3" // {
             dependencies = [
               sources."bitcoinjs-lib-5.2.0"
-              sources."cbor-8.0.2"
             ];
           })
+          sources."ln-service-52.16.0"
+          sources."ln-sync-3.0.1"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+          sources."table-6.7.3"
         ];
       })
-      sources."ln-telegram-3.4.2"
       sources."lodash-4.17.21"
       sources."lodash.camelcase-4.3.0"
       sources."lodash.difference-4.5.0"
@@ -77025,14 +77541,28 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."paid-services-3.1.2"
+      (sources."paid-services-3.2.0" // {
+        dependencies = [
+          sources."@grpc/proto-loader-0.6.7"
+          sources."@types/node-16.11.11"
+          sources."@types/ws-8.2.1"
+          sources."lightning-5.1.1"
+          sources."ln-service-53.1.2"
+          sources."type-fest-2.8.0"
+          sources."ws-8.3.0"
+        ];
+      })
       sources."parseurl-1.3.3"
       sources."path-to-regexp-0.1.7"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
       sources."prepend-http-2.0.0"
       sources."prettyjson-1.2.1"
-      sources."probing-2.0.1"
+      (sources."probing-2.0.1" // {
+        dependencies = [
+          sources."ln-service-52.16.0"
+        ];
+      })
       sources."process-nextick-args-2.0.1"
       sources."protobufjs-6.11.2"
       sources."proxy-addr-2.0.7"
@@ -77087,7 +77617,7 @@ in
       sources."serve-static-1.14.1"
       sources."setprototypeof-1.1.1"
       sources."sha.js-2.4.11"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."sjcl-1.0.8"
       (sources."slice-ansi-4.0.0" // {
         dependencies = [
@@ -77104,7 +77634,7 @@ in
       sources."strip-ansi-4.0.0"
       sources."strip-json-comments-2.0.1"
       sources."supports-color-2.0.0"
-      (sources."table-6.7.3" // {
+      (sources."table-6.7.5" // {
         dependencies = [
           sources."ansi-regex-5.0.1"
           sources."is-fullwidth-code-point-3.0.0"
@@ -77121,9 +77651,9 @@ in
           sources."strip-ansi-3.0.1"
         ];
       })
-      (sources."telegraf-4.4.2" // {
+      (sources."telegraf-4.5.2" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -77147,7 +77677,7 @@ in
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
       sources."typeforce-1.18.0"
-      sources."typegram-3.5.1"
+      sources."typegram-3.6.2"
       sources."unique-string-2.0.0"
       sources."unpipe-1.0.0"
       (sources."update-notifier-5.1.0" // {
@@ -77290,10 +77820,10 @@ in
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
       sources."jsdom-11.12.0"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."left-pad-1.3.0"
       sources."levn-0.3.0"
       sources."lodash-4.17.21"
@@ -77336,7 +77866,7 @@ in
       sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-6.1.1"
       sources."vscode-languageserver-protocol-3.16.0"
-      sources."vscode-languageserver-textdocument-1.0.2"
+      sources."vscode-languageserver-textdocument-1.0.3"
       sources."vscode-languageserver-types-3.16.0"
       sources."w3c-hr-time-1.0.2"
       sources."web-tree-sitter-0.19.4"
@@ -77392,7 +77922,7 @@ in
       sources."commander-6.2.1"
       sources."console-control-strings-1.1.0"
       sources."core-util-is-1.0.3"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decompress-response-4.2.1"
       sources."deep-extend-0.6.0"
       sources."delegates-1.0.0"
@@ -77400,14 +77930,14 @@ in
       sources."doctoc-2.1.0"
       (sources."dom-serializer-1.3.2" // {
         dependencies = [
-          sources."domhandler-4.2.2"
+          sources."domhandler-4.3.0"
         ];
       })
       sources."domelementtype-2.2.0"
       sources."domhandler-3.3.0"
       (sources."domutils-2.8.0" // {
         dependencies = [
-          sources."domhandler-4.2.2"
+          sources."domhandler-4.3.0"
         ];
       })
       sources."emoji-regex-6.1.3"
@@ -77462,7 +77992,7 @@ in
       sources."safe-buffer-5.1.2"
       sources."semver-5.7.1"
       sources."set-blocking-2.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."simple-concat-1.0.1"
       sources."simple-get-3.1.0"
       sources."state-toggle-1.0.3"
@@ -77502,7 +78032,7 @@ in
       sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-7.0.0"
       sources."vscode-languageserver-protocol-3.16.0"
-      sources."vscode-languageserver-textdocument-1.0.2"
+      sources."vscode-languageserver-textdocument-1.0.3"
       sources."vscode-languageserver-types-3.16.0"
       sources."vscode-uri-2.1.2"
       sources."web-tree-sitter-0.17.1"
@@ -77644,7 +78174,7 @@ in
         ];
       })
       sources."semver-5.7.1"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."sort-keys-1.1.2"
       sources."sort-keys-length-1.0.1"
       sources."spdx-correct-3.1.1"
@@ -77794,14 +78324,14 @@ in
       sources."is-core-module-2.8.0"
       sources."is-date-object-1.0.5"
       sources."is-generator-function-1.0.10"
-      sources."is-negative-zero-2.0.1"
+      sources."is-negative-zero-2.0.2"
       sources."is-number-object-1.0.6"
       sources."is-regex-1.1.4"
       sources."is-shared-array-buffer-1.0.1"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.8"
-      sources."is-weakref-1.0.1"
+      sources."is-weakref-1.0.2"
       sources."isarray-1.0.0"
       sources."jsonparse-1.3.1"
       sources."labeled-stream-splicer-2.0.2"
@@ -77819,7 +78349,7 @@ in
       sources."mkdirp-classic-0.5.3"
       sources."module-deps-6.2.3"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."once-1.4.0"
@@ -77940,7 +78470,7 @@ in
       sources."browser-sync-ui-2.27.7"
       sources."bs-recipes-1.3.4"
       sources."bs-snippet-injector-2.0.1"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.1"
       sources."camelcase-5.3.1"
       sources."chalk-1.1.3"
       sources."chokidar-3.5.2"
@@ -77995,7 +78525,7 @@ in
         ];
       })
       sources."find-up-4.1.0"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."fresh-0.5.2"
       sources."fs-extra-3.0.1"
       sources."fsevents-2.3.2"
@@ -78005,7 +78535,7 @@ in
       sources."has-ansi-2.0.0"
       sources."has-binary2-1.0.3"
       sources."has-cors-1.1.0"
-      (sources."http-errors-1.7.3" // {
+      (sources."http-errors-1.8.1" // {
         dependencies = [
           sources."statuses-1.5.0"
         ];
@@ -78058,7 +78588,7 @@ in
       sources."portscanner-2.1.1"
       sources."qs-6.2.3"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.1"
+      sources."raw-body-2.4.2"
       sources."readdirp-3.6.0"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
@@ -78092,7 +78622,7 @@ in
       sources."serve-static-1.13.2"
       sources."server-destroy-1.0.1"
       sources."set-blocking-2.0.0"
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       (sources."socket.io-2.4.0" // {
         dependencies = [
           sources."component-emitter-1.2.1"
@@ -78118,7 +78648,7 @@ in
       sources."tfunk-4.0.0"
       sources."to-array-0.1.4"
       sources."to-regex-range-5.0.1"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."ua-parser-js-1.0.2"
       sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
@@ -78161,16 +78691,16 @@ in
   btc-rpc-explorer = nodeEnv.buildNodePackage {
     name = "btc-rpc-explorer";
     packageName = "btc-rpc-explorer";
-    version = "3.2.0";
+    version = "3.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/btc-rpc-explorer/-/btc-rpc-explorer-3.2.0.tgz";
-      sha512 = "Va/hSa8+LRP4o6neRo+us8XttwcmLfwgNykeXhtY3xMu3/Y7I2e4EXb6Zd9jElMVI3teWH7eiyLff0KDjnYJdg==";
+      url = "https://registry.npmjs.org/btc-rpc-explorer/-/btc-rpc-explorer-3.3.0.tgz";
+      sha512 = "lGrnNrAGb+SjksV92nG2zvm0Mxt7q9bTMNIqQXGTf/AsdrxQDjV097izcRnrBoy41fRS1//J7TuNCH/oAsOteg==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.3"
+      sources."@babel/parser-7.16.6"
       sources."@babel/types-7.16.0"
       sources."@kwsites/file-exists-1.1.1"
       sources."@kwsites/promise-deferred-1.1.1"
@@ -78181,7 +78711,7 @@ in
       sources."accepts-1.3.7"
       sources."acorn-7.4.1"
       sources."ajv-6.12.6"
-      sources."ansi-regex-4.1.0"
+      sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
       sources."array-flatten-1.1.1"
@@ -78194,15 +78724,14 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."axios-0.21.4"
+      sources."axios-0.24.0"
       sources."babel-walk-3.0.0-canary-5"
       sources."balanced-match-1.0.2"
       sources."base-x-3.0.9"
-      sources."base64-js-1.5.1"
       sources."basic-auth-2.0.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bech32-2.0.0"
-      sources."bignumber.js-9.0.1"
+      sources."bignumber.js-9.0.2"
       sources."bindings-1.5.0"
       sources."bip174-2.0.1"
       sources."bip32-2.0.6"
@@ -78215,24 +78744,19 @@ in
       })
       sources."bluebird-3.7.2"
       sources."bn.js-4.12.0"
-      (sources."body-parser-1.19.0" // {
+      (sources."body-parser-1.19.1" // {
         dependencies = [
           sources."debug-2.6.9"
         ];
       })
-      sources."bootstrap-5.0.2"
+      sources."bootstrap-5.1.3"
       sources."brace-expansion-1.1.11"
       sources."brorand-1.1.0"
       sources."bs58-4.0.1"
       sources."bs58check-2.1.2"
       sources."btc-rpc-client-git://github.com/btc21/btc-rpc-client"
-      sources."buffer-5.7.1"
-      sources."buffer-alloc-1.2.0"
-      sources."buffer-alloc-unsafe-1.1.0"
-      sources."buffer-fill-1.0.0"
-      sources."buffer-from-1.1.2"
       sources."bunyan-1.8.15"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.1"
       sources."call-bind-1.0.2"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
@@ -78240,9 +78764,9 @@ in
       sources."chalk-2.4.2"
       sources."character-parser-2.2.0"
       sources."charenc-0.0.2"
-      sources."chart.js-3.6.0"
+      sources."chart.js-3.6.2"
       sources."cipher-base-1.0.4"
-      sources."cliui-5.0.0"
+      sources."cliui-6.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."combined-stream-1.0.8"
@@ -78257,8 +78781,8 @@ in
       sources."constantinople-4.0.1"
       sources."content-disposition-0.5.3"
       sources."content-type-1.0.4"
-      sources."cookie-0.4.0"
-      sources."cookie-parser-1.4.5"
+      sources."cookie-0.4.1"
+      sources."cookie-parser-1.4.6"
       sources."cookie-signature-1.0.6"
       sources."core-util-is-1.0.2"
       sources."create-hash-1.2.0"
@@ -78268,11 +78792,14 @@ in
       sources."csrf-3.1.0"
       (sources."csurf-1.11.0" // {
         dependencies = [
+          sources."cookie-0.4.0"
           sources."http-errors-1.7.3"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
       sources."dashdash-1.14.1"
-      (sources."debug-4.3.2" // {
+      (sources."debug-4.3.3" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -78301,7 +78828,8 @@ in
       sources."ee-first-1.1.1"
       sources."electrum-client-git://github.com/janoside/electrum-client"
       sources."elliptic-6.5.4"
-      sources."emoji-regex-7.0.3"
+      sources."emoji-regex-8.0.0"
+      sources."encode-utf8-1.0.3"
       sources."encodeurl-1.0.2"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -78311,13 +78839,21 @@ in
       sources."event-loop-stats-1.3.0"
       (sources."express-4.17.1" // {
         dependencies = [
+          sources."body-parser-1.19.0"
+          sources."bytes-3.1.0"
+          sources."cookie-0.4.0"
           sources."debug-2.6.9"
+          sources."http-errors-1.7.2"
+          sources."inherits-2.0.3"
+          sources."qs-6.7.0"
+          sources."raw-body-2.4.0"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
       sources."express-async-handler-1.2.0"
       (sources."express-session-1.17.2" // {
         dependencies = [
-          sources."cookie-0.4.1"
           sources."debug-2.6.9"
           sources."depd-2.0.0"
           sources."safe-buffer-5.2.1"
@@ -78334,7 +78870,7 @@ in
         ];
       })
       sources."find-up-4.1.0"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
       sources."forwarded-0.2.0"
@@ -78359,14 +78895,9 @@ in
       sources."hash.js-1.1.7"
       sources."hmac-drbg-1.0.1"
       sources."hosted-git-info-4.0.2"
-      (sources."http-errors-1.7.2" // {
-        dependencies = [
-          sources."inherits-2.0.3"
-        ];
-      })
+      sources."http-errors-1.8.1"
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
-      sources."ieee754-1.2.1"
       sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -78375,22 +78906,21 @@ in
       sources."is-buffer-1.1.6"
       sources."is-core-module-2.8.0"
       sources."is-expression-4.0.0"
-      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-plain-obj-1.1.0"
       sources."is-promise-2.2.2"
       sources."is-regex-1.1.4"
       sources."is-typedarray-1.0.0"
-      sources."isarray-2.0.5"
       sources."isstream-0.1.2"
       sources."js-stringify-1.0.2"
       sources."js-tokens-4.0.0"
       sources."jsbn-0.1.1"
       sources."json-bigint-1.0.0"
       sources."json-parse-even-better-errors-2.3.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."jstransformer-1.0.0"
       (sources."jstransformer-markdown-it-2.1.0" // {
         dependencies = [
@@ -78398,13 +78928,13 @@ in
         ];
       })
       sources."kind-of-6.0.3"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."linkify-it-2.2.0"
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
       sources."lru-cache-6.0.0"
       sources."map-obj-4.3.0"
-      (sources."markdown-it-12.2.0" // {
+      (sources."markdown-it-12.3.0" // {
         dependencies = [
           sources."argparse-2.0.1"
           sources."entities-2.1.0"
@@ -78463,7 +78993,7 @@ in
           sources."safe-buffer-5.2.1"
         ];
       })
-      sources."pngjs-3.4.0"
+      sources."pngjs-5.0.0"
       sources."promise-7.3.1"
       sources."proxy-addr-2.0.7"
       sources."psl-1.8.0"
@@ -78481,13 +79011,13 @@ in
       sources."pug-walk-2.0.0"
       sources."punycode-2.1.1"
       sources."pushdata-bitcoin-1.0.1"
-      sources."qrcode-1.4.4"
-      sources."qs-6.7.0"
+      sources."qrcode-1.5.0"
+      sources."qs-6.9.6"
       sources."quick-lru-4.0.1"
       sources."random-bytes-1.0.0"
       sources."randombytes-2.1.0"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.0"
+      sources."raw-body-2.4.2"
       (sources."read-pkg-5.2.0" // {
         dependencies = [
           sources."hosted-git-info-2.8.9"
@@ -78529,7 +79059,10 @@ in
               sources."ms-2.0.0"
             ];
           })
+          sources."http-errors-1.7.3"
           sources."ms-2.1.1"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
       (sources."serve-favicon-2.5.0" // {
@@ -78540,9 +79073,9 @@ in
       })
       sources."serve-static-1.14.1"
       sources."set-blocking-2.0.0"
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."sha.js-2.4.11"
-      sources."simple-git-2.47.0"
+      sources."simple-git-2.48.0"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
@@ -78551,18 +79084,18 @@ in
       sources."sshpk-1.16.1"
       sources."standard-error-1.1.0"
       sources."statuses-1.5.0"
-      sources."string-width-3.1.0"
+      sources."string-width-4.2.3"
       (sources."string_decoder-1.3.0" // {
         dependencies = [
           sources."safe-buffer-5.2.1"
         ];
       })
-      sources."strip-ansi-5.2.0"
+      sources."strip-ansi-6.0.1"
       sources."strip-indent-3.0.0"
       sources."supports-color-5.5.0"
       sources."tiny-secp256k1-1.1.6"
       sources."to-fast-properties-2.0.0"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."token-stream-1.0.0"
       sources."tough-cookie-2.5.0"
       sources."trim-newlines-3.0.1"
@@ -78587,17 +79120,19 @@ in
       sources."which-module-2.0.0"
       sources."wif-2.0.6"
       sources."with-7.0.2"
-      sources."wrap-ansi-5.1.0"
+      (sources."wrap-ansi-6.2.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+        ];
+      })
       sources."wrappy-1.0.2"
       sources."y18n-4.0.3"
       sources."yallist-4.0.0"
-      (sources."yargs-13.3.2" // {
+      (sources."yargs-15.4.1" // {
         dependencies = [
-          sources."find-up-3.0.0"
-          sources."locate-path-3.0.0"
-          sources."p-locate-3.0.0"
-          sources."path-exists-3.0.0"
-          sources."yargs-parser-13.1.2"
+          sources."yargs-parser-18.1.3"
         ];
       })
       sources."yargs-parser-20.2.9"
@@ -78632,7 +79167,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."addr-to-ip-port-1.5.4"
       sources."airplay-js-0.2.16"
       sources."ajv-6.12.6"
@@ -78679,7 +79214,7 @@ in
       sources."caseless-0.12.0"
       (sources."castv2-0.1.10" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
         ];
       })
       sources."castv2-client-1.2.0"
@@ -78781,10 +79316,10 @@ in
       sources."isarray-0.0.1"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."k-bucket-0.6.0"
       (sources."k-rpc-3.7.0" // {
         dependencies = [
@@ -78930,7 +79465,7 @@ in
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
       sources."semver-5.7.1"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
       (sources."simple-peer-6.4.4" // {
@@ -79098,7 +79633,7 @@ in
       sources."buffer-crc32-0.2.13"
       sources."buffer-equal-0.0.1"
       sources."buffer-from-1.1.2"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.1"
       sources."cache-base-1.0.1"
       sources."call-me-maybe-1.0.1"
       sources."camelcase-4.1.0"
@@ -79260,7 +79795,7 @@ in
         ];
       })
       sources."hosted-git-info-2.8.9"
-      sources."http-errors-1.7.3"
+      sources."http-errors-1.8.1"
       (sources."https-proxy-agent-2.2.4" // {
         dependencies = [
           sources."debug-3.2.7"
@@ -79443,13 +79978,13 @@ in
       sources."pseudomap-1.0.2"
       (sources."puppeteer-1.20.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
       sources."query-string-6.14.1"
       sources."quick-lru-1.1.0"
-      sources."raw-body-2.4.1"
+      sources."raw-body-2.4.2"
       sources."rc-1.2.8"
       sources."read-pkg-3.0.0"
       sources."read-pkg-up-3.0.0"
@@ -79478,10 +80013,10 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-1.0.0"
       sources."slice-ansi-0.0.4"
       (sources."snapdragon-0.8.2" // {
@@ -79577,7 +80112,7 @@ in
       })
       sources."to-regex-3.0.2"
       sources."to-regex-range-2.1.1"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."trim-newlines-2.0.0"
       sources."tslib-1.14.1"
       sources."typedarray-0.0.6"
@@ -79636,17 +80171,17 @@ in
   cdk8s-cli = nodeEnv.buildNodePackage {
     name = "cdk8s-cli";
     packageName = "cdk8s-cli";
-    version = "1.0.31";
+    version = "1.0.52";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-1.0.31.tgz";
-      sha512 = "xaViO1Divm4/4v+oTlYV28MohHaoT4vNI2T4M9I/6oAHF1yNiSJWWd76mjOICVIoAi7OpjBj5YtyBrXcmq9pzA==";
+      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-1.0.52.tgz";
+      sha512 = "FNSI8peew5FAsgZQ2cxE4asAazudoNVoEGCFNbZ3VyCXz+77wxl6BrslHf6LeHKYEnP8Qfk3NjqZuR2178u2Bw==";
     };
     dependencies = [
-      sources."@jsii/check-node-1.44.0"
-      sources."@jsii/spec-1.44.0"
+      sources."@jsii/check-node-1.49.0"
+      sources."@jsii/spec-1.49.0"
       sources."@types/node-12.20.37"
       sources."@xmldom/xmldom-0.7.5"
-      sources."ajv-8.8.0"
+      sources."ajv-8.8.2"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."at-least-node-1.0.0"
@@ -79654,12 +80189,12 @@ in
       sources."call-bind-1.0.2"
       sources."camelcase-6.2.1"
       sources."case-1.6.3"
-      sources."cdk8s-1.1.35"
-      sources."cdk8s-plus-22-1.0.0-beta.42"
+      sources."cdk8s-1.3.2"
+      sources."cdk8s-plus-22-1.0.0-beta.62"
       sources."chalk-4.1.2"
       sources."cliui-7.0.4"
       sources."clone-2.1.2"
-      (sources."codemaker-1.44.0" // {
+      (sources."codemaker-1.49.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
         ];
@@ -79668,9 +80203,9 @@ in
       sources."color-name-1.1.4"
       sources."colors-1.4.0"
       sources."commonmark-0.30.0"
-      sources."constructs-3.3.161"
+      sources."constructs-3.3.166"
       sources."date-format-3.0.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decamelize-5.0.1"
       sources."deep-equal-2.0.5"
       sources."define-properties-1.1.3"
@@ -79712,7 +80247,7 @@ in
       sources."is-date-object-1.0.5"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-map-2.0.2"
-      sources."is-negative-zero-2.0.1"
+      sources."is-negative-zero-2.0.2"
       sources."is-number-object-1.0.6"
       sources."is-regex-1.1.4"
       sources."is-set-2.0.2"
@@ -79721,41 +80256,41 @@ in
       sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.8"
       sources."is-weakmap-2.0.1"
-      sources."is-weakref-1.0.1"
-      sources."is-weakset-2.0.1"
+      sources."is-weakref-1.0.2"
+      sources."is-weakset-2.0.2"
       sources."isarray-2.0.5"
-      (sources."jsii-1.44.0" // {
+      (sources."jsii-1.49.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-pacmak-1.44.0" // {
+      (sources."jsii-pacmak-1.49.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-reflect-1.44.0" // {
+      (sources."jsii-reflect-1.49.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-rosetta-1.44.0" // {
+      (sources."jsii-rosetta-1.49.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-srcmak-0.1.400" // {
+      (sources."jsii-srcmak-0.1.426" // {
         dependencies = [
           sources."fs-extra-9.1.0"
         ];
       })
       sources."json-schema-0.4.0"
       sources."json-schema-traverse-1.0.0"
-      sources."json2jsii-0.2.53"
+      sources."json2jsii-0.2.81"
       sources."jsonfile-6.1.0"
       sources."jsonschema-1.4.0"
       sources."locate-path-5.0.0"
@@ -79767,11 +80302,11 @@ in
       sources."ms-2.1.2"
       sources."ncp-2.0.0"
       sources."no-case-3.0.4"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
-      sources."oo-ascii-tree-1.44.0"
+      sources."oo-ascii-tree-1.49.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
@@ -79793,7 +80328,7 @@ in
       sources."snake-case-3.0.4"
       sources."sort-json-2.0.0"
       sources."spdx-license-list-6.4.0"
-      sources."sscaff-1.2.129"
+      sources."sscaff-1.2.151"
       (sources."streamroller-2.2.4" // {
         dependencies = [
           sources."date-format-2.1.0"
@@ -79834,7 +80369,7 @@ in
     ];
     buildInputs = globalBuildInputs;
     meta = {
-      description = "CDK for Kubernetes CLI";
+      description = "This is the command line tool for Cloud Development Kit (CDK) for Kubernetes (cdk8s).";
       license = "Apache-2.0";
     };
     production = true;
@@ -79844,663 +80379,260 @@ in
   cdktf-cli = nodeEnv.buildNodePackage {
     name = "cdktf-cli";
     packageName = "cdktf-cli";
-    version = "0.7.0";
+    version = "0.8.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.7.0.tgz";
-      sha512 = "N0U5YgquMYZTqfO+SSIdP6K/EAnFqS5gHj8eISvP2ZjrphfSFM7hs4VO0bVvzNoMe/ByBbUtQMHXCs5r1XdB9Q==";
+      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.8.3.tgz";
+      sha512 = "T1cFortUf0IZKKXIxlNZLAdJ+7+OGi1cD0aN+X8gx8wD4V171f+d/bP2wALGZOstABd6gTzvBZbzEjK7BZgWFg==";
     };
     dependencies = [
-      sources."@apollo/client-3.5.2"
-      (sources."@apollo/protobufjs-1.2.2" // {
-        dependencies = [
-          sources."@types/node-10.17.60"
-        ];
-      })
-      sources."@apollographql/apollo-tools-0.5.2"
-      sources."@apollographql/graphql-playground-html-1.6.29"
-      (sources."@ardatan/aggregate-error-0.0.6" // {
-        dependencies = [
-          sources."tslib-2.0.3"
-        ];
-      })
       sources."@babel/code-frame-7.16.0"
-      sources."@babel/generator-7.16.0"
+      sources."@babel/generator-7.16.5"
       sources."@babel/helper-validator-identifier-7.15.7"
-      (sources."@babel/highlight-7.16.0" // {
-        dependencies = [
-          sources."chalk-2.4.2"
-        ];
-      })
-      sources."@babel/parser-7.16.3"
+      sources."@babel/highlight-7.16.0"
+      sources."@babel/parser-7.16.6"
       sources."@babel/template-7.16.0"
       sources."@babel/types-7.16.0"
-      sources."@cdktf/hcl2cdk-0.7.0"
-      sources."@cdktf/hcl2json-0.7.0"
-      sources."@cdktf/provider-generator-0.7.0"
-      (sources."@graphql-tools/graphql-file-loader-6.2.7" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
-      (sources."@graphql-tools/import-6.6.1" // {
-        dependencies = [
-          sources."@graphql-tools/utils-8.5.3"
-        ];
-      })
-      (sources."@graphql-tools/load-6.2.8" // {
-        dependencies = [
-          sources."tslib-2.2.0"
-        ];
-      })
-      (sources."@graphql-tools/merge-6.2.17" // {
-        dependencies = [
-          sources."@graphql-tools/utils-8.0.2"
-        ];
-      })
-      (sources."@graphql-tools/mock-8.4.3" // {
-        dependencies = [
-          sources."@graphql-tools/utils-8.5.3"
-        ];
-      })
-      (sources."@graphql-tools/schema-8.3.1" // {
-        dependencies = [
-          sources."@graphql-tools/merge-8.2.1"
-          sources."@graphql-tools/utils-8.5.3"
-        ];
-      })
-      (sources."@graphql-tools/utils-7.10.0" // {
-        dependencies = [
-          sources."tslib-2.2.0"
-        ];
-      })
-      sources."@graphql-typed-document-node/core-3.1.0"
-      sources."@josephg/resolvable-1.0.1"
-      sources."@jsii/check-node-1.44.0"
-      sources."@jsii/spec-1.44.0"
-      sources."@nodelib/fs.scandir-2.1.5"
-      sources."@nodelib/fs.stat-2.0.5"
-      sources."@nodelib/fs.walk-1.2.8"
-      sources."@npmcli/ci-detect-1.4.0"
-      sources."@protobufjs/aspromise-1.1.2"
-      sources."@protobufjs/base64-1.1.2"
-      sources."@protobufjs/codegen-2.0.4"
-      sources."@protobufjs/eventemitter-1.1.0"
-      sources."@protobufjs/fetch-1.1.0"
-      sources."@protobufjs/float-1.0.2"
-      sources."@protobufjs/inquire-1.1.0"
-      sources."@protobufjs/path-1.1.2"
-      sources."@protobufjs/pool-1.1.0"
-      sources."@protobufjs/utf8-1.1.0"
-      sources."@skorfmann/ink-confirm-input-3.0.0"
-      (sources."@skorfmann/jsii-srcmak-0.1.374" // {
+      sources."@cdktf/hcl2cdk-0.8.3"
+      sources."@cdktf/hcl2json-0.8.3"
+      sources."@cdktf/provider-generator-0.8.3"
+      (sources."@jsii/check-node-1.49.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
-          sources."camelcase-5.3.1"
-          sources."cliui-6.0.0"
+          sources."chalk-4.1.2"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
-          sources."decamelize-1.2.0"
-          sources."fs-extra-9.1.0"
-          sources."wrap-ansi-6.2.0"
-          sources."y18n-4.0.3"
-          sources."yargs-15.4.1"
-          sources."yargs-parser-18.1.3"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
         ];
       })
-      sources."@skorfmann/terraform-cloud-1.10.1"
-      sources."@types/accepts-1.3.5"
-      sources."@types/body-parser-1.19.1"
-      sources."@types/connect-3.4.35"
-      sources."@types/cors-2.8.12"
-      sources."@types/express-4.17.13"
-      sources."@types/express-serve-static-core-4.17.24"
-      sources."@types/long-4.0.1"
-      sources."@types/mime-1.3.2"
-      sources."@types/node-14.17.33"
+      sources."@jsii/spec-1.49.0"
+      sources."@types/node-17.0.0"
       sources."@types/node-fetch-2.5.12"
-      sources."@types/qs-6.9.7"
-      sources."@types/range-parser-1.2.4"
-      sources."@types/serve-static-1.13.10"
-      sources."@types/yauzl-2.9.2"
-      sources."@types/yoga-layout-1.9.2"
-      sources."@wry/context-0.6.1"
-      sources."@wry/equality-0.5.2"
-      sources."@wry/trie-0.3.1"
       sources."@xmldom/xmldom-0.7.5"
-      sources."accepts-1.3.7"
-      sources."address-1.1.2"
-      (sources."ansi-escapes-4.3.2" // {
-        dependencies = [
-          sources."type-fest-0.21.3"
-        ];
-      })
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
-      (sources."anymatch-3.1.2" // {
-        dependencies = [
-          sources."normalize-path-3.0.0"
-        ];
-      })
-      sources."apollo-datasource-3.3.0"
-      sources."apollo-graphql-0.9.5"
-      sources."apollo-reporting-protobuf-3.2.0"
-      sources."apollo-server-caching-3.3.0"
-      (sources."apollo-server-core-3.5.0" // {
-        dependencies = [
-          sources."@graphql-tools/utils-8.5.3"
-        ];
-      })
-      sources."apollo-server-env-4.2.0"
-      sources."apollo-server-errors-3.3.0"
-      sources."apollo-server-express-3.5.0"
-      sources."apollo-server-plugin-base-3.4.0"
-      sources."apollo-server-types-3.4.0"
-      sources."archiver-5.3.0"
-      (sources."archiver-utils-2.1.0" // {
-        dependencies = [
-          sources."isarray-1.0.0"
-          sources."normalize-path-3.0.0"
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      sources."array-flatten-1.1.1"
-      sources."array-union-2.1.0"
-      sources."astral-regex-2.0.0"
-      sources."async-3.2.2"
-      sources."async-retry-1.3.3"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
-      sources."auto-bind-4.0.0"
       sources."available-typed-arrays-1.0.5"
-      sources."axios-0.21.4"
-      sources."backo2-1.0.2"
       sources."balanced-match-1.0.2"
-      sources."base64-js-1.5.1"
-      sources."binary-extensions-2.2.0"
-      sources."bl-4.1.0"
-      sources."body-parser-1.19.0"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
-      sources."buffer-5.7.1"
-      sources."buffer-crc32-0.2.13"
-      sources."bytes-3.1.0"
       sources."call-bind-1.0.2"
-      sources."camel-case-4.1.2"
       sources."camelcase-6.2.1"
-      (sources."camelcase-keys-6.2.2" // {
-        dependencies = [
-          sources."camelcase-5.3.1"
-        ];
-      })
       sources."case-1.6.3"
-      sources."cdktf-0.7.0"
-      (sources."chalk-4.1.2" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."has-flag-4.0.0"
-          sources."supports-color-7.2.0"
-        ];
-      })
-      sources."chardet-0.7.0"
-      (sources."chokidar-3.5.2" // {
-        dependencies = [
-          sources."normalize-path-3.0.0"
-        ];
-      })
-      sources."ci-info-2.0.0"
-      sources."cli-boxes-2.2.1"
-      sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.6.0"
-      sources."cli-truncate-2.1.0"
-      sources."cli-width-3.0.0"
-      sources."cliui-7.0.4"
+      sources."cdktf-0.8.3"
+      sources."chalk-2.4.2"
+      sources."cliui-6.0.0"
       sources."clone-2.1.2"
-      sources."code-excerpt-3.0.0"
       (sources."codemaker-0.22.0" // {
         dependencies = [
           sources."camelcase-5.3.1"
-          sources."decamelize-1.2.0"
         ];
       })
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."colors-1.4.0"
       sources."combined-stream-1.0.8"
-      sources."commander-2.20.3"
       sources."commonmark-0.30.0"
-      (sources."compress-commons-4.1.1" // {
-        dependencies = [
-          sources."normalize-path-3.0.0"
-        ];
-      })
       sources."concat-map-0.0.1"
-      sources."constructs-10.0.9"
-      (sources."content-disposition-0.5.3" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      sources."content-type-1.0.4"
-      sources."convert-to-spaces-1.0.2"
-      sources."cookie-0.4.0"
-      sources."cookie-signature-1.0.6"
-      sources."core-js-pure-3.19.1"
-      sources."core-util-is-1.0.3"
-      sources."cors-2.8.5"
-      sources."crc-32-1.2.0"
-      sources."crc32-stream-4.0.2"
-      (sources."cross-fetch-3.1.4" // {
-        dependencies = [
-          sources."node-fetch-2.6.1"
-        ];
-      })
-      sources."cross-spawn-7.0.3"
-      sources."cssfilter-0.0.10"
-      sources."date-fns-2.25.0"
+      sources."constructs-10.0.12"
       sources."date-format-3.0.0"
-      sources."debug-2.6.9"
-      sources."decamelize-5.0.1"
+      sources."debug-4.3.3"
+      sources."decamelize-1.2.0"
       sources."deep-equal-2.0.5"
-      (sources."defaults-1.0.3" // {
-        dependencies = [
-          sources."clone-1.0.4"
-        ];
-      })
       sources."define-properties-1.1.3"
-      sources."delay-5.0.0"
       sources."delayed-stream-1.0.0"
-      sources."depd-1.1.2"
-      sources."destroy-1.0.4"
       sources."detect-indent-5.0.0"
       sources."detect-newline-2.1.0"
-      sources."detect-port-1.3.0"
-      sources."dir-glob-3.0.1"
-      sources."ee-first-1.1.1"
       sources."emoji-regex-8.0.0"
-      sources."encodeurl-1.0.2"
-      sources."end-of-stream-1.4.4"
       sources."entities-2.0.3"
       sources."es-abstract-1.19.1"
       sources."es-get-iterator-1.1.2"
       sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
-      sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
-      sources."etag-1.8.1"
-      sources."eventemitter3-3.1.2"
       sources."events-3.3.0"
-      sources."execa-5.1.1"
-      sources."exit-on-epipe-1.0.1"
-      (sources."express-4.17.1" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
-      sources."external-editor-3.1.0"
-      (sources."extract-zip-2.0.1" // {
-        dependencies = [
-          sources."debug-4.3.2"
-          sources."get-stream-5.2.0"
-          sources."ms-2.1.2"
-        ];
-      })
-      sources."fast-glob-3.2.7"
-      sources."fast-json-stable-stringify-2.1.0"
-      sources."fastq-1.13.0"
-      sources."fd-slicer-1.1.0"
-      sources."figures-3.2.0"
-      sources."fill-range-7.0.1"
-      sources."finalhandler-1.1.2"
       sources."find-up-4.1.0"
       sources."flatted-2.0.2"
-      sources."follow-redirects-1.14.5"
       sources."foreach-2.0.5"
       sources."form-data-3.0.1"
-      sources."forwarded-0.2.0"
-      sources."fresh-0.5.2"
-      sources."fs-constants-1.0.0"
-      (sources."fs-extra-8.1.0" // {
-        dependencies = [
-          sources."jsonfile-4.0.0"
-          sources."universalify-0.1.2"
-        ];
-      })
+      sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.3.2"
       sources."function-bind-1.1.1"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
-      sources."get-stream-6.0.1"
       sources."get-symbol-description-1.0.0"
       sources."glob-7.1.7"
-      sources."glob-parent-5.1.2"
-      sources."globby-11.0.3"
       sources."graceful-fs-4.2.8"
       sources."graphology-0.20.0"
       sources."graphology-types-0.19.5"
-      sources."graphql-15.7.2"
-      sources."graphql-subscriptions-1.2.1"
-      sources."graphql-tag-2.12.6"
       sources."has-1.0.3"
       sources."has-bigints-1.0.1"
       sources."has-flag-3.0.0"
       sources."has-symbols-1.0.2"
       sources."has-tostringtag-1.0.0"
-      sources."hoist-non-react-statics-3.3.2"
-      (sources."http-errors-1.7.2" // {
-        dependencies = [
-          sources."inherits-2.0.3"
-        ];
-      })
-      sources."human-signals-2.1.0"
-      sources."iconv-lite-0.4.24"
-      sources."ieee754-1.2.1"
-      sources."ignore-5.1.9"
-      sources."import-from-3.0.0"
-      sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      (sources."ink-3.2.0" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."type-fest-0.12.0"
-          sources."wrap-ansi-6.2.0"
-        ];
-      })
-      sources."ink-spinner-4.0.3"
-      sources."ink-text-input-4.0.2"
-      sources."ink-use-stdout-dimensions-1.0.5"
-      sources."inquirer-8.2.0"
       sources."internal-slot-1.0.3"
-      sources."ipaddr.js-1.9.1"
       sources."is-arguments-1.1.1"
       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.4"
-      sources."is-ci-2.0.0"
       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.1"
-      sources."is-interactive-1.0.0"
       sources."is-map-2.0.2"
-      sources."is-negative-zero-2.0.1"
-      sources."is-number-7.0.0"
+      sources."is-negative-zero-2.0.2"
       sources."is-number-object-1.0.6"
       sources."is-regex-1.1.4"
       sources."is-set-2.0.2"
       sources."is-shared-array-buffer-1.0.1"
-      sources."is-stream-2.0.1"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.8"
-      sources."is-unicode-supported-0.1.0"
-      sources."is-valid-domain-0.1.4"
+      sources."is-valid-domain-0.1.5"
       sources."is-weakmap-2.0.1"
-      sources."is-weakref-1.0.1"
-      sources."is-weakset-2.0.1"
-      sources."is-wsl-2.2.0"
+      sources."is-weakref-1.0.2"
+      sources."is-weakset-2.0.2"
       sources."isarray-2.0.5"
-      sources."isexe-2.0.0"
-      sources."iterall-1.3.0"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
-      (sources."jsii-1.37.0" // {
+      (sources."jsii-1.49.0" // {
         dependencies = [
-          sources."@jsii/check-node-1.37.0"
+          sources."ansi-styles-4.3.0"
+          sources."cliui-7.0.4"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
           sources."fs-extra-9.1.0"
+          sources."jsonfile-6.1.0"
+          sources."universalify-2.0.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-pacmak-1.37.0" // {
+      (sources."jsii-pacmak-1.49.0" // {
         dependencies = [
-          sources."@jsii/check-node-1.37.0"
-          sources."codemaker-1.44.0"
+          sources."ansi-styles-4.3.0"
+          sources."cliui-7.0.4"
+          sources."codemaker-1.49.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."decamelize-5.0.1"
           sources."escape-string-regexp-4.0.0"
           sources."fs-extra-9.1.0"
+          sources."jsonfile-6.1.0"
+          sources."universalify-2.0.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-reflect-1.44.0" // {
+      (sources."jsii-reflect-1.49.0" // {
         dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."cliui-7.0.4"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
           sources."fs-extra-9.1.0"
+          sources."jsonfile-6.1.0"
+          sources."universalify-2.0.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-1.44.0" // {
+      (sources."jsii-rosetta-1.49.0" // {
         dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."cliui-7.0.4"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
           sources."fs-extra-9.1.0"
+          sources."jsonfile-6.1.0"
+          sources."universalify-2.0.0"
+          sources."wrap-ansi-7.0.0"
+          sources."y18n-5.0.8"
           sources."yargs-16.2.0"
+          sources."yargs-parser-20.2.9"
         ];
       })
-      sources."jsonfile-6.1.0"
-      sources."jsonschema-1.4.0"
-      (sources."lazystream-1.0.1" // {
+      (sources."jsii-srcmak-0.1.426" // {
         dependencies = [
-          sources."isarray-1.0.0"
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
+          sources."fs-extra-9.1.0"
+          sources."jsonfile-6.1.0"
+          sources."universalify-2.0.0"
+          sources."yargs-15.4.1"
         ];
       })
+      sources."jsonfile-4.0.0"
+      sources."jsonschema-1.4.0"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.21"
-      sources."lodash.defaults-4.2.0"
-      sources."lodash.difference-4.5.0"
-      sources."lodash.flatten-4.4.0"
-      sources."lodash.isequal-4.5.0"
-      sources."lodash.isplainobject-4.0.6"
-      sources."lodash.sortby-4.7.0"
-      sources."lodash.union-4.6.0"
-      sources."log-symbols-4.1.0"
-      (sources."log4js-6.3.0" // {
-        dependencies = [
-          sources."debug-4.3.2"
-          sources."ms-2.1.2"
-        ];
-      })
-      sources."loglevel-1.7.1"
-      sources."long-4.0.0"
-      sources."loose-envify-1.4.0"
-      sources."lower-case-2.0.2"
+      sources."log4js-6.3.0"
       sources."lru-cache-6.0.0"
-      sources."map-obj-4.3.0"
       sources."mdurl-1.0.1"
-      sources."media-typer-0.3.0"
-      sources."merge-descriptors-1.0.1"
-      sources."merge-stream-2.0.0"
-      sources."merge2-1.4.1"
-      sources."methods-1.1.2"
-      sources."micromatch-4.0.4"
-      sources."mime-1.6.0"
       sources."mime-db-1.51.0"
       sources."mime-types-2.1.34"
-      sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."ms-2.0.0"
-      sources."mute-stream-0.0.8"
+      sources."ms-2.1.2"
       sources."ncp-2.0.0"
-      sources."negotiator-0.6.2"
-      sources."no-case-3.0.4"
       sources."node-fetch-2.6.6"
-      sources."normalize-path-2.1.1"
-      sources."npm-run-path-4.0.1"
-      sources."object-assign-4.1.1"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."obliterator-1.6.1"
-      sources."on-finished-2.3.0"
       sources."once-1.4.0"
-      sources."onetime-5.1.2"
-      sources."oo-ascii-tree-1.44.0"
-      sources."open-7.4.2"
-      sources."optimism-0.16.1"
-      sources."ora-5.4.1"
-      sources."os-tmpdir-1.0.2"
-      sources."p-limit-3.1.0"
-      (sources."p-locate-4.1.0" // {
-        dependencies = [
-          sources."p-limit-2.3.0"
-        ];
-      })
+      sources."oo-ascii-tree-1.49.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
-      sources."parse-gitignore-1.0.1"
-      sources."parseurl-1.3.3"
-      sources."pascal-case-3.1.2"
-      sources."patch-console-1.0.0"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-key-3.1.1"
-      sources."path-to-regexp-0.1.7"
-      sources."path-type-4.0.0"
-      sources."pend-1.2.0"
-      sources."picomatch-2.3.0"
-      sources."prettier-2.4.1"
-      sources."printj-1.1.2"
-      sources."process-nextick-args-2.0.1"
-      sources."prop-types-15.7.2"
-      sources."proxy-addr-2.0.7"
-      sources."pump-3.0.0"
+      sources."prettier-2.5.1"
       sources."punycode-2.1.1"
-      sources."qs-6.7.0"
-      sources."queue-microtask-1.2.3"
-      sources."quick-lru-4.0.1"
-      sources."range-parser-1.2.1"
-      sources."raw-body-2.4.0"
-      sources."react-16.14.0"
-      sources."react-devtools-core-4.21.0"
-      sources."react-is-16.13.1"
-      sources."react-reconciler-0.26.2"
-      sources."readable-stream-3.6.0"
-      sources."readdir-glob-1.1.1"
-      sources."readdirp-3.6.0"
       sources."regexp.prototype.flags-1.3.1"
-      sources."remove-trailing-separator-1.1.0"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
       sources."reserved-words-0.1.2"
-      sources."resolve-from-5.0.0"
-      sources."restore-cursor-3.1.0"
-      sources."retry-0.13.1"
-      sources."reusify-1.0.4"
       sources."rfdc-1.3.0"
-      sources."run-async-2.4.1"
-      sources."run-parallel-1.2.0"
-      (sources."rxjs-7.4.0" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
-      sources."safe-buffer-5.2.1"
-      sources."safer-buffer-2.1.2"
-      sources."scheduler-0.20.2"
       sources."semver-7.3.5"
       (sources."semver-intersect-1.4.0" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
-      (sources."send-0.17.1" // {
-        dependencies = [
-          sources."ms-2.1.1"
-        ];
-      })
-      sources."serve-static-1.14.1"
       sources."set-blocking-2.0.0"
-      sources."setprototypeof-1.1.1"
-      sources."sha.js-2.4.11"
-      sources."shebang-command-2.0.0"
-      sources."shebang-regex-3.0.0"
-      sources."shell-quote-1.7.3"
       sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.5"
-      sources."slash-3.0.0"
-      (sources."slice-ansi-3.0.0" // {
-        dependencies = [
-          sources."ansi-styles-4.3.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-        ];
-      })
       sources."sort-json-2.0.0"
       sources."source-map-0.5.7"
       sources."spdx-license-list-6.4.0"
-      sources."sscaff-1.2.129"
-      (sources."stack-utils-2.0.5" // {
-        dependencies = [
-          sources."escape-string-regexp-2.0.0"
-        ];
-      })
-      sources."statuses-1.5.0"
-      sources."stream-buffers-3.0.2"
       (sources."streamroller-2.2.4" // {
         dependencies = [
           sources."date-format-2.1.0"
-          sources."debug-4.3.2"
-          sources."ms-2.1.2"
         ];
       })
       sources."string-width-4.2.3"
       sources."string.prototype.repeat-0.2.0"
       sources."string.prototype.trimend-1.0.4"
       sources."string.prototype.trimstart-1.0.4"
-      (sources."string_decoder-1.1.1" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
       sources."strip-ansi-6.0.1"
-      sources."strip-final-newline-2.0.0"
-      (sources."subscriptions-transport-ws-0.9.19" // {
-        dependencies = [
-          sources."symbol-observable-1.2.0"
-        ];
-      })
       sources."supports-color-5.5.0"
-      sources."symbol-observable-4.0.0"
-      sources."tar-stream-2.2.0"
-      sources."through-2.3.8"
-      sources."tmp-0.0.33"
       sources."to-fast-properties-2.0.0"
-      sources."to-regex-range-5.0.1"
-      sources."toidentifier-1.0.0"
       sources."tr46-0.0.3"
-      sources."ts-invariant-0.9.3"
-      sources."tslib-2.3.1"
-      sources."type-fest-0.15.1"
-      sources."type-is-1.6.18"
       sources."typescript-3.9.10"
       sources."unbox-primitive-1.0.1"
-      sources."universalify-2.0.0"
-      sources."unixify-1.0.0"
-      sources."unpipe-1.0.0"
-      sources."util-deprecate-1.0.2"
-      sources."utility-types-3.10.0"
-      sources."utils-merge-1.0.1"
-      sources."uuid-8.3.2"
-      sources."valid-url-1.0.9"
-      sources."value-or-promise-1.0.11"
-      sources."vary-1.1.2"
-      sources."wcwidth-1.0.1"
+      sources."universalify-0.1.2"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
-      sources."which-2.0.2"
       sources."which-boxed-primitive-1.0.2"
       sources."which-collection-1.0.1"
       sources."which-module-2.0.0"
       sources."which-typed-array-1.1.7"
-      sources."widest-line-3.1.0"
       sources."workerpool-6.1.5"
-      (sources."wrap-ansi-7.0.0" // {
+      (sources."wrap-ansi-6.2.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."color-convert-2.0.1"
@@ -80508,20 +80640,25 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.5.5"
       sources."xmlbuilder-15.1.1"
-      sources."xss-1.0.10"
-      sources."y18n-5.0.8"
+      sources."y18n-4.0.3"
       sources."yallist-4.0.0"
-      sources."yargs-17.2.1"
-      sources."yargs-parser-20.2.9"
-      sources."yauzl-2.10.0"
-      sources."yn-3.1.1"
-      sources."yocto-queue-0.1.0"
-      sources."yoga-layout-prebuilt-1.10.0"
-      sources."zen-observable-0.8.15"
-      sources."zen-observable-ts-1.2.2"
-      sources."zip-stream-4.1.0"
+      (sources."yargs-17.3.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."cliui-7.0.4"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."wrap-ansi-7.0.0"
+          sources."y18n-5.0.8"
+          sources."yargs-parser-21.0.0"
+        ];
+      })
+      (sources."yargs-parser-18.1.3" // {
+        dependencies = [
+          sources."camelcase-5.3.1"
+        ];
+      })
       sources."zod-1.11.17"
     ];
     buildInputs = globalBuildInputs;
@@ -80537,25 +80674,40 @@ in
   clean-css-cli = nodeEnv.buildNodePackage {
     name = "clean-css-cli";
     packageName = "clean-css-cli";
-    version = "5.4.2";
+    version = "5.5.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-5.4.2.tgz";
-      sha512 = "BYxVOuBQL8f2+yucOgmwUi1idpAQV4k9bxG6mxTrBikuwrkXBG5/Pq6tqCi4GZUtgvslMj8dGVtFSoXp9OLzeA==";
+      url = "https://registry.npmjs.org/clean-css-cli/-/clean-css-cli-5.5.0.tgz";
+      sha512 = "Vr9t8o59YaPcRw/4hyJjEh4zU/BlOtlJJ8465El6QMYWbkf5nN1mhAljX6FIb0bfpkGlYNFKPCyTz7oFCHOblQ==";
     };
     dependencies = [
+      sources."anymatch-3.1.2"
       sources."balanced-match-1.0.2"
+      sources."binary-extensions-2.2.0"
       sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."chokidar-3.5.2"
       sources."clean-css-5.2.2"
       sources."commander-7.2.0"
       sources."concat-map-0.0.1"
+      sources."fill-range-7.0.1"
       sources."fs.realpath-1.0.0"
+      sources."fsevents-2.3.2"
       sources."glob-7.2.0"
+      sources."glob-parent-5.1.2"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
+      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."minimatch-3.0.4"
+      sources."normalize-path-3.0.0"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
+      sources."picomatch-2.3.0"
+      sources."readdirp-3.6.0"
       sources."source-map-0.6.1"
+      sources."to-regex-range-5.0.1"
       sources."wrappy-1.0.2"
     ];
     buildInputs = globalBuildInputs;
@@ -80622,11 +80774,11 @@ in
       sources."js-tokens-4.0.0"
       sources."json-parse-even-better-errors-2.3.1"
       sources."kind-of-6.0.3"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."locate-path-6.0.0"
       sources."lru-cache-6.0.0"
       sources."map-obj-4.3.0"
-      sources."meow-10.1.1"
+      sources."meow-10.1.2"
       sources."merge-stream-2.0.0"
       sources."mimic-fn-2.1.0"
       sources."min-indent-1.0.1"
@@ -80646,7 +80798,7 @@ in
       sources."semver-7.3.5"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
@@ -80691,7 +80843,7 @@ in
       sources."colors-1.4.0"
       sources."commander-2.20.3"
       sources."cycle-1.0.3"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decode-uri-component-0.2.0"
       sources."encoding-0.1.13"
       sources."escape-string-regexp-1.0.5"
@@ -80795,10 +80947,10 @@ in
   coc-diagnostic = nodeEnv.buildNodePackage {
     name = "coc-diagnostic";
     packageName = "coc-diagnostic";
-    version = "0.22.1";
+    version = "0.23.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-diagnostic/-/coc-diagnostic-0.22.1.tgz";
-      sha512 = "ejpSHqbHDl6cW6H0LXCktHpYriMVk+k3cLB7+JGYM44pTOPNwnXmOZKRCk62kFHIOk0YsHM/F/LnHiGf9+YImw==";
+      url = "https://registry.npmjs.org/coc-diagnostic/-/coc-diagnostic-0.23.1.tgz";
+      sha512 = "LttYS+gGH42SI5XFuIf9TdAGRRKABQvQDbMeUDrUqdpscX90WvHYdeR8M1q94RwoZH33g/4oxWu0RLPKxgDJKw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -80854,10 +81006,10 @@ in
   coc-explorer = nodeEnv.buildNodePackage {
     name = "coc-explorer";
     packageName = "coc-explorer";
-    version = "0.20.1";
+    version = "0.20.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-explorer/-/coc-explorer-0.20.1.tgz";
-      sha512 = "BCuK5OwUV9mRYN4F8e4TnjWkTcIy7UEsxCST/aoxYoCJ2TKrskDIb82R2EtuD6xmJoz1VEHpugWEG7xHRKDQxg==";
+      url = "https://registry.npmjs.org/coc-explorer/-/coc-explorer-0.20.2.tgz";
+      sha512 = "T/LC5zNmFVDnimzILdZhbK3XvMG+rokGdUIifmNdlGJN3q1SiDyIMJKVAVg9ugWItaz03u+SZkYdxXrMIUzwzA==";
     };
     dependencies = [
       sources."@sindresorhus/df-3.1.1"
@@ -80916,7 +81068,7 @@ in
       sources."semver-6.3.0"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-1.0.0"
       sources."strip-final-newline-2.0.0"
       sources."trash-7.2.0"
@@ -80968,7 +81120,7 @@ in
       sources."node-fetch-2.6.6"
       sources."tr46-0.0.3"
       sources."tslib-2.3.1"
-      sources."vscode-languageserver-textdocument-1.0.2"
+      sources."vscode-languageserver-textdocument-1.0.3"
       sources."vscode-uri-3.0.2"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
@@ -81009,7 +81161,7 @@ in
       sha512 = "7SHQYzpRKPrpaLcTm1UUk1zu9VvFEJKFqxwDIuqv/CL0cBTtEvlsfpVh9DOaMHlZPu8U8Lgyf04bHV/sFS1zJw==";
     };
     dependencies = [
-      sources."typescript-4.4.4"
+      sources."typescript-4.5.4"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -81101,7 +81253,7 @@ in
       sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-7.0.0"
       sources."vscode-languageserver-protocol-3.16.0"
-      sources."vscode-languageserver-textdocument-1.0.2"
+      sources."vscode-languageserver-textdocument-1.0.3"
       sources."vscode-languageserver-types-3.16.0"
       sources."vscode-nls-4.1.2"
       sources."vscode-uri-3.0.2"
@@ -81181,7 +81333,7 @@ in
       sources."clipboardy-2.3.0"
       sources."coc.nvim-0.0.79"
       sources."concat-map-0.0.1"
-      sources."content-disposition-0.5.3"
+      sources."content-disposition-0.5.4"
       sources."core-util-is-1.0.3"
       (sources."cross-spawn-6.0.5" // {
         dependencies = [
@@ -81191,7 +81343,7 @@ in
       })
       sources."date-format-3.0.0"
       sources."debounce-1.2.1"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."deep-extend-0.6.0"
       sources."define-properties-1.1.3"
       sources."duplexer2-0.1.4"
@@ -81203,7 +81355,7 @@ in
       sources."fast-diff-1.2.0"
       sources."fb-watchman-2.0.1"
       sources."flatted-2.0.2"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."fp-ts-2.11.5"
       sources."fs-extra-8.1.0"
       sources."fs-minipass-2.1.0"
@@ -81237,14 +81389,14 @@ in
       sources."is-callable-1.2.4"
       sources."is-date-object-1.0.5"
       sources."is-docker-2.2.1"
-      sources."is-negative-zero-2.0.1"
+      sources."is-negative-zero-2.0.2"
       sources."is-number-object-1.0.6"
       sources."is-regex-1.1.4"
       sources."is-shared-array-buffer-1.0.1"
       sources."is-stream-1.1.0"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
-      sources."is-weakref-1.0.1"
+      sources."is-weakref-1.0.2"
       sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
@@ -81263,7 +81415,7 @@ in
       sources."metals-languageclient-0.4.2"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-3.1.5"
+      sources."minipass-3.1.6"
       sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
@@ -81280,7 +81432,7 @@ in
       sources."node-fetch-2.6.6"
       sources."node-int64-0.4.0"
       sources."npm-run-path-2.0.2"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."once-1.4.0"
@@ -81292,18 +81444,22 @@ in
       sources."promisify-child-process-4.1.1"
       sources."pump-3.0.0"
       sources."rc-1.2.8"
-      sources."readable-stream-2.3.7"
+      (sources."readable-stream-2.3.7" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
       sources."rfc-3986-1.0.1"
       sources."rfdc-1.3.0"
       sources."rimraf-3.0.2"
-      sources."safe-buffer-5.1.2"
+      sources."safe-buffer-5.2.1"
       sources."semver-7.3.5"
       sources."setimmediate-1.0.5"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."shell-quote-1.7.3"
       sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       (sources."streamroller-2.2.4" // {
         dependencies = [
           sources."date-format-2.1.0"
@@ -81311,7 +81467,11 @@ in
       })
       sources."string.prototype.trimend-1.0.4"
       sources."string.prototype.trimstart-1.0.4"
-      sources."string_decoder-1.1.1"
+      (sources."string_decoder-1.1.1" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
       sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
       sources."tar-6.1.11"
@@ -81329,7 +81489,7 @@ in
           sources."vscode-languageserver-types-3.15.1"
         ];
       })
-      sources."vscode-languageserver-textdocument-1.0.2"
+      sources."vscode-languageserver-textdocument-1.0.3"
       sources."vscode-languageserver-types-3.16.0"
       sources."vscode-uri-2.1.2"
       sources."webidl-conversions-3.0.1"
@@ -81455,7 +81615,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-2.1.1"
       sources."camelcase-keys-2.1.0"
-      sources."caniuse-lite-1.0.30001280"
+      sources."caniuse-lite-1.0.30001287"
       sources."capture-stack-trace-1.0.1"
       sources."ccount-1.1.0"
       (sources."chalk-4.1.2" // {
@@ -81507,7 +81667,7 @@ in
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."commander-2.20.3"
-      sources."common-tags-1.8.1"
+      sources."common-tags-1.8.2"
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
       (sources."configstore-3.1.5" // {
@@ -81517,13 +81677,13 @@ in
         ];
       })
       sources."copy-descriptor-0.1.1"
-      sources."core-js-3.19.1"
+      sources."core-js-3.20.0"
       sources."cosmiconfig-3.1.0"
       sources."create-error-class-3.0.2"
       sources."cross-spawn-7.0.3"
       sources."crypto-random-string-1.0.0"
       sources."currently-unhandled-0.4.1"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decamelize-1.2.0"
       sources."decamelize-keys-1.1.0"
       sources."decode-uri-component-0.2.0"
@@ -81553,7 +81713,7 @@ in
       sources."domutils-1.7.0"
       sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
-      sources."electron-to-chromium-1.3.899"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."enquirer-2.3.6"
@@ -81824,7 +81984,7 @@ in
           sources."escape-string-regexp-1.0.5"
         ];
       })
-      sources."loglevel-1.7.1"
+      sources."loglevel-1.8.0"
       (sources."loglevel-colored-level-prefix-1.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -82008,7 +82168,7 @@ in
       sources."prelude-ls-1.2.1"
       sources."prepend-http-1.0.4"
       sources."preserve-0.2.0"
-      sources."prettier-2.4.1"
+      sources."prettier-2.5.1"
       sources."prettier-eslint-12.0.0"
       (sources."prettier-stylelint-0.4.2" // {
         dependencies = [
@@ -82104,7 +82264,7 @@ in
       })
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-1.0.0"
       (sources."slice-ansi-4.0.0" // {
         dependencies = [
@@ -82217,9 +82377,9 @@ in
       sources."sugarss-1.0.1"
       sources."supports-color-5.5.0"
       sources."svg-tags-1.0.0"
-      (sources."table-6.7.3" // {
+      (sources."table-6.7.5" // {
         dependencies = [
-          sources."ajv-8.8.0"
+          sources."ajv-8.8.2"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -82351,13 +82511,13 @@ in
   coc-pyright = nodeEnv.buildNodePackage {
     name = "coc-pyright";
     packageName = "coc-pyright";
-    version = "1.1.185";
+    version = "1.1.194";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-pyright/-/coc-pyright-1.1.185.tgz";
-      sha512 = "scmrgeDh1nXAevfgiflyDLIykXJp9q1gi6uHGViO2m7Qu/L0SGTClT3Y7pA46SFXMxeKq/f8lBvUltvPzksWXg==";
+      url = "https://registry.npmjs.org/coc-pyright/-/coc-pyright-1.1.194.tgz";
+      sha512 = "+OOz8r1rNCC5YL61NIQaDrDeFHOuHQ61NhqvIp9bcALigrexK0WjIWY+SI+1t+GoEiM8e0zpWRxwdyueZKLpGA==";
     };
     dependencies = [
-      sources."pyright-1.1.187"
+      sources."pyright-1.1.196"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -82398,7 +82558,7 @@ in
     dependencies = [
       sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-protocol-3.16.0"
-      sources."vscode-languageserver-textdocument-1.0.2"
+      sources."vscode-languageserver-textdocument-1.0.3"
       sources."vscode-languageserver-types-3.16.0"
     ];
     buildInputs = globalBuildInputs;
@@ -82431,10 +82591,10 @@ in
   coc-rust-analyzer = nodeEnv.buildNodePackage {
     name = "coc-rust-analyzer";
     packageName = "coc-rust-analyzer";
-    version = "0.55.0";
+    version = "0.57.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.55.0.tgz";
-      sha512 = "qTlCHI6qpMsRLK6Wt4OfC8NxUbZxZ2bVaq/7oan0LR2N2gh3KvQToe8aq2IlrGmRBM8CdnuiD7Wz8uPB5QelpQ==";
+      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.57.0.tgz";
+      sha512 = "mZsgreUpluLmDokJ3jfCrTbpQcZIUdlfyPMF4sD0o5FB+ufEz/IL3QRGcHIfKj9enyY1ZBo932z8RW/UxTswVg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -82508,31 +82668,29 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.16.0"
-      sources."@babel/compat-data-7.16.0"
-      sources."@babel/core-7.16.0"
-      sources."@babel/generator-7.16.0"
+      sources."@babel/compat-data-7.16.4"
+      sources."@babel/core-7.16.5"
+      sources."@babel/generator-7.16.5"
       sources."@babel/helper-compilation-targets-7.16.3"
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
-      sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helpers-7.16.5"
       (sources."@babel/highlight-7.16.0" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.16.3"
+      sources."@babel/parser-7.16.6"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
@@ -82544,7 +82702,7 @@ in
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/parse-json-4.0.0"
       sources."@types/unist-2.0.6"
-      sources."ajv-8.8.0"
+      sources."ajv-8.8.2"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
       sources."array-union-2.1.0"
@@ -82563,11 +82721,11 @@ in
         ];
       })
       sources."braces-3.0.2"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001280"
+      sources."caniuse-lite-1.0.30001287"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -82587,7 +82745,7 @@ in
       sources."convert-source-map-1.8.0"
       sources."cosmiconfig-7.0.1"
       sources."cssesc-3.0.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -82604,7 +82762,7 @@ in
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.3.899"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -82675,7 +82833,7 @@ in
       sources."json5-2.2.0"
       sources."kind-of-6.0.3"
       sources."known-css-properties-0.21.0"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
       sources."lodash.truncate-4.4.2"
@@ -82736,9 +82894,9 @@ 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.6"
+      sources."postcss-selector-parser-6.0.7"
       sources."postcss-syntax-0.36.2"
-      sources."postcss-value-parser-4.1.0"
+      sources."postcss-value-parser-4.2.0"
       sources."punycode-2.1.1"
       sources."queue-microtask-1.2.3"
       sources."quick-lru-4.0.1"
@@ -82769,7 +82927,7 @@ in
       sources."run-parallel-1.2.0"
       sources."safe-buffer-5.1.2"
       sources."semver-6.3.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-3.0.0"
       (sources."slice-ansi-4.0.0" // {
         dependencies = [
@@ -82797,7 +82955,7 @@ in
       sources."sugarss-2.0.0"
       sources."supports-color-5.5.0"
       sources."svg-tags-1.0.0"
-      sources."table-6.7.3"
+      sources."table-6.7.5"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."trim-newlines-3.0.1"
@@ -82821,7 +82979,7 @@ in
           sources."vscode-languageserver-types-3.16.0-next.1"
         ];
       })
-      sources."vscode-languageserver-textdocument-1.0.2"
+      sources."vscode-languageserver-textdocument-1.0.3"
       sources."vscode-languageserver-types-3.16.0"
       sources."vscode-uri-2.1.2"
       sources."which-1.3.1"
@@ -82979,7 +83137,7 @@ in
       sha512 = "RTet29nZNYrOWEuquBOAv3yFtWyHPE7xGbsHjRdNbTP6g9PF+2nV2TnDO+c/T5HAk/1J0lKKZBu6hZTnEJ2f4w==";
     };
     dependencies = [
-      sources."typescript-4.4.4"
+      sources."typescript-4.5.4"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -83057,7 +83215,7 @@ in
       sources."commander-2.20.3"
       sources."concat-map-0.0.1"
       sources."cross-spawn-7.0.3"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."deep-is-0.1.4"
       sources."diff-4.0.2"
       sources."doctrine-3.0.0"
@@ -83146,7 +83304,7 @@ in
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
       sources."prelude-ls-1.2.1"
-      sources."prettier-2.4.1"
+      sources."prettier-2.5.1"
       sources."progress-2.0.3"
       sources."pug-error-2.0.0"
       sources."pug-lexer-5.0.1"
@@ -83171,9 +83329,9 @@ in
       sources."strip-ansi-6.0.1"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-6.7.3" // {
+      (sources."table-6.7.5" // {
         dependencies = [
-          sources."ajv-8.8.0"
+          sources."ajv-8.8.2"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -83189,7 +83347,7 @@ in
       sources."tsutils-2.29.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.20.2"
-      sources."typescript-4.4.4"
+      sources."typescript-4.5.4"
       sources."uri-js-4.4.1"
       sources."v8-compile-cache-2.3.0"
       sources."vls-0.7.6"
@@ -83300,7 +83458,7 @@ in
       sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-7.0.0"
       sources."vscode-languageserver-protocol-3.16.0"
-      sources."vscode-languageserver-textdocument-1.0.2"
+      sources."vscode-languageserver-textdocument-1.0.3"
       sources."vscode-languageserver-types-3.16.0"
       sources."vscode-nls-5.0.0"
       sources."vscode-uri-3.0.2"
@@ -83473,7 +83631,7 @@ in
       sources."semver-5.7.1"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-2.0.0"
       (sources."string_decoder-1.1.1" // {
         dependencies = [
@@ -83552,7 +83710,7 @@ in
       sources."colors-1.4.0"
       sources."commander-2.20.3"
       sources."escape-string-regexp-1.0.5"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."has-flag-3.0.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."log-symbols-2.2.0"
@@ -83561,7 +83719,7 @@ in
       sources."onetime-2.0.1"
       sources."ora-1.4.0"
       sources."restore-cursor-2.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."string-width-2.1.1"
       sources."strip-ansi-4.0.0"
       sources."supports-color-5.5.0"
@@ -83595,7 +83753,7 @@ in
       sources."cliui-7.0.4"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."date-fns-2.25.0"
+      sources."date-fns-2.27.0"
       sources."emoji-regex-8.0.0"
       sources."escalade-3.1.1"
       sources."get-caller-file-2.0.5"
@@ -83640,26 +83798,23 @@ in
       sources."color-3.2.1"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.6.0"
+      sources."color-string-1.9.0"
       sources."colors-1.4.0"
       sources."colorspace-1.1.4"
       sources."commander-8.0.0"
-      sources."core-util-is-1.0.3"
       sources."enabled-2.0.0"
       sources."eventemitter3-4.0.7"
       sources."fecha-4.2.1"
       sources."fn.name-1.1.0"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."http-proxy-1.18.1"
       sources."inherits-2.0.4"
       sources."is-arrayish-0.3.2"
       sources."is-stream-2.0.1"
-      sources."isarray-1.0.0"
       sources."kuler-2.0.0"
       sources."logform-2.3.0"
       sources."ms-2.1.3"
       sources."one-time-1.0.0"
-      sources."process-nextick-args-2.0.1"
       sources."prom-client-13.1.0"
       sources."readable-stream-3.6.0"
       sources."requires-port-1.0.0"
@@ -83667,20 +83822,14 @@ in
       sources."safe-stable-stringify-1.1.1"
       sources."simple-swizzle-0.2.2"
       sources."stack-trace-0.0.10"
-      sources."strftime-0.10.0"
+      sources."strftime-0.10.1"
       sources."string_decoder-1.3.0"
       sources."tdigest-0.1.1"
       sources."text-hex-1.0.0"
       sources."triple-beam-1.3.0"
       sources."util-deprecate-1.0.2"
       sources."winston-3.3.3"
-      (sources."winston-transport-4.4.0" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."winston-transport-4.4.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -83792,7 +83941,7 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsonparse-1.3.1"
       sources."kind-of-6.0.3"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       (sources."load-json-file-4.0.0" // {
         dependencies = [
           sources."pify-3.0.0"
@@ -83886,7 +84035,7 @@ in
       sources."through2-4.0.2"
       sources."trim-newlines-3.0.1"
       sources."type-fest-0.18.1"
-      sources."uglify-js-3.14.3"
+      sources."uglify-js-3.14.5"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."validate-npm-package-license-3.0.4"
@@ -83922,7 +84071,7 @@ in
       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.0.0"
+      sources."@npmcli/fs-1.1.0"
       sources."@npmcli/git-2.1.0"
       sources."@npmcli/installed-package-contents-1.0.7"
       sources."@npmcli/move-file-1.1.2"
@@ -84053,7 +84202,7 @@ in
       sources."crypto-random-string-2.0.0"
       sources."currently-unhandled-0.4.1"
       sources."dashdash-1.14.1"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decompress-response-3.3.0"
       sources."dedent-0.7.0"
       sources."deep-extend-0.6.0"
@@ -84234,12 +84383,12 @@ in
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
       sources."json-parse-even-better-errors-2.3.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-6.1.0"
       sources."jsonparse-1.3.1"
-      (sources."jsprim-1.4.1" // {
+      (sources."jsprim-1.4.2" // {
         dependencies = [
           sources."extsprintf-1.3.0"
         ];
@@ -84273,7 +84422,7 @@ in
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-3.1.5"
+      sources."minipass-3.1.6"
       sources."minipass-collect-1.0.2"
       sources."minipass-fetch-1.4.1"
       sources."minipass-flush-1.0.5"
@@ -84419,11 +84568,11 @@ in
       sources."setprototypeof-1.1.1"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-3.0.0"
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.1"
-      sources."socks-proxy-agent-6.1.0"
+      sources."socks-proxy-agent-6.1.1"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
@@ -84455,7 +84604,7 @@ in
       sources."type-fest-0.8.1"
       sources."type-is-1.6.18"
       sources."typedarray-to-buffer-3.1.5"
-      sources."underscore-1.13.1"
+      sources."underscore-1.13.2"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
       sources."unique-string-2.0.0"
@@ -84534,7 +84683,7 @@ in
       sources."@types/glob-7.2.0"
       sources."@types/minimatch-3.0.5"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/normalize-package-data-2.4.1"
       sources."aggregate-error-3.1.0"
       sources."ansi-styles-3.2.1"
@@ -84694,7 +84843,7 @@ in
       sources."json-parse-even-better-errors-2.3.1"
       sources."junk-3.1.0"
       sources."kind-of-6.0.3"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."locate-path-5.0.0"
       sources."make-dir-3.1.0"
       sources."map-cache-0.2.2"
@@ -84905,7 +85054,7 @@ in
       sources."@cycle/run-3.4.0"
       sources."@cycle/time-0.10.1"
       sources."@types/cookiejar-2.1.2"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
@@ -84994,14 +85143,14 @@ in
       sources."mute-stream-0.0.7"
       sources."next-tick-1.0.0"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."object-keys-1.1.1"
       sources."onetime-2.0.1"
       sources."os-tmpdir-1.0.2"
       sources."performance-now-2.1.0"
       sources."process-nextick-args-2.0.1"
       sources."pseudomap-1.0.2"
-      sources."qs-6.10.1"
+      sources."qs-6.10.2"
       sources."quicktask-1.1.0"
       sources."raf-3.3.2"
       sources."readable-stream-2.3.7"
@@ -85015,7 +85164,7 @@ in
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."snabbdom-0.7.0"
       sources."snabbdom-selector-1.2.1"
       sources."sorted-immutable-list-1.1.0"
@@ -85056,20 +85205,19 @@ in
   create-react-app = nodeEnv.buildNodePackage {
     name = "create-react-app";
     packageName = "create-react-app";
-    version = "4.0.3";
+    version = "5.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/create-react-app/-/create-react-app-4.0.3.tgz";
-      sha512 = "Gz/ilrPq0ehiZ+K3L4jAZXGVep6NDkAytIdiHXsE4cWJav9uHe8xzEN84i3SjMYox6yNrBaULXHAkWdn4ZBF9Q==";
+      url = "https://registry.npmjs.org/create-react-app/-/create-react-app-5.0.0.tgz";
+      sha512 = "r1hJymk28l9HiGNatNq92txdua5pq5z4jHsYRG4g2BME7cDtRcCiuUsZzT1tPqjapSHT0Zwpwnp0gdTaqPzyBA==";
     };
     dependencies = [
       sources."ansi-styles-4.3.0"
-      sources."at-least-node-1.0.0"
       sources."balanced-match-1.0.2"
       sources."block-stream-0.0.9"
       sources."brace-expansion-1.1.11"
       sources."buffer-from-0.1.2"
       sources."builtins-1.0.3"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.2"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."commander-4.1.1"
@@ -85078,8 +85226,8 @@ in
       sources."cross-spawn-7.0.3"
       sources."debug-2.6.9"
       sources."duplexer2-0.0.2"
-      sources."envinfo-7.7.3"
-      sources."fs-extra-9.0.1"
+      sources."envinfo-7.8.1"
+      sources."fs-extra-10.0.0"
       sources."fs.realpath-1.0.0"
       sources."fstream-1.0.12"
       sources."fstream-ignore-1.0.5"
@@ -85091,12 +85239,9 @@ in
       sources."inherits-2.0.4"
       sources."isarray-0.0.1"
       sources."isexe-2.0.0"
-      (sources."jsonfile-6.1.0" // {
-        dependencies = [
-          sources."universalify-2.0.0"
-        ];
-      })
+      sources."jsonfile-6.1.0"
       sources."kleur-3.0.3"
+      sources."lru-cache-6.0.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -85105,11 +85250,11 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."process-nextick-args-2.0.1"
-      sources."prompts-2.4.0"
+      sources."prompts-2.4.2"
       sources."readable-stream-1.1.14"
       sources."rimraf-2.7.1"
       sources."safe-buffer-5.1.2"
-      sources."semver-7.3.2"
+      sources."semver-7.3.5"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."sisteransi-1.0.5"
@@ -85134,12 +85279,13 @@ in
         ];
       })
       sources."uid-number-0.0.6"
-      sources."universalify-1.0.0"
+      sources."universalify-2.0.0"
       sources."util-deprecate-1.0.2"
       sources."validate-npm-package-name-3.0.0"
       sources."which-2.0.2"
       sources."wrappy-1.0.2"
       sources."xtend-4.0.2"
+      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -85154,10 +85300,10 @@ in
   create-react-native-app = nodeEnv.buildNodePackage {
     name = "create-react-native-app";
     packageName = "create-react-native-app";
-    version = "3.6.0";
+    version = "3.7.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/create-react-native-app/-/create-react-native-app-3.6.0.tgz";
-      sha512 = "DlhSk4dbD4V+8ZnIRi3WW/Y+F90slstYUzbnz21pKxvMW1Pkri+081q+zAY1+piBq1wqUE5VbKrkXUKg019lnw==";
+      url = "https://registry.npmjs.org/create-react-native-app/-/create-react-native-app-3.7.2.tgz";
+      sha512 = "/gEvim7UjCFTFdRtSckc5Xhh+ZHSAGDKkN2mERbyLxeja4pzTmYxW/85xfYFSSLDtQmjZmwlnRKColULO1I6ZQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -85172,10 +85318,10 @@ in
   cspell = nodeEnv.buildNodePackage {
     name = "cspell";
     packageName = "cspell";
-    version = "5.12.6";
+    version = "5.13.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cspell/-/cspell-5.12.6.tgz";
-      sha512 = "Dz8zqK43AXd8NZh7tdJd8tekWkkUp9Me6oCSWOGE3AqawSHlqk1cTu52wGXMkJ0z6IXmzXzX722VsL0wLEEvRg==";
+      url = "https://registry.npmjs.org/cspell/-/cspell-5.13.3.tgz";
+      sha512 = "14RzCLHadT2BFcTEhEJUiwW4m8vVNnBXGBPnnEYkFiF2MyJEtfyOoqqVxqDHOvwVmc0zKIiAU0ZrG98spWuNnA==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.0"
@@ -85190,11 +85336,11 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@cspell/cspell-bundled-dicts-5.12.6"
-      sources."@cspell/cspell-types-5.12.6"
+      sources."@cspell/cspell-bundled-dicts-5.13.3"
+      sources."@cspell/cspell-types-5.13.3"
       sources."@cspell/dict-ada-1.1.2"
       sources."@cspell/dict-aws-1.0.14"
-      sources."@cspell/dict-bash-1.0.16"
+      sources."@cspell/dict-bash-1.0.17"
       sources."@cspell/dict-companies-2.0.2"
       sources."@cspell/dict-cpp-1.1.40"
       sources."@cspell/dict-cryptocurrencies-1.0.10"
@@ -85204,7 +85350,7 @@ in
       sources."@cspell/dict-dotnet-1.0.32"
       sources."@cspell/dict-elixir-1.0.26"
       sources."@cspell/dict-en-gb-1.1.33"
-      sources."@cspell/dict-en_us-2.1.3"
+      sources."@cspell/dict-en_us-2.1.4"
       sources."@cspell/dict-filetypes-2.0.1"
       sources."@cspell/dict-fonts-1.0.14"
       sources."@cspell/dict-fullstack-2.0.4"
@@ -85220,12 +85366,12 @@ in
       sources."@cspell/dict-npm-1.0.16"
       sources."@cspell/dict-php-1.0.25"
       sources."@cspell/dict-powershell-1.0.19"
-      sources."@cspell/dict-public-licenses-1.0.3"
-      sources."@cspell/dict-python-2.0.4"
-      sources."@cspell/dict-ruby-1.0.14"
+      sources."@cspell/dict-public-licenses-1.0.4"
+      sources."@cspell/dict-python-2.0.5"
+      sources."@cspell/dict-ruby-1.0.15"
       sources."@cspell/dict-rust-1.0.23"
       sources."@cspell/dict-scala-1.0.21"
-      sources."@cspell/dict-software-terms-2.0.9"
+      sources."@cspell/dict-software-terms-2.0.11"
       sources."@cspell/dict-swift-1.0.1"
       sources."@cspell/dict-typescript-1.0.19"
       sources."@cspell/dict-vue-2.0.1"
@@ -85248,11 +85394,11 @@ in
       sources."core-util-is-1.0.3"
       sources."cosmiconfig-7.0.1"
       sources."crypto-random-string-2.0.0"
-      sources."cspell-gitignore-5.12.6"
-      sources."cspell-glob-5.12.6"
-      sources."cspell-io-5.12.6"
-      sources."cspell-lib-5.12.6"
-      sources."cspell-trie-lib-5.12.6"
+      sources."cspell-gitignore-5.13.3"
+      sources."cspell-glob-5.13.3"
+      sources."cspell-io-5.13.3"
+      sources."cspell-lib-5.13.3"
+      sources."cspell-trie-lib-5.13.3"
       sources."dot-prop-5.3.0"
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
@@ -85289,7 +85435,7 @@ in
       sources."js-tokens-4.0.0"
       sources."json-parse-even-better-errors-2.3.1"
       sources."jsonfile-6.1.0"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."locate-path-6.0.0"
       sources."make-dir-3.1.0"
       sources."micromatch-4.0.4"
@@ -85308,7 +85454,7 @@ in
       sources."resolve-global-1.0.0"
       sources."rimraf-3.0.2"
       sources."semver-6.3.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."strip-ansi-6.0.1"
       sources."supports-color-7.2.0"
       sources."to-regex-range-5.0.1"
@@ -85393,7 +85539,7 @@ in
       sources."atomic-batcher-1.0.2"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."b4a-1.1.2"
+      sources."b4a-1.3.1"
       sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -85412,8 +85558,16 @@ in
           sources."debug-3.2.7"
         ];
       })
-      sources."blake2b-2.1.3"
-      sources."blake2b-wasm-1.1.7"
+      (sources."blake2b-2.1.4" // {
+        dependencies = [
+          sources."nanoassert-2.0.0"
+        ];
+      })
+      (sources."blake2b-wasm-2.4.0" // {
+        dependencies = [
+          sources."nanoassert-2.0.0"
+        ];
+      })
       sources."body-0.1.0"
       sources."boxen-1.3.0"
       sources."brace-expansion-1.1.11"
@@ -85498,7 +85652,7 @@ in
       sources."dat-secret-storage-4.0.1"
       sources."dat-storage-1.1.1"
       sources."dat-swarm-defaults-1.0.2"
-      (sources."debug-4.3.2" // {
+      (sources."debug-4.3.3" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -85658,7 +85812,7 @@ in
         ];
       })
       sources."is-obj-1.0.1"
-      sources."is-options-1.0.1"
+      sources."is-options-1.0.2"
       sources."is-path-inside-1.0.1"
       sources."is-plain-object-2.0.4"
       sources."is-redirect-1.0.0"
@@ -85673,10 +85827,10 @@ in
       sources."isstream-0.1.2"
       sources."iterators-0.1.0"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."k-bucket-3.3.1"
       (sources."k-rpc-4.3.1" // {
         dependencies = [
@@ -85727,7 +85881,7 @@ in
       })
       sources."multistream-2.1.1"
       sources."mute-stream-0.0.8"
-      sources."mutexify-1.3.1"
+      sources."mutexify-1.4.0"
       sources."nan-2.15.0"
       sources."nanoassert-1.1.0"
       sources."nanobus-4.5.0"
@@ -85792,7 +85946,7 @@ in
       sources."qs-6.5.2"
       sources."queue-tick-1.0.0"
       sources."random-access-file-2.2.0"
-      sources."random-access-memory-3.1.3"
+      sources."random-access-memory-3.1.4"
       sources."random-access-storage-1.4.2"
       sources."randombytes-2.1.0"
       sources."range-parser-1.2.1"
@@ -85830,7 +85984,7 @@ in
       })
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       (sources."signed-varint-2.0.1" // {
         dependencies = [
           sources."varint-5.0.2"
@@ -85839,7 +85993,7 @@ in
       sources."simple-concat-1.0.1"
       sources."simple-get-3.1.0"
       sources."simple-sha1-2.1.2"
-      (sources."siphash24-1.2.0" // {
+      (sources."siphash24-1.3.0" // {
         dependencies = [
           sources."nanoassert-2.0.0"
         ];
@@ -86009,7 +86163,7 @@ in
       sources."write-file-atomic-2.4.3"
       sources."xdg-basedir-3.0.0"
       sources."xhr-2.6.0"
-      sources."xsalsa20-1.1.0"
+      sources."xsalsa20-1.2.0"
       sources."xtend-4.0.2"
       sources."yallist-2.1.2"
     ];
@@ -86044,71 +86198,72 @@ in
   "deltachat-desktop-../../applications/networking/instant-messengers/deltachat-desktop" = nodeEnv.buildNodePackage {
     name = "deltachat-desktop";
     packageName = "deltachat-desktop";
-    version = "1.22.2";
+    version = "1.26.0";
     src = ../../applications/networking/instant-messengers/deltachat-desktop;
     dependencies = [
       sources."@babel/code-frame-7.16.0"
-      sources."@babel/compat-data-7.16.0"
-      (sources."@babel/core-7.16.0" // {
+      sources."@babel/compat-data-7.16.4"
+      (sources."@babel/core-7.16.5" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.16.0" // {
+      (sources."@babel/generator-7.16.5" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
       sources."@babel/helper-annotate-as-pure-7.16.0"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.0"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.5"
       sources."@babel/helper-compilation-targets-7.16.3"
-      sources."@babel/helper-create-class-features-plugin-7.16.0"
+      sources."@babel/helper-create-class-features-plugin-7.16.5"
       sources."@babel/helper-create-regexp-features-plugin-7.16.0"
-      sources."@babel/helper-define-polyfill-provider-0.2.4"
+      sources."@babel/helper-define-polyfill-provider-0.3.0"
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-explode-assignable-expression-7.16.0"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
+      sources."@babel/helper-member-expression-to-functions-7.16.5"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
       sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-remap-async-to-generator-7.16.0"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-plugin-utils-7.16.5"
+      sources."@babel/helper-remap-async-to-generator-7.16.5"
+      sources."@babel/helper-replace-supers-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helper-wrap-function-7.16.0"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helper-wrap-function-7.16.5"
+      sources."@babel/helpers-7.16.5"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.3"
+      sources."@babel/parser-7.16.6"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0"
-      sources."@babel/plugin-proposal-async-generator-functions-7.16.0"
-      sources."@babel/plugin-proposal-class-properties-7.16.0"
-      sources."@babel/plugin-proposal-class-static-block-7.16.0"
-      sources."@babel/plugin-proposal-dynamic-import-7.16.0"
-      sources."@babel/plugin-proposal-export-namespace-from-7.16.0"
-      sources."@babel/plugin-proposal-json-strings-7.16.0"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.0"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.0"
-      sources."@babel/plugin-proposal-numeric-separator-7.16.0"
-      sources."@babel/plugin-proposal-object-rest-spread-7.16.0"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.16.0"
-      sources."@babel/plugin-proposal-optional-chaining-7.16.0"
-      sources."@babel/plugin-proposal-private-methods-7.16.0"
-      sources."@babel/plugin-proposal-private-property-in-object-7.16.0"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.16.0"
+      sources."@babel/plugin-proposal-async-generator-functions-7.16.5"
+      sources."@babel/plugin-proposal-class-properties-7.16.5"
+      sources."@babel/plugin-proposal-class-static-block-7.16.5"
+      sources."@babel/plugin-proposal-dynamic-import-7.16.5"
+      sources."@babel/plugin-proposal-export-namespace-from-7.16.5"
+      sources."@babel/plugin-proposal-json-strings-7.16.5"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.5"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.5"
+      sources."@babel/plugin-proposal-numeric-separator-7.16.5"
+      sources."@babel/plugin-proposal-object-rest-spread-7.16.5"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.16.5"
+      sources."@babel/plugin-proposal-optional-chaining-7.16.5"
+      sources."@babel/plugin-proposal-private-methods-7.16.5"
+      sources."@babel/plugin-proposal-private-property-in-object-7.16.5"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.16.5"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
       sources."@babel/plugin-syntax-class-static-block-7.14.5"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
       sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
       sources."@babel/plugin-syntax-json-strings-7.8.3"
-      sources."@babel/plugin-syntax-jsx-7.16.0"
+      sources."@babel/plugin-syntax-jsx-7.16.5"
       sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
       sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
       sources."@babel/plugin-syntax-numeric-separator-7.10.4"
@@ -86117,52 +86272,53 @@ in
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-private-property-in-object-7.14.5"
       sources."@babel/plugin-syntax-top-level-await-7.14.5"
-      sources."@babel/plugin-transform-arrow-functions-7.16.0"
-      sources."@babel/plugin-transform-async-to-generator-7.16.0"
-      sources."@babel/plugin-transform-block-scoped-functions-7.16.0"
-      sources."@babel/plugin-transform-block-scoping-7.16.0"
-      sources."@babel/plugin-transform-classes-7.16.0"
-      sources."@babel/plugin-transform-computed-properties-7.16.0"
-      sources."@babel/plugin-transform-destructuring-7.16.0"
-      sources."@babel/plugin-transform-dotall-regex-7.16.0"
-      sources."@babel/plugin-transform-duplicate-keys-7.16.0"
-      sources."@babel/plugin-transform-exponentiation-operator-7.16.0"
-      sources."@babel/plugin-transform-for-of-7.16.0"
-      sources."@babel/plugin-transform-function-name-7.16.0"
-      sources."@babel/plugin-transform-literals-7.16.0"
-      sources."@babel/plugin-transform-member-expression-literals-7.16.0"
-      sources."@babel/plugin-transform-modules-amd-7.16.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.16.0"
-      sources."@babel/plugin-transform-modules-systemjs-7.16.0"
-      sources."@babel/plugin-transform-modules-umd-7.16.0"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.0"
-      sources."@babel/plugin-transform-new-target-7.16.0"
-      sources."@babel/plugin-transform-object-super-7.16.0"
-      sources."@babel/plugin-transform-parameters-7.16.3"
-      sources."@babel/plugin-transform-property-literals-7.16.0"
-      sources."@babel/plugin-transform-react-display-name-7.16.0"
-      sources."@babel/plugin-transform-react-jsx-7.16.0"
-      sources."@babel/plugin-transform-react-jsx-development-7.16.0"
-      sources."@babel/plugin-transform-react-pure-annotations-7.16.0"
-      sources."@babel/plugin-transform-regenerator-7.16.0"
-      sources."@babel/plugin-transform-reserved-words-7.16.0"
-      sources."@babel/plugin-transform-shorthand-properties-7.16.0"
-      sources."@babel/plugin-transform-spread-7.16.0"
-      sources."@babel/plugin-transform-sticky-regex-7.16.0"
-      sources."@babel/plugin-transform-template-literals-7.16.0"
-      sources."@babel/plugin-transform-typeof-symbol-7.16.0"
-      sources."@babel/plugin-transform-unicode-escapes-7.16.0"
-      sources."@babel/plugin-transform-unicode-regex-7.16.0"
-      sources."@babel/preset-env-7.16.0"
+      sources."@babel/plugin-transform-arrow-functions-7.16.5"
+      sources."@babel/plugin-transform-async-to-generator-7.16.5"
+      sources."@babel/plugin-transform-block-scoped-functions-7.16.5"
+      sources."@babel/plugin-transform-block-scoping-7.16.5"
+      sources."@babel/plugin-transform-classes-7.16.5"
+      sources."@babel/plugin-transform-computed-properties-7.16.5"
+      sources."@babel/plugin-transform-destructuring-7.16.5"
+      sources."@babel/plugin-transform-dotall-regex-7.16.5"
+      sources."@babel/plugin-transform-duplicate-keys-7.16.5"
+      sources."@babel/plugin-transform-exponentiation-operator-7.16.5"
+      sources."@babel/plugin-transform-for-of-7.16.5"
+      sources."@babel/plugin-transform-function-name-7.16.5"
+      sources."@babel/plugin-transform-literals-7.16.5"
+      sources."@babel/plugin-transform-member-expression-literals-7.16.5"
+      sources."@babel/plugin-transform-modules-amd-7.16.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.16.5"
+      sources."@babel/plugin-transform-modules-systemjs-7.16.5"
+      sources."@babel/plugin-transform-modules-umd-7.16.5"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.5"
+      sources."@babel/plugin-transform-new-target-7.16.5"
+      sources."@babel/plugin-transform-object-super-7.16.5"
+      sources."@babel/plugin-transform-parameters-7.16.5"
+      sources."@babel/plugin-transform-property-literals-7.16.5"
+      sources."@babel/plugin-transform-react-display-name-7.16.5"
+      sources."@babel/plugin-transform-react-jsx-7.16.5"
+      sources."@babel/plugin-transform-react-jsx-development-7.16.5"
+      sources."@babel/plugin-transform-react-pure-annotations-7.16.5"
+      sources."@babel/plugin-transform-regenerator-7.16.5"
+      sources."@babel/plugin-transform-reserved-words-7.16.5"
+      sources."@babel/plugin-transform-shorthand-properties-7.16.5"
+      sources."@babel/plugin-transform-spread-7.16.5"
+      sources."@babel/plugin-transform-sticky-regex-7.16.5"
+      sources."@babel/plugin-transform-template-literals-7.16.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.16.5"
+      sources."@babel/plugin-transform-unicode-escapes-7.16.5"
+      sources."@babel/plugin-transform-unicode-regex-7.16.5"
+      sources."@babel/preset-env-7.16.5"
       sources."@babel/preset-modules-0.1.5"
-      sources."@babel/preset-react-7.16.0"
-      sources."@babel/runtime-7.16.3"
+      sources."@babel/preset-react-7.16.5"
+      sources."@babel/runtime-7.16.5"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
-      sources."@blueprintjs/colors-4.0.0-beta.2"
-      sources."@blueprintjs/core-3.51.3"
+      sources."@blueprintjs/colors-4.0.0-beta.3"
+      sources."@blueprintjs/core-3.52.0"
       sources."@blueprintjs/icons-3.31.0"
+      sources."@deltachat/message_parser_wasm-0.1.0"
       sources."@electron/get-1.13.1"
       sources."@hypnosphi/create-react-context-0.3.1"
       sources."@mapbox/extent-0.4.0"
@@ -86186,7 +86342,7 @@ in
       sources."@types/geojson-7946.0.8"
       sources."@types/mapbox-gl-0.54.5"
       sources."@types/mime-types-2.1.1"
-      sources."@types/node-14.17.33"
+      sources."@types/node-14.18.0"
       sources."@types/node-fetch-2.5.12"
       sources."@types/prop-types-15.7.4"
       sources."@types/rc-1.2.0"
@@ -86216,9 +86372,9 @@ in
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."babel-plugin-dynamic-import-node-2.3.3"
-      sources."babel-plugin-polyfill-corejs2-0.2.3"
-      sources."babel-plugin-polyfill-corejs3-0.3.0"
-      sources."babel-plugin-polyfill-regenerator-0.2.3"
+      sources."babel-plugin-polyfill-corejs2-0.3.0"
+      sources."babel-plugin-polyfill-corejs3-0.4.0"
+      sources."babel-plugin-polyfill-regenerator-0.3.0"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -86232,7 +86388,7 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."buffer-crc32-0.2.13"
       sources."buffer-from-1.1.2"
       sources."cache-base-1.0.1"
@@ -86243,7 +86399,7 @@ in
         ];
       })
       sources."call-bind-1.0.2"
-      sources."caniuse-lite-1.0.30001280"
+      sources."caniuse-lite-1.0.30001287"
       sources."chalk-2.4.2"
       sources."chokidar-2.1.8"
       (sources."class-utils-0.3.6" // {
@@ -86284,7 +86440,7 @@ in
         ];
       })
       sources."copy-descriptor-0.1.1"
-      (sources."core-js-compat-3.19.1" // {
+      (sources."core-js-compat-3.20.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -86294,7 +86450,7 @@ in
       sources."csscolorparser-1.0.3"
       sources."csstype-3.0.10"
       sources."debounce-1.2.1"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decode-uri-component-0.2.0"
       sources."decompress-response-3.3.0"
       sources."deep-equal-1.1.1"
@@ -86303,14 +86459,14 @@ in
       sources."define-properties-1.1.3"
       sources."define-property-2.0.2"
       sources."delayed-stream-1.0.0"
-      sources."deltachat-node-1.60.0"
+      sources."deltachat-node-1.70.0"
       sources."detect-node-2.1.0"
       sources."dom-helpers-3.4.0"
       sources."dom4-2.1.6"
       sources."duplexer3-0.1.4"
       sources."earcut-2.2.3"
-      sources."electron-13.6.1"
-      sources."electron-to-chromium-1.3.899"
+      sources."electron-13.6.3"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-js-clean-4.0.0"
       sources."emoji-mart-3.0.1"
       sources."emoji-regex-9.2.2"
@@ -86319,6 +86475,7 @@ in
       sources."env-paths-2.2.1"
       sources."error-stack-parser-2.0.6"
       sources."es6-error-4.1.1"
+      sources."esbuild-0.12.29"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."esutils-2.0.3"
@@ -86361,7 +86518,7 @@ in
       })
       sources."fd-slicer-1.1.0"
       sources."file-uri-to-path-1.0.0"
-      sources."filesize-6.4.0"
+      sources."filesize-8.0.6"
       (sources."fill-range-4.0.0" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
@@ -86416,6 +86573,7 @@ in
       })
       sources."http-cache-semantics-4.1.0"
       sources."ieee754-1.2.1"
+      sources."immutable-4.0.0"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."is-accessor-descriptor-1.0.0"
@@ -86536,7 +86694,6 @@ in
       sources."proto-list-1.2.4"
       sources."protocol-buffers-schema-3.6.0"
       sources."pump-3.0.0"
-      sources."punycode-2.1.1"
       sources."qr.js-0.0.0"
       sources."querystringify-2.2.0"
       sources."quickselect-2.0.0"
@@ -86589,7 +86746,7 @@ in
       sources."rw-0.1.4"
       sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
-      (sources."sass-1.43.4" // {
+      (sources."sass-1.45.0" // {
         dependencies = [
           sources."anymatch-3.1.2"
           sources."binary-extensions-2.2.0"
@@ -86619,7 +86776,6 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."simple-markdown-0.7.3"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -86652,8 +86808,9 @@ in
         ];
       })
       sources."source-map-0.6.1"
+      sources."source-map-js-1.0.1"
       sources."source-map-resolve-0.5.3"
-      sources."source-map-support-0.5.20"
+      sources."source-map-support-0.5.21"
       sources."source-map-url-0.4.1"
       sources."split-string-3.1.0"
       sources."split2-3.2.2"
@@ -86701,7 +86858,7 @@ in
       sources."type-fest-0.3.1"
       sources."typed-styles-0.0.7"
       sources."typedarray-0.0.6"
-      sources."typescript-3.9.10"
+      sources."typescript-4.5.4"
       sources."unicode-canonical-property-names-ecmascript-2.0.0"
       sources."unicode-match-property-ecmascript-2.0.0"
       sources."unicode-match-property-value-ecmascript-2.0.0"
@@ -86767,10 +86924,10 @@ in
   diagnostic-languageserver = nodeEnv.buildNodePackage {
     name = "diagnostic-languageserver";
     packageName = "diagnostic-languageserver";
-    version = "1.13.0";
+    version = "1.14.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/diagnostic-languageserver/-/diagnostic-languageserver-1.13.0.tgz";
-      sha512 = "ye07E+B6IpwUx3eBvZ9Ug0dVloNDzefTWlxkYnP+kB2nB17tjU07wiWzy2FamWIXIlL6THBtY74ZmvoVQ3Bn7w==";
+      url = "https://registry.npmjs.org/diagnostic-languageserver/-/diagnostic-languageserver-1.14.2.tgz";
+      sha512 = "nlDDcfcey3FT1n9uaOhqyCvhVVWBd4kcdTrgF8LaHQXX3QWbfnLgrIg57wt3YYoHolpD+yWKyt9nlVbHVDxxgQ==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.5"
@@ -86835,7 +86992,7 @@ in
       sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-6.1.1"
       sources."vscode-languageserver-protocol-3.16.0"
-      sources."vscode-languageserver-textdocument-1.0.2"
+      sources."vscode-languageserver-textdocument-1.0.3"
       sources."vscode-languageserver-types-3.16.0"
       sources."vscode-uri-2.1.2"
       sources."wrappy-1.0.2"
@@ -86853,23 +87010,23 @@ in
   dockerfile-language-server-nodejs = nodeEnv.buildNodePackage {
     name = "dockerfile-language-server-nodejs";
     packageName = "dockerfile-language-server-nodejs";
-    version = "0.7.2";
+    version = "0.7.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/dockerfile-language-server-nodejs/-/dockerfile-language-server-nodejs-0.7.2.tgz";
-      sha512 = "TrUvQ+Mq/R4uODRPHNsDKwFXucGsJBm4cObKENYtwNkXCeT7QmrNBc9d8lQQM0B+Gsc7mDASWKn1Jn+1FwVtIw==";
+      url = "https://registry.npmjs.org/dockerfile-language-server-nodejs/-/dockerfile-language-server-nodejs-0.7.3.tgz";
+      sha512 = "+fY8JCuoL3T698EZKd78SF1RrGBGYZVRzRDLrWHaum3qx5gW8uMDX41rtaehX7/ZNH/WSuwyFtWh3/JWmjEAKw==";
     };
     dependencies = [
-      sources."dockerfile-ast-0.3.4"
-      sources."dockerfile-language-service-0.7.3"
-      sources."dockerfile-utils-0.9.2"
-      sources."vscode-jsonrpc-8.0.0-next.3"
-      sources."vscode-languageserver-8.0.0-next.3"
-      (sources."vscode-languageserver-protocol-3.17.0-next.9" // {
+      sources."dockerfile-ast-0.4.1"
+      sources."dockerfile-language-service-0.7.4"
+      sources."dockerfile-utils-0.9.3"
+      sources."vscode-jsonrpc-8.0.0-next.4"
+      sources."vscode-languageserver-8.0.0-next.5"
+      (sources."vscode-languageserver-protocol-3.17.0-next.11" // {
         dependencies = [
-          sources."vscode-languageserver-types-3.17.0-next.4"
+          sources."vscode-languageserver-types-3.17.0-next.5"
         ];
       })
-      sources."vscode-languageserver-textdocument-1.0.2"
+      sources."vscode-languageserver-textdocument-1.0.3"
       sources."vscode-languageserver-types-3.17.0-next.3"
     ];
     buildInputs = globalBuildInputs;
@@ -86885,15 +87042,15 @@ in
   elasticdump = nodeEnv.buildNodePackage {
     name = "elasticdump";
     packageName = "elasticdump";
-    version = "6.77.0";
+    version = "6.79.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.77.0.tgz";
-      sha512 = "BSll/YysODUv2VI9tdZyryWJnWWCdUox16PzfT2aHnvHD1bkJyvM55b5mOQu3gMiSBam66ZmcqBWavZi3K3AbA==";
+      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.79.0.tgz";
+      sha512 = "uX/B6wY8rKDo+ZxPok19FheN9QNrdG3BcIEGOZr03TtzENf7bdjnkzrvTdfjp5lRKJMX9CIpGXBkZ6tQM9fVEg==";
     };
     dependencies = [
       sources."@fast-csv/format-4.3.5"
       sources."@fast-csv/parse-4.3.6"
-      sources."@types/node-14.17.33"
+      sources."@types/node-14.18.0"
       sources."JSONStream-1.3.5"
       sources."ajv-6.12.6"
       sources."asn1-0.2.6"
@@ -86944,11 +87101,11 @@ in
       sources."isstream-0.1.2"
       sources."jmespath-0.15.0"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonparse-1.3.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."lodash-4.17.21"
       sources."lodash.escaperegexp-4.1.2"
       sources."lodash.groupby-4.6.0"
@@ -87086,7 +87243,7 @@ in
       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.0.0"
+      sources."@npmcli/fs-1.1.0"
       sources."@npmcli/move-file-1.1.2"
       sources."@sindresorhus/is-4.2.0"
       sources."@szmarczak/http-timer-4.0.6"
@@ -87096,7 +87253,7 @@ in
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/keyv-3.1.3"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/responselike-1.0.0"
       sources."@types/yauzl-2.9.2"
       sources."abbrev-1.1.1"
@@ -87111,14 +87268,8 @@ in
       })
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
-      sources."aproba-1.2.0"
-      (sources."are-we-there-yet-1.1.7" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."aproba-2.0.0"
+      sources."are-we-there-yet-2.0.0"
       sources."array-find-index-1.0.2"
       (sources."asar-3.1.0" // {
         dependencies = [
@@ -87160,17 +87311,13 @@ in
       sources."cli-cursor-3.1.0"
       sources."cli-spinners-2.6.1"
       sources."cli-width-3.0.0"
-      (sources."cliui-7.0.4" // {
-        dependencies = [
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.3"
-        ];
-      })
+      sources."cliui-7.0.4"
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
       sources."code-point-at-1.1.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
+      sources."color-support-1.1.3"
       sources."colors-1.4.0"
       sources."combined-stream-1.0.8"
       sources."commander-4.1.1"
@@ -87187,7 +87334,7 @@ in
       })
       sources."currently-unhandled-0.4.1"
       sources."dashdash-1.14.1"
-      (sources."debug-4.3.2" // {
+      (sources."debug-4.3.3" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -87298,12 +87445,7 @@ in
           sources."universalify-0.1.2"
         ];
       })
-      (sources."gauge-2.7.4" // {
-        dependencies = [
-          sources."ansi-regex-2.1.1"
-          sources."strip-ansi-3.0.1"
-        ];
-      })
+      sources."gauge-4.0.0"
       sources."get-caller-file-2.0.5"
       sources."get-installed-path-2.1.1"
       (sources."get-package-info-1.0.0" // {
@@ -87325,7 +87467,7 @@ in
       })
       sources."global-tunnel-ng-2.7.1"
       sources."globalthis-1.0.2"
-      sources."got-11.8.2"
+      sources."got-11.8.3"
       sources."graceful-fs-4.2.8"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
@@ -87348,19 +87490,14 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
-      (sources."inquirer-8.2.0" // {
-        dependencies = [
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.3"
-        ];
-      })
+      sources."inquirer-8.2.0"
       sources."ip-1.1.5"
       sources."is-arrayish-0.2.1"
       sources."is-core-module-2.8.0"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-finite-1.1.0"
-      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-interactive-1.0.0"
       sources."is-lambda-1.0.1"
@@ -87371,17 +87508,17 @@ in
       sources."is-utf8-0.2.1"
       sources."is-windows-1.0.2"
       sources."is-wsl-2.2.0"
-      sources."isarray-1.0.0"
+      sources."isarray-0.0.1"
       sources."isbinaryfile-3.0.3"
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-6.1.0"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."junk-3.1.0"
       sources."keyv-4.0.4"
       sources."load-json-file-2.0.0"
@@ -87421,7 +87558,7 @@ in
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-3.1.5"
+      sources."minipass-3.1.6"
       sources."minipass-collect-1.0.2"
       sources."minipass-fetch-1.4.1"
       sources."minipass-flush-1.0.5"
@@ -87437,7 +87574,7 @@ in
       sources."node-addon-api-3.2.1"
       sources."node-api-version-0.1.4"
       sources."node-fetch-2.6.6"
-      sources."node-gyp-8.4.0"
+      sources."node-gyp-8.4.1"
       sources."node-gyp-build-4.3.0"
       sources."nopt-5.0.0"
       (sources."normalize-package-data-2.5.0" // {
@@ -87456,7 +87593,7 @@ in
           sources."path-key-2.0.1"
         ];
       })
-      sources."npmlog-4.1.2"
+      sources."npmlog-6.0.0"
       (sources."nugget-2.0.1" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -87508,7 +87645,6 @@ in
       sources."prepend-http-2.0.0"
       sources."pretty-bytes-1.0.4"
       sources."pretty-ms-7.0.1"
-      sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
       sources."progress-stream-1.2.0"
       sources."promise-inflight-1.0.1"
@@ -87557,13 +87693,20 @@ in
       sources."set-blocking-2.0.0"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."signal-exit-3.0.5"
-      sources."single-line-log-1.1.2"
+      sources."signal-exit-3.0.6"
+      (sources."single-line-log-1.1.2" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."is-fullwidth-code-point-1.0.0"
+          sources."string-width-1.0.2"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.1"
-      sources."socks-proxy-agent-6.1.0"
+      sources."socks-proxy-agent-6.1.1"
       sources."source-map-0.6.1"
-      sources."source-map-support-0.5.20"
+      sources."source-map-support-0.5.21"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
@@ -87572,12 +87715,7 @@ in
       sources."sprintf-js-1.1.2"
       sources."sshpk-1.16.1"
       sources."ssri-8.0.1"
-      (sources."string-width-1.0.2" // {
-        dependencies = [
-          sources."ansi-regex-2.1.1"
-          sources."strip-ansi-3.0.1"
-        ];
-      })
+      sources."string-width-4.2.3"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.1"
       sources."strip-bom-3.0.0"
@@ -87592,7 +87730,6 @@ in
       sources."through-2.3.8"
       (sources."through2-0.2.3" // {
         dependencies = [
-          sources."isarray-0.0.1"
           sources."readable-stream-1.1.14"
           sources."string_decoder-0.10.31"
         ];
@@ -87628,21 +87765,15 @@ in
       sources."whatwg-url-5.0.0"
       sources."which-2.0.2"
       sources."wide-align-1.1.5"
-      (sources."wrap-ansi-7.0.0" // {
-        dependencies = [
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.3"
-        ];
-      })
+      sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
       sources."xmlbuilder-9.0.7"
       sources."xtend-2.1.2"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
-      (sources."yargs-17.2.1" // {
+      (sources."yargs-17.3.0" // {
         dependencies = [
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.3"
+          sources."yargs-parser-21.0.0"
         ];
       })
       sources."yargs-parser-20.2.9"
@@ -87697,43 +87828,41 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.16.0"
-      sources."@babel/compat-data-7.16.0"
-      (sources."@babel/core-7.16.0" // {
+      sources."@babel/compat-data-7.16.4"
+      (sources."@babel/core-7.16.5" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/generator-7.16.0"
+      sources."@babel/generator-7.16.5"
       sources."@babel/helper-annotate-as-pure-7.16.0"
       (sources."@babel/helper-compilation-targets-7.16.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
-      sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
+      sources."@babel/helper-plugin-utils-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helpers-7.16.5"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.3"
-      sources."@babel/plugin-proposal-object-rest-spread-7.16.0"
-      sources."@babel/plugin-syntax-jsx-7.16.0"
+      sources."@babel/parser-7.16.6"
+      sources."@babel/plugin-proposal-object-rest-spread-7.16.5"
+      sources."@babel/plugin-syntax-jsx-7.16.5"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
-      sources."@babel/plugin-transform-destructuring-7.16.0"
-      sources."@babel/plugin-transform-parameters-7.16.3"
-      sources."@babel/plugin-transform-react-jsx-7.16.0"
+      sources."@babel/plugin-transform-destructuring-7.16.5"
+      sources."@babel/plugin-transform-parameters-7.16.5"
+      sources."@babel/plugin-transform-react-jsx-7.16.5"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@types/minimist-1.2.2"
       sources."@types/normalize-package-data-2.4.1"
@@ -87753,13 +87882,13 @@ in
       sources."auto-bind-4.0.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."caller-callsite-2.0.0"
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001280"
+      sources."caniuse-lite-1.0.30001287"
       sources."chalk-2.4.2"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
@@ -87780,7 +87909,7 @@ in
       sources."convert-to-spaces-1.0.2"
       sources."cross-spawn-6.0.5"
       sources."debounce-fn-4.0.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -87788,7 +87917,7 @@ in
         ];
       })
       sources."dot-prop-5.3.0"
-      sources."electron-to-chromium-1.3.899"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-regex-8.0.0"
       sources."emojilib-2.4.0"
       sources."end-of-stream-1.4.4"
@@ -87853,7 +87982,7 @@ in
       sources."json-schema-typed-7.0.3"
       sources."json5-2.2.0"
       sources."kind-of-6.0.3"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."locate-path-3.0.0"
       sources."lodash-4.17.21"
       sources."loose-envify-1.4.0"
@@ -87914,7 +88043,7 @@ in
       sources."punycode-2.1.1"
       sources."quick-lru-4.0.1"
       sources."react-16.14.0"
-      sources."react-devtools-core-4.21.0"
+      sources."react-devtools-core-4.22.1"
       sources."react-is-16.13.1"
       sources."react-reconciler-0.26.2"
       (sources."read-pkg-5.2.0" // {
@@ -87942,7 +88071,7 @@ in
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."shell-quote-1.7.3"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."skin-tone-1.0.0"
       (sources."slice-ansi-3.0.0" // {
         dependencies = [
@@ -87982,7 +88111,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.5.5"
+      sources."ws-7.5.6"
       sources."yallist-4.0.0"
       sources."yargs-parser-18.1.3"
       sources."yoga-layout-prebuilt-1.10.0"
@@ -88032,7 +88161,7 @@ in
       sources."@fluentui/date-time-utilities-7.9.1"
       sources."@fluentui/dom-utilities-1.1.2"
       sources."@fluentui/keyboard-key-0.2.17"
-      sources."@fluentui/react-7.179.2"
+      sources."@fluentui/react-7.180.2"
       sources."@fluentui/react-focus-7.18.1"
       sources."@fluentui/react-window-provider-1.0.2"
       sources."@fluentui/theme-1.7.4"
@@ -88047,11 +88176,11 @@ in
           sources."normalize-path-2.1.1"
         ];
       })
-      sources."@microsoft/load-themed-styles-1.10.230"
+      sources."@microsoft/load-themed-styles-1.10.240"
       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.0.0"
+      sources."@npmcli/fs-1.1.0"
       (sources."@npmcli/move-file-1.1.2" // {
         dependencies = [
           sources."rimraf-3.0.2"
@@ -88066,7 +88195,7 @@ in
       sources."@types/connect-3.4.35"
       sources."@types/engine.io-3.1.7"
       sources."@types/express-4.17.8"
-      sources."@types/express-serve-static-core-4.17.25"
+      sources."@types/express-serve-static-core-4.17.26"
       sources."@types/fancy-log-1.3.0"
       sources."@types/glob-7.2.0"
       sources."@types/hls.js-0.13.1"
@@ -88286,7 +88415,7 @@ in
         dependencies = [
           sources."chownr-2.0.0"
           sources."fs-minipass-2.1.0"
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
           sources."minizlib-2.1.2"
           sources."p-map-4.0.0"
           sources."rimraf-3.0.2"
@@ -88761,6 +88890,7 @@ in
       sources."iferr-0.1.5"
       sources."ignore-5.1.9"
       sources."ignore-walk-3.0.4"
+      sources."immutable-4.0.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
       sources."indexof-0.0.1"
@@ -88815,7 +88945,7 @@ in
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
       sources."json-parse-better-errors-1.0.2"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."json-stringify-safe-5.0.1"
@@ -88825,7 +88955,7 @@ in
           sources."universalify-2.0.0"
         ];
       })
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."just-debounce-1.1.0"
       sources."keyv-3.1.0"
       sources."kind-of-6.0.3"
@@ -88852,7 +88982,7 @@ in
       sources."lodash.some-4.6.0"
       (sources."log4js-6.3.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -88924,17 +89054,17 @@ in
       })
       (sources."minipass-collect-1.0.2" // {
         dependencies = [
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
         ];
       })
       (sources."minipass-flush-1.0.5" // {
         dependencies = [
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
         ];
       })
       (sources."minipass-pipeline-1.2.4" // {
         dependencies = [
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
         ];
       })
       sources."minizlib-1.3.3"
@@ -89075,7 +89205,7 @@ in
       sources."object.map-1.0.1"
       sources."object.pick-1.3.0"
       sources."object.reduce-1.0.1"
-      sources."office-ui-fabric-react-7.179.2"
+      sources."office-ui-fabric-react-7.180.2"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
@@ -89302,7 +89432,7 @@ in
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      (sources."sass-1.43.4" // {
+      (sources."sass-1.45.0" // {
         dependencies = [
           sources."anymatch-3.1.2"
           sources."binary-extensions-2.2.0"
@@ -89334,7 +89464,7 @@ in
       sources."setprototypeof-1.1.1"
       sources."sha.js-2.4.11"
       sources."sift-7.0.1"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-3.0.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
@@ -89396,8 +89526,9 @@ in
       })
       sources."source-list-map-2.0.1"
       sources."source-map-0.6.1"
+      sources."source-map-js-1.0.1"
       sources."source-map-resolve-0.5.3"
-      sources."source-map-support-0.5.20"
+      sources."source-map-support-0.5.21"
       sources."source-map-url-0.4.1"
       sources."sparkles-1.0.1"
       sources."spdx-correct-3.1.1"
@@ -89412,7 +89543,7 @@ in
       sources."sshpk-1.16.1"
       (sources."ssri-8.0.1" // {
         dependencies = [
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
         ];
       })
       sources."stack-trace-0.0.10"
@@ -89452,7 +89583,7 @@ in
       (sources."streamroller-2.2.4" // {
         dependencies = [
           sources."date-format-2.1.0"
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."fs-extra-8.1.0"
           sources."jsonfile-4.0.0"
           sources."ms-2.1.2"
@@ -89677,7 +89808,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.5.5"
+      sources."ws-7.5.6"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."xtend-4.0.2"
       sources."y18n-3.2.2"
@@ -89723,16 +89854,16 @@ in
   eslint = nodeEnv.buildNodePackage {
     name = "eslint";
     packageName = "eslint";
-    version = "8.2.0";
+    version = "8.4.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint/-/eslint-8.2.0.tgz";
-      sha512 = "erw7XmM+CLxTOickrimJ1SiF55jiNlVSp2qqm0NuBWPtHYQCegD5ZMaW0c3i5ytPqL+SSLaCxdvQXFPLJn+ABw==";
+      url = "https://registry.npmjs.org/eslint/-/eslint-8.4.1.tgz";
+      sha512 = "TxU/p7LB1KxQ6+7aztTnO7K0i+h0tDi81YRY9VzB6Id71kNz+fFYnf5HD5UOQmxkzcoa0TlVZf9dpMtUv0GpWg==";
     };
     dependencies = [
-      sources."@eslint/eslintrc-1.0.4"
-      sources."@humanwhocodes/config-array-0.6.0"
+      sources."@eslint/eslintrc-1.0.5"
+      sources."@humanwhocodes/config-array-0.9.2"
       sources."@humanwhocodes/object-schema-1.2.1"
-      sources."acorn-8.5.0"
+      sources."acorn-8.6.0"
       sources."acorn-jsx-5.3.2"
       sources."ajv-6.12.6"
       sources."ansi-colors-4.1.1"
@@ -89747,19 +89878,19 @@ in
       sources."color-name-1.1.4"
       sources."concat-map-0.0.1"
       sources."cross-spawn-7.0.3"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."deep-is-0.1.4"
       sources."doctrine-3.0.0"
       sources."enquirer-2.3.6"
       sources."escape-string-regexp-4.0.0"
-      sources."eslint-scope-6.0.0"
+      sources."eslint-scope-7.1.0"
       (sources."eslint-utils-3.0.0" // {
         dependencies = [
           sources."eslint-visitor-keys-2.1.0"
         ];
       })
       sources."eslint-visitor-keys-3.1.0"
-      sources."espree-9.0.0"
+      sources."espree-9.2.0"
       sources."esquery-1.4.0"
       sources."esrecurse-4.3.0"
       sources."estraverse-5.3.0"
@@ -89833,10 +89964,10 @@ in
   eslint_d = nodeEnv.buildNodePackage {
     name = "eslint_d";
     packageName = "eslint_d";
-    version = "11.1.0";
+    version = "11.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint_d/-/eslint_d-11.1.0.tgz";
-      sha512 = "uhrQhFPG7L/81j90+QKaDImDJriqCdPY4ZcN9exFs9sdeF28Cdv/vD2XuRhjD5FxVbA/nNpFL37QsTSQwtjdjA==";
+      url = "https://registry.npmjs.org/eslint_d/-/eslint_d-11.1.1.tgz";
+      sha512 = "PaNWblwIa10KZUt9EObGBzrsaxB+CPtk5d99sTveXmAtQrPSmrntKpWqxN/Mwot0qnI5gCllzkPZi6tO710KUA==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.11"
@@ -89876,7 +90007,7 @@ in
       sources."concat-map-0.0.1"
       sources."core_d-3.2.0"
       sources."cross-spawn-7.0.3"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."deep-is-0.1.4"
       sources."doctrine-3.0.0"
       sources."emoji-regex-8.0.0"
@@ -89968,9 +90099,9 @@ in
       sources."strip-ansi-6.0.1"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-8.1.1"
-      (sources."table-6.7.3" // {
+      (sources."table-6.7.5" // {
         dependencies = [
-          sources."ajv-8.8.0"
+          sources."ajv-8.8.2"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -89997,10 +90128,10 @@ in
   esy = nodeEnv.buildNodePackage {
     name = "esy";
     packageName = "esy";
-    version = "0.6.11";
+    version = "0.6.12";
     src = fetchurl {
-      url = "https://registry.npmjs.org/esy/-/esy-0.6.11.tgz";
-      sha512 = "LyrQWS/c7FYwjmgSlmYcj7w7as40iVuF6aCSHKMAZq1xgmdpjorQ7OEqg35ZUf8+xpUgKnDx4HrA3scdnfRTnA==";
+      url = "https://registry.npmjs.org/esy/-/esy-0.6.12.tgz";
+      sha512 = "EJAbVSOA+KRAK86ZY3tSZUpbh9cYaUxIITycXFJp9yuH+XAuLrCSdTJsH+wvQniRrzAgUBJ6B2vYC2hFB09lTQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -90014,10 +90145,10 @@ in
   expo-cli = nodeEnv.buildNodePackage {
     name = "expo-cli";
     packageName = "expo-cli";
-    version = "4.13.0";
+    version = "5.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/expo-cli/-/expo-cli-4.13.0.tgz";
-      sha512 = "C7dfk2yleC7mdOoo9KzphfYz7F+I881VLb8UVgKCqGokwEyxhceKZCImX3D4zsR7bsKJEyjjEvx1XNIp4LV+Ew==";
+      url = "https://registry.npmjs.org/expo-cli/-/expo-cli-5.0.1.tgz";
+      sha512 = "jGGiwb8QUgs7k5d8B2XXoi5hRUtt2D729FR28KkMjAAbnN6egk/G3tWxumKHelz3CO4Kov++qToTbOExkR9u7Q==";
     };
     dependencies = [
       sources."@babel/code-frame-7.10.4"
@@ -90027,32 +90158,30 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."@babel/generator-7.16.0"
+      sources."@babel/generator-7.16.5"
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
-      sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helpers-7.16.5"
       (sources."@babel/highlight-7.16.0" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.16.3"
+      sources."@babel/parser-7.16.6"
       sources."@babel/runtime-7.9.0"
       (sources."@babel/template-7.16.0" // {
         dependencies = [
           sources."@babel/code-frame-7.16.0"
         ];
       })
-      (sources."@babel/traverse-7.16.3" // {
+      (sources."@babel/traverse-7.16.5" // {
         dependencies = [
           sources."@babel/code-frame-7.16.0"
         ];
@@ -90060,15 +90189,15 @@ in
       sources."@babel/types-7.16.0"
       sources."@expo/apple-utils-0.0.0-alpha.26"
       sources."@expo/bunyan-4.0.0"
-      sources."@expo/config-6.0.7"
-      (sources."@expo/config-plugins-4.0.7" // {
+      sources."@expo/config-6.0.13"
+      (sources."@expo/config-plugins-4.0.13" // {
         dependencies = [
           sources."semver-7.3.5"
         ];
       })
       sources."@expo/config-types-43.0.1"
-      sources."@expo/dev-server-0.1.94"
-      sources."@expo/dev-tools-0.13.129"
+      sources."@expo/dev-server-0.1.100"
+      sources."@expo/dev-tools-0.13.136"
       (sources."@expo/devcert-1.0.0" // {
         dependencies = [
           sources."debug-3.2.7"
@@ -90076,32 +90205,31 @@ in
           sources."sudo-prompt-8.2.5"
         ];
       })
-      (sources."@expo/image-utils-0.3.17" // {
+      (sources."@expo/image-utils-0.3.18" // {
         dependencies = [
           sources."temp-dir-1.0.0"
           sources."tempy-0.3.0"
           sources."type-fest-0.3.1"
         ];
       })
-      sources."@expo/json-file-8.2.33"
-      sources."@expo/metro-config-0.3.0"
-      sources."@expo/osascript-2.0.30"
-      (sources."@expo/package-manager-0.0.47" // {
+      sources."@expo/json-file-8.2.34"
+      sources."@expo/metro-config-0.3.6"
+      sources."@expo/osascript-2.0.31"
+      (sources."@expo/package-manager-0.0.48" // {
         dependencies = [
           sources."npm-package-arg-7.0.0"
           sources."rimraf-3.0.2"
           sources."semver-5.7.1"
         ];
       })
-      (sources."@expo/plist-0.0.15" // {
+      (sources."@expo/plist-0.0.16" // {
         dependencies = [
           sources."xmlbuilder-14.0.0"
         ];
       })
-      sources."@expo/prebuild-config-3.0.7"
-      sources."@expo/results-1.0.0"
-      sources."@expo/rudder-sdk-node-1.1.0"
-      (sources."@expo/schemer-1.3.31" // {
+      sources."@expo/prebuild-config-3.0.13"
+      sources."@expo/rudder-sdk-node-1.1.1"
+      (sources."@expo/schemer-1.3.32" // {
         dependencies = [
           sources."ajv-5.5.2"
           sources."fast-deep-equal-1.1.0"
@@ -90110,12 +90238,12 @@ in
       })
       sources."@expo/sdk-runtime-versions-1.0.0"
       sources."@expo/spawn-async-1.5.0"
-      (sources."@expo/webpack-config-0.16.7" // {
+      (sources."@expo/webpack-config-0.16.13" // {
         dependencies = [
           sources."is-wsl-2.2.0"
         ];
       })
-      (sources."@expo/xcpretty-4.0.0" // {
+      (sources."@expo/xcpretty-4.1.0" // {
         dependencies = [
           sources."js-yaml-4.1.0"
         ];
@@ -90127,7 +90255,7 @@ in
       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.0.0" // {
+      (sources."@npmcli/fs-1.1.0" // {
         dependencies = [
           sources."semver-7.3.5"
         ];
@@ -90164,7 +90292,7 @@ in
       })
       sources."@react-native/normalize-color-2.0.0"
       sources."@segment/loosely-validate-event-2.0.0"
-      sources."@sideway/address-4.1.2"
+      sources."@sideway/address-4.1.3"
       sources."@sideway/formula-3.0.0"
       sources."@sideway/pinpoint-2.0.0"
       sources."@sindresorhus/is-4.2.0"
@@ -90180,7 +90308,7 @@ in
       sources."@types/json-schema-7.0.9"
       sources."@types/keyv-3.1.3"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/q-1.5.5"
       sources."@types/responselike-1.0.0"
       sources."@types/retry-0.12.1"
@@ -90305,11 +90433,11 @@ in
           sources."define-property-1.0.0"
         ];
       })
-      sources."base32.js-0.1.0"
       sources."base64-js-1.5.1"
       sources."base64url-3.0.1"
       sources."batch-0.6.1"
       sources."bcrypt-pbkdf-1.0.2"
+      sources."better-opn-3.0.1"
       sources."big-integer-1.6.51"
       sources."big.js-5.2.2"
       sources."binary-extensions-2.2.0"
@@ -90323,6 +90451,8 @@ in
           sources."http-errors-1.7.2"
           sources."inherits-2.0.3"
           sources."ms-2.0.0"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
       (sources."bonjour-3.5.0" // {
@@ -90352,7 +90482,11 @@ in
         ];
       })
       sources."browserify-zlib-0.2.0"
-      sources."browserslist-4.14.2"
+      (sources."browserslist-4.19.1" // {
+        dependencies = [
+          sources."picocolors-1.0.0"
+        ];
+      })
       sources."buffer-4.9.2"
       sources."buffer-from-1.1.2"
       sources."buffer-indexof-1.1.1"
@@ -90362,7 +90496,7 @@ in
       sources."bytes-3.0.0"
       (sources."cacache-15.3.0" // {
         dependencies = [
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
           sources."mkdirp-1.0.4"
           sources."rimraf-3.0.2"
         ];
@@ -90382,7 +90516,7 @@ in
       })
       sources."camelcase-6.2.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001280"
+      sources."caniuse-lite-1.0.30001287"
       sources."caseless-0.12.0"
       (sources."chalk-4.1.2" // {
         dependencies = [
@@ -90458,7 +90592,7 @@ in
       sources."color-3.2.1"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.6.0"
+      sources."color-string-1.9.0"
       sources."colors-1.4.0"
       sources."combined-stream-1.0.8"
       sources."command-exists-1.2.9"
@@ -90539,9 +90673,9 @@ in
           sources."semver-6.3.0"
         ];
       })
-      (sources."css-select-4.1.3" // {
+      (sources."css-select-4.2.0" // {
         dependencies = [
-          sources."domhandler-4.2.2"
+          sources."domhandler-4.3.0"
         ];
       })
       sources."css-select-base-adapter-0.1.1"
@@ -90569,7 +90703,7 @@ in
       sources."dag-map-1.0.2"
       sources."dashdash-1.14.1"
       sources."dateformat-3.0.3"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decache-4.4.0"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
@@ -90617,7 +90751,7 @@ in
       sources."dom-converter-0.2.0"
       (sources."dom-serializer-1.3.2" // {
         dependencies = [
-          sources."domhandler-4.2.2"
+          sources."domhandler-4.3.0"
         ];
       })
       sources."domain-browser-1.2.0"
@@ -90626,7 +90760,7 @@ in
       sources."domino-2.1.6"
       (sources."domutils-2.8.0" // {
         dependencies = [
-          sources."domhandler-4.2.2"
+          sources."domhandler-4.3.0"
         ];
       })
       (sources."dot-case-3.0.4" // {
@@ -90640,7 +90774,7 @@ in
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.899"
+      sources."electron-to-chromium-1.4.21"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -90714,7 +90848,13 @@ in
           sources."ms-2.0.0"
         ];
       })
-      (sources."expo-pwa-0.0.102" // {
+      (sources."expo-modules-autolinking-0.4.0" // {
+        dependencies = [
+          sources."commander-7.2.0"
+          sources."fs-extra-9.1.0"
+        ];
+      })
+      (sources."expo-pwa-0.0.108" // {
         dependencies = [
           sources."commander-2.20.0"
         ];
@@ -90775,7 +90915,7 @@ in
       sources."find-up-5.0.0"
       sources."find-yarn-workspace-root-2.0.0"
       sources."flush-write-stream-1.1.1"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
       (sources."fork-ts-checker-webpack-plugin-4.1.6" // {
@@ -90801,16 +90941,20 @@ in
           sources."to-regex-range-2.1.1"
         ];
       })
-      sources."form-data-2.5.1"
+      sources."form-data-2.3.3"
       sources."forwarded-0.2.0"
       sources."fragment-cache-0.2.1"
       sources."freeport-async-2.0.0"
       sources."fresh-0.5.2"
       sources."from2-2.3.0"
-      sources."fs-extra-9.0.0"
+      (sources."fs-extra-9.0.0" // {
+        dependencies = [
+          sources."universalify-1.0.0"
+        ];
+      })
       (sources."fs-minipass-2.1.0" // {
         dependencies = [
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
         ];
       })
       sources."fs-write-stream-atomic-1.0.10"
@@ -90839,8 +90983,8 @@ in
       sources."global-modules-2.0.0"
       sources."global-prefix-3.0.0"
       sources."globals-11.12.0"
-      sources."globby-11.0.1"
-      sources."got-11.8.2"
+      sources."globby-11.0.4"
+      sources."got-11.8.3"
       sources."graceful-fs-4.2.8"
       sources."graphql-0.13.2"
       (sources."graphql-tools-3.0.0" // {
@@ -90904,7 +91048,7 @@ in
       sources."htmlparser2-4.1.0"
       sources."http-cache-semantics-4.1.0"
       sources."http-deceiver-1.2.7"
-      sources."http-errors-1.7.3"
+      sources."http-errors-1.8.1"
       (sources."http-proxy-1.18.1" // {
         dependencies = [
           sources."eventemitter3-4.0.7"
@@ -90980,7 +91124,7 @@ in
         ];
       })
       sources."is-lambda-1.0.1"
-      sources."is-negative-zero-2.0.1"
+      sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
       sources."is-number-object-1.0.6"
       sources."is-obj-2.0.0"
@@ -91025,7 +91169,7 @@ in
       sources."is-symbol-1.0.4"
       sources."is-typedarray-1.0.0"
       sources."is-valid-path-0.1.1"
-      sources."is-weakref-1.0.1"
+      sources."is-weakref-1.0.2"
       sources."is-windows-1.0.2"
       sources."is-wsl-1.1.0"
       sources."isarray-1.0.0"
@@ -91040,7 +91184,7 @@ in
         ];
       })
       sources."jimp-compact-0.16.1"
-      sources."joi-17.4.2"
+      sources."joi-17.5.0"
       sources."join-component-1.1.0"
       sources."js-tokens-4.0.0"
       (sources."js-yaml-3.14.1" // {
@@ -91053,7 +91197,7 @@ in
       sources."json-buffer-3.0.1"
       sources."json-parse-better-errors-1.0.2"
       sources."json-parse-even-better-errors-2.3.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       (sources."json-schema-deref-sync-0.13.0" // {
         dependencies = [
           sources."clone-2.1.2"
@@ -91064,14 +91208,10 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."json3-3.3.3"
       sources."json5-1.0.1"
-      (sources."jsonfile-6.1.0" // {
-        dependencies = [
-          sources."universalify-2.0.0"
-        ];
-      })
+      sources."jsonfile-6.1.0"
       sources."jsonify-0.0.0"
       sources."jsonparse-1.3.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."keychain-1.3.0"
       sources."keyv-4.0.4"
       sources."killable-1.0.1"
@@ -91080,9 +91220,9 @@ in
       sources."last-call-webpack-plugin-3.0.0"
       sources."latest-version-5.1.0"
       sources."leven-3.1.0"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."loader-runner-2.4.0"
-      (sources."loader-utils-2.0.0" // {
+      (sources."loader-utils-2.0.2" // {
         dependencies = [
           sources."json5-2.2.0"
         ];
@@ -91099,7 +91239,7 @@ in
           sources."chalk-2.4.2"
         ];
       })
-      sources."loglevel-1.7.1"
+      sources."loglevel-1.8.0"
       (sources."lower-case-2.0.2" // {
         dependencies = [
           sources."tslib-2.3.1"
@@ -91114,13 +91254,12 @@ in
       })
       (sources."make-fetch-happen-9.1.0" // {
         dependencies = [
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
         ];
       })
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."md5-2.3.0"
-      sources."md5-file-5.0.0"
       sources."md5.js-1.3.5"
       sources."md5hex-1.0.0"
       sources."mdn-data-2.0.4"
@@ -91160,37 +91299,37 @@ in
       })
       (sources."minipass-collect-1.0.2" // {
         dependencies = [
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
         ];
       })
       (sources."minipass-fetch-1.4.1" // {
         dependencies = [
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
         ];
       })
       (sources."minipass-flush-1.0.5" // {
         dependencies = [
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
         ];
       })
       (sources."minipass-json-stream-1.0.1" // {
         dependencies = [
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
         ];
       })
       (sources."minipass-pipeline-1.2.4" // {
         dependencies = [
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
         ];
       })
       (sources."minipass-sized-1.0.3" // {
         dependencies = [
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
         ];
       })
       (sources."minizlib-2.1.2" // {
         dependencies = [
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
         ];
       })
       sources."mississippi-3.0.0"
@@ -91242,8 +91381,7 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."node-modules-regexp-1.0.0"
-      sources."node-releases-1.1.77"
+      sources."node-releases-2.0.1"
       sources."nopt-5.0.0"
       sources."normalize-path-3.0.0"
       sources."normalize-url-6.1.0"
@@ -91267,7 +91405,7 @@ in
       (sources."npm-registry-fetch-11.0.0" // {
         dependencies = [
           sources."hosted-git-info-4.0.2"
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
           sources."npm-package-arg-8.1.5"
           sources."semver-7.3.5"
         ];
@@ -91292,7 +91430,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
@@ -91368,7 +91506,7 @@ in
       (sources."pacote-11.3.5" // {
         dependencies = [
           sources."hosted-git-info-4.0.2"
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
           sources."mkdirp-1.0.4"
           sources."npm-package-arg-8.1.5"
           sources."rimraf-3.0.2"
@@ -91414,7 +91552,7 @@ in
       sources."pify-4.0.1"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
-      sources."pirates-4.0.1"
+      sources."pirates-4.0.4"
       (sources."pkg-dir-3.0.0" // {
         dependencies = [
           sources."find-up-3.0.0"
@@ -91551,14 +91689,14 @@ in
         ];
       })
       sources."postcss-safe-parser-4.0.2"
-      sources."postcss-selector-parser-6.0.6"
+      sources."postcss-selector-parser-6.0.7"
       (sources."postcss-svgo-4.0.3" // {
         dependencies = [
           sources."postcss-value-parser-3.3.1"
         ];
       })
       sources."postcss-unique-selectors-4.0.1"
-      sources."postcss-value-parser-4.1.0"
+      sources."postcss-value-parser-4.2.0"
       sources."prepend-http-3.0.1"
       sources."pretty-bytes-5.6.0"
       sources."pretty-error-2.1.2"
@@ -91613,11 +91751,14 @@ in
           sources."bytes-3.1.0"
           sources."http-errors-1.7.2"
           sources."inherits-2.0.3"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
       sources."rc-1.2.8"
       (sources."react-dev-utils-11.0.4" // {
         dependencies = [
+          sources."browserslist-4.14.2"
           (sources."chalk-2.4.2" // {
             dependencies = [
               sources."escape-string-regexp-1.0.5"
@@ -91626,8 +91767,12 @@ in
           sources."cross-spawn-7.0.3"
           sources."escape-string-regexp-2.0.0"
           sources."find-up-4.1.0"
+          sources."globby-11.0.1"
           sources."is-wsl-2.2.0"
+          sources."json5-2.2.0"
+          sources."loader-utils-2.0.0"
           sources."locate-path-5.0.0"
+          sources."node-releases-1.1.77"
           sources."open-7.4.2"
           sources."p-limit-2.3.0"
           sources."p-locate-4.1.0"
@@ -91640,7 +91785,7 @@ in
           sources."which-2.0.2"
         ];
       })
-      sources."react-error-overlay-6.0.9"
+      sources."react-error-overlay-6.0.10"
       sources."react-is-17.0.2"
       sources."read-chunk-3.2.0"
       sources."read-last-lines-1.6.0"
@@ -91659,7 +91804,7 @@ in
       (sources."renderkid-2.0.7" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
-          sources."domhandler-4.2.2"
+          sources."domhandler-4.3.0"
           sources."htmlparser2-6.1.0"
           sources."strip-ansi-3.0.1"
         ];
@@ -91668,7 +91813,6 @@ in
       sources."repeat-string-1.6.1"
       (sources."request-2.88.2" // {
         dependencies = [
-          sources."form-data-2.3.3"
           sources."qs-6.5.2"
           sources."uuid-3.4.0"
         ];
@@ -91716,7 +91860,7 @@ in
       sources."select-hose-2.0.0"
       sources."selfsigned-1.10.11"
       sources."semver-7.3.2"
-      (sources."send-0.17.1" // {
+      (sources."send-0.17.2" // {
         dependencies = [
           (sources."debug-2.6.9" // {
             dependencies = [
@@ -91724,7 +91868,7 @@ in
             ];
           })
           sources."mime-1.6.0"
-          sources."ms-2.1.1"
+          sources."ms-2.1.3"
         ];
       })
       sources."serialize-error-6.0.0"
@@ -91738,7 +91882,7 @@ in
           sources."setprototypeof-1.1.0"
         ];
       })
-      sources."serve-static-1.14.1"
+      sources."serve-static-1.14.2"
       sources."set-blocking-2.0.0"
       (sources."set-value-2.0.1" // {
         dependencies = [
@@ -91746,13 +91890,13 @@ in
         ];
       })
       sources."setimmediate-1.0.5"
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."sha.js-2.4.11"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."shell-quote-1.6.1"
       sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       (sources."simple-plist-1.3.0" // {
         dependencies = [
           sources."bplist-parser-0.3.0"
@@ -91765,7 +91909,7 @@ in
       })
       sources."sisteransi-1.0.5"
       sources."slash-3.0.0"
-      sources."slugify-1.6.2"
+      sources."slugify-1.6.4"
       sources."smart-buffer-4.2.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
@@ -91809,7 +91953,7 @@ in
         ];
       })
       sources."socks-2.6.1"
-      sources."socks-proxy-agent-6.1.0"
+      sources."socks-proxy-agent-6.1.1"
       sources."source-list-map-2.0.1"
       sources."source-map-0.5.7"
       sources."source-map-resolve-0.5.3"
@@ -91827,7 +91971,7 @@ in
       sources."sshpk-1.16.1"
       (sources."ssri-8.0.1" // {
         dependencies = [
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
         ];
       })
       sources."stable-0.1.8"
@@ -91916,7 +92060,7 @@ in
       sources."tapable-1.1.3"
       (sources."tar-6.1.11" // {
         dependencies = [
-          sources."minipass-3.1.5"
+          sources."minipass-3.1.6"
           sources."mkdirp-1.0.4"
         ];
       })
@@ -91933,7 +92077,7 @@ in
         dependencies = [
           sources."commander-2.20.3"
           sources."source-map-0.6.1"
-          sources."source-map-support-0.5.20"
+          sources."source-map-support-0.5.21"
         ];
       })
       (sources."terser-webpack-plugin-3.1.0" // {
@@ -91973,7 +92117,7 @@ in
       sources."to-readable-stream-1.0.0"
       sources."to-regex-3.0.2"
       sources."to-regex-range-5.0.1"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."tough-cookie-2.5.0"
       sources."tr46-0.0.3"
       sources."traverse-0.6.6"
@@ -91997,7 +92141,7 @@ in
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
       sources."unique-string-1.0.0"
-      sources."universalify-1.0.0"
+      sources."universalify-2.0.0"
       sources."unpipe-1.0.0"
       sources."unquote-1.1.1"
       (sources."unset-value-1.0.0" // {
@@ -92116,12 +92260,14 @@ in
           sources."fsevents-1.2.13"
           sources."glob-parent-3.1.0"
           sources."globby-6.1.0"
+          sources."http-errors-1.7.3"
           sources."is-absolute-url-3.0.3"
           sources."is-binary-path-1.0.1"
           sources."is-glob-3.1.0"
           sources."is-number-3.0.0"
           sources."kind-of-3.2.2"
           sources."micromatch-3.1.10"
+          sources."mime-1.6.0"
           sources."ms-2.0.0"
           sources."normalize-path-2.1.1"
           sources."p-map-2.1.0"
@@ -92131,9 +92277,22 @@ in
           sources."rimraf-2.7.1"
           sources."schema-utils-1.0.0"
           sources."semver-6.3.0"
+          (sources."send-0.17.1" // {
+            dependencies = [
+              (sources."debug-2.6.9" // {
+                dependencies = [
+                  sources."ms-2.0.0"
+                ];
+              })
+              sources."ms-2.1.1"
+            ];
+          })
+          sources."serve-static-1.14.1"
+          sources."setprototypeof-1.1.1"
           sources."strip-ansi-3.0.1"
           sources."supports-color-6.1.0"
           sources."to-regex-range-2.1.1"
+          sources."toidentifier-1.0.0"
           sources."ws-6.2.2"
         ];
       })
@@ -92180,7 +92339,7 @@ in
           sources."uuid-7.0.3"
         ];
       })
-      (sources."xdl-59.2.13" // {
+      (sources."xdl-59.2.20" // {
         dependencies = [
           sources."bplist-parser-0.3.1"
           sources."chownr-1.1.4"
@@ -92227,7 +92386,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "The command-line tool for creating and publishing Expo apps";
-      homepage = "https://github.com/expo/expo-cli/tree/master/packages/expo-cli#readme";
+      homepage = "https://github.com/expo/expo-cli/tree/main/packages/expo-cli#readme";
       license = "MIT";
     };
     production = true;
@@ -92244,38 +92403,36 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.16.0"
-      sources."@babel/compat-data-7.16.0"
-      sources."@babel/core-7.16.0"
-      sources."@babel/generator-7.16.0"
+      sources."@babel/compat-data-7.16.4"
+      sources."@babel/core-7.16.5"
+      sources."@babel/generator-7.16.5"
       sources."@babel/helper-annotate-as-pure-7.16.0"
       sources."@babel/helper-compilation-targets-7.16.3"
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
-      sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
+      sources."@babel/helper-plugin-utils-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helpers-7.16.5"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.3"
-      sources."@babel/plugin-proposal-object-rest-spread-7.16.0"
-      sources."@babel/plugin-syntax-jsx-7.16.0"
+      sources."@babel/parser-7.16.6"
+      sources."@babel/plugin-proposal-object-rest-spread-7.16.5"
+      sources."@babel/plugin-syntax-jsx-7.16.5"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
-      sources."@babel/plugin-transform-destructuring-7.16.0"
-      sources."@babel/plugin-transform-parameters-7.16.3"
-      sources."@babel/plugin-transform-react-jsx-7.16.0"
+      sources."@babel/plugin-transform-destructuring-7.16.5"
+      sources."@babel/plugin-transform-parameters-7.16.5"
+      sources."@babel/plugin-transform-react-jsx-7.16.5"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/yauzl-2.9.2"
       sources."@types/yoga-layout-1.9.2"
@@ -92294,7 +92451,7 @@ in
       sources."base64-js-1.5.1"
       sources."bl-4.1.0"
       sources."brace-expansion-1.1.11"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."buffer-5.7.1"
       sources."buffer-crc32-0.2.13"
       sources."caller-callsite-2.0.0"
@@ -92302,7 +92459,7 @@ in
       sources."callsites-2.0.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001280"
+      sources."caniuse-lite-1.0.30001287"
       sources."chalk-2.4.2"
       sources."chownr-1.1.4"
       sources."ci-info-2.0.0"
@@ -92317,7 +92474,7 @@ in
       sources."concat-map-0.0.1"
       sources."convert-source-map-1.8.0"
       sources."convert-to-spaces-1.0.2"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -92326,7 +92483,7 @@ in
       })
       sources."delay-5.0.0"
       sources."devtools-protocol-0.0.869402"
-      sources."electron-to-chromium-1.3.899"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
@@ -92374,7 +92531,7 @@ in
       sources."json-parse-even-better-errors-2.3.1"
       sources."json5-2.2.0"
       sources."kind-of-6.0.3"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
       sources."loose-envify-1.4.0"
@@ -92421,7 +92578,7 @@ in
       sources."puppeteer-9.1.1"
       sources."quick-lru-4.0.1"
       sources."react-16.14.0"
-      sources."react-devtools-core-4.21.0"
+      sources."react-devtools-core-4.22.1"
       sources."react-is-16.13.1"
       sources."react-reconciler-0.26.2"
       (sources."read-pkg-5.2.0" // {
@@ -92447,7 +92604,7 @@ in
       sources."scheduler-0.20.2"
       sources."semver-6.3.0"
       sources."shell-quote-1.7.3"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       (sources."slice-ansi-3.0.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -92495,7 +92652,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.5.5"
+      sources."ws-7.5.6"
       sources."yallist-4.0.0"
       sources."yargs-parser-20.2.9"
       sources."yauzl-2.10.0"
@@ -92530,47 +92687,22 @@ in
           sources."color-name-1.1.3"
           sources."escape-string-regexp-1.0.5"
           sources."strip-ansi-5.2.0"
+          sources."tslib-1.14.1"
         ];
       })
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      (sources."@oclif/command-1.8.0" // {
-        dependencies = [
-          sources."@oclif/plugin-help-3.3.0"
-        ];
-      })
-      (sources."@oclif/config-1.17.0" // {
-        dependencies = [
-          sources."tslib-2.3.1"
-        ];
-      })
-      (sources."@oclif/core-0.5.41" // {
-        dependencies = [
-          (sources."cli-ux-5.6.3" // {
-            dependencies = [
-              sources."fs-extra-8.1.0"
-            ];
-          })
-          sources."fs-extra-9.1.0"
-          sources."has-flag-4.0.0"
-          sources."jsonfile-6.1.0"
-          sources."supports-color-8.1.1"
-          sources."tslib-2.3.1"
-          sources."universalify-2.0.0"
-        ];
-      })
+      sources."@oclif/command-1.8.15"
+      sources."@oclif/config-1.18.2"
       sources."@oclif/errors-1.3.5"
-      sources."@oclif/linewrap-1.0.0"
-      (sources."@oclif/parser-3.8.5" // {
+      (sources."@oclif/help-1.0.1" // {
         dependencies = [
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."escape-string-regexp-1.0.5"
+          sources."wrap-ansi-6.2.0"
         ];
       })
+      sources."@oclif/linewrap-1.0.0"
+      sources."@oclif/parser-3.8.6"
       (sources."@oclif/plugin-autocomplete-0.1.5" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -92603,16 +92735,14 @@ in
       sources."abort-controller-3.0.0"
       sources."ajv-6.12.6"
       sources."ansi-align-3.0.1"
-      sources."ansi-escapes-4.3.2"
+      sources."ansi-escapes-3.2.0"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."ansicolors-0.3.2"
-      sources."argparse-1.0.10"
       sources."array-union-2.1.0"
       sources."asn1-0.2.6"
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
-      sources."at-least-node-1.0.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."base64-js-1.5.1"
@@ -92623,11 +92753,7 @@ in
         ];
       })
       sources."bluebird-3.7.2"
-      (sources."boxen-5.1.2" // {
-        dependencies = [
-          sources."type-fest-0.20.2"
-        ];
-      })
+      sources."boxen-5.1.2"
       sources."braces-3.0.2"
       sources."btoa-lite-1.0.0"
       sources."buffer-5.7.1"
@@ -92649,16 +92775,10 @@ in
       sources."clean-stack-3.0.1"
       sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
-      sources."cli-progress-3.9.1"
       sources."cli-spinners-2.6.1"
-      (sources."cli-table-0.3.6" // {
-        dependencies = [
-          sources."colors-1.0.3"
-        ];
-      })
+      sources."cli-table-0.3.11"
       (sources."cli-ux-4.9.3" // {
         dependencies = [
-          sources."ansi-escapes-3.2.0"
           sources."ansi-regex-4.1.0"
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -92666,14 +92786,12 @@ in
           sources."color-convert-1.9.3"
           sources."color-name-1.1.3"
           sources."escape-string-regexp-1.0.5"
-          sources."extract-stack-1.0.0"
           sources."fs-extra-7.0.1"
-          sources."has-flag-2.0.0"
           sources."indent-string-3.2.0"
           sources."is-wsl-1.1.0"
           sources."semver-5.7.1"
           sources."strip-ansi-5.2.0"
-          sources."supports-hyperlinks-1.0.1"
+          sources."tslib-1.14.1"
         ];
       })
       sources."cli-width-3.0.0"
@@ -92682,7 +92800,7 @@ in
       sources."co-4.6.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."colors-1.4.0"
+      sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
       sources."core-util-is-1.0.3"
       (sources."cross-fetch-3.1.4" // {
@@ -92697,7 +92815,7 @@ in
       })
       sources."csv-stream-0.2.0"
       sources."dashdash-1.14.1"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decode-uri-component-0.2.0"
       sources."decompress-response-3.3.0"
       sources."deep-is-0.1.4"
@@ -92717,7 +92835,7 @@ in
       sources."execa-0.10.0"
       sources."extend-3.0.2"
       sources."external-editor-3.1.0"
-      sources."extract-stack-2.0.0"
+      sources."extract-stack-1.0.0"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.2.7"
@@ -92736,7 +92854,6 @@ in
       sources."form-data-2.3.3"
       sources."from2-2.3.0"
       sources."fs-extra-8.1.0"
-      sources."get-package-type-0.1.0"
       sources."get-stream-3.0.0"
       sources."getpass-0.1.7"
       sources."glob-parent-5.1.2"
@@ -92750,7 +92867,6 @@ in
       sources."has-to-string-tag-x-1.4.1"
       (sources."heroku-cli-util-8.0.12" // {
         dependencies = [
-          sources."ansi-escapes-3.2.0"
           sources."ansi-regex-3.0.0"
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -92758,6 +92874,7 @@ in
           sources."color-name-1.1.3"
           sources."escape-string-regexp-1.0.5"
           sources."strip-ansi-4.0.0"
+          sources."tslib-1.14.1"
         ];
       })
       sources."heroku-client-3.1.0"
@@ -92770,7 +92887,12 @@ in
       sources."indent-string-4.0.0"
       sources."inherits-2.0.4"
       sources."ini-1.3.8"
-      sources."inquirer-8.2.0"
+      (sources."inquirer-8.2.0" // {
+        dependencies = [
+          sources."ansi-escapes-4.3.2"
+          sources."type-fest-0.21.3"
+        ];
+      })
       sources."into-stream-3.1.0"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
@@ -92789,14 +92911,13 @@ in
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
       sources."isurl-1.0.0"
-      sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-4.0.0"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."keyv-3.0.0"
       sources."levn-0.3.0"
       sources."lodash-4.17.21"
@@ -92815,7 +92936,6 @@ in
       sources."moment-2.29.1"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
-      sources."natural-orderby-2.0.3"
       (sources."netrc-parser-3.1.6" // {
         dependencies = [
           sources."debug-3.2.7"
@@ -92828,7 +92948,6 @@ in
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
       sources."object-sizeof-1.6.1"
-      sources."object-treeify-1.1.33"
       sources."onetime-5.1.2"
       sources."opn-3.0.3"
       sources."optionator-0.8.3"
@@ -92838,11 +92957,7 @@ in
       sources."p-finally-1.0.0"
       sources."p-is-promise-1.1.0"
       sources."p-timeout-2.0.1"
-      (sources."password-prompt-1.1.2" // {
-        dependencies = [
-          sources."ansi-escapes-3.2.0"
-        ];
-      })
+      sources."password-prompt-1.1.2"
       sources."path-key-2.0.1"
       sources."path-type-4.0.0"
       sources."performance-now-2.1.0"
@@ -92850,7 +92965,7 @@ in
       sources."pify-3.0.0"
       sources."prelude-ls-1.1.2"
       sources."prepend-http-2.0.0"
-      sources."prettier-2.4.1"
+      sources."prettier-2.5.1"
       sources."process-nextick-args-2.0.1"
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
@@ -92881,11 +92996,10 @@ in
       sources."semver-7.3.5"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-3.0.0"
       sources."sort-keys-2.0.0"
       sources."source-map-0.6.1"
-      sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
       sources."stealthy-require-1.1.1"
       sources."stream-chain-2.2.4"
@@ -92900,10 +93014,9 @@ in
       sources."strip-ansi-6.0.1"
       sources."strip-eof-1.0.0"
       sources."supports-color-5.5.0"
-      (sources."supports-hyperlinks-2.2.0" // {
+      (sources."supports-hyperlinks-1.0.1" // {
         dependencies = [
-          sources."has-flag-4.0.0"
-          sources."supports-color-7.2.0"
+          sources."has-flag-2.0.0"
         ];
       })
       sources."through-2.3.8"
@@ -92913,11 +93026,11 @@ in
       sources."tough-cookie-2.5.0"
       sources."tr46-0.0.3"
       sources."treeify-1.1.0"
-      sources."tslib-1.14.1"
+      sources."tslib-2.3.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
-      sources."type-fest-0.21.3"
+      sources."type-fest-0.20.2"
       sources."universalify-0.1.2"
       sources."uri-js-4.4.1"
       sources."url-parse-lax-3.0.0"
@@ -92951,10 +93064,10 @@ in
   firebase-tools = nodeEnv.buildNodePackage {
     name = "firebase-tools";
     packageName = "firebase-tools";
-    version = "9.22.0";
+    version = "9.23.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/firebase-tools/-/firebase-tools-9.22.0.tgz";
-      sha512 = "RVPrINZOe68XcqKIi81+Jdtb24qKKc4oifBDlwPOqahShjrCX1GsaaRGSQUvh3yl3X52SjJ/sc3AYCaD9qqH0g==";
+      url = "https://registry.npmjs.org/firebase-tools/-/firebase-tools-9.23.3.tgz";
+      sha512 = "J1S/T96rL3vKObDtTuBkop9JtW3vYnfwyU83NopiuOy9oPBRxFkitgzk034qGrpGyZvDA6Do6ZHI50taB3hrEg==";
     };
     dependencies = [
       (sources."@apidevtools/json-schema-ref-parser-9.0.9" // {
@@ -92968,15 +93081,15 @@ in
       sources."@google-cloud/precise-date-2.0.4"
       sources."@google-cloud/projectify-2.1.1"
       sources."@google-cloud/promisify-2.0.4"
-      (sources."@google-cloud/pubsub-2.18.2" // {
+      (sources."@google-cloud/pubsub-2.18.4" // {
         dependencies = [
-          sources."google-auth-library-7.10.2"
+          sources."google-auth-library-7.11.0"
         ];
       })
-      sources."@grpc/grpc-js-1.4.4"
-      sources."@grpc/proto-loader-0.6.6"
+      sources."@grpc/grpc-js-1.4.5"
+      sources."@grpc/proto-loader-0.6.7"
       sources."@jsdevtools/ono-7.1.3"
-      (sources."@npmcli/fs-1.0.0" // {
+      (sources."@npmcli/fs-1.1.0" // {
         dependencies = [
           sources."semver-7.3.5"
         ];
@@ -93007,7 +93120,7 @@ in
       sources."@types/json-schema-7.0.9"
       sources."@types/long-4.0.1"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."JSONStream-1.3.5"
       sources."abbrev-1.1.1"
       sources."abort-controller-3.0.0"
@@ -93022,7 +93135,7 @@ in
       sources."ansi-styles-4.3.0"
       sources."ansicolors-0.3.2"
       sources."anymatch-3.1.2"
-      sources."aproba-1.2.0"
+      sources."aproba-2.0.0"
       sources."archiver-5.3.0"
       (sources."archiver-utils-2.1.0" // {
         dependencies = [
@@ -93031,13 +93144,7 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      (sources."are-we-there-yet-1.1.7" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."are-we-there-yet-2.0.0"
       sources."argparse-2.0.1"
       sources."array-flatten-1.1.1"
       sources."arrify-2.0.1"
@@ -93059,13 +93166,13 @@ in
       sources."basic-auth-connect-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."big-integer-1.6.51"
-      sources."bignumber.js-9.0.1"
+      sources."bignumber.js-9.0.2"
       sources."binary-0.3.0"
       sources."binary-extensions-2.2.0"
       sources."bl-4.1.0"
       sources."blakejs-1.1.1"
       sources."bluebird-3.4.7"
-      (sources."body-parser-1.19.0" // {
+      (sources."body-parser-1.19.1" // {
         dependencies = [
           sources."debug-2.6.9"
           sources."ms-2.0.0"
@@ -93085,7 +93192,7 @@ in
       sources."buffer-equal-constant-time-1.0.1"
       sources."buffer-indexof-polyfill-1.0.2"
       sources."buffers-0.1.1"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.1"
       (sources."cacache-15.3.0" // {
         dependencies = [
           sources."mkdirp-1.0.4"
@@ -93124,12 +93231,11 @@ in
       })
       sources."cli-cursor-2.1.0"
       sources."cli-spinners-2.6.1"
-      sources."cli-table-0.3.6"
+      sources."cli-table-0.3.11"
       sources."cli-width-2.2.1"
       sources."cliui-7.0.4"
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
-      sources."code-point-at-1.1.0"
       (sources."color-3.2.1" // {
         dependencies = [
           sources."color-convert-1.9.3"
@@ -93138,7 +93244,8 @@ in
       })
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."color-string-1.6.0"
+      sources."color-string-1.9.0"
+      sources."color-support-1.1.3"
       sources."colors-1.0.3"
       sources."colorspace-1.1.4"
       sources."combined-stream-1.0.8"
@@ -93193,7 +93300,7 @@ in
       sources."d-1.0.1"
       sources."dashdash-1.14.1"
       sources."data-uri-to-buffer-3.0.1"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
       sources."deep-freeze-0.0.1"
@@ -93257,9 +93364,17 @@ in
       sources."exit-on-epipe-1.0.1"
       (sources."express-4.17.1" // {
         dependencies = [
+          sources."body-parser-1.19.0"
+          sources."bytes-3.1.0"
           sources."debug-2.6.9"
+          sources."http-errors-1.7.2"
+          sources."inherits-2.0.3"
           sources."ms-2.0.0"
+          sources."qs-6.7.0"
+          sources."raw-body-2.4.0"
           sources."safe-buffer-5.1.2"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
       (sources."ext-1.6.0" // {
@@ -93323,14 +93438,7 @@ in
           sources."string_decoder-0.10.31"
         ];
       })
-      (sources."gauge-2.7.4" // {
-        dependencies = [
-          sources."ansi-regex-2.1.1"
-          sources."is-fullwidth-code-point-1.0.0"
-          sources."string-width-1.0.2"
-          sources."strip-ansi-3.0.1"
-        ];
-      })
+      sources."gauge-4.0.0"
       sources."gaxios-4.3.2"
       sources."gcp-metadata-4.3.1"
       sources."get-caller-file-2.0.5"
@@ -93349,7 +93457,7 @@ in
       sources."google-auth-library-6.1.6"
       (sources."google-gax-2.28.1" // {
         dependencies = [
-          sources."google-auth-library-7.10.2"
+          sources."google-auth-library-7.11.0"
         ];
       })
       sources."google-p12-pem-3.1.2"
@@ -93368,11 +93476,7 @@ in
       sources."has-yarn-2.1.0"
       sources."home-dir-1.0.0"
       sources."http-cache-semantics-4.1.0"
-      (sources."http-errors-1.7.2" // {
-        dependencies = [
-          sources."inherits-2.0.3"
-        ];
-      })
+      sources."http-errors-1.8.1"
       sources."http-proxy-agent-4.0.1"
       sources."http-signature-1.2.0"
       sources."https-proxy-agent-5.0.0"
@@ -93441,7 +93545,7 @@ in
       sources."json-buffer-3.0.0"
       sources."json-parse-helpfulerror-1.0.3"
       sources."json-ptr-2.2.0"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-4.0.0"
@@ -93452,7 +93556,7 @@ in
           sources."jws-3.2.2"
         ];
       })
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."jwa-2.0.0"
       sources."jws-4.0.0"
       sources."keyv-3.1.0"
@@ -93506,7 +93610,7 @@ in
       })
       (sources."make-fetch-happen-9.1.0" // {
         dependencies = [
-          sources."socks-proxy-agent-6.1.0"
+          sources."socks-proxy-agent-6.1.1"
         ];
       })
       sources."marked-0.7.0"
@@ -93526,7 +93630,7 @@ in
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-3.1.5"
+      sources."minipass-3.1.6"
       sources."minipass-collect-1.0.2"
       sources."minipass-fetch-1.4.1"
       sources."minipass-flush-1.0.5"
@@ -93556,7 +93660,7 @@ in
       sources."node-emoji-1.11.0"
       sources."node-fetch-2.6.6"
       sources."node-forge-0.10.0"
-      (sources."node-gyp-8.4.0" // {
+      (sources."node-gyp-8.4.1" // {
         dependencies = [
           sources."mkdirp-1.0.4"
           sources."semver-7.3.5"
@@ -93567,8 +93671,7 @@ in
       sources."nopt-5.0.0"
       sources."normalize-path-3.0.0"
       sources."normalize-url-4.5.1"
-      sources."npmlog-4.1.2"
-      sources."number-is-nan-1.0.1"
+      sources."npmlog-6.0.0"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
       sources."object-hash-2.2.0"
@@ -93631,11 +93734,11 @@ in
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."pupa-2.1.1"
-      sources."qs-6.7.0"
+      sources."qs-6.9.6"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.0"
+      sources."raw-body-2.4.2"
       sources."rc-1.2.8"
-      sources."re2-1.16.0"
+      sources."re2-1.17.1"
       sources."readable-stream-3.6.0"
       sources."readdir-glob-1.1.1"
       sources."readdirp-3.6.0"
@@ -93645,6 +93748,7 @@ in
       (sources."request-2.88.2" // {
         dependencies = [
           sources."qs-6.5.2"
+          sources."uuid-3.4.0"
         ];
       })
       sources."require-directory-2.1.1"
@@ -93658,7 +93762,6 @@ in
           sources."array-flatten-3.0.0"
           sources."debug-2.6.9"
           sources."ms-2.0.0"
-          sources."setprototypeof-1.2.0"
         ];
       })
       sources."rsvp-4.8.5"
@@ -93684,17 +93787,20 @@ in
               sources."ms-2.0.0"
             ];
           })
+          sources."http-errors-1.7.3"
           sources."mime-1.6.0"
           sources."ms-2.1.1"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
       sources."serve-static-1.14.1"
       sources."set-blocking-2.0.0"
       sources."setimmediate-1.0.5"
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."simple-swizzle-0.2.2"
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.1"
@@ -93771,7 +93877,7 @@ in
       sources."tmp-0.0.33"
       sources."to-readable-stream-1.0.0"
       sources."to-regex-range-5.0.1"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."tough-cookie-2.5.0"
       sources."toxic-1.0.1"
       sources."tr46-0.0.3"
@@ -93793,7 +93899,11 @@ in
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
       sources."unique-string-2.0.0"
-      sources."universal-analytics-0.4.23"
+      (sources."universal-analytics-0.4.23" // {
+        dependencies = [
+          sources."uuid-3.4.0"
+        ];
+      })
       sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
       (sources."unzipper-0.10.11" // {
@@ -93823,7 +93933,7 @@ in
       sources."url-parse-lax-3.0.0"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
-      sources."uuid-3.4.0"
+      sources."uuid-8.3.2"
       sources."valid-url-1.0.9"
       sources."vary-1.1.2"
       (sources."verror-1.10.0" // {
@@ -93839,18 +93949,12 @@ in
       sources."wide-align-1.1.5"
       sources."widest-line-3.1.0"
       sources."winston-3.3.3"
-      (sources."winston-transport-4.4.0" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."winston-transport-4.4.1"
       sources."word-wrap-1.2.3"
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.5.5"
+      sources."ws-7.5.6"
       sources."xdg-basedir-4.0.0"
       sources."xregexp-2.0.0"
       sources."xtend-4.0.2"
@@ -94027,13 +94131,13 @@ in
       sources."js-tokens-4.0.0"
       sources."json-parse-even-better-errors-2.3.1"
       sources."kind-of-6.0.3"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."locate-path-6.0.0"
       sources."lodash-4.17.21"
       sources."log-symbols-4.1.0"
       sources."lru-cache-6.0.0"
       sources."map-obj-4.3.0"
-      (sources."meow-10.1.1" // {
+      (sources."meow-10.1.2" // {
         dependencies = [
           sources."type-fest-1.4.0"
         ];
@@ -94091,7 +94195,7 @@ in
       sources."semver-7.3.5"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       (sources."slice-ansi-5.0.0" // {
         dependencies = [
           sources."ansi-styles-6.1.0"
@@ -94143,7 +94247,7 @@ in
       sources."@types/atob-2.1.2"
       sources."@types/bn.js-5.1.0"
       sources."@types/inquirer-6.5.0"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/pbkdf2-3.1.0"
       sources."@types/secp256k1-4.0.3"
       sources."@types/through-0.0.30"
@@ -94243,11 +94347,11 @@ in
       sources."js-sha3-0.8.0"
       sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-6.1.0"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."jwt-decode-2.2.0"
       sources."keccak-3.0.2"
       sources."lie-3.1.1"
@@ -94310,7 +94414,7 @@ in
       sources."set-blocking-2.0.0"
       sources."setimmediate-1.0.5"
       sources."sha.js-2.4.11"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
       sources."stealthy-require-1.1.1"
@@ -94552,7 +94656,7 @@ in
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
       sources."is-map-2.0.2"
-      sources."is-negative-zero-2.0.1"
+      sources."is-negative-zero-2.0.2"
       (sources."is-number-3.0.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
@@ -94568,8 +94672,8 @@ in
       sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.8"
       sources."is-weakmap-2.0.1"
-      sources."is-weakref-1.0.1"
-      sources."is-weakset-2.0.1"
+      sources."is-weakref-1.0.2"
+      sources."is-weakset-2.0.2"
       sources."is-windows-1.0.2"
       sources."isarray-2.0.5"
       sources."isobject-3.0.1"
@@ -94620,7 +94724,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
@@ -94671,7 +94775,7 @@ in
       })
       sources."shush-1.0.0"
       sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -94847,10 +94951,10 @@ in
   gatsby-cli = nodeEnv.buildNodePackage {
     name = "gatsby-cli";
     packageName = "gatsby-cli";
-    version = "4.1.4";
+    version = "4.4.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-4.1.4.tgz";
-      sha512 = "B8PYO0FPZMuaEJnvLDPPfEO+xHci7pWoS0NnEKKd+12kneObi4doQp0vqqAG+PS3oNtBRGy1nLglf8BTpCex8Q==";
+      url = "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-4.4.0.tgz";
+      sha512 = "Q3WcITyJeGn6kg5xbEcwkLApwEsvesdJZSk9SkblWu/ykMKE1T1q3BFrPKRdyMZMCq08IVR/jdjpAn8pjn/3WA==";
     };
     dependencies = [
       (sources."@ardatan/aggregate-error-0.0.6" // {
@@ -94859,14 +94963,14 @@ in
         ];
       })
       sources."@babel/code-frame-7.16.0"
-      sources."@babel/compat-data-7.16.0"
-      (sources."@babel/core-7.16.0" // {
+      sources."@babel/compat-data-7.16.4"
+      (sources."@babel/core-7.16.5" // {
         dependencies = [
           sources."semver-6.3.0"
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.16.0" // {
+      (sources."@babel/generator-7.16.5" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
@@ -94877,38 +94981,36 @@ in
           sources."semver-6.3.0"
         ];
       })
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
-      sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
+      sources."@babel/helper-plugin-utils-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helpers-7.16.5"
       (sources."@babel/highlight-7.16.0" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.16.3"
+      sources."@babel/parser-7.16.6"
       sources."@babel/plugin-proposal-object-rest-spread-7.10.4"
-      sources."@babel/plugin-proposal-optional-chaining-7.16.0"
-      sources."@babel/plugin-syntax-jsx-7.16.0"
+      sources."@babel/plugin-proposal-optional-chaining-7.16.5"
+      sources."@babel/plugin-syntax-jsx-7.16.5"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
-      sources."@babel/plugin-transform-parameters-7.16.3"
-      sources."@babel/plugin-transform-react-jsx-7.16.0"
-      sources."@babel/runtime-7.16.3"
-      sources."@babel/standalone-7.16.3"
+      sources."@babel/plugin-transform-parameters-7.16.5"
+      sources."@babel/plugin-transform-react-jsx-7.16.5"
+      sources."@babel/runtime-7.16.5"
+      sources."@babel/standalone-7.16.6"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@graphql-tools/schema-7.1.5"
       sources."@graphql-tools/utils-7.10.0"
@@ -94928,7 +95030,7 @@ in
         ];
       })
       sources."@mdx-js/util-2.0.0-next.8"
-      (sources."@sideway/address-4.1.2" // {
+      (sources."@sideway/address-4.1.3" // {
         dependencies = [
           sources."@hapi/hoek-9.2.1"
         ];
@@ -94940,21 +95042,15 @@ in
       sources."@tokenizer/token-0.3.0"
       sources."@turist/fetch-7.1.7"
       sources."@turist/time-0.0.2"
-      sources."@types/acorn-4.0.6"
       sources."@types/cacheable-request-6.0.2"
       sources."@types/common-tags-1.8.1"
-      sources."@types/debug-4.1.7"
-      sources."@types/estree-0.0.50"
-      sources."@types/estree-jsx-0.0.1"
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/istanbul-lib-coverage-2.0.3"
       sources."@types/istanbul-lib-report-3.0.0"
       sources."@types/istanbul-reports-1.1.2"
       sources."@types/json-patch-0.0.30"
       sources."@types/keyv-3.1.3"
-      sources."@types/mdast-3.0.10"
-      sources."@types/ms-0.7.31"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/node-fetch-2.5.12"
       sources."@types/responselike-1.0.0"
       sources."@types/unist-2.0.6"
@@ -94962,8 +95058,6 @@ in
       sources."@types/yargs-parser-20.2.1"
       sources."@types/yoga-layout-1.9.2"
       sources."accepts-1.3.7"
-      sources."acorn-8.5.0"
-      sources."acorn-jsx-5.3.2"
       sources."address-1.1.2"
       sources."ansi-align-3.0.1"
       (sources."ansi-escapes-4.3.2" // {
@@ -94996,7 +95090,7 @@ in
       sources."boxen-5.1.2"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."bytes-3.1.0"
       sources."cacheable-lookup-5.0.4"
       (sources."cacheable-request-7.0.2" // {
@@ -95007,7 +95101,7 @@ in
       sources."call-bind-1.0.2"
       sources."camel-case-4.1.2"
       sources."camelcase-6.2.1"
-      sources."caniuse-lite-1.0.30001280"
+      sources."caniuse-lite-1.0.30001287"
       sources."ccount-1.1.0"
       (sources."chalk-4.1.2" // {
         dependencies = [
@@ -95018,10 +95112,10 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      sources."character-entities-2.0.1"
-      sources."character-entities-html4-2.1.0"
-      sources."character-entities-legacy-3.0.0"
-      sources."character-reference-invalid-2.0.1"
+      sources."character-entities-1.2.4"
+      sources."character-entities-html4-1.1.4"
+      sources."character-entities-legacy-1.1.4"
+      sources."character-reference-invalid-1.1.4"
       sources."chardet-0.7.0"
       sources."chokidar-3.5.2"
       sources."ci-info-2.0.0"
@@ -95047,7 +95141,7 @@ in
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."combined-stream-1.0.8"
-      sources."common-tags-1.8.1"
+      sources."common-tags-1.8.2"
       sources."concat-map-0.0.1"
       sources."configstore-5.0.1"
       (sources."content-disposition-0.5.3" // {
@@ -95056,12 +95150,12 @@ in
         ];
       })
       sources."content-type-1.0.4"
-      (sources."contentful-management-7.45.2" // {
+      (sources."contentful-management-7.47.0" // {
         dependencies = [
-          sources."type-fest-2.5.3"
+          sources."type-fest-2.8.0"
         ];
       })
-      sources."contentful-sdk-core-6.10.3"
+      sources."contentful-sdk-core-6.10.4"
       sources."convert-hrtime-3.0.0"
       (sources."convert-source-map-1.8.0" // {
         dependencies = [
@@ -95071,16 +95165,16 @@ in
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
       sources."cors-2.8.5"
-      sources."create-gatsby-2.1.1"
+      sources."create-gatsby-2.4.0"
       (sources."cross-spawn-6.0.5" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
       sources."crypto-random-string-2.0.0"
-      sources."css-select-4.1.3"
+      sources."css-select-4.2.0"
       sources."css-what-5.1.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
       (sources."decompress-response-6.0.0" // {
@@ -95092,7 +95186,6 @@ in
       sources."defer-to-connect-2.0.1"
       sources."delayed-stream-1.0.0"
       sources."depd-1.1.2"
-      sources."dequal-2.0.2"
       sources."destroy-1.0.4"
       sources."detect-newline-1.0.3"
       (sources."detect-port-1.3.0" // {
@@ -95101,18 +95194,17 @@ in
           sources."ms-2.0.0"
         ];
       })
-      sources."diff-5.0.0"
       sources."diff-sequences-25.2.6"
       sources."dom-converter-0.2.0"
       sources."dom-serializer-1.3.2"
       sources."domelementtype-2.2.0"
-      sources."domhandler-4.2.2"
+      sources."domhandler-4.3.0"
       sources."domutils-2.8.0"
       sources."dot-prop-5.3.0"
       sources."dotenv-8.6.0"
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.899"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
@@ -95122,8 +95214,6 @@ in
       sources."escape-goat-2.1.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
-      sources."estree-util-is-identifier-name-2.0.0"
-      sources."estree-util-visit-1.1.0"
       sources."etag-1.8.1"
       (sources."execa-5.1.1" // {
         dependencies = [
@@ -95147,14 +95237,15 @@ in
       })
       (sources."express-graphql-0.12.0" // {
         dependencies = [
+          sources."bytes-3.1.1"
           sources."http-errors-1.8.0"
-          (sources."raw-body-2.4.1" // {
+          (sources."raw-body-2.4.2" // {
             dependencies = [
-              sources."http-errors-1.7.3"
-              sources."setprototypeof-1.1.1"
+              sources."http-errors-1.8.1"
             ];
           })
           sources."setprototypeof-1.2.0"
+          sources."toidentifier-1.0.1"
         ];
       })
       sources."extend-3.0.2"
@@ -95175,7 +95266,7 @@ in
         ];
       })
       sources."find-up-4.1.0"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."form-data-3.0.1"
       sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
@@ -95184,13 +95275,13 @@ in
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
       sources."function-bind-1.1.1"
-      sources."gatsby-core-utils-3.1.3"
-      (sources."gatsby-recipes-1.1.3" // {
+      sources."gatsby-core-utils-3.4.0"
+      (sources."gatsby-recipes-1.4.0" // {
         dependencies = [
           sources."strip-ansi-6.0.1"
         ];
       })
-      (sources."gatsby-telemetry-3.1.3" // {
+      (sources."gatsby-telemetry-3.4.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."boxen-4.2.0"
@@ -95213,9 +95304,9 @@ in
       sources."glob-parent-5.1.2"
       sources."global-dirs-3.0.0"
       sources."globals-11.12.0"
-      sources."got-11.8.2"
+      sources."got-11.8.3"
       sources."graceful-fs-4.2.8"
-      sources."graphql-15.7.2"
+      sources."graphql-15.8.0"
       sources."graphql-compose-7.25.1"
       sources."graphql-subscriptions-1.2.1"
       sources."graphql-type-json-0.3.2"
@@ -95249,19 +95340,19 @@ in
         ];
       })
       sources."ipaddr.js-1.9.1"
-      sources."is-alphabetical-2.0.1"
+      sources."is-alphabetical-1.0.4"
       sources."is-alphanumeric-1.0.0"
-      sources."is-alphanumerical-2.0.1"
+      sources."is-alphanumerical-1.0.4"
       sources."is-binary-path-2.1.0"
       sources."is-buffer-2.0.5"
       sources."is-ci-2.0.0"
       sources."is-core-module-2.8.0"
-      sources."is-decimal-2.0.1"
+      sources."is-decimal-1.0.4"
       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-hexadecimal-2.0.1"
+      sources."is-hexadecimal-1.0.4"
       sources."is-installed-globally-0.4.0"
       (sources."is-invalid-path-0.1.0" // {
         dependencies = [
@@ -95296,7 +95387,7 @@ in
         ];
       })
       sources."jest-get-type-25.2.6"
-      (sources."joi-17.4.2" // {
+      (sources."joi-17.5.0" // {
         dependencies = [
           sources."@hapi/hoek-9.2.1"
           sources."@hapi/topo-5.1.0"
@@ -95308,14 +95399,14 @@ in
       sources."json5-2.2.0"
       sources."jsonfile-6.1.0"
       sources."keyv-4.0.4"
-      sources."kleur-4.1.4"
+      sources."kleur-3.0.3"
       sources."latest-version-5.1.0"
       sources."locate-path-5.0.0"
       sources."lock-1.1.0"
       sources."lodash-4.17.21"
       sources."lodash.isplainobject-4.0.6"
       sources."lodash.isstring-4.0.1"
-      sources."longest-streak-3.0.1"
+      sources."longest-streak-2.0.4"
       sources."loose-envify-1.4.0"
       sources."lower-case-2.0.2"
       sources."lowercase-keys-2.0.0"
@@ -95328,60 +95419,21 @@ in
       sources."markdown-escapes-1.0.4"
       sources."markdown-table-2.0.0"
       sources."mdast-util-compact-2.0.1"
-      sources."mdast-util-from-markdown-1.1.0"
-      sources."mdast-util-mdx-1.1.0"
-      sources."mdast-util-mdx-expression-1.1.1"
-      sources."mdast-util-mdx-jsx-1.1.2"
-      sources."mdast-util-mdxjs-esm-1.1.1"
-      (sources."mdast-util-to-markdown-1.2.4" // {
-        dependencies = [
-          sources."unist-util-visit-4.1.0"
-        ];
-      })
-      sources."mdast-util-to-string-3.1.0"
       sources."meant-1.0.3"
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."merge-stream-2.0.0"
       sources."methods-1.1.2"
-      sources."micromark-3.0.7"
-      sources."micromark-core-commonmark-1.0.4"
-      sources."micromark-extension-mdx-expression-1.0.2"
-      sources."micromark-extension-mdx-jsx-1.0.2"
-      sources."micromark-extension-mdx-md-1.0.0"
-      sources."micromark-extension-mdxjs-1.0.0"
-      sources."micromark-extension-mdxjs-esm-1.0.2"
-      sources."micromark-factory-destination-1.0.0"
-      sources."micromark-factory-label-1.0.2"
-      sources."micromark-factory-mdx-expression-1.0.4"
-      sources."micromark-factory-space-1.0.0"
-      sources."micromark-factory-title-1.0.2"
-      sources."micromark-factory-whitespace-1.0.0"
-      sources."micromark-util-character-1.1.0"
-      sources."micromark-util-chunked-1.0.0"
-      sources."micromark-util-classify-character-1.0.0"
-      sources."micromark-util-combine-extensions-1.0.0"
-      sources."micromark-util-decode-numeric-character-reference-1.0.0"
-      sources."micromark-util-decode-string-1.0.1"
-      sources."micromark-util-encode-1.0.0"
-      sources."micromark-util-events-to-acorn-1.0.4"
-      sources."micromark-util-html-tag-name-1.0.0"
-      sources."micromark-util-normalize-identifier-1.0.0"
-      sources."micromark-util-resolve-all-1.0.0"
-      sources."micromark-util-sanitize-uri-1.0.0"
-      sources."micromark-util-subtokenize-1.0.2"
-      sources."micromark-util-symbol-1.0.0"
-      sources."micromark-util-types-1.0.1"
       sources."mime-1.6.0"
       sources."mime-db-1.51.0"
       sources."mime-types-2.1.34"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
+      sources."min-indent-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mitt-1.2.0"
       sources."mkdirp-0.5.5"
-      sources."mri-1.2.0"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
       sources."negotiator-0.6.2"
@@ -95396,7 +95448,7 @@ in
       sources."npm-run-path-2.0.2"
       sources."nth-check-2.0.1"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."object-path-0.11.5"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
@@ -95432,7 +95484,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."parse-entities-3.1.0"
+      sources."parse-entities-2.0.0"
       sources."parse-path-4.0.3"
       sources."parse-url-6.0.0"
       sources."parseurl-1.3.3"
@@ -95442,12 +95494,12 @@ in
       sources."path-key-2.0.1"
       sources."path-parse-1.0.7"
       sources."path-to-regexp-0.1.7"
-      sources."peek-readable-4.0.1"
+      sources."peek-readable-4.0.2"
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.0"
       sources."pkg-dir-4.2.0"
       sources."prepend-http-2.0.0"
-      sources."prettier-2.4.1"
+      sources."prettier-2.5.1"
       sources."pretty-error-2.1.2"
       (sources."pretty-format-25.5.0" // {
         dependencies = [
@@ -95457,18 +95509,14 @@ in
         ];
       })
       sources."progress-2.0.3"
-      (sources."prompts-2.4.2" // {
-        dependencies = [
-          sources."kleur-3.0.3"
-        ];
-      })
+      sources."prompts-2.4.2"
       sources."prop-types-15.7.2"
       sources."proper-lockfile-4.1.2"
       sources."protocols-1.4.8"
       sources."proxy-addr-2.0.7"
       sources."pump-3.0.0"
       sources."pupa-2.1.1"
-      sources."qs-6.10.1"
+      sources."qs-6.10.2"
       sources."query-string-6.14.1"
       sources."quick-lru-5.1.1"
       sources."range-parser-1.2.1"
@@ -95483,11 +95531,11 @@ in
       sources."readable-stream-3.6.0"
       sources."readable-web-to-node-stream-3.0.2"
       sources."readdirp-3.6.0"
-      sources."redux-4.0.5"
+      sources."redux-4.1.2"
       sources."regenerator-runtime-0.13.9"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
-      sources."remark-mdx-2.0.0-rc.2"
+      sources."remark-mdx-2.0.0-next.7"
       (sources."remark-mdxjs-2.0.0-next.8" // {
         dependencies = [
           sources."@babel/core-7.10.5"
@@ -95499,35 +95547,10 @@ in
       })
       (sources."remark-parse-6.0.3" // {
         dependencies = [
-          sources."character-entities-1.2.4"
-          sources."character-entities-legacy-1.1.4"
-          sources."character-reference-invalid-1.1.4"
-          sources."is-alphabetical-1.0.4"
-          sources."is-alphanumerical-1.0.4"
-          sources."is-decimal-1.0.4"
-          sources."is-hexadecimal-1.0.4"
           sources."parse-entities-1.2.2"
-          sources."unist-util-is-3.0.0"
-          sources."unist-util-remove-position-1.1.4"
-          sources."unist-util-visit-1.4.1"
-          sources."unist-util-visit-parents-2.1.2"
-        ];
-      })
-      (sources."remark-stringify-8.1.1" // {
-        dependencies = [
-          sources."character-entities-1.2.4"
-          sources."character-entities-html4-1.1.4"
-          sources."character-entities-legacy-1.1.4"
-          sources."character-reference-invalid-1.1.4"
-          sources."is-alphabetical-1.0.4"
-          sources."is-alphanumerical-1.0.4"
-          sources."is-decimal-1.0.4"
-          sources."is-hexadecimal-1.0.4"
-          sources."longest-streak-2.0.4"
-          sources."parse-entities-2.0.0"
-          sources."stringify-entities-3.1.0"
         ];
       })
+      sources."remark-stringify-8.1.1"
       (sources."renderkid-2.0.7" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -95551,7 +95574,6 @@ in
           sources."tslib-1.14.1"
         ];
       })
-      sources."sade-1.7.4"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-7.3.5"
@@ -95576,7 +95598,7 @@ in
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."single-trailing-newline-1.0.0"
       sources."sisteransi-1.0.5"
       sources."source-map-0.7.3"
@@ -95591,7 +95613,7 @@ in
         ];
       })
       sources."string_decoder-1.3.0"
-      sources."stringify-entities-4.0.2"
+      sources."stringify-entities-3.1.0"
       (sources."strip-ansi-5.2.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -95599,11 +95621,11 @@ in
       })
       sources."strip-eof-1.0.0"
       sources."strip-final-newline-2.0.0"
+      sources."strip-indent-3.0.0"
       sources."strip-json-comments-2.0.1"
       sources."strtok3-6.2.4"
       sources."style-to-object-0.3.0"
       sources."supports-color-5.5.0"
-      sources."symbol-observable-1.2.0"
       sources."term-size-2.2.1"
       sources."through-2.3.8"
       sources."tmp-0.2.1"
@@ -95612,7 +95634,6 @@ in
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
       sources."token-types-4.1.1"
-      sources."totalist-2.0.0"
       sources."tr46-0.0.3"
       sources."trim-0.0.1"
       sources."trim-trailing-lines-1.1.4"
@@ -95624,26 +95645,25 @@ in
       sources."unherit-1.1.3"
       sources."unified-8.4.2"
       sources."unique-string-2.0.0"
-      sources."unist-util-is-5.1.1"
-      sources."unist-util-position-from-estree-1.1.1"
+      sources."unist-util-is-3.0.0"
       (sources."unist-util-remove-2.1.0" // {
         dependencies = [
           sources."unist-util-is-4.1.0"
         ];
       })
-      (sources."unist-util-remove-position-4.0.1" // {
+      (sources."unist-util-remove-position-1.1.4" // {
         dependencies = [
-          sources."unist-util-visit-4.1.0"
+          sources."unist-util-visit-1.4.1"
         ];
       })
-      sources."unist-util-stringify-position-3.0.0"
+      sources."unist-util-stringify-position-2.0.3"
       (sources."unist-util-visit-2.0.3" // {
         dependencies = [
           sources."unist-util-is-4.1.0"
           sources."unist-util-visit-parents-3.1.1"
         ];
       })
-      sources."unist-util-visit-parents-5.1.0"
+      sources."unist-util-visit-parents-2.1.2"
       sources."universalify-2.0.0"
       sources."unpipe-1.0.0"
       sources."update-notifier-5.1.0"
@@ -95652,17 +95672,11 @@ in
       sources."utila-0.4.0"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
-      sources."uvu-0.5.2"
       sources."value-or-promise-1.0.6"
       sources."vary-1.1.2"
-      (sources."vfile-4.2.1" // {
-        dependencies = [
-          sources."unist-util-stringify-position-2.0.3"
-          sources."vfile-message-2.0.4"
-        ];
-      })
+      sources."vfile-4.2.1"
       sources."vfile-location-2.0.6"
-      sources."vfile-message-3.0.2"
+      sources."vfile-message-2.0.4"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
       sources."which-1.3.1"
@@ -95678,9 +95692,9 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.5.5"
+      sources."ws-7.5.6"
       sources."xdg-basedir-4.0.0"
-      sources."xstate-4.26.0"
+      sources."xstate-4.26.1"
       sources."xtend-4.0.2"
       sources."y18n-4.0.3"
       sources."yallist-4.0.0"
@@ -95696,7 +95710,6 @@ in
           sources."chalk-2.4.2"
         ];
       })
-      sources."zwitch-2.0.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -95711,10 +95724,10 @@ in
   generator-code = nodeEnv.buildNodePackage {
     name = "generator-code";
     packageName = "generator-code";
-    version = "1.6.4";
+    version = "1.6.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/generator-code/-/generator-code-1.6.4.tgz";
-      sha512 = "CV/+bGzFQg052xtWXdD6Xi9IxtfZHzSMu3brvseHttt8ldgcLdopCMg1Nvnj2+weJ0+862QlYyaaju6tLjui1A==";
+      url = "https://registry.npmjs.org/generator-code/-/generator-code-1.6.5.tgz";
+      sha512 = "iNIWQw9R2XxY2epw0NZjFvy3lzhhe1K5UipEn11PmYFQqMhbQdL6SQsM9KFdwSBiVbzOJ1BWrzk/r9Zcp+RyMw==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.0"
@@ -95755,7 +95768,7 @@ in
       sources."concat-map-0.0.1"
       sources."cross-spawn-7.0.3"
       sources."dargs-7.0.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."deprecation-2.3.1"
       sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
@@ -95785,7 +95798,7 @@ in
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."json-parse-even-better-errors-2.3.1"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
       sources."lru-cache-6.0.0"
@@ -95821,7 +95834,7 @@ in
       })
       sources."read-pkg-up-7.0.1"
       sources."rechoir-0.6.2"
-      sources."request-light-0.5.4"
+      sources."request-light-0.5.5"
       sources."resolve-1.20.0"
       sources."run-async-2.4.1"
       sources."sanitize-filename-1.6.3"
@@ -95829,7 +95842,7 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."shelljs-0.8.4"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
@@ -95931,7 +95944,7 @@ in
     };
     dependencies = [
       sources."async-2.6.3"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."lodash-4.17.21"
       sources."lodash.groupby-4.6.0"
       sources."microee-0.0.6"
@@ -95963,7 +95976,7 @@ in
       sources."chloride-2.4.1"
       sources."chloride-test-1.2.4"
       sources."commander-2.20.3"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."deep-extend-0.6.0"
       sources."diff-3.5.0"
       sources."discontinuous-range-1.0.0"
@@ -96125,7 +96138,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."tweetnacl-auth-0.3.1"
       sources."typedarray-to-buffer-4.0.0"
-      sources."ws-7.5.5"
+      sources."ws-7.5.6"
       sources."xtend-4.0.2"
     ];
     buildInputs = globalBuildInputs;
@@ -96159,21 +96172,21 @@ in
   "@gitbeaker/cli" = nodeEnv.buildNodePackage {
     name = "_at_gitbeaker_slash_cli";
     packageName = "@gitbeaker/cli";
-    version = "34.6.0";
+    version = "35.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@gitbeaker/cli/-/cli-34.6.0.tgz";
-      sha512 = "CztjBIMUgD/2RbcHjDDDqKfduBARokquYnF6pUql/9v1iodq5ch4DdBqVJuLbXehyOE/UkF/RsAtnAiKy0qbxQ==";
+      url = "https://registry.npmjs.org/@gitbeaker/cli/-/cli-35.1.0.tgz";
+      sha512 = "hQ+sXT//GPp5ZwqujZ6p5O7MmvO4sgF8D5mhnRCBmp5oPGyJ3+1r9pfFnWI+BIFOpO9pi0+L1ZljNJS3175SfA==";
     };
     dependencies = [
-      sources."@gitbeaker/core-34.6.0"
-      sources."@gitbeaker/node-34.6.0"
-      sources."@gitbeaker/requester-utils-34.6.0"
+      sources."@gitbeaker/core-35.1.0"
+      sources."@gitbeaker/node-35.1.0"
+      sources."@gitbeaker/requester-utils-35.1.0"
       sources."@sindresorhus/is-4.2.0"
       sources."@szmarczak/http-timer-4.0.6"
       sources."@types/cacheable-request-6.0.2"
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/keyv-3.1.3"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/responselike-1.0.0"
       sources."ansi-regex-6.0.1"
       sources."ansi-styles-4.3.0"
@@ -96208,7 +96221,7 @@ in
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."get-stream-5.2.0"
-      sources."got-11.8.2"
+      sources."got-11.8.3"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."has-symbols-1.0.2"
@@ -96221,7 +96234,11 @@ in
       sources."json-buffer-3.0.1"
       sources."keyv-4.0.4"
       sources."li-1.3.0"
-      sources."log-symbols-5.0.0"
+      (sources."log-symbols-5.1.0" // {
+        dependencies = [
+          sources."chalk-5.0.0"
+        ];
+      })
       sources."lowercase-keys-2.0.0"
       sources."mime-3.0.0"
       sources."mime-db-1.51.0"
@@ -96229,13 +96246,13 @@ in
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."normalize-url-6.1.0"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
       sources."ora-6.0.1"
       sources."p-cancelable-2.1.1"
       sources."pump-3.0.0"
-      sources."qs-6.10.1"
+      sources."qs-6.10.2"
       sources."query-string-7.0.1"
       sources."quick-lru-5.1.1"
       sources."readable-stream-3.6.0"
@@ -96244,7 +96261,7 @@ in
       sources."restore-cursor-4.0.0"
       sources."safe-buffer-5.2.1"
       sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."split-on-first-1.1.0"
       sources."strict-uri-encode-2.0.0"
       sources."string_decoder-1.3.0"
@@ -96293,7 +96310,7 @@ in
       sources."@types/minimist-1.2.2"
       sources."@types/normalize-package-data-2.4.1"
       sources."agent-base-6.0.2"
-      sources."ajv-8.8.0"
+      sources."ajv-8.8.2"
       sources."ajv-formats-2.1.1"
       sources."ansi-align-3.0.1"
       sources."ansi-escapes-4.3.2"
@@ -96311,7 +96328,7 @@ in
         ];
       })
       sources."buffer-5.7.1"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.1"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."get-stream-5.2.0"
@@ -96331,7 +96348,7 @@ in
       sources."clone-response-1.0.2"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."conf-10.0.3"
+      sources."conf-10.1.1"
       (sources."configstore-5.0.1" // {
         dependencies = [
           sources."dot-prop-5.3.0"
@@ -96342,7 +96359,7 @@ in
       sources."crypto-random-string-2.0.0"
       sources."data-uri-to-buffer-3.0.1"
       sources."debounce-fn-4.0.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -96399,7 +96416,7 @@ in
       sources."has-yarn-2.1.0"
       sources."hosted-git-info-4.0.2"
       sources."http-cache-semantics-4.1.0"
-      sources."http-errors-1.7.3"
+      sources."http-errors-1.8.1"
       sources."http-proxy-agent-4.0.1"
       sources."https-proxy-agent-5.0.0"
       sources."human-signals-2.1.0"
@@ -96444,7 +96461,7 @@ in
       sources."kind-of-6.0.3"
       sources."latest-version-5.1.0"
       sources."levn-0.3.0"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       (sources."locate-path-3.0.0" // {
         dependencies = [
           sources."path-exists-3.0.0"
@@ -96516,7 +96533,7 @@ in
       sources."punycode-2.1.1"
       sources."pupa-2.1.1"
       sources."quick-lru-4.0.1"
-      sources."raw-body-2.4.1"
+      sources."raw-body-2.4.2"
       (sources."rc-1.2.8" // {
         dependencies = [
           sources."ini-1.3.8"
@@ -96556,10 +96573,10 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.1"
       sources."socks-proxy-agent-5.0.1"
@@ -96579,7 +96596,7 @@ in
       sources."through-2.3.8"
       sources."tmp-0.0.33"
       sources."to-readable-stream-1.0.0"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."tr46-0.0.3"
       sources."trim-newlines-3.0.1"
       sources."tslib-2.1.0"
@@ -96649,6 +96666,166 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  gramma = nodeEnv.buildNodePackage {
+    name = "gramma";
+    packageName = "gramma";
+    version = "1.6.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/gramma/-/gramma-1.6.0.tgz";
+      sha512 = "5I4yc0miSXU2jvD17zpleKufSggU8etr5uxxLX0nkFLJRfB4Fp2yg1s1SuietfaripT9H2lVhftFYrj2wl56uw==";
+    };
+    dependencies = [
+      sources."ansi-regex-5.0.1"
+      sources."ansi-styles-4.3.0"
+      sources."async-2.6.3"
+      sources."balanced-match-1.0.2"
+      sources."base64-js-1.5.1"
+      sources."bl-1.2.3"
+      sources."brace-expansion-1.1.11"
+      sources."buffer-5.7.1"
+      sources."buffer-alloc-1.2.0"
+      sources."buffer-alloc-unsafe-1.1.0"
+      sources."buffer-crc32-0.2.13"
+      sources."buffer-fill-1.0.0"
+      sources."cli-progress-3.9.1"
+      sources."cliui-7.0.4"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."colors-1.4.0"
+      sources."commander-2.20.3"
+      sources."concat-map-0.0.1"
+      sources."core-util-is-1.0.3"
+      sources."debug-3.2.7"
+      sources."decode-uri-component-0.2.0"
+      sources."decompress-4.2.1"
+      sources."decompress-tar-4.1.1"
+      (sources."decompress-tarbz2-4.1.1" // {
+        dependencies = [
+          sources."file-type-6.2.0"
+        ];
+      })
+      sources."decompress-targz-4.1.1"
+      (sources."decompress-unzip-4.0.1" // {
+        dependencies = [
+          sources."file-type-3.9.0"
+        ];
+      })
+      sources."deep-is-0.1.4"
+      sources."dotenv-10.0.0"
+      sources."emoji-regex-8.0.0"
+      sources."end-of-stream-1.4.4"
+      sources."escalade-3.1.1"
+      sources."fd-slicer-1.1.0"
+      sources."file-type-5.2.0"
+      sources."filter-obj-1.1.0"
+      sources."fs-constants-1.0.0"
+      sources."fs.realpath-1.0.0"
+      sources."get-caller-file-2.0.5"
+      sources."get-stream-2.3.1"
+      sources."glob-7.2.0"
+      sources."graceful-fs-4.2.8"
+      sources."ieee754-1.2.1"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."intercept-stdout-0.1.2"
+      sources."ip-regex-4.3.0"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-natural-number-4.0.1"
+      sources."is-stream-1.1.0"
+      sources."is-url-1.2.4"
+      sources."is2-2.0.7"
+      sources."isarray-1.0.0"
+      sources."isomorphic-fetch-3.0.0"
+      sources."kleur-4.1.4"
+      sources."lodash-4.17.21"
+      sources."lodash._arraycopy-3.0.0"
+      sources."lodash._basevalues-3.0.0"
+      sources."lodash._getnative-3.9.1"
+      sources."lodash.isarguments-3.1.0"
+      sources."lodash.isarray-3.0.4"
+      sources."lodash.keys-3.1.2"
+      sources."lodash.toarray-3.0.2"
+      (sources."make-dir-1.3.0" // {
+        dependencies = [
+          sources."pify-3.0.0"
+        ];
+      })
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."mkdirp-0.5.5"
+      sources."ms-2.1.3"
+      sources."node-fetch-2.6.6"
+      sources."object-assign-4.1.1"
+      sources."once-1.4.0"
+      sources."path-is-absolute-1.0.1"
+      sources."pend-1.2.0"
+      sources."pify-2.3.0"
+      sources."pinkie-2.0.4"
+      sources."pinkie-promise-2.0.1"
+      sources."portfinder-1.0.28"
+      sources."process-nextick-args-2.0.1"
+      sources."progress-stream-2.0.0"
+      (sources."prompts-2.4.2" // {
+        dependencies = [
+          sources."kleur-3.0.3"
+        ];
+      })
+      sources."query-string-7.0.1"
+      (sources."readable-stream-2.3.7" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."require-directory-2.1.1"
+      sources."rimraf-3.0.2"
+      sources."safe-buffer-5.2.1"
+      sources."seek-bzip-1.0.6"
+      sources."sisteransi-1.0.5"
+      sources."speedometer-1.0.0"
+      sources."split-on-first-1.1.0"
+      sources."strict-uri-encode-2.0.0"
+      sources."string-width-4.2.3"
+      (sources."string_decoder-1.1.1" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."strip-ansi-6.0.1"
+      sources."strip-dirs-2.1.0"
+      sources."tar-stream-1.6.2"
+      (sources."tcp-port-used-1.0.2" // {
+        dependencies = [
+          sources."debug-4.3.1"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."through-2.3.8"
+      sources."through2-2.0.5"
+      sources."to-buffer-1.1.1"
+      sources."tr46-0.0.3"
+      sources."unbzip2-stream-1.4.3"
+      sources."util-deprecate-1.0.2"
+      sources."webidl-conversions-3.0.1"
+      sources."whatwg-fetch-3.6.2"
+      sources."whatwg-url-5.0.0"
+      sources."wrap-ansi-7.0.0"
+      sources."wrappy-1.0.2"
+      sources."xtend-4.0.2"
+      sources."y18n-5.0.8"
+      sources."yargs-17.3.0"
+      sources."yargs-parser-21.0.0"
+      sources."yauzl-2.10.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Command line grammar checker";
+      homepage = "https://caderek.github.io/gramma/";
+      license = "ISC";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   graphql-cli = nodeEnv.buildNodePackage {
     name = "graphql-cli";
     packageName = "graphql-cli";
@@ -96702,9 +96879,9 @@ in
           sources."tslib-2.1.0"
         ];
       })
-      (sources."@graphql-tools/import-6.6.1" // {
+      (sources."@graphql-tools/import-6.6.3" // {
         dependencies = [
-          sources."@graphql-tools/utils-8.5.3"
+          sources."@graphql-tools/utils-8.5.5"
           sources."tslib-2.3.1"
         ];
       })
@@ -96732,7 +96909,7 @@ in
       (sources."@graphql-tools/schema-8.3.1" // {
         dependencies = [
           sources."@graphql-tools/merge-8.2.1"
-          sources."@graphql-tools/utils-8.5.3"
+          sources."@graphql-tools/utils-8.5.5"
           sources."tslib-2.3.1"
         ];
       })
@@ -96763,7 +96940,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-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/websocket-1.0.2"
       sources."abort-controller-3.0.0"
@@ -96843,7 +97020,7 @@ in
       sources."cross-spawn-6.0.5"
       sources."dashdash-1.14.1"
       sources."dataloader-2.0.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decompress-response-3.3.0"
       sources."deep-equal-2.0.5"
       sources."deep-extend-0.6.0"
@@ -96962,7 +97139,7 @@ in
       sources."is-glob-4.0.1"
       sources."is-interactive-1.0.0"
       sources."is-map-2.0.2"
-      sources."is-negative-zero-2.0.1"
+      sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
       sources."is-number-object-1.0.6"
       sources."is-promise-4.0.0"
@@ -96976,8 +97153,8 @@ in
       sources."is-typedarray-1.0.0"
       sources."is-unicode-supported-0.1.0"
       sources."is-weakmap-2.0.1"
-      sources."is-weakref-1.0.1"
-      sources."is-weakset-2.0.1"
+      sources."is-weakref-1.0.2"
+      sources."is-weakset-2.0.2"
       sources."is-wsl-2.2.0"
       sources."isarray-2.0.5"
       sources."isexe-2.0.0"
@@ -96990,7 +97167,7 @@ in
       sources."json-buffer-3.0.0"
       sources."json-parse-even-better-errors-2.3.1"
       sources."json-ptr-1.3.2"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       (sources."jsonfile-6.1.0" // {
@@ -96999,10 +97176,10 @@ in
         ];
       })
       sources."jsonpath-plus-4.0.0"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."keyv-3.1.0"
       sources."latest-version-5.1.0"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."lodash-4.17.21"
       sources."lodash.toarray-4.4.0"
       (sources."log-symbols-2.2.0" // {
@@ -97036,7 +97213,7 @@ in
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-3.1.5"
+      sources."minipass-3.1.6"
       sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
@@ -97058,13 +97235,13 @@ in
       sources."oas-linter-3.2.2"
       (sources."oas-resolver-2.5.6" // {
         dependencies = [
-          sources."yargs-17.2.1"
+          sources."yargs-17.3.0"
         ];
       })
       sources."oas-schema-walker-1.1.5"
       sources."oas-validator-5.0.8"
       sources."oauth-sign-0.9.0"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
@@ -97150,7 +97327,7 @@ 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.5"
+      sources."signal-exit-3.0.6"
       sources."simple-git-2.21.0"
       sources."slash-3.0.0"
       sources."sprintf-js-1.0.3"
@@ -97171,7 +97348,7 @@ in
       sources."supports-color-7.2.0"
       (sources."swagger2openapi-7.0.8" // {
         dependencies = [
-          sources."yargs-17.2.1"
+          sources."yargs-17.3.0"
         ];
       })
       sources."symbol-observable-1.2.0"
@@ -97211,8 +97388,12 @@ in
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
       sources."yaml-1.10.2"
-      sources."yargs-16.0.3"
-      sources."yargs-parser-20.2.9"
+      (sources."yargs-16.0.3" // {
+        dependencies = [
+          sources."yargs-parser-20.2.9"
+        ];
+      })
+      sources."yargs-parser-21.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -97233,23 +97414,62 @@ in
       sha512 = "97Chda90OBIHCpH6iQHNYc9qTTADN0LOFbiMcRws3V5SottC/0yTDIQDgBzncZYVCkttyjAnT6YmVuNId7ymQA==";
     };
     dependencies = [
+      sources."@babel/code-frame-7.16.0"
+      sources."@babel/helper-validator-identifier-7.15.7"
+      (sources."@babel/highlight-7.16.0" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."escape-string-regexp-1.0.5"
+          sources."has-flag-3.0.0"
+          sources."supports-color-5.5.0"
+        ];
+      })
       sources."@cronvel/get-pixels-3.4.0"
+      sources."@endemolshinegroup/cosmiconfig-typescript-loader-3.0.2"
+      sources."@graphql-tools/batch-execute-8.3.1"
+      sources."@graphql-tools/delegate-8.4.3"
+      sources."@graphql-tools/graphql-file-loader-7.3.3"
+      sources."@graphql-tools/import-6.6.3"
+      sources."@graphql-tools/json-file-loader-7.3.3"
+      sources."@graphql-tools/load-7.5.0"
+      sources."@graphql-tools/merge-8.2.1"
+      sources."@graphql-tools/schema-8.3.1"
+      (sources."@graphql-tools/url-loader-7.7.0" // {
+        dependencies = [
+          (sources."subscriptions-transport-ws-0.11.0" // {
+            dependencies = [
+              sources."ws-7.5.6"
+            ];
+          })
+          sources."ws-8.3.0"
+        ];
+      })
+      sources."@graphql-tools/utils-8.5.5"
+      sources."@graphql-tools/wrap-8.3.2"
+      sources."@iarna/toml-2.2.5"
+      sources."@n1ru4l/graphql-live-query-0.9.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       sources."@oclif/command-1.8.0"
-      (sources."@oclif/config-1.17.0" // {
-        dependencies = [
-          sources."tslib-2.3.1"
-        ];
-      })
+      sources."@oclif/config-1.17.0"
       sources."@oclif/errors-1.3.4"
       sources."@oclif/linewrap-1.0.0"
-      sources."@oclif/parser-3.8.5"
+      sources."@oclif/parser-3.8.6"
       (sources."@oclif/plugin-help-3.2.1" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
+          sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."escape-string-regexp-1.0.5"
+          sources."has-flag-3.0.0"
           sources."is-fullwidth-code-point-2.0.0"
+          sources."supports-color-5.5.0"
           (sources."wrap-ansi-4.0.0" // {
             dependencies = [
               sources."string-width-2.1.1"
@@ -97259,48 +97479,69 @@ in
         ];
       })
       sources."@oclif/screen-1.0.4"
+      sources."@types/json-schema-7.0.9"
+      sources."@types/node-17.0.0"
+      sources."@types/parse-json-4.0.0"
+      sources."@types/websocket-1.0.4"
+      sources."@types/ws-8.2.2"
+      sources."abort-controller-3.0.0"
       sources."accepts-1.3.7"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-5.0.1"
-      sources."ansi-styles-3.2.1"
+      sources."ansi-styles-4.3.0"
       sources."ansicolors-0.3.2"
+      sources."arg-4.1.3"
       sources."array-flatten-1.1.1"
       sources."array-union-2.1.0"
       sources."async-limiter-1.0.1"
       sources."backo2-1.0.2"
+      sources."balanced-match-1.0.2"
+      sources."base64-js-1.5.1"
       (sources."body-parser-1.18.2" // {
         dependencies = [
           sources."debug-2.6.9"
           sources."ms-2.0.0"
         ];
       })
+      sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
+      sources."buffer-5.7.1"
+      sources."buffer-from-1.1.2"
       sources."bytes-3.0.0"
+      sources."callsites-3.1.0"
       sources."cardinal-2.1.1"
-      sources."chalk-2.4.2"
+      sources."chalk-4.1.2"
       sources."chroma-js-2.1.2"
-      (sources."clean-stack-3.0.1" // {
-        dependencies = [
-          sources."escape-string-regexp-4.0.0"
-        ];
-      })
+      sources."clean-stack-3.0.1"
       (sources."cli-ux-4.9.3" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
+          sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
           sources."clean-stack-2.2.0"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."escape-string-regexp-1.0.5"
           sources."fs-extra-7.0.1"
+          sources."has-flag-3.0.0"
           sources."indent-string-3.2.0"
           sources."is-wsl-1.1.0"
           sources."semver-5.7.1"
           sources."strip-ansi-5.2.0"
+          sources."supports-color-5.5.0"
+          sources."tslib-1.14.1"
         ];
       })
-      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."concat-map-0.0.1"
       sources."content-disposition-0.5.2"
       sources."content-type-1.0.4"
       sources."cookie-0.3.1"
       sources."cookie-signature-1.0.6"
+      sources."cosmiconfig-7.0.1"
+      sources."cosmiconfig-toml-loader-1.0.0"
+      sources."create-require-1.1.1"
       (sources."cross-env-6.0.3" // {
         dependencies = [
           sources."cross-spawn-7.0.3"
@@ -97315,18 +97556,24 @@ in
           sources."semver-5.7.1"
         ];
       })
+      sources."cross-undici-fetch-0.1.4"
       sources."cwise-compiler-1.1.3"
-      sources."debug-4.3.2"
+      sources."dataloader-2.0.0"
+      sources."debug-4.3.3"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
+      sources."diff-4.0.2"
       sources."dir-glob-3.0.1"
+      sources."dset-3.1.1"
       sources."ee-first-1.1.1"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
+      sources."error-ex-1.3.2"
       sources."escape-html-1.0.3"
-      sources."escape-string-regexp-1.0.5"
+      sources."escape-string-regexp-4.0.0"
       sources."esprima-4.0.1"
       sources."etag-1.8.1"
+      sources."event-target-shim-5.0.1"
       sources."eventemitter3-3.1.2"
       (sources."express-4.16.3" // {
         dependencies = [
@@ -97334,6 +97581,7 @@ in
           sources."ms-2.0.0"
         ];
       })
+      sources."extract-files-11.0.0"
       sources."extract-stack-1.0.0"
       sources."fast-glob-3.2.7"
       sources."fastq-1.13.0"
@@ -97344,6 +97592,8 @@ in
           sources."ms-2.0.0"
         ];
       })
+      sources."form-data-encoder-1.7.1"
+      sources."formdata-node-4.3.1"
       sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."fs-extra-8.1.0"
@@ -97351,23 +97601,33 @@ in
       sources."globby-11.0.4"
       sources."graceful-fs-4.2.8"
       sources."graphql-15.4.0"
-      (sources."graphql-language-service-interface-2.9.1" // {
+      sources."graphql-config-4.1.0"
+      (sources."graphql-language-service-interface-2.10.2" // {
         dependencies = [
-          sources."graphql-language-service-utils-2.6.0"
+          sources."graphql-language-service-utils-2.7.1"
         ];
       })
-      sources."graphql-language-service-parser-1.10.0"
-      sources."graphql-language-service-types-1.8.3"
+      sources."graphql-language-service-parser-1.10.4"
+      sources."graphql-language-service-types-1.8.7"
       sources."graphql-language-service-utils-2.5.1"
-      sources."has-flag-3.0.0"
+      sources."graphql-sse-1.0.6"
+      sources."graphql-ws-5.5.5"
+      sources."has-flag-4.0.0"
       sources."http-errors-1.6.3"
       sources."hyperlinker-1.0.0"
       sources."iconv-lite-0.4.19"
+      sources."ieee754-1.2.1"
       sources."ignore-5.1.9"
+      (sources."import-fresh-3.3.0" // {
+        dependencies = [
+          sources."resolve-from-4.0.0"
+        ];
+      })
       sources."indent-string-4.0.0"
       sources."inherits-2.0.3"
       sources."iota-array-1.0.0"
       sources."ipaddr.js-1.9.1"
+      sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
@@ -97380,21 +97640,28 @@ in
       sources."isomorphic-ws-4.0.1"
       sources."iterall-1.3.0"
       sources."jpeg-js-0.4.3"
+      sources."js-tokens-4.0.0"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."jsonfile-4.0.0"
       sources."lazyness-1.2.0"
+      sources."lines-and-columns-1.2.4"
       sources."lodash-4.17.21"
       sources."lodash._reinterpolate-3.0.0"
+      sources."lodash.get-4.4.2"
       sources."lodash.template-4.5.0"
       sources."lodash.templatesettings-4.2.0"
       sources."lru-cache-6.0.0"
+      sources."make-error-1.3.6"
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."merge2-1.4.1"
+      sources."meros-1.1.4"
       sources."methods-1.1.2"
       sources."micromatch-4.0.4"
       sources."mime-1.4.1"
       sources."mime-db-1.51.0"
       sources."mime-types-2.1.34"
+      sources."minimatch-3.0.4"
       sources."ms-2.1.2"
       sources."ndarray-1.0.19"
       sources."ndarray-pack-1.2.1"
@@ -97402,11 +97669,16 @@ in
       sources."nextgen-events-1.5.2"
       sources."nice-try-1.0.5"
       sources."node-bitmap-0.0.1"
+      sources."node-domexception-1.0.0"
       sources."node-fetch-2.6.6"
+      sources."normalize-path-2.1.1"
       sources."nullthrows-1.1.1"
       sources."omggif-1.0.10"
       sources."on-finished-2.3.0"
       sources."open-7.3.1"
+      sources."p-limit-3.1.0"
+      sources."parent-module-1.0.1"
+      sources."parse-json-5.2.0"
       sources."parseurl-1.3.3"
       sources."password-prompt-1.1.2"
       sources."path-key-2.0.1"
@@ -97426,6 +97698,8 @@ in
         ];
       })
       sources."redeyed-2.1.1"
+      sources."remove-trailing-separator-1.1.0"
+      sources."resolve-from-5.0.0"
       sources."reusify-1.0.4"
       sources."run-parallel-1.2.0"
       sources."safe-buffer-5.1.1"
@@ -97443,7 +97717,10 @@ in
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."slash-3.0.0"
+      sources."source-map-0.6.1"
+      sources."source-map-support-0.5.21"
       sources."statuses-1.4.0"
+      sources."string-env-interpolation-1.0.1"
       sources."string-kit-0.11.10"
       sources."string-width-4.2.3"
       sources."strip-ansi-6.0.1"
@@ -97452,40 +97729,49 @@ in
           sources."ws-5.2.3"
         ];
       })
-      sources."supports-color-5.5.0"
+      sources."supports-color-7.2.0"
       (sources."supports-hyperlinks-1.0.1" // {
         dependencies = [
           sources."has-flag-2.0.0"
+          (sources."supports-color-5.5.0" // {
+            dependencies = [
+              sources."has-flag-3.0.0"
+            ];
+          })
         ];
       })
       sources."symbol-observable-1.2.0"
+      sources."sync-fetch-0.3.1"
       sources."terminal-kit-1.49.4"
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
       sources."tree-kit-0.7.4"
       sources."treeify-1.1.0"
-      sources."tslib-1.14.1"
+      sources."ts-node-9.1.1"
+      sources."tslib-2.3.1"
       sources."type-is-1.6.18"
+      sources."undici-4.12.0"
       sources."uniq-1.0.1"
       sources."universalify-0.1.2"
+      sources."unixify-1.0.0"
       sources."unpipe-1.0.0"
       sources."utils-merge-1.0.1"
+      sources."valid-url-1.0.9"
+      sources."value-or-promise-1.0.11"
       sources."vary-1.1.2"
       sources."vscode-languageserver-types-3.16.0"
+      sources."web-streams-polyfill-4.0.0-beta.1"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-fetch-3.6.2"
       sources."whatwg-url-5.0.0"
       sources."which-1.3.1"
       sources."widest-line-3.1.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."wrap-ansi-7.0.0"
       sources."ws-7.4.2"
       sources."yallist-4.0.0"
+      sources."yaml-1.10.2"
+      sources."yn-3.1.1"
+      sources."yocto-queue-0.1.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -97794,7 +98080,7 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      sources."systeminformation-5.9.13"
+      sources."systeminformation-5.9.17"
       sources."term-canvas-0.0.5"
       sources."type-fest-0.21.3"
       sources."wordwrap-0.0.3"
@@ -98690,7 +98976,7 @@ in
       sources."param-case-2.1.1"
       sources."relateurl-0.2.7"
       sources."source-map-0.6.1"
-      sources."uglify-js-3.14.3"
+      sources."uglify-js-3.14.5"
       sources."upper-case-1.1.3"
     ];
     buildInputs = globalBuildInputs;
@@ -98706,29 +98992,23 @@ in
   htmlhint = nodeEnv.buildNodePackage {
     name = "htmlhint";
     packageName = "htmlhint";
-    version = "0.16.1";
+    version = "1.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/htmlhint/-/htmlhint-0.16.1.tgz";
-      sha512 = "5uxZsGTC8ILh9W9K/7eJ2pCfP7Hj4VEF2wLlm56qhMvvnXbzfgdRgSwBPqtY46jSWWJAv9J1SegFLI3xfwIteQ==";
+      url = "https://registry.npmjs.org/htmlhint/-/htmlhint-1.0.0.tgz";
+      sha512 = "Z+8hVuoHHRoWRUMWE7ehtNVJbED/sbmIFN/azvNnBMliF9vgdTISdATUnPvA1Y5B6FV4tDPFCMrJ5+gvKIZ2rQ==";
     };
     dependencies = [
-      sources."@types/node-16.11.7"
-      sources."@types/node-fetch-2.5.12"
       sources."ansi-styles-4.3.0"
-      sources."async-3.2.0"
-      sources."asynckit-0.4.0"
+      sources."async-3.2.2"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."chalk-4.1.0"
+      sources."chalk-4.1.2"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."combined-stream-1.0.8"
-      sources."commander-5.1.0"
+      sources."commander-8.3.0"
       sources."concat-map-0.0.1"
-      sources."delayed-stream-1.0.0"
-      sources."form-data-3.0.1"
       sources."fs.realpath-1.0.0"
-      sources."glob-7.1.7"
+      sources."glob-7.2.0"
       sources."glob-base-0.3.0"
       sources."glob-parent-2.0.0"
       sources."has-flag-4.0.0"
@@ -98737,8 +99017,6 @@ in
       sources."is-dotfile-1.0.3"
       sources."is-extglob-1.0.0"
       sources."is-glob-2.0.1"
-      sources."mime-db-1.51.0"
-      sources."mime-types-2.1.34"
       sources."minimatch-3.0.4"
       sources."node-fetch-2.6.6"
       sources."once-1.4.0"
@@ -98778,7 +99056,7 @@ in
       sources."corser-2.0.1"
       sources."debug-3.2.7"
       sources."eventemitter3-4.0.7"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
       sources."has-1.0.3"
@@ -98792,10 +99070,10 @@ in
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."ms-2.1.3"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."opener-1.5.2"
       sources."portfinder-1.0.28"
-      sources."qs-6.10.1"
+      sources."qs-6.10.2"
       sources."requires-port-1.0.0"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
@@ -98826,7 +99104,7 @@ in
     dependencies = [
       sources."bcfg-0.1.7"
       sources."bcrypto-5.4.0"
-      sources."bcurl-0.1.9"
+      sources."bcurl-0.1.10"
       sources."bdb-1.3.0"
       sources."bdns-0.1.5"
       sources."bevent-0.1.5"
@@ -98906,7 +99184,7 @@ in
     };
     dependencies = [
       sources."bcfg-0.1.7"
-      sources."bcurl-0.1.9"
+      sources."bcurl-0.1.10"
       sources."brq-0.1.8"
       sources."bsert-0.0.10"
       sources."bsock-0.1.9"
@@ -98988,7 +99266,7 @@ in
     dependencies = [
       sources."@fast-csv/format-4.3.5"
       sources."@fast-csv/parse-4.3.6"
-      sources."@types/node-14.17.33"
+      sources."@types/node-14.18.0"
       sources."ajv-6.12.6"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
@@ -98997,7 +99275,7 @@ in
       sources."assert-plus-1.0.0"
       sources."async-2.6.3"
       sources."asynckit-0.4.0"
-      sources."aws-sdk-2.1029.0"
+      sources."aws-sdk-2.1046.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."base64-js-1.5.1"
@@ -99018,7 +99296,7 @@ in
       sources."css-what-2.1.3"
       sources."cycle-1.0.3"
       sources."dashdash-1.14.1"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."deep-is-0.1.4"
       sources."delayed-stream-1.0.0"
       sources."dom-serializer-0.1.1"
@@ -99064,7 +99342,7 @@ in
       sources."jmespath-0.15.0"
       sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       (sources."jsonpath-1.1.1" // {
@@ -99072,7 +99350,7 @@ in
           sources."esprima-1.2.2"
         ];
       })
-      (sources."jsprim-1.4.1" // {
+      (sources."jsprim-1.4.2" // {
         dependencies = [
           sources."verror-1.10.0"
         ];
@@ -99321,10 +99599,10 @@ in
       sources."js-yaml-3.6.1"
       sources."jsbn-0.1.1"
       sources."jschardet-1.6.0"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."kind-of-3.2.2"
       sources."latest-version-1.0.1"
       sources."lazy-cache-1.0.4"
@@ -99539,7 +99817,7 @@ in
     };
     dependencies = [
       sources."@jcubic/lily-0.3.0"
-      sources."@types/jquery-3.5.8"
+      sources."@types/jquery-3.5.10"
       sources."@types/sizzle-2.3.3"
       sources."ansidec-0.3.4"
       sources."arch-2.2.0"
@@ -99568,7 +99846,7 @@ in
       sources."is-wsl-2.2.0"
       sources."isexe-2.0.0"
       sources."jquery-3.6.0"
-      sources."jquery.terminal-2.29.4"
+      sources."jquery.terminal-2.30.1"
       sources."jsonfile-2.4.0"
       sources."keyboardevent-key-polyfill-1.1.0"
       sources."line-reader-0.4.0"
@@ -99587,7 +99865,7 @@ in
       sources."semver-5.7.1"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."strip-eof-1.0.0"
       sources."wcwidth-1.0.1"
       sources."which-1.3.1"
@@ -99607,10 +99885,10 @@ in
   intelephense = nodeEnv.buildNodePackage {
     name = "intelephense";
     packageName = "intelephense";
-    version = "1.7.1";
+    version = "1.8.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/intelephense/-/intelephense-1.7.1.tgz";
-      sha512 = "fIAeUVrsGs2/yX/GopLwXIw17t3aekM1KrOJ7r9xJhA1VlGoR+YtIFxdXLcOnC1oRRdBkEz46xZEHZh5W+3vwQ==";
+      url = "https://registry.npmjs.org/intelephense/-/intelephense-1.8.0.tgz";
+      sha512 = "DigAEcRfvGX1f/FExvvHTuImCu9EC7XtvAFDISsXvMTFTnMlAnNKcQvcVcZDWREa9NRKXSH5HD8a7lV+a25eBg==";
     };
     dependencies = [
       sources."@bmewburn/js-beautify-1.13.0"
@@ -99681,14 +99959,14 @@ in
       sources."diagnostic-channel-publishers-0.4.4"
       (sources."dom-serializer-1.3.2" // {
         dependencies = [
-          sources."domhandler-4.2.2"
+          sources."domhandler-4.3.0"
         ];
       })
       sources."domelementtype-2.2.0"
       sources."domhandler-3.3.0"
       (sources."domutils-2.8.0" // {
         dependencies = [
-          sources."domhandler-4.2.2"
+          sources."domhandler-4.3.0"
         ];
       })
       sources."ecc-jsbn-0.1.2"
@@ -99730,11 +100008,11 @@ in
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-6.1.0"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."lodash-4.17.21"
       sources."long-4.0.0"
       (sources."lru-cache-6.0.0" // {
@@ -99777,17 +100055,17 @@ in
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."typescript-4.4.4"
+      sources."typescript-4.5.4"
       sources."universalify-2.0.0"
       sources."uri-js-4.4.1"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
-      (sources."vscode-css-languageservice-5.1.8" // {
+      (sources."vscode-css-languageservice-5.1.9" // {
         dependencies = [
           sources."vscode-languageserver-types-3.16.0"
         ];
       })
-      (sources."vscode-html-languageservice-4.1.1" // {
+      (sources."vscode-html-languageservice-4.2.1" // {
         dependencies = [
           sources."vscode-languageserver-types-3.16.0"
         ];
@@ -99804,7 +100082,7 @@ in
           sources."vscode-languageserver-types-3.16.0"
         ];
       })
-      sources."vscode-languageserver-textdocument-1.0.2"
+      sources."vscode-languageserver-textdocument-1.0.3"
       sources."vscode-languageserver-types-3.17.0-next.1"
       sources."vscode-nls-5.0.0"
       sources."vscode-uri-3.0.2"
@@ -99855,7 +100133,7 @@ in
       sources."asynckit-0.4.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.1"
       sources."call-bind-1.0.2"
       (sources."chalk-3.0.0" // {
         dependencies = [
@@ -99877,7 +100155,7 @@ in
       sources."core-util-is-1.0.3"
       sources."cross-spawn-7.0.3"
       sources."data-uri-to-buffer-3.0.1"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."deep-is-0.1.4"
       sources."degenerator-2.2.0"
       sources."delayed-stream-1.0.0"
@@ -99933,7 +100211,7 @@ in
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."has-symbols-1.0.2"
-      sources."http-errors-1.7.3"
+      sources."http-errors-1.8.1"
       sources."http-proxy-agent-4.0.1"
       sources."https-proxy-agent-5.0.0"
       sources."iconv-lite-0.4.24"
@@ -100009,7 +100287,7 @@ in
           sources."path-key-2.0.1"
         ];
       })
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
       sources."open-7.4.2"
@@ -100030,8 +100308,8 @@ in
       sources."proxy-agent-4.0.1"
       sources."proxy-from-env-1.1.0"
       sources."pump-3.0.0"
-      sources."qs-6.10.1"
-      sources."raw-body-2.4.1"
+      sources."qs-6.10.2"
+      sources."raw-body-2.4.2"
       sources."readable-stream-3.6.0"
       sources."restore-cursor-2.0.0"
       sources."rimraf-3.0.2"
@@ -100042,11 +100320,11 @@ in
       sources."safer-buffer-2.1.2"
       sources."sax-1.1.4"
       sources."semver-6.3.0"
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       (sources."slice-ansi-3.0.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -100093,7 +100371,7 @@ in
       sources."through-2.3.8"
       sources."through2-3.0.2"
       sources."tmp-0.0.33"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."tree-kill-1.2.2"
       sources."tslib-1.14.1"
       sources."type-check-0.3.2"
@@ -100116,7 +100394,7 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.5.5"
+      sources."ws-7.5.6"
       sources."xregexp-2.0.0"
       sources."yallist-3.1.1"
     ];
@@ -100142,9 +100420,9 @@ in
     dependencies = [
       sources."@iarna/toml-2.2.5"
       sources."@msgpack/msgpack-2.7.1"
-      sources."@ot-builder/bin-composite-types-1.3.1"
-      sources."@ot-builder/bin-util-1.3.1"
-      (sources."@ot-builder/cli-help-shower-1.3.1" // {
+      sources."@ot-builder/bin-composite-types-1.3.2"
+      sources."@ot-builder/bin-util-1.3.2"
+      (sources."@ot-builder/cli-help-shower-1.3.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.2"
@@ -100154,39 +100432,39 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      sources."@ot-builder/cli-proc-1.3.1"
-      sources."@ot-builder/cli-shared-1.3.1"
-      sources."@ot-builder/common-impl-1.3.1"
-      sources."@ot-builder/errors-1.3.1"
-      sources."@ot-builder/io-bin-cff-1.3.1"
-      sources."@ot-builder/io-bin-encoding-1.3.1"
-      sources."@ot-builder/io-bin-ext-private-1.3.1"
-      sources."@ot-builder/io-bin-font-1.3.1"
-      sources."@ot-builder/io-bin-glyph-store-1.3.1"
-      sources."@ot-builder/io-bin-layout-1.3.1"
-      sources."@ot-builder/io-bin-metadata-1.3.1"
-      sources."@ot-builder/io-bin-metric-1.3.1"
-      sources."@ot-builder/io-bin-name-1.3.1"
-      sources."@ot-builder/io-bin-sfnt-1.3.1"
-      sources."@ot-builder/io-bin-ttf-1.3.1"
-      sources."@ot-builder/io-bin-vtt-private-1.3.1"
-      sources."@ot-builder/ot-1.3.1"
-      sources."@ot-builder/ot-encoding-1.3.1"
-      sources."@ot-builder/ot-ext-private-1.3.1"
-      sources."@ot-builder/ot-glyphs-1.3.1"
-      sources."@ot-builder/ot-layout-1.3.1"
-      sources."@ot-builder/ot-metadata-1.3.1"
-      sources."@ot-builder/ot-name-1.3.1"
-      sources."@ot-builder/ot-sfnt-1.3.1"
-      sources."@ot-builder/ot-standard-glyph-namer-1.3.1"
-      sources."@ot-builder/ot-vtt-private-1.3.1"
-      sources."@ot-builder/prelude-1.3.1"
-      sources."@ot-builder/primitive-1.3.1"
-      sources."@ot-builder/rectify-1.3.1"
-      sources."@ot-builder/stat-glyphs-1.3.1"
-      sources."@ot-builder/trace-1.3.1"
-      sources."@ot-builder/var-store-1.3.1"
-      sources."@ot-builder/variance-1.3.1"
+      sources."@ot-builder/cli-proc-1.3.2"
+      sources."@ot-builder/cli-shared-1.3.2"
+      sources."@ot-builder/common-impl-1.3.2"
+      sources."@ot-builder/errors-1.3.2"
+      sources."@ot-builder/io-bin-cff-1.3.2"
+      sources."@ot-builder/io-bin-encoding-1.3.2"
+      sources."@ot-builder/io-bin-ext-private-1.3.2"
+      sources."@ot-builder/io-bin-font-1.3.2"
+      sources."@ot-builder/io-bin-glyph-store-1.3.2"
+      sources."@ot-builder/io-bin-layout-1.3.2"
+      sources."@ot-builder/io-bin-metadata-1.3.2"
+      sources."@ot-builder/io-bin-metric-1.3.2"
+      sources."@ot-builder/io-bin-name-1.3.2"
+      sources."@ot-builder/io-bin-sfnt-1.3.2"
+      sources."@ot-builder/io-bin-ttf-1.3.2"
+      sources."@ot-builder/io-bin-vtt-private-1.3.2"
+      sources."@ot-builder/ot-1.3.2"
+      sources."@ot-builder/ot-encoding-1.3.2"
+      sources."@ot-builder/ot-ext-private-1.3.2"
+      sources."@ot-builder/ot-glyphs-1.3.2"
+      sources."@ot-builder/ot-layout-1.3.2"
+      sources."@ot-builder/ot-metadata-1.3.2"
+      sources."@ot-builder/ot-name-1.3.2"
+      sources."@ot-builder/ot-sfnt-1.3.2"
+      sources."@ot-builder/ot-standard-glyph-namer-1.3.2"
+      sources."@ot-builder/ot-vtt-private-1.3.2"
+      sources."@ot-builder/prelude-1.3.2"
+      sources."@ot-builder/primitive-1.3.2"
+      sources."@ot-builder/rectify-1.3.2"
+      sources."@ot-builder/stat-glyphs-1.3.2"
+      sources."@ot-builder/trace-1.3.2"
+      sources."@ot-builder/var-store-1.3.2"
+      sources."@ot-builder/variance-1.3.2"
       sources."@unicode/unicode-13.0.0-1.2.1"
       sources."@xmldom/xmldom-0.7.5"
       sources."aglfn-1.0.2"
@@ -100268,8 +100546,8 @@ in
       sources."once-1.4.0"
       sources."onetime-5.1.2"
       sources."optionator-0.8.3"
-      sources."ot-builder-1.3.1"
-      sources."otb-ttc-bundle-1.3.1"
+      sources."ot-builder-1.3.2"
+      sources."otb-ttc-bundle-1.3.2"
       sources."passerror-1.1.1"
       sources."patel-0.35.1"
       sources."path-is-absolute-1.0.1"
@@ -100289,7 +100567,7 @@ in
         ];
       })
       sources."seq-0.3.5"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."source-map-0.6.1"
       sources."source-map-resolve-0.6.0"
       sources."spiro-3.0.0"
@@ -100310,7 +100588,7 @@ in
       sources."typo-geom-0.12.1"
       sources."unicoderegexp-0.4.1"
       sources."universalify-2.0.0"
-      (sources."verda-1.4.2" // {
+      (sources."verda-1.4.3" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.2"
@@ -100318,7 +100596,8 @@ in
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
           sources."supports-color-7.2.0"
-          sources."yargs-17.2.1"
+          sources."yargs-17.3.0"
+          sources."yargs-parser-21.0.0"
         ];
       })
       sources."wawoff2-2.0.0"
@@ -100527,7 +100806,7 @@ in
       sources."async-mutex-0.1.4"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      (sources."aws-sdk-2.1029.0" // {
+      (sources."aws-sdk-2.1046.0" // {
         dependencies = [
           sources."sax-1.2.1"
           sources."uuid-3.3.2"
@@ -100569,7 +100848,7 @@ in
       sources."color-3.1.2"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.6.0"
+      sources."color-string-1.9.0"
       sources."combined-stream-1.0.8"
       sources."command-line-usage-4.1.0"
       sources."commander-2.17.1"
@@ -100593,7 +100872,7 @@ in
         ];
       })
       sources."cwise-compiler-1.1.3"
-      sources."d3-7.1.1"
+      sources."d3-7.2.1"
       sources."d3-array-3.1.1"
       sources."d3-axis-3.0.0"
       sources."d3-brush-3.0.0"
@@ -100613,9 +100892,9 @@ in
       sources."d3-ease-3.0.1"
       sources."d3-fetch-3.0.1"
       sources."d3-force-3.0.0"
-      sources."d3-format-3.0.1"
+      sources."d3-format-3.1.0"
       sources."d3-geo-3.0.1"
-      sources."d3-hierarchy-3.0.1"
+      sources."d3-hierarchy-3.1.1"
       sources."d3-interpolate-3.0.1"
       sources."d3-path-3.0.1"
       sources."d3-polygon-3.0.1"
@@ -100626,7 +100905,7 @@ in
       sources."d3-selection-3.0.0"
       sources."d3-shape-3.0.1"
       sources."d3-time-3.0.0"
-      sources."d3-time-format-4.0.0"
+      sources."d3-time-format-4.1.0"
       sources."d3-timer-3.0.1"
       sources."d3-transition-3.0.1"
       sources."d3-voronoi-1.1.4"
@@ -100682,16 +100961,16 @@ in
       sources."diff-match-patch-1.0.5"
       (sources."dom-serializer-1.3.2" // {
         dependencies = [
-          sources."domhandler-4.2.2"
+          sources."domhandler-4.3.0"
         ];
       })
       sources."domelementtype-2.2.0"
       sources."domexception-1.0.1"
       sources."domhandler-3.3.0"
-      sources."dompurify-2.3.3"
+      sources."dompurify-2.3.4"
       (sources."domutils-2.8.0" // {
         dependencies = [
-          sources."domhandler-4.2.2"
+          sources."domhandler-4.3.0"
         ];
       })
       sources."ecc-jsbn-0.1.2"
@@ -100729,7 +101008,7 @@ in
       sources."file-uri-to-path-1.0.0"
       sources."fill-range-7.0.1"
       sources."find-up-2.1.0"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."font-awesome-filetypes-2.1.0"
       sources."for-each-property-0.0.4"
       sources."for-each-property-deep-0.0.3"
@@ -100844,11 +101123,11 @@ in
       sources."js-yaml-4.1.0"
       sources."jsbn-0.1.1"
       sources."jsdom-15.2.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-2.4.0"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       (sources."katex-0.13.24" // {
         dependencies = [
           sources."commander-8.3.0"
@@ -100867,7 +101146,6 @@ in
       sources."lodash.padend-4.6.1"
       sources."lodash.repeat-4.1.0"
       sources."lodash.sortby-4.7.0"
-      sources."lodash.toarray-4.4.0"
       sources."loose-envify-1.4.0"
       sources."lower-case-1.1.4"
       (sources."lowlight-1.9.2" // {
@@ -100907,7 +101185,7 @@ in
       sources."md5-2.3.0"
       sources."md5-file-4.0.0"
       sources."mdurl-1.0.1"
-      sources."mermaid-8.13.3"
+      sources."mermaid-8.13.6"
       sources."mime-db-1.51.0"
       sources."mime-types-2.1.34"
       sources."mimic-response-2.1.0"
@@ -101043,7 +101321,7 @@ in
         ];
       })
       sources."requires-port-1.0.0"
-      sources."reselect-4.1.3"
+      sources."reselect-4.1.5"
       sources."resolve-url-0.2.1"
       sources."retry-0.10.1"
       sources."rimraf-2.7.1"
@@ -101070,7 +101348,7 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."shellwords-0.1.1"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."simple-concat-1.0.1"
       sources."simple-get-3.1.0"
       sources."simple-swizzle-0.2.2"
@@ -101113,7 +101391,7 @@ in
         ];
       })
       sources."strip-json-comments-2.0.1"
-      sources."stylis-4.0.10"
+      sources."stylis-4.0.13"
       sources."supports-color-7.2.0"
       sources."symbol-observable-1.2.0"
       sources."symbol-tree-3.2.4"
@@ -101135,13 +101413,12 @@ in
         ];
       })
       sources."terminal-kit-1.49.4"
-      (sources."tkwidgets-0.5.26" // {
+      (sources."tkwidgets-0.5.27" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
           sources."has-flag-3.0.0"
           sources."is-fullwidth-code-point-2.0.0"
-          sources."node-emoji-git+https://github.com/laurent22/node-emoji.git"
           sources."string-width-2.1.1"
           sources."supports-color-5.5.0"
         ];
@@ -101199,7 +101476,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.5.5"
+      sources."ws-7.5.6"
       sources."xml-name-validator-3.0.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
@@ -101290,7 +101567,7 @@ in
       sha512 = "sxKt7h0vzCd+3Y81Ey2qinupL6DpRSZJclS04ugHDNmRUXGzqicMJ6iwayhSA0S0DwwX30c5ozyUthr1QKF6uw==";
     };
     dependencies = [
-      sources."@babel/parser-7.16.3"
+      sources."@babel/parser-7.16.6"
       sources."argparse-1.0.10"
       sources."bluebird-3.7.2"
       sources."catharsis-0.9.0"
@@ -101311,7 +101588,7 @@ in
       sources."strip-json-comments-3.1.1"
       sources."taffydb-2.6.2"
       sources."uc.micro-1.0.6"
-      sources."underscore-1.13.1"
+      sources."underscore-1.13.2"
       sources."xmlcreate-2.0.4"
     ];
     buildInputs = globalBuildInputs;
@@ -101407,7 +101684,7 @@ in
       sources."difflib-0.2.4"
       sources."dreamopt-0.6.0"
       sources."es5-ext-0.8.2"
-      sources."heap-0.2.6"
+      sources."heap-0.2.7"
       sources."wordwrap-1.0.0"
     ];
     buildInputs = globalBuildInputs;
@@ -101457,11 +101734,11 @@ in
       sources."mime-types-2.1.34"
       sources."ms-2.1.3"
       sources."native-promise-only-0.8.1"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."path-loader-1.0.10"
       sources."process-nextick-args-2.0.1"
       sources."punycode-2.1.1"
-      sources."qs-6.10.1"
+      sources."qs-6.10.2"
       sources."readable-stream-2.3.7"
       sources."safe-buffer-5.1.2"
       sources."side-channel-1.0.4"
@@ -101499,9 +101776,9 @@ in
       sources."ansi-styles-4.3.0"
       sources."array-flatten-1.1.1"
       sources."basic-auth-2.0.1"
-      sources."body-parser-1.19.0"
+      sources."body-parser-1.19.1"
       sources."boxen-5.1.2"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.1"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."get-stream-5.2.0"
@@ -101547,7 +101824,18 @@ in
       sources."escape-goat-2.1.1"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      sources."express-4.17.1"
+      (sources."express-4.17.1" // {
+        dependencies = [
+          sources."body-parser-1.19.0"
+          sources."bytes-3.1.0"
+          sources."http-errors-1.7.2"
+          sources."inherits-2.0.3"
+          sources."qs-6.7.0"
+          sources."raw-body-2.4.0"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
+        ];
+      })
       (sources."express-urlrewrite-1.4.0" // {
         dependencies = [
           sources."path-to-regexp-1.8.0"
@@ -101564,11 +101852,11 @@ in
       sources."has-flag-4.0.0"
       sources."has-yarn-2.1.0"
       sources."http-cache-semantics-4.1.0"
-      sources."http-errors-1.7.2"
+      sources."http-errors-1.8.1"
       sources."iconv-lite-0.4.24"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
-      sources."inherits-2.0.3"
+      sources."inherits-2.0.4"
       sources."ini-2.0.0"
       sources."ipaddr.js-1.9.1"
       sources."is-ci-2.0.0"
@@ -101637,9 +101925,9 @@ in
       sources."proxy-addr-2.0.7"
       sources."pump-3.0.0"
       sources."pupa-2.1.1"
-      sources."qs-6.7.0"
+      sources."qs-6.9.6"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.0"
+      sources."raw-body-2.4.2"
       (sources."rc-1.2.8" // {
         dependencies = [
           sources."ini-1.3.8"
@@ -101660,13 +101948,16 @@ in
       })
       (sources."send-0.17.1" // {
         dependencies = [
+          sources."http-errors-1.7.3"
           sources."ms-2.1.1"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
       sources."serve-static-1.14.1"
       sources."server-destroy-1.0.1"
-      sources."setprototypeof-1.1.1"
-      sources."signal-exit-3.0.5"
+      sources."setprototypeof-1.2.0"
+      sources."signal-exit-3.0.6"
       sources."statuses-1.5.0"
       sources."steno-0.4.4"
       sources."string-width-4.2.3"
@@ -101674,7 +101965,7 @@ in
       sources."strip-json-comments-2.0.1"
       sources."supports-color-7.2.0"
       sources."to-readable-stream-1.0.0"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."type-fest-0.20.2"
       sources."type-is-1.6.18"
       sources."typedarray-to-buffer-3.1.5"
@@ -101691,8 +101982,8 @@ in
       sources."xdg-basedir-4.0.0"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
-      sources."yargs-17.2.1"
-      sources."yargs-parser-20.2.9"
+      sources."yargs-17.3.0"
+      sources."yargs-parser-21.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -101768,10 +102059,10 @@ in
       sources."bcrypt-pbkdf-1.0.2"
       sources."binary-extensions-1.13.1"
       sources."bindings-1.5.0"
-      sources."body-parser-1.19.0"
+      sources."body-parser-1.19.1"
       sources."boxen-0.6.0"
       sources."braces-1.8.5"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.1"
       (sources."cache-base-1.0.1" // {
         dependencies = [
           sources."isobject-3.0.1"
@@ -101852,7 +102143,18 @@ in
       sources."etag-1.8.1"
       sources."expand-brackets-0.1.5"
       sources."expand-range-1.8.2"
-      sources."express-4.17.1"
+      (sources."express-4.17.1" // {
+        dependencies = [
+          sources."body-parser-1.19.0"
+          sources."bytes-3.1.0"
+          sources."http-errors-1.7.2"
+          sources."inherits-2.0.3"
+          sources."qs-6.7.0"
+          sources."raw-body-2.4.0"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
+        ];
+      })
       sources."extend-3.0.2"
       (sources."extend-shallow-3.0.2" // {
         dependencies = [
@@ -101905,11 +102207,11 @@ in
         ];
       })
       sources."hosted-git-info-2.8.9"
-      sources."http-errors-1.7.2"
+      sources."http-errors-1.8.1"
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
       sources."imurmurhash-0.1.4"
-      sources."inherits-2.0.3"
+      sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."invert-kv-1.0.0"
       sources."ipaddr.js-1.9.1"
@@ -101962,11 +102264,11 @@ in
       sources."jju-1.4.0"
       sources."jsbn-0.1.1"
       sources."json-parse-helpfulerror-1.0.3"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-server-0.8.23"
       sources."json-stringify-safe-5.0.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."kind-of-3.2.2"
       sources."latest-version-2.0.0"
       sources."lazy-req-1.1.0"
@@ -102067,7 +102369,7 @@ in
       sources."proxy-addr-2.0.7"
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
-      sources."qs-6.7.0"
+      sources."qs-6.9.6"
       (sources."randomatic-3.1.1" // {
         dependencies = [
           sources."is-number-4.0.0"
@@ -102075,7 +102377,7 @@ in
         ];
       })
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.0"
+      sources."raw-body-2.4.2"
       sources."rc-1.2.8"
       sources."read-all-stream-3.1.0"
       sources."read-pkg-1.1.0"
@@ -102157,7 +102459,10 @@ in
       sources."semver-diff-2.1.0"
       (sources."send-0.17.1" // {
         dependencies = [
+          sources."http-errors-1.7.3"
           sources."ms-2.1.1"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
       sources."serve-static-1.14.1"
@@ -102168,7 +102473,7 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."slide-1.1.6"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
@@ -102237,7 +102542,7 @@ in
           sources."is-number-3.0.0"
         ];
       })
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
@@ -102308,32 +102613,21 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@oclif/command-1.8.0"
-      (sources."@oclif/config-1.17.0" // {
-        dependencies = [
-          sources."tslib-2.3.1"
-        ];
-      })
-      (sources."@oclif/core-0.5.41" // {
+      sources."@oclif/command-1.8.15"
+      sources."@oclif/config-1.18.2"
+      sources."@oclif/errors-1.3.5"
+      (sources."@oclif/help-1.0.1" // {
         dependencies = [
-          sources."fs-extra-9.1.0"
-          sources."jsonfile-6.1.0"
-          sources."tslib-2.3.1"
-          sources."universalify-2.0.0"
+          sources."wrap-ansi-6.2.0"
         ];
       })
-      sources."@oclif/errors-1.3.5"
       sources."@oclif/linewrap-1.0.0"
-      (sources."@oclif/parser-3.8.5" // {
+      sources."@oclif/parser-3.8.6"
+      (sources."@oclif/plugin-help-3.3.1" // {
         dependencies = [
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."escape-string-regexp-1.0.5"
+          sources."wrap-ansi-6.2.0"
         ];
       })
-      sources."@oclif/plugin-help-3.3.0"
       sources."@oclif/screen-1.0.4"
       (sources."@putdotio/api-client-8.19.0" // {
         dependencies = [
@@ -102348,7 +102642,6 @@ in
       sources."argparse-1.0.10"
       sources."array-union-2.1.0"
       sources."asynckit-0.4.0"
-      sources."at-least-node-1.0.0"
       (sources."axios-0.19.2" // {
         dependencies = [
           sources."debug-3.1.0"
@@ -102359,21 +102652,14 @@ in
       sources."braces-3.0.2"
       sources."call-bind-1.0.2"
       sources."cardinal-2.1.1"
-      (sources."chalk-4.1.2" // {
-        dependencies = [
-          sources."has-flag-4.0.0"
-          sources."supports-color-7.2.0"
-        ];
-      })
+      sources."chalk-4.1.2"
       sources."chardet-0.7.0"
       sources."clean-stack-3.0.1"
       sources."cli-cursor-3.1.0"
       sources."cli-progress-3.9.1"
-      (sources."cli-ux-5.6.3" // {
+      (sources."cli-ux-5.6.7" // {
         dependencies = [
-          sources."has-flag-4.0.0"
           sources."supports-color-8.1.1"
-          sources."tslib-2.3.1"
         ];
       })
       sources."cli-width-3.0.0"
@@ -102397,7 +102683,7 @@ in
         ];
       })
       sources."debounce-fn-3.0.1"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."delayed-stream-1.0.0"
       sources."dir-glob-3.0.1"
       sources."dot-prop-5.3.0"
@@ -102424,17 +102710,16 @@ in
       })
       sources."fill-range-7.0.1"
       sources."find-up-3.0.0"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."form-data-3.0.1"
       sources."fs-extra-8.1.0"
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
-      sources."get-package-type-0.1.0"
       sources."glob-parent-5.1.2"
       sources."globby-11.0.4"
       sources."graceful-fs-4.2.8"
       sources."has-1.0.3"
-      sources."has-flag-3.0.0"
+      sources."has-flag-4.0.0"
       sources."has-symbols-1.0.2"
       sources."hyperlinker-1.0.0"
       sources."iconv-lite-0.4.24"
@@ -102458,9 +102743,6 @@ in
       sources."jsonfile-4.0.0"
       sources."locate-path-3.0.0"
       sources."lodash-4.17.21"
-      sources."lodash._reinterpolate-3.0.0"
-      sources."lodash.template-4.5.0"
-      sources."lodash.templatesettings-4.2.0"
       sources."lru-cache-6.0.0"
       (sources."make-dir-3.1.0" // {
         dependencies = [
@@ -102479,7 +102761,7 @@ in
       sources."next-tick-1.0.0"
       sources."nice-try-1.0.5"
       sources."node-downloader-helper-1.0.19"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."object-treeify-1.1.33"
       sources."onetime-5.1.2"
       sources."os-tmpdir-1.0.2"
@@ -102497,35 +102779,34 @@ in
       sources."picomatch-2.3.0"
       sources."pkg-up-3.1.0"
       sources."punycode-2.1.1"
-      sources."qs-6.10.1"
+      sources."qs-6.10.2"
       sources."queue-microtask-1.2.3"
       sources."redeyed-2.1.1"
       sources."restore-cursor-3.1.0"
       sources."reusify-1.0.4"
       sources."run-async-2.4.1"
       sources."run-parallel-1.2.0"
-      sources."rxjs-6.6.7"
+      (sources."rxjs-6.6.7" // {
+        dependencies = [
+          sources."tslib-1.14.1"
+        ];
+      })
       sources."safer-buffer-2.1.2"
       sources."semver-7.3.5"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-3.0.0"
       sources."sprintf-js-1.0.3"
       sources."string-width-4.2.3"
       sources."strip-ansi-6.0.1"
-      sources."supports-color-5.5.0"
-      (sources."supports-hyperlinks-2.2.0" // {
-        dependencies = [
-          sources."has-flag-4.0.0"
-          sources."supports-color-7.2.0"
-        ];
-      })
+      sources."supports-color-7.2.0"
+      sources."supports-hyperlinks-2.2.0"
       sources."through-2.3.8"
       sources."tmp-0.0.33"
       sources."to-regex-range-5.0.1"
-      sources."tslib-1.14.1"
+      sources."tslib-2.3.1"
       sources."type-2.5.0"
       sources."type-fest-0.21.3"
       sources."typedarray-to-buffer-3.1.5"
@@ -102573,16 +102854,16 @@ in
   karma = nodeEnv.buildNodePackage {
     name = "karma";
     packageName = "karma";
-    version = "6.3.8";
+    version = "6.3.9";
     src = fetchurl {
-      url = "https://registry.npmjs.org/karma/-/karma-6.3.8.tgz";
-      sha512 = "10wBBU9S0lBHhbCNfmmbWQaY5C1bXlKdnvzN2QKThujCI/+DKaezrI08l6bfTlpJ92VsEboq3zYKpXwK6DOi3A==";
+      url = "https://registry.npmjs.org/karma/-/karma-6.3.9.tgz";
+      sha512 = "E/MqdLM9uVIhfuyVnrhlGBu4miafBdXEAEqCmwdEMh3n17C7UWC/8Kvm3AYKr91gc7scutekZ0xv6rxRaUCtnw==";
     };
     dependencies = [
       sources."@types/component-emitter-1.2.11"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."accepts-1.3.7"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
@@ -102591,10 +102872,10 @@ in
       sources."base64-arraybuffer-1.0.1"
       sources."base64id-2.0.0"
       sources."binary-extensions-2.2.0"
-      sources."body-parser-1.19.0"
+      sources."body-parser-1.19.1"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.1"
       sources."chokidar-3.5.2"
       sources."cliui-7.0.4"
       sources."color-convert-2.0.1"
@@ -102615,9 +102896,9 @@ in
       sources."ee-first-1.1.1"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
-      (sources."engine.io-6.0.1" // {
+      (sources."engine.io-6.1.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -102630,7 +102911,7 @@ in
       sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
       sources."flatted-2.0.2"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
@@ -102638,11 +102919,11 @@ in
       sources."glob-7.2.0"
       sources."glob-parent-5.1.2"
       sources."graceful-fs-4.2.8"
-      sources."http-errors-1.7.2"
+      sources."http-errors-1.8.1"
       sources."http-proxy-1.18.1"
       sources."iconv-lite-0.4.24"
       sources."inflight-1.0.6"
-      sources."inherits-2.0.3"
+      sources."inherits-2.0.4"
       sources."is-binary-path-2.1.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -102653,7 +102934,7 @@ in
       sources."lodash-4.17.21"
       (sources."log4js-6.3.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -102672,26 +102953,26 @@ in
       sources."path-is-absolute-1.0.1"
       sources."picomatch-2.3.0"
       sources."qjobs-1.2.0"
-      sources."qs-6.7.0"
+      sources."qs-6.9.6"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.0"
+      sources."raw-body-2.4.2"
       sources."readdirp-3.6.0"
       sources."require-directory-2.1.1"
       sources."requires-port-1.0.0"
       sources."rfdc-1.3.0"
       sources."rimraf-3.0.2"
       sources."safer-buffer-2.1.2"
-      sources."setprototypeof-1.1.1"
-      (sources."socket.io-4.3.2" // {
+      sources."setprototypeof-1.2.0"
+      (sources."socket.io-4.4.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
-      sources."socket.io-adapter-2.3.2"
+      sources."socket.io-adapter-2.3.3"
       (sources."socket.io-parser-4.0.4" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -102700,7 +102981,7 @@ in
       (sources."streamroller-2.2.4" // {
         dependencies = [
           sources."date-format-2.1.0"
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -102708,7 +102989,7 @@ in
       sources."strip-ansi-6.0.1"
       sources."tmp-0.2.1"
       sources."to-regex-range-5.0.1"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."type-is-1.6.18"
       sources."ua-parser-js-0.7.31"
       sources."universalify-0.1.2"
@@ -102736,49 +103017,47 @@ in
   keyoxide = nodeEnv.buildNodePackage {
     name = "keyoxide";
     packageName = "keyoxide";
-    version = "0.4.2";
+    version = "0.4.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/keyoxide/-/keyoxide-0.4.2.tgz";
-      sha512 = "JErcr+qnJbmS7ZwHlm5mFKzM162WtALhxaTdkr1SDhi8oS+hSVAniGACqIFfMNvGhODGh6iBipOpMVykAYKfNw==";
+      url = "https://registry.npmjs.org/keyoxide/-/keyoxide-0.4.3.tgz";
+      sha512 = "ffn0F9o3Yy6E9UFAS/vzOpsYxbVwk/pbSWrS3YPIZs+PtUv6zmwrkZ+71xSSb6tHBkJw5k93vOdkbo4cViFdFA==";
     };
     dependencies = [
       sources."@babel/cli-7.16.0"
       sources."@babel/code-frame-7.16.0"
-      sources."@babel/compat-data-7.16.0"
-      (sources."@babel/core-7.16.0" // {
+      sources."@babel/compat-data-7.16.4"
+      (sources."@babel/core-7.16.5" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/generator-7.16.0"
+      sources."@babel/generator-7.16.5"
       sources."@babel/helper-annotate-as-pure-7.16.0"
       (sources."@babel/helper-compilation-targets-7.16.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
-      sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
+      sources."@babel/helper-plugin-utils-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helpers-7.16.5"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/node-7.16.0"
-      sources."@babel/parser-7.16.3"
-      sources."@babel/plugin-syntax-jsx-7.16.0"
-      sources."@babel/plugin-transform-react-jsx-7.16.0"
-      sources."@babel/register-7.16.0"
+      sources."@babel/node-7.16.5"
+      sources."@babel/parser-7.16.6"
+      sources."@babel/plugin-syntax-jsx-7.16.5"
+      sources."@babel/plugin-transform-react-jsx-7.16.5"
+      sources."@babel/register-7.16.5"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@tootallnate/once-1.1.2"
       sources."@xmpp/base64-0.12.1"
@@ -102810,7 +103089,7 @@ in
       sources."@xmpp/xml-0.12.1"
       sources."abab-2.0.5"
       sources."accepts-1.3.7"
-      sources."acorn-8.5.0"
+      sources."acorn-8.6.0"
       (sources."acorn-globals-6.0.0" // {
         dependencies = [
           sources."acorn-7.4.1"
@@ -102840,12 +103119,12 @@ in
       sources."brace-expansion-1.1.11"
       sources."browser-or-node-1.3.0"
       sources."browser-process-hrtime-1.0.0"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."buffer-from-1.1.2"
       sources."bytes-3.1.0"
       sources."bytesish-0.4.4"
       sources."call-bind-1.0.2"
-      sources."caniuse-lite-1.0.30001280"
+      sources."caniuse-lite-1.0.30001287"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chardet-1.4.0"
@@ -102863,7 +103142,7 @@ in
       sources."convert-source-map-1.8.0"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.19.1"
+      sources."core-js-3.20.0"
       sources."cors-2.8.5"
       sources."create-hash-1.2.0"
       sources."create-hmac-1.1.7"
@@ -102880,7 +103159,7 @@ in
           sources."whatwg-url-8.7.0"
         ];
       })
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decimal.js-10.3.1"
       sources."decode-uri-component-0.2.0"
       sources."deep-is-0.1.4"
@@ -102888,7 +103167,7 @@ in
       sources."delayed-stream-1.0.0"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."doipjs-0.13.0"
+      sources."doipjs-0.14.0"
       (sources."domexception-2.0.1" // {
         dependencies = [
           sources."webidl-conversions-5.0.0"
@@ -102896,7 +103175,7 @@ in
       })
       sources."dotenv-8.6.0"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.899"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."enquirer-2.3.6"
@@ -102921,7 +103200,7 @@ in
           sources."ms-2.0.0"
         ];
       })
-      sources."express-validator-6.13.0"
+      sources."express-validator-6.14.0"
       sources."fast-levenshtein-2.0.6"
       sources."filter-obj-1.1.0"
       (sources."finalhandler-1.1.2" // {
@@ -102981,7 +103260,7 @@ in
       sources."is-callable-1.2.4"
       sources."is-date-object-1.0.5"
       sources."is-fullwidth-code-point-3.0.0"
-      sources."is-negative-zero-2.0.1"
+      sources."is-negative-zero-2.0.2"
       sources."is-number-object-1.0.6"
       sources."is-plain-obj-2.1.0"
       sources."is-plain-object-2.0.4"
@@ -102991,7 +103270,7 @@ in
       sources."is-stream-2.0.1"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
-      sources."is-weakref-1.0.1"
+      sources."is-weakref-1.0.2"
       sources."isobject-3.0.1"
       sources."js-tokens-4.0.0"
       (sources."jsdom-16.7.0" // {
@@ -102999,7 +103278,7 @@ in
           sources."tr46-2.1.0"
           sources."webidl-conversions-6.1.0"
           sources."whatwg-url-8.7.0"
-          sources."ws-7.5.5"
+          sources."ws-7.5.6"
         ];
       })
       sources."jsesc-2.5.2"
@@ -103027,11 +103306,10 @@ in
       sources."node-environment-flags-1.0.6"
       sources."node-fetch-2.6.6"
       sources."node-localstorage-1.3.1"
-      sources."node-modules-regexp-1.0.0"
       sources."node-releases-2.0.1"
       sources."nwsapi-2.2.0"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."object.getownpropertydescriptors-2.1.3"
@@ -103050,7 +103328,7 @@ in
       sources."path-to-regexp-0.1.7"
       sources."picocolors-1.0.0"
       sources."pify-4.0.1"
-      sources."pirates-4.0.1"
+      sources."pirates-4.0.4"
       sources."pkg-dir-3.0.0"
       sources."prelude-ls-1.1.2"
       sources."proxy-addr-2.0.7"
@@ -103091,7 +103369,7 @@ in
       sources."slash-2.0.0"
       sources."slide-1.1.6"
       sources."source-map-0.5.7"
-      (sources."source-map-support-0.5.20" // {
+      (sources."source-map-support-0.5.21" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -103142,7 +103420,7 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-1.3.4"
-      sources."ws-8.2.3"
+      sources."ws-8.3.0"
       sources."xml-name-validator-3.0.0"
       sources."xmlchars-2.2.0"
       sources."y18n-5.0.8"
@@ -103358,10 +103636,10 @@ in
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
       sources."jsdom-7.2.2"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."lcid-1.0.0"
       sources."levn-0.3.0"
       sources."locate-path-3.0.0"
@@ -103442,7 +103720,7 @@ in
       sources."set-blocking-2.0.0"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."source-map-0.6.1"
       sources."sshpk-1.16.1"
       sources."stack-trace-0.0.10"
@@ -103614,10 +103892,10 @@ in
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
       sources."jsdom-7.2.2"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."lcid-1.0.0"
       sources."levn-0.3.0"
       sources."locate-path-5.0.0"
@@ -103682,7 +103960,7 @@ in
       sources."sax-1.2.4"
       sources."secure-keys-1.0.0"
       sources."set-blocking-2.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."source-map-0.6.1"
       sources."sshpk-1.16.1"
       sources."stack-trace-0.0.10"
@@ -103879,7 +104157,7 @@ in
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       sources."@npmcli/ci-detect-1.4.0"
-      sources."@npmcli/fs-1.0.0"
+      sources."@npmcli/fs-1.1.0"
       sources."@npmcli/git-2.1.0"
       sources."@npmcli/installed-package-contents-1.0.7"
       sources."@npmcli/move-file-1.1.2"
@@ -104011,7 +104289,7 @@ in
       sources."dargs-7.0.0"
       sources."dashdash-1.14.1"
       sources."dateformat-3.0.3"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."debuglog-1.0.1"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
@@ -104162,7 +104440,7 @@ in
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-lambda-1.0.1"
-      sources."is-negative-zero-2.0.1"
+      sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
       sources."is-number-object-1.0.6"
       sources."is-obj-2.0.0"
@@ -104176,7 +104454,7 @@ in
       sources."is-symbol-1.0.4"
       sources."is-text-path-1.0.1"
       sources."is-typedarray-1.0.0"
-      sources."is-weakref-1.0.1"
+      sources."is-weakref-1.0.2"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
@@ -104185,12 +104463,12 @@ in
       sources."jsbn-0.1.1"
       sources."json-parse-better-errors-1.0.2"
       sources."json-parse-even-better-errors-2.3.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-6.1.0"
       sources."jsonparse-1.3.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."kind-of-6.0.3"
       sources."libnpmaccess-4.0.3"
       (sources."libnpmpublish-4.0.2" // {
@@ -104198,7 +104476,7 @@ in
           sources."normalize-package-data-3.0.3"
         ];
       })
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       (sources."load-json-file-6.2.0" // {
         dependencies = [
           sources."type-fest-0.6.0"
@@ -104251,7 +104529,7 @@ in
           sources."arrify-1.0.1"
         ];
       })
-      sources."minipass-3.1.5"
+      sources."minipass-3.1.6"
       sources."minipass-collect-1.0.2"
       sources."minipass-fetch-1.4.1"
       sources."minipass-flush-1.0.5"
@@ -104312,7 +104590,7 @@ in
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."object.getownpropertydescriptors-2.1.3"
@@ -104337,7 +104615,7 @@ in
       sources."parse-json-5.2.0"
       (sources."parse-path-4.0.3" // {
         dependencies = [
-          sources."qs-6.10.1"
+          sources."qs-6.10.2"
         ];
       })
       sources."parse-url-6.0.0"
@@ -104410,12 +104688,12 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-3.0.0"
       sources."slide-1.1.6"
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.1"
-      sources."socks-proxy-agent-6.1.0"
+      sources."socks-proxy-agent-6.1.1"
       sources."sort-keys-2.0.0"
       sources."source-map-0.6.1"
       sources."spdx-correct-3.1.1"
@@ -104465,7 +104743,7 @@ in
       sources."type-fest-0.4.1"
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
-      sources."uglify-js-3.14.3"
+      sources."uglify-js-3.14.5"
       sources."uid-number-0.0.6"
       sources."umask-1.1.0"
       sources."unbox-primitive-1.0.1"
@@ -104723,12 +105001,12 @@ in
         ];
       })
       sources."http-auth-3.1.3"
-      (sources."http-errors-1.7.3" // {
+      (sources."http-errors-1.8.1" // {
         dependencies = [
           sources."depd-1.1.2"
         ];
       })
-      sources."http-parser-js-0.5.3"
+      sources."http-parser-js-0.5.5"
       sources."inherits-2.0.4"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-binary-path-1.0.1"
@@ -104801,10 +105079,10 @@ in
       sources."ret-0.1.15"
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
-      (sources."send-0.17.1" // {
+      (sources."send-0.17.2" // {
         dependencies = [
           sources."depd-1.1.2"
-          sources."ms-2.1.1"
+          sources."ms-2.1.3"
         ];
       })
       (sources."serve-index-1.9.1" // {
@@ -104821,7 +105099,7 @@ in
           sources."is-extendable-0.1.1"
         ];
       })
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -104884,7 +105162,7 @@ in
       })
       sources."to-regex-3.0.2"
       sources."to-regex-range-2.1.1"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       (sources."union-value-1.0.1" // {
         dependencies = [
           sources."is-extendable-0.1.1"
@@ -104963,9 +105241,9 @@ in
       sources."binary-extensions-1.13.1"
       sources."bindings-1.5.0"
       sources."blob-0.0.5"
-      sources."body-parser-1.19.0"
+      sources."body-parser-1.19.1"
       sources."braces-1.8.5"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.1"
       (sources."cache-base-1.0.1" // {
         dependencies = [
           sources."isobject-3.0.1"
@@ -105034,7 +105312,18 @@ in
       sources."etag-1.8.1"
       sources."expand-brackets-0.1.5"
       sources."expand-range-1.8.2"
-      sources."express-4.17.1"
+      (sources."express-4.17.1" // {
+        dependencies = [
+          sources."body-parser-1.19.0"
+          sources."bytes-3.1.0"
+          sources."http-errors-1.7.2"
+          sources."inherits-2.0.3"
+          sources."qs-6.7.0"
+          sources."raw-body-2.4.0"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
+        ];
+      })
       sources."extend-3.0.2"
       (sources."extend-shallow-3.0.2" // {
         dependencies = [
@@ -105087,11 +105376,11 @@ in
         ];
       })
       sources."html-entities-1.4.0"
-      sources."http-errors-1.7.2"
+      sources."http-errors-1.8.1"
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
       sources."indexof-0.0.1"
-      sources."inherits-2.0.3"
+      sources."inherits-2.0.4"
       sources."innertext-1.0.3"
       sources."ipaddr.js-1.9.1"
       (sources."is-accessor-descriptor-1.0.0" // {
@@ -105131,10 +105420,10 @@ in
       sources."isobject-2.1.0"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."kind-of-3.2.2"
       sources."linkify-it-2.2.0"
       sources."map-cache-0.2.2"
@@ -105209,7 +105498,7 @@ in
       sources."proxy-addr-2.0.7"
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
-      sources."qs-6.7.0"
+      sources."qs-6.9.6"
       (sources."randomatic-3.1.1" // {
         dependencies = [
           sources."is-number-4.0.0"
@@ -105217,7 +105506,7 @@ in
         ];
       })
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.0"
+      sources."raw-body-2.4.2"
       sources."readable-stream-2.3.7"
       (sources."readdirp-2.2.1" // {
         dependencies = [
@@ -105287,7 +105576,10 @@ in
       sources."safer-buffer-2.1.2"
       (sources."send-0.17.1" // {
         dependencies = [
+          sources."http-errors-1.7.3"
           sources."ms-2.1.1"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
       sources."serve-static-1.14.1"
@@ -105296,7 +105588,7 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -105377,7 +105669,7 @@ in
           sources."is-number-3.0.0"
         ];
       })
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
@@ -105447,57 +105739,58 @@ in
     src = ../interpreters/clojurescript/lumo;
     dependencies = [
       sources."@babel/code-frame-7.16.0"
-      sources."@babel/compat-data-7.16.0"
-      sources."@babel/core-7.16.0"
-      sources."@babel/generator-7.16.0"
+      sources."@babel/compat-data-7.16.4"
+      sources."@babel/core-7.16.5"
+      sources."@babel/generator-7.16.5"
       sources."@babel/helper-annotate-as-pure-7.16.0"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.0"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.5"
       sources."@babel/helper-compilation-targets-7.16.3"
-      sources."@babel/helper-create-class-features-plugin-7.16.0"
+      sources."@babel/helper-create-class-features-plugin-7.16.5"
       sources."@babel/helper-create-regexp-features-plugin-7.16.0"
-      sources."@babel/helper-define-polyfill-provider-0.2.4"
+      sources."@babel/helper-define-polyfill-provider-0.3.0"
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-explode-assignable-expression-7.16.0"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
+      sources."@babel/helper-member-expression-to-functions-7.16.5"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
       sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-remap-async-to-generator-7.16.0"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-plugin-utils-7.16.5"
+      sources."@babel/helper-remap-async-to-generator-7.16.5"
+      sources."@babel/helper-replace-supers-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helper-wrap-function-7.16.0"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helper-wrap-function-7.16.5"
+      sources."@babel/helpers-7.16.5"
       (sources."@babel/highlight-7.16.0" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.16.3"
+      sources."@babel/parser-7.16.6"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0"
       sources."@babel/plugin-external-helpers-7.8.3"
-      sources."@babel/plugin-proposal-async-generator-functions-7.16.0"
-      sources."@babel/plugin-proposal-class-properties-7.16.0"
-      sources."@babel/plugin-proposal-class-static-block-7.16.0"
-      sources."@babel/plugin-proposal-dynamic-import-7.16.0"
-      sources."@babel/plugin-proposal-export-namespace-from-7.16.0"
-      sources."@babel/plugin-proposal-json-strings-7.16.0"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.0"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.0"
-      sources."@babel/plugin-proposal-numeric-separator-7.16.0"
-      sources."@babel/plugin-proposal-object-rest-spread-7.16.0"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.16.0"
-      sources."@babel/plugin-proposal-optional-chaining-7.16.0"
-      sources."@babel/plugin-proposal-private-methods-7.16.0"
-      sources."@babel/plugin-proposal-private-property-in-object-7.16.0"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.16.0"
+      sources."@babel/plugin-proposal-async-generator-functions-7.16.5"
+      sources."@babel/plugin-proposal-class-properties-7.16.5"
+      sources."@babel/plugin-proposal-class-static-block-7.16.5"
+      sources."@babel/plugin-proposal-dynamic-import-7.16.5"
+      sources."@babel/plugin-proposal-export-namespace-from-7.16.5"
+      sources."@babel/plugin-proposal-json-strings-7.16.5"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.5"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.5"
+      sources."@babel/plugin-proposal-numeric-separator-7.16.5"
+      sources."@babel/plugin-proposal-object-rest-spread-7.16.5"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.16.5"
+      sources."@babel/plugin-proposal-optional-chaining-7.16.5"
+      sources."@babel/plugin-proposal-private-methods-7.16.5"
+      sources."@babel/plugin-proposal-private-property-in-object-7.16.5"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.16.5"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-bigint-7.8.3"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
@@ -105514,45 +105807,45 @@ in
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-private-property-in-object-7.14.5"
       sources."@babel/plugin-syntax-top-level-await-7.14.5"
-      sources."@babel/plugin-transform-arrow-functions-7.16.0"
-      sources."@babel/plugin-transform-async-to-generator-7.16.0"
-      sources."@babel/plugin-transform-block-scoped-functions-7.16.0"
-      sources."@babel/plugin-transform-block-scoping-7.16.0"
-      sources."@babel/plugin-transform-classes-7.16.0"
-      sources."@babel/plugin-transform-computed-properties-7.16.0"
-      sources."@babel/plugin-transform-destructuring-7.16.0"
-      sources."@babel/plugin-transform-dotall-regex-7.16.0"
-      sources."@babel/plugin-transform-duplicate-keys-7.16.0"
-      sources."@babel/plugin-transform-exponentiation-operator-7.16.0"
-      sources."@babel/plugin-transform-for-of-7.16.0"
-      sources."@babel/plugin-transform-function-name-7.16.0"
-      sources."@babel/plugin-transform-literals-7.16.0"
-      sources."@babel/plugin-transform-member-expression-literals-7.16.0"
-      sources."@babel/plugin-transform-modules-amd-7.16.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.16.0"
-      sources."@babel/plugin-transform-modules-systemjs-7.16.0"
-      sources."@babel/plugin-transform-modules-umd-7.16.0"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.0"
-      sources."@babel/plugin-transform-new-target-7.16.0"
-      sources."@babel/plugin-transform-object-super-7.16.0"
-      sources."@babel/plugin-transform-parameters-7.16.3"
-      sources."@babel/plugin-transform-property-literals-7.16.0"
-      sources."@babel/plugin-transform-regenerator-7.16.0"
-      sources."@babel/plugin-transform-reserved-words-7.16.0"
-      sources."@babel/plugin-transform-runtime-7.16.0"
-      sources."@babel/plugin-transform-shorthand-properties-7.16.0"
-      sources."@babel/plugin-transform-spread-7.16.0"
-      sources."@babel/plugin-transform-sticky-regex-7.16.0"
-      sources."@babel/plugin-transform-template-literals-7.16.0"
-      sources."@babel/plugin-transform-typeof-symbol-7.16.0"
-      sources."@babel/plugin-transform-unicode-escapes-7.16.0"
-      sources."@babel/plugin-transform-unicode-regex-7.16.0"
-      sources."@babel/preset-env-7.16.0"
+      sources."@babel/plugin-transform-arrow-functions-7.16.5"
+      sources."@babel/plugin-transform-async-to-generator-7.16.5"
+      sources."@babel/plugin-transform-block-scoped-functions-7.16.5"
+      sources."@babel/plugin-transform-block-scoping-7.16.5"
+      sources."@babel/plugin-transform-classes-7.16.5"
+      sources."@babel/plugin-transform-computed-properties-7.16.5"
+      sources."@babel/plugin-transform-destructuring-7.16.5"
+      sources."@babel/plugin-transform-dotall-regex-7.16.5"
+      sources."@babel/plugin-transform-duplicate-keys-7.16.5"
+      sources."@babel/plugin-transform-exponentiation-operator-7.16.5"
+      sources."@babel/plugin-transform-for-of-7.16.5"
+      sources."@babel/plugin-transform-function-name-7.16.5"
+      sources."@babel/plugin-transform-literals-7.16.5"
+      sources."@babel/plugin-transform-member-expression-literals-7.16.5"
+      sources."@babel/plugin-transform-modules-amd-7.16.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.16.5"
+      sources."@babel/plugin-transform-modules-systemjs-7.16.5"
+      sources."@babel/plugin-transform-modules-umd-7.16.5"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.5"
+      sources."@babel/plugin-transform-new-target-7.16.5"
+      sources."@babel/plugin-transform-object-super-7.16.5"
+      sources."@babel/plugin-transform-parameters-7.16.5"
+      sources."@babel/plugin-transform-property-literals-7.16.5"
+      sources."@babel/plugin-transform-regenerator-7.16.5"
+      sources."@babel/plugin-transform-reserved-words-7.16.5"
+      sources."@babel/plugin-transform-runtime-7.16.5"
+      sources."@babel/plugin-transform-shorthand-properties-7.16.5"
+      sources."@babel/plugin-transform-spread-7.16.5"
+      sources."@babel/plugin-transform-sticky-regex-7.16.5"
+      sources."@babel/plugin-transform-template-literals-7.16.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.16.5"
+      sources."@babel/plugin-transform-unicode-escapes-7.16.5"
+      sources."@babel/plugin-transform-unicode-regex-7.16.5"
+      sources."@babel/preset-env-7.16.5"
       sources."@babel/preset-modules-0.1.5"
       sources."@babel/preset-stage-2-7.8.3"
-      sources."@babel/runtime-7.16.3"
+      sources."@babel/runtime-7.16.5"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@cnakazawa/watch-1.0.4"
       sources."@comandeer/babel-plugin-banner-5.0.0"
@@ -105564,7 +105857,7 @@ in
         ];
       })
       sources."@jest/types-25.5.0"
-      sources."@types/babel__core-7.1.16"
+      sources."@types/babel__core-7.1.17"
       sources."@types/babel__generator-7.6.3"
       sources."@types/babel__template-7.4.1"
       sources."@types/babel__traverse-7.14.2"
@@ -105574,7 +105867,7 @@ in
       sources."@types/istanbul-lib-report-3.0.0"
       sources."@types/istanbul-reports-1.1.2"
       sources."@types/json-schema-7.0.9"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/resolve-0.0.8"
       sources."@types/yargs-15.0.14"
@@ -105663,9 +105956,9 @@ in
       sources."babel-plugin-minify-replace-0.5.0"
       sources."babel-plugin-minify-simplify-0.5.1"
       sources."babel-plugin-minify-type-constructors-0.4.3"
-      sources."babel-plugin-polyfill-corejs2-0.2.3"
-      sources."babel-plugin-polyfill-corejs3-0.3.0"
-      sources."babel-plugin-polyfill-regenerator-0.2.3"
+      sources."babel-plugin-polyfill-corejs2-0.3.0"
+      sources."babel-plugin-polyfill-corejs3-0.4.0"
+      sources."babel-plugin-polyfill-regenerator-0.3.0"
       sources."babel-plugin-syntax-flow-6.18.0"
       sources."babel-plugin-transform-flow-strip-types-6.22.0"
       sources."babel-plugin-transform-inline-consecutive-adds-0.4.3"
@@ -105731,7 +106024,7 @@ in
         ];
       })
       sources."browserify-zlib-0.2.0"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."bser-2.1.1"
       sources."buffer-5.2.1"
       sources."buffer-from-1.1.2"
@@ -105747,7 +106040,7 @@ in
       sources."cached-path-relative-1.0.2"
       sources."call-bind-1.0.2"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001280"
+      sources."caniuse-lite-1.0.30001287"
       sources."capture-exit-2.0.0"
       sources."caseless-0.12.0"
       (sources."chalk-3.0.0" // {
@@ -105818,7 +106111,7 @@ in
       })
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.19.1" // {
+      (sources."core-js-compat-3.20.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -105850,7 +106143,7 @@ in
       sources."dash-ast-1.0.0"
       sources."dashdash-1.14.1"
       sources."death-1.1.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
       sources."define-properties-1.1.3"
@@ -105870,7 +106163,7 @@ in
       sources."duplexer2-0.1.4"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
-      sources."electron-to-chromium-1.3.899"
+      sources."electron-to-chromium-1.4.21"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -106088,18 +106381,18 @@ in
       sources."jsesc-2.5.2"
       sources."json-parse-better-errors-1.0.2"
       sources."json-parse-even-better-errors-2.3.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-0.0.1"
       sources."json-stringify-safe-5.0.1"
       sources."json5-2.2.0"
       sources."jsonify-0.0.0"
       sources."jsonparse-1.3.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."jszip-2.6.1"
       sources."kind-of-6.0.3"
       sources."labeled-stream-splicer-2.0.2"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."loader-runner-2.4.0"
       (sources."loader-utils-1.4.0" // {
         dependencies = [
@@ -106172,7 +106465,6 @@ in
           sources."util-0.11.1"
         ];
       })
-      sources."node-modules-regexp-1.0.0"
       sources."node-releases-2.0.1"
       (sources."normalize-package-data-2.5.0" // {
         dependencies = [
@@ -106229,7 +106521,7 @@ in
       sources."pify-4.0.1"
       sources."pinkie-1.0.0"
       sources."pinkie-promise-1.0.0"
-      sources."pirates-4.0.1"
+      sources."pirates-4.0.4"
       sources."pkg-dir-4.2.0"
       sources."posix-character-classes-0.1.1"
       sources."posix-getopt-git://github.com/anmonteiro/node-getopt#master"
@@ -106337,7 +106629,7 @@ in
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."shell-quote-1.7.3"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."simple-concat-1.0.1"
       sources."slash-3.0.0"
       (sources."snapdragon-0.8.2" // {
@@ -106373,7 +106665,7 @@ in
       sources."source-list-map-0.1.8"
       sources."source-map-0.5.7"
       sources."source-map-resolve-0.5.3"
-      (sources."source-map-support-0.5.20" // {
+      (sources."source-map-support-0.5.21" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -106608,7 +106900,7 @@ in
       sources."@types/commander-2.12.2"
       sources."@types/diff-3.5.4"
       sources."@types/get-stdin-5.0.1"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."commander-2.20.3"
       sources."diff-3.5.0"
       sources."get-stdin-5.0.1"
@@ -106695,15 +106987,21 @@ in
       sources."glob-6.0.4"
       sources."graceful-fs-4.2.8"
       sources."hogan.js-2.0.0"
-      sources."http-signature-1.3.5"
+      (sources."http-signature-1.3.6" // {
+        dependencies = [
+          sources."extsprintf-1.3.0"
+          sources."jsprim-2.0.2"
+          sources."verror-1.10.0"
+        ];
+      })
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."invert-kv-1.0.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."isarray-0.0.1"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
-      (sources."jsprim-1.4.1" // {
+      sources."json-schema-0.4.0"
+      (sources."jsprim-1.4.2" // {
         dependencies = [
           sources."extsprintf-1.3.0"
           sources."verror-1.10.0"
@@ -106843,16 +107141,16 @@ in
   markdownlint-cli = nodeEnv.buildNodePackage {
     name = "markdownlint-cli";
     packageName = "markdownlint-cli";
-    version = "0.29.0";
+    version = "0.30.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.29.0.tgz";
-      sha512 = "SEXRUT1ri9sXV8xQK88vjGAgmz2X9rxEG2tXdDZMljzW8e++LNTO9zzBBStx3JQWrTDoGTPHNrcurbuiyF97gw==";
+      url = "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.30.0.tgz";
+      sha512 = "NiG8iERjwsRZtJAIyLMDdYL2O3bJVn3fUxzDl+6Iv61/YYz9H9Nzgke/v0/cW9HfGvgZHhbfI19LFMp6gbKdyw==";
     };
     dependencies = [
       sources."argparse-2.0.1"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."commander-8.2.0"
+      sources."commander-8.3.0"
       sources."concat-map-0.0.1"
       sources."deep-extend-0.6.0"
       sources."entities-2.1.0"
@@ -106949,76 +107247,35 @@ in
   markdown-link-check = nodeEnv.buildNodePackage {
     name = "markdown-link-check";
     packageName = "markdown-link-check";
-    version = "3.8.7";
+    version = "3.9.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.8.7.tgz";
-      sha512 = "Qy2JBkrzmZjMIoOstIMV/Wk/pONM0xuTBO2d/9UuqtO84emvge9A9IdtHfE4r1bxH+GdqyVn3e7aHQLXvRPnYQ==";
+      url = "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.9.0.tgz";
+      sha512 = "Vo5vOc7jL1yproWT8AVxazr8rsd0HTJb00W1Qj4qV/Iff8A8Zww709/aNi0FypnOeJNoN523z2fQF1M0Z02BPA==";
     };
     dependencies = [
-      sources."ajv-6.12.6"
       sources."ansi-styles-4.3.0"
-      sources."asn1-0.2.6"
-      sources."assert-plus-1.0.0"
       sources."async-3.2.2"
-      sources."asynckit-0.4.0"
-      sources."aws-sign2-0.7.0"
-      sources."aws4-1.11.0"
-      sources."bcrypt-pbkdf-1.0.2"
-      sources."caseless-0.12.0"
       sources."chalk-4.1.2"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."combined-stream-1.0.8"
       sources."commander-6.2.1"
-      sources."core-util-is-1.0.2"
-      sources."dashdash-1.14.1"
-      sources."delayed-stream-1.0.0"
-      sources."ecc-jsbn-0.1.2"
-      sources."extend-3.0.2"
-      sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.3"
-      sources."fast-json-stable-stringify-2.1.0"
-      sources."forever-agent-0.6.1"
-      sources."form-data-2.3.3"
-      sources."getpass-0.1.7"
-      sources."har-schema-2.0.0"
-      sources."har-validator-5.1.5"
+      sources."debug-3.2.7"
       sources."has-flag-4.0.0"
-      sources."http-signature-1.2.0"
+      sources."iconv-lite-0.4.24"
       sources."is-absolute-url-3.0.3"
       sources."is-relative-url-3.0.0"
-      sources."is-typedarray-1.0.0"
       sources."isemail-3.2.0"
-      sources."isstream-0.1.2"
-      sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
-      sources."json-schema-traverse-0.4.1"
-      sources."json-stringify-safe-5.0.1"
-      sources."jsprim-1.4.1"
-      sources."link-check-4.5.4"
+      sources."link-check-5.0.1"
       sources."lodash-4.17.21"
       sources."markdown-link-extractor-1.3.0"
       sources."marked-2.1.3"
-      sources."mime-db-1.51.0"
-      sources."mime-types-2.1.34"
       sources."ms-2.1.3"
-      sources."oauth-sign-0.9.0"
-      sources."performance-now-2.1.0"
+      sources."needle-3.0.0"
       sources."progress-2.0.3"
-      sources."psl-1.8.0"
       sources."punycode-2.1.1"
-      sources."qs-6.5.2"
-      sources."request-2.88.2"
-      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."sshpk-1.16.1"
+      sources."sax-1.2.4"
       sources."supports-color-7.2.0"
-      sources."tough-cookie-2.5.0"
-      sources."tunnel-agent-0.6.0"
-      sources."tweetnacl-0.14.5"
-      sources."uri-js-4.4.1"
-      sources."uuid-3.4.0"
-      sources."verror-1.10.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -107307,13 +107564,13 @@ in
       sources."js-tokens-3.0.2"
       sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-1.0.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonify-0.0.0"
       sources."jsonpointer-5.0.0"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."levn-0.3.0"
       sources."lodash-4.17.21"
       sources."lodash._basecopy-3.0.1"
@@ -107503,14 +107760,14 @@ in
   "@mermaid-js/mermaid-cli" = nodeEnv.buildNodePackage {
     name = "_at_mermaid-js_slash_mermaid-cli";
     packageName = "@mermaid-js/mermaid-cli";
-    version = "8.13.3";
+    version = "8.13.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@mermaid-js/mermaid-cli/-/mermaid-cli-8.13.3.tgz";
-      sha512 = "0iDpNyk45DPihwXxgeiU9NZgn0U3VwO52a09rwLE8Q+a7iC18eXK+10k/5FJ7c5g1w9BNiMBOgxDNsjegReS6w==";
+      url = "https://registry.npmjs.org/@mermaid-js/mermaid-cli/-/mermaid-cli-8.13.5.tgz";
+      sha512 = "QcFi12GO+wOjzQdqLhhPkbRBKx6QhB4azNCA/DH/NROUdAp0iUyOk5W+1xr10ERcANxajWlguO8MwxzTqXzaTw==";
     };
     dependencies = [
       sources."@braintree/sanitize-url-3.1.0"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/yauzl-2.9.2"
       sources."agent-base-6.0.2"
       sources."ansi-styles-4.3.0"
@@ -107526,7 +107783,7 @@ in
       sources."color-name-1.1.4"
       sources."commander-8.3.0"
       sources."concat-map-0.0.1"
-      sources."d3-7.1.1"
+      sources."d3-7.2.1"
       sources."d3-array-3.1.1"
       sources."d3-axis-3.0.0"
       sources."d3-brush-3.0.0"
@@ -107545,9 +107802,9 @@ in
       sources."d3-ease-3.0.1"
       sources."d3-fetch-3.0.1"
       sources."d3-force-3.0.0"
-      sources."d3-format-3.0.1"
+      sources."d3-format-3.1.0"
       sources."d3-geo-3.0.1"
-      sources."d3-hierarchy-3.0.1"
+      sources."d3-hierarchy-3.1.1"
       sources."d3-interpolate-3.0.1"
       sources."d3-path-3.0.1"
       sources."d3-polygon-3.0.1"
@@ -107558,7 +107815,7 @@ in
       sources."d3-selection-3.0.0"
       sources."d3-shape-3.0.1"
       sources."d3-time-3.0.0"
-      sources."d3-time-format-4.0.0"
+      sources."d3-time-format-4.1.0"
       sources."d3-timer-3.0.1"
       sources."d3-transition-3.0.1"
       sources."d3-voronoi-1.1.4"
@@ -107600,10 +107857,10 @@ in
           sources."iconv-lite-0.4.24"
         ];
       })
-      sources."debug-4.3.1"
+      sources."debug-4.3.2"
       sources."delaunator-5.0.0"
-      sources."devtools-protocol-0.0.901419"
-      sources."dompurify-2.3.3"
+      sources."devtools-protocol-0.0.937139"
+      sources."dompurify-2.3.4"
       sources."end-of-stream-1.4.4"
       sources."extract-zip-2.0.1"
       sources."fd-slicer-1.1.0"
@@ -107623,13 +107880,12 @@ in
       sources."khroma-1.4.1"
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
-      sources."mermaid-8.13.3"
+      sources."mermaid-8.13.6"
       sources."minimatch-3.0.4"
-      sources."minimist-1.2.5"
-      sources."mkdirp-0.5.5"
+      sources."mkdirp-classic-0.5.3"
       sources."moment-mini-2.24.0"
       sources."ms-2.1.2"
-      sources."node-fetch-2.6.1"
+      sources."node-fetch-2.6.5"
       sources."once-1.4.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
@@ -107638,10 +107894,10 @@ in
       sources."path-is-absolute-1.0.1"
       sources."pend-1.2.0"
       sources."pkg-dir-4.2.0"
-      sources."progress-2.0.1"
+      sources."progress-2.0.3"
       sources."proxy-from-env-1.1.0"
       sources."pump-3.0.0"
-      sources."puppeteer-10.4.0"
+      sources."puppeteer-13.0.0"
       sources."readable-stream-3.6.0"
       sources."rimraf-3.0.2"
       sources."robust-predicates-3.0.1"
@@ -107649,15 +107905,18 @@ in
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."string_decoder-1.3.0"
-      sources."stylis-4.0.10"
+      sources."stylis-4.0.13"
       sources."supports-color-7.2.0"
-      sources."tar-fs-2.0.0"
+      sources."tar-fs-2.1.1"
       sources."tar-stream-2.2.0"
       sources."through-2.3.8"
-      sources."unbzip2-stream-1.3.3"
+      sources."tr46-0.0.3"
+      sources."unbzip2-stream-1.4.3"
       sources."util-deprecate-1.0.2"
+      sources."webidl-conversions-3.0.1"
+      sources."whatwg-url-5.0.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.4.6"
+      sources."ws-8.2.3"
       sources."yauzl-2.10.0"
     ];
     buildInputs = globalBuildInputs;
@@ -107818,11 +108077,11 @@ in
       sources."mime-types-2.1.34"
       sources."ms-2.1.3"
       sources."native-promise-only-0.8.1"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."path-loader-1.0.10"
       sources."process-nextick-args-2.0.1"
       sources."punycode-2.1.1"
-      sources."qs-6.10.1"
+      sources."qs-6.10.2"
       sources."readable-stream-2.3.7"
       sources."safe-buffer-5.1.2"
       sources."side-channel-1.0.4"
@@ -107895,7 +108154,7 @@ in
       sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."string-width-4.2.3"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.1"
@@ -107924,51 +108183,44 @@ in
   neovim = nodeEnv.buildNodePackage {
     name = "neovim";
     packageName = "neovim";
-    version = "4.10.0";
+    version = "4.10.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/neovim/-/neovim-4.10.0.tgz";
-      sha512 = "MMtsyjCPYXy45I8TZTz0iYJUIJhaDSO0zfHOJeidGuLUCeY6WLQiwZteJ9tmCveNWMjT1r2QO9nq135mUDgbtw==";
+      url = "https://registry.npmjs.org/neovim/-/neovim-4.10.1.tgz";
+      sha512 = "H46Jl2bh/LAFJsitv2MiIK3oCxvQnEK9t3efNMUUkKzsTYlLIikVxGWVk/vJnHzvxoHYBIRB/KHwPAOm+9UStg==";
     };
     dependencies = [
-      sources."@msgpack/msgpack-1.12.2"
-      sources."async-2.6.3"
+      sources."@dabh/diagnostics-2.0.2"
+      sources."@msgpack/msgpack-2.7.1"
+      sources."async-3.2.2"
       sources."color-3.2.1"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.6.0"
-      sources."colornames-1.1.1"
+      sources."color-string-1.9.0"
       sources."colors-1.4.0"
       sources."colorspace-1.1.4"
-      sources."core-util-is-1.0.3"
-      sources."diagnostics-1.1.1"
-      sources."enabled-1.0.2"
-      sources."env-variable-0.0.6"
-      sources."fast-safe-stringify-2.1.1"
-      sources."fecha-2.3.3"
+      sources."enabled-2.0.0"
+      sources."fecha-4.2.1"
+      sources."fn.name-1.1.0"
       sources."inherits-2.0.4"
       sources."is-arrayish-0.3.2"
-      sources."is-stream-1.1.0"
-      sources."isarray-1.0.0"
-      sources."kuler-1.0.1"
-      sources."lodash-4.17.21"
-      sources."lodash.defaults-4.2.0"
-      sources."lodash.omit-4.5.0"
-      sources."logform-1.10.0"
+      sources."is-stream-2.0.1"
+      sources."kuler-2.0.0"
+      sources."logform-2.3.0"
       sources."lru-cache-6.0.0"
       sources."ms-2.1.3"
-      sources."one-time-0.0.4"
-      sources."process-nextick-args-2.0.1"
-      sources."readable-stream-2.3.7"
-      sources."safe-buffer-5.1.2"
+      sources."one-time-1.0.0"
+      sources."readable-stream-3.6.0"
+      sources."safe-buffer-5.2.1"
+      sources."safe-stable-stringify-1.1.1"
       sources."semver-7.3.5"
       sources."simple-swizzle-0.2.2"
       sources."stack-trace-0.0.10"
-      sources."string_decoder-1.1.1"
+      sources."string_decoder-1.3.0"
       sources."text-hex-1.0.0"
       sources."triple-beam-1.3.0"
       sources."util-deprecate-1.0.2"
-      sources."winston-3.1.0"
-      sources."winston-transport-4.4.0"
+      sources."winston-3.3.3"
+      sources."winston-transport-4.4.1"
       sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
@@ -108006,41 +108258,41 @@ in
   node-gyp = nodeEnv.buildNodePackage {
     name = "node-gyp";
     packageName = "node-gyp";
-    version = "8.4.0";
+    version = "8.4.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.0.tgz";
-      sha512 = "Bi/oCm5bH6F+FmzfUxJpPaxMEyIhszULGR3TprmTeku8/dMFcdTcypk120NeZqEt54r1BrgEKtm2jJiuIKE28Q==";
+      url = "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz";
+      sha512 = "olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==";
     };
     dependencies = [
       sources."@gar/promisify-1.1.2"
-      sources."@npmcli/fs-1.0.0"
+      sources."@npmcli/fs-1.1.0"
       sources."@npmcli/move-file-1.1.2"
       sources."@tootallnate/once-1.1.2"
       sources."abbrev-1.1.1"
       sources."agent-base-6.0.2"
       sources."agentkeepalive-4.1.4"
       sources."aggregate-error-3.1.0"
-      sources."ansi-regex-2.1.1"
-      sources."aproba-1.2.0"
-      sources."are-we-there-yet-1.1.7"
+      sources."ansi-regex-5.0.1"
+      sources."aproba-2.0.0"
+      sources."are-we-there-yet-2.0.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."cacache-15.3.0"
       sources."chownr-2.0.0"
       sources."clean-stack-2.2.0"
-      sources."code-point-at-1.1.0"
+      sources."color-support-1.1.3"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
-      sources."core-util-is-1.0.3"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."delegates-1.0.0"
       sources."depd-1.1.2"
+      sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
       sources."env-paths-2.2.1"
       sources."err-code-2.0.3"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
-      sources."gauge-2.7.4"
+      sources."gauge-4.0.0"
       sources."glob-7.2.0"
       sources."graceful-fs-4.2.8"
       sources."has-unicode-2.0.1"
@@ -108055,14 +108307,13 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ip-1.1.5"
-      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-lambda-1.0.1"
-      sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."lru-cache-6.0.0"
       sources."make-fetch-happen-9.1.0"
       sources."minimatch-3.0.4"
-      sources."minipass-3.1.5"
+      sources."minipass-3.1.6"
       sources."minipass-collect-1.0.2"
       sources."minipass-fetch-1.4.1"
       sources."minipass-flush-1.0.5"
@@ -108073,30 +108324,27 @@ in
       sources."ms-2.1.2"
       sources."negotiator-0.6.2"
       sources."nopt-5.0.0"
-      sources."npmlog-4.1.2"
-      sources."number-is-nan-1.0.1"
-      sources."object-assign-4.1.1"
+      sources."npmlog-6.0.0"
       sources."once-1.4.0"
       sources."p-map-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."process-nextick-args-2.0.1"
       sources."promise-inflight-1.0.1"
       sources."promise-retry-2.0.1"
-      sources."readable-stream-2.3.7"
+      sources."readable-stream-3.6.0"
       sources."retry-0.12.0"
       sources."rimraf-3.0.2"
-      sources."safe-buffer-5.1.2"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-7.3.5"
       sources."set-blocking-2.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.1"
-      sources."socks-proxy-agent-6.1.0"
+      sources."socks-proxy-agent-6.1.1"
       sources."ssri-8.0.1"
-      sources."string-width-1.0.2"
-      sources."string_decoder-1.1.1"
-      sources."strip-ansi-3.0.1"
+      sources."string-width-4.2.3"
+      sources."string_decoder-1.3.0"
+      sources."strip-ansi-6.0.1"
       sources."tar-6.1.11"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
@@ -108255,11 +108503,11 @@ in
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-stable-stringify-1.0.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonify-0.0.0"
-      (sources."jsprim-1.4.1" // {
+      (sources."jsprim-1.4.2" // {
         dependencies = [
           sources."assert-plus-1.0.0"
         ];
@@ -108350,7 +108598,7 @@ in
       sources."serve-static-1.14.1"
       sources."set-blocking-2.0.0"
       sources."setprototypeof-1.1.1"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."sntp-1.0.9"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
@@ -108497,7 +108745,7 @@ in
       sources."sax-1.2.4"
       sources."semver-5.7.1"
       sources."set-blocking-2.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."string-width-1.0.2"
       sources."string_decoder-1.1.1"
       sources."strip-ansi-3.0.1"
@@ -108525,52 +108773,55 @@ in
   node-red = nodeEnv.buildNodePackage {
     name = "node-red";
     packageName = "node-red";
-    version = "2.1.3";
+    version = "2.1.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-red/-/node-red-2.1.3.tgz";
-      sha512 = "IRpc8+1CR3jeZQOSX+iAE7ggu/sRfVsv6Cp/flRElIyhuZeFanbsU319KOIPnfuqF4ijwPiwWFj2zjtDllN++Q==";
+      url = "https://registry.npmjs.org/node-red/-/node-red-2.1.4.tgz";
+      sha512 = "ScpFFE0G+NlxFWrHnMcIkaF8gW+6jwK7n5qRGId66fCTICYnBGkOxXBvV3Q45H+4iQUro5aIRj737Gu7shjsJw==";
     };
     dependencies = [
-      sources."@babel/runtime-7.16.3"
-      sources."@mapbox/node-pre-gyp-1.0.6"
-      sources."@node-red/editor-api-2.1.3"
-      sources."@node-red/editor-client-2.1.3"
-      (sources."@node-red/nodes-2.1.3" // {
+      sources."@babel/runtime-7.16.5"
+      sources."@mapbox/node-pre-gyp-1.0.8"
+      sources."@node-red/editor-api-2.1.4"
+      sources."@node-red/editor-client-2.1.4"
+      (sources."@node-red/nodes-2.1.4" // {
         dependencies = [
-          sources."http-errors-1.7.3"
+          sources."bytes-3.1.1"
+          sources."http-errors-1.8.1"
           sources."iconv-lite-0.6.3"
           sources."inherits-2.0.4"
           sources."media-typer-1.1.0"
-          (sources."raw-body-2.4.1" // {
+          (sources."raw-body-2.4.2" // {
             dependencies = [
               sources."iconv-lite-0.4.24"
             ];
           })
+          sources."setprototypeof-1.2.0"
+          sources."toidentifier-1.0.1"
         ];
       })
-      sources."@node-red/registry-2.1.3"
-      sources."@node-red/runtime-2.1.3"
-      sources."@node-red/util-2.1.3"
+      sources."@node-red/registry-2.1.4"
+      sources."@node-red/runtime-2.1.4"
+      sources."@node-red/util-2.1.4"
       sources."@sindresorhus/is-4.2.0"
       sources."@szmarczak/http-timer-4.0.6"
       sources."@types/cacheable-request-6.0.2"
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/keyv-3.1.3"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
-      sources."acorn-8.5.0"
+      sources."acorn-8.6.0"
       sources."acorn-walk-8.2.0"
       (sources."agent-base-6.0.2" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
-      sources."ajv-8.6.3"
+      sources."ajv-8.8.2"
       sources."ansi-colors-4.1.1"
-      sources."ansi-regex-3.0.0"
+      sources."ansi-regex-5.0.1"
       sources."append-field-1.0.0"
       sources."aproba-2.0.0"
       (sources."are-we-there-yet-2.0.0" // {
@@ -108613,7 +108864,7 @@ in
       sources."cheerio-1.0.0-rc.10"
       sources."cheerio-select-1.5.0"
       sources."chownr-2.0.0"
-      sources."cli-table-0.3.6"
+      sources."cli-table-0.3.11"
       sources."clone-2.1.2"
       sources."clone-response-1.0.2"
       sources."color-support-1.1.3"
@@ -108637,16 +108888,12 @@ in
       })
       sources."content-type-1.0.4"
       sources."cookie-0.4.1"
-      (sources."cookie-parser-1.4.5" // {
-        dependencies = [
-          sources."cookie-0.4.0"
-        ];
-      })
+      sources."cookie-parser-1.4.6"
       sources."cookie-signature-1.0.6"
       sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
       sources."cronosjs-1.7.1"
-      sources."css-select-4.1.3"
+      sources."css-select-4.2.0"
       sources."css-what-5.1.0"
       sources."debug-2.6.9"
       (sources."decompress-response-6.0.0" // {
@@ -108664,7 +108911,7 @@ in
       sources."dicer-0.2.5"
       sources."dom-serializer-1.3.2"
       sources."domelementtype-2.2.0"
-      sources."domhandler-4.2.2"
+      sources."domhandler-4.3.0"
       sources."domutils-2.8.0"
       (sources."duplexify-4.1.2" // {
         dependencies = [
@@ -108673,6 +108920,7 @@ in
         ];
       })
       sources."ee-first-1.1.1"
+      sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."enquirer-2.3.6"
@@ -108693,7 +108941,7 @@ in
       })
       sources."fast-deep-equal-3.1.3"
       sources."finalhandler-1.1.2"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."form-data-4.0.0"
       sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
@@ -108705,10 +108953,10 @@ in
       sources."fs-minipass-2.1.0"
       sources."fs.notify-0.0.4"
       sources."fs.realpath-1.0.0"
-      sources."gauge-3.0.1"
+      sources."gauge-3.0.2"
       sources."get-stream-5.2.0"
       sources."glob-7.2.0"
-      sources."got-11.8.2"
+      sources."got-11.8.3"
       sources."graceful-fs-4.2.8"
       sources."has-unicode-2.0.1"
       sources."hash-sum-2.0.0"
@@ -108725,17 +108973,17 @@ in
       sources."http2-wrapper-1.0.3"
       (sources."https-proxy-agent-5.0.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
-      sources."i18next-21.3.1"
+      sources."i18next-21.5.4"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.3"
       sources."ipaddr.js-1.9.1"
-      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-utf8-0.2.1"
       sources."isarray-0.0.1"
       sources."js-yaml-3.14.1"
@@ -108761,7 +109009,7 @@ in
       sources."media-typer-0.3.0"
       (sources."memorystore-1.6.6" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -108773,7 +109021,7 @@ in
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      (sources."minipass-3.1.5" // {
+      (sources."minipass-3.1.6" // {
         dependencies = [
           sources."yallist-4.0.0"
         ];
@@ -108785,11 +109033,11 @@ in
       })
       sources."mkdirp-0.5.5"
       sources."moment-2.29.1"
-      sources."moment-timezone-0.5.33"
+      sources."moment-timezone-0.5.34"
       (sources."mqtt-4.2.8" // {
         dependencies = [
           sources."concat-stream-2.0.0"
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
           sources."readable-stream-3.6.0"
           sources."string_decoder-1.3.0"
@@ -108797,7 +109045,7 @@ in
       })
       (sources."mqtt-packet-6.10.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -108813,7 +109061,7 @@ in
       sources."normalize-url-6.1.0"
       sources."npmlog-5.0.1"
       sources."nth-check-2.0.1"
-      sources."oauth2orize-1.11.0"
+      sources."oauth2orize-1.11.1"
       sources."object-assign-4.1.1"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
@@ -108867,7 +109115,7 @@ in
       sources."serve-static-1.14.1"
       sources."set-blocking-2.0.0"
       sources."setprototypeof-1.1.1"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       (sources."split2-3.2.2" // {
         dependencies = [
           sources."readable-stream-3.6.0"
@@ -108878,9 +109126,9 @@ in
       sources."statuses-1.5.0"
       sources."stream-shift-1.0.1"
       sources."streamsearch-0.1.2"
-      sources."string-width-2.1.1"
+      sources."string-width-4.2.3"
       sources."string_decoder-0.10.31"
-      sources."strip-ansi-4.0.0"
+      sources."strip-ansi-6.0.1"
       (sources."tar-6.1.11" // {
         dependencies = [
           sources."mkdirp-1.0.4"
@@ -108893,7 +109141,7 @@ in
       sources."tslib-2.3.1"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.14.2"
+      sources."uglify-js-3.14.4"
       sources."uid-safe-2.1.5"
       sources."uid2-0.0.4"
       sources."universalify-0.1.2"
@@ -108926,10 +109174,10 @@ in
   node2nix = nodeEnv.buildNodePackage {
     name = "node2nix";
     packageName = "node2nix";
-    version = "1.9.0";
+    version = "1.10.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node2nix/-/node2nix-1.9.0.tgz";
-      sha512 = "CZLF+Pu2g/eYhrIAznhKIg0i3McCXQuwd1meNb+ruiRTrNE2p5oc0RNQUKD3ZAId+JQdHKhFc+19G+wmS8g46w==";
+      url = "https://registry.npmjs.org/node2nix/-/node2nix-1.10.0.tgz";
+      sha512 = "3hUEkGeUl9X2FQCeZ9K2/WiSdBjXVKMnGz7qQVGuWnyxwA8xqWi+dQueTd+YmOA7LmZAseQgok1CUcoTR7d2FQ==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
@@ -108969,18 +109217,9 @@ in
       sources."foreachasync-3.0.0"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      (sources."fs-extra-0.6.4" // {
-        dependencies = [
-          sources."mkdirp-0.3.5"
-          sources."rimraf-2.2.8"
-        ];
-      })
+      sources."fs-extra-0.6.4"
       sources."fs-minipass-2.1.0"
-      (sources."fs.extra-1.3.2" // {
-        dependencies = [
-          sources."mkdirp-0.3.5"
-        ];
-      })
+      sources."fs.extra-1.3.2"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."gauge-2.7.4"
@@ -109002,19 +109241,19 @@ in
       sources."isarray-1.0.0"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-1.0.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."lru-cache-6.0.0"
       sources."mime-db-1.51.0"
       sources."mime-types-2.1.34"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-3.1.5"
+      sources."minipass-3.1.6"
       sources."minizlib-2.1.2"
-      sources."mkdirp-0.5.5"
+      sources."mkdirp-0.3.5"
       sources."ncp-0.4.2"
       sources."nijs-0.0.25"
       sources."nopt-3.0.6"
@@ -109035,6 +109274,7 @@ in
       })
       (sources."npmconf-2.1.3" // {
         dependencies = [
+          sources."mkdirp-0.5.5"
           sources."once-1.3.3"
           sources."semver-4.3.6"
         ];
@@ -109064,12 +109304,12 @@ in
       sources."request-2.88.2"
       sources."resolve-1.20.0"
       sources."retry-0.10.1"
-      sources."rimraf-2.6.3"
+      sources."rimraf-2.2.8"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-7.3.5"
       sources."set-blocking-2.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slasp-0.0.4"
       sources."slide-1.1.6"
       sources."spdx-correct-3.1.1"
@@ -109090,7 +109330,12 @@ in
           sources."mkdirp-1.0.4"
         ];
       })
-      sources."temp-0.9.4"
+      (sources."temp-0.9.4" // {
+        dependencies = [
+          sources."mkdirp-0.5.5"
+          sources."rimraf-2.6.3"
+        ];
+      })
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
@@ -109243,7 +109488,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."string-width-4.2.3"
       sources."strip-ansi-6.0.1"
       sources."strip-json-comments-2.0.1"
@@ -109281,10 +109526,10 @@ in
   np = nodeEnv.buildNodePackage {
     name = "np";
     packageName = "np";
-    version = "7.5.0";
+    version = "7.6.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/np/-/np-7.5.0.tgz";
-      sha512 = "CdpgqtO6JpDKJjQ2gueY0jnbz6APWA9wFXSwPv5bXg4seSBibHqQ8JyWxYlS8YRfVbpeDtj582wcAWTlfy5qNA==";
+      url = "https://registry.npmjs.org/np/-/np-7.6.0.tgz";
+      sha512 = "WWGZtfNkE6MEkI7LE8NtG7poTqzTHj/tssBzcPnBAdMVPXkXDtX2wk0ptrj8YZ3u4TFmGSqioSohdud86aJxSg==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.0"
@@ -109314,7 +109559,7 @@ in
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/keyv-3.1.3"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/parse-json-4.0.0"
       sources."@types/responselike-1.0.0"
@@ -109520,7 +109765,7 @@ in
       sources."keyv-4.0.4"
       sources."kind-of-6.0.3"
       sources."latest-version-5.1.0"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       (sources."listr-0.14.3" // {
         dependencies = [
           sources."is-stream-1.1.0"
@@ -109739,7 +109984,7 @@ in
       })
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-3.0.0"
       sources."slice-ansi-0.0.4"
       sources."spdx-correct-3.1.1"
@@ -109807,10 +110052,10 @@ in
   npm = nodeEnv.buildNodePackage {
     name = "npm";
     packageName = "npm";
-    version = "8.1.3";
+    version = "8.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm/-/npm-8.1.3.tgz";
-      sha512 = "7AnYyaVdF3vEpHMb+tq5ALbmsE9CIJYu0KJvGawn03yc1HGw778H7UNLV2tcHTAa6VjJk4c1yKbovOC0674PAw==";
+      url = "https://registry.npmjs.org/npm/-/npm-8.3.0.tgz";
+      sha512 = "ug4xToae4Dh3yZh8Fp6MOnAPSS3fqCTANpJx1fXP2C4LTUzoZf7rEantHQR/ANPVYDBe5qQT4tGVsoPqqiYZMw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -109825,17 +110070,17 @@ in
   npm-check-updates = nodeEnv.buildNodePackage {
     name = "npm-check-updates";
     packageName = "npm-check-updates";
-    version = "12.0.2";
+    version = "12.0.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-12.0.2.tgz";
-      sha512 = "VzMNuUXqRta1qpBkFiE0hKfpOGP2FbYwpBBTcJXoJWppOPBSi/paWFVhPVWf7PgRoDWegK+PDAWKhIvhyrBrIg==";
+      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-12.0.5.tgz";
+      sha512 = "ns1liBBogwjmOVZY/PYgeIoarItwdOSBxccJDZKKkxsMkXges/Bp5CAnQIvYwlsz6fByQJFvqXSOqwIUBY6gpQ==";
     };
     dependencies = [
       sources."@gar/promisify-1.1.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-1.0.0"
+      sources."@npmcli/fs-1.1.0"
       sources."@npmcli/git-2.1.0"
       sources."@npmcli/installed-package-contents-1.0.7"
       sources."@npmcli/move-file-1.1.2"
@@ -109849,29 +110094,15 @@ in
       sources."agent-base-6.0.2"
       sources."agentkeepalive-4.1.4"
       sources."aggregate-error-3.1.0"
-      (sources."ansi-align-3.0.1" // {
-        dependencies = [
-          sources."ansi-regex-5.0.1"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.3"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
-      sources."ansi-regex-2.1.1"
+      sources."ansi-align-3.0.1"
+      sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
-      sources."aproba-1.2.0"
-      sources."are-we-there-yet-1.1.7"
+      sources."aproba-2.0.0"
+      sources."are-we-there-yet-2.0.0"
       sources."argparse-2.0.1"
       sources."array-union-2.1.0"
       sources."balanced-match-1.0.2"
-      (sources."boxen-5.1.2" // {
-        dependencies = [
-          sources."ansi-regex-5.0.1"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.3"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
+      sources."boxen-5.1.2"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."buffer-from-1.1.2"
@@ -109890,19 +110121,18 @@ in
       sources."cint-8.2.1"
       sources."clean-stack-2.2.0"
       sources."cli-boxes-2.2.1"
-      sources."cli-table-0.3.6"
+      sources."cli-table-0.3.11"
       sources."clone-response-1.0.2"
-      sources."code-point-at-1.1.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
+      sources."color-support-1.1.3"
       sources."colors-1.0.3"
-      sources."commander-6.2.1"
+      sources."commander-8.3.0"
       sources."concat-map-0.0.1"
       sources."configstore-5.0.1"
       sources."console-control-strings-1.1.0"
-      sources."core-util-is-1.0.3"
       sources."crypto-random-string-2.0.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
       sources."defer-to-connect-1.1.3"
@@ -109926,7 +110156,7 @@ in
       sources."fp-and-or-0.1.3"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
-      sources."gauge-2.7.4"
+      sources."gauge-4.0.0"
       sources."get-stdin-8.0.0"
       sources."get-stream-4.1.0"
       sources."glob-7.2.0"
@@ -109960,7 +110190,7 @@ in
       sources."ip-1.1.5"
       sources."is-ci-2.0.0"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.3"
       sources."is-installed-globally-0.4.0"
       sources."is-lambda-1.0.1"
@@ -109970,7 +110200,6 @@ in
       sources."is-path-inside-3.0.3"
       sources."is-typedarray-1.0.0"
       sources."is-yarn-global-0.3.0"
-      sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."jju-1.4.0"
       sources."js-yaml-4.1.0"
@@ -110007,7 +110236,7 @@ in
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-3.1.5"
+      sources."minipass-3.1.6"
       sources."minipass-collect-1.0.2"
       sources."minipass-fetch-1.4.1"
       sources."minipass-flush-1.0.5"
@@ -110018,7 +110247,7 @@ in
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
       sources."negotiator-0.6.2"
-      sources."node-gyp-8.4.0"
+      sources."node-gyp-8.4.1"
       sources."nopt-5.0.0"
       sources."normalize-url-4.5.1"
       sources."npm-bundled-1.1.2"
@@ -110028,9 +110257,7 @@ in
       sources."npm-packlist-3.0.0"
       sources."npm-pick-manifest-6.1.1"
       sources."npm-registry-fetch-11.0.0"
-      sources."npmlog-4.1.2"
-      sources."number-is-nan-1.0.1"
-      sources."object-assign-4.1.1"
+      sources."npmlog-6.0.0"
       sources."once-1.4.0"
       sources."p-cancelable-1.1.0"
       sources."p-limit-3.1.0"
@@ -110049,7 +110276,6 @@ in
       sources."path-type-4.0.0"
       sources."picomatch-2.3.0"
       sources."prepend-http-2.0.0"
-      sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
       sources."promise-inflight-1.0.1"
       sources."promise-retry-2.0.1"
@@ -110060,7 +110286,7 @@ in
       sources."rc-1.2.8"
       sources."rc-config-loader-4.0.0"
       sources."read-package-json-fast-2.0.3"
-      sources."readable-stream-2.3.7"
+      sources."readable-stream-3.6.0"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
       sources."remote-git-tags-3.0.0"
@@ -110070,7 +110296,7 @@ in
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
       sources."run-parallel-1.2.0"
-      sources."safe-buffer-5.1.2"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-7.3.5"
       (sources."semver-diff-3.1.1" // {
@@ -110080,19 +110306,19 @@ in
       })
       sources."semver-utils-1.1.4"
       sources."set-blocking-2.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."sisteransi-1.0.5"
       sources."slash-3.0.0"
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.1"
-      sources."socks-proxy-agent-6.1.0"
+      sources."socks-proxy-agent-6.1.1"
       sources."source-map-0.6.1"
-      sources."source-map-support-0.5.20"
+      sources."source-map-support-0.5.21"
       sources."spawn-please-1.0.0"
       sources."ssri-8.0.1"
-      sources."string-width-1.0.2"
-      sources."string_decoder-1.1.1"
-      sources."strip-ansi-3.0.1"
+      sources."string-width-4.2.3"
+      sources."string_decoder-1.3.0"
+      sources."strip-ansi-6.0.1"
       sources."strip-json-comments-2.0.1"
       sources."supports-color-7.2.0"
       sources."tar-6.1.11"
@@ -110109,22 +110335,8 @@ in
       sources."validate-npm-package-name-3.0.0"
       sources."which-2.0.2"
       sources."wide-align-1.1.5"
-      (sources."widest-line-3.1.0" // {
-        dependencies = [
-          sources."ansi-regex-5.0.1"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.3"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
-      (sources."wrap-ansi-7.0.0" // {
-        dependencies = [
-          sources."ansi-regex-5.0.1"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.3"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
+      sources."widest-line-3.1.0"
+      sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-4.0.0"
@@ -110171,7 +110383,7 @@ in
     dependencies = [
       sources."abbrev-1.1.1"
       sources."ajv-6.12.6"
-      sources."ansi-regex-3.0.0"
+      sources."ansi-regex-5.0.1"
       sources."aproba-2.0.0"
       sources."are-we-there-yet-2.0.0"
       sources."argparse-0.1.15"
@@ -110202,6 +110414,7 @@ in
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
       sources."ecc-jsbn-0.1.2"
+      sources."emoji-regex-8.0.0"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
@@ -110223,7 +110436,7 @@ in
           sources."mkdirp-0.5.5"
         ];
       })
-      sources."gauge-3.0.1"
+      sources."gauge-4.0.0"
       sources."getpass-0.1.7"
       sources."glob-7.2.0"
       sources."graceful-fs-2.0.3"
@@ -110234,15 +110447,15 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.1.0"
-      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-1.0.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."mime-db-1.51.0"
       sources."mime-types-2.1.34"
       sources."minimatch-3.0.4"
@@ -110263,9 +110476,8 @@ in
           sources."semver-2.3.2"
         ];
       })
-      sources."npmlog-5.0.1"
+      sources."npmlog-6.0.0"
       sources."oauth-sign-0.9.0"
-      sources."object-assign-4.1.1"
       sources."once-1.4.0"
       sources."osenv-0.0.3"
       sources."path-is-absolute-1.0.1"
@@ -110282,12 +110494,12 @@ in
       sources."safer-buffer-2.1.2"
       sources."semver-4.3.6"
       sources."set-blocking-2.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slide-1.1.6"
       sources."sshpk-1.16.1"
-      sources."string-width-2.1.1"
+      sources."string-width-4.2.3"
       sources."string_decoder-1.3.0"
-      sources."strip-ansi-4.0.0"
+      sources."strip-ansi-6.0.1"
       (sources."tar-0.1.17" // {
         dependencies = [
           sources."inherits-1.0.2"
@@ -110321,6 +110533,83 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  nrm = nodeEnv.buildNodePackage {
+    name = "nrm";
+    packageName = "nrm";
+    version = "1.2.5";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/nrm/-/nrm-1.2.5.tgz";
+      sha512 = "QOfdBSDsrSso87Lluacdp7fXqU68c1EcjdKOKsr2SRPGXHWsxr88BNjxxJEwSKHP0cXutgUjJevxPhuYEwobMA==";
+    };
+    dependencies = [
+      sources."ajv-6.12.6"
+      sources."asn1-0.2.6"
+      sources."assert-plus-1.0.0"
+      sources."async-1.5.2"
+      sources."asynckit-0.4.0"
+      sources."aws-sign2-0.7.0"
+      sources."aws4-1.11.0"
+      sources."bcrypt-pbkdf-1.0.2"
+      sources."caseless-0.12.0"
+      sources."combined-stream-1.0.8"
+      sources."commander-2.20.3"
+      sources."core-util-is-1.0.2"
+      sources."dashdash-1.14.1"
+      sources."define-lazy-prop-2.0.0"
+      sources."delayed-stream-1.0.0"
+      sources."ecc-jsbn-0.1.2"
+      sources."extend-3.0.2"
+      sources."extsprintf-1.3.0"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."forever-agent-0.6.1"
+      sources."form-data-2.3.3"
+      sources."getpass-0.1.7"
+      sources."har-schema-2.0.0"
+      sources."har-validator-5.1.5"
+      sources."http-signature-1.2.0"
+      sources."humps-2.0.1"
+      sources."ini-1.3.8"
+      sources."is-docker-2.2.1"
+      sources."is-typedarray-1.0.0"
+      sources."is-wsl-2.2.0"
+      sources."isstream-0.1.2"
+      sources."jsbn-0.1.1"
+      sources."json-schema-0.4.0"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stringify-safe-5.0.1"
+      sources."jsprim-1.4.2"
+      sources."mime-db-1.51.0"
+      sources."mime-types-2.1.34"
+      sources."npm-7.24.2"
+      sources."oauth-sign-0.9.0"
+      sources."only-0.0.2"
+      sources."open-8.4.0"
+      sources."performance-now-2.1.0"
+      sources."psl-1.8.0"
+      sources."punycode-2.1.1"
+      sources."qs-6.5.2"
+      sources."request-2.88.2"
+      sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
+      sources."sshpk-1.16.1"
+      sources."tough-cookie-2.5.0"
+      sources."tunnel-agent-0.6.0"
+      sources."tweetnacl-0.14.5"
+      sources."uri-js-4.4.1"
+      sources."uuid-3.4.0"
+      sources."verror-1.10.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "NPM registry manager can help you easy and fast switch between different npm registries, now include: cnpm, taobao, nj(nodejitsu), edunpm";
+      homepage = "https://github.com/Pana/nrm";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   ocaml-language-server = nodeEnv.buildNodePackage {
     name = "ocaml-language-server";
     packageName = "ocaml-language-server";
@@ -110373,78 +110662,79 @@ in
     };
     dependencies = [
       sources."@babel/code-frame-7.16.0"
-      sources."@babel/compat-data-7.16.0"
-      (sources."@babel/core-7.16.0" // {
+      sources."@babel/compat-data-7.16.4"
+      (sources."@babel/core-7.16.5" // {
         dependencies = [
           sources."json5-2.2.0"
           sources."semver-6.3.0"
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.16.0" // {
+      (sources."@babel/generator-7.16.5" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
       sources."@babel/helper-annotate-as-pure-7.16.0"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.0"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.5"
       (sources."@babel/helper-compilation-targets-7.16.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/helper-create-class-features-plugin-7.16.0"
+      sources."@babel/helper-create-class-features-plugin-7.16.5"
       sources."@babel/helper-create-regexp-features-plugin-7.16.0"
-      (sources."@babel/helper-define-polyfill-provider-0.2.4" // {
+      (sources."@babel/helper-define-polyfill-provider-0.3.0" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-explode-assignable-expression-7.16.0"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
+      sources."@babel/helper-member-expression-to-functions-7.16.5"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
       sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-remap-async-to-generator-7.16.0"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-plugin-utils-7.16.5"
+      sources."@babel/helper-remap-async-to-generator-7.16.5"
+      sources."@babel/helper-replace-supers-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helper-wrap-function-7.16.0"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helper-wrap-function-7.16.5"
+      sources."@babel/helpers-7.16.5"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.3"
+      sources."@babel/parser-7.16.6"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0"
-      sources."@babel/plugin-proposal-async-generator-functions-7.16.0"
-      sources."@babel/plugin-proposal-class-properties-7.16.0"
-      sources."@babel/plugin-proposal-class-static-block-7.16.0"
-      sources."@babel/plugin-proposal-dynamic-import-7.16.0"
-      sources."@babel/plugin-proposal-export-namespace-from-7.16.0"
-      sources."@babel/plugin-proposal-json-strings-7.16.0"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.0"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.0"
-      sources."@babel/plugin-proposal-numeric-separator-7.16.0"
-      sources."@babel/plugin-proposal-object-rest-spread-7.16.0"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.16.0"
-      sources."@babel/plugin-proposal-optional-chaining-7.16.0"
-      sources."@babel/plugin-proposal-private-methods-7.16.0"
-      sources."@babel/plugin-proposal-private-property-in-object-7.16.0"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.16.0"
+      sources."@babel/plugin-proposal-async-generator-functions-7.16.5"
+      sources."@babel/plugin-proposal-class-properties-7.16.5"
+      sources."@babel/plugin-proposal-class-static-block-7.16.5"
+      sources."@babel/plugin-proposal-dynamic-import-7.16.5"
+      sources."@babel/plugin-proposal-export-namespace-from-7.16.5"
+      sources."@babel/plugin-proposal-json-strings-7.16.5"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.5"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.5"
+      sources."@babel/plugin-proposal-numeric-separator-7.16.5"
+      sources."@babel/plugin-proposal-object-rest-spread-7.16.5"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.16.5"
+      sources."@babel/plugin-proposal-optional-chaining-7.16.5"
+      sources."@babel/plugin-proposal-private-methods-7.16.5"
+      sources."@babel/plugin-proposal-private-property-in-object-7.16.5"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.16.5"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
       sources."@babel/plugin-syntax-class-static-block-7.14.5"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
       sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
-      sources."@babel/plugin-syntax-flow-7.16.0"
+      sources."@babel/plugin-syntax-flow-7.16.5"
       sources."@babel/plugin-syntax-json-strings-7.8.3"
-      sources."@babel/plugin-syntax-jsx-7.16.0"
+      sources."@babel/plugin-syntax-jsx-7.16.5"
       sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
       sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
       sources."@babel/plugin-syntax-numeric-separator-7.10.4"
@@ -110453,49 +110743,49 @@ in
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-private-property-in-object-7.14.5"
       sources."@babel/plugin-syntax-top-level-await-7.14.5"
-      sources."@babel/plugin-transform-arrow-functions-7.16.0"
-      sources."@babel/plugin-transform-async-to-generator-7.16.0"
-      sources."@babel/plugin-transform-block-scoped-functions-7.16.0"
-      sources."@babel/plugin-transform-block-scoping-7.16.0"
-      sources."@babel/plugin-transform-classes-7.16.0"
-      sources."@babel/plugin-transform-computed-properties-7.16.0"
-      sources."@babel/plugin-transform-destructuring-7.16.0"
-      sources."@babel/plugin-transform-dotall-regex-7.16.0"
-      sources."@babel/plugin-transform-duplicate-keys-7.16.0"
-      sources."@babel/plugin-transform-exponentiation-operator-7.16.0"
-      sources."@babel/plugin-transform-flow-strip-types-7.16.0"
-      sources."@babel/plugin-transform-for-of-7.16.0"
-      sources."@babel/plugin-transform-function-name-7.16.0"
-      sources."@babel/plugin-transform-literals-7.16.0"
-      sources."@babel/plugin-transform-member-expression-literals-7.16.0"
-      sources."@babel/plugin-transform-modules-amd-7.16.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.16.0"
-      sources."@babel/plugin-transform-modules-systemjs-7.16.0"
-      sources."@babel/plugin-transform-modules-umd-7.16.0"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.0"
-      sources."@babel/plugin-transform-new-target-7.16.0"
-      sources."@babel/plugin-transform-object-super-7.16.0"
-      sources."@babel/plugin-transform-parameters-7.16.3"
-      sources."@babel/plugin-transform-property-literals-7.16.0"
-      sources."@babel/plugin-transform-react-jsx-7.16.0"
-      sources."@babel/plugin-transform-regenerator-7.16.0"
-      sources."@babel/plugin-transform-reserved-words-7.16.0"
-      sources."@babel/plugin-transform-shorthand-properties-7.16.0"
-      sources."@babel/plugin-transform-spread-7.16.0"
-      sources."@babel/plugin-transform-sticky-regex-7.16.0"
-      sources."@babel/plugin-transform-template-literals-7.16.0"
-      sources."@babel/plugin-transform-typeof-symbol-7.16.0"
-      sources."@babel/plugin-transform-unicode-escapes-7.16.0"
-      sources."@babel/plugin-transform-unicode-regex-7.16.0"
-      (sources."@babel/preset-env-7.16.0" // {
+      sources."@babel/plugin-transform-arrow-functions-7.16.5"
+      sources."@babel/plugin-transform-async-to-generator-7.16.5"
+      sources."@babel/plugin-transform-block-scoped-functions-7.16.5"
+      sources."@babel/plugin-transform-block-scoping-7.16.5"
+      sources."@babel/plugin-transform-classes-7.16.5"
+      sources."@babel/plugin-transform-computed-properties-7.16.5"
+      sources."@babel/plugin-transform-destructuring-7.16.5"
+      sources."@babel/plugin-transform-dotall-regex-7.16.5"
+      sources."@babel/plugin-transform-duplicate-keys-7.16.5"
+      sources."@babel/plugin-transform-exponentiation-operator-7.16.5"
+      sources."@babel/plugin-transform-flow-strip-types-7.16.5"
+      sources."@babel/plugin-transform-for-of-7.16.5"
+      sources."@babel/plugin-transform-function-name-7.16.5"
+      sources."@babel/plugin-transform-literals-7.16.5"
+      sources."@babel/plugin-transform-member-expression-literals-7.16.5"
+      sources."@babel/plugin-transform-modules-amd-7.16.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.16.5"
+      sources."@babel/plugin-transform-modules-systemjs-7.16.5"
+      sources."@babel/plugin-transform-modules-umd-7.16.5"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.5"
+      sources."@babel/plugin-transform-new-target-7.16.5"
+      sources."@babel/plugin-transform-object-super-7.16.5"
+      sources."@babel/plugin-transform-parameters-7.16.5"
+      sources."@babel/plugin-transform-property-literals-7.16.5"
+      sources."@babel/plugin-transform-react-jsx-7.16.5"
+      sources."@babel/plugin-transform-regenerator-7.16.5"
+      sources."@babel/plugin-transform-reserved-words-7.16.5"
+      sources."@babel/plugin-transform-shorthand-properties-7.16.5"
+      sources."@babel/plugin-transform-spread-7.16.5"
+      sources."@babel/plugin-transform-sticky-regex-7.16.5"
+      sources."@babel/plugin-transform-template-literals-7.16.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.16.5"
+      sources."@babel/plugin-transform-unicode-escapes-7.16.5"
+      sources."@babel/plugin-transform-unicode-regex-7.16.5"
+      (sources."@babel/preset-env-7.16.5" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
       sources."@babel/preset-modules-0.1.5"
-      sources."@babel/runtime-7.16.3"
+      sources."@babel/runtime-7.16.5"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@iarna/toml-2.2.5"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
@@ -110551,13 +110841,13 @@ in
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."babel-plugin-dynamic-import-node-2.3.3"
-      (sources."babel-plugin-polyfill-corejs2-0.2.3" // {
+      (sources."babel-plugin-polyfill-corejs2-0.3.0" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."babel-plugin-polyfill-corejs3-0.3.0"
-      sources."babel-plugin-polyfill-regenerator-0.2.3"
+      sources."babel-plugin-polyfill-corejs3-0.4.0"
+      sources."babel-plugin-polyfill-regenerator-0.3.0"
       (sources."babel-runtime-6.26.0" // {
         dependencies = [
           sources."regenerator-runtime-0.11.1"
@@ -110601,7 +110891,7 @@ in
           sources."pako-1.0.11"
         ];
       })
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       (sources."buffer-4.9.2" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -110618,7 +110908,7 @@ in
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001280"
+      sources."caniuse-lite-1.0.30001287"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chokidar-2.1.8"
@@ -110632,7 +110922,7 @@ in
       sources."color-3.2.1"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.6.0"
+      sources."color-string-1.9.0"
       sources."combined-stream-1.0.8"
       sources."command-exists-1.2.9"
       sources."commander-2.20.3"
@@ -110644,7 +110934,7 @@ in
       sources."convert-source-map-1.8.0"
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.19.1" // {
+      (sources."core-js-compat-3.20.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -110701,7 +110991,7 @@ in
       sources."dashdash-1.14.1"
       sources."data-urls-1.1.0"
       sources."deasync-0.1.24"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decode-uri-component-0.2.0"
       sources."deep-is-0.1.4"
       (sources."defaults-1.0.3" // {
@@ -110743,7 +111033,7 @@ in
       sources."domain-browser-1.2.0"
       sources."domelementtype-1.3.1"
       sources."domexception-1.0.1"
-      (sources."domhandler-4.2.2" // {
+      (sources."domhandler-4.3.0" // {
         dependencies = [
           sources."domelementtype-2.2.0"
         ];
@@ -110755,7 +111045,7 @@ in
       sources."duplexer2-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.899"
+      sources."electron-to-chromium-1.4.21"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -110767,7 +111057,7 @@ in
       sources."error-ex-1.3.2"
       (sources."es-abstract-1.19.1" // {
         dependencies = [
-          sources."object-inspect-1.11.0"
+          sources."object-inspect-1.11.1"
         ];
       })
       sources."es-to-primitive-1.2.1"
@@ -110875,7 +111165,7 @@ in
           sources."domutils-2.8.0"
         ];
       })
-      sources."http-errors-1.7.3"
+      sources."http-errors-1.8.1"
       sources."http-signature-1.2.0"
       sources."https-browserify-1.0.0"
       sources."iconv-lite-0.4.24"
@@ -110916,7 +111206,7 @@ in
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
       sources."is-html-1.1.0"
-      sources."is-negative-zero-2.0.1"
+      sources."is-negative-zero-2.0.2"
       sources."is-number-3.0.0"
       sources."is-number-object-1.0.6"
       sources."is-obj-2.0.0"
@@ -110928,7 +111218,7 @@ in
       sources."is-symbol-1.0.4"
       sources."is-typedarray-1.0.0"
       sources."is-url-1.2.4"
-      sources."is-weakref-1.0.1"
+      sources."is-weakref-1.0.2"
       sources."is-windows-1.0.2"
       sources."is-wsl-1.1.0"
       sources."isarray-2.0.5"
@@ -110952,11 +111242,11 @@ in
       })
       sources."jsesc-2.5.2"
       sources."json-parse-better-errors-1.0.2"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."json5-1.0.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."kind-of-3.2.2"
       sources."levn-0.3.0"
       sources."lodash-4.17.21"
@@ -111068,7 +111358,7 @@ in
       })
       (sources."postcss-calc-7.0.5" // {
         dependencies = [
-          sources."postcss-value-parser-4.1.0"
+          sources."postcss-value-parser-4.2.0"
         ];
       })
       sources."postcss-colormin-4.0.3"
@@ -111123,7 +111413,7 @@ in
       sources."postcss-ordered-values-4.1.2"
       sources."postcss-reduce-initial-4.0.3"
       sources."postcss-reduce-transforms-4.0.2"
-      sources."postcss-selector-parser-6.0.6"
+      sources."postcss-selector-parser-6.0.7"
       sources."postcss-svgo-4.0.3"
       sources."postcss-unique-selectors-4.0.1"
       sources."postcss-value-parser-3.3.1"
@@ -111207,31 +111497,31 @@ in
       sources."sax-1.2.4"
       sources."saxes-3.1.11"
       sources."semver-5.7.1"
-      (sources."send-0.17.1" // {
+      (sources."send-0.17.2" // {
         dependencies = [
           (sources."debug-2.6.9" // {
             dependencies = [
               sources."ms-2.0.0"
             ];
           })
-          sources."ms-2.1.1"
+          sources."ms-2.1.3"
         ];
       })
       sources."serialize-to-js-3.1.1"
-      sources."serve-static-1.14.1"
+      sources."serve-static-1.14.2"
       sources."set-value-2.0.1"
       sources."setimmediate-1.0.5"
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."sha.js-2.4.11"
       sources."shallow-copy-0.0.1"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       (sources."side-channel-1.0.4" // {
         dependencies = [
-          sources."object-inspect-1.11.0"
+          sources."object-inspect-1.11.1"
         ];
       })
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       (sources."simple-swizzle-0.2.2" // {
         dependencies = [
           sources."is-arrayish-0.3.2"
@@ -111252,7 +111542,7 @@ in
       sources."snapdragon-util-3.0.1"
       sources."source-map-0.6.1"
       sources."source-map-resolve-0.5.3"
-      sources."source-map-support-0.5.20"
+      sources."source-map-support-0.5.21"
       sources."source-map-url-0.4.1"
       (sources."split-string-3.1.0" // {
         dependencies = [
@@ -111304,7 +111594,7 @@ in
         ];
       })
       sources."to-regex-range-2.1.1"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."tough-cookie-2.5.0"
       sources."tr46-1.0.1"
       sources."tty-browserify-0.0.0"
@@ -111524,10 +111814,10 @@ in
       sources."isstream-0.1.2"
       sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."kad-fs-0.0.4"
       sources."kad-localstorage-0.0.7"
       sources."kad-memstore-0.0.1"
@@ -111637,7 +111927,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
-      sources."uglify-js-3.14.3"
+      sources."uglify-js-3.14.5"
       sources."unix-dgram-2.0.4"
       sources."unpipe-1.0.0"
       sources."uri-js-4.4.1"
@@ -111989,7 +112279,7 @@ in
       sources."safer-buffer-2.1.2"
       sources."semver-5.7.1"
       sources."server-destroy-1.0.1"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
       sources."simple-peer-6.4.4"
@@ -112108,7 +112398,7 @@ in
       sources."blob-0.0.5"
       sources."bn.js-4.12.0"
       sources."bncode-0.5.3"
-      sources."body-parser-1.19.0"
+      sources."body-parser-1.19.1"
       sources."brace-expansion-1.1.11"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
@@ -112118,7 +112408,7 @@ in
       sources."buffer-equals-1.0.4"
       sources."buffer-fill-1.0.0"
       sources."buffer-from-1.1.2"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.1"
       sources."caseless-0.12.0"
       sources."chrome-dgram-3.0.6"
       sources."chrome-dns-1.0.1"
@@ -112136,7 +112426,10 @@ in
       sources."concat-map-0.0.1"
       (sources."connect-multiparty-2.2.0" // {
         dependencies = [
+          sources."http-errors-1.7.3"
           sources."qs-6.5.2"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
       sources."content-disposition-0.5.3"
@@ -112172,7 +112465,19 @@ in
       sources."engine.io-parser-2.2.1"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      sources."express-4.17.1"
+      (sources."express-4.17.1" // {
+        dependencies = [
+          sources."body-parser-1.19.0"
+          sources."bytes-3.1.0"
+          sources."http-errors-1.7.2"
+          sources."inherits-2.0.3"
+          sources."qs-6.7.0"
+          sources."raw-body-2.4.0"
+          sources."serve-static-1.14.1"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
+        ];
+      })
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
@@ -112201,11 +112506,7 @@ in
       })
       sources."has-cors-1.1.0"
       sources."hat-0.0.3"
-      (sources."http-errors-1.7.2" // {
-        dependencies = [
-          sources."inherits-2.0.3"
-        ];
-      })
+      sources."http-errors-1.8.1"
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
@@ -112221,10 +112522,10 @@ in
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."k-bucket-0.6.0"
       (sources."k-rpc-3.7.0" // {
         dependencies = [
@@ -112268,10 +112569,7 @@ in
       sources."ms-2.0.0"
       (sources."multiparty-4.2.2" // {
         dependencies = [
-          sources."http-errors-1.8.1"
           sources."safe-buffer-5.2.1"
-          sources."setprototypeof-1.2.0"
-          sources."toidentifier-1.0.1"
         ];
       })
       sources."negotiator-0.6.2"
@@ -112307,7 +112605,7 @@ in
       sources."psl-1.8.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
-      sources."qs-6.7.0"
+      sources."qs-6.9.6"
       sources."queue-microtask-1.2.3"
       sources."queue-tick-1.0.0"
       sources."random-access-file-2.2.0"
@@ -112316,7 +112614,7 @@ in
       sources."random-iterate-1.0.1"
       sources."randombytes-2.1.0"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.0"
+      sources."raw-body-2.4.2"
       sources."re-emitter-1.1.4"
       sources."read-torrent-1.3.1"
       sources."readable-stream-3.6.0"
@@ -112333,11 +112631,19 @@ in
       sources."safer-buffer-2.1.2"
       (sources."send-0.17.1" // {
         dependencies = [
+          sources."http-errors-1.7.3"
           sources."ms-2.1.1"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
-      sources."serve-static-1.14.1"
-      sources."setprototypeof-1.1.1"
+      (sources."serve-static-1.14.2" // {
+        dependencies = [
+          sources."ms-2.1.3"
+          sources."send-0.17.2"
+        ];
+      })
+      sources."setprototypeof-1.2.0"
       sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
       (sources."simple-peer-6.4.4" // {
@@ -112388,7 +112694,7 @@ in
       sources."thirty-two-0.0.2"
       sources."thunky-1.1.0"
       sources."to-array-0.1.4"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."torrent-discovery-5.4.0"
       sources."torrent-piece-1.1.2"
       (sources."torrent-stream-1.2.1" // {
@@ -112438,15 +112744,15 @@ in
   pkg = nodeEnv.buildNodePackage {
     name = "pkg";
     packageName = "pkg";
-    version = "5.4.1";
+    version = "5.5.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pkg/-/pkg-5.4.1.tgz";
-      sha512 = "iJs3W6MCgeZ4MrH7iZtX6HTqsNzoh2U9rGILL3eOLbQFV43U8WPAzrqRK7cBQGuHx38UXxcGT6G/2yDl/GveRg==";
+      url = "https://registry.npmjs.org/pkg/-/pkg-5.5.1.tgz";
+      sha512 = "3IiUgwYRQBfXcmdBakjqttRrhpruZ1h/UCobtra2IN4S29eJhgxr39Dd8EZxUikgSLUH3v/eUWO3ZInSmlSXpw==";
     };
     dependencies = [
       sources."@babel/helper-validator-identifier-7.15.7"
-      sources."@babel/parser-7.13.13"
-      sources."@babel/types-7.13.12"
+      sources."@babel/parser-7.16.2"
+      sources."@babel/types-7.16.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -112473,7 +112779,7 @@ in
       sources."color-name-1.1.4"
       sources."console-control-strings-1.1.0"
       sources."core-util-is-1.0.3"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decompress-response-4.2.1"
       sources."deep-extend-0.6.0"
       sources."deep-is-0.1.4"
@@ -112526,7 +112832,6 @@ in
       sources."isarray-1.0.0"
       sources."jsonfile-6.1.0"
       sources."levn-0.3.0"
-      sources."lodash-4.17.21"
       sources."lru-cache-6.0.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.4"
@@ -112546,7 +112851,6 @@ in
         ];
       })
       sources."node-fetch-2.6.6"
-      sources."noop-logger-0.1.1"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
       sources."object-assign-4.1.1"
@@ -112556,8 +112860,8 @@ in
       sources."path-parse-1.0.7"
       sources."path-type-4.0.0"
       sources."picomatch-2.3.0"
-      sources."pkg-fetch-3.2.4"
-      sources."prebuild-install-6.0.1"
+      sources."pkg-fetch-3.2.5"
+      sources."prebuild-install-6.1.4"
       sources."prelude-ls-1.1.2"
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
@@ -112572,7 +112876,7 @@ in
       sources."safe-buffer-5.1.2"
       sources."semver-7.3.5"
       sources."set-blocking-2.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."simple-concat-1.0.1"
       sources."simple-get-3.1.0"
       sources."slash-3.0.0"
@@ -112592,14 +112896,13 @@ in
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
-      sources."tslib-2.1.0"
+      sources."tslib-2.3.1"
       sources."tunnel-agent-0.6.0"
       sources."type-check-0.3.2"
       sources."universalify-2.0.0"
       sources."util-deprecate-1.0.2"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
-      sources."which-pm-runs-1.0.0"
       sources."wide-align-1.1.5"
       sources."word-wrap-1.2.3"
       sources."wrap-ansi-7.0.0"
@@ -112686,7 +112989,7 @@ in
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."buffer-from-1.1.2"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.1"
       sources."chalk-3.0.0"
       sources."charm-0.1.2"
       sources."chokidar-3.5.2"
@@ -112701,7 +113004,7 @@ in
       sources."culvert-0.1.2"
       sources."data-uri-to-buffer-3.0.1"
       sources."dayjs-1.8.36"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."deep-is-0.1.4"
       sources."degenerator-3.0.1"
       sources."depd-1.1.2"
@@ -112718,7 +113021,7 @@ in
       sources."fclone-1.0.11"
       sources."file-uri-to-path-2.0.0"
       sources."fill-range-7.0.1"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
@@ -112732,7 +113035,7 @@ in
       sources."graceful-fs-4.2.8"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
-      sources."http-errors-1.7.3"
+      sources."http-errors-1.8.1"
       sources."http-proxy-agent-4.0.1"
       sources."https-proxy-agent-5.0.0"
       sources."iconv-lite-0.4.24"
@@ -112791,7 +113094,7 @@ in
       sources."promptly-2.2.0"
       sources."proxy-agent-5.0.0"
       sources."proxy-from-env-1.1.0"
-      sources."raw-body-2.4.1"
+      sources."raw-body-2.4.2"
       sources."read-1.0.7"
       sources."readable-stream-1.1.14"
       sources."readdirp-3.6.0"
@@ -112807,9 +113110,9 @@ in
           sources."yallist-4.0.0"
         ];
       })
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."shimmer-1.2.1"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.1"
       sources."socks-proxy-agent-5.0.1"
@@ -112819,12 +113122,12 @@ in
       sources."statuses-1.5.0"
       sources."string_decoder-0.10.31"
       sources."supports-color-7.2.0"
-      sources."systeminformation-5.9.13"
+      sources."systeminformation-5.9.17"
       sources."to-regex-range-5.0.1"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."tslib-2.3.1"
       sources."tv4-1.3.0"
-      sources."tx2-1.0.4"
+      sources."tx2-1.0.5"
       sources."type-check-0.3.2"
       sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
@@ -112855,10 +113158,10 @@ in
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
-    version = "6.22.2";
+    version = "6.24.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pnpm/-/pnpm-6.22.2.tgz";
-      sha512 = "8umiz8XtgauWmPzOrb0CvCCwyb4IkJiavnxMDvNEbDpTb/6FZh3SLVVR2WNb07obGVKY6USpo159o5zd3RHD9g==";
+      url = "https://registry.npmjs.org/pnpm/-/pnpm-6.24.1.tgz";
+      sha512 = "gvXXhgSfdq27ASRSd9121GtRXqnZ5RMeaj/HDlsRjV5XTBWCMJZvLIdz6SiSeDQas/+6w9PNz73vFR0l9j+XYA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -112901,15 +113204,15 @@ in
   postcss = nodeEnv.buildNodePackage {
     name = "postcss";
     packageName = "postcss";
-    version = "8.3.11";
+    version = "8.4.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz";
-      sha512 = "hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==";
+      url = "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz";
+      sha512 = "jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==";
     };
     dependencies = [
       sources."nanoid-3.1.30"
       sources."picocolors-1.0.0"
-      sources."source-map-js-0.6.2"
+      sources."source-map-js-1.0.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -112924,10 +113227,10 @@ in
   postcss-cli = nodeEnv.buildNodePackage {
     name = "postcss-cli";
     packageName = "postcss-cli";
-    version = "9.0.2";
+    version = "9.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.0.2.tgz";
-      sha512 = "08Wujoy7YGhKCFrGsT9OXqWjtHlGQ+JmyaD/4McjCiwor2IUTRVzXiJd+xmLTGdSWjceS6/TePaJQwBlkVWHiw==";
+      url = "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.1.0.tgz";
+      sha512 = "zvDN2ADbWfza42sAnj+O2uUWyL0eRL1V+6giM2vi4SqTR3gTYy8XzcpfwccayF2szcUif0HMmXiEaDv9iEhcpw==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.5"
@@ -112997,8 +113300,8 @@ in
       sources."wrap-ansi-7.0.0"
       sources."y18n-5.0.8"
       sources."yaml-1.10.2"
-      sources."yargs-17.2.1"
-      sources."yargs-parser-20.2.9"
+      sources."yargs-17.3.0"
+      sources."yargs-parser-21.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -113013,10 +113316,10 @@ in
   prettier = nodeEnv.buildNodePackage {
     name = "prettier";
     packageName = "prettier";
-    version = "2.4.1";
+    version = "2.5.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz";
-      sha512 = "9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==";
+      url = "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz";
+      sha512 = "vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -113055,13 +113358,13 @@ in
   prisma = nodeEnv.buildNodePackage {
     name = "prisma";
     packageName = "prisma";
-    version = "3.4.2";
+    version = "3.6.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prisma/-/prisma-3.4.2.tgz";
-      sha512 = "wOD1lni7MfH/Qkp5SAkUthLKG+pQcpD31Nm8nAKj9ESgqId/dy+JDSTYOuk/pySvFyby/A+bsAPWIaVmo7qqhQ==";
+      url = "https://registry.npmjs.org/prisma/-/prisma-3.6.0.tgz";
+      sha512 = "6SqgHS/5Rq6HtHjsWsTxlj+ySamGyCLBUQfotc2lStOjPv52IQuDVpp58GieNqc9VnfuFyHUvTZw7aQB+G2fvQ==";
     };
     dependencies = [
-      sources."@prisma/engines-3.4.1-2.57771c0558568c7d08bd34c7248af5244ae16bd9"
+      sources."@prisma/engines-3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -113073,6 +113376,40 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  "@prisma/language-server" = nodeEnv.buildNodePackage {
+    name = "_at_prisma_slash_language-server";
+    packageName = "@prisma/language-server";
+    version = "3.6.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/@prisma/language-server/-/language-server-3.6.0.tgz";
+      sha512 = "3WUlWYGEcavLaueLpl6vsGsgfHn2TMB4885tIsQ/qPulwdY9ZgL+qzrve+wnSoBwgFi3gSWnGZB6VYOhLaOTdQ==";
+    };
+    dependencies = [
+      sources."@prisma/debug-3.5.0"
+      sources."@prisma/get-platform-3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727"
+      sources."@prisma/prisma-fmt-wasm-3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727"
+      sources."@types/debug-4.1.7"
+      sources."@types/js-levenshtein-1.1.0"
+      sources."@types/ms-0.7.31"
+      sources."js-levenshtein-1.1.6"
+      sources."klona-2.0.5"
+      sources."ms-2.1.3"
+      sources."vscode-jsonrpc-6.0.0"
+      sources."vscode-languageserver-7.0.0"
+      sources."vscode-languageserver-protocol-3.16.0"
+      sources."vscode-languageserver-textdocument-1.0.3"
+      sources."vscode-languageserver-types-3.16.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Implementation of a language server in Node.";
+      homepage = "https://github.com/prisma/language-tools#readme";
+      license = "Apache-2.0";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   pscid = nodeEnv.buildNodePackage {
     name = "pscid";
     packageName = "pscid";
@@ -113386,10 +113723,10 @@ in
   purescript-language-server = nodeEnv.buildNodePackage {
     name = "purescript-language-server";
     packageName = "purescript-language-server";
-    version = "0.15.8";
+    version = "0.16.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/purescript-language-server/-/purescript-language-server-0.15.8.tgz";
-      sha512 = "eXOOG0c7nCKtxPOJVScZTXwxVx/of515wSQY4zqiqEvVbmd7y1+ldnFUJKq1wJmKjimGA447n2QFF6S38NwjXg==";
+      url = "https://registry.npmjs.org/purescript-language-server/-/purescript-language-server-0.16.1.tgz";
+      sha512 = "TX18OnuIZYDySoYxENH7dTQmjwewyoSt8x4chQcLd/zZjgYyiJCr7rDs7LP7Z8bse3iyvQte+HS1OoEIQnauqw==";
     };
     dependencies = [
       sources."ajv-6.12.6"
@@ -113465,10 +113802,10 @@ in
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."log-symbols-3.0.0"
       sources."log-update-3.4.0"
       sources."lru-cache-5.1.1"
@@ -113525,7 +113862,7 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."shell-quote-1.7.3"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."spago-0.20.3"
       sources."sshpk-1.16.1"
       sources."ssri-6.0.2"
@@ -113556,11 +113893,11 @@ in
           sources."core-util-is-1.0.2"
         ];
       })
-      sources."vscode-jsonrpc-8.0.0-next.3"
-      sources."vscode-languageserver-8.0.0-next.3"
-      sources."vscode-languageserver-protocol-3.17.0-next.9"
-      sources."vscode-languageserver-textdocument-1.0.2"
-      sources."vscode-languageserver-types-3.17.0-next.4"
+      sources."vscode-jsonrpc-8.0.0-next.4"
+      sources."vscode-languageserver-8.0.0-next.5"
+      sources."vscode-languageserver-protocol-3.17.0-next.11"
+      sources."vscode-languageserver-textdocument-1.0.3"
+      sources."vscode-languageserver-types-3.17.0-next.5"
       sources."vscode-uri-2.1.2"
       sources."which-2.0.2"
       sources."wrap-ansi-5.1.0"
@@ -113643,13 +113980,13 @@ in
       sources."colors-1.4.0"
       sources."commander-5.1.0"
       sources."compare-versions-3.6.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
       sources."defer-to-connect-1.1.3"
       sources."duplexer3-0.1.4"
       sources."end-of-stream-1.4.4"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."fs-extra-9.1.0"
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.1"
@@ -113677,7 +114014,7 @@ in
       sources."moment-2.29.1"
       sources."ms-2.1.2"
       sources."normalize-url-4.5.1"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."once-1.4.0"
       sources."open-7.4.2"
       sources."p-cancelable-1.1.0"
@@ -113686,7 +114023,7 @@ in
       sources."prepend-http-2.0.0"
       sources."prompts-2.4.2"
       sources."pump-3.0.0"
-      sources."qs-6.10.1"
+      sources."qs-6.10.2"
       sources."rc-1.2.8"
       sources."readline-sync-1.4.10"
       sources."register-protocol-win32-1.1.0"
@@ -113719,10 +114056,10 @@ in
   pyright = nodeEnv.buildNodePackage {
     name = "pyright";
     packageName = "pyright";
-    version = "1.1.187";
+    version = "1.1.196";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.187.tgz";
-      sha512 = "g3M7FoNH1HiCmOK0c6Y7c4KdUSqwDyuUQKiU11onzHT17ZHLpcLo7drDBEnBREUSlG30FpxRKFHqk0doo90Yyg==";
+      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.196.tgz";
+      sha512 = "63LF3JNElRU9wkCLgJLk8NMi4tJ/aB97itckp19zb4g8wXmlc90nyvA5bUk19ey10R4yAmlp8ol8Tz/mxAUmGQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -113877,7 +114214,7 @@ in
       sources."shallow-copy-0.0.1"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."source-map-0.6.1"
       (sources."static-eval-2.1.0" // {
         dependencies = [
@@ -114010,7 +114347,7 @@ in
       sources."is-callable-1.2.4"
       sources."is-date-object-1.0.5"
       sources."is-map-2.0.2"
-      sources."is-negative-zero-2.0.1"
+      sources."is-negative-zero-2.0.2"
       sources."is-number-object-1.0.6"
       sources."is-regex-1.1.4"
       sources."is-set-2.0.2"
@@ -114019,8 +114356,8 @@ in
       sources."is-symbol-1.0.4"
       sources."is-typed-array-1.1.8"
       sources."is-weakmap-2.0.1"
-      sources."is-weakref-1.0.1"
-      sources."is-weakset-2.0.1"
+      sources."is-weakref-1.0.2"
+      sources."is-weakset-2.0.2"
       sources."isarray-2.0.5"
       sources."isstream-0.1.2"
       sources."minimatch-3.0.4"
@@ -114028,7 +114365,7 @@ in
       sources."mkdirp-0.5.5"
       sources."mute-stream-0.0.8"
       sources."ncp-0.4.2"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
@@ -114080,73 +114417,74 @@ in
     dependencies = [
       sources."@babel/cli-7.16.0"
       sources."@babel/code-frame-7.16.0"
-      sources."@babel/compat-data-7.16.0"
-      (sources."@babel/core-7.16.0" // {
+      sources."@babel/compat-data-7.16.4"
+      (sources."@babel/core-7.16.5" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/generator-7.16.0"
+      sources."@babel/generator-7.16.5"
       sources."@babel/helper-annotate-as-pure-7.16.0"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.0"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.5"
       (sources."@babel/helper-compilation-targets-7.16.3" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/helper-create-class-features-plugin-7.16.0"
+      sources."@babel/helper-create-class-features-plugin-7.16.5"
       sources."@babel/helper-create-regexp-features-plugin-7.16.0"
-      (sources."@babel/helper-define-polyfill-provider-0.2.4" // {
+      (sources."@babel/helper-define-polyfill-provider-0.3.0" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-explode-assignable-expression-7.16.0"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
-      sources."@babel/helper-member-expression-to-functions-7.16.0"
+      sources."@babel/helper-member-expression-to-functions-7.16.5"
       sources."@babel/helper-module-imports-7.16.0"
-      sources."@babel/helper-module-transforms-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.5"
       sources."@babel/helper-optimise-call-expression-7.16.0"
-      sources."@babel/helper-plugin-utils-7.14.5"
-      sources."@babel/helper-remap-async-to-generator-7.16.0"
-      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-plugin-utils-7.16.5"
+      sources."@babel/helper-remap-async-to-generator-7.16.5"
+      sources."@babel/helper-replace-supers-7.16.5"
       sources."@babel/helper-simple-access-7.16.0"
       sources."@babel/helper-skip-transparent-expression-wrappers-7.16.0"
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/helper-validator-option-7.14.5"
-      sources."@babel/helper-wrap-function-7.16.0"
-      sources."@babel/helpers-7.16.3"
+      sources."@babel/helper-wrap-function-7.16.5"
+      sources."@babel/helpers-7.16.5"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.3"
+      sources."@babel/parser-7.16.6"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0"
-      sources."@babel/plugin-proposal-async-generator-functions-7.16.0"
-      sources."@babel/plugin-proposal-class-properties-7.16.0"
-      sources."@babel/plugin-proposal-class-static-block-7.16.0"
-      sources."@babel/plugin-proposal-dynamic-import-7.16.0"
-      sources."@babel/plugin-proposal-export-default-from-7.16.0"
-      sources."@babel/plugin-proposal-export-namespace-from-7.16.0"
-      sources."@babel/plugin-proposal-json-strings-7.16.0"
-      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.0"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.0"
-      sources."@babel/plugin-proposal-numeric-separator-7.16.0"
-      sources."@babel/plugin-proposal-object-rest-spread-7.16.0"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.16.0"
-      sources."@babel/plugin-proposal-optional-chaining-7.16.0"
-      sources."@babel/plugin-proposal-private-methods-7.16.0"
-      sources."@babel/plugin-proposal-private-property-in-object-7.16.0"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.16.0"
+      sources."@babel/plugin-proposal-async-generator-functions-7.16.5"
+      sources."@babel/plugin-proposal-class-properties-7.16.5"
+      sources."@babel/plugin-proposal-class-static-block-7.16.5"
+      sources."@babel/plugin-proposal-dynamic-import-7.16.5"
+      sources."@babel/plugin-proposal-export-default-from-7.16.5"
+      sources."@babel/plugin-proposal-export-namespace-from-7.16.5"
+      sources."@babel/plugin-proposal-json-strings-7.16.5"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.5"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.5"
+      sources."@babel/plugin-proposal-numeric-separator-7.16.5"
+      sources."@babel/plugin-proposal-object-rest-spread-7.16.5"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.16.5"
+      sources."@babel/plugin-proposal-optional-chaining-7.16.5"
+      sources."@babel/plugin-proposal-private-methods-7.16.5"
+      sources."@babel/plugin-proposal-private-property-in-object-7.16.5"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.16.5"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-class-properties-7.12.13"
       sources."@babel/plugin-syntax-class-static-block-7.14.5"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
-      sources."@babel/plugin-syntax-export-default-from-7.16.0"
+      sources."@babel/plugin-syntax-export-default-from-7.16.5"
       sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
       sources."@babel/plugin-syntax-json-strings-7.8.3"
-      sources."@babel/plugin-syntax-jsx-7.16.0"
+      sources."@babel/plugin-syntax-jsx-7.16.5"
       sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
       sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
       sources."@babel/plugin-syntax-numeric-separator-7.10.4"
@@ -114155,66 +114493,66 @@ in
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
       sources."@babel/plugin-syntax-private-property-in-object-7.14.5"
       sources."@babel/plugin-syntax-top-level-await-7.14.5"
-      sources."@babel/plugin-transform-arrow-functions-7.16.0"
-      sources."@babel/plugin-transform-async-to-generator-7.16.0"
-      sources."@babel/plugin-transform-block-scoped-functions-7.16.0"
-      sources."@babel/plugin-transform-block-scoping-7.16.0"
-      sources."@babel/plugin-transform-classes-7.16.0"
-      sources."@babel/plugin-transform-computed-properties-7.16.0"
-      sources."@babel/plugin-transform-destructuring-7.16.0"
-      sources."@babel/plugin-transform-dotall-regex-7.16.0"
-      sources."@babel/plugin-transform-duplicate-keys-7.16.0"
-      sources."@babel/plugin-transform-exponentiation-operator-7.16.0"
-      sources."@babel/plugin-transform-for-of-7.16.0"
-      sources."@babel/plugin-transform-function-name-7.16.0"
-      sources."@babel/plugin-transform-literals-7.16.0"
-      sources."@babel/plugin-transform-member-expression-literals-7.16.0"
-      sources."@babel/plugin-transform-modules-amd-7.16.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.16.0"
-      sources."@babel/plugin-transform-modules-systemjs-7.16.0"
-      sources."@babel/plugin-transform-modules-umd-7.16.0"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.0"
-      sources."@babel/plugin-transform-new-target-7.16.0"
-      sources."@babel/plugin-transform-object-super-7.16.0"
-      sources."@babel/plugin-transform-parameters-7.16.3"
-      sources."@babel/plugin-transform-property-literals-7.16.0"
-      sources."@babel/plugin-transform-react-display-name-7.16.0"
-      sources."@babel/plugin-transform-react-jsx-7.16.0"
-      sources."@babel/plugin-transform-react-jsx-development-7.16.0"
-      sources."@babel/plugin-transform-react-pure-annotations-7.16.0"
-      sources."@babel/plugin-transform-regenerator-7.16.0"
-      sources."@babel/plugin-transform-reserved-words-7.16.0"
-      (sources."@babel/plugin-transform-runtime-7.16.0" // {
+      sources."@babel/plugin-transform-arrow-functions-7.16.5"
+      sources."@babel/plugin-transform-async-to-generator-7.16.5"
+      sources."@babel/plugin-transform-block-scoped-functions-7.16.5"
+      sources."@babel/plugin-transform-block-scoping-7.16.5"
+      sources."@babel/plugin-transform-classes-7.16.5"
+      sources."@babel/plugin-transform-computed-properties-7.16.5"
+      sources."@babel/plugin-transform-destructuring-7.16.5"
+      sources."@babel/plugin-transform-dotall-regex-7.16.5"
+      sources."@babel/plugin-transform-duplicate-keys-7.16.5"
+      sources."@babel/plugin-transform-exponentiation-operator-7.16.5"
+      sources."@babel/plugin-transform-for-of-7.16.5"
+      sources."@babel/plugin-transform-function-name-7.16.5"
+      sources."@babel/plugin-transform-literals-7.16.5"
+      sources."@babel/plugin-transform-member-expression-literals-7.16.5"
+      sources."@babel/plugin-transform-modules-amd-7.16.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.16.5"
+      sources."@babel/plugin-transform-modules-systemjs-7.16.5"
+      sources."@babel/plugin-transform-modules-umd-7.16.5"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.5"
+      sources."@babel/plugin-transform-new-target-7.16.5"
+      sources."@babel/plugin-transform-object-super-7.16.5"
+      sources."@babel/plugin-transform-parameters-7.16.5"
+      sources."@babel/plugin-transform-property-literals-7.16.5"
+      sources."@babel/plugin-transform-react-display-name-7.16.5"
+      sources."@babel/plugin-transform-react-jsx-7.16.5"
+      sources."@babel/plugin-transform-react-jsx-development-7.16.5"
+      sources."@babel/plugin-transform-react-pure-annotations-7.16.5"
+      sources."@babel/plugin-transform-regenerator-7.16.5"
+      sources."@babel/plugin-transform-reserved-words-7.16.5"
+      (sources."@babel/plugin-transform-runtime-7.16.5" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."@babel/plugin-transform-shorthand-properties-7.16.0"
-      sources."@babel/plugin-transform-spread-7.16.0"
-      sources."@babel/plugin-transform-sticky-regex-7.16.0"
-      sources."@babel/plugin-transform-template-literals-7.16.0"
-      sources."@babel/plugin-transform-typeof-symbol-7.16.0"
-      sources."@babel/plugin-transform-unicode-escapes-7.16.0"
-      sources."@babel/plugin-transform-unicode-regex-7.16.0"
-      (sources."@babel/preset-env-7.16.0" // {
+      sources."@babel/plugin-transform-shorthand-properties-7.16.5"
+      sources."@babel/plugin-transform-spread-7.16.5"
+      sources."@babel/plugin-transform-sticky-regex-7.16.5"
+      sources."@babel/plugin-transform-template-literals-7.16.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.16.5"
+      sources."@babel/plugin-transform-unicode-escapes-7.16.5"
+      sources."@babel/plugin-transform-unicode-regex-7.16.5"
+      (sources."@babel/preset-env-7.16.5" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
       sources."@babel/preset-modules-0.1.5"
-      sources."@babel/preset-react-7.16.0"
+      sources."@babel/preset-react-7.16.5"
       sources."@babel/preset-stage-0-7.8.3"
-      sources."@babel/register-7.16.0"
-      sources."@babel/runtime-7.16.3"
+      sources."@babel/register-7.16.5"
+      sources."@babel/runtime-7.16.5"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@reach/router-1.3.4"
       sources."@sindresorhus/is-0.7.0"
       sources."@types/glob-7.2.0"
       sources."@types/json-schema-7.0.9"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/q-1.5.5"
       sources."@webassemblyjs/ast-1.9.0"
@@ -114307,13 +114645,13 @@ in
       })
       sources."babel-plugin-dynamic-import-node-2.3.3"
       sources."babel-plugin-macros-2.8.0"
-      (sources."babel-plugin-polyfill-corejs2-0.2.3" // {
+      (sources."babel-plugin-polyfill-corejs2-0.3.0" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."babel-plugin-polyfill-corejs3-0.3.0"
-      sources."babel-plugin-polyfill-regenerator-0.2.3"
+      sources."babel-plugin-polyfill-corejs3-0.4.0"
+      sources."babel-plugin-polyfill-regenerator-0.3.0"
       sources."babel-plugin-transform-react-remove-prop-types-0.4.24"
       sources."babel-plugin-universal-import-4.0.2"
       (sources."babel-runtime-6.26.0" // {
@@ -114372,7 +114710,7 @@ in
         ];
       })
       sources."browserify-zlib-0.1.4"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -114406,7 +114744,7 @@ in
       sources."camel-case-3.0.0"
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001280"
+      sources."caniuse-lite-1.0.30001287"
       sources."case-sensitive-paths-webpack-plugin-2.4.0"
       sources."caw-2.0.1"
       sources."chalk-2.4.2"
@@ -114459,7 +114797,7 @@ in
       sources."color-3.2.1"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.6.0"
+      sources."color-string-1.9.0"
       sources."commander-4.1.1"
       sources."commondir-1.0.1"
       sources."component-bind-1.0.0"
@@ -114478,7 +114816,11 @@ in
       sources."connect-history-api-fallback-1.6.0"
       sources."console-browserify-1.2.0"
       sources."constants-browserify-1.0.0"
-      sources."content-disposition-0.5.3"
+      (sources."content-disposition-0.5.4" // {
+        dependencies = [
+          sources."safe-buffer-5.2.1"
+        ];
+      })
       sources."content-type-1.0.4"
       sources."convert-source-map-1.8.0"
       sources."cookie-0.4.1"
@@ -114486,7 +114828,7 @@ in
       sources."copy-concurrently-1.0.5"
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.19.1" // {
+      (sources."core-js-compat-3.20.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -114542,7 +114884,7 @@ in
         ];
       })
       sources."cyclist-1.0.1"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
       (sources."decompress-4.2.1" // {
@@ -114611,7 +114953,7 @@ in
       })
       sources."domain-browser-1.2.0"
       sources."domelementtype-1.3.1"
-      (sources."domhandler-4.2.2" // {
+      (sources."domhandler-4.3.0" // {
         dependencies = [
           sources."domelementtype-2.2.0"
         ];
@@ -114630,7 +114972,7 @@ in
       sources."duplexify-3.7.1"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.3.899"
+      sources."electron-to-chromium-1.4.21"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -114703,6 +115045,7 @@ in
       })
       (sources."express-4.17.1" // {
         dependencies = [
+          sources."content-disposition-0.5.3"
           sources."cookie-0.4.0"
           sources."debug-2.6.9"
           sources."ms-2.0.0"
@@ -114764,7 +115107,7 @@ in
       sources."find-cache-dir-2.1.0"
       sources."find-up-3.0.0"
       sources."flush-write-stream-1.1.1"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."for-in-1.0.2"
       sources."forwarded-0.2.0"
       sources."fragment-cache-0.2.1"
@@ -114871,7 +115214,7 @@ in
           sources."inherits-2.0.3"
         ];
       })
-      sources."http-parser-js-0.5.3"
+      sources."http-parser-js-0.5.5"
       sources."http-proxy-1.18.1"
       sources."http-proxy-middleware-0.19.1"
       sources."https-browserify-1.0.0"
@@ -114942,7 +115285,7 @@ in
       sources."is-glob-4.0.3"
       sources."is-gzip-1.0.0"
       sources."is-natural-number-4.0.1"
-      sources."is-negative-zero-2.0.1"
+      sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
       sources."is-number-object-1.0.6"
       sources."is-obj-2.0.0"
@@ -114959,7 +115302,7 @@ in
       sources."is-stream-1.1.0"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
-      sources."is-weakref-1.0.1"
+      sources."is-weakref-1.0.2"
       sources."is-windows-1.0.2"
       sources."is-wsl-1.1.0"
       sources."isarray-1.0.0"
@@ -114980,7 +115323,7 @@ in
       sources."killable-1.0.1"
       sources."kind-of-6.0.3"
       sources."last-call-webpack-plugin-3.0.0"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."loader-runner-2.4.0"
       (sources."loader-utils-1.4.0" // {
         dependencies = [
@@ -114992,7 +115335,7 @@ in
       sources."lodash.debounce-4.0.8"
       sources."lodash.memoize-4.1.2"
       sources."lodash.uniq-4.5.0"
-      sources."loglevel-1.7.1"
+      sources."loglevel-1.8.0"
       sources."loose-envify-1.4.0"
       sources."lower-case-1.1.4"
       sources."lowercase-keys-1.0.1"
@@ -115074,7 +115417,6 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."node-modules-regexp-1.0.0"
       sources."node-releases-2.0.1"
       sources."normalize-path-3.0.0"
       sources."normalize-range-0.1.2"
@@ -115105,7 +115447,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
@@ -115162,7 +115504,7 @@ in
       sources."pify-4.0.1"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
-      sources."pirates-4.0.1"
+      sources."pirates-4.0.4"
       sources."pkg-dir-3.0.0"
       (sources."portfinder-1.0.28" // {
         dependencies = [
@@ -115296,14 +115638,14 @@ in
           sources."postcss-value-parser-3.3.1"
         ];
       })
-      sources."postcss-selector-parser-6.0.6"
+      sources."postcss-selector-parser-6.0.7"
       (sources."postcss-svgo-4.0.3" // {
         dependencies = [
           sources."postcss-value-parser-3.3.1"
         ];
       })
       sources."postcss-unique-selectors-4.0.1"
-      sources."postcss-value-parser-4.1.0"
+      sources."postcss-value-parser-4.2.0"
       sources."prepend-http-2.0.0"
       sources."pretty-error-2.1.2"
       sources."process-0.11.10"
@@ -115368,7 +115710,7 @@ in
       (sources."renderkid-2.0.7" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
-          sources."css-select-4.1.3"
+          sources."css-select-4.2.0"
           sources."css-what-5.1.0"
           sources."dom-serializer-1.3.2"
           sources."domelementtype-2.2.0"
@@ -115465,7 +115807,7 @@ in
       sources."shebang-regex-1.0.0"
       sources."shorthash-0.0.2"
       sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       (sources."simple-swizzle-0.2.2" // {
         dependencies = [
           sources."is-arrayish-0.3.2"
@@ -115523,7 +115865,7 @@ in
           sources."isarray-2.0.1"
         ];
       })
-      sources."sockjs-0.3.21"
+      sources."sockjs-0.3.24"
       (sources."sockjs-client-1.5.2" // {
         dependencies = [
           sources."debug-3.2.7"
@@ -115534,7 +115876,7 @@ in
       sources."source-list-map-2.0.1"
       sources."source-map-0.5.7"
       sources."source-map-resolve-0.5.3"
-      (sources."source-map-support-0.5.20" // {
+      (sources."source-map-support-0.5.21" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -115708,7 +116050,7 @@ in
       sources."util.promisify-1.0.0"
       sources."utila-0.4.0"
       sources."utils-merge-1.0.1"
-      sources."uuid-3.4.0"
+      sources."uuid-8.3.2"
       sources."vary-1.1.2"
       sources."vendors-1.0.4"
       sources."vm-browserify-1.1.2"
@@ -115784,7 +116126,11 @@ in
         ];
       })
       sources."webpack-flush-chunks-2.0.3"
-      sources."webpack-log-2.0.0"
+      (sources."webpack-log-2.0.0" // {
+        dependencies = [
+          sources."uuid-3.4.0"
+        ];
+      })
       sources."webpack-node-externals-1.7.2"
       (sources."webpack-sources-1.4.3" // {
         dependencies = [
@@ -115895,7 +116241,7 @@ in
       sources."@mozilla/readability-0.4.1"
       sources."@tootallnate/once-2.0.0"
       sources."abab-2.0.5"
-      sources."acorn-8.5.0"
+      sources."acorn-8.6.0"
       (sources."acorn-globals-6.0.0" // {
         dependencies = [
           sources."acorn-7.4.1"
@@ -115918,12 +116264,12 @@ in
         ];
       })
       sources."data-urls-3.0.1"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decimal.js-10.3.1"
       sources."deep-is-0.1.4"
       sources."delayed-stream-1.0.0"
       sources."domexception-4.0.0"
-      sources."dompurify-2.3.3"
+      sources."dompurify-2.3.4"
       sources."emoji-regex-8.0.0"
       sources."escalade-3.1.1"
       sources."escodegen-2.0.0"
@@ -115939,7 +116285,7 @@ in
       sources."iconv-lite-0.6.3"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-potential-custom-element-name-1.0.1"
-      sources."jsdom-18.1.0"
+      sources."jsdom-18.1.1"
       sources."levn-0.3.0"
       sources."mime-db-1.51.0"
       sources."mime-types-2.1.34"
@@ -115969,12 +116315,12 @@ in
       sources."whatwg-url-10.0.0"
       sources."word-wrap-1.2.3"
       sources."wrap-ansi-7.0.0"
-      sources."ws-8.2.3"
+      sources."ws-8.3.0"
       sources."xml-name-validator-4.0.0"
       sources."xmlchars-2.2.0"
       sources."y18n-5.0.8"
-      sources."yargs-17.2.1"
-      sources."yargs-parser-20.2.9"
+      sources."yargs-17.3.0"
+      sources."yargs-parser-21.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -115989,19 +116335,20 @@ in
   redoc-cli = nodeEnv.buildNodePackage {
     name = "redoc-cli";
     packageName = "redoc-cli";
-    version = "0.13.0";
+    version = "0.13.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.13.0.tgz";
-      sha512 = "SLGjajbYf2QKByYKBWCDTW1mnX6BWfojV3Y6SFkCXtehNFgy4OGGKmi3Dy4/PqSx5liWeGggxMQ9N/oiSsFhbA==";
+      url = "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.13.2.tgz";
+      sha512 = "eRGRmAKPvm8ozCb8TxaBlHF0BjeFOXYUKDTx7RD3ABkPKsDamle776GwMrrf1ojgl5i+RSSJfP62k1gTP7Owaw==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.0"
-      (sources."@babel/generator-7.16.0" // {
+      (sources."@babel/generator-7.16.5" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
       sources."@babel/helper-annotate-as-pure-7.16.0"
+      sources."@babel/helper-environment-visitor-7.16.5"
       sources."@babel/helper-function-name-7.16.0"
       sources."@babel/helper-get-function-arity-7.16.0"
       sources."@babel/helper-hoist-variables-7.16.0"
@@ -116009,10 +116356,10 @@ in
       sources."@babel/helper-split-export-declaration-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       sources."@babel/highlight-7.16.0"
-      sources."@babel/parser-7.16.3"
-      sources."@babel/runtime-7.16.3"
+      sources."@babel/parser-7.16.6"
+      sources."@babel/runtime-7.16.5"
       sources."@babel/template-7.16.0"
-      sources."@babel/traverse-7.16.3"
+      sources."@babel/traverse-7.16.5"
       sources."@babel/types-7.16.0"
       sources."@emotion/is-prop-valid-0.8.8"
       sources."@emotion/memoize-0.7.4"
@@ -116020,10 +116367,10 @@ in
       sources."@emotion/unitless-0.7.5"
       sources."@exodus/schemasafe-1.0.0-rc.6"
       sources."@redocly/ajv-8.6.4"
-      sources."@redocly/openapi-core-1.0.0-beta.68"
+      sources."@redocly/openapi-core-1.0.0-beta.73"
       sources."@redocly/react-dropdown-aria-2.0.12"
       sources."@types/json-schema-7.0.9"
-      sources."@types/node-14.17.33"
+      sources."@types/node-14.18.0"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.2"
@@ -116038,7 +116385,7 @@ in
           sources."util-0.10.3"
         ];
       })
-      sources."babel-plugin-styled-components-1.13.3"
+      sources."babel-plugin-styled-components-2.0.2"
       sources."babel-plugin-syntax-jsx-6.18.0"
       sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
@@ -116090,7 +116437,7 @@ in
       sources."crypto-browserify-3.12.0"
       sources."css-color-keywords-1.0.0"
       sources."css-to-react-native-3.0.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decko-1.2.0"
       sources."des.js-1.0.1"
       (sources."diffie-hellman-5.0.3" // {
@@ -116099,7 +116446,7 @@ in
         ];
       })
       sources."domain-browser-1.2.0"
-      sources."dompurify-2.3.3"
+      sources."dompurify-2.3.4"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -116159,7 +116506,6 @@ in
       sources."mark.js-8.11.1"
       sources."marked-0.7.0"
       sources."md5.js-1.3.5"
-      sources."memoize-one-5.2.1"
       (sources."miller-rabin-4.0.1" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -116170,7 +116516,7 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-1.0.4"
-      sources."mobx-6.3.7"
+      sources."mobx-6.3.9"
       sources."mobx-react-7.2.1"
       sources."mobx-react-lite-3.2.2"
       sources."ms-2.1.2"
@@ -116196,7 +116542,7 @@ in
       sources."picomatch-2.3.0"
       sources."pluralize-8.0.0"
       sources."polished-4.1.3"
-      sources."postcss-value-parser-4.1.0"
+      sources."postcss-value-parser-4.2.0"
       sources."prismjs-1.25.0"
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
@@ -116224,7 +116570,7 @@ in
         ];
       })
       sources."readdirp-3.6.0"
-      (sources."redoc-2.0.0-rc.57" // {
+      (sources."redoc-2.0.0-rc.59" // {
         dependencies = [
           sources."path-browserify-1.0.1"
         ];
@@ -116263,7 +116609,7 @@ in
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
       sources."tty-browserify-0.0.0"
-      sources."uglify-js-3.14.3"
+      sources."uglify-js-3.14.5"
       (sources."uri-js-4.4.1" // {
         dependencies = [
           sources."punycode-2.1.1"
@@ -116296,8 +116642,8 @@ in
       sources."y18n-5.0.8"
       sources."yaml-1.10.2"
       sources."yaml-ast-parser-0.0.43"
-      sources."yargs-17.2.1"
-      sources."yargs-parser-20.2.9"
+      sources."yargs-17.3.0"
+      sources."yargs-parser-21.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -116414,7 +116760,7 @@ in
       sources."restore-cursor-3.1.0"
       sources."scheduler-0.18.0"
       sources."semver-5.7.1"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slice-ansi-3.0.0"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
@@ -116452,10 +116798,10 @@ in
   "reveal.js" = nodeEnv.buildNodePackage {
     name = "reveal.js";
     packageName = "reveal.js";
-    version = "4.2.0";
+    version = "4.2.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/reveal.js/-/reveal.js-4.2.0.tgz";
-      sha512 = "ukvq+a/kBu88jCJaQBCkYQ+vjaNUhlI50Y2GlNl4MS6OVnFHL+2Jb6XBZS4MDRWs3lLZAA3wXEu3xKFn8ebX0A==";
+      url = "https://registry.npmjs.org/reveal.js/-/reveal.js-4.2.1.tgz";
+      sha512 = "OXH4qT5Gs9di6lZPDmRuanIvdiVzltCe8W9ELz6Q3EhoWS+RjRp5HBwFHr+k1fbbP82/Z83sQiK+/ZYFBwrrsQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -116470,10 +116816,10 @@ in
   reveal-md = nodeEnv.buildNodePackage {
     name = "reveal-md";
     packageName = "reveal-md";
-    version = "5.2.0";
+    version = "5.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/reveal-md/-/reveal-md-5.2.0.tgz";
-      sha512 = "vd3fS4qP/g7pUwLhbPUONK6YKPcgD3cxExDeZFOq+LRZqLgRWxnzXWMCIPsszvMCo0+n+hXEadNqrf9QrVeWkw==";
+      url = "https://registry.npmjs.org/reveal-md/-/reveal-md-5.3.1.tgz";
+      sha512 = "nh2hjnCwshHNbARfbgdIJq1JHiDuYZDqFGKP7Y/t1/nEb6z2k8XakfUq7Yf+Ew5DC6enBxjYxosUjwZpdg/mpw==";
     };
     dependencies = [
       sources."@sindresorhus/is-0.14.0"
@@ -116525,7 +116871,7 @@ in
       sources."cookie-signature-1.0.6"
       sources."core-util-is-1.0.3"
       sources."crypto-random-string-2.0.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
       sources."defer-to-connect-1.1.3"
@@ -116639,7 +116985,7 @@ in
       sources."normalize-url-4.5.1"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
-      sources."open-8.3.0"
+      sources."open-8.4.0"
       sources."opts-2.0.2"
       sources."p-cancelable-1.1.0"
       (sources."package-json-6.5.0" // {
@@ -116678,7 +117024,7 @@ in
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
       sources."responselike-1.0.2"
-      sources."reveal.js-4.1.3"
+      sources."reveal.js-4.2.1"
       sources."rimraf-2.7.1"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
@@ -116706,7 +117052,7 @@ in
       })
       sources."serve-static-1.14.1"
       sources."setprototypeof-1.1.1"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."sprintf-js-1.0.3"
       sources."statuses-1.5.0"
       sources."string-width-4.2.3"
@@ -116734,7 +117080,7 @@ in
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.5.5"
+      sources."ws-7.5.6"
       sources."xdg-basedir-4.0.0"
       sources."yallist-4.0.0"
       sources."yaml-front-matter-4.1.1"
@@ -116785,10 +117131,10 @@ in
   rollup = nodeEnv.buildNodePackage {
     name = "rollup";
     packageName = "rollup";
-    version = "2.60.0";
+    version = "2.61.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/rollup/-/rollup-2.60.0.tgz";
-      sha512 = "cHdv9GWd58v58rdseC8e8XIaPUo8a9cgZpnCMMDGZFDZKEODOiPPEQFXLriWr/TjXzhPPmG5bkAztPsOARIcGQ==";
+      url = "https://registry.npmjs.org/rollup/-/rollup-2.61.1.tgz";
+      sha512 = "BbTXlEvB8d+XFbK/7E5doIcRtxWPRiqr0eb5vQ0+2paMM04Ye4PZY5nHOQef2ix24l/L0SpLd5hwcH15QHPdvA==";
     };
     dependencies = [
       sources."fsevents-2.3.2"
@@ -116806,7 +117152,7 @@ in
   "rust-analyzer-build-deps-../../misc/vscode-extensions/rust-analyzer/build-deps" = nodeEnv.buildNodePackage {
     name = "rust-analyzer";
     packageName = "rust-analyzer";
-    version = "0.2.792";
+    version = "0.2.834";
     src = ../../misc/vscode-extensions/rust-analyzer/build-deps;
     dependencies = [
       sources."@babel/code-frame-7.12.11"
@@ -116833,9 +117179,9 @@ in
       sources."@types/json-schema-7.0.9"
       sources."@types/minimatch-3.0.5"
       sources."@types/mocha-8.2.3"
-      sources."@types/node-14.17.33"
+      sources."@types/node-14.17.34"
       sources."@types/node-fetch-2.5.12"
-      sources."@types/vscode-1.62.0"
+      sources."@types/vscode-1.63.1"
       sources."@typescript-eslint/eslint-plugin-4.33.0"
       sources."@typescript-eslint/experimental-utils-4.33.0"
       sources."@typescript-eslint/parser-4.33.0"
@@ -116852,20 +117198,29 @@ in
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.2"
+      sources."aproba-1.2.0"
+      sources."are-we-there-yet-1.1.7"
       sources."argparse-1.0.10"
       sources."array-union-2.1.0"
       sources."astral-regex-2.0.0"
       sources."asynckit-0.4.0"
-      sources."azure-devops-node-api-11.0.1"
+      sources."azure-devops-node-api-11.1.0"
       sources."balanced-match-1.0.2"
+      sources."base64-js-1.5.1"
       sources."big-integer-1.6.51"
       sources."binary-0.3.0"
       sources."binary-extensions-2.2.0"
+      (sources."bl-4.1.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
       sources."bluebird-3.4.7"
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."browser-stdout-1.3.1"
+      sources."buffer-5.7.1"
       sources."buffer-crc32-0.2.13"
       sources."buffer-indexof-polyfill-1.0.2"
       sources."buffers-0.1.1"
@@ -116885,18 +117240,21 @@ in
       sources."cheerio-1.0.0-rc.10"
       sources."cheerio-select-1.5.0"
       sources."chokidar-3.5.2"
+      sources."chownr-1.1.4"
       sources."cliui-7.0.4"
+      sources."code-point-at-1.1.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."combined-stream-1.0.8"
       sources."commander-7.2.0"
       sources."commandpost-1.4.0"
       sources."concat-map-0.0.1"
+      sources."console-control-strings-1.1.0"
       sources."core-util-is-1.0.3"
       sources."cross-spawn-7.0.3"
-      sources."css-select-4.1.3"
+      sources."css-select-4.2.0"
       sources."css-what-5.1.0"
-      sources."d3-7.1.1"
+      sources."d3-7.2.1"
       sources."d3-array-3.1.1"
       sources."d3-axis-3.0.0"
       sources."d3-brush-3.0.0"
@@ -116910,7 +117268,7 @@ in
       sources."d3-ease-3.0.1"
       sources."d3-fetch-3.0.1"
       sources."d3-force-3.0.0"
-      sources."d3-format-3.0.1"
+      sources."d3-format-3.1.0"
       sources."d3-geo-3.0.1"
       (sources."d3-graphviz-4.0.0" // {
         dependencies = [
@@ -116927,7 +117285,7 @@ in
           sources."d3-zoom-2.0.0"
         ];
       })
-      sources."d3-hierarchy-3.0.1"
+      sources."d3-hierarchy-3.1.1"
       sources."d3-interpolate-3.0.1"
       sources."d3-path-3.0.1"
       sources."d3-polygon-3.0.1"
@@ -116938,22 +117296,26 @@ in
       sources."d3-selection-3.0.0"
       sources."d3-shape-3.0.1"
       sources."d3-time-3.0.0"
-      sources."d3-time-format-4.0.0"
+      sources."d3-time-format-4.1.0"
       sources."d3-timer-3.0.1"
       sources."d3-transition-3.0.1"
       sources."d3-zoom-3.0.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decamelize-4.0.0"
+      sources."decompress-response-4.2.1"
+      sources."deep-extend-0.6.0"
       sources."deep-is-0.1.4"
       sources."delaunator-5.0.0"
       sources."delayed-stream-1.0.0"
+      sources."delegates-1.0.0"
       sources."denodeify-1.2.1"
+      sources."detect-libc-1.0.3"
       sources."diff-5.0.0"
       sources."dir-glob-3.0.1"
       sources."doctrine-3.0.0"
       sources."dom-serializer-1.3.2"
       sources."domelementtype-2.2.0"
-      sources."domhandler-4.2.2"
+      sources."domhandler-4.3.0"
       sources."domutils-2.8.0"
       sources."duplexer2-0.1.4"
       (sources."editorconfig-0.15.3" // {
@@ -116965,6 +117327,7 @@ in
         ];
       })
       sources."emoji-regex-8.0.0"
+      sources."end-of-stream-1.4.4"
       sources."enquirer-2.3.6"
       sources."entities-2.2.0"
       sources."escalade-3.1.1"
@@ -117000,6 +117363,7 @@ in
       })
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
+      sources."expand-template-2.0.3"
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.2.7"
       sources."fast-json-stable-stringify-2.1.0"
@@ -117013,6 +117377,7 @@ in
       sources."flat-cache-3.0.4"
       sources."flatted-3.2.4"
       sources."form-data-3.0.1"
+      sources."fs-constants-1.0.0"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
       (sources."fstream-1.0.12" // {
@@ -117022,8 +117387,17 @@ in
       })
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
+      (sources."gauge-2.7.4" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."is-fullwidth-code-point-1.0.0"
+          sources."string-width-1.0.2"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
+      sources."github-from-package-0.0.0"
       sources."glob-7.2.0"
       sources."glob-parent-5.1.2"
       sources."globals-13.12.0"
@@ -117033,16 +117407,20 @@ in
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."has-symbols-1.0.2"
+      sources."has-unicode-2.0.1"
       sources."he-1.2.0"
+      sources."hosted-git-info-4.0.2"
       sources."htmlparser2-6.1.0"
       sources."http-proxy-agent-4.0.1"
       sources."https-proxy-agent-5.0.0"
       sources."iconv-lite-0.6.3"
+      sources."ieee754-1.2.1"
       sources."ignore-5.1.9"
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
+      sources."ini-1.3.8"
       sources."internmap-2.0.3"
       sources."is-binary-path-2.1.0"
       sources."is-extglob-2.1.1"
@@ -117057,6 +117435,7 @@ in
       sources."js-yaml-3.14.1"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
+      sources."keytar-7.7.0"
       sources."leven-3.1.0"
       sources."levn-0.4.1"
       sources."linkify-it-2.2.0"
@@ -117078,12 +117457,19 @@ in
       sources."mime-1.6.0"
       sources."mime-db-1.51.0"
       sources."mime-types-2.1.34"
+      sources."mimic-response-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
+      sources."mkdirp-classic-0.5.3"
       (sources."mocha-9.1.3" // {
         dependencies = [
           sources."argparse-2.0.1"
+          (sources."debug-4.3.2" // {
+            dependencies = [
+              sources."ms-2.1.2"
+            ];
+          })
           sources."glob-7.1.7"
           sources."has-flag-4.0.0"
           sources."js-yaml-4.1.0"
@@ -117094,11 +117480,21 @@ in
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
       sources."nanoid-3.1.25"
+      sources."napi-build-utils-1.0.2"
       sources."natural-compare-1.4.0"
+      (sources."node-abi-2.30.1" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."node-addon-api-3.2.1"
       sources."node-fetch-2.6.6"
       sources."normalize-path-3.0.0"
+      sources."npmlog-4.1.2"
       sources."nth-check-2.0.1"
-      sources."object-inspect-1.11.0"
+      sources."number-is-nan-1.0.1"
+      sources."object-assign-4.1.1"
+      sources."object-inspect-1.11.1"
       sources."once-1.4.0"
       sources."optionator-0.9.1"
       sources."os-homedir-1.0.2"
@@ -117120,14 +117516,21 @@ in
       sources."path-type-4.0.0"
       sources."pend-1.2.0"
       sources."picomatch-2.3.0"
+      sources."prebuild-install-6.1.4"
       sources."prelude-ls-1.2.1"
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
       sources."pseudomap-1.0.2"
+      sources."pump-3.0.0"
       sources."punycode-2.1.1"
-      sources."qs-6.10.1"
+      sources."qs-6.10.2"
       sources."queue-microtask-1.2.3"
       sources."randombytes-2.1.0"
+      (sources."rc-1.2.8" // {
+        dependencies = [
+          sources."strip-json-comments-2.0.1"
+        ];
+      })
       sources."read-1.0.7"
       (sources."readable-stream-2.3.7" // {
         dependencies = [
@@ -117146,13 +117549,18 @@ in
       sources."rw-1.3.3"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
+      sources."sax-1.2.4"
       sources."semver-7.3.5"
       sources."serialize-javascript-6.0.0"
+      sources."set-blocking-2.0.0"
       sources."setimmediate-1.0.5"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."side-channel-1.0.4"
       sources."sigmund-1.0.1"
+      sources."signal-exit-3.0.6"
+      sources."simple-concat-1.0.1"
+      sources."simple-get-3.1.0"
       sources."slash-3.0.0"
       (sources."slice-ansi-4.0.0" // {
         dependencies = [
@@ -117171,12 +117579,18 @@ in
       sources."strip-ansi-6.0.1"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-6.7.3" // {
+      (sources."table-6.7.5" // {
         dependencies = [
-          sources."ajv-8.8.0"
+          sources."ajv-8.8.2"
           sources."json-schema-traverse-1.0.0"
         ];
       })
+      sources."tar-fs-2.1.1"
+      (sources."tar-stream-2.2.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
       sources."text-table-0.2.0"
       sources."tmp-0.2.1"
       sources."to-regex-range-5.0.1"
@@ -117189,19 +117603,20 @@ in
         ];
       })
       sources."tunnel-0.0.6"
+      sources."tunnel-agent-0.6.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.20.2"
       sources."typed-rest-client-1.8.6"
-      sources."typescript-4.4.4"
+      sources."typescript-4.5.4"
       sources."typescript-formatter-7.2.2"
       sources."uc.micro-1.0.6"
-      sources."underscore-1.13.1"
+      sources."underscore-1.13.2"
       sources."unzipper-0.10.11"
       sources."uri-js-4.4.1"
       sources."url-join-1.1.0"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-2.3.0"
-      (sources."vsce-1.95.1" // {
+      (sources."vsce-1.103.1" // {
         dependencies = [
           sources."chalk-2.4.2"
           sources."commander-6.2.1"
@@ -117217,6 +117632,7 @@ in
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
       sources."which-2.0.2"
+      sources."wide-align-1.1.5"
       sources."word-wrap-1.2.3"
       sources."workerpool-6.1.5"
       (sources."wrap-ansi-7.0.0" // {
@@ -117227,6 +117643,8 @@ in
         ];
       })
       sources."wrappy-1.0.2"
+      sources."xml2js-0.4.23"
+      sources."xmlbuilder-11.0.1"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
       sources."yargs-16.2.0"
@@ -117259,8 +117677,8 @@ in
       sources."p-locate-5.0.0"
       sources."path-exists-4.0.0"
       sources."picocolors-1.0.0"
-      sources."postcss-8.3.11"
-      sources."source-map-js-0.6.2"
+      sources."postcss-8.4.5"
+      sources."source-map-js-1.0.1"
       sources."strip-json-comments-3.1.1"
       sources."yocto-queue-0.1.0"
     ];
@@ -117300,7 +117718,7 @@ in
       sources."core-util-is-1.0.3"
       sources."crc-0.2.0"
       sources."crypto-0.0.3"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."events.node-0.4.9"
       (sources."everyauth-0.4.5" // {
         dependencies = [
@@ -117319,7 +117737,7 @@ in
           sources."commander-1.3.2"
         ];
       })
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."formidable-1.0.11"
       sources."fresh-0.2.0"
       sources."function-bind-1.1.1"
@@ -117340,10 +117758,10 @@ in
       sources."node-uuid-1.4.1"
       sources."node-wsfederation-0.1.1"
       sources."oauth-https://github.com/ciaranj/node-oauth/tarball/master"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       (sources."openid-2.0.10" // {
         dependencies = [
-          sources."qs-6.10.1"
+          sources."qs-6.10.2"
         ];
       })
       sources."pause-0.0.1"
@@ -117373,10 +117791,10 @@ in
   sass = nodeEnv.buildNodePackage {
     name = "sass";
     packageName = "sass";
-    version = "1.43.4";
+    version = "1.45.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/sass/-/sass-1.43.4.tgz";
-      sha512 = "/ptG7KE9lxpGSYiXn7Ar+lKOv37xfWsZRtFYal2QHNigyVQDx685VFT/h7ejVr+R8w7H4tmUgtulsKl5YpveOg==";
+      url = "https://registry.npmjs.org/sass/-/sass-1.45.0.tgz";
+      sha512 = "ONy5bjppoohtNkFJRqdz1gscXamMzN3wQy1YH9qO2FiNpgjLhpz/IPRGg0PpCjyz/pWfCOaNEaiEGCcjOFAjqw==";
     };
     dependencies = [
       sources."anymatch-3.1.2"
@@ -117386,6 +117804,7 @@ in
       sources."fill-range-7.0.1"
       sources."fsevents-2.3.2"
       sources."glob-parent-5.1.2"
+      sources."immutable-4.0.0"
       sources."is-binary-path-2.1.0"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
@@ -117393,6 +117812,7 @@ in
       sources."normalize-path-3.0.0"
       sources."picomatch-2.3.0"
       sources."readdirp-3.6.0"
+      sources."source-map-js-1.0.1"
       sources."to-regex-range-5.0.1"
     ];
     buildInputs = globalBuildInputs;
@@ -117523,7 +117943,7 @@ in
       })
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."string-width-4.2.3"
       sources."strip-ansi-6.0.1"
       sources."strip-eof-1.0.0"
@@ -117551,16 +117971,16 @@ in
   serverless = nodeEnv.buildNodePackage {
     name = "serverless";
     packageName = "serverless";
-    version = "2.66.1";
+    version = "2.69.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/serverless/-/serverless-2.66.1.tgz";
-      sha512 = "Swf5aHivSfU0fKuvV4FY0WmMNBZVx7cVK3FcxWLX1lFuzUQ+5D/bpunHW4lmg4tKmGtjBnQ0oQ+4N2MHE3wPrg==";
+      url = "https://registry.npmjs.org/serverless/-/serverless-2.69.1.tgz";
+      sha512 = "pHHr8l6BDDzHIcFqdXDNGIrEbtcm4Lf0dlE3nuHVvmADET+rdl5aOWem9JaHA75cyICybm8oj8FhhtJIt5Uotw==";
     };
     dependencies = [
       sources."2-thenable-1.0.0"
       (sources."@kwsites/file-exists-1.1.1" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -117587,7 +118007,7 @@ in
         ];
       })
       sources."@serverless/component-metrics-1.0.8"
-      (sources."@serverless/components-3.18.0" // {
+      (sources."@serverless/components-3.18.1" // {
         dependencies = [
           (sources."@serverless/utils-4.1.0" // {
             dependencies = [
@@ -117620,7 +118040,7 @@ in
           sources."jwt-decode-2.2.0"
         ];
       })
-      (sources."@serverless/platform-client-china-2.3.2" // {
+      (sources."@serverless/platform-client-china-2.3.3" // {
         dependencies = [
           sources."dotenv-8.6.0"
           sources."js-yaml-3.14.1"
@@ -117644,9 +118064,9 @@ in
       sources."@types/caseless-0.12.2"
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/keyv-3.1.3"
-      sources."@types/lodash-4.14.177"
+      sources."@types/lodash-4.14.178"
       sources."@types/long-4.0.1"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/request-2.48.7"
       sources."@types/request-promise-native-1.0.18"
       sources."@types/responselike-1.0.0"
@@ -117655,7 +118075,7 @@ in
       sources."after-0.8.2"
       (sources."agent-base-6.0.2" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -117706,7 +118126,7 @@ in
       sources."async-2.6.3"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
-      (sources."aws-sdk-2.1029.0" // {
+      (sources."aws-sdk-2.1046.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."ieee754-1.1.13"
@@ -117786,11 +118206,11 @@ in
       sources."child-process-ext-2.1.1"
       sources."chokidar-3.5.2"
       sources."chownr-1.1.4"
-      sources."ci-info-3.2.0"
+      sources."ci-info-3.3.0"
       sources."cli-boxes-2.2.1"
       sources."cli-color-2.0.1"
       sources."cli-cursor-3.1.0"
-      sources."cli-progress-footer-2.1.1"
+      sources."cli-progress-footer-2.3.0"
       (sources."cli-sprintf-format-1.1.0" // {
         dependencies = [
           sources."cli-color-1.4.0"
@@ -117802,7 +118222,7 @@ in
       sources."color-3.2.1"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.6.0"
+      sources."color-string-1.9.0"
       sources."colornames-1.1.1"
       sources."colors-1.3.3"
       sources."colorspace-1.1.4"
@@ -117814,11 +118234,7 @@ in
       sources."compress-commons-4.1.1"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
-      (sources."content-disposition-0.5.3" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
+      sources."content-disposition-0.5.4"
       sources."cookiejar-2.1.3"
       sources."core-util-is-1.0.2"
       sources."crc-32-1.2.0"
@@ -117935,7 +118351,7 @@ in
       sources."fill-range-7.0.1"
       sources."find-requires-1.0.0"
       sources."flat-5.0.2"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."forever-agent-0.6.1"
       sources."form-data-2.5.1"
       sources."formidable-1.2.6"
@@ -117962,7 +118378,7 @@ in
       sources."glob-7.2.0"
       sources."glob-parent-5.1.2"
       sources."globby-11.0.4"
-      (sources."got-11.8.2" // {
+      (sources."got-11.8.3" // {
         dependencies = [
           sources."@sindresorhus/is-4.2.0"
           sources."@szmarczak/http-timer-4.0.6"
@@ -117996,7 +118412,7 @@ in
       sources."http2-wrapper-1.0.3"
       (sources."https-proxy-agent-5.0.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -118048,11 +118464,11 @@ in
           sources."js-yaml-3.14.1"
         ];
       })
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-4.0.0"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       (sources."jszip-3.7.1" // {
         dependencies = [
           sources."readable-stream-2.3.7"
@@ -118120,7 +118536,7 @@ in
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-3.1.5"
+      sources."minipass-3.1.6"
       sources."minizlib-2.1.2"
       sources."mkdirp-0.5.5"
       sources."ms-2.0.0"
@@ -118173,7 +118589,7 @@ in
       sources."path-loader-1.0.10"
       sources."path-type-4.0.0"
       sources."path2-0.1.0"
-      sources."peek-readable-4.0.1"
+      sources."peek-readable-4.0.2"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
       sources."picomatch-2.3.0"
@@ -118241,12 +118657,12 @@ in
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."shortid-2.2.16"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
-      (sources."simple-git-2.47.0" // {
+      (sources."simple-git-2.48.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -118306,7 +118722,7 @@ in
           sources."chalk-2.4.2"
           sources."cli-cursor-2.1.0"
           sources."cli-width-2.2.1"
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."figures-2.0.0"
           sources."inquirer-6.5.2"
           sources."is-fullwidth-code-point-2.0.0"
@@ -118398,13 +118814,7 @@ in
         ];
       })
       sources."winston-3.2.1"
-      (sources."winston-transport-4.4.0" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."winston-transport-4.4.1"
       (sources."wrap-ansi-7.0.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -118416,7 +118826,7 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-2.4.3"
-      sources."ws-7.5.5"
+      sources."ws-7.5.6"
       sources."xml2js-0.4.19"
       sources."xmlbuilder-9.0.7"
       sources."xmlhttprequest-ssl-1.6.3"
@@ -118551,11 +118961,11 @@ in
       sources."isarray-0.0.1"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."json3-3.2.6"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."linewise-0.0.3"
       sources."lodash-2.4.2"
       sources."map-stream-0.0.7"
@@ -118718,7 +119128,7 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."cli-table-0.3.6"
+      sources."cli-table-0.3.11"
       sources."collection-visit-1.0.0"
       sources."colors-1.0.3"
       sources."commander-2.9.0"
@@ -118958,8 +119368,8 @@ in
       sources."isarray-1.0.0"
       sources."jodid25519-1.0.2"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
-      (sources."jsprim-1.4.1" // {
+      sources."json-schema-0.4.0"
+      (sources."jsprim-2.0.2" // {
         dependencies = [
           sources."assert-plus-1.0.0"
           sources."extsprintf-1.3.0"
@@ -119006,7 +119416,7 @@ in
           sources."clone-0.1.5"
           sources."dashdash-1.10.1"
           sources."extsprintf-1.0.0"
-          (sources."http-signature-1.3.5" // {
+          (sources."http-signature-1.3.6" // {
             dependencies = [
               sources."assert-plus-1.0.0"
               sources."dashdash-1.14.1"
@@ -119070,10 +119480,10 @@ in
   snyk = nodeEnv.buildNodePackage {
     name = "snyk";
     packageName = "snyk";
-    version = "1.763.0";
+    version = "1.794.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/snyk/-/snyk-1.763.0.tgz";
-      sha512 = "nZbLVKzj3P8cPImwCkdC2m9OmghiCBmEWoXQRlDtNDnRZ/jiLZtBJcJEku8DZoJUA+P+7HJGu1TxvmKz5DLadQ==";
+      url = "https://registry.npmjs.org/snyk/-/snyk-1.794.0.tgz";
+      sha512 = "o2SVajU3FKSn2n56NsCRDroENk4r0GVKX1+++Zle2hPKILNaLZVwtcPAN1NqTFl9WBFAAzcbYzq8ltLopdcADg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -119088,31 +119498,31 @@ in
   "socket.io" = nodeEnv.buildNodePackage {
     name = "socket.io";
     packageName = "socket.io";
-    version = "4.3.2";
+    version = "4.4.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io/-/socket.io-4.3.2.tgz";
-      sha512 = "6S5tV4jcY6dbZ/lLzD6EkvNWI3s81JO6ABP/EpvOlK1NPOcIj3AS4khi6xXw6JlZCASq82HQV4SapfmVMMl2dg==";
+      url = "https://registry.npmjs.org/socket.io/-/socket.io-4.4.0.tgz";
+      sha512 = "bnpJxswR9ov0Bw6ilhCvO38/1WPtE3eA2dtxi2Iq4/sFebiDJQzgKNYA7AuVVdGW09nrESXd90NbZqtDd9dzRQ==";
     };
     dependencies = [
       sources."@types/component-emitter-1.2.11"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."accepts-1.3.7"
       sources."base64-arraybuffer-1.0.1"
       sources."base64id-2.0.0"
       sources."component-emitter-1.3.0"
       sources."cookie-0.4.1"
       sources."cors-2.8.5"
-      sources."debug-4.3.2"
-      sources."engine.io-6.0.1"
+      sources."debug-4.3.3"
+      sources."engine.io-6.1.0"
       sources."engine.io-parser-5.0.2"
       sources."mime-db-1.51.0"
       sources."mime-types-2.1.34"
       sources."ms-2.1.2"
       sources."negotiator-0.6.2"
       sources."object-assign-4.1.1"
-      sources."socket.io-adapter-2.3.2"
+      sources."socket.io-adapter-2.3.3"
       sources."socket.io-parser-4.0.4"
       sources."vary-1.1.2"
       sources."ws-8.2.3"
@@ -119130,167 +119540,149 @@ in
   speed-test = nodeEnv.buildNodePackage {
     name = "speed-test";
     packageName = "speed-test";
-    version = "2.1.0";
+    version = "3.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/speed-test/-/speed-test-2.1.0.tgz";
-      sha512 = "sSmX6yMOwzVmVei9PB08Nd5ZLZ7isXSRG+s7fMZxyjyegvSy77cCrZ39Oo2Kk/KkWW4SSCXiQ8LtFxfP/Ujijw==";
+      url = "https://registry.npmjs.org/speed-test/-/speed-test-3.0.0.tgz";
+      sha512 = "CIlLQsG8ffQ2B+2A/s3rXiaTXDWlEKBMya64ajzDcpDZ8bpB5dOyznWQJB+lyUn6/lJ8P+5xe4jKO60S6yLoMw==";
     };
     dependencies = [
+      sources."@babel/code-frame-7.16.0"
+      sources."@babel/helper-validator-identifier-7.15.7"
+      (sources."@babel/highlight-7.16.0" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."has-flag-3.0.0"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      sources."@types/minimist-1.2.2"
+      sources."@types/normalize-package-data-2.4.1"
       sources."agent-base-4.3.0"
-      sources."ansi-align-2.0.0"
-      sources."ansi-escapes-3.2.0"
-      sources."ansi-regex-3.0.0"
-      sources."ansi-styles-3.2.1"
-      sources."array-find-index-1.0.2"
+      sources."ansi-escapes-5.0.0"
+      sources."ansi-regex-6.0.1"
+      sources."ansi-styles-4.3.0"
       sources."arrify-1.0.1"
-      sources."boxen-1.3.0"
-      sources."camelcase-4.1.0"
-      sources."camelcase-keys-4.2.0"
-      sources."capture-stack-trace-1.0.1"
-      sources."chalk-2.4.2"
-      sources."ci-info-1.6.0"
-      sources."cli-boxes-1.0.0"
-      sources."cli-cursor-2.1.0"
+      sources."base64-js-1.5.1"
+      sources."bl-5.0.0"
+      sources."buffer-6.0.3"
+      sources."camelcase-6.2.1"
+      sources."camelcase-keys-7.0.1"
+      sources."chalk-4.1.2"
+      sources."cli-cursor-4.0.0"
       sources."cli-spinners-2.6.1"
       sources."clone-1.0.4"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
-      sources."configstore-3.1.5"
-      sources."create-error-class-3.0.2"
-      sources."cross-spawn-5.1.0"
-      sources."crypto-random-string-1.0.0"
-      sources."currently-unhandled-0.4.1"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
       sources."debug-3.1.0"
-      sources."decamelize-1.2.0"
+      sources."decamelize-5.0.1"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
+          sources."decamelize-1.2.0"
           sources."map-obj-1.0.1"
         ];
       })
-      sources."deep-extend-0.6.0"
       sources."defaults-1.0.3"
-      sources."dot-prop-4.2.1"
       sources."draftlog-1.0.13"
-      sources."duplexer3-0.1.4"
+      sources."emoji-regex-9.2.2"
       sources."error-ex-1.3.2"
       sources."es6-promise-4.2.8"
       sources."es6-promisify-5.0.0"
       sources."escape-string-regexp-1.0.5"
-      sources."execa-0.7.0"
-      sources."find-up-2.1.0"
+      sources."find-up-5.0.0"
       sources."function-bind-1.1.1"
-      sources."get-stream-3.0.0"
-      sources."global-dirs-0.1.1"
-      sources."got-6.7.1"
-      sources."graceful-fs-4.2.8"
+      sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
-      sources."has-flag-3.0.0"
-      sources."hosted-git-info-2.8.9"
+      sources."has-flag-4.0.0"
+      sources."hosted-git-info-4.0.2"
       sources."http-proxy-agent-2.1.0"
       sources."https-proxy-agent-3.0.1"
-      sources."import-lazy-2.1.0"
-      sources."imurmurhash-0.1.4"
-      sources."indent-string-3.2.0"
-      sources."ini-1.3.8"
+      sources."ieee754-1.2.1"
+      sources."indent-string-5.0.0"
+      sources."inherits-2.0.4"
       sources."is-arrayish-0.2.1"
-      sources."is-ci-1.2.1"
       sources."is-core-module-2.8.0"
-      sources."is-fullwidth-code-point-2.0.0"
-      sources."is-installed-globally-0.1.0"
-      sources."is-npm-1.0.0"
-      sources."is-obj-1.0.1"
-      sources."is-path-inside-1.0.1"
+      sources."is-fullwidth-code-point-4.0.0"
+      sources."is-interactive-2.0.0"
       sources."is-plain-obj-1.1.0"
-      sources."is-redirect-1.0.0"
-      sources."is-retry-allowed-1.2.0"
-      sources."is-stream-1.1.0"
-      sources."isexe-2.0.0"
-      sources."json-parse-better-errors-1.0.2"
-      sources."latest-version-3.1.0"
-      sources."load-json-file-4.0.0"
-      sources."locate-path-2.0.0"
-      sources."log-symbols-2.2.0"
-      sources."log-update-2.3.0"
-      sources."loud-rejection-1.6.0"
-      sources."lowercase-keys-1.0.1"
-      sources."lru-cache-4.1.5"
-      sources."make-dir-1.3.0"
-      sources."map-obj-2.0.0"
-      sources."meow-5.0.0"
-      sources."mimic-fn-1.2.0"
-      sources."minimist-1.2.5"
-      sources."minimist-options-3.0.2"
-      sources."ms-2.0.0"
-      sources."normalize-package-data-2.5.0"
-      sources."npm-run-path-2.0.2"
-      sources."onetime-2.0.1"
-      (sources."ora-3.4.0" // {
+      sources."is-unicode-supported-1.1.0"
+      sources."js-tokens-4.0.0"
+      sources."json-parse-even-better-errors-2.3.1"
+      sources."kind-of-6.0.3"
+      sources."lines-and-columns-1.2.4"
+      sources."locate-path-6.0.0"
+      (sources."log-symbols-5.1.0" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."strip-ansi-5.2.0"
+          sources."chalk-5.0.0"
         ];
       })
-      sources."p-finally-1.0.0"
-      sources."p-limit-1.3.0"
-      sources."p-locate-2.0.0"
-      sources."p-try-1.0.0"
-      sources."package-json-4.0.1"
-      sources."parse-json-4.0.0"
-      sources."path-exists-3.0.0"
-      sources."path-is-inside-1.0.2"
-      sources."path-key-2.0.1"
-      sources."path-parse-1.0.7"
-      sources."path-type-3.0.0"
-      sources."pify-3.0.0"
-      sources."prepend-http-1.0.4"
-      sources."pseudomap-1.0.2"
-      sources."quick-lru-1.1.0"
-      sources."rc-1.2.8"
-      sources."read-pkg-3.0.0"
-      sources."read-pkg-up-3.0.0"
-      sources."redent-2.0.0"
-      sources."registry-auth-token-3.4.0"
-      sources."registry-url-3.1.0"
-      sources."resolve-1.20.0"
-      sources."restore-cursor-2.0.0"
-      sources."round-to-3.0.0"
+      sources."log-update-5.0.0"
+      sources."lru-cache-6.0.0"
+      sources."map-obj-4.3.0"
+      sources."meow-10.1.2"
+      sources."mimic-fn-2.1.0"
+      sources."min-indent-1.0.1"
+      sources."minimist-options-4.1.0"
+      sources."ms-2.0.0"
+      sources."normalize-package-data-3.0.3"
+      sources."onetime-5.1.2"
+      sources."ora-6.0.1"
+      sources."p-limit-3.1.0"
+      sources."p-locate-5.0.0"
+      sources."parse-json-5.2.0"
+      sources."path-exists-4.0.0"
+      sources."quick-lru-5.1.1"
+      sources."read-pkg-6.0.0"
+      sources."read-pkg-up-8.0.0"
+      sources."readable-stream-3.6.0"
+      sources."redent-4.0.0"
+      sources."restore-cursor-4.0.0"
+      sources."round-to-6.0.0"
       sources."safe-buffer-5.2.1"
       sources."sax-1.2.4"
-      sources."semver-5.7.1"
-      sources."semver-diff-2.1.0"
-      sources."shebang-command-1.2.0"
-      sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.5"
+      sources."semver-7.3.5"
+      sources."signal-exit-3.0.6"
+      (sources."slice-ansi-5.0.0" // {
+        dependencies = [
+          sources."ansi-styles-6.1.0"
+        ];
+      })
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.11"
-      sources."speedtest-net-1.6.2"
-      sources."string-width-2.1.1"
-      sources."strip-ansi-4.0.0"
-      sources."strip-bom-3.0.0"
-      sources."strip-eof-1.0.0"
-      sources."strip-indent-2.0.0"
-      sources."strip-json-comments-2.0.1"
-      sources."supports-color-5.5.0"
-      sources."term-size-1.2.0"
-      sources."timed-out-4.0.1"
-      sources."trim-newlines-2.0.0"
-      sources."unique-string-1.0.0"
-      sources."unzip-response-2.0.1"
-      sources."update-notifier-2.5.0"
-      sources."url-parse-lax-1.0.0"
+      (sources."speedtest-net-1.6.2" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."has-flag-3.0.0"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      sources."string-width-5.0.1"
+      sources."string_decoder-1.3.0"
+      sources."strip-ansi-7.0.1"
+      sources."strip-indent-4.0.0"
+      sources."supports-color-7.2.0"
+      sources."trim-newlines-4.0.2"
+      sources."type-fest-1.4.0"
+      sources."util-deprecate-1.0.2"
       sources."validate-npm-package-license-3.0.4"
       sources."wcwidth-1.0.1"
-      sources."which-1.3.1"
-      sources."widest-line-2.0.1"
-      sources."wrap-ansi-3.0.1"
-      sources."write-file-atomic-2.4.3"
-      sources."xdg-basedir-3.0.0"
+      (sources."wrap-ansi-8.0.1" // {
+        dependencies = [
+          sources."ansi-styles-6.1.0"
+        ];
+      })
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
-      sources."yallist-2.1.2"
-      sources."yargs-parser-10.1.0"
+      sources."yallist-4.0.0"
+      sources."yargs-parser-20.2.9"
+      sources."yocto-queue-0.1.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -119366,7 +119758,7 @@ in
       sources."atomic-file-rw-0.2.2"
       sources."attach-ware-1.1.1"
       sources."available-typed-arrays-1.0.5"
-      sources."b4a-1.1.2"
+      sources."b4a-1.3.1"
       sources."bail-1.0.5"
       sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
@@ -119383,7 +119775,7 @@ in
       sources."binary-search-1.3.6"
       sources."binary-search-bounds-2.0.5"
       sources."bindings-1.5.0"
-      sources."bipf-1.5.1"
+      sources."bipf-1.5.4"
       sources."blake2s-1.1.0"
       sources."brace-expansion-1.1.11"
       sources."braces-1.8.5"
@@ -119457,7 +119849,7 @@ in
       sources."cpu-percentage-1.0.3"
       sources."crc-3.6.0"
       sources."cross-spawn-6.0.5"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decode-uri-component-0.2.0"
       sources."deep-equal-1.1.1"
       sources."deep-extend-0.6.0"
@@ -119589,7 +119981,7 @@ in
       })
       sources."hashlru-2.3.0"
       sources."he-0.5.0"
-      sources."heap-0.2.6"
+      sources."heap-0.2.7"
       sources."hoox-0.0.1"
       sources."idb-kv-store-4.5.0"
       sources."ieee754-1.2.1"
@@ -119637,10 +120029,10 @@ in
       sources."is-glob-2.0.1"
       sources."is-hexadecimal-1.0.4"
       sources."is-map-2.0.2"
-      sources."is-negative-zero-2.0.1"
+      sources."is-negative-zero-2.0.2"
       sources."is-number-2.1.0"
       sources."is-number-object-1.0.6"
-      sources."is-options-1.0.1"
+      sources."is-options-1.0.2"
       (sources."is-plain-object-2.0.4" // {
         dependencies = [
           sources."isobject-3.0.1"
@@ -119657,13 +120049,13 @@ in
       sources."is-typedarray-1.0.0"
       sources."is-valid-domain-0.0.20"
       sources."is-weakmap-2.0.1"
-      sources."is-weakref-1.0.1"
-      sources."is-weakset-2.0.1"
+      sources."is-weakref-1.0.2"
+      sources."is-weakset-2.0.2"
       sources."is-windows-1.0.2"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-2.1.0"
-      (sources."jitdb-3.5.0" // {
+      (sources."jitdb-4.0.0" // {
         dependencies = [
           sources."mkdirp-1.0.4"
           sources."push-stream-11.0.1"
@@ -119697,7 +120089,7 @@ in
         ];
       })
       sources."levelup-4.4.0"
-      sources."libnested-1.5.0"
+      sources."libnested-1.5.1"
       sources."libsodium-0.7.9"
       sources."libsodium-wrappers-0.7.9"
       sources."lodash.debounce-4.0.8"
@@ -119734,7 +120126,7 @@ in
       sources."multiserver-3.7.2"
       sources."multiserver-address-1.0.1"
       sources."multiserver-scopes-1.0.0"
-      sources."mutexify-1.3.1"
+      sources."mutexify-1.4.0"
       sources."muxrpc-6.5.3"
       sources."muxrpc-usage-2.1.0"
       sources."muxrpc-validation-3.0.2"
@@ -119777,7 +120169,7 @@ in
           })
         ];
       })
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       (sources."object-visit-1.0.1" // {
@@ -119895,7 +120287,7 @@ in
       sources."quicktask-1.0.1"
       sources."railroad-diagrams-1.0.0"
       sources."randexp-0.4.6"
-      sources."random-access-chrome-file-1.1.4"
+      sources."random-access-chrome-file-1.2.0"
       sources."random-access-file-2.2.0"
       (sources."random-access-idb-1.2.1" // {
         dependencies = [
@@ -119908,7 +120300,7 @@ in
           sources."random-access-storage-1.3.0"
         ];
       })
-      sources."random-access-memory-3.1.3"
+      sources."random-access-memory-3.1.4"
       sources."random-access-storage-1.4.2"
       sources."random-access-web-2.0.3"
       (sources."randomatic-3.1.1" // {
@@ -120077,7 +120469,7 @@ in
         ];
       })
       sources."ssb-db-19.2.0"
-      (sources."ssb-db2-2.7.2" // {
+      (sources."ssb-db2-2.8.3" // {
         dependencies = [
           sources."abstract-leveldown-6.2.3"
           (sources."flumecodec-0.0.1" // {
@@ -120245,7 +120637,7 @@ in
       sources."word-wrap-1.2.3"
       sources."wrap-fn-0.1.5"
       sources."wrappy-1.0.2"
-      sources."ws-7.5.5"
+      sources."ws-7.5.6"
       sources."xtend-4.0.2"
       sources."zerr-1.0.4"
     ];
@@ -120345,7 +120737,7 @@ in
       sources."async-1.5.2"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
-      (sources."aws-sdk-2.1029.0" // {
+      (sources."aws-sdk-2.1046.0" // {
         dependencies = [
           sources."uuid-3.3.2"
         ];
@@ -120373,9 +120765,9 @@ in
       sources."bindings-1.2.1"
       sources."blob-0.0.5"
       sources."bluebird-2.11.0"
-      (sources."body-parser-1.19.0" // {
+      (sources."body-parser-1.19.1" // {
         dependencies = [
-          sources."qs-6.7.0"
+          sources."qs-6.9.6"
         ];
       })
       sources."boom-2.10.1"
@@ -120389,7 +120781,7 @@ in
       sources."bunyan-1.8.15"
       sources."busboy-0.2.14"
       sources."bytebuffer-3.5.5"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.1"
       sources."call-bind-1.0.2"
       sources."camelcase-1.2.1"
       sources."caseless-0.11.0"
@@ -120426,10 +120818,10 @@ in
       sources."content-type-1.0.4"
       sources."convert-to-ecmascript-compatible-varname-0.1.5"
       sources."cookie-0.4.0"
-      (sources."cookie-session-2.0.0-rc.1" // {
+      (sources."cookie-session-2.0.0" // {
         dependencies = [
-          sources."debug-3.2.6"
-          sources."safe-buffer-5.2.0"
+          sources."debug-3.2.7"
+          sources."safe-buffer-5.2.1"
         ];
       })
       sources."cookie-signature-1.0.6"
@@ -120448,6 +120840,8 @@ in
       (sources."csurf-1.11.0" // {
         dependencies = [
           sources."http-errors-1.7.3"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
       sources."cycle-1.0.3"
@@ -120511,8 +120905,16 @@ in
       })
       (sources."express-4.17.1" // {
         dependencies = [
+          sources."body-parser-1.19.0"
+          sources."bytes-3.1.0"
+          sources."http-errors-1.7.2"
+          sources."inherits-2.0.3"
           sources."proxy-addr-2.0.7"
           sources."qs-6.7.0"
+          sources."raw-body-2.4.0"
+          sources."serve-static-1.14.1"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
       (sources."express-validator-2.21.0" // {
@@ -120530,7 +120932,7 @@ in
       sources."fd-slicer-1.1.0"
       sources."finalhandler-1.1.2"
       sources."find-up-3.0.0"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."forever-agent-0.6.1"
       sources."form-data-2.1.4"
       sources."formidable-1.2.6"
@@ -120577,11 +120979,7 @@ in
       })
       sources."hoek-2.16.3"
       sources."hosted-git-info-2.8.9"
-      (sources."http-errors-1.7.2" // {
-        dependencies = [
-          sources."inherits-2.0.3"
-        ];
-      })
+      sources."http-errors-1.8.1"
       (sources."http-proxy-1.18.1" // {
         dependencies = [
           sources."eventemitter3-4.0.7"
@@ -120631,14 +121029,14 @@ in
           sources."uri-js-3.0.2"
         ];
       })
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-faker-0.2.16"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."json5-1.0.1"
       sources."jsonpointer-5.0.0"
       sources."jspath-0.3.4"
-      (sources."jsprim-1.4.1" // {
+      (sources."jsprim-1.4.2" // {
         dependencies = [
           sources."assert-plus-1.0.0"
         ];
@@ -120713,7 +121111,7 @@ in
       sources."mkdirp-0.5.5"
       sources."moment-2.29.1"
       sources."ms-2.1.3"
-      sources."multer-1.4.3"
+      sources."multer-1.4.4"
       sources."mustache-2.3.2"
       sources."mv-2.1.1"
       sources."my-local-ip-1.0.0"
@@ -120732,13 +121130,13 @@ in
       sources."oauth-sign-0.8.2"
       sources."object-assign-4.1.1"
       sources."object-hash-0.3.0"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       (sources."openid-2.0.10" // {
         dependencies = [
-          sources."qs-6.10.1"
+          sources."qs-6.10.2"
         ];
       })
       sources."options-0.0.6"
@@ -120811,7 +121209,7 @@ in
       sources."randexp-0.4.9"
       sources."random-bytes-1.0.0"
       sources."range-parser-1.2.1"
-      sources."raw-body-2.4.0"
+      sources."raw-body-2.4.2"
       sources."read-pkg-1.1.0"
       (sources."read-pkg-up-1.0.1" // {
         dependencies = [
@@ -120864,7 +121262,10 @@ in
       sources."semver-5.7.1"
       (sources."send-0.17.1" // {
         dependencies = [
+          sources."http-errors-1.7.3"
           sources."ms-2.1.1"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
       (sources."serve-favicon-2.5.0" // {
@@ -120873,13 +121274,17 @@ in
           sources."safe-buffer-5.1.1"
         ];
       })
-      sources."serve-static-1.14.1"
+      (sources."serve-static-1.14.2" // {
+        dependencies = [
+          sources."send-0.17.2"
+        ];
+      })
       sources."set-blocking-2.0.0"
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-1.0.0"
       sources."sntp-1.0.9"
       (sources."socket.io-2.4.1" // {
@@ -120944,7 +121349,7 @@ in
         dependencies = [
           sources."debug-3.2.7"
           sources."form-data-2.5.1"
-          sources."qs-6.10.1"
+          sources."qs-6.10.2"
           sources."readable-stream-2.3.7"
           sources."string_decoder-1.1.1"
         ];
@@ -120957,7 +121362,7 @@ in
           sources."esprima-4.0.1"
           sources."js-yaml-3.14.1"
           sources."lodash-3.10.1"
-          sources."qs-6.10.1"
+          sources."qs-6.10.2"
         ];
       })
       sources."swagger-schema-official-2.0.0-bab6bed"
@@ -120980,7 +121385,7 @@ in
       sources."through-2.3.8"
       sources."to-array-0.1.4"
       sources."to-fast-properties-1.0.3"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."token-stream-0.0.1"
       sources."tough-cookie-2.3.4"
       (sources."transliteration-1.6.6" // {
@@ -121137,7 +121542,7 @@ in
       sources."@types/minimist-1.2.2"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/parse-json-4.0.0"
-      sources."ajv-8.8.0"
+      sources."ajv-8.8.2"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
       sources."array-union-2.1.0"
@@ -121160,7 +121565,7 @@ in
       sources."concat-map-0.0.1"
       sources."cosmiconfig-7.0.1"
       sources."cssesc-3.0.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -121223,7 +121628,7 @@ in
       sources."json-schema-traverse-1.0.0"
       sources."kind-of-6.0.3"
       sources."known-css-properties-0.23.0"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."locate-path-5.0.0"
       sources."lodash.truncate-4.4.2"
       sources."lru-cache-6.0.0"
@@ -121252,12 +121657,12 @@ in
       sources."path-type-4.0.0"
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.0"
-      sources."postcss-8.3.11"
+      sources."postcss-8.4.5"
       sources."postcss-media-query-parser-0.2.3"
       sources."postcss-resolve-nested-selector-0.1.1"
       sources."postcss-safe-parser-6.0.0"
-      sources."postcss-selector-parser-6.0.6"
-      sources."postcss-value-parser-4.1.0"
+      sources."postcss-selector-parser-6.0.7"
+      sources."postcss-value-parser-4.2.0"
       sources."punycode-2.1.1"
       sources."queue-microtask-1.2.3"
       sources."quick-lru-4.0.1"
@@ -121282,7 +121687,7 @@ in
       sources."rimraf-3.0.2"
       sources."run-parallel-1.2.0"
       sources."semver-7.3.5"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-3.0.0"
       (sources."slice-ansi-4.0.0" // {
         dependencies = [
@@ -121291,7 +121696,7 @@ in
           sources."color-name-1.1.4"
         ];
       })
-      sources."source-map-js-0.6.2"
+      sources."source-map-js-1.0.1"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
@@ -121303,7 +121708,7 @@ in
       sources."style-search-0.1.0"
       sources."supports-color-5.5.0"
       sources."svg-tags-1.0.0"
-      sources."table-6.7.3"
+      sources."table-6.7.5"
       sources."to-regex-range-5.0.1"
       sources."trim-newlines-3.0.1"
       sources."type-fest-0.18.1"
@@ -121332,18 +121737,18 @@ in
   svelte-check = nodeEnv.buildNodePackage {
     name = "svelte-check";
     packageName = "svelte-check";
-    version = "2.2.9";
+    version = "2.2.10";
     src = fetchurl {
-      url = "https://registry.npmjs.org/svelte-check/-/svelte-check-2.2.9.tgz";
-      sha512 = "au77iP0v2f8F0gWu5Nk3dPkASk4H6DyLQEDQrQR6a7BWJaTnGEZKFhe5EsD8f9tHLyA4awPBi+D56hVuRsbgNA==";
+      url = "https://registry.npmjs.org/svelte-check/-/svelte-check-2.2.10.tgz";
+      sha512 = "UVLd/N7hUIG2v6dytofsw8MxYn2iS2hpNSglsGz9Z9b8ZfbJ5jayl4Mm1SXhNwiFs5aklG90zSBJtd7NTK8dTg==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/pug-2.0.5"
-      sources."@types/sass-1.43.0"
+      sources."@types/sass-1.43.1"
       sources."ansi-styles-4.3.0"
       sources."anymatch-3.1.2"
       sources."balanced-match-1.0.2"
@@ -121401,9 +121806,9 @@ in
       sources."sourcemap-codec-1.4.8"
       sources."strip-indent-3.0.0"
       sources."supports-color-7.2.0"
-      sources."svelte-preprocess-4.9.8"
+      sources."svelte-preprocess-4.10.0"
       sources."to-regex-range-5.0.1"
-      sources."typescript-4.4.4"
+      sources."typescript-4.5.4"
       sources."wrappy-1.0.2"
     ];
     buildInputs = globalBuildInputs;
@@ -121419,10 +121824,10 @@ in
   svelte-language-server = nodeEnv.buildNodePackage {
     name = "svelte-language-server";
     packageName = "svelte-language-server";
-    version = "0.14.12";
+    version = "0.14.15";
     src = fetchurl {
-      url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.14.12.tgz";
-      sha512 = "CrkiGvu88SK9zn+yJrjw8l00N3je/WHpsZLCfR9zQDNFAdKJHsCwmq/ExCHjU32wsRIfX0oIGx+TW6fF0wtzxA==";
+      url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.14.15.tgz";
+      sha512 = "3FK3YzCT8fE+bL+o1VvJ61bgohpex2k3tnfgyP4fxruDPUv2qWAtdoJeS1JKqe6Y44SD6m/V7qN/HYmGmIMntQ==";
     };
     dependencies = [
       sources."@emmetio/abbreviation-2.2.2"
@@ -121431,22 +121836,32 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/pug-2.0.5"
-      sources."@types/sass-1.43.0"
+      sources."@types/sass-1.43.1"
       sources."anymatch-3.1.2"
+      sources."balanced-match-1.0.2"
       sources."binary-extensions-2.2.0"
+      sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
+      sources."buffer-crc32-0.2.13"
       sources."chokidar-3.5.2"
+      sources."concat-map-0.0.1"
       sources."dedent-js-1.0.1"
       sources."detect-indent-6.1.0"
-      sources."emmet-2.3.4"
+      sources."emmet-2.3.5"
+      sources."es6-promise-3.3.1"
       sources."estree-walker-2.0.2"
       sources."fast-glob-3.2.7"
       sources."fastq-1.13.0"
       sources."fill-range-7.0.1"
+      sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
+      sources."glob-7.2.0"
       sources."glob-parent-5.1.2"
+      sources."graceful-fs-4.2.8"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
       sources."is-binary-path-2.1.0"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
@@ -121454,28 +121869,38 @@ in
       sources."jsonc-parser-2.3.1"
       sources."lodash-4.17.21"
       sources."lower-case-2.0.2"
+      sources."magic-string-0.25.7"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.4"
       sources."min-indent-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."mkdirp-0.5.5"
       sources."no-case-3.0.4"
       sources."normalize-path-3.0.0"
+      sources."once-1.4.0"
       sources."pascal-case-3.1.2"
+      sources."path-is-absolute-1.0.1"
       sources."picomatch-2.3.0"
-      sources."prettier-2.4.1"
-      sources."prettier-plugin-svelte-2.5.0"
+      sources."prettier-2.5.0"
+      sources."prettier-plugin-svelte-2.5.1"
       sources."queue-microtask-1.2.3"
       sources."readdirp-3.6.0"
       sources."reusify-1.0.4"
+      sources."rimraf-2.7.1"
       sources."run-parallel-1.2.0"
+      sources."sander-0.5.1"
+      sources."sorcery-0.10.0"
       sources."source-map-0.7.3"
+      sources."sourcemap-codec-1.4.8"
       sources."strip-indent-3.0.0"
       sources."svelte-3.38.3"
-      sources."svelte-preprocess-4.7.4"
-      sources."svelte2tsx-0.4.9"
+      sources."svelte-preprocess-4.9.8"
+      sources."svelte2tsx-0.4.11"
       sources."to-regex-range-5.0.1"
       sources."tslib-2.3.1"
-      sources."typescript-4.4.4"
-      sources."vscode-css-languageservice-5.1.8"
+      sources."typescript-4.5.4"
+      sources."vscode-css-languageservice-5.1.9"
       (sources."vscode-emmet-helper-2.6.4" // {
         dependencies = [
           sources."vscode-uri-2.1.2"
@@ -121489,10 +121914,11 @@ in
           sources."vscode-languageserver-types-3.17.0-next.1"
         ];
       })
-      sources."vscode-languageserver-textdocument-1.0.2"
+      sources."vscode-languageserver-textdocument-1.0.3"
       sources."vscode-languageserver-types-3.16.0"
       sources."vscode-nls-5.0.0"
       sources."vscode-uri-3.0.2"
+      sources."wrappy-1.0.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -121516,13 +121942,13 @@ in
       sources."@trysound/sax-0.2.0"
       sources."boolbase-1.0.0"
       sources."commander-7.2.0"
-      sources."css-select-4.1.3"
+      sources."css-select-4.2.0"
       sources."css-tree-1.1.3"
       sources."css-what-5.1.0"
       sources."csso-4.2.0"
       sources."dom-serializer-1.3.2"
       sources."domelementtype-2.2.0"
-      sources."domhandler-4.2.2"
+      sources."domhandler-4.3.0"
       sources."domutils-2.8.0"
       sources."entities-2.2.0"
       sources."mdn-data-2.0.14"
@@ -121772,7 +122198,7 @@ in
           sources."kind-of-4.0.0"
         ];
       })
-      sources."http-errors-1.7.3"
+      sources."http-errors-1.8.1"
       sources."iconv-lite-0.4.8"
       sources."ignore-by-default-1.0.1"
       sources."import-lazy-2.1.0"
@@ -121893,7 +122319,7 @@ in
       })
       sources."mpath-0.5.2"
       sources."ms-2.0.0"
-      (sources."multer-1.4.3" // {
+      (sources."multer-1.4.4" // {
         dependencies = [
           sources."minimist-1.2.5"
           sources."mkdirp-0.5.5"
@@ -121929,7 +122355,7 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."object-visit-1.0.1"
       sources."object.pick-1.3.0"
       sources."on-finished-2.3.0"
@@ -121947,7 +122373,7 @@ in
         dependencies = [
           sources."debug-3.2.7"
           sources."ms-2.1.3"
-          sources."qs-6.10.1"
+          sources."qs-6.10.2"
           sources."superagent-3.8.3"
         ];
       })
@@ -121996,24 +122422,24 @@ in
       sources."sanitize-filename-1.6.3"
       sources."semver-5.7.1"
       sources."semver-diff-2.1.0"
-      (sources."send-0.17.1" // {
+      (sources."send-0.17.2" // {
         dependencies = [
-          sources."ms-2.1.1"
+          sources."ms-2.1.3"
         ];
       })
-      sources."serve-static-1.14.1"
+      sources."serve-static-1.14.2"
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
           sources."is-extendable-0.1.1"
         ];
       })
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."side-channel-1.0.4"
       sources."sigmund-1.0.1"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-1.0.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
@@ -122119,13 +122545,13 @@ in
       })
       sources."to-regex-3.0.2"
       sources."to-regex-range-2.1.1"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."touch-3.1.0"
       sources."traverse-0.6.6"
       sources."truncate-utf8-bytes-1.0.2"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.14.3"
+      sources."uglify-js-3.14.5"
       sources."undefsafe-2.0.5"
       (sources."union-value-1.0.1" // {
         dependencies = [
@@ -122182,6 +122608,141 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  tailwindcss = nodeEnv.buildNodePackage {
+    name = "tailwindcss";
+    packageName = "tailwindcss";
+    version = "3.0.6";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.6.tgz";
+      sha512 = "+CA2f09rbHFDsdQ1iDvsOGbF1tZFmyPoRhUeaF9/5FRT5GYObtp+UjTSCdmeDcu6T90bx4WAaOkddYFPBkjbAA==";
+    };
+    dependencies = [
+      sources."@babel/code-frame-7.16.0"
+      sources."@babel/helper-validator-identifier-7.15.7"
+      (sources."@babel/highlight-7.16.0" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."has-flag-3.0.0"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      sources."@nodelib/fs.scandir-2.1.5"
+      sources."@nodelib/fs.stat-2.0.5"
+      sources."@nodelib/fs.walk-1.2.8"
+      sources."@types/parse-json-4.0.0"
+      sources."acorn-7.4.1"
+      sources."acorn-node-1.8.2"
+      sources."acorn-walk-7.2.0"
+      sources."ansi-styles-4.3.0"
+      sources."anymatch-3.1.2"
+      sources."arg-5.0.1"
+      sources."balanced-match-1.0.2"
+      sources."binary-extensions-2.2.0"
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."callsites-3.1.0"
+      sources."camelcase-css-2.0.1"
+      sources."chalk-4.1.2"
+      (sources."chokidar-3.5.2" // {
+        dependencies = [
+          sources."glob-parent-5.1.2"
+        ];
+      })
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."concat-map-0.0.1"
+      sources."cosmiconfig-7.0.1"
+      sources."cssesc-3.0.0"
+      sources."defined-1.0.0"
+      sources."detective-5.2.0"
+      sources."didyoumean-1.2.2"
+      sources."dlv-1.1.3"
+      sources."error-ex-1.3.2"
+      sources."escape-string-regexp-1.0.5"
+      (sources."fast-glob-3.2.7" // {
+        dependencies = [
+          sources."glob-parent-5.1.2"
+        ];
+      })
+      sources."fastq-1.13.0"
+      sources."fill-range-7.0.1"
+      sources."fs.realpath-1.0.0"
+      sources."fsevents-2.3.2"
+      sources."function-bind-1.1.1"
+      sources."glob-7.2.0"
+      sources."glob-parent-6.0.2"
+      sources."has-1.0.3"
+      sources."has-flag-4.0.0"
+      sources."import-cwd-3.0.0"
+      sources."import-fresh-3.3.0"
+      (sources."import-from-3.0.0" // {
+        dependencies = [
+          sources."resolve-from-5.0.0"
+        ];
+      })
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."is-arrayish-0.2.1"
+      sources."is-binary-path-2.1.0"
+      sources."is-core-module-2.8.0"
+      sources."is-extglob-2.1.1"
+      sources."is-glob-4.0.3"
+      sources."is-number-7.0.0"
+      sources."js-tokens-4.0.0"
+      sources."json-parse-even-better-errors-2.3.1"
+      sources."lilconfig-2.0.4"
+      sources."lines-and-columns-1.2.4"
+      sources."merge2-1.4.1"
+      sources."micromatch-4.0.4"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."nanoid-3.1.30"
+      sources."normalize-path-3.0.0"
+      sources."object-hash-2.2.0"
+      sources."once-1.4.0"
+      sources."parent-module-1.0.1"
+      sources."parse-json-5.2.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-parse-1.0.7"
+      sources."path-type-4.0.0"
+      sources."picocolors-1.0.0"
+      sources."picomatch-2.3.0"
+      sources."postcss-8.4.5"
+      sources."postcss-js-3.0.3"
+      sources."postcss-load-config-3.1.0"
+      sources."postcss-nested-5.0.6"
+      sources."postcss-selector-parser-6.0.7"
+      sources."postcss-value-parser-4.2.0"
+      sources."queue-microtask-1.2.3"
+      sources."quick-lru-5.1.1"
+      sources."readdirp-3.6.0"
+      sources."resolve-1.20.0"
+      sources."resolve-from-4.0.0"
+      sources."reusify-1.0.4"
+      sources."rimraf-3.0.2"
+      sources."run-parallel-1.2.0"
+      sources."source-map-js-1.0.1"
+      sources."supports-color-7.2.0"
+      sources."tmp-0.2.1"
+      sources."to-regex-range-5.0.1"
+      sources."util-deprecate-1.0.2"
+      sources."wrappy-1.0.2"
+      sources."xtend-4.0.2"
+      sources."yaml-1.10.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "A utility-first CSS framework for rapidly building custom user interfaces.";
+      homepage = "https://tailwindcss.com";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   "tedicross-git+https://github.com/TediCross/TediCross.git#v0.8.7" = nodeEnv.buildNodePackage {
     name = "tedicross";
     packageName = "tedicross";
@@ -122215,7 +122776,7 @@ in
       sources."combined-stream-1.0.8"
       sources."core-util-is-1.0.2"
       sources."dashdash-1.14.1"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decamelize-1.2.0"
       sources."delayed-stream-1.0.0"
       sources."discord.js-11.6.4"
@@ -122239,10 +122800,10 @@ in
       sources."isstream-0.1.2"
       sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."locate-path-3.0.0"
       sources."long-4.0.0"
       sources."mime-2.6.0"
@@ -122286,7 +122847,7 @@ in
       sources."tr46-0.0.3"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-1.0.3"
-      sources."typegram-3.5.1"
+      sources."typegram-3.6.2"
       sources."uri-js-4.4.1"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
@@ -122320,7 +122881,7 @@ in
       sources."node-addon-api-4.2.0"
       sources."node-gyp-build-4.3.0"
       sources."q-1.5.1"
-      sources."usb-1.9.1"
+      sources."usb-1.9.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -122393,7 +122954,7 @@ in
       sources."buffer-from-1.1.2"
       sources."commander-2.20.3"
       sources."source-map-0.7.3"
-      (sources."source-map-support-0.5.20" // {
+      (sources."source-map-support-0.5.21" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -122412,32 +122973,32 @@ in
   textlint = nodeEnv.buildNodePackage {
     name = "textlint";
     packageName = "textlint";
-    version = "12.0.2";
+    version = "12.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/textlint/-/textlint-12.0.2.tgz";
-      sha512 = "pg453CN2xtLoqss9YVSKkEFJtJ1AB/9SWTxl11fgdqFPCOK2W/320CJRqSxo5bJFpIn5+6bjqkuPHS0cZWLPvg==";
+      url = "https://registry.npmjs.org/textlint/-/textlint-12.1.0.tgz";
+      sha512 = "VZ0iVepE0jUchMfIW0uKGdEdv3l0ajOFvUBcpB1xGOLAz3gVwpdWvlagVlFXuwjc2N+9mcjTM0PCIXNwIs2vQA==";
     };
     dependencies = [
       sources."@azu/format-text-1.0.1"
       sources."@azu/style-format-1.0.0"
-      sources."@textlint/ast-node-types-12.0.0"
-      sources."@textlint/ast-tester-12.0.2"
-      sources."@textlint/ast-traverse-12.0.2"
-      sources."@textlint/feature-flag-12.0.2"
-      sources."@textlint/fixer-formatter-12.0.2"
-      sources."@textlint/kernel-12.0.2"
-      sources."@textlint/linter-formatter-12.0.2"
-      sources."@textlint/markdown-to-ast-12.0.2"
-      sources."@textlint/module-interop-12.0.2"
-      sources."@textlint/source-code-fixer-12.0.2"
-      sources."@textlint/text-to-ast-12.0.2"
-      sources."@textlint/textlint-plugin-markdown-12.0.2"
-      sources."@textlint/textlint-plugin-text-12.0.2"
-      sources."@textlint/types-12.0.2"
-      sources."@textlint/utils-12.0.2"
+      sources."@textlint/ast-node-types-12.1.0"
+      sources."@textlint/ast-tester-12.1.0"
+      sources."@textlint/ast-traverse-12.1.0"
+      sources."@textlint/feature-flag-12.1.0"
+      sources."@textlint/fixer-formatter-12.1.0"
+      sources."@textlint/kernel-12.1.0"
+      sources."@textlint/linter-formatter-12.1.0"
+      sources."@textlint/markdown-to-ast-12.1.0"
+      sources."@textlint/module-interop-12.1.0"
+      sources."@textlint/source-code-fixer-12.1.0"
+      sources."@textlint/text-to-ast-12.1.0"
+      sources."@textlint/textlint-plugin-markdown-12.1.0"
+      sources."@textlint/textlint-plugin-text-12.1.0"
+      sources."@textlint/types-12.1.0"
+      sources."@textlint/utils-12.1.0"
       sources."@types/mdast-3.0.10"
       sources."@types/unist-2.0.6"
-      sources."ajv-8.8.0"
+      sources."ajv-8.8.2"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
       sources."argparse-1.0.10"
@@ -122462,7 +123023,7 @@ in
       sources."color-name-1.1.4"
       sources."concat-map-0.0.1"
       sources."crypt-0.0.2"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."deep-equal-1.1.1"
       sources."deep-is-0.1.4"
       sources."define-properties-1.1.3"
@@ -122619,7 +123180,7 @@ in
       sources."strip-bom-2.0.0"
       sources."structured-source-3.0.2"
       sources."supports-color-2.0.0"
-      (sources."table-6.7.3" // {
+      (sources."table-6.7.5" // {
         dependencies = [
           sources."is-fullwidth-code-point-3.0.0"
           sources."string-width-4.2.3"
@@ -122784,7 +123345,7 @@ in
       sources."core-util-is-1.0.3"
       sources."crypto-random-string-2.0.0"
       sources."cuss-1.21.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -122889,7 +123450,7 @@ in
         ];
       })
       sources."limit-spawn-0.0.3"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."load-plugin-3.0.0"
       sources."locate-path-5.0.0"
       sources."lodash.difference-4.5.0"
@@ -122987,7 +123548,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."sliced-1.0.1"
       sources."space-separated-tokens-1.1.5"
       (sources."spawn-to-readstream-0.1.3" // {
@@ -123320,14 +123881,14 @@ in
       sources."is-boolean-object-1.1.2"
       sources."is-callable-1.2.4"
       sources."is-date-object-1.0.5"
-      sources."is-negative-zero-2.0.1"
+      sources."is-negative-zero-2.0.2"
       sources."is-number-object-1.0.6"
       sources."is-regex-1.1.4"
       sources."is-shared-array-buffer-1.0.1"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
-      sources."is-weakref-1.0.1"
-      sources."object-inspect-1.11.0"
+      sources."is-weakref-1.0.2"
+      sources."object-inspect-1.11.1"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."side-channel-1.0.4"
@@ -123433,14 +123994,14 @@ in
       sources."is-callable-1.2.4"
       sources."is-capitalized-1.0.0"
       sources."is-date-object-1.0.5"
-      sources."is-negative-zero-2.0.1"
+      sources."is-negative-zero-2.0.2"
       sources."is-number-object-1.0.6"
       sources."is-regex-1.1.4"
       sources."is-shared-array-buffer-1.0.1"
       sources."is-string-1.0.7"
       sources."is-symbol-1.0.4"
-      sources."is-weakref-1.0.1"
-      sources."object-inspect-1.11.0"
+      sources."is-weakref-1.0.2"
+      sources."object-inspect-1.11.1"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
       sources."side-channel-1.0.4"
@@ -123498,27 +124059,29 @@ in
   thelounge = nodeEnv.buildNodePackage {
     name = "thelounge";
     packageName = "thelounge";
-    version = "4.2.0";
+    version = "4.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/thelounge/-/thelounge-4.2.0.tgz";
-      sha512 = "5hijX1V/4CrgrkqCqtwP32LSbLPSF/10nneI+2doPHKx7AdCgR52HqWZo0AQEPv4fvOqEOMLJ0c9pL6t/jUDwg==";
+      url = "https://registry.npmjs.org/thelounge/-/thelounge-4.3.0.tgz";
+      sha512 = "dkVdH21q9vipV7UU10qQQprPuP8rG+IDJSHUtmOC0WDYvwYTiUC9IYLIpkyWdgfwFYegDTnnR4duHNZynqOXTA==";
     };
     dependencies = [
-      sources."@sindresorhus/is-3.1.2"
+      sources."@sindresorhus/is-4.2.0"
       sources."@szmarczak/http-timer-4.0.6"
       sources."@tokenizer/token-0.3.0"
       sources."@types/cacheable-request-6.0.2"
+      sources."@types/component-emitter-1.2.11"
+      sources."@types/cookie-0.4.1"
+      sources."@types/cors-2.8.12"
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/keyv-3.1.3"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
       sources."accepts-1.3.7"
-      sources."after-0.8.2"
       (sources."agent-base-6.0.2" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -123528,68 +124091,60 @@ in
       sources."aproba-1.2.0"
       (sources."are-we-there-yet-1.1.7" // {
         dependencies = [
-          sources."isarray-1.0.0"
           sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
           sources."string_decoder-1.1.1"
         ];
       })
       sources."array-flatten-1.1.1"
-      sources."arraybuffer.slice-0.0.7"
       sources."asn1-0.2.6"
       sources."asn1.js-5.4.1"
       sources."assert-plus-1.0.0"
-      sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
+      sources."available-typed-arrays-1.0.5"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."backo2-1.0.2"
       sources."backoff-2.5.0"
       sources."balanced-match-1.0.2"
       sources."base64-arraybuffer-0.1.4"
+      sources."base64-js-1.5.1"
       sources."base64id-2.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bcryptjs-2.4.3"
-      sources."better-assert-1.0.2"
-      sources."blob-0.0.5"
       sources."block-stream-0.0.9"
       sources."bn.js-4.12.0"
       sources."body-parser-1.19.0"
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
+      sources."buffer-6.0.3"
       sources."buffer-equal-constant-time-1.0.1"
       sources."busboy-0.3.1"
       sources."bytes-3.1.0"
       sources."cacheable-lookup-5.0.4"
       sources."cacheable-request-7.0.2"
-      sources."callsite-1.0.0"
+      sources."call-bind-1.0.2"
       sources."caseless-0.12.0"
-      sources."chalk-4.1.0"
-      sources."cheerio-1.0.0-rc.3"
+      sources."chalk-4.1.2"
+      sources."cheerio-1.0.0-rc.10"
+      sources."cheerio-select-1.5.0"
       sources."chownr-1.1.4"
       sources."clone-response-1.0.2"
       sources."code-point-at-1.1.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."combined-stream-1.0.8"
-      sources."commander-6.0.0"
-      sources."component-bind-1.0.0"
-      sources."component-emitter-1.2.1"
-      sources."component-inherit-0.0.3"
+      sources."commander-7.2.0"
+      sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
-      (sources."content-disposition-0.5.3" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
+      sources."content-disposition-0.5.3"
       sources."content-type-1.0.4"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.19.1"
+      sources."core-js-3.20.0"
       sources."core-util-is-1.0.2"
-      sources."css-select-1.2.0"
-      sources."css-what-2.1.3"
+      sources."cors-2.8.5"
+      sources."css-select-4.2.0"
+      sources."css-what-5.1.0"
       sources."dashdash-1.14.1"
       sources."debug-2.6.9"
       (sources."decompress-response-6.0.0" // {
@@ -123599,58 +124154,49 @@ in
       })
       sources."deep-extend-0.6.0"
       sources."defer-to-connect-2.0.1"
+      sources."define-properties-1.1.3"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
       sources."detect-libc-1.0.3"
       sources."dicer-0.3.0"
-      sources."dom-serializer-0.1.1"
-      sources."domelementtype-1.3.1"
-      sources."domhandler-2.4.2"
-      sources."domutils-1.5.1"
+      sources."dom-serializer-1.3.2"
+      sources."domelementtype-2.2.0"
+      sources."domhandler-4.3.0"
+      sources."domutils-2.8.0"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ecdsa-sig-formatter-1.0.11"
       sources."ee-first-1.1.1"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."engine.io-3.4.2" // {
-        dependencies = [
-          sources."cookie-0.3.1"
-          sources."debug-4.1.1"
-          sources."ms-2.1.3"
-        ];
-      })
-      (sources."engine.io-client-3.4.4" // {
+      (sources."engine.io-4.1.1" // {
         dependencies = [
-          sources."component-emitter-1.3.0"
-          sources."debug-3.1.0"
-          sources."parseqs-0.0.6"
-          sources."parseuri-0.0.6"
-          sources."ws-6.1.4"
+          sources."cookie-0.4.1"
+          sources."debug-4.3.3"
+          sources."ms-2.1.2"
         ];
       })
-      sources."engine.io-parser-2.2.1"
-      sources."entities-1.1.2"
+      sources."engine.io-parser-4.0.3"
+      sources."entities-2.2.0"
+      sources."es-abstract-1.19.1"
+      sources."es-to-primitive-1.2.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
       sources."etag-1.8.1"
       sources."eventemitter3-4.0.7"
-      (sources."express-4.17.1" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
+      sources."express-4.17.1"
       sources."extend-3.0.2"
       sources."extsprintf-1.4.1"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-text-encoding-1.0.3"
-      sources."file-type-14.7.1"
+      sources."file-type-16.2.0"
       sources."filename-reserved-regex-2.0.0"
-      sources."filenamify-4.1.0"
+      sources."filenamify-4.2.0"
       sources."finalhandler-1.1.2"
+      sources."foreach-2.0.5"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
       sources."forwarded-0.2.0"
@@ -123658,61 +124204,77 @@ in
       sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
       sources."fstream-1.0.12"
+      sources."function-bind-1.1.1"
       sources."gauge-2.7.4"
+      sources."get-intrinsic-1.1.1"
       sources."get-stream-5.2.0"
+      sources."get-symbol-description-1.0.0"
       sources."getpass-0.1.7"
       sources."glob-7.2.0"
-      sources."got-11.5.2"
+      sources."got-11.8.2"
       sources."graceful-fs-4.2.8"
       sources."grapheme-splitter-1.0.4"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
-      sources."has-binary2-1.0.3"
-      sources."has-cors-1.1.0"
+      sources."has-1.0.3"
+      sources."has-bigints-1.0.1"
       sources."has-flag-4.0.0"
+      sources."has-symbols-1.0.2"
+      sources."has-tostringtag-1.0.0"
       sources."has-unicode-2.0.1"
-      sources."htmlparser2-3.10.1"
+      sources."htmlparser2-6.1.0"
       sources."http-cache-semantics-4.1.0"
-      (sources."http-errors-1.7.2" // {
-        dependencies = [
-          sources."inherits-2.0.3"
-        ];
-      })
+      sources."http-errors-1.7.2"
       sources."http-signature-1.2.0"
       sources."http2-wrapper-1.0.3"
       sources."http_ece-1.1.0"
       (sources."https-proxy-agent-5.0.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."ignore-walk-3.0.4"
-      sources."indexof-0.0.1"
       sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
+      sources."inherits-2.0.3"
       sources."ini-1.3.8"
+      sources."internal-slot-1.0.3"
+      sources."ip-1.1.5"
       sources."ipaddr.js-1.9.1"
-      (sources."irc-framework-4.9.0" // {
+      (sources."irc-framework-4.11.0" // {
         dependencies = [
           sources."iconv-lite-0.6.3"
         ];
       })
+      sources."is-arguments-1.1.1"
+      sources."is-bigint-1.0.4"
+      sources."is-boolean-object-1.1.2"
+      sources."is-callable-1.2.4"
+      sources."is-date-object-1.0.5"
       sources."is-fullwidth-code-point-1.0.0"
+      sources."is-generator-function-1.0.10"
+      sources."is-negative-zero-2.0.2"
+      sources."is-number-object-1.0.6"
+      sources."is-regex-1.1.4"
+      sources."is-shared-array-buffer-1.0.1"
+      sources."is-string-1.0.7"
+      sources."is-symbol-1.0.4"
+      sources."is-typed-array-1.1.8"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
-      sources."isarray-2.0.1"
+      sources."is-weakref-1.0.2"
+      sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isomorphic-textencoder-1.0.1"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      (sources."jsprim-1.4.1" // {
+      (sources."jsprim-1.4.2" // {
         dependencies = [
           sources."extsprintf-1.3.0"
           sources."verror-1.10.0"
@@ -123722,22 +124284,27 @@ in
       sources."jws-4.0.0"
       sources."keyv-4.0.4"
       sources."ldap-filter-0.3.3"
-      sources."ldapjs-2.1.1"
-      sources."linkify-it-3.0.2"
-      sources."lodash-4.17.20"
+      sources."ldapjs-2.3.1"
+      sources."linkify-it-3.0.3"
+      sources."lodash-4.17.21"
       sources."lowercase-keys-2.0.0"
+      sources."lru-cache-6.0.0"
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."middleware-handler-0.2.0"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
+      sources."mime-db-1.50.0"
+      sources."mime-types-2.1.33"
       sources."mimic-response-1.0.1"
       sources."minimalistic-assert-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-2.9.0"
+      (sources."minipass-2.9.0" // {
+        dependencies = [
+          sources."yallist-3.1.1"
+        ];
+      })
       sources."minizlib-1.3.3"
       sources."mkdirp-0.5.5"
       sources."ms-2.0.0"
@@ -123749,8 +124316,8 @@ in
         ];
       })
       sources."negotiator-0.6.2"
-      sources."node-addon-api-2.0.0"
-      sources."node-forge-0.9.1"
+      sources."node-addon-api-3.2.1"
+      sources."node-forge-0.10.0"
       (sources."node-gyp-3.8.0" // {
         dependencies = [
           sources."nopt-3.0.6"
@@ -123769,11 +124336,13 @@ in
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-packlist-1.4.8"
       sources."npmlog-4.1.2"
-      sources."nth-check-1.0.2"
+      sources."nth-check-2.0.1"
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
-      sources."object-component-0.0.3"
+      sources."object-inspect-1.11.1"
+      sources."object-keys-1.1.1"
+      sources."object.assign-4.1.2"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
       sources."os-homedir-1.0.2"
@@ -123805,13 +124374,12 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."parse5-3.0.3"
-      sources."parseqs-0.0.5"
-      sources."parseuri-0.0.5"
+      sources."parse5-6.0.1"
+      sources."parse5-htmlparser2-tree-adapter-6.0.1"
       sources."parseurl-1.3.3"
       sources."path-is-absolute-1.0.1"
       sources."path-to-regexp-0.1.7"
-      sources."peek-readable-4.0.1"
+      sources."peek-readable-4.0.2"
       sources."performance-now-2.1.0"
       sources."pify-4.0.1"
       sources."precond-0.2.3"
@@ -123829,7 +124397,7 @@ in
       sources."read-1.0.7"
       sources."read-chunk-3.2.0"
       sources."readable-stream-3.6.0"
-      sources."readable-web-to-node-stream-2.0.0"
+      sources."readable-web-to-node-stream-3.0.2"
       sources."regenerator-runtime-0.13.9"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
@@ -123842,10 +124410,10 @@ in
       sources."resolve-alpn-1.2.1"
       sources."responselike-2.0.0"
       sources."rimraf-2.7.1"
-      sources."safe-buffer-5.2.1"
+      sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      sources."semver-7.3.2"
+      sources."semver-7.3.5"
       (sources."send-0.17.1" // {
         dependencies = [
           sources."ms-2.1.1"
@@ -123854,53 +124422,52 @@ in
       sources."serve-static-1.14.1"
       sources."set-blocking-2.0.0"
       sources."setprototypeof-1.1.1"
-      sources."signal-exit-3.0.5"
-      (sources."socket.io-2.3.0" // {
+      sources."side-channel-1.0.4"
+      sources."signal-exit-3.0.6"
+      sources."smart-buffer-4.2.0"
+      (sources."socket.io-3.1.2" // {
         dependencies = [
-          sources."debug-4.1.1"
-          sources."ms-2.1.3"
+          sources."debug-4.3.3"
+          sources."ms-2.1.2"
         ];
       })
-      sources."socket.io-adapter-1.1.2"
-      (sources."socket.io-client-2.3.0" // {
+      sources."socket.io-adapter-2.1.0"
+      (sources."socket.io-parser-4.0.4" // {
         dependencies = [
-          sources."base64-arraybuffer-0.1.5"
-          sources."debug-4.1.1"
-          sources."ms-2.1.3"
-          (sources."socket.io-parser-3.3.2" // {
-            dependencies = [
-              sources."component-emitter-1.3.0"
-              sources."debug-3.1.0"
-              sources."ms-2.0.0"
-            ];
-          })
+          sources."debug-4.3.3"
+          sources."ms-2.1.2"
         ];
       })
-      (sources."socket.io-parser-3.4.1" // {
+      sources."socks-2.6.1"
+      sources."sqlite3-5.0.2"
+      sources."sshpk-1.16.1"
+      sources."statuses-1.5.0"
+      (sources."stream-browserify-3.0.0" // {
         dependencies = [
-          sources."debug-4.1.1"
-          sources."ms-2.1.3"
+          sources."inherits-2.0.4"
         ];
       })
-      (sources."socksjs-0.5.0" // {
+      sources."streamsearch-0.1.2"
+      sources."string-width-1.0.2"
+      sources."string.prototype.trimend-1.0.4"
+      sources."string.prototype.trimstart-1.0.4"
+      (sources."string_decoder-1.3.0" // {
         dependencies = [
-          sources."ipaddr.js-0.1.3"
+          sources."safe-buffer-5.2.1"
         ];
       })
-      sources."sqlite3-5.0.0"
-      sources."sshpk-1.16.1"
-      sources."statuses-1.5.0"
-      sources."streamsearch-0.1.2"
-      sources."string-width-1.0.2"
-      sources."string_decoder-1.3.0"
       sources."strip-ansi-3.0.1"
       sources."strip-json-comments-2.0.1"
       sources."strip-outer-1.0.1"
       sources."strtok3-6.2.4"
       sources."supports-color-7.2.0"
-      sources."tar-4.4.19"
-      sources."tlds-1.208.0"
-      sources."to-array-0.1.4"
+      (sources."tar-4.4.19" // {
+        dependencies = [
+          sources."safe-buffer-5.2.1"
+          sources."yallist-3.1.1"
+        ];
+      })
+      sources."tlds-1.216.0"
       sources."to-readable-stream-1.0.0"
       sources."toidentifier-1.0.0"
       (sources."token-types-2.1.1" // {
@@ -123910,19 +124477,22 @@ in
       })
       sources."tough-cookie-2.5.0"
       sources."trim-repeated-1.0.0"
+      sources."tslib-2.3.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
       sources."typedarray-to-buffer-3.1.5"
-      sources."ua-parser-js-0.7.21"
+      sources."ua-parser-js-0.7.30"
       sources."uc.micro-1.0.6"
+      sources."unbox-primitive-1.0.1"
       sources."unpipe-1.0.0"
       sources."uri-js-4.4.1"
       sources."url-parse-lax-3.0.0"
       sources."urlsafe-base64-1.0.0"
+      sources."util-0.12.4"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
-      sources."uuid-8.3.0"
+      sources."uuid-8.3.2"
       sources."vary-1.1.2"
       (sources."vasync-2.2.1" // {
         dependencies = [
@@ -123930,16 +124500,16 @@ in
         ];
       })
       sources."verror-1.10.1"
-      sources."web-push-3.4.4"
+      sources."web-push-3.4.5"
       sources."which-1.3.1"
+      sources."which-boxed-primitive-1.0.2"
+      sources."which-typed-array-1.1.7"
       sources."wide-align-1.1.5"
       sources."with-open-file-0.1.7"
       sources."wrappy-1.0.2"
-      sources."ws-7.5.5"
-      sources."xmlhttprequest-ssl-1.5.5"
-      sources."yallist-3.1.1"
-      sources."yarn-1.22.4"
-      sources."yeast-0.1.2"
+      sources."ws-7.4.6"
+      sources."yallist-4.0.0"
+      sources."yarn-1.22.10"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -123954,10 +124524,10 @@ in
   three = nodeEnv.buildNodePackage {
     name = "three";
     packageName = "three";
-    version = "0.134.0";
+    version = "0.135.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/three/-/three-0.134.0.tgz";
-      sha512 = "LbBerg7GaSPjYtTOnu41AMp7tV6efUNR3p4Wk5NzkSsNTBuA5mDGOfwwZL1jhhVMLx9V20HolIUo0+U3AXehbg==";
+      url = "https://registry.npmjs.org/three/-/three-0.135.0.tgz";
+      sha512 = "kuEpuuxRzLv0MDsXai9huCxOSQPZ4vje6y0gn80SRmQvgz6/+rI0NAvCRAw56zYaWKMGMfqKWsxF9Qa2Z9xymQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -123972,10 +124542,10 @@ in
   tiddlywiki = nodeEnv.buildNodePackage {
     name = "tiddlywiki";
     packageName = "tiddlywiki";
-    version = "5.2.0";
+    version = "5.2.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/tiddlywiki/-/tiddlywiki-5.2.0.tgz";
-      sha512 = "X/gDXUTZqdBjzuw0/EfvPxQEVuW/hPE/O7hmOqysvDRpfwS7an6hHGzeNkyPHmb1b2uONgd8tfDuScuwTkjIvA==";
+      url = "https://registry.npmjs.org/tiddlywiki/-/tiddlywiki-5.2.1.tgz";
+      sha512 = "cfZX8G4/ymQzBmPcI8UWJ317eDrLf4INto99m7M8Nkbx5BMA3+Uapht7OPNaXZRR4RqvVJ7N1Ie1xYMWtvjnpw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -124059,7 +124629,7 @@ in
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       (sources."jsonfile-6.1.0" // {
@@ -124067,7 +124637,7 @@ in
           sources."universalify-2.0.0"
         ];
       })
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."keypress-0.2.1"
       sources."lru-cache-6.0.0"
       sources."mime-db-1.51.0"
@@ -124172,9 +124742,12 @@ in
         ];
       })
       sources."glob-5.0.15"
-      (sources."http-signature-1.3.5" // {
+      (sources."http-signature-1.3.6" // {
         dependencies = [
           sources."assert-plus-1.0.0"
+          sources."extsprintf-1.3.0"
+          sources."json-schema-0.4.0"
+          sources."jsprim-2.0.2"
         ];
       })
       sources."inflight-1.0.6"
@@ -124402,10 +124975,10 @@ in
   typescript = nodeEnv.buildNodePackage {
     name = "typescript";
     packageName = "typescript";
-    version = "4.4.4";
+    version = "4.5.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz";
-      sha512 = "DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==";
+      url = "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz";
+      sha512 = "VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -124420,10 +124993,10 @@ in
   typescript-language-server = nodeEnv.buildNodePackage {
     name = "typescript-language-server";
     packageName = "typescript-language-server";
-    version = "0.7.1";
+    version = "0.8.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/typescript-language-server/-/typescript-language-server-0.7.1.tgz";
-      sha512 = "pxPFvsDQolUTJTBdr8e9Qo+SBCYU8RIUO0l8eODMjBDvG9rTl6NTME+OEzMiR8LQ8siZ2jdQUq4K+6a/+20JCQ==";
+      url = "https://registry.npmjs.org/typescript-language-server/-/typescript-language-server-0.8.1.tgz";
+      sha512 = "n2KwWC8fNKzEyTz+H2HXbVCCoqaEvzgVeR6ERL6DYQe2Rdynj+s/YkyuStVzV2MqW9j+v4xV2xFik+kTOYpkGg==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.5"
@@ -124435,8 +125008,7 @@ in
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."clean-stack-2.2.0"
-      sources."command-exists-1.2.9"
-      sources."commander-7.2.0"
+      sources."commander-8.3.0"
       sources."concat-map-0.0.1"
       sources."crypto-random-string-2.0.0"
       sources."del-6.0.0"
@@ -124444,6 +125016,7 @@ in
       sources."fast-glob-3.2.7"
       sources."fastq-1.13.0"
       sources."fill-range-7.0.1"
+      sources."find-up-3.0.0"
       sources."fs-extra-10.0.0"
       sources."fs.realpath-1.0.0"
       sources."glob-7.2.0"
@@ -124460,17 +125033,24 @@ in
       sources."is-path-cwd-2.2.0"
       sources."is-path-inside-3.0.3"
       sources."is-stream-2.0.1"
+      sources."isexe-2.0.0"
       sources."jsonfile-6.1.0"
+      sources."locate-path-3.0.0"
       sources."lru-cache-6.0.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.4"
       sources."minimatch-3.0.4"
       sources."once-1.4.0"
       sources."p-debounce-2.1.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-3.0.0"
       sources."p-map-4.0.0"
+      sources."p-try-2.2.0"
+      sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-type-4.0.0"
       sources."picomatch-2.3.0"
+      sources."pkg-up-3.1.0"
       sources."queue-microtask-1.2.3"
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
@@ -124486,9 +125066,10 @@ in
       sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-7.0.0"
       sources."vscode-languageserver-protocol-3.16.0"
-      sources."vscode-languageserver-textdocument-1.0.2"
+      sources."vscode-languageserver-textdocument-1.0.3"
       sources."vscode-languageserver-types-3.16.0"
-      sources."vscode-uri-1.0.8"
+      sources."vscode-uri-3.0.2"
+      sources."which-2.0.2"
       sources."wrappy-1.0.2"
       sources."yallist-4.0.0"
     ];
@@ -124504,10 +125085,10 @@ in
   uglify-js = nodeEnv.buildNodePackage {
     name = "uglify-js";
     packageName = "uglify-js";
-    version = "3.14.3";
+    version = "3.14.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.3.tgz";
-      sha512 = "mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g==";
+      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.5.tgz";
+      sha512 = "qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -124553,7 +125134,7 @@ in
       sources."@types/component-emitter-1.2.11"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
-      sources."@types/node-14.17.33"
+      sources."@types/node-14.18.0"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       sources."ansi-regex-5.0.1"
@@ -124569,10 +125150,10 @@ in
       sources."base64-arraybuffer-0.1.4"
       sources."base64id-2.0.0"
       sources."blueimp-md5-2.18.0"
-      sources."body-parser-1.19.0"
+      sources."body-parser-1.19.1"
       sources."bootstrap-3.4.1"
       sources."brace-expansion-1.1.11"
-      sources."bytes-3.1.0"
+      sources."bytes-3.1.1"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."get-stream-5.2.0"
@@ -124585,17 +125166,16 @@ in
       sources."color-3.2.1"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.6.0"
+      sources."color-string-1.9.0"
       sources."colors-1.4.0"
       sources."colorspace-1.1.4"
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
       sources."content-disposition-0.5.3"
       sources."content-type-1.0.4"
-      sources."cookie-0.4.0"
-      sources."cookie-parser-1.4.5"
+      sources."cookie-0.4.1"
+      sources."cookie-parser-1.4.6"
       sources."cookie-signature-1.0.6"
-      sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
       sources."crossroads-0.12.2"
       sources."debug-2.6.9"
@@ -124616,8 +125196,7 @@ in
       sources."end-of-stream-1.4.4"
       (sources."engine.io-5.1.1" // {
         dependencies = [
-          sources."cookie-0.4.1"
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -124626,10 +125205,22 @@ in
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
       sources."eve-0.5.4"
-      sources."express-4.17.1"
+      (sources."express-4.17.1" // {
+        dependencies = [
+          sources."body-parser-1.19.0"
+          sources."bytes-3.1.0"
+          sources."cookie-0.4.0"
+          sources."http-errors-1.7.2"
+          sources."inherits-2.0.3"
+          sources."qs-6.7.0"
+          sources."raw-body-2.4.0"
+          sources."serve-static-1.14.1"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
+        ];
+      })
       (sources."express-session-1.17.2" // {
         dependencies = [
-          sources."cookie-0.4.1"
           sources."depd-2.0.0"
           sources."safe-buffer-5.2.1"
         ];
@@ -124652,11 +125243,11 @@ in
         ];
       })
       sources."http-cache-semantics-4.1.0"
-      sources."http-errors-1.7.2"
+      sources."http-errors-1.8.1"
       sources."iconv-lite-0.4.24"
       sources."ignore-5.1.9"
       sources."inflight-1.0.6"
-      sources."inherits-2.0.3"
+      sources."inherits-2.0.4"
       sources."ini-1.3.8"
       sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.3.2"
@@ -124664,7 +125255,6 @@ in
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-stream-2.0.1"
       sources."is-wsl-2.2.0"
-      sources."isarray-1.0.0"
       sources."jquery-3.6.0"
       sources."jquery-ui-1.12.1"
       sources."json-buffer-3.0.0"
@@ -124685,7 +125275,7 @@ in
       sources."media-typer-0.3.0"
       (sources."memorystore-1.6.6" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -124725,15 +125315,14 @@ in
       sources."path-to-regexp-0.1.7"
       sources."pause-0.0.1"
       sources."prepend-http-2.0.0"
-      sources."process-nextick-args-2.0.1"
       sources."proxy-addr-2.0.7"
       sources."pseudomap-1.0.2"
       sources."pump-3.0.0"
-      sources."qs-6.7.0"
+      sources."qs-6.9.6"
       sources."random-bytes-1.0.0"
       sources."range-parser-1.2.1"
       sources."raven-js-3.27.2"
-      sources."raw-body-2.4.0"
+      sources."raw-body-2.4.2"
       sources."rc-1.2.8"
       sources."readable-stream-3.6.0"
       sources."registry-auth-token-4.2.1"
@@ -124752,24 +125341,32 @@ in
       })
       (sources."send-0.17.1" // {
         dependencies = [
+          sources."http-errors-1.7.3"
           sources."ms-2.1.1"
+          sources."setprototypeof-1.1.1"
+          sources."toidentifier-1.0.0"
         ];
       })
-      sources."serve-static-1.14.1"
-      sources."setprototypeof-1.1.1"
+      (sources."serve-static-1.14.2" // {
+        dependencies = [
+          sources."ms-2.1.3"
+          sources."send-0.17.2"
+        ];
+      })
+      sources."setprototypeof-1.2.0"
       sources."signals-1.0.0"
       sources."simple-swizzle-0.2.2"
       sources."snapsvg-0.5.1"
       (sources."socket.io-4.1.3" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
-      sources."socket.io-adapter-2.3.2"
+      sources."socket.io-adapter-2.3.3"
       (sources."socket.io-parser-4.0.4" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -124791,7 +125388,7 @@ in
       })
       sources."text-hex-1.0.0"
       sources."to-readable-stream-1.0.0"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."triple-beam-1.3.0"
       sources."type-is-1.6.18"
       sources."uid-safe-2.1.5"
@@ -124801,12 +125398,7 @@ in
       sources."utils-merge-1.0.1"
       sources."vary-1.1.2"
       sources."winston-3.3.3"
-      (sources."winston-transport-4.4.0" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."winston-transport-4.4.1"
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
       sources."ws-7.4.6"
@@ -124834,7 +125426,7 @@ in
       sha512 = "N+ENrder8z9zJQF9UM7K3/1LcfVW60omqeyaQsu6GN1BGdCgPm8gdHssn7WRD7vx+ABKc82IE1+pJyHOPkwe+w==";
     };
     dependencies = [
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/unist-2.0.6"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
@@ -124985,11 +125577,11 @@ in
       sha512 = "UuxW79x2n0bYBexa3vblI2o4CPhIJTBGvA0remuNm74RjkjMkDHMXDriCs5sYQ7jYyekvROmvmC9t/Pn0g0+6Q==";
     };
     dependencies = [
-      sources."@mapbox/node-pre-gyp-1.0.6"
+      sources."@mapbox/node-pre-gyp-1.0.8"
       sources."@types/estree-0.0.50"
       sources."abbrev-1.1.1"
       sources."agent-base-6.0.2"
-      sources."ansi-regex-3.0.0"
+      sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."aproba-2.0.0"
       sources."are-we-there-yet-2.0.0"
@@ -124997,14 +125589,7 @@ in
       sources."brace-expansion-1.1.11"
       sources."canvas-2.8.0"
       sources."chownr-2.0.0"
-      (sources."cliui-7.0.4" // {
-        dependencies = [
-          sources."ansi-regex-5.0.1"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.3"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
+      sources."cliui-7.0.4"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."color-support-1.1.3"
@@ -125029,7 +125614,7 @@ in
       sources."d3-time-2.1.1"
       sources."d3-time-format-3.0.0"
       sources."d3-timer-2.0.0"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decompress-response-4.2.1"
       sources."delaunator-4.0.1"
       sources."delegates-1.0.0"
@@ -125039,7 +125624,7 @@ in
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
-      sources."gauge-3.0.1"
+      sources."gauge-3.0.2"
       sources."get-caller-file-2.0.5"
       sources."glob-7.2.0"
       sources."has-1.0.3"
@@ -125050,7 +125635,7 @@ in
       sources."inherits-2.0.4"
       sources."internmap-1.0.1"
       sources."is-core-module-2.8.0"
-      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."lru-cache-6.0.0"
       (sources."make-dir-3.1.0" // {
         dependencies = [
@@ -125059,7 +125644,7 @@ in
       })
       sources."mimic-response-2.1.0"
       sources."minimatch-3.0.4"
-      sources."minipass-3.1.5"
+      sources."minipass-3.1.6"
       sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
@@ -125080,12 +125665,12 @@ in
       sources."safer-buffer-2.1.2"
       sources."semver-7.3.5"
       sources."set-blocking-2.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."simple-concat-1.0.1"
       sources."simple-get-3.1.0"
-      sources."string-width-2.1.1"
+      sources."string-width-4.2.3"
       sources."string_decoder-1.3.0"
-      sources."strip-ansi-4.0.0"
+      sources."strip-ansi-6.0.1"
       sources."tar-6.1.11"
       sources."topojson-client-3.1.0"
       sources."tr46-0.0.3"
@@ -125123,26 +125708,12 @@ in
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
       sources."wide-align-1.1.5"
-      (sources."wrap-ansi-7.0.0" // {
-        dependencies = [
-          sources."ansi-regex-5.0.1"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.3"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
+      sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
-      (sources."yargs-17.2.1" // {
-        dependencies = [
-          sources."ansi-regex-5.0.1"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.3"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
-      sources."yargs-parser-20.2.9"
+      sources."yargs-17.3.0"
+      sources."yargs-parser-21.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -125157,13 +125728,14 @@ in
   vega-lite = nodeEnv.buildNodePackage {
     name = "vega-lite";
     packageName = "vega-lite";
-    version = "5.1.1";
+    version = "5.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vega-lite/-/vega-lite-5.1.1.tgz";
-      sha512 = "V085gNkbgbmcVC/Q3dJjmIioxcDicxMHvH0FIKOPxdplzt+qU9xGIhQy7scj0tSMYnmAPCayB5oLkkQXFb6w1w==";
+      url = "https://registry.npmjs.org/vega-lite/-/vega-lite-5.2.0.tgz";
+      sha512 = "Yxcg8MvYfxHcG6BbkaKT0oVCIMIcE19UvqIsEwBmyd/7h2nzW7oRnID81T8UrY7hpDrIr6wa2JADOT2dhGNErw==";
     };
     dependencies = [
       sources."@types/clone-2.1.1"
+      sources."@types/estree-0.0.50"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."array-flat-polyfill-1.0.1"
@@ -125182,12 +125754,12 @@ in
       sources."string-width-4.2.3"
       sources."strip-ansi-6.0.1"
       sources."tslib-2.3.1"
-      sources."vega-event-selector-2.0.6"
-      sources."vega-expression-4.0.1"
-      sources."vega-util-1.16.1"
+      sources."vega-event-selector-3.0.0"
+      sources."vega-expression-5.0.0"
+      sources."vega-util-1.17.0"
       sources."wrap-ansi-7.0.0"
       sources."y18n-5.0.8"
-      sources."yargs-17.1.1"
+      sources."yargs-17.2.1"
       sources."yargs-parser-20.2.9"
     ];
     buildInputs = globalBuildInputs;
@@ -125211,7 +125783,7 @@ in
     dependencies = [
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@vercel/build-utils-2.12.2"
       sources."@vercel/go-1.2.3"
       sources."@vercel/node-1.12.1"
@@ -125286,9 +125858,9 @@ in
       sources."responselike-1.0.2"
       sources."semver-6.3.0"
       sources."semver-diff-3.1.1"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."source-map-0.6.1"
-      sources."source-map-support-0.5.20"
+      sources."source-map-support-0.5.21"
       sources."string-width-4.2.3"
       sources."strip-ansi-6.0.1"
       sources."strip-json-comments-2.0.1"
@@ -125384,7 +125956,7 @@ in
       sources."commander-2.20.3"
       sources."concat-map-0.0.1"
       sources."cross-spawn-7.0.3"
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."deep-is-0.1.4"
       sources."diff-4.0.2"
       sources."doctrine-3.0.0"
@@ -125473,7 +126045,7 @@ in
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
       sources."prelude-ls-1.2.1"
-      sources."prettier-2.4.1"
+      sources."prettier-2.5.1"
       sources."progress-2.0.3"
       sources."pug-error-2.0.0"
       sources."pug-lexer-5.0.1"
@@ -125498,9 +126070,9 @@ in
       sources."strip-ansi-6.0.1"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-6.7.3" // {
+      (sources."table-6.7.5" // {
         dependencies = [
-          sources."ajv-8.8.0"
+          sources."ajv-8.8.2"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -125516,7 +126088,7 @@ in
       sources."tsutils-2.29.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.20.2"
-      sources."typescript-4.4.4"
+      sources."typescript-4.5.4"
       sources."uri-js-4.4.1"
       sources."v8-compile-cache-2.3.0"
       (sources."vue-eslint-parser-7.11.0" // {
@@ -125633,7 +126205,7 @@ in
       sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-7.0.0"
       sources."vscode-languageserver-protocol-3.16.0"
-      sources."vscode-languageserver-textdocument-1.0.2"
+      sources."vscode-languageserver-textdocument-1.0.3"
       sources."vscode-languageserver-types-3.16.0"
       sources."vscode-nls-4.1.2"
       sources."vscode-uri-3.0.2"
@@ -125683,7 +126255,7 @@ in
           sources."vscode-languageserver-types-3.5.0"
         ];
       })
-      sources."vscode-languageserver-textdocument-1.0.2"
+      sources."vscode-languageserver-textdocument-1.0.3"
       sources."vscode-languageserver-types-3.16.0-next.2"
       sources."vscode-nls-2.0.2"
       sources."vscode-uri-1.0.8"
@@ -125701,29 +126273,30 @@ in
   vscode-langservers-extracted = nodeEnv.buildNodePackage {
     name = "vscode-langservers-extracted";
     packageName = "vscode-langservers-extracted";
-    version = "3.0.1";
+    version = "3.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vscode-langservers-extracted/-/vscode-langservers-extracted-3.0.1.tgz";
-      sha512 = "jKFt6vcLH6IZ3qdvcrPwfsUHBMfcMTw6q2EIXHgur0HTbLDReWRAMjdvTHUqjo2Jn38MxiGYTZDsF2RhEv5zpA==";
+      url = "https://registry.npmjs.org/vscode-langservers-extracted/-/vscode-langservers-extracted-3.0.2.tgz";
+      sha512 = "m5TP1YlERfMAhB8Ci8X06vOlPBeDrGruCOZ3c/mOnN9UlM7jztF1FC06xX0ftCYZd1JR5gD0EC3A/23ZUnC52A==";
     };
     dependencies = [
       sources."jsonc-parser-3.0.0"
-      sources."request-light-0.5.4"
-      sources."typescript-4.4.4"
-      sources."vscode-css-languageservice-5.1.8"
-      sources."vscode-html-languageservice-4.1.1"
-      sources."vscode-json-languageservice-4.1.10"
-      sources."vscode-jsonrpc-8.0.0-next.3"
-      sources."vscode-languageserver-8.0.0-next.3"
-      (sources."vscode-languageserver-protocol-3.17.0-next.9" // {
+      sources."request-light-0.5.5"
+      sources."typescript-4.5.4"
+      sources."vscode-css-languageservice-5.1.9"
+      sources."vscode-html-languageservice-4.2.1"
+      sources."vscode-json-languageservice-4.2.0-next.2"
+      sources."vscode-jsonrpc-8.0.0-next.4"
+      sources."vscode-languageserver-8.0.0-next.5"
+      (sources."vscode-languageserver-protocol-3.17.0-next.11" // {
         dependencies = [
-          sources."vscode-languageserver-types-3.17.0-next.4"
+          sources."vscode-languageserver-types-3.17.0-next.5"
         ];
       })
-      sources."vscode-languageserver-textdocument-1.0.2"
+      sources."vscode-languageserver-textdocument-1.0.3"
       sources."vscode-languageserver-types-3.16.0"
       sources."vscode-nls-5.0.0"
       sources."vscode-uri-3.0.2"
+      sources."yarn-1.22.17"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -125741,14 +126314,14 @@ in
     version = "1.6.8";
     src = ../../misc/vscode-extensions/vscode-lldb/build-deps;
     dependencies = [
-      sources."@discoveryjs/json-ext-0.5.5"
-      sources."@types/eslint-7.29.0"
-      sources."@types/eslint-scope-3.7.1"
+      sources."@discoveryjs/json-ext-0.5.6"
+      sources."@types/eslint-8.2.1"
+      sources."@types/eslint-scope-3.7.2"
       sources."@types/estree-0.0.50"
       sources."@types/json-schema-7.0.9"
       sources."@types/mocha-7.0.2"
       sources."@types/node-8.10.66"
-      sources."@types/vscode-1.62.0"
+      sources."@types/vscode-1.63.1"
       sources."@types/yauzl-2.9.2"
       sources."@ungap/promise-all-settled-1.1.2"
       sources."@webassemblyjs/ast-1.11.1"
@@ -125771,7 +126344,7 @@ in
       sources."@webpack-cli/serve-1.6.0"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
-      sources."acorn-8.5.0"
+      sources."acorn-8.6.0"
       sources."acorn-import-assertions-1.8.0"
       sources."ajv-6.12.6"
       sources."ajv-keywords-3.5.2"
@@ -125788,12 +126361,12 @@ in
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."browser-stdout-1.3.1"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."buffer-crc32-0.2.13"
       sources."buffer-from-1.1.2"
       sources."call-bind-1.0.2"
       sources."camelcase-6.2.1"
-      sources."caniuse-lite-1.0.30001280"
+      sources."caniuse-lite-1.0.30001287"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."supports-color-7.2.0"
@@ -125819,7 +126392,7 @@ in
       sources."concat-map-0.0.1"
       sources."core-util-is-1.0.3"
       sources."cross-spawn-7.0.3"
-      sources."css-select-4.1.3"
+      sources."css-select-4.2.0"
       sources."css-what-5.1.0"
       (sources."debug-4.3.1" // {
         dependencies = [
@@ -125831,9 +126404,9 @@ in
       sources."diff-5.0.0"
       sources."dom-serializer-1.3.2"
       sources."domelementtype-2.2.0"
-      sources."domhandler-4.2.2"
+      sources."domhandler-4.3.0"
       sources."domutils-2.8.0"
-      sources."electron-to-chromium-1.3.899"
+      sources."electron-to-chromium-1.4.21"
       sources."emoji-regex-8.0.0"
       sources."emojis-list-3.0.0"
       sources."enhanced-resolve-5.8.3"
@@ -125892,7 +126465,7 @@ in
       sources."isarray-0.0.1"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
-      sources."jest-worker-27.3.1"
+      sources."jest-worker-27.4.5"
       sources."js-yaml-4.0.0"
       sources."json-parse-better-errors-1.0.2"
       sources."json-schema-traverse-0.4.1"
@@ -125939,7 +126512,7 @@ in
       sources."normalize-path-3.0.0"
       sources."npm-run-path-4.0.1"
       sources."nth-check-2.0.1"
-      sources."object-inspect-1.11.0"
+      sources."object-inspect-1.11.1"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
       sources."os-homedir-1.0.2"
@@ -125969,7 +126542,7 @@ in
       sources."process-nextick-args-2.0.1"
       sources."prr-1.0.1"
       sources."punycode-2.1.1"
-      sources."qs-6.10.1"
+      sources."qs-6.10.2"
       sources."randombytes-2.1.0"
       sources."read-1.0.7"
       sources."readable-stream-1.0.34"
@@ -125987,9 +126560,9 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."source-map-0.6.1"
-      sources."source-map-support-0.5.20"
+      sources."source-map-support-0.5.21"
       sources."sprintf-js-1.0.3"
       sources."string-argv-0.3.1"
       sources."string-width-2.1.1"
@@ -126005,7 +126578,7 @@ in
           sources."source-map-0.7.3"
         ];
       })
-      (sources."terser-webpack-plugin-5.2.5" // {
+      (sources."terser-webpack-plugin-5.3.0" // {
         dependencies = [
           sources."serialize-javascript-6.0.0"
         ];
@@ -126022,9 +126595,9 @@ in
       sources."tslib-2.3.1"
       sources."tunnel-0.0.6"
       sources."typed-rest-client-1.8.6"
-      sources."typescript-4.4.4"
+      sources."typescript-4.5.4"
       sources."uc.micro-1.0.6"
-      sources."underscore-1.13.1"
+      sources."underscore-1.13.2"
       sources."uri-js-4.4.1"
       sources."url-join-1.1.0"
       sources."util-deprecate-1.0.2"
@@ -126039,10 +126612,10 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."vscode-debugadapter-testsupport-1.50.0"
-      sources."vscode-debugprotocol-1.50.1"
-      sources."watchpack-2.2.0"
-      sources."webpack-5.64.1"
+      sources."vscode-debugadapter-testsupport-1.51.0"
+      sources."vscode-debugprotocol-1.51.0"
+      sources."watchpack-2.3.1"
+      sources."webpack-5.65.0"
       (sources."webpack-cli-4.9.1" // {
         dependencies = [
           sources."commander-7.2.0"
@@ -126231,11 +126804,11 @@ in
       sources."isurl-1.0.0"
       sources."js-yaml-3.14.1"
       sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-2.4.0"
-      sources."jsprim-1.4.1"
+      sources."jsprim-1.4.2"
       sources."klaw-1.3.1"
       sources."lodash-4.17.21"
       sources."log-symbols-2.2.0"
@@ -126303,7 +126876,7 @@ in
       sources."safer-buffer-2.1.2"
       sources."seek-bzip-1.0.6"
       sources."semver-5.7.1"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."source-map-0.6.1"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
@@ -126340,7 +126913,7 @@ in
       sources."tslib-1.14.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uglify-js-3.14.3"
+      sources."uglify-js-3.14.5"
       sources."uid-0.0.2"
       sources."unbzip2-stream-1.4.3"
       sources."unyield-0.0.1"
@@ -126403,7 +126976,7 @@ in
       sources."@starptech/rehype-webparser-0.10.0"
       sources."@starptech/webparser-0.10.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/unist-2.0.6"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
@@ -126546,7 +127119,7 @@ in
       })
       sources."comma-separated-tokens-1.0.8"
       sources."commander-2.20.3"
-      sources."common-tags-1.8.1"
+      sources."common-tags-1.8.2"
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
       sources."concat-stream-1.6.2"
@@ -126593,7 +127166,7 @@ in
       (sources."eslint-5.16.0" // {
         dependencies = [
           sources."cross-spawn-6.0.5"
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ignore-4.0.6"
           sources."ms-2.1.2"
         ];
@@ -126601,7 +127174,7 @@ in
       (sources."eslint-plugin-vue-6.2.2" // {
         dependencies = [
           sources."acorn-7.4.1"
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."eslint-scope-5.1.1"
           sources."espree-6.2.1"
           sources."ms-2.1.2"
@@ -126815,7 +127388,7 @@ in
       sources."lodash.iteratee-4.7.0"
       sources."lodash.merge-4.6.2"
       sources."lodash.unescape-4.0.1"
-      sources."loglevel-1.7.1"
+      sources."loglevel-1.8.0"
       (sources."loglevel-colored-level-prefix-1.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -127037,7 +127610,7 @@ in
       sources."shebang-regex-1.0.0"
       sources."shellsubstitute-1.2.0"
       sources."sigmund-1.0.1"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-1.0.0"
       sources."slice-ansi-2.1.0"
       (sources."snapdragon-0.8.2" // {
@@ -127267,14 +127840,14 @@ in
       sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-5.3.0-next.10"
       sources."vscode-languageserver-protocol-3.16.0"
-      sources."vscode-languageserver-textdocument-1.0.2"
+      sources."vscode-languageserver-textdocument-1.0.3"
       sources."vscode-languageserver-types-3.16.0"
       sources."vscode-nls-5.0.0"
       sources."vscode-textbuffer-1.0.0"
       sources."vscode-uri-1.0.8"
       (sources."vue-eslint-parser-6.0.5" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -127328,13 +127901,13 @@ in
       sha512 = "slGcIXCA/j5d2uzQ7flA4/veF0P0eE+Om/Bw7uEO2LC9a3mVNdB+2bSR1CILMjvgyFy9Q9D6eseomQgp7UW5Dg==";
     };
     dependencies = [
-      sources."@babel/runtime-corejs3-7.16.3"
-      sources."@mapbox/node-pre-gyp-1.0.6"
+      sources."@babel/runtime-corejs3-7.16.5"
+      sources."@mapbox/node-pre-gyp-1.0.8"
       sources."@tootallnate/once-1.1.2"
       sources."@types/raf-3.4.0"
       sources."abab-2.0.5"
       sources."abbrev-1.1.1"
-      sources."acorn-8.5.0"
+      sources."acorn-8.6.0"
       (sources."acorn-globals-6.0.0" // {
         dependencies = [
           sources."acorn-7.4.1"
@@ -127342,7 +127915,7 @@ in
       })
       sources."acorn-walk-7.2.0"
       sources."agent-base-6.0.2"
-      sources."ansi-regex-3.0.0"
+      sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."aproba-2.0.0"
       sources."are-we-there-yet-2.0.0"
@@ -127356,21 +127929,14 @@ in
       sources."canvas-2.8.0"
       sources."canvg-3.0.7"
       sources."chownr-2.0.0"
-      (sources."cliui-7.0.4" // {
-        dependencies = [
-          sources."ansi-regex-5.0.1"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.3"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
+      sources."cliui-7.0.4"
       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."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
-      sources."core-js-pure-3.19.1"
+      sources."core-js-pure-3.20.0"
       sources."cssom-0.4.4"
       (sources."cssstyle-2.3.0" // {
         dependencies = [
@@ -127384,7 +127950,7 @@ in
           sources."whatwg-url-8.7.0"
         ];
       })
-      sources."debug-4.3.2"
+      sources."debug-4.3.3"
       sources."decimal.js-10.3.1"
       sources."decompress-response-4.2.1"
       sources."deep-is-0.1.4"
@@ -127407,7 +127973,7 @@ in
       sources."fs-extra-10.0.0"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
-      sources."gauge-3.0.1"
+      sources."gauge-3.0.2"
       sources."get-caller-file-2.0.5"
       sources."glob-7.2.0"
       sources."graceful-fs-4.2.8"
@@ -127418,7 +127984,7 @@ in
       sources."iconv-lite-0.4.24"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-potential-custom-element-name-1.0.1"
       (sources."jsdom-16.7.0" // {
         dependencies = [
@@ -127443,7 +128009,7 @@ in
       sources."mimic-response-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-3.1.5"
+      sources."minipass-3.1.6"
       sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
@@ -127474,14 +128040,14 @@ in
       sources."saxes-5.0.1"
       sources."semver-7.3.5"
       sources."set-blocking-2.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."simple-concat-1.0.1"
       sources."simple-get-3.1.0"
       sources."source-map-0.6.1"
       sources."stackblur-canvas-2.5.0"
-      sources."string-width-2.1.1"
+      sources."string-width-4.2.3"
       sources."string_decoder-1.3.0"
-      sources."strip-ansi-4.0.0"
+      sources."strip-ansi-6.0.1"
       sources."svg-pathdata-5.0.5"
       sources."svg2img-0.9.4"
       sources."symbol-tree-3.2.4"
@@ -127505,29 +128071,15 @@ in
       sources."whatwg-url-5.0.0"
       sources."wide-align-1.1.5"
       sources."word-wrap-1.2.3"
-      (sources."wrap-ansi-7.0.0" // {
-        dependencies = [
-          sources."ansi-regex-5.0.1"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.3"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
+      sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.5.5"
+      sources."ws-7.5.6"
       sources."xml-name-validator-3.0.0"
       sources."xmlchars-2.2.0"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
-      (sources."yargs-17.2.1" // {
-        dependencies = [
-          sources."ansi-regex-5.0.1"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.3"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
-      sources."yargs-parser-20.2.9"
+      sources."yargs-17.3.0"
+      sources."yargs-parser-21.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -127542,13 +128094,13 @@ in
   web-ext = nodeEnv.buildNodePackage {
     name = "web-ext";
     packageName = "web-ext";
-    version = "6.5.0";
+    version = "6.6.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/web-ext/-/web-ext-6.5.0.tgz";
-      sha512 = "71DE73YkxKEyiy1O5Ei5Uy1ZCT0tOPriPWIkH3g+mpnd52Gr1u2buexpq2upATekhc1Mu87d9EmRqXg2Kqhszw==";
+      url = "https://registry.npmjs.org/web-ext/-/web-ext-6.6.0.tgz";
+      sha512 = "ja9kuCleKQLesUEx+tEl6ByxwVF1CVCjSc3V0ag78S40NWDRTBJhXwc4c+qlyZ0h/XefXc3waxnsq1izUBe/Nw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.12.11"
+      sources."@babel/code-frame-7.16.0"
       sources."@babel/helper-validator-identifier-7.15.7"
       (sources."@babel/highlight-7.16.0" // {
         dependencies = [
@@ -127565,36 +128117,40 @@ in
       sources."@devicefarmer/adbkit-2.11.3"
       sources."@devicefarmer/adbkit-logcat-1.1.0"
       sources."@devicefarmer/adbkit-monkey-1.0.1"
-      (sources."@eslint/eslintrc-0.4.3" // {
+      (sources."@eslint/eslintrc-1.0.5" // {
         dependencies = [
-          sources."debug-4.3.2"
-          sources."eslint-visitor-keys-1.3.0"
-          sources."espree-7.3.1"
+          sources."debug-4.3.3"
+          sources."espree-9.2.0"
           sources."ms-2.1.2"
         ];
       })
-      (sources."@humanwhocodes/config-array-0.5.0" // {
+      (sources."@humanwhocodes/config-array-0.6.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
       sources."@humanwhocodes/object-schema-1.2.1"
-      sources."@mdn/browser-compat-data-4.0.5"
+      sources."@mdn/browser-compat-data-4.0.11"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/yauzl-2.9.2"
-      sources."acorn-7.4.1"
+      sources."acorn-8.6.0"
       sources."acorn-jsx-5.3.2"
-      (sources."addons-linter-3.20.0" // {
+      (sources."addons-linter-4.4.0" // {
         dependencies = [
+          sources."source-map-support-0.5.21"
           sources."yargs-17.2.1"
         ];
       })
       sources."addons-moz-compare-1.2.0"
-      sources."addons-scanner-utils-5.0.0"
+      (sources."addons-scanner-utils-6.1.0" // {
+        dependencies = [
+          sources."common-tags-1.8.0"
+        ];
+      })
       sources."adm-zip-0.5.9"
       sources."ajv-6.12.6"
       sources."ajv-merge-patch-4.1.0"
@@ -127603,16 +128159,12 @@ in
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-4.3.0"
       sources."any-promise-1.3.0"
-      sources."argparse-1.0.10"
+      sources."argparse-2.0.1"
       sources."array-differ-3.0.0"
-      sources."array-filter-0.0.1"
-      sources."array-map-0.0.0"
-      sources."array-reduce-0.0.0"
       sources."array-union-2.1.0"
       sources."arrify-2.0.1"
       sources."asn1-0.2.6"
       sources."assert-plus-1.0.0"
-      sources."astral-regex-2.0.0"
       sources."async-0.2.10"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
@@ -127641,7 +128193,7 @@ in
       sources."chalk-4.1.2"
       sources."cheerio-1.0.0-rc.10"
       sources."cheerio-select-1.5.0"
-      sources."chrome-launcher-0.14.0"
+      sources."chrome-launcher-0.15.0"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
       (sources."cliui-7.0.4" // {
@@ -127657,15 +128209,21 @@ in
       sources."columnify-1.5.4"
       sources."combined-stream-1.0.8"
       sources."commander-2.20.3"
-      sources."common-tags-1.8.0"
+      sources."common-tags-1.8.2"
       sources."concat-map-0.0.1"
-      sources."concat-stream-1.6.2"
+      (sources."concat-stream-1.6.2" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
       sources."configstore-5.0.1"
       sources."core-js-3.18.0"
-      sources."core-util-is-1.0.2"
+      sources."core-util-is-1.0.3"
       sources."cross-spawn-7.0.3"
       sources."crypto-random-string-2.0.0"
-      sources."css-select-4.1.3"
+      sources."css-select-4.2.0"
       sources."css-what-5.1.0"
       sources."dashdash-1.14.1"
       sources."debounce-1.2.0"
@@ -127681,20 +128239,15 @@ in
       sources."defer-to-connect-1.1.3"
       sources."define-properties-1.1.3"
       sources."delayed-stream-1.0.0"
-      (sources."dispensary-0.62.0" // {
-        dependencies = [
-          sources."async-3.2.2"
-          sources."pino-6.11.3"
-        ];
-      })
       sources."doctrine-3.0.0"
       sources."dom-serializer-1.3.2"
       sources."domelementtype-2.2.0"
-      sources."domhandler-4.2.2"
+      sources."domhandler-4.3.0"
       sources."domutils-2.8.0"
       sources."dot-prop-5.3.0"
       sources."dtrace-provider-0.8.8"
       sources."duplexer3-0.1.4"
+      sources."duplexify-4.1.2"
       sources."ecc-jsbn-0.1.2"
       sources."ecdsa-sig-formatter-1.0.11"
       sources."emoji-regex-8.0.0"
@@ -127707,45 +128260,27 @@ in
       sources."escalade-3.1.1"
       sources."escape-goat-2.1.1"
       sources."escape-string-regexp-4.0.0"
-      (sources."eslint-7.32.0" // {
+      (sources."eslint-8.3.0" // {
         dependencies = [
           sources."ansi-regex-5.0.1"
-          sources."debug-4.3.2"
-          sources."eslint-visitor-keys-2.1.0"
-          (sources."espree-7.3.1" // {
-            dependencies = [
-              sources."eslint-visitor-keys-1.3.0"
-            ];
-          })
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
           sources."strip-ansi-6.0.1"
         ];
       })
-      sources."eslint-plugin-no-unsanitized-3.1.5"
-      sources."eslint-scope-5.1.1"
-      (sources."eslint-utils-2.1.0" // {
-        dependencies = [
-          sources."eslint-visitor-keys-1.3.0"
-        ];
-      })
-      sources."eslint-visitor-keys-3.0.0"
-      (sources."espree-9.0.0" // {
+      sources."eslint-plugin-no-unsanitized-4.0.0"
+      sources."eslint-scope-7.1.0"
+      (sources."eslint-utils-3.0.0" // {
         dependencies = [
-          sources."acorn-8.5.0"
+          sources."eslint-visitor-keys-2.1.0"
         ];
       })
+      sources."eslint-visitor-keys-3.1.0"
+      sources."espree-9.1.0"
       sources."esprima-4.0.1"
-      (sources."esquery-1.4.0" // {
-        dependencies = [
-          sources."estraverse-5.3.0"
-        ];
-      })
-      (sources."esrecurse-4.3.0" // {
-        dependencies = [
-          sources."estraverse-5.3.0"
-        ];
-      })
-      sources."estraverse-4.3.0"
+      sources."esquery-1.4.0"
+      sources."esrecurse-4.3.0"
+      sources."estraverse-5.3.0"
       sources."esutils-2.0.3"
       sources."event-to-promise-0.8.0"
       sources."execa-4.1.0"
@@ -127760,18 +128295,16 @@ in
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."fast-redact-3.0.2"
-      sources."fast-safe-stringify-2.1.1"
       sources."fastify-warning-0.2.0"
       sources."fd-slicer-1.1.0"
       sources."file-entry-cache-6.0.1"
-      (sources."firefox-profile-4.2.1" // {
+      (sources."firefox-profile-4.2.2" // {
         dependencies = [
           sources."fs-extra-9.0.1"
         ];
       })
       sources."first-chunk-stream-3.0.0"
       sources."flat-cache-3.0.4"
-      sources."flatstr-1.0.12"
       sources."flatted-3.2.4"
       sources."fluent-syntax-0.13.0"
       sources."forever-agent-0.6.1"
@@ -127784,7 +128317,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
-      (sources."fx-runner-1.1.0" // {
+      (sources."fx-runner-1.2.0" // {
         dependencies = [
           sources."commander-2.9.0"
           sources."isexe-1.1.2"
@@ -127796,7 +128329,7 @@ in
       sources."get-stream-5.2.0"
       sources."getpass-0.1.7"
       sources."glob-7.2.0"
-      sources."glob-parent-5.1.2"
+      sources."glob-parent-6.0.2"
       sources."glob-to-regexp-0.4.1"
       sources."global-dirs-3.0.0"
       sources."globals-13.12.0"
@@ -127855,12 +128388,12 @@ in
       sources."isstream-0.1.2"
       sources."jed-1.1.1"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.14.1"
+      sources."js-yaml-4.1.0"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
       sources."json-merge-patch-0.2.3"
       sources."json-parse-even-better-errors-2.3.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."json-stringify-safe-5.0.1"
@@ -127869,15 +128402,20 @@ in
           sources."universalify-2.0.0"
         ];
       })
-      sources."jsonify-0.0.0"
       (sources."jsonwebtoken-8.5.1" // {
         dependencies = [
           sources."ms-2.1.3"
           sources."semver-5.7.1"
         ];
       })
-      sources."jsprim-1.4.1"
-      sources."jszip-3.7.1"
+      sources."jsprim-1.4.2"
+      (sources."jszip-3.7.1" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
       sources."jwa-1.4.1"
       sources."jws-3.2.2"
       sources."keyv-3.1.0"
@@ -127886,7 +128424,7 @@ in
       sources."levn-0.4.1"
       sources."lie-3.3.0"
       sources."lighthouse-logger-1.3.0"
-      sources."lines-and-columns-1.1.6"
+      sources."lines-and-columns-1.2.4"
       sources."lodash.includes-4.3.0"
       sources."lodash.isboolean-3.0.3"
       sources."lodash.isinteger-4.0.4"
@@ -127895,7 +128433,6 @@ in
       sources."lodash.isstring-4.0.1"
       sources."lodash.merge-4.6.2"
       sources."lodash.once-4.1.1"
-      sources."lodash.truncate-4.4.2"
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-6.0.0"
       (sources."make-dir-3.1.0" // {
@@ -127928,14 +128465,9 @@ in
       sources."nan-2.15.0"
       sources."nanoid-3.1.30"
       sources."natural-compare-1.4.0"
-      sources."natural-compare-lite-1.4.0"
       sources."ncp-2.0.0"
       sources."node-forge-0.10.0"
-      (sources."node-notifier-9.0.0" // {
-        dependencies = [
-          sources."uuid-8.3.2"
-        ];
-      })
+      sources."node-notifier-9.0.0"
       sources."normalize-url-4.5.1"
       sources."npm-run-path-4.0.1"
       sources."nth-check-2.0.1"
@@ -127943,6 +128475,7 @@ in
       sources."object-assign-4.1.1"
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
+      sources."on-exit-leak-free-0.2.0"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
       sources."open-7.4.2"
@@ -127966,10 +128499,11 @@ in
       sources."path-key-3.1.1"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
-      sources."picocolors-0.2.1"
-      sources."pino-6.13.3"
-      sources."pino-std-serializers-3.2.0"
-      sources."postcss-8.3.9"
+      sources."picocolors-1.0.0"
+      sources."pino-7.4.0"
+      sources."pino-abstract-transport-0.5.0"
+      sources."pino-std-serializers-4.0.0"
+      sources."postcss-8.3.11"
       sources."prelude-ls-1.2.1"
       sources."prepend-http-2.0.0"
       sources."process-nextick-args-2.0.1"
@@ -127987,11 +128521,8 @@ in
           sources."strip-json-comments-2.0.1"
         ];
       })
-      (sources."readable-stream-2.3.7" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
+      sources."readable-stream-3.6.0"
+      sources."real-require-0.1.0"
       sources."regenerator-runtime-0.13.9"
       sources."regexp.prototype.flags-1.3.1"
       sources."regexpp-3.2.0"
@@ -128008,14 +128539,18 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."request-2.88.2"
+      (sources."request-2.88.2" // {
+        dependencies = [
+          sources."uuid-3.4.0"
+        ];
+      })
       sources."require-directory-2.1.1"
-      sources."require-from-string-2.0.2"
       sources."resolve-from-4.0.0"
       sources."responselike-1.0.2"
       sources."rimraf-3.0.2"
       sources."safe-buffer-5.2.1"
       sources."safe-json-stringify-1.2.0"
+      sources."safe-stable-stringify-2.3.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
       sources."semver-7.3.5"
@@ -128028,19 +128563,23 @@ in
       sources."sha.js-2.4.11"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."shell-quote-1.6.1"
+      sources."shell-quote-1.7.3"
       sources."shellwords-0.1.1"
-      sources."sign-addon-3.9.0"
-      sources."signal-exit-3.0.5"
-      sources."slice-ansi-4.0.0"
-      sources."sonic-boom-1.4.1"
+      (sources."sign-addon-3.9.0" // {
+        dependencies = [
+          sources."common-tags-1.8.0"
+        ];
+      })
+      sources."signal-exit-3.0.6"
+      sources."sonic-boom-2.4.1"
       sources."source-map-0.6.1"
       sources."source-map-js-0.6.2"
       sources."source-map-support-0.5.20"
       sources."spawn-sync-1.0.15"
       sources."split-0.3.3"
-      sources."sprintf-js-1.0.3"
+      sources."split2-4.1.0"
       sources."sshpk-1.16.1"
+      sources."stream-shift-1.0.1"
       sources."stream-to-array-2.3.0"
       sources."stream-to-promise-3.0.0"
       (sources."string-width-4.2.3" // {
@@ -128049,11 +128588,7 @@ in
           sources."strip-ansi-6.0.1"
         ];
       })
-      (sources."string_decoder-1.1.1" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
+      sources."string_decoder-1.3.0"
       sources."strip-ansi-3.0.1"
       sources."strip-bom-4.0.0"
       sources."strip-bom-buf-2.0.0"
@@ -128061,17 +128596,10 @@ in
       sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-7.2.0"
-      (sources."table-6.7.3" // {
-        dependencies = [
-          sources."ajv-8.8.0"
-          sources."ansi-regex-5.0.1"
-          sources."json-schema-traverse-1.0.0"
-          sources."strip-ansi-6.0.1"
-        ];
-      })
       sources."text-table-0.2.0"
       sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
+      sources."thread-stream-0.13.0"
       sources."through-2.3.8"
       sources."tmp-0.2.1"
       sources."to-readable-stream-1.0.0"
@@ -128092,9 +128620,13 @@ in
       sources."uri-js-4.4.1"
       sources."url-parse-lax-3.0.0"
       sources."util-deprecate-1.0.2"
-      sources."uuid-3.4.0"
+      sources."uuid-8.3.2"
       sources."v8-compile-cache-2.3.0"
-      sources."verror-1.10.0"
+      (sources."verror-1.10.0" // {
+        dependencies = [
+          sources."core-util-is-1.0.2"
+        ];
+      })
       sources."watchpack-2.1.1"
       sources."wcwidth-1.0.1"
       sources."when-3.7.7"
@@ -128138,17 +128670,17 @@ in
   webpack = nodeEnv.buildNodePackage {
     name = "webpack";
     packageName = "webpack";
-    version = "5.64.1";
+    version = "5.65.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack/-/webpack-5.64.1.tgz";
-      sha512 = "b4FHmRgaaAjP+aVOVz41a9Qa5SmkUPQ+u8FntTQ1roPHahSComB6rXnLwc976VhUY4CqTaLu5mCswuHiNhOfVw==";
+      url = "https://registry.npmjs.org/webpack/-/webpack-5.65.0.tgz";
+      sha512 = "Q5or2o6EKs7+oKmJo7LaqZaMOlDWQse9Tm5l1WAfU/ujLGN5Pb0SqGeVkN/4bpPmEqEP5RnVhiqsOtWtUVwGRw==";
     };
     dependencies = [
-      sources."@types/eslint-7.29.0"
-      sources."@types/eslint-scope-3.7.1"
+      sources."@types/eslint-8.2.1"
+      sources."@types/eslint-scope-3.7.2"
       sources."@types/estree-0.0.50"
       sources."@types/json-schema-7.0.9"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@webassemblyjs/ast-1.11.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.1"
       sources."@webassemblyjs/helper-api-error-1.11.1"
@@ -128166,16 +128698,16 @@ in
       sources."@webassemblyjs/wast-printer-1.11.1"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
-      sources."acorn-8.5.0"
+      sources."acorn-8.6.0"
       sources."acorn-import-assertions-1.8.0"
       sources."ajv-6.12.6"
       sources."ajv-keywords-3.5.2"
-      sources."browserslist-4.18.1"
+      sources."browserslist-4.19.1"
       sources."buffer-from-1.1.2"
-      sources."caniuse-lite-1.0.30001280"
+      sources."caniuse-lite-1.0.30001287"
       sources."chrome-trace-event-1.0.3"
       sources."commander-2.20.3"
-      sources."electron-to-chromium-1.3.899"
+      sources."electron-to-chromium-1.4.21"
       sources."enhanced-resolve-5.8.3"
       sources."es-module-lexer-0.9.3"
       sources."escalade-3.1.1"
@@ -128192,7 +128724,7 @@ in
       sources."glob-to-regexp-0.4.1"
       sources."graceful-fs-4.2.8"
       sources."has-flag-4.0.0"
-      sources."jest-worker-27.3.1"
+      sources."jest-worker-27.4.5"
       sources."json-parse-better-errors-1.0.2"
       sources."json-schema-traverse-0.4.1"
       sources."loader-runner-4.2.0"
@@ -128208,7 +128740,7 @@ in
       sources."schema-utils-3.1.1"
       sources."serialize-javascript-6.0.0"
       sources."source-map-0.6.1"
-      sources."source-map-support-0.5.20"
+      sources."source-map-support-0.5.21"
       sources."supports-color-8.1.1"
       sources."tapable-2.2.1"
       (sources."terser-5.10.0" // {
@@ -128216,9 +128748,9 @@ in
           sources."source-map-0.7.3"
         ];
       })
-      sources."terser-webpack-plugin-5.2.5"
+      sources."terser-webpack-plugin-5.3.0"
       sources."uri-js-4.4.1"
-      sources."watchpack-2.2.0"
+      sources."watchpack-2.3.1"
       sources."webpack-sources-3.2.2"
     ];
     buildInputs = globalBuildInputs;
@@ -128240,7 +128772,7 @@ in
       sha512 = "JYRFVuyFpzDxMDB+v/nanUdQYcZtqFPGzmlW4s+UkPMFhSpfRNmf1z4AwYcHJVdvEFAM7FFCQdNTpsBYhDLusQ==";
     };
     dependencies = [
-      sources."@discoveryjs/json-ext-0.5.5"
+      sources."@discoveryjs/json-ext-0.5.6"
       sources."@webpack-cli/configtest-1.1.0"
       sources."@webpack-cli/info-1.4.0"
       sources."@webpack-cli/serve-1.6.0"
@@ -128283,7 +128815,7 @@ in
       sources."shallow-clone-3.0.1"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."strip-final-newline-2.0.0"
       sources."webpack-merge-5.8.0"
       sources."which-2.0.2"
@@ -128302,23 +128834,24 @@ in
   webpack-dev-server = nodeEnv.buildNodePackage {
     name = "webpack-dev-server";
     packageName = "webpack-dev-server";
-    version = "4.5.0";
+    version = "4.6.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.5.0.tgz";
-      sha512 = "Ss4WptsUjYa+3hPI4iYZYEc8FrtnfkaPrm5WTjk9ux5kiCS718836srs0ppKMHRaCHP5mQ6g4JZGcfDdGbCjpQ==";
+      url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.6.0.tgz";
+      sha512 = "oojcBIKvx3Ya7qs1/AVWHDgmP1Xml8rGsEBnSobxU/UJSX1xP1GPM3MwsAnDzvqcVmVki8tV7lbcsjEjk0PtYg==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/http-proxy-1.17.7"
+      sources."@types/http-proxy-1.17.8"
       sources."@types/json-schema-7.0.9"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."@types/retry-0.12.1"
       sources."accepts-1.3.7"
       sources."aggregate-error-3.1.0"
-      sources."ajv-6.12.6"
-      sources."ajv-keywords-3.5.2"
+      sources."ajv-8.8.2"
+      sources."ajv-formats-2.1.1"
+      sources."ajv-keywords-5.1.0"
       sources."ansi-html-community-0.0.8"
       sources."ansi-regex-6.0.1"
       sources."anymatch-3.1.2"
@@ -128387,12 +128920,11 @@ in
       })
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.2.7"
-      sources."fast-json-stable-stringify-2.1.0"
       sources."fastq-1.13.0"
       sources."faye-websocket-0.11.4"
       sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
-      sources."follow-redirects-1.14.5"
+      sources."follow-redirects-1.14.6"
       sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."fs-monkey-1.0.3"
@@ -128422,7 +128954,7 @@ in
           sources."inherits-2.0.3"
         ];
       })
-      sources."http-parser-js-0.5.3"
+      sources."http-parser-js-0.5.5"
       sources."http-proxy-1.18.1"
       sources."http-proxy-middleware-2.0.1"
       sources."human-signals-2.1.0"
@@ -128431,13 +128963,7 @@ in
       sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      (sources."internal-ip-6.2.0" // {
-        dependencies = [
-          sources."ipaddr.js-1.9.1"
-        ];
-      })
       sources."ip-1.1.5"
-      sources."ip-regex-4.3.0"
       sources."ipaddr.js-2.0.1"
       sources."is-arguments-1.1.1"
       sources."is-binary-path-2.1.0"
@@ -128445,7 +128971,6 @@ in
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
-      sources."is-ip-3.1.0"
       sources."is-number-7.0.0"
       sources."is-path-cwd-2.2.0"
       sources."is-path-inside-3.0.3"
@@ -128455,10 +128980,10 @@ in
       sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
-      sources."json-schema-traverse-0.4.1"
+      sources."json-schema-traverse-1.0.0"
       sources."lodash-4.17.21"
       sources."media-typer-0.3.0"
-      sources."memfs-3.3.0"
+      sources."memfs-3.4.0"
       sources."merge-descriptors-1.0.1"
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
@@ -128487,11 +129012,8 @@ in
       sources."once-1.4.0"
       sources."onetime-5.1.2"
       sources."open-8.4.0"
-      sources."p-event-4.2.0"
-      sources."p-finally-1.0.0"
       sources."p-map-4.0.0"
       sources."p-retry-4.6.1"
-      sources."p-timeout-3.2.0"
       sources."parseurl-1.3.3"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
@@ -128523,6 +129045,7 @@ in
       sources."readable-stream-3.6.0"
       sources."readdirp-3.6.0"
       sources."regexp.prototype.flags-1.3.1"
+      sources."require-from-string-2.0.2"
       sources."requires-port-1.0.0"
       sources."retry-0.13.1"
       sources."reusify-1.0.4"
@@ -128530,7 +129053,7 @@ in
       sources."run-parallel-1.2.0"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."schema-utils-3.1.1"
+      sources."schema-utils-4.0.0"
       sources."select-hose-2.0.0"
       sources."selfsigned-1.10.11"
       (sources."send-0.17.1" // {
@@ -128549,18 +129072,18 @@ in
       sources."setprototypeof-1.1.1"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-3.0.0"
-      sources."sockjs-0.3.21"
+      sources."sockjs-0.3.24"
       (sources."spdy-4.0.2" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
       (sources."spdy-transport-3.0.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -128585,15 +129108,15 @@ in
       })
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
-      sources."uuid-3.4.0"
+      sources."uuid-8.3.2"
       sources."vary-1.1.2"
       sources."wbuf-1.7.3"
-      sources."webpack-dev-middleware-5.2.1"
+      sources."webpack-dev-middleware-5.3.0"
       sources."websocket-driver-0.7.4"
       sources."websocket-extensions-0.1.4"
       sources."which-2.0.2"
       sources."wrappy-1.0.2"
-      sources."ws-8.2.3"
+      sources."ws-8.3.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -128608,19 +129131,20 @@ in
   copy-webpack-plugin = nodeEnv.buildNodePackage {
     name = "copy-webpack-plugin";
     packageName = "copy-webpack-plugin";
-    version = "9.1.0";
+    version = "10.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-9.1.0.tgz";
-      sha512 = "rxnR7PaGigJzhqETHGmAcxKnLZSR5u1Y3/bcIv/1FnqXedcL/E2ewK7ZCNrArJKCiSv8yVXhTqetJh8inDvfsA==";
+      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.0.tgz";
+      sha512 = "my6iXII95c78w14HzYCNya5TlJYa44lOppAge5GSTMM1SyDxNsVGCJvhP4/ld6snm8lzjn3XOonMZD6s1L86Og==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
       sources."@types/json-schema-7.0.9"
-      sources."ajv-6.12.6"
-      sources."ajv-keywords-3.5.2"
-      sources."array-union-2.1.0"
+      sources."ajv-8.8.2"
+      sources."ajv-formats-2.1.1"
+      sources."ajv-keywords-5.1.0"
+      sources."array-union-3.0.1"
       sources."braces-3.0.2"
       sources."dir-glob-3.0.1"
       sources."fast-deep-equal-3.1.3"
@@ -128629,16 +129153,15 @@ in
           sources."glob-parent-5.1.2"
         ];
       })
-      sources."fast-json-stable-stringify-2.1.0"
       sources."fastq-1.13.0"
       sources."fill-range-7.0.1"
       sources."glob-parent-6.0.2"
-      sources."globby-11.0.4"
+      sources."globby-12.0.2"
       sources."ignore-5.1.9"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
       sources."is-number-7.0.0"
-      sources."json-schema-traverse-0.4.1"
+      sources."json-schema-traverse-1.0.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.4"
       sources."normalize-path-3.0.0"
@@ -128647,12 +129170,13 @@ in
       sources."punycode-2.1.1"
       sources."queue-microtask-1.2.3"
       sources."randombytes-2.1.0"
+      sources."require-from-string-2.0.2"
       sources."reusify-1.0.4"
       sources."run-parallel-1.2.0"
       sources."safe-buffer-5.2.1"
-      sources."schema-utils-3.1.1"
+      sources."schema-utils-4.0.0"
       sources."serialize-javascript-6.0.0"
-      sources."slash-3.0.0"
+      sources."slash-4.0.0"
       sources."to-regex-range-5.0.1"
       sources."uri-js-4.4.1"
     ];
@@ -128687,7 +129211,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-16.11.7"
+      sources."@types/node-17.0.0"
       sources."addr-to-ip-port-1.5.4"
       sources."airplay-js-0.3.0"
       sources."ansi-regex-5.0.1"
@@ -128700,26 +129224,26 @@ in
       sources."bitfield-4.0.0"
       (sources."bittorrent-dht-10.0.2" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
       (sources."bittorrent-lsd-1.1.1" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
       sources."bittorrent-peerid-1.3.4"
       (sources."bittorrent-protocol-3.4.3" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
       (sources."bittorrent-tracker-9.18.3" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."decompress-response-6.0.0"
           sources."mimic-response-3.1.0"
           sources."ms-2.1.2"
@@ -128741,7 +129265,7 @@ in
       sources."cache-chunk-store-3.2.2"
       (sources."castv2-0.1.10" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -128761,7 +129285,7 @@ in
       sources."clone-2.1.2"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."common-tags-1.8.1"
+      sources."common-tags-1.8.2"
       sources."compact2string-1.4.1"
       sources."concat-map-0.0.1"
       (sources."concat-stream-1.6.2" // {
@@ -128840,7 +129364,7 @@ in
       sources."lru-3.1.0"
       (sources."lt_donthave-1.0.1" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -128907,7 +129431,7 @@ in
       sources."record-cache-1.1.1"
       (sources."render-media-4.1.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -128924,14 +129448,14 @@ in
       sources."simple-get-2.8.1"
       (sources."simple-peer-9.11.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
       sources."simple-sha1-3.1.0"
       (sources."simple-websocket-9.1.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -128943,7 +129467,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.11.3"
+      sources."streamx-2.12.0"
       sources."string-width-4.2.3"
       sources."string2compact-1.3.2"
       sources."string_decoder-1.3.0"
@@ -128956,7 +129480,7 @@ in
       sources."to-arraybuffer-1.0.1"
       (sources."torrent-discovery-9.4.7" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -128971,7 +129495,7 @@ in
       sources."url-join-4.0.1"
       (sources."ut_metadata-3.5.2" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -128983,7 +129507,7 @@ in
       sources."vlc-command-1.2.0"
       (sources."webtorrent-1.5.8" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."decompress-response-6.0.0"
           sources."mimic-response-3.1.0"
           sources."ms-2.1.2"
@@ -128993,13 +129517,13 @@ in
       sources."winreg-1.2.4"
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.5.5"
+      sources."ws-7.5.6"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
       sources."xmldom-0.1.31"
       sources."y18n-5.0.8"
-      sources."yargs-17.2.1"
-      sources."yargs-parser-20.2.9"
+      sources."yargs-17.3.0"
+      sources."yargs-parser-21.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -129059,19 +129583,19 @@ in
   yaml-language-server = nodeEnv.buildNodePackage {
     name = "yaml-language-server";
     packageName = "yaml-language-server";
-    version = "1.2.0";
+    version = "1.2.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-1.2.0.tgz";
-      sha512 = "ZsQ2uONwleQbFJFdKWBicHmM21jxkzfLI3gLmr7qKBnnRI3ZG4r3gsGbMPASnKTBLBW3l+e8c7KfzS7H3iAQMQ==";
+      url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-1.2.2.tgz";
+      sha512 = "wjMlqjhg6hNMT8EgYYkfUaM0aXwjWSQDmPO18doWLxIXG7LGBuzb+Vm/MjLrP9LPblSEhE2WWHQFfGW+Odb7vw==";
     };
     dependencies = [
       sources."jsonc-parser-3.0.0"
-      sources."request-light-0.5.4"
+      sources."request-light-0.5.5"
       sources."vscode-json-languageservice-4.1.10"
       sources."vscode-jsonrpc-6.0.0"
       sources."vscode-languageserver-7.0.0"
       sources."vscode-languageserver-protocol-3.16.0"
-      sources."vscode-languageserver-textdocument-1.0.2"
+      sources."vscode-languageserver-textdocument-1.0.3"
       sources."vscode-languageserver-types-3.16.0"
       sources."vscode-nls-5.0.0"
       sources."vscode-uri-3.0.2"
@@ -129174,19 +129698,19 @@ in
       sha512 = "0V5CpR62BY1EOevIxXq5BL84YJeIunEzRsFlqb00tc7D77I51/0bvgdGRZhEwhNI2rFxKZ1i77eoisT56gfMTQ==";
     };
     dependencies = [
-      sources."@babel/runtime-7.16.3"
+      sources."@babel/runtime-7.16.5"
       sources."@gar/promisify-1.1.2"
       sources."@isaacs/string-locale-compare-1.1.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      (sources."@npmcli/arborist-4.0.4" // {
+      (sources."@npmcli/arborist-4.1.1" // {
         dependencies = [
           sources."mkdirp-1.0.4"
           sources."semver-7.3.5"
         ];
       })
-      (sources."@npmcli/fs-1.0.0" // {
+      (sources."@npmcli/fs-1.1.0" // {
         dependencies = [
           sources."semver-7.3.5"
         ];
@@ -129224,13 +129748,13 @@ in
       sources."abbrev-1.1.1"
       (sources."agent-base-6.0.2" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
       (sources."agentkeepalive-4.1.4" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -129241,7 +129765,7 @@ in
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
-      sources."aproba-1.2.0"
+      sources."aproba-2.0.0"
       sources."are-we-there-yet-1.1.7"
       (sources."argparse-1.0.10" // {
         dependencies = [
@@ -129311,7 +129835,7 @@ in
       sources."cli-cursor-2.1.0"
       sources."cli-list-0.2.0"
       sources."cli-spinners-2.6.1"
-      sources."cli-table-0.3.6"
+      sources."cli-table-0.3.11"
       sources."cli-width-2.2.1"
       sources."clone-1.0.4"
       sources."clone-buffer-1.0.0"
@@ -129335,7 +129859,7 @@ in
       sources."config-chain-1.1.13"
       sources."configstore-3.1.5"
       sources."console-control-strings-1.1.0"
-      sources."core-js-3.19.1"
+      sources."core-js-3.20.0"
       sources."core-util-is-1.0.3"
       sources."create-error-class-3.0.2"
       sources."cross-spawn-6.0.5"
@@ -129445,14 +129969,14 @@ in
       sources."http-cache-semantics-3.8.1"
       (sources."http-proxy-agent-4.0.1" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
       sources."http-signature-1.2.0"
       (sources."https-proxy-agent-5.0.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -129522,14 +130046,14 @@ in
       sources."json-buffer-3.0.0"
       sources."json-parse-better-errors-1.0.2"
       sources."json-parse-even-better-errors-2.3.1"
-      sources."json-schema-0.2.3"
+      sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-nice-1.1.4"
       sources."json-stringify-safe-5.0.1"
       sources."jsonparse-1.3.1"
-      sources."jsprim-1.4.1"
-      sources."just-diff-3.1.1"
-      sources."just-diff-apply-3.1.2"
+      sources."jsprim-1.4.2"
+      sources."just-diff-5.0.1"
+      sources."just-diff-apply-4.0.1"
       sources."keyv-3.0.0"
       (sources."latest-version-3.1.0" // {
         dependencies = [
@@ -129595,7 +130119,7 @@ in
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-3.1.5"
+      sources."minipass-3.1.6"
       sources."minipass-collect-1.0.2"
       sources."minipass-fetch-1.4.1"
       sources."minipass-flush-1.0.5"
@@ -129614,16 +130138,18 @@ in
       sources."mute-stream-0.0.7"
       sources."negotiator-0.6.2"
       sources."nice-try-1.0.5"
-      (sources."node-gyp-8.4.0" // {
+      (sources."node-gyp-8.4.1" // {
         dependencies = [
-          sources."ansi-regex-2.1.1"
+          sources."ansi-regex-5.0.1"
+          sources."are-we-there-yet-2.0.0"
           sources."env-paths-2.2.1"
-          sources."gauge-2.7.4"
-          sources."is-fullwidth-code-point-1.0.0"
-          sources."npmlog-4.1.2"
+          sources."gauge-4.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."npmlog-6.0.0"
+          sources."readable-stream-3.6.0"
           sources."semver-7.3.5"
-          sources."string-width-1.0.2"
-          sources."strip-ansi-3.0.1"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
           sources."which-2.0.2"
         ];
       })
@@ -129712,7 +130238,7 @@ in
       sources."p-timeout-2.0.1"
       (sources."p-transform-1.3.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -129724,7 +130250,7 @@ in
         ];
       })
       sources."pad-component-0.0.1"
-      sources."parse-conflict-json-1.1.1"
+      sources."parse-conflict-json-2.0.1"
       sources."parse-help-1.0.0"
       sources."parse-json-2.2.0"
       sources."passwd-user-3.0.0"
@@ -129848,13 +130374,13 @@ in
       sources."set-blocking-2.0.0"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.5"
+      sources."signal-exit-3.0.6"
       sources."slash-3.0.0"
       sources."smart-buffer-4.2.0"
       sources."socks-2.6.1"
-      (sources."socks-proxy-agent-6.1.0" // {
+      (sources."socks-proxy-agent-6.1.1" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
@@ -130023,7 +130549,7 @@ in
         ];
       })
       sources."yeoman-doctor-5.0.0"
-      (sources."yeoman-environment-3.8.0" // {
+      (sources."yeoman-environment-3.8.1" // {
         dependencies = [
           sources."ansi-escapes-4.3.2"
           sources."ansi-regex-5.0.1"
@@ -130035,7 +130561,7 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."cross-spawn-7.0.3"
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."escape-string-regexp-4.0.0"
           sources."execa-5.1.1"
           (sources."figures-3.2.0" // {
@@ -130044,13 +130570,7 @@ in
             ];
           })
           sources."find-up-5.0.0"
-          (sources."gauge-3.0.1" // {
-            dependencies = [
-              sources."is-fullwidth-code-point-2.0.0"
-              sources."string-width-2.1.1"
-              sources."strip-ansi-4.0.0"
-            ];
-          })
+          sources."gauge-3.0.2"
           sources."get-stream-6.0.1"
           sources."has-flag-4.0.0"
           sources."inquirer-8.2.0"
@@ -130119,7 +130639,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@types/fs-extra-9.0.13"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-16.11.7"
+      sources."@types/node-16.11.14"
       sources."@types/node-fetch-2.5.12"
       sources."ansi-styles-4.3.0"
       sources."array-union-3.0.1"
diff --git a/pkgs/development/ocaml-modules/awa/default.nix b/pkgs/development/ocaml-modules/awa/default.nix
index 9f0e252c3e20e..d870ab8650539 100644
--- a/pkgs/development/ocaml-modules/awa/default.nix
+++ b/pkgs/development/ocaml-modules/awa/default.nix
@@ -1,29 +1,30 @@
 { lib, buildDunePackage, fetchurl
 , ppx_sexp_conv, ppx_cstruct
 , mirage-crypto, mirage-crypto-rng, mirage-crypto-pk
-, x509, cstruct, cstruct-unix, cstruct-sexp, sexplib
+, x509, cstruct, cstruct-unix, cstruct-sexp, sexplib, eqaf
 , rresult, mtime, logs, fmt, cmdliner, base64, hacl_x25519
 , zarith
 }:
 
 buildDunePackage rec {
   pname = "awa";
-  version = "0.0.4";
+  version = "0.0.5";
 
   minimumOCamlVersion = "4.07";
   useDune2 = true;
 
   src = fetchurl {
-    url = "https://github.com/mirage/awa-ssh/releases/download/v${version}/awa-v${version}.tbz";
-    sha256 = "1l7nsd8jifxjq78xyzcc0z9igc02m2qlvv4cxzsgdim6n1jfzxj2";
+    url = "https://github.com/mirage/awa-ssh/releases/download/v${version}/awa-${version}.tbz";
+    sha256 = "14hqzmikp3hlynhs0wnwj2491106if183swsl7ldk4215a0b7ms4";
   };
 
-  nativeBuildInputs = [ ppx_sexp_conv ppx_cstruct ];
+  nativeBuildInputs = [ ppx_cstruct ];
 
   propagatedBuildInputs = [
     mirage-crypto mirage-crypto-rng mirage-crypto-pk x509
     cstruct cstruct-sexp sexplib mtime
     logs base64 hacl_x25519 zarith
+    ppx_sexp_conv eqaf
   ];
 
   doCheck = true;
diff --git a/pkgs/development/ocaml-modules/batteries/default.nix b/pkgs/development/ocaml-modules/batteries/default.nix
index b88b7c59956e3..d2edb69e1b947 100644
--- a/pkgs/development/ocaml-modules/batteries/default.nix
+++ b/pkgs/development/ocaml-modules/batteries/default.nix
@@ -1,15 +1,21 @@
-{ stdenv, lib, fetchurl, ocaml, findlib, ocamlbuild, qtest, num
+{ stdenv, lib, fetchFromGitHub, ocaml, findlib, ocamlbuild, qtest, num
 , doCheck ? lib.versionAtLeast ocaml.version "4.08" && !stdenv.isAarch64
 }:
 
-let version = "3.3.0"; in
+if !lib.versionAtLeast ocaml.version "4.02"
+then throw "batteries is not available for OCaml ${ocaml.version}"
+else
+
+let version = "3.4.0"; in
 
 stdenv.mkDerivation {
   name = "ocaml${ocaml.version}-batteries-${version}";
 
-  src = fetchurl {
-    url = "https://github.com/ocaml-batteries-team/batteries-included/releases/download/v${version}/batteries-${version}.tar.gz";
-    sha256 = "002pqkcg18zx59hsf172wg6s7lwsiagp5sfvf5yssp7xxal5jdgx";
+  src = fetchFromGitHub {
+    owner = "ocaml-batteries-team";
+    repo = "batteries-included";
+    rev = "v${version}";
+    sha256 = "sha256:1cd7475n1mxhq482aidmhh27mq5p2vmb8d9fkb1mlza9pz5z66yq";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild ];
@@ -30,7 +36,7 @@ stdenv.mkDerivation {
       language.
     '';
     license = lib.licenses.lgpl21Plus;
-    platforms = ocaml.meta.platforms or [];
+    inherit (ocaml.meta) platforms;
     maintainers = [
       lib.maintainers.maggesi
     ];
diff --git a/pkgs/development/ocaml-modules/bin_prot/default.nix b/pkgs/development/ocaml-modules/bin_prot/default.nix
deleted file mode 100644
index 3aa7cf0ec134f..0000000000000
--- a/pkgs/development/ocaml-modules/bin_prot/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, buildOcaml, fetchurl, ocaml, type_conv }:
-
-if lib.versionAtLeast ocaml.version "4.06"
-then throw "bin_prot-112.24.00 is not available for OCaml ${ocaml.version}"
-else
-
-buildOcaml rec {
-  pname = "bin_prot";
-  version = "112.24.00";
-
-  minimumSupportedOcamlVersion = "4.00";
-
-  src = fetchurl {
-    url = "https://github.com/janestreet/bin_prot/archive/${version}.tar.gz";
-    sha256 = "dc0c978a825c7c123990af3317637c218f61079e6f35dc878260651084f1adb4";
-  };
-
-  propagatedBuildInputs = [ type_conv ];
-
-  hasSharedObjects = true;
-
-  meta = with lib; {
-    homepage = "https://github.com/janestreet/bin_prot";
-    description = "Binary protocol generator ";
-    license = licenses.asl20;
-    maintainers = [ maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/bitv/default.nix b/pkgs/development/ocaml-modules/bitv/default.nix
index 23e8d145a3081..2ac3a0ba3e76b 100644
--- a/pkgs/development/ocaml-modules/bitv/default.nix
+++ b/pkgs/development/ocaml-modules/bitv/default.nix
@@ -1,16 +1,18 @@
-{ stdenv, lib, fetchzip, autoreconfHook, which, ocaml, findlib }:
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, which, ocaml, findlib }:
 
 if !lib.versionAtLeast ocaml.version "4.02"
 then throw "bitv is not available for OCaml ${ocaml.version}"
 else
 
 stdenv.mkDerivation rec {
-  name = "ocaml${ocaml.version}-bitv-${version}";
+  pname = "ocaml${ocaml.version}-bitv";
   version = "1.3";
 
-  src = fetchzip {
-    url = "https://github.com/backtracking/bitv/archive/${version}.tar.gz";
-    sha256 = "0vkh1w9fpi5m1sgiqg6r38j3fqglhdajmbyiyr91113lrpljm75i";
+  src = fetchFromGitHub {
+    owner = "backtracking";
+    repo = "bitv";
+    rev = version;
+    sha256 = "sha256-sZwq6c10hBBS9tGvKlWD9GE3JBrZPByfDrXE6xIPcG4=";
   };
 
   buildInputs = [ autoreconfHook which ocaml findlib ];
diff --git a/pkgs/development/ocaml-modules/bolt/default.nix b/pkgs/development/ocaml-modules/bolt/default.nix
index ea32d659f6465..a6b63676e775c 100644
--- a/pkgs/development/ocaml-modules/bolt/default.nix
+++ b/pkgs/development/ocaml-modules/bolt/default.nix
@@ -10,17 +10,18 @@ then throw "bolt is not available for OCaml ${ocaml.version}"
 else
 
 stdenv.mkDerivation rec {
-
-  name = "bolt-1.4";
+  pname = "bolt";
+  version = "1.4";
 
   src = fetchurl {
-    url = "https://forge.ocamlcore.org/frs/download.php/1043/${name}.tar.gz";
+    url = "https://forge.ocamlcore.org/frs/download.php/1043/bolt-${version}.tar.gz";
     sha256 = "1c807wrpxra9sbb34lajhimwra28ldxv04m570567lh2b04n38zy";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild which camlp4 ];
 
-  patches = [ (fetchpatch {
+  patches = [
+    (fetchpatch {
       url = "https://raw.githubusercontent.com/ocaml/opam-repository/master/packages/bolt/bolt.1.4/files/opam.patch";
       sha256 = "08cl39r98w312sw23cskd5wian6zg20isn9ki41hnbcgkazhi7pb";
     })
@@ -43,7 +44,7 @@ EOF
   # option. Installation is handled by ocamlfind.
   dontAddPrefix = true;
   dontAddStaticConfigureFlags = true;
-  configurePlatforms = [];
+  configurePlatforms = [ ];
 
   createFindlibDestdir = true;
 
@@ -60,7 +61,7 @@ EOF
       modeled after the famous log4j logging framework for Java.
     '';
     license = licenses.lgpl3;
-    platforms = ocaml.meta.platforms or [];
+    platforms = ocaml.meta.platforms or [ ];
     maintainers = [ maintainers.jirkamarsik ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/ca-certs-nss/default.nix b/pkgs/development/ocaml-modules/ca-certs-nss/default.nix
index 31dea9201bbb2..2835852d6708f 100644
--- a/pkgs/development/ocaml-modules/ca-certs-nss/default.nix
+++ b/pkgs/development/ocaml-modules/ca-certs-nss/default.nix
@@ -1,13 +1,11 @@
 { lib
 , buildDunePackage
 , fetchurl
-, rresult
 , mirage-crypto
 , mirage-clock
 , x509
 , logs
 , fmt
-, hex
 , bos
 , astring
 , cmdliner
@@ -16,19 +14,18 @@
 
 buildDunePackage rec {
   pname = "ca-certs-nss";
-  version = "3.66";
+  version = "3.71.0.1";
 
   minimumOCamlVersion = "4.08";
 
   src = fetchurl {
     url = "https://github.com/mirage/ca-certs-nss/releases/download/v${version}/ca-certs-nss-v${version}.tbz";
-    sha256 = "f0f8035b470f2a48360b92d0e6287f41f98e4ba71576a1cd4c9246c468932f09";
+    sha256 = "b83749d983781631745079dccb7345d9ee1b52c1844ce865e97a25349289a124";
   };
 
   useDune2 = true;
 
   propagatedBuildInputs = [
-    rresult
     mirage-crypto
     mirage-clock
     x509
@@ -37,7 +34,6 @@ buildDunePackage rec {
   buildInputs = [
     logs
     fmt
-    hex
     bos
     astring
     cmdliner
diff --git a/pkgs/development/ocaml-modules/calendar/default.nix b/pkgs/development/ocaml-modules/calendar/default.nix
index 1210ed41dc2bc..29927aae04a7e 100644
--- a/pkgs/development/ocaml-modules/calendar/default.nix
+++ b/pkgs/development/ocaml-modules/calendar/default.nix
@@ -1,21 +1,23 @@
-{stdenv, lib, fetchurl, ocaml, findlib}:
+{ stdenv, lib, fetchurl, ocaml, findlib }:
+
+stdenv.mkDerivation rec {
+  pname = "ocaml-calendar";
+  version = "2.5";
 
-stdenv.mkDerivation {
-  name = "ocaml-calendar-2.5";
   src = fetchurl {
-    url = "https://forge.ocamlcore.org/frs/download.php/915/calendar-2.5.tar.bz2";
+    url = "https://forge.ocamlcore.org/frs/download.php/915/calendar-${version}.tar.bz2";
     sha256 = "04pvhwb664g3s644c7v7419a3kvf5s3pynkhmk5j59dvlfm1yf0f";
-    };
+  };
 
-  buildInputs = [ocaml findlib];
+  buildInputs = [ ocaml findlib ];
 
   createFindlibDestdir = true;
 
-  meta =  {
+  meta = {
     homepage = "https://forge.ocamlcore.org/projects/calendar/";
     description = "An Objective Caml library managing dates and times";
     license = "LGPL";
-    platforms = ocaml.meta.platforms or [];
+    platforms = ocaml.meta.platforms or [ ];
     maintainers = [
       lib.maintainers.gal_bolle
     ];
diff --git a/pkgs/development/ocaml-modules/cil/default.nix b/pkgs/development/ocaml-modules/cil/default.nix
index 3aefe2eb874cf..c5a3dcde22635 100644
--- a/pkgs/development/ocaml-modules/cil/default.nix
+++ b/pkgs/development/ocaml-modules/cil/default.nix
@@ -4,10 +4,12 @@ if lib.versionAtLeast ocaml.version "4.06"
 then throw "cil is not available for OCaml ${ocaml.version}"
 else
 
-stdenv.mkDerivation {
-  name = "ocaml-cil-1.7.3";
+stdenv.mkDerivation rec {
+  pname = "ocaml-cil";
+  version = "1.7.3";
+
   src = fetchurl {
-    url = "mirror://sourceforge/cil/cil-1.7.3.tar.gz";
+    url = "mirror://sourceforge/cil/cil-${version}.tar.gz";
     sha256 = "05739da0b0msx6kmdavr3y2bwi92jbh3szc35d7d8pdisa8g5dv9";
   };
 
@@ -26,6 +28,6 @@ stdenv.mkDerivation {
     description = "A front-end for the C programming language that facilitates program analysis and transformation";
     license = licenses.bsd3;
     maintainers = [ maintainers.vbgl ];
-    platforms = ocaml.meta.platforms or [];
+    platforms = ocaml.meta.platforms or [ ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/comparelib/default.nix b/pkgs/development/ocaml-modules/comparelib/default.nix
index a1371e4f4d5ed..1d7c314f005c9 100644
--- a/pkgs/development/ocaml-modules/comparelib/default.nix
+++ b/pkgs/development/ocaml-modules/comparelib/default.nix
@@ -1,4 +1,4 @@
-{lib, buildOcaml, fetchurl, type_conv}:
+{ lib, buildOcaml, fetchFromGitHub, type_conv }:
 
 buildOcaml rec {
   pname = "comparelib";
@@ -6,9 +6,11 @@ buildOcaml rec {
 
   minimumSupportedOcamlVersion = "4.00";
 
-  src = fetchurl {
-    url = "https://github.com/janestreet/comparelib/archive/${version}.tar.gz";
-    sha256 = "02l343drgi4200flfx73nzdk61zajwidsqjk9n80b2d37lvhazlf";
+  src = fetchFromGitHub {
+    owner = "janestreet";
+    repo = "comparelib";
+    rev = version;
+    sha256 = "sha256-gtJvXAUxiIt/L9bCzS+8wHcCQ+QpBubwcjDcyN0K2MA=";
   };
 
   propagatedBuildInputs = [ type_conv ];
diff --git a/pkgs/development/ocaml-modules/conduit/default.nix b/pkgs/development/ocaml-modules/conduit/default.nix
index 077180124e421..1dc28b2b5f790 100644
--- a/pkgs/development/ocaml-modules/conduit/default.nix
+++ b/pkgs/development/ocaml-modules/conduit/default.nix
@@ -5,14 +5,14 @@
 
 buildDunePackage rec {
   pname = "conduit";
-  version = "4.0.1";
+  version = "4.0.2";
   useDune2 = true;
 
   minimumOCamlVersion = "4.03";
 
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-conduit/releases/download/v${version}/conduit-v${version}.tbz";
-    sha256 = "500d95bf2a524f4851e94373e32d26b6e99ee04e5134db69fe6e151c3aad9b1f";
+    sha256 = "2a37ffaa352a1e145ef3d80ac28661213c69a741b238623e59f29e3d5a12c537";
   };
 
   buildInputs = [ ppx_sexp_conv ];
diff --git a/pkgs/development/ocaml-modules/config-file/default.nix b/pkgs/development/ocaml-modules/config-file/default.nix
index 29c7cd61c3f54..c408d1a392f1c 100644
--- a/pkgs/development/ocaml-modules/config-file/default.nix
+++ b/pkgs/development/ocaml-modules/config-file/default.nix
@@ -1,10 +1,11 @@
 { stdenv, lib, fetchurl, ocaml, findlib, camlp4 }:
 
-stdenv.mkDerivation {
-  name = "ocaml-config-file-1.2";
+stdenv.mkDerivation rec {
+  pname = "ocaml-config-file";
+  version = "1.2";
 
   src = fetchurl {
-    url = "https://forge.ocamlcore.org/frs/download.php/1387/config-file-1.2.tar.gz";
+    url = "https://forge.ocamlcore.org/frs/download.php/1387/config-file-${version}.tar.gz";
     sha256 = "1b02yxcnsjhr05ssh2br2ka4hxsjpdw34ldl3nk33wfnkwk7g67q";
   };
 
@@ -14,7 +15,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "http://config-file.forge.ocamlcore.org/";
-    platforms = ocaml.meta.platforms or [];
+    platforms = ocaml.meta.platforms or [ ];
     description = "An OCaml library used to manage the configuration file(s) of an application";
     license = lib.licenses.lgpl2Plus;
     maintainers = with lib.maintainers; [ vbgl ];
diff --git a/pkgs/development/ocaml-modules/containers/default.nix b/pkgs/development/ocaml-modules/containers/default.nix
index de6c8076ceda2..281fbfbfde878 100644
--- a/pkgs/development/ocaml-modules/containers/default.nix
+++ b/pkgs/development/ocaml-modules/containers/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchFromGitHub, buildDunePackage, ocaml
 , dune-configurator
-, seq
+, either, seq
 , gen, iter, ounit, qcheck, uutf
 }:
 
 buildDunePackage rec {
-  version = "3.4";
+  version = "3.6.1";
   pname = "containers";
 
   useDune2 = true;
@@ -14,11 +14,11 @@ buildDunePackage rec {
     owner = "c-cube";
     repo = "ocaml-containers";
     rev = "v${version}";
-    sha256 = "0ixpy81p6rc3lq71djfndb2sg2hfj20j1jbzzrrmgqsysqdjsgzz";
+    sha256 = "sha256:1k8xrs3nki8g875sig9f5v6k4vwxrk5gn7ixrlkkys5ksbr4kis7";
   };
 
   buildInputs = [ dune-configurator ];
-  propagatedBuildInputs = [ seq ];
+  propagatedBuildInputs = [ either seq ];
 
   checkInputs = [ gen iter ounit qcheck uutf ];
 
diff --git a/pkgs/development/ocaml-modules/cryptokit/default.nix b/pkgs/development/ocaml-modules/cryptokit/default.nix
index 6a50c73103b7f..1b5a50b13b973 100644
--- a/pkgs/development/ocaml-modules/cryptokit/default.nix
+++ b/pkgs/development/ocaml-modules/cryptokit/default.nix
@@ -1,14 +1,16 @@
-{ lib, buildDunePackage, fetchurl, zlib, dune-configurator, zarith, ncurses }:
+{ lib, buildDunePackage, fetchFromGitHub, zlib, dune-configurator, zarith, ncurses }:
 
-buildDunePackage {
+buildDunePackage rec {
   pname = "cryptokit";
   version = "1.16.1";
 
   useDune2 = true;
 
-  src = fetchurl {
-    url = "https://github.com/xavierleroy/cryptokit/archive/release1161.tar.gz";
-    sha256 = "0kzqkk451m69nqi5qiwak0rd0rp5vzi613gcngsiig7dyxwka61c";
+  src = fetchFromGitHub {
+    owner = "xavierleroy";
+    repo = "cryptokit";
+    rev = "release${lib.replaceStrings ["."] [""] version}";
+    sha256 = "sha256-eDIzi16Al/mXCNos/lVqjZWCtdP9SllXnRfm4GBWMfA=";
   };
 
   # dont do autotools configuration, but do trigger findlib's preConfigure hook
diff --git a/pkgs/development/ocaml-modules/csv/1.5.nix b/pkgs/development/ocaml-modules/csv/1.5.nix
index 6fdf20308611c..ee68782313c53 100644
--- a/pkgs/development/ocaml-modules/csv/1.5.nix
+++ b/pkgs/development/ocaml-modules/csv/1.5.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchzip, ocaml, findlib, ocamlbuild }:
 
-stdenv.mkDerivation {
-
-  name = "ocaml${ocaml.version}-csv-1.5";
+stdenv.mkDerivation rec {
+  pname = "ocaml${ocaml.version}-csv";
+  version = "1.5";
 
   src = fetchzip {
-    url = "https://github.com/Chris00/ocaml-csv/releases/download/1.5/csv-1.5.tar.gz";
+    url = "https://github.com/Chris00/ocaml-csv/releases/download/${version}/csv-${version}.tar.gz";
     sha256 = "1ca7jgg58j24pccs5fshis726s06fdcjshnwza5kwxpjgdbvc63g";
   };
 
@@ -27,6 +27,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/Chris00/ocaml-csv";
     license = licenses.lgpl21;
     maintainers = [ maintainers.vbgl ];
-    platforms = ocaml.meta.platforms or [];
+    platforms = ocaml.meta.platforms or [ ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/ctypes/default.nix b/pkgs/development/ocaml-modules/ctypes/default.nix
index f8ccffcf217f9..8c20a68c2746f 100644
--- a/pkgs/development/ocaml-modules/ctypes/default.nix
+++ b/pkgs/development/ocaml-modules/ctypes/default.nix
@@ -1,28 +1,30 @@
-{ lib, stdenv, fetchzip, ocaml, findlib, libffi, pkg-config, ncurses, integers, bigarray-compat }:
+{ lib, stdenv, fetchFromGitHub, ocaml, findlib, libffi, pkg-config, ncurses, integers, bigarray-compat }:
 
 if !lib.versionAtLeast ocaml.version "4.02"
 then throw "ctypes is not available for OCaml ${ocaml.version}"
 else
 
 stdenv.mkDerivation rec {
-  name = "ocaml${ocaml.version}-ctypes-${version}";
+  pname = "ocaml${ocaml.version}-ctypes";
   version = "0.18.0";
 
-  src = fetchzip {
-    url = "https://github.com/ocamllabs/ocaml-ctypes/archive/${version}.tar.gz";
-    sha256 = "03zrbnl16m67ls0yfhq7a4k4238x6x6b3m456g4dw2yqwc153vks";
+  src = fetchFromGitHub {
+    owner = "ocamllabs";
+    repo = "ocaml-ctypes";
+    rev = version;
+    sha256 = "sha256-eu5RAuPYC97IM4XUsUw3HQ1BJlEHQ+eBpsdUE6hd+Q8=";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ ocaml findlib ncurses ];
   propagatedBuildInputs = [ integers libffi bigarray-compat ];
 
-  buildPhase =  ''
-     make XEN=false libffi.config ctypes-base ctypes-stubs
-     make XEN=false ctypes-foreign
+  buildPhase = ''
+    make XEN=false libffi.config ctypes-base ctypes-stubs
+    make XEN=false ctypes-foreign
   '';
 
-  installPhase =  ''
+  installPhase = ''
     mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/stublibs
     make install XEN=false
   '';
diff --git a/pkgs/development/ocaml-modules/dolmen/default.nix b/pkgs/development/ocaml-modules/dolmen/default.nix
index 56b87a4e971df..9a21da9868142 100644
--- a/pkgs/development/ocaml-modules/dolmen/default.nix
+++ b/pkgs/development/ocaml-modules/dolmen/default.nix
@@ -19,7 +19,8 @@ buildDunePackage rec {
   buildInputs = [ menhir ];
   propagatedBuildInputs = [ menhirLib fmt ];
 
-  doCheck = true;
+  # Testr are not compatible with menhir 20211128
+  doCheck = false;
 
   meta = {
     description = "An OCaml library providing clean and flexible parsers for input languages";
diff --git a/pkgs/development/ocaml-modules/dolog/default.nix b/pkgs/development/ocaml-modules/dolog/default.nix
index 690823c5358a6..64fb2b2c5a59b 100644
--- a/pkgs/development/ocaml-modules/dolog/default.nix
+++ b/pkgs/development/ocaml-modules/dolog/default.nix
@@ -1,13 +1,14 @@
-{ stdenv, lib, fetchzip, ocaml, findlib, ocamlbuild }:
+{ stdenv, lib, fetchFromGitHub, ocaml, findlib, ocamlbuild }:
 
-let version = "3.0"; in
-
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "ocaml-dolog";
-  inherit version;
-  src = fetchzip {
-    url = "https://github.com/UnixJunkie/dolog/archive/v${version}.tar.gz";
-    sha256 = "0gx2s4509vkkkaikl2yp7k5x7bqv45s1y1vsy408d8rakd7yl1zb";
+  version = "3.0";
+
+  src = fetchFromGitHub {
+    owner = "UnixJunkie";
+    repo = "dolog";
+    rev = "v${version}";
+    sha256 = "sha256-6wfqT5sqo4YA8XoHH3QhG6/TyzzXCzqjmnPuBArRoj8=";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild ];
@@ -20,7 +21,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = "https://github.com/UnixJunkie/dolog";
     description = "Minimalistic lazy logger in OCaml";
-    platforms = ocaml.meta.platforms or [];
+    platforms = ocaml.meta.platforms or [ ];
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/easy-format/default.nix b/pkgs/development/ocaml-modules/easy-format/default.nix
index 161e263e129b1..a6e78977846c9 100644
--- a/pkgs/development/ocaml-modules/easy-format/default.nix
+++ b/pkgs/development/ocaml-modules/easy-format/default.nix
@@ -1,15 +1,15 @@
-{ lib, stdenv, fetchzip, ocaml, findlib }:
-let
+{ lib, stdenv, fetchFromGitHub, ocaml, findlib }:
+
+stdenv.mkDerivation rec {
+
   pname = "easy-format";
   version = "1.2.0";
-in
-stdenv.mkDerivation {
-
-  name = "${pname}-${version}";
 
-  src = fetchzip {
-    url = "https://github.com/mjambon/${pname}/archive/v${version}.tar.gz";
-    sha256 = "00ga7mrlycjc99gzp3bgx6iwhf7i6j8856f8xzrf1yas7zwzgzm9";
+  src = fetchFromGitHub {
+    owner = "mjambon";
+    repo = "easy-format";
+    rev = "v${version}";
+    sha256 = "sha256-qf73+T9a+eDy78iZgpA08TjIo+lvjftfSkwyT3M96gE=";
   };
 
   nativeBuildInputs = [ ocaml findlib ];
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "A high-level and functional interface to the Format module of the OCaml standard library";
-    homepage = "https://github.com/ocaml-community/${pname}";
+    homepage = "https://github.com/ocaml-community/easy-format";
     license = licenses.bsd3;
     maintainers = [ maintainers.vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/eliom/default.nix b/pkgs/development/ocaml-modules/eliom/default.nix
index 4e2714fedd265..69ac628d2014c 100644
--- a/pkgs/development/ocaml-modules/eliom/default.nix
+++ b/pkgs/development/ocaml-modules/eliom/default.nix
@@ -1,25 +1,40 @@
-{ stdenv, lib, fetchzip, which, ocsigen_server, ocaml,
-  lwt_react,
-  opaline, ppx_deriving, findlib
-, js_of_ocaml-ocamlbuild, js_of_ocaml-ppx, js_of_ocaml-ppx_deriving_json
+{ stdenv
+, lib
+, fetchFromGitHub
+, which
+, ocsigen_server
+, ocaml
+, lwt_react
+, opaline
+, ppx_deriving
+, findlib
+, js_of_ocaml-ocamlbuild
+, js_of_ocaml-ppx
+, js_of_ocaml-ppx_deriving_json
 , js_of_ocaml-lwt
 , js_of_ocaml-tyxml
 , lwt_ppx
 , ocamlnet
 }:
 
-stdenv.mkDerivation rec
-{
+stdenv.mkDerivation rec {
   pname = "eliom";
   version = "8.9.0";
 
-  src = fetchzip {
-    url = "https://github.com/ocsigen/eliom/archive/${version}.tar.gz";
-    sha256 = "sha256:1b1vb3ilb54ffzb98mqa6zggqchsnjspbni8qxi6j42pbajp7p2l";
+  src = fetchFromGitHub {
+    owner = "ocsigen";
+    repo = "eliom";
+    rev = version;
+    sha256 = "sha256-VNxzpVpXEGlixyjadbW0GjL83jcKV5TWd46UReNYO6w=";
   };
 
-  buildInputs = [ ocaml which findlib js_of_ocaml-ocamlbuild
-    js_of_ocaml-ppx_deriving_json opaline
+  buildInputs = [
+    ocaml
+    which
+    findlib
+    js_of_ocaml-ocamlbuild
+    js_of_ocaml-ppx_deriving_json
+    opaline
     ocamlnet
   ];
 
@@ -41,7 +56,7 @@ stdenv.mkDerivation rec
     homepage = "http://ocsigen.org/eliom/";
     description = "OCaml Framework for programming Web sites and client/server Web applications";
 
-    longDescription =''Eliom is a framework for programming Web sites
+    longDescription = ''Eliom is a framework for programming Web sites
     and client/server Web applications. It introduces new concepts to
     simplify programming common behaviours and uses advanced static
     typing features of OCaml to check many properties of the Web site
diff --git a/pkgs/development/ocaml-modules/enumerate/default.nix b/pkgs/development/ocaml-modules/enumerate/default.nix
index eb0495be797f5..d7f467e8eb980 100644
--- a/pkgs/development/ocaml-modules/enumerate/default.nix
+++ b/pkgs/development/ocaml-modules/enumerate/default.nix
@@ -6,11 +6,12 @@ if lib.versionAtLeast ocaml.version "4.06"
 then throw "enumerate-111.08.00 is not available for OCaml ${ocaml.version}"
 else
 
-stdenv.mkDerivation {
-  name = "ocaml-enumerate-111.08.00";
+stdenv.mkDerivation rec {
+  pname = "ocaml-enumerate";
+  version = "111.08.00";
 
   src = fetchurl {
-    url = "https://ocaml.janestreet.com/ocaml-core/111.08.00/individual/enumerate-111.08.00.tar.gz";
+    url = "https://ocaml.janestreet.com/ocaml-core/${lib.versions.majorMinor version}.00/individual/enumerate-${version}.tar.gz";
     sha256 = "0b6mx5p01lcpimvak4wx6aj2119707wsfzd83rwgb91bhpgzh156";
   };
 
@@ -23,6 +24,6 @@ stdenv.mkDerivation {
     homepage = "https://ocaml.janestreet.com/";
     description = "Quotation expanders for enumerating finite types";
     license = lib.licenses.asl20;
-    platforms = ocaml.meta.platforms or [];
+    platforms = ocaml.meta.platforms or [ ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/erm_xml/default.nix b/pkgs/development/ocaml-modules/erm_xml/default.nix
index 56b5c92957088..fa072f8bd1c1f 100644
--- a/pkgs/development/ocaml-modules/erm_xml/default.nix
+++ b/pkgs/development/ocaml-modules/erm_xml/default.nix
@@ -1,17 +1,18 @@
-{ stdenv, lib, fetchzip, ocaml, findlib, ocamlbuild }:
+{ stdenv, lib, fetchFromGitHub, ocaml, findlib, ocamlbuild }:
 
 if !lib.versionAtLeast ocaml.version "4.02"
 then throw "erm_xml is not available for OCaml ${ocaml.version}"
 else
 
-let version = "0.3+20180112"; in
+stdenv.mkDerivation rec {
+  pname = "ocaml${ocaml.version}-erm_xml";
+  version = "0.3+20180112";
 
-stdenv.mkDerivation {
-  name = "ocaml${ocaml.version}-erm_xml-${version}";
-
-  src = fetchzip {
-    url = "https://github.com/hannesm/xml/archive/bbabdade807d8281fc48806da054b70dfe482479.tar.gz";
-    sha256 = "1gawpmg8plip0wia0xq60m024dn7l3ykwbjpbqx9f9bdmx74n1rr";
+  src = fetchFromGitHub {
+    owner = "hannesm";
+    repo = "xml";
+    rev = "bbabdade807d8281fc48806da054b70dfe482479";
+    sha256 = "sha256-OQdLTq9tJZc6XlcuPv2gxzYiQAUGd6AiBzfSi169XL0=";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild ];
@@ -21,7 +22,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = "https://github.com/hannesm/xml";
     description = "XML Parser for discrete data";
-    platforms = ocaml.meta.platforms or [];
+    platforms = ocaml.meta.platforms or [ ];
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/estring/default.nix b/pkgs/development/ocaml-modules/estring/default.nix
deleted file mode 100644
index c0cc3398763c8..0000000000000
--- a/pkgs/development/ocaml-modules/estring/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib, buildOcaml, ocaml, fetchurl }:
-
-if lib.versionAtLeast ocaml.version "4.06"
-then throw "estring is not available for OCaml ${ocaml.version}"
-else
-
-buildOcaml rec {
-  pname = "estring";
-  version = "1.3";
-
-  src = fetchurl {
-    url = "https://forge.ocamlcore.org/frs/download.php/1012/estring-${version}.tar.gz";
-    sha256 = "0b6znz5igm8pp28w4b7sgy82rpd9m5aw6ss933rfbw1mrh05gvcg";
-  };
-
-  meta = with lib; {
-    homepage = "http://estring.forge.ocamlcore.org/";
-    description = "Extension for string literals";
-    license = licenses.bsd3;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/faillib/default.nix b/pkgs/development/ocaml-modules/faillib/default.nix
deleted file mode 100644
index e2d90e06bdb5c..0000000000000
--- a/pkgs/development/ocaml-modules/faillib/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, buildOcaml, fetchurl, ocaml, herelib, camlp4 }:
-
-if lib.versionAtLeast ocaml.version "4.06"
-then throw "faillib-111.17.00 is not available for OCaml ${ocaml.version}"
-else
-
-buildOcaml rec {
-  minimumSupportedOcamlVersion = "4.00";
-  pname = "faillib";
-  version = "111.17.00";
-
-  src = fetchurl {
-    url = "https://github.com/janestreet/faillib/archive/${version}.tar.gz";
-    sha256 = "12dvaxkmgf7yzzvbadcyk1n17llgh6p8qr33867d21npaljy7l9v";
-  };
-
-  propagatedBuildInputs = [ camlp4 herelib ];
-
-  doCheck = true;
-  checkPhase = "make test";
-
-  meta = with lib; {
-    homepage = "https://ocaml.janestreet.com/";
-    description = "Library for dealing with failure in OCaml";
-    license = licenses.asl20;
-    maintainers = [ maintainers.maurer ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/fieldslib/default.nix b/pkgs/development/ocaml-modules/fieldslib/default.nix
deleted file mode 100644
index 4adddbfe54d2e..0000000000000
--- a/pkgs/development/ocaml-modules/fieldslib/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild, type_conv, camlp4 }:
-
-assert lib.versionOlder "4.00" (lib.getVersion ocaml);
-
-if lib.versionAtLeast ocaml.version "4.06"
-then throw "fieldslib-109.20.03 is not available for OCaml ${ocaml.version}"
-else
-
-stdenv.mkDerivation {
-  name = "ocaml-fieldslib-109.20.03";
-
-  src = fetchurl {
-    url = "https://ocaml.janestreet.com/ocaml-core/109.20.00/individual/fieldslib-109.20.03.tar.gz";
-    sha256 = "1dkzk0wf26rhvji80dz1r56dp6x9zqrnp87wldd4pj56jli94vir";
-  };
-
-  buildInputs = [ ocaml findlib ocamlbuild ];
-  propagatedBuildInputs = [ type_conv camlp4 ];
-
-  createFindlibDestdir = true;
-
-  meta = with lib; {
-    homepage = "https://ocaml.janestreet.com/";
-    description = "OCaml syntax extension to define first class values representing record fields, to get and set record fields, iterate and fold over all fields of a record and create new record values";
-    license = licenses.asl20;
-    maintainers = [ maintainers.vbgl ];
-    platforms = ocaml.meta.platforms or [];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/fontconfig/default.nix b/pkgs/development/ocaml-modules/fontconfig/default.nix
index 55e8e9418955c..f4afe80d532d5 100644
--- a/pkgs/development/ocaml-modules/fontconfig/default.nix
+++ b/pkgs/development/ocaml-modules/fontconfig/default.nix
@@ -1,7 +1,9 @@
 { stdenv, lib, fetchFromGitHub, pkg-config, fontconfig, ocaml }:
 
 stdenv.mkDerivation {
-  name = "ocaml-fontconfig-20131103";
+  pname = "ocaml-fontconfig";
+  version = "unstable-2013-11-03";
+
   src = fetchFromGitHub {
     owner = "flh";
     repo = "ocaml-fontconfig";
@@ -19,7 +21,7 @@ stdenv.mkDerivation {
   meta = {
     description = "Fontconfig bindings for OCaml";
     license = lib.licenses.gpl2Plus;
-    platforms = ocaml.meta.platforms or [];
+    platforms = ocaml.meta.platforms or [ ];
     maintainers = with lib.maintainers; [ vbgl ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/fpath/default.nix b/pkgs/development/ocaml-modules/fpath/default.nix
index 785a71e13a7fe..532210888bf38 100644
--- a/pkgs/development/ocaml-modules/fpath/default.nix
+++ b/pkgs/development/ocaml-modules/fpath/default.nix
@@ -4,10 +4,12 @@ if !lib.versionAtLeast ocaml.version "4.03"
 then throw "fpath is not available for OCaml ${ocaml.version}"
 else
 
-stdenv.mkDerivation {
-  name = "ocaml${ocaml.version}-fpath-0.7.3";
+stdenv.mkDerivation rec {
+  pname = "ocaml${ocaml.version}-fpath";
+  version = "0.7.3";
+
   src = fetchurl {
-    url = "https://erratique.ch/software/fpath/releases/fpath-0.7.3.tbz";
+    url = "https://erratique.ch/software/fpath/releases/fpath-${version}.tbz";
     sha256 = "03z7mj0sqdz465rc4drj1gr88l9q3nfs374yssvdjdyhjbqqzc0j";
   };
 
diff --git a/pkgs/development/ocaml-modules/graphics/default.nix b/pkgs/development/ocaml-modules/graphics/default.nix
index 10d0b4ea6fc7b..38db74fc9faf8 100644
--- a/pkgs/development/ocaml-modules/graphics/default.nix
+++ b/pkgs/development/ocaml-modules/graphics/default.nix
@@ -3,13 +3,13 @@
 buildDunePackage rec {
 
   pname = "graphics";
-  version = "5.1.1";
+  version = "5.1.2";
 
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/ocaml/graphics/releases/download/${version}/graphics-${version}.tbz";
-    sha256 = "sha256-KGyD497ZKHA2xeXHezmh3P1zoSlre1h5N9zjkAFmMo4=";
+    sha256 = "sha256-QA/YHSPxy0FGuWl5NCwkeXHdVPWHn/0vgOx80CEuMtQ=";
   };
 
   buildInputs = [ dune-configurator ];
diff --git a/pkgs/development/ocaml-modules/herelib/default.nix b/pkgs/development/ocaml-modules/herelib/default.nix
index b6f05fc46af39..14c775d25fcdf 100644
--- a/pkgs/development/ocaml-modules/herelib/default.nix
+++ b/pkgs/development/ocaml-modules/herelib/default.nix
@@ -1,4 +1,4 @@
-{lib, buildOcaml, fetchurl}:
+{ lib, buildOcaml, fetchFromGitHub }:
 
 buildOcaml rec {
   version = "112.35.00";
@@ -6,9 +6,11 @@ buildOcaml rec {
 
   minimumSupportedOcamlVersion = "4.00";
 
-  src = fetchurl {
-    url = "https://github.com/janestreet/herelib/archive/${version}.tar.gz";
-    sha256 = "03rrlpjmnd8d1rzzmd112355m7a5bwn3vf90xkbc6gkxlad9cxbs";
+  src = fetchFromGitHub {
+    owner = "janestreet";
+    repo = "herelib";
+    rev = version;
+    sha256 = "sha256-EuMhHu2na3lcpsJ1wMVOgBr6VKndlonq8jgAW01eelI=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/higlo/default.nix b/pkgs/development/ocaml-modules/higlo/default.nix
index 3c4b7a37f99ef..19b2fa8942a55 100644
--- a/pkgs/development/ocaml-modules/higlo/default.nix
+++ b/pkgs/development/ocaml-modules/higlo/default.nix
@@ -1,27 +1,23 @@
-{ lib, stdenv, fetchFromGitHub, ocaml, findlib, xtmpl, ulex }:
+{ lib, buildDunePackage, fetchFromGitLab, sedlex_2, xtmpl }:
 
-stdenv.mkDerivation rec {
+buildDunePackage rec {
   pname = "higlo";
-  version = "0.6";
-  src = fetchFromGitHub {
+  version = "0.8";
+  useDune2 = true;
+  src = fetchFromGitLab {
+    domain = "framagit.org";
     owner = "zoggy";
     repo = "higlo";
-    rev = "release-${version}";
-    sha256 = "0m0qyk2ydivai54502s45sdw9w4xr0j3jpwyc4vqk62a7iz9ihxh";
+    rev = version;
+    sha256 = "sha256:09hsbwy5asacgh4gdj0vjpy4kzfnq3qji9szbsbyswsf1nbyczir";
   };
 
-  buildInputs = [ ocaml findlib ];
-  propagatedBuildInputs = [ xtmpl ulex ];
-
-  createFindlibDestdir = true;
-
-  patches = ./install.patch;
+  propagatedBuildInputs = [ sedlex_2 xtmpl ];
 
   meta = with lib; {
     description = "OCaml library for syntax highlighting";
-    homepage = "https://zoggy.github.io/higlo/";
+    inherit (src.meta) homepage;
     license = licenses.lgpl3;
-    platforms = ocaml.meta.platforms or [];
     maintainers = with maintainers; [ regnat ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/higlo/install.patch b/pkgs/development/ocaml-modules/higlo/install.patch
deleted file mode 100644
index bbdaace293bfc..0000000000000
--- a/pkgs/development/ocaml-modules/higlo/install.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/Makefile b/Makefile
-index b8c2e01..fcd07ed 100644
---- a/Makefile
-+++ b/Makefile
-@@ -149,7 +149,8 @@ webdoc:
- install: install-lib install-bin
- 
- install-bin:
--	$(CP) $(HIGLO) $(HIGLO_BYTE) $(MK_HIGLO) `dirname \`which ocamlfind\``/
-+	mkdir -p $(out)/bin
-+	$(CP) $(HIGLO) $(HIGLO_BYTE) $(MK_HIGLO) $(out)/bin
- 
- install-lib: higlo.cmo higlo.cmx higlo.cmxs $(HIGLO) $(HIGLO_BYTE)
- 	ocamlfind install higlo META LICENSE \
diff --git a/pkgs/development/ocaml-modules/inifiles/default.nix b/pkgs/development/ocaml-modules/inifiles/default.nix
index 7e2659381148c..90308ee7d6d9a 100644
--- a/pkgs/development/ocaml-modules/inifiles/default.nix
+++ b/pkgs/development/ocaml-modules/inifiles/default.nix
@@ -1,17 +1,20 @@
 { stdenv, lib, fetchurl, fetchpatch, ocaml, findlib, ocaml_pcre }:
 
-stdenv.mkDerivation {
-  name = "ocaml${ocaml.version}-inifiles-1.2";
+stdenv.mkDerivation rec {
+  pname = "ocaml${ocaml.version}-inifiles";
+  version = "1.2";
 
   src = fetchurl {
-    url = "mirror://ubuntu/pool/universe/o/ocaml-inifiles/ocaml-inifiles_1.2.orig.tar.gz";
+    url = "mirror://ubuntu/pool/universe/o/ocaml-inifiles/ocaml-inifiles_${version}.orig.tar.gz";
     sha256 = "0jhzgiypmh6hwsv1zpiq77fi0cvcmwbiy5x0yg7mz6p3dh1dmkns";
   };
 
-  patches = [ (fetchpatch {
-    url = "https://raw.githubusercontent.com/ocaml/opam-repository/master/packages/ocaml-inifiles/ocaml-inifiles.1.2/files/ocaml-inifiles.diff";
-    sha256 = "037kk3172s187w8vwsykdxlpklxzc7m7np57sapk499d8adzdgwn";
-  })];
+  patches = [
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/ocaml/opam-repository/master/packages/ocaml-inifiles/ocaml-inifiles.1.2/files/ocaml-inifiles.diff";
+      sha256 = "037kk3172s187w8vwsykdxlpklxzc7m7np57sapk499d8adzdgwn";
+    })
+  ];
 
   buildInputs = [ ocaml findlib ];
   propagatedBuildInputs = [ ocaml_pcre ];
diff --git a/pkgs/development/ocaml-modules/iri/default.nix b/pkgs/development/ocaml-modules/iri/default.nix
index 0845e4c1841e1..6a00fb453dfd2 100644
--- a/pkgs/development/ocaml-modules/iri/default.nix
+++ b/pkgs/development/ocaml-modules/iri/default.nix
@@ -1,34 +1,26 @@
-{ stdenv, lib, fetchFromGitLab, ocaml, findlib
-, sedlex, uunf, uutf
+{ lib, buildDunePackage, fetchFromGitLab
+, sedlex_2, uunf, uutf
 }:
 
-if !lib.versionAtLeast ocaml.version "4.03"
-then throw "iri is not available for OCaml ${ocaml.version}"
-else
-
-stdenv.mkDerivation rec {
-  version = "0.4.0";
-  name = "ocaml${ocaml.version}-iri-${version}";
+buildDunePackage rec {
+  pname = "iri";
+  version = "0.6.0";
+  useDune2 = true;
 
   src = fetchFromGitLab {
     domain = "framagit.org";
     owner = "zoggy";
     repo = "ocaml-iri";
     rev = version;
-    sha256 = "0fsmfmzmyggm0h77a7mb0n41vqi6q4ln1xzsv72zbvysa7l8w84q";
+    sha256 = "sha256:0zk8nnwcyljkc1a556byncv6cn1vqhk4267z1lm15flh1k7chyax";
   };
 
-  buildInputs = [ ocaml findlib ];
-
-  propagatedBuildInputs = [ sedlex uunf uutf ];
-
-  createFindlibDestdir = true;
+  propagatedBuildInputs = [ sedlex_2 uunf uutf ];
 
   meta = {
     description = "IRI (RFC3987) native OCaml implementation";
     license = lib.licenses.lgpl3;
     maintainers = [ lib.maintainers.vbgl ];
     inherit (src.meta) homepage;
-    inherit (ocaml.meta) platforms;
   };
 }
diff --git a/pkgs/development/ocaml-modules/iso8601/default.nix b/pkgs/development/ocaml-modules/iso8601/default.nix
index d1b55609bc4ae..add18281008ca 100644
--- a/pkgs/development/ocaml-modules/iso8601/default.nix
+++ b/pkgs/development/ocaml-modules/iso8601/default.nix
@@ -1,13 +1,14 @@
-{ stdenv, lib, fetchzip, ocaml, findlib, ocamlbuild }:
+{ stdenv, lib, fetchFromGitHub, ocaml, findlib, ocamlbuild }:
 
-let version = "0.2.4"; in
-
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "ocaml-iso8601";
-  inherit version;
-  src = fetchzip {
-    url = "https://github.com/sagotch/ISO8601.ml/archive/${version}.tar.gz";
-    sha256 = "0ypdd1p04xdjxxx3b61wp7abswfrq3vcvwwaxvywxwqljw0dhydi";
+  version = "0.2.4";
+
+  src = fetchFromGitHub {
+    owner = "sagotch";
+    repo = "ISO8601.ml";
+    rev = version;
+    sha256 = "sha256-sXnYAJcU88797orzzfbA2XG91Lk8mDV677J1Am5o7Xo=";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild ];
@@ -17,7 +18,7 @@ stdenv.mkDerivation {
     homepage = "https://ocaml-community.github.io/ISO8601.ml/";
     description = "ISO 8601 and RFC 3999 date parsing for OCaml";
     license = lib.licenses.mit;
-    platforms = ocaml.meta.platforms or [];
+    platforms = ocaml.meta.platforms or [ ];
     maintainers = with lib.maintainers; [ vbgl ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/iter/default.nix b/pkgs/development/ocaml-modules/iter/default.nix
index 34e14baea7c91..4fa7e42c5d51f 100644
--- a/pkgs/development/ocaml-modules/iter/default.nix
+++ b/pkgs/development/ocaml-modules/iter/default.nix
@@ -4,15 +4,15 @@
 
 buildDunePackage rec {
   pname = "iter";
-  version = "1.2.1";
+  version = "1.3";
 
   useDune2 = true;
 
   src = fetchFromGitHub {
     owner = "c-cube";
     repo = pname;
-    rev = version;
-    sha256 = "0j2sg50byn0ppmf6l36ksip7zx1d3gv7sc4hbbxs2rmx39jr7vxh";
+    rev = "v${version}";
+    sha256 = "sha256:0xgkplpbi41sw0yv1wfd12cfbybls6cal8qxddmd9x8khgk5s3vx";
   };
 
   buildInputs = [ dune-configurator ];
diff --git a/pkgs/development/ocaml-modules/janestreet/async-rpc-kernel.nix b/pkgs/development/ocaml-modules/janestreet/async-rpc-kernel.nix
deleted file mode 100644
index c2c51632b9f84..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/async-rpc-kernel.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{lib, buildOcamlJane, async_kernel, bin_prot, core_kernel,
- fieldslib, ppx_assert, ppx_bench, ppx_driver, ppx_expect, ppx_inline_test,
- ppx_jane, sexplib, typerep, variantslib}:
-
-buildOcamlJane {
-  pname = "async_rpc_kernel";
-  hash = "0pvys7giqix1nfidw1f4i3r94cf03ba1mvhadpm2zpdir3av91sw";
-  propagatedBuildInputs = [ async_kernel bin_prot core_kernel fieldslib
-    ppx_assert ppx_bench ppx_driver ppx_expect ppx_inline_test ppx_jane
-    sexplib typerep variantslib ];
-
-  meta = with lib; {
-    homepage = "https://github.com/janestreet/async_rpc_kernel";
-    description = "Platform-independent core of Async RPC library";
-    license = licenses.asl20;
-    maintainers = [ maintainers.maurer ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/bin_prot.nix b/pkgs/development/ocaml-modules/janestreet/bin_prot.nix
deleted file mode 100644
index d90d91cc229e3..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/bin_prot.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{lib, buildOcamlJane, type_conv}:
-
-buildOcamlJane {
-  pname = "bin_prot";
-  version = "113.33.03";
-  minimumSupportedOcamlVersion = "4.02";
-  hash = "0jlarpfby755j0kikz6vnl1l6q0ga09b9zrlw6i84r22zchnqdsh";
-
-  propagatedBuildInputs = [ type_conv ];
-
-  meta = with lib; {
-    homepage = "https://github.com/janestreet/bin_prot";
-    description = "Binary protocol generator ";
-    license = licenses.asl20;
-    maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/buildOcamlJane.nix b/pkgs/development/ocaml-modules/janestreet/buildOcamlJane.nix
deleted file mode 100644
index 13fcdff392390..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/buildOcamlJane.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ buildOcaml, opaline, js_build_tools, ocaml_oasis, fetchurl } :
-
-{ pname, version ? "113.33.03", buildInputs ? [],
-  hash ? "",
-  minimumSupportedOcamlVersion ? "4.02", ...
-}@args:
-
-buildOcaml (args // {
-  inherit pname version minimumSupportedOcamlVersion;
-  src = fetchurl {
-    url = "https://github.com/janestreet/${pname}/archive/${version}.tar.gz";
-    sha256 = hash;
-  };
-
-  hasSharedObjects = true;
-
-  buildInputs = [ ocaml_oasis js_build_tools opaline ] ++ buildInputs;
-
-  dontAddPrefix = true;
-  dontAddStaticConfigureFlags = true;
-  configurePlatforms = [];
-
-  configurePhase = ''
-    ./configure --prefix $out
-  '';
-
-  buildPhase = ''
-    OCAML_TOPLEVEL_PATH=`ocamlfind query findlib`/.. make
-  '';
-
-  installPhase = ''
-    opaline -prefix $prefix -libdir $OCAMLFIND_DESTDIR ${pname}.install
-  '';
-
-})
diff --git a/pkgs/development/ocaml-modules/janestreet/core_bench.nix b/pkgs/development/ocaml-modules/janestreet/core_bench.nix
deleted file mode 100644
index 8c318f03b05bf..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/core_bench.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ lib
-, buildOcamlJane
-, core
-, core_extended
-, textutils
-}:
-
-buildOcamlJane {
-  pname = "core_bench";
-  hash = "1d1ainpakgsf5rg8dvar12ksgilqcc4465jr8gf7fz5mmn0mlifj";
-  propagatedBuildInputs =
-    [ core core_extended textutils ];
-
-  meta = with lib; {
-    homepage = "https://github.com/janestreet/core_bench";
-    description = "Micro-benchmarking library for OCaml";
-    license = licenses.asl20;
-    maintainers = [ maintainers.pmahoney ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/fieldslib.nix b/pkgs/development/ocaml-modules/janestreet/fieldslib.nix
deleted file mode 100644
index 15dee416b643e..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/fieldslib.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ lib, type_conv, buildOcamlJane }:
-
-buildOcamlJane {
-  pname = "fieldslib";
-  version = "113.33.03";
-
-  minimumSupportedOcamlVersion = "4.02";
-
-  hash = "0mkbix32f8sq32q81hb10z2q31bw5f431jxv0jafbdrif0vr6xqd";
-
-  propagatedBuildInputs = [ type_conv ];
-
-  meta = with lib; {
-    homepage = "https://ocaml.janestreet.com/";
-    description = "OCaml syntax extension to define first class values representing record fields, to get and set record fields, iterate and fold over all fields of a record and create new record values";
-    license = licenses.asl20;
-    maintainers = [ maintainers.maurer maintainers.vbgl ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/js-build-tools-darwin.patch b/pkgs/development/ocaml-modules/janestreet/js-build-tools-darwin.patch
deleted file mode 100644
index 8878b4be68b89..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/js-build-tools-darwin.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/ocamlbuild_goodies/jane_street_ocamlbuild_goodies.ml
-+++ b/ocamlbuild_goodies/jane_street_ocamlbuild_goodies.ml
-@@ -65,7 +65,7 @@ let track_external_deps = function
-
-     let stat, md5sum =
-       match run_and_read "uname" |> String.trim with
--      | "Darwin" ->
-+      | "FreeBSD" | "NetBSD" ->
-         (S [A "stat"; A "-f"; A "%d:%i:%m"],
-          A "md5")
-       | _ ->
diff --git a/pkgs/development/ocaml-modules/janestreet/js-build-tools.nix b/pkgs/development/ocaml-modules/janestreet/js-build-tools.nix
deleted file mode 100644
index 4186b0649bad1..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/js-build-tools.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, buildOcaml, fetchurl, ocaml_oasis, opaline }:
-
-buildOcaml rec {
-  pname = "js-build-tools";
-  version = "113.33.06";
-
-  minimumSupportedOcamlVersion = "4.02";
-
-  src = fetchurl {
-    url = "https://github.com/janestreet/js-build-tools/archive/${version}.tar.gz";
-    sha256 = "1nvgyp4gsnlnpix3li6kr90b12iin5ihichv298p03i6h2809dia";
-  };
-
-  hasSharedObjects = true;
-
-  buildInputs = [ ocaml_oasis opaline ];
-
-  dontAddPrefix = true;
-  dontAddStaticConfigureFlags = true;
-  configurePlatforms = [];
-  configurePhase = "./configure --prefix $prefix";
-  installPhase = "opaline -prefix $prefix -libdir $OCAMLFIND_DESTDIR js-build-tools.install";
-
-  patches = [ ./js-build-tools-darwin.patch ];
-
-  meta = with lib; {
-    description = "Jane Street Build Tools";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-assert.nix b/pkgs/development/ocaml-modules/janestreet/ppx-assert.nix
deleted file mode 100644
index 24ca4bfa9fa0f..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-assert.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{lib, buildOcamlJane,
- ppx_compare, ppx_core, ppx_driver, ppx_here, ppx_sexp_conv, ppx_tools, ppx_type_conv, sexplib}:
-
-buildOcamlJane {
-  pname = "ppx_assert";
-  hash = "0n7fa1j79ykbkhp8xz0ksg5096asri5d0msshsaqhw5fz18chvz4";
-  propagatedBuildInputs =
-    [ ppx_compare ppx_core ppx_driver ppx_here ppx_sexp_conv ppx_tools
-      ppx_type_conv sexplib ];
-
-  meta = with lib; {
-    description = "Assert-like extension nodes that raise useful errors on failure";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-bench.nix b/pkgs/development/ocaml-modules/janestreet/ppx-bench.nix
deleted file mode 100644
index d20be4fe15579..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-bench.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{lib, buildOcamlJane,
- ppx_core, ppx_driver, ppx_inline_test, ppx_tools}:
-
-buildOcamlJane {
-  pname = "ppx_bench";
-  minimumSupportedOcamlVersion = "4.02";
-  hash = "1l5jlwy1d1fqz70wa2fkf7izngp6nx3g4s9bmnd6ca4dx1x5bksk";
-
-  hasSharedObjects = true;
-
-  propagatedBuildInputs = [ ppx_core ppx_driver ppx_inline_test ppx_tools ];
-
-  meta = with lib; {
-    description = "Syntax extension for writing in-line benchmarks in ocaml code";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-bin-prot.nix b/pkgs/development/ocaml-modules/janestreet/ppx-bin-prot.nix
deleted file mode 100644
index 6405b6928237f..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-bin-prot.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{lib, buildOcamlJane,
- ppx_core, ppx_tools, ppx_type_conv, bin_prot}:
-
-buildOcamlJane {
-  pname = "ppx_bin_prot";
-  hash = "0kwmrrrybdkmphqczsr3lg3imsxcjb8iy41syvn44s3kcjfyyzbz";
-  propagatedBuildInputs = [ ppx_core ppx_tools ppx_type_conv bin_prot ];
-
-  meta = with lib; {
-    description = "Generation of bin_prot readers and writers from types";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-compare.nix b/pkgs/development/ocaml-modules/janestreet/ppx-compare.nix
deleted file mode 100644
index a0c7c548baad1..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-compare.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{lib, buildOcamlJane,
- ppx_core, ppx_driver, ppx_tools, ppx_type_conv}:
-
-buildOcamlJane {
-  pname = "ppx_compare";
-  hash = "05cnwxfxm8201lpfmcqkcqfy6plh5c2151jbj4qsnxhlvvjli459";
-  propagatedBuildInputs =
-    [ppx_core ppx_driver ppx_tools ppx_type_conv ];
-
-  meta = with lib; {
-    description = "Generation of fast comparison functions from type expressions and definitions";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-custom-printf.nix b/pkgs/development/ocaml-modules/janestreet/ppx-custom-printf.nix
deleted file mode 100644
index e95d46e7281b8..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-custom-printf.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{lib, buildOcamlJane,
- ppx_core, ppx_driver, ppx_sexp_conv, ppx_tools}:
-
-buildOcamlJane {
-  pname = "ppx_custom_printf";
-  hash = "06y85m6ky376byja4w7gdwd339di5ag0xrf0czkylzjsnylhdr85";
-
-  propagatedBuildInputs = [ ppx_core ppx_driver ppx_sexp_conv ppx_tools ];
-
-  meta = with lib; {
-    description = "Extensions to printf-style format-strings for user-defined string conversion";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-enumerate.nix b/pkgs/development/ocaml-modules/janestreet/ppx-enumerate.nix
deleted file mode 100644
index 8591117abb674..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-enumerate.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{lib, buildOcamlJane,
- ppx_core, ppx_tools, ppx_type_conv}:
-
-buildOcamlJane {
-  pname = "ppx_enumerate";
-  hash = "0m11921q2pjzkwckf21fynd2qfy83n9jjsgks23yagdai8a7ym16";
-  propagatedBuildInputs = [ ppx_core ppx_tools ppx_type_conv ];
-
-  meta = with lib; {
-    description = "Generate a list containing all values of a finite type";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-expect.nix b/pkgs/development/ocaml-modules/janestreet/ppx-expect.nix
deleted file mode 100644
index 87675f75e50bf..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-expect.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{lib, buildOcamlJane,
- ppx_assert, ppx_compare, ppx_core, ppx_custom_printf, ppx_driver,
- ppx_fields_conv, ppx_here, ppx_inline_test, ppx_sexp_conv, ppx_tools,
- ppx_variants_conv, re, sexplib, variantslib, fieldslib}:
-
-buildOcamlJane {
-  pname = "ppx_expect";
-  hash = "0cwagb4cj3x1vsr19kyfa9pxlvaz9a5v863cahi5glinsh4mzgdx";
-  propagatedBuildInputs =
-    [ ppx_assert ppx_compare ppx_core ppx_custom_printf ppx_driver
-      ppx_fields_conv ppx_here ppx_inline_test ppx_sexp_conv ppx_tools
-      ppx_variants_conv re sexplib variantslib fieldslib ];
-
-  meta = with lib; {
-    description = "Cram-like framework for OCaml";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-fields-conv.nix b/pkgs/development/ocaml-modules/janestreet/ppx-fields-conv.nix
deleted file mode 100644
index 756db313c2665..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-fields-conv.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{lib, buildOcamlJane,
- ppx_core, ppx_tools, ppx_type_conv}:
-
-buildOcamlJane {
-  pname = "ppx_fields_conv";
-  hash = "11w9wfjgkv7yxv3rwlwi6m193zan6rhmi45q7n3ddi2s8ls3gra7";
-  propagatedBuildInputs = [ ppx_core ppx_tools ppx_type_conv ];
-
-  meta = with lib; {
-    description = "Generation of accessor and iteration functions for ocaml records";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-here.nix b/pkgs/development/ocaml-modules/janestreet/ppx-here.nix
deleted file mode 100644
index f55b6725c23da..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-here.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{lib, buildOcamlJane,
- ppx_core, ppx_driver}:
-
-buildOcamlJane {
-  pname = "ppx_here";
-  hash = "1mzdgn8k171zkwmbizf1a48l525ny0w3363c7gknpnifcinxniiw";
-  propagatedBuildInputs = [ ppx_core ppx_driver ];
-
-  meta = with lib; {
-    description = "A ppx rewriter that defines an extension node whose value is its source position";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-inline-test.nix b/pkgs/development/ocaml-modules/janestreet/ppx-inline-test.nix
deleted file mode 100644
index c09538d6f1dfd..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-inline-test.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{lib, buildOcamlJane,
- ppx_core, ppx_driver, ppx_tools}:
-
-buildOcamlJane {
-  pname = "ppx_inline_test";
-  hash = "0ygapa54i0wwcj3jcqwiimrc6z0b7aafgjhbk37h6vvclnm5n7f6";
-  propagatedBuildInputs = [ ppx_core ppx_driver ppx_tools ];
-
-  meta = with lib; {
-    description = "Syntax extension for writing in-line tests in ocaml code";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-jane.nix b/pkgs/development/ocaml-modules/janestreet/ppx-jane.nix
deleted file mode 100644
index 0dc36f890bc37..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-jane.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{lib, buildOcamlJane,
- ppx_assert,
- ppx_bench, ppx_bin_prot, ppx_compare, ppx_custom_printf, ppx_driver,
- ppx_enumerate, ppx_expect, ppx_fail, ppx_fields_conv, ppx_here,
- ppx_inline_test, ppx_let, ppx_pipebang, ppx_sexp_conv, ppx_sexp_message,
- ppx_sexp_value, ppx_typerep_conv, ppx_variants_conv}:
-
-buildOcamlJane {
-  pname = "ppx_jane";
-  hash  = "1la0rp8fhzfglwb15gqh1pl1ld8ls4cnidaw9mjc5q1hb0yj1qd9";
-  propagatedBuildInputs =
-    [ ppx_assert ppx_bench ppx_bin_prot ppx_compare ppx_custom_printf
-      ppx_driver ppx_enumerate ppx_expect ppx_fail ppx_fields_conv
-      ppx_here ppx_inline_test ppx_let ppx_pipebang ppx_sexp_conv
-      ppx_sexp_message ppx_sexp_value ppx_typerep_conv ppx_variants_conv ];
-
-  meta = with lib; {
-    description = "A ppx_driver including all standard ppx rewriters";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-let.nix b/pkgs/development/ocaml-modules/janestreet/ppx-let.nix
deleted file mode 100644
index c436850657006..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-let.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{lib, buildOcamlJane,
- ppx_core, ppx_driver}:
-
-buildOcamlJane {
-  pname = "ppx_let";
-  hash = "0whnfq4rgkq4apfqnvc100wlk25pmqdyvy6s21dsn3fcm9hff467";
-  propagatedBuildInputs = [ ppx_core ppx_driver ];
-
-  meta = with lib; {
-    description = "A ppx rewriter for monadic and applicative let bindings and match statements";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-optcomp.nix b/pkgs/development/ocaml-modules/janestreet/ppx-optcomp.nix
deleted file mode 100644
index e25ad6c286733..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-optcomp.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{lib, buildOcamlJane,
- ppx_core, ppx_tools}:
-
-buildOcamlJane {
-  pname = "ppx_optcomp";
-  hash = "09m2x2a5ics4bz1j29n5slhh1rlyhcwdfmf44v1jfxcby3f0riwd";
-  propagatedBuildInputs =
-    [ ppx_core ppx_tools ];
-
-  meta = with lib; {
-    description = "ppx_optcomp stands for Optional Compilation. It is a tool used to handle optional compilations of pieces of code depending of the word size, the version of the compiler, etc.";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-pipebang.nix b/pkgs/development/ocaml-modules/janestreet/ppx-pipebang.nix
deleted file mode 100644
index 32262223205c5..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-pipebang.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{lib, buildOcamlJane,
- ppx_core, ppx_driver, ppx_tools}:
-
-buildOcamlJane {
-  pname = "ppx_pipebang";
-  hash = "0k25bhj9ziiw89xvs4svz7cgazbbmprba9wbic2llffg55fp7acc";
-  propagatedBuildInputs = [ ppx_core ppx_driver ppx_tools ];
-
-  meta = with lib; {
-    description = "A ppx rewriter that inlines reverse application operators |> and |!";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-sexp-conv.nix b/pkgs/development/ocaml-modules/janestreet/ppx-sexp-conv.nix
deleted file mode 100644
index a56bbc7b3e4f3..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-sexp-conv.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{lib, buildOcamlJane,
- ppx_core, ppx_tools, ppx_type_conv, sexplib}:
-
-buildOcamlJane {
-  pname = "ppx_sexp_conv";
-  hash = "1kgbmlc11w5jhbhmy5n0f734l44zwyry48342dm5qydi9sfzcgq2";
-  propagatedBuildInputs = [ ppx_core ppx_tools ppx_type_conv sexplib];
-
-  meta = with lib; {
-    description = "PPX syntax extension that generates code for converting OCaml types to and from s-expressions, as defined in the sexplib library";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-sexp-message.nix b/pkgs/development/ocaml-modules/janestreet/ppx-sexp-message.nix
deleted file mode 100644
index 2ea63cc3edc5c..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-sexp-message.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{lib, buildOcamlJane,
- ppx_core, ppx_driver, ppx_here, ppx_sexp_conv, ppx_tools}:
-
-buildOcamlJane {
-  pname = "ppx_sexp_message";
-  hash = "0inbff25qii868p141jb1y8n3vjfyz66jpnsl9nma6nkkyjkp05j";
-  propagatedBuildInputs = [ ppx_core ppx_driver ppx_here ppx_sexp_conv ppx_tools ];
-
-  meta = with lib; {
-    description = "Easy construction of S-Expressions";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-sexp-value.nix b/pkgs/development/ocaml-modules/janestreet/ppx-sexp-value.nix
deleted file mode 100644
index eaaf04ffe6c18..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-sexp-value.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{lib, buildOcamlJane,
- ppx_core, ppx_driver, ppx_here, ppx_sexp_conv, ppx_tools}:
-
-buildOcamlJane {
-  pname = "ppx_sexp_value";
-  hash = "04602ppqfwx33ghjywam00hlqqzsz4d99r60k9q0v1mynk9pjhj0";
-  propagatedBuildInputs = [ ppx_core ppx_driver ppx_here ppx_sexp_conv ppx_tools ];
-
-  meta = with lib; {
-    description = "A ppx rewriter that simplifies building S-Expression from OCaml Values";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-typerep-conv.nix b/pkgs/development/ocaml-modules/janestreet/ppx-typerep-conv.nix
deleted file mode 100644
index b6b7fc85c96b7..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-typerep-conv.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{lib, buildOcamlJane,
- ppx_core, ppx_tools, ppx_type_conv, typerep}:
-
-buildOcamlJane {
-  pname = "ppx_typerep_conv";
-  hash = "0dldlx73r07j6w0i7h4hxly0v678naa79na5rafsk2974gs5ih9g";
-  propagatedBuildInputs = [ ppx_core ppx_tools ppx_type_conv typerep ];
-
-  meta = with lib; {
-    description = "Automatic generation of runtime types from type definitions";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/ppx-variants-conv.nix b/pkgs/development/ocaml-modules/janestreet/ppx-variants-conv.nix
deleted file mode 100644
index 5c53eb92f2943..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/ppx-variants-conv.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{lib, buildOcamlJane,
- ppx_core, ppx_tools, ppx_type_conv, sexplib, variantslib}:
-
-buildOcamlJane {
-  pname = "ppx_variants_conv";
-  hash = "0kgal8b9yh7wrd75hllb9fyl6zbksfnr9k7pykpzdm3js98dirhn";
-  propagatedBuildInputs = [ ppx_core ppx_tools ppx_type_conv sexplib variantslib ];
-
-  meta = with lib; {
-    description = "Generation of accessor and iteration functions for ocaml variant types";
-    maintainers = [ maintainers.maurer ];
-    license = licenses.asl20;
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/sexplib.nix b/pkgs/development/ocaml-modules/janestreet/sexplib.nix
deleted file mode 100644
index e24d9565c8135..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/sexplib.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{lib, buildOcamlJane, type_conv}:
-
-buildOcamlJane {
-  minimumSupportedOcamlVersion = "4.02";
-  pname = "sexplib";
-  version = "113.33.03";
-
-  hash = "1klar4qw4s7bj47ig7kxz2m4j1q3c60pfppis4vxrxv15r0kfh22";
-
-  propagatedBuildInputs = [ type_conv ];
-
-  meta = with lib; {
-    homepage = "https://ocaml.janestreet.com/";
-    description = "Library for serializing OCaml values to and from S-expressions";
-    license = licenses.asl20;
-    maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/typerep.nix b/pkgs/development/ocaml-modules/janestreet/typerep.nix
deleted file mode 100644
index 692c2d2286fbe..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/typerep.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{lib, buildOcamlJane, type_conv}:
-
-buildOcamlJane {
-  pname = "typerep";
-  version = "113.33.03";
-
-  minimumSupportedOcamlVersion = "4.00";
-
-  hash = "1ss34nq20vfgx8hwi5sswpmn3my9lvrpdy5dkng746xchwi33ar7";
-
-  propagatedBuildInputs = [ type_conv ];
-
-  meta = with lib; {
-    homepage = "https://github.com/janestreet/typerep";
-    description = "Runtime types for OCaml (beta version)";
-    license = licenses.asl20;
-    maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
-  };
-
-}
diff --git a/pkgs/development/ocaml-modules/janestreet/variantslib.nix b/pkgs/development/ocaml-modules/janestreet/variantslib.nix
deleted file mode 100644
index dfb330f49d58c..0000000000000
--- a/pkgs/development/ocaml-modules/janestreet/variantslib.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{lib, buildOcamlJane, type_conv}:
-
-buildOcamlJane {
-  pname = "variantslib";
-  version = "113.33.03";
-
-  minimumSupportedOcamlVersion = "4.00";
-
-  hash = "1hv0f75msrryxsl6wfnbmhc0n8kf7qxs5f82ry3b8ldb44s3wigp";
-
-  propagatedBuildInputs = [ type_conv ];
-
-  meta = with lib; {
-    homepage = "https://github.com/janestreet/variantslib";
-    description = "OCaml variants as first class values";
-    license = licenses.asl20;
-    maintainers = [ maintainers.maurer maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/javalib/default.nix b/pkgs/development/ocaml-modules/javalib/default.nix
index 15678f89da3c1..78b61de8d9c11 100644
--- a/pkgs/development/ocaml-modules/javalib/default.nix
+++ b/pkgs/development/ocaml-modules/javalib/default.nix
@@ -1,5 +1,11 @@
-{ lib, stdenv, fetchzip, which, ocaml, findlib
-, camlzip, extlib
+{ lib
+, stdenv
+, fetchFromGitHub
+, which
+, ocaml
+, findlib
+, camlzip
+, extlib
 }:
 
 if !lib.versionAtLeast ocaml.version "4.04"
@@ -7,12 +13,14 @@ then throw "javalib is not available for OCaml ${ocaml.version}"
 else
 
 stdenv.mkDerivation rec {
-  name = "ocaml${ocaml.version}-javalib-${version}";
+  pname = "ocaml${ocaml.version}-javalib";
   version = "3.2.1";
 
-  src = fetchzip {
-    url = "https://github.com/javalib-team/javalib/archive/v${version}.tar.gz";
-    sha256 = "1fkdaiiza145yv0r1cm0n2hsrr0rbn6b27vs66njgv405zwn3vbn";
+  src = fetchFromGitHub {
+    owner = "javalib-team";
+    repo = "javalib";
+    rev = "v${version}";
+    sha256 = "sha256-du1h+S+A7CetMXofsYxdGeSsobCgspDB9oUE9WNUbbo=";
   };
 
   buildInputs = [ which ocaml findlib ];
@@ -26,7 +34,7 @@ stdenv.mkDerivation rec {
   configureScript = "./configure.sh";
   dontAddPrefix = "true";
   dontAddStaticConfigureFlags = true;
-  configurePlatforms = [];
+  configurePlatforms = [ ];
 
   propagatedBuildInputs = [ camlzip extlib ];
 
diff --git a/pkgs/development/ocaml-modules/lablgl/default.nix b/pkgs/development/ocaml-modules/lablgl/default.nix
index 3d57c4e40ed60..da4318aef4c13 100644
--- a/pkgs/development/ocaml-modules/lablgl/default.nix
+++ b/pkgs/development/ocaml-modules/lablgl/default.nix
@@ -1,34 +1,36 @@
-{lib, stdenv, fetchurl, ocaml, lablgtk, findlib, libGLU, libGL, freeglut, camlp4 } :
+{ lib, stdenv, fetchFromGitHub, ocaml, findlib, libGLU, libGL, freeglut } :
 
-let
-  pname = "lablgl";
-in
+if !lib.versionAtLeast ocaml.version "4.03"
+then throw "lablgl is not available for OCaml ${ocaml.version}"
+else
 
 stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-  version = "1.05";
-
-  src = fetchurl {
-    url = "http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/dist/lablgl-${version}.tar.gz";
-    sha256 = "0qabydd219i4ak7hxgc67496qnnscpnydya2m4ijn3cpbgih7zyq";
+  pname = "ocaml${ocaml.version}-lablgl";
+  version = "1.06";
+
+  src = fetchFromGitHub {
+    owner = "garrigue";
+    repo = "lablgl";
+    rev = "v${version}";
+    sha256 = "sha256:141kc816iv59z96738i3vn9m9iw9g2zhi45hk4cchpwd99ar5l6k";
   };
 
-  buildInputs = [ocaml findlib lablgtk freeglut camlp4];
+  buildInputs = [ ocaml findlib freeglut ];
   propagatedBuildInputs = [ libGLU libGL ];
 
   patches = [ ./Makefile.config.patch ./META.patch ];
 
   preConfigure = ''
+    mkdir -p $out/bin
+    mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/stublibs
     substituteInPlace Makefile.config \
-      --subst-var-by BINDIR $out/bin \
-      --subst-var-by INSTALLDIR $out/lib/ocaml/${ocaml.version}/site-lib/lablgl \
-      --subst-var-by DLLDIR $out/lib/ocaml/${ocaml.version}/site-lib/lablgl \
+      --subst-var-by BINDIR $out/bin/ \
+      --subst-var-by INSTALLDIR $out/lib/ocaml/${ocaml.version}/site-lib/lablgl/ \
+      --subst-var-by DLLDIR $out/lib/ocaml/${ocaml.version}/site-lib/stublibs/ \
       --subst-var-by TKINCLUDES "" \
       --subst-var-by XINCLUDES ""
   '';
 
-  createFindlibDestdir = true;
-
   buildFlags = [ "lib" "libopt" "glut" "glutopt" ];
 
   postInstall = ''
diff --git a/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix b/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix
index 70cc88d211665..f2fbc71b5a931 100644
--- a/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix
+++ b/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix
@@ -1,9 +1,11 @@
 { stdenv, lib, fetchurl, ocaml, findlib, camlp4, config-file, lablgtk, xmlm }:
 
-stdenv.mkDerivation {
-  name = "ocaml-lablgtk-extras-1.4";
+stdenv.mkDerivation rec {
+  pname = "ocaml-lablgtk-extras";
+  version = "1.4";
+
   src = fetchurl {
-    url = "http://forge.ocamlcore.org/frs/download.php/1282/lablgtkextras-1.4.tar.gz";
+    url = "http://forge.ocamlcore.org/frs/download.php/1282/lablgtkextras-${version}.tar.gz";
     sha256 = "09fqxwdib7r9yxynknc9gv3jw2hnhj5cak7q5jngk6m8rzvmhfcc";
   };
 
@@ -13,7 +15,7 @@ stdenv.mkDerivation {
   createFindlibDestdir = true;
 
   meta = {
-    platforms = ocaml.meta.platforms or [];
+    platforms = ocaml.meta.platforms or [ ];
     maintainers = with lib.maintainers; [ vbgl ];
     homepage = "http://gtk-extras.forge.ocamlcore.org/";
     description = "A collection of libraries and modules useful when developing OCaml/LablGtk2 applications";
diff --git a/pkgs/development/ocaml-modules/lablgtk-extras/default.nix b/pkgs/development/ocaml-modules/lablgtk-extras/default.nix
index 3cd13b2c4d6c8..373e5ded952a8 100644
--- a/pkgs/development/ocaml-modules/lablgtk-extras/default.nix
+++ b/pkgs/development/ocaml-modules/lablgtk-extras/default.nix
@@ -1,11 +1,15 @@
-{ stdenv, lib, fetchFromGitHub, ocaml, findlib, camlp4, config-file, lablgtk, xmlm }:
+{ stdenv, lib, fetchFromGitLab, ocaml, findlib, camlp4, config-file, lablgtk, xmlm }:
 
-assert lib.versionAtLeast (lib.getVersion ocaml) "4.02";
+if !lib.versionAtLeast ocaml.version "4.02"
+|| lib.versionAtLeast ocaml.version "4.13"
+then throw "lablgtk-extras is not available for OCaml ${ocaml.version}"
+else
 
 stdenv.mkDerivation rec {
   version = "1.6";
   name = "ocaml${ocaml.version}-lablgtk-extras-${version}";
-  src = fetchFromGitHub {
+  src = fetchFromGitLab {
+    domain = "framagit.org";
     owner = "zoggy";
     repo = "lablgtk-extras";
     rev = "release-${version}";
@@ -18,9 +22,9 @@ stdenv.mkDerivation rec {
   createFindlibDestdir = true;
 
   meta = {
-    platforms = ocaml.meta.platforms or [];
+    inherit (ocaml.meta) platforms;
     maintainers = with lib.maintainers; [ vbgl ];
-    homepage = "http://gtk-extras.forge.ocamlcore.org/";
+    homepage = "https://framagit.org/zoggy/lablgtk-extras/";
     description = "A collection of libraries and modules useful when developing OCaml/LablGtk2 applications";
     license = lib.licenses.lgpl2Plus;
   };
diff --git a/pkgs/development/ocaml-modules/letsencrypt/app.nix b/pkgs/development/ocaml-modules/letsencrypt/app.nix
index dc9006d6d16b3..de1dbbb8c8494 100644
--- a/pkgs/development/ocaml-modules/letsencrypt/app.nix
+++ b/pkgs/development/ocaml-modules/letsencrypt/app.nix
@@ -12,6 +12,7 @@
 , bos
 , fpath
 , randomconv
+, cstruct
 }:
 
 buildDunePackage {
@@ -37,6 +38,7 @@ buildDunePackage {
     bos
     fpath
     randomconv
+    cstruct
   ];
 
   meta = letsencrypt.meta // {
diff --git a/pkgs/development/ocaml-modules/letsencrypt/default.nix b/pkgs/development/ocaml-modules/letsencrypt/default.nix
index 623fba942f2f9..a0646517b1bcd 100644
--- a/pkgs/development/ocaml-modules/letsencrypt/default.nix
+++ b/pkgs/development/ocaml-modules/letsencrypt/default.nix
@@ -1,15 +1,14 @@
 { buildDunePackage
 , lib
 , fetchurl
-, astring
 , asn1-combinators
 , uri
-, rresult
 , base64
 , logs
 , fmt
 , lwt
 , mirage-crypto
+, mirage-crypto-ec
 , mirage-crypto-pk
 , mirage-crypto-rng
 , x509
@@ -17,15 +16,16 @@
 , ounit
 , ptime
 , domain-name
+, cstruct
 }:
 
 buildDunePackage rec {
   pname = "letsencrypt";
-  version = "0.3.0";
+  version = "0.4.1";
 
   src = fetchurl {
     url = "https://github.com/mmaker/ocaml-letsencrypt/releases/download/v${version}/letsencrypt-v${version}.tbz";
-    sha256 = "8772b7e6dbda0559a03a7b23b75c1431d42ae09a154eefd64b4c7e23b8d92deb";
+    sha256 = "f90875f5c9bdcab4c8be5ec7ebe9ea763030fa708e02857300996bb16e7c2070";
   };
 
   minimumOCamlVersion = "4.08";
@@ -43,12 +43,12 @@ buildDunePackage rec {
     lwt
     base64
     mirage-crypto
+    mirage-crypto-ec
     mirage-crypto-pk
     asn1-combinators
     x509
     uri
-    rresult
-    astring
+    cstruct
   ];
 
   doCheck = true;
diff --git a/pkgs/development/ocaml-modules/lwt/default.nix b/pkgs/development/ocaml-modules/lwt/default.nix
index be15d2b72a54c..76e973a813e47 100644
--- a/pkgs/development/ocaml-modules/lwt/default.nix
+++ b/pkgs/development/ocaml-modules/lwt/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchzip, pkg-config, ncurses, libev, buildDunePackage, ocaml
+{ lib, fetchFromGitHub, pkg-config, ncurses, libev, buildDunePackage, ocaml
 , cppo, dune-configurator, ocplib-endian, result
 , mmap, seq
 , ocaml-syntax-shims
@@ -12,9 +12,11 @@ buildDunePackage rec {
 
   useDune2 = true;
 
-  src = fetchzip {
-    url = "https://github.com/ocsigen/${pname}/archive/${version}.tar.gz";
-    sha256 = "0cq2qy23sa1a5zk6nja3c652mp29i84yfrkcwks6i8sdqwli36jy";
+  src = fetchFromGitHub {
+    owner = "ocsigen";
+    repo = "lwt";
+    rev = version;
+    sha256 = "sha256-XpoRKcdNo2j05Gxm5wmKSdwqimFDSWvmLyooPYTHAjM=";
   };
 
   nativeBuildInputs = [ pkg-config cppo dune-configurator ];
diff --git a/pkgs/development/ocaml-modules/lwt_ssl/default.nix b/pkgs/development/ocaml-modules/lwt_ssl/default.nix
index 173094aacb84c..64decd8e5d632 100644
--- a/pkgs/development/ocaml-modules/lwt_ssl/default.nix
+++ b/pkgs/development/ocaml-modules/lwt_ssl/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchzip, buildDunePackage, ssl, lwt }:
+{ lib, fetchFromGitHub, buildDunePackage, ssl, lwt }:
 
 buildDunePackage rec {
   pname = "lwt_ssl";
@@ -7,9 +7,11 @@ buildDunePackage rec {
   minimumOCamlVersion = "4.02";
   useDune2 = true;
 
-  src = fetchzip {
-    url = "https://github.com/aantron/${pname}/archive/${version}.tar.gz";
-    sha256 = "0v417ch5zn0yknj156awa5mrq3mal08pbrvsyribbn63ix6f9y3p";
+  src = fetchFromGitHub {
+    owner = "aantron";
+    repo = "lwt_ssl";
+    rev = version;
+    sha256 = "sha256-d/jkTI/D2LVi9nrndRGgqg6ca1FcmRKknR7YXyA7gWw=";
   };
 
   propagatedBuildInputs = [ ssl lwt ];
diff --git a/pkgs/development/ocaml-modules/macaque/default.nix b/pkgs/development/ocaml-modules/macaque/default.nix
index 61ee7ebfe9c54..a91e898227d6b 100644
--- a/pkgs/development/ocaml-modules/macaque/default.nix
+++ b/pkgs/development/ocaml-modules/macaque/default.nix
@@ -1,10 +1,14 @@
-{ lib, stdenv, fetchzip, ocaml, findlib, ocamlbuild, pgocaml, camlp4 }:
+{ lib, stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, pgocaml, camlp4 }:
 
-stdenv.mkDerivation {
-  name = "ocaml-macaque-0.7.2";
-  src = fetchzip {
-    url = "https://github.com/ocsigen/macaque/archive/0.7.2.tar.gz";
-    sha256 = "14i0a8cndzndjmlkyhf31r451q99cnkndgxcj0id4qjqhdl4bmjv";
+stdenv.mkDerivation rec {
+  pname = "ocaml-macaque";
+  version = "0.7.2";
+
+  src = fetchFromGitHub {
+    owner = "ocsigen";
+    repo = "macaque";
+    rev = version;
+    sha256 = "sha256-W9ZFaINYYtIikKy/ZqdlKeFQSA7DQT9plc3+ZhlSIJI=";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild camlp4 ];
@@ -16,7 +20,7 @@ stdenv.mkDerivation {
     description = "Macros for Caml Queries";
     homepage = "https://github.com/ocsigen/macaque";
     license = licenses.lgpl2;
-    platforms = ocaml.meta.platforms or [];
+    platforms = ocaml.meta.platforms or [ ];
     maintainers = with maintainers; [ vbgl ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/magick/default.nix b/pkgs/development/ocaml-modules/magick/default.nix
index 016c059573b0c..f9fec120a6257 100644
--- a/pkgs/development/ocaml-modules/magick/default.nix
+++ b/pkgs/development/ocaml-modules/magick/default.nix
@@ -4,10 +4,12 @@ if lib.versionAtLeast ocaml.version "4.06"
 then throw "magick is not available for OCaml ${ocaml.version}"
 else
 
-stdenv.mkDerivation {
-  name = "ocaml-magick-0.34";
+stdenv.mkDerivation rec {
+  pname = "ocaml-magick";
+  version = "0.34";
+
   src = fetchurl {
-    url = "http://www.linux-nantes.org/~fmonnier/OCaml/ImageMagick/ImageMagick/OCaml-ImageMagick-0.34.tgz";
+    url = "http://www.linux-nantes.org/~fmonnier/OCaml/ImageMagick/ImageMagick/OCaml-ImageMagick-${version}.tgz";
     sha256 = "0gn9l2qdr8gby2x8c2mb59x1kipb2plr45rbq6ymcxyi0wmzfh3q";
   };
 
diff --git a/pkgs/development/ocaml-modules/markup/default.nix b/pkgs/development/ocaml-modules/markup/default.nix
index a8246e1cc7e88..8d35ae641a6a1 100644
--- a/pkgs/development/ocaml-modules/markup/default.nix
+++ b/pkgs/development/ocaml-modules/markup/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, fetchzip, ocaml, uchar, uutf, ounit2 }:
+{ lib, buildDunePackage, fetchFromGitHub, ocaml, uchar, uutf, ounit2 }:
 
 buildDunePackage rec {
   pname = "markup";
@@ -6,9 +6,11 @@ buildDunePackage rec {
 
   useDune2 = true;
 
-  src = fetchzip {
-    url = "https://github.com/aantron/markup.ml/archive/${version}.tar.gz";
-    sha256 = "09hkrf9pw6hpb9j06p5bddklpnjwdjpqza3bx2179l970yl67an9";
+  src = fetchFromGitHub {
+    owner = "aantron";
+    repo = "markup.ml";
+    rev = version;
+    sha256 = "sha256-yapjqAcn0XSC6Guoj69sXNpLZ2urXANkWhcafpPLEyY=";
   };
 
   propagatedBuildInputs = [ uchar uutf ];
diff --git a/pkgs/development/ocaml-modules/mdx/default.nix b/pkgs/development/ocaml-modules/mdx/default.nix
index 2677f56584e70..e5132d64d4d52 100644
--- a/pkgs/development/ocaml-modules/mdx/default.nix
+++ b/pkgs/development/ocaml-modules/mdx/default.nix
@@ -5,12 +5,12 @@
 
 buildDunePackage rec {
   pname = "mdx";
-  version = "1.11.0";
+  version = "1.11.1";
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/realworldocaml/mdx/releases/download/${version}/mdx-${version}.tbz";
-    sha256 = "1hk8ffh3d9hiibrj6691khnbmjnfs9psmiawnrbgi0577bw030wx";
+    sha256 = "sha256:1q6169gmynnbrvlnzlmx7lpd6hwv6vwxg5j8ibc88wgs5s0r0fb0";
   };
 
   nativeBuildInputs = [ cppo ];
diff --git a/pkgs/development/ocaml-modules/menhir/default.nix b/pkgs/development/ocaml-modules/menhir/default.nix
index 686cf98205801..1938206361e5e 100644
--- a/pkgs/development/ocaml-modules/menhir/default.nix
+++ b/pkgs/development/ocaml-modules/menhir/default.nix
@@ -5,6 +5,8 @@
 buildDunePackage rec {
   pname = "menhir";
 
+  minimalOCamlVersion = "4.03";
+
   inherit (menhirLib) version src useDune2;
 
   buildInputs = [ menhirLib menhirSdk ];
diff --git a/pkgs/development/ocaml-modules/menhir/lib.nix b/pkgs/development/ocaml-modules/menhir/lib.nix
index 5888833203c83..4d27fe3273895 100644
--- a/pkgs/development/ocaml-modules/menhir/lib.nix
+++ b/pkgs/development/ocaml-modules/menhir/lib.nix
@@ -2,14 +2,14 @@
 
 buildDunePackage rec {
   pname = "menhirLib";
-  version = "20211012";
+  version = "20211128";
 
   src = fetchFromGitLab {
     domain = "gitlab.inria.fr";
     owner = "fpottier";
     repo = "menhir";
     rev = version;
-    sha256 = "08kf5apbv15n2kcr3qhyr3rvsf2lg25ackr3x9kfgiiqc0p3sz40";
+    sha256 = "sha256-L/zfjPZfn9L7qqqqJGk3Ge52rvujOVPiL8jxfH5R60g=";
   };
 
   useDune2 = true;
diff --git a/pkgs/development/ocaml-modules/mirage-crypto/default.nix b/pkgs/development/ocaml-modules/mirage-crypto/default.nix
index f1ca1fef70284..102d3d2de07ee 100644
--- a/pkgs/development/ocaml-modules/mirage-crypto/default.nix
+++ b/pkgs/development/ocaml-modules/mirage-crypto/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, buildDunePackage, ounit, cstruct, dune-configurator, eqaf, bigarray-compat, pkg-config
+{ lib, fetchurl, buildDunePackage, ounit, cstruct, dune-configurator, eqaf, pkg-config
 , withFreestanding ? false
 , ocaml-freestanding
 }:
@@ -7,11 +7,11 @@ buildDunePackage rec {
   minimumOCamlVersion = "4.08";
 
   pname = "mirage-crypto";
-  version = "0.10.3";
+  version = "0.10.5";
 
   src = fetchurl {
     url = "https://github.com/mirage/mirage-crypto/releases/download/v${version}/mirage-crypto-v${version}.tbz";
-    sha256 = "a27910365d59b02c3f0e8a40d93a5b81835acf832e1ffa596ee772b41e8a900b";
+    sha256 = "sha256-eeKMSRZrBiTzWLv80P5LeouPib24uTigk2HLtORKpJU=";
   };
 
   useDune2 = true;
@@ -21,7 +21,7 @@ buildDunePackage rec {
 
   nativeBuildInputs = [ dune-configurator pkg-config ];
   propagatedBuildInputs = [
-    cstruct eqaf bigarray-compat
+    cstruct eqaf
   ] ++ lib.optionals withFreestanding [
     ocaml-freestanding
   ];
diff --git a/pkgs/development/ocaml-modules/mirage-crypto/pk.nix b/pkgs/development/ocaml-modules/mirage-crypto/pk.nix
index d6c4d494510da..82400b5da7c2b 100644
--- a/pkgs/development/ocaml-modules/mirage-crypto/pk.nix
+++ b/pkgs/development/ocaml-modules/mirage-crypto/pk.nix
@@ -1,5 +1,5 @@
 { buildDunePackage, ounit, randomconv, mirage-crypto, mirage-crypto-rng
-, cstruct, sexplib, ppx_sexp_conv, zarith, eqaf, rresult, gmp }:
+, cstruct, sexplib0, zarith, eqaf, gmp }:
 
 buildDunePackage {
   pname = "mirage-crypto-pk";
@@ -8,7 +8,7 @@ buildDunePackage {
 
   buildInputs = [ gmp ];
   propagatedBuildInputs = [ cstruct mirage-crypto mirage-crypto-rng
-                            zarith eqaf rresult sexplib ppx_sexp_conv ];
+                            zarith eqaf sexplib0 ];
 
   doCheck = true;
   checkInputs = [ ounit randomconv ];
diff --git a/pkgs/development/ocaml-modules/mirage/runtime.nix b/pkgs/development/ocaml-modules/mirage/runtime.nix
index 4a876658d1819..ce50ffd2c3ae2 100644
--- a/pkgs/development/ocaml-modules/mirage/runtime.nix
+++ b/pkgs/development/ocaml-modules/mirage/runtime.nix
@@ -3,7 +3,7 @@
 
 buildDunePackage rec {
   pname = "mirage-runtime";
-  version = "3.10.4";
+  version = "3.10.7";
 
   useDune2 = true;
 
@@ -11,7 +11,7 @@ buildDunePackage rec {
 
   src = fetchurl {
     url = "https://github.com/mirage/mirage/releases/download/v${version}/mirage-v${version}.tbz";
-    sha256 = "c2ea22b6faf16bed783cac0e0bafd87f321756a91798f56c9a930f0edb5d9116";
+    sha256 = "fec4492239c6d1fdd73db4da0782e33e66202e19595bf1d52aa98972296cc72d";
   };
 
   propagatedBuildInputs = [ ipaddr functoria-runtime fmt logs ocaml_lwt ];
diff --git a/pkgs/development/ocaml-modules/ocaml-lsp/default.nix b/pkgs/development/ocaml-modules/ocaml-lsp/default.nix
index 13ae64292ec7d..602f5eb77fe7e 100644
--- a/pkgs/development/ocaml-modules/ocaml-lsp/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-lsp/default.nix
@@ -1,4 +1,4 @@
-{ buildDunePackage, jsonrpc, lsp, re, makeWrapper, dot-merlin-reader }:
+{ lib, buildDunePackage, jsonrpc, lsp, re, makeWrapper, dot-merlin-reader, spawn }:
 
 buildDunePackage {
   pname = "ocaml-lsp-server";
@@ -7,7 +7,8 @@ buildDunePackage {
 
   inherit (lsp) preBuild;
 
-  buildInputs = lsp.buildInputs ++ [ lsp re ];
+  buildInputs = lsp.buildInputs ++ [ lsp re ]
+  ++ lib.optional (lib.versionAtLeast jsonrpc.version "1.9") spawn;
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix b/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix
index 004b7854107e1..26deb2f059700 100644
--- a/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix
+++ b/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix
@@ -10,10 +10,14 @@
 }:
 
 let params =
-  if lib.versionAtLeast ocaml.version "4.12"
+  if lib.versionAtLeast ocaml.version "4.13"
   then {
-    version = "1.8.3";
-    sha256 = "sha256-WO9ap78XZxJCi04LEBX+r21nfL2UdPiCLRMrJSI7FOk=";
+    version = "1.9.1";
+    sha256 = "sha256:1vnwdpjppihprc8q2i5zcqq7vp67255jclg90ldfvwafgljxn76g";
+  } else if lib.versionAtLeast ocaml.version "4.12"
+  then {
+    version = "1.9.0";
+    sha256 = "sha256:1ac44n6g3rf84gvhcca545avgf9vpkwkkkm0s8ipshfhp4g4jikh";
   } else {
     version = "1.4.1";
     sha256 = "1ssyazc0yrdng98cypwa9m3nzfisdzpp7hqnx684rqj8f0g3gs6f";
@@ -29,7 +33,7 @@ buildDunePackage rec {
   };
 
   useDune2 = true;
-  minimumOCamlVersion = "4.06";
+  minimalOCamlVersion = "4.06";
 
   buildInputs =
     if lib.versionAtLeast version "1.7.0" then
diff --git a/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.x.nix b/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.x.nix
index dab537df22190..9f4979d7563c8 100644
--- a/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.x.nix
+++ b/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.x.nix
@@ -2,15 +2,15 @@
 
 buildDunePackage rec {
    pname = "ocaml-migrate-parsetree";
-   version = "2.2.0";
+   version = "2.3.0";
 
    useDune2 = true;
 
    minimalOCamlVersion = "4.02";
 
    src = fetchurl {
-     url = "https://github.com/ocaml-ppx/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
-     sha256 = "188v3z09bg4gyv80c138fa3a3j2w54w5gc4r1ajw7klr70yqz9mj";
+     url = "https://github.com/ocaml-ppx/${pname}/releases/download/v${version}/${pname}-${version}.tbz";
+     sha256 = "sha256:02mzh1rcvc2xpq4iz01z7kvzsgxns3774ggxi96f147i8yr2d08h";
    };
 
    meta = {
diff --git a/pkgs/development/ocaml-modules/ocb-stubblr/default.nix b/pkgs/development/ocaml-modules/ocb-stubblr/default.nix
index d8d19f5e36514..2f26eb32ffb6a 100644
--- a/pkgs/development/ocaml-modules/ocb-stubblr/default.nix
+++ b/pkgs/development/ocaml-modules/ocb-stubblr/default.nix
@@ -1,9 +1,11 @@
 { stdenv, lib, fetchzip, ocaml, findlib, ocamlbuild, topkg, astring }:
 
-stdenv.mkDerivation {
-  name = "ocaml${ocaml.version}-ocb-stubblr-0.1.0";
+stdenv.mkDerivation rec {
+  pname = "ocaml${ocaml.version}-ocb-stubblr";
+  version = "0.1.0";
+
   src = fetchzip {
-    url = "https://github.com/pqwy/ocb-stubblr/releases/download/v0.1.0/ocb-stubblr-0.1.0.tbz";
+    url = "https://github.com/pqwy/ocb-stubblr/releases/download/v${version}/ocb-stubblr-${version}.tbz";
     name = "src.tar.bz";
     sha256 = "0hpds1lkq4j8wgslv7hnirgfrjmqi36h5rarpw9mwf24gfp5ays2";
   };
diff --git a/pkgs/development/ocaml-modules/ocf/default.nix b/pkgs/development/ocaml-modules/ocf/default.nix
index ee14a83d57cea..30f589e756136 100644
--- a/pkgs/development/ocaml-modules/ocf/default.nix
+++ b/pkgs/development/ocaml-modules/ocf/default.nix
@@ -1,37 +1,24 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, ocaml, findlib, ppx_tools, yojson }:
+{ lib, buildDunePackage, fetchFromGitLab, yojson }:
 
-if lib.versionOlder ocaml.version "4.03"
-|| lib.versionAtLeast ocaml.version "4.08"
-then throw "ocf not supported for ocaml ${ocaml.version}"
-else
-stdenv.mkDerivation rec {
+buildDunePackage rec {
   pname = "ocf";
-  version = "0.5.0";
-  src = fetchFromGitHub {
+  version = "0.8.0";
+  useDune2 = true;
+  minimalOCamlVersion = "4.03";
+  src = fetchFromGitLab {
+    domain = "framagit.org";
     owner = "zoggy";
     repo = "ocf";
-    rev = "release-${version}";
-    sha256 = "1fhq9l2nmr39hxzpavc0jssmba71nnmhsncdn4dsbh2ylv29w56y";
+    rev = version;
+    sha256 = "sha256:00ap3q5yjqmpk87lxqv1j2wkc7583ynhjr1jjrfn9r0j2h9pfd60";
   };
 
-  buildInputs = [ ocaml findlib ppx_tools ];
   propagatedBuildInputs = [ yojson ];
 
-  createFindlibDestdir = true;
-
-  dontStrip = true;
-
-  patches = [(fetchpatch {
-    url = "https://github.com/zoggy/ocf/commit/3a231c7a6c5e535a77c25e207af8952793436444.patch";
-    sha256 = "0nc8cggc5gxhch9amaz3s71lxs1xbgi7fs9p90cng04dsgr64xk5";
-  })
-  ];
-
   meta = with lib; {
     description = "OCaml library to read and write configuration options in JSON syntax";
-    homepage = "https://zoggy.github.io/ocf/";
+    homepage = "https://zoggy.frama.io/ocf/";
     license = licenses.lgpl3;
-    platforms = ocaml.meta.platforms or [];
     maintainers = with maintainers; [ regnat ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/ocf/ppx.nix b/pkgs/development/ocaml-modules/ocf/ppx.nix
new file mode 100644
index 0000000000000..0b1f6998ccadf
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ocf/ppx.nix
@@ -0,0 +1,14 @@
+{ buildDunePackage, ocf, ppxlib }:
+
+buildDunePackage {
+  pname = "ocf_ppx";
+  minimalOCamlVersion = "4.11";
+
+  inherit (ocf) src version useDune2;
+
+  buildInputs = [ ppxlib ocf ];
+
+  meta = ocf.meta // {
+    description = "Preprocessor for Ocf library";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ocplib-endian/default.nix b/pkgs/development/ocaml-modules/ocplib-endian/default.nix
index f2cf4acbf27b7..c0bccbd65a65d 100644
--- a/pkgs/development/ocaml-modules/ocplib-endian/default.nix
+++ b/pkgs/development/ocaml-modules/ocplib-endian/default.nix
@@ -1,11 +1,13 @@
-{ lib, buildDunePackage, fetchzip, cppo }:
+{ lib, buildDunePackage, fetchFromGitHub, cppo }:
 
 buildDunePackage rec {
   version = "1.1";
   pname = "ocplib-endian";
 
-  src = fetchzip {
-    url = "https://github.com/OCamlPro/ocplib-endian/archive/${version}.tar.gz";
+  src = fetchFromGitHub {
+    owner = "OCamlPro";
+    repo = "ocplib-endian";
+    rev = version;
     sha256 = "sha256-zKsSkhlZBXSqPtw+/WN3pwo9plM9rDZfMbGVfosqb10=";
   };
 
diff --git a/pkgs/development/ocaml-modules/ocsigen-deriving/default.nix b/pkgs/development/ocaml-modules/ocsigen-deriving/default.nix
index 1feb3ecae714b..d2e20838ecaf7 100644
--- a/pkgs/development/ocaml-modules/ocsigen-deriving/default.nix
+++ b/pkgs/development/ocaml-modules/ocsigen-deriving/default.nix
@@ -1,41 +1,41 @@
-{ stdenv, lib, fetchzip, ocaml, findlib, ocamlbuild, oasis, ocaml_optcomp, camlp4
+{ stdenv
+, lib
+, fetchFromGitHub
+, ocaml
+, findlib
+, ocamlbuild
+, oasis
+, camlp4
 , num
 }:
 
-let param =
-  if lib.versionAtLeast ocaml.version "4.03"
-  then {
-    version = "0.8.1";
-    sha256 = "03vzrybdpjydbpil97zmir71kpsn2yxkjnzysma7fvybk8ll4zh9";
-    buildInputs = [ num ];
-  } else {
-    version = "0.7.1";
-    sha256 = "0gg3nr3iic4rwqrcc0qvfm9x0x57zclvdsnpy0z8rv2fl5isbzms";
-  };
-in
+if !lib.versionAtLeast ocaml.version "4.03"
+then throw "ocsigen-deriving is not available of OCaml ${ocaml.version}"
+else
 
-let inherit (param) version; in
+stdenv.mkDerivation rec {
+  pname = "ocaml${ocaml.version}-ocsigen-deriving";
+  version = "0.8.2";
 
-stdenv.mkDerivation {
-  pname = "ocsigen-deriving";
-  inherit version;
-  src = fetchzip {
-    url = "https://github.com/ocsigen/deriving/archive/${version}.tar.gz";
-    inherit (param) sha256;
+  src = fetchFromGitHub {
+    owner = "ocsigen";
+    repo = "deriving";
+    rev = version;
+    sha256 = "sha256:09rp9mrr551na0nmclpxddlrkb6l2d7763xv14xfx467kff3z0wf";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild oasis ocaml_optcomp camlp4 ]
-  ++ (param.buildInputs or []);
-
   createFindlibDestdir = true;
 
-  meta =  {
+  buildInputs = [ ocaml findlib ocamlbuild oasis camlp4 num ];
+
+  meta = {
     homepage = "https://github.com/ocsigen/deriving";
     description = "Extension to OCaml for deriving functions from type declarations";
     license = lib.licenses.mit;
-    platforms = ocaml.meta.platforms or [];
+    inherit (ocaml.meta) platforms;
     maintainers = with lib.maintainers; [
-      gal_bolle vbgl
+      gal_bolle
+      vbgl
     ];
   };
 
diff --git a/pkgs/development/ocaml-modules/ocsigen-start/default.nix b/pkgs/development/ocaml-modules/ocsigen-start/default.nix
index ea5609e63b55e..1fccbbb9b30c2 100644
--- a/pkgs/development/ocaml-modules/ocsigen-start/default.nix
+++ b/pkgs/development/ocaml-modules/ocsigen-start/default.nix
@@ -5,7 +5,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "ocaml${ocaml.version}-ocsigen-start-${version}";
+  pname = "ocaml${ocaml.version}-ocsigen-start";
   version = "4.3.0";
 
   buildInputs = [ ocaml findlib ];
diff --git a/pkgs/development/ocaml-modules/ocurl/default.nix b/pkgs/development/ocaml-modules/ocurl/default.nix
index 83668b30cecde..ea2af8dd4c827 100644
--- a/pkgs/development/ocaml-modules/ocurl/default.nix
+++ b/pkgs/development/ocaml-modules/ocurl/default.nix
@@ -5,9 +5,11 @@ then throw "ocurl is not available for OCaml ${ocaml.version}"
 else
 
 stdenv.mkDerivation rec {
-  name = "ocurl-0.9.1";
+  pname = "ocurl";
+  version = "0.9.1";
+
   src = fetchurl {
-    url = "http://ygrek.org.ua/p/release/ocurl/${name}.tar.gz";
+    url = "http://ygrek.org.ua/p/release/ocurl/ocurl-${version}.tar.gz";
     sha256 = "0n621cxb9012pj280c7821qqsdhypj8qy9qgrah79dkh6a8h2py6";
   };
 
@@ -19,6 +21,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.mit;
     homepage = "http://ygrek.org.ua/p/ocurl/";
     maintainers = with lib.maintainers; [ bennofs ];
-    platforms = ocaml.meta.platforms or [];
+    platforms = ocaml.meta.platforms or [ ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/odn/default.nix b/pkgs/development/ocaml-modules/odn/default.nix
index edf7d86495516..9179ce3f1d160 100644
--- a/pkgs/development/ocaml-modules/odn/default.nix
+++ b/pkgs/development/ocaml-modules/odn/default.nix
@@ -4,11 +4,12 @@ if lib.versionAtLeast ocaml.version "4.06"
 then throw "ocaml-data-notation is not available for OCaml ${ocaml.version}"
 else
 
-stdenv.mkDerivation {
-  name = "ocaml-data-notation-0.0.11";
+stdenv.mkDerivation rec {
+  pname = "ocaml-data-notation";
+  version = "0.0.11";
 
   src = fetchurl {
-    url = "https://forge.ocamlcore.org/frs/download.php/1310/ocaml-data-notation-0.0.11.tar.gz";
+    url = "https://forge.ocamlcore.org/frs/download.php/1310/ocaml-data-notation-${version}.tar.gz";
     sha256 = "09a8zdyifpc2nl4hdvg9206142y31cq95ajgij011s1qcg3z93lj";
   };
 
@@ -17,16 +18,17 @@ stdenv.mkDerivation {
   createFindlibDestdir = true;
 
   configurePhase = "ocaml setup.ml -configure";
-  buildPhase     = "ocaml setup.ml -build";
-  installPhase   = "ocaml setup.ml -install";
+  buildPhase = "ocaml setup.ml -build";
+  installPhase = "ocaml setup.ml -install";
 
   meta = with lib; {
     description = "Store data using OCaml notation";
     homepage = "https://forge.ocamlcore.org/projects/odn/";
     license = licenses.lgpl21;
-    platforms = ocaml.meta.platforms or [];
+    platforms = ocaml.meta.platforms or [ ];
     maintainers = with maintainers; [
-      vbgl maggesi
+      vbgl
+      maggesi
     ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/omd/default.nix b/pkgs/development/ocaml-modules/omd/default.nix
index fee2f300eac7e..d6cea183d85cc 100644
--- a/pkgs/development/ocaml-modules/omd/default.nix
+++ b/pkgs/development/ocaml-modules/omd/default.nix
@@ -1,9 +1,11 @@
 { stdenv, lib, fetchurl, ocaml, findlib, ocamlbuild }:
 
-stdenv.mkDerivation {
-  name = "ocaml${ocaml.version}-omd-1.3.1";
+stdenv.mkDerivation rec {
+  pname = "ocaml${ocaml.version}-omd";
+  version = "1.3.1";
+
   src = fetchurl {
-    url = "https://github.com/Chris00/omd/releases/download/1.3.1/omd-1.3.1.tar.gz";
+    url = "https://github.com/Chris00/omd/releases/download/${version}/omd-${version}.tar.gz";
     sha256 = "1sgdgzpx96br7npj8mh91cli5mqmzsjpngwm7x4212n3k1d0ivwa";
   };
 
diff --git a/pkgs/development/ocaml-modules/optcomp/META b/pkgs/development/ocaml-modules/optcomp/META
deleted file mode 100644
index 8a942288f752c..0000000000000
--- a/pkgs/development/ocaml-modules/optcomp/META
+++ /dev/null
@@ -1,12 +0,0 @@
-# OASIS_START
-# DO NOT EDIT (digest: ec844fa3189acb2a866b89a69d111ba4)
-version = "1.6"
-description = "Optional compilation with cpp-like directives"
-requires = "camlp4"
-archive(syntax, preprocessor) = "optcomp.cma"
-archive(syntax, toploop) = "optcomp.cma"
-archive(syntax, preprocessor, native) = "optcomp.cmxa"
-archive(syntax, preprocessor, native, plugin) = "optcomp.cmxs"
-exists_if = "optcomp.cma"
-# OASIS_STOP
-
diff --git a/pkgs/development/ocaml-modules/optcomp/default.nix b/pkgs/development/ocaml-modules/optcomp/default.nix
deleted file mode 100644
index b78d070962e79..0000000000000
--- a/pkgs/development/ocaml-modules/optcomp/default.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ stdenv, lib, fetchurl, fetchpatch, ocaml, findlib, ocamlbuild, camlp4 }:
-
-stdenv.mkDerivation {
-  name = "ocaml-optcomp-1.6";
-  src = fetchurl {
-    url = "https://github.com/diml/optcomp/archive/1.6.tar.gz";
-    sha256 = "0hhhb2gisah1h22zlg5iszbgqxdd7x85cwd57bd4mfkx9l7dh8jh";
-  };
-
-  patches =
-    let inherit (lib) optional versionAtLeast; in
-    optional (versionAtLeast ocaml.version "4.02") (fetchpatch {
-      url = "https://github.com/diml/optcomp/commit/b7f809360c9794b383a4bc0492f6df381276b429.patch";
-      sha256 = "1n095lk94jq1rwi0l24g2wbgms7249wdd31n0ji895dr6755s93y";
-    })
-  ;
-
-  createFindlibDestdir = true;
-
-  buildInputs = [ ocaml findlib ocamlbuild camlp4 ];
-
-  configurePhase = ''
-    cp ${./META} META
-  '';
-
-  buildPhase = ''
-    ocamlbuild src/optcomp.cmxs src/optcomp.cma src/optcomp_o.native src/optcomp_r.native
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp _build/src/optcomp_o.native $out/bin/optcomp-o
-    cp _build/src/optcomp_r.native $out/bin/optcomp-r
-    ocamlfind install optcomp META _build/src/optcomp.{a,cma,cmxa,cmxs} _build/src/pa_optcomp.{cmi,cmx,mli}
-  '';
-
-  meta =  {
-    homepage = "https://github.com/diml/optcomp";
-    description = "Optional compilation for OCaml with cpp-like directives";
-    license = lib.licenses.bsd3;
-    platforms = ocaml.meta.platforms or [];
-    maintainers = [
-      lib.maintainers.gal_bolle
-    ];
-  };
-
-}
diff --git a/pkgs/development/ocaml-modules/otr/default.nix b/pkgs/development/ocaml-modules/otr/default.nix
index cec5d2ee0d075..d2ed78d51b8a2 100644
--- a/pkgs/development/ocaml-modules/otr/default.nix
+++ b/pkgs/development/ocaml-modules/otr/default.nix
@@ -1,24 +1,24 @@
 { lib, fetchurl, buildDunePackage
-, cstruct, sexplib0, rresult, mirage-crypto, mirage-crypto-pk, astring, base64
-, mirage-crypto-rng
+, cstruct, sexplib0, mirage-crypto, mirage-crypto-pk, astring, base64
 }:
 
 buildDunePackage rec {
   pname = "otr";
-  version = "0.3.8";
+  version = "0.3.10";
+
+  minimumOCamlVersion = "4.08";
 
   src = fetchurl {
     url = "https://github.com/hannesm/ocaml-otr/releases/download/v${version}/otr-v${version}.tbz";
-    sha256 = "18hn9l8wznqnlh2jf1hpnp36f1cx80ncwiiivsbj34llhgp3893d";
+    sha256 = "0dssc7p6s7z53n0mddyipjghzr8ld8bb7alaxqrx9gdpspwab1gq";
   };
 
   useDune2 = true;
 
   propagatedBuildInputs = [ cstruct sexplib0 mirage-crypto mirage-crypto-pk
-                            astring rresult base64 ];
+                            astring base64 ];
 
   doCheck = true;
-  checkInputs = [ mirage-crypto-rng ];
 
   meta = with lib; {
     homepage = "https://github.com/hannesm/ocaml-otr";
diff --git a/pkgs/development/ocaml-modules/pa_bench/default.nix b/pkgs/development/ocaml-modules/pa_bench/default.nix
deleted file mode 100644
index a2de553961a4c..0000000000000
--- a/pkgs/development/ocaml-modules/pa_bench/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{lib, buildOcaml, fetchurl, type_conv, pa_ounit}:
-
-buildOcaml rec {
-  pname = "pa_bench";
-  version = "113.00.00";
-
-  minimumSupportedOcamlVersion = "4.00";
-
-  src = fetchurl {
-    url = "https://github.com/janestreet/pa_bench/archive/${version}.tar.gz";
-    sha256 = "1cd6291gdnk6h8ziclg6x3if8z5xy67nfz9gx8sx4k2cwv0j29k5";
-  };
-
-  buildInputs = [ pa_ounit ];
-  propagatedBuildInputs = [ type_conv ];
-
-  meta = with lib; {
-    homepage = "https://github.com/janestreet/pa_bench";
-    description = "Syntax extension for inline benchmarks";
-    license = licenses.asl20;
-    maintainers = [ maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/pa_ounit/default.nix b/pkgs/development/ocaml-modules/pa_ounit/default.nix
deleted file mode 100644
index a9e49bab34a16..0000000000000
--- a/pkgs/development/ocaml-modules/pa_ounit/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib, buildOcaml, ocaml, fetchurl, ounit }:
-
-if lib.versionAtLeast ocaml.version "4.06"
-then throw "pa_ounit is not available for OCaml ${ocaml.version}"
-else
-
-buildOcaml rec {
-  pname = "pa_ounit";
-  version = "113.00.00";
-
-  src = fetchurl {
-    url = "https://github.com/janestreet/pa_ounit/archive/${version}.tar.gz";
-    sha256 = "0vi0p2hxcrdsl0319c9s8mh9hmk2i4ir6c6vrj8axkc37zkgc437";
-  };
-
-  propagatedBuildInputs = [ ounit ];
-
-  meta = with lib; {
-    homepage = "https://github.com/janestreet/pa_ounit";
-    description = "OCaml inline testing";
-    license = licenses.asl20;
-    maintainers = [ maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/paf/default.nix b/pkgs/development/ocaml-modules/paf/default.nix
index a4f3a99ce48f4..30277de4e5121 100644
--- a/pkgs/development/ocaml-modules/paf/default.nix
+++ b/pkgs/development/ocaml-modules/paf/default.nix
@@ -7,17 +7,10 @@
 , h2
 , tls-mirage
 , mimic
-, cohttp-lwt
-, letsencrypt
-, emile
 , ke
 , bigstringaf
-, domain-name
-, duration
 , faraday
-, ipaddr
 , tls
-, x509
 , lwt
 , logs
 , fmt
@@ -32,11 +25,11 @@
 
 buildDunePackage rec {
   pname = "paf";
-  version = "0.0.5";
+  version = "0.0.6";
 
   src = fetchurl {
     url = "https://github.com/dinosaure/paf-le-chien/releases/download/${version}/paf-${version}.tbz";
-    sha256 = "e85a018046eb062d2399fdbe8d9d3400a4d5cd51bb62840446503f557c3eeff1";
+    sha256 = "21adbe0f7f9c0242354fa996468d01bf21d5cbcbdd978c911df8e2e299e8f9ae";
   };
 
   useDune2 = true;
@@ -48,17 +41,10 @@ buildDunePackage rec {
     h2
     tls-mirage
     mimic
-    cohttp-lwt
-    letsencrypt
-    emile
     ke
     bigstringaf
-    domain-name
-    ipaddr
-    duration
     faraday
     tls
-    x509
     cstruct
   ];
 
diff --git a/pkgs/development/ocaml-modules/paf/le.nix b/pkgs/development/ocaml-modules/paf/le.nix
index 9281e48b6c263..06a8d9b51eb36 100644
--- a/pkgs/development/ocaml-modules/paf/le.nix
+++ b/pkgs/development/ocaml-modules/paf/le.nix
@@ -8,6 +8,7 @@
 , mirage-stack
 , mirage-time
 , tls-mirage
+, x509
 }:
 
 buildDunePackage {
@@ -29,6 +30,7 @@ buildDunePackage {
     mirage-stack
     mirage-time
     tls-mirage
+    x509
   ];
 
   doCheck = true;
diff --git a/pkgs/development/ocaml-modules/parany/default.nix b/pkgs/development/ocaml-modules/parany/default.nix
index 29213031f3585..4f072391deb0c 100644
--- a/pkgs/development/ocaml-modules/parany/default.nix
+++ b/pkgs/development/ocaml-modules/parany/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "parany";
-  version = "12.1.1";
+  version = "12.1.2";
 
   useDune2 = true;
   minimumOCamlVersion = "4.03.0";
@@ -11,7 +11,7 @@ buildDunePackage rec {
     owner = "UnixJunkie";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0s2sbmywy4yyh69dcrcqd85hd8jcd7qgfczy79nam4bvn87bjm72";
+    sha256 = "yOeJzb2Wr6jA4efI9/fuqDCl/Tza3zxT3YjAiJmhHHg=";
   };
 
   propagatedBuildInputs = [ ocamlnet cpu ];
diff --git a/pkgs/development/ocaml-modules/pipebang/default.nix b/pkgs/development/ocaml-modules/pipebang/default.nix
index 96cfc82bc2fbb..489ca3d2c7088 100644
--- a/pkgs/development/ocaml-modules/pipebang/default.nix
+++ b/pkgs/development/ocaml-modules/pipebang/default.nix
@@ -1,4 +1,4 @@
-{lib, buildOcaml, fetchurl}:
+{ lib, buildOcaml, fetchFromGitHub }:
 
 buildOcaml rec {
   pname = "pipebang";
@@ -6,9 +6,11 @@ buildOcaml rec {
 
   minimumSupportedOcamlVersion = "4.00";
 
-  src = fetchurl {
-    url = "https://github.com/janestreet/pipebang/archive/${version}.tar.gz";
-    sha256 = "0acm2y8wxvnapa248lkgm0vcc44hlwhrjxqkx1awjxzcmarnxhfk";
+  src = fetchFromGitHub {
+    owner = "janestreet";
+    repo = "pipebang";
+    rev = version;
+    sha256 = "sha256-9A3X/ciL5HtuKQ5awS+hDDBLL5ytOr12wHsmJLNRn+Q=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/pycaml/default.nix b/pkgs/development/ocaml-modules/pycaml/default.nix
index 1aa2590f2ae5f..bee8a6106ea18 100644
--- a/pkgs/development/ocaml-modules/pycaml/default.nix
+++ b/pkgs/development/ocaml-modules/pycaml/default.nix
@@ -1,18 +1,19 @@
-{stdenv, fetchurl, ocaml, findlib, ncurses, python, ocaml_make}:
+{ lib, stdenv, fetchurl, ocaml, findlib, ncurses, python, ocaml_make }:
 
 # This is the original pycaml version with patches from debian.
 
-stdenv.mkDerivation {
-  name = "pycaml-0.82-14";
+stdenv.mkDerivation rec {
+  pname = "pycaml";
+  version = "0.82-14";
 
   srcs = [
     (fetchurl {
-      url = "mirror://debian/pool/main/p/pycaml/pycaml_0.82.orig.tar.gz";
+      url = "mirror://debian/pool/main/p/pycaml/pycaml_${lib.versions.majorMinor version}.orig.tar.gz";
       sha256 = "d57be559c8d586c575717d47817986bbdbcebe2ffd16ad6b291525c62868babe";
     })
 
     (fetchurl {
-      url = "mirror://debian/pool/main/p/pycaml/pycaml_0.82-14.debian.tar.gz";
+      url = "mirror://debian/pool/main/p/pycaml/pycaml_${version}.debian.tar.gz";
       sha256 = "a763088ec1fa76c769bf586ed6692e7ac035b0a2bfd48a90a8e7a9539ec0c2f1";
     })
   ];
@@ -41,6 +42,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/chemoelectric/pycaml";
     description = "Bindings for python and ocaml";
     license = "LGPL";
-    platforms = ocaml.meta.platforms or [];
+    platforms = ocaml.meta.platforms or [ ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/react/default.nix b/pkgs/development/ocaml-modules/react/default.nix
index 7ae3e8e66f337..0edae98306988 100644
--- a/pkgs/development/ocaml-modules/react/default.nix
+++ b/pkgs/development/ocaml-modules/react/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, ocaml, findlib, topkg, ocamlbuild }:
 
-stdenv.mkDerivation {
-  name = "ocaml-react-1.2.1";
+stdenv.mkDerivation rec {
+  pname = "ocaml-react";
+  version = "1.2.1";
 
   src = fetchurl {
-    url = "https://erratique.ch/software/react/releases/react-1.2.1.tbz";
+    url = "https://erratique.ch/software/react/releases/react-${version}.tbz";
     sha256 = "1aj8w79gdd9xnrbz7s5p8glcb4pmimi8jp9f439dqnf6ih3mqb3v";
   };
 
@@ -16,7 +17,7 @@ stdenv.mkDerivation {
     homepage = "https://erratique.ch/software/react";
     description = "Applicative events and signals for OCaml";
     license = licenses.bsd3;
-    platforms = ocaml.meta.platforms or [];
-    maintainers = with maintainers; [ maggesi vbmithr gal_bolle];
+    platforms = ocaml.meta.platforms or [ ];
+    maintainers = with maintainers; [ maggesi vbmithr gal_bolle ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/reactivedata/default.nix b/pkgs/development/ocaml-modules/reactivedata/default.nix
index 899547a937be2..bc0c8f9e9b8ca 100644
--- a/pkgs/development/ocaml-modules/reactivedata/default.nix
+++ b/pkgs/development/ocaml-modules/reactivedata/default.nix
@@ -1,14 +1,18 @@
-{ lib, stdenv, fetchurl, ocaml, findlib, ocamlbuild, react, opaline }:
+{ lib, stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild, react, opaline }:
 
 if !lib.versionAtLeast ocaml.version "4.04"
 then throw "reactiveData is not available for OCaml ${ocaml.version}"
 else
 
-stdenv.mkDerivation {
-  name = "ocaml${ocaml.version}-reactiveData-0.2.2";
-  src = fetchurl {
-    url = "https://github.com/ocsigen/reactiveData/archive/0.2.2.tar.gz";
-    sha256 = "0jzagyp4zla28wykvcgqwd8df71ir0vb4s8akp02cfacd5v86sng";
+stdenv.mkDerivation rec {
+  pname = "ocaml${ocaml.version}-reactiveData";
+  version = "0.2.2";
+
+  src = fetchFromGitHub {
+    owner = "ocsigen";
+    repo = "reactiveData";
+    rev = version;
+    sha256 = "sha256-YLkacIbjxZQ/ThgSxjTqviBYih6eW2GX5H7iybQDv1A=";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild opaline ];
@@ -22,7 +26,7 @@ stdenv.mkDerivation {
     description = "An OCaml module for functional reactive programming (FRP) based on React";
     homepage = "https://github.com/ocsigen/reactiveData";
     license = licenses.lgpl21;
-    platforms = ocaml.meta.platforms or [];
+    platforms = ocaml.meta.platforms or [ ];
     maintainers = with maintainers; [ vbgl ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/seq/default.nix b/pkgs/development/ocaml-modules/seq/default.nix
index 44503668ff0ad..6131585e34b15 100644
--- a/pkgs/development/ocaml-modules/seq/default.nix
+++ b/pkgs/development/ocaml-modules/seq/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation ({
   version = "0.1";
-  name = "ocaml${ocaml.version}-seq-0.1";
+  pname = "ocaml${ocaml.version}-seq";
 
   meta = {
     license = lib.licenses.lgpl21;
diff --git a/pkgs/development/ocaml-modules/sha/default.nix b/pkgs/development/ocaml-modules/sha/default.nix
index 80a5205a23014..c1a76e4149e63 100644
--- a/pkgs/development/ocaml-modules/sha/default.nix
+++ b/pkgs/development/ocaml-modules/sha/default.nix
@@ -2,11 +2,11 @@
 
 buildDunePackage rec {
   pname = "sha";
-  version = "1.14";
+  version = "1.15.1";
 
   src = fetchurl {
     url = "https://github.com/djs55/ocaml-${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
-    sha256 = "114vydrfdp7fayigvgk3ckiby0kh4n49c1j53v8k40gk6nzm3l19";
+    sha256 = "sha256-cRtjydvwgXgimi6F3C48j7LrWgfMO6m9UJKjKlxvp0Q=";
   };
 
   useDune2 = true;
diff --git a/pkgs/development/ocaml-modules/tls/async.nix b/pkgs/development/ocaml-modules/tls/async.nix
index 0215ac1808825..ceac7a7c07495 100644
--- a/pkgs/development/ocaml-modules/tls/async.nix
+++ b/pkgs/development/ocaml-modules/tls/async.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, tls, async, cstruct-async, core, cstruct, mirage-crypto-rng-async, async_find }:
+{ lib, buildDunePackage, tls, async, cstruct-async, core, cstruct, mirage-crypto-rng-async }:
 
 buildDunePackage rec {
   pname = "tls-async";
@@ -12,7 +12,6 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [
     async
-    async_find
     core
     cstruct
     cstruct-async
diff --git a/pkgs/development/ocaml-modules/tls/default.nix b/pkgs/development/ocaml-modules/tls/default.nix
index e5c9b7b54b1c7..81f0a176bfc96 100644
--- a/pkgs/development/ocaml-modules/tls/default.nix
+++ b/pkgs/development/ocaml-modules/tls/default.nix
@@ -1,15 +1,16 @@
 { lib, fetchurl, buildDunePackage
-, cstruct, cstruct-sexp, domain-name, fmt, ppx_cstruct, ppx_sexp_conv, logs, hkdf, mirage-crypto, mirage-crypto-ec, mirage-crypto-pk, mirage-crypto-rng, ocaml_lwt, ptime, rresult, sexplib, x509
+, cstruct, cstruct-sexp, domain-name, fmt, ppx_cstruct, ppx_sexp_conv, logs, hkdf, mirage-crypto, mirage-crypto-ec, mirage-crypto-pk, mirage-crypto-rng, ocaml_lwt, ptime, sexplib, x509
+, ipaddr, ipaddr-sexp
 , alcotest, cstruct-unix, ounit2, randomconv
 }:
 
 buildDunePackage rec {
   pname = "tls";
-  version = "0.14.1";
+  version = "0.15.2";
 
   src = fetchurl {
     url = "https://github.com/mirleft/ocaml-tls/releases/download/v${version}/tls-v${version}.tbz";
-    sha256 = "58cf2d517d6eac5b1ccc5eeb656da690aef2125a19c1eca3fbececd858046216";
+    sha256 = "b76371757249bbeabb12c333de4ea2a09c095767bdbbc83322538c0da1fc1e36";
   };
 
   minimumOCamlVersion = "4.08";
@@ -30,9 +31,10 @@ buildDunePackage rec {
     mirage-crypto-rng
     ocaml_lwt
     ptime
-    rresult
     sexplib
     x509
+    ipaddr
+    ipaddr-sexp
   ];
 
   doCheck = true;
diff --git a/pkgs/development/ocaml-modules/type_conv/108.08.00.nix b/pkgs/development/ocaml-modules/type_conv/108.08.00.nix
index 72e4fcbb35f1f..337874e11a94f 100644
--- a/pkgs/development/ocaml-modules/type_conv/108.08.00.nix
+++ b/pkgs/development/ocaml-modules/type_conv/108.08.00.nix
@@ -1,18 +1,19 @@
-{lib, stdenv, fetchurl, ocaml, findlib, camlp4}:
+{ lib, stdenv, fetchurl, ocaml, findlib, camlp4 }:
 
 if !lib.versionAtLeast ocaml.version "3.12"
-|| lib.versionAtLeast ocaml.version "4.03"
+  || lib.versionAtLeast ocaml.version "4.03"
 then throw "type_conv-108.08.00 is not available for OCaml ${ocaml.version}" else
 
-stdenv.mkDerivation {
-  name = "ocaml-type_conv-108.08.00";
+stdenv.mkDerivation rec {
+  pname = "ocaml-type_conv";
+  version = "108.08.00";
 
   src = fetchurl {
-    url = "https://ocaml.janestreet.com/ocaml-core/108.08.00/individual/type_conv-108.08.00.tar.gz";
+    url = "https://ocaml.janestreet.com/ocaml-core/${version}/individual/type_conv-${version}.tar.gz";
     sha256 = "08ysikwwp69zvc147lzzg79nwlrzrk738rj0ggcfadi8h5il42sl";
   };
 
-  buildInputs = [ocaml findlib camlp4];
+  buildInputs = [ ocaml findlib camlp4 ];
 
   createFindlibDestdir = true;
 
@@ -21,7 +22,7 @@ stdenv.mkDerivation {
     description = "Support library for OCaml preprocessor type conversions";
     license = licenses.asl20;
     branch = "108";
-    platforms = ocaml.meta.platforms or [];
+    platforms = ocaml.meta.platforms or [ ];
     maintainers = with maintainers; [ maggesi ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/type_conv/109.60.01.nix b/pkgs/development/ocaml-modules/type_conv/109.60.01.nix
index e41e9b188fc85..cc77a731f020c 100644
--- a/pkgs/development/ocaml-modules/type_conv/109.60.01.nix
+++ b/pkgs/development/ocaml-modules/type_conv/109.60.01.nix
@@ -1,18 +1,19 @@
-{stdenv, lib, fetchurl, ocaml, findlib, camlp4}:
+{ stdenv, lib, fetchurl, ocaml, findlib, camlp4 }:
 
 if !lib.versionAtLeast ocaml.version "4.00"
-|| lib.versionAtLeast ocaml.version "4.03"
+  || lib.versionAtLeast ocaml.version "4.03"
 then throw "type_conv-109.60.01 is not available for OCaml ${ocaml.version}" else
 
-stdenv.mkDerivation {
-  name = "ocaml-type_conv-109.60.01";
+stdenv.mkDerivation rec {
+  pname = "ocaml-type_conv";
+  version = "109.60.01";
 
   src = fetchurl {
-    url = "https://github.com/janestreet/type_conv/archive/109.60.01.tar.gz";
+    url = "https://github.com/janestreet/type_conv/archive/${version}.tar.gz";
     sha256 = "0lpxri68glgq1z2pp02rp45cb909xywbff8d4idljrf6fzzil2zx";
   };
 
-  buildInputs = [ocaml findlib camlp4];
+  buildInputs = [ ocaml findlib camlp4 ];
 
   createFindlibDestdir = true;
 
@@ -20,7 +21,7 @@ stdenv.mkDerivation {
     homepage = "http://forge.ocamlcore.org/projects/type-conv/";
     description = "Support library for OCaml preprocessor type conversions";
     license = lib.licenses.lgpl21;
-    platforms = ocaml.meta.platforms or [];
+    platforms = ocaml.meta.platforms or [ ];
     maintainers = with lib.maintainers; [ maggesi ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/typerep/default.nix b/pkgs/development/ocaml-modules/typerep/default.nix
deleted file mode 100644
index c51d28f9e19b7..0000000000000
--- a/pkgs/development/ocaml-modules/typerep/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, buildOcaml, fetchFromGitHub, type_conv }:
-
-buildOcaml rec {
-  pname = "typerep";
-  version = "112.24.00";
-
-  minimumSupportedOcamlVersion = "4.00";
-
-  src = fetchFromGitHub {
-    owner = "janestreet";
-    repo = "typerep";
-    rev = version;
-    sha256 = "sha256-XCdUZp9Buwmo6qPYAoPD2P/gUgyWHTR7boyecBPKlho=";
-  };
-
-  propagatedBuildInputs = [ type_conv ];
-
-  meta = with lib; {
-    homepage = "https://github.com/janestreet/typerep";
-    description = "Runtime types for OCaml (beta version)";
-    license = licenses.asl20;
-    maintainers = [ maintainers.ericbmerritt ];
-  };
-
-}
diff --git a/pkgs/development/ocaml-modules/uchar/default.nix b/pkgs/development/ocaml-modules/uchar/default.nix
index 7eec01547150b..7d7d87af85328 100644
--- a/pkgs/development/ocaml-modules/uchar/default.nix
+++ b/pkgs/development/ocaml-modules/uchar/default.nix
@@ -1,10 +1,11 @@
 { stdenv, fetchurl, ocaml, findlib, ocamlbuild, opaline, withShared ? true, lib }:
 
-stdenv.mkDerivation {
-  name = "ocaml${ocaml.version}-uchar-0.0.2";
+stdenv.mkDerivation rec {
+  pname = "ocaml${ocaml.version}-uchar";
+  version = "0.0.2";
 
   src = fetchurl {
-    url = "https://github.com/ocaml/uchar/releases/download/v0.0.2/uchar-0.0.2.tbz";
+    url = "https://github.com/ocaml/uchar/releases/download/v${version}/uchar-${version}.tbz";
     sha256 = "1w2saw7zanf9m9ffvz2lvcxvlm118pws2x1wym526xmydhqpyfa7";
   };
 
@@ -12,7 +13,7 @@ stdenv.mkDerivation {
   buildInputs = [ findlib ocaml ocamlbuild ];
   buildPhase = "ocaml pkg/build.ml native=true native-dynlink=${lib.boolToString withShared}";
   installPhase = "${opaline}/bin/opaline -libdir $OCAMLFIND_DESTDIR";
-  configurePlatforms = [];
+  configurePlatforms = [ ];
 
   meta = {
     description = "Compatibility library for OCaml’s Uchar module";
diff --git a/pkgs/development/ocaml-modules/variantslib/default.nix b/pkgs/development/ocaml-modules/variantslib/default.nix
deleted file mode 100644
index 25d379f516486..0000000000000
--- a/pkgs/development/ocaml-modules/variantslib/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, buildOcaml, ocaml, fetchFromGitHub, type_conv }:
-
-if lib.versionAtLeast ocaml.version "4.06"
-then throw "variantslib-109.15.03 is not available for OCaml ${ocaml.version}"
-else
-
-buildOcaml rec {
-  pname = "variantslib";
-  version = "109.15.03";
-
-  minimumSupportedOcamlVersion = "4.00";
-
-  src = fetchFromGitHub {
-    owner = "janestreet";
-    repo = "variantslib";
-    rev = version;
-    sha256 = "sha256-pz3i3od2CqKSrm7uTQ2jdidFFwx7m7g1QuG4UdLk01k=";
-  };
-
-  propagatedBuildInputs = [ type_conv ];
-
-  meta = with lib; {
-    homepage = "https://github.com/janestreet/variantslib";
-    description = "OCaml variants as first class values";
-    license = licenses.asl20;
-    maintainers = [ maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/wayland/default.nix b/pkgs/development/ocaml-modules/wayland/default.nix
index 82764af64f53e..7dfb46ce63cf4 100644
--- a/pkgs/development/ocaml-modules/wayland/default.nix
+++ b/pkgs/development/ocaml-modules/wayland/default.nix
@@ -12,15 +12,15 @@
 
 buildDunePackage rec {
   pname = "wayland";
-  version = "0.2";
+  version = "1.0";
 
   minimumOCamlVersion = "4.08";
 
   useDune2 = true;
 
   src = fetchurl {
-    url = "https://github.com/talex5/ocaml-wayland/releases/download/v${version}/wayland-v${version}.tbz";
-    sha256 = "4eb323e42a8c64e9e49b15a588342bfcc1e99640305cb261d128c75612d9458c";
+    url = "https://github.com/talex5/ocaml-wayland/releases/download/v${version}/wayland-${version}.tbz";
+    sha256 = "bf8fd0057242d11f1c265c11cfa5de3c517ec0ad5994eae45e1efe3aac034510";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/ocaml-modules/x509/default.nix b/pkgs/development/ocaml-modules/x509/default.nix
index 8330eb279651b..116772e78193d 100644
--- a/pkgs/development/ocaml-modules/x509/default.nix
+++ b/pkgs/development/ocaml-modules/x509/default.nix
@@ -1,6 +1,6 @@
 { lib, fetchurl, buildDunePackage
 , alcotest, cstruct-unix
-, asn1-combinators, domain-name, fmt, gmap, pbkdf, rresult, mirage-crypto, mirage-crypto-ec, mirage-crypto-pk
+, asn1-combinators, domain-name, fmt, gmap, pbkdf, mirage-crypto, mirage-crypto-ec, mirage-crypto-pk, ipaddr
 , logs, base64
 }:
 
@@ -8,17 +8,17 @@ buildDunePackage rec {
   minimumOCamlVersion = "4.07";
 
   pname = "x509";
-  version = "0.14.1";
+  version = "0.15.2";
 
   src = fetchurl {
     url = "https://github.com/mirleft/ocaml-x509/releases/download/v${version}/x509-v${version}.tbz";
-    sha256 = "d91eb4f2790f9d098713c71cc4b5d12706aedb1795666b5e6d667fe5c262f9c3";
+    sha256 = "4034afdd83a0cb8291b1f809403015da9139bd772813d59d6093e42ec31ba643";
   };
 
   useDune2 = true;
 
   buildInputs = [ alcotest cstruct-unix ];
-  propagatedBuildInputs = [ asn1-combinators domain-name fmt gmap mirage-crypto mirage-crypto-pk mirage-crypto-ec pbkdf rresult logs base64 ];
+  propagatedBuildInputs = [ asn1-combinators domain-name fmt gmap mirage-crypto mirage-crypto-pk mirage-crypto-ec pbkdf logs base64 ipaddr ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/xtmpl/default.nix b/pkgs/development/ocaml-modules/xtmpl/default.nix
index f1c1f15dc72dc..7c2f0a01e53c0 100644
--- a/pkgs/development/ocaml-modules/xtmpl/default.nix
+++ b/pkgs/development/ocaml-modules/xtmpl/default.nix
@@ -1,39 +1,23 @@
-{ lib, stdenv, fetchFromGitLab, ocaml, findlib, iri, ppx_tools, js_of_ocaml
-, js_of_ocaml-ppx, re }:
+{ lib, buildDunePackage, fetchFromGitLab, iri, re, sedlex_2, uutf }:
 
-if lib.versionOlder ocaml.version "4.03"
-|| lib.versionAtLeast ocaml.version "4.11"
-then throw "xtmpl not supported for ocaml ${ocaml.version}"
-else
-stdenv.mkDerivation rec {
-  name = "ocaml${ocaml.version}-xtmpl-${version}";
-  version = "0.17.0";
+buildDunePackage rec {
+  pname = "xtmpl";
+  version = "0.19.0";
+  useDune2 = true;
   src = fetchFromGitLab {
     domain = "framagit.org";
     owner = "zoggy";
     repo = "xtmpl";
     rev = version;
-    sha256 = "1hq6y4rhz958q40145k4av8hx8jyvspg78xf741samd7vc3jd221";
+    sha256 = "sha256:0vwj0aayg60wm98d91fg3hmj90730liljy4cn8771dpxvz8m07bw";
   };
 
-  patches = [ ./jsoo.patch ];
-
-  postPatch = ''
-    substituteInPlace Makefile --replace js_of_ocaml.ppx js_of_ocaml-ppx
-  '';
-
-  buildInputs = [ ocaml findlib ppx_tools js_of_ocaml js_of_ocaml-ppx ];
-  propagatedBuildInputs = [ iri re ];
-
-  createFindlibDestdir = true;
-
-  dontStrip = true;
+  propagatedBuildInputs = [ iri re sedlex_2 uutf ];
 
   meta = with lib; {
     description = "XML templating library for OCaml";
     homepage = "https://www.good-eris.net/xtmpl/";
     license = licenses.lgpl3;
-    platforms = ocaml.meta.platforms or [];
     maintainers = with maintainers; [ regnat ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/xtmpl/jsoo.patch b/pkgs/development/ocaml-modules/xtmpl/jsoo.patch
deleted file mode 100644
index 7546dbca924a5..0000000000000
--- a/pkgs/development/ocaml-modules/xtmpl/jsoo.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/xtmpl_js.ml b/xtmpl_js.ml
-index e0d3894..991d1b3 100644
---- a/xtmpl_js.ml
-+++ b/xtmpl_js.ml
-@@ -25,6 +25,8 @@
- 
- (** *)
- 
-+open Js_of_ocaml
-+
- let log s = Firebug.console##log (Js.string s);;
- 
- module X = Xtmpl_rewrite
-diff --git a/xtmpl_js.mli b/xtmpl_js.mli
-index d709896..5ed471c 100644
---- a/xtmpl_js.mli
-+++ b/xtmpl_js.mli
-@@ -25,6 +25,8 @@
- 
- (** Convenient functions to use in JS code *)
- 
-+open Js_of_ocaml
-+
- (** Create a new tree of DOM nodes from a given XML tree.
-   Errors are logged to the firebug console.
-   @param doc Default is [Dom_html.document].
diff --git a/pkgs/development/ocaml-modules/xtmpl/ppx.nix b/pkgs/development/ocaml-modules/xtmpl/ppx.nix
new file mode 100644
index 0000000000000..b6f5bd65000fd
--- /dev/null
+++ b/pkgs/development/ocaml-modules/xtmpl/ppx.nix
@@ -0,0 +1,14 @@
+{ buildDunePackage, xtmpl, ppxlib }:
+
+buildDunePackage {
+  pname = "xtmpl_ppx";
+  minimalOCamlVersion = "4.11";
+
+  inherit (xtmpl) src version useDune2;
+
+  buildInputs = [ ppxlib xtmpl ];
+
+  meta = xtmpl.meta // {
+    description = "Xml templating library, ppx extension";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/yaml/default.nix b/pkgs/development/ocaml-modules/yaml/default.nix
index 2b8714ed10341..43481e4c7f387 100644
--- a/pkgs/development/ocaml-modules/yaml/default.nix
+++ b/pkgs/development/ocaml-modules/yaml/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, buildDunePackage
+{ lib, fetchurl, buildDunePackage, ocaml
 , dune-configurator
 , bos, ctypes, fmt, logs, rresult
 , mdx, alcotest, crowbar, junit_alcotest, ezjsonm
@@ -17,7 +17,9 @@ buildDunePackage rec {
 
   buildInputs = [ dune-configurator ];
   propagatedBuildInputs = [ bos ctypes rresult ];
-  checkInputs = [ fmt logs mdx alcotest crowbar junit_alcotest ezjsonm ];
+  # crowbar is not available for OCaml < 4.08
+  doCheck = lib.versionAtLeast ocaml.version "4.08";
+  checkInputs = [ fmt logs mdx.bin alcotest crowbar junit_alcotest ezjsonm ];
 
   meta = {
     description = "Parse and generate YAML 1.1 files";
diff --git a/pkgs/development/octave-modules/arduino/default.nix b/pkgs/development/octave-modules/arduino/default.nix
index 77089827c4b73..fd97c55a40e93 100644
--- a/pkgs/development/octave-modules/arduino/default.nix
+++ b/pkgs/development/octave-modules/arduino/default.nix
@@ -2,7 +2,7 @@
 , lib
 , fetchurl
 , instrument-control
-, arduino
+, arduino-core-unwrapped
 }:
 
 buildOctavePackage rec {
@@ -18,9 +18,8 @@ buildOctavePackage rec {
     instrument-control
   ];
 
-  # Might be able to use pkgs.arduino-core
   propagatedBuildInputs = [
-    arduino
+    arduino-core-unwrapped
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/octave-modules/gsl/default.nix b/pkgs/development/octave-modules/gsl/default.nix
index 5922c015dbdf0..e050f381a9148 100644
--- a/pkgs/development/octave-modules/gsl/default.nix
+++ b/pkgs/development/octave-modules/gsl/default.nix
@@ -1,4 +1,5 @@
 { buildOctavePackage
+, stdenv
 , lib
 , fetchurl
 , gsl
@@ -22,5 +23,8 @@ buildOctavePackage rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ KarlJoad ];
     description = "Octave bindings to the GNU Scientific Library";
+    # error: use of undeclared identifier 'feval'; did you mean 'octave::feval'?
+    # error: no member named 'is_real_type' in 'octave_value'
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/octave-modules/level-set/default.nix b/pkgs/development/octave-modules/level-set/default.nix
index d1f882904d598..3cce6f2cad559 100644
--- a/pkgs/development/octave-modules/level-set/default.nix
+++ b/pkgs/development/octave-modules/level-set/default.nix
@@ -1,4 +1,5 @@
 { buildOctavePackage
+, stdenv
 , lib
 , fetchgit
 , automake
@@ -50,5 +51,7 @@ buildOctavePackage rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ KarlJoad ];
     description = "Routines for calculating the time-evolution of the level-set equation and extracting geometric information from the level-set function";
+    # /build/level-set-2019-04-13.tar.gz: Cannot open: No such file or directory
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/octave-modules/ocl/default.nix b/pkgs/development/octave-modules/ocl/default.nix
index 0e47160ad0ea4..095b386e07368 100644
--- a/pkgs/development/octave-modules/ocl/default.nix
+++ b/pkgs/development/octave-modules/ocl/default.nix
@@ -1,4 +1,5 @@
 { buildOctavePackage
+, stdenv
 , lib
 , fetchurl
 }:
@@ -22,5 +23,7 @@ buildOctavePackage rec {
        Single-Instruction-Multiple-Data (SIMD) computations, selectively
        using available OpenCL hardware and drivers.
     '';
+    # error: structure has no member 'dir'
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/octave-modules/strings/default.nix b/pkgs/development/octave-modules/strings/default.nix
index 7b556272f5da5..cf5acd36855be 100644
--- a/pkgs/development/octave-modules/strings/default.nix
+++ b/pkgs/development/octave-modules/strings/default.nix
@@ -1,4 +1,5 @@
 { buildOctavePackage
+, stdenv
 , lib
 , fetchurl
 , pcre
@@ -33,5 +34,7 @@ buildOctavePackage rec {
     # Claims to have a freebsd license, but I found none.
     maintainers = with maintainers; [ KarlJoad ];
     description = "Additional functions for manipulation and analysis of strings";
+    # Some pcre symbols claimed to be missing
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/octave-modules/tisean/default.nix b/pkgs/development/octave-modules/tisean/default.nix
index b21ef0a5f56ac..bfe01f10f2fff 100644
--- a/pkgs/development/octave-modules/tisean/default.nix
+++ b/pkgs/development/octave-modules/tisean/default.nix
@@ -1,4 +1,5 @@
 { buildOctavePackage
+, stdenv
 , lib
 , fetchurl
 # Octave dependencies
@@ -29,5 +30,7 @@ buildOctavePackage rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ KarlJoad ];
     description = "Port of TISEAN 3.0.1";
+    # Some gfortran symbols claimed to be missing
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/octave-modules/video/default.nix b/pkgs/development/octave-modules/video/default.nix
index 8467da98be99e..57868e83f55e1 100644
--- a/pkgs/development/octave-modules/video/default.nix
+++ b/pkgs/development/octave-modules/video/default.nix
@@ -1,4 +1,5 @@
 { buildOctavePackage
+, stdenv
 , lib
 , fetchurl
 , pkg-config
@@ -27,5 +28,7 @@ buildOctavePackage rec {
     license = with licenses; [ gpl3Plus bsd3 ];
     maintainers = with maintainers; [ KarlJoad ];
     description = "Wrapper for OpenCV's CvCapture_FFMPEG and CvVideoWriter_FFMPEG";
+    # error: declaration of 'panic' has a different language linkage
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/perl-modules/expression-generator/filtered-requirements.sh b/pkgs/development/perl-modules/expression-generator/filtered-requirements.sh
index 98c01508fd5a3..2e3509d68c12c 100755
--- a/pkgs/development/perl-modules/expression-generator/filtered-requirements.sh
+++ b/pkgs/development/perl-modules/expression-generator/filtered-requirements.sh
@@ -3,13 +3,13 @@
 source lib-cache.sh;
 
 print_reqs() {
-	module_name="$1";
+    module_name="$1";
 
-	./requirements.sh "$1"| while read; do
-		if let "$(./source-download-link.sh "${REPLY}" | wc -c)" && [ perl != "$REPLY" ]; then
-			echo "$REPLY";
-		fi;
-	done;
+    ./requirements.sh "$1"| while read; do
+        if let "$(./source-download-link.sh "${REPLY}" | wc -c)" && [ perl != "$REPLY" ]; then
+            echo "$REPLY";
+        fi;
+    done;
 }
 
 module_name="$1";
diff --git a/pkgs/development/perl-modules/expression-generator/full-requirements.sh b/pkgs/development/perl-modules/expression-generator/full-requirements.sh
index 29ed83668ed55..91218f36f609b 100755
--- a/pkgs/development/perl-modules/expression-generator/full-requirements.sh
+++ b/pkgs/development/perl-modules/expression-generator/full-requirements.sh
@@ -3,19 +3,19 @@
 source lib-cache.sh;
 
 print_requirements () {
-	module_name="$1";
+    module_name="$1";
 
-	./requirements.sh "$module_name" | while read; do
-		echo "$REPLY";
-		print_reqs_cache "$REPLY";
-	done | sort | uniq
+    ./requirements.sh "$module_name" | while read; do
+        echo "$REPLY";
+        print_reqs_cache "$REPLY";
+    done | sort | uniq
 };
 
 print_reqs_cache () {
-	module_name="$1";
-	module_basename="${module_name//::/-}";
-	
-	cached_output print_requirements "$module_basename" "$module_name" "full.deps";
+    module_name="$1";
+    module_basename="${module_name//::/-}";
+
+    cached_output print_requirements "$module_basename" "$module_name" "full.deps";
 };
 
 print_reqs_cache "$@";
diff --git a/pkgs/development/perl-modules/expression-generator/grab-url.sh b/pkgs/development/perl-modules/expression-generator/grab-url.sh
index 809cf87fcebf1..8935cad8cefe3 100755
--- a/pkgs/development/perl-modules/expression-generator/grab-url.sh
+++ b/pkgs/development/perl-modules/expression-generator/grab-url.sh
@@ -3,13 +3,13 @@
 source lib-cache.sh
 
 get_file() {
-	url="$1";
+    url="$1";
 
-	if [ -n "$url" ]; then 
-		curl "$1";
-	else
-		echo -n;
-	fi;
+    if [ -n "$url" ]; then
+        curl "$1";
+    else
+        echo -n;
+    fi;
 }
 
 url="$1";
@@ -17,4 +17,3 @@ name="$2";
 name=${name:-$(basename "$url")}
 
 cached_output get_file "${name%%.*}" "$url" "${name#*.}"
-
diff --git a/pkgs/development/perl-modules/expression-generator/lib-cache.sh b/pkgs/development/perl-modules/expression-generator/lib-cache.sh
index 7473e2d1c15ed..65095144bcd68 100644
--- a/pkgs/development/perl-modules/expression-generator/lib-cache.sh
+++ b/pkgs/development/perl-modules/expression-generator/lib-cache.sh
@@ -4,16 +4,15 @@
 # Third argument: argument to command
 # Fourth argument: cache type
 cached_output () {
-	cmd="$1";
-	basename="$2";
-	arg="$3";
-	ext="$4";
-	
-	if ! [ -e "cache-${ext//./-}/${basename}.${ext}" ]; then
-		mkdir -p "cache-${ext//./-}";
-		$cmd $arg > "cache-${ext//./-}/${basename}.${ext}";
-	fi;
+    cmd="$1";
+    basename="$2";
+    arg="$3";
+    ext="$4";
 
-	cat "cache-${ext//./-}/${basename}.${ext}";
-}
+    if ! [ -e "cache-${ext//./-}/${basename}.${ext}" ]; then
+        mkdir -p "cache-${ext//./-}";
+        $cmd $arg > "cache-${ext//./-}/${basename}.${ext}";
+    fi;
 
+    cat "cache-${ext//./-}/${basename}.${ext}";
+}
diff --git a/pkgs/development/perl-modules/expression-generator/requirements.sh b/pkgs/development/perl-modules/expression-generator/requirements.sh
index 60ee68d99adaf..19b24c55a8eed 100755
--- a/pkgs/development/perl-modules/expression-generator/requirements.sh
+++ b/pkgs/development/perl-modules/expression-generator/requirements.sh
@@ -6,12 +6,12 @@ module_name="$1";
 module_basename="${1//::/-}";
 
 print_requirements () {
-	module_name="$1";
-	
-	./retrieve-meta-yaml.sh "$module_name" |
-		sed -re '1,/^requires:/d; /^[a-z]/,$d; s@^\s*@@; s@:\s.*@@';
-	./retrieve-meta-yaml.sh "$module_name" |
-		sed -re '1,/^build_requires:/d; /^[a-z]/,$d; s@^\s*@@; s@:\s.*@@';
+    module_name="$1";
+
+    ./retrieve-meta-yaml.sh "$module_name" |
+        sed -re '1,/^requires:/d; /^[a-z]/,$d; s@^\s*@@; s@:\s.*@@';
+    ./retrieve-meta-yaml.sh "$module_name" |
+        sed -re '1,/^build_requires:/d; /^[a-z]/,$d; s@^\s*@@; s@:\s.*@@';
 };
 
 cached_output print_requirements "$module_basename" "$module_name" "direct.deps";
diff --git a/pkgs/development/perl-modules/expression-generator/retrieve-file-link.sh b/pkgs/development/perl-modules/expression-generator/retrieve-file-link.sh
index a9cf0d94e0d3f..c8ec5df11b7dd 100755
--- a/pkgs/development/perl-modules/expression-generator/retrieve-file-link.sh
+++ b/pkgs/development/perl-modules/expression-generator/retrieve-file-link.sh
@@ -6,9 +6,9 @@ file_name="$2";
 version_regexp="${module_basename}(-[0-9.a-z]+){0,1}";
 author_regexp="[A-Z0-9]+";
 
-./retrieve-modulepage.sh "$module_basename" | 
-	egrep "[<]a href=\"[a-z0-9/]*/(${author_regexp}/){0,1}${version_regexp}/${file_name}" |
-	sed -re "s@.*href=\"@@; s@\".*@@" |
-	sed -re 's@^/@http://search.cpan.org/@';
+./retrieve-modulepage.sh "$module_basename" |
+    egrep "[<]a href=\"[a-z0-9/]*/(${author_regexp}/){0,1}${version_regexp}/${file_name}" |
+    sed -re "s@.*href=\"@@; s@\".*@@" |
+    sed -re 's@^/@http://search.cpan.org/@';
 
 echo "$link_line";
diff --git a/pkgs/development/perl-modules/expression-generator/retrieve-meta-yaml.sh b/pkgs/development/perl-modules/expression-generator/retrieve-meta-yaml.sh
index 2c85d45691f09..3b162ebe693fe 100755
--- a/pkgs/development/perl-modules/expression-generator/retrieve-meta-yaml.sh
+++ b/pkgs/development/perl-modules/expression-generator/retrieve-meta-yaml.sh
@@ -3,11 +3,11 @@
 source lib-cache.sh;
 
 print_meta_yaml () {
-	module_name="$1";
-	module_basename="${module_name//::/-}";
+    module_name="$1";
+    module_basename="${module_name//::/-}";
 
-	./grab-url.sh "$(./retrieve-file-link.sh "$module_basename" "META.yml")" \
-		"${module_basename}.meta.yml";
+    ./grab-url.sh "$(./retrieve-file-link.sh "$module_basename" "META.yml")" \
+        "${module_basename}.meta.yml";
 };
 
 module_name="$1";
diff --git a/pkgs/development/perl-modules/expression-generator/source-download-link.sh b/pkgs/development/perl-modules/expression-generator/source-download-link.sh
index 575f47629c26b..779d131961f07 100755
--- a/pkgs/development/perl-modules/expression-generator/source-download-link.sh
+++ b/pkgs/development/perl-modules/expression-generator/source-download-link.sh
@@ -6,12 +6,12 @@ module_name="$1";
 module_basename="${module_name//::/-}";
 
 write_link() {
-	module_basename="$1";
+    module_basename="$1";
 
-	./retrieve-modulepage.sh "$module_basename" | 
-		grep -A 2 "This Release" |
-		grep href |
-		sed -re 's/.*href="//; s/".*//; s@^/@http://search.cpan.org/@';
+    ./retrieve-modulepage.sh "$module_basename" |
+        grep -A 2 "This Release" |
+        grep href |
+        sed -re 's/.*href="//; s/".*//; s@^/@http://search.cpan.org/@';
 }
 
 cached_output write_link "$module_basename" "$module_basename" src.link;
diff --git a/pkgs/development/perl-modules/expression-generator/write-nix-expression.sh b/pkgs/development/perl-modules/expression-generator/write-nix-expression.sh
index cfe1506640b31..9f5cdb9142eb2 100755
--- a/pkgs/development/perl-modules/expression-generator/write-nix-expression.sh
+++ b/pkgs/development/perl-modules/expression-generator/write-nix-expression.sh
@@ -5,16 +5,16 @@ cd $(dirname $0);
 source lib-cache.sh;
 
 print_expression () {
-	module_name="$1";
-	module_basename="${module_name//::/-}";
-	module_compressedname="perl${module_name//::/}";
-	sourcelink="$(./source-download-link.sh "${module_name}")";
-	version_name="${sourcelink%.tar.*}";
-	version_name="${version_name##*/}";
-	dependencies="$(./filtered-requirements.sh "$module_name" | sed -e 's/^/perl/; s/:://g' | xargs)";
-	source_hash=$(nix-prefetch-url "$sourcelink" 2>/dev/null);
-
-	cat <<EOF
+    module_name="$1";
+    module_basename="${module_name//::/-}";
+    module_compressedname="perl${module_name//::/}";
+    sourcelink="$(./source-download-link.sh "${module_name}")";
+    version_name="${sourcelink%.tar.*}";
+    version_name="${version_name##*/}";
+    dependencies="$(./filtered-requirements.sh "$module_name" | sed -e 's/^/perl/; s/:://g' | xargs)";
+    source_hash=$(nix-prefetch-url "$sourcelink" 2>/dev/null);
+
+    cat <<EOF
 
   ${module_compressedname} = import ../development/perl-modules/generic perl {
     name = "${version_name}";
diff --git a/pkgs/development/php-packages/apcu/default.nix b/pkgs/development/php-packages/apcu/default.nix
index 0cfc7b4b44fd3..150c761ae5113 100644
--- a/pkgs/development/php-packages/apcu/default.nix
+++ b/pkgs/development/php-packages/apcu/default.nix
@@ -3,8 +3,8 @@
 buildPecl {
   pname = "apcu";
 
-  version = "5.1.20";
-  sha256 = "sha256-uZ1A+v7Ab00TL87lPnUm3b/B0EHqbgThc4nfrSj5w5A=";
+  version = "5.1.21";
+  sha256 = "sha256-EDNTBEhpbufK3shQUPbfUTX7EzAHLvKnRWk5Ks/s+8E=";
 
   buildInputs = [ pcre2 ];
   doCheck = true;
diff --git a/pkgs/development/php-packages/ast/default.nix b/pkgs/development/php-packages/ast/default.nix
index 65e734e9254d3..7ab4ff13b4020 100644
--- a/pkgs/development/php-packages/ast/default.nix
+++ b/pkgs/development/php-packages/ast/default.nix
@@ -3,8 +3,8 @@
 buildPecl {
   pname = "ast";
 
-  version = "1.0.12";
-  sha256 = "1mcfx989yrakixlsx2d8v6kyxawfwhig4mra9ccpjasfhad0d31x";
+  version = "1.0.16";
+  sha256 = "sha256-Rb2jS3gMRmHOd89lzYpQT7VlJtS0Vu3Ml9eRyG84ec4=";
 
   meta = with lib; {
     description = "Exposes the abstract syntax tree generated by PHP";
diff --git a/pkgs/development/php-packages/composer/default.nix b/pkgs/development/php-packages/composer/default.nix
index 2ae6ec0554766..504c1940260f4 100644
--- a/pkgs/development/php-packages/composer/default.nix
+++ b/pkgs/development/php-packages/composer/default.nix
@@ -1,14 +1,14 @@
 { mkDerivation, fetchurl, makeWrapper, unzip, lib, php }:
 let
   pname = "composer";
-  version = "2.1.9";
+  version = "2.2.1";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://getcomposer.org/download/${version}/composer.phar";
-    sha256 = "1fj8sq21qdsdidj5zh8s3c12pmf9nkmj36igmmixc5vc2h7bf02d";
+    sha256 = "sha256-HSBnzYpN9UZJiwSBew+jgn8pHVZLzeKSVOjW0tsV+JY=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/php-packages/couchbase/default.nix b/pkgs/development/php-packages/couchbase/default.nix
index 18513945bf995..1b90e71fd2093 100644
--- a/pkgs/development/php-packages/couchbase/default.nix
+++ b/pkgs/development/php-packages/couchbase/default.nix
@@ -1,7 +1,7 @@
 { lib, buildPecl, fetchFromGitHub, writeText, libcouchbase, zlib, php, substituteAll }:
 let
   pname = "couchbase";
-  version = "3.2.0";
+  version = "3.2.1";
 in
 buildPecl {
   inherit pname version;
@@ -10,7 +10,7 @@ buildPecl {
     owner = "couchbase";
     repo = "php-couchbase";
     rev = "v${version}";
-    sha256 = "sha256-rvlyH28xWLIVwK3yqqdhkoD1h6kl8FDq3Byo7mhV3jM=";
+    sha256 = "sha256-Ti1jo1do0xiY/FAfyG/YI/TTcgFTMWy8cuhorDodUko=";
   };
 
   configureFlags = [ "--with-couchbase" ];
diff --git a/pkgs/development/php-packages/event/default.nix b/pkgs/development/php-packages/event/default.nix
index ed23bcc4b0b66..f10b474f7b1b1 100644
--- a/pkgs/development/php-packages/event/default.nix
+++ b/pkgs/development/php-packages/event/default.nix
@@ -2,8 +2,8 @@
 buildPecl {
   pname = "event";
 
-  version = "3.0.5";
-  sha256 = "0q5a83mcl97cyry5rd85j5xsjvflnki6s5cm56igjm0szxvgj39c";
+  version = "3.0.6";
+  sha256 = "sha256-BN43wydPQBCVla29YoPqKSVihSZCkLAIgDZb+CNQecw=";
 
   configureFlags = [
     "--with-event-libevent-dir=${libevent.dev}"
diff --git a/pkgs/development/php-packages/gnupg/default.nix b/pkgs/development/php-packages/gnupg/default.nix
new file mode 100644
index 0000000000000..d00c9781062ac
--- /dev/null
+++ b/pkgs/development/php-packages/gnupg/default.nix
@@ -0,0 +1,37 @@
+{ buildPecl, lib, gpgme, file, gnupg }:
+
+buildPecl {
+  pname = "gnupg";
+
+  version = "1.5.0";
+  sha256 = "0r0akrjjf9i460z11llybdr6sg2rlcz38nwfy0yqz443ljdggxfl";
+
+  buildInputs = [ gpgme ];
+  checkInputs = [ gnupg ];
+
+  postPhpize = ''
+    substituteInPlace configure \
+      --replace '/usr/bin/file' '${file}/bin/file' \
+      --replace 'SEARCH_PATH="/usr/local /usr /opt"' 'SEARCH_PATH="${gpgme.dev}"'
+  '';
+
+  postConfigure = with lib; ''
+    substituteInPlace Makefile \
+      --replace 'run-tests.php' 'run-tests.php -q --offline'
+    substituteInPlace tests/gnupg_res_init_file_name.phpt \
+      --replace '/usr/bin/gpg' '${gnupg}/bin/gpg' \
+      --replace 'string(12)' 'string(${toString (stringLength "${gnupg}/bin/gpg")})'
+    substituteInPlace tests/gnupg_oo_init_file_name.phpt \
+      --replace '/usr/bin/gpg' '${gnupg}/bin/gpg' \
+      --replace 'string(12)' 'string(${toString (stringLength "${gnupg}/bin/gpg")})'
+  '';
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "PHP wrapper for GpgME library that provides access to GnuPG";
+    license = licenses.bsd3;
+    homepage = "https://pecl.php.net/package/gnupg";
+    maintainers = with maintainers; [ taikx4 ] ++ teams.php.members;
+  };
+}
diff --git a/pkgs/development/php-packages/igbinary/default.nix b/pkgs/development/php-packages/igbinary/default.nix
index 258b0debbae08..886f75ecc9f3d 100644
--- a/pkgs/development/php-packages/igbinary/default.nix
+++ b/pkgs/development/php-packages/igbinary/default.nix
@@ -3,8 +3,8 @@
 buildPecl {
   pname = "igbinary";
 
-  version = "3.2.3";
-  sha256 = "1ffaqhckkk1qr5dk1fl7f8dm2w4lj4gqrgazzmc67acsdmp7z5f0";
+  version = "3.2.6";
+  sha256 = "sha256-yjLjlezbREemnV6lGzX+sZw7xXWbRolv729+LKQajkM=";
 
   configureFlags = [ "--enable-igbinary" ];
   makeFlags = [ "phpincludedir=$(dev)/include" ];
diff --git a/pkgs/development/php-packages/imagick/default.nix b/pkgs/development/php-packages/imagick/default.nix
index 7da324b2e1a24..280ad28f8f605 100644
--- a/pkgs/development/php-packages/imagick/default.nix
+++ b/pkgs/development/php-packages/imagick/default.nix
@@ -3,8 +3,8 @@
 buildPecl {
   pname = "imagick";
 
-  version = "3.5.0";
-  sha256 = "0afjyll6rr79am6d1p041bl4dj44hp9z4gzmlhrkvkdsdz1vfpbr";
+  version = "3.6.0";
+  sha256 = "sha256-Till8tcN1ZpA55V9VuWQ5zHK0maen4ng/KFZ10jSlH4=";
 
   configureFlags = [ "--with-imagick=${imagemagick.dev}" ];
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/php-packages/mailparse/default.nix b/pkgs/development/php-packages/mailparse/default.nix
index 1981b3d6aea2c..f3796eb3b6c62 100644
--- a/pkgs/development/php-packages/mailparse/default.nix
+++ b/pkgs/development/php-packages/mailparse/default.nix
@@ -3,8 +3,8 @@
 buildPecl {
   pname = "mailparse";
 
-  version = "3.1.1";
-  sha256 = "02nfjbgyjbr48rw6r46gd713hkxh7nghg2rcbr726zhzz182c3y7";
+  version = "3.1.2";
+  sha256 = "sha256-sGR6sH6kgPzBNTM2jjj9tPS7RdMNzmX8kGUqZwpPQBA=";
 
   internalDeps = [ php.extensions.mbstring ];
   postConfigure = ''
diff --git a/pkgs/development/php-packages/maxminddb/default.nix b/pkgs/development/php-packages/maxminddb/default.nix
index eae232b6c017e..852a86a7b1787 100644
--- a/pkgs/development/php-packages/maxminddb/default.nix
+++ b/pkgs/development/php-packages/maxminddb/default.nix
@@ -1,7 +1,7 @@
 { buildPecl, lib, fetchFromGitHub, libmaxminddb }:
 let
   pname = "maxminddb";
-  version = "1.10.1";
+  version = "1.11.0";
 in
 buildPecl {
   inherit pname version;
@@ -10,7 +10,7 @@ buildPecl {
     owner = "maxmind";
     repo = "MaxMind-DB-Reader-php";
     rev = "v${version}";
-    sha256 = "1m5y733x4ykldi1pym54mdahfwfnwy2r1n6fnndwi8jz9px9pa5k";
+    sha256 = "sha256-Dw1+pYJmZ3U2+rgSOEkx4a6HB8FebSr7YZodOjSipjI=";
   };
 
   buildInputs = [ libmaxminddb ];
diff --git a/pkgs/development/php-packages/mongodb/default.nix b/pkgs/development/php-packages/mongodb/default.nix
index b65862750e72f..2ff72b608c2c7 100644
--- a/pkgs/development/php-packages/mongodb/default.nix
+++ b/pkgs/development/php-packages/mongodb/default.nix
@@ -14,8 +14,8 @@
 buildPecl {
   pname = "mongodb";
 
-  version = "1.9.1";
-  sha256 = "1mzyssy2a89grw7rwmh0x22lql377nmnqlcv9piam1c32qiwxlg9";
+  version = "1.12.0";
+  sha256 = "sha256-DZ9nCwISiLtsmwYJefGR8dp3PXKRAGcxZvOLYX4kMX4=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
diff --git a/pkgs/development/php-packages/pcov/default.nix b/pkgs/development/php-packages/pcov/default.nix
index f0e3e75c71c32..88c18ed64a247 100644
--- a/pkgs/development/php-packages/pcov/default.nix
+++ b/pkgs/development/php-packages/pcov/default.nix
@@ -3,8 +3,8 @@
 buildPecl {
   pname = "pcov";
 
-  version = "1.0.9";
-  sha256 = "0q2ig5lxzpwz3qgr05wcyh5jzhfxlygkv6nj6jagkhiialng2710";
+  version = "1.0.11";
+  sha256 = "sha256-rSLmTNOvBlMwGCrBQsHDq0Dek0SCzUAPi9dgZBMKwkI=";
 
   buildInputs = [ pcre2 ];
 
diff --git a/pkgs/development/php-packages/php-cs-fixer/default.nix b/pkgs/development/php-packages/php-cs-fixer/default.nix
index 2e6cc6723be4b..8e3329ae0b114 100644
--- a/pkgs/development/php-packages/php-cs-fixer/default.nix
+++ b/pkgs/development/php-packages/php-cs-fixer/default.nix
@@ -1,14 +1,14 @@
 { mkDerivation, fetchurl, makeWrapper, lib, php }:
 let
   pname = "php-cs-fixer";
-  version = "3.0.0";
+  version = "3.4.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 = "141rkcr0wbsqnc4s5vg4bk4dmxwigwxa3j0vi5c42b5k1lq3sgwr";
+    sha256 = "sha256-UlZ3L5JaFN988WaHeZZRdl9yif29zFO0LMiFDGkMFuQ=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/php-packages/phpstan/default.nix b/pkgs/development/php-packages/phpstan/default.nix
index 029d9f4677634..4a193d9eaac1b 100644
--- a/pkgs/development/php-packages/phpstan/default.nix
+++ b/pkgs/development/php-packages/phpstan/default.nix
@@ -1,14 +1,14 @@
 { mkDerivation, fetchurl, makeWrapper, lib, php }:
 let
   pname = "phpstan";
-  version = "0.12.99";
+  version = "1.2.0";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/phpstan/phpstan/releases/download/${version}/phpstan.phar";
-    sha256 = "0rv8xf5yx88wh95myysqmv29n5rr15zgwsvh8a4xb1pmw3h9kb6q";
+    sha256 = "sha256-WA1N6fOibS0+txaGxH+cOgec9CsrIYzQbpjQCfQf/ao=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/php-packages/protobuf/default.nix b/pkgs/development/php-packages/protobuf/default.nix
index 87007b1ea12bd..2d4a1af9af6c6 100644
--- a/pkgs/development/php-packages/protobuf/default.nix
+++ b/pkgs/development/php-packages/protobuf/default.nix
@@ -3,8 +3,8 @@
 buildPecl {
   pname = "protobuf";
 
-  version = "3.17.3";
-  sha256 = "05nn6ps271vwrbr9w08lyyzsszabnqhz1x0vbblg0q8y2xrmb6dl";
+  version = "3.19.1";
+  sha256 = "sha256-kAPNPnvbCrmGITM3Hjpsn62TASV8eNCizFN8+1+I6bY=";
 
   buildInputs = [ pcre2 ];
 
diff --git a/pkgs/development/php-packages/psalm/default.nix b/pkgs/development/php-packages/psalm/default.nix
index 95d8ca425fc76..a772ae441a5fb 100644
--- a/pkgs/development/php-packages/psalm/default.nix
+++ b/pkgs/development/php-packages/psalm/default.nix
@@ -1,14 +1,14 @@
 { mkDerivation, fetchurl, makeWrapper, lib, php }:
 let
   pname = "psalm";
-  version = "4.7.3";
+  version = "4.15.0";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
-    url = "https://github.com/vimeo/psalm/releases/download/${version}/psalm.phar";
-    sha256 = "0d8gxkpm4rc00a8br5wzjpglkwx95kr15s4z3cvxyf6iik1j5r47";
+    url = "https://github.com/vimeo/psalm/releases/download/v${version}/psalm.phar";
+    sha256 = "jvUNnA5OTmw3h1O1Ur7pUojgU5IRgwq2U/JF/ByO0EA=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/php-packages/psysh/default.nix b/pkgs/development/php-packages/psysh/default.nix
index 6b7277130c093..b3ca5edebf9c8 100644
--- a/pkgs/development/php-packages/psysh/default.nix
+++ b/pkgs/development/php-packages/psysh/default.nix
@@ -1,14 +1,14 @@
 { mkDerivation, fetchurl, makeWrapper, lib, php }:
 let
   pname = "psysh";
-  version = "0.10.8";
+  version = "0.11.0";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/bobthecow/psysh/releases/download/v${version}/psysh-v${version}.tar.gz";
-    sha256 = "sha256-6opSBKR5eI5HlaJy4A94JrxYfUtCCNVlyntmLZbWfOE=";
+    sha256 = "sha256-UIAeOVbKWcfNV3bXaBhkK06wezhtig8aBZfB27umwFU=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/php-packages/rdkafka/default.nix b/pkgs/development/php-packages/rdkafka/default.nix
index 1b963a01ad5dc..6ac94b8eb025f 100644
--- a/pkgs/development/php-packages/rdkafka/default.nix
+++ b/pkgs/development/php-packages/rdkafka/default.nix
@@ -3,8 +3,8 @@
 buildPecl {
   pname = "rdkafka";
 
-  version = "5.0.0";
-  sha256 = "sha256-Qy+6rkPczhdxFbDhcuzmUTLMPUXYZ0HaheDBhkh4FXs=";
+  version = "5.0.2";
+  sha256 = "sha256-slCwtt8ySE5Zk2tnaYO6E0N20VZS8CVSsr8EgqssvOk=";
 
   buildInputs = [ rdkafka pcre2 ];
 
diff --git a/pkgs/development/php-packages/redis/default.nix b/pkgs/development/php-packages/redis/default.nix
index 56e8a0a1fae5b..025c2a38ab0f2 100644
--- a/pkgs/development/php-packages/redis/default.nix
+++ b/pkgs/development/php-packages/redis/default.nix
@@ -3,8 +3,8 @@
 buildPecl {
   pname = "redis";
 
-  version = "5.3.4";
-  sha256 = "1k5l7xxb06rlwq9jbmbbr03pc74d75vgv7h5bqjkbwan6dphafab";
+  version = "5.3.5";
+  sha256 = "sha256-1V+lzGmRmJF7or3IJ9pjKtd/AJuiZC0nUEVql22+WYk=";
 
   internalDeps = with php.extensions; [
     session
diff --git a/pkgs/development/php-packages/swoole/default.nix b/pkgs/development/php-packages/swoole/default.nix
index a6687922bc178..664837c2f3dca 100644
--- a/pkgs/development/php-packages/swoole/default.nix
+++ b/pkgs/development/php-packages/swoole/default.nix
@@ -3,8 +3,8 @@
 buildPecl {
   pname = "swoole";
 
-  version = "4.6.7";
-  sha256 = "107wp403z8skkqrcm240vyyy6wqx5a4v2bqhlshlknyi14r2v165";
+  version = "4.8.4";
+  sha256 = "sha256-gqDXcbjnsmo2XdrrRPeRrAD1yXtLkY8fZtu9OaiDq6s=";
 
   buildInputs = [ pcre2 ] ++ lib.optionals (!stdenv.isDarwin) [ valgrind ];
   internalDeps = lib.optionals (lib.versionOlder php.version "7.4") [ php.extensions.hash ];
diff --git a/pkgs/development/php-packages/xdebug/default.nix b/pkgs/development/php-packages/xdebug/default.nix
index 43387380ddacb..a7a710b3193e0 100644
--- a/pkgs/development/php-packages/xdebug/default.nix
+++ b/pkgs/development/php-packages/xdebug/default.nix
@@ -3,8 +3,8 @@
 buildPecl {
   pname = "xdebug";
 
-  version = "3.0.4";
-  sha256 = "1bvjmnx9bcfq4ikp02kiqg0f7ccgx4mkmz5d7g6v0d263x4r0wmj";
+  version = "3.1.2";
+  sha256 = "sha256-CD9r4RAN95zL3wSdr8OTC6s18OuA+bGawa2E+md5zPM=";
 
   doCheck = true;
   checkTarget = "test";
diff --git a/pkgs/development/php-packages/yaml/default.nix b/pkgs/development/php-packages/yaml/default.nix
index ef58b315faeec..d4803c9d21ac7 100644
--- a/pkgs/development/php-packages/yaml/default.nix
+++ b/pkgs/development/php-packages/yaml/default.nix
@@ -3,8 +3,8 @@
 buildPecl {
   pname = "yaml";
 
-  version = "2.2.1";
-  sha256 = "sha256-4XrQTnUuJf0Jm93S350m3+8YPI0AxBebydei4cl9eBk=";
+  version = "2.2.2";
+  sha256 = "sha256-EZBS8EYdV9hvRMJS+cmy3XQ0hscBwaCroK6+zdDYuCo=";
 
   configureFlags = [ "--with-yaml=${libyaml}" ];
 
diff --git a/pkgs/development/python-modules/Mako/default.nix b/pkgs/development/python-modules/Mako/default.nix
index cf30286126986..4c16861823fdc 100644
--- a/pkgs/development/python-modules/Mako/default.nix
+++ b/pkgs/development/python-modules/Mako/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "Mako";
-  version = "1.1.5";
+  version = "1.1.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "169fa52af22a91900d852e937400e79f535496191c63712e3b9fda5a9bed6fc3";
+    sha256 = "4e9e345a41924a954251b95b4b28e14a301145b544901332e658907a7464b6b2";
   };
 
   propagatedBuildInputs = [ markupsafe ];
diff --git a/pkgs/development/python-modules/Markups/default.nix b/pkgs/development/python-modules/Markups/default.nix
index bacfe95a9a137..1fa304f57a8ae 100644
--- a/pkgs/development/python-modules/Markups/default.nix
+++ b/pkgs/development/python-modules/Markups/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "Markups";
-  version = "3.1.2";
+  version = "3.1.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2954d53656d9ec84f2f6c077e91a1de534e05647f20d327757283bbb5a857770";
+    sha256 = "ab9747a72c1c6457418eb4276c79871977c13a654618e4f12e2a1f0990fbf2fc";
   };
 
   checkInputs = [ markdown docutils pygments pyyaml ];
diff --git a/pkgs/development/python-modules/Nikola/default.nix b/pkgs/development/python-modules/Nikola/default.nix
index 364e50c1024c9..faa17a838396b 100644
--- a/pkgs/development/python-modules/Nikola/default.nix
+++ b/pkgs/development/python-modules/Nikola/default.nix
@@ -41,12 +41,12 @@
 
 buildPythonPackage rec {
   pname = "Nikola";
-  version = "8.1.3";
+  version = "8.2.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05eac356bb4273cdd05d2dd6ad676226133496c457af91987c3f0d40e2fe57ef";
+    sha256 = "9998fedfcb932e19e3b54faeb497a49cde8b15163af764c5afe5847fef5ec1ff";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ROPGadget/default.nix b/pkgs/development/python-modules/ROPGadget/default.nix
deleted file mode 100644
index 6be0ed48e2894..0000000000000
--- a/pkgs/development/python-modules/ROPGadget/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi
-, capstone}:
-
-buildPythonPackage rec {
-  pname = "ROPGadget";
-  version = "6.6";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "dc61186e0114ec67ec7ce374df8fd2ddc2a7cba129a1242338e900a7483fba22";
-  };
-
-  propagatedBuildInputs = [ capstone ];
-
-  meta = with lib; {
-    description = "Tool to search for gadgets in binaries to facilitate ROP exploitation";
-    homepage = "http://shell-storm.org/project/ROPgadget/";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ bennofs ];
-  };
-}
diff --git a/pkgs/development/python-modules/absl-py/default.nix b/pkgs/development/python-modules/absl-py/default.nix
index 611686e5c0aff..30a0e68dea0cf 100644
--- a/pkgs/development/python-modules/absl-py/default.nix
+++ b/pkgs/development/python-modules/absl-py/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "absl-py";
-  version = "0.14.1";
+  version = "0.15.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "eb0383bd431c0d7b2320179904cab00120a10977e3c9671d99efbbed17efb55a";
+    sha256 = "72d782fbeafba66ba3e525d46bccac949b9a174dbf66233e50ece09ee688dc81";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/actdiag/default.nix b/pkgs/development/python-modules/actdiag/default.nix
index 92917f6ea9548..dd0a1c20cc769 100644
--- a/pkgs/development/python-modules/actdiag/default.nix
+++ b/pkgs/development/python-modules/actdiag/default.nix
@@ -1,18 +1,44 @@
-{ lib, buildPythonPackage, fetchPypi
-, nose, docutils, blockdiag, reportlab }:
+{ lib
+, blockdiag
+, buildPythonPackage
+, fetchFromGitHub
+, nose
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
 
 buildPythonPackage rec {
   pname = "actdiag";
-  version = "2.0.0";
+  version = "3.0.0";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0g51v9dmdq18z33v332f1f0cmb3hqgaga5minj0mc2sglark1s7h";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "blockdiag";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-WmprkHOgvlsOIg8H77P7fzEqxGnj6xaL7Df7urRkg3o=";
   };
 
-  propagatedBuildInputs = [ blockdiag docutils ];
+  propagatedBuildInputs = [
+    blockdiag
+    setuptools
+  ];
+
+  checkInputs = [
+    nose
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    "src/actdiag/tests/"
+  ];
 
-  checkInputs = [ nose reportlab ];
+  pythonImportsCheck = [
+    "actdiag"
+  ];
 
   meta = with lib; {
     description = "Generate activity-diagram image from spec-text file (similar to Graphviz)";
diff --git a/pkgs/development/python-modules/adafruit-platformdetect/default.nix b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
index 17e304b6802c3..9e32e903e82fa 100644
--- a/pkgs/development/python-modules/adafruit-platformdetect/default.nix
+++ b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "adafruit-platformdetect";
-  version = "3.17.2";
+  version = "3.18.0";
   format = "setuptools";
 
   src = fetchPypi {
     pname = "Adafruit-PlatformDetect";
     inherit version;
-    sha256 = "sha256-IA846zNFmBqSUc0oXJ0eA5wj6PzQ28jxO22z5WNOT24=";
+    sha256 = "593f3719580b31b3dffab0817414a3aa548ed609659ad216ceb8cf31cc51ec9b";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/adal/default.nix b/pkgs/development/python-modules/adal/default.nix
index b555188b4b5c6..d3826013c8ee3 100644
--- a/pkgs/development/python-modules/adal/default.nix
+++ b/pkgs/development/python-modules/adal/default.nix
@@ -16,6 +16,6 @@ buildPythonPackage rec {
     description = "Library to make it easy for python application to authenticate to Azure Active Directory (AAD) in order to access AAD protected web resources";
     homepage = "https://github.com/AzureAD/azure-activedirectory-library-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ phreedom ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/adblock/default.nix b/pkgs/development/python-modules/adblock/default.nix
index 2763684c0d4a8..941beb5447313 100644
--- a/pkgs/development/python-modules/adblock/default.nix
+++ b/pkgs/development/python-modules/adblock/default.nix
@@ -1,12 +1,12 @@
-{ stdenv
-, lib
+{ lib
+, stdenv
 , fetchFromGitHub
 , buildPythonPackage
 , rustPlatform
 , pkg-config
 , openssl
 , publicsuffix-list
-, isPy27
+, pythonOlder
 , libiconv
 , CoreFoundation
 , Security
@@ -16,34 +16,46 @@
 
 buildPythonPackage rec {
   pname = "adblock";
-  version = "0.5.0";
-  disabled = isPy27;
+  version = "0.5.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.6";
 
   # Pypi only has binary releases
   src = fetchFromGitHub {
     owner = "ArniDagur";
     repo = "python-adblock";
     rev = version;
-    sha256 = "sha256-JjmMfL24778T6LCuElXsD7cJxQ+RkqbNEnEqwoN24WE=";
+    sha256 = "sha256-f6PmEHVahQv8t+WOkE8DO2emivHG2t14hUSIf/l8omY=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-w+/W4T3ukRHNpCPjhlHZLPn6sgCpz4QHVD8VW+Rw5BI=";
+    hash = "sha256-x0mcykHWhheD2ycELcfR1ZQ/6WfFQzY+L/LmMipP4Rc=";
   };
 
-  format = "pyproject";
-
-  nativeBuildInputs = [ pkg-config ]
-    ++ (with rustPlatform; [ cargoSetupHook maturinBuildHook ]);
+  nativeBuildInputs = [
+    pkg-config
+  ] ++ (with rustPlatform; [
+    cargoSetupHook
+    maturinBuildHook
+  ]);
 
-  buildInputs = [ openssl ]
-    ++ lib.optionals stdenv.isDarwin [ libiconv CoreFoundation Security ];
+  buildInputs = [
+    openssl
+  ] ++ lib.optionals stdenv.isDarwin [
+    libiconv
+    CoreFoundation
+    Security
+  ];
 
   PSL_PATH = "${publicsuffix-list}/share/publicsuffix/public_suffix_list.dat";
 
-  checkInputs = [ pytestCheckHook toml ];
+  checkInputs = [
+    pytestCheckHook
+    toml
+  ];
 
   preCheck = ''
     # import from $out instead
@@ -55,12 +67,15 @@ buildPythonPackage rec {
     "tests/test_typestubs.py"
   ];
 
-  pythonImportsCheck = [ "adblock" "adblock.adblock" ];
+  pythonImportsCheck = [
+    "adblock"
+    "adblock.adblock"
+  ];
 
   meta = with lib; {
-    description = "Python wrapper for Brave's adblocking library, which is written in Rust";
+    description = "Python wrapper for Brave's adblocking library";
     homepage = "https://github.com/ArniDagur/python-adblock/";
     maintainers = with maintainers; [ petabyteboy dotlambda ];
-    license = with licenses; [ asl20 mit ];
+    license = with licenses; [ asl20 /* or */ mit ];
   };
 }
diff --git a/pkgs/development/python-modules/adjusttext/default.nix b/pkgs/development/python-modules/adjusttext/default.nix
index 82613ffa52aa0..9685f5c9969db 100644
--- a/pkgs/development/python-modules/adjusttext/default.nix
+++ b/pkgs/development/python-modules/adjusttext/default.nix
@@ -1,13 +1,15 @@
-{ buildPythonPackage
-, numpy
-, matplotlib
+{ lib
+, buildPythonPackage
 , fetchFromGitHub
-, lib
+, matplotlib
+, numpy
+, packaging
 }:
 
 buildPythonPackage rec {
   pname = "adjusttext";
   version = "0.7.3";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "Phlya";
@@ -16,12 +18,21 @@ buildPythonPackage rec {
     sha256 = "02apaznnnmwmrn342f22dj5dldn56gdl9v5qix07ah6kgp9503yw";
   };
 
-  propagatedBuildInputs = [ matplotlib numpy ];
+  nativeBuildInputs = [
+    packaging
+  ];
+
+  propagatedBuildInputs = [
+    matplotlib
+    numpy
+  ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [ "adjustText" ];
+  pythonImportsCheck = [
+    "adjustText"
+  ];
 
   meta = with lib; {
     description = "Iteratively adjust text position in matplotlib plots to minimize overlaps";
diff --git a/pkgs/development/python-modules/afdko/default.nix b/pkgs/development/python-modules/afdko/default.nix
index c06929176d98a..d0de050c86f97 100644
--- a/pkgs/development/python-modules/afdko/default.nix
+++ b/pkgs/development/python-modules/afdko/default.nix
@@ -1,38 +1,48 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, fetchpatch, pythonOlder
+{ lib, stdenv, buildPythonPackage, fetchPypi, pythonOlder
 , fonttools, defcon, lxml, fs, unicodedata2, zopfli, brotlipy, fontpens
 , brotli, fontmath, mutatormath, booleanoperations
 , ufoprocessor, ufonormalizer, psautohint, tqdm
-, setuptools-scm
+, setuptools-scm, scikit-build
+, cmake
+, antlr4_9
 , pytestCheckHook
+# Enables some expensive tests, useful for verifying an update
+, runAllTests ? false
+, afdko
 }:
 
 buildPythonPackage rec {
   pname = "afdko";
-  version = "3.5.1";
+  version = "3.7.1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1qg7dgl81yq0sp50pkhgvmf8az1svx20zmpkfa68ka9d0ssh1wjw";
+    sha256 = "05hj2mw3ppfjaig5zdk5db9vfrbbq5gmv5rzggmvvrj0yyfpr0pd";
   };
 
+  format = "pyproject";
+
+  nativeBuildInputs = [
+    setuptools-scm
+    scikit-build
+    cmake
+  ];
+
+  buildInputs = [
+    antlr4_9.runtime.cpp
+  ];
+
   patches = [
-    # Skip date-dependent test. See
-    # https://github.com/adobe-type-tools/afdko/pull/1232
-    # https://github.com/NixOS/nixpkgs/pull/98158#issuecomment-704321117
-    (fetchpatch {
-      url = "https://github.com/adobe-type-tools/afdko/commit/2c36ad10f9d964759f643e8ed7b0972a27aa26bd.patch";
-      sha256 = "0p6a485mmzrbfldfbhgfghsypfiad3cabcw7qlw2rh993ivpnibf";
-    })
-    # fix tests for fonttools 4.21.1
-    (fetchpatch {
-      url = "https://github.com/adobe-type-tools/afdko/commit/0919e7454a0a05a1b141c23bf8134c67e6b688fc.patch";
-      sha256 = "0glly85swyl1kcc0mi8i0w4bm148bb001jz1winz5drfrw3a63jp";
-    })
+    # Don't try to install cmake and ninja using pip
+    ./no-pypi-build-tools.patch
+    # Use antlr4 runtime from nixpkgs and link it dynamically
+    ./use-dynamic-system-antlr4-runtime.patch
   ];
 
-  nativeBuildInputs = [ setuptools-scm ];
+  # setup.py will always (re-)execute cmake in buildPhase
+  dontConfigure = true;
 
   propagatedBuildInputs = [
     booleanoperations
@@ -53,10 +63,6 @@ buildPythonPackage rec {
     tqdm
   ];
 
-  # tests are broken on non x86_64
-  # https://github.com/adobe-type-tools/afdko/issues/1163
-  # https://github.com/adobe-type-tools/afdko/issues/1216
-  doCheck = stdenv.isx86_64;
   checkInputs = [ pytestCheckHook ];
   preCheck = ''
     export PATH=$PATH:$out/bin
@@ -65,7 +71,7 @@ buildPythonPackage rec {
     #   https://github.com/adobe-type-tools/afdko/issues/1418
     find tests -name layerinfo.plist -delete
   '';
-  disabledTests = [
+  disabledTests = lib.optionals (!runAllTests) [
     # Disable slow tests, reduces test time ~25 %
     "test_report"
     "test_post_overflow"
@@ -74,8 +80,16 @@ buildPythonPackage rec {
     "test_filename_without_dir"
     "test_overwrite"
     "test_options"
+  ] ++ lib.optionals stdenv.hostPlatform.isAarch64 [
+    # aarch64-only (?) failure, unknown reason so far
+    # https://github.com/adobe-type-tools/afdko/issues/1425
+    "test_spec"
   ];
 
+  passthru.tests = {
+    fullTestsuite = afdko.override { runAllTests = true; };
+  };
+
   meta = with lib; {
     description = "Adobe Font Development Kit for OpenType";
     homepage = "https://adobe-type-tools.github.io/afdko/";
diff --git a/pkgs/development/python-modules/afdko/no-pypi-build-tools.patch b/pkgs/development/python-modules/afdko/no-pypi-build-tools.patch
new file mode 100644
index 0000000000000..4acc351e7bd7c
--- /dev/null
+++ b/pkgs/development/python-modules/afdko/no-pypi-build-tools.patch
@@ -0,0 +1,24 @@
+commit 72b0ab672d1080049431eeee07ae6d2556ae9e4a
+Author: sternenseemann <sternenseemann@systemli.org>
+Date:   Tue Oct 5 18:17:20 2021 +0200
+
+    Don't use pypi distributions of build tools
+    
+    We want to use regular cmake and ninja and not the pypi projects which
+    somehow wrap and vendor a version of the proper tool.
+
+diff --git a/setup.py b/setup.py
+index 50deb781..81417971 100644
+--- a/setup.py
++++ b/setup.py
+@@ -196,9 +196,7 @@ def main():
+           setup_requires=[
+               'wheel',
+               'setuptools_scm',
+-              'scikit-build',
+-              'cmake',
+-              'ninja'
++              'scikit-build'
+           ],
+           tests_require=[
+               'pytest',
diff --git a/pkgs/development/python-modules/afdko/use-dynamic-system-antlr4-runtime.patch b/pkgs/development/python-modules/afdko/use-dynamic-system-antlr4-runtime.patch
new file mode 100644
index 0000000000000..25e399e78d9bf
--- /dev/null
+++ b/pkgs/development/python-modules/afdko/use-dynamic-system-antlr4-runtime.patch
@@ -0,0 +1,43 @@
+commit 105daa26f09034af58eb13ac7c5c4ff5420c1724
+Author: sternenseemann <sternenseemann@systemli.org>
+Date:   Tue Oct 5 18:16:10 2021 +0200
+
+    Link against system antlr4 runtime, dynamically
+    
+    Instead of cloning a antlr4 version from git, use the system one. Also
+    don't link it statically, but dynamically by default (the library is
+    called antlr4-runtime, not antlr4_static).
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d7f86fb6..c43c4456 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -36,13 +36,13 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
+ # https://www.antlr.org/download/antlr4-cpp-runtime-4.9.2-source.zip
+ # set(ANTLR4_ZIP_REPOSITORY "/path_to_antlr4_archive/a4.zip")
+ 
+-add_definitions(-DANTLR4CPP_STATIC)
+ set(ANTLR4_WITH_STATIC_CRT OFF)
+ # Use slightly more recent commit than 4.9.2 to deal with utfcpp test
+ # compilation problems
+ # set(ANTLR4_TAG tags/4.9.2)
+ set(ANTLR4_TAG 916f03366edf15bf8b50010b11d479c189bf9f96)
+-include(ExternalAntlr4Cpp)
++find_path(ANTLR4_HEADER antlr4-runtime.h PATH_SUFFIXES antlr4-runtime)
++set(ANTLR4_INCLUDE_DIRS ${ANTLR4_HEADER})
+ 
+ # sanitizer support
+ # work around https://github.com/pypa/setuptools/issues/1928 with environment
+diff --git a/c/makeotf/lib/hotconv/CMakeLists.txt b/c/makeotf/lib/hotconv/CMakeLists.txt
+index 82257bf2..02eb2e30 100644
+--- a/c/makeotf/lib/hotconv/CMakeLists.txt
++++ b/c/makeotf/lib/hotconv/CMakeLists.txt
+@@ -69,7 +69,7 @@ add_library(hotconv STATIC
+ 
+ set_property(TARGET hotconv PROPERTY C_STANDARD 99)
+ target_include_directories(hotconv PRIVATE AFTER $<$<COMPILE_LANGUAGE:CXX>:${ANTLR4_INCLUDE_DIRS}>)
+-target_link_libraries(hotconv PUBLIC antlr4_static)
++target_link_libraries(hotconv PUBLIC antlr4-runtime)
+ 
+ if ( CMAKE_COMPILER_IS_GNUCC )
+     target_compile_options(hotconv PRIVATE -Wall -Wno-attributes)
diff --git a/pkgs/development/python-modules/ailment/default.nix b/pkgs/development/python-modules/ailment/default.nix
index 7e5ac1fda5c02..ca74671ab81a3 100644
--- a/pkgs/development/python-modules/ailment/default.nix
+++ b/pkgs/development/python-modules/ailment/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "ailment";
-  version = "9.0.10576";
+  version = "9.1.10913";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-s8GZV+hcuAZJhKVoLAtC2mwHlqr/vJ6P5mwlNDczEyY=";
+    sha256 = "sha256-S+ntSC9KySj2njkxEkr7p2TDsBqY0Gf+zzwomnGwSEk=";
   };
 
   propagatedBuildInputs = [ pyvex ];
diff --git a/pkgs/development/python-modules/aioambient/default.nix b/pkgs/development/python-modules/aioambient/default.nix
index b71574971fc8f..2396b24f6d9fa 100644
--- a/pkgs/development/python-modules/aioambient/default.nix
+++ b/pkgs/development/python-modules/aioambient/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "aioambient";
-  version = "2021.10.1";
+  version = "2021.12.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "sha256-DCh/o7p+lO5BhN3JoLdhImkzfxoyqiscA/6CwwvAnc0=";
+    sha256 = "sha256-nFCLMpkuSVPecKrtJ/z7KuyGw4Z9X79wKXmWsewbxvY=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aiobroadlink/default.nix b/pkgs/development/python-modules/aiobroadlink/default.nix
new file mode 100644
index 0000000000000..d921f3c080498
--- /dev/null
+++ b/pkgs/development/python-modules/aiobroadlink/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, cryptography
+, fetchPypi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aiobroadlink";
+  version = "0.1.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-uTUtDhL9VtWZE+Y6ZJY4prmlE+Yh2UrCg5+eSyAQzMk=";
+  };
+
+  propagatedBuildInputs = [
+    cryptography
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "aiobroadlink"
+  ];
+
+  meta = with lib; {
+    description = "Python module to control various Broadlink devices";
+    homepage = "https://github.com/frawau/aiobroadlink";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiocoap/default.nix b/pkgs/development/python-modules/aiocoap/default.nix
index e169b886f88e8..2e8fd124fa2b6 100644
--- a/pkgs/development/python-modules/aiocoap/default.nix
+++ b/pkgs/development/python-modules/aiocoap/default.nix
@@ -8,14 +8,16 @@
 
 buildPythonPackage rec {
   pname = "aiocoap";
-  version = "0.4.1";
+  version = "0.4.3";
+  format = "setuptools";
+
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "chrysn";
     repo = pname;
     rev = version;
-    sha256 = "0k7ii2l3n139f8712ja6w3z73xiwlfsjgdc4k5c514ni2w6w2yjc";
+    sha256 = "sha256-fTRDx9VEXDoMKM78YYL+mBEdvhbLtHiHdo66kwRnNhA=";
   };
 
   propagatedBuildInputs = [
@@ -38,7 +40,9 @@ buildPythonPackage rec {
     "test_uri_parser"
   ];
 
-  pythonImportsCheck = [ "aiocoap" ];
+  pythonImportsCheck = [
+    "aiocoap"
+  ];
 
   meta = with lib; {
     description = "Python CoAP library";
diff --git a/pkgs/development/python-modules/aiocron/default.nix b/pkgs/development/python-modules/aiocron/default.nix
index 3e6f33a23e575..56f3561d84f34 100644
--- a/pkgs/development/python-modules/aiocron/default.nix
+++ b/pkgs/development/python-modules/aiocron/default.nix
@@ -9,15 +9,16 @@
 
 buildPythonPackage rec {
   pname = "aiocron";
-  version = "1.7";
+  version = "1.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-rX07m9iIl5NP/RiTf/I1q5+wE1goD9QOAUYf1fdjSL0=";
+    sha256 = "sha256-SFRlE/ry63kB5lpk66e2U8gBBu0A7ZyjQZw9ELZVWgE=";
   };
 
   propagatedBuildInputs = [
     croniter
+    tzlocal
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/aiocurrencylayer/default.nix b/pkgs/development/python-modules/aiocurrencylayer/default.nix
new file mode 100644
index 0000000000000..777c8905c7d55
--- /dev/null
+++ b/pkgs/development/python-modules/aiocurrencylayer/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, httpx
+, poetry-core
+, pytest-asyncio
+, pytest-httpx
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aiocurrencylayer";
+  version = "1.0.2";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "home-assistant-ecosystem";
+    repo = pname;
+    rev = version;
+    sha256 = "EVqnrMatOk2I6hiCkiT5FOWvMY9LEK8LlSHqi0x9kuQ=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    httpx
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytest-httpx
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "aiocurrencylayer"
+  ];
+
+  meta = with lib; {
+    description = "Python API for interacting with currencylayer";
+    homepage = "https://github.com/home-assistant-ecosystem/aiocurrencylayer";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/aioesphomeapi/default.nix b/pkgs/development/python-modules/aioesphomeapi/default.nix
index 58b664b2cb1d0..5023b03252335 100644
--- a/pkgs/development/python-modules/aioesphomeapi/default.nix
+++ b/pkgs/development/python-modules/aioesphomeapi/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "aioesphomeapi";
-  version = "10.2.0";
+  version = "10.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "esphome";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-SUM9P7qmP3LWANw8LiwMsT5sN1kZJvqeaBT/ZDmTtwE=";
+    sha256 = "1z9pybis8yi938i3cgzma4w452ik9vggyyhs3y542zpk4183d7xw";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aiofiles/default.nix b/pkgs/development/python-modules/aiofiles/default.nix
index 05027dc0170de..592f8facaebbf 100644
--- a/pkgs/development/python-modules/aiofiles/default.nix
+++ b/pkgs/development/python-modules/aiofiles/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "aiofiles";
-  version = "0.7.0";
+  version = "0.8.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "Tinche";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vvk9j8cfdqvq8hw2qc6ajfzsy8x1afabf83mxafffq92rwknd4y";
+    sha256 = "sha256-V7F+xalFGMgTgT30Gmd9FVV3cPndI/i9cB5vEuW/KVc=";
   };
 
   nativeBuildInputs = [
@@ -33,9 +33,17 @@ buildPythonPackage rec {
 
   disabledTests = lib.optionals stdenv.isDarwin [
     "test_sendfile_file"
+
+    # require loopback networking:
+    "test_sendfile_socket"
+    "test_serve_small_bin_file_sync"
+    "test_serve_small_bin_file"
+    "test_slow_file"
   ];
 
-  pythonImportsCheck = [ "aiofiles" ];
+  pythonImportsCheck = [
+    "aiofiles"
+  ];
 
   meta = {
     description = "File support for asyncio";
diff --git a/pkgs/development/python-modules/aioflo/default.nix b/pkgs/development/python-modules/aioflo/default.nix
index d780f4963595b..70b41a0af310d 100644
--- a/pkgs/development/python-modules/aioflo/default.nix
+++ b/pkgs/development/python-modules/aioflo/default.nix
@@ -6,35 +6,42 @@
 , poetry-core
 , pytest-aiohttp
 , pytest-asyncio
-, pytest-cov
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "aioflo";
-  version = "2021.10.0";
+  version = "2021.11.0";
   format = "pyproject";
 
+  disabled = pythonOlder "3.6";
+
   src = fetchFromGitHub {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "sha256-BunTgK8IS9uE8y/LMk7624kunouNAWNqe3Xm2DjQ1pY=";
+    sha256 = "sha256-7NrOoc1gi8YzZaKvCnHnzAKPlMnMhqxjdyZGN5H/8TQ=";
   };
 
-  nativeBuildInputs = [ poetry-core ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
 
-  propagatedBuildInputs = [ aiohttp ];
+  propagatedBuildInputs = [
+    aiohttp
+  ];
 
   checkInputs = [
     aresponses
     pytest-aiohttp
     pytest-asyncio
-    pytest-cov
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "aioflo" ];
+  pythonImportsCheck = [
+    "aioflo"
+  ];
 
   meta = with lib; {
     description = "Python library for Flo by Moen Smart Water Detectors";
diff --git a/pkgs/development/python-modules/aioftp/default.nix b/pkgs/development/python-modules/aioftp/default.nix
index 76335c7af2d34..e9988249e270c 100644
--- a/pkgs/development/python-modules/aioftp/default.nix
+++ b/pkgs/development/python-modules/aioftp/default.nix
@@ -1,43 +1,47 @@
 { lib
+, async-timeout
 , buildPythonPackage
 , fetchPypi
-, isPy27
-, pytest
 , pytest-asyncio
 , pytest-cov
+, pytestCheckHook
+, pythonOlder
+, siosocks
 , trustme
-, async-timeout
 }:
 
 buildPythonPackage rec {
   pname = "aioftp";
-  version = "0.19.0";
-  disabled = isPy27;
+  version = "0.20.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d1c2571764c48e6de1b02952022c3c3b3da1f10806cb342ec7b1fa9b109e9902";
+    sha256 = "sha256-N8qiKsWPaFT/t5p1eSHS0BydoXv4AL6y8gP4z4P9fsE=";
   };
 
+  propagatedBuildInputs = [
+    siosocks
+  ];
+
   checkInputs = [
-    pytest
+    async-timeout
     pytest-asyncio
     pytest-cov
+    pytestCheckHook
     trustme
-    async-timeout
   ];
 
-  doCheck = false; # requires siosocks, not packaged yet
-  checkPhase = ''
-    pytest
-  '';
-
-  pythonImportsCheck = [ "aioftp" ];
+  pythonImportsCheck = [
+    "aioftp"
+  ];
 
   meta = with lib; {
-    description = "Ftp client/server for asyncio";
+    description = "Python FTP client/server for asyncio";
     homepage = "https://github.com/aio-libs/aioftp";
     license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/aiohomekit/default.nix b/pkgs/development/python-modules/aiohomekit/default.nix
index 55513031fcf69..1caf183fef808 100644
--- a/pkgs/development/python-modules/aiohomekit/default.nix
+++ b/pkgs/development/python-modules/aiohomekit/default.nix
@@ -6,19 +6,22 @@
 , poetry-core
 , pytest-aiohttp
 , pytestCheckHook
+, pythonOlder
 , zeroconf
 }:
 
 buildPythonPackage rec {
   pname = "aiohomekit";
-  version = "0.6.3";
+  version = "0.6.4";
   format = "pyproject";
 
+  disabled = pythonOlder "3.7";
+
   src = fetchFromGitHub {
     owner = "Jc2k";
     repo = pname;
     rev = version;
-    sha256 = "sha256-XBinbhYUB9BuQxxmWfZUw276uNam4DgBpiCAjT7KDlg=";
+    sha256 = "sha256-+W1nsJsiVL4hjtNUyKOsQNyX0Bki/C1FvmoD2OCwqeM=";
   };
 
   nativeBuildInputs = [
@@ -41,7 +44,9 @@ buildPythonPackage rec {
     "tests/test_ip_pairing.py"
   ];
 
-  pythonImportsCheck = [ "aiohomekit" ];
+  pythonImportsCheck = [
+    "aiohomekit"
+  ];
 
   meta = with lib; {
     description = "Python module that implements the HomeKit protocol";
diff --git a/pkgs/development/python-modules/aiohttp-apispec/unstable.nix b/pkgs/development/python-modules/aiohttp-apispec/unstable.nix
new file mode 100644
index 0000000000000..73a28de7b40d3
--- /dev/null
+++ b/pkgs/development/python-modules/aiohttp-apispec/unstable.nix
@@ -0,0 +1,37 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, aiohttp, webargs, fetchFromGitHub, callPackage
+}:
+
+let
+  apispec3 = callPackage ../apispec/3.nix {};
+  jinja2 = callPackage ../jinja2/2.nix {};
+in
+buildPythonPackage rec {
+  pname = "aiohttp-apispec";
+  version = "unstable-2021-21-08";
+
+  # unstable so we can use latest webargs
+  src = fetchFromGitHub {
+    owner = "maximdanilchenko";
+    repo = "aiohttp-apispec";
+    rev = "cfa19646394480dda289f6b7af19b7d50f245d81";
+    sha256 = "uEgDRAlMjTa4rvdE3fkORCHIlCLzxPJJ2/m4ZRU3eIQ=";
+    fetchSubmodules = false;
+  };
+
+  propagatedBuildInputs = [ aiohttp webargs apispec3 jinja2 ];
+
+  pythonImportsCheck = [
+    "aiohttp_apispec"
+  ];
+
+  # Requires pytest-sanic, currently broken in nixpkgs
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Build and document REST APIs with aiohttp and apispec";
+    homepage = "https://github.com/maximdanilchenko/aiohttp-apispec/";
+    license = licenses.mit;
+    maintainers = [ maintainers.viric ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiohttp-socks/default.nix b/pkgs/development/python-modules/aiohttp-socks/default.nix
index 4e75f56a8dabc..e782eed49b7f4 100644
--- a/pkgs/development/python-modules/aiohttp-socks/default.nix
+++ b/pkgs/development/python-modules/aiohttp-socks/default.nix
@@ -2,18 +2,19 @@
 
 buildPythonPackage rec {
   pname = "aiohttp-socks";
-  version = "0.6.0";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit version;
     pname = "aiohttp_socks";
-    sha256 = "04w010bvi719ifpc3sshav95k10hf9nq8czn9yglkj206yxcypdr";
+    sha256 = "sha256-IhXKxIke8/oUt9YA7TQ+0PCmcMI7EOQUKqhis9sgNBo=";
   };
 
   propagatedBuildInputs = [ aiohttp attrs python-socks ];
 
   # Checks needs internet access
   doCheck = false;
+  pythonImportsCheck = [ "aiohttp_socks" ];
 
   disabled = pythonOlder "3.5.3";
 
diff --git a/pkgs/development/python-modules/aiohttp-wsgi/default.nix b/pkgs/development/python-modules/aiohttp-wsgi/default.nix
index 18364bdce6919..1e4763453209a 100644
--- a/pkgs/development/python-modules/aiohttp-wsgi/default.nix
+++ b/pkgs/development/python-modules/aiohttp-wsgi/default.nix
@@ -26,6 +26,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # makes http request to another server
+    # https://github.com/etianen/aiohttp-wsgi/issues/32
+    "testEnviron"
+  ];
+
   pythonImportsCheck = [ "aiohttp_wsgi" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/aiohttp/default.nix b/pkgs/development/python-modules/aiohttp/default.nix
index d6203c1ebeb2a..f96fa8820384c 100644
--- a/pkgs/development/python-modules/aiohttp/default.nix
+++ b/pkgs/development/python-modules/aiohttp/default.nix
@@ -3,15 +3,22 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
-, async-timeout
+# install_requires
 , attrs
-, chardet
-, idna-ssl
+, charset-normalizer
 , multidict
-, typing-extensions
+, async-timeout
 , yarl
+, frozenlist
+, aiosignal
+, aiodns
+, brotli
+, cchardet
+, asynctest
+, typing-extensions
+, idna-ssl
+# tests_require
 , async_generator
-, brotlipy
 , freezegun
 , gunicorn
 , pytest-mock
@@ -22,32 +29,39 @@
 
 buildPythonPackage rec {
   pname = "aiohttp";
-  version = "3.7.4.post0";
+  version = "3.8.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "493d3299ebe5f5a7c66b9819eacdcfbbaaf1a8e84911ddffcdc48888497afecf";
+    sha256 = "fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578";
   };
 
   postPatch = ''
-    substituteInPlace setup.cfg --replace " --cov=aiohttp" ""
+    sed -i '/--cov/d' setup.cfg
   '';
 
   propagatedBuildInputs = [
-    async-timeout
     attrs
-    chardet
+    charset-normalizer
     multidict
-    typing-extensions
+    async-timeout
     yarl
+    typing-extensions
+    frozenlist
+    aiosignal
+    aiodns
+    brotli
+    cchardet
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    asynctest
+    typing-extensions
   ] ++ lib.optionals (pythonOlder "3.7") [
     idna-ssl
   ];
 
   checkInputs = [
     async_generator
-    brotlipy
     freezegun
     gunicorn
     pytest-mock
@@ -58,7 +72,9 @@ buildPythonPackage rec {
 
   disabledTests = [
     # Disable tests that require network access
+    "test_client_session_timeout_zero"
     "test_mark_formdata_as_processed"
+    "test_requote_redirect_url_default"
   ] ++ lib.optionals stdenv.is32bit [
     "test_cookiejar"
   ] ++ lib.optionals stdenv.isDarwin [
@@ -66,6 +82,10 @@ buildPythonPackage rec {
     "test_close"
   ];
 
+  disabledTestPaths = [
+    "test_proxy_functional.py" # FIXME package proxy.py
+  ];
+
   __darwinAllowLocalNetworking = true;
 
   # aiohttp in current folder shadows installed version
diff --git a/pkgs/development/python-modules/aiohue/default.nix b/pkgs/development/python-modules/aiohue/default.nix
index 645563495c35d..1f479311af05b 100644
--- a/pkgs/development/python-modules/aiohue/default.nix
+++ b/pkgs/development/python-modules/aiohue/default.nix
@@ -2,19 +2,21 @@
 , buildPythonPackage
 , fetchPypi
 , aiohttp
+, asyncio-throttle
 }:
 
 buildPythonPackage rec {
   pname = "aiohue";
-  version = "2.6.3";
+  version = "3.0.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-zpwkDKPrE5TFZQO0A1ifTQ7n+TRFpXi3jai3h5plyGM=";
+    sha256 = "sha256-McC5DX3Cti9eGpPniywNY2DvbAqHSFwhek85TJN/zn0=";
   };
 
   propagatedBuildInputs = [
     aiohttp
+    asyncio-throttle
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/aiojobs/default.nix b/pkgs/development/python-modules/aiojobs/default.nix
index 20c068080c9cf..0ae7c3e8a06cc 100644
--- a/pkgs/development/python-modules/aiojobs/default.nix
+++ b/pkgs/development/python-modules/aiojobs/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , pythonOlder
 , aiohttp
 , pytestCheckHook
@@ -10,13 +10,16 @@
 
 buildPythonPackage rec {
   pname = "aiojobs";
-  version = "0.3.0";
+  version = "1.0.0";
   format = "flit";
-  disabled = pythonOlder "3.5";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-9mMdQtxDCPfYg6u9cNTpdvP8w1o7oejq5dSvSUCh4MM=";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "aio-libs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "EQwD0b2B9qFVd/8thKInaio0hpPzvVIjvCN0TcARu2w=";
   };
 
   nativeBuildInputs = [
@@ -32,11 +35,13 @@ buildPythonPackage rec {
     pytest-aiohttp
   ];
 
-  pythonImportsCheck = [ "aiojobs" ];
+  pythonImportsCheck = [
+    "aiojobs"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/aio-libs/aiojobs";
     description = "Jobs scheduler for managing background task (asyncio)";
+    homepage = "https://github.com/aio-libs/aiojobs";
     license = licenses.asl20;
     maintainers = with maintainers; [ cmcdragonkai ];
   };
diff --git a/pkgs/development/python-modules/aiomusiccast/default.nix b/pkgs/development/python-modules/aiomusiccast/default.nix
index 66f83bab8f2e5..6d1116bfefa85 100644
--- a/pkgs/development/python-modules/aiomusiccast/default.nix
+++ b/pkgs/development/python-modules/aiomusiccast/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "aiomusiccast";
-  version = "0.13.1";
+  version = "0.14.3";
 
   format = "pyproject";
 
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "vigonotion";
     repo = "aiomusiccast";
     rev = version;
-    sha256 = "sha256-y1rt2/nCi2xcNPMEqFGDv4ylWRXv2vfnA3++Qc2aWew=";
+    hash = "sha256-ELdNxeU9dajWr4VeOyuvNrSi7B+ImVJM/BlZsw3tcKE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aionanoleaf/default.nix b/pkgs/development/python-modules/aionanoleaf/default.nix
index a018acaf0e9b6..61b958d84486a 100644
--- a/pkgs/development/python-modules/aionanoleaf/default.nix
+++ b/pkgs/development/python-modules/aionanoleaf/default.nix
@@ -7,7 +7,8 @@
 
 buildPythonPackage rec {
   pname = "aionanoleaf";
-  version = "0.0.3";
+  version = "0.1.1";
+  format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
@@ -15,7 +16,7 @@ buildPythonPackage rec {
     owner = "milanmeu";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fUVpPxaeuvuw9ZX5fc2Jc/LdBDhCRdFlghvhSmBK/z0=";
+    sha256 = "10gi8fpv3xkdjaqig84723m3j0kxgxvqwqvjxmysq2sw4cjmsvz6";
   };
 
   propagatedBuildInputs = [
@@ -25,7 +26,9 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [ "aionanoleaf" ];
+  pythonImportsCheck = [
+    "aionanoleaf"
+  ];
 
   meta = with lib; {
     description = "Python wrapper for the Nanoleaf API";
diff --git a/pkgs/development/python-modules/aionotify/default.nix b/pkgs/development/python-modules/aionotify/default.nix
index 93177733dedc6..e653f4cca74eb 100644
--- a/pkgs/development/python-modules/aionotify/default.nix
+++ b/pkgs/development/python-modules/aionotify/default.nix
@@ -27,6 +27,6 @@ buildPythonPackage rec {
     description = "Simple, asyncio-based inotify library for Python";
     license = with lib.licenses; [ bsd2 ];
     platforms = platforms.linux;
-    maintainers = with lib.maintainers; [ thiagokokada ];
+    maintainers = with lib.maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/aiopulse/default.nix b/pkgs/development/python-modules/aiopulse/default.nix
index 3df005d179076..c2d4add41daca 100644
--- a/pkgs/development/python-modules/aiopulse/default.nix
+++ b/pkgs/development/python-modules/aiopulse/default.nix
@@ -2,15 +2,19 @@
 , buildPythonPackage
 , fetchPypi
 , async-timeout
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "aiopulse";
-  version = "0.4.2";
+  version = "0.4.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0fnscm27l77c8cd7jhbn35axyalq61kksy3fcqzv21fz55lklsm0";
+    sha256 = "sha256-Wp8NUjRlO+6ASqIt3C0YJRh0EKcEukXVMp4I+TCTElo=";
   };
 
   propagatedBuildInputs = [
@@ -20,7 +24,9 @@ buildPythonPackage rec {
   # tests are not present
   doCheck = false;
 
-  pythonImportsCheck = [ "aiopulse" ];
+  pythonImportsCheck = [
+    "aiopulse"
+  ];
 
   meta = with lib; {
     description = "Python Rollease Acmeda Automate Pulse hub protocol implementation";
diff --git a/pkgs/development/python-modules/aiopvapi/default.nix b/pkgs/development/python-modules/aiopvapi/default.nix
index b8614d0c97d21..3aa3116b0f5ed 100644
--- a/pkgs/development/python-modules/aiopvapi/default.nix
+++ b/pkgs/development/python-modules/aiopvapi/default.nix
@@ -2,21 +2,24 @@
 , aiohttp
 , async-timeout
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "aiopvapi";
-  version = "1.6.14";
+  version = "1.6.19";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "02bl7q166j6rb8av9n1jz11xlwhrzmbkjq70mwr86qaj63pcxrak";
+  src = fetchFromGitHub {
+    owner = "sander76";
+    repo = "aio-powerview-api";
+    # no tags on git, no sdist on pypi: https://github.com/sander76/aio-powerview-api/issues/12
+    rev = "89711e2a0cb4640eb458767d289dcfa3acafb10f";
+    sha256 = "18gbz9rcf183syvxvvhhl62af3b7463rlqxxs49w4m805hkvirdp";
   };
 
   propagatedBuildInputs = [
@@ -28,7 +31,16 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "aiopvapi" ];
+  postPatch = ''
+    # async_timeout 4.0.0 removes loop, https://github.com/sander76/aio-powerview-api/pull/13
+    # Patch doesn't apply due to different line endings
+    substituteInPlace aiopvapi/helpers/aiorequest.py \
+      --replace ", loop=self.loop)" ")"
+  '';
+
+  pythonImportsCheck = [
+    "aiopvapi"
+  ];
 
   meta = with lib; {
     description = "Python API for the PowerView API";
diff --git a/pkgs/development/python-modules/aiopvpc/default.nix b/pkgs/development/python-modules/aiopvpc/default.nix
index b3f24e6051a4f..ae069ae182664 100644
--- a/pkgs/development/python-modules/aiopvpc/default.nix
+++ b/pkgs/development/python-modules/aiopvpc/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "aiopvpc";
-  version = "2.2.4";
+  version = "3.0.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "azogue";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-39cGDbaBS5we+WbqvABe6tKwTmbgd+NYLssKQCOuBsc=";
+    sha256 = "sha256-eTCQddoZIaCs7iKGNBC8aSq6ek4vwYXgIXx35UlME/k=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aiosenz/default.nix b/pkgs/development/python-modules/aiosenz/default.nix
new file mode 100644
index 0000000000000..beb5618614705
--- /dev/null
+++ b/pkgs/development/python-modules/aiosenz/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, authlib
+, buildPythonPackage
+, fetchFromGitHub
+, httpx
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aiosenz";
+  version = "1.0.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "milanmeu";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-ODdWPS14zzptxuS6mff51f0s1SYnIqjF40DmvT0sL0w=";
+  };
+
+  propagatedBuildInputs = [
+    httpx
+    authlib
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "aiosenz"
+  ];
+
+  meta = with lib; {
+    description = "Python wrapper for the nVent Raychem SENZ RestAPI";
+    homepage = "https://github.com/milanmeu/aiosenz";
+    license = with licenses; [ lgpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/aioshelly/default.nix b/pkgs/development/python-modules/aioshelly/default.nix
index 814444e63533d..f3bb26c2780ed 100644
--- a/pkgs/development/python-modules/aioshelly/default.nix
+++ b/pkgs/development/python-modules/aioshelly/default.nix
@@ -3,17 +3,21 @@
 , buildPythonPackage
 , fetchFromGitHub
 , netifaces
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "aioshelly";
-  version = "1.0.4";
+  version = "1.0.5";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "home-assistant-libs";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Om+v+cGisfx2PkH/J08loZioUO6y9wi5+6kd2T+dfOo=";
+    sha256 = "sha256-AaEnVMup/sGR3ENtN6NF/CzG05P4Er5LI8mG5LNVzAo=";
   };
 
   propagatedBuildInputs = [
@@ -23,7 +27,10 @@ buildPythonPackage rec {
 
   # Project has no test
   doCheck = false;
-  pythonImportsCheck = [ "aioshelly" ];
+
+  pythonImportsCheck = [
+    "aioshelly"
+  ];
 
   meta = with lib; {
     description = "Python library to control Shelly";
diff --git a/pkgs/development/python-modules/aiostream/default.nix b/pkgs/development/python-modules/aiostream/default.nix
index e15271bafdbc0..060da226b9379 100644
--- a/pkgs/development/python-modules/aiostream/default.nix
+++ b/pkgs/development/python-modules/aiostream/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "aiostream";
-  version = "0.4.3";
+  version = "0.4.4";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "vxgmichel";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1r3x9qwl08yscmzvhafc6gsmq84lr17s6p7a1qxr49cmdvjzsc13";
+    sha256 = "07if27z1h0mg236sj9lc8nl0bqy9sdrj83ls73mrc69h76bzg5xi";
   };
 
   checkInputs = [ pytestCheckHook pytest-cov pytest-asyncio ];
diff --git a/pkgs/development/python-modules/aioymaps/default.nix b/pkgs/development/python-modules/aioymaps/default.nix
index 69aef58a1b8f6..c23451b9db92a 100644
--- a/pkgs/development/python-modules/aioymaps/default.nix
+++ b/pkgs/development/python-modules/aioymaps/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "aioymaps";
-  version = "1.2.1";
+  version = "1.2.2";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-8U8I2pqvvm87IW1hhR4CGyIWdM/jsRPRP6u2yYGXdBw=";
+    sha256 = "sha256-ZWolVsh6MSEA3h62ERaCLSVAr+vl53yysPjulMtW4QI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/airthings-cloud/default.nix b/pkgs/development/python-modules/airthings-cloud/default.nix
index ca80f38c899df..8315847683d05 100644
--- a/pkgs/development/python-modules/airthings-cloud/default.nix
+++ b/pkgs/development/python-modules/airthings-cloud/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "airthings-cloud";
-  version = "0.0.1";
+  version = "0.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "Danielhiversen";
     repo = "pyAirthings";
     rev = version;
-    sha256 = "08cbysx5p9k8hzr6sdykx91j0gx8x15b8807338dsl3qx8nhfb8j";
+    sha256 = "sha256-sqHNK6biSWso4uOYimzU7PkEn0uP5sHAaPGsS2vSMNY=";
   };
 
   propagatedBuildInputs = [
@@ -28,7 +28,9 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [ "airthings" ];
+  pythonImportsCheck = [
+    "airthings"
+  ];
 
   meta = with lib; {
     description = "Python module for Airthings";
diff --git a/pkgs/development/python-modules/allure-pytest/default.nix b/pkgs/development/python-modules/allure-pytest/default.nix
new file mode 100644
index 0000000000000..49b5f683a6b40
--- /dev/null
+++ b/pkgs/development/python-modules/allure-pytest/default.nix
@@ -0,0 +1,80 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, six
+, pythonOlder
+, allure-python-commons
+, pytest
+, pytestCheckHook
+, pytest-check
+, pytest-flakes
+, pytest-lazy-fixture
+, pytest-rerunfailures
+, pytest-xdist
+, pyhamcrest
+, mock
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "allure-pytest";
+  version = "2.9.45";
+
+  disabled = pythonOlder "3.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "18ys5gi64jlfya6a7shj5lqhwc6cplwgyq3s2n5mg5x513g0yqi0";
+  };
+
+  buildInputs = [
+    pytest
+  ];
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  pythonImportsCheck = [ "allure_pytest" ];
+
+  propagatedBuildInputs = [
+    allure-python-commons
+    six
+  ];
+
+  checkInputs = [
+    pyhamcrest
+    mock
+    pytestCheckHook
+    pytest-check
+    pytest-flakes
+    pytest-lazy-fixture
+    pytest-rerunfailures
+    pytest-xdist
+  ];
+
+  pytestFlagsArray = [
+    "--basetemp"
+    "$(mktemp -d)"
+    "--alluredir"
+    "$(mktemp -d allure-results.XXXXXXX)"
+    "-W"
+    "ignore::pytest.PytestExperimentalApiWarning"
+    "-p"
+    "pytester"
+  ];
+
+  # we are skipping some of the integration tests for now
+  disabledTests = [
+    "test_pytest_check"
+    "test_pytest_check_example"
+    "test_select_by_testcase_id_test"
+  ];
+
+  meta = with lib; {
+    description = "Allure pytest integration. It's developed as pytest plugin and distributed via pypi";
+    homepage = "https://github.com/allure-framework/allure-python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ evanjs ];
+  };
+}
diff --git a/pkgs/development/python-modules/allure-python-commons-test/default.nix b/pkgs/development/python-modules/allure-python-commons-test/default.nix
new file mode 100644
index 0000000000000..3c43e698b8e72
--- /dev/null
+++ b/pkgs/development/python-modules/allure-python-commons-test/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, pythonOlder
+, attrs
+, pluggy
+, six
+, pyhamcrest
+, setuptools-scm
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "allure-python-commons-test";
+  version = "2.9.45";
+
+  disabled = pythonOlder "3.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0rn8ccxxrm27skv3avdiw56zc4fk2h7nrk3jamqmx6fnvmshiz5f";
+  };
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [ attrs pluggy six pyhamcrest ];
+
+  checkPhase = ''
+    ${python.interpreter} -m doctest ./src/container.py
+    ${python.interpreter} -m doctest ./src/report.py
+    ${python.interpreter} -m doctest ./src/label.py
+    ${python.interpreter} -m doctest ./src/result.py
+  '';
+
+  pythonImportsCheck = [ "allure_commons_test" ];
+
+  meta = with lib; {
+    description = "Just pack of hamcrest matchers for validation result in allure2 json format";
+    homepage = "https://github.com/allure-framework/allure-python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ evanjs ];
+  };
+}
diff --git a/pkgs/development/python-modules/allure-python-commons/default.nix b/pkgs/development/python-modules/allure-python-commons/default.nix
new file mode 100644
index 0000000000000..56eb0bbf55ed4
--- /dev/null
+++ b/pkgs/development/python-modules/allure-python-commons/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, pythonOlder
+, attrs
+, pluggy
+, six
+, allure-python-commons-test
+, setuptools-scm
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "allure-python-commons";
+  version = "2.9.45";
+
+  disabled = pythonOlder "3.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17alymsivw8fs89j6phbqgrbprasw8kj72kxa5y8qpn3xa5d4f62";
+  };
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [ attrs pluggy six allure-python-commons-test ];
+
+  checkPhase = ''
+    ${python.interpreter} -m doctest ./src/utils.py
+    ${python.interpreter} -m doctest ./src/mapping.py
+  '';
+
+  pythonImportsCheck = [ "allure" "allure_commons" ];
+
+  meta = with lib; {
+    description = "Common engine for all modules. It is useful for make integration with your homemade frameworks";
+    homepage = "https://github.com/allure-framework/allure-python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ evanjs ];
+  };
+}
diff --git a/pkgs/development/python-modules/amazon_kclpy/default.nix b/pkgs/development/python-modules/amazon_kclpy/default.nix
index b39d3902740de..06f61981561b2 100644
--- a/pkgs/development/python-modules/amazon_kclpy/default.nix
+++ b/pkgs/development/python-modules/amazon_kclpy/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "amazon_kclpy";
-  version = "2.0.2";
+  version = "2.0.6";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "amazon-kinesis-client-python";
     rev = "v${version}";
-    sha256 = "12yxcwml6g86sv1pj3wc2k97md9szdj6xx07qwri1mr9bdkzw7rv";
+    sha256 = "0gbpwhpd9i13vi0cch48qqrma90p230psqrkbfcjvdah69w434l4";
   };
 
   # argparse is just required for python2.6
diff --git a/pkgs/development/python-modules/androguard/default.nix b/pkgs/development/python-modules/androguard/default.nix
index 492c835f018eb..42f37e130994f 100644
--- a/pkgs/development/python-modules/androguard/default.nix
+++ b/pkgs/development/python-modules/androguard/default.nix
@@ -11,6 +11,7 @@
 , click
 , pydot
 , ipython
+, packaging
 , pyqt5
 , pyperclip
 , nose
@@ -39,6 +40,12 @@ buildPythonPackage rec {
     sha256 = "1aparxiq11y0hbvkayp92w684nyxyyx7mi0n1x6x51g5z6c58vmy";
   };
 
+  nativeBuildInputs = [
+    packaging
+  ] ++ lib.optionals withGui [
+    qt5.wrapQtAppsHook
+  ];
+
   propagatedBuildInputs = [
     asn1crypto
     click
@@ -67,10 +74,6 @@ buildPythonPackage rec {
   ];
   inherit doCheck;
 
-  nativeBuildInputs = lib.optionals withGui [
-    qt5.wrapQtAppsHook
-  ];
-
   # If it won't be verbose, you'll see nothing going on for a long time.
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/angr/default.nix b/pkgs/development/python-modules/angr/default.nix
index c85c5d6bd6396..4468dfabecd00 100644
--- a/pkgs/development/python-modules/angr/default.nix
+++ b/pkgs/development/python-modules/angr/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , ailment
 , archinfo
 , buildPythonPackage
@@ -44,16 +45,18 @@ in
 
 buildPythonPackage rec {
   pname = "angr";
-  version = "9.0.10576";
+  version = "9.1.10913";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lRoJZX7HPZE6y7v5AuU1C6sjOIXXefv8M/qPiNQtobw=";
+    sha256 = "sha256-AZlqSalTOQh3QR959ZuanFuTZVKi9valKJ3snsquC/A=";
   };
 
+  setupPyBuildFlags = lib.optionals stdenv.isLinux [ "--plat-name" "linux" ];
+
   propagatedBuildInputs = [
     ailment
     archinfo
diff --git a/pkgs/development/python-modules/angrcli/default.nix b/pkgs/development/python-modules/angrcli/default.nix
index 612cfbec5d6d7..bad2bb01bf8a4 100644
--- a/pkgs/development/python-modules/angrcli/default.nix
+++ b/pkgs/development/python-modules/angrcli/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "angrcli";
-  version = "1.1.1";
+  version = "1.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "fmagin";
     repo = "angr-cli";
     rev = "v${version}";
-    sha256 = "0mz3yzsw08xwpj6188rxmr7darilh4ismcnh8nhp9945wjyzl4kr";
+    sha256 = "sha256-a5ajUBQwt3xUNkeSOeGOAFf47wd4UVk+LcuAHGqbq4s=";
   };
 
   propagatedBuildInputs = [
@@ -35,15 +35,15 @@ buildPythonPackage rec {
   ];
 
   postPatch = ''
-    # Version mismatch, https://github.com/fmagin/angr-cli/pull/11
-    substituteInPlace setup.py \
-      --replace "version='1.1.0'," "version='${version}',"
     substituteInPlace tests/test_derefs.py \
       --replace "/bin/ls" "${coreutils}/bin/ls"
   '';
 
   disabledTests = [
     "test_sims"
+    "test_proper_termination"
+    "test_branching"
+    "test_morph"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/angrop/default.nix b/pkgs/development/python-modules/angrop/default.nix
index 7dc8d583958d2..7989a06b60efa 100644
--- a/pkgs/development/python-modules/angrop/default.nix
+++ b/pkgs/development/python-modules/angrop/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "angrop";
-  version = "9.0.10576";
+  version = "9.1.10913";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-i4F6VyJYJ6XON9G43Z2VwWAPHGRxR9DzxnEDGiJ8LSE=";
+    sha256 = "sha256-8M3d8lG7jDNgICjzjFRi9Wl2I7aYI5b5IvjEhixsk9k=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ansible-lint/default.nix b/pkgs/development/python-modules/ansible-lint/default.nix
index 9962ebdc491f9..2fac5e8a021e7 100644
--- a/pkgs/development/python-modules/ansible-lint/default.nix
+++ b/pkgs/development/python-modules/ansible-lint/default.nix
@@ -18,13 +18,13 @@
 
 buildPythonPackage rec {
   pname = "ansible-lint";
-  version = "5.2.1";
+  version = "5.3.1";
   disabled = isPy27;
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-1krKWcjYllQdN5uSBbISa4UQiKqwosLKsZ/3SxhM3xw=";
+    sha256 = "sha256-fXvHS5uQxZgr5cJ0wq/LpbgHPsiMznk/q0Y/5kGKJfY=";
   };
 
   nativeBuildInputs = [
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   ];
 
   pytestFlagsArray = [
-    "--numprocesses" "auto"
+    "--numprocesses" "$NIX_BUILD_CORES"
   ];
 
   preCheck = ''
diff --git a/pkgs/development/python-modules/ansible-runner/default.nix b/pkgs/development/python-modules/ansible-runner/default.nix
index a23f668529d18..f4ec1c1846272 100644
--- a/pkgs/development/python-modules/ansible-runner/default.nix
+++ b/pkgs/development/python-modules/ansible-runner/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname = "ansible-runner";
-  version = "2.0.3";
+  version = "2.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15j0ljgw1rjxq4xiywxxxnxj4r6vwk8dwljkdsjmq3qmwgifcswg";
+    sha256 = "7684612f7543c5f07f3e8135667eeb22a9dbd98f625cc69901ba9924329ef24f";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/ansible/base.nix b/pkgs/development/python-modules/ansible/base.nix
index e6113b93dcbc3..a7ab23a366618 100644
--- a/pkgs/development/python-modules/ansible/base.nix
+++ b/pkgs/development/python-modules/ansible/base.nix
@@ -28,11 +28,11 @@ let
 in
 buildPythonPackage rec {
   pname = "ansible-base";
-  version = "2.10.15";
+  version = "2.10.16";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-RHiBi6gh26FD4SNWjsXTF9yPpKxuFRP3pQFzTlKXa/8=";
+    sha256 = "sha256-2XQhTtA6wSnCmZZ6pMmCBZQ7o28gBA5/63JI4MPi6hU=";
   };
 
   # ansible_connection is already wrapped, so don't pass it through
diff --git a/pkgs/development/python-modules/ansible/core.nix b/pkgs/development/python-modules/ansible/core.nix
index 904a94717a979..a580719fcfe25 100644
--- a/pkgs/development/python-modules/ansible/core.nix
+++ b/pkgs/development/python-modules/ansible/core.nix
@@ -23,17 +23,17 @@
 
 let
   ansible-collections = callPackage ./collections.nix {
-    version = "4.8.0";
-    sha256 = "0dlfmvh7jqna6rig39wrnxhklc3k5a3ky3bfq73dqbmcr5hzli8k";
+    version = "5.0.1";
+    sha256 = "sha256:0xn3lpinmflkxwak7zb36wjs9w2y1k5s295apn3v77xnpc2cfz5l";
   };
 in
 buildPythonPackage rec {
   pname = "ansible-core";
-  version = "2.12.0";
+  version = "2.12.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-DpBJoauLjFTdyAc43AqytXhwvm/kzU5VhdRxVHq3SxM=";
+    sha256 = "sha256-pFCHByYr4Ru03ZigBvGxSBeHmgVea2xGrZ/KiJT7MHM=";
   };
 
   # ansible_connection is already wrapped, so don't pass it through
diff --git a/pkgs/development/python-modules/anyio/default.nix b/pkgs/development/python-modules/anyio/default.nix
index 8565f7d7dd5d5..382e64ea0f4fb 100644
--- a/pkgs/development/python-modules/anyio/default.nix
+++ b/pkgs/development/python-modules/anyio/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "anyio";
-  version = "3.3.2";
+  version = "3.3.4";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "agronholm";
     repo = pname;
     rev = version;
-    sha256 = "sha256-XBIrFb/XDneaOf/TeHxyeEfyQ7qQcWO7LJF0k1f4Ark=";
+    sha256 = "sha256-aMnXZ+4dlybId2QhjE/3STY+Sj/vzI6K7wmqqx+P8yE=";
   };
 
   preBuild = ''
diff --git a/pkgs/development/python-modules/aocd/default.nix b/pkgs/development/python-modules/aocd/default.nix
new file mode 100644
index 0000000000000..ca9768569ee1d
--- /dev/null
+++ b/pkgs/development/python-modules/aocd/default.nix
@@ -0,0 +1,58 @@
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, requests
+, pytestCheckHook, tzlocal, pytest-mock, pytest-freezegun, pytest-raisin
+, pytest-socket, requests-mock, pebble, python-dateutil, termcolor
+, beautifulsoup4, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "aocd";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "wimglenn";
+    repo = "advent-of-code-data";
+    rev = "v${version}";
+    sha256 = "sha256-wdg6XUkjnAc9yAP7DP0UT6SlQHfj/ymhqzIGNM3fco4=";
+  };
+
+  propagatedBuildInputs = [
+    python-dateutil
+    requests
+    termcolor
+    beautifulsoup4
+    pebble
+    tzlocal
+    setuptools
+  ];
+
+  # Too many failing tests
+  preCheck = "rm pytest.ini";
+
+  disabledTests = [
+    "test_results"
+    "test_results_xmas"
+    "test_run_error"
+    "test_run_and_autosubmit"
+    "test_run_and_no_autosubmit"
+    "test_load_input_from_file"
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytest-mock
+    pytest-freezegun
+    pytest-raisin
+    pytest-socket
+    requests-mock
+  ];
+
+  pythonImportsCheck = [ "aocd" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/wimglenn/advent-of-code-data";
+    description = "Get your Advent of Code data with a single import statement";
+    license = licenses.mit;
+    maintainers = with maintainers; [ aadibajpai ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/python-modules/apache-airflow/default.nix b/pkgs/development/python-modules/apache-airflow/default.nix
index 22a1772bf162e..c666d89b2bfa6 100644
--- a/pkgs/development/python-modules/apache-airflow/default.nix
+++ b/pkgs/development/python-modules/apache-airflow/default.nix
@@ -234,7 +234,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Programmatically author, schedule and monitor data pipelines";
-    homepage = "http://airflow.apache.org/";
+    homepage = "https://airflow.apache.org/";
     license = licenses.asl20;
     maintainers = with maintainers; [ bhipple costrouc ingenieroariel ];
   };
diff --git a/pkgs/development/python-modules/apispec/3.nix b/pkgs/development/python-modules/apispec/3.nix
new file mode 100644
index 0000000000000..e60a440df3f4b
--- /dev/null
+++ b/pkgs/development/python-modules/apispec/3.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyyaml
+, prance
+, marshmallow
+, pytestCheckHook
+, mock
+, openapi-spec-validator
+}:
+
+buildPythonPackage rec {
+  pname = "apispec";
+  version = "3.3.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "d23ebd5b71e541e031b02a19db10b5e6d5ef8452c552833e3e1afc836b40b1ad";
+  };
+
+  propagatedBuildInputs = [
+    pyyaml
+    prance
+  ];
+
+  postPatch = ''
+    rm tests/test_ext_marshmallow.py
+  '';
+
+  checkInputs = [
+    openapi-spec-validator
+    marshmallow
+    mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "apispec"
+  ];
+
+  meta = with lib; {
+    description = "A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification";
+    homepage = "https://github.com/marshmallow-code/apispec";
+    license = licenses.mit;
+    maintainers = [ maintainers.viric ];
+  };
+}
diff --git a/pkgs/development/python-modules/apprise/default.nix b/pkgs/development/python-modules/apprise/default.nix
index fbcd7addb2a55..18b829249198e 100644
--- a/pkgs/development/python-modules/apprise/default.nix
+++ b/pkgs/development/python-modules/apprise/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "apprise";
-  version = "0.9.5.1";
+  version = "0.9.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-vwkHA66xK4LGhdazZ0o93+cSpGwgiTCMm8IC8D4G1Y0=";
+    sha256 = "sha256-Fe0GIIGXydKP2DzWnnJ7SCgIeaTGEa/Wta6l0N7zl/g=";
   };
 
   nativeBuildInputs = [ Babel installShellFiles ];
diff --git a/pkgs/development/python-modules/aprslib/default.nix b/pkgs/development/python-modules/aprslib/default.nix
index c5f4fa75a572b..67d585d36ed0c 100644
--- a/pkgs/development/python-modules/aprslib/default.nix
+++ b/pkgs/development/python-modules/aprslib/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "aprslib";
-  version = "0.6.47";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "rossengeorgiev";
     repo = "aprs-python";
     rev = "v${version}";
-    sha256 = "1569v74ym2r8vxx3dnjcs5fr7rdrfb0i9sycny5frw2zgms4ag6b";
+    sha256 = "sha256-QasyF0Ch4zdPoAgcqRavEENVGA/02/AgeWAgXYcSUjk=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/apsw/default.nix b/pkgs/development/python-modules/apsw/default.nix
index c0f7274a80dd0..034e3e0df256d 100644
--- a/pkgs/development/python-modules/apsw/default.nix
+++ b/pkgs/development/python-modules/apsw/default.nix
@@ -1,8 +1,16 @@
-{ lib, buildPythonPackage, fetchFromGitHub, sqlite, isPyPy }:
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, sqlite
+, isPyPy
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "apsw";
-  version = "3.33.0-r1";
+  version = "3.36.0-r1";
+  format = "setuptools";
 
   disabled = isPyPy;
 
@@ -10,14 +18,43 @@ buildPythonPackage rec {
     owner = "rogerbinns";
     repo = "apsw";
     rev = version;
-    sha256 = "05mxcw1382xx22285fnv92xblqby3adfrvvalaw4dc6rzsn6kcan";
+    sha256 = "sha256-kQqJqDikvEC0+PNhQxSNTcjQc+RwvaOSGz9VL3FCetg=";
   };
 
-  buildInputs = [ sqlite ];
+  buildInputs = [
+    sqlite
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    "tests.py"
+  ];
+
+  disabledTests = [
+    "testCursor"
+    "testLoadExtension"
+    "testShell"
+    "testVFS"
+    "testVFSWithWAL"
+    "testdb"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # This is https://github.com/rogerbinns/apsw/issues/277 but
+    # because we use pytestCheckHook we need to blacklist the test
+    # manually
+    "testzzForkChecker"
+  ];
+
+  pythonImportsCheck = [
+    "apsw"
+  ];
 
   meta = with lib; {
     description = "A Python wrapper for the SQLite embedded relational database engine";
     homepage = "https://github.com/rogerbinns/apsw";
     license = licenses.zlib;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/apycula/default.nix b/pkgs/development/python-modules/apycula/default.nix
index 0f86c103c27de..53851ded566d9 100644
--- a/pkgs/development/python-modules/apycula/default.nix
+++ b/pkgs/development/python-modules/apycula/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "apycula";
-  version = "0.0.1a11";
+  version = "0.0.1a12";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit version;
     pname = "Apycula";
-    sha256 = "0fwk1pgphpgj0lazjy40ii08xq2qi6bvrfc30rwfj52yff1s9akn";
+    hash = "sha256-TFb1C1GaMAK+ckEeXDxSyO2Cgx5dmq62daoSnAiAFmI=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/archinfo/default.nix b/pkgs/development/python-modules/archinfo/default.nix
index 8417d7d95af6c..ce7bfb1668f19 100644
--- a/pkgs/development/python-modules/archinfo/default.nix
+++ b/pkgs/development/python-modules/archinfo/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "archinfo";
-  version = "9.0.10576";
+  version = "9.1.10913";
 
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-K36tAsVfminDFK09jE6+ruROkaLfCTNPCL5ziZJOrVk=";
+    sha256 = "sha256-VLFbjKX7WXWoJCS9hYwtEikGC48gRg7E24D9Un+/gdc=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/argh/default.nix b/pkgs/development/python-modules/argh/default.nix
index bbe120ec14fed..fd9ff184000f2 100644
--- a/pkgs/development/python-modules/argh/default.nix
+++ b/pkgs/development/python-modules/argh/default.nix
@@ -1,11 +1,10 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytest
-, py
-, mock
-, glibcLocales
+, fetchpatch
 , iocapture
+, mock
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -17,18 +16,27 @@ buildPythonPackage rec {
     sha256 = "e9535b8c84dc9571a48999094fda7f33e63c3f1b74f3e5f3ac0105a58405bb65";
   };
 
-  checkInputs = [ pytest py mock glibcLocales iocapture ];
+  patches = [
+    # https://github.com/neithere/argh/issues/148
+    (fetchpatch {
+      name = "argh-0.26.2-fix-py3.9-msgs.patch";
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/dev-python/argh/files/argh-0.26.2-fix-py3.9-msgs.patch?id=6f194f12a2e30aad7da347848f7b0187e188f983";
+      sha256 = "nBmhF2PXVeS7cBNujzip6Bb601LRHrjmhlGKFr/++Oo=";
+    })
+  ];
 
-  checkPhase = ''
-    export LANG="en_US.UTF-8"
-    py.test
-  '';
+  checkInputs = [
+    iocapture
+    mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "argh" ];
 
   meta = with lib; {
-    homepage = "https://github.com/neithere/argh/";
+    homepage = "https://github.com/neithere/argh";
     description = "An unobtrusive argparse wrapper with natural syntax";
-    license = licenses.lgpl2;
+    license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/arrow/default.nix b/pkgs/development/python-modules/arrow/default.nix
index 72bbdb7b977cb..fc66509a194a1 100644
--- a/pkgs/development/python-modules/arrow/default.nix
+++ b/pkgs/development/python-modules/arrow/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "arrow";
-  version = "1.2.0";
+  version = "1.2.1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16fc29bbd9e425e3eb0fef3018297910a0f4568f21116fc31771e2760a50e074";
+    sha256 = "c2dde3c382d9f7e6922ce636bf0b318a7a853df40ecb383b29192e6c5cc82840";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/ascii-magic/default.nix b/pkgs/development/python-modules/ascii-magic/default.nix
new file mode 100644
index 0000000000000..6a1b617c03ed1
--- /dev/null
+++ b/pkgs/development/python-modules/ascii-magic/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, colorama
+, fetchPypi
+, pillow
+}:
+
+buildPythonPackage rec {
+  pname = "ascii-magic";
+  version = "1.6";
+
+  src = fetchPypi {
+    pname = "ascii_magic";
+    inherit version;
+    sha256 = "sha256-faVRj3No5z8R4hUaDAYIBKoUniZ7Npt+52U/vXsEalE=";
+  };
+
+  propagatedBuildInputs = [
+    colorama
+    pillow
+  ];
+
+  # Project is not tagging releases and tests are not shipped with PyPI source
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "ascii_magic"
+  ];
+
+  meta = with lib; {
+    description = "Python module to converts pictures into ASCII art";
+    homepage = "https://github.com/LeandroBarone/python-ascii_magic";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/ase/default.nix b/pkgs/development/python-modules/ase/default.nix
index 25210e4740bde..c3ec514844c22 100644
--- a/pkgs/development/python-modules/ase/default.nix
+++ b/pkgs/development/python-modules/ase/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "ase";
-  version = "3.22.0";
+  version = "3.22.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-5gJZx7UIZ7HLgXyvk4/MHtODcCQT320uGv5+oH9lrO4=";
+    sha256 = "sha256-AE32sOoEsRFMeQ+t/kXUEl6w5TElxmqTQlr4U9gqtDI=";
   };
 
   propagatedBuildInputs = [ numpy scipy matplotlib flask pillow psycopg2 ];
diff --git a/pkgs/development/python-modules/astroid/default.nix b/pkgs/development/python-modules/astroid/default.nix
index b6ba53055d36f..101f84b4fceab 100644
--- a/pkgs/development/python-modules/astroid/default.nix
+++ b/pkgs/development/python-modules/astroid/default.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , pythonOlder
 , isPyPy
 , lazy-object-proxy
@@ -15,32 +14,23 @@
 
 buildPythonPackage rec {
   pname = "astroid";
-  version = "2.8.2"; # Check whether the version is compatible with pylint
+  version = "2.9.0"; # Check whether the version is compatible with pylint
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.6.2";
 
   src = fetchFromGitHub {
     owner = "PyCQA";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0140h4l7licwdw0scnfzsbi5b2ncxi7fxhdab7c1i3sk01r4asp6";
+    sha256 = "sha256-sImWiWULZ1HS3JyQHfEhc4ZRZ6anOUTqZZGNIYj2MaY=";
   };
 
-  SETUPTOOLS_SCM_PRETEND_VERSION=version;
-
-  patches = [
-    (fetchpatch {
-      # Allow wrapt 1.13 (https://github.com/PyCQA/astroid/pull/1203)
-      url = "https://github.com/PyCQA/astroid/commit/fd510e08c2ee862cd284861e02b9bcc9a7fd9809.patch";
-      sha256 = "1s10whslcqnyz251fb76qkc9p41gagxljpljsmw89id1wywmjib4";
-    })
-  ];
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
   nativeBuildInputs = [
     setuptools-scm
   ];
 
-  # From astroid/__pkginfo__.py
   propagatedBuildInputs = [
     lazy-object-proxy
     wrapt
@@ -52,6 +42,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # assert (1, 1) == (1, 16)
+    "test_end_lineno_string"
+  ];
+
   passthru.tests = {
     inherit pylint;
   };
diff --git a/pkgs/development/python-modules/async-upnp-client/default.nix b/pkgs/development/python-modules/async-upnp-client/default.nix
index 3b7634b181e45..3f09521e34f22 100644
--- a/pkgs/development/python-modules/async-upnp-client/default.nix
+++ b/pkgs/development/python-modules/async-upnp-client/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "async-upnp-client";
-  version = "0.22.12";
+  version = "0.23.1";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "StevenLooman";
     repo = "async_upnp_client";
     rev = version;
-    sha256 = "sha256-fp7I0G6gljkTZ2slQJ8R9AJ9VKQOQi2cLiZ63seUajs=";
+    sha256 = "sha256-m8oTqGbsJ99ImtnSlL4LX1qR0bUhGtVPPWmjsZfV6sE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/async_stagger/default.nix b/pkgs/development/python-modules/async_stagger/default.nix
index 638e326e0da4b..3dafd2b21941e 100644
--- a/pkgs/development/python-modules/async_stagger/default.nix
+++ b/pkgs/development/python-modules/async_stagger/default.nix
@@ -10,6 +10,8 @@
 buildPythonPackage rec {
   pname = "async_stagger";
   version = "0.3.1";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
@@ -23,7 +25,14 @@ buildPythonPackage rec {
     pytest-mock
   ];
 
-  pythonImportsCheck = [ "async_stagger" ];
+  disabledTests = [
+    # RuntimeError: Logic bug in...
+    "test_stagger_coro_gen"
+  ];
+
+  pythonImportsCheck = [
+    "async_stagger"
+  ];
 
   meta = with lib; {
     description = "Happy Eyeballs connection algorithm and underlying scheduling logic in asyncio";
diff --git a/pkgs/development/python-modules/async_timeout/default.nix b/pkgs/development/python-modules/async_timeout/default.nix
index a1dbb521ce3d9..ae8bacc944151 100644
--- a/pkgs/development/python-modules/async_timeout/default.nix
+++ b/pkgs/development/python-modules/async_timeout/default.nix
@@ -2,22 +2,27 @@
 , fetchPypi
 , buildPythonPackage
 , pythonOlder
+, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "async-timeout";
-  version = "3.0.1";
+  version = "4.0.1";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f";
+    sha256 = "sha256-uTDLFho5BC+SIvbvtzATmch+6rOUcn7FQ3kko21u71E=";
   };
 
+  propagatedBuildInputs = [
+    typing-extensions
+  ];
+
   # Circular dependency on aiohttp
   doCheck = false;
 
-  disabled = pythonOlder "3.4";
-
   meta = {
     description = "Timeout context manager for asyncio programs";
     homepage = "https://github.com/aio-libs/async_timeout/";
diff --git a/pkgs/development/python-modules/asyncio-nats-client/default.nix b/pkgs/development/python-modules/asyncio-nats-client/default.nix
index b5017123850fc..46dbcdbacd5e5 100644
--- a/pkgs/development/python-modules/asyncio-nats-client/default.nix
+++ b/pkgs/development/python-modules/asyncio-nats-client/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "asyncio-nats-client";
-  version = "0.11.4";
+  version = "0.11.5";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "nats-io";
     repo = "nats.py";
     rev = "v${version}";
-    sha256 = "1aj57xi2rj1xswq8air13xdsll1ybpi0nmz5f6jq01azm0zy9xyd";
+    sha256 = "0zwiijaswmfdk71diqmdpb6nx54fmgi8hy0vwx2m3ihhsyjxj82h";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/asyncio-rlock/default.nix b/pkgs/development/python-modules/asyncio-rlock/default.nix
new file mode 100644
index 0000000000000..5ad616180cee2
--- /dev/null
+++ b/pkgs/development/python-modules/asyncio-rlock/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "asyncio-rlock";
+  version = "0.1.0";
+
+  src = fetchPypi {
+    pname = "asyncio_rlock";
+    inherit version;
+    sha256 = "7e29824331619873e10d5d99dcc46d7b8f196c4a11b203f4eeccc0c091039d43";
+  };
+
+  # no tests on PyPI, no tags on GitLab
+  doCheck = false;
+
+  pythonImportsCheck = [ "asyncio_rlock" ];
+
+  meta = with lib; {
+    description = "Rlock like in threading module but for asyncio";
+    homepage = "https://gitlab.com/heckad/asyncio_rlock";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/asyncmy/default.nix b/pkgs/development/python-modules/asyncmy/default.nix
new file mode 100644
index 0000000000000..4d4eaaacaad79
--- /dev/null
+++ b/pkgs/development/python-modules/asyncmy/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, cython
+, fetchFromGitHub
+, poetry-core
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "asyncmy";
+  version = "0.2.3";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "long2ice";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "ys9RYaosc4noJsWYsVo9+6W7JaG4r6lsz6UH4o08q4A=";
+  };
+
+  nativeBuildInputs = [
+    cython
+    poetry-core
+  ];
+
+  # Not running tests as aiomysql is missing support for
+  # pymysql>=0.9.3
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "asyncmy"
+  ];
+
+  meta = with lib; {
+    description = "Python module to interact with MySQL/mariaDB";
+    homepage = "https://github.com/long2ice/asyncmy";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/asyncpg/default.nix b/pkgs/development/python-modules/asyncpg/default.nix
index 9c9e2d623dc4c..7ae4cb1b7898a 100644
--- a/pkgs/development/python-modules/asyncpg/default.nix
+++ b/pkgs/development/python-modules/asyncpg/default.nix
@@ -3,12 +3,12 @@
 
 buildPythonPackage rec {
   pname = "asyncpg";
-  version = "0.24.0";
+  version = "0.25.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-3S+gY8M0SCNIfZ3cy0CALwJiLd+L+KbMU4he56LBwMY=";
+    sha256 = "63f8e6a69733b285497c2855464a34de657f2cccd25aeaeeb5071872e9382540";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/atom/default.nix b/pkgs/development/python-modules/atom/default.nix
index cb9503fe6e9c6..80e29932ee2d7 100644
--- a/pkgs/development/python-modules/atom/default.nix
+++ b/pkgs/development/python-modules/atom/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "atom";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "df65a654744ccdc4843ce09c38612fd8f702c84be501b1d955c3ac0b9ad28dc5";
+    sha256 = "4055fbdeeb692d3d52c6e3c628d7513fc71f147920cac7d0da05b6dbb5ec8c8d";
   };
 
   buildInputs = [ cppy ];
diff --git a/pkgs/development/python-modules/atomman/default.nix b/pkgs/development/python-modules/atomman/default.nix
index 8e03dbe67af7d..7f5b08fd4fe3f 100644
--- a/pkgs/development/python-modules/atomman/default.nix
+++ b/pkgs/development/python-modules/atomman/default.nix
@@ -17,7 +17,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.4.2";
+  version = "1.4.3";
   pname = "atomman";
   format = "setuptools";
 
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "usnistgov";
     repo = "atomman";
     rev = "v${version}";
-    sha256 = "sha256-Kq4mDykYf74ylWw2golxc81CYKGokXro64YUsFctLmk=";
+    sha256 = "sha256-is47O59Pjrh9tPC1Y2+DVVcHbxmcjUOFOVGnNHuURoM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aubio/default.nix b/pkgs/development/python-modules/aubio/default.nix
index 4616e1b6ed3fe..ad78b6c63fc8c 100644
--- a/pkgs/development/python-modules/aubio/default.nix
+++ b/pkgs/development/python-modules/aubio/default.nix
@@ -3,6 +3,8 @@
 , fetchFromGitHub
 , numpy
 , pytestCheckHook
+, stdenv
+, darwin
 }:
 
 buildPythonPackage rec {
@@ -16,6 +18,8 @@ buildPythonPackage rec {
     sha256 = "0fhxikvlr010nbh02g455d5y8bq6j5yw180cdh4gsd0hb43y3z26";
   };
 
+  buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Accelerate AudioToolbox CoreVideo CoreGraphics ]);
+
   propagatedBuildInputs = [
     numpy
   ];
diff --git a/pkgs/development/python-modules/authcaptureproxy/default.nix b/pkgs/development/python-modules/authcaptureproxy/default.nix
index c03b423932dfb..73422a0624c8c 100644
--- a/pkgs/development/python-modules/authcaptureproxy/default.nix
+++ b/pkgs/development/python-modules/authcaptureproxy/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "authcaptureproxy";
-  version = "1.0.2";
+  version = "1.1.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "alandtse";
     repo = "auth_capture_proxy";
     rev = "v${version}";
-    sha256 = "1cg63qhf823nf785kyl96r7vyxfl6dlbwsmhcpny8vb65pl9gng5";
+    sha256 = "08zpaclg5f9g1pix0jaq42i2ph12xc8djjrmhxz0yygw5rsilgl4";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/autobahn/default.nix b/pkgs/development/python-modules/autobahn/default.nix
index d51862dd1db41..a088a0120103a 100644
--- a/pkgs/development/python-modules/autobahn/default.nix
+++ b/pkgs/development/python-modules/autobahn/default.nix
@@ -23,12 +23,14 @@
 
 buildPythonPackage rec {
   pname = "autobahn";
-  version = "21.3.1";
+  version = "21.11.1";
+  format = "setuptools";
+
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "00wf9dkfgakg80gy62prg650lb8zz9y9fdlxwxcznwp8hgsw29p1";
+    sha256 = "sha256-vW9GMVQZygpb5BCfc3QQIIrV8ZcY9nympKZ0zGbKmxg=";
   };
 
   propagatedBuildInputs = [
@@ -64,9 +66,13 @@ buildPythonPackage rec {
     export USE_ASYNCIO=1
   '';
 
-  pytestFlagsArray = [ "--pyargs autobahn" ];
+  pytestFlagsArray = [
+    "--pyargs autobahn"
+  ];
 
-  pythonImportsCheck = [ "autobahn" ];
+  pythonImportsCheck = [
+    "autobahn"
+  ];
 
   meta = with lib; {
     description = "WebSocket and WAMP in Python for Twisted and asyncio";
diff --git a/pkgs/development/python-modules/autoit-ripper/default.nix b/pkgs/development/python-modules/autoit-ripper/default.nix
index 2276241d25e9b..420322a32340d 100644
--- a/pkgs/development/python-modules/autoit-ripper/default.nix
+++ b/pkgs/development/python-modules/autoit-ripper/default.nix
@@ -1,31 +1,37 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, lief
+, pefile
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "autoit-ripper";
-  version = "1.0.1";
-  disabled = pythonOlder "3.6";
+  version = "1.1.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mbsrfa72n7y1vkm9jhwhn1z3k45jxrlgx58ia1l2bp6chnnn2zy";
+    sha256 = "sha256-fluG/2XlUh3kPtYtSotrP02c7kdmem92Hy1R93SaTzk=";
   };
 
   propagatedBuildInputs = [
-    lief
+    pefile
   ];
 
   postPatch = ''
-    substituteInPlace requirements.txt --replace "lief==0.10.1" "lief>=0.10.1"
+    substituteInPlace requirements.txt \
+      --replace "pefile==2019.4.18" "pefile>=2019.4.18"
   '';
 
   # Project has no tests
   doCheck = false;
-  pythonImportsCheck = [ "autoit_ripper" ];
+
+  pythonImportsCheck = [
+    "autoit_ripper"
+  ];
 
   meta = with lib; {
     description = "Python module to extract AutoIt scripts embedded in PE binaries";
diff --git a/pkgs/development/python-modules/automate-home/default.nix b/pkgs/development/python-modules/automate-home/default.nix
new file mode 100644
index 0000000000000..bd2816f6d3454
--- /dev/null
+++ b/pkgs/development/python-modules/automate-home/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pythonOlder
+, APScheduler
+, hiredis
+, aioredis
+, ephem
+, pytz
+, pyyaml
+}:
+
+buildPythonPackage rec {
+  pname = "automate-home";
+  version = "0.9.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-41qd+KPSrOrczkovwXht3irbcYlYehBZ1HZ44yZe4cM=";
+  };
+
+  propagatedBuildInputs = [
+    APScheduler
+    hiredis
+    aioredis
+    ephem
+    pytz
+    pyyaml
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    # Rename pyephem, https://github.com/majamassarini/automate-home/pull/3
+    substituteInPlace setup.py \
+      --replace "pyephem" "ephem" \
+      --replace "aioredis==1.3.1" "aioredis"
+  '';
+
+  pythonImportsCheck = [
+    "home"
+  ];
+
+  meta = with lib; {
+    description = "Python module to automate (home) devices";
+    homepage = "https://github.com/majamassarini/automate-home";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/autopep8/default.nix b/pkgs/development/python-modules/autopep8/default.nix
index 737989ac3183c..80c57ef732c21 100644
--- a/pkgs/development/python-modules/autopep8/default.nix
+++ b/pkgs/development/python-modules/autopep8/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "autopep8";
-  version = "1.5.7";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "276ced7e9e3cb22e5d7c14748384a5cf5d9002257c0ed50c0e075b68011bb6d0";
+    sha256 = "44f0932855039d2c15c4510d6df665e4730f2b8582704fa48f9c55bd3e17d979";
   };
 
   propagatedBuildInputs = [ pycodestyle toml ];
diff --git a/pkgs/development/python-modules/av/default.nix b/pkgs/development/python-modules/av/default.nix
index bf21025e86223..c79dc8b3fcb14 100644
--- a/pkgs/development/python-modules/av/default.nix
+++ b/pkgs/development/python-modules/av/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "av";
-  version = "8.0.3";
+  version = "8.1.0";
   disabled = isPy27; # setup.py no longer compatible
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "521814309c91d526b6b5c9517018aef2dd12bc3d86351037db69aa67730692b8";
+    sha256 = "0402169bc27e38e0f44e0e0e1854cf488337e86206b6d25d6dae2bfd7a1a0230";
   };
 
   checkInputs = [ numpy ];
diff --git a/pkgs/development/python-modules/avro/default.nix b/pkgs/development/python-modules/avro/default.nix
index 4c1fb77dc69b8..d69f009aaf4cb 100644
--- a/pkgs/development/python-modules/avro/default.nix
+++ b/pkgs/development/python-modules/avro/default.nix
@@ -1,30 +1,44 @@
-{ lib, buildPythonPackage, isPy3k, fetchPypi, pycodestyle, isort }:
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, typing-extensions
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "avro";
-  version = "1.10.2";
+  version = "1.11.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "381b990cc4c4444743c3297348ffd46e0c3a5d7a17e15b2f4a9042f6e955c31a";
+    sha256 = "1206365cc30ad561493f735329857dd078533459cee4e928aec2505f341ce445";
   };
 
-  patchPhase = ''
-    # this test requires network access
-    sed -i 's/test_server_with_path/noop/' avro/test/test_ipc.py
-  '' + (lib.optionalString isPy3k ''
-    # these files require twisted, which is not python3 compatible
-    rm avro/txipc.py
-    rm avro/test/txsample*
-  '');
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
+    typing-extensions
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Requires network access
+    "test_server_with_path"
+  ];
 
-  nativeBuildInputs = [ pycodestyle ];
-  propagatedBuildInputs = [ isort ];
+  pythonImportsCheck = [
+    "avro"
+  ];
 
   meta = with lib; {
-    description = "A serialization and RPC framework";
-    homepage = "https://pypi.python.org/pypi/avro/";
+    description = "Python serialization and RPC framework";
+    homepage = "https://github.com/apache/avro";
     license = licenses.asl20;
-    maintainers = [ maintainers.zimbatm ];
+    maintainers = with maintainers; [ zimbatm ];
   };
 }
diff --git a/pkgs/development/python-modules/awesomeversion/default.nix b/pkgs/development/python-modules/awesomeversion/default.nix
index b57a26060fd63..f99407030cdd4 100644
--- a/pkgs/development/python-modules/awesomeversion/default.nix
+++ b/pkgs/development/python-modules/awesomeversion/default.nix
@@ -3,32 +3,35 @@
 , fetchFromGitHub
 , pytestCheckHook
 , pythonOlder
-, requests
 }:
 
 buildPythonPackage rec {
   pname = "awesomeversion";
-  version = "21.10.1";
+  version = "21.11.0";
+  format = "setuptools";
+
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "ludeeus";
     repo = pname;
     rev = version;
-    sha256 = "sha256-y+QU8T1Cb6FpRcRqhao4KPdE9XlU5C+GURaEuahC25E=";
+    sha256 = "sha256-qxN5AdLlzadG0/raeAyJ/37PLgYLndl1JQSVkgdLv/4=";
   };
 
   postPatch = ''
-    substituteInPlace setup.py --replace "main" ${version}
+    # Upstream doesn't set a version
+    substituteInPlace setup.py \
+      --replace "main" ${version}
   '';
 
-  propagatedBuildInputs = [ requests ];
-
   checkInputs = [
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "awesomeversion" ];
+  pythonImportsCheck = [
+    "awesomeversion"
+  ];
 
   meta = with lib; {
     description = "Python module to deal with versions";
diff --git a/pkgs/development/python-modules/awkward/default.nix b/pkgs/development/python-modules/awkward/default.nix
index c60122ff18021..f1152da2d1d47 100644
--- a/pkgs/development/python-modules/awkward/default.nix
+++ b/pkgs/development/python-modules/awkward/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "awkward";
-  version = "1.5.1";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c0357c62223fefcfc7a7565389dbd4db900623bf10eccf2bc8e87586ec59b38d";
+    sha256 = "e4e642dfe496d2acb245c90e37dc18028e25d5e936421e7371ea6ba0fde6435a";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/python-modules/aws-lambda-builders/default.nix b/pkgs/development/python-modules/aws-lambda-builders/default.nix
index a99be4038b384..b127ad2410e58 100644
--- a/pkgs/development/python-modules/aws-lambda-builders/default.nix
+++ b/pkgs/development/python-modules/aws-lambda-builders/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "aws-lambda-builders";
-  version = "1.9.0";
+  version = "1.10.0";
 
   # No tests available in PyPI tarball
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-lambda-builders";
     rev = "v${version}";
-    sha256 = "1ff1hr282snpjs5ggf7agxk5y6nr4xjdahmzq6hv56gj4lcfsq7c";
+    sha256 = "0nrqxgl24c6lknxhmmf7vkhvdy54dhnr9qcm1r1gwxzdsymq2l54";
   };
 
   # Package is not compatible with Python 3.5
diff --git a/pkgs/development/python-modules/aws-sam-translator/default.nix b/pkgs/development/python-modules/aws-sam-translator/default.nix
index d8c1419b0c53c..4ca5df17109fc 100644
--- a/pkgs/development/python-modules/aws-sam-translator/default.nix
+++ b/pkgs/development/python-modules/aws-sam-translator/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "aws-sam-translator";
-  version = "1.40.0";
+  version = "1.42.0";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "serverless-application-model";
     rev = "v${version}";
-    sha256 = "sha256-jVJVoS7rc1RebBvihzmv6LvufMf/VvXOwj0TYkXBdmo=";
+    sha256 = "sha256-pjcRsmxPL4lbgDopW+wKQRkRcqebLPTd95JTL8PiWtc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-core/default.nix b/pkgs/development/python-modules/azure-core/default.nix
index 773696c039581..b4dc461ea88c1 100644
--- a/pkgs/development/python-modules/azure-core/default.nix
+++ b/pkgs/development/python-modules/azure-core/default.nix
@@ -15,14 +15,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.17.0";
+  version = "1.20.1";
   pname = "azure-core";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "25407390dde142d3e41ecf78bb18cedda9b7f7a0af558d082dec711c4a334f46";
+    sha256 = "21d06311c9c373e394ed9f9db035306773334a0181932e265889eca34d778d17";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-eventgrid/default.nix b/pkgs/development/python-modules/azure-eventgrid/default.nix
index e2736b88e4f51..a5e06a4f54f28 100644
--- a/pkgs/development/python-modules/azure-eventgrid/default.nix
+++ b/pkgs/development/python-modules/azure-eventgrid/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "azure-eventgrid";
-  version = "4.5.0";
+  version = "4.7.1";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "41ce94305fd3c4e2534f7663fb1be79819fc7d59f2b20544593ea6c914839351";
+    sha256 = "b96afc0317c764c2c428512485305ec5748698081cb6bc70dcaa903b0ac04754";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-keyvault/default.nix b/pkgs/development/python-modules/azure-keyvault/default.nix
index f5b83df266403..8a4799c688b4b 100644
--- a/pkgs/development/python-modules/azure-keyvault/default.nix
+++ b/pkgs/development/python-modules/azure-keyvault/default.nix
@@ -21,10 +21,9 @@ buildPythonPackage rec {
     azure-keyvault-secrets
   ];
 
-  # this is just a meta package, which contains keys and secrets
+  # this is just a meta package, which contains keys and secrets packages
   doCheck = false;
-
-  pythonNamespaces = [ "azure" ];
+  doBuild = false;
 
   pythonImportsCheck = [
     "azure.keyvault.keys"
diff --git a/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix b/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix
index cb782c6e58e38..08b810f752d1a 100644
--- a/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cognitiveservices";
-  version = "12.0.0";
+  version = "13.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "73054bd19866577e7e327518afc8f47e1639a11aea29a7466354b81804f4a676";
+    sha256 = "dc6116e8394d45312c7ad5a9098ce0dd2370bd92d43afd33d8b3bfab724fa498";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
index 69ca3c63391be..b9e75eca44c37 100644
--- a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-containerservice";
-  version = "16.3.0";
+  version = "16.4.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "87f06525c6cc47de86d7886ed35f04140ddaf1b0c59482ba578fdb3f5d143b1c";
+    sha256 = "23a8047668ebd1fa7c3c2445eba4e69c07675306e2a94ae6a3e455df162bd008";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix b/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
index c2c4e6328d5bb..cb1d15179b2dd 100644
--- a/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-datafactory";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "df14272a1835f743d1889f901e972ed6ec9ea9d6f8966ba2865bf10306a621cc";
+    sha256 = "d2a3cfe844bd9e51499b81bba7510e2c8df4fc3a40a7059e6224ed043d65a786";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix b/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
index 9de9ffd527433..e145ab520a452 100644
--- a/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-keyvault";
-  version = "9.2.0";
+  version = "9.3.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "37ecd44c49ceca7d7c9431e59148febd15d7fec261651ed72ddd58755e7450b0";
+    sha256 = "54156422e618b686d52232a7989594b240bd18afd0fa381e12e4772ed4ab5ea8";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix b/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
index 790e7cf86c1aa..947bb4a28ba97 100644
--- a/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-loganalytics";
-  version = "11.0.0";
+  version = "12.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "41671fc6e95180fb6147cb40567410c34b85fb69bb0a9b3e09feae1ff370ee9d";
+    sha256 = "da128a7e0291be7fa2063848df92a9180cf5c16d42adc09d2bc2efd711536bfb";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix b/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
index 67343337868a9..0d3a4bfb2b33b 100644
--- a/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-recoveryservicesbackup";
-  version = "3.0.0";
+  version = "4.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1992486b28ddd6d4f597fd3004217cd2caf4f4dc8a0ce71226b5ae767ace3a18";
+    sha256 = "a848ac1d99c935e61dfb91ca3e1577904a3eff5820fce179eb6937df8e1019ec";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-redis/default.nix b/pkgs/development/python-modules/azure-mgmt-redis/default.nix
index 79045a4b4ba85..c7890b55b04c4 100644
--- a/pkgs/development/python-modules/azure-mgmt-redis/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-redis/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-redis";
-  version = "13.0.0";
+  version = "13.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "283f776afe329472c20490b1f2c21c66895058cb06fb941eccda42cc247217f1";
+    sha256 = "ece913e5fc7f157e945809e557443f79ff7691cabca4bbc5ecb266352f843179";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-servicelinker/default.nix b/pkgs/development/python-modules/azure-mgmt-servicelinker/default.nix
new file mode 100644
index 0000000000000..58d32853194bd
--- /dev/null
+++ b/pkgs/development/python-modules/azure-mgmt-servicelinker/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, azure-common
+, azure-mgmt-core
+, msrest
+}:
+
+buildPythonPackage rec {
+  pname = "azure-mgmt-servicelinker";
+  version = "1.0.0b1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4f70d3bcd98ba539bfef870e3c497ebdc5efed3200c2627a61718baa9ab21a61";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    azure-mgmt-core
+    msrest
+  ];
+
+  pythonImportsCheck = [ "azure.mgmt.servicelinker" ];
+
+  # no tests with sdist
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Microsoft Azure Servicelinker Management Client Library for Python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-mgmt-subscription/default.nix b/pkgs/development/python-modules/azure-mgmt-subscription/default.nix
index d4238cc8204ff..64dcf44345efe 100644
--- a/pkgs/development/python-modules/azure-mgmt-subscription/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-subscription/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-subscription";
-  version = "1.0.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "22f606f298419f466a8149811fc762686c93da00a7dc15d3b7cdbf22b96cf5db";
+    sha256 = "70ec6e3395549c434bfd981f8f76cb8b6863339bad9b31924c1510af661dbf45";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-storage-blob/default.nix b/pkgs/development/python-modules/azure-storage-blob/default.nix
index fe36536dfe211..8d3bb5aca3e87 100644
--- a/pkgs/development/python-modules/azure-storage-blob/default.nix
+++ b/pkgs/development/python-modules/azure-storage-blob/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-storage-blob";
-  version = "12.8.1";
+  version = "12.9.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "eb37b50ddfb6e558b29f6c8c03b0666514e55d6170bf4624e7261a3af93c6401";
+    sha256 = "cff66a115c73c90e496c8c8b3026898a3ce64100840276e9245434e28a864225";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-synapse-artifacts/default.nix b/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
index f500e9068adb4..4be6c43ba9ab5 100644
--- a/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
+++ b/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "azure-synapse-artifacts";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "5e1d8f03939eafe29c301659c7b819053513be6f224861388b0048ca62e7a75d";
+    sha256 = "3f782c9b590b8ae43678c6e003df8ca8cca675832039d270b0b7437ff01557fd";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/b2sdk/default.nix b/pkgs/development/python-modules/b2sdk/default.nix
index ea745dba369ce..5f9eb41bf821b 100644
--- a/pkgs/development/python-modules/b2sdk/default.nix
+++ b/pkgs/development/python-modules/b2sdk/default.nix
@@ -16,12 +16,12 @@
 
 buildPythonPackage rec {
   pname = "b2sdk";
-  version = "1.13.0";
+  version = "1.14.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Q9B85c+WhazDeXsMR2S0aId32xLY8BAuYRj4QD21x1k=";
+    sha256 = "900da60f9e569e02405b85db35541a79e1cac776ace5d054498b107982ea443c";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/baron/default.nix b/pkgs/development/python-modules/baron/default.nix
index 8a04befc6d16f..e5a752dd5dbb7 100644
--- a/pkgs/development/python-modules/baron/default.nix
+++ b/pkgs/development/python-modules/baron/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "baron";
-  version = "0.9";
+  version = "0.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0fib74nkqnl1i2zzlhbbfpw3whwc4951p9x61r2xrxhwp4r9yn5h";
+    sha256 = "af822ad44d4eb425c8516df4239ac4fdba9fdb398ef77e4924cd7c9b4045bc2f";
   };
 
   propagatedBuildInputs = [ rply ];
diff --git a/pkgs/development/python-modules/bellows/default.nix b/pkgs/development/python-modules/bellows/default.nix
index 8dc13ea50a2a7..33539e371c2a4 100644
--- a/pkgs/development/python-modules/bellows/default.nix
+++ b/pkgs/development/python-modules/bellows/default.nix
@@ -17,13 +17,14 @@
 
 buildPythonPackage rec {
   pname = "bellows";
-  version = "0.28.0";
+  version = "0.29.0";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = "bellows";
     rev = version;
-    sha256 = "sha256-j1vS6PDvvuJapECn0lKGuBkYwWsyzJaTZDRQPjMsuLk=";
+    sha256 = "sha256-coIrI3C6Wnn8Of/IHAlvZgkcBBf9OBQt5Ir6YOXCf0c=";
   };
 
   propagatedBuildInputs = [
@@ -45,12 +46,6 @@ buildPythonPackage rec {
     asynctest
   ];
 
-  disabledTests = [
-    # AssertionError: assert 65534 is None
-    # https://github.com/zigpy/bellows/issues/436
-    "test_startup_nwk_params"
-  ];
-
   pythonImportsCheck = [
     "bellows"
   ];
diff --git a/pkgs/development/python-modules/bids-validator/default.nix b/pkgs/development/python-modules/bids-validator/default.nix
index c5ccff1dad245..49952b4f5f177 100644
--- a/pkgs/development/python-modules/bids-validator/default.nix
+++ b/pkgs/development/python-modules/bids-validator/default.nix
@@ -4,12 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.8.4";
+  version = "1.8.9";
   pname = "bids-validator";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "63e7a02c9ddb5505a345e178f4e436b82c35ec0a177d7047b67ea10ea3029a68";
+    sha256 = "01fcb5a8fe6de1280cdfd5b37715103ffa0bafb3c739ca7f5ffc41e46549612e";
   };
 
   # needs packages which are not available in nixpkgs
diff --git a/pkgs/development/python-modules/bimmer-connected/default.nix b/pkgs/development/python-modules/bimmer-connected/default.nix
index c91af48b9e9e8..004b7d4e3e096 100644
--- a/pkgs/development/python-modules/bimmer-connected/default.nix
+++ b/pkgs/development/python-modules/bimmer-connected/default.nix
@@ -4,13 +4,16 @@
 , fetchFromGitHub
 , pbr
 , requests
+, pycryptodome
+, pyjwt
 , pytestCheckHook
 , requests-mock
+, time-machine
 }:
 
 buildPythonPackage rec {
   pname = "bimmer-connected";
-  version = "0.8.0";
+  version = "0.8.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -19,7 +22,7 @@ buildPythonPackage rec {
     owner = "bimmerconnected";
     repo = "bimmer_connected";
     rev = version;
-    sha256 = "sha256-sox24UpuIK5SP0IWVxa/NiyR5IrTzXe0SVTCd4FB6mo=";
+    hash = "sha256-nLZdaV341mULXIngkEqiLQeg4G2NDFGNg/AUozgJe74=";
   };
 
   nativeBuildInputs = [
@@ -30,11 +33,14 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     requests
+    pycryptodome
+    pyjwt
   ];
 
   checkInputs = [
     pytestCheckHook
     requests-mock
+    time-machine
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/bitlist/default.nix b/pkgs/development/python-modules/bitlist/default.nix
index e985dbf28c0f4..dcb83d1ca2a79 100644
--- a/pkgs/development/python-modules/bitlist/default.nix
+++ b/pkgs/development/python-modules/bitlist/default.nix
@@ -8,11 +8,12 @@
 
 buildPythonPackage rec {
   pname = "bitlist";
-  version = "0.5.1";
+  version = "0.6.2";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-bX/Z5FBm21gX4ax/HfqD2bNotZyNFX7dHCEN5uZzQJQ=";
+    sha256 = "69cf632ca61b5fb5d2fd7587ddf023bcab8f327302f15070ec9079b68df9082a";
   };
 
   propagatedBuildInputs = [
@@ -24,12 +25,9 @@ buildPythonPackage rec {
     nose
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "parts~=1.0.3" "parts>=1.0.3"
-  '';
-
-  pythonImportsCheck = [ "bitlist" ];
+  pythonImportsCheck = [
+    "bitlist"
+  ];
 
   meta = with lib; {
     description = "Python library for working with little-endian list representation of bit strings";
diff --git a/pkgs/development/python-modules/bitstruct/default.nix b/pkgs/development/python-modules/bitstruct/default.nix
index 43edd16f66aab..78b34dfbf17c1 100644
--- a/pkgs/development/python-modules/bitstruct/default.nix
+++ b/pkgs/development/python-modules/bitstruct/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "bitstruct";
-  version = "8.11.1";
+  version = "8.12.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4e7b8769c0f09fee403d0a5f637f8b575b191a79a92e140811aa109ce7461f0c";
+    sha256 = "45b2b932ce6681f5c6ce8cba39abdd423b579b0568c76fa48b1e09c88368ede7";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/blinkpy/default.nix b/pkgs/development/python-modules/blinkpy/default.nix
index c427886a03243..572dbad932b3e 100644
--- a/pkgs/development/python-modules/blinkpy/default.nix
+++ b/pkgs/development/python-modules/blinkpy/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "blinkpy";
-  version = "0.17.1";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "fronzbot";
     repo = "blinkpy";
     rev = "v${version}";
-    sha256 = "11h4r2vkrlxwjig1lay1n5wpny5isfgz85f7lsn8ndnqa2wpsymp";
+    hash = "sha256-96HoGXVQE5PbUbu0oDOC0es0HXYig4ScTeexiUhGse4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/blockdiag/default.nix b/pkgs/development/python-modules/blockdiag/default.nix
index f5d8b93c4816a..34245d93560c8 100644
--- a/pkgs/development/python-modules/blockdiag/default.nix
+++ b/pkgs/development/python-modules/blockdiag/default.nix
@@ -1,22 +1,60 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, setuptools, funcparserlib, pillow, webcolors, reportlab, docutils
+{ lib
+, buildPythonPackage
+, docutils
+, fetchFromGitHub
+, funcparserlib
+, nose
+, pillow
+, ephem
+, pythonOlder
+, pytestCheckHook
+, reportlab
+, setuptools
+, webcolors
+, python
 }:
 
 buildPythonPackage rec {
   pname = "blockdiag";
-  version = "2.0.1";
+  version = "3.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "blockdiag";
     repo = "blockdiag";
     rev = version;
-    sha256 = "1cvcl66kf4wdh2n4fdk37zk59lp58wd2fhf84n7pbn0lilyksk5x";
+    sha256 = "sha256-j8FoNUIJJOaahaol1MRPyY2jcPCEIlaAD4bmM2QKFFI=";
   };
 
-  propagatedBuildInputs = [ setuptools funcparserlib pillow webcolors reportlab docutils ];
+  propagatedBuildInputs = [
+    setuptools
+    funcparserlib
+    pillow
+    webcolors
+    reportlab
+    docutils
+  ];
+
+  checkInputs = [
+    ephem
+    nose
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    "src/blockdiag/tests/"
+  ];
+
+  disabledTests = [
+    # Test require network access
+    "test_app_cleans_up_images"
+  ];
 
-  # require network and fail
-  doCheck = false;
+  pythonImportsCheck = [
+    "blockdiag"
+  ];
 
   meta = with lib; {
     description = "Generate block-diagram image from spec-text file (similar to Graphviz)";
diff --git a/pkgs/development/python-modules/blspy/default.nix b/pkgs/development/python-modules/blspy/default.nix
index 72ba6c38f847a..1c491cb5de0f7 100644
--- a/pkgs/development/python-modules/blspy/default.nix
+++ b/pkgs/development/python-modules/blspy/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , fetchPypi
 , fetchFromGitHub
-, fetchpatch
 , setuptools-scm
 , substituteAll
 , cmake
@@ -14,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "blspy";
-  version = "1.0.6";
+  version = "1.0.8";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-sULXnecEs8VI687pR9EK9jjYWlrB4tV4dt7Kzekaxb4=";
+    hash = "sha256-yKLirwWWeUTs5BFXZfqfuNJUXtQW40EiNPxuP+FeHso=";
   };
 
   patches = [
@@ -40,12 +39,12 @@ buildPythonPackage rec {
         sha256 = "sha256-lGz7o6DQVAuEc7yTp8bYS2kwjzHwGaNjugDi1ruRJOA=";
         fetchSubmodules = true;
       };
-    })
-
-    # avoid dynamic linking error at import time
-    (fetchpatch {
-      url = "https://github.com/Chia-Network/bls-signatures/pull/287/commits/797241e9dae1c164c862cbdb38c865d4b124a601.patch";
-      sha256 = "sha256-tlc4aA75gUxt5OaSNZqIlO//PXjmddVgVLYuVEFNmkE=";
+      catch2_src = fetchFromGitHub {
+        owner = "catchorg";
+        repo = "Catch2";
+        rev = "v2.13.7"; # pinned by blspy
+        sha256 = "NhZ8Hh7dka7KggEKKZyEbIZahuuTYeCT7cYYSUvkPzI=";
+      };
     })
   ];
 
diff --git a/pkgs/development/python-modules/blspy/dont_fetch_dependencies.patch b/pkgs/development/python-modules/blspy/dont_fetch_dependencies.patch
index a480c6d37083f..337c8df3c4e51 100644
--- a/pkgs/development/python-modules/blspy/dont_fetch_dependencies.patch
+++ b/pkgs/development/python-modules/blspy/dont_fetch_dependencies.patch
@@ -48,3 +48,17 @@ index 5a8c381..d9aa940 100644
  )
  FetchContent_MakeAvailable(pybind11 relic)
  
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 449164a..15a955e 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -37,8 +37,7 @@ install(FILES $<TARGET_FILE:bls> DESTINATION lib)
+ if(BUILD_BLS_TESTS)
+   FetchContent_Declare(
+     Catch2
+-    GIT_REPOSITORY https://github.com/catchorg/Catch2.git
+-    GIT_TAG        v2.13.7
++    URL @catch2_src@
+   )
+   FetchContent_MakeAvailable(Catch2)
+   add_executable(runtest test.cpp)
diff --git a/pkgs/development/python-modules/bokeh/default.nix b/pkgs/development/python-modules/bokeh/default.nix
index 63cd373abf776..9017cbed0d6d8 100644
--- a/pkgs/development/python-modules/bokeh/default.nix
+++ b/pkgs/development/python-modules/bokeh/default.nix
@@ -33,11 +33,11 @@
 buildPythonPackage rec {
   pname = "bokeh";
   # update together with panel which is not straightforward
-  version = "2.3.3";
+  version = "2.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a5fdcc181835561447fcc5a371300973fce4114692d5853addec284d1cdeb677";
+    sha256 = "f0a4b53364ed3b7eb936c5cb1a4f4132369e394c7ae0a8ef420459410958033d";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/boschshcpy/default.nix b/pkgs/development/python-modules/boschshcpy/default.nix
index 99d5b00d63909..27610d7cd9b54 100644
--- a/pkgs/development/python-modules/boschshcpy/default.nix
+++ b/pkgs/development/python-modules/boschshcpy/default.nix
@@ -10,14 +10,16 @@
 
 buildPythonPackage rec {
   pname = "boschshcpy";
-  version = "0.2.23";
+  version = "0.2.28";
+  format = "setuptools";
+
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "tschamm";
     repo = pname;
     rev = version;
-    sha256 = "sha256-1mqxtL/9OFg3r+5/dkZlH4qRvRHsHMqHvYPEfCjSrr4=";
+    sha256 = "sha256-CnfJiYUM8A4QZ6VMtekO8nD5tQ2VL9vMeK6OWYcgwmU=";
   };
 
   propagatedBuildInputs = [
@@ -30,7 +32,9 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [ "boschshcpy" ];
+  pythonImportsCheck = [
+    "boschshcpy"
+  ];
 
   meta = with lib; {
     description = "Python module to work with the Bosch Smart Home Controller API";
diff --git a/pkgs/development/python-modules/boto3/default.nix b/pkgs/development/python-modules/boto3/default.nix
index 6d8cb85fa884f..bf26eca41b647 100644
--- a/pkgs/development/python-modules/boto3/default.nix
+++ b/pkgs/development/python-modules/boto3/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "boto3";
-  version = "1.18.54"; # N.B: if you change this, change botocore and awscli to a matching version
+  version = "1.20.13"; # N.B: if you change this, change botocore and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-LYHcSEAgBZ/HOBZZhDBBB9TbHGd0tjENCMiSoXUfaYA=";
+    sha256 = "bbf53a077d6a0575ddec8026f0475ca6ee6f41b227914bf315bf3e049a3d653a";
   };
 
   propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
diff --git a/pkgs/development/python-modules/botocore/default.nix b/pkgs/development/python-modules/botocore/default.nix
index bf291411608a3..b34dbfbac98cc 100644
--- a/pkgs/development/python-modules/botocore/default.nix
+++ b/pkgs/development/python-modules/botocore/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.21.54"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.23.14"; # N.B: if you change this, change boto3 and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-RhJ7OjhdDsc9GZS4lYsjt54GE+EsSGNxoQDfmStyobk=";
+    sha256 = "sha256-6NUsvy5zxiaM8sIH9H48+z7eCYP5PotZZ0tUYo5+8fE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/bpython/clipboard-make-which-substitutable.patch b/pkgs/development/python-modules/bpython/clipboard-make-which-substitutable.patch
deleted file mode 100644
index 685d34228a1b9..0000000000000
--- a/pkgs/development/python-modules/bpython/clipboard-make-which-substitutable.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 6f544a5bd43446859754cb80e012af933b843db9 Mon Sep 17 00:00:00 2001
-From: Florian Klink <flokli@flokli.de>
-Date: Wed, 3 Jun 2020 22:05:34 +0200
-Subject: [PATCH] clipboard: make which substitutable
-
-This is used to detect the presence of xclip and other clipboard
-handling tools.
----
- bpython/clipboard.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/bpython/clipboard.py b/bpython/clipboard.py
-index aee429b..f346429 100644
---- a/bpython/clipboard.py
-+++ b/bpython/clipboard.py
-@@ -58,7 +58,7 @@ class OSXClipboard(object):
- 
- def command_exists(command):
-     process = subprocess.Popen(
--        ["which", command], stderr=subprocess.STDOUT, stdout=subprocess.PIPE
-+        ["@which@", command], stderr=subprocess.STDOUT, stdout=subprocess.PIPE
-     )
-     process.communicate()
- 
--- 
-2.26.2
-
diff --git a/pkgs/development/python-modules/bpython/default.nix b/pkgs/development/python-modules/bpython/default.nix
index 64fe3c455ee59..3285f3dee9736 100644
--- a/pkgs/development/python-modules/bpython/default.nix
+++ b/pkgs/development/python-modules/bpython/default.nix
@@ -2,38 +2,41 @@
 , buildPythonPackage
 , fetchPypi
 , curtsies
+, cwcwidth
 , greenlet
 , jedi
 , pygments
+, pytestCheckHook
+, pyperclip
 , pyxdg
 , requests
 , substituteAll
+, typing-extensions
 , urwid
 , watchdog
-, which
 }:
 
 buildPythonPackage rec {
   pname = "bpython";
-  version = "0.21";
+  version = "0.22.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "88aa9b89974f6a7726499a2608fa7ded216d84c69e78114ab2ef996a45709487";
+    sha256 = "1fb1e0a52332579fc4e3dcf75e21796af67aae2be460179ecfcce9530a49a200";
   };
 
-  patches = [ (substituteAll {
-    src = ./clipboard-make-which-substitutable.patch;
-    which = "${which}/bin/which";
-  })];
-
   propagatedBuildInputs = [
     curtsies
+    cwcwidth
     greenlet
+    jedi
     pygments
+    pyperclip
     pyxdg
     requests
+    typing-extensions
     urwid
+    watchdog
   ];
 
   postInstall = ''
@@ -41,13 +44,16 @@ buildPythonPackage rec {
       --replace "Exec=/usr/bin/bpython" "Exec=$out/bin/bpython"
   '';
 
-  checkInputs = [ jedi watchdog ];
+  checkInputs = [
+    pytestCheckHook
+  ];
+
   pythonImportsCheck = [ "bpython" ];
 
   meta = with lib; {
     description = "A fancy curses interface to the Python interactive interpreter";
     homepage = "https://bpython-interpreter.org/";
     license = licenses.mit;
-    maintainers = with maintainers; [ flokli ];
+    maintainers = with maintainers; [ flokli dotlambda ];
   };
 }
diff --git a/pkgs/development/python-modules/braintree/default.nix b/pkgs/development/python-modules/braintree/default.nix
index 95e24e98d51c1..8cf820edbfec3 100644
--- a/pkgs/development/python-modules/braintree/default.nix
+++ b/pkgs/development/python-modules/braintree/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "braintree";
-  version = "4.13.0";
+  version = "4.13.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "de8270c24c4557bcb76d2079bb4cabf380ce467d17c65f10ee5159da7ff8496a";
+    sha256 = "4f6addf89f5cd6123243ddc89db325e50fceec825845901dad553fde115bd938";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/brelpy/default.nix b/pkgs/development/python-modules/brelpy/default.nix
new file mode 100644
index 0000000000000..66d611f5e9316
--- /dev/null
+++ b/pkgs/development/python-modules/brelpy/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pycryptodome
+, PyGithub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "brelpy";
+  version = "0.0.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-MYWSKYd7emHZfY+W/UweQtTg62GSUMybpecL9BR8dhg=";
+  };
+
+  propagatedBuildInputs = [
+    pycryptodome
+  ];
+
+  # Source not tagged and PyPI releases don't contain tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "brelpy"
+  ];
+
+  meta = with lib; {
+    description = "Python to communicate with the Brel hubs";
+    homepage = "https://gitlab.com/rogiervandergeer/brelpy";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/brother-ql/default.nix b/pkgs/development/python-modules/brother-ql/default.nix
new file mode 100644
index 0000000000000..891791dfecb79
--- /dev/null
+++ b/pkgs/development/python-modules/brother-ql/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, fetchPypi
+, buildPythonPackage
+, future
+, packbits
+, pillow
+, pyusb
+, pytest
+, mock
+, click
+, attrs
+, lib
+}:
+
+buildPythonPackage rec {
+  pname = "brother-ql";
+  version = "0.9.4";
+
+  src = fetchPypi {
+    pname = "brother_ql";
+    inherit version;
+    sha256 = "sha256-H1xXoDnwEsnCBDl/RwAB9267dINCHr3phdDLPGFOhmA=";
+  };
+
+  propagatedBuildInputs = [ future packbits pillow pyusb click attrs ];
+
+  meta = with lib; {
+    description = "Python package for the raster language protocol of the Brother QL series label printers";
+    longDescription = ''
+      Python package for the raster language protocol of the Brother QL series label printers
+      (QL-500, QL-550, QL-570, QL-700, QL-710W, QL-720NW, QL-800, QL-820NWB, QL-1050 and more)
+    '';
+    homepage = "https://github.com/pklaus/brother_ql";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ grahamc ];
+  };
+}
diff --git a/pkgs/development/python-modules/buienradar/default.nix b/pkgs/development/python-modules/buienradar/default.nix
index a366e0cdd3bc3..ba288f59b28a1 100644
--- a/pkgs/development/python-modules/buienradar/default.nix
+++ b/pkgs/development/python-modules/buienradar/default.nix
@@ -13,15 +13,16 @@
 
 buildPythonPackage rec {
   pname = "buienradar";
-  version = "1.0.4";
+  version = "1.0.5";
 
   disabled = pythonOlder "3.4";
 
   src = fetchFromGitHub {
     owner = "mjj4791";
     repo = "python-buienradar";
-    rev = version;
-    sha256 = "1s0m5x7wdvzzsm797lh6531k614ybh7z0cikxjxqw377mivpz4wq";
+    # https://github.com/mjj4791/python-buienradar/issues/14
+    rev = "caa66ea855dbcc7cf6ee13291d9b2ed7ac01ef98";
+    hash = "sha256:0xz03xj5qjayriaah20adh0ycvlvb8jdvgh7w5gm236n64g6krj0";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/build/default.nix b/pkgs/development/python-modules/build/default.nix
index 70693133b52f5..ba8d15909f213 100644
--- a/pkgs/development/python-modules/build/default.nix
+++ b/pkgs/development/python-modules/build/default.nix
@@ -5,7 +5,6 @@
 , filelock
 , flit-core
 , importlib-metadata
-, isPy3k
 , packaging
 , pep517
 , pytest-mock
@@ -14,19 +13,21 @@
 , pytestCheckHook
 , pythonOlder
 , toml
-, typing ? null
+, tomli
 }:
 
 buildPythonPackage rec {
   pname = "build";
-  version = "0.5.1";
+  version = "0.7.0";
   format = "pyproject";
 
+  disabled = pythonOlder "3.6";
+
   src = fetchFromGitHub {
     owner = "pypa";
     repo = pname;
     rev = version;
-    sha256 = "15hc9mbxsngfc9n805x8rk7yqbxnw12mpk6hfwcsldnfii1vg2ph";
+    sha256 = "sha256-kT3Gax/ZCeV8Kb7CBArGWn/qzVSVdMRUoid/8cAovnE=";
   };
 
   nativeBuildInputs = [
@@ -34,35 +35,44 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    toml
-    pep517
     packaging
-  ] ++ lib.optionals (!isPy3k) [
-    typing
+    pep517
+    tomli
   ] ++ lib.optionals (pythonOlder "3.8") [
     importlib-metadata
   ];
 
   checkInputs = [
     filelock
+    toml
     pytest-mock
     pytest-rerunfailures
     pytest-xdist
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [
+    "-n"
+    "$NIX_BUILD_CORES"
+  ];
+
   disabledTests = [
-    "test_isolation"
-    "test_isolated_environment_install"
+    # Tests often fail with StopIteration
+    "test_isolat"
     "test_default_pip_is_never_too_old"
     "test_build"
+    "test_with_get_requires"
     "test_init"
+    "test_output"
+    "test_wheel_metadata"
   ] ++ lib.optionals stdenv.isDarwin [
-    # expects Apple's python and its quirks
+    # Expects Apple's Python and its quirks
     "test_can_get_venv_paths_with_conflicting_default_scheme"
   ];
 
-  pythonImportsCheck = [ "build" ];
+  pythonImportsCheck = [
+    "build"
+  ];
 
   meta = with lib; {
     description = "Simple, correct PEP517 package builder";
@@ -71,7 +81,7 @@ buildPythonPackage rec {
       is a simple build tool and does not perform any dependency management.
     '';
     homepage = "https://github.com/pypa/build";
-    maintainers = with maintainers; [ fab ];
     license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/buildbot/default.nix b/pkgs/development/python-modules/buildbot/default.nix
index 79aaf4e08559b..a6ae6e87036b1 100644
--- a/pkgs/development/python-modules/buildbot/default.nix
+++ b/pkgs/development/python-modules/buildbot/default.nix
@@ -1,9 +1,9 @@
 { stdenv, lib, buildPythonPackage, fetchPypi, makeWrapper, isPy3k
-, python, twisted, jinja2, zope_interface, sqlalchemy
-, sqlalchemy-migrate, python-dateutil, txaio, autobahn, pyjwt, pyyaml, unidiff, treq
-, txrequests, pypugjs, boto3, moto, mock, lz4, setuptoolsTrial
-, isort, pylint, flake8, buildbot-worker, buildbot-pkg, buildbot-plugins
-, parameterized, git, openssh, glibcLocales, ldap3, nixosTests
+, python, twisted, jinja2, zope_interface, sqlalchemy, alembic, python-dateutil
+, txaio, autobahn, pyjwt, pyyaml, unidiff, treq, txrequests, pypugjs, boto3
+, moto, mock, lz4, setuptoolsTrial, isort, pylint, flake8, buildbot-worker
+, buildbot-pkg, buildbot-plugins, parameterized, git, openssh, glibcLocales
+, nixosTests
 }:
 
 let
@@ -31,11 +31,11 @@ let
 
   package = buildPythonPackage rec {
     pname = "buildbot";
-    version = "3.3.0";
+    version = "3.4.0";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "sha256-FST+mCIQpzxc/5iQdsSNBlKxY985v+z6Xeh8ZQRu2FE=";
+      sha256 = "sha256-14w1sF1aOpfUW76uhAIUpdrjAEhQkEWcRGg9Osc+qFk=";
     };
 
     propagatedBuildInputs = [
@@ -44,7 +44,7 @@ let
       jinja2
       zope_interface
       sqlalchemy
-      sqlalchemy-migrate
+      alembic
       python-dateutil
       txaio
       autobahn
@@ -74,9 +74,6 @@ let
       git
       openssh
       glibcLocales
-      # optional dependency that was accidentally made required for tests
-      # https://github.com/buildbot/buildbot/pull/5857
-      ldap3
     ];
 
     patches = [
diff --git a/pkgs/development/python-modules/buildbot/pkg.nix b/pkgs/development/python-modules/buildbot/pkg.nix
index 45254ca83f8ae..a1d2fa59cb5d9 100644
--- a/pkgs/development/python-modules/buildbot/pkg.nix
+++ b/pkgs/development/python-modules/buildbot/pkg.nix
@@ -6,7 +6,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-PVmDJN3/PMsvZrrwSNaUUQLPkOMWO6edIEEfZSwspTs=";
+    sha256 = "sha256-NAc85JomnxS052SjCu8+UQ/hik2gbq1u7/gc21Nj67Q=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/buildbot/plugins.nix b/pkgs/development/python-modules/buildbot/plugins.nix
index 12c4146b51326..797395205a04a 100644
--- a/pkgs/development/python-modules/buildbot/plugins.nix
+++ b/pkgs/development/python-modules/buildbot/plugins.nix
@@ -7,7 +7,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "sha256-KFGTNudUxjSV6406NV4QJP8t9t5p2ckMlntkqsf1x2U=";
+      sha256 = "sha256-65ZbCiNtxH3YjAcdhv5cwSUNrLT65jlQh/2oL8342Tw=";
     };
 
     # Remove unneccessary circular dependency on buildbot
@@ -34,7 +34,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "sha256-UoKCRAnPAQjb7Fgm+YkGv1boXY+xSDkYA3E2EiEkNGE=";
+      sha256 = "sha256-2wu6rE5tgjPXxlcIND8s+DAmX9CF29M3ElonV0L8WOs=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -56,7 +56,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "sha256-Ccmk8TPtMfGrlNaBKhos1s/G1pHzf+zSD+A88F+/8+c=";
+      sha256 = "sha256-Vu4CouTuVyxpmx5C4fthQJPdFBAtN1jliQjy4pLYAzc=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -78,7 +78,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "sha256-oHvn7E4NS0RhTU2hDn1GgFjalYCoXUNCtGEz2lHel+M=";
+      sha256 = "sha256-BDzI4VBbNGCKRxv6294IIVkDXZV0KHauvUYDjIVovvE=";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -100,7 +100,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "sha256-HoiR2WF6EWebbb9c3WcLU2H17HMqkrF6JNOwpUk9CbU=";
+      sha256 = "sha256-hkcxwZWFJOLHMIRJfzzMTEoH6oc2UblJEKFjYthFfDc=";
     };
 
     buildInputs = [ buildbot-pkg ];
diff --git a/pkgs/development/python-modules/buildbot/worker.nix b/pkgs/development/python-modules/buildbot/worker.nix
index a31ba928bb989..0c7e2f33716fc 100644
--- a/pkgs/development/python-modules/buildbot/worker.nix
+++ b/pkgs/development/python-modules/buildbot/worker.nix
@@ -7,7 +7,7 @@ buildPythonPackage (rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-nDP46rLWYXXKJktR6NTWLb0erC6FU8fXe9FAIX+MWuU=";
+    sha256 = "sha256-SFZ0Q51hrBb7eBMGzvVOhc/ogFCIO/Mo7U9652WJ2GU=";
   };
 
   propagatedBuildInputs = [ twisted future ];
diff --git a/pkgs/development/python-modules/buildout-nix/default.nix b/pkgs/development/python-modules/buildout-nix/default.nix
deleted file mode 100644
index 834dd42bc087a..0000000000000
--- a/pkgs/development/python-modules/buildout-nix/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi }:
-
-buildPythonPackage rec {
-  pname = "zc.buildout";
-  version = "2.13.4";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b978b2f9317b317ee4191f78fcc4f05b1ac41bdaaae47f0956f14c8285feef63";
-  };
-
-  patches = [ ./nix.patch ];
-
-  postInstall = "mv $out/bin/buildout{,-nix}";
-
-  meta = with lib; {
-    homepage = "http://www.buildout.org";
-    description = "A software build and configuration system";
-    license = licenses.zpl21;
-    maintainers = [ maintainers.goibhniu ];
-  };
-}
diff --git a/pkgs/development/python-modules/buildout-nix/nix.patch b/pkgs/development/python-modules/buildout-nix/nix.patch
deleted file mode 100644
index 49f3c6d90f0a4..0000000000000
--- a/pkgs/development/python-modules/buildout-nix/nix.patch
+++ /dev/null
@@ -1,28 +0,0 @@
---- a/src/zc/buildout/buildout.py       2017-08-18 10:06:24.946428977 +0300
-+++ b/src/zc/buildout/buildout.py       2017-08-18 10:08:49.115613364 +0300
-@@ -382,6 +382,10 @@
-                  if k not in versions
-                  ))
- 
-+        # Override versions with available (nix) system packages
-+        for dist in pkg_resources.working_set:
-+             versions[dist.project_name] = SectionKey(dist.version, dist.location)
-+
-         # Absolutize some particular directory, handling also the ~/foo form,
-         # and considering the location of the configuration file that generated
-         # the setting as the base path, falling back to the main configuration
---- a/src/zc/buildout/easy_install.py   2017-08-18 10:06:24.948428980 +0300
-+++ b/src/zc/buildout/easy_install.py   2017-08-18 10:07:37.462521740 +0300
-@@ -321,6 +321,12 @@
- 
-     def _satisfied(self, req, source=None):
-         dists = [dist for dist in self._env[req.project_name] if dist in req]
-+        try:
-+            dists = ([dist for dist in dists
-+                     if dist.precedence == pkg_resources.DEVELOP_DIST]
-+                     + [pkg_resources.get_distribution(req.project_name)])
-+        except pkg_resources.DistributionNotFound:
-+            pass
-         if not dists:
-             logger.debug('We have no distributions for %s that satisfies %r.',
-                          req.project_name, str(req))
diff --git a/pkgs/development/python-modules/bumps/default.nix b/pkgs/development/python-modules/bumps/default.nix
index 7e94bd55b28fb..6e0637d2a6bc6 100644
--- a/pkgs/development/python-modules/bumps/default.nix
+++ b/pkgs/development/python-modules/bumps/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "bumps";
-  version = "0.8.0";
+  version = "0.8.1";
 
   propagatedBuildInputs = [six];
 
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9f92c05effd8175763799d19ca55592e89b053318f611148a6725159aea41d67";
+    sha256 = "f4f2ee712a1e468a2ce5c0a32f67739a83331f0cb7b9c50b9e7510daefc12169";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/bx-python/default.nix b/pkgs/development/python-modules/bx-python/default.nix
index aa1e3d1d86486..ba83cca9e4ec7 100644
--- a/pkgs/development/python-modules/bx-python/default.nix
+++ b/pkgs/development/python-modules/bx-python/default.nix
@@ -1,16 +1,16 @@
-{ lib, fetchFromGitHub, buildPythonPackage, isPy27, numpy, cython, zlib, six
+{ lib, fetchFromGitHub, buildPythonPackage, pythonOlder, numpy, cython, zlib, six
 , python-lzo, nose }:
 
 buildPythonPackage rec {
   pname = "bx-python";
-  version = "0.8.11";
-  disabled = isPy27;
+  version = "0.8.13";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "bxlab";
     repo = "bx-python";
     rev = "v${version}";
-    sha256 = "0cz5vgw19hmkcg689vr540q2gl2lb3xcf1lphm7zbfp8wmypcadm";
+    sha256 = "0r3z02mvaswijalr42ikpa7crvliijy0aigsvp5m0frp05n4irf5";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/caldav/default.nix b/pkgs/development/python-modules/caldav/default.nix
index 2b50b5f2966ac..27b59cfc07e10 100644
--- a/pkgs/development/python-modules/caldav/default.nix
+++ b/pkgs/development/python-modules/caldav/default.nix
@@ -4,7 +4,6 @@
 , pythonOlder
 , icalendar
 , lxml
-, mock
 , nose
 , pytz
 , requests
@@ -15,23 +14,27 @@
 
 buildPythonPackage rec {
   pname = "caldav";
-  version = "0.8.0";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "python-caldav";
     repo = pname;
     rev = "v${version}";
-    sha256 = "11q3svns3a2ywfci739krxbh67cx691qja772wq22606blyygyjy";
+    hash = "sha256-2mpE1aLipps4X/3EF0oKHXDcrgUh78/fxY6y1B1V2IU=";
   };
 
-  nativeBuildInputs = lib.optionals (pythonOlder "3.5") [ mock ];
-  propagatedBuildInputs = [ six requests vobject lxml ]
-    ++ lib.optionals (pythonOlder "3.6") [ pytz tzlocal ];
+  propagatedBuildInputs = [
+    vobject
+    lxml
+    requests
+    six
+  ];
 
   checkInputs = [
     icalendar
     nose
     tzlocal
+    pytz
   ];
 
   checkPhase = ''
@@ -41,7 +44,7 @@ buildPythonPackage rec {
   # xandikos and radicale is only a optional test dependency, not available for python3
   postPatch = ''
     substituteInPlace setup.py \
-      --replace ", 'xandikos'" "" \
+      --replace ", 'xandikos<0.2.4'" "" \
       --replace ", 'radicale'" ""
   '';
 
@@ -51,7 +54,6 @@ buildPythonPackage rec {
     description = "This project is a CalDAV (RFC4791) client library for Python.";
     homepage = "https://github.com/python-caldav/caldav";
     license = licenses.asl20;
-    maintainers = with maintainers; [ marenz ];
-    #broken = true; # requires radicale which is not packaged yet
+    maintainers = with maintainers; [ marenz dotlambda ];
   };
 }
diff --git a/pkgs/development/python-modules/capstone/default.nix b/pkgs/development/python-modules/capstone/default.nix
index e6c42ac0c4d6e..f10f34c381d41 100644
--- a/pkgs/development/python-modules/capstone/default.nix
+++ b/pkgs/development/python-modules/capstone/default.nix
@@ -31,7 +31,5 @@ buildPythonPackage rec {
     license = licenses.bsdOriginal;
     description = "Python bindings for Capstone disassembly engine";
     maintainers = with maintainers; [ bennofs ris ];
-    # creates a manylinux2014-x86_64 wheel
-    broken = !stdenv.isx86_64;
   };
 }
diff --git a/pkgs/development/python-modules/cart/default.nix b/pkgs/development/python-modules/cart/default.nix
new file mode 100644
index 0000000000000..ecba8f9cc394f
--- /dev/null
+++ b/pkgs/development/python-modules/cart/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, pycryptodome
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+, unittest2
+}:
+
+buildPythonPackage rec {
+  pname = "cart";
+  version = "1.2.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "CybercentreCanada";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-PsdDlNhX0FbuwS5ZXk9P98DjnzDGdigfnRwrdwYa4qY=";
+  };
+
+  propagatedBuildInputs = [
+    pycryptodome
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    unittest2
+  ];
+
+  pytestFlagsArray = [
+    "unittests"
+  ];
+
+  pythonImportsCheck = [
+    "cart"
+  ];
+
+  meta = with lib; {
+    description = "Python module for the CaRT Neutering format";
+    homepage = "https://github.com/CybercentreCanada/cart";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/cartopy/default.nix b/pkgs/development/python-modules/cartopy/default.nix
index 73d172941c2e9..d55c1e9b0c53e 100644
--- a/pkgs/development/python-modules/cartopy/default.nix
+++ b/pkgs/development/python-modules/cartopy/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "cartopy";
-  version = "0.20.0";
+  version = "0.20.1";
 
   src = fetchPypi {
     inherit version;
     pname = "Cartopy";
-    sha256 = "eae58aff26806e63cf115b2bce9477cedc4aa9f578c5e477b2c25cfa404f2b7a";
+    sha256 = "91f87b130e2574547a20cd634498df97d797abd12dcfd0235bc0cdbcec8b05e3";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/casbin/default.nix b/pkgs/development/python-modules/casbin/default.nix
index 64c69ddaa0435..815bc8ae36cb3 100644
--- a/pkgs/development/python-modules/casbin/default.nix
+++ b/pkgs/development/python-modules/casbin/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "casbin";
-  version = "1.11.1";
+  version = "1.15.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = "pycasbin";
     rev = "v${version}";
-    sha256 = "sha256-gFGYpHd1kp4JMtoe47VbJ0uDnuGQegggbjXaw6nEMR4=";
+    sha256 = "0mrk6b16f4ds666qa4884kjjbmb55kpfvvqsznfmyg9iii6dir50";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/castepxbin/default.nix b/pkgs/development/python-modules/castepxbin/default.nix
index 3c4466648633f..993684bd5a389 100644
--- a/pkgs/development/python-modules/castepxbin/default.nix
+++ b/pkgs/development/python-modules/castepxbin/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "castepxbin";
-  version = "0.1.0";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "zhubonan";
     repo = "castepxbin";
     rev = "v${version}";
-    sha256 = "16wnd1mwhl204d1s3har2fhyhyjg86sypg00bj812dxk8zixxszf";
+    sha256 = "0bqicpdyisbcz8argy4ppm59zzkcn9lcs4y1mh2f31f75x732na3";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/celery/default.nix b/pkgs/development/python-modules/celery/default.nix
index cd6d21b7c6515..cdd646fed1479 100644
--- a/pkgs/development/python-modules/celery/default.nix
+++ b/pkgs/development/python-modules/celery/default.nix
@@ -1,47 +1,80 @@
-{ lib, buildPythonPackage, fetchPypi
-, billiard, click, click-didyoumean, click-plugins, click-repl, kombu, pytz, vine
-, boto3, case, moto, pytest, pytest-celery, pytest-subtests, pytest-timeout
+{ lib
+, billiard
+, boto3
+, buildPythonPackage
+, case
+, click
+, click-didyoumean
+, click-plugins
+, click-repl
+, fetchPypi
+, kombu
+, moto
+, pymongo
+, pytest-celery
+, pytest-subtests
+, pytest-timeout
+, pytestCheckHook
+, pythonOlder
+, pytz
+, vine
 }:
 
 buildPythonPackage rec {
   pname = "celery";
-  version = "5.1.2";
+  version = "5.2.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8d9a3de9162965e97f8e8cc584c67aad83b3f7a267584fa47701ed11c3e0d4b0";
+    sha256 = "b41a590b49caf8e6498a57db628e580d5f8dc6febda0f42de5d783aed5b7f808";
   };
 
-  # click  is only used for the repl, in most cases this shouldn't impact
-  # downstream packages
-  postPatch = ''
-    substituteInPlace requirements/test.txt \
-      --replace "moto==1.3.7" moto
-    substituteInPlace requirements/default.txt \
-      --replace "click>=7.0,<8.0" click
-  '';
-
-  propagatedBuildInputs = [ billiard click click-didyoumean click-plugins click-repl kombu pytz vine ];
-
-  checkInputs = [ boto3 case moto pytest pytest-celery pytest-subtests pytest-timeout ];
-
-  # ignore test that's incompatible with pytest5
-  # test_eventlet touches network
-  # test_mongodb requires pymongo
-  # test_multi tries to create directories under /var
-  checkPhase = ''
-    pytest -k 'not restore_current_app_fallback and not msgpack and not on_apply and not pytest' \
-      --ignore=t/unit/contrib/test_pytest.py \
-      --ignore=t/unit/concurrency/test_eventlet.py \
-      --ignore=t/unit/bin/test_multi.py \
-      --ignore=t/unit/apps/test_multi.py \
-      --ignore=t/unit/backends/test_mongodb.py
-  '';
+  propagatedBuildInputs = [
+    billiard
+    click
+    click-didyoumean
+    click-plugins
+    click-repl
+    kombu
+    pytz
+    vine
+  ];
+
+  checkInputs = [
+    boto3
+    case
+    moto
+    pymongo
+    pytest-celery
+    pytest-subtests
+    pytest-timeout
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    # test_eventlet touches network
+    "t/unit/concurrency/test_eventlet.py"
+    # test_multi tries to create directories under /var
+    "t/unit/bin/test_multi.py"
+    "t/unit/apps/test_multi.py"
+  ];
+
+  disabledTests = [
+    "msgpack"
+    "test_check_privileges_no_fchown"
+  ];
+
+  pythonImportsCheck = [
+    "celery"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/celery/celery/";
     description = "Distributed task queue";
+    homepage = "https://github.com/celery/celery/";
     license = licenses.bsd3;
-    maintainers = [ ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/cement/default.nix b/pkgs/development/python-modules/cement/default.nix
index f021ea16b6205..a6b436a92f4af 100644
--- a/pkgs/development/python-modules/cement/default.nix
+++ b/pkgs/development/python-modules/cement/default.nix
@@ -1,24 +1,33 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "cement";
-  version = "3.0.4";
+  version = "3.0.6";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10a8459dc9fc31d6c038ede24a9081c5c3bd5fcd75b071e01baf281f81c9eace";
+    sha256 = "fccec41eab3f15a03445b1ce24c8a7e106d4d5520f6507a7145698ce68923d31";
   };
 
   # Disable test tests since they depend on a memcached server running on
   # 127.0.0.1:11211.
   doCheck = false;
 
-  disabled = !isPy3k;
+  pythonImportsCheck = [
+    "cement"
+  ];
 
   meta = with lib; {
+    description = "CLI Application Framework for Python";
     homepage = "https://builtoncement.com/";
-    description = "A CLI Application Framework for Python.";
-    maintainers = with maintainers; [ eqyiel ];
     license = licenses.bsd3;
+    maintainers = with maintainers; [ eqyiel ];
   };
 }
diff --git a/pkgs/development/python-modules/certbot/default.nix b/pkgs/development/python-modules/certbot/default.nix
index 31cb3fd5ffe40..e65e6f0d808ed 100644
--- a/pkgs/development/python-modules/certbot/default.nix
+++ b/pkgs/development/python-modules/certbot/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "certbot";
-  version = "1.21.0";
+  version = "1.22.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0sbhg8gdcszi4q5091s1by0hz6qxpkdfazs5lbfrlw33fkck2d3i";
+    sha256 = "1wrk5rhds6a69vbs1bda0zhwpvjhd8i20did6j3kydbas3zbr516";
   };
 
   sourceRoot = "source/${pname}";
diff --git a/pkgs/development/python-modules/certifi/default.nix b/pkgs/development/python-modules/certifi/default.nix
index 53fe66f015329..68a0ca42986e1 100644
--- a/pkgs/development/python-modules/certifi/default.nix
+++ b/pkgs/development/python-modules/certifi/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "certifi" ];
 
   meta = with lib; {
-    homepage = "https://certifi.io/";
+    homepage = "https://github.com/certifi/python-certifi";
     description = "Python package for providing Mozilla's CA Bundle";
     license = licenses.isc;
     maintainers = with maintainers; [ koral ];
diff --git a/pkgs/development/python-modules/certifi/python2.nix b/pkgs/development/python-modules/certifi/python2.nix
index adc9594d69d09..529d5b1fb996e 100644
--- a/pkgs/development/python-modules/certifi/python2.nix
+++ b/pkgs/development/python-modules/certifi/python2.nix
@@ -26,7 +26,7 @@ in buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    homepage = "https://certifi.io/";
+    homepage = "https://github.com/certifi/python-certifi";
     description = "Python package for providing Mozilla's CA Bundle";
     license = licenses.isc;
     maintainers = with maintainers; [ ]; # NixOps team
diff --git a/pkgs/development/python-modules/cffi/default.nix b/pkgs/development/python-modules/cffi/default.nix
index 94aecdcc4ec43..a65cd297f43f5 100644
--- a/pkgs/development/python-modules/cffi/default.nix
+++ b/pkgs/development/python-modules/cffi/default.nix
@@ -1,39 +1,38 @@
-{ lib, stdenv, buildPythonPackage, isPyPy, fetchPypi, libffi, pycparser, pytestCheckHook }:
+{ lib, stdenv, buildPythonPackage, isPyPy, fetchPypi, pytestCheckHook,
+  libffi, pkg-config, pycparser
+}:
 
 if isPyPy then null else buildPythonPackage rec {
   pname = "cffi";
-  version = "1.14.6";
+  version = "1.15.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd";
+    sha256 = "920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954";
   };
 
   outputs = [ "out" "dev" ];
 
   buildInputs = [ libffi ];
 
+  nativeBuildInputs = [ pkg-config ];
+
   propagatedBuildInputs = [ pycparser ];
 
-  # On Darwin, the cffi tests want to hit libm a lot, and look for it in a global
-  # impure search path. It's obnoxious how much repetition there is, and how difficult
-  # it is to get it to search somewhere else (since we do actually have a libm symlink in libSystem)
   prePatch = lib.optionalString stdenv.isDarwin ''
-    substituteInPlace testing/cffi0/test_parsing.py \
-      --replace 'lib_m = "m"' 'lib_m = "System"' \
-      --replace '"libm" in name' '"libSystem" in name'
-    substituteInPlace testing/cffi0/test_unicode_literals.py --replace 'lib_m = "m"' 'lib_m = "System"'
-    substituteInPlace testing/cffi0/test_zdistutils.py --replace 'self.lib_m = "m"' 'self.lib_m = "System"'
-    substituteInPlace testing/cffi1/test_recompiler.py --replace 'lib_m = "m"' 'lib_m = "System"'
-    substituteInPlace testing/cffi0/test_function.py --replace "lib_m = 'm'" "lib_m = 'System'"
-    substituteInPlace testing/cffi0/test_verify.py --replace "lib_m = ['m']" "lib_m = ['System']"
+    # Remove setup.py impurities
+    substituteInPlace setup.py --replace "'-iwithsysroot/usr/include/ffi'" ""
+    substituteInPlace setup.py --replace "'/usr/include/ffi'," ""
+    substituteInPlace setup.py --replace '/usr/include/libffi' '${lib.getDev libffi}/include'
   '';
 
   # The tests use -Werror but with python3.6 clang detects some unreachable code.
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang
-    "-Wno-unused-command-line-argument -Wno-unreachable-code";
+    "-Wno-unused-command-line-argument -Wno-unreachable-code -Wno-c++11-narrowing";
 
-  doCheck = !stdenv.hostPlatform.isMusl && !stdenv.isDarwin; # TODO: Investigate
+  # Lots of tests fail on aarch64-darwin due to "Cannot allocate write+execute memory":
+  # * https://cffi.readthedocs.io/en/latest/using.html#callbacks
+  doCheck = !stdenv.hostPlatform.isMusl && !(stdenv.isDarwin && stdenv.isAarch64);
 
   checkInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/cfn-lint/default.nix b/pkgs/development/python-modules/cfn-lint/default.nix
index f0769f57275a3..4a409cb41e034 100644
--- a/pkgs/development/python-modules/cfn-lint/default.nix
+++ b/pkgs/development/python-modules/cfn-lint/default.nix
@@ -5,6 +5,7 @@
 , aws-sam-translator
 , importlib-metadata
 , importlib-resources
+, jschema-to-python
 , jsonpatch
 , jsonschema
 , junit-xml
@@ -12,6 +13,7 @@
 , pathlib2
 , pyyaml
 , requests
+, sarif-om
 , setuptools
 , six
 , mock
@@ -21,13 +23,13 @@
 
 buildPythonPackage rec {
   pname = "cfn-lint";
-  version = "0.54.2";
+  version = "0.56.2";
 
   src = fetchFromGitHub {
     owner = "aws-cloudformation";
     repo = "cfn-python-lint";
     rev = "v${version}";
-    sha256 = "04d5zyjnrl3b6cb2fxmbpii27mnq77wqsglfxfv2a1zj2p9xby0p";
+    sha256 = "0wpsj719r0p122qmi3nznzqnxqb0nx53isg9fma75894pvq2v5wc";
   };
 
   postPatch = ''
@@ -37,6 +39,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     aws-sam-translator
+    jschema-to-python
     jsonpatch
     jsonschema
     junit-xml
@@ -44,6 +47,7 @@ buildPythonPackage rec {
     pathlib2
     pyyaml
     requests
+    sarif-om
     setuptools
     six
   ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata importlib-resources ];
@@ -70,6 +74,7 @@ buildPythonPackage rec {
     # Tests depend on network access (fails in getaddrinfo)
     "test_update_resource_specs_python_2"
     "test_update_resource_specs_python_3"
+    "test_sarif_formatter"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/chalice/default.nix b/pkgs/development/python-modules/chalice/default.nix
index dfdde6b0d6443..43767cb1a3193 100644
--- a/pkgs/development/python-modules/chalice/default.nix
+++ b/pkgs/development/python-modules/chalice/default.nix
@@ -24,13 +24,13 @@
 
 buildPythonPackage rec {
   pname = "chalice";
-  version = "1.24.2";
+  version = "1.26.2";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = pname;
     rev = version;
-    sha256 = "0xpzc3rizdkjxclgxngswz0a22kdv1pw235gsw517ma7i06d0lw6";
+    sha256 = "sha256-zF7wmrJTMX0Cr3wpJECUqhH58G2SLiVoC4Z2XbblQdQ=";
   };
 
   propagatedBuildInputs = [
@@ -85,6 +85,9 @@ buildPythonPackage rec {
     # Don't build
     "test_can_generate_pipeline_for_all"
     "test_build_wheel"
+    # https://github.com/aws/chalice/issues/1850
+    "test_resolve_endpoint"
+    "test_endpoint_from_arn"
   ];
 
   pythonImportsCheck = [ "chalice" ];
diff --git a/pkgs/development/python-modules/channels-redis/default.nix b/pkgs/development/python-modules/channels-redis/default.nix
index 1e267aa512693..c7383e98219d8 100644
--- a/pkgs/development/python-modules/channels-redis/default.nix
+++ b/pkgs/development/python-modules/channels-redis/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "channels-redis";
-  version = "3.2.0";
+  version = "3.3.1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit version;
     pname = "channels_redis";
-    sha256 = "1rjs9irnq59yr6zwc9k6nnw6xrmr48dakrm25m0gcwskn1iimcrg";
+    sha256 = "899dc6433f5416cf8ad74505baaf2acb5461efac3cad40751a41119e3f68421b";
   };
 
   buildInputs = [ redis hiredis ];
diff --git a/pkgs/development/python-modules/charset-normalizer/default.nix b/pkgs/development/python-modules/charset-normalizer/default.nix
index 66d9e23668b4b..7f7f54b73d91c 100644
--- a/pkgs/development/python-modules/charset-normalizer/default.nix
+++ b/pkgs/development/python-modules/charset-normalizer/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "charset-normalizer";
-  version = "2.0.5";
+  version = "2.0.8";
 
   src = fetchFromGitHub {
     owner = "Ousret";
     repo = "charset_normalizer";
     rev = version;
-    sha256 = "0pv6yf5ialc82iimsjbq3gp5hh02pg4a7sdma48gd81h4h8qd627";
+    sha256 = "sha256-+acnzdDcujnMa0FYlWaAX7Ga9APMRlvBLKoogIyY8YM=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/chart-studio/default.nix b/pkgs/development/python-modules/chart-studio/default.nix
index 2873b7e99ef06..0e80ee1a41e46 100644
--- a/pkgs/development/python-modules/chart-studio/default.nix
+++ b/pkgs/development/python-modules/chart-studio/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "chart-studio";
-  version = "5.3.1";
+  version = "5.4.0";
 
   # chart-studio was split from plotly
   src = fetchFromGitHub {
     owner = "plotly";
     repo = "plotly.py";
     rev = "v${version}";
-    sha256 = "11jazr5s2rmcxbkpb79gllwlyxvji3f0ryfrj7mkbyvfnfv43gly";
+    sha256 = "1ay9dlblxkx3pxqmizj2am9gf60j1pl6ir23yj7chg8dbafdbv8p";
   };
 
   sourceRoot = "source/packages/python/chart-studio";
diff --git a/pkgs/development/python-modules/chess/default.nix b/pkgs/development/python-modules/chess/default.nix
index 94eea88efe8b6..9330a4b49e846 100644
--- a/pkgs/development/python-modules/chess/default.nix
+++ b/pkgs/development/python-modules/chess/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "chess";
-  version = "1.7.0";
+  version = "1.8.0";
 
   disabled = pythonOlder "3.7";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "niklasf";
     repo = "python-${pname}";
     rev = "v${version}";
-    sha256 = "0f2q9sif1rqjlgzkf7dnxrclmw8v84hzyrnq21g8k1cwqj5fx9j2";
+    sha256 = "sha256-ghBX0yRnggXliVREtrGxB/Xf0JWICeIi8XriSxS26Go=";
   };
 
   pythonImportsCheck = [ "chess" ];
diff --git a/pkgs/development/python-modules/circuitbreaker/default.nix b/pkgs/development/python-modules/circuitbreaker/default.nix
new file mode 100644
index 0000000000000..6cf2d37c5973a
--- /dev/null
+++ b/pkgs/development/python-modules/circuitbreaker/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, mock
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "circuitbreaker";
+  version = "1.3.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "fabfuel";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-3hFa8dwCso5tj26ek2jMdVBRzu5H3vkdjQlDYw2hSH0=";
+  };
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "circuitbreaker"
+  ];
+
+  meta = with lib; {
+    description = "Python Circuit Breaker implementation";
+    homepage = "https://github.com/fabfuel/circuitbreaker";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/claripy/default.nix b/pkgs/development/python-modules/claripy/default.nix
index ab8842d406141..d96d684e3e18d 100644
--- a/pkgs/development/python-modules/claripy/default.nix
+++ b/pkgs/development/python-modules/claripy/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "claripy";
-  version = "9.0.10576";
+  version = "9.1.10913";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-86ySQ/2l1h5vayMfAsr9ShyE8oRKL37sT3bfrgIGFHY=";
+    sha256 = "sha256-66dc0y4mu5S5PtTx2fRkBdpNlH53ZpTiKyM3s0OUamw=";
   };
 
   # Use upstream z3 implementation
diff --git a/pkgs/development/python-modules/cle/default.nix b/pkgs/development/python-modules/cle/default.nix
index a5e458a6eb424..212267b00752b 100644
--- a/pkgs/development/python-modules/cle/default.nix
+++ b/pkgs/development/python-modules/cle/default.nix
@@ -15,7 +15,7 @@
 
 let
   # The binaries are following the argr projects release cycle
-  version = "9.0.10576";
+  version = "9.1.10913";
 
   # Binary files from https://github.com/angr/binaries (only used for testing and only here)
   binaries = fetchFromGitHub {
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ftaFISU37GcCFTybxV31PwUl2vrbKVm/S00Qo+pUxgo=";
+    sha256 = "sha256-z8hBOqeI7T6Rov00OySDBdzUQ6jeBRseE7sz8VfIJmk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/click-repl/default.nix b/pkgs/development/python-modules/click-repl/default.nix
index 84665ecb0950a..5934adab7a7f1 100644
--- a/pkgs/development/python-modules/click-repl/default.nix
+++ b/pkgs/development/python-modules/click-repl/default.nix
@@ -1,15 +1,32 @@
-{ lib, buildPythonPackage, fetchPypi, click, prompt-toolkit }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, click
+, prompt-toolkit
+, six
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "click-repl";
   version = "0.2.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "cd12f68d745bf6151210790540b4cb064c7b13e571bc64b6957d98d120dacfd8";
+  src = fetchFromGitHub {
+    owner = "click-contrib";
+    repo = "click-repl";
+    rev = version;
+    hash = "sha256-kaTUKaIomJL0u3NX40bL0I54vkR+Utcdw1QKSbnVy5s=";
   };
 
-  propagatedBuildInputs = [ click prompt-toolkit ];
+  propagatedBuildInputs = [
+    click
+    prompt-toolkit
+    six
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/click-contrib/click-repl";
diff --git a/pkgs/development/python-modules/clickgen/default.nix b/pkgs/development/python-modules/clickgen/default.nix
new file mode 100644
index 0000000000000..a85cee778b0b7
--- /dev/null
+++ b/pkgs/development/python-modules/clickgen/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pillow
+, libX11
+, libXcursor
+, libpng
+, python
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "clickgen";
+  version = "1.1.9";
+
+  src = fetchFromGitHub {
+    owner = "ful1e5";
+    repo = "clickgen";
+    rev = "v${version}";
+    sha256 = "108f3sbramd3hhs4d84s3i3lbwllfrkvjakjq4gdmbw6xpilvm0l";
+  };
+
+  buildInputs = [ libXcursor libX11 libpng ];
+
+  propagatedBuildInputs = [ pillow ];
+
+  pythonImportsCheck = [ "clickgen" ];
+
+  postInstall = ''
+    install -m644 clickgen/xcursorgen.so $out/${python.sitePackages}/clickgen/xcursorgen.so
+  '';
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    homepage = "https://github.com/ful1e5/clickgen";
+    description = "The hassle-free cursor building toolbox";
+    longDescription = ''
+      clickgen is API for building X11 and Windows Cursors from
+      .png files. clickgen is using anicursorgen and xcursorgen under the hood.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ AdsonCicilioti ];
+  };
+}
diff --git a/pkgs/development/python-modules/clickhouse-driver/default.nix b/pkgs/development/python-modules/clickhouse-driver/default.nix
index 9a4c0f0f92beb..dd1698f9a3ae4 100644
--- a/pkgs/development/python-modules/clickhouse-driver/default.nix
+++ b/pkgs/development/python-modules/clickhouse-driver/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "clickhouse-driver";
-  version = "0.2.0";
+  version = "0.2.2";
 
   # pypi source doesn't contain tests
   src = fetchFromGitHub {
     owner = "mymarilyn";
     repo = "clickhouse-driver";
-    rev = "96b7ba448c63ca2670cc9aa70d4a0e08826fb650";
-    sha256 = "sha256-HFKUxJOlBCVlu7Ia8heGpwX6+HdKuwSy92s3v+GKGwE=";
+    rev = version;
+    sha256 = "0sx4jbadx9frzhqnj8b9w9l508x1r7j7b9883h7xq93lf00rxkfz";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cliff/default.nix b/pkgs/development/python-modules/cliff/default.nix
index 8b8f536bab6fd..ce229665c659e 100644
--- a/pkgs/development/python-modules/cliff/default.nix
+++ b/pkgs/development/python-modules/cliff/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "cliff";
-  version = "3.9.0";
+  version = "3.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "95363e9b43e2ec9599e33b5aea27a6953beda2d0673557916fa4f5796857daa3";
+    sha256 = "c68aac08d0d25853234a38fdbf1f33503849af3d5d677a4d0aacd42b0be6a4a1";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/cloudsmith-api/default.nix b/pkgs/development/python-modules/cloudsmith-api/default.nix
index 5c3b5f114f53a..0e1aca73522ec 100644
--- a/pkgs/development/python-modules/cloudsmith-api/default.nix
+++ b/pkgs/development/python-modules/cloudsmith-api/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "cloudsmith-api";
-  version = "0.54.15";
+  version = "1.8.2";
 
   format = "wheel";
 
   src = fetchPypi {
     pname = "cloudsmith_api";
     inherit format version;
-    sha256 = "X72xReosUnUlj69Gq+i+izhaKZuakM9mUrRHZI5L9h0=";
+    sha256 = "f00410210f0efa1af7a2d344deafc12b946e3efc7d5c8374b27dc67ed8580183";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cloudsplaining/default.nix b/pkgs/development/python-modules/cloudsplaining/default.nix
index 6dbb3f91d1e8e..23c911f8e4a6c 100644
--- a/pkgs/development/python-modules/cloudsplaining/default.nix
+++ b/pkgs/development/python-modules/cloudsplaining/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "cloudsplaining";
-  version = "0.4.6";
+  version = "0.4.9";
 
   disabled = pythonOlder "3.6";
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "salesforce";
     repo = pname;
     rev = version;
-    sha256 = "sha256-TFUOsfQ1QxdpmRUJPoHMCuCpmYpQodLkP5EVXKm+qsw=";
+    sha256 = "sha256-87ZUYHN64gnbF2g9BjPFNbwMaGFxAy3Yb8UdT3BUqC0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cmd2/default.nix b/pkgs/development/python-modules/cmd2/default.nix
index f7308fd8ba93d..8339af8094c47 100644
--- a/pkgs/development/python-modules/cmd2/default.nix
+++ b/pkgs/development/python-modules/cmd2/default.nix
@@ -18,13 +18,13 @@
 
 buildPythonPackage rec {
   pname = "cmd2";
-  version = "2.2.0";
+  version = "2.3.2";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "34cd12424d9e2835eff125146af3d9f4a4c2931c6bc5a3cea9790bd4f55756d9";
+    sha256 = "cad18787a26147dad4b161d75c5ab7de16ffe91fef1cfad8e6f18b712746e800";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/python-modules/cocotb/default.nix b/pkgs/development/python-modules/cocotb/default.nix
index 17fe45f1cf49f..90616dc1f8ab1 100644
--- a/pkgs/development/python-modules/cocotb/default.nix
+++ b/pkgs/development/python-modules/cocotb/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "cocotb";
-  version = "1.5.2";
+  version = "1.6.0";
 
   # - we need to use the tarball from PyPi
   #   or the full git checkout (with .git)
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   #   because it does not include required metadata
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9f4f3e6eb9caeb479e98d604770645b57469cd25b39e28df1916ffcd593efbe6";
+    sha256 = "a695544ab314e6d795b72ece9e67b51c6668c569b21303158e00452db43c5756";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/cogapp/default.nix b/pkgs/development/python-modules/cogapp/default.nix
index 16059fe3d6b55..facbc3206894d 100644
--- a/pkgs/development/python-modules/cogapp/default.nix
+++ b/pkgs/development/python-modules/cogapp/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "cogapp";
-  version = "3.2.0";
+  version = "3.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "09a6e82a55af45f5e946d7002ed997869abf6f57d28fdc79f128132b5da18bf8";
+    sha256 = "1be95183f70282422d594fa42426be6923070a4bd8335621f6347f3aeee81db0";
   };
 
   # there are no tests
diff --git a/pkgs/development/python-modules/colorcet/default.nix b/pkgs/development/python-modules/colorcet/default.nix
index 42945e8a152a2..33e7942dfc89b 100644
--- a/pkgs/development/python-modules/colorcet/default.nix
+++ b/pkgs/development/python-modules/colorcet/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "colorcet";
-  version = "2.0.6";
+  version = "3.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "efa44b6f4078261e62d0039c76aba17ac8d3ebaf0bc2291a111aee3905313433";
+    sha256 = "21c522346a7aa81a603729f2996c22ac3f7822f4c8c303c59761e27d2dfcf3db";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/colorclass/default.nix b/pkgs/development/python-modules/colorclass/default.nix
index 50a052ec1f942..f1a153ee1bc95 100644
--- a/pkgs/development/python-modules/colorclass/default.nix
+++ b/pkgs/development/python-modules/colorclass/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "colorclass";
-  version = "2.2.0";
+  version = "2.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b05c2a348dfc1aff2d502527d78a5b7b7e2f85da94a96c5081210d8e9ee8e18b";
+    sha256 = "6d4fe287766166a98ca7bc6f6312daf04a0481b1eda43e7173484051c0ab4366";
   };
 
   # No tests in archive
diff --git a/pkgs/development/python-modules/cometblue-lite/default.nix b/pkgs/development/python-modules/cometblue-lite/default.nix
new file mode 100644
index 0000000000000..01d24bc7cb7b2
--- /dev/null
+++ b/pkgs/development/python-modules/cometblue-lite/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, bluepy
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "cometblue-lite";
+  version = "0.4.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "neffs";
+    repo = "python-cometblue_lite";
+    rev = version;
+    sha256 = "sha256-kK6P8almFQac/bt7we02Q96RIB/s9wAqb+dn09tFx7k=";
+  };
+
+  propagatedBuildInputs = [
+    bluepy
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "cometblue_lite"
+  ];
+
+  meta = with lib; {
+    description = "Python module for Eurotronic Comet Blue thermostats";
+    homepage = "https://github.com/neffs/python-cometblue_lite";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/configparser/default.nix b/pkgs/development/python-modules/configparser/default.nix
index 3eeae353d1158..5f227fa4f9efd 100644
--- a/pkgs/development/python-modules/configparser/default.nix
+++ b/pkgs/development/python-modules/configparser/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "configparser";
-  version = "5.0.2";
+  version = "5.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "85d5de102cfe6d14a5172676f09d19c465ce63d6019cf0a4ef13385fc535e828";
+    sha256 = "202b9679a809b703720afa2eacaad4c6c2d63196070e5d9edc953c0489dfd536";
   };
 
   # No tests available
diff --git a/pkgs/development/python-modules/construct/2.10.54.nix b/pkgs/development/python-modules/construct/2.10.54.nix
index 30d303b60cd08..6cfca7260512b 100644
--- a/pkgs/development/python-modules/construct/2.10.54.nix
+++ b/pkgs/development/python-modules/construct/2.10.54.nix
@@ -14,9 +14,20 @@ buildPythonPackage rec {
     sha256 = "1mqspsn6bf3ibvih1zna2glkg8iw7vy5zg9gzg0d1m8zcndk2c48";
   };
 
-  checkInputs = [ pytestCheckHook pytest-benchmark enum34 numpy arrow ruamel-yaml ];
+  checkInputs = [ pytestCheckHook pytest-benchmark enum34 numpy ];
 
-  disabledTests = lib.optionals stdenv.isDarwin [ "test_multiprocessing" ];
+  # these have dependencies that are broken on Python 2
+  disabledTestPaths = [
+    "tests/gallery/test_gallery.py"
+    "tests/test_benchmarks.py"
+    "tests/test_compiler.py"
+  ];
+
+  disabledTests = [
+    "test_timestamp"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "test_multiprocessing"
+  ];
 
   pytestFlagsArray = [ "--benchmark-disable" ];
 
diff --git a/pkgs/development/python-modules/cppe/default.nix b/pkgs/development/python-modules/cppe/default.nix
new file mode 100644
index 0000000000000..52031bab74f76
--- /dev/null
+++ b/pkgs/development/python-modules/cppe/default.nix
@@ -0,0 +1,54 @@
+{ buildPythonPackage
+, lib
+, stdenv
+, cmake
+, cppe
+, eigen
+, python
+, pybind11
+, numpy
+, h5py
+, numba
+, scipy
+, pandas
+, polarizationsolver
+, pytest
+, llvmPackages
+}:
+
+buildPythonPackage rec {
+  inherit (cppe) pname version src meta;
+
+  # The python interface requires eigen3, but builds from a checkout in tree.
+  # Using the nixpkgs version instead.
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "external/eigen3" "${eigen}/include/eigen3"
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    eigen
+  ];
+
+  dontUseCmakeConfigure = true;
+
+  buildInputs = [ pybind11 ]
+    ++ lib.optional stdenv.cc.isClang llvmPackages.openmp;
+
+  NIX_CFLAGS_LINK = lib.optional stdenv.cc.isClang "-lomp";
+
+  hardeningDisable = lib.optional stdenv.cc.isClang "strictoverflow";
+
+  checkInputs = [
+    pytest
+    h5py
+    numba
+    numpy
+    pandas
+    polarizationsolver
+    scipy
+  ];
+
+  pythonImportsCheck = [ "cppe" ];
+}
diff --git a/pkgs/development/python-modules/cpyparsing/default.nix b/pkgs/development/python-modules/cpyparsing/default.nix
index 638824a87ee9e..cea3df8eeae12 100644
--- a/pkgs/development/python-modules/cpyparsing/default.nix
+++ b/pkgs/development/python-modules/cpyparsing/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "cpyparsing";
-  version = "2.4.7.1.0.0";
+  version = "2.4.7.1.1.0";
 
   src = fetchFromGitHub {
     owner = "evhub";
     repo = pname;
-    rev = "09073751d92cb40fb71c927c006baddc082df1db"; # No tags on repo
-    sha256 = "O9IdHipAxxbFcDFYNvmczue/wT4AF9Xb5uc3ZTAlTlo=";
+    rev = "v${version}";
+    sha256 = "1rqj89mb4dz0xk8djh506nrlqfqqdva9qgb5llrvvwjqv3vqnrj4";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/crccheck/default.nix b/pkgs/development/python-modules/crccheck/default.nix
index 1762d60dfde5e..891e67f644661 100644
--- a/pkgs/development/python-modules/crccheck/default.nix
+++ b/pkgs/development/python-modules/crccheck/default.nix
@@ -3,7 +3,7 @@
 
 let
   pname = "crccheck";
-  version = "1.0";
+  version = "1.1";
 in buildPythonPackage {
   inherit pname version;
 
@@ -11,7 +11,7 @@ in buildPythonPackage {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ay9lgy80j7lklm07iw2wq7giwnv9fbv50mncblqlc39y322vi0p";
+    sha256 = "45962231cab62b82d05160553eebd9b60ef3ae79dc39527caef52e27f979fa96";
   };
 
   disabled = !isPy3k;
diff --git a/pkgs/development/python-modules/crownstone-sse/default.nix b/pkgs/development/python-modules/crownstone-sse/default.nix
index ff101713cfed7..2c4226c6a3ef8 100644
--- a/pkgs/development/python-modules/crownstone-sse/default.nix
+++ b/pkgs/development/python-modules/crownstone-sse/default.nix
@@ -1,6 +1,5 @@
 { lib
 , aiohttp
-, asynctest
 , buildPythonPackage
 , certifi
 , fetchFromGitHub
@@ -9,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "crownstone-sse";
-  version = "2.0.2";
+  version = "2.0.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -18,12 +17,11 @@ buildPythonPackage rec {
     owner = "crownstone";
     repo = "crownstone-lib-python-sse";
     rev = version;
-    sha256 = "0rrr92j8pi5annrfa22k1hggsyyacl9asi9i8yrj4jqdjvwjn2gc";
+    sha256 = "sha256-O1joOH7HCXYCro26p6foMMpg0UXfOgXD0BXuN50OK7U=";
   };
 
   propagatedBuildInputs = [
     aiohttp
-    asynctest
     certifi
   ];
 
diff --git a/pkgs/development/python-modules/cryptography/default.nix b/pkgs/development/python-modules/cryptography/default.nix
index eddd7e0b44024..d21e6d060fe1a 100644
--- a/pkgs/development/python-modules/cryptography/default.nix
+++ b/pkgs/development/python-modules/cryptography/default.nix
@@ -79,10 +79,6 @@ buildPythonPackage rec {
     py.test ${pytestFlags} tests
   '';
 
-  # IOKit's dependencies are inconsistent between OSX versions, so this is the best we
-  # can do until nix 1.11's release
-  __impureHostDeps = [ "/usr/lib" ];
-
   meta = with lib; {
     description = "A package which provides cryptographic recipes and primitives";
     longDescription = ''
diff --git a/pkgs/development/python-modules/crytic-compile/default.nix b/pkgs/development/python-modules/crytic-compile/default.nix
index 8ed07d9597b19..7260310ea03e9 100644
--- a/pkgs/development/python-modules/crytic-compile/default.nix
+++ b/pkgs/development/python-modules/crytic-compile/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "crytic-compile";
-  version = "0.2.1";
+  version = "0.2.2";
 
   disabled = pythonOlder "3.6";
 
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     owner = "crytic";
     repo = "crytic-compile";
     rev = version;
-    sha256 = "sha256-RDb4Dc+igt2JKskBFIFvYt4xTAMujp8uXnkWsgnwdJE=";
+    sha256 = "sha256-4Lz+jJdKURp+K5XJJb7ksiFbnQwzS71gZWOufBvqz/k=";
   };
 
   propagatedBuildInputs = [ pysha3 setuptools ];
diff --git a/pkgs/development/python-modules/cssselect2/default.nix b/pkgs/development/python-modules/cssselect2/default.nix
index 25bb35eab2d87..52c1bc4067fbc 100644
--- a/pkgs/development/python-modules/cssselect2/default.nix
+++ b/pkgs/development/python-modules/cssselect2/default.nix
@@ -3,11 +3,7 @@
 , pythonOlder
 , fetchPypi
 , tinycss2
-, pytest
-, pytest-runner
-, pytest-cov
-, pytest-flake8
-, pytest-isort
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -20,9 +16,15 @@ buildPythonPackage rec {
     sha256 = "93fbb9af860e95dd40bf18c3b2b6ed99189a07c0f29ba76f9c5be71344664ec8";
   };
 
+  postPatch = ''
+    sed -i '/^addopts/d' pyproject.toml
+  '';
+
   propagatedBuildInputs = [ tinycss2 ];
 
-  checkInputs = [ pytest pytest-runner pytest-cov pytest-flake8 pytest-isort ];
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "cssselect2" ];
 
   meta = with lib; {
     description = "CSS selectors for Python ElementTree";
diff --git a/pkgs/development/python-modules/curtsies/default.nix b/pkgs/development/python-modules/curtsies/default.nix
index 549d6062c1749..3ef99936c47a4 100644
--- a/pkgs/development/python-modules/curtsies/default.nix
+++ b/pkgs/development/python-modules/curtsies/default.nix
@@ -2,10 +2,10 @@
 
 buildPythonPackage rec {
   pname = "curtsies";
-  version = "0.3.9";
+  version = "0.3.10";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "933b503767ce38fe32a1f77639d9a4fa3d5229d41abb31a91a6fcbdf01511a55";
+    sha256 = "11efbb153d9cb22223dd9a44041ea0c313b8411e246e7f684aa843f6aa9c1600";
   };
 
   propagatedBuildInputs = [ blessings cwcwidth ]
diff --git a/pkgs/development/python-modules/cvxpy/default.nix b/pkgs/development/python-modules/cvxpy/default.nix
index 6fc56c85e9eca..79ed1ebac5f23 100644
--- a/pkgs/development/python-modules/cvxpy/default.nix
+++ b/pkgs/development/python-modules/cvxpy/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "cvxpy";
-  version = "1.1.17";
+  version = "1.1.18";
   format = "pyproject";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-M5fTuJ13Dqnw/DWbHJs6/t5qDTvqHP8g4mU7E0Uc24o=";
+    sha256 = "sha256-W67+Hy7Wk3dJspNYbGzk9C7TDniQIj92Ycyyu333C+8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cwcwidth/default.nix b/pkgs/development/python-modules/cwcwidth/default.nix
index 940d41129e57e..ede96fc3b41d7 100644
--- a/pkgs/development/python-modules/cwcwidth/default.nix
+++ b/pkgs/development/python-modules/cwcwidth/default.nix
@@ -13,12 +13,17 @@ buildPythonPackage rec {
   nativeBuildInputs = [ cython ];
 
   checkInputs = [ pytestCheckHook ];
-  # Hack needed to make pytest + cython work
-  # https://github.com/NixOS/nixpkgs/pull/82410#issuecomment-827186298
   preCheck = ''
+    # Hack needed to make pytest + cython work
+    # https://github.com/NixOS/nixpkgs/pull/82410#issuecomment-827186298
     export HOME=$(mktemp -d)
     cp -r $TMP/$sourceRoot/tests $HOME
     pushd $HOME
+
+    # locale settings used by upstream, has the effect of skipping
+    # otherwise-failing tests on darwin
+    export LC_ALL='C.UTF-8'
+    export LANG='C.UTF-8'
   '';
   postCheck = "popd";
 
diff --git a/pkgs/development/python-modules/cx_freeze/default.nix b/pkgs/development/python-modules/cx_freeze/default.nix
index 2f1797bf4fed8..514b53b873a99 100644
--- a/pkgs/development/python-modules/cx_freeze/default.nix
+++ b/pkgs/development/python-modules/cx_freeze/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "cx_Freeze";
-  version = "6.8.1";
+  version = "6.8.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3f16d3d40f7f2e1f6032132170d8fd4ba2f4f9ea419f13d7a68091bbe1949583";
+    sha256 = "05e7a2b099d4eb36e74116311b693dcc3103763aee92ef32079be0b6d4832fa0";
   };
 
   disabled = pythonOlder "3.5";
diff --git a/pkgs/development/python-modules/cx_oracle/default.nix b/pkgs/development/python-modules/cx_oracle/default.nix
index a5606ac3dd200..3b7d701f1114a 100644
--- a/pkgs/development/python-modules/cx_oracle/default.nix
+++ b/pkgs/development/python-modules/cx_oracle/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "cx_Oracle";
-  version = "8.2.1";
+  version = "8.3.0";
 
   buildInputs = [ odpic ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12e7e913a7a10fd8caafb9855e6703a601b7dd5cc596fcd489d0ac9529608b6c";
+    sha256 = "3b2d215af4441463c97ea469b9cc307460739f89fdfa8ea222ea3518f1a424d9";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/python-modules/cycler/default.nix b/pkgs/development/python-modules/cycler/default.nix
index 643a57e259ff5..b9bd167c6a945 100644
--- a/pkgs/development/python-modules/cycler/default.nix
+++ b/pkgs/development/python-modules/cycler/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "cycler";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cd7b2d1018258d7247a71425e9f26463dfb444d411c39569972f4ce586b0c9d8";
+    sha256 = "9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f";
   };
 
   checkInputs = [ coverage nose ];
diff --git a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
index aec7d975a77c8..75f9c29607dac 100644
--- a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
+++ b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "cyclonedx-python-lib";
-  version = "0.11.1";
+  version = "0.12.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "CycloneDX";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+Gu9WaGC2R5TC8XSqDNSJ3t7aMS69IeeKTzytYFcHvE=";
+    sha256 = "1404wcwjglq025n8ncsrl2h64g1sly83cs9sc6jpiw1g5ay4a1vi";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/cysignals/default.nix b/pkgs/development/python-modules/cysignals/default.nix
index d075360d1a44d..d03e3ba501ec0 100644
--- a/pkgs/development/python-modules/cysignals/default.nix
+++ b/pkgs/development/python-modules/cysignals/default.nix
@@ -1,4 +1,5 @@
 { lib
+, autoreconfHook
 , fetchPypi
 , buildPythonPackage
 , cython
@@ -9,11 +10,11 @@ assert pariSupport -> pari != null;
 
 buildPythonPackage rec {
   pname = "cysignals";
-  version = "1.10.3";
+  version = "1.11.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-XEYGxDV3UCgxb3Jf23y4lOPK4Lb9L4YqDSlxdIRptDo=";
+    sha256 = "5858b1760fbe21848121b826b2463a67ac5a45caf3d73105497a68618c5a6fa6";
   };
 
   # explicit check:
@@ -40,6 +41,8 @@ buildPythonPackage rec {
     pari
   ];
 
+  nativeBuildInputs = [ autoreconfHook ];
+
   enableParallelBuilding = true;
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/cytoolz/default.nix b/pkgs/development/python-modules/cytoolz/default.nix
index 86ee238eb10f6..9b1b9ecb8da61 100644
--- a/pkgs/development/python-modules/cytoolz/default.nix
+++ b/pkgs/development/python-modules/cytoolz/default.nix
@@ -2,7 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , isPyPy
-, nose
+, pytestCheckHook
 , toolz
 , python
 , isPy27
@@ -10,21 +10,25 @@
 
 buildPythonPackage rec {
   pname = "cytoolz";
-  version = "0.11.0";
+  version = "0.11.2";
   disabled = isPy27 || isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c64f3590c3eb40e1548f0d3c6b2ccde70493d0b8dc6cc7f9f3fec0bb3dcd4222";
+    sha256 = "ea23663153806edddce7e4153d1d407d62357c05120a4e8485bddf1bd5ab22b4";
   };
 
-  checkInputs = [ nose ];
   propagatedBuildInputs = [ toolz ];
 
-  checkPhase = ''
-    nosetests -v $out/${python.sitePackages}
+  # tests are located in cytoolz/tests, however we can't import cytoolz
+  # from $PWD, as it will break relative imports
+  preCheck = ''
+    cd cytoolz
+    export PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
   '';
 
+  checkInputs = [ pytestCheckHook ];
+
   meta = {
     homepage = "https://github.com/pytoolz/cytoolz/";
     description = "Cython implementation of Toolz: High performance functional utilities";
diff --git a/pkgs/development/python-modules/dask-image/default.nix b/pkgs/development/python-modules/dask-image/default.nix
index e3ab607dcac08..5ff95eef6ac97 100644
--- a/pkgs/development/python-modules/dask-image/default.nix
+++ b/pkgs/development/python-modules/dask-image/default.nix
@@ -9,12 +9,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.6.0";
+  version = "2021.12.0";
   pname = "dask-image";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1zzxrvbm52xn7azkn74pjinlk0jkpdcyl3r5vxxy5lmjnmzlrrpy";
+    sha256 = "35be49626bd01c3e3892128126a27d5ee3266a198a8e3c7e30d59eaef712fcf9";
   };
 
   propagatedBuildInputs = [ dask scipy pims ];
diff --git a/pkgs/development/python-modules/dask-ml/default.nix b/pkgs/development/python-modules/dask-ml/default.nix
index 62f2a30507b54..60df07076827d 100644
--- a/pkgs/development/python-modules/dask-ml/default.nix
+++ b/pkgs/development/python-modules/dask-ml/default.nix
@@ -17,13 +17,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.9.0";
+  version = "2021.11.30";
   pname = "dask-ml";
   disabled = pythonOlder "3.6"; # >= 3.6
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2f376a7114133b484a6d393f62298473116fc49c79ec7d50d5b031d752f54307";
+    sha256 = "4f73306b5ee56e9b41b133697062d0028d30b1ece883ac6b56532fea5bd3e94a";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dask-mpi/default.nix b/pkgs/development/python-modules/dask-mpi/default.nix
index d656b055d119a..cc44a6e97eb7b 100644
--- a/pkgs/development/python-modules/dask-mpi/default.nix
+++ b/pkgs/development/python-modules/dask-mpi/default.nix
@@ -7,12 +7,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.21.0";
+  version = "2021.11.0";
   pname = "dask-mpi";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "76e153fc8c58047d898970b33ede0ab1990bd4e69cc130c6627a96f11b12a1a7";
+    sha256 = "602d2e2d7816a4abc1eb17998e1acc93a43b6f82bf94a6accca169a42de21898";
   };
 
   propagatedBuildInputs = [ dask distributed mpi4py ];
diff --git a/pkgs/development/python-modules/databricks-connect/default.nix b/pkgs/development/python-modules/databricks-connect/default.nix
index f0aa7a074c6de..7df195b3aacb5 100644
--- a/pkgs/development/python-modules/databricks-connect/default.nix
+++ b/pkgs/development/python-modules/databricks-connect/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "databricks-connect";
-  version = "9.1.2";
+  version = "9.1.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9672aae60b299de58a527f320df45769cadf436398e21f4ce73424a25badb7a7";
+    sha256 = "26b88b1d8fdacf5226cf9c1924fae974c955ccbfe2fdcd08574327007bdcbdd9";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/development/python-modules/datamodeldict/default.nix b/pkgs/development/python-modules/datamodeldict/default.nix
index 551b109622241..b87ce1803c0d5 100644
--- a/pkgs/development/python-modules/datamodeldict/default.nix
+++ b/pkgs/development/python-modules/datamodeldict/default.nix
@@ -5,12 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.9.7";
+  version = "0.9.8";
   pname = "DataModelDict";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b1be7573cb4401aa250fd00f2e6392543f6f2498f8e02f6313595aa220e5c99e";
+    sha256 = "65c36954efa17449c69a4d8cb11c9273593ef01428cd77a609ee134eba771550";
   };
 
   propagatedBuildInputs = [ xmltodict ];
diff --git a/pkgs/development/python-modules/datasets/default.nix b/pkgs/development/python-modules/datasets/default.nix
index 0c1b8137bc985..b4b60da17f9ff 100644
--- a/pkgs/development/python-modules/datasets/default.nix
+++ b/pkgs/development/python-modules/datasets/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "datasets";
-  version = "1.11.0";
+  version = "1.16.1";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = pname;
     rev = version;
-    sha256 = "0pm14cp7xaagpf4j96v0ybi5gn3r9p0if3pc197ckwx6sw3lx29p";
+    sha256 = "sha256-5J2hhy52eZqVSaeJNIOM9RzZatq3aewAulS3OX76+Io=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/datasette/default.nix b/pkgs/development/python-modules/datasette/default.nix
index 5a611c989f4d8..7908b3c6b4966 100644
--- a/pkgs/development/python-modules/datasette/default.nix
+++ b/pkgs/development/python-modules/datasette/default.nix
@@ -31,14 +31,15 @@
 
 buildPythonPackage rec {
   pname = "datasette";
-  version = "0.58.1";
+  version = "0.59.4";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "simonw";
     repo = pname;
     rev = version;
-    sha256 = "sha256-dtKqp7LV1fRjwOMAlmmAnC19j8hLA1oixGextATW6z0=";
+    sha256 = "sha256-bH/VREo2f84wloA2jgXnQkGNSRRRYmSvUXmI0wMfmYM=";
   };
 
   nativeBuildInputs = [ pytest-runner ];
@@ -79,7 +80,6 @@ buildPythonPackage rec {
       --replace "pint~=0.9" "pint" \
       --replace "pluggy~=0.13.0" "pluggy" \
       --replace "uvicorn~=0.11" "uvicorn" \
-      --replace "PyYAML~=5.3" "PyYAML"
   '';
 
   # takes 30-180 mins to run entire test suite, not worth the CPU resources, slows down reviews
@@ -108,6 +108,6 @@ buildPythonPackage rec {
     description = "Multi-tool for exploring and publishing data";
     homepage = "https://datasette.io/";
     license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/datashader/default.nix b/pkgs/development/python-modules/datashader/default.nix
index 5738dc64e759e..587f73d81ed8c 100644
--- a/pkgs/development/python-modules/datashader/default.nix
+++ b/pkgs/development/python-modules/datashader/default.nix
@@ -31,6 +31,13 @@ buildPythonPackage rec {
     sha256 = "sha256-6JscHm1QjDmXOLLa83qhAvY/xwvlPM6duQ1lSxnCVV8=";
   };
 
+  # the complete extra is for usage with conda, which we
+  # don't care about
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "dask[complete]" "dask"
+  '';
+
   propagatedBuildInputs = [
     dask
     bokeh
@@ -56,11 +63,24 @@ buildPythonPackage rec {
     netcdf4
   ];
 
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
+
   pytestFlagsArray = [
     "-n $NIX_BUILD_CORES"
     "datashader"
   ];
 
+  disabledTests = [
+    # not compatible with current version of bokeh
+    # see: https://github.com/holoviz/datashader/issues/1031
+    "test_interactive_image_update"
+    # latest dask broken array marshalling
+    # see: https://github.com/holoviz/datashader/issues/1032
+    "test_raster_quadmesh_autorange_reversed"
+  ];
+
   disabledTestPaths = [
     # 31/50 tests fail with TypeErrors
     "datashader/tests/test_datatypes.py"
diff --git a/pkgs/development/python-modules/datatable/default.nix b/pkgs/development/python-modules/datatable/default.nix
index 0cc7d43d50497..9008270fc79e3 100644
--- a/pkgs/development/python-modules/datatable/default.nix
+++ b/pkgs/development/python-modules/datatable/default.nix
@@ -20,13 +20,16 @@ buildPythonPackage rec {
   # authors seem to have created their own build system
   format = "other";
 
-  # tarball doesn't appear to have been shipped totally ready-to-build
   postPatch = ''
+    # tarball doesn't appear to have been shipped totally ready-to-build
     substituteInPlace ci/ext.py \
       --replace \
         'shell_cmd(["git"' \
         '"0000000000000000000000000000000000000000" or shell_cmd(["git"'
     echo '${version}' > VERSION.txt
+
+    # don't make assumptions about architecture
+    sed -i '/-m64/d' ci/ext.py
   '';
   DT_RELEASE = "1";
 
diff --git a/pkgs/development/python-modules/dbus/default.nix b/pkgs/development/python-modules/dbus/default.nix
index 8c9eb476fe084..23fcf511187ec 100644
--- a/pkgs/development/python-modules/dbus/default.nix
+++ b/pkgs/development/python-modules/dbus/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "dbus-python";
-  version = "1.2.16";
+  version = "1.2.18";
   format = "other";
 
   outputs = [ "out" "dev" ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "196m5rk3qzw5nkmgzjl7wmq0v7vpwfhh8bz2sapdi5f9hqfqy8qi";
+    sha256 = "0q3jrw515z98mqdk9x822nd95rky455zz9876f1nqna5igkd3gcj";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/dbutils/default.nix b/pkgs/development/python-modules/dbutils/default.nix
index fef630e868313..bbfa60f03b699 100644
--- a/pkgs/development/python-modules/dbutils/default.nix
+++ b/pkgs/development/python-modules/dbutils/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.0.2";
+  version = "3.0.1";
   pname = "dbutils";
 
   src = fetchPypi {
     inherit version;
     pname = "DBUtils";
-    sha256 = "1cc8zyd4lapzf9ny6c2jf1vysphlhr19m8miyvw5spbyq4pxpnsf";
+    sha256 = "6ec83f4d75d7a7b42a92e86b775f251e2671639b3b2123fe13a5d8d8fe7c5643";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/debugpy/default.nix b/pkgs/development/python-modules/debugpy/default.nix
index ed3e70e3ab2e9..bf2ed3628675a 100644
--- a/pkgs/development/python-modules/debugpy/default.nix
+++ b/pkgs/development/python-modules/debugpy/default.nix
@@ -59,6 +59,7 @@ buildPythonPackage rec {
     ${stdenv.cc}/bin/c++ linux_and_mac/attach.cpp -Ilinux_and_mac -fPIC -nostartfiles ${{
       "x86_64-linux"   = "-shared -m64 -o attach_linux_amd64.so";
       "i686-linux"     = "-shared -m32 -o attach_linux_x86.so";
+      "aarch64-linux"  = "-shared -o attach_linux_arm64.so";
       "x86_64-darwin"  = "-std=c++11 -lc -D_REENTRANT -dynamiclib -arch x86_64 -o attach_x86_64.dylib";
       "i686-darwin"    = "-std=c++11 -lc -D_REENTRANT -dynamiclib -arch i386 -o attach_x86.dylib";
       "aarch64-darwin" = "-std=c++11 -lc -D_REENTRANT -dynamiclib -arch arm64 -o attach_arm64.dylib";
@@ -87,6 +88,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/microsoft/debugpy";
     license = licenses.mit;
     maintainers = with maintainers; [ kira-bruneau ];
-    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "i686-darwin" "aarch64-darwin" ];
+    platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "i686-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/development/python-modules/deemix/default.nix b/pkgs/development/python-modules/deemix/default.nix
index 670a459970b02..cf54f6facf82f 100644
--- a/pkgs/development/python-modules/deemix/default.nix
+++ b/pkgs/development/python-modules/deemix/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "deemix";
-  version = "3.5.5";
+  version = "3.6.4";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-qattUKdGr9P2al5cibG0CPJNmVCJjgE+hucOtl7pAhE=";
+    sha256 = "268617b3ff9346ae51a063cbdb820c1f591cbadc1cf2fafd201dc671e721c1dd";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/deep-translator/default.nix b/pkgs/development/python-modules/deep-translator/default.nix
new file mode 100644
index 0000000000000..ae7bf52e1fe7b
--- /dev/null
+++ b/pkgs/development/python-modules/deep-translator/default.nix
@@ -0,0 +1,33 @@
+{ lib, buildPythonPackage, fetchPypi, beautifulsoup4, requests, click }:
+
+buildPythonPackage rec {
+  pname = "deep-translator";
+  version = "1.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-B/SnLSaCRVhQvSU2hmdKPswM2N73nHAzQfVNBMgCofI=";
+  };
+
+  propagatedBuildInputs = [
+    beautifulsoup4
+    requests
+    click
+  ];
+
+  # Initializing it during build won't work as it needs connection with
+  # APIs and the build environment is isolated (#148572 for details).
+  # After built, it works as intended.
+  #pythonImportsCheck = [ "deep_translator" ];
+
+  # Again, initializing an instance needs network connection.
+  # Tests will fail.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Flexible, free and unlimited Python tool to translate between different languages in a simple way using multiple translators";
+    homepage = "https://deep-translator.readthedocs.io";
+    license = licenses.mit;
+    maintainers = with maintainers; [ wolfangaukang ];
+  };
+}
diff --git a/pkgs/development/python-modules/deepdish/default.nix b/pkgs/development/python-modules/deepdish/default.nix
new file mode 100644
index 0000000000000..6ae9316a0f6df
--- /dev/null
+++ b/pkgs/development/python-modules/deepdish/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, numpy
+, scipy
+, tables
+}:
+
+buildPythonPackage rec {
+  pname = "deepdish";
+  version = "0.3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1wqzwh3y0mjdyba5kfbvlamn561d3afz50zi712c7klkysz3mzva";
+  };
+
+  propagatedBuildInputs = [
+    numpy
+    scipy
+    tables
+  ];
+
+  pythonImportsCheck = [
+    "deepdish"
+  ];
+
+  # checkInputs = [
+  #   pandas
+  # ];
+
+  # The tests are broken: `ModuleNotFoundError: No module named 'deepdish.six.conf'`
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Flexible HDF5 saving/loading and other data science tools from the University of Chicago.";
+    homepage = "https://github.com/uchicago-cs/deepdish";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ndl ];
+  };
+}
diff --git a/pkgs/development/python-modules/deepmerge/default.nix b/pkgs/development/python-modules/deepmerge/default.nix
index da4b72d2ff490..148599fe1666e 100644
--- a/pkgs/development/python-modules/deepmerge/default.nix
+++ b/pkgs/development/python-modules/deepmerge/default.nix
@@ -9,17 +9,17 @@
 
 buildPythonPackage rec {
   pname = "deepmerge";
-  version = "0.3.0";
+  version = "1.0.1";
   disabled = isPy27;
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1zfl8rkw98vj7jdpb29ably50x46pq6pazhrkrczndf5jc97zzgn";
+    sha256 = "sha256-S0R3ntPS+3kbsYH8JoNCNJb+pCirt683/rIyht5/Cho=";
   };
 
   nativeBuildInputs = [
     setuptools-scm
-    vcver
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/deezer-py/default.nix b/pkgs/development/python-modules/deezer-py/default.nix
index ce2242a625eb6..648f0e3f0fc71 100644
--- a/pkgs/development/python-modules/deezer-py/default.nix
+++ b/pkgs/development/python-modules/deezer-py/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "deezer-py";
-  version = "1.2.5";
+  version = "1.3.2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-JceyMBQFLD3fRPb9nJlGOSN7iACuJG8dmlFfOhhsYKc=";
+    sha256 = "sha256-G4GREc+PWvaphnOuzBePraj4pHgmhhKqsyVHKOPwGik=";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/deezer-python/default.nix b/pkgs/development/python-modules/deezer-python/default.nix
index bece301595375..cb3afb644252a 100644
--- a/pkgs/development/python-modules/deezer-python/default.nix
+++ b/pkgs/development/python-modules/deezer-python/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "deezer-python";
-  version = "4.1.0";
+  version = "4.2.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "browniebroke";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-E1xXtvAcYIi2xxaX+3yMkkvRz+Gt6Nx0JRqV1nI/Ldo=";
+    sha256 = "0gl0l7x9zqfkz3l4jfz8rb956lqj3vx1aghric36izwzl6wyj6h5";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/defcon/default.nix b/pkgs/development/python-modules/defcon/default.nix
index 845993be71136..f40ba374d0345 100644
--- a/pkgs/development/python-modules/defcon/default.nix
+++ b/pkgs/development/python-modules/defcon/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonPackage rec {
   pname = "defcon";
-  version = "0.9.0";
+  version = "0.10.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "140f51da51e9630a9fa11dfd34376c4e29785fdb0bddc2e371df5b36bec17b76";
+    sha256 = "a009862a0bc3f41f2b1a1b1f80d6aeedb3a17ed77d598da09f5a1bd93e970b3c";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/detect-secrets/default.nix b/pkgs/development/python-modules/detect-secrets/default.nix
index 2e07f98d78dd0..ef19b9a913b01 100644
--- a/pkgs/development/python-modules/detect-secrets/default.nix
+++ b/pkgs/development/python-modules/detect-secrets/default.nix
@@ -4,6 +4,7 @@
 , gibberish-detector
 , isPy27
 , mock
+, pkgs
 , pyahocorasick
 , pytestCheckHook
 , pyyaml
@@ -21,7 +22,8 @@ buildPythonPackage rec {
     owner = "Yelp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-dj0lqm9s8OKhM4OmNrmGVRc32/ZV0I9+5WcW2hvLwu0=";
+    sha256 = "sha256-dG2YaWXAMINxBGKNMlVfGTR9QHdnepiZmN+G88X4Wak=";
+    leaveDotGit = true;
   };
 
   propagatedBuildInputs = [
@@ -36,6 +38,7 @@ buildPythonPackage rec {
     pytestCheckHook
     responses
     unidiff
+    pkgs.gitMinimal
   ];
 
   preCheck = ''
@@ -44,24 +47,15 @@ buildPythonPackage rec {
 
   disabledTests = [
     # Tests are failing for various reasons. Needs to be adjusted with the next update
-    "test_baseline_filters_out_known_secrets"
     "test_basic"
-    "test_does_not_modify_slim_baseline"
     "test_handles_each_path_separately"
     "test_handles_multiple_directories"
     "test_load_and_output"
     "test_make_decisions"
-    "test_modifies_baseline"
-    "test_no_files_in_git_repo"
-    "test_outputs_baseline_if_none_supplied"
+    "test_restores_line_numbers"
     "test_saves_to_baseline"
     "test_scan_all_files"
-    "test_should_scan_all_files_in_directory_if_flag_is_provided"
-    "test_should_scan_specific_non_tracked_file"
-    "test_should_scan_tracked_files_in_directory"
     "test_start_halfway"
-    "test_works_from_different_directory"
-    "TestModifiesBaselineFromVersionChange"
   ];
 
   pythonImportsCheck = [ "detect_secrets" ];
diff --git a/pkgs/development/python-modules/devolo-plc-api/default.nix b/pkgs/development/python-modules/devolo-plc-api/default.nix
index 91e734e45f6d1..5abe989e98d50 100644
--- a/pkgs/development/python-modules/devolo-plc-api/default.nix
+++ b/pkgs/development/python-modules/devolo-plc-api/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "devolo-plc-api";
-  version = "0.6.3";
+  version = "0.7.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "2Fake";
     repo = "devolo_plc_api";
     rev = "v${version}";
-    sha256 = "6EIT6ifC4M4qj/2dZYVZ3fb3bPs25R7IEh/MduYTTkU=";
+    sha256 = "sha256-qzjH52bKQ/oSFd580V92uE2/Z2g+2nLh/JXOXYqVfSY=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/digi-xbee/default.nix b/pkgs/development/python-modules/digi-xbee/default.nix
index 025939f2db287..52bfaee7911b5 100644
--- a/pkgs/development/python-modules/digi-xbee/default.nix
+++ b/pkgs/development/python-modules/digi-xbee/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "digi-xbee";
-  version = "1.4.0";
+  version = "1.4.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "664737d1aab453ea40b9745f1ee1e88920acff1cce2e07c42e7f5aa64a16e6aa";
+    sha256 = "3b10e749431f406d80c189d872f4673b8d3cd510f7b411f817780a0e72499cd2";
   };
 
   propagatedBuildInputs = [ pyserial srp ];
diff --git a/pkgs/development/python-modules/dingz/default.nix b/pkgs/development/python-modules/dingz/default.nix
new file mode 100644
index 0000000000000..c02746695e88b
--- /dev/null
+++ b/pkgs/development/python-modules/dingz/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, aiohttp
+, async-timeout
+, buildPythonPackage
+, click
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "dingz";
+  version = "0.5.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "home-assistant-ecosystem";
+    repo = "python-dingz";
+    rev = version;
+    sha256 = "sha256-bCytQwLWw8D1UkKb/3LQ301eDCkVR4alD6NHjTs6I+4=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+    click
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "dingz"
+  ];
+
+  meta = with lib; {
+    description = "Python API for interacting with Dingz devices";
+    homepage = "https://github.com/home-assistant-ecosystem/python-dingz";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/discordpy/default.nix b/pkgs/development/python-modules/discordpy/default.nix
index 6de2b9f817217..aa88147ae7fd9 100644
--- a/pkgs/development/python-modules/discordpy/default.nix
+++ b/pkgs/development/python-modules/discordpy/default.nix
@@ -6,11 +6,14 @@
 , pynacl
 , pythonOlder
 , withVoice ? true
+, ffmpeg
 }:
 
 buildPythonPackage rec {
   pname = "discord.py";
   version = "1.7.3";
+  format = "setuptools";
+
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
@@ -22,14 +25,20 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     aiohttp
-  ] ++ lib.optionalString withVoice [
+  ] ++ lib.optionals withVoice [
     libopus
     pynacl
+    ffmpeg
   ];
 
   patchPhase = ''
     substituteInPlace "discord/opus.py" \
       --replace "ctypes.util.find_library('opus')" "'${libopus}/lib/libopus.so.0'"
+    substituteInPlace requirements.txt \
+      --replace "aiohttp>=3.6.0,<3.8.0" "aiohttp>=3.6.0,<4"
+  '' + lib.optionalString withVoice ''
+    substituteInPlace "discord/player.py" \
+      --replace "executable='ffmpeg'" "executable='${ffmpeg}/bin/ffmpeg'"
   '';
 
   # Only have integration tests with discord
@@ -49,7 +58,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python wrapper for the Discord API";
     homepage = "https://discordpy.rtfd.org/";
-    maintainers = [ maintainers.ivar ];
     license = licenses.mit;
+    maintainers = with maintainers; [ ivar ];
   };
 }
diff --git a/pkgs/development/python-modules/diskcache/default.nix b/pkgs/development/python-modules/diskcache/default.nix
index 0264c0ff10c53..457ab077a0ce1 100644
--- a/pkgs/development/python-modules/diskcache/default.nix
+++ b/pkgs/development/python-modules/diskcache/default.nix
@@ -32,6 +32,15 @@ buildPythonPackage rec {
   doCheck = !stdenv.isDarwin;
   pythonImportsCheck = [ "diskcache" ];
 
+  disabledTests = [
+    # very time sensitive, can fail on over subscribed machines
+    "test_incr_update_keyerror"
+  ];
+
+  pytestFlagsArray = [
+    "-n $NIX_BUILD_CORES"
+  ];
+
   meta = with lib; {
     description = "Disk and file backed persistent cache";
     homepage = "http://www.grantjenks.com/docs/diskcache/";
diff --git a/pkgs/development/python-modules/distributed/default.nix b/pkgs/development/python-modules/distributed/default.nix
index b623fe302783e..6dfb531a78b67 100644
--- a/pkgs/development/python-modules/distributed/default.nix
+++ b/pkgs/development/python-modules/distributed/default.nix
@@ -19,15 +19,20 @@
 
 buildPythonPackage rec {
   pname = "distributed";
-  version = "2021.10.0";
+  version = "2021.11.2";
   disabled = pythonOlder "3.6";
 
   # get full repository need conftest.py to run tests
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0kfq7lwv2n2wiws4v2rj36wx56jvkp2fl6zxg04p2lc3vcgha9za";
+    sha256 = "f86a01a2e1e678865d2e42300c47552b5012cd81a2d354e47827a1fd074cc302";
   };
 
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "dask == 2021.11.2" "dask"
+  '';
+
   propagatedBuildInputs = [
     bokeh
     click
diff --git a/pkgs/development/python-modules/django-configurations/default.nix b/pkgs/development/python-modules/django-configurations/default.nix
index de01f4f704176..4cb23d989fae0 100644
--- a/pkgs/development/python-modules/django-configurations/default.nix
+++ b/pkgs/development/python-modules/django-configurations/default.nix
@@ -1,29 +1,48 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, django-discover-runner
-, mock
 , dj-database-url
 , dj-email-url
 , dj-search-url
-, django-cache-url
-, six
 , django
+, django-cache-url
+, django-discover-runner
+, fetchPypi
+, importlib-metadata
+, mock
+, pythonOlder
 , setuptools-scm
 }:
 
 buildPythonPackage rec {
-  version = "2.2";
   pname = "django-configurations";
+  version = "2.3.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9e3bcea1355ac50a4c9f854f751d214cb17e5f8adf18405a4488d0a1e8945915";
+    sha256 = "e2ca25530e184f0ee3b7f5ae69563461a93a8914493306ee0bf6d71e7d8ad1d0";
   };
 
-  buildInputs = [ setuptools-scm ];
-  propagatedBuildInputs = [ six ];
-  checkInputs = [ django-discover-runner mock dj-database-url dj-email-url dj-search-url django-cache-url ];
+  buildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    django
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
+
+  checkInputs = [
+    django-discover-runner
+    mock
+    dj-database-url
+    dj-email-url
+    dj-search-url
+    django-cache-url
+  ];
 
   checkPhase = ''
     export PYTHONPATH=.:$PYTHONPATH
@@ -35,10 +54,14 @@ buildPythonPackage rec {
   # django.core.exceptions.ImproperlyConfigured: django-configurations settings importer wasn't correctly installed
   doCheck = false;
 
+  pythonImportsCheck = [
+    "configurations"
+  ];
+
   meta = with lib; {
-    homepage = "https://django-configurations.readthedocs.io/";
     description = "A helper for organizing Django settings";
+    homepage = "https://django-configurations.readthedocs.io/";
     license = licenses.bsd0;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/django-csp/default.nix b/pkgs/development/python-modules/django-csp/default.nix
index 1f7b281140540..c54583447671a 100644
--- a/pkgs/development/python-modules/django-csp/default.nix
+++ b/pkgs/development/python-modules/django-csp/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "django-csp";
-  version = "3.5";
+  version = "3.7";
 
   src = fetchPypi {
     inherit version;
     pname = "django_csp";
-    sha256 = "0ks4zszbjx5lyqlc34pjica8hfcjzw4i5m6pivvnyv8yf0vh4q04";
+    sha256 = "01eda02ad3f10261c74131cdc0b5a6a62b7c7ad4fd017fbefb7a14776e0a9727";
   };
 
   # too complicated to setup - needs a running django instance
diff --git a/pkgs/development/python-modules/django-formtools/default.nix b/pkgs/development/python-modules/django-formtools/default.nix
index 311fae425a5e3..c85d5d3fcc75e 100644
--- a/pkgs/development/python-modules/django-formtools/default.nix
+++ b/pkgs/development/python-modules/django-formtools/default.nix
@@ -1,19 +1,40 @@
-{ lib, buildPythonPackage, fetchPypi, django, python }:
+{ lib
+, buildPythonPackage
+, django
+, fetchPypi
+, python
+, pythonOlder
+, setuptools-scm
+}:
 
 buildPythonPackage rec {
   pname = "django-formtools";
-  version = "2.2";
+  version = "2.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1chkbl188yj6hvhh1wgjpfgql553k6hrfwxzb8vv4lfdq41jq9y5";
+    sha256 = "9663b6eca64777b68d6d4142efad8597fe9a685924673b25aa8a1dcff4db00c3";
   };
 
-  propagatedBuildInputs = [ django ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    django
+  ];
+
   checkPhase = ''
     ${python.interpreter} -m django test --settings=tests.settings
   '';
 
+  pythonImportsCheck = [
+    "formtools"
+  ];
+
   meta = with lib; {
     description = "A set of high-level abstractions for Django forms";
     homepage = "https://github.com/jazzband/django-formtools";
diff --git a/pkgs/development/python-modules/django-ipware/default.nix b/pkgs/development/python-modules/django-ipware/default.nix
index d773c1490bcc4..ba8f1d79db8cc 100644
--- a/pkgs/development/python-modules/django-ipware/default.nix
+++ b/pkgs/development/python-modules/django-ipware/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "django-ipware";
-  version = "4.0.0";
+  version = "4.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1294f916f3b3475e40e1b0ec1bd320aa2397978eae672721c81cbc2ed517e9ee";
+    sha256 = "602a58325a4808bd19197fef2676a0b2da2df40d0ecf21be414b2ff48c72ad05";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/pkgs/development/python-modules/django-jinja2/default.nix b/pkgs/development/python-modules/django-jinja2/default.nix
index 04885072c6788..039a75aacee24 100644
--- a/pkgs/development/python-modules/django-jinja2/default.nix
+++ b/pkgs/development/python-modules/django-jinja2/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "django-jinja";
-  version = "2.9.1";
+  version = "2.10.0";
 
   meta = {
     description = "Simple and nonobstructive jinja2 integration with Django";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6c1fc68b0f4b1fb21b208a3e5dc19a3b11bab2812c06f827d5fdbd24001a1910";
+    sha256 = "ae6a3fdf1ffa7a9ef6fd2f0a59c1a68c96b29f7f00f5166375658ef392f1ed32";
   };
 
   buildInputs = [ django pytz tox ];
diff --git a/pkgs/development/python-modules/django-prometheus/default.nix b/pkgs/development/python-modules/django-prometheus/default.nix
index 8708a95a47986..733a177d6a5ef 100644
--- a/pkgs/development/python-modules/django-prometheus/default.nix
+++ b/pkgs/development/python-modules/django-prometheus/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "django-prometheus";
-  version = "2.1.0";
+  version = "2.2.0";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
diff --git a/pkgs/development/python-modules/django-redis/default.nix b/pkgs/development/python-modules/django-redis/default.nix
index b578a016722b8..b088876b3e4af 100644
--- a/pkgs/development/python-modules/django-redis/default.nix
+++ b/pkgs/development/python-modules/django-redis/default.nix
@@ -2,14 +2,27 @@
 , fetchFromGitHub
 , pythonOlder
 , buildPythonPackage
+
+# propagated
 , django
+, hiredis
+, lz4
+, msgpack
 , redis
+
+# testing
+, pkgs
+, pytest-django
+, pytest-mock
 , pytestCheckHook
 }:
 
-buildPythonPackage rec {
+let
   pname = "django-redis";
-  version = "5.0.0";
+  version = "5.1.0";
+in
+buildPythonPackage {
+  inherit pname version;
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
@@ -17,7 +30,7 @@ buildPythonPackage rec {
     owner = "jazzband";
     repo = "django-redis";
     rev = version;
-    sha256 = "1np10hfyg4aamlz7vav9fy80gynb1lhl2drqkbckr3gg1gbz6crj";
+    sha256 = "sha256-S94qH2W5e65yzGfPxpwBUKhvvVS0Uc/zSyo66bnvzf4=";
   };
 
   postPatch = ''
@@ -26,6 +39,9 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     django
+    hiredis
+    lz4
+    msgpack
     redis
   ];
 
@@ -33,12 +49,28 @@ buildPythonPackage rec {
     "django_redis"
   ];
 
+  DJANGO_SETTINGS_MODULE = "tests.settings.sqlite";
+
+  preCheck = ''
+    ${pkgs.redis}/bin/redis-server &
+  '';
+
   checkInputs = [
+    pytest-django
+    pytest-mock
     pytestCheckHook
   ];
 
-  disabledTestPaths = [
-    "tests/test_backend.py"  # django.core.exceptions.ImproperlyConfigured: Requested setting DJANGO_REDIS_SCAN_ITERSIZE, but settings are not configured.
+  disabledTests = [
+    # ModuleNotFoundError: No module named 'test_cache_options'
+    "test_custom_key_function"
+    # ModuleNotFoundError: No module named 'test_client'
+    "test_delete_pattern_calls_get_client_given_no_client"
+    "test_delete_pattern_calls_make_pattern"
+    "test_delete_pattern_calls_scan_iter_with_count_if_itersize_given"
+    "test_delete_pattern_calls_scan_iter_with_count_if_itersize_given"
+    "test_delete_pattern_calls_scan_iter"
+    "test_delete_pattern_calls_delete_for_given_keys"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/django-rq/default.nix b/pkgs/development/python-modules/django-rq/default.nix
index 18a6808a21ef7..ebdbd916ef1d3 100644
--- a/pkgs/development/python-modules/django-rq/default.nix
+++ b/pkgs/development/python-modules/django-rq/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "django-rq";
-  version = "2.4.1";
+  version = "2.5.1";
   format = "setuptools";
   disabled = isPy27;
 
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "rq";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1dy3mhj60xlqy7f65zh80sqn6qywsp697r6yy3jcl5wmwizzhybr";
+    sha256 = "sha256-4oc3zco/j4lnAiooW87rU6xkzGSGCj3fIyikjiKQNZk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/django-sites/default.nix b/pkgs/development/python-modules/django-sites/default.nix
index 468f7e738038b..08641aa935f90 100644
--- a/pkgs/development/python-modules/django-sites/default.nix
+++ b/pkgs/development/python-modules/django-sites/default.nix
@@ -1,31 +1,40 @@
-{ lib, buildPythonPackage, fetchPypi, django }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, django
+, django-jinja
+, python
+}:
 
 buildPythonPackage rec {
   pname = "django-sites";
-  version = "0.10";
+  version = "0.11";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "f6f9ae55a05288a95567f5844222052b6b997819e174f4bde4e7c23763be6fc3";
+  src = fetchFromGitHub {
+    owner = "niwinz";
+    repo = "django-sites";
+    rev = version;
+    sha256 = "sha256-MQtQC+9DyS1ICXXovbqPpkKIQ5wpuJDgq3Lcd/1kORU=";
   };
-  # LICENSE file appears to be missing from pypi package, but expected by the installer
-  # https://github.com/niwinz/django-sites/issues/11
-  postPatch = ''
-    touch LICENSE
-  '';
 
-  propagatedBuildInputs = [ django ];
+  propagatedBuildInputs = [
+    django
+  ];
+
+  checkInputs = [
+    django-jinja
+  ];
+
+  checkPhase = ''
+    runHook preCheck
 
-  # required files for test don't seem to be included in pypi package, full source for 0.10
-  # version doesn't appear to be present on github
-  # https://github.com/niwinz/django-sites/issues/9
-  doCheck = false;
+    ${python.interpreter} runtests.py
+
+    runHook postCheck
+  '';
 
   meta = {
-    description = ''
-      Alternative implementation of django "sites" framework
-      based on settings instead of models.
-    '';
+    description = "Alternative implementation of django sites framework";
     homepage = "https://github.com/niwinz/django-sites";
     license = lib.licenses.bsd3;
   };
diff --git a/pkgs/development/python-modules/django-statici18n/default.nix b/pkgs/development/python-modules/django-statici18n/default.nix
index 95b860a3331de..78c807903c4ef 100644
--- a/pkgs/development/python-modules/django-statici18n/default.nix
+++ b/pkgs/development/python-modules/django-statici18n/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "django-statici18n";
-  version = "2.0.1";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0cqwfirzjbanibq3mfz9lcwqnc8655zpysf9hk9g3lbwj2m478sp";
+    sha256 = "dbcdac190d93e0b4eabcab8875c8eb68795eceb442f926843ec5cbe1432fe628";
   };
 
   propagatedBuildInputs = [ django django_appconf ];
diff --git a/pkgs/development/python-modules/django_compressor/default.nix b/pkgs/development/python-modules/django_compressor/default.nix
index 2e58047d8a9cb..a8204eab5fad2 100644
--- a/pkgs/development/python-modules/django_compressor/default.nix
+++ b/pkgs/development/python-modules/django_compressor/default.nix
@@ -1,16 +1,18 @@
 { lib, buildPythonPackage, fetchPypi,
   rcssmin, rjsmin, django_appconf }:
+
 buildPythonPackage rec {
     pname = "django_compressor";
-    version = "2.4.1";
+    version = "3.1";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "3358077605c146fdcca5f9eaffb50aa5dbe15f238f8854679115ebf31c0415e0";
+      sha256 = "c4a87bf65f9a534cfaf1c321a000a229c24e50c6d62ba6ab089482db42e819d9";
     };
     postPatch = ''
-      substituteInPlace setup.py --replace 'rcssmin == 1.0.6' 'rcssmin' \
-        --replace 'rjsmin == 1.0.12' 'rjsmin'
+      substituteInPlace setup.py \
+        --replace 'rcssmin == 1.0.6' 'rcssmin' \
+        --replace 'rjsmin == 1.1.0' 'rjsmin'
     '';
 
     # requires django-sekizai, which we don't have packaged yet
diff --git a/pkgs/development/python-modules/django_reversion/default.nix b/pkgs/development/python-modules/django_reversion/default.nix
index 348228a8c0281..97836b247a33d 100644
--- a/pkgs/development/python-modules/django_reversion/default.nix
+++ b/pkgs/development/python-modules/django_reversion/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "django-reversion";
-  version = "4.0.0";
+  version = "4.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ad6d714b4b9b824e22b88d47201cc0f74b5c4294c8d4e1f8d7ac7c3631ef3188";
+    sha256 = "6991f16e5d3a972912db3d56e3a714d10b07becd566ab87f85f2e9b671981339";
   };
 
   # tests assume the availability of a mysql/postgresql database
diff --git a/pkgs/development/python-modules/djangoql/default.nix b/pkgs/development/python-modules/djangoql/default.nix
index e0e83e0c0619e..facfc2fafcdbc 100644
--- a/pkgs/development/python-modules/djangoql/default.nix
+++ b/pkgs/development/python-modules/djangoql/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "djangoql";
-  version = "0.15.3";
+  version = "0.16.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e1a2f32573396335a8935dfc2afb29e34eff34babec1150927ff74fcd4bbdb9d";
+    sha256 = "23cea52eca76e605fa2f34b13ae8d2bf60240737ee9ed3f60c667a4f64d28adf";
   };
 
   propagatedBuildInputs = [ ply ];
diff --git a/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix b/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix
index 6c54f3ded292a..4c616bdeb2744 100644
--- a/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix
+++ b/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "djangorestframework-simplejwt";
-  version = "4.8.0";
+  version = "5.0.0";
 
   src = fetchPypi {
     pname = "djangorestframework_simplejwt";
     inherit version;
-    sha256 = "153c973c5c154baf566be431de8527c2bd62557fde7373ebcb0f02b73b28e07a";
+    sha256 = "30b10e7732395c44d21980f773214d2b9bdeadf2a6c6809cd1a7c9abe272873c";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dm-tree/default.nix b/pkgs/development/python-modules/dm-tree/default.nix
new file mode 100644
index 0000000000000..81eb101399ae7
--- /dev/null
+++ b/pkgs/development/python-modules/dm-tree/default.nix
@@ -0,0 +1,47 @@
+{ autoPatchelfHook
+, buildPythonPackage
+, fetchPypi
+, isPy39
+, lib
+, six
+, stdenv
+}:
+
+buildPythonPackage rec {
+  pname = "dm-tree";
+  version = "0.1.6";
+  format = "wheel";
+
+  # At the time of writing (8/19/21), there are releases for 3.6-3.9. Supporting
+  # all of them is a pain, so we focus on 3.9, the current nixpkgs python3
+  # version.
+  disabled = !isPy39;
+
+  src = fetchPypi {
+    inherit version format;
+    sha256 = "1f71dy5xa5ywa5chbdhpdf8k0w1v9cvpn3qyk8nnjm79j90la9c4";
+    pname = "dm_tree";
+    dist = "cp39";
+    python = "cp39";
+    abi = "cp39";
+    platform = "manylinux_2_24_x86_64";
+  };
+
+  # Prebuilt wheels are dynamically linked against things that nix can't find.
+  # Run `autoPatchelfHook` to automagically fix them.
+  nativeBuildInputs = [ autoPatchelfHook ];
+  # Dynamic link dependencies
+  buildInputs = [ stdenv.cc.cc ];
+
+  propagatedBuildInputs = [ six ];
+
+  pythonImportsCheck = [ "tree" ];
+
+  meta = with lib; {
+    description = "Tree is a library for working with nested data structures.";
+    homepage    = "https://github.com/deepmind/tree";
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ samuela ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/python-modules/doc8/default.nix b/pkgs/development/python-modules/doc8/default.nix
index a1010f96d62e0..dbfb857614e19 100644
--- a/pkgs/development/python-modules/doc8/default.nix
+++ b/pkgs/development/python-modules/doc8/default.nix
@@ -1,39 +1,52 @@
 { lib
 , buildPythonPackage
+, chardet
+, docutils
 , fetchPypi
 , pbr
-, docutils
-, six
-, chardet
-, stevedore
-, restructuredtext_lint
 , pygments
+, pytestCheckHook
+, pythonOlder
+, restructuredtext_lint
+, stevedore
 }:
 
 buildPythonPackage rec {
   pname = "doc8";
-  version = "0.9.1";
+  version = "0.10.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0e967db31ea10699667dd07790f98cf9d612ee6864df162c64e4954a8e30f90d";
+    sha256 = "376e50f4e70a1ae935416ddfcf93db35dd5d4cc0e557f2ec72f0667d0ace4548";
   };
 
-  buildInputs = [ pbr ];
+  buildInputs = [
+    pbr
+  ];
+
   propagatedBuildInputs = [
     docutils
-    six
     chardet
     stevedore
     restructuredtext_lint
     pygments
   ];
 
-  doCheck = false;
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "doc8"
+  ];
 
-  meta = {
+  meta = with lib; {
     description = "Style checker for Sphinx (or other) RST documentation";
-    homepage = "https://launchpad.net/doc8";
-    license = lib.licenses.asl20;
+    homepage = "https://github.com/pycqa/doc8";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/docstring-to-markdown/default.nix b/pkgs/development/python-modules/docstring-to-markdown/default.nix
index f4f2a36f5394a..432f77220adcd 100644
--- a/pkgs/development/python-modules/docstring-to-markdown/default.nix
+++ b/pkgs/development/python-modules/docstring-to-markdown/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "docstring-to-markdown";
-  version = "0.9";
+  version = "0.10";
 
   src = fetchFromGitHub {
     owner = "python-lsp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-XVTlSqqWmvnB5nvjvgGDJmg71KKTq2hHB4//QW7ugvA=";
+    sha256 = "0rflkbms94wkcypjcnz30bc4w4iww91h7sqq3j2b6ypzl4g48csa";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/dotmap/default.nix b/pkgs/development/python-modules/dotmap/default.nix
index e4f29b1a78af8..a820c1486eb89 100644
--- a/pkgs/development/python-modules/dotmap/default.nix
+++ b/pkgs/development/python-modules/dotmap/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "dotmap";
-  version = "1.3.25";
+  version = "1.3.26";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-wOJjGlMUjTYj2af8I8dg1LfehCL2u4gYuEfkYHKrTPA=";
+    sha256 = "cc87300f3a61d70f2bd18103ea2747dea846a2381a8321f43ce65cbd7afdfe3d";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/dropbox/default.nix b/pkgs/development/python-modules/dropbox/default.nix
index 7fc0cb3b12ba1..e43f7d7f2d1d8 100644
--- a/pkgs/development/python-modules/dropbox/default.nix
+++ b/pkgs/development/python-modules/dropbox/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "dropbox";
-  version = "11.23.0";
+  version = "11.25.0";
 
   src = fetchFromGitHub {
     owner = "dropbox";
     repo = "dropbox-sdk-python";
     rev = "v${version}";
-    sha256 = "1zrwr73dirmkbkcpy8v49hb52xffh0k9wp2603aysg9435w1rxvx";
+    sha256 = "1ln6m6wiym5608i26abs8a5nm4mnn7s3czhnpg9nyjyndnr7k0xj";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/dsmr-parser/default.nix b/pkgs/development/python-modules/dsmr-parser/default.nix
index 1f59c956560e3..b666e4c210f59 100644
--- a/pkgs/development/python-modules/dsmr-parser/default.nix
+++ b/pkgs/development/python-modules/dsmr-parser/default.nix
@@ -4,19 +4,23 @@
 , pyserial
 , pyserial-asyncio
 , pytestCheckHook
+, pythonOlder
 , pytz
 , tailer
 }:
 
 buildPythonPackage rec {
   pname = "dsmr-parser";
-  version = "0.30";
+  version = "0.31";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "ndokter";
     repo = "dsmr_parser";
     rev = "v${version}";
-    sha256 = "sha256-3RXku0L/XQFarECxY1LSs2TwSOlJAOiS6yEepHCGL5U=";
+    sha256 = "sha256-A+fyAAV62Dg28RDiivKEjrC1bCXzkuIvpATR+oUytRU=";
   };
 
   propagatedBuildInputs = [
@@ -30,7 +34,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "dsmr_parser" ];
+  pythonImportsCheck = [
+    "dsmr_parser"
+  ];
 
   meta = with lib; {
     description = "Python module to parse Dutch Smart Meter Requirements (DSMR)";
diff --git a/pkgs/development/python-modules/easy-thumbnails/default.nix b/pkgs/development/python-modules/easy-thumbnails/default.nix
index 53913f77d2b5d..e896e79908b6c 100644
--- a/pkgs/development/python-modules/easy-thumbnails/default.nix
+++ b/pkgs/development/python-modules/easy-thumbnails/default.nix
@@ -1,21 +1,44 @@
-{ lib, buildPythonPackage, fetchPypi,
-  django, pillow
+{ lib
+, buildPythonPackage
+, django
+, fetchPypi
+, pillow
+, pytestCheckHook
+, pythonOlder
+, reportlab
+, svglib
 }:
 
 buildPythonPackage rec {
   pname = "easy-thumbnails";
-  version = "2.7.2";
+  version = "2.8";
+  format = "setuptools";
 
-  meta = {
-    description = "Easy thumbnails for Django";
-    homepage = "https://github.com/SmileyChris/easy-thumbnails";
-    license = lib.licenses.bsd3;
-  };
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a7dd9cf97efaf70ba5d76484a962f08ba65b31f1681bc417257743650e9e8a8a";
+    sha256 = "fd2249d936671847fc54a2d6c8c87bcca8f803001967dd03bab6b8bcb7590825";
   };
 
-  propagatedBuildInputs = [ django pillow ];
+  propagatedBuildInputs = [
+    django
+    pillow
+    svglib
+    reportlab
+  ];
+
+  # Tests require a Django instance which is setup
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "easy_thumbnails"
+  ];
+
+  meta = with lib; {
+    description = "Easy thumbnails for Django";
+    homepage = "https://github.com/SmileyChris/easy-thumbnails";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ];
+  };
 }
diff --git a/pkgs/development/python-modules/ecs-logging/default.nix b/pkgs/development/python-modules/ecs-logging/default.nix
new file mode 100644
index 0000000000000..f82149ac86769
--- /dev/null
+++ b/pkgs/development/python-modules/ecs-logging/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, flit-core
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "ecs-logging";
+  version = "1.1.0";
+  format = "flit";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "elastic";
+    repo = "ecs-logging-python";
+    rev = version;
+    sha256 = "sha256-UcQh/+K2d4tiMZaz4IAZ2w/B88vEkHoq2LCPMNZ95Mo=";
+  };
+
+  nativeBuildInputs = [
+    flit-core
+  ];
+
+  # Circular dependency elastic-apm
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "ecs_logging"
+  ];
+
+  meta = with lib; {
+    description = "Logging formatters for the Elastic Common Schema (ECS) in Python";
+    homepage = "https://github.com/elastic/ecs-logging-python";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/edward/default.nix b/pkgs/development/python-modules/edward/default.nix
index ac2d5023cc970..05171c22d18e1 100644
--- a/pkgs/development/python-modules/edward/default.nix
+++ b/pkgs/development/python-modules/edward/default.nix
@@ -1,5 +1,5 @@
 { lib, buildPythonPackage, fetchPypi, isPy27, pythonAtLeast
-, Keras, numpy, scipy, six, tensorflow }:
+, keras, numpy, scipy, six, tensorflow }:
 
 buildPythonPackage rec {
   pname = "edward";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   # disabled for now due to Tensorflow trying to create files in $HOME:
   doCheck = false;
 
-  propagatedBuildInputs = [ Keras numpy scipy six tensorflow ];
+  propagatedBuildInputs = [ keras numpy scipy six tensorflow ];
 
   meta = with lib; {
     description = "Probabilistic programming language using Tensorflow";
diff --git a/pkgs/development/python-modules/eggdeps/default.nix b/pkgs/development/python-modules/eggdeps/default.nix
index 02c2c6444493b..9f17306b7bdc1 100644
--- a/pkgs/development/python-modules/eggdeps/default.nix
+++ b/pkgs/development/python-modules/eggdeps/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "tl-eggdeps";
-  version = "0.4";
+  version = "1.0";
 
   src = fetchPypi {
     inherit version;
     pname = "tl.eggdeps";
-    sha256 = "a99de5e4652865224daab09b2e2574a4f7c1d0d9a267048f9836aa914a2caf3a";
+    sha256 = "a094ed7961a3dd38fcaaa69cf7a58670038acdff186360166d9e3d964b7a7323";
   };
 
   propagatedBuildInputs = [ zope_interface zope_testing ];
diff --git a/pkgs/development/python-modules/einops/default.nix b/pkgs/development/python-modules/einops/default.nix
index 34510762abf71..a2de3a70971d5 100644
--- a/pkgs/development/python-modules/einops/default.nix
+++ b/pkgs/development/python-modules/einops/default.nix
@@ -10,6 +10,7 @@
 , pytorch
 , mxnet
 , tensorflow
+, keras
 }:
 
 buildPythonPackage rec {
@@ -35,6 +36,7 @@ buildPythonPackage rec {
     pytorch
     mxnet
     tensorflow
+    keras
   ];
 
   # No CUDA in sandbox
diff --git a/pkgs/development/python-modules/elastic-apm/default.nix b/pkgs/development/python-modules/elastic-apm/default.nix
new file mode 100644
index 0000000000000..bf78fec5e5d3c
--- /dev/null
+++ b/pkgs/development/python-modules/elastic-apm/default.nix
@@ -0,0 +1,90 @@
+{ lib
+, asynctest
+, aiohttp
+, blinker
+, buildPythonPackage
+, certifi
+, ecs-logging
+, fetchFromGitHub
+, httpx
+, jinja2
+, jsonschema
+, Logbook
+, mock
+, pytest-asyncio
+, pytest-bdd
+, pytest-localserver
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
+, sanic
+, sanic-testing
+, starlette
+, structlog
+, tornado
+, urllib3
+, webob
+}:
+
+buildPythonPackage rec {
+  pname = "elastic-apm";
+  version = "6.7.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "elastic";
+    repo = "apm-agent-python";
+    rev = "v${version}";
+    sha256 = "sha256-NyoFJ3HVxE3AdCCZCZrEk4dDiTIv9cGZYPHVre/PMO4=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    blinker
+    certifi
+    sanic
+    starlette
+    tornado
+    urllib3
+  ];
+
+  checkInputs = [
+    asynctest
+    ecs-logging
+    jinja2
+    jsonschema
+    Logbook
+    mock
+    httpx
+    pytest-asyncio
+    pytest-bdd
+    pytest-mock
+    pytest-localserver
+    sanic-testing
+    pytestCheckHook
+    structlog
+    webob
+  ];
+
+  disabledTests = [
+    "elasticapm_client"
+  ];
+
+  disabledTestPaths = [
+    # Exclude tornado tests
+    "tests/contrib/asyncio/tornado/tornado_tests.py"
+  ];
+
+  pythonImportsCheck = [
+    "elasticapm"
+  ];
+
+  meta = with lib; {
+    description = "Python agent for the Elastic APM";
+    homepage = "https://github.com/elastic/apm-agent-python";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/elasticsearch/default.nix b/pkgs/development/python-modules/elasticsearch/default.nix
index ae5d14aa48830..81bc807a13470 100644
--- a/pkgs/development/python-modules/elasticsearch/default.nix
+++ b/pkgs/development/python-modules/elasticsearch/default.nix
@@ -12,11 +12,11 @@ buildPythonPackage (rec {
   # there's a clear path forward. See
   # https://github.com/elastic/elasticsearch-py/issues/1639 for more
   # info.
-  version = "7.15.2";
+  version = "7.16.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "436f871848a5020bf9b47495812b229b59bd0c5d7e40adbd5e3c89896b311704";
+    sha256 = "c024ee2e7e2509c842c4e3c5e2b99a92ceecfde06d6dac2d32a19bf566c3e175";
   };
 
   # Check is disabled because running them destroy the content of the local cluster!
diff --git a/pkgs/development/python-modules/eliot/default.nix b/pkgs/development/python-modules/eliot/default.nix
index 152561b69ceec..b8f75776217ad 100644
--- a/pkgs/development/python-modules/eliot/default.nix
+++ b/pkgs/development/python-modules/eliot/default.nix
@@ -15,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "eliot";
-  version = "1.13.0";
+  version = "1.14.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5760194b308a7ab35514ae1b942d88e9f2359071556d82580383f09ca586fff7";
+    sha256 = "c2f099a3e8d5ecfc22745766e7cc664a48db64b6b89d986dff270491d8683149";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/elmax-api/default.nix b/pkgs/development/python-modules/elmax-api/default.nix
new file mode 100644
index 0000000000000..34d848d9a1954
--- /dev/null
+++ b/pkgs/development/python-modules/elmax-api/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, httpx
+, pyjwt
+, pythonOlder
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "elmax-api";
+  version = "0.0.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "albertogeniola";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-YUnLi8+ibUgWoMFMgZPSPbpr286bnWBefxjOV7JfCuY=";
+  };
+
+  propagatedBuildInputs = [
+    httpx
+    pyjwt
+    yarl
+  ];
+
+  # Test require network access
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "elmax_api"
+  ];
+
+  meta = with lib; {
+    description = "Python library for interacting with the Elmax cloud";
+    homepage = "https://github.com/albertogeniola/elmax-api";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/elmax/default.nix b/pkgs/development/python-modules/elmax/default.nix
index db1ff91ee0eb0..77bbd480e9ba8 100644
--- a/pkgs/development/python-modules/elmax/default.nix
+++ b/pkgs/development/python-modules/elmax/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "elmax";
-  version = "0.1.3";
+  version = "0.1.5";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "home-assistant-ecosystem";
     repo = "python-elmax";
     rev = version;
-    sha256 = "sha256-OiVPjWqQw1u0OL6/uYlT+FP2XDh7l3OZyVtQfycHICI=";
+    sha256 = "sha256-EcYEpYv+EwwEfW8Sy7aQjFAPpmsA6qVbmlwrPdxdnEw=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/pkgs/development/python-modules/emoji/default.nix b/pkgs/development/python-modules/emoji/default.nix
index f7cdca223078c..1497b412d7415 100644
--- a/pkgs/development/python-modules/emoji/default.nix
+++ b/pkgs/development/python-modules/emoji/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "emoji";
-  version = "1.6.1";
+  version = "1.6.2";
 
   src = fetchFromGitHub {
     owner = "carpedm20";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0x18l8jgbki9yqx994w97dagfaqrbxi3sy2l2101is1dfjr0kib6";
+    sha256 = "1g927w9l3j5mycg6pqa4vjk2lyy35sppfp8pbzb6mvca500001rk";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/empy/default.nix b/pkgs/development/python-modules/empy/default.nix
new file mode 100644
index 0000000000000..544506efb0d44
--- /dev/null
+++ b/pkgs/development/python-modules/empy/default.nix
@@ -0,0 +1,17 @@
+{ lib, fetchPypi, buildPythonPackage }:
+
+buildPythonPackage rec {
+  pname = "empy";
+  version = "3.3.4";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c6xJeFtgFHnfTqGKfHm8EwSop8NMArlHLPEgauiPAbM=";
+  };
+  pythonImportsCheck = [ "em" ];
+  meta = with lib; {
+    homepage = "http://www.alcyone.com/software/empy/";
+    description = "A templating system for Python.";
+    maintainers = with maintainers; [ nkalupahana ];
+    license = licenses.lgpl21Only;
+  };
+}
diff --git a/pkgs/development/python-modules/emv/default.nix b/pkgs/development/python-modules/emv/default.nix
index c636af4d8cbdd..d688e1e22e663 100644
--- a/pkgs/development/python-modules/emv/default.nix
+++ b/pkgs/development/python-modules/emv/default.nix
@@ -1,31 +1,29 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, click, enum-compat, pyscard, pycountry, terminaltables
-, pytestCheckHook, pythonOlder
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, click
+, pyscard
+, pycountry
+, terminaltables
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "emv";
-  version = "1.0.11";
+  version = "1.0.14";
+  format = "setuptools";
+
   disabled = pythonOlder "3.4";
 
   src = fetchFromGitHub {
     owner = "russss";
     repo = "python-emv";
     rev = "v${version}";
-    hash = "sha256:1715hcba3fdi0i5awnrjdjnk74p66sxm9349pd8bb717zrh4gpj7";
+    hash = "sha256-MnaeQZ0rA3i0CoUA6HgJQpwk5yo4rm9e+pc5XzRd1eg=";
   };
 
-  postPatch = ''
-    # argparse is part of the standard libary since python 2.7/3.2
-    sed -i '/argparse==1.4.0/d' setup.py
-
-    substituteInPlace setup.py \
-      --replace "click==7.1.2" "click" \
-      --replace "pyscard==2.0.0" "pyscard"
-  '';
-
   propagatedBuildInputs = [
-    enum-compat
     click
     pyscard
     pycountry
@@ -36,9 +34,21 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace '"enum-compat==0.0.3",' "" \
+      --replace '"argparse==1.4.0",' "" \
+      --replace "click==7.1.2" "click" \
+      --replace "pyscard==2.0.0" "pyscard"
+  '';
+
+  pythonImportsCheck = [
+    "emv"
+  ];
+
   meta = with lib; {
-    homepage = "https://github.com/russss/python-emv";
     description = "Implementation of the EMV chip-and-pin smartcard protocol";
+    homepage = "https://github.com/russss/python-emv";
     license = licenses.mit;
     maintainers = with maintainers; [ lukegb ];
   };
diff --git a/pkgs/development/python-modules/enturclient/default.nix b/pkgs/development/python-modules/enturclient/default.nix
index f98b38396efc5..07363a379b1fd 100644
--- a/pkgs/development/python-modules/enturclient/default.nix
+++ b/pkgs/development/python-modules/enturclient/default.nix
@@ -11,6 +11,7 @@ buildPythonPackage rec {
   pname = "enturclient";
   version = "0.2.2";
   disabled = pythonOlder "3.8";
+
   format = "pyproject";
 
   src = fetchFromGitHub {
@@ -29,10 +30,17 @@ buildPythonPackage rec {
     async-timeout
   ];
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'async_timeout = "^3.0.1"' 'async_timeout = ">=3.0.1"'
+  '';
+
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [ "enturclient" ];
+  pythonImportsCheck = [
+    "enturclient"
+  ];
 
   meta = with lib; {
     description = "Python library for interacting with the Entur.org API";
diff --git a/pkgs/development/python-modules/env-canada/default.nix b/pkgs/development/python-modules/env-canada/default.nix
index 587dcf1492314..f755d545598c8 100644
--- a/pkgs/development/python-modules/env-canada/default.nix
+++ b/pkgs/development/python-modules/env-canada/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "env-canada";
-  version = "0.5.17";
+  version = "0.5.18";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "michaeldavie";
     repo = "env_canada";
     rev = "v${version}";
-    sha256 = "sha256-viuBuyGzAUcfb4qSecZsDvoAU++FNhuwNJET/s0qyOI=";
+    sha256 = "1w2fclpmcb41k2a3226jk62hdclc8b18kxih2ads90r4yxgpxc8p";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/envoy-reader/default.nix b/pkgs/development/python-modules/envoy-reader/default.nix
index 0f2ca79d64119..a327c3f457d29 100644
--- a/pkgs/development/python-modules/envoy-reader/default.nix
+++ b/pkgs/development/python-modules/envoy-reader/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , envoy-utils
 , fetchFromGitHub
+, fetchpatch
 , httpx
 , pytest-asyncio
 , pytest-raises
@@ -12,6 +13,7 @@
 buildPythonPackage rec {
   pname = "envoy-reader";
   version = "0.20.0";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "jesserizzo";
@@ -37,7 +39,18 @@ buildPythonPackage rec {
       --replace "pytest-runner>=5.2" ""
   '';
 
-  pythonImportsCheck = [ "envoy_reader" ];
+  patches = [
+    # Support for later httpx, https://github.com/jesserizzo/envoy_reader/pull/82
+    (fetchpatch {
+      name = "support-later-httpx.patch";
+      url = "https://github.com/jesserizzo/envoy_reader/commit/6019a89419fe9c830ba839be7d39ec54725268b0.patch";
+      sha256 = "17vsrx13rskvh8swvjisb2dk6x1jdbjcm8ikkpidia35pa24h272";
+    })
+  ];
+
+  pythonImportsCheck = [
+    "envoy_reader"
+  ];
 
   meta = with lib; {
     description = "Python module to read from Enphase Envoy units";
diff --git a/pkgs/development/python-modules/ephem/default.nix b/pkgs/development/python-modules/ephem/default.nix
index 58c14699880e8..1e5db008dea9f 100644
--- a/pkgs/development/python-modules/ephem/default.nix
+++ b/pkgs/development/python-modules/ephem/default.nix
@@ -7,11 +7,12 @@
 
 buildPythonPackage rec {
   pname = "ephem";
-  version = "4.1";
+  version = "4.1.1";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c076794a511a34b5b91871c1cf6374dbc323ec69fca3f50eb718f20b171259d6";
+    sha256 = "sha256-26ngXHjOkQrnWgY1GlWSR5GRqNxXCsDNbRinfpgTiHM=";
   };
 
   checkInputs = [
@@ -24,7 +25,9 @@ buildPythonPackage rec {
     LC_ALL="en_US.UTF-8" pytest --pyargs ephem.tests -k "not JPLTest"
   '';
 
-  pythonImportsCheck = [ "ephem" ];
+  pythonImportsCheck = [
+    "ephem"
+  ];
 
   meta = with lib; {
     description = "Compute positions of the planets and stars";
diff --git a/pkgs/development/python-modules/esprima/default.nix b/pkgs/development/python-modules/esprima/default.nix
new file mode 100644
index 0000000000000..b32a098c12bc2
--- /dev/null
+++ b/pkgs/development/python-modules/esprima/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "esprima";
+  version = "4.0.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "Kronuz";
+    repo = "esprima-python";
+    rev = "v${version}";
+    sha256 = "WtkPCReXhxyr6pOzE9gsdIeBlLk+nSnbxkS3OowEaHo=";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    "test/__main__.py::TestEsprima"
+  ];
+
+  pythonImportsCheck = [
+    "esprima"
+  ];
+
+  meta = with lib; {
+    description = "Python parser for standard-compliant ECMAScript";
+    homepage = "https://github.com/Kronuz/esprima-python";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/eventlet/default.nix b/pkgs/development/python-modules/eventlet/default.nix
index 24639b98e64b9..038b66a8efed5 100644
--- a/pkgs/development/python-modules/eventlet/default.nix
+++ b/pkgs/development/python-modules/eventlet/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "eventlet";
-  version = "0.32.0";
+  version = "0.33.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2f0bb8ed0dc0ab21d683975d5d8ab3c054d588ce61def9faf7a465ee363e839b";
+    sha256 = "80144f489c1bb273a51b6f96ff9785a382d2866b9bab1f5bd748385019f4141f";
   };
 
   propagatedBuildInputs = [ dnspython greenlet pyopenssl six ]
diff --git a/pkgs/development/python-modules/exchangelib/default.nix b/pkgs/development/python-modules/exchangelib/default.nix
index d57b054350d70..6ab7495fcb303 100644
--- a/pkgs/development/python-modules/exchangelib/default.nix
+++ b/pkgs/development/python-modules/exchangelib/default.nix
@@ -27,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "exchangelib";
-  version = "4.6.1";
+  version = "4.6.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -36,7 +36,7 @@ buildPythonPackage rec {
     owner = "ecederstrand";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9MvxQe5VnR+UHB5DSn6EtExKTYsTvzZzCCaTTkCBQkU=";
+    sha256 = "1vax4xqjav6nr3kfkz390ism3cs69dxnbx6sc0f9ci4mn3rxjwdy";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/exchangelib/skip_failing_test.patch b/pkgs/development/python-modules/exchangelib/skip_failing_test.patch
deleted file mode 100644
index 6c070acaf75a7..0000000000000
--- a/pkgs/development/python-modules/exchangelib/skip_failing_test.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- ./tests/__init__.py	1980-01-02 00:00:00.000000000 +0000
-+++ ./tests/__init__.py	1980-01-02 00:00:00.000000000 +0000
-@@ -301,6 +301,7 @@
-             self.assertEqual(id(base_p.thread_pool), id(p.thread_pool))
-             self.assertEqual(id(base_p._session_pool), id(p._session_pool))
- 
-+    @unittest.skip("no network connection inside the Nix sandbox")
-     def test_close(self):
-         proc = psutil.Process()
-         ip_addresses = {info[4][0] for info in socket.getaddrinfo(
-@@ -1257,6 +1258,7 @@
-         )
- 
- 
-+@unittest.skip("no network connection inside the Nix sandbox")
- class EWSTest(unittest.TestCase):
-     @classmethod
-     def setUpClass(cls):
diff --git a/pkgs/development/python-modules/factory_boy/default.nix b/pkgs/development/python-modules/factory_boy/default.nix
index 845e27dcc4476..1c612e2b57ecf 100644
--- a/pkgs/development/python-modules/factory_boy/default.nix
+++ b/pkgs/development/python-modules/factory_boy/default.nix
@@ -11,15 +11,19 @@
 }:
 
 buildPythonPackage rec {
-  pname = "factory_boy";
-  version = "3.2.0";
+  pname = "factory-boy";
+  version = "3.2.1";
+  format = "setuptools";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "0nsw2mdjk8sqds3qsix4cf19ws6i0fak79349pw2581ryc7w0720";
+    pname = "factory_boy";
+    inherit version;
+    sha256 = "sha256-qY0newwEfHXrbkq4UIp/gfsD0sshmG9ieRNUbveipV4=";
   };
 
-  propagatedBuildInputs = [ faker ];
+  propagatedBuildInputs = [
+    faker
+  ];
 
   checkInputs = [
     django
@@ -31,8 +35,13 @@ buildPythonPackage rec {
   ];
 
   # Checks for MongoDB requires an a running DB
-  disabledTests = [ "MongoEngineTestCase" ];
-  pythonImportsCheck = [ "factory" ];
+  disabledTests = [
+    "MongoEngineTestCase"
+  ];
+
+  pythonImportsCheck = [
+    "factory"
+  ];
 
   meta = with lib; {
     description = "Python package to create factories for complex objects";
diff --git a/pkgs/development/python-modules/fakeredis/default.nix b/pkgs/development/python-modules/fakeredis/default.nix
index 919c5a1aebd90..eff55de1d90ef 100644
--- a/pkgs/development/python-modules/fakeredis/default.nix
+++ b/pkgs/development/python-modules/fakeredis/default.nix
@@ -16,12 +16,14 @@
 
 buildPythonPackage rec {
   pname = "fakeredis";
-  version = "1.6.1";
+  version = "1.7.0";
+  format = "setuptools";
+
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-DQapOE+3nanyFkzpbjTrnU4upGIVBwgF6m/TwXRZC0c=";
+    sha256 = "sha256-yb0S5DAzbL0+GJ+uDpHrmZl7k+dtv91u1n+jUtxoTHE=";
   };
 
   propagatedBuildInputs = [
@@ -45,7 +47,9 @@ buildPythonPackage rec {
     "test/test_aioredis2.py"
   ];
 
-  pythonImportsCheck = [ "fakeredis" ];
+  pythonImportsCheck = [
+    "fakeredis"
+  ];
 
   meta = with lib; {
     description = "Fake implementation of Redis API";
diff --git a/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix b/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix
index 427c6d5c48d7d..544cb93bca442 100644
--- a/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix
+++ b/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "faraday-agent-parameters-types";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchPypi {
     pname = "faraday_agent_parameters_types";
     inherit version;
-    sha256 = "sha256-zH/ZkqL+kL3J1o7dhB4WYy2tbofFZm+kxEGn5+nRgjc=";
+    sha256 = "6155669db477c3330c0850814eabe231bbbadf9d2ec57b4f734994f76eaee0e7";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/faraday-plugins/default.nix b/pkgs/development/python-modules/faraday-plugins/default.nix
index 3aae84e2a2452..ebef907f91f5f 100644
--- a/pkgs/development/python-modules/faraday-plugins/default.nix
+++ b/pkgs/development/python-modules/faraday-plugins/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "faraday-plugins";
-  version = "1.5.7";
+  version = "1.5.9";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "infobyte";
     repo = "faraday_plugins";
     rev = "v${version}";
-    sha256 = "sha256-EW9p5r7RwWohNGwbITtDrEd1FYLtOwWXhVWFgPCG+Po=";
+    sha256 = "sha256-rU7BF1lXLgJYLed5FVKXroivxKpmmNE5woGCpAcKAwg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/fastcore/default.nix b/pkgs/development/python-modules/fastcore/default.nix
new file mode 100644
index 0000000000000..4783b8d33c787
--- /dev/null
+++ b/pkgs/development/python-modules/fastcore/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, packaging
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "fastcore";
+  version = "1.3.27";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "fastai";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-ogCNDh18FHP9KY0q0BIbsjPH5vGGioGh4FFUUb3c3Jc=";
+  };
+
+  propagatedBuildInputs = [
+    packaging
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "fastcore"
+  ];
+
+  meta = with lib; {
+    description = "Python module for Fast AI";
+    homepage = "https://github.com/fastai/fastcore";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/fastecdsa/default.nix b/pkgs/development/python-modules/fastecdsa/default.nix
index e7dbea075870d..e305f1e6d6587 100644
--- a/pkgs/development/python-modules/fastecdsa/default.nix
+++ b/pkgs/development/python-modules/fastecdsa/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "fastecdsa";
-  version = "2.2.2";
+  version = "2.2.3";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1eb6f3ac86ec483a10df62fcda1fb9a9d5d895a436871a8aa935dd20ccd82c6f";
+    sha256 = "269bdb0f618b38f8f6aec9d23d23db518046c3cee01a954fa6aa7322a1a7db8f";
   };
 
   buildInputs = [ gmp ];
diff --git a/pkgs/development/python-modules/fastnumbers/default.nix b/pkgs/development/python-modules/fastnumbers/default.nix
new file mode 100644
index 0000000000000..12c3175424d3f
--- /dev/null
+++ b/pkgs/development/python-modules/fastnumbers/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fastnumbers
+, fetchFromGitHub
+, hypothesis
+, pytestCheckHook
+, pythonOlder
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "fastnumbers";
+  version = "3.2.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "SethMMorton";
+    repo = pname;
+    rev = version;
+    sha256 = "1v9l5p90y6ygrs0qmgdzxfv2vp1mpfp65snkl9jp6kcy44g3alhp";
+  };
+
+  propagatedBuildInputs = [
+    typing-extensions
+  ];
+
+  checkInputs = [
+    hypothesis
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "fastnumbers"
+  ];
+
+  meta = with lib; {
+    description = "Python module for number conversion";
+    homepage = "https://github.com/SethMMorton/fastnumbers";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/fe25519/default.nix b/pkgs/development/python-modules/fe25519/default.nix
index 193d7aa60decd..05afcff5627ce 100644
--- a/pkgs/development/python-modules/fe25519/default.nix
+++ b/pkgs/development/python-modules/fe25519/default.nix
@@ -10,11 +10,12 @@
 
 buildPythonPackage rec {
   pname = "fe25519";
-  version = "1.0.0";
+  version = "1.1.0";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-947DIkmg56mAegEgLKq8iqETWf2SCvtmeDZi5cxVSJA=";
+    sha256 = "sha256-3WFpbt4bA7zPlK+mp5DJXdgk44MBimCbpIMhRjZ5p0o=";
   };
 
   propagatedBuildInputs = [
@@ -28,7 +29,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "fe25519" ];
+  pythonImportsCheck = [
+    "fe25519"
+  ];
 
   meta = with lib; {
     description = "Python field operations for Curve25519's prime";
diff --git a/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix b/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix
index 4b4d6bdd7fc25..add6f3f90c566 100644
--- a/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix
+++ b/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "ffmpeg-progress-yield";
-  version = "0.1.2";
+  version = "0.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "92ae36ff5cf38428bd3695629b5065d161c658fb0de0faf2c20cd7a99dac3820";
+    sha256 = "26696726cc70c019d1b76bb25e4823c93f0837ddc86bc4ea26c08165270b4d92";
   };
 
   propagatedBuildInputs = [ colorama tqdm ];
diff --git a/pkgs/development/python-modules/fields/default.nix b/pkgs/development/python-modules/fields/default.nix
new file mode 100644
index 0000000000000..35bf686b43530
--- /dev/null
+++ b/pkgs/development/python-modules/fields/default.nix
@@ -0,0 +1,20 @@
+{ buildPythonPackage, lib, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "fields";
+  version = "5.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-MdSqA9jUTjXfE8Qx3jUTaZfwR6kkpZfYT3vCCeG+Vyc=";
+  };
+
+  pythonImportsCheck = [ "fields" ];
+
+  meta = with lib; {
+    description = "Container class boilerplate killer";
+    homepage = "https://github.com/ionelmc/python-fields";
+    license = licenses.bsd2;
+    maintainers = [ maintainers.sheepforce ];
+  };
+}
diff --git a/pkgs/development/python-modules/filebrowser_safe/default.nix b/pkgs/development/python-modules/filebrowser_safe/default.nix
index 0cc1eae5ac20c..d571f76f92270 100644
--- a/pkgs/development/python-modules/filebrowser_safe/default.nix
+++ b/pkgs/development/python-modules/filebrowser_safe/default.nix
@@ -5,12 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.5.0";
+  version = "1.1.0";
   pname = "filebrowser_safe";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5dcd31dd79684025139b43841f6515af1da5a4bb0de15bc4d88003db1970648e";
+    sha256 = "14b6e0af9697f1d0f08508cc88bc8459273cd6453636cebe8504dccc80e926e4";
   };
 
   buildInputs = [ django ];
diff --git a/pkgs/development/python-modules/filelock/3.2.nix b/pkgs/development/python-modules/filelock/3.2.nix
index 3929361f7d8c1..401fdf582ffb1 100644
--- a/pkgs/development/python-modules/filelock/3.2.nix
+++ b/pkgs/development/python-modules/filelock/3.2.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib, buildPythonPackage, fetchPypi, setuptools-scm }:
 
 buildPythonPackage rec {
   pname = "filelock";
@@ -9,6 +9,10 @@ buildPythonPackage rec {
     sha256 = "1qry67zv2pmz8px6wdfbjqv75nmryy2ac7asqgs6q6db2722kpcw";
   };
 
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/benediktschmitt/py-filelock";
     description = "A platform independent file lock for Python";
diff --git a/pkgs/development/python-modules/filetype/default.nix b/pkgs/development/python-modules/filetype/default.nix
index 2ec3807476d1e..f89b4e690914f 100644
--- a/pkgs/development/python-modules/filetype/default.nix
+++ b/pkgs/development/python-modules/filetype/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "filetype";
-  version = "1.0.8";
+  version = "1.0.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "77df14879b73fd9711b8bd4f465dadf2ecdafff0eac3b22c0bdb0ccba68db316";
+    sha256 = "7124e1bc6a97ffc7c6bead5b8fb2e129baf312a9e60db5772bc27c741799d475";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/finitude/default.nix b/pkgs/development/python-modules/finitude/default.nix
new file mode 100644
index 0000000000000..eb4115914e101
--- /dev/null
+++ b/pkgs/development/python-modules/finitude/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, prometheus-client
+, pyserial
+, pythonOlder
+, pyyaml
+}:
+
+buildPythonPackage rec {
+  pname = "finitude";
+  version = "0.1.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "dulitz";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-yCI5UCRDhw+dJoTKyjmHbAGBm3by2AyxHKlqCywnLcs=";
+  };
+
+  propagatedBuildInputs = [
+    pyserial
+    prometheus-client
+    pyyaml
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "finitude"
+  ];
+
+  meta = with lib; {
+    description = "Python module to get data from ABCD bus (RS-485) used by Carrier Infinity and Bryant Evolution HVAC systems";
+    homepage = "https://github.com/dulitz/finitude";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/flake8-future-import/default.nix b/pkgs/development/python-modules/flake8-future-import/default.nix
index 41e9680937db6..699d37770a366 100644
--- a/pkgs/development/python-modules/flake8-future-import/default.nix
+++ b/pkgs/development/python-modules/flake8-future-import/default.nix
@@ -1,8 +1,10 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pythonAtLeast
 , isPy27
+, isPy38
+, isPy39
+, pythonAtLeast
 , flake8
 , six
 , python
@@ -20,8 +22,10 @@ buildPythonPackage rec {
     sha256 = "00q8n15xdnvqj454arn7xxksyrzh0dw996kjyy7g9rdk0rf8x82z";
   };
 
-  patches = lib.optionals (pythonAtLeast "3.8") [
-    ./fix-annotations-version.patch
+  patches = lib.optionals (pythonAtLeast "3.10") [
+    ./fix-annotations-version-11.patch
+  ] ++ lib.optionals (isPy38 || isPy39) [
+    ./fix-annotations-version-10.patch
   ] ++ lib.optionals isPy27 [
     # Upstream disables this test case naturally on python 3, but it also fails
     # inside NixPkgs for python 2. Since it's going to be deleted, we just skip it
diff --git a/pkgs/development/python-modules/flake8-future-import/fix-annotations-version.patch b/pkgs/development/python-modules/flake8-future-import/fix-annotations-version-10.patch
index 2e3062c8ac434..2e3062c8ac434 100644
--- a/pkgs/development/python-modules/flake8-future-import/fix-annotations-version.patch
+++ b/pkgs/development/python-modules/flake8-future-import/fix-annotations-version-10.patch
diff --git a/pkgs/development/python-modules/flake8-future-import/fix-annotations-version-11.patch b/pkgs/development/python-modules/flake8-future-import/fix-annotations-version-11.patch
new file mode 100644
index 0000000000000..7cbb5e562c333
--- /dev/null
+++ b/pkgs/development/python-modules/flake8-future-import/fix-annotations-version-11.patch
@@ -0,0 +1,13 @@
+diff --git a/flake8_future_import.py b/flake8_future_import.py
+index 92c3fda..27a1a66 100755
+--- a/flake8_future_import.py
++++ b/flake8_future_import.py
+@@ -76,7 +76,7 @@ UNICODE_LITERALS = Feature(4, 'unicode_literals', (2, 6, 0), (3, 0, 0))
+ GENERATOR_STOP = Feature(5, 'generator_stop', (3, 5, 0), (3, 7, 0))
+ NESTED_SCOPES = Feature(6, 'nested_scopes', (2, 1, 0), (2, 2, 0))
+ GENERATORS = Feature(7, 'generators', (2, 2, 0), (2, 3, 0))
+-ANNOTATIONS = Feature(8, 'annotations', (3, 7, 0), (4, 0, 0))
++ANNOTATIONS = Feature(8, 'annotations', (3, 7, 0), (3, 11, 0))
+ 
+ 
+ # Order important as it defines the error code
diff --git a/pkgs/development/python-modules/flake8-length/default.nix b/pkgs/development/python-modules/flake8-length/default.nix
index 7cb2f6b86c5d0..34e226bd4635c 100644
--- a/pkgs/development/python-modules/flake8-length/default.nix
+++ b/pkgs/development/python-modules/flake8-length/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "flake8-length";
-  version = "0.2.0";
+  version = "0.2.2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15frvccm1qx783jlx8fw811ks9jszln3agbb58lg4dhbmjaf2cxw";
+    sha256 = "3536fee1d2a19c01f56ebb909c4d81f686f8181091a9bc3ddf3a5621c464760a";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/flake8-polyfill/default.nix b/pkgs/development/python-modules/flake8-polyfill/default.nix
index 050a6d4f9c8a5..60ee3558d1d47 100644
--- a/pkgs/development/python-modules/flake8-polyfill/default.nix
+++ b/pkgs/development/python-modules/flake8-polyfill/default.nix
@@ -1,6 +1,12 @@
-{ lib, fetchPypi, buildPythonPackage
+{ lib
+, buildPythonPackage
+, fetchpatch
+, fetchPypi
 , flake8
-, mock, pep8, pytest }:
+, mock
+, pep8
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "flake8-polyfill";
@@ -11,12 +17,6 @@ buildPythonPackage rec {
     sha256 = "1nlf1mkqw856vi6782qcglqhaacb23khk9wkcgn55npnjxshhjz4";
   };
 
-  postPatch = ''
-    # Failed: [pytest] section in setup.cfg files is no longer supported, change to [tool:pytest] instead.
-    substituteInPlace setup.cfg \
-      --replace pytest 'tool:pytest'
-  '';
-
   propagatedBuildInputs = [
     flake8
   ];
@@ -24,13 +24,28 @@ buildPythonPackage rec {
   checkInputs = [
     mock
     pep8
-    pytest
+    pytestCheckHook
+  ];
+
+  patches = [
+    # Skip unnecessary tests on Flake8, https://github.com/PyCQA/pep8-naming/pull/181
+    (fetchpatch {
+      name = "skip-tests.patch";
+      url = "https://github.com/PyCQA/flake8-polyfill/commit/3cf414350e82ceb835ca2edbd5d5967d33e9ff35.patch";
+      sha256 = "mElZafodq8dF3wLO/LOqwFb7eLMsPLlEjNSu5AWqets=";
+    })
   ];
 
-  checkPhase = ''
-    pytest tests
+  postPatch = ''
+    # Failed: [pytest] section in setup.cfg files is no longer supported, change to [tool:pytest] instead.
+    substituteInPlace setup.cfg \
+      --replace pytest 'tool:pytest'
   '';
 
+  pythonImportsCheck = [
+    "flake8_polyfill"
+  ];
+
   meta = with lib; {
     homepage = "https://gitlab.com/pycqa/flake8-polyfill";
     description = "Polyfill package for Flake8 plugins";
diff --git a/pkgs/development/python-modules/flake8/default.nix b/pkgs/development/python-modules/flake8/default.nix
index e27be602d7a7d..c707cb3caaa1b 100644
--- a/pkgs/development/python-modules/flake8/default.nix
+++ b/pkgs/development/python-modules/flake8/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "flake8";
-  version = "3.9.2";
+  version = "4.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b";
+    sha256 = "03c7mnk34wfz7a0m5zq0273y94awz69fy5iww8alh4a4v96h6vl0";
   };
 
   postPatch = ''
@@ -51,6 +51,8 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabled = pythonOlder "3.6";
+
   meta = with lib; {
     description = "Flake8 is a wrapper around pyflakes, pycodestyle and mccabe.";
     homepage = "https://github.com/pycqa/flake8";
diff --git a/pkgs/development/python-modules/flask-appbuilder/default.nix b/pkgs/development/python-modules/flask-appbuilder/default.nix
index cf9924f528941..afb81cc103bc5 100644
--- a/pkgs/development/python-modules/flask-appbuilder/default.nix
+++ b/pkgs/development/python-modules/flask-appbuilder/default.nix
@@ -25,12 +25,12 @@
 
 buildPythonPackage rec {
   pname = "flask-appbuilder";
-  version = "3.3.3";
+  version = "3.4.1";
 
   src = fetchPypi {
     pname = "Flask-AppBuilder";
     inherit version;
-    sha256 = "sha256-yjb4dpcQt2se5GT+wodh4UC9LAF4JmYrdX89VIdkk0U=";
+    sha256 = "c0830935077c4d06d57237ca4791fcabfc682fe3e315c1c9444a2bd6f94e7514";
   };
 
   # See here: https://github.com/dpgaspar/Flask-AppBuilder/commit/7097a7b133f27c78d2b54d2a46e4a4c24478a066.patch
diff --git a/pkgs/development/python-modules/flask-httpauth/default.nix b/pkgs/development/python-modules/flask-httpauth/default.nix
index 988ae52aa0e46..e667e08b144ac 100644
--- a/pkgs/development/python-modules/flask-httpauth/default.nix
+++ b/pkgs/development/python-modules/flask-httpauth/default.nix
@@ -1,24 +1,23 @@
-{ lib, python, isPy3k, buildPythonPackage, fetchPypi, flask }:
+{ lib, python, buildPythonPackage, fetchPypi, pytestCheckHook, flask }:
 
 buildPythonPackage rec {
-  pname = "Flask-HTTPAuth";
-  version = "4.4.0";
+  pname = "flask-httpauth";
+  version = "4.5.0";
 
-  disabled = !isPy3k;
+  disabled = python.pythonOlder "3";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "0fl1if91hg2c92b6sic7h2vhxxvb06ri7wflmwp0pfiwbaisgamw";
+    pname = "Flask-HTTPAuth";
+    version = version;
+    sha256 = "0ada63rkcvwkakjyx4ay98fjzwx5h55br12ys40ghkc5lbyl0l1r";
   };
 
+  checkInputs = [ pytestCheckHook ];
+
   propagatedBuildInputs = [ flask ];
 
   pythonImportsCheck = [ "flask_httpauth" ];
 
-  checkPhase = ''
-    ${python.interpreter} -m unittest discover
-  '';
-
   meta = with lib; {
     description = "Extension that provides HTTP authentication for Flask routes";
     homepage = "https://github.com/miguelgrinberg/Flask-HTTPAuth";
diff --git a/pkgs/development/python-modules/flask-openid/default.nix b/pkgs/development/python-modules/flask-openid/default.nix
index a9a5ec9acc8b7..4ae75839dc9ab 100644
--- a/pkgs/development/python-modules/flask-openid/default.nix
+++ b/pkgs/development/python-modules/flask-openid/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "flask-openid";
-  version = "1.2.5";
+  version = "1.3.0";
   disable = !isPy3k;
 
   src = fetchPypi {
     pname = "Flask-OpenID";
     inherit version;
-    sha256 = "5a8ffe1c8c0ad1cc1f5030e1223ea27f8861ee0215a2a58a528cc61379e5ccab";
+    sha256 = "539289ed2d19af61ae38d8fe46aec9e4de2b56f9f8b46da0b98c0d387f1d975a";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/flask-session/default.nix b/pkgs/development/python-modules/flask-session/default.nix
new file mode 100644
index 0000000000000..a9433fe0b871e
--- /dev/null
+++ b/pkgs/development/python-modules/flask-session/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchPypi, buildPythonPackage, pytestCheckHook, flask, cachelib }:
+
+buildPythonPackage rec {
+  pname = "Flask-Session";
+  version = "0.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-ye1UMh+oxMoBMv/TNpWCdZ7aclL7SzvuSA5pDRukH0Y=";
+  };
+
+  propagatedBuildInputs = [ flask cachelib ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  # The rest of the tests require database servers and optional db connector dependencies
+  pytestFlagsArray = [ "-k" "'null_session or filesystem_session'" ];
+
+  pythonImportsCheck = [ "flask_session" ];
+
+  meta = with lib; {
+    description = "A Flask extension that adds support for server-side sessions";
+    homepage = "https://github.com/fengsp/flask-session";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ zhaofengli ];
+  };
+}
diff --git a/pkgs/development/python-modules/flux-led/default.nix b/pkgs/development/python-modules/flux-led/default.nix
index be3dab8bdfd86..9efe486bafa1c 100644
--- a/pkgs/development/python-modules/flux-led/default.nix
+++ b/pkgs/development/python-modules/flux-led/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "flux-led";
-  version = "0.24.25";
+  version = "0.27.20";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "Danielhiversen";
     repo = "flux_led";
     rev = version;
-    sha256 = "sha256-HhoqsdaqNKdKH63glYEl5mRBFImu6Nxw5gwF7JAJABk=";
+    sha256 = "sha256-bkVhM6Em0kyIhfSCFtotZR5Ob4i8IWBL1oSc+BTVFuw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/folium/default.nix b/pkgs/development/python-modules/folium/default.nix
index c0adaeaa55892..ff8c097d6ff32 100644
--- a/pkgs/development/python-modules/folium/default.nix
+++ b/pkgs/development/python-modules/folium/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "folium";
-  version = "0.12.0";
+  version = "0.12.1.post1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d45ace0a813ae65f202ce0356eb29c40a5e8fde071e4d6b5be0a89587ebaeab2";
+    sha256 = "e91e57d8298f3ccf4cce3c5e065bea6eb17033e3c5432b8a22214009c266b2ab";
   };
 
   disabled = pythonOlder "3.5";
diff --git a/pkgs/development/python-modules/fontparts/default.nix b/pkgs/development/python-modules/fontparts/default.nix
index 158806f1be868..9b9cc129c63bb 100644
--- a/pkgs/development/python-modules/fontparts/default.nix
+++ b/pkgs/development/python-modules/fontparts/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "fontParts";
-  version = "0.9.11";
+  version = "0.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "558a5f681fcf7ca0bb5a1c68917b5d9b61c77d517833a01ea1667773d13f4012";
+    sha256 = "794ada47e19ba41ef39b59719be312b127672bcb56bb7208dd3234d2bb3e8218";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix
index 407b72c953f1d..ec3acfc775d0f 100644
--- a/pkgs/development/python-modules/fonttools/default.nix
+++ b/pkgs/development/python-modules/fonttools/default.nix
@@ -4,68 +4,75 @@
 , pythonOlder
 , brotlipy
 , zopfli
-, fs
 , lxml
 , scipy
 , munkres
 , unicodedata2
 , sympy
-, matplotlib
 , reportlab
 , sphinx
-, pytest
-, pytest-randomly
+, pytestCheckHook
 , glibcLocales
 }:
 
 buildPythonPackage rec {
   pname = "fonttools";
-  version = "4.21.1";
+  version = "4.26.2";
+
+  # Bump to 3.7 when https://github.com/fonttools/fonttools/pull/2417 is merged
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner  = pname;
     repo   = pname;
     rev    = version;
-    sha256 = "1x9qrg6ppqhm5214ymwvn0r34qdz8pqvyxd0sj7rkp06wa757z2i";
+    sha256 = "1zp9idjkn4bn1a4pn8x64vi8j1ijdsd4qvgf1f70dfwqvw6ak1i6";
   };
 
   # all dependencies are optional, but
   # we run the checks with them
+
   checkInputs = [
-    pytest
-    pytest-randomly
-    glibcLocales
+    pytestCheckHook
     # etree extra
     lxml
-    # ufo extra
-    fs
     # woff extra
     brotlipy
     zopfli
-    # unicode extra
-    unicodedata2
     # interpolatable extra
     scipy
     munkres
     # symfont
     sympy
-    # varLib
-    matplotlib
     # pens
     reportlab
     sphinx
+  ] ++ lib.optionals (pythonOlder "3.9") [
+    # unicode extra
+    unicodedata2
   ];
 
   preCheck = ''
-    export LC_ALL="en_US.UTF-8"
+    # tests want to execute the "fonttools" executable from $PATH
+    export PATH="$out/bin:$PATH"
   '';
 
-  # avoid timing issues with timestamps in subset_test.py and ttx_test.py
-  checkPhase = ''
-    pytest Tests fontTools \
-      -k 'not ttcompile_timestamp_calcs and not recalc_timestamp'
-  '';
+  # Timestamp tests have timing issues probably related
+  # to our file timestamp normalization
+  disabledTests = [
+    "test_recalc_timestamp_ttf"
+    "test_recalc_timestamp_otf"
+    "test_ttcompile_timestamp_calcs"
+  ];
+
+  disabledTestPaths = [
+    # avoid test which depend on fs and matplotlib
+    # fs and matplotlib were removed to prevent strong cyclic dependencies
+    "Tests/misc/plistlib_test.py"
+    "Tests/pens"
+    "Tests/ufoLib"
+  ];
+
 
   meta = with lib; {
     homepage = "https://github.com/fonttools/fonttools";
diff --git a/pkgs/development/python-modules/formbox/default.nix b/pkgs/development/python-modules/formbox/default.nix
new file mode 100644
index 0000000000000..d099b7454544a
--- /dev/null
+++ b/pkgs/development/python-modules/formbox/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, pythonOlder, fetchFromSourcehut, bleach, markdown }:
+
+buildPythonPackage rec {
+  pname = "formbox";
+  version = "0.1.0";
+  format = "flit";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromSourcehut {
+    owner = "~cnx";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-6OzmYqUC3mmrAMeMExI4rdVGUoWrxRuBfjKFYbHUlgE=";
+  };
+
+  propagatedBuildInputs = [ bleach markdown ];
+  doCheck = false; # there's no test
+  pythonImportsCheck = [ "formbox" ];
+
+  meta = with lib; {
+    description = "A script to format mbox as HTML/XML";
+    homepage = "https://sr.ht/~cnx/formbox";
+    license = licenses.agpl3Plus;
+    maintainers = [ maintainers.McSinyx ];
+  };
+}
diff --git a/pkgs/development/python-modules/fountains/default.nix b/pkgs/development/python-modules/fountains/default.nix
index aec78779a7a48..ee9a22c58f2ec 100644
--- a/pkgs/development/python-modules/fountains/default.nix
+++ b/pkgs/development/python-modules/fountains/default.nix
@@ -6,21 +6,24 @@
 
 buildPythonPackage rec {
   pname = "fountains";
-  version = "1.1.1";
+  version = "1.2.0";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fbf4e2cb11d60d3bafca5bb7c01c254d08a5541ed7ddfe00ef975eb173fb75a4";
+    sha256 = "sha256-bea8EXw3b0CibhEREdY4FZouiiXP4y+UbbDXed7Ltwo=";
   };
 
   propagatedBuildInputs = [
     bitlist
   ];
 
-  # Project has no test
+  # Module has no test
   doCheck = false;
 
-  pythonImportsCheck = [ "fountains" ];
+  pythonImportsCheck = [
+    "fountains"
+  ];
 
   meta = with lib; {
     description = "Python library for generating and embedding data for unit testing";
diff --git a/pkgs/development/python-modules/fpyutils/default.nix b/pkgs/development/python-modules/fpyutils/default.nix
index 4933044285242..36064d33d76c1 100644
--- a/pkgs/development/python-modules/fpyutils/default.nix
+++ b/pkgs/development/python-modules/fpyutils/default.nix
@@ -9,14 +9,16 @@
 
 buildPythonPackage rec {
   pname = "fpyutils";
-  version = "2.0.1";
+  version = "2.1.0";
+  format = "setuptools";
+
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "frnmst";
     repo = pname;
     rev = version;
-    sha256 = "1dksx5ykm7f1bi16wg8kqqqlnc874k3vg9kfjbbbalv8w0g2g2am";
+    sha256 = "sha256-QO7g0wjlaboZwvA+JYL1ax7M8zzCc0hizBdaN2b1TCs=";
   };
 
   propagatedBuildInputs = [
@@ -28,14 +30,18 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [ "fpyutils/tests/*.py" ];
+  pytestFlagsArray = [
+    "fpyutils/tests/*.py"
+  ];
 
   disabledTests = [
     # Don't run test which requires bash
     "test_execute_command_live_output"
   ];
 
-  pythonImportsCheck = [ "fpyutils" ];
+  pythonImportsCheck = [
+    "fpyutils"
+  ];
 
   meta = with lib; {
     description = "Collection of useful non-standard Python functions";
diff --git a/pkgs/development/python-modules/freezegun/default.nix b/pkgs/development/python-modules/freezegun/default.nix
index 742506b6089da..2ffefa1a4e095 100644
--- a/pkgs/development/python-modules/freezegun/default.nix
+++ b/pkgs/development/python-modules/freezegun/default.nix
@@ -1,6 +1,8 @@
 { lib
 , buildPythonPackage
 , pythonOlder
+, pythonAtLeast
+, fetchpatch
 , fetchPypi
 , python-dateutil
 , pytestCheckHook
@@ -16,6 +18,14 @@ buildPythonPackage rec {
     sha256 = "177f9dd59861d871e27a484c3332f35a6e3f5d14626f2bf91be37891f18927f3";
   };
 
+  patches = lib.optionals (pythonAtLeast "3.10") [
+    # Staticmethods in 3.10+ are now callable, prevent freezegun to attempt to decorate them
+    (fetchpatch {
+      url = "https://github.com/spulec/freezegun/pull/397/commits/e63874ce75a74a1159390914045fe8e7955b24c4.patch";
+      sha256 = "sha256-FNABqVN5DFqVUR88lYzwbfsZj3xcB9/MvQtm+I2VjnI=";
+    })
+  ];
+
   propagatedBuildInputs = [ python-dateutil ];
   checkInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/frigidaire/default.nix b/pkgs/development/python-modules/frigidaire/default.nix
index fc268ba05a885..61082cb40904b 100644
--- a/pkgs/development/python-modules/frigidaire/default.nix
+++ b/pkgs/development/python-modules/frigidaire/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "frigidaire";
-  version = "0.17";
+  version = "0.18.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "bm1549";
     repo = pname;
     rev = version;
-    sha256 = "sha256-R3OjZyQMUDu8+QPe9y2j1SoWi1b7z/OYWY4wFXGG3zA=";
+    sha256 = "sha256-U2ixBtigY15RzMNIeUK71uNOndUepK2kE/CTFwl855w=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/frozendict/default.nix b/pkgs/development/python-modules/frozendict/default.nix
index e2ebc07ae31ba..02579d97d2879 100644
--- a/pkgs/development/python-modules/frozendict/default.nix
+++ b/pkgs/development/python-modules/frozendict/default.nix
@@ -8,16 +8,21 @@
 
 buildPythonPackage rec {
   pname = "frozendict";
-  version = "2.0.7";  # 2.0.6 breaks canonicaljson
+  version = "2.1.0";
   format = "setuptools";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a68f609d1af67da80b45519fdcfca2d60249c0a8c96e68279c1b6ddd92128204";
+    sha256 = "0189168749ddea8601afd648146c502533f93ae33840eb76cd71f694742623cd";
   };
 
+  postPatch = ''
+    # fixes build on non-x86_64 architectures
+    rm frozendict/src/3_9/cpython_src/Include/pyconfig.h
+  '';
+
   pythonImportsCheck = [
     "frozendict"
   ];
@@ -34,6 +39,10 @@ buildPythonPackage rec {
   disabledTests = [
     # TypeError: unsupported operand type(s) for |=: 'frozendict.frozendict' and 'dict'
     "test_union"
+    # non-standard assertions
+    "test_repr"
+    "test_format"
+    "test_str"
   ];
 
   disabledTestPaths = [
diff --git a/pkgs/development/python-modules/fs/default.nix b/pkgs/development/python-modules/fs/default.nix
index 88aba15544453..0ab3778f55cf4 100644
--- a/pkgs/development/python-modules/fs/default.nix
+++ b/pkgs/development/python-modules/fs/default.nix
@@ -20,14 +20,17 @@
 
 buildPythonPackage rec {
   pname = "fs";
-  version = "2.4.13";
+  version = "2.4.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "caab4dc1561d63c92f36ee78976f6a4a01381830d8420ce34a78d4f1bb1dc95f";
+    sha256 = "9555dc2bc58c58cac03478ac7e9f622d29fe2d20a4384c24c90ab50de2c7b36c";
   };
 
   buildInputs = [ glibcLocales ];
+
+  # strong cycle with paramaterized
+  doCheck = false;
   checkInputs = [ pyftpdlib mock psutil pytestCheckHook ];
   propagatedBuildInputs = [ six appdirs pytz ]
     ++ lib.optionals (!isPy3k) [ backports_os ]
diff --git a/pkgs/development/python-modules/funcparserlib/default.nix b/pkgs/development/python-modules/funcparserlib/default.nix
index 19e2dd146d205..3ace04b108d44 100644
--- a/pkgs/development/python-modules/funcparserlib/default.nix
+++ b/pkgs/development/python-modules/funcparserlib/default.nix
@@ -1,25 +1,47 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
+, fetchpatch
+, poetry-core
 , python
-, isPy3k
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "funcparserlib";
-  version = "0.3.6";
+  version = "1.0.0a0";
+  format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b7992eac1a3eb97b3d91faa342bfda0729e990bd8a43774c1592c091e563c91d";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "vlasovskikh";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-YfcboKjyc5ASzrp0duu2R6psf51MGZIeZ0owo5QNSnU=";
   };
 
-  checkPhase = ''
-    ${python.interpreter} -m unittest discover
-  '';
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  # Tests are Python 2.x only judging from SyntaxError
-  doCheck = !(isPy3k);
+  patches = [
+    # Support for poetry-core, https://github.com/vlasovskikh/funcparserlib/pull/73
+    (fetchpatch {
+      name = "support-poetry-core.patch";
+      url = "https://github.com/vlasovskikh/funcparserlib/commit/61ed558fc146b7a30879919325dfa8aae77be556.patch";
+      sha256 = "sha256-tqdR3r4/t7RWBYZeAabaN7oYf6VxkVVz006XICX9rYI=";
+    })
+  ];
+
+  pythonImportsCheck = [
+    "funcparserlib"
+  ];
 
   meta = with lib; {
     description = "Recursive descent parsing library based on functional combinators";
@@ -27,5 +49,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     platforms = platforms.unix;
   };
-
 }
diff --git a/pkgs/development/python-modules/funcy/default.nix b/pkgs/development/python-modules/funcy/default.nix
index 3bb16d64f1f3b..2a41d9955f347 100644
--- a/pkgs/development/python-modules/funcy/default.nix
+++ b/pkgs/development/python-modules/funcy/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "funcy";
-  version = "1.16";
+  version = "1.17";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2775409b7dc9106283f1224d97e6df5f2c02e7291c8caed72764f5a115dffb50";
+    sha256 = "40b9b9a88141ae6a174df1a95861f2b82f2fdc17669080788b73a3ed9370e968";
   };
 
   # No tests
diff --git a/pkgs/development/python-modules/future-fstrings/default.nix b/pkgs/development/python-modules/future-fstrings/default.nix
index ffb798e6487fb..c4ef6adaf455c 100644
--- a/pkgs/development/python-modules/future-fstrings/default.nix
+++ b/pkgs/development/python-modules/future-fstrings/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "future-fstrings";
-  version = "1.0.0";
+  version = "1.2.0";
 
   src = fetchPypi {
     inherit version;
     pname = "future_fstrings";
-    sha256 = "1pra33in6rinrcs5wvdb1rbxmx223j93ahdwhzwgf7wyfsnjda98";
+    sha256 = "6cf41cbe97c398ab5a81168ce0dbb8ad95862d3caf23c21e4430627b90844089";
   };
 
   # No tests included in Pypi archive
diff --git a/pkgs/development/python-modules/future-typing/default.nix b/pkgs/development/python-modules/future-typing/default.nix
new file mode 100644
index 0000000000000..61a87e02253da
--- /dev/null
+++ b/pkgs/development/python-modules/future-typing/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "future-typing";
+  version = "0.4.1";
+
+  src = fetchPypi {
+    pname = "future_typing";
+    inherit version;
+    sha256 = "65fdc5034a95db212790fee5e977fb0a2df8deb60dccf3bac17d6d2b1a9bbacd";
+  };
+
+  doCheck = false; # No tests in pypi source. Did not get tests from GitHub source to work.
+
+  pythonImportsCheck = [ "future_typing" ];
+
+  meta = with lib; {
+    description = "Use generic type hints and new union syntax `|` with python 3.6+";
+    homepage = "https://github.com/PrettyWood/future-typing";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kfollesdal ];
+  };
+}
diff --git a/pkgs/development/python-modules/gdown/default.nix b/pkgs/development/python-modules/gdown/default.nix
index 851f761287612..195a7e822d761 100644
--- a/pkgs/development/python-modules/gdown/default.nix
+++ b/pkgs/development/python-modules/gdown/default.nix
@@ -1,4 +1,5 @@
 { lib
+, beautifulsoup4
 , buildPythonApplication
 , fetchPypi
 , filelock
@@ -10,19 +11,31 @@
 
 buildPythonApplication rec {
   pname = "gdown";
-  version = "4.0.2";
+  version = "4.2.0";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-XSYc3mCsFW+x6aZFDNtUE9lHv9vPUvkdsqmbtFX7aQw=";
+    sha256 = "bd871c125242a9d3691aa74f360b6b5268a58c13991bb2405fdb3ec3028307dc";
   };
 
-  propagatedBuildInputs = [ filelock requests tqdm setuptools six ];
+  propagatedBuildInputs = [
+    beautifulsoup4
+    filelock
+    requests
+    tqdm
+    setuptools
+    six
+  ];
 
   checkPhase = ''
     $out/bin/gdown --help > /dev/null
   '';
 
+  pythonImportsCheck = [
+    "gdown"
+  ];
+
   meta = with lib; {
     description = "A CLI tool for downloading large files from Google Drive";
     homepage = "https://github.com/wkentaro/gdown";
diff --git a/pkgs/development/python-modules/ge25519/default.nix b/pkgs/development/python-modules/ge25519/default.nix
index 1a00108a8f8fb..5c9369e005b9e 100644
--- a/pkgs/development/python-modules/ge25519/default.nix
+++ b/pkgs/development/python-modules/ge25519/default.nix
@@ -11,11 +11,12 @@
 
 buildPythonPackage rec {
   pname = "ge25519";
-  version = "1.0.0";
+  version = "1.1.0";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-f7xvZ92zRO3GLSdfgEyhkWVwAFT2TvKHy6+iF+k43bI=";
+    sha256 = "sha256-0M9RF8tlEoLyduvY3RvltGAnsus3HF6FEy22b6w6aUs=";
   };
 
   propagatedBuildInputs = [
@@ -30,7 +31,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "ge25519" ];
+  pythonImportsCheck = [
+    "ge25519"
+  ];
 
   meta = with lib; {
     description = "Python implementation of Ed25519 group elements and operations";
diff --git a/pkgs/development/python-modules/gehomesdk/default.nix b/pkgs/development/python-modules/gehomesdk/default.nix
new file mode 100644
index 0000000000000..855b671d2b648
--- /dev/null
+++ b/pkgs/development/python-modules/gehomesdk/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, aiohttp
+, bidict
+, buildPythonPackage
+, fetchPypi
+, humanize
+, lxml
+, pythonOlder
+, requests
+, slixmpp
+, websockets
+}:
+
+buildPythonPackage rec {
+  pname = "gehomesdk";
+  version = "0.4.22";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-3HErbW9/YD8Jd6zr5O2hjoLZ9x5P/vzZLjqPmSm09EM=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    bidict
+    humanize
+    lxml
+    requests
+    slixmpp
+    websockets
+  ];
+
+  # Tests are not shipped and source is not tagged
+  # https://github.com/simbaja/gehome/issues/32
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "gehomesdk"
+  ];
+
+  meta = with lib; {
+    description = "Python SDK for GE smart appliances";
+    homepage = "https://github.com/simbaja/gehome";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/gekitchen/default.nix b/pkgs/development/python-modules/gekitchen/default.nix
new file mode 100644
index 0000000000000..8dc5bbdb3ae61
--- /dev/null
+++ b/pkgs/development/python-modules/gekitchen/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, aiohttp
+, bidict
+, buildPythonPackage
+, fetchFromGitHub
+, humanize
+, lxml
+, pytestCheckHook
+, pythonOlder
+, requests
+, slixmpp
+, websockets
+}:
+
+buildPythonPackage rec {
+  pname = "gekitchen";
+  version = "0.2.19";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "ajmarks";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-eKGundh7j9LqFd71bx86rNBVu2iAcgLN25JfFa39+VA=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    bidict
+    humanize
+    lxml
+    requests
+    slixmpp
+    websockets
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "gekitchen"
+  ];
+
+  meta = with lib; {
+    description = "Python SDK for GE smart appliances";
+    homepage = "https://github.com/ajmarks/gekitchen";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/genanki/default.nix b/pkgs/development/python-modules/genanki/default.nix
index 2c54bc4910b58..7b37be48f1002 100644
--- a/pkgs/development/python-modules/genanki/default.nix
+++ b/pkgs/development/python-modules/genanki/default.nix
@@ -1,37 +1,49 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k
-, cached-property, frozendict, pystache, pyyaml, pytest, pytest-runner
+{ lib
+, buildPythonPackage
+, cached-property
+, chevron
+, fetchPypi
+, frozendict
+, pystache
+, pythonOlder
+, pyyaml
 }:
 
 buildPythonPackage rec {
   pname = "genanki";
-  version = "0.11.0";
+  version = "0.12.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f2be87e3c2850bba21627d26728238f9655b448e564f8c70ab47caef558b63ef";
+    sha256 = "f787ac440ff37a3ef3389030e992e3527f000f7a69498f797033ccfad07ebe62";
   };
 
   propagatedBuildInputs = [
-    pytest-runner
     cached-property
+    chevron
     frozendict
     pystache
     pyyaml
   ];
 
-  checkInputs = [ pytest ];
-
-  disabled = !isPy3k;
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "'pytest-runner'," ""
+  '';
 
   # relies on upstream anki
   doCheck = false;
-  checkPhase = ''
-    py.test
-  '';
+
+  pythonImportsCheck = [
+    "genanki"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/kerrickstaley/genanki";
     description = "Generate Anki decks programmatically";
+    homepage = "https://github.com/kerrickstaley/genanki";
     license = licenses.mit;
     maintainers = with maintainers; [ teto ];
   };
diff --git a/pkgs/development/python-modules/geoalchemy2/default.nix b/pkgs/development/python-modules/geoalchemy2/default.nix
index 077523bdb482a..d32eea8cedbcf 100644
--- a/pkgs/development/python-modules/geoalchemy2/default.nix
+++ b/pkgs/development/python-modules/geoalchemy2/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "GeoAlchemy2";
-  version = "0.9.4";
+  version = "0.10.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b0e56d4a945bdc0f8fa9edd50ecc912889ea68e0e3558a19160dcb0d5b1b65fc";
+    sha256 = "d97f85a4ff84341c12b1d7a6fee5ab5e5e942271279684310bb2f507b6ee5c53";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/geoip2/default.nix b/pkgs/development/python-modules/geoip2/default.nix
index fcf2441b2e83f..2a626c9c9ea89 100644
--- a/pkgs/development/python-modules/geoip2/default.nix
+++ b/pkgs/development/python-modules/geoip2/default.nix
@@ -8,13 +8,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "4.4.0";
+  version = "4.5.0";
   pname = "geoip2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f150bed3190d543712a17467208388d31bd8ddb49b2226fba53db8aaedb8ba89";
+    sha256 = "b542252e87eb40adc3a2fc0f4e84b514c4c5e04ed46923a3a74d509f25f3103a";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/geventhttpclient/default.nix b/pkgs/development/python-modules/geventhttpclient/default.nix
index 0d5b46b4dd30d..7e30b8e83f490 100644
--- a/pkgs/development/python-modules/geventhttpclient/default.nix
+++ b/pkgs/development/python-modules/geventhttpclient/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "geventhttpclient";
-  version = "1.5.2";
+  version = "1.5.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f3c5884d62be75162426728e3d86788740b13e363b197ef592f1443dba240709";
+    sha256 = "d80ec9ff42b7219f33558185499d0b4365597fc55ff886207b45f5632e099780";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ghapi/default.nix b/pkgs/development/python-modules/ghapi/default.nix
new file mode 100644
index 0000000000000..428215eeee595
--- /dev/null
+++ b/pkgs/development/python-modules/ghapi/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, fastcore
+, packaging
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "ghapi";
+  version = "0.1.19";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "fastai";
+    repo = "ghapi";
+    rev = version;
+    sha256 = "sha256-UV2cfotRad9jg/X3pOysKJyMi4/XKt24kf6F4aw4vcI=";
+  };
+
+  propagatedBuildInputs = [
+    fastcore
+    packaging
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "ghapi"
+  ];
+
+  meta = with lib; {
+    description = "Python interface to GitHub's API";
+    homepage = "https://github.com/fastai/ghapi";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/ghp-import/default.nix b/pkgs/development/python-modules/ghp-import/default.nix
index 0d5506009a759..03aabc4ab6e27 100644
--- a/pkgs/development/python-modules/ghp-import/default.nix
+++ b/pkgs/development/python-modules/ghp-import/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "ghp-import";
-  version = "1.1.0";
+  version = "2.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wiqc4Qw3dT4miNFk12WnANrkuNefptsKLDEyuniBiU8=";
+    hash = "sha256-lHs3cfEb6FDIUsZLVhxgD93feUurNjBghUwe560F4HE=";
   };
 
   propagatedBuildInputs = [ python-dateutil ];
diff --git a/pkgs/development/python-modules/ghrepo-stats/default.nix b/pkgs/development/python-modules/ghrepo-stats/default.nix
new file mode 100644
index 0000000000000..0552dbbf62dc9
--- /dev/null
+++ b/pkgs/development/python-modules/ghrepo-stats/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, matplotlib
+, PyGithub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "ghrepo-stats";
+  version = "0.3.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "mrbean-bremen";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-W6RhVnMuOgB4GNxczx3UlSeq0RWIM7yISKEvpnrE9uk=";
+  };
+
+  propagatedBuildInputs = [
+    matplotlib
+    PyGithub
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "ghrepo_stats"
+  ];
+
+  meta = with lib; {
+    description = "Python module and CLI tool for GitHub repo statistics";
+    homepage = "https://github.com/mrbean-bremen/ghrepo-stats";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/gitdb/default.nix b/pkgs/development/python-modules/gitdb/default.nix
index a5fa115781461..0895270d6c9cc 100644
--- a/pkgs/development/python-modules/gitdb/default.nix
+++ b/pkgs/development/python-modules/gitdb/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "gitdb";
-  version = "4.0.7";
+  version = "4.0.9";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "96bf5c08b157a666fec41129e6d327235284cca4c81e92109260f353ba138005";
+    sha256 = "bac2fd45c0a1c9cf619e63a90d62bdc63892ef92387424b855792a6cabe789aa";
   };
 
   propagatedBuildInputs = [ smmap ];
diff --git a/pkgs/development/python-modules/github-to-sqlite/default.nix b/pkgs/development/python-modules/github-to-sqlite/default.nix
index 7853854ccd811..dbdc4be45900b 100644
--- a/pkgs/development/python-modules/github-to-sqlite/default.nix
+++ b/pkgs/development/python-modules/github-to-sqlite/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "github-to-sqlite";
-  version = "2.8.2";
+  version = "2.8.3";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "dogsheep";
     repo = pname;
     rev = version;
-    sha256 = "16mw429ppnhgsa98qs3fhprqvdpqbr5q1biq3ql8rsf38difdbl8";
+    sha256 = "sha256-4wkwtcChcR7XH421wa3dGdIPhwgeaTFk247zIRX98xo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/glances-api/default.nix b/pkgs/development/python-modules/glances-api/default.nix
index 1ec6ce3342002..e9d68685a3f19 100644
--- a/pkgs/development/python-modules/glances-api/default.nix
+++ b/pkgs/development/python-modules/glances-api/default.nix
@@ -1,29 +1,50 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, aiohttp
-, async-timeout
+, httpx
+, poetry-core
+, pytest-asyncio
+, pytest-httpx
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "glances-api";
-  version = "0.2.1";
+  version = "0.3.2";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "home-assistant-ecosystem";
     repo = "python-glances-api";
     rev = version;
-    sha256 = "sha256-mbkZZg2fmus4kOXFxHE/UV/nxemFAsoEZu8IUa7SPsg=";
+    sha256 = "sha256-zVK63SI8ZeVrY2iEEkgp8pq6RDheKeApb9/RWgZCKGI=";
   };
 
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   propagatedBuildInputs = [
-    aiohttp
-    async-timeout
+    httpx
   ];
 
-  # no tests are present
-  doCheck = false;
-  pythonImportsCheck = [ "glances_api" ];
+  checkInputs = [
+    pytest-asyncio
+    pytest-httpx
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'httpx = ">=0.20,<1"' 'httpx = ">=0.19,<1"'
+  '';
+
+  pythonImportsCheck = [
+    "glances_api"
+  ];
 
   meta = with lib; {
     description = "Python API for interacting with Glances";
diff --git a/pkgs/development/python-modules/glean-parser/default.nix b/pkgs/development/python-modules/glean-parser/default.nix
new file mode 100644
index 0000000000000..8a774e660751d
--- /dev/null
+++ b/pkgs/development/python-modules/glean-parser/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
+# build inputs
+, appdirs
+, click
+, diskcache
+, jinja2
+, jsonschema
+, pyyaml
+, yamllint
+}:
+
+buildPythonPackage rec {
+  pname = "glean_parser";
+  version = "4.3.1";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-wZSro1pX/50TlSfFMh71JlmXlJlONVutTDFL06tkw+s=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py --replace "pytest-runner" ""
+  '';
+
+  propagatedBuildInputs = [
+    appdirs
+    click
+    diskcache
+    jinja2
+    jsonschema
+    pyyaml
+    yamllint
+  ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+  disabledTests = [
+    # https://bugzilla.mozilla.org/show_bug.cgi?id=1741668
+    "test_validate_ping"
+  ];
+
+  pythonImportsCheck = [ "glean_parser" ];
+
+  meta = with lib; {
+    description = "Tools for parsing the metadata for Mozilla's glean telemetry SDK";
+    homepage = "https://github.com/mozilla/glean_parser";
+    license = licenses.mpl20;
+    maintainers = [ maintainers.kvark ];
+  };
+}
diff --git a/pkgs/development/python-modules/glean-sdk/default.nix b/pkgs/development/python-modules/glean-sdk/default.nix
new file mode 100644
index 0000000000000..e729d927cdaef
--- /dev/null
+++ b/pkgs/development/python-modules/glean-sdk/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, rustPlatform
+, rustc
+, cargo
+, setuptools-rust
+# build inputs
+, cffi
+, glean-parser
+}:
+
+buildPythonPackage rec {
+  pname = "glean-sdk";
+  version = "42.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-X2p6KQnEB6ZHdCHGFVEoEMiI+0R2vfGqel+jFKTcx74=";
+  };
+
+  patches = [
+    # Fix the environment for spawned process
+    # https://github.com/mozilla/glean/pull/1542
+    ./fix-spawned-process-environment.patch
+  ];
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    sha256 = "sha256-/+rKGPYTLovgjTGL2F/pWzlUy1tY207yuJz3Xdhm1hg=";
+  };
+
+  nativeBuildInputs = [
+    rustc
+    cargo
+    setuptools-rust
+    rustPlatform.cargoSetupHook
+  ];
+  propagatedBuildInputs = [
+    cffi
+    glean-parser
+  ];
+
+  pythonImportsCheck = [ "glean" ];
+
+  meta = with lib; {
+    description = "Modern cross-platform telemetry client libraries and are a part of the Glean project";
+    homepage = "https://mozilla.github.io/glean/book/index.html";
+    license = licenses.mpl20;
+    maintainers = [ maintainers.kvark ];
+  };
+}
diff --git a/pkgs/development/python-modules/glean-sdk/fix-spawned-process-environment.patch b/pkgs/development/python-modules/glean-sdk/fix-spawned-process-environment.patch
new file mode 100644
index 0000000000000..f9a7b2723eba2
--- /dev/null
+++ b/pkgs/development/python-modules/glean-sdk/fix-spawned-process-environment.patch
@@ -0,0 +1,20 @@
+diff --git a/glean-core/python/glean/_process_dispatcher.py b/glean-core/python/glean/_process_dispatcher.py
+index 33a8b12796..a39b54a917 100644
+--- a/glean-core/python/glean/_process_dispatcher.py
++++ b/glean-core/python/glean/_process_dispatcher.py
+@@ -120,8 +120,14 @@ def dispatch(cls, func, args) -> Union[_SyncWorkWrapper, subprocess.Popen]:
+                     Path(".coveragerc").absolute()
+                 )
+ 
++            # Explicitly pass the contents of `sys.path` as `PYTHONPATH` to the
++            # subprocess so that there aren't any module search path
++            # differences.
++            python_path = ":".join(sys.path)[1:]
++
+             p = subprocess.Popen(
+-                [sys.executable, _process_dispatcher_helper.__file__, payload]
++                [sys.executable, _process_dispatcher_helper.__file__, payload],
++                env={"PYTHONPATH": python_path},
+             )
+ 
+             cls._last_process = p
diff --git a/pkgs/development/python-modules/glfw/default.nix b/pkgs/development/python-modules/glfw/default.nix
index 107f7afb9690e..ab42e8fffbfb3 100644
--- a/pkgs/development/python-modules/glfw/default.nix
+++ b/pkgs/development/python-modules/glfw/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "glfw";
-  version = "2.2.0";
+  version = "2.5.0";
 
   src = fetchFromGitHub {
     owner = "FlorianRhiem";
     repo = "pyGLFW";
     rev = "v${version}";
-    sha256 = "1ygcwnh0x07yi87wkxykw566g74vfi8n0w2rzypidhdss14x3pvf";
+    sha256 = "15kk0zhhja0yqah09wzpg6912zd5bjmk84ab1n5nwryicpg44hqk";
   };
 
   # Patch path to GLFW shared object
diff --git a/pkgs/development/python-modules/glymur/default.nix b/pkgs/development/python-modules/glymur/default.nix
index f14245865f591..40748f86954e1 100644
--- a/pkgs/development/python-modules/glymur/default.nix
+++ b/pkgs/development/python-modules/glymur/default.nix
@@ -10,6 +10,7 @@
 , mock
 , importlib-resources
 , isPy27
+, lxml
 }:
 
 buildPythonPackage rec {
@@ -31,6 +32,7 @@ buildPythonPackage rec {
     scikitimage
     procps
     pytestCheckHook
+    lxml
   ];
 
   postConfigure = ''
diff --git a/pkgs/development/python-modules/goodwe/default.nix b/pkgs/development/python-modules/goodwe/default.nix
index 185562844fb44..567ffef56e69a 100644
--- a/pkgs/development/python-modules/goodwe/default.nix
+++ b/pkgs/development/python-modules/goodwe/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "goodwe";
-  version = "0.2.7";
+  version = "0.2.9";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "marcelblijleven";
     repo = pname;
     rev = "v${version}";
-    sha256 = "6/JAp7zK60+om4l14sLn+pUki0Q/5XwCJSawOf1q2q0=";
+    sha256 = "0l895nyq2g7isvim2fx4ivdh3xzhyc10yzqvqnlg3fr56l5srfch";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/google-api-core/default.nix b/pkgs/development/python-modules/google-api-core/default.nix
index ae6f465b1bf2f..9d548b685efd8 100644
--- a/pkgs/development/python-modules/google-api-core/default.nix
+++ b/pkgs/development/python-modules/google-api-core/default.nix
@@ -4,40 +4,67 @@
 , google-auth
 , googleapis-common-protos
 , grpcio
+, grpcio-status
 , protobuf
 , proto-plus
 , requests
 , mock
 , pytest-asyncio
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "google-api-core";
-  version = "2.1.0";
+  version = "2.2.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-XsJ7lCs00EVZy/NnRDC7g/w9dOfTK4u9McRGbnF0C4M=";
+    sha256 = "97349cc18c2bb2415f64f1353a80273a289a61294ce3eb2f7ce682d251bdd997";
   };
 
   propagatedBuildInputs = [
     googleapis-common-protos
     google-auth
     grpcio
+    grpcio-status
     protobuf
     proto-plus
     requests
   ];
 
-  checkInputs = [ mock pytest-asyncio pytestCheckHook ];
+  checkInputs = [
+    mock
+    pytest-asyncio
+    pytestCheckHook
+  ];
 
   # prevent google directory from shadowing google imports
   preCheck = ''
     rm -r google
   '';
 
-  pythonImportsCheck = [ "google.api_core" ];
+  disabledTests = [
+    # Those grpc_helpers tests are failing
+    "test_wrap_unary_errors"
+    "test_wrap_stream_errors_raised"
+    "test_wrap_stream_errors_read"
+    "test_wrap_stream_errors_aiter"
+    "test_wrap_stream_errors_write"
+    "test_wrap_unary_errors"
+    "test___next___w_rpc_error"
+    "test_wrap_stream_errors_invocation"
+    "test_wrap_stream_errors_iterator_initialization"
+    "test_wrap_stream_errors_during_iteration"
+    "test_exception_with_error_code"
+  ];
+
+  pythonImportsCheck = [
+    "google.api_core"
+  ];
 
   meta = with lib; {
     description = "Core Library for Google Client Libraries";
diff --git a/pkgs/development/python-modules/google-api-python-client/default.nix b/pkgs/development/python-modules/google-api-python-client/default.nix
index b612a58c4f9ed..185c7579e4f71 100644
--- a/pkgs/development/python-modules/google-api-python-client/default.nix
+++ b/pkgs/development/python-modules/google-api-python-client/default.nix
@@ -1,24 +1,41 @@
-{ lib, buildPythonPackage, fetchPypi
-, google-auth, google-auth-httplib2, google-api-core
-, httplib2, six, uritemplate, oauth2client, setuptools }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, google-auth
+, google-auth-httplib2
+, google-api-core
+, httplib2
+, uritemplate
+, oauth2client
+, setuptools
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "google-api-python-client";
-  version = "2.25.0";
+  version = "2.31.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-dNgF7xC4sfWL04U53T0D+vEYj2TuPKQorAQtU59fVcc=";
+    sha256 = "3f64a5eee6fa03ab51806dccf48e342fda83fea60c290518c6a2dfdbf2de9efd";
   };
 
-  # No tests included in archive
-  doCheck = false;
-
   propagatedBuildInputs = [
-    google-auth google-auth-httplib2 google-api-core
-    httplib2 six uritemplate oauth2client setuptools
+    google-auth
+    google-auth-httplib2
+    google-api-core
+    httplib2
+    uritemplate
+    oauth2client
+    setuptools
   ];
 
+  # No tests included in archive
+  doCheck = false;
+
   pythonImportsCheck = [
     "googleapiclient"
   ];
diff --git a/pkgs/development/python-modules/google-auth/default.nix b/pkgs/development/python-modules/google-auth/default.nix
index 076d1e2da4f76..b51a5569a5958 100644
--- a/pkgs/development/python-modules/google-auth/default.nix
+++ b/pkgs/development/python-modules/google-auth/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname = "google-auth";
-  version = "2.3.0";
+  version = "2.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-KAD2360pxs7V+vnKDDjqi6Hr4lWbEMApvQIePeMwFic=";
+    sha256 = "d83570a664c10b97a1dc6f8df87e5fdfff012f48f62be131e449c20dfc32630e";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix b/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix
index a3ecf1a6ec4b8..05963856edcef 100644
--- a/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix
+++ b/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix
@@ -1,20 +1,25 @@
-{ lib, buildPythonPackage, fetchPypi, google-api-core }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, google-api-core
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "google-cloud-access-context-manager";
-  version = "0.1.8";
+  version = "0.1.9";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "29101f61fa0e07db6385a94da45aef8edb4efde0d2b700fbbf65164c045744a8";
+    sha256 = "249a1c1a858bb182b73749784457baacfcab8e7c13da5f3421109d5b8dace5b8";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "google-api-core[grpc] >= 1.26.0, < 2.0.0dev" "google-api-core[grpc] >= 1.26.0, < 2.0.1"
-  '';
-
-  propagatedBuildInputs = [ google-api-core ];
+  propagatedBuildInputs = [
+    google-api-core
+  ];
 
   # No tests in repo
   doCheck = false;
diff --git a/pkgs/development/python-modules/google-cloud-bigquery/default.nix b/pkgs/development/python-modules/google-cloud-bigquery/default.nix
index b96d61bf6724b..5daa88ed94923 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery/default.nix
@@ -18,11 +18,12 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery";
-  version = "2.28.1";
+  version = "2.30.1";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-DiNT2X5SktyM5URHtxL7nolJbnFLXKz8PVNmFNHEYdw=";
+    sha256 = "4e3b5e3dcc475d5a601d84872ac0b63e059540be2251b1c4165c51106d572855";
   };
 
   propagatedBuildInputs = [
@@ -59,6 +60,8 @@ buildPythonPackage rec {
     "test_list_rows_page_size"
     "test_list_rows_scalars"
     "test_list_rows_scalars_extreme"
+    "test_dry_run"
+    "test_session"
     # Mocking of _ensure_bqstorage_client fails
     "test_to_arrow_ensure_bqstorage_client_wo_bqstorage"
     # requires network
diff --git a/pkgs/development/python-modules/google-cloud-core/default.nix b/pkgs/development/python-modules/google-cloud-core/default.nix
index ef02d0671b058..0351bd51e2eee 100644
--- a/pkgs/development/python-modules/google-cloud-core/default.nix
+++ b/pkgs/development/python-modules/google-cloud-core/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-core";
-  version = "2.1.0";
+  version = "2.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-NaH18CqG4PouKMZp8NtKdtkoZxoo+7u0k6tZup0cuak=";
+    sha256 = "476d1f71ab78089e0638e0aaf34bfdc99bab4fce8f4170ba6321a5243d13c5c7";
   };
 
   propagatedBuildInputs = [ google-api-core ];
diff --git a/pkgs/development/python-modules/google-cloud-datacatalog/default.nix b/pkgs/development/python-modules/google-cloud-datacatalog/default.nix
index 72d8e7ec60abc..0e0d5982c6e2c 100644
--- a/pkgs/development/python-modules/google-cloud-datacatalog/default.nix
+++ b/pkgs/development/python-modules/google-cloud-datacatalog/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-datacatalog";
-  version = "3.6.0";
+  version = "3.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b4a3ba5bc93fb38008077335546daef9f5ea59a1b3accb98b0d07ca7fe6c6e37";
+    sha256 = "136fb153740d4154d8c9ef306284f7f899399de45eef2c9027ca3e56249c4e2d";
   };
 
   propagatedBuildInputs = [ libcst google-api-core grpc-google-iam-v1 proto-plus ];
diff --git a/pkgs/development/python-modules/google-cloud-dlp/default.nix b/pkgs/development/python-modules/google-cloud-dlp/default.nix
index 18e6179df4e2c..8773b09e59a98 100644
--- a/pkgs/development/python-modules/google-cloud-dlp/default.nix
+++ b/pkgs/development/python-modules/google-cloud-dlp/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-dlp";
-  version = "3.3.1";
+  version = "3.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c6cf11b2d5ddbb931ba11060d0d0daa9188994be3ec9122f9bf24fccae8c907a";
+    sha256 = "0b249fa87deb57f5c7107a7d5d303673590a6524a7f113fc95f87493f3328606";
   };
 
   propagatedBuildInputs = [ google-api-core libcst proto-plus pytz ];
diff --git a/pkgs/development/python-modules/google-cloud-monitoring/default.nix b/pkgs/development/python-modules/google-cloud-monitoring/default.nix
index cf2ff18eddba2..4872f7ac448a5 100644
--- a/pkgs/development/python-modules/google-cloud-monitoring/default.nix
+++ b/pkgs/development/python-modules/google-cloud-monitoring/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-monitoring";
-  version = "2.7.0";
+  version = "2.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "973f33f4da9598a30769e27510fc0cd4470f9081ba694c6c589bb8c0b86a0a6d";
+    sha256 = "2a25f7535f21cdeabfccb07fe4a75eae5a47bb36b82025537755b37d3376da46";
   };
 
   propagatedBuildInputs = [ libcst google-api-core proto-plus ];
diff --git a/pkgs/development/python-modules/google-cloud-pubsub/default.nix b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
index 28116c61f7096..67a8daf6f9974 100644
--- a/pkgs/development/python-modules/google-cloud-pubsub/default.nix
+++ b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
@@ -5,6 +5,7 @@
 , google-api-core
 , google-cloud-testutils
 , grpc-google-iam-v1
+, grpcio-status
 , libcst
 , mock
 , proto-plus
@@ -14,6 +15,7 @@
 buildPythonPackage rec {
   pname = "google-cloud-pubsub";
   version = "2.9.0";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
@@ -23,6 +25,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     grpc-google-iam-v1
     google-api-core
+    grpcio-status
     libcst
     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 4a83a96be332a..98c9f31632026 100644
--- a/pkgs/development/python-modules/google-cloud-resource-manager/default.nix
+++ b/pkgs/development/python-modules/google-cloud-resource-manager/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-resource-manager";
-  version = "1.3.2";
+  version = "1.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b99e11360668ed0c034c8cf3a34caf6fd4a52efaf62d54dd85407c3ad20b715c";
+    sha256 = "b13e0a614b4865287a4b5fc43f4810d3d48fef7e24d9bcf54cb4bd93bfbb2bf2";
   };
 
   propagatedBuildInputs = [ google-api-core google-cloud-core grpc-google-iam-v1 proto-plus ];
diff --git a/pkgs/development/python-modules/google-cloud-spanner/default.nix b/pkgs/development/python-modules/google-cloud-spanner/default.nix
index 50560585b4ee7..b08f8fb31ff9d 100644
--- a/pkgs/development/python-modules/google-cloud-spanner/default.nix
+++ b/pkgs/development/python-modules/google-cloud-spanner/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-spanner";
-  version = "3.11.1";
+  version = "3.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b993b4c68f11dd6fe0f66e0c437a71f9bed8d77f6bf1ddc4aad422ce3b330ecb";
+    sha256 = "8f1390c3776fcfce71e1ef024d9ccde52c16d1cd728bc587c24065d6e4d21933";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-storage/default.nix b/pkgs/development/python-modules/google-cloud-storage/default.nix
index 5ad4c2a31f66d..9d97437b81515 100644
--- a/pkgs/development/python-modules/google-cloud-storage/default.nix
+++ b/pkgs/development/python-modules/google-cloud-storage/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-storage";
-  version = "1.42.3";
+  version = "1.43.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-d1TU3KpFl1UUtATs4NortCkqy8Z8pVmmnhKhnVT82wY=";
+    sha256 = "f3b4f4be5c8a1b5727a8f7136c94d3bacdd4b7bf11f9553f51ae4c1d876529d3";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-testutils/default.nix b/pkgs/development/python-modules/google-cloud-testutils/default.nix
index 2c208511ee3f0..24775464a120c 100644
--- a/pkgs/development/python-modules/google-cloud-testutils/default.nix
+++ b/pkgs/development/python-modules/google-cloud-testutils/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-testutils";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3d79051b6ca170c2a4f159bf56ac3f66c1e5360486121e72c06fdaa3911154bf";
+    sha256 = "9c60ea86b28998935875b5aea0b89b0a3aac5e433e0039236f633c5d0ff5f8b8";
   };
 
   propagatedBuildInputs = [ click google-auth six ];
diff --git a/pkgs/development/python-modules/google-cloud-texttospeech/default.nix b/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
index 5e0de87f44b93..06c1eeb857f99 100644
--- a/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
+++ b/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-texttospeech";
-  version = "2.7.1";
+  version = "2.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e81beafa612f288fe74db55dd3a409f96cb01d2bac117bcd06a4e5b427d81476";
+    sha256 = "e8e272ab54be00285c8f9451081d833980c9fc2a1eff828448dfe315dfa61250";
   };
 
   propagatedBuildInputs = [ libcst google-api-core proto-plus ];
diff --git a/pkgs/development/python-modules/google-cloud-vision/default.nix b/pkgs/development/python-modules/google-cloud-vision/default.nix
index 77b85bad00c30..c67f910321a4f 100644
--- a/pkgs/development/python-modules/google-cloud-vision/default.nix
+++ b/pkgs/development/python-modules/google-cloud-vision/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-vision";
-  version = "2.6.2";
+  version = "2.6.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "542a300f4b79ed9574cdeb4eb47cf8899f0915041e8bf0058e8192a620087d30";
+    sha256 = "54b7f63c746ab95a504bd6b9b1d806192483976a3452a1a59a7faa0eaaa03491";
   };
 
   propagatedBuildInputs = [ libcst google-api-core proto-plus];
diff --git a/pkgs/development/python-modules/google-nest-sdm/default.nix b/pkgs/development/python-modules/google-nest-sdm/default.nix
new file mode 100644
index 0000000000000..4a35812a19da0
--- /dev/null
+++ b/pkgs/development/python-modules/google-nest-sdm/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, google-auth
+, google-auth-oauthlib
+, google-cloud-pubsub
+, pythonOlder
+, requests_oauthlib
+, pytest-aiohttp
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "google-nest-sdm";
+  version = "0.4.9";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "allenporter";
+    repo = "python-google-nest-sdm";
+    rev = version;
+    sha256 = "sha256-Y0p1Hu3hcJQzbHmwMaIC8l5W4GXuuX8LBLCOvQ1N0So=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    google-auth
+    google-auth-oauthlib
+    google-cloud-pubsub
+    requests_oauthlib
+  ];
+
+  checkInputs = [
+    pytest-aiohttp
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "google_nest_sdm"
+  ];
+
+  meta = with lib; {
+    description = "Python module for Google Nest Device Access using the Smart Device Management API";
+    homepage = "https://github.com/allenporter/python-google-nest-sdm";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/goveelights/default.nix b/pkgs/development/python-modules/goveelights/default.nix
new file mode 100644
index 0000000000000..484321cd7cf7a
--- /dev/null
+++ b/pkgs/development/python-modules/goveelights/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "goveelights";
+  version = "0.1.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-A7tfY+aFzhfruCZ43usj1/CsTejbPMzHM8SYrY/TU1s=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "goveelights"
+  ];
+
+  meta = with lib; {
+    description = "Python module for interacting with the Govee API";
+    homepage = "https://github.com/arcanearronax/govee_lights";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/gplaycli/default.nix b/pkgs/development/python-modules/gplaycli/default.nix
index 28f244bc354cf..11ff2d6fc1e6a 100644
--- a/pkgs/development/python-modules/gplaycli/default.nix
+++ b/pkgs/development/python-modules/gplaycli/default.nix
@@ -1,21 +1,21 @@
 { buildPythonPackage, lib, libffi, isPy3k, pyasn1, clint, ndg-httpsclient
-, protobuf, requests, args, gpapi, pyaxmlparser, fetchFromGitHub
+, protobuf, requests, args, matlink-gpapi, pyaxmlparser, setuptools, fetchFromGitHub
 }:
 
 buildPythonPackage rec {
   pname = "gplaycli";
-  version = "3.26";
+  version = "3.29";
 
   src = fetchFromGitHub {
     owner = "matlink";
     repo = "gplaycli";
     rev = version;
-    sha256 = "188237d40q35dp5xs7hg4ybhvsyxi0bsqx5dk4ws9007n596in5f";
+    sha256 = "10gc1wr259z5hxyk834wyyggvyh82agfq0zp711s4jf334inp45r";
   };
 
   disabled = !isPy3k;
 
-  propagatedBuildInputs = [ libffi pyasn1 clint ndg-httpsclient protobuf requests args gpapi pyaxmlparser ];
+  propagatedBuildInputs = [ libffi pyasn1 clint ndg-httpsclient protobuf requests args matlink-gpapi pyaxmlparser setuptools ];
 
   meta = with lib; {
     homepage = "https://github.com/matlink/gplaycli";
diff --git a/pkgs/development/python-modules/gradient-utils/default.nix b/pkgs/development/python-modules/gradient-utils/default.nix
index 171f87b5ddb22..b7424c44f6def 100644
--- a/pkgs/development/python-modules/gradient-utils/default.nix
+++ b/pkgs/development/python-modules/gradient-utils/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "gradient-utils";
-  version = "0.3.2";
+  version = "0.5.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "Paperspace";
     repo = pname;
     rev = "v${version}";
-    sha256 = "083hnkv19mhvdc8nx28f1nph50c903gxh9g9q8531abv0w8m0744";
+    sha256 = "19plkgwwfs6298vjplgsvhirixi3jbngq5y07x9c0fjxk39fa2dk";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/gradient/default.nix b/pkgs/development/python-modules/gradient/default.nix
index 556688323b1e2..735dc03b6df76 100644
--- a/pkgs/development/python-modules/gradient/default.nix
+++ b/pkgs/development/python-modules/gradient/default.nix
@@ -22,11 +22,11 @@
 
 buildPythonPackage rec {
   pname = "gradient";
-  version = "1.8.9";
+  version = "1.8.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c05913efe7fcc9f75c1fe84c157d2c2cf3ec0983e132d418c6e59fabc6361a1e";
+    sha256 = "0fa4a0553c28839e364d3aac27ec7292d26c1df27b8c54701d57eb7eda0b14f2";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/grammalecte/default.nix b/pkgs/development/python-modules/grammalecte/default.nix
index c6fcca9434d2b..9aa3c4ffd0317 100644
--- a/pkgs/development/python-modules/grammalecte/default.nix
+++ b/pkgs/development/python-modules/grammalecte/default.nix
@@ -7,23 +7,29 @@
 
 buildPythonPackage rec {
   pname = "grammalecte";
-  version = "0.6.5";
+  version = "2.1.1";
 
   src = fetchurl {
-    url = "http://www.dicollecte.org/grammalecte/zip/Grammalecte-fr-v${version}.zip";
-    sha256 = "11byjs3ggdhia5f4vyfqfvbbczsfqimll98h98g7hlsrm7vrifb0";
+    url = "https://grammalecte.net/grammalecte/zip/Grammalecte-fr-v${version}.zip";
+    sha256 = "076jv3ywdgqqzg92bfbagc7ypy08xjq5zn4vgna6j9350fkfqhzn";
   };
 
+  patchPhase = ''
+    runHook prePatch
+    substituteInPlace grammalecte-server.py --replace sys.version_info.major sys.version_info
+    runHook postPatch
+  '';
+
   propagatedBuildInputs = [ bottle ];
 
-  preBuild = "cd ..";
+  sourceRoot = ".";
 
   disabled = !isPy3k;
 
   meta = {
-    description = "Grammalecte is an open source grammar checker for the French language";
+    description = "An open source grammar and typographic corrector for the French language";
     homepage = "https://grammalecte.net";
-    license = with lib.licenses; [ gpl3 ];
+    license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ apeyroux ];
   };
 }
diff --git a/pkgs/development/python-modules/graph-tool/2.x.x.nix b/pkgs/development/python-modules/graph-tool/2.x.x.nix
index bcf1664b690e9..c8725dfd1167b 100644
--- a/pkgs/development/python-modules/graph-tool/2.x.x.nix
+++ b/pkgs/development/python-modules/graph-tool/2.x.x.nix
@@ -8,11 +8,11 @@
 buildPythonPackage rec {
   pname = "graph-tool";
   format = "other";
-  version = "2.32";
+  version = "2.43";
 
   src = fetchurl {
     url = "https://downloads.skewed.de/graph-tool/graph-tool-${version}.tar.bz2";
-    sha256 = "0jir6fhi09lf8xf56dcsdk2knx32vq8wrzh0d0zdp22n7baavq70";
+    hash = "sha256-XxvuCUIgz7JIaNsPr0f44v/Sb3fdcJmVhC5NnomNqGw=";
   };
 
   configureFlags = [
diff --git a/pkgs/development/python-modules/graphene/default.nix b/pkgs/development/python-modules/graphene/default.nix
index 38c11cc4c8bef..7a28bc08cda42 100644
--- a/pkgs/development/python-modules/graphene/default.nix
+++ b/pkgs/development/python-modules/graphene/default.nix
@@ -15,13 +15,13 @@
 
 buildPythonPackage rec {
   pname = "graphene";
-  version = "3.0.0b8";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "graphql-python";
     repo = "graphene";
     rev = "v${version}";
-    sha256 = "sha256-Pgln369s4qXdKqLxhX+AkgpDQm+MfSZ/OVmB1AaawHI=";
+    sha256 = "0qgp3nl6afyz6y27bw175hyqppx75pp1vqwl7nvlpwvgwyyc2mnl";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/graphql-core/default.nix b/pkgs/development/python-modules/graphql-core/default.nix
index 1909dd99fe0f7..8906af53ce193 100644
--- a/pkgs/development/python-modules/graphql-core/default.nix
+++ b/pkgs/development/python-modules/graphql-core/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pytest-benchmark
+, pytest-asyncio
 , pytestCheckHook
 , pythonOlder
 }:
@@ -9,6 +10,8 @@
 buildPythonPackage rec {
   pname = "graphql-core";
   version = "3.1.6";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
@@ -19,11 +22,14 @@ buildPythonPackage rec {
   };
 
   checkInputs = [
+    pytest-asyncio
     pytest-benchmark
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "graphql" ];
+  pythonImportsCheck = [
+    "graphql"
+  ];
 
   meta = with lib; {
     description = "Port of graphql-js to Python";
diff --git a/pkgs/development/python-modules/graphviz/default.nix b/pkgs/development/python-modules/graphviz/default.nix
index ac5c3700bb564..881dec6b932f9 100644
--- a/pkgs/development/python-modules/graphviz/default.nix
+++ b/pkgs/development/python-modules/graphviz/default.nix
@@ -8,13 +8,14 @@
 , makeFontsConf
 , freefont_ttf
 , mock
-, pytestCheckHook
+, pytest
 , pytest-mock
+, python
 }:
 
 buildPythonPackage rec {
   pname = "graphviz";
-  version = "0.18";
+  version = "0.19.1";
 
   disabled = pythonOlder "3.6";
 
@@ -23,7 +24,7 @@ buildPythonPackage rec {
     owner = "xflr6";
     repo = "graphviz";
     rev = version;
-    sha256 = "sha256-K98CwG+V+EFwzyawVjRwVhbX2FVfoX7dCAD5PXAWTq8=";
+    sha256 = "sha256-pE1lsx/r/BjvW5W2niDx/UeRXxx4kvCyHzAUAG3bdGc=";
   };
 
   patches = [
@@ -43,10 +44,18 @@ buildPythonPackage rec {
     fontDirectories = [ freefont_ttf ];
   };
 
-  checkInputs = [ mock pytestCheckHook pytest-mock ];
+  checkInputs = [
+    mock
+    pytest
+    pytest-mock
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+
+    HOME=$TMPDIR ${python.interpreter} run-tests.py
 
-  preCheck = ''
-    export HOME=$TMPDIR
+    runHook postCheck
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/graphviz/paths.patch b/pkgs/development/python-modules/graphviz/paths.patch
index 2808cb0bdb486..f53852544a2dd 100644
--- a/pkgs/development/python-modules/graphviz/paths.patch
+++ b/pkgs/development/python-modules/graphviz/paths.patch
@@ -1,36 +1,36 @@
 diff --git a/graphviz/backend/dot_command.py b/graphviz/backend/dot_command.py
-index d1903e6..6470d11 100644
+index 60654bd..2c62b47 100644
 --- a/graphviz/backend/dot_command.py
 +++ b/graphviz/backend/dot_command.py
-@@ -10,7 +10,7 @@ from . import parameters
- __all__ = ['command']
+@@ -9,7 +9,7 @@ from .. import parameters
+ 
+ __all__ = ['DOT_BINARY', 'command']
  
- #: :class:`pathlib.Path` of layout command (``Path('dot')``).
 -DOT_BINARY = pathlib.Path('dot')
 +DOT_BINARY = pathlib.Path('@graphviz@/bin/dot')
  
  
  def command(engine: str, format_: str, *,
 diff --git a/graphviz/backend/unflattening.py b/graphviz/backend/unflattening.py
-index 5ed25d6..8d2faf8 100644
+index a386b8c..883cdc6 100644
 --- a/graphviz/backend/unflattening.py
 +++ b/graphviz/backend/unflattening.py
 @@ -11,7 +11,7 @@ from . import execute
- __all__ = ['unflatten']
  
- #: :class:`pathlib.Path` of unflatten command (``Path('unflatten')``).
+ __all__ = ['UNFLATTEN_BINARY', 'unflatten']
+ 
 -UNFLATTEN_BINARY = pathlib.Path('unflatten')
 +UNFLATTEN_BINARY = pathlib.Path('@graphviz@/bin/unflatten')
  
  
- def unflatten(source: str,
+ @_tools.deprecate_positional_args(supported_number=1)
 diff --git a/graphviz/backend/viewing.py b/graphviz/backend/viewing.py
-index 6d4a4d1..2cc6cd8 100644
+index fde74a6..6f29b68 100644
 --- a/graphviz/backend/viewing.py
 +++ b/graphviz/backend/viewing.py
-@@ -54,7 +54,7 @@ def view_darwin(filepath, *, quiet: bool) -> None:
- @tools.attach(view, 'freebsd')
- def view_unixoid(filepath, *, quiet: bool) -> None:
+@@ -55,7 +55,7 @@ def view_darwin(filepath: typing.Union[os.PathLike, str], *,
+ def view_unixoid(filepath: typing.Union[os.PathLike, str], *,
+                  quiet: bool) -> None:
      """Open filepath in the user's preferred application (linux, freebsd)."""
 -    cmd = ['xdg-open', filepath]
 +    cmd = ['@xdgutils@/bin/xdg-open', filepath]
@@ -38,48 +38,38 @@ index 6d4a4d1..2cc6cd8 100644
      kwargs = {'stderr': subprocess.DEVNULL} if quiet else {}
      subprocess.Popen(cmd, **kwargs)
 diff --git a/tests/_common.py b/tests/_common.py
-index ab93461..7eaca89 100644
+index 87b4cbd..4188beb 100644
 --- a/tests/_common.py
 +++ b/tests/_common.py
-@@ -10,7 +10,7 @@ __all__ = ['EXPECTED_DOT_BINARY', 'EXPECTED_DEFAULT_ENCODING',
+@@ -14,9 +14,9 @@ __all__ = ['EXPECTED_DOT_BINARY', 'EXPECTED_UNFLATTEN_BINARY',
             'as_cwd',
             'check_startupinfo', 'StartupinfoMatcher']
  
--EXPECTED_DOT_BINARY = pathlib.Path('dot')
-+EXPECTED_DOT_BINARY = pathlib.Path('@graphviz@/bin/dot')
+-EXPECTED_DOT_BINARY = _compat.make_subprocess_arg(pathlib.Path('dot'))
++EXPECTED_DOT_BINARY = _compat.make_subprocess_arg(pathlib.Path('@graphviz@/bin/dot'))
+ 
+-EXPECTED_UNFLATTEN_BINARY = _compat.make_subprocess_arg(pathlib.Path('unflatten'))
++EXPECTED_UNFLATTEN_BINARY = _compat.make_subprocess_arg(pathlib.Path('@graphviz@/bin/unflatten'))
  
  EXPECTED_DEFAULT_ENCODING = 'utf-8'
  
 diff --git a/tests/backend/test_execute.py b/tests/backend/test_execute.py
-index 05d6525..78484cb 100644
+index 2cb853a..8093dfe 100644
 --- a/tests/backend/test_execute.py
 +++ b/tests/backend/test_execute.py
-@@ -57,6 +57,7 @@ def test_run_check_input_lines_mocked(mocker, sentinel, mock_popen,
-     mock_sys_stderr.flush.assert_called_once_with()
+@@ -15,6 +15,7 @@ def empty_path(monkeypatch):
+     monkeypatch.setenv('PATH', '')
  
  
 +@pytest.mark.skip(reason='empty $PATH has no effect')
  @pytest.mark.usefixtures('empty_path')
  @pytest.mark.parametrize(
      'func, args',
-diff --git a/tests/backend/test_unflattening.py b/tests/backend/test_unflattening.py
-index 033a4d2..7d52689 100644
---- a/tests/backend/test_unflattening.py
-+++ b/tests/backend/test_unflattening.py
-@@ -8,7 +8,7 @@ import graphviz
- 
- import _common
- 
--EXPECTED_UNFLATTEN_BINARY = pathlib.Path('unflatten')
-+EXPECTED_UNFLATTEN_BINARY = pathlib.Path('@graphviz@/bin/unflatten')
- 
- 
- @pytest.mark.exe
 diff --git a/tests/backend/test_viewing.py b/tests/backend/test_viewing.py
-index f5acddb..6b34884 100644
+index 59a23d5..f73f905 100644
 --- a/tests/backend/test_viewing.py
 +++ b/tests/backend/test_viewing.py
-@@ -25,6 +25,6 @@ def test_view(mocker, mock_platform, mock_popen, mock_startfile, quiet):
+@@ -26,6 +26,6 @@ def test_view_mocked(mocker, mock_platform, mock_popen, mock_startfile, quiet):
      if mock_platform == 'darwin':
          mock_popen.assert_called_once_with(['open', 'nonfilepath'], **kwargs)
      elif mock_platform in ('linux', 'freebsd'):
diff --git a/pkgs/development/python-modules/grappelli_safe/default.nix b/pkgs/development/python-modules/grappelli_safe/default.nix
index ae7ddb0c76b4f..8ef95b460ae27 100644
--- a/pkgs/development/python-modules/grappelli_safe/default.nix
+++ b/pkgs/development/python-modules/grappelli_safe/default.nix
@@ -4,12 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.5.2";
+  version = "1.0.0";
   pname = "grappelli_safe";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "35b7ccaf9acc54684c73aeefbeaddc63b8a16143bd981bd5b3ebef253def07df";
+    sha256 = "84c03ec5373341d980a76480d992389e286fbc50048e91bc2e5c876d02873cc5";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/graspologic/default.nix b/pkgs/development/python-modules/graspologic/default.nix
index 2096f22a249c9..10e7190d1fde7 100644
--- a/pkgs/development/python-modules/graspologic/default.nix
+++ b/pkgs/development/python-modules/graspologic/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "graspologic";
-  version = "0.3";
+  version = "0.3.1";
 
   disabled = isPy27;
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "microsoft";
     repo = "graspologic";
     rev = "v${version}";
-    sha256 = "0lab76qiryxvwl6zrcikhnxil1xywl0wkkm2vzi4v9mdzpa7w29r";
+    sha256 = "07dmfb1aplha01d22b41js7634dac4v28pv1l3bzssqhi4yyds7h";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/greeclimate/default.nix b/pkgs/development/python-modules/greeclimate/default.nix
index 2fd95e676c96d..5f72411e9e892 100644
--- a/pkgs/development/python-modules/greeclimate/default.nix
+++ b/pkgs/development/python-modules/greeclimate/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "greeclimate";
-  version = "0.12.5";
+  version = "1.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -18,8 +18,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "cmroche";
     repo = "greeclimate";
-    rev = version;
-    sha256 = "sha256-Lu6DxYrK3WgRC09QQXZLIgYSIaWydcEofNiA1PKP8Ek=";
+    rev = "v${version}";
+    hash = "sha256-O9SaEveZntb7VWL5k1WjTDK9fXhTWFIsVh5v7NKASnQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/green/default.nix b/pkgs/development/python-modules/green/default.nix
index 540d3027b94ed..e4a3401109b4a 100644
--- a/pkgs/development/python-modules/green/default.nix
+++ b/pkgs/development/python-modules/green/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , isPy3k
 , fetchPypi
+, django
 , colorama
 , coverage
 , unidecode
@@ -11,6 +12,7 @@
 buildPythonPackage rec {
   pname = "green";
   version = "3.3.0";
+  format = "setuptools";
 
   disabled = !isPy3k;
 
@@ -29,17 +31,28 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [
-    colorama coverage unidecode lxml
+    colorama
+    coverage
+    unidecode
+    lxml
   ];
 
   # let green run it's own test suite
   checkPhase = ''
-    $out/bin/green -tvvv green
+    $out/bin/green -tvvv \
+      green.test.test_version \
+      green.test.test_cmdline \
+      green.test.test_command
   '';
 
+  pythonImportsCheck = [
+    "green"
+  ];
+
   meta = with lib; {
     description = "Python test runner";
     homepage = "https://github.com/CleanCut/green";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/grpcio-status/default.nix b/pkgs/development/python-modules/grpcio-status/default.nix
new file mode 100644
index 0000000000000..b20426c0288fa
--- /dev/null
+++ b/pkgs/development/python-modules/grpcio-status/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, googleapis-common-protos
+, grpcio
+, protobuf
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "grpcio-status";
+  version = "1.43.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-IXWQBvNqf/v/GH1BkfQRjActiqn6aCOhGq14QqPGzNA=";
+  };
+
+  propagatedBuildInputs = [
+    googleapis-common-protos
+    grpcio
+    protobuf
+  ];
+
+  # Projec thas no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "grpc_status"
+  ];
+
+  meta = with lib; {
+    description = "GRPC Python status proto mapping";
+    homepage = "https://github.com/grpc/grpc/tree/master/src/python/grpcio_status";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/grpcio-tools/default.nix b/pkgs/development/python-modules/grpcio-tools/default.nix
index 64874e3144847..78d952f4cb973 100644
--- a/pkgs/development/python-modules/grpcio-tools/default.nix
+++ b/pkgs/development/python-modules/grpcio-tools/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "grpcio-tools";
-  version = "1.42.0";
+  version = "1.43.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d0a0daa82eb2c2fb8e12b82a458d1b7c5516fe1135551da92b1a02e2cba93422";
+    sha256 = "f42f1d713096808b1b0472dd2a3749b712d13f0092dab9442d9c096446e860b2";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/python-modules/gruut-ipa/default.nix b/pkgs/development/python-modules/gruut-ipa/default.nix
index 50140ef8308d9..4fa9d62b7ac87 100644
--- a/pkgs/development/python-modules/gruut-ipa/default.nix
+++ b/pkgs/development/python-modules/gruut-ipa/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "gruut-ipa";
-  version = "0.9.3";
+  version = "0.11.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "rhasspy";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-d/AbvgAD3GHXpwhqjT5Xt9q7Kix+eFMX4kW2BywZWX0=";
+    sha256 = "08n79v60jhkz5vhychsicjz4bhz8v4gb2djmz5dfdaivyr0h3bsf";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/gsd/default.nix b/pkgs/development/python-modules/gsd/default.nix
index e781c2127dab6..f4f3a7eb13fa9 100644
--- a/pkgs/development/python-modules/gsd/default.nix
+++ b/pkgs/development/python-modules/gsd/default.nix
@@ -4,7 +4,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.5.0";
+  version = "2.5.1";
   pname = "gsd";
   disabled = isPy27;
 
@@ -12,7 +12,7 @@ buildPythonPackage rec {
     owner = "glotzerlab";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0zw3ihbzkldwijz9phwivnzwylj30a2a4lknfbwm6vkx78rdrb1a";
+    sha256 = "00cy4lw7xnl2skfx7fg7cs1c8lrbaxvkym9j6zfi1dbvsdd0r103";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/gspread/default.nix b/pkgs/development/python-modules/gspread/default.nix
index df2615cd3bdf1..741882bdbd3de 100644
--- a/pkgs/development/python-modules/gspread/default.nix
+++ b/pkgs/development/python-modules/gspread/default.nix
@@ -7,12 +7,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "4.0.1";
+  version = "5.1.1";
   pname = "gspread";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "236a0f24e3724b49bae4cbd5144ed036b0ae6feaf5828ad033eb2824bf05e5be";
+    sha256 = "d9db8c43d552f541ea072d4727d1e955bc2368b095dd86c5429a845c9d8aed8f";
   };
 
   propagatedBuildInputs = [ requests google-auth google-auth-oauthlib ];
diff --git a/pkgs/development/python-modules/gssapi/default.nix b/pkgs/development/python-modules/gssapi/default.nix
index ce2ba8d3730fe..330172f56ceec 100644
--- a/pkgs/development/python-modules/gssapi/default.nix
+++ b/pkgs/development/python-modules/gssapi/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "gssapi";
-  version = "1.7.0";
+  version = "1.7.2";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "pythongssapi";
     repo = "python-${pname}";
     rev = "v${version}";
-    sha256 = "0ybijgsr4ra7x1w86sva4qljhm54ilm2zv4z0ry1r14kq9hmjfa4";
+    sha256 = "1xdcnm66b07m7chf04pp58p3khvy547hns1fw1xffd4n51kl42pp";
   };
 
   # It's used to locate headers
diff --git a/pkgs/development/python-modules/guessit/default.nix b/pkgs/development/python-modules/guessit/default.nix
index 0e8d07465989d..8b85a488512a4 100644
--- a/pkgs/development/python-modules/guessit/default.nix
+++ b/pkgs/development/python-modules/guessit/default.nix
@@ -1,31 +1,42 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytest-runner
 , python-dateutil
 , babelfish
 , rebulk
+, pythonOlder
+, importlib-resources
+, pytestCheckHook
+, pytest-mock
+, pytest-benchmark
+, pyyaml
 }:
 
 buildPythonPackage rec {
   pname = "guessit";
-  version = "3.3.1";
+  version = "3.4.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8305e0086129614a8820a508303f98f56c584811489499bcc54a7ea6f1b0391e";
+    sha256 = "731e96e6a1f3b065d05accc8c19f35d4485d880b77ab8dc4b262cc353df294f7";
   };
 
-  # Tests require more packages.
-  doCheck = false;
-  buildInputs = [ pytest-runner ];
   propagatedBuildInputs = [
-    python-dateutil babelfish rebulk
-  ];
+    rebulk
+    babelfish
+    python-dateutil
+  ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ];
+
+  checkInputs = [ pytestCheckHook pytest-mock pytest-benchmark pyyaml ];
+
+  pytestFlagsArray = [ "--benchmark-disable" ];
+
+  pythonImportsCheck = [ "guessit" ];
 
   meta = {
-    homepage = "https://pypi.python.org/pypi/guessit";
-    license = lib.licenses.lgpl3;
-    description = "A library for guessing information from video files";
+    homepage = "https://doc.guessit.io/";
+    description = "A Python library that extracts as much information as possible from a video filename";
+    changelog = "https://github.com/guessit-io/guessit/raw/v${version}/CHANGELOG.md";
+    license = lib.licenses.lgpl3Only;
   };
 }
diff --git a/pkgs/development/python-modules/gviz-api/default.nix b/pkgs/development/python-modules/gviz-api/default.nix
index 3ec69d686952f..04ba3b9520faf 100644
--- a/pkgs/development/python-modules/gviz-api/default.nix
+++ b/pkgs/development/python-modules/gviz-api/default.nix
@@ -4,12 +4,12 @@
 
 buildPythonPackage rec {
   pname = "gviz_api";
-  version = "1.9.0";
+  version = "1.10.0";
   format = "wheel";
 
   src = fetchPypi {
     inherit pname version format;
-    sha256 = "1yag559lpmwfdxpxn679a6ajifcbpgljr5n6k5b7rrj38k2xq7jg";
+    sha256 = "a05055fed8c279f34f4b496eace7648c7fe9c1b06851e8a36e748541f1adbb05";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/h5py/default.nix b/pkgs/development/python-modules/h5py/default.nix
index e555a41cfb0a7..701b8f78f83b8 100644
--- a/pkgs/development/python-modules/h5py/default.nix
+++ b/pkgs/development/python-modules/h5py/default.nix
@@ -8,13 +8,13 @@ let
   mpi = hdf5.mpi;
   mpiSupport = hdf5.mpiSupport;
 in buildPythonPackage rec {
-  version = "3.4.0";
+  version = "3.6.0";
   pname = "h5py";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ee1c683d91ab010d5e85cb61e8f9e7ee0d8eab545bf3dd50a9618f1d0e8f615e";
+    sha256 = "8752d2814a92aba4e2b2a5922d2782d0029102d99caaf3c201a566bc0b40db29";
   };
 
   # avoid strict pinning of numpy
diff --git a/pkgs/development/python-modules/hacking/default.nix b/pkgs/development/python-modules/hacking/default.nix
index d47449c2ca5e7..44a7a2deb75b6 100644
--- a/pkgs/development/python-modules/hacking/default.nix
+++ b/pkgs/development/python-modules/hacking/default.nix
@@ -35,7 +35,9 @@ buildPythonPackage rec {
   ];
 
   checkPhase = ''
-    stestr run
+    stestr run -e <(echo "
+      hacking.tests.test_doctest.HackingTestCase.test_flake8
+    ")
   '';
 
   pythonImportsCheck = [ "hacking" ];
diff --git a/pkgs/development/python-modules/hahomematic/default.nix b/pkgs/development/python-modules/hahomematic/default.nix
new file mode 100644
index 0000000000000..287e12afe78e1
--- /dev/null
+++ b/pkgs/development/python-modules/hahomematic/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, aiohttp
+, pythonOlder
+, voluptuous
+, websocket-client
+, xmltodict
+}:
+
+buildPythonPackage rec {
+  pname = "hahomematic";
+  version = "0.9.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "danielperna84";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-sxYa0SCsX1NZlCRMIpwyU1KPEteVH5HGLx1dFsbiu/E=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    voluptuous
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "hahomematic"
+  ];
+
+  meta = with lib; {
+    description = "Python module to interact with HomeMatic devices";
+    homepage = "https://github.com/danielperna84/hahomematic";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/hangups/default.nix b/pkgs/development/python-modules/hangups/default.nix
index fd269f0b69e4a..1832803388fc9 100644
--- a/pkgs/development/python-modules/hangups/default.nix
+++ b/pkgs/development/python-modules/hangups/default.nix
@@ -32,6 +32,7 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace setup.py \
       --replace "protobuf>=3.1.0,<3.17" "protobuf" \
+      --replace "async-timeout>=2,<4" "async-timeout" \
       --replace "MechanicalSoup>=0.6.0,<0.13" "MechanicalSoup"
   '';
 
diff --git a/pkgs/development/python-modules/hatasmota/default.nix b/pkgs/development/python-modules/hatasmota/default.nix
index e746c4c248506..6a0a3793d87b2 100644
--- a/pkgs/development/python-modules/hatasmota/default.nix
+++ b/pkgs/development/python-modules/hatasmota/default.nix
@@ -3,17 +3,21 @@
 , buildPythonPackage
 , fetchFromGitHub
 , voluptuous
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "hatasmota";
-  version = "0.2.21";
+  version = "0.3.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "emontnemery";
     repo = pname;
     rev = version;
-    sha256 = "sha256-mtn/r6pvHeGMLkvUP4w6CT+2+viLna4Vvn9RFMEmqts=";
+    sha256 = "sha256-/am6cRhAdiqMq0u7Ed4qhIA+Em2O0gIt7HfP19+2XHw=";
   };
 
   propagatedBuildInputs = [
@@ -24,7 +28,9 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [ "hatasmota" ];
+  pythonImportsCheck = [
+    "hatasmota"
+  ];
 
   meta = with lib; {
     description = "Python module to help parse and construct Tasmota MQTT messages";
diff --git a/pkgs/development/python-modules/heatzypy/default.nix b/pkgs/development/python-modules/heatzypy/default.nix
new file mode 100644
index 0000000000000..a0647d2dd77da
--- /dev/null
+++ b/pkgs/development/python-modules/heatzypy/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, requests
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "heatzypy";
+  version = "1.4.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "Cyr-ius";
+    repo = pname;
+    rev = version;
+    sha256 = "nENuH2u9RtWq86TW/sDFFeYS8GTWGj7qfcFS8AHFRGk=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "heatzypy"
+  ];
+
+  meta = with lib; {
+    description = "Python module to interact with Heatzy devices";
+    homepage = "https://github.com/Cyr-ius/heatzypy";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/hg-evolve/default.nix b/pkgs/development/python-modules/hg-evolve/default.nix
index 70b1a1fe52765..27c2167ff1dd2 100644
--- a/pkgs/development/python-modules/hg-evolve/default.nix
+++ b/pkgs/development/python-modules/hg-evolve/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "hg-evolve";
-  version = "10.4.0";
+  version = "10.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "64fd249a7fcabea60953fc3e7f08da6a85960aca367c04d078b999b7f6fd0246";
+    sha256 = "b47d9a1e0af3d7b54edd646581ac3e3ab046a572368eeb22dfd89dff7f9964d2";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/hg-git/default.nix b/pkgs/development/python-modules/hg-git/default.nix
index 69756083e5d8c..eccdcdaed422a 100644
--- a/pkgs/development/python-modules/hg-git/default.nix
+++ b/pkgs/development/python-modules/hg-git/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "hg-git";
-  version = "0.10.2";
+  version = "0.10.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "aae1c47328bb7f928778712654c3d5f100445190e2891f175dac66d743fdb2e8";
+    sha256 = "27e6d7686a1548d4632dcc977f2ff3ce2e42d80735339b1f3b389b7481260cc4";
   };
 
   propagatedBuildInputs = [ dulwich mercurial ];
diff --git a/pkgs/development/python-modules/hjson/default.nix b/pkgs/development/python-modules/hjson/default.nix
index 096edbe5252e5..cd48fcd6187e3 100644
--- a/pkgs/development/python-modules/hjson/default.nix
+++ b/pkgs/development/python-modules/hjson/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, python
 , pythonImportsCheckHook
 , makeWrapper
 }:
@@ -23,7 +24,9 @@ buildPythonPackage rec {
 
   postInstall = ''
     rm $out/bin/hjson.cmd
-    wrapProgram $out/bin/hjson --set PYTHONPATH "$PYTHONPATH"
+    wrapProgram $out/bin/hjson  \
+      --set PYTHONPATH "$PYTHONPATH" \
+      --prefix PATH : ${lib.makeBinPath [ python ]}
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/hole/default.nix b/pkgs/development/python-modules/hole/default.nix
index f8916322ea099..3175a8fabb580 100644
--- a/pkgs/development/python-modules/hole/default.nix
+++ b/pkgs/development/python-modules/hole/default.nix
@@ -1,17 +1,21 @@
 { lib
-, buildPythonPackage
-, fetchPypi
 , aiohttp
 , async-timeout
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "hole";
-  version = "0.6.0";
+  version = "0.7.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-T6U6WVx+5+/UaSS2mMmjAjWu67ut+YGpq2ooP9YEazI=";
+    sha256 = "sha256-yZpzGfB5RTWaRn2DmT+cbSDC0pL16FyUc0Nr/V6TlhU=";
   };
 
   propagatedBuildInputs = [
@@ -22,7 +26,9 @@ buildPythonPackage rec {
   # no tests are present
   doCheck = false;
 
-  pythonImportsCheck = [ "hole" ];
+  pythonImportsCheck = [
+    "hole"
+  ];
 
   meta = with lib; {
     description = "Python API for interacting with a Pihole instance.";
diff --git a/pkgs/development/python-modules/holoviews/default.nix b/pkgs/development/python-modules/holoviews/default.nix
index a95d4816c497c..89d86ee4eb43f 100644
--- a/pkgs/development/python-modules/holoviews/default.nix
+++ b/pkgs/development/python-modules/holoviews/default.nix
@@ -16,25 +16,20 @@
 
 buildPythonPackage rec {
   pname = "holoviews";
-  version = "1.14.6";
+  version = "1.14.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3a25c4fe3195fdc4639461abbfa5a8bebce8ab737674b6673da2236a901cfefd";
+    sha256 = "8d8d171227e9c9eaadd4b037b3ddaa01055a33bacbdbeb57a5efbd273986665f";
   };
 
   propagatedBuildInputs = [
     colorcet
-    param
     numpy
-    pyviz-comms
-    ipython
-    notebook
     pandas
-    matplotlib
-    bokeh
-    scipy
     panel
+    param
+    pyviz-comms
   ];
 
   # tests not fully included with pypi release
diff --git a/pkgs/development/python-modules/homematicip/default.nix b/pkgs/development/python-modules/homematicip/default.nix
index e6759f498a327..fb10dc5168315 100644
--- a/pkgs/development/python-modules/homematicip/default.nix
+++ b/pkgs/development/python-modules/homematicip/default.nix
@@ -5,6 +5,7 @@
 , async-timeout
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , pytestCheckHook
 , pythonOlder
 , pytest-aiohttp
@@ -17,6 +18,8 @@
 buildPythonPackage rec {
   pname = "homematicip";
   version = "1.0.1";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
@@ -26,6 +29,15 @@ buildPythonPackage rec {
     sha256 = "008snxx9ijpi1zr1pi1v4a6g74j821hyw0khs9lmi08v2mcabm36";
   };
 
+  patches = [
+    (fetchpatch {
+      # Drop loop kwarg from async_timeout.timeout
+      # https://github.com/coreGreenberet/homematicip-rest-api/pull/424
+      url = "https://github.com/coreGreenberet/homematicip-rest-api/commit/90efb335667e3d462b7f9ef113d2e0b8bb4e96b4.patch";
+      sha256 = "0f2bbs0666mf6sc7p4n8fwh29yjilkq36qf5pn0waf6iqdzxqwih";
+    })
+  ];
+
   propagatedBuildInputs = [
     aenum
     aiohttp
@@ -42,6 +54,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  postPatch = ''
+    substituteInPlace homematicip/aio/connection.py \
+      --replace ", loop=self._loop" ""
+  '';
+
   disabledTests = [
     # Assert issues with datetime
     "test_contact_interface_device"
@@ -67,7 +84,9 @@ buildPythonPackage rec {
     "test_websocket"
   ];
 
-  pythonImportsCheck = [ "homematicip" ];
+  pythonImportsCheck = [
+    "homematicip"
+  ];
 
   meta = with lib; {
     description = "Python module for the homematicIP REST API";
diff --git a/pkgs/development/python-modules/hstspreload/default.nix b/pkgs/development/python-modules/hstspreload/default.nix
index d3be5570aba8b..cab1482ed917c 100644
--- a/pkgs/development/python-modules/hstspreload/default.nix
+++ b/pkgs/development/python-modules/hstspreload/default.nix
@@ -1,25 +1,29 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, isPy27
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "hstspreload";
-  version = "2021.11.1";
-  disabled = isPy27;
+  version = "2021.12.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "sethmlarson";
     repo = pname;
     rev = version;
-    sha256 = "sha256-NpbmW4sWQmIqSllMSC+8uuSzVjUUZL+m5hshv4illCU=";
+    sha256 = "sha256-Qr9K4+egrXD6eUgUtke2n7HyhXLthrju9ykXSI7Wl4Q=";
   };
 
-  # tests require network connection
+  # Tests require network connection
   doCheck = false;
 
-  pythonImportsCheck = [ "hstspreload" ];
+  pythonImportsCheck = [
+    "hstspreload"
+  ];
 
   meta = with lib; {
     description = "Chromium HSTS Preload list as a Python package and updated daily";
diff --git a/pkgs/development/python-modules/html5lib/default.nix b/pkgs/development/python-modules/html5lib/default.nix
index f0abbcfbeccea..1172b01951323 100644
--- a/pkgs/development/python-modules/html5lib/default.nix
+++ b/pkgs/development/python-modules/html5lib/default.nix
@@ -1,12 +1,11 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, flake8
-, pytest_4
-, pytest-expect
-, mock
 , six
 , webencodings
+, mock
+, pytest-expect
+, pytestCheckHook_5
 }:
 
 buildPythonPackage rec {
@@ -18,17 +17,16 @@ buildPythonPackage rec {
     sha256 = "b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f";
   };
 
-  checkInputs = [ flake8 pytest_4 pytest-expect mock ];
   propagatedBuildInputs = [
-    six webencodings
+    six
+    webencodings
   ];
 
-  checkPhase = ''
-    # remove test causing error
-    # https://github.com/html5lib/html5lib-python/issues/411
-    rm html5lib/tests/test_stream.py
-    py.test
-  '';
+  checkInputs = [
+    mock
+    pytest-expect
+    pytestCheckHook_5
+  ];
 
   meta = {
     homepage = "https://github.com/html5lib/html5lib-python";
diff --git a/pkgs/development/python-modules/httpcore/default.nix b/pkgs/development/python-modules/httpcore/default.nix
index 089c2d9fcc428..99eb08a35a9d4 100644
--- a/pkgs/development/python-modules/httpcore/default.nix
+++ b/pkgs/development/python-modules/httpcore/default.nix
@@ -3,12 +3,14 @@
 , pythonOlder
 , fetchFromGitHub
 , anyio
+, certifi
 , h11
 , h2
 , pproxy
 , pytest-asyncio
 , pytestCheckHook
 , pytest-cov
+, pytest-httpbin
 , sniffio
 , trio
 , trustme
@@ -17,18 +19,19 @@
 
 buildPythonPackage rec {
   pname = "httpcore";
-  version = "0.13.7";
+  version = "0.14.3";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "sha256-9hG9MqqEYMT2j7tXafToGYwHbJfp9/klNqZozHSbweE=";
+    sha256 = "sha256-jPsbMhY1lWKBXlh6hsX6DGKXi/g7VQSU00tF6H7qkOo=";
   };
 
   propagatedBuildInputs = [
     anyio
+    certifi
     h11
     h2
     sniffio
@@ -39,19 +42,12 @@ buildPythonPackage rec {
     pytest-asyncio
     pytestCheckHook
     pytest-cov
+    pytest-httpbin
     trio
     trustme
     uvicorn
   ];
 
-  disabledTestPaths = [
-    # these tests fail during dns lookups: httpcore.ConnectError: [Errno -2] Name or service not known
-    "tests/test_threadsafety.py"
-    "tests/async_tests/"
-    "tests/sync_tests/test_interfaces.py"
-    "tests/sync_tests/test_retries.py"
-  ];
-
   pythonImportsCheck = [ "httpcore" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/httplib2/default.nix b/pkgs/development/python-modules/httplib2/default.nix
index c399049816196..3f48af86e5816 100644
--- a/pkgs/development/python-modules/httplib2/default.nix
+++ b/pkgs/development/python-modules/httplib2/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , buildPythonPackage
+, cryptography
 , fetchFromGitHub
 , isPy27
 , mock
@@ -15,27 +16,22 @@
 
 buildPythonPackage rec {
   pname = "httplib2";
-  version = "0.20.1";
+  version = "0.20.3";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-1zqs3YRVtm5DwewETLtRg5XhMJPJsMi0QLfeGirOURs=";
+    sha256 = "sha256-Q5KkhVqyHDoIeKjvvYoHRbZPY7LUXGDwgp4CSuyvQ1g=";
   };
 
-  postPatch = ''
-    sed -i "/--cov/d" setup.cfg
-  '';
-
-  propagatedBuildInputs = [ pyparsing ];
-
-  pythonImportsCheck = [ "httplib2" ];
-
-  # Don't run tests for Python 2.7
-  doCheck = !isPy27;
+  propagatedBuildInputs = [
+    pyparsing
+  ];
 
   checkInputs = [
+    cryptography
     mock
     pytest-forked
     pytest-randomly
@@ -45,16 +41,29 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  # Don't run tests for Python 2.7
+  doCheck = !isPy27;
+
+  postPatch = ''
+    sed -i "/--cov/d" setup.cfg
+  '';
+
   disabledTests = lib.optionals (stdenv.isDarwin) [
     # fails with HTTP 408 Request Timeout, instead of expected 200 OK
     "test_timeout_subsequent"
   ];
 
-  pytestFlagsArray = [ "--ignore python2" ];
+  pytestFlagsArray = [
+    "--ignore python2"
+  ];
+
+  pythonImportsCheck = [
+    "httplib2"
+  ];
 
   meta = with lib; {
     description = "A comprehensive HTTP client library";
-    homepage = "https://httplib2.readthedocs.io";
+    homepage = "https://github.com/httplib2/httplib2";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/httpx-socks/default.nix b/pkgs/development/python-modules/httpx-socks/default.nix
index f73d81cc6aaa6..fac9ecba6ce9a 100644
--- a/pkgs/development/python-modules/httpx-socks/default.nix
+++ b/pkgs/development/python-modules/httpx-socks/default.nix
@@ -6,26 +6,30 @@
 , flask
 , httpcore
 , httpx
+, hypercorn
 , pytest-asyncio
 , pytest-trio
 , pytestCheckHook
 , python-socks
 , pythonOlder
 , sniffio
+, starlette
 , trio
 , yarl
 }:
 
 buildPythonPackage rec {
   pname = "httpx-socks";
-  version = "0.4.1";
+  version = "0.7.2";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "romis2012";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1rz69z5fcw7d5nzy5q2q0r9gxrsqijgpg70cnyr5br6xnfgy01ar";
+    sha256 = "1wigmkhn4ymfr12z9vhdaimjcma9llicwrr29q0cc8xmy23f3445";
   };
 
   propagatedBuildInputs = [
@@ -40,13 +44,17 @@ buildPythonPackage rec {
 
   checkInputs = [
     flask
+    hypercorn
     pytest-asyncio
     pytest-trio
     pytestCheckHook
+    starlette
     yarl
   ];
 
-  pythonImportsCheck = [ "httpx_socks" ];
+  pythonImportsCheck = [
+    "httpx_socks"
+  ];
 
   meta = with lib; {
     description = "Proxy (HTTP, SOCKS) transports for httpx";
diff --git a/pkgs/development/python-modules/httpx/default.nix b/pkgs/development/python-modules/httpx/default.nix
index 014272bcc107e..543308a3fdc12 100644
--- a/pkgs/development/python-modules/httpx/default.nix
+++ b/pkgs/development/python-modules/httpx/default.nix
@@ -9,6 +9,7 @@
 , httpcore
 , rfc3986
 , sniffio
+, python
 , pytestCheckHook
 , pytest-asyncio
 , pytest-trio
@@ -19,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "httpx";
-  version = "0.19.0";
+  version = "0.21.1";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "sha256-bUxxeUYqOHBmSL2gPQG5cIq6k5QY4Kyhj9ToA5yZXPA=";
+    sha256 = "sha256-ayhLP+1hPWAx2ds227CKp5cebVkD5B2Z59L+3dzdINc=";
   };
 
   propagatedBuildInputs = [
@@ -50,12 +51,24 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "httpx" ];
 
+  # testsuite wants to find installed packages for testing entrypoint
+  preCheck = ''
+    export PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
+  '';
+
   disabledTests = [
     # httpcore.ConnectError: [Errno 101] Network is unreachable
     "test_connect_timeout"
     # httpcore.ConnectError: [Errno -2] Name or service not known
     "test_async_proxy_close"
     "test_sync_proxy_close"
+    # sensitive to charset_normalizer output
+    "iso-8859-1"
+    "test_response_no_charset_with_iso_8859_1_content"
+  ];
+
+  disabledTestPaths = [
+    "tests/test_main.py"
   ];
 
   __darwinAllowLocalNetworking = true;
diff --git a/pkgs/development/python-modules/huawei-lte-api/default.nix b/pkgs/development/python-modules/huawei-lte-api/default.nix
index 2b0fb912387a6..b62ab4f0e77af 100644
--- a/pkgs/development/python-modules/huawei-lte-api/default.nix
+++ b/pkgs/development/python-modules/huawei-lte-api/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "huawei-lte-api";
-  version = "1.5.2";
+  version = "1.5.4";
 
   disabled = pythonOlder "3.4";
 
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "Salamek";
     repo = "huawei-lte-api";
     rev = version;
-    sha256 = "sha256-xG0QTvjYW0/C/7NNhl/d024TSAe0TzgMknOXvNxrPOY=";
+    hash = "sha256-aTxP2lVrGr2B+ELz7fnVZVB0nm9HHAb15wDafV44h7M=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/huggingface-hub/default.nix b/pkgs/development/python-modules/huggingface-hub/default.nix
index 9744a74873002..cf0b27c6c5b3a 100644
--- a/pkgs/development/python-modules/huggingface-hub/default.nix
+++ b/pkgs/development/python-modules/huggingface-hub/default.nix
@@ -5,6 +5,7 @@
 , filelock
 , importlib-metadata
 , packaging
+, pyyaml
 , requests
 , ruamel-yaml
 , tqdm
@@ -13,19 +14,20 @@
 
 buildPythonPackage rec {
   pname = "huggingface-hub";
-  version = "0.0.18";
+  version = "0.1.2";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = "huggingface_hub";
     rev = "v${version}";
-    sha256 = "sha256-SxA7rAdKuSrSYFIuxG81lblPJOL69Yx4rBccVrbQa/g=";
+    sha256 = "1pmi76vinwwn0bcxy5hj8pxhzqxdbzp0y3hsd631yyys01s0n6xd";
   };
 
   nativeBuildInputs = [ packaging ];
 
   propagatedBuildInputs = [
     filelock
+    pyyaml
     requests
     ruamel-yaml
     tqdm
diff --git a/pkgs/development/python-modules/humanize/default.nix b/pkgs/development/python-modules/humanize/default.nix
index f878320e5d473..d0b2464608b94 100644
--- a/pkgs/development/python-modules/humanize/default.nix
+++ b/pkgs/development/python-modules/humanize/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, isPy27
+, fetchFromGitHub
+, pythonOlder
 , setuptools-scm
 , setuptools
 , pytestCheckHook
@@ -9,18 +9,33 @@
 }:
 
 buildPythonPackage rec {
-  version = "3.12.0";
+  version = "3.13.1";
   pname = "humanize";
-  disabled = isPy27; # setup.py no longer compatible
+  format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "5ec1a66e230a3e31fb3f184aab9436ea13d4e37c168e0ffc345ae5bb57e58be6";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "jmoiron";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-lgGBvYb3ciqETBOR31gxQVD7YyopTtmr++nCwvm63Zs=";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
-  propagatedBuildInputs = [ setuptools ];
-  checkInputs = [ pytestCheckHook freezegun ];
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    setuptools
+  ];
+
+  checkInputs = [
+    freezegun
+    pytestCheckHook
+  ];
 
   meta = with lib; {
     description = "Python humanize utilities";
diff --git a/pkgs/development/python-modules/hydra-check/default.nix b/pkgs/development/python-modules/hydra-check/default.nix
index 458363713db23..48833d77e8bfd 100644
--- a/pkgs/development/python-modules/hydra-check/default.nix
+++ b/pkgs/development/python-modules/hydra-check/default.nix
@@ -6,6 +6,7 @@
 , requests
 , beautifulsoup4
 , mypy
+, types-requests
 }:
 
 buildPythonPackage rec {
@@ -26,14 +27,17 @@ buildPythonPackage rec {
     beautifulsoup4
   ];
 
-  checkInputs = [ mypy ];
+  checkInputs = [
+    mypy
+    types-requests
+  ];
 
   checkPhase = ''
     echo -e "\x1b[32m## run mypy\x1b[0m"
     mypy hydracheck
   '';
 
-  meta = with lib;{
+  meta = with lib; {
     description = "check hydra for the build status of a package";
     homepage = "https://github.com/nix-community/hydra-check";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/hyperopt/default.nix b/pkgs/development/python-modules/hyperopt/default.nix
index d407ff95a010a..605377a2ec391 100644
--- a/pkgs/development/python-modules/hyperopt/default.nix
+++ b/pkgs/development/python-modules/hyperopt/default.nix
@@ -1,29 +1,53 @@
-{ lib, fetchPypi, buildPythonPackage
-, cloudpickle, numpy, future, networkx
-, six, tqdm, scipy, pymongo
+{ lib
+, buildPythonPackage
+, cloudpickle
+, fetchPypi
+, future
+, networkx
+, numpy
+, py4j
+, pymongo
+, pyspark
+, scipy
+, six
+, tqdm
 }:
 
 buildPythonPackage rec {
   pname = "hyperopt";
-  version = "0.2.5";
+  version = "0.2.7";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bc6047d50f956ae64eebcb34b1fd40f186a93e214957f20e87af2f10195295cc";
+    sha256 = "1bf89ae58050bbd32c7307199046117feee245c2fd9ab6255c7308522b7ca149";
   };
 
-  propagatedBuildInputs = [ future cloudpickle numpy networkx six tqdm scipy pymongo ];
+  propagatedBuildInputs = [
+    cloudpickle
+    future
+    networkx
+    numpy
+    py4j
+    pymongo
+    pyspark
+    scipy
+    six
+    tqdm
+  ];
 
   # tries to use /homeless-shelter to mimic container usage, etc
   doCheck = false;
 
-  pythonImportsCheck = [ "hyperopt" ];
+  pythonImportsCheck = [
+    "hyperopt"
+  ];
 
   meta = with lib; {
     description = "Distributed Asynchronous Hyperparameter Optimization";
-    homepage    = "http://hyperopt.github.com/hyperopt/";
-    license     = licenses.bsd2;
-    platforms   = platforms.unix;
+    homepage = "http://hyperopt.github.io/hyperopt/";
+    license = licenses.bsd2;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ freezeboy ];
   };
 }
diff --git a/pkgs/development/python-modules/hypothesis/default.nix b/pkgs/development/python-modules/hypothesis/default.nix
index ee3778685905a..4cf8acf708725 100644
--- a/pkgs/development/python-modules/hypothesis/default.nix
+++ b/pkgs/development/python-modules/hypothesis/default.nix
@@ -18,14 +18,14 @@ buildPythonPackage rec {
   # If you need these, you can just add them to your environment.
 
   pname = "hypothesis";
-  version = "6.23.2";
+  version = "6.27.1";
 
   # Use github tarballs that includes tests
   src = fetchFromGitHub {
     owner = "HypothesisWorks";
     repo = "hypothesis-python";
     rev = "hypothesis-python-${version}";
-    sha256 = "1mdygyq6ra4kysi0y2g3a4bgpqrcb8ci2061117zyms419qwwh4l";
+    sha256 = "05kfz041vrd9fy8gl8ch05g806jj4j6l1cnwhqgygagn9z3aq1jx";
   };
 
   postUnpack = "sourceRoot=$sourceRoot/hypothesis-python";
diff --git a/pkgs/development/python-modules/hypothesmith/default.nix b/pkgs/development/python-modules/hypothesmith/default.nix
index 0d175989271ce..776ff77fce2f5 100644
--- a/pkgs/development/python-modules/hypothesmith/default.nix
+++ b/pkgs/development/python-modules/hypothesmith/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "hypothesmith";
-  version = "0.1.9";
+  version = "0.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "039fd6aa0102f89df9df7ad4cff70aa8068678c13c3be2713c92568917317a04";
+    sha256 = "0fb7b3fd03d76eddd4474b0561e1c2662457593a74cc300fd27e5409cd4d7922";
   };
 
   propagatedBuildInputs = [ hypothesis lark-parser libcst ];
diff --git a/pkgs/development/python-modules/hyppo/default.nix b/pkgs/development/python-modules/hyppo/default.nix
index 8dcca1983ba3c..61966bc7de76b 100644
--- a/pkgs/development/python-modules/hyppo/default.nix
+++ b/pkgs/development/python-modules/hyppo/default.nix
@@ -1,8 +1,9 @@
 { lib
 , buildPythonPackage
-, isPy27
+, pythonOlder
 , fetchFromGitHub
-, pytestCheckHook , pytest-cov , numba
+, pytestCheckHook
+, numba
 , numpy
 , scikit-learn
 , scipy
@@ -12,15 +13,15 @@
 
 buildPythonPackage rec {
   pname = "hyppo";
-  version = "0.2.1";
+  version = "0.2.2";
 
-  disabled = isPy27;
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "neurodata";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0izjc68rb6sr3x55c3zzraakzspgzh80qykfax9zj868zypfm365";
+    sha256 = "1wrzrppyjq0pc03bn6qcslxzcnwn7fr2z5lm71gfpli5k05i26nr";
   };
 
   propagatedBuildInputs = [
@@ -30,7 +31,7 @@ buildPythonPackage rec {
     scipy
   ];
 
-  checkInputs = [ pytestCheckHook pytest-cov matplotlib seaborn ];
+  checkInputs = [ pytestCheckHook matplotlib seaborn ];
   disabledTestPaths = [
     "docs"
     "benchmarks"
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 8c3c3670c424c..1f8b4063dd796 100644
--- a/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix
+++ b/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "ibm-cloud-sdk-core";
-  version = "3.13.0";
+  version = "3.13.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b27aec03e8c666b3e36c68b2331871f37a0c6c0467fe0f73462fda7300d3c19f";
+    sha256 = "9c615b3a6e9d9dc1c69d8f38742b156e12408521fa180a66558bbb7b850bbbc2";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/identify/default.nix b/pkgs/development/python-modules/identify/default.nix
index fed8ddd419c02..194dce3f88df9 100644
--- a/pkgs/development/python-modules/identify/default.nix
+++ b/pkgs/development/python-modules/identify/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "identify";
-  version = "2.4.0";
+  version = "2.4.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "pre-commit";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-0J3P3RawafVAfOUhK9qSz5K8y0goMqTjMh5PL60sqME=";
+    sha256 = "sha256-+kfIpmJ6Gnb33MZ7NZrE8oVSBbZLuRfIvfCbstxJFX0=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/idna/default.nix b/pkgs/development/python-modules/idna/default.nix
index cb8636f135a8e..dd01128601050 100644
--- a/pkgs/development/python-modules/idna/default.nix
+++ b/pkgs/development/python-modules/idna/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "idna";
-  version = "3.2";
+  version = "3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3";
+    sha256 = "9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/ignite/default.nix b/pkgs/development/python-modules/ignite/default.nix
index 177fd89156074..c027eba987422 100644
--- a/pkgs/development/python-modules/ignite/default.nix
+++ b/pkgs/development/python-modules/ignite/default.nix
@@ -8,24 +8,23 @@
 , matplotlib
 , mock
 , pytorch
-, pynvml
 , scikit-learn
 , tqdm
 }:
 
 buildPythonPackage rec {
   pname = "ignite";
-  version = "0.4.6";
+  version = "0.4.7";
 
   src = fetchFromGitHub {
     owner = "pytorch";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-dlKGXjUUnyYmPDilo0LQg9OkSkBnMYNgzlFLIfI0T6I=";
+    sha256 = "11gvw0yqb3y5ddifs5f38bgslvfmw1bmd9rga1ynlrmmgmhxym6h";
   };
 
   checkInputs = [ pytestCheckHook matplotlib mock pytest-xdist torchvision ];
-  propagatedBuildInputs = [ pytorch scikit-learn tqdm pynvml ];
+  propagatedBuildInputs = [ pytorch scikit-learn tqdm ];
 
   # runs succesfully in 3.9, however, async isn't correctly closed so it will fail after test suite.
   doCheck = pythonOlder "3.9";
@@ -51,6 +50,7 @@ buildPythonPackage rec {
     "idist"
     "mlflow"
     "tensorboard"
+    "test_gpu_info" # needs pynvml
     "test_integration"
     "test_output_handler" # needs mlflow
     "test_pbar" # slight output differences
diff --git a/pkgs/development/python-modules/imageio/default.nix b/pkgs/development/python-modules/imageio/default.nix
index 1672e798f3040..f27c9fded9b29 100644
--- a/pkgs/development/python-modules/imageio/default.nix
+++ b/pkgs/development/python-modules/imageio/default.nix
@@ -7,15 +7,16 @@
 , pillow
 , psutil
 , pytestCheckHook
+, tifffile
 }:
 
 buildPythonPackage rec {
   pname = "imageio";
-  version = "2.9.0";
+  version = "2.12.0";
   disabled = isPy27;
 
   src = fetchPypi {
-    sha256 = "52ddbaeca2dccf53ba2d6dec5676ca7bc3b2403ef8b37f7da78b7654bb3e10f0";
+    sha256 = "c416dd68328ace8536ff333cbb8927954036be56e201fed416e53e8f95e08a6c";
     inherit pname version;
   };
 
@@ -28,6 +29,7 @@ buildPythonPackage rec {
   checkInputs = [
     psutil
     pytestCheckHook
+    tifffile
   ];
 
   preCheck = ''
@@ -36,6 +38,20 @@ buildPythonPackage rec {
     export HOME="$(mktemp -d)"
   '';
 
+  disabledTests = [
+    # tries to pull remote resources, even with IMAGEIO_NO_INTERNET
+    "test_png_remote"
+    # needs git history
+    "test_mvolread_out_of_bytes"
+    "test_imiter"
+    "test_memory_size"
+    "test_legacy_write_empty"
+  ];
+
+  disabledTestPaths = [
+    "tests/test_pillow.py"
+  ];
+
   meta = with lib; {
     description = "Library for reading and writing a wide range of image, video, scientific, and volumetric data formats";
     homepage = "http://imageio.github.io/";
diff --git a/pkgs/development/python-modules/imagesize/default.nix b/pkgs/development/python-modules/imagesize/default.nix
index 42cf6b50764dd..0fbe88a520fe1 100644
--- a/pkgs/development/python-modules/imagesize/default.nix
+++ b/pkgs/development/python-modules/imagesize/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "imagesize";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1";
+    sha256 = "cd1750d452385ca327479d45b64d9c7729ecf0b3969a58148298c77092261f9d";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/imap-tools/default.nix b/pkgs/development/python-modules/imap-tools/default.nix
index dcee12d68c3a3..3437dd902bcd5 100644
--- a/pkgs/development/python-modules/imap-tools/default.nix
+++ b/pkgs/development/python-modules/imap-tools/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "imap-tools";
-  version = "0.50.0";
+  version = "0.50.2";
 
   disabled = isPy27;
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "ikvk";
     repo = "imap_tools";
     rev = "v${version}";
-    sha256 = "sha256-4OMWLWvNRg7z4KAAkB1l5YaWILFwIepZOWhBd64SGWI=";
+    hash = "sha256-ki38Kr+eDEIQPRuoQePR7dCRDSgq2ZLXws1pq2gtQrI=";
   };
 
   checkInputs = [
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     # tests require a network connection
     "test_action"
     "test_folders"
-    "test_connectio"
+    "test_connection"
     "test_attributes"
     "test_live"
   ];
diff --git a/pkgs/development/python-modules/importlib-metadata/default.nix b/pkgs/development/python-modules/importlib-metadata/default.nix
index 158f101167e2f..e13f73616775a 100644
--- a/pkgs/development/python-modules/importlib-metadata/default.nix
+++ b/pkgs/development/python-modules/importlib-metadata/default.nix
@@ -10,16 +10,20 @@
 
 buildPythonPackage rec {
   pname = "importlib-metadata";
-  version = "4.8.1";
+  version = "4.8.2";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     pname = "importlib_metadata";
     inherit version;
-    sha256 = "sha256-8oSz4RJWrR5dA6uGuyzNb1M5aI/xek15eg/n3zJvI7E=";
+    sha256 = "sha256-db3sFMOX9ShyTBv9lwnWYLM6TS53OHozWPILhIu15fs=";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
 
   propagatedBuildInputs = [
     toml
@@ -30,7 +34,10 @@ buildPythonPackage rec {
 
   # Cyclic dependencies due to pyflakefs
   doCheck = false;
-  pythonImportsCheck = [ "importlib_metadata" ];
+
+  pythonImportsCheck = [
+    "importlib_metadata"
+  ];
 
   meta = with lib; {
     description = "Read metadata from Python packages";
diff --git a/pkgs/development/python-modules/influxdb-client/default.nix b/pkgs/development/python-modules/influxdb-client/default.nix
index 1fe609db93357..9e3c7be8f4a17 100644
--- a/pkgs/development/python-modules/influxdb-client/default.nix
+++ b/pkgs/development/python-modules/influxdb-client/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "influxdb-client";
-  version = "1.23.0";
+  version = "1.24.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "influxdata";
     repo = "influxdb-client-python";
     rev = "v${version}";
-    sha256 = "0n8zflphcj9l17mkqa4acxb0sna0v05zq5y07ayizf84zm93hpbr";
+    sha256 = "0w0pw87fnxms88f3dadyhxdgms4rzvcww18h6l87wnqc6wxa6paw";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/injector/default.nix b/pkgs/development/python-modules/injector/default.nix
index 921db5d1a8774..4651cc3a1fb81 100644
--- a/pkgs/development/python-modules/injector/default.nix
+++ b/pkgs/development/python-modules/injector/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "injector";
-  version = "0.18.4";
+  version = "0.19.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10miwi58g4b8rvdf1pl7s7x9j91qyxxv3kdn5idzkfc387hqxn6f";
+    sha256 = "3eaaf51cd3ba7be1354d92a5210c8bba43dd324300eafd214e1f2568834a912f";
   };
 
   propagatedBuildInputs = [ typing-extensions ];
diff --git a/pkgs/development/python-modules/internetarchive/default.nix b/pkgs/development/python-modules/internetarchive/default.nix
index 60a946291ad92..b878929060725 100644
--- a/pkgs/development/python-modules/internetarchive/default.nix
+++ b/pkgs/development/python-modules/internetarchive/default.nix
@@ -15,15 +15,16 @@
 , lib
 , glibcLocales
 , setuptools
+, urllib3
 }:
 
 buildPythonPackage rec {
   pname = "internetarchive";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "72094f05df39bb1463f61f928f3a7fa0dd236cab185cb8b7e8eb6c85e09acdc4";
+    sha256 = "ebd11ecd038c71e75a3aef8d87750b46480169ecaefb23074c4ae48440bf2836";
   };
 
   propagatedBuildInputs = [
@@ -36,6 +37,7 @@ buildPythonPackage rec {
     args
     schema
     setuptools
+    urllib3
   ] ++ lib.optionals (!isPy3k) [ backports_csv ];
 
   checkInputs = [ pytest responses glibcLocales ];
diff --git a/pkgs/development/python-modules/ipfshttpclient/default.nix b/pkgs/development/python-modules/ipfshttpclient/default.nix
index 62fa6d9361494..271cd85a81952 100644
--- a/pkgs/development/python-modules/ipfshttpclient/default.nix
+++ b/pkgs/development/python-modules/ipfshttpclient/default.nix
@@ -57,6 +57,18 @@ buildPythonPackage rec {
       --replace 'pytest_ordering' 'pytest_order'
     substituteInPlace test/functional/test_miscellaneous.py \
       --replace '@pytest.mark.last' '@pytest.mark.order("last")'
+
+    # Until a proper fix is created, just skip these tests
+    # and ignore any breakage that may result from the API change in IPFS
+    # See https://github.com/ipfs-shipyard/py-ipfs-http-client/issues/308
+    substituteInPlace test/functional/test_pubsub.py \
+      --replace '# the message that will be published' 'pytest.skip("This test fails because of an incompatibility with the experimental PubSub feature in IPFS>=0.11.0")' \
+      --replace '# subscribe to the topic testing'     'pytest.skip("This test fails because of an incompatibility with the experimental PubSub feature in IPFS>=0.11.0")'
+    substituteInPlace test/functional/test_other.py \
+      --replace 'import ipfshttpclient' 'import ipfshttpclient; import pytest' \
+      --replace 'assert ipfs_is_available' 'pytest.skip("Unknown test failure with IPFS >=0.11.0"); assert ipfs_is_available'
+    substituteInPlace test/run-tests.py \
+      --replace '--cov-fail-under=90' '--cov-fail-under=75'
   '';
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/ipydatawidgets/default.nix b/pkgs/development/python-modules/ipydatawidgets/default.nix
index 3f8811f4f3b4c..d74dbad18be68 100644
--- a/pkgs/development/python-modules/ipydatawidgets/default.nix
+++ b/pkgs/development/python-modules/ipydatawidgets/default.nix
@@ -5,6 +5,7 @@
 , pytest
 , pytest-cov
 , nbval
+, jupyter-packaging
 , ipywidgets
 , numpy
 , six
@@ -22,6 +23,12 @@ buildPythonPackage rec {
     sha256 = "d0e4b58b59b508165e8562b8f5d1dbfcd739855847ec0477bd9185a5e9b7c5bc";
   };
 
+  nativeBuildInputs = [
+    jupyter-packaging
+  ];
+
+  setupPyBuildFlags = [ "--skip-npm" ];
+
   propagatedBuildInputs = [
     ipywidgets
     numpy
diff --git a/pkgs/development/python-modules/ipykernel/default.nix b/pkgs/development/python-modules/ipykernel/default.nix
index 21e371c1a48bd..f18750af1ffb3 100644
--- a/pkgs/development/python-modules/ipykernel/default.nix
+++ b/pkgs/development/python-modules/ipykernel/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "ipykernel";
-  version = "6.4.1";
+  version = "6.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "df3355e5eec23126bc89767a676c5f0abfc7f4c3497d118c592b83b316e8c0cd";
+    sha256 = "dd27172bccbbcfef952991e49372e4c6fd1c14eed0df05ebd5b4335cb27a81a2";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ipympl/default.nix b/pkgs/development/python-modules/ipympl/default.nix
index 4075ae5d19090..f04b876f04871 100644
--- a/pkgs/development/python-modules/ipympl/default.nix
+++ b/pkgs/development/python-modules/ipympl/default.nix
@@ -1,21 +1,22 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, ipykernel
 , ipywidgets
-, matplotlib
-, jupyter-packaging
 }:
 
 buildPythonPackage rec {
   pname = "ipympl";
-  version = "0.8.0";
+  version = "0.8.4";
+  format = "wheel";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "ef5d21820ed88a8bd6efddb884c333d0eaea7f2f7d4b3054e6d386b07a36dd9d";
+    inherit pname version format;
+    sha256 = "2f955c1c04d8e6df883d57866450657040bfc568edeabcace801cbdbaf4d0295";
   };
 
-  propagatedBuildInputs = [ ipywidgets matplotlib jupyter-packaging ];
+
+  propagatedBuildInputs = [ ipykernel ipywidgets ];
 
   # There are no unit tests in repository
   doCheck = false;
@@ -24,7 +25,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Matplotlib Jupyter Extension";
     homepage = "https://github.com/matplotlib/jupyter-matplotlib";
-    maintainers = with maintainers; [ jluttine ];
+    maintainers = with maintainers; [ jluttine fabiangd ];
     license = licenses.bsd3;
   };
 }
diff --git a/pkgs/development/python-modules/ipython/default.nix b/pkgs/development/python-modules/ipython/default.nix
index 7b844228225b3..2065dc2349fd6 100644
--- a/pkgs/development/python-modules/ipython/default.nix
+++ b/pkgs/development/python-modules/ipython/default.nix
@@ -22,12 +22,12 @@
 
 buildPythonPackage rec {
   pname = "ipython";
-  version = "7.28.0";
+  version = "7.29.0";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2097be5c814d1b974aea57673176a924c4c8c9583890e7a5f082f547b9975b11";
+    sha256 = "4f69d7423a5a1972f6347ff233e38bbf4df6a150ef20fbb00c635442ac3060aa";
   };
 
   prePatch = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/python-modules/ipyvue/default.nix b/pkgs/development/python-modules/ipyvue/default.nix
index 0c46ecd8e1d3c..6c0b15c41b37e 100644
--- a/pkgs/development/python-modules/ipyvue/default.nix
+++ b/pkgs/development/python-modules/ipyvue/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "ipyvue";
-  version = "1.6.1";
+  version = "1.7.0";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6cc15428bfcd5c7daae73c45c776b34056fe4d885a34192fb93efc80d6b9753f";
+    sha256 = "fa8ff9b9a73b5a925c4af4c05f1839df2bd0fae0063871f403ee821792d5ab72";
   };
 
   propagatedBuildInputs = [ ipywidgets ];
diff --git a/pkgs/development/python-modules/ircrobots/default.nix b/pkgs/development/python-modules/ircrobots/default.nix
index 38cedf939a39b..e16ac2449a7d3 100644
--- a/pkgs/development/python-modules/ircrobots/default.nix
+++ b/pkgs/development/python-modules/ircrobots/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , pythonOlder
 , anyio
+, asyncio-rlock
 , asyncio-throttle
 , dataclasses
 , ircstates
@@ -13,23 +14,26 @@
 
 buildPythonPackage rec {
   pname = "ircrobots";
-  version = "0.3.8";
+  version = "0.4.6";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "jesopo";
     repo = pname;
     rev = "v${version}";
-    sha256 = "06q86dqllxvi3nssfplmjk9yxaybighwh87lrxfpfhl8yy4z68jz";
+    sha256 = "sha256-+BrS1+ZkgwT/qvqD0PwRZi2LF+31biS738SzKH1dy7w=";
   };
 
   postPatch = ''
     # too specific pins https://github.com/jesopo/ircrobots/issues/3
     sed -iE 's/anyio.*/anyio/' requirements.txt
+    sed -iE 's/ircstates.*/ircstates/' requirements.txt
+    sed -iE 's/async_timeout.*/async_timeout/' requirements.txt
   '';
 
   propagatedBuildInputs = [
     anyio
+    asyncio-rlock
     asyncio-throttle
     ircstates
     async_stagger
diff --git a/pkgs/development/python-modules/iso4217/default.nix b/pkgs/development/python-modules/iso4217/default.nix
index 58d9ef5ffbd55..b1438f29a017f 100644
--- a/pkgs/development/python-modules/iso4217/default.nix
+++ b/pkgs/development/python-modules/iso4217/default.nix
@@ -2,27 +2,34 @@
 , buildPythonPackage
 , fetchFromGitHub
 , fetchurl
+, importlib-resources
 , pytestCheckHook
 , python
+, pythonOlder
 }:
 let
   table = fetchurl {
-    # See https://github.com/dahlia/iso4217/blob/main/setup.py#L18
+    # See https://github.com/dahlia/iso4217/blob/main/setup.py#L19
     url = "http://www.currency-iso.org/dam/downloads/lists/list_one.xml";
-    sha256 = "0frhicc7s8gqglr41hzx61fic3ckvr4sg773ahp1s28n5by3y7ac";
+    hash = "sha256-bp8uTMR1YRaI2cJLo0kdt9xD4nNaWK+LdlheWQ26qy0=";
   };
 in
 buildPythonPackage rec {
   pname = "iso4217";
-  version = "1.6";
+  version = "1.7";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "dahlia";
     repo = pname;
     rev = version;
-    sha256 = "0mdpf5a0xr5lrcfgvqi1sdn7ln2w6pkc3lg0laqkbx5mhxky0fla";
+    hash = "sha256-Ih2l6bGM7i5TUkzJPkgx8EOOL4a3/qE28SUZS6M4sQc=";
   };
 
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [
+    importlib-resources
+  ];
+
   checkInputs = [
     pytestCheckHook
   ];
@@ -39,9 +46,13 @@ buildPythonPackage rec {
     cp -r ${table} $out/${python.sitePackages}/$pname/table.xml
   '';
 
-  pytestFlagsArray = [ "$pname/test.py" ];
+  pytestFlagsArray = [
+    "$pname/test.py"
+  ];
 
-  pythonImportsCheck = [ "iso4217" ];
+  pythonImportsCheck = [
+    "iso4217"
+  ];
 
   meta = with lib; {
     description = "ISO 4217 currency data package for Python";
diff --git a/pkgs/development/python-modules/isodate/default.nix b/pkgs/development/python-modules/isodate/default.nix
index 19a643d216ac8..21bcc3ed90a3d 100644
--- a/pkgs/development/python-modules/isodate/default.nix
+++ b/pkgs/development/python-modules/isodate/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "isodate";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2e364a3d5759479cdb2d37cce6b9376ea504db2ff90252a2e5b7cc89cc9ff2d8";
+    sha256 = "SMWIHefosKDWSMsCTIBi3ITnuEDtgehkx2FP08Envek=";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/iterm2/default.nix b/pkgs/development/python-modules/iterm2/default.nix
index 125dc2691e5bc..1cba03531b5be 100644
--- a/pkgs/development/python-modules/iterm2/default.nix
+++ b/pkgs/development/python-modules/iterm2/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "iterm2";
-  version = "1.29";
+  version = "1.30";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8245562ed713fd473520f81361cdc1b15835920e1ceb7d588678cd153e77c2b6";
+    sha256 = "148b32a593f3d932a33daad01fdaa4639918eca74a6e153d9729dd8b3cba3345";
   };
 
   propagatedBuildInputs = [ protobuf websockets ];
diff --git a/pkgs/development/python-modules/jaconv/default.nix b/pkgs/development/python-modules/jaconv/default.nix
new file mode 100644
index 0000000000000..17f044dbd914a
--- /dev/null
+++ b/pkgs/development/python-modules/jaconv/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, nose
+, pythonOlder
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "jaconv";
+  version = "0.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "ikegami-yukino";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "rityHi1JWWlV7+sAxNrlbcmfHmORZWrMZqXTRlsclhQ=";
+  };
+
+  checkInputs = [
+    nose
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "jaconv"
+  ];
+
+  meta = with lib; {
+    description = "Python Japanese character interconverter for Hiragana, Katakana, Hankaku and Zenkaku";
+    homepage = "https://github.com/ikegami-yukino/jaconv";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/janus/default.nix b/pkgs/development/python-modules/janus/default.nix
index b68bcc3032569..c8a9efdb54f84 100644
--- a/pkgs/development/python-modules/janus/default.nix
+++ b/pkgs/development/python-modules/janus/default.nix
@@ -1,16 +1,22 @@
-{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder, pytest-asyncio }:
+{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder, pytest-asyncio
+, typing-extensions
+}:
 
 buildPythonPackage rec {
   pname = "janus";
-  version = "0.6.2";
+  version = "0.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "127edc891f9e13420dd12f230d5113fa3de7f93662b81acfaf845989edf5eebf";
+    sha256 = "f10dcf5776e8d49cc30ec86d5eb7268eeec39abaa24fe0332ee8fb8fa3611845";
   };
 
   disabled = pythonOlder "3.6";
 
+  propagatedBuildInputs = [
+    typing-extensions
+  ];
+
   checkInputs = [ pytest-asyncio pytestCheckHook ];
 
   # also fails upstream: https://github.com/aio-libs/janus/pull/258
diff --git a/pkgs/development/python-modules/jaraco-context/default.nix b/pkgs/development/python-modules/jaraco-context/default.nix
new file mode 100644
index 0000000000000..7be059359259d
--- /dev/null
+++ b/pkgs/development/python-modules/jaraco-context/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "jaraco-context";
+  version = "4.1.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "jaraco";
+    repo = "jaraco.context";
+    rev = "v${version}";
+    sha256 = "O9Lwv2d/qbiXxIVCp6FLmVKaz0MzAUkoUd0jAyIvgJc=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  pythonNamespaces = [
+    "jaraco"
+  ];
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "jaraco.context" ];
+
+
+  meta = with lib; {
+    description = "Python module for context management";
+    homepage = "https://github.com/jaraco/jaraco.context";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/jaraco_functools/default.nix b/pkgs/development/python-modules/jaraco_functools/default.nix
index 3ad652af7643a..1316c2b4e729d 100644
--- a/pkgs/development/python-modules/jaraco_functools/default.nix
+++ b/pkgs/development/python-modules/jaraco_functools/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "jaraco.functools";
-  version = "3.3.0";
+  version = "3.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bfcf7da71e2a0e980189b0744b59dba6c1dcf66dcd7a30f8a4413e478046b314";
+    sha256 = "659a64743047d00c6ae2a2aa60573c62cfc0b4b70eaa14fa50c80360ada32aa8";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/jaraco_text/default.nix b/pkgs/development/python-modules/jaraco_text/default.nix
index 32e8aa23aeb4f..054f68ba2f244 100644
--- a/pkgs/development/python-modules/jaraco_text/default.nix
+++ b/pkgs/development/python-modules/jaraco_text/default.nix
@@ -1,33 +1,51 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
 , importlib-resources
 , jaraco_functools
+, jaraco-context
 , setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "jaraco.text";
-  version = "3.5.1";
+  version = "3.6.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ede4e9103443b62b3d1d193257dfb85aab7c69a6cef78a0887d64bb307a03bc3";
+    sha256 = "901d3468eaaa04f1d8a8f141f54b8887bfd943ccba311fc1c1de62c66604dfe0";
   };
 
-  pythonNamespaces = [ "jaraco" ];
+  pythonNamespaces = [
+    "jaraco"
+  ];
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
 
-  nativeBuildInputs =[ setuptools-scm ];
   propagatedBuildInputs = [
+    jaraco-context
     jaraco_functools
-  ] ++ lib.optional (pythonOlder "3.7") [ importlib-resources ];
+  ] ++ lib.optional (pythonOlder "3.9") [
+    importlib-resources
+  ];
 
   # no tests in pypi package
   doCheck = false;
 
+  pythonImportsCheck = [
+    "jaraco.text"
+  ];
+
   meta = with lib; {
     description = "Module for text manipulation";
     homepage = "https://github.com/jaraco/jaraco.text";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/jax/cache-fix.patch b/pkgs/development/python-modules/jax/cache-fix.patch
new file mode 100644
index 0000000000000..5db5319485f8e
--- /dev/null
+++ b/pkgs/development/python-modules/jax/cache-fix.patch
@@ -0,0 +1,12 @@
+diff --git a/jax/experimental/compilation_cache/file_system_cache.py b/jax/experimental/compilation_cache/file_system_cache.py
+index b85969de..92acd523 100644
+--- a/jax/experimental/compilation_cache/file_system_cache.py
++++ b/jax/experimental/compilation_cache/file_system_cache.py
+@@ -33,6 +33,7 @@ class FileSystemCache(CacheInterface):
+     path_to_key = os.path.join(self._path, key)
+     if os.path.exists(path_to_key):
+       with open(path_to_key, "rb") as file:
++        os.utime(file.fileno())
+         return file.read()
+     else:
+       return None
diff --git a/pkgs/development/python-modules/jax/default.nix b/pkgs/development/python-modules/jax/default.nix
index ce9a7758bc61f..574341f216abd 100644
--- a/pkgs/development/python-modules/jax/default.nix
+++ b/pkgs/development/python-modules/jax/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "jax";
-  version = "0.2.24";
+  version = "0.2.26";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,10 +21,15 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
-    rev = "jax-v${version}";
-    sha256 = "1mmn1m4mprpwqlb1smjfdy3f74zm9p3l9dhhn25x6jrcj2cgc5pi";
+    rev = "${pname}-v${version}";
+    sha256 = "155hhwgq6axdrj4x4hw72322qv1wc068n4cv4z2vf5jpl05fg93g";
   };
 
+  patches = [
+    # See https://github.com/google/jax/issues/7944
+    ./cache-fix.patch
+  ];
+
   # jaxlib is _not_ included in propagatedBuildInputs because there are
   # different versions of jaxlib depending on the desired target hardware. The
   # JAX project ships separate wheels for CPU, GPU, and TPU. Currently only the
diff --git a/pkgs/development/python-modules/jaxlib/bin.nix b/pkgs/development/python-modules/jaxlib/bin.nix
new file mode 100644
index 0000000000000..f597eeacfced4
--- /dev/null
+++ b/pkgs/development/python-modules/jaxlib/bin.nix
@@ -0,0 +1,90 @@
+# For the moment we only support the CPU and GPU backends of jaxlib. The TPU
+# backend will require some additional work. Those wheels are located here:
+# https://storage.googleapis.com/jax-releases/libtpu_releases.html.
+
+# For future reference, the easiest way to test the GPU backend is to run
+#   NIX_PATH=.. nix-shell -p python3 python3Packages.jax "python3Packages.jaxlib.override { cudaSupport = true; }"
+#   export XLA_FLAGS=--xla_gpu_force_compilation_parallelism=1
+#   python -c "from jax.lib import xla_bridge; assert xla_bridge.get_backend().platform == 'gpu'"
+#   python -c "from jax import random; random.PRNGKey(0)"
+#   python -c "from jax import random; x = random.normal(random.PRNGKey(0), (100, 100)); x @ x"
+# There's no convenient way to test the GPU backend in the derivation since the
+# nix build environment blocks access to the GPU. See also:
+#   * https://github.com/google/jax/issues/971#issuecomment-508216439
+#   * https://github.com/google/jax/issues/5723#issuecomment-913038780
+
+{ addOpenGLRunpath, autoPatchelfHook, buildPythonPackage, config
+, fetchurl, isPy39, lib, stdenv
+# propagatedBuildInputs
+, absl-py, flatbuffers, scipy, cudatoolkit_11
+# Options:
+, cudaSupport ? config.cudaSupport or false
+}:
+
+assert cudaSupport -> lib.versionAtLeast cudatoolkit_11.version "11.1";
+
+let
+  device = if cudaSupport then "gpu" else "cpu";
+in
+buildPythonPackage rec {
+  pname = "jaxlib";
+  version = "0.1.71";
+  format = "wheel";
+
+  # At the time of writing (8/19/21), there are releases for 3.7-3.9. Supporting
+  # all of them is a pain, so we focus on 3.9, the current nixpkgs python3
+  # version.
+  disabled = !isPy39;
+
+  src = {
+    cpu = fetchurl {
+      url = "https://storage.googleapis.com/jax-releases/nocuda/jaxlib-${version}-cp39-none-manylinux2010_x86_64.whl";
+      sha256 = "sha256:0rqhs6qabydizlv5d3rb20dbv6612rr7dqfniy9r6h4kazdinsn6";
+    };
+    gpu = fetchurl {
+      url = "https://storage.googleapis.com/jax-releases/cuda111/jaxlib-${version}+cuda111-cp39-none-manylinux2010_x86_64.whl";
+      sha256 = "sha256:065kyzjsk9m84d138p99iymdiiicm1qz8a3iwxz8rspl43rwrw89";
+    };
+  }.${device};
+
+  # Prebuilt wheels are dynamically linked against things that nix can't find.
+  # Run `autoPatchelfHook` to automagically fix them.
+  nativeBuildInputs = [ autoPatchelfHook ] ++ lib.optional cudaSupport addOpenGLRunpath;
+  # Dynamic link dependencies
+  buildInputs = [ stdenv.cc.cc ];
+
+  # jaxlib contains shared libraries that open other shared libraries via dlopen
+  # and these implicit dependencies are not recognized by ldd or
+  # autoPatchelfHook. That means we need to sneak them into rpath. This step
+  # must be done after autoPatchelfHook and the automatic stripping of
+  # artifacts. autoPatchelfHook runs in postFixup and auto-stripping runs in the
+  # patchPhase. Dependencies:
+  #   * libcudart.so.11.0 -> cudatoolkit_11.lib
+  #   * libcublas.so.11   -> cudatoolkit_11
+  #   * libcuda.so.1      -> opengl driver in /run/opengl-driver/lib
+  preInstallCheck = lib.optional cudaSupport ''
+    shopt -s globstar
+
+    addOpenGLRunpath $out/**/*.so
+
+    for file in $out/**/*.so; do
+      rpath=$(patchelf --print-rpath $file)
+      # For some reason `makeLibraryPath` on `cudatoolkit_11` maps to
+      # <cudatoolkit_11.lib>/lib which is different from <cudatoolkit_11>/lib.
+      patchelf --set-rpath "$rpath:${cudatoolkit_11}/lib:${lib.makeLibraryPath [ cudatoolkit_11.lib ]}" $file
+    done
+  '';
+
+  # pip dependencies and optionally cudatoolkit.
+  propagatedBuildInputs = [ absl-py flatbuffers scipy ] ++ lib.optional cudaSupport cudatoolkit_11;
+
+  pythonImportsCheck = [ "jaxlib" ];
+
+  meta = with lib; {
+    description = "XLA library for JAX";
+    homepage    = "https://github.com/google/jax";
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ samuela ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/python-modules/jaxlib/default.nix b/pkgs/development/python-modules/jaxlib/default.nix
index f597eeacfced4..bfb7f494ce1a3 100644
--- a/pkgs/development/python-modules/jaxlib/default.nix
+++ b/pkgs/development/python-modules/jaxlib/default.nix
@@ -1,90 +1,285 @@
-# For the moment we only support the CPU and GPU backends of jaxlib. The TPU
-# backend will require some additional work. Those wheels are located here:
-# https://storage.googleapis.com/jax-releases/libtpu_releases.html.
-
-# For future reference, the easiest way to test the GPU backend is to run
-#   NIX_PATH=.. nix-shell -p python3 python3Packages.jax "python3Packages.jaxlib.override { cudaSupport = true; }"
-#   export XLA_FLAGS=--xla_gpu_force_compilation_parallelism=1
-#   python -c "from jax.lib import xla_bridge; assert xla_bridge.get_backend().platform == 'gpu'"
-#   python -c "from jax import random; random.PRNGKey(0)"
-#   python -c "from jax import random; x = random.normal(random.PRNGKey(0), (100, 100)); x @ x"
-# There's no convenient way to test the GPU backend in the derivation since the
-# nix build environment blocks access to the GPU. See also:
-#   * https://github.com/google/jax/issues/971#issuecomment-508216439
-#   * https://github.com/google/jax/issues/5723#issuecomment-913038780
-
-{ addOpenGLRunpath, autoPatchelfHook, buildPythonPackage, config
-, fetchurl, isPy39, lib, stdenv
-# propagatedBuildInputs
-, absl-py, flatbuffers, scipy, cudatoolkit_11
-# Options:
-, cudaSupport ? config.cudaSupport or false
-}:
+{ lib
+, pkgs
+, stdenv
+
+  # Build-time dependencies:
+, addOpenGLRunpath
+, bazel_4
+, binutils
+, buildBazelPackage
+, buildPythonPackage
+, cython
+, fetchFromGitHub
+, git
+, jsoncpp
+, pybind11
+, setuptools
+, symlinkJoin
+, wheel
+, which
+
+  # Build-time and runtime CUDA dependencies:
+, cudatoolkit ? null
+, cudnn ? null
+, nccl ? null
 
-assert cudaSupport -> lib.versionAtLeast cudatoolkit_11.version "11.1";
+  # Python dependencies:
+, absl-py
+, flatbuffers
+, numpy
+, scipy
+, six
+
+  # Runtime dependencies:
+, double-conversion
+, giflib
+, grpc
+, libjpeg_turbo
+, python
+, snappy
+, zlib
+
+  # CUDA flags:
+, cudaCapabilities ? [ "sm_35" "sm_50" "sm_60" "sm_70" "sm_75" "compute_80" ]
+, cudaSupport ? false
+
+  # MKL:
+, mklSupport ? true
+}:
 
 let
-  device = if cudaSupport then "gpu" else "cpu";
-in
-buildPythonPackage rec {
+
   pname = "jaxlib";
-  version = "0.1.71";
-  format = "wheel";
+  version = "0.1.75";
+
+  meta = with lib; {
+    description = "JAX is Autograd and XLA, brought together for high-performance machine learning research.";
+    homepage = "https://github.com/google/jax";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ndl ];
+  };
+
+  cudatoolkit_joined = symlinkJoin {
+    name = "${cudatoolkit.name}-merged";
+    paths = [
+      cudatoolkit.lib
+      cudatoolkit.out
+    ] ++ lib.optionals (lib.versionOlder cudatoolkit.version "11") [
+      # for some reason some of the required libs are in the targets/x86_64-linux
+      # directory; not sure why but this works around it
+      "${cudatoolkit}/targets/${stdenv.system}"
+    ];
+  };
+
+  cudatoolkit_cc_joined = symlinkJoin {
+    name = "${cudatoolkit.cc.name}-merged";
+    paths = [
+      cudatoolkit.cc
+      binutils.bintools # for ar, dwp, nm, objcopy, objdump, strip
+    ];
+  };
 
-  # At the time of writing (8/19/21), there are releases for 3.7-3.9. Supporting
-  # all of them is a pain, so we focus on 3.9, the current nixpkgs python3
-  # version.
-  disabled = !isPy39;
+  bazel-build = buildBazelPackage {
+    name = "bazel-build-${pname}-${version}";
 
-  src = {
-    cpu = fetchurl {
-      url = "https://storage.googleapis.com/jax-releases/nocuda/jaxlib-${version}-cp39-none-manylinux2010_x86_64.whl";
-      sha256 = "sha256:0rqhs6qabydizlv5d3rb20dbv6612rr7dqfniy9r6h4kazdinsn6";
+    bazel = bazel_4;
+
+    src = fetchFromGitHub {
+      owner = "google";
+      repo = "jax";
+      rev = "${pname}-v${version}";
+      sha256 = "01ks4djbpjsxjy2zwdwv3h00sgwi4ps3jz75swddrw2f56zjdmw4";
     };
-    gpu = fetchurl {
-      url = "https://storage.googleapis.com/jax-releases/cuda111/jaxlib-${version}+cuda111-cp39-none-manylinux2010_x86_64.whl";
-      sha256 = "sha256:065kyzjsk9m84d138p99iymdiiicm1qz8a3iwxz8rspl43rwrw89";
+
+    nativeBuildInputs = [
+      cython
+      pkgs.flatbuffers
+      git
+      setuptools
+      wheel
+      which
+    ];
+
+    buildInputs = [
+      double-conversion
+      giflib
+      grpc
+      jsoncpp
+      libjpeg_turbo
+      numpy
+      pkgs.flatbuffers
+      pkgs.protobuf
+      pybind11
+      scipy
+      six
+      snappy
+      zlib
+    ] ++ lib.optionals cudaSupport [
+      cudatoolkit
+      cudnn
+    ];
+
+    postPatch = ''
+      rm -f .bazelversion
+    '';
+
+    bazelTarget = "//build:build_wheel";
+
+    removeRulesCC = false;
+
+    GCC_HOST_COMPILER_PREFIX = lib.optionalString cudaSupport "${cudatoolkit_cc_joined}/bin";
+    GCC_HOST_COMPILER_PATH = lib.optionalString cudaSupport "${cudatoolkit_cc_joined}/bin/gcc";
+
+    preConfigure = ''
+      # dummy ldconfig
+      mkdir dummy-ldconfig
+      echo "#!${stdenv.shell}" > dummy-ldconfig/ldconfig
+      chmod +x dummy-ldconfig/ldconfig
+      export PATH="$PWD/dummy-ldconfig:$PATH"
+      cat <<CFG > ./.jax_configure.bazelrc
+      build --strategy=Genrule=standalone
+      build --repo_env PYTHON_BIN_PATH="${python}/bin/python"
+      build --action_env=PYENV_ROOT
+      build --python_path="${python}/bin/python"
+      build --distinct_host_configuration=false
+    '' + lib.optionalString cudaSupport ''
+      build --action_env CUDA_TOOLKIT_PATH="${cudatoolkit_joined}"
+      build --action_env CUDNN_INSTALL_PATH="${cudnn}"
+      build --action_env TF_CUDA_PATHS="${cudatoolkit_joined},${cudnn},${nccl}"
+      build --action_env TF_CUDA_VERSION="${lib.versions.majorMinor cudatoolkit.version}"
+      build --action_env TF_CUDNN_VERSION="${lib.versions.major cudnn.version}"
+      build:cuda --action_env TF_CUDA_COMPUTE_CAPABILITIES="${lib.concatStringsSep "," cudaCapabilities}"
+    '' + ''
+      CFG
+    '';
+
+    # Copy-paste from TF derivation.
+    # Most of these are not really used in jaxlib compilation but it's simpler to keep it
+    # 'as is' so that it's more compatible with TF derivation.
+    TF_SYSTEM_LIBS = lib.concatStringsSep "," [
+      "absl_py"
+      "astor_archive"
+      "astunparse_archive"
+      "boringssl"
+      # Not packaged in nixpkgs
+      # "com_github_googleapis_googleapis"
+      # "com_github_googlecloudplatform_google_cloud_cpp"
+      "com_github_grpc_grpc"
+      "com_google_protobuf"
+      # Fails with the error: external/org_tensorflow/tensorflow/core/profiler/utils/tf_op_utils.cc:46:49: error: no matching function for call to 're2::RE2::FullMatch(absl::lts_2020_02_25::string_view&, re2::RE2&)'
+      # "com_googlesource_code_re2"
+      "curl"
+      "cython"
+      "dill_archive"
+      "double_conversion"
+      "enum34_archive"
+      "flatbuffers"
+      "functools32_archive"
+      "gast_archive"
+      "gif"
+      "hwloc"
+      "icu"
+      "jsoncpp_git"
+      "libjpeg_turbo"
+      "lmdb"
+      "nasm"
+      # "nsync" # not packaged in nixpkgs
+      "opt_einsum_archive"
+      "org_sqlite"
+      "pasta"
+      "pcre"
+      "png"
+      "pybind11"
+      "six_archive"
+      "snappy"
+      "tblib_archive"
+      "termcolor_archive"
+      "typing_extensions_archive"
+      "wrapt"
+      "zlib"
+    ];
+
+    # Make sure Bazel knows about our configuration flags during fetching so that the
+    # relevant dependencies can be downloaded.
+    bazelFetchFlags = bazel-build.bazelBuildFlags;
+
+    bazelBuildFlags = [
+      "-c opt"
+    ] ++ lib.optional (stdenv.targetPlatform.isx86_64 && stdenv.targetPlatform.isUnix) [
+      "--config=avx_posix"
+    ] ++ lib.optional cudaSupport [
+      "--config=cuda"
+    ] ++ lib.optional mklSupport [
+      "--config=mkl_open_source_only"
+    ];
+
+    fetchAttrs = {
+      sha256 =
+        if cudaSupport then
+          "1lyipbflqd1y5cdj4hdml5h1inbr0wwfgp6xw5p5623qv3im16lh"
+        else
+          "09kapzpfwnlr6ghmgwac232bqf2a57mm1brz4cvfx8mlg8bbaw63";
+    };
+
+    buildAttrs = {
+      outputs = [ "out" ];
+
+      # Note: we cannot do most of this patching at `patch` phase as the deps are not available yet.
+      # 1) Fix pybind11 include paths.
+      # 2) Force static protobuf linkage to prevent crashes on loading multiple extensions
+      #    in the same python program due to duplicate protobuf DBs.
+      # 3) Patch python path in the compiler driver.
+      preBuild = ''
+        for src in ./jaxlib/*.{cc,h}; do
+          sed -i 's@include/pybind11@pybind11@g' $src
+        done
+        sed -i 's@-lprotobuf@-l:libprotobuf.a@' ../output/external/org_tensorflow/third_party/systemlibs/protobuf.BUILD
+        sed -i 's@-lprotoc@-l:libprotoc.a@' ../output/external/org_tensorflow/third_party/systemlibs/protobuf.BUILD
+      '' + lib.optionalString cudaSupport ''
+        patchShebangs ../output/external/org_tensorflow/third_party/gpus/crosstool/clang/bin/crosstool_wrapper_driver_is_not_gcc.tpl
+      '';
+
+      installPhase = ''
+        ./bazel-bin/build/build_wheel --output_path=$out --cpu=${stdenv.targetPlatform.linuxArch}
+      '';
     };
-  }.${device};
-
-  # Prebuilt wheels are dynamically linked against things that nix can't find.
-  # Run `autoPatchelfHook` to automagically fix them.
-  nativeBuildInputs = [ autoPatchelfHook ] ++ lib.optional cudaSupport addOpenGLRunpath;
-  # Dynamic link dependencies
-  buildInputs = [ stdenv.cc.cc ];
-
-  # jaxlib contains shared libraries that open other shared libraries via dlopen
-  # and these implicit dependencies are not recognized by ldd or
-  # autoPatchelfHook. That means we need to sneak them into rpath. This step
-  # must be done after autoPatchelfHook and the automatic stripping of
-  # artifacts. autoPatchelfHook runs in postFixup and auto-stripping runs in the
-  # patchPhase. Dependencies:
-  #   * libcudart.so.11.0 -> cudatoolkit_11.lib
-  #   * libcublas.so.11   -> cudatoolkit_11
-  #   * libcuda.so.1      -> opengl driver in /run/opengl-driver/lib
-  preInstallCheck = lib.optional cudaSupport ''
-    shopt -s globstar
-
-    addOpenGLRunpath $out/**/*.so
-
-    for file in $out/**/*.so; do
-      rpath=$(patchelf --print-rpath $file)
-      # For some reason `makeLibraryPath` on `cudatoolkit_11` maps to
-      # <cudatoolkit_11.lib>/lib which is different from <cudatoolkit_11>/lib.
-      patchelf --set-rpath "$rpath:${cudatoolkit_11}/lib:${lib.makeLibraryPath [ cudatoolkit_11.lib ]}" $file
+
+    inherit meta;
+  };
+
+in
+buildPythonPackage {
+  inherit meta pname version;
+  format = "wheel";
+
+  src = "${bazel-build}/jaxlib-${version}-cp${builtins.replaceStrings ["."] [""] python.pythonVersion}-none-manylinux2010_${stdenv.targetPlatform.linuxArch}.whl";
+
+  postInstall = lib.optionalString cudaSupport ''
+    find $out -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
+      addOpenGLRunpath "$lib"
+      patchelf --set-rpath "${cudatoolkit}/lib:${cudatoolkit.lib}/lib:${cudnn}/lib:${nccl}/lib:$(patchelf --print-rpath "$lib")" "$lib"
     done
   '';
 
-  # pip dependencies and optionally cudatoolkit.
-  propagatedBuildInputs = [ absl-py flatbuffers scipy ] ++ lib.optional cudaSupport cudatoolkit_11;
+  nativeBuildInputs = lib.optional cudaSupport addOpenGLRunpath;
+
+  propagatedBuildInputs = [
+    absl-py
+    double-conversion
+    flatbuffers
+    giflib
+    grpc
+    jsoncpp
+    libjpeg_turbo
+    numpy
+    scipy
+    six
+    snappy
+  ];
 
   pythonImportsCheck = [ "jaxlib" ];
 
-  meta = with lib; {
-    description = "XLA library for JAX";
-    homepage    = "https://github.com/google/jax";
-    license     = licenses.asl20;
-    maintainers = with maintainers; [ samuela ];
-    platforms = [ "x86_64-linux" ];
-  };
+  # Without it there are complaints about libcudart.so.11.0 not being found
+  # because RPATH path entries added above are stripped.
+  dontPatchELF = cudaSupport;
 }
diff --git a/pkgs/development/python-modules/jc/default.nix b/pkgs/development/python-modules/jc/default.nix
index 3a9d24c29dd8e..1a4ce8f7498a3 100644
--- a/pkgs/development/python-modules/jc/default.nix
+++ b/pkgs/development/python-modules/jc/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "jc";
-  version = "1.17.1";
+  version = "1.17.5";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "kellyjonbrazil";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ISggj6oOF0B7TKIQAlZtauRrDAWP88OOFezLJK6edjI=";
+    sha256 = "004773a1wsip1gnqvas78k0snv7yq83qv1spir891sz4mmg7fyin";
   };
 
   propagatedBuildInputs = [ ruamel-yaml xmltodict pygments ];
diff --git a/pkgs/development/python-modules/jdatetime/default.nix b/pkgs/development/python-modules/jdatetime/default.nix
index 96e8e4d7c34f7..c498a69d0a622 100644
--- a/pkgs/development/python-modules/jdatetime/default.nix
+++ b/pkgs/development/python-modules/jdatetime/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "jdatetime";
-  version = "3.6.4";
+  version = "3.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "39d0be41076b3a3850c3bfa90817e7ed459edc0e9cadce37dc7229b11f121c7e";
+    sha256 = "f06876c926b8cf88b2f0f68d6cda2b0ff86002385877c9867970e1d017ef82a8";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/jedi-language-server/default.nix b/pkgs/development/python-modules/jedi-language-server/default.nix
index 8aead2738f401..90e4634b46c97 100644
--- a/pkgs/development/python-modules/jedi-language-server/default.nix
+++ b/pkgs/development/python-modules/jedi-language-server/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "jedi-language-server";
-  version = "0.34.8";
+  version = "0.34.11";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pappasam";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-mJGgDDjPZXde4M4OHwj81KYoaFXFAwOZ+v18YE+arFE=";
+    sha256 = "0gxpq93mfyzhjz5yvjwv2jjda1djpf20x38893ngswsm7lrh62x5";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix b/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
index ca96e63060da2..08eed6e941e7c 100644
--- a/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
+++ b/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , pythonOlder
 , fetchPypi
+, certifi
 , requests
 , six
 , websocket-client
@@ -9,15 +10,16 @@
 
 buildPythonPackage rec {
   pname = "jellyfin-apiclient-python";
-  version = "1.7.2";
+  version = "1.8.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-nSLUa9/jAT6XrHo77kV5HYBxPO/lhcWKqPfpES7ul9A=";
+    sha256 = "t2XmZ7rsrZq943lzRDrqzsY/djFNjFbkEYeHeA2AViI=";
   };
 
   propagatedBuildInputs = [
+    certifi
     requests
     six
     websocket-client
diff --git a/pkgs/development/python-modules/jenkins-job-builder/default.nix b/pkgs/development/python-modules/jenkins-job-builder/default.nix
index f2b014ff52400..5613b904f63df 100644
--- a/pkgs/development/python-modules/jenkins-job-builder/default.nix
+++ b/pkgs/development/python-modules/jenkins-job-builder/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "jenkins-job-builder";
-  version = "3.10.0";
+  version = "3.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-8MP8YHIkxDqjPsUYv6ROmuRwcGMzPpsVCRwxga3XdYU=";
+    sha256 = "42ea423f44beafee0e985009124968e300447f6e3be4180e83568cf21520d1b1";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/jinja2/2.nix b/pkgs/development/python-modules/jinja2/2.nix
index dce93d33ab506..02127a50df746 100644
--- a/pkgs/development/python-modules/jinja2/2.nix
+++ b/pkgs/development/python-modules/jinja2/2.nix
@@ -21,10 +21,11 @@ buildPythonPackage rec {
 
   # Multiple tests run out of stack space on 32bit systems with python2.
   # See https://github.com/pallets/jinja/issues/1158
-  doCheck = !stdenv.is32bit || isPy3k;
+  # warnings are no longer being filtered correctly for python2
+  doCheck = !stdenv.is32bit && isPy3k;
 
   checkPhase = ''
-    pytest -v tests
+    pytest -v tests -W ignore::DeprecationWarning
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/jinja2/default.nix b/pkgs/development/python-modules/jinja2/default.nix
index 7be9367da916f..5d7ca68b19b79 100644
--- a/pkgs/development/python-modules/jinja2/default.nix
+++ b/pkgs/development/python-modules/jinja2/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "Jinja2";
-  version = "3.0.2";
+  version = "3.0.3";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "827a0e32839ab1600d4eb1c4c33ec5a8edfbc5cb42dafa13b81f182f97784b45";
+    sha256 = "611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/josepy/default.nix b/pkgs/development/python-modules/josepy/default.nix
index b262e6883322e..c091480f63c6a 100644
--- a/pkgs/development/python-modules/josepy/default.nix
+++ b/pkgs/development/python-modules/josepy/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "josepy";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e9bcaf605411cadaec04841ae2d5f77ebb178b7b6df7c9aed1d97399ac18685b";
+    sha256 = "40ef59f2f537ec01bafe698dad66281f6ccf4642f747411647db403ab8fa9a2d";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/jproperties/default.nix b/pkgs/development/python-modules/jproperties/default.nix
new file mode 100644
index 0000000000000..0089e153f4f37
--- /dev/null
+++ b/pkgs/development/python-modules/jproperties/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, six
+, pytest-datadir
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "jproperties";
+  version = "2.1.1";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "Tblue";
+    repo = "python-jproperties";
+    rev = "v${version}";
+    sha256 = "sha256-O+ALeGHMNjW1dc9IRyLzO81k8DW2vbGjuZqXxgrhYjo=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    six
+  ];
+
+  checkInputs = [
+    pytest-datadir
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "setuptools_scm ~= 3.3" "setuptools_scm"
+    substituteInPlace pytest.ini \
+      --replace "--cov=jproperties --cov-report=term --cov-report=html --cov-branch" ""
+  '';
+
+  disabledTestPaths = [
+    # TypeError: 'PosixPath' object...
+    "tests/test_simple_utf8.py"
+  ];
+
+  pythonImportsCheck = [
+    "jproperties"
+  ];
+
+  meta = with lib; {
+    description = "Java Property file parser and writer for Python";
+    homepage = "https://github.com/Tblue/python-jproperties";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/jschema-to-python/default.nix b/pkgs/development/python-modules/jschema-to-python/default.nix
new file mode 100644
index 0000000000000..a9100e061d7b0
--- /dev/null
+++ b/pkgs/development/python-modules/jschema-to-python/default.nix
@@ -0,0 +1,39 @@
+{ lib, buildPythonPackage, fetchPypi
+, attrs
+, jsonpickle
+, pbr
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "jschema-to-python";
+  version = "1.2.3";
+
+  src = fetchPypi {
+    pname = "jschema_to_python";
+    inherit version;
+    sha256 = "76ff14fe5d304708ccad1284e4b11f96a658949a31ee7faed9e0995279549b91";
+  };
+
+  nativeBuildInputs = [
+    pbr
+  ];
+
+  propagatedBuildInputs = [
+    attrs
+    jsonpickle
+  ];
+
+  checkInputs =[
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "jschema_to_python" ];
+
+  meta = with lib; {
+    description = "Generate source code for Python classes from a JSON schema";
+    homepage = "https://github.com/microsoft/jschema-to-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/jsonpointer/default.nix b/pkgs/development/python-modules/jsonpointer/default.nix
index 39249c648f561..2bd41e0815b4d 100644
--- a/pkgs/development/python-modules/jsonpointer/default.nix
+++ b/pkgs/development/python-modules/jsonpointer/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "jsonpointer";
-  version = "2.1";
+  version = "2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5a34b698db1eb79ceac454159d3f7c12a451a91f6334a4f638454327b7a89962";
+    sha256 = "f09f8deecaaa5aea65b5eb4f67ca4e54e1a61f7a11c75085e360fe6feb6a48bf";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/jsonrpc-websocket/default.nix b/pkgs/development/python-modules/jsonrpc-websocket/default.nix
index 530c08dbaa05f..ba72370229685 100644
--- a/pkgs/development/python-modules/jsonrpc-websocket/default.nix
+++ b/pkgs/development/python-modules/jsonrpc-websocket/default.nix
@@ -1,19 +1,25 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , aiohttp
 , jsonrpc-base
 , pytest-asyncio
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "jsonrpc-websocket";
-  version = "3.1.0";
+  version = "3.1.1";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "eeaaac2330f6f1cdafd378ddf5287a47a7c8609ab212a2f576121c1e61c7a344";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "emlove";
+    repo = "jsonrpc-websocket";
+    rev = version;
+    sha256 = "aAXY1OUsF83rGQ1sg1lDrbWmxWqJJ+ZnuvHR1Y+ZDs4=";
   };
 
   propagatedBuildInputs = [
@@ -26,7 +32,13 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
-  pytestFlagsArray = [ "tests.py" ];
+  pytestFlagsArray = [
+    "tests.py"
+  ];
+
+  pythonImportsCheck = [
+    "jsonrpc_websocket"
+  ];
 
   meta = with lib; {
     description = "A JSON-RPC websocket client library for asyncio";
diff --git a/pkgs/development/python-modules/jupyter-client/default.nix b/pkgs/development/python-modules/jupyter-client/default.nix
index b543008988ea3..9cb465947551a 100644
--- a/pkgs/development/python-modules/jupyter-client/default.nix
+++ b/pkgs/development/python-modules/jupyter-client/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "jupyter_client";
-  version = "7.0.6";
+  version = "7.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8b6e06000eb9399775e0a55c52df6c1be4766666209c22f90c2691ded0e338dc";
+    sha256 = "a5f995a73cffb314ed262713ae6dfce53c6b8216cea9f332071b8ff44a6e1654";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyter-sphinx/default.nix b/pkgs/development/python-modules/jupyter-sphinx/default.nix
index 4d2efcf00b7ae..2da21db1eb145 100644
--- a/pkgs/development/python-modules/jupyter-sphinx/default.nix
+++ b/pkgs/development/python-modules/jupyter-sphinx/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "jupyter-sphinx";
-  version = "0.2.4";
+  version = "0.3.2";
 
   src = fetchPypi {
     inherit version;
     pname = "jupyter_sphinx";
-    sha256 = "b5ba1efdd1488b385de0068036a665932ed93998e40ce3a342c60f0926781fd9";
+    sha256 = "37fc9408385c45326ac79ca0452fbd7ae2bf0e97842d626d2844d4830e30aaf2";
   };
 
   propagatedBuildInputs = [ nbformat sphinx ipywidgets ];
diff --git a/pkgs/development/python-modules/jupyter_core/default.nix b/pkgs/development/python-modules/jupyter_core/default.nix
index f83ba1362341f..a7dd89a1f89a0 100644
--- a/pkgs/development/python-modules/jupyter_core/default.nix
+++ b/pkgs/development/python-modules/jupyter_core/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "jupyter_core";
-  version = "4.8.1";
+  version = "4.9.1";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ef210dcb4fca04de07f2ead4adf408776aca94d17151d6f750ad6ded0b91ea16";
+    sha256 = "dce8a7499da5a53ae3afd5a9f4b02e5df1d57250cf48f3ad79da23b4778cd6fa";
   };
 
   checkInputs = [ pytest mock glibcLocales nose ];
diff --git a/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix b/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix
index bd3e073a7724b..2137a0f3f055d 100644
--- a/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix
+++ b/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , jupyterhub
 , tornado
 , bash
@@ -8,11 +8,13 @@
 
 buildPythonPackage rec {
   pname = "jupyterhub-systemdspawner";
-  version = "0.15.0";
+  version = "0.15";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b6e2d981657aa5d3794abb89b1650d056524158a3d0f0f706007cae9b6dbeb2b";
+  src = fetchFromGitHub {
+    owner = "jupyterhub";
+    repo = "systemdspawner";
+    rev = "v${version}";
+    sha256 = "sha256-EUCA+CKCeYr+cLVrqTqe3Q32JkbqeALL6tfOnlVHk8Q=";
   };
 
   propagatedBuildInputs = [
@@ -20,6 +22,8 @@ buildPythonPackage rec {
     tornado
   ];
 
+  buildInputs = [ bash ];
+
   postPatch = ''
     substituteInPlace systemdspawner/systemd.py \
       --replace "/bin/bash" "${bash}/bin/bash"
@@ -31,10 +35,16 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
+  postInstall = ''
+    mkdir -p $out/bin
+    cp check-kernel.bash $out/bin/
+    patchShebangs $out/bin
+  '';
+
   meta = with lib; {
     description = "JupyterHub Spawner using systemd for resource isolation";
     homepage = "https://github.com/jupyterhub/systemdspawner";
     license = licenses.bsd3;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc erictapen ];
   };
 }
diff --git a/pkgs/development/python-modules/jupyterlab-git/default.nix b/pkgs/development/python-modules/jupyterlab-git/default.nix
index cd0ace2494955..46c76ebfe20e7 100644
--- a/pkgs/development/python-modules/jupyterlab-git/default.nix
+++ b/pkgs/development/python-modules/jupyterlab-git/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab-git";
-  version = "0.33.0";
+  version = "0.34.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     pname = "jupyterlab_git";
     inherit version;
-    sha256 = "0rbl472k66asfq9n9xqd2zpw8z7yrk6ka411vhvlvvszzb7g6w13";
+    sha256 = "3b9ee3a577834c0f021d41069be7b03068297ce0c2a73c76b17e8018eb3eb62f";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/jupyterlab/default.nix b/pkgs/development/python-modules/jupyterlab/default.nix
index d018b626996f3..76b160eb97c35 100644
--- a/pkgs/development/python-modules/jupyterlab/default.nix
+++ b/pkgs/development/python-modules/jupyterlab/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab";
-  version = "3.1.18";
+  version = "3.2.5";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a43733acc3729557fc4758cff55652e52896e42c64c1f12540656ae7f298b806";
+    sha256 = "31b28f473b0f5826d2020583973c385526f0559b5b26efac6b8035ac1562874a";
   };
 
   nativeBuildInputs = [ jupyter-packaging ];
diff --git a/pkgs/development/python-modules/jupyterlab_server/default.nix b/pkgs/development/python-modules/jupyterlab_server/default.nix
index f342f2f64eca9..7216421a86c73 100644
--- a/pkgs/development/python-modules/jupyterlab_server/default.nix
+++ b/pkgs/development/python-modules/jupyterlab_server/default.nix
@@ -16,12 +16,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab_server";
-  version = "2.8.2";
+  version = "2.10.2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "26d813c8162c83d466df7d155865987dabe70aa452f9187dfb79fd88afc8fa0b";
+    sha256 = "bf1ec9e49d4e26f14d70055cc293b3f8ec8410f95a4d5b4bd55c442d9b8b266c";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/jupytext/default.nix b/pkgs/development/python-modules/jupytext/default.nix
index 89d8c288a7954..777f82a3e5adf 100644
--- a/pkgs/development/python-modules/jupytext/default.nix
+++ b/pkgs/development/python-modules/jupytext/default.nix
@@ -1,23 +1,23 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pythonOlder
 , GitPython
-, jupyter-packaging
 , jupyter-client
+, jupyter-packaging
 , jupyterlab
 , markdown-it-py
 , mdit-py-plugins
 , nbformat
 , notebook
 , pytestCheckHook
+, pythonOlder
 , pyyaml
 , toml
 }:
 
 buildPythonPackage rec {
   pname = "jupytext";
-  version = "1.11.2";
+  version = "1.13.5";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -26,10 +26,14 @@ buildPythonPackage rec {
     owner = "mwouts";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-S2SKAC2oT4VIVMMDbu/Puo87noAgnQs1hh88JphutA8=";
+    sha256 = "0rapp2baqml1z3n8k7ijf5461b3p8wgr45y3njz54q75v0jk7v45";
   };
 
-  buildInputs = [ jupyter-packaging jupyterlab ];
+  buildInputs = [
+    jupyter-packaging
+    jupyterlab
+  ];
+
   propagatedBuildInputs = [
     markdown-it-py
     mdit-py-plugins
@@ -39,16 +43,32 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytestCheckHook
     GitPython
     jupyter-client
     notebook
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    # https://github.com/mwouts/jupytext/pull/885
+    substituteInPlace setup.py \
+      --replace "markdown-it-py~=1.0" "markdown-it-py>=1.0.0,<3.0.0"
+  '';
+
+  preCheck = ''
+    # Tests that use a Jupyter notebook require $HOME to be writable
+    export HOME=$(mktemp -d);
+  '';
+
+  pytestFlagsArray = [
+    # Pre-commit tests expect the source directory to be a Git repository
+    "--ignore-glob='tests/test_pre_commit_*.py'"
+  ];
+
+  pythonImportsCheck = [
+    "jupytext"
+    "jupytext.cli"
   ];
-  # Tests that use a Jupyter notebook require $HOME to be writable.
-  HOME = "$TMPDIR";
-  # Pre-commit tests expect the source directory to be a Git repository.
-  pytestFlagsArray = [ "--ignore-glob='tests/test_pre_commit_*.py'" ];
-  pythonImportsCheck = [ "jupytext" "jupytext.cli" ];
 
   meta = with lib; {
     description = "Jupyter notebooks as Markdown documents, Julia, Python or R scripts";
diff --git a/pkgs/development/python-modules/k5test/default.nix b/pkgs/development/python-modules/k5test/default.nix
index 0079194f4fa71..f5efb24633bb3 100644
--- a/pkgs/development/python-modules/k5test/default.nix
+++ b/pkgs/development/python-modules/k5test/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "k5test";
-  version = "0.10.0";
+  version = "0.10.1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fc5e7e5e286b2f331c1396c33f2a1cd8cf34e78d8d482168a50ffd8576a1455c";
+    sha256 = "2c9181133f3d52c8e29a5ba970b668273c08f855e5da834aaee2ea9efeb6b069";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/kajiki/default.nix b/pkgs/development/python-modules/kajiki/default.nix
index 3f202bd51f9fa..6dd55a4876f18 100644
--- a/pkgs/development/python-modules/kajiki/default.nix
+++ b/pkgs/development/python-modules/kajiki/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "kajiki";
-  version = "0.8.3";
+  version = "0.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c7a1f033b5cfaafa97bda5a475f58a7abcd76b348494995428fdcf6c8f648ad9";
+    sha256 = "f0d6dfa27eb2b6c0d2a28ae21d69dceb5363cc0432f4045bcc98aac42a662ccb";
   };
 
   propagatedBuildInputs = [ Babel pytz nine ];
diff --git a/pkgs/development/python-modules/karton-autoit-ripper/default.nix b/pkgs/development/python-modules/karton-autoit-ripper/default.nix
index e675c055d7868..2e7d561cf6e00 100644
--- a/pkgs/development/python-modules/karton-autoit-ripper/default.nix
+++ b/pkgs/development/python-modules/karton-autoit-ripper/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "karton-autoit-ripper";
-  version = "1.0.1";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "CERT-Polska";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1bsqpf9w6d9fjysmnafaglg2w41gsafs2xz4dzcgc7n92shpcs8w";
+    sha256 = "1gclrrc0n72bfj4m55kk8d69zrfvnlwm9692ni9w7d2231mvv7bw";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/karton-dashboard/default.nix b/pkgs/development/python-modules/karton-dashboard/default.nix
index ad7d871385694..5b67123ee2788 100644
--- a/pkgs/development/python-modules/karton-dashboard/default.nix
+++ b/pkgs/development/python-modules/karton-dashboard/default.nix
@@ -5,11 +5,15 @@
 , karton-core
 , mistune
 , prometheus-client
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "karton-dashboard";
   version = "1.2.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "CERT-Polska";
@@ -28,7 +32,7 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace requirements.txt \
       --replace "Flask==1.1.1" "Flask" \
-      --replace "prometheus-client==0.9.0" "prometheus-client"
+      --replace "prometheus_client==0.11.0" "prometheus_client"
   '';
 
   # Project has no tests. pythonImportsCheck requires MinIO configuration
diff --git a/pkgs/development/python-modules/keepkey/default.nix b/pkgs/development/python-modules/keepkey/default.nix
index 95981992fea3e..a29ce93680714 100644
--- a/pkgs/development/python-modules/keepkey/default.nix
+++ b/pkgs/development/python-modules/keepkey/default.nix
@@ -1,5 +1,13 @@
-{ lib, fetchFromGitHub, buildPythonPackage, pytest
-, ecdsa , mnemonic, protobuf, hidapi, trezor }:
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, ecdsa
+, hidapi
+, libusb1
+, mnemonic
+, protobuf
+, pytest
+}:
 
 buildPythonPackage rec {
   pname = "keepkey";
@@ -12,9 +20,7 @@ buildPythonPackage rec {
     sha256 = "00hqppdj3s9y25x4ad59y8axq94dd4chhw9zixq32sdrd9v8z55a";
   };
 
-  propagatedBuildInputs = [ protobuf hidapi trezor ];
-
-  buildInputs = [ ecdsa mnemonic ];
+  propagatedBuildInputs = [ ecdsa hidapi libusb1 mnemonic protobuf ];
 
   checkInputs = [ pytest ];
 
diff --git a/pkgs/development/python-modules/keras-preprocessing/default.nix b/pkgs/development/python-modules/keras-preprocessing/default.nix
index d62a179136f4a..a0d9d4bb153d0 100644
--- a/pkgs/development/python-modules/keras-preprocessing/default.nix
+++ b/pkgs/development/python-modules/keras-preprocessing/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, numpy, six, scipy, pillow, pytest, Keras }:
+{ lib, buildPythonPackage, fetchPypi, numpy, six, scipy, pillow, pytest, keras }:
 
 buildPythonPackage rec {
   pname = "Keras_Preprocessing";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest Keras
+    pytest keras
   ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/keras/default.nix b/pkgs/development/python-modules/keras/default.nix
index 28b09222b4726..2b9a269e280fc 100644
--- a/pkgs/development/python-modules/keras/default.nix
+++ b/pkgs/development/python-modules/keras/default.nix
@@ -5,12 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  pname = "Keras";
-  version = "2.4.3";
+  pname = "keras";
+  version = "2.7.0";
+  format = "wheel";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "fedd729b52572fb108a98e3d97e1bac10a81d3917d2103cc20ab2a5f03beb973";
+    inherit format pname version;
+    sha256 = "0c33ae1f728064ca0d35dfba999e9c316f03623bf5688c82fb83cc74a80ea248";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/keyboard/default.nix b/pkgs/development/python-modules/keyboard/default.nix
new file mode 100644
index 0000000000000..8c85da5ef4c2b
--- /dev/null
+++ b/pkgs/development/python-modules/keyboard/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub }:
+
+buildPythonPackage rec {
+  pname = "keyboard";
+  version = "0.13.5";
+
+  src = fetchFromGitHub {
+    owner = "boppreh";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-U4GWhPp28azBE3Jn9xpLxudOKx0PjnYO77EM2HsJ9lM=";
+  };
+
+  pythonImportsCheck = [ "keyboard" ];
+
+  # Specific OS tests are being run for other OS, like
+  # winmouse on Linux, which provides the following error:
+  # AttributeError: module 'ctypes' has no attribute 'WinDLL'
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Hook and simulate keyboard events on Windows and Linux";
+    homepage = "https://github.com/boppreh/keyboard";
+    license = licenses.mit;
+    maintainers = with maintainers; [ wolfangaukang ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/python-modules/keyring/2.nix b/pkgs/development/python-modules/keyring/2.nix
deleted file mode 100644
index 553b649b63829..0000000000000
--- a/pkgs/development/python-modules/keyring/2.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi
-, dbus-python, setuptools-scm, entrypoints, secretstorage
-, pytest, pytest-flake8 }:
-
-buildPythonPackage rec {
-  pname = "keyring";
-  version = "18.0.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0f58jq58jhfzlhix7x2zz7c4ycdvcs1z3sgs4lkr4xxx680wrmk7";
-  };
-
-  nativeBuildInputs = [ setuptools-scm ];
-
-  checkInputs = [ pytest pytest-flake8 ];
-
-  propagatedBuildInputs = [ dbus-python entrypoints ] ++ lib.optional stdenv.isLinux secretstorage;
-
-  doCheck = !stdenv.isDarwin;
-
-  checkPhase = ''
-    py.test
-  '';
-
-  meta = with lib; {
-    description = "Store and access your passwords safely";
-    homepage    = "https://pypi.python.org/pypi/keyring";
-    license     = licenses.psfl;
-    maintainers = with maintainers; [ lovek323 orivej ];
-    platforms   = platforms.unix;
-  };
-}
diff --git a/pkgs/development/python-modules/keyring/default.nix b/pkgs/development/python-modules/keyring/default.nix
index 8f86e6a5dd355..68043f268ba56 100644
--- a/pkgs/development/python-modules/keyring/default.nix
+++ b/pkgs/development/python-modules/keyring/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "keyring";
-  version = "23.2.1";
+  version = "23.4.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6334aee6073db2fb1f30892697b1730105b5e9a77ce7e61fca6b435225493efe";
+    sha256 = "sha256-iPIGAkKV48b7FrsKYPtLt+wRhWKdxacp8SqnwjbQE4c=";
   };
 
   nativeBuildInputs = [
@@ -43,12 +43,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  # Keychain communications isn't possible in our build environment
-  # keyring.errors.KeyringError: Can't get password from keychain: (-25307, 'Unknown Error')
-  disabledTests = lib.optionals (stdenv.isDarwin) [
-    "test_multiprocess_get"
-    "test_multiprocess_get_after_native_get"
-  ] ++ [
+  disabledTests = [
     # E       ValueError: too many values to unpack (expected 1)
     "test_entry_point"
   ];
diff --git a/pkgs/development/python-modules/keystone-engine/default.nix b/pkgs/development/python-modules/keystone-engine/default.nix
index ed9f3a6bb702f..7c3cf2e70d838 100644
--- a/pkgs/development/python-modules/keystone-engine/default.nix
+++ b/pkgs/development/python-modules/keystone-engine/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, keystone }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, keystone }:
 
 buildPythonPackage rec {
   pname = "keystone-engine";
@@ -9,6 +9,8 @@ buildPythonPackage rec {
    sha256 = "1xahdr6bh3dw5swrc2r8kqa8ljhqlb7k2kxv5mrw5rhcmcnzcyig";
   };
 
+  setupPyBuildFlags = lib.optionals stdenv.isLinux [ "--plat-name" "linux" ];
+
   preConfigure = ''
     substituteInPlace setup.py --replace \
       "libkeystone" "${keystone}/lib/libkeystone"
diff --git a/pkgs/development/python-modules/knack/default.nix b/pkgs/development/python-modules/knack/default.nix
index 5a05449e610b6..be5cfc14e1317 100644
--- a/pkgs/development/python-modules/knack/default.nix
+++ b/pkgs/development/python-modules/knack/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "knack";
-  version = "0.8.2";
+  version = "0.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4eaa50a1c5e79d1c5c8e5e1705b661721b0b83a089695e59e229cc26c64963b9";
+    sha256 = "7fcab17585c0236885eaef311c01a1e626d84c982aabcac81703afda3f89c81f";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/kombu/default.nix b/pkgs/development/python-modules/kombu/default.nix
index 53b83fe95755b..319461b98344d 100644
--- a/pkgs/development/python-modules/kombu/default.nix
+++ b/pkgs/development/python-modules/kombu/default.nix
@@ -15,13 +15,13 @@
 
 buildPythonPackage rec {
   pname = "kombu";
-  version = "5.2.1";
+  version = "5.2.2";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f262a2adc71b53e5b7dad4933bbdee65d8766ca4df6a9043b13edaad2144aaec";
+    sha256 = "0f5d0763fb916808f617b886697b2be28e6bc35026f08e679697fc814b48a608";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/kubernetes/default.nix b/pkgs/development/python-modules/kubernetes/default.nix
index da3c36f6ce04f..3df049c1cec60 100644
--- a/pkgs/development/python-modules/kubernetes/default.nix
+++ b/pkgs/development/python-modules/kubernetes/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "kubernetes";
-  version = "18.20.0";
+  version = "20.13.0";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "kubernetes-client";
     repo = "python";
     rev = "v${version}";
-    sha256 = "1sawp62j7h0yksmg9jlv4ik9b9i1a1w9syywc9mv8x89wibf5ql1";
+    sha256 = "sha256-zZb5jEQEluY1dfa7UegW+P7MV86ESqOey7kkC74ETlM=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/python-modules/labelbox/default.nix b/pkgs/development/python-modules/labelbox/default.nix
index 5c7d7afedc431..ba7579d10670b 100644
--- a/pkgs/development/python-modules/labelbox/default.nix
+++ b/pkgs/development/python-modules/labelbox/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "labelbox";
-  version = "3.6.1";
+  version = "3.10.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "Labelbox";
     repo = "labelbox-python";
     rev = "v${version}";
-    sha256 = "0mix7ajdvyhyvi8nwmxz62mzwl3242h2pzj84zikrmh1ampwvg3g";
+    sha256 = "0afrzxy8hmsvqp84mf89k7sqlzzyh6xwp2pz5abj0981mqlzf2x9";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/labgrid/default.nix b/pkgs/development/python-modules/labgrid/default.nix
index 238ba0571e4da..c95acdf68e30c 100644
--- a/pkgs/development/python-modules/labgrid/default.nix
+++ b/pkgs/development/python-modules/labgrid/default.nix
@@ -22,13 +22,13 @@
 
 buildPythonPackage rec {
   pname = "labgrid";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "labgrid-project";
     repo = "labgrid";
     rev = "v${version}";
-    sha256 = "17j013dw66h4jm1hl92g892sx9r9c48pnl7d58p1y0l4jfca8gmn";
+    sha256 = "0ih04lh1q3dysps4vfmk2rhqqrsimssadsxvbxdsnim2yihrrw47";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/langcodes/default.nix b/pkgs/development/python-modules/langcodes/default.nix
index 292a13d7bd09c..e3454acd5cd92 100644
--- a/pkgs/development/python-modules/langcodes/default.nix
+++ b/pkgs/development/python-modules/langcodes/default.nix
@@ -3,30 +3,48 @@
 , marisa-trie
 , pythonOlder
 , fetchPypi
-, nose
+, poetry-core
+, pytestCheckHook
+, language-data
 }:
 
 buildPythonPackage rec {
   pname = "langcodes";
-  version = "3.2.1";
-  disabled = pythonOlder "3.3";
+  version = "3.3.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "779a6da5036f87b6b56c180b2782ab111ddd6aa9157670a9b918402b0e07cd93";
+    sha256 = "794d07d5a28781231ac335a1561b8442f8648ca07cd518310aeb45d6f0807ef6";
   };
 
-  propagatedBuildInputs = [ marisa-trie ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    language-data
+    marisa-trie
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkInputs = [ nose ];
+  disabledTests = [
+    # AssertionError: assert 'Unknown language [aqk]' == 'Aninka'
+    "test_updated_iana"
+  ];
 
-  checkPhase = ''
-    nosetests
-  '';
+  pythonImportsCheck = [
+    "langcodes"
+  ];
 
   meta = with lib; {
-    description = "A toolkit for working with and comparing the standardized codes for languages, such as ‘en’ for English or ‘es’ for Spanish";
-    homepage =  "https://github.com/LuminosoInsight/langcodes";
+    description = "Python toolkit for working with and comparing the standardized codes for languages";
+    homepage = "https://github.com/LuminosoInsight/langcodes";
     license = licenses.mit;
     maintainers = with maintainers; [ ixxie ];
   };
diff --git a/pkgs/development/python-modules/language-data/default.nix b/pkgs/development/python-modules/language-data/default.nix
new file mode 100644
index 0000000000000..98d4885b1e949
--- /dev/null
+++ b/pkgs/development/python-modules/language-data/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, marisa-trie
+, poetry-core
+, pythonOlder
+}:
+
+buildPythonApplication rec {
+  pname = "language-data";
+  version = "1.0.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "rspeer";
+    repo = "language_data";
+    rev = "v${version}";
+    sha256 = "51TUVHXPHG6ofbnxI6+o5lrtr+QCIpGKu+OjDK3l7Mc=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    marisa-trie
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "language_data"
+  ];
+
+  meta = with lib; {
+    description = "Supplement module for langcodes";
+    homepage = "https://github.com/rspeer/language_data";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/lc7001/default.nix b/pkgs/development/python-modules/lc7001/default.nix
index 3567a01861edb..0683794eda50d 100644
--- a/pkgs/development/python-modules/lc7001/default.nix
+++ b/pkgs/development/python-modules/lc7001/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "lc7001";
-  version = "1.0.3";
+  version = "1.0.5";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "NgnszlgmeUnfWs9onnboFRz3c4OibsNaZHjDINvoMPc=";
+    sha256 = "sha256-I4I3vwW1kJsgLFPMGpe9hkD3iEeC3AqI4pCi6SCWPx4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/ldap/default.nix b/pkgs/development/python-modules/ldap/default.nix
index 1b1aea2ab114b..f9acc0a7674be 100644
--- a/pkgs/development/python-modules/ldap/default.nix
+++ b/pkgs/development/python-modules/ldap/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "python-ldap";
-  version = "3.3.1";
+  version = "3.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "198as30xy6p760niqps2zdvq2xcmr765h06pmda8fa9y077wl4a7";
+    sha256 = "60464c8fc25e71e0fd40449a24eae482dcd0fb7fcf823e7de627a6525b3e0d12";
   };
 
   propagatedBuildInputs = [ pyasn1 pyasn1-modules ];
diff --git a/pkgs/development/python-modules/ldappool/default.nix b/pkgs/development/python-modules/ldappool/default.nix
index bc08633da8b47..a3cb21c109725 100644
--- a/pkgs/development/python-modules/ldappool/default.nix
+++ b/pkgs/development/python-modules/ldappool/default.nix
@@ -3,12 +3,12 @@
 
 buildPythonPackage rec {
   pname = "ldappool";
-  version = "2.4.1";
+  version = "3.0.0";
 
   src = fetchPypi {
     pname = "ldappool";
     inherit version;
-    sha256 = "23edef09cba4b1ae764f1ddada828d8e39d72cf32a457e599f5a70064310ea00";
+    sha256 = "4bb59b7d6b11407f48ee01a781267e3c8ba98d91f426806ac7208612ae087b86";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/ledgerblue/default.nix b/pkgs/development/python-modules/ledgerblue/default.nix
index 84c3ad8c614d6..ff489f4cf222b 100644
--- a/pkgs/development/python-modules/ledgerblue/default.nix
+++ b/pkgs/development/python-modules/ledgerblue/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "ledgerblue";
-  version = "0.1.38";
+  version = "0.1.41";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "df1fffc4f586eaa95b8cf910176d28997e65a3ecd43d9c0af34e46078b6b6ee3";
+    sha256 = "7246a1a0442a63aff0b5de2796d306f0033e1937b3c9b9c2a92c9101cde4fe8d";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ledgerwallet/default.nix b/pkgs/development/python-modules/ledgerwallet/default.nix
index 421a24e9ee127..cf2be98f922a4 100644
--- a/pkgs/development/python-modules/ledgerwallet/default.nix
+++ b/pkgs/development/python-modules/ledgerwallet/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , buildPythonPackage
 , cryptography
 , click
@@ -26,10 +27,12 @@ buildPythonPackage rec {
   };
 
   patches = [
-    # Fix removed function in construct library
-    # https://github.com/LedgerHQ/ledgerctl/issues/17
-    # https://github.com/construct/construct/commit/8915512f53552b1493afdbce5bbf8bb6f2aa4411
-    ./remove-iterateints.patch
+    (fetchpatch {
+      # Fix removed function in construct library
+      url = "https://github.com/LedgerHQ/ledgerctl/commit/fd23d0e14721b93789071e80632e6bd9e47c1256.patch";
+      sha256 = "sha256-YNlENguPQW5FNFT7mqED+ghF3TJiKao4H+56Eu+j+Eo=";
+      excludes = [ "setup.py" ];
+    })
   ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ AppKit ];
diff --git a/pkgs/development/python-modules/ledgerwallet/remove-iterateints.patch b/pkgs/development/python-modules/ledgerwallet/remove-iterateints.patch
deleted file mode 100644
index c97785f1d04b6..0000000000000
--- a/pkgs/development/python-modules/ledgerwallet/remove-iterateints.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- a/ledgerwallet/params.py	2021-11-17 20:31:10.488954050 -0300
-+++ b/ledgerwallet/params.py	2021-11-17 20:31:30.619477930 -0300
-@@ -19,7 +19,6 @@
- )
- from construct.core import (
-     byte2int,
--    iterateints,
-     singleton,
-     stream_read,
-     stream_write,
-@@ -40,7 +39,7 @@
-         num_bytes = byte & 0x80
-         encoded_len = stream_read(stream, num_bytes)
-         num = 0
--        for len_byte in iterateints(encoded_len):
-+        for len_byte in encoded_len:
-             num = num << 8 + len_byte
-         return num
- 
diff --git a/pkgs/development/python-modules/levenshtein/default.nix b/pkgs/development/python-modules/levenshtein/default.nix
index 6f6c5d3f0cf9d..cc4a029b7b559 100644
--- a/pkgs/development/python-modules/levenshtein/default.nix
+++ b/pkgs/development/python-modules/levenshtein/default.nix
@@ -20,6 +20,11 @@ buildPythonPackage rec {
     sha256 = "agshUVkkqogj4FbonFd/rrGisMOomS62NND66YKZvjg=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "rapidfuzz >= 1.8.2, < 1.9" "rapidfuzz"
+  '';
+
   propagatedBuildInputs = [
     rapidfuzz
   ];
diff --git a/pkgs/development/python-modules/libarchive-c/default.nix b/pkgs/development/python-modules/libarchive-c/default.nix
index 92837ac77a104..13f61c6aa9494 100644
--- a/pkgs/development/python-modules/libarchive-c/default.nix
+++ b/pkgs/development/python-modules/libarchive-c/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "libarchive-c";
-  version = "3.1";
+  version = "3.2";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "Changaco";
     repo = "python-${pname}";
     rev = version;
-    sha256 = "1z4lqy9zlzymshzrcldsc9ipys2l7grqg4yff6ndl6dgbfb0g4jb";
+    sha256 = "1kj3y9vnsc9m2hvnvgk5inawxfknz5drj3q51hqgcbq8p4dm8vli";
   };
 
   LC_ALL="en_US.UTF-8";
diff --git a/pkgs/development/python-modules/libarcus/default.nix b/pkgs/development/python-modules/libarcus/default.nix
index 4002f527a4515..494e786e9784c 100644
--- a/pkgs/development/python-modules/libarcus/default.nix
+++ b/pkgs/development/python-modules/libarcus/default.nix
@@ -4,14 +4,14 @@
 
 buildPythonPackage rec {
   pname = "libarcus";
-  version = "4.10.0";
+  version = "4.12.0";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "libArcus";
     rev = version;
-    sha256 = "1ahka8s8fjwymyr7pca7i7h51ikfr35zy4nkzfcjn946x7p0dprf";
+    sha256 = "sha256-X33ptwYj9YkVWqUDPP+Ic+hoIb+rwsLdQXvHLA9z+3w=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/libcst/default.nix b/pkgs/development/python-modules/libcst/default.nix
index 712b15f17f229..774cb572e95b2 100644
--- a/pkgs/development/python-modules/libcst/default.nix
+++ b/pkgs/development/python-modules/libcst/default.nix
@@ -9,13 +9,14 @@
 , python
 , pythonOlder
 , pyyaml
+, setuptools-scm
 , typing-extensions
 , typing-inspect
 }:
 
 buildPythonPackage rec {
   pname = "libcst";
-  version = "0.3.21";
+  version = "0.3.23";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -24,9 +25,21 @@ buildPythonPackage rec {
     owner = "instagram";
     repo = pname;
     rev = "v${version}";
-    sha256 = "063bl21gyyd25i2v0j6kz29cxxdfhng2nins4i2qblmac90f2nqy";
+    sha256 = "1r4aiqpndqa75119faknsghi7zxyjrx5r6i7cb3d0liwiqrkzrvx";
   };
 
+  postPatch = ''
+    # test try to format files, which isn't necessary when consuming releases
+    sed -i libcst/codegen/generate.py \
+      -e '/ufmt/c\        pass'
+  '';
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
   propagatedBuildInputs = [
     hypothesis
     typing-extensions
diff --git a/pkgs/development/python-modules/libnacl/default.nix b/pkgs/development/python-modules/libnacl/default.nix
index f8cb85ab41828..7ced26888b80e 100644
--- a/pkgs/development/python-modules/libnacl/default.nix
+++ b/pkgs/development/python-modules/libnacl/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , libsodium
 , pytestCheckHook
 }:
@@ -17,6 +18,15 @@ buildPythonPackage rec {
     sha256 = "sha256-nttR9PQimhqd2pByJ5IJzJ4RmSI4y7lcX7a7jcK+vqc=";
   };
 
+  patches = [
+    # Fixes build on 32-bit platforms
+    (fetchpatch {
+      name = "fix-crypto_kdf_derive_from_key-32bit.patch";
+      url = "https://github.com/saltstack/libnacl/commit/e8a1f95ee1d4d0806fb6aee793dcf308b05d485d.patch";
+      sha256 = "sha256-z6TAVNfPcuWZ/hRgk6Aa8I1IGzne7/NYnUOOQ3TjGVU=";
+    })
+  ];
+
   buildInputs = [ libsodium ];
 
   postPatch =
diff --git a/pkgs/development/python-modules/libsavitar/default.nix b/pkgs/development/python-modules/libsavitar/default.nix
index e82400b565fdd..588ebfcd1e957 100644
--- a/pkgs/development/python-modules/libsavitar/default.nix
+++ b/pkgs/development/python-modules/libsavitar/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "libsavitar";
-  version = "4.10.0";
+  version = "4.12.0";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "libSavitar";
     rev = version;
-    sha256 = "1zyzsrdm5aazv12h7ga35amfryrbxdsmx3abvh27hixyh9f92fdp";
+    sha256 = "sha256-MAA1WtGED6lvU6N4BE6wwY1aYaFrCq/gkmQFz3VWqNA=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/lightwave2/default.nix b/pkgs/development/python-modules/lightwave2/default.nix
new file mode 100644
index 0000000000000..61bb86b8f7697
--- /dev/null
+++ b/pkgs/development/python-modules/lightwave2/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "lightwave2";
+  version = "0.8.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "2f18ee4aba0431236a4c48a032de6714cfb56ff1e97c86d48cfe619eb961b21a";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "lightwave2"
+  ];
+
+  meta = with lib; {
+    description = "Python library to interact with LightWaveRF 2nd Gen lights and switches";
+    homepage = "https://github.com/bigbadblunt/lightwave2";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/limnoria/default.nix b/pkgs/development/python-modules/limnoria/default.nix
index 1753b0dce8c14..ba45ffbdeac4e 100644
--- a/pkgs/development/python-modules/limnoria/default.nix
+++ b/pkgs/development/python-modules/limnoria/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "limnoria";
-  version = "2021.10.9";
+  version = "2021.11.20";
   disabled = isPy27; # abandoned upstream
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "907a4a0765ab29ccd1c2247efa0eda7a9bd82d3be3a2ecfdeb9b9e6fbb9aa56e";
+    sha256 = "da9c33497a09b4ed0cff6ed44954bbde6cb317edb68d56c73ef235128a802c11";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/linkify-it-py/default.nix b/pkgs/development/python-modules/linkify-it-py/default.nix
index b9511bd5f35b7..ef97439cdc86a 100644
--- a/pkgs/development/python-modules/linkify-it-py/default.nix
+++ b/pkgs/development/python-modules/linkify-it-py/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "linkify-it-py";
-  version = "1.0.1";
+  version = "1.0.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "tsutsu3";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-gd51no6VqvIiW9fbCdp30zHG/us6by7FLHV2ul/XJAM=";
+    hash = "sha256-1QqfqFdTEdZr02jQnmHmvw3fgnC/ktsfALyhtkGSXoY=";
   };
 
   propagatedBuildInputs = [ uc-micro-py ];
diff --git a/pkgs/development/python-modules/livelossplot/default.nix b/pkgs/development/python-modules/livelossplot/default.nix
index 2951ab7a427b8..467d239857af3 100644
--- a/pkgs/development/python-modules/livelossplot/default.nix
+++ b/pkgs/development/python-modules/livelossplot/default.nix
@@ -1,8 +1,8 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, isPy27
-, pytest
+, pythonOlder
+, pytestCheckHook
 , bokeh
 , ipython
 , matplotlib
@@ -13,23 +13,23 @@
 
 buildPythonPackage rec {
   pname = "livelossplot";
-  version = "0.5.0";
+  version = "0.5.4";
 
-  disabled = isPy27;
+  disabled = pythonOlder "3.6";
+
+  # version number in source is wrong in this release
+  postPatch = ''substituteInPlace ${pname}/version.py --replace "0.5.3" "0.5.4"'';
 
   src = fetchFromGitHub {
     owner  = "stared";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "164v65qglgyg38q9ajnas99rp14mvrk5hn8x76b8iy81vszmx1c0";
+    sha256 = "IV6YAidoqVoKvpy+LNNHTPpobiDoGX59bHqJcBtaydk=";
   };
 
   propagatedBuildInputs = [ bokeh ipython matplotlib numpy ];
 
-  checkInputs = [ pytest nbconvert nbformat ];
-  checkPhase = ''
-    pytest tests tests/external_test_examples.py
-  '';
+  checkInputs = [ nbconvert nbformat pytestCheckHook ];
 
   meta = with lib; {
     description = "Live training loss plot in Jupyter for Keras, PyTorch, and others";
diff --git a/pkgs/development/python-modules/losant-rest/default.nix b/pkgs/development/python-modules/losant-rest/default.nix
new file mode 100644
index 0000000000000..36b6efa724e29
--- /dev/null
+++ b/pkgs/development/python-modules/losant-rest/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, requests
+, requests-mock
+}:
+
+buildPythonPackage rec {
+  pname = "losant-rest";
+  version = "1.15.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "Losant";
+    repo = "losant-rest-python";
+    rev = "v${version}";
+    sha256 = "sha256-j8Vzr83pvl/AnXfA+nl5uRXf+y6ndKmQHM3bl306wFM=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    requests-mock
+  ];
+
+  pytestFlagsArray = [
+    "tests/losantrest_tests.py"
+  ];
+
+  pythonImportsCheck = [
+    "losantrest"
+  ];
+
+  meta = with lib; {
+    description = "Python module for consuming the Losant IoT Platform API";
+    homepage = "https://github.com/Losant/losant-rest-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/lsassy/default.nix b/pkgs/development/python-modules/lsassy/default.nix
index c235b5700fa2e..421c1f481e8a2 100644
--- a/pkgs/development/python-modules/lsassy/default.nix
+++ b/pkgs/development/python-modules/lsassy/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "lsassy";
-  version = "3.0.3";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "Hackndo";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-P68c2kQh2/3fUb1fsNujjpjvvXI5zN4WebaeR09N+lY=";
+    sha256 = "0jd0kmp0mc8jn5qmgrspdx05vy6nyq773cj4yid1qyr8dmyx6a7n";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/luftdaten/default.nix b/pkgs/development/python-modules/luftdaten/default.nix
index 71daa4bdbfa43..c8ca8254b3633 100644
--- a/pkgs/development/python-modules/luftdaten/default.nix
+++ b/pkgs/development/python-modules/luftdaten/default.nix
@@ -1,20 +1,41 @@
-{ lib, buildPythonPackage, isPy3k, fetchPypi, aiohttp, async-timeout }:
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, poetry-core
+, httpx
+, pytest-asyncio
+, pytest-httpx
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "luftdaten";
-  version = "0.6.5";
+  version = "0.7.1";
+  format = "pyproject";
 
-  disabled = !isPy3k;
+  disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-5SFb+psULyg9UKVY3oJPNLF3TGS/W+Bxoj79iTzReL4=";
+  src = fetchFromGitHub {
+    owner = "home-assistant-ecosystem";
+    repo = "python-luftdaten";
+    rev = version;
+    sha256 = "sha256-76Y5TJet0WtzYXuK8Og0rmpsUIlXK7b37oesh+MliU8=";
   };
 
-  propagatedBuildInputs = [ aiohttp async-timeout ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
 
-  # No tests implemented
-  doCheck = false;
+  propagatedBuildInputs = [
+    httpx
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytest-httpx
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [ "luftdaten" ];
 
@@ -22,6 +43,6 @@ buildPythonPackage rec {
     description = "Python API for interacting with luftdaten.info";
     homepage = "https://github.com/home-assistant-ecosystem/python-luftdaten";
     license = licenses.mit;
-    maintainers = with maintainers; [ dotlambda ];
+    maintainers = with maintainers; [ dotlambda fab ];
   };
 }
diff --git a/pkgs/development/python-modules/luhn/default.nix b/pkgs/development/python-modules/luhn/default.nix
new file mode 100644
index 0000000000000..09ab90a3b1777
--- /dev/null
+++ b/pkgs/development/python-modules/luhn/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "luhn";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "mmcloughlin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-ZifaCjOVhWdXuzi5n6V+6eVN5vrEHKgUdpSOXoMyR18=";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    "test.py"
+  ];
+
+  pythonImportsCheck = [
+    "luhn"
+  ];
+
+  meta = with lib; {
+    description = "Python module for generate and verify Luhn check digits";
+    homepage = "https://github.com/mmcloughlin/luhn";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/lupupy/default.nix b/pkgs/development/python-modules/lupupy/default.nix
index a1248d331426c..23ec7c33c2052 100644
--- a/pkgs/development/python-modules/lupupy/default.nix
+++ b/pkgs/development/python-modules/lupupy/default.nix
@@ -1,7 +1,7 @@
 { lib
 , buildPythonPackage
 , colorlog
-, demjson
+, pyyaml
 , fetchPypi
 , pythonOlder
 , requests
@@ -9,26 +9,28 @@
 
 buildPythonPackage rec {
   pname = "lupupy";
-  version = "0.0.21";
+  version = "0.1.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0cpamb1fp84psiqm7xr156zi4f2fv2wijbjjyk6w87z8fl2aw8xc";
+    sha256 = "sha256-bWBiM+u5wl9fWqL8k+R2IaYXSNnc4IxgWgUzyJVxkKk=";
   };
 
   propagatedBuildInputs = [
     colorlog
-    demjson
+    pyyaml
     requests
   ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [ "lupupy" ];
+  pythonImportsCheck = [
+    "lupupy"
+  ];
 
   meta = with lib; {
     description = "Python module to control Lupusec alarm control panels";
diff --git a/pkgs/development/python-modules/luxor/default.nix b/pkgs/development/python-modules/luxor/default.nix
new file mode 100644
index 0000000000000..ebebdd0d9bc97
--- /dev/null
+++ b/pkgs/development/python-modules/luxor/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, pytest-aiohttp
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "luxor";
+  version = "0.0.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "GIwVEOKZAudTu2M3OM4LFVR8e22q52m/AN0anskdmWQ=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  checkInputs = [
+    pytest-aiohttp
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "luxor"
+  ];
+
+  meta = with lib; {
+    description = "Python module to control FX Luminaire controllers";
+    homepage = "https://github.com/pbozeman/luxor";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/lxml/default.nix b/pkgs/development/python-modules/lxml/default.nix
index 984219b802b7d..60deaa5af1272 100644
--- a/pkgs/development/python-modules/lxml/default.nix
+++ b/pkgs/development/python-modules/lxml/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "lxml";
-  version = "4.6.3";
+  version = "4.6.4-5";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    rev = "${pname}-${version}";
-    sha256 = "1rhkv75qr4ij3653l97sy752gyp6f20sxfpiqp1vp08fpy47q8qn";
+    rev = "lxml-${version}";
+    sha256 = "159cc48nl40qsx8pc8sasgny5xc0s3y0xrq3w3aw53s3ijncsgfl";
   };
 
   # setuptoolsBuildPhase needs dependencies to be passed through nativeBuildInputs
diff --git a/pkgs/development/python-modules/lz4/default.nix b/pkgs/development/python-modules/lz4/default.nix
index 180264f102d04..cc84fa75c6997 100644
--- a/pkgs/development/python-modules/lz4/default.nix
+++ b/pkgs/development/python-modules/lz4/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "python-lz4";
-  version = "3.1.3";
+  version = "3.1.10";
 
   # get full repository inorder to run tests
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    rev = "v${version}";
-    sha256 = "009c4rbyj4cjb8fznccfpr5wrzdmi56wq990yjh22n0z2qqylmkf";
+    rev = version;
+    sha256 = "0a4gic8xh3simkk5k8302rxwf765pr6y63k3js79mkl983vpxcim";
   };
 
   nativeBuildInputs = [ setuptools-scm pkgconfig pytest-runner ];
diff --git a/pkgs/development/python-modules/m3u8/default.nix b/pkgs/development/python-modules/m3u8/default.nix
index bc2233cf0d293..e69bf61657fae 100644
--- a/pkgs/development/python-modules/m3u8/default.nix
+++ b/pkgs/development/python-modules/m3u8/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchFromGitHub, requests, iso8601, bottle, pytestCheckHook }:
+{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch, requests, iso8601, bottle, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "m3u8";
@@ -11,6 +11,14 @@ buildPythonPackage rec {
     sha256 = "sha256-EfHhmV2otEgEy2OVohS+DF7dk97GFdWZ4cFCERZBmlA=";
   };
 
+  patches = [
+    # Fix hardcoded /tmp dir (fix build on Hydra)
+    (fetchpatch {
+      url = "https://github.com/globocom/m3u8/commit/cf7ae5fda4681efcea796cd7c51c02f152c36009.patch";
+      sha256 = "sha256-SEETpIJQddid8D//6DVrSGs/BqDeMOzufE0bBrm+/xY=";
+    })
+  ];
+
   propagatedBuildInputs = [ requests iso8601 ];
 
   checkInputs = [ bottle pytestCheckHook ];
@@ -21,11 +29,6 @@ buildPythonPackage rec {
     "tests/test_variant_m3u8.py"
   ];
 
-  preCheck = ''
-    # Fix test on Hydra
-    substituteInPlace tests/test_model.py --replace "/tmp/d.m3u8" "$TMPDIR/d.m3u8"
-  '';
-
   meta = with lib; {
     homepage = "https://github.com/globocom/m3u8";
     description = "Python m3u8 parser";
diff --git a/pkgs/development/python-modules/maestral/default.nix b/pkgs/development/python-modules/maestral/default.nix
index 0c3cb9635ae12..90494de822336 100644
--- a/pkgs/development/python-modules/maestral/default.nix
+++ b/pkgs/development/python-modules/maestral/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "maestral";
-  version = "1.5.1";
+  version = "1.5.2";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "SamSchott";
     repo = "maestral";
     rev = "v${version}";
-    sha256 = "sha256-R6zacpJkSWppodrb0SD4lglFmGVtPaloeDMBPL+ztuU=";
+    sha256 = "sha256-nFXgvFLw6ru/Sw3+LoZ7V09dyn0L21We/Dlwib2gZB8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/mahotas/default.nix b/pkgs/development/python-modules/mahotas/default.nix
index 707ad9f3c8f6d..efc1bec76731e 100644
--- a/pkgs/development/python-modules/mahotas/default.nix
+++ b/pkgs/development/python-modules/mahotas/default.nix
@@ -1,21 +1,43 @@
-{ buildPythonPackage, fetchFromGitHub, pillow, scipy, numpy, pytestCheckHook, imread, freeimage, lib, stdenv }:
+{ buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, pillow
+, scipy
+, numpy
+, pytestCheckHook
+, imread
+, freeimage
+, lib
+, stdenv
+}:
 
 buildPythonPackage rec {
   pname = "mahotas";
-  version = "1.4.11";
+  version = "1.4.12";
 
   src = fetchFromGitHub {
     owner = "luispedro";
     repo = "mahotas";
     rev = "v${version}";
-    sha256 = "029gvy1fb855pvxvy8zwj44k4s7qpqi0161bg5wldfiprrysn1kw";
+    sha256 = "1n19yha1cqyx7hnlici1wkl7n68dh0vbpsyydfhign2c0w9jvg42";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "fix-freeimage-tests.patch";
+      url = "https://github.com/luispedro/mahotas/commit/08cc4aa0cbd5dbd4c37580d52b822810c03b2c69.patch";
+      sha256 = "0389sz7fyl8h42phw8sn4pxl4wc3brcrj9d05yga21gzil9bfi23";
+      excludes = [ "ChangeLog" ];
+    })
+  ];
+
   propagatedBuildInputs = [ numpy imread pillow scipy freeimage ];
   checkInputs = [ pytestCheckHook ];
 
   postPatch = ''
-    substituteInPlace mahotas/io/freeimage.py --replace "/opt/local/lib" "${freeimage}/lib"
+    substituteInPlace mahotas/io/freeimage.py \
+      --replace "ctypes.util.find_library('freeimage')" 'True' \
+      --replace 'ctypes.CDLL(libname)' 'np.ctypeslib.load_library("libfreeimage", "${freeimage}/lib")'
   '';
 
   # tests must be run in the build directory
@@ -31,6 +53,11 @@ buildPythonPackage rec {
     "test_haralick3d"
   ];
 
+  pythonImportsCheck = [
+    "mahotas"
+    "mahotas.freeimage"
+  ];
+
   disabled = stdenv.isi686; # Failing tests
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/manimpango/default.nix b/pkgs/development/python-modules/manimpango/default.nix
index 95e0358647114..5ff88388818f7 100644
--- a/pkgs/development/python-modules/manimpango/default.nix
+++ b/pkgs/development/python-modules/manimpango/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "manimpango";
-  version = "0.3.1";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "ManimCommunity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "ldZfvv5kloQ0uj0agxOP8cRh+Ix8f9Z0PT+pnhWYjiQ=";
+    sha256 = "1qffb04bz4s2anb6a7nm6dpqwdlvq6626z1whqwrwsvn8z9sry76";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/mariadb/default.nix b/pkgs/development/python-modules/mariadb/default.nix
new file mode 100644
index 0000000000000..251b69e8e67c2
--- /dev/null
+++ b/pkgs/development/python-modules/mariadb/default.nix
@@ -0,0 +1,30 @@
+{ buildPythonPackage, fetchPypi, libmysqlclient, lib, pythonOlder }:
+
+buildPythonPackage rec {
+  pname = "mariadb";
+  version = "1.0.9";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-Aqmz0KB26aDQ6hxItF7Qm2R14rak6Mge2fHoLK87/Ck=";
+    extension = "zip";
+  };
+
+  nativeBuildInputs = [
+    libmysqlclient
+  ];
+
+  # Requires a running MariaDB instance
+  doCheck = false;
+
+  pythonImportsCheck = [ "mariadb" ];
+
+  meta = with lib; {
+    description = "MariaDB Connector/Python";
+    homepage = "https://github.com/mariadb-corporation/mariadb-connector-python";
+    license = licenses.lgpl21Only;
+    maintainers = with maintainers; [ vanilla ];
+  };
+}
diff --git a/pkgs/development/python-modules/markdown-it-py/default.nix b/pkgs/development/python-modules/markdown-it-py/default.nix
index 8ed57f3ff031c..f056c104e759b 100644
--- a/pkgs/development/python-modules/markdown-it-py/default.nix
+++ b/pkgs/development/python-modules/markdown-it-py/default.nix
@@ -1,19 +1,20 @@
 { lib
+, attrs
 , buildPythonPackage
 , fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, attrs
 , linkify-it-py
+, mdurl
 , psutil
 , pytest-benchmark
 , pytest-regressions
+, pytestCheckHook
+, pythonOlder
 , typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "markdown-it-py";
-  version = "1.1.0";
+  version = "2.0.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -22,11 +23,16 @@ buildPythonPackage rec {
     owner = "executablebooks";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0h7rn3rcqfwmnqs97qczwkw9w5g4df8bgn6sw7k149svfqgrkf56";
+    sha256 = "sha256-ahg+aAVpAh07PZ1mfrne0EP9K2J4tb8eLp5XXFpWp00=";
   };
 
-  propagatedBuildInputs = [ attrs linkify-it-py ]
-    ++ lib.optional (pythonOlder "3.8") typing-extensions;
+  propagatedBuildInputs = [
+    attrs
+    linkify-it-py
+    mdurl
+  ] ++ lib.optional (pythonOlder "3.8") [
+    typing-extensions
+  ];
 
   checkInputs = [
     psutil
@@ -34,11 +40,14 @@ buildPythonPackage rec {
     pytest-regressions
     pytestCheckHook
   ];
-  pythonImportsCheck = [ "markdown_it" ];
+
+  pythonImportsCheck = [
+    "markdown_it"
+  ];
 
   meta = with lib; {
-    description = "Markdown parser done right";
-    homepage = "https://markdown-it-py.readthedocs.io/en/latest";
+    description = "Markdown parser in Python";
+    homepage = "https://markdown-it-py.readthedocs.io/";
     changelog = "https://github.com/executablebooks/markdown-it-py/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ bhipple ];
diff --git a/pkgs/development/python-modules/markdown/default.nix b/pkgs/development/python-modules/markdown/default.nix
index c1eff88b926dd..83a4f224f2fb1 100644
--- a/pkgs/development/python-modules/markdown/default.nix
+++ b/pkgs/development/python-modules/markdown/default.nix
@@ -8,17 +8,18 @@
 }:
 
 buildPythonPackage rec {
-  pname = "Markdown";
-  version = "3.3.4";
+  pname = "markdown";
+  version = "3.3.5";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "31b5b491868dcc87d6c24b7e3d19a0d730d59d3e46f4eea6430a321bed387a49";
+    pname = "Markdown";
+    inherit version;
+    sha256 = "sha256-JulUa/vN5fzQcr2PYSycG24md8uKrb32UgZnT0bd4Gk=";
   };
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [
     importlib-metadata
   ];
 
diff --git a/pkgs/development/python-modules/mask-rcnn/default.nix b/pkgs/development/python-modules/mask-rcnn/default.nix
index 4c500a18515a1..2ef6ff5c56d9c 100644
--- a/pkgs/development/python-modules/mask-rcnn/default.nix
+++ b/pkgs/development/python-modules/mask-rcnn/default.nix
@@ -1,10 +1,11 @@
 { buildPythonPackage
 , cython
 , fetchFromGitHub
+, fetchpatch
 , h5py
 , imgaug
 , ipython
-, Keras
+, keras
 , lib
 , matplotlib
 , numpy
@@ -12,7 +13,7 @@
 , pillow
 , scikitimage
 , scipy
-, tensorflow_2
+, tensorflow
 }:
 
 buildPythonPackage rec {
@@ -26,20 +27,36 @@ buildPythonPackage rec {
     sha256 = "13s3q9yh2q9m9vyksd269mww3bni4q2w7q5l419q70ca075qp8zp";
   };
 
+  patches = [
+    # Fix for TF2:
+    # https://github.com/matterport/Mask_RCNN/issues/2734
+    (fetchpatch {
+      url = "https://github.com/BupyeongHealer/Mask_RCNN_tf_2.x/commit/7957839fe2b248f2f22c7e991ead12068ddc6cfc.diff";
+      excludes = [ "mrcnn/model.py" ];
+      sha256 = "sha256-70BGrx6X1uJDA2025f0YTlreT2uB3n35yIzuhf+ypVc=";
+    })
+  ];
+
+  # Fix for recent Keras
+  postPatch = ''
+    substituteInPlace mrcnn/model.py \
+      --replace "KE." "KL."
+  '';
+
   nativeBuildInputs = [ cython ];
 
   propagatedBuildInputs = [
     h5py
     imgaug
     ipython
-    Keras
+    keras
     matplotlib
     numpy
     opencv3
     pillow
     scikitimage
     scipy
-    tensorflow_2 # Keras only supports tensorflow 2 now
+    tensorflow
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/matlink-gpapi/default.nix b/pkgs/development/python-modules/matlink-gpapi/default.nix
new file mode 100644
index 0000000000000..1f8533748965f
--- /dev/null
+++ b/pkgs/development/python-modules/matlink-gpapi/default.nix
@@ -0,0 +1,35 @@
+{ buildPythonPackage
+, cryptography
+, fetchPypi
+, lib
+, pythonOlder
+, protobuf
+, pycryptodome
+, requests
+}:
+
+buildPythonPackage rec {
+  version = "0.4.4.5";
+  pname = "matlink-gpapi";
+  disabled = pythonOlder "3.3"; # uses shutil.which(), added in 3.3
+
+  src = fetchPypi {
+    inherit version pname;
+    sha256 = "0s45yb2xiq3pc1fh4bygfgly0fsjk5fkc4wckbckn3ddl7v7vz8c";
+  };
+
+  # package doesn't contain unit tests
+  # scripts in ./test require networking
+  doCheck = false;
+
+  pythonImportsCheck = [ "gpapi.googleplay" ];
+
+  propagatedBuildInputs = [ cryptography protobuf pycryptodome requests ];
+
+  meta = with lib; {
+    homepage = "https://github.com/NoMore201/googleplay-api";
+    license = licenses.gpl3Only;
+    description = "Google Play Unofficial Python API";
+    maintainers = with maintainers; [ schnusch ];
+  };
+}
diff --git a/pkgs/development/python-modules/matplotlib/default.nix b/pkgs/development/python-modules/matplotlib/default.nix
index 0e874d25f679e..cc118d9f0ab08 100644
--- a/pkgs/development/python-modules/matplotlib/default.nix
+++ b/pkgs/development/python-modules/matplotlib/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchPypi, writeText, buildPythonPackage, isPy3k, pycairo
 , which, cycler, python-dateutil, numpy, pyparsing, sphinx, tornado, kiwisolver
 , freetype, qhull, libpng, pkg-config, mock, pytz, pygobject3, gobject-introspection
-, certifi, pillow
+, certifi, pillow, fonttools, setuptools-scm, setuptools-scm-git-archive, packaging
 , enableGhostscript ? true, ghostscript, gtk3
 , enableGtk3 ? false, cairo
 # darwin has its own "MacOSX" backend
@@ -17,30 +17,64 @@ let
 in
 
 buildPythonPackage rec {
-  version = "3.4.3";
+  version = "3.5.1";
   pname = "matplotlib";
+  format = "setuptools";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06032j0ccjxldx4z9kf97qps2g36mfgvy1nap3b9n75kzmnm4kzw";
+    sha256 = "b2e9810e09c3a47b73ce9cab5a72243a1258f61e7900969097a817232246ce1c";
   };
 
   XDG_RUNTIME_DIR = "/tmp";
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [
+    pkg-config
+    setuptools-scm
+    setuptools-scm-git-archive
+  ];
 
-  buildInputs = [ which sphinx ]
-    ++ lib.optional enableGhostscript ghostscript
-    ++ lib.optional stdenv.isDarwin [ Cocoa ];
+  buildInputs = [
+    which
+    sphinx
+  ] ++ lib.optional enableGhostscript [
+    ghostscript
+  ] ++ lib.optional stdenv.isDarwin [
+    Cocoa
+  ];
 
-  propagatedBuildInputs =
-    [ cycler python-dateutil numpy pyparsing tornado freetype qhull
-      kiwisolver certifi libpng mock pytz pillow ]
-    ++ lib.optionals enableGtk3 [ cairo pycairo gtk3 gobject-introspection pygobject3 ]
-    ++ lib.optionals enableTk [ tcl tk tkinter libX11 ]
-    ++ lib.optionals enableQt [ pyqt5 ];
+  propagatedBuildInputs = [
+    certifi
+    cycler
+    fonttools
+    freetype
+    kiwisolver
+    libpng
+    mock
+    numpy
+    packaging
+    pillow
+    pyparsing
+    python-dateutil
+    pytz
+    qhull
+    tornado
+  ] ++ lib.optionals enableGtk3 [
+    cairo
+    gobject-introspection
+    gtk3
+    pycairo
+    pygobject3
+  ] ++ lib.optionals enableTk [
+    libX11
+    tcl
+    tk
+    tkinter
+  ] ++ lib.optionals enableQt [
+    pyqt5
+  ];
 
   passthru.config = {
     directories = { basedirlist = "."; };
@@ -52,10 +86,8 @@ buildPythonPackage rec {
       enable_lto = false;
     };
   };
-  setup_cfg = writeText "setup.cfg" (lib.generators.toINI {} passthru.config);
-  preBuild = ''
-    cp "$setup_cfg" ./setup.cfg
-  '';
+
+  MPLSETUPCFG = writeText "mplsetup.cfg" (lib.generators.toINI {} passthru.config);
 
   # Matplotlib tries to find Tcl/Tk by opening a Tk window and asking the
   # corresponding interpreter object for its library paths. This fails if
@@ -74,6 +106,12 @@ 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
+    '' +
+    # avoid matplotlib trying to download dependencies
+    ''
+      echo "[libs]
+      system_freetype=true
+      system_qhull=true" > mplsetup.cfg
     '';
 
   # Matplotlib needs to be built against a specific version of freetype in
@@ -86,5 +124,4 @@ buildPythonPackage rec {
     license     = with licenses; [ psfl bsd0 ];
     maintainers = with maintainers; [ lovek323 veprbl ];
   };
-
 }
diff --git a/pkgs/development/python-modules/matrix-nio/default.nix b/pkgs/development/python-modules/matrix-nio/default.nix
index 96f333fcf8a6e..69721aeb82801 100644
--- a/pkgs/development/python-modules/matrix-nio/default.nix
+++ b/pkgs/development/python-modules/matrix-nio/default.nix
@@ -41,12 +41,14 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace 'aiofiles = "^0.6.0"' 'aiofiles = "*"'
+    # Remove after https://github.com/poljar/matrix-nio/pull/288
+    substituteInPlace pyproject.toml \
+      --replace 'aiohttp-socks = "^0.6.0"' 'aiohttp-socks = "^0.7.0"'
   '';
 
   nativeBuildInputs = [
     git
     poetry-core
-    pytestCheckHook
   ];
 
   propagatedBuildInputs = [
@@ -73,8 +75,11 @@ buildPythonPackage rec {
     hypothesis
     pytest-aiohttp
     pytest-benchmark
+    pytestCheckHook
   ];
 
+  pytestFlagsArray = [ "--benchmark-disable" ];
+
   disabledTests = [
     # touches network
     "test_connect_wrapper"
diff --git a/pkgs/development/python-modules/mautrix/default.nix b/pkgs/development/python-modules/mautrix/default.nix
index c7aa300928f07..1be685e013b49 100644
--- a/pkgs/development/python-modules/mautrix/default.nix
+++ b/pkgs/development/python-modules/mautrix/default.nix
@@ -1,14 +1,14 @@
 { lib, buildPythonPackage, fetchPypi, aiohttp, pythonOlder
-, sqlalchemy, ruamel-yaml, CommonMark, lxml
+, sqlalchemy, ruamel-yaml, CommonMark, lxml, aiosqlite
 }:
 
 buildPythonPackage rec {
   pname = "mautrix";
-  version = "0.11.3";
+  version = "0.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-eZ8fWemS808Hz6KoQWfMsk5WfaO+vj0kTyInhtE20Qk=";
+    sha256 = "5ad04e87bcf31eb3479fdd3cabd5082b257013e5c00f6b369539a2b584afadaf";
   };
 
   propagatedBuildInputs = [
@@ -16,6 +16,7 @@ buildPythonPackage rec {
 
     # defined in optional-requirements.txt
     sqlalchemy
+    aiosqlite
     ruamel-yaml
     CommonMark
     lxml
diff --git a/pkgs/development/python-modules/mayavi/default.nix b/pkgs/development/python-modules/mayavi/default.nix
index 169928e48b685..6f13e63b93415 100644
--- a/pkgs/development/python-modules/mayavi/default.nix
+++ b/pkgs/development/python-modules/mayavi/default.nix
@@ -4,14 +4,14 @@
 
 buildPythonPackage rec {
   pname = "mayavi";
-  version = "4.7.3";
+  version = "4.7.4";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
     extension = "tar.gz";
-    sha256 = "Zw0AI7nNLSNGxFHbm6L2HaI6XfUDOyWuqJy22BuUZPA=";
+    sha256 = "ec50e7ec6afb0f9224ad1863d104a0d1ded6c8deb13e720652007aaca2303332";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/mcstatus/default.nix b/pkgs/development/python-modules/mcstatus/default.nix
index 45e0c2d00aa64..f5c6c276867ff 100644
--- a/pkgs/development/python-modules/mcstatus/default.nix
+++ b/pkgs/development/python-modules/mcstatus/default.nix
@@ -5,6 +5,7 @@
 , dnspython
 , fetchFromGitHub
 , mock
+, poetry-core
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
@@ -13,16 +14,22 @@
 
 buildPythonPackage rec {
   pname = "mcstatus";
-  version = "6.5.0";
+  version = "7.0.0";
+  format = "pyproject";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "Dinnerbone";
     repo = pname;
     rev = "v${version}";
-    sha256 = "00xi3452lap4zx38msx89vvhrzkzb2dvwis1fcmx24qngj9g3yfr";
+    sha256 = "sha256-/EoVM3wEiA2suJHxMu2zZktQhO6T9grWcvWuzmUe6V0=";
   };
 
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   propagatedBuildInputs = [
     asyncio-dgram
     click
@@ -36,7 +43,16 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "mcstatus" ];
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'asyncio-dgram = "1.2.0"' 'asyncio-dgram = ">=1.2.0"' \
+      --replace 'six = "1.14.0"' 'six = ">=1.14.0"' \
+      --replace 'click = "7.1.2"' 'click = ">=7.1.2"'
+  '';
+
+  pythonImportsCheck = [
+    "mcstatus"
+  ];
 
   meta = with lib; {
     description = "Python library for checking the status of Minecraft servers";
diff --git a/pkgs/development/python-modules/md-toc/default.nix b/pkgs/development/python-modules/md-toc/default.nix
index fcc102926b8dd..58670c49a90b9 100644
--- a/pkgs/development/python-modules/md-toc/default.nix
+++ b/pkgs/development/python-modules/md-toc/default.nix
@@ -8,14 +8,16 @@
 
 buildPythonPackage rec {
   pname = "md-toc";
-  version = "8.0.1";
+  version = "8.1.0";
+  format = "setuptools";
+
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "frnmst";
     repo = pname;
     rev = version;
-    sha256 = "sha256-nh9KxjwF+O4n0qVo9yPP6fvKB5XFICh+Ak6oD2fQVdk=";
+    sha256 = "sha256-FTvHPV/QIpKRF7wcZ6yuik4GzPrwyg4Oxc5/cdCs6Qo=";
   };
 
   propagatedBuildInputs = [
@@ -26,9 +28,13 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [ "md_toc/tests/*.py" ];
+  pytestFlagsArray = [
+    "md_toc/tests/*.py"
+  ];
 
-  pythonImportsCheck = [ "md_toc" ];
+  pythonImportsCheck = [
+    "md_toc"
+  ];
 
   meta = with lib; {
     description = "Table of contents generator for Markdown";
diff --git a/pkgs/development/python-modules/mdformat/default.nix b/pkgs/development/python-modules/mdformat/default.nix
index 101ed2aa13464..02aafd3302a94 100644
--- a/pkgs/development/python-modules/mdformat/default.nix
+++ b/pkgs/development/python-modules/mdformat/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "mdformat";
-  version = "0.7.10";
+  version = "0.7.11";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "executablebooks";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Zw7ZGV/Hd0MRxxQVwkjtE6MJXNLQ0A0PJlQr4x9h2ww=";
+    sha256 = "sha256-EhMoGSCtlEcm1+1aHn9DhBnLQvolhq62SMF/AdaY1/E=";
   };
 
   nativeBuildInputs = [
@@ -41,7 +41,16 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "mdformat" ];
+  disabledTests = [
+    # AssertionError
+    "test_no_codeblock_trailing_newline"
+    # Issue with upper/lower case
+    "default_style.md-options0"
+  ];
+
+  pythonImportsCheck = [
+    "mdformat"
+  ];
 
   meta = with lib; {
     description = "CommonMark compliant Markdown formatter";
diff --git a/pkgs/development/python-modules/mdit-py-plugins/default.nix b/pkgs/development/python-modules/mdit-py-plugins/default.nix
index 9c5705dbc4083..03a64588f85b7 100644
--- a/pkgs/development/python-modules/mdit-py-plugins/default.nix
+++ b/pkgs/development/python-modules/mdit-py-plugins/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "mdit-py-plugins";
-  version = "0.2.8";
+  version = "0.3.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -18,13 +18,21 @@ buildPythonPackage rec {
     owner = "executablebooks";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-MXQjaVDuguGbmby6BQnrTdpq6Mih3HabXuyFxf9jB18=";
+    sha256 = "sha256-3zFSTjqwjUV6+fU6falYbIzj/Hp7E/9EXKZIi00tkg4=";
   };
 
-  propagatedBuildInputs = [ markdown-it-py ];
+  propagatedBuildInputs = [
+    markdown-it-py
+  ];
 
-  checkInputs = [ pytestCheckHook pytest-regressions ];
-  pythonImportsCheck = [ "mdit_py_plugins" ];
+  checkInputs = [
+    pytestCheckHook
+    pytest-regressions
+  ];
+
+  pythonImportsCheck = [
+    "mdit_py_plugins"
+  ];
 
   meta = with lib; {
     description = "Collection of core plugins for markdown-it-py";
diff --git a/pkgs/development/python-modules/mdurl/default.nix b/pkgs/development/python-modules/mdurl/default.nix
new file mode 100644
index 0000000000000..37b3e9ad56ac5
--- /dev/null
+++ b/pkgs/development/python-modules/mdurl/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, flit-core
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "mdurl";
+  version = "0.1.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "hukkin";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-AVklWFc4o5R9OzS9BYauuOaxm89P/Ih5l3Vrb2P0El4=";
+  };
+
+  nativeBuildInputs = [
+    flit-core
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "mdurl"
+  ];
+
+  meta = with lib; {
+    description = "URL utilities for markdown-it";
+    homepage = "https://github.com/hukkin/mdurl";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/mediafile/default.nix b/pkgs/development/python-modules/mediafile/default.nix
index a90b3868eb002..c15bb59f47382 100644
--- a/pkgs/development/python-modules/mediafile/default.nix
+++ b/pkgs/development/python-modules/mediafile/default.nix
@@ -1,23 +1,46 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, flit-core
 , mutagen
+, pytestCheckHook
+, pythonOlder
 , six
 }:
 
 buildPythonPackage rec {
   pname = "mediafile";
-  version = "0.8.1";
+  version = "0.9.0";
+  format = "flit";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "878ccc378b77f2d6c175abea135ea25631f28c722e01e1a051924d962ebea165";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "beetbox";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-S90BgjKXpE4kAR0mPXgacmr2A+0hrkGpHRMeuvyFNCg=";
   };
 
-  propagatedBuildInputs = [ mutagen six ];
+  nativeBuildInputs = [
+    flit-core
+  ];
+
+  propagatedBuildInputs = [
+    mutagen
+    six
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "mediafile"
+  ];
 
   meta = with lib; {
-    description = "MediaFile is a simple interface to the metadata tags for many audio file formats.";
+    description = "Python interface to the metadata tags for many audio file formats";
     homepage = "https://github.com/beetbox/mediafile";
     license = licenses.mit;
     maintainers = with maintainers; [ lovesegfault ];
diff --git a/pkgs/development/python-modules/memory-allocator/default.nix b/pkgs/development/python-modules/memory-allocator/default.nix
index cbb521ea985a2..bee35f94f6e96 100644
--- a/pkgs/development/python-modules/memory-allocator/default.nix
+++ b/pkgs/development/python-modules/memory-allocator/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "memory-allocator";
-  version = "0.1.0";
+  version = "0.1.2";
 
   src = fetchPypi {
     inherit version;
     pname = "memory_allocator";
-    sha256 = "sha256-UUcR71e3eAQIQpmWM+AVQxVtgHvrNjaIlHo5pURUln0=";
+    sha256 = "ddf42a2dcc678062f30c63c868335204d46a4ecdf4db0dc43ed4529f1d0ffab9";
   };
 
   propagatedBuildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/meross-iot/default.nix b/pkgs/development/python-modules/meross-iot/default.nix
new file mode 100644
index 0000000000000..5c2bbe9222b7b
--- /dev/null
+++ b/pkgs/development/python-modules/meross-iot/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, paho-mqtt
+, pytestCheckHook
+, pythonOlder
+, requests
+, retrying
+}:
+
+buildPythonPackage rec {
+  pname = "meross-iot";
+  version = "0.4.3.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "albertogeniola";
+    repo = "MerossIot";
+    rev = version;
+    sha256 = "sha256-PZ1+Bjw7k6EFZEuPhbkGrdQzdLGiM4U0ecAAN8SxWU4=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    paho-mqtt
+    requests
+    retrying
+  ];
+
+  # Test require network access
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "meross_iot"
+  ];
+
+  meta = with lib; {
+    description = "Python library to interact with Meross devices";
+    homepage = "https://github.com/albertogeniola/MerossIot";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/meshtastic/default.nix b/pkgs/development/python-modules/meshtastic/default.nix
index 6826298699e1c..359bed40b1ec9 100644
--- a/pkgs/development/python-modules/meshtastic/default.nix
+++ b/pkgs/development/python-modules/meshtastic/default.nix
@@ -1,26 +1,32 @@
 { lib
 , buildPythonPackage
 , dotmap
-, fetchPypi
+, fetchFromGitHub
 , pexpect
 , protobuf
 , pygatt
 , pypubsub
 , pyqrcode
 , pyserial
+, pytestCheckHook
 , pythonOlder
+, pyyaml
 , tabulate
 , timeago
 }:
 
 buildPythonPackage rec {
   pname = "meshtastic";
-  version = "1.2.40";
+  version = "1.2.48";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "be8464037d0c8085350065b38e7a7b028db15f2524764dec0e3548ea5b53500f";
+  src = fetchFromGitHub {
+    owner = "meshtastic";
+    repo = "Meshtastic-python";
+    rev = version;
+    sha256 = "sha256-hf+9WmYLRN53cSipNRA+mRYzSLu6NAO6HSQ3NOeCPM8=";
   };
 
   propagatedBuildInputs = [
@@ -31,22 +37,22 @@ buildPythonPackage rec {
     pypubsub
     pyqrcode
     pyserial
+    pyyaml
     tabulate
     timeago
   ];
 
-  postPatch = ''
-    # https://github.com/meshtastic/Meshtastic-python/pull/87
-    substituteInPlace setup.py \
-      --replace 'with open("README.md", "r") as fh:' "" \
-      --replace "long_description = fh.read()" "" \
-      --replace "long_description=long_description," 'long_description="",'
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export PATH="$PATH:$out/bin";
   '';
 
-  # Project only provides PyPI releases which don't contain the tests
-  # https://github.com/meshtastic/Meshtastic-python/issues/86
-  doCheck = false;
-  pythonImportsCheck = [ "meshtastic" ];
+  pythonImportsCheck = [
+    "meshtastic"
+  ];
 
   meta = with lib; {
     description = "Python API for talking to Meshtastic devices";
diff --git a/pkgs/development/python-modules/metakernel/default.nix b/pkgs/development/python-modules/metakernel/default.nix
index b87b87a1e4b86..b07f68401e253 100644
--- a/pkgs/development/python-modules/metakernel/default.nix
+++ b/pkgs/development/python-modules/metakernel/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "metakernel";
-  version = "0.27.5";
+  version = "0.28.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0aqq9zil6h7kxsg3v2008nr6lv47qvcsash8qzmi1xh6r4x606zy";
+    sha256 = "3b57eb7b3b332614dcba1fa53c8cc1253dbccf962b111517ea16cbecce9a11d5";
   };
 
   propagatedBuildInputs = [ ipykernel ];
diff --git a/pkgs/development/python-modules/minio/default.nix b/pkgs/development/python-modules/minio/default.nix
index 19c549243843e..477ed47e9dd14 100644
--- a/pkgs/development/python-modules/minio/default.nix
+++ b/pkgs/development/python-modules/minio/default.nix
@@ -16,14 +16,16 @@
 
 buildPythonPackage rec {
   pname = "minio";
-  version = "7.1.1";
+  version = "7.1.2";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "minio-py";
     rev = version;
-    sha256 = "sha256-dUNx6r7KppfeHefa1IeJPXSEMyElPk+RAGdn447ax1g=";
+    sha256 = "sha256-KluSdmhpSSqUTLVdFpIGwre7LOu3A16rt73FvaTmuz8=";
   };
 
   propagatedBuildInputs = [
@@ -42,12 +44,14 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  # example credentials aren't present
   disabledTestPaths = [
+    # example credentials aren't present
     "tests/unit/credentials_test.py"
   ];
 
-  pythonImportsCheck = [ "minio" ];
+  pythonImportsCheck = [
+    "minio"
+  ];
 
   meta = with lib; {
     description = "Simple APIs to access any Amazon S3 compatible object storage server";
diff --git a/pkgs/development/python-modules/mistletoe/default.nix b/pkgs/development/python-modules/mistletoe/default.nix
index 29666254e7f00..0de5077ebee89 100644
--- a/pkgs/development/python-modules/mistletoe/default.nix
+++ b/pkgs/development/python-modules/mistletoe/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "mistletoe";
-  version = "0.7.2";
+  version = "0.8.1";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "18z6hqfnfjqnrcgfgl5pkj9ggf9yx0yyy94azcn1qf7hqn6g3l14";
+    sha256 = "468c6a42fd98b85e05b318033f63d76e02712e1ea1328a7ebcba7e47fb6f1e41";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/mizani/default.nix b/pkgs/development/python-modules/mizani/default.nix
new file mode 100644
index 0000000000000..f7bf273f1a276
--- /dev/null
+++ b/pkgs/development/python-modules/mizani/default.nix
@@ -0,0 +1,37 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, lib
+, matplotlib
+, palettable
+, pandas
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "mizani";
+  version = "0.7.3";
+
+  src = fetchFromGitHub {
+    owner = "has2k1";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "04r53dp5jbklv8l9ncgc5wiq0gx25y73h65gmmbbfkxwgsl3w78l";
+  };
+
+  postPatch = ''
+    substituteInPlace pytest.ini --replace " --cov=mizani --cov-report=xml" ""
+  '';
+
+  propagatedBuildInputs = [ matplotlib palettable pandas ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "mizani" ];
+
+  meta = with lib; {
+    description = "Scales for Python";
+    homepage = "https://github.com/has2k1/mizani";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ samuela ];
+  };
+}
diff --git a/pkgs/development/python-modules/ml-collections/default.nix b/pkgs/development/python-modules/ml-collections/default.nix
new file mode 100644
index 0000000000000..ffa3a6ade32ee
--- /dev/null
+++ b/pkgs/development/python-modules/ml-collections/default.nix
@@ -0,0 +1,53 @@
+{ absl-py
+, buildPythonPackage
+, contextlib2
+, fetchPypi
+, fetchurl
+, lib
+, pyyaml
+}:
+
+let
+  requirements = fetchurl {
+    url = "https://raw.githubusercontent.com/google/ml_collections/7f749a281c69f9d0b339c05ecb94b80d95029f25/requirements.txt";
+    sha256 = "1xb351hiscj4zmajfkql3swpacdp6lmz8iwdvwwdx2zqw9a62zps";
+  };
+  requirements-test = fetchurl {
+    url = "https://raw.githubusercontent.com/google/ml_collections/7f749a281c69f9d0b339c05ecb94b80d95029f25/requirements-test.txt";
+    sha256 = "0r457k2nrg5jkf093r0x29yf8xwy6l7jxi6al0fh7mmnfrhr9cb1";
+  };
+in
+buildPythonPackage rec {
+  pname = "ml-collections";
+  version = "0.1.0";
+
+  # ml-collections does not have any git release tags. See https://github.com/google/ml_collections/issues/8.
+  src = fetchPypi {
+    inherit version;
+    pname = "ml_collections";
+    sha256 = "0g6gxfz8g6fh1sghys869ylxgpda9hq7ylc8jw05608l3k6pz8ar";
+  };
+
+  # The pypi source archive does not include requirements.txt or
+  # requirements-test.txt. See https://github.com/google/ml_collections/issues/7.
+  postPatch = ''
+    cp ${requirements} requirements.txt
+    cp ${requirements-test} requirements-test.txt
+  '';
+
+  propagatedBuildInputs = [ absl-py contextlib2 pyyaml ];
+
+  # The official test suite uses bazel. With pytestCheckHook there are name
+  # conflicts between files and tests have assumptions that are broken by the
+  # nix-build environment, eg. re module names and __file__ attributes.
+  doCheck = false;
+
+  pythonImportsCheck = [ "ml_collections" ];
+
+  meta = with lib; {
+    description = "ML Collections is a library of Python collections designed for ML usecases.";
+    homepage = "https://github.com/google/ml_collections";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ samuela ];
+  };
+}
diff --git a/pkgs/development/python-modules/mlflow/default.nix b/pkgs/development/python-modules/mlflow/default.nix
index abd79d22dc168..255c9039ae973 100644
--- a/pkgs/development/python-modules/mlflow/default.nix
+++ b/pkgs/development/python-modules/mlflow/default.nix
@@ -24,12 +24,12 @@
 
 buildPythonPackage rec {
   pname = "mlflow";
-  version = "1.20.2";
+  version = "1.21.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b15ff0c7e5e64f864a0b40c99b9a582227315eca2065d9f831db9aeb8f24637b";
+    sha256 = "5524a371f19c66a18e7ebe9b1085a77f63a6ae514271e487428f28187d79fc8f";
   };
 
   # run into https://stackoverflow.com/questions/51203641/attributeerror-module-alembic-context-has-no-attribute-config
diff --git a/pkgs/development/python-modules/mne-python/default.nix b/pkgs/development/python-modules/mne-python/default.nix
index c9d8833e8ec98..c6e9ee01ffed2 100644
--- a/pkgs/development/python-modules/mne-python/default.nix
+++ b/pkgs/development/python-modules/mne-python/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "mne-python";
-  version = "0.24.0";
+  version = "0.24.1";
 
   disabled = isPy27;
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "mne-tools";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1982y54n7q9pl28haca0vx6cjrk2a8cj24piaj8j31f09rynn8k0";
+    sha256 = "0n91pj97xmpn0bmlv56q2117szlvvs4b52pjjlm3g8ny4xb3iwr0";
   };
 
   propagatedBuildInputs = [ numpy scipy ];
diff --git a/pkgs/development/python-modules/mnemonic/default.nix b/pkgs/development/python-modules/mnemonic/default.nix
index 8d47db6369646..86590c1d7b8dd 100644
--- a/pkgs/development/python-modules/mnemonic/default.nix
+++ b/pkgs/development/python-modules/mnemonic/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "mnemonic";
-  version = "0.19";
+  version = "0.20";
 
   src = fetchFromGitHub {
     owner = "trezor";
     repo = "python-${pname}";
     rev = "v${version}";
-    sha256 = "0rs3szdikkgypiwn43ad3lwh7zvpccw39j5ggkziq6v7pnw3isaq";
+    sha256 = "sha256-YYgWlYfVd1iALOziaUI8uVYjJDCIVk/dXcUmJd2jcvQ=";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/mocket/default.nix b/pkgs/development/python-modules/mocket/default.nix
index 8739c08128333..9d6c64da2153d 100644
--- a/pkgs/development/python-modules/mocket/default.nix
+++ b/pkgs/development/python-modules/mocket/default.nix
@@ -19,12 +19,12 @@
 
 buildPythonPackage rec {
   pname = "mocket";
-  version = "3.10.0";
+  version = "3.10.2";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1fcb4203ae257145b97c865135b3a064b47f20f42dde88c8579f43d88f1a7dfb";
+    sha256 = "sha256-bb/Uf9xWKRNr27SHzTzI14a0At9Ua5xxBr7XN2d6qfQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/mockito/default.nix b/pkgs/development/python-modules/mockito/default.nix
index 69cdf7b56b093..e11e2f7b41b90 100644
--- a/pkgs/development/python-modules/mockito/default.nix
+++ b/pkgs/development/python-modules/mockito/default.nix
@@ -1,12 +1,12 @@
 { lib, buildPythonPackage, fetchPypi, isPy3k, funcsigs, pytest, numpy }:
 
 buildPythonPackage rec {
-  version = "1.2.2";
+  version = "1.3.0";
   pname = "mockito";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d6b3aca6cdb92bbd47e19ebdb1a0b84ef23ab874eae5c6d505323c8657257c06";
+    sha256 = "5d41a5f6ec0b8fc32b6d796480d4849ee5fb0ac75d12f13862f1622684f5f578";
   };
 
   propagatedBuildInputs = lib.optionals (!isPy3k) [ funcsigs ];
diff --git a/pkgs/development/python-modules/monkeyhex/default.nix b/pkgs/development/python-modules/monkeyhex/default.nix
index f627505cbdddc..7c10ad743f9c1 100644
--- a/pkgs/development/python-modules/monkeyhex/default.nix
+++ b/pkgs/development/python-modules/monkeyhex/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "monkeyhex";
-  version = "1.7.2";
+  version = "1.7.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e2add1f7f1f620be9ccec0618342e6a9e47de50e0d2252628bffd452bfd3762b";
+    sha256 = "a646096dd3114ee8a7c6f30363f38c288ec56c4e032c8fc7e681792b604dd122";
   };
 
   propagatedBuildInputs = [ future ];
diff --git a/pkgs/development/python-modules/monty/default.nix b/pkgs/development/python-modules/monty/default.nix
index 9f275a99c7484..36d798e5504d8 100644
--- a/pkgs/development/python-modules/monty/default.nix
+++ b/pkgs/development/python-modules/monty/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "monty";
-  version = "2021.8.17";
+  version = "2021.12.1";
   disabled = pythonOlder "3.5"; # uses type annotations
 
   src = fetchFromGitHub {
     owner = "materialsvirtuallab";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0lg6d0qk6iv476rcn45p5f50kips5g9s709cxddwnk5yrz57c4d0";
+    sha256 = "0zcbdh7pqv4dq3fan0zh912w9bvmf2p0zj1fhp0ayhdsc50cwldh";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/moonraker-api/default.nix b/pkgs/development/python-modules/moonraker-api/default.nix
new file mode 100644
index 0000000000000..2888ff1e06d1f
--- /dev/null
+++ b/pkgs/development/python-modules/moonraker-api/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-aiohttp
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "moonraker-api";
+  version = "2.0.4";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "cmroche";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1hhm3jnl9qm44y4k927fzw1n32c3551kgsk7i57qw25nca9x3k61";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  checkInputs = [
+    pytest-aiohttp
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "moonraker_api"
+  ];
+
+  meta = with lib; {
+    description = "Python API for the Moonraker API";
+    homepage = "https://github.com/cmroche/moonraker-api";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/more-itertools/default.nix b/pkgs/development/python-modules/more-itertools/default.nix
index a03b3a06c3934..21f0b70f63acf 100644
--- a/pkgs/development/python-modules/more-itertools/default.nix
+++ b/pkgs/development/python-modules/more-itertools/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "more-itertools";
-  version = "8.10.0";
+  version = "8.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-HevKvrHfeTgUhZ1kqBrXyxBQTCQ0k2jM8hTGZMR09B8=";
+    sha256 = "7dc6ad46f05f545f900dd59e8dfb4e84a4827b97b3cfecb175ea0c7d247f6064";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/mouseinfo/default.nix b/pkgs/development/python-modules/mouseinfo/default.nix
new file mode 100644
index 0000000000000..5279165b2f1d9
--- /dev/null
+++ b/pkgs/development/python-modules/mouseinfo/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, pyperclip
+, fetchFromGitHub
+, xlib
+, pillow
+}:
+buildPythonPackage rec {
+  pname = "MouseInfo";
+  version = "0.1.3";
+
+  src = fetchFromGitHub {
+    owner = "asweigart";
+    repo = "mouseinfo";
+    rev = "1876ad5cd311b4352d46bc64a12edfb4da49974e";
+    sha256 = "sha256-UTaHTJE0xFihN9r+DY/WhekZ7S/CXtMFbqAayzexRxk=";
+  };
+
+  patches = [
+    ./fix-xlib-version.patch
+    ./pillow-version.patch
+  ];
+
+  doCheck = false;
+  # Mouseinfo requires a X server running to import succesfully
+  # pythonImportsCheck = [ "mouseinfo" ];
+
+  propagatedBuildInputs = [
+    pyperclip
+    xlib
+    pillow
+  ];
+
+  meta = with lib; {
+    description = "An application to display XY position and RGB color information for the pixel currently under the mouse. Works on Python 2 and 3.";
+    homepage = "https://github.com/asweigart/mouseinfo";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ lucasew ];
+  };
+}
diff --git a/pkgs/development/python-modules/mouseinfo/fix-xlib-version.patch b/pkgs/development/python-modules/mouseinfo/fix-xlib-version.patch
new file mode 100644
index 0000000000000..d6bd5f71ac574
--- /dev/null
+++ b/pkgs/development/python-modules/mouseinfo/fix-xlib-version.patch
@@ -0,0 +1,14 @@
+diff --git a/setup.py b/setup.py
+index 37d5f77..894fe78 100644
+--- a/setup.py
++++ b/setup.py
+@@ -31,8 +31,7 @@ setup(
+     test_suite='tests',
+     # NOTE: Update the python_version info for Pillow as Pillow supports later versions of Python.
+     install_requires=['rubicon-objc;platform_system=="Darwin"',
+-                      'python3-Xlib;platform_system=="Linux" and python_version>="3.0"',
+-                      'Xlib;platform_system=="Linux" and python_version<"3.0"',
++                      'python-Xlib;platform_system=="Linux"',
+                       'pyperclip',
+                       'Pillow >= 6.2.1; python_version == "3.8"',
+                       'Pillow >= 5.2.0; python_version == "3.7"',
diff --git a/pkgs/development/python-modules/mouseinfo/pillow-version.patch b/pkgs/development/python-modules/mouseinfo/pillow-version.patch
new file mode 100644
index 0000000000000..b8abb02695f4c
--- /dev/null
+++ b/pkgs/development/python-modules/mouseinfo/pillow-version.patch
@@ -0,0 +1,20 @@
+diff --git a/setup.py b/setup.py
+index 894fe78..ac580a6 100644
+--- a/setup.py
++++ b/setup.py
+@@ -33,14 +33,7 @@ setup(
+     install_requires=['rubicon-objc;platform_system=="Darwin"',
+                       'python-Xlib;platform_system=="Linux"',
+                       'pyperclip',
+-                      'Pillow >= 6.2.1; python_version == "3.8"',
+-                      'Pillow >= 5.2.0; python_version == "3.7"',
+-                      'Pillow >= 4.0.0; python_version == "3.6"',
+-                      'Pillow >= 3.2.0; python_version == "3.5"',
+-                      'Pillow <= 5.4.1, >= 2.5.0; python_version == "3.4"',
+-                      'Pillow <= 4.3.0, >= 2.0.0; python_version == "3.3"',
+-                      'Pillow <= 3.4.2, >= 2.0.0; python_version == "3.2"',
+-                      'Pillow >= 2.0.0; python_version == "2.7"',
++                      'Pillow',
+                       ],
+     keywords='',
+     classifiers=[
diff --git a/pkgs/development/python-modules/ms-active-directory/default.nix b/pkgs/development/python-modules/ms-active-directory/default.nix
new file mode 100644
index 0000000000000..3262ba31cb6b9
--- /dev/null
+++ b/pkgs/development/python-modules/ms-active-directory/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, dnspython
+, fetchFromGitHub
+, ldap3
+, pyasn1
+, pycryptodome
+, pythonOlder
+, pytz
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "ms-active-directory";
+  version = "1.12.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "zorn96";
+    repo = "ms_active_directory";
+    rev = "v${version}";
+    sha256 = "sha256-mErQib8xTgo29iPAtiLnhxLXyFboAzyEW9A/QMseM6k=";
+  };
+
+  propagatedBuildInputs = [
+    dnspython
+    ldap3
+    pyasn1
+    pycryptodome
+    pytz
+    six
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "ms_active_directory"
+  ];
+
+  meta = with lib; {
+    description = "Python module for integrating with Microsoft Active Directory domains";
+    homepage = "https://github.com/zorn96/ms_active_directory/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/msgpack/default.nix b/pkgs/development/python-modules/msgpack/default.nix
index 262e5d5ecd0ef..3feeca74ccd67 100644
--- a/pkgs/development/python-modules/msgpack/default.nix
+++ b/pkgs/development/python-modules/msgpack/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "msgpack";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1109s2yynrahwi64ikax68hx0mbclz8p35afmpphw5dwynb49q7s";
+    sha256 = "51fdc7fb93615286428ee7758cecc2f374d5ff363bdd884c7ea622a7a327a81e";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/msoffcrypto-tool/default.nix b/pkgs/development/python-modules/msoffcrypto-tool/default.nix
new file mode 100644
index 0000000000000..4f3dbc60d18af
--- /dev/null
+++ b/pkgs/development/python-modules/msoffcrypto-tool/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, olefile
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, cryptography
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "msoffcrypto-tool";
+  version = "4.12.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "nolze";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-EBEwldh2Ct/4oxnAF1hWeW/uRrVsCYEi0cJaZubofFk=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    cryptography
+    olefile
+    setuptools
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Test fails with AssertionError
+    "test_cli"
+  ];
+
+  pythonImportsCheck = [
+    "msoffcrypto"
+  ];
+
+  meta = with lib; {
+    description = "Python tool and library for decrypting MS Office files with passwords or other keys";
+    homepage = "https://github.com/nolze/msoffcrypto-tool";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/mutf8/default.nix b/pkgs/development/python-modules/mutf8/default.nix
index ce783bbb5ff91..954cc663c2a4a 100644
--- a/pkgs/development/python-modules/mutf8/default.nix
+++ b/pkgs/development/python-modules/mutf8/default.nix
@@ -7,7 +7,8 @@
 
 buildPythonPackage rec {
   pname = "mutf8";
-  version = "1.0.5";
+  version = "1.0.6";
+  format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
@@ -15,7 +16,7 @@ buildPythonPackage rec {
     owner = "TkTech";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0blp6gb7q3f7if326xard8zlfg2rcmb3a7mxvaxgkvxigipjb9af";
+    hash = "sha256-4Ojn3t0EbOVdrYEiY8JegJuvW9sz8jt9tKFwOluiGQo=";
   };
 
   checkInputs = [
@@ -27,7 +28,9 @@ buildPythonPackage rec {
     pytest
   '';
 
-  pythonImportsCheck = [ "mutf8" ];
+  pythonImportsCheck = [
+    "mutf8"
+  ];
 
   meta = with lib; {
     description = "Fast MUTF-8 encoder & decoder";
diff --git a/pkgs/development/python-modules/myfitnesspal/default.nix b/pkgs/development/python-modules/myfitnesspal/default.nix
index 35d1c70a23a7d..567eeaf69698c 100644
--- a/pkgs/development/python-modules/myfitnesspal/default.nix
+++ b/pkgs/development/python-modules/myfitnesspal/default.nix
@@ -1,34 +1,67 @@
-{ lib, fetchPypi, buildPythonPackage
-, blessed, keyring, keyrings-alt, lxml, measurement, python-dateutil, requests, six, rich
-, pytestCheckHook, mock, nose }:
+{ lib
+, fetchPypi
+, buildPythonPackage
+, blessed
+, keyring
+, keyrings-alt
+, lxml
+, measurement
+, python-dateutil
+, requests
+, six
+, rich
+, pytestCheckHook
+, mock
+, nose
+}:
 
 # TODO: Define this package in "all-packages.nix" using "toPythonApplication".
 # This currently errors out, complaining about not being able to find "etree" from "lxml" even though "lxml" is defined in "propagatedBuildInputs".
 
 buildPythonPackage rec {
   pname = "myfitnesspal";
-  version = "1.16.4";
+  version = "1.16.6";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "44b31623fd71fedd891c3f66be3bc1caa6f1caf88076a75236ab74f8807f6ae5";
+    sha256 = "ac07369ede3ca4c6d673e02f2b9e0893b17d079f3085e36fdfdbdd1cba9f37db";
   };
 
-  # Remove overly restrictive version constraints
+  propagatedBuildInputs = [
+    blessed
+    keyring
+    keyrings-alt
+    lxml
+    measurement
+    python-dateutil
+    requests
+    six
+    rich
+  ];
+
+  checkInputs = [
+    mock
+    nose
+    pytestCheckHook
+  ];
+
   postPatch = ''
-    sed -i 's/keyring>=.*/keyring/' requirements.txt
-    sed -i 's/keyrings.alt>=.*/keyrings.alt/' requirements.txt
-    sed -i 's/rich>=.*/rich/' requirements.txt
+    # Remove overly restrictive version constraints
+    sed -i -e "s/>=.*//" requirements.txt
   '';
 
-  propagatedBuildInputs = [ blessed keyring keyrings-alt lxml measurement python-dateutil requests six rich ];
+  disabledTests = [
+    # Integration tests require an account to be set
+    "test_integration"
+  ];
 
-  # Integration tests require an account to be set
-  disabledTests = [ "test_integration" ];
-  checkInputs = [ pytestCheckHook mock nose ];
+  pythonImportsCheck = [
+    "myfitnesspal"
+  ];
 
   meta = with lib; {
-    description = "Access your meal tracking data stored in MyFitnessPal programatically";
+    description = "Python module to access meal tracking data stored in MyFitnessPal";
     homepage = "https://github.com/coddingtonbear/python-myfitnesspal";
     license = licenses.mit;
     maintainers = with maintainers; [ bhipple ];
diff --git a/pkgs/development/python-modules/myhome/default.nix b/pkgs/development/python-modules/myhome/default.nix
new file mode 100644
index 0000000000000..de729243f0427
--- /dev/null
+++ b/pkgs/development/python-modules/myhome/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytestCheckHook
+, python-dateutil
+, pythonOlder
+, urllib3
+}:
+
+buildPythonPackage rec {
+  pname = "myhome";
+  version = "0.2.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "speijnik";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-DJzwvgvSA9Q0kpueUoQV64pdDDNA7WzGu7r+g5aqutk=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    python-dateutil
+    urllib3
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "myhome"
+  ];
+
+  meta = with lib; {
+    description = "Python library for interacting with MyHomeSERVER1";
+    homepage = "https://github.com/speijnik/myhome";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/mypy-boto3-s3/default.nix b/pkgs/development/python-modules/mypy-boto3-s3/default.nix
index c45ccaca013dd..b26086f00ae08 100644
--- a/pkgs/development/python-modules/mypy-boto3-s3/default.nix
+++ b/pkgs/development/python-modules/mypy-boto3-s3/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "mypy-boto3-s3";
-  version = "1.20.1";
+  version = "1.20.17";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-RnWlDiXol074gikg8i449rx4ENG7Ac7kz9lMi12rkuw=";
+    sha256 = "sha256-7Zw8NxOEXDRmLChxHQXVU/HzR8z6HuLxX8bB3pZuCqc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/mypy/default.nix b/pkgs/development/python-modules/mypy/default.nix
index dbbcb30ffcecc..99580e2de37d6 100644
--- a/pkgs/development/python-modules/mypy/default.nix
+++ b/pkgs/development/python-modules/mypy/default.nix
@@ -1,28 +1,63 @@
-{ lib, stdenv, fetchPypi, buildPythonPackage, typed-ast, psutil, isPy3k
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, buildPythonPackage
 , mypy-extensions
+, python
+, pythonOlder
+, typed-ast
 , typing-extensions
+, tomli
+, types-typed-ast
 }:
+
 buildPythonPackage rec {
   pname = "mypy";
-  version = "0.812";
-  disabled = !isPy3k;
+  version = "unstable-2021-11-14";
+  disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "069i9qnfanp7dn8df1vspnqb0flvsszzn22v00vj08nzlnd061yd";
+  src = fetchFromGitHub {
+    owner = "python";
+    repo = "mypy";
+    rev = "053a1beb94ee4e5b3260725594315d1b6776e42f";
+    sha256 = "sha256-q2ntj3y3GgXrw4v+yMvcqWFv4y/6YwunIj3bNzU9CH0=";
   };
 
-  propagatedBuildInputs = [ typed-ast psutil mypy-extensions typing-extensions ];
+  patches = [
+    # FIXME: Remove patch after upstream has decided the proper solution.
+    #        https://github.com/python/mypy/pull/11143
+    (fetchpatch {
+      url = "https://github.com/python/mypy/commit/f1755259d54330cd087cae763cd5bbbff26e3e8a.patch";
+      sha256 = "sha256-5gPahX2X6+/qUaqDQIGJGvh9lQ2EDtks2cpQutgbOHk=";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "tomli>=1.1.0,<1.2.0" "tomli"
+  '';
+
+  buildInputs = [
+    types-typed-ast
+  ];
+
+  propagatedBuildInputs = [
+    mypy-extensions
+    tomli
+    typed-ast
+    typing-extensions
+  ];
 
   # Tests not included in pip package.
   doCheck = false;
 
   pythonImportsCheck = [
     "mypy"
-    "mypy.types"
     "mypy.api"
     "mypy.fastparse"
     "mypy.report"
+    "mypy.types"
     "mypyc"
     "mypyc.analysis"
   ];
@@ -32,10 +67,13 @@ buildPythonPackage rec {
   # is64bit: unfortunately the build would exhaust all possible memory on i686-linux.
   MYPY_USE_MYPYC = stdenv.buildPlatform.is64bit;
 
+  # when testing reduce optimisation level to drastically reduce build time
+  MYPYC_OPT_LEVEL = 1;
+
   meta = with lib; {
     description = "Optional static typing for Python";
-    homepage    = "http://www.mypy-lang.org";
-    license     = licenses.mit;
-    maintainers = with maintainers; [ martingms lnl7 ];
+    homepage = "http://www.mypy-lang.org";
+    license = licenses.mit;
+    maintainers = with maintainers; [ martingms lnl7 SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/mypy/extensions.nix b/pkgs/development/python-modules/mypy/extensions.nix
index 5992a6815d8e4..e62fa4230fff4 100644
--- a/pkgs/development/python-modules/mypy/extensions.nix
+++ b/pkgs/development/python-modules/mypy/extensions.nix
@@ -13,12 +13,12 @@ buildPythonPackage rec {
     sha256 = "2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8";
   };
 
-  propagatedBuildInputs = if pythonOlder "3.5" then [ typing ] else [ ];
+  propagatedBuildInputs = lib.optional (pythonOlder "3.5") typing;
 
   meta = with lib; {
     description = "Experimental type system extensions for programs checked with the mypy typechecker";
-    homepage    = "http://www.mypy-lang.org";
-    license     = licenses.mit;
-    maintainers = with maintainers; [ martingms lnl7 ];
+    homepage = "http://www.mypy-lang.org";
+    license = licenses.mit;
+    maintainers = with maintainers; [ martingms lnl7 SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/mysqlclient/default.nix b/pkgs/development/python-modules/mysqlclient/default.nix
index b7a0f39990ea4..ad1e321e9f845 100644
--- a/pkgs/development/python-modules/mysqlclient/default.nix
+++ b/pkgs/development/python-modules/mysqlclient/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "mysqlclient";
-  version = "2.0.3";
+  version = "2.1.0";
 
   nativeBuildInputs = [
     libmysqlclient
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f6ebea7c008f155baeefe16c56cd3ee6239f7a5a9ae42396c2f1860f08a7c432";
+    sha256 = "973235686f1b720536d417bf0a0d39b4ab3d5086b2b6ad5e6752393428c02b12";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/natsort/default.nix b/pkgs/development/python-modules/natsort/default.nix
index e7a2a6808a8a0..3c9d625db70f9 100644
--- a/pkgs/development/python-modules/natsort/default.nix
+++ b/pkgs/development/python-modules/natsort/default.nix
@@ -1,48 +1,47 @@
 { lib
 , buildPythonPackage
-, pythonOlder
+, fastnumbers
 , fetchPypi
-, pytest
-, pytest-cov
-, pytest-mock
-, hypothesis
 , glibcLocales
-, pathlib ? null
-, isPy3k
+, hypothesis
+, PyICU
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "natsort";
-  version = "7.1.1";
+  version = "7.2.0";
+  format = "setuptools";
 
-  checkInputs = [
-    pytest
-    pytest-cov
-    pytest-mock
-    hypothesis
-    glibcLocales
-  ]
-  # pathlib was made part of standard library in 3.5:
-  ++ (lib.optionals (pythonOlder "3.4") [ pathlib ]);
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "00c603a42365830c4722a2eb7663a25919551217ec09a243d3399fa8dd4ac403";
+    sha256 = "e7054b4e1f47365f141602a742685165a552291b643a214652d0dd9d6cea58d1";
   };
 
-  # Does not support Python 2
-  disabled = !isPy3k;
+  propagatedBuildInputs = [
+    fastnumbers
+    PyICU
+  ];
+
+  checkInputs = [
+    glibcLocales
+    hypothesis
+    pytest-mock
+    pytestCheckHook
+  ];
 
-  # testing based on project's tox.ini
-  # natsort_keygen has pytest mock issues
-  checkPhase = ''
-    pytest --doctest-modules natsort
-    pytest --ignore=tests/test_natsort_keygen.py
-  '';
+  pythonImportsCheck = [
+    "natsort"
+  ];
 
-  meta = {
-    description = "Natural sorting for python";
+  meta = with lib; {
+    description = "Natural sorting for Python";
     homepage = "https://github.com/SethMMorton/natsort";
-    license = lib.licenses.mit;
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/nbclient/default.nix b/pkgs/development/python-modules/nbclient/default.nix
index caf98c4206022..c10b442bac924 100644
--- a/pkgs/development/python-modules/nbclient/default.nix
+++ b/pkgs/development/python-modules/nbclient/default.nix
@@ -6,25 +6,18 @@
 
 buildPythonPackage rec {
   pname = "nbclient";
-  version = "0.5.8";
+  version = "0.5.9";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-NPUsycuDGl2MzXAxU341THXcYaJEh/mYcS0Sid4yCiU=";
+    sha256 = "sha256-meRt2vrNC4YSk78kb+2FQKGErfo6p9ZB+JAx7AcHAeA=";
   };
 
   inherit doCheck;
   checkInputs = [ pytest xmltodict nbconvert ipywidgets ];
   propagatedBuildInputs = [ async_generator traitlets nbformat nest-asyncio jupyter-client ];
 
-  postFixup =  ''
-    # Remove until fixed by upstream
-    # https://github.com/jupyter/nbclient/pull/173#issuecomment-968760082
-    rm $out/bin/.jupyter-run-wrapped
-    rm $out/bin/jupyter-run
-  '';
-
   meta = with lib; {
     homepage = "https://github.com/jupyter/nbclient";
     description = "A client library for executing notebooks";
diff --git a/pkgs/development/python-modules/nbconvert/default.nix b/pkgs/development/python-modules/nbconvert/default.nix
index a6b09cbe31e91..400d59272ee1d 100644
--- a/pkgs/development/python-modules/nbconvert/default.nix
+++ b/pkgs/development/python-modules/nbconvert/default.nix
@@ -23,11 +23,11 @@
 
 buildPythonPackage rec {
   pname = "nbconvert";
-  version = "6.2.0";
+  version = "6.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16ceecd0afaa8fd26c245fa32e2c52066c02f13aa73387fffafd84750baea863";
+    sha256 = "5e77d6203854944520105e38f2563a813a4a3708e8563aa598928a3b5ee1081a";
   };
 
   # Add $out/share/jupyter to the list of paths that are used to search for
diff --git a/pkgs/development/python-modules/neo4j-driver/default.nix b/pkgs/development/python-modules/neo4j-driver/default.nix
new file mode 100644
index 0000000000000..6b81af0c29400
--- /dev/null
+++ b/pkgs/development/python-modules/neo4j-driver/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytz
+}:
+
+buildPythonPackage rec {
+  pname = "neo4j-driver";
+  version = "4.4.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "neo4j";
+    repo = "neo4j-python-driver";
+    rev = version;
+    sha256 = "sha256-aGOqD6mmd3dulQ/SdaDPDZhkCwXdYCucHw+CrkJf1M0=";
+  };
+
+  propagatedBuildInputs = [
+    pytz
+  ];
+
+  # Missing dependencies
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "neo4j"
+  ];
+
+  meta = with lib; {
+    description = "Neo4j Bolt Driver for Python";
+    homepage = "https://github.com/neo4j/neo4j-python-driver";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/netdata/default.nix b/pkgs/development/python-modules/netdata/default.nix
index 3b1ccbb73f70a..c54719b696b11 100644
--- a/pkgs/development/python-modules/netdata/default.nix
+++ b/pkgs/development/python-modules/netdata/default.nix
@@ -1,28 +1,47 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, aiohttp
-, async-timeout
+, pythonOlder
+, fetchFromGitHub
+, poetry-core
+, httpx
+, pytest-asyncio
+, pytest-httpx
+, pytestCheckHook
+, yarl
 }:
 
 buildPythonPackage rec {
   pname = "netdata";
-  version = "0.2.1";
+  version = "1.0.1";
+  format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-oGOT4RvftI/2Ri2icM/AtglNZXt10jkFh/rlr6A46YE=";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "home-assistant-ecosystem";
+    repo = "python-netdata";
+    rev = version;
+    sha256 = "sha256-4+cTIqytHrCPG7lUZv1IhL7Bk5GlTEveQTtuCkFIepo=";
   };
 
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   propagatedBuildInputs = [
-    aiohttp
-    async-timeout
+    httpx
+    yarl
   ];
 
-  # no tests are present
-  doCheck = false;
+  checkInputs = [
+    pytest-asyncio
+    pytest-httpx
+    pytestCheckHook
+  ];
 
-  pythonImportsCheck = [ "netdata" ];
+  pythonImportsCheck = [
+    "netdata"
+  ];
 
   meta = with lib; {
     description = "Python API for interacting with Netdata";
diff --git a/pkgs/development/python-modules/nexia/default.nix b/pkgs/development/python-modules/nexia/default.nix
index 22dbea2cd5170..5bb8b15f68349 100644
--- a/pkgs/development/python-modules/nexia/default.nix
+++ b/pkgs/development/python-modules/nexia/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "nexia";
-  version = "0.9.11";
+  version = "0.9.12";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "bdraco";
     repo = pname;
     rev = version;
-    sha256 = "0ql08nfvh6rjhjdh78gzih7az95m0fc9wxc22yqmlc9grifnp9i5";
+    sha256 = "sha256-YZHAWRTYquUm3Ymi/3mSQqxYZuoxsH5Q/LZOPDftEzU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/nilearn/default.nix b/pkgs/development/python-modules/nilearn/default.nix
index 41f84dbb6679e..c79ea52f558c5 100644
--- a/pkgs/development/python-modules/nilearn/default.nix
+++ b/pkgs/development/python-modules/nilearn/default.nix
@@ -12,6 +12,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook ];
   disabledTests = [ "test_clean_confounds" ];  # https://github.com/nilearn/nilearn/issues/2608
+  pytestFlagsArray = [ "nilearn" ];
 
   propagatedBuildInputs = [
     joblib
diff --git a/pkgs/development/python-modules/nipype/default.nix b/pkgs/development/python-modules/nipype/default.nix
index 8d0c597a1af0a..68a544c9ab07c 100644
--- a/pkgs/development/python-modules/nipype/default.nix
+++ b/pkgs/development/python-modules/nipype/default.nix
@@ -49,12 +49,12 @@ in
 
 buildPythonPackage rec {
   pname = "nipype";
-  version = "1.6.1";
+  version = "1.7.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8428cfc633d8e3b8c5650e241e9eedcf637b7969bcd40f3423334d4c6b0992b5";
+    sha256 = "e689fe2e5049598c9cd3708e8df1cac732fa1a88696f283e3bc0a70fecb8ab51";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/nitransforms/default.nix b/pkgs/development/python-modules/nitransforms/default.nix
new file mode 100644
index 0000000000000..79fd93d321231
--- /dev/null
+++ b/pkgs/development/python-modules/nitransforms/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, h5py
+, nibabel
+, numpy
+, setuptools-scm
+, toml
+}:
+
+buildPythonPackage rec {
+  pname = "nitransforms";
+  version = "21.0.0";
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "njJqHqXVxldyGfmdM8GmgKdgIT4kMYLzcM5+ayR2EDo=";
+  };
+
+  buildInputs = [ setuptools-scm toml ];
+  propagatedBuildInputs = [ h5py nibabel numpy ];
+
+  doCheck = false;
+  # relies on data repo (https://github.com/nipreps-data/nitransforms-tests);
+  # probably too heavy
+  pythonImportsCheck = [
+    "nitransforms"
+    "nitransforms.base"
+    "nitransforms.io"
+    "nitransforms.io.base"
+    "nitransforms.linear"
+    "nitransforms.manip"
+    "nitransforms.nonlinear"
+    "nitransforms.patched"
+  ];
+
+  meta = with lib; {
+    homepage = "https://nitransforms.readthedocs.io";
+    description = "Geometric transformations for images and surfaces";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/nltk/default.nix b/pkgs/development/python-modules/nltk/default.nix
index 346c8339dbe1f..9267f70c2c016 100644
--- a/pkgs/development/python-modules/nltk/default.nix
+++ b/pkgs/development/python-modules/nltk/default.nix
@@ -6,13 +6,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "3.6.5";
+  version = "3.6.7";
   pname = "nltk";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "834d1a8e38496369390be699be9bca4f2a0f2175b50327272b2ec7a98ffda2a0";
+    sha256 = "51bf1aef5304740a708be7c8e683f7798f03dc5c7a7e7feb758be9e95f4585e3";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/nmapthon2/default.nix b/pkgs/development/python-modules/nmapthon2/default.nix
new file mode 100644
index 0000000000000..2567e70b0d677
--- /dev/null
+++ b/pkgs/development/python-modules/nmapthon2/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, appdirs
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "nmapthon2";
+  version = "0.1.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-6mGMB8nW6CqTPxgc1fveh6fJo/t+jpUS6rJ2VR2gU/g=";
+  };
+
+  # Tests are not part of the PyPI source and source is not tagged
+  # https://github.com/cblopez/nmapthon2/issues/3
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "nmapthon2"
+  ];
+
+  meta = with lib; {
+    description = "Python library to automate nmap";
+    homepage = "https://github.com/cblopez/nmapthon2";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/notebook/default.nix b/pkgs/development/python-modules/notebook/default.nix
index d17ad5884f371..1cb5f1b75708a 100644
--- a/pkgs/development/python-modules/notebook/default.nix
+++ b/pkgs/development/python-modules/notebook/default.nix
@@ -27,12 +27,12 @@
 
 buildPythonPackage rec {
   pname = "notebook";
-  version = "6.4.4";
+  version = "6.4.6";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "26b0095c568e307a310fd78818ad8ebade4f00462dada4c0e34cbad632b9085d";
+    sha256 = "7bcdf79bd1cda534735bd9830d2cbedab4ee34d8fe1df6e7b946b3aab0902ba3";
   };
 
   LC_ALL = "en_US.utf8";
@@ -73,6 +73,12 @@ buildPythonPackage rec {
     "test_checkpoints_follow_file"
   ];
 
+  disabledTestPaths = lib.optionals stdenv.isDarwin [
+    # requires local networking
+    "notebook/auth/tests/test_login.py"
+    "notebook/bundler/tests/test_bundler_api.py"
+  ];
+
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/notifications-python-client/default.nix b/pkgs/development/python-modules/notifications-python-client/default.nix
new file mode 100644
index 0000000000000..1f59b808912f7
--- /dev/null
+++ b/pkgs/development/python-modules/notifications-python-client/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, buildPythonPackage
+, docopt
+, fetchFromGitHub
+, freezegun
+, mock
+, pyjwt
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
+, requests
+, requests-mock
+}:
+
+buildPythonPackage rec {
+  pname = "notifications-python-client";
+  version = "6.3.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "alphagov";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-pfOTVgsfXJQ9GIGowra3RAwxCri76RgnA9iyWbjomCk=";
+  };
+
+  propagatedBuildInputs = [
+    docopt
+    pyjwt
+    requests
+  ];
+
+  checkInputs = [
+    freezegun
+    mock
+    pytest-mock
+    pytestCheckHook
+    requests-mock
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "'pytest-runner'" ""
+  '';
+
+  pythonImportsCheck = [
+    "notifications_python_client"
+  ];
+
+  meta = with lib; {
+    description = "Python client for the GOV.UK Notify API";
+    homepage = "https://github.com/alphagov/notifications-python-client";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/nuitka/default.nix b/pkgs/development/python-modules/nuitka/default.nix
index 548565ff1d353..127f1fcbedf68 100644
--- a/pkgs/development/python-modules/nuitka/default.nix
+++ b/pkgs/development/python-modules/nuitka/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   postPatch = ''
     patchShebangs tests/run-tests
   '' + lib.optionalString stdenv.isLinux ''
-    substituteInPlace nuitka/plugins/standard/ImplicitImports.py --replace 'locateDLL("uuid")' '"${pkgs.util-linux.out}/lib/libuuid.so"'
+    substituteInPlace nuitka/plugins/standard/ImplicitImports.py --replace 'locateDLL("uuid")' '"${lib.getLib pkgs.util-linux}/lib/libuuid.so"'
   '';
 
   # We do not want any wrappers here.
diff --git a/pkgs/development/python-modules/numexpr/default.nix b/pkgs/development/python-modules/numexpr/default.nix
index c2630d75eb45d..31b529c83dab4 100644
--- a/pkgs/development/python-modules/numexpr/default.nix
+++ b/pkgs/development/python-modules/numexpr/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "numexpr";
-  version = "2.7.3";
+  version = "2.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "43616529f9b7d1afc83386f943dc66c4da5e052f00217ba7e3ad8dd1b5f3a825";
+    sha256 = "9fec076b76c90a5f3929373f548834bb203c6d23a81a895e60d0fe9cca075e99";
   };
 
   # Remove existing site.cfg, use the one we built for numpy.
diff --git a/pkgs/development/python-modules/numpy/default.nix b/pkgs/development/python-modules/numpy/default.nix
index 6119ee384229c..945828fbc19fd 100644
--- a/pkgs/development/python-modules/numpy/default.nix
+++ b/pkgs/development/python-modules/numpy/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchPypi
+, fetchpatch
 , python
 , buildPythonPackage
 , gfortran
@@ -39,14 +40,14 @@ let
   };
 in buildPythonPackage rec {
   pname = "numpy";
-  version = "1.21.2";
+  version = "1.21.4";
   format = "pyproject.toml";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "423216d8afc5923b15df86037c6053bf030d15cc9e3224206ef868c2d63dd6dc";
+    sha256 = "e6c76a87633aa3fa16614b61ccedfae45b91df2767cf097aa9c933932a7ed1e0";
   };
 
   patches = lib.optionals python.hasDistutilsCxxPatch [
@@ -72,10 +73,6 @@ in buildPythonPackage rec {
     ln -s ${cfg} site.cfg
   '';
 
-  # Workaround flakey compiler feature detection
-  # https://github.com/numpy/numpy/issues/19624
-  hardeningDisable = [ "strictoverflow" ];
-
   enableParallelBuilding = true;
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/nunavut/default.nix b/pkgs/development/python-modules/nunavut/default.nix
index 75eb114ac5815..8c4c8e1fbc5f7 100644
--- a/pkgs/development/python-modules/nunavut/default.nix
+++ b/pkgs/development/python-modules/nunavut/default.nix
@@ -8,13 +8,13 @@
 
  buildPythonPackage rec {
   pname = "nunavut";
-  version = "1.5.1";
+  version = "1.5.2";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2c57a9ffe6d462b0ad1ea49ac3ce9ebb3e8d43b2adf653dbe47eaf1b13be3c3b";
+    sha256 = "12703306872404be556648ab2282dc1566f4e77bfb9f14747fb13294c9235081";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/nwdiag/default.nix b/pkgs/development/python-modules/nwdiag/default.nix
index c8147d9d9a4e2..4579be5c3c131 100644
--- a/pkgs/development/python-modules/nwdiag/default.nix
+++ b/pkgs/development/python-modules/nwdiag/default.nix
@@ -1,22 +1,49 @@
-{ lib, fetchurl, buildPythonPackage, pep8, nose, unittest2, docutils
-, blockdiag, setuptools
+{ lib
+, blockdiag
+, fetchFromGitHub
+, buildPythonPackage
+, nose
+, pytestCheckHook
+, setuptools
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "nwdiag";
-  version = "2.0.0";
+  version = "3.0.0";
+  format = "setuptools";
 
-  src = fetchurl {
-    url = "mirror://pypi/n/nwdiag/${pname}-${version}.tar.gz";
-    sha256 = "1qkl1lq7cblr6fra2rjw3zlcccragp8384hpm4n7dkc5c3yzmmsw";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "blockdiag";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-uKrdkXpL5YBr953sRsHknYg+2/WwrZmyDf8BMA2+0tU=";
   };
 
-  buildInputs = [ pep8 nose unittest2 docutils ];
+  propagatedBuildInputs = [
+    blockdiag
+    setuptools
+  ];
+
+  checkInputs = [
+    nose
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    "src/nwdiag/tests/"
+  ];
 
-  propagatedBuildInputs = [ blockdiag setuptools ];
+  disabledTests = [
+    # UnicodeEncodeError: 'latin-1' codec can't encode...
+    "test_setup_inline_svg_is_true_with_multibytes"
+  ];
 
-  # tests fail
-  doCheck = false;
+  pythonImportsCheck = [
+    "nwdiag"
+  ];
 
   meta = with lib; {
     description = "Generate network-diagram image from spec-text file (similar to Graphviz)";
diff --git a/pkgs/development/python-modules/obfsproxy/default.nix b/pkgs/development/python-modules/obfsproxy/default.nix
index b5736851fbb64..0c0781bc577b7 100644
--- a/pkgs/development/python-modules/obfsproxy/default.nix
+++ b/pkgs/development/python-modules/obfsproxy/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     description = "A pluggable transport proxy";
     homepage = "https://www.torproject.org/projects/obfsproxy";
     repositories.git = "https://git.torproject.org/pluggable-transports/obfsproxy.git";
-    maintainers = with maintainers; [ phreedom thoughtpolice ];
+    maintainers = with maintainers; [ thoughtpolice ];
   };
 
 }
diff --git a/pkgs/development/python-modules/ocrmypdf/default.nix b/pkgs/development/python-modules/ocrmypdf/default.nix
index 71506e60b60e4..a6c9b150ead78 100644
--- a/pkgs/development/python-modules/ocrmypdf/default.nix
+++ b/pkgs/development/python-modules/ocrmypdf/default.nix
@@ -1,6 +1,5 @@
 { lib
 , buildPythonPackage
-, cffi
 , coloredlogs
 , fetchFromGitHub
 , ghostscript
@@ -8,7 +7,6 @@
 , importlib-metadata
 , importlib-resources
 , jbig2enc
-, leptonica
 , pdfminer
 , pikepdf
 , pillow
@@ -18,7 +16,6 @@
 , pytestCheckHook
 , pythonOlder
 , reportlab
-, setuptools
 , setuptools-scm
 , setuptools-scm-git-archive
 , stdenv
@@ -30,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "ocrmypdf";
-  version = "12.7.2";
+  version = "13.2.0";
 
   src = fetchFromGitHub {
     owner = "jbarlow83";
@@ -42,7 +39,7 @@ buildPythonPackage rec {
     extraPostFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    sha256 = "sha256-+mh7NgAk7R/94FXjRV+SLy478pZwYLLS8HwCazEbMf4=";
+    sha256 = "sha256-mVPKcxTKoRgttwJdsY7r0kF7W1+G45iCc+mFctDipSM=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -52,7 +49,6 @@ buildPythonPackage rec {
       src = ./paths.patch;
       gs = "${lib.getBin ghostscript}/bin/gs";
       jbig2 = "${lib.getBin jbig2enc}/bin/jbig2";
-      liblept = "${lib.getLib leptonica}/lib/liblept${stdenv.hostPlatform.extensions.sharedLibrary}";
       pngquant = "${lib.getBin pngquant}/bin/pngquant";
       tesseract = "${lib.getBin tesseract4}/bin/tesseract";
       unpaper = "${lib.getBin unpaper}/bin/unpaper";
@@ -65,7 +61,6 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    cffi
     coloredlogs
     img2pdf
     pdfminer
@@ -73,7 +68,6 @@ buildPythonPackage rec {
     pillow
     pluggy
     reportlab
-    setuptools
     tqdm
   ] ++ (lib.optionals (pythonOlder "3.8") [
     importlib-metadata
@@ -94,7 +88,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/jbarlow83/OCRmyPDF";
     description = "Adds an OCR text layer to scanned PDF files, allowing them to be searched";
     license = with licenses; [ mpl20 mit ];
-    platforms = platforms.linux;
     maintainers = with maintainers; [ kiwi dotlambda ];
     changelog = "https://github.com/jbarlow83/OCRmyPDF/blob/v${version}/docs/release_notes.rst";
   };
diff --git a/pkgs/development/python-modules/ocrmypdf/paths.patch b/pkgs/development/python-modules/ocrmypdf/paths.patch
index 9bfcc72855418..47521e1033eb4 100644
--- a/pkgs/development/python-modules/ocrmypdf/paths.patch
+++ b/pkgs/development/python-modules/ocrmypdf/paths.patch
@@ -1,30 +1,17 @@
 diff --git a/src/ocrmypdf/_exec/ghostscript.py b/src/ocrmypdf/_exec/ghostscript.py
-index 5c357f1b..f459763a 100644
+index 1146cc5f..43f3915c 100644
 --- a/src/ocrmypdf/_exec/ghostscript.py
 +++ b/src/ocrmypdf/_exec/ghostscript.py
-@@ -25,28 +25,7 @@ from ocrmypdf.subprocess import get_version, run, run_polling_stderr
+@@ -40,15 +40,7 @@ For details see:
+ # Most reliable what to get the bitness of Python interpreter, according to Python docs
+ _is_64bit = sys.maxsize > 2 ** 32
  
- log = logging.getLogger(__name__)
- 
--missing_gs_error = """
-----------------------------------------------------------------------
--This error normally occurs when ocrmypdf find can't Ghostscript.
--Please ensure Ghostscript is installed and its location is added to
--the system PATH environment variable.
--
--For details see:
--    https://ocrmypdf.readthedocs.io/en/latest/installation.html
-----------------------------------------------------------------------
--"""
--
 -_gswin = None
 -if os.name == 'nt':
--    _gswin = which('gswin64c')
--    if not _gswin:
--        _gswin = which('gswin32c')
--        if not _gswin:
--            raise MissingDependencyError(missing_gs_error)
--    _gswin = Path(_gswin).stem
+-    if _is_64bit:
+-        _gswin = 'gswin64c'
+-    else:
+-        _gswin = 'gswin32c'
 -
 -GS = _gswin if _gswin else 'gs'
 -del _gswin
@@ -86,19 +73,19 @@ index ca8a4542..d0544174 100644
              '--skip-if-larger',
              '--quality',
 diff --git a/src/ocrmypdf/_exec/tesseract.py b/src/ocrmypdf/_exec/tesseract.py
-index 33ead41e..5840f7c1 100644
+index a3688f65..61f54465 100644
 --- a/src/ocrmypdf/_exec/tesseract.py
 +++ b/src/ocrmypdf/_exec/tesseract.py
-@@ -78,7 +78,7 @@ class TesseractVersion(StrictVersion):
+@@ -75,7 +75,7 @@ class TesseractVersion(StrictVersion):
  
  
- def version():
+ def version() -> str:
 -    return get_version('tesseract', regex=r'tesseract\s(.+)')
 +    return get_version('@tesseract@', regex=r'tesseract\s(.+)')
  
  
  def has_user_words():
-@@ -100,7 +100,7 @@ def get_languages():
+@@ -97,7 +97,7 @@ def get_languages():
          msg += output
          return msg
  
@@ -107,7 +94,7 @@ index 33ead41e..5840f7c1 100644
      try:
          proc = run(
              args_tess,
-@@ -122,7 +122,7 @@ def get_languages():
+@@ -119,7 +119,7 @@ def get_languages():
  
  
  def tess_base_args(langs: List[str], engine_mode: Optional[int]) -> List[str]:
@@ -117,7 +104,7 @@ index 33ead41e..5840f7c1 100644
          args.extend(['-l', '+'.join(langs)])
      if engine_mode is not None:
 diff --git a/src/ocrmypdf/_exec/unpaper.py b/src/ocrmypdf/_exec/unpaper.py
-index 3c3ae72c..d269966a 100644
+index aec365c2..cc5cb7e4 100644
 --- a/src/ocrmypdf/_exec/unpaper.py
 +++ b/src/ocrmypdf/_exec/unpaper.py
 @@ -31,7 +31,7 @@ log = logging.getLogger(__name__)
@@ -138,23 +125,3 @@ index 3c3ae72c..d269966a 100644
  
      with TemporaryDirectory() as tmpdir:
          input_pnm, output_pnm = _setup_unpaper_io(Path(tmpdir), input_file)
-diff --git a/src/ocrmypdf/leptonica.py b/src/ocrmypdf/leptonica.py
-index e4814f1a..fdaf7ea4 100644
---- a/src/ocrmypdf/leptonica.py
-+++ b/src/ocrmypdf/leptonica.py
-@@ -33,14 +33,7 @@ from ocrmypdf.lib._leptonica import ffi
- 
- logger = logging.getLogger(__name__)
- 
--if os.name == 'nt':
--    from ocrmypdf.subprocess._windows import shim_env_path
--
--    libname = 'liblept-5'
--    os.environ['PATH'] = shim_env_path()
--else:
--    libname = 'lept'
--_libpath = find_library(libname)
-+_libpath = '@liblept@'
- if not _libpath:
-     raise MissingDependencyError(
-         """
diff --git a/pkgs/development/python-modules/oletools/default.nix b/pkgs/development/python-modules/oletools/default.nix
new file mode 100644
index 0000000000000..54c5c6c165b24
--- /dev/null
+++ b/pkgs/development/python-modules/oletools/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, buildPythonPackage
+, colorclass
+, easygui
+, fetchFromGitHub
+, msoffcrypto-tool
+, olefile
+, pcodedmp
+, pyparsing
+, pytestCheckHook
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "oletools";
+  version = "0.60";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "decalage2";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-gatUVkf8iT1OGnahX1BzQLDypCqhS1EvkAgUHJ6myA4=";
+  };
+
+  propagatedBuildInputs = [
+    colorclass
+    easygui
+    msoffcrypto-tool
+    olefile
+    pcodedmp
+    pyparsing
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Test fails with AssertionError: Tuples differ: ('MS Word 2007+...
+    "test_all"
+  ];
+
+  pythonImportsCheck = [
+    "oletools"
+  ];
+
+  meta = with lib; {
+    description = "Python tool to analyze MS OLE2 files and MS Office documents";
+    homepage = "https://github.com/decalage2/oletools";
+    license = with licenses; [ bsd2 /* and */ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/omnikinverter/default.nix b/pkgs/development/python-modules/omnikinverter/default.nix
new file mode 100644
index 0000000000000..6f347d9672a0c
--- /dev/null
+++ b/pkgs/development/python-modules/omnikinverter/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, aiohttp
+, aresponses
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "omnikinverter";
+  version = "0.6.2";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "klaasnicolaas";
+    repo = "python-omnikinverter";
+    rev = "v${version}";
+    sha256 = "sha256-NnwjiaFUi2vzORu8sndtfdVpZEAIMCvT+9VEr2ZOx3k=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    yarl
+  ];
+
+  checkInputs = [
+    aresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    # Upstream doesn't set a version for the pyproject.toml
+    substituteInPlace pyproject.toml \
+      --replace "0.0.0" "${version}" \
+      --replace "--cov" ""
+  '';
+
+  pythonImportsCheck = [
+    "omnikinverter"
+  ];
+
+  meta = with lib; {
+    description = "Python module for the Omnik Inverter";
+    homepage = "https://github.com/klaasnicolaas/python-omnikinverter";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/open-meteo/default.nix b/pkgs/development/python-modules/open-meteo/default.nix
new file mode 100644
index 0000000000000..520af3062eac6
--- /dev/null
+++ b/pkgs/development/python-modules/open-meteo/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, aiohttp
+, aresponses
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pydantic
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "open-meteo";
+  version = "0.2.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "frenck";
+    repo = "python-open-meteo";
+    rev = "v${version}";
+    sha256 = "0i8jmhd29vvkpfxs9l5wy8525ngs79mnc7si2j9b1nc41xrv91f6";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    aresponses
+    pydantic
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    # Upstream doesn't set a version for the pyproject.toml
+    substituteInPlace pyproject.toml \
+      --replace "0.0.0" "${version}" \
+      --replace "--cov" "" \
+      --replace 'aiohttp = "^3.8.1"' 'aiohttp = "^3.8.0"'
+  '';
+
+  pythonImportsCheck = [
+    "open_meteo"
+  ];
+
+  meta = with lib; {
+    description = "Python client for the Open-Meteo API";
+    homepage = "https://github.com/frenck/python-open-meteo";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/openai/default.nix b/pkgs/development/python-modules/openai/default.nix
new file mode 100644
index 0000000000000..542112126b10d
--- /dev/null
+++ b/pkgs/development/python-modules/openai/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+
+# Python dependencies
+, openpyxl
+, pandas
+, pandas-stubs
+, requests
+, tqdm
+
+# Check dependencies
+, pytest-mock
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "openai";
+  version = "0.11.5";
+
+  disabled = pythonOlder "3.7.1";
+
+  # Use GitHub source since PyPi source does not include tests
+  src = fetchFromGitHub {
+    owner = "openai";
+    repo = "openai-python";
+    rev = "v${version}";
+    sha256 = "sha256-6eL3/vDWyIOVjRQo4OO3OgyUG3t8dKPtxzMMTxPCglM=";
+  };
+
+  propagatedBuildInputs = [
+    openpyxl
+    pandas
+    pandas-stubs
+    requests
+    tqdm
+  ];
+
+  pythonImportsCheck = [ "openai" ];
+  checkInputs = [ pytestCheckHook pytest-mock ];
+  pytestFlagsArray = [ "openai/tests" ];
+  OPENAI_API_KEY = "sk-foo";
+  disabledTestPaths = [
+    "openai/tests/test_endpoints.py" # requires a real API key
+    "openai/tests/test_file_cli.py"
+  ];
+
+  meta = with lib; {
+    description = "Python client library for the OpenAI API";
+    homepage = "https://github.com/openai/openai-python";
+    license = licenses.mit;
+    maintainers = [ maintainers.malo ];
+  };
+}
diff --git a/pkgs/development/python-modules/opensensemap-api/default.nix b/pkgs/development/python-modules/opensensemap-api/default.nix
index 8311cb6c57e17..56edc136c44f3 100644
--- a/pkgs/development/python-modules/opensensemap-api/default.nix
+++ b/pkgs/development/python-modules/opensensemap-api/default.nix
@@ -1,17 +1,21 @@
 { lib
-, buildPythonPackage
-, fetchPypi
 , aiohttp
 , async-timeout
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "opensensemap-api";
-  version = "0.1.6";
+  version = "0.2.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-e60aVIoKFqo++WJHUYGutugkjB8YgyNQgJbILgAyOOY=";
+    sha256 = "sha256-KSukSPpSbfbEEqTq4zqqo8OT7ptdPrGy2QyQYjErQWI=";
   };
 
   propagatedBuildInputs = [
@@ -22,7 +26,9 @@ buildPythonPackage rec {
   # no tests are present
   doCheck = false;
 
-  pythonImportsCheck = [ "opensensemap_api" ];
+  pythonImportsCheck = [
+    "opensensemap_api"
+  ];
 
   meta = with lib; {
     description = "OpenSenseMap API Python client";
diff --git a/pkgs/development/python-modules/openstacksdk/default.nix b/pkgs/development/python-modules/openstacksdk/default.nix
index db2043a6f9292..9bb807784ca7c 100644
--- a/pkgs/development/python-modules/openstacksdk/default.nix
+++ b/pkgs/development/python-modules/openstacksdk/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname = "openstacksdk";
-  version = "0.59.0";
+  version = "0.60.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-PfdgzScjmKv6yM6+Yu64LLxJe7JdTdcHV290qM6avw0=";
+    sha256 = "aa6efead2ac116482f29aecc2c14ba3b4c76a6f8dede93bf296a2b65492ef420";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/optuna/default.nix b/pkgs/development/python-modules/optuna/default.nix
index b7247083be43c..6dde9ededb50f 100644
--- a/pkgs/development/python-modules/optuna/default.nix
+++ b/pkgs/development/python-modules/optuna/default.nix
@@ -9,7 +9,7 @@
 , xgboost
 , mpi4py
 , lightgbm
-, Keras
+, keras
 , mxnet
 , scikit-optimize
 , tensorflow
@@ -49,7 +49,7 @@ buildPythonPackage rec {
     xgboost
     mpi4py
     lightgbm
-    Keras
+    keras
     mxnet
     scikit-optimize
     tensorflow
diff --git a/pkgs/development/python-modules/oslo-concurrency/default.nix b/pkgs/development/python-modules/oslo-concurrency/default.nix
index d3d90bfb22353..71c9bf4260db8 100644
--- a/pkgs/development/python-modules/oslo-concurrency/default.nix
+++ b/pkgs/development/python-modules/oslo-concurrency/default.nix
@@ -17,12 +17,12 @@
 
 buildPythonPackage rec {
   pname = "oslo-concurrency";
-  version = "4.4.1";
+  version = "4.5.0";
 
   src = fetchPypi {
     pname = "oslo.concurrency";
     inherit version;
-    sha256 = "6449cfbd15dbab20cf9907bbb2f057e0e5267f97161223d2b516cc8226b17ec3";
+    sha256 = "1h76pq9p1bpwcs6jl9m2w4280wcp2w3is88qlaqknqkd3pdaixwr";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/oslo-db/default.nix b/pkgs/development/python-modules/oslo-db/default.nix
index f0f2e1f0ee723..5070b43515e87 100644
--- a/pkgs/development/python-modules/oslo-db/default.nix
+++ b/pkgs/development/python-modules/oslo-db/default.nix
@@ -16,12 +16,12 @@
 
 buildPythonPackage rec {
   pname = "oslo-db";
-  version = "11.0.0";
+  version = "11.1.0";
 
   src = fetchPypi {
     pname = "oslo.db";
     inherit version;
-    sha256 = "0cd5679868c0a0d194c916cc855348890820c3183b34a039af1e8698dac7afbf";
+    sha256 = "8469c54544f1c0d7ac0a998477033eab13733b186d159554311c6132b43862e9";
   };
 
   nativeBuildInputs = [ pbr ];
diff --git a/pkgs/development/python-modules/oslo-log/default.nix b/pkgs/development/python-modules/oslo-log/default.nix
index 1e4598ead6534..dd2d69a0c23d4 100644
--- a/pkgs/development/python-modules/oslo-log/default.nix
+++ b/pkgs/development/python-modules/oslo-log/default.nix
@@ -15,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "oslo-log";
-  version = "4.6.0";
+  version = "4.6.1";
 
   src = fetchPypi {
     pname = "oslo.log";
     inherit version;
-    sha256 = "dad5d7ff1290f01132b356d36a1bb79f98a3929d5005cce73e849ed31b385ba7";
+    sha256 = "0dlnxjci9mpwhgfv19fy1z7xrdp8m95skrj5dr60all3pr7n22f6";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/oslo-utils/default.nix b/pkgs/development/python-modules/oslo-utils/default.nix
index 3707a196d03e0..4f1a4d9df2d44 100644
--- a/pkgs/development/python-modules/oslo-utils/default.nix
+++ b/pkgs/development/python-modules/oslo-utils/default.nix
@@ -23,12 +23,12 @@
 
 buildPythonPackage rec {
   pname = "oslo-utils";
-  version = "4.10.0";
+  version = "4.11.0";
 
   src = fetchPypi {
     pname = "oslo.utils";
     inherit version;
-    sha256 = "9646e6570ed08a79f21b03acfb60d32a3ac453d76304f8759b1211a59ce372cb";
+    sha256 = "1wl3r4jayzjgzf36iwn05xcjfh227s97qymjxji9hz4ibhy3v83f";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/osmpythontools/default.nix b/pkgs/development/python-modules/osmpythontools/default.nix
index 3821ecb132afd..23755583470aa 100644
--- a/pkgs/development/python-modules/osmpythontools/default.nix
+++ b/pkgs/development/python-modules/osmpythontools/default.nix
@@ -13,19 +13,15 @@
 
 buildPythonPackage rec {
   pname = "osmpythontools";
-  version = "0.3.2";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = "mocnik-science";
     repo = "osm-python-tools";
-    rev = "v${version}";
-    sha256 = "1m5ai9h1zbp79x0vb138fmyh2hg8lqp859s7j33lra9hds6wb40a";
+    rev = "v.${version}";
+    sha256 = "sha256-335zo/kOX4OpUwHas2aaPibY6zNmDaaHJpolbTQWqKk=";
   };
 
-  # Upstream setup.py has test dependencies in `install_requires` argument.
-  # Remove them, as we don't run the tests.
-  patches = [ ./remove-test-only-dependencies.patch ];
-
   propagatedBuildInputs = [
     beautifulsoup4
     geojson
diff --git a/pkgs/development/python-modules/osmpythontools/remove-test-only-dependencies.patch b/pkgs/development/python-modules/osmpythontools/remove-test-only-dependencies.patch
deleted file mode 100644
index c12a96622ebdd..0000000000000
--- a/pkgs/development/python-modules/osmpythontools/remove-test-only-dependencies.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 801d081..6d93128 100644
---- a/setup.py
-+++ b/setup.py
-@@ -19,8 +19,6 @@ setup(
-         'matplotlib',
-         'numpy',
-         'pandas',
--        'pytest',
--        'pytest-sugar',
-         'ujson',
-         'xarray',
-     ],
diff --git a/pkgs/development/python-modules/packbits/default.nix b/pkgs/development/python-modules/packbits/default.nix
new file mode 100644
index 0000000000000..561903e8f5fdb
--- /dev/null
+++ b/pkgs/development/python-modules/packbits/default.nix
@@ -0,0 +1,26 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pyparsing
+, six
+, pytest
+, pretend
+, lib
+}:
+
+buildPythonPackage rec {
+  pname = "packbits";
+  version = "0.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "bc6b370bb34e04ac8cfa835e06c0484380affc6d593adb8009dd6c0f7bfff034";
+  };
+
+  meta = with lib; {
+    description = "PackBits encoder/decoder for Python";
+    homepage = "https://github.com/psd-tools/packbits";
+    license = [ licenses.mit ];
+    maintainers = with maintainers; [ grahamc ];
+  };
+}
diff --git a/pkgs/development/python-modules/packet-python/default.nix b/pkgs/development/python-modules/packet-python/default.nix
index 6c7935c39b9a5..b63baa80b3977 100644
--- a/pkgs/development/python-modules/packet-python/default.nix
+++ b/pkgs/development/python-modules/packet-python/default.nix
@@ -12,10 +12,10 @@
 
 buildPythonPackage rec {
   pname = "packet-python";
-  version = "1.44.1";
+  version = "1.44.2";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ec0f40465fad5260a1b2c1ad39dc12c5df65828e171bf2aafb13c1c3883628ba";
+    sha256 = "4ce0827bc41d5bf5558284c18048344343f7c4c6e280b64bbe53fb51ab454892";
   };
   nativeBuildInputs = [ pytest-runner ];
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/pandas-stubs/default.nix b/pkgs/development/python-modules/pandas-stubs/default.nix
new file mode 100644
index 0000000000000..c568476977690
--- /dev/null
+++ b/pkgs/development/python-modules/pandas-stubs/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, isPy27
+, fetchFromGitHub
+, typing-extensions
+, mypy
+}:
+
+buildPythonPackage rec {
+  pname = "pandas-stubs";
+  version = "1.2.0.39";
+
+  disabled = isPy27;
+
+  # Use GitHub source since PyPi source does not include tests
+  src = fetchFromGitHub {
+    owner = "VirtusLab";
+    repo = pname;
+    rev = "2bd932777d1050ea8f86c527266a4cd205aa15b1";
+    sha256 = "m2McU53NNvRwnWKN9GL8dW1eCGKbTi0471szRQwZu1Q=";
+  };
+
+  propagatedBuildInputs = [
+    typing-extensions
+  ];
+
+  pythonImportsCheck = [ "pandas" ];
+  checkInputs = [ mypy ];
+  checkPhase = ''
+    mypy --config-file mypy.ini third_party/3/pandas tests/snippets
+  '';
+
+  meta = with lib; {
+    description = "Type annotations for Pandas";
+    homepage = "https://github.com/VirtusLab/pandas-stubs";
+    license = licenses.mit;
+    maintainers = [ maintainers.malo ];
+  };
+}
diff --git a/pkgs/development/python-modules/pandas/default.nix b/pkgs/development/python-modules/pandas/default.nix
index 6c2580877749d..880a5afdce63c 100644
--- a/pkgs/development/python-modules/pandas/default.nix
+++ b/pkgs/development/python-modules/pandas/default.nix
@@ -3,15 +3,9 @@
 , buildPythonPackage
 , fetchPypi
 , python
-, beautifulsoup4
-, bottleneck
 , cython
+, numpy
 , python-dateutil
-, html5lib
-, jinja2
-, lxml
-, numexpr
-, openpyxl
 , pytz
 , scipy
 , sqlalchemy
@@ -21,6 +15,7 @@
 # Test inputs
 , glibcLocales
 , hypothesis
+, jinja2
 , pytestCheckHook
 , pytest-xdist
 , pytest-asyncio
@@ -32,11 +27,12 @@
 
 buildPythonPackage rec {
   pname = "pandas";
-  version = "1.3.3";
+  version = "1.3.4";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "272c8cb14aa9793eada6b1ebe81994616e647b5892a370c7135efb2924b701df";
+    sha256 = "a2aa18d3f0b7d538e21932f637fbfe8518d085238b429e4790a35e1e44a96ffc";
   };
 
   nativeBuildInputs = [ cython ];
@@ -44,19 +40,9 @@ buildPythonPackage rec {
   buildInputs = lib.optional stdenv.isDarwin libcxx;
 
   propagatedBuildInputs = [
-    beautifulsoup4
-    bottleneck
+    numpy
     python-dateutil
-    html5lib
-    numexpr
-    lxml
-    openpyxl
     pytz
-    scipy
-    sqlalchemy
-    tables
-    xlrd
-    xlwt
   ];
 
   checkInputs = [
@@ -83,7 +69,7 @@ buildPythonPackage rec {
                 "['pandas/src/klib', 'pandas/src', '$cpp_sdk']"
   '';
 
-  doCheck = !stdenv.isAarch64; # upstream doesn't test this architecture
+  doCheck = !stdenv.isAarch32 && !stdenv.isAarch64; # upstream doesn't test this architecture
 
   pytestFlagsArray = [
     "--skip-slow"
@@ -106,6 +92,8 @@ buildPythonPackage rec {
     "test_from_coo"
     # AssertionError: No common DType exists for the given inputs
     "test_comparison_invalid"
+    # AssertionError: Regex pattern '"quotechar" must be string, not int'
+    "python-kwargs2"
   ] ++ lib.optionals stdenv.isDarwin [
     "test_locale"
     "test_clipboard"
diff --git a/pkgs/development/python-modules/panel/default.nix b/pkgs/development/python-modules/panel/default.nix
index 3f6875f4986fd..8673c637eda63 100644
--- a/pkgs/development/python-modules/panel/default.nix
+++ b/pkgs/development/python-modules/panel/default.nix
@@ -17,7 +17,7 @@ let
 in
 buildPythonPackage rec {
   pname = "panel";
-  version = "0.12.1";
+  version = "0.12.6";
 
   # Don't forget to also update the node packages
   # 1. retrieve the package.json file
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   # 3. node2nix
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e4898d60abdb82f8a429df7f59dbf8bcaf7e19b3e633555512ceb4ce06678458";
+    sha256 = "97e158e8eb941f88d71929407f9455c903b5e18d89969db8ce8af66036f46b53";
   };
 
   # Since 0.10.0 panel attempts to fetch from the web.
diff --git a/pkgs/development/python-modules/papis-python-rofi/default.nix b/pkgs/development/python-modules/papis-python-rofi/default.nix
index 8750b96f5c90f..3d3ce9a002b68 100644
--- a/pkgs/development/python-modules/papis-python-rofi/default.nix
+++ b/pkgs/development/python-modules/papis-python-rofi/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "papis-python-rofi";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13k6mw2nq923zazs77hpmh2s96v6zv13g7p89510qqkvp6fiml1v";
+    sha256 = "358e24f5fb0a86de6f15d5168753ad4cbb97e52b36b1bd7abbad4053aeb6f621";
   };
 
   # No tests existing
diff --git a/pkgs/development/python-modules/paramiko/default.nix b/pkgs/development/python-modules/paramiko/default.nix
index 88d63f0de93f5..86cdb73b2607d 100644
--- a/pkgs/development/python-modules/paramiko/default.nix
+++ b/pkgs/development/python-modules/paramiko/default.nix
@@ -13,15 +13,18 @@
 
 buildPythonPackage rec {
   pname = "paramiko";
-  version = "2.7.2";
+  version = "2.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7f36f4ba2c0d81d219f4595e35f70d56cc94f9ac40a6acdf51d6ca210ce65035";
+    sha256 = "e673b10ee0f1c80d46182d3af7751d033d9b573dd7054d2d0aa46be186c3c1d2";
   };
 
   propagatedBuildInputs = [ bcrypt cryptography pynacl pyasn1 ];
 
+  # with python 3.9.6+, the deprecation warnings will fail the test suite
+  # see: https://github.com/pyinvoke/invoke/issues/829
+  doCheck = false;
   checkInputs = [ invoke pytestCheckHook pytest-relaxed mock ];
 
   disabledTestPaths = [
diff --git a/pkgs/development/python-modules/parsy/default.nix b/pkgs/development/python-modules/parsy/default.nix
index ab4aeba84b695..53743052f4e44 100644
--- a/pkgs/development/python-modules/parsy/default.nix
+++ b/pkgs/development/python-modules/parsy/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "parsy";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bfc941ea5a69e6ac16bd4f7d9f807bbc17e35edd8b95bcd2499a25b059359012";
+    sha256 = "7c411373e520e97431f0b390db9d2cfc5089bc1d33f4f1584d2cdc9e6368f302";
   };
 
   checkInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/parts/default.nix b/pkgs/development/python-modules/parts/default.nix
index c615fe5a03071..4c798f43c25c6 100644
--- a/pkgs/development/python-modules/parts/default.nix
+++ b/pkgs/development/python-modules/parts/default.nix
@@ -5,16 +5,20 @@
 
 buildPythonPackage rec {
   pname = "parts";
-  version = "1.1.2";
+  version = "1.2.2";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2212129476f6d285c3aaab309b80b83664d13dca5a42c5ca3500bd32130af7ec";
+    sha256 = "6463d5c49142d14029196a6a781b57bc98ba5b3d93244f4ed637f534d08129c1";
   };
 
   # Project has no tests
   doCheck = false;
-  pythonImportsCheck = [ "parts" ];
+
+  pythonImportsCheck = [
+    "parts"
+  ];
 
   meta = with lib; {
     description = "Python library for common list functions related to partitioning lists";
diff --git a/pkgs/development/python-modules/paste/default.nix b/pkgs/development/python-modules/paste/default.nix
index 53208a35839de..9186cef3efc64 100644
--- a/pkgs/development/python-modules/paste/default.nix
+++ b/pkgs/development/python-modules/paste/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pytestCheckHook
+, six
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,7 @@ buildPythonPackage rec {
     patchShebangs tests/cgiapp_data/
   '';
 
-  # propagatedBuildInputs = [ six ];
+  propagatedBuildInputs = [ six ];
 
   checkInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/pastescript/default.nix b/pkgs/development/python-modules/pastescript/default.nix
index bc15e5e9f2a63..244b51f3f844e 100644
--- a/pkgs/development/python-modules/pastescript/default.nix
+++ b/pkgs/development/python-modules/pastescript/default.nix
@@ -2,6 +2,8 @@
 , buildPythonPackage
 , fetchPypi
 , nose
+, python
+, pytestCheckHook
 , six
 , paste
 , pastedeploy
@@ -23,10 +25,22 @@ buildPythonPackage rec {
     six
   ];
 
-  checkInputs = [ nose ];
+  # test suite seems to unset PYTHONPATH
+  doCheck = false;
+  checkInputs = [ nose pytestCheckHook ];
 
   pythonNamespaces = [ "paste" ];
 
+  disabledTestPaths = [
+    "appsetup/testfiles"
+  ];
+
+  pythonImportsCheck = [
+    "paste.script"
+    "paste.deploy"
+    "paste.util"
+  ];
+
   meta = with lib; {
     description = "A pluggable command-line frontend, including commands to setup package file layouts";
     homepage = "https://github.com/cdent/pastescript/";
diff --git a/pkgs/development/python-modules/pbr/default.nix b/pkgs/development/python-modules/pbr/default.nix
index 77e8d5c210a2c..8775faa53c24f 100644
--- a/pkgs/development/python-modules/pbr/default.nix
+++ b/pkgs/development/python-modules/pbr/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pbr";
-  version = "5.6.0";
+  version = "5.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "42df03e7797b796625b1029c0400279c7c34fd7df24a7d7818a1abb5b38710dd";
+    sha256 = "672d8ebee84921862110f23fcec2acea191ef58543d34dfe9ef3d9f13c31cddf";
   };
 
   propagatedBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/pc-ble-driver-py/default.nix b/pkgs/development/python-modules/pc-ble-driver-py/default.nix
index 202e6fdaf6a82..093e3e67ab234 100644
--- a/pkgs/development/python-modules/pc-ble-driver-py/default.nix
+++ b/pkgs/development/python-modules/pc-ble-driver-py/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "pc-ble-driver-py";
-  version = "0.16.1";
+  version = "0.16.2";
 
   disabled = pythonOlder "3.7" || pythonAtLeast "3.10";
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "NordicSemiconductor";
     repo = "pc-ble-driver-py";
     rev = "v${version}";
-    sha256 = "0q2zag77drcjkjm0cbvy2sf6fq2a4yl5li1zv1xfwmy53ami9b5l";
+    sha256 = "013kpj2df5grkrzxak22k01mskpmwf7g3aa1fmxdwi90bb1sabs5";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pcodedmp/default.nix b/pkgs/development/python-modules/pcodedmp/default.nix
new file mode 100644
index 0000000000000..84f230f5852f6
--- /dev/null
+++ b/pkgs/development/python-modules/pcodedmp/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pcodedmp";
+  version = "1.2.6";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "bontchev";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-SYOFGMvrzxDPMACaCvqwU28Mh9LEuvFBGvAph4X+geo=";
+  };
+
+  postPatch = ''
+    # Circular dependency
+    substituteInPlace setup.py \
+      --replace "'oletools>=0.54'," ""
+  '';
+
+  # Module doesn't have tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pcodedmp"
+  ];
+
+  meta = with lib; {
+    description = "Python VBA p-code disassembler";
+    homepage = "https://github.com/bontchev/pcodedmp";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pdftotext/default.nix b/pkgs/development/python-modules/pdftotext/default.nix
index 2ba18dd92e4e9..4e1ea3622e8ca 100644
--- a/pkgs/development/python-modules/pdftotext/default.nix
+++ b/pkgs/development/python-modules/pdftotext/default.nix
@@ -1,19 +1,14 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, poppler }:
+{ lib, buildPythonPackage, fetchPypi, poppler }:
 
 buildPythonPackage rec {
   pname = "pdftotext";
-  version = "2.2.1";
+  version = "2.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a067c121654917ecbe07fbd71c807c34bbdb1ea029e269ddd11925ee7e191d3f";
+    sha256 = "2a9aa89bc62022408781b39d188fabf5a3ad1103b6630f32c4e27e395f7966ee";
   };
 
-  postPatch = lib.optionalString stdenv.isDarwin ''
-    substituteInPlace setup.py \
-        --replace '= brew_poppler_include()' '= "${lib.getDev poppler}/include", "${lib.getLib poppler}/lib"'
-  '';
-
   buildInputs = [ poppler ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pebble/default.nix b/pkgs/development/python-modules/pebble/default.nix
index 68aa1ba970753..daf4a0458670c 100644
--- a/pkgs/development/python-modules/pebble/default.nix
+++ b/pkgs/development/python-modules/pebble/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, isPy27, fetchPypi, pytestCheckHook }:
+{ lib, stdenv, buildPythonPackage, isPy27, fetchPypi, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "pebble";
@@ -11,6 +11,8 @@ buildPythonPackage rec {
     sha256 = "0a595f7mrf89xlck9b2x83bqybc9zd9jxkl0sa5cf19vax18rg8h";
   };
 
+  doCheck = !stdenv.isDarwin;
+
   checkInputs = [
     pytestCheckHook
   ];
diff --git a/pkgs/development/python-modules/pep440/default.nix b/pkgs/development/python-modules/pep440/default.nix
new file mode 100644
index 0000000000000..83187327af170
--- /dev/null
+++ b/pkgs/development/python-modules/pep440/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pep440";
+  version = "0.1.0";
+  format = "setuptools";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "m1H/yqqDiFrj6tmD9jo8nDakCBZxkBPq/HtSOXMH4ZQ=";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "pep440"
+  ];
+
+  meta = with lib; {
+    description = "Python module to check whether versions number match PEP 440";
+    homepage = "https://github.com/Carreau/pep440";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pep8-naming/default.nix b/pkgs/development/python-modules/pep8-naming/default.nix
index 9bfdbe89aab6e..ee8535d089aae 100644
--- a/pkgs/development/python-modules/pep8-naming/default.nix
+++ b/pkgs/development/python-modules/pep8-naming/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchPypi
+, fetchpatch
 , buildPythonPackage
 , flake8
 , flake8-polyfill
@@ -20,6 +21,15 @@ buildPythonPackage rec {
     flake8-polyfill
   ];
 
+  patches = [
+    # Add missing option to get passing tests, https://github.com/PyCQA/pep8-naming/pull/181
+    (fetchpatch {
+      name = "add-missing-option.patch";
+      url = "https://github.com/PyCQA/pep8-naming/commit/03b8f36f6a8bb8bc79dfa5a71ad9be2a0bf8bbf5.patch";
+      sha256 = "1YTh84Yoj0MqFZoifM362563r1GuzaF+mMmdT/ckC7I=";
+    })
+  ];
+
   checkPhase = ''
     runHook preCheck
     ${python.interpreter} run_tests.py
diff --git a/pkgs/development/python-modules/pescea/default.nix b/pkgs/development/python-modules/pescea/default.nix
new file mode 100644
index 0000000000000..c4a6feb6896c1
--- /dev/null
+++ b/pkgs/development/python-modules/pescea/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, async-timeout
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-asyncio
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pescea";
+  version = "1.0.10";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "lazdavila";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "Q38mLGjrRdXEvT+PCNsil1e2p0mmM0Xy8TUx9QOnFRA=";
+  };
+
+  propagatedBuildInputs = [
+    async-timeout
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    # https://github.com/lazdavila/pescea/pull/1
+    substituteInPlace setup.py \
+      --replace '"asyncio",' ""
+  '';
+
+  disabledTests = [
+    # AssertionError: assert <State.BUSY: 'BusyWaiting'>...
+    "test_updates_while_busy"
+    # Test requires network access
+    "test_flow_control"
+  ];
+
+  pythonImportsCheck = [
+    "pescea"
+  ];
+
+  meta = with lib; {
+    description = "Python interface to Escea fireplaces";
+    homepage = "https://github.com/lazdavila/pescea";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pex/default.nix b/pkgs/development/python-modules/pex/default.nix
index 8a95acc211d21..438360260822b 100644
--- a/pkgs/development/python-modules/pex/default.nix
+++ b/pkgs/development/python-modules/pex/default.nix
@@ -1,21 +1,21 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, setuptools
+, flit-core
 }:
 
 buildPythonPackage rec {
   pname = "pex";
-  version = "2.1.55";
-  format = "setuptools";
+  version = "2.1.56";
+  format = "flit";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1f6b60b9c50996ec3476e36dddff34afa98dc2d68fa73ed121d3c41232df1379";
+    sha256 = "8dfb7ef551cc9d3d03a6e2dc1b1ba6183cd94f3cde7431836f017d60cc992d53";
   };
 
   nativeBuildInputs = [
-    setuptools
+    flit-core
   ];
 
   # A few more dependencies I don't want to handle right now...
diff --git a/pkgs/development/python-modules/pglast/default.nix b/pkgs/development/python-modules/pglast/default.nix
index c3b34b1fc1998..673b3c8ffe8d2 100644
--- a/pkgs/development/python-modules/pglast/default.nix
+++ b/pkgs/development/python-modules/pglast/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pglast";
-  version = "3.7";
+  version = "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3f0f36cebdb68d5b3aaacb11cbf09db44250194845fbf3b49b0aef93c30991bf";
+    sha256 = "31ad29b6a27048b1a26c072992fc5213d2eaf366854679e6c97111e300e0ef01";
   };
 
   disabled = !isPy3k;
diff --git a/pkgs/development/python-modules/phonenumbers/default.nix b/pkgs/development/python-modules/phonenumbers/default.nix
index e3fc2424bcd8b..5a8cb430ae6f9 100644
--- a/pkgs/development/python-modules/phonenumbers/default.nix
+++ b/pkgs/development/python-modules/phonenumbers/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "phonenumbers";
-  version = "8.12.37";
+  version = "8.12.40";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-28VgmShEoFn1bHwMalh5BOZdlWdAu/t+OViZgLyQVbg=";
+    sha256 = "00f2955a456b458f9b6ab0d24329049c3e7358c44dfc1979fe4908ced40f1eb8";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/pikepdf/default.nix b/pkgs/development/python-modules/pikepdf/default.nix
index 9f04e68a378f6..6f0f733c47235 100644
--- a/pkgs/development/python-modules/pikepdf/default.nix
+++ b/pkgs/development/python-modules/pikepdf/default.nix
@@ -8,6 +8,7 @@
 , jbig2dec
 , lxml
 , mupdf
+, packaging
 , pillow
 , psutil
 , pybind11
@@ -24,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "pikepdf";
-  version = "4.0.1.post1";
+  version = "4.3.0";
   disabled = ! isPy3k;
 
   src = fetchFromGitHub {
@@ -37,7 +38,7 @@ buildPythonPackage rec {
     extraPostFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    sha256 = "sha256-s7eS7jYGohYt75/r++4v9K6BRfiQ3drdG5wbIL3WoiU=";
+    hash = "sha256-9dSJ6+rZd49rFSQExYnFBGQGZ8MnFM+z/0Iz/nYkW4E=";
   };
 
   patches = [
@@ -73,6 +74,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     defusedxml
     lxml
+    packaging
     pillow
     setuptools
   ];
diff --git a/pkgs/development/python-modules/pillow/default.nix b/pkgs/development/python-modules/pillow/default.nix
index c6bb944c232b6..e0f29d366e106 100644
--- a/pkgs/development/python-modules/pillow/default.nix
+++ b/pkgs/development/python-modules/pillow/default.nix
@@ -5,13 +5,13 @@
 
 import ./generic.nix (rec {
   pname = "Pillow";
-  version = "8.3.2";
+  version = "8.4.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1361y215ydmdh4il1vay5831aqivmpwgzjqrphqjdiq0ipnz7qyx";
+    sha256 = "b8e2f83c56e141920c39464b852de3719dfbfb6e3c99a2d8da0edf4fb33176ed";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pint/default.nix b/pkgs/development/python-modules/pint/default.nix
index f39caef6e59d8..c5a9148f0e54e 100644
--- a/pkgs/development/python-modules/pint/default.nix
+++ b/pkgs/development/python-modules/pint/default.nix
@@ -7,6 +7,7 @@
 , packaging
 # Check Inputs
 , pytestCheckHook
+, pytest-subtests
 , numpy
 , matplotlib
 , uncertainties
@@ -14,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "pint";
-  version = "0.14";
+  version = "0.18";
 
   src = fetchPypi {
     inherit version;
     pname = "Pint";
-    sha256 = "0wkzb7g20wzpqr3xaqpq96dlfv6irw202icsz81ys8npp7mm194s";
+    sha256 = "sha256-jEvOiEwmkFH+t6vGnb/RhAPAx2SryD2hMuinIi+LqAE=";
   };
 
   disabled = pythonOlder "3.6";
@@ -32,6 +33,7 @@ buildPythonPackage rec {
   # Test suite explicitly requires pytest
   checkInputs = [
     pytestCheckHook
+    pytest-subtests
     numpy
     matplotlib
     uncertainties
@@ -42,7 +44,7 @@ buildPythonPackage rec {
     description = "Physical quantities module";
     license = licenses.bsd3;
     homepage = "https://github.com/hgrecco/pint/";
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc doronbehar ];
   };
 
 }
diff --git a/pkgs/development/python-modules/pip-tools/default.nix b/pkgs/development/python-modules/pip-tools/default.nix
index 62bab6694d790..9d54eef4d706f 100644
--- a/pkgs/development/python-modules/pip-tools/default.nix
+++ b/pkgs/development/python-modules/pip-tools/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "pip-tools";
-  version = "6.3.1";
+  version = "6.4.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "992d968df6f1a19d4d37c53b68b3d4b601b894fb3ee0926d1fa762ebc7c7e9e9";
+    sha256 = "65553a15b1ba34be5e43889345062e38fb9b219ffa23b084ca0d4c4039b6f53b";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/pipx/default.nix b/pkgs/development/python-modules/pipx/default.nix
index 86091820a1dc1..2f80806c431a4 100644
--- a/pkgs/development/python-modules/pipx/default.nix
+++ b/pkgs/development/python-modules/pipx/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pipx";
-  version = "0.16.5";
+  version = "0.17.0";
 
   disabled = pythonOlder "3.6";
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "pipxproject";
     repo = pname;
     rev = version;
-    sha256 = "sha256-gBeaHEig47XWKoPx3jzvgk/jJPJXtr5R5qUL0LgvbDg=";
+    sha256 = "sha256-vR/tKV+ZB0nZaxEcB83dwoSI7kBC1rA+6fo30rizroM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pkginfo/default.nix b/pkgs/development/python-modules/pkginfo/default.nix
index 87f11d9123459..21659f638a749 100644
--- a/pkgs/development/python-modules/pkginfo/default.nix
+++ b/pkgs/development/python-modules/pkginfo/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "pkginfo";
-  version = "1.8.1";
+  version = "1.8.2";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ZRdf+iyAciBnOkHDcVc6yaHqGxn/1e75FiePQoMZk08=";
+    sha256 = "sha256-VC4NC2dQ4uIcIBeYA+QKtQWY2AZtUQl6Djgsup6wK/8=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/pkutils/default.nix b/pkgs/development/python-modules/pkutils/default.nix
index c383f5ff86c49..48afe57ef34a7 100644
--- a/pkgs/development/python-modules/pkutils/default.nix
+++ b/pkgs/development/python-modules/pkutils/default.nix
@@ -1,35 +1,48 @@
 { lib
 , buildPythonPackage
-, isPy3k
 , fetchFromGitHub
-, semver
-  # Check Inputs
 , nose
+, pythonOlder
+, semver
 }:
 
 buildPythonPackage rec {
   pname = "pkutils";
-  version = "1.1.1";
-  disabled = !isPy3k; # some tests using semver fail due to unicode errors on Py2.7
+  version = "2.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "reubano";
     repo = "pkutils";
     rev = "v${version}";
-    sha256 = "01yaq9sz6vyxk8yiss6hsmy70qj642cr2ifk0sx1mlh488flcm62";
+    sha256 = "sha256-jvRUjuxlcfmJOX50bnZR/pP2Axe1KDy9/KGXTL4yPxA=";
   };
 
-  propagatedBuildInputs = [ semver ];
+  propagatedBuildInputs = [
+    semver
+  ];
+
+  checkInputs = [
+    nose
+  ];
 
-  # Remove when https://github.com/reubano/pkutils/pull/4 merged
   postPatch = ''
-    substituteInPlace requirements.txt --replace "semver>=2.2.1,<2.7.3" "semver"
+    # Remove when https://github.com/reubano/pkutils/pull/4 merged
+    substituteInPlace requirements.txt \
+      --replace "semver>=2.2.1,<2.7.3" "semver"
   '';
 
-  checkInputs = [ nose ];
-  pythonImportsCheck = [ "pkutils" ];
+  checkPhase = ''
+    runHook preCheck
+    nosetests
+    runHook postCheck
+  '';
 
-  checkPhase = "nosetests";
+  pythonImportsCheck = [
+    "pkutils"
+  ];
 
   meta = with lib; {
     description = "A Python packaging utility library";
diff --git a/pkgs/development/python-modules/plac/default.nix b/pkgs/development/python-modules/plac/default.nix
index 2bd50d87dc0ba..3d2094263b6fa 100644
--- a/pkgs/development/python-modules/plac/default.nix
+++ b/pkgs/development/python-modules/plac/default.nix
@@ -5,11 +5,11 @@
 }:
 buildPythonPackage rec {
   pname = "plac";
-  version = "1.3.3";
+  version = "1.3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "51e332dabc2aed2cd1f038be637d557d116175101535f53eaa7ae854a00f2a74";
+    sha256 = "c91a4c9f9cc67c7e7213b6823b0ea15cd0afe5eaf8f8dda1fe5cb10192b137f5";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/plaid-python/default.nix b/pkgs/development/python-modules/plaid-python/default.nix
index 2f07117a460b7..31a62c1096469 100644
--- a/pkgs/development/python-modules/plaid-python/default.nix
+++ b/pkgs/development/python-modules/plaid-python/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "plaid-python";
-  version = "8.6.0";
+  version = "8.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "da3570fedbc096aa058affa72fc71905401b373a5b0d28b7c27e7af7998859d9";
+    sha256 = "8689b5c4d69e93026aea252314fb3133359fa70df5819ad6995c4e44a2f84858";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/platformdirs/2.nix b/pkgs/development/python-modules/platformdirs/2.nix
new file mode 100644
index 0000000000000..6fe2bcbde60a6
--- /dev/null
+++ b/pkgs/development/python-modules/platformdirs/2.nix
@@ -0,0 +1,43 @@
+{ lib
+, appdirs
+, buildPythonPackage
+, fetchFromGitHub
+, platformdirs
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "platformdirs";
+  version = "2.0.2";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-yCvfOPuX9hbQO9gbFHfeu+dGH+Vb9FM7wng1XU2D8hE=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  checkInputs = [
+    appdirs
+    pytest-mock
+    pytestCheckHook
+  ];
+
+ pythonImportsCheck = [ "platformdirs" ];
+
+  meta = with lib; {
+    description = "Python module for determining appropriate platform-specific directories";
+    homepage = "https://platformdirs.readthedocs.io/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/plotly/default.nix b/pkgs/development/python-modules/plotly/default.nix
index 5ef6c785fed0b..c4811044ae2b3 100644
--- a/pkgs/development/python-modules/plotly/default.nix
+++ b/pkgs/development/python-modules/plotly/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "plotly";
-  version = "5.3.1";
+  version = "5.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6598393e898a9c5ae78397f76f07002ec41fd92e5f746d3b9806248d53885643";
+    sha256 = "735d50738c760ecbf3a38e2336b8c1b119bff2d857096e4f68af31089b798161";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/plugwise/default.nix b/pkgs/development/python-modules/plugwise/default.nix
index ca8af15b53ee8..28a67f1da82e0 100644
--- a/pkgs/development/python-modules/plugwise/default.nix
+++ b/pkgs/development/python-modules/plugwise/default.nix
@@ -19,15 +19,21 @@
 
 buildPythonPackage rec {
   pname = "plugwise";
-  version = "0.14.5";
+  version = "0.15.3";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "python-plugwise";
     rev = "v${version}";
-    sha256 = "1kwks87raxs04dvnpmpn8l1cbzg5yb5nyinaqzxdsc6al83isbik";
+    sha256 = "sha256-HaH0LcH6L3R9vLT0vlM1absMTbfqgEeVi/aP2FqdnQY=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "aiohttp==3.8.0" "aiohttp>=3.8.0"
+  '';
+
   propagatedBuildInputs = [
     aiohttp
     async-timeout
diff --git a/pkgs/development/python-modules/plumbum/default.nix b/pkgs/development/python-modules/plumbum/default.nix
index 278caa44b143e..e571f276f28f8 100644
--- a/pkgs/development/python-modules/plumbum/default.nix
+++ b/pkgs/development/python-modules/plumbum/default.nix
@@ -5,7 +5,7 @@
 
 buildPythonPackage rec {
   pname = "plumbum";
-  version = "1.7.0";
+  version = "1.7.2";
 
   checkInputs = [ pytest ];
 
@@ -14,6 +14,6 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "317744342c755319907c773cc87c3a30adaa3a41b0d34c0ce02d9d1904922dce";
+    sha256 = "0d1bf908076bbd0484d16412479cb97d6843069ee19f99e267e11dd980040523";
   };
 }
diff --git a/pkgs/development/python-modules/plyvel/default.nix b/pkgs/development/python-modules/plyvel/default.nix
index aa247c8e4261c..d47805bb643f3 100644
--- a/pkgs/development/python-modules/plyvel/default.nix
+++ b/pkgs/development/python-modules/plyvel/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "plyvel";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a7a09033a0fd33ca47094e8bbe01714abfcf644f4b7a337d3970e91a2599e2c4";
+    sha256 = "4ea98bea04ebf0f44747bacdfafefc8827787106fbb787f0aedc46482b2dfd53";
   };
 
   buildInputs = [ pkgs.leveldb ] ++ lib.optional isPy3k pytest;
diff --git a/pkgs/development/python-modules/poetry/default.nix b/pkgs/development/python-modules/poetry/default.nix
index 368f282128821..1957982bd8fea 100644
--- a/pkgs/development/python-modules/poetry/default.nix
+++ b/pkgs/development/python-modules/poetry/default.nix
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "poetry";
-  version = "1.1.11";
+  version = "1.1.12";
   format = "pyproject";
   disabled = isPy27;
 
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "python-poetry";
     repo = pname;
     rev = version;
-    sha256 = "1f3y3gav2snvcf2h9mbkinvnlcyl9kndf6bh6j0vxkxzlmb4zilx";
+    sha256 = "1fm4yj6wxr24v7b77gmf63j7xsgszhbhzw2i9fvlfi0p9l0q34pm";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/polarizationsolver/default.nix b/pkgs/development/python-modules/polarizationsolver/default.nix
new file mode 100644
index 0000000000000..c4710f6901ed7
--- /dev/null
+++ b/pkgs/development/python-modules/polarizationsolver/default.nix
@@ -0,0 +1,38 @@
+{ buildPythonPackage
+, lib
+, fetchFromGitLab
+, python
+, numpy
+, scipy
+, periodictable
+, fields
+}:
+
+buildPythonPackage rec {
+  pname = "polarizationsolver";
+  version = "unstable-2021-11-02";
+
+  src = fetchFromGitLab {
+    owner = "reinholdt";
+    repo = pname;
+    rev = "00424ac4d1862257a55e4b16543f63ace3fe8c22";
+    sha256 = "sha256-LACf8Xw+o/uJ3+PD/DE/o7nwKY7fv3NyYbpjCrTTnBU=";
+  };
+
+  propagatedBuildInputs = [
+    numpy
+    periodictable
+    scipy
+  ];
+
+  checkInputs = [ fields ];
+
+  pythonImportsCheck = [ "polarizationsolver" ];
+
+  meta = with lib; {
+    description = "Multipole moment solver for quantum chemistry and polarisable embedding";
+    homepage = "https://gitlab.com/reinholdt/polarizationsolver";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.sheepforce ];
+  };
+}
diff --git a/pkgs/development/python-modules/policy-sentry/default.nix b/pkgs/development/python-modules/policy-sentry/default.nix
index a9e3930f67f47..86bbd847aa28e 100644
--- a/pkgs/development/python-modules/policy-sentry/default.nix
+++ b/pkgs/development/python-modules/policy-sentry/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "policy-sentry";
-  version = "0.11.18";
+  version = "0.11.19";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "salesforce";
     repo = "policy_sentry";
     rev = version;
-    sha256 = "sha256-1wpy4WofqrPusOI2BHRqSHfXlRpbuLOx97egzSAbB8E=";
+    sha256 = "sha256-zYX2MMFIgts5brFb/hsgLHZbY5mncqnCmk7nGdxj/BM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/potentials/default.nix b/pkgs/development/python-modules/potentials/default.nix
index 24db19b3c065e..f3542c13972e9 100644
--- a/pkgs/development/python-modules/potentials/default.nix
+++ b/pkgs/development/python-modules/potentials/default.nix
@@ -1,23 +1,25 @@
 { lib
+, bibtexparser
 , buildPythonPackage
-, fetchPypi
-, ipywidgets
 , cdcs
-, bibtexparser
+, datamodeldict
+, fetchPypi
 , habanero
+, ipywidgets
+, lxml
+, matplotlib
+, numpy
 , pandas
+, pytestCheckHook
+, pythonOlder
 , requests
-, numpy
-, matplotlib
+, scipy
 , unidecode
-, datamodeldict
 , xmltodict
-, pytestCheckHook
-, pythonOlder
 }:
 
 buildPythonPackage rec {
-  version = "0.3.1";
+  version = "0.3.2";
   pname = "potentials";
   format = "setuptools";
 
@@ -25,20 +27,22 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02l1rav5jdfsb00byxbswyhqdnjljp9y7g4ddn4mivzi7x39qa52";
+    sha256 = "sha256-u++ClAAc96u7k8w756sFR4oCtIOgERQ7foklxWWPprY=";
   };
 
   propagatedBuildInputs = [
-    ipywidgets
-    cdcs
     bibtexparser
+    cdcs
+    datamodeldict
     habanero
+    ipywidgets
+    lxml
+    matplotlib
+    numpy
     pandas
     requests
-    numpy
-    matplotlib
+    scipy
     unidecode
-    datamodeldict
     xmltodict
   ];
 
diff --git a/pkgs/development/python-modules/pre-commit-hooks/default.nix b/pkgs/development/python-modules/pre-commit-hooks/default.nix
index 530cf826917bf..eae35b5bac6da 100644
--- a/pkgs/development/python-modules/pre-commit-hooks/default.nix
+++ b/pkgs/development/python-modules/pre-commit-hooks/default.nix
@@ -1,23 +1,26 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , git
-, pythonOlder
 , pytestCheckHook
+, pythonOlder
 , ruamel-yaml
 , toml
 }:
 
 buildPythonPackage rec {
   pname = "pre-commit-hooks";
-  version = "4.0.1";
+  version = "4.1.0";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "pre-commit";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Rg2I79r0Pp3AUgT6mD+kEdm+5CEGgdmFn6G3xcU6fnk=";
+    sha256 = "sha256-nxJp7LkCUkJj77RCeWedBusue3x0lZYatSidbueZqfo=";
   };
 
   propagatedBuildInputs = [
@@ -30,6 +33,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  # Note: this is not likely to ever work on Darwin
+  # https://github.com/pre-commit/pre-commit-hooks/pull/655
+  doCheck = !stdenv.isDarwin;
+
   # the tests require a functional git installation which requires a valid HOME
   # directory.
   preCheck = ''
@@ -37,9 +44,12 @@ buildPythonPackage rec {
 
     git config --global user.name "Nix Builder"
     git config --global user.email "nix-builder@nixos.org"
+    git init .
   '';
 
-  pythonImportsCheck = [ "pre_commit_hooks" ];
+  pythonImportsCheck = [
+    "pre_commit_hooks"
+  ];
 
   meta = with lib; {
     description = "Some out-of-the-box hooks for pre-commit";
diff --git a/pkgs/development/python-modules/pre-commit/hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch b/pkgs/development/python-modules/pre-commit/hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch
deleted file mode 100644
index 4c1b6421e0905..0000000000000
--- a/pkgs/development/python-modules/pre-commit/hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/pre_commit/resources/hook-tmpl b/pre_commit/resources/hook-tmpl
-index 299144e..6d12543 100755
---- a/pre_commit/resources/hook-tmpl
-+++ b/pre_commit/resources/hook-tmpl
-@@ -25,8 +25,8 @@ ARGS.append('--')
- ARGS.extend(sys.argv[1:])
-
- DNE = '`pre-commit` not found.  Did you forget to activate your virtualenv?'
--if os.access(INSTALL_PYTHON, os.X_OK):
--    CMD = [INSTALL_PYTHON, '-mpre_commit']
-+if os.access('@pre-commit@/bin/pre-commit', os.X_OK):
-+    CMD = ['@pre-commit@/bin/pre-commit']
- elif which('pre-commit'):
-     CMD = ['pre-commit']
- else:
diff --git a/pkgs/development/python-modules/precis-i18n/default.nix b/pkgs/development/python-modules/precis-i18n/default.nix
index 3773a724e9380..807e81df1a394 100644
--- a/pkgs/development/python-modules/precis-i18n/default.nix
+++ b/pkgs/development/python-modules/precis-i18n/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "precis-i18n";
-  version = "1.0.2";
+  version = "1.0.3";
 
   disabled = !isPy3k;
 
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     owner = "byllyfish";
     repo = "precis_i18n";
     rev = "v${version}";
-    hash = "sha256:1r9pah1kgik6valf15ac7ybw0szr92cq84kwjvm6mq3z46j1pmkr";
+    hash = "sha256-pBmllX1RVdFnZsDSW7Hh5uVqK2d++kcp1NQLN/phXdU=";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/prettytable/default.nix b/pkgs/development/python-modules/prettytable/default.nix
index ddaa842e9b111..85aaa1e656d80 100644
--- a/pkgs/development/python-modules/prettytable/default.nix
+++ b/pkgs/development/python-modules/prettytable/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "prettytable";
-  version = "2.2.1";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6d465005573a5c058d4ca343449a5b28c21252b86afcdfa168cdc6a440f0b24c";
+    sha256 = "18e56447f636b447096977d468849c1e2d3cfa0af8e7b5acfcf83a64790c0aca";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/prometheus-client/default.nix b/pkgs/development/python-modules/prometheus-client/default.nix
index 9a01769695ac0..7af4e2b02faae 100644
--- a/pkgs/development/python-modules/prometheus-client/default.nix
+++ b/pkgs/development/python-modules/prometheus-client/default.nix
@@ -2,28 +2,35 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "prometheus-client";
-  version = "0.11.0";
+  version = "0.12.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "prometheus";
     repo = "client_python";
     rev = "v${version}";
-    sha256 = "14swmy4dgpk6cyjsm2advgc2c8api7xaca1sl7swznblh5fyzgzg";
+    sha256 = "1a0kllal5vkkdv325k0mx1mha2l9808mcz4dqx6qrgfskz8c2xjl";
   };
 
   checkInputs = [
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "prometheus_client" ];
+  pythonImportsCheck = [
+    "prometheus_client"
+  ];
 
   meta = with lib; {
     description = "Prometheus instrumentation library for Python applications";
     homepage = "https://github.com/prometheus/client_python";
     license = licenses.asl20;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/prompt-toolkit/default.nix b/pkgs/development/python-modules/prompt-toolkit/default.nix
index 9aed0211a956d..ae67d3d556dcd 100644
--- a/pkgs/development/python-modules/prompt-toolkit/default.nix
+++ b/pkgs/development/python-modules/prompt-toolkit/default.nix
@@ -2,28 +2,39 @@
 , buildPythonPackage
 , fetchPypi
 , pytestCheckHook
-, six
+, pythonOlder
 , wcwidth
 }:
 
 buildPythonPackage rec {
   pname = "prompt-toolkit";
-  version = "3.0.19";
+  version = "3.0.22";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     pname = "prompt_toolkit";
     inherit version;
-    sha256 = "08360ee3a3148bdb5163621709ee322ec34fc4375099afa4bbf751e9b7b7fa4f";
+    sha256 = "sha256-RJ8zPdEgvQH10paozhRSEUujpx+ucojS8K4skYdk+nI=";
   };
 
-  propagatedBuildInputs = [ six wcwidth ];
+  propagatedBuildInputs = [
+    wcwidth
+  ];
 
-  checkInputs = [ pytestCheckHook ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
   disabledTests = [
     "test_pathcompleter_can_expanduser"
   ];
 
+  pythonImportsCheck = [
+    "prompt_toolkit"
+  ];
+
   meta = with lib; {
     description = "Python library for building powerful interactive command lines";
     longDescription = ''
@@ -33,7 +44,7 @@ buildPythonPackage rec {
       with a nice interactive Python shell (called ptpython) built on top.
     '';
     homepage = "https://github.com/jonathanslenders/python-prompt-toolkit";
-    maintainers = with maintainers; [ ];
     license = licenses.bsd3;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/proto-plus/default.nix b/pkgs/development/python-modules/proto-plus/default.nix
index a6d60567ef96d..dd2494729efd7 100644
--- a/pkgs/development/python-modules/proto-plus/default.nix
+++ b/pkgs/development/python-modules/proto-plus/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "proto-plus";
-  version = "1.19.4";
+  version = "1.19.8";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "416dc38b090ca2093f6fac74977ac4a5599e496483a43c0076e6f6a4dd77ed9c";
+    sha256 = "bdf45f0e0be71510eb2ec9db4da78afde7b5fb8b0a507a36340a9b6ce8e48e58";
   };
 
   propagatedBuildInputs = [ protobuf ];
diff --git a/pkgs/development/python-modules/protobuf/default.nix b/pkgs/development/python-modules/protobuf/default.nix
index db3b73d7462f0..30e9fbf9ea75b 100644
--- a/pkgs/development/python-modules/protobuf/default.nix
+++ b/pkgs/development/python-modules/protobuf/default.nix
@@ -18,8 +18,6 @@ buildPythonPackage {
   inherit disabled;
   doCheck = doCheck && !isPy27; # setuptools>=41.4 no longer collects correctly on python2
 
-  outputs = [ "out" "dev" ];
-
   propagatedBuildInputs = [ six ] ++ lib.optionals isPy27 [ google-apputils ];
   propagatedNativeBuildInputs = [ buildPackages.protobuf ]; # For protoc.
   nativeBuildInputs = [ pyext ] ++ lib.optionals isPy27 [ google-apputils ];
@@ -41,32 +39,20 @@ buildPythonPackage {
     cd python
   '';
 
-  preConfigure = lib.optionalString (lib.versionAtLeast protobuf.version "2.6.0") ''
-    export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp
-    export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION_VERSION=2
-  '';
-
-  preBuild = ''
-    # Workaround for https://github.com/google/protobuf/issues/2895
-    ${python.pythonForBuild.interpreter} setup.py build
-  '' + lib.optionalString (lib.versionAtLeast protobuf.version "2.6.0") ''
-    ${python.pythonForBuild.interpreter} setup.py build_ext --cpp_implementation
-  '';
-
-  installFlags = lib.optional (lib.versionAtLeast protobuf.version "2.6.0")
-    "--install-option='--cpp_implementation'";
+  setupPyGlobalFlags = lib.optional (lib.versionAtLeast protobuf.version "2.6.0")
+    "--cpp_implementation";
 
-  # the _message.so isn't installed, so we'll do that manually.
-  # if someone can figure out a less hacky way to get the _message.so to
-  # install, please do replace this.
-  postInstall = lib.optionalString (lib.versionAtLeast protobuf.version "2.6.0") ''
-    cp -v $(find build -name "_message*") $out/${python.sitePackages}/google/protobuf/pyext
-  '';
+  pythonImportsCheck = [
+    "google.protobuf"
+  ] ++ lib.optionals (lib.versionAtLeast protobuf.version "2.6.0") [
+    "google.protobuf.internal._api_implementation" # Verify that --cpp_implementation worked
+  ];
 
   meta = with lib; {
     description = "Protocol Buffers are Google's data interchange format";
     homepage = "https://developers.google.com/protocol-buffers/";
     license = licenses.bsd3;
+    maintainers = with maintainers; [ knedlsepp ];
   };
 
   passthru.protobuf = protobuf;
diff --git a/pkgs/development/python-modules/proxy-py/default.nix b/pkgs/development/python-modules/proxy-py/default.nix
new file mode 100644
index 0000000000000..4bf07b1375eb4
--- /dev/null
+++ b/pkgs/development/python-modules/proxy-py/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, openssl
+, paramiko
+, pytest-asyncio
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "proxy-py";
+  version = "2.3.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "abhinavsingh";
+    repo = "proxy.py";
+    rev = "v${version}";
+    sha256 = "sha256-qqwb3t8/xicDGfO6l843qRwh0yUfthnOIhgNeKIbEO4=";
+  };
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    paramiko
+    typing-extensions
+  ];
+
+  checkInputs = [
+    openssl
+    pytest-asyncio
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d);
+  '';
+
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace "typing-extensions==3.7.4.3" "typing-extensions"
+  '';
+
+  pythonImportsCheck = [
+    "proxy"
+  ];
+
+  meta = with lib; {
+    description = "Python proxy framework";
+    homepage = "https://github.com/abhinavsingh/proxy.py";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/proxy_tools/default.nix b/pkgs/development/python-modules/proxy_tools/default.nix
new file mode 100644
index 0000000000000..e4596956dda87
--- /dev/null
+++ b/pkgs/development/python-modules/proxy_tools/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "proxy_tools";
+  version = "0.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-zLN1H1KcBH4tilhEDYayBTA88P6BRveE0cvNlPCigBA=";
+  };
+
+  # no tests in pypi
+  doCheck = false;
+  pythonImportsCheck = [ "proxy_tools" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/jtushman/proxy_tools";
+    description = "Simple (hopefuly useful) Proxy (as in the GoF design pattern) implementation for Python";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ jojosch ];
+  };
+}
diff --git a/pkgs/development/python-modules/psautohint/default.nix b/pkgs/development/python-modules/psautohint/default.nix
index ff312cbff891a..3004d5f7a9b92 100644
--- a/pkgs/development/python-modules/psautohint/default.nix
+++ b/pkgs/development/python-modules/psautohint/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "psautohint";
-  version = "2.3.0";
+  version = "2.3.1";
 
   disabled = pythonOlder "3.6";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "adobe-type-tools";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1y7mqc2myn1gfzg4h018f8xza0q535shnqg6snnaqynz20i8jcfh";
+    sha256 = "1knh428af0lvzijvd72i30jcvx9n6ga0hai69kxg8386jdpmmvkg";
     fetchSubmodules = true; # data dir for tests
   };
 
diff --git a/pkgs/development/python-modules/psycopg2/default.nix b/pkgs/development/python-modules/psycopg2/default.nix
index 1af8fd38bad83..34660a84cd606 100644
--- a/pkgs/development/python-modules/psycopg2/default.nix
+++ b/pkgs/development/python-modules/psycopg2/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "psycopg2";
-  version = "2.9.1";
+  version = "2.9.2";
 
   # Extension modules don't work well with PyPy. Use psycopg2cffi instead.
   # c.f. https://github.com/NixOS/nixpkgs/pull/104151#issuecomment-729750892
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0z0v2d5gpgy0wf2ypqxv955c9k44yszd7r20km5s79yhy6k06lyy";
+    sha256 = "a84da9fa891848e0270e8e04dcca073bc9046441eeb47069f5c0e36783debbea";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pubnub/default.nix b/pkgs/development/python-modules/pubnub/default.nix
index 24ac0e37ca7e0..40a4bf497f461 100644
--- a/pkgs/development/python-modules/pubnub/default.nix
+++ b/pkgs/development/python-modules/pubnub/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "pubnub";
-  version = "5.4.0";
+  version = "5.5.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "python";
     rev = "v${version}";
-    sha256 = "sha256-FyDsTqDQTI/Xxu4Sl4eHqwmgwN+ip+8WKGJs/h/kl2Y=";
+    sha256 = "133sis24jd40yq4sgp8lmg2kac5wiiccisjpkhm50rb9wdbpn6kh";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pudb/default.nix b/pkgs/development/python-modules/pudb/default.nix
index 3459c5c99742f..81e1627324ad8 100644
--- a/pkgs/development/python-modules/pudb/default.nix
+++ b/pkgs/development/python-modules/pudb/default.nix
@@ -1,37 +1,49 @@
 { lib
 , buildPythonPackage
+, dataclasses
 , isPy3k
 , fetchPypi
 , jedi
 , pygments
 , urwid
+, urwid-readline
 , pytest-mock
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pudb";
-  version = "2021.1";
+  version = "2021.2.2";
+  format = "setuptools";
+
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "309ee82b45a0ffca0bc4c7f521fd3e357589c764f339bdf9dcabb7ad40692d6e";
+    sha256 = "82a524ab4b89d2c701b089071ccc6afa9c8a838504e3d68eb33faa8a8abbe4cb";
   };
 
   propagatedBuildInputs = [
     jedi
     pygments
     urwid
+    urwid-readline
+  ] ++ lib.optionals (pythonOlder "3.7") [
+    dataclasses
+  ];
+
+  checkInputs = [
+    pytest-mock
+    pytestCheckHook
   ];
 
   preCheck = ''
     export HOME=$TMPDIR
   '';
 
-  checkInputs = [
-    pytest-mock
-    pytestCheckHook
+  pythonImportsCheck = [
+    "pudb"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pulp/default.nix b/pkgs/development/python-modules/pulp/default.nix
index 34cea0a222375..65a179f59d6a2 100644
--- a/pkgs/development/python-modules/pulp/default.nix
+++ b/pkgs/development/python-modules/pulp/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "PuLP";
-  version = "2.5.1";
+  version = "2.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "27c2a87a98ea0e9a08c7c46e6df47d6d4e753ad9991fea2901892425d89c99a6";
+    sha256 = "4b4f7e1e954453e1b233720be23aea2f10ff068a835ac10c090a93d8e2eb2e8d";
   };
 
   propagatedBuildInputs = [ pyparsing amply ];
diff --git a/pkgs/development/python-modules/pvo/default.nix b/pkgs/development/python-modules/pvo/default.nix
new file mode 100644
index 0000000000000..55802290c15a4
--- /dev/null
+++ b/pkgs/development/python-modules/pvo/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, aiohttp
+, aresponses
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pydantic
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "pvo";
+  version = "0.2.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "frenck";
+    repo = "python-pvoutput";
+    rev = "v${version}";
+    sha256 = "sha256-liV5Ae3Bz6MZT3KQ/1aNt6P4Wsg4SOfAMQKI0Qpxvao=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    pydantic
+    yarl
+  ];
+
+  checkInputs = [
+    aresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    # Upstream doesn't set a version for the pyproject.toml
+    substituteInPlace pyproject.toml \
+      --replace "0.0.0" "${version}" \
+      --replace "--cov" ""
+  '';
+
+  pythonImportsCheck = [
+    "pvo"
+  ];
+
+  meta = with lib; {
+    description = "Python module to interact with the PVOutput API";
+    homepage = "https://github.com/frenck/python-pvoutput";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pwntools/default.nix b/pkgs/development/python-modules/pwntools/default.nix
index 6241a7d86e46c..cfcbf14703b01 100644
--- a/pkgs/development/python-modules/pwntools/default.nix
+++ b/pkgs/development/python-modules/pwntools/default.nix
@@ -6,7 +6,7 @@
 , packaging
 , pysocks
 , pygments
-, ROPGadget
+, ropgadget
 , capstone
 , colored-traceback
 , paramiko
@@ -55,7 +55,7 @@ buildPythonPackage rec {
     packaging
     pysocks
     pygments
-    ROPGadget
+    ropgadget
     capstone
     colored-traceback
     paramiko
diff --git a/pkgs/development/python-modules/py/default.nix b/pkgs/development/python-modules/py/default.nix
index ce7abe4dc2735..c1cf60ca4d779 100644
--- a/pkgs/development/python-modules/py/default.nix
+++ b/pkgs/development/python-modules/py/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "py";
-  version = "1.10.0";
+  version = "1.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3";
+    sha256 = "51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719";
   };
 
   # Circular dependency on pytest
diff --git a/pkgs/development/python-modules/py17track/default.nix b/pkgs/development/python-modules/py17track/default.nix
index 2c7dc8e52eaf8..b39d50dbfc7a0 100644
--- a/pkgs/development/python-modules/py17track/default.nix
+++ b/pkgs/development/python-modules/py17track/default.nix
@@ -14,15 +14,16 @@
 
 buildPythonPackage rec {
   pname = "py17track";
-  version = "3.3.0";
+  version = "2021.12.2";
   format = "pyproject";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "1rnq9ybzj2l3699mjyplc29mxla8fayh52x52cnsz21ixlfd9fky";
+    sha256 = "sha256-T0Jjdu6QC8rTqZwe4cdsBbs0hQXUY6CkrImCgYwWL9o=";
   };
 
   nativeBuildInputs = [
@@ -44,13 +45,18 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace ">=19.3,<21.0" ">=19.3,<22.0"
+      --replace 'attrs = ">=19.3,<21.0"' 'attrs = ">=19.3,<22.0"' \
+      --replace 'async-timeout = "^3.0.1"' 'async-timeout = ">=3.0.1,<5.0.0"'
   '';
 
-  # Ignore the examples directory as the files are prefixed with test_
-  disabledTestPaths = [ "examples/" ];
+  disabledTestPaths = [
+    # Ignore the examples directory as the files are prefixed with test_
+    "examples/"
+  ];
 
-  pythonImportsCheck = [ "py17track" ];
+  pythonImportsCheck = [
+    "py17track"
+  ];
 
   meta = with lib; {
     description = "Python library to track package info from 17track.com";
diff --git a/pkgs/development/python-modules/py4j/default.nix b/pkgs/development/python-modules/py4j/default.nix
index 6ad9673b97554..cf24d21e17f56 100644
--- a/pkgs/development/python-modules/py4j/default.nix
+++ b/pkgs/development/python-modules/py4j/default.nix
@@ -3,11 +3,11 @@
 buildPythonPackage rec {
   pname = "py4j";
 
-  version = "0.10.9.2";
+  version = "0.10.9.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "624f97c363b8dd84822bc666b12fa7f7d97824632b2ff3d852cc491359ce7615";
+    sha256 = "0d92844da4cb747155b9563c44fc322c9a1562b3ef0979ae692dbde732d784dd";
   };
 
   # No tests in archive
diff --git a/pkgs/development/python-modules/pyahocorasick/default.nix b/pkgs/development/python-modules/pyahocorasick/default.nix
index 7bb2f7c988a9d..56e5636622b81 100644
--- a/pkgs/development/python-modules/pyahocorasick/default.nix
+++ b/pkgs/development/python-modules/pyahocorasick/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , pytestCheckHook
 }:
 
@@ -15,10 +16,13 @@ buildPythonPackage rec {
     sha256 = "13x3718if28l50474xrz1b9709kvnvdg3nzm6y8bh7mc9a4zyss5";
   };
 
-  postPatch = ''
-    substituteInPlace unittests.py \
-        --replace '(tmp, "test.dat")' "(\"$TMPDIR\", \"test.dat\")"
-  '';
+  patches = [
+    # Use proper temporary directory on Hydra
+    (fetchpatch {
+      url = "https://github.com/WojciechMula/pyahocorasick/commit/b6549e06f3cced7ffdf4d1b587cd7de12041f495.patch";
+      sha256 = "sha256-v3J/0aIPOnBhLlJ18r/l7O0MckqLOCtcmqIS9ZegaSI=";
+    })
+  ];
 
   checkInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/pyaml/default.nix b/pkgs/development/python-modules/pyaml/default.nix
index 8642c9affbdc8..cbab9bacfb813 100644
--- a/pkgs/development/python-modules/pyaml/default.nix
+++ b/pkgs/development/python-modules/pyaml/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pyaml";
-  version = "21.8.3";
+  version = "21.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-oWNtY8R2MooHIT0LcRG7Y1cPGrij7d9gUiYwJQwj2XU=";
+    sha256 = "c6519fee13bf06e3bb3f20cacdea8eba9140385a7c2546df5dbae4887f768383";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyarrow/default.nix b/pkgs/development/python-modules/pyarrow/default.nix
index e9510d9552ce6..c47cdaa02b701 100644
--- a/pkgs/development/python-modules/pyarrow/default.nix
+++ b/pkgs/development/python-modules/pyarrow/default.nix
@@ -1,6 +1,8 @@
-{ lib, buildPythonPackage, python, isPy3k, arrow-cpp, cmake, cython, hypothesis, numpy, pandas, pytestCheckHook, pytest-lazy-fixture, pkg-config, setuptools-scm, six }:
+{ lib, stdenv, buildPythonPackage, python, isPy3k, arrow-cpp, cmake, cython, hypothesis, numpy, pandas, pytestCheckHook, pytest-lazy-fixture, pkg-config, setuptools-scm, six }:
 
 let
+  zero_or_one = cond: if cond then 1 else 0;
+
   _arrow-cpp = arrow-cpp.override { python3 = python; };
 in
 
@@ -17,7 +19,11 @@ buildPythonPackage rec {
   checkInputs = [ hypothesis pandas pytestCheckHook pytest-lazy-fixture ];
 
   PYARROW_BUILD_TYPE = "release";
-  PYARROW_WITH_PARQUET = true;
+
+  PYARROW_WITH_DATASET = zero_or_one true;
+  PYARROW_WITH_FLIGHT = zero_or_one _arrow-cpp.enableFlight;
+  PYARROW_WITH_PARQUET = zero_or_one true;
+
   PYARROW_CMAKE_OPTIONS = [
     "-DCMAKE_INSTALL_RPATH=${ARROW_HOME}/lib"
 
@@ -25,9 +31,13 @@ buildPythonPackage rec {
     # ourselves
     "-DCMAKE_POLICY_DEFAULT_CMP0025=NEW"
   ];
+
   ARROW_HOME = _arrow-cpp;
   PARQUET_HOME = _arrow-cpp;
 
+  ARROW_TEST_DATA = lib.optionalString doCheck _arrow-cpp.ARROW_TEST_DATA;
+
+  doCheck = true;
   dontUseCmakeConfigure = true;
 
   preBuild = ''
@@ -44,6 +54,9 @@ buildPythonPackage rec {
     # Deselect a parquet dataset test because it erroneously fails to find the
     # pyarrow._dataset module.
     "--deselect=pyarrow/tests/parquet/test_dataset.py::test_parquet_dataset_deprecated_properties"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # Requires loopback networking
+    "--deselect=pyarrow/tests/test_ipc.py::test_socket_"
   ];
 
   dontUseSetuptoolsCheck = true;
@@ -59,6 +72,6 @@ buildPythonPackage rec {
     homepage = "https://arrow.apache.org/";
     license = licenses.asl20;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ veprbl ];
+    maintainers = with maintainers; [ veprbl cpcloud ];
   };
 }
diff --git a/pkgs/development/python-modules/pyathena/default.nix b/pkgs/development/python-modules/pyathena/default.nix
index 6bfd68286b7e0..a16e77308602f 100644
--- a/pkgs/development/python-modules/pyathena/default.nix
+++ b/pkgs/development/python-modules/pyathena/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "pyathena";
-  version = "2.3.0";
+  version = "2.3.2";
 
   src = fetchPypi {
     pname = "PyAthena";
     inherit version;
-    sha256 = "08fl653yayvqi991zvcai5ifcxwy9ip6xh0cr3lbimggjnjgwsl5";
+    sha256 = "20a473c52e76a211c427d2f711af0a04804a70fc036ab884780e42e0dc2025f7";
   };
 
   # Nearly all tests depend on a working AWS Athena instance,
diff --git a/pkgs/development/python-modules/pyatspi/default.nix b/pkgs/development/python-modules/pyatspi/default.nix
index b566edef64d1d..f839dc4df3125 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.38.1";
+  version = "2.38.2";
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0lc1p6p296c9q3lffi03v902jlsj34i7yyl3rcyaq94wwbljg7z4";
+    sha256 = "DnCJwLYwlhS1NiCDazRi1/kShOQ2/kkpuhYZqEHPEYU=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/python-modules/pyatv/default.nix b/pkgs/development/python-modules/pyatv/default.nix
index 092e5b91f16c5..6a883bbff33fa 100644
--- a/pkgs/development/python-modules/pyatv/default.nix
+++ b/pkgs/development/python-modules/pyatv/default.nix
@@ -21,8 +21,8 @@
 buildPythonPackage rec {
   pname = "pyatv";
   version = "0.9.6";
-
   format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
@@ -32,11 +32,6 @@ buildPythonPackage rec {
     sha256 = "0navm7a0k1679kj7nbkbyl7s2q0wq0xmcnizmnvp0arkd5xqmqv1";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "pytest-runner" ""
-  '';
-
   propagatedBuildInputs = [
     aiohttp
     bitarray
@@ -57,6 +52,18 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "pytest-runner" ""
+    # Remove all version pinning
+    sed -i -e "s/==[0-9.]*//" requirements/requirements.txt
+  '';
+
+  disabledTestPaths = [
+    # Test doesn't work in the sandbox
+    "tests/protocols/companion/test_companion_auth.py"
+  ];
+
   __darwinAllowLocalNetworking = true;
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/pyautogui/default.nix b/pkgs/development/python-modules/pyautogui/default.nix
new file mode 100644
index 0000000000000..08ab81ba93d35
--- /dev/null
+++ b/pkgs/development/python-modules/pyautogui/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, python3Packages
+, pkgs
+, fetchzip
+, mouseinfo
+, pygetwindow
+, pymsgbox
+, pyperclip
+, pyrect
+, pyscreeze
+, pytweening
+, tkinter
+, xlib
+, xvfb-run
+, scrot
+}:
+buildPythonPackage rec {
+  pname = "pyautogui";
+  version = "0.9.53";
+
+  src = fetchFromGitHub {
+    owner = "asweigart";
+    repo = "pyautogui";
+    rev = "5e4acb870f2e7ce0ea1927cc5188bc2f5ab7bbbc";
+    sha256 = "sha256-R9tcTqxUaqw63FLOGFRaO/Oz6kD7V6MPHdQ8A29NdXw=";
+  };
+
+  checkInputs = [ xvfb-run scrot ];
+  checkPhase = ''
+    xvfb-run python -c 'import pyautogui'
+    # The tests depend on some specific things that xvfb cant provide, like keyboard and mouse
+    # xvfb-run python -m unittest tests.test_pyautogui
+  '';
+
+  patches = [
+    # https://github.com/asweigart/pyautogui/issues/598
+    ./fix-locateOnWindow-and-xlib.patch
+  ];
+
+  propagatedBuildInputs = [
+    mouseinfo
+    pygetwindow
+    pymsgbox
+    xlib
+    tkinter
+    pyperclip
+    pyscreeze
+    pytweening
+  ];
+
+  meta = with lib; {
+    description = "PyAutoGUI lets Python control the mouse and keyboard, and other GUI automation tasks.";
+    homepage = "https://github.com/asweigart/pyautogui";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ lucasew ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyautogui/fix-locateOnWindow-and-xlib.patch b/pkgs/development/python-modules/pyautogui/fix-locateOnWindow-and-xlib.patch
new file mode 100644
index 0000000000000..ef0c028922380
--- /dev/null
+++ b/pkgs/development/python-modules/pyautogui/fix-locateOnWindow-and-xlib.patch
@@ -0,0 +1,30 @@
+diff --git a/pyautogui/__init__.py b/pyautogui/__init__.py
+index ec7d097..443b146 100644
+--- a/pyautogui/__init__.py
++++ b/pyautogui/__init__.py
+@@ -216,9 +216,9 @@ try:
+ 
+     @raisePyAutoGUIImageNotFoundException
+     def locateOnWindow(*args, **kwargs):
+-        return pyscreeze.locateOnWindow(*args, **kwargs)
++        return pyscreeze.locateOnScreen(*args, **kwargs)
+ 
+-    locateOnWindow.__doc__ = pyscreeze.locateOnWindow.__doc__
++    locateOnWindow.__doc__ = pyscreeze.locateOnScreen.__doc__
+ 
+ 
+ except ImportError:
+diff --git a/setup.py b/setup.py
+index 196394d..6d90a88 100644
+--- a/setup.py
++++ b/setup.py
+@@ -29,8 +29,7 @@ setup(
+     test_suite='tests',
+     install_requires=['pyobjc-core;platform_system=="Darwin"',
+                       'pyobjc;platform_system=="Darwin"',
+-                      'python3-Xlib;platform_system=="Linux" and python_version>="3.0"',
+-                      'python-xlib;platform_system=="Linux" and python_version<"3.0"',
++                      'python-xlib;platform_system=="Linux"',
+                       'pymsgbox',
+                       'PyTweening>=1.0.1',
+                       'pyscreeze>=0.1.21',
diff --git a/pkgs/development/python-modules/pybase64/default.nix b/pkgs/development/python-modules/pybase64/default.nix
index 852f783337dbd..ea7458f13b660 100644
--- a/pkgs/development/python-modules/pybase64/default.nix
+++ b/pkgs/development/python-modules/pybase64/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "pybase64";
-  version = "1.2.0";
+  version = "1.2.1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9e310fcf5cfa2cbf7d1d7eb503b6066bec785216bcd1d8c0a736f59d5ec21b0b";
+    sha256 = "d2016a3a487d3d4501d8281f61ee54c25efd65e37a4c7dce8011e0de7183c956";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/pybids/default.nix b/pkgs/development/python-modules/pybids/default.nix
index daa879a58a0d0..3ad29916575a9 100644
--- a/pkgs/development/python-modules/pybids/default.nix
+++ b/pkgs/development/python-modules/pybids/default.nix
@@ -14,12 +14,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.13.2";
+  version = "0.14.0";
   pname = "pybids";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9692013af3b86b096b5423b88179c6c9b604baff5a6b6f89ba5f40429feb7a3e";
+    sha256 = "73c4d03aad333f2a7cb4405abe96f55a33cffa4b5a2d23fad6ac5767c45562ef";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pybind11/default.nix b/pkgs/development/python-modules/pybind11/default.nix
index fccc064f23ef4..d33d9ffc575dc 100644
--- a/pkgs/development/python-modules/pybind11/default.nix
+++ b/pkgs/development/python-modules/pybind11/default.nix
@@ -3,6 +3,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , cmake
+, boost
 , eigen
 , python
 , catch
@@ -12,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "pybind11";
-  version = "2.8.0";
+  version = "2.8.1";
 
   src = fetchFromGitHub {
     owner = "pybind";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-kmyfRNZM9AtF0QA1MnWEPwWb6BebkkpanTvQwsraSJo=";
+    sha256 = "sha256-Gk4ZN/g6SRWFm0ALCvyald/9zq3wBd48mGdqdGCeGYI=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -26,7 +27,8 @@ buildPythonPackage rec {
   dontUseCmakeBuildDir = true;
 
   cmakeFlags = [
-    "-DEIGEN3_INCLUDE_DIR=${eigen}/include/eigen3"
+    "-DBoost_INCLUDE_DIR=${lib.getDev boost}/include"
+    "-DEIGEN3_INCLUDE_DIR=${lib.getDev eigen}/include/eigen3"
     "-DBUILD_TESTING=on"
   ] ++ lib.optionals (python.isPy3k && !stdenv.cc.isClang) [
     "-DPYBIND11_CXX_STANDARD=-std=c++17"
diff --git a/pkgs/development/python-modules/pycairo/1.18.nix b/pkgs/development/python-modules/pycairo/1.18.nix
index 0a51c78c584d8..9da4da1479c0e 100644
--- a/pkgs/development/python-modules/pycairo/1.18.nix
+++ b/pkgs/development/python-modules/pycairo/1.18.nix
@@ -37,7 +37,10 @@ buildPythonPackage rec {
   ];
 
   mesonFlags = [
-    "-Dpython=${python.interpreter}"
+    # This is only used for figuring out what version of Python is in
+    # use, and related stuff like figuring out what the install prefix
+    # should be, but it does need to be able to execute Python code.
+    "-Dpython=${python.pythonForBuild.interpreter}"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pycairo/default.nix b/pkgs/development/python-modules/pycairo/default.nix
index 587013e30f8c0..85edbdb29b442 100644
--- a/pkgs/development/python-modules/pycairo/default.nix
+++ b/pkgs/development/python-modules/pycairo/default.nix
@@ -40,7 +40,10 @@ buildPythonPackage rec {
   ];
 
   mesonFlags = [
-    "-Dpython=${python.interpreter}"
+    # This is only used for figuring out what version of Python is in
+    # use, and related stuff like figuring out what the install prefix
+    # should be, but it does need to be able to execute Python code.
+    "-Dpython=${python.pythonForBuild.interpreter}"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pycapnp/default.nix b/pkgs/development/python-modules/pycapnp/default.nix
index 7e8954e04d0c7..8c63a11862239 100644
--- a/pkgs/development/python-modules/pycapnp/default.nix
+++ b/pkgs/development/python-modules/pycapnp/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "pycapnp";
-  version = "1.0.0";
+  version = "1.1.0";
   disabled = isPyPy || isPy27;
 
   src = fetchFromGitHub {
     owner = "capnproto";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1n6dq2fbagi3wvrpkyb7wx4y15nkm2grln4y75hrqgmnli8ggi9v";
+    sha256 = "1xi6df93ggkpmwckwbi356v7m32zv5qry8s45hvsps66dz438kmi";
   };
 
   buildInputs = [ capnproto cython pkgconfig ];
diff --git a/pkgs/development/python-modules/pycarwings2/default.nix b/pkgs/development/python-modules/pycarwings2/default.nix
index 164a5b3f562f6..e404475e93ba1 100644
--- a/pkgs/development/python-modules/pycarwings2/default.nix
+++ b/pkgs/development/python-modules/pycarwings2/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pycarwings2";
-  version = "2.12";
+  version = "2.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
@@ -19,9 +19,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "filcole";
     repo = pname;
-    # release not tagged: https://github.com/filcole/pycarwings2/issues/33
-    rev = "0dc9e7e74cb119614c72c7f955801a366f303c56";
-    sha256 = "sha256-3lyAgLuaNrCDvRT2yYkgaDiLPKW9Hbg05cQlMIBUs6o=";
+    rev = "v${version}";
+    sha256 = "04k1la7wix6sp668nqpwdhd3057b2bzcz7h2b9a57cxlifl8pjxf";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pychromecast/default.nix b/pkgs/development/python-modules/pychromecast/default.nix
index 7b14497fce14b..f9a4b24ffcd62 100644
--- a/pkgs/development/python-modules/pychromecast/default.nix
+++ b/pkgs/development/python-modules/pychromecast/default.nix
@@ -1,27 +1,45 @@
-{ lib, fetchPypi, buildPythonPackage, requests, zeroconf, protobuf, casttube, isPy3k }:
+{ lib
+, buildPythonPackage
+, casttube
+, fetchPypi
+, isPy3k
+, protobuf
+, requests
+, zeroconf
+}:
 
 buildPythonPackage rec {
-  pname = "PyChromecast";
-  version = "9.3.1";
+  pname = "pychromecast";
+  version = "10.2.2";
+  format = "setuptools";
+
+  disabled = !isPy3k;
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "a1d6807ae0fc455aaeecd2def87c31bb86679a2920cacfa7910db9c9db5085d4";
+    pname = "PyChromecast";
+    inherit version;
+    sha256 = "bd1dbb9383ed549d42d12f337a6c664a9088b4910ebb3f11de6fe15f397e7efd";
   };
 
-  disabled = !isPy3k;
-
-  propagatedBuildInputs = [ requests zeroconf protobuf casttube ];
+  propagatedBuildInputs = [
+    casttube
+    protobuf
+    requests
+    zeroconf
+  ];
 
   # no tests available
   doCheck = false;
-  pythonImportsCheck = [ "pychromecast" ];
+
+  pythonImportsCheck = [
+    "pychromecast"
+  ];
 
   meta = with lib; {
     description = "Library for Python to communicate with the Google Chromecast";
-    homepage    = "https://github.com/home-assistant-libs/pychromecast";
-    license     = licenses.mit;
+    homepage = "https://github.com/home-assistant-libs/pychromecast";
+    license = licenses.mit;
     maintainers = with maintainers; [ abbradar ];
-    platforms   = platforms.unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/pycocotools/default.nix b/pkgs/development/python-modules/pycocotools/default.nix
index a6cdf877a07ba..fa75d02c6101a 100644
--- a/pkgs/development/python-modules/pycocotools/default.nix
+++ b/pkgs/development/python-modules/pycocotools/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "pycocotools";
-  version = "2.0.2";
+  version = "2.0.3";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06hz0iz4kqxhqby4j7bah8l41kg68bb118jawp172i4vg497lw94";
+    sha256 = "sha256-OCkCSTABN3EVZSGkuNtLOu9ZBVbPo6jdP6sCfTmyFeE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pycodestyle/default.nix b/pkgs/development/python-modules/pycodestyle/default.nix
index 0e92196f74536..865c1febddcf4 100644
--- a/pkgs/development/python-modules/pycodestyle/default.nix
+++ b/pkgs/development/python-modules/pycodestyle/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pycodestyle";
-  version = "2.7.0";
+  version = "2.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef";
+    sha256 = "0zxyrg8029lzjhima6l5nk6y0z6lm5wfp9qchz3s33j3xx3mipgd";
   };
 
   dontUseSetuptoolsCheck = true;
diff --git a/pkgs/development/python-modules/pycparser/default.nix b/pkgs/development/python-modules/pycparser/default.nix
index 5fe7cab1cdb29..c8283f93c512e 100644
--- a/pkgs/development/python-modules/pycparser/default.nix
+++ b/pkgs/development/python-modules/pycparser/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pycparser";
-  version = "2.20";
+  version = "2.21";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0";
+    sha256 = "e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/pydeck/default.nix b/pkgs/development/python-modules/pydeck/default.nix
index 7e95c60be828a..6626ee19d9200 100644
--- a/pkgs/development/python-modules/pydeck/default.nix
+++ b/pkgs/development/python-modules/pydeck/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pydeck";
-  version = "0.7.0";
+  version = "0.7.1";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1zi0gqzd0byj16ja74m2dm99a1hmrlhk26y0x7am07vb1d8lvvsy";
+    sha256 = "907601c99f7510e16d27d7cb62bfa145216d166a2b5c9c50cfe2b65b032ebd2e";
   };
 
   pythonImportsCheck = [ "pydeck" ];
diff --git a/pkgs/development/python-modules/pydelijn/default.nix b/pkgs/development/python-modules/pydelijn/default.nix
index 08a3bf8236117..f8a5d2ed4ae95 100644
--- a/pkgs/development/python-modules/pydelijn/default.nix
+++ b/pkgs/development/python-modules/pydelijn/default.nix
@@ -10,6 +10,8 @@
 buildPythonPackage rec {
   pname = "pydelijn";
   version = "0.6.1";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
@@ -23,10 +25,21 @@ buildPythonPackage rec {
     pytz
   ];
 
+  postPatch = ''
+    # Remove with next release
+    substituteInPlace setup.py \
+      --replace "async_timeout>=3.0.1,<4.0" "async_timeout>=3.0.1"
+    # https://github.com/bollewolle/pydelijn/pull/11
+    substituteInPlace pydelijn/common.py \
+      --replace ", loop=self.loop" ""
+  '';
+
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [ "pydelijn" ];
+  pythonImportsCheck = [
+    "pydelijn"
+  ];
 
   meta = with lib; {
     description = "Python package to retrieve realtime data of passages at stops of De Lijn";
diff --git a/pkgs/development/python-modules/pydexcom/default.nix b/pkgs/development/python-modules/pydexcom/default.nix
index f83d3cbf1102b..c2f8953bbced4 100644
--- a/pkgs/development/python-modules/pydexcom/default.nix
+++ b/pkgs/development/python-modules/pydexcom/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "pydexcom";
-  version = "0.2.0";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "gagebenne";
     repo = pname;
     rev = version;
-    sha256 = "19h7r0qbsqd6k6g4nz6z3k9kdmk0sx5zpsrgxwnhsff5fqi0y2ls";
+    sha256 = "sha256-8PE+MFQkuwYey82jNSRjMaK8kAhYSBbjqnsbGJHGW9I=";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/pydicom/default.nix b/pkgs/development/python-modules/pydicom/default.nix
index 539fb9b929d7d..5c7d5ab92ab47 100644
--- a/pkgs/development/python-modules/pydicom/default.nix
+++ b/pkgs/development/python-modules/pydicom/default.nix
@@ -2,25 +2,25 @@
 , stdenv
 , buildPythonPackage
 , fetchFromGitHub
-, isPy27
-, pytest-runner
+, pythonOlder
 , pytestCheckHook
 , numpy
 , pillow
+, setuptools
 }:
 
 let
   pname = "pydicom";
-  version = "2.1.2";
+  version = "2.2.2";
 
   src = fetchFromGitHub {
     owner = "${pname}";
     repo = "${pname}";
     rev = "v${version}";
-    sha256 = "sha256-iExy+mUs1uqs/u9N6btlqyP6/TvoPVsuOuzs56zZAS8=";
+    sha256 = "sha256-p5hJAUsactv6UEvbVaF+zk4iapx98eYkC9Zo+lzFATA=";
   };
 
-  # Pydicom needs pydicom-data to run some tests. If these files are downloaded
+  # Pydicom needs pydicom-data to run some tests. If these files aren't downloaded
   # before the package creation, it'll try to download during the checkPhase.
   test_data = fetchFromGitHub {
     owner = "${pname}";
@@ -32,11 +32,17 @@ let
 in
 buildPythonPackage {
   inherit pname version src;
-  disabled = isPy27;
+  disabled = pythonOlder "3.6";
 
-  propagatedBuildInputs = [ numpy pillow ];
+  propagatedBuildInputs = [
+    numpy
+    pillow
+    setuptools
+  ];
 
-  checkInputs = [ pytest-runner pytestCheckHook ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
   # Setting $HOME to prevent pytest to try to create a folder inside
   # /homeless-shelter which is read-only.
@@ -58,9 +64,13 @@ buildPythonPackage {
     "test_time_check"
   ];
 
+  pythonImportsCheck = [
+    "pydicom"
+  ];
+
   meta = with lib; {
+    description = "Python package for working with DICOM files";
     homepage = "https://pydicom.github.io";
-    description = "Pure-Python package for working with DICOM files";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
   };
diff --git a/pkgs/development/python-modules/pydmd/default.nix b/pkgs/development/python-modules/pydmd/default.nix
index 32f0dde17af82..dd166b78f8625 100644
--- a/pkgs/development/python-modules/pydmd/default.nix
+++ b/pkgs/development/python-modules/pydmd/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "pydmd";
-  version = "0.3.3";
+  version = "0.4";
 
   src = fetchFromGitHub {
     owner = "mathLab";
     repo = "PyDMD";
     rev = "v${version}";
-    sha256 = "1516dhmpwi12v9ly9jj18wpz9k696q5k6aamlrbby8wp8smajgrv";
+    sha256 = "1qwa3dyrrm20x0pzr7rklcw7433fd822n4m8bbbdd7z83xh6xm8g";
   };
 
   propagatedBuildInputs = [ future numpy scipy matplotlib ];
diff --git a/pkgs/development/python-modules/pydocstyle/2.nix b/pkgs/development/python-modules/pydocstyle/2.nix
deleted file mode 100644
index 9ce4ffc0f816a..0000000000000
--- a/pkgs/development/python-modules/pydocstyle/2.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy3k, pythonOlder
-, snowballstemmer, six, configparser
-, pytest, mock, pathlib }:
-
-buildPythonPackage rec {
-  pname = "pydocstyle";
-  version = "2.1.1";
-
-  # no tests on PyPI
-  # https://github.com/PyCQA/pydocstyle/issues/302
-  src = fetchFromGitHub {
-    owner = "PyCQA";
-    repo = pname;
-    rev = version;
-    sha256 = "1h0k8lpx14svc8dini62j0kqiam10pck5sdzvxa4xhsx7y689g5l";
-  };
-
-  propagatedBuildInputs = [ snowballstemmer six ] ++ lib.optional (!isPy3k) configparser;
-
-  checkInputs = [ pytest mock ] ++ lib.optional (pythonOlder "3.4") pathlib;
-
-  checkPhase = ''
-    # test_integration.py installs packages via pip
-    py.test --cache-clear -vv src/tests -k "not test_integration"
-  '';
-
-  meta = with lib; {
-    description = "Python docstring style checker";
-    homepage = "https://github.com/PyCQA/pydocstyle/";
-    license = licenses.mit;
-    maintainers = with maintainers; [ dzabraev ];
-  };
-}
diff --git a/pkgs/development/python-modules/pydocstyle/default.nix b/pkgs/development/python-modules/pydocstyle/default.nix
index 36c61ace8563e..0658e1857174f 100644
--- a/pkgs/development/python-modules/pydocstyle/default.nix
+++ b/pkgs/development/python-modules/pydocstyle/default.nix
@@ -1,33 +1,40 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy3k
-, mock
-, pytest
+{ lib
+, buildPythonPackage
+, isPy3k
+, fetchFromGitHub
 , snowballstemmer
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pydocstyle";
-  version = "5.0.2";
+  version = "6.1.1";
   disabled = !isPy3k;
 
+  format = "setuptools";
+
   src = fetchFromGitHub {
     owner = "PyCQA";
     repo = pname;
     rev = version;
-    sha256 = "03z8miyppm2xncrc9yjilwl7z5c5cpv51zha580v64p8sb2l0j7j";
+    sha256 = "sha256-j0WMD2qKDdMaKG2FxrrM/O7zX4waJ1afaRPRv70djkE=";
   };
 
-  propagatedBuildInputs = [ snowballstemmer ];
+  propagatedBuildInputs = [
+    snowballstemmer
+  ];
 
-  checkInputs = [ pytest mock ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkPhase = ''
-    # test_integration.py installs packages via pip
-    py.test --cache-clear -vv src/tests -k "not test_integration"
-  '';
+  disabledTestPaths = [
+    "src/tests/test_integration.py" # runs pip install
+  ];
 
   meta = with lib; {
     description = "Python docstring style checker";
-    homepage = "https://github.com/PyCQA/pydocstyle/";
+    homepage = "https://github.com/PyCQA/pydocstyle";
     license = licenses.mit;
     maintainers = with maintainers; [ dzabraev ];
   };
diff --git a/pkgs/development/python-modules/pyduke-energy/default.nix b/pkgs/development/python-modules/pyduke-energy/default.nix
new file mode 100644
index 0000000000000..aba25f551f22d
--- /dev/null
+++ b/pkgs/development/python-modules/pyduke-energy/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, jsonpickle
+, paho-mqtt
+, pytest-asyncio
+, pytest-timeout
+, pytestCheckHook
+, python-dateutil
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pyduke-energy";
+  version = "1.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "mjmeli";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-bthEWsitnZwK4eyhLXv5RxlOaWyJG1fK0cC4wMEqCbI=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    jsonpickle
+    paho-mqtt
+    python-dateutil
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytest-timeout
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "pyduke_energy"
+  ];
+
+  meta = with lib; {
+    description = "Python module for the Duke Energy API";
+    homepage = "https://github.com/mjmeli/pyduke-energy";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyeclib/default.nix b/pkgs/development/python-modules/pyeclib/default.nix
index 2c4169ea73cac..d55fb416a79ee 100644
--- a/pkgs/development/python-modules/pyeclib/default.nix
+++ b/pkgs/development/python-modules/pyeclib/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, liberasurecode, six }:
+{ lib, stdenv, buildPythonPackage, fetchPypi, liberasurecode, six }:
 
 buildPythonPackage rec {
   pname = "pyeclib";
@@ -13,11 +13,16 @@ buildPythonPackage rec {
     # patch dlopen call
     substituteInPlace src/c/pyeclib_c/pyeclib_c.c \
       --replace "liberasurecode.so" "${liberasurecode}/lib/liberasurecode.so"
+    # python's platform.platform() doesn't return "Darwin" (anymore?)
+    substituteInPlace setup.py \
+      --replace '"Darwin"' '"macOS"'
   '';
 
-  preBuild = ''
-    # required for the custom find_library function in setup.py
-    export LD_LIBRARY_PATH="${lib.makeLibraryPath [ liberasurecode ]}"
+  preBuild = let
+    ldLibraryPathEnvName = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH";
+  in ''
+    # required for the custom _find_library function in setup.py
+    export ${ldLibraryPathEnvName}="${lib.makeLibraryPath [ liberasurecode ]}"
   '';
 
   buildInputs = [ liberasurecode ];
diff --git a/pkgs/development/python-modules/pyecowitt/default.nix b/pkgs/development/python-modules/pyecowitt/default.nix
new file mode 100644
index 0000000000000..b5f4a5fadbacf
--- /dev/null
+++ b/pkgs/development/python-modules/pyecowitt/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pyecowitt";
+  version = "0.21";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "garbled1";
+    repo = pname;
+    rev = version;
+    sha256 = "5VdVo6j2HZXSCWU4NvfWzyS/KJfVb7N1KSMeu8TvWaQ=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # Project thas no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pyecowitt"
+  ];
+
+  meta = with lib; {
+    description = "Python module for the EcoWitt Protocol";
+    homepage = "https://github.com/garbled1/pyecowitt";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyefergy/default.nix b/pkgs/development/python-modules/pyefergy/default.nix
index 9906be5154f4c..20f3fb9f417b8 100644
--- a/pkgs/development/python-modules/pyefergy/default.nix
+++ b/pkgs/development/python-modules/pyefergy/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pyefergy";
-  version = "0.1.4";
+  version = "0.1.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "tkdrob";
     repo = pname;
     rev = version;
-    sha256 = "sha256-X/dWEBg3WG6SmMore5otLL4iIueGUS5KgjCPYoMSNd0=";
+    sha256 = "sha256-8xcKgsZ6buaQdrKD8Qn7jB5IlQ0NkR0nZGuFk+Dd8Q8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyenvisalink/default.nix b/pkgs/development/python-modules/pyenvisalink/default.nix
index 54a552f88fe76..cfef4ee879aa4 100644
--- a/pkgs/development/python-modules/pyenvisalink/default.nix
+++ b/pkgs/development/python-modules/pyenvisalink/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "pyenvisalink";
-  version = "4.1";
+  version = "4.2";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1h30gmmynihmjkd107skk2gpi210b6gfdahwqmydyj5isxrvzmq2";
+    sha256 = "64f128212ba0257ae8e47612891a2dae7de2c155c81326257582d565f53778ad";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyfaidx/default.nix b/pkgs/development/python-modules/pyfaidx/default.nix
index 317691066f47b..a2815c3e1e2d2 100644
--- a/pkgs/development/python-modules/pyfaidx/default.nix
+++ b/pkgs/development/python-modules/pyfaidx/default.nix
@@ -1,24 +1,52 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, nose
+, numpy
+, setuptools-scm
 , six
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pyfaidx";
-  version = "0.6.2";
+  version = "0.6.3.1";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d1258f8d053cba0c90fe329254e8ec59eb28b535b48d9d06e8c7f1d74b8e4531";
+    sha256 = "93adf036a75e08dc9b1dcd59de6a4db2f65a48c603edabe2e499764b6535ed50";
   };
 
-  propagatedBuildInputs = [ six ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    six
+  ];
+
+  checkInputs = [
+    nose
+    numpy
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # PyPI releases don't ship all the needed files for the tests
+    "test_index_zero_length"
+    "test_fetch_zero_length"
+    "test_read_back_index"
+  ];
+
+  pythonImportsCheck = [
+    "pyfaidx"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/mdshw5/pyfaidx";
     description = "Python classes for indexing, retrieval, and in-place modification of FASTA files using a samtools compatible index";
     license = licenses.bsd3;
-    maintainers = [ maintainers.jbedo ];
+    maintainers = with maintainers; [ jbedo ];
   };
 }
diff --git a/pkgs/development/python-modules/pyfakefs/default.nix b/pkgs/development/python-modules/pyfakefs/default.nix
index 217e552aa0e12..eb5eb993ef485 100644
--- a/pkgs/development/python-modules/pyfakefs/default.nix
+++ b/pkgs/development/python-modules/pyfakefs/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "4.5.1";
+  version = "4.5.3";
   pname = "pyfakefs";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "002a065dcbf59c2caa039e4fc4ba01d1d636aa63ee9c794d4c9fc01f0e2d6dc0";
+    sha256 = "f49db689c1d5db6172131479ca77bd474ba2cb886c869b9867fb89cdab2df397";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyfronius/default.nix b/pkgs/development/python-modules/pyfronius/default.nix
index c6a68401342d1..b78aeb19545ee 100644
--- a/pkgs/development/python-modules/pyfronius/default.nix
+++ b/pkgs/development/python-modules/pyfronius/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pyfronius";
-  version = "0.7.0";
+  version = "0.7.1";
 
   disabled = pythonOlder "3.6";
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "nielstron";
     repo = pname;
     rev = "release-${version}";
-    sha256 = "1jp9vsllvzfnrkzmln2sp1ggr4pwaj47744n2ijz1wsf8v38nw2j";
+    sha256 = "1xwx0c1dp2374bwigzwhvcj4577vrxyhn6i5zv73k9ydc7w1xgyz";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pygetwindow/default.nix b/pkgs/development/python-modules/pygetwindow/default.nix
new file mode 100644
index 0000000000000..3ca4621157684
--- /dev/null
+++ b/pkgs/development/python-modules/pygetwindow/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyrect
+}:
+buildPythonPackage rec {
+  pname = "PyGetWindow";
+  version = "0.0.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-F4lDVefSswXNgy1xdwg4QBfBaYqQziT29/vwJC3Qpog=";
+  };
+
+  doCheck = false;
+  # This lib officially only works completely on Windows and partially on MacOS but pyautogui requires it
+  # pythonImportsCheck = [ "pygetwindow" ];
+
+  propagatedBuildInputs = [
+    pyrect
+  ];
+
+  meta = with lib; {
+    description = "A simple, cross-platform module for obtaining GUI information on applications' windows.";
+    homepage = "https://github.com/asweigart/PyGetWindow";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ lucasew ];
+  };
+}
diff --git a/pkgs/development/python-modules/pygit2/default.nix b/pkgs/development/python-modules/pygit2/default.nix
index 27bfcff16d812..ab4ca1efdc152 100644
--- a/pkgs/development/python-modules/pygit2/default.nix
+++ b/pkgs/development/python-modules/pygit2/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pygit2";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "602bffa8b4dbc185a6c7f36515563b600e0ee9002583c97ae3150eedaf340edb";
+    sha256 = "d7faa29558436decc2e78110f38d6677eb366b683ba5cdc2803d47195711165d";
   };
 
   preConfigure = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/python-modules/pygogo/default.nix b/pkgs/development/python-modules/pygogo/default.nix
index 8af5e856c41f6..8cee037bb1064 100644
--- a/pkgs/development/python-modules/pygogo/default.nix
+++ b/pkgs/development/python-modules/pygogo/default.nix
@@ -10,6 +10,7 @@
 buildPythonPackage rec {
   pname = "pygogo";
   version = "0.13.2";
+  format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
@@ -20,14 +21,31 @@ buildPythonPackage rec {
     sha256 = "19rdf4sjrm5lp1vq1bki21a9lrkzz8sgrfwgjdkq4sgy90hn1jn9";
   };
 
-  nativeBuildInputs = [ pkutils ];
+  nativeBuildInputs = [
+    pkutils
+  ];
 
-  checkInputs = [ nose ];
-  checkPhase = "nosetests";
-  pythonImportsCheck = [ "pygogo" ];
+  checkInputs = [
+    nose
+  ];
+
+  postPatch = ''
+    substituteInPlace dev-requirements.txt \
+      --replace "pkutils>=1.0.0,<2.0.0" "pkutils>=1.0.0"
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+    nosetests
+    runHook postCheck
+  '';
+
+  pythonImportsCheck = [
+    "pygogo"
+  ];
 
   meta = with lib; {
-    description = "A Python logging library with super powers";
+    description = "Python logging library";
     homepage = "https://github.com/reubano/pygogo/";
     license = licenses.mit;
     maintainers = with maintainers; [ drewrisinger ];
diff --git a/pkgs/development/python-modules/pyhaversion/default.nix b/pkgs/development/python-modules/pyhaversion/default.nix
index 36f4f434469e0..6fe9df5196523 100644
--- a/pkgs/development/python-modules/pyhaversion/default.nix
+++ b/pkgs/development/python-modules/pyhaversion/default.nix
@@ -1,7 +1,6 @@
 { lib
 , aiohttp
 , aresponses
-, async-timeout
 , awesomeversion
 , buildPythonPackage
 , fetchFromGitHub
@@ -12,21 +11,20 @@
 
 buildPythonPackage rec {
   pname = "pyhaversion";
-  version = "21.10.0";
+  version = "21.11.1";
+  format = "setuptools";
 
-  # Only 3.8.0 and beyond are supported
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "ludeeus";
     repo = pname;
     rev = version;
-    sha256 = "sha256-EvVkewFgkfYL6BjmJ/IWeuCyR+0R0ZxI35i9sxKcqxo=";
+    sha256 = "sha256-wh6NJRDgOrEHYEN3QlC4lOZHPnPeiPCJFF1xLoixQ14=";
   };
 
   propagatedBuildInputs = [
     aiohttp
-    async-timeout
     awesomeversion
   ];
 
@@ -36,7 +34,16 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "pyhaversion" ];
+  postPatch = ''
+    # Upstream doesn't set a version for the tagged releases
+    substituteInPlace setup.py \
+      --replace "main" ${version}
+  '';
+
+
+  pythonImportsCheck = [
+    "pyhaversion"
+  ];
 
   meta = with lib; {
     description = "Python module to the newest version number of Home Assistant";
diff --git a/pkgs/development/python-modules/pyhomeworks/default.nix b/pkgs/development/python-modules/pyhomeworks/default.nix
new file mode 100644
index 0000000000000..085107c4ad26a
--- /dev/null
+++ b/pkgs/development/python-modules/pyhomeworks/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pyhomeworks";
+  version = "0.0.6";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "Eqbm8274B2hBuF+mREe8lqGhpzZExPJ29jzvwB5RNR8=";
+  };
+
+  # Project has no real tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pyhomeworks"
+  ];
+
+  meta = with lib; {
+    description = "Python interface to Lutron Homeworks Series 4/8";
+    homepage = "https://github.com/dubnom/pyhomeworks";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyisy/default.nix b/pkgs/development/python-modules/pyisy/default.nix
index 046cfdae9af17..48274e6b4e822 100644
--- a/pkgs/development/python-modules/pyisy/default.nix
+++ b/pkgs/development/python-modules/pyisy/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "pyisy";
-  version = "3.0.0";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     owner = "automicus";
     repo = "PyISY";
     rev = "v${version}";
-    sha256 = "1bxp13m83qm1n1ddyw6mdz0ijfksjg4ki85w4n8i597f3xazm8q4";
+    sha256 = "1mj9na64nq0ls8d9x3304ai7lixaglpr646p3m2a4s5qlmm4il3m";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyjwt/1.nix b/pkgs/development/python-modules/pyjwt/1.nix
index 285e5e2e7600d..9978302d1cc44 100644
--- a/pkgs/development/python-modules/pyjwt/1.nix
+++ b/pkgs/development/python-modules/pyjwt/1.nix
@@ -2,34 +2,40 @@
 , buildPythonPackage
 , fetchPypi
 , cryptography
+, ecdsa
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
-  pname = "PyJWT";
+  pname = "pyjwt";
   version = "1.7.1";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "15hflax5qkw1v6nssk1r0wkj83jgghskcmn875m3wgvpzdvajncd";
+    pname = "PyJWT";
+    inherit version;
+    sha256 = "8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96";
   };
 
   postPatch = ''
-    substituteInPlace setup.py --replace "pytest>=4.0.1,<5.0.0" "pytest"
-
-    # drop coverage
-    sed -i '/pytest-cov/d' setup.py
-    sed -i '/--cov/d' setup.cfg
+    sed -i '/^addopts/d' setup.cfg
   '';
 
   propagatedBuildInputs = [
     cryptography
+    ecdsa
   ];
 
   checkInputs = [
     pytestCheckHook
   ];
 
+  disabledTests = [
+    "test_ec_verify_should_return_false_if_signature_invalid"
+  ];
+
+  pythonImportsCheck = [ "jwt" ];
+
   meta = with lib; {
     description = "JSON Web Token implementation in Python";
     homepage = "https://github.com/jpadilla/pyjwt";
diff --git a/pkgs/development/python-modules/pykakasi/default.nix b/pkgs/development/python-modules/pykakasi/default.nix
new file mode 100644
index 0000000000000..13f5466b8a103
--- /dev/null
+++ b/pkgs/development/python-modules/pykakasi/default.nix
@@ -0,0 +1,62 @@
+{ lib
+, buildPythonPackage
+, deprecated
+, fetchFromGitHub
+, importlib-metadata
+, jaconv
+, pytest-benchmark
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "pykakasi";
+  version = "2.2.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "miurahr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "ivlenHPD00bxc0c9G368tfTEckOC3vqDB5kMQzHXbVM=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    jaconv
+    deprecated
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
+
+  checkInputs = [
+    pytest-benchmark
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # We don't care about benchmarks
+    "test_benchmark"
+    "pytest_benchmark_update_machine_info"
+    "pytest_benchmark_update_json"
+  ];
+
+  pythonImportsCheck = [
+    "pykakasi"
+  ];
+
+  meta = with lib; {
+    description = "Python converter for Japanese Kana-kanji sentences into Kana-Roman";
+    homepage = "https://github.com/miurahr/pykakasi";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pykeyatome/default.nix b/pkgs/development/python-modules/pykeyatome/default.nix
new file mode 100644
index 0000000000000..b27ee6b2ecec5
--- /dev/null
+++ b/pkgs/development/python-modules/pykeyatome/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, buildPythonPackage
+, fake-useragent
+, fetchFromGitHub
+, pytest-aiohttp
+, pytestCheckHook
+, pythonOlder
+, requests
+, requests-mock
+, responses
+, simplejson
+}:
+
+buildPythonPackage rec {
+  pname = "pykeyatome";
+  version = "1.3.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "jugla";
+    repo = "pyKeyAtome";
+    rev = "V${version}";
+    sha256 = "1brcfgqj0bana6yii4083kppz822fgk9xf4mg141b0zfvx2gyjw9";
+  };
+
+  propagatedBuildInputs = [
+    fake-useragent
+    requests
+    simplejson
+  ];
+
+  checkInputs = [
+    pytest-aiohttp
+    pytestCheckHook
+    requests-mock
+    responses
+  ];
+
+  disabledTests = [
+    # Tests require network access
+    "test_consumption"
+    "test_get_live"
+    "test_login"
+    "test_relog_after_session_down"
+  ];
+
+  pythonImportsCheck = [
+    "pykeyatome"
+  ];
+
+  meta = with lib; {
+    description = "Python module to get data from Atome Key";
+    homepage = "hhttps://github.com/jugla/pyKeyAtome";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pykrakenapi/default.nix b/pkgs/development/python-modules/pykrakenapi/default.nix
index 2a569eadd82cc..6c91b0c95dc07 100644
--- a/pkgs/development/python-modules/pykrakenapi/default.nix
+++ b/pkgs/development/python-modules/pykrakenapi/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "pykrakenapi";
-  version = "0.2.2";
+  version = "0.2.3";
 
   src = fetchFromGitHub {
     owner = "dominiktraxl";
     repo = "pykrakenapi";
     rev = "v${version}";
-    sha256 = "047v0pkkwsd219lwc3hamdaz1nngxr2nbb7hh8n4xkyicm2axha6";
+    sha256 = "0yvhgk5wyklwqd67hfajnd7ims79h4h89pp65xb3x5mcmdcfz4ss";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pykulersky/default.nix b/pkgs/development/python-modules/pykulersky/default.nix
index 1afa50c9be3f8..520f1fea2698b 100644
--- a/pkgs/development/python-modules/pykulersky/default.nix
+++ b/pkgs/development/python-modules/pykulersky/default.nix
@@ -11,14 +11,16 @@
 
 buildPythonPackage rec {
   pname = "pykulersky";
-  version = "0.5.2";
+  version = "0.5.3";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "emlove";
     repo = pname;
     rev = version;
-    sha256 = "1fzfixnl28rny7c3wr6gcdpqhyrz7z2aqq6qfwkxnkq2kqdbpmmg";
+    sha256 = "sha256-l3obfs5zo5DqArsDml8EZ+/uzab35Jjsuzw6U1XFJ3k=";
   };
 
   propagatedBuildInputs = [
@@ -32,7 +34,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "pykulersky" ];
+  pythonImportsCheck = [
+    "pykulersky"
+  ];
 
   meta = with lib; {
     description = "Python module to control Brightech Kuler Sky Bluetooth LED devices";
diff --git a/pkgs/development/python-modules/pylama/default.nix b/pkgs/development/python-modules/pylama/default.nix
index 1aa96dfe464db..3f93aef0a3f7b 100644
--- a/pkgs/development/python-modules/pylama/default.nix
+++ b/pkgs/development/python-modules/pylama/default.nix
@@ -1,34 +1,68 @@
-{ lib, buildPythonPackage, fetchPypi
-, eradicate, mccabe, pycodestyle, pydocstyle, pyflakes
-, pytest, ipdb }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, substituteAll
+, git
+, eradicate
+, mccabe
+, mypy
+, pycodestyle
+, pydocstyle
+, pyflakes
+, vulture
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "pylama";
-  version = "7.7.1";
+  version = "8.3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "9bae53ef9c1a431371d6a8dca406816a60d547147b60a4934721898f553b7d8f";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    name = "${pname}-${version}-source";
+    owner = "klen";
+    repo = "pylama";
+    rev = version;
+    hash = "sha256-KU/G+2Fm4G/dUuNhhk8xM0Y8+7YOUUgREONM8CQGugw=";
   };
 
+  patches = [
+    (substituteAll {
+      src = ./paths.patch;
+      git = "${lib.getBin git}/bin/git";
+    })
+  ];
+
   propagatedBuildInputs = [
     eradicate
     mccabe
+    mypy
     pycodestyle
     pydocstyle
     pyflakes
+    vulture
   ];
 
-  checkInputs = [ pytest ipdb ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  # tries to mess with the file system
-  doCheck = false;
+  disabledTests = [
+    "test_pylint" # infinite recursion
+    "test_quotes" # FIXME package pylama-quotes
+    "test_radon" # FIXME package radon
+    "test_sort"
+  ];
+
+  pythonImportsCheck = [
+    "pylama.main"
+  ];
 
   meta = with lib; {
     description = "Code audit tool for python";
     homepage = "https://github.com/klen/pylama";
-    # ambiguous license declarations: https://github.com/klen/pylama/issues/64
-    license = [ licenses.lgpl3 ];
+    license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/pkgs/development/python-modules/pylama/paths.patch b/pkgs/development/python-modules/pylama/paths.patch
new file mode 100644
index 0000000000000..ab6a4719f354e
--- /dev/null
+++ b/pkgs/development/python-modules/pylama/paths.patch
@@ -0,0 +1,13 @@
+diff --git a/pylama/hook.py b/pylama/hook.py
+index 029c9dc..9f1a9b9 100644
+--- a/pylama/hook.py
++++ b/pylama/hook.py
+@@ -26,7 +26,7 @@ def run(command: str) -> Tuple[int, List[bytes], List[bytes]]:
+ 
+ def git_hook(error=True):
+     """Run pylama after git commit."""
+-    _, files_modified, _ = run("git diff-index --cached --name-only HEAD")
++    _, files_modified, _ = run("@git@ diff-index --cached --name-only HEAD")
+ 
+     options = parse_options()
+     setup_logger(options)
diff --git a/pkgs/development/python-modules/pylast/default.nix b/pkgs/development/python-modules/pylast/default.nix
index 0306008aa7857..098cdd33bfca7 100644
--- a/pkgs/development/python-modules/pylast/default.nix
+++ b/pkgs/development/python-modules/pylast/default.nix
@@ -3,27 +3,32 @@
 , certifi
 , fetchPypi
 , flaky
+, importlib-metadata
 , pytestCheckHook
 , pythonOlder
 , setuptools-scm
-, six
 }:
 
 buildPythonPackage rec {
   pname = "pylast";
-  version = "4.3.0";
+  version = "4.4.0";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "71fd876e3753009bd10ea55b3f8f7c5d68591ee18a4127d257fc4a418010aa5c";
+    sha256 = "sha256-2m6+pQYBmvVxlBw1yLSAKr3kZ5WS1S0TZ1ZQ3ER+bCk=";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
 
   propagatedBuildInputs = [
     certifi
-    six
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
   ];
 
   checkInputs = [
@@ -31,7 +36,9 @@ buildPythonPackage rec {
     flaky
   ];
 
-  pythonImportsCheck = [ "pylast" ];
+  pythonImportsCheck = [
+    "pylast"
+  ];
 
   meta = with lib; {
     description = "Python interface to last.fm (and compatibles)";
diff --git a/pkgs/development/python-modules/pylint-django/default.nix b/pkgs/development/python-modules/pylint-django/default.nix
index 701163bb3d0c2..c93c8d4207fe8 100644
--- a/pkgs/development/python-modules/pylint-django/default.nix
+++ b/pkgs/development/python-modules/pylint-django/default.nix
@@ -1,16 +1,12 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
+, coverage
+, django
+, factory_boy
 , fetchFromGitHub
 , isPy3k
-, lib
-
-# pythonPackages
-, django
 , pylint-plugin-utils
-
-# pythonPackages for checkInputs
-, coverage
-, factory_boy
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -30,17 +26,26 @@ buildPythonPackage rec {
     pylint-plugin-utils
   ];
 
-  checkInputs = [ coverage factory_boy pytest ];
+  checkInputs = [
+    coverage
+    factory_boy
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Skip outdated tests and the one with a missing dependency (django_tables2)
+    "external_django_tables2_noerror_meta_class"
+    "external_factory_boy_noerror"
+    "func_noerror_foreign_key_attributes"
+    "func_noerror_foreign_key_key_cls_unbound"
+  ];
 
-  # Check command taken from scripts/test.sh
-  # Skip test external_django_tables2_noerror_meta_class:
-  # requires an unpackaged django_tables2
-  checkPhase = ''
-      python pylint_django/tests/test_func.py -v -k "not tables2"
-  '';
+  pythonImportsCheck = [
+    "pylint_django"
+  ];
 
   meta = with lib; {
-    description = "A Pylint plugin to analyze Django applications";
+    description = "Pylint plugin to analyze Django applications";
     homepage = "https://github.com/PyCQA/pylint-django";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ kamadorueda ];
diff --git a/pkgs/development/python-modules/pylint/default.nix b/pkgs/development/python-modules/pylint/default.nix
index 4bf6c4ad93e8a..b52cb3e2f95cb 100644
--- a/pkgs/development/python-modules/pylint/default.nix
+++ b/pkgs/development/python-modules/pylint/default.nix
@@ -6,6 +6,7 @@
 , installShellFiles
 , astroid
 , isort
+, GitPython
 , mccabe
 , platformdirs
 , toml
@@ -16,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "pylint";
-  version = "2.11.1";
+  version = "2.12.2";
 
   disabled = pythonOlder "3.6";
 
@@ -24,7 +25,7 @@ buildPythonPackage rec {
     owner = "PyCQA";
     repo = pname;
     rev = "v${version}";
-    sha256 = "08kc9139v1sd0vhna0rqikyds0xq8hxv0j9707n2i1nbv2z6xhsv";
+    sha256 = "sha256-seBYBTB+8PLIovqxVohkoQEfDAZI1fehLgXuHeTx9Wo=";
   };
 
   nativeBuildInputs = [
@@ -46,6 +47,7 @@ buildPythonPackage rec {
   '';
 
   checkInputs = [
+    GitPython
     pytest-benchmark
     pytest-xdist
     pytestCheckHook
@@ -56,6 +58,7 @@ buildPythonPackage rec {
   # calls executable in one of the tests
   preCheck = ''
     export PATH=$PATH:$out/bin
+    export HOME=$TEMPDIR
   '';
 
   pytestFlagsArray = [
diff --git a/pkgs/development/python-modules/pylsp-mypy/default.nix b/pkgs/development/python-modules/pylsp-mypy/default.nix
index a7d13bb32a2f7..e1d7ddff298df 100644
--- a/pkgs/development/python-modules/pylsp-mypy/default.nix
+++ b/pkgs/development/python-modules/pylsp-mypy/default.nix
@@ -20,10 +20,16 @@ buildPythonPackage rec {
     sha256 = "1d119csj1k5m9j0f7wdvpvnd02h548css6ybxqah92nk2v0rjscr";
   };
 
+  disabledTests = [
+    "test_multiple_workspaces"
+  ];
+
   checkInputs = [ pytestCheckHook mock ];
 
   propagatedBuildInputs = [ mypy python-lsp-server ];
 
+  pythonImportsCheck = [ "pylsp_mypy" ];
+
   meta = with lib; {
     homepage = "https://github.com/Richardk2n/pylsp-mypy";
     description = "Mypy plugin for the Python LSP Server";
diff --git a/pkgs/development/python-modules/pymatgen/default.nix b/pkgs/development/python-modules/pymatgen/default.nix
index f4eb29bedc0be..5354efacb4dca 100644
--- a/pkgs/development/python-modules/pymatgen/default.nix
+++ b/pkgs/development/python-modules/pymatgen/default.nix
@@ -21,11 +21,11 @@
 
 buildPythonPackage rec {
   pname = "pymatgen";
-  version = "2022.0.14";
+  version = "2022.0.17";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03d24ebafc21becab376c26de09437dd5cfb7bda7099046194e95b4c9fa35209";
+    sha256 = "7103b89b889bb940709eea53226d3c9298584ad9ab42ab8c8f9de3872d7d969b";
   };
 
   nativeBuildInputs = [ glibcLocales ];
diff --git a/pkgs/development/python-modules/pymavlink/default.nix b/pkgs/development/python-modules/pymavlink/default.nix
index 50dc87a926f2a..8e7439a80d486 100644
--- a/pkgs/development/python-modules/pymavlink/default.nix
+++ b/pkgs/development/python-modules/pymavlink/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pymavlink";
-  version = "2.4.17";
+  version = "2.4.19";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "84e2af4d8099afd37c5d887261a168e7bde4ec2354f12f65c72dad1a4cd8f21d";
+    sha256 = "08ppwlsnrvzkpi4fn14d4d4grzx2bmsd0m9369q3f9hw48fgf645";
   };
 
   propagatedBuildInputs = [ future lxml ];
diff --git a/pkgs/development/python-modules/pymongo/default.nix b/pkgs/development/python-modules/pymongo/default.nix
index 0d18175d7e6df..6b627ca672ff0 100644
--- a/pkgs/development/python-modules/pymongo/default.nix
+++ b/pkgs/development/python-modules/pymongo/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "pymongo";
-  version = "3.12.0";
+  version = "3.12.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-uI0XQhWbyToHhzP5eJ9WPO8m9eNw66gQR2pxqpjl+8I=";
+    sha256 = "704879b6a54c45ad76cea7c6789c1ae7185050acea7afd15b58318fa1932ed45";
   };
 
   # Tests call a running mongodb instance
diff --git a/pkgs/development/python-modules/pympler/default.nix b/pkgs/development/python-modules/pympler/default.nix
index 856458bf043f8..4f132ad2c8274 100644
--- a/pkgs/development/python-modules/pympler/default.nix
+++ b/pkgs/development/python-modules/pympler/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "Pympler";
-  version = "0.9";
+  version = "1.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f2cbe7df622117af890249f2dea884eb702108a12d729d264b7c5983a6e06e47";
+    sha256 = "993f1a3599ca3f4fcd7160c7545ad06310c9e12f70174ae7ae8d4e25f6c5d3fa";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pymsgbox/default.nix b/pkgs/development/python-modules/pymsgbox/default.nix
index 84ab3dcab1bf1..760a339b90af8 100644
--- a/pkgs/development/python-modules/pymsgbox/default.nix
+++ b/pkgs/development/python-modules/pymsgbox/default.nix
@@ -2,18 +2,18 @@
 
 buildPythonPackage rec {
   pname = "PyMsgBox";
-  version = "1.0.6";
+  version = "1.0.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0kmd00w7p6maiyqpqqb2j8m6v2gh9c0h5i198pa02bc1c1m1321q";
-    extension = "zip";
+    sha256 = "sha256-IZQifei/96PW2lQYSHBaFV3LsqBu4SDZ8oCh1/USY/8=";
   };
 
   propagatedBuildInputs = [ tkinter ];
 
   # Finding tests fails
   doCheck = false;
+  pythonImportsCheck = [ "pymsgbox" ];
 
   meta = with lib; {
     description = "A simple, cross-platform, pure Python module for JavaScript-like message boxes";
diff --git a/pkgs/development/python-modules/pymunk/default.nix b/pkgs/development/python-modules/pymunk/default.nix
index 4d8dbee2c2e7d..c98fb6dddcf8d 100644
--- a/pkgs/development/python-modules/pymunk/default.nix
+++ b/pkgs/development/python-modules/pymunk/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "pymunk";
-  version = "6.2.0";
+  version = "6.2.1";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1r3jfjg4cpdilrmlyml514hqmjgabyrrs4cvmdr56rylg1sp4gf3";
+    sha256 = "18ae0f83ec2dc20892b98c84127ce9149ab40fa3c3120097377e1506884b27b8";
   };
 
   propagatedBuildInputs = [ cffi ];
diff --git a/pkgs/development/python-modules/pynest2d/default.nix b/pkgs/development/python-modules/pynest2d/default.nix
index 1f338806a18f2..9be7072a89fb3 100644
--- a/pkgs/development/python-modules/pynest2d/default.nix
+++ b/pkgs/development/python-modules/pynest2d/default.nix
@@ -2,7 +2,7 @@
 , libnest2d, sip_4, clipper }:
 
 buildPythonPackage rec {
-  version = "4.10.0";
+  version = "4.12.0";
   pname = "pynest2d";
   format = "other";
 
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     owner = "Ultimaker";
     repo = "pynest2d";
     rev = version;
-    sha256 = "03aj0whxj9rs9nz3idld7w4vpmnr6vr40vpwmzcf5w2pi2n4z4lk";
+    sha256 = "sha256-QQdTDhO4i9NVhegGTmdEQSNv3gooaZzTX/Rv86h3GEo=";
   };
 
   propagatedBuildInputs = [ libnest2d sip_4 clipper ];
diff --git a/pkgs/development/python-modules/pynetbox/default.nix b/pkgs/development/python-modules/pynetbox/default.nix
index c59cc21c15ca2..eeb6ad0179841 100644
--- a/pkgs/development/python-modules/pynetbox/default.nix
+++ b/pkgs/development/python-modules/pynetbox/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "pynetbox";
-  version = "6.2.0";
+  version = "6.4.1";
 
   src = fetchFromGitHub {
     owner = "netbox-community";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1j91m5g4qxkf59m506aw6vfhv1db1z393924qq3zbyg3wqwq1rxx";
+    sha256 = "08k2zxfz23gzbk49r3hmh6r3m5rgx1gk7w83qxi1v4gbm4wr0v9m";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/pynetdicom/default.nix b/pkgs/development/python-modules/pynetdicom/default.nix
index bd27ff7fde6c4..3afa8fcf86519 100644
--- a/pkgs/development/python-modules/pynetdicom/default.nix
+++ b/pkgs/development/python-modules/pynetdicom/default.nix
@@ -6,17 +6,21 @@
 , pyfakefs
 , pytestCheckHook
 , sqlalchemy
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pynetdicom";
-  version = "1.5.7";
+  version = "2.0.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "pydicom";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0wr6nh0xrhzwf05gnf3dwg5r3lhn9nfwch3l16zkbj6fli871brc";
+    sha256 = "sha256-28SoOdS6sAj3KrfJT8PR2k8XLEY2zh0k9w1eq1y7V8M=";
   };
 
   propagatedBuildInputs = [
@@ -33,6 +37,7 @@ buildPythonPackage rec {
     # Some tests needs network capabilities
     "test_str_types_empty"
     "test_associate_reject"
+    "TestAEGoodAssociation"
     "TestEchoSCP"
     "TestEchoSCPCLI"
     "TestFindSCP"
@@ -50,7 +55,9 @@ buildPythonPackage rec {
     "TestState"
   ];
 
-  pythonImportsCheck = [ "pynetdicom" ];
+  pythonImportsCheck = [
+    "pynetdicom"
+  ];
 
   meta = with lib; {
     description = "Python implementation of the DICOM networking protocol";
diff --git a/pkgs/development/python-modules/pynput/default.nix b/pkgs/development/python-modules/pynput/default.nix
index a700a7d1fd6de..7bfa96870ead4 100644
--- a/pkgs/development/python-modules/pynput/default.nix
+++ b/pkgs/development/python-modules/pynput/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pynput";
-  version = "1.7.4";
+  version = "1.7.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16fecc4d1e53a28fb7c669c79e189c3f2cde14a08d6b457c3da07075c82f3b4c";
+    sha256 = "e6b7926dd162a883ff16f38e01720a930bbf2509146c9f1cdcecddd25288fb6e";
   };
 
   nativeBuildInputs = [ sphinx ];
diff --git a/pkgs/development/python-modules/pynvml/default.nix b/pkgs/development/python-modules/pynvml/default.nix
index 59698fa187674..63d445e0923fc 100644
--- a/pkgs/development/python-modules/pynvml/default.nix
+++ b/pkgs/development/python-modules/pynvml/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "pynvml";
-  version = "11.0.0";
+  version = "11.4.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-1fxKItNVtAw0HWugqoiKLU0iUxd9JDkA+EAbfmyssbs=";
+    sha256 = "b2e4a33b80569d093b513f5804db0c7f40cfc86f15a013ae7a8e99c5e175d5dd";
   };
 
   propagatedBuildInputs = [ cudatoolkit ];
diff --git a/pkgs/development/python-modules/pyoctoprintapi/default.nix b/pkgs/development/python-modules/pyoctoprintapi/default.nix
new file mode 100644
index 0000000000000..323d2c092f8dd
--- /dev/null
+++ b/pkgs/development/python-modules/pyoctoprintapi/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+
+# propagated
+, aiohttp
+
+# tests
+, pytest-asyncio
+, pytestCheckHook
+}:
+
+let
+  pname = "pyoctoprintapi";
+  version = "0.1.7";
+in
+buildPythonPackage {
+  inherit pname version;
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "rfleming71";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-XAMHQ7n03e10hFcPIUqyCDlRk2uO8dX8Iq0mdY7wRGE=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  pythonImportsCheck = [
+    "pyoctoprintapi"
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Simple async wrapper around the Octoprint API";
+    homepage = "https://github.com/rfleming71/pyoctoprintapi";
+    license = licenses.mit;
+    maintainers= with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyopencl/default.nix b/pkgs/development/python-modules/pyopencl/default.nix
index c5c7c6b2fb746..d657efd707f89 100644
--- a/pkgs/development/python-modules/pyopencl/default.nix
+++ b/pkgs/development/python-modules/pyopencl/default.nix
@@ -21,7 +21,7 @@ let
     if stdenv.isDarwin then [ mesa_drivers.dev ] else [ ocl-icd ];
 in buildPythonPackage rec {
   pname = "pyopencl";
-  version = "2021.2.9";
+  version = "2021.2.10";
 
   checkInputs = [ pytest ];
   buildInputs = [ opencl-headers pybind11 ] ++ os-specific-buildInputs;
@@ -30,7 +30,7 @@ in buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "51425e65ec49c738eefe21b1eeb1f39245b01cc0ddfd495fbe1f8df33dbc6c9e";
+    sha256 = "75a1f202741bace9606a8680bbbfac69bf8a73d4e7511fb1a6ce3e48185996ae";
   };
 
   # py.test is not needed during runtime, so remove it from `install_requires`
diff --git a/pkgs/development/python-modules/pypandoc/default.nix b/pkgs/development/python-modules/pypandoc/default.nix
index ecb87d951b312..cd7a322a2aef9 100644
--- a/pkgs/development/python-modules/pypandoc/default.nix
+++ b/pkgs/development/python-modules/pypandoc/default.nix
@@ -1,16 +1,14 @@
-{ lib, substituteAll, buildPythonPackage, fetchFromGitHub
+{ lib, substituteAll, buildPythonPackage, fetchPypi
 , pandoc, texlive
 }:
 
 buildPythonPackage rec {
   pname = "pypandoc";
-  version = "1.6.4";
+  version = "1.7.2";
 
-  src = fetchFromGitHub {
-    owner = "NicklasTegner";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0rssjig3nwdi4qvsjq7v7k8jyv6l9szfl5dp1a8s54c4j4dw37nh";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1wk8jxnysb7sa55zhxx5brylv00ivamqbk1b4lbzi58ziij08p03";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/pyperclip/default.nix b/pkgs/development/python-modules/pyperclip/default.nix
index c04cc9eec3464..127301752d657 100644
--- a/pkgs/development/python-modules/pyperclip/default.nix
+++ b/pkgs/development/python-modules/pyperclip/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, stdenv
+, python
+}:
 
 buildPythonPackage rec {
   version = "1.8.2";
@@ -9,11 +14,19 @@ buildPythonPackage rec {
     sha256 = "105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57";
   };
 
-  doCheck = false;
+  # No such file or directory: 'pbcopy'
+  doCheck = !stdenv.isDarwin;
+
+  checkPhase = ''
+    ${python.interpreter} tests/test_pyperclip.py
+  '';
+
+  pythonImportsCheck = [ "pyperclip" ];
 
   meta = with lib; {
     homepage = "https://github.com/asweigart/pyperclip";
-    license = licenses.bsdOriginal;
+    license = licenses.bsd3;
     description = "Cross-platform clipboard module";
+    maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/pkgs/development/python-modules/pypoolstation/default.nix b/pkgs/development/python-modules/pypoolstation/default.nix
index b49599cfda10a..f1fc1e94e51cf 100644
--- a/pkgs/development/python-modules/pypoolstation/default.nix
+++ b/pkgs/development/python-modules/pypoolstation/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pypoolstation";
-  version = "0.4.0";
+  version = "0.4.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PyPoolstation";
     inherit version;
-    sha256 = "0qacrjv3qybgx052i8jqs4il3k2g0cdhjcn2lqapv87iqyp287k0";
+    sha256 = "sha256-GsEYlaoitHS2cOBHtgwhlREcps4q2ObnWywvCSak0NY=";
   };
 
   nativeBuildInputs = [
@@ -30,7 +30,9 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [ "pypoolstation" ];
+  pythonImportsCheck = [
+    "pypoolstation"
+  ];
 
   meta = with lib; {
     description = "Python library to interact the the Poolstation platform";
diff --git a/pkgs/development/python-modules/pyramid_mako/default.nix b/pkgs/development/python-modules/pyramid_mako/default.nix
index 9acffbde43330..a4de687eed249 100644
--- a/pkgs/development/python-modules/pyramid_mako/default.nix
+++ b/pkgs/development/python-modules/pyramid_mako/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , webtest
 , pyramid
 , Mako
@@ -15,6 +16,15 @@ buildPythonPackage rec {
     sha256 = "0066c863441f1c3ddea60cee1ccc50d00a91a317a8052ca44131da1a12a840e2";
   };
 
+  patches = [
+    # Fix tests with pyramid >= 2.0
+    # https://github.com/Pylons/pyramid_mako/pull/54
+    (fetchpatch {
+      url = "https://github.com/Pylons/pyramid_mako/commit/c0f9e7e0146a7f94e35a9401b1519ac8b7765f5b.patch";
+      sha256 = "15swfm0a07bdl32s85426rmjh72jwfasjcrl849ppg035z75q9fx";
+    })
+  ];
+
   buildInputs = [ webtest ];
   propagatedBuildInputs = [ pyramid Mako ];
 
@@ -23,8 +33,5 @@ buildPythonPackage rec {
     description = "Mako template bindings for the Pyramid web framework";
     license = licenses.bsd0;
     maintainers = with maintainers; [];
-    # broken on pyramid>=2.0
-    # https://github.com/Pylons/pyramid_mako/issues/53
-    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/pyrect/default.nix b/pkgs/development/python-modules/pyrect/default.nix
new file mode 100644
index 0000000000000..e8041786b07b9
--- /dev/null
+++ b/pkgs/development/python-modules/pyrect/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, tox
+, pytestCheckHook
+, pygame
+}:
+buildPythonPackage rec {
+  pname = "PyRect";
+  version = "0.1.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-Oy+nNTzjKhGqawoVSVlo0qdjQjyJR64ki5LAN9704gI=";
+  };
+
+  checkInputs = [ tox pytestCheckHook pygame ];
+  pythonImportsCheck = [ "pyrect" ];
+  preCheck = ''
+    export LC_ALL="en_US.UTF-8"
+  '';
+
+  meta = with lib; {
+    description = "Simple module with a Rect class for Pygame-like rectangular areas";
+    homepage = "https://github.com/asweigart/pyrect";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ lucasew ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyro-ppl/default.nix b/pkgs/development/python-modules/pyro-ppl/default.nix
index c8a9775dd24e7..f810cf6f37b69 100644
--- a/pkgs/development/python-modules/pyro-ppl/default.nix
+++ b/pkgs/development/python-modules/pyro-ppl/default.nix
@@ -2,12 +2,12 @@
 , graphviz, networkx, six, opt-einsum, tqdm, pyro-api }:
 
 buildPythonPackage rec {
-  version = "1.7.0";
+  version = "1.8.0";
   pname = "pyro-ppl";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "a8ec6968fdfa34f140584b266099238f1ffeacbbaab3775de5c94c0e685d018a";
+    sha256 = "68e4ea30f219227dd88e55de2550d3f8c20a20adbdb67ad1e13b50868bb2ac0c";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyro5/default.nix b/pkgs/development/python-modules/pyro5/default.nix
index 97b41b03daf81..4e56bb49f5fd9 100644
--- a/pkgs/development/python-modules/pyro5/default.nix
+++ b/pkgs/development/python-modules/pyro5/default.nix
@@ -1,6 +1,7 @@
 { buildPythonPackage
 , fetchPypi
 , lib
+, stdenv
 , serpent
 , pythonOlder
 , pytestCheckHook
@@ -8,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "Pyro5";
-  version = "5.12";
+  version = "5.13.1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "616e6957c341da0ca26f947805c9c97b42031941f59ca5613537d1420ff4f2e2";
+    sha256 = "2be9da379ae0ec4cf69ffb3c5c589b698eea00e614a9af7945b87fa9bb09baf2";
   };
 
   propagatedBuildInputs = [ serpent ];
@@ -22,7 +23,10 @@ buildPythonPackage rec {
   checkInputs = [ pytestCheckHook ];
 
   # ignore network related tests, which fail in sandbox
-  disabledTests = [ "StartNSfunc" "Broadcast" "GetIP" "TestNameServer" "TestBCSetup" ];
+  disabledTests = [ "StartNSfunc" "Broadcast" "GetIP" "TestNameServer" "TestBCSetup" ]
+  ++ lib.optionals stdenv.hostPlatform.isDarwin [
+    "Socket"
+  ];
 
   meta = with lib; {
     description = "Distributed object middleware for Python (RPC)";
diff --git a/pkgs/development/python-modules/pysam/default.nix b/pkgs/development/python-modules/pysam/default.nix
index 41cdcad20385b..2f65aa899e396 100644
--- a/pkgs/development/python-modules/pysam/default.nix
+++ b/pkgs/development/python-modules/pysam/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname   = "pysam";
-  version = "0.17.0";
+  version = "0.18.0";
 
   # Fetching from GitHub instead of PyPi cause the 0.13 src release on PyPi is
   # missing some files which cause test failures.
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "pysam-developers";
     repo = "pysam";
     rev = "v${version}";
-    sha256 = "sha256-RDeBq6pwBGCBNIn8YOPQr96GuL6FKEYeLAPQD6XN0iE=";
+    sha256 = "042ca27r6634xg2ixgvq1079cp714wmm6ml7bwc1snn0wxxzywfg";
   };
 
   nativeBuildInputs = [ samtools ];
diff --git a/pkgs/development/python-modules/pysaml2/default.nix b/pkgs/development/python-modules/pysaml2/default.nix
index 6eeb10b6dcd9a..bc21b0a309d17 100644
--- a/pkgs/development/python-modules/pysaml2/default.nix
+++ b/pkgs/development/python-modules/pysaml2/default.nix
@@ -1,27 +1,60 @@
 { lib
 , buildPythonPackage
-, isPy3k
+, cryptography
+, defusedxml
 , fetchFromGitHub
+, importlib-resources
+, mock
+, pyasn1
+, pymongo
+, pyopenssl
+, pytestCheckHook
+, python-dateutil
+, pythonOlder
+, pytz
+, requests
+, responses
+, six
 , substituteAll
+, xmlschema
 , xmlsec
-, cryptography, defusedxml, pyopenssl, python-dateutil, pytz, requests, six
-, mock, pyasn1, pymongo, pytest, responses, xmlschema, importlib-resources
 }:
 
 buildPythonPackage rec {
   pname = "pysaml2";
-  version = "7.0.1";
+  version = "7.1.0";
+  format = "setuptools";
 
-  disabled = !isPy3k;
+  disabled = pythonOlder "3.6";
 
-  # No tests in PyPI tarball
   src = fetchFromGitHub {
     owner = "IdentityPython";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ickqask6bjipgi3pvxg92pjr6dk2rr3q9garap39mdrp2gsfhln";
+    sha256 = "sha256-3Yl6j6KAlw7QQYnwU7+naY6D97IqX766zguekKAuic8=";
   };
 
+  propagatedBuildInputs = [
+    cryptography
+    python-dateutil
+    defusedxml
+    pyopenssl
+    pytz
+    requests
+    six
+    xmlschema
+  ] ++ lib.optionals (pythonOlder "3.9") [
+    importlib-resources
+  ];
+
+  checkInputs = [
+    mock
+    pyasn1
+    pymongo
+    pytestCheckHook
+    responses
+  ];
+
   patches = [
     (substituteAll {
       src = ./hardcode-xmlsec1-path.patch;
@@ -34,32 +67,22 @@ buildPythonPackage rec {
     sed -i 's/2999\(-.*T\)/2029\1/g' tests/*.xml
   '';
 
-  propagatedBuildInputs = [
-    cryptography
-    python-dateutil
-    defusedxml
-    importlib-resources
-    pyopenssl
-    pytz
-    requests
-    six
-    xmlschema
+  disabledTests = [
+    # Disabled tests try to access the network
+    "test_load_extern_incommon"
+    "test_load_remote_encoding"
+    "test_load_external"
+    "test_conf_syslog"
   ];
 
-  checkInputs = [ mock pyasn1 pymongo pytest responses ];
-
-  # Disabled tests try to access the network
-  checkPhase = ''
-    py.test -k "not test_load_extern_incommon \
-            and not test_load_remote_encoding \
-            and not test_load_external \
-            and not test_conf_syslog"
-  '';
+  pythonImportsCheck = [
+    "saml2"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/rohe/pysaml2";
     description = "Python implementation of SAML Version 2 Standard";
+    homepage = "https://github.com/IdentityPython/pysaml2";
     license = licenses.asl20;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pysatochip/default.nix b/pkgs/development/python-modules/pysatochip/default.nix
index a2e7269035540..81c0d8bda2049 100644
--- a/pkgs/development/python-modules/pysatochip/default.nix
+++ b/pkgs/development/python-modules/pysatochip/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "pysatochip";
-  version = "0.12.3";
+  version = "0.14.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "24db358a65c0402c299c0c62efcfbbfc98e494181cd30d3996949ac667d5b4d4";
+    sha256 = "eba800c82ea45e2524c0773a71c36e525d7c18148e6066e336950cef484555f5";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyscf/default.nix b/pkgs/development/python-modules/pyscf/default.nix
index 0be40b5dfe7c2..d08289d7573d5 100644
--- a/pkgs/development/python-modules/pyscf/default.nix
+++ b/pkgs/development/python-modules/pyscf/default.nix
@@ -1,45 +1,110 @@
-{ buildPythonPackage, lib, fetchFromGitHub, libcint, libxc, xcfun, blas
-, numpy, scipy, h5py
+{ buildPythonPackage
+, python3
+, lib
+, fetchFromGitHub
+, cmake
+, blas
+, libcint
+, libxc
+, xcfun
+, cppe
+, h5py
+, numpy
+, scipy
+, nose
+, nose-exclude
 }:
 
 buildPythonPackage rec {
   pname = "pyscf";
-  version = "1.7.6.post1";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "pyscf";
     repo = pname;
-    rev = "f6c9c6654dd9609c5e467a1edd5c2c076f793acc";
-    sha256  = "0xbwkjxxysfpqz72qn6n4a0zr2h6sprbcal8j7kzymh7swjy117w";
+    rev = "v${version}";
+    sha256 = "sha256-nwnhaqSn/9WHBjUPaEabK4x23fJ83WwEYvz6aCcvsDw=";
   };
 
-  # Backport from the 2.0.0 alpha releases of PySCF.
-  # H5Py > 3.3 deprecates the file modes, that PySCF sets.
-  patches = [ ./h5py.patch ];
+  # setup.py calls Cmake and passes the arguments in CMAKE_CONFIGURE_ARGS to cmake.
+  nativeBuildInputs = [ cmake ];
+  dontUseCmakeConfigure = true;
+  preConfigure = ''
+    export CMAKE_CONFIGURE_ARGS="-DBUILD_LIBCINT=0 -DBUILD_LIBXC=0 -DBUILD_XCFUN=0"
+    PYSCF_INC_DIR="${libcint}:${libxc}:${xcfun}";
+  '';
 
   buildInputs = [
+    blas
     libcint
     libxc
     xcfun
-    blas
   ];
 
   propagatedBuildInputs = [
+    cppe
+    h5py
     numpy
     scipy
-    h5py
   ];
 
-  PYSCF_INC_DIR="${libcint}:${libxc}:${xcfun}";
+  checkInputs = [ nose nose-exclude ];
 
-  doCheck = false;
   pythonImportsCheck = [ "pyscf" ];
+  preCheck = ''
+    # Set config used by tests to ensure reproducibility
+    echo 'pbc_tools_pbc_fft_engine = "NUMPY"' > pyscf/pyscf_config.py
+    export OMP_NUM_THREADS=1
+    ulimit -s 20000
+    export PYSCF_CONFIG_FILE=$(pwd)/pyscf/pyscf_config.py
+  '';
+  # As defined for the PySCF CI at https://github.com/pyscf/pyscf/blob/master/.github/workflows/run_tests.sh
+  # minus some additionally numerically instable tests, that are sensitive to BLAS, FFTW, etc.
+  checkPhase = ''
+    runHook preCheck
+
+    nosetests pyscf/ -v \
+      --exclude-dir=examples --exclude-dir=pyscf/pbc/grad \
+      --exclude-dir=pyscf/x2c \
+      --exclude-dir=pyscf/adc \
+      --exclude-dir=pyscf/pbc/tdscf \
+      -e test_bz \
+      -e h2o_vdz \
+      -e test_mc2step_4o4e \
+      -e test_ks_noimport \
+      -e test_jk_hermi0 \
+      -e test_j_kpts \
+      -e test_k_kpts \
+      -e high_cost \
+      -e skip \
+      -e call_in_background \
+      -e libxc_cam_beta_bug \
+      -e test_finite_diff_rks_eph \
+      -e test_finite_diff_uks_eph \
+      -e test_pipek \
+      -e test_n3_cis_ewald \
+      -I test_kuccsd_supercell_vs_kpts\.py \
+      -I test_kccsd_ghf\.py \
+      -I test_h_.*\.py \
+      --exclude-test=pyscf/pbc/gw/test/test_kgw_slow_supercell.DiamondTestSupercell3 \
+      --exclude-test=pyscf/pbc/gw/test/test_kgw_slow_supercell.DiamondKSTestSupercell3 \
+      --exclude-test=pyscf/pbc/gw/test/test_kgw_slow.DiamondTestSupercell3 \
+      --exclude-test=pyscf/pbc/gw/test/test_kgw_slow.DiamondKSTestSupercell3 \
+      --exclude-test=pyscf/pbc/tdscf/test/test_krhf_slow_supercell.DiamondTestSupercell3 \
+      --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_hf.DiamondTestSupercell3 \
+      --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_ks.DiamondTestSupercell3 \
+      --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_supercell_hf.DiamondTestSupercell3 \
+      --exclude-test=pyscf/pbc/tdscf/test/test_kproxy_supercell_ks.DiamondTestSupercell3 \
+      -I .*_slow.*py -I .*_kproxy_.*py -I test_proxy.py tdscf/*_slow.py gw/*_slow.py
+
+    runHook postCheck
+  '';
 
   meta = with lib; {
     description = "Python-based simulations of chemistry framework";
     homepage = "https://github.com/pyscf/pyscf";
     license = licenses.asl20;
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = [ maintainers.sheepforce ];
   };
 }
diff --git a/pkgs/development/python-modules/pyscf/h5py.patch b/pkgs/development/python-modules/pyscf/h5py.patch
deleted file mode 100644
index 160128633208b..0000000000000
--- a/pkgs/development/python-modules/pyscf/h5py.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/pyscf/lib/misc.py b/pyscf/lib/misc.py
-index ed43689ff..a8a0d0e20 100644
---- a/pyscf/lib/misc.py
-+++ b/pyscf/lib/misc.py
-@@ -42,8 +42,6 @@ if h5py.version.version[:4] == '2.2.':
-     sys.stderr.write('h5py-%s is found in your environment. '
-                      'h5py-%s has bug in threading mode.\n'
-                      'Async-IO is disabled.\n' % ((h5py.version.version,)*2))
--if h5py.version.version[:2] == '3.':
--    h5py.get_config().default_file_mode = 'a'
- 
- c_double_p = ctypes.POINTER(ctypes.c_double)
- c_int_p = ctypes.POINTER(ctypes.c_int)
diff --git a/pkgs/development/python-modules/pyscreeze/default.nix b/pkgs/development/python-modules/pyscreeze/default.nix
new file mode 100644
index 0000000000000..ddca8e72c23ff
--- /dev/null
+++ b/pkgs/development/python-modules/pyscreeze/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pillow
+, xlib
+, xvfb-run
+, scrot
+}:
+buildPythonPackage rec {
+  pname = "PyScreeze";
+  version = "0.1.26";
+
+  src = fetchFromGitHub {
+    owner = "asweigart";
+    repo = "pyscreeze";
+    rev = "28ab707dceecbdd135a9491c3f8effd3a69680af";
+    sha256 = "sha256-gn3ydjf/msdhIhngGlhK+jhEyFy0qGeDr58E7kM2YZs=";
+  };
+
+  pythonImportsCheck = [ "pyscreeze" ];
+  checkInputs = [ scrot xlib xvfb-run ];
+  checkPhase = ''
+    python -m unittest tests.test_pillow_unavailable
+    xvfb-run python -m unittest tests.test_pyscreeze
+  '';
+
+  propagatedBuildInputs = [
+    pillow
+  ];
+
+  meta = with lib; {
+    description = "PyScreeze is a simple, cross-platform screenshot module for Python 2 and 3.";
+    homepage = "https://github.com/asweigart/pyscreeze";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ lucasew ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyside/apiextractor.nix b/pkgs/development/python-modules/pyside/apiextractor.nix
index 9398a62997b2c..ab8c6eb784072 100644
--- a/pkgs/development/python-modules/pyside/apiextractor.nix
+++ b/pkgs/development/python-modules/pyside/apiextractor.nix
@@ -2,12 +2,14 @@
 
 # This derivation does not provide any Python module and should therefore be called via `all-packages.nix`.
 let
-  pythonEnv = python3.withPackages(ps: with ps; [  sphinx ]);
-in stdenv.mkDerivation {
-  name = "pyside-apiextractor-0.10.10";
+  pythonEnv = python3.withPackages (ps: with ps; [ sphinx ]);
+in
+stdenv.mkDerivation rec {
+  pname = "pyside-apiextractor";
+  version = "0.10.10";
 
   src = fetchurl {
-    url = "https://github.com/PySide/Apiextractor/archive/0.10.10.tar.gz";
+    url = "https://github.com/PySide/Apiextractor/archive/${version}.tar.gz";
     sha256 = "1zj8yrxy08iv1pk38djxw3faimm226w6wmi0gm32w4yczblylwz3";
   };
 
diff --git a/pkgs/development/python-modules/pysimplegui/default.nix b/pkgs/development/python-modules/pysimplegui/default.nix
new file mode 100644
index 0000000000000..9542ffe1b3bb3
--- /dev/null
+++ b/pkgs/development/python-modules/pysimplegui/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, tkinter
+}:
+buildPythonPackage rec {
+  pname = "PySimpleGUI";
+  version = "4.55.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-nUDAoMK0w9Luk1hU5I1yT1CK5oEj9LrIByYS3Z5wfew=";
+  };
+
+  pythonImportsCheck = [ "PySimpleGUI" ];
+
+  propagatedBuildInputs = [
+    tkinter
+  ];
+
+  meta = with lib; {
+    description = "Python GUIs for Humans.";
+    homepage = "https://github.com/PySimpleGUI/PySimpleGUI";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ lucasew ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyskyqremote/default.nix b/pkgs/development/python-modules/pyskyqremote/default.nix
new file mode 100644
index 0000000000000..85fc184636904
--- /dev/null
+++ b/pkgs/development/python-modules/pyskyqremote/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pycountry
+, pythonOlder
+, requests
+, websocket-client
+, xmltodict
+}:
+
+buildPythonPackage rec {
+  pname = "pyskyqremote";
+  version = "0.2.54";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "RogerSelwyn";
+    repo = "skyq_remote";
+    rev = version;
+    sha256 = "sha256-Z3fcihyK8QHtdREXWt2ESqjwAwxFZFEI9OXf3Y9onmw=";
+  };
+
+  propagatedBuildInputs = [
+    pycountry
+    requests
+    websocket-client
+    xmltodict
+  ];
+
+  # Project has no tests, only a test script which looks like anusage example
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pyskyqremote"
+  ];
+
+  meta = with lib; {
+    description = "Python module for accessing SkyQ boxes";
+    homepage = "https://github.com/RogerSelwyn/skyq_remote";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pysma/default.nix b/pkgs/development/python-modules/pysma/default.nix
index fa6009b8eb764..cf2325633fbab 100644
--- a/pkgs/development/python-modules/pysma/default.nix
+++ b/pkgs/development/python-modules/pysma/default.nix
@@ -4,28 +4,33 @@
 , buildPythonPackage
 , fetchPypi
 , jmespath
-, async-timeout
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pysma";
-  version = "0.6.8";
+  version = "0.6.9";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9490d72596db64d339aefee56940e058fddb52c2f0f5d5cce3c39ef94f39dbb9";
+    sha256 = "sha256-2ZU3UjDNo+fpnYK4WlYSu7XqkbpcK7Xz5cUKDABhwdk=";
   };
 
   propagatedBuildInputs = [
     aiohttp
-    async-timeout
     attrs
     jmespath
   ];
 
   # pypi does not contain tests and GitHub archive not available
   doCheck = false;
-  pythonImportsCheck = [ "pysma" ];
+
+  pythonImportsCheck = [
+    "pysma"
+  ];
 
   meta = with lib; {
     description = "Python library for interacting with SMA Solar's WebConnect";
diff --git a/pkgs/development/python-modules/pysmappee/default.nix b/pkgs/development/python-modules/pysmappee/default.nix
index 028d591ac9245..c2322819ae459 100644
--- a/pkgs/development/python-modules/pysmappee/default.nix
+++ b/pkgs/development/python-modules/pysmappee/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "pysmappee";
-  version = "0.2.27";
+  version = "0.2.29";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "smappee";
     repo = pname;
     rev = version;
-    sha256 = "sha256-CzdkeC53ye+IMeGUiD1mK84h2ruC1/ZpjlDjuWMVoyQ=";
+    sha256 = "sha256-Ffi55FZsZUKDcS4qV46NpRK3VP6axzrL2BO+hYW7J9E=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pysmartthings/default.nix b/pkgs/development/python-modules/pysmartthings/default.nix
index e8a295c319c43..8e97570a2c786 100644
--- a/pkgs/development/python-modules/pysmartthings/default.nix
+++ b/pkgs/development/python-modules/pysmartthings/default.nix
@@ -4,17 +4,21 @@
 , fetchFromGitHub
 , pytest-asyncio
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pysmartthings";
-  version = "0.7.6";
+  version = "0.7.7";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "andrewsayre";
     repo = pname;
     rev = version;
-    sha256 = "0m91lfzdbmq6qv6bihd278psi9ghldxpa1d0dsbii2zf338188qj";
+    sha256 = "sha256-AzAiMn88tRRPwMpwSnKoS1XUERHbKz0sVm/TjcbTsGs=";
   };
 
   propagatedBuildInputs = [
@@ -26,7 +30,14 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "pysmartthings" ];
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "aiohttp>=3.8.0,<4.0.0" "aiohttp<=4.0.0"
+  '';
+
+  pythonImportsCheck = [
+    "pysmartthings"
+  ];
 
   meta = with lib; {
     description = "Python library for interacting with the SmartThings cloud API";
diff --git a/pkgs/development/python-modules/pysnooper/default.nix b/pkgs/development/python-modules/pysnooper/default.nix
index 61e1de20acf93..b92ba38c9d094 100644
--- a/pkgs/development/python-modules/pysnooper/default.nix
+++ b/pkgs/development/python-modules/pysnooper/default.nix
@@ -6,13 +6,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.4.1";
+  version = "1.0.0";
   pname = "pysnooper";
 
   src = fetchPypi {
     inherit version;
     pname = "PySnooper";
-    sha256 = "1xngly13x3ylwwcdml2ns8skpxip2myzavp3b9ff2dpqaalf0hdl";
+    sha256 = "4804aed962f36db85fefdc33edbd109b96a13153e6ffed82d1e6023b4f483b64";
   };
 
   # test dependency python-toolbox fails with py27
diff --git a/pkgs/development/python-modules/pysolcast/default.nix b/pkgs/development/python-modules/pysolcast/default.nix
new file mode 100644
index 0000000000000..fea0b68dcce9d
--- /dev/null
+++ b/pkgs/development/python-modules/pysolcast/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isodate
+, pytestCheckHook
+, pythonOlder
+, pyyaml
+, requests
+, responses
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "pysolcast";
+  version = "1.0.7";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "mcaulifn";
+    repo = "solcast";
+    rev = "v${version}";
+    sha256 = "J4D7W89Qz1Nv4DeqOmHVAWfmThlY5puBjSClRkfwhVw=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    isodate
+    pyyaml
+    requests
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    responses
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "pytest-runner" ""
+  '';
+
+  pythonImportsCheck = [
+    "pysolcast"
+  ];
+
+  meta = with lib; {
+    description = "Python library for interacting with the Solcast API";
+    homepage = "https://github.com/mcaulifn/solcast";
+    # No license statement present
+    # https://github.com/mcaulifn/solcast/issues/70
+    license = with licenses; [ unfree ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pystache/default.nix b/pkgs/development/python-modules/pystache/default.nix
index c93655e10a8ed..67ee0063827f1 100644
--- a/pkgs/development/python-modules/pystache/default.nix
+++ b/pkgs/development/python-modules/pystache/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pystache";
-  version = "0.5.4";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f7bbc265fb957b4d6c7c042b336563179444ab313fb93a719759111eabd3b85a";
+    sha256 = "93bf92b2149a4c4b58d12142e2c4c6dd5c08d89e4c95afccd4b6efe2ee1d470d";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/python-modules/pystray/default.nix b/pkgs/development/python-modules/pystray/default.nix
index 0bba9f9885511..7b394a21b5203 100644
--- a/pkgs/development/python-modules/pystray/default.nix
+++ b/pkgs/development/python-modules/pystray/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "pystray";
-  version = "0.17.4";
+  version = "0.19.1";
 
   src = fetchFromGitHub {
     owner = "moses-palmer";
     repo = "pystray";
     rev = "v${version}";
-    sha256 = "sha256-Rg2bbFTXLc1hXdShUmFxPcJtlcyWhspcjZtJYDSQ6vQ=";
+    sha256 = "sha256-7w3odneRfDQ7K965ffJ+xSaGvg/KM0vTrSIj0ee13Uk=";
   };
 
   nativeBuildInputs = [ sphinx ];
diff --git a/pkgs/development/python-modules/pytado/default.nix b/pkgs/development/python-modules/pytado/default.nix
index a54c89f348dd7..31cea0c09d063 100644
--- a/pkgs/development/python-modules/pytado/default.nix
+++ b/pkgs/development/python-modules/pytado/default.nix
@@ -1,19 +1,36 @@
-{ lib, buildPythonPackage, fetchFromGitHub }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, requests
+}:
 
 buildPythonPackage rec {
-  pname = "PyTado";
-  version = "0.2.7";
+  pname = "pytado";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "wmalgadey";
-    repo = pname;
-    # Upstream hasn't tagged this release yet. This commit fixes the build.
-    rev = "79a5dfdf75cd9a3e1a1ee8a8ff0d08923aebda7b";
-    sha256 = "14xdfw4913g4j4h576hjbigm7fiw8k0dc8s98gh2ag9xrc2ifgr0";
+    repo = "PyTado";
+    # Upstream hasn't tagged 0.13.0 yet
+    rev = "2a243174e9ae01ef7adae940ecc6e340992ab28d";
+    sha256 = "Y1FxEzs/AF0ZTPdOK/1v+2U2fidfu+AmZbPddJCWIFc=";
   };
 
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "PyTado"
+  ];
+
   meta = with lib; {
-    description = "Python binding for Tado web API. Pythonize your central heating!";
+    description = "Python binding for Tado web API";
     homepage = "https://github.com/wmalgadey/PyTado";
     license = licenses.gpl3;
     maintainers = with maintainers; [ elseym ];
diff --git a/pkgs/development/python-modules/pytaglib/default.nix b/pkgs/development/python-modules/pytaglib/default.nix
index bf17988e758c6..cd51421fbc741 100644
--- a/pkgs/development/python-modules/pytaglib/default.nix
+++ b/pkgs/development/python-modules/pytaglib/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "pytaglib";
-  version = "1.4.6";
+  version = "1.5.0-1";
 
   src = fetchFromGitHub {
     owner = "supermihi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-UAWXR1MCxEB48n7oQE+L545F+emlU3HErzLX6YTRteg=";
+    sha256 = "1nssiqzlzvzdd3pc5xd1qwgwgkyazynmq8qiljz0dhy0c8j6mkfp";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pytenable/default.nix b/pkgs/development/python-modules/pytenable/default.nix
index d2e227c1b175d..af3c2c9b6514f 100644
--- a/pkgs/development/python-modules/pytenable/default.nix
+++ b/pkgs/development/python-modules/pytenable/default.nix
@@ -14,17 +14,18 @@
 , responses
 , restfly
 , semver
+, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "pytenable";
-  version = "1.3.3";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "tenable";
     repo = "pyTenable";
     rev = version;
-    sha256 = "19vhy7mf972545abydywyig82gkxalp6sfwinvj71hzbihwwzjpq";
+    sha256 = "sha256-qljoJ+nYFVS5VHr/M4mITtO9Czuyb4HLzVjhprhyJIs=";
   };
 
   propagatedBuildInputs = [
@@ -40,6 +41,7 @@ buildPythonPackage rec {
     requests
     requests-pkcs12
     restfly
+    typing-extensions
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/pytest-aio/default.nix b/pkgs/development/python-modules/pytest-aio/default.nix
new file mode 100644
index 0000000000000..09c278a70e104
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-aio/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, anyio
+, buildPythonPackage
+, curio
+, fetchFromGitHub
+, hypothesis
+, pytest
+, pytestCheckHook
+, pythonOlder
+, sniffio
+, trio
+, trio-asyncio
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-aio";
+  version = "1.4.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "klen";
+    repo = "pytest-aio";
+    rev = version;
+    sha256 = "pLH0yXe/KS9ohI8+hWSprP1OA3Qjki2BPqeApMPMGDs=";
+  };
+
+  postPatch = ''
+    sed -i '/addopts/d' setup.cfg
+  '';
+
+  buildInputs = [
+    pytest
+  ];
+
+  checkInputs = [
+    anyio
+    curio
+    hypothesis
+    pytestCheckHook
+    sniffio
+    trio
+    trio-asyncio
+  ];
+
+  pythonImportsCheck = [
+    "pytest_aio"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/klen/pytest-aio";
+    description = "Pytest plugin for aiohttp support";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-annotate/default.nix b/pkgs/development/python-modules/pytest-annotate/default.nix
index 22b57f9e7706d..7936d6e4ac2d4 100644
--- a/pkgs/development/python-modules/pytest-annotate/default.nix
+++ b/pkgs/development/python-modules/pytest-annotate/default.nix
@@ -6,12 +6,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.0.3";
+  version = "1.0.4";
   pname = "pytest-annotate";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ef5924aca93a7b47edaf46a38284fb5a173eed5e3b1a93ec00c8e35f0dd76ab";
+    sha256 = "d0da4c3d872a7d5796ac85016caa1da38ae902bebdc759e1b6c0f6f8b5802741";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pytest-asyncio/default.nix b/pkgs/development/python-modules/pytest-asyncio/default.nix
index 3ec6392f884c2..9e09724624c2c 100644
--- a/pkgs/development/python-modules/pytest-asyncio/default.nix
+++ b/pkgs/development/python-modules/pytest-asyncio/default.nix
@@ -1,13 +1,13 @@
 { lib, buildPythonPackage, fetchPypi, pytest, isPy3k, isPy35, async_generator }:
 buildPythonPackage rec {
   pname = "pytest-asyncio";
-  version = "0.15.1";
+  version = "0.16.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2564ceb9612bbd560d19ca4b41347b54e7835c2f792c504f698e05395ed63f6f";
+    sha256 = "7496c5977ce88c34379df64a66459fe395cd05543f0a2f837016e7144391fcfb";
   };
 
   buildInputs = [ pytest ]
diff --git a/pkgs/development/python-modules/pytest-doctestplus/default.nix b/pkgs/development/python-modules/pytest-doctestplus/default.nix
index 0ae23ff572763..c49d76705f797 100644
--- a/pkgs/development/python-modules/pytest-doctestplus/default.nix
+++ b/pkgs/development/python-modules/pytest-doctestplus/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-doctestplus";
-  version = "0.11.0";
+  version = "0.11.2";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "efcb24a366d3b033d343298c2a60eae418b06803c85373450f10306815c7c632";
+    sha256 = "f393adf659709a5f111d6ca190871c61808a6f3611bd0a132e27e93b24dd3448";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytest-flake8/default.nix b/pkgs/development/python-modules/pytest-flake8/default.nix
index 9486875ff34a1..231ddf97c9489 100644
--- a/pkgs/development/python-modules/pytest-flake8/default.nix
+++ b/pkgs/development/python-modules/pytest-flake8/default.nix
@@ -1,9 +1,11 @@
-{lib, buildPythonPackage, fetchPypi, pytest, flake8}:
+{lib, buildPythonPackage, fetchPypi, pythonOlder, fetchpatch, pytest, flake8}:
 
 buildPythonPackage rec {
   pname = "pytest-flake8";
   version = "1.0.7";
 
+  disabled = pythonOlder "3.5";
+
   # although pytest is a runtime dependency, do not add it as
   # propagatedBuildInputs in order to allow packages depend on another version
   # of pytest more easily
@@ -15,6 +17,14 @@ buildPythonPackage rec {
     sha256 = "f0259761a903563f33d6f099914afef339c085085e643bee8343eb323b32dd6b";
   };
 
+  # see https://github.com/tholo/pytest-flake8/pull/82/commits
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/tholo/pytest-flake8/commit/eda4ef74c0f25b856fe282742ea206b21e94c24c.patch";
+      sha256 = "0kq0wshds00rk6wvkn6ccjrjyqxg7m9l7dlyaqw974asizw6byci";
+    })
+  ];
+
   checkPhase = ''
     pytest .
   '';
diff --git a/pkgs/development/python-modules/pytest-flakes/default.nix b/pkgs/development/python-modules/pytest-flakes/default.nix
index ef06ed1bf4f0e..afa04dfe937a3 100644
--- a/pkgs/development/python-modules/pytest-flakes/default.nix
+++ b/pkgs/development/python-modules/pytest-flakes/default.nix
@@ -7,12 +7,12 @@ buildPythonPackage rec {
   # upstream has abandoned project in favor of pytest-flake8
   # retaining package to not break other packages
   pname = "pytest-flakes";
-  version = "4.0.4";
+  version = "4.0.5";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "551467a129331bed83596f3145d9eaf6541c26a03dc1b36419efef8ae231341b";
+    sha256 = "953134e97215ae31f6879fbd7368c18d43f709dc2fab5b7777db2bb2bac3a924";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/pytest-httpserver/default.nix b/pkgs/development/python-modules/pytest-httpserver/default.nix
index 5a5c3b1449f22..cd07a104038c6 100644
--- a/pkgs/development/python-modules/pytest-httpserver/default.nix
+++ b/pkgs/development/python-modules/pytest-httpserver/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-httpserver";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchPypi {
     pname = "pytest_httpserver";
     inherit version;
-    sha256 = "sha256-JwH9HZgU1YVR+dEETbM1xrqYcxaTZsWDSVI6WM907UA=";
+    sha256 = "87561c4fa6a7bc306d76d1979a3eb9d54eb26bfb2f3f51f1643bf3c090ce629d";
   };
 
   propagatedBuildInputs = [ werkzeug ];
diff --git a/pkgs/development/python-modules/pytest-httpx/default.nix b/pkgs/development/python-modules/pytest-httpx/default.nix
index b0bc07b6c1629..819c0a14832f5 100644
--- a/pkgs/development/python-modules/pytest-httpx/default.nix
+++ b/pkgs/development/python-modules/pytest-httpx/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "pytest-httpx";
-  version = "0.13.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "Colin-b";
     repo = "pytest_httpx";
     rev = "v${version}";
-    sha256 = "0lh7df3ysxmjzvx6242xb6qiwpfxrnj70kjmw5sndvzmy5dfpxfc";
+    sha256 = "08dxvjkxlnam3r0yp17495d1vksyawzzkpykacjql1gi6hqlfrwg";
   };
 
   buildInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/pytest-json-report/default.nix b/pkgs/development/python-modules/pytest-json-report/default.nix
new file mode 100644
index 0000000000000..2b89fe715921b
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-json-report/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytest
+, pytest-metadata
+, pytest-xdist
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-json-report";
+  version = "1.4.1";
+
+  src = fetchFromGitHub {
+    owner = "numirias";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-OS9ASUp9iJ12Ovr931RQU/DHEAXqbgcRMCBP4h+GAhk=";
+  };
+
+  buildInputs = [
+    pytest
+  ];
+
+  propagatedBuildInputs = [
+    pytest-metadata
+  ];
+
+  checkInputs = [
+    pytest-xdist
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # pytest-flaky is not available at the moment
+    "test_bug_31"
+  ];
+
+  pythonImportsCheck = [
+    "pytest_jsonreport"
+  ];
+
+  meta = with lib; {
+    description = "Pytest plugin to report test results as JSON";
+    homepage = "https://github.com/numirias/pytest-json-report";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-localserver/default.nix b/pkgs/development/python-modules/pytest-localserver/default.nix
index 577400b859eb3..a3f57ff40e7a3 100644
--- a/pkgs/development/python-modules/pytest-localserver/default.nix
+++ b/pkgs/development/python-modules/pytest-localserver/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-localserver";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3a5427909d1dfda10772c1bae4b9803679c0a8f04adb66c338ac607773bfefc2";
+    sha256 = "ef6f04193dc0f7e8df5b27b3a8834318fa12eaf025436d2a99afff1b73cde761";
   };
 
   propagatedBuildInputs = [ werkzeug ];
diff --git a/pkgs/development/python-modules/pytest-raisin/default.nix b/pkgs/development/python-modules/pytest-raisin/default.nix
new file mode 100644
index 0000000000000..7412928062d76
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-raisin/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, flit-core
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-raisin";
+  version = "0.3";
+  format = "flit";
+
+  src = fetchFromGitHub {
+    owner = "wimglenn";
+    repo = "pytest-raisin";
+    rev = "v${version}";
+    sha256 = "73cOrsqlE04m6X3a6VwtRzfi24oqkdO3HjKQH61bU88=";
+  };
+
+  nativeBuildInputs = [
+    flit-core
+  ];
+
+  propagatedBuildInputs = [
+    pytest
+  ];
+
+  # tests cause circular pytest-raisin already registered with pytest error
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Plugin enabling the use of exception instances with pytest.raises context";
+    homepage = "https://github.com/wimglenn/pytest-raisin";
+    license = licenses.mit;
+    maintainers = with maintainers; [ aadibajpai ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-snapshot/default.nix b/pkgs/development/python-modules/pytest-snapshot/default.nix
index e5f8ce159f1f0..3b7a9f389ebde 100644
--- a/pkgs/development/python-modules/pytest-snapshot/default.nix
+++ b/pkgs/development/python-modules/pytest-snapshot/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-snapshot";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "427b5ab088b25a1c8b63ce99725040664c840ff1f5a3891252723cce972897f9";
+    sha256 = "cf84c88c3e0b4ae08ae797d9ccdc32715b64dd68b2da40f575db56956ed23326";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/pytest-xdist/default.nix b/pkgs/development/python-modules/pytest-xdist/default.nix
index b8f4814e533fa..f71522a40dc63 100644
--- a/pkgs/development/python-modules/pytest-xdist/default.nix
+++ b/pkgs/development/python-modules/pytest-xdist/default.nix
@@ -36,6 +36,8 @@ buildPythonPackage rec {
     "test_rsync_report"
     "test_init_rsync_roots"
     "test_rsyncignore"
+    # flakey
+    "test_internal_errors_propagate_to_controller"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/python-cinderclient/default.nix b/pkgs/development/python-modules/python-cinderclient/default.nix
index 8346074c9c51e..fe421fa55d386 100644
--- a/pkgs/development/python-modules/python-cinderclient/default.nix
+++ b/pkgs/development/python-modules/python-cinderclient/default.nix
@@ -17,11 +17,11 @@
 
 buildPythonPackage rec {
   pname = "python-cinderclient";
-  version = "8.1.0";
+  version = "8.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b57b432b2ac9161c2482a569a023211d2d3d0ada81c4da62c8f6e47f0b2bf82d";
+    sha256 = "7b2f08a2d1cc05d2c1f84f02fadb2208678b1acb501acfe2de33720078ec7b9f";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-datemath/default.nix b/pkgs/development/python-modules/python-datemath/default.nix
new file mode 100644
index 0000000000000..4b0366ae4da5f
--- /dev/null
+++ b/pkgs/development/python-modules/python-datemath/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, arrow
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+, unittest2
+}:
+
+buildPythonPackage rec {
+  pname = "python-datemath";
+  version = "1.5.5";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "nickmaccarthy";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-WVWGhyBguE1+KEMQu0N5QxO7IC4rPEJ/2L3VWUCQNi4=";
+  };
+
+  propagatedBuildInputs = [
+    arrow
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    unittest2
+  ];
+
+  pytestFlagsArray = [
+    "tests.py"
+  ];
+
+  pythonImportsCheck = [
+    "datemath"
+  ];
+
+  meta = with lib; {
+    description = "Python module to emulate the date math used in SOLR and Elasticsearch";
+    homepage = "https://github.com/nickmaccarthy/python-datemath";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-didl-lite/default.nix b/pkgs/development/python-modules/python-didl-lite/default.nix
index a564968f49248..f58da984f8c9d 100644
--- a/pkgs/development/python-modules/python-didl-lite/default.nix
+++ b/pkgs/development/python-modules/python-didl-lite/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "python-didl-lite";
-  version = "1.3.1";
+  version = "1.3.2";
   disabled = pythonOlder "3.5.3";
 
   src = fetchFromGitHub {
     owner = "StevenLooman";
     repo = pname;
     rev = version;
-    sha256 = "sha256-qOhpS53isHP0IuM0E0oh2pm2naQjVU6MPHVUcI3vKo8=";
+    sha256 = "sha256-laKmWGDEzlBVJCUSKxekjPEXVlAz4MIzM7dNJfta/ek=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-dotenv/default.nix b/pkgs/development/python-modules/python-dotenv/default.nix
index 22bf7ea7ece49..774ca6855aee3 100644
--- a/pkgs/development/python-modules/python-dotenv/default.nix
+++ b/pkgs/development/python-modules/python-dotenv/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "python-dotenv";
-  version = "0.19.0";
+  version = "0.19.2";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f521bc2ac9a8e03c736f62911605c5d83970021e3fa95b37d769e2bbbe9b6172";
+    sha256 = "a5de49a31e953b45ff2d2fd434bbc2670e8db5273606c1e737cc6b93eff3655f";
   };
 
   propagatedBuildInputs = [ click ];
diff --git a/pkgs/development/python-modules/python-ecobee-api/default.nix b/pkgs/development/python-modules/python-ecobee-api/default.nix
index 7a9d9edd91b50..d1769806e283c 100644
--- a/pkgs/development/python-modules/python-ecobee-api/default.nix
+++ b/pkgs/development/python-modules/python-ecobee-api/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "python-ecobee-api";
-  version = "0.2.14";
+  version = "0.2.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-QfVOgX/psFB/l9dPBcaHh+2v9+7LjDCUAvaEQjUrxmA=";
+    sha256 = "91929b0dda6acc2af6661d0fb539eb6375323d7529d3d64b67915efb1dc1a6ca";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-gnupg/default.nix b/pkgs/development/python-modules/python-gnupg/default.nix
index 7189a235dedad..e26e60c43ec46 100644
--- a/pkgs/development/python-modules/python-gnupg/default.nix
+++ b/pkgs/development/python-modules/python-gnupg/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname   = "python-gnupg";
-  version = "0.4.7";
+  version = "0.4.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2061f56b1942c29b92727bf9aecbd3cea3893acc9cccbdc7eb4604285efe4ac7";
+    sha256 = "b64de1ae5cedf872b437201a566fa2c62ce0c95ea2e30177eb53aee1258507d7";
   };
 
   # Let's make the library default to our gpg binary
diff --git a/pkgs/development/python-modules/python-google-nest/default.nix b/pkgs/development/python-modules/python-google-nest/default.nix
new file mode 100644
index 0000000000000..a1e612e1f74e4
--- /dev/null
+++ b/pkgs/development/python-modules/python-google-nest/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, requests_oauthlib
+}:
+
+buildPythonPackage rec {
+  pname = "python-google-nest";
+  version = "5.1.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "y3BOhorVkJ3rFPifNOopLMqk6y1fHX5vxHGiqWvWHhE=";
+  };
+
+  propagatedBuildInputs = [
+    requests_oauthlib
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "nest"
+  ];
+
+  meta = with lib; {
+    description = "Python API and command line tool for talking to Nest thermostats";
+    homepage = "https://github.com/axlan/python-nest/";
+    license = licenses.cc-by-nc-sa-30;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-gvm/default.nix b/pkgs/development/python-modules/python-gvm/default.nix
index 5f3ff50d1a8d8..b98c445818875 100644
--- a/pkgs/development/python-modules/python-gvm/default.nix
+++ b/pkgs/development/python-modules/python-gvm/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "python-gvm";
-  version = "21.10.0";
+  version = "21.11.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "greenbone";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-6cNoeuB9449HB2/41VjazpSAGvaHmBjG/hqmBKX5FEA=";
+    sha256 = "sha256-H3cM+4YA6obYbo7qm7BhLlQxW4DKV6A3X0ZKsXWPDBs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-hglib/default.nix b/pkgs/development/python-modules/python-hglib/default.nix
new file mode 100644
index 0000000000000..9d667dcba853f
--- /dev/null
+++ b/pkgs/development/python-modules/python-hglib/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, mercurial
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "python-hglib";
+  version = "2.6.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-sYvR7VPJDuV9VxTWata7crZOkw1K7KmDCJLAi7KNpgg=";
+  };
+
+  checkInputs = [ mercurial nose ];
+
+  preCheck = ''
+    export HGTMP=$(mktemp -d)
+    export HGUSER=test
+  '';
+
+  pythonImportsCheck = [ "hglib" ];
+
+  meta = with lib; {
+    description = "Library with a fast, convenient interface to Mercurial. It uses Mercurial’s command server for communication with hg.";
+    homepage = "https://www.mercurial-scm.org/wiki/PythonHglibs";
+    license = licenses.mit;
+    maintainers = [ maintainers.kvark ];
+  };
+}
diff --git a/pkgs/development/python-modules/python-http-client/default.nix b/pkgs/development/python-modules/python-http-client/default.nix
index b69c478ef27d3..db79870ad591f 100644
--- a/pkgs/development/python-modules/python-http-client/default.nix
+++ b/pkgs/development/python-modules/python-http-client/default.nix
@@ -7,13 +7,14 @@
 
 buildPythonPackage rec {
   pname = "python_http_client";
-  version = "3.3.3";
+  version = "3.3.4";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "sendgrid";
     repo = "python-http-client";
     rev = version;
-    sha256 = "sha256-cZqyu67xP0UIKYbhYYTNL5kLiPjjMjayde75sqkHZhg=";
+    sha256 = "sha256-wTXHq+tC+rfvmDZIWvcGhQZqm6DxOmx50BsX0c6asec=";
   };
 
   checkInputs = [
@@ -21,9 +22,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  # Failure was fixed by https://github.com/sendgrid/python-http-client/commit/6d62911ab0d0645b499e14bb17c302b48f3c10e4
-  disabledTests = [ "test__daterange" ];
-  pythonImportsCheck = [ "python_http_client" ];
+  pythonImportsCheck = [
+    "python_http_client"
+  ];
 
   meta = with lib; {
     description = "Python HTTP library to call APIs";
diff --git a/pkgs/development/python-modules/python-izone/default.nix b/pkgs/development/python-modules/python-izone/default.nix
index 4bd1f988d4552..1d1eb5ac54eb0 100644
--- a/pkgs/development/python-modules/python-izone/default.nix
+++ b/pkgs/development/python-modules/python-izone/default.nix
@@ -4,22 +4,23 @@
 , fetchFromGitHub
 , aiohttp
 , netifaces
-, asynctest
-, pytest-aiohttp
+, pytest-aio
+, pytest-asyncio
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "python-izone";
-  version = "1.1.6";
+  version = "1.2.3";
+  format = "setuptools";
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "Swamp-Ig";
     repo = "pizone";
     rev = "v${version}";
-    sha256 = "sha256-zgE1ccEPSa9nX0SEMN02VEGfnHexk/+jCJe7ugUL5UA=";
+    hash = "sha256-WF37t9vCEIyQMeN3/CWAiiZ5zsMRMFQ5UvMUqfoGM9I=";
   };
 
   propagatedBuildInputs = [
@@ -28,15 +29,19 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    asynctest
-    pytest-aiohttp
+    pytest-aio
+    pytest-asyncio
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "pizone" ];
+  doCheck = false; # most tests access network
+
+  pythonImportsCheck = [
+    "pizone"
+  ];
 
   meta = with lib; {
-    description = "A python interface to the iZone airconditioner controller";
+    description = "Python interface to the iZone airconditioner controller";
     homepage = "https://github.com/Swamp-Ig/pizone";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/python-lsp-black/default.nix b/pkgs/development/python-modules/python-lsp-black/default.nix
index 3c18d291e37fc..bd557c402ffb2 100644
--- a/pkgs/development/python-modules/python-lsp-black/default.nix
+++ b/pkgs/development/python-modules/python-lsp-black/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "python-lsp-black";
-  version = "1.0.0";
+  version = "1.0.1";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "python-lsp";
     repo = "python-lsp-black";
     rev = "v${version}";
-    sha256 = "1blxhj70jxb9xfbd4dxqikd262n6dn9dw5qhyml5yvdwxbv0bybc";
+    sha256 = "03k32m4jfqfzrawj69yxhk9kwzsdcwginip77kxdbra2xwgqfc3w";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/python-lsp-server/default.nix b/pkgs/development/python-modules/python-lsp-server/default.nix
index 39597afa85409..4aa8d853ebdba 100644
--- a/pkgs/development/python-modules/python-lsp-server/default.nix
+++ b/pkgs/development/python-modules/python-lsp-server/default.nix
@@ -35,14 +35,14 @@
 
 buildPythonPackage rec {
   pname = "python-lsp-server";
-  version = "1.2.4";
+  version = "1.3.1";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "python-lsp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0c1g46hpzjhqbjcmv6xm3by3jprcjhzjslqzrp95hdkbykvrgs5x";
+    sha256 = "067dlhwwv4mkrirnmqinrvkbfx59hf7fiah081d62a46vxvpnv9s";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/python-lzo/default.nix b/pkgs/development/python-modules/python-lzo/default.nix
index 5025b86361a30..dcf55e8e32b0f 100644
--- a/pkgs/development/python-modules/python-lzo/default.nix
+++ b/pkgs/development/python-modules/python-lzo/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python-lzo";
-  version = "1.12";
+  version = "1.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0iakqgd51n1cd7r3lpdylm2rgbmd16y74cra9kcapwg84mlf9a4p";
+    sha256 = "83cbd8ecaae284735250e31d6c0ecc18ac08763fab2a8c910dc5a6910db6250c";
   };
 
   buildInputs = [ lzo ];
diff --git a/pkgs/development/python-modules/python-manilaclient/default.nix b/pkgs/development/python-modules/python-manilaclient/default.nix
index 5ffe1a1ea730d..aea8b6dab3031 100644
--- a/pkgs/development/python-modules/python-manilaclient/default.nix
+++ b/pkgs/development/python-modules/python-manilaclient/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonApplication rec {
   pname = "python-manilaclient";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2d90af35c5beccc53fa6b0f5a3c4b330a065e86924c33c42b017f18943ab2b05";
+    sha256 = "d53f69238cdc454c0297f513e0b481a039d0bac723990ebd5ab9d3d29633956e";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-opendata-transport/default.nix b/pkgs/development/python-modules/python-opendata-transport/default.nix
index 906f084398081..01733dece385d 100644
--- a/pkgs/development/python-modules/python-opendata-transport/default.nix
+++ b/pkgs/development/python-modules/python-opendata-transport/default.nix
@@ -2,30 +2,34 @@
 , buildPythonPackage
 , fetchPypi
 , aiohttp
-, async-timeout
 , urllib3
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "python-opendata-transport";
-  version = "0.2.2";
+  version = "0.3.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     pname = "python_opendata_transport";
     inherit version;
-    sha256 = "sha256-Z0VHkKYHpwbBwwFrMtA5JRy0m7f0566IjCmGizoKEoo=";
+    sha256 = "sha256-CpzMMp2C3UOiUna9EcUucD/PKv7AZlkaU8QJfWntoi8=";
   };
 
   propagatedBuildInputs = [
     aiohttp
-    async-timeout
     urllib3
   ];
 
   # no tests are present
   doCheck = false;
 
-  pythonImportsCheck = [ "opendata_transport" ];
+  pythonImportsCheck = [
+    "opendata_transport"
+  ];
 
   meta = with lib; {
     description = "Python client for interacting with transport.opendata.ch";
diff --git a/pkgs/development/python-modules/python-pidfile/default.nix b/pkgs/development/python-modules/python-pidfile/default.nix
index 7ba39341516ee..6626f0b77b3c6 100644
--- a/pkgs/development/python-modules/python-pidfile/default.nix
+++ b/pkgs/development/python-modules/python-pidfile/default.nix
@@ -27,6 +27,6 @@ buildPythonPackage rec {
     description = "Python context manager for managing pid files";
     homepage = "https://github.com/mosquito/python-pidfile";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ legendofmiracles ];
+    maintainers = with maintainers; [ lom ];
   };
 }
diff --git a/pkgs/development/python-modules/python-sat/default.nix b/pkgs/development/python-modules/python-sat/default.nix
index ea3d1bfb444a8..43b5e635294b7 100644
--- a/pkgs/development/python-modules/python-sat/default.nix
+++ b/pkgs/development/python-modules/python-sat/default.nix
@@ -2,19 +2,32 @@
 
 buildPythonPackage rec {
   pname = "python-sat";
-  version = "0.1.6.dev6";
+  version = "0.1.7.dev1";
 
   src = fetchFromGitHub {
     owner = "pysathq";
     repo = "pysat";
     rev = version;
-    sha256 = "1gckxhqkvzyw7pmwg8xzxq146jysqy0s23l5mjc3awm6swdij66y";
+    sha256 = "sha256-zGdgD+SgoMB7/zDQI/trmV70l91TB7OkDxaJ30W3dkI=";
   };
 
   propagatedBuildInputs = [ six pypblib ];
 
   checkInputs = [ pytestCheckHook ];
 
+  # https://github.com/pysathq/pysat/pull/102
+  postPatch = ''
+    # Fix for case-insensitive filesystem
+    cat >>solvers/patches/cadical.patch <<EOF
+diff --git solvers/cadical/VERSION solvers/cdc/VERSION
+deleted file mode 100644
+--- solvers/cadical/VERSION
++++ /dev/null
+@@ -1 +0,0 @@
+-1.0.3
+EOF
+  '';
+
   meta = with lib; {
     description = "Toolkit to provide interface for various SAT (without optional dependancy py-aiger-cnf)";
     homepage = "https://github.com/pysathq/pysat";
diff --git a/pkgs/development/python-modules/python-smarttub/default.nix b/pkgs/development/python-modules/python-smarttub/default.nix
index b4c994b24560e..dc266e0e2075c 100644
--- a/pkgs/development/python-modules/python-smarttub/default.nix
+++ b/pkgs/development/python-modules/python-smarttub/default.nix
@@ -13,14 +13,16 @@
 
 buildPythonPackage rec {
   pname = "python-smarttub";
-  version = "0.0.27";
+  version = "0.0.28";
+  format = "setuptools";
+
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "mdz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-EoZn5yxj18hi4oEMuUcB5UN2xQFkLbSG/awp+Qh029E=";
+    sha256 = "sha256-dAwOi1hhjGhBGKEp5u3qW5WL1GLHBFac0drIc1Zk6ok=";
   };
 
   propagatedBuildInputs = [
@@ -36,7 +38,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "smarttub" ];
+  pythonImportsCheck = [
+    "smarttub"
+  ];
 
   meta = with lib; {
     description = "Python API for SmartTub enabled hot tubs";
diff --git a/pkgs/development/python-modules/python-socks/default.nix b/pkgs/development/python-modules/python-socks/default.nix
index dcf2688082754..e6c2d016bb09d 100644
--- a/pkgs/development/python-modules/python-socks/default.nix
+++ b/pkgs/development/python-modules/python-socks/default.nix
@@ -1,17 +1,48 @@
-{ lib, buildPythonPackage, trio, curio, async-timeout, fetchPypi, pythonOlder }:
+{ lib
+, async-timeout
+, buildPythonPackage
+, curio
+, fetchFromGitHub
+, flask
+, pytest-asyncio
+, pytest-trio
+, pythonOlder
+, pytestCheckHook
+, trio
+, yarl
+}:
 
 buildPythonPackage rec {
   pname = "python-socks";
-  version = "1.2.4";
+  version = "2.0.0";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1n6xb18jy41ybgkmamakg6psp3qididd45qknxiggngaiibz43kx";
+  disabled = pythonOlder "3.6.1";
+
+  src = fetchFromGitHub {
+    owner = "romis2012";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-iTwlUyfTD2ZhOvBX3IDqjkeW4Z2tfKxvQjIV7GGBVJA=";
   };
 
-  disabled = pythonOlder "3.6.1";
+  propagatedBuildInputs = [
+    trio
+    curio
+    async-timeout
+  ];
+
+  checkInputs = [
+    flask
+    pytest-asyncio
+    pytest-trio
+    pytestCheckHook
+    yarl
+  ];
 
-  propagatedBuildInputs = [ trio curio async-timeout ];
+  pythonImportsCheck = [
+    "python_socks"
+  ];
 
   meta = with lib; {
     description = "Core proxy client (SOCKS4, SOCKS5, HTTP) functionality for Python";
diff --git a/pkgs/development/python-modules/python-swiftclient/default.nix b/pkgs/development/python-modules/python-swiftclient/default.nix
index adb675c0db557..cb3b5b850e36b 100644
--- a/pkgs/development/python-modules/python-swiftclient/default.nix
+++ b/pkgs/development/python-modules/python-swiftclient/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonApplication rec {
   pname = "python-swiftclient";
-  version = "3.12.0";
+  version = "3.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-MTtEShTQ+bYoy/PoxS8sQnFlj56KM9QiKFHC5PD3t6A=";
+    sha256 = "b200dcfbc6842bd4cac29efd0ea9ef34d3b8625957472ba7aa3ae0242437e2cc";
   };
 
   propagatedBuildInputs = [ pbr python-keystoneclient ];
diff --git a/pkgs/development/python-modules/python-vipaccess/default.nix b/pkgs/development/python-modules/python-vipaccess/default.nix
index 8c3a5bf797d41..c3d51ae591190 100644
--- a/pkgs/development/python-modules/python-vipaccess/default.nix
+++ b/pkgs/development/python-modules/python-vipaccess/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "python-vipaccess";
-  version = "0.13";
+  version = "0.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f148d4534e3a4dda9050a6a038868594c1216ea2413f2144ca6697e0e20c9cad";
+    sha256 = "d5013d306e5891ecfe523c9ef52d074fe8b6ca29ee259c0deeb8a83ae9884ce0";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pythonegardia/default.nix b/pkgs/development/python-modules/pythonegardia/default.nix
index 318059d2466f5..7ce66f221fb27 100644
--- a/pkgs/development/python-modules/pythonegardia/default.nix
+++ b/pkgs/development/python-modules/pythonegardia/default.nix
@@ -1,25 +1,44 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
+, fetchpatch
 , requests
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pythonegardia";
   version = "1.0.51";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b99217e34c59bfae059db400acef99d3d32237d13da6fdce9e0d4decc9a07e61";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "jeroenterheerdt";
+    repo = "python-egardia";
+    rev = "v${version}";
+    sha256 = "7HindS++jcV3GRn/SKoTMpVOchOnLojy/TY0HZjtyD8=";
   };
 
   propagatedBuildInputs = [
     requests
   ];
 
+  patches = [
+    # Adjust search path, https://github.com/jeroenterheerdt/python-egardia/pull/33
+    (fetchpatch {
+      name = "search-path.patch";
+      url = "https://github.com/jeroenterheerdt/python-egardia/commit/6b7bf5b7b2211e3557e0f438586b9d03b9bae440.patch";
+      sha256 = "wUSfmF0SrKCITQJJsHgkGgPZFouaB/zbVqupK6fARHY=";
+    })
+  ];
+
   # Project has no tests, only two test file for manual interaction
   doCheck = false;
-  pythonImportsCheck = [ "pythonegardia" ];
+
+  pythonImportsCheck = [
+    "pythonegardia"
+  ];
 
   meta = with lib; {
     description = "Python interface with Egardia/Woonveilig alarms";
diff --git a/pkgs/development/python-modules/pythonnet/default.nix b/pkgs/development/python-modules/pythonnet/default.nix
index 7387d387dbeca..382fcc30876f5 100644
--- a/pkgs/development/python-modules/pythonnet/default.nix
+++ b/pkgs/development/python-modules/pythonnet/default.nix
@@ -16,19 +16,19 @@ let
 
   dotnetPkgs = [
     (fetchNuGet {
-      baseName = "UnmanagedExports";
+      pname = "UnmanagedExports";
       version = "1.2.7";
       sha256 = "0bfrhpmq556p0swd9ssapw4f2aafmgp930jgf00sy89hzg2bfijf";
       outputFiles = [ "*" ];
     })
     (fetchNuGet {
-      baseName = "NUnit";
+      pname = "NUnit";
       version = "3.12.0";
       sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2";
       outputFiles = [ "*" ];
     })
     (fetchNuGet {
-      baseName = "System.ValueTuple";
+      pname = "System.ValueTuple";
       version = "4.5.0";
       sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy";
       outputFiles = [ "*" ];
@@ -82,7 +82,7 @@ buildPythonPackage rec {
 
     ${builtins.concatStringsSep "\n" (
         builtins.map (
-            x: ''ln -s ${x}/lib/dotnet/${x.baseName} ./packages/${x.baseName}.${x.version}''
+            x: ''ln -s ${x}/lib/dotnet/${x.pname} ./packages/${x.pname}.${x.version}''
           ) dotnetPkgs)}
 
     # Setting TERM=xterm fixes an issue with terminfo in mono: System.Exception: Magic number is wrong: 542
diff --git a/pkgs/development/python-modules/pytibber/default.nix b/pkgs/development/python-modules/pytibber/default.nix
index 9b3668b597834..fbfd0ba030cf8 100644
--- a/pkgs/development/python-modules/pytibber/default.nix
+++ b/pkgs/development/python-modules/pytibber/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pytibber";
-  version = "0.21.0";
+  version = "0.21.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Danielhiversen";
     repo = "pyTibber";
     rev = version;
-    sha256 = "sha256-lUe79VHlK/2/1SZfC+Ha+27NUoIKoTlqn75XA/mPCNU=";
+    hash = "sha256-zgiUXGso3bQ3pCD7r+VYHGBIihPwSfHibS2OZvPUb3Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytile/default.nix b/pkgs/development/python-modules/pytile/default.nix
index 4806fa0b55e28..1673688657cc0 100644
--- a/pkgs/development/python-modules/pytile/default.nix
+++ b/pkgs/development/python-modules/pytile/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "pytile";
-  version = "2021.10.0";
+  version = "2021.12.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "sha256-9FbcGhRmXULJgfJOmy6mhiZwQUDNmvxZI/WxjJIbnc8=";
+    sha256 = "sha256-a76Qzk8ZsoV6HUOcDjMdnFVZJu/iKFbShoC9OZ0caDc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytmx/default.nix b/pkgs/development/python-modules/pytmx/default.nix
index e43cd8b062311..0fa38a9a63119 100644
--- a/pkgs/development/python-modules/pytmx/default.nix
+++ b/pkgs/development/python-modules/pytmx/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pytmx";
-  version = "3.30";
+  version = "3.31";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,8 +18,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "bitcraft";
     repo = "PyTMX";
-    rev = version;
-    sha256 = "sha256-d6VPmRdqUO6YhkOYYeXOEcrli/35IFkxK73AcZYHixw=";
+    rev = "v${version}";
+    sha256 = "05v8zv06fymvgv332g48kcing4k4ncy2iwgpy1qmxrpin1avyynx";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytradfri/default.nix b/pkgs/development/python-modules/pytradfri/default.nix
index 88e3e448ade94..3e50debd835c9 100644
--- a/pkgs/development/python-modules/pytradfri/default.nix
+++ b/pkgs/development/python-modules/pytradfri/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pytradfri";
-  version = "7.2.0";
+  version = "8.0.0";
 
   disabled = pythonOlder "3.7";
 
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = "pytradfri";
     rev = version;
-    sha256 = "sha256-/1K2jBgDuOIUb4WUownoceprZbOwSkQIqeEt07HfZrY=";
+    hash = "sha256-YnQUZcqSldtRqzMac5sPoSNDT+ifs3Jqek2CoDeobe8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytube/default.nix b/pkgs/development/python-modules/pytube/default.nix
index bd5b9e374f16b..d2c8be795f1db 100644
--- a/pkgs/development/python-modules/pytube/default.nix
+++ b/pkgs/development/python-modules/pytube/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pytube";
-  version = "11.0.1";
+  version = "11.0.2";
 
   disabled = pythonOlder "3.6";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "pytube";
     repo = "pytube";
     rev = "v${version}";
-    sha256 = "04s4hganb6x0dlfyyg9gjah5z0vxd7bxzqwgvd28hqnf0iwc2byb";
+    hash = "sha256-3HrkhlwV8OLqbzC6QgddLB1fQxWbwCQ6STCgUXlr5So=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/pytweening/default.nix b/pkgs/development/python-modules/pytweening/default.nix
new file mode 100644
index 0000000000000..d0ba9803063ba
--- /dev/null
+++ b/pkgs/development/python-modules/pytweening/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+buildPythonPackage rec {
+  pname = "pytweening";
+  version = "1.0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-hTMoLPcLMd6KBJnhz0IJMLABPHhxGIcrLsiZOCeS4uY=";
+  };
+
+  pythonImportsCheck = [ "pytweening" ];
+  checkPhase = ''
+    python -m unittest tests.basicTests
+  '';
+
+  meta = with lib; {
+    description = "Set of tweening / easing functions implemented in Python";
+    homepage = "https://github.com/asweigart/pytweening";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ lucasew ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytwitchapi/default.nix b/pkgs/development/python-modules/pytwitchapi/default.nix
index 423f87c1f7d31..27289a13d5d60 100644
--- a/pkgs/development/python-modules/pytwitchapi/default.nix
+++ b/pkgs/development/python-modules/pytwitchapi/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "pytwitchapi";
-  version = "2.5.0";
+  version = "2.5.1";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "Teekeks";
     repo = "pyTwitchAPI";
     rev = "v${version}";
-    sha256 = "0sbzl9a4zxnvnvkmmmfc9c157dgq7y6qfb2cid5nym6jhxkixnqk";
+    sha256 = "091p9yx0cc7aclj76s1n1jdzkypicy9b2mxgmk2fym5viqlgpbkk";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytz-deprecation-shim/default.nix b/pkgs/development/python-modules/pytz-deprecation-shim/default.nix
new file mode 100644
index 0000000000000..eccf8399ee29b
--- /dev/null
+++ b/pkgs/development/python-modules/pytz-deprecation-shim/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonAtLeast
+, pythonOlder
+, backports-zoneinfo
+, python-dateutil
+, tzdata
+, hypothesis
+, pytestCheckHook
+, pytz
+}:
+
+buildPythonPackage rec {
+  pname = "pytz-deprecation-shim";
+  version = "0.1.0.post0";
+
+  format = "pyproject";
+
+  src = fetchPypi {
+    pname = "pytz_deprecation_shim";
+    inherit version;
+    sha256 = "af097bae1b616dde5c5744441e2ddc69e74dfdcb0c263129610d85b87445a59d";
+  };
+
+  propagatedBuildInputs = (lib.optionals (pythonAtLeast "3.6" && pythonOlder "3.9") [
+    backports-zoneinfo
+  ]) ++ (lib.optionals (pythonOlder "3.6") [
+    python-dateutil
+  ]) ++ (lib.optionals (pythonAtLeast "3.6") [
+    tzdata
+  ]);
+
+  checkInputs = [
+    hypothesis
+    pytestCheckHook
+    pytz
+  ];
+
+  # https://github.com/pganssle/pytz-deprecation-shim/issues/27
+  doCheck = pythonAtLeast "3.9";
+
+  meta = with lib; {
+    description = "Shims to make deprecation of pytz easier";
+    homepage = "https://github.com/pganssle/pytz-deprecation-shim";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyupgrade/default.nix b/pkgs/development/python-modules/pyupgrade/default.nix
index 324f0a934a5a5..46764be027627 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 = "2.29.1";
+  version = "2.30.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "asottile";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fN0+4/EeoMD2c16OgepjDWuUhowMxzM7nB3mkL3iDjc=";
+    sha256 = "sha256-Fku95ar5i+QV21GhomO6/ivlJcnOhPyximyPsh2/dc0=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/pyvex/default.nix b/pkgs/development/python-modules/pyvex/default.nix
index ba024bf5c6a1f..211ba18ae6121 100644
--- a/pkgs/development/python-modules/pyvex/default.nix
+++ b/pkgs/development/python-modules/pyvex/default.nix
@@ -11,17 +11,19 @@
 
 buildPythonPackage rec {
   pname = "pyvex";
-  version = "9.0.10576";
+  version = "9.1.10913";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-pOQZXymIuffUfShAUrXqlxwWCIRKZpkMZcJS1fad2bs=";
+    sha256 = "sha256-EUgCyjD5ia5KQMvZWVAsXeKRjmSVE7tRRYH5u/Ozug0=";
   };
 
   postPatch = lib.optionalString stdenv.isDarwin ''
     substituteInPlace vex/Makefile-gcc --replace '/usr/bin/ar' 'ar'
   '';
 
+  setupPyBuildFlags = lib.optionals stdenv.isLinux [ "--plat-name" "linux" ];
+
   propagatedBuildInputs = [
     archinfo
     bitstring
@@ -45,7 +47,5 @@ buildPythonPackage rec {
     homepage = "https://github.com/angr/pyvex";
     license = with licenses; [ bsd2 gpl3Plus lgpl3Plus ];
     maintainers = with maintainers; [ fab ];
-    # ERROR: pyvex-X-py3-none-manylinux1_aarch64.whl is not a supported wheel on this platform.
-    broken = stdenv.isAarch64;
   };
 }
diff --git a/pkgs/development/python-modules/pyvips/default.nix b/pkgs/development/python-modules/pyvips/default.nix
index c3eb750783fd0..b25d9d3b5ae44 100644
--- a/pkgs/development/python-modules/pyvips/default.nix
+++ b/pkgs/development/python-modules/pyvips/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pyvips";
-  version = "2.1.15";
+  version = "2.1.16";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8bca4077dbdc1434dcbc6759407367b6561e3505aa9555b1bc0b45989dcf50b2";
+    sha256 = "654c03014a15f846786807a2ece6f525a8fec883d1c857742c8e37da149a81ed";
   };
 
   nativeBuildInputs = [ pytest-runner pkgconfig pkg-config ];
diff --git a/pkgs/development/python-modules/pywal/default.nix b/pkgs/development/python-modules/pywal/default.nix
index ccc862f8aa477..2e09573d848c8 100644
--- a/pkgs/development/python-modules/pywal/default.nix
+++ b/pkgs/development/python-modules/pywal/default.nix
@@ -9,24 +9,29 @@ buildPythonPackage rec {
     sha256 = "1drha9kshidw908k7h3gd9ws2bl64ms7bjcsa83pwb3hqa9bkspg";
   };
 
-  preCheck = ''
-    mkdir tmp
-    HOME=$PWD/tmp
-  '';
-
   patches = [
     ./convert.patch
     ./feh.patch
   ];
 
-  # Invalid syntax
-  disabled = !isPy3k;
-
   postPatch = ''
     substituteInPlace pywal/backends/wal.py --subst-var-by convert "${imagemagick}/bin/convert"
     substituteInPlace pywal/wallpaper.py --subst-var-by feh "${feh}/bin/feh"
   '';
 
+  # Invalid syntax
+  disabled = !isPy3k;
+
+  preCheck = ''
+    mkdir tmp
+    HOME=$PWD/tmp
+
+    for f in tests/test_export.py tests/test_util.py ; do
+      substituteInPlace "$f" \
+        --replace '/tmp/' "$TMPDIR/"
+    done
+  '';
+
   meta = with lib; {
     description = "Generate and change colorschemes on the fly. A 'wal' rewrite in Python 3";
     homepage = "https://github.com/dylanaraps/pywal";
diff --git a/pkgs/development/python-modules/pywavelets/default.nix b/pkgs/development/python-modules/pywavelets/default.nix
index 66c996a487ba9..cbd7681c63f92 100644
--- a/pkgs/development/python-modules/pywavelets/default.nix
+++ b/pkgs/development/python-modules/pywavelets/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "PyWavelets";
-  version = "1.1.1";
+  version = "1.2.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1a64b40f6acb4ffbaccce0545d7fc641744f95351f62e4c6aaa40549326008c9";
+    sha256 = "6cbd69b047bb4e00873097472133425f5f08a4e6bc8b3f0ae709274d4d5e9a8d";
   };
 
   checkInputs = [ nose pytest ];
diff --git a/pkgs/development/python-modules/pywbem/default.nix b/pkgs/development/python-modules/pywbem/default.nix
index c5203ac7890dc..3e1f37d26b064 100644
--- a/pkgs/development/python-modules/pywbem/default.nix
+++ b/pkgs/development/python-modules/pywbem/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pywbem";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8ef48185e0adbaeb9bd5181c4c5de951f6d58d54e2e1d7e87a9834e10eabe957";
+    sha256 = "5df0af28f81891a3914a12f3a30b11b1981f7b30e09c5a42c011797e7fce9b6a";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyweatherflowrest/default.nix b/pkgs/development/python-modules/pyweatherflowrest/default.nix
new file mode 100644
index 0000000000000..d2ecce519705b
--- /dev/null
+++ b/pkgs/development/python-modules/pyweatherflowrest/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "pyweatherflowrest";
+  version = "1.0.3";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "briis";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0zvmvhl47wlqgjsznbqb7rqgsnxlyiiv7v3kxbxiz6b0hq4mq146";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace "--cov=pyweatherflowrest --cov-append" ""
+  '';
+
+  # Module has no tests. test.py is a demo script
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "pyweatherflowrest"
+  ];
+
+  meta = with lib; {
+    description = "Python module to get data from WeatherFlow Weather Stations";
+    homepage = "https://github.com/briis/pyweatherflowrest";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pywebview/default.nix b/pkgs/development/python-modules/pywebview/default.nix
index e750f234faf50..67f11ed291f5b 100644
--- a/pkgs/development/python-modules/pywebview/default.nix
+++ b/pkgs/development/python-modules/pywebview/default.nix
@@ -7,18 +7,19 @@
 , pythonOlder
 , qt5
 , xvfb-run
+, proxy_tools
 }:
 
 buildPythonPackage rec {
   pname = "pywebview";
-  version = "3.4";
+  version = "3.5";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "r0x0r";
     repo = "pywebview";
     rev = version;
-    sha256 = "sha256-3JHwtw8oReolEl4k8cdt7GCVGNkfWWJN6EnZYHxzDO8=";
+    sha256 = "sha256-+At/ToEylSPcLh/u2NHVTXQpMnw+2/afsevg5YAX/4c=";
   };
 
   nativeBuildInputs = [
@@ -27,6 +28,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     pyqtwebengine
+    proxy_tools
   ] ++ lib.optionals (pythonOlder "3.7") [ importlib-resources ];
 
   checkInputs = [
@@ -52,6 +54,8 @@ buildPythonPackage rec {
     popd
   '';
 
+  pythonImportsCheck = [ "webview" ];
+
   meta = with lib; {
     homepage = "https://github.com/r0x0r/pywebview";
     description = "Lightweight cross-platform wrapper around a webview";
diff --git a/pkgs/development/python-modules/pywemo/default.nix b/pkgs/development/python-modules/pywemo/default.nix
index c26e01d20eda5..1e2f8db96cd82 100644
--- a/pkgs/development/python-modules/pywemo/default.nix
+++ b/pkgs/development/python-modules/pywemo/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "pywemo";
-  version = "0.6.8";
+  version = "0.7.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-4EvS1f9l1HXf+b/t4NavIxUsBkFomEqZgpumM+O8RZg=";
+    sha256 = "sha256-NwhKrk5cQT7kk4VCr0BMQz0yTP/vuBA6MjTRuk2LM5Y=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pywick/default.nix b/pkgs/development/python-modules/pywick/default.nix
index c675686ef8332..0db11576203a5 100644
--- a/pkgs/development/python-modules/pywick/default.nix
+++ b/pkgs/development/python-modules/pywick/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname   = "pywick";
-  version = "0.5.6";
+  version = "0.6.5";
 
   disabled = pythonOlder "3.6";
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "achaiah";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1gmlifnv9kji0d1jwg1pa8d96zg48w17qg0sgxwy1y1jf3hn37bm";
+    sha256 = "0wnijdvqgdpzfdsy1cga3bsr0n7zzsl8hp4dskqwxx087g5h1r84";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pywilight/default.nix b/pkgs/development/python-modules/pywilight/default.nix
index 425cba61ce3f9..43c50fa8cf2db 100644
--- a/pkgs/development/python-modules/pywilight/default.nix
+++ b/pkgs/development/python-modules/pywilight/default.nix
@@ -3,15 +3,19 @@
 , fetchPypi
 , ifaddr
 , requests
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pywilight";
-  version = "0.0.70";
+  version = "0.0.73";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-PLahGx75oEp4NIZB9PVRdA3cLBxhQsHTsnquy7WSEC8=";
+    sha256 = "sha256-8AYzAePLqCiz/EN6cJShGnrISijBpFHAU/u355f5IjY=";
   };
 
   propagatedBuildInputs = [
@@ -19,9 +23,12 @@ buildPythonPackage rec {
     requests
   ];
 
-  # no tests are present
+  # Module has no tests
   doCheck = false;
-  pythonImportsCheck = [ "pywilight" ];
+
+  pythonImportsCheck = [
+    "pywilight"
+  ];
 
   meta = with lib; {
     description = "Python API for WiLight device";
diff --git a/pkgs/development/python-modules/pywizlight/default.nix b/pkgs/development/python-modules/pywizlight/default.nix
index 9098bf80dc5e9..16a72550ffd0d 100644
--- a/pkgs/development/python-modules/pywizlight/default.nix
+++ b/pkgs/development/python-modules/pywizlight/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pywizlight";
-  version = "0.4.13";
+  version = "0.4.16";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,8 +18,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "sbidy";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-XO9KmsC3DXgVcGWr5ss3m2wB8rVboWyQUWBidynhkP8=";
+    rev = "v${version}";
+    sha256 = "sha256-Da5hkmzGJtfqiDPV9X02opv54Ry6sGiSbDnej9a2QDA=";
   };
 
   propagatedBuildInputs = [
@@ -37,6 +37,8 @@ buildPythonPackage rec {
     "test_Bulb_Discovery"
     "test_timeout"
     "test_timeout_PilotBuilder"
+    "test_error_PilotBuilder_warm_wite"
+    "test_error_PilotBuilder_cold_white_lower"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/pyzerproc/default.nix b/pkgs/development/python-modules/pyzerproc/default.nix
index 99f1ac7fd099c..7f726d8ae7f8d 100644
--- a/pkgs/development/python-modules/pyzerproc/default.nix
+++ b/pkgs/development/python-modules/pyzerproc/default.nix
@@ -12,14 +12,16 @@
 
 buildPythonPackage rec {
   pname = "pyzerproc";
-  version = "0.4.9";
-  disabled = pythonOlder "3.6";
+  version = "0.4.10";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "emlove";
     repo = pname;
     rev = version;
-    sha256 = "11bsvmvazx9gpj0w80b6wgdp41z8y2sk6bhkj3ps7grsgr59n7rz";
+    sha256 = "sha256-sfxyHpJzYYwxLsvfJpqI6cC/CKS7Jx0vXSLL3QD9qV4=";
   };
 
   postPatch = ''
@@ -39,7 +41,9 @@ buildPythonPackage rec {
     asynctest
   ];
 
-  pythonImportsCheck = [ "pyzerproc" ];
+  pythonImportsCheck = [
+    "pyzerproc"
+  ];
 
   meta = with lib; {
     description = "Python library to control Zerproc Bluetooth LED smart string lights";
diff --git a/pkgs/development/python-modules/qcelemental/default.nix b/pkgs/development/python-modules/qcelemental/default.nix
index c0992e982510f..0f1aa5cee7a24 100644
--- a/pkgs/development/python-modules/qcelemental/default.nix
+++ b/pkgs/development/python-modules/qcelemental/default.nix
@@ -1,26 +1,35 @@
-{ buildPythonPackage, lib, fetchPypi, numpy
-, pydantic, pint,  networkx, pytest-runner, pytest-cov, pytest
+{ buildPythonPackage, lib, fetchPypi
+, networkx
+, numpy
+, pint
+, pydantic
+, pytestCheckHook
 } :
 
 buildPythonPackage rec {
   pname = "qcelemental";
-  version = "0.23.0";
-
-  checkInputs = [ pytest-runner pytest-cov pytest ];
-  propagatedBuildInputs = [ numpy pydantic pint networkx ];
+  version = "0.24.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "642bc86ce937621ddfb1291cbff0851be16b26feb5eec562296999e36181cee3";
+    sha256 = "sha256-XcsR89tu26EG5AcXqmndkESLGWZ8eKmTkjaLziosawE=";
   };
 
+  propagatedBuildInputs = [
+    numpy
+    pydantic
+    pint
+    networkx
+  ];
+
+  checkInputs = [ pytestCheckHook ];
+
   doCheck = true;
 
   meta = with lib; {
     description = "Periodic table, physical constants, and molecule parsing for quantum chemistry";
     homepage = "http://docs.qcarchive.molssi.org/projects/qcelemental/en/latest/";
     license = licenses.bsd3;
-    platforms = platforms.linux;
     maintainers = [ maintainers.sheepforce ];
   };
 }
diff --git a/pkgs/development/python-modules/qcengine/default.nix b/pkgs/development/python-modules/qcengine/default.nix
index 81813de356afb..29fffb1473be6 100644
--- a/pkgs/development/python-modules/qcengine/default.nix
+++ b/pkgs/development/python-modules/qcengine/default.nix
@@ -1,28 +1,31 @@
-{ buildPythonPackage, lib, fetchPypi, pyyaml, qcelemental, pydantic
-, py-cpuinfo, psutil, pytest-runner, pytest, pytest-cov
-} :
+{ buildPythonPackage
+, lib
+, fetchPypi
+, psutil
+, py-cpuinfo
+, pydantic
+, pyyaml
+, qcelemental
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "qcengine";
-  version = "0.20.1";
+  version = "0.21.0";
 
-  checkInputs = [
-    pytest-runner
-    pytest-cov
-    pytest
-  ];
+  checkInputs = [ pytestCheckHook ];
 
   propagatedBuildInputs = [
+    psutil
+    py-cpuinfo
+    pydantic
     pyyaml
     qcelemental
-    pydantic
-    py-cpuinfo
-    psutil
   ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "hZxE7b0bOx/B8Kz4cgBC7wV23OikRxwrdZ4UQ8G/yhg=";
+    sha256 = "sha256-ZsPKvbaZ7BBZuOmzq12ism/HyWYcLlQHgZaTzmIsMq4=";
   };
 
   doCheck = true;
diff --git a/pkgs/development/python-modules/qcs-api-client/default.nix b/pkgs/development/python-modules/qcs-api-client/default.nix
index dfb237fe2065a..7e961b8a233d4 100644
--- a/pkgs/development/python-modules/qcs-api-client/default.nix
+++ b/pkgs/development/python-modules/qcs-api-client/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "qcs-api-client";
-  version = "0.20.0";
+  version = "0.20.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-l6n/DUEWIBmnPvt5+TAZ2RnFrYEUwh4nIZa6aQG2lJ0=";
+    sha256 = "sha256-nSkCARZk6K5JMgiXunRBrb3pn5Ti6f493OOFzJYaW0M=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/qiskit-aqua/default.nix b/pkgs/development/python-modules/qiskit-aqua/default.nix
index b5bfa729321eb..88365e0f8b70f 100644
--- a/pkgs/development/python-modules/qiskit-aqua/default.nix
+++ b/pkgs/development/python-modules/qiskit-aqua/default.nix
@@ -111,7 +111,7 @@ buildPythonPackage rec {
     "qiskit.optimization"
   ];
   pytestFlagsArray = [
-    "--timeout=30"
+    "--timeout=30"  # limit test duration to 30 seconds. Some tests previously would run indefinitely
     "--durations=10"
   ];
   disabledTestPaths = lib.optionals (!withPyscf) [
@@ -169,6 +169,8 @@ buildPythonPackage rec {
     "test_eoh"
     "test_qasm_5"
     "test_uccsd_hf"
+    "test_lih"
+    "test_lih_freeze_core"
   ] ++ lib.optionals (!withPyscf) [
     "test_validate" # test/chemistry/test_inputparser.py
   ];
diff --git a/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix b/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
index 88fcb82857d5d..5b304bf38984f 100644
--- a/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
+++ b/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
@@ -40,7 +40,7 @@ let
 in
 buildPythonPackage rec {
   pname = "qiskit-ibmq-provider";
-  version = "0.18.0";
+  version = "0.18.1";
 
   disabled = pythonOlder "3.6";
 
@@ -48,7 +48,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = pname;
     rev = version;
-    sha256 = "sha256-mVgR9vq9UpM/3VED4hpEev8YAoZY1URAxu7pVv+cjU8=";
+    sha256 = "sha256-rySSCyI+62G7kL1ZRtjX1WeWj3LPXECvrlXAcIDINF4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/qiskit/default.nix b/pkgs/development/python-modules/qiskit/default.nix
index 45e0326a1b714..9d050606006cb 100644
--- a/pkgs/development/python-modules/qiskit/default.nix
+++ b/pkgs/development/python-modules/qiskit/default.nix
@@ -29,7 +29,7 @@ in
 buildPythonPackage rec {
   pname = "qiskit";
   # NOTE: This version denotes a specific set of subpackages. See https://qiskit.org/documentation/release_notes.html#version-history
-  version = "0.32.0";
+  version = "0.32.1";
 
   disabled = pythonOlder "3.6";
 
@@ -37,7 +37,7 @@ buildPythonPackage rec {
     owner = "qiskit";
     repo = "qiskit";
     rev = version;
-    sha256 = "sha256-fKR072hOD0a9TtWulqyKUT3Riwq+NHTtciR+NN5JC1Y=";
+    sha256 = "sha256-0L4TlolvL1akHhWSJ0GRQ/Cu/rZ+Es00jjNM5Ho2uEA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/qtawesome/default.nix b/pkgs/development/python-modules/qtawesome/default.nix
index 0a024faf919f8..4bb3303af4672 100644
--- a/pkgs/development/python-modules/qtawesome/default.nix
+++ b/pkgs/development/python-modules/qtawesome/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "QtAwesome";
-  version = "1.0.3";
+  version = "1.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d37bbeb69ddc591e5ff036b741bda8d1d92133811f1f5a7150021506f70b8e6e";
+    sha256 = "ec02e200231fa68a146a93845890aa0432a7edcba14bf811ff6975cf9acdab5d";
   };
 
   propagatedBuildInputs = [ qtpy six ];
diff --git a/pkgs/development/python-modules/qtconsole/default.nix b/pkgs/development/python-modules/qtconsole/default.nix
index 9d6a483071be2..4cf9bd022daba 100644
--- a/pkgs/development/python-modules/qtconsole/default.nix
+++ b/pkgs/development/python-modules/qtconsole/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "qtconsole";
-  version = "5.1.1";
+  version = "5.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bbc34bca14f65535afcb401bc74b752bac955e5313001ba640383f7e5857dc49";
+    sha256 = "8f9db97b27782184efd0a0f2d57ea3bd852d053747a2e442a9011329c082976d";
   };
 
   checkInputs = [ nose ] ++ lib.optionals isPy27 [mock];
diff --git a/pkgs/development/python-modules/quantum-gateway/default.nix b/pkgs/development/python-modules/quantum-gateway/default.nix
new file mode 100644
index 0000000000000..19b9ae22264a3
--- /dev/null
+++ b/pkgs/development/python-modules/quantum-gateway/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, esprima
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, requests
+, requests-mock
+, setuptools-scm
+, urllib3
+}:
+
+buildPythonPackage rec {
+  pname = "quantum-gateway";
+  version = "0.0.6";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "cisasteelersfan";
+    repo = "quantum_gateway";
+    rev = version;
+    sha256 = "f2LYOr9xJSfbA/1aHfll5lg7r05o855Zkkk9HuRamP8=";
+  };
+
+  propagatedBuildInputs = [
+    urllib3
+    esprima
+    requests
+  ];
+
+  checkInputs = [
+    requests-mock
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "quantum_gateway"
+  ];
+
+  meta = with lib; {
+    description = "Python library for interacting with Verizon Fios Quantum gateway devices";
+    homepage = "https://github.com/cisasteelersfan/quantum_gateway";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/questionary/default.nix b/pkgs/development/python-modules/questionary/default.nix
index 27619b785459b..29ceff5e2ace8 100644
--- a/pkgs/development/python-modules/questionary/default.nix
+++ b/pkgs/development/python-modules/questionary/default.nix
@@ -1,10 +1,10 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, poetry
+, poetry-core
 , prompt-toolkit
-, pytest-cov
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
@@ -12,6 +12,8 @@ buildPythonPackage rec {
   version = "1.10.0";
   format = "pyproject";
 
+  disabled = pythonOlder "3.6";
+
   src = fetchFromGitHub {
     owner = "tmbo";
     repo = pname;
@@ -20,7 +22,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    poetry
+    poetry-core
   ];
 
   propagatedBuildInputs = [
@@ -28,11 +30,17 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest-cov
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "questionary" ];
+  disabledTests = [
+    # TypeError: <lambda>() missing 1 required...
+    "test_print_with_style"
+  ];
+
+  pythonImportsCheck = [
+    "questionary"
+  ];
 
   meta = with lib; {
     description = "Python library to build command line user prompts";
diff --git a/pkgs/development/python-modules/r2pipe/default.nix b/pkgs/development/python-modules/r2pipe/default.nix
index 1d7b4e95e8547..7498c9c1e0f25 100644
--- a/pkgs/development/python-modules/r2pipe/default.nix
+++ b/pkgs/development/python-modules/r2pipe/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "r2pipe";
-  version = "1.6.4";
+  version = "1.6.5";
 
   postPatch = let
     r2lib = "${lib.getOutput "lib" radare2}/lib";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a79877781b8e8e9bd5612faebd3991d75d7189f2941021d2adea9b4b4c5b9b7b";
+    sha256 = "512d2aca27c4515e55743852e0ab227190739d9595d2c4b6ae97b23d1a2bdd26";
   };
 
   # 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 7e87fbab5d39d..19ee86e93ab6d 100644
--- a/pkgs/development/python-modules/rapidfuzz/default.nix
+++ b/pkgs/development/python-modules/rapidfuzz/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "rapidfuzz";
-  version = "1.8.3";
+  version = "1.9.1";
 
   disabled = pythonOlder "3.5";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     repo = "RapidFuzz";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-DjMUI5JBomv0f2AC1Nvb3DeqWn65AvZJWhWus4AZk7w=";
+    sha256 = "sha256-aZqsQHrxmPqZARkqR1hWaj7XndOlCJjmWk1Cosx4skA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/rcssmin/default.nix b/pkgs/development/python-modules/rcssmin/default.nix
index 3de6f2038038a..ab74662e3b4c7 100644
--- a/pkgs/development/python-modules/rcssmin/default.nix
+++ b/pkgs/development/python-modules/rcssmin/default.nix
@@ -1,11 +1,11 @@
 { lib, buildPythonPackage, fetchPypi }:
 buildPythonPackage rec {
   pname = "rcssmin";
-  version = "1.0.6";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0w42l4dhxghcz7pj3q7hkxp015mvb8z2cq9sfxbl31npsfavd1ya";
+    sha256 = "27fc400627fd3d328b7fe95af2a01f5d0af6b5af39731af5d071826a1f08e362";
   };
 
   # The package does not ship tests, and the setup machinary confuses
diff --git a/pkgs/development/python-modules/rdkit/default.nix b/pkgs/development/python-modules/rdkit/default.nix
index 97f2e5a6afc24..1ec7301dabd12 100644
--- a/pkgs/development/python-modules/rdkit/default.nix
+++ b/pkgs/development/python-modules/rdkit/default.nix
@@ -4,7 +4,7 @@
 , fetchzip
 , cmake
 , boost
-, catch
+, catch2
 , inchi
 , cairo
 , eigen
@@ -75,7 +75,7 @@ buildPythonPackage rec {
 
   buildInputs = [
     boost
-    catch
+    catch2
     inchi
     eigen
     cairo
@@ -107,7 +107,7 @@ buildPythonPackage rec {
   '';
 
   cmakeFlags = [
-    "-DCATCH_DIR=${catch}/include/catch"
+    "-DCATCH_DIR=${catch2}/include/catch2"
     "-DINCHI_LIBRARY=${inchi}/lib/libinchi.so"
     "-DINCHI_LIBRARIES=${inchi}/lib/libinchi.so"
     "-DINCHI_INCLUDE_DIR=${inchi}/include/inchi"
diff --git a/pkgs/development/python-modules/regex/default.nix b/pkgs/development/python-modules/regex/default.nix
index b62355bb2c106..b96c7ca899560 100644
--- a/pkgs/development/python-modules/regex/default.nix
+++ b/pkgs/development/python-modules/regex/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "regex";
-  version = "2021.10.8";
+  version = "2021.11.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "26895d7c9bbda5c52b3635ce5991caa90fbb1ddfac9c9ff1c7ce505e2282fb2a";
+    sha256 = "sha256-80HuLfCZm/33qV5EgHXv/g2yEqWTh94acGkOSssD1MY=";
   };
 
   # Sources for different Python releases are located in same folder
diff --git a/pkgs/development/python-modules/reikna/default.nix b/pkgs/development/python-modules/reikna/default.nix
index 873a39244fe3b..c9c5011da6178 100644
--- a/pkgs/development/python-modules/reikna/default.nix
+++ b/pkgs/development/python-modules/reikna/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "reikna";
-  version = "0.7.5";
+  version = "0.7.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d01f4264c8379ef2962a93aacb002d491b92ef9b5b22b45f77e7821dfa87bef7";
+    sha256 = "722fefbd253d0bbcbf5250b7b9c4aca5722cde4ca38bfbf863a551a5fc26edfa";
   };
 
   checkInputs = [ sphinx pytest-cov pytest ];
diff --git a/pkgs/development/python-modules/renault-api/default.nix b/pkgs/development/python-modules/renault-api/default.nix
index cf7bed958edb9..eef2459c259d5 100644
--- a/pkgs/development/python-modules/renault-api/default.nix
+++ b/pkgs/development/python-modules/renault-api/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "renault-api";
-  version = "0.1.5";
+  version = "0.1.6";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "hacf-fr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-b3oHpERUqeIw0yOxZytQuRE4jVUcahWlMQ+7ZBX0KL8=";
+    sha256 = "0v9a8p0ynikqzg7vvinvik5gjvsc5nrfqkq528mhcw7y4hmj8ndm";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/reolink/default.nix b/pkgs/development/python-modules/reolink/default.nix
new file mode 100644
index 0000000000000..71f94d489aa14
--- /dev/null
+++ b/pkgs/development/python-modules/reolink/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, aiohttp
+, aiounittest
+, buildPythonPackage
+, fetchFromGitHub
+, ffmpeg-python
+, pytestCheckHook
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "reolink";
+  version = "0.56";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "fwestenberg";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-ld1KDWweaG7y7EPN6Y19PzQRGCIFAPEb6AmlXXbjgCU=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    ffmpeg-python
+    requests
+  ];
+
+  checkInputs = [
+    aiounittest
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    # Packages in nixpkgs is different than the module name
+    substituteInPlace setup.py \
+      --replace "ffmpeg" "ffmpeg-python"
+  '';
+
+  # https://github.com/fwestenberg/reolink/issues/83
+  doCheck = false;
+
+  pytestFlagsArray = [
+    "test.py"
+  ];
+
+  disabledTests = [
+    # Tests require network access
+    "test1_settings"
+    "test2_states"
+    "test3_images"
+    "test4_properties"
+    "test_succes"
+  ];
+
+  pythonImportsCheck = [
+    "reolink"
+  ];
+
+  meta = with lib; {
+    description = "Python module to interact with the Reolink IP camera API";
+    homepage = "https://github.com/fwestenberg/reolink";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/reportlab/default.nix b/pkgs/development/python-modules/reportlab/default.nix
index 71d4cd7425d16..de2b799a051b1 100644
--- a/pkgs/development/python-modules/reportlab/default.nix
+++ b/pkgs/development/python-modules/reportlab/default.nix
@@ -11,11 +11,11 @@ let
   ft = freetype.overrideAttrs (oldArgs: { dontDisableStatic = true; });
 in buildPythonPackage rec {
   pname = "reportlab";
-  version = "3.6.1";
+  version = "3.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "68f9324000cfc5570b5a59a92306691b5d655078a399f20bc72c2581fe903261";
+    sha256 = "f0c4b47b012d893b0b9f5703cf6f01b5593714a3fc1e7dc73efbbfe26bb7e16a";
   };
 
   checkInputs = [ glibcLocales ];
diff --git a/pkgs/development/python-modules/requests-cache/default.nix b/pkgs/development/python-modules/requests-cache/default.nix
index ca6cb7d230757..21732ed3a956d 100644
--- a/pkgs/development/python-modules/requests-cache/default.nix
+++ b/pkgs/development/python-modules/requests-cache/default.nix
@@ -55,10 +55,19 @@ buildPythonPackage rec {
     timeout-decorator
   ];
 
-  # Integration tests require local DBs
-  pytestFlagsArray = [ "tests/unit" ];
+  pytestFlagsArray = [
+    # Integration tests require local DBs
+    "tests/unit"
+  ];
+
+  disabledTests = [
+    # Tests are flaky in the sandbox
+    "test_remove_expired_responses"
+  ];
 
-  pythonImportsCheck = [ "requests_cache" ];
+  pythonImportsCheck = [
+    "requests_cache"
+  ];
 
   meta = with lib; {
     description = "Persistent cache for requests library";
diff --git a/pkgs/development/python-modules/requests-kerberos/default.nix b/pkgs/development/python-modules/requests-kerberos/default.nix
index 0a023dab87149..17a8191455aed 100644
--- a/pkgs/development/python-modules/requests-kerberos/default.nix
+++ b/pkgs/development/python-modules/requests-kerberos/default.nix
@@ -4,36 +4,43 @@
 , cryptography
 , requests
 , pykerberos
+, pyspnego
 , pytestCheckHook
+, pytest-mock
 , mock
 }:
 
 buildPythonPackage rec {
   pname = "requests-kerberos";
-  version = "0.12.0";
+  version = "0.13.0";
 
   # tests are not present in the PyPI version
   src = fetchFromGitHub {
     owner = "requests";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qw96aw84nljh9cip372mfv50p1yyirfgigavvavgpc3c5g278s6";
+    sha256 = "0yvfg2cj3d10l8fd8kyal4hmpd7fd1c3bca13cj9ril5l573in76";
   };
 
+  # avoid needing to package krb5
+  postPatch = ''
+    substituteInPlace setup.py \
+    --replace "pyspnego[kerberos]" "pyspnego"
+  '';
+
   propagatedBuildInputs = [
     cryptography
     requests
     pykerberos
+    pyspnego
   ];
 
   checkInputs = [
     mock
     pytestCheckHook
+    pytest-mock
   ];
 
-  # they have a setup.py which mentions a test suite that doesn't exist...
-  patches = [ ./fix_setup.patch ];
-
   pythonImportsCheck = [ "requests_kerberos" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/requests-kerberos/fix_setup.patch b/pkgs/development/python-modules/requests-kerberos/fix_setup.patch
deleted file mode 100644
index 67cc3a60f77e2..0000000000000
--- a/pkgs/development/python-modules/requests-kerberos/fix_setup.patch
+++ /dev/null
@@ -1,9 +0,0 @@
---- ./setup.py	1980-01-02 00:00:00.000000000 +0000
-+++ ./setup.py	1980-01-02 00:00:00.000000000 +0000
-@@ -56,6 +56,5 @@
-         ':sys_platform=="win32"': ['winkerberos>=0.5.0'],
-         ':sys_platform!="win32"': ['pykerberos>=1.1.8,<2.0.0'],
-     },
--    test_suite='test_requests_kerberos',
-     tests_require=['mock'],
- )
diff --git a/pkgs/development/python-modules/requests-toolbelt/default.nix b/pkgs/development/python-modules/requests-toolbelt/default.nix
index 5a87d0a0e05bc..3ad219025a929 100644
--- a/pkgs/development/python-modules/requests-toolbelt/default.nix
+++ b/pkgs/development/python-modules/requests-toolbelt/default.nix
@@ -24,7 +24,9 @@ buildPythonPackage rec {
     # disabled tests access the network
     py.test tests -k "not test_no_content_length_header \
                   and not test_read_file \
-                  and not test_reads_file_from_url_wrapper"
+                  and not test_reads_file_from_url_wrapper \
+                  and not test_x509_der \
+                  and not test_x509_pem"
   '';
 
   meta = {
diff --git a/pkgs/development/python-modules/responses/default.nix b/pkgs/development/python-modules/responses/default.nix
index e052a51d859a6..cff31f782c5a7 100644
--- a/pkgs/development/python-modules/responses/default.nix
+++ b/pkgs/development/python-modules/responses/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "responses";
-  version = "0.14.0";
+  version = "0.16.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-k/d0p2LuDifA2dfgYieu2p/59faTkvcrtsa3P4djVj4=";
+    sha256 = "sha256-ouOsoqgnfmElfNOxwVSx3Q14Kxrj04t/o3y+P+tTF5E=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/respx/default.nix b/pkgs/development/python-modules/respx/default.nix
index 0d7f509b4a0e7..d085d43008bb1 100644
--- a/pkgs/development/python-modules/respx/default.nix
+++ b/pkgs/development/python-modules/respx/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "respx";
-  version = "0.17.1";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = "lundberg";
     repo = pname;
     rev = version;
-    sha256 = "0w8idh6l2iq04ydz7r2qisq9jsxq8wszkx97kx4g3yjwg4ypvc6k";
+    sha256 = "sha256-xiAt42kc1+rro99KMwzYKi3XC+wxYVqOY11tM+M/uV8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/rfc6555/default.nix b/pkgs/development/python-modules/rfc6555/default.nix
index 4e47915bdf767..5be65fee23951 100644
--- a/pkgs/development/python-modules/rfc6555/default.nix
+++ b/pkgs/development/python-modules/rfc6555/default.nix
@@ -1,27 +1,42 @@
-{ lib, buildPythonPackage, fetchPypi, pythonPackages }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, selectors2
+}:
 
 buildPythonPackage rec {
   pname = "rfc6555";
-  version = "0.0.0";
+  version = "0.1.0";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "05sjrd6jc0sdvx0z7d3llk82rx366jlmc7ijam0nalsv66hbn70r";
+  src = fetchFromGitHub {
+    owner = "sethmlarson";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "Lmwgusc4EQlF0GHmMTUxWzUCjBk19cvurNwbOnT+1jM=";
   };
 
-  propagatedBuildInputs = with pythonPackages; [ selectors2 ];
+  propagatedBuildInputs = [
+    selectors2
+  ];
 
-  checkInputs = with pythonPackages; [ mock pytest ];
-  # disabling tests that require a functional DNS IPv{4,6} stack to pass.
-  patches = [ ./disable_network_tests.patch ];
-  # default doCheck = true; is not enough, apparently
-  postCheck = ''
-    py.test tests/
-  '';
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Disabling tests that require a functional DNS IPv{4,6} stack to pass
+    "test_create_connection_has_proper_timeout"
+  ];
+
+  pythonImportsCheck = [
+    "rfc6555"
+  ];
 
   meta = with lib; {
     description = "Python implementation of the Happy Eyeballs Algorithm";
-    homepage = "https://pypi.org/project/rfc6555";
+    homepage = "https://github.com/sethmlarson/rfc6555";
     license = licenses.asl20;
     maintainers = with maintainers; [ endocrimes ];
   };
diff --git a/pkgs/development/python-modules/rfc6555/disable_network_tests.patch b/pkgs/development/python-modules/rfc6555/disable_network_tests.patch
deleted file mode 100644
index dc59111ac43f0..0000000000000
--- a/pkgs/development/python-modules/rfc6555/disable_network_tests.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/tests/test_create_connection.py b/tests/test_create_connection.py
-index fe38026..cdb26b4 100644
---- a/tests/test_create_connection.py
-+++ b/tests/test_create_connection.py
-@@ -6,10 +6,12 @@ from .test_utils import requires_network
- 
- 
- class _BasicCreateConnectionTests(object):
-+
-     @requires_network
-     def test_create_connection_google(self):
-         sock = rfc6555.create_connection(('www.google.com', 80))
- 
-+    @requires_network
-     @pytest.mark.parametrize('timeout', [None, 5.0])
-     def test_create_connection_has_proper_timeout(self, timeout):
-         sock = rfc6555.create_connection(('www.google.com', 80), timeout=timeout)
-diff --git a/tests/test_ipv6.py b/tests/test_ipv6.py
-index 3ee8564..f0db28e 100644
---- a/tests/test_ipv6.py
-+++ b/tests/test_ipv6.py
-@@ -2,7 +2,9 @@ import socket
- import mock
- import rfc6555
- 
-+from .test_utils import requires_network
- 
-+@requires_network
- def test_ipv6_available():
-     assert rfc6555._detect_ipv6()
- 
diff --git a/pkgs/development/python-modules/rflink/default.nix b/pkgs/development/python-modules/rflink/default.nix
index 781363334e13d..82374a8a0423e 100644
--- a/pkgs/development/python-modules/rflink/default.nix
+++ b/pkgs/development/python-modules/rflink/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , async-timeout
 , docopt
 , pyserial
@@ -12,6 +13,7 @@
 buildPythonPackage rec {
   pname = "rflink";
   version = "0.0.58";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "aequitas";
@@ -20,11 +22,6 @@ buildPythonPackage rec {
     sha256 = "1zab55lsw419gg0jfrl69ap6128vbi3wdmg5z7qin65ijpjdhasc";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "version=version_from_git()" "version='${version}'"
-  '';
-
   propagatedBuildInputs = [
     async-timeout
     docopt
@@ -37,7 +34,23 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "rflink.protocol" ];
+  patches = [
+    # Remove loop, https://github.com/aequitas/python-rflink/pull/61
+    (fetchpatch {
+      name = "remove-loop.patch";
+      url = "https://github.com/aequitas/python-rflink/commit/777e19b5bde3398df5b8f142896c34a01ae18d52.patch";
+      sha256 = "sJmihxY3fNSfZVFhkvQ/+9gysQup/1jklKDMyDDLOs8=";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "version=version_from_git()" "version='${version}'"
+  '';
+
+  pythonImportsCheck = [
+    "rflink.protocol"
+  ];
 
   meta = with lib; {
     description = "Library and CLI tools for interacting with RFlink 433MHz transceiver";
diff --git a/pkgs/development/python-modules/rich/default.nix b/pkgs/development/python-modules/rich/default.nix
index ff330289734d8..98c26c7a7ff37 100644
--- a/pkgs/development/python-modules/rich/default.nix
+++ b/pkgs/development/python-modules/rich/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "rich";
-  version = "10.12.0";
+  version = "10.14.0";
   format = "pyproject";
   disabled = pythonOlder "3.6";
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "willmcgugan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qq4k0pxq3r0463z4h65i9rb8cvilpnqmparklj5y5qk6svz0y2n";
+    sha256 = "1j1m1064gmy07ah4crds5sd0k7dcwvf2b1z6rvjfvq4v9fx962qv";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/pkgs/development/python-modules/ring-doorbell/default.nix b/pkgs/development/python-modules/ring-doorbell/default.nix
index 041a959ca5b2a..968182f8535fd 100644
--- a/pkgs/development/python-modules/ring-doorbell/default.nix
+++ b/pkgs/development/python-modules/ring-doorbell/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "ring-doorbell";
-  version = "0.7.1";
+  version = "0.7.2";
   disabled = !isPy3k;
 
   src = fetchPypi {
     pname = "ring_doorbell";
     inherit version;
-    sha256 = "sha256-xE3TqXdhiUf9Tzmzc48D65Y5t1ekauacsTwwSG1urz4=";
+    sha256 = "0a7e82abf27086843eb39c0279f5dfccea6751ff848560e67154ca6fbfa4ef2b";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/rjsmin/default.nix b/pkgs/development/python-modules/rjsmin/default.nix
index d78c445a3e56a..2dbc72b1d0ca8 100644
--- a/pkgs/development/python-modules/rjsmin/default.nix
+++ b/pkgs/development/python-modules/rjsmin/default.nix
@@ -1,11 +1,11 @@
 { lib, buildPythonPackage, fetchPypi }:
 buildPythonPackage rec {
   pname = "rjsmin";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0cmc72rlkvzz8fl89bc83czkx0pcvhzj7yn7m29r8pgnf5fcfpdi";
+    sha256 = "6c529feb6c400984452494c52dd9fdf59185afeacca2afc5174a28ab37751a1b";
   };
 
   # The package does not ship tests, and the setup machinary confuses
diff --git a/pkgs/development/python-modules/rki-covid-parser/default.nix b/pkgs/development/python-modules/rki-covid-parser/default.nix
new file mode 100644
index 0000000000000..ec201fcd9f579
--- /dev/null
+++ b/pkgs/development/python-modules/rki-covid-parser/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, aiohttp
+, aioresponses
+, buildPythonPackage
+, fetchFromGitHub
+, pytest-aiohttp
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "rki-covid-parser";
+  version = "1.3.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "thebino";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "UTLWBbNjvRuBwc5JD8l+izJu5vODLwS16ExdxUPT14A=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  checkInputs = [
+    aioresponses
+    pytest-aiohttp
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    # Tests require netowrk access
+    "tests/test_districts.py"
+    "tests/test_endpoint_availibility.py"
+  ];
+
+  pythonImportsCheck = [
+    "rki_covid_parser"
+  ];
+
+  meta = with lib; {
+    description = "Python module for working with data from the Robert-Koch Institut";
+    homepage = "https://github.com/thebino/rki-covid-parser";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/rnginline/default.nix b/pkgs/development/python-modules/rnginline/default.nix
new file mode 100644
index 0000000000000..9c4b6ad358e85
--- /dev/null
+++ b/pkgs/development/python-modules/rnginline/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchPypi, buildPythonPackage, lxml, docopt, six, pytestCheckHook, mock }:
+
+buildPythonPackage rec {
+  pname = "rnginline";
+  version = "0.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-j4W4zwHA4yA6iAFVa/LDKp00eeCX3PbmWkjd2LSUGfk=";
+  };
+
+  propagatedBuildInputs = [ lxml docopt six ];
+
+  checkInputs = [ pytestCheckHook mock ];
+
+  # Those tests does not succeed, a test dependency is likely missing but nothing is specified upstream
+  disabledTestPaths = [
+    "rnginline/test/test_cmdline.py"
+    "rnginline/test/test_rnginline.py"
+  ];
+
+  meta = {
+    description = "A Python library and command-line tool for loading multi-file RELAX NG schemas from arbitary URLs, and flattening them into a single RELAX NG schema";
+    homepage = "https://github.com/h4l/rnginline";
+    license = lib.licenses.asl20;
+    maintainers = [ lib.maintainers.lesuisse ];
+  };
+}
diff --git a/pkgs/development/python-modules/robotframework-sshlibrary/default.nix b/pkgs/development/python-modules/robotframework-sshlibrary/default.nix
index 82a5fd3fed671..e72a723086432 100644
--- a/pkgs/development/python-modules/robotframework-sshlibrary/default.nix
+++ b/pkgs/development/python-modules/robotframework-sshlibrary/default.nix
@@ -7,12 +7,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "3.7.0";
+  version = "3.8.0";
   pname = "robotframework-sshlibrary";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "55bd5a11bb1fe60a5a83446e6a3e1e81b13fc671e3b660aa55912a263c1f63aa";
+    sha256 = "aedf8a02bcb7344404cf8575d0ada25d6c7dc2fcb65de2113c4e07c63d2446c2";
   };
 
   # unit tests are impure
diff --git a/pkgs/development/python-modules/robotframework/default.nix b/pkgs/development/python-modules/robotframework/default.nix
index 3acb55377f9fa..b0b363d8ca2c6 100644
--- a/pkgs/development/python-modules/robotframework/default.nix
+++ b/pkgs/development/python-modules/robotframework/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "robotframework";
-  version = "4.1.2";
+  version = "4.1.3";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0s6lakbd8h1pa4lfdj18sm13gpywszgpcns4hz026a4kam787kby";
+    sha256 = "0j71awmfkwk7prz82kr1zbcl3nrih3396sshrygnqlrdjmgivd3p";
   };
 
   checkInputs = [ jsonschema ];
diff --git a/pkgs/development/python-modules/rokuecp/default.nix b/pkgs/development/python-modules/rokuecp/default.nix
index bfb5ddcfe5b66..e1ee42b08157d 100644
--- a/pkgs/development/python-modules/rokuecp/default.nix
+++ b/pkgs/development/python-modules/rokuecp/default.nix
@@ -1,12 +1,13 @@
 { lib
-, buildPythonPackage
-, fetchFromGitHub
 , aiohttp
-, xmltodict
-, yarl
 , aresponses
+, buildPythonPackage
+, fetchFromGitHub
 , pytest-asyncio
 , pytestCheckHook
+, pythonOlder
+, xmltodict
+, yarl
 }:
 
 buildPythonPackage rec {
@@ -14,6 +15,8 @@ buildPythonPackage rec {
   version = "0.8.4";
   format = "setuptools";
 
+  disabled = pythonOlder "3.7";
+
   src = fetchFromGitHub {
     owner = "ctalkington";
     repo = "python-rokuecp";
@@ -33,6 +36,11 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
+  disabledTests = [
+    # https://github.com/ctalkington/python-rokuecp/issues/249
+    "test_resolve_hostname"
+  ];
+
   pythonImportsCheck = [
     "rokuecp"
   ];
@@ -41,6 +49,6 @@ buildPythonPackage rec {
     description = "Asynchronous Python client for Roku (ECP)";
     homepage = "https://github.com/ctalkington/python-rokuecp";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/roombapy/default.nix b/pkgs/development/python-modules/roombapy/default.nix
index cc73e58fc7b80..2a97993669f17 100644
--- a/pkgs/development/python-modules/roombapy/default.nix
+++ b/pkgs/development/python-modules/roombapy/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "roombapy";
-  version = "1.6.4";
+  version = "1.6.5";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "pschmitt";
     repo = "roombapy";
     rev = version;
-    sha256 = "sha256-EN+em+lULAUplXlhcU409ZVPk9BfMmD2oNwO0ETuqoA=";
+    sha256 = "sha256-Xjeh29U+FCzI5n/i5s6wC0B88Ktmb8pnNDdOzCiKWi4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/ropgadget/default.nix b/pkgs/development/python-modules/ropgadget/default.nix
new file mode 100644
index 0000000000000..aaf31f06a1cc8
--- /dev/null
+++ b/pkgs/development/python-modules/ropgadget/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, capstone
+}:
+
+buildPythonPackage rec {
+  pname = "ropgadget";
+  version = "6.6";
+
+  src = fetchFromGitHub {
+    owner = "JonathanSalwan";
+    repo = "ROPgadget";
+    rev = "v${version}";
+    sha256 = "1i0gx0cwhxk6d8byvck17hh83szz3k6ndd118ha3q0r0msap0lz1";
+  };
+
+  propagatedBuildInputs = [
+    capstone
+  ];
+
+  # Test suite is working with binaries
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "ropgadget"
+  ];
+
+  meta = with lib; {
+    description = "Tool to search for gadgets in binaries to facilitate ROP exploitation";
+    homepage = "http://shell-storm.org/project/ROPgadget/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ bennofs ];
+  };
+}
diff --git a/pkgs/development/python-modules/rpcq/default.nix b/pkgs/development/python-modules/rpcq/default.nix
index 671038c8b468f..82db76bc859ff 100644
--- a/pkgs/development/python-modules/rpcq/default.nix
+++ b/pkgs/development/python-modules/rpcq/default.nix
@@ -14,6 +14,7 @@
 buildPythonPackage rec {
   pname = "rpcq";
   version = "3.9.2";
+  format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
@@ -42,7 +43,14 @@ buildPythonPackage rec {
       --replace "msgpack>=0.6,<1.0" "msgpack"
   '';
 
-  pythonImportsCheck = [ "rpcq" ];
+  disabledTests = [
+    # Test doesn't work properly on Hydra
+    "test_client_backlog"
+  ];
+
+  pythonImportsCheck = [
+    "rpcq"
+  ];
 
   meta = with lib; {
     description = "The RPC framework and message specification for rigetti Quantum Cloud services";
diff --git a/pkgs/development/python-modules/rq/default.nix b/pkgs/development/python-modules/rq/default.nix
index 731204b78e623..24001f176ae29 100644
--- a/pkgs/development/python-modules/rq/default.nix
+++ b/pkgs/development/python-modules/rq/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "rq";
-  version = "1.10";
+  version = "1.10.1";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "rq";
     repo = "rq";
     rev = "v${version}";
-    sha256 = "16k5qz5k3v232dzv99bxxw52jr2hb5ra08b6dkhqya98wjviq8l5";
+    sha256 = "1f4fi1rvn97d2b524q45k6s10b007pr23k0mf44q7hy8q4vnjmh5";
   };
 
   # test require a running redis rerver, which is something we can't do yet
diff --git a/pkgs/development/python-modules/rsa/default.nix b/pkgs/development/python-modules/rsa/default.nix
index b4668e3d2eaf6..ccfd237862d7e 100644
--- a/pkgs/development/python-modules/rsa/default.nix
+++ b/pkgs/development/python-modules/rsa/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "rsa";
-  version = "4.7.2";
+  version = "4.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9d689e6ca1b3038bc82bf8d23e944b6b6037bc02301a574935b2dd946e0353b9";
+    sha256 = "5c6bd9dc7a543b7fe4304a631f8a8a3b674e2bbfc49c2ae96200cdbe55df6b17";
   };
 
   checkInputs = [ unittest2 mock ];
diff --git a/pkgs/development/python-modules/ruyaml/default.nix b/pkgs/development/python-modules/ruyaml/default.nix
index 3b5a0d41283e4..bb0728bd26398 100644
--- a/pkgs/development/python-modules/ruyaml/default.nix
+++ b/pkgs/development/python-modules/ruyaml/default.nix
@@ -10,13 +10,15 @@
 
 buildPythonPackage rec {
   pname = "ruyaml";
-  version = "0.90.0.2";
+  version = "0.91.0";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "pycontribs";
     repo = pname;
-    rev = version;
+    rev = "v${version}";
     sha256 = "0gxvwry7n1gczxkjzyfrr3fammllkvnnamja4yln8xrg3n1h89al";
   };
 
@@ -35,7 +37,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "ruyaml" ];
+  pythonImportsCheck = [
+    "ruyaml"
+  ];
 
   meta = with lib; {
     description = "YAML 1.2 loader/dumper package for Python";
diff --git a/pkgs/development/python-modules/s3fs/default.nix b/pkgs/development/python-modules/s3fs/default.nix
index 2ed6361b256e7..e8a8bbea801b4 100644
--- a/pkgs/development/python-modules/s3fs/default.nix
+++ b/pkgs/development/python-modules/s3fs/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "s3fs";
-  version = "2021.10.1";
+  version = "2021.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-STriUFPlJiVSokep8cOiyPvNIPWQf85jp0kSa6WP4F4=";
+    sha256 = "3c23eac1fa5b685c9d507950b24f75929e8bcd1ea98b9a95cf2a9cb66ee6c9f5";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/sagemaker/default.nix b/pkgs/development/python-modules/sagemaker/default.nix
index ece8af476d876..3df0a94cf8e5a 100644
--- a/pkgs/development/python-modules/sagemaker/default.nix
+++ b/pkgs/development/python-modules/sagemaker/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "sagemaker";
-  version = "2.63.1";
+  version = "2.69.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "924847e9793b76d188049718aabbcad975296bb267812ad18e0279e7af0cb748";
+    sha256 = "8e9051a44a82be07e32d83cfc12d724fd1cb76f83ade34cd9e69c45a8d37c676";
   };
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/sanic-auth/default.nix b/pkgs/development/python-modules/sanic-auth/default.nix
index 38d73d461c2dc..c854017ae782d 100644
--- a/pkgs/development/python-modules/sanic-auth/default.nix
+++ b/pkgs/development/python-modules/sanic-auth/default.nix
@@ -1,24 +1,44 @@
-{ lib, buildPythonPackage, fetchPypi, sanic, sanic-testing, pytestCheckHook }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, sanic
+, sanic-testing
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "Sanic-Auth";
   version = "0.3.0";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "0dc24ynqjraqwgvyk0g9bj87zgpq4xnssl24hnsn7l5vlkmk8198";
   };
 
-  propagatedBuildInputs = [ sanic ];
+  propagatedBuildInputs = [
+    sanic
+  ];
 
-  checkInputs = [ pytestCheckHook sanic-testing ];
+  checkInputs = [
+    pytestCheckHook
+    sanic-testing
+  ];
 
-  pythonImportsCheck = [ "sanic_auth" ];
+  postPatch = ''
+    # Support for httpx>=0.20.0
+    substituteInPlace tests/test_auth.py \
+      --replace "allow_redirects=False" "follow_redirects=False"
+  '';
+
+  pythonImportsCheck = [
+    "sanic_auth"
+  ];
 
   meta = with lib; {
     description = "Simple Authentication for Sanic";
     homepage = "https://github.com/pyx/sanic-auth/";
     license = licenses.bsdOriginal;
-    maintainers = [ maintainers.arnoldfarkas ];
+    maintainers = with maintainers; [ arnoldfarkas ];
   };
 }
diff --git a/pkgs/development/python-modules/sanic/default.nix b/pkgs/development/python-modules/sanic/default.nix
index 6161f5c5eb022..2fab2a3df889c 100644
--- a/pkgs/development/python-modules/sanic/default.nix
+++ b/pkgs/development/python-modules/sanic/default.nix
@@ -12,6 +12,7 @@
 , pytest-benchmark
 , pytest-sugar
 , pytestCheckHook
+, pythonOlder
 , sanic-routing
 , sanic-testing
 , ujson
@@ -22,13 +23,16 @@
 
 buildPythonPackage rec {
   pname = "sanic";
-  version = "21.9.1";
+  version = "21.9.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "sanic-org";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-TRrJr/L8AXLAARPjhBi2FxNh+jvxxdeMN24cT1njmqY=";
+    sha256 = "0m18jdw1mvf7jhpnrxhm96p24pxvv0h9m71a8c7sqqkwnnpa3p5i";
   };
 
   postPatch = ''
@@ -85,6 +89,10 @@ buildPythonPackage rec {
     "test_auto_reload"
     "test_no_exceptions_when_cancel_pending_request"
     "test_ipv6_address_is_not_wrapped"
+    # Failure of the redirect tests seems to be related to httpx>0.20.0
+    "test_redirect"
+    "test_chained_redirect"
+    "test_unix_connection"
     # These appear to be very sensitive to output of commands
     "test_access_logs"
     "test_auto_reload"
@@ -99,7 +107,9 @@ buildPythonPackage rec {
   # for the same local port
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [ "sanic" ];
+  pythonImportsCheck = [
+    "sanic"
+  ];
 
   meta = with lib; {
     description = "Web server and web framework";
diff --git a/pkgs/development/python-modules/sarge/default.nix b/pkgs/development/python-modules/sarge/default.nix
index 1d46e65d34909..34d10f8a07719 100644
--- a/pkgs/development/python-modules/sarge/default.nix
+++ b/pkgs/development/python-modules/sarge/default.nix
@@ -1,20 +1,32 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "sarge";
-  version = "0.1.6";
+  version = "0.1.7";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "f48fb904e64f10ad6bef62422eaf4736acfd9b13ab64ba44822637a9dbb53265";
+  src = fetchFromGitHub {
+    owner = "vsajip";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-E1alSDXj0oeyB6dN5PAtN62FPpMsCKb4R9DpfWdFtn0=";
   };
 
-  # No tests in PyPI tarball
-  doCheck = false;
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "sarge"
+  ];
 
   meta = with lib; {
+    description = "Python wrapper for subprocess which provides command pipeline functionality";
     homepage = "https://sarge.readthedocs.org/";
-    description = "A wrapper for subprocess which provides command pipeline functionality";
     license = licenses.bsd3;
     maintainers = with maintainers; [ abbradar ];
   };
diff --git a/pkgs/development/python-modules/sarif-om/default.nix b/pkgs/development/python-modules/sarif-om/default.nix
new file mode 100644
index 0000000000000..b7b334ebf9ba3
--- /dev/null
+++ b/pkgs/development/python-modules/sarif-om/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildPythonPackage, fetchPypi
+, attrs
+, pbr
+}:
+
+buildPythonPackage rec {
+  pname = "sarif-om";
+  version = "1.0.4";
+
+  src = fetchPypi {
+    pname = "sarif_om";
+    inherit version;
+    sha256 = "cd5f416b3083e00d402a92e449a7ff67af46f11241073eea0461802a3b5aef98";
+  };
+
+  nativeBuildInputs = [
+    pbr
+  ];
+
+  propagatedBuildInputs = [
+    attrs
+  ];
+
+  pythonImportsCheck = [ "sarif_om" ];
+
+  # no tests included with tarball
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Classes implementing the SARIF 2.1.0 object model";
+    homepage = "https://github.com/microsoft/sarif-python-om";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/schema-salad/default.nix b/pkgs/development/python-modules/schema-salad/default.nix
index c3445c1d3ad92..66a5dc1d14752 100644
--- a/pkgs/development/python-modules/schema-salad/default.nix
+++ b/pkgs/development/python-modules/schema-salad/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "schema-salad";
-  version = "8.2.20211104054942";
+  version = "8.2.20211222191353";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-1crKyAON8iZBYxP6bhj0MxV3fSpnCh3Lqp8x91KLBT8=";
+    sha256 = "bae31897a9f5c16546081811728cc20296455dc805ffd0bac0064de6cbbcbf88";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/schema/default.nix b/pkgs/development/python-modules/schema/default.nix
index a29ae2da853c1..3ace46489db57 100644
--- a/pkgs/development/python-modules/schema/default.nix
+++ b/pkgs/development/python-modules/schema/default.nix
@@ -3,11 +3,11 @@
 buildPythonPackage rec {
 
   pname = "schema";
-  version = "0.7.4";
+  version = "0.7.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fbb6a52eb2d9facf292f233adcc6008cffd94343c63ccac9a1cb1f3e6de1db17";
+    sha256 = "f06717112c61895cabc4707752b88716e8420a8819d71404501e114f91043197";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/python-modules/scikit-hep-testdata/default.nix b/pkgs/development/python-modules/scikit-hep-testdata/default.nix
index 0f76efe2ea597..d8240fd83333b 100644
--- a/pkgs/development/python-modules/scikit-hep-testdata/default.nix
+++ b/pkgs/development/python-modules/scikit-hep-testdata/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "scikit-hep-testdata";
-  version = "0.4.10";
+  version = "0.4.11";
   format = "pyproject";
 
   # fetch from github as we want the data files
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "scikit-hep";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0x6ba02f3sba9341nhyg9jdcbl9c1h880d8m75ybdpbn7zlaya1d";
+    sha256 = "18r5nk8d5y79ihzjkjm5l0hiw2sjgj87px7vwb0bxbs73f5v353b";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/scikit-learn/default.nix b/pkgs/development/python-modules/scikit-learn/default.nix
index e7ac79b428376..b717432a653ee 100644
--- a/pkgs/development/python-modules/scikit-learn/default.nix
+++ b/pkgs/development/python-modules/scikit-learn/default.nix
@@ -19,23 +19,14 @@
 
 buildPythonPackage rec {
   pname = "scikit-learn";
-  version = "0.24.1";
+  version = "1.0.1";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "oDNKGALmTWVgIsO/q1anP71r9LEpg0PzaIryFRgQu98=";
+    sha256 = "sha256-rCyp27dU1hz+HIO6hINJjvlR0puT7AnW8AKEfyEKmdo=";
   };
 
-  patches = [
-    # This patch fixes compatibility with numpy 1.20. It was merged before 0.24.1 was released,
-    # but for some reason was not included in the 0.24.1 release tarball.
-    (fetchpatch {
-      url = "https://github.com/scikit-learn/scikit-learn/commit/e7ef22c3ba2334cb3b476e95d7c083cf6b48ce56.patch";
-      sha256 = "174554k1pbf92bj7wgq0xjj16bkib32ailyhwavdxaknh4bd9nmv";
-    })
-  ];
-
   buildInputs = [
     pillow
     glibcLocales
diff --git a/pkgs/development/python-modules/scipy/default.nix b/pkgs/development/python-modules/scipy/default.nix
index 2e19d2d42042b..9c3b28e0a9aca 100644
--- a/pkgs/development/python-modules/scipy/default.nix
+++ b/pkgs/development/python-modules/scipy/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "scipy";
-  version = "1.7.1";
+  version = "1.7.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6b47d5fa7ea651054362561a28b1ccc8da9368a39514c1bbf6c0977a1c376764";
+    sha256 = "ab5875facfdef77e0a47d5fd39ea178b58e60e454a4c85aa1e52fcb80db7babf";
   };
 
   nativeBuildInputs = [ cython gfortran pythran ];
diff --git a/pkgs/development/python-modules/scp/default.nix b/pkgs/development/python-modules/scp/default.nix
index 47276ad305c7e..e62581057d04c 100644
--- a/pkgs/development/python-modules/scp/default.nix
+++ b/pkgs/development/python-modules/scp/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "scp";
-  version = "0.14.1";
+  version = "0.14.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b776bd6ce8c8385aa9a025b64a9815b5d798f12d4ef0d712d569503f62aece8b";
+    sha256 = "713f117413bbd616a1a7da8f07db9adcd835ce73d8585fb469ea5b5785f92e4d";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/screeninfo/default.nix b/pkgs/development/python-modules/screeninfo/default.nix
index 21b3f30e1323b..f2ab4c946c49e 100644
--- a/pkgs/development/python-modules/screeninfo/default.nix
+++ b/pkgs/development/python-modules/screeninfo/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonApplication rec {
   pname = "screeninfo";
-  version = "0.7";
+  version = "0.8";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12a97c3527e3544ac5dbd7c1204283e2653d655cbd15844c990a83b1b13ef500";
+    sha256 = "9501bf8b8458c7d1be4cb0ac9abddddfa80b932fb3f65bfcb54f5586434b1dc5";
   };
 
   propagatedBuildInputs = lib.optionals (pythonOlder "3.7") [
diff --git a/pkgs/development/python-modules/screenlogicpy/default.nix b/pkgs/development/python-modules/screenlogicpy/default.nix
index 1032f6256bb64..1ade4b8ea1deb 100644
--- a/pkgs/development/python-modules/screenlogicpy/default.nix
+++ b/pkgs/development/python-modules/screenlogicpy/default.nix
@@ -2,32 +2,41 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
+, pytest-asyncio
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "screenlogicpy";
-  version = "0.4.3";
+  version = "0.5.3";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "dieselrabbit";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0v0nbwz0w2m7kzvcl0fh2v2rk5ldsq22siyxq6d401pkpzwih25c";
+    sha256 = "1ic19l0xr2wlnc8q6nhvv747k0f4j9k94ix14zkrwpp9nl09sm8j";
   };
 
   checkInputs = [
+    pytest-asyncio
     pytestCheckHook
   ];
 
   disabledTests = [
     # Tests require network access
     "test_gateway_discovery"
+    "test_async_discovery"
+    "test_gateway"
+    "test_async"
     "test_asyncio_gateway_discovery"
   ];
 
-  pythonImportsCheck = [ "screenlogicpy" ];
+  pythonImportsCheck = [
+    "screenlogicpy"
+  ];
 
   meta = with lib; {
     description = "Python interface for Pentair Screenlogic devices";
diff --git a/pkgs/development/python-modules/seaborn/default.nix b/pkgs/development/python-modules/seaborn/default.nix
index a57acebb4ad25..c190093bb30fc 100644
--- a/pkgs/development/python-modules/seaborn/default.nix
+++ b/pkgs/development/python-modules/seaborn/default.nix
@@ -1,15 +1,19 @@
 { lib
 , buildPythonPackage
-, pythonOlder
 , fetchPypi
-, nose
-, pandas
 , matplotlib
+, pytestCheckHook
+, numpy
+, pandas
+, pythonOlder
+, scipy
 }:
 
 buildPythonPackage rec {
   pname = "seaborn";
   version = "0.11.2";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
@@ -17,21 +21,35 @@ buildPythonPackage rec {
     sha256 = "cf45e9286d40826864be0e3c066f98536982baf701a7caa386511792d61ff4f6";
   };
 
-  checkInputs = [ nose ];
-  propagatedBuildInputs = [ pandas matplotlib ];
+  propagatedBuildInputs = [
+    matplotlib
+    numpy
+    pandas
+    scipy
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkPhase = ''
-    nosetests -v
-  '';
+  disabledTests = [
+    # Tests fail because of AttributeError:...
+    "TestKDEPlotBivariate"
+    "TestBoxPlotter"
+    "TestCatPlot"
+    "TestKDEPlotUnivariate"
+    "test_with_rug"
+    "test_bivariate_kde_norm"
+  ];
 
-  # Computationally very demanding tests
-  doCheck = false;
-  pythonImportsCheck= [ "seaborn" ];
+  pythonImportsCheck= [
+    "seaborn"
+  ];
 
-  meta = {
+  meta = with lib; {
     description = "Statisitical data visualization";
     homepage = "https://seaborn.pydata.org/";
-    license = with lib.licenses; [ bsd3 ];
-    maintainers = with lib.maintainers; [ fridh ];
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fridh ];
   };
 }
diff --git a/pkgs/development/python-modules/seatconnect/default.nix b/pkgs/development/python-modules/seatconnect/default.nix
new file mode 100644
index 0000000000000..7adef77210ab0
--- /dev/null
+++ b/pkgs/development/python-modules/seatconnect/default.nix
@@ -0,0 +1,63 @@
+{ lib
+, aiohttp
+, beautifulsoup4
+, buildPythonPackage
+, cryptography
+, fetchFromGitHub
+, lxml
+, pyjwt
+, pythonOlder
+, setuptools-scm
+, xmltodict
+}:
+
+buildPythonPackage rec {
+  pname = "seatconnect";
+  version = "1.1.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "farfar";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-EOaFZch/C9N4lacZ4IqIJUVSaEn8wOFN/WN6WOL/1mo=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    beautifulsoup4
+    cryptography
+    lxml
+    pyjwt
+    xmltodict
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "'pytest>=5,<6'," ""
+    substituteInPlace requirements.txt \
+      --replace "pytest-asyncio" ""
+  '';
+
+  # Project only has a dummy test
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "seatconnect"
+  ];
+
+  meta = with lib; {
+    description = "Python module to communicate with Seat Connect";
+    homepage = "https://github.com/farfar/seatconnect";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/secp256k1/default.nix b/pkgs/development/python-modules/secp256k1/default.nix
index 58fa81b444f37..1637814cadd26 100644
--- a/pkgs/development/python-modules/secp256k1/default.nix
+++ b/pkgs/development/python-modules/secp256k1/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "secp256k1";
-  version = "0.13.2";
+  version = "0.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a3b43e02d321c09eafa769a6fc2c156f555cab3a7db62175ef2fd21e16cdf20c";
+    sha256 = "82c06712d69ef945220c8b53c1a0d424c2ff6a1f64aee609030df79ad8383397";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/python-modules/send2trash/default.nix b/pkgs/development/python-modules/send2trash/default.nix
index a91be01511191..8a35d3ed71a66 100644
--- a/pkgs/development/python-modules/send2trash/default.nix
+++ b/pkgs/development/python-modules/send2trash/default.nix
@@ -6,13 +6,14 @@
 
 buildPythonPackage rec {
   pname = "Send2Trash";
-  version = "1.5.0";
+  version = "1.8.1b0";
+  format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "hsoft";
     repo = "send2trash";
     rev = version;
-    sha256 = "1c76zldhw2ay7q7r00nnzcampjz9lkqfcbzqpm0iqp5i6bmmv30v";
+    sha256 = "sha256-kDUEfyMTk8CXSxTEi7E6kl09ohnWHeaoif+EIaIJh9Q=";
   };
 
   doCheck = !stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/sendgrid/default.nix b/pkgs/development/python-modules/sendgrid/default.nix
index c77bcfee3384d..b71c25a283d07 100644
--- a/pkgs/development/python-modules/sendgrid/default.nix
+++ b/pkgs/development/python-modules/sendgrid/default.nix
@@ -11,13 +11,14 @@
 
 buildPythonPackage rec {
   pname = "sendgrid";
-  version = "6.8.3";
+  version = "6.9.3";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "sendgrid-python";
     rev = version;
-    sha256 = "sha256-kJbpYLM+GpyAHEnO2mqULOYyxIpOrmGeSMd4wJccz/8=";
+    sha256 = "sha256-/4Wk+1zAFwK+FxRhABQBha43/zapgPDfTFGrPJjXA7s=";
   };
 
   propagatedBuildInputs = [
@@ -32,20 +33,20 @@ buildPythonPackage rec {
     werkzeug
   ];
 
-  # Exclude tests that require network access
-  pytestFlagsArray = [
-    "--ignore test/test_sendgrid.py"
-    "--ignore live_test.py"
+  disabledTestPaths = [
+    # Exclude tests that require network access
+    "test/integ/test_sendgrid.py"
+    "live_test.py"
   ];
 
-  pythonImportsCheck = [ "sendgrid" ];
+  pythonImportsCheck = [
+    "sendgrid"
+  ];
 
   meta = with lib; {
     description = "Python client for SendGrid";
     homepage = "https://github.com/sendgrid/sendgrid-python";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
-    # No support for new starkbank-ecdsa releases
-    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix
index b7349caa233fa..0d06fa96563ba 100644
--- a/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -1,4 +1,7 @@
-{ aiohttp
+{ lib
+, stdenv
+, aiohttp
+, asttokens
 , blinker
 , botocore
 , bottle
@@ -7,61 +10,129 @@
 , certifi
 , chalice
 , django
+, executing
+, fakeredis
 , falcon
-, fetchPypi
-, flask
+, fetchFromGitHub
+, flask_login
+, gevent
+, httpx
 , iana-etc
 , isPy3k
+, jsonschema
 , libredirect
+, pure-eval
 , pyramid
+, pyspark
+, pytest-django
+, pytest-forked
+, pytest-localserver
+, pytestCheckHook
 , rq
 , sanic
+, sanic-testing
 , sqlalchemy
-, lib
 , tornado
-, urllib3
 , trytond
+, urllib3
 , werkzeug
-, executing
-, pure-eval
-, asttokens
 }:
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "1.4.3";
+  version = "1.5.1";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b9844751e40710e84a457c5bc29b21c383ccb2b63d76eeaad72f7f1c808c8828";
+  src = fetchFromGitHub {
+    owner = "getsentry";
+    repo = "sentry-python";
+    rev = version;
+    sha256 = "sha256-vQ5zeAscPMQH3L+Ogj50IZZp2pBoYaxHzvcXakaoC4k=";
   };
 
-  checkInputs = [ blinker botocore chalice django flask tornado bottle rq falcon sqlalchemy werkzeug trytond
-    executing pure-eval asttokens ]
-  ++ lib.optionals isPy3k [ celery pyramid sanic aiohttp ];
+  propagatedBuildInputs = [
+    certifi
+    urllib3
+  ];
 
-  propagatedBuildInputs = [ urllib3 certifi ];
+  checkInputs = [
+    asttokens
+    blinker
+    botocore
+    bottle
+    chalice
+    django
+    executing
+    fakeredis
+    falcon
+    flask_login
+    gevent
+    jsonschema
+    pure-eval
+    pytest-django
+    pytest-forked
+    pytest-localserver
+    pytestCheckHook
+    rq
+    sqlalchemy
+    tornado
+    trytond
+    werkzeug
+  ] ++ lib.optionals isPy3k [
+    aiohttp
+    celery
+    httpx
+    pyramid
+    pyspark
+    sanic
+    sanic-testing
+  ];
 
+  doCheck = !stdenv.isDarwin;
 
-  # The Sentry tests need access to `/etc/protocols` (the tests call
-  # `socket.getprotobyname('tcp')`, which reads from this file). Normally
-  # this path isn't available in the sandbox. Therefore, use libredirect
-  # to make on eavailable from `iana-etc`. This is a test-only operation.
-  preCheck = lib.optionalString doCheck ''
-    export NIX_REDIRECTS=/etc/protocols=${iana-etc}/etc/protocols
-    export LD_PRELOAD=${libredirect}/lib/libredirect.so
-  '';
+  disabledTests = [
+    # Issue with the asseration
+    "test_auto_enabling_integrations_catches_import_error"
+    # Output mismatch in sqlalchemy test
+    "test_too_large_event_truncated"
+    # Failing falcon tests
+    "test_has_context"
+    "uri_template-"
+    "path-"
+    "test_falcon_large_json_request"
+    "test_falcon_empty_json_request"
+    "test_falcon_raw_data_request"
+    # Failing spark tests
+    "test_set_app_properties"
+    "test_start_sentry_listener"
+    # Failing threading test
+    "test_circular_references"
+    # Failing wsgi test
+    "test_session_mode_defaults_to_request_mode_in_wsgi_handler"
+  ];
 
-  postCheck = "unset NIX_REDIRECTS LD_PRELOAD";
+  disabledTestPaths = [
+    # Some tests are failing (network access, assertion errors)
+    "tests/integrations/aiohttp/"
+    "tests/integrations/gcp/"
+    "tests/integrations/httpx/"
+    "tests/integrations/stdlib/test_httplib.py"
+    # Tests are blocking
+    "tests/integrations/celery/"
+    # pytest-chalice is not available in nixpkgs yet
+    "tests/integrations/chalice/"
+    # broken since rq-1.10.1: https://github.com/getsentry/sentry-python/issues/1274
+    "tests/integrations/rq/"
+  ];
 
-  # no tests
-  doCheck = false;
-  pythonImportsCheck = [ "sentry_sdk" ];
+  pythonImportsCheck = [
+    "sentry_sdk"
+  ];
 
   meta = with lib; {
+    description = "Python SDK for Sentry.io";
     homepage = "https://github.com/getsentry/sentry-python";
-    description = "New Python SDK for Sentry.io";
     license = licenses.bsd2;
-    maintainers = with maintainers; [ gebner ];
+    maintainers = with maintainers; [ fab gebner ];
   };
 }
diff --git a/pkgs/development/python-modules/sepaxml/default.nix b/pkgs/development/python-modules/sepaxml/default.nix
index 8f6d4eb94f582..1ebe0e49b091a 100644
--- a/pkgs/development/python-modules/sepaxml/default.nix
+++ b/pkgs/development/python-modules/sepaxml/default.nix
@@ -1,20 +1,25 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy27
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
 , lxml
-, pytest
+, pytestCheckHook
 , text-unidecode
 , xmlschema
 }:
 
 buildPythonPackage rec {
-  version = "2.2.0";
   pname = "sepaxml";
-  disabled = isPy27;
+  version = "2.4.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "raphaelm";
     repo = "python-sepaxml";
     rev = version;
-    sha256 = "1qmgdcz61hs65m2fddwn9jpyk2sxifdb0f3jz1n0lgy774z0pmas";
+    sha256 = "sha256-Up6zHm20tc6+lQk958csdgC4FMJFhdt+oAJcNcVbcjk=";
   };
 
   propagatedBuildInputs = [
@@ -22,15 +27,18 @@ buildPythonPackage rec {
     xmlschema
   ];
 
-  checkInputs = [ pytest lxml ];
+  checkInputs = [
+    pytestCheckHook
+    lxml
+  ];
 
-  checkPhase = ''
-    pytest
-  '';
+  pythonImportsCheck = [
+    "sepaxml"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/raphaelm/python-sepaxml/";
     description = "SEPA Direct Debit XML generation in python";
+    homepage = "https://github.com/raphaelm/python-sepaxml/";
     license = licenses.mit;
     maintainers = with maintainers; [ elohmeier ];
   };
diff --git a/pkgs/development/python-modules/seqdiag/default.nix b/pkgs/development/python-modules/seqdiag/default.nix
index 2ae9defc504e6..c27a2eb2c91c0 100644
--- a/pkgs/development/python-modules/seqdiag/default.nix
+++ b/pkgs/development/python-modules/seqdiag/default.nix
@@ -1,25 +1,49 @@
-{ lib, fetchurl, buildPythonPackage, isPy27, pep8, nose, unittest2, docutils
+{ lib
 , blockdiag
+, buildPythonPackage
+, fetchFromGitHub
+, nose
+, pytestCheckHook
+, pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "seqdiag";
-  version = "2.0.0";
-  disabled = isPy27;
+  version = "3.0.0";
+  format = "setuptools";
 
-  src = fetchurl {
-    url = "mirror://pypi/s/seqdiag/${pname}-${version}.tar.gz";
-    sha256 = "0k7j4f9j3d0325piwvbv90nfh0wzfk2n6s73s6h6nsxmqshcgswk";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "blockdiag";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-Dh9JMx50Nexi0q39rYr9MpkKmQRAfT7lzsNOXoTuphg=";
   };
 
-  buildInputs = [ pep8 nose unittest2 docutils ];
+  propagatedBuildInputs = [
+    blockdiag
+    setuptools
+  ];
+
+  checkInputs = [
+    nose
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    "src/seqdiag/tests/"
+  ];
 
-  propagatedBuildInputs = [ blockdiag ];
+  disabledTests = [
+    # UnicodeEncodeError: 'latin-1' codec can't encode...
+    "test_setup_inline_svg_is_true_with_multibytes"
+  ];
 
-  # Tests fail:
-  #   ...
-  #   ERROR: Failure: OSError ([Errno 2] No such file or directory: '/tmp/nix-build-python2.7-seqdiag-0.9.0.drv-0/seqdiag-0.9.0/src/seqdiag/tests/diagrams/')
-  doCheck = false;
+  pythonImportsCheck = [
+    "seqdiag"
+  ];
 
   meta = with lib; {
     description = "Generate sequence-diagram image from spec-text file (similar to Graphviz)";
diff --git a/pkgs/development/python-modules/setupmeta/default.nix b/pkgs/development/python-modules/setupmeta/default.nix
new file mode 100644
index 0000000000000..07b521ee94954
--- /dev/null
+++ b/pkgs/development/python-modules/setupmeta/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, git
+, mock
+, pep440
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "setupmeta";
+  version = "3.3.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "codrsquad";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "21hABRiY8CTKkpFjePgBAtjs4/G5eFS3aPNMCBC41CY=";
+  };
+
+  checkInputs = [
+    git
+    mock
+    pep440
+    pytestCheckHook
+    setuptools-scm
+  ];
+
+  disabledTests = [
+    # Tests want to scan site-packages
+    "test_check_dependencies"
+    "test_scenario"
+    "test_git_versioning"
+  ];
+
+  pythonImportsCheck = [
+    "setupmeta"
+  ];
+
+  meta = with lib; {
+    description = "Python module to simplify setup.py files";
+    homepage = "https://github.com/codrsquad/setupmeta";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/shamir-mnemonic/default.nix b/pkgs/development/python-modules/shamir-mnemonic/default.nix
index 74ca2228d8b4d..e6502a76524c6 100644
--- a/pkgs/development/python-modules/shamir-mnemonic/default.nix
+++ b/pkgs/development/python-modules/shamir-mnemonic/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "shamir-mnemonic";
-  version = "0.2.1";
+  version = "0.2.2";
 
   disabled = !isPy3k;
 
@@ -18,14 +18,9 @@ buildPythonPackage rec {
     owner = "trezor";
     repo = "python-${pname}";
     rev = "v${version}";
-    sha256 = "1mi1n01yw8yycbiv1l0xnfzlhhq2arappyvyi2jm5yq65jln77kg";
+    sha256 = "sha256-b9tBXN9dBdAeGg3xf5ZBdd6kPpFzseJl6wRTTfNZEwo=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "click>=7,<8" "click"
-  '';
-
   propagatedBuildInputs = [
     attrs
     click
diff --git a/pkgs/development/python-modules/shap/default.nix b/pkgs/development/python-modules/shap/default.nix
index 128dacfd55a8f..fbd43953b5924 100644
--- a/pkgs/development/python-modules/shap/default.nix
+++ b/pkgs/development/python-modules/shap/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "shap";
-  version = "0.39.0";
+  version = "0.40.0";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "slundberg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "065c40k6g8sy6ynzk4k8k7iddl18g2b6kb9kg4m6g7npclmn5wvp";
+    sha256 = "0ra0dp319qj13wxaqh2vz4xhn59m9h3bfg1m6wf3cxsix737b1k4";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/shortuuid/default.nix b/pkgs/development/python-modules/shortuuid/default.nix
index f1c1efbc0ec21..5b7aad436fe11 100644
--- a/pkgs/development/python-modules/shortuuid/default.nix
+++ b/pkgs/development/python-modules/shortuuid/default.nix
@@ -2,21 +2,25 @@
 , buildPythonPackage
 , isPy3k
 , fetchPypi
+, django
 , pep8
 }:
 
 buildPythonPackage rec {
   pname = "shortuuid";
-  version = "1.0.1";
+  version = "1.0.8";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3c11d2007b915c43bee3e10625f068d8a349e04f0d81f08f5fa08507427ebf1f";
+    sha256 = "9435e87e5a64f3b92f7110c81f989a3b7bdb9358e22d2359829167da476cfc23";
   };
 
-  buildInputs = [pep8];
+  checkInputs = [
+    django
+    pep8
+  ];
 
   meta = with lib; {
     description = "A generator library for concise, unambiguous and URL-safe UUIDs";
diff --git a/pkgs/development/python-modules/simple-di/default.nix b/pkgs/development/python-modules/simple-di/default.nix
index 4977c3a4bf146..612d913b7b6f0 100644
--- a/pkgs/development/python-modules/simple-di/default.nix
+++ b/pkgs/development/python-modules/simple-di/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "simple_di";
-  version = "0.1.2";
+  version = "0.1.4";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0wqbfbajnwmkzih0jl3mncalr7dslvmwhb5mk11asqvmbp1xhn30";
+    sha256 = "2667f2b9095e86c7726b3853c30b37f527f7d247282c7dd0b3428a7fb5d1a8a9";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/simple-rest-client/default.nix b/pkgs/development/python-modules/simple-rest-client/default.nix
index 757acf32e5165..d4cbfdbfb94a4 100644
--- a/pkgs/development/python-modules/simple-rest-client/default.nix
+++ b/pkgs/development/python-modules/simple-rest-client/default.nix
@@ -12,7 +12,8 @@
 
 buildPythonPackage rec {
   pname = "simple-rest-client";
-  version = "1.1.1";
+  version = "1.1.2";
+  format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
@@ -20,7 +21,7 @@ buildPythonPackage rec {
     owner = "allisson";
     repo = "python-simple-rest-client";
     rev = version;
-    sha256 = "sha256-oJXP2/lChlzzKyNiTgJMHkcNkFyy92kTPxgDkon54g8=";
+    sha256 = "sha256-kyoFtPa94c5EAT7wBEXdkPEg8Bp3hJQQoFsutap1qvs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/simplejson/default.nix b/pkgs/development/python-modules/simplejson/default.nix
index 52e55c71aff0e..1e6def5ae78a6 100644
--- a/pkgs/development/python-modules/simplejson/default.nix
+++ b/pkgs/development/python-modules/simplejson/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "simplejson";
-  version = "3.17.5";
+  version = "3.17.6";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1vljsd5bk12gasadkxcddwhmp38fj64x1aqi4frk3frq9lp8h3a1";
+    sha256 = "1irlp5sakbdfcf717qmrx0r9rjlmwk0vza6zm3y55d32zw5c1cxg";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/simplenote/default.nix b/pkgs/development/python-modules/simplenote/default.nix
new file mode 100644
index 0000000000000..5cde9b794cdf4
--- /dev/null
+++ b/pkgs/development/python-modules/simplenote/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "simplenote";
+  version = "2.1.4";
+
+  src = fetchFromGitHub {
+    owner = "simplenote-vim";
+    repo = "simplenote.py";
+    rev = "v${version}";
+    sha256 = "1grvvgzdybhxjydalnsgh2aaz3f48idv5lqs48gr0cn7n18xwhd5";
+  };
+
+   propagatedBuildInputs = [ ];
+
+   meta = with lib; {
+    description = "A python library for the simplenote.com web service";
+    homepage = "http://readthedocs.org/docs/simplenotepy/en/latest/api.html";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+   };
+
+}
diff --git a/pkgs/development/python-modules/simplisafe-python/default.nix b/pkgs/development/python-modules/simplisafe-python/default.nix
index 624b63ada618c..bbfd95cd9212d 100644
--- a/pkgs/development/python-modules/simplisafe-python/default.nix
+++ b/pkgs/development/python-modules/simplisafe-python/default.nix
@@ -4,6 +4,7 @@
 , asynctest
 , backoff
 , buildPythonPackage
+, docutils
 , fetchFromGitHub
 , poetry-core
 , pytest-aiohttp
@@ -18,22 +19,26 @@
 
 buildPythonPackage rec {
   pname = "simplisafe-python";
-  version = "2021.10.0";
+  version = "2021.12.2";
   format = "pyproject";
-  disabled = pythonOlder "3.7";
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "bachya";
     repo = pname;
     rev = version;
-    sha256 = "sha256-J0uMlczR7y5wDchaOjp5d3Vf36WfRmt7d51koGiNHBk=";
+    sha256 = "sha256-XVSoPPBdjSQBYrUs0AFGsGFRrQOWbPzlB2mmEBSbFI4=";
   };
 
-  nativeBuildInputs = [ poetry-core ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
 
   propagatedBuildInputs = [
     aiohttp
     backoff
+    docutils
     pytz
     types-pytz
     voluptuous
@@ -48,15 +53,25 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'docutils = "<0.18"' 'docutils = "*"'
+  '';
+
   disabledTests = [
     # simplipy/api.py:253: InvalidCredentialsError
     "test_request_error_failed_retry"
     "test_update_error"
   ];
 
-  disabledTestPaths = [ "examples/" ];
+  disabledTestPaths = [
+    # Ignore the examples as they are prefixed with test_
+    "examples/"
+  ];
 
-  pythonImportsCheck = [ "simplipy" ];
+  pythonImportsCheck = [
+    "simplipy"
+  ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/siosocks/default.nix b/pkgs/development/python-modules/siosocks/default.nix
new file mode 100644
index 0000000000000..2a4803ef8bd26
--- /dev/null
+++ b/pkgs/development/python-modules/siosocks/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest-asyncio
+, pytest-trio
+, pytestCheckHook
+, pythonOlder
+, trio
+}:
+
+buildPythonPackage rec {
+  pname = "siosocks";
+  version = "0.2.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-k2+qTtxkF0rT5LLPW8icePbf9jNopdo9uDp3NPA9SRo=";
+  };
+
+  propagatedBuildInputs = [
+    trio
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
+    pytest-trio
+  ];
+
+  pythonImportsCheck = [
+    "siosocks"
+  ];
+
+  meta = with lib; {
+    description = "Python socks 4/5 client/server library/framework";
+    homepage = "https://github.com/pohmelie/siosocks";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/skodaconnect/default.nix b/pkgs/development/python-modules/skodaconnect/default.nix
new file mode 100644
index 0000000000000..5196651959c7c
--- /dev/null
+++ b/pkgs/development/python-modules/skodaconnect/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, aiohttp
+, beautifulsoup4
+, buildPythonPackage
+, cryptography
+, fetchFromGitHub
+, lxml
+, pyjwt
+, pythonOlder
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "skodaconnect";
+  version = "1.1.12";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "lendy007";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-OKNw+t8S6rRQDKNRBN/CU36OwWojuOH6mMQ5QItkkb8=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    beautifulsoup4
+    cryptography
+    lxml
+    pyjwt
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "'pytest>=5,<6'," ""
+    substituteInPlace requirements.txt \
+      --replace "pytest-asyncio" ""
+  '';
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "skodaconnect"
+  ];
+
+  meta = with lib; {
+    description = "Python module to communicate with Skoda Connect";
+    homepage = "https://github.com/lendy007/skodaconnect";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/slack-sdk/default.nix b/pkgs/development/python-modules/slack-sdk/default.nix
index 7d2391daad9b3..8a8957459ee5f 100644
--- a/pkgs/development/python-modules/slack-sdk/default.nix
+++ b/pkgs/development/python-modules/slack-sdk/default.nix
@@ -20,14 +20,16 @@
 
 buildPythonPackage rec {
   pname = "slack-sdk";
-  version = "3.11.2";
+  version = "3.13.0";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "slackapi";
     repo = "python-slack-sdk";
     rev = "v${version}";
-    sha256 = "sha256-jfFNka+PZXXYz6r7gwoxoqK7SX2RRcDNlCSqVG3JPY0=";
+    sha256 = "sha256-L12faNLwjlEkJZ9s9aIyUHSk7x3n908EHCYU9jECiYQ=";
   };
 
   propagatedBuildInputs = [
@@ -66,7 +68,9 @@ buildPythonPackage rec {
     "test_interactions"
   ];
 
-  pythonImportsCheck = [ "slack_sdk" ];
+  pythonImportsCheck = [
+    "slack_sdk"
+  ];
 
   meta = with lib; {
     description = "Slack Developer Kit for Python";
diff --git a/pkgs/development/python-modules/slicer/default.nix b/pkgs/development/python-modules/slicer/default.nix
index f8329dbab479a..89fb4e5dc728a 100644
--- a/pkgs/development/python-modules/slicer/default.nix
+++ b/pkgs/development/python-modules/slicer/default.nix
@@ -5,6 +5,7 @@
 , pytestCheckHook
 , pandas
 , pytorch
+, scipy
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,7 @@ buildPythonPackage rec {
     sha256 = "f5d5f7b45f98d155b9c0ba6554fa9770c6b26d5793a3e77a1030fb56910ebeec";
   };
 
-  checkInputs = [ pytestCheckHook pandas pytorch ];
+  checkInputs = [ pytestCheckHook pandas pytorch scipy ];
 
   meta = with lib; {
     description = "Wraps tensor-like objects and provides a uniform slicing interface via __getitem__";
diff --git a/pkgs/development/python-modules/slither-analyzer/default.nix b/pkgs/development/python-modules/slither-analyzer/default.nix
index a49c2a8b743bc..8eaf442fb5de8 100644
--- a/pkgs/development/python-modules/slither-analyzer/default.nix
+++ b/pkgs/development/python-modules/slither-analyzer/default.nix
@@ -8,18 +8,17 @@
 , prettytable
 , setuptools
 , solc
-  # solc is currently broken on Darwin, default to false
-, withSolc ? !stdenv.isDarwin
+, withSolc ? false
 }:
 
 buildPythonPackage rec {
   pname = "slither-analyzer";
-  version = "0.8.1";
+  version = "0.8.2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-5JgF53ip72bne8AlGf126FIIvXi+u7rovJmMSCcZjEQ=";
+    sha256 = "sha256-77045eB7KvHBb0j61qz4zJTtEprg4/aH6MrPlQY1wiM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/smbprotocol/default.nix b/pkgs/development/python-modules/smbprotocol/default.nix
index 50caecaa97cb6..b5d826c8f8efb 100644
--- a/pkgs/development/python-modules/smbprotocol/default.nix
+++ b/pkgs/development/python-modules/smbprotocol/default.nix
@@ -12,14 +12,16 @@
 
 buildPythonPackage rec {
   pname = "smbprotocol";
-  version = "1.8.2";
+  version = "1.8.3";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "jborean93";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-NBwfWW02lzR4Xk+7qodQX+eIXMTtdy9WOtLzsf30d4c=";
+    sha256 = "sha256-m9C+uzwrEOcbkvBQ3Z+to2BsX2i7cLnUiV/+L7hMUdE=";
   };
 
   propagatedBuildInputs = [
@@ -43,7 +45,9 @@ buildPythonPackage rec {
     "test_recv_"
   ];
 
-  pythonImportsCheck = [ "smbprotocol" ];
+  pythonImportsCheck = [
+    "smbprotocol"
+  ];
 
   meta = with lib; {
     description = "Python SMBv2 and v3 Client";
diff --git a/pkgs/development/python-modules/smpplib/default.nix b/pkgs/development/python-modules/smpplib/default.nix
index 4966e8c8fb286..179ab7ce1bfc7 100644
--- a/pkgs/development/python-modules/smpplib/default.nix
+++ b/pkgs/development/python-modules/smpplib/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "smpplib";
-  version = "2.2.0";
+  version = "2.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3d513178a35573f66faac4ef2127c4bd73307ddb463d145b17b013cf709d9ddd";
+    sha256 = "c0b01947b47e404f42ccb59e906b6e4eb507963c971d59b44350db0f29c76166";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/snowballstemmer/default.nix b/pkgs/development/python-modules/snowballstemmer/default.nix
index 5f3029de2a706..a1813fac54e23 100644
--- a/pkgs/development/python-modules/snowballstemmer/default.nix
+++ b/pkgs/development/python-modules/snowballstemmer/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "snowballstemmer";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914";
+    sha256 = "09b16deb8547d3412ad7b590689584cd0fe25ec8db3be37788be3810cbf19cb1";
   };
 
   # No tests included
diff --git a/pkgs/development/python-modules/snowflake-connector-python/default.nix b/pkgs/development/python-modules/snowflake-connector-python/default.nix
index 3f4ec9a0f5615..c157a6a2132ab 100644
--- a/pkgs/development/python-modules/snowflake-connector-python/default.nix
+++ b/pkgs/development/python-modules/snowflake-connector-python/default.nix
@@ -24,12 +24,12 @@
 
 buildPythonPackage rec {
   pname = "snowflake-connector-python";
-  version = "2.6.2";
+  version = "2.7.2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ce131b1dd059a4d081e78595d618654bf9b9fc184d78352f24512375467257d1";
+    sha256 = "b2f8f360750eefa98be09ff53c130381646f8dfc8c6e4a705387676210ff8578";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix b/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
index 1433ee1185f40..ba2463f4aa8f1 100644
--- a/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "snowflake-sqlalchemy";
-  version = "1.3.2";
+  version = "1.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "51d9d923ebbfefe392582f6e3d0faa83f52e5eb6f190607820e055318dd2d2f8";
+    sha256 = "d1c087ce0a90bbce77f2308b9c4aeb14efeb26a3ae9da7c3d5a153341cd8ef34";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/socialscan/default.nix b/pkgs/development/python-modules/socialscan/default.nix
new file mode 100644
index 0000000000000..9e51ccd81d37e
--- /dev/null
+++ b/pkgs/development/python-modules/socialscan/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, colorama
+, pythonOlder
+, tqdm
+}:
+
+buildPythonPackage rec {
+  pname = "socialscan";
+  version = "1.4.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "iojw";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "rT+/j6UqDOzuNBdN3I74YIxS6qkhd7BjHCGX+gGjprc=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    colorama
+    tqdm
+  ];
+
+  # Tests require network access
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "socialscan"
+  ];
+
+  meta = with lib; {
+    description = "Python library and CLI for accurately querying username and email usage on online platforms";
+    homepage = "https://github.com/iojw/socialscan";
+    license = with licenses; [ mpl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/socid-extractor/default.nix b/pkgs/development/python-modules/socid-extractor/default.nix
new file mode 100644
index 0000000000000..34c0c20e075a0
--- /dev/null
+++ b/pkgs/development/python-modules/socid-extractor/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, beautifulsoup4
+, buildPythonPackage
+, fetchFromGitHub
+, python-dateutil
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "socid-extractor";
+  version = "0.0.22";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "soxoj";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "kHF9CBlUKrD/DRVwJveenpFMr7pIrxEBNkFHHLa46KQ=";
+  };
+
+  propagatedBuildInputs = [
+    beautifulsoup4
+    python-dateutil
+    requests
+  ];
+
+  # Test require network access
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "socid_extractor"
+  ];
+
+  meta = with lib; {
+    description = "Python module to extract details from personal pages";
+    homepage = "https://github.com/soxoj/socid-extractor";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/soco/default.nix b/pkgs/development/python-modules/soco/default.nix
index c5a06ee8f2026..df9a06aec14c6 100644
--- a/pkgs/development/python-modules/soco/default.nix
+++ b/pkgs/development/python-modules/soco/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "soco";
-  version = "0.24.1";
+  version = "0.25.2";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "SoCo";
     repo = "SoCo";
     rev = "v${version}";
-    sha256 = "sha256-78JYetA6msGiLMHNTdTN2b5lOiXaY+TQA9ID8qtPmM0=";
+    sha256 = "sha256-Bu9RtzvQVDPekIzkVvcDkTs5Z+IDx6lSBCMv5zs8gNA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/softlayer/default.nix b/pkgs/development/python-modules/softlayer/default.nix
index ef0bb8a071703..b0705346abdb2 100644
--- a/pkgs/development/python-modules/softlayer/default.nix
+++ b/pkgs/development/python-modules/softlayer/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "softlayer";
-  version = "5.9.7";
+  version = "5.9.8";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "softlayer-python";
     rev = "v${version}";
-    sha256 = "0zwhykrpckx3ln4w6vlgp0nrkkr8343ni1w43hxznm55qmrllrpg";
+    sha256 = "087kyl2yacvh12i4x3357659mgq4xycv8a4y9rl3rj57kp5jc6ah";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/solax/default.nix b/pkgs/development/python-modules/solax/default.nix
index 09e09d9418239..e76df373bf126 100644
--- a/pkgs/development/python-modules/solax/default.nix
+++ b/pkgs/development/python-modules/solax/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "solax";
-  version = "0.2.8";
+  version = "0.2.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-bOpDrbRbdsb4XgEksAQG4GE26XSTwGAECq9Fh//zoYc=";
+    sha256 = "e66db0c5d4ec840b047e574f0325ea01862d1f5563a844510541b35faa55f392";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/somajo/default.nix b/pkgs/development/python-modules/somajo/default.nix
index 5d17a907caeb1..8701fa98e67d0 100644
--- a/pkgs/development/python-modules/somajo/default.nix
+++ b/pkgs/development/python-modules/somajo/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "SoMaJo";
-  version = "2.1.5";
+  version = "2.1.6";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "tsproisl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "17v1vmbjwpxwql25vlbm7xsair7945ljmyaricxx8fd6fxvgn9rr";
+    sha256 = "1q88x05729qdnl1gbahisjk3s97wha0b5dj3n63kq2qyvyy0929s";
   };
 
   propagatedBuildInputs = [ regex ];
diff --git a/pkgs/development/python-modules/soupsieve/default.nix b/pkgs/development/python-modules/soupsieve/default.nix
index 954599ffefaa5..6c50cc6e11500 100644
--- a/pkgs/development/python-modules/soupsieve/default.nix
+++ b/pkgs/development/python-modules/soupsieve/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "soupsieve";
-  version = "2.2.1";
+  version = "2.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "052774848f448cf19c7e959adf5566904d525f33a3f8b6ba6f6f8f26ec7de0cc";
+    sha256 = "b8d49b1cd4f037c7082a9683dfa1801aa2597fb11c3a1155b7a5b94829b4f1f9";
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/spacy-alignments/default.nix b/pkgs/development/python-modules/spacy-alignments/default.nix
index 32506c2d9e749..95ba3c946343c 100644
--- a/pkgs/development/python-modules/spacy-alignments/default.nix
+++ b/pkgs/development/python-modules/spacy-alignments/default.nix
@@ -11,31 +11,21 @@
 
 buildPythonPackage rec {
   pname = "spacy-alignments";
-  version = "0.8.3";
+  version = "0.8.4";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zrqBjaIjtF6bJMbmw7Zo+BeApN6sxxfLkrzsDjdvC78=";
+    sha256 = "sha256-1HApl/RZ0w5Tf2OPu1QBUa36uIqilp+dDbPjujn0e9s=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
-    inherit patches src;
+    inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-YRyG2yflEXKklNqXiDD9oK3J1lq4o704+Eeu2hyY3xI=";
+    sha256 = "sha256-oFSruBnoodv6/0/OrmJ/2SVoWm3u3FGtzVJ9xgp0+Cg=";
   };
 
-  patches = [
-    # Add Cargo.lock, from upstream PR:
-    # https://github.com/explosion/spacy-alignments/pull/3
-    (fetchpatch {
-      url = "https://github.com/explosion/spacy-alignments/commit/7b0ba13ff0d245bfbbe344a36fb7bbd311dd4906.diff";
-      sha256 = "sha256-jx97SSC+3z+ByInNs8Uq58H50eCo4fDCwEi6VKxRs2k=";
-      excludes = [ ".gitignore" ];
-    })
-  ];
-
   nativeBuildInputs = [
     setuptools-rust
   ] ++ (with rustPlatform; [
diff --git a/pkgs/development/python-modules/spacy-transformers/default.nix b/pkgs/development/python-modules/spacy-transformers/default.nix
index 9d930e58fa131..757c945f3f05b 100644
--- a/pkgs/development/python-modules/spacy-transformers/default.nix
+++ b/pkgs/development/python-modules/spacy-transformers/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "spacy-transformers";
-  version = "1.1.2";
+  version = "1.1.3";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b84c195dc21a28582579dea3f76c90222e29ee0d99b6adf38ade75646ed2746e";
+    sha256 = "f4f553d3d2a065147a8c1292b5d9adf050c0f78dd15bb05c9614341cf88c5574";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/spacy/default.nix b/pkgs/development/python-modules/spacy/default.nix
index d959ad8947d65..0d095cfef07e0 100644
--- a/pkgs/development/python-modules/spacy/default.nix
+++ b/pkgs/development/python-modules/spacy/default.nix
@@ -29,13 +29,13 @@
 
 buildPythonPackage rec {
   pname = "spacy";
-  version = "3.1.3";
+  version = "3.2.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-WAhOZKJ5lxkupI8Yq7MOwUjFu+edBNF7pNL8JiEAwqI=";
+    sha256 = "68e54b2a14ce74eeecea9bfb0b9bdadf8a4a8157765dbefa7e50d25a1bf0f2f3";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/spglib/default.nix b/pkgs/development/python-modules/spglib/default.nix
index e1d87bba03e3b..a54fa65d08b74 100644
--- a/pkgs/development/python-modules/spglib/default.nix
+++ b/pkgs/development/python-modules/spglib/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "spglib";
-  version = "1.16.1";
+  version = "1.16.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9fd2fefbd83993b135877a69c498d8ddcf20a9980562b65b800cfb4cdadad003";
+    sha256 = "ff1420967d64c2d4f0d747886116a6836d9b473454cdd73d560dbfe973a8a038";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/pkgs/development/python-modules/sphinx-material/default.nix b/pkgs/development/python-modules/sphinx-material/default.nix
index aa6dc0d6bf18f..f36db1ae87bd1 100644
--- a/pkgs/development/python-modules/sphinx-material/default.nix
+++ b/pkgs/development/python-modules/sphinx-material/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "sphinx-material";
-  version = "0.0.32";
+  version = "0.0.35";
 
   src = fetchPypi {
     pname = "sphinx_material";
     inherit version;
-    sha256 = "ec02825a1bbe8b662fe624c11b87f1cd8d40875439b5b18c38649cf3366201fa";
+    sha256 = "27f0f1084aa0201b43879aef24a0521b78dc8df4942b003a4e7d79ab11515852";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sphinx/0001-test-images-Use-normalization-equivalent-character.patch b/pkgs/development/python-modules/sphinx/0001-test-images-Use-normalization-equivalent-character.patch
new file mode 100644
index 0000000000000..805e724d0c8c1
--- /dev/null
+++ b/pkgs/development/python-modules/sphinx/0001-test-images-Use-normalization-equivalent-character.patch
@@ -0,0 +1,35 @@
+From 181617387841b695ee77b162babf9fb177002fcb Mon Sep 17 00:00:00 2001
+From: toonn <toonn@toonn.io>
+Date: Mon, 20 Sep 2021 11:39:46 +0200
+Subject: [PATCH] test-images: Use normalization equivalent character
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+One of the test images used a combining character `ä` that can be
+encoded multiple ways. This means the file's name can end up encoded
+differently depending on whether/which normal form the filesystem uses.
+
+For Nix this causes a different hash for a FOD depending on the
+filesystem where it is evaluated. This is problematic because hashes
+fail to match up when evaluating the FOD across multiple platforms.
+---
+ tests/roots/test-images/index.rst | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/roots/test-images/index.rst b/tests/roots/test-images/index.rst
+index 14a2987..219842e 100644
+--- a/tests/roots/test-images/index.rst
++++ b/tests/roots/test-images/index.rst
+@@ -13,7 +13,7 @@ test-image
+ 
+    The caption of img
+ 
+-.. image:: testimäge.png
++.. image:: testimæge.png
+ 
+ .. image:: rimg.png
+    :target: https://www.sphinx-doc.org/
+-- 
+2.17.2 (Apple Git-113)
+
diff --git a/pkgs/development/python-modules/sphinx/default.nix b/pkgs/development/python-modules/sphinx/default.nix
index 9d82b4c598103..75693f3657e43 100644
--- a/pkgs/development/python-modules/sphinx/default.nix
+++ b/pkgs/development/python-modules/sphinx/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ stdenv
+, lib
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
@@ -28,14 +29,20 @@
 
 buildPythonPackage rec {
   pname = "sphinx";
-  version = "4.2.0";
+  version = "4.3.1";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "sphinx-doc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1i38n5bxqiycjwmiv9dl72r3f5ks4zmif30znqg8zilclbx6g16x";
+    sha256 = "sha256-8Yj6cPZFG8ycbbZtMR+fsIAOX0brxroi6nYjP+WhnxA=";
+    extraPostFetch = ''
+      cd $out
+      mv tests/roots/test-images/testimäge.png \
+        tests/roots/test-images/testimæge.png
+      patch -p1 < ${./0001-test-images-Use-normalization-equivalent-character.patch}
+    '';
   };
 
   propagatedBuildInputs = [
@@ -76,6 +83,27 @@ buildPythonPackage rec {
     # requires imagemagick (increases build closure size), doesn't
     # test anything substantial
     "test_ext_imgconverter"
+  ] ++ lib.optional stdenv.isDarwin [
+    # Due to lack of network sandboxing can't guarantee port 7777 isn't bound
+    "test_inspect_main_url"
+    "test_auth_header_uses_first_match"
+    "test_linkcheck_request_headers"
+    "test_linkcheck_request_headers_no_slash"
+    "test_follows_redirects_on_HEAD"
+    "test_invalid_ssl"
+    "test_connect_to_selfsigned_with_tls_verify_false"
+    "test_connect_to_selfsigned_with_tls_cacerts"
+    "test_connect_to_selfsigned_with_requests_env_var"
+    "test_connect_to_selfsigned_nonexistent_cert_file"
+    "test_TooManyRedirects_on_HEAD"
+    "test_too_many_requests_retry_after_int_del"
+    "test_too_many_requests_retry_after_HTTP_date"
+    "test_too_many_requests_retry_after_without_header"
+    "test_too_many_requests_user_timeout"
+    "test_raises_for_invalid_status"
+    "test_auth_header_no_match"
+    "test_follows_redirects_on_GET"
+    "test_connect_to_selfsigned_fails"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/sphinxcontrib-actdiag/default.nix b/pkgs/development/python-modules/sphinxcontrib-actdiag/default.nix
index 81fa983125658..32470e98b4e0f 100644
--- a/pkgs/development/python-modules/sphinxcontrib-actdiag/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-actdiag/default.nix
@@ -4,25 +4,35 @@
 , sphinx
 , actdiag
 , blockdiag
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-actdiag";
-  version = "2.0.0";
+  version = "3.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-TtuFZOLkig4MULLndDQlrTTx8RiGw34MsjmXoPladMY=";
+    hash = "sha256-PFXUVP/Due/nwg8q2vAiGZuCVhLTLyAL6KSXqofg+B8=";
   };
 
-  propagatedBuildInputs = [ sphinx actdiag blockdiag ];
+  propagatedBuildInputs = [
+    actdiag
+    blockdiag
+    sphinx
+  ];
 
-  pythonImportsCheck = [ "sphinxcontrib.actdiag" ];
+  pythonImportsCheck = [
+    "sphinxcontrib.actdiag"
+  ];
 
   meta = with lib; {
     description = "Sphinx actdiag extension";
     homepage = "https://github.com/blockdiag/sphinxcontrib-actdiag";
-    maintainers = with maintainers; [ davidtwco ];
     license = licenses.bsd2;
+    maintainers = with maintainers; [ davidtwco ];
   };
 }
diff --git a/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix b/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix
index 97e9c7529f231..0b26c24319faf 100644
--- a/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-blockdiag";
-  version = "2.0.0";
+  version = "3.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "91fd35b64f1f25db59d80b8a5196ed4ffadf57a81f63ee207e34d53ec36d8f97";
+    sha256 = "aa49bf924516f5de8a479994c7be81e077df5599c9da2a082003d5b388e1d450";
   };
 
   buildInputs = [ mock sphinx-testing ];
diff --git a/pkgs/development/python-modules/sphinxcontrib-nwdiag/default.nix b/pkgs/development/python-modules/sphinxcontrib-nwdiag/default.nix
index 10963a73a9127..47573ad609a8f 100644
--- a/pkgs/development/python-modules/sphinxcontrib-nwdiag/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-nwdiag/default.nix
@@ -1,28 +1,38 @@
 { lib
+, blockdiag
 , buildPythonPackage
 , fetchPypi
-, sphinx
-, blockdiag
 , nwdiag
+, pythonOlder
+, sphinx
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-nwdiag";
   version = "2.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-bula1DutRv6NwfZRhciZfLHRZmXu42p+qvbeExN/+Fk=";
   };
 
-  propagatedBuildInputs = [ sphinx blockdiag nwdiag ];
+  propagatedBuildInputs = [
+    blockdiag
+    nwdiag
+    sphinx
+  ];
 
-  pythonImportsCheck = [ "sphinxcontrib.nwdiag" ];
+  pythonImportsCheck = [
+    "sphinxcontrib.nwdiag"
+  ];
 
   meta = with lib; {
     description = "Sphinx nwdiag extension";
     homepage = "https://github.com/blockdiag/sphinxcontrib-nwdiag";
-    maintainers = with maintainers; [ davidtwco ];
     license = licenses.bsd2;
+    maintainers = with maintainers; [ davidtwco ];
   };
 }
diff --git a/pkgs/development/python-modules/sphinxcontrib-seqdiag/default.nix b/pkgs/development/python-modules/sphinxcontrib-seqdiag/default.nix
index c7407300d3131..cc3a96086e4e8 100644
--- a/pkgs/development/python-modules/sphinxcontrib-seqdiag/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-seqdiag/default.nix
@@ -1,28 +1,38 @@
 { lib
+, blockdiag
 , buildPythonPackage
 , fetchPypi
-, sphinx
-, blockdiag
+, pythonOlder
 , seqdiag
+, sphinx
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-seqdiag";
-  version = "2.0.0";
+  version = "3.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-THJ1ra/W2X/lQaDjGbL27VMn0lWPJApwgKMrPhL0JY0=";
+    hash = "sha256-QH5IeXZz9x2Ujp/6BHFsrB2ZqeyPYW3jdk1C0DNBZXQ=";
   };
 
-  propagatedBuildInputs = [ sphinx blockdiag seqdiag ];
+  propagatedBuildInputs = [
+    blockdiag
+    seqdiag
+    sphinx
+  ];
 
-  pythonImportsCheck = [ "sphinxcontrib.seqdiag" ];
+  pythonImportsCheck = [
+    "sphinxcontrib.seqdiag"
+  ];
 
   meta = with lib; {
     description = "Sphinx seqdiag extension";
     homepage = "https://github.com/blockdiag/sphinxcontrib-seqdiag";
-    maintainers = with maintainers; [ davidtwco ];
     license = licenses.bsd2;
+    maintainers = with maintainers; [ davidtwco ];
   };
 }
diff --git a/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix b/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
index 51885c4b7f31c..6239ba0bc83cd 100644
--- a/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-spelling";
-  version = "7.2.1";
+  version = "7.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f2578653014931b32c8c30d1a9930d998ae053b0d8b7adfbea0eb95a63e7a737";
+    sha256 = "9d66dc4990749c5ac52e7eaf17e82f4dc6b4aff6515d26bbf48821829d41bd02";
   };
 
   propagatedBuildInputs = [ sphinx pyenchant pbr ]
diff --git a/pkgs/development/python-modules/sphinxext-opengraph/default.nix b/pkgs/development/python-modules/sphinxext-opengraph/default.nix
index 08a87a2f7c023..8b8cb4cdbb53e 100644
--- a/pkgs/development/python-modules/sphinxext-opengraph/default.nix
+++ b/pkgs/development/python-modules/sphinxext-opengraph/default.nix
@@ -2,24 +2,29 @@
 , buildPythonPackage
 , fetchFromGitHub
 , sphinx
+, pytestCheckHook
+, beautifulsoup4
 }:
 
 buildPythonPackage rec {
   pname = "sphinxext-opengraph";
-  version = "0.4.2";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "wpilibsuite";
     repo = "sphinxext-opengraph";
     rev = "v${version}";
-    sha256 = "sha256-978aPtaqUDHcswDdFynzi+IjDYaBmCZDZk+dmDkhajY=";
+    sha256 = "sha256-US0UXxcTlN7x5v2ilpL+umTr7tadqthqhvfaQnm7tCc=";
   };
 
   propagatedBuildInputs = [
     sphinx
   ];
 
-  doCheck = false; # no tests
+  checkInputs = [
+    pytestCheckHook
+    beautifulsoup4
+  ];
 
   pythonImportsCheck = [ "sphinxext.opengraph" ];
 
diff --git a/pkgs/development/python-modules/spiderpy/default.nix b/pkgs/development/python-modules/spiderpy/default.nix
index 7970bbb847831..82007997ccb85 100644
--- a/pkgs/development/python-modules/spiderpy/default.nix
+++ b/pkgs/development/python-modules/spiderpy/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "spiderpy";
-  version = "1.7.1";
+  version = "1.7.2";
   format = "pyproject";
 
   disabled = isPy27;
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "peternijssen";
     repo = "spiderpy";
     rev = version;
-    sha256 = "sha256-gQ/Y5c8+aSvoJzXI6eQ9rk0xDPxpi0xgO3xBKR+vVrY=";
+    sha256 = "sha256-Yujy8HSMbK2DQ/913r2c74hKPYDfcHFKq04ysqxG+go=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/splinter/default.nix b/pkgs/development/python-modules/splinter/default.nix
index ae5e5bef474b7..9a80bb93621a7 100644
--- a/pkgs/development/python-modules/splinter/default.nix
+++ b/pkgs/development/python-modules/splinter/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "splinter";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "cobrateam";
     repo = "splinter";
     rev = version;
-    sha256 = "sha256-b6zncEAPtKgBPLFRsCSGeBqiD4A/mHEhjQaEIsefc28=";
+    hash = "sha256-7QhFz/qBh2ECyeyvjCyqOYy/YrUK7KVX13VC/gem5BQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/spur/default.nix b/pkgs/development/python-modules/spur/default.nix
new file mode 100644
index 0000000000000..24bdc5839a47f
--- /dev/null
+++ b/pkgs/development/python-modules/spur/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, paramiko
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "spur";
+  version = "0.3.22";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.4";
+
+  src = fetchFromGitHub {
+    owner = "mwilliamson";
+    repo = "spur.py";
+    rev = version;
+    sha256 = "sha256-YlwezAE7V4ykFsp+bJ2nYRp6HG4I9Bk7Lhq6f1Inn0s=";
+  };
+
+  propagatedBuildInputs = [
+    paramiko
+  ];
+
+  # Tests require a running SSH server
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "spur"
+  ];
+
+  meta = with lib; {
+    description = "Python module to run commands and manipulate files locally or over SSH";
+    homepage = "https://github.com/mwilliamson/spur.py";
+    license = with licenses; [ bsd2 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/spyder-kernels/default.nix b/pkgs/development/python-modules/spyder-kernels/default.nix
index 047457534c280..4c43ce2f1617a 100644
--- a/pkgs/development/python-modules/spyder-kernels/default.nix
+++ b/pkgs/development/python-modules/spyder-kernels/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "spyder-kernels";
-  version = "2.1.3";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ab5c2a90d44f0a26e7a6862e3cb73bb2d7084bc72f9336d8c2d2a78c145c4645";
+    sha256 = "6b19ea224f183dbff8ff0031bee35ae6b5b3a6eef4aa84cfab04e3bc3e304b91";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/spyder/default.nix b/pkgs/development/python-modules/spyder/default.nix
index 25389f2784ed7..38558f004984f 100644
--- a/pkgs/development/python-modules/spyder/default.nix
+++ b/pkgs/development/python-modules/spyder/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "spyder";
-  version = "5.1.5";
+  version = "5.2.0";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f9ce23187f5de18f489fb03c38d884e4484b9c7292f9831faaa029fb7752fc93";
+    sha256 = "cd04acc88426acee9c4ce6bb91f50c13fc161a437e68bca701243b3415ce9d08";
   };
 
   nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ];
diff --git a/pkgs/development/python-modules/sqlalchemy-mixins/default.nix b/pkgs/development/python-modules/sqlalchemy-mixins/default.nix
new file mode 100644
index 0000000000000..85a03482a323d
--- /dev/null
+++ b/pkgs/development/python-modules/sqlalchemy-mixins/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, nose
+, pytestCheckHook
+, pythonOlder
+, six
+, sqlalchemy
+}:
+
+buildPythonPackage rec {
+  pname = "sqlalchemy-mixins";
+  version = "1.5.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "absent1706";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-HZiv7F0/UatgY3KlILgzywrK5NJE/tDe6B8/smeYwlM=";
+  };
+
+  propagatedBuildInputs = [
+    six
+    sqlalchemy
+  ];
+
+  checkInputs = [
+    nose
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "sqlalchemy_mixins"
+  ];
+
+  meta = with lib; {
+    description = "Python mixins for SQLAlchemy ORM";
+    homepage = "https://github.com/absent1706/sqlalchemy-mixins";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/sqlalchemy/default.nix b/pkgs/development/python-modules/sqlalchemy/default.nix
index 54f21c49f771a..a8c85fdffd64b 100644
--- a/pkgs/development/python-modules/sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "SQLAlchemy";
-  version = "1.4.25";
+  version = "1.4.27";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Gt89JeLjOvvNSM+tgHb5N4eTvkPn/sPkM0MGysa+wTg=";
+    sha256 = "sha256-12g1na6zqGZE84VMZlnkSWo+a7orRlHsyHznrUFbMgw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sqlite-utils/default.nix b/pkgs/development/python-modules/sqlite-utils/default.nix
index b2715b4d29ed8..ee1181e9c93c6 100644
--- a/pkgs/development/python-modules/sqlite-utils/default.nix
+++ b/pkgs/development/python-modules/sqlite-utils/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , pythonOlder
 , click
 , click-default-group
@@ -13,14 +14,23 @@
 
 buildPythonPackage rec {
   pname = "sqlite-utils";
-  version = "3.17.1";
+  version = "3.19";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0cfde0c46a2d4c09d6df8609fe53642bc3ab443bcef3106d8f1eabeb3fccbe3d";
+    sha256 = "509099fce5f25faada6e76b6fb90e8ef5ba0f1715177933a816718be0c8e7244";
   };
 
+  patches = [
+    # https://github.com/simonw/sqlite-utils/pull/347
+    (fetchpatch {
+      name = "sqlite-utils-better-test_rebuild_fts.patch";
+      url = "https://github.com/simonw/sqlite-utils/pull/347/commits/1a7ef2fe2064ace01d5535fb771f941296fb642a.diff";
+      sha256 = "sha256-WKCQGMqr8WYjG7cmAH5pYBhgikowbt3r6hObwtMDDUY=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace setup.py \
       --replace '"pytest-runner"' ""
diff --git a/pkgs/development/python-modules/sqlmap/default.nix b/pkgs/development/python-modules/sqlmap/default.nix
index 66fa42e740130..429ebc9e0d616 100644
--- a/pkgs/development/python-modules/sqlmap/default.nix
+++ b/pkgs/development/python-modules/sqlmap/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "sqlmap";
-  version = "1.5.11";
+  version = "1.5.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "196021f0eff1699853675ee80e13bc856c9f1a088d93a0ac023651d2a3f62cf5";
+    sha256 = "sha256-9FplToUd4CIkYZ88+Lat+joniZzRZDOfifH5z4sH8RM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/srpenergy/default.nix b/pkgs/development/python-modules/srpenergy/default.nix
index 140062edf1f0c..c5d20436a09cc 100644
--- a/pkgs/development/python-modules/srpenergy/default.nix
+++ b/pkgs/development/python-modules/srpenergy/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "srpenergy";
-  version = "1.3.2";
+  version = "1.3.5";
 
   disabled = pythonOlder "3.6";
 
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "lamoreauxlab";
     repo = "srpenergy-api-client-python";
     rev = version;
-    sha256 = "03kldjk90mrnzf2hpd7xky0lpph853mjxc34kfa2m5mbpbpkxz9c";
+    sha256 = "sha256-s90+gzjcG27pUcMGpzf2rf+mR8/fmpvwBXGfvv3rNGI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ssdeep/default.nix b/pkgs/development/python-modules/ssdeep/default.nix
index 510bbbac9518d..6ad339a083f52 100644
--- a/pkgs/development/python-modules/ssdeep/default.nix
+++ b/pkgs/development/python-modules/ssdeep/default.nix
@@ -1,33 +1,51 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, pkgs
 , cffi
+, fetchFromGitHub
+, pytestCheckHook
 , six
-, pytest
-, pytest-runner
+, ssdeep
 }:
 
 buildPythonPackage rec {
   pname = "ssdeep";
   version = "3.4";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0px8k4fjbkjb717bg2v7rjhm4iclrxzq7sh0hfqs55f4ddqi0m8v";
+  src = fetchFromGitHub {
+    owner = "DinoTools";
+    repo = "python-ssdeep";
+    rev = version;
+    hash = "sha256-eAB4/HmPGj/ngHrqkOlY/kTdY5iUEBHxrsRYjR/RNyw=";
   };
 
-  buildInputs = [ pkgs.ssdeep pytest-runner ];
-  checkInputs = [ pytest ];
-  propagatedBuildInputs = [ cffi six ];
+  buildInputs = [
+    ssdeep
+  ];
 
-  # tests repository does not include required files
-  doCheck = false;
+  propagatedBuildInputs = [
+    cffi
+    six
+  ];
+
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace '"pytest-runner"' ""
+  '';
+
+  pythonImportsCheck = [
+    "ssdeep"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/DinoTools/python-ssdeep";
     description = "Python wrapper for the ssdeep library";
-    license = licenses.lgpl3;
+    homepage = "https://github.com/DinoTools/python-ssdeep";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ fab ];
   };
-
 }
diff --git a/pkgs/development/python-modules/sslyze/default.nix b/pkgs/development/python-modules/sslyze/default.nix
index 5680b4bd36b34..587572646abcc 100644
--- a/pkgs/development/python-modules/sslyze/default.nix
+++ b/pkgs/development/python-modules/sslyze/default.nix
@@ -1,52 +1,107 @@
 { lib
 , fetchFromGitHub
 , buildPythonPackage
-, nassl
-, cryptography
-, typing-extensions
-, faker
 , pytestCheckHook
 , pythonOlder
+  # deps
+, cryptography
+, nassl
+, pydantic
+, tls-parser
+  # check deps
+, faker
+, openssl_1_0_2
+, openssl_1_1
 }:
 
 buildPythonPackage rec {
   pname = "sslyze";
-  version = "4.1.0";
+  version = "5.0.0";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "nabla-c0d3";
     repo = pname;
     rev = version;
-    hash = "sha256-oSTKNiECczlPAbv5Azc023PcquFbnlC5O+8tVgNcUW0=";
+    hash = "sha256-7kUriEMHcGCXKs42KVWxXvM+JEEWf/8tnuoGujHbqHY=";
   };
 
   patchPhase = ''
     substituteInPlace setup.py \
-      --replace "cryptography>=2.6,<3.5" "cryptography>=2.6,<4.0"
+      --replace "cryptography>=2.6,<36.0.0" "cryptography>=2.6"
   '';
 
-  checkInputs = [ pytestCheckHook ];
+  checkInputs = [
+    pytestCheckHook
+    faker
+  ];
 
   # Most of the tests are online; hence, applicable tests are listed
   # explicitly here
   pytestFlagsArray = [
-    "tests/test_main.py"
-    "tests/test_scanner.py"
     "tests/cli_tests/test_console_output.py"
-    "tests/cli_tests/test_json_output.py"
     "tests/cli_tests/test_server_string_parser.py"
-    "tests/plugins_tests/test_scan_commands.py"
+    "tests/json_tests/test_json_output.py"
+    "tests/plugins_tests/certificate_info/test_certificate_algorithms.py"
     "tests/plugins_tests/certificate_info/test_certificate_utils.py"
+    "tests/plugins_tests/certificate_info/test_symantec.py"
+    "tests/plugins_tests/certificate_info/test_trust_store_repository.py"
+    "tests/plugins_tests/openssl_cipher_suites/test_cipher_suites.py"
+    "tests/plugins_tests/test_early_data_plugin.py"
+    "tests/plugins_tests/test_http_headers_plugin.py"
+    "tests/plugins_tests/test_robot_plugin.py"
+    "tests/plugins_tests/test_scan_commands.py"
+    "tests/plugins_tests/test_session_renegotiation_plugin.py"
+    "tests/scanner_tests/test_jobs_worker_thread.py"
+    "tests/scanner_tests/test_mass_scanner.py"
+    "tests/scanner_tests/test_models.py"
+    "tests/scanner_tests/test_scanner.py"
+    "tests/server_connectivity_tests/test_client_authentication.py"
   ];
 
   disabledTests = [
-    "test_error_client_certificate_needed"
+    # TestEllipticCurvesPluginWithOnlineServer
+    "test_supported_curves"
+    # TestRobotPluginPlugin
+    "test_robot_attack_good"
+    # TestHttpHeadersPlugin
+    "test_all_headers_disabled"
+    "test_expect_ct_enabled"
+    "test_hsts_enabled"
+    # TestSessionRenegotiationPlugin
+    "test_renegotiation_good"
+    # TestCertificateAlgorithms
+    "test_ecdsa_certificate"
+    "test_invalid_certificate_bad_name"
+    # TestEarlyDataPlugin
+    "test_early_data_enabled"
+    # TestTrustStoresRepository
+    "test_update_default"
+    # TestClientAuthentication
+    "test_optional_client_authentication"
   ];
 
+  # Some tests require OpenSSL
+  preCheck = ''
+    pushd $TMPDIR/$sourceRoot/tests/openssl_server/
+
+    rm openssl-1-1-1-linux64
+    ln -s ${openssl_1_1.bin}/bin/openssl openssl-1-1-1-linux64
+
+    rm openssl-1-0-0e-linux64
+    ln -s ${openssl_1_0_2.bin}/bin/openssl openssl-1-0-0e-linux64
+
+    popd
+  '';
+
   pythonImportsCheck = [ "sslyze" ];
 
-  propagatedBuildInputs = [ nassl cryptography typing-extensions faker ];
+  propagatedBuildInputs = [
+    cryptography
+    nassl
+    pydantic
+    tls-parser
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/nabla-c0d3/sslyze";
diff --git a/pkgs/development/python-modules/starkbank-ecdsa/default.nix b/pkgs/development/python-modules/starkbank-ecdsa/default.nix
index e7e114dadd6ae..25b7d0aa3c740 100644
--- a/pkgs/development/python-modules/starkbank-ecdsa/default.nix
+++ b/pkgs/development/python-modules/starkbank-ecdsa/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "starkbank-ecdsa";
-  version = "2.0.2";
+  version = "2.0.3";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "starkbank";
     repo = "ecdsa-python";
     rev = "v${version}";
-    sha256 = "sha256-4QFAtGqHJZSVyrGPuMdJwvF761/P6YAHjjKmCpPyGdU=";
+    sha256 = "sha256-UA+UuSxKZZN7Zb23HWsCD6UZK6lROpy3OfLN7MAlMM0=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/stem/default.nix b/pkgs/development/python-modules/stem/default.nix
index c607d45e17064..9ad5e2285ffbd 100644
--- a/pkgs/development/python-modules/stem/default.nix
+++ b/pkgs/development/python-modules/stem/default.nix
@@ -27,6 +27,6 @@ buildPythonPackage rec {
     description = "Controller library that allows applications to interact with Tor";
     homepage = "https://stem.torproject.org/";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ phreedom ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/stickytape/default.nix b/pkgs/development/python-modules/stickytape/default.nix
new file mode 100644
index 0000000000000..71d64e1e7bd80
--- /dev/null
+++ b/pkgs/development/python-modules/stickytape/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, nose
+, pytestCheckHook
+, pythonOlder
+, spur
+}:
+
+buildPythonPackage rec {
+  pname = "stickytape";
+  version = "0.2.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.4";
+
+  src = fetchFromGitHub {
+    owner = "mwilliamson";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-KOZN9oxPb91l8QVU07I49UMNXqox8j+oekA1fMtj6l8=";
+  };
+
+  # Tests have additional requirements
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "stickytape"
+  ];
+
+  meta = with lib; {
+    description = "Python module to convert Python packages into a single script";
+    homepage = "https://github.com/mwilliamson/stickytape";
+    license = with licenses; [ bsd2 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/strictyaml/default.nix b/pkgs/development/python-modules/strictyaml/default.nix
index 9b76edc1bae5d..1d74a62babd43 100644
--- a/pkgs/development/python-modules/strictyaml/default.nix
+++ b/pkgs/development/python-modules/strictyaml/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.5.0";
+  version = "1.6.0";
   pname = "strictyaml";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "273a6382cc98a404d20779351cd5bb12e746397fbe18a8e9ccec4ae3c0ffa0e2";
+    sha256 = "73fa9769214a310486d7916453a09bd38b07d28a9dcbdf27719183c1d7d949f6";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/stripe/default.nix b/pkgs/development/python-modules/stripe/default.nix
index a8c451ebf9a90..4acad30ea322b 100644
--- a/pkgs/development/python-modules/stripe/default.nix
+++ b/pkgs/development/python-modules/stripe/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "stripe";
-  version = "2.62.0";
+  version = "2.64.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1fb51d67a961ea889c5be324f020535ed511c6f483bd13a07f48f6e369fa8df0";
+    sha256 = "2f4b2175046104e4fcd8a2689a68bb9828a857814126d2ed13772cf2554fb93e";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/striprtf/default.nix b/pkgs/development/python-modules/striprtf/default.nix
index efde42b51954f..3f941d59dac7f 100644
--- a/pkgs/development/python-modules/striprtf/default.nix
+++ b/pkgs/development/python-modules/striprtf/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "striprtf";
-  version = "0.0.16";
+  version = "0.0.17";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "690387117f3341354fddd0957913158d1319c207755c0cc54a614f80248887b2";
+    sha256 = "e122b5d334cda9b0edb3eeb8910f01d0ffb02eaca054facd75b17b98fcf646f5";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/structlog/default.nix b/pkgs/development/python-modules/structlog/default.nix
index 3d1a8f8af6744..2e90d3350dbe7 100644
--- a/pkgs/development/python-modules/structlog/default.nix
+++ b/pkgs/development/python-modules/structlog/default.nix
@@ -1,9 +1,8 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, pytest
+, fetchFromGitHub
+, pytestCheckHook
 , pytest-asyncio
-, python-rapidjson
 , pretend
 , freezegun
 , twisted
@@ -14,25 +13,23 @@
 
 buildPythonPackage rec {
   pname = "structlog";
-  version = "21.2.0";
+  version = "21.4.0";
+  format = "flit";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "7ac42b565e1295712313f91edbcb64e0840a9037d888c8954f11fa6c43270e99";
+  # sdist is missing conftest.py
+  src = fetchFromGitHub {
+    owner = "hynek";
+    repo = "structlog";
+    rev = version;
+    sha256 = "sha256-uXFSrC1TvQV46uu0sadC3eMq7yk5TnrpQE8m6NSv1Bg=";
   };
 
-  checkInputs = [ pytest pytest-asyncio pretend freezegun simplejson twisted ]
-    ++ lib.optionals (pythonAtLeast "3.6") [ python-rapidjson ];
+  checkInputs = [ pytestCheckHook pytest-asyncio pretend freezegun simplejson twisted ];
   propagatedBuildInputs = [ six ];
 
-  checkPhase = ''
-    # rm tests/test_twisted.py*
-    py.test
-  '';
-
   meta = {
     description = "Painless structural logging";
-    homepage = "http://www.structlog.org/";
+    homepage = "https://github.com/hynek/structlog";
     license = lib.licenses.asl20;
   };
 }
diff --git a/pkgs/development/python-modules/stumpy/default.nix b/pkgs/development/python-modules/stumpy/default.nix
index a72ca40c21a12..a1cdd5b84e0e0 100644
--- a/pkgs/development/python-modules/stumpy/default.nix
+++ b/pkgs/development/python-modules/stumpy/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "stumpy";
-  version = "1.9.2";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "TDAmeritrade";
     repo = "stumpy";
     rev = "v${version}";
-    sha256 = "0x5kac8fqsi3fkfwjdn0d7anslprxaz6cizky9cyj0rpbp0b0yc3";
+    sha256 = "1h3mqz570s9rc45d217xrykcy8f4fnpyk178smam2fzynlr90gd8";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/subarulink/default.nix b/pkgs/development/python-modules/subarulink/default.nix
index 6abaa02d703b7..1b6d1033c4566 100644
--- a/pkgs/development/python-modules/subarulink/default.nix
+++ b/pkgs/development/python-modules/subarulink/default.nix
@@ -12,14 +12,16 @@
 
 buildPythonPackage rec {
   pname = "subarulink";
-  version = "0.3.15";
+  version = "0.3.16";
+  format = "setuptools";
+
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "G-Two";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-akDccWkiFwTwq7dvUxm34BFNS5PnQowqnxVvkPFzxLM=";
+    sha256 = "sha256-7waY5AOONi+u056JRH9KcoBWSB4AlMw4QcMW0uoCARc=";
   };
 
   propagatedBuildInputs = [
@@ -35,7 +37,8 @@ buildPythonPackage rec {
   ];
 
   postPatch = ''
-    substituteInPlace setup.cfg --replace "--cov=subarulink" ""
+    substituteInPlace setup.cfg \
+      --replace "--cov=subarulink" ""
   '';
 
   __darwinAllowLocalNetworking = true;
@@ -44,7 +47,9 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  pythonImportsCheck = [ "subarulink" ];
+  pythonImportsCheck = [
+    "subarulink"
+  ];
 
   meta = with lib; {
     description = "Python module for interacting with STARLINK-enabled vehicle";
diff --git a/pkgs/development/python-modules/subzerod/default.nix b/pkgs/development/python-modules/subzerod/default.nix
new file mode 100644
index 0000000000000..e4f3e531b0cb4
--- /dev/null
+++ b/pkgs/development/python-modules/subzerod/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "subzerod";
+  version = "1.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-/7g8Upj9Hb4m83JXLI3X2lqa9faCt42LVxh+V9WpI68=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "subzerod"
+  ];
+
+  meta = with lib; {
+    description = "Python module to help with the enumeration of subdomains";
+    homepage = "https://github.com/sanderfoobar/subzerod";
+    license = with licenses; [ wtfpl ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/sunpy/default.nix b/pkgs/development/python-modules/sunpy/default.nix
index d7ca6c23e4ce3..2bb07b37301ee 100644
--- a/pkgs/development/python-modules/sunpy/default.nix
+++ b/pkgs/development/python-modules/sunpy/default.nix
@@ -31,12 +31,12 @@
 
 buildPythonPackage rec {
   pname = "sunpy";
-  version = "3.1.1";
+  version = "3.1.2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c8fcd3700d8f4b7880a669f28c44f784422da1dbfe59fb175f155703817695ed";
+    sha256 = "5eeb479c3f2424bf46355165249a1caa849872f8bee525349c4dca4d15b271fd";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/supervisor/default.nix b/pkgs/development/python-modules/supervisor/default.nix
index dc722e947d099..3505537f47ce1 100644
--- a/pkgs/development/python-modules/supervisor/default.nix
+++ b/pkgs/development/python-modules/supervisor/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "supervisor";
-  version = "4.2.2";
+  version = "4.2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5b2b8882ec8a3c3733cce6965cc098b6d80b417f21229ab90b18fe551d619f90";
+    sha256 = "6472da45fd552184c64713b4b9c0bcc586beec21d22af271e1bf8efe60b08836";
   };
 
   # wants to write to /tmp/foo which is likely already owned by another
diff --git a/pkgs/development/python-modules/surepy/default.nix b/pkgs/development/python-modules/surepy/default.nix
index 1d0b938d49446..9759443228d05 100644
--- a/pkgs/development/python-modules/surepy/default.nix
+++ b/pkgs/development/python-modules/surepy/default.nix
@@ -20,6 +20,7 @@ buildPythonPackage rec {
   pname = "surepy";
   version = "0.7.2";
   format = "pyproject";
+
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
@@ -31,8 +32,8 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace 'click = "^7.1.2"' 'click = "*"' \
-      --replace 'attrs = "^20.3.0"' 'attrs = "*"'
+      --replace 'aiohttp = {extras = ["speedups"], version = "^3.7.4"}' 'aiohttp = {extras = ["speedups"], version = ">=3.7.4"}' \
+      --replace 'async-timeout = "^3.0.1"' 'async-timeout = ">=3.0.1"'
   '';
 
   nativeBuildInputs = [
@@ -56,7 +57,9 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [ "surepy" ];
+  pythonImportsCheck = [
+    "surepy"
+  ];
 
   meta = with lib; {
     description = "Python library to interact with the Sure Petcare API";
diff --git a/pkgs/development/python-modules/swagger-ui-bundle/default.nix b/pkgs/development/python-modules/swagger-ui-bundle/default.nix
index 9dbd29739fe85..e44fd471bc79e 100644
--- a/pkgs/development/python-modules/swagger-ui-bundle/default.nix
+++ b/pkgs/development/python-modules/swagger-ui-bundle/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "swagger-ui-bundle";
-  version = "0.0.6";
+  version = "0.0.9";
 
   src = fetchPypi {
     pname = "swagger_ui_bundle";
     inherit version;
-    sha256 = "1lqxz7q9l2iwf7w11nhw5lnglsh1lgcvq8ydvhabkcc76il3ndy5";
+    sha256 = "b462aa1460261796ab78fd4663961a7f6f347ce01760f1303bbbdf630f11f516";
   };
 
   # patch away unused test requirements since package contains no tests
diff --git a/pkgs/development/python-modules/tableaudocumentapi/default.nix b/pkgs/development/python-modules/tableaudocumentapi/default.nix
index 56a3b27e7b965..06a445450e5c7 100644
--- a/pkgs/development/python-modules/tableaudocumentapi/default.nix
+++ b/pkgs/development/python-modules/tableaudocumentapi/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "tableaudocumentapi";
-  version = "0.7";
+  version = "0.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5b1d04817a0fba43d58e1ce23c64ad8dfe54dc029ba5ccae3908944555bb13e0";
+    sha256 = "0c7d01f01758dd6e50ff2fc915c6087c0da17298635e6635581aaf25c934d6ce";
   };
 
   # tests not inclued with release
diff --git a/pkgs/development/python-modules/tago/default.nix b/pkgs/development/python-modules/tago/default.nix
new file mode 100644
index 0000000000000..220c8f2b0bb7e
--- /dev/null
+++ b/pkgs/development/python-modules/tago/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, promise
+, python-socketio
+, pythonOlder
+, requests
+, websockets
+}:
+
+buildPythonPackage rec {
+  pname = "tago";
+  version = "3.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "tago-io";
+    repo = "tago-sdk-python";
+    rev = version;
+    sha256 = "sha256-eu6n83qmo1PQKnR/ellto04xi/3egl+LSKMOG277X1k=";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    promise
+    python-socketio
+    requests
+    websockets
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "tago"
+  ];
+
+  meta = with lib; {
+    description = "Python module for interacting with Tago.io";
+    homepage = "https://github.com/tago-io/tago-sdk-python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/tailscale/default.nix b/pkgs/development/python-modules/tailscale/default.nix
index a2e58322cea3e..96016b3f0d4d5 100644
--- a/pkgs/development/python-modules/tailscale/default.nix
+++ b/pkgs/development/python-modules/tailscale/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "tailscale";
-  version = "0.1.2";
+  version = "0.1.6";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "frenck";
     repo = "python-tailscale";
     rev = "v${version}";
-    sha256 = "1jqx2i8rghfxlb1c76f37viz9fc1vq95xb2jm3bpnx5yy4n5dly1";
+    sha256 = "1dkmjc78mhgbikfz6mi6g63a36w6v29pdbb3pvgpicg0l649rsc9";
   };
 
   nativeBuildInputs = [
@@ -54,7 +54,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python client for the Tailscale API";
-    homepage = "https://github.com/frenck/python-wled";
+    homepage = "https://github.com/frenck/python-tailscale";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/taskw/default.nix b/pkgs/development/python-modules/taskw/default.nix
index 80d86c3edb014..ac8a55e24d803 100644
--- a/pkgs/development/python-modules/taskw/default.nix
+++ b/pkgs/development/python-modules/taskw/default.nix
@@ -11,12 +11,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.3.0";
+  version = "1.3.1";
   pname = "taskw";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7673d80b3d5bace5b35eb71f5035e313a92daab6e437694128d8ce7dcdaf66fb";
+    sha256 = "1a68e49cac2d4f6da73c0ce554fd6f94932d95e20596f2ee44a769a28c12ba7d";
   };
 
   patches = [ ./use-template-for-taskwarrior-install-path.patch ];
diff --git a/pkgs/development/python-modules/telethon/default.nix b/pkgs/development/python-modules/telethon/default.nix
index ad65b48ae73c1..a7ee01105a674 100644
--- a/pkgs/development/python-modules/telethon/default.nix
+++ b/pkgs/development/python-modules/telethon/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "telethon";
-  version = "1.23.0";
+  version = "1.24.0";
 
   src = fetchPypi {
     inherit version;
     pname = "Telethon";
-    sha256 = "sha256-unVRzkR+lUqtZ/PuukurdXTMoHosb0HlvmmQTm4OwxM=";
+    sha256 = "818cb61281ed3f75ba4da9b68cb69486bed9474d2db4e0aa16e482053117452c";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/tensorflow-estimator/default.nix b/pkgs/development/python-modules/tensorflow-estimator/default.nix
index dd3b4641beaf8..5ad6d0ab6e555 100644
--- a/pkgs/development/python-modules/tensorflow-estimator/default.nix
+++ b/pkgs/development/python-modules/tensorflow-estimator/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "tensorflow-estimator";
-  version = "2.4.0";
+  version = "2.7.0";
   format = "wheel";
 
   src = fetchPypi {
     pname = "tensorflow_estimator";
     inherit version format;
-    sha256 = "1w0pkcslm6934qqd6m5gxyjdlnb4pbl47k6s99wsh6dyvvr7nysv";
+    hash = "sha256-MltaIkhkN5JCt7dsaYfKVEI5voJXnTPmjsfCvaV6vJ0=";
   };
 
   propagatedBuildInputs = [ mock numpy absl-py ];
diff --git a/pkgs/development/python-modules/tensorflow/bin.nix b/pkgs/development/python-modules/tensorflow/bin.nix
index c14a90e0953ef..221c75112b9b1 100644
--- a/pkgs/development/python-modules/tensorflow/bin.nix
+++ b/pkgs/development/python-modules/tensorflow/bin.nix
@@ -17,11 +17,12 @@
 , wheel
 , opt-einsum
 , backports_weakref
-, tensorflow-estimator_2
-, tensorflow-tensorboard_2
+, tensorflow-estimator
+, tensorflow-tensorboard
 , cudaSupport ? false
 , cudatoolkit
 , cudnn
+, patchelfUnstable
 , zlib
 , python
 , keras-applications
@@ -42,15 +43,11 @@ assert ! (stdenv.isDarwin && cudaSupport);
 
 let
   packages = import ./binary-hashes.nix;
-  metadataPatch = ./relax-dependencies-metadata.patch;
-  patch = ./relax-dependencies.patch;
 in buildPythonPackage {
   pname = "tensorflow" + lib.optionalString cudaSupport "-gpu";
   inherit (packages) version;
   format = "wheel";
 
-  disabled = pythonAtLeast "3.9";
-
   src = let
     pyVerNoDot = lib.strings.stringAsChars (x: if x == "." then "" else x) python.pythonVersion;
     platform = if stdenv.isDarwin then "mac" else "linux";
@@ -74,15 +71,16 @@ in buildPythonPackage {
     opt-einsum
     google-pasta
     wrapt
-    tensorflow-estimator_2
-    tensorflow-tensorboard_2
+    tensorflow-estimator
+    tensorflow-tensorboard
     keras-applications
     keras-preprocessing
     h5py
   ] ++ lib.optional (!isPy3k) mock
     ++ lib.optionals (pythonOlder "3.4") [ backports_weakref ];
 
-  nativeBuildInputs = [ wheel ] ++ lib.optional cudaSupport addOpenGLRunpath;
+  # remove patchelfUnstable once patchelf 0.14 with https://github.com/NixOS/patchelf/pull/256 becomes the default
+  nativeBuildInputs = [ wheel ] ++ lib.optional cudaSupport [ addOpenGLRunpath patchelfUnstable ];
 
   preConfigure = ''
     unset SOURCE_DATE_EPOCH
@@ -93,13 +91,18 @@ in buildPythonPackage {
     pushd dist
 
     wheel unpack --dest unpacked ./*.whl
+    rm ./*.whl
     (
       cd unpacked/tensorflow*
-      # relax too strict versions in setup.py
-      patch -p 1 < ${patch}
-      cd *.dist-info
-      # relax too strict versions in *.dist-info/METADATA
-      patch -p 3 < ${metadataPatch}
+      # Adjust dependency requirements:
+      # - Relax gast version requirement that doesn't match what we have packaged
+      # - The purpose of python3Packages.libclang is not clear at the moment and we don't have it packaged yet
+      # - keras and tensorlow-io-gcs-filesystem will be considered as optional for now.
+      sed -i *.dist-info/METADATA \
+        -e "s/Requires-Dist: gast.*/Requires-Dist: gast/" \
+        -e "/Requires-Dist: libclang/d" \
+        -e "/Requires-Dist: keras/d" \
+        -e "/Requires-Dist: tensorflow-io-gcs-filesystem/d"
     )
     wheel pack ./unpacked/tensorflow*
 
diff --git a/pkgs/development/python-modules/tensorflow/binary-hashes.nix b/pkgs/development/python-modules/tensorflow/binary-hashes.nix
index 4485e2b614514..4b2f9d5284077 100644
--- a/pkgs/development/python-modules/tensorflow/binary-hashes.nix
+++ b/pkgs/development/python-modules/tensorflow/binary-hashes.nix
@@ -1,39 +1,39 @@
 {
-version = "2.4.0";
-linux_py_36_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.4.0-cp36-cp36m-manylinux2010_x86_64.whl";
-  sha256 = "0pn0cjf50q0xsv6k0vihrz22kr392anznvdhxv80gk52c6lcgmsc";
-};
+version = "2.7.0";
 linux_py_37_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.4.0-cp37-cp37m-manylinux2010_x86_64.whl";
-  sha256 = "0mdd83c0invqfy58qmpa3hk4yml5ic7wlwggyd5wpikadlv8vq89";
+  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.7.0-cp37-cp37m-manylinux2010_x86_64.whl";
+  sha256 = "1irw4ri1fbxbj251cnjbr12gxsyj2k30asxjfxjpxhc9b0cchhx0";
 };
 linux_py_38_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.4.0-cp38-cp38-manylinux2010_x86_64.whl";
-  sha256 = "1mm1yz9aj3v6fxfpxh7wy37rvsncr0b5y6glqlcxmhr6mqfp8k6d";
+  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.7.0-cp38-cp38-manylinux2010_x86_64.whl";
+  sha256 = "11a1rimr998lvvjdg03rqr8h2h7x6bbd4gyv74biwgaxmjczvjdj";
 };
-linux_py_36_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.4.0-cp36-cp36m-manylinux2010_x86_64.whl";
-  sha256 = "113iygiq2kmj97g0glhcqng6rhl3rrj1iqw5xj1d5hla8xjy8cfv";
+linux_py_39_cpu = {
+  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.7.0-cp39-cp39-manylinux2010_x86_64.whl";
+  sha256 = "0x1zzmgq7hl2k98p8870h0yhaik39nc1ckvxirjx8simpj8ghsbp";
 };
 linux_py_37_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.4.0-cp37-cp37m-manylinux2010_x86_64.whl";
-  sha256 = "19ap8xx2j5nbmnqv5rzf1ryfvw2fbs6bm0fxjqrvhc3jxys6yqqs";
+  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.7.0-cp37-cp37m-manylinux2010_x86_64.whl";
+  sha256 = "1x5yyxzkly9gdyhcfq4x7w7sqqxh6cw5qnfwbvzj5349xwrm63wi";
 };
 linux_py_38_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.4.0-cp38-cp38-manylinux2010_x86_64.whl";
-  sha256 = "0ly3cinzj6j3b547sw8bd3p774khn3b14cgrj7nvfrz668d3f89x";
+  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.7.0-cp38-cp38-manylinux2010_x86_64.whl";
+  sha256 = "0prxa8yc6lbq62vnh8cw6dhcrnkdjih62kbg6pbw4gmgcbf6v6fg";
 };
-mac_py_36_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.4.0-cp36-cp36m-macosx_10_14_x86_64.whl";
-  sha256 = "1b5ld1wj48l1i5s3vk8db5m578zdg4xfl0m1lc8w5lx1vi4cwsjp";
+linux_py_39_gpu = {
+  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.7.0-cp39-cp39-manylinux2010_x86_64.whl";
+  sha256 = "0jjv8vm20d0airml68bxhassp4yg09rcz2a39aa511cz8mavj0l6";
 };
 mac_py_37_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.4.0-cp37-cp37m-macosx_10_14_x86_64.whl";
-  sha256 = "1mgfyjgcwvx5jzawrpfnbch5sqw7kpnzp35rfxj22kwdsl28r47r";
+  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.7.0-cp37-cp37m-macosx_10_11_x86_64.whl";
+  sha256 = "1gr95ck0h4wzhdacjfhkzxdw4zglm85fc54swqhyzzv1f5n9vw8j";
 };
 mac_py_38_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.4.0-cp38-cp38-macosx_10_14_x86_64.whl";
-  sha256 = "034qh0nk786wxzma58179g086x479c3pd9vi8v8p26grs6f2fm0p";
+  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.7.0-cp38-cp38-macosx_10_11_x86_64.whl";
+  sha256 = "1h3qlvlrwyvxynh5flvyqk7grbvyqc21ljqhlvds436hpn2kqrgb";
+};
+mac_py_39_cpu = {
+  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.7.0-cp39-cp39-macosx_10_11_x86_64.whl";
+  sha256 = "0pyj1p2yik6ysdqn8n6cz1nqni0s9xx51ifmvdx4dl3hrzp86jz2";
 };
 }
diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix
index e088dec779949..776fbaa180191 100644
--- a/pkgs/development/python-modules/tensorflow/default.nix
+++ b/pkgs/development/python-modules/tensorflow/default.nix
@@ -1,18 +1,18 @@
 { stdenv, bazel_3, buildBazelPackage, isPy3k, lib, fetchFromGitHub, symlinkJoin
-, addOpenGLRunpath, fetchpatch
+, addOpenGLRunpath, fetchpatch, patchelfUnstable
 # Python deps
 , buildPythonPackage, pythonOlder, python
 # Python libraries
-, numpy, tensorflow-tensorboard_2, absl-py
-, setuptools, wheel, keras-preprocessing, google-pasta
+, numpy, tensorflow-tensorboard, absl-py
+, setuptools, wheel, keras, keras-preprocessing, google-pasta
 , opt-einsum, astunparse, h5py
-, termcolor, grpcio, six, wrapt, protobuf, tensorflow-estimator_2
+, termcolor, grpcio, six, wrapt, protobuf-python, tensorflow-estimator
 , dill, flatbuffers-python, tblib, typing-extensions
 # Common deps
 , git, pybind11, which, binutils, glibcLocales, cython, perl
 # Common libraries
 , jemalloc, mpi, gast, grpc, sqlite, boringssl, jsoncpp
-, curl, snappy, flatbuffers-core, lmdb-core, icu, double-conversion, libpng, libjpeg_turbo, giflib
+, curl, snappy, flatbuffers-core, lmdb-core, icu, double-conversion, libpng, libjpeg_turbo, giflib, protobuf-core
 # Upsteam by default includes cuda support since tensorflow 1.15. We could do
 # that in nix as well. It would make some things easier and less confusing, but
 # it would also make the default tensorflow package unfree. See
@@ -28,7 +28,7 @@
 , avx2Support  ? stdenv.hostPlatform.avx2Support
 , fmaSupport   ? stdenv.hostPlatform.fmaSupport
 # Darwin deps
-, Foundation, Security
+, Foundation, Security, cctools, llvmPackages_11
 }:
 
 assert cudaSupport -> cudatoolkit != null
@@ -72,7 +72,7 @@ let
 
   tfFeature = x: if x then "1" else "0";
 
-  version = "2.4.2";
+  version = "2.7.0";
   variant = if cudaSupport then "-gpu" else "";
   pname = "tensorflow${variant}";
 
@@ -90,19 +90,94 @@ let
       keras-preprocessing
       numpy
       opt-einsum
-      protobuf
+      protobuf-python
       setuptools
       six
       tblib
-      tensorflow-estimator_2
-      tensorflow-tensorboard_2
+      tensorflow-estimator
+      tensorflow-tensorboard
       termcolor
       typing-extensions
       wheel
       wrapt
   ]);
 
-  bazel-build = buildBazelPackage {
+  rules_cc_darwin_patched = stdenv.mkDerivation {
+    name = "rules_cc-${pname}-${version}";
+
+    src = _bazel-build.deps;
+
+    prePatch = "pushd rules_cc";
+    patches = [
+      # https://github.com/bazelbuild/rules_cc/issues/122
+      (fetchpatch {
+        name = "tensorflow-rules_cc-libtool-path.patch";
+        url = "https://github.com/bazelbuild/rules_cc/commit/8c427ab30bf213630dc3bce9d2e9a0e29d1787db.diff";
+        sha256 = "sha256-C4v6HY5+jm0ACUZ58gBPVejCYCZfuzYKlHZ0m2qDHCk=";
+      })
+
+      # https://github.com/bazelbuild/rules_cc/pull/124
+      (fetchpatch {
+        name = "tensorflow-rules_cc-install_name_tool-path.patch";
+        url = "https://github.com/bazelbuild/rules_cc/commit/156497dc89100db8a3f57b23c63724759d431d05.diff";
+        sha256 = "sha256-NES1KeQmMiUJQVoV6dS4YGRxxkZEjOpFSCyOq9HZYO0=";
+      })
+    ];
+    postPatch = "popd";
+
+    dontConfigure = true;
+    dontBuild = true;
+
+    installPhase = ''
+      runHook preInstall
+
+      mv rules_cc/ "$out"
+
+      runHook postInstall
+    '';
+  };
+  llvm-raw_darwin_patched = stdenv.mkDerivation {
+    name = "llvm-raw-${pname}-${version}";
+
+    src = _bazel-build.deps;
+
+    prePatch = "pushd llvm-raw";
+    patches = [
+      # Fix a vendored config.h that requires the 10.13 SDK
+      ./llvm_bazel_fix_macos_10_12_sdk.patch
+    ];
+    postPatch = ''
+      touch {BUILD,WORKSPACE}
+      popd
+    '';
+
+    dontConfigure = true;
+    dontBuild = true;
+
+    installPhase = ''
+      runHook preInstall
+
+      mv llvm-raw/ "$out"
+
+      runHook postInstall
+    '';
+  };
+  bazel-build = if stdenv.isDarwin then _bazel-build.overrideAttrs (prev: {
+    bazelBuildFlags = prev.bazelBuildFlags ++ [
+      "--override_repository=rules_cc=${rules_cc_darwin_patched}"
+      "--override_repository=llvm-raw=${llvm-raw_darwin_patched}"
+    ];
+    preBuild = ''
+      export AR="${cctools}/bin/libtool"
+    '';
+  }) else _bazel-build;
+
+  _bazel-build = (buildBazelPackage.override (lib.optionalAttrs stdenv.isDarwin {
+    # clang 7 fails to emit a symbol for
+    # __ZN4llvm11SmallPtrSetIPKNS_10AllocaInstELj8EED1Ev in any of the
+    # translation units, so the build fails at link time
+    stdenv = llvmPackages_11.stdenv;
+  })) {
     name = "${pname}-${version}";
     bazel = bazel_3;
 
@@ -110,27 +185,19 @@ let
       owner = "tensorflow";
       repo = "tensorflow";
       rev = "v${version}";
-      sha256 = "07a2y05hixch1bjag5pzw3p1m7bdj3bq4gdvmsfk2xraz49b1pi8";
+      sha256 = "sha256-n7jRDPeXsyq4pEWSWmOCas4c8VsArIKlCuwvSU/Ro/c=";
     };
 
     patches = [
-      # included from 2.6.0 onwards
-      (fetchpatch {
-        name = "fix-numpy-1.20-notimplementederror.patch";
-        url = "https://github.com/tensorflow/tensorflow/commit/b258941525f496763d4277045b6513c815720e3a.patch";
-        sha256 = "19f9bzrcfsynk11s2hqvscin5c65zf7r6g3nb10jnimw79vafiry";
-      })
-      # Relax too strict Python packages versions dependencies.
-      ./relax-dependencies.patch
-      # Add missing `io_bazel_rules_docker` dependency.
-      ./workspace.patch
+      # Patch the sources to compile with protobuf >= 3.16.
+      ./system-protobuf.patch
     ];
 
     # On update, it can be useful to steal the changes from gentoo
     # https://gitweb.gentoo.org/repo/gentoo.git/tree/sci-libs/tensorflow
 
     nativeBuildInputs = [
-      which pythonEnv cython perl
+      which pythonEnv cython perl protobuf-core
     ] ++ lib.optional cudaSupport addOpenGLRunpath;
 
     buildInputs = [
@@ -179,12 +246,7 @@ let
       # "com_github_googleapis_googleapis"
       # "com_github_googlecloudplatform_google_cloud_cpp"
       "com_github_grpc_grpc"
-      # Multiple issues with custom protobuf.
-      # First `com_github_googleapis` fails to configure. Can be worked around by disabling `com_github_googleapis`
-      # and related functionality, but then the next error is about "dangling symbolic link", and in general
-      # looks like that's only the beginning: see
-      # https://stackoverflow.com/questions/55578884/how-to-build-tensorflow-1-13-1-with-custom-protobuf
-      # "com_google_protobuf"
+      "com_google_protobuf"
       # Fails with the error: external/org_tensorflow/tensorflow/core/profiler/utils/tf_op_utils.cc:46:49: error: no matching function for call to 're2::RE2::FullMatch(absl::lts_2020_02_25::string_view&, re2::RE2&)'
       # "com_googlesource_code_re2"
       "curl"
@@ -206,7 +268,6 @@ let
       "opt_einsum_archive"
       "org_sqlite"
       "pasta"
-      "pcre"
       "png"
       "pybind11"
       "six_archive"
@@ -220,6 +281,11 @@ let
 
     INCLUDEDIR = "${includes_joined}/include";
 
+    # This is needed for the Nix-provided protobuf dependency to work,
+    # as otherwise the rule `link_proto_files` tries to create the links
+    # to `/usr/include/...` which results in build failures.
+    PROTOBUF_INCLUDE_PATH = "${protobuf-core}/include";
+
     PYTHON_BIN_PATH = pythonEnv.interpreter;
 
     TF_NEED_GCP = true;
@@ -295,9 +361,12 @@ let
     fetchAttrs = {
       # cudaSupport causes fetch of ncclArchive, resulting in different hashes
       sha256 = if cudaSupport then
-        "10m6qj3kchgxfgb6qh59vc51knm9r9pkng8bf90h00dnggvv8234"
+        "sha256-+szc2mRoImwijzbj3nw6HmZp3DeRjjPRU5yC+5AEbkg="
       else
-        "04a98yrp09nd0p17k0jbzkgjppxs0yma7m5zkfrwgvr4g0w71v68";
+        if stdenv.isDarwin then
+          "sha256-+bwIzp6t7gRJPcI8B5oyuf9z0AjCAyggUR7x+vv5kFs="
+        else
+          "sha256-5yOYmeGpJq4Chi55H7iblxyRXVktgnePtpYTPvBs538=";
     };
 
     buildAttrs = {
@@ -355,6 +424,18 @@ in buildPythonPackage {
 
   src = bazel-build.python;
 
+  # Adjust dependency requirements:
+  # - Relax gast version requirement that doesn't match what we have packaged
+  # - The purpose of python3Packages.libclang is not clear at the moment and we don't have it packaged yet
+  # - keras and tensorlow-io-gcs-filesystem will be considered as optional for now.
+  postPatch = ''
+    sed -i setup.py \
+      -e "s/'gast[^']*',/'gast',/" \
+      -e "/'libclang[^']*',/d" \
+      -e "/'keras[^']*',/d" \
+      -e "/'tensorflow-io-gcs-filesystem[^']*',/d"
+  '';
+
   # Upstream has a pip hack that results in bin/tensorboard being in both tensorflow
   # and the propagated input tensorflow-tensorboard, which causes environment collisions.
   # Another possibility would be to have tensorboard only in the buildInputs
@@ -378,18 +459,19 @@ in buildPythonPackage {
     keras-preprocessing
     numpy
     opt-einsum
-    protobuf
+    protobuf-python
     six
     tblib
-    tensorflow-estimator_2
+    tensorflow-estimator
     termcolor
     typing-extensions
     wrapt
   ] ++ lib.optionals withTensorboard [
-    tensorflow-tensorboard_2
+    tensorflow-tensorboard
   ];
 
-  nativeBuildInputs = lib.optional cudaSupport addOpenGLRunpath;
+  # remove patchelfUnstable once patchelf 0.14 with https://github.com/NixOS/patchelf/pull/256 becomes the default
+  nativeBuildInputs = lib.optional cudaSupport [ addOpenGLRunpath patchelfUnstable ];
 
   postFixup = lib.optionalString cudaSupport ''
     find $out -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
@@ -402,6 +484,7 @@ in buildPythonPackage {
   # Actual tests are slow and impure.
   # TODO try to run them anyway
   # TODO better test (files in tensorflow/tools/ci_build/builds/*test)
+  checkInputs = [ keras ];
   checkPhase = ''
     ${python.interpreter} <<EOF
     # A simple "Hello world"
diff --git a/pkgs/development/python-modules/tensorflow/llvm_bazel_fix_macos_10_12_sdk.patch b/pkgs/development/python-modules/tensorflow/llvm_bazel_fix_macos_10_12_sdk.patch
new file mode 100644
index 0000000000000..6a858765c6a39
--- /dev/null
+++ b/pkgs/development/python-modules/tensorflow/llvm_bazel_fix_macos_10_12_sdk.patch
@@ -0,0 +1,12 @@
+diff -ru a/utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/config.h b/utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/config.h
+--- a/utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/config.h	2021-09-21 15:57:02.000000000 -0400
++++ b/utils/bazel/llvm-project-overlay/llvm/include/llvm/Config/config.h	2021-11-20 18:48:48.000000000 -0500
+@@ -102,7 +102,7 @@
+ /* #undef HAVE_FFI_H */
+ 
+ /* Define to 1 if you have the `futimens' function. */
+-#define HAVE_FUTIMENS 1
++/* #define HAVE_FUTIMENS 1 */
+ 
+ /* Define to 1 if you have the `futimes' function. */
+ #define HAVE_FUTIMES 1
diff --git a/pkgs/development/python-modules/tensorflow/prefetcher.sh b/pkgs/development/python-modules/tensorflow/prefetcher.sh
index 8b22affa17a8f..bb189bb06d656 100755
--- a/pkgs/development/python-modules/tensorflow/prefetcher.sh
+++ b/pkgs/development/python-modules/tensorflow/prefetcher.sh
@@ -1,6 +1,6 @@
 #!/usr/bin/env bash
 
-version="2.4.0"
+version="2.7.0"
 
 bucket="https://storage.googleapis.com/tensorflow"
 
@@ -8,15 +8,15 @@ bucket="https://storage.googleapis.com/tensorflow"
 # on the following page:
 # https://www.tensorflow.org/install/pip?lang=python3#package-location
 url_and_key_list=(
-"linux_py_36_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp36-cp36m-manylinux2010_x86_64.whl"
 "linux_py_37_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp37-cp37m-manylinux2010_x86_64.whl"
 "linux_py_38_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp38-cp38-manylinux2010_x86_64.whl"
-"linux_py_36_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp36-cp36m-manylinux2010_x86_64.whl"
+"linux_py_39_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp39-cp39-manylinux2010_x86_64.whl"
 "linux_py_37_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp37-cp37m-manylinux2010_x86_64.whl"
 "linux_py_38_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp38-cp38-manylinux2010_x86_64.whl"
-"mac_py_36_cpu $bucket/mac/cpu/tensorflow-${version}-cp36-cp36m-macosx_10_14_x86_64.whl"
-"mac_py_37_cpu $bucket/mac/cpu/tensorflow-${version}-cp37-cp37m-macosx_10_14_x86_64.whl"
-"mac_py_38_cpu $bucket/mac/cpu/tensorflow-${version}-cp38-cp38-macosx_10_14_x86_64.whl"
+"linux_py_39_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp39-cp39-manylinux2010_x86_64.whl"
+"mac_py_37_cpu $bucket/mac/cpu/tensorflow-${version}-cp37-cp37m-macosx_10_11_x86_64.whl"
+"mac_py_38_cpu $bucket/mac/cpu/tensorflow-${version}-cp38-cp38-macosx_10_11_x86_64.whl"
+"mac_py_39_cpu $bucket/mac/cpu/tensorflow-${version}-cp39-cp39-macosx_10_11_x86_64.whl"
 )
 
 hashfile=binary-hashes.nix
diff --git a/pkgs/development/python-modules/tensorflow/relax-dependencies-metadata.patch b/pkgs/development/python-modules/tensorflow/relax-dependencies-metadata.patch
deleted file mode 100644
index 1be4fd5bc7d50..0000000000000
--- a/pkgs/development/python-modules/tensorflow/relax-dependencies-metadata.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff -ur unpacked/tensorflow-2.4.0/tensorflow-2.4.0.dist-info/METADATA unpacked.new/tensorflow-2.4.0/tensorflow-2.4.0.dist-info/METADATA
---- unpacked/tensorflow-2.4.0/tensorflow-2.4.0.dist-info/METADATA	2021-05-06 23:51:40.298995191 -0700
-+++ unpacked.new/tensorflow-2.4.0/tensorflow-2.4.0.dist-info/METADATA	2021-05-07 00:03:49.856882153 -0700
-@@ -27,24 +27,24 @@
- Classifier: Topic :: Software Development :: Libraries
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
- Description-Content-Type: text/markdown
--Requires-Dist: absl-py (~=0.10)
--Requires-Dist: astunparse (~=1.6.3)
--Requires-Dist: flatbuffers (~=1.12.0)
--Requires-Dist: google-pasta (~=0.2)
--Requires-Dist: h5py (~=2.10.0)
--Requires-Dist: keras-preprocessing (~=1.1.2)
--Requires-Dist: numpy (~=1.19.2)
--Requires-Dist: opt-einsum (~=3.3.0)
--Requires-Dist: protobuf (>=3.9.2)
--Requires-Dist: six (~=1.15.0)
--Requires-Dist: termcolor (~=1.1.0)
--Requires-Dist: typing-extensions (~=3.7.4)
--Requires-Dist: wheel (~=0.35)
--Requires-Dist: wrapt (~=1.12.1)
--Requires-Dist: gast (==0.3.3)
--Requires-Dist: tensorboard (~=2.4)
--Requires-Dist: tensorflow-estimator (<2.5.0,>=2.4.0rc0)
--Requires-Dist: grpcio (~=1.32.0)
-+Requires-Dist: absl-py
-+Requires-Dist: astunparse
-+Requires-Dist: flatbuffers
-+Requires-Dist: google-pasta
-+Requires-Dist: h5py
-+Requires-Dist: keras-preprocessing
-+Requires-Dist: numpy
-+Requires-Dist: opt-einsum
-+Requires-Dist: protobuf
-+Requires-Dist: six
-+Requires-Dist: termcolor
-+Requires-Dist: typing-extensions
-+Requires-Dist: wheel
-+Requires-Dist: wrapt
-+Requires-Dist: gast
-+Requires-Dist: tensorboard
-+Requires-Dist: tensorflow-estimator
-+Requires-Dist: grpcio
- 
- [![Python](https://img.shields.io/pypi/pyversions/tensorflow.svg?style=plastic)](https://badge.fury.io/py/tensorflow)
- [![PyPI](https://badge.fury.io/py/tensorflow.svg)](https://badge.fury.io/py/tensorflow)
\ No newline at end of file
diff --git a/pkgs/development/python-modules/tensorflow/relax-dependencies.patch b/pkgs/development/python-modules/tensorflow/relax-dependencies.patch
deleted file mode 100644
index b26c1e95a6452..0000000000000
--- a/pkgs/development/python-modules/tensorflow/relax-dependencies.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-diff --git a/tensorflow/tools/pip_package/setup.py b/tensorflow/tools/pip_package/setup.py
-index 65133afdafe..8ef6364ff7e 100644
---- a/tensorflow/tools/pip_package/setup.py
-+++ b/tensorflow/tools/pip_package/setup.py
-@@ -75,23 +75,23 @@ if '--project_name' in sys.argv:
- # comment the versioning scheme.
- # NOTE: Please add test only packages to `TEST_PACKAGES` below.
- REQUIRED_PACKAGES = [
--    'absl-py ~= 0.10',
--    'astunparse ~= 1.6.3',
--    'flatbuffers ~= 1.12.0',
--    'google_pasta ~= 0.2',
--    'h5py ~= 2.10.0',
--    'keras_preprocessing ~= 1.1.2',
--    'numpy ~= 1.19.2',
--    'opt_einsum ~= 3.3.0',
-+    'absl-py >= 0.10',
-+    'astunparse >= 1.6.3',
-+    'flatbuffers >= 1.12.0',
-+    'google_pasta >= 0.2',
-+    'h5py >= 2.10.0',
-+    'keras_preprocessing >= 1.1.2',
-+    'numpy >= 1.19.1',
-+    'opt_einsum >= 3.3.0',
-     'protobuf >= 3.9.2',
--    'six ~= 1.15.0',
--    'termcolor ~= 1.1.0',
--    'typing_extensions ~= 3.7.4',
--    'wheel ~= 0.35',
--    'wrapt ~= 1.12.1',
-+    'six >= 1.15.0',
-+    'termcolor >= 1.1.0',
-+    'typing_extensions >= 3.7.4',
-+    'wheel >= 0.34.2',
-+    'wrapt >= 1.12.1',
-     # These packages needs to be pinned exactly as newer versions are
-     # incompatible with the rest of the ecosystem
--    'gast == 0.3.3',
-+    'gast >= 0.3.3',
-     # TensorFlow ecosystem packages that TF exposes API for
-     # These need to be in sync with the existing TF version
-     # They are updated during the release process
-@@ -118,7 +118,7 @@ if 'tf_nightly' in project_name:
- # BoringSSL support.
- # See https://github.com/tensorflow/tensorflow/issues/17882.
- if sys.byteorder == 'little':
--  REQUIRED_PACKAGES.append('grpcio ~= 1.32.0')
-+  REQUIRED_PACKAGES.append('grpcio >= 1.31.0')
- 
- 
- # Packages which are only needed for testing code.
diff --git a/pkgs/development/python-modules/tensorflow/system-protobuf.patch b/pkgs/development/python-modules/tensorflow/system-protobuf.patch
new file mode 100644
index 0000000000000..dce6df810464f
--- /dev/null
+++ b/pkgs/development/python-modules/tensorflow/system-protobuf.patch
@@ -0,0 +1,13 @@
+diff --git a/tensorflow/core/kernels/example_parsing_ops.cc b/tensorflow/core/kernels/example_parsing_ops.cc
+index a1265cfb5c6..ada919bbd7b 100644
+--- a/tensorflow/core/kernels/example_parsing_ops.cc
++++ b/tensorflow/core/kernels/example_parsing_ops.cc
+@@ -1218,7 +1218,7 @@ class DecodeJSONExampleOp : public OpKernel {
+           resolver_.get(), "type.googleapis.com/tensorflow.Example", &in, &out);
+       OP_REQUIRES(ctx, status.ok(),
+                   errors::InvalidArgument("Error while parsing JSON: ",
+-                                          string(status.error_message())));
++                                          string(status.message())));
+     }
+   }
+ 
diff --git a/pkgs/development/python-modules/tensorflow/workspace.patch b/pkgs/development/python-modules/tensorflow/workspace.patch
deleted file mode 100644
index 15a527815ec36..0000000000000
--- a/pkgs/development/python-modules/tensorflow/workspace.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/WORKSPACE b/WORKSPACE
-index 9db1d9b80eb..c46f13f4ca4 100644
---- a/WORKSPACE
-+++ b/WORKSPACE
-@@ -12,6 +12,13 @@ http_archive(
-     ],
- )
- 
-+http_archive(
-+    name = "io_bazel_rules_docker",
-+    sha256 = "1698624e878b0607052ae6131aa216d45ebb63871ec497f26c67455b34119c80",
-+    strip_prefix = "rules_docker-0.15.0",
-+    urls = ["https://github.com/bazelbuild/rules_docker/releases/download/v0.15.0/rules_docker-v0.15.0.tar.gz"],
-+)
-+
- # Load tf_repositories() before loading dependencies for other repository so
- # that dependencies like com_google_protobuf won't be overridden.
- load("//tensorflow:workspace.bzl", "tf_repositories")
diff --git a/pkgs/development/python-modules/tesla-wall-connector/default.nix b/pkgs/development/python-modules/tesla-wall-connector/default.nix
new file mode 100644
index 0000000000000..e814f01320e47
--- /dev/null
+++ b/pkgs/development/python-modules/tesla-wall-connector/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, aiohttp
+, aioresponses
+, aresponses
+, backoff
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "tesla-wall-connector";
+  version = "1.0.1";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "einarhauks";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-JBtlGd9aHY8ikhpJ5v7ZcNu3BfLdBmOBZCMa6C0s6gE=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    backoff
+  ];
+
+  checkInputs = [
+    aresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+
+  pythonImportsCheck = [
+    "tesla_wall_connector"
+  ];
+
+  meta = with lib; {
+    description = "Python library for communicating with a Tesla Wall Connector";
+    homepage = "https://github.com/einarhauks/tesla-wall-connector";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/teslajsonpy/default.nix b/pkgs/development/python-modules/teslajsonpy/default.nix
index 25e77d10ba705..19e42e917dd31 100644
--- a/pkgs/development/python-modules/teslajsonpy/default.nix
+++ b/pkgs/development/python-modules/teslajsonpy/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "teslajsonpy";
-  version = "1.2.1";
+  version = "1.4.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "zabuldon";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-49dQgzYsEn5jmHWTJ3e3QOTqNeoTRMjUWxp+MaOYod4=";
+    sha256 = "sha256-oablQoumBiqDk7bz1BUpUWddxExoqOofrZzX7y618Hw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/thinc/default.nix b/pkgs/development/python-modules/thinc/default.nix
index d2123d207eb17..9524f7e44970a 100644
--- a/pkgs/development/python-modules/thinc/default.nix
+++ b/pkgs/development/python-modules/thinc/default.nix
@@ -1,5 +1,5 @@
-{ stdenv
-, lib
+{ lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
 , pytestCheckHook
@@ -7,6 +7,8 @@
 , catalogue
 , cymem
 , cython
+, contextvars
+, dataclasses
 , Accelerate
 , CoreFoundation
 , CoreGraphics
@@ -27,17 +29,19 @@
 
 buildPythonPackage rec {
   pname = "thinc";
-  version = "8.0.10";
+  version = "8.0.13";
+  format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-teTbjSTmvopfHkoXhUdyt5orVgIkUZ9Qoh85UcokAB8=";
+    sha256 = "sha256-R2YqOuM9RFp3tup7dyREgFx7uomR8SLjUNr3Le3IFxo=";
   };
 
-  buildInputs = [ cython ]
-    ++ lib.optionals stdenv.isDarwin [
+  buildInputs = [
+    cython
+  ] ++ lib.optionals stdenv.isDarwin [
     Accelerate
     CoreFoundation
     CoreGraphics
@@ -56,7 +60,12 @@ buildPythonPackage rec {
     tqdm
     pydantic
     wasabi
-  ] ++ lib.optional (pythonOlder "3.8") typing-extensions;
+  ] ++ lib.optional (pythonOlder "3.8") [
+    typing-extensions
+  ] ++ lib.optional (pythonOlder "3.7") [
+    contextvars
+    dataclasses
+  ];
 
   checkInputs = [
     hypothesis
@@ -71,7 +80,9 @@ buildPythonPackage rec {
     "thinc/tests"
   ];
 
-  pythonImportsCheck = [ "thinc" ];
+  pythonImportsCheck = [
+    "thinc"
+  ];
 
   meta = with lib; {
     description = "Practical Machine Learning for NLP in Python";
diff --git a/pkgs/development/python-modules/tifffile/default.nix b/pkgs/development/python-modules/tifffile/default.nix
index f495541f5de17..2e46762672156 100644
--- a/pkgs/development/python-modules/tifffile/default.nix
+++ b/pkgs/development/python-modules/tifffile/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "tifffile";
-  version = "2021.8.30";
+  version = "2021.11.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8760e61e30106ea0dab9ec42a238d70a3ff55dde9c54456e7b748fe717cb782d";
+    sha256 = "153e31fa1d892f482fabb2ae9f2561fa429ee42d01a6f67e58cee13637d9285b";
   };
 
   patches = lib.optional isPy27 ./python2-regex-compat.patch;
diff --git a/pkgs/development/python-modules/time-machine/default.nix b/pkgs/development/python-modules/time-machine/default.nix
index 9eabd929ae9e6..43af91e89e69e 100644
--- a/pkgs/development/python-modules/time-machine/default.nix
+++ b/pkgs/development/python-modules/time-machine/default.nix
@@ -10,19 +10,21 @@
 
 buildPythonPackage rec {
   pname = "time-machine";
-  version = "2.4.0";
+  version = "2.4.1";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "adamchainz";
     repo = pname;
     rev = version;
-    sha256 = "sha256-1k8mGkgJw0MfydJ/Sm8qDvFNaIqoHR1fZkVrXxvc8Zk=";
+    sha256 = "sha256-+BQRDnxNW4PMCRsOa3pmsbM7yX0KYc5DqsPMA9mV/Eo=";
   };
 
   propagatedBuildInputs = [
     python-dateutil
-  #] ++ lib.optionals (pythonOlder "3.9") [
+  ] ++ lib.optionals (pythonOlder "3.9") [
     backports-zoneinfo
   ];
 
@@ -32,8 +34,9 @@ buildPythonPackage rec {
 
   disabledTests = lib.optionals (pythonAtLeast "3.9") [
     # Assertion Errors related to Africa/Addis_Ababa
-    "test_destination_datetime_tzinfo_zoneinfo"
     "test_destination_datetime_tzinfo_zoneinfo_nested"
+    "test_destination_datetime_tzinfo_zoneinfo_no_orig_tz"
+    "test_destination_datetime_tzinfo_zoneinfo"
     "test_move_to_datetime_with_tzinfo_zoneinfo"
   ];
 
diff --git a/pkgs/development/python-modules/tokenizers/default.nix b/pkgs/development/python-modules/tokenizers/default.nix
index d5d26050eeebe..55928d4fcc8e3 100644
--- a/pkgs/development/python-modules/tokenizers/default.nix
+++ b/pkgs/development/python-modules/tokenizers/default.nix
@@ -1,9 +1,11 @@
 { lib
+, stdenv
 , fetchFromGitHub
 , fetchurl
 , buildPythonPackage
 , rustPlatform
 , setuptools-rust
+, libiconv
 , numpy
 , datasets
 , pytestCheckHook
@@ -72,6 +74,10 @@ in buildPythonPackage rec {
     rust.rustc
   ]);
 
+  buildInputs = lib.optionals stdenv.isDarwin [
+    libiconv
+  ];
+
   propagatedBuildInputs = [
     numpy
   ];
diff --git a/pkgs/development/python-modules/tololib/default.nix b/pkgs/development/python-modules/tololib/default.nix
new file mode 100644
index 0000000000000..63720359dabd5
--- /dev/null
+++ b/pkgs/development/python-modules/tololib/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitLab
+, fetchpatch
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "tololib";
+  version = "0.1.0b3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitLab {
+    owner = "MatthiasLohr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "qkdMy6/ZuBksbBTbDhPyCPWMjubQODjdMsqHTJ7QvQI=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Test requires network access
+    "test_discovery"
+  ];
+
+  pythonImportsCheck = [
+    "tololib"
+  ];
+
+  meta = with lib; {
+    description = "Python Library for Controlling TOLO Sauna/Steam Bath Devices";
+    homepage = "https://gitlab.com/MatthiasLohr/tololib";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/tomli/default.nix b/pkgs/development/python-modules/tomli/default.nix
index 19a0fe6135e5c..c593e1e4cb19a 100644
--- a/pkgs/development/python-modules/tomli/default.nix
+++ b/pkgs/development/python-modules/tomli/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "tomli";
-  version = "1.2.1";
+  version = "1.2.2";
   format = "pyproject";
 
   outputs = [
@@ -19,9 +19,14 @@ buildPythonPackage rec {
     owner = "hukkin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-30AQ9MQmclcjl1d83mIoxFXzaJn1OFKQlVxayqC5NxY=";
+    sha256 = "sha256-oDjpNzWxTaCC1+WyBKrkR6kp90ZomcZQfyW+xKddDoM=";
   };
 
+  patches = [
+    # required for mypy
+    ./fix-backwards-compatibility-load.patch
+  ];
+
   nativeBuildInputs = [ flit-core ];
 
   postInstall = ''
diff --git a/pkgs/development/python-modules/tomli/fix-backwards-compatibility-load.patch b/pkgs/development/python-modules/tomli/fix-backwards-compatibility-load.patch
new file mode 100644
index 0000000000000..edfc2f3834956
--- /dev/null
+++ b/pkgs/development/python-modules/tomli/fix-backwards-compatibility-load.patch
@@ -0,0 +1,21 @@
+diff --git a/tomli/_parser.py b/tomli/_parser.py
+index 89e81c3..6fb1bfd 100644
+--- a/tomli/_parser.py
++++ b/tomli/_parser.py
+@@ -1,6 +1,6 @@
+ import string
+ from types import MappingProxyType
+-from typing import Any, BinaryIO, Dict, FrozenSet, Iterable, NamedTuple, Optional, Tuple
++from typing import IO, Union, Any, BinaryIO, Dict, FrozenSet, Iterable, NamedTuple, Optional, Tuple
+ import warnings
+ 
+ from tomli._re import (
+@@ -48,7 +48,7 @@ class TOMLDecodeError(ValueError):
+     """An error raised if a document is not valid TOML."""
+ 
+ 
+-def load(fp: BinaryIO, *, parse_float: ParseFloat = float) -> Dict[str, Any]:
++def load(fp: Union[IO, BinaryIO], *, parse_float: ParseFloat = float) -> Dict[str, Any]:
+     """Parse TOML from a binary file object."""
+     s_bytes = fp.read()
+     try:
diff --git a/pkgs/development/python-modules/toolz/default.nix b/pkgs/development/python-modules/toolz/default.nix
index 6100d2a7c53d3..234cb471e46dd 100644
--- a/pkgs/development/python-modules/toolz/default.nix
+++ b/pkgs/development/python-modules/toolz/default.nix
@@ -1,23 +1,19 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, nose
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "toolz";
-  version = "0.11.1";
+  version = "0.11.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1grz3zvw5ixwqqlbv0n7j11mlcxb66cirh5i9x9zw8kqy0hpk967";
+    sha256 = "6b312d5e15138552f1bda8a4e66c30e236c831b612b2bf0005f8a1df10a4bc33";
   };
 
-  checkInputs = [ nose ];
-
-  checkPhase = ''
-    nosetests toolz/tests
-  '';
+  checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     homepage = "https://github.com/pytoolz/toolz";
diff --git a/pkgs/development/python-modules/torchvision/default.nix b/pkgs/development/python-modules/torchvision/default.nix
index d17eabb8c35bc..4774e09f0b6ed 100644
--- a/pkgs/development/python-modules/torchvision/default.nix
+++ b/pkgs/development/python-modules/torchvision/default.nix
@@ -24,13 +24,13 @@ let
   cudaArchStr = lib.optionalString cudaSupport lib.strings.concatStringsSep ";" pytorch.cudaArchList;
 in buildPythonPackage rec {
   pname = "torchvision";
-  version = "0.11.1";
+  version = "0.11.2";
 
   src = fetchFromGitHub {
     owner = "pytorch";
     repo = "vision";
     rev = "v${version}";
-    sha256 = "05dg835mmpzf7k2jn101l7x7cnra1kldwbgf19zblym5lfn21zhf";
+    sha256 = "136w9pqyfdsxxc7337q3x42gsr17gs0i0af2swfhzqhz6hd5139i";
   };
 
   nativeBuildInputs = [ libpng ninja which ]
diff --git a/pkgs/development/python-modules/total-connect-client/default.nix b/pkgs/development/python-modules/total-connect-client/default.nix
index bcf4910b0d44a..2c71d0a178282 100644
--- a/pkgs/development/python-modules/total-connect-client/default.nix
+++ b/pkgs/development/python-modules/total-connect-client/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "total-connect-client";
-  version = "2021.11.4";
+  version = "2021.12";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "craigjmidwinter";
     repo = "total-connect-client";
     rev = version;
-    sha256 = "sha256-iggxKefrVZP4ljf8jGRrCAq0/xQLsr54L42KkdjBqgI=";
+    hash = "sha256-cgs6wIMSO8t8CPn6aR35sNcgfDaXDyFBldNEBOr850s=";
   };
 
   propagatedBuildInputs = [
@@ -28,15 +28,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  preCheck = ''
-    export PYTHONPATH="total_connect_client:$PYTHONPATH"
-  '';
-
-  disabledTests = [
-    # Tests require network access
-    "tests_request"
-  ];
-
   pythonImportsCheck = [
     "total_connect_client"
   ];
diff --git a/pkgs/development/python-modules/traitlets/default.nix b/pkgs/development/python-modules/traitlets/default.nix
index 9c09a206f4d3b..0b96ba37c156e 100644
--- a/pkgs/development/python-modules/traitlets/default.nix
+++ b/pkgs/development/python-modules/traitlets/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "traitlets";
-  version = "5.1.0";
+  version = "5.1.1";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bd382d7ea181fbbcce157c133db9a829ce06edffe097bcf3ab945b435452b46d";
+    sha256 = "sha256-BZ9FbFp8HIK5jC6MeZ85ybgSj20NRpQe4RjarOnrcMc=";
   };
 
   checkInputs = [ glibcLocales pytest mock ];
diff --git a/pkgs/development/python-modules/transformers/default.nix b/pkgs/development/python-modules/transformers/default.nix
index 6bf5c069c64a9..5479a0b12258b 100644
--- a/pkgs/development/python-modules/transformers/default.nix
+++ b/pkgs/development/python-modules/transformers/default.nix
@@ -19,13 +19,13 @@
 
 buildPythonPackage rec {
   pname = "transformers";
-  version = "4.12.2";
+  version = "4.12.5";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-SndnMiXWiDW+E1G+WaUTVv3lySavJWF0nFDZLOxzObc=";
+    sha256 = "07v72fyhm1s3bzg2kvaff15d7d8na39nlqpf5gyxaqvp3hglc3qy";
   };
 
   nativeBuildInputs = [ packaging ];
diff --git a/pkgs/development/python-modules/trezor/default.nix b/pkgs/development/python-modules/trezor/default.nix
index 137d671244583..f58c24e5008c7 100644
--- a/pkgs/development/python-modules/trezor/default.nix
+++ b/pkgs/development/python-modules/trezor/default.nix
@@ -19,18 +19,18 @@
 , shamir-mnemonic
 , typing-extensions
 , trezor-udev-rules
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "trezor";
-  version = "0.12.4";
+  version = "0.13.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3e180d9f9f8b69176b5ef36311b6161f5b793b538eb2dfd4babbb4d3fb1e374e";
+    sha256 = "4571aa09dbfe88b31eb2f16c7c359b4809621b75a04b7b5bc9dbffe17046c99a";
   };
 
   nativeBuildInputs = [ installShellFiles ];
@@ -54,16 +54,11 @@ buildPythonPackage rec {
     trezor-udev-rules
   ];
 
-  checkInputs = [
-    pytest
-  ];
+  checkInputs = [ pytestCheckHook ];
 
-  # disable test_tx_api.py as it requires being online
-  checkPhase = ''
-    runHook preCheck
-    pytest --pyargs tests --ignore tests/test_tx_api.py
-    runHook postCheck
-  '';
+  disabledTestPaths = [
+    "tests/test_stellar.py" # requires stellar-sdk
+  ];
 
   postFixup = ''
     mkdir completions
diff --git a/pkgs/development/python-modules/trezor_agent/default.nix b/pkgs/development/python-modules/trezor_agent/default.nix
index cef74c8636b74..41ae2e2761859 100644
--- a/pkgs/development/python-modules/trezor_agent/default.nix
+++ b/pkgs/development/python-modules/trezor_agent/default.nix
@@ -24,6 +24,12 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ setuptools trezor libagent ecdsa ed25519 mnemonic keepkey semver wheel pinentry ];
 
+  # relax dependency constraint
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "trezor[hidapi]>=0.12.0,<0.13" "trezor[hidapi]>=0.12.0,<0.14"
+  '';
+
   doCheck = false;
   pythonImportsCheck = [ "libagent" ];
 
diff --git a/pkgs/development/python-modules/trimesh/default.nix b/pkgs/development/python-modules/trimesh/default.nix
index c96ab4cd55e92..e2ccb99da682b 100644
--- a/pkgs/development/python-modules/trimesh/default.nix
+++ b/pkgs/development/python-modules/trimesh/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "trimesh";
-  version = "3.9.35";
+  version = "3.9.36";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1632a09c7b3c152170dbad05b796033540feba4746a8e9c4a437eaa563c47bc9";
+    sha256 = "f01e8edab14d1999700c980c21a1546f37417216ad915a53be649d263130181e";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/pkgs/development/python-modules/trio-asyncio/default.nix b/pkgs/development/python-modules/trio-asyncio/default.nix
new file mode 100644
index 0000000000000..f6feb789690d9
--- /dev/null
+++ b/pkgs/development/python-modules/trio-asyncio/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, trio
+, outcome
+, sniffio
+, pytest-trio
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "trio-asyncio";
+  version = "0.12.0";
+
+  src = fetchPypi {
+    pname = "trio_asyncio";
+    inherit version;
+    sha256 = "824be23b0c678c0df942816cdb57b92a8b94f264fffa89f04626b0ba2d009768";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "'pytest-runner'" ""
+  '';
+
+  propagatedBuildInputs = [
+    trio
+    outcome
+    sniffio
+  ];
+
+  checkInputs = [
+    pytest-trio
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    "tests/python" # tries to import internal API test.test_asyncio
+  ];
+
+  meta = with lib; {
+    description = "Re-implementation of the asyncio mainloop on top of Trio";
+    homepage = "https://github.com/python-trio/trio-asyncio";
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/trio/default.nix b/pkgs/development/python-modules/trio/default.nix
index acd7c7acfb472..0e95da38eaea0 100644
--- a/pkgs/development/python-modules/trio/default.nix
+++ b/pkgs/development/python-modules/trio/default.nix
@@ -11,7 +11,6 @@
 , sniffio
 , stdenv
 , jedi
-, pylint
 , astor
 , yapf
 }:
@@ -26,7 +25,7 @@ buildPythonPackage rec {
     sha256 = "895e318e5ec5e8cea9f60b473b6edb95b215e82d99556a03eb2d20c5e027efe1";
   };
 
-  checkInputs = [ astor pytestCheckHook pyopenssl trustme jedi pylint yapf ];
+  checkInputs = [ astor pytestCheckHook pyopenssl trustme jedi yapf ];
   # It appears that the build sandbox doesn't include /etc/services, and these tests try to use it.
   disabledTests = [
     "getnameinfo"
diff --git a/pkgs/development/python-modules/trytond/default.nix b/pkgs/development/python-modules/trytond/default.nix
index 4ad2f9f959c50..8ee48d938e38b 100644
--- a/pkgs/development/python-modules/trytond/default.nix
+++ b/pkgs/development/python-modules/trytond/default.nix
@@ -24,14 +24,14 @@
 
 buildPythonApplication rec {
   pname = "trytond";
-  version = "6.2.0";
+  version = "6.2.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-U73dzLTUJnOw24/ELQzjnxJ0PvjV+zE/PNuQHXbEukw=";
+    sha256 = "418f16c45b7130555447af901639b92bb188d39f46ce7fe4dfcd941c5959ed7e";
   };
 
   # Tells the tests which database to use
diff --git a/pkgs/development/python-modules/tumpa/default.nix b/pkgs/development/python-modules/tumpa/default.nix
index 6d953740eb80c..236cfbb7ba0cf 100644
--- a/pkgs/development/python-modules/tumpa/default.nix
+++ b/pkgs/development/python-modules/tumpa/default.nix
@@ -5,6 +5,7 @@
 , pyside2
 , johnnycanencrypt
 , pythonOlder
+, wrapQtAppsHook
 }:
 
 buildPythonPackage rec {
@@ -25,6 +26,15 @@ buildPythonPackage rec {
     pyside2
   ];
 
+  nativeBuildInputs = [
+    wrapQtAppsHook
+  ];
+
+  dontWrapQtApps = true;
+  preFixup = ''
+    makeWrapperArgs+=("''${qtWrapperArgs[@]}")
+  '';
+
   doCheck = false;
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/tuya-iot-py-sdk/default.nix b/pkgs/development/python-modules/tuya-iot-py-sdk/default.nix
index beca3db9c6c2f..89db0e84f9e11 100644
--- a/pkgs/development/python-modules/tuya-iot-py-sdk/default.nix
+++ b/pkgs/development/python-modules/tuya-iot-py-sdk/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "tuya-iot-py-sdk";
-  version = "0.6.3";
+  version = "0.6.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "tuya";
     repo = "tuya-iot-python-sdk";
     rev = "v${version}";
-    sha256 = "sha256-i3VECGGpnvbogZ46PJh4Eto7neSZOJCUdOmAU/sMKEw=";
+    sha256 = "sha256-KmSVa71CM/kNhzE4GznaxISGmIaV+UcTSn3v+fmxmrQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/tweedledum/default.nix b/pkgs/development/python-modules/tweedledum/default.nix
index 81f0dad52eb03..69b126481d3e5 100644
--- a/pkgs/development/python-modules/tweedledum/default.nix
+++ b/pkgs/development/python-modules/tweedledum/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , cmake
diff --git a/pkgs/development/python-modules/twentemilieu/default.nix b/pkgs/development/python-modules/twentemilieu/default.nix
index fb5617321747b..a8a0fd0c99a63 100644
--- a/pkgs/development/python-modules/twentemilieu/default.nix
+++ b/pkgs/development/python-modules/twentemilieu/default.nix
@@ -5,22 +5,34 @@
 , aiohttp
 , yarl
 , aresponses
+, poetry-core
 , pytest-asyncio
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "twentemilieu";
-  version = "0.3.0";
-  disabled = pythonOlder "3.7";
+  version = "0.5.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "frenck";
     repo = "python-twentemilieu";
     rev = "v${version}";
-    sha256 = "1ff35sh73m2s7fh4d8p2pjwdbfljswr8b8lpcjybz8nsh0286xph";
+    sha256 = "sha256-7HQ0+h8oiyY+TacQdX84K0r994rH0AMZAvZz8PUvQl0=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace "--cov" ""
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
   propagatedBuildInputs = [
     aiohttp
     yarl
diff --git a/pkgs/development/python-modules/twilio/default.nix b/pkgs/development/python-modules/twilio/default.nix
index d85446f5387c5..12859fae86cc9 100644
--- a/pkgs/development/python-modules/twilio/default.nix
+++ b/pkgs/development/python-modules/twilio/default.nix
@@ -11,7 +11,8 @@
 
 buildPythonPackage rec {
   pname = "twilio";
-  version = "7.2.0";
+  version = "7.4.0";
+  format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
@@ -19,7 +20,7 @@ buildPythonPackage rec {
     owner = "twilio";
     repo = "twilio-python";
     rev = version;
-    sha256 = "sha256-lhRlLZ9RpOpNIPEgrO7+JO8CnqeC3gqgGqXjznsA9ls=";
+    sha256 = "sha256-gN9cVBhiO34uj2ZGqXrnlvOlSaGxry0tMxaTK4SYhjM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/twill/default.nix b/pkgs/development/python-modules/twill/default.nix
index febb0f87d4404..2ae36cd5408df 100644
--- a/pkgs/development/python-modules/twill/default.nix
+++ b/pkgs/development/python-modules/twill/default.nix
@@ -5,11 +5,11 @@
 }:
 buildPythonPackage rec {
   pname = "twill";
-  version = "3.0";
+  version = "3.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01770eddb34f5fe6ee59992b84619968885d359ad3d6d9191e8ba8eec93482aa";
+    sha256 = "57cde4c3a2265f1a14d80007aa4f66c2135d509555499e9b156d2b4cf5048c2c";
   };
 
   checkInputs = [ nose ];
diff --git a/pkgs/development/python-modules/twitterapi/default.nix b/pkgs/development/python-modules/twitterapi/default.nix
index 313e408ca50d4..31caed5ebd946 100644
--- a/pkgs/development/python-modules/twitterapi/default.nix
+++ b/pkgs/development/python-modules/twitterapi/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "twitterapi";
-  version = "2.7.7";
+  version = "2.7.10";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "geduldig";
     repo = "TwitterAPI";
     rev = "v${version}";
-    sha256 = "sha256-KEJ0lAg6Zi2vps+ZPTkT6ts87qnIBL9pFe1tPEzviCI=";
+    sha256 = "sha256-NWvoamSSyMssV4yJpMZtnCwQ5zBpqbgyUA7sJa9854U=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/typed-ast/default.nix b/pkgs/development/python-modules/typed-ast/default.nix
index d5c190e1c41f2..c4977ab082925 100644
--- a/pkgs/development/python-modules/typed-ast/default.nix
+++ b/pkgs/development/python-modules/typed-ast/default.nix
@@ -1,26 +1,28 @@
-{ buildPythonPackage, fetchFromGitHub, lib, pythonOlder, pytest }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytest
+, pythonOlder
+}:
+
 buildPythonPackage rec {
   pname = "typed-ast";
-  version = "1.4.3";
+  version = "1.5.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
   src = fetchFromGitHub {
     owner = "python";
     repo = "typed_ast";
     rev = version;
-    sha256 = "16mn9snwik5n2ib65sw2xcaqdm02j8ps21zgjxf8kyy7qnx2mx4w";
+    hash = "sha256-qfXMT+rSf/WcWHpkg4VZXZMYj/5IKQWAKRsxQ0TRzPU=";
   };
-  # Only works with Python 3.3 and newer;
-  disabled = pythonOlder "3.3";
-
-  pythonImportsCheck = [
-    "typed_ast"
-    "typed_ast.ast27"
-    "typed_ast.ast3"
-    "typed_ast.conversions"
-  ];
 
   checkInputs = [
     pytest
   ];
+
   checkPhase = ''
     runHook preCheck
 
@@ -32,9 +34,17 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  meta = {
+  pythonImportsCheck = [
+    "typed_ast"
+    "typed_ast.ast27"
+    "typed_ast.ast3"
+    "typed_ast.conversions"
+  ];
+
+  meta = with lib; {
+    description = "Python AST modules with type comment support";
     homepage = "https://github.com/python/typed_ast";
-    description = "Python 2 and 3 ast modules with type comment support";
-    license = lib.licenses.asl20;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/typeguard/default.nix b/pkgs/development/python-modules/typeguard/default.nix
index 0385bd7070685..63e1502226d92 100644
--- a/pkgs/development/python-modules/typeguard/default.nix
+++ b/pkgs/development/python-modules/typeguard/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "typeguard";
-  version = "2.12.1";
+  version = "2.13.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c2af8b9bdd7657f4bd27b45336e7930171aead796711bc4cfc99b4731bb9d051";
+    sha256 = "7e50071590ab997509aa0977609eb5cf9d73d84c1f416cb4fab78b77a9d15326";
   };
 
   buildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/types-decorator/default.nix b/pkgs/development/python-modules/types-decorator/default.nix
index 631d4836d7f31..5d162f1c3f7a0 100644
--- a/pkgs/development/python-modules/types-decorator/default.nix
+++ b/pkgs/development/python-modules/types-decorator/default.nix
@@ -5,17 +5,20 @@
 
 buildPythonPackage rec {
   pname = "types-decorator";
-  version = "5.1.0";
+  version = "5.1.1";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-mavQDGFOVOde4I2IeZiGrMKRjMiJBeymR0upF7Mncps=";
+    sha256 = "sha256-WBcQj9v71OppsQcrG1fJpyakF4z9CBYMtb1PmTdptsE=";
   };
 
   # Modules doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [ "decorator-stubs" ];
+  pythonImportsCheck = [
+    "decorator-stubs"
+  ];
 
   meta = with lib; {
     description = "Typing stubs for decorator";
diff --git a/pkgs/development/python-modules/types-protobuf/default.nix b/pkgs/development/python-modules/types-protobuf/default.nix
index b3e38c8640701..382bd31117414 100644
--- a/pkgs/development/python-modules/types-protobuf/default.nix
+++ b/pkgs/development/python-modules/types-protobuf/default.nix
@@ -1,15 +1,29 @@
-{ buildPythonPackage, fetchPypi, lib, types-futures }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, types-futures
+}:
 
 buildPythonPackage rec {
   pname = "types-protobuf";
-  version = "3.18.0";
+  version = "3.18.2";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a391d1a9138fe53fe08aeb6aa15ca7f1a188659b9a6c12af5313c55730eccd6c";
+    sha256 = "sha256-yiHe3+d1msvrDNj1xyp0/zxAmuDAe8HZTv9RI6wPojw=";
   };
 
-  propagatedBuildInputs = [ types-futures ];
+  propagatedBuildInputs = [
+    types-futures
+  ];
+
+  # Module doesn't have tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "google-stubs"
+  ];
 
   meta = with lib; {
     description = "Typing stubs for protobuf";
diff --git a/pkgs/development/python-modules/types-pytz/default.nix b/pkgs/development/python-modules/types-pytz/default.nix
index a6139eb9c9b24..b9d0abc25b111 100644
--- a/pkgs/development/python-modules/types-pytz/default.nix
+++ b/pkgs/development/python-modules/types-pytz/default.nix
@@ -5,17 +5,20 @@
 
 buildPythonPackage rec {
   pname = "types-pytz";
-  version = "2021.3.0";
+  version = "2021.3.3";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-hqYZZ4NNzuqvmLaQLtg1fv3SYruK/K9LyMzs90hZJ3g=";
+    sha256 = "sha256-9tIdZoeTWhYV20ZLHh34ANGVAsNrwEhvQ759/SxASUc=";
   };
 
   # Modules doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [ "pytz-stubs" ];
+  pythonImportsCheck = [
+    "pytz-stubs"
+  ];
 
   meta = with lib; {
     description = "Typing stubs for pytz";
diff --git a/pkgs/development/python-modules/types-requests/default.nix b/pkgs/development/python-modules/types-requests/default.nix
index f151b00862823..3006c2c5e99ec 100644
--- a/pkgs/development/python-modules/types-requests/default.nix
+++ b/pkgs/development/python-modules/types-requests/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "types-requests";
-  version = "2.26.0";
+  version = "2.26.3";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-317Iw0tBOkLrs45Plr3raAkLh1vfzFE43IKYnJVEWIM=";
+    sha256 = "sha256-1j+mF4Rtzv/1qi1Z5Hq0/9gG5LsFZxFfetu15DgwL+Q=";
   };
 
   # Module doesn't have tests
diff --git a/pkgs/development/python-modules/types-setuptools/default.nix b/pkgs/development/python-modules/types-setuptools/default.nix
index 512b5386625bd..b88dc5b0260b2 100644
--- a/pkgs/development/python-modules/types-setuptools/default.nix
+++ b/pkgs/development/python-modules/types-setuptools/default.nix
@@ -5,18 +5,20 @@
 
 buildPythonPackage rec {
   pname = "types-setuptools";
-  version = "57.4.2";
+  version = "57.4.5";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1y0vx949wx5w4ra854ykwvgmdcwsb6v7jk29m4x1l79857sa16al";
+    sha256 = "sha256-pGAO/cpoozIErZwIP9mWbWOu5hp9AH6RK2r8b/V9bgI=";
   };
 
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [ "setuptools-stubs" ];
+  pythonImportsCheck = [
+    "setuptools-stubs"
+  ];
 
   meta = with lib; {
     description = "Typing stubs for setuptools";
diff --git a/pkgs/development/python-modules/types-typed-ast/default.nix b/pkgs/development/python-modules/types-typed-ast/default.nix
new file mode 100644
index 0000000000000..7c2c7f66a246b
--- /dev/null
+++ b/pkgs/development/python-modules/types-typed-ast/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "types-typed-ast";
+  version = "1.5.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-2Op5y/vFIL6Nm8jeSHL0SzQtvbwJFmfi8hsDu9eWkVA=";
+  };
+
+  # Module doesn't have tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "typed_ast-stubs" ];
+
+  meta = with lib; {
+    description = "Typing stubs for typed-ast";
+    homepage = "https://github.com/python/typeshed";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 veehaitch ];
+  };
+}
diff --git a/pkgs/development/python-modules/typical/default.nix b/pkgs/development/python-modules/typical/default.nix
new file mode 100644
index 0000000000000..ee815fa15e1f7
--- /dev/null
+++ b/pkgs/development/python-modules/typical/default.nix
@@ -0,0 +1,80 @@
+{ lib
+, buildPythonPackage
+, fastjsonschema
+, fetchFromGitHub
+, future-typing
+, inflection
+, mypy
+, orjson
+, pandas
+, pendulum
+, poetry-core
+, pydantic
+, pytestCheckHook
+, pythonOlder
+, sqlalchemy
+, typing-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "typical";
+  version = "2.7.9";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "seandstewart";
+    repo = "typical";
+    rev = "v${version}";
+    sha256 = "sha256-ITIsSM92zftnvqLiVGFl//IbBb8N3ffkkqohzOx2JO4=";
+  };
+
+  patches = [
+    ./use-poetry-core.patch
+  ];
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    inflection
+    pendulum
+    fastjsonschema
+    orjson
+    future-typing
+  ] ++ lib.optionals (pythonOlder "3.10") [
+    typing-extensions
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    mypy
+    pydantic
+    sqlalchemy
+    pandas
+  ];
+
+  disabledTests = [
+    # We use orjson
+    "test_ujson"
+    # ConstraintValueError: Given value <{'key...
+    "test_tagged_union_validate"
+  ];
+
+  disabledTestPaths = [
+    "benchmark/"
+  ];
+
+  pythonImportsCheck = [
+    "typic"
+  ];
+
+  meta = with lib; {
+    description = "Python library for runtime analysis, inference and validation of Python types";
+    homepage = "https://python-typical.org/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kfollesdal ];
+  };
+}
diff --git a/pkgs/development/python-modules/typical/use-poetry-core.patch b/pkgs/development/python-modules/typical/use-poetry-core.patch
new file mode 100644
index 0000000000000..f3c32e621aeac
--- /dev/null
+++ b/pkgs/development/python-modules/typical/use-poetry-core.patch
@@ -0,0 +1,13 @@
+diff --git a/pyproject.toml b/pyproject.toml
+index a588a0d..43da394 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -154,7 +154,7 @@ exclude = '''
+ 
+ [build-system]
+ requires = ["poetry>=0.12"]
+-build-backend = "poetry.masonry.api"
++build-backend = "poetry.core.masonry.api"
+ 
+ [bumpver]
+ current_version = "v2.7.5"
diff --git a/pkgs/development/python-modules/tzlocal/2.nix b/pkgs/development/python-modules/tzlocal/2.nix
new file mode 100644
index 0000000000000..ba96c63af8501
--- /dev/null
+++ b/pkgs/development/python-modules/tzlocal/2.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, pytz
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "tzlocal";
+  version = "2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "643c97c5294aedc737780a49d9df30889321cbe1204eac2c2ec6134035a92e44";
+  };
+
+  propagatedBuildInputs = [
+    pytz
+  ];
+
+  checkInputs = [
+    mock
+  ];
+
+  doCheck = false;
+
+  pythonImportsCheck = [ "tzlocal" ];
+
+  meta = with lib; {
+    description = "Tzinfo object for the local timezone";
+    homepage = "https://github.com/regebro/tzlocal";
+    license = licenses.cddl;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/tzlocal/default.nix b/pkgs/development/python-modules/tzlocal/default.nix
index 363e1d12a55ef..7079392e4f668 100644
--- a/pkgs/development/python-modules/tzlocal/default.nix
+++ b/pkgs/development/python-modules/tzlocal/default.nix
@@ -1,19 +1,38 @@
-{ lib, buildPythonPackage, fetchPypi
-, pytz }:
+{ lib
+, stdenv
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, pytz-deprecation-shim
+, pytest-mock
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "tzlocal";
-  version = "2.1"; # version needs to be compatible with APScheduler
+  version = "4.1"; # version needs to be compatible with APScheduler
 
-  propagatedBuildInputs = [ pytz ];
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "643c97c5294aedc737780a49d9df30889321cbe1204eac2c2ec6134035a92e44";
+    sha256 = "sha256-DygBWsaKXAZyEEAKkZf8XTa6m8P46vHaPL1ZrN/tngk=";
   };
 
-  # test fail (timezone test fail)
-  doCheck = false;
+  propagatedBuildInputs = [
+    pytz-deprecation-shim
+  ];
+
+  checkInputs = [
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    "test_conflicting"
+    "test_noconflict"
+    "test_symlink_localtime"
+  ] ++ lib.optional stdenv.isDarwin "test_assert_tz_offset";
 
   pythonImportsCheck = [ "tzlocal" ];
 
diff --git a/pkgs/development/python-modules/ujson/default.nix b/pkgs/development/python-modules/ujson/default.nix
index 70e676f6b2ccb..4d12af0689d8a 100644
--- a/pkgs/development/python-modules/ujson/default.nix
+++ b/pkgs/development/python-modules/ujson/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "ujson";
-  version = "4.2.0";
+  version = "4.3.0";
   disabled = isPyPy || pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fffe509f556861c7343c6cba57ed05fe7bcf4b48a934a5b946ccb45428cf8883";
+    sha256 = "baee56eca35cb5fbe02c28bd9c0936be41a96fa5c0812d9d4b7edeb5c3d568a0";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/umap-learn/default.nix b/pkgs/development/python-modules/umap-learn/default.nix
index fcf96a715f15b..81d70b0afc0d9 100644
--- a/pkgs/development/python-modules/umap-learn/default.nix
+++ b/pkgs/development/python-modules/umap-learn/default.nix
@@ -8,18 +8,20 @@
 , numba
 , pynndescent
 , tensorflow
+, tqdm
 , pytestCheckHook
+, keras
 }:
 
 buildPythonPackage rec {
   pname = "umap-learn";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "lmcinnes";
     repo = "umap";
     rev = version;
-    sha256 = "0favphngcz5jvyqs06x07hk552lvl9qx3vka8r4x0xmv88gsg349";
+    sha256 = "sha256-JfYuuE1BP+HdiEl7l01sZ/XXlEwHyAsLjK9nqhRd/3o=";
   };
 
   propagatedBuildInputs = [
@@ -28,12 +30,14 @@ buildPythonPackage rec {
     scipy
     numba
     pynndescent
+    tqdm
   ];
 
   checkInputs = [
     nose
     tensorflow
     pytestCheckHook
+    keras
   ];
 
   preCheck = ''
diff --git a/pkgs/development/python-modules/uranium/default.nix b/pkgs/development/python-modules/uranium/default.nix
index a8ce6713f2c0c..58b96b5cd7a43 100644
--- a/pkgs/development/python-modules/uranium/default.nix
+++ b/pkgs/development/python-modules/uranium/default.nix
@@ -2,7 +2,7 @@
 , pyqt5, numpy, scipy, shapely, libarcus, cryptography, doxygen, gettext, pythonOlder }:
 
 buildPythonPackage rec {
-  version = "4.10.0";
+  version = "4.12.0";
   pname = "uranium";
   format = "other";
 
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     owner = "Ultimaker";
     repo = "Uranium";
     rev = version;
-    sha256 = "0bxbkqc4ajs52vmalmhvvqvl1aw2ss6yf7nclwx8nc2g5vchd4ng";
+    sha256 = "sha256-SE9xqrloPXIRTJiiqUdRKFmb4c0OjmJK5CMn6VXMFmk=";
   };
 
   disabled = pythonOlder "3.5.0";
diff --git a/pkgs/development/python-modules/validators/default.nix b/pkgs/development/python-modules/validators/default.nix
index 37f00b734800b..29ec9cd73d73b 100644
--- a/pkgs/development/python-modules/validators/default.nix
+++ b/pkgs/development/python-modules/validators/default.nix
@@ -2,11 +2,8 @@
 , buildPythonPackage
 , fetchPypi
 , isPy27
-, six
 , decorator
 , pytestCheckHook
-, isort
-, flake8
 }:
 
 buildPythonPackage rec {
@@ -20,18 +17,13 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    six
     decorator
   ];
 
   checkInputs = [
     pytestCheckHook
-    flake8
-    isort
   ];
 
-  disabledTests = lib.optionals isPy27 [ "url" ];
-
   meta = with lib; {
     description = "Python Data Validation for Humans™";
     homepage = "https://github.com/kvesteri/validators";
diff --git a/pkgs/development/python-modules/vehicle/default.nix b/pkgs/development/python-modules/vehicle/default.nix
index b7b7fbc327385..a56cc4ca8b43e 100644
--- a/pkgs/development/python-modules/vehicle/default.nix
+++ b/pkgs/development/python-modules/vehicle/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "vehicle";
-  version = "0.2.0";
+  version = "0.3.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "frenck";
     repo = "python-vehicle";
     rev = "v${version}";
-    sha256 = "0yiavz5sw8fjrh6m3mr8gyds7h6vaja3xy1516ajgz0qvijhqylg";
+    sha256 = "04xcs5bfjd49j870gyyznc8hkaadsa9gm9pz0w9qvzlphnxvv5h4";
   };
 
   nativeBuildInputs = [
@@ -54,7 +54,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python client providing RDW vehicle information";
-    homepage = "https://github.com/frenck/python-wled";
+    homepage = "https://github.com/frenck/python-vehicle";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/velbus-aio/default.nix b/pkgs/development/python-modules/velbus-aio/default.nix
index db9721641cfd9..e871912adf7aa 100644
--- a/pkgs/development/python-modules/velbus-aio/default.nix
+++ b/pkgs/development/python-modules/velbus-aio/default.nix
@@ -19,7 +19,8 @@ buildPythonPackage rec {
     owner = "Cereal2nd";
     repo = pname;
     rev = version;
-    sha256 = "sha256-itaYSfZm+/vF/tKRO2BW4qXrDXP0YfBrKiq9bMGFj0M=";
+    sha256 = "0i1vfyhyvn908vz55agmfds3zwp6qpbpip055d995nx79ysxz0j9";
+    fetchSubmodules = true;
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/vilfo-api-client/default.nix b/pkgs/development/python-modules/vilfo-api-client/default.nix
index cdc01d93a8562..05ce50199708f 100644
--- a/pkgs/development/python-modules/vilfo-api-client/default.nix
+++ b/pkgs/development/python-modules/vilfo-api-client/default.nix
@@ -4,19 +4,20 @@
 , setuptools-scm
 , getmac
 , requests
+, semver
 , pytestCheckHook
 , responses
 }:
 
 buildPythonPackage rec {
   pname = "vilfo-api-client";
-  version = "0.3.3";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "ManneW";
     repo = "vilfo-api-client-python";
-    rev = "v${version}";
-    sha256 = "1gy5gpsg99rcm1cc3m30232za00r9i46sp74zpd12p3vzz1wyyqf";
+    rev = version;
+    sha256 = "sha256-j06Bbv0hWSmrlCv8RfgvfGTyOF+vSX+zZnX3AvG5Hys=";
   };
 
   postPatch = ''
@@ -33,6 +34,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     getmac
     requests
+    semver
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/virtualenv-clone/default.nix b/pkgs/development/python-modules/virtualenv-clone/default.nix
index 0cd5d6a7fe22f..6d407d7ea24b5 100644
--- a/pkgs/development/python-modules/virtualenv-clone/default.nix
+++ b/pkgs/development/python-modules/virtualenv-clone/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "virtualenv-clone";
-  version = "0.5.6";
+  version = "0.5.7";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "edwardgeorge";
     repo = pname;
     rev = version;
-    sha256 = "0xb20fhl99dw5vnyb43sjpj9628nbdnwp5g7m8f2id7w8kpwzvfw";
+    sha256 = "sha256-qrN74IwLRqiVPxU8gVhdiM34yBmiS/5ot07uroYPDVw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/virtualenv/default.nix b/pkgs/development/python-modules/virtualenv/default.nix
index c5aa9f0bac94c..d51b3d7837965 100644
--- a/pkgs/development/python-modules/virtualenv/default.nix
+++ b/pkgs/development/python-modules/virtualenv/default.nix
@@ -23,11 +23,11 @@
 
 buildPythonPackage rec {
   pname = "virtualenv";
-  version = "20.8.1";
+  version = "20.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bcc17f0b3a29670dd777d6f0755a4c04f28815395bca279cdcb213b97199a6b8";
+    sha256 = "576d05b46eace16a9c348085f7d0dc8ef28713a2cabaa1cf0aea41e8f12c9218";
   };
 
   nativeBuildInputs = [
@@ -74,6 +74,9 @@ buildPythonPackage rec {
   disabledTests = [
     # Permission Error
     "test_bad_exe_py_info_no_raise"
+  ] ++ lib.optionals isPy27 [
+    "test_python_via_env_var"
+    "test_python_multi_value_prefer_newline_via_env_var"
   ];
 
   pythonImportsCheck = [ "virtualenv" ];
diff --git a/pkgs/development/python-modules/vispy/default.nix b/pkgs/development/python-modules/vispy/default.nix
index c13f7b6d7d3a6..5967b9b9abb76 100644
--- a/pkgs/development/python-modules/vispy/default.nix
+++ b/pkgs/development/python-modules/vispy/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "vispy";
-  version = "0.9.3";
+  version = "0.9.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bc3aec042637947d4e999121bab224077a6f7ede4af745102f41737f7c81c05a";
+    sha256 = "8561e41bbcca5fadce4a8d974ca2f96cbe7710d835bfed6a55ed6d10900ef5d5";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/volkszaehler/default.nix b/pkgs/development/python-modules/volkszaehler/default.nix
index 6bd509d7cd402..cbc51d024a6ed 100644
--- a/pkgs/development/python-modules/volkszaehler/default.nix
+++ b/pkgs/development/python-modules/volkszaehler/default.nix
@@ -1,17 +1,23 @@
 { lib
-, buildPythonPackage
-, fetchPypi
 , aiohttp
 , async-timeout
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "volkszaehler";
-  version = "0.2.2";
+  version = "0.3.2";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-1oqzhC3Yq2V30F3ilr80vKFnTmI/CdIVLuzMlIr40xI=";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "home-assistant-ecosystem";
+    repo = "python-volkszaehler";
+    rev = version;
+    sha256 = "sha256-EiruMlhXvbUhCaDtHc3qCLbpp/KHp9rVpk2FmbR4A/k=";
   };
 
   propagatedBuildInputs = [
@@ -22,10 +28,12 @@ buildPythonPackage rec {
   # no tests are present
   doCheck = false;
 
-  pythonImportsCheck = [ "volkszaehler" ];
+  pythonImportsCheck = [
+    "volkszaehler"
+  ];
 
   meta = with lib; {
-    description = "Python Wrapper for interacting with the Volkszahler API";
+    description = "Python module for interacting with the Volkszahler API";
     homepage = "https://github.com/home-assistant-ecosystem/python-volkszaehler";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/voluptuous-serialize/default.nix b/pkgs/development/python-modules/voluptuous-serialize/default.nix
index 4c31b5f758a49..97cd40fbc6940 100644
--- a/pkgs/development/python-modules/voluptuous-serialize/default.nix
+++ b/pkgs/development/python-modules/voluptuous-serialize/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec  {
   pname = "voluptuous-serialize";
-  version = "2.4.0";
+  version = "2.5.0";
 
   disabled = !isPy3k;
 
@@ -16,7 +16,7 @@ buildPythonPackage rec  {
     owner = "home-assistant-libs";
     repo = pname;
     rev = version;
-    sha256 = "1km2y1xaagkdvsy3bmi1sc040x5yyfdw6llmwdv9z8nz67m9v1ya";
+    sha256 = "sha256-8rWMz8tBanxHdU/F4HhBxxz3ltqbdRoP4JED2dmZfTk=";
   };
 
   propagatedBuildInputs = [ voluptuous ];
diff --git a/pkgs/development/python-modules/vowpalwabbit/default.nix b/pkgs/development/python-modules/vowpalwabbit/default.nix
index 4cd6fb1128cdb..2f950ecd6c44b 100644
--- a/pkgs/development/python-modules/vowpalwabbit/default.nix
+++ b/pkgs/development/python-modules/vowpalwabbit/default.nix
@@ -10,7 +10,11 @@
 , pygments
 , numpy
 , scipy
-, scikit-learn }:
+, scikit-learn
+, spdlog
+, fmt
+, rapidjson
+}:
 
 buildPythonPackage rec {
   pname = "vowpalwabbit";
@@ -31,8 +35,15 @@ buildPythonPackage rec {
     pygments
     python.pkgs.boost
     zlib.dev
+    spdlog
+    fmt
+    rapidjson
   ];
 
+  # As we disable configure via cmake, pass explicit global options to enable
+  # spdlog and fmt packages
+  setupPyGlobalFlags = [ "--cmake-options=\"-DSPDLOG_SYS_DEP=ON;-DFMT_SYS_DEP=ON\"" ];
+
   propagatedBuildInputs = [
     numpy
     scikit-learn
diff --git a/pkgs/development/python-modules/vpk/default.nix b/pkgs/development/python-modules/vpk/default.nix
new file mode 100644
index 0000000000000..a39f0a47dfa8f
--- /dev/null
+++ b/pkgs/development/python-modules/vpk/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "vpk";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "ValvePython";
+    repo = "vpk";
+    rev = "v${version}";
+    hash = "sha256-SPkPb8kveAR2cN9kd2plS+TjmBYBCfa6pJ0c22l69M0=";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Library for working with Valve Pak files";
+    homepage = "https://github.com/ValvePython/vpk";
+    license = licenses.mit;
+    maintainers = with maintainers; [ joshuafern ];
+  };
+}
diff --git a/pkgs/development/python-modules/vt-py/default.nix b/pkgs/development/python-modules/vt-py/default.nix
index fcd2c2452fe67..80c297fe773ca 100644
--- a/pkgs/development/python-modules/vt-py/default.nix
+++ b/pkgs/development/python-modules/vt-py/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "vt-py";
-  version = "0.8.0";
+  version = "0.11.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -18,8 +18,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "VirusTotal";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-j9TlZDzl9sWFPt8TeuyoJi01JhyPBVXs1w3YJMoVvLw=";
+    rev = "v${version}";
+    sha256 = "sha256-PpgN9adGNZOorOUigsBVOb//ZafUaYHfo/Fv1IZf/XA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/wasabi/default.nix b/pkgs/development/python-modules/wasabi/default.nix
index f58574014ed22..fca3f5480dcf5 100644
--- a/pkgs/development/python-modules/wasabi/default.nix
+++ b/pkgs/development/python-modules/wasabi/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "wasabi";
-  version = "0.8.2";
+  version = "0.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b4a36aaa9ca3a151f0c558f269d442afbb3526f0160fd541acd8a0d5e5712054";
+    sha256 = "152245d892030a3a7b511038e9472acff6d0e237cfe4123fef0d147f2d3274fc";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/watchdog/default.nix b/pkgs/development/python-modules/watchdog/default.nix
index de277749a6e7f..9fba5785c4478 100644
--- a/pkgs/development/python-modules/watchdog/default.nix
+++ b/pkgs/development/python-modules/watchdog/default.nix
@@ -13,6 +13,7 @@
 buildPythonPackage rec {
   pname = "watchdog";
   version = "2.1.6";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
@@ -38,7 +39,14 @@ buildPythonPackage rec {
       --replace "--cov-report=term-missing" ""
   '';
 
-  pythonImportsCheck = [ "watchdog" ];
+  disabledTestPaths = [
+    # Tests are flaky
+    "tests/test_inotify_buffer.py"
+  ];
+
+  pythonImportsCheck = [
+    "watchdog"
+  ];
 
   meta = with lib; {
     description = "Python API and shell utilities to monitor file system events";
@@ -46,6 +54,7 @@ buildPythonPackage rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ goibhniu ];
     # error: use of undeclared identifier 'kFSEventStreamEventFlagItemCloned'
-    broken = stdenv.isDarwin;
+    # builds fine on aarch64-darwin
+    broken = stdenv.isDarwin && !stdenv.isAarch64;
   };
 }
diff --git a/pkgs/development/python-modules/wavinsentio/default.nix b/pkgs/development/python-modules/wavinsentio/default.nix
new file mode 100644
index 0000000000000..21dbe7b8ae829
--- /dev/null
+++ b/pkgs/development/python-modules/wavinsentio/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "wavinsentio";
+  version = "0.3.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-3mzK+YBRhLDqcEJDyMK43Le6eCH3B89unXpuu8nIe1g=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "wavinsentio"
+  ];
+
+  meta = with lib; {
+    description = "Python module to interact with the Wavin Sentio underfloor heating system";
+    homepage = "https://github.com/djerik/wavinsentio";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/webargs/default.nix b/pkgs/development/python-modules/webargs/default.nix
index 63ad60c9f0841..e92b47d209339 100644
--- a/pkgs/development/python-modules/webargs/default.nix
+++ b/pkgs/development/python-modules/webargs/default.nix
@@ -16,8 +16,8 @@ buildPythonPackage rec {
     "webargs"
   ];
 
-
   propagatedBuildInputs = [ marshmallow ];
+
   checkInputs = [
     pytestCheckHook
     pytest-aiohttp
diff --git a/pkgs/development/python-modules/websockets/default.nix b/pkgs/development/python-modules/websockets/default.nix
index 611c84ea814c3..2e13d95c3825c 100644
--- a/pkgs/development/python-modules/websockets/default.nix
+++ b/pkgs/development/python-modules/websockets/default.nix
@@ -1,21 +1,23 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , python
 , pythonOlder
-, stdenv
 }:
 
 buildPythonPackage rec {
   pname = "websockets";
-  version = "10.0";
+  version = "10.1";
+  format = "setuptools";
+
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "aaugustin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-F10C8ukjYfbn2X2PMzrdSDqvs51/A9lx8Y3kv8YJ8Cw=";
+    sha256 = "sha256-FFaoqxa+TmKJ+P6T7HrwodjbVCir+2qJSfZsoj6deJU=";
   };
 
   # Tests fail on Darwin with `OSError: AF_UNIX path too long`
@@ -34,7 +36,9 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [ "websockets" ];
+  pythonImportsCheck = [
+    "websockets"
+  ];
 
   meta = with lib; {
     description = "WebSocket implementation in Python";
diff --git a/pkgs/development/python-modules/webssh/default.nix b/pkgs/development/python-modules/webssh/default.nix
index 00aff794372d5..49b7097549d6a 100644
--- a/pkgs/development/python-modules/webssh/default.nix
+++ b/pkgs/development/python-modules/webssh/default.nix
@@ -1,21 +1,37 @@
-{ lib, buildPythonPackage, fetchPypi, tornado, paramiko }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, paramiko
+, pytestCheckHook
+, tornado
+}:
 
 buildPythonPackage rec {
   pname = "webssh";
   version = "1.5.3";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-Au6PE8jYm8LkEp0B1ymW//ZkrkcV0BauwufQmrHLEU4=";
   };
 
-  propagatedBuildInputs = [ tornado paramiko ];
+  propagatedBuildInputs = [
+    paramiko
+    tornado
+  ];
 
-  pythonImportsCheck = [ "webssh" ];
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "webssh"
+  ];
 
   meta = with lib; {
+    description = "Web based SSH client";
     homepage = "https://github.com/huashengdun/webssh/";
-    description = "Web based ssh client";
     license = licenses.mit;
     maintainers = with maintainers; [ davidtwco ];
   };
diff --git a/pkgs/development/python-modules/weconnect-mqtt/default.nix b/pkgs/development/python-modules/weconnect-mqtt/default.nix
new file mode 100644
index 0000000000000..0e00a08145e66
--- /dev/null
+++ b/pkgs/development/python-modules/weconnect-mqtt/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
+, paho-mqtt
+, weconnect
+}:
+
+buildPythonPackage rec {
+  pname = "weconnect-mqtt";
+  version = "0.21.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "tillsteinbach";
+    repo = "WeConnect-mqtt";
+    rev = "v${version}";
+    sha256 = "sha256-wagFjVXTjYFryaUiVeqU+T9ya+NzUFMX3uPlRZGe1v0=";
+  };
+
+  propagatedBuildInputs = [
+    paho-mqtt
+    weconnect
+  ];
+
+  postPatch = ''
+    substituteInPlace weconnect_mqtt/__version.py \
+      --replace "develop" "${version}"
+    substituteInPlace pytest.ini \
+      --replace "--cov=weconnect_mqtt --cov-config=.coveragerc --cov-report html" "" \
+      --replace "pytest-cov" ""
+  '';
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "weconnect_mqtt"
+  ];
+
+  meta = with lib; {
+    description = "Python client that publishes data from Volkswagen WeConnect";
+    homepage = "https://github.com/tillsteinbach/WeConnect-mqtt";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/weconnect/default.nix b/pkgs/development/python-modules/weconnect/default.nix
new file mode 100644
index 0000000000000..70da78edb603e
--- /dev/null
+++ b/pkgs/development/python-modules/weconnect/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, ascii-magic
+, buildPythonPackage
+, fetchFromGitHub
+, pillow
+, pytest-httpserver
+, pytestCheckHook
+, pythonOlder
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "weconnect";
+  version = "0.28.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "tillsteinbach";
+    repo = "WeConnect-python";
+    rev = "v${version}";
+    sha256 = "sha256-J7T62L6wT9rkl/Ukf2y5kBbJEdzh2XnGgCgedkxVEmA=";
+  };
+
+  propagatedBuildInputs = [
+    ascii-magic
+    pillow
+    requests
+  ];
+
+  checkInputs = [
+    pytest-httpserver
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace weconnect/__version.py \
+      --replace "develop" "${version}"
+    substituteInPlace setup.py \
+      --replace "setup_requires=SETUP_REQUIRED," "setup_requires=[]," \
+      --replace "tests_require=TEST_REQUIRED," "tests_require=[],"
+    substituteInPlace pytest.ini \
+      --replace "--cov=weconnect --cov-config=.coveragerc --cov-report html" "" \
+      --replace "pytest-cov" ""
+  '';
+
+  pythonImportsCheck = [
+    "weconnect"
+  ];
+
+  meta = with lib; {
+    description = "Python client for the Volkswagen WeConnect Services";
+    homepage = "https://github.com/tillsteinbach/WeConnect-python";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/werkzeug/default.nix b/pkgs/development/python-modules/werkzeug/default.nix
index 898fa4556ec3e..c75c59ac1c9c5 100644
--- a/pkgs/development/python-modules/werkzeug/default.nix
+++ b/pkgs/development/python-modules/werkzeug/default.nix
@@ -12,13 +12,15 @@
 
 buildPythonPackage rec {
   pname = "werkzeug";
-  version = "2.0.1";
+  version = "2.0.2";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     pname = "Werkzeug";
     inherit version;
-    sha256 = "0hlwawnn8c41f254qify5jnjj8xb97n294h09bqimzqhs0qdpq8x";
+    sha256 = "sha256-qiu2/I3ujWxQTArB5/X33FgQqZA+eTtvcVqfAVva25o=";
   };
 
   propagatedBuildInputs = lib.optionals (!stdenv.isDarwin) [
@@ -54,5 +56,6 @@ buildPythonPackage rec {
       utility libraries.
     '';
     license = licenses.bsd3;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/wheel/0001-tests-Rename-a-a-o-_-.py-_-.py.patch b/pkgs/development/python-modules/wheel/0001-tests-Rename-a-a-o-_-.py-_-.py.patch
new file mode 100644
index 0000000000000..93db54b0c6e6c
--- /dev/null
+++ b/pkgs/development/python-modules/wheel/0001-tests-Rename-a-a-o-_-.py-_-.py.patch
@@ -0,0 +1,37 @@
+From 5879a4bbc34d1eb25e160b15b2f5a4f10eac6bd2 Mon Sep 17 00:00:00 2001
+From: toonn <toonn@toonn.io>
+Date: Mon, 13 Sep 2021 18:07:26 +0200
+Subject: [PATCH] =?UTF-8?q?tests:=20Rename=20a=CC=8Aa=CC=88o=CC=88=5F?=
+ =?UTF-8?q?=E6=97=A5=E6=9C=AC=E8=AA=9E.py=20=3D>=20=C3=A6=C9=90=C3=B8=5F?=
+ =?UTF-8?q?=E6=97=A5=E6=9C=AC=E5=83=B9.py?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+`åäö_日本語.py` normalizes differently in NFC and NFD normal forms. This
+means a hash generated for the source directory can differ depending on
+whether or not the filesystem is normalizing and which normal form it
+uses.
+
+By renaming the file to `æɐø_日本價.py` we avoid this issue by using a
+name that has the same encoding in each normal form.
+---
+ tests/test_bdist_wheel.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/test_bdist_wheel.py b/tests/test_bdist_wheel.py
+index 651c034..9b94ac8 100644
+--- a/tests/test_bdist_wheel.py
++++ b/tests/test_bdist_wheel.py
+@@ -58,7 +58,7 @@ def test_unicode_record(wheel_paths):
+     with ZipFile(path) as zf:
+         record = zf.read('unicode.dist-0.1.dist-info/RECORD')
+ 
+-    assert u'åäö_日本語.py'.encode('utf-8') in record
++    assert u'æɐø_日本價.py'.encode('utf-8') in record
+ 
+ 
+ def test_licenses_default(dummy_dist, monkeypatch, tmpdir):
+-- 
+2.17.2 (Apple Git-113)
+
diff --git a/pkgs/development/python-modules/wheel/default.nix b/pkgs/development/python-modules/wheel/default.nix
index 60398998380a9..1b899b59897ff 100644
--- a/pkgs/development/python-modules/wheel/default.nix
+++ b/pkgs/development/python-modules/wheel/default.nix
@@ -14,8 +14,14 @@ buildPythonPackage rec {
     owner = "pypa";
     repo = pname;
     rev = version;
-    sha256 = "sha256-8lK2UvqBIxUYm6IOuT+Jk71wYbEEjvI7typS3749N9g=";
+    sha256 = "13bj49psan1s1fxfrq613dm2l7jvrg2dpgb36lz81z3b1h7zig6j";
     name = "${pname}-${version}-source";
+    extraPostFetch = ''
+      cd $out
+      mv tests/testdata/unicode.dist/unicodedist/åäö_日本語.py \
+        tests/testdata/unicode.dist/unicodedist/æɐø_日本價.py
+      patch -p1 < ${./0001-tests-Rename-a-a-o-_-.py-_-.py.patch}
+    '';
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/widgetsnbextension/default.nix b/pkgs/development/python-modules/widgetsnbextension/default.nix
index bb8f1ab3b4d5c..8f6cb6ad1867c 100644
--- a/pkgs/development/python-modules/widgetsnbextension/default.nix
+++ b/pkgs/development/python-modules/widgetsnbextension/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "widgetsnbextension";
-  version = "3.5.1";
+  version = "3.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "079f87d87270bce047512400efd70238820751a11d2d8cb137a5a5bdbaf255c7";
+    sha256 = "e0731a60ba540cd19bbbefe771a9076dcd2dde90713a8f87f27f53f2d1db7727";
   };
 
   propagatedBuildInputs = [ notebook ];
diff --git a/pkgs/development/python-modules/wiffi/default.nix b/pkgs/development/python-modules/wiffi/default.nix
index a3da3f2f027ee..80738318433de 100644
--- a/pkgs/development/python-modules/wiffi/default.nix
+++ b/pkgs/development/python-modules/wiffi/default.nix
@@ -7,21 +7,28 @@
 
 buildPythonPackage rec {
   pname = "wiffi";
-  version = "1.0.1";
+  version = "1.1.0";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "mampfes";
     repo = "python-wiffi";
     rev = version;
-    sha256 = "1bsx8dcmbkajh7hdgxg6wdnyxz4bfnd45piiy3yzyvszfdyvxw0f";
+    sha256 = "sha256-uB4M3etW1DCE//V2pcmsLZbORmrL00pbPADMQD5y3CY=";
   };
 
-  propagatedBuildInputs = [ aiohttp ];
+  propagatedBuildInputs = [
+    aiohttp
+  ];
 
   # Project has no tests
   doCheck = false;
-  pythonImportsCheck = [ "wiffi" ];
+
+  pythonImportsCheck = [
+    "wiffi"
+  ];
 
   meta = with lib; {
     description = "Python module to interface with STALL WIFFI devices";
diff --git a/pkgs/development/python-modules/winacl/default.nix b/pkgs/development/python-modules/winacl/default.nix
index 9aca67e2ed8d3..76d6d71c0b63c 100644
--- a/pkgs/development/python-modules/winacl/default.nix
+++ b/pkgs/development/python-modules/winacl/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "winacl";
-  version = "0.1.1";
+  version = "0.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-V+W0WRtL4rJD1LeYgr0PtiKdWTDQYv2ulB1divaqKe4=";
+    sha256 = "187b4394ef247806f50e1d8320bdb9e33ad1f759d9e61e2e391b97b9adf5f58a";
   };
 
   # Project doesn't have tests
diff --git a/pkgs/development/python-modules/wled/default.nix b/pkgs/development/python-modules/wled/default.nix
index cb6ec2b606d5c..886ffea60b79a 100644
--- a/pkgs/development/python-modules/wled/default.nix
+++ b/pkgs/development/python-modules/wled/default.nix
@@ -1,28 +1,30 @@
 { lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
 , aiohttp
+, awesomeversion
 , backoff
+, buildPythonPackage
+, cachetools
+, fetchFromGitHub
 , poetry-core
-, packaging
 , yarl
 , aresponses
 , pytest-asyncio
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "wled";
-  version = "0.8.0";
-  disabled = pythonOlder "3.8";
+  version = "0.10.2";
   format = "pyproject";
 
+  disabled = pythonOlder "3.8";
+
   src = fetchFromGitHub {
     owner = "frenck";
     repo = "python-wled";
     rev = "v${version}";
-    sha256 = "1jhykilb81sp1srxk91222qglwdlr993ssvgfnl837nbcx6ws1hw";
+    sha256 = "sha256-tqR/edkBFseldSXGoekfRmw//h6Z/Xcg1W0HXJvLhtk=";
   };
 
   nativeBuildInputs = [
@@ -31,8 +33,9 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     aiohttp
+    awesomeversion
     backoff
-    packaging
+    cachetools
     yarl
   ];
 
@@ -49,7 +52,9 @@ buildPythonPackage rec {
       --replace "--cov" ""
   '';
 
-  pythonImportsCheck = [ "wled" ];
+  pythonImportsCheck = [
+    "wled"
+  ];
 
   meta = with lib; {
     description = "Asynchronous Python client for WLED";
diff --git a/pkgs/development/python-modules/wrapt/default.nix b/pkgs/development/python-modules/wrapt/default.nix
index d4bdac9e6f5de..e567a8a672ef8 100644
--- a/pkgs/development/python-modules/wrapt/default.nix
+++ b/pkgs/development/python-modules/wrapt/default.nix
@@ -5,14 +5,14 @@
 
 buildPythonPackage rec {
   pname = "wrapt";
-  version = "1.13.1";
+  version = "1.13.3";
 
   # No tests in archive
   doCheck = false;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "909a80ce028821c7ad01bdcaa588126825931d177cdccd00b3545818d4a195ce";
+    sha256 = "1fea9cd438686e6682271d36f3481a9f3636195578bab9ca3382e2f5f01fc185";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/wtf-peewee/default.nix b/pkgs/development/python-modules/wtf-peewee/default.nix
index 69db4e50f6758..6fd356e69ed60 100644
--- a/pkgs/development/python-modules/wtf-peewee/default.nix
+++ b/pkgs/development/python-modules/wtf-peewee/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "wtf-peewee";
-  version = "3.0.2";
+  version = "3.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03qs6np5s9r0nmsryfzll29ajcqk27b18kcbgd9plf80ys3nb6kd";
+    sha256 = "faa953fe3f705d4f2b48f3c1a81c5c5a6a38f9ed1378c9a830e6efc1b0fccb15";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/xapp/default.nix b/pkgs/development/python-modules/xapp/default.nix
index 72f386b362722..7cb664d77fcda 100644
--- a/pkgs/development/python-modules/xapp/default.nix
+++ b/pkgs/development/python-modules/xapp/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "xapp";
-  version = "2.0.2";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "python-xapp";
     rev = version;
-    sha256 = "1zgh4k96i939w4scikajmlriayk1zg3md16f8fckjvqbphpxrysl";
+    hash = "sha256-UC+0nbf+SRQsF5R0LcrPpmNbaoRM14DC82JccSpsKsY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/xattr/default.nix b/pkgs/development/python-modules/xattr/default.nix
index a39c3532f4b8e..28b9f809dd002 100644
--- a/pkgs/development/python-modules/xattr/default.nix
+++ b/pkgs/development/python-modules/xattr/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "xattr";
-  version = "0.9.7";
+  version = "0.9.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b0bbca828e04ef2d484a6522ae7b3a7ccad5e43fa1c6f54d78e24bb870f49d44";
+    sha256 = "09cb7e1efb3aa1b4991d6be4eb25b73dc518b4fe894f0915f5b0dcede972f346";
   };
 
   propagatedBuildInputs = [ cffi ];
diff --git a/pkgs/development/python-modules/xdot/default.nix b/pkgs/development/python-modules/xdot/default.nix
index e28deaf07d64f..fa24256b6a007 100644
--- a/pkgs/development/python-modules/xdot/default.nix
+++ b/pkgs/development/python-modules/xdot/default.nix
@@ -15,6 +15,10 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ gobject-introspection pygobject3 graphviz gtk3 numpy ];
   checkInputs = [ xvfb-run ];
 
+  postInstall = ''
+    wrapProgram "$out/bin/xdot" --prefix PATH : "${lib.makeBinPath [ graphviz ]}"
+  '';
+
   checkPhase = ''
     xvfb-run -s '-screen 0 800x600x24' ${python3.interpreter} nix_run_setup test
   '';
diff --git a/pkgs/development/python-modules/xknx/default.nix b/pkgs/development/python-modules/xknx/default.nix
index d7cf63f003d06..781f59fa3cf74 100644
--- a/pkgs/development/python-modules/xknx/default.nix
+++ b/pkgs/development/python-modules/xknx/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "xknx";
-  version = "0.18.13";
+  version = "0.18.15";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "XKNX";
     repo = pname;
     rev = version;
-    sha256 = "sha256-GZ5FRPQn69+/Fnx10VKWSIAaVXCcVyfvQVH1JaMGRC0=";
+    sha256 = "sha256-k/fLUuBjXScTvlvoBLZIVPEqNGIPI04FBeTBadp5uiY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/xmind/default.nix b/pkgs/development/python-modules/xmind/default.nix
new file mode 100644
index 0000000000000..ab12f26a72df4
--- /dev/null
+++ b/pkgs/development/python-modules/xmind/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "xmind";
+  version = "1.2.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "zhuifengshen";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "xC1WpHz2eHb5+xShM/QUQAIYnJNyK1EKWbTXJKhDwbQ=";
+  };
+
+  # Projec thas no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "xmind"
+  ];
+
+  meta = with lib; {
+    description = "Python module to create mindmaps";
+    homepage = "https://github.com/zhuifengshen/xmind";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/xml2rfc/default.nix b/pkgs/development/python-modules/xml2rfc/default.nix
index a46c0b1b4ef50..26b51d1a4ac31 100644
--- a/pkgs/development/python-modules/xml2rfc/default.nix
+++ b/pkgs/development/python-modules/xml2rfc/default.nix
@@ -22,13 +22,13 @@
 
 buildPythonPackage rec {
   pname = "xml2rfc";
-  version = "3.11.1";
+  version = "3.12.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-V1Epv5TJ4+Gnh096jeQIN0HOCj+GoCdQW/Pol5iBrFw=";
+    sha256 = "25deadb9ee95f0dc71376a60e9c1e34636b5016c1952ad5597a6246495e34464";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/xmlschema/default.nix b/pkgs/development/python-modules/xmlschema/default.nix
index 3ddcfee9dfb51..1687b113b42f8 100644
--- a/pkgs/development/python-modules/xmlschema/default.nix
+++ b/pkgs/development/python-modules/xmlschema/default.nix
@@ -8,7 +8,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.8.2";
+  version = "1.9.2";
   pname = "xmlschema";
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "sissaschool";
     repo = "xmlschema";
     rev = "v${version}";
-    sha256 = "sha256-d7f19T17aAwdtNDjCrsXXY39u0aRgQo4vFPnxFNs2PQ=";
+    sha256 = "1d18x150g0jz3nw5al5dygizwkjgzdnmd5kf46v8ribfz48iirr6";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/xpybutil/default.nix b/pkgs/development/python-modules/xpybutil/default.nix
index af8fda8a7d2c0..cc574c5824189 100644
--- a/pkgs/development/python-modules/xpybutil/default.nix
+++ b/pkgs/development/python-modules/xpybutil/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchFromGitHub, xcffib, pillow, nose }:
+{ lib, buildPythonPackage, fetchFromGitHub, xcffib, pillow }:
 
 buildPythonPackage rec {
   pname = "xpybutil";
@@ -17,7 +17,12 @@ buildPythonPackage rec {
 
   propagatedNativeBuildInputs = [ xcffib ];
 
-  checkInputs = [ nose ];
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "xpybutil"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/BurntSushi/xpybutil";
diff --git a/pkgs/development/python-modules/xstatic-jquery-ui/default.nix b/pkgs/development/python-modules/xstatic-jquery-ui/default.nix
index 8c872d0bbd19c..f5509676d1144 100644
--- a/pkgs/development/python-modules/xstatic-jquery-ui/default.nix
+++ b/pkgs/development/python-modules/xstatic-jquery-ui/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "XStatic-jquery-ui";
-  version = "1.12.1.1";
+  version = "1.13.0.1";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "d6ba48bb474420a8bcb2be02eef6ae96281ec24eff6befa54f04ebc9e4cc8910";
+    sha256 = "3697e5f0ef355b8f4a1c724221592683c2db031935cbb57b46224eef474bd294";
   };
 
   # no tests implemented
diff --git a/pkgs/development/python-modules/yalexs/default.nix b/pkgs/development/python-modules/yalexs/default.nix
index a97ebe947af9f..9b9ef513f70d6 100644
--- a/pkgs/development/python-modules/yalexs/default.nix
+++ b/pkgs/development/python-modules/yalexs/default.nix
@@ -16,14 +16,16 @@
 
 buildPythonPackage rec {
   pname = "yalexs";
-  version = "1.1.13";
+  version = "1.1.15";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "bdraco";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0938540n60xv7kxam3azszn3nj0mnhhgh5p4hgbfxj43bkwpqz4n";
+    sha256 = "sha256-EK9jmbU3A2rNx/H8WOsZiGA7tqzg/XJkW/DV5s+2Y3U=";
   };
 
   propagatedBuildInputs = [
@@ -44,10 +46,13 @@ buildPythonPackage rec {
 
   postPatch = ''
     # Not used requirement
-    substituteInPlace setup.py --replace '"vol",' ""
+    substituteInPlace setup.py \
+      --replace '"vol",' ""
   '';
 
-  pythonImportsCheck = [ "yalexs" ];
+  pythonImportsCheck = [
+    "yalexs"
+  ];
 
   meta = with lib; {
     description = "Python API for Yale Access (formerly August) Smart Lock and Doorbell";
diff --git a/pkgs/development/python-modules/yamlfix/default.nix b/pkgs/development/python-modules/yamlfix/default.nix
new file mode 100644
index 0000000000000..f0203d58dffb3
--- /dev/null
+++ b/pkgs/development/python-modules/yamlfix/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildPythonPackage
+, click
+, fetchFromGitHub
+, pytest-xdist
+, pytestCheckHook
+, pythonOlder
+, ruyaml
+}:
+
+buildPythonPackage rec {
+  pname = "yamlfix";
+  version = "0.8.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "lyz-code";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-Gkq80YMeiPy7xxLauA/nloW4znMV2tfE+e24HyZgUaQ=";
+  };
+
+  propagatedBuildInputs = [
+    click
+    ruyaml
+  ];
+
+  checkInputs = [
+    pytest-xdist
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'python_paths = "."' ""
+  '';
+
+  pytestFlagsArray = [
+    "-n"
+    "$NIX_BUILD_CORES"
+  ];
+
+  pythonImportsCheck = [
+    "yamlfix"
+  ];
+
+  meta = with lib; {
+    description = "Python YAML formatter that keeps your comments";
+    homepage = "https://github.com/lyz-code/yamlfix";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ koozz ];
+  };
+}
diff --git a/pkgs/development/python-modules/yarl/default.nix b/pkgs/development/python-modules/yarl/default.nix
index 0e15f138daaf7..08866ac39074f 100644
--- a/pkgs/development/python-modules/yarl/default.nix
+++ b/pkgs/development/python-modules/yarl/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "yarl";
-  version = "1.7.0";
+  version = "1.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8e7ebaf62e19c2feb097ffb7c94deb0f0c9fab52590784c8cd679d30ab009162";
+    sha256 = "sha256-RTmbRtYMJTMnpGDpmFZ1IAn87l9dPICy98DK4cONVt0=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/yfinance/default.nix b/pkgs/development/python-modules/yfinance/default.nix
index 30b17f6897a93..059316f7a99ce 100644
--- a/pkgs/development/python-modules/yfinance/default.nix
+++ b/pkgs/development/python-modules/yfinance/default.nix
@@ -1,20 +1,22 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , multitasking
 , numpy
 , pandas
 , requests
+, lxml
 }:
 
 buildPythonPackage rec {
   pname = "yfinance";
-  version = "0.1.66";
+  version = "0.1.67";
 
-  # GitHub source releases aren't tagged
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "9ea6fd18319fd898a8428a4a3d67171812b54779e330ead4d4ed0c59eb311be5";
+  src = fetchFromGitHub {
+    owner = "ranaroussi";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-QwWShXelEBgLUvCwPqB7z5DjS1JsW/krPrsS3VkyaJg=";
   };
 
   propagatedBuildInputs = [
@@ -22,6 +24,7 @@ buildPythonPackage rec {
     numpy
     pandas
     requests
+    lxml
   ];
 
   doCheck = false;  # Tests require internet access
diff --git a/pkgs/development/python-modules/youless-api/default.nix b/pkgs/development/python-modules/youless-api/default.nix
index 07b0334338640..94580fbebbfd0 100644
--- a/pkgs/development/python-modules/youless-api/default.nix
+++ b/pkgs/development/python-modules/youless-api/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "youless-api";
-  version = "0.15";
+  version = "0.16";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "jongsoftdev";
     repo = "youless-python-bridge";
     rev = version;
-    sha256 = "sha256-77uQUAPDCFQiCpNAI0feOtHq82sE0n70IV1Njn/W29M=";
+    sha256 = "sha256-8pJeb3eWchMRrk8KLSI/EbHs1wQDqBoqlAQXm9ulyqs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/youtube-search-python/default.nix b/pkgs/development/python-modules/youtube-search-python/default.nix
index 634ff5ec54e18..ad23a6cc169d2 100644
--- a/pkgs/development/python-modules/youtube-search-python/default.nix
+++ b/pkgs/development/python-modules/youtube-search-python/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "youtube-search-python";
-  version = "1.5.1";
+  version = "1.5.2";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "68c70e1b6a2ce5c2c0ee64ba9c63efc9ab6e6f8acb2f51e19d570b0287e61cc9";
+    sha256 = "33f0d58f4803b0b2badf860cd31fb83d3f7edecdd2c01dd09cd6511abbf0e6b9";
   };
 
   propagatedBuildInputs = [ httpx ];
diff --git a/pkgs/development/python-modules/youtube-transcript-api/default.nix b/pkgs/development/python-modules/youtube-transcript-api/default.nix
index cd40f800c1b49..088ee476e3f0e 100644
--- a/pkgs/development/python-modules/youtube-transcript-api/default.nix
+++ b/pkgs/development/python-modules/youtube-transcript-api/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "youtube-transcript-api";
-  version = "0.4.2";
+  version = "0.4.3";
 
   # PyPI tarball is missing some test files
   src = fetchFromGitHub {
     owner = "jdepoix";
     repo = "youtube-transcript-api";
     rev = "v${version}";
-    sha256 = "04x7mfp4q17w3n8dnklbxblz22496g7g4879nz0wzgijg3m6cwlp";
+    sha256 = "1krak5j2faj6951cl13h7hg9i3kyp6nslcbi608k8hxlbd80hc5h";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/development/python-modules/yq/default.nix b/pkgs/development/python-modules/yq/default.nix
index 78177488081e1..b87982b20b65c 100644
--- a/pkgs/development/python-modules/yq/default.nix
+++ b/pkgs/development/python-modules/yq/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "yq";
-  version = "2.12.2";
+  version = "2.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2f156d0724b61487ac8752ed4eaa702a5737b804d5afa46fa55866951cd106d2";
+    sha256 = "sha256-/RMf2x9WcWrY1EzZ6q99OyLTm6iGHqZKQJzD9K4mPbg=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/ytmusicapi/default.nix b/pkgs/development/python-modules/ytmusicapi/default.nix
index 9a86075c790ec..b19aed0c6fdcf 100644
--- a/pkgs/development/python-modules/ytmusicapi/default.nix
+++ b/pkgs/development/python-modules/ytmusicapi/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "ytmusicapi";
-  version = "0.19.4";
+  version = "0.19.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-AAGUfa91f9aquPLQZs9kQDbZXrBrxjSBFdWIrxB5D/I=";
+    sha256 = "sha256-haZe5afwkU8wD8s2lrmHJuVo6TO3CcQ/0TuJbHPmqvU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/z3c-checkversions/default.nix b/pkgs/development/python-modules/z3c-checkversions/default.nix
index b8c684295a6f8..26898ff2cd2ca 100644
--- a/pkgs/development/python-modules/z3c-checkversions/default.nix
+++ b/pkgs/development/python-modules/z3c-checkversions/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "z3c-checkversions";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchPypi {
     inherit version;
     pname = "z3c.checkversions";
-    sha256 = "b45bd22ae01ed60933694fb5abede1ff71fe8ffa79b37082b2fcf38a2f0dec9d";
+    sha256 = "94c7ab0810ee6fdb66a4689b48e537b57e2dbee277cb1de2ece7a7f4d8c83001";
   };
 
   propagatedBuildInputs = [ zc-buildout ];
diff --git a/pkgs/development/python-modules/zarr/default.nix b/pkgs/development/python-modules/zarr/default.nix
index 9e5b058212957..11c6f84850bd5 100644
--- a/pkgs/development/python-modules/zarr/default.nix
+++ b/pkgs/development/python-modules/zarr/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "zarr";
-  version = "2.10.2";
+  version = "2.10.3";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5c6ae914ab9215631bb95c09e76b9b9b4fffa70fec0c7bca26b68387d858ebe2";
+    sha256 = "76932665c2146ebdf15f6dba254f9e0030552fbfcf9322dea822bff96fbce693";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/zeroconf/default.nix b/pkgs/development/python-modules/zeroconf/default.nix
index a6adbe7e597d3..12e0279eb3de6 100644
--- a/pkgs/development/python-modules/zeroconf/default.nix
+++ b/pkgs/development/python-modules/zeroconf/default.nix
@@ -10,16 +10,16 @@
 
 buildPythonPackage rec {
   pname = "zeroconf";
-  version = "0.36.13";
+  version = "0.38.1";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "jstasiak";
     repo = "python-zeroconf";
     rev = version;
-    sha256 = "sha256-aYNb67ESyz2Q2CKLhG+/Z8Xtt0Js8uf+xrVSEpY0X8c=";
+    sha256 = "sha256-8bJEH+m+83rkKdN5GjD4THs1CUy/wstoBFiXR7kHKtw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/zeversolarlocal/default.nix b/pkgs/development/python-modules/zeversolarlocal/default.nix
new file mode 100644
index 0000000000000..feb56c384dc13
--- /dev/null
+++ b/pkgs/development/python-modules/zeversolarlocal/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, flit-core
+, httpx
+, pytest-asyncio
+, pytest-mock
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "zeversolarlocal";
+  version = "1.1.0";
+  format = "flit";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ExZy5k5RE7k+D0lGmuIkGWrWQ+m24K2oqbUEg4BAVuY=";
+  };
+
+  nativeBuildInputs = [
+    flit-core
+  ];
+
+  propagatedBuildInputs = [
+    httpx
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace "--cov zeversolarlocal --cov-report xml:cov.xml --cov-report term-missing -vv" ""
+  '';
+
+  disabledTests = [
+    # Test requires network access
+    "test_httpx_timeout"
+  ];
+
+  pythonImportsCheck = [
+    "zeversolarlocal"
+  ];
+
+  meta = with lib; {
+    description = "Python module to interact with Zeversolar inverters";
+    homepage = "https://github.com/sander76/zeversolarlocal";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/zha-quirks/default.nix b/pkgs/development/python-modules/zha-quirks/default.nix
index b7b07d23a5c57..c1d4328106aef 100644
--- a/pkgs/development/python-modules/zha-quirks/default.nix
+++ b/pkgs/development/python-modules/zha-quirks/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "zha-quirks";
-  version = "0.0.63";
+  version = "0.0.65";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = "zha-device-handlers";
     rev = version;
-    sha256 = "sha256-jAd/qT+uwylE/AOHFnkKWECHnxFFqgCtCp36mrqFZIE=";
+    sha256 = "sha256-3Lcmc95KotFMlL44zDugIQkHtplMMlyWjSb+SLehaqs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/zigpy-deconz/default.nix b/pkgs/development/python-modules/zigpy-deconz/default.nix
index 466026556e0a1..e1c08f069e8cd 100644
--- a/pkgs/development/python-modules/zigpy-deconz/default.nix
+++ b/pkgs/development/python-modules/zigpy-deconz/default.nix
@@ -1,27 +1,41 @@
 { lib
+, asynctest
 , buildPythonPackage
 , fetchFromGitHub
 , pyserial
 , pyserial-asyncio
-, zigpy
-, pytestCheckHook
 , pytest-asyncio
-, asynctest
+, pytestCheckHook
+, zigpy
 }:
 
 buildPythonPackage rec {
   pname = "zigpy-deconz";
-  version = "0.13.0";
+  version = "0.14.0";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = pname;
     rev = version;
-    sha256 = "sha256-9rxdnY5tMtPJLE/lRaphNR1L1vdhAxnIDoh8xCHmzjc=";
+    sha256 = "sha256-PctS09twk8SRK3pTJvQU8drsqhmrPnMge2WO+VY84U8=";
   };
 
-  propagatedBuildInputs = [ pyserial pyserial-asyncio zigpy ];
-  checkInputs = [ pytestCheckHook pytest-asyncio asynctest ];
+  propagatedBuildInputs = [
+    pyserial
+    pyserial-asyncio
+    zigpy
+  ];
+
+  checkInputs = [
+    asynctest
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "zigpy_deconz"
+  ];
 
   meta = with lib; {
     description = "Library which communicates with Deconz radios for zigpy";
diff --git a/pkgs/development/python-modules/zigpy-znp/default.nix b/pkgs/development/python-modules/zigpy-znp/default.nix
index f8413d9aa17f4..8a3bd0e41fd2f 100644
--- a/pkgs/development/python-modules/zigpy-znp/default.nix
+++ b/pkgs/development/python-modules/zigpy-znp/default.nix
@@ -18,13 +18,16 @@
 
 buildPythonPackage rec {
   pname = "zigpy-znp";
-  version = "0.5.4";
+  version = "0.6.4";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0jki9qmjazh0by02c0w17dyaz0nl3gzjiy064mj6pi502d175831";
+    sha256 = "0hz483wqzpdaap96gbjasisxd4wy8f4lslnspcvzqcf4dy1mxln6";
   };
 
   propagatedBuildInputs = [
@@ -46,7 +49,9 @@ buildPythonPackage rec {
     asynctest
   ];
 
-  pythonImportsCheck = [ "zigpy_znp" ];
+  pythonImportsCheck = [
+    "zigpy_znp"
+  ];
 
   meta = with lib; {
     description = "Python library for zigpy which communicates with TI ZNP radios";
diff --git a/pkgs/development/python-modules/zigpy/default.nix b/pkgs/development/python-modules/zigpy/default.nix
index 70763446293e6..01751219d4009 100644
--- a/pkgs/development/python-modules/zigpy/default.nix
+++ b/pkgs/development/python-modules/zigpy/default.nix
@@ -15,13 +15,16 @@
 
 buildPythonPackage rec {
   pname = "zigpy";
-  version = "0.39.0";
+  version = "0.42.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "zigpy";
     repo = "zigpy";
     rev = version;
-    sha256 = "sha256-cR63xzx62ZKCXJENoksJTwEU8vGL8HtdIN3+5OqIL1Y=";
+    sha256 = "sha256-kSUFcN3QOZWFBgDrOopkYuUyBE9asO6MXf0H9CMjFlc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/zope_proxy/default.nix b/pkgs/development/python-modules/zope_proxy/default.nix
index 2d1a5880d0dee..70e329cce9e96 100644
--- a/pkgs/development/python-modules/zope_proxy/default.nix
+++ b/pkgs/development/python-modules/zope_proxy/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "zope.proxy";
-  version = "4.4.0";
+  version = "4.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b244904c5148067c3f1899d29a2c1a28faca747b143192c0f825e6bf3170a347";
+    sha256 = "1329846261cf6c552b05579f3cfad199b2d178510d0b4703eb5f7cdd6ebad01a";
   };
 
   propagatedBuildInputs = [ zope_interface ];
diff --git a/pkgs/development/python-modules/zope_schema/default.nix b/pkgs/development/python-modules/zope_schema/default.nix
index 00defd1615090..9472000f15d1b 100644
--- a/pkgs/development/python-modules/zope_schema/default.nix
+++ b/pkgs/development/python-modules/zope_schema/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "zope.schema";
-  version = "6.1.0";
+  version = "6.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9fa04d95e8e7e9056091eed9819da6e65dde68de39c2b93617d361d1eb8a7c0c";
+    sha256 = "2201aef8ad75ee5a881284d7a6acd384661d6dca7bde5e80a22839a77124595b";
   };
 
   propagatedBuildInputs = [ zope_location zope_event zope_interface zope_testing ];
diff --git a/pkgs/development/python-modules/zope_testrunner/default.nix b/pkgs/development/python-modules/zope_testrunner/default.nix
index c3bc0d0bff4d7..2638d43147841 100644
--- a/pkgs/development/python-modules/zope_testrunner/default.nix
+++ b/pkgs/development/python-modules/zope_testrunner/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "zope.testrunner";
-  version = "5.3.0";
+  version = "5.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "39a5ba631830703ea011383447135063db6d182794487dda9b8c1f515bb70b0f";
+    sha256 = "4869229fc909e4aa8e76665a718f90dc88f73858b32ca5fa3dea6840e9210fb4";
   };
 
   propagatedBuildInputs = [ zope_interface zope_exceptions zope_testing six ];
diff --git a/pkgs/development/python-modules/zwave-js-server-python/default.nix b/pkgs/development/python-modules/zwave-js-server-python/default.nix
index feed2f73ca177..5b18c09f15a86 100644
--- a/pkgs/development/python-modules/zwave-js-server-python/default.nix
+++ b/pkgs/development/python-modules/zwave-js-server-python/default.nix
@@ -9,15 +9,16 @@
 
 buildPythonPackage rec {
   pname = "zwave-js-server-python";
-  version = "0.31.3";
-  disabled = pythonOlder "3.8";
+  version = "0.33.0";
+  format = "setuptools";
 
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "home-assistant-libs";
     repo = pname;
     rev = version;
-    sha256 = "sha256-mOcaxt8pc+d7qBoDtwCsDWoVs3Hw17v5WDKgzIW1WzY=";
+    sha256 = "sha256-0hAksizQSIOg+hbSq/OZqFqlBBdpa0bSf+puWfD9TSg=";
   };
 
   propagatedBuildInputs = [
@@ -29,7 +30,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "zwave_js_server" ];
+  pythonImportsCheck = [
+    "zwave_js_server"
+  ];
 
   meta = with lib; {
     description = "Python wrapper for zwave-js-server";
diff --git a/pkgs/development/quickemu/default.nix b/pkgs/development/quickemu/default.nix
index f7807a9d1c9ae..aa9906c77ecd3 100644
--- a/pkgs/development/quickemu/default.nix
+++ b/pkgs/development/quickemu/default.nix
@@ -17,6 +17,9 @@
 , xdg-user-dirs
 , xrandr
 , zsync
+, OVMF
+, quickemu
+, testVersion
 }:
 let
   runtimePaths = [
@@ -40,15 +43,20 @@ in
 
 stdenv.mkDerivation rec {
   pname = "quickemu";
-  version = "2.2.7";
+  version = "3.11";
 
   src = fetchFromGitHub {
-    owner = "wimpysworld";
-    repo = pname;
+    owner = "quickemu-project";
+    repo = "quickemu";
     rev = version;
-    sha256 = "sha256-TNG1pCePsi12QQafhayhj+V5EXq+v7qmaW5v5X8ER6s=";
+    sha256 = "1xwf9vwbr57wmyxfcqzl1jnmfx3ffh7sfqf0zcdq41wqkm8s106n";
   };
 
+  patches = [
+    ./efi_vars_ensure_writable.patch
+    ./input_overrides.patch
+  ];
+
   nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
@@ -56,16 +64,21 @@ stdenv.mkDerivation rec {
 
     install -Dm755 -t "$out/bin" quickemu quickget macrecovery
 
-   for f in quickget macrecovery quickemu; do
-    wrapProgram $out/bin/$f --prefix PATH : "${lib.makeBinPath runtimePaths}"
-   done
+    for f in quickget macrecovery quickemu; do
+      wrapProgram $out/bin/$f \
+        --prefix PATH : "${lib.makeBinPath runtimePaths}" \
+        --set ENV_EFI_CODE "${OVMF.fd}/FV/OVMF_CODE.fd" \
+        --set ENV_EFI_VARS "${OVMF.fd}/FV/OVMF_VARS.fd"
+    done
 
     runHook postInstall
   '';
 
+  passthru.tests = testVersion { package = quickemu; };
+
   meta = with lib; {
     description = "Quickly create and run optimised Windows, macOS and Linux desktop virtual machines";
-    homepage = "https://github.com/wimpysworld/quickemu";
+    homepage = "https://github.com/quickemu-project/quickemu";
     license = licenses.mit;
     maintainers = with maintainers; [ fedx-sudo ];
   };
diff --git a/pkgs/development/quickemu/efi_vars_ensure_writable.patch b/pkgs/development/quickemu/efi_vars_ensure_writable.patch
new file mode 100644
index 0000000000000..e146d0ba76822
--- /dev/null
+++ b/pkgs/development/quickemu/efi_vars_ensure_writable.patch
@@ -0,0 +1,13 @@
+diff --git a/quickemu b/quickemu
+index a9a60a5..1a932ac 100755
+--- a/quickemu
++++ b/quickemu
+@@ -197,7 +197,7 @@ function efi_vars() {
+ 
+   if [ ! -e "${VARS_OUT}" ]; then
+     if [ -e "${VARS_IN}" ]; then
+-      cp "${VARS_IN}" "${VARS_OUT}"
++      cp "${VARS_IN}" "${VARS_OUT}" && chmod +w "${VARS_OUT}"
+     else
+       echo "ERROR! ${VARS_IN} was not found. Please install edk2."
+       exit 1
diff --git a/pkgs/development/quickemu/input_overrides.patch b/pkgs/development/quickemu/input_overrides.patch
new file mode 100644
index 0000000000000..228624edcf1bf
--- /dev/null
+++ b/pkgs/development/quickemu/input_overrides.patch
@@ -0,0 +1,28 @@
+diff --git a/quickemu b/quickemu
+index 1a932ac..ab2f752 100755
+--- a/quickemu
++++ b/quickemu
+@@ -383,7 +383,10 @@ function vm_boot() {
+     # https://bugzilla.redhat.com/show_bug.cgi?id=1929357#c5
+     case ${secureboot} in
+       on)
+-        if [ -e "/usr/share/OVMF/OVMF_CODE_4M.secboot.fd" ]; then
++        if [[ ${ENV_EFI_CODE_SECURE} && ${ENV_EFI_CODE_SECURE-x} ]] && [[ ${ENV_EFI_VARS_SECURE} && ${ENV_EFI_VARS_SECURE-x} ]]; then
++          EFI_CODE="${ENV_EFI_CODE_SECURE}"
++          efi_vars "${ENV_EFI_VARS_SECURE}" "${EFI_VARS}"
++        elif [ -e "/usr/share/OVMF/OVMF_CODE_4M.secboot.fd" ]; then
+           EFI_CODE="/usr/share/OVMF/OVMF_CODE_4M.secboot.fd"
+           efi_vars "/usr/share/OVMF/OVMF_VARS_4M.fd" "${EFI_VARS}"
+         elif [ -e "/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd" ]; then
+@@ -402,7 +405,10 @@ function vm_boot() {
+         fi
+         ;;
+       *)
+-        if [ -e "/usr/share/OVMF/OVMF_CODE_4M.fd" ]; then
++        if [[ ${ENV_EFI_CODE} && ${ENV_EFI_CODE-x} ]] && [[ ${ENV_EFI_VARS} && ${ENV_EFI_VARS-x} ]]; then
++          EFI_CODE="${ENV_EFI_CODE}"
++          efi_vars "${ENV_EFI_VARS}" "${EFI_VARS}"
++        elif [ -e "/usr/share/OVMF/OVMF_CODE_4M.fd" ]; then
+           EFI_CODE="/usr/share/OVMF/OVMF_CODE_4M.fd"
+           efi_vars "/usr/share/OVMF/OVMF_VARS_4M.fd" "${EFI_VARS}"
+         elif [ -e "/usr/share/edk2/ovmf/OVMF_CODE.fd" ]; then
diff --git a/pkgs/development/r-modules/bioc-annotation-packages.nix b/pkgs/development/r-modules/bioc-annotation-packages.nix
index dca3263dd41dc..635926e72c17d 100644
--- a/pkgs/development/r-modules/bioc-annotation-packages.nix
+++ b/pkgs/development/r-modules/bioc-annotation-packages.nix
@@ -336,7 +336,6 @@ in with self; {
   genomewidesnp6Crlmm = derive2 { name="genomewidesnp6Crlmm"; version="1.0.7"; sha256="16qcxa32fmbdcv5dck0grsnqyfcqql7wpxa1l6andv9hrvabv2jx"; depends=[]; };
   gp53cdf = derive2 { name="gp53cdf"; version="2.18.0"; sha256="11p69rxia8bqajix3jg34vnhczyxgpq50k5kdh878h7bn0mpg6bj"; depends=[AnnotationDbi]; };
   grasp2db = derive2 { name="grasp2db"; version="1.1.0"; sha256="1aq19myhcl9kdmzy8f4c3ilf0s0ng99rl58jja2xlmqsm2hik7ya"; depends=[AnnotationHub dbplyr digest dplyr GenomeInfoDb RSQLite]; };
-  greengenes13_5MgDb = derive2 { name="greengenes13.5MgDb"; version="2.0.0"; sha256="0j4pd653vlfpd9gq6gi459lra8xhyknjrzadkx9d3zjy0hcwpj7r"; depends=[]; };
   gwascatData = derive2 { name="gwascatData"; version="0.99.6"; sha256="1xhmzl06vivq8x01h60q3c4vql67wjgjfs35j4ifmixp1qhicgga"; depends=[data_table]; };
   h10kcod_db = derive2 { name="h10kcod.db"; version="3.4.0"; sha256="0f30n339ib8q478a7axjdh8hzrqws762m680ha0sxm3a0nxwapgg"; depends=[AnnotationDbi org_Hs_eg_db]; };
   h20kcod_db = derive2 { name="h20kcod.db"; version="3.4.0"; sha256="0csh59bgpn5xyaw6bfg7nvi9vcvjd4f66f0dr3xh7c6316835mnx"; depends=[AnnotationDbi org_Hs_eg_db]; };
@@ -847,7 +846,6 @@ in with self; {
   rhesuscdf = derive2 { name="rhesuscdf"; version="2.18.0"; sha256="0q2alkxm80wkzaf0q80df27q30qkswybavz05x6ywsihbs9h0nb8"; depends=[AnnotationDbi]; };
   rhesusprobe = derive2 { name="rhesusprobe"; version="2.18.0"; sha256="0fd8pvwvpcmx41k80nbccjxllh39fvjf7l9dr8facisl1x7gsfil"; depends=[AnnotationDbi]; };
   ri16cod_db = derive2 { name="ri16cod.db"; version="3.4.0"; sha256="1xz533vxjdyxx1wkks0kgk6b90sxs44iqcsvyds0xcm573bx8c6q"; depends=[AnnotationDbi org_Rn_eg_db]; };
-  ribosomaldatabaseproject11_5MgDb = derive2 { name="ribosomaldatabaseproject11.5MgDb"; version="1.00.0"; sha256="04ppa4k8p54bmkq3jm41h0v4lb5hz95cmnakfzmqfml00ir04mxp"; depends=[]; };
   ricecdf = derive2 { name="ricecdf"; version="2.18.0"; sha256="07lsw9rklk2rsvbkcj1ci8hg2x68k3qpkx9yw0cmd7rg5fvydgns"; depends=[AnnotationDbi]; };
   riceprobe = derive2 { name="riceprobe"; version="2.18.0"; sha256="0w6qvszdmnipn3v2bld46x7my2a9hni0jbxd0y1d6xcrrgs951ra"; depends=[AnnotationDbi]; };
   rnu34_db = derive2 { name="rnu34.db"; version="3.13.0"; sha256="155spriq65xpvf1wjw632jsfabzd4lm06l8qqzhs70qqjbnlkln0"; depends=[AnnotationDbi org_Rn_eg_db]; };
@@ -862,7 +860,6 @@ in with self; {
   saureuscdf = derive2 { name="saureuscdf"; version="2.18.0"; sha256="0vmm3fy10dzzmaq22ah4fb0k3fs1gdbhnsi8mxz7xgp27dcan29j"; depends=[AnnotationDbi]; };
   saureusprobe = derive2 { name="saureusprobe"; version="2.18.0"; sha256="0s5ma3hh7ncsi4dq33r3hwffk85x3gvjbm5cslppbsd0r0bjwkia"; depends=[AnnotationDbi]; };
   scAnnotatR_models = derive2 { name="scAnnotatR.models"; version="0.99.10"; sha256="1mj23jyakx5bss4v8lb66ri67ajcxk9kzfp8ya8vsbhkx5npqgl4"; depends=[]; };
-  silva128_1MgDb = derive2 { name="silva128.1MgDb"; version="1.00.0"; sha256="0pwwxxa55d3919rbczg5iskd03ignimk80m52kfi930b1kdg9qc2"; depends=[]; };
   soybeancdf = derive2 { name="soybeancdf"; version="2.18.0"; sha256="1dlwxdslm827661z6f4z2hwr7wpwqfzvizhvv63p86ll7l6gs3s8"; depends=[AnnotationDbi]; };
   soybeanprobe = derive2 { name="soybeanprobe"; version="2.18.0"; sha256="06dpwqad7q3wyq0bsgpwkw8kx1gq5fy1s1lw632xrvgcid2fsmf8"; depends=[AnnotationDbi]; };
   sugarcanecdf = derive2 { name="sugarcanecdf"; version="2.18.0"; sha256="0wghc6wr7iwkql63m3wibjjdcdpqd53z0g5rxdh553sjb0ca2n7z"; depends=[AnnotationDbi]; };
@@ -997,4 +994,7 @@ in with self; {
   MeSH_Xtr_eg_db = derive2 { name="MeSH.Xtr.eg.db"; version="1.15.1"; sha256="19waylyzyga4zqygar6509gq36a8z36fbpz55msb0zsin24s0y82"; depends=[MeSHDbi]; broken = true; };
   MeSH_Zma_eg_db = derive2 { name="MeSH.Zma.eg.db"; version="1.15.1"; sha256="0plldymwirg8hyj9yv5jw4ldrlnvf5dx60gymb8rgmmxvrmhay66"; depends=[MeSHDbi]; broken = true; };
   MeSH_db = derive2 { name="MeSH.db"; version="1.15.1"; sha256="0ixlxcakcc9f6d3dzxfdda4nh5gnivqvbi9dw7c85c0145dgnpzx"; depends=[MeSHDbi]; broken = true; };
+  greengenes13_5MgDb = derive2 { name="greengenes13.5MgDb"; version="2.0.0"; sha256="0j4pd653vlfpd9gq6gi459lra8xhyknjrzadkx9d3zjy0hcwpj7r"; depends=[]; broken = true; };
+  ribosomaldatabaseproject11_5MgDb = derive2 { name="ribosomaldatabaseproject11.5MgDb"; version="1.00.0"; sha256="04ppa4k8p54bmkq3jm41h0v4lb5hz95cmnakfzmqfml00ir04mxp"; depends=[]; broken = true; };
+  silva128_1MgDb = derive2 { name="silva128.1MgDb"; version="1.00.0"; sha256="0pwwxxa55d3919rbczg5iskd03ignimk80m52kfi930b1kdg9qc2"; depends=[]; broken = true; };
 }
diff --git a/pkgs/development/r-modules/bioc-experiment-packages.nix b/pkgs/development/r-modules/bioc-experiment-packages.nix
index 113b28ceeaa33..b5ccda70d474f 100644
--- a/pkgs/development/r-modules/bioc-experiment-packages.nix
+++ b/pkgs/development/r-modules/bioc-experiment-packages.nix
@@ -22,7 +22,7 @@ in with self; {
   AssessORFData = derive2 { name="AssessORFData"; version="1.12.0"; sha256="0v9xlm2wxlarbhj57jacn52hlxxylyfmr1gwmkss2pzw3hjyi4v1"; depends=[DECIPHER]; };
   BeadArrayUseCases = derive2 { name="BeadArrayUseCases"; version="1.32.0"; sha256="1zl54rg50v1m19fln1j1a3a22xi989sj8kk7ccjjgjhybsrvyi0r"; depends=[beadarray GEOquery limma]; };
   BeadSorted_Saliva_EPIC = derive2 { name="BeadSorted.Saliva.EPIC"; version="1.2.0"; sha256="0fmjqwwnxlfpwl6ldhq92w9cxf4x4fcm349xk3jx8q8mj20zfsm1"; depends=[ExperimentHub minfi]; };
-  BioImageDbs = derive2 { name="BioImageDbs"; version="1.2.0"; sha256="0ldpbjdj5xhh7sxkjrxgp7b5yayfjvw5yah4dxgbrmw37hqssd3q"; depends=[animation EBImage einsum ExperimentHub filesstrings magick magrittr markdown rmarkdown]; };
+  BioImageDbs = derive2 { name="BioImageDbs"; version="1.2.2"; sha256="19wb8lzm11lyiiv1a57vgzpgzbnlm8s61bipqdaxpf7b5baajnwq"; depends=[animation AnnotationHub EBImage einsum ExperimentHub filesstrings magick magrittr markdown rmarkdown]; };
   BloodCancerMultiOmics2017 = derive2 { name="BloodCancerMultiOmics2017"; version="1.14.0"; sha256="1nx55qhkkjvmljby04wn0fmbgcrdmqxqgxf5h4dasw884msfha4d"; depends=[beeswarm Biobase DESeq2 devtools dplyr ggdendro ggplot2 glmnet gtable ipflasso RColorBrewer reshape2 scales SummarizedExperiment survival tibble]; };
   CCl4 = derive2 { name="CCl4"; version="1.32.0"; sha256="1ljjj2fk4cji4aw2j8kf4rjgfjfbdyg8sfhvahvpyqgqwvmsmdx5"; depends=[Biobase limma]; };
   CLL = derive2 { name="CLL"; version="1.34.0"; sha256="017kjpv5rqn6vg3d4drnxj7arjxqw1hw1lxx9p0bdzr2isahcs6g"; depends=[affy Biobase]; };
@@ -138,7 +138,7 @@ in with self; {
   OMICsPCAdata = derive2 { name="OMICsPCAdata"; version="1.12.0"; sha256="1l4rmfdcfafh8pyvz8bsl4rm3859c8ckzw9kv2dc82djgk0b2lcq"; depends=[MultiAssayExperiment]; };
   ObMiTi = derive2 { name="ObMiTi"; version="1.2.0"; sha256="131n0q34xizcw21sjrxcf185qfpxfc8m4xypmp812151f886p405"; depends=[ExperimentHub SummarizedExperiment]; };
   OnassisJavaLibs = derive2 { name="OnassisJavaLibs"; version="1.16.0"; sha256="0hw0djfc8bfk51np4x7ik8nr2dscn5wd7gvbr0564yfz2ilf8l6v"; depends=[rJava]; };
-  PCHiCdata = derive2 { name="PCHiCdata"; version="1.22.0"; sha256="0hk7fwh456xmlfgdgp6wsdn38v1g8b18f28f0wswgxxg1hy4mhih"; depends=[Chicago]; };
+  PCHiCdata = derive2 { name="PCHiCdata"; version="1.22.1"; sha256="00902qv6vbhyv36ra3hfyqjf1pg202sv9274pm9dmp2gdmypdw1m"; depends=[Chicago]; };
   PREDAsampledata = derive2 { name="PREDAsampledata"; version="0.34.0"; sha256="1gkjsh0xyn27jrxldkcgyvwpa2b2l81k96j2cls3y4dm9r39g637"; depends=[affy annotate Biobase PREDA]; };
   PWMEnrich_Dmelanogaster_background = derive2 { name="PWMEnrich.Dmelanogaster.background"; version="4.28.0"; sha256="0fagxhzqr2ri1w93yr7ch1x9d55q8305cfj62gcxkzpi61j8nx1y"; depends=[PWMEnrich]; };
   PWMEnrich_Hsapiens_background = derive2 { name="PWMEnrich.Hsapiens.background"; version="4.28.0"; sha256="1pmij8f40ly40prcmcjb7xfd5fpw14s77wvf1nn2vnvq7v232zva"; depends=[PWMEnrich]; };
@@ -174,7 +174,7 @@ in with self; {
   RcisTarget_hg19_motifDBs_cisbpOnly_500bp = derive2 { name="RcisTarget.hg19.motifDBs.cisbpOnly.500bp"; version="1.14.0"; sha256="06isc22wgwynrx9y55fkaqw6240866k400n8dfmn4pdrx3zwzhra"; depends=[data_table]; };
   ReactomeGSA_data = derive2 { name="ReactomeGSA.data"; version="1.8.0"; sha256="1gpy8hbib6zldi5pwmdiqfy1pg5b4i0s6hv8x41cbryvmgx718bx"; depends=[edgeR limma ReactomeGSA Seurat]; };
   RegParallel = derive2 { name="RegParallel"; version="1.12.0"; sha256="1px5j2i7gdsb2ccx556knx4dyr7wibvspgi28ja4qlsb9gn4xnin"; depends=[arm data_table doParallel foreach iterators stringr survival]; };
-  RforProteomics = derive2 { name="RforProteomics"; version="1.31.1"; sha256="1lb990amjy4246v3dy75bby3xbr3as017bi0zbrqda168cm8h5af"; depends=[BiocManager biocViews MSnbase R_utils]; };
+  RforProteomics = derive2 { name="RforProteomics"; version="1.32.0"; sha256="01vqkdk615r84vwczdvciw3vji4rknj8jgxz38jw2gpvi5pdiray"; depends=[BiocManager biocViews MSnbase R_utils]; };
   RnBeads_hg19 = derive2 { name="RnBeads.hg19"; version="1.26.0"; sha256="1r9hac14p4a0696v7n4vvxfnmsp6snvwyh0gz6h2ch7cdnp2ny0d"; depends=[GenomicRanges]; };
   RnBeads_hg38 = derive2 { name="RnBeads.hg38"; version="1.26.0"; sha256="0kcqa4zhb8i5104p1qyfdp4h50x60vns4dzr663vyhkcm7y8phhg"; depends=[GenomicRanges]; };
   RnBeads_mm10 = derive2 { name="RnBeads.mm10"; version="2.2.0"; sha256="06g1ys8daxjjry0zbdhilip529zamj99ing1impxnnr2kv1s3as2"; depends=[GenomicRanges]; };
@@ -262,7 +262,7 @@ in with self; {
   curatedBladderData = derive2 { name="curatedBladderData"; version="1.30.0"; sha256="0jv7aflam2gfzj8snf7dly26zq9c6gj764zb6fk0z9lb8wk4arxg"; depends=[affy]; };
   curatedBreastData = derive2 { name="curatedBreastData"; version="2.22.0"; sha256="0jnjhlw3b27521jmbbq4m0lq388m1g09lfhqfri3hbvrayk19pn6"; depends=[Biobase BiocStyle ggplot2 impute XML]; };
   curatedCRCData = derive2 { name="curatedCRCData"; version="2.26.0"; sha256="0gpkfff5k4mh96d6q5s2iwba7pfkp5wjl3nxhg3sm0vryrj0w8s0"; depends=[BiocGenerics nlme]; };
-  curatedMetagenomicData = derive2 { name="curatedMetagenomicData"; version="3.2.0"; sha256="1k4fjpmgs7dfvf7bkzyb9lmzmw7jj8ayc2y3nbskap6l1xl5qpxb"; depends=[AnnotationHub dplyr ExperimentHub magrittr mia purrr rlang S4Vectors stringr SummarizedExperiment tibble tidyr tidyselect TreeSummarizedExperiment]; };
+  curatedMetagenomicData = derive2 { name="curatedMetagenomicData"; version="3.2.2"; sha256="1ir416wzh373cvcx1jdfqi0abpz3cgk6x40mcrgwsynzcfrqql7q"; depends=[AnnotationHub dplyr ExperimentHub magrittr mia purrr rlang S4Vectors stringr SummarizedExperiment tibble tidyr tidyselect TreeSummarizedExperiment]; };
   curatedOvarianData = derive2 { name="curatedOvarianData"; version="1.32.0"; sha256="171m6j6wq5w7n68xzjf34shqhw1360cmzfh5q2al71jsh8lrw77x"; depends=[affy BiocGenerics]; };
   curatedTBData = derive2 { name="curatedTBData"; version="1.0.0"; sha256="0cbs8pkr4zlpvdmq1zsxyh47lkbgpf0ppbv8y653arryb4knficl"; depends=[AnnotationHub ExperimentHub MultiAssayExperiment rlang]; };
   curatedTCGAData = derive2 { name="curatedTCGAData"; version="1.16.0"; sha256="0d7id11liv55xj0n8gk0587p6kjwm5k22jgwf1f107y81zigpi3n"; depends=[AnnotationHub ExperimentHub HDF5Array MultiAssayExperiment S4Vectors SummarizedExperiment]; };
@@ -389,7 +389,7 @@ in with self; {
   signatureSearchData = derive2 { name="signatureSearchData"; version="1.8.0"; sha256="13xfdg3si14zmrbib691301hhxxj3d3xyfkab5l4skspzgpd64cx"; depends=[affy Biobase dplyr ExperimentHub limma magrittr R_utils rhdf5 signatureSearch]; };
   simpIntLists = derive2 { name="simpIntLists"; version="1.30.0"; sha256="0q2lqfhsjncdj42hblrh389j2m47x26nn58s31s1448pddhrp7z1"; depends=[]; };
   spatialDmelxsim = derive2 { name="spatialDmelxsim"; version="1.0.0"; sha256="1h5crcjrzapj5j31285ana48g3b2iscxwlzxxdx9i03jsl39dlp8"; depends=[ExperimentHub SummarizedExperiment]; };
-  spatialLIBD = derive2 { name="spatialLIBD"; version="1.6.0"; sha256="0c1ayv3mf31smmqfys85xjpadkavjixw545gkalibvxrkxmq0qb3"; depends=[AnnotationHub benchmarkme BiocFileCache cowplot DT ExperimentHub fields ggplot2 golem IRanges jsonlite plotly png Polychrome RColorBrewer S4Vectors scater sessioninfo shiny shinyWidgets SingleCellExperiment SpatialExperiment SummarizedExperiment tibble viridisLite]; };
+  spatialLIBD = derive2 { name="spatialLIBD"; version="1.6.1"; sha256="1hczv6ndc6dvybx9ii8r0pnfc3j4491hfha41z1vi9cvlpixx2gs"; depends=[AnnotationHub benchmarkme BiocFileCache BiocGenerics cowplot DT ExperimentHub fields GenomicRanges ggplot2 golem IRanges jsonlite magick Matrix plotly png Polychrome RColorBrewer rtracklayer S4Vectors scater sessioninfo shiny shinyWidgets SingleCellExperiment SpatialExperiment SummarizedExperiment tibble viridisLite]; };
   spqnData = derive2 { name="spqnData"; version="1.6.0"; sha256="0dwmgwz88g8fzpa2nl2zs4y32wrlf4ca142d8siak14wl089nm4y"; depends=[SummarizedExperiment]; };
   stemHypoxia = derive2 { name="stemHypoxia"; version="1.30.0"; sha256="05jly60gg5xr9511jlymzbpjysapfz2qq81rxhdz7cjbjkkgvykr"; depends=[]; };
   stjudem = derive2 { name="stjudem"; version="1.34.0"; sha256="005wy7b8naaph9krsdw234sk8fprccclnj7y4rfrs2f3lbrw4b2g"; depends=[]; };
diff --git a/pkgs/development/r-modules/bioc-packages.nix b/pkgs/development/r-modules/bioc-packages.nix
index 02e3442953574..d1d56ced54214 100644
--- a/pkgs/development/r-modules/bioc-packages.nix
+++ b/pkgs/development/r-modules/bioc-packages.nix
@@ -47,11 +47,11 @@ in with self; {
   AnVILPublish = derive2 { name="AnVILPublish"; version="1.4.1"; sha256="0jvh22kz9mg4r49mbzvbvzbn58lzj5mvk7qb4pizn4sd8xsbvmyq"; depends=[AnVIL httr jsonlite readr rmarkdown whisker yaml]; };
   Anaquin = derive2 { name="Anaquin"; version="2.18.0"; sha256="0b9clpqy2jfhign30nab1369xswrkmqm6dx14mf6wjrvcl9xpm2s"; depends=[DESeq2 ggplot2 knitr locfit plyr qvalue ROCR]; };
   AneuFinder = derive2 { name="AneuFinder"; version="1.22.0"; sha256="0xn8952fkchhx7m8dam6gjy86j551xp1cs67510s1qrmfgzpkjp0"; depends=[AneuFinderData bamsignals BiocGenerics Biostrings cowplot DNAcopy doParallel ecp foreach GenomeInfoDb GenomicAlignments GenomicRanges ggdendro ggplot2 ggrepel IRanges mclust ReorderCluster reshape2 Rsamtools S4Vectors]; };
-  AnnotationDbi = derive2 { name="AnnotationDbi"; version="1.56.1"; sha256="1svh5zcb7ymz463z5641l2cvzniswxasjjix2plfhqs0yqf1j9qg"; depends=[Biobase BiocGenerics DBI IRanges KEGGREST RSQLite S4Vectors]; };
+  AnnotationDbi = derive2 { name="AnnotationDbi"; version="1.56.2"; sha256="01zwq14msbbwzxv8rgpmyr74ymvhq0vnmxkxxwd886iac5vjlgi8"; depends=[Biobase BiocGenerics DBI IRanges KEGGREST RSQLite S4Vectors]; };
   AnnotationFilter = derive2 { name="AnnotationFilter"; version="1.18.0"; sha256="15fp1228yb06jm5cblvhw3qv9mlpbjfggaz2nvi3p46mby1vs64w"; depends=[GenomicRanges lazyeval]; };
   AnnotationForge = derive2 { name="AnnotationForge"; version="1.36.0"; sha256="02wvni5q560idi6677g5f4md73z4qzjl5yycxv5dbvgbl2picisz"; depends=[AnnotationDbi Biobase BiocGenerics DBI RCurl RSQLite S4Vectors XML]; };
   AnnotationHub = derive2 { name="AnnotationHub"; version="3.2.0"; sha256="0ks8yzvvs2r66pb9687mkskf0n3wgvp7h92k83b0a1q32sca5wng"; depends=[AnnotationDbi BiocFileCache BiocGenerics BiocManager BiocVersion curl dplyr httr interactiveDisplayBase rappdirs RSQLite S4Vectors yaml]; };
-  AnnotationHubData = derive2 { name="AnnotationHubData"; version="1.24.0"; sha256="19z7jsfmd4f154l6i270107pp5jqj4qqcl10ymfpx87w6i3jdy7w"; depends=[AnnotationDbi AnnotationForge AnnotationHub Biobase BiocCheck BiocGenerics BiocManager biocViews Biostrings DBI futile_logger GenomeInfoDb GenomicFeatures GenomicRanges graph IRanges jsonlite OrganismDbi RCurl Rsamtools RSQLite rtracklayer S4Vectors XML]; };
+  AnnotationHubData = derive2 { name="AnnotationHubData"; version="1.24.1"; sha256="008jkpqzk1dxrkmbpzyjnqyrdw7rb4ci88fmnn27arx6psbl096g"; depends=[AnnotationDbi AnnotationForge AnnotationHub Biobase BiocCheck BiocGenerics BiocManager biocViews Biostrings DBI futile_logger GenomeInfoDb GenomicFeatures GenomicRanges graph IRanges jsonlite OrganismDbi RCurl Rsamtools RSQLite rtracklayer S4Vectors XML]; };
   ArrayExpress = derive2 { name="ArrayExpress"; version="1.54.0"; sha256="1rfvycrjlw0x1sqjrmiyf8i7yjiwjqf8x83i7pfg78yg9k5sh9vi"; depends=[Biobase limma oligo XML]; };
   ArrayExpressHTS = derive2 { name="ArrayExpressHTS"; version="1.44.0"; sha256="1mjnddy05y06bn25xcjdx8kz538z3k4gvyqrb1lg4z8593xaw40i"; depends=[Biobase BiocGenerics biomaRt Biostrings bitops edgeR GenomicRanges Hmisc IRanges R2HTML RColorBrewer Rhtslib rJava Rsamtools sampling sendmailR ShortRead snow svMisc XML]; };
   AssessORF = derive2 { name="AssessORF"; version="1.12.0"; sha256="0rn2ijnpa8a6w2zv3cvm1s5bhcvzmb4xk18d96wjc60gxk51i5wy"; depends=[Biostrings DECIPHER GenomicRanges IRanges]; };
@@ -86,7 +86,7 @@ in with self; {
   BasicSTARRseq = derive2 { name="BasicSTARRseq"; version="1.22.0"; sha256="14rs6fk15w2rddyqppf32n0c02gw83b7c8cpmsx11xz6fx7ib5k6"; depends=[GenomeInfoDb GenomicAlignments GenomicRanges IRanges S4Vectors]; };
   BatchQC = derive2 { name="BatchQC"; version="1.22.0"; sha256="0rbpvgxzikpyhxbxksg7vwmy2r0gzw103dykx1awbxkkvrkhl7kf"; depends=[corpcor ggvis gplots heatmaply knitr limma Matrix matrixStats MCMCpack moments pander reshape2 rmarkdown shiny sva]; };
   BayesKnockdown = derive2 { name="BayesKnockdown"; version="1.20.0"; sha256="08sy0vv1mrbjvvf3ddgxc0ixrbi2mka2g8gjxmx3ylsb6w7vxcy4"; depends=[Biobase]; };
-  BayesSpace = derive2 { name="BayesSpace"; version="1.4.0"; sha256="0dijc66a55mjm9clpx0668by3x7k57ihywjyf042sz8b8pf9ijd9"; depends=[assertthat BiocFileCache BiocSingular coda DirichletReg ggplot2 Matrix mclust purrr Rcpp RcppArmadillo RcppDist RcppProgress RCurl rhdf5 S4Vectors scales scater scran SingleCellExperiment SummarizedExperiment xgboost]; };
+  BayesSpace = derive2 { name="BayesSpace"; version="1.4.1"; sha256="1nif6d4hb9zpfx9lczs6j6xniiv0spq6s39jvrs1qazdyysmf4qy"; depends=[assertthat BiocFileCache BiocSingular coda DirichletReg ggplot2 Matrix mclust purrr Rcpp RcppArmadillo RcppDist RcppProgress RCurl rhdf5 S4Vectors scales scater scran SingleCellExperiment SummarizedExperiment xgboost]; };
   BeadDataPackR = derive2 { name="BeadDataPackR"; version="1.46.0"; sha256="004cppgdy79fqw2szkgkxir0rxvn91bmfrq4g20sdr7cvh8kpfyi"; depends=[]; };
   BgeeCall = derive2 { name="BgeeCall"; version="1.10.0"; sha256="0rbbl8m48qcvl26lnf27jq108p7pi84m9ac3qcpjc0ax5wywbv16"; depends=[biomaRt Biostrings data_table dplyr GenomicFeatures jsonlite rhdf5 rslurm rtracklayer sjmisc tximport]; };
   BgeeDB = derive2 { name="BgeeDB"; version="2.20.0"; sha256="0pjymal01sjl5dc37g66wykgxnksarlbvwnbvhg7w0i7y92zavqk"; depends=[Biobase curl data_table digest dplyr graph R_utils RCurl RSQLite tidyr topGO]; };
@@ -113,9 +113,9 @@ in with self; {
   BiocIO = derive2 { name="BiocIO"; version="1.4.0"; sha256="1qg6v961sbj7qwyjx4z720f6h0kq693p7gc8q99my7gqkbbcxrfr"; depends=[BiocGenerics S4Vectors]; };
   BiocNeighbors = derive2 { name="BiocNeighbors"; version="1.12.0"; sha256="04in8l6j7frgm0a5dzphazfhn9cm8w775z5yir712jxa37mh1agr"; depends=[BiocParallel Matrix Rcpp RcppHNSW S4Vectors]; };
   BiocOncoTK = derive2 { name="BiocOncoTK"; version="1.14.0"; sha256="1h5s6wbc5n5x5d28rynxpcmaklxdhf72g9gg9fy8cg77niipvxd9"; depends=[bigrquery car ComplexHeatmap curatedTCGAData DBI dplyr DT GenomicFeatures GenomicRanges ggplot2 ggpubr graph httr IRanges magrittr plyr Rgraphviz rjson S4Vectors scales shiny SummarizedExperiment]; };
-  BiocParallel = derive2 { name="BiocParallel"; version="1.28.0"; sha256="0jqgbpjppwinzw100qhc42kc95znq6xanl26bi8m9cq7yggbpra6"; depends=[BH futile_logger snow]; };
-  BiocPkgTools = derive2 { name="BiocPkgTools"; version="1.12.0"; sha256="13m6h35938407ajj7fakl50g4p2wsvinkg0r2mwl1zwq88735arg"; depends=[BiocFileCache BiocManager biocViews dplyr DT gh graph htmltools htmlwidgets httr igraph jsonlite magrittr RBGL readr rlang rvest stringr tibble tidyr tidyselect xml2]; };
-  BiocSet = derive2 { name="BiocSet"; version="1.8.0"; sha256="0ysm68gcalg3d91jx6vmdzra01vc6kvzqnvz557g3rnm0wkx12q6"; depends=[AnnotationDbi BiocIO dplyr KEGGREST ontologyIndex plyr rlang S4Vectors tibble tidyr]; };
+  BiocParallel = derive2 { name="BiocParallel"; version="1.28.2"; sha256="0mq9cz7d0lfgq63yp4m3mw7wmji1pa3y78nlwpizs1f9d6f7y8vk"; depends=[BH futile_logger snow]; };
+  BiocPkgTools = derive2 { name="BiocPkgTools"; version="1.12.2"; sha256="1yz2sgx4xrnw22k3d6q6hkj213bnbb4hbr5ymxnmjnsz551s75ny"; depends=[BiocFileCache BiocManager biocViews dplyr DT gh graph htmltools htmlwidgets httr igraph jsonlite magrittr RBGL readr rlang rvest stringr tibble tidyr tidyselect xml2]; };
+  BiocSet = derive2 { name="BiocSet"; version="1.8.1"; sha256="1x5ar9byr85iap2x6y66j31fi17wr31awx1gl3z01sckp0dldx6w"; depends=[AnnotationDbi BiocIO dplyr KEGGREST ontologyIndex plyr rlang S4Vectors tibble tidyr]; };
   BiocSingular = derive2 { name="BiocSingular"; version="1.10.0"; sha256="0dkh6a23qymjcynppmpp3k1mzpfadv8dqyz410pxkqsxig4ldd4n"; depends=[beachmat BiocGenerics BiocParallel DelayedArray irlba Matrix Rcpp rsvd S4Vectors ScaledMatrix]; };
   BiocSklearn = derive2 { name="BiocSklearn"; version="1.16.0"; sha256="0iscm2h4i7b50h4bfrrcafai14aq5wa5987awpzyk285gwifp6aw"; depends=[basilisk knitr Rcpp reticulate SummarizedExperiment]; };
   BiocStyle = derive2 { name="BiocStyle"; version="2.22.0"; sha256="0xx6xr01sb5wig94515zxgw24r9fv0g962ajy87741civhq32lbd"; depends=[BiocManager bookdown knitr rmarkdown yaml]; };
@@ -134,7 +134,7 @@ in with self; {
   CAEN = derive2 { name="CAEN"; version="1.2.0"; sha256="0jxi9bgbb3dnhcgm93qx611bnl23s7lk9msmxqbnlyhjprmbsqnz"; depends=[PoiClaClu SummarizedExperiment]; };
   CAFE = derive2 { name="CAFE"; version="1.30.0"; sha256="130jidd1jxlgkv3sq8bgqyrn51dhb9yf67dlnjhf7xbvlyvx179g"; depends=[affy annotate Biobase biovizBase GenomicRanges ggbio ggplot2 gridExtra IRanges]; };
   CAGEfightR = derive2 { name="CAGEfightR"; version="1.14.0"; sha256="08v16d9al8l7a31sncwpi79i7770v5gr2bf2q7i07xxdsf496yr9"; depends=[assertthat BiocGenerics BiocParallel GenomeInfoDb GenomicAlignments GenomicFeatures GenomicFiles GenomicInteractions GenomicRanges Gviz InteractionSet IRanges Matrix pryr rtracklayer S4Vectors SummarizedExperiment]; };
-  CAGEr = derive2 { name="CAGEr"; version="2.0.0"; sha256="0a116v3hxrfjm8fcq27vs260wygw0hbj4f3s063za8l45fdpamv6"; depends=[BiocGenerics BiocParallel BSgenome data_table DelayedArray DelayedMatrixStats formula_tools GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 gtools IRanges KernSmooth memoise MultiAssayExperiment plyr reshape2 Rsamtools rtracklayer S4Vectors som stringdist stringi SummarizedExperiment vegan VGAM]; };
+  CAGEr = derive2 { name="CAGEr"; version="2.0.2"; sha256="0s959bqgmafc2hwh42fwildq8h8wxvdiciimgpr71ka2p1vg9sk7"; depends=[BiocGenerics BiocParallel BSgenome data_table DelayedArray DelayedMatrixStats formula_tools GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 gtools IRanges KernSmooth memoise MultiAssayExperiment plyr reshape2 Rsamtools rtracklayer S4Vectors som stringdist stringi SummarizedExperiment vegan VGAM]; };
   CAMERA = derive2 { name="CAMERA"; version="1.50.0"; sha256="1mgdmzlbj8yhk6jmnqaw4xmss77v7csdajd240kiswvm1f317z3h"; depends=[Biobase graph Hmisc igraph RBGL xcms]; };
   CARNIVAL = derive2 { name="CARNIVAL"; version="2.4.0"; sha256="10wbdjripgndfaqx2aysmqhc9v8i94db8bf0bb89csmvmnia68c6"; depends=[dplyr igraph lpSolve readr rjson rmarkdown stringr]; };
   CATALYST = derive2 { name="CATALYST"; version="1.18.0"; sha256="15lah45lf16zh1ankbpjvz8zp38lldvq074nmvb99rhhqys2gbgi"; depends=[circlize ComplexHeatmap ConsensusClusterPlus cowplot data_table dplyr drc flowCore FlowSOM ggplot2 ggrepel ggridges gridExtra magrittr Matrix matrixStats nnls purrr RColorBrewer reshape2 Rtsne S4Vectors scales scater SingleCellExperiment SummarizedExperiment]; };
@@ -204,7 +204,7 @@ in with self; {
   ChIPanalyser = derive2 { name="ChIPanalyser"; version="1.16.0"; sha256="1ibbfsl2gz5634rljy4bin9h9g5bxzig3z65bvayp4ldmfiz91dm"; depends=[BiocManager Biostrings BSgenome GenomeInfoDb GenomicRanges IRanges RcppRoll ROCR rtracklayer S4Vectors]; };
   ChIPexoQual = derive2 { name="ChIPexoQual"; version="1.18.0"; sha256="1hh3mhfcngyx7cpzns8mjqviy8vfzrvxpv6nyizflpfmsr39mxfk"; depends=[BiocParallel biovizBase broom data_table dplyr GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 hexbin IRanges RColorBrewer rmarkdown Rsamtools S4Vectors scales viridis]; };
   ChIPpeakAnno = derive2 { name="ChIPpeakAnno"; version="3.28.0"; sha256="05fbq8zvww1nlyykrri0hf4248i1i7w5cr453giagmjq7lgg4v3b"; depends=[AnnotationDbi BiocGenerics biomaRt Biostrings DBI dplyr ensembldb GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 graph InteractionSet IRanges KEGGREST matrixStats multtest RBGL regioneR Rsamtools rtracklayer S4Vectors SummarizedExperiment VennDiagram]; };
-  ChIPseeker = derive2 { name="ChIPseeker"; version="1.30.0"; sha256="1x8px8ylc231g87rd48kmy9y36h26rldbmqjkcj4mgaldvbsj0rp"; depends=[AnnotationDbi BiocGenerics boot dplyr enrichplot GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 gplots gtools IRanges magrittr plotrix RColorBrewer rtracklayer S4Vectors TxDb_Hsapiens_UCSC_hg19_knownGene]; };
+  ChIPseeker = derive2 { name="ChIPseeker"; version="1.30.2"; sha256="1nr5p1h9131rvbpnh2kizzx9q6f4ycq6rzxy1yqg2pczqcg7hy4x"; depends=[AnnotationDbi BiocGenerics boot dplyr enrichplot GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 gplots gtools IRanges magrittr plotrix RColorBrewer rtracklayer S4Vectors TxDb_Hsapiens_UCSC_hg19_knownGene]; };
   ChIPseqR = derive2 { name="ChIPseqR"; version="1.48.0"; sha256="05hxxqmjxpry0j80kyz2400azni0dc64ps7cxfi11h243japhbsf"; depends=[BiocGenerics Biostrings fBasics GenomicRanges HilbertVis IRanges S4Vectors ShortRead timsac]; };
   ChIPsim = derive2 { name="ChIPsim"; version="1.48.0"; sha256="1pdsfsk8c92pz22qz2x5rsmk7j9v3dw9c1p96il533ycjafq1xqd"; depends=[Biostrings IRanges ShortRead XVector]; };
   ChemmineOB = derive2 { name="ChemmineOB"; version="1.32.0"; sha256="14zwckgg8wqcdjmdk3i8p7f82df4izipq2lfck98l4i0z2p3y0f3"; depends=[BH BiocGenerics Rcpp zlibbioc]; };
@@ -239,7 +239,7 @@ in with self; {
   CytoML = derive2 { name="CytoML"; version="2.6.0"; sha256="16rgsc2dz5b8lm3ma8nh9wiknrdnvfjcsij7809rmcfs0gn1arcz"; depends=[base64enc BH Biobase corpcor cytolib data_table dplyr flowCore flowWorkspace ggcyto graph jsonlite lattice openCyto plyr RBGL Rcpp RcppArmadillo RcppParallel Rgraphviz Rhdf5lib RProtoBufLib RUnit tibble XML xml2 yaml]; };
   CytoTree = derive2 { name="CytoTree"; version="1.3.0"; sha256="1nb17lhpzzqd3xvs4ccdc5kcm4jvgk7w66nyv3vd8s68d7cf9rnp"; depends=[Biobase BiocNeighbors cluster flowCore FlowSOM flowUtils ggplot2 gmodels igraph limma Matrix matrixStats mclust pheatmap prettydoc RANN Rcpp Rtsne scatterpie scatterplot3d stringr sva umap]; };
   DAMEfinder = derive2 { name="DAMEfinder"; version="1.6.0"; sha256="0g47m8ac1rgllhfcbss0200m5jcrasns15x03db601m1jy37mcj8"; depends=[BiocGenerics Biostrings bumphunter cowplot GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges limma plyr readr reshape2 Rsamtools S4Vectors stringr SummarizedExperiment VariantAnnotation]; };
-  DAPAR = derive2 { name="DAPAR"; version="1.26.0"; sha256="071dkv6x979wyl214wjllkacvs6izjwjkcxvqpzk9gwzlrs8h0hg"; depends=[AnnotationDbi apcluster Biobase Cairo cluster clusterProfiler cp4p DAPARdata dendextend diptest doParallel dplyr factoextra FactoMineR forcats foreach ggplot2 gplots graph highcharter igraph imp4p impute knitr lattice limma lme4 Matrix Mfuzz MSnbase multcomp norm openxlsx pcaMethods png preprocessCore purrr RColorBrewer readxl reshape2 scales siggenes stringr tibble tidyr tidyverse tmvtnorm vioplot visNetwork vsn]; };
+  DAPAR = derive2 { name="DAPAR"; version="1.26.1"; sha256="1xkilz7smw6q4d0v9z13787h771ks454ma7bism9mm1rn0zdzw4n"; depends=[AnnotationDbi apcluster Biobase Cairo cluster clusterProfiler cp4p DAPARdata dendextend diptest doParallel dplyr factoextra FactoMineR forcats foreach ggplot2 gplots graph highcharter igraph imp4p impute knitr lattice limma lme4 Matrix Mfuzz MSnbase multcomp norm openxlsx pcaMethods png preprocessCore purrr RColorBrewer readxl reshape2 scales siggenes stringr tibble tidyr tidyverse tmvtnorm vioplot visNetwork vsn]; };
   DART = derive2 { name="DART"; version="1.42.0"; sha256="1wxg3szgsqy33z4vp150w5kg2nxyxqs3az5vxbajz5z9q7fg3zrb"; depends=[igraph]; };
   DECIPHER = derive2 { name="DECIPHER"; version="2.22.0"; sha256="0a9k3f70jmd17kxf1zjmdzrfjs0dmwfad2zgz6wihxh5s1shc8qm"; depends=[Biostrings DBI IRanges RSQLite S4Vectors XVector]; };
   DEComplexDisease = derive2 { name="DEComplexDisease"; version="1.14.0"; sha256="0qbmw70rqmfixrbnb2jzvvqi54j2rl6gy1bspb143gsadh8z2s9i"; depends=[BiocParallel ComplexHeatmap DESeq2 edgeR Rcpp SummarizedExperiment]; };
@@ -248,7 +248,7 @@ in with self; {
   DEGreport = derive2 { name="DEGreport"; version="1.30.0"; sha256="0zmqz8gvpbka5cnwxx7w00xjaxlhmrni1lvacnippy63lpl2w4sz"; depends=[Biobase BiocGenerics broom circlize cluster ComplexHeatmap ConsensusClusterPlus cowplot DESeq2 dplyr edgeR ggdendro ggplot2 ggrepel knitr lasso2 logging magrittr Nozzle_R1 psych RColorBrewer reshape rlang S4Vectors scales stringr SummarizedExperiment tibble tidyr]; };
   DEGseq = derive2 { name="DEGseq"; version="1.48.0"; sha256="1bx6xj71k7126ckpr1b7dh1ndmb9yvp9wrrr8lyfcq5birgpf22n"; depends=[qvalue]; };
   DEP = derive2 { name="DEP"; version="1.16.0"; sha256="122gxaslxl3q66ncqndkmnjf6kx2gkj880cf2khwivh58sg6y410"; depends=[assertthat circlize cluster ComplexHeatmap dplyr DT fdrtool ggplot2 ggrepel gridExtra imputeLCMD limma MSnbase purrr RColorBrewer readr rmarkdown shiny shinydashboard SummarizedExperiment tibble tidyr vsn]; };
-  DEScan2 = derive2 { name="DEScan2"; version="1.14.0"; sha256="1nw1id97vnfmnj7249zh29176zjyh15lx1vbkcr6kxri4x115l4x"; depends=[BiocGenerics BiocParallel ChIPpeakAnno data_table DelayedArray GenomeInfoDb GenomicAlignments GenomicRanges glue IRanges plyr Rcpp RcppArmadillo rtracklayer S4Vectors SummarizedExperiment]; };
+  DEScan2 = derive2 { name="DEScan2"; version="1.14.1"; sha256="017pxb1z1vflxcqbhc1vrdxw146rb50zgxzalpmh0njzc333v3j1"; depends=[BiocGenerics BiocParallel ChIPpeakAnno data_table DelayedArray GenomeInfoDb GenomicAlignments GenomicRanges glue IRanges plyr Rcpp RcppArmadillo rtracklayer S4Vectors SummarizedExperiment]; };
   DESeq2 = derive2 { name="DESeq2"; version="1.34.0"; sha256="0whk29zrmv9mrlc4w5ghy0fd29v8hfr8jccwgrn59mf3mkmfb2b9"; depends=[Biobase BiocGenerics BiocParallel genefilter geneplotter GenomicRanges ggplot2 IRanges locfit Rcpp RcppArmadillo S4Vectors SummarizedExperiment]; };
   DEWSeq = derive2 { name="DEWSeq"; version="1.8.0"; sha256="1ggj4in0sj9wb367s19v56f0jnfdcsylndjwpp4j02kwmc2wfl0j"; depends=[BiocGenerics BiocParallel data_table DESeq2 GenomeInfoDb GenomicRanges R_utils S4Vectors SummarizedExperiment]; };
   DEXSeq = derive2 { name="DEXSeq"; version="1.40.0"; sha256="1wd4bjd0a53s689yvb2lxzdiy0synh6ncfcly3cfw37kpdj8lds1"; depends=[AnnotationDbi Biobase BiocGenerics BiocParallel biomaRt DESeq2 genefilter geneplotter GenomicRanges hwriter IRanges RColorBrewer Rsamtools S4Vectors statmod stringr SummarizedExperiment]; };
@@ -268,7 +268,7 @@ in with self; {
   DNABarcodes = derive2 { name="DNABarcodes"; version="1.24.0"; sha256="07yaz98r18mjny1ilmfnjxcra7xpklnd183pw0kasvsri01ccwxg"; depends=[BH Matrix Rcpp]; };
   DNAcopy = derive2 { name="DNAcopy"; version="1.68.0"; sha256="19ax431i97r49gh1232vf8mgmkvc6k26lnq44j3g10n6q01czswm"; depends=[]; };
   DNAshapeR = derive2 { name="DNAshapeR"; version="1.22.0"; sha256="1ypkp03ciia9hj4hhh9dlkx4hsrivph2y3irxhyqn7wjgh6fmnnl"; depends=[Biostrings fields GenomicRanges Rcpp]; };
-  DOSE = derive2 { name="DOSE"; version="3.20.0"; sha256="0hj5hn54g8a3gj4q9200bffcy9m1mvkiwbg60ysv1hxxbpi57kmv"; depends=[AnnotationDbi BiocParallel DO_db fgsea ggplot2 GOSemSim qvalue reshape2]; };
+  DOSE = derive2 { name="DOSE"; version="3.20.1"; sha256="10kknaqz40pb6v0fcjzp12hfpi6k5kvlqnyxx1k3y0h0wdg8hs3n"; depends=[AnnotationDbi BiocParallel DO_db fgsea ggplot2 GOSemSim qvalue reshape2]; };
   DRIMSeq = derive2 { name="DRIMSeq"; version="1.22.0"; sha256="0y2jb0hb633id038zmwnfny6h4ai77fdyy02f77vha1z8xg5nl02"; depends=[BiocGenerics BiocParallel edgeR GenomicRanges ggplot2 IRanges limma MASS reshape2 S4Vectors]; };
   DSS = derive2 { name="DSS"; version="2.42.0"; sha256="1a6igpkics6lyv7cqcg4iakxrwk928ha7xv7yvn0j2yi9h2akqmi"; depends=[Biobase BiocParallel bsseq DelayedArray]; };
   DTA = derive2 { name="DTA"; version="2.40.0"; sha256="195pmjs1yhlw241ha0v8jpd1fwmgd6pp6s8bhbhjinkwplinw2g1"; depends=[LSD scatterplot3d]; };
@@ -294,7 +294,7 @@ in with self; {
   DominoEffect = derive2 { name="DominoEffect"; version="1.14.0"; sha256="13lksli177d11rw5692bc5qmp0x5bfkasriccaa28hklnqmbyjsc"; depends=[AnnotationDbi biomaRt Biostrings data_table GenomeInfoDb GenomicRanges IRanges SummarizedExperiment VariantAnnotation]; };
   Doscheda = derive2 { name="Doscheda"; version="1.16.0"; sha256="0lpmxnid43fvi41mc5r89mvvxn19baja8f4zr38j3dkb126dr476"; depends=[affy calibrate corrgram drc DT ggplot2 gridExtra httr jsonlite limma matrixStats prodlim readxl reshape2 shiny shinydashboard stringr vsn]; };
   DriverNet = derive2 { name="DriverNet"; version="1.34.0"; sha256="1qfjg5x3m2z5yjm0lgnw7rqhclic2fgzcdnq0nnwlqyp4i5na10q"; depends=[]; };
-  DropletUtils = derive2 { name="DropletUtils"; version="1.14.0"; sha256="1zi9pm0ns7w9ga9567rsbm35gyl4fpgic0fvsj5a9ppagqw7ag8z"; depends=[beachmat BH BiocGenerics BiocParallel DelayedArray DelayedMatrixStats dqrng edgeR HDF5Array Matrix R_utils Rcpp rhdf5 Rhdf5lib S4Vectors scuttle SingleCellExperiment SummarizedExperiment]; };
+  DropletUtils = derive2 { name="DropletUtils"; version="1.14.1"; sha256="1nfv5d04jzbd5nv1fazj5qchv59s4cds698r44zfw36z6v83w2d6"; depends=[beachmat BH BiocGenerics BiocParallel DelayedArray DelayedMatrixStats dqrng edgeR GenomicRanges HDF5Array IRanges Matrix R_utils Rcpp rhdf5 Rhdf5lib S4Vectors scuttle SingleCellExperiment SummarizedExperiment]; };
   DrugVsDisease = derive2 { name="DrugVsDisease"; version="2.36.0"; sha256="19plcigawh4c4z1dxn1c0kxbdnrsz2fgfyvmcnj0025xscdk4zay"; depends=[affy annotate ArrayExpress BiocGenerics biomaRt cMap2data DrugVsDiseasedata GEOquery hgu133a_db hgu133a2_db hgu133plus2_db limma qvalue RUnit xtable]; };
   Dune = derive2 { name="Dune"; version="1.6.0"; sha256="0n267fw1yna1fpg5gcilmf0ijavy2c1ry0wcccp2cdzhs77cx7fi"; depends=[aricode BiocParallel dplyr gganimate ggplot2 magrittr purrr RColorBrewer SummarizedExperiment tidyr]; };
   DynDoc = derive2 { name="DynDoc"; version="1.72.0"; sha256="1ix1kcjrmbv7hqsmihgazh7igrh13bxhgw36ibihh07sflrgf1hm"; depends=[]; };
@@ -323,7 +323,7 @@ in with self; {
   ExCluster = derive2 { name="ExCluster"; version="1.12.0"; sha256="1fmijpvkn2qjwl8cqzwclybnfqyrdckxwfc6f1zird770bqyagjv"; depends=[GenomicRanges IRanges matrixStats Rsubread rtracklayer]; };
   ExiMiR = derive2 { name="ExiMiR"; version="2.36.0"; sha256="1vf1241n6f0w7p8m8vwb30dlhybw5ddhp2bgwmn7ml6rfbkidmnk"; depends=[affy affyio Biobase limma preprocessCore]; };
   ExperimentHub = derive2 { name="ExperimentHub"; version="2.2.0"; sha256="15las4qmqvrn81hczxa3ylikqh54kp1lg9r8rcyfvrx5l0kgwlfq"; depends=[AnnotationHub BiocFileCache BiocGenerics BiocManager curl rappdirs S4Vectors]; };
-  ExperimentHubData = derive2 { name="ExperimentHubData"; version="1.20.0"; sha256="16xmsq3li7g3qvrfif6yzj5p6qmna6lqfkf1z2bn7k6bpskid3w4"; depends=[AnnotationHubData BiocGenerics BiocManager curl DBI ExperimentHub httr S4Vectors]; };
+  ExperimentHubData = derive2 { name="ExperimentHubData"; version="1.20.1"; sha256="12gnp7zh0ligpmgnd59gp6c3cdq9sz0nzzpskjkdf7kzn08mk41m"; depends=[AnnotationHubData BiocGenerics BiocManager curl DBI ExperimentHub httr S4Vectors]; };
   ExperimentSubset = derive2 { name="ExperimentSubset"; version="1.4.0"; sha256="1ccz555f5mfvii99w66f076cb22f0ksjxmq9f6bsfxjzsbc7ssnh"; depends=[Matrix S4Vectors SingleCellExperiment SpatialExperiment SummarizedExperiment TreeSummarizedExperiment]; };
   ExploreModelMatrix = derive2 { name="ExploreModelMatrix"; version="1.6.0"; sha256="162g6zfdhr6gibyqkfwk4y2fd4wmbzwx1frf8rkw6m7ny3mc7s3g"; depends=[cowplot dplyr DT ggplot2 limma magrittr MASS rintrojs S4Vectors scales shiny shinydashboard shinyjs tibble tidyr]; };
   ExpressionAtlas = derive2 { name="ExpressionAtlas"; version="1.22.0"; sha256="0y3gq8ffy527gnyhhqvwjd58a3df50b27d5fvnd37cjm36hk1sbr"; depends=[Biobase httr limma S4Vectors SummarizedExperiment XML xml2]; };
@@ -332,14 +332,14 @@ in with self; {
   FELLA = derive2 { name="FELLA"; version="1.14.0"; sha256="0xs4qky42nz80qmbnb5b925ks76xxpa5mymvrcllzzhbyax2dddc"; depends=[igraph KEGGREST Matrix plyr]; };
   FGNet = derive2 { name="FGNet"; version="3.28.0"; sha256="0mz728i1ylbhwxb41xghrl7aaz5a3s3iaysi0hl7jjmiixvscp90"; depends=[hwriter igraph plotrix png R_utils RColorBrewer reshape2 XML]; };
   FISHalyseR = derive2 { name="FISHalyseR"; version="1.28.0"; sha256="0z9wlk98xicc6bcyx11q25sxrfdiiwcx32bvp3l3xi5r99alwwlp"; depends=[abind EBImage]; };
-  FLAMES = derive2 { name="FLAMES"; version="0.99.31"; sha256="098fg6jky98y0wlrrinmjb7r4yf9s40c2kwp0xrn0z5paczj4y56"; depends=[basilisk dplyr magrittr Rcpp reticulate Rhtslib Rsamtools S4Vectors scater scuttle SingleCellExperiment SummarizedExperiment tidyr zlibbioc]; };
+  FLAMES = derive2 { name="FLAMES"; version="1.0.2"; sha256="025q9sfj3q5hgqncf61kfg90wlv7ddkqcnv1qgvsxy7cca7x1dyi"; depends=[basilisk dplyr magrittr Rcpp reticulate Rhtslib Rsamtools S4Vectors scater scuttle SingleCellExperiment SummarizedExperiment tidyr zlibbioc]; };
   FRASER = derive2 { name="FRASER"; version="1.6.0"; sha256="07xj7fznqmsc71j1s6h7g8jq8cg93hys3q20f7lja6l9032rl5rx"; depends=[AnnotationDbi BBmisc Biobase BiocGenerics BiocParallel biomaRt BSgenome cowplot data_table DelayedArray DelayedMatrixStats extraDistr generics GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 ggrepel HDF5Array IRanges matrixStats OUTRIDER pcaMethods pheatmap plotly PRROC R_utils RColorBrewer Rcpp RcppArmadillo rhdf5 Rsamtools Rsubread S4Vectors SummarizedExperiment tibble VGAM]; };
   FRGEpistasis = derive2 { name="FRGEpistasis"; version="1.30.0"; sha256="1b69g11klf2av1an1h50vz6bkpkjg4v1a2mi9lj0bmwsi7kb7j32"; depends=[fda MASS]; };
   FScanR = derive2 { name="FScanR"; version="1.4.0"; sha256="1xsbf8vxck17s1shs2gxls02wzm3qr9wy8iwr8zqk9gsm5niax4z"; depends=[]; };
   FamAgg = derive2 { name="FamAgg"; version="1.22.0"; sha256="14lldajnl8ppy3nyy5mn987mvjfgr2vpx5zp6ky8md308rvgay0k"; depends=[BiocGenerics gap igraph kinship2 Matrix survey]; };
   FastqCleaner = derive2 { name="FastqCleaner"; version="1.12.0"; sha256="1cw0916qdn1an3wcnx5659q2f22rs78p9m5v2xp9nyp5phjb97pp"; depends=[Biostrings DT htmltools IRanges Rcpp S4Vectors shiny shinyBS ShortRead]; };
   FilterFFPE = derive2 { name="FilterFFPE"; version="1.4.0"; sha256="1c9mfhc4hms2f861f71i7hbhnn3s1xlzabcmdjzybwiv16dl139w"; depends=[doParallel foreach GenomicRanges IRanges Rsamtools S4Vectors]; };
-  FindIT2 = derive2 { name="FindIT2"; version="1.0.0"; sha256="1kpxkr6qrbhk5a9lg2z0ga6lsb5s9ll9f3cglpyx35494a0d2zp6"; depends=[BiocGenerics BiocParallel dplyr GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggrepel glmnet IRanges MultiAssayExperiment patchwork progress purrr qvalue rlang rtracklayer S4Vectors stringr SummarizedExperiment tibble tidyr withr]; };
+  FindIT2 = derive2 { name="FindIT2"; version="1.0.2"; sha256="0ldrw0h9a6ba4lv9597h97b3b1h6ww8p8y8mwlwiwr4pd6hfqbdg"; depends=[BiocGenerics BiocParallel dplyr GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggrepel glmnet IRanges MultiAssayExperiment patchwork progress purrr qvalue rlang rtracklayer S4Vectors stringr SummarizedExperiment tibble tidyr withr]; };
   FindMyFriends = derive2 { name="FindMyFriends"; version="1.23.0"; sha256="0xbhl6ljxb522r5062vv6xdziaaqkkwylmvlymvc5f1grjz0a4z9"; depends=[Biobase BiocGenerics BiocParallel Biostrings digest dplyr filehash ggdendro ggplot2 gtable igraph IRanges kebabs Matrix Rcpp reshape2 S4Vectors]; };
   FitHiC = derive2 { name="FitHiC"; version="1.20.0"; sha256="0a3d2bxp98lmbf3i864zgfwxwvxyqfcrh75z9yz7ra7y44pkjr4y"; depends=[data_table fdrtool Rcpp]; };
   FlowSOM = derive2 { name="FlowSOM"; version="2.2.0"; sha256="062xrv8li2z849qa8mv5dhafqli6ziz099ikjfvi7v2fr7174p8f"; depends=[BiocGenerics colorRamps ConsensusClusterPlus CytoML dplyr flowCore flowWorkspace ggforce ggnewscale ggplot2 ggpointdensity ggpubr ggrepel igraph magrittr pheatmap RColorBrewer rlang Rtsne scattermore tidyr XML]; };
@@ -361,7 +361,7 @@ in with self; {
   GEOexplorer = derive2 { name="GEOexplorer"; version="1.0.0"; sha256="01hgjdp14b9r2044h0sd136f0px983n0il08wiii41vq1jgisvhb"; depends=[Biobase DT factoextra GEOquery ggplot2 heatmaply htmltools impute limma maptools pheatmap plotly scales shiny shinyBS shinybusy shinyHeatmaply stringr umap]; };
   GEOfastq = derive2 { name="GEOfastq"; version="1.2.0"; sha256="03ya7x7dph6g97aa3gf3d7dinjcy8qipd0dyxqpdhdm1w1gx83by"; depends=[doParallel foreach plyr RCurl rvest stringr xml2]; };
   GEOmetadb = derive2 { name="GEOmetadb"; version="1.56.0"; sha256="18v3h7518cc4fzdi7ivng81316012mry4ihyrldm85zgm4c5dign"; depends=[GEOquery RSQLite]; };
-  GEOquery = derive2 { name="GEOquery"; version="2.62.0"; sha256="0fkx4jh1s76l015vwikkryarlx6iihb1z935nzpdhah3rpqx3b3z"; depends=[Biobase data_table dplyr httr limma magrittr readr tidyr xml2]; };
+  GEOquery = derive2 { name="GEOquery"; version="2.62.1"; sha256="0plmh4x37r848g6ilvl1x8cim90rp85gikfc5m8lgi2i4xkq7hbq"; depends=[Biobase data_table dplyr httr limma magrittr R_utils readr tidyr xml2]; };
   GEOsubmission = derive2 { name="GEOsubmission"; version="1.46.0"; sha256="0p0w55j7ij1242sa76bhgqwnj5zi0bh7s7qa14iga4ldigpxr63b"; depends=[affy Biobase]; };
   GEWIST = derive2 { name="GEWIST"; version="1.38.0"; sha256="0xcywidrs6jvps93iv3qvr9ai1bdzn95icvswy8ganx09v5hfpy9"; depends=[car]; };
   GGPA = derive2 { name="GGPA"; version="1.6.0"; sha256="0spiix8vlncrc2h1chmkfz8k79lpvq3qya33yyg7avf8dqdqaw31"; depends=[GGally matrixStats network Rcpp RcppArmadillo scales sna]; };
@@ -422,7 +422,7 @@ in with self; {
   GenomicFiles = derive2 { name="GenomicFiles"; version="1.30.0"; sha256="0i5y6dk6z18yqj5k4zy756c6l57z9jq2w5a5dksh2di4qgdgjx3x"; depends=[BiocGenerics BiocParallel GenomeInfoDb GenomicAlignments GenomicRanges IRanges MatrixGenerics Rsamtools rtracklayer S4Vectors SummarizedExperiment VariantAnnotation]; };
   GenomicInteractions = derive2 { name="GenomicInteractions"; version="1.28.0"; sha256="090kxq5jn1jfr9fgbkvbjr5g4bcxzgsaal3gc9yx1n7pgmhccfmb"; depends=[Biobase BiocGenerics data_table dplyr GenomeInfoDb GenomicRanges ggplot2 gridExtra Gviz igraph InteractionSet IRanges Rsamtools rtracklayer S4Vectors stringr]; };
   GenomicOZone = derive2 { name="GenomicOZone"; version="1.8.0"; sha256="1dx72y7kmj7ng3r6qn9bzlmgq9pf7g738myhgrnmk4ivjl6f615w"; depends=[biomaRt Ckmeans_1d_dp GenomeInfoDb GenomicRanges ggbio ggplot2 gridExtra IRanges lsr plyr Rdpack S4Vectors]; };
-  GenomicRanges = derive2 { name="GenomicRanges"; version="1.46.0"; sha256="03fdmzcf8h17ksa3byc3k5mxc65pqrbcnw00myz1q53l01p3cnf2"; depends=[BiocGenerics GenomeInfoDb IRanges S4Vectors XVector]; };
+  GenomicRanges = derive2 { name="GenomicRanges"; version="1.46.1"; sha256="133r27wsdyppjv9kq0d2xamx007lkf416nnlaygs4hs3a76p9xwx"; depends=[BiocGenerics GenomeInfoDb IRanges S4Vectors XVector]; };
   GenomicScores = derive2 { name="GenomicScores"; version="2.6.0"; sha256="18fzi2qi95851ci7qrzwpb7v6fhwp6xi1d1vk11xbygpbvql5mls"; depends=[AnnotationHub Biobase BiocFileCache BiocGenerics BiocManager Biostrings DelayedArray GenomeInfoDb GenomicRanges HDF5Array IRanges rhdf5 S4Vectors XML]; };
   GenomicSuperSignature = derive2 { name="GenomicSuperSignature"; version="1.2.0"; sha256="0nqzrv3871ywd3p3wpgq3yhmbdqcy27582kmms9mnl8xylyhmw0i"; depends=[Biobase BiocFileCache ComplexHeatmap dplyr flextable ggplot2 ggpubr plotly S4Vectors SummarizedExperiment]; };
   GenomicTuples = derive2 { name="GenomicTuples"; version="1.28.0"; sha256="15rv41z4mxj8nn1mkvs73warygd1cmwi9m7lshgld1wf6zk43ypl"; depends=[BiocGenerics data_table GenomeInfoDb GenomicRanges IRanges Rcpp S4Vectors]; };
@@ -438,7 +438,7 @@ in with self; {
   GreyListChIP = derive2 { name="GreyListChIP"; version="1.26.0"; sha256="1h7h27q6l9d8j0shklyrh135zrwx56v4zzmm21cj1b7dvmwvpbcv"; depends=[BSgenome GenomeInfoDb GenomicAlignments GenomicRanges MASS Rsamtools rtracklayer SummarizedExperiment]; };
   Guitar = derive2 { name="Guitar"; version="2.10.0"; sha256="082yja4mmsq77sllv3c88agxjbb6jxwil2krb8fkfsijvyyx11c9"; depends=[AnnotationDbi dplyr GenomicFeatures GenomicRanges ggplot2 knitr magrittr rtracklayer]; };
   Gviz = derive2 { name="Gviz"; version="1.38.0"; sha256="0nqa7m300d7gpsayb6c6rv64d3y8c390wvwgz7v29zs9c025s9a8"; depends=[AnnotationDbi Biobase BiocGenerics biomaRt Biostrings biovizBase BSgenome digest ensembldb GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges lattice latticeExtra matrixStats RColorBrewer Rsamtools rtracklayer S4Vectors XVector]; };
-  HDF5Array = derive2 { name="HDF5Array"; version="1.22.0"; sha256="13h6qr4zkynir0ck2aiasjvlid7hrk3m2lzkjyhpvbg1a15r8zi9"; depends=[BiocGenerics DelayedArray IRanges Matrix rhdf5 rhdf5filters Rhdf5lib S4Vectors]; };
+  HDF5Array = derive2 { name="HDF5Array"; version="1.22.1"; sha256="1al4a88pgdl7hfhphsnwl1gg1c1kmw37wcdr4v4pfsw5l8ff7nx4"; depends=[BiocGenerics DelayedArray IRanges Matrix rhdf5 rhdf5filters Rhdf5lib S4Vectors]; };
   HDTD = derive2 { name="HDTD"; version="1.28.0"; sha256="1pd0bbni121b5yq3j3sn8n67xgjfm4zygcpx7zgddcnq250544vl"; depends=[Rcpp RcppArmadillo]; };
   HELP = derive2 { name="HELP"; version="1.52.0"; sha256="17bhh9phny0cw3n61582wywl395ls0ak68y8fqv1ibbqiip193ag"; depends=[Biobase]; };
   HEM = derive2 { name="HEM"; version="1.66.0"; sha256="1jv8fwqsk05g7l7bbl7z928m83gk0gw70pix0dp901j9hm1xqjpb"; depends=[Biobase]; };
@@ -447,7 +447,7 @@ in with self; {
   HIPPO = derive2 { name="HIPPO"; version="1.6.0"; sha256="0fr1zhavdzf7rmf0diy4r9qphfcphzbcqcs4370fyd4vyz5bid6l"; depends=[dplyr ggplot2 ggrepel gridExtra irlba magrittr Matrix reshape2 rlang Rtsne SingleCellExperiment umap]; };
   HIREewas = derive2 { name="HIREewas"; version="1.12.0"; sha256="0bjj5h9vc1fhzcn31hvkpcmnx6gzmz3fhczgy21q0ngp26ny10yd"; depends=[gplots quadprog]; };
   HMMcopy = derive2 { name="HMMcopy"; version="1.36.0"; sha256="0kbvdsvvrrzy05a5qiybc9chjfiidcz5mk09nj9s2x6vsj2whwxi"; depends=[data_table]; };
-  HPAStainR = derive2 { name="HPAStainR"; version="1.4.0"; sha256="1k2q2cj8lbcqdqm7rg9kkj786gvp1h91v7k78syxpsl8mmg58msr"; depends=[data_table dplyr scales shiny stringr tibble tidyr]; };
+  HPAStainR = derive2 { name="HPAStainR"; version="1.4.1"; sha256="13q2kqbwv3a3qczq0ffr9l4wnkzwkqhq1v33z1948pj4nlx7kd1s"; depends=[data_table dplyr scales shiny stringr tibble tidyr]; };
   HPAanalyze = derive2 { name="HPAanalyze"; version="1.12.0"; sha256="1cm64d8sp2z03s5i6i8a625wr80nw5c1ri7kfrx5jv60379srbz9"; depends=[dplyr ggplot2 gridExtra openxlsx tibble xml2]; };
   HPiP = derive2 { name="HPiP"; version="1.0.0"; sha256="0wfyy4lpv24zad30qngicvrg1yaz9xzx8n48fgcafwps09n8ai25"; depends=[caret corrplot dplyr ggplot2 httr igraph magrittr pROC protr PRROC purrr readr stringr tibble tidyr]; };
   HTSFilter = derive2 { name="HTSFilter"; version="1.34.0"; sha256="0jc2yxx0jysd1h2qnn3mv3zfm8bxc96wig6gywlqxy5rbcrm3gm5"; depends=[Biobase BiocParallel DESeq2 edgeR]; };
@@ -466,7 +466,7 @@ in with self; {
   HilbertCurve = derive2 { name="HilbertCurve"; version="1.24.0"; sha256="1i6fm91y6dza021d5qc8s03x7qmalmm9bkmcj5rflbra5i6fzivz"; depends=[circlize GenomicRanges HilbertVis IRanges png polylabelr]; };
   HilbertVis = derive2 { name="HilbertVis"; version="1.52.0"; sha256="1vwyzxdjngi1firr8kasiam576kwvlx82g1p7j27vlbs1libr9zk"; depends=[lattice]; };
   HilbertVisGUI = derive2 { name="HilbertVisGUI"; version="1.52.0"; sha256="0db7chajaghg6wqawap05ckaadgxvcswzd14i4p6gmfq6j4zpk8g"; depends=[HilbertVis]; };
-  HubPub = derive2 { name="HubPub"; version="1.2.0"; sha256="0jjncy9g1cq2n0cf5r7i4sh7sqygvjdm0gpdswhv8s78hdczyq05"; depends=[available aws_s3 BiocManager biocthis dplyr fs usethis]; };
+  HubPub = derive2 { name="HubPub"; version="1.2.2"; sha256="1gmgvallb60jw0wy7lbcy8fv96fbjqkf6brvj2qjin5lwxs053yy"; depends=[available aws_s3 BiocManager biocthis dplyr fs usethis]; };
   HumanTranscriptomeCompendium = derive2 { name="HumanTranscriptomeCompendium"; version="1.10.0"; sha256="0v0yshvay7z1dalilx4w1jnswrr96gmsm71srh0j1q91f7ikwds9"; depends=[S4Vectors shiny ssrch SummarizedExperiment]; };
   HybridMTest = derive2 { name="HybridMTest"; version="1.38.0"; sha256="1p31y61gjii29pllwpyb27ii96ckkd4v78pddnvz9c8fq61bmk6k"; depends=[Biobase fdrtool MASS survival]; };
   IHW = derive2 { name="IHW"; version="1.22.0"; sha256="0vgij5zyaw3fh7arkg4jy1mizsqzbkcsjl05mh3ng2bqh30kyqqx"; depends=[BiocGenerics fdrtool lpsymphony slam]; };
@@ -575,12 +575,12 @@ in with self; {
   MSGFplus = derive2 { name="MSGFplus"; version="1.28.0"; sha256="1k0qm049gk4gjhd88zhxxrpc944r7ndq8dys08ai2kbaqignvb7y"; depends=[mzID ProtGenerics]; };
   MSPrep = derive2 { name="MSPrep"; version="1.4.0"; sha256="0nkmmjzkdxizk2yv1ahgsp8zsr4jjazpzqqwcsx86dhrgf5jk5cz"; depends=[crmn ddpcr dplyr magrittr missForest pcaMethods preprocessCore rlang S4Vectors stringr SummarizedExperiment sva tibble tidyr VIM]; };
   MSnID = derive2 { name="MSnID"; version="1.28.0"; sha256="0dks5h3vp9ly8x24px2rl5blqicxybpxjnxvg2p1bwq8zvjkm38p"; depends=[AnnotationDbi AnnotationHub Biobase BiocGenerics BiocStyle Biostrings data_table doParallel dplyr foreach ggplot2 iterators msmsTests MSnbase mzID mzR ProtGenerics purrr R_cache Rcpp reshape2 rlang RUnit stringr tibble xtable]; };
-  MSnbase = derive2 { name="MSnbase"; version="2.20.0"; sha256="1r5igzb7xb5qcw37ffy0c3j6vlg9zffmksrc57rs1pmfnca773z5"; depends=[affy Biobase BiocGenerics BiocParallel digest ggplot2 impute IRanges lattice MALDIquant MASS MsCoreUtils mzID mzR pcaMethods plyr ProtGenerics Rcpp S4Vectors scales vsn XML]; };
+  MSnbase = derive2 { name="MSnbase"; version="2.20.1"; sha256="0ip614mdwisz2hlmyfgngysq1s3hajb88cgdmygfc8i6kyxjkjzl"; depends=[affy Biobase BiocGenerics BiocParallel digest ggplot2 impute IRanges lattice MALDIquant MASS MsCoreUtils mzID mzR pcaMethods plyr ProtGenerics Rcpp S4Vectors scales vsn XML]; };
   MSstats = derive2 { name="MSstats"; version="4.2.0"; sha256="1i36a0vhqb2sjllyh6ascfm5fbzf8awazbk1vjq5n8mh2cq72ri9"; depends=[checkmate data_table ggplot2 ggrepel gplots limma lme4 marray MASS MSstatsConvert preprocessCore Rcpp RcppArmadillo survival]; };
   MSstatsConvert = derive2 { name="MSstatsConvert"; version="1.4.0"; sha256="0p44g7kv2zyknmiki94w0v4zq1qpa2ly17hbfqkfy9c1xql7b38g"; depends=[checkmate data_table log4r stringi]; };
   MSstatsLOBD = derive2 { name="MSstatsLOBD"; version="1.2.0"; sha256="0d78hd9ip2amkj5pjmwy376qhzfd46wqmzl38rbm52d946c69sb8"; depends=[ggplot2 minpack_lm Rcpp]; };
   MSstatsLiP = derive2 { name="MSstatsLiP"; version="1.0.0"; sha256="1vf3f3yd9sgaqs9asq1x2819wkj2x68086g8hag1ln6q7q5j0xws"; depends=[Biostrings checkmate data_table dplyr factoextra ggplot2 ggpubr gridExtra MSstats MSstatsConvert MSstatsPTM purrr Rcpp scales stringr tibble tidyr tidyverse]; };
-  MSstatsPTM = derive2 { name="MSstatsPTM"; version="1.4.0"; sha256="0sizx0001gh609fpi5ivq1pa49sprasbsh39kplcybcidq20qcj7"; depends=[Biostrings checkmate data_table dplyr ggplot2 ggrepel gridExtra MSstats MSstatsConvert MSstatsTMT Rcpp stringr]; };
+  MSstatsPTM = derive2 { name="MSstatsPTM"; version="1.4.1"; sha256="0fwriw5hzp0j22c1awv332yb0qazv9w60cgc8j19djzwmsprwvaj"; depends=[Biostrings checkmate data_table dplyr ggplot2 ggrepel gridExtra MSstats MSstatsConvert MSstatsTMT Rcpp stringr]; };
   MSstatsQC = derive2 { name="MSstatsQC"; version="2.12.0"; sha256="087lr0maf5kpl642kvvkd9pyakqxy152rzhvrlaj0rxbrfqgxnsw"; depends=[dplyr ggExtra ggplot2 MSnbase plotly qcmetrics]; };
   MSstatsQCgui = derive2 { name="MSstatsQCgui"; version="1.14.0"; sha256="0ygw1zrq219grfy6h650icai9khx49fvdbby5cyydrqbp8m64w77"; depends=[dplyr ggExtra gridExtra MSstatsQC plotly shiny]; };
   MSstatsSampleSize = derive2 { name="MSstatsSampleSize"; version="1.8.0"; sha256="0ckdy0qy2s2rvh4ijdddkk9calf1s9s0hr52y0kpgr4mb5zrl0jp"; depends=[BiocParallel caret ggplot2 gridExtra MSstats reshape2]; };
@@ -621,13 +621,14 @@ in with self; {
   MiPP = derive2 { name="MiPP"; version="1.66.0"; sha256="1m42rv20f9cwnr97ckx4lm193zf0kjr2v33fisymyaq5rrl7ppfn"; depends=[Biobase e1071 MASS]; };
   MiRaGE = derive2 { name="MiRaGE"; version="1.36.0"; sha256="10laq0b1acsirykb5cjxlpj91lqvmhsd3ammk331njaaczh4mjrx"; depends=[AnnotationDbi Biobase BiocGenerics BiocManager S4Vectors]; };
   MicrobiomeProfiler = derive2 { name="MicrobiomeProfiler"; version="1.0.0"; sha256="13awswgm1n30fy73xxlph5aay8a4nkb1gjjzhqy9w7djpm99nw8g"; depends=[clusterProfiler config DT enrichplot ggplot2 golem htmltools magrittr shiny shinycustomloader shinyWidgets]; };
-  MicrobiotaProcess = derive2 { name="MicrobiotaProcess"; version="1.6.0"; sha256="1wzr98fzrby12v6843f7l1dc0xcsbg9f1lkdg85qkv9j4c6aji52"; depends=[ape Biostrings coin dplyr foreach ggplot2 ggrepel ggsignif ggstar ggtree magrittr MASS patchwork rlang SummarizedExperiment tibble tidyr tidyselect tidytree treeio vegan zoo]; };
+  MicrobiotaProcess = derive2 { name="MicrobiotaProcess"; version="1.6.2"; sha256="093gxp93h1f4h4rkmpwp77awa35imjxgnrvw01xm65mnxsdm47db"; depends=[ape Biostrings coin dplyr dtplyr foreach ggplot2 ggrepel ggsignif ggstar ggtree ggtreeExtra magrittr MASS patchwork pillar rlang SummarizedExperiment tibble tidyr tidyselect tidytree treeio vegan zoo]; };
   MineICA = derive2 { name="MineICA"; version="1.34.0"; sha256="00pbhbz44dx5gfzzf1drwny4a779zxk4hjavb1fkpg15cm7c152x"; depends=[annotate AnnotationDbi Biobase BiocGenerics biomaRt cluster colorspace fastICA foreach fpc ggplot2 GOstats graph gtools Hmisc igraph JADE lumi lumiHumanAll_db marray mclust plyr RColorBrewer Rgraphviz scales xtable]; };
   MinimumDistance = derive2 { name="MinimumDistance"; version="1.38.0"; sha256="077prww1k374czkd8dlpy081ki101vpl2gpi4dmjbzzq5q45ld7f"; depends=[Biobase BiocGenerics data_table DNAcopy ff foreach GenomeInfoDb GenomicRanges IRanges lattice MatrixGenerics matrixStats oligoClasses S4Vectors SummarizedExperiment VanillaICE]; };
   ModCon = derive2 { name="ModCon"; version="1.2.0"; sha256="1pgvkscvsacm7ag6yyqlpxs6c5vyb3hlmk6gzkiarsc1b29iqhm4"; depends=[data_table]; };
   Modstrings = derive2 { name="Modstrings"; version="1.10.0"; sha256="0lnfvv8k0ffpf72zvhxy6831mgr4gajd4miad8rjzaajhqndr2yf"; depends=[BiocGenerics Biostrings crayon GenomicRanges IRanges S4Vectors stringi stringr XVector]; };
   MoonlightR = derive2 { name="MoonlightR"; version="1.19.0"; sha256="1bfp6cx4nmb821ww9bxxg2cfh87blwddrdjixpgb4aqzwizmhzhv"; depends=[Biobase circlize clusterProfiler doParallel DOSE foreach GEOquery gplots HiveR limma parmigene randomForest RColorBrewer RISmed SummarizedExperiment TCGAbiolinks]; };
   MotifDb = derive2 { name="MotifDb"; version="1.36.0"; sha256="0a2zg26zzk7bj5c33mbwl8dx9lh1hns8q8kwp09rbfjdichv7425"; depends=[BiocGenerics Biostrings GenomicRanges IRanges rtracklayer S4Vectors splitstackshape]; };
+  MouseFM = derive2 { name="MouseFM"; version="1.4.1"; sha256="1b80syai2wj9xg3ivxnjqkb1nwkfwmkrm40j7g085fdmdd2r08q1"; depends=[biomaRt curl data_table dplyr GenomeInfoDb GenomicRanges ggplot2 gtools httr IRanges jsonlite reshape2 rlist scales tidyr]; };
   MsBackendMassbank = derive2 { name="MsBackendMassbank"; version="1.2.0"; sha256="10dgck0rwzfxzlbdf8fclrci6858iqbl9g690fva4zsjllzykbl5"; depends=[BiocParallel DBI IRanges MsCoreUtils ProtGenerics S4Vectors Spectra]; };
   MsBackendMgf = derive2 { name="MsBackendMgf"; version="1.2.0"; sha256="0p7lmiijxgms01qsrgih9r8y5q355w67nqmpj5l70c0b52cv3ri9"; depends=[BiocParallel IRanges MsCoreUtils S4Vectors Spectra]; };
   MsBackendRawFileReader = derive2 { name="MsBackendRawFileReader"; version="1.0.0"; sha256="0gg71a5y6m46xnm45cmkjqbss4c416v8k8s21yp3qids7zc36izi"; depends=[BiocParallel IRanges MsCoreUtils rawrr S4Vectors Spectra]; };
@@ -670,7 +671,7 @@ in with self; {
   OMICsPCA = derive2 { name="OMICsPCA"; version="1.12.0"; sha256="0d5hplm94k7hz6lap31jsb5pdh8lb7xl9i0swznm5vzrxrjdifyd"; depends=[cluster clValid corrplot cowplot data_table factoextra FactoMineR fpc GenomeInfoDb ggplot2 HelloRanges IRanges kableExtra magick MASS MultiAssayExperiment NbClust OMICsPCAdata pdftools PerformanceAnalytics reshape2 rgl rmarkdown rtracklayer tidyr]; };
   OPWeight = derive2 { name="OPWeight"; version="1.16.0"; sha256="1zkbhb70aam3g1arfb8bc8z4c4bd1qyr1zidz6srx1n25pkhp4ii"; depends=[MASS qvalue tibble]; };
   ORFhunteR = derive2 { name="ORFhunteR"; version="1.2.0"; sha256="0jkpq3hiv6n5c4hy3khs59020p98ig91w78ab37jam3sibykr0c6"; depends=[Biostrings BSgenome_Hsapiens_UCSC_hg38 data_table Peptides randomForest Rcpp rtracklayer stringr xfun]; };
-  ORFik = derive2 { name="ORFik"; version="1.13.14"; sha256="0m7hf3a7bwz5yawl364c68g31q0syi03vlga0hhgy2hm9f3g0ips"; depends=[AnnotationDbi BiocGenerics BiocParallel biomartr Biostrings BSgenome cowplot data_table DESeq2 fst GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges GGally ggplot2 gridExtra httr IRanges R_utils Rcpp Rsamtools rtracklayer S4Vectors SummarizedExperiment xml2]; };
+  ORFik = derive2 { name="ORFik"; version="1.14.5"; sha256="11whi2irq947hpz1w9d9spl8dm8m022x9brcr82n9hx71bkxzh4v"; depends=[AnnotationDbi BiocGenerics BiocParallel biomartr Biostrings BSgenome cowplot data_table DESeq2 fst GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges GGally ggplot2 gridExtra httr IRanges R_utils Rcpp Rsamtools rtracklayer S4Vectors SummarizedExperiment xml2]; };
   OSAT = derive2 { name="OSAT"; version="1.42.0"; sha256="1ibhrrlfjjils0w6n586s5ws0ybv7ija2p2f0jq3m3m9l324iyx9"; depends=[]; };
   OTUbase = derive2 { name="OTUbase"; version="1.44.0"; sha256="18wmllkc3h8x9ihrg0lzk4jvxjwrccl1jr37inkdmzv4aq5b7ygs"; depends=[Biobase Biostrings IRanges S4Vectors ShortRead vegan]; };
   OUTRIDER = derive2 { name="OUTRIDER"; version="1.12.0"; sha256="0ygsk0q1n8h02y4x3ccajkyyryn8gq0dz397l3jryb248g564a4h"; depends=[BBmisc BiocGenerics BiocParallel data_table DESeq2 generics GenomicFeatures GenomicRanges ggplot2 heatmaply IRanges matrixStats pcaMethods pheatmap plotly plyr PRROC RColorBrewer Rcpp RcppArmadillo reshape2 S4Vectors scales SummarizedExperiment]; };
@@ -703,7 +704,7 @@ in with self; {
   PLPE = derive2 { name="PLPE"; version="1.54.0"; sha256="1njzm736b6lvh34hh58zbdm1ixgwmjk58dr916sda5d15bbpgqrf"; depends=[Biobase LPE MASS]; };
   POMA = derive2 { name="POMA"; version="1.4.0"; sha256="11ihqijqys6yd2ns99892dyi677v1d5vv10w99n0ka1821i9jcsb"; depends=[broom caret clisymbols ComplexHeatmap crayon dplyr e1071 ggcorrplot ggplot2 ggraph ggrepel glasso glmnet impute knitr limma magrittr mixOmics MSnbase patchwork qpdf randomForest RankProd rmarkdown tibble tidyr vegan]; };
   POWSC = derive2 { name="POWSC"; version="1.2.0"; sha256="159m2ds42dnvx9f2w2g9y4avjwq6n2fm4fq7v6rbyynf8hp4hwnw"; depends=[Biobase ggplot2 limma MAST pheatmap RColorBrewer SingleCellExperiment SummarizedExperiment]; };
-  PPInfer = derive2 { name="PPInfer"; version="1.20.0"; sha256="06saafcy5n9h9dg95q64i1cv7hpbpv7r13fj9y8pyc6gqy6bicq4"; depends=[biomaRt fgsea ggplot2 igraph kernlab STRINGdb yeastExpData]; };
+  PPInfer = derive2 { name="PPInfer"; version="1.20.3"; sha256="190rxfhwps19260wm51gyzk0ih8mi53drp6jq0jz5vldi0mr63si"; depends=[biomaRt fgsea ggplot2 httr igraph kernlab STRINGdb yeastExpData]; };
   PREDA = derive2 { name="PREDA"; version="1.40.0"; sha256="0435857cg30410w1iqpqd15nwn9x43axw0n2w6pv2jwcxdn58gjj"; depends=[annotate Biobase lokern multtest]; };
   PROMISE = derive2 { name="PROMISE"; version="1.46.0"; sha256="1pajvwr89jh7nn2myv5y24xk2k1vl6zs52lrla70v25xxhpmwwkk"; depends=[Biobase GSEABase]; };
   PROPER = derive2 { name="PROPER"; version="1.26.0"; sha256="19rn1vad18sfdwgnyh9fv5hh70h4pvsy32rac393hd39wqqhmsl0"; depends=[edgeR]; };
@@ -731,7 +732,7 @@ in with self; {
   PoTRA = derive2 { name="PoTRA"; version="1.10.0"; sha256="0qqr9mjqhfk76pnpzd0hzxw180swqr9b1dhakj65lha5mha4vgid"; depends=[BiocGenerics graph graphite igraph org_Hs_eg_db]; };
   PrInCE = derive2 { name="PrInCE"; version="1.10.0"; sha256="09fvk96zxj0bglbs8kgnbg3xxri2pial14g4kcsynaac0m2lmdyk"; depends=[Biobase dplyr forecast Hmisc LiblineaR magrittr MSnbase naivebayes progress purrr ranger Rdpack robustbase speedglm tester tidyr]; };
   PrecisionTrialDrawer = derive2 { name="PrecisionTrialDrawer"; version="1.10.0"; sha256="1zr1jpbnjjrgrbm99n8182akp7xg75bf54gy0wc66r7dxj4vivfl"; depends=[BiocParallel biomaRt brglm cgdsr data_table DT GenomicRanges ggplot2 ggrepel googleVis httr IRanges jsonlite LowMACAAnnotation magrittr matrixStats RColorBrewer reshape2 S4Vectors shiny shinyBS stringr XML]; };
-  Prostar = derive2 { name="Prostar"; version="1.26.0"; sha256="054ify5nv3cr1zy1ijnbvvnc9nwam5vqmfyl784pckf9igywb8gb"; depends=[BiocManager colourpicker DAPAR DAPARdata data_table DT future highcharter htmlwidgets later promises R_utils rclipboard rhandsontable sass shiny shinyAce shinyBS shinycssloaders shinyjqui shinyjs shinythemes shinyTree shinyWidgets tibble webshot XML]; };
+  Prostar = derive2 { name="Prostar"; version="1.26.1"; sha256="1w5jxidyrjiy9ag5wdvvnz6ld5ksjxi4kci2fwrls8g5wmbh2qgp"; depends=[BiocManager colourpicker DAPAR DAPARdata data_table DT future highcharter htmlwidgets later promises R_utils rclipboard rhandsontable sass shiny shinyAce shinyBS shinycssloaders shinyjqui shinyjs shinythemes shinyTree shinyWidgets tibble webshot XML]; };
   ProtGenerics = derive2 { name="ProtGenerics"; version="1.26.0"; sha256="0x53pk7h47gjza1q5pz7jb1qqhwa9z2rr5fr61qc92zl3mqk57m0"; depends=[]; };
   ProteoDisco = derive2 { name="ProteoDisco"; version="1.0.0"; sha256="14rizjlwf87qhi929b4vafjzvx7p112bsq0zb2wppxh3m7izs4zp"; depends=[BiocGenerics BiocParallel Biostrings checkmate cleaver dplyr GenomeInfoDb GenomicFeatures GenomicRanges IRanges ParallelLogger plyr rlang S4Vectors tibble tidyr VariantAnnotation XVector]; };
   ProteoMM = derive2 { name="ProteoMM"; version="1.12.0"; sha256="1y7w6rs11kclh5nipnrh02ny12bgf2rkb2dghqcybl80s6r8m6bm"; depends=[biomaRt gdata ggplot2 ggrepel gtools matrixStats]; };
@@ -757,18 +758,18 @@ in with self; {
   RCASPAR = derive2 { name="RCASPAR"; version="1.40.0"; sha256="0iw17mh880x1pjqs5ffjlc8xicy8qrks8yigb1aiyn4xd00ihf1s"; depends=[]; };
   RCM = derive2 { name="RCM"; version="1.10.0"; sha256="082qnzy5q3k5g2qazralj4jwhrdxm1y9xc8dxry5d4l6l6vf77wp"; depends=[alabama edgeR ggplot2 MASS nleqslv phyloseq RColorBrewer reshape2 tensor tseries VGAM]; };
   RCSL = derive2 { name="RCSL"; version="1.2.0"; sha256="01v45b42g0gvhz6h0p1j4865l2cm185ai40bf1fcvjd8747850h4"; depends=[ggplot2 igraph NbClust pracma RcppAnnoy Rtsne umap]; };
-  RCy3 = derive2 { name="RCy3"; version="2.14.0"; sha256="17jkwbg4ap6nb404hhdaqsy3ixsv8kfvap5m1qdmijw8ip8g64wq"; depends=[base64enc base64url BiocGenerics fs glue graph httr IRdisplay IRkernel RColorBrewer RCurl RJSONIO uchardet uuid XML]; };
+  RCy3 = derive2 { name="RCy3"; version="2.14.1"; sha256="1avfplsg0pl6naxbwvwl3r29idq57r6vpiqnhbzfvj28hra4gdqi"; depends=[base64enc base64url BiocGenerics fs glue graph httr IRdisplay IRkernel RColorBrewer RCurl RJSONIO uchardet uuid XML]; };
   RCyjs = derive2 { name="RCyjs"; version="2.16.0"; sha256="1xb98gyf847sy5ijv2ka1vsvz64n6fi356qmcgm4k1qhz1jizm6z"; depends=[base64enc BiocGenerics BrowserViz graph httpuv]; };
   RDRToolbox = derive2 { name="RDRToolbox"; version="1.44.0"; sha256="1mlfzvn6imnkj2mrma6nr5cm0qdxjca7vy6hlaidicvwn3jz4129"; depends=[MASS rgl]; };
   REBET = derive2 { name="REBET"; version="1.12.0"; sha256="19hsykk770jyrvd5lbaybggs4j1f1rnrbcq2mb0cz8w288lh4i5p"; depends=[ASSET]; };
   REDseq = derive2 { name="REDseq"; version="1.40.0"; sha256="106dx160nzjlxfg76v9g7f1rjpiwfrsab7639x94s62v2g51x5l4"; depends=[AnnotationDbi BiocGenerics Biostrings BSgenome BSgenome_Celegans_UCSC_ce2 ChIPpeakAnno IRanges multtest]; };
   REMP = derive2 { name="REMP"; version="1.18.0"; sha256="0n3ymwgq2bfix6qjgakib08hs0dw2cq838l79d3db3dxjaix8rs2"; depends=[AnnotationHub BiocGenerics BiocParallel Biostrings BSgenome caret doParallel foreach GenomeInfoDb GenomicRanges impute IRanges iterators kernlab minfi org_Hs_eg_db ranger readr rtracklayer S4Vectors settings SummarizedExperiment]; };
-  RGMQL = derive2 { name="RGMQL"; version="1.14.0"; sha256="1ywmgqlzhjiv5hygq9lknahm94wz6xfxnc7wdpkaw4vri9lsdr3h"; depends=[BiocGenerics data_table dplyr GenomicRanges glue httr plyr RGMQLlib rJava rtracklayer S4Vectors xml2]; };
+  RGMQL = derive2 { name="RGMQL"; version="1.14.1"; sha256="11s4hswxg180w1i92ps0fr0jfw956hpdbaimwrrzmvvlc4s3qwhq"; depends=[BiocGenerics data_table dplyr GenomicRanges glue httr plyr RGMQLlib rJava rtracklayer S4Vectors xml2]; };
   RGSEA = derive2 { name="RGSEA"; version="1.28.0"; sha256="1bv8kg3npac1qlrj6mpx6f89avjqfp937w99f7iw60yqin8psa89"; depends=[BiocGenerics]; };
   RGalaxy = derive2 { name="RGalaxy"; version="1.37.1"; sha256="093dqjgsz4x4gw6wdbdbyjq3jazn64g7gndld0bxm4yw8ijg2s2x"; depends=[Biobase BiocGenerics optparse roxygen2 XML]; };
   RGraph2js = derive2 { name="RGraph2js"; version="1.22.0"; sha256="16pim49wls085ahaqac26ah7mx2a6ww9gf7s1rdsikr56xcnkzsb"; depends=[digest graph rjson whisker]; };
   RIPAT = derive2 { name="RIPAT"; version="1.4.0"; sha256="1kkavimbx8nq7qnddj363kvsv08sckk8j136xlh48fma0r8h3n43"; depends=[biomaRt GenomicRanges ggplot2 IRanges karyoploteR openxlsx plyr regioneR rtracklayer stringr]; };
-  RITAN = derive2 { name="RITAN"; version="1.17.0"; sha256="02xp9f0kz443k98r3ncj67wqiipdl5iww9kbkdg9mxgwnahvbff9"; depends=[BgeeDB dynamicTreeCut ggplot2 gplots gridExtra gsubfn hash igraph knitr linkcomm MCL plotrix png RColorBrewer reshape2 RITANdata sqldf STRINGdb]; };
+  RITAN = derive2 { name="RITAN"; version="1.18.0"; sha256="0x7k4lyww6d6hz0x9f8bqygcmga6ymsfyqp5cn9pmsbc4wig1kbm"; depends=[BgeeDB dynamicTreeCut ggplot2 gplots gridExtra gsubfn hash igraph knitr linkcomm MCL plotrix png RColorBrewer reshape2 RITANdata sqldf STRINGdb]; };
   RIVER = derive2 { name="RIVER"; version="1.18.0"; sha256="141qk3bl9ksc3sxpdfja8siw22njmdaic4zap1pm9nk6gssd9g1c"; depends=[Biobase ggplot2 glmnet pROC]; };
   RImmPort = derive2 { name="RImmPort"; version="1.22.0"; sha256="0fm29zlj8qllqi02h20l4ipf9ppqmajkk9mc9zr4nbx6pspxmk4q"; depends=[data_table DBI dplyr plyr reshape2 RSQLite sqldf]; };
   RJMCMCNucleosomes = derive2 { name="RJMCMCNucleosomes"; version="1.18.0"; sha256="0k4dk8m1pmgflyrwa8szkbfwqqrz8b0xnnf1df200npyrw49mb22"; depends=[BiocGenerics BiocParallel consensusSeekeR GenomeInfoDb GenomicRanges IRanges Rcpp S4Vectors]; };
@@ -849,23 +850,23 @@ in with self; {
   Rmagpie = derive2 { name="Rmagpie"; version="1.50.0"; sha256="0yn1v4z25ifb00xg3mp0ajskv8502yl317pj2j04ax62qny95ykg"; depends=[Biobase e1071 kernlab pamr]; };
   RmiR = derive2 { name="RmiR"; version="1.49.0"; sha256="16nwh4a97qvyicm4f102xs52lx8cld0b80fykgil86kkd6v8zlja"; depends=[DBI RmiR_Hs_miRNA]; };
   Rmmquant = derive2 { name="Rmmquant"; version="1.12.0"; sha256="0wklqi37jgdfsf26zgfhq0rvb6xvg4v9z197mcwirqp7y1jm8rmm"; depends=[BiocStyle DESeq2 devtools GenomicRanges org_Mm_eg_db Rcpp S4Vectors SummarizedExperiment TBX20BamSubset TxDb_Mmusculus_UCSC_mm9_knownGene]; };
-  RnBeads = derive2 { name="RnBeads"; version="2.12.0"; sha256="02zh9zlccipj3776il9szlacg1sm9rfqk62vpmxma2zn5al163a4"; depends=[BiocGenerics cluster ff fields GenomicRanges ggplot2 gplots gridExtra illuminaio IRanges limma MASS matrixStats methylumi plyr S4Vectors]; };
+  RnBeads = derive2 { name="RnBeads"; version="2.12.2"; sha256="042bh4p567xkwqn0hxqji7mk0lhbh0vxdrrhcpya22yyrs1716d0"; depends=[BiocGenerics cluster ff fields GenomicRanges ggplot2 gplots gridExtra illuminaio IRanges limma MASS matrixStats methylumi plyr S4Vectors]; };
   RnaSeqSampleSize = derive2 { name="RnaSeqSampleSize"; version="2.4.0"; sha256="04zf30583wdn2q7wnj3hp81sa1h4dhd6yvl22sj0yxdqw919jvrj"; depends=[biomaRt edgeR heatmap3 KEGGREST matlab Rcpp RnaSeqSampleSizeData]; };
   Rnits = derive2 { name="Rnits"; version="1.28.0"; sha256="0wzg0wq0kyarl6s8lmmd6nkqfvvph46bvd4wxh5zy94zqbad7q0b"; depends=[affy Biobase boot ggplot2 impute limma qvalue reshape2]; };
   RpsiXML = derive2 { name="RpsiXML"; version="2.36.0"; sha256="19jc5dhwyy2z1cwbvgvw54v7kkbgh7g0wzy4frxv91zdgaj7wmhy"; depends=[annotate AnnotationDbi Biobase graph hypergraph RBGL XML]; };
   Rqc = derive2 { name="Rqc"; version="1.28.0"; sha256="0hcxkrfja0gmd8r2llijdvaw2xiiplk037305inimz0qna6w2071"; depends=[BiocGenerics BiocParallel BiocStyle Biostrings biovizBase GenomicAlignments GenomicFiles ggplot2 IRanges knitr markdown plyr Rcpp reshape2 Rsamtools S4Vectors shiny ShortRead]; };
   Rsamtools = derive2 { name="Rsamtools"; version="2.10.0"; sha256="0v6b3j45ivd9f04fpfs1vjwby5pi30mf5683bjxim01vi2krj9yh"; depends=[BiocGenerics BiocParallel Biostrings bitops GenomeInfoDb GenomicRanges IRanges Rhtslib S4Vectors XVector zlibbioc]; };
-  Rsubread = derive2 { name="Rsubread"; version="2.8.0"; sha256="09kd7vl2z9k82ppfzy679hs7d00c60z3w3n6a8wq4z3k3f4glc3s"; depends=[Matrix]; };
+  Rsubread = derive2 { name="Rsubread"; version="2.8.1"; sha256="0lpx0dp5570kbrq7v0g573axkhi00qrf38si59vmvnqxhmkvsixn"; depends=[Matrix]; };
   Rtpca = derive2 { name="Rtpca"; version="1.4.0"; sha256="05i25sfgdqsnw9ky0p25aix8qrzkirmcl5vvpqrv8bwvs335glm4"; depends=[Biobase dplyr fdrtool ggplot2 pROC tibble tidyr]; };
   Rtreemix = derive2 { name="Rtreemix"; version="1.56.0"; sha256="15kr8y8w059bxhl9x7j7qg01b55jsxfmfzgdyxk6l40i3l4i0wh1"; depends=[Biobase graph Hmisc]; };
-  S4Vectors = derive2 { name="S4Vectors"; version="0.32.0"; sha256="1zm1xlqrq1f9xa81j3ij2p78g3aywq7izsk3h40z94fjggahvc09"; depends=[BiocGenerics]; };
+  S4Vectors = derive2 { name="S4Vectors"; version="0.32.3"; sha256="0wp29v41f9cf6khq2ww0f63nsq6219l1ycajzdqp3a2xda734ncw"; depends=[BiocGenerics]; };
   SAIGEgds = derive2 { name="SAIGEgds"; version="1.8.0"; sha256="08jhqpi13kg69nfl425m6rvgyvzfspfylgnzkk1v6v0kaz5876f2"; depends=[gdsfmt Rcpp RcppArmadillo RcppParallel SeqArray SPAtest]; };
   SANTA = derive2 { name="SANTA"; version="2.30.0"; sha256="0w0rd0vmjvz98ijk53ikpin7x5acl0yfkb2v7y77ma6lizy70rgl"; depends=[igraph Matrix]; };
   SBGNview = derive2 { name="SBGNview"; version="1.8.0"; sha256="17jh1ad1a951r89xd9127c1wv5s4rzd03qq8rh5zjn2zxzpwswr4"; depends=[AnnotationDbi bookdown httr igraph KEGGREST knitr pathview Rdpack rmarkdown rsvg SBGNview_data SummarizedExperiment xml2]; };
   SBMLR = derive2 { name="SBMLR"; version="1.90.0"; sha256="08cvhlrh13v571jc0fgfiwzc041nq2ndxpy5nsxmgpbsw5ryfgff"; depends=[deSolve XML]; };
   SC3 = derive2 { name="SC3"; version="1.22.0"; sha256="1vbzinr4aiskv9hjbqqzzy3chj48lzk9vv1zk7vr9v8w6qwlg3fm"; depends=[BiocGenerics cluster doParallel doRNG e1071 foreach ggplot2 pheatmap Rcpp RcppArmadillo robustbase ROCR rrcov S4Vectors shiny SingleCellExperiment SummarizedExperiment WriteXLS]; };
   SCAN_UPC = derive2 { name="SCAN.UPC"; version="2.36.0"; sha256="16d161x1npa4lh6ckp0p9ykdrj3x36gsylmq1kjm2vw8g4zknszv"; depends=[affy affyio Biobase Biostrings foreach GEOquery IRanges MASS oligo sva]; };
-  SCANVIS = derive2 { name="SCANVIS"; version="1.7.0"; sha256="163026iz66687s7d27sj78vvn5n6df66qf0s5zxaallyx2gmh56x"; depends=[IRanges plotrix RCurl rtracklayer]; };
+  SCANVIS = derive2 { name="SCANVIS"; version="1.8.0"; sha256="08cpq7cklv1z108cy0d6abv8xq8ins4ihdwzr04fr8bg2ikbi21z"; depends=[IRanges plotrix RCurl rtracklayer]; };
   SCATE = derive2 { name="SCATE"; version="1.4.0"; sha256="1b04bggi0rw9jmgak5j2ca6msqdrq1qdphg3g9w77a1rqyxza86s"; depends=[GenomicAlignments GenomicRanges mclust preprocessCore Rtsne SCATEData splines2 xgboost]; };
   SCArray = derive2 { name="SCArray"; version="1.2.0"; sha256="1jji2cikxkc40zaqwcknrpz5a6nyrqhbirx5ivsdnwslm8l79xmk"; depends=[BiocGenerics DelayedArray DelayedMatrixStats gdsfmt IRanges S4Vectors SingleCellExperiment SummarizedExperiment]; };
   SCBN = derive2 { name="SCBN"; version="1.12.0"; sha256="19jpbr5nr59dc9khbbx60gzbsg8llfd1zqwb9v88nr43v059k13f"; depends=[]; };
@@ -934,10 +935,10 @@ in with self; {
   Spaniel = derive2 { name="Spaniel"; version="1.8.0"; sha256="0js302hgxn0q9xy7s6pdxidvhfcvm711bci6cw3a3bwhq2kacvnc"; depends=[dplyr DropletUtils ggplot2 igraph jpeg jsonlite magrittr png S4Vectors scater scran Seurat shiny SingleCellExperiment SummarizedExperiment]; };
   SparseSignatures = derive2 { name="SparseSignatures"; version="2.4.0"; sha256="0hz48bvw20qdvfb5ci4d9zq3znpzklv0mhhxrpd8n23xv8amby0l"; depends=[Biostrings BSgenome data_table GenomeInfoDb GenomicRanges ggplot2 gridExtra IRanges NMF nnlasso nnls reshape2]; };
   SpatialCPie = derive2 { name="SpatialCPie"; version="1.10.0"; sha256="0ml8fbjhnb2azvfcplpaw2zfvngkxn7z81d1s5f2shiww6x3qb8f"; depends=[colorspace data_table digest dplyr ggforce ggiraph ggplot2 ggrepel igraph lpSolve purrr readr rlang shiny shinycssloaders shinyjs shinyWidgets SummarizedExperiment tibble tidyr tidyselect zeallot]; };
-  SpatialDecon = derive2 { name="SpatialDecon"; version="1.3.0"; sha256="1gbkdp2d5x6apmlv35rg1vjfnfsyp1dvchgdlq4yzqkslc7jib7y"; depends=[logNormReg]; };
+  SpatialDecon = derive2 { name="SpatialDecon"; version="1.4.3"; sha256="11hb28m7h78cvzz9s545jzssnbxjbhfmdb03rxbvxq1rdh0whljr"; depends=[Biobase GeomxTools Matrix repmis SeuratObject]; };
   SpatialExperiment = derive2 { name="SpatialExperiment"; version="1.4.0"; sha256="1jn2xr51hv1pm53pgsilhbwal0bnz7mc17z5plpjxgh7jn9bx4x2"; depends=[BiocFileCache BiocGenerics DropletUtils magick rjson S4Vectors SingleCellExperiment SummarizedExperiment]; };
   SpeCond = derive2 { name="SpeCond"; version="1.48.0"; sha256="1mpzf9l7yim59wfg244rzqxm9vb10lp88688p5v2whcv5xx0a34a"; depends=[Biobase fields hwriter mclust RColorBrewer]; };
-  Spectra = derive2 { name="Spectra"; version="1.4.0"; sha256="1kgwm040j23mjihym0kg5r9qz4f1ssfvnd3f6m5jasx59wgpv46f"; depends=[BiocGenerics BiocParallel fs IRanges MsCoreUtils ProtGenerics S4Vectors]; };
+  Spectra = derive2 { name="Spectra"; version="1.4.1"; sha256="01vaxhk1xz54wxcywnsx8z3qbjchg1i8rv0ks7i2c72sqmamhajc"; depends=[BiocGenerics BiocParallel fs IRanges MsCoreUtils ProtGenerics S4Vectors]; };
   SpectralTAD = derive2 { name="SpectralTAD"; version="1.10.0"; sha256="00yx87zkyyzpzkm9slmhs78pqivcfladsrnvh3wwlkgi2rky7qps"; depends=[BiocParallel cluster dplyr GenomicRanges HiCcompare magrittr Matrix PRIMME]; };
   SpidermiR = derive2 { name="SpidermiR"; version="1.24.0"; sha256="1mwqfg5vgc262bhjnbhn8yvjgmqyafc9kzln1a5pidpj5gyr757q"; depends=[AnnotationDbi gdata ggplot2 gplots gridExtra httr igraph lattice latticeExtra MAGeCKFlute miRNAtap miRNAtap_db org_Hs_eg_db TCGAbiolinks]; };
   SplicingFactory = derive2 { name="SplicingFactory"; version="1.2.0"; sha256="0gdk14591slhwnb6rpnksdirzgd7ga03sqkr3k7wndgk5h6dp2jb"; depends=[SummarizedExperiment]; };
@@ -973,7 +974,7 @@ in with self; {
   TMixClust = derive2 { name="TMixClust"; version="1.16.0"; sha256="1i69q92ss9q2vv6hyxvq8wv55w1937rmda43a8qfblzy0jr5avww"; depends=[Biobase BiocParallel cluster flexclust gss mvtnorm SPEM zoo]; };
   TNBC_CMS = derive2 { name="TNBC.CMS"; version="1.10.0"; sha256="1iz2jb895hsliavk9g93mvvccla461cmifmsam3qdscj09gfl17x"; depends=[e1071 forestplot GGally ggplot2 ggpubr GSVA pheatmap pracma quadprog R_utils RColorBrewer SummarizedExperiment survival]; };
   TOAST = derive2 { name="TOAST"; version="1.7.1"; sha256="1r0kpk6i1b5r5swp4l5yw8mid719li4yqa82p9kzmgg7z0xxvmaz"; depends=[corpcor EpiDISH limma nnls SummarizedExperiment]; };
-  TPP = derive2 { name="TPP"; version="3.22.0"; sha256="1sa5scbv3ck17v02czmj8c9kva5xzdbcqpfm4l9p4wn8xw6v9hk3"; depends=[Biobase biobroom broom data_table doParallel dplyr foreach futile_logger ggplot2 gridExtra knitr limma magrittr MASS mefa nls2 openxlsx plyr purrr RColorBrewer RCurl reshape2 rmarkdown stringr tibble tidyr VennDiagram VGAM]; };
+  TPP = derive2 { name="TPP"; version="3.22.1"; sha256="0vr8sv22rhhrv63arz33vbkp5i3cwd03bz54qwx3zbdcf5l3snhy"; depends=[Biobase biobroom broom data_table doParallel dplyr foreach futile_logger ggplot2 gridExtra knitr limma magrittr MASS mefa nls2 openxlsx plyr purrr RColorBrewer RCurl reshape2 rmarkdown stringr tibble tidyr VennDiagram VGAM]; };
   TPP2D = derive2 { name="TPP2D"; version="1.10.0"; sha256="183gf3v1nj0nqll817whxdif0kiwscil88ig0vjj1hn3936q59v6"; depends=[BiocParallel doParallel dplyr foreach ggplot2 limma MASS openxlsx RCurl stringr tidyr]; };
   TRESS = derive2 { name="TRESS"; version="1.0.0"; sha256="0zmzbpzhcsykbpifs5m8md2lhami0ya7y9sf2rdmadgbx17gvzj7"; depends=[AnnotationDbi GenomicFeatures GenomicRanges IRanges Matrix matrixStats Rsamtools rtracklayer S4Vectors]; };
   TRONCO = derive2 { name="TRONCO"; version="2.26.0"; sha256="0xjjv67mcgb90f6r3i6qy9d8k6sif4asq7qiiq1bhs90806jrrsb"; depends=[bnlearn cgdsr circlize doParallel foreach gridExtra gtable gtools igraph iterators R_matlab RColorBrewer Rgraphviz scales xtable]; };
@@ -1075,13 +1076,13 @@ in with self; {
   arrayQualityMetrics = derive2 { name="arrayQualityMetrics"; version="3.50.0"; sha256="034xdnqvgwqy1wh17mmjzmhzj0iy8sdx4al0ngdxdfnxcjk4gfny"; depends=[affy affyPLM beadarray Biobase genefilter gridSVG Hmisc hwriter lattice latticeExtra limma RColorBrewer setRNG svglite vsn XML]; };
   artMS = derive2 { name="artMS"; version="1.12.0"; sha256="0gaxd759zv273jh15l5zifh7k995sx8yda097lhjafdph7jmf0nh"; depends=[AnnotationDbi bit64 circlize cluster corrplot data_table dplyr getopt ggdendro ggplot2 ggrepel gplots limma MSstats openxlsx org_Hs_eg_db pheatmap plotly plyr RColorBrewer scales seqinr stringr tidyr UpSetR VennDiagram yaml]; };
   atSNP = derive2 { name="atSNP"; version="1.10.0"; sha256="0yy731ivpcrmjwpljxzvlk7n2pygydw2q58gq90d1midch1nf0lx"; depends=[BiocFileCache BiocParallel BSgenome data_table ggplot2 lifecycle motifStack rappdirs Rcpp testthat]; };
-  atena = derive2 { name="atena"; version="1.0.0"; sha256="132xp8cczvd7hznhdl1a7h410khahf8yqz3zr9gdyrni1viabxm9"; depends=[BiocGenerics BiocParallel GenomeInfoDb GenomicAlignments GenomicRanges IRanges Matrix Rsamtools S4Vectors sparseMatrixStats SQUAREM SummarizedExperiment]; };
+  atena = derive2 { name="atena"; version="1.0.1"; sha256="0v7asl17wvdj5qbss2kpkb2xvkmlxf04f7f1cmkzk8kv0xa9qa1h"; depends=[BiocGenerics BiocParallel GenomeInfoDb GenomicAlignments GenomicRanges IRanges Matrix Rsamtools S4Vectors sparseMatrixStats SQUAREM SummarizedExperiment]; };
   attract = derive2 { name="attract"; version="1.46.0"; sha256="1vh6wgi6wmjry25khzbq32s67jjn581zjhhfqbl7y2dkfq2fvybf"; depends=[AnnotationDbi Biobase cluster GOstats KEGGREST limma org_Hs_eg_db reactome_db]; };
   autonomics = derive2 { name="autonomics"; version="1.2.0"; sha256="1j0nsbdw7sahy031bvp8pg8a1fg7ql0is65d0mfh8345lbmr29sn"; depends=[abind assertive BiocFileCache BiocGenerics colorspace data_table edgeR ggplot2 ggrepel gridExtra limma magrittr matrixStats MultiAssayExperiment pcaMethods R_utils rappdirs readxl rlang S4Vectors scales stringi SummarizedExperiment tidyr]; };
   awst = derive2 { name="awst"; version="1.2.0"; sha256="0qxi4f7ngfsx17q9szhl95bhihcfx36bw4n175zyfdnac6cb9kap"; depends=[SummarizedExperiment]; };
   bacon = derive2 { name="bacon"; version="1.22.0"; sha256="13dhma34j9ggryainn4x6qvd3hphpxks5gf0mysia00r9hhpwwlc"; depends=[BiocParallel ellipse ggplot2]; };
   ballgown = derive2 { name="ballgown"; version="2.26.0"; sha256="0fiky82arvgzgxrm4bqn74m5kngqpdaqf6ks4cr89nlnhfq0v6rf"; depends=[Biobase GenomeInfoDb GenomicRanges IRanges limma RColorBrewer rtracklayer S4Vectors sva]; };
-  bambu = derive2 { name="bambu"; version="2.0.0"; sha256="1r0y3rzqhcasrshranh4nlbm2ahphzizy907xzka0kkkaz7g9zqr"; depends=[BiocGenerics BiocParallel data_table dplyr GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges Rcpp RcppArmadillo Rsamtools S4Vectors SummarizedExperiment tidyr xgboost]; };
+  bambu = derive2 { name="bambu"; version="2.0.1"; sha256="0bzbaw57syaw2c8d4484dl229brw2d33105ak6krjpl9kd6av9y9"; depends=[BiocGenerics BiocParallel data_table dplyr GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges IRanges Rcpp RcppArmadillo Rsamtools S4Vectors SummarizedExperiment tidyr xgboost]; };
   bamsignals = derive2 { name="bamsignals"; version="1.26.0"; sha256="03m3yaagplh7j4q5hp3cfcdqwsnh1pwrlla9cv3ajnfd83s8ncqv"; depends=[BiocGenerics GenomicRanges IRanges Rcpp Rhtslib zlibbioc]; };
   banocc = derive2 { name="banocc"; version="1.18.0"; sha256="0p5v601j1lkgh9prlvalp3xpqw87xq7ql0bak212443n15pfj3a4"; depends=[coda mvtnorm rstan stringr]; };
   barcodetrackR = derive2 { name="barcodetrackR"; version="1.2.0"; sha256="1z7sj2ykp34g9bf0x0s3qavrprbiaksgk5r4hsakb24jjbi65jnh"; depends=[circlize cowplot dplyr ggdendro ggplot2 ggridges magrittr plyr proxy RColorBrewer rlang S4Vectors scales shiny SummarizedExperiment tibble tidyr vegan viridis]; };
@@ -1105,15 +1106,15 @@ in with self; {
   biobroom = derive2 { name="biobroom"; version="1.26.0"; sha256="034gbywrscv23kk1qnk7sc7dxdckmf60wh29fz65v1n28mkf180r"; depends=[Biobase broom dplyr tidyr]; };
   biobtreeR = derive2 { name="biobtreeR"; version="1.6.0"; sha256="0m9gx2g5ishbbh7aqp09mpknhr7q1v5ap0s6xp6ccj01pz2gkk8s"; depends=[httpuv httr jsonlite stringi]; };
   biocGraph = derive2 { name="biocGraph"; version="1.56.0"; sha256="0c7r0c1kx22dlwi6d1ldbkkbf53yi0p3vmgbwzrbkn3cina7bcxq"; depends=[BiocGenerics geneplotter graph Rgraphviz]; };
-  biocViews = derive2 { name="biocViews"; version="1.62.0"; sha256="094npjhjv3ncd49fzzq1p8rv274r2h1h87la81sy1haf1dbppnh9"; depends=[Biobase BiocManager graph RBGL RCurl RUnit XML]; };
+  biocViews = derive2 { name="biocViews"; version="1.62.1"; sha256="1v6himzp546dpb990vv0nlya21w8x2x30137rsmahjzg942nzs9r"; depends=[Biobase BiocManager graph RBGL RCurl RUnit XML]; };
   biocthis = derive2 { name="biocthis"; version="1.4.0"; sha256="0kh5lmv992v4r5r58x29403cll0zxr9fx4ar81nrzvnch5668v39"; depends=[BiocManager fs glue rlang styler usethis]; };
-  biodb = derive2 { name="biodb"; version="1.2.0"; sha256="0q343zbx341xdy634p50k7bj6byv8v2rqzy50nw75a79206pajl4"; depends=[BiocFileCache chk jsonlite lgr lifecycle openssl plyr progress R6 rappdirs Rcpp RCurl RSQLite stringr testthat withr XML yaml]; };
+  biodb = derive2 { name="biodb"; version="1.2.1"; sha256="1z4adapsnpw6fwanihdz43r11ijypxs5wbndb1i98j8kb7wf308k"; depends=[BiocFileCache chk jsonlite lgr lifecycle openssl plyr progress R6 rappdirs Rcpp RCurl RSQLite stringr testthat withr XML yaml]; };
   biodbChebi = derive2 { name="biodbChebi"; version="1.0.1"; sha256="1f1bbfk0zp7x07vgnskd0wxb0zv2pvjk22cndw2zn7pgds0g9d9d"; depends=[biodb R6]; };
-  biodbHmdb = derive2 { name="biodbHmdb"; version="1.0.0"; sha256="0ngg6gjpcbxs33lq7kwa2a7h88irdvk9z96lfi4gcsgp3rjp782x"; depends=[biodb R6 Rcpp testthat]; };
+  biodbHmdb = derive2 { name="biodbHmdb"; version="1.0.3"; sha256="14pgyb4zjl65qpmj04zmlafi536rcwq9ngjx1m403k3fifa7ki9q"; depends=[biodb R6 Rcpp testthat]; };
   biodbKegg = derive2 { name="biodbKegg"; version="1.0.0"; sha256="16xmm3ymzd4jf55plahbxi844hpv0hpqq6v2ygcjf6wrs0yy2mhd"; depends=[biodb chk lifecycle R6]; };
   biodbLipidmaps = derive2 { name="biodbLipidmaps"; version="1.0.1"; sha256="14086f88r7mavpzp823mhpi4b9zq8q2kqxlwnmp02i03jj8mjnr8"; depends=[biodb lifecycle R6]; };
   biodbUniprot = derive2 { name="biodbUniprot"; version="1.0.0"; sha256="1aydkqqb8vs5b844ff1j09a7g8rmf7qr6rg2aw8nqshihq510v4d"; depends=[biodb R6]; };
-  biomaRt = derive2 { name="biomaRt"; version="2.50.0"; sha256="069wqihm8pj3r41dizvdbj4jnw9bsc5jrz8czfrak5v69bgk5v5q"; depends=[AnnotationDbi BiocFileCache digest httr progress rappdirs stringr XML xml2]; };
+  biomaRt = derive2 { name="biomaRt"; version="2.50.1"; sha256="1lm8axjmi2k1d2x0gdlvs0fzsd68xvxx7sn1wn6v4wr0pv85qhkz"; depends=[AnnotationDbi BiocFileCache digest httr progress rappdirs stringr XML xml2]; };
   biomformat = derive2 { name="biomformat"; version="1.22.0"; sha256="0xf99j4lhf8kh9h1317hrbzxdv6rljs1fn68r8s40x6y4db3l817"; depends=[jsonlite Matrix plyr rhdf5]; };
   biomvRCNS = derive2 { name="biomvRCNS"; version="1.34.0"; sha256="01nhjhfyzs67p97bk9bjqdxk239ckl8sgfj55azk1zmw92aw2hfy"; depends=[GenomicRanges Gviz IRanges mvtnorm]; };
   biosigner = derive2 { name="biosigner"; version="1.22.0"; sha256="189018qahyw33dmg73wa7k4rp8nzrx6ai8f2dr6vhbpcdc1gnm0z"; depends=[Biobase e1071 MultiDataSet randomForest ropls]; };
@@ -1131,7 +1132,7 @@ in with self; {
   brendaDb = derive2 { name="brendaDb"; version="1.8.0"; sha256="1yprf5hjzhfhzq71q8vzf45j0dakxbdr9rv166m0zs3nk5f75g3r"; depends=[BiocFileCache BiocParallel crayon curl dplyr magrittr purrr rappdirs Rcpp rlang stringr tibble tidyr xml2]; };
   bridge = derive2 { name="bridge"; version="1.58.0"; sha256="0qzniimw426vivslf0g99c508298cgwykhzrrjhnjc2bfan63iry"; depends=[rama]; };
   bsseq = derive2 { name="bsseq"; version="1.30.0"; sha256="1i30zf6457a0qd64s89x9l544y1h0hj9rfgf1m8l4krd487a9b9d"; depends=[beachmat Biobase BiocGenerics BiocParallel Biostrings BSgenome data_table DelayedArray DelayedMatrixStats GenomeInfoDb GenomicRanges gtools HDF5Array IRanges limma locfit permute R_utils Rcpp rhdf5 S4Vectors scales SummarizedExperiment]; };
-  bugsigdbr = derive2 { name="bugsigdbr"; version="1.0.0"; sha256="04msihdxm52nhfy5zrd1wm92p8dss0zy5yb27rrcddflil77rgvc"; depends=[BiocFileCache vroom]; };
+  bugsigdbr = derive2 { name="bugsigdbr"; version="1.0.1"; sha256="1wrk9m4ja129d4al3w286hzg2gjcnq5riaa99q35psqcwm1bp94f"; depends=[BiocFileCache vroom]; };
   bumphunter = derive2 { name="bumphunter"; version="1.36.0"; sha256="0d5cz9xy7vhcaj5n3h4cfiv08sn7wn83458525pdwvdzzm449xgv"; depends=[AnnotationDbi BiocGenerics doRNG foreach GenomeInfoDb GenomicFeatures GenomicRanges IRanges iterators limma locfit matrixStats S4Vectors]; };
   cBioPortalData = derive2 { name="cBioPortalData"; version="2.6.0"; sha256="0bapc4c9x328l0wrnm6zzq1byf1l33rza8xmadrfqfiq6j56qakq"; depends=[AnVIL BiocFileCache digest dplyr GenomeInfoDb GenomicRanges httr IRanges MultiAssayExperiment RaggedExperiment readr RTCGAToolbox S4Vectors SummarizedExperiment TCGAutils tibble tidyr]; };
   cTRAP = derive2 { name="cTRAP"; version="1.12.0"; sha256="13q0pyc6vvxl41hg8cz4rdqrq0vppnna5fw2cin58dm2mayhd6p9"; depends=[AnnotationDbi AnnotationHub binr cowplot data_table dplyr DT fastmatch fgsea ggplot2 ggrepel highcharter htmltools httr limma pbapply purrr qs R_utils readxl reshape2 rhdf5 rlang scales shiny shinycssloaders tibble]; };
@@ -1143,7 +1144,7 @@ in with self; {
   casper = derive2 { name="casper"; version="2.28.0"; sha256="0z85zq5crf3806c16hv0gpv072k2bf7hdyhq958y33282wybr4zd"; depends=[Biobase BiocGenerics coda EBarrays gaga GenomeInfoDb GenomicFeatures GenomicRanges gtools IRanges limma mgcv Rsamtools rtracklayer S4Vectors sqldf survival VGAM]; };
   categoryCompare = derive2 { name="categoryCompare"; version="1.38.0"; sha256="1175is4gr6nr393lk5ha2c3rqsdzsl1mfnhkajcym8n0927rx8n8"; depends=[annotate AnnotationDbi Biobase BiocGenerics Category colorspace GOstats graph GSEABase hwriter RCy3]; };
   cbaf = derive2 { name="cbaf"; version="1.16.0"; sha256="1xdl06arh5kwnp8159kbcrhlc19zlwk1srzk634jzp8pch9086da"; depends=[BiocFileCache cgdsr genefilter gplots openxlsx RColorBrewer]; };
-  cbpManager = derive2 { name="cbpManager"; version="1.2.0"; sha256="12jw5pw10dhkmbljphrzc9g2jn5fd6wz5vn0ixmvndyq09yl9aw3"; depends=[basilisk dplyr DT htmltools jsonlite magrittr markdown plyr rapportools reticulate rintrojs shiny shinyBS shinycssloaders shinydashboard vroom]; };
+  cbpManager = derive2 { name="cbpManager"; version="1.2.1"; sha256="1qzph5yb3bzs1g6h2spq6bg7gw2n4n81awr5089pgv1a5py2nwq0"; depends=[basilisk dplyr DT htmltools jsonlite magrittr markdown plyr rapportools reticulate rintrojs shiny shinyBS shinycssloaders shinydashboard vroom]; };
   ccfindR = derive2 { name="ccfindR"; version="1.14.0"; sha256="00xaspkckhnflkaj0wfs06kbz6y6cfshr1mq4zhh7yszppgqflzd"; depends=[ape gtools irlba Matrix RColorBrewer Rcpp RcppEigen Rdpack Rmpi Rtsne S4Vectors SingleCellExperiment SummarizedExperiment]; };
   ccmap = derive2 { name="ccmap"; version="1.20.0"; sha256="1z5lyv7m55wcncjlrqzflmp1jm2580k1pvajj3gjqif8kx477q3d"; depends=[AnnotationDbi BiocManager ccdata data_table doParallel foreach lsa xgboost]; };
   ccrepe = derive2 { name="ccrepe"; version="1.30.0"; sha256="05wazs9bv4nlkzb3r98v31w0vpkv4071f9zw9dlh9jd8cm91ppk1"; depends=[infotheo]; };
@@ -1166,7 +1167,7 @@ in with self; {
   chromDraw = derive2 { name="chromDraw"; version="2.24.0"; sha256="11vvk3m2av7dffwlbg74xlk5f50r1b6fijv820875b7sxhfhxy7x"; depends=[GenomicRanges Rcpp]; };
   chromPlot = derive2 { name="chromPlot"; version="1.22.0"; sha256="190h1906007wm14y0ra1nnanacig0yrhcpmnpbanzl68gmjhvalh"; depends=[biomaRt GenomicRanges]; };
   chromVAR = derive2 { name="chromVAR"; version="1.16.0"; sha256="0ylsfr540l763bh010irbcavlskahyb1769pppimdgn22gyr3spk"; depends=[BiocGenerics BiocParallel Biostrings BSgenome DT GenomeInfoDb GenomicRanges ggplot2 IRanges Matrix miniUI nabor plotly RColorBrewer Rcpp RcppArmadillo Rsamtools Rtsne S4Vectors shiny SummarizedExperiment TFBSTools]; };
-  chromstaR = derive2 { name="chromstaR"; version="1.19.0"; sha256="0z511l26fhz00qn8h2yybylk8c3ws8hj1hp8hq9qj9mfczwiqy3j"; depends=[bamsignals BiocGenerics chromstaRData doParallel foreach GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges mvtnorm reshape2 Rsamtools S4Vectors]; };
+  chromstaR = derive2 { name="chromstaR"; version="1.20.2"; sha256="1akcmxzn4j9ph4n3lsgfh8fh8hrb28jjamz037w59bsdkcv6wyjq"; depends=[bamsignals BiocGenerics chromstaRData doParallel foreach GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges mvtnorm reshape2 Rsamtools S4Vectors]; };
   chromswitch = derive2 { name="chromswitch"; version="1.16.0"; sha256="0mb26jhrkd99akrfsnx5ziszmwv3ydc6sp140s1wh6jwn6qjws73"; depends=[Biobase BiocParallel cluster dplyr GenomicRanges gplots IRanges lazyeval magrittr matrixStats NMF rtracklayer S4Vectors tidyr]; };
   cicero = derive2 { name="cicero"; version="1.12.0"; sha256="1fc69nkm2cwpr6gkfmra2ph0lrmw486chswp4pn8i70ia43fzdm7"; depends=[assertthat Biobase BiocGenerics data_table dplyr FNN GenomicRanges ggplot2 glasso Gviz igraph IRanges Matrix monocle plyr reshape2 S4Vectors stringi stringr tibble tidyr VGAM]; };
   circRNAprofiler = derive2 { name="circRNAprofiler"; version="1.8.0"; sha256="0l83r9idhrha1m21vpnw917m5dlldji49zvx4d25m5g3ia1pkhpf"; depends=[AnnotationHub Biostrings BSgenome BSgenome_Hsapiens_UCSC_hg19 DESeq2 dplyr edgeR GenomeInfoDb GenomicRanges ggplot2 gwascat IRanges magrittr R_utils readr reshape2 rlang rtracklayer S4Vectors seqinr stringi stringr universalmotif]; };
@@ -1185,7 +1186,7 @@ in with self; {
   clusterProfiler = derive2 { name="clusterProfiler"; version="4.2.0"; sha256="18y7482sw0awlhazikq13r2r0zid9ksk942rma87m448y1cq2fi5"; depends=[AnnotationDbi DOSE downloader dplyr enrichplot GO_db GOSemSim magrittr plyr qvalue rlang tidyr yulab_utils]; };
   clusterSeq = derive2 { name="clusterSeq"; version="1.18.0"; sha256="1qyycc8wrik54bc2rvzisv6p05jnh1kf68jafqgw9lqpp5gk40bl"; depends=[baySeq BiocGenerics BiocParallel]; };
   clusterStab = derive2 { name="clusterStab"; version="1.66.0"; sha256="1863jpdwx27snpil38waj3zr0w2m0q7xj8g1zm8c5cbx9as1cwkd"; depends=[Biobase]; };
-  clustifyr = derive2 { name="clustifyr"; version="1.5.1"; sha256="0qrbfb04lfj72f7nv001p92a6q8j9ymh24b3c4gfg8pm4dw7m344"; depends=[cowplot dplyr entropy fgsea ggplot2 httr Matrix matrixStats proxy readr rlang S4Vectors scales SingleCellExperiment stringr SummarizedExperiment tibble tidyr]; };
+  clustifyr = derive2 { name="clustifyr"; version="1.6.0"; sha256="1jz6wfv1b585yf6m9f265ig29p5qxilri40lnpry6h0am2s72xr3"; depends=[cowplot dplyr entropy fgsea ggplot2 httr Matrix matrixStats proxy readr rlang S4Vectors scales SingleCellExperiment stringr SummarizedExperiment tibble tidyr]; };
   cmapR = derive2 { name="cmapR"; version="1.6.0"; sha256="0zk96k6z80zkd4q6s4fcn21vmz6y17bfa1sqllvyn3zy237gj132"; depends=[data_table flowCore matrixStats rhdf5 SummarizedExperiment]; };
   cn_farms = derive2 { name="cn.farms"; version="1.42.0"; sha256="062rp52r1wv5wiqjvp0rsjfzqyjgh4v73iir77ivmmimsydv38lm"; depends=[affxparser Biobase DBI DNAcopy ff lattice oligo oligoClasses preprocessCore snow]; };
   cn_mops = derive2 { name="cn.mops"; version="1.40.0"; sha256="1ibmm87x0wi93ss1p2vmaxwa1xncqx63q42zf7fppmmdgfn4rcvg"; depends=[Biobase BiocGenerics exomeCopy GenomeInfoDb GenomicRanges IRanges Rsamtools S4Vectors]; };
@@ -1250,7 +1251,7 @@ in with self; {
   ddPCRclust = derive2 { name="ddPCRclust"; version="1.14.0"; sha256="13s2h8bfd6i6shbm9iwlz99nvyif6c934ccgkdihgbxfq2zacmdj"; depends=[clue flowCore flowDensity flowPeaks ggplot2 openxlsx plotrix R_utils SamSPECTRAL]; };
   dearseq = derive2 { name="dearseq"; version="1.6.0"; sha256="07vr27rv3z86ajd62c0ilvfgz9z35qsiwwi5pv4sygbhnnjwh3rc"; depends=[ggplot2 KernSmooth matrixStats patchwork pbapply statmod survey viridisLite]; };
   debCAM = derive2 { name="debCAM"; version="1.12.0"; sha256="1nqc2r9wr4q71zsya0ylwkxc91sqa4zkal26wiv5h10bk5nxig5r"; depends=[apcluster Biobase BiocParallel corpcor DMwR2 geometry NMF nnls pcaPP rJava SummarizedExperiment]; };
-  debrowser = derive2 { name="debrowser"; version="1.22.0"; sha256="0d0sy72hyl2jbkfn4fh18yp51hh6qz30yk7iacz69y59c5rcqn8s"; depends=[annotate AnnotationDbi apeglm ashr clusterProfiler colourpicker DESeq2 DOSE DT edgeR enrichplot GenomicRanges ggplot2 gplots Harman heatmaply igraph IRanges jsonlite limma org_Hs_eg_db org_Mm_eg_db pathview plotly RColorBrewer RCurl reshape2 S4Vectors shiny shinyBS shinydashboard shinyjs stringi SummarizedExperiment sva]; };
+  debrowser = derive2 { name="debrowser"; version="1.22.2"; sha256="006bsqyd8fp1z83jhy1z6w3f0rmb5av8bgrsx2r03n8i7bzrsnq3"; depends=[annotate AnnotationDbi apeglm ashr clusterProfiler colourpicker DESeq2 DOSE DT edgeR enrichplot GenomicRanges ggplot2 gplots Harman heatmaply igraph IRanges jsonlite limma org_Hs_eg_db org_Mm_eg_db pathview plotly RColorBrewer RCurl reshape2 S4Vectors shiny shinyBS shinydashboard shinyjs stringi SummarizedExperiment sva]; };
   deco = derive2 { name="deco"; version="1.10.0"; sha256="1bvn5wipvyxy5h74wl1433pv5lzdp82m8yxwr3b8cljnlqcqh9da"; depends=[ade4 AnnotationDbi Biobase BiocParallel BiocStyle cluster foreign gdata ggplot2 gplots gridExtra limma locfit made4 RColorBrewer reshape2 scatterplot3d sfsmisc SummarizedExperiment]; };
   decompTumor2Sig = derive2 { name="decompTumor2Sig"; version="2.10.0"; sha256="125913q735vazmlnvg8vdca8j88y0mx24zdlqzsgzw9ylkwbq86p"; depends=[BiocGenerics Biostrings BSgenome_Hsapiens_UCSC_hg19 data_table GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 ggseqlogo gridExtra Matrix plyr quadprog readxl S4Vectors SummarizedExperiment TxDb_Hsapiens_UCSC_hg19_knownGene VariantAnnotation]; };
   decontam = derive2 { name="decontam"; version="1.14.0"; sha256="0k8rp91ap3dwzhhhg3s7ikbphxvgha7m118ayrghshp8929g3cdm"; depends=[ggplot2 reshape2]; };
@@ -1262,7 +1263,7 @@ in with self; {
   densvis = derive2 { name="densvis"; version="1.4.0"; sha256="0h4j307zw0hxpi8fpm86x3l6nq514y94gvn3qyc5hp6b521f4frd"; depends=[assertthat basilisk Rcpp reticulate]; };
   derfinder = derive2 { name="derfinder"; version="1.28.0"; sha256="1hxf40ijrlmyrv3rprv5wx3am2vraplbsfg77kk9qd3gjq6q3ylp"; depends=[AnnotationDbi BiocGenerics BiocParallel bumphunter derfinderHelper GenomeInfoDb GenomicAlignments GenomicFeatures GenomicFiles GenomicRanges Hmisc IRanges qvalue Rsamtools rtracklayer S4Vectors]; };
   derfinderHelper = derive2 { name="derfinderHelper"; version="1.28.0"; sha256="06x0wy2wzpngak1pnrj2p0xzlx1nbcz0hs3p9q5ic6ib2rgwrh35"; depends=[IRanges Matrix S4Vectors]; };
-  derfinderPlot = derive2 { name="derfinderPlot"; version="1.27.1"; sha256="0k074mh4rrm3lrrvbp95ss46ax7sbm1igfr5qpz7qdr0savgw5ki"; depends=[derfinder GenomeInfoDb GenomicFeatures GenomicRanges ggbio ggplot2 IRanges limma plyr RColorBrewer reshape2 S4Vectors scales]; };
+  derfinderPlot = derive2 { name="derfinderPlot"; version="1.28.1"; sha256="021w4vb8al3gc6rsc6qgywd5wxmysf2jif7cazxl4xhh37g1anni"; depends=[derfinder GenomeInfoDb GenomicFeatures GenomicRanges ggbio ggplot2 IRanges limma plyr RColorBrewer reshape2 S4Vectors scales]; };
   diffGeneAnalysis = derive2 { name="diffGeneAnalysis"; version="1.76.0"; sha256="1aprngqc2aqdw91q9c57y15xpkm4da4czf8ki55vnyngb9nlpabp"; depends=[minpack_lm]; };
   diffHic = derive2 { name="diffHic"; version="1.26.0"; sha256="0xhm6jgalgb2v8k99k1z99rwhcaqjhhklm5ih8b6ayfmgmf6x7ih"; depends=[BiocGenerics Biostrings BSgenome csaw edgeR GenomeInfoDb GenomicRanges InteractionSet IRanges limma locfit Rcpp rhdf5 Rhtslib Rsamtools rtracklayer S4Vectors SummarizedExperiment zlibbioc]; };
   diffUTR = derive2 { name="diffUTR"; version="1.2.0"; sha256="0lmsbaaqzzvk25bxjb8ngvx0l5aqsmk7nng5kv4nghm7y7ipp1gf"; depends=[ComplexHeatmap DEXSeq dplyr edgeR ensembldb GenomeInfoDb GenomicRanges ggplot2 ggrepel IRanges limma matrixStats Rsubread rtracklayer S4Vectors stringi SummarizedExperiment viridisLite]; };
@@ -1299,7 +1300,7 @@ in with self; {
   enrichTF = derive2 { name="enrichTF"; version="1.10.0"; sha256="0ssjsl5vh0wdq0584yl6c61d8bp5n3qvkgfrqdlpjfwb7b7gh4xv"; depends=[BiocGenerics BSgenome clusterProfiler GenomeInfoDb GenomicRanges ggplot2 ggpubr heatmap3 IRanges JASPAR2018 magrittr motifmatchr pipeFrame R_utils rmarkdown rtracklayer S4Vectors TFBSTools]; };
   enrichplot = derive2 { name="enrichplot"; version="1.14.1"; sha256="0nsx96mkcg0hhg3x8jndzq3xvq9bq7m4yf1b3ry73b17ladx81ch"; depends=[aplot DOSE ggplot2 ggraph ggtree GOSemSim igraph magrittr plyr purrr RColorBrewer reshape2 scatterpie shadowtext yulab_utils]; };
   ensemblVEP = derive2 { name="ensemblVEP"; version="1.36.0"; sha256="1b9i8qv16mrr31qpvvcimcd80nkykky8dygi90jinkzgvkzdxi64"; depends=[BiocGenerics Biostrings GenomeInfoDb GenomicRanges S4Vectors SummarizedExperiment VariantAnnotation]; };
-  ensembldb = derive2 { name="ensembldb"; version="2.18.0"; sha256="02rdbqp33g488w1df1rgp0dg63qrr6w2kmgigxzc8l9wmrvj0y1j"; depends=[AnnotationDbi AnnotationFilter Biobase BiocGenerics Biostrings curl DBI GenomeInfoDb GenomicFeatures GenomicRanges IRanges ProtGenerics Rsamtools RSQLite rtracklayer S4Vectors]; };
+  ensembldb = derive2 { name="ensembldb"; version="2.18.2"; sha256="0q56gv0isa9ayw505py7i7x65pvcshmd2j1mna1wpbk66wqj4qzx"; depends=[AnnotationDbi AnnotationFilter Biobase BiocGenerics Biostrings curl DBI GenomeInfoDb GenomicFeatures GenomicRanges IRanges ProtGenerics Rsamtools RSQLite rtracklayer S4Vectors]; };
   epiNEM = derive2 { name="epiNEM"; version="1.18.0"; sha256="0xs9jzy0d9iv45d5ina7ki79wix96318yp17mxhp1l4vdkpm3fk7"; depends=[BoolNet e1071 graph gtools igraph latex2exp lattice latticeExtra minet mnem pcalg RColorBrewer]; };
   epialleleR = derive2 { name="epialleleR"; version="1.2.0"; sha256="1zgwwzrg9ngsfq186qsmvgwxcz0b9avr8wk1yadjlrjc9avgh2d3"; depends=[BH BiocGenerics data_table GenomeInfoDb GenomicRanges Rcpp Rhtslib stringi SummarizedExperiment VariantAnnotation zlibbioc]; };
   epidecodeR = derive2 { name="epidecodeR"; version="1.2.0"; sha256="1fy3i7djpj2inlcpa2h4n5hzp0q6a555sc5axg1jwxiala9l8siv"; depends=[dplyr EnvStats GenomicRanges ggplot2 ggpubr IRanges rstatix rtracklayer]; };
@@ -1360,7 +1361,7 @@ in with self; {
   flowPlots = derive2 { name="flowPlots"; version="1.42.0"; sha256="01r6c0hwg34ym0gziirrbk96mapn9pkxhshn0gwb1rqw3jw56cfm"; depends=[]; };
   flowSpecs = derive2 { name="flowSpecs"; version="1.8.0"; sha256="018y54w3dg8myywcda41lk07mbd5y99q07i9az0f938a5mb44vd8"; depends=[Biobase BiocGenerics BiocParallel flowCore ggplot2 reshape2 zoo]; };
   flowStats = derive2 { name="flowStats"; version="4.6.0"; sha256="0jjfq66m4lbpkynwxaparkd05znhp3jl9ccj37gyghly294x3rm9"; depends=[Biobase BiocGenerics cluster fda flowCore flowViz flowWorkspace KernSmooth ks lattice MASS ncdfFlow RColorBrewer rrcov]; };
-  flowTime = derive2 { name="flowTime"; version="1.17.0"; sha256="160vx3zj34hf75rwbs0v0xa0skyzjg5q6l2qgajfyhz436i95lxl"; depends=[dplyr flowCore magrittr plyr rlang tibble]; };
+  flowTime = derive2 { name="flowTime"; version="1.18.0"; sha256="1kvy9gpyrc32041y6ngx6kqy3qikc5d48qrsmifm2xw9nxizk4m1"; depends=[dplyr flowCore magrittr plyr rlang tibble]; };
   flowTrans = derive2 { name="flowTrans"; version="1.46.0"; sha256="1fkpma9a2097qay6mkswb7sb8jshvjmjldppz67l840d7mhkkpab"; depends=[flowClust flowCore flowViz]; };
   flowUtils = derive2 { name="flowUtils"; version="1.58.0"; sha256="0rgybkzbn8c3kpbz0ddghp1np0gka0cgiqvkk5jbnhlgf4s07161"; depends=[Biobase corpcor flowCore graph RUnit XML]; };
   flowVS = derive2 { name="flowVS"; version="1.26.0"; sha256="02vikjzbi5r426l6085rfdqqvy8n8yaq7fwli18q385nb81vah7i"; depends=[flowCore flowStats flowViz]; };
@@ -1408,12 +1409,12 @@ in with self; {
   gespeR = derive2 { name="gespeR"; version="1.26.0"; sha256="0fd204abvfmgl8gqqr0vnsjsihmbi4wb9q6slbnf8b0gkhpqhafq"; depends=[Biobase biomaRt cellHTS2 doParallel dplyr foreach ggplot2 glmnet Matrix reshape2]; };
   getDEE2 = derive2 { name="getDEE2"; version="1.4.0"; sha256="04dqxx2qj3lwfpiv07s9dlgxc7as59cj7qbima9v09cnyciqkib6"; depends=[htm2txt SummarizedExperiment]; };
   geva = derive2 { name="geva"; version="1.2.0"; sha256="0rx67qq52iab9qs8apb5a9j91cg9gn7z2xs56wpccd2ba72wdic8"; depends=[dbscan fastcluster matrixStats]; };
-  ggbio = derive2 { name="ggbio"; version="1.41.0"; sha256="02vpn2z0xlvahhr43hrimiljs446iwghiva4q6khi0a8r1jb5xsr"; depends=[AnnotationDbi AnnotationFilter Biobase BiocGenerics Biostrings biovizBase BSgenome ensembldb GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges GGally ggplot2 gridExtra gtable Hmisc IRanges OrganismDbi reshape2 rlang Rsamtools rtracklayer S4Vectors scales SummarizedExperiment VariantAnnotation]; };
+  ggbio = derive2 { name="ggbio"; version="1.42.0"; sha256="1svmjaa3gisi39sl52337drvd54havcy5pjmwrykgykz5flid2m7"; depends=[AnnotationDbi AnnotationFilter Biobase BiocGenerics Biostrings biovizBase BSgenome ensembldb GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges GGally ggplot2 gridExtra gtable Hmisc IRanges OrganismDbi reshape2 rlang Rsamtools rtracklayer S4Vectors scales SummarizedExperiment VariantAnnotation]; };
   ggcyto = derive2 { name="ggcyto"; version="1.22.0"; sha256="17dnmsa92gc2za36c3klgd7rklqlxrhkzs5ksnrc1am6a4knc0p1"; depends=[data_table flowCore flowWorkspace ggplot2 gridExtra hexbin ncdfFlow plyr RColorBrewer rlang scales]; };
   ggmsa = derive2 { name="ggmsa"; version="1.0.0"; sha256="0w4jqmsa87ijflmyya8fnwmgha6s5ax2r9d67b0a3d7yz3d1kms8"; depends=[aplot Biostrings dplyr ggalt ggforce ggplot2 magrittr R4RNA RColorBrewer seqmagick tidyr]; };
   ggspavis = derive2 { name="ggspavis"; version="1.0.0"; sha256="0lm7z8fzvw47zq618lfyxszy42qwhjr71xsyjsygvcl604z68jx0"; depends=[ggplot2 ggside SingleCellExperiment SpatialExperiment SummarizedExperiment]; };
-  ggtree = derive2 { name="ggtree"; version="3.2.0"; sha256="1c6b7kjh44k096v8mhn53abr181vpbn7s6ab7zk4phnsyfxsclxb"; depends=[ape aplot dplyr ggfun ggplot2 magrittr purrr rlang scales tidyr tidytree treeio yulab_utils]; };
-  ggtreeExtra = derive2 { name="ggtreeExtra"; version="1.4.0"; sha256="0agvh1srirk5sv0ncj592ya86n6i3lp2yxijmykbwcqvy4ckb7cy"; depends=[ggnewscale ggplot2 ggtree rlang]; };
+  ggtree = derive2 { name="ggtree"; version="3.2.1"; sha256="0qk39gdpy4kznjhmvi25y2spcdj2r1i6mv673vx8dzf66zfs20v8"; depends=[ape aplot dplyr ggfun ggplot2 magrittr purrr rlang scales tidyr tidytree treeio yulab_utils]; };
+  ggtreeExtra = derive2 { name="ggtreeExtra"; version="1.4.1"; sha256="1lrnwzpkddc3byag4zyjiqhvkdkln03yq9qrxq0981cp6mai3aq7"; depends=[ggnewscale ggplot2 ggtree rlang]; };
   girafe = derive2 { name="girafe"; version="1.46.0"; sha256="1al296zsp454lap05mh58y5lmrd0bfc4vmwaq5icnna56i4bi9m9"; depends=[Biobase BiocGenerics Biostrings genomeIntervals intervals IRanges Rsamtools S4Vectors ShortRead]; };
   glmGamPoi = derive2 { name="glmGamPoi"; version="1.6.0"; sha256="1yffzcy910cawz2lzjqg8h1hrjvrkhz3pdif5q352kpzjklr5qjm"; depends=[beachmat BiocGenerics DelayedArray DelayedMatrixStats HDF5Array matrixStats Rcpp RcppArmadillo SummarizedExperiment]; };
   glmSparseNet = derive2 { name="glmSparseNet"; version="1.12.0"; sha256="14qyj2jgjapjjznjzhslhcfbyxm9z0p28z8qrjqkxcb5z2hw9arq"; depends=[biomaRt dplyr forcats futile_logger ggplot2 glmnet glue httr loose_rock Matrix MultiAssayExperiment readr reshape2 sparsebn sparsebnUtils stringr SummarizedExperiment survminer]; };
@@ -1460,7 +1461,7 @@ in with self; {
   iBMQ = derive2 { name="iBMQ"; version="1.34.0"; sha256="1b15xiv8g8p2qy3dhg80ggppri9v7hawjz2kaj8an231vgl7j546"; depends=[Biobase ggplot2]; };
   iCARE = derive2 { name="iCARE"; version="1.22.0"; sha256="17x6kcrl2wrnj7dmvbyw3cflhv07hymyy78mj0476x0w7aiihwjw"; depends=[gtools Hmisc plotrix]; };
   iCNV = derive2 { name="iCNV"; version="1.14.0"; sha256="1hhmnlq3sliz253badrcwbkdr384pyl2jb3s0dkp585gngz143xg"; depends=[CODEX data_table dplyr fields ggplot2 rlang tidyr truncnorm]; };
-  iCOBRA = derive2 { name="iCOBRA"; version="1.22.0"; sha256="0qg32g1rfvh6mx8wny1lrva9vc347288hzml7yb4rnrsx1hggkpa"; depends=[dplyr DT ggplot2 limma reshape2 ROCR scales shiny shinyBS shinydashboard UpSetR]; };
+  iCOBRA = derive2 { name="iCOBRA"; version="1.22.1"; sha256="05j3h314l2bw8n61h1nyiqhm3z7c1axycn4p3xkfccq5i4mcqvn2"; depends=[dplyr DT ggplot2 limma reshape2 ROCR scales shiny shinyBS shinydashboard UpSetR]; };
   iCheck = derive2 { name="iCheck"; version="1.24.0"; sha256="06nfnj5267j9ynhz8hkzvada1d1yk62zqynif5xm6n7m9sk9fsl5"; depends=[affy Biobase GeneSelectMMD gplots limma lmtest lumi MASS preprocessCore randomForest rgl scatterplot3d]; };
   iChip = derive2 { name="iChip"; version="1.48.0"; sha256="1zlwkw2qva32v515pziif6gdik5a5hqs53f3im12fzn3wgpcxvh0"; depends=[limma]; };
   iClusterPlus = derive2 { name="iClusterPlus"; version="1.30.0"; sha256="0w6r2clk8wdnnnjmq3cspmxiq1c8vwprd66xmdrhcqzbjkpkdw2b"; depends=[]; };
@@ -1476,15 +1477,15 @@ in with self; {
   ideal = derive2 { name="ideal"; version="1.18.0"; sha256="01fix9fwcm1mglpggrkgagy80fg6yh772k4a1m0i5pvm923wcggv"; depends=[AnnotationDbi base64enc BiocParallel DESeq2 dplyr DT GenomicRanges ggplot2 ggrepel GO_db goseq GOstats gplots heatmaply IHW IRanges knitr limma pcaExplorer pheatmap plotly rentrez rintrojs rlang rmarkdown S4Vectors shiny shinyAce shinyBS shinydashboard stringr SummarizedExperiment topGO UpSetR]; };
   idiogram = derive2 { name="idiogram"; version="1.70.0"; sha256="1qpip00mjdmc5vk6ab830ma6p4i0rgz8zih452jsqcfjpgc7q4p4"; depends=[annotate Biobase plotrix]; };
   idpr = derive2 { name="idpr"; version="1.4.0"; sha256="0zakv6rmi3n5b1yd232vmm6qzlmnqkjxqd69fj5blg7lr1jyknjn"; depends=[Biostrings dplyr ggplot2 jsonlite magrittr plyr rlang]; };
-  idr2d = derive2 { name="idr2d"; version="1.8.0"; sha256="0vkqdbifvidhamwav8k2h7kw8anprs3v8yl97kg593nw4564ii3b"; depends=[dplyr futile_logger GenomeInfoDb GenomicRanges ggplot2 idr IRanges magrittr reticulate scales stringr]; };
+  idr2d = derive2 { name="idr2d"; version="1.8.1"; sha256="1cbzyf9nwqgqvz03526v3hxgkrrpfs4m8ajw186cxa4h6kdm232x"; depends=[dplyr futile_logger GenomeInfoDb GenomicRanges ggplot2 idr IRanges magrittr reticulate scales stringr]; };
   igvR = derive2 { name="igvR"; version="1.14.0"; sha256="0i55zx2y92cl22d4x4h4gjdaknyxidsxqz22fpgyfd5abryx5ni3"; depends=[BiocGenerics BrowserViz GenomicAlignments GenomicRanges httpuv MotifDb RColorBrewer rtracklayer seqLogo VariantAnnotation]; };
   illuminaio = derive2 { name="illuminaio"; version="0.36.0"; sha256="0icsp610am5vrd8x2h9c450phn4vl9c5wnzqmkix5hkqzrykk34m"; depends=[base64]; };
   imageHTS = derive2 { name="imageHTS"; version="1.44.0"; sha256="1dg4p6qdhyhqdnpf3gaa1nlnw7d01yxhbhsbaiqnw9q9aprgi8hk"; depends=[Biobase cellHTS2 e1071 EBImage hwriter vsn]; };
-  imcRtools = derive2 { name="imcRtools"; version="1.0.0"; sha256="0c0qq3kxslj925zr7hjqigq4d67h2byazjby1dv1b5l3s5swl5gh"; depends=[abind BiocNeighbors BiocParallel concaveman cytomapper data_table dplyr DT EBImage ggplot2 ggraph igraph magrittr pheatmap readr RTriangle S4Vectors scuttle sf SingleCellExperiment SpatialExperiment stringr SummarizedExperiment tidygraph viridis vroom]; };
+  imcRtools = derive2 { name="imcRtools"; version="1.0.1"; sha256="1skxxkffvllr6iq23pjz50gpk44l3rf74i9qnzcwf8gcv892ccvp"; depends=[abind BiocNeighbors BiocParallel concaveman cytomapper data_table dplyr DT EBImage ggplot2 ggraph igraph magrittr pheatmap readr RTriangle S4Vectors scuttle sf SingleCellExperiment SpatialExperiment stringr SummarizedExperiment tidygraph viridis vroom]; };
   immunoClust = derive2 { name="immunoClust"; version="1.26.0"; sha256="0vqn8455spray252b6kg771mwz4b6f51d4k7srg2i3rn7kyp7r38"; depends=[flowCore lattice]; };
   immunotation = derive2 { name="immunotation"; version="1.2.0"; sha256="1rdmy46grqjf8ydgq0pgaja3jv4jna0yffw7fmiirfh96m2qvb00"; depends=[curl ggplot2 maps ontologyIndex readr rlang rvest stringr tidyr xml2]; };
   impute = derive2 { name="impute"; version="1.68.0"; sha256="0k6dil8ljgp5qr87m7hxli4igb36fbxiwczaqc5pi8mlfh70fqj5"; depends=[]; };
-  infercnv = derive2 { name="infercnv"; version="1.10.0"; sha256="09yipqak5f5v8sf6kdnwl7v3xiaf15lpg6dmkw51inbi2vg23g5j"; depends=[ape argparse BiocGenerics caTools coda coin digest doParallel dplyr edgeR fastcluster fitdistrplus foreach futile_logger future ggplot2 gplots gridExtra HiddenMarkov leiden Matrix phyclust RANN RColorBrewer reshape rjags SingleCellExperiment SummarizedExperiment tidyr]; };
+  infercnv = derive2 { name="infercnv"; version="1.10.1"; sha256="1hmkziaz8w4dlcf4zqpd80rxzb5394hqy8y1sgjidk18x42m88v0"; depends=[ape argparse BiocGenerics caTools coda coin digest doParallel dplyr edgeR fastcluster fitdistrplus foreach futile_logger future ggplot2 gplots gridExtra HiddenMarkov leiden Matrix phyclust RANN RColorBrewer reshape rjags SingleCellExperiment SummarizedExperiment tidyr]; };
   infinityFlow = derive2 { name="infinityFlow"; version="1.4.0"; sha256="1bqkw5z6sxmj10wxzqaszjl5fw4rvfkr9j0w7qvprqyc3335z6a9"; depends=[Biobase flowCore generics gtools matlab pbapply png raster uwot xgboost]; };
   intansv = derive2 { name="intansv"; version="1.34.0"; sha256="1y4s2vpaw0kmzz5qn52yq2dzzivdi5scmxh3w7garbispc6m0v1g"; depends=[BiocGenerics GenomicRanges ggbio IRanges plyr]; };
   interacCircos = derive2 { name="interacCircos"; version="1.4.0"; sha256="1jn3373sj9l5ypc21niv81rfwa2hfmp1g28ab9xx8hdv18rsl8d6"; depends=[htmlwidgets plyr RColorBrewer]; };
@@ -1563,7 +1564,7 @@ in with self; {
   metahdep = derive2 { name="metahdep"; version="1.52.0"; sha256="1pwij0xjrrcvp3c24ia78nsk1lhgxwr16md55h9292vh0pmh4d8w"; depends=[]; };
   metapod = derive2 { name="metapod"; version="1.2.0"; sha256="1s8dfzpgbpxbn3jvx891gvw3jyn43nlxb73yv1vjn85brk9zbqpk"; depends=[Rcpp]; };
   metapone = derive2 { name="metapone"; version="1.0.0"; sha256="0mbbmjv3kwfn78ssar0g2cnajgflxx4gay9m668mryxirnnyvvsr"; depends=[BiocParallel fields markdown]; };
-  metaseqR2 = derive2 { name="metaseqR2"; version="1.6.0"; sha256="122j7466kww6z9vcxnmzy9a42z2iaxc0bl48jx46kikbs5i9in54"; depends=[ABSSeq baySeq Biobase BiocGenerics BiocParallel biomaRt Biostrings corrplot DESeq2 DSS DT EDASeq edgeR genefilter GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges gplots harmonicmeanp heatmaply htmltools httr IRanges jsonlite lattice limma locfit log4r magrittr MASS Matrix NBPSeq pander qvalue rmarkdown rmdformats Rsamtools RSQLite rtracklayer S4Vectors stringr SummarizedExperiment survcomp VennDiagram vsn yaml zoo]; };
+  metaseqR2 = derive2 { name="metaseqR2"; version="1.6.1"; sha256="1sdayf0mdvwqdmqxm62xr5g6llskhsb6s90smxsdr6pp4y7gcr8c"; depends=[ABSSeq baySeq Biobase BiocGenerics BiocParallel biomaRt Biostrings corrplot DESeq2 DSS DT EDASeq edgeR genefilter GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges gplots harmonicmeanp heatmaply htmltools httr IRanges jsonlite lattice limma locfit log4r magrittr MASS Matrix NBPSeq pander qvalue rmarkdown rmdformats Rsamtools RSQLite rtracklayer S4Vectors stringr SummarizedExperiment survcomp VennDiagram vsn yaml zoo]; };
   metavizr = derive2 { name="metavizr"; version="1.18.0"; sha256="1grsk7aw1k9j9qgl033ca7azfifjhv07grpkjd57lpbasjchf9m2"; depends=[Biobase data_table digest epivizr epivizrData epivizrServer epivizrStandalone GenomeInfoDb httr metagenomeSeq phyloseq vegan]; };
   methInheritSim = derive2 { name="methInheritSim"; version="1.16.0"; sha256="0ig4a0v5j2fdc380m4c97477yhwzhi4c8h6cybam12vnl6l8mfr9"; depends=[BiocGenerics GenomeInfoDb GenomicRanges IRanges methylKit msm S4Vectors]; };
   methimpute = derive2 { name="methimpute"; version="1.16.0"; sha256="0dkq86962hrpn4i038bl2j8sjnh0qyfv7x81p5ldrfm55l393wyy"; depends=[Biostrings data_table GenomeInfoDb GenomicRanges ggplot2 IRanges minpack_lm Rcpp reshape2]; };
@@ -1575,7 +1576,7 @@ in with self; {
   methylMnM = derive2 { name="methylMnM"; version="1.32.0"; sha256="1l87588frvl2cs9gf45axq90xhz94xx825zhm1w0gg7pjxgkwdmb"; depends=[edgeR statmod]; };
   methylPipe = derive2 { name="methylPipe"; version="1.27.0"; sha256="0z2md9n1flzfsgsbzwffn4q6yfcjyj03bg1vi4phcknigbhg1viy"; depends=[BiocGenerics Biostrings data_table GenomeInfoDb GenomicAlignments GenomicRanges gplots Gviz IRanges marray Rsamtools S4Vectors SummarizedExperiment]; };
   methylSig = derive2 { name="methylSig"; version="1.6.0"; sha256="0kp1ckxbidwlbv4690g236qhbh9rzjglx8gpmkihq67hfci7537v"; depends=[bsseq DelayedArray DelayedMatrixStats DSS GenomeInfoDb GenomicRanges IRanges S4Vectors]; };
-  methylclock = derive2 { name="methylclock"; version="1.0.0"; sha256="0zx839894d1wp9jd0ksdhikzyww12caqcm18n6yca012d43qkija"; depends=[Biobase devtools dplyr dynamicTreeCut ExperimentHub ggplot2 ggpmisc ggpubr impute methylclockData minfi PerformanceAnalytics preprocessCore quadprog Rcpp RPMM tibble tidyr tidyverse]; };
+  methylclock = derive2 { name="methylclock"; version="1.0.1"; sha256="00j1crflmpk02xxs0gfidrd04s8gaw3l1hiqs7qj522j13ks1q45"; depends=[Biobase devtools dplyr dynamicTreeCut ExperimentHub ggplot2 ggpmisc ggpubr impute methylclockData minfi PerformanceAnalytics preprocessCore quadprog Rcpp RPMM tibble tidyr tidyverse]; };
   methylscaper = derive2 { name="methylscaper"; version="1.2.0"; sha256="0ygkx6fs8rjbqp4ry3am7vd3jsqx3nac1z1hdiib2pvgr7b6h1r7"; depends=[BiocParallel Biostrings data_table Rfast seqinr seriation shiny shinyFiles shinyjs SummarizedExperiment]; };
   methylumi = derive2 { name="methylumi"; version="2.40.1"; sha256="1lfcsv8k9c4ndfwlbdk3vd7fq58100bfijyxklna41zf8m8kkkka"; depends=[annotate AnnotationDbi Biobase BiocGenerics FDb_InfiniumMethylation_hg19 genefilter GenomeInfoDb GenomicFeatures GenomicRanges ggplot2 illuminaio IRanges lattice matrixStats minfi reshape2 S4Vectors scales SummarizedExperiment]; };
   mfa = derive2 { name="mfa"; version="1.16.0"; sha256="1a672zd33bdg0pa490pxrr0jp8vnmnkngb3x12jsqqq56p4dzpjb"; depends=[Biobase coda dplyr ggmcmc ggplot2 magrittr MCMCglmm MCMCpack Rcpp tibble]; };
@@ -1590,14 +1591,14 @@ in with self; {
   miRcomp = derive2 { name="miRcomp"; version="1.24.0"; sha256="1kknr5m62ly03p5yzam5c3hwpaky25g3y92h6z3sg7xfjgsd9qpz"; depends=[Biobase KernSmooth miRcompData]; };
   miRmine = derive2 { name="miRmine"; version="1.16.0"; sha256="0cx7181dsfclq2dplx1wcgnaqhxlgyfxsi0g4ii82yp1ka5fpml4"; depends=[SummarizedExperiment]; };
   miRspongeR = derive2 { name="miRspongeR"; version="1.20.0"; sha256="06nczhbbvx1dmmwry88057zbvw3dq64qn5mn91ipi5qfnckb84wd"; depends=[clusterProfiler corpcor DOSE igraph linkcomm MCL org_Hs_eg_db Rcpp ReactomePA survival varhandle]; };
-  mia = derive2 { name="mia"; version="1.1.19"; sha256="0fzmp349pwlka8qw58mym9zi0z35i7cfs3dnfxlygj58f9a41dk5"; depends=[ape BiocGenerics BiocParallel Biostrings DECIPHER decontam DelayedArray DelayedMatrixStats DirichletMultinomial dplyr IRanges MASS rlang S4Vectors scater scuttle SingleCellExperiment SummarizedExperiment tibble tidyr TreeSummarizedExperiment vegan]; };
+  mia = derive2 { name="mia"; version="1.2.3"; sha256="1la5p4p2m1c4j3i3mzlm0in8vrivkbwrfil597yjlp0z4j9ai481"; depends=[ape BiocGenerics BiocParallel Biostrings DECIPHER decontam DelayedArray DelayedMatrixStats DirichletMultinomial dplyr IRanges MASS MultiAssayExperiment rlang S4Vectors scater scuttle SingleCellExperiment SummarizedExperiment tibble tidyr TreeSummarizedExperiment vegan]; };
   miaSim = derive2 { name="miaSim"; version="1.0.0"; sha256="0870jvqwcg08fyzb4c9qsb6sk7r4sxqzrrfzijd25sdjbqly4zzx"; depends=[deSolve poweRlaw SummarizedExperiment]; };
   miaViz = derive2 { name="miaViz"; version="1.2.0"; sha256="1plkr810cnb6kq7zqlmnx8c2mfa1gzsa92r1hj6xrqx9ykc8hapd"; depends=[ape BiocGenerics BiocParallel DelayedArray DirichletMultinomial dplyr ggnewscale ggplot2 ggraph ggtree mia purrr rlang S4Vectors scater SummarizedExperiment tibble tidygraph tidyr tidytree TreeSummarizedExperiment viridis]; };
   microRNA = derive2 { name="microRNA"; version="1.52.0"; sha256="0x145alfh8qnbnhahxhfygcqc4xwiiirabl9k9nbcyadc5fawfc1"; depends=[Biostrings]; };
   microbiome = derive2 { name="microbiome"; version="1.16.0"; sha256="0j00xbw5gh53bfij8q3q2pa8lwvn3wb23vs9lybvlhjp725h064z"; depends=[dplyr ggplot2 phyloseq reshape2 Rtsne scales tibble tidyr vegan]; };
   microbiomeDASim = derive2 { name="microbiomeDASim"; version="1.8.0"; sha256="0g3lnwr5v62lkfz5fwdpjs9lr9vb8h8grqqrvwhyin5xmgkr5lnn"; depends=[Biobase ggplot2 MASS Matrix metagenomeSeq mvtnorm pbapply phyloseq tmvtnorm]; };
   microbiomeExplorer = derive2 { name="microbiomeExplorer"; version="1.4.0"; sha256="0ghsv6yf6v3b2xqv6a5r2q0glzajmy5wa3qhsnds6v0gj62v5ycg"; depends=[Biobase biomformat broom car DESeq2 dplyr DT forcats heatmaply knitr limma lubridate magrittr matrixStats metagenomeSeq plotly purrr RColorBrewer readr reshape2 rlang rmarkdown shiny shinycssloaders shinydashboard shinyjs shinyWidgets stringr tibble tidyr vegan]; };
-  microbiomeMarker = derive2 { name="microbiomeMarker"; version="1.0.0"; sha256="0sd5y2a4gl3j7z3hq1vzdlzv1dbqzdc0ifhk948wrb9mqfmgbqhq"; depends=[ALDEx2 ANCOMBC Biobase BiocGenerics biomformat Biostrings caret coin ComplexHeatmap DESeq2 dplyr edgeR ggplot2 ggsignif ggtree IRanges limma magrittr MASS metagenomeSeq multtest patchwork phyloseq plotROC purrr rlang S4Vectors tibble tidyr tidytree yaml]; };
+  microbiomeMarker = derive2 { name="microbiomeMarker"; version="1.0.1"; sha256="1q0d3vi0gvxyj7sala385b7xxy6qynq4agmn6lhfgipw05qr1fyk"; depends=[ALDEx2 ANCOMBC Biobase BiocGenerics biomformat Biostrings caret coin ComplexHeatmap DESeq2 dplyr edgeR ggplot2 ggsignif ggtree IRanges limma magrittr MASS metagenomeSeq multtest patchwork phyloseq plotROC purrr rlang S4Vectors tibble tidyr tidytree yaml]; };
   midasHLA = derive2 { name="midasHLA"; version="1.2.0"; sha256="1dnqx9h3qz5p6l19s0nm90a35523cn32ymgg8pri5rc3jfrilv9k"; depends=[assertthat broom dplyr formattable HardyWeinberg kableExtra knitr magrittr MultiAssayExperiment qdapTools rlang S4Vectors stringi SummarizedExperiment tibble]; };
   miloR = derive2 { name="miloR"; version="1.2.0"; sha256="1pvd8kdh6mmv10ryq038qwr07w5g0n6pnpchb653i3dixygkgd94"; depends=[BiocNeighbors BiocParallel BiocSingular cowplot dplyr edgeR ggbeeswarm ggplot2 ggraph ggrepel gtools igraph irlba limma Matrix matrixStats patchwork RColorBrewer S4Vectors SingleCellExperiment stringr SummarizedExperiment tibble tidyr]; };
   mimager = derive2 { name="mimager"; version="1.18.0"; sha256="0xd5yxbljyxzvdr8y28qk1pl9sy44q9pxkpcfmxphsbf6bvy0d5b"; depends=[affy affyPLM Biobase BiocGenerics DBI gtable oligo oligoClasses preprocessCore S4Vectors scales]; };
@@ -1611,14 +1612,14 @@ in with self; {
   mistyR = derive2 { name="mistyR"; version="1.2.1"; sha256="1a3z8d1n0asis3fmpzsiyj13mhrsm72lqx36y4bj6rf3vhzsxny3"; depends=[assertthat caret deldir digest distances dplyr filelock furrr ggplot2 MASS purrr R_utils ranger readr rlang rlist stringr tibble tidyr withr]; };
   mitch = derive2 { name="mitch"; version="1.6.0"; sha256="1hllnfrc191dz4m8w9b1c4r2l0f44v9nrjan0kmmxhkki408isyn"; depends=[beeswarm echarts4r GGally ggplot2 gplots gridExtra knitr MASS plyr reshape2 rmarkdown]; };
   mitoClone2 = derive2 { name="mitoClone2"; version="1.0.0"; sha256="1miycq8vc79i3x2nl44b5icsbnp23brljc3ic92byk0zdcp3dqh5"; depends=[deepSNV GenomicRanges ggplot2 pheatmap reshape2 Rhtslib S4Vectors]; };
-  mixOmics = derive2 { name="mixOmics"; version="6.17.26"; sha256="10ir4876sjmw2mw0cjvshwy3qyhsyz6g1ihyr3dycgzya0jcxw1x"; depends=[BiocParallel corpcor dplyr ellipse ggplot2 ggrepel gridExtra igraph lattice MASS matrixStats rARPACK RColorBrewer reshape2 tidyr]; };
+  mixOmics = derive2 { name="mixOmics"; version="6.18.1"; sha256="1wpskrnl2bry9m4k2djhjddcd8gpwf51gp5c3si1y7qxja78ql9f"; depends=[BiocParallel corpcor dplyr ellipse ggplot2 ggrepel gridExtra igraph lattice MASS matrixStats rARPACK RColorBrewer reshape2 tidyr]; };
   mnem = derive2 { name="mnem"; version="1.10.0"; sha256="078x80j1jh7drv4fkly9gayiajszjvbjfk82aslicajh9hn04rmq"; depends=[cluster data_table e1071 flexclust ggplot2 graph lattice Linnorm matrixStats naturalsort Rcpp RcppEigen Rgraphviz snowfall tsne wesanderson]; };
   moanin = derive2 { name="moanin"; version="1.2.0"; sha256="1fd4hi32krzwbpxz2qn1sh26zph94lvfkx4gc7dga911r3cms8y2"; depends=[ClusterR edgeR limma MASS matrixStats NMI reshape2 S4Vectors SummarizedExperiment topGO viridis zoo]; };
   mogsa = derive2 { name="mogsa"; version="1.28.0"; sha256="0a7d81grd3dn1im4q0xss0qqvgbas9yh5lc24fz05hbfbzwgzr2l"; depends=[Biobase BiocGenerics cluster corpcor genefilter gplots graphite GSEABase svd]; };
   monaLisa = derive2 { name="monaLisa"; version="1.0.0"; sha256="0idfq3l3sxx2gxcksvvk6ayyv2zb9hb5bls6dkincv7mraa20max"; depends=[BiocGenerics BiocParallel Biostrings BSgenome circlize ComplexHeatmap GenomeInfoDb GenomicRanges glmnet IRanges S4Vectors stabs SummarizedExperiment TFBSTools vioplot XVector]; };
   monocle = derive2 { name="monocle"; version="2.22.0"; sha256="0wb2c1jf502lrfx3d0amb09fvhalrwxvpsp99jsab162v4hddg85"; depends=[Biobase BiocGenerics biocViews cluster combinat DDRTree densityClust dplyr fastICA ggplot2 HSMMSingleCell igraph irlba limma MASS Matrix matrixStats pheatmap plyr proxy qlcMatrix RANN Rcpp reshape2 Rtsne slam stringr tibble VGAM viridis]; };
   mosaics = derive2 { name="mosaics"; version="2.32.0"; sha256="09qz4xl9xhzidw0w41bp0adkbhnasa309yn8rdi9nsfpswhaiysb"; depends=[GenomeInfoDb GenomicAlignments GenomicRanges IRanges lattice MASS Rcpp Rsamtools S4Vectors]; };
-  mosbi = derive2 { name="mosbi"; version="1.0.0"; sha256="07wnz85qcs9zqc9xjmkxs6nhdsbhgbi1bmsri299ng3ib92vlh6j"; depends=[akmbiclust BH biclust fabia igraph isa2 QUBIC RColorBrewer Rcpp RcppParallel xml2]; };
+  mosbi = derive2 { name="mosbi"; version="1.0.1"; sha256="1sazkkwm95j6yrnmin22dh0ir08d6l3i85imqzlvyf1qigqgyk2d"; depends=[akmbiclust BH biclust fabia igraph isa2 QUBIC RColorBrewer Rcpp RcppParallel xml2]; };
   motifStack = derive2 { name="motifStack"; version="1.38.0"; sha256="1ck6bbnrab8mbf70alfdsrcv6lq0fkvcy3klhcwyxxir7r9sgbaz"; depends=[ade4 Biostrings ggplot2 htmlwidgets XML]; };
   motifbreakR = derive2 { name="motifbreakR"; version="2.8.0"; sha256="0lrgy64sv2ma6kylp4lsbwkg6ci1kn6qkk0cvzw3m4k3bgia1npj"; depends=[BiocGenerics BiocParallel Biostrings BSgenome GenomeInfoDb GenomicRanges grImport Gviz IRanges matrixStats MotifDb motifStack rtracklayer S4Vectors stringr SummarizedExperiment TFMPvalue VariantAnnotation]; };
   motifcounter = derive2 { name="motifcounter"; version="1.18.0"; sha256="17yhhg423yjhaix9x2w2484l22vj6ra086ymzdfhygnjz5vanpmd"; depends=[Biostrings]; };
@@ -1674,7 +1675,7 @@ in with self; {
   nuCpos = derive2 { name="nuCpos"; version="1.12.0"; sha256="1sqanvdhmvbyr52mc5hvsp2kdfgy8d8bh2w4av213i96nqmz55vw"; depends=[]; };
   nucleR = derive2 { name="nucleR"; version="2.26.0"; sha256="0wfgfjrjvd0gg7i2zjxsc37dk3s7cw4jqd41hrqq31m2iqgbk6lk"; depends=[Biobase BiocGenerics Biostrings dplyr GenomeInfoDb GenomicRanges ggplot2 IRanges magrittr Rsamtools S4Vectors ShortRead]; };
   nucleoSim = derive2 { name="nucleoSim"; version="1.22.0"; sha256="1y0f8dlarb5cm3na691ik04f3vwzdfzbd9fvffcgkfj9py6y28n5"; depends=[IRanges S4Vectors]; };
-  nullranges = derive2 { name="nullranges"; version="1.0.0"; sha256="0n29ij0q96ridwbwvgsyj8c17dbscfgwgama0lxjcbvrdp4dnclh"; depends=[data_table GenomeInfoDb GenomicRanges ggplot2 ggridges InteractionSet IRanges ks plyranges progress rlang S4Vectors scales speedglm]; };
+  nullranges = derive2 { name="nullranges"; version="1.0.1"; sha256="1cj57qq6hhkva2n1nx8d6mbmk04w86h987rydxg61cfc5k1b0j0p"; depends=[data_table GenomeInfoDb GenomicRanges ggplot2 ggridges InteractionSet IRanges ks plyranges progress rlang S4Vectors scales speedglm]; };
   occugene = derive2 { name="occugene"; version="1.54.0"; sha256="0kri0356b4560liv9c64nvjmyyssyb93xh244k1k2q50yy5il5b0"; depends=[]; };
   odseq = derive2 { name="odseq"; version="1.22.0"; sha256="14bkx7b1pc3kdmn1s9vbc5rb3wxzyyi8n56yrkiqvxc99zl3s9cr"; depends=[kebabs mclust msa]; };
   oligo = derive2 { name="oligo"; version="1.58.0"; sha256="1cmnnq0d5xsjsx8c8n8wcl6l9d31sbglb8yrsibykcvnhw15fsf6"; depends=[affxparser affyio Biobase BiocGenerics Biostrings DBI ff oligoClasses preprocessCore RSQLite zlibbioc]; };
@@ -1742,7 +1743,7 @@ in with self; {
   plgem = derive2 { name="plgem"; version="1.66.0"; sha256="06w8xlw4j1fc9ipdgw55dvhp07f04icmhr20lqzwwhqd5pskrra3"; depends=[Biobase MASS]; };
   plier = derive2 { name="plier"; version="1.64.0"; sha256="1sw89kici1h2xfg7zvrfdm7b7iw5n3mzwhyz82676w2vk0lgkpn4"; depends=[affy Biobase]; };
   plotGrouper = derive2 { name="plotGrouper"; version="1.12.0"; sha256="191grbs8sy8jfxz9a6vsp9qf3zaqppp23fcl5qdrmfzims9krhlw"; depends=[colourpicker dplyr egg ggplot2 ggpubr gridExtra gtable Hmisc magrittr readr readxl rlang scales shiny shinythemes stringr tibble tidyr]; };
-  plotgardener = derive2 { name="plotgardener"; version="1.0.0"; sha256="02qqzqb4fdfg3j0hhfjpy8q7xbbsb2n2d79pvsa1dhyihwai5w0q"; depends=[curl data_table dplyr ggplotify plyranges purrr RColorBrewer Rcpp rlang strawr]; };
+  plotgardener = derive2 { name="plotgardener"; version="1.0.3"; sha256="0ndmbmfpxnxkg8x58xljcpa80lrv1dy2sp2n0nrkp0fnw4ymvhcc"; depends=[curl data_table dplyr ggplotify plyranges purrr RColorBrewer Rcpp rlang strawr]; };
   plyranges = derive2 { name="plyranges"; version="1.14.0"; sha256="1s4zyr57x71v9ywdz6s27z158nhazwhmhkx3944l8zsqd5ciwnnc"; depends=[BiocGenerics dplyr GenomeInfoDb GenomicAlignments GenomicRanges IRanges magrittr rlang Rsamtools rtracklayer S4Vectors tidyselect]; };
   pmm = derive2 { name="pmm"; version="1.26.0"; sha256="0vmkpqxf0lfgkbmyvham128201d33dv3wf9g31nrlwnxd0jcxszn"; depends=[lme4]; };
   pmp = derive2 { name="pmp"; version="1.6.0"; sha256="15yggymqh329f2ibhmg9wmh76hbyn0gpz9k1cxzkvh787lss1w72"; depends=[ggplot2 impute matrixStats missForest pcaMethods reshape2 S4Vectors SummarizedExperiment]; };
@@ -1821,7 +1822,7 @@ in with self; {
   recount3 = derive2 { name="recount3"; version="1.4.0"; sha256="0ciaab6q0pix7zhz7948b8w3qki8dfy9lpa0wffhqjr7fvfh2km2"; depends=[BiocFileCache data_table GenomicRanges Matrix R_utils RCurl rtracklayer S4Vectors sessioninfo SummarizedExperiment]; };
   recountmethylation = derive2 { name="recountmethylation"; version="1.4.0"; sha256="14b06842a97q9cggz6l7kfrlal1kaiq49j2f8sql4b2p6qdh4dpn"; depends=[BiocFileCache HDF5Array minfi R_utils RCurl rhdf5 S4Vectors]; };
   recoup = derive2 { name="recoup"; version="1.22.0"; sha256="00qxkjjb4bx6vak50jjpl2l9y7myri9x7m17h01j2v2cncg48s55"; depends=[BiocGenerics biomaRt Biostrings circlize ComplexHeatmap GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 httr IRanges Rsamtools RSQLite rtracklayer S4Vectors stringr]; };
-  regionReport = derive2 { name="regionReport"; version="1.27.1"; sha256="0nf77g6x67dakbb3i55d65rcma4nya8lkjm5d8wbpq7hhvfhy2p1"; depends=[BiocStyle DEFormats derfinder DESeq2 GenomeInfoDb GenomicRanges knitr knitrBootstrap RefManageR rmarkdown S4Vectors SummarizedExperiment]; };
+  regionReport = derive2 { name="regionReport"; version="1.28.1"; sha256="03d7nbfsk55mrlhzzr81mx3ndswkfj7fajyh1yz4jakjdclvzlxm"; depends=[BiocStyle DEFormats derfinder DESeq2 GenomeInfoDb GenomicRanges knitr knitrBootstrap RefManageR rmarkdown S4Vectors SummarizedExperiment]; };
   regioneR = derive2 { name="regioneR"; version="1.26.0"; sha256="0y1mawzfvxrympc47q3isk96sl9d1bc8kdsxpm8rnhqg5bmgwya6"; depends=[Biostrings BSgenome GenomeInfoDb GenomicRanges IRanges memoise rtracklayer S4Vectors]; };
   regsplice = derive2 { name="regsplice"; version="1.20.0"; sha256="1vm1vvi5gfw5ssyi0qng3jmanvyl2mx08w9bi5990pj0j6ycc70y"; depends=[edgeR glmnet limma pbapply S4Vectors SummarizedExperiment]; };
   regutools = derive2 { name="regutools"; version="1.6.0"; sha256="03gjlpn1pk2xkcbg4i1az505nq2gi6ajplq3asbg1fl9p2dbw8kh"; depends=[AnnotationDbi AnnotationHub BiocFileCache Biostrings DBI GenomicRanges Gviz IRanges RCy3 RSQLite S4Vectors]; };
@@ -1835,7 +1836,7 @@ in with self; {
   rhdf5filters = derive2 { name="rhdf5filters"; version="1.6.0"; sha256="05b015pyp3g1crmm2d3ldsa7r5w0khmf87qbl4fv16r6pdggha78"; depends=[Rhdf5lib]; };
   riboSeqR = derive2 { name="riboSeqR"; version="1.28.0"; sha256="0nnhjvjl4c9yyfzjf8kcj4yky5cdimicp7lz008sczy19jq4vjhd"; depends=[abind baySeq GenomeInfoDb GenomicRanges IRanges Rsamtools seqLogo]; };
   ribor = derive2 { name="ribor"; version="1.6.0"; sha256="0g6z3rlmf3i6w3j0dldycz9k8jbg3d2ilv319270515j0lmmdngc"; depends=[dplyr ggplot2 hash rhdf5 rlang S4Vectors tidyr yaml]; };
-  ribosomeProfilingQC = derive2 { name="ribosomeProfilingQC"; version="1.6.0"; sha256="18ix3mp725vmmd1a4jvl9ayby1pjn1pir54a42aflbb8bq0g46rz"; depends=[AnnotationDbi BiocGenerics Biostrings BSgenome cluster EDASeq GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggfittext ggplot2 ggrepel IRanges motifStack Rsamtools Rsubread rtracklayer RUVSeq S4Vectors scales XVector]; };
+  ribosomeProfilingQC = derive2 { name="ribosomeProfilingQC"; version="1.6.1"; sha256="13wg6vrv69fjz0yqf4s4k1gr09zp3p7bpf6p03an8jah8b566s66"; depends=[AnnotationDbi BiocGenerics Biostrings BSgenome cluster EDASeq GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggfittext ggplot2 ggrepel IRanges motifStack Rsamtools Rsubread rtracklayer RUVSeq S4Vectors scales XVector]; };
   rmelting = derive2 { name="rmelting"; version="1.10.0"; sha256="0jhlwnllp6zpi5prd9g51c1czi994jvky3f2v84p9hvgf91xf5f8"; depends=[Rdpack rJava]; };
   rmspc = derive2 { name="rmspc"; version="1.0.0"; sha256="1fszm50s87xafddspwl6cjg8gbp7mvd16w6ajz8fy0wlc4x5qia3"; depends=[BiocManager GenomicRanges processx rtracklayer stringr]; };
   rnaEditr = derive2 { name="rnaEditr"; version="1.4.0"; sha256="0hs3g7cr6c8gcvg1svv88r4h68364gfnqsmdjc6llwg2l1j36a8w"; depends=[BiocGenerics bumphunter corrplot GenomeInfoDb GenomicRanges IRanges logistf plyr S4Vectors survival]; };
@@ -1897,8 +1898,8 @@ in with self; {
   scone = derive2 { name="scone"; version="1.18.0"; sha256="1fqlwg195rzpwh35cj941vhmj2plzpn253skig6glr0z2sirr9r1"; depends=[aroma_light BiocParallel boot class cluster compositions diptest edgeR fpc gplots hexbin limma MatrixGenerics matrixStats mixtools rARPACK RColorBrewer rhdf5 RUVSeq SingleCellExperiment SummarizedExperiment]; };
   scoreInvHap = derive2 { name="scoreInvHap"; version="1.16.0"; sha256="1y8b8yw0d0b65pka31lfcbdr5knvmihx2shcww76613j3vkk1m77"; depends=[BiocParallel Biostrings GenomicRanges snpStats SummarizedExperiment VariantAnnotation]; };
   scp = derive2 { name="scp"; version="1.4.0"; sha256="1jjczmyihdbvrhv7n4qv58jm1wjw09axk6mixr2yd9fkhxkwc2fy"; depends=[dplyr magrittr matrixStats MsCoreUtils MultiAssayExperiment QFeatures rlang S4Vectors SingleCellExperiment SummarizedExperiment]; };
-  scran = derive2 { name="scran"; version="1.22.0"; sha256="1nyvbss4914giwzp5wiw9g4z5b6lr5iprbjrqlg4vpgnf1hz8k7l"; depends=[beachmat BH BiocGenerics BiocParallel BiocSingular bluster DelayedArray DelayedMatrixStats dqrng edgeR igraph limma Matrix metapod Rcpp S4Vectors scuttle SingleCellExperiment statmod SummarizedExperiment]; };
-  scruff = derive2 { name="scruff"; version="1.12.0"; sha256="133frf2s1r4zcv868q1br74fsssrvjvj4jh0zxfzvv44sp9q7mvp"; depends=[AnnotationDbi BiocGenerics BiocParallel Biostrings data_table GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggbio ggplot2 ggthemes plyr Rsamtools Rsubread rtracklayer S4Vectors scales ShortRead SingleCellExperiment stringdist SummarizedExperiment]; };
+  scran = derive2 { name="scran"; version="1.22.1"; sha256="06lcxya6rpa8dv0il7m7fwyx0ci1y1jn16ff5lmvzf2mnr6q7lic"; depends=[beachmat BH BiocGenerics BiocParallel BiocSingular bluster DelayedArray DelayedMatrixStats dqrng edgeR igraph limma Matrix metapod Rcpp S4Vectors scuttle SingleCellExperiment statmod SummarizedExperiment]; };
+  scruff = derive2 { name="scruff"; version="1.12.1"; sha256="0fikkh5pmsbgdgddn4mxmz4liapl7gm2fvs9wlfjvnx457423ydz"; depends=[AnnotationDbi BiocGenerics BiocParallel Biostrings data_table GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggbio ggplot2 ggthemes plyr Rsamtools Rsubread rtracklayer S4Vectors scales ShortRead SingleCellExperiment stringdist SummarizedExperiment]; };
   scry = derive2 { name="scry"; version="1.6.0"; sha256="1qp40k5l6splpj4gqgsgx07ys63j8gixdycsjzkgmd13l7awhdf2"; depends=[BiocSingular DelayedArray glmpca HDF5Array Matrix SingleCellExperiment SummarizedExperiment]; };
   scuttle = derive2 { name="scuttle"; version="1.4.0"; sha256="1dbdb6yc6wk01dljy1vy6f0lf44crc5rxxnc4bhjk8i4iljz8467"; depends=[beachmat BiocGenerics BiocParallel DelayedArray DelayedMatrixStats GenomicRanges Matrix Rcpp S4Vectors SingleCellExperiment SummarizedExperiment]; };
   sechm = derive2 { name="sechm"; version="1.2.0"; sha256="0b6izkd276d57vxfi7iip26zkvm7dyd1sml9bh5gcfr1k50ylfiv"; depends=[circlize ComplexHeatmap randomcoloR S4Vectors seriation SummarizedExperiment]; };
@@ -1915,7 +1916,7 @@ in with self; {
   seqbias = derive2 { name="seqbias"; version="1.42.0"; sha256="1q608c1madij8l52ljl3w52vi3cssr6ikny84yj6n8s7yvpx5jpr"; depends=[Biostrings GenomicRanges Rhtslib]; };
   seqcombo = derive2 { name="seqcombo"; version="1.16.0"; sha256="0xyrjbvgrld5sy6g6sp79f43j93jnyccwg21il65fqrzb7z4d7xk"; depends=[Biostrings cowplot dplyr ggplot2 igraph magrittr yulab_utils]; };
   seqsetvis = derive2 { name="seqsetvis"; version="1.14.0"; sha256="053y3vxn7ndwx21d41k5xf6wki37kxlr4ghvfq1w2f9w7cc59yb7"; depends=[data_table eulerr GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 ggplotify IRanges limma pbapply pbmcapply png RColorBrewer Rsamtools rtracklayer S4Vectors UpSetR]; };
-  sesame = derive2 { name="sesame"; version="1.12.0"; sha256="06cmbbf62h7f3rv1ika6x3cpsd4mghi9wmv5a4gi1fasxh6h84y9"; depends=[BiocParallel DNAcopy e1071 fgsea GenomicRanges ggplot2 ggrepel illuminaio IRanges KernSmooth MASS matrixStats preprocessCore randomForest reshape2 S4Vectors sesameData stringr SummarizedExperiment tibble wheatmap]; };
+  sesame = derive2 { name="sesame"; version="1.12.5"; sha256="11fbl5gd9na821l6sq74n73id6q198qx1s7w445i4rf3jvvhbj6v"; depends=[BiocParallel DNAcopy e1071 fgsea GenomicRanges ggplot2 ggrepel illuminaio IRanges KernSmooth MASS matrixStats preprocessCore randomForest reshape2 S4Vectors sesameData stringr SummarizedExperiment tibble wheatmap]; };
   sevenC = derive2 { name="sevenC"; version="1.14.0"; sha256="06m6479ps7896zaks8jnnak8l7c6abbsdx56k3l5ir78681g4bq1"; depends=[BiocGenerics boot data_table GenomeInfoDb GenomicRanges InteractionSet IRanges purrr readr rtracklayer S4Vectors]; };
   sevenbridges = derive2 { name="sevenbridges"; version="1.24.0"; sha256="03p7p1mwa3m8zvyz5761xmqhch6cfgy42cv0swwgj0n9jr83sc23"; depends=[curl data_table docopt httr jsonlite objectProperties S4Vectors stringr uuid yaml]; };
   shinyMethyl = derive2 { name="shinyMethyl"; version="1.30.0"; sha256="0ihs4l4r46qyv7j8a2g590x86y0dwki2gzllwq2a31il34jrbgq5"; depends=[BiocGenerics IlluminaHumanMethylation450kmanifest matrixStats minfi RColorBrewer shiny]; };
@@ -1946,7 +1947,7 @@ in with self; {
   snpStats = derive2 { name="snpStats"; version="1.44.0"; sha256="0ha34b5cg26940xihgky45adns1nflrgq2qjq77w4bncxpaacsqq"; depends=[BiocGenerics Matrix survival zlibbioc]; };
   soGGi = derive2 { name="soGGi"; version="1.26.0"; sha256="1g2lsi8nqpi2vm284jv1ab3i9k03kwqsy9zf51vfnpqq31lrdlki"; depends=[BiocGenerics BiocParallel Biostrings chipseq GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges preprocessCore reshape2 Rsamtools rtracklayer S4Vectors SummarizedExperiment]; };
   sojourner = derive2 { name="sojourner"; version="1.8.0"; sha256="0ld1gh6vznmvd09xrza5xs93n3g0vf8zqymn58b23rilsrvm2cbc"; depends=[dplyr EBImage fitdistrplus ggplot2 gridExtra lattice MASS mclust minpack_lm mixtools mltools nls2 pixmap plyr R_matlab Rcpp reshape2 rlang sampSurf scales shiny shinyjs sp truncnorm]; };
-  sparrow = derive2 { name="sparrow"; version="1.0.0"; sha256="1rn4mq2hkpn1902iy20vz7npqjjdzglmx0al3r98l3sshh8pqnxc"; depends=[babelgene BiocGenerics BiocParallel BiocSet checkmate circlize ComplexHeatmap data_table DelayedMatrixStats edgeR ggplot2 GSEABase irlba limma Matrix plotly viridis]; };
+  sparrow = derive2 { name="sparrow"; version="1.0.1"; sha256="1i0dzj5wnphfhxdl6gmwf3qy8x9v5vb7c35mkq5xml6miwl3x5ha"; depends=[babelgene BiocGenerics BiocParallel BiocSet checkmate circlize ComplexHeatmap data_table DelayedMatrixStats edgeR ggplot2 GSEABase irlba limma Matrix plotly viridis]; };
   sparseDOSSA = derive2 { name="sparseDOSSA"; version="1.18.0"; sha256="1rn8jv2b3fmyibgc6h91mhnl9nzqkds02pvj6vbq12pfvhhb021i"; depends=[MASS MCMCpack optparse tmvtnorm]; };
   sparseMatrixStats = derive2 { name="sparseMatrixStats"; version="1.6.0"; sha256="0ifqj4a6mn4749sr62gq3dwd6mmbbzdx5mh5b5663vcgl1kw96x1"; depends=[Matrix MatrixGenerics matrixStats Rcpp]; };
   sparsenetgls = derive2 { name="sparsenetgls"; version="1.12.0"; sha256="0g8vbzhzyccyi77x49c8idhwy357a2azywvllinjapgwiy88s02a"; depends=[glmnet huge MASS Matrix]; };
@@ -1958,7 +1959,7 @@ in with self; {
   spikeLI = derive2 { name="spikeLI"; version="2.54.0"; sha256="1ndxvamn2q6ad86dfql1qa7c87xfg8q3zk6f33ip458ikmx16h3f"; depends=[]; };
   spiky = derive2 { name="spiky"; version="1.0.0"; sha256="0r8n6icjkhwaq395ikcw64wgks89s84a97xc8lwgrb4lkmnlkgyj"; depends=[bamlss Biostrings BlandAltmanLeh BSgenome GenomeInfoDb GenomicAlignments GenomicRanges ggplot2 IRanges Rsamtools S4Vectors scales]; };
   spkTools = derive2 { name="spkTools"; version="1.50.0"; sha256="1fbh8lfhl3j7dgx7my3ajjfvzfl0x5rm3m0hszm9dk7zvn6zl67x"; depends=[Biobase gtools RColorBrewer]; };
-  splatter = derive2 { name="splatter"; version="1.18.0"; sha256="0wxg4s7xragzd0ixav95jvc1ydizvnszgcvrzsn2fn9hmdi8bc2q"; depends=[BiocGenerics BiocParallel checkmate crayon edgeR fitdistrplus ggplot2 locfit matrixStats S4Vectors scales scater SingleCellExperiment SummarizedExperiment]; };
+  splatter = derive2 { name="splatter"; version="1.18.1"; sha256="1cbq3yfgpv54xkgax1m4c4vh29afdfffs7f8xi7fp7acvp365azx"; depends=[BiocGenerics BiocParallel checkmate crayon edgeR fitdistrplus ggplot2 locfit matrixStats S4Vectors scales scater SingleCellExperiment SummarizedExperiment]; };
   splineTimeR = derive2 { name="splineTimeR"; version="1.22.0"; sha256="0pbfflicb2zpiddslivyh9i2vly6h8jfbmpm38ljijzshmsvra6v"; depends=[Biobase FIs GeneNet GSEABase gtools igraph limma longitudinal]; };
   splots = derive2 { name="splots"; version="1.60.0"; sha256="0ng1shqpjmgbfs4hlcfncq4ipl59a9xwv42h7zcc45hzm7013fq9"; depends=[RColorBrewer]; };
   spqn = derive2 { name="spqn"; version="1.6.0"; sha256="081b87w4gsrqp9ny9gqc85g4nm17kxrs2bagxgja280hf7ry2f08"; depends=[BiocGenerics ggplot2 ggridges matrixStats SummarizedExperiment]; };
@@ -1991,7 +1992,7 @@ in with self; {
   synapsis = derive2 { name="synapsis"; version="1.0.0"; sha256="1kqapzcd2zvmyaqshcrfxkkaf6k7kwaqnd6g4dhnjcf2wqnf6fs5"; depends=[EBImage]; };
   synergyfinder = derive2 { name="synergyfinder"; version="3.2.2"; sha256="0kpvp0lamchbgs4p34pbq14y3zrmgk0pgil0qhsrm3kv1pizk1w8"; depends=[dplyr drc furrr future ggforce ggplot2 ggrepel gstat kriging lattice magrittr metR mice nleqslv pbapply plotly purrr reshape2 sp SpatialExtremes stringr tidyr tidyverse vegan]; };
   synlet = derive2 { name="synlet"; version="1.24.0"; sha256="1xidxlkppap0x8h9iiyl78lcx50ckpg46n8pl49vz4435vd6grp2"; depends=[doBy dplyr ggplot2 magrittr RankProd RColorBrewer reshape2]; };
-  systemPipeR = derive2 { name="systemPipeR"; version="2.0.0"; sha256="0kibr47z7ml13hpl955qcr4wp2z4nq7gjiinyk30wivrwrng5sg1"; depends=[BiocGenerics Biostrings crayon GenomicRanges ggplot2 htmlwidgets magrittr Rsamtools S4Vectors ShortRead stringr SummarizedExperiment yaml]; };
+  systemPipeR = derive2 { name="systemPipeR"; version="2.0.2"; sha256="0yy95gqss9mzqbab8rv2vy14vcn32kgnhlsl0ixqs60ckpfkh0pb"; depends=[BiocGenerics Biostrings crayon GenomicRanges ggplot2 htmlwidgets magrittr Rsamtools S4Vectors ShortRead stringr SummarizedExperiment yaml]; };
   systemPipeShiny = derive2 { name="systemPipeShiny"; version="1.4.0"; sha256="0h803ijajf32igfknkaivlzrc323apzligq1j8ghpf02q7f5q830"; depends=[assertthat bsplus crayon dplyr drawer DT ggplot2 glue htmltools magrittr openssl plotly R6 rlang RSQLite rstudioapi shiny shinyAce shinydashboard shinydashboardPlus shinyFiles shinyjqui shinyjs shinytoastr shinyWidgets spsComps spsUtil stringr styler tibble vroom yaml]; };
   systemPipeTools = derive2 { name="systemPipeTools"; version="1.2.0"; sha256="1n53nwb00zmrhb8h1fq4lqzdd87f74c4l1z24sid4xrjssylrnwr"; depends=[ape DESeq2 dplyr DT GGally ggplot2 ggrepel ggtree glmpca magrittr pheatmap plotly Rtsne SummarizedExperiment tibble]; };
   tLOH = derive2 { name="tLOH"; version="1.2.0"; sha256="0k3lqlivxbv4gaipiskhpl34rjrmrn1x4243awxnvbhhvaqq5r50"; depends=[data_table dplyr GenomicRanges ggplot2 MatrixGenerics purrr scales VariantAnnotation]; };
@@ -2023,11 +2024,11 @@ in with self; {
   transcriptR = derive2 { name="transcriptR"; version="1.22.0"; sha256="1p5l2z3szx3qh02x7r81ajl7yc5wqsri6q6pzw83livmalcli5yy"; depends=[BiocGenerics caret chipseq e1071 GenomeInfoDb GenomicAlignments GenomicFeatures GenomicRanges ggplot2 IRanges pROC reshape2 Rsamtools rtracklayer S4Vectors]; };
   transcriptogramer = derive2 { name="transcriptogramer"; version="1.16.0"; sha256="15kb8b99bk1an4gkxc3fik0kqfvvp93rh2kb5vrw6zl5s1vqhpjk"; depends=[biomaRt data_table doSNOW foreach ggplot2 igraph limma progress RedeR snow tidyr topGO]; };
   transformGamPoi = derive2 { name="transformGamPoi"; version="1.0.0"; sha256="0fxf5iin0mqmwshm9vgcp2m7832jw11jlcis33saz1b40clajr22"; depends=[DelayedArray glmGamPoi HDF5Array Matrix MatrixGenerics SummarizedExperiment]; };
-  transite = derive2 { name="transite"; version="1.12.0"; sha256="1w6nn720jrch4abm1z0hvpkniklq15n3ai6c0sxg11q6nkx4j028"; depends=[BiocGenerics Biostrings dplyr GenomicRanges ggplot2 ggseqlogo gridExtra Rcpp scales TFMPvalue]; };
+  transite = derive2 { name="transite"; version="1.12.1"; sha256="0ykkwrhrmqh17dav2g14ispsnppk0w1kbqwhvjc36w3q9nbacaz2"; depends=[BiocGenerics Biostrings dplyr GenomicRanges ggplot2 ggseqlogo gridExtra Rcpp scales TFMPvalue]; };
   transomics2cytoscape = derive2 { name="transomics2cytoscape"; version="1.4.0"; sha256="1jbk224x4nzlzd19ydy8bly4fs6l7qx7rk07i4zd4l6h622nz78k"; depends=[dplyr KEGGREST RCy3]; };
   traseR = derive2 { name="traseR"; version="1.24.0"; sha256="0ch8hamhjjdcpi95gjqybzmk8vgx2j70gnlfiswvp8bjwf15hlfp"; depends=[BSgenome_Hsapiens_UCSC_hg19 GenomicRanges IRanges]; };
   traviz = derive2 { name="traviz"; version="1.0.0"; sha256="03w4jpx5vp4cf3g77cks6dp8dkl66bbjsixr4j25xc3xr26g6kw0"; depends=[Biobase ggplot2 mgcv princurve RColorBrewer rgl SingleCellExperiment slingshot SummarizedExperiment viridis]; };
-  treeio = derive2 { name="treeio"; version="1.18.0"; sha256="03gz378qrp6b9fcriqanfnphibqv4bxhvz48rigzkidkzz71wfaj"; depends=[ape dplyr jsonlite magrittr rlang tibble tidytree]; };
+  treeio = derive2 { name="treeio"; version="1.18.1"; sha256="19i8jhvycv57zbxhpn5gx5ymdiws64kc3nidc00xh1j9a8xkj1aq"; depends=[ape dplyr jsonlite magrittr rlang tibble tidytree]; };
   treekoR = derive2 { name="treekoR"; version="1.2.0"; sha256="1xrq8j7cr6s4a9171xqm1iw3a1dzdnmgyy68knilr42nxak064nn"; depends=[ape data_table diffcyt dplyr edgeR ggiraph ggplot2 ggtree hopach lme4 multcomp patchwork SingleCellExperiment tidyr]; };
   trena = derive2 { name="trena"; version="1.16.0"; sha256="1kz68z0dixiiryd62diddq352h8sx6r15flxm7h715abcniniyjn"; depends=[AnnotationDbi biomaRt Biostrings BSgenome BSgenome_Hsapiens_UCSC_hg19 BSgenome_Hsapiens_UCSC_hg38 BSgenome_Mmusculus_UCSC_mm10 DBI GenomicRanges glmnet lassopv MotifDb org_Hs_eg_db randomForest RMySQL RPostgreSQL RSQLite SNPlocs_Hsapiens_dbSNP150_GRCh38 vbsr WGCNA xgboost]; };
   tricycle = derive2 { name="tricycle"; version="1.2.0"; sha256="1jcvbzpd5cfyyy6n6kvi0biyrv4m86z5fdmhjkg5wm4dm61r5n9q"; depends=[AnnotationDbi circular dplyr GenomicRanges ggplot2 IRanges RColorBrewer S4Vectors scater scattermore SingleCellExperiment SummarizedExperiment]; };
@@ -2042,7 +2043,7 @@ in with self; {
   twilight = derive2 { name="twilight"; version="1.70.0"; sha256="1fy01p3fgajc2jhc286b51mcynj0lrzv3ln21kyj981qk2c390qq"; depends=[Biobase]; };
   twoddpcr = derive2 { name="twoddpcr"; version="1.18.0"; sha256="0b8r7dvqjlswkpfy141kibldj9aw3w8wxw0swmcgxkivml4gz1sw"; depends=[class ggplot2 hexbin RColorBrewer S4Vectors scales shiny]; };
   txcutr = derive2 { name="txcutr"; version="1.0.0"; sha256="0vzdbn75d9hvb4ni5ra7z4s52rbbl3sdi6kpidy421l3sb5clbsj"; depends=[AnnotationDbi BiocGenerics BiocParallel Biostrings GenomicFeatures GenomicRanges IRanges rtracklayer S4Vectors]; };
-  tximeta = derive2 { name="tximeta"; version="1.12.0"; sha256="03fbz6pka7bcbhd0bblgckyxsqhzp4n8qp2dcpdb3sr01lyw4bc5"; depends=[AnnotationDbi AnnotationHub BiocFileCache Biostrings ensembldb GenomeInfoDb GenomicFeatures GenomicRanges IRanges jsonlite Matrix S4Vectors SummarizedExperiment tibble tximport]; };
+  tximeta = derive2 { name="tximeta"; version="1.12.3"; sha256="15l1jvfis7xzxwwnlqs8xpaf212v1lx513np2dc4l4h7rqhclm2v"; depends=[AnnotationDbi AnnotationHub BiocFileCache Biostrings ensembldb GenomeInfoDb GenomicFeatures GenomicRanges IRanges jsonlite Matrix S4Vectors SummarizedExperiment tibble tximport]; };
   tximport = derive2 { name="tximport"; version="1.22.0"; sha256="0w6pr7s9j8l4fpn3przbfrsyxvzxc3ficgsychvhq3bami9np8g4"; depends=[]; };
   uSORT = derive2 { name="uSORT"; version="1.20.0"; sha256="0y6a6ksvbrxyqri0mc01nbls107sacs66zmbjs4qxq52rmy5xvcd"; depends=[Biobase BiocGenerics cluster fpc gplots igraph Matrix monocle plyr RANN RSpectra VGAM]; };
   uncoverappLib = derive2 { name="uncoverappLib"; version="1.4.0"; sha256="0nh5z1iirqdiv5q66k1r8byv9dasnzyinl0plan68gxvia770cnb"; depends=[BiocFileCache BSgenome_Hsapiens_UCSC_hg19 condformat DT EnsDb_Hsapiens_v75 EnsDb_Hsapiens_v86 GenomicRanges Gviz Homo_sapiens markdown openxlsx org_Hs_eg_db OrganismDbi processx rappdirs rlist Rsamtools shiny shinyBS shinycssloaders shinyjs shinyWidgets stringr TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene]; };
@@ -2068,7 +2069,7 @@ in with self; {
   wiggleplotr = derive2 { name="wiggleplotr"; version="1.18.0"; sha256="01y1rbmxjza7qx3q33k0r241if69hzkx9plgmj59wyji22lm7syi"; depends=[assertthat cowplot dplyr GenomeInfoDb GenomicRanges ggplot2 IRanges purrr rtracklayer S4Vectors]; };
   wpm = derive2 { name="wpm"; version="1.4.0"; sha256="1jcidw17bhf42ivywkcqgsd0i93mq32gishnz7h9syvv25qcbrsy"; depends=[Biobase cli config dplyr DT ggplot2 golem logging RColorBrewer rlang shiny shinycustomloader shinydashboard shinyWidgets stringr SummarizedExperiment]; };
   wppi = derive2 { name="wppi"; version="1.2.0"; sha256="1spwa8p6w3pyw21dvd1lrhcz1sphdsmsd408jv55ss9nbgvgrp23"; depends=[dplyr igraph logger magrittr Matrix OmnipathR progress purrr RCurl rlang tibble tidyr]; };
-  xcms = derive2 { name="xcms"; version="3.16.0"; sha256="0m6w68ndf2a4k148pbb0bbbgq57akzqgi9nf7k6ngkk22j3m7m95"; depends=[Biobase BiocGenerics BiocParallel IRanges lattice MassSpecWavelet MsCoreUtils MsFeatures MSnbase mzR plyr ProtGenerics RANN RColorBrewer robustbase S4Vectors SummarizedExperiment]; };
+  xcms = derive2 { name="xcms"; version="3.16.1"; sha256="19kjyi6br9qp2pnp24shgbww3iqaaqxk9791w8w8qbd6sxijd143"; depends=[Biobase BiocGenerics BiocParallel IRanges lattice MassSpecWavelet MsCoreUtils MsFeatures MSnbase mzR plyr ProtGenerics RANN RColorBrewer robustbase S4Vectors SummarizedExperiment]; };
   xmapbridge = derive2 { name="xmapbridge"; version="1.52.0"; sha256="1zsqhisbq6f9qgw9f0a6ixxh635h3qm17117yfns5nnfw73ndlgi"; depends=[]; };
   yamss = derive2 { name="yamss"; version="1.20.0"; sha256="141hbryifm6na5shjyrbjwwksqnl75kqp1m2zl03l9sjqm0kapab"; depends=[BiocGenerics data_table EBImage IRanges limma Matrix mzR S4Vectors SummarizedExperiment]; };
   yarn = derive2 { name="yarn"; version="1.20.0"; sha256="0nk4qzrwjiv8q39lgil9x25bm3gpzrnhd37d7754kpxhs2fsmw9d"; depends=[Biobase biomaRt downloader edgeR gplots limma matrixStats preprocessCore quantro RColorBrewer readr]; };
diff --git a/pkgs/development/r-modules/cran-packages.nix b/pkgs/development/r-modules/cran-packages.nix
index b4476665d72e7..071ea9d373ce2 100644
--- a/pkgs/development/r-modules/cran-packages.nix
+++ b/pkgs/development/r-modules/cran-packages.nix
@@ -4,7 +4,7 @@
 # Rscript generate-r-packages.R cran >new && mv new cran-packages.nix
 
 { self, derive }:
-let derive2 = derive { snapshot = "2021-11-01"; };
+let derive2 = derive { snapshot = "2021-11-30"; };
 in with self; {
   A3 = derive2 { name="A3"; version="1.0.0"; sha256="017hq9pjsv1h9i7cqk5cfx27as54shlhdsdvr6jkhb8jfkpdb6cw"; depends=[pbapply xtable]; };
   AATtools = derive2 { name="AATtools"; version="0.0.1"; sha256="08is383xhs2lc9wfffykcwqyl8mwcxfpk3lnvlpkp96hq9m9ikbf"; depends=[doParallel dplyr foreach magrittr]; };
@@ -38,7 +38,7 @@ in with self; {
   AEDForecasting = derive2 { name="AEDForecasting"; version="0.20.0"; sha256="16q2sn5zzvysyy3r32jnr21pbdkkn0k0sbarni6fdkx7pj27yijn"; depends=[changepoint forecast signal]; };
   AEP = derive2 { name="AEP"; version="0.1.2"; sha256="07a3nlkiqbbwbd59n27sgiinlwsgfpy4mn13h41va97wlvd5zl2b"; depends=[]; };
   AER = derive2 { name="AER"; version="1.2-9"; sha256="03al0jfxdbi8sqkav7gz3aqbxm32qjdnh4l93vy1jr3n2h5kjy9v"; depends=[car Formula lmtest sandwich survival zoo]; };
-  AEenrich = derive2 { name="AEenrich"; version="1.0.0"; sha256="1rly49n3azga6xbfjgg38387pw9mw92j37k5l7ccczay039597ax"; depends=[dplyr magrittr qvalue]; };
+  AEenrich = derive2 { name="AEenrich"; version="1.1.0"; sha256="049z696mkwha90w84l60r11q12r3jlam6kyh8abiy0zk2k425san"; depends=[doParallel dplyr foreach magrittr modelr qvalue rlang tidyr]; };
   AF = derive2 { name="AF"; version="0.1.5"; sha256="1r87ra55g0qm2s8cgsmdwck93ia2vr8zfab3in45mxm5xc501xgk"; depends=[data_table drgee ivtools stdReg survival]; };
   AFM = derive2 { name="AFM"; version="2.0"; sha256="1l0yd68h8vlii1437zhyrxj6fq1ghfaqclk860c25q2d055ajnqd"; depends=[data_table dbscan fftwtools fractaldim ggplot2 gridExtra gstat igraph mixtools moments plyr png pracma rgl scales shiny shinyjs sp stringr]; };
   AFheritability = derive2 { name="AFheritability"; version="0.1.0"; sha256="03w0a4z2x539ykyzdxm1mfqkhzz03cg0aqvgi062jrrm5m6f57ix"; depends=[ggplot2 mvtnorm reshape2 shiny]; };
@@ -68,7 +68,7 @@ in with self; {
   AMGET = derive2 { name="AMGET"; version="1.0"; sha256="18wdzzg5wr7akbd1iasa4mvmy44fb2n5gpghwcrx80knnicy3dxq"; depends=[]; };
   AMModels = derive2 { name="AMModels"; version="0.1.4"; sha256="18h075bzk8s75b3zmjd0x8c6dpl40445d4kv8n0p4ldnx80b1aha"; depends=[unmarked]; };
   AMOEBA = derive2 { name="AMOEBA"; version="1.1"; sha256="1npzh3rpfnxd4r1pj1hm214sfgbw4wmq4ws093lnl7pvsl0q37xn"; depends=[rlecuyer snowfall spdep]; };
-  AMPLE = derive2 { name="AMPLE"; version="0.0.2"; sha256="0j19f8rl7gkads4n52l5gfc5k7dx27sswzrypwl7dnxhfp4ivql7"; depends=[dplyr ggplot2 shiny shinyjs tidyr wesanderson]; };
+  AMPLE = derive2 { name="AMPLE"; version="1.0.0"; sha256="1lcwwf41i0mkg2bv8z5mzrj6h3pa31h33mrmbxbndjgb3ivz2wf5"; depends=[ggplot2 markdown R6 RColorBrewer scales shiny shinyjs shinyscreenshot]; };
   AMR = derive2 { name="AMR"; version="1.7.1"; sha256="1ggd3lwiimlb6qrd444jcx0capkq5rxr7m8wb9q663z1332grv1b"; depends=[]; };
   ANN2 = derive2 { name="ANN2"; version="2.3.4"; sha256="1izljhz3rkzq05dkvg9q3fdyj7q871j8lsky67d5r8ffpzm1lk3z"; depends=[ggplot2 Rcpp RcppArmadillo reshape2 testthat viridisLite]; };
   ANOM = derive2 { name="ANOM"; version="0.5"; sha256="14nfy9xplbabfprwxz5fvx26nmqhp657vr6d90dc8vk8ds63ckiz"; depends=[ggplot2 MCPAN multcomp nparcomp SimComp]; };
@@ -76,6 +76,7 @@ in with self; {
   ANOVAShiny = derive2 { name="ANOVAShiny"; version="0.1.0"; sha256="1z8wi8c8j3rlchfk1vx101qz1r9j2jl5lfh72y5lqsisqxl2fyyz"; depends=[DescTools dplyr HH rhandsontable rmarkdown shiny]; };
   ANOVAShiny2 = derive2 { name="ANOVAShiny2"; version="0.1.0"; sha256="0bnxfg5c37wi5g53jd0zqq31yx29zvlk2m2jh6jlwki8khpp9y00"; depends=[DescTools dplyr HH rhandsontable rmarkdown shiny]; };
   ANOVAreplication = derive2 { name="ANOVAreplication"; version="1.1.5"; sha256="1d2r2cwpn9rdfbmiccag487pvsq6adn7b321c5z8i7n671h2wi26"; depends=[quadprog shiny]; };
+  ANTs = derive2 { name="ANTs"; version="0.0.13"; sha256="01zncc9zzv32cdfy718c2cdbscy404zdhwn35vf5ha81zpz3ql3a"; depends=[gtools Kendall lme4 Rcpp RcppArmadillo RcppEigen]; };
   AOV1R = derive2 { name="AOV1R"; version="0.1.0"; sha256="0dv7k0mifybkarpwqyla5j6cvw9dcch09wvdq09ra9bsf4vyk652"; depends=[cellranger data_table lazyeval purrr]; };
   APAtree = derive2 { name="APAtree"; version="1.0.1"; sha256="0vhvx2xp62avyq405jqn4i3z8awlifcs1lb527brxxhybrhnk4rv"; depends=[BH FD lwgeom raster Rcpp sf units]; };
   APCI = derive2 { name="APCI"; version="1.0.3"; sha256="1fdv9zpc04i39zw8mg38mirh2nb8nkyf17s12fm83jp6x0jf7vbc"; depends=[data_table dplyr gee ggplot2 ggpubr magrittr stringr survey]; };
@@ -115,6 +116,7 @@ in with self; {
   ATAforecasting = derive2 { name="ATAforecasting"; version="0.0.55"; sha256="0p5n3hgx3iipssn7c81xn4zb4s1sz4mbr7bhslymblj9c8hy7vwm"; depends=[forecast Rcpp RcppArmadillo Rdpack seasonal stlplus stR timeSeries TSA tseries xts]; };
   ATE = derive2 { name="ATE"; version="0.2.0"; sha256="1i46ivb7q61kq11z9v1rlnwad914nsdjcz9bagqx17vjk160mc0a"; depends=[]; };
   ATR = derive2 { name="ATR"; version="0.1-1"; sha256="0via7zm3byzbdgrfw351fqvx0g5cj2z31bqfwh7kr99nqgjh0dyn"; depends=[partykit]; };
+  ATbounds = derive2 { name="ATbounds"; version="0.1.0"; sha256="007gc9yjxwlhkb0mibxaa394xdiilfm8z6jbbqdn6wl986p07pg3"; depends=[mgcv]; };
   ATmet = derive2 { name="ATmet"; version="1.2.1"; sha256="17lzb4qnxgvlwy5zaz250mb0c4ayk509700k8mj8zf4dgv51kxa3"; depends=[DiceDesign lhs metRology msm sensitivity]; };
   AUC = derive2 { name="AUC"; version="0.3.0"; sha256="0ripcib2qz0m7rgr1kiz68nx8f6p408l1ww7j78ljqik7p3g41g7"; depends=[]; };
   AUCRF = derive2 { name="AUCRF"; version="1.1"; sha256="00d7jcg2dyvf7sc9w7vxxd85m7nsbcmfqsavrv236vxfpfc9yn7i"; depends=[randomForest]; };
@@ -151,7 +153,7 @@ in with self; {
   AeRobiology = derive2 { name="AeRobiology"; version="2.0.1"; sha256="14d5gjx53v2wfij8m4br0k7lfi6x2frc8ny1li4g8c05qv2dvnbb"; depends=[circular data_table dplyr ggplot2 ggvis lubridate plotly scales tidyr writexl zoo]; };
   AggregateR = derive2 { name="AggregateR"; version="0.1.1"; sha256="1s2q888bqx6ilisv5s4g8ryja97nz6cz4ycm4sw1i63l5wjrwljc"; depends=[data_table NCmisc tibble]; };
   AgreementInterval = derive2 { name="AgreementInterval"; version="0.1.1"; sha256="1bvinzylvsaipa8mq15f45b6h37znavlrdl0rbrx1pqw52r7z8kv"; depends=[psych]; };
-  AgroReg = derive2 { name="AgroReg"; version="1.2.0"; sha256="1yc0vaxqj970xz8qxamlka503ikz3f8dgdy25jlyira7zn3pbbww"; depends=[boot broom car crayon dplyr drc egg ggplot2 minpack_lm rcompanion]; };
+  AgroReg = derive2 { name="AgroReg"; version="1.2.1"; sha256="0pdr39vimd749h4khw9jj48k3k6ysi50ppc8jcca4sr7rmq138dc"; depends=[boot broom dplyr drc egg ggplot2 minpack_lm rcompanion]; };
   AhoCorasickTrie = derive2 { name="AhoCorasickTrie"; version="0.1.2"; sha256="0zh3y5jd8m0xbj6lqr01zvwj9qd1xr3iq7vd6sgr3g3qh4kqm5pq"; depends=[Rcpp]; };
   AirSensor = derive2 { name="AirSensor"; version="1.0.8"; sha256="0wpfg3mry1vdyd9v1981hasizj1mn5wy60ig9swxlqdm7j11wxan"; depends=[countrycode cowplot dplyr dygraphs geodist geosphere GGally ggmap ggplot2 gridExtra httpcode httr jsonlite leaflet lubridate magrittr MazamaCoreUtils MazamaLocationUtils MazamaSpatialUtils openair PWFSLSmoke RColorBrewer readr rlang scales seismicRoll sp stringr tibble tidyr tidyselect worldmet xts zoo]; };
   Ake = derive2 { name="Ake"; version="1.0"; sha256="1dj598xfdyjqvysc39a0d5gizgk367c5lkddmwmsqa8zjmvpr15a"; depends=[]; };
@@ -227,7 +229,7 @@ in with self; {
   AzureCognitive = derive2 { name="AzureCognitive"; version="1.0.1"; sha256="1mn3qw5g77x24qyhybhn1p3h4s9ymdafrj35i24f32ncr5abnd2f"; depends=[AzureAuth AzureRMR httr jsonlite]; };
   AzureContainers = derive2 { name="AzureContainers"; version="1.3.2"; sha256="0lykvf4kk1q7b7ln4l8jlrxgqyvrg1cfnap4ak8zkhxmrgzqpc5f"; depends=[AzureGraph AzureRMR httr openssl processx R6]; };
   AzureCosmosR = derive2 { name="AzureCosmosR"; version="1.0.0"; sha256="07bpmjxfyzk1aq8r06biiqsn2ibv7ymgqccxfxkbvszpfq79nryj"; depends=[AzureRMR curl httr jsonlite openssl uuid vctrs]; };
-  AzureGraph = derive2 { name="AzureGraph"; version="1.3.1"; sha256="0afh98gj2klmxqidskamw0hp4b6cwap3y8gnf660np0j8szdy67i"; depends=[AzureAuth curl httr jsonlite openssl R6]; };
+  AzureGraph = derive2 { name="AzureGraph"; version="1.3.2"; sha256="19wppl05w98s711jgkxxia5dckc8k6xr5zzs52dcvnh67r4cbjq7"; depends=[AzureAuth curl httr jsonlite openssl R6]; };
   AzureKeyVault = derive2 { name="AzureKeyVault"; version="1.0.5"; sha256="15x0mkgn7pq2yk05l5vwvd744gxkz28nb5azc1yz502ayr1s6hnm"; depends=[AzureAuth AzureGraph AzureRMR httr jose jsonlite openssl R6]; };
   AzureKusto = derive2 { name="AzureKusto"; version="1.0.6"; sha256="02wj1nzbs9l6aapk94p89gahbffmk3gy80l57bd1l0afpw0y3jr8"; depends=[AzureAuth AzureRMR DBI dplyr httr jsonlite openssl R6 rlang tibble tidyselect]; };
   AzureQstor = derive2 { name="AzureQstor"; version="1.0.1"; sha256="1z7j8kakiarpw3q2rii7gl9zc2nsb49nzs1nxg1hgfyvcdhw2fcg"; depends=[AzureRMR AzureStor httr openssl]; };
@@ -243,14 +245,13 @@ in with self; {
   BAEssd = derive2 { name="BAEssd"; version="1.0.1"; sha256="04wkhcj4wm93hvmfnnzryswaylnxz5qsgnqky9lsx4jqhvg340l6"; depends=[mvtnorm]; };
   BAGofT = derive2 { name="BAGofT"; version="1.0.0"; sha256="0lvjygnphb2d5cammmswlnyn77vmy3k46r8hh8f3mfr7i68gcdvz"; depends=[dcov randomForest]; };
   BALCONY = derive2 { name="BALCONY"; version="0.2.10"; sha256="1wfy0dmwfzd9jp6g92ld8jqzx97grgq4h6dy4y5063vfd9i4slwx"; depends=[Biostrings dplyr progress readr Rpdb scales seqinr]; };
-  BALD = derive2 { name="BALD"; version="1.0.0-3"; sha256="1azyqami07g3ax60j0ws3d1qha65k0svn2v5c9pisni0qch5xql0"; depends=[lattice logspline rjags]; };
   BALLI = derive2 { name="BALLI"; version="0.2.0"; sha256="0qmjwpj56n07dvjwfknqvc02f0y5mlwh2yz4lrw7c4wqgrckcpgi"; depends=[edgeR limma MASS]; };
   BAMBI = derive2 { name="BAMBI"; version="2.3.3"; sha256="0v4rlsam7l3bdq2q7cmg1w2y4m1sj0ab2r2da76yq8rimch00q8g"; depends=[bridgesampling coda future_apply gtools label_switching lattice loo mvtnorm numDeriv qrng RColorBrewer Rcpp RcppArmadillo scales]; };
   BAMMtools = derive2 { name="BAMMtools"; version="2.1.8"; sha256="1ply8cj8sh8fn958g52i88gzyify79if41882cmks58diglpi0g5"; depends=[ape gplots Rcpp]; };
   BANOVA = derive2 { name="BANOVA"; version="1.2.0"; sha256="0zyfgcx6wxrl9vgdpbzcs8pb6irmyagknjkcl1x30pzlj4dlx3kg"; depends=[coda rjags rstan runjags]; };
   BARIS = derive2 { name="BARIS"; version="1.1.1"; sha256="1h1zrgpn69nvz61567c08vfynmzy70g31a37wp4p6g8wri1hr7xg"; depends=[checkmate data_table downloader dplyr httr janitor jsonlite magrittr memoise miniUI rgdal rio rstudioapi sf shiny stringi stringr XML]; };
   BART = derive2 { name="BART"; version="2.9"; sha256="1yzwiyjc2gq2vvw5z2psmyqbbb1kq0xvsb0zingcn8qikw45mm5m"; depends=[nlme nnet Rcpp survival]; };
-  BAS = derive2 { name="BAS"; version="1.5.5"; sha256="1iakx36r4lnl6xs77m9mfcj5w3mb4g482s2mpzq65v69k10nj8lj"; depends=[]; };
+  BAS = derive2 { name="BAS"; version="1.6.0"; sha256="01qmh49k5k6sidy3k5xx3cy3vmj8f59znd4z2jn0sqjzzngyxypg"; depends=[]; };
   BASIX = derive2 { name="BASIX"; version="1.1"; sha256="18dkvv1iwskfnlpl6xridcgqpalbbpm2616mvc3hfrc0b26v01id"; depends=[]; };
   BASS = derive2 { name="BASS"; version="1.2.2"; sha256="14zimfdkpsil22n1z4ldpi9smmja5kf7qqlklr5sr7y5avnh0hd9"; depends=[hypergeo truncdist]; };
   BASiNET = derive2 { name="BASiNET"; version="0.0.4"; sha256="0pmn4znqhpav729ai7zr027a7sx6bz2lmlk086crmwm1fnwipqq4"; depends=[Biostrings igraph randomForest rJava rmcfs RWeka]; };
@@ -266,7 +267,6 @@ in with self; {
   BBSSL = derive2 { name="BBSSL"; version="0.1.0"; sha256="0vb3afbx8p3frliy92sf2wlmx32rasxj39i8d023m2dvsblbh50x"; depends=[glmnet greybox Matrix mvnfast rmutil statmod svMisc truncnorm]; };
   BBcor = derive2 { name="BBcor"; version="1.0.3"; sha256="160d34an9837i9myw9m0yxplh1z2cmhx2wc7m59dlld5zap4glag"; depends=[bayeslincom ggplot2 pbapply psych Rdpack wdm]; };
   BBmisc = derive2 { name="BBmisc"; version="1.11"; sha256="1lh1n4bvxzivb5rbz69mvd8xdgr3gr2bnqd68a39sd1530l8r90y"; depends=[checkmate]; };
-  BCA = derive2 { name="BCA"; version="0.9-3"; sha256="0ksd6b0ykydgdn33x29bwwqkrp23cvdj3imps0l6qs1p4465j5nf"; depends=[car clv flexclust Rcmdr RcmdrMisc rpart]; };
   BCA1SG = derive2 { name="BCA1SG"; version="0.1.0"; sha256="14jvi5gn19f72szcnyhfpdld00cc7gyih5qrm4bpzvp553f1svvk"; depends=[logOfGamma Matrix]; };
   BCBCSF = derive2 { name="BCBCSF"; version="1.0-1"; sha256="0hvhnra68i0x78n57nlbxmz0qwl2flng9w47089jw6f9hzkq9r7n"; depends=[abind]; };
   BCC1997 = derive2 { name="BCC1997"; version="0.1.1"; sha256="1lqbivjkc7858jn54av1v9bzp0as43klgndbzkr59dc3l128xp12"; depends=[]; };
@@ -285,7 +285,7 @@ in with self; {
   BDP2 = derive2 { name="BDP2"; version="0.1.3"; sha256="14m85sigx6hk0qzhfgih43m2lxp9xczmp9g3z4pping6msbnbdrz"; depends=[rmarkdown shiny shinyBS]; };
   BDWreg = derive2 { name="BDWreg"; version="1.2.0"; sha256="07j6dy69q1as1nwgp2790wzpzmjich2256cddhl7n3h2rs1dja74"; depends=[coda doParallel DWreg foreach MASS]; };
   BDgraph = derive2 { name="BDgraph"; version="2.64"; sha256="0pnzbw09c7amsvj8l4p1jnmss4rkbr1dsmagiygh8lj5fbrklgr4"; depends=[igraph]; };
-  BE = derive2 { name="BE"; version="0.1.3"; sha256="14x6x0i5j5sxqk700am8kf73iv1bx8ba9563acgrjmp0c960p5f8"; depends=[rtf]; };
+  BE = derive2 { name="BE"; version="0.1.4"; sha256="11x1qr8f047ns7awhq5j6h95svxccn0knhvvr49bamv6r0rl0ys3"; depends=[rtf]; };
   BEACH = derive2 { name="BEACH"; version="1.3.1"; sha256="0biq6c74k8vb8ykafzf3blyi08rp65x1vaw3bfpwdc1ihc9wrgjr"; depends=[devtools DT haven plyr rJava rtf sas7bdat shiny WriteXLS xtable]; };
   BED = derive2 { name="BED"; version="1.4.4"; sha256="1hbdjxh695607ppmk39xclh26k1bq9hrysyp8nc5axhhg1drpiff"; depends=[dplyr DT htmltools miniUI neo2R readr rstudioapi shiny stringr visNetwork]; };
   BEDASSLE = derive2 { name="BEDASSLE"; version="1.5"; sha256="1bz3lr0waly9vj9adwhmgs3lq7zjdkcbvm3y9rnn72qlrwmv5fbn"; depends=[emdbook MASS matrixcalc]; };
@@ -296,13 +296,13 @@ in with self; {
   BET = derive2 { name="BET"; version="0.4.1"; sha256="1jaqsj3gyl1jdpl9m2jm10s9zpwr25s70nxn4yg14aik5grccd6r"; depends=[Rcpp]; };
   BETS = derive2 { name="BETS"; version="0.4.9"; sha256="0daixk7mqmk2jq35i7mjaslz11gxbnnjgwxfvj8x1s88vz9l74sm"; depends=[DBI digest dplyr DT dygraphs forecast foreign ggplot2 grnn htmltools httr lubridate miniUI plotly rjson rmarkdown RMySQL rstudioapi rvest seasonal shiny sqldf stringr urca webshot xml2 zoo]; };
   BFS = derive2 { name="BFS"; version="0.4.1"; sha256="1crlx3v6bsd5gi0f1hhlcykydbpqn9fryfw5k0ynlcivgif0ll9z"; depends=[janitor jsonlite lifecycle magrittr pxweb rvest tibble tidyRSS xml2]; };
-  BFpack = derive2 { name="BFpack"; version="0.3.2"; sha256="04rb48wdab23i20lv7s2a2dafxxyvvl9zxpl17var038v6rd02vs"; depends=[bain extraDistr lme4 MASS Matrix mvtnorm pracma]; };
+  BFpack = derive2 { name="BFpack"; version="1.0.0"; sha256="1z5j6gd8zv39advb4xmpcbixbg8n516h0gpqkblb8dnb4mbh6d1s"; depends=[bain extraDistr lme4 MASS Matrix mvtnorm pracma]; };
   BGData = derive2 { name="BGData"; version="2.3.0"; sha256="0j6f5dk16vj1q3h1byrbyc2fdmgq102lx4mx8vyypsqxcds99csq"; depends=[BEDMatrix bigmemory bit crochet ff LinkedMatrix symDMatrix synchronicity]; };
   BGGE = derive2 { name="BGGE"; version="0.6.5"; sha256="1h76c40y45xhf2vp9g0q5j9lfwh16q9axbk5c9aqn4md008xr1j2"; depends=[]; };
   BGGM = derive2 { name="BGGM"; version="2.0.4"; sha256="0676viahmid0n89jhs93ci8l7rxpam7rn75mdbshgx7f1q3wqiih"; depends=[BFpack GGally ggplot2 ggridges MASS mvnfast network Rcpp RcppArmadillo RcppDist RcppProgress Rdpack reshape sna]; };
-  BGLR = derive2 { name="BGLR"; version="1.0.8"; sha256="15cv5k44yj5cws9jjd70hvrkm8gzn5x4hfx408n2fbqbv289b5jy"; depends=[truncnorm]; };
+  BGLR = derive2 { name="BGLR"; version="1.0.9"; sha256="16chvslsknhfjdnfy79y4bl5xayvrk8j01y0r3nddq02ypwrc2j4"; depends=[MASS truncnorm]; };
   BGSIMD = derive2 { name="BGSIMD"; version="1.0"; sha256="0xkr56z8l72wps7faqi5pna1nzalc3qj09jvd3v9zy8s7zf5r7w4"; depends=[]; };
-  BGVAR = derive2 { name="BGVAR"; version="2.4.0"; sha256="0mkm9ay2y0a3mzr14w5nkz8nfb47h3xddrs9jz69zdh77ai7xw1q"; depends=[abind bayesm coda GIGrvg knitr MASS Matrix Rcpp RcppArmadillo RcppParallel RcppProgress readxl stochvol xts zoo]; };
+  BGVAR = derive2 { name="BGVAR"; version="2.4.3"; sha256="109nmcjwbcgzcbah2pb8k3db3rbcpd2xsswjw1q7nl75v3rwdlp6"; depends=[abind bayesm coda GIGrvg knitr MASS Matrix Rcpp RcppArmadillo RcppParallel RcppProgress readxl stochvol xts zoo]; };
   BGmisc = derive2 { name="BGmisc"; version="0.1"; sha256="15xgm3n3hn5zkrvyfcylyz5q3zah0155914a0rck0ipihb45sbbl"; depends=[Matrix]; };
   BH = derive2 { name="BH"; version="1.75.0-0"; sha256="0nkgvl5qjs2a7jv0ncsrl4fqaw2pdaj7a1pncdv6kp874sci0k5f"; depends=[]; };
   BHAI = derive2 { name="BHAI"; version="0.99.2"; sha256="1hawa55mk590is8ziav7fdszsa3a42bqb0znzqsazz5lkg4daaa7"; depends=[MCMCpack plotrix prevtoinc]; };
@@ -314,14 +314,13 @@ in with self; {
   BICORN = derive2 { name="BICORN"; version="0.1.0"; sha256="0mqk8vgp6jdk7f0paa06yqlibkd1y3vs69pg7i9mkvxmda7p4nkq"; depends=[]; };
   BIEN = derive2 { name="BIEN"; version="1.2.4"; sha256="1dagrs54ciagm2mgqrvxl6k2akahr0qk63ifxqnks7iljm0x1gw6"; depends=[ape DBI doParallel fasterize foreach raster rgdal rgeos RPostgreSQL sf sp]; };
   BIFIEsurvey = derive2 { name="BIFIEsurvey"; version="3.3-12"; sha256="1kphczvj3rxyjvi93cx2j714scvmmpqv5wrg5pdyy8l891jxsr89"; depends=[miceadds Rcpp RcppArmadillo]; };
-  BIGDAWG = derive2 { name="BIGDAWG"; version="2.3.6"; sha256="1mlk2b293lr2vj0ydh96p9ynbvv67jnkqm9qxz9kcxq65b2i5cv3"; depends=[haplo_stats httr XML]; };
+  BIGDAWG = derive2 { name="BIGDAWG"; version="3.0.3"; sha256="1zbikvhyaksbddv2kz8nqkidjy4qsfp6a8wwyxjy5a0wcnqnwsxf"; depends=[haplo_stats httr XML]; };
   BIGL = derive2 { name="BIGL"; version="1.6.5"; sha256="1ksp88nspjd2si0kicv3j6fvb8i46phgpf6mw8ihfxkn9mrjbs2v"; depends=[ggplot2 MASS minpack_lm nleqslv numDeriv progress rgl robustbase scales]; };
   BINCOR = derive2 { name="BINCOR"; version="0.2.0"; sha256="0x2s82jql429shk70bhjdy9kamz8dz5ymsxj6kp8ga1711bpwyq6"; depends=[pracma]; };
   BINtools = derive2 { name="BINtools"; version="0.1.0"; sha256="061g1790m3gi88kj1avgxdnpdvj6n2mg5dh17c7vx4gx5g5x2q2d"; depends=[BH combinat dplyr mvtnorm Rcpp RcppEigen RcppParallel rstan StanHeaders stringi tibble]; };
   BIOM_utils = derive2 { name="BIOM.utils"; version="0.9"; sha256="0xckhdvf15a62awfk9rjyqbi6rm7p4awxz7vg2m7bqiqzdll80p7"; depends=[]; };
   BIOMASS = derive2 { name="BIOMASS"; version="2.1.6"; sha256="1iz9vszfg8lxa6yxrz3dj2ihpkcpchdbzdws5y568fczakcv8z5l"; depends=[data_table jsonlite minpack_lm proj4 rappdirs raster sp]; };
   BIOdry = derive2 { name="BIOdry"; version="0.8"; sha256="1zga8g50wjnnz2h9b3ak9q67qnl1f14cq6hvdzf9f84pphsnpasa"; depends=[ecodist nlme]; };
-  BIS = derive2 { name="BIS"; version="0.2.1"; sha256="0mngmchgc46wc9a7ksyqrvj6k46nm4ih7x69k3xijfia9bgkym0v"; depends=[dplyr readr rvest tidyr xml2]; };
   BKPC = derive2 { name="BKPC"; version="1.0.1"; sha256="17gmhf6qq8jn2xzkqvjq60xzy0slz6kgfpd0d6hlpnf30ww7q923"; depends=[kernlab]; };
   BLCOP = derive2 { name="BLCOP"; version="0.3.3"; sha256="08y9vmx3cknjvk6ngfwxlfnc03cqpj97i1ijrs1cw5sahjc0vmhc"; depends=[fBasics fMultivar fPortfolio knitr MASS quadprog rmarkdown RUnit timeSeries]; };
   BLModel = derive2 { name="BLModel"; version="1.0.2"; sha256="0l5f2v5ggadmrci3qhhmxm3j9i6jii0anq5rv5vk50y2qzii2q15"; depends=[]; };
@@ -335,6 +334,7 @@ in with self; {
   BMA = derive2 { name="BMA"; version="3.18.15"; sha256="06ibk6akpjzwpjb77qpb56hzpfhkyrkl153ljlg660rm8cpxbq2b"; depends=[inline leaps robustbase rrcov survival]; };
   BMAmevt = derive2 { name="BMAmevt"; version="1.0.4"; sha256="10241cibzmgrmxzjw7fpw64qkayc1wig5xilahyc182841k4if6w"; depends=[coda]; };
   BMRBr = derive2 { name="BMRBr"; version="0.2.0"; sha256="0v2ysap5jfkq9fc5blqlfhsv2bs8rqybmp5z4q3g6y3y7qzhypjw"; depends=[rvest xml2]; };
+  BMRMM = derive2 { name="BMRMM"; version="0.0.1"; sha256="1wpj5pnm9hhc4gzk5lqxhzvg3j4mbwzhdg0hx2a5gqck9rvpvzni"; depends=[fields gsubfn logOfGamma MCMCpack mhsmm multicool pracma]; };
   BMRSr = derive2 { name="BMRSr"; version="1.0.3"; sha256="0snb8xs22f1khnywkgrs8pj7w6hg2mfppng0q695xyh4ci157wam"; depends=[dplyr httr purrr readr rlang stringr tibble xml2]; };
   BMRV = derive2 { name="BMRV"; version="1.32"; sha256="1j1cwjk3l7f06nqdwrqdyhzm43bb8hj5wgdd14zc1grxyfc9ya95"; depends=[BH]; };
   BMS = derive2 { name="BMS"; version="0.3.4"; sha256="0z3mk1xd1fphf80kdbashkn04jwsr2bghms4d7nav3pw73q41wql"; depends=[]; };
@@ -346,7 +346,7 @@ in with self; {
   BNPMIXcluster = derive2 { name="BNPMIXcluster"; version="1.3"; sha256="1dnylvag24zqp93acdbn0ilbdzbn250pjjp6hjdd9d1zvla2ck85"; depends=[gplots MASS matrixcalc mvtnorm plyr Rcpp RcppArmadillo truncnorm]; };
   BNPTSclust = derive2 { name="BNPTSclust"; version="2.0"; sha256="1ymvklv6d9684xzwdkvaxdjd1q20xmsf6kkfibn2wphlaqs2rh2n"; depends=[MASS mvtnorm]; };
   BNPdensity = derive2 { name="BNPdensity"; version="2021.5.4"; sha256="16hm81wn08fjdamikzrmhpbsz31phkqxdqhp23w0pbxczk9gll47"; depends=[coda dplyr ggplot2 gridExtra survival tidyr viridis]; };
-  BNPmix = derive2 { name="BNPmix"; version="0.2.9"; sha256="11xf1sqyf62wyqhdyvmb6zcb3cl7dr6cjywmvrf1nkrfdjcgf1pk"; depends=[coda ggplot2 ggpubr Rcpp RcppArmadillo RcppDist]; };
+  BNPmix = derive2 { name="BNPmix"; version="1.0.0"; sha256="1bwmps4670jjb793yf7yxm9v8zz3m99019bwwha956w2pk9q1sjz"; depends=[coda ggplot2 ggpubr Rcpp RcppArmadillo RcppDist]; };
   BNSL = derive2 { name="BNSL"; version="0.1.4"; sha256="0nrlx55364kgvkdpyaimgjxwnzmmdl1gmvyv3wkm8n2jyki92xxp"; depends=[bnlearn igraph Rcpp]; };
   BNSP = derive2 { name="BNSP"; version="2.1.6"; sha256="0ig531n9sj50wn5nwljc2x4wijv5i28jx73knzz2kshb56p8sl7l"; depends=[coda corrplot cubature Formula ggplot2 gridExtra label_switching mgcv plot3D plyr threejs]; };
   BNrich = derive2 { name="BNrich"; version="0.1.1"; sha256="0m3cz7npc7mwq2vj68hllbd2vf5xqw00jaxv1pm3c28mq7pb459j"; depends=[bnlearn corpcor glmnet graph]; };
@@ -361,6 +361,7 @@ in with self; {
   BRACoD_R = derive2 { name="BRACoD.R"; version="0.0.1.2"; sha256="1p5fvmzkydask47hmz1fnss1sc1hrp1s7h28qn5q6fja0r52kzkz"; depends=[reticulate]; };
   BRDT = derive2 { name="BRDT"; version="0.1.0"; sha256="1yv2fh4cc9h35l8cngpxnqa83a7bx79pr7c1gp9h84p1pigg8282"; depends=[]; };
   BRETIGEA = derive2 { name="BRETIGEA"; version="1.0.3"; sha256="0q4phggz6smzd294znr1fp0gskpcwdbd6hnvvl3q3z1h7cpf40sn"; depends=[]; };
+  BRINDA = derive2 { name="BRINDA"; version="0.1.3"; sha256="1nq7wlwwlyfff0rn4yv8bws0ibd7wssb1jd6ccc7xvhdb2bqv9kc"; depends=[berryFunctions data_table dplyr Hmisc rlang]; };
   BRISC = derive2 { name="BRISC"; version="1.0.2"; sha256="1qkb98wlqyhi378darx62f5ymsr290pqq82msqwcj6ks0xi9mj2s"; depends=[matrixStats pbapply RANN rdist]; };
   BRL = derive2 { name="BRL"; version="0.1.0"; sha256="13qi78v3057qn4hfby14sp26hy3ibl50f06x8gpak6gi76g8bhwi"; depends=[]; };
   BRugs = derive2 { name="BRugs"; version="0.9-1"; sha256="1m3dlw6201bzf6fcm4qscpsmgjkpidwiil3m4iwfn0b0iv3dclcv"; depends=[coda]; };
@@ -378,11 +379,11 @@ in with self; {
   BTLLasso = derive2 { name="BTLLasso"; version="0.1-11"; sha256="1nz90jg74xzcwjxi9ppp7a78bg4976h2cmvlz140ss5403pnfbsk"; depends=[Matrix psychotools Rcpp RcppArmadillo stringr TeachingDemos]; };
   BTM = derive2 { name="BTM"; version="0.3.6"; sha256="0ab0wr8nbwn1w1j9hpwfz52lm1sw0qk93713y9k0hpm3pw9dq4jr"; depends=[Rcpp]; };
   BTSPAS = derive2 { name="BTSPAS"; version="2021.11.2"; sha256="1as1r050qabbm9k19lbcdkyjsblc7f6hd3x7dy38rc6rxzp2iilj"; depends=[actuar coda data_table ggforce ggplot2 gridExtra plyr R2jags reshape2 scales]; };
-  BTYD = derive2 { name="BTYD"; version="2.4.2"; sha256="0yccq603vxjzhssb59icmps4iz0sn52wirwajx7995rz0zkfgfvh"; depends=[dplyr hypergeo Matrix optimx]; };
+  BTYD = derive2 { name="BTYD"; version="2.4.3"; sha256="1szkpcmagpig32vbs7klx71avjlmbd0cn123ljpc3i02b55lma7z"; depends=[dplyr hypergeo Matrix optimx]; };
   BTYDplus = derive2 { name="BTYDplus"; version="1.2.0"; sha256="1shai7kij20g3isd6l29i696pkzymr0qq2i9gzfsxmvdb4g4pcm2"; depends=[bayesm BTYD coda data_table mvtnorm Rcpp]; };
   BTdecayLasso = derive2 { name="BTdecayLasso"; version="0.1.0"; sha256="0x1s2zvv3vnapk5wp8582zwflsqvgc8khkvl5ch9i70v739jxp15"; depends=[ggplot2 optimr]; };
   BUCSS = derive2 { name="BUCSS"; version="1.2.1"; sha256="1nf0xpy5r49yfd0xydzxxxrc6isj14s8lswrf5nhh7g60nkkwcxr"; depends=[]; };
-  BVAR = derive2 { name="BVAR"; version="1.0.1"; sha256="0nfq5ffa600hx3cbr85jbwawdfczrnr1dvg80qqz74v6lh3k8j7x"; depends=[mvtnorm]; };
+  BVAR = derive2 { name="BVAR"; version="1.0.2"; sha256="12x6jkfgmskhvr8xgyfik8i5hkb8garq27k3nyvl69ickhgwrjk3"; depends=[mvtnorm]; };
   BVARverse = derive2 { name="BVARverse"; version="0.0.1"; sha256="00nghvd5bavmn5hw89pcz20x5kbpxr707r5yvvsakn77rdis37ig"; depends=[BVAR generics ggplot2 rlang tidyr]; };
   BVSNLP = derive2 { name="BVSNLP"; version="1.1.9"; sha256="1k2sr9wq0q7lq2hmgp75hzxy6v688lw5npwvpma88975yqi6ghiw"; depends=[doParallel foreach Rcpp RcppArmadillo RcppEigen RcppNumerical]; };
   BWGS = derive2 { name="BWGS"; version="0.2.1"; sha256="1473lvkmpf2dsgnccwl5a8wp9yvddciqdql4naba4lwghimxy39w"; depends=[BGLR brnn e1071 glmnet randomForest rrBLUP stringi]; };
@@ -412,6 +413,7 @@ in with self; {
   BayesBEKK = derive2 { name="BayesBEKK"; version="0.1.0"; sha256="0fykcmf54820krwy7q573gmlcrx96i94knx7rgzc83i287lnpnfg"; depends=[coda MTS mvtnorm]; };
   BayesBP = derive2 { name="BayesBP"; version="1.1"; sha256="043msccrins1smaizmf7qc6q1cyjdzirw2ygnvi56lskib1cls7m"; depends=[iterators openxlsx]; };
   BayesBinMix = derive2 { name="BayesBinMix"; version="1.4.1"; sha256="1b18qg0mjbmrilwqffrq33gw04fzask2xgj1bp4cli51cjf2slf7"; depends=[coda doParallel foreach label_switching]; };
+  BayesCACE = derive2 { name="BayesCACE"; version="1.0"; sha256="0j7j9ir7x892mc53b16grb8l7q52d7ynk1d4la05bw92z28nfjrg"; depends=[coda forestplot lme4 MASS metafor mvtnorm Rdpack rjags]; };
   BayesCR = derive2 { name="BayesCR"; version="2.1"; sha256="1qav7l64iqqdvr1v6c7hlzvbx7zbvsa55pyisvkq5rsayy1rdsl1"; depends=[mnormt mvtnorm rootSolve truncdist]; };
   BayesCTDesign = derive2 { name="BayesCTDesign"; version="0.6.0"; sha256="1ym2v5ynmb28miwivyjx604vfsfi5ksmaha0far0ddq2cl06if2q"; depends=[eha ggplot2 reshape2 survival]; };
   BayesCombo = derive2 { name="BayesCombo"; version="1.0"; sha256="01rzjja0xzvqyjivl8a9da13v13ylm4dwv4f27cmgz2znakfg5y8"; depends=[]; };
@@ -419,7 +421,7 @@ in with self; {
   BayesDA = derive2 { name="BayesDA"; version="2012.04-1"; sha256="0fp27cmhw8dsxr4mc1flm6qh907476kph8ch2889g9p31xm1psjc"; depends=[]; };
   BayesDesign = derive2 { name="BayesDesign"; version="0.1.1"; sha256="1h69a18wp2z96a002x154d2vd1imzap3zm7yfssm5dh7igha18zc"; depends=[]; };
   BayesESS = derive2 { name="BayesESS"; version="0.1.19"; sha256="023r5pxqa2ll3vyfmchdlcg6ay0qixphz24078g1immqp43mlrxm"; depends=[dfcrm LaplacesDemon MASS MatrixModels MCMCpack Rcpp RcppArmadillo RcppEigen]; };
-  BayesFM = derive2 { name="BayesFM"; version="0.1.4"; sha256="14m318nxb4aqxni4zm0p6g9pysx81rmay48qglwm98gmdjxigzzk"; depends=[checkmate coda ggplot2 gridExtra plyr]; };
+  BayesFM = derive2 { name="BayesFM"; version="0.1.5"; sha256="1x6paj5fr036mry6yr32vrxx2kfz89c8dz39ky1nc6jg1q7x5a8i"; depends=[checkmate coda ggplot2 gridExtra plyr]; };
   BayesFactor = derive2 { name="BayesFactor"; version="0.9.12-4.2"; sha256="1z083v7is21gm0a458jm5ph3xfdm7mh29a6sg2r1njq82f8x3s3g"; depends=[coda gtools hypergeo Matrix MatrixModels mvtnorm pbapply Rcpp RcppEigen stringr]; };
   BayesGESM = derive2 { name="BayesGESM"; version="1.4"; sha256="0qw2byb48f67461m1k8a1rqh6a0c3zq1rc4ni9xzxv8dih4wkq0f"; depends=[Formula GIGrvg normalp]; };
   BayesGOF = derive2 { name="BayesGOF"; version="5.2"; sha256="17wm0228xq3db431abyi9jr0q1q86nnajsn7hmy4dwzgvrlz5s0i"; depends=[Bolstad2 nleqslv orthopolynom VGAM]; };
@@ -430,7 +432,7 @@ in with self; {
   BayesLogit = derive2 { name="BayesLogit"; version="2.1"; sha256="0w3bzk39sxdskwikcz5i0xwfsll4sqgkpr8vw8jvzlcy6dl3yhis"; depends=[]; };
   BayesMFSurv = derive2 { name="BayesMFSurv"; version="0.1.0"; sha256="1yxxzwjh1fgfh7qkzf9dfm3x0vbgb0v4p6bf6b5w14kvm06rzhkg"; depends=[coda FastGP MCMCpack mvtnorm Rcpp RcppArmadillo]; };
   BayesMRA = derive2 { name="BayesMRA"; version="1.0.0"; sha256="005pygpa8bmr153naxnag7kn876lqwq34d8pzbj954nivlxl4zaw"; depends=[fields igraph Matrix mvnfast Rcpp RcppArmadillo spam]; };
-  BayesMallows = derive2 { name="BayesMallows"; version="1.0.3"; sha256="1150nwds080cq9s8g1gfry73lz6nlqp8rmzia11d1pk3j04900zv"; depends=[cowplot dplyr ggplot2 HDInterval igraph PerMallows PLMIX purrr Rcpp RcppArmadillo Rdpack relations rlang sets tidyr]; };
+  BayesMallows = derive2 { name="BayesMallows"; version="1.0.4"; sha256="0djv8jb3rgd7bs0f2xp5i1pd01myiaf2dncwmzrh4f93v2v07pby"; depends=[cowplot dplyr ggplot2 HDInterval igraph PerMallows purrr Rcpp RcppArmadillo Rdpack relations rlang sets tidyr]; };
   BayesMassBal = derive2 { name="BayesMassBal"; version="1.0.0"; sha256="158vwfp5wn9g28fg48zmd95lfsr6flmcdm4igfw4cmgp4w0w69lq"; depends=[coda HDInterval LaplacesDemon Matrix pracma Rdpack tmvtnorm]; };
   BayesMixSurv = derive2 { name="BayesMixSurv"; version="0.9.1"; sha256="19kf39881q00pap9afwvvggk4s4w3qpz17b7065nig1mvk8dnp8r"; depends=[survival]; };
   BayesNI = derive2 { name="BayesNI"; version="0.1"; sha256="0zvr6rkb5zxgl53xby69d0j3yrfnlcmac6kwkxz77q5616w9dwq0"; depends=[]; };
@@ -440,8 +442,9 @@ in with self; {
   BayesPPD = derive2 { name="BayesPPD"; version="1.0.3"; sha256="1w5jyvwwc7vk0wx41waq2ab92wb367d25hab55r2cs44vgcw04rl"; depends=[Rcpp RcppArmadillo RcppEigen RcppNumerical]; };
   BayesPieceHazSelect = derive2 { name="BayesPieceHazSelect"; version="1.1.0"; sha256="0znbmv7crqycdx75jh02h6z8d6cifjszbrldv2yva4mkjxsydag5"; depends=[mvtnorm]; };
   BayesPiecewiseICAR = derive2 { name="BayesPiecewiseICAR"; version="0.2.1"; sha256="1qrmw7zmygdzz84p76hyh2d8dx88b8xhbbd7radqm39g35zq5wz6"; depends=[mvtnorm]; };
+  BayesPostEst = derive2 { name="BayesPostEst"; version="0.3.2"; sha256="0r05by4w80j6hb22v3ibj686ixxbj7lkxq499fciz5lqs4lxzf3h"; depends=[brms carData caTools coda dplyr ggplot2 ggridges HDInterval MCMCpack R2jags R2WinBUGS reshape2 rjags rlang ROCR rstanarm runjags texreg tidyr]; };
   BayesProject = derive2 { name="BayesProject"; version="1.0"; sha256="0b1xqw7f9kfbmr8m6fl9d2fpwr364s4a5vdw57l6i5rm6lszyfh5"; depends=[Rcpp RcppEigen Rdpack]; };
-  BayesRGMM = derive2 { name="BayesRGMM"; version="1.1"; sha256="1clm01vp0irng082ifag9pnb6g8avxdskzy0jdy4c0n57hliwg6i"; depends=[abind batchmeans MASS msm mvtnorm plyr Rcpp RcppArmadillo RcppDist Rdpack reshape]; };
+  BayesRGMM = derive2 { name="BayesRGMM"; version="2.0"; sha256="13f4mppiaj5j86ng9wx6jr9djzd2pvswzs5zdw9bx2y525qbhxhg"; depends=[abind batchmeans MASS msm mvtnorm plyr Rcpp RcppArmadillo RcppDist Rdpack reshape]; };
   BayesRS = derive2 { name="BayesRS"; version="0.1.3"; sha256="0fhvnckabp0z1cdsbjgv3ijnzaxwhrk83fwcflgqbhvm3a9lzr77"; depends=[coda ggplot2 metRology reshape rjags]; };
   BayesReversePLLH = derive2 { name="BayesReversePLLH"; version="1.4"; sha256="1wigp9692z0vf1vm3cpbl6wcgp3zyqzfbrkd344hi88421kj1yxj"; depends=[Rcpp RcppArmadillo]; };
   BayesS5 = derive2 { name="BayesS5"; version="1.41"; sha256="0vs6s50h4gpxda9lbxfgn76k9kp81l62a6bv22r7ixsjlnd4baql"; depends=[abind Matrix snowfall splines2]; };
@@ -479,7 +482,7 @@ in with self; {
   BenfordTests = derive2 { name="BenfordTests"; version="1.2.0"; sha256="1nnj0w0zwcmg7maqmmpixx7alvsyxva370ssc26ahg6kxy5a621w"; depends=[]; };
   Bergm = derive2 { name="Bergm"; version="5.0.3"; sha256="0wi8l2xwfiw8slg37z2milck6js26iy0yaj7m6sxgfh16j3n2gwx"; depends=[coda ergm Matrix matrixcalc MCMCpack mvtnorm network statnet_common]; };
   Bessel = derive2 { name="Bessel"; version="0.6-0"; sha256="0iwm08nhlivi4zwcqdi296a1l4n4lfanfxhaysh9vcsyk1kpiacf"; depends=[Rmpfr]; };
-  Bestie = derive2 { name="Bestie"; version="0.1.2"; sha256="0fyr0lcdqrsfj821dpbg2nqq6v9kw5xpyggx8p9dwn8bz04l7bza"; depends=[BiDAG Rcpp]; };
+  Bestie = derive2 { name="Bestie"; version="0.1.3"; sha256="08999wvz0zm55b2yg2f4qdizl83fyppsij5lk20cwr60awbqc3gx"; depends=[BiDAG mvtnorm Rcpp]; };
   BetaBit = derive2 { name="BetaBit"; version="1.4"; sha256="11cvl9m20ycc0zsxbdapjflgsiaxx4dzaygjhv948adjfi5fycbn"; depends=[digest]; };
   BetaPASS = derive2 { name="BetaPASS"; version="1.1-1"; sha256="17q1bfmijv38zyaj5fxlylf5zmkqry4ca9wm5km6zpksgsg2kjjq"; depends=[betareg ggplot2 pbapply]; };
   BeviMed = derive2 { name="BeviMed"; version="5.8"; sha256="12ngw3b05mqsf95svvkk5s8w0fs1yfbpbfk8x9a9v2yva5n65y7a"; depends=[Matrix Rcpp]; };
@@ -515,7 +518,6 @@ in with self; {
   BioFTF = derive2 { name="BioFTF"; version="1.2-0"; sha256="03r6fhpc4dqrcnbl73j9kav1l7rblgfldpbkl2p367vv20xggqih"; depends=[]; };
   BioInsight = derive2 { name="BioInsight"; version="0.3.1"; sha256="129w9643l01y316hm0qcsmxzh5lsdmq6xmiz4rhmdh0dcnw2s93n"; depends=[edgeR knitr limma RColorBrewer wordcloud]; };
   BioMark = derive2 { name="BioMark"; version="0.4.5"; sha256="1ifc72bayy3azbilajqqzl0is6z7l1zaadchcg3n8lhmjrv5sk3m"; depends=[glmnet MASS pls st]; };
-  BioMedR = derive2 { name="BioMedR"; version="1.2.1"; sha256="0l3nmnqv0gzkbby4fhajbba910zpnbyckvxwds353pn54g9pcry7"; depends=[Biostrings ChemmineR fmcsR GOSemSim MASS org_Hs_eg_db pls randomForest rcdk RCurl rjson]; };
   BioPET = derive2 { name="BioPET"; version="0.2.2"; sha256="0zgq7i37d0rnjhlkcrl44x62vhz0njsv2fldm64j9r4wc02z1q9n"; depends=[ggplot2 gridExtra pROC VGAM]; };
   BioPETsurv = derive2 { name="BioPETsurv"; version="0.1.0"; sha256="0svwf8pzvlmlp8aacf70hzlg2h81m6lyhh4p73ixqw5v9bnyq6m0"; depends=[ggplot2 gridExtra survival]; };
   BioProbability = derive2 { name="BioProbability"; version="1.0"; sha256="051m761zf079s0p4q0ambwqc22qjz2yajxrsmnjnxvqiaadaj1q7"; depends=[]; };
@@ -596,7 +598,7 @@ in with self; {
   CAISEr = derive2 { name="CAISEr"; version="1.0.16"; sha256="08br6hdpgf9y2fix299diwd8r3q4gylpbzll4knpxq0vi18a3hz3"; depends=[assertthat ggplot2 gridExtra pbmcapply]; };
   CALANGO = derive2 { name="CALANGO"; version="1.0.5"; sha256="1a5573k5w3ldvgv8x384857ychn089fvir9yn0ryis26xmzkfvx5"; depends=[ape assertthat BiocManager dendextend DT ggplot2 heatmaply htmltools htmlwidgets knitr nlme pbmcapply pkgdown plotly rmarkdown taxize]; };
   CALF = derive2 { name="CALF"; version="1.0.16"; sha256="1y3db8yxgman6jx8ghqcqfh201zj1fykinm9rhfbgb0ixk9dq1yc"; depends=[data_table ggplot2]; };
-  CALIBERrfimpute = derive2 { name="CALIBERrfimpute"; version="1.0-5"; sha256="1fq9cm8qjbg4353al1xaxyajibpznz7ymqs0302c4z6cr7g4qibb"; depends=[mice mvtnorm randomForest]; };
+  CALIBERrfimpute = derive2 { name="CALIBERrfimpute"; version="1.0-6"; sha256="0ghi6pkv9ki0iz4lkli3hkrsk6xiph2ha2pij6dg4wi7mcjdhsbi"; depends=[mice mvtnorm randomForest]; };
   CAMAN = derive2 { name="CAMAN"; version="0.74"; sha256="0d932fbqzlxlhn7m8zfx7wr02pc7fm8398rym1jh2cdy2fk5im08"; depends=[mvtnorm sp]; };
   CANSIM2R = derive2 { name="CANSIM2R"; version="1.14.1"; sha256="1dnzbd9lyqj3w80lx12qxcsbmv8wy6hxknyi5ijp99cfv7kaq1kc"; depends=[downloader Hmisc reshape2]; };
   CARBayes = derive2 { name="CARBayes"; version="5.2.5"; sha256="0lrir2qqpignndvf8xjpyiwh9fc9iw2b0bin5vlxh88krhbkyx9f"; depends=[CARBayesdata coda dplyr GGally leaflet MASS MCMCpack Rcpp rgdal sp spam spdep truncnorm]; };
@@ -626,7 +628,7 @@ in with self; {
   CCM = derive2 { name="CCM"; version="1.2"; sha256="1mhl7yppniybdffylddbbb65n7gmv029fb46wlsxm4yf2xkplmwy"; depends=[]; };
   CCP = derive2 { name="CCP"; version="1.1"; sha256="07jxh33pb8llk1gx4rc80ppi35z8y1gwsf19zrca9w91aahcs8cx"; depends=[]; };
   CCTpack = derive2 { name="CCTpack"; version="1.5.2"; sha256="1kkxsk9x4jz2bvldmba7fsri3zc1cjz15z0xicjmfc7lj72ngdig"; depends=[MASS mvtnorm polycor psych R2jags rjags]; };
-  CCWeights = derive2 { name="CCWeights"; version="0.1.5"; sha256="0n3j118z4pwkq610j10i9svbsd6ibl3adh68zicgipihwhsarzsn"; depends=[bs4Dash dplyr DT fresh magrittr plotly readr readxl rmarkdown shiny]; };
+  CCWeights = derive2 { name="CCWeights"; version="0.1.6"; sha256="0in3pl1n48jal6f7kiyw60by11vbga8vr45x0wywghd7dz60ppfv"; depends=[bs4Dash dplyr DT fresh magrittr plotly readr readxl rmarkdown shiny]; };
   CCpop = derive2 { name="CCpop"; version="1.0"; sha256="10kgw3b98r0kn74w89znq6skgk8b3ldil6yb0hn5rlcf6lazjzca"; depends=[nloptr]; };
   CDFt = derive2 { name="CDFt"; version="1.2"; sha256="19axaf3bh9gasnsfamd5ych1jn751scaplgwpmsf3liazcqqpa61"; depends=[]; };
   CDLasso = derive2 { name="CDLasso"; version="1.1"; sha256="0n699y18ia2yqpk78mszgggy7jz5dybwsi2y56kdyblddcmz1yv7"; depends=[]; };
@@ -659,21 +661,21 @@ in with self; {
   CHsharp = derive2 { name="CHsharp"; version="0.4"; sha256="19mb5zzi9x4pm2z9jbha5dz4k5f1iqjv31aisyv4qh14k5ysdz2i"; depends=[KernSmooth scatterplot3d]; };
   CIAAWconsensus = derive2 { name="CIAAWconsensus"; version="1.3"; sha256="0yhay4fp5lyf0sdcf807yvys17qz9cr5f5ikim25mq336p7fp03x"; depends=[Matrix mvtnorm numDeriv stringr]; };
   CICA = derive2 { name="CICA"; version="0.1.0"; sha256="0f765c1sqvcg11071008vn6gnk0v0lwmlhnqxgqy0r8cw05s2ggq"; depends=[ica NMFN]; };
+  CIDER = derive2 { name="CIDER"; version="0.99.0"; sha256="1qjr2xrcxhbkjjdv7714i6fyyn5rb5r9g79h5vnbd2bmswsgdyi3"; depends=[dbscan doParallel edgeR foreach ggplot2 igraph kernlab limma pheatmap Seurat viridis]; };
   CIEE = derive2 { name="CIEE"; version="0.1.1"; sha256="03kq9cp0v41y0r2l9j5imcrsail2xsvlzhhhsrw454d4s9gqdql9"; depends=[survival]; };
   CIFsmry = derive2 { name="CIFsmry"; version="1.0.1.1"; sha256="1m2m2zvg9ghy3bm2sll7jp4xm2vw58kc5xaxd2c9k82771m3a4j0"; depends=[]; };
   CIM = derive2 { name="CIM"; version="1.0.0"; sha256="02l8rspiiv6vj6k0q6wpiazny3f2s4dsivsm7zb9cm90qh1rv2d7"; depends=[]; };
-  CIMTx = derive2 { name="CIMTx"; version="1.0.0"; sha256="1lcx5222zpffy96q2868hqdm4ynjnpgbhqnsi9b0cw3vladvc0ri"; depends=[arm BART cowplot doParallel dplyr foreach ggplot2 magrittr Matching metR mgcv nnet stringr SuperLearner tidyr tmle twang WeightIt]; };
+  CIMTx = derive2 { name="CIMTx"; version="1.1.0"; sha256="0091qdh10nxvzm4xxw0vw6k5pa7pi5mdfi5b9msfqfvzq00gyjfx"; depends=[arm BART cowplot doParallel dplyr foreach ggplot2 magrittr Matching metR mgcv nnet stringr SuperLearner tidyr tmle twang WeightIt]; };
   CINID = derive2 { name="CINID"; version="1.3-0"; sha256="06n5bwjr44rx0m12xradzaca26rvh01mlimbn0gr3jfzkmyj2f1g"; depends=[]; };
-  CINNA = derive2 { name="CINNA"; version="1.1.54"; sha256="1fvyxgcvdi3h7cysl08n7gzs5dmv3f9rcw1ds29l8n8w9rz6j7rb"; depends=[centiserve circlize corrplot dendextend factoextra FactoMineR GGally ggplot2 igraph intergraph network pheatmap plyr qdapTools Rtsne sna viridis]; };
+  CINNA = derive2 { name="CINNA"; version="1.1.55"; sha256="0xw3ndjy262ljv6mk43ysb7mf4m02kcb5kzz1gzdxdwhj3v7ylgb"; depends=[centiserve circlize corrplot dendextend factoextra FactoMineR GGally ggplot2 igraph intergraph network pheatmap plyr qdapTools Rtsne sna viridis]; };
   CINmetrics = derive2 { name="CINmetrics"; version="0.1.0"; sha256="1csh22b7ap7isnrjak7yp32hasxq8x4j094i9shrnzsz6sxcmc28"; depends=[]; };
   CISE = derive2 { name="CISE"; version="0.1.0"; sha256="10mbi4v8dfdc9ngnrrmxpng8fnig5m8nv7799jksbcf6pnj8yv51"; depends=[far gdata glmnet MASS Matrix rARPACK]; };
-  CITAN = derive2 { name="CITAN"; version="2015.12-2"; sha256="08h91q7529q04izgqw3ahm4r0zjpwnwyc0vynykvv9fz2fkbk7wb"; depends=[agop DBI hash RGtk2 RSQLite stringi]; };
+  CITAN = derive2 { name="CITAN"; version="2021.11-1"; sha256="15dy0n8yms8c01wp38wnn6541a9gq8q7x4sb76ggm9y4bldj6xj3"; depends=[agop DBI hash RSQLite stringi]; };
   CIplot = derive2 { name="CIplot"; version="1.0"; sha256="0hx3dn7d8hvsh75747d9046iqriy3bjnchph8xllnvlhkrm4di1f"; depends=[MASS multcomp]; };
   CJAMP = derive2 { name="CJAMP"; version="0.1.1"; sha256="0caznbqy5hsp7h0gkdbv966vfpq8z1khvbizi4vpc9mxck1nqc99"; depends=[optimx]; };
   CKAT = derive2 { name="CKAT"; version="0.1.0"; sha256="03vxl91z2mhi1h0xgcwhw63mvj56156zgphm16ijdff63pqxaryr"; depends=[CompQuadForm]; };
   CKLRT = derive2 { name="CKLRT"; version="0.2.3"; sha256="1d8sg3ncns3fpjaghz1h1z9nfrl31v09xijrzzsias8xjrpi191b"; depends=[MASS mgcv nlme Rcpp RcppEigen]; };
   CKMRpop = derive2 { name="CKMRpop"; version="0.1.3"; sha256="0d4sai2h2cfzh4hbg8yh7wqb459j948j3s0m218d3gcippm22jpb"; depends=[dplyr ggforce ggplot2 ggraph igraph magrittr purrr Rcpp readr stringr tibble tidygraph tidyr vroom]; };
-  CLA = derive2 { name="CLA"; version="0.96-1"; sha256="1nxzs0y6mid5f2903pxrkqc3rhk7vpax8wm588ddlz6c97y3m8gk"; depends=[]; };
   CLME = derive2 { name="CLME"; version="2.0-12"; sha256="161maq22r8wbd6c2dc8b47mh6991vc4iqmjr8g6yqb5gcwca8zhg"; depends=[isotone lme4 MASS nlme openxlsx prettyR shiny stringr]; };
   CLONETv2 = derive2 { name="CLONETv2"; version="2.2.1"; sha256="1axkkagydpxdrz7ypw3x7bavaxk34lzj9bsdn1nah9nfr3cdia6h"; depends=[arules dbscan ggplot2 ggrepel sets]; };
   CLSOCP = derive2 { name="CLSOCP"; version="1.0"; sha256="0rkwq9rl2ph4h5zwb2i3yphjyzxmh6b6k23a8gcczycx6xdq4yhw"; depends=[Matrix]; };
@@ -698,7 +700,7 @@ in with self; {
   CNull = derive2 { name="CNull"; version="1.0"; sha256="14hy86zg18hqxi63bfzrpkz70yrzfxp2v2pva5xnrvx9dmlyz820"; depends=[ape Matrix PhyloMeasures Rcpp]; };
   COBRA = derive2 { name="COBRA"; version="0.99.4"; sha256="1r1cw12d7c148pcgcg08bfsr1q1s736kfpyyss6b4d7ny7wgmqy4"; depends=[]; };
   COCONUT = derive2 { name="COCONUT"; version="1.0.2"; sha256="1qjrhxn6dkxyimdca3nslaiw3hncfpk1pk4v01mcrnz550z001nz"; depends=[]; };
-  COINr = derive2 { name="COINr"; version="0.5.5"; sha256="1qj6ajdmqjw3gw5yrw4537azbnhn2q1fhiqfx0s9sb1hgfzhkxg3"; depends=[Amelia corrplot dplyr e1071 ggplot2 magrittr matrixStats openxlsx plotly purrr reactable readxl reshape2 rlang rmarkdown shiny stringr tibble tidyr]; };
+  COINr = derive2 { name="COINr"; version="0.6.0"; sha256="1r2bxdymdz59icyxc9cym19fjiam41dnk2ikx9mh2qsamh8g0v6v"; depends=[Amelia corrplot dplyr e1071 ggplot2 magrittr matrixStats openxlsx plotly purrr reactable readxl reshape2 rlang rmarkdown shiny stringr tibble tidyr]; };
   COMBAT = derive2 { name="COMBAT"; version="0.0.4"; sha256="0m700pl33frdpc9y16y4zyh1ixpardh0r5kmz8a78jrh1acn30id"; depends=[corpcor mvtnorm]; };
   COMPoissonReg = derive2 { name="COMPoissonReg"; version="0.7.0"; sha256="144vf3vfn5msc8p67q65frza8xyi9nqccjq47fnv33w5h0d9wlxj"; depends=[Rcpp]; };
   CONCUR = derive2 { name="CONCUR"; version="1.3"; sha256="1xkk5mbkysgrclv7km2pf4bnnm99a9q0dkb68vllrdmzsphjmxp9"; depends=[CompQuadForm dplyr mgcv]; };
@@ -709,12 +711,11 @@ in with self; {
   COST = derive2 { name="COST"; version="0.1.0"; sha256="06xgnsccd621ihlrdmnnh14vh83q1r2bnp3iqi7vp5553b3y4l3w"; depends=[copula mvtnorm]; };
   COUNT = derive2 { name="COUNT"; version="1.3.4"; sha256="02f7779fy0d2bql88x5v9csbxljhnyvl8wb8h83xrmwl7kaxsdpy"; depends=[MASS msme sandwich]; };
   COUSCOus = derive2 { name="COUSCOus"; version="1.0.0"; sha256="1ykqi72v8v1b3g9qy6h34dvk5fynzf1rl2mby65p08axmaba5798"; depends=[bio3d matrixcalc]; };
-  COVID19 = derive2 { name="COVID19"; version="2.3.2"; sha256="0ipsjmvsd2sngwgchv9mbhipxqlsysaa4vmla198bprzj1r6m424"; depends=[dplyr tidyr]; };
-  COVIDIBGE = derive2 { name="COVIDIBGE"; version="0.1.6"; sha256="197m617nfkx62g7bxa943bm7w80fgvm668vfplw9vf7njr55v4f4"; depends=[dplyr httr magrittr projmgr RCurl readr readxl survey tibble timeDate]; };
+  COVID19 = derive2 { name="COVID19"; version="3.0.0"; sha256="1nrkrhkiznp4aqravrgipx0vqpjl8zqc5b949fq893lnfzrlpgqq"; depends=[data_table R_utils]; };
+  COVIDIBGE = derive2 { name="COVIDIBGE"; version="0.1.7"; sha256="18b9wxl47qk1mrqa3nkc1krhdawlfw42a4hbd5mh9dcm4ax77bgz"; depends=[dplyr httr magrittr projmgr RCurl readr readxl survey tibble timeDate]; };
   CP = derive2 { name="CP"; version="1.6"; sha256="18zblf13riiz3mq3hkvg6vhiwjzpsn6mvgc2p0bqyldy98v4aisd"; depends=[survival]; };
   CPAT = derive2 { name="CPAT"; version="0.1.0"; sha256="0zygncwww3cazwmx06bhzq0g41xcqfpw307azdhygc8jmcy6qj71"; depends=[purrr Rcpp RcppArmadillo Rdpack]; };
   CPBayes = derive2 { name="CPBayes"; version="1.1.0"; sha256="1kw0r8spqm0s7cb3w5gplw67mhfmcbbf3ligngbary77ghkzirnb"; depends=[forestplot MASS mvtnorm purrr]; };
-  CPE = derive2 { name="CPE"; version="1.5.1"; sha256="0n3pd6daj0mzhh547syh7nz8iys6q27igqngldb8zd4ib4778603"; depends=[rms survival]; };
   CPGLIB = derive2 { name="CPGLIB"; version="1.0.1"; sha256="18gf0l7fqfi4vl0aylna6s7n6f4kwlaxkqnbdy2qgrvr5vs2j0qn"; depends=[Rcpp RcppArmadillo]; };
   CPMCGLM = derive2 { name="CPMCGLM"; version="1.2"; sha256="07hx2ik5zg05w1h6i94398mp54q958phws9ydgp6syjqlp9dpf1p"; depends=[abind mvtnorm plyr]; };
   CPNCoverageAnalysis = derive2 { name="CPNCoverageAnalysis"; version="1.1.0"; sha256="0w4yw6d41sgl1ypcmp3bxgz4p3cpnbqx73id17zklid4avr3y9yi"; depends=[]; };
@@ -757,7 +758,7 @@ in with self; {
   CVST = derive2 { name="CVST"; version="0.2-2"; sha256="05l3yzkfrbds09ah9cdwn2sn4ryhq78lz33ryzrgkv176jc8qjw5"; depends=[kernlab Matrix]; };
   CVThresh = derive2 { name="CVThresh"; version="1.1.1"; sha256="19d7pslzj8r3z5gn3cplpz2h2ayz6k1nrfx3s2b7a8w1il3vmi69"; depends=[EbayesThresh wavethresh]; };
   CVTuningCov = derive2 { name="CVTuningCov"; version="1.0"; sha256="1bwzis82lqwcqp2djy4bnd3vvjr47krlv3pdc5msh12wcs0xhs7n"; depends=[]; };
-  CVXR = derive2 { name="CVXR"; version="1.0-9"; sha256="0dxhcz74x6p08ipbw9bn5bc3fzxymqahrsld04yq4r7gff2ifwh9"; depends=[bit64 ECOSolveR gmp Matrix osqp R6 Rcpp RcppEigen Rmpfr scs]; };
+  CVXR = derive2 { name="CVXR"; version="1.0-10"; sha256="0cklfwsr3p4x4w7n6y3h3m4i3si8q0pwyp2vzv7kzawrmqc80484"; depends=[bit64 ECOSolveR gmp Matrix osqp R6 Rcpp RcppEigen Rmpfr scs]; };
   CVarE = derive2 { name="CVarE"; version="1.1"; sha256="132bsqvdhalifn47xka23ikas1axxkg4jw8yja6ba8dflb8r753i"; depends=[mda]; };
   CVcalibration = derive2 { name="CVcalibration"; version="1.0-1"; sha256="0ca582fnysrldlzxc3pihsph9pvdgygdh7sfzgxvr5fc3z1jbjzb"; depends=[]; };
   CVglasso = derive2 { name="CVglasso"; version="1.0"; sha256="1bh09cd0yabhqv5yfahhvayx3f09yqapzl1yr9nc9xqwyx1d0cfd"; depends=[doParallel dplyr foreach ggplot2 glasso]; };
@@ -780,7 +781,6 @@ in with self; {
   CatDataAnalysis = derive2 { name="CatDataAnalysis"; version="0.1-3"; sha256="15wz7yjb83rd6d3xx0lb0p4x3ccnqpdkfanmbhykia50y8y32k5n"; depends=[]; };
   CatDyn = derive2 { name="CatDyn"; version="1.1-1"; sha256="0gkaxs7apqhq7mp3chjsyhrnk3qkk11f8p7smmyj6h73888ry8jn"; depends=[BB optimx]; };
   CatEncoders = derive2 { name="CatEncoders"; version="0.1.1"; sha256="1q9wzq06lac8z9y8b65alsxpb48bw8wqmifd893kknk51xq6r9kl"; depends=[data_table Matrix]; };
-  CatPredi = derive2 { name="CatPredi"; version="1.2"; sha256="029haj44smz2k6vpk10bv3ri9qsy0ss2fn1mhw8vj42f3g8i39jb"; depends=[CPE mgcv rgenoud rms survival]; };
   CatReg = derive2 { name="CatReg"; version="2.0.3"; sha256="02pxarc4v45w8ncx8hq084m69qgl9s2lkrv1biz60vrvl99dg016"; depends=[Rcpp Rdpack]; };
   CateSelection = derive2 { name="CateSelection"; version="1.0"; sha256="194lk6anrb05gaarwdg8lj5wm6k61b4r702cja3nf3z91i8paqi7"; depends=[]; };
   CauchyCP = derive2 { name="CauchyCP"; version="0.1.0"; sha256="012aw8cgrwwcsbs93nfsdlv1j72mc96gaxvdrhs9njqd9anamsgl"; depends=[survival]; };
@@ -802,7 +802,7 @@ in with self; {
   CerioliOutlierDetection = derive2 { name="CerioliOutlierDetection"; version="1.1.9"; sha256="0s3pd4y165v69m4wmg9jlc7dl4gz64la9yic67l3n4242wa84p19"; depends=[robustbase]; };
   CfEstimateQuantiles = derive2 { name="CfEstimateQuantiles"; version="1.0"; sha256="1qf85pnl81r0ym1mmsrhbshwi4h1iv19a2wjnghbylpjaslgxp6i"; depends=[]; };
   ChIPtest = derive2 { name="ChIPtest"; version="1.0"; sha256="1yn5b5s56k2dbhw6damxj18xbaiz180ym7fiq2i3p2gkcgwpddbz"; depends=[]; };
-  ChainLadder = derive2 { name="ChainLadder"; version="0.2.13"; sha256="0zn7jz32x1hcbg1x51568mlpfmb1hyq2186gdv5mmipb86i68r9f"; depends=[actuar cplm ggplot2 lattice MASS Matrix mvtnorm statmod systemfit tweedie]; };
+  ChainLadder = derive2 { name="ChainLadder"; version="0.2.14"; sha256="02zy3aj03mi6a2kb9g8bm2v8dhmswxp5b2d0mald28sa188cnp21"; depends=[actuar cplm ggplot2 lattice MASS Matrix statmod systemfit tweedie]; };
   ChangePointTaylor = derive2 { name="ChangePointTaylor"; version="0.1.1"; sha256="1jfymyqdcyxfgn15y0iff7midkfd69fh3amz201idg6248g1y6n8"; depends=[bench dplyr ggplot2 magrittr purrr Rcpp rlang tidyr]; };
   ChangepointTesting = derive2 { name="ChangepointTesting"; version="1.0"; sha256="1nb78b1jpp0wpy9ah2fxkh53hlmb2f82b68msbfhancb8zp2lclv"; depends=[]; };
   ChannelAttribution = derive2 { name="ChannelAttribution"; version="2.0.4"; sha256="1m9fwlkd39q5dmlw71rasj2cjnlj03295ck9lgb7yl72v7sws22d"; depends=[Rcpp RcppArmadillo]; };
@@ -815,7 +815,7 @@ in with self; {
   ChemoSpec2D = derive2 { name="ChemoSpec2D"; version="0.5.0"; sha256="05k46fn2i0ipn14zignxvykr8018wxql26x2r5b479hbkg1rk5s4"; depends=[ChemoSpecUtils colorspace ggplot2 readJDX]; };
   ChemoSpecUtils = derive2 { name="ChemoSpecUtils"; version="1.0.0"; sha256="15w9v4g7myw0ygd9dvalz900yzgz5j2jnmw4j3zfp04fgm3wgbfq"; depends=[ggplot2 ggrepel magrittr plotly plyr]; };
   ChillModels = derive2 { name="ChillModels"; version="1.0.2"; sha256="06hgg893anh5z8an4l1xl4liz7d0m79n21h116vkdlymayccydbr"; depends=[]; };
-  ChineseNames = derive2 { name="ChineseNames"; version="1.1.0"; sha256="15dqr288skbh8fbnx1ikzla4wsvlxcd20qg8bd7w84f9cdi57m9z"; depends=[bruceR data_table]; };
+  ChineseNames = derive2 { name="ChineseNames"; version="1.1.1"; sha256="1vkf4573iq7fqxwig7sphsbfpa9jbx36dayywdjx3n8nx8lksdqa"; depends=[bruceR data_table]; };
   ChoR = derive2 { name="ChoR"; version="0.0-4"; sha256="08mildsx542zfm0kcdakcv7c71hb4jgbcq1lhidf0fz76zj1pzk1"; depends=[commonsMath rJava]; };
   ChoiceModelR = derive2 { name="ChoiceModelR"; version="1.2"; sha256="0dkp3354gvrn44010s8fjbmkpgn1hpl4xbfs5xslql8sk8rw0n2c"; depends=[]; };
   CholWishart = derive2 { name="CholWishart"; version="1.1.2"; sha256="0lms6bnd0czb25ir4ls0lxv4d2ygqiq8ampnv9j7l6hj28xmqyjj"; depends=[]; };
@@ -840,8 +840,8 @@ in with self; {
   ClimClass = derive2 { name="ClimClass"; version="2.1.0"; sha256="1r836md31z2r5d9xckkbalzbhm4kf5paljv71kxpy53q92k7yi91"; depends=[geosphere ggplot2 reshape2]; };
   ClimDown = derive2 { name="ClimDown"; version="1.0.8"; sha256="0qcag9jwvhi9yss55wy5jxabrvym9hljn1fs5gfkzjs5hiwv3gxv"; depends=[abind fields foreach ncdf4 PCICt seas udunits2]; };
   ClimInd = derive2 { name="ClimInd"; version="0.1-3"; sha256="0n5kd001nkpks16c3msvn2qvzyrjawa2rqwh8zph2qr5hgpwcpg7"; depends=[chron SPEI weathermetrics]; };
-  ClimMobTools = derive2 { name="ClimMobTools"; version="0.3.9"; sha256="1mdzsmv0zc6jm5awppy9b1xqg29vy3j9lm2d88d7p6kag47z2n3n"; depends=[climatrends httr jsonlite Matrix PlackettLuce RSpectra]; };
-  ClimProjDiags = derive2 { name="ClimProjDiags"; version="0.1.1"; sha256="16ygjdmdh4rys27iskd457gp4s15h48f7zmddi9qgam1klw3vza2"; depends=[climdex_pcic multiApply PCICt plyr]; };
+  ClimMobTools = derive2 { name="ClimMobTools"; version="0.4.2"; sha256="0y0x5h281xr7bcwqzl19x5azysnf8f2bwqcncm2bnka1wvlckjby"; depends=[climatrends httr jsonlite Matrix PlackettLuce RSpectra sf]; };
+  ClimProjDiags = derive2 { name="ClimProjDiags"; version="0.1.3"; sha256="1grhg0ajf5lfm7pi5mm0hgp0cmln1jwrgkrfb4ci85fpqn96ddji"; depends=[climdex_pcic multiApply PCICt plyr]; };
   ClinSigMeasures = derive2 { name="ClinSigMeasures"; version="1.0"; sha256="0fw89a1q92ck32z6w4zn1ldvky6ag1gi7b9bbv10mhmqhq4w3k58"; depends=[]; };
   ClinicalTrialSummary = derive2 { name="ClinicalTrialSummary"; version="1.1.1"; sha256="0b5by4sn9yvrvxr9921yqsgp8ma3g1hi2qbp5j9m836db1zjhyla"; depends=[Rcpp]; };
   ClinicalUtilityRecal = derive2 { name="ClinicalUtilityRecal"; version="0.1.0"; sha256="17xj9cmdkjrzx7mshka2hlkxh8887sprdqix7fd8jcr9bmc6ad9r"; depends=[caret cowplot ggplot2 lattice nloptr]; };
@@ -895,7 +895,7 @@ in with self; {
   CommEcol = derive2 { name="CommEcol"; version="1.7.1"; sha256="1s6x4mhcx64qdzmp83x3mzmwyj1biawmdj2y752xpm8gpxfjnbc0"; depends=[adespatial ape betapart gmp picante vegan]; };
   CommT = derive2 { name="CommT"; version="0.1.1"; sha256="1kimm8z3k7p5lxsjnkb203js2rqn09grywxs890fab1hhgssgv2r"; depends=[ape ggplot2 gridExtra phangorn reshape]; };
   CommonJavaJars = derive2 { name="CommonJavaJars"; version="1.0-6"; sha256="0l1zqygklv1s3xr6pjjrji3wmyqg7258qvgwf9c2qjim8p8y8lsr"; depends=[]; };
-  CommonMean_Copula = derive2 { name="CommonMean.Copula"; version="1.0.0"; sha256="0j489hb4vlj3xkdq9vf2qjmcfb8ccff82vsmz63f25ws9pgc2lk2"; depends=[mvtnorm pracma]; };
+  CommonMean_Copula = derive2 { name="CommonMean.Copula"; version="1.0.1"; sha256="0d0l4kisglpws5ywdihxhj1zsd0k1g1ns3nrlw07w22y7k98v86b"; depends=[mvtnorm pracma]; };
   CommunityCorrelogram = derive2 { name="CommunityCorrelogram"; version="1.0"; sha256="1wkrm5lil595sc4ih3qsf4sgvfipzlav0n7339ixqw9zxm2pg4nj"; depends=[vegan]; };
   Comp2ROC = derive2 { name="Comp2ROC"; version="1.1.4"; sha256="06hpbid9z1pzg7k4gqp2zn8l7sm375z32fsn54i27qbl3inp7m2d"; depends=[boot ROCR]; };
   CompAREdesign = derive2 { name="CompAREdesign"; version="1.9"; sha256="0jwq56y6h1jfrh0qm4z52wpia157g1yx003aa08mdjdk0xbdc8n5"; depends=[copula ggplot2 numDeriv rootSolve]; };
@@ -912,10 +912,11 @@ in with self; {
   ComparisonSurv = derive2 { name="ComparisonSurv"; version="1.0.9"; sha256="1xvxkj0i59fq05df6szx4k32w2447mxcx3877l2myag4x6i6c74l"; depends=[muhaz survival survRM2 TSHRC]; };
   Compind = derive2 { name="Compind"; version="2.3"; sha256="0im7wpgigkd3nwg6crnp4c3ndd3b6763f0f4v512r9a13hm48ms0"; depends=[Benchmarking boot GPArotation Hmisc lpSolve MASS nonparaeff np psych smaa spdep]; };
   ComplexUpset = derive2 { name="ComplexUpset"; version="1.3.1"; sha256="185bwa45sknhxrg0m1cb7c2jblq6kxq3i9c0jzp3frxc5ybz0737"; depends=[colorspace ggplot2 patchwork scales]; };
-  Compositional = derive2 { name="Compositional"; version="5.0"; sha256="06dlr3k72h3ahdzimwp9jhc332w4xv8qcmqmgl37f90wzkwrdljj"; depends=[codalm Directional doParallel emplik FlexDir foreach glmnet MASS mda mixture NlcOptim nnet pchc RANN Rfast Rfast2 sn]; };
+  Compositional = derive2 { name="Compositional"; version="5.2"; sha256="02mbspn456kkfsdiz481z7qjppf0giiglwp1yy3gsa40qrw23199"; depends=[codalm Directional doParallel emplik FlexDir foreach glmnet MASS mda mixture NlcOptim nnet pchc RANN Rfast Rfast2 sn]; };
   CompoundEvents = derive2 { name="CompoundEvents"; version="0.1.0"; sha256="03shw3016xc41a6by8pnpqs7mmnhs0qmg5aqd4hlfcy3dv2w9wkf"; depends=[]; };
   Compounding = derive2 { name="Compounding"; version="1.0.2"; sha256="1xlb3ylwjv70850agir0mx79kcvs43h0n1sm22zcny3509s2r7lf"; depends=[hypergeo]; };
   ConConPiWiFun = derive2 { name="ConConPiWiFun"; version="0.4.6.1"; sha256="1ziy646lbx297kia797xjxa8hyl826x1hiighyjslvnlvrhapx08"; depends=[Rcpp]; };
+  ConNEcT = derive2 { name="ConNEcT"; version="0.7.26"; sha256="00hqbixp2pzsbnv51l8imbqxkvb5z78fa6xzx1sw5azxllh8f70l"; depends=[qgraph Rlab]; };
   ConR = derive2 { name="ConR"; version="1.3.0"; sha256="1q93x2b7a2jgkybazk24x8gvwvjjvkhi1gy5zx1sc2f4arm73myq"; depends=[doSNOW fields foreach geosphere raster rgdal rgeos rnaturalearth sf snow sp tibble writexl]; };
   ConSpline = derive2 { name="ConSpline"; version="1.2"; sha256="16r0v0llj0pri69jqxribp8dpzh6yn6acpq20aaky14fyh3i4q7x"; depends=[coneproj]; };
   Conake = derive2 { name="Conake"; version="1.0"; sha256="1rj1rv8r53516jqhwp9xqqwjxh4gx1w47c0bw59f87wiy5pbchpf"; depends=[]; };
@@ -925,8 +926,7 @@ in with self; {
   ConfIntVariance = derive2 { name="ConfIntVariance"; version="1.0.2"; sha256="0xm3vh3vmf16faa3934100rnrg4rvlqkgjlsqa2smzcvy5vb86z4"; depends=[]; };
   ConfigParser = derive2 { name="ConfigParser"; version="1.0.0"; sha256="0jjh6gz5qcqhirzkmg7a4lnf8n3mjly15x2mvbvdpjkk7iv3w9m3"; depends=[ini R6]; };
   ConformalSmallest = derive2 { name="ConformalSmallest"; version="1.0"; sha256="0r74hbz0dmz69zsw2vdl858vj27p6f2xcpv1l1il4r52cmshg1h8"; depends=[glmnet MASS mvtnorm quantregForest]; };
-  ConfoundedMeta = derive2 { name="ConfoundedMeta"; version="1.3.0"; sha256="17l6dfff2v0a4p022qclrmkzi78ga9adkgxgrgk9imz0n9m9424d"; depends=[ggplot2 metafor]; };
-  ConfusionTableR = derive2 { name="ConfusionTableR"; version="1.0.2"; sha256="0b7zkfncb21p24w78phr1xzjjnjrw05yjxjij66ywjlbqmcwlqcz"; depends=[caret dplyr e1071 furrr ggplot2 lattice magrittr mlbench purrr randomForest scales tidyr]; };
+  ConfusionTableR = derive2 { name="ConfusionTableR"; version="1.0.3"; sha256="15azzzjlimn4f8xkqhzfp8xf0q7qa9qd0jaiq671ng95dzrg9sjw"; depends=[caret dplyr furrr magrittr purrr tidyr]; };
   CongreveLamsdell2016 = derive2 { name="CongreveLamsdell2016"; version="1.0.2"; sha256="0fs0r3k1hvnp241fa0ymq00868skcigizqr68sp3lsmvzsdyxha9"; depends=[Ternary]; };
   Conigrave = derive2 { name="Conigrave"; version="0.4.4"; sha256="02nvk5ya9gr06ai8qnjw0xq6hfbrr91b6lx9gq08dbrnmpbmyvqz"; depends=[dplyr ggplot2 miceadds mitools ppcor stringdist stringr]; };
   ConjointChecks = derive2 { name="ConjointChecks"; version="0.0.9"; sha256="097mhiz8zjmmkiiapr3zfx7v35xirg57nqp1swd72dixaa23nhr1"; depends=[]; };
@@ -934,7 +934,7 @@ in with self; {
   ConsRank = derive2 { name="ConsRank"; version="2.1.2"; sha256="0vdjp2kawnmwz5rxp1p489l6pq61byyzpbs0w9m4rbal3whn65hf"; depends=[gtools proxy rgl rlist]; };
   ConsRankClass = derive2 { name="ConsRankClass"; version="1.0.1"; sha256="02n6a3affm72vfhsjz90jl8x0qrvxsimlm1ng313s4zla515h8ap"; depends=[ConsRank janitor pracma proxy rlist]; };
   ConsReg = derive2 { name="ConsReg"; version="0.1.0"; sha256="0ck188ahzprzvqdh2q05bcg9b68dw3xiqqb1xirbm4rp5chyr419"; depends=[adaptMCMC data_table DEoptim dfoptim FME forecast GA GenSA ggplot2 MCMCpack Metrics nloptr Rcpp rlang Rsolnp]; };
-  ContaminatedMixt = derive2 { name="ContaminatedMixt"; version="1.3.4.1"; sha256="157lnlv0idcasi8y31zk9864kdqrlcl409gza4jx5k131qlp2san"; depends=[caret mclust mixture mnormt mvtnorm]; };
+  ContaminatedMixt = derive2 { name="ContaminatedMixt"; version="1.3.6"; sha256="0bkpzx6a1w4560djj3r65y2z96h6wp8s0wscrf8mas4ianijaaf3"; depends=[caret mclust mixture mnormt mvtnorm]; };
   ContourFunctions = derive2 { name="ContourFunctions"; version="0.1.1"; sha256="00p5bdiq8hj95lkr86iwyh50qw0d0d4gs9hhbzcix6lwn8dwqd3s"; depends=[]; };
   ConvergenceClubs = derive2 { name="ConvergenceClubs"; version="2.2.1"; sha256="0mn0lnycz5pi821q52g1njjs2pcmvv8yynr13bh237c8cashk2n3"; depends=[lmtest sandwich]; };
   ConvergenceConcepts = derive2 { name="ConvergenceConcepts"; version="1.2.2"; sha256="1pvcl0bgd4anrbn6wqxsd1s23ycsc7jhrk94yzwx67xx0qs9mmrw"; depends=[lattice tkrplot]; };
@@ -943,7 +943,7 @@ in with self; {
   CoordinateCleaner = derive2 { name="CoordinateCleaner"; version="2.0-20"; sha256="1n1k97imcg3n8nvl9759nqbzirxs011micx4qj2sf1d0bvnlrzs1"; depends=[dplyr geosphere ggplot2 raster rgbif rgdal rgeos rnaturalearth sp tidyselect]; };
   CopCTS = derive2 { name="CopCTS"; version="1.0.0"; sha256="1j0bhkjk181y9k69442diswgwax5whmh5vfqydhf3b1r5ll1wkm3"; depends=[copBasic copula msm]; };
   CopernicusDEM = derive2 { name="CopernicusDEM"; version="1.0.1"; sha256="0pf3y335agfkdnxjyfcfkbrk2999p5h0by959ahc1wxyrxdghxsl"; depends=[doParallel foreach gdalUtils glue sf]; };
-  Copula_Markov = derive2 { name="Copula.Markov"; version="2.8"; sha256="0wyb80jj9zgh7kn0nah7dljps72083c92hpds94dw4ccmw6cfwf6"; depends=[]; };
+  Copula_Markov = derive2 { name="Copula.Markov"; version="2.9"; sha256="18krq0q5i3j211g88sl153f1fa5crdcgclvl5lqawm7zykyzblh2"; depends=[]; };
   Copula_Markov_survival = derive2 { name="Copula.Markov.survival"; version="1.0.0"; sha256="1sxg0ir39f4hj4m6imija0c88j513j6fflcp7xc0599iglwsrbvs"; depends=[survival]; };
   Copula_surv = derive2 { name="Copula.surv"; version="1.1"; sha256="1zs2jvb07948g2aspy8877j4hdzavd57lmv4x2yrf6gb4xzs3x3n"; depends=[]; };
   CopulaCenR = derive2 { name="CopulaCenR"; version="1.1.3"; sha256="03hd6cw1mymkdcjf211g2c4m049d61hva8n4nxsrp2lpzxq3yz3s"; depends=[caret copula corpcor flexsurv icenReg magrittr plotly pracma survival]; };
@@ -1041,7 +1041,7 @@ in with self; {
   DDoutlier = derive2 { name="DDoutlier"; version="0.1.0"; sha256="1az5zq0l3kj959572mlpc4zl73f16iag0yrs217fa9m8xpd3c2sd"; depends=[dbscan pracma proxy]; };
   DECIDE = derive2 { name="DECIDE"; version="1.2"; sha256="18kn2pm9r0ims2k1jfsfzh258wwxz0xg86rsbwgq6szh0azlq3qy"; depends=[]; };
   DEEPR = derive2 { name="DEEPR"; version="0.1"; sha256="0q8970q3gpjxwxdf2bkhpnqrxpm00w27b20a9sn9vv314rn1n7s8"; depends=[dirmult]; };
-  DEEVD = derive2 { name="DEEVD"; version="1.2.2"; sha256="0rvz78b0mrfppshyks8srpk5rc8sm0ilgbkz7rb6j3v0306sqk8d"; depends=[evd]; };
+  DEEVD = derive2 { name="DEEVD"; version="1.2.3"; sha256="1wa3h0z5sk8zrwblzb8w7hgj9yqw56vqi3vsnpva53qynf42r2n7"; depends=[evd]; };
   DELTD = derive2 { name="DELTD"; version="2.6.7"; sha256="1cghz224pmh06yk00jx956nlkk45p2ri81v1jjhx27xjagp4jzcs"; depends=[]; };
   DEMOVA = derive2 { name="DEMOVA"; version="1.0"; sha256="09dqhhhihphhdnplmhdq4q5zwc0qvqhirdrxa9x6fr43vwa5zfp4"; depends=[leaps]; };
   DEPONS2R = derive2 { name="DEPONS2R"; version="1.0.3"; sha256="1h7bia4l8myjnwhjp576v6wkr0p63hcgfdmqrxhiam9xwl7kp4ar"; depends=[jsonlite raster rgdal rgeos sp xml2]; };
@@ -1102,12 +1102,13 @@ in with self; {
   DOvalidation = derive2 { name="DOvalidation"; version="1.1.0"; sha256="1mzws3w7djpxnfqxjcqwgia7p17kb0qlnzj6qcfg2m1vamb1cn2z"; depends=[]; };
   DPBBM = derive2 { name="DPBBM"; version="0.2.5"; sha256="1qypxrcm3sb727lqb09ssjf3hblixqayw3qsyql01imrxwm609i2"; depends=[CEoptim gplots tmvtnorm VGAM]; };
   DPP = derive2 { name="DPP"; version="0.1.2"; sha256="1qalcm4gwh03qpy07d0p323ccq8xmk04v6z30g7wg6ic613bqg7m"; depends=[coda Rcpp]; };
-  DPQ = derive2 { name="DPQ"; version="0.4-4"; sha256="1x0139g7wgbvk4a6iljn4rpyahgm727iad4zg2mvh8lm8c9avsss"; depends=[sfsmisc]; };
+  DPQ = derive2 { name="DPQ"; version="0.5-0"; sha256="0hps9pfhxdgmq0gvdvycj6xj0syadbba6cfahr9hqx43wnfngxk1"; depends=[sfsmisc]; };
   DPQmpfr = derive2 { name="DPQmpfr"; version="0.3-1"; sha256="0f3l6dhiqnlix5vdz65pnxic43hcd4xiz64sh3cp8xs8cbmlnqcw"; depends=[DPQ gmp Rmpfr]; };
   DPWeibull = derive2 { name="DPWeibull"; version="1.7"; sha256="1z261fhx5dr3yxfy10jrnj5xpc5i8bcs169wqp9p32frwpz20ad3"; depends=[binaryLogic prodlim Rcpp RcppArmadillo survival truncdist]; };
   DPtree = derive2 { name="DPtree"; version="1.0.1"; sha256="0d7zf695lwkx4gv50f08cbi3p3mjjay0qgrbmvybf9m15i4zmyd7"; depends=[MASS MCMCpack plyr Rdpack]; };
+  DR_SC = derive2 { name="DR.SC"; version="2.3"; sha256="0hrp2d6frivj2q8js103gla5wrzqy814izzji6n8lc4x088dwrjg"; depends=[CompQuadForm cowplot ggplot2 GiRaF MASS Matrix mclust purrr RColorBrewer Rcpp RcppArmadillo Seurat spatstat_geom]; };
   DRAYL = derive2 { name="DRAYL"; version="1.0"; sha256="0cf5pyx6nwh8srdylpnmymv3dr67fm6qqpwd1hvj1wmyfc8fznpp"; depends=[cubature pracma RConics rmutil]; };
-  DRDID = derive2 { name="DRDID"; version="1.0.1"; sha256="10n0vcj0lcg0xypqmlbsws069xbgbxpgkc7kxbis04ksq7h43d5z"; depends=[BMisc trust]; };
+  DRDID = derive2 { name="DRDID"; version="1.0.3"; sha256="1xlz4vc43myxximzcf87bk52pd5rplcbi5655m18xk7jx2l95ksb"; depends=[BMisc trust]; };
   DRDRtest = derive2 { name="DRDRtest"; version="0.1"; sha256="1vrvwr441w526a80s0r2fwqlllvn05ir8v2152jz2wxrwhnpq1s0"; depends=[KernSmooth SuperLearner]; };
   DREGAR = derive2 { name="DREGAR"; version="0.1.3.0"; sha256="15cplshs85r0z659mc7xmj5db7vc95wxs01c34isc22p8z0a287i"; depends=[msgps]; };
   DRHotNet = derive2 { name="DRHotNet"; version="2.0"; sha256="1hj321qy6jvdicxksnrkzwhdgzjs7pl1bxj6bm0135qjpfmj3v8m"; depends=[maptools PBSmapping raster sp spatstat spatstat_core spatstat_geom spatstat_linnet spdep]; };
@@ -1130,7 +1131,7 @@ in with self; {
   DSsim = derive2 { name="DSsim"; version="1.1.5"; sha256="0dr8dc91m7s5c198k9cb26a09f14wb8ihr46c0mr9cg33l2wf3nv"; depends=[fields mgcv mrds rgeos shapefiles sp splancs]; };
   DStree = derive2 { name="DStree"; version="1.0"; sha256="14wba25ylmsyrndh007kl377dv4r34wr1555yxl6kyxrs4yg3jir"; depends=[Ecdat pec Rcpp rpart rpart_plot survival]; };
   DSviaDRM = derive2 { name="DSviaDRM"; version="1.0"; sha256="1hj2pgnldrpgapwwz1kf4k6mvyzwdvb1i6czd7sbimsx5hafwps8"; depends=[igraph ppcor]; };
-  DT = derive2 { name="DT"; version="0.19"; sha256="04rv1rprqlc56hycxpqkbmwmq4wjvmanq2lwxrflmf2s46pbv9ms"; depends=[crosstalk htmltools htmlwidgets jquerylib jsonlite magrittr promises]; };
+  DT = derive2 { name="DT"; version="0.20"; sha256="17xs18i439p15agyk7z2xyyrwgrpn5pw09kd3jwxn7qhxi4pyvf6"; depends=[crosstalk htmltools htmlwidgets jquerylib jsonlite magrittr promises]; };
   DTAT = derive2 { name="DTAT"; version="0.3-4"; sha256="1ddmih8cxbgc1p4m0sm8gdbnf0d3ka8z7014zd4aykz75j3pr002"; depends=[data_table dplyr Hmisc jsonlite km_ci pomp r2d3 shiny survival]; };
   DTAXG = derive2 { name="DTAXG"; version="0.1.0"; sha256="1jxa0ix0z35i0xdnjl698j8iqjmp6nz8ckah9bap5ay9rkq0xd7f"; depends=[]; };
   DTAplots = derive2 { name="DTAplots"; version="1.0.2.5"; sha256="1jwfh8j8ahaj2z19g2f70r652j77q4f0b7j91mggsb0dgk449342"; depends=[]; };
@@ -1164,7 +1165,6 @@ in with self; {
   DataClean = derive2 { name="DataClean"; version="1.0"; sha256="0wkafjyp6c2mx7g1bpz2pbxyl5nm2wba2hly8miizv0fdc762za5"; depends=[xlsx XML]; };
   DataCombine = derive2 { name="DataCombine"; version="0.2.21"; sha256="0iwb4726bk0cjhay694dp43b1553yyk9lpxbncs85kz229b26arm"; depends=[data_table dplyr]; };
   DataEditR = derive2 { name="DataEditR"; version="0.1.3"; sha256="0s1c6hzih94mcxkjlc3qf36d5pzbaj7rhi0fsm31ps3224dcn4p4"; depends=[htmltools miniUI rhandsontable rstudioapi shiny shinyBS shinyjs shinythemes]; };
-  DataEntry = derive2 { name="DataEntry"; version="0.9-3"; sha256="0gfsg7wfwy88x7y1dwpgwi6fkizjnhrzj0a5ij70y4a4sjmyiy55"; depends=[digest gWidgets2 gWidgets2RGtk2 RGtk2]; };
   DataExplorer = derive2 { name="DataExplorer"; version="0.8.2"; sha256="0451fnlaqvyzpqhn25g6lj2svjfsfaxii9vmwhqw7p29fl71zaln"; depends=[data_table ggplot2 gridExtra networkD3 reshape2 rmarkdown scales]; };
   DataFakeR = derive2 { name="DataFakeR"; version="0.1.2"; sha256="0158ffj6yfvdirxar39rl6n730sza0lzq48v65p43whz6jbf9ybb"; depends=[dplyr glue magrittr purrr R6 tibble tidygraph yaml]; };
   DataGraph = derive2 { name="DataGraph"; version="1.2.5"; sha256="0f5wh2lyddr48wdcqgk1y1jbs9q9rim86v4g1c7m4xgnvyp81mih"; depends=[Rcpp]; };
@@ -1173,7 +1173,7 @@ in with self; {
   DataSpaceR = derive2 { name="DataSpaceR"; version="0.7.5"; sha256="0n7f7092lmhac1xb7yw4a68nmnk0cad2j6lkaj2v0d1nl2q7pvam"; depends=[assertthat curl data_table digest httr jsonlite R6 Rlabkey]; };
   DataVisualizations = derive2 { name="DataVisualizations"; version="1.2.2"; sha256="1fqsim2kz57f4c9isj6pivxnsabhdpj17dpyly4d4jh5bgyscqzm"; depends=[ggplot2 pracma Rcpp RcppArmadillo reshape2 sp]; };
   DataViz = derive2 { name="DataViz"; version="0.2.8"; sha256="1dr5nvdzc63x9ymlysvv5i8b7zcffq13pa39q0ychdwr1s3x7vzw"; depends=[Rcpp tibble]; };
-  DatabaseConnector = derive2 { name="DatabaseConnector"; version="4.0.2"; sha256="10ln53hfgkd3janlk11s3mi99r69xaaz7p9lbsi6s83yhf4kgv3r"; depends=[bit64 DBI rJava rlang SqlRender stringr urltools]; };
+  DatabaseConnector = derive2 { name="DatabaseConnector"; version="5.0.0"; sha256="1gv5awdd6xm72j7w787aiq8y8zbf56xswkpr67zjynhkh8q6jrf1"; depends=[bit64 DBI readr rJava rlang SqlRender stringr urltools]; };
   DatabaseConnectorJars = derive2 { name="DatabaseConnectorJars"; version="1.1.0"; sha256="18m6ynj30r5xdy51b3s39h0jcz1k2wgka888skr6ds2233lhqk2w"; depends=[rJava]; };
   DatabionicSwarm = derive2 { name="DatabionicSwarm"; version="1.1.5"; sha256="1m5ydlyj54ybw38b6i78krrvqj29bp24x19xbqz9fgwpqimnv79y"; depends=[deldir GeneralizedUmatrix Rcpp RcppArmadillo]; };
   DatastreamDSWS2R = derive2 { name="DatastreamDSWS2R"; version="1.8.2"; sha256="018733gm5z90qhbci6khxx27pn074si176mwnlq53bd6r722jiwm"; depends=[dplyr foreach httr jsonlite stringi stringr xts zoo]; };
@@ -1198,13 +1198,12 @@ in with self; {
   DemografixeR = derive2 { name="DemografixeR"; version="0.1.1"; sha256="16qd1wbzizvg86bqkk8fvb53g6h30l5v99cjxpnr43qf0r4drz3j"; depends=[httr jsonlite magrittr]; };
   DendSer = derive2 { name="DendSer"; version="1.0.1"; sha256="0id6pqx54zjg5bcc7qbxiigx3wyic771xn9n0hbm7yhybz6p3gz9"; depends=[gclus seriation]; };
   DendroSync = derive2 { name="DendroSync"; version="0.1.3"; sha256="1q3bn4aqr4gkazx8cpwbwx29paxg8lr6r2fn8h7jjpzpglj51d0m"; depends=[ggplot2 gridExtra nlme]; };
-  DengueRT = derive2 { name="DengueRT"; version="1.0.1"; sha256="11qfg4l6y3j8qh4dcsz13xjjj1n0q71c9a3c180nm5lgqv0nwb81"; depends=[drc ggplot2 nlme]; };
   DensParcorr = derive2 { name="DensParcorr"; version="1.1"; sha256="1ifkg7cpimf27yhr60rks77r16kmhwa5h10wv7b64sbfncnyzfmj"; depends=[clime gplots]; };
   Density_T_HoldOut = derive2 { name="Density.T.HoldOut"; version="2.00"; sha256="0kh5nns1kqyiqqfsgvxhx774i2mf4gcim8fp5jjyq577x4679r31"; depends=[histogram]; };
   DepLogo = derive2 { name="DepLogo"; version="1.2"; sha256="13y3akmrj5x1mn1sgha1jryzswg4kqxwswbm3m5z92mcm2zw4r9l"; depends=[]; };
-  DepthProc = derive2 { name="DepthProc"; version="2.1.3"; sha256="1dq5y6fgmm00imkim4v2s6kn4z5qnwa0dkfkcq4pap7imvi35aab"; depends=[colorspace geometry ggplot2 lattice MASS np Rcpp RcppArmadillo rrcov sm zoo]; };
+  DepthProc = derive2 { name="DepthProc"; version="2.1.4"; sha256="0fa15qcga72db040rscmvp31jdi477wxyyx4c3mwmpjhf81a5978"; depends=[colorspace geometry ggplot2 lattice MASS np Rcpp RcppArmadillo rrcov sm zoo]; };
   Deriv = derive2 { name="Deriv"; version="4.1.3"; sha256="130g3mv0z9sqs6y23a0a94512iiw05yr6fp378vhdxxbignzbnyv"; depends=[]; };
-  DescTools = derive2 { name="DescTools"; version="0.99.43"; sha256="1zx4wwry7pph21q37r0r1vgx616pki232ych2wl9z2s2fmclwg4c"; depends=[BH boot data_table Exact expm gld MASS mvtnorm Rcpp rstudioapi]; };
+  DescTools = derive2 { name="DescTools"; version="0.99.44"; sha256="04wp3sp6sahgq167465y38y13h1ia5a4zqazysacpjxd1if0578j"; depends=[BH boot data_table Exact expm gld MASS mvtnorm Rcpp rstudioapi]; };
   DescToolsAddIns = derive2 { name="DescToolsAddIns"; version="1.9"; sha256="12zwhy05wkwxldjyjxqcfsww73pxyni17c5g3b0slrxk6ag13wl7"; depends=[DescTools foreign manipulate rstudioapi writexl]; };
   DescrTab2 = derive2 { name="DescrTab2"; version="2.0.7"; sha256="1yknr146v7d6ahm7glarqzpk4z4nyg9mwmgnrsfszwwryzpck5ii"; depends=[cli DescTools dplyr exact2x2 flextable forcats kableExtra magrittr nlme officer rlang scales stringr tibble tidyselect]; };
   DescribeDisplay = derive2 { name="DescribeDisplay"; version="0.2.7"; sha256="0241mbz0y3ala7fsb4fwjd0xigsk0wq77hfrjyvnnp97rfjfzmcv"; depends=[GGally ggplot2 plyr reshape2 scales]; };
@@ -1246,7 +1245,7 @@ in with self; {
   DirectEffects = derive2 { name="DirectEffects"; version="0.2.1"; sha256="0cjqp4gam1psd11d6h99pi3ramnaybp6bij86wbgqji2icqlvghg"; depends=[Formula glue sandwich]; };
   DirectStandardisation = derive2 { name="DirectStandardisation"; version="1.3"; sha256="1qlfvzlig3a2v78fiq6sbbpxklmjczikxdw57m6mqngzrl9vdl2g"; depends=[]; };
   DirectedClustering = derive2 { name="DirectedClustering"; version="0.1.1"; sha256="1shdqz0c5bbgknvfqr3ais26cb5mpywnah3d3584w97sy8v7gxm2"; depends=[igraph]; };
-  Directional = derive2 { name="Directional"; version="5.1"; sha256="1zx0554m40nipxg6dwh6mwl3z775m3lfby1q96hn43axvjnhhv7c"; depends=[bigstatsr doParallel foreach ggplot2 magrittr RANN Rfast Rfast2 rgl rnaturalearth rnaturalearthdata sf]; };
+  Directional = derive2 { name="Directional"; version="5.2"; sha256="19vz0i3q4560fknvr9d7b5plq3xvydrw2kk91qngrx5dsml0mx0k"; depends=[bigstatsr doParallel foreach ggplot2 magrittr RANN Rfast Rfast2 rgl rnaturalearth sf]; };
   DirichletReg = derive2 { name="DirichletReg"; version="0.7-1"; sha256="1ql5mwb7zb06y9j6inrlngq7c15as4j17wd8kc71fxs0a2jdj7xi"; depends=[Formula maxLik]; };
   DisHet = derive2 { name="DisHet"; version="1.0.0"; sha256="056jcs1qpiyadnmlzd0cj4kp0qzkichxi0pdnxypyq1fsqnpvan3"; depends=[gtools matrixStats]; };
   DisImpact = derive2 { name="DisImpact"; version="0.0.15"; sha256="1cksc68gqvlah6rzlh1h7glsl55v9kxkayvv05hz6fkcds01qkga"; depends=[dplyr purrr rlang tidyr tidyselect]; };
@@ -1277,7 +1276,7 @@ in with self; {
   DockerParallel = derive2 { name="DockerParallel"; version="1.0.4"; sha256="1fgs2f5czb05fiqxqp00qggni041ml4s3x05h9n4mmka9mwxi34b"; depends=[jsonlite]; };
   Dodge = derive2 { name="Dodge"; version="0.9-2"; sha256="0767n6hyspqrv5cgx3ghhai0qffj6haga7s86pv7mq8zvjcxjlzv"; depends=[]; };
   Dominance = derive2 { name="Dominance"; version="1.2.0"; sha256="1z2gcs7myf90986gzw9g3914ph5cyg6pq6k53h4z566x883q8maz"; depends=[chron igraph]; };
-  DominoPredictionLogging = derive2 { name="DominoPredictionLogging"; version="0.1.0"; sha256="1qzh8inzqk1s6cw9bsl7hazdf6cbfr11zs22723wl4xs31inp1lg"; depends=[lgr rjson uuid]; };
+  DominoDataCapture = derive2 { name="DominoDataCapture"; version="0.1.1"; sha256="168nvarg58x0w7bi365rd810gl5xz1b2kv8jv0myb7qwxdw1igm4"; depends=[lgr rjson uuid]; };
   DoseFinding = derive2 { name="DoseFinding"; version="1.0-2"; sha256="15wpr8wiqjar9hlgcv8y2gjxv6531q3b69jxh2kq10k7bni3rshb"; depends=[lattice mvtnorm]; };
   DoubleCone = derive2 { name="DoubleCone"; version="1.1"; sha256="1kbvsj93nn2306s6pgqiiznmlcn2nqsgcxinihl613ivczxhzpqg"; depends=[coneproj MASS Matrix]; };
   DoubleExpSeq = derive2 { name="DoubleExpSeq"; version="1.1"; sha256="00xpj5xmpgmvp6h76imkmghrnlfk6c50ydvv0jram6m6ix3z8323"; depends=[numDeriv]; };
@@ -1331,7 +1330,7 @@ in with self; {
   EDMeasure = derive2 { name="EDMeasure"; version="1.2.0"; sha256="1gyv86vip0a3939dbbwz29xkqzncw24r68fzykdjnv3b995510iv"; depends=[dHSIC energy rBayesianOptimization]; };
   EDNE_EQ = derive2 { name="EDNE.EQ"; version="1.0"; sha256="13aflnpznpzjrrdrn0r7v2mch6hjd77s6c3l7mnc2p59vq7mzmpg"; depends=[MASS]; };
   EDOIF = derive2 { name="EDOIF"; version="0.1.3"; sha256="1lq4j5axybhv34mdsz0rn5nz9x3rzjf6bczzfzrf75k6pwqxim1w"; depends=[boot distr ellipsis ggplot2 igraph simpleboot]; };
-  EDOtrans = derive2 { name="EDOtrans"; version="0.1.0"; sha256="0xsfh3aib21d6mm3a0ii28m216vgdz8hqx859mxa6bzplp0yhich"; depends=[ABCanalysis AdaptGauss ClusterR DataVisualizations DistributionOptimization ggplot2 rlang]; };
+  EDOtrans = derive2 { name="EDOtrans"; version="0.2.0"; sha256="0bycq28ajyvwx7h4wpk6b1cijgy12fv8f8x42sm7glwbmfx3aw3z"; depends=[ABCanalysis opGMMassessment]; };
   EEM = derive2 { name="EEM"; version="1.1.1"; sha256="0w20kakgcpyhfi7fcrss4w67pbaj87hi2scy7g05q3sg2ygac7gj"; depends=[colorRamps ggplot2 R_utils reshape2 sp]; };
   EEMDSVR = derive2 { name="EEMDSVR"; version="0.1.0"; sha256="0m28rrw7lg3sx2aviqphsid2rsp7zksd3fcvk7pxfw16z90y7ifd"; depends=[e1071 Rlibeemd]; };
   EEMDelm = derive2 { name="EEMDelm"; version="0.1.0"; sha256="18m4b22sar14admlhagjdxzq16ynvam2c0cv3z168x8xh6zv2xpr"; depends=[forecast nnfor Rlibeemd]; };
@@ -1342,6 +1341,7 @@ in with self; {
   EFAutilities = derive2 { name="EFAutilities"; version="2.1.1"; sha256="0kdwdjv4c9rfy49qs7a4134vwa2sm2pcam17a3xii2dq8mghg1za"; depends=[GPArotation MASS mvtnorm plyr]; };
   EFDR = derive2 { name="EFDR"; version="1.2"; sha256="1k6y2qxfw5py1brh25apmzqm00y3a458x0wrrmdg604g1m9zlkg5"; depends=[copula doParallel dplyr foreach gstat Matrix sp tidyr waveslim]; };
   EFS = derive2 { name="EFS"; version="1.0.3"; sha256="1q8cf8dnxpv5s3lr9145y0wjhak4rz18dzah4xfs5qr4c8nlpl54"; depends=[party pROC randomForest ROCR]; };
+  EGAnet = derive2 { name="EGAnet"; version="1.0.0"; sha256="0mr63x5gx8yy9gp19glvqcsdmxbd29mnv4v29kjpfr21ij46h60a"; depends=[dplyr fitdistrplus GGally ggplot2 ggpubr glasso igraph lavaan Matrix network NetworkToolbox qgraph semPlot wTO]; };
   EGRET = derive2 { name="EGRET"; version="3.0.6"; sha256="0klpfrq2392s56x5q5pxvli4m7ivn146dwyh1svqz9pngqnwbif3"; depends=[dataRetrieval fields foreach MASS survival truncnorm]; };
   EGRETci = derive2 { name="EGRETci"; version="2.0.4"; sha256="1g01a03smn5yp261cyk3x310m1mcv4bqyh8y123wam9gpa7dxrp6"; depends=[binom EGRET]; };
   EHR = derive2 { name="EHR"; version="0.4-4"; sha256="0b42ny3xc936qgbfgibywpmancrbdvkcwwhy55lbqlm8xhzyr6s8"; depends=[data_table lubridate pkdata]; };
@@ -1375,13 +1375,14 @@ in with self; {
   EMSNM = derive2 { name="EMSNM"; version="1.0"; sha256="0rhaadzhq9jfpnwxfqcsb3yz96rqlwkm165k5n5jxzwxpg1rg2n0"; depends=[]; };
   EMSS = derive2 { name="EMSS"; version="1.1.0"; sha256="0rvpi1kymvqcls9fp88dir4jwfqk0823km81wxngy0yi1cxg6va5"; depends=[mvtnorm sampleSelection]; };
   EMSaov = derive2 { name="EMSaov"; version="2.3"; sha256="1hpvwimhkl7za5s8j9n4a8883vy89jrxrhlh0k3cfprnndh4zz05"; depends=[shiny]; };
-  EMT = derive2 { name="EMT"; version="1.1"; sha256="0m3av1x3jcp3hxnzrfb128kch9gy2zlr6wpy96c5c8kgbngndmph"; depends=[]; };
+  EMT = derive2 { name="EMT"; version="1.2"; sha256="07c25nw8n6294f7q1axwraqp4x2p5dprgd8f9sldn2w6jslzvvc8"; depends=[]; };
   EMVS = derive2 { name="EMVS"; version="1.2.1"; sha256="1aikms2i77hwv6hrk8kn9wrh1v5j5zm918cwdwm5s6cy8fcqf406"; depends=[Rcpp RcppArmadillo]; };
   EMbC = derive2 { name="EMbC"; version="2.0.3"; sha256="0ns6jmshblf00n4harhls03q9c6h1wvgvjzn8jvr3kf4gm2iz2jd"; depends=[maptools mnormt RColorBrewer Rcpp RcppArmadillo sp]; };
   EMpeaksR = derive2 { name="EMpeaksR"; version="0.1.0"; sha256="0lb5myzv94j0784akni3v3fmd7f42wiycjg7fm1p3rdgsgd1ql7s"; depends=[]; };
   ENMTools = derive2 { name="ENMTools"; version="1.0.5"; sha256="1lvvby77j3abf3gmm12091mcgijxcg7vilr2j9q3fi5n87wqhl12"; depends=[dismo ENMeval forcats ggplot2 ggpubr gridExtra knitr lhs magrittr raster rgdal rgeos sp spatstat spatstat_core spatstat_geom]; };
   ENMeval = derive2 { name="ENMeval"; version="2.0.1"; sha256="0l0223cgdbdrwv6nsywc5r7xx67l74gczak6qz9mr93hmrh7fyrg"; depends=[dismo doParallel doSNOW dplyr foreach ggplot2 glmnet magrittr maxnet rangeModelMetadata raster testthat tidyr]; };
   EPGMr = derive2 { name="EPGMr"; version="1.0.0"; sha256="1ii4lccv4hyydy3sd5l7c22pgx27x3mdml20sfbdj85pmpyab6q9"; depends=[]; };
+  EPP = derive2 { name="EPP"; version="0.3.4"; sha256="1a932c8lm9zhxxkmy2w0015n8ka868man8f5idvkb6whlx8lkiqs"; depends=[assertthat clipr cpp11 curl deldir dplyr flexclust httr leaflet leaflet_extras maptools nngeo osrm plyr rgdal rgeos s2 sf sp tibble]; };
   EPT = derive2 { name="EPT"; version="0.7.5"; sha256="1llypf8600mk62cqxnwv5fds8ypfx5is2qkpbp4bh70l3s3lvj31"; depends=[]; };
   EPX = derive2 { name="EPX"; version="1.0.4"; sha256="0d0qddk4c835gkh4lydaypxzakjz3qw9ai7y35kbaflj08fismc6"; depends=[doParallel doRNG foreach nnet randomForest rngtools]; };
   EQL = derive2 { name="EQL"; version="1.0-1"; sha256="0pa33h0f30l352m6ix296l55lvqxdaib666x2dwy9zx0lmk23w8m"; depends=[lattice ttutils]; };
@@ -1462,7 +1463,7 @@ in with self; {
   EpiEstim = derive2 { name="EpiEstim"; version="2.2-4"; sha256="12zv1mlb0gqsvff1s0fvqgxqk42c7y9gz3h94mjmf1wbmhsjcqnf"; depends=[coarseDataTools coda fitdistrplus ggplot2 gridExtra incidence reshape2 scales]; };
   EpiILM = derive2 { name="EpiILM"; version="1.5.2"; sha256="0drs4qywx9axs7k5qk7sp5r3g8pykn4lqqbm0hxyl24r6b5l3d6b"; depends=[adaptMCMC coda LaplacesDemon]; };
   EpiILMCT = derive2 { name="EpiILMCT"; version="1.1.7"; sha256="1yjcjxf5m1qbb6p09g34wkr4q13g65ly11kxh95r22cdl85jmlq3"; depends=[coda igraph]; };
-  EpiModel = derive2 { name="EpiModel"; version="2.1.0"; sha256="1vhbjrxj3q8xkin44m576rkjsl5qw5c8hxwqmjj4n8fjk9xyj20r"; depends=[ape deSolve doParallel ergm foreach ggplot2 lazyeval network networkDynamic RColorBrewer statnet_common tergm tergmLite]; };
+  EpiModel = derive2 { name="EpiModel"; version="2.2.0"; sha256="1hpar16srsz0jnf44iqh376kd0qb4zfidkf09zzby9iicij7rv64"; depends=[ape deSolve doParallel dplyr ergm foreach ggplot2 lazyeval network networkDynamic RColorBrewer Rcpp statnet_common tergm tibble]; };
   EpiNow2 = derive2 { name="EpiNow2"; version="1.3.2"; sha256="1rcyhk0f18asrym9zd7hr5ss7aw2dd2m5wrjcsqkr8q7x6apwh3g"; depends=[BH cowplot data_table futile_logger future future_apply ggplot2 lifecycle lubridate patchwork progressr purrr R_utils Rcpp RcppEigen rlang rstan runner scales StanHeaders truncnorm]; };
   EpiReport = derive2 { name="EpiReport"; version="1.0.2"; sha256="1dh9rjdjgmwzvfslzgnmd37ipj7ydbn4pnngz4sw7nknqy7r4dpx"; depends=[dplyr flextable ggplot2 officer png tidyr tidyselect zoo]; };
   EpiStats = derive2 { name="EpiStats"; version="1.5-1"; sha256="0swxww4x0qqlby4m8xw58jr5x2ml5z896m8w0f1v0mr7kf1v6fpi"; depends=[dplyr epiR]; };
@@ -1497,7 +1498,7 @@ in with self; {
   EwR = derive2 { name="EwR"; version="1.4"; sha256="1i0cwyylr1lqilykn1q2y1ad2gawfqkw9c51g04yn061c623pkam"; depends=[]; };
   ExPanDaR = derive2 { name="ExPanDaR"; version="0.5.3"; sha256="1y4ccyvlvdx9lcgpyns6k2npc0rzwk8db4bmbi3pq9xmv7ycgmcz"; depends=[corrplot dplyr DT ggplot2 kableExtra lmtest multiwayvcov openssl plm rio rlang scales shiny shinycssloaders stargazer tictoc tidyr zip]; };
   ExPosition = derive2 { name="ExPosition"; version="2.8.23"; sha256="0x9400ggmgrnaish0cfgnyvw549g4ibfv9aj6vzq7j68n58vq405"; depends=[prettyGraphs]; };
-  Exact = derive2 { name="Exact"; version="3.0"; sha256="0acm01njg3arlzwknv5v1sdsz5ab0bdh04sn1bmf91hcg3li8qd7"; depends=[rootSolve]; };
+  Exact = derive2 { name="Exact"; version="3.1"; sha256="1kz3hw11sl142mai4ly2r85rwdbjz8q7b38ybmjym6r0n5qmqzyn"; depends=[rootSolve]; };
   ExactCIdiff = derive2 { name="ExactCIdiff"; version="1.3"; sha256="1vayq8x7gk1fnr1jrlscg6rb58wncriybw4m1z0glfgzr259103y"; depends=[]; };
   ExactMultinom = derive2 { name="ExactMultinom"; version="0.1.2"; sha256="1ygsiwcsmda0pbp7lzr03sb461mr9fff7hxp1lil40y9z0xgdmmb"; depends=[Rcpp]; };
   ExamPAData = derive2 { name="ExamPAData"; version="0.5.0"; sha256="1wjzg5b3xcl5njk95h2c8xz4k727d62182nbf49qrvd3nbd3bscj"; depends=[]; };
@@ -1506,7 +1507,7 @@ in with self; {
   ExcessMass = derive2 { name="ExcessMass"; version="1.0"; sha256="1z8l1lja02wxw8l72s3bq6sgjymn5929n123xk6b7ndd52zlfgf5"; depends=[]; };
   ExhaustiveSearch = derive2 { name="ExhaustiveSearch"; version="1.0.1"; sha256="1wb3bf1ilml5cilm740rh8ngiybxhxg6h6nzh1rlqd6wgfp17mzh"; depends=[Rcpp RcppArmadillo]; };
   ExomeDepth = derive2 { name="ExomeDepth"; version="1.1.15"; sha256="1ljswn8bimzhl7dxy7nb2jmwq9v7vpp4y1jynp8djrjpdx9wnaqi"; depends=[aod Biostrings dplyr GenomicAlignments GenomicRanges IRanges magrittr Rsamtools VGAM]; };
-  ExpAnalysis3d = derive2 { name="ExpAnalysis3d"; version="0.1.0"; sha256="0ragi84ms5fws58xm951qk3wczqg5czx7yvif911hmzp5x8d05gk"; depends=[crayon fields magrittr plotly]; };
+  ExpAnalysis3d = derive2 { name="ExpAnalysis3d"; version="0.1.1"; sha256="0gch9q19l3lqb35vfq1kcrga9jzqvrxr7d6x9lk7nzb78y735wa2"; depends=[crayon fields magrittr plotly]; };
   ExpDE = derive2 { name="ExpDE"; version="0.1.4"; sha256="0yjsap92dd1sb23fhw69i0ddk3lyj5f4kwp9rvz4k0vxry10hx7g"; depends=[assertthat]; };
   ExpDes = derive2 { name="ExpDes"; version="1.2.2"; sha256="145x7zzhgs7rqbamsfwcxlhppxmy9l6v4a1wximac8qgp7i0wdpi"; depends=[stargazer]; };
   ExpDes_pt = derive2 { name="ExpDes.pt"; version="1.2.2"; sha256="05s7j3afs97x0k4w9rsjic1519ilzri250x5rl6l6smqivjaplci"; depends=[stargazer]; };
@@ -1527,7 +1528,9 @@ in with self; {
   FAIRmaterials = derive2 { name="FAIRmaterials"; version="0.0.2"; sha256="169hcwjm0plhkqbhz3b5cqgc2nnkibn94cimrs39sn9z62radb7x"; depends=[dplyr glue stringr]; };
   FAMILY = derive2 { name="FAMILY"; version="0.1.19"; sha256="1912l2zj2cmh8yx8lkg8fpgvfddn6wbi1vrr4yx04mh73gk1s5mk"; depends=[pheatmap pROC]; };
   FAMT = derive2 { name="FAMT"; version="2.5"; sha256="0mn85yy9zmiklfwqjbhbhzbawwp2yqrm9pvm8jhasn9c3kw1pcp2"; depends=[impute mnormt]; };
+  FAMetA = derive2 { name="FAMetA"; version="0.1.0"; sha256="12n2mwl36gd73c6f2gy075bfp14r7vb9r1zls9jmw2jp2h6szkx8"; depends=[accucor gplots gtools knitr LipidMS minpack_lm plyr rmarkdown scales tidyr]; };
   FAMoS = derive2 { name="FAMoS"; version="0.3.0"; sha256="14gr9wv9bpibk0rrzzwijvdncx1fgnpbv55nqzbb4jhq7fdckmsa"; depends=[future R_utils]; };
+  FAO56 = derive2 { name="FAO56"; version="0.1.0"; sha256="0dl56gdsmx3ixxakz2xqrirss5xxbz62mvp7jdrgaizrn8xd802i"; depends=[]; };
   FAOSTAT = derive2 { name="FAOSTAT"; version="2.2.1"; sha256="1i1zd62qv1zrrnpkrchhk3maj9pfabvbc960gck3ry8l0ns926q9"; depends=[classInt data_table ggplot2 labeling MASS plyr RJSONIO XML]; };
   FARDEEP = derive2 { name="FARDEEP"; version="1.0.1"; sha256="0blvjakcpkh9vpxryk7qyaqnija0r375ckv37kjlr34xg8pg9qnm"; depends=[nnls preprocessCore]; };
   FASeg = derive2 { name="FASeg"; version="0.1.9"; sha256="0lazx8dyycyycr8467m9rkxkxhp4r2w737kpkb40y59wncmbvkik"; depends=[]; };
@@ -1564,13 +1567,12 @@ in with self; {
   FIT = derive2 { name="FIT"; version="0.0.6"; sha256="1nkjms9cvigc9sjha1krzhd3nmwsfh8pi0f1plf5k8zpb773zzb2"; depends=[gglasso MASS Rcpp RcppEigen XML]; };
   FITSio = derive2 { name="FITSio"; version="2.1-6"; sha256="1qch6z9r8h95jijjdwsi81majgacl42ryzlkn0m1wifkly9mjjrb"; depends=[]; };
   FKF = derive2 { name="FKF"; version="0.2.2"; sha256="1vcadh3c3j7d7dlp810n6bifc23z8l210agyi0v6yha1iis10p9c"; depends=[]; };
-  FKF_SP = derive2 { name="FKF.SP"; version="0.1.2"; sha256="0np74ssq6q293mkhjag1fbbyzawlbf3pq7sdfs74b7b3dlk9450i"; depends=[curl mathjaxr Rdpack]; };
+  FKF_SP = derive2 { name="FKF.SP"; version="0.1.3"; sha256="0pbqpaddk5yhh0lycqncfc029md4if93p07jvnixjn0mrraxj6b5"; depends=[curl mathjaxr Rdpack]; };
   FKSUM = derive2 { name="FKSUM"; version="0.1.4"; sha256="02nicfw0wcprdg0p2p44g740j6bjf6xgzjxcvyfcbcsbr6bpjknx"; depends=[MASS rARPACK Rcpp RcppArmadillo]; };
   FLAME = derive2 { name="FLAME"; version="2.1.0"; sha256="0sq8v7najcqwqc9fxp05mmqa09niqjc7ypf4b3jdpmng1srpf643"; depends=[glmnet gmp]; };
   FLLat = derive2 { name="FLLat"; version="1.2-1"; sha256="0306bpwp2az4x4m5sv88hlh7vs0y5isfby7lxrn2gjnk76gg6mw1"; depends=[gplots]; };
   FLR = derive2 { name="FLR"; version="1.0"; sha256="0k50vi73qj7sjps0s6b2hq1cmpa4qr2vwkpd2wv2w1hhhrj8lm0n"; depends=[combinat]; };
   FLSSS = derive2 { name="FLSSS"; version="8.6.6"; sha256="0kw28zmvgdy4zmj2vnrs84n0rg6jvqj3x8f3ihjjkzkwqrqyiia9"; depends=[Rcpp RcppParallel]; };
-  FLightR = derive2 { name="FLightR"; version="0.5.1"; sha256="14188r6kk194ir0l8byaqlly4lsg8w58lw5xx2s4abyhbn35kwq8"; depends=[bit CircStats circular fields GeoLight ggmap ggplot2 ggsn maptools mgcv nlme RcppArmadillo rgdal rgeos sp truncnorm]; };
   FMAdist = derive2 { name="FMAdist"; version="0.1.0"; sha256="0aa4sw93ia6cp386hrq6x448x4w0p6k198rjaqs474j25gqgxrv0"; depends=[EnvStats extraDistr fitdistrplus MASS quadprog STAR]; };
   FMC = derive2 { name="FMC"; version="1.0.0"; sha256="1pfqxx7slgcmw4al7i8hy59f4han6b0b7b5az7yh1mscdnghl9bj"; depends=[minimalRSD]; };
   FMCCSD = derive2 { name="FMCCSD"; version="1.0"; sha256="0c50km5ba6biq9p3mycxhy00ij2gr6y5zf3q8ycq0g1mbk8ybfb7"; depends=[numDeriv orthopolynom Rcpp RcppArmadillo splines2]; };
@@ -1582,7 +1584,7 @@ in with self; {
   FMsmsnReg = derive2 { name="FMsmsnReg"; version="1.0"; sha256="0d58n7lz8d6xgzvyznmhw1byshyiiwk8dc462qr18cl51p0lqnkv"; depends=[mvtnorm]; };
   FNN = derive2 { name="FNN"; version="1.1.3"; sha256="0cllqlnynm5yaj4r64mqyyfc8phkb38rwssq8k8ikgfgr4jklxny"; depends=[]; };
   FOCI = derive2 { name="FOCI"; version="0.1.3"; sha256="0iax5569a0v18j2l52mw26yimx11fqqbxj5q7jgba9jf7ylp410w"; depends=[data_table gmp proxy RANN]; };
-  FORTLS = derive2 { name="FORTLS"; version="1.0.5"; sha256="0k90x5vrg97nndif4grg14240m6gj8jsfr1lp3rgcx8h26gdlgq7"; depends=[dbscan Distance ggvoronoi htmlwidgets lidR moments plotly progress raster Rcpp RcppEigen RCSF scales sp tidyr vroom]; };
+  FORTLS = derive2 { name="FORTLS"; version="1.0.6"; sha256="0w6a17n1f9vq7j9ajlqkrbxgajhh4qrj5lwfqfkk9g1h5vsr8xn2"; depends=[dbscan Distance ggvoronoi htmlwidgets lidR moments plotly progress raster Rcpp RcppEigen RCSF scales sp tidyr vroom]; };
   FPCA2D = derive2 { name="FPCA2D"; version="1.0"; sha256="18bb90ppd9gd8pg9jxfyfkmlsaqk8w25fgaj9fk18ybm2nhsxqm6"; depends=[corpcor]; };
   FPCA3D = derive2 { name="FPCA3D"; version="1.0"; sha256="1hrk9caad2s76dx59clxhia45a85khk1y2ii7955f336x55q34a5"; depends=[]; };
   FPDclustering = derive2 { name="FPDclustering"; version="2.0"; sha256="04anczbml5mpxi65qalafs5q4pign6abhqsc2birvvg23r3hhhfh"; depends=[cluster ExPosition GGally ggplot2 klaR MASS mvtnorm rootSolve ThreeWay]; };
@@ -1593,7 +1595,7 @@ in with self; {
   FREEtree = derive2 { name="FREEtree"; version="0.1.0"; sha256="1i2liqbcg993snj5vq341mmafzhn1yrwljvx4f3kyzy0pa59k6rn"; depends=[glmertree MASS pre WGCNA]; };
   FREQ = derive2 { name="FREQ"; version="1.0"; sha256="01nra30pbnqdd63pa87lcws3hnhhzybcjvx2jqyxjghn6khz47j0"; depends=[]; };
   FRESA_CAD = derive2 { name="FRESA.CAD"; version="3.3.1"; sha256="1d8ya1pqy1zc9hxp7s211n0wa3n63jgpxh5ngysbh0dn488l8vgg"; depends=[Hmisc miscTools pROC Rcpp RcppArmadillo stringr]; };
-  FRK = derive2 { name="FRK"; version="2.0.1"; sha256="17zihlck981m1ghyflxjaxzdxgir5r8njl30hsv2lrc35qfw340z"; depends=[digest dplyr ggplot2 ggpubr Hmisc Matrix plyr Rcpp RcppEigen reshape2 scales sp spacetime sparseinv statmod TMB]; };
+  FRK = derive2 { name="FRK"; version="2.0.2"; sha256="0i54qq0vadxjaxh7x7k1i325cczyxrs97cm41nwzqr2zcl2nji6w"; depends=[digest dplyr ggplot2 ggpubr Hmisc Matrix plyr Rcpp RcppEigen reshape2 scales sp spacetime sparseinv statmod TMB]; };
   FSA = derive2 { name="FSA"; version="0.9.1"; sha256="19acr6cwy4qh78d0zyawwrpkl6kkv88bqzyz4a40b3ajyg69cqbn"; depends=[car dplyr dunn_test lmtest plotrix sciplot withr]; };
   FSAdata = derive2 { name="FSAdata"; version="0.3.8"; sha256="0i7wkz0baxcf1dv6qvc891b4ja4x65p4qicil472k6a9gcf5d4qm"; depends=[]; };
   FSDAM = derive2 { name="FSDAM"; version="2020.11-18"; sha256="09l7zvmbvmbcr5pxizdhs5fn79r6cl4ic0hsz2bazdymsqv3s3nm"; depends=[kyotil reticulate]; };
@@ -1618,6 +1620,7 @@ in with self; {
   FactorsR = derive2 { name="FactorsR"; version="1.4"; sha256="1nw63j9bi4x09pgdvdml0w0qxfy1dda5hkxbhd3d6f7rky1z0nyf"; depends=[]; };
   Factoshiny = derive2 { name="Factoshiny"; version="2.4"; sha256="0szdpdghaqrfjdx3c9klgww8i09dh69500sls2lyjz6c8gi80vcx"; depends=[colourpicker DT FactoInvestigate FactoMineR ggplot2 ggrepel missMDA shiny shinydashboard shinyjqui]; };
   Fahrmeir = derive2 { name="Fahrmeir"; version="2016.5.31"; sha256="16fbc1zb9x9p04bl7y5nd375pha6bd3hfqqchlk1bqxrj4879y5g"; depends=[]; };
+  FairMclus = derive2 { name="FairMclus"; version="2.2.1"; sha256="0mhccn6yyf35qb856psh3dpiwdf24l3w2lqr643lkn38lhbmyvn8"; depends=[cluster data_table doParallel dplyr foreach irr magrittr rlist tidyr]; };
   FamEvent = derive2 { name="FamEvent"; version="2.1"; sha256="1bwi91z8xyb3xj8fwbshgdq7l1pik2dsy6ljzwy1ymd0xz0q7f5a"; depends=[eha kinship2 MASS pracma survival truncnorm]; };
   Familias = derive2 { name="Familias"; version="2.4"; sha256="1k6ig2zfkr1a4s3s85ygixmmsrb5m8vqqab8l5ffkspgjvh4dfz2"; depends=[kinship2 paramlink Rsolnp]; };
   FamilyRank = derive2 { name="FamilyRank"; version="1.0"; sha256="0v1b3a6rxbbl7xdy977j02x1ni66879x98vg6ngbaqvh7v9vl82x"; depends=[plyr Rcpp RcppArmadillo]; };
@@ -1633,7 +1636,7 @@ in with self; {
   FastLZeroSpikeInference = derive2 { name="FastLZeroSpikeInference"; version="2018.12.10"; sha256="0ybpmns7bc1j5xzqjl7734grihmvvpa3h52gixv3h70l0r89d8ys"; depends=[]; };
   FastPCS = derive2 { name="FastPCS"; version="0.1.3"; sha256="152fy5hq675n1mjdsi31a77rmi3vylvvbfgywrh62chy5xa1bf34"; depends=[matrixStats Rcpp RcppEigen]; };
   FastRCS = derive2 { name="FastRCS"; version="0.0.8"; sha256="11kqd8aii9sy65m5inxiqggyajb41iy6w92zp5wggx7pbg9m6lmy"; depends=[matrixStats Rcpp RcppEigen]; };
-  FastRWeb = derive2 { name="FastRWeb"; version="1.1-3"; sha256="1913pyjzxw8kw5hbr8mfwk2mjjfz7cyl6sh71z6cc0jl0af3p1kn"; depends=[base64enc Cairo]; };
+  FastRWeb = derive2 { name="FastRWeb"; version="1.2-0"; sha256="13w09ic38vzdyyhcdd18as443nbhgbw4baydrlbl7nai0llsk9w9"; depends=[base64enc Cairo]; };
   FastSF = derive2 { name="FastSF"; version="0.1.1"; sha256="1xajav45h57hchzkvl2pb4mz9xy433lq74jnry0icid8dai5xhwb"; depends=[limSolve Rcpp RcppArmadillo]; };
   FatTailsR = derive2 { name="FatTailsR"; version="1.8-0"; sha256="10js4vbg9f4ql2panzwb5vxzzb8qb2hl6xyx7nhindhwncga8q33"; depends=[minpack_lm timeSeries]; };
   FateID = derive2 { name="FateID"; version="0.2.1"; sha256="1mlw0ji2zz74ki3rxmfj3brg0iv4nr8rbk052ysxhgvi6mb8968k"; depends=[lle locfit matrixStats pheatmap princurve randomForest RColorBrewer Rtsne som umap]; };
@@ -1701,6 +1704,7 @@ in with self; {
   FourgameteP = derive2 { name="FourgameteP"; version="0.1.0"; sha256="15yn47737768fkjjv8ykc9lw7x58pq44k90d9d4c9hp20zw5f3by"; depends=[]; };
   FrF2 = derive2 { name="FrF2"; version="2.2-2"; sha256="048awbsyzpjmr0kmz3k5yi5vksa9iiffabp6q8xsww097vcngxzb"; depends=[DoE_base igraph scatterplot3d sfsmisc]; };
   FrF2_catlg128 = derive2 { name="FrF2.catlg128"; version="1.2-1"; sha256="0i4m5zb9dazpvmnp8wh3k51bm0vykh4gncnhdg71mfk4hzrfpdac"; depends=[FrF2]; };
+  FracKrigingR = derive2 { name="FracKrigingR"; version="1.0.0"; sha256="08ai69wnpa4l1gpmgrs9c9ad9h56h0x55v3gnbci30yxkivbnvxw"; depends=[clusterGeneration psych]; };
   FractalParameterEstimation = derive2 { name="FractalParameterEstimation"; version="1.1.2"; sha256="16xm2g723dm1n1h6as6yvy92sigzhj31f269g5rrzqjcd4d5m8an"; depends=[]; };
   Fragman = derive2 { name="Fragman"; version="1.0.9"; sha256="03vmvmnyza4i46v1awkdjz6ccbsiq49dm0mlmwsm801rq6yfihgp"; depends=[]; };
   Frames2 = derive2 { name="Frames2"; version="0.2.1"; sha256="0xbz19v5r1h15p8mf94vacw04h3kvmm88ayy4b1aqxrd925n63mw"; depends=[MASS nnet sampling]; };
@@ -1719,11 +1723,11 @@ in with self; {
   FuzzyAHP = derive2 { name="FuzzyAHP"; version="0.9.5"; sha256="02sx32vlvnr0fzw8rf0f6hiikqn7xp1ibpqzxhxwv8yij2qkiyci"; depends=[MASS]; };
   FuzzyLP = derive2 { name="FuzzyLP"; version="0.1-6"; sha256="0k1cqyswhzp31dq91xigirkqhw3imkx68n4vasyvrgq6fm97dl1n"; depends=[FuzzyNumbers ROI ROI_plugin_glpk]; };
   FuzzyMCDM = derive2 { name="FuzzyMCDM"; version="1.1"; sha256="0ss0s65mm6j0nax4mb9g668d9n9cgl0l016mc3h9hbjxfpqrbkks"; depends=[RankAggreg]; };
-  FuzzyNumbers = derive2 { name="FuzzyNumbers"; version="0.4-6"; sha256="1zba28kmzpcza099k1ck7aqn7ms2fh3ijcn05xdimvssjbhsag81"; depends=[]; };
+  FuzzyNumbers = derive2 { name="FuzzyNumbers"; version="0.4-7"; sha256="12xficdsln31rzfziycw6z0912cgrq6mkvz3f1nbli9lzqrypxzl"; depends=[]; };
   FuzzyNumbers_Ext_2 = derive2 { name="FuzzyNumbers.Ext.2"; version="3.2"; sha256="0gldq0bg1p1vmrn35prha44d7lyymz0jzshdyp2c5rx433mny7h5"; depends=[FuzzyNumbers]; };
   FuzzyQ = derive2 { name="FuzzyQ"; version="0.1.0"; sha256="1camdw7rnzf02nqjlmkr7mqpc38dafq9nw8x7pzwi1lh5xwv5dia"; depends=[cluster]; };
   FuzzyR = derive2 { name="FuzzyR"; version="2.3.2"; sha256="0d0zf8diw7m10zfx0r5zg5arhf4a90sva77h6rvfywixldwrnk7s"; depends=[plyr shiny]; };
-  FuzzyResampling = derive2 { name="FuzzyResampling"; version="0.1.0"; sha256="0iziav76lflayi9ly9mgnr3fxx6r85f501w46vrhdvrbndpn43xl"; depends=[ttutils]; };
+  FuzzyResampling = derive2 { name="FuzzyResampling"; version="0.3.0"; sha256="05fjixl05152linfk1y75yrzb1brr9jggja9n7bx3md1ziwqlczy"; depends=[ttutils]; };
   FuzzySTs = derive2 { name="FuzzySTs"; version="0.2"; sha256="0zs1pyn9apysspxa0glqc96h6npmvvhiqvqpcm0brslz0b6xnilp"; depends=[FuzzyNumbers polynom]; };
   FuzzyStatProb = derive2 { name="FuzzyStatProb"; version="2.0.4"; sha256="1jpqb8xczi1d4g306vrwpi02f9h59aki1pgnckvfmiclr306prpb"; depends=[DEoptim FuzzyNumbers MultinomialCI]; };
   FuzzyStatTra = derive2 { name="FuzzyStatTra"; version="1.0"; sha256="1ijrlnlmq9d5ahgrpzba6kzkaq1zq59zqdgcizybsf9alsswcm00"; depends=[]; };
@@ -1737,7 +1741,7 @@ in with self; {
   GADAG = derive2 { name="GADAG"; version="0.99.0"; sha256="1ycg48idrq2yrk1fxs16yl5wwg3kbfki8xppmh311rrzf75c6z4g"; depends=[igraph MASS Rcpp RcppArmadillo]; };
   GADMTools = derive2 { name="GADMTools"; version="3.9-1"; sha256="0l62gsd3sdyvhsw7bqvgn3fv15xwm13y9nsm8r9fgcqbfpw45g32"; depends=[classInt dplyr ggmap ggplot2 ggspatial gridExtra jsonlite lattice maptools prettymapr raster RColorBrewer rgdal rgeos rosm sf sp stringr]; };
   GAIPE = derive2 { name="GAIPE"; version="1.0"; sha256="04iarbwxrhn48bk329wxis7ifzndi67kpjx6dcakawkh3g2mzsfz"; depends=[]; };
-  GALLO = derive2 { name="GALLO"; version="1.2"; sha256="068cb8v3hb9asn4x2vfgzqvd6ygbivj8206h6is35wvz14pphml5"; depends=[circlize data_table doParallel dplyr DT foreach ggplot2 lattice RColorBrewer rtracklayer stringr unbalhaar webshot]; };
+  GALLO = derive2 { name="GALLO"; version="1.3"; sha256="0nfzm5cm93m3x0vqmjvhxznj5i913ssn9awpfvk932j829kz6zbc"; depends=[circlize data_table doParallel dplyr DT foreach ggplot2 lattice RColorBrewer rtracklayer stringr unbalhaar webshot]; };
   GAMens = derive2 { name="GAMens"; version="1.2.1"; sha256="1z10wxcg277fra2lch464l0kb02lspw9qr1i2wmq11wcz0k9qnl8"; depends=[caTools gam mlbench]; };
   GANPA = derive2 { name="GANPA"; version="1.1"; sha256="19nq1nlpb1lr2b9i5ckyl5m6daalrqkpx386r6i25qfvaywxl2bf"; depends=[GANPAdata]; };
   GANPAdata = derive2 { name="GANPAdata"; version="1.0"; sha256="0mhdadl7zgsacn59ym42magg3214k1xhabwn78fv7kgccszcgc86"; depends=[]; };
@@ -1760,7 +1764,7 @@ in with self; {
   GD = derive2 { name="GD"; version="1.10"; sha256="1sy77yxnwh2n48zahh498v30nl3hivrsmyp0jf3gyyzhxm8z1n5l"; depends=[badger]; };
   GDAdata = derive2 { name="GDAdata"; version="0.93"; sha256="13ks97i289rc4i7gpqrifwbj0m9rx8csjhnfg8mad10qmjwz7p8b"; depends=[]; };
   GDAtools = derive2 { name="GDAtools"; version="1.7"; sha256="1fsx2kxilvfvm9nccn1a9ly6kavz9l8np6az2ax9dd00rbvqjcjl"; depends=[FactoMineR GGally ggplot2 ggrepel MASS nleqslv nnet RColorBrewer rlang wdm]; };
-  GDELTtools = derive2 { name="GDELTtools"; version="1.2"; sha256="1rx6kjh7kmyycqapvbizcxkcfp09qvqv7k8f25v333sxkacpz6p5"; depends=[plyr TimeWarp]; };
+  GDELTtools = derive2 { name="GDELTtools"; version="1.5"; sha256="1lhsyf7kd1lnx2dgifmrd89yl95sf9k6ay19dll2p8b9h3vs7hci"; depends=[dplyr plyr TimeWarp]; };
   GDINA = derive2 { name="GDINA"; version="2.8.7"; sha256="08cdjp4mqn81j3wa770v7n8zkslys9jqqb3d3c09dkfmgdk6hga4"; depends=[alabama ggplot2 MASS nloptr numDeriv Rcpp RcppArmadillo Rsolnp shiny shinydashboard]; };
   GDPuc = derive2 { name="GDPuc"; version="0.5.1"; sha256="1pdhl8mccxb613994f3y59a89rvksi8kb7j2aaf7msnh67rndrrn"; depends=[cli crayon dplyr glue lifecycle magrittr rlang stringr tibble tidyselect]; };
   GE = derive2 { name="GE"; version="0.2.2"; sha256="1lmldzsmnh13mp4vs3pzjfyzzam4ac4w9d749j61w5w4maawy6hc"; depends=[CGE data_tree DiagrammeR]; };
@@ -1807,6 +1811,7 @@ in with self; {
   GK2011 = derive2 { name="GK2011"; version="0.1.3"; sha256="13vafhbgcsj485f12qv962y07v3hil3pla51vkl2b030amzy86jv"; depends=[]; };
   GLDEX = derive2 { name="GLDEX"; version="2.0.0.7"; sha256="1w5ahwbnz9xsn3rdxzcxxvc6m5cgq46nln3i5v8vp4imrs8aafb3"; depends=[cluster]; };
   GLDreg = derive2 { name="GLDreg"; version="1.0.7"; sha256="1wjrr4x1k0fz8nx9idb4ysamldypriiypj96b5v028lx38jwsk3l"; depends=[ddst GLDEX]; };
+  GLIDE = derive2 { name="GLIDE"; version="1.0.3"; sha256="0jy3l1c2wls3hq63jny9zg2mjkn332ki6dk7pfcqyk0nfxi5grw7"; depends=[doParallel foreach MASS]; };
   GLMMRR = derive2 { name="GLMMRR"; version="0.5.0"; sha256="072zwi1rs6d84iszn09v5g19bkpla19nfqk4pq40ad8368zkbhcm"; depends=[lattice lme4 RColorBrewer]; };
   GLMMadaptive = derive2 { name="GLMMadaptive"; version="0.8-2"; sha256="12lz7rkd4jfwp3gpwp2awzdkdw1qpbdi2l1b48s1drzjymjk0m0g"; depends=[MASS matrixStats nlme]; };
   GLMaSPU = derive2 { name="GLMaSPU"; version="1.0"; sha256="0zx2bza5v5cfp9v7hf42s57522b6prawcwl77aa3kvjcnb0ish6g"; depends=[MASS mnormt mvtnorm Rcpp RcppArmadillo]; };
@@ -1846,6 +1851,7 @@ in with self; {
   GPP = derive2 { name="GPP"; version="0.1"; sha256="1qryza8mamwzwqiy31drf176w192ksw34kpsa0wc8gsp3ylkm2f9"; depends=[rstan]; };
   GPRMortality = derive2 { name="GPRMortality"; version="0.1.0"; sha256="0k5pfyl7r5vsac927aqx19lz93vyk5l3ydqkazn2hwwaw1lh2wav"; depends=[rstan]; };
   GPSCDF = derive2 { name="GPSCDF"; version="0.1.1"; sha256="1l50a6p81lykiqlqiwb6kix5s6wzwdi8vddqhl418dlwlsh83ybf"; depends=[dplyr MASS nbpMatching nnet survival]; };
+  GPSeqClus = derive2 { name="GPSeqClus"; version="1.2.0"; sha256="1vqbbw6kcqpq6c29yanx3j1ns9x2xr7vvv5fzljw1yswqbfrny7c"; depends=[geosphere htmlwidgets leaflet leaflet_extras plotKML plyr purrr rgdal sp spacetime suncalc]; };
   GPareto = derive2 { name="GPareto"; version="1.1.6"; sha256="0iss4827b96dcvhlyl6ajgvns5n5m854myx1qsb53vhq48ck93z2"; depends=[DiceDesign DiceKriging emoa KrigInv ks MASS pbivnorm pso randtoolbox Rcpp rgenoud rgl]; };
   GPfit = derive2 { name="GPfit"; version="1.0-8"; sha256="05mpiyi2vxv0wqp422n1mnxa8msc4daq40cwpnpngbcwqhlgqkby"; depends=[lattice lhs]; };
   GPoM = derive2 { name="GPoM"; version="1.3"; sha256="1c870dfbpswx78n4s1v6zy0l1qknrs9335af0z01v1miyrmi95gd"; depends=[deSolve float rgl]; };
@@ -1881,7 +1887,7 @@ in with self; {
   GUILDS = derive2 { name="GUILDS"; version="1.3"; sha256="0zl6x0vn93ybps63fqazvd93f2zwdq0rqqrp7d6n5rnamx99mm8d"; depends=[pracma Rcpp]; };
   GUIProfiler = derive2 { name="GUIProfiler"; version="2.0.1"; sha256="10m4d7f2rhw6cmkrnw3jh4iqlkfphf4v7mpfwzw17laq0ncmsx5r"; depends=[graph MASS Nozzle_R1 proftools Rgraphviz rstudioapi]; };
   GUTS = derive2 { name="GUTS"; version="1.1.1"; sha256="05njlykhxs62k5cjrfwgbqyckbvf2jxjshg3avf6vhwwf58qyjq9"; depends=[Rcpp]; };
-  GUniFrac = derive2 { name="GUniFrac"; version="1.3"; sha256="1bl7g80fcb71f85wp507n8w5lfhnh8w34jrmkdgs93y1igqk0aa3"; depends=[ape dirmult MASS Matrix matrixStats Rcpp rmutil statmod vegan]; };
+  GUniFrac = derive2 { name="GUniFrac"; version="1.4"; sha256="1dya9shxcd1xbwhlk1vqpxag2vnwzca2lddcy1kfn8yjrws8slk8"; depends=[ape dirmult foreach ggplot2 ggrepel lmerTest MASS Matrix matrixStats modeest Rcpp rmutil statmod vegan]; };
   GVARX = derive2 { name="GVARX"; version="1.3"; sha256="00iqwkshp1i9338x9khh8hyszad6150qb11jlvky5fm488wcw1y3"; depends=[lmtest lubridate sandwich strucchange tsDyn urca vars xts]; };
   GWASExactHW = derive2 { name="GWASExactHW"; version="1.01"; sha256="19qmk8h7kxmn9kzw0x4xns5p3qqz27xkqq4q6zmh4jzizd0fsl78"; depends=[]; };
   GWASbyCluster = derive2 { name="GWASbyCluster"; version="0.1.7"; sha256="0ivlkxbh8m23vbnjfmhk0vfczd5b8lzy9w4gm1m6jpvdm40kn70x"; depends=[Biobase limma rootSolve snpStats]; };
@@ -1896,7 +1902,7 @@ in with self; {
   GWSDAT = derive2 { name="GWSDAT"; version="3.1.0"; sha256="1ka461xilsdqc4frh46bicxfnm543k95chnlxghq6j9rjgkx4k0q"; depends=[deldir digest geometry Kendall lattice lubridate MASS Matrix officer raster readxl rhandsontable sf shiny shinycssloaders shinydashboard shinyjs sm sp splancs zoo]; };
   GWmodel = derive2 { name="GWmodel"; version="2.2-8"; sha256="18jd18mysf7li6c7ywd5cjkwzcvpprc93z8ycndyh0jmyzdr062v"; depends=[FNN maptools Rcpp RcppArmadillo robustbase sp spacetime spatialreg spdep]; };
   GWnnegPCA = derive2 { name="GWnnegPCA"; version="0.0.4"; sha256="1yinzlp22z9z5fk9f1nm14i408yfm5kfgkn3pqnh4bkghs569ivg"; depends=[geodist nsprcomp pracma sf sp spData]; };
-  GWpcor = derive2 { name="GWpcor"; version="0.1.6"; sha256="1plh7m1gj2gh3lkprj1gfqag1dggkhnvz73pr0gp6w3qqhdk0qdh"; depends=[corpcor doParallel dplyr foreach geodist pracma sf sp]; };
+  GWpcor = derive2 { name="GWpcor"; version="0.1.7"; sha256="0q43673pmm2c6kss688fpz10b39y3jn1kblv13p8ky0bk82hmcvi"; depends=[corpcor doParallel dplyr foreach geodist pracma sf sp]; };
   GWsignif = derive2 { name="GWsignif"; version="1.2"; sha256="0bss5s3ijnlckz44p7jj49bn2r8nwqckpzwzcv0vci915q8jfsj2"; depends=[]; };
   GaDiFPT = derive2 { name="GaDiFPT"; version="1.0"; sha256="15fnj1w30h0zdj032f3js0bbb1qlyk4b54a4aclykwzicqdgalkg"; depends=[]; };
   GaSP = derive2 { name="GaSP"; version="1.0.0"; sha256="0jm9fqlfxkl5pfr1ijbj8qci5xb974wk660xvh488xfwdwj02fnc"; depends=[]; };
@@ -1915,6 +1921,7 @@ in with self; {
   GenForImp = derive2 { name="GenForImp"; version="1.0"; sha256="1wcvi52fclcm6kknbjh4r9bpkc2rg8nk6cddnf5j8zqbvrwf4k5x"; depends=[mvtnorm sn]; };
   GenHMM1d = derive2 { name="GenHMM1d"; version="0.1.0"; sha256="0liqfjx17xs8si15yrb4032ac33ibxn2xm010b244gfhl1wr2ar5"; depends=[actuar doParallel EnvStats extraDistr foreach ggplot2 matrixcalc reshape2 rmutil ssdtools VaRES VGAM]; };
   GenKern = derive2 { name="GenKern"; version="1.2-60"; sha256="12qmd9ydizl7h178ndn25i4xscjnrssl5k7bifwv94m0wrgj4x6c"; depends=[KernSmooth]; };
+  GenMarkov = derive2 { name="GenMarkov"; version="0.1.0"; sha256="06bq43ry25g75qxlnrz02s393sv4r5v7m8gw0d96gpmldc76aax1"; depends=[alabama fastDummies Hmisc matrixcalc maxLik nnet]; };
   GenOrd = derive2 { name="GenOrd"; version="1.4.0"; sha256="17mfrj1fwj8mri1w0bl2pw1rqriidmd67i7gpn9v56g9dzw5rzms"; depends=[MASS Matrix mvtnorm]; };
   GenSA = derive2 { name="GenSA"; version="1.1.7"; sha256="03xqwxm7v7rnihx730a4p65dfwhjh4345r3d78y0qxxplk8d76cx"; depends=[]; };
   GenTag = derive2 { name="GenTag"; version="1.0"; sha256="0yirl7n7p7w1dfbbr48v1151qyqm7p9m00vc6jq0s2d6bjdspin9"; depends=[]; };
@@ -1923,13 +1930,15 @@ in with self; {
   GeneClusterNet = derive2 { name="GeneClusterNet"; version="1.0.1"; sha256="1xi4c041c4m39f9wb5fklgmhi6ng78iwzzqch5xk9hx5blq6zd4m"; depends=[G1DBN igraph MASS]; };
   GeneCycle = derive2 { name="GeneCycle"; version="1.1.5"; sha256="08pr8xgcznm04c4lhvzv2qnzij5vj7pjzyj9pr1pqpmc977h8dvg"; depends=[fdrtool longitudinal MASS]; };
   GeneF = derive2 { name="GeneF"; version="1.0"; sha256="0bizf47944b2zv9ayxb9rhrqx0ilz2xlvkw7x5vbg7l67y2g2l4d"; depends=[]; };
-  GeneNet = derive2 { name="GeneNet"; version="1.2.15"; sha256="11ba6ahsk3x9alvcw8bai2bpg84ki1m8nadrjjdhjg65svhw8njm"; depends=[corpcor fdrtool longitudinal]; };
+  GeneNet = derive2 { name="GeneNet"; version="1.2.16"; sha256="1r1khga3nxxjghs4vnbymzp0cwb1q17zw2v3a94qz8fsrirq1sf1"; depends=[corpcor fdrtool longitudinal]; };
   GeneralOaxaca = derive2 { name="GeneralOaxaca"; version="1.0"; sha256="19j5c5xr6mdb6pmih94wbjas4yh0dmsqfggg8clvdxkpwk0h338v"; depends=[boot]; };
   GeneralisedCovarianceMeasure = derive2 { name="GeneralisedCovarianceMeasure"; version="0.1.0"; sha256="02s1wbsdp5ma4pnmcsdl5dwm156zx12d3n1ypzkc33lxg21ashzj"; depends=[CVST kernlab mgcv xgboost]; };
   GeneralizedHyperbolic = derive2 { name="GeneralizedHyperbolic"; version="0.8-4"; sha256="01gqfvmzfslhxdnigzbl3rd55hk6r0kgd8fm9xjl0kb9vmb735lm"; depends=[DistributionUtils MASS]; };
   GeneralizedUmatrix = derive2 { name="GeneralizedUmatrix"; version="1.2.2"; sha256="055q0rspjw5yin0kia6gcax89cfdmgvgvj1zjh4iswfs48n9xdcj"; depends=[ggplot2 Rcpp RcppArmadillo]; };
+  GenericML = derive2 { name="GenericML"; version="0.1.0"; sha256="1wz81x9mxninmxiz5d1k9lmh6jcz4rqvwsh1kjh1wn9zm2yxkbs9"; depends=[ggplot2 lmtest mlr3 mlr3learners sandwich splitstackshape]; };
   GeneticSubsetter = derive2 { name="GeneticSubsetter"; version="0.8"; sha256="0bd4snv3dwabc7mknmd2rjmffj67xq535x0bycajhd83d1jhjars"; depends=[]; };
   GenoScan = derive2 { name="GenoScan"; version="0.1"; sha256="0p98imfvvz7l94kim3pxypyjs2pbxng4a2nagbafbady82ylr2vi"; depends=[data_table MASS Matrix seqminer SKAT]; };
+  GenomeAdapt = derive2 { name="GenomeAdapt"; version="1.0.0"; sha256="0jsxqhx62vbsr0hcqk9wrfsg3l3wbnx64pzxx18ps366vg7fxmii"; depends=[gdsfmt qvalue robust SNPRelate]; };
   GenomeAdmixR = derive2 { name="GenomeAdmixR"; version="2.1.1"; sha256="1c8d2s13hibwymxxra2gbma78d44zx9cbwm4901iz1prdn4p8vl6"; depends=[ggplot2 ggridges hierfstat Rcpp RcppArmadillo RcppParallel rlang stringr tibble vcfR]; };
   GenomicMating = derive2 { name="GenomicMating"; version="2.0"; sha256="02v1pkarmardf7g8hf2n4jj4cq4707g5lcc7gnwsiyyh7pknd1y6"; depends=[dplyr emoa kohonen LowRankQP magrittr plotly qtl Rcpp RcppArmadillo scatterplot3d SOMbrero]; };
   GenomicTools = derive2 { name="GenomicTools"; version="0.2.9.7"; sha256="196shxbrcgiwaa7aav2aipsbj1smrkbhinn44aw9qfvz2x9zdz0m"; depends=[circlize data_table GenomicTools_fileHandler gMWT Rcpp RcppArmadillo snpStats stringr]; };
@@ -1937,7 +1946,6 @@ in with self; {
   GeoBoxplot = derive2 { name="GeoBoxplot"; version="1.0"; sha256="164dh49ac3fx38fdglv32lmz92ca8jdd98cbhz6mxsk8r0jcladw"; depends=[]; };
   GeoDE = derive2 { name="GeoDE"; version="1.0"; sha256="0wawkzj0344pprm8g884d7by8v74iw96b109rgm7anal48fl30im"; depends=[MASS Matrix]; };
   GeoFIS = derive2 { name="GeoFIS"; version="1.0.1"; sha256="09kn2sydz9fn97kbw66y7rqda78bpqyfd0pjmapxljm56hwivvlf"; depends=[BH data_tree FisPro foreach nnls R6 Rcpp Rdpack rgeos sp]; };
-  GeoLight = derive2 { name="GeoLight"; version="2.0.0"; sha256="1i49hyj3f5rcw0s6j2csnfwc6mnp5zn44vxjnk05wdkpw6dpvx5i"; depends=[changepoint fields maps MASS]; };
   GeoMongo = derive2 { name="GeoMongo"; version="1.0.3"; sha256="0m5nz5q81jz2v2bl2dbgdbdprrkckxr2c67qn0cg9vms0pi3fawr"; depends=[data_table geojsonR R6 reticulate]; };
   GeoRange = derive2 { name="GeoRange"; version="0.1.0"; sha256="0krj9570wkhdvpaqkq3nf0maglqd44mpwn4v1bymvgpk1i1wf5p3"; depends=[moments proj4 raster sp velociraptr]; };
   GeoTcgaData = derive2 { name="GeoTcgaData"; version="1.0.2"; sha256="1s3l445igzf1xirfxjkp34djcfipbpcgyd5fd3icnsy2dkfkc787"; depends=[cqn data_table magrittr plyr]; };
@@ -1956,6 +1964,7 @@ in with self; {
   GetoptLong = derive2 { name="GetoptLong"; version="1.0.5"; sha256="00fpm6nd3kqa2ikasxa62jzywi46fvvmx1mdavcp5yrxxn37j8wc"; depends=[crayon GlobalOptions rjson]; };
   Ghat = derive2 { name="Ghat"; version="0.1.0"; sha256="1w5agphnbngc0ldb3gbgh4b8ww956lf31bfyxw2zp56crx4akcxf"; depends=[rrBLUP]; };
   Ghost = derive2 { name="Ghost"; version="0.1.0"; sha256="0anrb1n3f3jnq2p0dgqzw5a0gby2slafv2bybgy5gm3f9fsj831w"; depends=[R6]; };
+  GhostKnockoff = derive2 { name="GhostKnockoff"; version="0.1.0"; sha256="0vp9f8k31yclxvmcjgzkg6xl3rdv49anjmwdhcrhcxv8x9f3bdrj"; depends=[corpcor CVXR gtools Matrix Rdsdp RSpectra seqminer]; };
   GiNA = derive2 { name="GiNA"; version="1.0.1"; sha256="0his7wsgnggyv9526blxzxa1ni8hwq2ws64wkmha45nvvnm3dsiw"; depends=[doParallel EBImage foreach png]; };
   GiRaF = derive2 { name="GiRaF"; version="1.0.1"; sha256="1m19jxr6h485v32iqq260cizf30cgrx3pk802r73fbp3ssj7nmvh"; depends=[BH Rcpp RcppArmadillo]; };
   GibbsACOV = derive2 { name="GibbsACOV"; version="1.1"; sha256="1ikcdsf72sn1zgk527zmxw3zjhx0yvkal6dv001cgkv202842kll"; depends=[MASS]; };
@@ -1966,7 +1975,7 @@ in with self; {
   GiniDistance = derive2 { name="GiniDistance"; version="0.1.0"; sha256="0jq1dwpsvh3k25lawvzf9ij72jsspzyqsbnrphz8aqwi1dkm3851"; depends=[energy randomForest Rcpp RcppArmadillo readxl]; };
   GiniWegNeg = derive2 { name="GiniWegNeg"; version="1.0.1"; sha256="1wqwjalsyp55si839cil6na3khigm0mwn6qkg0kjylq10pabfk2a"; depends=[]; };
   GlarmaVarSel = derive2 { name="GlarmaVarSel"; version="1.0"; sha256="080v2qckihhacclxi2zscslbwbc6179pc7g02lyqaicf9wrsr8ff"; depends=[ggplot2 glmnet Matrix]; };
-  GlmSimulatoR = derive2 { name="GlmSimulatoR"; version="0.2.4"; sha256="1f24wkqxpdh4rfdhc4xh5jzbczqaib5nkvq4a6gx9wzw1ssdhpnd"; depends=[assertthat cplm dplyr ggplot2 magrittr MASS purrr statmod stringr tweedie]; };
+  GlmSimulatoR = derive2 { name="GlmSimulatoR"; version="0.2.5"; sha256="114mhhpv7phvrzvzar4s1a9032iyhcvixjx4h7b5vd1p23m9sayz"; depends=[assertthat cplm dplyr ggplot2 magrittr MASS statmod stringr tweedie]; };
   GlobalDeviance = derive2 { name="GlobalDeviance"; version="0.4"; sha256="0s318arq2kmn8fh0rd5hd1h9wmadr9q8yw8ramsjzvdc41bxqq1a"; depends=[snowfall]; };
   GlobalFit = derive2 { name="GlobalFit"; version="1.2"; sha256="01s51nxcsl8xxn6khbv5jsvpwblwf0iamvr477a1rraqqqj94zx0"; depends=[sybil]; };
   GlobalOptions = derive2 { name="GlobalOptions"; version="0.1.2"; sha256="0gkm77w6db9ajyncy1xdcivplap06a51zi99m009kylccschd2a7"; depends=[]; };
@@ -1989,7 +1998,7 @@ in with self; {
   GreedyEPL = derive2 { name="GreedyEPL"; version="1.2"; sha256="19bgrgzb7jdqpljcbhr3d98y331k1b8fbwgcipak6zkhk2vr6vqz"; depends=[Rcpp RcppArmadillo]; };
   GreedyExperimentalDesign = derive2 { name="GreedyExperimentalDesign"; version="1.4"; sha256="0j2grrnd4yn4d1ly62dzqq0y7l7mh3lpnlfpf5n41a9w489m03hw"; depends=[checkmate GreedyExperimentalDesignJARs kernlab nbpMatching Rcpp rJava survey]; };
   GreedyExperimentalDesignJARs = derive2 { name="GreedyExperimentalDesignJARs"; version="1.0"; sha256="14i6m5qlh1fca9xmzid01hicd3bkf6rzl139ss78gvw544zrapw7"; depends=[rJava]; };
-  Greg = derive2 { name="Greg"; version="1.3.4"; sha256="1s46arnraj9xc98kxj0av64jjg0khxjrvgj1gjqz5f6bw2bxmkm3"; depends=[Epi forestplot Gmisc Hmisc htmlTable knitr magrittr nlme rms sandwich stringr]; };
+  Greg = derive2 { name="Greg"; version="1.4.0"; sha256="0n5w4z4czrgp8mdbpxiw3ha41dax4nns8na5xzq2qc94nig8k97m"; depends=[Epi forestplot Gmisc Hmisc htmlTable knitr magrittr nlme rms sandwich stringr]; };
   GreyModel = derive2 { name="GreyModel"; version="0.1.0"; sha256="0vxl4kgihcyl96qiz6sz5icznaa1jpsqqbn1irwmzyngwsh1qvzw"; depends=[]; };
   GridOnClusters = derive2 { name="GridOnClusters"; version="0.0.8"; sha256="16wr7zssiy6y0hvg2s7vhy30qxq5ja8yplv8xncn6iz8giy1wdww"; depends=[cluster dqrng fossil plotrix Rcpp Rdpack]; };
   GrimR = derive2 { name="GrimR"; version="0.5"; sha256="005ywc31yn1cs54kjlkrryw0s7zm8dqqfjkdlkm4s1sbc9r3mssz"; depends=[car]; };
@@ -2016,7 +2025,7 @@ in with self; {
   HCR = derive2 { name="HCR"; version="0.1.1"; sha256="14s46dyw3ifp3pwwlcwbbl47i6hy2whjj1n65i28am5a33nycgha"; depends=[data_table]; };
   HCTR = derive2 { name="HCTR"; version="0.1.1"; sha256="1hg8mpallwxpmamk6q8x87w5hlqqwvbahfw5zmr9pisiagbwcsay"; depends=[glmnet harmonicmeanp MASS ncvreg Rdpack]; };
   HCmodelSets = derive2 { name="HCmodelSets"; version="1.1.2"; sha256="05w742g89r0hr90awwjqlszib2jjfly52l9c7ag3n22vg4d1ixw1"; depends=[ggplot2 mvtnorm survival]; };
-  HDBRR = derive2 { name="HDBRR"; version="1.1.2"; sha256="0xaj6h7llkmqizmcmivislx3yszqypdcnlrrs8xzandfbzfkyk1q"; depends=[bigstatsr MASS numDeriv]; };
+  HDBRR = derive2 { name="HDBRR"; version="1.1.3"; sha256="1awz9s7g5fcy2anrq3fmyjcvi3kr2b3vmky63nv964821b8x9vh1"; depends=[bigstatsr MASS numDeriv]; };
   HDCI = derive2 { name="HDCI"; version="1.0-2"; sha256="0wxbv54kbygymhh4r7052vnbj603c1kya01ykvmqzzkjyyfzidkz"; depends=[doParallel foreach glmnet iterators lattice Matrix mvtnorm slam]; };
   HDCurves = derive2 { name="HDCurves"; version="0.1.0"; sha256="1ifcbwcqgdxicqxcqrsl9kp3zadxhijpwff8ln309378vybr3gh1"; depends=[]; };
   HDDesign = derive2 { name="HDDesign"; version="1.1"; sha256="1jim4h9bwn8r637va7m81kwwsfwyzs9pzn5a9i7c8xz8b1x191bj"; depends=[]; };
@@ -2028,7 +2037,7 @@ in with self; {
   HDPenReg = derive2 { name="HDPenReg"; version="0.94.7"; sha256="16kmx3lddjvz8k7sric0s9ajhlgp62gf1zkyiscaf7w0pjwzin28"; depends=[Matrix Rcpp rtkore]; };
   HDShOP = derive2 { name="HDShOP"; version="0.1.2"; sha256="0qnxgp7fjinj9c96w724nxvmb2xbihj2wd6ysibr5dk4rvlq16p0"; depends=[Rdpack]; };
   HDSpatialScan = derive2 { name="HDSpatialScan"; version="1.0.2"; sha256="0j6frhnxbchy2r425zhx952vvdivrpcrq0440rr4mbr4rla2ci4s"; depends=[DT fmsb matrixStats plotrix purrr Rcpp RcppArmadillo rgdal rgeos sp SpatialNP swfscMisc TeachingDemos]; };
-  HDTSA = derive2 { name="HDTSA"; version="1.0.0"; sha256="1mphx55ibw8rlv5cz7vr8m3sgyl0qz0nfk26mcnnfsk38x6hl9zc"; depends=[clime Rcpp RcppEigen sandwich]; };
+  HDTSA = derive2 { name="HDTSA"; version="1.0.1"; sha256="09b3jz552v3hmnhi6ag0dhc7nr5gdc688mcf3n9q8qzvc3l6dglc"; depends=[clime Rcpp RcppEigen sandwich]; };
   HDclassif = derive2 { name="HDclassif"; version="2.2.0"; sha256="1l5zxhayhzh7q50ycl481hy0br66ylxyvzw1ahmjjrdkm8s3czyj"; depends=[MASS rARPACK]; };
   HDclust = derive2 { name="HDclust"; version="1.0.3"; sha256="18l4qp261gj3kscfxs3s03kmb9y5ml31vnpgpm1iy125bks4mr2y"; depends=[Rcpp RcppProgress Rtsne]; };
   HDcpDetect = derive2 { name="HDcpDetect"; version="0.1.0"; sha256="0ai35d9df5pmva52sb1rr20f11h0mbal6d179g865b7w6n90kfr1"; depends=[]; };
@@ -2069,7 +2078,7 @@ in with self; {
   HPbayes = derive2 { name="HPbayes"; version="0.1"; sha256="1kpqnv7ymf95sgb0ik7npc4qfkzc1zb483vwnjpba4f42jhf508y"; depends=[boot corpcor MASS mvtnorm numDeriv]; };
   HRM = derive2 { name="HRM"; version="1.2.1"; sha256="0qsxwi0v61k1waw21nrz86jazd5wgq2drhan3w8pmb35q2z20s35"; depends=[data_table doBy ggplot2 MASS matrixcalc mvtnorm plyr pseudorank Rcpp reshape2 xtable]; };
   HRM_curve = derive2 { name="HRM.curve"; version="0.0.1"; sha256="0p3kvldpz347c0cdjkrdm0x2nfj85hm5cp59lirqhq77hf1zfnd5"; depends=[]; };
-  HRW = derive2 { name="HRW"; version="1.0-4"; sha256="0bjx8rg132m782cqy744ylbigvbj48ywcgws1jwmh0ry60hyqxav"; depends=[KernSmooth]; };
+  HRW = derive2 { name="HRW"; version="1.0-5"; sha256="08fh9504cck1ffrwim27nkrm9y1in6jl1s7zs8h8x3ik54p9jb0k"; depends=[KernSmooth]; };
   HS = derive2 { name="HS"; version="1.1"; sha256="1vhbchc446j49jj7jgmy4l59n8ahk5l8jp1rl5xwsmn9iqir62mp"; depends=[data_table ggplot2 ggpubr partitions reshape2 tidyr zoo]; };
   HSAR = derive2 { name="HSAR"; version="0.5.1"; sha256="03ryscvgiiwjcqk6gy3251nqqk43x508kz3ibw35hi84m2s7fsxj"; depends=[Rcpp RcppArmadillo spatialreg spdep]; };
   HSAUR = derive2 { name="HSAUR"; version="1.3-9"; sha256="0b2hyn59lr2pma87fcj7mli3qmrbnfhgd8fv02fa317rj52399qz"; depends=[]; };
@@ -2094,7 +2103,7 @@ in with self; {
   Hapi = derive2 { name="Hapi"; version="0.0.3"; sha256="0jqjhfq38k161kqff5cx0vxpsmjm2y5ca7049mvqiwqwvi4fp08m"; depends=[ggplot2 HMM]; };
   Haplin = derive2 { name="Haplin"; version="7.2.3"; sha256="1s1jlyr0gwvigfndqjbxb8zib6hkmn341khsnv87f82vzakmhi80"; depends=[ff MASS mgcv rlang]; };
   HaploSim = derive2 { name="HaploSim"; version="1.8.4"; sha256="0794f76hc9qvjmay7c61cmzycqafljs0g0hliq9xfrw4f23gq3sa"; depends=[]; };
-  HardyWeinberg = derive2 { name="HardyWeinberg"; version="1.7.2"; sha256="0g10jh71yp0pcag44z409xqb6d941l7y887a632962bk5rgn6q5p"; depends=[mice Rcpp Rsolnp]; };
+  HardyWeinberg = derive2 { name="HardyWeinberg"; version="1.7.4"; sha256="11y3zg8aqxk5xdzsv7i3bgqkky6a0wgf2n8saa3a4adq75k328ib"; depends=[mice nnet Rcpp Rsolnp]; };
   HarmonicRegression = derive2 { name="HarmonicRegression"; version="1.0"; sha256="0inz3l610wl0ibqjyrhfbmwmcfzcmcfhixai4lpkbfsyx93z2i4d"; depends=[]; };
   Harvest_Tree = derive2 { name="Harvest.Tree"; version="1.1"; sha256="021zmppy7p2iakaxirfjdb5jzakg1ijma9d25ly2ni0nx0p1mh6z"; depends=[rpart]; };
   HeckmanEM = derive2 { name="HeckmanEM"; version="0.1.2"; sha256="1q9sad19ccq30ggvcj1byhka4dwa94k6z31ig56vi3031nx2424n"; depends=[MomTrunc mvtnorm PerformanceAnalytics sampleSelection]; };
@@ -2113,6 +2122,8 @@ in with self; {
   HiddenMarkov = derive2 { name="HiddenMarkov"; version="1.8-13"; sha256="05dm3nl0ffsz2ziw3bz5bivyxk7r5bxs8xhky3hz660qaqzd51ki"; depends=[]; };
   HierDpart = derive2 { name="HierDpart"; version="1.5.0"; sha256="10sphan6slzj6bsbzff4z7pglkjhv6xy719dm7594fmgqfjz0ici"; depends=[ade4 adegenet ape diveRsity entropart GGally ggplot2 hierfstat mmod pegas permute reshape2 tibble vegan]; };
   HierO = derive2 { name="HierO"; version="0.2"; sha256="1lqj5grjly4kzxl7wb192aagz2kdvpnjdan2kcg5yxwvg1xcvwv1"; depends=[bitops RCurl rneos tcltk2 XML]; };
+  HierPorfolios = derive2 { name="HierPorfolios"; version="0.1.0"; sha256="0lx10lnslal689ykp7idvngc074yhfx3mkddyrax91djnqsc8aq4"; depends=[cluster fastcluster RiskPortfolios]; };
+  HierPortfolios = derive2 { name="HierPortfolios"; version="0.1.0"; sha256="13f0bkcqglf6v0b2kqgsdr9px78ai3z8km3vkqnhsnphg8kh3m4z"; depends=[cluster fastcluster RiskPortfolios]; };
   HighestMedianRules = derive2 { name="HighestMedianRules"; version="1.0"; sha256="01fj3xgrb9iav5v91bq04hzv9nhnwy8l00dx6yykghwvzjwfv3ih"; depends=[RMallow]; };
   HistDAWass = derive2 { name="HistDAWass"; version="1.0.6"; sha256="1h5bbxv8lgmwvlf85v8p6fyy959l36pnzjkg0d6b9kz77whlqrk1"; depends=[class FactoMineR ggplot2 ggridges histogram Rcpp RcppArmadillo]; };
   HistDat = derive2 { name="HistDat"; version="0.2.0"; sha256="06zxsja8qk48q9lrr9fbk4sbpidysp31mcirxfr12l348lc9zf10"; depends=[]; };
@@ -2155,7 +2166,7 @@ in with self; {
   ICAMS = derive2 { name="ICAMS"; version="2.3.10"; sha256="0kkxn45addgl7mg8w4ybna7xaj11dgrwax06l0ml3bnk8h0nrgi5"; depends=[Biostrings BSgenome data_table dplyr GenomeInfoDb GenomicRanges IRanges RColorBrewer stringi zip]; };
   ICAOD = derive2 { name="ICAOD"; version="1.0.1"; sha256="07fxh60vsndlvjijjsh1a9l2qkp78sb9nkg5x5mslh209lpjjhw1"; depends=[cubature mnormt mvQuad nloptr Rcpp RcppEigen sn]; };
   ICBayes = derive2 { name="ICBayes"; version="1.2"; sha256="1hdh7g4nk6yy0xz9564vpvh1blrw30lvyw2wc5mmgn78kwjqla34"; depends=[coda HI survival]; };
-  ICBioMark = derive2 { name="ICBioMark"; version="0.1.2"; sha256="01bmh2kx1w3h7aqvm6nkmbdv576r3la3f2973jzak4j662yyk9sj"; depends=[dplyr gglasso ggplot2 glmnet latex2exp Matrix matrixStats PRROC purrr]; };
+  ICBioMark = derive2 { name="ICBioMark"; version="0.1.4"; sha256="1bvlbczlkjdql98ds5wgmg3j2dxbfm5i4yzq98pdkzaiccg8sx2v"; depends=[dplyr gglasso ggplot2 glmnet latex2exp Matrix matrixStats PRROC purrr]; };
   ICC = derive2 { name="ICC"; version="2.3.0"; sha256="0y8zh9715cp9bglxpygqwgigrarq37sj845lk1xl0ydwinl0a6kk"; depends=[]; };
   ICC_Sample_Size = derive2 { name="ICC.Sample.Size"; version="1.0"; sha256="1w6v1jp8bfvf6c49ikswkc5527gdx5cyqnw95x00pgmm6riwlsp9"; depends=[]; };
   ICCbin = derive2 { name="ICCbin"; version="1.1.1"; sha256="1pzlaj7w98pgrlg3zvpmdv0dpgi5gih0j73qv86ak75fkxvrnzzw"; depends=[]; };
@@ -2169,7 +2180,7 @@ in with self; {
   ICODS = derive2 { name="ICODS"; version="1.0"; sha256="13wi4mqdwdrjfjh42sjifc6vlkj6jlm4z0x6680xdzkwq8byipi9"; depends=[MASS]; };
   ICRanks = derive2 { name="ICRanks"; version="3.1"; sha256="1vwzqkjg7i5hm96s8frp72n6xqadlsawzr1wby1fhsxl2m5f1797"; depends=[gmp multcomp Rcpp]; };
   ICS = derive2 { name="ICS"; version="1.3-1"; sha256="0x3cwhvzcibgyb8gqy6dc6lgnvbf6x8425zai57g8yn5i6zzc1li"; depends=[mvtnorm survey]; };
-  ICSKAT = derive2 { name="ICSKAT"; version="0.1.0"; sha256="148sw8yg1ww39sdn5r77gx70nz40igz2rw9fwfj2nyq92j1l020k"; depends=[CompQuadForm dplyr magrittr Rcpp RcppEigen rje survival tidyr zoo]; };
+  ICSKAT = derive2 { name="ICSKAT"; version="0.2.0"; sha256="13cx2480kyzcwxp9b57p3rq4fs6x1fd4wpwm7iwiqjh17v4vb54l"; depends=[CompQuadForm dplyr magrittr Rcpp RcppEigen rje survival zoo]; };
   ICSNP = derive2 { name="ICSNP"; version="1.1-1"; sha256="1zf0k1kwdmjjqsbiiy3r2l47vjsrg09fj65p6zfld3j4gjbp17fd"; depends=[ICS mvtnorm]; };
   ICSOutlier = derive2 { name="ICSOutlier"; version="0.3-0"; sha256="1vj1y4zw8pkghkg4qnmx0yk1yw4zzl9075n5czrna9ckk2p29fmh"; depends=[ICS moments mvtnorm]; };
   ICSS = derive2 { name="ICSS"; version="1.1"; sha256="0kmsw8347ka5n0qncx7hqgs153ihkmxbl0wc5kqlb2l42sl6rp8x"; depends=[rstack]; };
@@ -2177,6 +2188,7 @@ in with self; {
   ICV = derive2 { name="ICV"; version="1.0"; sha256="1na87i39jy5d8ibldqcqz3a072ihkgcl0k629sxch9hk6v6j5lly"; depends=[]; };
   ICcalib = derive2 { name="ICcalib"; version="1.0.8"; sha256="1y2w12ka0qxh9dg6dlcrnndz1xrv8gkppan64qkyk5vjrh18ajz4"; depends=[fitdistrplus icenReg ICsurv MASS msm numDeriv Rcpp RcppArmadillo survival]; };
   ICcforest = derive2 { name="ICcforest"; version="0.5.1"; sha256="0z511d3drq5flxwvx7kjv3v5yanjhvs5ayvkm996jbiz3k49a12v"; depends=[icenReg ipred partykit survival]; };
+  ICglm = derive2 { name="ICglm"; version="0.1.0"; sha256="1dmnz6sf311xsvyg8dh082pxgzizm701cf1ml0xg4s9kls3fd2i8"; depends=[Matrix]; };
   ICsurv = derive2 { name="ICsurv"; version="1.0"; sha256="1mbndpy3x5731c9y955wscy76jrxlgv33bf6ldqp65cwyvdgxl86"; depends=[MASS matrixcalc]; };
   ICtest = derive2 { name="ICtest"; version="0.3-4"; sha256="130n25xxq0iav5y2anyhjjkpvfs438qxjgrbil7yzpaaifhxrmi2"; depends=[GGally ggplot2 ICS ICSNP JADE png Rcpp RcppArmadillo survey xts zoo]; };
   ICvectorfields = derive2 { name="ICvectorfields"; version="0.1.1"; sha256="15djyammyss0vqvknkd30xxd2pwmi4jzrb2x711sxhz9yx8arhqf"; depends=[fftwtools Rcpp terra]; };
@@ -2192,7 +2204,7 @@ in with self; {
   IDmeasurer = derive2 { name="IDmeasurer"; version="1.0.0"; sha256="0n7rziaaxm9dqixmw6rxgq9dwnwdl3dsdnpd9s59k5skdlaxnl5m"; depends=[infotheo lme4 MASS]; };
   IDmining = derive2 { name="IDmining"; version="1.0.7"; sha256="1yv8lclkb1ws2n4yd3l561lqhp25vlw0f6d073yg04pidr2dpg2a"; depends=[data_table doParallel foreach]; };
   IETD = derive2 { name="IETD"; version="1.0.0"; sha256="0avhyw0zcb8vj0nqfy41yq5kcd8yf9rmaawdvfcy5rqwxmi1mw9l"; depends=[doParallel dplyr foreach ggplot2 lubridate Rdpack]; };
-  IFAA = derive2 { name="IFAA"; version="1.0.2"; sha256="1jn113scr85lx0sqwrz2sbay7i2i2vdbg4w18l31p2q47x963lfy"; depends=[doParallel expm foreach future HDCI mathjaxr Matrix picasso qlcMatrix rlecuyer]; };
+  IFAA = derive2 { name="IFAA"; version="1.0.3"; sha256="05hib1nc2w2fjypvbqjp92j0463k79fpj0l4068x876nhnx3ms2a"; depends=[doParallel expm foreach future glmnet HDCI mathjaxr Matrix picasso qlcMatrix rlecuyer]; };
   IFC = derive2 { name="IFC"; version="0.1.2"; sha256="1g5l85mjnf08dxszbybwg5z1k2dwgvhbrls8r37iq45rcb31pmyh"; depends=[DT gridExtra jpeg KernSmooth lattice latticeExtra png Rcpp RcppProgress tiff visNetwork xml2]; };
   IFP = derive2 { name="IFP"; version="0.2.4"; sha256="066wz6bjqcvq22gjg2wcmglp798f87rsc8yhm13p0dic3arb5ph6"; depends=[coda haplo_stats]; };
   IGG = derive2 { name="IGG"; version="1.0"; sha256="1cibb9z18xc1zx1813lk14n6p5am84hm7w0hkrsif4j3p89lrwif"; depends=[GIGrvg glmnet MASS Matrix pscl]; };
@@ -2232,7 +2244,6 @@ in with self; {
   IPWboxplot = derive2 { name="IPWboxplot"; version="0.1.0"; sha256="0lyqcjnbissick5hzwrx21pykq4pww9j0i03j0gy43awl1cq5qq8"; depends=[isotone]; };
   IPWpn = derive2 { name="IPWpn"; version="0.1.0"; sha256="0glw8sb8jadnvznfj31l6lal0vqnmsmk96byinw7wy8avkz455fn"; depends=[dplyr MplusAutomation mvtnorm tibble tidyr tidyverse]; };
   IQCC = derive2 { name="IQCC"; version="0.7"; sha256="1zalpmyywkrnci0jd8irakjhiqmr52zhj1sbxf9pz5c7wks2rdbc"; depends=[MASS miscTools qcc]; };
-  IRATER = derive2 { name="IRATER"; version="0.0.1"; sha256="0jxdvjmnmangbqy3ibb5qrj9jz3wrzs0wa1r2gjk4v8vsbk0ipcf"; depends=[coda lattice plyr R2admb]; };
   IRCcheck = derive2 { name="IRCcheck"; version="1.0.0"; sha256="035sx36qf5hdnc51h8251qwxfm30r8h2v2qs2x161ip4cqghw019"; depends=[corpcor GGMncv glmnet MASS Rdpack]; };
   IRISMustangMetrics = derive2 { name="IRISMustangMetrics"; version="2.4.4"; sha256="0pnqmzzzbyqdg5hy4jjmlw38cpi81gsphfs4bqwbhmx77dp7ib06"; depends=[dplyr IRISSeismic pracma RCurl seismicRoll signal stringr XML]; };
   IRISSeismic = derive2 { name="IRISSeismic"; version="1.6.3"; sha256="0krq0xxxwl59cp8mn82f9xlincvl6l8r6cq5axfmk99nrzcfdy5g"; depends=[pracma RCurl seismicRoll signal stringr XML]; };
@@ -2290,7 +2301,7 @@ in with self; {
   Infusion = derive2 { name="Infusion"; version="1.5.1"; sha256="02rlzil1qzgyxrf87mdvxdm0mgjnljk211j9c7hh72h0mq5rlg0d"; depends=[blackbox foreach mvtnorm numDeriv pbapply proxy spaMM viridis]; };
   InjurySeverityScore = derive2 { name="InjurySeverityScore"; version="0.0.0.2"; sha256="0g52cksa774in18ykrym61l3my9zm343bgsq5mg7mki9x65xd35z"; depends=[dplyr rlang tidyr]; };
   InspectChangepoint = derive2 { name="InspectChangepoint"; version="1.1"; sha256="0zrfyzz3l9jff7044dhrjv8rp8f258fz993ycyxyd29nd7x9n9nj"; depends=[MASS]; };
-  IntCal = derive2 { name="IntCal"; version="0.2.3"; sha256="0x2dlkgsw1nwqqy9582znqds6pxvv8pwk2ky4q0qwcrx1v8akn3d"; depends=[]; };
+  IntCal = derive2 { name="IntCal"; version="0.3.0"; sha256="1sf25dkrnww0nqqhciadhak08n27l39ipczkjsbi7z3sn2npj50b"; depends=[]; };
   IntLik = derive2 { name="IntLik"; version="1.0"; sha256="13ww5bsbf1vnpaip0w53rw99a8hxzziibj7j66cm31jmi8l6fznf"; depends=[maxLik]; };
   IntNMF = derive2 { name="IntNMF"; version="1.2.0"; sha256="09qzyvv7d4wr68qrlhcd4ivr65is3mypv1vaxpswwcjmcmyr4gzp"; depends=[cluster InterSIM MASS mclust NMF]; };
   IntegrateBs = derive2 { name="IntegrateBs"; version="0.1.0"; sha256="1pkx4wpahd1sabzx55law3710x3vbh9yi6kii8gs2xfq3cb1llmq"; depends=[]; };
@@ -2325,6 +2336,7 @@ in with self; {
   IsoplotRgui = derive2 { name="IsoplotRgui"; version="4.2"; sha256="0l30bv9nzamh6aj2b5497hnn298lcim5nhp3isqnm0r1wpnpjk71"; depends=[httpuv IsoplotR jsonlite later]; };
   IsoriX = derive2 { name="IsoriX"; version="0.8.2"; sha256="1yk2xlz658c1kvm3kb89qmacy5g9qnzjawi2pk5xkn7g9v214adr"; depends=[lattice latticeExtra numDeriv raster rasterVis sp spaMM viridisLite]; };
   IsotopeR = derive2 { name="IsotopeR"; version="0.5.4"; sha256="0xgha5alh5y5qfz00rl73q4xlamnmrwij7kckljmy6zgrlrdnl6x"; depends=[colorspace ellipse fgui plotrix runjags]; };
+  IxPopDyMod = derive2 { name="IxPopDyMod"; version="0.1.0"; sha256="12b4ffkq8788yhj2xs6fsm8dw0607ifj3yy1lylcy3z2nn2bzap7"; depends=[dplyr ggplot2 igraph magrittr readr rlang stringr tibble tidyr yaml]; };
   JADE = derive2 { name="JADE"; version="2.0-3"; sha256="1fj2wawx5ac1fvlp28naqha0i17f1sb47j2qqzgccvx17ycqmmjn"; depends=[clue]; };
   JASPAR = derive2 { name="JASPAR"; version="0.0.1"; sha256="0wiyn7cz45hwy9zkvacx28zdrg78q6715cg4r9xgcb39q25s0dcy"; depends=[gtools]; };
   JBrowseR = derive2 { name="JBrowseR"; version="0.9.0"; sha256="0wwcz5dzjmss2rdqdfxrxbaj01f9avh7h5clzl9aqvql2g0gllbl"; depends=[cli dplyr htmltools htmlwidgets httpuv ids jsonlite magrittr mime reactR readr stringr]; };
@@ -2337,7 +2349,6 @@ in with self; {
   JMI = derive2 { name="JMI"; version="0.1.0"; sha256="05phkwfb9v4g9jixlvbj6br7sbi64zvrgjwfr0v87ijddkxc9si9"; depends=[Rcpp RcppArmadillo]; };
   JMbayes = derive2 { name="JMbayes"; version="0.8-85"; sha256="0s11jpzflc2zg60g4ffcw23c2f4zz3mzddrc2cl5y43xl2v304lb"; depends=[doParallel foreach Hmisc jagsUI MASS nlme Rcpp RcppArmadillo rstan shiny survival xtable]; };
   JMbayes2 = derive2 { name="JMbayes2"; version="0.1-8"; sha256="16fy3j52xd3d1bjpzrs0qaajiw9fvpdvm19jx0nbwh16npid494f"; depends=[coda ggplot2 GLMMadaptive gridExtra matrixStats nlme Rcpp RcppArmadillo survival]; };
-  JMcmprsk = derive2 { name="JMcmprsk"; version="0.9.10"; sha256="1hkylfrr2036vgkxfs98szm3883bmyvvyr0f3a8xygccf3pn28xc"; depends=[dplyr MASS pracma Rcpp reshape2 statmod]; };
   JMdesign = derive2 { name="JMdesign"; version="1.1"; sha256="0w5nzhp82g0k7j5704fif16sf95rpckd76jjz9fbd71pp2d80vlh"; depends=[]; };
   JOPS = derive2 { name="JOPS"; version="0.1.15"; sha256="01yaw657826vfsfdscv3aqgswb5s2054s755agfxqm7g6sswpa13"; depends=[boot colorspace fds fields ggplot2 MASS rpart SemiPar spam SpATS]; };
   JOUSBoost = derive2 { name="JOUSBoost"; version="2.1.0"; sha256="0f3rr7aw20nvmlpqrq3wzgmr55lqdqhk3wphpqq7msgvaf1zrcl7"; depends=[doParallel foreach Rcpp rpart]; };
@@ -2349,7 +2360,7 @@ in with self; {
   JSmediation = derive2 { name="JSmediation"; version="0.2.0"; sha256="1js9qhjfycwwipaxf64zpgwbbqyccj9zv4kipd6r82l3rx9ck8mh"; depends=[broom data_table dplyr glue knitr magrittr MASS purrr rlang tibble]; };
   JWileymisc = derive2 { name="JWileymisc"; version="1.2.0"; sha256="0c140kcq0fw91r4g33xri8yxms0nk291zi708h00pszliwpg4qhq"; depends=[data_table emmeans extraoperators ggplot2 ggpubr ggthemes lavaan lme4 MASS mgcv mice multcompView psych quantreg rms robustbase VGAM]; };
   JacobiEigen = derive2 { name="JacobiEigen"; version="0.3-4"; sha256="1jm63w2jn89pk725x3d9myq010mb0g5ir8vhv29mkiwgrqig6iw1"; depends=[Rcpp]; };
-  JamendoR = derive2 { name="JamendoR"; version="0.1.0"; sha256="1v5i4ggc4igp83pik32fqp07ff8iv7dp93b3qhxcsy1msa4l88lx"; depends=[dplyr httr jsonlite]; };
+  JamendoR = derive2 { name="JamendoR"; version="0.1.1"; sha256="0rrfbci413mqq53p5fyj8rjangdx21iyin6hzqkxyrxrv3n5mfbx"; depends=[dplyr httr jsonlite]; };
   JavaGD = derive2 { name="JavaGD"; version="0.6-4"; sha256="1q48iykjzy22avmx0yy03vv9c7h87qsphg5hsrzfmx5gvck61m06"; depends=[rJava]; };
   Jaya = derive2 { name="Jaya"; version="0.1.9"; sha256="0b23l7xp4waxjy1vkk09xaali5axr5900v9hkki4f75wh4gb1l53"; depends=[GA]; };
   Jdmbs = derive2 { name="Jdmbs"; version="1.4"; sha256="14wprvxjyx1da1642z11wkzjiyxd5rbpaw1mzq4x6aw53dvh1kgv"; depends=[ggplot2 igraph png]; };
@@ -2358,14 +2369,14 @@ in with self; {
   JoF = derive2 { name="JoF"; version="0.1.0"; sha256="1my6fc4awrc822ibsvx3hiz4l49vp8dx0j05v56r7d27xizy8j0j"; depends=[]; };
   JoSAE = derive2 { name="JoSAE"; version="0.3.0"; sha256="1vjxzbfs8a7kpmn2lb9dca67d4njmzjr3pl16s0r9ihmmxxwwili"; depends=[nlme]; };
   Johnson = derive2 { name="Johnson"; version="1.4"; sha256="12ajcfz5mwxvimv8nq683a2x3590gz0gnyviviyzf5x066a4q0lj"; depends=[]; };
-  JointAI = derive2 { name="JointAI"; version="1.0.2"; sha256="0rfnfswb35yym174mc0r59c0pxx0l4szvzcg8n99nr0rdl0vhr8z"; depends=[coda foreach future MASS mathjaxr mcmcse rjags rlang survival]; };
+  JointAI = derive2 { name="JointAI"; version="1.0.3"; sha256="1dg685lpqxs1a2mf584a0l0a6zz6bkp06n3ydvgnvngrclhv18zj"; depends=[coda foreach future MASS mathjaxr mcmcse rjags rlang survival]; };
   JointModel = derive2 { name="JointModel"; version="1.0"; sha256="1zgs5c7saqyqxvxmhw5sxy5w67abq344aid6igw1da05bfy2az6h"; depends=[lme4 statmod survival]; };
   JointNets = derive2 { name="JointNets"; version="2.0.1"; sha256="18n9dsy0w0nh7dznp6gw6g5fhhjhf5y589nb49hri0721kq1h3rb"; depends=[brainR igraph JGL lpSolve MASS misc3d oro_nifti pcaPP rgl shiny]; };
   Julia = derive2 { name="Julia"; version="1.1"; sha256="0i1n150d89pkds7qyr0xycz6h07zikb2y07d5fcpaqs4446a8prg"; depends=[]; };
   JuliaCall = derive2 { name="JuliaCall"; version="0.17.4"; sha256="0ys2sm8yf41zqkvwz9cavkqk8br338w93wq0h8lggfq4q0l85n21"; depends=[knitr Rcpp]; };
-  JuliaConnectoR = derive2 { name="JuliaConnectoR"; version="1.0.0"; sha256="0jdflrbspvy1jx1b4gjj3d5f8lm80pf3lj76zgcqwb39m993ab7d"; depends=[]; };
+  JuliaConnectoR = derive2 { name="JuliaConnectoR"; version="1.1.0"; sha256="0dqgrhnfcwx7gprvxm8kqcmmrgs5zpi23b8aiy46s9i9b59y8kmw"; depends=[]; };
   JumpTest = derive2 { name="JumpTest"; version="1.1"; sha256="0y375m5477nq0ybnjmfnd8hi45d8jmdnprqvw5f70llpd7bcghh0"; depends=[MASS Rcpp RcppEigen]; };
-  JumpeR = derive2 { name="JumpeR"; version="0.1.4"; sha256="1c1i1m46ccjph4hnlr66pdch7ld4k5fv95fcgk8amlig8hcqiq7c"; depends=[dplyr magrittr pdftools purrr rvest stringr SwimmeR xml2]; };
+  JumpeR = derive2 { name="JumpeR"; version="0.3.0"; sha256="1bh2448462xgiv4k19qgm3dc4wa00ad8v3l6v22pg0l5kpmlx5i2"; depends=[dplyr magrittr pdftools purrr rvest stringr SwimmeR xml2]; };
   JustifyAlpha = derive2 { name="JustifyAlpha"; version="0.1.1"; sha256="0bd7sn4sn95kal5q2x1q78fsk1mhakr5fax3z6ny2yda2h266af9"; depends=[BayesFactor ggplot2 pwr qpdf shiny shinydashboard stringr Superpower]; };
   KANT = derive2 { name="KANT"; version="2.0"; sha256="169j72pmdkcj6hv8qgmc02aps0ppvvl1vnr1hzrb1gsf7zj7bs3y"; depends=[affy Biobase]; };
   KCSKNNShiny = derive2 { name="KCSKNNShiny"; version="0.1.0"; sha256="13gzqf3g7vj8cc0xm5902q7lad2way8d0ri1fs01dnv97wmwbxvn"; depends=[caret dplyr FNN rhandsontable shiny]; };
@@ -2394,7 +2405,6 @@ in with self; {
   KSEAapp = derive2 { name="KSEAapp"; version="0.99.0"; sha256="1gfgpa2d32y6bzvf4ww70sm7niq34sqmyrhi0phlqxshqq9xviqc"; depends=[gplots]; };
   KSPM = derive2 { name="KSPM"; version="0.2.1"; sha256="13fq0d016z6880rr93y918l27fsxd5dxc6gbdnkma5sgsjni5cxh"; depends=[CompQuadForm DEoptim expm]; };
   KScorrect = derive2 { name="KScorrect"; version="1.4.0"; sha256="1khvwc610yp3fd4fn0wcgqpzxg9g7sicjjmwvfcahs8qxn3m5vfa"; depends=[doParallel foreach iterators MASS mclust]; };
-  KSgeneral = derive2 { name="KSgeneral"; version="1.0.0"; sha256="0pfrhmqgdxa13bjs1jgqkggbjfvwbmx6khkjxcfb96rnf2wccgyc"; depends=[dgof MASS Rcpp]; };
   KTensorGraphs = derive2 { name="KTensorGraphs"; version="1.1"; sha256="1szl66ix6c6vb0zzyp404psglx3lk125903zc4za0qfzcic7a9p6"; depends=[]; };
   KappaGUI = derive2 { name="KappaGUI"; version="2.0.2"; sha256="0vklny804xpd9r60j4a01j2gak8jizwjw0abf7yvbcalv3zbpb3k"; depends=[irr shiny]; };
   KappaV = derive2 { name="KappaV"; version="0.3"; sha256="13mmfb8ijpgvzfj20andqb662950lp9g25k5b26r5ba65p7nhva7"; depends=[maptools PresenceAbsence rgeos sp]; };
@@ -2411,8 +2421,8 @@ in with self; {
   KingCountyHouses = derive2 { name="KingCountyHouses"; version="0.1.0"; sha256="17l415v290lm99rsifpk6324mm1sk79ns4cvjkyh9ibj8n7l44c1"; depends=[]; };
   KnapsackSampling = derive2 { name="KnapsackSampling"; version="0.1.0"; sha256="17yzmd11k1n5iy54vbcvpzvkm8ypbl6n1kfi931wwrrcq9y7hg22"; depends=[lpSolve]; };
   KneeArrower = derive2 { name="KneeArrower"; version="1.0.0"; sha256="1blmim4l7375psa9c3wbpksywj5nfbawly4001n6311wcv4dybl5"; depends=[signal]; };
-  KnockoffScreen = derive2 { name="KnockoffScreen"; version="0.2.0"; sha256="1gc47ahvw9sdjbaxg3xl8r6pw9mkn85wdy6gwlksscnl49krrikg"; depends=[CompQuadForm data_table Matrix seqminer SPAtest]; };
-  Knoema = derive2 { name="Knoema"; version="0.1.16"; sha256="0v6w8rrw8nd4l1by5w9xd4hbxp55cma89kljha47ykvmnflsrjsc"; depends=[base64enc digest httr jsonlite lubridate xts zoo]; };
+  KnockoffScreen = derive2 { name="KnockoffScreen"; version="0.3.0"; sha256="01r04d9ha9l5pkz3lwdcb5x5qqwk8vil9avnbnfn76wg63mdfhbk"; depends=[bigmemory CompQuadForm data_table irlba Matrix seqminer SPAtest]; };
+  Knoema = derive2 { name="Knoema"; version="0.1.19"; sha256="16izh1viaqxvhgfxy2g6b9hhvm1n6nbjsj2xd45qwdibl3ly8d0f"; depends=[base64enc digest httr jsonlite lubridate xts zoo]; };
   KnowBR = derive2 { name="KnowBR"; version="2.0"; sha256="0i934gff8ldg0lm5cfcf3ip7abnparaaviq8avs7cbnacs6nw8i1"; depends=[fossil mgcv plotrix sp vegan]; };
   KnowGRRF = derive2 { name="KnowGRRF"; version="1.0"; sha256="0nk0baibd184rsg23jx1wg4c2fcaqf8ww7822xrs3w5ym6vwd0rs"; depends=[MASS PRROC randomForest RRF]; };
   KoulMde = derive2 { name="KoulMde"; version="3.2.1"; sha256="0yx04my2vwjpi4l35h1i5xwqckca8b72divww39y1frcvia33g08"; depends=[expm Rcpp RcppArmadillo]; };
@@ -2424,7 +2434,7 @@ in with self; {
   L1mstate = derive2 { name="L1mstate"; version="1.0.1"; sha256="1nkx2h1fl32h0sx03f23x3sfxj5mnarbnpy0wmjji90chff7m2vz"; depends=[colorspace MASS Matrix mstate Rcpp RcppEigen]; };
   L1pack = derive2 { name="L1pack"; version="0.38.196"; sha256="1cayk11wp6f2vpyz14j7my8wpd8hny2mxpjsdsw4wlz0mmwml70l"; depends=[fastmatrix]; };
   L2DensityGoFtest = derive2 { name="L2DensityGoFtest"; version="0.2.0"; sha256="0658rxk25wg0r6rp6xzh6xhw9g39cnp05z9fay5k60mapifiz9vb"; depends=[fGarch kedd nor1mix]; };
-  LA = derive2 { name="LA"; version="0.1.2"; sha256="14fl7hj7az6p4h36gmxq068srj8aw46mdld8idy7yzplgxrzn4kw"; depends=[LHD]; };
+  LA = derive2 { name="LA"; version="0.1.3"; sha256="0yvgrm64g910h4zgavinj6ri5gvy5yjd3ydr9gqm7qdj05dsgz66"; depends=[LHD]; };
   LAGOSNE = derive2 { name="LAGOSNE"; version="2.0.2"; sha256="0fhy590mnkypknxk34c7vrhwrgsjrkf1f0yvfbjy1kvzvla0hjkl"; depends=[curl dplyr lazyeval magrittr memoise progress purrr qs rappdirs rlang sf stringr tibble tidyr]; };
   LAM = derive2 { name="LAM"; version="0.5-15"; sha256="18p8w2n2k4788vpxhdxnmcafwj7a5bvihk530fiynkra3xrn1cr4"; depends=[CDM Rcpp RcppArmadillo sirt]; };
   LANDD = derive2 { name="LANDD"; version="1.1.0"; sha256="13szkww9nw8zywfrqd8mwgj9csgragm0bx8ia52rcpakpc3hv3hx"; depends=[BH doParallel fdrtool foreach GGally ggplot2 GOSemSim GOstats igraph intergraph Matrix modeest mvtnorm pROC Rcpp]; };
@@ -2432,6 +2442,7 @@ in with self; {
   LARGB = derive2 { name="LARGB"; version="0.1.0"; sha256="0ksyagp4wy1rm7kll6rgdx2735k6ywlaf08d6yys9cv090rpc8l3"; depends=[dplyr imager]; };
   LARisk = derive2 { name="LARisk"; version="0.1.0"; sha256="05pszgm53dndq114qqb3kcddbvc16a9mgalxjsyh56aa2a4wh7q6"; depends=[Rcpp]; };
   LAWBL = derive2 { name="LAWBL"; version="1.4.0"; sha256="13drqwyg6avmsn3s2d521x1cvlqg85qv999lwnvnyszvz8grahcr"; depends=[coda MASS]; };
+  LBC = derive2 { name="LBC"; version="1.0"; sha256="027q5dk771a5v7g0il7kcczfyf6cqfb4vb3y0j7gwr02bq4360wm"; depends=[]; };
   LBSPR = derive2 { name="LBSPR"; version="0.1.6"; sha256="075wcjhvp90fj37ihrplnrc0vy8wpav5qivkw1rgv00fa8xj7pw0"; depends=[dplyr ggplot2 gridExtra plotrix RColorBrewer Rcpp shiny tidyr]; };
   LCA = derive2 { name="LCA"; version="0.1.1"; sha256="014kih33y8b9nls0pcigw68jbz7vgnq8w1xbwm2d37g1m5y6xlyw"; depends=[]; };
   LCAextend = derive2 { name="LCAextend"; version="1.3"; sha256="1l75y3vkbsmsm3pjd5pwy0hlv6gz5ryxs4pkx9aiyhxz2y9wnhpb"; depends=[boot kinship2 mvtnorm rms]; };
@@ -2470,12 +2481,13 @@ in with self; {
   LIM = derive2 { name="LIM"; version="1.4.6"; sha256="03x1gnm06bw1wrzc01110bjzd2mvjdzbc2mbrazh22jrmb32w5d8"; depends=[diagram limSolve]; };
   LINselect = derive2 { name="LINselect"; version="1.1.3"; sha256="1qxqwph5ja2kf1s4ggsv8w6hjgf9mr53a0gahhjix2v78309z42g"; depends=[elasticnet gtools MASS mvtnorm pls randomForest]; };
   LIStest = derive2 { name="LIStest"; version="2.1"; sha256="1gk253v3f1jcr4z5ps8nrqf1n7isjhbynxsi9jq729w7h725806a"; depends=[]; };
-  LKT = derive2 { name="LKT"; version="1.0"; sha256="1bpiszm88kx44mc8262x29idmmhhh7k39d213mi5vnap1744yb7i"; depends=[caret data_table glmnet glmnetUtils knitr LiblineaR lme4 Matrix pROC SparseM]; };
+  LKT = derive2 { name="LKT"; version="1.0.1"; sha256="1a3mpjzl04gp7688gaknp8la84ljsj49id06b5y6r51kyiqip6dv"; depends=[data_table glmnet glmnetUtils LiblineaR lme4 Matrix SparseM]; };
   LLM = derive2 { name="LLM"; version="1.1.0"; sha256="0kxppzaim7cmjawg5rjih4dsz8adq0asairgq3vx5lyjppb2cybx"; depends=[partykit reghelper RWeka scales stringr survey]; };
   LLSR = derive2 { name="LLSR"; version="0.0.3.1"; sha256="0nci8p3gw35a3ifwrq7r2jih718p2iwmmh3495qnh0fk304y7kbi"; depends=[crayon digest dplyr ggplot2 minpack_lm nleqslv openxlsx rootSolve svDialogs svglite]; };
   LMERConvenienceFunctions = derive2 { name="LMERConvenienceFunctions"; version="3.0"; sha256="0jg889qh5a9wdi01yiw6z7kivs9dzh5dcq39f4zifdpqzglhshzb"; depends=[fields LCFdata lme4 Matrix mgcv]; };
   LMMELSM = derive2 { name="LMMELSM"; version="0.1.0"; sha256="1wrda19629k7fg3rryk9sf16h1w5915cifv7iiqqg64k8w1vwnaj"; depends=[BH Formula loo MASS nlme Rcpp RcppEigen rstan rstantools StanHeaders]; };
-  LMMstar = derive2 { name="LMMstar"; version="0.3.3"; sha256="169pxlga9gnms4hlpv9y65pvl1ldnpc3d0pwry443lby4anx9isj"; depends=[emmeans ggplot2 lava Matrix multcomp nlme numDeriv reshape2 sandwich]; };
+  LMMsolver = derive2 { name="LMMsolver"; version="1.0.0"; sha256="0ri89i5q3026ambm1zk24adi0jf22wb9assklwsqzz2kmh54k282"; depends=[agridat ggplot2 maps Matrix Rcpp sp spam]; };
+  LMMstar = derive2 { name="LMMstar"; version="0.4.0"; sha256="0l5rjsz3yahhwnnw0xh6cj1i6vk6d0ishbp8i2p8hzxn8f85rswd"; depends=[emmeans ggplot2 lava Matrix multcomp nlme numDeriv reshape2 sandwich]; };
   LMest = derive2 { name="LMest"; version="3.0.2"; sha256="0x80cgd54qw1l4wayxwyyccmajn5i227727wlsgm6s4chnpvispz"; depends=[diagram Formula MASS mclust mix MultiLCIRT mvtnorm scatterplot3d]; };
   LMfilteR = derive2 { name="LMfilteR"; version="0.1.3"; sha256="0c27154jghfl83n3sn26pr8mjcybrq02glvnjcx8hllrmz4gmnmi"; depends=[MASS]; };
   LMoFit = derive2 { name="LMoFit"; version="0.1.6"; sha256="10xiaa5h8c0sq9z70yjs29z8jnjyqgybdv33d6s2100h3n46jd31"; depends=[ggplot2 lmom pracma sf]; };
@@ -2527,6 +2539,7 @@ in with self; {
   LWFBrook90R = derive2 { name="LWFBrook90R"; version="0.4.4"; sha256="1jvyfk52gcq3dl8fws652ffwdp0gadrkmcd0n6b0z4r1flrfmaph"; depends=[data_table doFuture foreach future iterators progressr vegperiod]; };
   LZeroSpikeInference = derive2 { name="LZeroSpikeInference"; version="1.0.3"; sha256="15x29afaq13iwlj66h97k3kczg9rfgp6i9d76rji58hfgh8i8by6"; depends=[]; };
   LaF = derive2 { name="LaF"; version="0.8.4"; sha256="1mj010bl4ql0hm33vl0dd08s9dab11y9fa32nsqs6kbb22gjzk6p"; depends=[Rcpp]; };
+  LabApplStat = derive2 { name="LabApplStat"; version="1.4.3"; sha256="12brjwd0hazc3s69wjybmfvapslcx87npa647hlrcfjxzg46x9ar"; depends=[emmeans ggplot2 ggraph]; };
   LabRS = derive2 { name="LabRS"; version="0.1.0"; sha256="1a9qafimia83qldsif5wfqx273mvqbx22p5i0hg8n4jvj4vzpy2w"; depends=[knitr]; };
   LabourMarketAreas = derive2 { name="LabourMarketAreas"; version="3.2.5"; sha256="1fhr677mp7dp18q9yvqycsmyqvqh007y3pc8r500n2axiczjzkqg"; depends=[data_table maptools rgdal rgeos sp spdep]; };
   LadR = derive2 { name="LadR"; version="1.0.6"; sha256="14n58y1p14wwxwwrbdqv2kkplma8ficpqx8nd22qp931idijpsji"; depends=[L1pack]; };
@@ -2601,7 +2614,7 @@ in with self; {
   LowRankQP = derive2 { name="LowRankQP"; version="1.0.4"; sha256="0cg8f42s15vphnifw6gnrhxaj6j5hmgbq8xki5mkwjsizd0ch5na"; depends=[]; };
   LowWAFOMNX = derive2 { name="LowWAFOMNX"; version="1.1.1"; sha256="0f75qsv6pisgvk39yagzfxscnyfsgh63rmhp4gpybpl0pqmjp48x"; depends=[Rcpp RSQLite]; };
   LowWAFOMSobol = derive2 { name="LowWAFOMSobol"; version="1.1.1"; sha256="1ym3i2m1am356di9lcp5nfmxq0np3c4bwsv6bbmf7hg02j7dhwi4"; depends=[Rcpp RSQLite]; };
-  Luminescence = derive2 { name="Luminescence"; version="0.9.15"; sha256="0mjzrq5qpkyswvgjf3bw24vjhqw94d06blc3c1fhr8pq8vglms6q"; depends=[bbmle data_table DEoptim httr lamW matrixStats minpack_lm plotrix raster Rcpp RcppArmadillo readxl shape XML zoo]; };
+  Luminescence = derive2 { name="Luminescence"; version="0.9.16"; sha256="0ia88l8p601fq01qfjwypwynvij07bysmk6bglis7h6cvkbxbkip"; depends=[bbmle data_table DEoptim httr lamW matrixStats mclust minpack_lm plotrix raster Rcpp RcppArmadillo readxl shape XML zoo]; };
   M2SMF = derive2 { name="M2SMF"; version="2.0"; sha256="160qjrb3mxybvr4z6zra6rzf6scyrb9mplw36gqlfxj418ndnmm1"; depends=[dplyr MASS]; };
   M2SMJF = derive2 { name="M2SMJF"; version="1.0"; sha256="0v4sg5h3h2pjp996jspv206c8cymjpn1fg38ivaw12s7bmx8j409"; depends=[dplyr MASS]; };
   M3 = derive2 { name="M3"; version="0.3"; sha256="1l40alk166lshckqp72k5zmsgm7s5mgyzxlp11l64mgncjwkw2r3"; depends=[mapdata maps ncdf4 rgdal]; };
@@ -2609,7 +2622,7 @@ in with self; {
   MABOUST = derive2 { name="MABOUST"; version="1.0.1"; sha256="044k29nibl5zc32zz2696kbhrz5dafgaikgmjqznsq25p48si453"; depends=[Rcpp RcppArmadillo]; };
   MACER = derive2 { name="MACER"; version="0.1.1"; sha256="006f15s75hnyacc31ni4gf1r4j32hlv5bqmnnl9fkcgf9jxs9hw4"; depends=[ape httr rentrez]; };
   MADPop = derive2 { name="MADPop"; version="1.1.2"; sha256="0hwnkjrc3w9x3gha0y70fidfc587b6gfdhzwzdzrfvxrhsdy05yd"; depends=[BH Rcpp RcppEigen rstan StanHeaders]; };
-  MAGEE = derive2 { name="MAGEE"; version="1.0.0"; sha256="1zrvkbqv1pzcm78xn7wdqw480iwd2vb2kidh2siqny2ahfab6440"; depends=[CompQuadForm foreach GMMAT MASS Matrix Rcpp RcppArmadillo SeqArray SeqVarTools]; };
+  MAGEE = derive2 { name="MAGEE"; version="1.0.1"; sha256="09csg35kmq8i5hg8vpnjsss1h007kznkysb38jkhzcps5j9hxccx"; depends=[CompQuadForm foreach GMMAT MASS Matrix Rcpp RcppArmadillo SeqArray SeqVarTools]; };
   MAGNAMWAR = derive2 { name="MAGNAMWAR"; version="2.0.4"; sha256="1asr18byrgy6bkpxpmnkczgr3dam6ymf30lw6izq112krc891bg4"; depends=[ape coxme doParallel dplyr foreach iterators lme4 multcomp plyr qqman seqinr survival]; };
   MAINT_Data = derive2 { name="MAINT.Data"; version="2.6.2"; sha256="0c2llzjhrv1jn5zna654bjgyq5q0hqwzfv9kda9mfjf20pfc34my"; depends=[GGally ggplot2 MASS mclust miscTools pcaPP Rcpp RcppArmadillo robustbase rrcov sn withr]; };
   MALDIquant = derive2 { name="MALDIquant"; version="1.20"; sha256="1h9i158czlzwbn5zakkqd2ggc9g90r73vdspmp6kgfcmy9frvwzz"; depends=[]; };
@@ -2728,6 +2741,7 @@ in with self; {
   MIIPW = derive2 { name="MIIPW"; version="0.1.0"; sha256="05l75pr81fv7b7w24mhvww5c49211bnxvksvy7kiwypc592zwjqk"; depends=[matlib R2jags]; };
   MIIVsem = derive2 { name="MIIVsem"; version="0.5.8"; sha256="1qb1xrxhgj6b0l24spbp80f0rm8v41bqsdachqjhsacq2lgga259"; depends=[boot car lavaan Matrix numDeriv]; };
   MILC = derive2 { name="MILC"; version="1.0"; sha256="14xsiw5al6kixwvf3ph0dlm8s13gsbqvzb92da6ng3x4iiyb1g0w"; depends=[]; };
+  MIMSunit = derive2 { name="MIMSunit"; version="0.11.1"; sha256="12jxdcahja9p84ym1zbhgjz3yh1nclbnvnjg7ns2gmipsa73yhxp"; depends=[caTools dplyr dygraphs ggplot2 lubridate magrittr matlab plyr R_utils RColorBrewer readr shiny signal stringr tibble xts]; };
   MINTplates = derive2 { name="MINTplates"; version="1.0.1"; sha256="1jj51314p2ni3f3ncpd8gp7pgshhsp97ic123d732sc9xr0h5rnr"; depends=[]; };
   MIPHENO = derive2 { name="MIPHENO"; version="1.2"; sha256="0hcaq66biv4izszdhqkgxgz91mgkjk1yrwq27fx07a2zmzj44sfv"; depends=[doBy gdata]; };
   MIRES = derive2 { name="MIRES"; version="0.1.0"; sha256="17k6f73qx85klhhn247nr6h7sinpabq9crlc5ag7qm6z7k6mr370"; depends=[BH cubature dirichletprocess Formula HDInterval logspline mvtnorm nlme pracma Rcpp RcppEigen rstan rstantools StanHeaders truncnorm]; };
@@ -2736,6 +2750,7 @@ in with self; {
   MImix = derive2 { name="MImix"; version="1.0"; sha256="033gxr0z2xba0pgckiigblb1xa94wrfmpgv3j122cdynjch44j4r"; depends=[]; };
   MInt = derive2 { name="MInt"; version="1.0.1"; sha256="1nk02baainxk7z083yyajxrnadg2y1dnhr51fianibvph1pjjkl6"; depends=[glasso MASS testthat trust]; };
   MKLE = derive2 { name="MKLE"; version="0.05"; sha256="00hcihjn3xfkzy0lvb70hl2acjkwk6s3y7l4gprix24shnblvxzi"; depends=[]; };
+  MKMeans = derive2 { name="MKMeans"; version="1.0"; sha256="1i0p2mvgvdk37y7sidmshg8214z859i5fy6ly0p92shzdg8q5m9l"; depends=[]; };
   MKclass = derive2 { name="MKclass"; version="0.3"; sha256="0sw0h99k24418iqvvq247kg5558y9mgashr5amay7gbf2va79v6j"; depends=[]; };
   MKdescr = derive2 { name="MKdescr"; version="0.7"; sha256="056gp5fig8l4wgv3hzphr5q81z1zi6x88abc4kzgg8f1ljpn37xf"; depends=[ggplot2 scales]; };
   MKinfer = derive2 { name="MKinfer"; version="0.6"; sha256="13ga5pwlnlm28dm6nxg4ccc7br51jg7wvwp61sx31yvzgr5m45ld"; depends=[arrangements boot ggplot2 MKdescr nlme]; };
@@ -2828,7 +2843,8 @@ in with self; {
   MRsurv = derive2 { name="MRsurv"; version="0.2"; sha256="148myzk6r8whkpv1yv59dmdlr2n8vdwmaww165aw696xfjxwq550"; depends=[mvtnorm survival]; };
   MSCMT = derive2 { name="MSCMT"; version="1.3.4"; sha256="1vh0i9nxqiy3qdnb7z7cn5kpp2jahdmaqpnv7q5650pkswhwmfpc"; depends=[ggplot2 lpSolve lpSolveAPI Rdpack Rglpk]; };
   MSCquartets = derive2 { name="MSCquartets"; version="1.1.0"; sha256="1rik3ma537qkj63j5v0gcf6g3qi68z49w21z96mm88b7nq15xpjh"; depends=[ape doParallel foreach phangorn RandomFieldsUtils Rdpack zipfR]; };
-  MSEtool = derive2 { name="MSEtool"; version="3.2.0"; sha256="0xlbq5c32dhv610van59w3kdk7vhpsc8g6s8xsv0pjglz7z4j1hv"; depends=[abind dplyr ggplot2 Rcpp RcppArmadillo snowfall]; };
+  MSCsimtester = derive2 { name="MSCsimtester"; version="0.0.9"; sha256="02zlyb3lzi4w4dqnzhdiivqsqrm4z1l4ziy2vs13vxygm2g0mn1k"; depends=[ape kSamples Rdpack]; };
+  MSEtool = derive2 { name="MSEtool"; version="3.3.0"; sha256="0sgiwfjc24c49w4vblasy84clgwjgzcgii1fi4jkc940k6vcz4kf"; depends=[abind dplyr ggplot2 Rcpp RcppArmadillo snowfall]; };
   MSG = derive2 { name="MSG"; version="0.8"; sha256="178209p30fmh3c03w8iakz306h2xswcj4ffxg1s9s8md156rbj7s"; depends=[RColorBrewer]; };
   MSGARCH = derive2 { name="MSGARCH"; version="2.42"; sha256="1n5fvj6yx8sfi1vizw89410hc0d37w8mpqfsksdv01pgnfdcs11a"; depends=[coda expm fanplot MASS numDeriv Rcpp RcppArmadillo zoo]; };
   MSGARCHelm = derive2 { name="MSGARCHelm"; version="0.1.0"; sha256="172xpvs98b9ay44ffb8bp9k4zsjzhy92pp7bv3d1j186pqhl13ib"; depends=[forecast MSGARCH nnfor]; };
@@ -2882,12 +2898,13 @@ in with self; {
   ManyTests = derive2 { name="ManyTests"; version="1.2"; sha256="1mi7wvnkcd95126f1h8vl8skn397yd2zqvcswprqar54p161wgyi"; depends=[]; };
   Map2NCBI = derive2 { name="Map2NCBI"; version="1.4"; sha256="1ssqnm9g5p0nnhdyp9dqbbsz3hw8jzdwy0rv3csp8fxm0f1bi1kb"; depends=[rentrez]; };
   MapGAM = derive2 { name="MapGAM"; version="1.2-5"; sha256="0ardqsa7smx0syh1l591bm6a1rb7kvcyw3rlb3hkfk8rk4k60qmr"; depends=[colorspace gam maptools sp survival]; };
+  MapeBay = derive2 { name="MapeBay"; version="0.1.0"; sha256="1w1lpnm8fd5gmv4ggrlmkaaj45wyx3yclx3fb2mdrp7iyg4rx34c"; depends=[BH broom car dplyr DT heplots highcharter htmltools MANOVA_RM moments MultBiplotR MVN mvnormtest nortest purrr Rcpp RcppEigen RcppParallel reshape rstan rstantools shiny shinycssloaders shinydashboard shinydashboardPlus StanHeaders stringr tibble vegan waiter]; };
   Mapinguari = derive2 { name="Mapinguari"; version="1.0.0"; sha256="1jfqinfr6wkpmkp4jm9ixgawcywm3n1ni03h6zngvx74saz7kd3g"; depends=[dplyr magrittr raster rgdal rlang stringr testthat]; };
   MareyMap = derive2 { name="MareyMap"; version="1.3.6"; sha256="0zbg72vck9p14zk1924407n5ap84qiisqhbq1vr715sw67fwdcxi"; depends=[]; };
   MargCond = derive2 { name="MargCond"; version="1.0.0"; sha256="07qh1lgy8ds11cwlb4rxkl6aiph91zq29sy27b8wwxalycdgjrg8"; depends=[gee lme4 MASS Matrix]; };
   MarginalMediation = derive2 { name="MarginalMediation"; version="0.7.0"; sha256="0jwp8rzv0ghir8k7dfmfrq4rvcqf7xww6va16p3jj2nk3r9hiq0x"; depends=[betareg boot cli crayon furniture magrittr purrr rstudioapi stringr tibble]; };
   MarketMatching = derive2 { name="MarketMatching"; version="1.2.0"; sha256="075maishssvjrx0jfmxcfiv2rlhnm0c4dnp6ija3bn5z80i6z91m"; depends=[Boom bsts CausalImpact doParallel dplyr dtw foreach ggplot2 iterators reshape2 scales tidyr utf8 zoo]; };
-  Markovchart = derive2 { name="Markovchart"; version="2.1.3"; sha256="1ypng3r8342hcl505hrn8irjjh98sdravfrf1nml1sqym72gfzqc"; depends=[doParallel foreach ggplot2 metR optimParallel]; };
+  Markovchart = derive2 { name="Markovchart"; version="2.1.4"; sha256="12wbirvz90k6aak3dijn0dq3x8gxz7842n4nrgxkd2d0szysrciq"; depends=[doParallel foreach ggplot2 metR optimParallel]; };
   MarkowitzR = derive2 { name="MarkowitzR"; version="1.0.2"; sha256="0p234zs7lvi83fv02mijrhp7hmr5cklddayb61krhx1h2hn4gzb9"; depends=[gtools matrixcalc]; };
   MaskJointDensity = derive2 { name="MaskJointDensity"; version="1.0"; sha256="0nxhsz57cw96in0sg5xg7sicv920kcnxr2rikn39y2qk4vrw6r78"; depends=[ks MASS np plyr]; };
   Massign = derive2 { name="Massign"; version="1.1.0"; sha256="09i32lsrx40rxrnb9alfipfrkipy4mza5nr4gcpn2a5h86ak9290"; depends=[]; };
@@ -2895,7 +2912,7 @@ in with self; {
   MatManlyMix = derive2 { name="MatManlyMix"; version="1.1.1"; sha256="1d2vd5b9lirdybjclxh0nn4mghq64qjj4l8vnj95cni5pfa18a2c"; depends=[]; };
   MatSkew = derive2 { name="MatSkew"; version="0.1.5"; sha256="019v2b1r0bvw84xs50smjb3jdz7gd2adz5d84xd8zq43lnml96d1"; depends=[]; };
   MatTransMix = derive2 { name="MatTransMix"; version="0.1.15"; sha256="1s2wmhiqn024x9l217xak3wp3dbd3mfrih70xc5mc1b4555f2fbm"; depends=[mvtnorm]; };
-  MatchIt = derive2 { name="MatchIt"; version="4.3.0"; sha256="0ijlv2gggxc6b9k0zcbni1dass1n4b312w66rgafn6bw3aw7m2fa"; depends=[backports Rcpp RcppProgress]; };
+  MatchIt = derive2 { name="MatchIt"; version="4.3.2"; sha256="1fw1lb3w27652bvy612f9c09dzb02w3nrjzr1gn3svkldsaic4bg"; depends=[backports Rcpp RcppProgress]; };
   MatchLinReg = derive2 { name="MatchLinReg"; version="0.7.3"; sha256="1si0zn6vlgyj08841hfjx8an96a8ipnawl4zbalabmpy7r5bfwx8"; depends=[Hmisc Matching]; };
   MatchThem = derive2 { name="MatchThem"; version="1.0.1"; sha256="1g3vzbxrbmgmxlnn6i2i1wdk949i547ywgxcw05na71kc1nvwvfd"; depends=[MatchIt mice rlang survey WeightIt]; };
   Matching = derive2 { name="Matching"; version="4.9-11"; sha256="123np8gwjrbmkl65kj7qfa52i9msnkjyhvj4pwwqh5mkca2clw8w"; depends=[MASS]; };
@@ -2911,8 +2928,9 @@ in with self; {
   MaxPro = derive2 { name="MaxPro"; version="4.1-2"; sha256="19a2wp93kx1wkbzd5bvljbm1rr96gr14w4fb0ppbgr2y2a4g8i1v"; depends=[nloptr]; };
   MaxSkew = derive2 { name="MaxSkew"; version="1.1"; sha256="0x5x0jpvhp189jnmgh6d1h3ya0dicj5qfcrgr2fhp1v8jjhl125m"; depends=[]; };
   MaxentVariableSelection = derive2 { name="MaxentVariableSelection"; version="1.0-3"; sha256="1cmxfdkm5k85b4ivlfy5521hkfj0gq2pb1qlxxklh0fprw87kp9c"; depends=[ggplot2 raster]; };
-  MazamaCoreUtils = derive2 { name="MazamaCoreUtils"; version="0.4.9"; sha256="0438gdgx940455qh4p8x0l43gla6vnyp1ylp47c4rdx8gz890g6q"; depends=[devtools digest dplyr futile_logger lubridate magrittr purrr rlang rvest stringr tibble xml2]; };
-  MazamaLocationUtils = derive2 { name="MazamaLocationUtils"; version="0.2.0"; sha256="00gzwmz0jvkf2khwjha4n6xylwl2iqbz7a4wm06mhqj179sf9v6q"; depends=[digest dplyr geodist httr jsonlite leaflet lubridate magrittr MazamaCoreUtils MazamaSpatialUtils readr rlang sp stringr]; };
+  MaximinInfer = derive2 { name="MaximinInfer"; version="1.0.0"; sha256="1m6xb4blpahgm7b4h96rdg2qakgn893sfjk45flxnvn8gipbwlrh"; depends=[CVXR glmnet intervals MASS SIHR]; };
+  MazamaCoreUtils = derive2 { name="MazamaCoreUtils"; version="0.4.10"; sha256="0085miwwda387k33hf6l8p3f0pp8714nq0whzmf89l3yn932ai33"; depends=[devtools digest dplyr futile_logger lubridate magrittr purrr rlang rvest stringr tibble xml2]; };
+  MazamaLocationUtils = derive2 { name="MazamaLocationUtils"; version="0.2.7"; sha256="12ghd0h9127isbxkaapnl94r2snfpa8dcmp9j9h51knfqjaj6qmw"; depends=[digest dplyr geodist httr jsonlite leaflet lubridate magrittr MazamaCoreUtils MazamaSpatialUtils readr rlang stringr]; };
   MazamaRollUtils = derive2 { name="MazamaRollUtils"; version="0.1.3"; sha256="1433xy64n3wpxg9d0jlwdfp8hlvmq0ndg3fv6kfxq3pasm600jgc"; depends=[Rcpp]; };
   MazamaSpatialPlots = derive2 { name="MazamaSpatialPlots"; version="0.1.2"; sha256="1gkxq6lnvdv24nvc34fmxz4qilzljxcls1lq29a5ag67dffz7kcj"; depends=[dplyr magrittr MazamaCoreUtils MazamaSpatialUtils rlang sf sp tmap]; };
   MazamaSpatialUtils = derive2 { name="MazamaSpatialUtils"; version="0.7.6"; sha256="07qr6cwa29brsp567vjhfv8pkqijxhhz98bxvagrpjj5gbx1179s"; depends=[cleangeo countrycode dplyr magrittr MazamaCoreUtils rgdal rgeos rlang rmapshaper sp stringr]; };
@@ -2924,6 +2942,7 @@ in with self; {
   MedSurvey = derive2 { name="MedSurvey"; version="1.1.1.3.0"; sha256="11lkli2arl5w2aizzd93fb6xsy30000nf3qc08qirrm07rwypaly"; depends=[lavaan Matrix survey]; };
   MediaK = derive2 { name="MediaK"; version="1.0"; sha256="19cmxl2wksw9kvjsfn1m4nkr5gpcx6bk0sqrabj1n0dla1l32v2a"; depends=[Rcpp RcppEigen]; };
   Mediana = derive2 { name="Mediana"; version="1.0.8"; sha256="0j1ikc2iaxl70134v0gijj2i2g0xgjafvn8rc108r9fhm8rpw564"; depends=[doParallel doRNG foreach MASS mvtnorm survival]; };
+  MedianaDesigner = derive2 { name="MedianaDesigner"; version="0.6"; sha256="01xp0zaiyka033kvi7jdqfibvcl6x1fi2i56z73sn8v2mdyks1qn"; depends=[devEMF flextable mvtnorm officer Rcpp RcppEigen RcppNumerical shiny shinydashboard shinyMatrix]; };
   MendelianRandomization = derive2 { name="MendelianRandomization"; version="0.5.1"; sha256="1qi5v4m19025zcigl6wxmj3vi6zjlzgsm6cj75kywq2qabrzk2fw"; depends=[ggplot2 glmnet iterpc knitr Matrix plotly quantreg rjson rmarkdown robustbase]; };
   Mercator = derive2 { name="Mercator"; version="1.1.1"; sha256="0jg5dm65smq67k35p8acqd5kdsv7py8plaamagbsc84617r0iaik"; depends=[ClassDiscovery cluster dendextend flexmix igraph KernSmooth kohonen Polychrome Rtsne Thresher umap]; };
   MetABEL = derive2 { name="MetABEL"; version="0.2-0"; sha256="0rqjv85mgswrbbp8b8ip6cdmz0cvfy9lm5mcr8a7h38rzgx3g3i3"; depends=[]; };
@@ -2954,7 +2973,7 @@ in with self; {
   Metatron = derive2 { name="Metatron"; version="0.1-1"; sha256="0apz2k3za19px1bcg4ls0axaljrpxnqhs86b6s862c370sspc1x8"; depends=[lme4 Matrix mpt]; };
   Meth27QC = derive2 { name="Meth27QC"; version="1.1"; sha256="0ad30svs2kjzmmyvcm0jmv64iyq7slp1x1xl35h2rv1b6zbd4658"; depends=[gplots]; };
   MethComp = derive2 { name="MethComp"; version="1.30.0"; sha256="1vmwb4zw4gm2x0j2nzm2vjfj7x19ws8njr6dcglzjpbbha7nxjp6"; depends=[coda nlme rjags]; };
-  MethodCompare = derive2 { name="MethodCompare"; version="0.1.0"; sha256="0zl20v8k8bhn3skbpzdiglywrqghwf0r42q2jn8zmq4x0drvjzpl"; depends=[nlme]; };
+  MethodCompare = derive2 { name="MethodCompare"; version="0.1.1"; sha256="1akp4azjnia142bdjjdfaj55jipmrcbwcy3jx27l765biaqws97c"; depends=[nlme]; };
   Methplot = derive2 { name="Methplot"; version="1.0"; sha256="0aaqss9zfn55qi45jffxkksnkw510npjnkygafx49vl77bkagqh5"; depends=[ggplot2 reshape]; };
   MethylCapSig = derive2 { name="MethylCapSig"; version="1.0.1"; sha256="16ch9aldr6a9jn42h387n7qvnzs0yx28f2yj6xq0kp476q7rf4ql"; depends=[geepack]; };
   Metrics = derive2 { name="Metrics"; version="0.1.4"; sha256="0fh8qbjlwzagh272lgwr4bxcqcjb1qpz53mgs8rzlvncax6nk5bk"; depends=[]; };
@@ -2971,6 +2990,7 @@ in with self; {
   MicroMacroMultilevel = derive2 { name="MicroMacroMultilevel"; version="0.4.0"; sha256="1q5cyqr4hdl1wp2isk6p4p084i83kg6hd406wdp1nj9lv5i0xvgw"; depends=[]; };
   MicroNiche = derive2 { name="MicroNiche"; version="1.0.0"; sha256="166ci4crkwnnh05rhs5hyrljgm4cdf7gp0ff8kjxjmd60byw80mz"; depends=[ggplot2 reshape2]; };
   MicroSEC = derive2 { name="MicroSEC"; version="1.1.3"; sha256="1imdxm15f792xw5kc9lhry5jsw739j6y3f2fs64abj22hqxfwypi"; depends=[BiocGenerics Biostrings data_table dplyr GenomeInfoDb GenomicAlignments gtools magrittr openxlsx R_utils Rsamtools stringr tidyr]; };
+  MicrobiomeStat = derive2 { name="MicrobiomeStat"; version="1.0"; sha256="1pi1lvy6lqdm3niw69p6j86z1nbix4bc1846rz06qfss0s5yas0q"; depends=[foreach ggplot2 ggrepel lmerTest MASS Matrix matrixStats modeest statmod]; };
   Microsoft365R = derive2 { name="Microsoft365R"; version="2.3.2"; sha256="1qc4716mvkfvxwkzjihf00my6y4va3day3lnh5iwpb5k9kgrnhgm"; depends=[AzureAuth AzureGraph curl httr jsonlite mime R6 vctrs]; };
   MinBAR = derive2 { name="MinBAR"; version="1.1.2"; sha256="099afazil0gfs5yq92clc7ahis5azyvlql4zs7fhp82v9m6b80qj"; depends=[dismo ecospat geosphere lattice latticeExtra maxnet raster rgdal sp]; };
   MinEDfind = derive2 { name="MinEDfind"; version="0.1.3"; sha256="1y0iv92mp7hf14vrj54qd0yvmjrv52jv3vg25kc5q7pml63njkqa"; depends=[ggplot2 gridExtra Iso]; };
@@ -2982,21 +3002,22 @@ in with self; {
   MixAll = derive2 { name="MixAll"; version="1.5.1"; sha256="1jsh29ygy1n7lbz93ks725li9hnvfa0kp1qik13m72nmgw7g7q5a"; depends=[Rcpp rtkore]; };
   MixGHD = derive2 { name="MixGHD"; version="2.3.6"; sha256="0vx32ay7r8d22j53fsi6ff8l2zg97524dy7ir59ldafjfn15nc7k"; depends=[Bessel cluster e1071 ghyp MASS mixture mvtnorm numDeriv]; };
   MixMAP = derive2 { name="MixMAP"; version="1.3.4"; sha256="0gxghym5ghbyxf589hda2fhv5l3x5jvm6i40x5xdwx4hadcn8k9a"; depends=[lme4]; };
-  MixMatrix = derive2 { name="MixMatrix"; version="0.2.4"; sha256="1bmd99p98brp8nzqhf442py2hmdj2vnzn15qwhrdskh6i0gzaqc4"; depends=[CholWishart Rcpp RcppArmadillo]; };
+  MixMatrix = derive2 { name="MixMatrix"; version="0.2.6"; sha256="007vx59v5h3pfawg6slqgbs3b8dvbhcfh4cvasfydidiiyaggjdc"; depends=[CholWishart Rcpp RcppArmadillo]; };
   MixOptim = derive2 { name="MixOptim"; version="0.1.2"; sha256="14blyb1dqbdb14rby4nrggpqdx6b43lbb2xwi3059biq9mrj3a2x"; depends=[desirability ggplot2 patchwork rlang]; };
   MixRF = derive2 { name="MixRF"; version="1.0"; sha256="1av1wx7wmfc3z8a4bc6g3i3b807nc28n3s2rs3yh0rcwq1pfl0ir"; depends=[doParallel foreach lme4 randomForest]; };
   MixSAL = derive2 { name="MixSAL"; version="1.0"; sha256="15dymyzfs3bwskaf6xndj291g6nhw7k1q93y1cba55a6fdjh5qz9"; depends=[MASS]; };
   MixSIAR = derive2 { name="MixSIAR"; version="3.1.12"; sha256="07wiv7x2c9mhqk37zndxvdb76m9shizc48qz2bp2f4g5z9hciid7"; depends=[bayesplot coda ggmcmc ggplot2 lattice loo MASS MCMCpack R2jags RColorBrewer reshape reshape2 splancs]; };
-  MixSim = derive2 { name="MixSim"; version="1.1-4"; sha256="0nwgp2pmyza3l77y6div9fkdw6w3m8dbl28crv9yhdc9rpw1xlfp"; depends=[MASS]; };
+  MixSim = derive2 { name="MixSim"; version="1.1-5"; sha256="16l27y8wgy44zpavl3as0qdm1csjrmh2iy7idd2j6l8cba8z2l0i"; depends=[MASS]; };
   MixTwice = derive2 { name="MixTwice"; version="1.1"; sha256="1vzy31aaxyfr28xsk9358laqg429lnrkxdmm63maz15wcbxha9zq"; depends=[alabama ashr fdrtool]; };
   MixedIndTests = derive2 { name="MixedIndTests"; version="0.1.5"; sha256="1vlkpm1qx3mh3c08d0hwyzdap8s8kpdiiik49yphgmqgb8xg7i9n"; depends=[doParallel foreach ggplot2 survey]; };
   MixedPoisson = derive2 { name="MixedPoisson"; version="2.0"; sha256="0g5mpzj0wda6g46q3cg5mm3x4dvpz9gdclzn2m17l62lzny2i10p"; depends=[gaussquad MASS Rmpfr]; };
-  MixedPsy = derive2 { name="MixedPsy"; version="1.0.0"; sha256="19cgw82jdkcpkca90bab1k5gcb2prlxm634n4m7yx0p0mj736fha"; depends=[beepr boot brglm lme4 Matrix mnormt]; };
+  MixedPsy = derive2 { name="MixedPsy"; version="1.1.0"; sha256="1iz3cl19xlznzbqxvichbjhyhams4v9611p9094r6q5fpmf71p88"; depends=[beepr boot brglm ggplot2 lme4 Matrix mnormt]; };
   MixedTS = derive2 { name="MixedTS"; version="1.0.4"; sha256="0gwcg115idbcm5llgzqsygvqgshq8dywawxkaddsmw4sbbhj4555"; depends=[MASS]; };
-  MixfMRI = derive2 { name="MixfMRI"; version="0.1-1"; sha256="0nqsvfr28m510gqwcv0s2b94k42m7m6s7ffsjxn6kxikh5p3y6gz"; depends=[EMCluster fftw MASS Matrix MixSim RColorBrewer]; };
+  MixfMRI = derive2 { name="MixfMRI"; version="0.1-2"; sha256="1ngqn2chjii94f7413ydbzmws083mp0hc5ys3lwi2mgqqmpi3pah"; depends=[EMCluster fftw MASS Matrix MixSim RColorBrewer]; };
   MixtureInf = derive2 { name="MixtureInf"; version="1.1"; sha256="12qcflmrpzh4w5b40xq5qicks6p0cwqpf5k84pwabkjb168afddv"; depends=[quadprog]; };
   MixtureMissing = derive2 { name="MixtureMissing"; version="1.0.0"; sha256="1sqpv8ysn0y28x8pbz75lqc066sdbpmfmxzb1q39aa83siysc06q"; depends=[cluster ContaminatedMixt GGally ggplot2 mnormt mvtnorm rootSolve]; };
   MixtureRegLTIC = derive2 { name="MixtureRegLTIC"; version="1.0.0"; sha256="052gyk4gqv49fa2rxbxnib29f1vjxiw4q8llkfhsv8kw5pw38699"; depends=[]; };
+  MoBPS = derive2 { name="MoBPS"; version="1.6.64"; sha256="12czwx362pn0crj047rqb9ambl1fw73k474i7vcxhz53kbw21wj0"; depends=[]; };
   MoEClust = derive2 { name="MoEClust"; version="1.4.1"; sha256="0k9mrwd2khz5mi4bg7dk6m7xh1jqkkf1y9v3qqmhbx0y88r4fmhs"; depends=[lattice matrixStats mclust mvnfast nnet vcd]; };
   MoLE = derive2 { name="MoLE"; version="1.0.1"; sha256="0bq19vwqjn5hl4mw5imkydbp39gal992vnh2dwrq8bb8cmj3qh91"; depends=[]; };
   MoMPCA = derive2 { name="MoMPCA"; version="1.0.1"; sha256="1snixlq35xbzf005d877i493sf1wm48jqlq9515yl1s6lxmav1n7"; depends=[doParallel dplyr foreach magrittr Matrix slam tm topicmodels]; };
@@ -3024,6 +3045,7 @@ in with self; {
   MonteCarlo = derive2 { name="MonteCarlo"; version="1.0.6"; sha256="1jwq3by8zfy6sbzahcj5l0vicqn7yyqpb7xhfsaymfspm7xyq6pj"; depends=[abind codetools reshape rlecuyer snow snowfall]; };
   MonteCarloSEM = derive2 { name="MonteCarloSEM"; version="0.0.3"; sha256="1kamhwqw3px5l4pz50zksfsfhjv03wc31xi8v6fl6h9xxmvw52gd"; depends=[lavaan Matrix]; };
   Morpho = derive2 { name="Morpho"; version="2.9"; sha256="1gsns3ab9x24czl53p15cja9vw881iwnhc0ix50i8vzkx184wsib"; depends=[bezier colorRamps doParallel foreach jsonlite MASS Matrix Rcpp RcppArmadillo rgl Rvcg]; };
+  MorphoTools2 = derive2 { name="MorphoTools2"; version="0.9.0"; sha256="0y7vhqa272bjqy5fbdy0cgawgghvds7czz8v790nkg8hkra557wl"; depends=[ade4 candisc car class ellipse fpc heplots MASS plot3D StatMatch vegan]; };
   MorseGen = derive2 { name="MorseGen"; version="1.2"; sha256="1kq35n00ky70zmxb20g4mwx0hn8c5g1hw3csmd5n6892mbrri8s9"; depends=[]; };
   MortCast = derive2 { name="MortCast"; version="2.6-1"; sha256="0w7fd5n3wafix4l29svnja0l675pdpj64vgh113mzsn08h3kpwid"; depends=[wpp2017]; };
   MortalityGaps = derive2 { name="MortalityGaps"; version="1.0.0"; sha256="0nfm8xa7gnshrl8hsvmvr3za8nbppp7f7i5h4ni204w7xwvh8jxc"; depends=[crch forecast MASS pbapply]; };
@@ -3047,6 +3069,7 @@ in with self; {
   MultNonParam = derive2 { name="MultNonParam"; version="1.3.6"; sha256="034a6yx2z93llkg7m3f20ibajwc2m23i13jqsk3fpgzx6f1dnbfk"; depends=[ICSNP]; };
   MultOrdRS = derive2 { name="MultOrdRS"; version="0.1-2"; sha256="0bra4z37njkcgah3a1k6mxcnmxq85188jywhgx3fdb1wnv5ic549"; depends=[Rcpp RcppArmadillo statmod]; };
   MultSurvTests = derive2 { name="MultSurvTests"; version="0.2"; sha256="04crh4hbfhl8cr0faawv71lyabyilhxpg6i8sr9ki80982mbzcnd"; depends=[Rcpp RcppArmadillo Rdpack]; };
+  MultiATSM = derive2 { name="MultiATSM"; version="0.0.1"; sha256="0p35is4kgpwxhmnmjsmphgy33dbj4f4jmysjmi75dbxbns129lig"; depends=[ggplot2 hablar pracma wrapr zoo]; };
   MultiBD = derive2 { name="MultiBD"; version="0.2.0"; sha256="1qjfr8hx8sr5m8370yzi09r8jnh3i6907wzj3v4h83vmjh81db71"; depends=[BH Rcpp RcppParallel]; };
   MultiCNVDetect = derive2 { name="MultiCNVDetect"; version="0.1-1"; sha256="0mfisblw3skm4y8phfg4wa0rdchl01wccarsq79hv63y78pfhh13"; depends=[]; };
   MultiFit = derive2 { name="MultiFit"; version="1.0.1"; sha256="1hy2xsmdcsn4jwa06ffymhhd4prxjnqw0jxl77sxq8yb1fc2vk64"; depends=[data_table Rcpp RcppArmadillo]; };
@@ -3065,15 +3088,17 @@ in with self; {
   MultiVarMI = derive2 { name="MultiVarMI"; version="1.0"; sha256="1mlaprg3cfmfwrq7wh64fmyv1wpdnil7wpcrcg3921qydk65py6z"; depends=[BinOrdNonNor corpcor CorrToolBox Matrix moments norm PoisNonNor]; };
   MultiVarSel = derive2 { name="MultiVarSel"; version="1.1.3"; sha256="18wcw80m5knv6hbzczjsx3lf7sn9n84z12zz844agp6234im163p"; depends=[glmnet Matrix]; };
   MultinomialCI = derive2 { name="MultinomialCI"; version="1.2"; sha256="0cd6yxszbxdgpvfkfx5d3w3f0157lxljpkwlnijb99i911rbyflp"; depends=[]; };
+  MultipleBreakpoints = derive2 { name="MultipleBreakpoints"; version="0.1.0"; sha256="1vzz5dj2jml03pxdp3is3vg0gc6fwy08m1jx9qmiv6rhfzsdmfpk"; depends=[Rdpack]; };
   MultipleBubbles = derive2 { name="MultipleBubbles"; version="0.2.0"; sha256="047a1pql3jf500gwlap6ws5z7mx0sqmdq6jbql24nl5iypi9jqpf"; depends=[foreach MASS]; };
+  MultipleRegression = derive2 { name="MultipleRegression"; version="0.1.0"; sha256="1l9rn6zc60ih7lyydrsy1ih94ksim14yd7kiapiga58mr7abi45h"; depends=[crayon]; };
   MultiplierDEA = derive2 { name="MultiplierDEA"; version="0.1.18"; sha256="1d7cqa44yayyhwkl5wkp68b7vxakfnlwkprs811z8c2fmfm8vk5r"; depends=[lpSolveAPI]; };
   MultisiteMediation = derive2 { name="MultisiteMediation"; version="0.0.4"; sha256="0kkw6zxw29qmgd9nlgqjlyh99icxzkkqnpzzanxx8pn7m2ww0wkf"; depends=[ggplot2 lme4 MASS psych statmod]; };
-  MultivariateAnalysis = derive2 { name="MultivariateAnalysis"; version="0.4.3"; sha256="0pf83hmbpsa64xbhagbpyllwndhhla1m35cq6kf4i0788kdpz4f5"; depends=[ape biotools candisc corrplot crayon PCAmixdata]; };
+  MultivariateAnalysis = derive2 { name="MultivariateAnalysis"; version="0.4.4"; sha256="0vpk7iplmb0cyrqal90m1y4ym8wng2b8k9ydh26xaga4r974qd2p"; depends=[ape biotools candisc corrplot crayon PCAmixdata]; };
   MultivariateRandomForest = derive2 { name="MultivariateRandomForest"; version="1.1.5"; sha256="0mww4x1hqraiyvmw2f9s6h180kplmj36hb7zfg7xlkmgdf4apk8d"; depends=[bootstrap Rcpp]; };
   MultiwayRegression = derive2 { name="MultiwayRegression"; version="1.2"; sha256="1w0yd3nwrqpk5nhnrcrd06fbdhg4kizx2p8mpspqnw8qcn970pfl"; depends=[MASS]; };
   MvBinary = derive2 { name="MvBinary"; version="1.1"; sha256="1lrrxvphxv4gmlazx67q4bck9373nqylqgkwcjzwb52291a3zyiv"; depends=[mgcv]; };
   My_stepwise = derive2 { name="My.stepwise"; version="0.1.0"; sha256="10wka6kzk8krwdsyjfnn78dfqflq4zg3vjkk0i2ywjm5vap6aqa5"; depends=[car lmtest survival]; };
-  N2R = derive2 { name="N2R"; version="0.1.1"; sha256="1wjz145d5v1ml2zyvw2znvv550sn6cm7c3rdshg450f7c4j7qyp8"; depends=[Matrix Rcpp RcppEigen RcppSpdlog]; };
+  N2R = derive2 { name="N2R"; version="1.0.0"; sha256="1pxxj8s0ybydsm1x9s4841arqwhxvi1b6nyd8j7gs4b08b9n6yxm"; depends=[Matrix Rcpp RcppEigen RcppSpdlog]; };
   NACHO = derive2 { name="NACHO"; version="1.1.0"; sha256="0ji9kcfbnsrn6h4p0y0ly5nwyfwh3y01wm80a7syg4mjj0nd4z0g"; depends=[cli crayon dplyr ggbeeswarm ggforce ggplot2 ggrepel knitr magrittr purrr rlang rmarkdown rstudioapi scales sessioninfo shiny shinyWidgets tibble tidyr]; };
   NADA = derive2 { name="NADA"; version="1.6-1.1"; sha256="0jp4mqr77cx7q5lff84s6wb0dwjy9mi0jyhbjc5fsx50bdczc3v7"; depends=[survival]; };
   NADA2 = derive2 { name="NADA2"; version="1.0.1"; sha256="01x3ylrp3kizq9aa0wyaj4jbyr4si2vi8rc3b8r0bllnsl2ia2ix"; depends=[cenGAM coin EnvStats fitdistrplus Kendall mgcv multcomp NADA perm survival survminer vegan]; };
@@ -3081,6 +3106,7 @@ in with self; {
   NAEPirtparams = derive2 { name="NAEPirtparams"; version="1.0.0"; sha256="0qhfmkhi38z27ky3xbkvra5r6lw3kj9p3xrblm9j2657rj9kxc9j"; depends=[]; };
   NAEPprimer = derive2 { name="NAEPprimer"; version="1.0.1"; sha256="19p1livdnayfcl88f8r9x1vg30x522q8lgx66pfgwpkxjzvrqa2l"; depends=[]; };
   NAM = derive2 { name="NAM"; version="1.7.3"; sha256="12d2yjl0af2ailvwk30fswalx1wzyj500qbrhiczsg1vr4rcqhkh"; depends=[Rcpp]; };
+  NAP = derive2 { name="NAP"; version="1.0"; sha256="00ym7pqzksc9263mv98cxzi3d0qg5pbyfwyznl648fdca2fqjlay"; depends=[doParallel foreach]; };
   NB = derive2 { name="NB"; version="0.9"; sha256="1gh42z7lp6g09fsfmikxqzyvqp2874cx3a6vr96w43jfwmgi2diq"; depends=[]; };
   NB_MClust = derive2 { name="NB.MClust"; version="1.1.1"; sha256="0hzmrszxgx3pylf9pjjwk2ryjhwz7naxxkhcqpnfjv337vv5dg0i"; depends=[MASS]; };
   NBAloveR = derive2 { name="NBAloveR"; version="0.1.3.3"; sha256="0k1f14srzks26x5wnhj8mrfwcq7wgbywcklr804lxsh04h4d6pwp"; depends=[dplyr magrittr tidyr]; };
@@ -3099,7 +3125,7 @@ in with self; {
   NCmisc = derive2 { name="NCmisc"; version="1.1.6"; sha256="0ycc7b7z26a922hdjq8p4hjljjh09il24h3023k248pcsnbmka1a"; depends=[proftools]; };
   NCutYX = derive2 { name="NCutYX"; version="0.1.0"; sha256="0r2ghnvrbya3p1d8rb5bsnz5v852vvc6rq65yafn2xzr7886wrg2"; depends=[fields glmnet MASS mvtnorm Rcpp RcppEigen]; };
   NDP = derive2 { name="NDP"; version="0.1.0"; sha256="0wmld7g4w3d7d8lyj4132h3jpr8ng8kpy4ssqjp8r0lqwif2i86b"; depends=[rmarkdown shiny]; };
-  NEONiso = derive2 { name="NEONiso"; version="0.5.1"; sha256="1sb74ilj5vwrs5fm4lfba19vgls33af8lfqc2jdl7rs1ijpvki7v"; depends=[data_table dplyr httr lifecycle lubridate magrittr neonUtilities R_utils rhdf5 rlang tidyselect zoo]; };
+  NEONiso = derive2 { name="NEONiso"; version="0.5.2"; sha256="1sbfsng5kp27ng2j1v7g4b8y48fkp6c71q5cj3z13vr06nmxp16z"; depends=[data_table downloader dplyr httr jsonlite lifecycle lubridate magrittr neonUtilities R_utils rhdf5 rlang tidyselect zoo]; };
   NEff = derive2 { name="NEff"; version="1.1"; sha256="16ys1fi28kbzg3am9vz1c5pc9x0ac47pl6za04h63lspk99yplzk"; depends=[bit msm]; };
   NEpiC = derive2 { name="NEpiC"; version="1.0.1"; sha256="11zf112xcsg3k93vks2fnsflw2v2d56a0bsjpd460d21k3gipfz8"; depends=[igraph PairedData]; };
   NFCP = derive2 { name="NFCP"; version="1.2.0"; sha256="1dav6h0bk4c787g5wskpsfqdbsgalq0xpbzq6nk1sg54g6wd76q2"; depends=[curl FKF_SP LSMRealOptions MASS mathjaxr numDeriv Rdpack rgenoud]; };
@@ -3116,6 +3142,7 @@ in with self; {
   NHPoisson = derive2 { name="NHPoisson"; version="3.3"; sha256="1i6n59ckcxk1hwyz97jmnv4yb96ianjma6ka8lpz79ivs41jniad"; depends=[car]; };
   NHSDataDictionaRy = derive2 { name="NHSDataDictionaRy"; version="1.2.5"; sha256="17jvyjxc28bmxadvcjhal4shklh24636zw6hrc7p7m71lbcw86aw"; depends=[dplyr httr magrittr purrr rvest stringr tibble xml2]; };
   NHSRdatasets = derive2 { name="NHSRdatasets"; version="0.3.0"; sha256="1l4zrprnb3fsb2mibq8749a15xbvhn1g5yajbjf7gls81c8f2r7p"; depends=[tibble]; };
+  NHSRplotthedots = derive2 { name="NHSRplotthedots"; version="0.1.0"; sha256="1rqryqaxyb3d6kws8mznsnzv19h8nhn1323vkh9zq59la9r3kiai"; depends=[assertthat crayon dplyr ggplot2 NHSRdatasets rlang scales]; };
   NIMAA = derive2 { name="NIMAA"; version="0.1.0"; sha256="0qi99iwvr8362zm4lxq6vbw5l47r5246zvsa9p1y3ragc7s1qahc"; depends=[bipartite bnstruct crayon dplyr fpc ggplot2 igraph mice missMDA networkD3 plotly purrr RColorBrewer scales skimr softImpute tibble tidyr tidytext visNetwork]; };
   NIPTeR = derive2 { name="NIPTeR"; version="1.0.2"; sha256="0ll6amqyw33a93xiccihidrnbaqlx1q7kqcd4wks7cvqawd8pgv1"; depends=[Rsamtools S4Vectors sets]; };
   NIRStat = derive2 { name="NIRStat"; version="1.1"; sha256="07l4ca7d9q840iy5a80sqafrlv20534jw65wzxs90j2d0jx4acs9"; depends=[ggplot2 gridExtra mgcv]; };
@@ -3137,7 +3164,7 @@ in with self; {
   NMdata = derive2 { name="NMdata"; version="0.0.9"; sha256="0ldab8brzhxpjgswh9fgla9xb2k703vf8syd5im3ixjz6ngmkn2m"; depends=[data_table]; };
   NMproject = derive2 { name="NMproject"; version="0.6.7"; sha256="0sri85n5i5w56bmbcg3yca3r5lh9j59gwwjidwhvxvxbg6czw6n7"; depends=[crayon diffobj dplyr DT dygraphs git2r htmltools lifecycle magrittr miniUI reshape2 rlang rmarkdown rprojroot rstudioapi shiny stringr tidyr usethis]; };
   NNMIS = derive2 { name="NNMIS"; version="1.0.1"; sha256="1w2i4xlx249p589yqdgbx1ra406ycxw729vbk1lqadbn71m6blaz"; depends=[survival]; };
-  NNS = derive2 { name="NNS"; version="0.8.2"; sha256="0ipn6zrqr83wabdb66s663v8nasj48p48ah4arha4slfmsrnhbkl"; depends=[caret data_table doParallel dtw dynlm meboot Quandl Rfast rgl stringr tdigest zoo]; };
+  NNS = derive2 { name="NNS"; version="0.8.3"; sha256="0pg848qdf2sg6qldym3wxxi60bngwb63gagx0xw4wlwr15p0i02h"; depends=[caret data_table doParallel dtw dynlm meboot Quandl Rfast rgl stringr tdigest tseries zoo]; };
   NNTbiomarker = derive2 { name="NNTbiomarker"; version="0.29.11"; sha256="0sqlf7vzhpmq2g98c2qlrcqn3ba4ycfxbczgcjiqqhqsvgkpacc1"; depends=[magrittr mvbutils shiny stringr xtable]; };
   NNbenchmark = derive2 { name="NNbenchmark"; version="3.2.0"; sha256="086smk3xy6p6ianw41h3gx806q7h28v1dg9d3khsrwyyf9gn8xyp"; depends=[pkgload R6]; };
   NO_PING_PONG = derive2 { name="NO.PING.PONG"; version="0.1.4"; sha256="10q5h9kafni3wlnn1gdsgd9a90km5snrjz1nr0ilafmdvw9vg6v1"; depends=[MASS MCMCglmm metafor]; };
@@ -3154,7 +3181,7 @@ in with self; {
   NPMLEmix = derive2 { name="NPMLEmix"; version="1.2"; sha256="056jb3kz34lajryfbzkhq0g372iib6h8mr74mq18xkarp5blgmsl"; depends=[CAMAN dplyr FDRreg Hmisc latexpdf Matrix mosaic pbapply pracma progress R_utils Rcpp REBayes Rmosek spatstat]; };
   NPMVCP = derive2 { name="NPMVCP"; version="1.1"; sha256="13jpm46abwziq8859jhl6hg1znk3ws1q7g4vlr2jyri3qa6h22dd"; depends=[]; };
   NPP = derive2 { name="NPP"; version="0.4.0"; sha256="1891s5j39i728vqs6xz1bywnvgalsbiknn3yqsg71zlhj3h8ikll"; depends=[]; };
-  NPRED = derive2 { name="NPRED"; version="1.0.5"; sha256="0klzca0j9hswr586bp27r67s09n548yvgclfs5b64qdlhng7sf13"; depends=[]; };
+  NPRED = derive2 { name="NPRED"; version="1.0.6"; sha256="1mdnjfh100hckyqkyq4651ymi6lzbgfy6dy4xjxbal2q5rn6swvl"; depends=[]; };
   NPS = derive2 { name="NPS"; version="1.1"; sha256="02idja149a2sj97sks4lhsaflpifyxi6n0rjlcq9993f84szfgsi"; depends=[]; };
   NPflow = derive2 { name="NPflow"; version="0.13.3"; sha256="1bgdkm82pmzjv46pkxpvh5ffffmc6q68x5jjl7k330w9vwgx2kf0"; depends=[ellipse fastcluster ggplot2 pheatmap Rcpp RcppArmadillo reshape2 truncnorm]; };
   NRejections = derive2 { name="NRejections"; version="1.2.0"; sha256="0lzj7kyn4s8l306a6xwkgkv1z4dlfsr61i902lvdxv4ln4m6a5kq"; depends=[doParallel foreach matrixcalc mvtnorm StepwiseTest]; };
@@ -3176,6 +3203,8 @@ in with self; {
   NetCluster = derive2 { name="NetCluster"; version="0.2"; sha256="0aby8kfniw07jap795cwk69z83p45q5rap73zp1qbmkm3qcb31g4"; depends=[sna]; };
   NetComp = derive2 { name="NetComp"; version="1.6"; sha256="11rxpdihn575diqfvc7yvxhlr2c19fig4v4a5c6jhqyfdsd60fsv"; depends=[gdata]; };
   NetData = derive2 { name="NetData"; version="0.3"; sha256="1jf05zwy0c6gmm7kvxlwvai61bz4wpsw7cl0h4i21ipzn1rqxmqj"; depends=[]; };
+  NetExplorer = derive2 { name="NetExplorer"; version="0.0.1"; sha256="11vsw0pmivypffrjll4vz9xy3hnhk5cym30f0b85jpjjp40qcp1p"; depends=[]; };
+  NetFACS = derive2 { name="NetFACS"; version="0.2.0"; sha256="0fz2whkhdz48knj31pgsq85n4n9zl52vnjmhg6ky34an3a2q459c"; depends=[arrangements doParallel ggplot2 ggraph igraph picante Rfast rlang]; };
   NetIndices = derive2 { name="NetIndices"; version="1.4.4"; sha256="0ydivbri8l8zkxi18ghj9h66915scyhca8i9mcyq4b06mjfigss8"; depends=[MASS]; };
   NetLogoR = derive2 { name="NetLogoR"; version="0.3.9"; sha256="035nsxgzh7dg9bjcwqbf5228ph90ff629di4ff3pdvr40jki60f1"; depends=[abind car CircStats data_table Hmisc matrixStats plyr quickPlot raster rgeos sp SpaDES_tools]; };
   NetMix = derive2 { name="NetMix"; version="0.2.0"; sha256="097cyk0lf3h4v3ff0icqj7a80yvs06damw1sc4hdqf2f21d6qihh"; depends=[clue gtools igraph lda MASS Matrix poisbinom Rcpp RcppArmadillo]; };
@@ -3219,10 +3248,11 @@ in with self; {
   NormalBetaPrime = derive2 { name="NormalBetaPrime"; version="2.2"; sha256="03il9c57dbwgw38rzckkk0wkc37z8kfdrb7b4k471gm7mqhsm3m3"; depends=[GIGrvg glmnet HyperbolicDist MASS Matrix pracma pscl truncnorm]; };
   NormalGamma = derive2 { name="NormalGamma"; version="1.1"; sha256="0r3hhfscif0sx9v8f450yf119gpvf3ilpb8n3ziy4v4qf2jlcfnk"; depends=[histogram optimx]; };
   NormalLaplace = derive2 { name="NormalLaplace"; version="0.3-0"; sha256="0njgjdx2yvvy5jb5zn6zr7jdz5hck5bbkicv15z4ai4ibmckqjmh"; depends=[DistributionUtils GeneralizedHyperbolic]; };
+  NormalityAssessment = derive2 { name="NormalityAssessment"; version="0.0.1"; sha256="1syxv75dmwshxh8ahwywyd1jyk3ryhdi5ig22gw1k2kkddy5j49f"; depends=[dplyr DT ggplot2 rio shiny shinyalert shinyBS stringi stringr]; };
   NostalgiR = derive2 { name="NostalgiR"; version="1.0.2"; sha256="0rpvwi815sdhaxqpji1y6g0vy8mkn5k6wci0a4jf54pkywwkwrwp"; depends=[txtplot]; };
   Nozzle_R1 = derive2 { name="Nozzle.R1"; version="1.1-1"; sha256="05sjip4sz12mwd3jcbvk342p83kdmrd4l2jrh17p18w4l7w4nn0z"; depends=[]; };
   Numero = derive2 { name="Numero"; version="1.8.4"; sha256="0kkska60ilk3lqf5w6z21pjldipg4pky0qgzpbsl69ial62z8xsy"; depends=[Rcpp]; };
-  NutrienTrackeR = derive2 { name="NutrienTrackeR"; version="1.1.0"; sha256="1xik2q229vkh34q211b6a1pij9fvcs0wik0ypl4j1jlfvl673rz8"; depends=[ggplot2 shiny]; };
+  NutrienTrackeR = derive2 { name="NutrienTrackeR"; version="1.2.0"; sha256="0n54kgxcj8w3r3iqdr13kia49b9zgxiki64h90yygpbg32hqdn8b"; depends=[ggplot2 shiny]; };
   OAIHarvester = derive2 { name="OAIHarvester"; version="0.3-3"; sha256="00j5f6kw67qr83cmds9y5rzwiv2sb2b2bfbr5cclpr3wcsw278fs"; depends=[curl xml2]; };
   OBASpatial = derive2 { name="OBASpatial"; version="1.8"; sha256="1xc4qz3i5pphgf17asyiafdnlhv5k88rw0fwkwfh8cz767wip1hw"; depends=[cubature HDInterval invgamma LaplacesDemon modeest mvtnorm truncdist]; };
   OBMbpkg = derive2 { name="OBMbpkg"; version="1.0.0"; sha256="01wch8wwij3fd0jambk0hpkhlnp4ryrq8qnnr2w1iad9zssjyii5"; depends=[]; };
@@ -3237,7 +3267,7 @@ in with self; {
   OData = derive2 { name="OData"; version="0.6"; sha256="10r4kfhdabramjmkgc4fl0bljaiqbvc7rq4byas7q8cmji2czw6f"; depends=[RJSONIO XML]; };
   ODataQuery = derive2 { name="ODataQuery"; version="0.5.3"; sha256="058j3rc5kh134ndsxn5gck2xh6llrs73cyxpa5z8zkmsw9am22qj"; depends=[httr jsonlite R6 rlang]; };
   OECD = derive2 { name="OECD"; version="0.2.4"; sha256="1cxjd5h10ynjzblk5d5crdknk19pn8ik37d8hffvz5iydp7ammqn"; depends=[httr rsdmx xml2]; };
-  OEFPIL = derive2 { name="OEFPIL"; version="0.1.0"; sha256="07i33757py898kflvfwl62rjmlywvis9l3c0qjjl8fkl98p3rwxz"; depends=[Deriv ggplot2 MASS matrixcalc minpack_lm plyr]; };
+  OEFPIL = derive2 { name="OEFPIL"; version="0.1.1"; sha256="0gnbbz2spaqlqqn7978l15jv7xiqpfrh8k9girrpdqih02x95rfw"; depends=[Deriv ggplot2 MASS matrixcalc minpack_lm plyr]; };
   OGI = derive2 { name="OGI"; version="1.0.0"; sha256="0qw55jamkvdf3vfa5c0ygbymbs4d9q15dihiqz691hdfnyjvc2mk"; depends=[lpSolve]; };
   OHPL = derive2 { name="OHPL"; version="1.4"; sha256="0svim112khdymdj1bsj8vri6r0zph5312y148mlh5h98rah40i08"; depends=[glmnet mvtnorm pls]; };
   OLScurve = derive2 { name="OLScurve"; version="0.2.0"; sha256="1zqapfwgwy9rxnbhmlgplkphw1bdia4cyi9q6iwcppw3rjw75f1n"; depends=[lattice]; };
@@ -3262,18 +3292,20 @@ in with self; {
   OSDR = derive2 { name="OSDR"; version="1.1.3"; sha256="059sj003zsrabmjfhwvvpi599ssrckcqpiw2b3vz405ljnhjmlap"; depends=[]; };
   OSMscale = derive2 { name="OSMscale"; version="0.5.1"; sha256="0rjhyhh1iafgd9h1pbd2clyg2sh0gg7y1aqmiislqyn6h6jrvgqn"; depends=[berryFunctions OpenStreetMap sp]; };
   OSNMTF = derive2 { name="OSNMTF"; version="0.1.0"; sha256="0g83wqh97iz3g4ganj2dy3biyn8cmb0v8zz6rydald1hfszj8aa2"; depends=[dplyr MASS]; };
+  OSTE = derive2 { name="OSTE"; version="1.0"; sha256="0l8whr883g3jp5ckgxr4zf9vj055jrjb7pfraacd15smnrbl0v5d"; depends=[pec prodlim ranger survival]; };
   OTE = derive2 { name="OTE"; version="1.0.1"; sha256="0jvvrrfhpc5kibbxrd5r4dj97jp5m072fxnkpcyz11gi65db3z4g"; depends=[randomForest]; };
   OTRselect = derive2 { name="OTRselect"; version="1.0"; sha256="1bh14228yz552ngywjf1qyh1isqj4cgiy7n7d4zg8dpqwxr04ykp"; depends=[lars survival]; };
   OTUtable = derive2 { name="OTUtable"; version="1.1.2"; sha256="1sm037ihm12xyp7ns5f0c1psflvm1aj3xnsj5nzh2rsjn35hvd6h"; depends=[]; };
   OTclust = derive2 { name="OTclust"; version="1.0.4"; sha256="11mr67zp68wzf1dd6vb3f31g8a430im97sdjsb0w4awqpmjdyyrz"; depends=[class ggplot2 magrittr RColorBrewer Rcpp]; };
   OTrecod = derive2 { name="OTrecod"; version="0.1.1"; sha256="0rf50li6pnyi9lkxwlayq3190l85cxfmy3ldx0g6fr32ksfjsgfq"; depends=[dplyr FactoMineR mice missMDA ompr ompr_roi party plyr proxy rdist ROI ROI_plugin_glpk StatMatch vcd]; };
   OUwie = derive2 { name="OUwie"; version="2.6"; sha256="0yh0hnlrimfqajl0qixs0ciiwpl9r38w9y1g9bhgvafj190ikb54"; depends=[ape corpcor geiger igraph interp lhs nloptr numDeriv paleotree phangorn phylolm phytools RColorBrewer]; };
+  OVtool = derive2 { name="OVtool"; version="1.0.3"; sha256="1ghfbvnfl092g0kikgjghgf0l1y7ihqykssfvvfi6q6pgzl8kz4y"; depends=[Amelia devtools dplyr EnvStats ggplot2 ggrepel glue magrittr metR progress purrr rlang survey tibble tidyselect twang varhandle]; };
   OWEA = derive2 { name="OWEA"; version="0.1.1"; sha256="00mx94v3krivsxha6sh13xhn2bdj77g8858vc4r2cy23ab4bg0g7"; depends=[gtools MASS shiny]; };
   Oarray = derive2 { name="Oarray"; version="1.4-9"; sha256="04jng89s19rd8lbjm76wm4p4ggkffwnsa5qa60c4lwn2rj89a8a1"; depends=[]; };
   OasisR = derive2 { name="OasisR"; version="3.0.2"; sha256="1388ld2nws3ppnkavg8s59q3inqf365c5cf9qvzbj6icmwqs9rdd"; depends=[measurements outliers rgdal rgeos seg spdep]; };
   Observation = derive2 { name="Observation"; version="0.2.0"; sha256="0v81manzcvv8x9hbf75c8klslzdabha53rasyba91vvcbrshhq6j"; depends=[AGread svDialogs]; };
   OceanView = derive2 { name="OceanView"; version="1.0.6"; sha256="1ww6xhpvs3y0zx7pgj8083a8v4l4cm0b0b497b4gsjbcbnbnal9c"; depends=[plot3D plot3Drgl rgl shape]; };
-  OddsPlotty = derive2 { name="OddsPlotty"; version="1.0.1"; sha256="140svvixywiky565vawmzi43xvqq7g0q3d6gi90qk95xxin1d9il"; depends=[caret e1071 ggplot2 ggthemes magrittr mlbench tibble]; };
+  OddsPlotty = derive2 { name="OddsPlotty"; version="1.0.2"; sha256="0adgbrni7yrarybh0djmq68hifwqzn2rn9mfqgwqma1d7mg3ai93"; depends=[caret e1071 ggplot2 ggthemes magrittr mlbench rmarkdown tibble tidymodels]; };
   OenoKPM = derive2 { name="OenoKPM"; version="0.1.2"; sha256="1rw740zw38k3q9kl89rvn740d5v4k1hhmlz4bp9ynhnq34g9p9rq"; depends=[extrafont ggplot2 ggtext minpack_lm openxlsx]; };
   Ohit = derive2 { name="Ohit"; version="1.0.0"; sha256="132d4drc2phw9ppxnczb1ycdg3dv085k8p6bcaj3v866j0hfxjgb"; depends=[]; };
   OjaNP = derive2 { name="OjaNP"; version="1.0-0"; sha256="0xddspnnwlcxh2i66ilh6i920k53y7fv6m1hgj9h28qg2wy0vyah"; depends=[ICS ICSNP Rcpp]; };
@@ -3289,13 +3321,14 @@ in with self; {
   OncoBayes2 = derive2 { name="OncoBayes2"; version="0.8-2"; sha256="0hhj1sdn0yzcib0dh5prc93ill2a3mvh5a8jjsvigk3j5bvhbfwi"; depends=[abind assertthat bayesplot BH checkmate dplyr Formula ggplot2 Rcpp RcppEigen RcppParallel rlang rstan rstantools scales StanHeaders tibble tidyr tidyselect]; };
   Oncotree = derive2 { name="Oncotree"; version="0.3.3"; sha256="147rc9ci66lxbb91ys2ig40sgmldi15p604yysrd4ccbxpbk2zwf"; depends=[boot]; };
   OneR = derive2 { name="OneR"; version="2.2"; sha256="1k7rzhcwq5b2yi4zfsc1r0yb6w65gxj9835d2a1dclallja3zav2"; depends=[]; };
+  OneSampleMR = derive2 { name="OneSampleMR"; version="0.1.0"; sha256="0gxsfx5www0ndmxaymva2krsyricf4b6nyvjz1hlyjckl3drmqbw"; depends=[Formula gmm ivreg lmtest msm]; };
   OneStep = derive2 { name="OneStep"; version="0.9.2"; sha256="06gnw364p74nnb9rx3ghyfavd02xmnvzy94hzdwgxqs86z30b2gz"; depends=[fitdistrplus numDeriv]; };
   OneTwoSamples = derive2 { name="OneTwoSamples"; version="1.0-3"; sha256="0019rc2f4jmbm6sinkvalvjqwi822x78aiin88kg8qbbb5ml8l89"; depends=[]; };
   OpVaR = derive2 { name="OpVaR"; version="1.2"; sha256="1923p60yzh8fycwl1fwy01r7ml5yx0kx01ckhgii7slm4cachf5f"; depends=[actuar evmix MASS pracma ReIns tea truncnorm VineCopula]; };
   OpasnetUtils = derive2 { name="OpasnetUtils"; version="1.3"; sha256="0mmn4dpk1wl8slg55xzhpk7jdwhkrka53rwmrsr73sikkh3mcyfn"; depends=[digest ggplot2 httpRequest igraph plyr RCurl reshape2 rgdal rjson sp triangle xtable]; };
   OpenCL = derive2 { name="OpenCL"; version="0.2-2"; sha256="0gxzda615f67nbljancb8kixzdzkjsy8i0345mlnmlr8kqv4qyhw"; depends=[]; };
   OpenImageR = derive2 { name="OpenImageR"; version="1.2.0"; sha256="161bic7vjknv0hnf8qkkwqbxjcb9mhg62kp7dqrxxrgmgcvazb6g"; depends=[jpeg png R6 Rcpp RcppArmadillo shiny tiff]; };
-  OpenLand = derive2 { name="OpenLand"; version="1.0.1"; sha256="1wa7hkfwvzzj9lm07hdajwf6g8ys3g2ff8vqva3gqwqa9j1fam9n"; depends=[circlize dplyr ggplot2 gridExtra networkD3 raster tidyr]; };
+  OpenLand = derive2 { name="OpenLand"; version="1.0.2"; sha256="02d1dflcbjvm9hgvsm5gpc3s0n0njf4w3224yqk9nc0i49nw01fi"; depends=[circlize dplyr ggplot2 gridExtra networkD3 raster tidyr]; };
   OpenML = derive2 { name="OpenML"; version="1.10"; sha256="132swv22ymm0wxq8y65y2niq8chmga1mnl1lgn6m3cgljvwad47r"; depends=[backports BBmisc checkmate curl data_table digest httr jsonlite memoise stringi XML]; };
   OpenMx = derive2 { name="OpenMx"; version="2.19.8"; sha256="0q37mwxqhgdi05rwdfwfapgazfp541xsvw3yskf21lv11y2yjjyb"; depends=[BH digest lifecycle MASS Matrix Rcpp RcppEigen RcppParallel rpf StanHeaders]; };
   OpenRepGrid = derive2 { name="OpenRepGrid"; version="0.1.12"; sha256="02p9b2y99z9yrrm2pl86p0yqwah0yjic2wdcd4k0mhccimmmkaip"; depends=[abind colorspace GPArotation openxlsx plyr psych pvclust rgl stringr XML]; };
@@ -3324,8 +3357,7 @@ in with self; {
   OrgMassSpecR = derive2 { name="OrgMassSpecR"; version="0.5-3"; sha256="1dx9d8rb1dfqyhyc26zhfnxiv3rz2ikvs2mwqnsrq3lsjs9dvyc8"; depends=[]; };
   OrthoPanels = derive2 { name="OrthoPanels"; version="1.1-4"; sha256="112dvc1scv299rw1w30fw2jj4gz74b7sidcdzcba3mhn3k7aw0ja"; depends=[MASS]; };
   OscillatorGenerator = derive2 { name="OscillatorGenerator"; version="0.1.0"; sha256="0zqw8l955msxkdviw5vd493749zwc22qby9mfmyqnqqmq0pyjw4w"; depends=[]; };
-  Ostats = derive2 { name="Ostats"; version="0.1.0"; sha256="12gcw9rv43i61hciv4x2imhs216sdw8ln9pgh60j0ybfcgv87w0b"; depends=[circular ggplot2 gridExtra hypervolume MASS matrixStats sfsmisc viridis]; };
-  OutlierDC = derive2 { name="OutlierDC"; version="0.3-0"; sha256="1vm3zx4qmj9l0ddfqbksm1qyqzzqrxf93gh4kj52h68zlsfxwv41"; depends=[Formula quantreg survival]; };
+  Ostats = derive2 { name="Ostats"; version="0.1.1"; sha256="0jsxlxwf0fcqlbr12hyixfpp819g4sf0d2dnsx5jn6w81wwsdfiv"; depends=[circular ggplot2 gridExtra hypervolume MASS matrixStats sfsmisc viridis]; };
   OutlierDM = derive2 { name="OutlierDM"; version="1.1.1"; sha256="0n8iq464ryc3v4wms7cdka39870w5pg29z9v8gmdsp4d9cfsx9v4"; depends=[MatrixModels outliers pcaPP quantreg]; };
   OutliersO3 = derive2 { name="OutliersO3"; version="0.6.3"; sha256="165v572w9bnvay9f0xyxzbhgj1i86ndia4rzqy98i48dfdbdb990"; depends=[cellWise dplyr FastPCS forcats GGally ggplot2 HDoutliers memisc rlist robustbase robustX tidyr]; };
   OutrankingTools = derive2 { name="OutrankingTools"; version="1.0"; sha256="0z7pslkkinn7flc4xwjg0bsfswf8ad4jv9rmglaj3fmjcx9b6wgj"; depends=[igraph]; };
@@ -3341,7 +3373,6 @@ in with self; {
   PAMhm = derive2 { name="PAMhm"; version="0.1.2"; sha256="0k0n3ni0ypcizri39v76x1vv7hlxlmbpfi7w81yxy9inz7zz4zfw"; depends=[cluster heatmapFlex plyr R_utils RColorBrewer readmoRe readxl robustHD]; };
   PAMmisc = derive2 { name="PAMmisc"; version="1.7.0"; sha256="1ghhipx42g7s3aplk6c9qwsvr78dzl88czrmhavxfvv5vmdm9n02"; depends=[dplyr geosphere ggplot2 hoardr httr lubridate magrittr ncdf4 PamBinaries purrr RcppRoll rerddap RSQLite seewave stringr tuneR viridis viridisLite xml2]; };
   PAMpal = derive2 { name="PAMpal"; version="0.14.4"; sha256="01fxypdsgshv1bkyqqkd68xnmyz3mcv2hhy2nzfvddfyly7ixys8"; depends=[data_table dplyr gam ggplot2 knitr lubridate magrittr manipulate PamBinaries PAMmisc purrr readr reticulate rjson rlang RSQLite rstudioapi seewave signal stringr tidyr tuneR xml2]; };
-  PANDA = derive2 { name="PANDA"; version="0.9.9"; sha256="1sf3c49v4mb3mz2imqlqdbh1iab7bc2pxpi8bmgj2jld133555ip"; depends=[cluster GO_db]; };
   PAS = derive2 { name="PAS"; version="1.2.5"; sha256="175p3bnpnhknfsc29hri0l2ipz1x6qcxs2bq7awns8lccam466r2"; depends=[glmnet]; };
   PASSED = derive2 { name="PASSED"; version="1.1-1"; sha256="06dr5q14lyam6ywn6bg6vfkb68jqb6hw2phd10jcpdzcjvhsbz0r"; depends=[betareg rootSolve]; };
   PASWR = derive2 { name="PASWR"; version="1.1"; sha256="1rxymnqvflypc6m62f5vw65l8x1m2yah7r11hhpmzdq2l2sg8fci"; depends=[e1071 lattice MASS]; };
@@ -3372,14 +3403,14 @@ in with self; {
   PCLassoReg = derive2 { name="PCLassoReg"; version="1.0.0"; sha256="1m79aiij4dglfz5qhm5h76hxpgszrpzfw37nvx2y6gcq6dya8krl"; depends=[grpreg survival]; };
   PCMBase = derive2 { name="PCMBase"; version="1.2.12"; sha256="0p18g660yax8mmnhq1pd4nax4saf8syqj7c1xpspjbfkr78kh15q"; depends=[ape data_table expm ggplot2 mvtnorm xtable]; };
   PCMBaseCpp = derive2 { name="PCMBaseCpp"; version="0.1.9"; sha256="0k40mxs8w1vk7qwpkv8gnq6cq3kpj7wvf0i6f1qn1wmm2vvz1kfy"; depends=[abind data_table PCMBase Rcpp RcppArmadillo]; };
-  PCMRS = derive2 { name="PCMRS"; version="0.1-2"; sha256="1zr2kzwxgr7rifkkmgz9vhq5i9ky6lqrss742vybwl0nx78mad3p"; depends=[cubature ltm mvtnorm Rcpp RcppArmadillo statmod]; };
+  PCMRS = derive2 { name="PCMRS"; version="0.1-3"; sha256="02dkszfaqkwksyf0wics4lldyqlwviw2mpc8kb04nhxnwh50vy1g"; depends=[cubature ltm mvtnorm Rcpp RcppArmadillo statmod]; };
   PCPS = derive2 { name="PCPS"; version="1.0.7"; sha256="0gxymz0yws1q1bxkpxi0lmbv57xx62h3dl7z3i2cnbagswkax3zh"; depends=[ape nlme phylobase picante RcppArmadillo SYNCSA vegan]; };
   PCRedux = derive2 { name="PCRedux"; version="1.1"; sha256="0714q5afki3i8vja3qakzjx7r082m99zhsimzlsqjhq4fa3jb8q2"; depends=[bcp changepoint chipPCR ecp fda_usc MBmca pbapply pracma qpcR robustbase segmented shiny zoo]; };
   PCS = derive2 { name="PCS"; version="1.2"; sha256="0488h6s1yz6fwiqf88z2vgckn6i0kwls8cazmpw3wspnaqvl2n4s"; depends=[multtest statmod]; };
   PCSinR = derive2 { name="PCSinR"; version="0.1.0"; sha256="1z8yjryw3c43vc6fxcwiindmyq6r63pc1zr3aybwmys6mv697bb4"; depends=[]; };
   PCovR = derive2 { name="PCovR"; version="2.7.1"; sha256="1lvj3kf4pnvbr7lk3kzvh72akga49zx25b3w7nq24925s129sqx1"; depends=[GPArotation MASS Matrix ThreeWay]; };
   PDE = derive2 { name="PDE"; version="1.3.0"; sha256="1nz0xrhs2iin2grqvxhp99775q8wrjp7isyr1i415vi936jabs0i"; depends=[tcltk2]; };
-  PDFEstimator = derive2 { name="PDFEstimator"; version="3.0"; sha256="0qkxnvbxvl7hfr08r9mj0hqqd0fr099h3gf1kf4czn98h1s2lc0y"; depends=[]; };
+  PDFEstimator = derive2 { name="PDFEstimator"; version="3.1"; sha256="0l9iq7jr266f44laxbhj23ngp5m4fimhxmr4nszajr0j3w14wmrl"; depends=[]; };
   PDM = derive2 { name="PDM"; version="0.1"; sha256="1pbdy13ji9c6krgh2r1qgrzmf4hdmrdzylsr71n3hh5jq4n9xg8x"; depends=[jpeg]; };
   PDN = derive2 { name="PDN"; version="0.1.0"; sha256="082ydvwcjc2rs7hlakrkgbbm9c419m408a14a9dgfdwm16yif3jd"; depends=[ggplot2 glmnet network survival]; };
   PDQutils = derive2 { name="PDQutils"; version="0.1.6"; sha256="0mmfi0ifwbkjm0274sddpwkj27cvdkwngnka8vdmfm4b2nn7vgsp"; depends=[moments orthopolynom]; };
@@ -3391,6 +3422,7 @@ in with self; {
   PELVIS = derive2 { name="PELVIS"; version="2.0.3"; sha256="1sym6lbspzqcmg0k0r07kv65pswq39fxx5xdyiv6pm2r3v49p8jq"; depends=[DT htmlwidgets MASS shiny]; };
   PEMM = derive2 { name="PEMM"; version="1.0"; sha256="18dd9hsbdrnhrrff7gpdqrw2jv44j8lg0v3lkcdpbd4pppcaq84h"; depends=[]; };
   PERMANOVA = derive2 { name="PERMANOVA"; version="0.2.0"; sha256="1lmnp1g1i1kqa30cvakkl8g2m2h5jl73qx8dy37kv62mv0knlg5m"; depends=[deldir MASS Matrix scales xtable]; };
+  PEkit = derive2 { name="PEkit"; version="1.0.0.1000"; sha256="023k4swypw8l4hglqxysd53c5f4fq9v3ibha9jm5kvyg3piw3a4p"; depends=[]; };
   PGEE = derive2 { name="PGEE"; version="1.5"; sha256="1qcxbqnbpplnfjy83nm9fj9y4abzgbxnsggzx7ix3vb9qs18cdwh"; depends=[MASS mvtnorm]; };
   PGM2 = derive2 { name="PGM2"; version="1.0-1"; sha256="03282pcq7gw47awc2mxjsbz6w3zpqjhqd7fzg8la4p00cd0vvmr4"; depends=[]; };
   PGRdup = derive2 { name="PGRdup"; version="0.2.3.7"; sha256="0zm0cm98nps2bfr66mb4j7a0v3s407zqrl2l2nvzg9yyqlaznzc3"; depends=[data_table ggplot2 gridExtra igraph stringdist stringi]; };
@@ -3406,13 +3438,13 @@ in with self; {
   PINSPlus = derive2 { name="PINSPlus"; version="2.0.5"; sha256="1j44ha8saszw0faxkp2887hhvba9i0m8pcq6bf76190924fq305g"; depends=[cluster doParallel entropy FNN foreach irlba matrixStats mclust Rcpp RcppArmadillo RcppParallel]; };
   PIPS = derive2 { name="PIPS"; version="1.0.1"; sha256="1c5v3s6xys9p1q32k6mpsffhi9gwsq951rh12hs76dmak862yspc"; depends=[]; };
   PK = derive2 { name="PK"; version="1.3-5"; sha256="1wzz2qv6h6nc2hcsg4098951i608xbbhc9f9ngamfigh5sbmzbh6"; depends=[]; };
-  PKI = derive2 { name="PKI"; version="0.1-8"; sha256="0qk75ml1xpai8hbh9d73rb0w0gwd559dr62ak8kj8q2ppw5vsfa5"; depends=[base64enc]; };
-  PKLMtest = derive2 { name="PKLMtest"; version="1.0.0"; sha256="0qy0v6jakhczid1bc5d2w52xq0ly770icpn4b8v22wkpn8dvgbd1"; depends=[ranger]; };
+  PKI = derive2 { name="PKI"; version="0.1-9"; sha256="1j8zwjp59bvm1f6cid232n242afjg23q1s438dbzz9wsyc2hx7y6"; depends=[base64enc]; };
+  PKLMtest = derive2 { name="PKLMtest"; version="1.0.1"; sha256="0i1kxczlhn95jw1w7vw87svqhpq9j6xi4fhy974yjx9xhax171hq"; depends=[ranger]; };
   PKNCA = derive2 { name="PKNCA"; version="0.9.5"; sha256="0grz5akbpb6i2dg8s9v34qr1zw1r8pczqw2amm6ihi8bxr799223"; depends=[digest dplyr nlme purrr rlang tibble tidyr]; };
   PKPDmodels = derive2 { name="PKPDmodels"; version="0.3.2"; sha256="1h893civ77ahbgjnc6kq3l7rszmqmx9dlxwavldigpq3r79vd86k"; depends=[]; };
   PKconverter = derive2 { name="PKconverter"; version="1.5"; sha256="1zk2sjrjhq7n2k2p29r2qc6qdghr3riyjvvawz0g74lidg7hm1ly"; depends=[shiny shinydashboard shinythemes]; };
   PKreport = derive2 { name="PKreport"; version="1.5"; sha256="16hss9migbxpnw5f9gcw1nlvb81iyji00ylx5wd6kdwhz0ids9wj"; depends=[ggplot2 lattice]; };
-  PL94171 = derive2 { name="PL94171"; version="0.3.2"; sha256="07mskfg3a6h60abhiayk88qjlw3ixfa8fmmgamwax42y82hy8dci"; depends=[dplyr httr readr sf stringr tigris withr]; };
+  PL94171 = derive2 { name="PL94171"; version="1.0.1"; sha256="0x7lymy8fg5r3w21an6ihrnrhsicnl4q382gx7pij9vlb82cy763"; depends=[dplyr httr readr sf stringr tigris withr]; };
   PLFD = derive2 { name="PLFD"; version="0.1.1"; sha256="0zzvrhjv7jxil326sqp0xmna0lc708wx1wv33qf0jf1ggr4hhqqm"; depends=[mathjaxr Rcpp RcppArmadillo]; };
   PLIS = derive2 { name="PLIS"; version="1.1"; sha256="0b81s7677wglqvv1b5lx8k2iaks09kz0wrl07245a7j2pk9nxv7p"; depends=[]; };
   PLMIX = derive2 { name="PLMIX"; version="2.1.1"; sha256="05mnzsi7y71cvg50qx8hp4m31gqslldl34k41r1f8npyb6ldpdca"; depends=[abind coda foreach ggmcmc ggplot2 gridExtra gtools label_switching MCMCpack PlackettLuce pmr prefmod radarchart rankdist rcdd Rcpp reshape2 StatRank]; };
@@ -3422,7 +3454,7 @@ in with self; {
   PLordprob = derive2 { name="PLordprob"; version="1.1"; sha256="1g23h3121g9csr85falm6vgzbva42wz3skhfr2rxmvlc3ca4afyp"; depends=[mnormt]; };
   PMA = derive2 { name="PMA"; version="1.2.1"; sha256="1rhiylm3jfarnqdkv7nwg536sgsa30ic80dk9byks9w0wf4mn59s"; depends=[]; };
   PMCMR = derive2 { name="PMCMR"; version="4.4"; sha256="05n13pp5yff6pzk4ry07crddfaj3jlglrd1vkcnacyd8jpaxkd77"; depends=[]; };
-  PMCMRplus = derive2 { name="PMCMRplus"; version="1.9.2"; sha256="084lcard82cd9s0d89pr7q0wvmc5432yfpn9gjmrjdnani4j5wzh"; depends=[BWStest gmp kSamples MASS multcompView mvtnorm Rmpfr SuppDists]; };
+  PMCMRplus = derive2 { name="PMCMRplus"; version="1.9.3"; sha256="00sgk4c7vpmbfifrsbqd5gh7hwdpm8kymlpnnrdzlhvkymhbmfkn"; depends=[BWStest gmp kSamples MASS multcompView mvtnorm Rmpfr SuppDists]; };
   PMwR = derive2 { name="PMwR"; version="0.17-0"; sha256="0p5gsagpk5w8nmpg49y74bj0gzk1qdpw1q9679p9qpwmc7xl3k6n"; depends=[datetimeutils fastmatch NMOF orgutils textutils zoo]; };
   PNADcIBGE = derive2 { name="PNADcIBGE"; version="0.6.5"; sha256="0lmznymj95vfyn0c4ga2z0mwfmrjvyr7255silq69w2xq7j8hfrl"; depends=[dplyr httr magrittr projmgr RCurl readr readxl survey tibble timeDate]; };
   PNSIBGE = derive2 { name="PNSIBGE"; version="0.1.5"; sha256="0hd2lqf26xp11wj06wpqk1v5jr902dyqhv40c6a3x8danrwh5bfa"; depends=[dplyr httr magrittr projmgr RCurl readr readxl survey tibble timeDate]; };
@@ -3435,7 +3467,7 @@ in with self; {
   POINT = derive2 { name="POINT"; version="1.1"; sha256="0bkrsvcmm7927d7c56wr804a2wv5c1dn8y8zhf76433ckj45068x"; depends=[CompQuadForm Matrix rARPACK]; };
   POMaSPU = derive2 { name="POMaSPU"; version="1.0.0"; sha256="0jz3jgzdykv0xvfw3ix0hbs32as6dp7p5v8bj5nddknx10d0siya"; depends=[MASS matrixStats Rcpp RcppArmadillo]; };
   POSTm = derive2 { name="POSTm"; version="1.1"; sha256="0ax0ky2xbaymw4fdipxvy1gh5wfnnm8hwxcg6hksasaz366widhm"; depends=[ape CompQuadForm]; };
-  POSetR = derive2 { name="POSetR"; version="1.0.3"; sha256="19r73q7g8jxlq05lrc1mhd0qb1cw7hppsnz6f3410p5wwmvvvaxp"; depends=[igraph Rcpp Rdpack]; };
+  POSetR = derive2 { name="POSetR"; version="1.0.4"; sha256="1fxs741rb4x9b92c1x5i1ngxwaa0r5j2x1x5i4k3y71x67pklmf8"; depends=[igraph Rcpp Rdpack]; };
   POT = derive2 { name="POT"; version="1.1-7"; sha256="1xxm293lmj22dsiaimivpd90xpwnrr36xa371zg6k6w05q4jjfn3"; depends=[]; };
   POUMM = derive2 { name="POUMM"; version="2.1.7"; sha256="0pwa97sffb571nfqnbc35dj9lr8z07wjsjnwibj9dhj2dr5b2cfp"; depends=[adaptMCMC ape coda data_table foreach ggplot2 lamW Rcpp]; };
   POV = derive2 { name="POV"; version="0.1.4"; sha256="0mqhi410rwpgr6x5h57wqg0f5k01vva0c280zlfpmf8php121x7j"; depends=[broom formula_tools]; };
@@ -3465,7 +3497,7 @@ in with self; {
   PROreg = derive2 { name="PROreg"; version="1.1"; sha256="0jws41hgrpcih5ispp6f627f81sjbdygzgjbw4gawf31n5z8pi5a"; depends=[car fmsb Matrix matrixcalc numDeriv RColorBrewer rootSolve]; };
   PROscorer = derive2 { name="PROscorer"; version="0.0.1"; sha256="0mgj0mi0vzdk0agimsx4k9i4bss0j5lqiayzhldr1hrqrx2a4f3d"; depends=[PROscorerTools]; };
   PROscorerTools = derive2 { name="PROscorerTools"; version="0.0.1"; sha256="1vliffkfqdn5l96bncfgayv19i20kmawlxi8q853wamj6npdpv5r"; depends=[]; };
-  PROsetta = derive2 { name="PROsetta"; version="0.3.2"; sha256="148kylibzzqcryrrfxkybpyb4bpywdjdg9lvxar7b2qhwfb5ff1b"; depends=[equate lavaan mirt mvnfast plink psych]; };
+  PROsetta = derive2 { name="PROsetta"; version="0.3.4"; sha256="00wrb92hcsp27jmidp0r3m6kh110wsabbjxi3hs9zr70kydjjwrf"; depends=[equate lavaan mirt mvnfast plink psych]; };
   PRROC = derive2 { name="PRROC"; version="1.3.1"; sha256="1m28h8pcd78049lz2qixhkcr9h5b3jik3maqzfbvq9y58z71i4a7"; depends=[]; };
   PRSim = derive2 { name="PRSim"; version="1.3-1"; sha256="1iq81vdxwd504cqjn243hs8x8ph7yvf06gj4amf7cgg1j6862d35"; depends=[goftest homtest lmomco mev splus2R wavScalogram]; };
   PReMiuM = derive2 { name="PReMiuM"; version="3.2.7"; sha256="108ijvhs48i0sphqvpkxa3bwcsak7098irz5x82zja42h9bz5hwf"; depends=[BH cluster data_table gamlss_dist ggplot2 plotrix Rcpp RcppEigen rgdal spdep]; };
@@ -3484,7 +3516,7 @@ in with self; {
   PSweight = derive2 { name="PSweight"; version="1.1.5"; sha256="06vn5xv7s80pb88vhwfgbff6jly9p0fpa81p48vijjff2gg6d6nh"; depends=[gbm ggplot2 MASS nnet numDeriv SuperLearner]; };
   PTAk = derive2 { name="PTAk"; version="1.4-0"; sha256="0hm1xij32wgirj7k7qv162zl5r7aj1iyyhpnlbm9wx1mbw72ccbc"; depends=[tensor]; };
   PTE = derive2 { name="PTE"; version="1.7"; sha256="1azkrij4kfmvp03lnzm88gwgvz8g54jq94j0qg8ynxvyjzrppc98"; depends=[doParallel foreach survival]; };
-  PTXQC = derive2 { name="PTXQC"; version="1.0.11"; sha256="15qgmirj9hf4fxxg1arg2sx6fff5rfdszln6rbmidj104biggjpg"; depends=[data_table ggdendro ggplot2 gtable jsonlite kableExtra knitr ontologyIndex plyr R6 R6P RColorBrewer reshape2 rmarkdown seqinr UpSetR xml2 yaml]; };
+  PTXQC = derive2 { name="PTXQC"; version="1.0.12"; sha256="0k9qvaf2dxfy2lcqnw0zyi17l682rma4c4hhh56m4bycwl2prmv2"; depends=[data_table ggdendro ggplot2 gtable jsonlite kableExtra knitr ontologyIndex plyr R6 R6P RColorBrewer reshape2 rmarkdown seqinr UpSetR xml2 yaml]; };
   PTwins = derive2 { name="PTwins"; version="0.1.1"; sha256="166mc7w52n9d3n72h5jvvhbki87prkils3yigdf57dn9pyixrd66"; depends=[]; };
   PUPAIM = derive2 { name="PUPAIM"; version="0.2.0"; sha256="1ky6f4yhm3hjrfxwk8vfalzzjgkq1922my26w457q8nfng7f2m53"; depends=[Metrics minpack_lm nls2]; };
   PUlasso = derive2 { name="PUlasso"; version="3.2.4"; sha256="0mcmya0a5wzmssq05vpmkx9icfrq49kc0dc9ri3d9kx4w0sabffh"; depends=[doParallel foreach ggplot2 Matrix Rcpp RcppEigen]; };
@@ -3493,7 +3525,7 @@ in with self; {
   PVplr = derive2 { name="PVplr"; version="0.1.0"; sha256="1ssmdhq2qczk6n50f8jj4j3nym7jj9bshfc1f29lccvmp7wxdp9a"; depends=[broom cluster dplyr ggplot2 magrittr minpack_lm purrr rlang segmented stlplus tidyr]; };
   PWD = derive2 { name="PWD"; version="1.0"; sha256="0ksr3biaqd4p5a4lv28i4cwk1fn9822ndq2161mgvc1c344p06fj"; depends=[Rcpp RcppArmadillo]; };
   PWEALL = derive2 { name="PWEALL"; version="1.3.0"; sha256="0nb0v6wvj9ay90qcbrr9drg2g84fb7a9m78pzb69wp8789i8ixhk"; depends=[survival]; };
-  PWFSLSmoke = derive2 { name="PWFSLSmoke"; version="1.2.111"; sha256="0gry7nq8gqxfspihsc05pcwn25fciw41hjy9bnd1bsqqk5f520d0"; depends=[cluster curl dplyr dygraphs geosphere ggmap glue httr jsonlite leaflet lubridate magrittr mapproj maps maptools MazamaCoreUtils MazamaSpatialUtils openair png purrr raster RColorBrewer readr reshape2 rgdal RgoogleMaps rlang sf slippymath sp stringr tibble tidyr xts]; };
+  PWFSLSmoke = derive2 { name="PWFSLSmoke"; version="1.2.117"; sha256="0140j2bg6mqxsg86ndq3c0ls1kdvd33r2qrwih2cjgmnfq31adkj"; depends=[cluster curl dplyr dygraphs geosphere ggmap glue httr jsonlite leaflet lubridate magrittr mapproj maps maptools MazamaCoreUtils MazamaSpatialUtils openair png purrr raster RColorBrewer readr reshape2 rgdal RgoogleMaps rlang sf slippymath sp stringr tibble tidyr xts]; };
   PabonLasso = derive2 { name="PabonLasso"; version="1.0"; sha256="158xg9i13nqy1bnpch8r6a7yas01hsdidmcypgccmyh7d7l52mr1"; depends=[]; };
   Pade = derive2 { name="Pade"; version="1.0.3"; sha256="0q4pk2qk7v9wn5sdlvrwn9ir01jxy9nlzygnwkjzhq5vfa720d1k"; depends=[]; };
   PairViz = derive2 { name="PairViz"; version="1.3.4"; sha256="1jd99b4bc2yiv91z7szhrgqhrbh6h6qwacvwf1cl6r8nrv5kqd13"; depends=[graph gtools TSP]; };
@@ -3631,11 +3663,11 @@ in with self; {
   PosteriorBootstrap = derive2 { name="PosteriorBootstrap"; version="0.1.1"; sha256="12ial0bcrh3k3z5927zh0bvd413jrz606b07jgbym87kb3n1fxbi"; depends=[dplyr e1071 ggplot2 gridExtra MASS Rcpp rstan StanHeaders tibble]; };
   PottsUtils = derive2 { name="PottsUtils"; version="0.3-3"; sha256="165k4sjh3kqkb8bzi68wx00yl77yfbgs70fcbpzmsmcw4g4hdpzn"; depends=[miscF]; };
   PoweR = derive2 { name="PoweR"; version="1.0.7"; sha256="040wc7hxa8y6bm1rs7ip2skdxmmwksxkyb6xzqgdjp8m7a25fppb"; depends=[Rcpp RcppArmadillo]; };
-  Power2Stage = derive2 { name="Power2Stage"; version="0.5-3"; sha256="0fs6hkpfivc98dxnlmxqaxsr3bxvfqawjnwyw0qvans8m4wcq1kx"; depends=[cubature mvtnorm PowerTOST]; };
+  Power2Stage = derive2 { name="Power2Stage"; version="0.5-4"; sha256="1g4zrprbd5q1dn4jfq5c9ayss4p0ljhbsfr3h8h9sjbmcg62rsal"; depends=[cubature mvtnorm PowerTOST]; };
   PowerNormal = derive2 { name="PowerNormal"; version="1.2.0"; sha256="1kryqcjvgwk0l4z3gqxdiz47mha3jw5583jlb9z7ml6v7cam06sm"; depends=[]; };
   PowerTOST = derive2 { name="PowerTOST"; version="1.5-3"; sha256="0473vm267hsq7s8ggm4m01jig067qcpm30cza0j1kx9cw6ghq68d"; depends=[cubature mvtnorm TeachingDemos]; };
   PowerUpR = derive2 { name="PowerUpR"; version="1.1.0"; sha256="0bnkngdqhzhsbkzp4cxhgm8rzn83q4vm3fj2gkp7z4qznp37lh3j"; depends=[]; };
-  PracTools = derive2 { name="PracTools"; version="1.2.2"; sha256="08s8pm55814w6mjz3q4n1bcxccmjypb5qiws5g8pcafl6dj7z0wh"; depends=[]; };
+  PracTools = derive2 { name="PracTools"; version="1.2.3"; sha256="07lb57xkiym6xr3d2krbg3zx8i0b2rhvc2mgflc3asx2qm2p4hfr"; depends=[]; };
   PreKnitPostHTMLRender = derive2 { name="PreKnitPostHTMLRender"; version="0.1.0"; sha256="1749cd734f4bf0n4068s2m617k6as8h9bwp44mm3la2xy3vjf5g1"; depends=[knitr rmarkdown XML]; };
   PreProcess = derive2 { name="PreProcess"; version="3.1.7"; sha256="1fxzkmrj76mc94xdj7a0nq450021i1jxkigmh5jhrmamkp5581jf"; depends=[oompaBase]; };
   PreProcessing = derive2 { name="PreProcessing"; version="0.1.0"; sha256="08wrdg3q7r8h7lqn3yppl3qqlhnaak81vd9ymqlkzw92981rxxzx"; depends=[ggplot2]; };
@@ -3648,11 +3680,11 @@ in with self; {
   PresenceAbsence = derive2 { name="PresenceAbsence"; version="1.1.9"; sha256="17qn4ggkr5aqml45nkihj1j35y479ywkm1xcfkb2g8ky66jb0c0s"; depends=[]; };
   PressPurt = derive2 { name="PressPurt"; version="1.0.2"; sha256="05kca0rlhlvhgnw3r3p4sh42zwvhrhcjdwz65ykp14jxybfhc8in"; depends=[data_table ggplot2 gridExtra reticulate]; };
   PrevMap = derive2 { name="PrevMap"; version="1.5.4"; sha256="12cw4dmbsnx9c4y5l5k0paqn1wwbxy9ciw46r254n5rd275fhksh"; depends=[lme4 Matrix maxLik numDeriv pdist raster splancs truncnorm]; };
-  PriceIndices = derive2 { name="PriceIndices"; version="0.0.5"; sha256="0ymvdcn7ijw015rb4ljx6q608fzk87z38k8qqgc30839i79vy7wi"; depends=[caret dplyr ggplot2 lubridate reclin reshape strex stringr xgboost]; };
+  PriceIndices = derive2 { name="PriceIndices"; version="0.0.6"; sha256="18ci20z07xx7q1mr007hwn2sx65fmvli9w23brgvbpa1wyhh3lhg"; depends=[caret dplyr ggplot2 lubridate reclin reshape strex stringr xgboost]; };
   PriorCD = derive2 { name="PriorCD"; version="0.1.0"; sha256="1mb50w2i8sfxjzqd5xnfysn3jnzkkyv6l8algxnp0xpyhcq41pfs"; depends=[dplyr igraph ROCR visNetwork]; };
   PriorGen = derive2 { name="PriorGen"; version="1.1.2"; sha256="0qvdqqdy7wdwwcq95mkgfyf7xf6xlpwdfs3gq299yyv2ba57flnm"; depends=[rootSolve]; };
   PrivateLR = derive2 { name="PrivateLR"; version="1.2-22"; sha256="0d142fa3wk7yadvs8jszajs6hq9m03p0j6h5r4pbw7j0d1l72hgc"; depends=[]; };
-  ProAE = derive2 { name="ProAE"; version="0.1.2"; sha256="1z31pln5v4xl4s3ksvywbdmrvz4d0gq6qpwhd98xgfc6a9p00fyf"; depends=[DescTools dplyr ExactCIdiff ggnewscale ggplot2 ggtext Hmisc magrittr]; };
+  ProAE = derive2 { name="ProAE"; version="0.2.8"; sha256="1dx5ddkvd8a8z53y1bvx7w7iljyzg15g1gcwqza0skc14s62p4zk"; depends=[DescTools dplyr ExactCIdiff ggnewscale ggplot2 ggtext gridExtra Hmisc magrittr]; };
   ProDenICA = derive2 { name="ProDenICA"; version="1.0"; sha256="04gnsnd0xzw3bfbssdp06bar0lk305ry2c97pmwxgiz3ay88dfsj"; depends=[gam]; };
   ProFit = derive2 { name="ProFit"; version="1.3.3"; sha256="0jrw0v7dg5mf4zxg7pqybh9qzsiqb3nnz8g5qlc4iz73mhr9gm2b"; depends=[celestial checkmate cubature FITSio LaplacesDemon magicaxis RColorBrewer]; };
   ProFound = derive2 { name="ProFound"; version="1.14.1"; sha256="1p2mdy0z5p7as1x6vc572wjcl6f0acwgpvb39rmk2273kb1ldwz5"; depends=[celestial data_table FITSio foreach magicaxis RColorBrewer Rcpp]; };
@@ -3671,7 +3703,7 @@ in with self; {
   ProfessR = derive2 { name="ProfessR"; version="2.4-1"; sha256="1wsbx0dsygc1ipzhgs1pd0lhdb0qvp4ydqzwarn6zv27rzf4p3bd"; depends=[RPMG]; };
   ProfileLikelihood = derive2 { name="ProfileLikelihood"; version="1.1"; sha256="16cdp1nimhg1sd2x0qbffm7clgk54p0838y688z8lnsrjaggmb0x"; depends=[MASS nlme]; };
   ProfoundData = derive2 { name="ProfoundData"; version="0.2.1"; sha256="1zqg821pv3i5nf76s7yppnmy13y14pj0l7rjhk50wlxrxdb53ibz"; depends=[DBI RNetCDF RSQLite settings sqldf zoo]; };
-  ProjectManagement = derive2 { name="ProjectManagement"; version="1.4.0"; sha256="1na2mydnkhwij8jc0c98241bsskwf5jdqjayw3rqrmnlsyppla9k"; depends=[GameTheory igraph kappalab lpSolveAPI plotly triangle]; };
+  ProjectManagement = derive2 { name="ProjectManagement"; version="1.4.3"; sha256="017f2rp3jnss65jn9pi0fg69frp23h2z127zrxa5wap3wdw5b49i"; depends=[GameTheory igraph kappalab lpSolveAPI plotly triangle]; };
   ProjectTemplate = derive2 { name="ProjectTemplate"; version="0.10.2"; sha256="0r1af5h24nbgr39njchnqd54cw7cyzsw8k1qind8h5af491wmq0h"; depends=[digest tibble]; };
   ProjectionBasedClustering = derive2 { name="ProjectionBasedClustering"; version="1.1.6"; sha256="0b2bljw5gslkw6jkajnk3jsx1kgi7bk9vrnivgkaxq76qi8bgsr9"; depends=[deldir GeneralizedUmatrix geometry ggplot2 plotly Rcpp shiny shinyjs shinythemes vegan]; };
   ProliferativeIndex = derive2 { name="ProliferativeIndex"; version="1.0.1"; sha256="03ipsbs8pfwr8wsx7j2y9c67ic4qcady7xpa47l8dr14ff63cfk7"; depends=[]; };
@@ -3717,6 +3749,7 @@ in with self; {
   QGameTheory = derive2 { name="QGameTheory"; version="0.1.2"; sha256="0h3qkb0zg6km3s89bjnv9503hgcng4wfywfy1x5dsbj5azs9hs5w"; depends=[dplyr R_utils RColorBrewer]; };
   QGglmm = derive2 { name="QGglmm"; version="0.7.4"; sha256="0ghvicz4ia1180byj28lmg49889hqhb94g1jrkhm6hnzgqbjnfmd"; depends=[cubature]; };
   QHOT = derive2 { name="QHOT"; version="0.1.0"; sha256="02z0n2jawd6m7bvyvpcy0j13p1c0zm036g62n56xva18qnq5c9lb"; depends=[]; };
+  QHScrnomo = derive2 { name="QHScrnomo"; version="2.2.0"; sha256="1g7gx1mhvqnldqwi9dx5f7nxqrra9mgfn5rq467f1nhlv6m2kzn6"; depends=[cmprsk Hmisc rms]; };
   QLearning = derive2 { name="QLearning"; version="0.1.1"; sha256="1bx77yxsnzh0ny3ghala5fw54lxzrxqk9s32qk3dzvfbyp4paggn"; depends=[]; };
   QPmin = derive2 { name="QPmin"; version="0.5-1"; sha256="1hfvbi2qfynnkg2pmr7qsw75bmijwglnxchbzxcbikm5yw3sd2mz"; depends=[Matrix]; };
   QQperm = derive2 { name="QQperm"; version="1.0.1"; sha256="06xhv54zgnx8i22j23a0dqxhh7my416idpkkwq93qd1rdzgamzc8"; depends=[]; };
@@ -3733,7 +3766,7 @@ in with self; {
   QTLRel = derive2 { name="QTLRel"; version="1.6"; sha256="1198qrrl7samm4jzliy5i8wfvladz6wpm48l1g2x6ackm1asiw75"; depends=[gdata lattice]; };
   QTOCen = derive2 { name="QTOCen"; version="0.1.1"; sha256="0wlbxk1rd56k02jf3pfzbx6xx5mmf6sb7gvds0067cvb7m42ghcr"; depends=[MatrixModels quantreg Rdpack rgenoud survival]; };
   QUALYPSO = derive2 { name="QUALYPSO"; version="1.2"; sha256="0hp99hhlv7rijn34ncshpvbnmhbx3f5km7bzr0z7yr7l3j1vx3sc"; depends=[doParallel expm foreach MASS Rfast]; };
-  QZ = derive2 { name="QZ"; version="0.2-1"; sha256="1xivasa5dppm9z02ki6ciqxj0ybxch41w1xszl9zqrf755b6f6xw"; depends=[Matrix]; };
+  QWDAP = derive2 { name="QWDAP"; version="1.1.7"; sha256="19dvdfchk19mm41910g2m34xn3agbxymcsa8gjc4fxc5pikyc8rf"; depends=[CORElearn MTS pls progress StepReg]; };
   Qapprox = derive2 { name="Qapprox"; version="0.2.0"; sha256="0mv3xfy847lqh95mpccjiw5jjbml7dwrna7i16532sdqcxaq4m02"; depends=[]; };
   Qtools = derive2 { name="Qtools"; version="1.5.5"; sha256="0kmd5cd299gjw5qbk8yhlzxcwa3ykrr36zcpk773mykyz57q46hb"; depends=[boot glmx gtools MASS Matrix np numDeriv quantreg Rcpp RcppArmadillo]; };
   QuACN = derive2 { name="QuACN"; version="1.8.0"; sha256="1597blp8gqc5djvbgpfzi8wamvy0x50wh5amxj9cy99qa0jlglxi"; depends=[combinat graph igraph RBGL]; };
@@ -3801,20 +3834,20 @@ in with self; {
   RAP = derive2 { name="RAP"; version="1.1"; sha256="18dclijs72p6gxawpg8hk7n512ah4by5jfg2jnrp8mz79ajmdgir"; depends=[]; };
   RAPIDR = derive2 { name="RAPIDR"; version="0.1.1"; sha256="14cnw4jjs5anb55zlg1yj6qc9yr51rsamigq2q7h8ypj2ggnna1d"; depends=[Biostrings data_table GenomicAlignments GenomicRanges PropCIs Rsamtools]; };
   RAPTOR = derive2 { name="RAPTOR"; version="1.0.1"; sha256="1bj3xsl83mb8zwap8icywrfdld382fram79b0n14jbk1l87rj9r4"; depends=[mgcv]; };
-  RAQSAPI = derive2 { name="RAQSAPI"; version="2.0.1"; sha256="0dz81fkxjk85n9c9kabibyr0c7bg6widamnnvld135q3w1nridfc"; depends=[dplyr glue gtools httr jsonlite lifecycle lubridate magrittr purrr rlang stringr tibble]; };
+  RAQSAPI = derive2 { name="RAQSAPI"; version="2.0.2"; sha256="0325s4b62a1kpq8r4bcxa0njbih71aywbvpzxf0w0qsrbrk4wdq7"; depends=[dplyr glue gtools httr jsonlite lifecycle lubridate magrittr purrr rlang stringr tibble]; };
   RATest = derive2 { name="RATest"; version="0.1.9"; sha256="02673wbss90c192rxbzxfsbnirl63k7d8fq989chmjc5z2xjzajj"; depends=[ggplot2 gridExtra quantreg]; };
   RAdwords = derive2 { name="RAdwords"; version="0.1.18"; sha256="1c3m2j2cf1s51p783rdng5ns913bv7rbjc1vpmrmsxg2kf5f6qyq"; depends=[RCurl rjson]; };
-  RAhrefs = derive2 { name="RAhrefs"; version="0.1.4"; sha256="0yd7jbv2x711dnhbvwjjg7qhg8h8bh5564amsv9bkqw661i042m3"; depends=[assertthat httr jsonlite testthat]; };
   RApiDatetime = derive2 { name="RApiDatetime"; version="0.0.6"; sha256="15j6vb6rm4ykwjachqyyfvjshiilyjqnpj8x6qc93savk04rf279"; depends=[]; };
   RApiSerialize = derive2 { name="RApiSerialize"; version="0.1.0"; sha256="0gm2j8kh40imhncwwx1sx9kmraaxcxycvgwls53lcyy2ap344k9j"; depends=[]; };
   RAppArmor = derive2 { name="RAppArmor"; version="3.2.2"; sha256="0l0f4k666nh00db94sjxz60anr4l9vm0259pcc2a4whk2pmjcq5n"; depends=[unix]; };
-  RAthena = derive2 { name="RAthena"; version="2.3.0"; sha256="1yfh40g9i6974a4zma94k8d3q4gbjfxr6h0agxd4zk5bs5ld50ja"; depends=[data_table DBI reticulate uuid]; };
+  RAthena = derive2 { name="RAthena"; version="2.4.0"; sha256="10zg9df5n9il6w7088l6kkzd4g9clvc98l5cppci41vn6smsswr4"; depends=[data_table DBI reticulate uuid]; };
   RBF = derive2 { name="RBF"; version="2.1.0"; sha256="0062ckvrjfkkl5lfrshrr2cynrxsrp4zpdpl8nij06hm00i3gfs5"; depends=[]; };
   RBMRB = derive2 { name="RBMRB"; version="2.1.7"; sha256="09x7zaigflc0d3pbdrvfv1kdklrlzgd4v2ma3dcr96l36n1iqqns"; depends=[data_table ggplot2 httr plotly rjson]; };
   RBNZ = derive2 { name="RBNZ"; version="1.1.0"; sha256="11fdnc2pmw5nq3lswid078l307ln6853a3b9d383msvrkz6yms26"; depends=[httr lubridate readxl rvest xml2]; };
   RBPcurve = derive2 { name="RBPcurve"; version="1.2"; sha256="0zkfvnhm780vid4qqdrx9mnc6jxxrmrnq47pqvk35rm3m4l96782"; depends=[BBmisc checkmate mlr shape TeachingDemos]; };
   RBaseX = derive2 { name="RBaseX"; version="0.3.0"; sha256="15hn04ijvqbza8brca7g06yi621hyf3gjgkfvf1wp4jgzysgd8ww"; depends=[data_table dplyr magrittr openssl R6 RCurl stringr tibble]; };
-  RBesT = derive2 { name="RBesT"; version="1.6-2"; sha256="1iyw87hp37l67zi4bv9npyp431358d3j5m6j4gxyz1j3k9l9g4x9"; depends=[assertthat bayesplot BH checkmate dplyr Formula ggplot2 mvtnorm Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
+  RBesT = derive2 { name="RBesT"; version="1.6-3"; sha256="0nbqkxsi6di4sd26l9c212sjs2lsvnabwbnf0cx00hmxrxzy0lhl"; depends=[assertthat bayesplot BH checkmate dplyr Formula ggplot2 mvtnorm Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
+  RBestMatch = derive2 { name="RBestMatch"; version="0.1.0"; sha256="1jjap8xh71vx0jjpq0hl3m70adipq8jlsvhk078ajpxa2qhif7gi"; depends=[DiPs mvnfast plyr]; };
   RBitmoji = derive2 { name="RBitmoji"; version="0.0.2"; sha256="1v9qj3vmqsvnccsy735nbflmd81183h2flm0f1ckd4kl08r2fr3f"; depends=[getPass httr jsonlite png RCurl]; };
   RBtest = derive2 { name="RBtest"; version="1.1"; sha256="09da721zfj6cw4i9gifn5f0sv3nj0qfjb96c5w9g9gzx55ihssnk"; depends=[mice nnet psych]; };
   RCA = derive2 { name="RCA"; version="2.0"; sha256="0pidb5czrf0dc3ywy6cwm5akgsc62pvf94kfyxibzmd1favykx1h"; depends=[gplots igraph]; };
@@ -3828,7 +3861,6 @@ in with self; {
   RCPmod = derive2 { name="RCPmod"; version="2.190"; sha256="1r24g8fcizyqzgp0da90sxpwalgcsgz2b168j2smpylxraiqb037"; depends=[fishMod glmnet gtools MASS]; };
   RCRnorm = derive2 { name="RCRnorm"; version="0.0.2"; sha256="1mz1jb7mc9c47hbk9flnddny4zir6r2k5qis30iynwqny521l6ln"; depends=[truncnorm]; };
   RCSF = derive2 { name="RCSF"; version="1.0.2"; sha256="1hjl7qsdgcddn3nh2likndhfhnw9gj3453xqq96gddgb1y0m3bh1"; depends=[Rcpp]; };
-  RCSL = derive2 { name="RCSL"; version="0.99.95"; sha256="1ngzbhrc74ljhidsf7a17k4hyx0igv2srgbf822gm2wawzsmp0y2"; depends=[ggplot2 igraph mclust NbClust pracma RcppAnnoy Rtsne SingleCellExperiment umap]; };
   RCT = derive2 { name="RCT"; version="1.1.1"; sha256="01ir440zgxjvzwn5vazxib0w14nqy7lk7glwvba39xqghb3xw85z"; depends=[broom dplyr forcats ggplot2 glue lfe magrittr MASS pracma purrr rlang stringr tidyr tidyselect]; };
   RCarb = derive2 { name="RCarb"; version="0.1.4"; sha256="0mlas45ypwdkk6gr35fhsrjgn8am06ikh123drmky1yj1kkg6p76"; depends=[interp matrixStats]; };
   RCassandra = derive2 { name="RCassandra"; version="0.1-3"; sha256="0xa241s81cyw6lfjb522f2mlyrd0gav9yz3z5jab9hpdpgg9ri38"; depends=[]; };
@@ -3844,7 +3876,6 @@ in with self; {
   RCriteo = derive2 { name="RCriteo"; version="1.0.2"; sha256="1vyhnblw9zr5h6c25lf76p9vn95k8vr0hpq1sjkccdwl9yvsyhfy"; depends=[httr plyr RCurl XML]; };
   RCurl = derive2 { name="RCurl"; version="1.98-1.5"; sha256="13b9vlvknxlcmqgaaxb33srvyshsh59zmdsz4pfgz24i0fd7q63k"; depends=[bitops]; };
   RCytoGPS = derive2 { name="RCytoGPS"; version="1.2.1"; sha256="1ppxyrm9h09kk6lnr6yg3n3xl08l9zp4rqliz92k5h42hmgj6f02"; depends=[rjson]; };
-  RCzechia = derive2 { name="RCzechia"; version="1.8.3"; sha256="025fv6dh1q6g13wmi2q7czgm30d6j9v56ihp8cvag6yqxq60l08x"; depends=[curl httr jsonlite magrittr sf]; };
   RDIDQ = derive2 { name="RDIDQ"; version="1.0"; sha256="09gincmxv20srh4h82ld1ifwncaibic9b30i56zhy0w35353pxm2"; depends=[]; };
   RDML = derive2 { name="RDML"; version="1.0"; sha256="13ly1p42njbcygwvkyii8sjqbsywjy5w5g1kd7m8kswi5dsk3qqv"; depends=[checkmate data_table lubridate pipeR R6 readxl rlist stringr xml2]; };
   RDP = derive2 { name="RDP"; version="0.2.0"; sha256="045jkjzhwsbml95l3spwd2f187pl1rgkaig74v3z97f75mg6ga3d"; depends=[Rcpp]; };
@@ -3852,7 +3883,7 @@ in with self; {
   RDSTK = derive2 { name="RDSTK"; version="1.1"; sha256="07vfhsyah8vpvgfxfnmp5py1pxf4vvfzy8jk7zp1x2gl6dz2g7hq"; depends=[plyr RCurl rjson]; };
   RDStreeboot = derive2 { name="RDStreeboot"; version="1.0"; sha256="10ry8rna450j389cplvyvgwljxa8lli7licwdin64b1kyzy2cdn7"; depends=[]; };
   RDataCanvas = derive2 { name="RDataCanvas"; version="0.1"; sha256="1aw19lmdphxwva5cs3f4fb8hllirzfkk48nqdgrarz32l11y5z5j"; depends=[jsonlite]; };
-  RDieHarder = derive2 { name="RDieHarder"; version="0.2.1"; sha256="1lz5qb51r321wxarnzaf37zxg19fcq8blw2qw3kspgbkvx283l0w"; depends=[]; };
+  RDieHarder = derive2 { name="RDieHarder"; version="0.2.2"; sha256="1d74h2rx0qwpknn9378a2i2kbl43k6dk0cqhwp82ahrjnimvazm6"; depends=[]; };
   RDnp = derive2 { name="RDnp"; version="1.3"; sha256="1a10afwn41c0sd35i2hywg79gyf55nd212rfq5pv5inqdrr7kxym"; depends=[cellWise MASS]; };
   RDocumentation = derive2 { name="RDocumentation"; version="0.8.2"; sha256="0qdn3c5xbjyrhk56wfch50xpyyfd4f79hs0v00cqk9iwsnjlwmb5"; depends=[httr proto rjson]; };
   RDota2 = derive2 { name="RDota2"; version="0.1.6"; sha256="0fjsgg4dmzw2xwrf8jxq0f2d7f78bf67bl3ms5qcjk9kskfnymag"; depends=[httr jsonlite]; };
@@ -3875,7 +3906,7 @@ in with self; {
   REddyProc = derive2 { name="REddyProc"; version="1.3.0"; sha256="0n2izw1lq6wbygzv0rqc36yqb53hgspiz66wbn9b6f6c81vkbqhw"; depends=[bigleaf dplyr magrittr mlegp purrr Rcpp readr rlang solartime tibble]; };
   REddyProcNCDF = derive2 { name="REddyProcNCDF"; version="1.1.4"; sha256="099f4mzqj7pjlrs8rdjg44mjm0058x3pj2imrfvk892hmlk4r53p"; depends=[REddyProc]; };
   REndo = derive2 { name="REndo"; version="2.4.3"; sha256="1h7ycxwklb9dbb8q0g9cagjl93jhbjc86l25s1imdp1rqfsv8i6c"; depends=[AER corpcor data_table Formula lme4 lmtest Matrix mvtnorm optimx Rcpp RcppEigen]; };
-  RFCCA = derive2 { name="RFCCA"; version="1.0.6"; sha256="1sh5dabcdjjb3a7h35q080abrw3cpav9jd6l28kn2xdr1f2qssnc"; depends=[CCA PMA]; };
+  RFCCA = derive2 { name="RFCCA"; version="1.0.7"; sha256="0v0himz0zz6f52vvc5h33qiij0101zgihzwak8cw5193xzsfmr4g"; depends=[CCA PMA]; };
   RFGLS = derive2 { name="RFGLS"; version="1.1"; sha256="13ggxj74h5b2hfhjyc50ndxznkvlg18j80m78hkzwh25d3948fsk"; depends=[bdsmatrix Matrix]; };
   RFLPtools = derive2 { name="RFLPtools"; version="1.9"; sha256="0vcxlvfhm6sksjs7zx45jss31310fvglzaj948j49xhf08rik0iz"; depends=[RColorBrewer]; };
   RFOC = derive2 { name="RFOC"; version="3.4-6"; sha256="0cs5wmpvrlag9aisbfiwkvwcb3skv5z4sawl30krmsq49mzj7yhd"; depends=[GEOmap MASS RPMG RSEIS splancs]; };
@@ -3904,6 +3935,7 @@ in with self; {
   RGoogleFit = derive2 { name="RGoogleFit"; version="0.4.0"; sha256="0k1vvl4l6pq37llpbq996rbghdfld7mz7bhzbpw393fmrkd45vyi"; depends=[bit64 httr jsonlite RCurl]; };
   RGraphics = derive2 { name="RGraphics"; version="3.0-2"; sha256="02gp2lqc5qzid81d28cqb7x88zr0ivxppy55a9q649whcd027071"; depends=[ggplot2 gridBase gridGraphics gridSVG grImport grImport2 lattice]; };
   RGreenplum = derive2 { name="RGreenplum"; version="0.1.2"; sha256="1mc0zmmnb9306j2cjn1j71bp35ri8p35rw6rlmrqyxgpvlw09r3d"; depends=[DBI RPostgres]; };
+  RGremlinsConjoint = derive2 { name="RGremlinsConjoint"; version="0.9.0"; sha256="1ppyvb3l13xz0fihskckmm53ppgfb577n0359kc1bip4bpgky3li"; depends=[bayesm]; };
   RGtk2 = derive2 { name="RGtk2"; version="2.20.36.2"; sha256="1m3a3h3yxmr2qpcdyxrwxrdplvhb4rprvd8cnmfwk3zkazd69f9n"; depends=[]; };
   RH2 = derive2 { name="RH2"; version="0.2.4"; sha256="14590l3a2znd56nrq1zfbfv7fgii4672qy1xfwiynrh3mjad217k"; depends=[chron rJava RJDBC]; };
   RHMS = derive2 { name="RHMS"; version="1.7"; sha256="1fld5y39a4xq40wh23944ngcrkqk2pw8w9raxir9wn2z2nysr7zg"; depends=[GGally ggplot2 Hmisc network pso]; };
@@ -3928,7 +3960,7 @@ in with self; {
   RInside = derive2 { name="RInside"; version="0.2.16"; sha256="03iabanmj5xkgq7r1n1rkmzjf2zz484637nmd1qg61ga53hsvr3s"; depends=[Rcpp]; };
   RItools = derive2 { name="RItools"; version="0.1-17"; sha256="1shcvkgsyjk9jmpf7icj1zjlvmqa11scmymc8cycnffax604frbm"; depends=[abind SparseM survival svd xtable]; };
   RJDBC = derive2 { name="RJDBC"; version="0.2-8"; sha256="1qfq1vjlxhg3hmb1169zkss7kng74jhjninqkfr3cca8x1fq9593"; depends=[DBI rJava]; };
-  RJDemetra = derive2 { name="RJDemetra"; version="0.1.7"; sha256="0qyy8sssj15aq6kk0dmbac8an7nnnlihs28lkx5016gg84l0acs5"; depends=[rJava]; };
+  RJDemetra = derive2 { name="RJDemetra"; version="0.1.9"; sha256="0av3yqibyipxvch5p2zv9r82pvpvl406nxd5pkm4pnbjndw09j3s"; depends=[rJava]; };
   RJSDMX = derive2 { name="RJSDMX"; version="2.3-3"; sha256="02lbg82g4abng5vcn2g8ghvmg69q35my8smnbvd09yvha8hb49ps"; depends=[rJava zoo]; };
   RJSONIO = derive2 { name="RJSONIO"; version="1.3-1.6"; sha256="17x0ayk7daprbc8w2hvb2jl9mfnw4dic9yc3sr5adcjqfzmcklc2"; depends=[]; };
   RJSplot = derive2 { name="RJSplot"; version="2.5"; sha256="0p2zqbq29pfjl703wqqjzgmif7yfzz7l8rzarjf5axkdy7w7fcyl"; depends=[]; };
@@ -3938,7 +3970,7 @@ in with self; {
   RKEAjars = derive2 { name="RKEAjars"; version="5.0-4"; sha256="1j4643xc8k3zy4rv0h8dd154jafihnjr43wzz3d93j11g2w9xhq3"; depends=[rJava]; };
   RKEEL = derive2 { name="RKEEL"; version="1.3.3"; sha256="1m9jxi7nwkjaq172rx28fk73i144bny2h4aliqkvg2ffsdjyi685"; depends=[arules doParallel foreach gdata Matrix pmml R6 rJava RKEELdata RKEELjars XML]; };
   RKEELdata = derive2 { name="RKEELdata"; version="1.0.5"; sha256="1swzqw6j006ya48ahg6n1g8faxhqiv9v5q1zrnihpzj6868lf7y3"; depends=[]; };
-  RKEELjars = derive2 { name="RKEELjars"; version="1.0.19"; sha256="1a879b0xq5jk7r2pf4n41nm0c4himl4yqw083xh2ha4qdhab5kq0"; depends=[downloader]; };
+  RKEELjars = derive2 { name="RKEELjars"; version="1.0.20"; sha256="1wsxn9l7xdmm9q3z9lbbkdcnwsfmcrayg08m4mkbwynii5z9x548"; depends=[downloader]; };
   RKHSMetaMod = derive2 { name="RKHSMetaMod"; version="1.1"; sha256="1h8gqqfmlrzyj4n997yn13vqpaw2kwzl45gscy3fdhskzmyg0ss3"; depends=[Rcpp RcppEigen RcppGSL]; };
   RKUM = derive2 { name="RKUM"; version="0.1.1"; sha256="1w0v6l61dm7xixnyywsc7xziixz7k9r1ja26zcy77nry5kn6v60q"; depends=[]; };
   RKelly = derive2 { name="RKelly"; version="1.0"; sha256="0mkpc95j67rg2gcj2fc4w8kv4v31cpiyvh660y8kc2fjr5q4aj3l"; depends=[]; };
@@ -3948,7 +3980,7 @@ in with self; {
   RLeafAngle = derive2 { name="RLeafAngle"; version="1.0"; sha256="1anks22hn6qpac556p99kilkhc80h572dvcyz3wj1nqffdrhgrh3"; depends=[]; };
   RLogicalOps = derive2 { name="RLogicalOps"; version="0.1"; sha256="1qyn80x3x3bb5wgzyzw6pxs8a6q26yq1fkmkz7f5wywsnrj8hzfj"; depends=[rstackdeque stringr]; };
   RLumCarlo = derive2 { name="RLumCarlo"; version="0.1.7"; sha256="1r70d68y3l43pb47wxhhbgbirnnx0hyaklvphlqrhnlkxp04r4xk"; depends=[abind doParallel foreach khroma magrittr Rcpp RcppArmadillo scatterplot3d]; };
-  RLumModel = derive2 { name="RLumModel"; version="0.2.8"; sha256="129qp5y7qmqwx820fknzwdylkhc9fn17divn0572afcaj5lv9786"; depends=[deSolve Luminescence Rcpp RcppArmadillo]; };
+  RLumModel = derive2 { name="RLumModel"; version="0.2.9"; sha256="15cllm4iywa74bmxlvasy7xkr86c4ghw2ii0656q0413dgasygjr"; depends=[deSolve Luminescence Rcpp RcppArmadillo]; };
   RLumShiny = derive2 { name="RLumShiny"; version="0.2.2"; sha256="0rwl555564ccw4pdzya88s3h3q30iq5dmi77141ji8ir91x4rz3g"; depends=[data_table DT googleVis knitr Luminescence RCarb readxl rhandsontable rmarkdown shiny shinydashboard shinyjs]; };
   RM_weights = derive2 { name="RM.weights"; version="2.0"; sha256="1by1z7gwwx0jjhhvsjkr7f6m7n0x43bj080ah5275cja7xqr5nm6"; depends=[Hmisc psychotools]; };
   RM2 = derive2 { name="RM2"; version="0.0"; sha256="1v57nhwg8jrpv4zi22fhrphw0p0haynq13pg9k992sb0c72dx70a"; depends=[msm]; };
@@ -3998,7 +4030,7 @@ in with self; {
   ROCaggregator = derive2 { name="ROCaggregator"; version="1.0.1"; sha256="1l53z1xz5ww0bdd3pcmscmm4ypg0fdl4a03vv8ya2jk0zzlndlnq"; depends=[magrittr]; };
   ROCit = derive2 { name="ROCit"; version="2.1.1"; sha256="0sd6ckh7k8aqwhzzp3qff6g7d03klbr0mbp403pib3823c8pqa55"; depends=[]; };
   ROCket = derive2 { name="ROCket"; version="1.0.1"; sha256="1p5b1408fdq8z64b7ihwcdxprg5rfiq4z5annxzvmizzr6qwn8qa"; depends=[data_table]; };
-  ROCnReg = derive2 { name="ROCnReg"; version="1.0-5"; sha256="1j8q2za0mia8z1f3n71f9k4q2c1pkjqss5279ryawfzq6zy347k0"; depends=[lattice MASS Matrix moments nor1mix np pbivnorm spatstat spatstat_geom]; };
+  ROCnReg = derive2 { name="ROCnReg"; version="1.0-6"; sha256="0qsyx65db626fig5sdj2qch8cyx5h1d1kl81y5zfpfc1407gq4pz"; depends=[lattice MASS Matrix moments nor1mix np pbivnorm spatstat spatstat_geom]; };
   ROCpsych = derive2 { name="ROCpsych"; version="1.3"; sha256="0fcrhhxmvrrchbswb94liahbgz5pfhs86fbj0vby7vnakrhngh7v"; depends=[pROC reportROC]; };
   RODBC = derive2 { name="RODBC"; version="1.3-19"; sha256="1zjf5mfv906kxy4cn2l10z35l7m5878aqjx9yj6pr2ydfxlbvz1s"; depends=[]; };
   RODBCDBI = derive2 { name="RODBCDBI"; version="0.1.1"; sha256="0jkcc1lm8drsx1pkfj5h6rlbr98cgpvbf9ndzdwr048f3s8gd26i"; depends=[DBI RODBC]; };
@@ -4022,7 +4054,7 @@ in with self; {
   ROI_plugin_osqp = derive2 { name="ROI.plugin.osqp"; version="1.0-0"; sha256="09g947wx2qdimidayyn96gppiwrw28riff2wzsvvl8xvqi8nrh63"; depends=[Matrix osqp ROI slam]; };
   ROI_plugin_qpoases = derive2 { name="ROI.plugin.qpoases"; version="1.0-0"; sha256="0gha9zzjkkdr2lcalhyghh9sb5260rsaj88k37dk3qncdpk6gnw2"; depends=[checkmate Rcpp ROI slam]; };
   ROI_plugin_quadprog = derive2 { name="ROI.plugin.quadprog"; version="1.0-0"; sha256="08zgz4nnv7n455lghvzif54m4g3fzzj4czh93p6swb0kghb893wr"; depends=[quadprog ROI slam]; };
-  ROI_plugin_scs = derive2 { name="ROI.plugin.scs"; version="1.0-0"; sha256="07by36pi82893xi3c0i3amaw7wx814h8pjx44cp4icv3wyxdpqpr"; depends=[ROI scs slam]; };
+  ROI_plugin_scs = derive2 { name="ROI.plugin.scs"; version="1.1-1"; sha256="1s4qbdl7lwk0s9chymwxw8szbadbi268kr5vw9bx4ybj0iphjb6k"; depends=[ROI scs slam]; };
   ROI_plugin_symphony = derive2 { name="ROI.plugin.symphony"; version="1.0-0"; sha256="0wai3yfglx81f97v139bffxf4cziqlqki4vnq76bw4p22g7hdzl8"; depends=[ROI Rsymphony slam]; };
   ROMDB = derive2 { name="ROMDB"; version="0.1.0"; sha256="14jijcqd2zmps8sacx5nwfclj5yvqf4nx72y8pfvr0nswqqb895i"; depends=[dplyr httr magick purrr RODBC stringr]; };
   ROOPSD = derive2 { name="ROOPSD"; version="0.2.5"; sha256="11cm9bnp0355vfwwlb4x4x3vh2z8k28fjms8ah6pah59x0i536i8"; depends=[Lmoments R6]; };
@@ -4037,8 +4069,8 @@ in with self; {
   ROptEstOld = derive2 { name="ROptEstOld"; version="1.2.0"; sha256="08njyxb8bnjb9nas3szqvqkfv83lc0187b7biis2nl2rgq6rljzy"; depends=[distr distrEx evd RandVar]; };
   ROptRegTS = derive2 { name="ROptRegTS"; version="1.2.0"; sha256="1wy54kjrpfvj2k9ndmq27zzgx6aygh85f7c83g7gn8d5b2y91qy4"; depends=[distr distrEx RandVar ROptEstOld]; };
   ROptSpace = derive2 { name="ROptSpace"; version="0.2.3"; sha256="18fz285hr4fdkkbs4b13gmwz0sqbgk6di6m3c6ic0wvs35mpmcfz"; depends=[Rcpp RcppArmadillo Rdpack]; };
-  ROracle = derive2 { name="ROracle"; version="1.3-1"; sha256="07zqzwaq5iqkjcmns2ahl1l71xjlznialb3dbyl4lwsh3p3fhf2n"; depends=[DBI]; };
-  RPANDA = derive2 { name="RPANDA"; version="1.9"; sha256="16qhv4zwwrjrjxr06pimjprb74gbzpq2hkii27abln6a62m3z4kb"; depends=[ape bipartite cluster coda corpcor deSolve fields fpc geiger glassoFast igraph Matrix mvMORPH mvtnorm phytools picante pracma pspline pvclust raster Rmpfr TESS]; };
+  ROracle = derive2 { name="ROracle"; version="1.3-1.1"; sha256="1k5w6fi1f83mhlc8hx6y305llcwxl22h6lpkib1yvm4557k1c7zz"; depends=[DBI]; };
+  RPANDA = derive2 { name="RPANDA"; version="2.0"; sha256="1xszarf0857msiq27ghq8vz0sr8lziajwssm07k46x7p3jk4rk3b"; depends=[ape bipartite cluster coda deSolve fields fpc glassoFast igraph Matrix mvMORPH phytools picante pspline pvclust raster Rmpfr TESS]; };
   RPCLR = derive2 { name="RPCLR"; version="1.0"; sha256="03kpyszsjb656lfwx2yszv0a9ygxs1x1dla6mpkhcnqw00684fab"; depends=[MASS survival]; };
   RPEGLMEN = derive2 { name="RPEGLMEN"; version="1.1.1"; sha256="1hm68f6ipiy2518viz182psqgh5krq9aihid0njg4817cyssg95z"; depends=[Rcpp RcppEigen RPEIF]; };
   RPEIF = derive2 { name="RPEIF"; version="1.2.4"; sha256="002f8753gfqx1ddcb60hz7xy6l19zvp3d3arackkqjh26zcw1paj"; depends=[RobStatTM xts zoo]; };
@@ -4068,12 +4100,12 @@ in with self; {
   RRI = derive2 { name="RRI"; version="1.1"; sha256="0msdc5j5vx4snl8r3q5nn0mw2i80jds5pjykhmigcrx6jzg6h6i7"; depends=[Rcpp RcppArmadillo]; };
   RRMLRfMC = derive2 { name="RRMLRfMC"; version="0.4.0"; sha256="0y8gs9rirrcjb89jqxr7rrp89pjal7lzcscnh4kmabhih3f2d729"; depends=[nnet]; };
   RRNA = derive2 { name="RRNA"; version="1.0"; sha256="14rcqh95ygybci8hb8ays8ikb22g3850s9f3sgx3r4f0ky52dcba"; depends=[]; };
-  RRPP = derive2 { name="RRPP"; version="1.1.1"; sha256="1y3j577dxsgalc56p1hhaslc5p7jxxm0pc0gv1yz79p778xdnfhs"; depends=[ape ggplot2 Matrix]; };
+  RRPP = derive2 { name="RRPP"; version="1.1.2"; sha256="1h40gql8id8a0skvfnc2vra13g76lfhlhks4h7janjg3p4ykymib"; depends=[ape ggplot2 Matrix]; };
   RRRR = derive2 { name="RRRR"; version="1.1.0"; sha256="0h5r668qn8hp4j4zhxhn4b3lqm138n6kc1c7vf95hmbh4ah6wzf7"; depends=[expm ggplot2 magrittr matrixcalc mvtnorm]; };
   RRTCS = derive2 { name="RRTCS"; version="0.0.4"; sha256="16v6f5yvfq9l1b4h5mr4y0i2k404vdv354yz4k780w79qib7g39p"; depends=[sampling samplingVarEst]; };
   RRate = derive2 { name="RRate"; version="1.0"; sha256="1q3f2gphdf50aijnk5xqfpxcqfd4jq7byb1gpb0vcnaxgi3a9lwm"; depends=[]; };
   RRedshiftSQL = derive2 { name="RRedshiftSQL"; version="0.1.2"; sha256="03jbml8d19hcg6achnyc4hcnl5j10yvsx59j80r46zyn0flsnizq"; depends=[DBI RPostgreSQL]; };
-  RRphylo = derive2 { name="RRphylo"; version="2.5.8"; sha256="03nknmqp65ialb7xl4gfxb8zfcjhybqfgrkj4p2p1xla1s0gwxb9"; depends=[ape doParallel emmeans foreach geiger phytools]; };
+  RRphylo = derive2 { name="RRphylo"; version="2.5.9"; sha256="0w6h1k3jp6kvws7yh0fnsw7xf8yyxk9mxhxi8l9qbhvvrm9dxabr"; depends=[ape doParallel emmeans foreach geiger phytools]; };
   RRreg = derive2 { name="RRreg"; version="0.7.3"; sha256="1nk2gg41bdhfnz7plkj4rnzl40sd6jd5z9843kxijp9ymagimwx4"; depends=[doParallel foreach lme4]; };
   RSA = derive2 { name="RSA"; version="0.10.4"; sha256="0i0li587i6bjnmz9d1j1dyhpy7bfnq6298wr67fygcxfaszij16b"; depends=[aplpack ggplot2 lattice lavaan plyr RColorBrewer]; };
   RSADBE = derive2 { name="RSADBE"; version="1.0"; sha256="1nzpm88rrzavk0n8iflsx8r3s1xcry15n80zqdw6jijjycz10w1q"; depends=[]; };
@@ -4097,12 +4129,12 @@ in with self; {
   RSSampling = derive2 { name="RSSampling"; version="1.0"; sha256="0p10l7qmksx4ysz1jb84f9nbqzig8wxhwy33yk8hq29nb5i4c9ik"; depends=[LearnBayes]; };
   RSarules = derive2 { name="RSarules"; version="1.0"; sha256="0lrql4q45hyhqbix86ixl12mknnjbz3137gx2zkvqpz91bsk145j"; depends=[arules Matrix]; };
   RSauceLabs = derive2 { name="RSauceLabs"; version="0.1.6"; sha256="1p7hw6vnlg6w5ggmfpc3q3s6n1fikjkjnxzz97jifiy0zwn5dp9i"; depends=[data_table httr jsonlite whisker xml2]; };
-  RScelestial = derive2 { name="RScelestial"; version="1.0.1"; sha256="10d2kxlqy224y6qypr7g3pnbv9bkrj22zi77wg7y646f5bzdz9qd"; depends=[Rcpp]; };
-  RSclient = derive2 { name="RSclient"; version="0.7-3"; sha256="07mbw6mcin9ivsg313ycw2pi901x9vjpmi6q7sms1hml4yq50k6h"; depends=[]; };
+  RScelestial = derive2 { name="RScelestial"; version="1.0.2"; sha256="0mjh1qx7mj4s1jk2ywq13b09gks0bqla55jl6xl47749xrsl95wn"; depends=[Rcpp]; };
+  RSclient = derive2 { name="RSclient"; version="0.7-6"; sha256="0vhj2f7bgjcfbshbprqxqyxv6bxkfzn3gpjp7hqnw72da602igya"; depends=[]; };
   RSeed = derive2 { name="RSeed"; version="0.1.60"; sha256="0rvb6w4z5c2wcdgx5w6vv7c8il8d0096pgv3fyvw21ag25z605jc"; depends=[graph RBGL sybil]; };
   RSelenium = derive2 { name="RSelenium"; version="1.7.7"; sha256="1xn5fdbzmq7b1f5fc9ls23g177bmnd8bn4p4d8aafr6z3jwkmfir"; depends=[binman caTools httr openssl wdman XML]; };
   RSentiment = derive2 { name="RSentiment"; version="2.2.2"; sha256="15d1llzxg1apkwykpb7pic2d5lfj9i9a55hab067wrz2yq5jsyfa"; depends=[NLP openNLP plyr stringr]; };
-  RSiena = derive2 { name="RSiena"; version="1.3.0"; sha256="1iar7dsy0qwscvb28yrzj864sjbqjn74s4byw1di1qh01iag4f60"; depends=[lattice MASS Matrix xtable]; };
+  RSiena = derive2 { name="RSiena"; version="1.3.0.1"; sha256="0l6jh0nfsjrrqwrcrzsdl6adf485jf47bgly9smrvk1658z04m05"; depends=[lattice MASS Matrix xtable]; };
   RSiteCatalyst = derive2 { name="RSiteCatalyst"; version="1.4.16"; sha256="1plcmxj6sahdy3vvcmxry8cbq1j23bqzhnhn593bkwmzczka24cy"; depends=[base64enc digest httr jsonlite plyr stringr]; };
   RSizeBiased = derive2 { name="RSizeBiased"; version="0.1.0"; sha256="0qh1f9998c62cph590mszbwh12mpbvcnvffmxw4mib6wd4dgl723"; depends=[pracma]; };
   RSmallTelescopes = derive2 { name="RSmallTelescopes"; version="1.0.4"; sha256="16c0pfq9qp0c9b7aljp753iilk3dys14h77anwps8xg7j2lizvbh"; depends=[]; };
@@ -4133,11 +4165,11 @@ in with self; {
   RTriangle = derive2 { name="RTriangle"; version="1.6-0.10"; sha256="07ya95gmv53i2argqwgad6wd4sslql2wl1rkvsmgsvmhsb4wp9hd"; depends=[]; };
   RUVIIIC = derive2 { name="RUVIIIC"; version="1.0.19"; sha256="1px87p4nmdgkxwarsqyc91kmwr13dy16c1qqqc86qlwm2w46smf6"; depends=[progress Rcpp RcppEigen RcppProgress RSpectra]; };
   RUnit = derive2 { name="RUnit"; version="0.4.32"; sha256="1wc1gwb7yw7phf8b0gkig6c23klya3ax11c6i4s0f049k42r78r3"; depends=[]; };
-  RVA = derive2 { name="RVA"; version="0.0.4"; sha256="1j5rdpa4w1k67xzjsja7ysd5j8r3dyvjvigfn7cas4alcdmafnsi"; depends=[circlize clusterProfiler ComplexHeatmap data_table dplyr edgeR ggplot2 ggpubr gridExtra GSEABase GSVAdata haven msigdbr org_Hs_eg_db plotly purrr rlang rWikiPathways stringr tibble tidyr XML]; };
+  RVA = derive2 { name="RVA"; version="0.0.5"; sha256="1a0av2vhqnkc4w76q5dhds0p12icmkkxyr1d04rsd83srwkwh4fb"; depends=[circlize clusterProfiler ComplexHeatmap data_table dplyr edgeR ggplot2 ggpubr gridExtra GSEABase GSVAdata haven msigdbr org_Hs_eg_db plotly purrr rlang rWikiPathways stringr tibble tidyr XML]; };
   RVAideMemoire = derive2 { name="RVAideMemoire"; version="0.9-80"; sha256="1c25nck6knllcbbvk9yp82l3mpk2gym0axmfla4i3brfvz9lbqn0"; depends=[ade4 boot car FactoMineR lme4 MASS mixOmics nnet pls pspearman vegan]; };
   RVCompare = derive2 { name="RVCompare"; version="0.1.5"; sha256="17ralm3xbzgi1ngblwf6pmpaz7c5vwkfinnpwyxvlrwi8mxi554h"; depends=[ggplot2 pracma Rcpp]; };
   RVFam = derive2 { name="RVFam"; version="1.1"; sha256="0gw8rgq11zndnqmay6y3y5rmmljvwhxzm2pqa90vs5413dnchq92"; depends=[coxme kinship2 lme4 MASS Matrix survival]; };
-  RVIpkg = derive2 { name="RVIpkg"; version="0.2.6"; sha256="1l8jr7295rway21d5qr73d30mb8chbh4h01d2n87ynklhfsf1xdf"; depends=[]; };
+  RVIpkg = derive2 { name="RVIpkg"; version="0.2.8"; sha256="0hh3kqzfwbp0qc1v5baixnl3px54dwvljd1r23s8lxlg434pl7fz"; depends=[]; };
   RVenn = derive2 { name="RVenn"; version="1.1.0"; sha256="016m00xv59lkwm2is32v5nr4lw5a1ymdnz34r3ffflcv9bfrc6n4"; depends=[ggforce ggplot2 magrittr pheatmap purrr rlang vegan]; };
   RVerbalExpressions = derive2 { name="RVerbalExpressions"; version="0.1.0"; sha256="1p9wmpgqwnz95sr8km8y6kqax8fcz6sqg54wfdx44kiqkf1ybdsp"; depends=[magrittr]; };
   RVideoPoker = derive2 { name="RVideoPoker"; version="0.3"; sha256="06s4dlw0pw8rcq5b31xxqdpdk396rf27mai2vpvmn585vbm1ib7a"; depends=[pixmap rpanel tkrplot]; };
@@ -4147,7 +4179,7 @@ in with self; {
   RWBP = derive2 { name="RWBP"; version="1.0"; sha256="104vr2cdk185hh4zn3vmqvb14p1q8ifk11wdgvk7fli1m1zxxwdd"; depends=[igraph lsa RANN SnowballC]; };
   RWDataPlyr = derive2 { name="RWDataPlyr"; version="0.6.4"; sha256="1jjra885339n6kpqz28rn9byy4md4s0k47m6ll4a6srd4hsf3ni3"; depends=[data_table dplyr feather Rcpp tibble tidyr xts zoo]; };
   RWebLogo = derive2 { name="RWebLogo"; version="1.0.3"; sha256="1n65mlnr163ywjnyyngnigbj0wpgkr38c3nx8hw5r8mwjnf3d617"; depends=[findpython]; };
-  RWeka = derive2 { name="RWeka"; version="0.4-43"; sha256="16hp8vkigk7wqwz51f68g5sp65hbs2yp7srh7k881wfg6mcpl8lc"; depends=[rJava RWekajars]; };
+  RWeka = derive2 { name="RWeka"; version="0.4-44"; sha256="1j3v9hlwc4w4kinm62yy8rmqi0f21dlgjdg2ghxla0gbmqvr88zk"; depends=[rJava RWekajars]; };
   RWekajars = derive2 { name="RWekajars"; version="3.9.3-2"; sha256="06nsylv65z9hxym1b6qnwllh306bq5phsgr0qn4nyr5im8cv1rhn"; depends=[rJava]; };
   RWiener = derive2 { name="RWiener"; version="1.3-3"; sha256="0afrgflyfjv4jqm04had74zz4cs934zwvyxaan1r4qpg383kibpq"; depends=[]; };
   RWildbook = derive2 { name="RWildbook"; version="0.9.3"; sha256="1pznzmv8n33hhj61h07fha1gzafcx705n8323cnz3mx6ziijfh28"; depends=[data_table jsonlite marked]; };
@@ -4182,8 +4214,8 @@ in with self; {
   RandPro = derive2 { name="RandPro"; version="0.2.2"; sha256="092mm9gybvcby2n161nldlq8s2ja2bc43jnkln6ss3lr29rmi9b3"; depends=[caret e1071]; };
   RandVar = derive2 { name="RandVar"; version="1.2.1"; sha256="17c6bx644n604zpggmwx1z3krgd9v7c88il45cf5yhp7zf7cc718"; depends=[distr distrEx startupmsg]; };
   RandomCoefficients = derive2 { name="RandomCoefficients"; version="0.0.2"; sha256="04l0aczrlbkjk0687w2gxs85ia71yy69mgankwkl37ksznh6y81m"; depends=[fourierin ks orthopolynom polynom RCEIM rdetools robustbase sfsmisc snowfall statmod tmvtnorm VGAM]; };
-  RandomFields = derive2 { name="RandomFields"; version="3.3.10"; sha256="0jcjb5j70s3xk8nb8hc1jkzg24d41y7h5yhch79g31ch4rvfcbgp"; depends=[RandomFieldsUtils sp]; };
-  RandomFieldsUtils = derive2 { name="RandomFieldsUtils"; version="0.5.6"; sha256="17hwdiq4xx0yn6kali8ydh1i4nnszvyhjp4ksryr0856dihl83pj"; depends=[]; };
+  RandomFields = derive2 { name="RandomFields"; version="3.3.13"; sha256="0j9z7m4i6kc5v6xn6806735srxsqvmf3ghk56sss37577652my6v"; depends=[RandomFieldsUtils sp]; };
+  RandomFieldsUtils = derive2 { name="RandomFieldsUtils"; version="1.0.11"; sha256="0m7d46kp7r70v399lk9gf60m0qn548fhdsmnq8kjqmp8dw52s8dz"; depends=[]; };
   RandomForestsGLS = derive2 { name="RandomForestsGLS"; version="0.1.3"; sha256="1xqzpfgs6hdkaf99xgrxc4m5k73vpvkhpgb4bw01rhhay08zzv4g"; depends=[BRISC matrixStats pbapply randomForest]; };
   Randomuseragent = derive2 { name="Randomuseragent"; version="0.0.1"; sha256="1ym272z5a2wnprz59db8knszzqglmrdmk77r7cfyzy5jwcqzy4jn"; depends=[]; };
   RanglaPunjab = derive2 { name="RanglaPunjab"; version="2.3.4"; sha256="01j3gww9kil02d44jwlkz6j7lwn2him830bnshkly0s7mgh22pgr"; depends=[jpeg shiny tidyverse]; };
@@ -4205,7 +4237,7 @@ in with self; {
   Ravages = derive2 { name="Ravages"; version="1.0.0"; sha256="1967s8hp6nd1a1d385rx6sp4hd01h0gcd7hvdakc2lh7xbdnlj8i"; depends=[bedr BH curl dfidx Formula gaston mlogit Rcpp RcppEigen RcppParallel]; };
   RavenR = derive2 { name="RavenR"; version="2.1.4"; sha256="09gz4n1rvzzrmc1wszkyxa1zs6mj6sg9b997yiszlk89nvcbyr2v"; depends=[colorspace cowplot DiagrammeR dplyr dygraphs gdata ggplot2 igraph lubridate magrittr purrr Rcpp RCurl scales stringr tidyr xts zoo]; };
   RawHummus = derive2 { name="RawHummus"; version="0.2.0"; sha256="0zbbmkvbd5zgfpzvgcs2zjl2mych0zyfw4my34jq970ax58d4frj"; depends=[data_table dplyr kableExtra plotly purrr RaMS RColorBrewer rmarkdown shiny shinycustomloader shinydashboard shinydashboardPlus shinyFiles shinyMatrix shinyvalidate]; };
-  Rbeast = derive2 { name="Rbeast"; version="0.2.2"; sha256="12i6jm7x1hwkj6skva9sli02rm4krzb2gmzny68d9cjhdcan5baq"; depends=[]; };
+  Rbeast = derive2 { name="Rbeast"; version="0.9.1"; sha256="0avgd3kl85gw1cd3k6jw800r4a7d8qcmcakk6vjgg56friddx3c5"; depends=[]; };
   Rbent = derive2 { name="Rbent"; version="0.1.0"; sha256="0xkb57dhhfd3342rv0xwbhbhn4zp5fbfch84fbh0sickm09l9vrj"; depends=[Rfit]; };
   Rbgs = derive2 { name="Rbgs"; version="0.2"; sha256="1q0dnbcpgx7x9klr6z33z6g2p9p8mrmhnsqjy6qw15ch720rrgn3"; depends=[imager magrittr rJava]; };
   Rbitcoin = derive2 { name="Rbitcoin"; version="0.9.2"; sha256="0ndq4kg1jq6h0jxwhpdp8sw1n5shg53lwa1x0bi7rifmy0gnh66f"; depends=[data_table digest RCurl RJSONIO]; };
@@ -4268,13 +4300,13 @@ in with self; {
   RcmdrPlugin_temis = derive2 { name="RcmdrPlugin.temis"; version="0.7.10"; sha256="02rs5xdj6g57frndc87fly0ans16584j4d0rfpy1h72655cz66ab"; depends=[ca lattice latticeExtra NLP R2HTML Rcmdr RColorBrewer slam stringi tcltk2 tm zoo]; };
   Rcolombos = derive2 { name="Rcolombos"; version="2.0.2"; sha256="0l92icjqqm5fxafqwd09lnmv5x6kvjdg8cphlm37q86nslwr5rkk"; depends=[httr]; };
   Rcompadre = derive2 { name="Rcompadre"; version="1.1.0"; sha256="025r6dq5qs3ri5nkg4mr76jzps2p9y56i8514m97amq8lzrxl8h4"; depends=[popdemo tibble]; };
-  Rcplex = derive2 { name="Rcplex"; version="0.3-3"; sha256="0abmrqphrpdlc831hwbwx15z4vdgn385kxhnqlbb9v0sjmfyszsl"; depends=[slam]; };
+  Rcplex = derive2 { name="Rcplex"; version="0.3-4"; sha256="04xc5qzzwb4v44nwvc7y79kfhdyrm21ff92243a0q9fwnl684vjn"; depends=[slam]; };
   Rcpp = derive2 { name="Rcpp"; version="1.0.7"; sha256="07fwlgmx0ib4nziqbrylla2dlakw04vzny9w4qbfvnhn49rs9r8m"; depends=[]; };
   Rcpp11 = derive2 { name="Rcpp11"; version="3.1.2.0.1"; sha256="0vw41plcl7hbi0af3la0sb4x8zqnhxjpjslx8r8cllfamy9dixki"; depends=[]; };
   RcppAPT = derive2 { name="RcppAPT"; version="0.0.7"; sha256="00p4nciy6rv9plzk13sxfvdsr6m9ackjmg647pha9s8nbhlbdjf4"; depends=[Rcpp]; };
   RcppAlgos = derive2 { name="RcppAlgos"; version="2.4.3"; sha256="1vclvkd9gikx9n7cvgbf8j9sahmy0wfrgzb1hcpsdj8l6ymjc91k"; depends=[gmp Rcpp RcppThread]; };
   RcppAnnoy = derive2 { name="RcppAnnoy"; version="0.0.19"; sha256="12k8ny981dmky5js8yl6bih5r5mq3w43f2f9admhkwqn0n80kcl9"; depends=[Rcpp]; };
-  RcppArmadillo = derive2 { name="RcppArmadillo"; version="0.10.7.0.0"; sha256="1x35xb5yfslsdpaz9msl5p9f7gilnbkhwvq7pbycwasvkp2fma01"; depends=[Rcpp]; };
+  RcppArmadillo = derive2 { name="RcppArmadillo"; version="0.10.7.3.0"; sha256="0qk25x8naci76fqcd8jkv8gnba6sj61vkv9yf8498fwff1kvf41p"; depends=[Rcpp]; };
   RcppBDT = derive2 { name="RcppBDT"; version="0.2.4"; sha256="11xq2lz4n4gyqk4pz8c3zr5ll8jlh1qlbf9rbqd3q6s3qzphpybd"; depends=[BH Rcpp]; };
   RcppBigIntAlgos = derive2 { name="RcppBigIntAlgos"; version="1.0.1"; sha256="157a14kqcf0q3z01mn4w1194k2l39dd4qmqs0i115p8bvkjc6ncd"; depends=[gmp Rcpp RcppThread]; };
   RcppCCTZ = derive2 { name="RcppCCTZ"; version="0.2.9"; sha256="1bnagfhx70xmzjddbaf1cpz4hmx3mhym4fg36hr9025yl7n4agvj"; depends=[Rcpp]; };
@@ -4283,6 +4315,7 @@ in with self; {
   RcppCensSpatial = derive2 { name="RcppCensSpatial"; version="0.1.0"; sha256="0ckyl88b81l58dkk0s40mcanjqaibi106q6jsrak79as93g1dbh1"; depends=[ggplot2 gridExtra MomTrunc mvtnorm Rcpp RcppArmadillo RcppProgress Rdpack roptim tlrmvnmvt]; };
   RcppClassic = derive2 { name="RcppClassic"; version="0.9.12"; sha256="0v9v34i1c4dkplavdl14kz1k2rnk4hsaiyv6rkc9403z9isvzzr0"; depends=[Rcpp]; };
   RcppClassicExamples = derive2 { name="RcppClassicExamples"; version="0.1.2"; sha256="0dr2104miy7psr73nicfs84652ai0d5liw6wxcwyrx7fmys3p638"; depends=[Rcpp RcppClassic]; };
+  RcppClock = derive2 { name="RcppClock"; version="1.1"; sha256="0h59s6f9ib6d2n1fi94bcbqw0gcpbd5zvnc3pk4kb9lm7ih4dw7b"; depends=[ggplot2 Rcpp]; };
   RcppDE = derive2 { name="RcppDE"; version="0.1.6"; sha256="1i9jj595nqpb16y22z2b8fcf0gq1fg0pbiisbd837p1cyw4nff69"; depends=[Rcpp RcppArmadillo]; };
   RcppDL = derive2 { name="RcppDL"; version="0.0.5"; sha256="1gii00bna6k9byaax7gsx42dv1jjnkrp4clbmdq59ybq3vkvw8z2"; depends=[Rcpp]; };
   RcppDate = derive2 { name="RcppDate"; version="0.0.3"; sha256="1nwb4fdjxwn0c1ckj1fpsxl2hxk5z3sk3y5giwgdag6nfv7yfplw"; depends=[]; };
@@ -4290,7 +4323,7 @@ in with self; {
   RcppDynProg = derive2 { name="RcppDynProg"; version="0.2.0"; sha256="10nc0sx3n83kg8rddbajifr9q8iyjmm59z5xcpqfmmfi345i26al"; depends=[Rcpp RcppArmadillo wrapr]; };
   RcppEigen = derive2 { name="RcppEigen"; version="0.3.3.9.1"; sha256="0qp9gypar280lm84pc8w0fxw4jgwqygwi3qnl5sl52kpkcj8c14a"; depends=[Matrix Rcpp]; };
   RcppEigenAD = derive2 { name="RcppEigenAD"; version="1.0.0"; sha256="18zm9hsfqwiicxsdm87ix3qc261ljxxn2s736p6aayx82b6vwkz6"; depends=[BH functional memoise Rcpp RcppEigen Rdpack readr]; };
-  RcppEnsmallen = derive2 { name="RcppEnsmallen"; version="0.2.18.0.1"; sha256="0n59wh9sz723i9c3p7j6ca0ay20fxra1215xczzwgk492iqravyi"; depends=[Rcpp RcppArmadillo]; };
+  RcppEnsmallen = derive2 { name="RcppEnsmallen"; version="0.2.18.1.1"; sha256="1xbxyxsx2vczf003b9kj3xyph3bkawp3h4lvxblxmklxpd1s8lfb"; depends=[Rcpp RcppArmadillo]; };
   RcppExamples = derive2 { name="RcppExamples"; version="0.1.9"; sha256="0568zipgjxgmx086mlfpp5n7v8kf50gwrylvhl1bgvzb2vvr9dhj"; depends=[Rcpp]; };
   RcppFaddeeva = derive2 { name="RcppFaddeeva"; version="0.1.0"; sha256="1rah18sdfmbcxy83i7vc9scrwyr34kn9xljkv9pa31js68gn2jrl"; depends=[knitr Rcpp]; };
   RcppFarmHash = derive2 { name="RcppFarmHash"; version="0.0.2"; sha256="0nkismq7hmp1ahwv4z438zrcj7mqsfmas2yd6av6k2cmkgklqkbk"; depends=[Rcpp]; };
@@ -4326,20 +4359,20 @@ in with self; {
   RcppZiggurat = derive2 { name="RcppZiggurat"; version="0.1.6"; sha256="0wgd1v2p7zajnbrjf3hfi56p3pk3ld6iwkanbb04bjbnlif2ay4w"; depends=[Rcpp RcppGSL]; };
   Rcrawler = derive2 { name="Rcrawler"; version="0.1.9-1"; sha256="1m6b1h72h8qjqcg3lzw6im6lpnkxhjg65g9fdjjqay6vy52ynznj"; depends=[callr data_table doParallel foreach httr jsonlite selectr webdriver xml2]; };
   Rcriticor = derive2 { name="Rcriticor"; version="2.0"; sha256="1cnmmcdp2g3syrlld1pm7101cbzxh02cpvqvgsj7mp6zxm2k5plv"; depends=[]; };
-  Rcsdp = derive2 { name="Rcsdp"; version="0.1.57.1"; sha256="1dya0c0fcwr6ydcamz8m06nnq0b80vg7b22dg5jv3qi1n1fgp4lv"; depends=[]; };
+  Rcsdp = derive2 { name="Rcsdp"; version="0.1.57.2"; sha256="07rjqllimd78801v0np56nj1sc98wa0v34azgmjli8ah6z9q82m7"; depends=[]; };
   Rcssplot = derive2 { name="Rcssplot"; version="1.0.0"; sha256="0hnzwjwk9zh4zbzy8sa0z6amikvpd9k1p1abd38khr8q8k1k8jiv"; depends=[]; };
   Rcurvep = derive2 { name="Rcurvep"; version="1.2.0"; sha256="1j067b98hcwm2ha0yrzbwjm54f4z5yqi04y9jkh9k2avpcpdbqxx"; depends=[boot dplyr ggplot2 magrittr purrr Rdpack rlang stringr tibble tidyr tidyselect]; };
   Rd2md = derive2 { name="Rd2md"; version="0.0.5"; sha256="1kqni87jg3avpcir1ls2kkf6qafkkdkcv51d9azsbqmji5168vlf"; depends=[knitr]; };
   Rd2roxygen = derive2 { name="Rd2roxygen"; version="1.12"; sha256="0ajbi1v2hgfal5phrgdp172qkl0n1x67pqi0srbclk1ymjnlnrjh"; depends=[formatR roxygen2 xfun]; };
   Rdca = derive2 { name="Rdca"; version="0.1.0"; sha256="06s4n5xpla937q9f55xmsickvdiwiapxmwqvn6k0zsacisscaagl"; depends=[dplyr magrittr minpack_lm Rcpp RcppArmadillo Rdpack]; };
-  Rdiagnosislist = derive2 { name="Rdiagnosislist"; version="0.2"; sha256="0x08c5093kqjaw5hw7y2xhyshp25rlfmh3q7508cj1xk41msygx8"; depends=[bit64 data_table]; };
+  Rdiagnosislist = derive2 { name="Rdiagnosislist"; version="1.0"; sha256="0f7dikc23z7gyhi29dg2l4l1q178d16nad98xvmdbygah8k1b377"; depends=[bit64 data_table]; };
   Rdice = derive2 { name="Rdice"; version="1.0.0"; sha256="1xibvm690808p2g3jch7rh1825yrpgln2hjfclgxjwn822qvs4xr"; depends=[data_table]; };
   Rdimtools = derive2 { name="Rdimtools"; version="1.0.8"; sha256="0hzr8yiiwjik0ppr7lak864nngr9i68ib01x9v4g86ixmgakha0w"; depends=[CVXR maotai MASS mclustcomp RANN Rcpp RcppArmadillo RcppDE RcppDist Rcsdp Rdpack RSpectra]; };
   Rdistance = derive2 { name="Rdistance"; version="2.1.3"; sha256="03wh6y9h5jgfc6xdncpgyz0v7lqavikp3pf5wwfmm2rqfj7yjr8c"; depends=[]; };
   Rdpack = derive2 { name="Rdpack"; version="2.1.2"; sha256="0s51c5fw1ka75b8cxk5bh27h6wcy5169yl93sjlxji2k27n9fj3i"; depends=[rbibutils]; };
   Rdroolsjars = derive2 { name="Rdroolsjars"; version="1.0.1"; sha256="1l9bc1bwpj10irr973hzkhr04i1f3g998n8hcl2k2i9kgv1naqmz"; depends=[rJava]; };
   Rdrw = derive2 { name="Rdrw"; version="1.0.2"; sha256="1487r8z6h1y0v6fxkp7qfbh7j96hw8gqbb0fc90m4cxwz0hrqrn2"; depends=[mvtnorm]; };
-  Rdsdp = derive2 { name="Rdsdp"; version="1.0.5"; sha256="04268fbajm7pgi5mxpghzw0yjwwx1dy9vdi6yhr20q2lmi6xh19w"; depends=[]; };
+  Rdsdp = derive2 { name="Rdsdp"; version="1.0.5.1"; sha256="0x5dcgl25i6j2pg6d69rinal0yi8w0jwlfg05bnk9bg9v7i7db67"; depends=[]; };
   Rdsm = derive2 { name="Rdsm"; version="2.1.1"; sha256="07fc6c2hv0vvg15va552y54cla1mrqsd75w3zh02vc7yd226l4rj"; depends=[bigmemory]; };
   Rdta = derive2 { name="Rdta"; version="1.0.0"; sha256="1zmyh61wrzqwyfjbfcxg41cri7hy9r0jfwnixcvd086y0vxq7fdn"; depends=[MCMCpack mvtnorm Rdpack]; };
   Rdtq = derive2 { name="Rdtq"; version="0.1"; sha256="114pyf95nl132014ygn84xi41c2zf1ii2wfgd1acwnnmfzvdw24s"; depends=[Matrix Rcpp]; };
@@ -4413,8 +4446,7 @@ in with self; {
   Rgbp = derive2 { name="Rgbp"; version="1.1.4"; sha256="1y51sms321sbrl3rgzp5hq4y5mqkrjxsyrq75gkcbwfvlakjcfrg"; depends=[mnormt sn]; };
   Rglpk = derive2 { name="Rglpk"; version="0.6-4"; sha256="19mzpyimzq9zqnbi05j79b2di3nzaln8swggs9p8sqdr60qvr3d2"; depends=[slam]; };
   RgoogleMaps = derive2 { name="RgoogleMaps"; version="1.4.5.3"; sha256="02v8k0bw70q4qwx4lcdy8p25q7n3ql2ll46lfpqllxa1p26svmfi"; depends=[png sp]; };
-  Rhpc = derive2 { name="Rhpc"; version="0.21-247"; sha256="0r4zikqzkcyyvywxq1s8jcq6h559mxilkmzpnl79781hh537jvii"; depends=[]; };
-  RhpcBLASctl = derive2 { name="RhpcBLASctl"; version="0.21-247"; sha256="09276fpkj6xa0zpzzdckclj923b0xr0rhfjiiwfli3kyqi2m37v2"; depends=[]; };
+  RhpcBLASctl = derive2 { name="RhpcBLASctl"; version="0.21-247.1"; sha256="0scpr6jq25xx7wmqyc380ann4h536ll0g7wblikk25yqvpamzrav"; depends=[]; };
   RichR = derive2 { name="RichR"; version="1.0.0"; sha256="0z0ri90jqdmw0vwxd1b4wr9if5cgm1gqpf6g9p1fdvncf4sdi9by"; depends=[magrittr metap plyr reshape2]; };
   RidgeFusion = derive2 { name="RidgeFusion"; version="1.0-3"; sha256="10llmrsfpcqrkcbw7zj44kvfy7ywn9rk49n7zplilz8h94zzcmjv"; depends=[mvtnorm]; };
   Ridit = derive2 { name="Ridit"; version="1.1"; sha256="02cni6hzf1bsns7vi8vklnhc0pfb5vwqhjnnfnjnnaxpzpsbvdfn"; depends=[]; };
@@ -4444,7 +4476,7 @@ in with self; {
   RmarineHeatWaves = derive2 { name="RmarineHeatWaves"; version="0.17.0"; sha256="09lrrxnkkfnbidnmag1czx2xzssdl09348nkc6pqgq6xz36a3mqc"; depends=[dplyr ggplot2 lazyeval lubridate plyr raster rlang tibble tidyr zoo]; };
   RmecabKo = derive2 { name="RmecabKo"; version="0.1.6.2"; sha256="1i08wlfd14wmvwrsvjyhgzxkwzfp4jiwbzymw8m25pvyjxgi7jmy"; depends=[Rcpp stringr]; };
   Rmisc = derive2 { name="Rmisc"; version="1.5"; sha256="1ijjhfy3v91fspid77rrkc5dkcb2lav37wc3f4k5lwrn24wzy5y8"; depends=[lattice plyr]; };
-  Rmixmod = derive2 { name="Rmixmod"; version="2.1.5"; sha256="0cl0bl7554abjwz2as8gqvrzqswlw5727dac5302p7ksy3id9a1j"; depends=[Rcpp RcppEigen]; };
+  Rmixmod = derive2 { name="Rmixmod"; version="2.1.6"; sha256="0vrpqyckjsscgdh5yny4d1jkq16w3kd8nl97ycdc2vmz1q6y1a6s"; depends=[Rcpp RcppEigen]; };
   RmixmodCombi = derive2 { name="RmixmodCombi"; version="1.0"; sha256="0cwcyclq143938wby0aj265xyib6gbca1br3x09ijliaj3pjgdqi"; depends=[Rcpp Rmixmod]; };
   Rmosek = derive2 { name="Rmosek"; version="1.3.5"; sha256="18q39n2p3gms9zqrl8g15rjjk4v64365v0rm8r7zvvivh1hy5xa0"; depends=[]; };
   Rmpfr = derive2 { name="Rmpfr"; version="0.8-7"; sha256="1ljpbxvm4agbxnab5dfffbpw5k964hy3gw57dzydq1gpbxwdphlk"; depends=[gmp]; };
@@ -4452,10 +4484,10 @@ in with self; {
   Rmst = derive2 { name="Rmst"; version="0.0.3"; sha256="1fykpii17k460qlsjhhh5vag02lhkyk5l3zjmg8hifqp0cjhz2fl"; depends=[ggplot2 Rata reshape2 Rirt]; };
   RnavGraphImageData = derive2 { name="RnavGraphImageData"; version="0.0.4"; sha256="1k1gnkghap878fck0bbz9mm0fr4cli6lh1d11r0cf47fvl6cc4gr"; depends=[]; };
   Rnightly = derive2 { name="Rnightly"; version="0.1.0"; sha256="08sb4ic7my8b6xcjn9vim8wp4z3kvk0gyp604dg1az7czc7ics5r"; depends=[glue htmltools]; };
-  Rnmr1D = derive2 { name="Rnmr1D"; version="1.2.5"; sha256="0z97pmkksma225s948r0myd4638cy8vl1x2244w1r6n0cybymnd9"; depends=[base64enc doParallel foreach ggplot2 igraph impute MASS MassSpecWavelet Matrix plotly plyr ptw Rcpp signal speaq XML]; };
+  Rnmr1D = derive2 { name="Rnmr1D"; version="1.3.0"; sha256="1x06a2bsfpx27pgpxj0dih72pav26g3j0lmh0fa8gjw45jc64f4a"; depends=[base64enc doParallel foreach ggplot2 igraph impute MASS MassSpecWavelet Matrix minqa plotly plyr ptw Rcpp signal speaq XML]; };
   Rnumerai = derive2 { name="Rnumerai"; version="2.1.4"; sha256="0zxpim1wgymdhdyl7dcvc16iic57wmn8qvxicps9kgr8wxgic0p8"; depends=[arrow data_table dplyr ggplot2 httr lubridate purrr tidyr]; };
   Rnvd3 = derive2 { name="Rnvd3"; version="1.0.0"; sha256="13l5vcbcm88jfsc11ijkvr1s8qk8fflclazs4kl1k2wzpnlr6z6a"; depends=[data_table htmltools htmlwidgets jsonlite lazyeval lubridate viridisLite]; };
-  RoBMA = derive2 { name="RoBMA"; version="2.1.0"; sha256="1kjp3kn036k4s3sc9dch4cg9iqql2nymax6hhmzm7zaxiq3bwxrl"; depends=[BayesTools bridgesampling callr coda extraDistr ggplot2 psych Rdpack rjags runjags scales]; };
+  RoBMA = derive2 { name="RoBMA"; version="2.1.1"; sha256="0i4pawqsa4iy0xa1sahnbchbrip2cbqklfks29ffjwa511h8g510"; depends=[BayesTools bridgesampling callr coda extraDistr ggplot2 psych Rdpack rjags runjags scales]; };
   RobAStBase = derive2 { name="RobAStBase"; version="1.2.1"; sha256="0dn93bcyz9kxbj38sc1wisfa6v0666v9gk6y3zq0ihjkkhkmdwq3"; depends=[distr distrEx distrMod RandVar rrcov startupmsg]; };
   RobAStRDA = derive2 { name="RobAStRDA"; version="1.2.0"; sha256="1s84j5in4av9zbbszv8j2rpigrd9ws9h4hz64jw7xagsj3xb49kz"; depends=[]; };
   RobExtremes = derive2 { name="RobExtremes"; version="1.2.0"; sha256="150p94f0g75g54qcaq4x45lk4sxiyvv1zs4hxkicf46raybvsv89"; depends=[actuar distr distrEx distrMod evd RandVar RobAStBase RobAStRDA robustbase ROptEst startupmsg]; };
@@ -4471,14 +4503,14 @@ in with self; {
   RobinHood = derive2 { name="RobinHood"; version="1.6"; sha256="1513z92kk7p1d25zlm597yfswdx4x2w880366cs06j7nfg32izir"; depends=[dplyr httr jsonlite lubridate magrittr profvis uuid]; };
   Robocoap = derive2 { name="Robocoap"; version="0.1-1"; sha256="0aj6iv85a1zfaknjhrzf6lnf0qn726dvnj4dywg9nii1kkqrkq2w"; depends=[data_table igraph markovchain tm]; };
   RobustAFT = derive2 { name="RobustAFT"; version="1.4-5"; sha256="1i119qqlavfj7k0srb8fbbyy2nhsjv9rgrni854liizr9m51cgac"; depends=[robustbase survival]; };
-  RobustBF = derive2 { name="RobustBF"; version="0.1.0"; sha256="0wi0k1cjalj1bg5fkzp69mlxl3nlc26xj229gbr9i168bri03sf7"; depends=[]; };
+  RobustBF = derive2 { name="RobustBF"; version="0.2.0"; sha256="137lsk72sx29lhkc1s698k015vvbmdzb23i8pnlk5204bjfqzch8"; depends=[]; };
   RobustBayesianCopas = derive2 { name="RobustBayesianCopas"; version="2.0"; sha256="0cbibfp4y45cc1disp2r37v0jln0cd9gy3d77z3k9ybj1gg8wa88"; depends=[rjags statip]; };
   RobustCalibration = derive2 { name="RobustCalibration"; version="0.5.1"; sha256="0wsnvryvrl37acljrda2dm1d8aynqiy66yd2i857m035whixfpqa"; depends=[Rcpp RcppEigen RobustGaSP]; };
   RobustGaSP = derive2 { name="RobustGaSP"; version="0.6.3"; sha256="14frbm41f75664ik520724psnh6h24qhp09fbwbcm6waqavs3q12"; depends=[nloptr Rcpp RcppEigen]; };
   RobustLinearReg = derive2 { name="RobustLinearReg"; version="1.2.0"; sha256="06137f516gyj64qdmwby7m1xnvj4hxzpqj454jn0xcinvl89380w"; depends=[]; };
   RobustRankAggreg = derive2 { name="RobustRankAggreg"; version="1.1"; sha256="1pslqyr1lji1zvcrwyax4zg2s81p1jnhfldz8mdfhsp5y7v8iar3"; depends=[]; };
   RockFab = derive2 { name="RockFab"; version="1.2"; sha256="1b5mhfll5vmqwl4pblmclyx9604vn07jyza02rm0jcsx915ms8sc"; depends=[EBImage rgl]; };
-  Rodam = derive2 { name="Rodam"; version="0.1.10"; sha256="07ydws3b4z88v9iah3wyj3y5ar89f72g54qlz0h2p56785jz0jci"; depends=[httr]; };
+  Rodam = derive2 { name="Rodam"; version="0.1.12"; sha256="01pjyz4sjdvmjicvajvhryv9b3kzwdyba0vwj0gvyrf6wiahv4qx"; depends=[httr]; };
   Rogue = derive2 { name="Rogue"; version="2.0.0"; sha256="1dxyxgwy0hylbbgi9vc6g8cll2qxim2wl9zva643g4aq4da5wwsg"; depends=[ape cli fastmatch matrixStats Rdpack Rfast TreeDist TreeTools]; };
   RolWinMulCor = derive2 { name="RolWinMulCor"; version="1.2.0"; sha256="0vfsgp0qvv6pnpai8nyy0xzzlzyjwx98xrhlwlks9dbm84wg8vqr"; depends=[colorspace gtools pracma scales zoo]; };
   RonFHIR = derive2 { name="RonFHIR"; version="0.4.0"; sha256="1ajpgpp300m0zzqzzwsn8sfy8x751hrr8py9n9xvzjmkgyrh4hhw"; depends=[httr jsonlite R6 stringr]; };
@@ -4491,13 +4523,14 @@ in with self; {
   RoughSets = derive2 { name="RoughSets"; version="1.3-7"; sha256="0g6nx0cak6619hxv1fq3b30xv0bdwxb776qkdj6ihig6nhkm2hkj"; depends=[Rcpp]; };
   RoundAndRound = derive2 { name="RoundAndRound"; version="0.0.1"; sha256="1q3xb6y9ip8csivd0qijifxsm3h7zkwz8lxfi4ffdcgrvbl03v8q"; depends=[geometry rgl]; };
   Routliers = derive2 { name="Routliers"; version="0.0.0.3"; sha256="1yrzl3gqh7xkclqdqjwy4yn7qawixpb9mzw31a6wxnrr09hzv989"; depends=[ggplot2 MASS]; };
+  Rpadrino = derive2 { name="Rpadrino"; version="0.0.2"; sha256="02vzw19gl4x3xm92v5sfxiw5b9mzrzdl6drc6gy444f55is2dzqb"; depends=[ggplot2 ipmr magrittr mvtnorm purrr rlang rmarkdown truncdist]; };
   Rpdb = derive2 { name="Rpdb"; version="2.3"; sha256="0zy5f7bli6ppc9giwf8845mzjcv54r2sqb8hxwgbn9k6rjlszgi8"; depends=[rgl]; };
   RpeakChrom = derive2 { name="RpeakChrom"; version="1.1.0"; sha256="1r8f6knpz83arz2kabizx5yyh1myg0h310qlwh8rmy88cdxi1ps9"; depends=[ggplot2 minpack_lm pracma ptw]; };
   Rphylip = derive2 { name="Rphylip"; version="0.1-23"; sha256="0kpqmik4bhr74ib8yvaavr10z4v4w3li5vibdhz7lvz35jfirg9r"; depends=[ape]; };
   Rphylopars = derive2 { name="Rphylopars"; version="0.3.2"; sha256="1cpq8581lk2bzz59r4kwdpg6yc9a2qidnrz3wnky2y2z11gyy47v"; depends=[ape doBy geiger MASS Matrix phylolm phytools Rcpp RcppArmadillo]; };
   Rpoet = derive2 { name="Rpoet"; version="1.1.0"; sha256="11gp4zg0wc2a21956355rkr3i3dyaabfz0z30z4phn8s7y3yqr92"; depends=[]; };
   Rpoppler = derive2 { name="Rpoppler"; version="0.1-0"; sha256="19nvv45ahp0c241p1xzlq0sq5qarqg66jw5f1anhqnfi2hi91hcm"; depends=[]; };
-  RprobitB = derive2 { name="RprobitB"; version="0.1.1"; sha256="1wczz78mgz6pjszx4lwv17j83c1aqw2h56865ysisi5v9ddvs0aa"; depends=[mvtnorm Rcpp RcppArmadillo viridis]; };
+  RprobitB = derive2 { name="RprobitB"; version="1.0.0"; sha256="0707q72j0q1w17fvbj5dw1yf3xk0a62y2654g5cj5zgglxclyd6z"; depends=[mvtnorm Rcpp RcppArmadillo viridis]; };
   Rprofet = derive2 { name="Rprofet"; version="2.2.1"; sha256="150123vxdd31p96f3vsri46ryfng2xvnjgm6mdiqczg48xyfpbdp"; depends=[binr ClustOfVar ggplot2 gridExtra plyr sqldf stringr]; };
   Rpvt = derive2 { name="Rpvt"; version="0.1.1"; sha256="0ggd6ikp2s9z4086y8w3qzb9jcyyqpby41p3ayjwam94skh154mf"; depends=[Rcpp RcppArmadillo Rdpack]; };
   Rquake = derive2 { name="Rquake"; version="2.4-4"; sha256="1929qxqbb6s316zb9x2q1kwz2pvwpvqr1w6iw8vm5vijyf1nvv30"; depends=[GEOmap MBA minpack_lm RPMG RSEIS]; };
@@ -4509,7 +4542,7 @@ in with self; {
   Rsagacmd = derive2 { name="Rsagacmd"; version="0.1.1"; sha256="1x9bsl1gn16cld50a8xdzpvb1y0b5ma2jdald91hpsygp7kf25nm"; depends=[foreign processx raster rgdal rlang sf stars stringr terra tibble XML]; };
   Rsampling = derive2 { name="Rsampling"; version="0.1.1"; sha256="14rp3j7iaii4rc3jkbijmbgvlagxxqjkz3vvfwwpxix43rsi8zsk"; depends=[]; };
   Rsconctdply = derive2 { name="Rsconctdply"; version="0.1.3"; sha256="12xc1laxgivv4szp8341pvhmxnzzzzc2s4jhnqsqrbx71lbd9szg"; depends=[dplyr rjson rsconnect]; };
-  Rserve = derive2 { name="Rserve"; version="1.7-3.1"; sha256="16cg0cak9pvd9l35fjy1lsplxr5ncvb4apzg5mish5kff0cyk89v"; depends=[]; };
+  Rserve = derive2 { name="Rserve"; version="1.8-10"; sha256="0b2x6kqrc23xah6bg7c6ncmq8wkj4z898r2qjwjyinsq965a4qxg"; depends=[]; };
   Rsfar = derive2 { name="Rsfar"; version="0.0.1"; sha256="1xskvvvavkdyjhb99qlii9qc0q1m36mxx6g0ybgwbq26lq4ypq7l"; depends=[fda]; };
   Rsgf = derive2 { name="Rsgf"; version="1.0.0"; sha256="1d2bk20ixnfkzbimvsj56arf7brgkwlyrs80snfn5cnvmwic0h8i"; depends=[ggplot2 png stringi stringr]; };
   RsimMosaic = derive2 { name="RsimMosaic"; version="1.0.3"; sha256="0jlzrs9xxlpazvq3iw8znk0bd00bzlry7bgxsxq7xl23akizj0ji"; depends=[fields jpeg RANN]; };
@@ -4520,13 +4553,14 @@ in with self; {
   RsqMed = derive2 { name="RsqMed"; version="0.1.7.1"; sha256="18r78svwbnri5283s5nxg4vrp29r6xx13h0n6w634jdpwaiw56gk"; depends=[GMMAT SIS]; };
   Rssa = derive2 { name="Rssa"; version="1.0.4"; sha256="19q87g1z242hm2n4jb93qyplliqsj99bvfwm4vq54bbqyqbba5a1"; depends=[forecast lattice svd]; };
   RstoxData = derive2 { name="RstoxData"; version="1.2.1"; sha256="0xfznv0nl7xymlxbd7g0lbxqw1zcyc9mm4mx0nwpw896vz7dvyvw"; depends=[data_table Rcpp stringi units xml2 xslt]; };
-  Rsurrogate = derive2 { name="Rsurrogate"; version="3.0"; sha256="1xfz3m5d17sj8f8swvxrx42cpgvn8h7840wg55gdacybw7ng2dw0"; depends=[Matrix survival]; };
+  Rsurrogate = derive2 { name="Rsurrogate"; version="3.1"; sha256="1l80xl7q6w97m80wj2639rhbqvxyl87r9lisk8cjf2bvcmf0spmb"; depends=[Matrix survival]; };
   Rsymphony = derive2 { name="Rsymphony"; version="0.1-31"; sha256="1acvxh2y9gvcv9cz13ahvsz89w39h35hmjxj2vf0ik3finbi50r8"; depends=[]; };
   RtD3 = derive2 { name="RtD3"; version="0.0.1"; sha256="0zbm9pf1z8xl99aj64xy8q3hly98c2rzy34fzkbjyndysvxf9032"; depends=[data_table geojsonsf htmlwidgets jsonlite purrr]; };
   Rtauchen = derive2 { name="Rtauchen"; version="1.0"; sha256="09282k6qsjxgm26682npfjymmbx5g8flcc44awmkjl2k4fa1q9ha"; depends=[]; };
   Rthingsboard = derive2 { name="Rthingsboard"; version="0.2.4"; sha256="0577fb7f1dm5a3xz6q9gmg97i2080hv2qpq944wilfmfzz0xa4h1"; depends=[dplyr httr logger]; };
   Rtnmin = derive2 { name="Rtnmin"; version="2016-7.7"; sha256="0f8ii87v29v61b93hx2yxdppp3nvgnl5imp80sbb4bjsdg0mf989"; depends=[]; };
   Rtrack = derive2 { name="Rtrack"; version="1.0.0"; sha256="01xgbz37rsbjkix9nlx64qyimsbbgsmyswcv4jbpqasvkp6d480q"; depends=[crayon Hmisc KernSmooth openxlsx pbapply randomForest raster readxl rgeos rjson sp]; };
+  Rtropical = derive2 { name="Rtropical"; version="1.2.1"; sha256="1r4585z1fna9s8whaq1w0drndg9cpqmrmqylj3m2ahfppb0xr3ic"; depends=[ape caret lpSolve lpSolveAPI RcppAlgos Rfast]; };
   Rtsne = derive2 { name="Rtsne"; version="0.15"; sha256="0v17vxizrs1msay24xl2bckfajr2c82wpqj07lyssbrq197nwdsn"; depends=[Rcpp]; };
   Rttf2pt1 = derive2 { name="Rttf2pt1"; version="1.3.9"; sha256="0w9ybqvr4bvpa2dyfkrscg4in0x2dkzmxdn1n6003j1rss7f8rw6"; depends=[]; };
   RtutoR = derive2 { name="RtutoR"; version="1.2"; sha256="19wmi30b5i6zj673d76gxl6j0k3ppfyl5fqrcs0dwmmadrrvbajq"; depends=[colourpicker devtools dplyr DT FSelector ggplot2 ggthemes officer plotly rlang rmarkdown shiny shinyBS shinydashboard shinyjs tidyr]; };
@@ -4543,7 +4577,7 @@ in with self; {
   Rwofost = derive2 { name="Rwofost"; version="0.8-3"; sha256="1x6ia49xrdqcxilq12g47gd00smm5jdrq7xavndd3dcnvl1nqk1y"; depends=[meteor Rcpp]; };
   Rwordseg = derive2 { name="Rwordseg"; version="0.3-2"; sha256="10jhfalh45rrcm76hwz4b5yl408ndx2wkr0i3q1avx6z6i45d8s6"; depends=[HMM tmcn]; };
   Rwtss = derive2 { name="Rwtss"; version="0.9.1"; sha256="0ihpn96l0bj34ph747q7rfq78sbjjb4hhdjr2a7agc97rrggcr94"; depends=[assertthat dplyr geosphere ggplot2 httr jsonlite lubridate magrittr purrr reshape2 stringr tibble zoo]; };
-  RxCEcolInf = derive2 { name="RxCEcolInf"; version="0.1-4"; sha256="0qyhxqd5yi4d1prj0i4g3k29zi0mx6wkjx24ynb4arxw6h1vabh4"; depends=[coda lattice MASS MCMCpack mvtnorm]; };
+  RxCEcolInf = derive2 { name="RxCEcolInf"; version="0.1-5"; sha256="01n74xnhz1fdvb63g0lxkzsdp1frspin4a764l358immjivdrx2v"; depends=[coda lattice MASS MCMCpack mvtnorm]; };
   RxODE = derive2 { name="RxODE"; version="1.1.2"; sha256="12x8mi2d4s1qpqic8fp2axgn1gj4nfylsp4i5wkl1if6876kl3ip"; depends=[assertthat backports BH checkmate cli dparser ggplot2 inline lotri magrittr memoise PreciseSums qs Rcpp RcppArmadillo RcppEigen rex sitmo StanHeaders sys]; };
   RxnSim = derive2 { name="RxnSim"; version="1.0.3"; sha256="0fi4aic2brfbl6rsnnfwqq7l8ygvlmr98w0v749l3djpgn7sfrig"; depends=[data_table fingerprint rcdk rJava]; };
   Ryacas = derive2 { name="Ryacas"; version="1.1.3.1"; sha256="0c258p7ibas4xbq1wh8c1nfqf6r9d0hicrf8mkkyriw4mb6wmzqq"; depends=[magrittr Rcpp]; };
@@ -4565,7 +4599,7 @@ in with self; {
   SAMTx = derive2 { name="SAMTx"; version="0.3.0"; sha256="18r03w74fcra3c0xa76jnkkms9pjirdmgb2k1dnz7symqf9cvc5l"; depends=[BART]; };
   SAMUR = derive2 { name="SAMUR"; version="0.6"; sha256="0iyv7ljjrgakgdmpylcxk3m3xbm2xwc6lbjvl7sk1pmxvpx3hhhc"; depends=[Matching]; };
   SAMURAI = derive2 { name="SAMURAI"; version="1.2.1"; sha256="02fipbjcsbp2b2957x6183z20icv1yly2pd1747nyww9bmpa7ycm"; depends=[metafor]; };
-  SAMtool = derive2 { name="SAMtool"; version="1.2.2"; sha256="0mpky23njv2svmph0flw029iv3dxsw43q4j5if0zadlnqpz7qvnz"; depends=[corpcor dplyr gplots MSEtool RcppEigen rmarkdown snowfall TMB vars]; };
+  SAMtool = derive2 { name="SAMtool"; version="1.2.3"; sha256="0kkwqpzvzg5kkxdznkxr3a0bl4kb2fi8wfyhx8ihwvdira3fp75r"; depends=[corpcor dplyr gplots MSEtool RcppEigen rmarkdown snowfall TMB vars]; };
   SAPP = derive2 { name="SAPP"; version="1.0.8"; sha256="1lb148s8rdx1phmx8ihncgb45iqxzracxznys7zyzs8qcf6hm5wq"; depends=[]; };
   SAR = derive2 { name="SAR"; version="1.0.3"; sha256="1cnf0hsq82lzssvz5xs2abvnrjxda0g6mjx70a1j223zdwjqmw64"; depends=[AzureRMR AzureStor dplyr httr jsonlite Matrix R6 Rcpp RcppArmadillo RcppParallel]; };
   SARP_compo = derive2 { name="SARP.compo"; version="0.1.5"; sha256="17pvgc7alv59lxnrz1rj5gdl2lg90jxfwkyn8j802n22r3bmzcsm"; depends=[car igraph]; };
@@ -4584,7 +4618,7 @@ in with self; {
   SBRect = derive2 { name="SBRect"; version="0.26"; sha256="16g0ciy9q9irypsl8x36i0lavl41j3af13r2si0by8q6wj56pxi4"; depends=[rJava]; };
   SBSA = derive2 { name="SBSA"; version="0.2.3"; sha256="1v23lzzziyjlvgn5p2n1qcq2zv9hsyz2w15lbnfi5wvinxhlg8sc"; depends=[Rcpp RcppArmadillo]; };
   SBSDiff = derive2 { name="SBSDiff"; version="0.1.0"; sha256="0mw1646dmhxw6zz4pq7j0g3mf9bjn72g43sq7m72r8ma8ciqj7r2"; depends=[]; };
-  SBdecomp = derive2 { name="SBdecomp"; version="1.1"; sha256="0i7nkmaix2w0kxjaxhkkizpicvm18838qa6n39azxsjqph04ykmd"; depends=[survey twang]; };
+  SBdecomp = derive2 { name="SBdecomp"; version="1.2"; sha256="0p3f028c674j6bl82sgmbwlim2hljxm38qiff78pzn5yx34y3r0b"; depends=[survey twang]; };
   SBmedian = derive2 { name="SBmedian"; version="0.1.1"; sha256="1pxwsp6z1qvhmzprhr8f8i1id5zy4ppq7dxbd6ny2h1r1zvy16xm"; depends=[expm Rcpp RcppArmadillo Rdpack]; };
   SC_MEB = derive2 { name="SC.MEB"; version="1.1"; sha256="04vv1ckirfmjvb3hfk3ldma96j4c6ykjgf77f13n550cvp2bhp3w"; depends=[BiocSingular ggplot2 Matrix mclust purrr Rcpp RcppArmadillo S4Vectors scater scran SingleCellExperiment SummarizedExperiment]; };
   SC2API = derive2 { name="SC2API"; version="1.0.0"; sha256="1z3rch5238qih5054ial8vjcpj1cdmzgc7cga9agnp58y19a1lcj"; depends=[data_table httr jsonlite]; };
@@ -4607,6 +4641,7 @@ in with self; {
   SCORPIUS = derive2 { name="SCORPIUS"; version="1.0.8"; sha256="0a9gl5fk3v1nmh5vd228pp2six9r6qy296w5xzhcc5by706r5xq7"; depends=[dplyr dynutils dynwrap ggplot2 lmds MASS Matrix mclust pbapply pheatmap princurve purrr ranger RANN RColorBrewer reshape2 tidyr TSP]; };
   SCOUTer = derive2 { name="SCOUTer"; version="1.0.0"; sha256="1s0mmzfz0zhr5v4wagcjwdba8a5f57xr26vwml92dnw6lai37pj4"; depends=[ggplot2 ggpubr]; };
   SCPME = derive2 { name="SCPME"; version="1.0"; sha256="0yhsaaa349wbrswcvp7w8c52wzp7rs3528rs4wqa8b3r3fh983mh"; depends=[doParallel dplyr foreach ggplot2 Rcpp RcppArmadillo RcppProgress]; };
+  SCRIP = derive2 { name="SCRIP"; version="1.0.0"; sha256="1cv8443y2s67q3krsyj7r2d1vqv01w8xr0iz8dz4kijmhksyg7ng"; depends=[BiocGenerics BiocManager checkmate crayon edgeR fitdistrplus knitr mgcv S4Vectors Seurat SingleCellExperiment splatter SummarizedExperiment]; };
   SCRSELECT = derive2 { name="SCRSELECT"; version="1.3-3"; sha256="118vwnd5gggvdhq7fbs0553l84vh5mhiag41q4svprd7p0pqd9hd"; depends=[mvtnorm]; };
   SCRT = derive2 { name="SCRT"; version="1.3.1"; sha256="0wkxc22hv08riivjl09lhxvffqxxdy4xnvdmc2y69gssyinkbln1"; depends=[]; };
   SCVA = derive2 { name="SCVA"; version="1.3.1"; sha256="1gdicpnbr8bdgrbwwslpwpzw2adpp94p8nhsrkdx0bjlpfhd4g9h"; depends=[ggExtra ggplot2 plotly scales]; };
@@ -4619,14 +4654,14 @@ in with self; {
   SDD = derive2 { name="SDD"; version="1.2"; sha256="0wzgm1hgjv5s00bpd7j387qbvn5zvyrrd5fr2rgyll4cw9p4sd33"; depends=[Hmisc rgl rpanel sm tseries]; };
   SDDE = derive2 { name="SDDE"; version="1.0.1"; sha256="14vql1bypn409w9xcx1jdzff6apiagcz2wng3y24h3mk7yjv9bzy"; depends=[doParallel foreach igraph iterators]; };
   SDEFSR = derive2 { name="SDEFSR"; version="0.7.22"; sha256="10rxq2y7a9rbzgl5s5fdh93jm4w5kqbyyflw5xfsdwymjj9p4b7m"; depends=[foreign ggplot2 shiny]; };
+  SDLfilter = derive2 { name="SDLfilter"; version="2.1.2"; sha256="17h3s2giczcisvpcf7am5kh3nrh70gn58mlfc0x91d34awbn1z2z"; depends=[data_table dplyr ggmap ggplot2 ggsn gridExtra lubridate maps plotKML plyr pracma raster sp trip]; };
   SDMPlay = derive2 { name="SDMPlay"; version="2.0"; sha256="1qdvpa57p4p3949rjmvvvz41a3hm3jb34dnn8s2pi04rzrjkys0f"; depends=[dismo raster]; };
   SDMtune = derive2 { name="SDMtune"; version="1.1.5"; sha256="1nfxm1g7kyvn7j7zkjwsn6bi5xz77bjna1dcbak9k8xnk627kxjw"; depends=[dismo gbm ggplot2 jsonlite maxnet nnet progress randomForest raster Rcpp rlang rstudioapi stringr whisker]; };
   SDT = derive2 { name="SDT"; version="1.0.0"; sha256="1jwpfd1pnzy9wcl90qv5bgwi19shsw9064dvml9zwbif8yw8dzjj"; depends=[quadprog]; };
   SDaA = derive2 { name="SDaA"; version="0.1-3"; sha256="0z10ba4s9r850fjhnrirj2jgnfj931vwzi3kw9502r5k7941lsx0"; depends=[]; };
-  SDraw = derive2 { name="SDraw"; version="2.1.13"; sha256="1kx8kfga3zspfdgf9vq2lclszrhf3bfwkfhwqri64kn8fdr34jsq"; depends=[covr deldir rgeos sp spsurvey]; };
   SE_EQ = derive2 { name="SE.EQ"; version="1.0"; sha256="09fqx2rcqpiv072l6gqgfz9pdhas98q4kkkm7m4y28k13q2gicgl"; depends=[MASS]; };
   SEA = derive2 { name="SEA"; version="2.0"; sha256="1pw1509qjjqz63a8biwakdxqgln7kjviacqrjvp1323vf55bi4fs"; depends=[data_table doParallel foreach kolmim KScorrect MASS shiny]; };
-  SEAGLE = derive2 { name="SEAGLE"; version="1.0.0"; sha256="0f9sxyrnqy0n4pk38wj9y0y7lw0xb2387wrg095ww0vzg3kirga4"; depends=[CompQuadForm Matrix]; };
+  SEAGLE = derive2 { name="SEAGLE"; version="1.0.1"; sha256="1j5wjjw7fl2m4h9brg8dyahf1vmn9wgc7jaajaz6z1xqm6fc0d9k"; depends=[CompQuadForm Matrix]; };
   SEAsic = derive2 { name="SEAsic"; version="0.1"; sha256="1mg01sag6n1qldjvmvbasac86s7sbhi4k99kdkav2hdh6n9jg467"; depends=[]; };
   SECFISH = derive2 { name="SECFISH"; version="0.1.7"; sha256="0yd9k6anz9g4psg5kh1bhp0lr1i4y7in1m0mxk4qp14nl1zqy4fy"; depends=[ggplot2 Hmisc optimization]; };
   SECP = derive2 { name="SECP"; version="0.1-4"; sha256="0a4j0ggrbs0jzcph70hc4f5alln4kdn2mrkp3jbh321a6494kwl1"; depends=[SPSL]; };
@@ -4636,7 +4671,7 @@ in with self; {
   SELF = derive2 { name="SELF"; version="0.1.1"; sha256="1yafjhxwsanr33dqy7w9x61ghldr29s8k6h68idq6nnfb77ghjyx"; depends=[bnlearn CompareCausalNetworks data_table Rcpp xgboost]; };
   SEMID = derive2 { name="SEMID"; version="0.3.2"; sha256="0v1zrx5xxramsg2zzk7b2fyv6kky7xb1q1cg8vi6zg6ln9vgm2dk"; depends=[igraph R_methodsS3 R_oo R_utils]; };
   SEMModComp = derive2 { name="SEMModComp"; version="1.0"; sha256="1za67470f13z8jsy3z588c7iiiz993d3vjqrb8v9fann2r6sf1md"; depends=[mvtnorm]; };
-  SEMgraph = derive2 { name="SEMgraph"; version="1.0.3"; sha256="1w4bvg6qk88xbicqw0bncdnkdkbgs9brymxxj0xlpfgi1kr211mx"; depends=[boot cate corpcor dagitty diffusr flip gdata ggm GGMncv glmnet graph igraph lavaan Matrix pbapply protoclust RcppEigen Rgraphviz]; };
+  SEMgraph = derive2 { name="SEMgraph"; version="1.0.4"; sha256="1v5zd16rgvwyylrvja8lwsljjg50l0k9y3d1rwgycs44sib30zqb"; depends=[boot cate corpcor dagitty diffusr flip gdata ggm GGMncv glmnet graph igraph lavaan Matrix pbapply protoclust RcppEigen Rgraphviz]; };
   SEMrushR = derive2 { name="SEMrushR"; version="0.1.0"; sha256="19prwbh429ra69nz3nx4vzqmb46xssci74rk9mhpnzbi52ycg5gd"; depends=[]; };
   SEMsens = derive2 { name="SEMsens"; version="1.0.2"; sha256="18qcwhn1j9ci6338spwgym9g8590p5nc5sdvnpby3xrs9wv76nqs"; depends=[lavaan]; };
   SETPath = derive2 { name="SETPath"; version="1.0"; sha256="1dpgmki0dhph13h1fd3mbf308746wccgfz5g5gdm7bwbjnmjzd98"; depends=[]; };
@@ -4668,12 +4703,14 @@ in with self; {
   SIN = derive2 { name="SIN"; version="0.6"; sha256="0vq80m3vl8spdnlkwvwy0gk3ziyybqzjp3scnfdcpn942ds7sgg9"; depends=[]; };
   SIPDIBGE = derive2 { name="SIPDIBGE"; version="0.1.5"; sha256="18gx00y8vnbx1d3z7ak3g17zwg6mv93dhm9a1c8i4nj4ih64csi6"; depends=[cli COVIDIBGE PNADcIBGE png PNSIBGE POFIBGE purrr rstudioapi tibble]; };
   SIRE = derive2 { name="SIRE"; version="1.1.0"; sha256="0f624j087k7krg73bqn2qxdgzq66jyhvzz8n024vz3h4hwagxs5n"; depends=[dplyr igraph magrittr MASS Matrix matrixcalc numDeriv psych Rsolnp stringr systemfit]; };
+  SIRmcmc = derive2 { name="SIRmcmc"; version="1.1"; sha256="1dqcp0mrddw0zl3zx0z077vd1x0p3q1j5cv8hxln9blmiv1lggx1"; depends=[Rcpp]; };
   SIS = derive2 { name="SIS"; version="0.8-8"; sha256="1f5czwcgpmmn8habm24p3xh4w7jn2faais2x2gmaiq4dpjfnv6h8"; depends=[glmnet ncvreg survival]; };
   SISIR = derive2 { name="SISIR"; version="0.1-2"; sha256="1bhvgkcnv27av2z5pifs76j4dwpkhzwg7c3jxpc8pwac1s9jiz53"; depends=[doParallel expm foreach glmnet Matrix RSpectra]; };
   SITH = derive2 { name="SITH"; version="1.1.0"; sha256="1626nsbnz4fh49wymxm1cqb0nrfyxhmh9fmdxr62dzj5b53amknc"; depends=[Rcpp scatterplot3d]; };
   SIfEK = derive2 { name="SIfEK"; version="0.1.0"; sha256="037ps6yfy7w6i8vm0b78c8w9kdmw312dl5nc2qz86rfk8kjg7w27"; depends=[MASS numDeriv ramcmc smfsb]; };
   SK = derive2 { name="SK"; version="1.1"; sha256="19yg7yc2k4zz29bh42lw2jpjvkdj33f26xkfs8vz8lpp98yjf2vx"; depends=[FitAR GD MASS RColorBrewer rgeos rtop sp]; };
   SKAT = derive2 { name="SKAT"; version="2.0.1"; sha256="1iz8s2r295w36m44s2frrz00q4zm78fyzx7kprmnz4kbg3spqqy8"; depends=[Matrix SPAtest]; };
+  SKNN = derive2 { name="SKNN"; version="2.0"; sha256="021mc20mp1p87l48fy1v4lji0qg2cx5mzirv8c77q1x6378zjcfw"; depends=[]; };
   SLBDD = derive2 { name="SLBDD"; version="0.0.2"; sha256="1ixynzrj6vdxn406zcisrkhf9yr172s80k70dishrainkpw2dk58"; depends=[cluster corpcor fGarch forecast glmnet gsarima imputeTS MASS Matrix matrixcalc MTS rnn TSclust tsoutliers]; };
   SLC = derive2 { name="SLC"; version="0.3"; sha256="0l0y1sjj0glsb7vwla99ijclcgaq2y85bgz1wqm348n4shsmm2rs"; depends=[]; };
   SLDAssay = derive2 { name="SLDAssay"; version="1.8"; sha256="04ykj7s9kpvg5bmf7x16154kfpdy45b7y7hhyh31sxlscv7c5bbp"; depends=[]; };
@@ -4707,7 +4744,6 @@ in with self; {
   SMVar = derive2 { name="SMVar"; version="1.3.3"; sha256="17wr4lixy3p32gr4jq02d7zsr88yrbddjsvynzdsdrwbxf4mwqhp"; depends=[]; };
   SNFtool = derive2 { name="SNFtool"; version="2.3.1"; sha256="05hz230aq5wbzhknxzr4iqv3nqjhbpf66n6bp1rc5h2jgz2yfbwq"; depends=[alluvial ExPosition]; };
   SNPMClust = derive2 { name="SNPMClust"; version="1.3"; sha256="1gad1jfla4qpczh8vpwyss5cckzgpffsyj0d71r8drbspr4i3r90"; depends=[MASS mclust]; };
-  SNPassoc = derive2 { name="SNPassoc"; version="2.0-2"; sha256="16raq5nkm24xqfshncwmf46z2naf2fcixgjs9b7gy1368wn3ahzl"; depends=[BiocStyle ggplot2 haplo_stats mvtnorm plyr poisbinom survival tidyr]; };
   SNPfiltR = derive2 { name="SNPfiltR"; version="0.1.0"; sha256="1s6yj71yz4rkbpp27by5sb4lkcwcvyw7zj10wlzgfrm8sy3vv2wj"; depends=[adegenet cluster ggplot2 ggridges gridExtra Rtsne vcfR]; };
   SNPknock = derive2 { name="SNPknock"; version="0.8.2"; sha256="121pdgvdffj61hw8x8m76na0cg5iw5gb586q05ikw5d959mmbzrs"; depends=[Rcpp RcppArmadillo RcppProgress Rdpack]; };
   SNPmaxsel = derive2 { name="SNPmaxsel"; version="1.0-3"; sha256="0pjvixwqzjd3jwccc8yqq9c76afvbmfq0z1w0cwyj8bblrjpx13z"; depends=[combinat mvtnorm]; };
@@ -4871,11 +4907,11 @@ in with self; {
   SequenceSpikeSlab = derive2 { name="SequenceSpikeSlab"; version="0.1.1"; sha256="079qm4klgaml99j4cshy3n54pg7q537zlagib4xd8mswdmqdvll6"; depends=[Rcpp RcppProgress selectiveInference]; };
   Sequential = derive2 { name="Sequential"; version="4.1"; sha256="1wl499i18nkxjwv27c030jsxij2wa68c99h2wa445wa5xrhn6kvx"; depends=[boot]; };
   SequentialDesign = derive2 { name="SequentialDesign"; version="1.0"; sha256="1gi37pixwbpy7358id1c75rckr352hs8vjs8sk8qgsr97pkm5xdq"; depends=[Sequential]; };
-  SetMethods = derive2 { name="SetMethods"; version="2.6"; sha256="1yvn5jcv83cd3z4sd7fws1j298fljzcif6037b65wy6ywrrbb73x"; depends=[admisc betareg fmsb ggplot2 ggrepel QCA scatterplot3d stargazer]; };
+  SetMethods = derive2 { name="SetMethods"; version="3.0"; sha256="14hh1rb8bma0cx3v9dmn58mkv6sky7xcnhwxwij5x8hp93a1i9is"; depends=[admisc betareg fmsb ggplot2 ggrepel QCA scatterplot3d stargazer]; };
   SetRank = derive2 { name="SetRank"; version="1.1.0"; sha256="0p7vwsw05s5hfw1mfh3fbm9nfzsymnxzrdjin7k21dx7asb618wy"; depends=[data_table igraph XML]; };
   SetTest = derive2 { name="SetTest"; version="0.2.0"; sha256="08wc6cbnannmwkncqhpcw6l0y7c1v7z3awk5j7fd853nszfmpbk0"; depends=[]; };
   Seurat = derive2 { name="Seurat"; version="4.0.5"; sha256="18svlpfbgs5vdzw2jyg99kj0jacag6dwwhjdg1zpmrh0fm0praxg"; depends=[cluster cowplot fitdistrplus future future_apply ggplot2 ggrepel ggridges httr ica igraph irlba jsonlite KernSmooth leiden lmtest MASS Matrix matrixStats miniUI patchwork pbapply plotly png RANN RColorBrewer Rcpp RcppAnnoy RcppEigen RcppProgress reticulate rlang ROCR Rtsne scales scattermore sctransform SeuratObject shiny spatstat_core spatstat_geom tibble uwot]; };
-  SeuratObject = derive2 { name="SeuratObject"; version="4.0.2"; sha256="076bd6xmpnspnz7raw03mfgknnygx79sj3c9q6yhpanc46i9gvk4"; depends=[Matrix Rcpp RcppEigen rlang]; };
+  SeuratObject = derive2 { name="SeuratObject"; version="4.0.4"; sha256="1308hjbs8br3gp9vwm65awgp6vimwgi2jyl1ryn96l84savn2ljq"; depends=[Matrix Rcpp RcppEigen rlang]; };
   ShapeChange = derive2 { name="ShapeChange"; version="1.4"; sha256="1ch7avx8mxjk8vrp17inaihmbsv968wflyk1n4fbjvacbl24vn2b"; depends=[coneproj quadprog]; };
   ShapePattern = derive2 { name="ShapePattern"; version="2.1.0"; sha256="10lqapjw2vypz1rrwgr7maw79g5j7g3gfp38g88w1sxlxasmx7by"; depends=[igraph landscapemetrics raster rgdal rgeos sp]; };
   ShapeRotator = derive2 { name="ShapeRotator"; version="0.1.0"; sha256="1pg2m1wh7fbchm8gp3mngfnf5g2rbhvzim1bpzqyvxqpx6ynicsa"; depends=[plot3D]; };
@@ -4898,7 +4934,7 @@ in with self; {
   SigTree = derive2 { name="SigTree"; version="1.10.6"; sha256="18gh7azjr979ijc2y4yyskj24ay697rw3j7znc5p4a63s4vpxr9w"; depends=[ape MASS phyext2 phylobase phyloseq RColorBrewer vegan]; };
   SightabilityModel = derive2 { name="SightabilityModel"; version="1.4.2"; sha256="0hll6cfl0zkxvdbfs7cdmqazinyyrg9vk4px2gb9s1dqix7cyvv5"; depends=[formula_tools Matrix msm plyr survey]; };
   Signac = derive2 { name="Signac"; version="1.4.0"; sha256="0ca9ls5j6cgwkyzmxim9lb57zp9nsn2xrqm3w0wbhw5kar0i4yz0"; depends=[BiocGenerics data_table dplyr fastmatch future future_apply GenomeInfoDb GenomicRanges ggforce ggplot2 ggrepel ggseqlogo IRanges irlba lsa Matrix patchwork pbapply qlcMatrix Rcpp RcppRoll Rsamtools S4Vectors scales Seurat SeuratObject stringi tidyr]; };
-  SignacX = derive2 { name="SignacX"; version="2.2.4"; sha256="1qm0slmmfn7rwr2mdsa6d3h575i4c243iffh6791iklbs3jw6n73"; depends=[igraph jsonlite lme4 Matrix neuralnet pbmcapply RColorBrewer RJSONIO Seurat]; };
+  SignacX = derive2 { name="SignacX"; version="2.2.5"; sha256="0b38k3lxca985mqwvbbdczkjnn2x79kga05yw995gb6d20cjh96v"; depends=[igraph jsonlite lme4 Matrix neuralnet pbmcapply RColorBrewer RJSONIO Seurat]; };
   SignifReg = derive2 { name="SignifReg"; version="4.2"; sha256="0bgw6dkn15rlpcqfpbar3nxvcvwd0afa3lss4idnb65kvcyzzljk"; depends=[car]; };
   Sim_DiffProc = derive2 { name="Sim.DiffProc"; version="4.8"; sha256="16pzcs1g5ihza9a2glnkgd5pxi77l6w34vkn0vxcb78gc6syhbrd"; depends=[Deriv MASS]; };
   Sim_PLFN = derive2 { name="Sim.PLFN"; version="1.0"; sha256="1jmsydhpfv2z9cr99hfy8cairhkkxpwk4wnz1adixwxazkn7qfah"; depends=[DISTRIB FuzzyNumbers]; };
@@ -4957,6 +4993,7 @@ in with self; {
   SmarterPoland = derive2 { name="SmarterPoland"; version="1.8"; sha256="19pxr1zch2bm5jw676dp0p2crvmdmvzyxz07vhx926axpb4i0xbp"; depends=[ggplot2 htmltools httr jsonlite rjson]; };
   SmithWilsonYieldCurve = derive2 { name="SmithWilsonYieldCurve"; version="1.0.1"; sha256="0qvhd1dn2wm9gzyp6k7iq057xqpkngkb4cfmvmjqmf0vhysp371w"; depends=[]; };
   SmoothHazard = derive2 { name="SmoothHazard"; version="1.4.1"; sha256="147wjxgxnijpmixrfyl8kd4scz2w1xb8dcwvpr60zg32nv22g17r"; depends=[lava mvtnorm prodlim]; };
+  SmoothTensor = derive2 { name="SmoothTensor"; version="0.1.1"; sha256="19mbxsbp656i4qdkr2wplil542pxxb3xfznh3vv2nxi23phr01gy"; depends=[Matrix rTensor]; };
   SmoothWin = derive2 { name="SmoothWin"; version="3.0.0"; sha256="0zq2sq0w4rs3hrra24wgbbzv88d1hx6m8q8gmc5h6nbs1172hs66"; depends=[nlme Rfast]; };
   Snake = derive2 { name="Snake"; version="1.0"; sha256="10i1bqsva70lzavfqvc56ga70ddjfwf0hqpspj8fqwa0jw86jmbh"; depends=[]; };
   SnakesAndLaddersAnalysis = derive2 { name="SnakesAndLaddersAnalysis"; version="2.1.0"; sha256="0h3664h6d32q201qfyv9y2gg4fhg3azdpwpmx4qfbc10hsc1ghl9"; depends=[]; };
@@ -4983,7 +5020,7 @@ in with self; {
   SoupX = derive2 { name="SoupX"; version="1.5.2"; sha256="1zhd2vx4g3kpxpfq996h909k4lybzb79nw1kvhx7073aniq042c3"; depends=[ggplot2 Matrix Seurat]; };
   SourceSet = derive2 { name="SourceSet"; version="0.1.3"; sha256="159kg4pna24yihkghxc2k5f56dqk8aypxcmj1whgnajmgab29ry1"; depends=[graph gRbase gtools igraph plyr progress reshape2 scales]; };
   SoyNAM = derive2 { name="SoyNAM"; version="1.6.1"; sha256="1dgphlryw1810v93aq80p2c92aq6ccc25kabkgw4h1xinrpn263i"; depends=[lme4 NAM reshape2]; };
-  SpATS = derive2 { name="SpATS"; version="1.0-15"; sha256="1gcvn2c56hphrfffb8aw8611jai0mk88khj5vr7i5a4p5glsc8dx"; depends=[data_table fields plot3Drgl spam]; };
+  SpATS = derive2 { name="SpATS"; version="1.0-16"; sha256="1smnxawbxyy0kmg05rdxkym71civnvx83pjag97avvqsqlmzfbwk"; depends=[data_table fields plot3Drgl spam]; };
   SpNMF = derive2 { name="SpNMF"; version="0.1.1"; sha256="1xybxx47i3ww5d7chwl38xc48fbsclgyxcki8h85c6dkm49dxy8i"; depends=[NMF]; };
   SpNetPrep = derive2 { name="SpNetPrep"; version="1.2"; sha256="1jhjyrb0k5z21vn9bc444rxax3lxsyzyhggrcy7zl9ps7p4ra990"; depends=[leaflet maptools prodlim raster rgdal shiny shinythemes sp spatstat spatstat_core spatstat_geom spatstat_linnet]; };
   SpaCCr = derive2 { name="SpaCCr"; version="0.1.0"; sha256="0qm1fr6nnax3i1i77fi73x1z8db557avh6kivs0nskb1dfj8ri4m"; depends=[abind dplyr ggplot2 Rcpp RcppArmadillo tidyr]; };
@@ -5006,8 +5043,7 @@ in with self; {
   SpatialAcc = derive2 { name="SpatialAcc"; version="0.1-4"; sha256="09rkzfzg6nh4n7dizkqrz651kp617l2557c9qpxacspl3ngbm82i"; depends=[sp]; };
   SpatialBSS = derive2 { name="SpatialBSS"; version="0.12-0"; sha256="173zr8r0wp7zcg4ziqagfzzlwf5gjcywj5nqvsnnpwbgjagpfla1"; depends=[JADE Rcpp RcppArmadillo sp]; };
   SpatialBall = derive2 { name="SpatialBall"; version="0.1.0"; sha256="09iy1smfqnb0rd2s9a1wqgscb1plwcwwph6a8215l4zrs6svszv2"; depends=[dplyr ggplot2 hexbin lubridate RColorBrewer]; };
-  SpatialEpi = derive2 { name="SpatialEpi"; version="1.2.5"; sha256="1gzxalmp5h58dvc161wf4dmjzr6xnblgdj5s0iibwfgzd1bzh0s0"; depends=[maptools MASS Rcpp RcppArmadillo sp spdep]; };
-  SpatialEpiApp = derive2 { name="SpatialEpiApp"; version="0.3"; sha256="0svnnzqshk08s58ishy8xhqch44mb5svgfphkvpgysdd68dgaysr"; depends=[dplyr dygraphs ggplot2 htmlwidgets knitr leaflet mapproj maptools RColorBrewer rgdal rgeos rmarkdown shiny shinyjs SpatialEpi spdep xts]; };
+  SpatialEpi = derive2 { name="SpatialEpi"; version="1.2.7"; sha256="0hfspksv9dgi98kcjwa291x8dglskfl4d1cjkd2hqxlf73havpzx"; depends=[maptools MASS Rcpp RcppArmadillo sp spdep]; };
   SpatialExtremes = derive2 { name="SpatialExtremes"; version="2.0-9"; sha256="1mhn1c8n3bmgf0fjyac3wji4790zswzkqliqcv3n8kv9806crb0y"; depends=[fields maps]; };
   SpatialFloor = derive2 { name="SpatialFloor"; version="1.1.0"; sha256="07mwgcvkkq478l6wxvrdjs9d578x0kgs5xy86lgy5my0xqfcv6y8"; depends=[blocksdesign fields reshape2 taRifx]; };
   SpatialGraph = derive2 { name="SpatialGraph"; version="1.0-2"; sha256="0cwswa5g3a6ng8qkwi04jz9pma4i0c16m7jpq6z3djzjin0znyk2"; depends=[igraph rgeos shape sp splancs]; };
@@ -5035,7 +5071,7 @@ in with self; {
   Spillover = derive2 { name="Spillover"; version="0.1.0.1"; sha256="0jwhih0jzd6grd9y967k7j5vwv9sd20xqi2270y1cgl64v21bjzm"; depends=[fastSOM vars zoo]; };
   Splinets = derive2 { name="Splinets"; version="1.0.0"; sha256="1fws9svxvn03xgfqmqwr169wgl544zv87yrdi4nl5z32cq5c9yk5"; depends=[]; };
   SplitGLM = derive2 { name="SplitGLM"; version="1.0.2"; sha256="0708jz8j44lw6zs5f6w4v9pf7apd22j15g7lszc8kwlm8xsnnkf6"; depends=[Rcpp RcppArmadillo]; };
-  SplitKnockoff = derive2 { name="SplitKnockoff"; version="0.8"; sha256="1nmw9igjldq3fx7wahsxf3px8kz946vmii48g52kld651xm2ycaq"; depends=[ggplot2 glmnet latex2exp MASS Matrix mvtnorm RSpectra]; };
+  SplitKnockoff = derive2 { name="SplitKnockoff"; version="1.0"; sha256="0mnjrxcd5gq723i9cf62jpijyl879j8lkp808mm860islnqsm1qq"; depends=[ggplot2 glmnet latex2exp MASS Matrix mvtnorm RSpectra]; };
   SplitReg = derive2 { name="SplitReg"; version="1.0.2"; sha256="1s012qldrsq8rpfpzf7kyd7631b65zai269x53xcaqn75r5ssh3f"; depends=[Rcpp RcppArmadillo]; };
   SplitSoftening = derive2 { name="SplitSoftening"; version="2.1-0"; sha256="1fgcqax81zpknw642fm9dx1f6dpdgbcf3va0m1bhj6kl98yq7dqd"; depends=[]; };
   SportsAnalytics = derive2 { name="SportsAnalytics"; version="0.2"; sha256="1vb080ak1mfvr6d0q9i3r8hd547ba80bavjdcri0gclqqcjf1ach"; depends=[]; };
@@ -5062,7 +5098,7 @@ in with self; {
   StatMeasures = derive2 { name="StatMeasures"; version="1.0"; sha256="1bnbz803xx8kqhy1cx545b35si6f10za0mp5z82qfvd4kv9a9izz"; depends=[data_table]; };
   StatPerMeCo = derive2 { name="StatPerMeCo"; version="0.1.0"; sha256="1nm6brlj6h7jx8nqagrfk294ay3pfmkiizabwlb87qfnsfwchpk3"; depends=[]; };
   StatRank = derive2 { name="StatRank"; version="0.0.6"; sha256="14d8v3bp8vgksi6q0mxajwd9s8zi6lns3qwi1vcr5xp9rjp4n6iy"; depends=[ggplot2 plyr truncdist]; };
-  Statsomat = derive2 { name="Statsomat"; version="1.0"; sha256="02kqacq0zwapngbw42yqksrkjj0im55id3vx8j27j2wi62mmhpz8"; depends=[car corrplot data_table DDoutlier energy ggplot2 gridExtra kableExtra knitr readr reshape2 rmarkdown shiny shinydisconnect]; };
+  Statsomat = derive2 { name="Statsomat"; version="1.1.0"; sha256="1lfgbbf1pcfbih5nfb6rbiq2h0hlxg1fzmcf4330yc48r998q4x6"; depends=[car corrplot data_table DDoutlier energy ggplot2 gridExtra kableExtra knitr readr reshape2 rmarkdown shiny shinydisconnect]; };
   SteinIV = derive2 { name="SteinIV"; version="0.1-1"; sha256="1bm4lc7g9h9jkb1dpzb84289bwxcywp0a8vylv6ipvhiqbqk5d95"; depends=[]; };
   SteinerNet = derive2 { name="SteinerNet"; version="3.1.0"; sha256="03wr746dkwp8vg91y986q0xvgz1y9b5q25g0kig2sx6m75li3yif"; depends=[igraph]; };
   Stem = derive2 { name="Stem"; version="1.0"; sha256="1fr02mi5qyxbqavdh2hg8ggw4nfjh3vs7g0vh834h6y0v53l71r5"; depends=[MASS mvtnorm]; };
@@ -5112,9 +5148,9 @@ in with self; {
   SuppDists = derive2 { name="SuppDists"; version="1.1-9.5"; sha256="1i3iq12a5x5k49ac01mikzcrrq9gc148xq3m08h4xm07bha6f2v8"; depends=[]; };
   SurfaceTortoise = derive2 { name="SurfaceTortoise"; version="1.0.2"; sha256="1l586x9np5rclqdrnv8b72ixlppzlnsq4yf99ny6aq5a9lwzmcgm"; depends=[gstat raster rgeos sp]; };
   Surrogate = derive2 { name="Surrogate"; version="2.0"; sha256="0jpg20cd0m9xaay9y4fkrdvz5hsr54q2n4jv0n66xjral24gxyb1"; depends=[extraDistr ks lattice latticeExtra lme4 logistf MASS mixtools msm nlme OrdinalLogisticBiplot pbapply rms rootSolve survival]; };
-  SurrogateOutcome = derive2 { name="SurrogateOutcome"; version="1.0"; sha256="0x91bmr4n9zn9cc72s91fzzsqhzhrkfpcbcla00gcsfmbjqz3997"; depends=[survival]; };
+  SurrogateOutcome = derive2 { name="SurrogateOutcome"; version="1.1"; sha256="1wiqn9gfvj225dvmp49fyybp77np507s04f28a9wa9jiyvqf7m97"; depends=[survival]; };
   SurrogateRegression = derive2 { name="SurrogateRegression"; version="0.5.0"; sha256="06xdkg75fs1ymq5x20k5wnv6rji13rk049pm11b686wjvwycrsg7"; depends=[mvnfast plyr Rcpp RcppArmadillo]; };
-  SurrogateTest = derive2 { name="SurrogateTest"; version="1.2"; sha256="0wkyz9qkmvsrhvdga6w0qkbgqr7kr0yh04kkc19824sqnx452dc5"; depends=[survival]; };
+  SurrogateTest = derive2 { name="SurrogateTest"; version="1.3"; sha256="0vs1ii3l6i6cmswyv6xjbya5filfixppyzmnw099g9s4x8kn0kq7"; depends=[survival]; };
   SurvCorr = derive2 { name="SurvCorr"; version="1.0"; sha256="01rqdl503q1qnkn49iqnsjzis6azdsfi6s2hjky5k2zd6c9g18k5"; depends=[fields survival]; };
   SurvDisc = derive2 { name="SurvDisc"; version="0.1.1"; sha256="0ajvnm0a4krbm0m584bg58hd7dzl0f2rz5as1zsajx8agywb5qmv"; depends=[cubature MASS mvtnorm nlme simex survival]; };
   SurvGSD = derive2 { name="SurvGSD"; version="1.0.0"; sha256="0aa5zaf9akkqkxs8iqwnm93sfwakhhhs3qfafbk0vrwmb5yvzzm1"; depends=[flexsurv ldbounds mnormt]; };
@@ -5128,11 +5164,11 @@ in with self; {
   SurviMChd = derive2 { name="SurviMChd"; version="0.1.1"; sha256="1sj3i950nmam3r70as85kdx6nd88iidb5jpiz2a5a39i5lb7mgf7"; depends=[dplyr ICBayes icenReg R2jags Rdpack readr rjags rlang survival tidyverse]; };
   SvyNom = derive2 { name="SvyNom"; version="1.1"; sha256="1jym2x6nd9a3y7nk5hflqpy54gs67y4sqqspkvkalf5l2cc64did"; depends=[Hmisc rms survey survival]; };
   SwarmSVM = derive2 { name="SwarmSVM"; version="0.1-6"; sha256="09xq7jx70qjyhblzh6kc40hdr0636rqqdnbka7m6rawhd8ivp8yz"; depends=[BBmisc checkmate e1071 kernlab LiblineaR Matrix SparseM]; };
-  SwimmeR = derive2 { name="SwimmeR"; version="0.12.0"; sha256="18chwlvdk6yiajabqia5wwhmckqrys9fbvynhrpqsmji5471rlfw"; depends=[dplyr magrittr pdftools purrr readr rvest stringr xml2]; };
+  SwimmeR = derive2 { name="SwimmeR"; version="0.13.0"; sha256="16vimqdbsj7nb1cv0in6qza00qicajpdcpmzf3lv47wm5kp2iv6n"; depends=[dplyr magrittr pdftools purrr readr rvest stringr xml2]; };
   SwissAir = derive2 { name="SwissAir"; version="1.1.5"; sha256="0lh69924vhyilgn562jqn8m7z4dq3xmdj09501sbs7hbxfaiiyly"; depends=[]; };
   SyNet = derive2 { name="SyNet"; version="2.0"; sha256="0mb9dscddkvmkf7l3bbcy4dlfmrvvy588vxdqy5dr783bpa5dkiw"; depends=[tkrplot]; };
   SyScSelection = derive2 { name="SyScSelection"; version="1.0.2"; sha256="16zx507hlzhdxbh6gzndbgmzpyp6vc59h441l4gv8lx58zi9kyjd"; depends=[pracma]; };
-  SymTS = derive2 { name="SymTS"; version="1.0"; sha256="17vhm00zd9yxl6li36bsfkm4rsizjsm93ibrzgqnkl72sqmmlwfi"; depends=[]; };
+  SymTS = derive2 { name="SymTS"; version="1.0-1"; sha256="1g1kjcba25g3nphbndkzvkipvihiqb6lvijsicqr7qh57g94gqpl"; depends=[]; };
   SymbolicDeterminants = derive2 { name="SymbolicDeterminants"; version="2.0.0"; sha256="0hf9b9g2vgpyqbxgi5rkkls2b8vw1zrwl8lymwvwb6y1vwfl9pym"; depends=[arrangements fs]; };
   SyncMove = derive2 { name="SyncMove"; version="0.1-0"; sha256="1jlnsj5v8y5pijfkww7ng7nkwvj93naw29wcxxj130ww5qk7qk1z"; depends=[]; };
   SyncRNG = derive2 { name="SyncRNG"; version="1.3.0"; sha256="0sywfmmy6mq6qsxkxjc67665snn1jds01j3h7ni1200igja139g2"; depends=[]; };
@@ -5168,7 +5204,7 @@ in with self; {
   TDD = derive2 { name="TDD"; version="0.4"; sha256="193y8brybkjsajrbnlx1sdnw1wyyn9rhlm5wvp4aamqhvi8z13vn"; depends=[pracma RSEIS signal]; };
   TDMR = derive2 { name="TDMR"; version="2.2"; sha256="19ljgj5iy41m7rrawzkxkln7acydssk8zm05k3sfb483s8zygwiq"; depends=[adabag SPOT testit twiddler]; };
   TDPanalysis = derive2 { name="TDPanalysis"; version="1.0"; sha256="0kvbsgwl7b9a3hn4d3snajqmynbajd2d8lc1na0hri2cv8qm8x9h"; depends=[plyr]; };
-  TDbook = derive2 { name="TDbook"; version="0.0.3"; sha256="13jx35mzppvlr6yjrg04zxn6qbhzyfzrwjnzkijxhrk9p46acs7j"; depends=[]; };
+  TDbook = derive2 { name="TDbook"; version="0.0.4"; sha256="04ljp2rxk959143wri4l5xq4yhby0ld42a0s9z027i1z7qn4072v"; depends=[]; };
   TDboost = derive2 { name="TDboost"; version="1.2"; sha256="0sc9vby4892gm5b5h8gbdl4misqvgbkfp8fms53dk83malxkw1zx"; depends=[lattice]; };
   TE = derive2 { name="TE"; version="0.3-0"; sha256="15530a5qjlh74c1qji76j25mm4c59gifp34y066f8j21f70rahfs"; depends=[MASS rainbow]; };
   TEAM = derive2 { name="TEAM"; version="0.1.0"; sha256="1yj7fw935rr7fh7h2p4ra8d3ynz5c6b30fqzm1djgav1k84wcin2"; depends=[ggplot2 ks plyr]; };
@@ -5295,7 +5331,7 @@ in with self; {
   TestDesign = derive2 { name="TestDesign"; version="1.2.6"; sha256="19kaqvlghiwgfnr53f7grj2bsih743i3mls57sblzwzwr3p59qkd"; depends=[crayon foreach logitnorm lpSolve Rcpp RcppArmadillo]; };
   TestDimorph = derive2 { name="TestDimorph"; version="0.4.1"; sha256="09r265mmr3bk78pqca30n9bz62p6822mg0nhrfaip2lxhl3bfqcw"; depends=[caret corrplot cutpointr dplyr ggplot2 Morpho multcompView tidyr tmvtnorm truncnorm]; };
   TestFunctions = derive2 { name="TestFunctions"; version="0.2.0"; sha256="018nkz8r6vqahrzq3d588i3ffb1bmd1pdk87j4ivcdsx99mq15sn"; depends=[]; };
-  TestGardener = derive2 { name="TestGardener"; version="0.1.4"; sha256="1230nrislm4ci22s9y160842qiccf3ngmfq8fywm8vg57xggz1dj"; depends=[dplyr fda ggplot2 ggpubr knitr pracma rgl rmarkdown stringr tidyr utf8]; };
+  TestGardener = derive2 { name="TestGardener"; version="2.0.0"; sha256="1n38y2b3r0xf44jasga67cg820f1llb52farkv8dnp4v7bzld6zs"; depends=[dplyr fda ggplot2 ggpubr knitr pracma rgl rmarkdown stringr tidyr utf8]; };
   TestScorer = derive2 { name="TestScorer"; version="1.7.2"; sha256="006c3g3gx55mfr93srldwvgz5vm6nkr3f57yi4qg6krn0d32865f"; depends=[]; };
   TestingSimilarity = derive2 { name="TestingSimilarity"; version="1.1"; sha256="1iq0wh13rl6rby44ql4d286r1akzwmbpsvnq9p8lkl8709z0d34w"; depends=[alabama DoseFinding lattice]; };
   TexExamRandomizer = derive2 { name="TexExamRandomizer"; version="1.2.3"; sha256="0l0vpx4rkib2m8hwhwy9j8pqyf7gpb9qg8wpnh3238snwpadgy3a"; depends=[assertthat jsonlite Rcpp stringr]; };
@@ -5311,20 +5347,21 @@ in with self; {
   ThreeWiseMonkeys = derive2 { name="ThreeWiseMonkeys"; version="0.1.0"; sha256="1qdb3m15q0gg8dk2znc2syy2jdqsp2893a7ilfa8rg3r2vps86yg"; depends=[stringr tuneR]; };
   Thresher = derive2 { name="Thresher"; version="1.1.3"; sha256="16zf5cwc2c5j61xcrqsycwrsc162spyqgk9mac7n37mymn5agbwp"; depends=[ade4 ClassDiscovery colorspace MASS movMF oompaBase PCDimension]; };
   ThresholdROC = derive2 { name="ThresholdROC"; version="2.9.0"; sha256="1mzz05aqq6crcfm5bbv0gbpvndk0yy1lf4fxz8zva790g16cilq0"; depends=[ks MASS numDeriv pROC]; };
-  TiPS = derive2 { name="TiPS"; version="1.0"; sha256="0wsgglgh5li76zvr2srp3imj5vqi2n6kanxamhfmgjmws4lf9klq"; depends=[gtools inline Rcpp stringr]; };
+  TiPS = derive2 { name="TiPS"; version="1.1.0"; sha256="08xa0xg8kgjccd8qhplpxyfikrm1yfx2spn6y381p7z08985vnsk"; depends=[gtools inline Rcpp stringr]; };
   TickExec = derive2 { name="TickExec"; version="1.1"; sha256="0v0m0wi49yw0ply19vnirl2zwnk61sxalx24l8cadvkssgs13509"; depends=[]; };
   TiddlyWikiR = derive2 { name="TiddlyWikiR"; version="1.0.1"; sha256="0vwwjdmfc8c0y2gfa8gls1mzvp29y39c9sxryrgpk253jj9px1kr"; depends=[]; };
   TideCurves = derive2 { name="TideCurves"; version="0.0.5"; sha256="1cnfnmwmlicsi243058zq3302niwk2l1agrrjy4k7rf1v7gfy6xx"; depends=[chron data_table fields]; };
   TideHarmonics = derive2 { name="TideHarmonics"; version="0.1-1"; sha256="1g1v99gh6mns4l8ipmw7kpalbk07m92ybcqjq7b0wsjmdvs1y67s"; depends=[]; };
   TideTables = derive2 { name="TideTables"; version="0.0.3"; sha256="0xfwikz9f58pw1j5vp45wp44lbr8b8ijlac474nzahq46d411afp"; depends=[chron data_table]; };
   Tides = derive2 { name="Tides"; version="2.1"; sha256="0da3z010ali83qf8mf1znicqv8vvsa5r93mc40ax60ln2w33nlrm"; depends=[]; };
-  TidyMultiqc = derive2 { name="TidyMultiqc"; version="0.1.0"; sha256="0m2f22glndia57vbr4j7xzr6m8xnwyq3qr624x1wl33a13izfzl8"; depends=[assertthat dplyr HistDat jsonlite magrittr purrr rlang stringr tibble]; };
+  TidyConsultant = derive2 { name="TidyConsultant"; version="0.1.0"; sha256="1ipv0nx0xmba62c7qjgadpjsr850d9dl0z5zjkh1rj6kfxdgiis2"; depends=[autostats badger framecleaner pacman presenter tidybins validata]; };
+  TidyMultiqc = derive2 { name="TidyMultiqc"; version="1.0.0"; sha256="1dbkn6vgzkmp3vs528f1vf10hk4ph381z6bq8nshim5ggmvl4wvy"; depends=[assertthat dplyr jsonlite magrittr purrr rlang stringr tibble]; };
   TileManager = derive2 { name="TileManager"; version="0.4.0"; sha256="0kc3wgk5n8cxg901c19fjfzq7na46jq0x3gy22fi4jccjb0vgv0v"; depends=[APfun raster rgeos sp XML]; };
   TimeProjection = derive2 { name="TimeProjection"; version="0.2.0"; sha256="04yr4cg2khkw9n3y3qk0ni1327k4pxm09zz2xg8mpjdvgi4p9yi3"; depends=[lubridate Matrix timeDate]; };
   TimeSeries_OBeu = derive2 { name="TimeSeries.OBeu"; version="1.2.4"; sha256="0ihigrbdkfbqqjxqfx3y5q8ii8n60301s7190jr50a88l1xzgmh8"; depends=[forecast jsonlite locfit trend tseries]; };
   TimeVTree = derive2 { name="TimeVTree"; version="0.3.1"; sha256="124kg9zcq4b2j4qvg9f6gykbmzf69qjnnw54nv213ip2h4rdkv32"; depends=[survival]; };
   TimeWarp = derive2 { name="TimeWarp"; version="1.0.15"; sha256="1v6f6d1h9dc8npdy0ph5hhc4jjkzh8kac48lz4ahgngi9n0xwql9"; depends=[]; };
-  Tinflex = derive2 { name="Tinflex"; version="1.7"; sha256="0cr65jhdk69lcrivazkr95krzmzmjkc7cxgdn1waw0lmp278dr4w"; depends=[]; };
+  Tinflex = derive2 { name="Tinflex"; version="1.8"; sha256="053w4l5j499brlbbh1bc41nj01j1533ixd9vggmvpkzk7zgdsasy"; depends=[]; };
   TipDatingBeast = derive2 { name="TipDatingBeast"; version="1.1-0"; sha256="07lw6jnr76qrxwrwv90hi5ih2xf6g4sz4hfapk5vf1y3ayfskkl0"; depends=[DescTools mclust TeachingDemos]; };
   TmCalculator = derive2 { name="TmCalculator"; version="1.0.1"; sha256="1h1dk4kq6zi3a9wi6bxsqz3b9jk740811dp65sb6lqc668xy5mps"; depends=[]; };
   Tmisc = derive2 { name="Tmisc"; version="1.0.0"; sha256="1zs7zxawl13pils9hff0i5aplxy32ccp27jcmjdh39lgf083s3v3"; depends=[dplyr magrittr rstudioapi tibble]; };
@@ -5347,7 +5384,7 @@ in with self; {
   TransModel = derive2 { name="TransModel"; version="2.1"; sha256="0brlr4w5k8xsgbrizm7ha0cmq0kqzd2fcjpszq7gym844jj93csi"; depends=[MASS survival]; };
   TransP = derive2 { name="TransP"; version="0.1"; sha256="0p6pfcp8qjdah0lfhx0a396nxjzp3ckpda9hl3snpppx79iyww55"; depends=[]; };
   TransPhylo = derive2 { name="TransPhylo"; version="1.4.5"; sha256="0g92kwi1nlmpc8m4pc9kv9xhczryr2kn9icfr3js7da7vy8g50xy"; depends=[ape Rcpp]; };
-  Tratamentos_ad = derive2 { name="Tratamentos.ad"; version="0.2.1"; sha256="1zrw0cdjh4h01rsxff9jplf0x2g41fy04sisrbz9fl5g7flx9bai"; depends=[crayon]; };
+  Tratamentos_ad = derive2 { name="Tratamentos.ad"; version="0.2.2"; sha256="0w8bgkinnawdp3h6nhqypc7xg93y4nnk5hczijys713a4bv26gb2"; depends=[crayon]; };
   TreatmentSelection = derive2 { name="TreatmentSelection"; version="2.1.1"; sha256="1pw64hx697jg2f1r2zd8y98g3ivj2gm8fnixcjfn4drsd0xixb4p"; depends=[binom ggplot2 survival]; };
   TreeBUGS = derive2 { name="TreeBUGS"; version="1.4.7"; sha256="0cwhgphdk0zndnqx0qcq42zajhwvgs9myg9dmm6dnp0ik0g5syqa"; depends=[coda hypergeo logspline MASS Rcpp RcppArmadillo rjags runjags]; };
   TreeDep = derive2 { name="TreeDep"; version="0.1.3"; sha256="0ja2hp9sxzybac6dqdsns5q1rj12swl240znsnsffg9mkvzhq6rl"; depends=[ggplot2 lubridate]; };
@@ -5386,7 +5423,7 @@ in with self; {
   UBCRM = derive2 { name="UBCRM"; version="1.0.1"; sha256="1h9f8wlxdgb67qqqnfhd9gfs4l2cq84vajhcb0psva0gwdd1yf6i"; depends=[]; };
   UBL = derive2 { name="UBL"; version="0.0.7"; sha256="1zppc8mgmj4ymxfdvhqiirlf80wh65y58wqm92fgjdn7s06v5skf"; depends=[automap gstat MBA randomForest sp]; };
   UCR_ColumnNames = derive2 { name="UCR.ColumnNames"; version="0.1.0"; sha256="1nwwq93f60r9aik51l7mzckg81f81nz5kgzynyzp5sm4y2wmpzwn"; depends=[]; };
-  UCSCXenaShiny = derive2 { name="UCSCXenaShiny"; version="1.1.1"; sha256="0hjivd6d91j94nl2wd9y2dfzlf5dai4f66a85nxxmjzyvip3dj3w"; depends=[dplyr ezcox forcats ggplot2 ggpubr magrittr ppcor psych purrr shiny stringr tibble tidyr UCSCXenaTools]; };
+  UCSCXenaShiny = derive2 { name="UCSCXenaShiny"; version="1.1.3"; sha256="04xbvc4f1w1xv9n75abrqbian01hn0wz4chaahdbz9ciikbx3pbx"; depends=[dplyr ezcox forcats ggplot2 ggpubr magrittr ppcor psych purrr shiny stringr tibble tidyr UCSCXenaTools]; };
   UCSCXenaTools = derive2 { name="UCSCXenaTools"; version="1.4.7"; sha256="1s3x9vmvnb0g3fmrgjw636g3nhshbgkv0g2dyrk347bv7bdj52zg"; depends=[digest dplyr httr jsonlite magrittr readr rlang]; };
   UComp = derive2 { name="UComp"; version="2.2.2"; sha256="024fmarngqmj8db7rkah2cnsix3m0zqz153j5585caij302v8rkl"; depends=[Rcpp RcppArmadillo]; };
   UKFE = derive2 { name="UKFE"; version="0.2.0"; sha256="1v54qmqr05z64ls3vih0iinxax76vz3cas2b0sbgqxf0mgif07s9"; depends=[]; };
@@ -5407,7 +5444,7 @@ in with self; {
   UScensus2010 = derive2 { name="UScensus2010"; version="0.20.0"; sha256="0dby532dmmhaz7gisihg4dn70jyx5llfvm2zl2h0pxyqrxvm69d2"; depends=[foreign maptools sp]; };
   USgas = derive2 { name="USgas"; version="0.1.1"; sha256="1yx5qc7ilb1g2cv9w35ryw778qbi9fs0licxc2xcp5fbp709pd65"; depends=[]; };
   USgrid = derive2 { name="USgrid"; version="0.1.2"; sha256="0babwjnbdyfa2cf65gn08nzy1bs92i56lnhpx558yn0dyk75cz5s"; depends=[tsibble]; };
-  USpopcenters = derive2 { name="USpopcenters"; version="0.1.0"; sha256="0m2rjgwqhsx31ykcfwln3q7d6vnb9f0qbyncyg8fbs0iq1wadrmg"; depends=[]; };
+  USpopcenters = derive2 { name="USpopcenters"; version="0.1.1"; sha256="1g7pnw4qfp4vpcb9wr3bjl5702lwnv6fvdjgsv90r4ana1rkw3c6"; depends=[]; };
   UStatBookABSC = derive2 { name="UStatBookABSC"; version="1.0.0"; sha256="16r6clhfaalfsg5hmvzm8a128zygxax5hyc0vr1q9bsw9hj7cs0c"; depends=[]; };
   UWHAM = derive2 { name="UWHAM"; version="1.0"; sha256="1qaj8anaxqnx4nc6vvzda9hhhzqk9qp8q7bxm26qgia4hgascnrv"; depends=[trust]; };
   UdderQuarterInfectionData = derive2 { name="UdderQuarterInfectionData"; version="1.0.0"; sha256="084bq5ai1ccp4www64z0ipic74zkd8j1ygv0py900164a25wdr9b"; depends=[]; };
@@ -5426,7 +5463,7 @@ in with self; {
   UpSetR = derive2 { name="UpSetR"; version="1.4.0"; sha256="007i0njnjjy7vbrxabwav7a1kk2n0hn2mkvqsdzzfk10ckp5y7im"; depends=[ggplot2 gridExtra plyr scales]; };
   UsingR = derive2 { name="UsingR"; version="2.0-6"; sha256="1lr8z45r5s7fxrd42rswm6w7s3k5nds244b9d525jb5v4n8w9kpw"; depends=[HistData Hmisc MASS]; };
   UtilityFrailtyPH12 = derive2 { name="UtilityFrailtyPH12"; version="1.0"; sha256="06f5gmwwk1r14ab6v5jcxz0pmdph7ffi4y57mjg9byn7pjnibflk"; depends=[bindata mvtnorm Phase123 Rcpp RcppArmadillo]; };
-  V8 = derive2 { name="V8"; version="3.4.2"; sha256="1vfj89shfzx7b6papi2y671l8gksng775kilmqzl5gx87i3l61i1"; depends=[curl jsonlite Rcpp]; };
+  V8 = derive2 { name="V8"; version="3.6.0"; sha256="0xqk4rcv255r2wll2jpzf9ix8j6hbhw0vbhg2g9i6z2apyc9i5m3"; depends=[curl jsonlite Rcpp]; };
   VALERIE = derive2 { name="VALERIE"; version="1.1.0"; sha256="15z8234jhh7hv3gijrvy8hap6gdgvm6qll9b00qbji7vyc3dg4pg"; depends=[GenomicAlignments GenomicRanges ggplot2 ggplotify ggpubr IRanges pheatmap plyr Rsamtools scales]; };
   VAM = derive2 { name="VAM"; version="1.0.0"; sha256="04lq8i4zwdc9a4n4hvabdyv4a4cmmqbf534cdnnck7jc0dk5rphr"; depends=[MASS Matrix]; };
   VAR_etp = derive2 { name="VAR.etp"; version="0.7"; sha256="0py5my3ilhcmz44m15hh0d219l9cz7rda4a9gbmf8wh9cgvvj1s3"; depends=[]; };
@@ -5446,6 +5483,7 @@ in with self; {
   VDSM = derive2 { name="VDSM"; version="0.1.1"; sha256="09h09av2yydq1vwd77lgfjjk87432sas60905sxkw0mjixf6hq22"; depends=[dplyr ggplot2 gridExtra knitr plyr viridis]; };
   VDSPCalibration = derive2 { name="VDSPCalibration"; version="1.0"; sha256="1hrmmhvk3mhd3bdl0msnm5shcj4cjgd3pn1rkfkv8fh4llqvz7w8"; depends=[]; };
   VEwaning = derive2 { name="VEwaning"; version="1.1"; sha256="176f0y60pcw29iq6rs636mybbnxq9fhgwhsxaykiijz5d0jhkmbn"; depends=[ggplot2 survival]; };
+  VEwaningVariant = derive2 { name="VEwaningVariant"; version="1.1"; sha256="1jchs1ddvdmha7ivxi99mvr4vl7jggpv6mnv7d6xcrfyw3gh1bj1"; depends=[ggplot2 Rcpp RcppArmadillo survival]; };
   VFP = derive2 { name="VFP"; version="1.3.1"; sha256="186v8jq9z7jm8yzi21s6gc56hiizq3j1qirifa67jlwwyr48y8s7"; depends=[gnm MASS VCA]; };
   VFS = derive2 { name="VFS"; version="1.0.2"; sha256="1b8sl8id2gj4iqkpjzd3giybbix2jvskwsbw1kqj3zqr77hygxwg"; depends=[e1071 nleqslv]; };
   VGAM = derive2 { name="VGAM"; version="1.1-5"; sha256="1fx123h4x5awzshv0m4jqbbllrdjfpslb2i8gl9phm1y1wahn69h"; depends=[]; };
@@ -5461,7 +5499,6 @@ in with self; {
   VLF = derive2 { name="VLF"; version="1.0"; sha256="1il8zhm80mc22zj16dpsy4s6s9arj21l9ik0vccyrpnlr8ws3d3l"; depends=[]; };
   VLMC = derive2 { name="VLMC"; version="1.4-3-1"; sha256="0cwfpxcj8g68j9z9fl66i0amj8ypf199iv3yyxzsmniqv4w5x4ar"; depends=[MASS]; };
   VLTimeCausality = derive2 { name="VLTimeCausality"; version="0.1.3"; sha256="1a5v2yp2pmnx0h0k2kvpw0cpn1bwz3c68vwdj7sz8r85c7mw326d"; depends=[dtw ggplot2 RTransferEntropy tseries]; };
-  VNM = derive2 { name="VNM"; version="7.1"; sha256="19qglcibb7r6jjz0n0piklwfv3hi4jphd6vmyfbm0ccjjkmn5nin"; depends=[Rcpp]; };
   VOSONDash = derive2 { name="VOSONDash"; version="0.5.7"; sha256="1qivx5ddl9jsn6q6ic2w8jrczxlx23z087k5arfz2rixgj7rndyg"; depends=[data_table httpuv httr igraph lattice magrittr RColorBrewer shiny SnowballC systemfonts syuzhet textutils tm vosonSML wordcloud]; };
   VSURF = derive2 { name="VSURF"; version="1.1.0"; sha256="1azfd4sb89mp27l86k293qj81x94gfiy1ihwnb6c558p8h69xsgf"; depends=[doParallel foreach randomForest ranger Rborist rpart]; };
   VSdecomp = derive2 { name="VSdecomp"; version="0.1.1"; sha256="1vx68rhsxvi3kkrwr98hqhivhdmb9dm9rnmgspx74dskhkysjwbg"; depends=[ggplot2 Hmisc lfe reshape rlang]; };
@@ -5489,8 +5526,9 @@ in with self; {
   VeryLargeIntegers = derive2 { name="VeryLargeIntegers"; version="0.1.8"; sha256="0yvm3kkc7ssk85ripdgbxj8gazqb1dfswgjy63c3gb135zi2cbqk"; depends=[Rcpp]; };
   VetResearchLMM = derive2 { name="VetResearchLMM"; version="1.0.0"; sha256="1a7wm04bsr5shak7l8ypxlhlnx3qkq1jdpjnji1n05p6b00ih9h1"; depends=[ggplot2 lme4 lmerTest multcomp nlme]; };
   ViSiElse = derive2 { name="ViSiElse"; version="1.2.2"; sha256="1ay09dahlqnfrgf4gl4s45a4ahrk2xliagxqz5h826w2vzsawqcc"; depends=[chron colorspace ggplot2 Matrix reshape2 stringr]; };
-  VicmapR = derive2 { name="VicmapR"; version="0.1.7"; sha256="1kk1dss8dz66xpgkbrgxyhf6giydbyp3vwlpm78dr5pfzfyi9l6c"; depends=[cli curl DBI dbplyr dplyr glue httr magrittr purrr rlang sf xml2]; };
+  VicmapR = derive2 { name="VicmapR"; version="0.1.8"; sha256="0lnpbbspsl1q4z2i4jmz7j3idqwdxrngpcavnppp68ajyz4i5xkr"; depends=[cli curl DBI dbplyr dplyr glue httr lubridate magrittr purrr rlang rvest sf xml2]; };
   VineCopula = derive2 { name="VineCopula"; version="2.4.3"; sha256="05zajfncr9iyzpv98zw3ph2drxbnfjwjw8l244j49das6jkplwj2"; depends=[ADGofTest lattice MASS mvtnorm]; };
+  VisitorCounts = derive2 { name="VisitorCounts"; version="1.0.0"; sha256="1i2msvr2mlwwlwp5zmr4i16svrbfix65ga9rsvc43gv7rg4ip7rd"; depends=[ggplot2 ggthemes Rssa tibble]; };
   Visualize_CRAN_Downloads = derive2 { name="Visualize.CRAN.Downloads"; version="1.0.1"; sha256="0z2v2izn4aj3i6f5gh8r7pkrqpbb82bv9v4s4vqxgm066a51m4p2"; depends=[cranlogs htmlwidgets plotly]; };
   VorteksExport = derive2 { name="VorteksExport"; version="0.1.8"; sha256="0r9wmd9bdarjkqmpwp85xz27nbyhjkcpxm8qb8bqjmxq4nds6nxx"; depends=[]; };
   Voss = derive2 { name="Voss"; version="0.1-4"; sha256="056izh1j26vqjhjh01fr7nwiz1l6vwr5z4fll87w99nc5wc4a467"; depends=[fields]; };
@@ -5498,6 +5536,7 @@ in with self; {
   VulnToolkit = derive2 { name="VulnToolkit"; version="1.1.4"; sha256="01m8spmd4na7mxgnplnnq3n4pab9349z2dk44b455vcadll0fsdi"; depends=[plyr XML]; };
   W2CWM2C = derive2 { name="W2CWM2C"; version="2.2"; sha256="0544wnyyv8glv4ljldmaqgynpshd5bvsqwsz9q1071dfshhxki1v"; depends=[colorspace wavemulcor waveslim]; };
   W3CMarkupValidator = derive2 { name="W3CMarkupValidator"; version="0.1-6"; sha256="0nfay5nqss3zlw4nikj8h3zzlnjfxjch4pm3qky15qrcigrybrbl"; depends=[curl xml2]; };
+  WA = derive2 { name="WA"; version="1.0"; sha256="0i6hkajfalwpvxmmzfl7nhk4x6hhrf0xqpgny8b1gk1hw05yv03m"; depends=[]; };
   WACS = derive2 { name="WACS"; version="1.1.0"; sha256="09fmdlpb99q9dw17lwp0bwpklgvgiqq7bfs9ryx5r54m0niklr9d"; depends=[mclust mnormt mvtnorm tmvtnorm]; };
   WARN = derive2 { name="WARN"; version="1.2-4"; sha256="18gfk9vqcqarj7j5i240wqv2dclg3csng4mih5izj40xaaxaf6q5"; depends=[MASS]; };
   WASP = derive2 { name="WASP"; version="1.4.1"; sha256="1af2qqsq811bvcwns4i0kvy36xxi9pkdawwq2n75yd9dhpv5whav"; depends=[ggplot2 sp tidyr waveslim]; };
@@ -5516,7 +5555,7 @@ in with self; {
   WMWssp = derive2 { name="WMWssp"; version="0.4.0"; sha256="16m4hvjqdcpkvswvqwgm0pq9nm7vjrlqldzi4i69izlwccp37v47"; depends=[]; };
   WPC = derive2 { name="WPC"; version="1.0"; sha256="0li502hwa4n945yfnilslyvl12ls66kazbfmxb4kkjbaf500mjp9"; depends=[msm survival]; };
   WPKDE = derive2 { name="WPKDE"; version="0.1"; sha256="100vla11fbw16x5n4w4kbslz4n725v4x6j0hrxzrk99ryl0crmf6"; depends=[]; };
-  WR = derive2 { name="WR"; version="0.1.1"; sha256="153f64b2zsykl5f8iwxlcqby96ag1an4w8lhs7dxx72gy5k4vs6c"; depends=[survival]; };
+  WR = derive2 { name="WR"; version="1.0"; sha256="10813dzq3pn354g5x7hczi6aq61kmfrl8y4wc005bsxj0ipz0a06"; depends=[cubature gumbel survival]; };
   WRI = derive2 { name="WRI"; version="0.1.0"; sha256="09klq35q1b9c0v86mhx1klqv41jx0saivhh7a8pq7b3b9f8678zb"; depends=[CVXR expm fdadensity fdapace ggplot2 gridExtra locfit locpol modeest mvtnorm Rcpp RcppArmadillo Rfast rlang]; };
   WRS2 = derive2 { name="WRS2"; version="1.1-3"; sha256="0nnx0hzdijh9kdh69z72720z30ih0fbmn3kqycgbqxlk99wddakh"; depends=[MASS mc2d plyr reshape]; };
   WRSS = derive2 { name="WRSS"; version="3.0"; sha256="16a7i6glgl5cshsn3w7gxviybmka06ylw5znz94gigyx0vhgv97p"; depends=[GGally ggplot2 Hmisc network nloptr]; };
@@ -5533,7 +5572,7 @@ in with self; {
   WaveletComp = derive2 { name="WaveletComp"; version="1.1"; sha256="07w2aa0jiflvxyqhgh48705hg8hjspd103jd00i2pcw2v42hwmf8"; depends=[]; };
   WaveletGARCH = derive2 { name="WaveletGARCH"; version="0.1.1"; sha256="0dj5bmvzfhj1cpn8qi2ax3iipr7jlq0f9vk4b1idqgh5dmdi8lh6"; depends=[FinTS forecast fracdiff rugarch wavelets]; };
   WaverR = derive2 { name="WaverR"; version="1.0"; sha256="084fhzggzm075w6wp2lqd3j0an21idhw8z5l8ynz4y96mpmn204a"; depends=[kimisc MASS]; };
-  WeMix = derive2 { name="WeMix"; version="3.1.9"; sha256="0d9l0225nzx96xvc0n0mjkhnj7dkk1j69glxxpxn393b5afllyln"; depends=[lme4 Matrix minqa NPflow numDeriv Rmpfr statmod]; };
+  WeMix = derive2 { name="WeMix"; version="3.2.0"; sha256="1wcfk566w4jc39db5yz8ib2qai6dfpm21ywqvlcp97viwdmnkqfr"; depends=[lme4 Matrix minqa NPflow numDeriv Rmpfr statmod]; };
   WebGestaltR = derive2 { name="WebGestaltR"; version="0.4.4"; sha256="1rgf9s80hk35baiknrwgnqnhxssrcxdansgpvpyhqv07bqd472nn"; depends=[apcluster doParallel doRNG dplyr foreach httr igraph jsonlite Rcpp readr rlang svglite whisker]; };
   WebPower = derive2 { name="WebPower"; version="0.6"; sha256="1gw6191v9sgycis3vyjznaaiyhmp0j23h9k8g8adchpyss7017ab"; depends=[lavaan lme4 MASS PearsonDS]; };
   WeibullFit = derive2 { name="WeibullFit"; version="0.1.0"; sha256="1a80gcqbmvb1rz2dr2syy16wn6ixjn6l40gayys9zy8302hky9ir"; depends=[e1071 FAdist glue kSamples mixdist optimx R_methodsS3 R_oo sqldf xtable]; };
@@ -5547,9 +5586,9 @@ in with self; {
   WgtEff = derive2 { name="WgtEff"; version="0.1.2"; sha256="1z8pndv43ssgmzldwaq0088lmf1g2mkmrbmzyaismcpngn9fqxsk"; depends=[]; };
   WhatIf = derive2 { name="WhatIf"; version="1.5-10"; sha256="19w5qw123iahrx96379lrx8i7v3x2ck5dhklf58iw0dmj4pfy2kg"; depends=[lpSolve pbmcapply]; };
   WhiteStripe = derive2 { name="WhiteStripe"; version="2.4.0"; sha256="08lywd8jwx6cw7dqm7zxj291gifacymlk8ikjad9aw2f9jm6kap0"; depends=[mgcv neurobase oro_nifti]; };
-  WienR = derive2 { name="WienR"; version="0.2-2"; sha256="0478fbhh8h175wkz6bigxccdrq2lv5kx7zfkgkk80rwj36zm7882"; depends=[]; };
+  WienR = derive2 { name="WienR"; version="0.3-0"; sha256="1lhjcyn8qh23iq0v18m0hbq94nqrx12lsd49shj6wf3x220vf0d2"; depends=[]; };
   WikidataQueryServiceR = derive2 { name="WikidataQueryServiceR"; version="1.0.0"; sha256="1bl1nbhbmss8cj9ni7plsjs996n4rwqv6h8bh1zj4whs8z4fw50f"; depends=[dplyr httr jsonlite purrr ratelimitr readr rex WikipediR]; };
-  WikidataR = derive2 { name="WikidataR"; version="2.3.1"; sha256="1nmj1qi2v1a9mg74k9603i4dva9fcby6wczs7sgaw2qw1hb9sd6x"; depends=[crayon dplyr Hmisc httr jsonlite pbapply progress readr stringr tibble WikidataQueryServiceR WikipediR]; };
+  WikidataR = derive2 { name="WikidataR"; version="2.3.3"; sha256="120833b7zyq1rhmn9c8iv0j6br60af7gbn5lc4dil55qhh2lp9rx"; depends=[crayon dplyr Hmisc httr jsonlite pbapply progress readr stringr tibble WikidataQueryServiceR WikipediR]; };
   WikipediR = derive2 { name="WikipediR"; version="1.5.0"; sha256="1w4ggq42vlq7zbrz3v9ripz9yscbd8m8as60q7cplpxn9zqfdl7q"; depends=[httr jsonlite]; };
   WikipediaR = derive2 { name="WikipediaR"; version="1.1"; sha256="0fxk247jb82g0f3nmwraa4kvdpjxy5s4dcyzj9vkjw2lq8by3l0h"; depends=[httr XML]; };
   WilcoxCV = derive2 { name="WilcoxCV"; version="1.0-2"; sha256="1kbb7ikgnlxybmvqrbn4cd8xnqrkwipk4xd6yja1xsi39a109xzl"; depends=[]; };
@@ -5593,7 +5632,7 @@ in with self; {
   ZIBBSeqDiscovery = derive2 { name="ZIBBSeqDiscovery"; version="1.0"; sha256="12g9rga9z6318ni6x6q9hdqlgl93y2xn8vf3gc6sm97fz8pliswx"; depends=[mcc]; };
   ZIBseq = derive2 { name="ZIBseq"; version="1.2"; sha256="13rjy4jl9wil6hhpra4qmdis0iyqxchzsf9l7q6r0dz1f7dpd2nq"; depends=[gamlss gamlss_dist nlme]; };
   ZIM = derive2 { name="ZIM"; version="1.1.0"; sha256="0scyfjn4ilsvha3x41c3b8bcfi31hlhwm77wn2a8hj5dsvnnmzig"; depends=[MASS]; };
-  ZIPBayes = derive2 { name="ZIPBayes"; version="1.0.1"; sha256="1azpxqvphcwcvvxh81124bc6crqlvxi81xddnrc9rvmbirwnxss4"; depends=[MASS Rcpp]; };
+  ZIPBayes = derive2 { name="ZIPBayes"; version="1.0.2"; sha256="0j56smgf44fki70jc6aypksbl70pyppc6s3xv82yrq5rndym077k"; depends=[MASS Rcpp]; };
   ZIPFA = derive2 { name="ZIPFA"; version="0.8.1"; sha256="134pkdn4slhiv27rdkkmh2z7xch30ns0jhzxgd7r05bky0z1iri1"; depends=[doParallel foreach Matrix optimx trustOptim]; };
   ZIprop = derive2 { name="ZIprop"; version="0.1.1"; sha256="1gvf6z7mx543a0hiqcknwhkplqa3mfmw3swi8n9vma10bqmgysx7"; depends=[data_table purrr rgenoud]; };
   ZRA = derive2 { name="ZRA"; version="0.2"; sha256="1sx1q5yf68hhlb5j1hicpj594rmgajqr25llg7ax416j0m2rnagi"; depends=[dygraphs forecast]; };
@@ -5606,12 +5645,11 @@ in with self; {
   aCRM = derive2 { name="aCRM"; version="0.1.1"; sha256="0kzp568hd9c9a9qgniia5s5gv0q5f89xfvvwpzb197gqhs3x092v"; depends=[ada dummies kernelFactory randomForest]; };
   aGE = derive2 { name="aGE"; version="0.0.9"; sha256="17niwni6sd2mdvhskq6vfwplynh67hwq9ijrlgjvhkcslpb2ilp3"; depends=[MASS nlme survey]; };
   aLFQ = derive2 { name="aLFQ"; version="1.3.6"; sha256="0kphpvhz36859f5l0k8mbf59g9871mynbs4ybdi0h5nm2cdjy9vx"; depends=[bio3d caret data_table lattice plyr randomForest reshape2 ROCR seqinr]; };
-  aMNLFA = derive2 { name="aMNLFA"; version="1.0.0"; sha256="1wjv4ka683asj5j4amymgbc56qn136nkyjfbb7szs0gfp1jf1qig"; depends=[devtools dplyr ggplot2 gridExtra MplusAutomation plyr reshape2 stringr]; };
+  aMNLFA = derive2 { name="aMNLFA"; version="1.1.0"; sha256="00agirwpz0rw4wfqgng97ikyz97sgmvdymr7m4c69ik3b9a6sfxl"; depends=[devtools dplyr ggplot2 gridExtra MplusAutomation plyr reshape2 stringi stringr]; };
   aPCoA = derive2 { name="aPCoA"; version="1.2"; sha256="0b5fqxay918if5pfd6xgbzir5myivc3jar2p2is8azrykrr1v2cr"; depends=[ape car cluster randomcoloR vegan]; };
-  aRbs = derive2 { name="aRbs"; version="0.1.3"; sha256="19s4x2w036xllrsarapmp8rvyxcsky82k4h9mfr2rbhdfid6h1f3"; depends=[crayon data_table dlstats dplyr DT ggplot2 lubridate progress purrr rvest shiny shinyBS shinycssloaders shinydashboard stringr xml2]; };
   aRchi = derive2 { name="aRchi"; version="1.0.5"; sha256="1sn321d2qh7vvwfbr62lg3c5ggg8df0w0q6mwcg5pr3jqhiif076"; depends=[circular data_table DiceKriging dplyr FNN gtools lidR pkgcond plyr progress rgl stringr]; };
   aRpsDCA = derive2 { name="aRpsDCA"; version="1.1.1"; sha256="0ghg43rd6bnv4jp8pkpd1ixp5l6kq5pr0mxq61q24s24g0m3s64p"; depends=[]; };
-  aRtsy = derive2 { name="aRtsy"; version="0.1.4"; sha256="0b7wg4jhykxra602g49rqx4mppnfjy2iannhi38idlz9h7f3wbl4"; depends=[dplyr e1071 ggplot2 kknn randomForest Rcpp RcppArmadillo]; };
+  aRtsy = derive2 { name="aRtsy"; version="0.1.5"; sha256="1acip7437jj86rkdnx8f4cl6flqzbfb31xhwjskc17p30awz9518"; depends=[e1071 ggplot2 kknn randomForest Rcpp RcppArmadillo]; };
   aRxiv = derive2 { name="aRxiv"; version="0.5.19"; sha256="0rik0jkh1xi9fizzw46xmcw139g6nla072p7f8jgvzbhp7k58ba2"; depends=[httr XML]; };
   aSPC = derive2 { name="aSPC"; version="0.1.2"; sha256="1q301rw7dax5v58srg4jlcam1qq2igkaj7kg8wlnlml0hsck4c4a"; depends=[energy mvtnorm]; };
   aSPU = derive2 { name="aSPU"; version="1.50"; sha256="0rh21dj5913nxhdndqfhxvm6mvwnacraf7l3bac09awm7cfhk511"; depends=[fields gee MASS matrixStats mvtnorm]; };
@@ -5634,28 +5672,25 @@ in with self; {
   abglasso = derive2 { name="abglasso"; version="0.1.1"; sha256="0h8p912l0202wyr5vjsbzw5mr70m56ab39wv833g6c4c3187479y"; depends=[MASS pracma statmod]; };
   abind = derive2 { name="abind"; version="1.4-5"; sha256="0b1zd8jbnl6l292cr9rb50m09fy3ylxvzkpgi5lfb1nbzddcwfis"; depends=[]; };
   abjutils = derive2 { name="abjutils"; version="0.3.1"; sha256="18mmlkqsrjfclk8islfjdsp8sbw6dpjj5x45kqilxdiss69gg5zd"; depends=[dplyr magrittr purrr rlang rstudioapi stringi stringr tidyr]; };
-  abmR = derive2 { name="abmR"; version="1.0.4"; sha256="1sz27ym4lfzsf8413p3zdq51gcn9lp3bbgjgah0wfas4v3yyfsp4"; depends=[geosphere ggplot2 googledrive gstat gtsummary kableExtra purrr raster rgdal rgeos rnaturalearth rnaturalearthdata sf sp swfscMisc table1 tmap]; };
-  abn = derive2 { name="abn"; version="2.5-0"; sha256="1fqmhw0mhdl6az1gpg0byvx5snhz1pl3fqikhyfjcjrc9xbsq8yw"; depends=[lme4 nnet Rcpp RcppArmadillo Rgraphviz rjags]; };
   abnormality = derive2 { name="abnormality"; version="0.1.0"; sha256="1fzfskl9akl06nliy8hkv2a0pznpj8pwcypg3gj5r2nzvr3kan9v"; depends=[MASS Matrix]; };
   abodOutlier = derive2 { name="abodOutlier"; version="0.1"; sha256="1pvhgxmh23br84r0fbmv7g53z2427birdja96a67vqgz18r3fdvj"; depends=[cluster]; };
-  abstr = derive2 { name="abstr"; version="0.4.0"; sha256="1alipc1pajjbvs69swxn5xkbjryrmdx5fyrwnfwdrn8l2vkgw10w"; depends=[jsonlite lwgeom magrittr od sf tibble tidyr]; };
   abstractr = derive2 { name="abstractr"; version="0.1.0"; sha256="1ymwp7syrynwd4i8aj2x5n8jdi9d96fjzl6jb09n0bnr5fgl7vig"; depends=[colourpicker emojifont ggplot2 gridExtra rintrojs shiny shinythemes]; };
-  abtest = derive2 { name="abtest"; version="0.2.2"; sha256="1ak0m4jd1grriwg4pn3aqf1468qma6rjn5kqjh8izx7zl29jd07v"; depends=[Matrix mvtnorm plotrix qgam RColorBrewer Rcpp sn truncnorm]; };
-  academictwitteR = derive2 { name="academictwitteR"; version="0.2.1"; sha256="1xwkzspb1j87i8zy1r7gjg22cb8ay87v3l15nnvapzc9sg0dk1vp"; depends=[dplyr httr jsonlite lubridate magrittr purrr rlang tibble tidyr tidyselect usethis]; };
+  abtest = derive2 { name="abtest"; version="1.0.1"; sha256="0jz2ry5364p8h8xlk5a5sycn8xlpxd1iasfg99bcr4jqzd92jfqg"; depends=[Matrix mvtnorm plotrix qgam RColorBrewer Rcpp sn truncnorm]; };
+  academictwitteR = derive2 { name="academictwitteR"; version="0.3.0"; sha256="07fmkrh90ji04qkcad6f3xk4ndin38w1w5ywygv588in1psqfjci"; depends=[dplyr httr jsonlite lubridate magrittr purrr rlang tibble tidyr tidyselect usethis]; };
   acc = derive2 { name="acc"; version="1.3.3"; sha256="1ii2vm47djxbixa75h690q1s2f9m9x6i8nkygik93j6dayr6kr1m"; depends=[circlize DBI ggplot2 iterators mhsmm nleqslv PhysicalActivity plyr R_utils Rcpp RcppArmadillo RSQLite zoo]; };
   accSDA = derive2 { name="accSDA"; version="1.0.0"; sha256="0sgxy5y8kkc1n35657kifwfjsba7y5m1vbr7rkk5lmbpkzahqm61"; depends=[ggplot2 ggthemes gridExtra MASS rARPACK sparseLDA]; };
   accelerometry = derive2 { name="accelerometry"; version="3.1.2"; sha256="13xzrwhr4i1nj9c8vrmfdg2rmrc8n446iihcyxmy99sm99hpzyip"; depends=[dvmisc Rcpp]; };
   accelmissing = derive2 { name="accelmissing"; version="1.4"; sha256="1nql9inx6azdzi3z4sfm2vdml2mms6krl8wzlf1dn1c97ahn57fy"; depends=[mice pscl]; };
   accept = derive2 { name="accept"; version="0.8.3"; sha256="0qn4lm6bk0z2iijwsfbymx1c9y39988fw124ncgmlrgw5kv80b7x"; depends=[dplyr reldist]; };
   accrual = derive2 { name="accrual"; version="1.3"; sha256="11clm9s5c5518nmp6hd6pjnp0s28y92b2i2x0xgj4j5g816p4j3z"; depends=[fgui SMPracticals tcltk2]; };
-  accucor = derive2 { name="accucor"; version="0.2.4"; sha256="1vyppzskd5bw4mb0z8ilzh0j7jf00jr5wk5mykv7iwibwlscm5xx"; depends=[CHNOSZ dplyr gsubfn nnls readr readxl rlang stringr tibble writexl]; };
+  accucor = derive2 { name="accucor"; version="0.3.0"; sha256="1byhfh9lskgpi8sx6kb7prh88a2jglrjpq206rmh98hqd3r23n5j"; depends=[CHNOSZ dplyr nnls readr readxl rlang stringr tibble writexl]; };
   ace2fastq = derive2 { name="ace2fastq"; version="0.6.0"; sha256="09kk3yyqnr2xp820g0p3aai9a21figigjr9lxkr3zjq2d8gzwfic"; depends=[stringr]; };
   aceEditor = derive2 { name="aceEditor"; version="1.0.1"; sha256="1qdxs20si1smjn24dlgq46x6qwjdwsa0f5lzh1vrbgv4kk9j1rfb"; depends=[htmltools htmlwidgets reactR rstudioapi]; };
   acebayes = derive2 { name="acebayes"; version="1.10"; sha256="11bffz430gdfdaxjx3simig66vhynmx6l1ylac4q2shcmj52nx73"; depends=[compare lhs randtoolbox Rcpp RcppArmadillo]; };
   acepack = derive2 { name="acepack"; version="1.4.1"; sha256="1f98rpfjmhd92rdc3j004plyfpjailz6j0ycysbac0kgj83haxc2"; depends=[]; };
   acfMPeriod = derive2 { name="acfMPeriod"; version="1.0.0"; sha256="1yww8isfrbs2v9s94hx7p2imyszcgadwafdgpj438n2ik0q6p9d5"; depends=[MASS]; };
   acid = derive2 { name="acid"; version="1.1"; sha256="030i0y8s283ivbsmjccpbv9v7mgbcg2jk9df7vgcbbns74swf9hd"; depends=[gamlss gamlss_dist Hmisc]; };
-  acled_api = derive2 { name="acled.api"; version="1.1.4"; sha256="115cyp8x576dkkfbhg41hklwjvkj6v1cxrq8xcp9vcry4njaf6vi"; depends=[httr jsonlite]; };
+  acled_api = derive2 { name="acled.api"; version="1.1.5"; sha256="0x0hp5cqpxal1360xjpyciwsl8hsywp2glwcgqqgrckl3y89hh7x"; depends=[httr jsonlite]; };
   acmeR = derive2 { name="acmeR"; version="1.1.0"; sha256="000b2hqlhj93958nddw0fqb15ahigs08najv2miivym046x04mf7"; depends=[foreign]; };
   acnr = derive2 { name="acnr"; version="1.0.0"; sha256="087hq4i7jp67ba2finzsqjfnqbiprl33na6ryjv9zqzsdawj9cym"; depends=[]; };
   acopula = derive2 { name="acopula"; version="0.9.3"; sha256="0vvbbw8pfs9jwfz5c57lw48pr0qj661r0ys007q6zf9jmlrhx1ln"; depends=[]; };
@@ -5690,6 +5725,7 @@ in with self; {
   adaptiveGPCA = derive2 { name="adaptiveGPCA"; version="0.1.2"; sha256="0bb6hw77dfa66b12xyazlp992gwjb1plylixlmq4cv4yjhnl9n5z"; depends=[ape ggplot2 phyloseq shiny]; };
   adaptivetau = derive2 { name="adaptivetau"; version="2.2-3"; sha256="1jficl4yidix35q8yqs3pcv813wq3pg4hpw4ah4dprvg95bl7wwx"; depends=[]; };
   adaptsmoFMRI = derive2 { name="adaptsmoFMRI"; version="1.1"; sha256="1h79gh1bd6s2xhwf4whh72wf2cz4di2p8dnlf6192mfg108qc6nw"; depends=[coda Matrix MCMCpack mvtnorm spatstat]; };
+  adass = derive2 { name="adass"; version="1.0.0"; sha256="1g702pg335q9jwgdygb7n364ibad6z27fcd9yfim8gi4fcpjwlkq"; depends=[fda matrixcalc mvtnorm plot3D Rfast SparseM]; };
   add2ggplot = derive2 { name="add2ggplot"; version="0.3.0"; sha256="0c94i1cfp2pvplvxmfvvz2fyj026r1jnax05mrzrc7ppnqzy25y0"; depends=[ggplot2 magick magrittr RColorBrewer zeallot]; };
   addScales = derive2 { name="addScales"; version="1.0-1"; sha256="1bw4ljyyswdhqyir9i6lj0mg9lm6ry4zpqp2h6w2bpk37rvs1w38"; depends=[lattice]; };
   addhaz = derive2 { name="addhaz"; version="0.5"; sha256="1709jq9rp5lhqk0qpk8zkdwzhcv1bcach8mm7yiz7hzcc1mgxb12"; depends=[boot MASS Matrix]; };
@@ -5724,7 +5760,7 @@ in with self; {
   adjustedcranlogs = derive2 { name="adjustedcranlogs"; version="0.1.0"; sha256="08apfvpqvnnalx230p4qf5ckrwm1sgzras4zfrysgym5d4map9ci"; depends=[cranlogs dplyr lubridate rvest xml2]; };
   adklakedata = derive2 { name="adklakedata"; version="0.6.1"; sha256="1lzj3ib4bgfkq5lq12n47pwc52h7k35xbbwj6brwsgx1gd4fx3x6"; depends=[httr rappdirs]; };
   adlift = derive2 { name="adlift"; version="1.4-1"; sha256="14q7fnhlqvxdhnfjhdhfmadz241srplbm069a7ybbsql21cphpf3"; depends=[EbayesThresh]; };
-  admisc = derive2 { name="admisc"; version="0.19"; sha256="0gyk0yazdg5gb3m5ln9m6mv9pv2klb2in79gnc2vzq8ld7cc82vw"; depends=[]; };
+  admisc = derive2 { name="admisc"; version="0.20"; sha256="1ycarp95msxlcnidblvrkqhwhjpxlqwd8qvll9zdlxcqg1n117lf"; depends=[]; };
   admix = derive2 { name="admix"; version="0.3.2"; sha256="0si2avjqw6rmv2ndsj1ppmqkafnsjx06m2h4jxfrwf2kxfp2rrn1"; depends=[fdrtool Iso latex2exp MASS orthopolynom pracma Rcpp]; };
   admixr = derive2 { name="admixr"; version="0.9.1"; sha256="0wszpzs53cbnha13g2ldpq6z5ndw2v2xgrzadqkjm3hsp6akv4bl"; depends=[dplyr magrittr readr rlang stringr tibble]; };
   admmDensestSubmatrix = derive2 { name="admmDensestSubmatrix"; version="0.1.0"; sha256="1a5lfm10aj6wdjibdnmffn75zvy6x69w8nqcx2i23gxg6v0xlqcl"; depends=[Rdpack]; };
@@ -5751,6 +5787,7 @@ in with self; {
   afthd = derive2 { name="afthd"; version="1.1.0"; sha256="0gg2cp3sj28f3pi5rqh737hna3imwarwas01jacm0m2h27587k7y"; depends=[glmnet photobiology R2jags rstpm2 survival]; };
   agRee = derive2 { name="agRee"; version="0.5-3"; sha256="1wi8jn14kpsj5z49my6fz8j6zxysddxm8svw86cnzsmnbj6mzq7x"; depends=[coda lme4 miscF R2jags]; };
   aggregation = derive2 { name="aggregation"; version="1.0.1"; sha256="0j9g604m2ccc7hcy02539yja9cf3xcbl25gvp838bp4x8w18my46"; depends=[]; };
+  aghq = derive2 { name="aghq"; version="0.3.1"; sha256="1sl2w6avkrz3j1yhyzvg88l1yvf2mi6zbdjr3zdrzm2ccgkww725"; depends=[Matrix mvQuad numDeriv polynom rlang]; };
   aglm = derive2 { name="aglm"; version="0.4.0"; sha256="0rcyrzfi3l1k53c9qs1gfrcflnhdnri9sq6py8s6fw4wcn55kf67"; depends=[assertthat glmnet mathjaxr]; };
   agop = derive2 { name="agop"; version="0.2-3"; sha256="1z90a07wzn5z4cbafwpfh3l3v1bgq9g89qbdjm51f78zynnb27dk"; depends=[]; };
   agriTutorial = derive2 { name="agriTutorial"; version="0.1.5"; sha256="0c0p0bqcrnx34q5brnvgq10wkzahvgyybaz2xfmcghbdvzahd2dx"; depends=[emmeans ggplot2 lattice lmerTest nlme pbkrtest]; };
@@ -5758,11 +5795,10 @@ in with self; {
   agricolaeplotr = derive2 { name="agricolaeplotr"; version="0.2.2"; sha256="1xrsn9afdqzczaqam0aygm19vpgbq9aqh5b5qr9awj747sihpxjp"; depends=[agricolae ggplot2 rmarkdown]; };
   agridat = derive2 { name="agridat"; version="1.18"; sha256="0r3806inanb49snnliq1k2li40f3yl73h37apngfhk0fw2d46fq1"; depends=[]; };
   agriwater = derive2 { name="agriwater"; version="1.0.1"; sha256="1mssd0nxj8ayc3b2qcc7qzx93cnwnlxrnhn3rdknxc8iixkf40l8"; depends=[raster rgdal sp]; };
-  agrmt = derive2 { name="agrmt"; version="1.42.7"; sha256="00vhwlz6vf2p3x51arxngd0vzgw8mb9fi8dq0b2lvqbpqqv6d071"; depends=[]; };
-  agroclim = derive2 { name="agroclim"; version="0.1.0"; sha256="16cyqplzmwziqwkicix0sr06zhc0yx615iv3hda0cxbdyf2rllk3"; depends=[abind cowplot easyNCDF ggforce ggplot2 ggpubr gtable multiApply ncdf4 plyr raster reshape sp zoo]; };
+  agrmt = derive2 { name="agrmt"; version="1.42.8"; sha256="1czxcyqrmcpjh4h77p9c6gb63aj0mi1b8cdxp3q6r0k7dy8db7ad"; depends=[]; };
   agrostab = derive2 { name="agrostab"; version="0.1.0"; sha256="0mcskv3144j594wqljzn5pwbhkxh6sb76b1c2wabzjvi61zrapiv"; depends=[dplyr ggplot2 rlang]; };
   agsemisc = derive2 { name="agsemisc"; version="1.3-1"; sha256="1905q35jgjhghlawql43yh296kbpysp927x3hj750yshz5zayzyr"; depends=[lattice MASS]; };
-  agtboost = derive2 { name="agtboost"; version="0.9.1"; sha256="01gydh7rlsgv759y3nahm9qi8pd24x37rpzv1frwzrr5jfbajqdl"; depends=[Rcpp RcppEigen]; };
+  agtboost = derive2 { name="agtboost"; version="0.9.3"; sha256="1z2ys4cn859vas3q1if50k46cryn7wwy1pjqbc8n9dhdn5zxn3sk"; depends=[Rcpp RcppEigen]; };
   ahMLE = derive2 { name="ahMLE"; version="1.18"; sha256="1yf8v2im13lsa6qadxws9cxvqf0fq17s27ran9lr1bbmxh84prpr"; depends=[invGauss Matrix Rcpp RcppArmadillo survival]; };
   ahaz = derive2 { name="ahaz"; version="1.14"; sha256="1z7w5rxd5cya7kxhgxqvn72k87y33ginxra9g7j9wrfs5jgx6kvx"; depends=[Matrix survival]; };
   ahnr = derive2 { name="ahnr"; version="0.3.1"; sha256="1g8m3q108ricfyn4fjjaihpr93xz7fm2sfzg3i0fz1n1i703jwm8"; depends=[ggplot2 magrittr matrixcalc pdist pracma purrr visNetwork]; };
@@ -5787,12 +5823,12 @@ in with self; {
   ajv = derive2 { name="ajv"; version="1.0.0"; sha256="1qd5ncb7rdnnvqfknsvq9nrpxrh0zv3jyh4b91dcvfvhp262vfrm"; depends=[RJSONIO V8 yaml]; };
   akc = derive2 { name="akc"; version="0.9.5"; sha256="0mjqz5csckdnl9wb2lypcj907qbkvppwbzvmfcl1a06431pj8zgv"; depends=[data_table dplyr ggforce ggplot2 ggraph ggwordcloud igraph magrittr rlang stringr textstem tibble tidygraph tidytext widyr]; };
   akiFlagger = derive2 { name="akiFlagger"; version="0.3.0"; sha256="08z5jvigzvl3af17dd8l6zil0s694i22x0a7xvb3n4fvg6fargz4"; depends=[data_table dplyr shiny zoo]; };
-  akima = derive2 { name="akima"; version="0.6-2.2"; sha256="0hl7ddpl6i40cmrjngs936cxlqrqsa5whbrw6fvni3pphbzwkvyy"; depends=[sp]; };
+  akima = derive2 { name="akima"; version="0.6-2.3"; sha256="0hvaa2n1r82fd60ksx4n4ia02fbm67fqdijfy2b2xywq8861i6rv"; depends=[sp]; };
   akmbiclust = derive2 { name="akmbiclust"; version="0.1.0"; sha256="19dj12vlry6f3agzrnshx2c4rpa2h7dlx2138r49jjy9sm48pyfw"; depends=[]; };
   akmeans = derive2 { name="akmeans"; version="1.1"; sha256="1nqbxbx583n0h2zmpy002rlmr6j86j6bg76xj5c69brrh59dpyw1"; depends=[]; };
   akmedoids = derive2 { name="akmedoids"; version="1.3.0"; sha256="19d9fh1cygn04riwc7y7lzdncyxki9rzikf9f5m96vp0y687z2ka"; depends=[clusterCrit dplyr ggplot2 Hmisc kml signal]; };
   alabama = derive2 { name="alabama"; version="2015.3-1"; sha256="0mlgk929gdismikwx4k2ndqq57nnqj7mlgvd3479b214hksgq036"; depends=[numDeriv]; };
-  alakazam = derive2 { name="alakazam"; version="1.1.0"; sha256="0iy3b1w2yx9d5xagbdb2xxl6ydm16mszs5mvx0bw5cfxrcffd680"; depends=[airr ape Biostrings dplyr GenomicAlignments ggplot2 igraph IRanges lazyeval Matrix progress Rcpp readr rlang scales seqinr stringi tibble tidyr]; };
+  alakazam = derive2 { name="alakazam"; version="1.2.0"; sha256="0lqvfamx9lqcg6ig70zzxan2zchab68g6qxa734d6dsdgyfkiwnm"; depends=[airr ape Biostrings dplyr GenomicAlignments ggplot2 igraph IRanges Matrix progress Rcpp readr rlang scales seqinr stringi tibble tidyr]; };
   albatross = derive2 { name="albatross"; version="0.3-2"; sha256="1rwaw7809lzdv89lfq9li8jdb7pbb0wjqyiidxl7pxg7d5nxj06h"; depends=[lattice Matrix multiway pracma]; };
   albopictus = derive2 { name="albopictus"; version="0.5"; sha256="0kw1agm9jqi9wl5zbx8bryngy751g3sih36rgbrx0m2170cy42d9"; depends=[]; };
   ald = derive2 { name="ald"; version="1.3.1"; sha256="12nf9vakayw24clrg56fh9x85kg277iricbs8ymahkjqjnc1p3cz"; depends=[]; };
@@ -5838,10 +5874,9 @@ in with self; {
   ammistability = derive2 { name="ammistability"; version="0.1.2"; sha256="0ak20y5iv1cg5y06srdlfk5qp5c463ky41l350shnqpq550azy11"; depends=[agricolae ggcorrplot ggplot2 mathjaxr Rdpack reshape2]; };
   ampd = derive2 { name="ampd"; version="0.2"; sha256="0bi8qngd37n60ym516yjcahxc536vdwm60rq5ld32170hww69j7c"; depends=[]; };
   ampir = derive2 { name="ampir"; version="1.1.0"; sha256="0nnsxrnq3m1frrjp3i8bhm67x6xnl0scyb67wxgm5x7b187svhfj"; depends=[caret kernlab Peptides Rcpp]; };
-  amt = derive2 { name="amt"; version="0.1.4"; sha256="0xdrpkirdxmni3bcqjjx8xxh3b0bllmsgc3r7h9zd7sf0p3aldhs"; depends=[checkmate circular ctmm dplyr fitdistrplus lubridate magrittr purrr raster Rcpp Rdpack rgeos rlang sf sp survival tibble tidyr]; };
   anMC = derive2 { name="anMC"; version="0.2.2"; sha256="0ab215nrqn535g9ayqzvgdckhwcrij1mc1296pvlj3grn3f8rhws"; depends=[mvtnorm Rcpp RcppArmadillo]; };
   anacor = derive2 { name="anacor"; version="1.1-3"; sha256="0mj8g9p4fla0ax9jvcq7kii4lrhj8g872p11nys06anva22qjp51"; depends=[car colorspace fda]; };
-  analogsea = derive2 { name="analogsea"; version="1.0.0"; sha256="1xqfx2bbi6ipgcb952gmgnhf9bc6jynid2ydl8h82mvy9z727zaz"; depends=[httr jsonlite magrittr yaml]; };
+  analogsea = derive2 { name="analogsea"; version="1.0.3"; sha256="1mf9baniria2vq5k5djm8jfj3lyr2p9q9idcy0ifcrmzyrmgwwi3"; depends=[httr jsonlite magrittr yaml]; };
   analogue = derive2 { name="analogue"; version="0.17-6"; sha256="0c5h8nnbflydv35ja1pfhyx7ifwlriwgcnrmxj5il5lvcr70y1vi"; depends=[brglm lattice MASS mgcv princurve vegan]; };
   analogueExtra = derive2 { name="analogueExtra"; version="0.1-1"; sha256="1s3qs10hf6hkna0bicid1mc8x8r449bl93xpgyw6lnsjgh2yx62c"; depends=[analogue rgl vegan3d]; };
   analysisPipelines = derive2 { name="analysisPipelines"; version="1.0.2"; sha256="1rxam52wrbcjrvixb35b9ha37i8a0fczby49vmgzpnrbvkc50ldx"; depends=[dplyr futile_logger ggplot2 magrittr pipeR proto purrr RCurl rlang]; };
@@ -5868,17 +5903,18 @@ in with self; {
   anomaly = derive2 { name="anomaly"; version="4.0.2"; sha256="110rdzz6l80vjc0q0gb0f829vb70r97p19ywa7gbl2cbkj2s1cci"; depends=[assertive BH caTools cowplot dplyr ggplot2 magrittr Rcpp Rdpack reshape2 rlang robust robustbase runner xts zoo]; };
   anovir = derive2 { name="anovir"; version="0.1.0"; sha256="1x7lvj7xchbv6siyc9miivmf0rlxrjflal4icyvbxgdr285s2s9w"; depends=[bbmle]; };
   anscombiser = derive2 { name="anscombiser"; version="1.0.0"; sha256="0jpmxgr5hfyv1hcjn4h1063ch3b3xlgqv983f4f9d2ajz5i5mdwv"; depends=[]; };
-  antaresEditObject = derive2 { name="antaresEditObject"; version="0.2.2"; sha256="055d3147s139idgqi6zb9l716nc2x40gknhcyqcygcm5nqrxjfzs"; depends=[antaresRead assertthat data_table doParallel fs pbapply whisker]; };
-  antaresProcessing = derive2 { name="antaresProcessing"; version="0.18.0"; sha256="1rw7g4706g4fdx7c7magxqj71h6iwkbslmyrqfwna4irnifjmv7g"; depends=[antaresRead data_table]; };
-  antaresRead = derive2 { name="antaresRead"; version="2.2.8"; sha256="02cpzd5iwfqmfb1ahl20apsd3n6873qxfa9f0fslbwn59w7hxm1j"; depends=[bit64 data_table doParallel jsonlite lubridate pbapply plyr shiny stringr]; };
-  antaresViz = derive2 { name="antaresViz"; version="0.16"; sha256="0iczcawyj2rf0vxirkbprcsl43y62dhavw7ky50b6c2s5pi3mjzw"; depends=[antaresProcessing antaresRead assertthat data_table dygraphs geojsonio htmltools htmlwidgets leaflet leaflet_minicharts lubridate manipulateWidget plotly rAmCharts raster rgeos shiny sp spMaps webshot]; };
-  anthro = derive2 { name="anthro"; version="0.9.4"; sha256="0blsfz3ckizkg4r4i3ib6b4yh40krcy8133v32f3yc220g2g2za9"; depends=[survey]; };
+  antaresEditObject = derive2 { name="antaresEditObject"; version="0.3.0"; sha256="04rdq3kbliac1iaxqflf3qhh58qgl9pxb2qh44wkknb91ga0845x"; depends=[antaresRead assertthat data_table doParallel pbapply whisker]; };
+  antaresProcessing = derive2 { name="antaresProcessing"; version="0.18.1"; sha256="1dlq850xqh9534ws88ma3vv5r79cbabn6r6a2jmicxx116s7wjrz"; depends=[antaresRead data_table]; };
+  antaresRead = derive2 { name="antaresRead"; version="2.2.9"; sha256="1g91fm614q3v5i5v6smp70fipya9rlcdshqixcsjniqcwvpvb01c"; depends=[bit64 data_table doParallel httr jsonlite lubridate pbapply plyr shiny stringr]; };
+  antaresViz = derive2 { name="antaresViz"; version="0.17"; sha256="18f398qvy88w9rlkd08h5gvk7vwh349cjxi4pa59s5fs4ihhmdd2"; depends=[antaresProcessing antaresRead assertthat data_table dygraphs geojsonio htmltools htmlwidgets leaflet leaflet_minicharts lubridate manipulateWidget plotly rAmCharts raster rgeos shiny sp spMaps webshot]; };
+  anthro = derive2 { name="anthro"; version="1.0.0"; sha256="169h2vhdd2kxh4228lx1ab3fipixvka4686ngx6h8g15li9828s9"; depends=[survey]; };
+  anthroplus = derive2 { name="anthroplus"; version="0.9.0"; sha256="1wnj2idgdnh2gdw34x40adijf2sxp3k72j45pqqxg4aqc1wrvvv1"; depends=[anthro]; };
   anticlust = derive2 { name="anticlust"; version="0.5.6"; sha256="1f5z05p5fwfgcj4vzg6kg9vihamcdha74yyn9c04m4kydyngnm85"; depends=[Matrix RANN]; };
   antitrust = derive2 { name="antitrust"; version="0.99.25"; sha256="0f4alzr4nmjhxwk3c6mi5vrs2i20dambpc9zfkxf04rxbcw2znvy"; depends=[BB numDeriv]; };
   antiword = derive2 { name="antiword"; version="1.3"; sha256="034znb0g9wwb8gi1r3z75v3sbb4mh83qrc4y8mbfx5lbgh8zhj6j"; depends=[sys]; };
   anyLib = derive2 { name="anyLib"; version="1.0.5"; sha256="1x9x58hhkkwdskmgdjv94ynh811n9w0752hh4214adl1qpn576vm"; depends=[BiocManager curl devtools httr withr]; };
   anybadger = derive2 { name="anybadger"; version="0.1.0"; sha256="1aa09v5k5nlvhlir8saa5gnrq7cb1djbdc8y85cjgb3skay94hzv"; depends=[config glue magrittr purrr R6]; };
-  anyflights = derive2 { name="anyflights"; version="0.3.1"; sha256="08x4412xbmiisizdiby6b9xkhrlsag9hrmj681wpm6fm2bpk0q6y"; depends=[curl dplyr glue httr lubridate progress purrr readr roxygen2 stringr usethis vroom]; };
+  anyflights = derive2 { name="anyflights"; version="0.3.2"; sha256="0531cqamk8sqb2df3brwyak2rs65mc5r3vsywc6xrr1nlaw62zd6"; depends=[curl dplyr glue httr lubridate progress purrr readr roxygen2 stringr usethis vroom]; };
   anytime = derive2 { name="anytime"; version="0.3.9"; sha256="0jjpqynai5nd7mfy1smb44356f3d5bmpxhs1i9x9jw5c959c35hh"; depends=[BH Rcpp]; };
   ao = derive2 { name="ao"; version="0.1.4"; sha256="0phlnvh05qr5rig40virypl1k2inl0c4c9mmkfbbw2089ryc9gq0"; depends=[]; };
   aod = derive2 { name="aod"; version="1.3.1"; sha256="1g03ajhs6bid80i83xn3917abhymzgrydqx86wxxpkqga018hb85"; depends=[]; };
@@ -5892,7 +5928,7 @@ in with self; {
   apa = derive2 { name="apa"; version="0.3.3"; sha256="1nvhl5fqramsdrkpl1nmgr1vmki5c1lkdi1kkx7ihf0cz35f7c2a"; depends=[dplyr magrittr MBESS purrr rmarkdown stringr tibble]; };
   apaTables = derive2 { name="apaTables"; version="2.0.8"; sha256="0jy6x0z9ivqqkjihqhyg3fxyghqa9gs6q2bpxzjdnbcb3kq151vd"; depends=[boot broom car dplyr MBESS tibble]; };
   apaText = derive2 { name="apaText"; version="0.1.1"; sha256="1r217k60w027i63nbj24b1rm37m4qf7a6iirc941s945babkxcmb"; depends=[dplyr]; };
-  apache_sedona = derive2 { name="apache.sedona"; version="1.1.0"; sha256="09g4h9fpymh3kckclhmhp359346pi7dbva8p2zpvnbgy818nil77"; depends=[DBI dbplyr dplyr rlang sparklyr]; };
+  apache_sedona = derive2 { name="apache.sedona"; version="1.1.1"; sha256="1bsxyb1303s907w5h7m7wacgsjjgb1y35zvkpmn1ymz0zsfbad4p"; depends=[DBI dbplyr dplyr rlang sparklyr]; };
   apc = derive2 { name="apc"; version="2.0.0"; sha256="0vh6iyxm46k8sfa1xgz0y6m619snnm8s072kml5qgiiw5s7bqnpq"; depends=[AER car ChainLadder ggplot2 ISLR lattice lmtest plm plyr reshape survey]; };
   apcf = derive2 { name="apcf"; version="0.1.7"; sha256="071gax2w9b0l74vls59y6syg2swiagz5xkab1x2wmmxk16y49l1s"; depends=[Rcpp]; };
   apcluster = derive2 { name="apcluster"; version="1.4.8"; sha256="0lzf2jqm56i74wif6x5sw3j0w2qc4sni49zq2fgbl89b7lwkvchj"; depends=[Matrix Rcpp]; };
@@ -5907,7 +5943,7 @@ in with self; {
   aplot = derive2 { name="aplot"; version="0.1.1"; sha256="067yzy35spvs6jbccqpmvnjilglxzda6qqlqhjv311kfvnppzsyf"; depends=[ggfun ggplot2 ggplotify magrittr patchwork yulab_utils]; };
   aplpack = derive2 { name="aplpack"; version="1.3.5"; sha256="0kv6sbw8832hlfc6164bfvg1ga4hkfw4c7i11dlz7mbhrw2vqm24"; depends=[]; };
   apng = derive2 { name="apng"; version="1.1"; sha256="0g1rs8wdcbqhyjis2r1a4d96jf0486ncnap97yjv08nk574d42wp"; depends=[bitops]; };
-  apollo = derive2 { name="apollo"; version="0.2.5"; sha256="12x09fbpavvgsnx0pf7q9w9glc8hb7s8cywvm0ym05v64r1v2dca"; depends=[coda Deriv matrixStats maxLik mnormt mvtnorm numDeriv randtoolbox Rcpp RcppArmadillo RcppEigen RSGHB tibble]; };
+  apollo = derive2 { name="apollo"; version="0.2.6"; sha256="1qnh5r885myirqrrpwfxkbim1bsaqnkghgc8issd794r64ji2kpw"; depends=[coda Deriv matrixStats maxLik mnormt mvtnorm numDeriv randtoolbox Rcpp RcppArmadillo RcppEigen RSGHB tibble]; };
   appler = derive2 { name="appler"; version="0.1.2"; sha256="03sivpv12ssn7dzq780rb4fg4nc7da7nlk6cijzq9yadxgv53svm"; depends=[glue httr jsonlite rvest xml2]; };
   applicable = derive2 { name="applicable"; version="0.0.1.2"; sha256="0yzfk4ajdx4l3xivf6v9vn7fqvzfma4842cvjixrng83p2v25sdq"; depends=[dplyr ggplot2 glue hardhat Matrix proxyC purrr rlang tibble tidyr tidyselect]; };
   appnn = derive2 { name="appnn"; version="1.0-0"; sha256="0wkpr6lcd68wlzk6n622ab7sd99l837073czn4k56hw8bw9v68j3"; depends=[]; };
@@ -5951,7 +5987,7 @@ in with self; {
   argonDash = derive2 { name="argonDash"; version="0.2.0"; sha256="1wykr7y5375g1nb18ynybccxmd948xrr0gdwxxqsfjf782vlgd2d"; depends=[argonR htmltools shiny]; };
   argonR = derive2 { name="argonR"; version="0.2.0"; sha256="15hlvansqnky9bnq4r7xza3hb1hzylmhz8117wxz9lxa1wiky2is"; depends=[htmltools rstudioapi]; };
   argosfilter = derive2 { name="argosfilter"; version="0.63"; sha256="0rrc2f28hla0azw90a5gk3zj72vxhm1b6yy8ani7r78yyfhgm9ig"; depends=[]; };
-  argparse = derive2 { name="argparse"; version="2.1.2"; sha256="1cz5qlxw3v8smd5vb00wlzy02mx5i0infm5hnq55hnakffd3b5wr"; depends=[findpython jsonlite R6]; };
+  argparse = derive2 { name="argparse"; version="2.1.3"; sha256="0vm6nrzl6rsq2qw3km3i4s92kq9phs3cbxzv3i8hlyld9ajk3nmf"; depends=[findpython jsonlite R6]; };
   argparser = derive2 { name="argparser"; version="0.7.1"; sha256="0xcl0ivsbc4iw8s7027q4cx68j6s5lihbby0xa9pmlv4wjmcvdr6"; depends=[]; };
   ari = derive2 { name="ari"; version="0.3.5"; sha256="03w99c918jp23d0kl26vx4m7xjicpgwl5rhn9d0fsm4kvv7j87li"; depends=[hms progress purrr rmarkdown rvest text2speech tuneR webshot xml2]; };
   ariExtra = derive2 { name="ariExtra"; version="0.3.1"; sha256="1j8x2m9799i5kxrvsf2cjrffb5p6r4zjrr0khsy4i22xn7kyl8nf"; depends=[ari docxtractr httr jsonlite magrittr mime pdftools rmarkdown rvest text2speech tuneR xml2 yaml]; };
@@ -5970,19 +6006,19 @@ in with self; {
   arrApply = derive2 { name="arrApply"; version="2.1"; sha256="0qy7iwi580rrf3sycsbv6qgxsqcdy9pdbnkdrx81j68qni9iw737"; depends=[Rcpp RcppArmadillo]; };
   arrangements = derive2 { name="arrangements"; version="1.1.9"; sha256="0nrlyxgn6667l2rb1q5rvps1anld9aq88qqr3ch2i6zchnqxrdg9"; depends=[gmp R6]; };
   arrayhelpers = derive2 { name="arrayhelpers"; version="1.1-0"; sha256="02rl530qxi1idiqpmzg5wr9vl5c7phizhpj64k5pn8xq9zfxbpaz"; depends=[svUnit]; };
-  arrow = derive2 { name="arrow"; version="6.0.0.2"; sha256="110ixq59wgiwwp7ziqhw124qcsdl7la2nlx9gvzk7jhyhn98d03n"; depends=[assertthat bit64 purrr R6 rlang tidyselect vctrs]; };
+  arrow = derive2 { name="arrow"; version="6.0.1"; sha256="14fghz9xijcrck0c65crvfidgyhgzy9b2apwmg7qrgn2sy09xm0p"; depends=[assertthat bit64 purrr R6 rlang tidyselect vctrs]; };
   ars = derive2 { name="ars"; version="0.6"; sha256="0zs1rk3i7pc9wcvxrvjcls194mfbvmkz7cb6pwd1cm3fzjwsyxsp"; depends=[]; };
   arse = derive2 { name="arse"; version="1.0.0"; sha256="0ssaalc058m09gfcr1n0s729rx2plia3zkhlynj67drclyvhyb0i"; depends=[dplyr pracma]; };
   arsenal = derive2 { name="arsenal"; version="3.6.3"; sha256="0qvs3ld28djnjnggdhqjwq8sbv8zz322qahlvf7dnx35yqf6xkms"; depends=[knitr]; };
   artfima = derive2 { name="artfima"; version="1.5"; sha256="1nqsq9fsqk9kag9n7i2r9yvf578nkdfrkkv7qy8650prka0jca2p"; depends=[gsl ltsa]; };
-  arules = derive2 { name="arules"; version="1.6-8"; sha256="1gy6wrys1qqik65dyr325hdbfmd3fx9a2lzdnrr29g751hprjx2l"; depends=[Matrix]; };
-  arulesCBA = derive2 { name="arulesCBA"; version="1.2.0"; sha256="1d72lrfbyr2g7n6r04vyaqs3pvs3jhkfr4yfgn2fj690q3ff0qr3"; depends=[arules discretization glmnet Matrix]; };
+  arules = derive2 { name="arules"; version="1.7-1"; sha256="0zzwr1mg92ha5l6razdb04da8ik3z3k74rm0rah44l1j2a6d30sk"; depends=[generics Matrix]; };
+  arulesCBA = derive2 { name="arulesCBA"; version="1.2.1"; sha256="1lsy1h37rb3jinh26d668z1v04rh5m1gkfhl3wfkg546hbpq4644"; depends=[arules discretization glmnet Matrix]; };
   arulesNBMiner = derive2 { name="arulesNBMiner"; version="0.1-8"; sha256="0kqvi7dzq3mrn6cq22gwxh4p54mgfn9s1sd2cfnbw1f9zp078lsn"; depends=[arules rJava]; };
   arulesSequences = derive2 { name="arulesSequences"; version="0.2-25"; sha256="0vd5fgi1b45kgfm5yi9ygaxm0sb8qarz5lsknwh5gla3h0k7l66b"; depends=[arules]; };
-  arulesViz = derive2 { name="arulesViz"; version="1.5-0"; sha256="188zbmvhvq0cllgbhi16ic93ka9mk96ssdc8x24kmxqvq5zdmdh4"; depends=[arules colorspace dplyr DT ggnetwork ggplot2 igraph plotly scatterplot3d seriation tibble tidyr vcd visNetwork]; };
+  arulesViz = derive2 { name="arulesViz"; version="1.5-1"; sha256="06mqdqg5amcrb75lf77wilb9v8c7f50b54p0pk76q0jvirycqrzc"; depends=[arules dplyr DT ggplot2 ggraph igraph plotly scatterplot3d seriation tibble tidyr vcd visNetwork]; };
   asVPC = derive2 { name="asVPC"; version="1.0.2"; sha256="07nfwr0lsfpwgfdgzcdn1svw8dnjfni5ga9q77yjd1bj0wf76ci2"; depends=[ggplot2 plyr]; };
   asaur = derive2 { name="asaur"; version="0.50"; sha256="0c1rgic76w3i2xhna7i52lyc0p01s5b1mxyn55gqw6i19v9mq0b3"; depends=[]; };
-  asbio = derive2 { name="asbio"; version="1.6-7"; sha256="08lmb4dmbsavw17z1jqqiv2jin5ms4zq8nv1n1cjmh8xk3sywafw"; depends=[combinat deSolve gWidgets2 gWidgets2tcltk lattice multcompView mvtnorm pixmap plotrix scatterplot3d]; };
+  asbio = derive2 { name="asbio"; version="1.7"; sha256="0kchcpjv4hk66svr52x5d95gqrs5m64np65hjdlqclhjj7h3sjr1"; depends=[combinat deSolve gWidgets2 gWidgets2tcltk lattice multcompView mvtnorm pixmap plotrix scatterplot3d]; };
   ascii = derive2 { name="ascii"; version="2.4"; sha256="0k675an7sl00bslx4yb6vvvgnp1kl244cfjljv632asqdm3rkmrv"; depends=[codetools digest survival]; };
   asciiSetupReader = derive2 { name="asciiSetupReader"; version="2.4.0"; sha256="02s3p0qqa9h1kyx96c29blwgfkdm50p10kr14wklh19gibiznyfj"; depends=[data_table haven miniUI readr rstudioapi shiny stringr vroom zoo]; };
   asciicast = derive2 { name="asciicast"; version="1.0.0"; sha256="0vga88cq2hzi0bwq43n1yz5cm8kaag9xpg8v73gj06fb93lhha9x"; depends=[curl jsonlite processx tibble uuid V8]; };
@@ -6048,7 +6084,7 @@ in with self; {
   atmcmc = derive2 { name="atmcmc"; version="1.0"; sha256="05k69b5wlysz3kh0yiqvshgvr0nyz34zkvn6bjs30cwz7s9j21pn"; depends=[]; };
   atmopt = derive2 { name="atmopt"; version="0.1.0"; sha256="1h79ngq1236gz4w29fs3nj46a3m1x8a28z3xnhc6wn3a46cf8zzi"; depends=[DoE_base gtools hierNet]; };
   atsd = derive2 { name="atsd"; version="1.2.0"; sha256="0jan8r5f2r3l2xpdf9rrv4smkr2l645rfdgdfjb1xa54jd3pqvqs"; depends=[httr RCurl]; };
-  attachment = derive2 { name="attachment"; version="0.2.1"; sha256="085q928kchascq3i5csw2kp1gqcqlw14gaamrv2rpn30fq1fb82f"; depends=[desc glue knitr magrittr rmarkdown roxygen2 stringr]; };
+  attachment = derive2 { name="attachment"; version="0.2.4"; sha256="1nvq94l544rgddx5jcvwhap7qz8h292pphvb97ip6jljgjc1dlqw"; depends=[desc glue knitr magrittr rmarkdown roxygen2 stringr]; };
   attempt = derive2 { name="attempt"; version="0.3.1"; sha256="1ylgg7jcp8wqmxgf1mydnvh26k0mr8jyjla4hw06730r40yrs58m"; depends=[rlang]; };
   attenuation = derive2 { name="attenuation"; version="1.0.0"; sha256="0ys4psvkvimmym4qj9cmhq8y7x10kv0x6bsvpjkrsc3l8p2g3474"; depends=[]; };
   attrib = derive2 { name="attrib"; version="2021.1.2"; sha256="17s3hjp8zdl28y4h9iv854y1hli5yg1h0kqhj8v5hms1lhx7c1qq"; depends=[arm data_table dlnm ggplot2 glue lme4 lubridate magrittr mvmeta pbs progress stringr tibble tsModel]; };
@@ -6056,7 +6092,7 @@ in with self; {
   aucm = derive2 { name="aucm"; version="2019.12-1"; sha256="1vjb5jiq2iz6c8nhfcbqg21nms7nf485xlrgd7mdkbzvqxxl43h6"; depends=[kyotil]; };
   auctestr = derive2 { name="auctestr"; version="1.0.0"; sha256="15b1x0c9yhl91gir7jmivp8vxzc8q7wvb0mgam9454avc6l29x4y"; depends=[dplyr tidyr]; };
   auctionr = derive2 { name="auctionr"; version="0.1.0"; sha256="0kfx81irqr9mfp4n86z7q5nclcci8vlpvq9zid7miyw3rci7dfvi"; depends=[numDeriv]; };
-  audio = derive2 { name="audio"; version="0.1-8"; sha256="1d2vkgbp64xlh9qccxvair00n8z1cwxmj37061ggpl9ylsy7h70s"; depends=[]; };
+  audio = derive2 { name="audio"; version="0.1-10"; sha256="1pf4mwqar15v7y6sq8wkfqnr6rgpq9ywwsahzr76n6klijl33iw2"; depends=[]; };
   audiolyzR = derive2 { name="audiolyzR"; version="0.4-9"; sha256="09jsrjy15vcn6da0kgk06ghayyrf3s853gqv8qdawg745ky2hbgi"; depends=[hexbin plotrix RJSONIO]; };
   audiometry = derive2 { name="audiometry"; version="0.3.0"; sha256="0v6lhkm298xgdny0fhpldfwj8s4ljr21w6y6sv3vvyl87qjgwx8i"; depends=[ggplot2]; };
   audit = derive2 { name="audit"; version="0.1-2"; sha256="0c8b94a5am196sbvmjxya7cg4aq6fcxr8c958fxx3jmy9r4hn6s2"; depends=[]; };
@@ -6066,6 +6102,7 @@ in with self; {
   augmentedRCBD = derive2 { name="augmentedRCBD"; version="0.1.5"; sha256="1bfb1jqakghf1nb3zwzf69cywwxwr1whzvyig8g3qa8ciq5f1h3i"; depends=[dplyr emmeans flextable ggplot2 mathjaxr moments multcomp multcompView officer Rdpack reshape2 stringi]; };
   auk = derive2 { name="auk"; version="0.5.1"; sha256="0mf2rwf7sihmk6mla87gznh0s1rqxpijcjjv035iq3id6c81h03l"; depends=[assertthat countrycode dplyr httr magrittr readr rlang stringi stringr tidyr]; };
   aurelius = derive2 { name="aurelius"; version="0.8.4"; sha256="00bpf9sggvnajpmg3zsdgfjinkb6wbrcf1ris7qfhh1rp5rz4m4m"; depends=[gbm glmnet jsonlite]; };
+  ausplotsR = derive2 { name="ausplotsR"; version="1.2.7"; sha256="0vlldbdbgplk6a9n2xkac8i5nxf0y2p4zbrw5q9a3qc71zfl33yj"; depends=[betapart curl ggplot2 gtools httr jose jsonlite mapdata maps maptools plyr R_utils sp vegan]; };
   auth0 = derive2 { name="auth0"; version="0.2.1"; sha256="077nqh28q3b9jb25fy0157l06zpx3x0rg4z5dz2dqsh88xy4nhqj"; depends=[htmltools httr shiny shinyjs yaml]; };
   auto_pca = derive2 { name="auto.pca"; version="0.3"; sha256="01m2ldpcxzj7fhgmr9wp4ha3gqdyh7l5bkrnw83smcbq5229hsyy"; depends=[plyr psych]; };
   autoBagging = derive2 { name="autoBagging"; version="0.1.0"; sha256="01k44rgkpbbr3m2x360aq0fz2qi7nz036g5dsh2y3jy94rmddbyy"; depends=[abind caret cluster CORElearn e1071 entropy infotheo lsr MASS minerva party rpart xgboost]; };
@@ -6078,19 +6115,18 @@ in with self; {
   autocart = derive2 { name="autocart"; version="1.4.5"; sha256="1zgcmrm4dkdnr130hwwka2nwdczgvc3jc9hxrb6nfs8ijb24gl36"; depends=[fields mgcv Rcpp RcppArmadillo RcppParallel]; };
   autocogs = derive2 { name="autocogs"; version="0.1.4"; sha256="0v27l9a0ysj7x9wjka1jl1bq9rmxmzldclcp1w59a6807wjlszhx"; depends=[broom checkmate diptest dplyr ggplot2 hexbin MASS mclust moments progress tibble]; };
   autoencoder = derive2 { name="autoencoder"; version="1.1"; sha256="0ly1aanayk28nx6yqfhl7d0zm4vg6rfjikf5ibn8zhmkrfyflj1y"; depends=[]; };
-  autoharp = derive2 { name="autoharp"; version="0.0.8"; sha256="1g6s7ljscdb4gmk1vf6sqwkdg1asm36wcjwy9k85a5gzbh2lrkq2"; depends=[dplyr igraph knitr lintr magrittr pryr rlang rmarkdown shiny stringr tibble tidyr]; };
+  autoharp = derive2 { name="autoharp"; version="0.0.10"; sha256="0jn7nya4lb1pvdy7yyimxga4gn042jqwl3w82m6c244kqydm5fi0"; depends=[dplyr igraph knitr lintr magrittr pryr rlang rmarkdown shiny stringr tibble tidyr]; };
   autohd = derive2 { name="autohd"; version="0.1.0"; sha256="14wyiqhmbp8v52s1p5svvcjpwg8pwqrqh3zzm17blcl2hr4p9cy8"; depends=[broom coxme hdbm Hmisc ICBayes icenReg missForest mlr3 Rdpack rjags schoolmath survival SurvRegCensCov tibble usethis]; };
   autoimage = derive2 { name="autoimage"; version="2.2.3"; sha256="1jhkd7mbig6wpyc69iynfrj5i62lrwcwqbgjkmq8b9p5raglm1g2"; depends=[colorspace fields ggplot2 mapproj maps MBA]; };
   autokeras = derive2 { name="autokeras"; version="1.0.12"; sha256="0wyqz40fc277z1q1zxdmmjzksnmlh58r27a6hx08h6hmzvng5avy"; depends=[keras reticulate]; };
   automagic = derive2 { name="automagic"; version="0.5.1"; sha256="1mmm6kj6mxrn3s4v8ryszkxr9z7bh9cvhin7xjq111fkwly7wjkq"; depends=[dplyr formatR knitr magrittr purrr remotes yaml]; };
   automap = derive2 { name="automap"; version="1.0-14"; sha256="1190kbmp0x80x0hyifdbblb4ijq79kvrfn9rkp5k6diig4v30n0w"; depends=[gstat lattice reshape sp]; };
   automl = derive2 { name="automl"; version="1.3.2"; sha256="1nrg8q3y6rv69nmnsylg8rps4b4prx46j5a8ljlr24yc34504ck3"; depends=[]; };
-  automultinomial = derive2 { name="automultinomial"; version="2.0.0"; sha256="04rjg3xjlhnkchzvdxqm762z5abm81s5b9czgzmli30zh07bf3fd"; depends=[igraph Matrix numDeriv]; };
   autoplotly = derive2 { name="autoplotly"; version="0.1.4"; sha256="1z577jvadgiz028z7x0786d3qhlkrvv9i34xmllizvg94kxv3bl1"; depends=[ggfortify ggplot2 plotly]; };
   autoshiny = derive2 { name="autoshiny"; version="0.0.2"; sha256="0s06ynnirgsh19x8qq4020piirkhvjqpvz372syygvlal062y6cn"; depends=[shiny]; };
   autostats = derive2 { name="autostats"; version="0.1.0"; sha256="0yia8hli3d8pafr82a8syzq35jq2jdjsl4w7dahnfaq6bjzkdzx2"; depends=[BBmisc broom broom_mixed Ckmeans_1d_dp dials dplyr flextable framecleaner ggeasy ggplot2 ggstance ggthemes glmnet gtools janitor jtools lubridate magrittr Matrix nnet parsnip party patchwork presenter purrr readr recipes rlang rlist rsample stringr tibble tidyr tidyselect tune workflows xgboost yardstick]; };
-  autostsm = derive2 { name="autostsm"; version="1.6"; sha256="086ndq164bbp7fczzwdx3ryva3qc2hnswm7mlig2jmn0w01ivwr0"; depends=[data_table doSNOW foreach forecast ggplot2 ggrepel gridExtra lmtest lubridate maxLik progress Rcpp RcppArmadillo sandwich strucchange zoo]; };
-  autothresholdr = derive2 { name="autothresholdr"; version="1.3.11"; sha256="1w0lxi9bbnffx0gjmll98ki4zh7i6v8wbjd0ziwzca1qwq3z4a9i"; depends=[checkmate ijtiff magrittr purrr Rcpp rlang strex stringr]; };
+  autostsm = derive2 { name="autostsm"; version="2.0"; sha256="0xqvisad2rl4cjdijnjk3qvl52rrz7ddvykwpqxy185nl3iblpk7"; depends=[data_table doSNOW foreach forecast ggplot2 ggrepel gridExtra lmtest lubridate maxLik progress Rcpp RcppArmadillo sandwich strucchange]; };
+  autothresholdr = derive2 { name="autothresholdr"; version="1.3.12"; sha256="0gjv3yfslm5fvmr3h0df41pxb5j14pzsi31fi0hbjgv6lharh147"; depends=[checkmate ijtiff magrittr purrr Rcpp rlang strex stringr]; };
   av = derive2 { name="av"; version="0.6.0"; sha256="0g6815y24h4la714a5bkj7nj4n39jycfynkli6y3jlijql96j2il"; depends=[]; };
   available = derive2 { name="available"; version="1.0.4"; sha256="18dqm10dicbvjd5wli4nkv4fip0fgh2b9h9gm5511ayfsdg8lc8l"; depends=[cli clisymbols crayon desc glue jsonlite memoise SnowballC stringdist tibble tidytext udapi yesno]; };
   avar = derive2 { name="avar"; version="0.1.1"; sha256="1i0bk3y0ca58ihwn4di8rpkp5vs2j5b80rcvaf72n9h2hp8i2ncz"; depends=[Rcpp RcppArmadillo simts]; };
@@ -6116,7 +6152,7 @@ in with self; {
   azuremlsdk = derive2 { name="azuremlsdk"; version="1.10.0"; sha256="0s64kjrmcdnjdwh5mdm5vxgvrl9ghvfv6bair7qfzz32jlab99m0"; depends=[DT ggplot2 htmltools plyr reticulate rstudioapi servr shiny shinycssloaders]; };
   b6e6rl = derive2 { name="b6e6rl"; version="1.1"; sha256="17scdskn677vaxx1h2jypqaffvjgczryplg17nr3wigi1x0cxg7a"; depends=[]; };
   bPeaks = derive2 { name="bPeaks"; version="1.2"; sha256="1z6jghcmw0lwv17ms7gdp5zzimaawq3ahbwkxa4062g373592smd"; depends=[]; };
-  bRacatus = derive2 { name="bRacatus"; version="1.0.5"; sha256="1ir5q8q9kssbcakfi0lpixxgcmcla2p3j8a290p5h3zddbp41az6"; depends=[data_table geojsonio jsonlite maptools plotfunctions raster rgbif rgdal rgeos rworldmap sp]; };
+  bRacatus = derive2 { name="bRacatus"; version="1.0.6"; sha256="139in6322ghw5gb6czvkm1i9cjm9rharpbdhawhflsqz8mlb6pvr"; depends=[data_table geojsonio jsonlite maptools plotfunctions raster rgbif rgdal rgeos rworldmap sp]; };
   bReeze = derive2 { name="bReeze"; version="0.4-3"; sha256="17nc6qvw9l6sq8knd1mk193md2y3z1jlcjymqzl389yxj8s0i2il"; depends=[lubridate]; };
   bSims = derive2 { name="bSims"; version="0.3-0"; sha256="055hqa5w4gaqz9mms9yj85wg0pgl6xa568nbjxm4qc75rsy91qg5"; depends=[deldir intrval MASS mefa4 pbapply]; };
   bWGR = derive2 { name="bWGR"; version="1.6.6"; sha256="1m5spafvl5pn0s60vaf8wz7iaibsa7laq7kp8y9xj20pp3f76hvr"; depends=[Rcpp]; };
@@ -6127,13 +6163,13 @@ in with self; {
   babelgene = derive2 { name="babelgene"; version="21.4"; sha256="1gk5pm3b3shr1id66a11ywc1b823gbj8yckg24szzfhj8g4ixyf0"; depends=[dplyr rlang]; };
   babelwhale = derive2 { name="babelwhale"; version="1.0.3"; sha256="0ph825dwvr48fhamy1l5564linz7cj7b9sj511as77f1yqycv4a2"; depends=[crayon dplyr dynutils processx purrr]; };
   babette = derive2 { name="babette"; version="2.3"; sha256="00l04pwv3sizi4daasai3pszp3spzsyj85g4dj9wqpiv51zcpj9a"; depends=[beastier beautier mauricer phangorn remotes stringr testit tracerer xml2]; };
-  babsim_hospital = derive2 { name="babsim.hospital"; version="11.8.2"; sha256="16gx30c1a2pyj6ndfvl7wn1lj1n69j4k5klrqdh50zapmzbrxjkg"; depends=[checkmate curl data_table dplyr ggplot2 golem igraph lubridate markovchain padr plyr rvest scales simmer slider SPOT testthat xml2]; };
+  babsim_hospital = derive2 { name="babsim.hospital"; version="11.8.4"; sha256="0c66w90ndzmnzahv0krzw8qlqdip3821v74v7h5264cg8fgiflc6"; depends=[checkmate curl data_table dplyr ggplot2 golem igraph lubridate markovchain padr plyr rvest scales simmer slider SPOT testthat xml2]; };
   babynames = derive2 { name="babynames"; version="1.0.1"; sha256="1gcpd6lncqwjz05z98ra6hcc8q966l2594ylkg50avndild89n3h"; depends=[tibble]; };
   bacistool = derive2 { name="bacistool"; version="1.0.0"; sha256="1hby2bmxbc8qgjzgkp2flv89lpzzvg3vr7s98989ayjmv4vgmqaf"; depends=[rjags]; };
   backShift = derive2 { name="backShift"; version="0.1.4.3"; sha256="1dhmq51w07vcqlngsb04ip0wqbgqq2xdfdm1w82r082f07ywqb16"; depends=[clue ggplot2 igraph MASS matrixcalc reshape2]; };
   backbone = derive2 { name="backbone"; version="1.5.1"; sha256="06awrjcs78h7i632v5dyfqj0gldnww4xkn4j0rffimf3aiwxm7l9"; depends=[igraph Matrix network PoissonBinomial]; };
   backpipe = derive2 { name="backpipe"; version="0.2.3"; sha256="12k2cv9x8h0b002m9c8g4vj5a7chp4b8jqz377ia0diqw89dydpm"; depends=[]; };
-  backports = derive2 { name="backports"; version="1.3.0"; sha256="0bc14x4gyw4gnvm4hrvg5cmmrq449kfza3l14wdgp642ra8iw8sg"; depends=[]; };
+  backports = derive2 { name="backports"; version="1.4.0"; sha256="1gxbimp6iv3viklsv2qlv8diq4nrgb3afyc5n3c2m1aas9jiaqg7"; depends=[]; };
   backtest = derive2 { name="backtest"; version="0.3-4"; sha256="1s0mf247dz2vvyf4m3sp9xiqhv7xcs4rphyg9gdcy73060sah2ad"; depends=[lattice]; };
   bacondecomp = derive2 { name="bacondecomp"; version="0.1.1"; sha256="1sd6pbhmx8vxz5c2cvvadbjy7p15y91gzs3n0ish7h5br1vq8fpm"; depends=[]; };
   bacr = derive2 { name="bacr"; version="1.0.1"; sha256="14zr1v4rihx0ra3x0vsb81vsz0g8gzskkdxkg7nhiz835hp2fiy8"; depends=[MCMCpack]; };
@@ -6145,11 +6181,11 @@ in with self; {
   baggr = derive2 { name="baggr"; version="0.6.9"; sha256="19k47v5zqrfgj40msp5f06xh74bdplvw57capjc3xs9dbmvxb31i"; depends=[bayesplot BH crayon forestplot ggplot2 gridExtra quantreg Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders testthat]; };
   baguette = derive2 { name="baguette"; version="0.1.1"; sha256="0srvvnyhi22r3l8j996zpq8mm140imdrijc0xhb8j9qgkqaia1b7"; depends=[butcher C50 dials dplyr earth furrr generics hardhat magrittr parsnip purrr rlang rpart rsample tibble tidyr withr]; };
   bahc = derive2 { name="bahc"; version="0.3.0"; sha256="0yz0v33fhm38ivhr7bvajk9v7wdmhg9qg7ac8r2qr00rns82m6y3"; depends=[fastcluster matrixStats]; };
-  bain = derive2 { name="bain"; version="0.2.6"; sha256="1zlza0qx8634z0nm2dcba3q7kw36ry2crxjy8snapybhafl6v7l4"; depends=[lavaan]; };
+  bain = derive2 { name="bain"; version="0.2.7"; sha256="1k05npgiv11izm37fgbds8lc9yvfgklkdh099najxzbs4c13768z"; depends=[lavaan]; };
   bama = derive2 { name="bama"; version="1.2"; sha256="1amxls4jl2ys5wkn600xmx0y3d9zhkz2s96vn7h8fnrrv35212yp"; depends=[BH Rcpp RcppArmadillo RcppDist]; };
   bamboo = derive2 { name="bamboo"; version="0.9.25"; sha256="1il8sn8ck36b1m9hazhf6gmr58iqi2hjn0rrpcv1laij0lybrcws"; depends=[rscala]; };
   bamdit = derive2 { name="bamdit"; version="3.3.2"; sha256="11v9hy8ijbcqhwim0s3y69dz11jvys4vjvfnshj4p5qdz38sji6l"; depends=[ggExtra ggplot2 gridExtra MASS R2jags rjags]; };
-  bamlss = derive2 { name="bamlss"; version="1.1-5"; sha256="0g1cji85b5708n9zgwvl2d006zhax0039x8yzmzf9s0xdhvd4lk5"; depends=[coda colorspace Formula Matrix MBA mgcv mvtnorm sp survival]; };
+  bamlss = derive2 { name="bamlss"; version="1.1-6"; sha256="0p3hx01209yjgw8cd8s1ns1n502f5dyvi650d58195w88xycvr7c"; depends=[coda colorspace Formula Matrix MBA mgcv mvtnorm sp survival]; };
   bamp = derive2 { name="bamp"; version="2.1.0"; sha256="0d72s0vzy32zcd9sw1zlxc0whh5dpvlk7r9680b9smpzb58ijgfi"; depends=[abind coda]; };
   bandit = derive2 { name="bandit"; version="0.5.0"; sha256="03mv4vbn9g4mqikd9map33gmw2fl9xvb62p7gpxs1240w5r4w3fp"; depends=[boot gam]; };
   bang = derive2 { name="bang"; version="1.0.1"; sha256="0m7p9gzspkyp40ir842ff4b1827w9rh7x49kpp3y4dpi83krqy5a"; depends=[bayesplot rust]; };
@@ -6164,7 +6200,7 @@ in with self; {
   bartCause = derive2 { name="bartCause"; version="1.0-4"; sha256="1a1g4376l31pswxmmipm0xm3zazm1kfm3iwknjx6pchjavjhin9y"; depends=[dbarts]; };
   bartMachine = derive2 { name="bartMachine"; version="1.2.6"; sha256="0zw42ffgyx08skl00a428f7gylby2rm8i0jpv6b1md557l1w06jy"; depends=[bartMachineJARs missForest randomForest rJava]; };
   bartMachineJARs = derive2 { name="bartMachineJARs"; version="1.1"; sha256="1wpfzrb6mrx3xmxy4rgnwygmpqq2l4ki2xqr4m51g1bl9nwirhzj"; depends=[rJava]; };
-  basad = derive2 { name="basad"; version="0.2.0"; sha256="1qc2amkrjrgdqys275p82lmbpjszm5rzjdpri7hqc9d8b8q1vc9q"; depends=[Rcpp RcppEigen rmutil]; };
+  basad = derive2 { name="basad"; version="0.3.0"; sha256="0g8zfphwbvxq1ydvsaj0dvidsikrriyi80cam9i3syhx0v20vnir"; depends=[Rcpp RcppEigen rmutil]; };
   base_rms = derive2 { name="base.rms"; version="1.0"; sha256="0lsbbcvmq5n3dpqic9qkyr8wdbmagaw32qfdnl0ck5b6ijh2wz0a"; depends=[do rms survival]; };
   base64 = derive2 { name="base64"; version="2.0"; sha256="1labh0ycdm2xcjssj8bhnyjvbk44mcdsi0rb2p8rfqa428mrq9cf"; depends=[openssl]; };
   base64enc = derive2 { name="base64enc"; version="0.1-3"; sha256="13b89fhg1nx7zds82a0biz847ixphg9byf5zl2cw9kab6s56v1bd"; depends=[]; };
@@ -6173,12 +6209,12 @@ in with self; {
   basecamb = derive2 { name="basecamb"; version="1.0.4"; sha256="02sak07dfiiwn55fnv9b48gm2y25kqg6xrlj5zipapg3nffdgyxi"; depends=[assertive_types assertthat dplyr Hmisc mice purrr]; };
   basedosdados = derive2 { name="basedosdados"; version="0.1.0"; sha256="0igk1mdq1ibv3r5cfyd976vn2rylcz45ghl8z1hgkqbhp8b0wav3"; depends=[bigrquery cli DBI dbplyr dotenv dplyr fs glue googleAuthR httr magrittr purrr readr rlang scales stringr tibble writexl]; };
   baseflow = derive2 { name="baseflow"; version="0.13.2"; sha256="02ygx32dfszk66f33wfszkvwi51v8zw2s45y9nlrgfws9rlpzll2"; depends=[airGR]; };
-  basefun = derive2 { name="basefun"; version="1.1-0"; sha256="17lrqi317hr21hirxxx931sfzqr19dadlb7jz16njsag1sjzmasv"; depends=[Matrix orthopolynom polynom variables]; };
+  basefun = derive2 { name="basefun"; version="1.1-1"; sha256="1bn32bxk36h4xy7q1wq522cw7dd1b4zixzzp04fsg2w692044vkh"; depends=[Matrix orthopolynom polynom variables]; };
   baseline = derive2 { name="baseline"; version="1.3-1"; sha256="1spmp8z0hrb6db0r52i16524cp9zy1d1hr4y3b3i9q38m1iskpms"; depends=[limSolve SparseM]; };
   basemaps = derive2 { name="basemaps"; version="0.0.1"; sha256="15fgk5x9n8nfmhclydwaypzqv5dl6s1r9v40ahdnpc50y5p8zjay"; depends=[curl httr magick pbapply raster sf slippymath stars]; };
   basetheme = derive2 { name="basetheme"; version="0.1.2"; sha256="0yck4qc7qd406s7kw95xgnfc0pfvzk3ylhkv6mk6l2wbkfm8ldrb"; depends=[]; };
   basf = derive2 { name="basf"; version="0.2.0"; sha256="0l3y5p51jic3b8h1jclhhma4myll1g3vsxr8rj0dx1bvjfimkryw"; depends=[raster sf tibble]; };
-  basicMCMCplots = derive2 { name="basicMCMCplots"; version="0.2.6"; sha256="057w8xzr0d3jvphhsq55ph9ck5hf4kiihfj57xbbyqx8biyfrjhc"; depends=[]; };
+  basicMCMCplots = derive2 { name="basicMCMCplots"; version="0.2.7"; sha256="02lwkbpr9yj5q7l3ing1v47c4ifvwaxn8yyr3b34fral08cgpn9x"; depends=[]; };
   basicTrendline = derive2 { name="basicTrendline"; version="2.0.5"; sha256="0402nvm3i32sx3m3c7r74iaj22h570v819yiwkraicjpmg55dghi"; depends=[investr scales]; };
   basicspace = derive2 { name="basicspace"; version="0.24"; sha256="1cy226njbax7dcgql89fns4l4w9fq328x3h0vb93l5jk883jgi8h"; depends=[]; };
   basictabler = derive2 { name="basictabler"; version="1.0.2"; sha256="0d5gpvf3la0fky786z74i8q7il1mmb2prg8y9wslg2gbngnkvkvm"; depends=[dplyr htmltools htmlwidgets R6]; };
@@ -6198,14 +6234,14 @@ in with self; {
   bayes4psy = derive2 { name="bayes4psy"; version="1.2.8"; sha256="0fmp88mrnmx4langd014l6jf06zmvwhclw4k0aw88v996hzv76bx"; depends=[BH circular cowplot dplyr emg ggplot2 mcmcse metRology Rcpp RcppEigen reshape rstan rstantools scales StanHeaders]; };
   bayesAB = derive2 { name="bayesAB"; version="1.1.3"; sha256="1mwwbkd8mqm22mkbgrp5mq7i52qqjr9if09fnhb3ybdpqq3sdg73"; depends=[ggplot2 Rcpp rlang]; };
   bayesCT = derive2 { name="bayesCT"; version="0.99.3"; sha256="0ragig1x34syhsnbnd58l2s7g23j7fb0cl9wkasvxq8cicw5hqgn"; depends=[bayesDP dplyr magrittr purrr survival]; };
-  bayesDP = derive2 { name="bayesDP"; version="1.3.4"; sha256="1xhqkymgn2h3ar4iwbdzpcw154adszcgx81sdx0wq3s033sx0cpk"; depends=[ggplot2 MCMCpack Rcpp RcppArmadillo survival]; };
+  bayesDP = derive2 { name="bayesDP"; version="1.3.5"; sha256="13wd83qwv7qi8v6nb7sn18hdcb11cpd2qr6js6kzsx65p08cmz2a"; depends=[ggplot2 MCMCpack Rcpp RcppArmadillo survival]; };
   bayesDccGarch = derive2 { name="bayesDccGarch"; version="3.0.3"; sha256="0qgcy70sp3mlcpdkkg3nvxrvwgwy698r19yg31s3qjak17jnp8qn"; depends=[coda numDeriv]; };
   bayesGAM = derive2 { name="bayesGAM"; version="0.0.1"; sha256="072q3kybnxjwc4s6qlww492cg43cr4zk6midyp5av7y3hnxbmqm8"; depends=[bayesplot BH boot cluster corrplot geometry ggplot2 gridExtra loo MASS mlbench Rcpp RcppEigen RcppParallel rstan rstantools SemiPar StanHeaders]; };
   bayesGARCH = derive2 { name="bayesGARCH"; version="2.1.10"; sha256="1jb7jfyxp210pc8myv9lnwb55hy19d39m10kkhs5lyjwc2lv0401"; depends=[coda mvtnorm]; };
   bayesImageS = derive2 { name="bayesImageS"; version="0.6-1"; sha256="0hz6ynvrhsxp097zswdlascza5n27cq4hfaqdc3r8b7crmh7lrim"; depends=[Rcpp RcppArmadillo]; };
   bayesLife = derive2 { name="bayesLife"; version="5.0-3"; sha256="1dlaqp6qd6qi8p8ni3z7adjrsn44njzvngyga4a97crp3jfqpx7k"; depends=[bayesTFR car coda data_table hett wpp2019]; };
   bayesPO = derive2 { name="bayesPO"; version="0.3.1"; sha256="1n9m89lhdj0ng3570x23kcjyjv85bky0hqrs1sl7qxjdzxacsisl"; depends=[coda Rcpp RcppEigen RcppProgress]; };
-  bayesPop = derive2 { name="bayesPop"; version="8.1-3"; sha256="018nwm6nmg0cpgkmiiqijry59f1adx103wy5dgz8a64f9hj4nqdi"; depends=[abind bayesLife bayesTFR data_table fields googleVis MortCast plyr reshape2 rworldmap wpp2012 wpp2019]; };
+  bayesPop = derive2 { name="bayesPop"; version="9.0-1"; sha256="15lisc0wvijmdjgw7n5fadbz4g702v9rp748h5xp5r6qk32g3njx"; depends=[abind bayesLife bayesTFR data_table fields googleVis MortCast plyr reshape2 rworldmap wpp2012 wpp2019]; };
   bayesQR = derive2 { name="bayesQR"; version="2.3"; sha256="1c6y7r9h9626ghp68pl5k1g0l95fwd6dp0jfznmhy53qza0ny8z4"; depends=[]; };
   bayesSurv = derive2 { name="bayesSurv"; version="3.3"; sha256="00brysldz0zbjbjs0qnd2mbpc3ipyz7224bnbwlf8d3b6ivw8iwv"; depends=[coda smoothSurv survival]; };
   bayesTFR = derive2 { name="bayesTFR"; version="7.1-1"; sha256="0grkrcgn1x1qaajyamzlp7csmsmmslbjbmajk42m5g7cxxljvylr"; depends=[coda data_table lifecycle MASS mvtnorm wpp2019]; };
@@ -6248,7 +6284,7 @@ in with self; {
   bbdetection = derive2 { name="bbdetection"; version="1.0"; sha256="1j6xcbfsrg3wcr1rpddj7ia33szn5bs0wk4mzq42d761clsr5qq8"; depends=[ggplot2 Rcpp xtable zoo]; };
   bbefkr = derive2 { name="bbefkr"; version="4.2"; sha256="1wjx652w3p41sq71a2zdzmb7frjxm6xvcgrc2ark2spwb0lbjjw6"; depends=[]; };
   bbemkr = derive2 { name="bbemkr"; version="2.0"; sha256="015c57s8mpimm82nddnh382wlkisxgdmc2hvp7k38pcnqxc5gb5q"; depends=[MASS]; };
-  bbl = derive2 { name="bbl"; version="0.4.0"; sha256="1xipzyz8gw0cnwwy0hspsbb6dby01rfyzafg5qvbg9a9f0j543f0"; depends=[pROC RColorBrewer Rcpp]; };
+  bbl = derive2 { name="bbl"; version="0.4.1"; sha256="1iwljhs7mn6l6pvfrksdiq29f3d4cmhm079nbf4zpv5yq2rksdyq"; depends=[pROC RColorBrewer Rcpp]; };
   bbmle = derive2 { name="bbmle"; version="1.0.24"; sha256="1bck8rmink4wsk8pcbnj4d60svxymp29pxbzwj8p9gzsg42c1v81"; depends=[bdsmatrix lattice MASS Matrix mvtnorm numDeriv]; };
   bbo = derive2 { name="bbo"; version="0.2"; sha256="19xrbla3bb3csg3gjjrpkgyr379zfwyh293bcrcd6j8rnm6g4i01"; depends=[]; };
   bbotk = derive2 { name="bbotk"; version="0.4.0"; sha256="09cw6z397laszsg5wsgpjh7jda74amqrcl2p25bgjg33ina2nvg7"; depends=[checkmate data_table lgr mlr3misc paradox R6]; };
@@ -6363,6 +6399,7 @@ in with self; {
   biClassify = derive2 { name="biClassify"; version="1.2"; sha256="05w22cv8w733xp79ciywih5cbv3fl6kzkbwwmrf44l1vdcnv3dsn"; depends=[DAAG expm fields MASS Matrix mvtnorm Rcpp RcppArmadillo]; };
   biasbetareg = derive2 { name="biasbetareg"; version="1.0"; sha256="1562zdin0y5mrp36ih11ir3h9cv49cx1l98chxd89fkj8x3c1fbg"; depends=[betareg]; };
   bib2df = derive2 { name="bib2df"; version="1.1.1"; sha256="0d57883df774qqwpssmly3f1gci32yc5sgwc3x8f2rjih23s1nf6"; depends=[dplyr httr humaniformat stringr]; };
+  biblio = derive2 { name="biblio"; version="0.0.5"; sha256="13mbw95533iqi0mqa1frhljn0kzhzxrd70vhk0l0jfqdhms0sqw7"; depends=[stringr yamlme]; };
   bibliometrix = derive2 { name="bibliometrix"; version="3.1.4"; sha256="14s1mn0j9120m1nh46380qbffy6d4zcx9ii3axbcwmhry0yr2ndw"; depends=[bibliometrixData dimensionsR dplyr DT factoextra FactoMineR forcats ggplot2 ggrepel igraph Matrix openxlsx plotly pubmedR RColorBrewer readr readxl rscopus shiny SnowballC stringdist stringr tidyr tidytext]; };
   bibliometrixData = derive2 { name="bibliometrixData"; version="0.1.0"; sha256="0fdfgqsfiq3iacj4vb3bvx98waqzqxdsn2ds8wq86a30lm055d7n"; depends=[]; };
   biblionetwork = derive2 { name="biblionetwork"; version="0.1.0"; sha256="0nhx9bk7r5l0bvj98clnmwf53ihghf48zai4nj6pcgr2rb69fvjj"; depends=[data_table Rdpack]; };
@@ -6375,6 +6412,7 @@ in with self; {
   bifurcatingr = derive2 { name="bifurcatingr"; version="1.0.0"; sha256="0msbdr2m4xmvnd00yklk2b8c8qwr11d5gc1x22sqd16fgj9y0qvf"; depends=[igraph MASS]; };
   bigGP = derive2 { name="bigGP"; version="0.1-7"; sha256="0slg87g6lrdlzlcqxmcyxcwzrnmiz6ps0n14p27zcv0n687xifid"; depends=[Rmpi]; };
   bigMap = derive2 { name="bigMap"; version="2.3.1"; sha256="08c9s5sk672j70d6pnva7z52i4s3knkby06lva9al9n8a3jiwsvz"; depends=[BH bigmemory colorspace RColorBrewer Rcpp RcppArmadillo]; };
+  bigQF = derive2 { name="bigQF"; version="1.6"; sha256="01qr1cw5v330kkddmgwk4fdlm6msnqcbx1kfzw390yfwq5pr84sy"; depends=[CompQuadForm coxme Matrix svd]; };
   bigQueryR = derive2 { name="bigQueryR"; version="0.5.0"; sha256="051c8rkj77dm78237dzhf3lcdawv0xv72pwfiim9bi89z9mp6f9m"; depends=[assertthat googleAuthR googleCloudStorageR httr jsonlite]; };
   bigReg = derive2 { name="bigReg"; version="0.1.2"; sha256="1hmvh5j40zpzz6c88hmikphps8rb741yvkg60dxmkfl8gxqsrp3w"; depends=[MASS Rcpp RcppArmadillo uuid]; };
   bigSurvSGD = derive2 { name="bigSurvSGD"; version="0.0.1"; sha256="08i6hwfr4rpvmxfa0vx8bi2dsa63iasj049ndwfn6zgvai6qaz0s"; depends=[bigmemory doParallel foreach Rcpp survival]; };
@@ -6417,10 +6455,11 @@ in with self; {
   binGroup = derive2 { name="binGroup"; version="2.2-1"; sha256="0cb7j6b0s3y56mv1967awwri0kv0rf3sr3vwf9gc2zbjggxi9ffp"; depends=[partitions Rdpack]; };
   binGroup2 = derive2 { name="binGroup2"; version="1.1.0"; sha256="1hgz1w0bxbd82rx96s6b63wjczsb1x2l6j526wcnwix36kibv3p3"; depends=[ggplot2 partitions rBeta2009 Rcpp RcppArmadillo Rdpack scales]; };
   binMto = derive2 { name="binMto"; version="0.0-7"; sha256="0rg9rsdy14jx7zjv60krcz1vh0sxqimsai0wynhx2sx0kydw4ngy"; depends=[mvtnorm]; };
+  binancer = derive2 { name="binancer"; version="1.2.0"; sha256="1diy0g3mvzxs0jxybpk42m3ccs5qk1ynw116aaxsn5k9ch7crj3l"; depends=[data_table digest httr jsonlite logger snakecase]; };
   binaryGP = derive2 { name="binaryGP"; version="0.2"; sha256="0i4xi0gxk0lamjdygyx0azdp3kfqmva1g20nl3p65w4yx77m88d6"; depends=[GPfit lhs logitnorm nloptr Rcpp RcppArmadillo]; };
   binaryLogic = derive2 { name="binaryLogic"; version="0.3.9"; sha256="19ig9qgjjnivfihjy41pc13qlrb95679mmk4zks5lbbri8qi4qxj"; depends=[]; };
   binb = derive2 { name="binb"; version="0.0.6"; sha256="0j9iyawkn1mqvf52q1abp0k00r5239rkvvmvl3cmp4jlffxd4xd7"; depends=[knitr rmarkdown]; };
-  binda = derive2 { name="binda"; version="1.0.3"; sha256="15rhxnlif7agblzd09gyllkqkf5d8cc75b4vmp7grx8a6y7w47g0"; depends=[entropy]; };
+  binda = derive2 { name="binda"; version="1.0.4"; sha256="0fgdpdjbw95rwv7l0acfb9cf7s57q5ld2vgdvrv1pxwkyi902nh4"; depends=[entropy]; };
   bindata = derive2 { name="bindata"; version="0.9-20"; sha256="0smym431w755azsawwsdk6412dfj7bz3bdc3mqzam50xard4s94l"; depends=[e1071 mvtnorm]; };
   bindr = derive2 { name="bindr"; version="0.1.1"; sha256="1l05fpk2yql3jka321c0bdgx6mqq9pvfrg2844lbjfpbgjkmqy3w"; depends=[]; };
   bindrcpp = derive2 { name="bindrcpp"; version="0.2.2"; sha256="0rz4ibjdjsxl99ff3ha79z7cnjmilx4rx58fk9kk7ld9xc4hf4s8"; depends=[bindr plogr Rcpp]; };
@@ -6467,7 +6506,7 @@ in with self; {
   bioset = derive2 { name="bioset"; version="0.2.3"; sha256="15vchim8cim42j1if0jars696rh50vmbggr9748q321f6ngm1w1i"; depends=[dplyr magrittr rlang tibble tidyr]; };
   biosignalEMG = derive2 { name="biosignalEMG"; version="2.1.0"; sha256="0bbkrfqkmks4z8c7rh0k43lvm71vn3fzrw3kpj012ym77whwkvay"; depends=[signal]; };
   biospear = derive2 { name="biospear"; version="1.0.2"; sha256="10y4hbncwiqpxzqvzjrmfgp804zczdgvwpjcj0dzaa0sx1njdzja"; depends=[cobs corpcor devtools glmnet grplasso MASS Matrix mboost pkgconfig plsRcox pROC PRROC RCurl survAUC survival]; };
-  biostat3 = derive2 { name="biostat3"; version="0.1.5"; sha256="1hnq2al27033zagxjd0r8nls6z8lznfqqiyrharq07s6bgbl5bv9"; depends=[car MASS muhaz survival]; };
+  biostat3 = derive2 { name="biostat3"; version="0.1.6"; sha256="12i8ki1yair4sycfcwrhl10khfxzx5q2slzqjwcrqfxg69q8ak4l"; depends=[MASS muhaz survival]; };
   biosurvey = derive2 { name="biosurvey"; version="0.1.1"; sha256="1hhch5qagn86pcn43qlmv0azfbjc9yv58yp9v1p5s6r5ffxkgs95"; depends=[diptest doParallel foreach ks maps picante raster rgdal rgeos sp spatstat_geom vegan]; };
   biotic = derive2 { name="biotic"; version="0.1.2"; sha256="1p18jkdd263dgk90626n9awkj6m4zn1n7897596fzrzrahksa978"; depends=[]; };
   biotools = derive2 { name="biotools"; version="4.2"; sha256="1dyy9mk2afjbc8g1qygy6h1aksbhndm53c4sb5mfzriydl03ibxv"; depends=[boot MASS]; };
@@ -6489,7 +6528,7 @@ in with self; {
   bitmexr = derive2 { name="bitmexr"; version="0.3.1"; sha256="1h4fdh88b8j1p6hxabwf2v1wm8wnqzpl67hh15pjky2hhczfds05"; depends=[attempt curl digest dplyr httr jsonlite lubridate magrittr progress purrr rlang stringr]; };
   bitops = derive2 { name="bitops"; version="1.0-7"; sha256="1i0phmq5yynla5x0frqll1gbf5ww59p3sgz1s06a354zqf9grdg9"; depends=[]; };
   bitsqueezr = derive2 { name="bitsqueezr"; version="0.1.1"; sha256="0dy180r9cclq46mh0fzc68p5zm9x2z5pa8ajgsk7qycdkyw5v829"; depends=[]; };
-  bittermelon = derive2 { name="bittermelon"; version="0.1.3"; sha256="09askrgm3fandkvrpzf5p9ysxs837ass0cmqi92dlv980m63zdip"; depends=[findpython png Unicode]; };
+  bittermelon = derive2 { name="bittermelon"; version="0.2.1"; sha256="0acgi9x3v508igr5nr86nhxzjpl9m8nmqzg7iq65j6pvlr68n7zx"; depends=[findpython png rappdirs Unicode]; };
   bivgeom = derive2 { name="bivgeom"; version="1.0"; sha256="1cn8k7q011whr4f7zig85dsrkz04614z9ns2ky6k6i16s5n3glxy"; depends=[bbmle copula]; };
   bivquant = derive2 { name="bivquant"; version="0.1"; sha256="05dn4qik2dvmgqc2613vddh312bqhza1vnf94an75888gxri5h03"; depends=[copula cubature lpSolve MASS mvtnorm regpro]; };
   bivrp = derive2 { name="bivrp"; version="1.2-2"; sha256="0b38nh38vgqjllb1z9627dm86yp0s06ky1g829g8kkz7rffdp2za"; depends=[MASS]; };
@@ -6506,7 +6545,7 @@ in with self; {
   blaster = derive2 { name="blaster"; version="1.0.4"; sha256="0y2vdksmy1xngqvf7wxy5yf58830sm0bi82vn02yba1x6345ghjr"; depends=[Rcpp]; };
   blastula = derive2 { name="blastula"; version="0.3.2"; sha256="084mk6xb8ivqrp8anvisfk8rvwi7qfrp5kmy66vpihmjmqh7dkyc"; depends=[base64enc commonmark curl digest dplyr fs getPass here htmltools httr jsonlite magrittr mime rlang rmarkdown stringr uuid]; };
   blatent = derive2 { name="blatent"; version="0.1.1"; sha256="1jnf3i7s3mn99ff8yzygxys0w8qf6vrfk16iqgxh7jbivbrczysk"; depends=[coda Matrix mnormt R6 Rcpp RcppArmadillo truncnorm]; };
-  blavaan = derive2 { name="blavaan"; version="0.3-17"; sha256="1rgi4wfwa6sh78vs7w1mpdfxi663840xg4kkqlgz28jscv64z8dd"; depends=[bayesplot BH coda future_apply lavaan loo Matrix MCMCpack mnormt nonnest2 Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
+  blavaan = derive2 { name="blavaan"; version="0.3-18"; sha256="0rg86gsgi3kp2krhw8rabwpidcnlq6chsbmdw9jwfhf75yi60f9p"; depends=[bayesplot BH coda future_apply lavaan loo Matrix MCMCpack mnormt nonnest2 Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
   blendedLink = derive2 { name="blendedLink"; version="1.0"; sha256="19d1pnjag89jjvkl5a6wx531qjqp4cv5jk95md6jby27yr52r8vp"; depends=[]; };
   blender = derive2 { name="blender"; version="0.1.2"; sha256="1qqkfgf7fzwcz88a43cqr8bw86qda33f18dg3rv1k77gpjqr999c"; depends=[vegan]; };
   blin = derive2 { name="blin"; version="0.0.1"; sha256="1h94azm7gli9i4v3li5c1p36p3rkcj2p5j6rqzlzf0pcqs0bsc09"; depends=[abind glmnet MASS Matrix mvtnorm]; };
@@ -6528,16 +6567,14 @@ in with self; {
   blockmodels = derive2 { name="blockmodels"; version="1.1.4"; sha256="1kx6ryx0ma7j70nzby0wdagqkf1cjdhvw32rf7i1pp8f2rkfsg84"; depends=[digest Rcpp RcppArmadillo]; };
   blockrand = derive2 { name="blockrand"; version="1.5"; sha256="0bic3b8l7mp2hpwd8k1diwy6a4lj92i7s5k20i2wy8kw0c74jwfh"; depends=[]; };
   blocksdesign = derive2 { name="blocksdesign"; version="4.9"; sha256="1kr3fxs8vgc96clhx5ml11jkwll1rg9gf16xg93q14jpg4hg0j9h"; depends=[plyr PolynomF]; };
-  blogdown = derive2 { name="blogdown"; version="1.5"; sha256="08h4zsrw12xkllyx3czmpxjy1dnqr6vrk410zp7m75xzsbq5kg5q"; depends=[bookdown htmltools httpuv jsonlite knitr later rmarkdown servr xfun yaml]; };
+  blogdown = derive2 { name="blogdown"; version="1.6"; sha256="0xlx5d3hmsx1v4n75g3xfi9i6npsw4gfqzm5h97vafgnjpf35g3g"; depends=[bookdown htmltools httpuv jsonlite knitr later rmarkdown servr xfun yaml]; };
   blorr = derive2 { name="blorr"; version="0.3.0"; sha256="1ynvg6ar7c7p01225q9czy4gxks0p1vw3sx207l7vzqxw20wb1bn"; depends=[car data_table ggplot2 gridExtra lest Rcpp]; };
   blrm = derive2 { name="blrm"; version="1.0-1"; sha256="0p0nmbxil4l89fcryrgsg9mxzb5fyg93p50aqkjy00ms05hwd0hx"; depends=[boot mvtnorm openxlsx reshape2 rjags]; };
   blsR = derive2 { name="blsR"; version="0.2.1"; sha256="0wbcpvgj72fkhv4z1gllf9lkq45mdwwnf8dnmaqwl9i5qnihy1yy"; depends=[dplyr httr jsonlite purrr rlang]; };
   bltm = derive2 { name="bltm"; version="0.1.0"; sha256="1sx4ii65ddvdw45za8j320v1s9d1pz5k2gx979yymhyxi8fmq69z"; depends=[mvnfast Rfast]; };
   bmabasket = derive2 { name="bmabasket"; version="0.1.1"; sha256="1hgbl1x38snhzbh5j1qz81azkdwzmm4idacyyyrn895vl71ypfrn"; depends=[partitions Rcpp RcppArmadillo]; };
   bmass = derive2 { name="bmass"; version="1.0.3"; sha256="0dafixd996lamn5kfbqpiawblalhyw1gi394j46n2sij2r209d76"; depends=[]; };
-  bmd = derive2 { name="bmd"; version="0.5"; sha256="0d4wxyymycb416sdn272292l70s1h2m5kv568vakx3rbvb8y6agy"; depends=[drc]; };
   bmem = derive2 { name="bmem"; version="1.8"; sha256="1nhybz8aarzlqjx4443hsflflgy2jcprz5dv6mwxacnyspm93vlq"; depends=[Amelia lavaan MASS sem snowfall]; };
-  bmeta = derive2 { name="bmeta"; version="0.1.2"; sha256="19pm60xpmlanngq4nbibp0n5m98xw24b2xghz92ly31i3mkg2n68"; depends=[forestplot R2jags]; };
   bmgarch = derive2 { name="bmgarch"; version="1.0.1"; sha256="1jvfrzkjblzvm97wfwbwzz73sbhjkfkqg84rhgb2154vf2sdp139"; depends=[BH forecast ggplot2 loo MASS Rcpp RcppEigen Rdpack rstan rstantools StanHeaders]; };
   bmggum = derive2 { name="bmggum"; version="0.1.0"; sha256="1r0j5gklmknyan68nc3vfn96ck414v75547486ic70v2pdr3xnpf"; depends=[BH edstan ggplot2 GGUM loo Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
   bmixture = derive2 { name="bmixture"; version="1.7"; sha256="09ahs2dwrbqhk4aki9291v5lr5fa9mvi087zrqjmv2057ypyv2n5"; depends=[BDgraph]; };
@@ -6556,7 +6593,6 @@ in with self; {
   bnnSurvival = derive2 { name="bnnSurvival"; version="0.1.5"; sha256="1d9jmfx0id4lmw122zga7hb52vlfdfqn4amhzpsmhyck99rv92j4"; depends=[pec prodlim Rcpp]; };
   bnormnlr = derive2 { name="bnormnlr"; version="1.0"; sha256="0l2r7vqikak47nr6spdzgjzhvmkr9dc61lfnxybmajvcyy6ymqs9"; depends=[mvtnorm numDeriv]; };
   bnpa = derive2 { name="bnpa"; version="0.3.0"; sha256="0qsxk47i7q4d8hbs2xj5k5sf8bqyzhq7rbj4y7w8ljprznlydgl9"; depends=[bnlearn fastDummies lavaan Rgraphviz semPlot xlsx]; };
-  bnpmr = derive2 { name="bnpmr"; version="1.2"; sha256="0vpqhs1h2mphn9w5yngb7lxvmzrhn7mkj7ca6hykhhg48s2ra98g"; depends=[]; };
   bnpsd = derive2 { name="bnpsd"; version="1.3.13"; sha256="0wnbsz5c52pglycykzkd5lsnxfkjqva0xhwnb4kz7x1zd8vbd1sl"; depends=[ape nnls]; };
   bnspatial = derive2 { name="bnspatial"; version="1.1.1"; sha256="1drm9ia4lr80wahbbn9xrw658ppmgxm4iadwv77jz1x786dda2n1"; depends=[doParallel foreach gRain gRbase raster rgdal sf]; };
   bnstruct = derive2 { name="bnstruct"; version="1.0.11"; sha256="0vlmaz75mnbj4js3h5j11rs7q7yx5agwi1y7hq16nb8x81arhwai"; depends=[bitops igraph]; };
@@ -6571,7 +6607,7 @@ in with self; {
   boostmtree = derive2 { name="boostmtree"; version="1.5.0"; sha256="18w5h8m6g4aszffyn0ixhzn2bgbrwrrcq2k54b70vbw00xqxmg1q"; depends=[nlme randomForestSRC]; };
   boot = derive2 { name="boot"; version="1.3-28"; sha256="0cjafhqv1c1mrjjcasqr767vs96wjcc6am9r1icryr8l4zymhwcz"; depends=[]; };
   boot_heterogeneity = derive2 { name="boot.heterogeneity"; version="1.1.5"; sha256="0g4zkvx8krqh54xvjh1a0ybwl3v5bg3l670ycgnps8kkw32w5p1f"; depends=[HSAUR3 knitr metafor pbmcapply rmarkdown]; };
-  boot_pval = derive2 { name="boot.pval"; version="0.3"; sha256="0pmp1wd12gzkpl2ank7yw7gd160aa5n07dxdy812vki6kjp3qd19"; depends=[boot car lme4 Rdpack survival]; };
+  boot_pval = derive2 { name="boot.pval"; version="0.4"; sha256="05gxpky92f9jhvhv4faj49ql8a9mrfqdgk802i0hdw4lmnn90k7j"; depends=[boot car lme4 Rdpack survival]; };
   bootComb = derive2 { name="bootComb"; version="1.0.2"; sha256="1vnkn1xa8qz58srgk1i5m3m3skghw5klvp0q53ab45a420j49spj"; depends=[]; };
   bootES = derive2 { name="bootES"; version="1.2.1"; sha256="16b14bycy3ds09hsxnk738k2xq9qmwcy3kzdqd6rw9w4j7167kf0"; depends=[boot]; };
   bootGOF = derive2 { name="bootGOF"; version="0.1.0"; sha256="11nn4lc9wdx1z35mfpc3zkk1xr0pvvjyvjzpjlq3z4gm0hmniifz"; depends=[checkmate R6]; };
@@ -6580,7 +6616,7 @@ in with self; {
   bootPLS = derive2 { name="bootPLS"; version="0.9.9"; sha256="1i0bzykwjimyswb0z23sqbhm98b9lxifnkby682khva7yfk7k8qr"; depends=[bipartite boot doParallel foreach mvtnorm pls plsRglm spls]; };
   bootSVD = derive2 { name="bootSVD"; version="1.1"; sha256="16d3qv8vzhfvl9vbfglkb3csmc4npb29jcq9apv89hj7bkcapvi9"; depends=[ff]; };
   bootStepAIC = derive2 { name="bootStepAIC"; version="1.2-0"; sha256="0p6v4zjsaj1p6c678010fazdh40lpv0rvhczd1halj8aic98avdx"; depends=[MASS]; };
-  bootUR = derive2 { name="bootUR"; version="0.3.0"; sha256="12r2kfr4nwlc734vbx793vx4qhg8hiv3s99hj8k6h0b0fvj1w911"; depends=[Rcpp RcppArmadillo RcppProgress urca]; };
+  bootUR = derive2 { name="bootUR"; version="0.4.2"; sha256="1vf6qynakcil8sz161c8jvkg7c5b5qmkzmsgd5vhp3yrjf1wbhf7"; depends=[parallelly Rcpp RcppArmadillo RcppParallel RcppThread urca]; };
   bootcluster = derive2 { name="bootcluster"; version="0.2.5"; sha256="0jhq0f8a3lajhqksvxd3k703b50vzll43q9w4iaqv4ylsg9l6pyr"; depends=[cluster doParallel dplyr flexclust foreach fpc GGally ggplot2 gridExtra igraph intergraph mclust network plyr sna]; };
   bootf2 = derive2 { name="bootf2"; version="0.4.1"; sha256="17wrl678x9mb5pny2vwrr6sdl2hsqr1nbjzsizp2q6l3w5m6s152"; depends=[ggplot2 MASS minpack_lm readxl]; };
   bootnet = derive2 { name="bootnet"; version="1.5"; sha256="13pfmr259yikkb3y9438xz4bjn6kx5w5d2jhx441a00rvv1kb3hi"; depends=[abind corpcor dplyr ggplot2 gtools igraph IsingFit IsingSampler Matrix mgm mvtnorm NetworkToolbox networktools pbapply qgraph rlang snow tibble tidyr]; };
@@ -6612,7 +6648,7 @@ in with self; {
   bpnreg = derive2 { name="bpnreg"; version="2.0.2"; sha256="1acf7smlcg8b29ga47wpb23zpfb90iz19fjc5v0zppc8q20lgggl"; depends=[BH haven Rcpp RcppArmadillo]; };
   bpp = derive2 { name="bpp"; version="1.0.2"; sha256="0an4lmml0jhx4lbbwiaa63jnqv8fx0nhb04vpsqgv8d0g9phqx3a"; depends=[mvtnorm]; };
   bpr = derive2 { name="bpr"; version="1.0.4"; sha256="1pi5p0av40lhyc5vskrkkclx30amzry484g91s63cmffbfn08jsc"; depends=[BH coda MASS Rcpp RcppArmadillo]; };
-  bqror = derive2 { name="bqror"; version="1.2.0"; sha256="0vyx3np42gm06rsqy4f7496hvp3ivx5f3axqlgb0pqvpqsi5m5a3"; depends=[GIGrvg invgamma MASS NPflow pracma truncnorm]; };
+  bqror = derive2 { name="bqror"; version="1.3.0"; sha256="1qwng7hxbw7ilqjvw2nv38im1axq56sw04d75sygs9lg1jcgh4lv"; depends=[GIGrvg invgamma MASS NPflow pracma truncnorm]; };
   bqtl = derive2 { name="bqtl"; version="1.0-33"; sha256="1sbzpi9z94f010lw2y1gmifjrvpmiqs4m26za7vr1xz72azrqvs9"; depends=[]; };
   bracer = derive2 { name="bracer"; version="1.2.1"; sha256="0q47p43957nlaqsz0hhbica2hlar95c2i8avgq024yhccik5nx6f"; depends=[stringr]; };
   braggR = derive2 { name="braggR"; version="0.1.1"; sha256="1sq7knrnz3nqprlvsj24f9gj1i0viawq3wcv2b97dmbwa7rd5qfz"; depends=[Rcpp]; };
@@ -6623,7 +6659,7 @@ in with self; {
   brainR = derive2 { name="brainR"; version="1.6.0"; sha256="1l5rm6grslc6mivwh2fv3pznhy2cw16fz5695pmyfamzvsjggir1"; depends=[misc3d oro_nifti rgl]; };
   brandwatchR = derive2 { name="brandwatchR"; version="0.3.0"; sha256="10bccsaswsq06wdrxqg71amzx5rabmgfi4n074y651r2c1pyy98w"; depends=[data_table httr jsonlite]; };
   brant = derive2 { name="brant"; version="0.3-0"; sha256="0rcp0am4wjlkinvmv0n5bky84v31ds28v163p5mlp343cgma2b62"; depends=[MASS Matrix]; };
-  bravo = derive2 { name="bravo"; version="2.1.1"; sha256="1ikfby3sbkbzk34kc2nsbxyqfdl9qw182rf9zj5zk6yi8s4zsbsq"; depends=[Matrix Rcpp]; };
+  bravo = derive2 { name="bravo"; version="2.1.2"; sha256="0gs8vplb3sfp82bldbq1glqhr6j2p4pbzxfbhy61sjs88kvh0bp2"; depends=[Matrix Rcpp]; };
   brea = derive2 { name="brea"; version="0.2.0"; sha256="0mb043fdhxrg9gyf4g55ydjx37j20394nvd4d0fmiym98lccyi04"; depends=[]; };
   breakDown = derive2 { name="breakDown"; version="0.2.1"; sha256="1jm9zmyfcnr9mjz7b30k34h47msvik9ngfysi6dc48gvrk41yk9q"; depends=[ggplot2]; };
   breakage = derive2 { name="breakage"; version="1.1-1"; sha256="0zjazyz92criiimpz4wyd4hd8ccspvh3hhqpd4qkfdzdf9wp3kns"; depends=[Imap]; };
@@ -6633,7 +6669,7 @@ in with self; {
   breathteststan = derive2 { name="breathteststan"; version="0.8.0"; sha256="1h05yqpsa1r6p0iybwh7rap0n10vr2wj2driq7qyq6wk6y14m8hc"; depends=[BH dplyr purrr Rcpp RcppEigen rstan rstantools StanHeaders stringr tibble tidyr]; };
   brew = derive2 { name="brew"; version="1.0-6"; sha256="1vghazbcha8gvkwwcdagjvzx6yl8zm7kgr0i9wxr4jng06d1l3fp"; depends=[]; };
   brglm = derive2 { name="brglm"; version="0.7.2"; sha256="08shcz0j1npdn7xkhsvlzs3z4rdwq3g4rk6a4xx8wirqw8n8s2an"; depends=[profileModel]; };
-  brglm2 = derive2 { name="brglm2"; version="0.8.1"; sha256="1zqbvf79wf3l9lc7s2sf67bn3cbd5wv858f8gi4cf05z1cr34mgw"; depends=[enrichwith lpSolveAPI MASS Matrix nnet numDeriv]; };
+  brglm2 = derive2 { name="brglm2"; version="0.8.2"; sha256="065ldmbagarhipl6hl25rlpcnp7c3h1adadyq2wgx0g09hq5ibjf"; depends=[enrichwith MASS Matrix nnet numDeriv]; };
   briKmeans = derive2 { name="briKmeans"; version="0.1"; sha256="026wga5lqr8i6zxi8jnw466d40r9qf1blb7l331h9vaj2j169iax"; depends=[boot cluster depthTools]; };
   brickr = derive2 { name="brickr"; version="0.3.5"; sha256="1a6yxhq2zly3i3gs4dd19xhyrin1qaxdr7x3a887j7zbcj0j4z9q"; depends=[colorspace dplyr farver ggplot2 magrittr purrr rgl scales tidyr]; };
   bridgedist = derive2 { name="bridgedist"; version="0.1.0"; sha256="0hqkpwpi3nv6mfhljl65zcflf4wy72ag36hdam6s7kynfj41qz6w"; depends=[]; };
@@ -6643,12 +6679,12 @@ in with self; {
   brinton = derive2 { name="brinton"; version="0.2.5"; sha256="0jiw14glfhh13dkwn2x36q92gfhadna0fq4vs0f83nq8sqnx4s4m"; depends=[forcats GGally ggplot2 glue gridExtra lubridate pander RColorBrewer rmarkdown sm tibble]; };
   brio = derive2 { name="brio"; version="1.1.2"; sha256="1vviykwx1z71yhk1xl87riaygj8sq0sj7ixyig1irqsi66aydpa2"; depends=[]; };
   briqr = derive2 { name="briqr"; version="0.1.0"; sha256="073pdk1094ng4kggzdjvihl791r2qlja1j2w3pfmh2027kn520r8"; depends=[dplyr httr jsonlite magrittr tibble]; };
-  briskaR = derive2 { name="briskaR"; version="1.0.2"; sha256="1m5ck90wc90wr5gbgzl3b9inxxng1sbaz5kdvy9s3jnyxspz97jn"; depends=[deldir deSolve fasterize fftwtools MASS mvtnorm raster Rcpp RcppArmadillo rgdal rgeos sf sp testthat]; };
+  briskaR = derive2 { name="briskaR"; version="1.0.3"; sha256="1qnf7x7m5mm9pv8m47gj5jrbn4f7q24ks8zbn6vninj9r72smhs0"; depends=[deldir deSolve fasterize fftwtools MASS mvtnorm raster Rcpp RcppArmadillo rgdal rgeos sf sp testthat]; };
   brlrmr = derive2 { name="brlrmr"; version="0.1.7"; sha256="0s47qz8y416x0gz91pzdpr97pmlvddwkvll454vnlafxxk9p5lds"; depends=[boot brglm MASS profileModel Rcpp]; };
   brm = derive2 { name="brm"; version="1.1.1"; sha256="0kyr8mxz5g3w41kp08d47f29cff8fqrfbm1ri7hgfg2lgr1151xy"; depends=[]; };
-  brms = derive2 { name="brms"; version="2.16.1"; sha256="1i0vkkfziac29vncw4igja5m7a6rhw9rqwifrw3y47q6zgczp7kl"; depends=[abind backports bayesplot bridgesampling coda future ggplot2 glue loo Matrix matrixStats mgcv nleqslv nlme posterior projpred Rcpp rstan rstantools shinystan]; };
+  brms = derive2 { name="brms"; version="2.16.3"; sha256="1q93z4cf3iy4rs6pgvph6z7hc8q05iwif76hcg8p4kr6nl82nc38"; depends=[abind backports bayesplot bridgesampling coda future ggplot2 glue loo Matrix matrixStats mgcv nleqslv nlme posterior Rcpp rstan rstantools shinystan]; };
   brnn = derive2 { name="brnn"; version="0.9"; sha256="0gyjvrakwd6nbgv94hbxvynsl52w0zswzp8fxl88rppycpgn81j6"; depends=[Formula truncnorm]; };
-  brokenstick = derive2 { name="brokenstick"; version="1.1.0"; sha256="02n8fv84cfj32mg08ylpg19alf69kkpknpvd6mx86lclhaqa3cnf"; depends=[dplyr lme4 matrixsampling rlang tidyr]; };
+  brokenstick = derive2 { name="brokenstick"; version="2.0.0"; sha256="0si4chi6fcp6n8wwvx6mrj9xlrldwhvcrx1kv7xbfd0p7kaz89qh"; depends=[coda dplyr lme4 matrixsampling rlang tidyr]; };
   brolgar = derive2 { name="brolgar"; version="0.1.2"; sha256="0xhv76z75zsrvcy606cv8qvz14w5g02gcs2744kv1kflaaics7dx"; depends=[dplyr fabletools ggplot2 glue magrittr purrr rlang tibble tidyr tsibble vctrs]; };
   broman = derive2 { name="broman"; version="0.76"; sha256="1yjalfrfy1hvrcs3ky452mdg2ss8ikascj9yngp5fnfrrljcg9wg"; depends=[ggplot2]; };
   broom = derive2 { name="broom"; version="0.7.10"; sha256="0ks64xwkaqh5cinq8j56d89rn9kipm7cdipsgqmz9xxy7ajxb7qj"; depends=[backports dplyr ellipsis generics ggplot2 glue purrr rlang stringr tibble tidyr]; };
@@ -6658,7 +6694,7 @@ in with self; {
   brotli = derive2 { name="brotli"; version="1.2"; sha256="07rgdgxh9bvn0qavpclxmkglwyl6ndqasxcs6j12if698dkn976b"; depends=[]; };
   brr = derive2 { name="brr"; version="1.0.0"; sha256="050ivnqcaxiyypd1sxfpy6ianhzzmvs6c77ga40g3440cvfigkgw"; depends=[gsl hypergeo pander stringr SuppDists TeachingDemos]; };
   brranching = derive2 { name="brranching"; version="0.7.0"; sha256="06jy3qhbr0v4m1j4j8a7fb7ic59sx4zhlsm1yb3g6rdwc00d67wj"; depends=[ape conditionz crul curl phylocomr phytools taxize]; };
-  bruceR = derive2 { name="bruceR"; version="0.7.2"; sha256="0ynsimhqyq3anbmysw6269vnil9175gskx6qyyc1vcd0km4b75i9"; depends=[cowplot crayon ggplot2 ggtext glue jmv pacman performance see]; };
+  bruceR = derive2 { name="bruceR"; version="0.8.0"; sha256="0s9l4mdj77ys1cimrvc9hd5cvl02q8wsk46s4zfhk4p735slz1az"; depends=[cowplot data_table dplyr effectsize emmeans forcats ggplot2 ggtext performance psych see stringr tidyr]; };
   brunnermunzel = derive2 { name="brunnermunzel"; version="1.4.1"; sha256="1lba5cpiray65zg1pv3xv6yl1xg78rqlwxkcmhgizlh1rhpd430p"; depends=[]; };
   brxx = derive2 { name="brxx"; version="0.1.2"; sha256="08qlfnf84k3yjcvr1wm6gd96mk26xf2gz59ychb3m981228hbbs6"; depends=[blavaan blme GPArotation MASS MCMCpack rstan TeachingDemos]; };
   bs4Dash = derive2 { name="bs4Dash"; version="2.0.3"; sha256="17vpng0s0sr3bnaqq3d545s72zd5a7isdbvzh01148lzq0va710g"; depends=[bslib fresh htmltools httpuv httr jsonlite lifecycle shiny waiter]; };
@@ -6675,7 +6711,8 @@ in with self; {
   bsplus = derive2 { name="bsplus"; version="0.1.3"; sha256="1grn2i2xxq5fhkqb7lqsfhbfckr6i3ddy7mikgxz6lifk4rc4mxx"; depends=[glue htmltools jsonlite lubridate magrittr purrr rmarkdown stringr]; };
   bspm = derive2 { name="bspm"; version="0.3.8"; sha256="0ds841271jnslb5h1681kzp04h3jj6nya94xx1kr7abbc0sg23d4"; depends=[]; };
   bspmma = derive2 { name="bspmma"; version="0.1-2"; sha256="1a3p1h7bks5yrxv791wfa680v4a6q10p59iz6wvfifhf3ndlaw49"; depends=[]; };
-  bssm = derive2 { name="bssm"; version="1.1.7-1"; sha256="0vwhnpzvnx16a51sssnakydxv6jim3a16apfjd87ismwdycvkvlz"; depends=[checkmate coda diagis ramcmc Rcpp RcppArmadillo sitmo]; };
+  bsreg = derive2 { name="bsreg"; version="0.0.1"; sha256="06kabvchg9jk9x6rgjlphnggpbfppzghqj7pw2nx1wizi2dw0sal"; depends=[Matrix R6]; };
+  bssm = derive2 { name="bssm"; version="2.0.0"; sha256="10gk0b235c3szll3g48w9r2iryc0hfx6chh9bvxhm5r0qsfigmla"; depends=[checkmate coda diagis dplyr magrittr posterior ramcmc Rcpp RcppArmadillo rlang sitmo tidyr]; };
   bssn = derive2 { name="bssn"; version="1.0"; sha256="1brxbvcvqy8n9xpvp5kz47x5ps8hdqgnh6s49051qaylp95qm432"; depends=[ClusterR mvtnorm sn ssmn]; };
   bst = derive2 { name="bst"; version="0.3-23"; sha256="1wx039cl8s1j1dwjg50ivn39fckkf8mzgrm953bg02w0p0fpz5bh"; depends=[doParallel foreach gbm rpart]; };
   bsts = derive2 { name="bsts"; version="0.9.7"; sha256="00iz1rwi7z02hipmmifzzgflf16b1va3pybxgi8xk3rdwxxvjpal"; depends=[Boom BoomSpikeSlab xts zoo]; };
@@ -6685,7 +6722,7 @@ in with self; {
   bubblyr = derive2 { name="bubblyr"; version="0.1.2"; sha256="04agfwk6rmbhlfblfw1irqnv3yrp00zfn4qwy2169b7ypg8r55v2"; depends=[glue htmltools]; };
   bucky = derive2 { name="bucky"; version="1.0.6"; sha256="01rlx0m6h66y1p9k5llg17qpajjhk2vmhbpwc4i5igf5x5g4clgc"; depends=[lmtest sandwich]; };
   buffeRs = derive2 { name="buffeRs"; version="0.31"; sha256="1yr2bg2cyl8sm4g7jrjw9apj5lqhbqscw5mshs8r8niz0fkyq6lg"; depends=[sf]; };
-  buildmer = derive2 { name="buildmer"; version="2.1"; sha256="0sw8cgkx164qswsl59g4z81kgcxrajn0vzrwa8p4mbcv8q60qvip"; depends=[lme4 mgcv nlme plyr]; };
+  buildmer = derive2 { name="buildmer"; version="2.2"; sha256="1r5c38gwzihp7cn3cdm11wl10pxa3b7b1fdxwjsk16mqa0w2ivhd"; depends=[lme4 mgcv nlme plyr]; };
   buildr = derive2 { name="buildr"; version="0.1.0"; sha256="125s41d2ahww7ngli2mgl5999syjm5q5mxskv6jjrnfv7l6vhm3k"; depends=[glue magrittr readr rstudioapi stringr tibble usethis]; };
   bujar = derive2 { name="bujar"; version="0.2-9"; sha256="1hx9yrry1v3vl14y1wpfp1l3cymyqhnff86sv6b112b9cfjpwmvq"; depends=[bst earth elasticnet gbm mboost mda modeltools mpath rms survival]; };
   bulletcp = derive2 { name="bulletcp"; version="1.0.0"; sha256="1k7lw8gflih47ncz8hgsj0sxbajnkhz1k7yb7rwbdnzcki3n3jln"; depends=[assertthat dplyr mvtnorm Rdpack]; };
@@ -6711,7 +6748,7 @@ in with self; {
   bwimage = derive2 { name="bwimage"; version="1.3"; sha256="1r5l7z90q2qs92dzp78jj4gf1kg1gc85g6y5rn2z8vxjbvbc5vma"; depends=[jpeg png]; };
   bwsTools = derive2 { name="bwsTools"; version="1.2.0"; sha256="181pm9pr0ykyd3mikn6z4z5m7jkv72sisixmilijh6q3393g9pqw"; depends=[crossdes dplyr igraph magrittr rlang tidyr]; };
   bysykkel = derive2 { name="bysykkel"; version="0.3.1"; sha256="1lvqbax7dvli4265856f9667ckp9g5l4radz2cp0yk0slsjgsdpg"; depends=[glue httr jsonlite lubridate tibble]; };
-  bytescircle = derive2 { name="bytescircle"; version="1.1"; sha256="0c83d37kijcvr00pc4qqdci14cpbg6988izyjfjk1yliavyc6mwf"; depends=[]; };
+  bytescircle = derive2 { name="bytescircle"; version="1.1.1"; sha256="0wlm41mhd3hbjc6lvdymng5fqfmlwfzj0pq7bgg47n5j5269qd06"; depends=[]; };
   bzinb = derive2 { name="bzinb"; version="1.0.4"; sha256="1424lwsm2ra124h0ahbl42szbx500fqkf9ccw9k1688iwxnfg7f2"; depends=[BH Rcpp]; };
   c060 = derive2 { name="c060"; version="0.2-8"; sha256="1lazxvlgj340bvnx9h1ihnnrjm9rrq8j9qv6glpyvaw1dzb1a60m"; depends=[glmnet lattice mlegp penalizedSVM peperr survival tgp]; };
   c212 = derive2 { name="c212"; version="0.98"; sha256="0pzg239602iq56nhxfdvlk26z58lz6vvlbwsdpwhmich0by4gx4x"; depends=[coda]; };
@@ -6758,13 +6795,14 @@ in with self; {
   campfin = derive2 { name="campfin"; version="1.0.8"; sha256="06shr4p4g3cwxs1iszpvpk83k2mss6za68fqkv5pjiz44pc89v80"; depends=[dplyr fs ggplot2 glue httr lubridate magrittr purrr readr rlang scales stringdist stringr tibble]; };
   camsRad = derive2 { name="camsRad"; version="0.3.0"; sha256="06gar6qan1ka01ngjvbpcv649yvfga697mplwn1x6qnfr4ngb7cs"; depends=[httr xml2]; };
   camtrapR = derive2 { name="camtrapR"; version="2.0.3"; sha256="13zg8kx28il7rbyr2p3c1xdxx84b7shpcmgavzjqzh6wjm5bh5mh"; depends=[data_table overlap secr sp]; };
+  canadamaps = derive2 { name="canadamaps"; version="0.1"; sha256="1i3yjhr5p06k6id3gws5dzdhf4jy143brbfhi2z4srq67xlz5agl"; depends=[dplyr magrittr rlang rmapshaper sf]; };
   cancensus = derive2 { name="cancensus"; version="0.4.8"; sha256="0j4q00av0wssd0nwhgkdsyrcvicc4lial66ibfh5pyzih5i0dhpg"; depends=[digest dplyr httr jsonlite rlang]; };
   cancerGI = derive2 { name="cancerGI"; version="1.0.0"; sha256="1chkcyf9m98gbn6b3vmb1baw7kii4g5vxvg2xfi7i6wwdn8sqr65"; depends=[igraph qvalue reshape2 survival systemfit]; };
   cancerTiming = derive2 { name="cancerTiming"; version="3.1.8"; sha256="1sfi8q2f5ag7iak0sf9pmqncb89w3gnxdiwjwpivkwhr28ais4mq"; depends=[gplots LearnBayes]; };
   candisc = derive2 { name="candisc"; version="0.8-6"; sha256="17bhh3jgaq5hrlwaapwpsgk7f8a3sg2cmrjd1hgfxxx0z30a6icn"; depends=[car heplots]; };
   canprot = derive2 { name="canprot"; version="1.1.0"; sha256="0y6azzs603bf7rrz8hfql754xsdywl35846hj70f6sn1dj5wbzlk"; depends=[MASS rmarkdown xtable]; };
   cansim = derive2 { name="cansim"; version="0.3.10"; sha256="0cg6fjw7mbzhlbc83s0wv313hhvm2jc9phs6m97nigi5yy05faa2"; depends=[DBI digest dplyr httr jsonlite purrr readr rlang RSQLite rvest stringr tibble xml2]; };
-  canvasXpress = derive2 { name="canvasXpress"; version="1.35.0"; sha256="0ls5kqm233g0drlm5p0byk8k38s7h95wysg4rl9bj579cz67w4wq"; depends=[htmlwidgets httr]; };
+  canvasXpress = derive2 { name="canvasXpress"; version="1.37.0"; sha256="0c87lansdyvvwrh4mqs0hmzk1j4j1p76hx0nnvvchcma59hc4bns"; depends=[htmltools htmlwidgets httr jsonlite]; };
   canvasXpress_data = derive2 { name="canvasXpress.data"; version="1.34.2"; sha256="10fdlb1yp5x9533jdammncfrrlxzpcz9as8i0209pwzjywvxby3s"; depends=[]; };
   cap = derive2 { name="cap"; version="1.0"; sha256="1pv8hskxjbp589dn7rx80yaa1ld76x1w37bss2fyrys1p3qr78aa"; depends=[MASS multigroup]; };
   cape = derive2 { name="cape"; version="3.1.0"; sha256="0r20c5z28jyc5djymwkfzczyi3rlnj20p00jhc4dsywjcp68fx6n"; depends=[abind caTools corpcor doParallel evd foreach here igraph Matrix pheatmap propagate qtl qtl2 qtl2convert R6 RColorBrewer regress shape stringr yaml]; };
@@ -6777,7 +6815,7 @@ in with self; {
   captr = derive2 { name="captr"; version="0.3.0"; sha256="13j2nq9hm37g4h5fjdpz7kix0sqajdd7zssjfgil06ixfmnsijkx"; depends=[curl jsonlite]; };
   capushe = derive2 { name="capushe"; version="1.1.1"; sha256="1aa76ir1kp67hiz7dr60azyc71yzslshyc640fjh0fpw0sp5kwbc"; depends=[MASS]; };
   capwire = derive2 { name="capwire"; version="1.1.4"; sha256="18a3dnbgr55yjdk6pd7agmb48lsiqjpd7fm64dr1si6rpgpl4i9c"; depends=[]; };
-  car = derive2 { name="car"; version="3.0-11"; sha256="0b2l35656bi75hfvnjhzhlnrnbpjn0vv7nvny8gn65gm0rr94b5k"; depends=[abind carData lme4 maptools MASS mgcv nlme nnet pbkrtest quantreg rio]; };
+  car = derive2 { name="car"; version="3.0-12"; sha256="00kk8l71508f73kyn21is1mx6kjbrzdq3ls94c5ajhiqmvpsd6dq"; depends=[abind carData lme4 maptools MASS mgcv nlme nnet pbkrtest quantreg]; };
   carData = derive2 { name="carData"; version="3.0-4"; sha256="09270j39n4jpswxqps20b12zaj8dz4rrqpk2l2j5bnf1xzizb9nd"; depends=[]; };
   carSurv = derive2 { name="carSurv"; version="1.0.0"; sha256="0wv7lp10i4sdfqyizg77ghblp3pcp7wzhs946sm0wl6w00krav9j"; depends=[corpcor fdrtool mboost Rcpp survival]; };
   caracas = derive2 { name="caracas"; version="1.1.1"; sha256="0s97if3sgsji9qah66ha328lvsjgpdyw6wvkgmfcy5r4974qfi71"; depends=[magrittr reticulate]; };
@@ -6786,7 +6824,7 @@ in with self; {
   carcass = derive2 { name="carcass"; version="1.6"; sha256="0nhp35nxjqqmy15rf9vc0qyymy7d0v8mc84570b9nc62g5xac8xy"; depends=[arm expm lme4 MASS survival]; };
   card = derive2 { name="card"; version="0.1.0"; sha256="1api0j06fp5av5a48vnnm1wvwdcskynf0xsj9pb41njxdh9v8daf"; depends=[broom data_table dplyr generics ggplot2 ggrepel hardhat Hmisc lubridate lutz magrittr purrr readr recipes rlang sf stringr survival tibble tidyr]; };
   cardidates = derive2 { name="cardidates"; version="0.4.8"; sha256="1mfd5sgzswhs9rln2bgxx8c54z69xp8l5dfmx7jfh8jl43qkzpjf"; depends=[boot lattice pastecs]; };
-  care = derive2 { name="care"; version="1.1.10"; sha256="00h36by40v60mqzbf615a99sdfz0i42i57wybxrcm7y1y2la0da8"; depends=[corpcor]; };
+  care = derive2 { name="care"; version="1.1.11"; sha256="0897v6acxf1myncd507by8zp7aga77pschyix1m4fzgpc6z35vlm"; depends=[corpcor]; };
   careless = derive2 { name="careless"; version="1.2.1"; sha256="1zlkzrc9fw926knj6w7flv4q0w29k4aichawvprk94rk1bnrvdz5"; depends=[psych]; };
   caret = derive2 { name="caret"; version="6.0-90"; sha256="1g36m06hp2fxxwv155bwbqlf97xhcia1lmg3axg6d74kgpns8lg8"; depends=[e1071 foreach ggplot2 lattice ModelMetrics nlme plyr pROC recipes reshape2 withr]; };
   caretEnsemble = derive2 { name="caretEnsemble"; version="2.0.1"; sha256="127gqd23xjis62irqviihzk80zydrdplwh65zcmd7ng29ih5wnby"; depends=[caret data_table digest ggplot2 gridExtra lattice pbapply plyr]; };
@@ -6798,7 +6836,7 @@ in with self; {
   carrier = derive2 { name="carrier"; version="0.1.0"; sha256="0bqnwnnjqjk9q0lxq6kkz9s75ss10lfyyywyyi24m8wppxpw1vqc"; depends=[pryr rlang]; };
   cartograflow = derive2 { name="cartograflow"; version="1.0.3"; sha256="09n3pgm70frrx9li1djrwkf4lzcq9c1xjs037vmsb1as0xvd19a1"; depends=[dplyr ggplot2 igraph maptools plotly reshape2 rgeos rlang sf sp]; };
   cartogram = derive2 { name="cartogram"; version="0.2.2"; sha256="0kz8hwdr5n8llkylwaixnb66f4pzaxxniz57spxhqizmi6qay7yd"; depends=[packcircles sf]; };
-  cartogramR = derive2 { name="cartogramR"; version="1.0-3"; sha256="1b3ig060jaaif882wm3qg70y8yl590aws5lcd90fzmryllc9xvgd"; depends=[data_table sf]; };
+  cartogramR = derive2 { name="cartogramR"; version="1.0-5"; sha256="0rw7501p8hrgml3ih4vaqm5rcyzml2anxz0i4kjch20i2wcbl82c"; depends=[data_table sf]; };
   cartography = derive2 { name="cartography"; version="3.0.1"; sha256="1ginq160ag0sv5xfiqc5a5vizsqvl3maw61yskwhfnjb2lcgk2yg"; depends=[classInt curl png raster Rcpp rgeos sf slippymath sp]; };
   cartools = derive2 { name="cartools"; version="0.1.0"; sha256="0gc5502373f0c2m2rh6awvyfqrg1wx1f341dm2byk9znba887lgs"; depends=[animation devtools dplyr gapminder ggplot2 knitr rlist rmarkdown roxygen2 sde shiny tidyverse usethis]; };
   carx = derive2 { name="carx"; version="0.7.1"; sha256="1qyqsj6pfzzqyaj6076zvgcimhl4cll6sxfb6aigm02rwfkq5gvh"; depends=[matrixStats mvtnorm nlme tmvtnorm xts zoo]; };
@@ -6870,7 +6908,7 @@ in with self; {
   cchs = derive2 { name="cchs"; version="0.4.2"; sha256="18zk50g7rw8cb09fczpcdgzjl1b06rgf6lwy99sg7nq4scnzgzm8"; depends=[survival]; };
   cchsflow = derive2 { name="cchsflow"; version="2.0.0"; sha256="1r8m072f6idmmirwgr71llcka6f254jzhcs53yx6fxzncp5l2g6n"; depends=[dplyr haven magrittr sjlabelled stringr]; };
   ccid = derive2 { name="ccid"; version="1.0.0"; sha256="1wzz8bydcy9x7rnrvvircd8lkrgx0p7x2q5hihxslz3siy1jjgaj"; depends=[gdata GeneNet hdbinseg IDetect]; };
-  cclust = derive2 { name="cclust"; version="0.6-22"; sha256="1wyiwq16zyvc0vqbap1y4zfkvlgzwzjrx4vmrjhzlqxci8jryjbs"; depends=[]; };
+  cclust = derive2 { name="cclust"; version="0.6-23"; sha256="00p4f558117p48jmkr2wh9smp58qkk4cx2gc19lm5krskm52nh71"; depends=[]; };
   ccmEstimator = derive2 { name="ccmEstimator"; version="1.0.0"; sha256="1z53i7d2x1g93zskcyj93hxjyrvc9sjqmq887zaflwf22ikxvm6p"; depends=[]; };
   ccmReportR = derive2 { name="ccmReportR"; version="0.1.0"; sha256="0jxxz26f0azp9xafqilvbbfhzn4ys8q4pf4c8bbnmwwbckmjajxm"; depends=[dplyr httr jsonlite keyring lubridate purrr rlang tibble]; };
   ccmm = derive2 { name="ccmm"; version="1.0"; sha256="0855nr74xxpy7in2vrw15g8pv7nm1374irc1c5hikr5hadk5pf8v"; depends=[MASS]; };
@@ -6893,6 +6931,7 @@ in with self; {
   cdmTools = derive2 { name="cdmTools"; version="1.0.0"; sha256="1f131ix3b9np3g81yn172giglrahg9k67c3l7i5kpscfp4qp844z"; depends=[combinat GDINA ggplot2 GPArotation psych sirt]; };
   cdom = derive2 { name="cdom"; version="0.1.0"; sha256="00xqqqhskjlkz8ii7kqyabxk8995w7g9jiz1isyqjpwg8nsa3x28"; depends=[broom ggplot2 minpack_lm tidyr]; };
   cdparcoord = derive2 { name="cdparcoord"; version="1.0.1"; sha256="0ym2ypw4bsvmx9q4vskrq4pdd92y47vs8pay8san40rgzwqr2agb"; depends=[data_table freqparcoord partools plotly]; };
+  cdrcR = derive2 { name="cdrcR"; version="0.0.1"; sha256="1z6z27rnqg07i5j09q0xwy9bvwci1vc2vijp6r733diivyhcraiv"; depends=[dplyr httr jsonlite magrittr purrr rjson rlang rlist sf tidyr tidyselect urltools]; };
   cds = derive2 { name="cds"; version="1.0.3"; sha256="1h34k96h7ajkaqsw4dlqri63hrbnshaqwrdl74wlgycdlbvrqj05"; depends=[clue colorspace copula limSolve MASS]; };
   ceRtainty = derive2 { name="ceRtainty"; version="1.0.0"; sha256="01wgvjpxqwhgh6vx9vbmiv4d88bps790l6ij3gw5w69hbrrd9ixi"; depends=[dplyr RColorBrewer tidyr]; };
   cec2013 = derive2 { name="cec2013"; version="0.1-5"; sha256="07i2vp1x3qaw5di5vr5z70d47hh9174pjckjlhgv0f2w97slwc1i"; depends=[]; };
@@ -6927,6 +6966,7 @@ in with self; {
   cepreader = derive2 { name="cepreader"; version="1.2-0"; sha256="0ip1xxs0frcg08fnfxsxr39ldqgb2hmdrzh1lzdrbmr5ja4igf0x"; depends=[Matrix]; };
   ceramic = derive2 { name="ceramic"; version="0.6.0"; sha256="0n0l1b7gb05kqjrh696faq868q3nbwlg34y6wgr0w205kdq6qs17"; depends=[curl dplyr fs glue jpeg magrittr png purrr rappdirs raster reproj rlang slippymath sp spex tibble]; };
   cernn = derive2 { name="cernn"; version="0.1"; sha256="0gz2x20pgsiq85hwkkpg4s1cdlw9plygx0446djc7qsymp469p2w"; depends=[]; };
+  cesR = derive2 { name="cesR"; version="0.1.0"; sha256="1sw5is461mrylmd8f9qzps368wilrgy41k6cmig445261zzqkikr"; depends=[dplyr haven labelled readr tidyr]; };
   ceser = derive2 { name="ceser"; version="1.0.0"; sha256="1k2k2gykyajlahl7xvpxdla0ghapdxl24yi575pgq2421fpxq2i4"; depends=[dplyr lmtest magrittr purrr tibble]; };
   cetcolor = derive2 { name="cetcolor"; version="0.2.0"; sha256="0kygdcr9ldanr0z4qpygwh0padki7s2ad0j6myky601g4228z79q"; depends=[]; };
   ceterisParibus = derive2 { name="ceterisParibus"; version="0.4.2"; sha256="0hxklydsqb69y5sv2hanp5ja9k0063swf5si1j6gcj15lp7phpif"; depends=[DALEX ggplot2 gower knitr]; };
@@ -6935,6 +6975,7 @@ in with self; {
   cfda = derive2 { name="cfda"; version="0.9.9"; sha256="07k531vp2chsrkw5d0iws3jg23yz0gni0bjn03kr6irw89r4py9p"; depends=[diagram fda ggplot2 mgcv msm pbapply]; };
   cfdecomp = derive2 { name="cfdecomp"; version="0.4.0"; sha256="0g61gpihk5kbbrqzn15fqjv3bawsq1vq3sdssbzs5j96afmf2aq8"; depends=[]; };
   cffdrs = derive2 { name="cffdrs"; version="1.8.18"; sha256="15bl1sfm2yz897b5w0x0kvyf2z3rx32n436gsnsx5gd32v5v18w1"; depends=[data_table doParallel foreach geosphere raster rgdal]; };
+  cffr = derive2 { name="cffr"; version="0.1.1"; sha256="1x902fdrw0azcsryjxkwkv7b0cjc9nw781mamf7w4agq7nqhv2cy"; depends=[crayon desc jsonlite jsonvalidate yaml]; };
   cfid = derive2 { name="cfid"; version="0.1.2"; sha256="0hy2vq3izj4938sgzmgpp4m9d49hpiqh9jd1wjf5g54x3v1yzy89"; depends=[]; };
   cfma = derive2 { name="cfma"; version="1.0"; sha256="006z5g3rqpg44jqdf6ivyxr47sxm5cd9cqhayfi8qk73xx5w4lv9"; depends=[]; };
   cfmortality = derive2 { name="cfmortality"; version="0.3.0"; sha256="0dgwv89fzylznc6jr41ixzfs1gfs3np4gf46bk6pcd09l1kbx3lc"; depends=[]; };
@@ -6950,6 +6991,7 @@ in with self; {
   cgmanalysis = derive2 { name="cgmanalysis"; version="2.7.2"; sha256="0rjs86qyqsz9x84h4lvv9kwam8aapcfhjkbsr8c3d5faddnh5vh6"; depends=[ggplot2 lubridate pastecs pracma readr readxl XML zoo]; };
   cgmquantify = derive2 { name="cgmquantify"; version="0.1.0"; sha256="11pw1layzx9a8qy7n06nyc59mi5r07krhxw6hhybbqkdglzp511w"; depends=[dplyr ggplot2 hms magrittr tidyverse]; };
   cgraph = derive2 { name="cgraph"; version="6.0.1"; sha256="0hmp07iz7ya3j8jaghm4pa0b84lsinc48rsibbh47sd3i6pkxfik"; depends=[]; };
+  cgrcusum = derive2 { name="cgrcusum"; version="0.1.0"; sha256="1pmni0bw7yp8alqyd88ysl858jkp926my2c5g6z31izzyih29s0z"; depends=[ggplot2 survival]; };
   cgwtools = derive2 { name="cgwtools"; version="3.3"; sha256="1dl9ghwfzjrl5pd6izy4c5qyfq2s8ywnqh97y1bhwmcw2qwb4ci6"; depends=[gmp]; };
   ch = derive2 { name="ch"; version="0.1.0.2"; sha256="1ryh2xr1ix4qznq1svi4gdr4qy6v6rg597z2zl6zw32s2xq6ssx6"; depends=[clipr crayon ggplot2 magrittr MASS polynom pracma Ryacas]; };
   chameleon = derive2 { name="chameleon"; version="0.2-0"; sha256="1q631l40gdknbv7dzvzgfdi0mx7rs4hlfkimhvf6li6ajmmh3sa5"; depends=[clue ggplot2 umap]; };
@@ -6988,7 +7030,7 @@ in with self; {
   chest = derive2 { name="chest"; version="0.3.5"; sha256="0jmihq8p6gxyxgmpdgwmnhl98s38pqzdzdqzqiy54zyqgd69plh8"; depends=[broom dplyr forestplot generics ggplot2 MASS speedglm survival tibble]; };
   chi = derive2 { name="chi"; version="0.1"; sha256="1y91mwahj4j2wz0y5k5vdpq7ygq834h8jkn37n74lqnwvv1968rr"; depends=[]; };
   chi2x3way = derive2 { name="chi2x3way"; version="1.1"; sha256="13qc8sigiw4gcxk8y50q7yfgzbssjyl41fizzjqzcp3p14kpsmzw"; depends=[]; };
-  chicane = derive2 { name="chicane"; version="0.1.7"; sha256="0gaq1icwbcn1lzj92qhmai2cwvkm26m8srw988cb6xd51v819v3l"; depends=[bedr data_table doParallel foreach gamlss gamlss_tr iterators knitr MASS rmarkdown]; };
+  chicane = derive2 { name="chicane"; version="0.1.8"; sha256="0963r5jzyjihidh18ny9nqkim00bys3psdgrxhbah43bbl0kx43r"; depends=[bedr data_table doParallel foreach gamlss gamlss_tr iterators knitr MASS rmarkdown]; };
   chickn = derive2 { name="chickn"; version="1.2.3"; sha256="1d3xl2pigan6vb29nk2ks04dsl5vy16cv9z7miskmhcqcx2wm1qb"; depends=[bigstatsr doParallel doRNG foreach MASS mvnfast nloptr pracma Rcpp RcppArmadillo RcppParallel Rdpack rmio zipfR]; };
   childdevdata = derive2 { name="childdevdata"; version="1.1.0"; sha256="016x6xhqq1mfqlj9m5qv63k639xnqnrf5h6rdcyaa8sxn7nv34zm"; depends=[]; };
   childesr = derive2 { name="childesr"; version="0.2.2"; sha256="1r4s6klwpdx1w17b611lqf6q9wpqknvqc6890jfav740dg8icl9z"; depends=[DBI dbplyr dplyr jsonlite magrittr purrr RMySQL]; };
@@ -7029,7 +7071,7 @@ in with self; {
   cicerone = derive2 { name="cicerone"; version="1.0.4"; sha256="1z3i720970kmczg01wxwbyqwd9zby69lchw3pgqwpn2bjr66jimh"; depends=[assertthat R6 shiny]; };
   cif = derive2 { name="cif"; version="0.0.9"; sha256="1rs44di1qjf6j89xg2x0a3s3lsnqxwnz0wcnys8xp68q198gipb6"; depends=[lubridate]; };
   cifti = derive2 { name="cifti"; version="0.4.5"; sha256="092334lcpkzv52bg53hzx64dnrwq67f3p9fzwchmafx1l46xrqx9"; depends=[gifti oro_nifti R_utils xml2]; };
-  ciftiTools = derive2 { name="ciftiTools"; version="0.6.1"; sha256="15r7h1z4ik0qp3rcssnpm66q5sgb35pjhimyq22447r6a51cz6c2"; depends=[fields gifti oro_nifti RColorBrewer rgl RNifti viridisLite xml2]; };
+  ciftiTools = derive2 { name="ciftiTools"; version="0.7.0"; sha256="1i3wbbd20vaa4p0xqyxpz8ayacn88a9b7cfr4m6ckxmdbz2jwlsj"; depends=[fields gifti oro_nifti RColorBrewer rgl RNifti viridisLite xml2]; };
   cimir = derive2 { name="cimir"; version="0.4-1"; sha256="0r8fmvqcihxsj0w1g2xm02wwqcgrwadbl5n1dzksw8zpcjfw7fkn"; depends=[curl dplyr glue jsonlite purrr rlang stringr tidyr]; };
   cin = derive2 { name="cin"; version="0.1"; sha256="1pwvy5nh5nrnysfqrzllb9fcrpddqg02c7iw3w9fij2h8s2v6kq5"; depends=[]; };
   cinaR = derive2 { name="cinaR"; version="0.2.1"; sha256="0i0fkh5j494fy9zy0p67ashqsa7vw3jhf092sw3nfyvmb7k4spnj"; depends=[ChIPseeker DESeq2 dplyr edgeR fgsea GenomicRanges ggplot2 ggrepel limma pheatmap preprocessCore RColorBrewer sva TxDb_Hsapiens_UCSC_hg19_knownGene TxDb_Hsapiens_UCSC_hg38_knownGene TxDb_Mmusculus_UCSC_mm10_knownGene writexl]; };
@@ -7037,7 +7079,6 @@ in with self; {
   cinterpolate = derive2 { name="cinterpolate"; version="1.0.0"; sha256="1aw6hs41xin2hhgmi4pr5510v4sn6x735lachpc5gpbxch5h3f82"; depends=[]; };
   cir = derive2 { name="cir"; version="2.2.0"; sha256="0wfv7iv1z9xcp0icjr9agrl7j6z2z3d1wp85sd5dyzp9gbfjsinm"; depends=[]; };
   circacompare = derive2 { name="circacompare"; version="0.1.1"; sha256="15vpnh20wni2wmp86xql9737kbxbi28s9a4pi3rihr1w5mcgqfaj"; depends=[ggplot2]; };
-  circglmbayes = derive2 { name="circglmbayes"; version="1.3.0"; sha256="0i5aacr7vqznm3rhlznc02xjzjkjliadxhhvsmf8wb2cvivz0wir"; depends=[BH coda ggplot2 Rcpp RcppArmadillo reshape2 shiny]; };
   circle = derive2 { name="circle"; version="0.7.1"; sha256="04gb3575sdlhh5z6bkam8sj2wg9npgq0b9572qm2dlrspmjqvcd4"; depends=[cli httr jsonlite]; };
   circletyper = derive2 { name="circletyper"; version="1.0.1"; sha256="11jqcz0faxd7g50nmxa58c3gyaysvzcrgh6yalpxapz06md17wq5"; depends=[shiny]; };
   circlize = derive2 { name="circlize"; version="0.4.13"; sha256="16rnqlkgzhnm69y70k9fiz8vvwlm5dyng04hlxqvvaxix3wdpfkc"; depends=[colorspace GlobalOptions shape]; };
@@ -7049,10 +7090,12 @@ in with self; {
   citbcmst = derive2 { name="citbcmst"; version="1.0.4"; sha256="1zkd117h9nahwbg5z6byw2grg5n3l0kyvv2ifrkww7ar30a2yikl"; depends=[]; };
   citccmst = derive2 { name="citccmst"; version="1.0.2"; sha256="1b7awn1hjckxisfdi4ck697hwd4a5sqklwi7xzh6kgqhk9pv7vjn"; depends=[]; };
   citecorp = derive2 { name="citecorp"; version="0.3.0"; sha256="0lqxa6qfysrk3rpg9fnsxhrfsd0qsbfxhc3b43090fhlxq9gk3wm"; depends=[crul data_table fauxpas jsonlite]; };
+  citrus = derive2 { name="citrus"; version="1.0.1"; sha256="0ca91qff280k3vc837za3670plgrlfxqy6l7y8hhiknb68ja5yiy"; depends=[clustMixType dplyr GGally ggplot2 RColorBrewer rlang rpart rpart_plot rpart_utils stringr tibble treeClust]; };
   ciu = derive2 { name="ciu"; version="0.5.0"; sha256="01fg5awbf35qparry0z3kl60kww8rbaqgi2b81vmbl77bls0my7l"; depends=[crayon ggplot2 Rcpp]; };
   ciuupi = derive2 { name="ciuupi"; version="1.1.0"; sha256="0czfmmf62p1vml24s87pdwv52spqycchpkqzwk8vyd4n1z27r5s2"; depends=[functional nloptr pracma statmod]; };
   ciuupi2 = derive2 { name="ciuupi2"; version="1.0.1"; sha256="04x02qmqqyrc4h4z4mpl4zn5vr9y28k6j6n30fbr9q238zd543db"; depends=[functional nloptr pracma PreciseSums statmod]; };
   civis = derive2 { name="civis"; version="3.0.0"; sha256="12q96bj21832zqqbisfxmnpqw7w72v350lyf7cpjgr7cq7b51brd"; depends=[future httr jsonlite memoise]; };
+  cjbart = derive2 { name="cjbart"; version="0.2.0"; sha256="04zcy1051q9kgvjf9y3a952qz07r2syw80asndg9hbwx0jbvvpqm"; depends=[BART ggplot2 randomForestSRC Rdpack rlang tidyr]; };
   cjoint = derive2 { name="cjoint"; version="2.1.0"; sha256="1bs380ji9vsc1d77wqhl0ij9xblww3g9x3hiwpcpz26wihqcx7ac"; depends=[DT ggplot2 lmtest Matrix sandwich shiny shinyBS shinyjs survey]; };
   ckanr = derive2 { name="ckanr"; version="0.6.0"; sha256="1fhyyyklfsi1zva9vg397x8p0zbnchajkjb1kcfm4f861xq60j16"; depends=[crul DBI dbplyr dplyr jsonlite magrittr]; };
   clValid = derive2 { name="clValid"; version="0.7"; sha256="18aiyjhnh5mfdxbzns4cy0r8bymfikhwkybpn4g04qhli5ls8z83"; depends=[class cluster]; };
@@ -7078,7 +7121,7 @@ in with self; {
   cleaner = derive2 { name="cleaner"; version="1.5.3"; sha256="0glrymsfqh3lq9n0xr202i30jm6lqwgcj0r8czy0a3066qh7hjbm"; depends=[backports crayon knitr pillar rlang vctrs]; };
   cleanerR = derive2 { name="cleanerR"; version="0.1.1"; sha256="0rghn8rx7dj5clmc1dqvqwfm9kiva04k9gxsjjga3109l4jcpg63"; depends=[data_table plyr]; };
   cleangeo = derive2 { name="cleangeo"; version="0.2-4"; sha256="0yynf5d2lbz6329brzcnjm91rg6is60h2xlavz73lfxx3v549dy3"; depends=[maptools rgeos sp]; };
-  cleanr = derive2 { name="cleanr"; version="1.3.3"; sha256="1vd50zb12s1379ln2zpg9acz50vw6xdhi11sy2zff3vpxdxly22f"; depends=[checkmate fritools pkgload rprojroot]; };
+  cleanr = derive2 { name="cleanr"; version="1.3.4"; sha256="0fdf8rsr2krkshsnzwszsrxrqif7v1gpj1dpydynpyx1szdgz4li"; depends=[checkmate fritools pkgload rprojroot]; };
   clere = derive2 { name="clere"; version="1.2.0"; sha256="0qc26ycycxphrbksk7jb1m6vh66a2zsnw8k4jnazs23sqdg24im9"; depends=[Rcpp RcppEigen]; };
   clespr = derive2 { name="clespr"; version="1.1.2"; sha256="1993kd70w48a110im47vcpll0c6nfrm7m33r6l8rzgwnpsmcls8g"; depends=[AER clordr doParallel foreach magic MASS pbivnorm survival]; };
   clevr = derive2 { name="clevr"; version="0.1.1"; sha256="077qhqfzcy1ciar70df7q98ms003b9mnqgji1nxkx5ncw9hdkzd4"; depends=[BH Matrix Rcpp]; };
@@ -7087,7 +7130,8 @@ in with self; {
   cliapp = derive2 { name="cliapp"; version="0.1.1"; sha256="0v62lbcsja0xmlpqcps370n5c7bk4j2n8pwh9xyif5s4wpf82qz1"; depends=[cli crayon fansi glue prettycode progress R6 selectr withr xml2]; };
   clickR = derive2 { name="clickR"; version="0.8.0"; sha256="0j8hl5cgdm4j4h3x3h7fp6w3xr8p350icvmf123z56f6fkj6c22z"; depends=[beeswarm stringdist]; };
   clickstream = derive2 { name="clickstream"; version="1.3.1"; sha256="0z1yy5lr9m5x9ybimjy3f6kn490abdi038xi0qw7ny80f1ca6ry7"; depends=[arules ClickClust data_table ggplot2 igraph linprog MASS plyr reshape2 Rsolnp]; };
-  clifford = derive2 { name="clifford"; version="1.0-2"; sha256="17br7p4zj1cjf1nbwbk0a2jjxj589qgvlnzi6yp4dqlf2g0w01z6"; depends=[BH Rcpp]; };
+  cliff = derive2 { name="cliff"; version="0.1.2"; sha256="0d7aswvsqlyai3rxxbfy08cs4qbi9fjjls62y1p95bmnhq1b3bwf"; depends=[ellipsis processx rlang]; };
+  clifford = derive2 { name="clifford"; version="1.0-5"; sha256="1n7wra4z73nxv2hkdl65iwfl9cr3wn7sa6wpvfg1c7yp72kskbp0"; depends=[BH disordR magrittr mathjaxr partitions Rcpp]; };
   clifro = derive2 { name="clifro"; version="3.2-5"; sha256="1p2xy5r9axkj8yk6ywaq0w5i00bdfm15drjz227nx8p4vd3q6si8"; depends=[ggplot2 httr lubridate magrittr RColorBrewer reshape2 rvest scales stringr xml2]; };
   clikcorr = derive2 { name="clikcorr"; version="1.0"; sha256="0zdnbcl5q293mmm6pbn4ri7p1q6z6sff74axsb3nyd153v2xamr5"; depends=[mvtnorm]; };
   climaemet = derive2 { name="climaemet"; version="1.0.0"; sha256="19i89274m7ybnlzgm5bgw6nwiwicc3fd2clmgiqklr23sq8zvn6w"; depends=[dplyr ggplot2 httr jsonlite lubridate rappdirs readr rlang tibble tidyr]; };
@@ -7150,23 +7194,25 @@ in with self; {
   clusterhap = derive2 { name="clusterhap"; version="0.1"; sha256="1ic6588mqp146jsvrxlxk449zw4n81xixgrny9r29497z7hg5a1m"; depends=[]; };
   clustering_sc_dp = derive2 { name="clustering.sc.dp"; version="1.0"; sha256="0cppka7613cbjjf1q2yp6fln511wbqdhh8d4gs6p0fbq379kzmvc"; depends=[]; };
   clustermole = derive2 { name="clustermole"; version="1.1.0"; sha256="15v3fspp82z7vh5f1ym89mrmajl8b7qymwr1fqa6kfi982dzhrar"; depends=[dplyr GSEABase GSVA magrittr rlang singscore tibble tidyr]; };
-  clustermq = derive2 { name="clustermq"; version="0.8.95.1"; sha256="1777c1xg15p6dm5grz64yd35nbhmj914dyxpymv6hl25g740c2ky"; depends=[narray progress purrr R6 Rcpp]; };
+  clustermq = derive2 { name="clustermq"; version="0.8.95.2"; sha256="1p5jy4mq70wh8rrkppshjy9pksw06k9l2d65c6sj1ykhvqiwcpcc"; depends=[narray progress purrr R6 Rcpp]; };
   clusternomics = derive2 { name="clusternomics"; version="0.1.1"; sha256="05nkw6h2dvky07fj50myzw5xlkqyiflbn4vwqw8a1q2idv4awi7b"; depends=[magrittr MASS plyr]; };
   clustertend = derive2 { name="clustertend"; version="1.5"; sha256="194acf2pd71jxyyjj7ri9mpnx094zziwmq6w9lfclifrnkqv6ra9"; depends=[]; };
-  clustrd = derive2 { name="clustrd"; version="1.3.7-2"; sha256="0j0nmqc9q9djg824g89z27xizdy1jdsygz1gc0r0mrzdd3dyk2ya"; depends=[ca cluster corpcor dplyr fpc GGally ggplot2 ggrepel plyr rARPACK tibble]; };
-  clustree = derive2 { name="clustree"; version="0.4.3"; sha256="0lxydy2f83qqd5dhlp2l546jax759l43b29j6g82079yzg1szwsz"; depends=[checkmate dplyr ggplot2 ggraph ggrepel igraph rlang tidygraph viridis]; };
+  clustra = derive2 { name="clustra"; version="0.1.5"; sha256="1aw1jw8lq8qpsfgzkpjp00xhmk7rl99yc43jvjc8c5sp5bibcll0"; depends=[data_table mgcv MixSim]; };
+  clustrd = derive2 { name="clustrd"; version="1.3.9"; sha256="0w644h2sr0nwx3qh15qbmbrnfzmf3rzv9ka7nfskq2si4yrj25z4"; depends=[ca cluster corpcor dplyr fpc GGally ggplot2 ggrepel plyr rARPACK tibble]; };
+  clustree = derive2 { name="clustree"; version="0.4.4"; sha256="0vwmicajl7c0rmjdmf4f857fii0xrxz25vjkn888svlsikw00qbs"; depends=[checkmate dplyr ggplot2 ggraph ggrepel igraph rlang tidygraph viridis]; };
   clustringr = derive2 { name="clustringr"; version="1.0"; sha256="07f0ywpkf8igic7ijvvrjlngq3smjcv9nqnah41fp6wfgvh49ifq"; depends=[assertthat dplyr forcats ggplot2 ggraph igraph magrittr rlang stringdist stringi stringr tidygraph]; };
   clustsig = derive2 { name="clustsig"; version="1.1"; sha256="0n5nf712vsa8zb0c2lv4gjqsgva62678vjngr9idgswb73shxm8v"; depends=[]; };
   clustvarsel = derive2 { name="clustvarsel"; version="2.3.4"; sha256="0hzvfcjs1k13j695jx6m0fgmcxy284gp4d59b7zmnvqib153x89x"; depends=[BMA foreach iterators Matrix mclust]; };
   clv = derive2 { name="clv"; version="0.3-2.2"; sha256="072jn3xh6ii7vfp0gx03k1hiafnla1lkyn5hpj17nmqc0jvzp683"; depends=[class cluster]; };
   cmR = derive2 { name="cmR"; version="1.0.3"; sha256="0ml7ip9zxljpgzksbxd15q890q062nf0q81d272dhiizxvr4a0cn"; depends=[fields Matrix]; };
-  cmaRs = derive2 { name="cmaRs"; version="0.1.0"; sha256="08fq9qfgx812d5m0m4amq2k0w5w2cbv7ljpfgjwdqhshix3dxvis"; depends=[AUC earth Matrix Rmosek Ryacas0 stringr]; };
+  cmaRs = derive2 { name="cmaRs"; version="0.1.1"; sha256="0y9p1r58q45adsb60fvdvqn6m0a6ad32vl15fsy9l83r7aimcwci"; depends=[AUC earth Matrix Rmosek Ryacas0 stringr]; };
   cmaes = derive2 { name="cmaes"; version="1.0-11"; sha256="1hwf49d1m660jdngqak9pqasysmpc4jcgr8m04szwbyzyy6xrm5k"; depends=[]; };
   cmaesr = derive2 { name="cmaesr"; version="1.0.3"; sha256="03zx2nrw24wmmjjpyh8pswasjjq0amf0g375fm2b3s111dx8fbj9"; depends=[BBmisc checkmate ggplot2 ParamHelpers smoof]; };
   cmce = derive2 { name="cmce"; version="0.1.0"; sha256="0d52ci906zbd4q43qylcyw93acxh7f20jn3r0k74ynyy47131dnd"; depends=[]; };
   cmdfun = derive2 { name="cmdfun"; version="1.0.2"; sha256="1pbcq7hi2lcmqnghmy3q2fsk0c9fy5m0637acyzmc096fxbx723j"; depends=[magrittr purrr R_utils rlang testthat usethis]; };
   cmenet = derive2 { name="cmenet"; version="0.1.1"; sha256="0f7bci6nn63q243i7wvhr9mqlf64gw8w042nc1lqb986p7zfxihk"; depends=[glmnet hierNet MASS Rcpp RcppArmadillo sparsenet]; };
-  cmfrec = derive2 { name="cmfrec"; version="3.2.2-1"; sha256="1vsjgxlh31ja2hy2ji0dhng7ml1zns4n517vy4bw628f9hnxysgv"; depends=[]; };
+  cmfrec = derive2 { name="cmfrec"; version="3.2.2-2"; sha256="0s75scl7jr7ginsi3fpvip919kd1zwchp5gj9x87qgw5zimqyjkp"; depends=[]; };
+  cml = derive2 { name="cml"; version="0.0.1"; sha256="18zzb1vldgn61jlds7p79wr13jl13q9icfiraj33kwdmx3q6yh2c"; depends=[MASS vegan]; };
   cmm = derive2 { name="cmm"; version="0.12"; sha256="0q6hs56hhi9vaanx7i7gg7ncv0h29lndla66g9chzmh3lchq3r20"; depends=[]; };
   cmmr = derive2 { name="cmmr"; version="0.1.2"; sha256="0nik1pzd1rckalvn7xh6s699kkdjnra3q3bn5x16c1lmpz5bp2s4"; depends=[httr progress RJSONIO]; };
   cmna = derive2 { name="cmna"; version="1.0.5"; sha256="161qc7q88ajm3l62bq03lpf35bdii1w1d111085zvs3hrf09iybw"; depends=[]; };
@@ -7179,7 +7225,7 @@ in with self; {
   cms = derive2 { name="cms"; version="0.1.0"; sha256="0m3cxvw40nyr1jpdkhg5nbms16hkzj0mrx5nl39x1l42cx2hcjrl"; depends=[assertthat dplyr magrittr readr rlang rvest xml2]; };
   cmsaf = derive2 { name="cmsaf"; version="3.3.0"; sha256="0k4bdimykhc224m81mvr4ld5bffixgxdwg3qk5gdx58b01a2f0xg"; depends=[cmsafops cmsafvis colorspace colourpicker data_table fields FNN mapproj maps maptools ncdf4 R_utils raster rworldxtra SearchTrees shiny shinyFiles shinyjs shinythemes sp xml2]; };
   cmsafops = derive2 { name="cmsafops"; version="1.2.1"; sha256="1gygd4nb05wsgbzmz10ly93kpy3w8jhcn7n6qgsh9jws6r9axvva"; depends=[assertthat fields FNN ncdf4 progress rainfarmr raster SearchTrees sp trend]; };
-  cmsafvis = derive2 { name="cmsafvis"; version="1.1.7"; sha256="1qbdh8qwi89xmzj6rrcfvnl6g2w0p1rjsvgcmwkra4fiiksrpani"; depends=[animation assertthat cmsafops colorspace countrycode fields gridExtra mapproj maps maptools ncdf4 png progress raster rasterVis RColorBrewer rgdal rworldxtra SearchTrees sp yaml]; };
+  cmsafvis = derive2 { name="cmsafvis"; version="1.1.8"; sha256="001nhzg9vh2airgdja0f54hbh3hrsmwrfvxawfwck1ll93b810j7"; depends=[animation assertthat cmsafops colorspace countrycode fields gridExtra mapproj maps maptools ncdf4 png progress raster rasterVis RColorBrewer rgdal rworldxtra SearchTrees sp yaml]; };
   cmstatr = derive2 { name="cmstatr"; version="0.9.1"; sha256="18kcrnbi3r8n8d7s8cl55r2n41cv4q4h6g8lf4pdkv06axg3l7ad"; depends=[dplyr generics ggplot2 kSamples MASS purrr rlang tibble]; };
   cmvnorm = derive2 { name="cmvnorm"; version="1.0-6"; sha256="1wf23w9gxrrgw7j740r381xrss09inzd7mrg6g7wz883c9madbfn"; depends=[elliptic emulator]; };
   cna = derive2 { name="cna"; version="3.2.0"; sha256="01072i679n9pkvzcbnbqy8nrcs8lbghlf6wx17pf2shmrfvxhvcl"; depends=[car Matrix matrixStats Rcpp]; };
@@ -7225,7 +7271,7 @@ in with self; {
   cofeatureR = derive2 { name="cofeatureR"; version="1.1.1"; sha256="1awfrlnbpw9ivfvaahznx6dx5jp8ln0154vh2pznp520q59h1mbs"; depends=[dplyr ggplot2 lazyeval tibble]; };
   coffee = derive2 { name="coffee"; version="0.1.1"; sha256="06v19i6karcn9a1sminfi2k0c1zzv9m5dm8qfyqjqcbc78yvwif0"; depends=[IntCal]; };
   coga = derive2 { name="coga"; version="1.1.1"; sha256="0128x4qmln1ks7cqd5n22aw41f097lw785lw4ca80nyn2bz5jmqk"; depends=[cubature Rcpp RcppGSL]; };
-  cogmapr = derive2 { name="cogmapr"; version="0.9.1"; sha256="1iz776avw05a0lcna78fycixacby4bjf8ar1jazsf34yss6zka23"; depends=[car dplyr ggplot2 graph magrittr Rgraphviz tidyr]; };
+  cogmapr = derive2 { name="cogmapr"; version="0.9.2"; sha256="1s0f72id590880rhgwspyav11sghxn6havygwi12swylb3q3r73m"; depends=[dplyr ggplot2 graph magrittr Rgraphviz tidyr]; };
   cognitoR = derive2 { name="cognitoR"; version="1.0.2"; sha256="1pz4wk7vdc1nhm76kz912hyyc9c408qsldfr9dygqvran4xvqm9g"; depends=[base64enc config dplyr httr jsonlite paws shiny shinyjs yaml]; };
   cohorts = derive2 { name="cohorts"; version="1.0.0"; sha256="1v3knxnsacyf04v2dgd0g57z709279x1s8dqsja948y381p1dar9"; depends=[data_table dplyr dtplyr magrittr tibble tidyr zoo]; };
   cohorttools = derive2 { name="cohorttools"; version="0.1.4"; sha256="1zpf3qgzkn34wc36r89ymzfx4fvlgl7x1yiwdwzzd20xv3nx2b5h"; depends=[cmprsk DiagrammeR DiagrammeRsvg Epi ggplot2 rsvg survival]; };
@@ -7353,7 +7399,7 @@ in with self; {
   configural = derive2 { name="configural"; version="0.1.4"; sha256="1vi6xczqlrzhrfv418wlvqiv69kap4awlxkjpgi7b1ix5ayc8mq8"; depends=[]; };
   confinterpret = derive2 { name="confinterpret"; version="1.0.0"; sha256="0qldaqpx7kpk71zfwv465jrscwzc9w3xfv52i4h01k9aw3q6m8ja"; depends=[]; };
   confintr = derive2 { name="confintr"; version="0.1.1"; sha256="18nkgcpl43hih7l04rxv21pil48h780wjna3vm2763ffkilkk5cl"; depends=[boot]; };
-  conflicted = derive2 { name="conflicted"; version="1.0.4"; sha256="0xp04cdvmp3b1phazhmjqn0vmax1b2218xsb5854ffv43m7qvrra"; depends=[memoise rlang]; };
+  conflicted = derive2 { name="conflicted"; version="1.1.0"; sha256="1qg9ar114r98wm0pnf65mss4v2ksq3924rlpm13mqp4s3p6j9yi4"; depends=[memoise rlang]; };
   conflr = derive2 { name="conflr"; version="0.1.1"; sha256="1bjdmvi0n8746g7dxwgzh3fi33sq4bgfr0nd3nqd2caj8ryi2gv9"; depends=[askpass commonmark curl glue httr knitr miniUI purrr R6 rlang rmarkdown rstudioapi shiny stringi xml2]; };
   conformalClassification = derive2 { name="conformalClassification"; version="1.0.0"; sha256="03v6xbgipb97byarqj0d38z9yb2g54mkkw343jxmi2j058z26yw7"; depends=[doParallel foreach mlbench randomForest]; };
   confoundr = derive2 { name="confoundr"; version="1.2"; sha256="000vf828qv04pplx8yc8q3mafxf4g0axip6z5zbsj2581yxv9jjh"; depends=[dplyr ggplot2 gridExtra magrittr purrr rlang Rmpfr scales stringr tidyr]; };
@@ -7361,17 +7407,17 @@ in with self; {
   conicfit = derive2 { name="conicfit"; version="1.0.4"; sha256="1d704xgiyqmbwfxnsmhqg885x10q8yqxmrk4khqpg3lh696bw97d"; depends=[geigen pracma]; };
   conics = derive2 { name="conics"; version="0.3"; sha256="06p6dj5dkkcy7hg1aa7spi9py45296dk0m6n8s2n3bzh3aal5nzq"; depends=[]; };
   conjoint = derive2 { name="conjoint"; version="1.41"; sha256="1iq3226a6fn1gddmh2nxlzvjcvbj7502r9520g9d4xdmk8smfx33"; depends=[AlgDesign broom cluster fpc ggfortify ggplot2]; };
-  conjurer = derive2 { name="conjurer"; version="1.3.0"; sha256="0qphn3xkcb8xwpywfkfmhmvyx1x4wjvjd66wsqawj73kd5v9ydk7"; depends=[]; };
+  conjurer = derive2 { name="conjurer"; version="1.4.0"; sha256="0llvqjg0rrd75n1gz9b1njizs6s1mgygcv7hmalknqibvxd185ac"; depends=[]; };
   conleyreg = derive2 { name="conleyreg"; version="0.1.4"; sha256="04blnplwzg930775jlz5hvxdmv0dyrrx25si5pvf7x6p9lvhzbf0"; depends=[data_table doParallel fixest foreach lfe lmtest lwgeom Matrix Rcpp RcppArmadillo Rdpack sf]; };
   conmet = derive2 { name="conmet"; version="0.1.0"; sha256="0iwr8mmh9lk0psqxkgnd7ldhg57ivbkv0b3a18gli06983mhzjdc"; depends=[dplyr DT foreign Hmisc lavaan openxlsx purrr semTools shiny shinydashboard shinyWidgets stringr summarytools waiter]; };
   connectwidgets = derive2 { name="connectwidgets"; version="0.1.1"; sha256="0sj8nik6dyyzflpq9vqd8wzlhky6jl2wfiaz788i6a2wdhckyc1m"; depends=[bslib crosstalk digest dplyr glue htmltools htmlwidgets httr jsonlite magrittr purrr R6 reactable reactR rlang sass tibble]; };
   conogive = derive2 { name="conogive"; version="1.0.0"; sha256="0a8v7v0fds0psfnbx9x45way8z1f1xn2ncgbrn5rb6fjq0a1zs4x"; depends=[assertthat checkmate mvtnorm psych]; };
-  conos = derive2 { name="conos"; version="1.4.3"; sha256="15gbaa2lq256fgd4wgvf6hkv0k9w45764kya55hcr1z6wqx53i7z"; depends=[abind ComplexHeatmap cowplot dendextend dplyr ggplot2 ggrepel gridExtra igraph irlba leidenAlg magrittr Matrix Matrix_utils N2R R6 Rcpp RcppArmadillo RcppEigen RcppProgress reshape2 rlang Rtsne sccore]; };
+  conos = derive2 { name="conos"; version="1.4.4"; sha256="0rfsm7w7dz3dygmqih6qw6dhyg7c58yxpsnq59pb48zfvyzwcq2y"; depends=[abind ComplexHeatmap cowplot dendextend dplyr ggplot2 ggrepel gridExtra igraph irlba leidenAlg magrittr Matrix Matrix_utils N2R R6 Rcpp RcppArmadillo RcppEigen RcppProgress reshape2 rlang Rtsne sccore]; };
   conover_test = derive2 { name="conover.test"; version="1.1.5"; sha256="0f1p10klidk1xic1wd48j9rjh2fb3z6pfjx4y021lglx1w3av68k"; depends=[]; };
-  conquer = derive2 { name="conquer"; version="1.2.0"; sha256="1y87ky1fzkc9bgw31sk2zzxipiyqwca6my7phwdv60lfclii4i8h"; depends=[caret Matrix matrixStats Rcpp RcppArmadillo]; };
+  conquer = derive2 { name="conquer"; version="1.2.1"; sha256="0i9g27f52zl2kb2392g0y614drf6s87dqz12aphj889ajq7zjm0k"; depends=[caret Matrix matrixStats Rcpp RcppArmadillo]; };
   conquestr = derive2 { name="conquestr"; version="0.8.5"; sha256="1xh09a379g1msib5fvf72llvf2gwqb7ciacw7j7iqrkb2ddpaglk"; depends=[ggplot2 ggrepel Rcpp reshape rlang stringr]; };
   conserveR = derive2 { name="conserveR"; version="1.0.4"; sha256="05b1pqgbd9sh4lyg9zqjfg4019dqp8xj3k1w31qqdld8m3g5lrd6"; depends=[cowplot GGally ggplot2 ggrepel magrittr network rlang scales sna]; };
-  consort = derive2 { name="consort"; version="0.2.0"; sha256="12r01p3kszybp8snb6bqhp59w2rzk8wc1jrd2rd1fgvrd134s7ph"; depends=[Gmisc]; };
+  consort = derive2 { name="consort"; version="1.0.0"; sha256="1ids2yzba2qj3q68hrzpx1lw0knicx7zf44v24g0xqh36vj943v2"; depends=[gtable]; };
   consortr = derive2 { name="consortr"; version="0.9.1"; sha256="1c71wvr7sckrv4k65l71l160z6d9amzyydbi6mf2b79zh9zv8g1g"; depends=[data_table DiagrammeR dplyr magrittr purrr rlang shiny shinydashboard tibble]; };
   constants = derive2 { name="constants"; version="1.0.1"; sha256="11nliijwphqphik95b3xpawpjg7w4s089wdhjci5bw4va4bgd1xm"; depends=[]; };
   constellation = derive2 { name="constellation"; version="0.2.0"; sha256="1d49rnyf2z3bvx158nsmgmb0x7xcgxl9f8y98pwg5wlqck7af99q"; depends=[data_table]; };
@@ -7379,8 +7425,8 @@ in with self; {
   contTimeCausal = derive2 { name="contTimeCausal"; version="1.0"; sha256="1lyiy0hs5xms6hgr7cv5cxh7v09612qsknjwmrr8w07y0h37qg5l"; depends=[dplyr survival zoo]; };
   contact = derive2 { name="contact"; version="1.2.8"; sha256="1db3vgjlz0ivw3sx37mwy7ngjx0in3rxlm3i3akh4xzbfp9gjj87"; depends=[ape data_table doParallel foreach igraph lubridate raster rgdal rgeos sp]; };
   contactdata = derive2 { name="contactdata"; version="0.2.0"; sha256="1hcibqkfisv28d38ymgvmkkbs4jl3lbp2safyd5abf185043263d"; depends=[]; };
-  container = derive2 { name="container"; version="0.3.0"; sha256="128fj97mx52kap299fmhn3whnaismsd4cq3zqpbfvwxx2ii4fd33"; depends=[R6]; };
-  contentid = derive2 { name="contentid"; version="0.0.12"; sha256="115g4l40wb1rnc5vbw6fsap7d291f4ycr30viz9qsfw92zna8vmd"; depends=[curl fs httr openssl]; };
+  container = derive2 { name="container"; version="1.0.0"; sha256="0yr06z6vdz1qz7vp3hf1zqnk0n2g77iaq9nfx6r9275m5v2hl6iw"; depends=[data_table R6]; };
+  contentid = derive2 { name="contentid"; version="0.0.15"; sha256="0r5lrq82vfv698g8md8kdhl83gi8rx5hrhk2qddykxlxk4krzagi"; depends=[curl fs httr openssl]; };
   contfrac = derive2 { name="contfrac"; version="1.1-12"; sha256="0sq5c7ny235yrkv2xc4insgxby6rvzc1qsj8h301cd2if3lwbgwm"; depends=[]; };
   conting = derive2 { name="conting"; version="1.7"; sha256="08f271j3gxcp4shda08kkv0v9ayaadvxgcglfsn6hjmw4hn298zg"; depends=[BMS coda gtools mvtnorm tseries]; };
   contingency = derive2 { name="contingency"; version="0.0.6"; sha256="0bwvrwsa41s24j612w4jyhlfp2r6qa37ljsb3lxx27mkd9r0286d"; depends=[rje]; };
@@ -7403,7 +7449,7 @@ in with self; {
   coop = derive2 { name="coop"; version="0.6-3"; sha256="0ww99ssgawsgn6rqy838wbx6iirzdrzyxirvz084ih8j50blx420"; depends=[]; };
   coopProductGame = derive2 { name="coopProductGame"; version="2.0"; sha256="1348pgqfvvysdixsjibgkvwjsmqasnlmwf9kyr39lw8jb81z25h0"; depends=[dplyr GameTheory ggplot2 gtools kappalab lpSolveAPI]; };
   cooptrees = derive2 { name="cooptrees"; version="1.0"; sha256="0izvwna1jsqik3v5fz1r4c86irvma42clw0p4rdvwswv5pk698i1"; depends=[gtools igraph optrees]; };
-  copBasic = derive2 { name="copBasic"; version="2.1.6"; sha256="0k63cgwqpr2gj7632agwfy5x571hgl2bnrrazdkqg2q75nivh57k"; depends=[lmomco randtoolbox]; };
+  copBasic = derive2 { name="copBasic"; version="2.1.7"; sha256="1vn3v0shk9hjsnjm2cs8d6gfhwfjd5gp98cq9z6cc6z0cw62164h"; depends=[lmomco randtoolbox]; };
   copCAR = derive2 { name="copCAR"; version="2.0-4"; sha256="1wvp7khp0f0x6skiq1d6npndb09ak6d6ijmx907gfrd6b0ydaklb"; depends=[mcmcse numDeriv Rcpp RcppArmadillo spam]; };
   cope = derive2 { name="cope"; version="0.2.3"; sha256="1r02nb6wy25ixhdcbqqz167s7ny3hydpxfxry5ar4136qvcamgyy"; depends=[abind fields maps MASS Matrix mvtnorm nlme]; };
   copent = derive2 { name="copent"; version="0.2"; sha256="0cqq18swjawmn3avbi5v6ihqg3xx9i7qhmxdrm4wk4w6cispc0zb"; depends=[]; };
@@ -7452,14 +7498,14 @@ in with self; {
   correlbinom = derive2 { name="correlbinom"; version="0.0.1"; sha256="1ix3ccxzr7vqblbda5awsva3h95b69v7kc6adz622bbi8r36xxcq"; depends=[Rmpfr]; };
   corrgram = derive2 { name="corrgram"; version="1.14"; sha256="12dhvwaprdmzxxk52w8sb3cx99dmzb9yhcm01pri0vcz671p57v1"; depends=[]; };
   corrgrapher = derive2 { name="corrgrapher"; version="1.0.4"; sha256="0s10n2av6dyjz6x4wvznpcbvpp63v6k3r9whkqsg7fiy9m3d4dr9"; depends=[ggplot2 htmltools ingredients knitr visNetwork]; };
-  corrplot = derive2 { name="corrplot"; version="0.90"; sha256="1pfmjqgakf7706l9257lqqnb6kin79gc94xfg7w47x2ijchiz1yr"; depends=[]; };
+  corrplot = derive2 { name="corrplot"; version="0.92"; sha256="1g98jk6xsl08z4n6sy5vriif99m31zhbz7j3dh1kfj4w7yb9zh78"; depends=[]; };
   corrr = derive2 { name="corrr"; version="0.4.3"; sha256="096j9y1i1g7wgvn15vpil63cnb24mm0fgklbsgygwwgnlx2j0rgg"; depends=[dplyr ggplot2 ggrepel purrr rlang seriation tibble]; };
   corrsieve = derive2 { name="corrsieve"; version="1.6-8"; sha256="0ak3j9khcwv5rxbicck2sr260wpmd3xj254y7pdavx2fk0b72yxs"; depends=[]; };
   corset = derive2 { name="corset"; version="0.1-4"; sha256="0ladyqvkys4cldvbhkii9jwn1k5p1ym2g5bgdlz1hq1sv30ixn2f"; depends=[]; };
   cort = derive2 { name="cort"; version="0.3.2"; sha256="1iayvgwjmpmb96w5841jxhwivca7s4v5bpsdy0lrbk121saqq5z1"; depends=[furrr nloptr osqp purrr Rcpp Rdpack]; };
   corto = derive2 { name="corto"; version="1.1.10"; sha256="1vddp42klrji8qfccdrfwppk657aa46crs65mvbpcj9wss7zj2ng"; depends=[dplyr gplots knitr pbapply plotrix rmarkdown]; };
   corx = derive2 { name="corx"; version="1.0.6.1"; sha256="179fxjagbq33549zyk234kz9ajbifl7qpmdy0lrw9vzjc8aqbycf"; depends=[clipr crayon ggcorrplot ggplot2 ggpubr glue magrittr moments ppcor psych tidyselect]; };
-  cosa = derive2 { name="cosa"; version="2.0.0"; sha256="1ra1m75ay829xlhjax82px4ffflnfgh2mrmzzj4i8ml545d9hmgr"; depends=[msm nloptr]; };
+  cosa = derive2 { name="cosa"; version="2.1.0"; sha256="15ygpaqd48xqx0h08v0nf73yzif63r2nzcznlmk0ck2ydx4n85fp"; depends=[msm nloptr]; };
   cosinor = derive2 { name="cosinor"; version="1.1"; sha256="02nnqg51vq48lzk667cyarnmhcf5mifnsdij7dlgqvz2k4fdq4pl"; depends=[ggplot2 shiny]; };
   cosinor2 = derive2 { name="cosinor2"; version="0.2.1"; sha256="1pp0z86fflqkkllfrzx3vj98kzxjwnawr4a2d8z5q6zhq6v5qrvf"; depends=[cosinor cowplot ggplot2 Hmisc magrittr matrixStats purrr scales stringr]; };
   cosmoFns = derive2 { name="cosmoFns"; version="1.0-1"; sha256="0a6xhbgxxnymlvicg99yhgny2lscxcbmvqmy17kxmahdi797dsg6"; depends=[]; };
@@ -7524,15 +7570,14 @@ in with self; {
   cpca = derive2 { name="cpca"; version="0.1.2"; sha256="1pccsjahb1qynnxa0akhfpcmhfmdg4rd1s6pfqrdl7bwbcmq4lqf"; depends=[]; };
   cpd = derive2 { name="cpd"; version="0.1.0"; sha256="1qcyb7n69ppa0py7w31msim7gf2wdh94hmsilsdk8ivxljc1gv8n"; depends=[fAsianOptions Rdpack]; };
   cpk = derive2 { name="cpk"; version="1.3-1"; sha256="1njmk2w6zbp6j373v5nd1b6b8ni4slgzpf9qxn5wnqlws8801n73"; depends=[]; };
-  cplexAPI = derive2 { name="cplexAPI"; version="1.4.0"; sha256="00h2zir1ffzjiglfyq8bsfmgq9z155jr0k0fxv8fsbfyw2x9dg10"; depends=[]; };
   cplm = derive2 { name="cplm"; version="0.7-9"; sha256="057m61rq2hzb55imj3922zmc9kjxh053k3kgy54a4l0jlxb90lyj"; depends=[biglm coda ggplot2 Matrix minqa nlme reshape2 statmod tweedie]; };
   cpm = derive2 { name="cpm"; version="2.3"; sha256="07zbvc5jkwv76lkzby6r073fxjsqgnrdl2w9lcph577knnip89jx"; depends=[]; };
-  cpp11 = derive2 { name="cpp11"; version="0.4.0"; sha256="11qyliiw2qrac56mq5h9v7gy3dvwjj1i26pvygwbpprhvh3zss0p"; depends=[]; };
+  cpp11 = derive2 { name="cpp11"; version="0.4.1"; sha256="1nk47xkab7i17h7917l4cfyfvnxf782dfq67wwxa6n0r4jqqxzz9"; depends=[]; };
   cppRouting = derive2 { name="cppRouting"; version="2.0"; sha256="0yfiyg1clnl85lk5ah8dcchv71drk6r093vpl82xnczyan5z94sr"; depends=[data_table Rcpp RcppParallel RcppProgress]; };
   cpr = derive2 { name="cpr"; version="0.2.3"; sha256="1a2lza1bw74xzrs17a9gr9mnpvnnrykhwd73yqi63wp3k4sm42rb"; depends=[dplyr ggplot2 lazyeval lme4 magrittr plot3D Rcpp RcppArmadillo rgl tibble tidyr]; };
   cprobit = derive2 { name="cprobit"; version="1.0.2"; sha256="16fnndpkd226paahmadsddakj4yhybw7lp3csr73fwv78zfl2fj9"; depends=[car ggplot2 gridExtra nortest]; };
   cprr = derive2 { name="cprr"; version="0.2.0"; sha256="049xnma0rdnya7zp05iraq15nwjgmdmli9g7xxprab822047vld7"; depends=[]; };
-  cpsR = derive2 { name="cpsR"; version="0.4.4"; sha256="1krwmqlqqyn1a2dzy7lam1w4vzhqka3jjibysymy829clbj0vznn"; depends=[httr jsonlite tibble]; };
+  cpsR = derive2 { name="cpsR"; version="0.4.5"; sha256="1maqc5lr21h59wk4449zl8b8p9fzp9z6va52mc3k6z4sq4f784na"; depends=[httr jsonlite tibble]; };
   cpss = derive2 { name="cpss"; version="0.0.2"; sha256="1a6nphzf9y1p1ic51f0zll6g3j3flr7szrvzac1w4a023fj7301r"; depends=[dplyr ggplot2 gridExtra magrittr mvtnorm Rcpp RcppArmadillo Rfast rlang tibble tidyr]; };
   cpsurvsim = derive2 { name="cpsurvsim"; version="1.2.0"; sha256="1fn88cqryji1syzhnx726m5svxnrlyynxk4jhp5ny8g3knai6nnk"; depends=[Hmisc knitr plyr]; };
   cpsvote = derive2 { name="cpsvote"; version="0.1.0"; sha256="0nmg79isqwvxyg7zkfbshndfjb2fnc2ffg32hxvjvsy714lpljf6"; depends=[dplyr forcats magrittr readr rlang stringr]; };
@@ -7555,12 +7600,12 @@ in with self; {
   crayon = derive2 { name="crayon"; version="1.4.2"; sha256="0mxq87qsvz5znfncrb6yjchzv6iwpn9lr386i02y6xiycizkjd7f"; depends=[]; };
   crch = derive2 { name="crch"; version="1.0-4"; sha256="18qjvh1lkw1f6rrhnb21f30xxrcq8whbs3x1jgkw6q14rf1483ri"; depends=[Formula ordinal sandwich scoringRules]; };
   crctStepdown = derive2 { name="crctStepdown"; version="0.1"; sha256="07y4drz76nqk2lvk2600w3s20qx71xddlxqc8zrw3bh02pgdnpy7"; depends=[fastglm ggplot2 ggpubr lme4 Rcpp RcppArmadillo rlang stringr]; };
-  credentials = derive2 { name="credentials"; version="1.3.1"; sha256="0q3s1bibwvw1p541k8a5cjx4dj1iabl4crg61fgjxkniclxag5c7"; depends=[askpass curl jsonlite openssl sys]; };
+  credentials = derive2 { name="credentials"; version="1.3.2"; sha256="1f18j3zrq8c9kah57xwahmmljsjg5qphlgamvx507ynvpq8pryig"; depends=[askpass curl jsonlite openssl sys]; };
   creditmodel = derive2 { name="creditmodel"; version="1.3.0"; sha256="0cq21y6kzz2gf6kqqkhxlhhkjfm71kx4rqzwwfm1c5572x65x7hm"; depends=[cli data_table doParallel dplyr foreach ggplot2 glmnet rpart xgboost]; };
   credsubs = derive2 { name="credsubs"; version="1.1.1"; sha256="19l3vsjxd9lvaf67l61x9l0j4y124p93dfqzw7rl1ya5sxbdzs7a"; depends=[]; };
   credule = derive2 { name="credule"; version="0.1.4"; sha256="0kwjjkavch21grx845kdcansaj0g407v7z3wmhy4whra9ic12y76"; depends=[]; };
   cregg = derive2 { name="cregg"; version="0.4.0"; sha256="1a34jhdk4r9ywsrc5dc8wq5am3059cli60f6n2n8j04ls13fvlkd"; depends=[ggplot2 ggstance lmtest sandwich scales survey]; };
-  crfsuite = derive2 { name="crfsuite"; version="0.3.4"; sha256="1003y435hn30wws0ynlla1rz21kh3dp2ggkbyy9vhxgvjzii94n7"; depends=[data_table Rcpp]; };
+  crfsuite = derive2 { name="crfsuite"; version="0.4"; sha256="0arxbszaf1y8cqgzbq9a5l58n3c3rhjfp78lnhdxg95cdmdzhcfd"; depends=[data_table Rcpp]; };
   cricketr = derive2 { name="cricketr"; version="0.0.26"; sha256="1y1zf9f59v95knggq5nna5rp7fqpv1swwvkajwqbpicc12g2azq4"; depends=[dplyr forecast ggplot2 httr lubridate plotrix scatterplot3d XML]; };
   crimCV = derive2 { name="crimCV"; version="0.9.6"; sha256="14ckk88i7jk8a7kl51d7qfdis44jng6zz9zd72cdp80a57dvrvzq"; depends=[]; };
   crimedata = derive2 { name="crimedata"; version="0.2.0"; sha256="073zlk9b4saz72d33z73mc9qzfk49bxwjhph6zbw27nl38k74j7d"; depends=[digest dplyr httr magrittr purrr readr sf stringr tibble]; };
@@ -7584,13 +7629,14 @@ in with self; {
   cropZoning = derive2 { name="cropZoning"; version="1.0.1"; sha256="19082p5c322m684fkjcxa1bcmk3vzga2x75lid9zrsrh6knrqsbz"; depends=[ggplot2 ncdf4 raster rgdal tidyr]; };
   cropdatape = derive2 { name="cropdatape"; version="1.0.0"; sha256="19bn0apx4p8hnz388zg7sq59qv89vv8k5php317kcv7ai2k2gh34"; depends=[]; };
   cropgrowdays = derive2 { name="cropgrowdays"; version="0.1.0"; sha256="0q1zybx84mn8kiq5wn1hs3sc4xnk6r45shzddz27qkm6b1c4grbg"; depends=[dplyr httr lubridate magrittr purrr purrrlyr tibble]; };
+  crops = derive2 { name="crops"; version="1.0.1"; sha256="153m0mv0hkc8f5kgaa8374z51g0jaq0s0zjbr19x309w1dd3g83g"; depends=[cowplot ggplot2 magrittr memoise pacman Rdpack reshape sets tibble tidyverse]; };
   crossReg = derive2 { name="crossReg"; version="1.0"; sha256="1866jhfnksv9rk89vw7w4gaxi76bxfjvqxx7cfa8nlrcsmaqd7rf"; depends=[]; };
   crossdes = derive2 { name="crossdes"; version="1.1-1"; sha256="1d7lv3ibq1rwxx8kc3ia6l9dbz2dxdd5pnf2vhhjmwm448iamcfd"; depends=[AlgDesign gtools]; };
   crossmap = derive2 { name="crossmap"; version="0.3.0"; sha256="0dw1sg1by5805l72s5sbldznyp9qph9qrm4sizvqdx74bhb59s1y"; depends=[backports broom dplyr purrr rlang]; };
   crossmatch = derive2 { name="crossmatch"; version="1.3-1"; sha256="082lrv2129mfhwlh99z3g8id3a29s8854skl152bl3ig8pk2gbjz"; depends=[nbpMatching survival]; };
   crossrun = derive2 { name="crossrun"; version="0.1.0"; sha256="0br57nraqhs5f1cpidc8kd31izm82wvhiw9pxcdj9v51l9vifbmx"; depends=[Rmpfr]; };
-  crosstable = derive2 { name="crosstable"; version="0.2.2"; sha256="0i87i0nnw6vs17c60q00inkd14mq50gq2sf4dx4pm5qyb51xjn0g"; depends=[checkmate dplyr ellipsis flextable forcats glue lifecycle officer purrr rlang stringr survival tibble tidyr tidyselect]; };
-  crosstalk = derive2 { name="crosstalk"; version="1.1.1"; sha256="1n6c6s7a6yxiwvva71x6bzcrim8xprl5s01fqiy61yq0y3vk8cpd"; depends=[htmltools jsonlite lazyeval R6]; };
+  crosstable = derive2 { name="crosstable"; version="0.3.2"; sha256="17agqfwcz04d69xsf7k6dybv66wlgjcvhsxym48p7sy8s19vrb6b"; depends=[checkmate dplyr flextable forcats glue lifecycle officer purrr rlang stringr survival tibble tidyr tidyselect]; };
+  crosstalk = derive2 { name="crosstalk"; version="1.2.0"; sha256="180y7mhpj17axpadwhh7s0qvrpdnag7g977vk256l96d6nmvlds2"; depends=[htmltools jsonlite lazyeval R6]; };
   crossval = derive2 { name="crossval"; version="1.0.4"; sha256="0vshlyc6w4kfs03n56ylapiqgdyday7068wmfsphj4lhw322s4yp"; depends=[]; };
   crosswalkr = derive2 { name="crosswalkr"; version="0.2.6"; sha256="1rxd6vy7vdrawmg7zkydl1f2wwklnzgh9dsnxbg966xrr3l9x1n9"; depends=[haven labelled readr readxl tibble]; };
   crossword_r = derive2 { name="crossword.r"; version="0.3.6"; sha256="1s31613s4qxxspka9bhgq3rq8xraf48mwfv6phvz6v06gijh64lr"; depends=[dplyr jsonlite magrittr R6 r6extended stringr]; };
@@ -7598,6 +7644,7 @@ in with self; {
   crplyr = derive2 { name="crplyr"; version="0.3.8"; sha256="0vfr8pdxpcmfslv7kn0jhcxjxkhhsqhy729h6v22bazp56zam08v"; depends=[crunch dplyr ggplot2 httptest lazyeval lifecycle purrr rlang scales stringr tibble tidyselect viridisLite]; };
   crqa = derive2 { name="crqa"; version="2.0.2"; sha256="0dg2aqc4dc27chwqym23r2ajqk4vjgi73qdv6i4zmra4rf4s0md5"; depends=[FSA gplots Matrix plot3D pracma rdist tseriesChaos]; };
   crrSC = derive2 { name="crrSC"; version="1.1"; sha256="171cw56q2yv1vb4qd0va75i2q89jcw1126q8pcbv0235g7p2a86z"; depends=[survival]; };
+  crrcbcv = derive2 { name="crrcbcv"; version="1.0"; sha256="1rbmhnr7n99i0277d47i62ww6896z1g20v6vr558zmx3gvrs0b6k"; depends=[abind crrSC pracma survival]; };
   crrp = derive2 { name="crrp"; version="1.0"; sha256="1fq54jr6avrli91a4z1hp5img4kghyw1yvjr5xyccsanf9i35x8r"; depends=[cmprsk Matrix survival]; };
   crrstep = derive2 { name="crrstep"; version="2015-2.1"; sha256="03vd97prws9gxc7iv3jfzffvlrzhjh0g6kyvclrf87gdnwifyn1z"; depends=[cmprsk]; };
   crs = derive2 { name="crs"; version="0.15-33"; sha256="0zzi3l35r4slq5iplgds4pkw4nf5594i5cwp4jrz5rbncw2vp19a"; depends=[boot np quantreg]; };
@@ -7608,8 +7655,8 @@ in with self; {
   crsra = derive2 { name="crsra"; version="0.2.3"; sha256="1rkqm88zmvp9gw442cby6qpvfw4pfw65wz0gyl2h37w87c3wwvrw"; depends=[digest dplyr knitr purrr rcorpora readr tibble tidytext]; };
   crsuggest = derive2 { name="crsuggest"; version="0.3.1"; sha256="13h6hfj3bvdb5wzq1f2m5s9crjmg0ijhfh87y1dmyimv76kr31k6"; depends=[dplyr mapview purrr sf units]; };
   crtests = derive2 { name="crtests"; version="0.2.1"; sha256="0z8idz37dgwvi1q2vryldii7fn9yxd32gds77ml76jfplxbkikpd"; depends=[caret plyr stringr]; };
-  crul = derive2 { name="crul"; version="1.1.0"; sha256="1kjsc5gkx5k5cfwlfjp2cjm9cdzq2l1m68bnrjmahw3lkz8wzdph"; depends=[curl httpcode jsonlite mime R6 urltools]; };
-  crunch = derive2 { name="crunch"; version="1.28.1"; sha256="14hc6cgxcd6k30x0bf7az025piiw1brcv5vdkc1p52z4h5by12xy"; depends=[abind crayon curl httpcache httr jsonlite]; };
+  crul = derive2 { name="crul"; version="1.2.0"; sha256="133g0skz4lifl8hm8pqdryd2m2drbrm6mdfzbbsrw8fg46di86my"; depends=[curl httpcode jsonlite mime R6 urltools]; };
+  crunch = derive2 { name="crunch"; version="1.28.2"; sha256="11llq25jnjy54j5w5mfkfm5cw4zf3lm76zcjmi7hy61y8w04bc4i"; depends=[abind crayon curl httpcache httr jsonlite]; };
   crunchy = derive2 { name="crunchy"; version="0.3.3"; sha256="15w72kmizsxkj1wx3nqny6329m2041mxyzi4nxh8l3hfmaisb4qm"; depends=[crunch httpcache miniUI rstudioapi shiny]; };
   cruts = derive2 { name="cruts"; version="1.1"; sha256="1ih6h9qk4yflzars00d61smjqj7s4bfvc2ikp6vlki9f6k012xcx"; depends=[lubridate ncdf4 raster sp stringr]; };
   cry = derive2 { name="cry"; version="0.4.1"; sha256="14wicmlg8vzrqv4wf5xzf37l29ch3cbglbanmgbqdi8p49jpw1cf"; depends=[zoo]; };
@@ -7634,7 +7681,7 @@ in with self; {
   csurvey = derive2 { name="csurvey"; version="1.2"; sha256="199k56rc881zdwh589m238qqwkgcx9qqnvxijk23xwf97bbjcr0l"; depends=[coneproj MASS Matrix purrr survey]; };
   csv = derive2 { name="csv"; version="0.6.1"; sha256="0rl9yd63mjzhpvaipl45zlm3s1cg31cvnala7ayy8dh5mpdds3hn"; depends=[data_table stringi]; };
   csvread = derive2 { name="csvread"; version="1.2.1"; sha256="1r9jvf7nbkxgl6dycdnb89yh39vacrzy8z04g8qz225rklg5b288"; depends=[]; };
-  csvwr = derive2 { name="csvwr"; version="0.1.5"; sha256="050gr0kqx2rjlh20b7yvk1sh175jbj1lyfd5yryy2l5xrl8dkgd9"; depends=[jsonlite magrittr purrr readr rlang stringr]; };
+  csvwr = derive2 { name="csvwr"; version="0.1.6"; sha256="1wwj0zx4jawfl5264qxa90qwll971c24hyk645r0c7wwvwa8dd9r"; depends=[jsonlite magrittr purrr readr rlang stringr]; };
   csvy = derive2 { name="csvy"; version="0.3.0"; sha256="0id015szw1c63vd1h0515jsqdhyn32sxpxm89f3sb1qkgq3yynmy"; depends=[data_table jsonlite yaml]; };
   cta = derive2 { name="cta"; version="1.3.0"; sha256="1i8psw6p6f4633ad17apm6v5ikrpv1dagm0s8pggpsjbbw8d655v"; depends=[intervals limSolve numDeriv]; };
   ctf = derive2 { name="ctf"; version="0.1.0"; sha256="1vwqfh1y2if79rkpy6b0ay50fyis7h5rlpvhgikahnmcr2q5l14m"; depends=[iotools jsonlite]; };
@@ -7646,8 +7693,9 @@ in with self; {
   ctmcmove = derive2 { name="ctmcmove"; version="1.2.9"; sha256="1pxyxbbhfa8arqfb7qw10ya1b8hy9ylqbqqzys6d9dsixvdk98h0"; depends=[fda gdistance Matrix raster sp]; };
   ctmle = derive2 { name="ctmle"; version="0.1.2"; sha256="0qc1ji8fjpr88dn6mrpijfcx1ij4zkrxsbcw405hxal7rli0gyp3"; depends=[glmnet SuperLearner tmle]; };
   ctmm = derive2 { name="ctmm"; version="0.6.1"; sha256="1c0pxjm91xcjdhq7mdjgmay9vs8cmk24495sf9g67hfjplf5gzzm"; depends=[Bessel data_table digest expm fasttime Gmedian gsl manipulate MASS numDeriv pbivnorm pracma raster rgdal shape sp statmod]; };
+  ctpm = derive2 { name="ctpm"; version="1.0.1"; sha256="1bycdh3mbimmfvv3yb50c8rwcmkbjj0jwnfiynsp2h56y3dmzc1r"; depends=[ape ClusterR ctmm slouch]; };
   ctqr = derive2 { name="ctqr"; version="2.0"; sha256="0srrlgqxpp4a46wqr83zpb3xr49pf70b0n8bv9qp8ffak20d2hpj"; depends=[pch survival]; };
-  ctrdata = derive2 { name="ctrdata"; version="1.7.1"; sha256="1fr41yfjsywbrbwly93k3xvlc2fhfmw2d2garx387hl2kg6yl6n0"; depends=[clipr curl httr jsonlite nodbi rvest stringi xml2]; };
+  ctrdata = derive2 { name="ctrdata"; version="1.8.0"; sha256="15jaxwqhx8fwzsnjgqqxkc6ngd1pqcgn1ffyl1hpwr92p9j7vkf9"; depends=[clipr curl httr jsonlite nodbi rvest stringi xml2]; };
   ctrialsgov = derive2 { name="ctrialsgov"; version="0.2.5"; sha256="0hdh1fdfaja8amf7fkvk1c6yif703132bvacq0j9pk5jr97czgpw"; depends=[DBI dplyr ggplot2 htmlwidgets lubridate Matrix plotly purrr rlang stringi tibble]; };
   ctrlGene = derive2 { name="ctrlGene"; version="1.0.1"; sha256="0x7j11v7jj4k1jml6lrnjq79awhrvsm3pig1yxsd337jlfml3ra9"; depends=[psych]; };
   ctsem = derive2 { name="ctsem"; version="3.5.4"; sha256="1gzv3i43nknd2fkjhrgwq8kf5z5vl52k5715sjzad9bmdjqf9wdl"; depends=[BH cOde data_table Deriv expm ggplot2 MASS Matrix mize mvtnorm pkgbuild plyr Rcpp RcppEigen RcppParallel rstan StanHeaders tibble]; };
@@ -7657,9 +7705,10 @@ in with self; {
   cubature = derive2 { name="cubature"; version="2.0.4.2"; sha256="0kk9lw3s66h0sayza3in8rdj7bmgqn4v5lfckhslarpvj2fxsnv0"; depends=[Rcpp]; };
   cubelyr = derive2 { name="cubelyr"; version="1.0.1"; sha256="1g3pvam1fkqh63snibqcfaazvj7lrkfip8w9pjvwdclj0l8382kl"; depends=[dplyr glue pillar purrr rlang tibble tidyselect]; };
   cubeview = derive2 { name="cubeview"; version="0.2.0"; sha256="1352hi2j9x9rx4iy3xvsca86nsh39x1vnymd17f5qc8c3plfm8db"; depends=[base64enc htmltools htmlwidgets lattice raster stars viridisLite]; };
-  cubfits = derive2 { name="cubfits"; version="0.1-3"; sha256="0i2iybm9vpyqnahzka66yms1namdd36bz1i1yjy74qsc1h995rga"; depends=[coda foreach]; };
+  cubfits = derive2 { name="cubfits"; version="0.1-4"; sha256="1dg60162s77p82v8vig52yl8ar8h0pijps8kqq35v1hvp5a3ny5q"; depends=[coda foreach]; };
   cubicBsplines = derive2 { name="cubicBsplines"; version="1.0.0"; sha256="1dzwadhhrxgral9x4hxyyy1fyn45pmbwv6wiwfxhivkxmd3s2xdr"; depends=[]; };
   cubing = derive2 { name="cubing"; version="1.0-5"; sha256="1q23fplvklaaldicqic0zpnh301m08zb9k21l47zj47g9m9pj4bc"; depends=[rgl]; };
+  cuda_ml = derive2 { name="cuda.ml"; version="0.3.1"; sha256="13zxq1a2dfvfj1hsbyzmbibnvw2csifj51kq5afr95dda67zncda"; depends=[ellipsis hardhat parsnip Rcpp rlang]; };
   cultevo = derive2 { name="cultevo"; version="1.0.2"; sha256="0rmncp4mrdpf3izhhqn9406i36j3d3d7i8cglip04lkfbypl9jvy"; depends=[combinat Hmisc pspearman stringi]; };
   cumSeg = derive2 { name="cumSeg"; version="1.3"; sha256="0n1hp0abnd6zn72fkgkj9k875vivn5kr3q76sjy6q6va7x24j6sg"; depends=[lars]; };
   cuml4r = derive2 { name="cuml4r"; version="0.1.0"; sha256="0zwm8laprwhkjn2ji16f08952hri3bk1qvpj8yhwaqiv4cj2q43k"; depends=[magrittr Rcpp rlang zeallot]; };
@@ -7680,6 +7729,7 @@ in with self; {
   customizedTraining = derive2 { name="customizedTraining"; version="1.2"; sha256="0kjp22bzv7a3xynhm9xmabfcms21586p8caz1nk1w88qdvidqfqd"; depends=[FNN glmnet]; };
   customsteps = derive2 { name="customsteps"; version="0.7.1.0"; sha256="1v6ks8j1mj623yai515xnrpx60hvilbrsn59r3zw30n68555cvw8"; depends=[dplyr generics magrittr purrr recipes rlang tibble tidyselect]; };
   cusum = derive2 { name="cusum"; version="0.4.1"; sha256="0vjq3slkjdgls41xm637xkrg8jhv6y75xiyfcgpwrp32ixmakpcd"; depends=[checkmate data_table Rcpp]; };
+  cusumcharter = derive2 { name="cusumcharter"; version="0.1.0"; sha256="0ljprnn48nfl8n0zmvc547rcg4cwrfhq3zjkkimgdnf7z2d130q6"; depends=[data_table ggplot2 rlang]; };
   cutoff = derive2 { name="cutoff"; version="1.3"; sha256="0anrvmlvcxah620il3fkq6ldp7hx4nwdnzcpmfc5mhlsry0lp178"; depends=[do ROCit set survival]; };
   cutoffR = derive2 { name="cutoffR"; version="1.0"; sha256="1801jylmpp4msyf07rhg4153kky1zvi4v0kkjb9d51dc7zkhh531"; depends=[ggplot2 reshape2]; };
   cutpointr = derive2 { name="cutpointr"; version="1.1.1"; sha256="1lcs4dv13y9q6iwan7livlfaf5bqgg116br1knm4wk56jhxjaf4k"; depends=[dplyr foreach ggplot2 gridExtra purrr Rcpp rlang tibble tidyr tidyselect]; };
@@ -7689,13 +7739,14 @@ in with self; {
   cvGEE = derive2 { name="cvGEE"; version="0.3-0"; sha256="085qjm520l2441nakfxy851s6bfy5832b5fy54z5fp4xr1jn6snm"; depends=[]; };
   cvTools = derive2 { name="cvTools"; version="0.3.2"; sha256="0b7xb6dmhqbvz32zyfbdvm9zjyc59snic6wp1r21ina48hchn3sj"; depends=[lattice robustbase]; };
   cvam = derive2 { name="cvam"; version="0.9.2"; sha256="0ylfs2ry1ppigvs7py71vbslxga1d3kaijzwr8v923f3j14zkm54"; depends=[coda Formula]; };
+  cvap = derive2 { name="cvap"; version="0.0.3"; sha256="1n0cil51zgwv7c4xjxf78z67crida60r7qqp3pax74dbimddbsmj"; depends=[censable cli dplyr fs magrittr readr stringr tidyr]; };
   cvar = derive2 { name="cvar"; version="0.4-0"; sha256="1rfsmw2a639pkj8l5g2xm6z48jrxsywbysk7c0czpdvrh4h9h84f"; depends=[fGarch gbutils Rdpack]; };
   cvcqv = derive2 { name="cvcqv"; version="1.0.0"; sha256="0327r4jw6m4avcz1zvdkxszqwaw2s9sh1i1jagl6aggd7aaiiyg0"; depends=[boot dplyr MBESS R6 SciViews]; };
   cvcrand = derive2 { name="cvcrand"; version="0.1.0"; sha256="0zdf41sjqyi7mybxhypfx1vpc15w7qj9jg9bav64qbk0q5nk7jyc"; depends=[tableone]; };
   cvequality = derive2 { name="cvequality"; version="0.2.0"; sha256="1im839vzfqylphp2vr20avnzkyl02n88fngbs63d4ik7c72d9992"; depends=[]; };
   cvmdisc = derive2 { name="cvmdisc"; version="0.1.0"; sha256="19b9kxqgbk1d631l3jph87pzhk4zf3xd5q5j2xsrbqz8zmm96sn9"; depends=[CompQuadForm]; };
   cvmgof = derive2 { name="cvmgof"; version="1.0.3"; sha256="0s78w8ivxzscn6jbwsw0m15n3xwgbbjdqwpp4dsy3gi0nsmngjyc"; depends=[lattice]; };
-  cvms = derive2 { name="cvms"; version="1.3.2"; sha256="1716422vsgif1vnfv3c1606ina5lh78b3rpx89hifz6kgnxcgpsw"; depends=[checkmate data_table dplyr ggplot2 lifecycle lme4 MuMIn parameters plyr pROC purrr rearrr recipes rlang stringr tibble tidyr]; };
+  cvms = derive2 { name="cvms"; version="1.3.3"; sha256="0a0ajrdmx9zi57sl5k5pdh4adrif3da6vbhnqll573draknbhavd"; depends=[checkmate data_table dplyr ggplot2 lifecycle lme4 MuMIn parameters plyr pROC purrr rearrr recipes rlang stringr tibble tidyr]; };
   cvq2 = derive2 { name="cvq2"; version="1.2.0"; sha256="19k95xg2y3wd4mx3wvbrc1invybd446g13vsp3dv05nw2kx4f6w8"; depends=[]; };
   cvwrapr = derive2 { name="cvwrapr"; version="1.0"; sha256="17h017p76y7sjcwik48ravygmyivj6kvkhqy5s9ch0nwzzcrzvj3"; depends=[foreach survival]; };
   cwbtools = derive2 { name="cwbtools"; version="0.3.4"; sha256="1wj42n6phniwh6ms5xfmfazd8a0lkaf46wzv916i9xzsaf6hzqr7"; depends=[cli curl data_table fs httr jsonlite lifecycle pbapply R6 RcppCWB rstudioapi stringi xml2 zen4R]; };
@@ -7705,7 +7756,7 @@ in with self; {
   cxr = derive2 { name="cxr"; version="1.0.0"; sha256="12rx7hna3h84a2xb2ir43xgb3zfmh0fhn5wcdjklk2g94dmwid28"; depends=[mvtnorm optimx]; };
   cxxfunplus = derive2 { name="cxxfunplus"; version="1.0"; sha256="0kyy5shgkn7wikjdqrxlbpfl3zkkv4v1p8a1vv0xkncwarjs4n8d"; depends=[inline]; };
   cycleRtools = derive2 { name="cycleRtools"; version="1.1.1"; sha256="1l7w2lm4s149ndd85v41pkdrdig6l3nmhl14bdx56aw8q57fxmb0"; depends=[Rcpp xml2]; };
-  cyclestreets = derive2 { name="cyclestreets"; version="0.5.0"; sha256="1a7b28832w1qjqfr6i8apki01y53fq9nwg2bjzgyly363b0aghq4"; depends=[geodist httr jsonlite magrittr sf stringr]; };
+  cyclestreets = derive2 { name="cyclestreets"; version="0.5.2"; sha256="10zddkn383mc4qxwmh2yca6anr1j0d3bkbhwx8wwrmcykamnhnhm"; depends=[geodist httr jsonlite magrittr sf stringr]; };
   cyclocomp = derive2 { name="cyclocomp"; version="1.1.0"; sha256="0gky3svk02wiajw7nfjh30684h3qxili4bvsab0m7b6cggw6bgyd"; depends=[callr crayon desc remotes withr]; };
   cycloids = derive2 { name="cycloids"; version="1.0"; sha256="00pdxny11mhfi8hf76bfyhd1d53557wcbl2bqwjzlpw5x3vdnsan"; depends=[]; };
   cyclomort = derive2 { name="cyclomort"; version="1.0.2"; sha256="0qmfwhrp7bq7av0yc95xnz2sd1jxfaiys9smrk1kpclnynnra9rr"; depends=[flexsurv lubridate magrittr mvtnorm plyr scales survival]; };
@@ -7719,7 +7770,7 @@ in with self; {
   cytometree = derive2 { name="cytometree"; version="2.0.2"; sha256="18g7av73lmnyga1kk24bf8jy599zn9n6qhr13mxsqgi0zdinicfa"; depends=[cowplot ggplot2 GoFKernel igraph mclust Rcpp RcppArmadillo]; };
   cytominer = derive2 { name="cytominer"; version="0.2.2"; sha256="1n9yimjhdziv1vzjyni6ssi38nxcnfr5jpmzgxcn6vysffh5s9pz"; depends=[caret doParallel dplyr foreach futile_logger magrittr Matrix purrr rlang tibble tidyr]; };
   czechrates = derive2 { name="czechrates"; version="0.2.2"; sha256="162r9inbjkgfm3y73jb3d9pxmgid94jjy5kxjp7058jsiv2ibn05"; depends=[curl dplyr httr magrittr readr tibble tidyr]; };
-  czso = derive2 { name="czso"; version="0.3.5"; sha256="0wa6nyass4my3kw8mp44cw5gxswvk5zg8n9xb64xb330pvy3pf73"; depends=[curl dplyr httr jsonlite lifecycle magrittr readr rlang stringi stringr tibble usethis]; };
+  czso = derive2 { name="czso"; version="0.3.7"; sha256="1gq5arnysd81i9psljzamkgxkjwxmlmqv074bhpi7xv6ij6j1886"; depends=[curl dplyr httr jsonlite lifecycle magrittr readr rlang stringr tibble usethis]; };
   d3Network = derive2 { name="d3Network"; version="0.5.2.1"; sha256="1gh979z9wksyxxxdzlfzibn0ysvf6h1ij7vwpd55fvbwr308syaw"; depends=[plyr rjson whisker]; };
   d3Tree = derive2 { name="d3Tree"; version="0.2.2"; sha256="142bc6gdmhzaikdfyxb1pq9nlybgkrgi2kjgk40w4wbxzx5mwkbh"; depends=[dplyr htmlwidgets magrittr plyr stringr]; };
   d3plus = derive2 { name="d3plus"; version="0.1.0"; sha256="0kadz83pals03n0v3zqhmhf6visigk52yn58xckhb57fid4xzj5w"; depends=[htmlwidgets magrittr]; };
@@ -7741,14 +7792,16 @@ in with self; {
   dad = derive2 { name="dad"; version="4.0.0"; sha256="154afqf3xwbdjp9qr3rlz06ln2cnwzafk3p9h73k0h2g5n8yp5b9"; depends=[DescTools e1071 ggplot2]; };
   dadjoke = derive2 { name="dadjoke"; version="1.0"; sha256="118pacwc2qb3c5zbhr71zf4zj1ab2g4rs5h6bvrscjyd7a71jc3f"; depends=[]; };
   dadjokeapi = derive2 { name="dadjokeapi"; version="1.0.2"; sha256="143xs3nkf6ynr83z5gggz318nvpnsbfmskl1ipavlzrqk785dlac"; depends=[beepr curl dplyr httr png]; };
-  dae = derive2 { name="dae"; version="3.2-11"; sha256="0jrdfaw6aqv7k323yscsfpdkb3c4vi5ibncl6m96b9820pvycsz8"; depends=[ggplot2 plyr]; };
+  dae = derive2 { name="dae"; version="3.2-13"; sha256="0mq94ah21p1glvsbvdmi2p7nlgz1bvq7w3rz2z3mdqq18kz6nkjw"; depends=[ggplot2 plyr]; };
   daewr = derive2 { name="daewr"; version="1.2-7"; sha256="138hmmrm3zcdb2rcilvrasndvsq38agp9bpikd3xbb7j4z1nrsl7"; depends=[FrF2 lattice stringi]; };
   daff = derive2 { name="daff"; version="0.3.5"; sha256="00zcdf215m7p3xm9yv571v09znhdqacxg69hb5b5j749mp4wdsyj"; depends=[jsonlite V8]; };
   dafs = derive2 { name="dafs"; version="1.0-37"; sha256="1vdi57qaqdn39yf1ih2gzry02l289q4bffpksglsl4shs6bg2206"; depends=[s20x]; };
   dagR = derive2 { name="dagR"; version="1.2.0"; sha256="0fkh2cb0sln8sfklcxjr2qf68wjd4gbqkfay0kynvk5jan58f018"; depends=[]; };
   dagirlite = derive2 { name="dagirlite"; version="0.1.0"; sha256="12j5mfxcv32qgx1yklcq8yl2kx4lkxap4biywjrj0sjx6zj60f8l"; depends=[knitr Rdpack]; };
   dagitty = derive2 { name="dagitty"; version="0.3-1"; sha256="1a78g2nr8i7mzzxyb6mfsqqgjyf3s4hwngvyd9vyygzcb79bai3x"; depends=[boot jsonlite MASS V8]; };
+  dagwood = derive2 { name="dagwood"; version="0.1.3"; sha256="1z4a02b7z2wihsxm7p19478p3ix0f7j3kly2x43ib5207fh9m1yb"; depends=[dagitty]; };
   daiR = derive2 { name="daiR"; version="0.9.0"; sha256="0kq633jpiagbpsj0190pzpxmz8df6niqc6lwqgrahxfpda798srk"; depends=[base64enc curl fs gargle glue googleCloudStorageR httr jsonlite magick pdftools purrr stringr]; };
+  dalmatian = derive2 { name="dalmatian"; version="1.0.0"; sha256="0hpyg8sl5v87l1hxax9sj863hy9njdyp7hnsaw3cida365p0dswa"; depends=[coda dglm dplyr ggmcmc rlang tidyr]; };
   dam = derive2 { name="dam"; version="0.0.1"; sha256="1b0fi3l8jxgpr9fwvi03giq7wm39msbh0c82ffgkh54a3bbf5blc"; depends=[]; };
   dampack = derive2 { name="dampack"; version="1.0.1"; sha256="0mh3x0xgcipbd9341x3sfapysrd9m8aaakc1f53vwjj31c8vayqc"; depends=[dplyr ellipse ggplot2 ggrepel mgcv reshape2 scales stringr triangle truncnorm]; };
   damr = derive2 { name="damr"; version="0.3.7"; sha256="12vr630m2az8xb8wndk8cyh7r8mwg3lvr7i3fcgqqxcq9rsgqm4r"; depends=[behavr data_table readr]; };
@@ -7761,7 +7814,7 @@ in with self; {
   darksky = derive2 { name="darksky"; version="1.3.0"; sha256="1740cw5qifgvqa0nafd6lmllxi32n1zm45zlify1yn3h1qdcszhb"; depends=[ggplot2 gridExtra gtable httr plyr]; };
   dartR = derive2 { name="dartR"; version="1.9.9.1"; sha256="1i2ha796k5xhyzz8q26pygc9hy2ay2b357h50ljfs2rf4np6l0sz"; depends=[adegenet ape crayon devtools dplyr foreach ggplot2 gridExtra HardyWeinberg hierfstat MASS plyr PopGenReport robustbase SNPRelate sp StAMPP stringr tidyr vegan]; };
   darts = derive2 { name="darts"; version="1.0"; sha256="07i5349s335jaags352mdx8chf47ay41q7b0mh2xjwn2h9kzgqib"; depends=[]; };
-  dash = derive2 { name="dash"; version="0.5.0"; sha256="1hzyxplq0fclyr8ahh0mhrx1ibf49y43889p8fi8kmvg0x24i1iz"; depends=[assertthat base64enc brotli crayon dashCoreComponents dashHtmlComponents dashTable digest fiery htmltools jsonlite mime plotly R6 reqres routr]; };
+  dash = derive2 { name="dash"; version="0.9.3"; sha256="1wsvhnvh7sxi4gr88k6kycdr6is8akz9qjy70pl3whykyvx4cjq0"; depends=[assertthat base64enc brotli crayon digest fiery glue htmltools jsonlite magrittr mime plotly R6 reqres rlang routr]; };
   dashCoreComponents = derive2 { name="dashCoreComponents"; version="1.10.0"; sha256="11jrlls6k6qlvi81741ga908aw22m05fhhr9jpzli982s611jrwl"; depends=[]; };
   dashHtmlComponents = derive2 { name="dashHtmlComponents"; version="1.0.3"; sha256="01zrwjlhwwajk2lnv7is1r6nril83l65pynx856y9mvnm05xkb7m"; depends=[]; };
   dashPivottable = derive2 { name="dashPivottable"; version="0.0.2-1"; sha256="1fv5pnvimf7w1k1lsijh9y2zk4z1z00m6m640jxvqla5i1rqy8cq"; depends=[]; };
@@ -7771,14 +7824,14 @@ in with self; {
   dat = derive2 { name="dat"; version="0.5.0"; sha256="1d3q4bang6pm06rfzh6h947xy3wwqn3l6ri0h4hzklg5pzwpsajd"; depends=[aoos data_table Formula magrittr progress]; };
   data_table = derive2 { name="data.table"; version="1.14.2"; sha256="0arx5wna0sh0vf5q8rjhh8nqdmnvg2pdpbhljl9l0x4kwm8vjhgp"; depends=[]; };
   data_tree = derive2 { name="data.tree"; version="1.0.0"; sha256="0pizmx2312zsym4m42b97q2184bg3hibvbdrblcga05xln84qrs0"; depends=[R6 stringi]; };
-  data_validator = derive2 { name="data.validator"; version="0.1.5"; sha256="1p2dzn9q3vrqs3askp8ccriaxyhay8iyqhnaryr1drycwrd13wi8"; depends=[assertr dplyr htmltools htmlwidgets knitr purrr R6 rlang rmarkdown shiny shiny_semantic tibble tidyr]; };
   data360r = derive2 { name="data360r"; version="1.0.8"; sha256="0g3prfaqy7d5fdla4l31cj87vhzi945g22zr7pi2c2whlk4q4n09"; depends=[curl data_table jsonlite reshape2]; };
-  dataCompareR = derive2 { name="dataCompareR"; version="0.1.3"; sha256="178293hk21qjczi7hyffhlwn0lxrz2k9nxsy7jykjdbsqalyxwli"; depends=[dplyr knitr markdown stringi]; };
+  dataCompareR = derive2 { name="dataCompareR"; version="0.1.4"; sha256="1rapnlbi43z4sx4rq3fp8kpqhdj4g02fi3xglldbdp0c59f9vacg"; depends=[dplyr knitr markdown stringi]; };
   dataMaid = derive2 { name="dataMaid"; version="1.4.1"; sha256="06jywq3llwafjnpklqimra456crdi752zxci6z1w0v7p8blf4vjw"; depends=[ggplot2 gridExtra haven htmltools magrittr pander rmarkdown robustbase stringi whoami]; };
   dataMeta = derive2 { name="dataMeta"; version="0.1.1"; sha256="13xxayqxbps07h0xr5b7sb7q30gy5zm7jzzaq4k20fskkjrzhzcm"; depends=[dplyr]; };
-  dataPreparation = derive2 { name="dataPreparation"; version="1.0.2"; sha256="01ns6qrqr3pm9qfzc2lky0nqcnyn7adg3pdjf461kqhb2pvzcimv"; depends=[data_table lubridate Matrix progress stringr]; };
+  dataPreparation = derive2 { name="dataPreparation"; version="1.0.3"; sha256="0ywy6q5vdiw7a4xag9mwiccnj4sazflxq29mrw709iznpqxzxxb4"; depends=[data_table lubridate Matrix progress stringr]; };
+  dataReporter = derive2 { name="dataReporter"; version="1.0.2"; sha256="1rjm6j1s229j1j9yb5y1sdi03x22qzrkmhc09k4xdmwmwmpi3s58"; depends=[ggplot2 gridExtra haven htmltools magrittr pander rmarkdown robustbase stringi whoami]; };
   dataRetrieval = derive2 { name="dataRetrieval"; version="2.7.10"; sha256="0lmd2j9inc29s2xk09gk7rbypgcqzpb2vmnnbmbg1liw96jsz5wl"; depends=[curl httr jsonlite lubridate readr xml2]; };
-  datacleanr = derive2 { name="datacleanr"; version="1.0.1"; sha256="1kvlnvh2s8csng9q1l5bgc6aw7ax88dfl0iwbi4r8gc76swcbywm"; depends=[clipr dplyr DT formatR fs glue htmltools htmlwidgets lubridate magrittr plotly purrr RColorBrewer rlang rstudioapi shiny shinyFiles shinyWidgets summarytools]; };
+  datacleanr = derive2 { name="datacleanr"; version="1.0.3"; sha256="0mrfqm3lgb6sl2j35sfd00gb5121j9wmlff8k0vczr3sgmqz4dg8"; depends=[bslib clipr dplyr DT formatR fs glue htmltools htmlwidgets lubridate magrittr plotly purrr RColorBrewer rlang rstudioapi shiny shinyFiles shinyWidgets summarytools]; };
   datadigest = derive2 { name="datadigest"; version="1.0.2"; sha256="1v4nwflrgjhwkrdlrjnqyq1spv1jkgxn1kmapml0zrvnvwf0r1a1"; depends=[haven Hmisc htmltools htmlwidgets jsonlite miniUI shiny tibble]; };
   datadogr = derive2 { name="datadogr"; version="0.1.2"; sha256="10zbxb9gkymw78ras9y4wrifz7cxh3y630yzjcf9ds2p557vcjzp"; depends=[anytime dplyr glue httr lubridate purrr stringr tibble tidyr]; };
   dataframeexplorer = derive2 { name="dataframeexplorer"; version="1.0.0"; sha256="1bl24z9hqhrs3k459b5hprwc7j639myvkx0qbfcyv3hmi7mbsd0q"; depends=[data_table dplyr magrittr openxlsx plyr stringr tibble tidyr]; };
@@ -7787,7 +7840,7 @@ in with self; {
   datagovindia = derive2 { name="datagovindia"; version="1.0.5"; sha256="1k04k2bz56d3k1nbx8p8pc1x3cxrdmnpgbrgmxl5i1qg3yashj91"; depends=[curl dplyr httr magrittr plyr rlang stringr]; };
   datamap = derive2 { name="datamap"; version="0.1-1"; sha256="0qm4zb9ldg4wz1a7paj5ilr1dhyagq81rk9l2v43hmkv52sssgkv"; depends=[DBI]; };
   datamart = derive2 { name="datamart"; version="0.5.2"; sha256="0c0l157fzkcp30ch4ymaalcx18zhz6sa5srr50w9izhbx3pmldxp"; depends=[base64 gsubfn markdown RCurl RJSONIO XML]; };
-  datamods = derive2 { name="datamods"; version="1.1.5"; sha256="0nhii6csx4a2zk1ylv5b7f6wlz3rfp7hp2hww2z7p1s5v7pja6gz"; depends=[data_table DT htmltools readxl rio rlang shiny shinyWidgets tibble]; };
+  datamods = derive2 { name="datamods"; version="1.2.0"; sha256="1k5nbpy40jzk6jhgigq74qxvb0ni44p3iwb342950qbnb8aniwxw"; depends=[data_table DT htmltools phosphoricons readxl rio rlang shiny shinyWidgets tibble]; };
   datanugget = derive2 { name="datanugget"; version="1.0.0"; sha256="1ki4kgz6y9a313f07jml39pdxhadgs287rkpnlwvcw6kgj5qxala"; depends=[doSNOW foreach]; };
   dataonderivatives = derive2 { name="dataonderivatives"; version="0.3.1"; sha256="0q1zd1l7l0hmbs1bx469d706rmprjbz2f2dgcnfp9wxfgqpfxkz1"; depends=[assertthat httr lubridate readr tibble]; };
   dataone = derive2 { name="dataone"; version="2.2.1"; sha256="1gnzyjiwppx5mjwf38nm146vvmy6vlpqy9ibd2rc5f744pdvifxb"; depends=[base64enc datapack hash httr jsonlite parsedate plyr stringi stringr uuid XML]; };
@@ -7796,10 +7849,11 @@ in with self; {
   datapasta = derive2 { name="datapasta"; version="3.1.0"; sha256="0sqv29iv2rv50rbw1601rn8p7gv7rsw00djhl7h1znr0igzi5b82"; depends=[clipr readr rstudioapi]; };
   dataprep = derive2 { name="dataprep"; version="0.1.4"; sha256="0knzwnhpj7ahrd12n56f65wmsmrapgnnqdl10b5cacf0idih12g5"; depends=[data_table doParallel dplyr foreach ggplot2 reshape2 scales zoo]; };
   dataquieR = derive2 { name="dataquieR"; version="1.0.9"; sha256="0wc7vjjjffvmg9ahbqnygfrsk97n7k4y1y0ichvpr2nc8pfi7772"; depends=[dplyr emmeans ggplot2 ggpubr lme4 lubridate MASS MultinomialCI parallelMap patchwork R_devices reshape rlang robustbase]; };
+  datardis = derive2 { name="datardis"; version="0.0.2"; sha256="1ijwrbkz5dp19b225n6dcbjw264pad4imgm0yf1nqr106h92yjdv"; depends=[dplyr magrittr]; };
   dataresqc = derive2 { name="dataresqc"; version="1.1.0"; sha256="1m7c93yk3dp1l5ysgscjvmv7z0xnmgaz4bkci4ljmmmn5a9v6r3c"; depends=[]; };
   datarium = derive2 { name="datarium"; version="0.1.0"; sha256="1v98yxsxhfqlalz5qy3x5axb7fy067vf3y0qg7ngixphmy9qybym"; depends=[]; };
   datarobot = derive2 { name="datarobot"; version="2.18.0"; sha256="1sjng65qjqbizyfdhc3iny04x56dpvbdb8mck2kl9lyayrjxp81g"; depends=[httr jsonlite yaml]; };
-  datasailr = derive2 { name="datasailr"; version="0.8.9"; sha256="1jnbjhkrzprjhxcq7hqkfanz1qrnmrlsfbsjixliap6s647w1y5g"; depends=[Rcpp]; };
+  datasailr = derive2 { name="datasailr"; version="0.8.10"; sha256="03bnrgpwhmh67zrvap3cbaqd5k6nkp63b2h8m08xrdp1ngp5inik"; depends=[Rcpp]; };
   datasauRus = derive2 { name="datasauRus"; version="0.1.4"; sha256="1w1yhwwrmh95bklacz44wjwynxd8cj3z8b9zvsnzmk18m5a4k0fl"; depends=[]; };
   dataseries = derive2 { name="dataseries"; version="0.2.0"; sha256="11wc2p5m8qbdmkpbd21lpwl28a1dpab88c3gqyrhsn0298lpnip4"; depends=[]; };
   datasets_load = derive2 { name="datasets.load"; version="1.6.0"; sha256="0ybxqk0azzaxvcdffqb8d62sap11sx2zp7j1ndva83pmamwpckfj"; depends=[DT miniUI shiny]; };
@@ -7811,9 +7865,11 @@ in with self; {
   datawizard = derive2 { name="datawizard"; version="0.2.1"; sha256="062phzfcvn79npn4s58gz1m5ignyvr4q2zlqnyxla4p7l760djl9"; depends=[insight]; };
   datazoom_amazonia = derive2 { name="datazoom.amazonia"; version="0.2.0"; sha256="0l24blbscai47rj9s8a0znd5q4mayddp639107r8dib466ykrz3g"; depends=[data_table dplyr geobr googledrive Hmisc janitor labelled lubridate magrittr purrr RCurl readr readxl sf sidrar stringi stringr tibble tidyr XML]; };
   date = derive2 { name="date"; version="1.2-39"; sha256="0mwp1619rxqyyyyxk224fh0x6g4rgyvr97q0kj076cxp71b97cdm"; depends=[]; };
+  datefixR = derive2 { name="datefixR"; version="0.1.1"; sha256="051n7q7bwqbxazpdclbbd1qy57iq187g31xfclicaxjj23ba02ss"; depends=[stringr]; };
   daterangepicker = derive2 { name="daterangepicker"; version="0.1.0"; sha256="1605ch84ad3nmmad0yy3id0izv0nz536lxwib6rkdkjik5761gqk"; depends=[htmltools jsonify shiny]; };
   datetime = derive2 { name="datetime"; version="0.1.4"; sha256="0nn1yxknsn3crmwbkws5kvfjhd65dw0fkfbg67gba0dyaqp1jg37"; depends=[]; };
   datetimeutils = derive2 { name="datetimeutils"; version="0.5-0"; sha256="030md2pydhgx8x8chga7byl8x41m2dbw94b4ds7md2nqkdrq7hqz"; depends=[]; };
+  dateutils = derive2 { name="dateutils"; version="0.1.5"; sha256="03xch5wcvv15fy9x70smrki6374lddhf0sfp0inymdsq4g8wp4bc"; depends=[data_table Rcpp RcppArmadillo seasonal]; };
   datoramar = derive2 { name="datoramar"; version="0.1.0"; sha256="0zq6vhq6dmsyagmqrmb85z6fy9qhwra3s3iasr3jgc4ryr009pml"; depends=[httr jsonlite tibble]; };
   datos = derive2 { name="datos"; version="0.3.0"; sha256="0q0qjk9iahxzz4gycmiq4nb34kiqxb9bxbh55slp31bvx32zcz6n"; depends=[babynames dplyr forcats fueleconomy gapminder ggplot2 Lahman nasaweather nycflights13 rlang tibble tidyr yaml]; };
   datplot = derive2 { name="datplot"; version="1.0.0"; sha256="1y9pls1g2flz8n3jbh4jcp1fn78qwfbgsrzyf3jms9f6w8fs0f1d"; depends=[]; };
@@ -7873,7 +7929,7 @@ in with self; {
   deSolve = derive2 { name="deSolve"; version="1.30"; sha256="0j7mmg1mimdpql8f4i9dn920ciyyq80a5qnc4fq5xn5lyrx5vxir"; depends=[]; };
   deTS = derive2 { name="deTS"; version="1.0"; sha256="08yq7vfcd8fv8qw2w0f1rnj3rzys9kslmkqspmiz6prmzqvj1zf1"; depends=[pheatmap RColorBrewer]; };
   deTestSet = derive2 { name="deTestSet"; version="1.1.7.3"; sha256="0v59cczhwjrk7qgngmiyc7jvx11h808w4s3ww6l83n1ylx81fgll"; depends=[deSolve]; };
-  deaR = derive2 { name="deaR"; version="1.2.3"; sha256="1lhs649kr7zm4m6qqlkk2qz0wn98vx674lri7b9p2r846zzwq9y9"; depends=[dplyr ggplot2 gridExtra igraph lpSolve plotly tidyr writexl]; };
+  deaR = derive2 { name="deaR"; version="1.2.4"; sha256="1nkz9gac79rgyn8jlx35cx524c3v68bs6y0zbi2dbff9smxhbh93"; depends=[dplyr ggplot2 gridExtra igraph lpSolve plotly tidyr writexl]; };
   deadband = derive2 { name="deadband"; version="0.1.0"; sha256="02pq3d0l0wy8bdlyfir3zf46j1ascx4qajyq5cf28yl62q6ngq5d"; depends=[TTR]; };
   deal = derive2 { name="deal"; version="1.2-39"; sha256="0sw0v1mm004ky1gjw3dmvf2vb7nf2j9s9386bhqxijw63j7xnjd3"; depends=[]; };
   deamer = derive2 { name="deamer"; version="1.0"; sha256="1xbxr78n6s1yhf192ab4syi1naqlwl9z4cxzchrkw80q7bxqfiz8"; depends=[]; };
@@ -7882,7 +7938,7 @@ in with self; {
   debugr = derive2 { name="debugr"; version="0.0.1"; sha256="0lfq0s0hibd00558vl3dmvrkzxjc7q62xr8sqzai0pv9a9lhixcn"; depends=[rprojroot rstudioapi]; };
   decido = derive2 { name="decido"; version="0.3.0"; sha256="14y3z5ys5y3kffgm0dk92rx4vd1mi9jvxn7pqvwi4jhyx7wx06pw"; depends=[Rcpp]; };
   decision = derive2 { name="decision"; version="0.1.0"; sha256="13d0yyg5zp7n3r92l0l1dsffxfph6vacrlzga9rz41l5pja72z6g"; depends=[]; };
-  decisionSupport = derive2 { name="decisionSupport"; version="1.108"; sha256="1fhlj3601vj58zavh8csrpc28nqng2ldr5sq35cldhfngpqx6scv"; depends=[assertthat chillR dplyr fANCOVA ggplot2 ggstance magrittr msm mvtnorm nleqslv patchwork rriskDistributions stringr tidyr tidyselect]; };
+  decisionSupport = derive2 { name="decisionSupport"; version="1.109"; sha256="1ijrnbxx6l500jzlwmjrgb6na09avdp0s4gral8kh9zdswnm380n"; depends=[assertthat chillR dplyr fANCOVA ggplot2 ggstance magrittr msm mvtnorm nleqslv patchwork rriskDistributions stringr tidyr tidyselect]; };
   deckgl = derive2 { name="deckgl"; version="0.2.7"; sha256="0ifv6j0kbwayl60bf1rwd1h7424npqsqsvb44ngg7v0ik4bgbyfx"; depends=[base64enc htmltools htmlwidgets jsonlite magrittr readr tibble yaml]; };
   declared = derive2 { name="declared"; version="0.7"; sha256="17jc2d2gw6ss8w5d6a5w1mh3h3yyg0mrpys8kqkb5hpfr19r16c7"; depends=[admisc]; };
   decode = derive2 { name="decode"; version="1.2"; sha256="1qp0765gl3pgfdzjwj7icf3zminxxmrlw6gx3vj51y6c2y5ws4as"; depends=[]; };
@@ -7901,10 +7957,10 @@ in with self; {
   deepMOU = derive2 { name="deepMOU"; version="0.1.1"; sha256="1r05wg01nighmhs2r8z91w091fz2r1ryb1j0mi96knqqdjgcbh4i"; depends=[dplyr entropy extraDistr ggplot2 MASS Rfast skmeans]; };
   deepNN = derive2 { name="deepNN"; version="1.1"; sha256="0iqvr8cl7ks5qvwsp1sx10r4jpbchf4mlsq0s3icr2cs3x3ryxvi"; depends=[Matrix]; };
   deepboost = derive2 { name="deepboost"; version="0.1.6"; sha256="1nf9gjk9gjl2dz7cr3vh5lg8nxkbqwr82a132nw853axbdgbs9ga"; depends=[Rcpp]; };
-  deepdep = derive2 { name="deepdep"; version="0.2.5.3"; sha256="15fz8xym5xskg9nrxapzbh32dvxw1pbwmr2r831hcsdx3gh71yd7"; depends=[cranlogs ggforce ggplot2 ggraph graphlayouts httr igraph jsonlite scales]; };
+  deepdep = derive2 { name="deepdep"; version="0.2.5.4"; sha256="01k7jxzxfdwa638i1kr5p5dwn0szyvhaap2g1x013clvmj55n6rr"; depends=[cranlogs ggforce ggplot2 ggraph graphlayouts httr igraph jsonlite scales]; };
   deepdive = derive2 { name="deepdive"; version="1.0.4"; sha256="0q4jjq11bd52bx0vqjxsh0fz1b72pfy4gpj5p19z7p4czf4a46c6"; depends=[data_table fastDummies plyr rpart stringr treeClust]; };
   deepgmm = derive2 { name="deepgmm"; version="0.1.62"; sha256="1cllbq87xxzgba3a1prkjg7hdfkxjnmi8fgizqrlsvbxdhpg61yh"; depends=[corpcor mclust mvtnorm]; };
-  deepgp = derive2 { name="deepgp"; version="0.2.1"; sha256="0ixb7giis7a5v6cnzl5i7xgs20sq5p7anna7izvj03hb4j4dd8nx"; depends=[doParallel foreach]; };
+  deepgp = derive2 { name="deepgp"; version="0.3.0"; sha256="1sf1i29yqwb9s5y4lql0v54g1kfrdsm4a2bgfpi386swvk4p0nla"; depends=[BH doParallel foreach mvtnorm Rcpp RcppArmadillo]; };
   deeplr = derive2 { name="deeplr"; version="2.0.0"; sha256="189kfcsd3cr0397krbfqh56x7h0v6i27s5jbfwr5zrf3jazllall"; depends=[httr purrr tibble tokenizers utf8]; };
   deepnet = derive2 { name="deepnet"; version="0.2"; sha256="09crwiq12wzwvdp3yxhc40vdh7hsnm4smqamnk4i6hli11ca90h4"; depends=[]; };
   deepredeff = derive2 { name="deepredeff"; version="0.1.1"; sha256="027dsmc3wmm61qc0vybn02c5dbnz5nwf80m9sywci4nhirz978ik"; depends=[Biostrings dplyr ggplot2 ggthemes keras magrittr purrr reticulate rlang seqinr tensorflow]; };
@@ -7974,6 +8030,7 @@ in with self; {
   designsize = derive2 { name="designsize"; version="0.1.0"; sha256="1c9b320vssw3s1ybyialg5s85k1vfllbw40qfgmvnsr3imc2inb2"; depends=[]; };
   desirability = derive2 { name="desirability"; version="2.1"; sha256="094gxvp6a60lfcc0a0gk9rv1p6ajnzq9m58sy8cvhcj5337g4fmk"; depends=[]; };
   desire = derive2 { name="desire"; version="1.0.7"; sha256="0jmj644nj6ck0gsk7c30af9wbg3asf0pqv1fny98irndqv508kf6"; depends=[loglognorm]; };
+  desla = derive2 { name="desla"; version="0.1.0"; sha256="12daspn24131gw1hizd169ijxkc8wvfl2xlicd0pwz85j8bbsa95"; depends=[Rcpp RcppArmadillo RcppProgress Rdpack]; };
   desplot = derive2 { name="desplot"; version="1.9"; sha256="0dg8j3l6x12g4h5hsxwhxvc8i03gwlvm80l03rx3wwqsx070if1y"; depends=[ggplot2 lattice reshape2]; };
   details = derive2 { name="details"; version="0.2.1"; sha256="03fw3jbf1a34w9c205wwjkqnw6ic1gylsf36qw33mx4ba252s2hy"; depends=[clipr desc httr knitr magrittr png withr xml2]; };
   detect = derive2 { name="detect"; version="0.4-4"; sha256="1gzd98b4kg5rw0kpgznrb1wmr3iavdq5983n6wqx33lga1lqq9d6"; depends=[Formula Matrix pbapply]; };
@@ -8020,7 +8077,7 @@ in with self; {
   dhglm = derive2 { name="dhglm"; version="2.0"; sha256="1918wkylldcdxjggly3a4yh4cv2nkig5bjfx0j79av633hahlg92"; depends=[boot car MASS Matrix sandwich]; };
   dhh = derive2 { name="dhh"; version="0.0.1"; sha256="00kg2x1was85aq2vr15bak8y5p4mymbs8pbriijlbw64401djmb0"; depends=[]; };
   di = derive2 { name="di"; version="1.1.4"; sha256="1w2gjhyi410z98d8wnhbd69jxm69nz4pmnr4fb09i70a90f53s25"; depends=[scales]; };
-  diagis = derive2 { name="diagis"; version="0.1.5"; sha256="1vjj27nn1fjx7wpqpn5x7pir4kd7b4pz9y6mz8a4jby9imc5ypnk"; depends=[coda ggplot2 gridExtra Rcpp RcppArmadillo]; };
+  diagis = derive2 { name="diagis"; version="0.2.2"; sha256="0bnyia73dcnygk6q4n4sxprhxj2pfmzcwmivk5kaxzagqi2zli8g"; depends=[coda ggplot2 gridExtra Rcpp RcppArmadillo]; };
   diagmeta = derive2 { name="diagmeta"; version="0.4-1"; sha256="1xb49m5q7r1amv0kpr62yab3fb3xsaxmx3p0fgcmwiyvv8vzkdnw"; depends=[lme4 meta]; };
   diagonals = derive2 { name="diagonals"; version="6.0.0"; sha256="1gpm7i22s3v4v7kfgph4k99n255cgzsvc2k11kdflm1zdlp5vg2v"; depends=[]; };
   diagram = derive2 { name="diagram"; version="1.6.5"; sha256="1r3lyl0h7mk9cfg8smr3jydfkjdawaphnxibkxfjqa7029vkxh79"; depends=[shape]; };
@@ -8029,7 +8086,7 @@ in with self; {
   dialrjars = derive2 { name="dialrjars"; version="8.12.29"; sha256="08wvnmy4c6bfj8hpf8rhiwc0xidmz0y84s36dwjl4bfdqyw3q4r0"; depends=[rJava]; };
   dials = derive2 { name="dials"; version="0.0.10"; sha256="1vhqcfwgic01pkw0i3000fvqq9yxfzsv26c0psfjhxkkdcz8h2px"; depends=[DiceDesign dplyr glue purrr rlang scales tibble vctrs withr]; };
   diaplt = derive2 { name="diaplt"; version="1.3.0"; sha256="1kkqhkv3s8rrpqd05jidjdnqmlnb3s9f8rr34rfqj7k4nh0qzzcz"; depends=[]; };
-  diathor = derive2 { name="diathor"; version="0.0.6"; sha256="1v3mqrb8jikwa0j94zg5ll5dxdyrx0f8vh6q5j1232152g5nqjpj"; depends=[data_table ggplot2 purrr stringdist stringr tibble tidyr vegan]; };
+  diathor = derive2 { name="diathor"; version="0.0.9"; sha256="1p6y89vi37a8i3fwnj7rb0hdggk6qrxnsrw0sbpajzkwv1jvyal0"; depends=[algaeClassify data_table ggplot2 purrr stringdist stringr tibble tidyr vegan]; };
   dice = derive2 { name="dice"; version="1.2"; sha256="0gic7lqnsdmwv3dbzwwmcwdfyfqlq8kpr2pciqphd1j2ligzwl3s"; depends=[gtools]; };
   diceR = derive2 { name="diceR"; version="1.1.0"; sha256="01jh69b7x4agw5w2y9dal9g0nbq8s1ff36vcz2xfsjc0vi76irfs"; depends=[abind assertthat class clue clusterCrit clValid dplyr ggplot2 infotheo klaR magrittr mclust NMF purrr RankAggreg Rcpp stringr tidyr yardstick]; };
   dichromat = derive2 { name="dichromat"; version="2.0-0"; sha256="1l8db1nk29ccqg3mkbafvfiw0775iq4gapysf88xq2zp6spiw59i"; depends=[]; };
@@ -8041,6 +8098,7 @@ in with self; {
   didrooRFM = derive2 { name="didrooRFM"; version="1.0.0"; sha256="12clfnbm56jwldw0afb0nb0argnd97mx7369jiywhxy0p4xqibqq"; depends=[dplyr]; };
   dief = derive2 { name="dief"; version="1.2"; sha256="1i4icdfqvw7imaj1fh392zmzfyz8aqlv9s5naqxm1pm0lqfxl6ca"; depends=[flux fmsb ggplot2 plyr]; };
   dielectric = derive2 { name="dielectric"; version="0.2.3"; sha256="1p1c0w7a67zxp1cb99yinylk5r1v89mmpfybcy94ydydhydbhivk"; depends=[]; };
+  dietr = derive2 { name="dietr"; version="1.1.2"; sha256="076j5w5d9ggfndxjjc52mq93h7fnz0fqv0prs1lv1j3m8f3693xw"; depends=[rfishbase]; };
   diezeit = derive2 { name="diezeit"; version="0.1-0"; sha256="0rq1k08byvqn99wpql7drnrcxlzcqrcxixh7bczbc8dv1hhsgk9i"; depends=[brew httr jsonlite]; };
   difNLR = derive2 { name="difNLR"; version="1.3.7"; sha256="1fvil2zys3i8raqkmm8s5p6dyxziwcgchxr1m7q69flms6cpg8gv"; depends=[calculus CTT ggplot2 msm nnet plyr reshape2 VGAM]; };
   difR = derive2 { name="difR"; version="5.1"; sha256="1cd5kaal5mjrbj1l9ki2wbqasdxphgc2yhaf4xwgbh1nr2zkhr02"; depends=[deltaPlotR lme4 ltm mirt]; };
@@ -8063,7 +8121,7 @@ in with self; {
   diffusr = derive2 { name="diffusr"; version="0.1.4"; sha256="1f3h387kblw1xzdnxphwgfl1n7f6i07kk7kfslvbfxkalbish6ii"; depends=[igraph Rcpp RcppEigen]; };
   diffviewer = derive2 { name="diffviewer"; version="0.1.1"; sha256="01phkaaa0zylyi23siwam18i1ggfgq2m66d69lnz9ips1yh12yca"; depends=[htmlwidgets jsonlite]; };
   digest = derive2 { name="digest"; version="0.6.28"; sha256="006vqwfrry84xn51lxlfalzn9yqr1k81s39r0zy251azx5sqqcja"; depends=[]; };
-  digitTests = derive2 { name="digitTests"; version="0.1.0"; sha256="1pqzbsg7fabkbw3727c89rfxl6xc9l95cawjinqgq3g0fl2vr4hv"; depends=[]; };
+  digitTests = derive2 { name="digitTests"; version="0.1.1"; sha256="1q9ksyzvbaq4n47ww7sq0w0arsy1i11b1zlyyzk0g1ks35jlxgpv"; depends=[]; };
   digitalDLSorteR = derive2 { name="digitalDLSorteR"; version="0.1.1"; sha256="083ap03wxmzqynk66gswzilrfd8wrdsrkixdasw1w46pssrab79k"; depends=[dplyr edgeR ggplot2 ggpubr gtools keras Matrix Matrix_utils pbapply RColorBrewer reshape2 reticulate rlang S4Vectors SingleCellExperiment splatter SummarizedExperiment tensorflow tidyr zinbwave]; };
   digitalPCR = derive2 { name="digitalPCR"; version="1.1.0"; sha256="0hwqq84yr1hnvf4bygc5425887dhqjjjyy1ils71iavcal04s8pb"; depends=[]; };
   digitize = derive2 { name="digitize"; version="0.0.4"; sha256="1qw4x4z9vrs79sd9b2daw668nc6nvjl4qhayfqmd87yxa2ydv6x0"; depends=[readbitmap]; };
@@ -8073,9 +8131,10 @@ in with self; {
   dimensionsR = derive2 { name="dimensionsR"; version="0.0.2"; sha256="1g9yjrq7xnqh427kzmhhmdavykzxidv51i2wx2w0kwhl6fqdd2fk"; depends=[httr jsonlite]; };
   dina = derive2 { name="dina"; version="2.0.0"; sha256="1sq7998xc5qhvd8clc8r32ch7axinh2a2dc7i1w2p148wv130yhd"; depends=[Rcpp RcppArmadillo rgen simcdm]; };
   dinamic = derive2 { name="dinamic"; version="1.0"; sha256="0mx72q83bbwm10ayr3f1dzwr5wgz7gclw7rh39yyh95slg237nzr"; depends=[]; };
+  dineR = derive2 { name="dineR"; version="1.0.1"; sha256="1nnfg4kylb8ivwij1qdn9qv5jciinl4jk4gghfw97jphp4da91pw"; depends=[MASS Matrix progress]; };
   dineq = derive2 { name="dineq"; version="0.1.0"; sha256="1xrhrdc970f7hm9xng9z7xmshnmmz89cn3gmnyabzprx44ccr9sl"; depends=[boot Hmisc]; };
   dint = derive2 { name="dint"; version="2.1.3"; sha256="0nxppn7gx4sjwn7jns5bwbqfid3jkbsx2lxi0rjdkbsawy77fc85"; depends=[]; };
-  dipm = derive2 { name="dipm"; version="1.2"; sha256="1irrq1iidkqc6j7bg5c0fpgyfhnbay6b3fjv4h5amqgarchb1igg"; depends=[ggplot2 partykit survival]; };
+  dipm = derive2 { name="dipm"; version="1.5"; sha256="1mqannl493mic8qx75qq8147jb6hddsxsk7q8h51zjb3zr6b9hjp"; depends=[ggplot2 partykit survival]; };
   diproperm = derive2 { name="diproperm"; version="0.2.0"; sha256="0qh8zzpbsjfwh8q833n5pchb6dakqdza77ab7vmsidfbzndka11m"; depends=[dplyr DWDLargeR e1071 ggplot2 gridExtra lemon Matrix sampling SparseM usethis]; };
   dipsaus = derive2 { name="dipsaus"; version="0.1.9"; sha256="0rpx6nasgf1dcrksvp7zp4pc1gjx64vbcxa0f6189agsnwz6w4yj"; depends=[base64enc base64url cli digest fastmap future future_apply jsonlite progressr R6 Rcpp RcppParallel rlang rstudioapi shiny startup stringr synchronicity]; };
   diptest = derive2 { name="diptest"; version="0.76-0"; sha256="10629vwn6r2949jjrmj5slbb5v0vnm3w0v8mrl7ws68m2sxmx2jh"; depends=[]; };
@@ -8099,7 +8158,7 @@ in with self; {
   discnorm = derive2 { name="discnorm"; version="0.1.0"; sha256="00dkdxvj0fmlmr9l34ajvfv1jzlnyr9sdnnpgik8lhcj5a7h8l6f"; depends=[arules lavaan MASS pbivnorm psych sirt]; };
   disco = derive2 { name="disco"; version="0.6"; sha256="1abvhf0yb4mw02j1krjb7q68jpwdnl2narcalf3vkjcbflcp76z3"; depends=[ggplot2 RColorBrewer tmod]; };
   discord = derive2 { name="discord"; version="1.1.0"; sha256="0is9gwj09zj25hklsxgi3k7ypq2qp2yx0vir6wgpnd30wa11zs5h"; depends=[]; };
-  discourseGT = derive2 { name="discourseGT"; version="1.1.6"; sha256="1nq3pgd6jrv7v7gal7ba2gxq2255pjdi3vsnkdj73dwswzvq7w7k"; depends=[BiocManager dplyr GGally ggplot2 ggpubr ggrepel igraph network sna]; };
+  discourseGT = derive2 { name="discourseGT"; version="1.1.7"; sha256="1nfc1v39y4af5l4zmp00dhp4bzp10wq107gx5ggrvpq9q2nn4hwd"; depends=[dplyr GGally ggplot2 ggrepel igraph network]; };
   discoveR = derive2 { name="discoveR"; version="2.2.6"; sha256="0fwdcwiahb3svw2is07vc6g0h0ha7gvlw3j3im7ys4nsl9vng1wv"; depends=[cluster colourpicker config DT echarts4r ggdendro ggplot2 golem htmltools htmlwidgets plotly rlang shiny shinyAce shinycustomloader shinydashboard shinydashboardPlus shinyjs]; };
   discoverableresearch = derive2 { name="discoverableresearch"; version="0.0.1"; sha256="0gw9fpmsqj1cj2qr7hqr86j28kjn3qfykdkkxrazj3dnv981xhhy"; depends=[dplyr magrittr ngram readr stopwords stringdist stringi synthesisr tm]; };
   discreteMTP = derive2 { name="discreteMTP"; version="0.1-2"; sha256="13qsf1kc3rph0kkdkz31qj072www5dwjyk73lfpy141rzhcn1v1x"; depends=[]; };
@@ -8121,12 +8180,14 @@ in with self; {
   dispmod = derive2 { name="dispmod"; version="1.2"; sha256="16r6is0pchzc9mxpz0c44f72j76vsh3j9damalcxajrha06dkdq4"; depends=[]; };
   disposables = derive2 { name="disposables"; version="1.0.3"; sha256="0q5wacjclspn2fh7z1pg2l67ll51n75wck5h2fdq2vxy3qn3vwis"; depends=[]; };
   dispositionEffect = derive2 { name="dispositionEffect"; version="1.0.0"; sha256="0vx87xylpx3np6afwwylzwp0nb9g8r04ngn8mgr88ycys815fkqw"; depends=[dplyr lubridate magrittr progress purrr rlang]; };
+  disprose = derive2 { name="disprose"; version="0.1.1"; sha256="1r8q719bzs728li6x7c1d60n05lvgrcqinfq0a9al9y92q2y5zkp"; depends=[]; };
   dissCqN = derive2 { name="dissCqN"; version="0.1.0"; sha256="142f4ggzwdhf2vm9kisayna9a5j17mmy2jckhjrvxh4k5dc3ssf6"; depends=[]; };
   dissUtils = derive2 { name="dissUtils"; version="1.0"; sha256="00fzlmkdfw2s3k824wp2pk3v7cvxnywi1hfp86g4mm95z2qlw9br"; depends=[]; };
   dissever = derive2 { name="dissever"; version="0.2-3"; sha256="1lgs5nmv3lpm4gsryxvcwiwibvvg9flv23q8maisp77x49c18qcp"; depends=[boot caret dplyr foreach magrittr plyr raster sp viridis]; };
   distTails = derive2 { name="distTails"; version="0.1.2"; sha256="10p7rfqfkhcwq10lhz3cq9i4k1jdccks4y3791lajljsxz5jrca4"; depends=[ercv gsl MASS]; };
   distance_sample_size = derive2 { name="distance.sample.size"; version="0.0"; sha256="0hlf3kp34rg1gnkxp4k3rnv0shv4fpgb0rhx3a6x5692lhyigbcs"; depends=[MASS]; };
   distances = derive2 { name="distances"; version="0.1.8"; sha256="0mmwks1qzx680izv26x8mcfs4i16mnmf6s9arz1ssx470xwxljxy"; depends=[]; };
+  distanceto = derive2 { name="distanceto"; version="0.0.2"; sha256="05wmv1slvwaw6cffnqad2bp8cn30fnyc4gmi106922ah98k3l5g0"; depends=[geodist nabor sf]; };
   distantia = derive2 { name="distantia"; version="1.0.2"; sha256="12d6xzhcxs3xxyj82ih6chrr638siy45gna1s22vhnqvjd5jixc6"; depends=[arrangements data_table doParallel fields foreach iterators plyr RColorBrewer viridis]; };
   distcomp = derive2 { name="distcomp"; version="1.3-1"; sha256="06vkyl0r9s1ci8cq6mqc54z5drcw0mabn44864230jd4b3466ifl"; depends=[digest dplyr gmp homomorpheR httr jsonlite magrittr R6 rlang shiny stringr survival]; };
   distcrete = derive2 { name="distcrete"; version="1.0.3"; sha256="0sa6z2mpmk51ig1r7bmpbyv2jd8z6z7mixki2vlq1kybg8cx3wmi"; depends=[]; };
@@ -8177,15 +8238,15 @@ in with self; {
   dlib = derive2 { name="dlib"; version="1.0.3.1"; sha256="1rchl4f3zj0azz8d4n139daba2gz6vnm60jq45vgc9gphk2mrnnb"; depends=[Rcpp]; };
   dlm = derive2 { name="dlm"; version="1.1-5"; sha256="1aksm66sfa7ipl5xgs4j5giac7q2m744wjl40mva56xn6i674h4r"; depends=[]; };
   dlnm = derive2 { name="dlnm"; version="2.4.7"; sha256="0mbww28n95vnd6wrn1b4mfsdvnyffa8mr6ws4jqmqdc23nydl9p4"; depends=[mgcv nlme tsModel]; };
-  dlookr = derive2 { name="dlookr"; version="0.5.1"; sha256="1rlm6kwzvng3dhr6lrd6fklnz4pva8pda0rkbvg8x1k4skyw27rk"; depends=[dplyr extrafont ggplot2 gridExtra hrbrthemes htmltools kableExtra knitr mice pagedown partykit purrr reactable rlang rmarkdown shiny tibble tidyr tidyselect]; };
+  dlookr = derive2 { name="dlookr"; version="0.5.3"; sha256="04cq0nai7aqc80r0j0fx6fhizz21waxl8hyf9y6384nywymx6ani"; depends=[dplyr ggplot2 gridExtra hrbrthemes htmltools kableExtra knitr mice pagedown partykit purrr reactable rlang rmarkdown shiny showtext sysfonts tibble tidyr tidyselect]; };
   dlr = derive2 { name="dlr"; version="1.0.1"; sha256="13gr8rk8igbypq9mg00pyk2pjczxr1ghkj5287gijxnxch7zdknc"; depends=[digest fs rappdirs rlang]; };
   dlsem = derive2 { name="dlsem"; version="2.4.6"; sha256="1h3bwqqpfjkl41b2mbfhsj0pi9kri0h0i28wiid6arjrmm87nsf8"; depends=[graph Rgraphviz]; };
   dlstats = derive2 { name="dlstats"; version="0.1.4"; sha256="1j415v3kajn269md046b05pwklqwm4rwk2f7q3mwax9yx4m5nc0n"; depends=[ggplot2 jsonlite magrittr RColorBrewer scales]; };
-  dm = derive2 { name="dm"; version="0.2.5"; sha256="0n8d4d00pz4l6if28q7614xvj6d5k4zhhpvijway97l6skdcg2hg"; depends=[backports cli DBI dplyr ellipsis glue igraph lifecycle magrittr memoise pillar purrr rlang tibble tidyr tidyselect vctrs]; };
+  dm = derive2 { name="dm"; version="0.2.6"; sha256="0jjsl70gwpa9syprj02way20l2675g090ai1633i3bh98slbkkxj"; depends=[backports cli DBI dplyr ellipsis glue igraph lifecycle magrittr memoise pillar purrr rlang tibble tidyr tidyselect vctrs]; };
   dma = derive2 { name="dma"; version="1.4-0"; sha256="003snr09hazszwqnvjrbv8vyz6ihgcfcfhrlshg451dddn920615"; depends=[MASS]; };
   dmacs = derive2 { name="dmacs"; version="0.1.0"; sha256="1prw6h8sj6fcpajg6xwqhi8v5jfl74mbjdjrdy524miw56fh9h0r"; depends=[lavaan MplusAutomation]; };
   dmai = derive2 { name="dmai"; version="0.4.0"; sha256="0ma89jl0l598sffpikvjj40f2djjcnjq29k6y1bav4dm2g51qgmq"; depends=[dplyr ggplot2 magrittr stringr tibble tidyr]; };
-  dmbc = derive2 { name="dmbc"; version="0.4.0"; sha256="1m8zwy18phlxpmlp8rf07d615fjg15gqs5wdfm78d49266032jay"; depends=[abind bayesplot coda ggplot2 ggrepel MCMCpack modeltools pcaPP Rcpp RcppArmadillo RcppProgress robustbase]; };
+  dmbc = derive2 { name="dmbc"; version="1.0.0"; sha256="0hfcc12v73c0x11jvp0pm2ddm2qd1fdv8667k67r7d1zi0cp2i5g"; depends=[abind bayesplot coda ggplot2 ggrepel MCMCpack modeltools pcaPP Rcpp RcppArmadillo RcppProgress robustbase]; };
   dml = derive2 { name="dml"; version="1.1.0"; sha256="0z1dalgxh5nhrac49vh60d5awzjylc8b8mn5fk379c324milm59l"; depends=[lfda MASS]; };
   dmlalg = derive2 { name="dmlalg"; version="1.0.1"; sha256="1jgypgclv9609i2vfwskjy61vl3giv7ia79d3d20ly324khxalhb"; depends=[glmnet lme4 matrixcalc randomForest]; };
   dmm = derive2 { name="dmm"; version="2.1-7"; sha256="0zn7d2lr2vig8q6h5dd5zk7ra1f0mkm6pszl3v06aghcflg63ng3"; depends=[MASS Matrix nadiv pls robustbase]; };
@@ -8230,7 +8291,8 @@ in with self; {
   dominanceanalysis = derive2 { name="dominanceanalysis"; version="2.0.0"; sha256="0qxldvlgbysy9j17kb0a9p132a04a4j12h4m0r70zv2752fj24c0"; depends=[]; };
   domino = derive2 { name="domino"; version="0.3.1"; sha256="0f67w0z5jy82kgm3l1rji430ayigw30vmmwp3i1nz0xibsx7jxv4"; depends=[]; };
   domir = derive2 { name="domir"; version="0.2.0"; sha256="0zy0ymsx6m6d26szpk3h85yknqraa7gxi8765qdxjs1cajl0dgll"; depends=[]; };
-  donut = derive2 { name="donut"; version="1.0.1"; sha256="17qiy9j0qm2q2gcysd5717bdl9nmkd7pd5z22pcj3icvxcpssval"; depends=[]; };
+  donut = derive2 { name="donut"; version="1.0.2"; sha256="0idynkhcdn9va32m1n1rxjyb7ghbkhyy1959wks2bn1a7k4yg87i"; depends=[]; };
+  doolkit = derive2 { name="doolkit"; version="1.0.1"; sha256="09kgd1ca1aacvh9gjfns85m36zl5bj095j21avn1jgp8h5mk7301"; depends=[concaveman ggplot2 igraph MASS Morpho rgl Rvcg sp tis usethis]; };
   doremi = derive2 { name="doremi"; version="1.0.0"; sha256="005kp6f4jh8y1ykhri3mjnvc9w66b1a51bji574rkbxd1ans6mal"; depends=[data_table deSolve futile_logger ggplot2 gridExtra lme4 lmerTest zoo]; };
   dosearch = derive2 { name="dosearch"; version="1.0.8"; sha256="1jymk03snrfmr9da7h7l9823mzlcn6y4z6ay6nzi82n08d9xmp06"; depends=[Rcpp]; };
   dosedesignR = derive2 { name="dosedesignR"; version="0.2.4"; sha256="0c8rilx4afih457f9gafgijm569g366lp4wms0vhc0f9kgr1z8h3"; depends=[DoseFinding DT ggplot2 lattice latticeExtra shiny shinyjs]; };
@@ -8241,6 +8303,7 @@ in with self; {
   dotdot = derive2 { name="dotdot"; version="0.1.0"; sha256="0d8inv2m7pkk6dnv9j9zai4lhghcg656l46d00rhp604rbhzlmw9"; depends=[]; };
   dotenv = derive2 { name="dotenv"; version="1.0.3"; sha256="0dclwqg2hxdly8z3cckcskcll3dfax6g14h1xzjzdfwahhrbr5wb"; depends=[]; };
   dotgen = derive2 { name="dotgen"; version="0.1.0"; sha256="12dvn52ggmkj2q6whi8s2hh9fpg7jcg20bgx32jxzh4cb1zxnksz"; depends=[mvtnorm]; };
+  dotprofile = derive2 { name="dotprofile"; version="0.0.1"; sha256="10vm8s1sk4i2930zzswgwy1y873x8byfr7xfb8xq6cdk9ci7l741"; depends=[cli R6]; };
   dotwhisker = derive2 { name="dotwhisker"; version="0.7.4"; sha256="0awqdxb98vjafvjvx6fkmlyy6c2lp52la2b69964bawx5lgwj16b"; depends=[dplyr ggplot2 ggstance gtable margins parameters purrr rlang stringr]; };
   doubcens = derive2 { name="doubcens"; version="1.1"; sha256="1hn65n67by3xqbcnaf5jja5pli0g6wpbbz2sfzd7i2nms7kiywhp"; depends=[]; };
   double_truncation = derive2 { name="double.truncation"; version="1.7"; sha256="0hrb1qli7i4jhc705rb02zbq2nyk0i406bb8gpy4jrzygjjbq3g0"; depends=[]; };
@@ -8248,6 +8311,7 @@ in with self; {
   downlit = derive2 { name="downlit"; version="0.4.0"; sha256="10zvrqdpwavdy97h3q26bqh3k63z61fmc04w9vwsnvmnv8hnh3vl"; depends=[brio desc digest evaluate fansi memoise rlang vctrs yaml]; };
   downloader = derive2 { name="downloader"; version="0.4"; sha256="1axggnsc27zzgr7snf41j3zd1vp3nfpmq4zj4d01axc709dyg40q"; depends=[digest]; };
   downloadthis = derive2 { name="downloadthis"; version="0.2.1"; sha256="12df3cxg1x84f3sibllykd5wqs11mr4nlyv8hj8bh9d6wjvwj2li"; depends=[base64enc bsplus fs ggplot2 htmltools magrittr mime readr writexl zip]; };
+  downscale = derive2 { name="downscale"; version="4.2-0"; sha256="1ha36jiahvrg75qwzp9wpgnqqizw6ivc02q24fyz5frzssda6wd8"; depends=[cubature minpack_lm raster Rmpfr sp]; };
   downscaledl = derive2 { name="downscaledl"; version="1.0"; sha256="0lqxngzpxj65b48j5w0n8dg6fp4lgg5zpgxc2wj6d9wh5f97l71b"; depends=[dplyr keras magrittr raster Rcpp RcppArmadillo rgdal rstack sp tensorflow]; };
   downsize = derive2 { name="downsize"; version="0.2.2"; sha256="18b9shd79z0bsdnp0apqqwv6c73j4wnfiv41ywqz761nmxbldxbn"; depends=[magrittr R_utils]; };
   dowser = derive2 { name="dowser"; version="0.1.0"; sha256="1k85m4xm1kkkzk19kxim83i3pbl22mz2lql4cw0ml7wmx0m1pva9"; depends=[alakazam ape Biostrings dplyr ggplot2 ggtree gridExtra markdown phangorn phylotate RColorBrewer rlang shazam stringr tidyr tidyselect]; };
@@ -8293,8 +8357,9 @@ in with self; {
   droptest = derive2 { name="droptest"; version="0.1.3"; sha256="1wlfhj6c4pb5mcybyd2bcn55y3azk7dv7d7il97qwbhl8kf59csl"; depends=[data_table]; };
   drord = derive2 { name="drord"; version="1.0.1"; sha256="0xi85s6y78d54qv3cw7q72dz5kcs8cc8nyjyaxr5h6pfpzi2l8i9"; depends=[ggplot2 MASS ordinal VGAM]; };
   drought = derive2 { name="drought"; version="1.0"; sha256="1rj3aycvkb0f85p12l356rlhid4zfzqkhks20x2hhwvpk8nhri8h"; depends=[copula]; };
-  drpop = derive2 { name="drpop"; version="0.0.2"; sha256="01lr3xchqnd2g75k8w8p4rzbqnd5rrcjhfcr3bz7nja5j4vrq307"; depends=[dplyr gam ggplot2 janitor nnet nnls ranger reshape2 stringr SuperLearner tidyr]; };
+  drpop = derive2 { name="drpop"; version="0.0.3"; sha256="1gh0w1a59070g9mmck4fp9591vfw23c5nlj3jrkxwarp4vfy1dqp"; depends=[dplyr gam ggplot2 janitor nnet nnls ranger reshape2 stringr SuperLearner tidyr]; };
   drtmle = derive2 { name="drtmle"; version="1.1.0"; sha256="08a6k0nrg6mqdslwjc71583x52vnax87nbfalk98zczwvrrdwvxa"; depends=[future_apply np SuperLearner]; };
+  drugprepr = derive2 { name="drugprepr"; version="0.0.4"; sha256="07401dqw4krqh3rv7y13526n0xjdlaw14gcxwranksjchmqjd3ij"; depends=[DescTools doseminer dplyr purrr rlang sqldf stringr tidyr]; };
   drumr = derive2 { name="drumr"; version="0.1.0"; sha256="09xi3sf424bpq10fq25j209dylfbi1lfd911r44ffadkxzvp5p1s"; depends=[audio stringr]; };
   ds = derive2 { name="ds"; version="4.0"; sha256="1iic5fb27cnhsa83zg28hydrhzc01i9z0711xvk95c3gv7mbfp2p"; depends=[]; };
   ds4psy = derive2 { name="ds4psy"; version="0.7.0"; sha256="1dyylnx2lsdvsv9cydjp4qm1dgn4lv44afr2hplqyi45jmmzy8mm"; depends=[ggplot2 unikn]; };
@@ -8328,7 +8393,7 @@ in with self; {
   dualtrees = derive2 { name="dualtrees"; version="0.1.4"; sha256="05mxwiwnv48jf6ya5qmfc7g2w8wkzhk56k9g0gr2m4cpfab7d5h2"; depends=[]; };
   duawranglr = derive2 { name="duawranglr"; version="0.6.7"; sha256="0hxmvyl81xlp3vv1w7462cjfa9hdz5lki0p5pn0ik7dv5aap3wbq"; depends=[digest dplyr haven readr readxl]; };
   dub = derive2 { name="dub"; version="0.2.0"; sha256="066lzyk44380mf17vx4db4a3a4rs7zl85mj5hjg172khjbqnbixw"; depends=[]; };
-  duckdb = derive2 { name="duckdb"; version="0.3.0"; sha256="07bv2kqnghmcdzrp6kmfckgckvl9dgmb2bj7895il30r9hxy9gcx"; depends=[DBI]; };
+  duckdb = derive2 { name="duckdb"; version="0.3.1-1"; sha256="1v9l2vlg0xhyj07q6kplqksw48fiivlfjgpc74x11kbmilz768qg"; depends=[DBI]; };
   duckduckr = derive2 { name="duckduckr"; version="1.0.0"; sha256="1wki8xvqp5hr27iafd9jbryl9faywfkdkpn0pa0afywbic39k2cm"; depends=[crul jsonlite]; };
   dumbbell = derive2 { name="dumbbell"; version="0.1"; sha256="0v0b4wbfskvcnzx10z9v4rf3mq8ccswz63pd6i1z7mggnwv38ps5"; depends=[data_table dplyr ggplot2 rlang rstatix tidyr tidyverse]; };
   dummies = derive2 { name="dummies"; version="1.5.6"; sha256="01f84crqx17xd6xy55qxlvsj3knm8lhw7jl26p2rh2w3y0nvqlbm"; depends=[]; };
@@ -8369,7 +8434,7 @@ in with self; {
   dynplot = derive2 { name="dynplot"; version="1.1.1"; sha256="107j4cpvdy52gywaiw1pyxrpx1j2ihr101hmqghsgihm9qkmabb4"; depends=[assertthat dplyr dyndimred dynfeature dynutils dynwrap GA ggforce ggplot2 ggraph ggrepel igraph MASS patchwork purrr reshape2 tibble tidygraph tidyr vipor]; };
   dynpred = derive2 { name="dynpred"; version="0.1.2"; sha256="111ykasaiznn3431msj4flfhmjvzq7dd1mnzn1wklc5ndix1pvf9"; depends=[survival]; };
   dynprog = derive2 { name="dynprog"; version="0.1.1"; sha256="11zsx2c4hv7k22pw85aa01zk4r0qpzwnf73ynylkfxfbi87rda9s"; depends=[rlang]; };
-  dynr = derive2 { name="dynr"; version="0.1.16-2"; sha256="0k9lvrxdwfjnwbln6lv2qhqr55xrxzkw8k6b2dx1dqz76a2qr2n7"; depends=[car deSolve fda ggplot2 latex2exp magrittr MASS Matrix mice numDeriv plyr Rdpack reshape2 stringi tibble xtable]; };
+  dynr = derive2 { name="dynr"; version="0.1.16-27"; sha256="0rrzi2x19sdi42vpdi8a3lpsbna5kpf2rzvpf3m632b16wca2vnx"; depends=[car deSolve fda ggplot2 latex2exp magrittr MASS Matrix mice numDeriv plyr Rdpack reshape2 stringi tibble xtable]; };
   dynsbm = derive2 { name="dynsbm"; version="0.7"; sha256="169yk539vynjbn89q6vs3l3fx7hk8n3i1msa4jws5vypgljc2rir"; depends=[RColorBrewer Rcpp riverplot]; };
   dynsim = derive2 { name="dynsim"; version="1.2.3"; sha256="1fk23cp2hvkn7msxrdc9cnm4pmcmhcdf3q6rwm507bniigrswnx4"; depends=[ggplot2 gridExtra MASS]; };
   dynsurv = derive2 { name="dynsurv"; version="0.4-2"; sha256="0gy9q7l7k37bxm3d37adpvqa45lvr048a309jqc052f179v38mlb"; depends=[BH data_table ggplot2 nleqslv splines2 survival]; };
@@ -8401,7 +8466,7 @@ in with self; {
   earthtones = derive2 { name="earthtones"; version="0.1.1"; sha256="17biiw0ig8i8ihc2f8csp0bqryygg27ic2v1vrf81ax3qzhngy4l"; depends=[ggmap]; };
   easyAHP = derive2 { name="easyAHP"; version="0.1.1"; sha256="161mn90j9ph1p9277mj61hch8ndcv7k9izs32q93y5wp474gzynd"; depends=[]; };
   easyCODA = derive2 { name="easyCODA"; version="0.34.3"; sha256="1s1zjjvswl3444m84n6c5sznva4y19kcm171xkcy1zdx3wqmd2m3"; depends=[ca ellipse vegan]; };
-  easyDes = derive2 { name="easyDes"; version="5.0"; sha256="1msybgv4b7xlvp93lk64mdrqprr5qqc9ma1bz7glchhlkyyl8c21"; depends=[multcomp PMCMRplus]; };
+  easyDes = derive2 { name="easyDes"; version="6.0"; sha256="12p7ls0q9srrz5h0f0996mmw33shrfbya481s0d5d509vbw8ik6d"; depends=[multcomp PMCMRplus]; };
   easyNCDF = derive2 { name="easyNCDF"; version="0.1.0"; sha256="1p6b1lcbw2ix6hqqghgfid5yd58yqg1cqnj99r5svli3ivr7x6js"; depends=[abind ClimProjDiags ncdf4]; };
   easyPSID = derive2 { name="easyPSID"; version="0.1.2"; sha256="0npih5xpf2a5xw2iz68z9ckm8d4cpradzzdn50rdpg4gqvaq7azp"; depends=[foreign LaF stringr]; };
   easyPubMed = derive2 { name="easyPubMed"; version="2.13"; sha256="1wd8idyqz7kgygp34mjp2abx82775ry8l07vsqdlqnc6fdnvg55d"; depends=[]; };
@@ -8411,7 +8476,7 @@ in with self; {
   easyalluvial = derive2 { name="easyalluvial"; version="0.3.0"; sha256="02l0jy3bwp3qrz6g5iknl2fsfqi6a6wzn8q18k8518xczlsn1gbd"; depends=[dplyr forcats ggalluvial ggplot2 ggridges gridExtra magrittr progress progressr purrr randomForest RColorBrewer recipes rlang stringr tibble tidyr]; };
   easyanova = derive2 { name="easyanova"; version="7.0"; sha256="1zpwh3r1r0n11hgqzph8f2aac44qb6rpnhk73hcblq0f9vs0an55"; depends=[nlme]; };
   easycsv = derive2 { name="easycsv"; version="1.0.8"; sha256="1i2k5372b6a5pypk6m0rsvvkcy0y51pvh57a60rpgqk8q0yq8pig"; depends=[data_table]; };
-  easylabel = derive2 { name="easylabel"; version="0.2.2"; sha256="0dqs0qqha6diz1nn8zkd27yjjirzgs4bdpd0h5cgq5d7jm465ixv"; depends=[DT gtools plotly RColorBrewer shiny shinybusy shinycssloaders splus2R]; };
+  easylabel = derive2 { name="easylabel"; version="0.2.4"; sha256="1pqdaymcrqjdqj0fhb1q7i1i8p7r7iwzcn08mcq5wlwr52kcpvfy"; depends=[DT gtools plotly RColorBrewer shiny shinybusy shinycssloaders splus2R]; };
   easynls = derive2 { name="easynls"; version="5.0"; sha256="1ma2q4y5dxk6q99v880vqfsgy1fha96j7pi8ch699l0pi6bx0d6c"; depends=[]; };
   easypackages = derive2 { name="easypackages"; version="0.1.0"; sha256="00paxdwz4bw3imqhcsw6hj1h0gmnpishlxcj79n826vhdy23jc4y"; depends=[assertthat devtools]; };
   easypower = derive2 { name="easypower"; version="1.0.1"; sha256="1vf0zv55yf96wjxja6ifdjvgc9nw0jl0hnc1ygyjd8pmwbgdz9bl"; depends=[pwr]; };
@@ -8422,14 +8487,14 @@ in with self; {
   eatDB = derive2 { name="eatDB"; version="0.5.0"; sha256="0lym1g411ykb2vzi5yr570lmyh30br667wkm5dvnvfs7bsmk05il"; depends=[DBI RSQLite]; };
   eatGADS = derive2 { name="eatGADS"; version="0.18.1"; sha256="09hjn1w2mng2ypmlm8zw9dl4q430c75i5nil4x86bm9ap8zw511n"; depends=[data_table eatDB eatTools haven hms plyr stringi tibble]; };
   eatRep = derive2 { name="eatRep"; version="0.13.7"; sha256="1667cq00gvcbvsfmplv97bmgkfyq9zi08d5yzpa0l7x7d5xgxmm2"; depends=[BIFIEsurvey boot car combinat eatGADS eatTools EffectLiteR estimatr fmsb Hmisc janitor lavaan lme4 mice miceadds msm plyr progress reshape2 survey tidyr]; };
-  eatTools = derive2 { name="eatTools"; version="0.7.0"; sha256="1rhf6c6j7qwz5y20dip07h4044581pf9kaq71rl8sswbcsb7nny5"; depends=[data_table]; };
+  eatTools = derive2 { name="eatTools"; version="0.7.1"; sha256="1ppkpgcq6bjyl1lyqfzm5d6wdh4wirny88h94sh1029wlrr5qksb"; depends=[data_table]; };
   ebGenotyping = derive2 { name="ebGenotyping"; version="2.0.1"; sha256="1jllzc7kvvckrws8qhgvwy626llyb68sp1davp7swx48sf7rwcxc"; depends=[]; };
   ebSNP = derive2 { name="ebSNP"; version="1.0"; sha256="0x3ijwg4yycsfy6jch1zvakzfvdgpiq8i7sqdp5assb8z1823w0b"; depends=[]; };
   eba = derive2 { name="eba"; version="1.10-0"; sha256="03jr54xq109x9bf8kcs8mi7am17l9ya3xdkdppd8imwd2paqrssk"; depends=[nlme psychotools]; };
   ebal = derive2 { name="ebal"; version="0.1-6"; sha256="1cpinmbrgxxv0fzi9qi2inv4hw2lz7iq4b0ggp316rdqqb5bj9r0"; depends=[]; };
   ebci = derive2 { name="ebci"; version="1.0.0"; sha256="00fa2y4ha9nlbjd01qckrrn721s63ja61n5jr4wm7ac6y7xivb2i"; depends=[]; };
   ebdbNet = derive2 { name="ebdbNet"; version="1.2.6"; sha256="1qzwpr76nwvgylqdg7vhrbvh2lb1zrxx3g120yz156hhs4awv4kz"; depends=[igraph]; };
-  ebirdst = derive2 { name="ebirdst"; version="0.3.2"; sha256="04z3l08fnwh77hgcydm8aschv31499al3ljn5sinx527my1m28v1"; depends=[DBI dplyr fasterize gbm ggplot2 gridExtra jsonlite magrittr mgcv PresenceAbsence rappdirs raster rgdal rlang RSQLite sf stringr tidyr viridisLite xml2]; };
+  ebirdst = derive2 { name="ebirdst"; version="0.3.3"; sha256="05k388rsqjgia9jgnlq799l22zg10kvxs7l4b51kknrpqd5pis8d"; depends=[DBI dplyr fasterize gbm ggplot2 gridExtra jsonlite magrittr mgcv PresenceAbsence rappdirs raster rgdal rlang RSQLite sf stringr tidyr viridisLite xml2]; };
   ebmstate = derive2 { name="ebmstate"; version="0.1.2"; sha256="0x7mklp8209xi0lglh9ggjm7crvvx83arryap319lwjll2d8p89s"; depends=[HDInterval mstate Rcpp survival]; };
   ebreg = derive2 { name="ebreg"; version="0.1.3"; sha256="1xrs9afjd5hkdmhglj3md5i5hm7awlcdlccz3y2lw4c73lx31ywz"; depends=[lars Rdpack]; };
   ec50estimator = derive2 { name="ec50estimator"; version="0.1.0"; sha256="1zg4p1734q2jzifzfi2lf9wz3687s3cdn0yzkiwbc6w49mgdw877"; depends=[dplyr drc magrittr tibble tidyr]; };
@@ -8441,7 +8506,7 @@ in with self; {
   ecespa = derive2 { name="ecespa"; version="1.1-13"; sha256="0a8s923xzw6wkl9240mqsr7lpvjmi20kqn2zsbax3rrrdf4gqfkx"; depends=[spatstat spatstat_core spatstat_geom]; };
   ech = derive2 { name="ech"; version="0.1.1.2"; sha256="1mw68dkm6n6zj27rmyw33gaha1nly1srr6v1d5iib72b1gwnik8l"; depends=[assertthat curl dplyr fs geouy glue haven janitor labelled laeken purrr readxl rlang srvyr statar stringr survey tidyr]; };
   echarts4r = derive2 { name="echarts4r"; version="0.4.2"; sha256="1mv080bcprskzhc778ccd5yvrp48fawdjah0hwj795cz72603jd3"; depends=[broom corrplot countrycode dplyr htmltools htmlwidgets jsonlite purrr rstudioapi scales shiny]; };
-  echarty = derive2 { name="echarty"; version="1.4.0"; sha256="09j7kkkfwjl817k9wbl872ix0cs2973lvmd4az4fns565nhb4wdy"; depends=[dplyr htmltools htmlwidgets jsonlite magrittr]; };
+  echarty = derive2 { name="echarty"; version="1.4.2"; sha256="0xz4vjwwnbzx9y556kl76rqfvgbgvmp3n6vs8j1mkqfk20dlzn5y"; depends=[dplyr htmltools htmlwidgets jsonlite shiny]; };
   echelon = derive2 { name="echelon"; version="0.1.0"; sha256="0dw15igx8jwgfr1f7p5pspxjiqhqmfp7shdhq8g07f4bj76irzm4"; depends=[]; };
   echo_find = derive2 { name="echo.find"; version="4.0.1"; sha256="1nadqqpxgx2ck16nzjp5ajm6714452qzllg5cq1jpisv1yb31db2"; depends=[boot minpack_lm]; };
   echogram = derive2 { name="echogram"; version="0.1.2"; sha256="0kir7x32fk3fc63kr3b2j0hfkmivs2pwrlxyjvdg7xqc59hjp3ma"; depends=[geosphere readHAC]; };
@@ -8590,7 +8655,7 @@ in with self; {
   emIRT = derive2 { name="emIRT"; version="0.0.11"; sha256="1h91q9vi9cv14bmkaakyynw2z9sx51w0c2kw2in0x91wx7scmd0p"; depends=[pscl Rcpp RcppArmadillo]; };
   emayili = derive2 { name="emayili"; version="0.6.1"; sha256="05s14p5llvfwzd11wf73zd5xgv4hzpinpg74bnd94z8380x8p6ls"; depends=[base64enc commonmark curl digest dplyr glue htmltools httr logger magrittr mime purrr rmarkdown stringr tidyr urltools vctrs xfun xml2]; };
   emba = derive2 { name="emba"; version="0.1.8"; sha256="1bzp1cplr977w87bm0pvabvgai91a3j51pfjn4lc1ncjbr2v6wl0"; depends=[Ckmeans_1d_dp dplyr igraph purrr readr rje stringr tibble tidyr tidyselect usefun visNetwork]; };
-  embed = derive2 { name="embed"; version="0.1.4"; sha256="13vz3px2vvzr56kynqc6vcy7swzq9v021g66dliychqyx7r9q49l"; depends=[dplyr generics keras purrr recipes rlang rsample tensorflow tibble tidyr uwot withr]; };
+  embed = derive2 { name="embed"; version="0.1.5"; sha256="029ysbfvgb1sb14xs0p6dswcxbpgnhvshhs2hcqbrizysb7c7bj2"; depends=[dplyr generics keras lifecycle purrr recipes rlang rsample tensorflow tibble tidyr uwot withr]; };
   embryogrowth = derive2 { name="embryogrowth"; version="8.2"; sha256="1dq3vz70ai63mfmhfs9mavmx3kqsbdy2m7pfv74lk3gj42rzdbvx"; depends=[deSolve HelpersMG numDeriv optimx]; };
   emdbook = derive2 { name="emdbook"; version="1.3.12"; sha256="0ls3zxxlwmdv7zn1v9i1y9zc2sn0hbgmyjvsj7zn3ajsw7wwlih6"; depends=[bbmle coda lattice MASS plyr]; };
   emdi = derive2 { name="emdi"; version="2.1.0"; sha256="0a3rz0x06838l7ylpkk55vfxaxfh5hkab102vshsl8yzzsmxn72k"; depends=[boot formula_tools ggplot2 gridExtra HLMdiag MASS moments MuMIn nlme openxlsx parallelMap readODS reshape2 saeRobust spdep stringr]; };
@@ -8600,7 +8665,7 @@ in with self; {
   emld = derive2 { name="emld"; version="0.5.1"; sha256="0cvnfvzskvpcqzs6fwrpjcqrc6yrfciliy9jj0c9h4iyag0g0b9b"; depends=[jsonld jsonlite xml2 yaml]; };
   emma = derive2 { name="emma"; version="0.1-0"; sha256="0psd8lrbcqla8mkhp0wlassaaimgwlmqy5yv2wwcq59mc5k1v27f"; depends=[clusterSim earth]; };
   emme2 = derive2 { name="emme2"; version="0.9"; sha256="035s4h95ychqb14wib0dqbg4sjy9q01fsryr0ri25g1hsi5f8lpm"; depends=[reshape]; };
-  emmeans = derive2 { name="emmeans"; version="1.7.0"; sha256="1ig94mjifhhygznv2xv1gl8hdvk618w5fcmkaj1xmpwpc64m9dnl"; depends=[estimability mvtnorm numDeriv xtable]; };
+  emmeans = derive2 { name="emmeans"; version="1.7.1-1"; sha256="1pjh09p8sc2jskhlrhk1rnb3ng4sj9vwqqw5vd2n5yd03snyl0bb"; depends=[estimability mvtnorm numDeriv xtable]; };
   emoa = derive2 { name="emoa"; version="0.5-0.1"; sha256="0rkr4d4fyqxmsrlbzar27z97qkw4cl1dkvfnhbdwpgg9fi1cixmz"; depends=[]; };
   emoji = derive2 { name="emoji"; version="0.2.0"; sha256="06bsz0hsaqa2lzqpyqhsfp07p8ri5frvhiza0s8aali7w3cr2szh"; depends=[glue stringr tibble]; };
   emojifont = derive2 { name="emojifont"; version="0.5.5"; sha256="1hhrwilv36hd9gs1kcl2zsi6519md0h9aixjrm6lfclxvz8r6k1i"; depends=[ggplot2 proto showtext sysfonts]; };
@@ -8632,7 +8697,7 @@ in with self; {
   enpls = derive2 { name="enpls"; version="6.1"; sha256="12088v9xnj5b3dlakqz1hbzxz4mdai7xi7s2fpx8lj3y3lx7znmb"; depends=[doParallel foreach ggplot2 plotly pls reshape2 spls]; };
   enrichR = derive2 { name="enrichR"; version="3.0"; sha256="0i3kfq4fkmx47n61zj5f87iv8ci6gbgy90a7s8dy9zbndzvbgya3"; depends=[ggplot2 httr rjson]; };
   enrichwith = derive2 { name="enrichwith"; version="0.3.1"; sha256="05fhx323ani86wdxbjp8dgw4d1iq4kr1887646w072a6iq93bwhm"; depends=[]; };
-  ensembleBMA = derive2 { name="ensembleBMA"; version="5.1.6"; sha256="05zrsy9pqy4hnijlsb5fgqj6b8lrsanpmsz330zp79ad0rvpybqy"; depends=[chron]; };
+  ensembleBMA = derive2 { name="ensembleBMA"; version="5.1.7"; sha256="010djsyinxigcd5kmsr8sd1ppa80fp2dfmfz0ld4sl43m657iy3b"; depends=[chron]; };
   ensembleMOS = derive2 { name="ensembleMOS"; version="0.8.2"; sha256="16d8030zfdwifqrh45vz3gf5n0bix0mhsmsnydgjq1fghdklcmyx"; depends=[chron ensembleBMA evd]; };
   ensembleR = derive2 { name="ensembleR"; version="0.1.0"; sha256="0xvq1jlsp7gsk46i847nfvadxwlh09gi2rgwss2wf2xmh1855ray"; depends=[caret]; };
   ensembleTax = derive2 { name="ensembleTax"; version="1.1.1"; sha256="1kxkv8b6qgrbylp16hlh53h3sr079jqhypv1fk4g5fr349zrjgv3"; depends=[Biostrings DECIPHER dplyr ggplot2 reshape2 stringr usethis]; };
@@ -8666,7 +8731,7 @@ in with self; {
   eph = derive2 { name="eph"; version="0.4.0"; sha256="0yznfhsp6sgymq02m4g477pnqlmmbdvwv32sidaa2giaf3nr4izj"; depends=[assertthat attempt curl dplyr expss glue htmltools janitor leaflet magrittr purrr questionr readr readxl rlang rvest stringr tibble tidyr tidyverse xml2 zoo]; };
   epiDisplay = derive2 { name="epiDisplay"; version="3.5.0.1"; sha256="08ym6hcbmajzr4rasdb35fxk79vgpzfc16rmcm34f7f3zzz09dyl"; depends=[foreign MASS nnet survival]; };
   epiGWAS = derive2 { name="epiGWAS"; version="1.0.2"; sha256="0jqblfmz02za3b2pgi15379bzgh98yv5kyv8kh0lkzhrmpgph2zj"; depends=[DescTools glmnet matrixStats SNPknock]; };
-  epiR = derive2 { name="epiR"; version="2.0.38"; sha256="0bb0c2fhjgr845lr5pgsac10faqa6zrq6sb0jhsm6qpaqsi1f1ja"; depends=[BiasedUrn lubridate pander survival]; };
+  epiR = derive2 { name="epiR"; version="2.0.39"; sha256="0wml3xdg9371cxfjavj9h74ggaaq2fncjk151hkaya0lwk5lyxyc"; depends=[BiasedUrn lubridate pander sf survival]; };
   epibasix = derive2 { name="epibasix"; version="1.5"; sha256="0ivr51x37cbdryli9b4p4iq9v2c90zwmywrwdmg7ryq5vprvvbp0"; depends=[]; };
   epicontacts = derive2 { name="epicontacts"; version="1.1.2"; sha256="07vnvfqm9vghmrjy3g1x3mz6qsf09qi04xq2nm9n4cgxjmbr0gia"; depends=[colorspace dplyr igraph threejs visNetwork]; };
   epidata = derive2 { name="epidata"; version="0.4.0"; sha256="0v3s1vrf2iqh03rkkwrlz6mhpbsbjxkayrqdx04vrnja4i9ljshk"; depends=[dplyr httr jsonlite purrr readr rvest stringi tidyr tinytest xml2]; };
@@ -8677,7 +8742,7 @@ in with self; {
   epikit = derive2 { name="epikit"; version="0.1.2"; sha256="0b9kc7qr7nkafmak60pyj7hln19w4zp33pk5y48qmfsxgarl6pv3"; depends=[binom dplyr forcats glue rlang scales tibble tidyr tidyselect]; };
   epimdr = derive2 { name="epimdr"; version="0.6-5"; sha256="1nxdlz7gl9vrha9iw92y0s9dmm101gkz0rsqxqg1rdxanr6hs6sh"; depends=[deSolve polspline shiny]; };
   epinet = derive2 { name="epinet"; version="2.1.8"; sha256="10bgq66n99kkz0nhmsz508aypxk57zk19p5l3xrb28n72k4rfgrf"; depends=[network]; };
-  epinetr = derive2 { name="epinetr"; version="0.94"; sha256="1bd9qfs7q4d199lqiny16ck0y2ji4p2nkx7ds5dafpk5pqa314fc"; depends=[GA ggplot2 igraph Rcpp RcppAlgos reshape2 vcfR]; };
+  epinetr = derive2 { name="epinetr"; version="0.95"; sha256="1hfsqwf8yf82m18qx4na9vsi653lxl16f6sd0smv9nckw1gdpqw5"; depends=[GA ggplot2 igraph Rcpp RcppAlgos reshape2 vcfR]; };
   epiphy = derive2 { name="epiphy"; version="0.3.4"; sha256="04wsppjycnrzrml3zxrpr0xdxxas3hj8rskiivx5vfmfjpwipq4r"; depends=[ggplot2 msm pbapply Rcpp transport]; };
   episcan = derive2 { name="episcan"; version="0.0.1"; sha256="02687f8gpc2czn19lapvazd6mnm8902ay0lhgi3wdrzfhir42m4r"; depends=[]; };
   episensr = derive2 { name="episensr"; version="1.1.0"; sha256="0670h2x8mcd4g7m17k0zascq5yb3llsvpp9qwzghiha0f9ai8xw0"; depends=[actuar boot dagitty ggdag ggplot2 magrittr trapezoid triangle]; };
@@ -8687,7 +8752,7 @@ in with self; {
   epitools = derive2 { name="epitools"; version="0.5-10.1"; sha256="0jqn3pas4lsans50jwakmvpyc7m7x0kxq6dzyckd3vgww56qa65l"; depends=[]; };
   epitrix = derive2 { name="epitrix"; version="0.2.2"; sha256="1rqpvdky002h6mz636b77l4kd0im16pww62l6vnwh83si1m9pkki"; depends=[distcrete sodium stringi]; };
   epitweetr = derive2 { name="epitweetr"; version="0.1.28"; sha256="0iqdn1vc3h3ng10vhljnr8bs5sn0mnfwpv11zq1dvw6yyh9b5ia6"; depends=[bit64 dplyr DT emayili ggplot2 httpuv httr jsonlite keyring magrittr plotly plyr readxl rgdal rgeos rmarkdown rnaturalearthdata rtweet shiny sp stringr tidytext tidyverse tokenizers xml2 xtable]; };
-  eplusr = derive2 { name="eplusr"; version="0.14.2"; sha256="01i0q1fircpshilf0fw4c31lg94wjrsgxadkbc09bp2s4s7l9xzq"; depends=[callr checkmate cli crayon data_table hms lubridate processx progress R6 RSQLite stringi units]; };
+  eplusr = derive2 { name="eplusr"; version="0.15.0"; sha256="09j90bcc45f19pfcs44gqp42f0142hhxy3vzdmkbf1w2q8h7d77z"; depends=[callr checkmate cli crayon data_table hms lubridate processx progress R6 RSQLite stringi units]; };
   eply = derive2 { name="eply"; version="0.1.2"; sha256="0al44pvqf6ls3dh129vlv3g56hk1nbql09rj0qsb04d9kaz9anrp"; depends=[magrittr]; };
   epoc = derive2 { name="epoc"; version="0.2.6-1.1"; sha256="1qlj4cl7mh5k52v2ippfs3cish5iadnix5w46p25hjqiriksclna"; depends=[elasticnet irr lassoshooting Matrix survival]; };
   epocakir = derive2 { name="epocakir"; version="0.9.7"; sha256="1i3hiyk8337cpfir25j9afjq6kjy4p2s407nv66kzxp9945fjc8i"; depends=[dplyr ellipsis lubridate magrittr rlang tibble tidyr tidyselect units vctrs]; };
@@ -8698,7 +8763,7 @@ in with self; {
   epubr = derive2 { name="epubr"; version="0.6.3"; sha256="1cpsxx02qcj3brr3ddy8dbnaf6wxf42s9y3kx8fq5ki3pmlwry7g"; depends=[dplyr magrittr tibble tidyr xml2 xslt]; };
   epwshiftr = derive2 { name="epwshiftr"; version="0.1.3"; sha256="11vfs2r2fzbdd3r0s8ikafgq9ins06ym73wqxyijz60h75py4ic7"; depends=[checkmate data_table eplusr fst future_apply jsonlite progressr psychrolib rappdirs RNetCDF units]; };
   epxToR = derive2 { name="epxToR"; version="0.4-1"; sha256="00m64ham9fd9dsw37ic2m62fy4pvmwfwmjx8cg6n4rwbgq9q49sg"; depends=[httr XML]; };
-  eq5d = derive2 { name="eq5d"; version="0.10.0"; sha256="0yy19z5a0hkmd8j48kkjlyjs32zv1a7b0f8ykk7cjl8irai7yiys"; depends=[]; };
+  eq5d = derive2 { name="eq5d"; version="0.10.1"; sha256="00474dmjpifl7xrm2ln5znghyy7sm1r16dqfk49vafnd4wa89wm1"; depends=[]; };
   eqs2lavaan = derive2 { name="eqs2lavaan"; version="3.0"; sha256="1lj6jwkfd84h9ldb6l74lrx2pnsl1c0d7mnrcrjkska87djb2nzd"; depends=[lavaan stringr]; };
   eqtl = derive2 { name="eqtl"; version="1.1-7"; sha256="0xfr8344irhzyxs9flnqn4avk3iv1scqhzac5c2ppmzqhb398azr"; depends=[qtl]; };
   equalCovs = derive2 { name="equalCovs"; version="1.0"; sha256="18w7panyd6mhdr3x1iz9fkrw7min22rishs4xhkxgxs3nnyglkrn"; depends=[]; };
@@ -8744,8 +8809,8 @@ in with self; {
   esback = derive2 { name="esback"; version="0.3.0"; sha256="09k895028hqa62m8fhbg5b33ry0in6kbrw0lnphn0rgjhlifxp4z"; depends=[esreg]; };
   esc = derive2 { name="esc"; version="0.5.1"; sha256="0gns7gz55p6pha05413r3hlvd7f2v1amxkg13d197mab1ypqic7q"; depends=[]; };
   escalation = derive2 { name="escalation"; version="0.1.4"; sha256="1iyjp20rzz3lrgn183jvjcf7vvmk66f3rgyv22s2ja4b98598ha4"; depends=[binom BOIN dfcrm DiagrammeR dplyr gtools magrittr purrr RColorBrewer stringr tibble tidyr tidyselect trialr viridis]; };
-  eseis = derive2 { name="eseis"; version="0.5.0"; sha256="03pjcms3aj7sm2wrld64v1dw53bqn9pmsayndma03abjh66rblii"; depends=[caTools fftw IRISSeismic matrixStats multitaper raster Rcpp reticulate rgdal rmarkdown shiny signal sp XML]; };
-  esemifar = derive2 { name="esemifar"; version="1.0.0"; sha256="0yy5ya6saw7njf06gad3bjh2wf56y0b9hid3bjxjmxb0w9pi660i"; depends=[fracdiff smoots]; };
+  eseis = derive2 { name="eseis"; version="0.6.0"; sha256="13sr7drqw8gzrhgz1anvnxpypr8m85sb2s8zhi074z4yhqxh9jw6"; depends=[caTools EMMAgeo extraDistr fftw IRISSeismic limSolve matrixStats minpack_lm multitaper raster Rcpp reticulate rgdal rmarkdown shiny shinyFiles signal sp XML]; };
+  esemifar = derive2 { name="esemifar"; version="1.0.1"; sha256="1fj6hdz4kvign9whxclgriafqc8m1yibvwqprvyn861v31kmlc55"; depends=[fracdiff smoots]; };
   eshrink = derive2 { name="eshrink"; version="0.1.2"; sha256="0min4j1dyd08i0fyn9a4iasjlhq08bn74bjz8vj1gq9l114v795k"; depends=[glmnet MASS]; };
   esmisc = derive2 { name="esmisc"; version="0.0.3"; sha256="1d6xrdxwn85c8s60s7vzaymh7wa9f7fzd79hq5spzd12fr3zisvj"; depends=[ggplot2 raster readr]; };
   esmprep = derive2 { name="esmprep"; version="0.2.0"; sha256="076sm26mkkvig2g04k32z2dlp2h9gnqgzckhirl4pqm01siknl61"; depends=[lubridate]; };
@@ -8755,14 +8820,15 @@ in with self; {
   essHist = derive2 { name="essHist"; version="1.2.2"; sha256="0rvlxfcl42h4pjqf37mx7bc4k21iwvnys6l5rf2jsl7yk1b9hmbn"; depends=[Rcpp]; };
   essentials = derive2 { name="essentials"; version="0.1.0"; sha256="163wv4szfanbpiw5f6lhw1dnns5prql43iz27zgcp5z2rsxlb894"; depends=[]; };
   essurvey = derive2 { name="essurvey"; version="1.0.7"; sha256="07z6bdk76528cg5pdchh1kcsm7xrhpqzzxm2llyh0y12fa7mwscy"; depends=[haven httr rvest tibble xml2]; };
+  estadistica = derive2 { name="estadistica"; version="0.1.0"; sha256="1xhxy4nzpv5qw6nfg8zrhh6lvcrwz2kf793safah4snfqir0qx6w"; depends=[data_table dplyr ggplot2 magrittr plotly rio shiny shinydashboard tidyr tidyverse]; };
   estatapi = derive2 { name="estatapi"; version="0.4.0"; sha256="0wp5w9w0b832fnl7kchjqmychnf5896q50grw8hwdc1km14dfzkg"; depends=[dplyr httr purrr readr rlang tibble]; };
   estimability = derive2 { name="estimability"; version="1.3"; sha256="0cifdaa71spkcxl4db4z884jrya865sg3dhcv4isd8fnzg2pjcd3"; depends=[]; };
-  estimatr = derive2 { name="estimatr"; version="0.30.2"; sha256="0sdsfngxckcis2gfd2jz1dq8vlh7zcf592xqlglbv14755s348z2"; depends=[Formula generics Rcpp RcppEigen rlang]; };
+  estimatr = derive2 { name="estimatr"; version="0.30.4"; sha256="0qvic3dviz28syxlw92wzwdl6qj2n23cvm0sc3ww23vwg5hdnk8m"; depends=[Formula generics Rcpp RcppEigen rlang]; };
   estimraw = derive2 { name="estimraw"; version="1.0.0"; sha256="0z591mblbzc3qv9pyv8zn0r5r3d8f1l02sxdc649gl1lb40kalz0"; depends=[dplyr]; };
   estmeansd = derive2 { name="estmeansd"; version="0.2.1"; sha256="053mf9yq095dvlz2cj5haav6yabvgj78qpp411xd9nr1ac17jxz9"; depends=[metaBLUE]; };
   estout = derive2 { name="estout"; version="1.2"; sha256="0whrwlh4kzyip45s4zifj64mgsbnrllpvphs6i5csb7hi3mdb3i5"; depends=[]; };
   estprod = derive2 { name="estprod"; version="1.2"; sha256="0pnpg8w6i1dmkcn6afj2jsm5mzvbxka80np1bldcxgmylrp5s35p"; depends=[boot Formula gmm lazyeval minpack_lm]; };
-  estudy2 = derive2 { name="estudy2"; version="0.9.3"; sha256="0wfzcx00f2378aza2wsg1s5klzc3q2sf1fpdrz6njdix29g7g45m"; depends=[matrixStats quantmod Rcpp zoo]; };
+  estudy2 = derive2 { name="estudy2"; version="0.10.0"; sha256="0axlhniir8sz06mn18y49q8np3rbx3jfnz410agfajqhq7b5m9s1"; depends=[curl matrixStats quantmod Rcpp zoo]; };
   esvis = derive2 { name="esvis"; version="0.3.1"; sha256="0bb91khnrn8v3d6hbbin72032w7w8p0jchbr0bzwyfq5f6l4hwka"; depends=[dplyr ggplot2 Hmisc magrittr purrr rlang sfsmisc tibble tidyr]; };
   etable = derive2 { name="etable"; version="1.3.1"; sha256="17dga1hz29jjdclhhwn1hrvlkdfbcbqmk233vc00s59pbmgsav06"; depends=[Hmisc]; };
   etasFLP = derive2 { name="etasFLP"; version="2.2.0"; sha256="1030l3g6hghgcmji934g5pc01p2hld09mv3zna58xzzb4wsmz167"; depends=[fields mapdata maps]; };
@@ -8829,12 +8895,13 @@ in with self; {
   excelstrippr = derive2 { name="excelstrippr"; version="0.1.2"; sha256="1ly76qja9b5l3xwfhigm1apd114y2iq5wdl27sd2h1y80n8xxf2v"; depends=[dplyr readxl tidyr]; };
   excerptr = derive2 { name="excerptr"; version="2.0.1"; sha256="0lmcxlpxvldxwqxrprqq39hk5f770ii1x38jm2jbs4n75smp4m21"; depends=[checkmate reticulate]; };
   excessmort = derive2 { name="excessmort"; version="0.6.1"; sha256="0qkj30csq96qg7r8vdl79n31dhz69vh49qz4gpb3r2fr32pn497k"; depends=[dplyr ggplot2 lubridate rlang scales tidyr]; };
+  excluder = derive2 { name="excluder"; version="0.3.2"; sha256="0rpvhxnza5pcg3499v7mq7lbxdllx26s3ygyvwglphibz0m2q5xx"; depends=[cli curl dplyr iptools janitor lubridate magrittr maps rlang stringr tidyr tidyselect]; };
   excursions = derive2 { name="excursions"; version="2.5.2"; sha256="1a0vywxhh0bxjcf8v5gdk1n6cjxrby7750a7qdwhzsgxna3l3gga"; depends=[Matrix sp withr]; };
   exdex = derive2 { name="exdex"; version="1.0.1"; sha256="15wdi24fq8q4ja4527k1adv6lkzyhylp8nwlsrb91q0sbmmprrqs"; depends=[chandwich Rcpp RcppArmadillo RcppRoll]; };
   exdqlm = derive2 { name="exdqlm"; version="0.1.2"; sha256="0wkiihdvgf7lyzv02l10spxcn127w1jblz6fbr7yf16mfq0m9mlk"; depends=[brms coda crch dlm FNN GeneralizedHyperbolic HyperbolicDist LaplacesDemon magic tictoc truncnorm]; };
   exif = derive2 { name="exif"; version="0.1.0"; sha256="12phqn5x1x0xs2xczl3064q983dalm261vqpyafhdcndm1y3gwbc"; depends=[Rcpp]; };
   exifr = derive2 { name="exifr"; version="0.3.2"; sha256="0iqm513h7951q3hg8maf2hbprqmsm93cb3mbg3g91qawpx77494c"; depends=[curl jsonlite plyr rappdirs tibble]; };
-  exiftoolr = derive2 { name="exiftoolr"; version="0.1.5"; sha256="0amfv2avnyvlz8mhmzmklpqykshdxrcxivans6j9hnimj0ygw6ad"; depends=[curl data_table jsonlite zip]; };
+  exiftoolr = derive2 { name="exiftoolr"; version="0.1.7"; sha256="0q6b4f9z81jxky5ij445gxdh7mkk9aajr4aam6p27hdh3l9428j7"; depends=[curl data_table jsonlite zip]; };
   exoplanets = derive2 { name="exoplanets"; version="0.2.2"; sha256="0jzqzw0sn2cixxl6wdikz6cmm2qijxcjp81c98dfqamjcnbpqc1f"; depends=[cli httr memoise readr tibble]; };
   exp2flux = derive2 { name="exp2flux"; version="0.1"; sha256="1b3ychb4wcf6dbccx2ddms5xygdgc296cnw4474fm81yrfjznplv"; depends=[gage igraph sybil]; };
   expDB = derive2 { name="expDB"; version="0.1.0"; sha256="0h7f9127vrd45lg7k0bkgq3cghxwv2z11p4pak20pakk13g82hj4"; depends=[DBI dplyr lubridate magrittr png readxl reshape2 rlang RSQLite stringr tibble tidyr tidyverse weaana]; };
@@ -8875,7 +8942,7 @@ in with self; {
   extraoperators = derive2 { name="extraoperators"; version="0.1.1"; sha256="1clyp97ssmdq9ggbv3w5yskx7khnlm4ji7ym3k3b4bx1pazcw4q4"; depends=[]; };
   extras = derive2 { name="extras"; version="0.2.0"; sha256="08nlragdwl16ziykn0ygq78h6j8s2idzmhx2w3prrndkbbd4gqbp"; depends=[chk lifecycle]; };
   extraterrestrial = derive2 { name="extraterrestrial"; version="0.1.0"; sha256="0clss1zwgw1497n2xif82kplr1w1ajs4xs02041ads3l8craj7y1"; depends=[]; };
-  extremeIndex = derive2 { name="extremeIndex"; version="0.0.2"; sha256="1zdw6ik2jh1fir01ay3ynw1l756ba05d5vqqcphnawvg0jkvhxvk"; depends=[boot evd evir gmm goftest]; };
+  extremeIndex = derive2 { name="extremeIndex"; version="0.0.3"; sha256="19zkqabk7n5v4nnwlkxbrym4rf1ljbpblggiqd9s9f6ylir417pv"; depends=[boot evd evir gmm]; };
   extremeStat = derive2 { name="extremeStat"; version="1.4.0"; sha256="0fvkvlm47ri05w9h5qa937ijsc5lg51jc825wq9pmn7aiv58yxzm"; depends=[berryFunctions evd evir extRemes fExtremes ismev lmomco pbapply RColorBrewer Renext]; };
   extremefit = derive2 { name="extremefit"; version="1.0.2"; sha256="07gx6dp0kz4y1jn90hsfvkhn6k7i4flh7ghdz9v5nwda86f55q2s"; depends=[]; };
   extremevalues = derive2 { name="extremevalues"; version="2.3.3"; sha256="0ijha5zzmv3qr0czm4qxk28kg3ql5jh3nk9fr0flzl8d9n3z0jx6"; depends=[gWidgets2 gWidgets2tcltk]; };
@@ -8929,9 +8996,11 @@ in with self; {
   fUnitRoots = derive2 { name="fUnitRoots"; version="3042.79"; sha256="1hsv47dm0hx3s04g9h0bjdgi79zbfihnfxxdc2jskqp94yl7azsy"; depends=[fBasics timeDate timeSeries urca]; };
   fabCI = derive2 { name="fabCI"; version="0.2"; sha256="1vga322xpqzsh40n74v8vqiq8zbzrabvg58mp50bcx2ml0dikgnm"; depends=[MASS]; };
   fabMix = derive2 { name="fabMix"; version="5.0"; sha256="1gii3mdii9nw423xxn9mhv1pjbw967wdarn828w04zm9dkdcwm48"; depends=[coda corrplot doParallel foreach ggplot2 label_switching MASS mclust mvtnorm RColorBrewer Rcpp RcppArmadillo]; };
+  fabisearch = derive2 { name="fabisearch"; version="0.0.3.9"; sha256="0nzv2wkv1l4r2pqq6j2y16lj61djp6bjydsk4xvxlhdnifx5cmhm"; depends=[doParallel doRNG foreach NMF pkgmaker reshape2 rgl]; };
   fable = derive2 { name="fable"; version="0.3.1"; sha256="185l3gd83nys11k389ha2ssdm9rkw9aackmz2cd2mvlym72rsnq7"; depends=[distributional dplyr fabletools Rcpp rlang tibble tidyr tsibble]; };
+  fable_ata = derive2 { name="fable.ata"; version="0.0.2"; sha256="0rpchiw4rkrk9c0r0n6xqcgqizjpl4xdm0z4v6dzm7abvbndanzr"; depends=[ATAforecasting distributional dplyr fabletools rlang tibble tsbox tsibble]; };
   fable_prophet = derive2 { name="fable.prophet"; version="0.1.0"; sha256="12y2k05plg6d6lgqk6617q6z5m6xz33zdsjh56k86h230qqw68rp"; depends=[distributional dplyr fabletools lubridate prophet Rcpp rlang tsibble]; };
-  fabletools = derive2 { name="fabletools"; version="0.3.1"; sha256="0r2ik8p89w8r76v9iliqng2ysf9cqqdcmq89ilr8ccilfq3pgbks"; depends=[distributional dplyr generics ggplot2 lifecycle progressr R6 rlang tibble tidyr tidyselect tsibble vctrs]; };
+  fabletools = derive2 { name="fabletools"; version="0.3.2"; sha256="1appg3pzw6b08nxh0p1ldbvv1j091v0kcygm808nf04v9axp5f95"; depends=[distributional dplyr generics ggplot2 lifecycle progressr R6 rlang tibble tidyr tidyselect tsibble vctrs]; };
   fabricatr = derive2 { name="fabricatr"; version="0.14.0"; sha256="1smy9c34y47xdfmkgm90xyxagnj9qsgxg70mf75z1006m4npbdg8"; depends=[rlang]; };
   fabricerin = derive2 { name="fabricerin"; version="0.1.2"; sha256="0ynvnxzxx1iybyy5pvwfsj5y9jjixyrpji9vcl5fq5mjnpg8mpqk"; depends=[glue htmltools]; };
   face = derive2 { name="face"; version="0.1-6"; sha256="0lvagpn6sa22zj4phz1vi1ccd8xasrgcq6ypwj7qx4bf1xjc95b1"; depends=[Matrix matrixcalc mgcv]; };
@@ -8947,7 +9016,7 @@ in with self; {
   factorial2x2 = derive2 { name="factorial2x2"; version="0.2.0"; sha256="045887hwknwm92wlrp0jlvxj5aal50vpnc7ddbh7c8smawmrdwfd"; depends=[mvtnorm survival]; };
   factormodel = derive2 { name="factormodel"; version="1.0"; sha256="0yvp8mk42hi1vhrw29djabndc8pbbpjbr6bwss95wsmk7zvvf6i2"; depends=[dplyr gtools nnet pracma]; };
   factorplot = derive2 { name="factorplot"; version="1.1-2"; sha256="025lfk122w66yxym3njcpzwnbhg40xi7p1c9vnxczcb8kz31745s"; depends=[multcomp nnet]; };
-  factorstochvol = derive2 { name="factorstochvol"; version="0.10.2"; sha256="155vnlsncykazg5ll1sdsk6y3342qvyhfxw7mxnhgc134ngqcn8m"; depends=[corrplot GIGrvg Rcpp RcppArmadillo stochvol]; };
+  factorstochvol = derive2 { name="factorstochvol"; version="1.0.0"; sha256="1ksqvfbpkri2zaw60i1c3cwvp88ab379qwkq8d7c0n5mkzk989m8"; depends=[corrplot GIGrvg Rcpp RcppArmadillo stochvol]; };
   factory = derive2 { name="factory"; version="0.1.0"; sha256="1715bx2rn8kk5qd196jnrv5f95l54n4y0aqqdzfkgrmqihcy8ahx"; depends=[purrr rlang]; };
   factset_analyticsapi_engines = derive2 { name="factset.analyticsapi.engines"; version="3.0.1"; sha256="0v96z837dii1q7mbpd48zwpl2qjzqnhignb80g0xkc4iygsnrrms"; depends=[caTools httr jsonlite R6 rlang]; };
   factualR = derive2 { name="factualR"; version="0.5"; sha256="1wz8ibcmilcx62yy29nd2i1pdmjf7fm0g9i5s58gdn8cjlhnw1jl"; depends=[RCurl RJSONIO]; };
@@ -8966,7 +9035,7 @@ in with self; {
   fam_recrisk = derive2 { name="fam.recrisk"; version="0.1"; sha256="1lyrq7bq7p7ijc2vf545nazw4akncz08548ya1dv3lsc5jmkgfzj"; depends=[]; };
   fam2r = derive2 { name="fam2r"; version="1.2"; sha256="0pq5cmzwk3s8cz5x8dsfb2d6qfpapkrwbzvkqmqkhcwhwryy40mm"; depends=[Familias paramlink]; };
   famSKATRC = derive2 { name="famSKATRC"; version="1.1.0"; sha256="1xbh0by4sjxrmy00v1svcj3lb98p9krpncbhpjbli1jd2p47yk60"; depends=[bdsmatrix CompQuadForm coxme kinship2]; };
-  fame = derive2 { name="fame"; version="2.21"; sha256="15pcgc67qcg6qkgssbfissicic317v60jsybp86ryqvzqg70cqx3"; depends=[tis]; };
+  fame = derive2 { name="fame"; version="2.21.1"; sha256="18lzf2vxyzlmd73m9q0si663mjjm66nrf7q1iy0fw73gpvxqr9bf"; depends=[tis]; };
   fanc = derive2 { name="fanc"; version="2.2"; sha256="1gdkxb2ay0lyldjpg4s2fbavjxl4q1bf9q438csqa4vzl5ywv2w8"; depends=[Matrix]; };
   fancycut = derive2 { name="fancycut"; version="0.1.2"; sha256="1xg5qjxf77g10h07x6rvb8c3klc9gbr77bkw352qpas268pkswl2"; depends=[]; };
   fanovaGraph = derive2 { name="fanovaGraph"; version="1.5"; sha256="1hffda52yk24slbgsfdgkpg3vsryfnhlw09r39cbyz483i7xd8d0"; depends=[DiceKriging igraph sensitivity]; };
@@ -8984,6 +9053,7 @@ in with self; {
   fasjem = derive2 { name="fasjem"; version="1.1.2"; sha256="1bbrcyyg96hakgla3604byrkn9034197vy2is048kdq20yr2y11n"; depends=[igraph]; };
   fasstr = derive2 { name="fasstr"; version="0.3.3"; sha256="0x641cxhjawf4jrf465hnf0zkk120wcsrsd7r1n175x9jsq0z3q2"; depends=[dplyr e1071 fitdistrplus ggplot2 openxlsx PearsonDS plyr purrr RcppRoll scales tidyhydat tidyr zyp]; };
   fastAdaboost = derive2 { name="fastAdaboost"; version="1.0.0"; sha256="1pv1y6znvc37pgwk99v4r0hljhipq8v6r3r5cb5vhgyl0bfi8g38"; depends=[Rcpp rpart]; };
+  fastCorrDiff = derive2 { name="fastCorrDiff"; version="0.5"; sha256="0fis04xfarvmhpdkh7524ffga8f8svpcn3837rqwy0g039dcfa64"; depends=[irlba Matrix plyr RSpectra]; };
   fastDummies = derive2 { name="fastDummies"; version="1.6.3"; sha256="1pw1bpp69sbs8yc1s5ffz11q249ljfwbgfrq6irg5pyp37z38fdx"; depends=[data_table stringr tibble]; };
   fastGHQuad = derive2 { name="fastGHQuad"; version="1.0"; sha256="1rjia8wggadr9xwxcmzmal0rc4g6pa3dr5888fbbnb6abl8b2lrj"; depends=[Rcpp]; };
   fastGraph = derive2 { name="fastGraph"; version="2.1"; sha256="0lz199607hqpwxzhff4jzhmjq6cbakd335iyclmlscllgfzgnhql"; depends=[]; };
@@ -9026,7 +9096,6 @@ in with self; {
   fastqcr = derive2 { name="fastqcr"; version="0.1.2"; sha256="12x3lkg5zc4ckyg4x3xxqb779yhrr0fys7asf5b8shz49f86fmm9"; depends=[dplyr ggplot2 gridExtra magrittr readr rmarkdown rvest scales tibble tidyr xml2]; };
   fastqq = derive2 { name="fastqq"; version="0.1.2"; sha256="1p5xjwcwsgxyva6y6g9d0m6pvdwih97rassw6n2a85dsl8c4kmfk"; depends=[Rcpp]; };
   fastrmodels = derive2 { name="fastrmodels"; version="1.0.2"; sha256="1333546nk429l6s4icbmx8hmh29wsc252wbmmhsmgb116l4ra9zi"; depends=[xgboost]; };
-  fastshap = derive2 { name="fastshap"; version="0.0.5"; sha256="08f25ib5mry6h8lvj0g3clc9kfl5g2wdd8x8bw455wwmbcm6x5vg"; depends=[abind ggplot2 gridExtra matrixStats plyr Rcpp RcppArmadillo tibble]; };
   fasttime = derive2 { name="fasttime"; version="1.0-2"; sha256="11i4c0zrkvvqsax0az1fvmc0jxfsjyx28434k1qgzhj9g2j9m9cf"; depends=[]; };
   fastverse = derive2 { name="fastverse"; version="0.2.1"; sha256="0ys75qw5ag7mynwk4xyjb8jlsgbffqjxn2h1dznxzhsa953v39xk"; depends=[collapse data_table fst kit magrittr matrixStats]; };
   fat2Lpoly = derive2 { name="fat2Lpoly"; version="1.2.4"; sha256="01a9d6b2f6g858vg64kr0w0qmv2jqhk9kk3hb6jdr2rly4j8p14x"; depends=[kinship2 multgee]; };
@@ -9052,7 +9121,7 @@ in with self; {
   fctbases = derive2 { name="fctbases"; version="1.1.0"; sha256="1jf6ngdph45l105cib13lghan7d68hsjqdr8wsjz2kls8il6kz9s"; depends=[Rcpp RcppArmadillo]; };
   fcuk = derive2 { name="fcuk"; version="0.1.21"; sha256="1sb7p1m5qb88028mrw95lhh8l7dxj696hjh88nfsdpnscryknfpv"; depends=[magrittr purrr stringdist tibble]; };
   fdANOVA = derive2 { name="fdANOVA"; version="0.1.2"; sha256="1pycq5a4czqzi8wcfmlc9ncg827j7n0qxyj90wcv39nbcrnl3da1"; depends=[doBy doParallel fda foreach ggplot2 magic MASS]; };
-  fda = derive2 { name="fda"; version="5.5.0"; sha256="0nf7481hc04yxw93d01m0g8vpb50fc3yb38y44cb0yf8mcflgky2"; depends=[deSolve fds Matrix]; };
+  fda = derive2 { name="fda"; version="5.5.1"; sha256="0fm2vswc8fdi2p1axby0hjwh8m6lc1zrdikrpiamilr6w9m2zanw"; depends=[deSolve fds Matrix]; };
   fda_usc = derive2 { name="fda.usc"; version="2.0.2"; sha256="0z44vkzjm2h6r5af0k1iic1szvw82rbwjrm541zlwn2jycj4q96a"; depends=[doParallel fda foreach iterators MASS mgcv nlme]; };
   fdaACF = derive2 { name="fdaACF"; version="1.0.0"; sha256="0qrsj25p6h2xg25v0ayk8x31d4whyy0mpf2xdpw3hcwhb71mbfhn"; depends=[CompQuadForm fda pracma vars]; };
   fdaMixed = derive2 { name="fdaMixed"; version="0.6"; sha256="0hyhb67qvvhyq68k5h4ffvsl4lmw66nfy5l14kwxnn42h3b810sc"; depends=[Formula Rcpp RcppArmadillo]; };
@@ -9062,8 +9131,8 @@ in with self; {
   fdadensity = derive2 { name="fdadensity"; version="0.1.2"; sha256="1i2xzchlsixgjzyfmbv547sy6mq90xrnyc2kpd11wwfgfrpj1ix3"; depends=[fdapace Rcpp]; };
   fdakma = derive2 { name="fdakma"; version="1.2.1"; sha256="0j9qgblrl7v4586dd6v0hjicli6jh8pkk5lzn8afpl75xfs24six"; depends=[]; };
   fdaoutlier = derive2 { name="fdaoutlier"; version="0.2.0"; sha256="1jpd9mszd0grn7rwi3dmgl6l5dggwsnz1kyljz2gcfm2wck2zhbz"; depends=[MASS]; };
-  fdapace = derive2 { name="fdapace"; version="0.5.7"; sha256="0mmdfp27a7j0hvziir8b2dybifrkahhcinnqf84xa8pp24w0v7mv"; depends=[Hmisc MASS Matrix numDeriv pracma Rcpp RcppEigen]; };
-  fdapaceShiny = derive2 { name="fdapaceShiny"; version="1.0.1"; sha256="0fs4gzpipxk54m5m1ikjxz1g5pah0rm0a1rmfs7ndwvynph7nmz9"; depends=[attempt bs4Dash config data_table dplyr DT fdapace ggplot2 glue golem htmltools magrittr pkgload plotly processx purrr reshape2 shiny shinyjs shinyWidgets stringr thinkr tidyr]; };
+  fdapace = derive2 { name="fdapace"; version="0.5.8"; sha256="15pslr1nysmraqd1swi3diljc9cl62z4x8nib2v5fqf3a3xz66sn"; depends=[Hmisc MASS Matrix numDeriv pracma Rcpp RcppEigen]; };
+  fdapaceShiny = derive2 { name="fdapaceShiny"; version="1.0.5"; sha256="1cy1rcmsyr78q3wqkaw3lvqzlr07n7djrqqpwm3y8xz60fybs8p6"; depends=[bs4Dash config dplyr DT fdapace ggplot2 golem htmltools magrittr plotly purrr reshape2 shiny shinyjs shinyWidgets stringr tidyr]; };
   fdasrvf = derive2 { name="fdasrvf"; version="1.9.7"; sha256="06kq9rlszydr55sg17yybwa89qd4d1826jyw4kmx4aligx7ycqq6"; depends=[coda doParallel fields foreach lpSolve Matrix matrixcalc mvtnorm Rcpp RcppArmadillo testthat tolerance viridisLite]; };
   fdatest = derive2 { name="fdatest"; version="2.1"; sha256="0zdnmssir5jz2kbfz4f4xshjfv4pivqx7cbh2arlx6ypkjrjws8n"; depends=[fda]; };
   fdcov = derive2 { name="fdcov"; version="1.1.0"; sha256="0savsgcifcjjqrmbpn6m30gncq5iigqxpb19l710wlx8nm98svjh"; depends=[corrplot matlab]; };
@@ -9073,7 +9142,7 @@ in with self; {
   fdq = derive2 { name="fdq"; version="0.12"; sha256="198nsyzv0ni2mjx12wik58c7z5vrc1mfk80k3iv94dz1iq9fprqf"; depends=[data_table Fgmutils ggplot2 randomcoloR sqldf]; };
   fdrDiscreteNull = derive2 { name="fdrDiscreteNull"; version="1.4"; sha256="1lwznpwfnhhv0h7qwy9jc7li752bq7hgmkh86qzyqz7k18zgx4iw"; depends=[MCMCpack qvalue]; };
   fdrci = derive2 { name="fdrci"; version="2.2"; sha256="0q5m7h6zfbwv2ab8ab6p4d8y8ib24ryvmngyk564589dl2fwrn6q"; depends=[ggplot2]; };
-  fdrtool = derive2 { name="fdrtool"; version="1.2.16"; sha256="1aap4k1l3a9m43374xq688mqnzkgqx8l021li262r3h1xr4adpp7"; depends=[]; };
+  fdrtool = derive2 { name="fdrtool"; version="1.2.17"; sha256="1pf554vb902vavgqc4c0kgghywbgcvr3lkkr414bxngavcd60lil"; depends=[]; };
   fds = derive2 { name="fds"; version="1.8"; sha256="1284vncixrzrz9x6b52gslrbrbia07sd0xac7nwdqhp5f5v5wfi0"; depends=[rainbow RCurl]; };
   fdth = derive2 { name="fdth"; version="1.2-6"; sha256="179qkmdr18nx5hrx78sh64r76h7n3v00rxyg2d7l0n8kzbbi9q1v"; depends=[xtable]; };
   feamiR = derive2 { name="feamiR"; version="0.1.0"; sha256="0yp3bxh47aspfnnxi4wm4drkndv265rv58n9x9cp5jazwdy4qgg9"; depends=[dplyr e1071 GA ggplot2 magrittr randomForest reticulate rpart rpart_plot stringr tibble]; };
@@ -9089,7 +9158,7 @@ in with self; {
   fec16 = derive2 { name="fec16"; version="0.1.3"; sha256="0azvrg98li535mqa2awhmfisfyfr4d8dw0ynikxmp0z1w9l3dx1p"; depends=[dplyr readr vroom]; };
   fechner = derive2 { name="fechner"; version="1.0-3"; sha256="0bassigcipwlr2g8cdjh8jyhmb903k3hla9gnigcbz7qwzlfwa86"; depends=[]; };
   federalregister = derive2 { name="federalregister"; version="0.2.0"; sha256="0qr8nd3ylnwcv1wxspw5i7ray5sh30zr648spg0lpqq8dp2b8p7b"; depends=[curl httr jsonlite]; };
-  fedmatch = derive2 { name="fedmatch"; version="2.0.4"; sha256="0vc9ax9nh2wy3m1l7m2fhmp75kx7bf0i2g3zg5svz3579ygihar4"; depends=[BH data_table forcats magrittr purrr Rcpp scales SnowballC stringdist stringr]; };
+  fedmatch = derive2 { name="fedmatch"; version="2.0.5"; sha256="1k6gj0aaihxqwvvvic8s5bhjqlxg6m37yj3bk9hbxy1lijv89w8j"; depends=[BH data_table forcats magrittr purrr Rcpp scales SnowballC stringdist stringr]; };
   fedregs = derive2 { name="fedregs"; version="1.0.0"; sha256="171j6r6qxnx9gk9x9gpdyh51ssrgmf7sczc4889qr3qqw15sm4bn"; depends=[dplyr httr magrittr purrr rvest stringi tidyr tidytext xml2]; };
   fedstatAPIr = derive2 { name="fedstatAPIr"; version="0.1"; sha256="0ll86fp9kaddacsy9jfnwrq353kx4gny8vmxg8vnfx9kcl3bv95z"; depends=[dplyr httr jsonlite magrittr readsdmx rlang rsdmx rvest stringr xml2]; };
   feisr = derive2 { name="feisr"; version="1.2.0"; sha256="012rspsw1xwl11gdr3nlpdmf24y9d2shwj81iqj1xill3l0mchwc"; depends=[aod dplyr Formula plm Rdpack]; };
@@ -9101,14 +9170,14 @@ in with self; {
   ferrn = derive2 { name="ferrn"; version="0.0.1"; sha256="1zp18hfnvmdb2w0qj432yj9a3939lad2hqymrmj8y1w3k0razifk"; depends=[dplyr geozoo gganimate ggforce ggplot2 ggrepel magrittr purrr rlang scales stringr tibble tidyr tourr]; };
   ff = derive2 { name="ff"; version="4.0.5"; sha256="0dsh6llfdz04w94xr3yl2b4vkk9g3rwhvfnxcd025v2424krxfls"; depends=[bit]; };
   ffbase = derive2 { name="ffbase"; version="0.13.3"; sha256="1dp6lblfq2j7r1b4b8ls47jlx8j27n88d5vp8w116lb8pa01zxmk"; depends=[bit fastmatch ff]; };
-  fflr = derive2 { name="fflr"; version="1.9.2"; sha256="0k8jsrq0nznx33bzl4abzs1dk740vqfrzc5g8mx291bv5g519qag"; depends=[httr jsonlite tibble]; };
+  fflr = derive2 { name="fflr"; version="2.0.1"; sha256="0yc3xr97iprnr4snsm3vf4bimx56vxw6dpkdqxv20qs5jd9bshcw"; depends=[httr jsonlite tibble]; };
   ffmanova = derive2 { name="ffmanova"; version="1.1.0"; sha256="0019m9vxnh5yxr5k7zflzyhd533a842cjjkcpqyannshnrbfndvy"; depends=[]; };
   ffmetadata = derive2 { name="ffmetadata"; version="1.0.0"; sha256="0gjv5fl3p0kz28c91l4qf34a2685a24l5841ixdg7wivfs5v9npv"; depends=[httr jsonlite]; };
   ffp = derive2 { name="ffp"; version="0.1.0"; sha256="11c25lcy5fzchc00cv7r9g92gnb6iffmcylibs1w42245r69bsnh"; depends=[assertthat dplyr forcats ggdist ggplot2 lubridate magrittr mvtnorm NlcOptim pracma purrr rlang scales tibble tidyr usethis vctrs xts]; };
-  ffscrapr = derive2 { name="ffscrapr"; version="1.4.6"; sha256="02radzd5bcavbhgy842bgxbp33db87sxpqvxnff46kz6v6xbw7wm"; depends=[cachem checkmate dplyr glue httr jsonlite lifecycle lubridate magrittr memoise nflreadr purrr rappdirs ratelimitr rlang stringr tibble tidyr]; };
+  ffscrapr = derive2 { name="ffscrapr"; version="1.4.7"; sha256="1qfclfvz1xa9mamn9rjmwyrrpsj8cr6ri5040g2gfxjag0by5n21"; depends=[cachem checkmate dplyr glue httr jsonlite lifecycle magrittr memoise nflreadr purrr rappdirs ratelimitr rlang stringr tibble tidyr]; };
   ffsimulator = derive2 { name="ffsimulator"; version="1.1.0"; sha256="0mzas3hx6nj2q2lidkmrnh3mfz8w0s9r58j7vy39sfaq8h9qqyly"; depends=[checkmate cli data_table ffscrapr glue magrittr nflreadr Rglpk rlang tidytable]; };
   ffstream = derive2 { name="ffstream"; version="0.1.6"; sha256="036ikhah4y85khgfmvxwsn3vavvw1is8i9k2lw474wxlh4cxa3kd"; depends=[Rcpp]; };
-  fftw = derive2 { name="fftw"; version="1.0-6"; sha256="1kkhn79x3akp2v28aqmif0dd2fn1pw145fjgyy29i4ab6pngazir"; depends=[]; };
+  fftw = derive2 { name="fftw"; version="1.0-6.1"; sha256="1s16r8qr1w85k5i0wfj4gc3cnwqg3yx2nbk9mcfb3j95jx7jphzz"; depends=[]; };
   fftwtools = derive2 { name="fftwtools"; version="0.9-11"; sha256="0zrchp4l0jdbir2gibjf00x225y9giqk80zvqmr2yyvc12lwkw7i"; depends=[]; };
   fgac = derive2 { name="fgac"; version="0.6-1"; sha256="0paddf5a4w0g2i0ay7my0bppwh534d8ghy6csfxl5jj034xjgwkk"; depends=[]; };
   fgdr = derive2 { name="fgdr"; version="1.1.0"; sha256="0xllws7z3crbwibyhm3w06zagvlbmn3rcy8ccgkdhl0am3q7dz0a"; depends=[data_table jpmesh magrittr purrr raster readr rlang sf stars stringr terra tibble units xml2]; };
@@ -9126,12 +9195,13 @@ in with self; {
   fiberLD = derive2 { name="fiberLD"; version="0.1-6"; sha256="1i3bl2qsc77m81l11an9ihl4vy86s8jd5x6pasib77rl2877ad4x"; depends=[doParallel foreach Matrix VGAM]; };
   fic = derive2 { name="fic"; version="1.0.0"; sha256="18xz94w1ab17jfi61bdg9z3pm63g488v17ns2ivizkza4gg07pv8"; depends=[abind ggplot2 mvtnorm numDeriv scales survival tensor]; };
   fidap = derive2 { name="fidap"; version="0.0.3"; sha256="0zq07395qx59xxb3cj5axhpkwnad2h88qbm3aan43q5cip9wi2bx"; depends=[httr jsonlite]; };
+  fidelius = derive2 { name="fidelius"; version="0.0.2"; sha256="18dsw069j3jzl0splgjjdsybny1hq0dmiyygri8nlfwshijkw15h"; depends=[askpass fs htmltools readr rlang rmarkdown rstudioapi sodium whisker]; };
   fieldRS = derive2 { name="fieldRS"; version="0.2.3"; sha256="0jr2l5cnrawd6wibmb6r0sngd851z9mbz4mwprnbbqbv3hzzrpm9"; depends=[caret concaveman geosphere ggplot2 raster rgeos sp stringdist vegan]; };
   fields = derive2 { name="fields"; version="13.3"; sha256="1hs4k5a9hh0r5fsrnpnvs6wvf78xpjzj8a2j6643dsz73a5q6ln6"; depends=[maps spam viridis]; };
   fiery = derive2 { name="fiery"; version="1.1.3"; sha256="1rwnmm4n59wdsvb57bj8mx1qhz93jbvfb73sl111nwqazphrhid1"; depends=[assertthat crayon future glue httpuv later R6 reqres stringi uuid]; };
   figpatch = derive2 { name="figpatch"; version="0.1.0.1"; sha256="1chshlyc3ygyvgzyph4mix3a6kvv4w0vbnss58472h0mgl7mgx8v"; depends=[ggplot2 magick patchwork]; };
-  file2meco = derive2 { name="file2meco"; version="0.1.0"; sha256="1lw3w8l2563ccvb4v0hj8qk96yam5p3rf0hcah6s93pyrz1mimyx"; depends=[ape dplyr magrittr Matrix microeco R6 rhdf5 tidyr yaml]; };
-  filearray = derive2 { name="filearray"; version="0.1.1"; sha256="05zxi3w91x2hyyr1a492djj6k0s111kqqxd19nmqp4vkm2cz2cyw"; depends=[BH Rcpp]; };
+  file2meco = derive2 { name="file2meco"; version="0.2.0"; sha256="0x45nr344k3nmcrjrlm2fczcxrh5n807v7qymffkkq7v589nfcyl"; depends=[ape dplyr magrittr Matrix microeco R6 rhdf5 tidyr yaml]; };
+  filearray = derive2 { name="filearray"; version="0.1.2"; sha256="1fs19jpnnkb40rv2z9fxvj7snvmd41nhb8z61a4f2jslkrw9cs23"; depends=[BH Rcpp]; };
   filehash = derive2 { name="filehash"; version="2.4-2"; sha256="14zv7h5195dmfksgk8qvjgc2qq8253vga6267aa1bqs5bpvmdl5n"; depends=[]; };
   filehashSQLite = derive2 { name="filehashSQLite"; version="0.2-4"; sha256="1higvkmj4wvnwpvayqinzaygiksij20d77dx118q0gffsczadamh"; depends=[DBI filehash RSQLite]; };
   filelock = derive2 { name="filelock"; version="1.0.2"; sha256="00ql5fw1hidpfnm0szaavf43ahmsnvdbi8i5lr1nrcc90yaiaadc"; depends=[]; };
@@ -9141,6 +9211,7 @@ in with self; {
   filesstrings = derive2 { name="filesstrings"; version="3.2.2"; sha256="111cjb2wja6q864wki8czpwm6xj8c3zwjlqcr8r36993ww72k6iy"; depends=[checkmate magrittr purrr rlang strex stringi stringr withr]; };
   filling = derive2 { name="filling"; version="0.2.3"; sha256="17vk0pndsc8xhgp4zy5dfyc36pzk2hm5zk6xijdy4xaf7k5j4wls"; depends=[CVXR nabor Rcpp RcppArmadillo Rdpack ROptSpace RSpectra]; };
   fillr = derive2 { name="fillr"; version="1.0.0"; sha256="1gx1ihp8j90ywmm6mmmfq4jd6apxawk9s5dfw3jq0wm1c290zqpv"; depends=[]; };
+  filterNHP = derive2 { name="filterNHP"; version="0.1.2"; sha256="0kk6548nr5786ywa83v8by4c1n7ljh9sy4fshpfqizp49fv9zv22"; depends=[data_tree rclipboard shiny shinyBS shinyjs shinyWidgets]; };
   finalfit = derive2 { name="finalfit"; version="1.0.3"; sha256="07pniw0w9s0czxk82pw1a7j6br52fvq3yxrx2n61yyqs5cd89ymv"; depends=[bdsmatrix boot broom dplyr forcats GGally ggplot2 gridExtra lme4 magrittr mice pillar pROC purrr scales stringr survival tidyr]; };
   finbif = derive2 { name="finbif"; version="0.6.2"; sha256="1y4srrybiin16xgq1a2y80a84yq5nad4iv1a3xpcniixgk79k6l8"; depends=[digest httr jsonlite lubridate lutz]; };
   finch = derive2 { name="finch"; version="0.4.0"; sha256="0q7riaxms460c6z2gb8i0q4pb348bnvry46bjd7pb9mh8fnl1i8b"; depends=[data_table digest EML hoardr xml2]; };
@@ -9154,7 +9225,7 @@ in with self; {
   fingerprint = derive2 { name="fingerprint"; version="3.5.7"; sha256="04jcwkydjrs31pia6kq8z2n9s54im950q08hs2ay15xjxxkmb8ic"; depends=[]; };
   finiteruinprob = derive2 { name="finiteruinprob"; version="0.6"; sha256="0z4l0crymh58chxniqq70fqmvi6f5jkgvz72vbc7s3l9lrrapgr3"; depends=[numDeriv sdprisk]; };
   finity = derive2 { name="finity"; version="0.1.4.1"; sha256="0xs3vx0vj165hj4dq8ivrdf6fcvj23zhp2ai79rgpyb5rr5ndkvc"; depends=[BH Rcpp RcppArmadillo stabledist]; };
-  finreportr = derive2 { name="finreportr"; version="1.0.2"; sha256="0xkkrgmwkasxgaf3lvvxl5azwbphk83fpa2asgva86qml7vwznlc"; depends=[curl dplyr httr rvest XBRL xml2]; };
+  finreportr = derive2 { name="finreportr"; version="1.0.3"; sha256="1xa94x69czy9cn9r6hklv6b91514aqvcam29pcrb0w6gypwlm1pw"; depends=[curl dplyr httr rvest XBRL xml2]; };
   fipe = derive2 { name="fipe"; version="0.0.1"; sha256="055jav8h4wws76jahm2d5dj49wkvzchh3f2vk5d50pny4dc7smar"; depends=[dplyr forcats furrr future httr jsonlite lubridate magrittr purrr readr stringr tibble tidyr]; };
   fipio = derive2 { name="fipio"; version="1.0.0"; sha256="118gir8gnwip2hzf4q4vv96rkw050qmb0kv3hq2cwlfscbrwza9f"; depends=[]; };
   fipp = derive2 { name="fipp"; version="1.0.0"; sha256="0wr3czwsqwa1bpdcjk0r1739vjanxc0fv0vnl3r5lgykrbhw9v3r"; depends=[matrixStats Rcpp RcppArmadillo]; };
@@ -9196,7 +9267,7 @@ in with self; {
   flagr = derive2 { name="flagr"; version="0.3.2"; sha256="195c78cml2pjzfvpkaxbzcg1dfdqxi76138p0v3x3zzva9d8nlji"; depends=[]; };
   flair = derive2 { name="flair"; version="0.0.2"; sha256="0hvg9k7l6vdhmbmql1viyn54f07r31ssyyhdv2v242i0npa2l25r"; depends=[dplyr evaluate ggplot2 glue knitr magrittr purrr rmarkdown stringr]; };
   flam = derive2 { name="flam"; version="3.2"; sha256="0v6kcl4n7wq052p7jdgbzlh9fpk8bzlrqw12i6pib1wd3slj0asa"; depends=[MASS Rcpp]; };
-  flametree = derive2 { name="flametree"; version="0.1.2"; sha256="0b00wqhqf2cf5flyr4ygdiz2iil74i21gmz4xgs2hci5r7r0smck"; depends=[dplyr ggforce ggplot2 magrittr paletteer purrr tibble tidyr]; };
+  flametree = derive2 { name="flametree"; version="0.1.3"; sha256="0mdmr1s4iqpic9rz33b2cja56r6p67dfhz9j2gdx4pdicywairxg"; depends=[dplyr ggforce ggplot2 magrittr purrr tibble tidyr]; };
   flamingos = derive2 { name="flamingos"; version="0.1.0"; sha256="0gic6y8wpxffpyi3zy0wh7apy4z6argxbz284n80k2mzh6lh029k"; depends=[Rcpp RcppArmadillo]; };
   flan = derive2 { name="flan"; version="0.9"; sha256="0g4prvlwiaf6ig6kghniqpcaxyws27345mb5qmcpgsy4jzdc4k7j"; depends=[Rcpp RcppArmadillo RcppGSL]; };
   flare = derive2 { name="flare"; version="1.7.0"; sha256="0f992dmgnr6s8g3386i9bjfyf08q8srgw7sjz2yx7snj8znq7251"; depends=[igraph lattice MASS Matrix]; };
@@ -9215,11 +9286,11 @@ in with self; {
   flexmet = derive2 { name="flexmet"; version="1.1"; sha256="1xcs4gs5aanvfsf6bgj28jsjdxrx0dz475xsw8hd6y44qdgw1sqb"; depends=[]; };
   flexmix = derive2 { name="flexmix"; version="2.3-17"; sha256="0jangf89174p0idh9afbicfiln2sz8jxc3bjc6n0j9036dw9n09n"; depends=[lattice modeltools nnet]; };
   flexmixNL = derive2 { name="flexmixNL"; version="0.0.1"; sha256="0bk5v0cnsn1qkd1b86vj0bnpr4l9d6523kpkgzb1l1sqyscawfmm"; depends=[flexmix gnm]; };
-  flexpolyline = derive2 { name="flexpolyline"; version="0.2.4"; sha256="11chwaanrd8finvjs8kpmrpqikyidm7nswbal9kf4yh935znr2hl"; depends=[Rcpp sf]; };
+  flexpolyline = derive2 { name="flexpolyline"; version="0.2.5"; sha256="1ccv4lfpcikyxa5bpnyh1zijxbayfny8cv3svh5ph5l563rgybzy"; depends=[Rcpp sf]; };
   flexrsurv = derive2 { name="flexrsurv"; version="1.4.5"; sha256="1xwh6fj854hr5j1mdh4cbp3hbrbdl4nb2ili876rq08wb9wq5pkf"; depends=[Epi formula_tools matrixcalc orthogonalsplinebasis statmod survival]; };
   flexsurv = derive2 { name="flexsurv"; version="2.1"; sha256="0kwij9nkdvnsn1kn12fj3hjkd2qpgw7bdda4qad7basq5p6divlp"; depends=[assertthat deSolve dplyr generics magrittr Matrix mstate muhaz mvtnorm numDeriv purrr quadprog Rcpp rlang rstpm2 survival tibble tidyr tidyselect]; };
   flexsurvcure = derive2 { name="flexsurvcure"; version="1.2.0"; sha256="06qppcjml380drd6brc60j1swasqrmdx82h6x69xpb65zn9wpa3c"; depends=[flexsurv gtools survival]; };
-  flextable = derive2 { name="flextable"; version="0.6.9"; sha256="15lba98wnci2nsndj86gx3k94q9lfxhp5nr5xlhgcnycyj1c9zjx"; depends=[base64enc data_table gdtools htmltools knitr officer rlang rmarkdown uuid xml2]; };
+  flextable = derive2 { name="flextable"; version="0.6.10"; sha256="01nm0357b0z4dgrplbq9ms63j51n0rgvvxyy068zdsc5p7j3lql2"; depends=[base64enc data_table gdtools htmltools knitr officer rlang rmarkdown uuid xml2]; };
   flifo = derive2 { name="flifo"; version="0.1.5"; sha256="03x66l3ryrjvwbxxd0ncjrb5w9kc7fswmp5psb1cb7r87f395gm3"; depends=[bazar pryr]; };
   flightplanning = derive2 { name="flightplanning"; version="0.8.4"; sha256="1n0mjrqlnfv4fvl512slw3d3vmlcn2lhf89jlfg2s0xfrd9k4pq8"; depends=[rgdal rgeos sp]; };
   flightplot = derive2 { name="flightplot"; version="0.1.0"; sha256="1276lsahr9kdsvp1ismm3b5syvhfr7ifizzd79f8w1h2rjblva8x"; depends=[dplyr geosphere ggplot2 ggrepel magrittr rlang sf tibble]; };
@@ -9256,7 +9327,7 @@ in with self; {
   fmri = derive2 { name="fmri"; version="1.9.6"; sha256="1wh77xwpm8f9d9vky3r7vfmkik3hls008ifk8hkm2rq6i06jj53n"; depends=[aws metafor nlme]; };
   fmriqa = derive2 { name="fmriqa"; version="0.3.0"; sha256="1z09nf1c305a78c129jvs21b9z91wyhazz41wrn4bimmhfhx7szv"; depends=[ggplot2 gridExtra imager optparse pracma RcppEigen reshape2 RNifti tidyr viridisLite]; };
   fmsb = derive2 { name="fmsb"; version="0.7.1"; sha256="09pq7p7i6vkq9av7l7x9hicl9sqh7xn96f9pac117hy6z852jvi2"; depends=[]; };
-  fmtr = derive2 { name="fmtr"; version="1.5.3"; sha256="0gbb1zhzqphg2yh4qsypr9lhsvcr32wilk3pahkzsn2laxdqn1sx"; depends=[crayon Rcpp tibble]; };
+  fmtr = derive2 { name="fmtr"; version="1.5.4"; sha256="0xrl22f02q2m66k9h1134iwdmzhvk0ni9dfrgzpi8rnfdf4svx4i"; depends=[crayon Rcpp tibble]; };
   focusedMDS = derive2 { name="focusedMDS"; version="1.3.3"; sha256="18s86dbbpyajscqr9frprf2vp1zif7vh4lw5m0cjskfc6gmsdp2p"; depends=[htmlwidgets]; };
   foghorn = derive2 { name="foghorn"; version="1.4.2"; sha256="11riav36ncxybx4yrrrwrykg9xmh2fpp5m92zl9prhi7g0rllg6f"; depends=[clisymbols crayon curl httr jsonlite rlang rvest tibble xml2]; };
   foieGras = derive2 { name="foieGras"; version="0.7-6"; sha256="0g4c9id7q3jgjcgwmncp4bkw9njwb41cp6ycv7psiidkhmnzi03d"; depends=[assertthat CircStats dplyr furrr future ggplot2 lifecycle lubridate mvtnorm patchwork purrr RcppEigen sf stringr tibble tidyr TMB tmvtnorm trip]; };
@@ -9345,17 +9416,17 @@ in with self; {
   frailtypack = derive2 { name="frailtypack"; version="3.4.0"; sha256="0i46jrgsq01j79ha76j29j26ias1hxjb97rf0cp0yxbc7xnaz6hi"; depends=[boot doBy MASS nlme rootSolve shiny statmod survC1 survival]; };
   frair = derive2 { name="frair"; version="0.5.100"; sha256="1j557dqvc5xiz7xbl4h7vp55pc3hly8ci01qy36p02vlxhzf4hj3"; depends=[bbmle boot lamW]; };
   frambgrowth = derive2 { name="frambgrowth"; version="0.1.0"; sha256="1xmy1zxp7aa2n8frlxhn1bl41zda1jldvvxb3q41yam3pslc8m1q"; depends=[]; };
-  framecleaner = derive2 { name="framecleaner"; version="0.1.0"; sha256="1c7z11s7fhjicd940jwyb32iriy2p5yk7ca28kq1kjzpz9gsb22d"; depends=[bit64 dplyr forcats fs janitor lubridate magrittr printr purrr readr readxl rio rlang rlist rstudioapi stringi stringr tibble tidyr tidyselect vroom]; };
+  framecleaner = derive2 { name="framecleaner"; version="0.2.0"; sha256="1lclxjds59i1mhc8mzmgy5f7yhqwv72ylidpfvzjgslf45sjk5lp"; depends=[bit64 dplyr fastDummies forcats fs janitor lubridate magrittr purrr readr rio rlang rlist rstudioapi stringr tibble tidyselect vroom]; };
   franc = derive2 { name="franc"; version="1.1.4"; sha256="0l41m53li2pvcac7m5y5gkvmw0qy5k3v0m2ljda9gdaasg5029xr"; depends=[jsonlite]; };
   frapplot = derive2 { name="frapplot"; version="0.1.3"; sha256="12924szk2p0582nv97gi8pxrbv41zqpjryc6jqgg4llhp7ydz7xf"; depends=[]; };
   frbs = derive2 { name="frbs"; version="3.2-0"; sha256="0biv6j31qi0f4i063ygmbp6v6ws1nxijn5kyhg5sz1rnbr0msl28"; depends=[]; };
   frechet = derive2 { name="frechet"; version="0.2.0"; sha256="1006mgy9avwkwy0666maac59xp4j27wq5yy3pwc3h1r05myxw379"; depends=[corrplot fdadensity fdapace Matrix osqp pracma]; };
   fredr = derive2 { name="fredr"; version="2.1.0"; sha256="0073qh0drf1p38hc84m54n35hyza90m8zn48ihx3alxkiq1m8ijp"; depends=[httr jsonlite rlang tibble]; };
-  freealg = derive2 { name="freealg"; version="1.0-2"; sha256="1k5dr02p313xs1ipk217bqlm8xb6620filcmq582lmykj2zxs774"; depends=[mathjaxr partitions Rcpp]; };
+  freealg = derive2 { name="freealg"; version="1.0-3"; sha256="14jr00j2ky5sq8bhbr2i41mqj3jqk204nh6983wxi4qnmpvxhm1f"; depends=[disordR mathjaxr partitions Rcpp]; };
   freedom = derive2 { name="freedom"; version="1.0.1"; sha256="1mrdl2cqdm2c68lx7lyixgiqw6xzwnx9c8j5q4annhiz107i9i22"; depends=[]; };
-  freegroup = derive2 { name="freegroup"; version="1.1-0"; sha256="0ssshs2d6l2ip1xx9x581w0cdnd2459a1mh360ybwajkjgak2ci6"; depends=[magic magrittr plyr]; };
+  freegroup = derive2 { name="freegroup"; version="1.1-3"; sha256="11v0ph0mhk8g9zwapcp2wgr1sbdwdqh7nhbrci87myapypdncqjc"; depends=[magic magrittr plyr]; };
   freesurfer = derive2 { name="freesurfer"; version="1.6.8"; sha256="0ks6ms5vp38pykcg66w960nmfgq383iprrbbzw5dlx9xnrx4yhbh"; depends=[neurobase R_utils reshape2]; };
-  freesurferformats = derive2 { name="freesurferformats"; version="0.1.15"; sha256="092p6za8xzhx7zn1h0a8rw1sss3rdml0pzkgapgyvykqlsr7nmp9"; depends=[pkgfilecache xml2]; };
+  freesurferformats = derive2 { name="freesurferformats"; version="0.1.16"; sha256="0aax9dimig3cn8mqnl8xdj9khs7fga08fx7vw9qkwrv4bnls8zvz"; depends=[pkgfilecache rmarkdown xml2]; };
   frenchCurve = derive2 { name="frenchCurve"; version="0.1.0"; sha256="1b8lkmhydz4jq8h5p117fwaygbsillzcfx0p7w0ljj8b8v57r6l9"; depends=[sp]; };
   frenchdata = derive2 { name="frenchdata"; version="0.2.0"; sha256="13n0phncbxim9ak897hmjw1p7ph5wi3jn2m8hgmm3bywxbxcg1qz"; depends=[assertthat cli dplyr fs httr magrittr purrr readr rlang rvest stringr tibble tidyr]; };
   freqdist = derive2 { name="freqdist"; version="0.1"; sha256="1pb45jabv9s3qa7v1isd5wm9b0g9p04q5h18spcaax8397s0d2fv"; depends=[]; };
@@ -9369,7 +9440,7 @@ in with self; {
   frequentistSSD = derive2 { name="frequentistSSD"; version="0.1.0"; sha256="0r2vy8n6d8c2vdijd0cyg9vv4m0w0a6m2piblky48c1wm2qznfd2"; depends=[survival]; };
   fresh = derive2 { name="fresh"; version="0.2.0"; sha256="1787mm6w2s5x9scxy7r9cb77rgpmy4ngwkn4z8g3gs48mrab4bd9"; depends=[htmltools rstudioapi sass shiny]; };
   friends = derive2 { name="friends"; version="0.1.0"; sha256="164p9g07vq3xs2lgg250yvzca4b0mp81pqbnjfdkzcqh5hmahsan"; depends=[tibble]; };
-  fritools = derive2 { name="fritools"; version="2.3.0"; sha256="1xhlgl40rfg0h6kdrcm239p9z6fgb5id57zlhqh3lrsdlm8qjsh1"; depends=[]; };
+  fritools = derive2 { name="fritools"; version="2.4.0"; sha256="0pj8816y5gdks95v4mnd1ncii7hiqbsh1g5b1795dq5qhfc1xp8l"; depends=[]; };
   frm = derive2 { name="frm"; version="1.2.2"; sha256="1dl0vca9r2dams99sc13pfpi0b3yb02x59f4c1jz07zz005c8l23"; depends=[]; };
   frmhet = derive2 { name="frmhet"; version="1.1.3"; sha256="07sgsfhzrci8g1b0gicjfca1mgd8ppfqpkpp4q9bdxnjvdvlf45s"; depends=[]; };
   frmpd = derive2 { name="frmpd"; version="1.1.0"; sha256="0irgqdr0vr8k408lsxcrjkjbjvqvmy5mnjw9c1ghs86isrp5mciz"; depends=[]; };
@@ -9383,9 +9454,9 @@ in with self; {
   fruclimadapt = derive2 { name="fruclimadapt"; version="0.4.4"; sha256="19siwjjcjh0kh2wpbabgzjwrfgg2al0g7d4z91wdcp3spwx308vk"; depends=[data_table lubridate tidyverse zoo]; };
   fs = derive2 { name="fs"; version="1.5.0"; sha256="15rqc3ljmcmgfvadj1j1kq7kvibagxic8sgplhlcdqqxax9idprn"; depends=[]; };
   fsMTS = derive2 { name="fsMTS"; version="0.1.5"; sha256="1vxj9wkzpbk44hby4fdyhj72748c65by612kpphs6vmgzmw4y471"; depends=[freqdom glasso lars mpmi randomForestSRC]; };
-  fsbrain = derive2 { name="fsbrain"; version="0.5.0"; sha256="0ifaz25s8g53agyjxm252gmav3iqf0h51bnayc05v1fjj8z5khzs"; depends=[data_table fields freesurferformats magick pkgfilecache reshape rgl squash viridis]; };
+  fsbrain = derive2 { name="fsbrain"; version="0.5.2"; sha256="1vqj8x6wsaz89dl58nqhmz9vla0vjzdn8gzppkfggb44i2q1xm55"; depends=[data_table fields freesurferformats magick pkgfilecache reshape rgl squash viridis]; };
   fscaret = derive2 { name="fscaret"; version="0.9.4.4"; sha256="18fhyfl3f8syyc3g937qx87dmwbv7dray6b97p1s6lnssiv61gsw"; depends=[caret gsubfn hmeasure]; };
-  fsdaR = derive2 { name="fsdaR"; version="0.4-9"; sha256="1iaqqdwhh29fhq4r64adfrjmsyzq4v60bz9111vkazj4kr45wxxv"; depends=[ggplot2 rJava rrcov]; };
+  fsdaR = derive2 { name="fsdaR"; version="0.6-5"; sha256="0j6nvlp527b4g36jg6mcq8w2mc8p795q68d11yi41fvlcw7v6vym"; depends=[ggplot2 rJava rrcov]; };
   fsia = derive2 { name="fsia"; version="1.1.1"; sha256="0id7cnswrqylgpwjil1zfn89ryrdpl20fim8x1srl8s1hm5bg35r"; depends=[]; };
   fslr = derive2 { name="fslr"; version="2.24.1"; sha256="1psjqvjv8krlkj7dcfwygz563a4cpn7h21z330hxh5q10rwhabi8"; depends=[neurobase oro_nifti R_utils]; };
   fsn = derive2 { name="fsn"; version="0.1"; sha256="1a5vsrk9l19rh46kxrfmgcv07l0pr4zn1q2f0chivq43pwmfm194"; depends=[Rfast]; };
@@ -9399,9 +9470,9 @@ in with self; {
   ftDK = derive2 { name="ftDK"; version="1.0"; sha256="1xs2rr2afjza97kpym5zkas3k78pilxjlh7lp1gc66banldr71g2"; depends=[dplyr httr pbapply purrr tibble]; };
   ftExtra = derive2 { name="ftExtra"; version="0.2.0"; sha256="1nlwhck6f0llr6yci8y55dzcsdsi2yd758cmf4snjzhqm06kzrby"; depends=[dplyr flextable jsonlite magrittr purrr rlang rmarkdown stringr tibble tidyr tidyselect vctrs xfun yaml]; };
   ftnonpar = derive2 { name="ftnonpar"; version="0.1-88"; sha256="0df9zxwjpfc939ccnm1iipwhpf76b34v0x74nsi1mm1g927dfl0i"; depends=[]; };
-  ftrCOOL = derive2 { name="ftrCOOL"; version="1.1.2"; sha256="08s1k47hjfgizfxpqlkqdir9pkhalqp3j9w047ll3wzx3jjx0jgn"; depends=[]; };
+  ftrCOOL = derive2 { name="ftrCOOL"; version="2.0.0"; sha256="0jy0dhkf7hlrriz32abp0h52fw92i5k8x25bjqlzd0khyv2vhj0i"; depends=[]; };
   fts = derive2 { name="fts"; version="0.9.9.2"; sha256="08pwhi19db173d4nsk5rl8xa8qmaddj4bn3cjxb8ql4kny59i57q"; depends=[BH zoo]; };
-  ftsa = derive2 { name="ftsa"; version="6.0"; sha256="06g6qmz7qagm0izvq5d85h0hy851idpk7wi1hapw8xcl596irgf6"; depends=[colorspace e1071 ecp fda forecast MASS pcaPP pdfCluster rainbow sde strucchange]; };
+  ftsa = derive2 { name="ftsa"; version="6.1"; sha256="0j8jr0sbvxfzqfy8va7axljp660jkpqwg9djbis9ikf4x9n9f7n9"; depends=[boot colorspace e1071 ecp evgam fda fdapace fGarch forecast glue KernSmooth LaplacesDemon MASS pcaPP pdfCluster psych rainbow ROOPSD sde strucchange vars]; };
   ftsspec = derive2 { name="ftsspec"; version="1.0.0"; sha256="12f9yws1r26i240ijq0xqprl3pgbw50wv68jsm75ycplbs2jsyhs"; depends=[sna]; };
   fuel = derive2 { name="fuel"; version="1.2.0"; sha256="0pzb77g6l8cz5p7y6czck23kp7hs5zp78k87b5yh0avjlr7ads74"; depends=[]; };
   fueleconomy = derive2 { name="fueleconomy"; version="1.0.0"; sha256="16a8wyliiidi6rw14ksimygfkl4a7yhxvss7l9bcvr1wfiplrn65"; depends=[]; };
@@ -9409,7 +9480,6 @@ in with self; {
   fugue = derive2 { name="fugue"; version="0.1.7"; sha256="1myvi9cizxvahb6wn2k26v3x958xsrm2p414ar05injmfjdfnsmi"; depends=[]; };
   fullROC = derive2 { name="fullROC"; version="0.1.0"; sha256="0pn4lh59snfcyyi28350lm4n9xh6y25hpjr38dc33bic4cfbqiyr"; depends=[]; };
   fullfact = derive2 { name="fullfact"; version="1.5"; sha256="1p2f4rf54hd0icy49fkq6p973rqisjjmmr1brwcv0fg22nv2kidg"; depends=[afex lme4]; };
-  fulltext = derive2 { name="fulltext"; version="2.0"; sha256="104wkas9azyb2drfaz1hrgbx2ilbb0k2mb8411l10rsbkqva099f"; depends=[aRxiv crul data_table digest fauxpas hoardr jsonlite magrittr microdemic pdftools rcrossref rentrez rplos storr tibble xml2]; };
   fun = derive2 { name="fun"; version="0.3"; sha256="09601ma4irmpkgjspq6zmr383m1pbgyfdkf7gw8w8gp0q7ab89aq"; depends=[]; };
   funData = derive2 { name="funData"; version="1.3-8"; sha256="146mnv09mbjr7vwvwlds1jc91vzbj7df0kb70qmiav0a8bvslngi"; depends=[abind fields foreach]; };
   funFEM = derive2 { name="funFEM"; version="1.2"; sha256="17pw743qnljwasj4cg8m8sg9j6piy7g69jr57aqmbizlfdqvvl05"; depends=[elasticnet fda MASS]; };
@@ -9446,7 +9516,7 @@ in with self; {
   future = derive2 { name="future"; version="1.23.0"; sha256="1y5qzpsg0r2dccynyybbb2ngxbl1y3phs1dq2jj3f2bwhc7chsfq"; depends=[digest globals listenv parallelly]; };
   future_apply = derive2 { name="future.apply"; version="1.8.1"; sha256="1ix61bfbk43pwnjb0wk8lkfgdsy5zi8svk74gar5nrl90b5w6nqd"; depends=[future globals]; };
   future_batchtools = derive2 { name="future.batchtools"; version="0.10.0"; sha256="1ly98h2g7wpfxp2r8vl1hy7wqqgwgawjagz0m2iczjmcj4ix6avk"; depends=[batchtools future]; };
-  future_callr = derive2 { name="future.callr"; version="0.6.1"; sha256="037xgv604vrbdqx4zbai8nqd2d9cf47f0rwxd7iihr09y8qknd19"; depends=[callr future]; };
+  future_callr = derive2 { name="future.callr"; version="0.7.0"; sha256="0y5x2xz29j7aidk3c1iby3dk23gpxmgzp4f5z5bdgd1w0n4jslg4"; depends=[callr future]; };
   future_tests = derive2 { name="future.tests"; version="0.3.0"; sha256="1ssr0sd9h10151m5iaad17zqii7d18nnszq2svj0i8izk83xhrik"; depends=[cli crayon future prettyunits sessioninfo]; };
   futureheatwaves = derive2 { name="futureheatwaves"; version="1.0.3"; sha256="122b2z86bzxfch67y6cpq8wj62mw0dgkzbmnpwi247kdx7w5mw1f"; depends=[data_table dplyr ggplot2 ggthemes leaflet Rcpp stringr tidyr]; };
   fuzzr = derive2 { name="fuzzr"; version="0.2.2"; sha256="1cwq7a5j6lzrlz9dw3hsfap988rh1kkgf03yni7c33zl69xp5w77"; depends=[assertthat progress purrr]; };
@@ -9455,9 +9525,10 @@ in with self; {
   fuzzySim = derive2 { name="fuzzySim"; version="3.0"; sha256="18h0lxzqyp7fzjv7vnyfbwpaxjx15sw0h9l5yq846xzhkza79xxp"; depends=[]; };
   fuzzyforest = derive2 { name="fuzzyforest"; version="1.0.8"; sha256="0sb7qia01a5h6p12riq6vdq9likmqb6i949axsxszy5sf1zk50v5"; depends=[doParallel foreach ggplot2 mvtnorm randomForest]; };
   fuzzyjoin = derive2 { name="fuzzyjoin"; version="0.1.6"; sha256="0s5rhqz8vih4za3a8k1k7i3gq8hj0w7bqnakw40k6mg87jvyzsj7"; depends=[dplyr geosphere purrr stringdist stringr tibble tidyr]; };
+  fuzzyreg = derive2 { name="fuzzyreg"; version="0.5.2"; sha256="1ppgyavkq8nys6fs9is7x08kclaa9g4h04a55bdkk6jjm36if914"; depends=[limSolve quadprog]; };
   fuzzywuzzyR = derive2 { name="fuzzywuzzyR"; version="1.0.5"; sha256="1g73xivxyh5fvppccgnxhgar6jsl6zsr2djkg0bhh10i633l56ia"; depends=[R6 reticulate]; };
   fwi_fbp = derive2 { name="fwi.fbp"; version="1.7"; sha256="1wk9cr0kk6zkbf111bv87n7b1wwx1qrsbjxydvbjvy8bgz0nfa62"; depends=[]; };
-  fwildclusterboot = derive2 { name="fwildclusterboot"; version="0.4"; sha256="1ac8rbkkplbhyr5l4qvrha15dygsgagss8vi9xavy1j8kam8b8wm"; depends=[collapse dreamerr Formula generics gtools Matrix Matrix_utils Rcpp RcppEigen]; };
+  fwildclusterboot = derive2 { name="fwildclusterboot"; version="0.5.1"; sha256="0qf5bk6fl4x5fdkld63dsybi6929z5pg98valradcg01qm7zkqrp"; depends=[collapse dqrng dreamerr Formula generics gtools Matrix Matrix_utils Rcpp RcppEigen]; };
   fwsim = derive2 { name="fwsim"; version="0.3.4"; sha256="0fy87c1x5hihfcppv1pvk3b0pwl6ygqpka40x55gbpkgssdigb1l"; depends=[Rcpp]; };
   fxTWAPLS = derive2 { name="fxTWAPLS"; version="0.0.7"; sha256="0pfp64qi0mnxsf0pmgi5pafalzp997q6wx9fhkk04llzcj9ppdl8"; depends=[doFuture foreach future geosphere ggplot2 JOPS MASS progressr]; };
   fxregime = derive2 { name="fxregime"; version="1.0-4"; sha256="0ml1q0xp90jfng6a60pfkp6j7wajk6pz4p4wm08rfqikgsdvp0m4"; depends=[car sandwich strucchange zoo]; };
@@ -9486,7 +9557,6 @@ in with self; {
   gTests = derive2 { name="gTests"; version="0.2"; sha256="1h1sd8mrzcniq7rx7frdlxwpnsn8lifng1x99fqq703hs3znl1yq"; depends=[ade4]; };
   gWQS = derive2 { name="gWQS"; version="3.0.4"; sha256="1yhbcmznii3n2sbw0z2rw1sdn0zlk5v2z7ww3nl7rn005g4q04hi"; depends=[broom cowplot dplyr future future_apply ggplot2 ggrepel kableExtra knitr MASS Matrix nnet plotROC pscl reshape2 rlist]; };
   gWidgets2 = derive2 { name="gWidgets2"; version="1.0-8"; sha256="0p6lav6lrwgsw29sl8vshzgi8j2smcavx047qq31s9bsn2dcw58n"; depends=[digest]; };
-  gWidgets2RGtk2 = derive2 { name="gWidgets2RGtk2"; version="1.0-7"; sha256="14c933j0wj3lb5da75zxg3w3mfqh0nqk8rczbi4dnqd8sna6jks9"; depends=[gWidgets2 memoise RGtk2]; };
   gWidgets2tcltk = derive2 { name="gWidgets2tcltk"; version="1.0-6"; sha256="0arh0yxx63m4df1ccrv0q3vkjncwv3ink8vkalp6ashi2932yfma"; depends=[digest gWidgets2 memoise]; };
   gadget2 = derive2 { name="gadget2"; version="2.3.7"; sha256="1p7jpwy65gdl6kli1h2m9yi5p5ah1vm23xs03sm9l42fcbn7ffdw"; depends=[]; };
   gafit = derive2 { name="gafit"; version="0.5.1"; sha256="160z3cv22prf7118447dla9g1gimwkfad8zdil3fg8n4l22rk51a"; depends=[]; };
@@ -9514,9 +9584,10 @@ in with self; {
   gamlss_add = derive2 { name="gamlss.add"; version="5.1-6"; sha256="0g80bn0nszs2nmka6dypyvqnsgxp7mzhf5nd82n5x4jm3ca3dbdj"; depends=[gamlss gamlss_dist mgcv nnet rpart]; };
   gamlss_cens = derive2 { name="gamlss.cens"; version="5.0-1"; sha256="1s83dgifidvc6cbrqirwlvwfzg08mlhmxxiqkbmnsy09i5j9fzd3"; depends=[gamlss gamlss_dist survival]; };
   gamlss_countKinf = derive2 { name="gamlss.countKinf"; version="3.5.1"; sha256="1xalp909gxxhyhh4chlr1ssyfhydhw1w3szzbynajji98576zaqv"; depends=[gamlss gamlss_dist]; };
-  gamlss_data = derive2 { name="gamlss.data"; version="6.0-1"; sha256="1cjb2n5i5mnhmb5qbqycdbfg65j7nxb9s74yihqs9kpa39byrzcq"; depends=[]; };
+  gamlss_data = derive2 { name="gamlss.data"; version="6.0-2"; sha256="07mpdl4h9rwmnpl9jmsn6ig8ji11an6pyjfsvg62h2alapwbdcyv"; depends=[]; };
   gamlss_demo = derive2 { name="gamlss.demo"; version="4.3-3"; sha256="01p6abppwbnh2a2ks1g08z4iwq2fxf125y9s4qzssybsn76a3gf3"; depends=[gamlss_dist gamlss_tr rpanel]; };
-  gamlss_dist = derive2 { name="gamlss.dist"; version="5.3-2"; sha256="1lyf2rvkplywgyhcni93k52z3b89vv86yrgl38dx3ln3436r5ahc"; depends=[MASS]; };
+  gamlss_dist = derive2 { name="gamlss.dist"; version="6.0-1"; sha256="0m41n7zf7m0mh1w9ql70wqnzsf2f013ql699im7zmp6fdggb8qxm"; depends=[MASS]; };
+  gamlss_foreach = derive2 { name="gamlss.foreach"; version="1.1-3"; sha256="0q9r92q21miisarbgvjdlqy6mp4b76ns49fw09zx8xypg74m2kl9"; depends=[doParallel foreach gamlss gamlss_data gamlss_dist glmnet]; };
   gamlss_inf = derive2 { name="gamlss.inf"; version="1.0-1"; sha256="0m091zxjm5wvhm6mzbpzkr275n3qnlb3v4099k0a1jymahk4w7vr"; depends=[gamlss gamlss_dist]; };
   gamlss_lasso = derive2 { name="gamlss.lasso"; version="1.0-1"; sha256="03c8k6hl23ag98dihznfz1h0qc3pwxbnpv58pvmx3xbb3lipfjfb"; depends=[gamlss glmnet lars Matrix]; };
   gamlss_mx = derive2 { name="gamlss.mx"; version="6.0-0"; sha256="0b06nb6nq36ay0p5z57j5d4hrly5917wcsal7986mp1270iwnpip"; depends=[gamlss gamlss_dist nnet]; };
@@ -9551,7 +9622,7 @@ in with self; {
   gaston = derive2 { name="gaston"; version="1.5.7"; sha256="14z94dpln4dvgrv2w7w9ik7h6rpvbf02qhq1hqzx8c2cndzxr21i"; depends=[Rcpp RcppEigen RcppParallel]; };
   gateR = derive2 { name="gateR"; version="0.1.9"; sha256="18q3bqjjzvrp20mdksps0ddjdz4i8crh26iirradiss4xphk0gm3"; depends=[fields lifecycle raster rlang sparr SpatialPack spatstat spatstat_core spatstat_geom spatstat_linnet tibble]; };
   gatepoints = derive2 { name="gatepoints"; version="0.1.4"; sha256="0gwyrkxn4xd79cl60xa312k6nz17mdjdiym65dq7s2384fa80wbm"; depends=[]; };
-  gauseR = derive2 { name="gauseR"; version="1.0"; sha256="125jjd7s9wkx93isgrr3d6bkdmdf1x7000pbj9y634wd1jx8akgd"; depends=[deSolve]; };
+  gauseR = derive2 { name="gauseR"; version="1.1"; sha256="0jlbaylglyza6hlf62g3z0n349zlzlhx6g4jwdzg8b2sh4c3c9yn"; depends=[deSolve]; };
   gaussDiff = derive2 { name="gaussDiff"; version="1.1"; sha256="0fqjdxp2ibbami75ba16d02dz4rz5sk8mni45di9anydx44g9d45"; depends=[]; };
   gausscov = derive2 { name="gausscov"; version="0.1.1"; sha256="0d6b8kxh4pdkr0d6znnlkrqhnlmwr45malajjvvq9nrlhlpwz3vp"; depends=[]; };
   gaussfacts = derive2 { name="gaussfacts"; version="0.0.2"; sha256="095x7k7m7sy1gqkbm6wiqn26252dclz62sbnkv6cjvmbdxajl7m9"; depends=[]; };
@@ -9566,6 +9637,7 @@ in with self; {
   gbm = derive2 { name="gbm"; version="2.1.8"; sha256="1h9f4ww9yc3nsvghgr2q7jjrlz29ibabxjbax1sk5wmqh2wy6pbx"; depends=[lattice survival]; };
   gbm_auto = derive2 { name="gbm.auto"; version="1.5.0"; sha256="03fn5kr7pl1wzmmw6k86v2yv0a3l6pwyggvvdxsqnamd29jm5h54"; depends=[beepr dismo gbm mapplots maptools raster rgdal rgeos sf shapefiles]; };
   gbm2sas = derive2 { name="gbm2sas"; version="2.1"; sha256="0ssjlv849vssmncn01ccpp2myqib5f3g88g0d4rqma2z0ivdpk23"; depends=[gbm]; };
+  gbmt = derive2 { name="gbmt"; version="0.1.2"; sha256="1jk04wjykxb89b9m7ppyl6hp4z00f4vbmsrhisvzz184bwghigdf"; depends=[Matrix]; };
   gbp = derive2 { name="gbp"; version="0.1.0.4"; sha256="0awg724gsfwlb0fjcvw0450qdsk4m8x8is16pj5c8fx6nc8rn8bv"; depends=[data_table magrittr Rcpp RcppArmadillo rgl]; };
   gbs2ploidy = derive2 { name="gbs2ploidy"; version="1.0"; sha256="0gdjfqs9ccyaw7vi22wbyc742n1badr5ypr08g6rvi8ka5lmx836"; depends=[MASS rjags]; };
   gbts = derive2 { name="gbts"; version="1.2.0"; sha256="1v8x4dnja8va28rjznyqa6js9wazndijasb95lfj2qwhxhgf5h65"; depends=[doParallel doRNG earth foreach gbm]; };
@@ -9585,17 +9657,17 @@ in with self; {
   gdalUtils = derive2 { name="gdalUtils"; version="2.0.3.2"; sha256="0krapdy50nd5dvcdflz39dzxpig3zklng3hgxavqg2nvwazalvsc"; depends=[foreach R_utils raster rgdal sp]; };
   gdalcubes = derive2 { name="gdalcubes"; version="0.5.0"; sha256="074vidv9ccklbvfhfyzwr0pfqdvh9bdbh9xwlrd6bxbd0q4sq8gk"; depends=[jsonlite ncdf4 Rcpp RcppProgress]; };
   gdata = derive2 { name="gdata"; version="2.18.0"; sha256="0zwdj7lscgxr8r62ii8hbdh4mb7sa9w4f5nv32zzrxdvymcpya2b"; depends=[gtools]; };
-  gde = derive2 { name="gde"; version="0.1.4"; sha256="1ypax1gwi8f9fkfmbm5qb845b70ch44m19rw8spi34fn3yrbb17l"; depends=[data_table DBI dplyr DT ggplot2 httr jsonlite leaflet odbc progress R_utils readr rgbif shiny shinycssloaders shinyWidgets stringr XML]; };
+  gde = derive2 { name="gde"; version="0.2.0"; sha256="1xrncdmidzz9dv51bnbcrdh92im0lr97xi4rgb30p5sfxc4axml9"; depends=[data_table dplyr DT ggplot2 httr jsonlite leaflet progress R_utils readr RSQLite shiny shinycssloaders shinyWidgets stringr XML]; };
   gdiff = derive2 { name="gdiff"; version="0.2-2"; sha256="0hg9mf3qyg19wwpiv3lz2z1000jw73s2pwb8y8hjgpv69wwsskfi"; depends=[magick pdftools]; };
   gdistance = derive2 { name="gdistance"; version="1.3-6"; sha256="093a29yb544gxldwxgkyfc9bhmz3by0pknnj1c666i6gz2rbxjic"; depends=[igraph Matrix raster sp]; };
-  gdm = derive2 { name="gdm"; version="1.4.2.2"; sha256="0s81d8d7i95nvpfnppnwgg8raj9388a725j8hxjzgzqvypdlhx8p"; depends=[doParallel foreach raster Rcpp reshape2 vegan]; };
+  gdm = derive2 { name="gdm"; version="1.5.0-1"; sha256="11pf56n8kdmqab88s2xhaz05jj19b5m758f6rfdm7qc01y97s3kb"; depends=[doParallel foreach raster Rcpp reshape2 vegan]; };
   gdns = derive2 { name="gdns"; version="0.5.0"; sha256="1bicimkxsyfg9yqaikapwlv8x9xdvsb00fqnfka07i6b63109sxh"; depends=[httr jsonlite magrittr stringi tinytest]; };
   gdpc = derive2 { name="gdpc"; version="1.1.2"; sha256="0g1mnxm78n928g7qjf0w7jzfm27z6mvz5p1rm25mxv7wsif5m6s6"; depends=[doParallel foreach Rcpp RcppArmadillo xts zoo]; };
   gds = derive2 { name="gds"; version="0.1.1"; sha256="0gwq0k80rnbg4ibz6dz8sk6hqaklrdbv4vzv8zyk74am3aqipn20"; depends=[]; };
   gdtools = derive2 { name="gdtools"; version="0.2.3"; sha256="1p3ip0qwpg8f63jfx0b8vbac6l20ddid8xvxzkfi6i858pybnawp"; depends=[Rcpp systemfonts]; };
   gdxdt = derive2 { name="gdxdt"; version="0.1.0"; sha256="1yrjixq4srmaiy5iaprix4096yhf3ldyklgjag4kxd3l5acwap4h"; depends=[data_table]; };
   gear = derive2 { name="gear"; version="0.3.4"; sha256="0ibn2kr0rjj546cbcqhr6x69s25xh7si5fri59055j42g62mdnxy"; depends=[autoimage optimx Rcpp]; };
-  geckor = derive2 { name="geckor"; version="0.1.1"; sha256="0rhhj6z8az8d3r94xvnjlvz9frjkaah2047h9gcycfplx3ripf0y"; depends=[dplyr httr jsonlite knitr lifecycle magrittr rlang tibble tidyr tidyselect]; };
+  geckor = derive2 { name="geckor"; version="0.2.0"; sha256="06infn0icgsa10szsc8bqams57swx6a4ch3a1n2a68rp8q2f6lw2"; depends=[curl dplyr httr jsonlite knitr lifecycle magrittr rlang tibble tidyr tidyselect]; };
   gee = derive2 { name="gee"; version="4.13-20"; sha256="167pzgnmj4cjc41ykps1mfwi6s7y32zxyycn5z17vn4v0pp4q0ak"; depends=[]; };
   geeCRT = derive2 { name="geeCRT"; version="0.1.1"; sha256="1dwll5k99mj1a6nakxzihk87dvnqfsymly7kn1b8wkrfpljhrj4v"; depends=[MASS mvtnorm rootSolve]; };
   geeM = derive2 { name="geeM"; version="0.10.1"; sha256="1r9zyjv7r7r7avdqi54dvczf971frz8pgrs1a04kan5mh4ls6xpy"; depends=[Matrix]; };
@@ -9619,21 +9691,21 @@ in with self; {
   genTS = derive2 { name="genTS"; version="0.1.3"; sha256="1ky8h8yzqfkb91ny9z08gr7irzvjqr1b42k89ahcrmk458hjwgqr"; depends=[shiny]; };
   genalg = derive2 { name="genalg"; version="0.2.0"; sha256="1wzfamq8k5yhwbdx0wy1w5bks93brj0p890xxc4yqrja4w38ja3s"; depends=[]; };
   genasis = derive2 { name="genasis"; version="1.0"; sha256="1r0733cc2hss3f8dp19s1ji55yp72mds7p3x1zvvpiks2r7w712p"; depends=[fitdistrplus Kendall]; };
+  gencor = derive2 { name="gencor"; version="1.0.0"; sha256="1an1q4bbd5xqyy66wjzalx74iff0iia2sf2f1q9k17vh9zclgz41"; depends=[]; };
   gencve = derive2 { name="gencve"; version="0.3"; sha256="00wbmaffm7mbfv3zl6mb24w1df1a8p24girwdh3a522lw3045iwf"; depends=[C50 class e1071 glmnet lars MASS nnet plus randomForest rpart]; };
   gendata = derive2 { name="gendata"; version="1.1"; sha256="1r5bhmfblhk6d31v0byhp4a0pmpri6vk697zmmx9b0hvhda7mllf"; depends=[]; };
   gender = derive2 { name="gender"; version="0.6.0"; sha256="18xiaif6iiwjvnjk611sfz7qi5r7mbi73dcrgrkzkjly8zygp42k"; depends=[dplyr httr jsonlite remotes]; };
   genderBR = derive2 { name="genderBR"; version="1.1.2"; sha256="19n3d6ps0wswq1bxgfqifq26svqf8q696im14wfglrl731mr0qbm"; depends=[dplyr httr jsonlite magrittr purrr tibble]; };
   gendist = derive2 { name="gendist"; version="2.0"; sha256="0rs0sn1sb6j3pk2xncix04a093awlm2nw70g0rjhr7dlzmigspgb"; depends=[]; };
-  geneExpressionFromGEO = derive2 { name="geneExpressionFromGEO"; version="0.6"; sha256="0hcq92lwvajh96afg65npldfahdcmslkvxlzam8svfbhkp05mqyw"; depends=[annotate Biobase GEOquery xml2]; };
+  geneExpressionFromGEO = derive2 { name="geneExpressionFromGEO"; version="0.8"; sha256="018f85kj6n5r74r4x9s5444s1c4xan2blpzhwz7yvchis0r4p9y4"; depends=[annotate Biobase BiocManager GEOquery markdown R_utils xml2]; };
   geneHummus = derive2 { name="geneHummus"; version="1.0.11"; sha256="1m6yyjsvmn3w87cw4da8js5vi74k5y739gxdx1yscx1n50bc3m34"; depends=[curl dplyr httr rentrez stringr]; };
   geneListPie = derive2 { name="geneListPie"; version="1.0"; sha256="0z2gawfzhm05dafj4zlj6ifmf0dy7p1hrpa59lzxrnrc0wr6laji"; depends=[]; };
   geneNetBP = derive2 { name="geneNetBP"; version="2.0.1"; sha256="0sp1chyln5k2zsq7cdhvrqxwr2nhrll1pdl1l5g6fd4gjl2m1nwk"; depends=[bnlearn ggm gRain graph igraph Rgraphviz scales]; };
   geneSignatureFinder = derive2 { name="geneSignatureFinder"; version="2014.02.17"; sha256="1s9jj87wnzzgm9hnws09yhrxdlb6jw56i3ddwznvmh8vpzrspv4h"; depends=[class cluster survival]; };
-  genekitr = derive2 { name="genekitr"; version="0.2.1"; sha256="1xns8sq535w47l0pxja35pxgp4a5x0vnnyprmd363fi5ls9rwbi5"; depends=[clusterProfiler dplyr ggplot2 stringi stringr tibble tidyr VennDiagram]; };
   genemodel = derive2 { name="genemodel"; version="1.1.0"; sha256="1x6n6k9ifv2swhyrghvm6fsz5vh85cdik8225175i9msvmkh928n"; depends=[stringr]; };
   genepi = derive2 { name="genepi"; version="1.0.1"; sha256="1whhdlq9p8gmygv7464hvfz6dhm65gqq1dqls6hgpmw822zxgbd5"; depends=[]; };
   genepop = derive2 { name="genepop"; version="1.1.7"; sha256="0b36nspq3kkad52k0viw1pdsf7h9h5ivi0ix7zg8i0z7vkhnm0cy"; depends=[Rcpp RcppProgress stringr]; };
-  generalCorr = derive2 { name="generalCorr"; version="1.1.9"; sha256="1x0nh1z9vf68vyvdrv100rrpyabb2iwxn7p369zx950i47qy9a45"; depends=[lattice meboot np psych xtable]; };
+  generalCorr = derive2 { name="generalCorr"; version="1.2.0"; sha256="1zz6lzhryi5vryvbnpzz050y47lxxcqcv8wgrwk6nfk1i3xajkkz"; depends=[lattice meboot np psych xtable]; };
   generalhoslem = derive2 { name="generalhoslem"; version="1.3.4"; sha256="0fmfhmdb16gf3v9h50vif4f3f6bm03qq7wplnmzyxa80jb60fcc0"; depends=[MASS reshape]; };
   generator = derive2 { name="generator"; version="0.1.0"; sha256="0xjvnmnpdms8rrxxcz6pd8w4rnbv3ghzqv4m63zxia2l98x7z4rf"; depends=[]; };
   generics = derive2 { name="generics"; version="0.1.1"; sha256="04hrn6g5m5vi3znrcha3jw2q16lnmm3ygx2jl5aqiahg3azqwix2"; depends=[]; };
@@ -9650,7 +9722,7 @@ in with self; {
   genlogis = derive2 { name="genlogis"; version="1.0.0"; sha256="01av5invhviii7adqihh10ib47rjzwfsqdgw3lfg1c72kzrqywgr"; depends=[distr doParallel foreach ggplot2 manipulate]; };
   geno2proteo = derive2 { name="geno2proteo"; version="0.0.3"; sha256="1q054ai42f5gmrj791abj02f663zs7ymdh3pfs3b2lq6i4w9s2fb"; depends=[BiocGenerics GenomicRanges IRanges R_utils RUnit S4Vectors]; };
   genoPlotR = derive2 { name="genoPlotR"; version="0.8.11"; sha256="01qn81nsdk3s150gqwisb7xnm4hq5sfzd2zrzpn9kj0rigzgf9zi"; depends=[ade4]; };
-  genodds = derive2 { name="genodds"; version="1.0.0"; sha256="00sh561qcabcz5igcfvkjjila0qi2i5imj8cn0msa1gvqf27ps4d"; depends=[Rcpp]; };
+  genodds = derive2 { name="genodds"; version="1.1.0"; sha256="1qsl134grmpk3yvgg106kawrx7g423jqlqgg9r2r46ry31i3hvhv"; depends=[Rcpp]; };
   genogeographer = derive2 { name="genogeographer"; version="0.1.19"; sha256="0q56ysv5333i27iv1gmd9ilbgn3rw8sb9yq7z76gmn1fak5aqci8"; depends=[dplyr DT forcats ggplot2 knitr leaflet magrittr maps purrr readr rio rlang rmarkdown shiny shinycssloaders shinyjs shinyWidgets tibble tidyr]; };
   genomeplot = derive2 { name="genomeplot"; version="1.0"; sha256="15v01ngxq7kxav1bhw1mvqradrmvwsad5xh9l5skivb5smh9795w"; depends=[ggplot2]; };
   genomic_autocorr = derive2 { name="genomic.autocorr"; version="1.0-1"; sha256="1lidrjz1flxw4jvhqdi8y813m7ss4kkvm7bxsdpz60dxxw3204gm"; depends=[data_table magrittr reshape]; };
@@ -9704,12 +9776,12 @@ in with self; {
   geometry = derive2 { name="geometry"; version="0.4.5"; sha256="1n10l8ax3783v3lgaacb15qsn8b3f0wpmhg3k39j31s6ciyd3vcg"; depends=[linprog lpSolve magic Rcpp RcppProgress]; };
   geomorph = derive2 { name="geomorph"; version="4.0.1"; sha256="05qiqyrc0vn1hi8g4hfs6hcysar3yqkw9r6hr3fg5f6qdnlznm4x"; depends=[ape ggplot2 jpeg Matrix rgl RRPP]; };
   geonames = derive2 { name="geonames"; version="0.999"; sha256="0yz1b7y3vwa4izrhpry4n3iwzb7y67s5p3kgnd7d29cl5pcbpmqx"; depends=[rjson]; };
-  geonapi = derive2 { name="geonapi"; version="0.4"; sha256="045lrj5qmd3m2ja8i9446d7vz8lmdz8wvm4f3a72cm18xaan1m2p"; depends=[geometa httr keyring openssl R6 XML]; };
+  geonapi = derive2 { name="geonapi"; version="0.5"; sha256="10pj56bwwd8bfwwfyvijdk4xr0pgbz4sdkis3d6zr56lay91x7fv"; depends=[geometa httr keyring openssl R6 XML]; };
   geonet = derive2 { name="geonet"; version="0.6.0"; sha256="0zav0r4q8i8mxwnr3a7j2ldprfb979pmcx76ssks4p6cfqp0syj4"; depends=[dplyr ggplot2 igraph Matrix mgcv spatstat_core spatstat_geom spatstat_linnet]; };
   geonetwork = derive2 { name="geonetwork"; version="0.4.1"; sha256="04vf39hxl1a2kbgqc054xg9w6hbd3fwag6sy0j8a9agrd5wgks7h"; depends=[geosphere igraph rgdal sf sp]; };
   geophys = derive2 { name="geophys"; version="1.4-1"; sha256="1s64sbr0chv0z2vaw059khfkv8iga1kr6428kkglgafq5x2d6h3q"; depends=[cluster GEOmap RFOC RPMG RSEIS]; };
   georob = derive2 { name="georob"; version="0.3-14"; sha256="1an5mxq49kv038dplm9h6ngvsz71lkvjm34i7jjsdpaz3cyflp7v"; depends=[abind constrainedKriging fields lmtest nleqslv nlme quantreg RandomFields robustbase snowfall sp]; };
-  geos = derive2 { name="geos"; version="0.1.2"; sha256="04ha875a416fdw2ki0iilal2blnblf0hdda5n5msa5gi70ycd3db"; depends=[libgeos wk]; };
+  geos = derive2 { name="geos"; version="0.1.3"; sha256="1adm5wvnxvj6hl1wkgkfl862nxddv2x11x7nnp8xwi0dbjmz0mnf"; depends=[libgeos wk]; };
   geosapi = derive2 { name="geosapi"; version="0.5-1"; sha256="0ny1nzhfwj9l3gyzls3ksikmjzx06a3420nb3l6b2711v9zymv45"; depends=[httr keyring openssl R6 XML]; };
   geoscale = derive2 { name="geoscale"; version="2.0"; sha256="0gisds0in32xhw54fxfyxvwxgrfjs871wmqf6l915nr896rlx0bm"; depends=[]; };
   geosed = derive2 { name="geosed"; version="0.1.1"; sha256="07j4q6sgrf83h2gi2j5qap5rifz8gimdacd3b7ld1p3b6ai6kv3r"; depends=[]; };
@@ -9730,12 +9802,12 @@ in with self; {
   gepaf = derive2 { name="gepaf"; version="0.1.1"; sha256="0n36w40jrq3qkgmhz9wrnhp6fczw7bm96g950sa4nq33872xhfgm"; depends=[bitops]; };
   gerbil = derive2 { name="gerbil"; version="0.1.5"; sha256="1rvf7z7zj04p2faj41fxxjs20bd3ghr6fbzkkapcx48fr4j9skj2"; depends=[DescTools lattice MASS mvtnorm openxlsx pbapply truncnorm]; };
   germinationmetrics = derive2 { name="germinationmetrics"; version="0.1.5"; sha256="1gazx0k4nhb9xsyqi0zxdzg9a0kfvf7g1gka7lgaj2f3bpyk0gd3"; depends=[broom data_table ggplot2 ggrepel mathjaxr minpack_lm plyr Rdpack]; };
-  gert = derive2 { name="gert"; version="1.4.1"; sha256="1y3318whcifdng87wyngfjq18601zrlj4d8sx40v2c2m5kqmhfv2"; depends=[askpass credentials openssl rstudioapi sys zip]; };
+  gert = derive2 { name="gert"; version="1.4.3"; sha256="06g3gy4260y4f43zgahamckisjs8dvl06rb0kyinrwlm675dqppm"; depends=[askpass credentials openssl rstudioapi sys zip]; };
   gesca = derive2 { name="gesca"; version="1.0.4"; sha256="1ndn8wgp22pr017x6v7jw8jy4gd06x8110qa860hw8i6pn47wfwv"; depends=[]; };
   gesisdata = derive2 { name="gesisdata"; version="0.1.0"; sha256="02xjpw41gm3778lj01kcwjx0lr1i95a0wlrfvs0r5xlajq13jr67"; depends=[dplyr magrittr rio RSelenium stringr]; };
   gesso = derive2 { name="gesso"; version="1.0.1"; sha256="0s9vlh47v4dz8dwq5v6j7vbcs01g701ci1qkb0b26m7zksb4ra58"; depends=[BH bigmemory dplyr Matrix Rcpp RcppEigen RcppThread]; };
   gestalt = derive2 { name="gestalt"; version="0.1.8"; sha256="1cb04rd3yvkd47byynrn0pq6brlsi2z2iavh4gfrwmqyvks34k51"; depends=[rlang]; };
-  gestate = derive2 { name="gestate"; version="1.4.0"; sha256="1ybwi1733w8z97sdj38l66mb8ynhqhl68ijns6rvwqxphac6v5x8"; depends=[doParallel foreach shiny shinythemes survival]; };
+  gestate = derive2 { name="gestate"; version="1.5.0"; sha256="028ij0yyqrwaf5c1a7qkgl0r0m9n98vn182brx923mfxr9gji6pn"; depends=[doParallel foreach shiny shinythemes survival]; };
   gesttools = derive2 { name="gesttools"; version="1.2.0"; sha256="0w7kl3jm1n5pqbr10r81zzjk2lw5zvs22igsx807f6ldmq8knn7d"; depends=[DataCombine geeM magrittr nnet rsample tibble tidyr tidyselect]; };
   getDTeval = derive2 { name="getDTeval"; version="0.0.2"; sha256="16y24jhy9k1adlmf6yqzc8kla2vw7r0c6zd52jpfkiljxwkm4634"; depends=[data_table formulaic microbenchmark]; };
   getLattes = derive2 { name="getLattes"; version="0.2.0"; sha256="1rrd9x9jmnsy0770c86lqws4a6b2zxf3384h1dcvzrmlk20hhqxw"; depends=[dplyr janitor pipeR purrr rlang tibble xml2]; };
@@ -9744,6 +9816,7 @@ in with self; {
   getProxy = derive2 { name="getProxy"; version="1.12"; sha256="0qcxihgwy3h2b98z2hwjszwqbz117d89xjys7fy0f8m9hv7rf6ph"; depends=[bitops data_table dplyr httr jsonlite RCurl]; };
   getable = derive2 { name="getable"; version="1.0.3"; sha256="0v45nqpx55vbj68gj4wxr0bdlrl897ayac78rxjd2lkkjx49hlyh"; depends=[knitr]; };
   gethr = derive2 { name="gethr"; version="0.1.0"; sha256="0kpi9b9yg2nh332zkml24pmj6vgjfh8mrfjjg5a636s2rg98g5g7"; depends=[httr jsonlite]; };
+  getip = derive2 { name="getip"; version="0.1-0"; sha256="0l7692ddgidy3jyg7mw5nnh0agkyj7pf8v8clcinzs2y3q5qic6f"; depends=[]; };
   getlandsat = derive2 { name="getlandsat"; version="0.2.0"; sha256="15450v93lc4i2qda0zlb5vplwbarkmf3f6sb4rlrdpv9vlj85hff"; depends=[crul data_table rappdirs readr tibble xml2]; };
   getmstatistic = derive2 { name="getmstatistic"; version="0.2.2"; sha256="100m5cbwx9anlh1hzjv7d1h1viqsxb0bx0ksc1dsjx3gqrf77q1n"; depends=[ggplot2 gridExtra gtable metafor psych stargazer]; };
   getopt = derive2 { name="getopt"; version="1.20.3"; sha256="0zzmzgwl9a4y3s34600vmih22d6y32294f9bvxrnmffnvkgmy7sk"; depends=[]; };
@@ -9817,7 +9890,8 @@ in with self; {
   gggenes = derive2 { name="gggenes"; version="0.4.1"; sha256="1s4knz2g06w46jbi037l9ii0kkxvl7gnljp54s4z36hnswsrv8jk"; depends=[ggfittext ggplot2 rlang]; };
   ggghost = derive2 { name="ggghost"; version="0.2.1"; sha256="0kvsjadxxdf6yvzk4a6yqkg02q1ysslvf3m0a369bdim396z4hnv"; depends=[animation ggplot2]; };
   gggibbous = derive2 { name="gggibbous"; version="0.1.1"; sha256="1sy9d9hl04b13yz4563bzsdznjdh3xmikdrsqg8kdv8wn481lqbd"; depends=[ggplot2 scales]; };
-  ggh4x = derive2 { name="ggh4x"; version="0.2.0"; sha256="0gv9ckkdqbcjknzsv8h3955wnikawdfypr279v74hvwyq86af29r"; depends=[ggplot2 gtable rlang scales vctrs]; };
+  gggrid = derive2 { name="gggrid"; version="0.1-1"; sha256="0s377jh3lma9la6qml6hc1w3bxlzdmy8fz749s27n3ygpy2krg21"; depends=[ggplot2]; };
+  ggh4x = derive2 { name="ggh4x"; version="0.2.1"; sha256="1r49yfm5fqv5s7jb92ad6rf8hd9plcry6f500czjhnhhrp16cqfp"; depends=[ggplot2 gtable rlang scales vctrs]; };
   gghalfnorm = derive2 { name="gghalfnorm"; version="1.1.2"; sha256="1sy0m6pqmnjbqv60rljyblhis0dxwkhw751jhlad5arcgrcwf4k8"; depends=[ggplot2 ggrepel]; };
   gghalves = derive2 { name="gghalves"; version="0.1.1"; sha256="1w4j8grir1i8ar7fdsk4f6czkl5j2wwn67y746mis2diwnzhcil3"; depends=[ggplot2 gtable]; };
   ggheatmap = derive2 { name="ggheatmap"; version="2.1"; sha256="1dks2fmkaaws5v7mgcw6rbvb5nfr7c9mmg0pqwywwx7rxj3gm05q"; depends=[aplot factoextra ggplot2 ggpubr patchwork tibble tidyr]; };
@@ -9866,21 +9940,22 @@ in with self; {
   ggpmisc = derive2 { name="ggpmisc"; version="0.4.4"; sha256="01dnr2a33zmgi0gjsxlcz4hp68b18xsi8z1lkhgcla5im59qf9xi"; depends=[dplyr generics ggplot2 ggpp lmodel2 lubridate MASS plyr polynom quantreg rlang scales splus2R tibble]; };
   ggpointdensity = derive2 { name="ggpointdensity"; version="0.1.0"; sha256="0c9a14j3b0hvamqylhzldw2hjdxmfbllwahjkf3gg2rw337ld9iy"; depends=[ggplot2]; };
   ggpol = derive2 { name="ggpol"; version="0.0.7"; sha256="11xr26kwmkjjb51wm44ydv0vcinc6k6faqwx4s2faj4iwidlys1m"; depends=[dplyr ggplot2 glue gtable plyr rlang tibble]; };
+  ggpolar = derive2 { name="ggpolar"; version="0.2.0"; sha256="0i795635yziz1qssrvnvpbar5fdp4vxfmzaaxdlw6cccf3qfnnvq"; depends=[ggplot2]; };
   ggpolypath = derive2 { name="ggpolypath"; version="0.1.0"; sha256="0g9zfal3vqcx16fi4abxm6l5sam475lk1f6bdik487wc2v0dkq83"; depends=[ggplot2]; };
   ggpp = derive2 { name="ggpp"; version="0.4.2"; sha256="0m2wq9kqlxqxlzyx9fd0c4iw6qb7kpjrq7fqqa2kvwyj79vx6ahj"; depends=[dplyr ggplot2 glue gridExtra lubridate magrittr MASS polynom rlang scales stringr tibble xts zoo]; };
   ggprism = derive2 { name="ggprism"; version="1.0.3"; sha256="09dh0r8r5s61i5dbk6rswajc2vm7k8wvlqyvzq8wr160676lycjp"; depends=[digest ggplot2 glue gtable rlang scales tibble]; };
   ggpubr = derive2 { name="ggpubr"; version="0.4.0"; sha256="0x86lmghr25k8w90yrp360dn42dhp5cjvjpdiv2s2gxfn701xcmb"; depends=[cowplot dplyr ggplot2 ggrepel ggsci ggsignif glue gridExtra magrittr polynom purrr rlang rstatix scales tibble tidyr]; };
   ggpval = derive2 { name="ggpval"; version="0.2.4"; sha256="0zi3k79iy8pwnrgi9r9l4r9ghv1db9cxsagif8wsrlak4nr8akza"; depends=[data_table ggplot2]; };
   ggquickeda = derive2 { name="ggquickeda"; version="0.2.1"; sha256="1yql17wla60lg713cd4kr4906i4ngkvyg0s962zpri76g2z3acvv"; depends=[colourpicker dplyr DT Formula GGally ggbeeswarm ggplot2 ggpmisc ggpubr ggrepel ggstance gridExtra Hmisc markdown plotly quantreg rlang RPostgres scales shiny shinyFiles shinyjqui shinyjs stringr survival survminer table1 tidyr zoo]; };
-  ggquiver = derive2 { name="ggquiver"; version="0.3.0"; sha256="1by2drrikssn0dckxgcdscvyqva7mfcpim6y0hrrqwjv6ld8a6q3"; depends=[ggplot2]; };
+  ggquiver = derive2 { name="ggquiver"; version="0.3.1"; sha256="1wnp5jqy6myfax9jgpxm6crqc2aqkrv0l44ahw9ybiw9b8kwk9x4"; depends=[ggplot2]; };
   ggraph = derive2 { name="ggraph"; version="2.0.5"; sha256="0m4n8iw2b9jk8hcy5blg5w59zsqcpsbv27wbw598dvljpafx8sp3"; depends=[digest dplyr ggforce ggplot2 ggrepel graphlayouts gtable igraph MASS Rcpp rlang scales tidygraph viridis withr]; };
   ggraptR = derive2 { name="ggraptR"; version="1.3"; sha256="1i6jp0n1sz5b4sv3d4h5624zhlknih2qp6p2m2ri6s3gsh1pl9zz"; depends=[dplyr ggplot2 pacman purrr shiny]; };
   ggrasp = derive2 { name="ggrasp"; version="1.0"; sha256="0lini89mcxl30kx38vny9896hdf4afrz5dgivbbikkb2yyfh2cq1"; depends=[ape bgmm colorspace ggplot2 mixtools]; };
-  ggrastr = derive2 { name="ggrastr"; version="0.2.3"; sha256="0cwhgxxp23alsmccppx5bn5ri8wp5n5012d1m51rg7ss6q1194wc"; depends=[Cairo ggbeeswarm ggplot2 png ragg]; };
+  ggrastr = derive2 { name="ggrastr"; version="1.0.0"; sha256="1glv6lsfxlrwbk7dxnpj9x2q0hhzkivfzasifqw5ry92gs7ld0g6"; depends=[Cairo ggbeeswarm ggplot2 png ragg]; };
   ggrepel = derive2 { name="ggrepel"; version="0.9.1"; sha256="1z5xyr5f4aryy0v1gzz9m8m4s5fzzwbrf0fxll1nbflr8xnr3yr9"; depends=[ggplot2 Rcpp rlang scales]; };
   ggridges = derive2 { name="ggridges"; version="0.5.3"; sha256="0bmlqy1p6rac90af97ffpdi6php7dblx66l2hcm8ljidgyqzmspm"; depends=[ggplot2 plyr scales withr]; };
   ggrisk = derive2 { name="ggrisk"; version="1.3"; sha256="02df3gcviax747d33v30m97jsazj7zdpjnhypfy38cg70yxidwg9"; depends=[cutoff do egg ggplot2 nomogramFormula reshape2 rms set survival]; };
-  ggroups = derive2 { name="ggroups"; version="2.1.0"; sha256="02x62dzpmisk224hs4kgmcc0r6pd87zvjnpdw1sm7rckhi5b56q2"; depends=[]; };
+  ggroups = derive2 { name="ggroups"; version="2.1.1"; sha256="0qzz3klwvzz5040d5hhzgz7cx7s21m2pdxh8224h7knghrm7d5y6"; depends=[]; };
   ggsci = derive2 { name="ggsci"; version="2.9"; sha256="0g73x6grbka7ahjh6z23m3wrcifp5rdfdiasbl8lq4sp6rplxwaa"; depends=[ggplot2 scales]; };
   ggseas = derive2 { name="ggseas"; version="0.5.4"; sha256="1jpdijwll5l7bg7cmjnklkxffysi9ckzg50rw2a2cd00zwby11q9"; depends=[ggplot2 rlang seasonal zoo]; };
   ggseg = derive2 { name="ggseg"; version="1.6.4"; sha256="0x6vjsdkkrdnxi4a4dzcbadpqmmn0058i980s0a8456hwqlld7s5"; depends=[dplyr ggplot2 sf tidyr vctrs]; };
@@ -9901,10 +9976,11 @@ in with self; {
   ggstream = derive2 { name="ggstream"; version="0.1.0"; sha256="0d6g5916mfrg2srcqjhlpm4acp4g16vq9ks4x37yzkpr34vi5x7j"; depends=[dplyr forcats ggplot2 magrittr purrr tidyr]; };
   ggstudent = derive2 { name="ggstudent"; version="0.1.1-1"; sha256="0qs27b4lksaaaspavkycbzf8cfjxjli7xrfjby71sl0lca3fwm1g"; depends=[dplyr ggplot2]; };
   ggswissmaps = derive2 { name="ggswissmaps"; version="0.1.1"; sha256="0is48x6k2p5dgj9q4km0dv33a9pcpfhlai9vz295y3acpyrkmnn4"; depends=[ggplot2]; };
+  ggtea = derive2 { name="ggtea"; version="0.1.1"; sha256="04g8g17ziw13rxjzkvgy5yd0z15ypxk0b8fq2y1vk8acsqr2dv11"; depends=[ggplot2]; };
   ggtern = derive2 { name="ggtern"; version="3.3.5"; sha256="15hhn8msy0l8zbq8ms0zvg1iajn1c28gd77v3hp6dvwwsla8zzbd"; depends=[compositions ggplot2 gridExtra gtable hexbin latex2exp lattice MASS plyr proto scales]; };
   ggtext = derive2 { name="ggtext"; version="0.1.1"; sha256="0n19dlcys8v7myfyckr6dnq0kx79k3sbh8nwx1jsx8pgzfbi8a2b"; depends=[ggplot2 gridtext rlang scales]; };
   ggthemes = derive2 { name="ggthemes"; version="4.2.4"; sha256="0rw5f6axyz1pqn6qx9jwm38hjzn8bqs1nfjkvm96z3xnyn61cdbv"; depends=[ggplot2 purrr scales stringr tibble]; };
-  ggtikz = derive2 { name="ggtikz"; version="0.0.1"; sha256="15nq9prfn3h3cv5s6fnr1hcsdr792phwdn4fjixzw1vjm5hks41r"; depends=[dplyr ggplot2 tikzDevice]; };
+  ggtikz = derive2 { name="ggtikz"; version="0.1.0"; sha256="1bgvpdnyy2gsm0yzs5z6jbjpxnnj3mijiyq2d2q0414ky3vpcxsw"; depends=[dplyr ggplot2 tikzDevice]; };
   ggupset = derive2 { name="ggupset"; version="0.3.0"; sha256="079a1fghhbxhkx42ac0n5chmh07i60m2pkdk76frqbbmwrw7inx4"; depends=[ggplot2 gtable rlang scales tibble]; };
   ggvenn = derive2 { name="ggvenn"; version="0.1.9"; sha256="0bm52j3idchignp6nrw7c76jlbfkjf5zng258957vq019vx9qxrq"; depends=[dplyr ggplot2]; };
   ggversa = derive2 { name="ggversa"; version="0.0.1"; sha256="0xqn8iznrm8q30pxwka88wi1z7lndi6lm12rq6ngcaxf294fbz01"; depends=[]; };
@@ -9933,7 +10009,7 @@ in with self; {
   giphyr = derive2 { name="giphyr"; version="0.2.0"; sha256="0273f7lama8bhaalafs66m6ksp32vx0j6rmh1qr4484i7wkmdfqn"; depends=[dplyr httr miniUI purrr rstudioapi shiny tibble]; };
   giscoR = derive2 { name="giscoR"; version="0.3.1"; sha256="1120ixjcvzm3yk8mfradvp469abpxgna4nwk1v1fa14gkyf6kqzs"; depends=[countrycode geojsonsf rappdirs sf]; };
   gistr = derive2 { name="gistr"; version="0.9.0"; sha256="0ac9ikrdg6i8xvlma0gizvsdva46408lk7hvsgkqirhy2ljy02hp"; depends=[assertthat crul dplyr httr jsonlite knitr magrittr rmarkdown]; };
-  git2r = derive2 { name="git2r"; version="0.28.0"; sha256="1wjmbs9cmm16pm3g0rmqp7cxxyh95m5lgx4fx5bpgj6j466i8vff"; depends=[]; };
+  git2r = derive2 { name="git2r"; version="0.29.0"; sha256="13nlrhma6kavvhranb43w3003vadfkyrn2f4l3r63iqavj0s3xzq"; depends=[]; };
   git2rdata = derive2 { name="git2rdata"; version="0.3.1"; sha256="0nvx6lfp66l44n3xwkj5biirrzwvl52dssfx8jysqjl1kgfrwwh3"; depends=[assertthat git2r yaml]; };
   gitcreds = derive2 { name="gitcreds"; version="0.1.1"; sha256="1snzn7nxy0rwz0bzjsg6k04c0n811dgn8gn9cmn2v78aj57ayjmi"; depends=[]; };
   gitdown = derive2 { name="gitdown"; version="0.1.3"; sha256="0sspwbymzalf4fh180cpjv8mymh8j8v7absnc6mrix2bd89jymsd"; depends=[attempt bookdown dplyr git2r knitr magrittr purrr rmarkdown stringi tidyr]; };
@@ -9956,9 +10032,9 @@ in with self; {
   glasso = derive2 { name="glasso"; version="1.11"; sha256="02p3612rpydk195n2qr77lp1j2w8zsw1ckkk98c8angm4r5q8dsc"; depends=[]; };
   glassoFast = derive2 { name="glassoFast"; version="1.0"; sha256="1sgmh4l06q7mrmgnimphpqgix4k4jzaj2l30kpmnf92caa2v7ngw"; depends=[]; };
   glba = derive2 { name="glba"; version="0.2"; sha256="0ckcz6v6mfbv34s8sp086czhb5l58sky79k84332rrz6wj47p3md"; depends=[]; };
-  glca = derive2 { name="glca"; version="1.3.1"; sha256="1bbny1r40i2lk0b0zh3rpssmbpwhkcl4fkq5d9ghk449yw0c72mm"; depends=[MASS Rcpp]; };
+  glca = derive2 { name="glca"; version="1.3.3"; sha256="1fgbwgn2v7l7ikwl88fkzvikhzb5hgwlawly50rml5w8jcfm0nkz"; depends=[MASS Rcpp]; };
   glcm = derive2 { name="glcm"; version="1.6.5"; sha256="13my6y9jqd86cg5n74p4b8mqbdgwnanxx4qf1rrhm5jxf6sa31qm"; depends=[raster Rcpp RcppArmadillo]; };
-  gld = derive2 { name="gld"; version="2.6.2"; sha256="1wrw7i5bq7rb2ahadm57y9fmr697r7lp9ln7ajcd592b0nn60n4i"; depends=[e1071 lmom]; };
+  gld = derive2 { name="gld"; version="2.6.3"; sha256="0nln1vwzmjdsawln2v3jmyszvnn0203r47pdf8chvbr31hpvzjc2"; depends=[e1071 lmom]; };
   gldrm = derive2 { name="gldrm"; version="1.5"; sha256="1mbdxqjw6sa47kigwrjq1gn6vi36zhg9j2lck144iwa10ms0y9xp"; depends=[]; };
   glinternet = derive2 { name="glinternet"; version="1.0.12"; sha256="0aphdscj0s6kqxlkgqkw2d6snrylz6hiis6307pl8ldh7q5cvm33"; depends=[]; };
   gllm = derive2 { name="gllm"; version="0.37"; sha256="169y3yz947d8qdphqv2a6yrdash6v2h9jfvj2fk7rcpmz0r45kl6"; depends=[]; };
@@ -9982,7 +10058,8 @@ in with self; {
   glmmTMB = derive2 { name="glmmTMB"; version="1.1.2.3"; sha256="1yfwwz2dhd34vgagg8hi7irkqw8padavbc7337jdiwgk3w01wqsm"; depends=[lme4 Matrix nlme numDeriv RcppEigen TMB]; };
   glmmfields = derive2 { name="glmmfields"; version="0.1.4"; sha256="0gnb2s34xz7cjyaa2w2wq7n6c5016a14mc03kalvwdv3f7b98zan"; depends=[assertthat BH broom broom_mixed cluster dplyr forcats ggplot2 loo mvtnorm nlme Rcpp RcppEigen reshape2 rstan rstantools StanHeaders tibble]; };
   glmmsr = derive2 { name="glmmsr"; version="0.2.3"; sha256="1fbg5zji0xjr9q1yc6phsp37nsrj7nfs8yiri0j9s84wzgwjili1"; depends=[BH lme4 Matrix numDeriv R6 Rcpp RcppEigen]; };
-  glmnet = derive2 { name="glmnet"; version="4.1-2"; sha256="1kfd8kfhapx2cxw6qnkbs502c3kya4pd9qmf0mk76cdlq1c2paq6"; depends=[foreach Matrix shape survival]; };
+  glmnet = derive2 { name="glmnet"; version="4.1-3"; sha256="0nij8v44b5dvp1vc843sfkl9ds83n6g687m2p37q1rdn82m3bg34"; depends=[foreach Matrix Rcpp RcppEigen shape survival]; };
+  glmnetSE = derive2 { name="glmnetSE"; version="0.0.1"; sha256="0qj3c8qrx3vl0dr9prravfjwzqv1yfi771xfss9d44wlvjz5f4gp"; depends=[boot glmnet]; };
   glmnetUtils = derive2 { name="glmnetUtils"; version="1.1.8"; sha256="1k8ivzjgpkm2a948qxx3wmkhlppbk31qc76spv2pscmp24x0lxyn"; depends=[glmnet Matrix]; };
   glmnetcr = derive2 { name="glmnetcr"; version="1.0.6"; sha256="0cs0yj2js0920iggcw2vci5y9hnsm3hd7wpd7mwnx8mszwrklawg"; depends=[glmnet]; };
   glmpath = derive2 { name="glmpath"; version="0.98"; sha256="1jbiqqd1s93i941dhyyx50zlgwavhyjfw8bx13z4gz05rdvi4gn8"; depends=[survival]; };
@@ -10004,7 +10081,7 @@ in with self; {
   glow = derive2 { name="glow"; version="0.10.1"; sha256="1br29hy5j30k5q4xk1dglxlhqalhm76hnx8xg73v6whcg5j11392"; depends=[ggplot2 R6 Rcpp RcppEigen RcppParallel scales]; };
   glpkAPI = derive2 { name="glpkAPI"; version="1.3.3"; sha256="07bksiqmq2n7ki3f3sxph4v44k7q2b0d88jwjgfxzdn33i65wqyq"; depends=[]; };
   glrt = derive2 { name="glrt"; version="2.0"; sha256="0p2b0digndvnn396ynv56cdg436n3ll7pxkb81rs3dhwbyqyc948"; depends=[survival]; };
-  glue = derive2 { name="glue"; version="1.4.2"; sha256="1bgpirdvjrf0da734clrixawvpdap4lpda4g89vais96589m8wwz"; depends=[]; };
+  glue = derive2 { name="glue"; version="1.5.0"; sha256="1wjar579m46j1jnch34h7976sc1qbj6hzdyz5jm16nz1iw6z47jv"; depends=[]; };
   gluedown = derive2 { name="gluedown"; version="1.0.4"; sha256="1rvaac27kc4mppmw9kdwjaqsa7lwfzwffv63c8cky1z0xrsc5zz1"; depends=[glue magrittr]; };
   gluvarpro = derive2 { name="gluvarpro"; version="4.0"; sha256="09l9yincr1k5j9wnj3zvfzsffjh3r54aa8fn0ik8vhlbq13ag8kp"; depends=[ggplot2 gridExtra pracma scales tidyr zoo]; };
   glvmfit = derive2 { name="glvmfit"; version="0.1.0"; sha256="1nb34dm4m0nq7cr9f9jsacnk0xjv451m419sdwbk11ykpqkh9cdk"; depends=[]; };
@@ -10022,10 +10099,10 @@ in with self; {
   gmm = derive2 { name="gmm"; version="1.6-6"; sha256="16vkb472bjlfccfpl94mz772nbyf76wkwb2shai18jja3fnj3cxi"; depends=[sandwich]; };
   gmnl = derive2 { name="gmnl"; version="1.1-3.2"; sha256="01pviab3gyvjdlv5jy7wzp33909znhpn47kar55bwkm6gm3bdlg8"; depends=[Formula maxLik mlogit msm plotrix truncnorm]; };
   gmodels = derive2 { name="gmodels"; version="2.18.1"; sha256="0s8kd8krqk4kwv2zqxpsfy3w8qdwf5naf4b5l383vidq9sil0qb2"; depends=[gdata MASS]; };
-  gmp = derive2 { name="gmp"; version="0.6-2"; sha256="03kzbflgpy5sgnzxmhshs5qv7jjmfc113ybkhxys4z8y7xdv9z3b"; depends=[]; };
+  gmp = derive2 { name="gmp"; version="0.6-2.1"; sha256="1mj7hy6riaxl9n4q2cnyyjazwad90xbjszk25si968618rih4n64"; depends=[]; };
   gms = derive2 { name="gms"; version="0.4.0"; sha256="1m7bhy4vsz6l09pal9ibjlskmbyjmc29hqwjim1x8yansd5bxpzv"; depends=[dplyr rlang stringr yaml]; };
   gmt = derive2 { name="gmt"; version="2.0.2"; sha256="0z5abh0kw97y90nxkkxxg2xgv1avxijf71v88lwhy25jgv8r7b38"; depends=[]; };
-  gmvarkit = derive2 { name="gmvarkit"; version="1.5.0"; sha256="1b1c7ppmvns72rk37d7nav6h38hyr6qaqrl0f7j4fh1pz9w377kh"; depends=[Brobdingnag mvnfast pbapply]; };
+  gmvarkit = derive2 { name="gmvarkit"; version="2.0.0"; sha256="1wg8dyfzyqlav0a0zn0gma2gqgnw0j7sqy7g9n0rz9f6j4j95f3r"; depends=[Brobdingnag gsl mvnfast pbapply]; };
   gnFit = derive2 { name="gnFit"; version="0.2.0"; sha256="0cji4zjslh18dfj0l827r6br4hx2f0akiaxrg7fhhyyyhgdcjnsm"; depends=[ismev rmutil]; };
   gnlm = derive2 { name="gnlm"; version="1.1.1"; sha256="1krbz791l5qc06sh6my0bkq420b5afncw87lhyx1yiml2yg46zrk"; depends=[rmutil]; };
   gnm = derive2 { name="gnm"; version="1.1-1"; sha256="1lddsdsg43wpg681s906i4xqqfbjdd1qb9ml5dfprb02i1806aa2"; depends=[MASS Matrix nnet qvcalc relimp]; };
@@ -10058,6 +10135,7 @@ in with self; {
   googlePolylines = derive2 { name="googlePolylines"; version="0.8.2"; sha256="1z8ml0xiyqy1ygairgs9w10q4a7msd6gkzjv7kf6r8xv4bpc02pd"; depends=[BH Rcpp]; };
   googlePrintr = derive2 { name="googlePrintr"; version="0.0.1"; sha256="19rm78x8qd61ilc6h1kn3dw63m6dfsckqkd3n76krvi0akgl72w5"; depends=[googleAuthR httr jsonlite]; };
   googlePublicData = derive2 { name="googlePublicData"; version="0.16.1"; sha256="15hyslpqvncg21q581h061rfyg99y8lavqw1x8hzl7xzd49bn9r5"; depends=[readxl XML]; };
+  googlePubsubR = derive2 { name="googlePubsubR"; version="0.0.2"; sha256="1paw25q5p82m60dyxn38qi4ykranrr0gb253a7nhh5nckb4rz7hi"; depends=[cli googleAuthR magrittr]; };
   googleTagManageR = derive2 { name="googleTagManageR"; version="0.1.6"; sha256="1y2avhgvzrpmpyx341di8ml2pdj10y8sdhn7zwjpxgzrxkmf4xxi"; depends=[assertthat dplyr future googleAuthR httr jsonlite purrr]; };
   googleVis = derive2 { name="googleVis"; version="0.6.10"; sha256="0jjqlcxfbpkl2kdpp8vr27yi178ryg62yy7rjafzda1npg010f3x"; depends=[jsonlite]; };
   googledrive = derive2 { name="googledrive"; version="2.0.0"; sha256="09jsiknzyfgxd0nzdr3wrrjw24allch2x74h96qg8vh8dad4cp30"; depends=[cli gargle glue httr jsonlite lifecycle magrittr pillar purrr rlang tibble uuid vctrs withr]; };
@@ -10077,8 +10155,8 @@ in with self; {
   gpbStat = derive2 { name="gpbStat"; version="0.3.5"; sha256="1inmh8r02fn48p2f150d3prxlkf61549027vc64a3kyyk5q167ib"; depends=[data_table dplyr magrittr]; };
   gpboost = derive2 { name="gpboost"; version="0.6.7"; sha256="1q2y4vb3lf0phpgag8mj6wigrkzij4hl5amx1fv7f8b4aypz55xx"; depends=[data_table Matrix R6 RJSONIO]; };
   gpclib = derive2 { name="gpclib"; version="1.5-6"; sha256="11jjgg74l8hy9jz4jylhriqnzv8jcf12y1bkx22v29z3fhgkwkps"; depends=[]; };
-  gpg = derive2 { name="gpg"; version="1.2.3"; sha256="1dm68bkwgffb6304q1dzjdd9acih36j5pn8jwkh3a331g23g6jii"; depends=[askpass curl]; };
-  gpindex = derive2 { name="gpindex"; version="0.3.6"; sha256="1yc30ywyignr70kzfhnsy0ikda5b6d1wn31hcrrsc99yhagz2lpn"; depends=[]; };
+  gpg = derive2 { name="gpg"; version="1.2.4"; sha256="1g2ihywx1rdz1vwmgd6l7kgzvqq09c8451kw9yvd7ch8pmfffs2d"; depends=[askpass curl]; };
+  gpindex = derive2 { name="gpindex"; version="0.3.9"; sha256="18qja4chz91qybc07xcxcrbvgng5ybd03v9965wcivd2w2xrpxq6"; depends=[]; };
   gpk = derive2 { name="gpk"; version="1.0"; sha256="1zfhkqyypb24mhbj2zi9qy3gw0kqxvlp8j5ni3zm7k5rz1bnrygg"; depends=[]; };
   gplite = derive2 { name="gplite"; version="0.12.0"; sha256="1cm846jayqvb3xrd3h6pxq6wmww1ghhkr6dffschk0xycix6alw9"; depends=[Matrix Rcpp RcppArmadillo]; };
   gplm = derive2 { name="gplm"; version="0.7-4"; sha256="0apvj14nl5qbi4dhhdx5nih5lvjwfcipvr8cyk6xsz4r5gfr2iw4"; depends=[AER]; };
@@ -10087,10 +10165,10 @@ in with self; {
   gppm = derive2 { name="gppm"; version="0.2.0"; sha256="1n9is3xj52lsck2fiy9j320p2ca6ib36s251i7g3iz99a77b0ahh"; depends=[ggplot2 ggthemes MASS mvtnorm Rcpp rstan]; };
   gprofiler2 = derive2 { name="gprofiler2"; version="0.2.1"; sha256="0r0h34b35xzgd9rh55yndn0anxy0z45zdlqa6qfmpn91b6v1bb1g"; depends=[crosstalk dplyr ggplot2 gridExtra jsonlite plotly RCurl tidyr viridisLite]; };
   gptk = derive2 { name="gptk"; version="1.08"; sha256="0fk6c8f8fni4y2n2cbfwywlfyz74xlb8lx25wajsxr2v4x74pa7l"; depends=[fields Matrix]; };
-  gpx = derive2 { name="gpx"; version="1.0.1"; sha256="0p7fcqswd9swsscf0pjza7jmvwc25k2hrbdhb42hy90q28rdpmqm"; depends=[lubridate rvest xml2]; };
+  gpx = derive2 { name="gpx"; version="1.1.0"; sha256="0x9b3mnbrim690l4wnyzk47bgywvnw4h4l8qznnx7zkpqib2hn5i"; depends=[lubridate rvest xml2]; };
   gqlr = derive2 { name="gqlr"; version="0.0.2"; sha256="0gzhqyrbnz3qjzkr4slryrlfhlaxm474y9fahlj0sb0hvcx68pxj"; depends=[graphql jsonlite magrittr pryr R6]; };
   gquad = derive2 { name="gquad"; version="2.1-1"; sha256="19k7cqp2j5vb6m9hxdm951wfjh6nsswb64pdz9g93ypcqrg02wa4"; depends=[ape seqinr]; };
-  grImport = derive2 { name="grImport"; version="0.9-4"; sha256="0y9lsvfp1350das5v5d5pkv10z0n1crc7k4zn9inr94f9s4kjjr5"; depends=[XML]; };
+  grImport = derive2 { name="grImport"; version="0.9-5"; sha256="0pbzc45wgp0cpycnw0bzn65ckdszzay0zrp7c7ssxdkifp8bai3a"; depends=[XML]; };
   grImport2 = derive2 { name="grImport2"; version="0.2-0"; sha256="19q0dd8fpp1g4xf6sg5f8dxybwxjfw553ra6wgjd8b74fzca40m1"; depends=[base64enc jpeg png XML]; };
   grabsampling = derive2 { name="grabsampling"; version="1.0.0"; sha256="031a4ak84k2mbhrmjbai3q8qnf2z3d9rp0xra67x74a99av9lzs9"; depends=[extraDistr ggplot2 ggthemes plyr reshape2]; };
   gradDescent = derive2 { name="gradDescent"; version="3.0"; sha256="1jxgvnjw9qk5bkb0fw4kyks4vb9d1933jn79ry0w6956mq2xbb79"; depends=[]; };
@@ -10114,7 +10192,7 @@ in with self; {
   graphicalExtremes = derive2 { name="graphicalExtremes"; version="0.1.0"; sha256="1cc4xcb72yci2gq2zn3g1nh3ba802anpymm0hajdbz3kb0wz1gyn"; depends=[igraph matrixcalc mvtnorm Rdpack]; };
   graphicalVAR = derive2 { name="graphicalVAR"; version="0.3"; sha256="1mvv03zkqp5f7q2nnvpj2gq1v67vp42qr7cm0a20cfvp2gsxq0h5"; depends=[dplyr glasso glmnet igraph Matrix mvtnorm qgraph Rcpp RcppArmadillo rlang]; };
   graphkernels = derive2 { name="graphkernels"; version="1.6"; sha256="1gn3ihqz7m0rdvvc2fp7hsgq583wh5cnz7200a2ff89xc04zs3dc"; depends=[igraph Rcpp RcppEigen]; };
-  graphlayouts = derive2 { name="graphlayouts"; version="0.7.1"; sha256="05v7ss18bflhqa4ipsca8iw2ln8ddbaiyrizx2a5cwq81g5qq3rq"; depends=[igraph Rcpp RcppArmadillo]; };
+  graphlayouts = derive2 { name="graphlayouts"; version="0.7.2"; sha256="0vncg1pfnwrfkjfwz5k86b0ir8vnjkbyd0kzpbgb0cpkdz7987pc"; depends=[igraph Rcpp RcppArmadillo]; };
   graphon = derive2 { name="graphon"; version="0.3.5"; sha256="1x61pdsb3s1vi1iiy9pjq0iz0m5j5b6q3rqhwvx9kvmg4r8yifpv"; depends=[Rdpack ROptSpace]; };
   graphql = derive2 { name="graphql"; version="1.5"; sha256="0zi1l93yk5rlgdy4j2nph14w0h8kgvnbzk9fi2jfys8s3fz54ksr"; depends=[jsonlite Rcpp]; };
   graphsim = derive2 { name="graphsim"; version="1.0.2"; sha256="09is0yr17vxr08zb3p240n0aapm63418dzx4ilwq08y8050jqqr7"; depends=[gplots igraph Matrix matrixcalc mvtnorm]; };
@@ -10128,7 +10206,7 @@ in with self; {
   grec = derive2 { name="grec"; version="1.4.1"; sha256="1vy3idjvayzx9j9pf5bv5bxycjca3w3c4x4lzzbrdi3c97508sa8"; depends=[imagine raster]; };
   greed = derive2 { name="greed"; version="0.5.1"; sha256="1g33wzcld9gh4x7nhbfb022xjrn2lz8dwf4aqir8ymm0sr6cln87"; depends=[cba future GGally ggplot2 ggpubr listenv Matrix Rcpp RcppArmadillo RSpectra]; };
   greekLetters = derive2 { name="greekLetters"; version="0.0.7"; sha256="0r6c4y6dnd3mm5i7y5cy7xz3w2j7qkfkkvxg9ig138has6115gjj"; depends=[assertthat stringr]; };
-  greeks = derive2 { name="greeks"; version="0.3.1"; sha256="1j89ah5wcy6c3mxq3xh35sanq6idam6ki194c5kmms4sy1z4q472"; depends=[dqrng magrittr matrixStats Rcpp]; };
+  greeks = derive2 { name="greeks"; version="0.4.0"; sha256="0m36a1xnvxvhbn2ilqjj9ii028brccj0xi5ylv1p38lq7zx3awd1"; depends=[dqrng magrittr matrixStats Rcpp]; };
   greenclust = derive2 { name="greenclust"; version="1.1.0"; sha256="198ix55x8cl5wx09p6ahzy3bvig86mvqf2qywjfilp6b4hnjgk7l"; depends=[]; };
   gregRy = derive2 { name="gregRy"; version="0.1.0"; sha256="1b8c8wwp8r2v51ayy7rbav24wfz75z1pylg0p4vsasaw9p06dlbz"; depends=[dplyr magrittr purrr tidyr]; };
   gremlin = derive2 { name="gremlin"; version="1.0.1"; sha256="1pi1bksxmjmzclppgbqqg93swf4d72d2mr8bsxv7ndcdjr69xd5r"; depends=[Matrix nlme]; };
@@ -10162,6 +10240,7 @@ in with self; {
   groundhog = derive2 { name="groundhog"; version="1.5.0"; sha256="1d1shs518b5x526d07fpsa730bfvljp3vv4v8pbqxln4xk4h5zhi"; depends=[]; };
   groupICA = derive2 { name="groupICA"; version="0.1.1"; sha256="1wl828ligvvw55xic383gdn7aq4mbwsnkl4ym6f71jn5g3p36d0i"; depends=[MASS]; };
   groupRemMap = derive2 { name="groupRemMap"; version="0.1-0"; sha256="1bfp746j0dx7kk44nyjqmimvgw14par9ayvqxnzldc05qsazjdwx"; depends=[]; };
+  groupTesting = derive2 { name="groupTesting"; version="1.0.0"; sha256="00jy1gw6whslmfcqic99hmbxh2z75rj14cjzrm5mnpcajn37s66j"; depends=[pracma]; };
   groupWQS = derive2 { name="groupWQS"; version="0.0.3"; sha256="1c5yrsfgkhbg1fcjbrilfmf0phjry5z34536yfizc8wbc7mmmj0c"; depends=[glm2 MASS rjags Rsolnp]; };
   groupdata2 = derive2 { name="groupdata2"; version="2.0.0"; sha256="1s642fj0zwr6lw5dwf4y351igz0y2yl7g42wa8wi1wpa65p62553"; depends=[checkmate dplyr lifecycle numbers plyr purrr rearrr rlang tibble tidyr]; };
   grouped = derive2 { name="grouped"; version="0.6-0"; sha256="1glxgacpwk7yjbkwg5ci6bmb2il6hf5zhydwi5bbq6hc032m9976"; depends=[MASS]; };
@@ -10191,12 +10270,13 @@ in with self; {
   gsbDesign = derive2 { name="gsbDesign"; version="1.0-2"; sha256="1q958l9f03lk0wpcgqxqwcbj6jlgkmj6vj4gyj51pp8kfkxal59x"; depends=[gsDesign lattice]; };
   gsbm = derive2 { name="gsbm"; version="0.2.1"; sha256="16j4g0wl9phmx85dbrzxsdjcv0nnipgj214fvbz9m6n66khr5pkp"; depends=[doParallel foreach Matrix RSpectra softImpute]; };
   gscaLCA = derive2 { name="gscaLCA"; version="0.0.5"; sha256="12zksjp0wh95qg7vxh22z652hk35r9sp0qxrms4y1laixa8vr71x"; depends=[devtools doSNOW fastDummies fclust foreach ggplot2 gridExtra MASS nnet progress psych stringr]; };
+  gscounts = derive2 { name="gscounts"; version="0.1-4"; sha256="1wcna4bcm38ivmys5hv30b72bvn0ja0n30zhwns94n4v2z1d24k4"; depends=[Rcpp]; };
   gset = derive2 { name="gset"; version="1.1.0"; sha256="1gingqw6la8n7mnl47wpz9sicxca4zi2m8p35n6cnihrniibhajc"; depends=[Hmisc MCMCpack mvtnorm]; };
   gsheet = derive2 { name="gsheet"; version="0.4.5"; sha256="0b8q44cqkjfy6vnffm94czq4ag8xfbxik52026ahq95kcf9v2j91"; depends=[httr stringr]; };
   gsignal = derive2 { name="gsignal"; version="0.3-2"; sha256="1yw3srky82wqwvbjdfdd718ay965qnrwq7lnflzdg1j0f7nxj6iw"; depends=[pracma Rcpp]; };
   gsisdecoder = derive2 { name="gsisdecoder"; version="0.0.1"; sha256="1h7a9j4gsdk8nasfkzfizlarx335ra0j0yz98a2000v2qzm2a5qy"; depends=[Rcpp]; };
-  gsl = derive2 { name="gsl"; version="2.1-7"; sha256="05rvky8sh3jrlz0xbd6nss8h8ykfg1v10dymhlmcykl6v5csz1hs"; depends=[]; };
-  gslnls = derive2 { name="gslnls"; version="1.0.2"; sha256="0vdw6iqh03km1s59piwr77a1yrignxlb48vr3871j061yna8ijdq"; depends=[]; };
+  gsl = derive2 { name="gsl"; version="2.1-7.1"; sha256="118rj9kjx9rzlynvhrly19qz3yxg8jzws35971ssgzrp5lwd367f"; depends=[]; };
+  gslnls = derive2 { name="gslnls"; version="1.1.0"; sha256="1xmd9369q4y7wzf0lbvciwka233fjbgjq13s1ssp56xzhhigaiya"; depends=[Matrix]; };
   gsloid = derive2 { name="gsloid"; version="0.1.0"; sha256="1ma5si86ynfsis0pnw8hyv6xc4frbkhy5ks03mr0z16gasffkycg"; depends=[]; };
   gsmoothr = derive2 { name="gsmoothr"; version="0.1.7"; sha256="00z9852vn5pj04dhl3w36yk0xjawniay6iifw1i7fd8g98mgspxp"; depends=[]; };
   gsrs = derive2 { name="gsrs"; version="0.1.1"; sha256="0x5fll59l000dqszy0gmhsfqgpaljc57j1grqg5c7y1p3vji38in"; depends=[doParallel foreach MASS]; };
@@ -10204,6 +10284,7 @@ in with self; {
   gss = derive2 { name="gss"; version="2.2-3"; sha256="0jr45lkpcndg5nynjsfnxn1wwkh4gkhsgv4hlvw6jn2frw0n8c14"; depends=[]; };
   gstar = derive2 { name="gstar"; version="0.1.0"; sha256="1582f7jcphb32j3wdc345qa5sgm2xyimlc6r5r5jay7ca5ll8c98"; depends=[dplyr ggplot2 reshape2 xts zoo]; };
   gstat = derive2 { name="gstat"; version="2.0-8"; sha256="1s380qbvygccjhwpk4bmhdhdsbz0h8f6b9ghdalpk4x36n19xjsp"; depends=[FNN lattice sp spacetime zoo]; };
+  gstsm = derive2 { name="gstsm"; version="0.0.1"; sha256="14vdgrxxgz18l2k9qi4dg2v6xp3cbc3171iayfzyg4d8ay0094dh"; depends=[digest]; };
   gsubfn = derive2 { name="gsubfn"; version="0.7"; sha256="00j6b8b6xsx6v370h220x233rpk6asca78165y3d48jpwvwisdc9"; depends=[proto]; };
   gsw = derive2 { name="gsw"; version="1.0-6"; sha256="1sqxxbghsii5lph4r9j6w752zd95xxi2hwfbz6d7jxsplwyyfz0l"; depends=[]; };
   gsynth = derive2 { name="gsynth"; version="1.2.1"; sha256="1a4s8ghxc5zw295ys8hp22nx93gc1vyakn7r1dcq3ghikh02nzaa"; depends=[abind doParallel doRNG foreach future GGally ggplot2 lfe MASS mvtnorm Rcpp RcppArmadillo]; };
@@ -10214,9 +10295,9 @@ in with self; {
   gtcorr = derive2 { name="gtcorr"; version="0.2-1"; sha256="1n56zmyv58jwr95p453jb86j82pdnq57gfc8m15jndjc9p31zl0m"; depends=[]; };
   gte = derive2 { name="gte"; version="1.2-2"; sha256="1x528iakyjhh4j92cgm6fr49a3rdi4cqy28qhsfr2dwvxzxchl6h"; depends=[survival]; };
   gtfs2gps = derive2 { name="gtfs2gps"; version="1.5-4"; sha256="0hqqi4gm6zbrys0yd0ayyas2pxfx4r98fi45rfmdzffrx8qd0p9r"; depends=[data_table furrr future gtfsio lwgeom magrittr pbapply progressr raster Rcpp readr rgdal rgeos sf sfheaders sp units]; };
-  gtfsio = derive2 { name="gtfsio"; version="0.2.0"; sha256="1mvz89hxlx6darqg84ly7218d3p7i4gchcgy031p12qgxs7ydxq4"; depends=[data_table zip]; };
+  gtfsio = derive2 { name="gtfsio"; version="1.0.0"; sha256="05210ii5b754ryk296knqm3sf9yi5xwvcrq6rb9w71njqgvykwcj"; depends=[data_table zip]; };
   gtfsrouter = derive2 { name="gtfsrouter"; version="0.0.5"; sha256="0yxgc4pi0g2wqswvwba0ij263i8b8p6wgsy6hbvklq0gim616shi"; depends=[cli data_table geodist Rcpp]; };
-  gtfstools = derive2 { name="gtfstools"; version="0.1.0"; sha256="02v455r1a9rf2hqpw0a547jvbx6hrb26jwhjx68spmh9rrc5zpkz"; depends=[checkmate data_table sf sfheaders units zip]; };
+  gtfstools = derive2 { name="gtfstools"; version="1.0.0"; sha256="0qwpnhjl80g0h0samsh8hs3df85ax329aaaxgjzn5b8h6xi31p6z"; depends=[checkmate cpp11 data_table gtfsio sf sfheaders units]; };
   gtheory = derive2 { name="gtheory"; version="0.1.2"; sha256="1xc1jl69z5csalqk3hx83s53awcl1fjq6p0x2pczhs7dsvwd6lks"; depends=[lme4]; };
   gtools = derive2 { name="gtools"; version="3.9.2"; sha256="0lx97yafrms2mjym8rhcq5586z7s1iqgy8qfm4px3xl1yn5qkc83"; depends=[]; };
   gtop = derive2 { name="gtop"; version="0.2.0"; sha256="1nvvbf181x0miw3q0r2g0nklz29ljdsd07cazaajfls7pmhi0xw9"; depends=[hts lassoshooting quadprog]; };
@@ -10231,7 +10312,7 @@ in with self; {
   gumboot = derive2 { name="gumboot"; version="1.0.0"; sha256="0c31rxkq08wzycwiwii7q166pzwfbdg35259rymwy0g38pnjnjp6"; depends=[dplyr ggplot2 hydroGOF lubridate ncdf4 reshape2 stringr]; };
   gunit = derive2 { name="gunit"; version="1.0.0"; sha256="0vmm47f21n9f334aj38gzrmv1c4sp76njk95ld9gv6fcfxgsipyh"; depends=[magrittr stringr tibble units]; };
   gunsales = derive2 { name="gunsales"; version="0.1.2"; sha256="02vz16lhym72vvf48yai1g371wygdlmi63a6ylc147l0b69jgw31"; depends=[data_table dplyr ggplot2 seasonal x13binary zoo]; };
-  gustave = derive2 { name="gustave"; version="0.4.2"; sha256="1pg8lpsc9n6zjq8gidljs5mmdbmkax5kpcc7m3yhgs518zp32gki"; depends=[Matrix]; };
+  gustave = derive2 { name="gustave"; version="0.4.3"; sha256="08az0j9cfalf2jf6qhsxhml3ranvacan85xp4d6zqdrgly00qsr2"; depends=[Matrix]; };
   gutenbergr = derive2 { name="gutenbergr"; version="0.2.1"; sha256="0rsk583x4i1ac6rbxr5f5cmczr4525bkv20jw7777n8fwn91zvyr"; depends=[dplyr lazyeval purrr readr stringr urltools]; };
   gvc = derive2 { name="gvc"; version="6.0.0"; sha256="0sn2rhab39biqbmab7z12wkyar5h44hzdvds94ybyb1dgcsa3sfl"; depends=[decompr diagonals]; };
   gvcR = derive2 { name="gvcR"; version="0.1.0"; sha256="0r54924b9a65k11p8y3p7jxbvmpb7s7vs87v65hhl98gxacj5hk8"; depends=[dplyr eda4treeR lme4 magrittr]; };
@@ -10239,6 +10320,7 @@ in with self; {
   gvlma = derive2 { name="gvlma"; version="1.0.0.3"; sha256="16dhd407bwjs91c3p9kk43646197s7n9vbyghxb4ckrpv3fsaxp0"; depends=[]; };
   gwaRs = derive2 { name="gwaRs"; version="0.3.0"; sha256="1mjwsf1sbrd88psiz6f74zddv1wvhpxk5nxbfjpdrxs74rkc36fs"; depends=[data_table dplyr ggplot2 ggrepel RColorBrewer scales tidyr]; };
   gwasforest = derive2 { name="gwasforest"; version="1.0.0"; sha256="122fg4pc409lvw4yvrc8ijm6d6j29b4aacd319a16caxkkydgwlb"; depends=[colorspace data_table dplyr ggplot2 ggrepel glue]; };
+  gwasrapidd = derive2 { name="gwasrapidd"; version="0.99.12"; sha256="0pn7mdip361s2l3nqmjl0zqmr0g5406cfr1v5l20m2gkacxqfds6"; depends=[assertthat concatenate dplyr glue httr jsonlite lubridate magrittr pingr plyr progress purrr rlang stringr testthat tibble tidyr urltools]; };
   gwdegree = derive2 { name="gwdegree"; version="0.1.1"; sha256="0p06hjp7vay83kbpqsgfr1d8z3ayv483rxbv86fdka94gvi1sjyc"; depends=[dplyr ergm ggplot2 gtools magrittr network scales shiny shinydashboard sna tidyr]; };
   gwer = derive2 { name="gwer"; version="3.0"; sha256="0jiq5v37mbn6y7vl5gs8qahb796jrfqj0m54sd38vim8yhhjwfy8"; depends=[assertthat glogis GWmodel maptools Matrix sp spData spdep spgwr]; };
   gwerAM = derive2 { name="gwerAM"; version="1.0"; sha256="1c3rzd1jf52a4dn63hh43m9s9xnjvqn67amlm9z1ndrnn6fwfg1b"; depends=[MASS Matrix]; };
@@ -10263,8 +10345,6 @@ in with self; {
   hadron = derive2 { name="hadron"; version="3.1.2"; sha256="04qd3lb6im5shf24ss88jkskab1rwn7m2d94x0ybbmfcg3l5dhm0"; depends=[abind boot dplyr R6 Rcpp stringr]; };
   hagis = derive2 { name="hagis"; version="3.1.3"; sha256="1x2vnym7da8kbj3ifi09z9dlqgprh73n03535gankqzd6pd7n1k4"; depends=[data_table ggplot2 pander]; };
   hakaiApi = derive2 { name="hakaiApi"; version="1.0.0"; sha256="0wk0qmg2g1hj6bsvhr5xys02l32adn1qypv8rdma643qfvlcp46c"; depends=[httr R6 readr tibble]; };
-  hal9001 = derive2 { name="hal9001"; version="0.4.1"; sha256="0hclz3rrav536dz7hqzdzck0hxx24pd59p3s2flhkx60wqxajvrq"; depends=[assertthat data_table glmnet Matrix origami Rcpp RcppEigen stringr]; };
-  haldensify = derive2 { name="haldensify"; version="0.2.1"; sha256="1mckpr70q10qv2m70rbwwzb7a6mvk8hwrkvbnh7v2qksd5lcfxn8"; depends=[assertthat data_table dplyr future_apply ggplot2 hal9001 latex2exp matrixStats origami Rdpack rlang rsample scales tibble]; };
   halfcircle = derive2 { name="halfcircle"; version="0.1.0"; sha256="1gbqbv3cn8w09i3f2ji3qq0snb4fy9243y12agw686fx46dfmhxs"; depends=[scales]; };
   hamlet = derive2 { name="hamlet"; version="0.9.6"; sha256="076fh28grlrv38qywshi79m84jsz1ck9k4n0rg4svvr3gqkdbcn2"; depends=[]; };
   handlr = derive2 { name="handlr"; version="0.3.0"; sha256="0l0jwlslz2pyg7q447k56acfhgmx5njsriqdrwd02zzbsc3g6wm5"; depends=[crul jsonlite mime urltools xml2 yaml]; };
@@ -10309,8 +10389,7 @@ in with self; {
   hdbm = derive2 { name="hdbm"; version="0.9.0"; sha256="0lvaica195chl6bb10wvvr7fbmh8b954fpxcm9r0gyp0d0i2a2w4"; depends=[Rcpp RcppArmadillo]; };
   hdd = derive2 { name="hdd"; version="0.1.0"; sha256="0hnqjfp78s8fiabibf0dl57sj170ri1ysf7pyrk45z4qsnizbyn2"; depends=[data_table fst readr]; };
   hddplot = derive2 { name="hddplot"; version="0.59"; sha256="18llkpawm12cjxlcrlra60m16virfpjqiaqkvy9mb3wq1zif61rh"; depends=[MASS multtest]; };
-  hddtools = derive2 { name="hddtools"; version="0.9.4"; sha256="011yhs8c6riimz63pa2am56n5aip2yk5gryx2amvk29pzp1v6my9"; depends=[curl raster readxl rgdal sp tidyr XML zoo]; };
-  hdf5r = derive2 { name="hdf5r"; version="1.3.4"; sha256="0lxbdw1xf5yp82fkdj4wzp5mslay3qxd65459vh09dj131h5gl34"; depends=[bit64 R6]; };
+  hdf5r = derive2 { name="hdf5r"; version="1.3.5"; sha256="0bv2q4ir73sbk5ra2q4mc8wbcmiwkws8k0mjlnx9ysi2mdrm3dw7"; depends=[bit64 R6]; };
   hdfqlr = derive2 { name="hdfqlr"; version="0.6-2"; sha256="07lfr0vblahh3xhckwmzbmlja0janb73qkl4663mqgp6xk21jmi1"; depends=[]; };
   hdi = derive2 { name="hdi"; version="0.1-9"; sha256="0k35zqz58lcx5p7ijhks4j7kqp553zggvrx4lh6k4s85lp601x22"; depends=[glmnet linprog MASS scalreg]; };
   hdiVAR = derive2 { name="hdiVAR"; version="1.0.1"; sha256="0rq5vsi0s3y9rkkzijkicrlg55vjqklniizmx4dqs3ib18jbh94l"; depends=[abind lpSolve]; };
@@ -10324,9 +10403,9 @@ in with self; {
   healthcareai = derive2 { name="healthcareai"; version="2.5.0"; sha256="05qsmgrnaagnavlrs9c6j01j9c3lcc9j7cmbrx3y6lb6pf4zs195"; depends=[caret cowplot data_table dplyr e1071 generics ggplot2 glmnet lubridate MLmetrics purrr ranger recipes rlang ROCR stringr tibble tidyr xgboost]; };
   healthfinance = derive2 { name="healthfinance"; version="0.1.0"; sha256="163zhdd5mqp0q872dmr3xzw2ppapnwp46rr7vkkfnglz635nxvpz"; depends=[ggplot2 lubridate readr scales shiny tibble]; };
   healthyR = derive2 { name="healthyR"; version="0.1.6"; sha256="1px9c0i0qf0b85nbwjv0cccy2viqvi6c2pd1vx3s6yncj3vx3a5x"; depends=[cowplot dplyr ggplot2 ggrepel lifecycle lubridate magrittr plotly purrr rlang scales sqldf stringr tibble tidyr timetk writexl]; };
-  healthyR_ai = derive2 { name="healthyR.ai"; version="0.0.2"; sha256="1gvqanwzdimp093yvvrf2f542n3jgz1wah53bgsl954bd3vp4yaz"; depends=[broom dplyr forcats ggplot2 ggrepel h2o magrittr parsnip purrr recipes rlang rsample tibble tidyr timetk]; };
+  healthyR_ai = derive2 { name="healthyR.ai"; version="0.0.3"; sha256="17l659vilk2lrgga27jrm0r6ap7j8zrwx34abfjgp6389jdnm5cd"; depends=[broom dplyr forcats ggplot2 ggrepel h2o magrittr parsnip purrr recipes rlang rsample tibble tidyr]; };
   healthyR_data = derive2 { name="healthyR.data"; version="1.0.1"; sha256="18b7aqdy9a0ldf2ib2d0a07k6bfmgdp61y8hl8yl19v35nqj6dvh"; depends=[]; };
-  healthyR_ts = derive2 { name="healthyR.ts"; version="0.1.4"; sha256="0ggksxsaawd6zpfhhaic99yrl0g2w81nmm147qldwsshd252xrym"; depends=[cowplot dplyr earth forcats ggplot2 lubridate magrittr modeltime parsnip plotly purrr recipes rlang stringi tibble tidyquant tidyr timetk workflowsets]; };
+  healthyR_ts = derive2 { name="healthyR.ts"; version="0.1.5"; sha256="00pyqy3qzmg440fx91bk9yczdn0fikdy50dq2wlzzd5h83i6bwx4"; depends=[cowplot dplyr earth forcats ggplot2 lubridate magrittr modeltime parsnip plotly purrr recipes rlang stringi tibble tidyquant tidyr timetk workflowsets]; };
   healthyverse = derive2 { name="healthyverse"; version="1.0.1"; sha256="088vf0va382341jri9y8p5ygdz76jv3fnjf6y0ldf535grifb3dc"; depends=[cli crayon dplyr healthyR healthyR_ai healthyR_data healthyR_ts magrittr purrr rlang rstudioapi tibble]; };
   heapsofpapers = derive2 { name="heapsofpapers"; version="0.1.0"; sha256="1b88ff4j6rh0qif43iyb12wipkkjmp5qx33qfzgffr5m54df4kfy"; depends=[aws_s3 curl dplyr fs magrittr rlang scales]; };
   heatex = derive2 { name="heatex"; version="1.0"; sha256="0c7bxblq24m80yi24gmrqqlcw8jh0lb749adsh51yr6nzpap6i9n"; depends=[]; };
@@ -10348,15 +10427,16 @@ in with self; {
   helsinki = derive2 { name="helsinki"; version="1.0.5"; sha256="1vf023n93cq67dk139rszj3y8bc91z7rlagrv2z0y8mqpndi03am"; depends=[curl dplyr httpcache httr jsonlite purrr sf xml2]; };
   heplots = derive2 { name="heplots"; version="1.3-9"; sha256="09cjy8g1rpvq0x2j317s68kb9ida1wsqr29aigbw4fc23nab66cx"; depends=[car MASS]; };
   here = derive2 { name="here"; version="1.0.1"; sha256="0srlr8h8qmr0wrmp7gs4g2ry5dni2hx8n947bik3s3a26f091v88"; depends=[rprojroot]; };
-  hereR = derive2 { name="hereR"; version="0.8.1"; sha256="0pyg9lbgfsiw3sp4jnl4y0k02ih3395bwcrfax04y5v1ix5j4i7r"; depends=[crul curl data_table flexpolyline jsonlite sf stringr]; };
+  hereR = derive2 { name="hereR"; version="0.8.2"; sha256="18m70jp94i5pi3jaap3av0qpbrmbi5xvx4ab92h11f10lxkaa0j5"; depends=[crul curl data_table flexpolyline jsonlite sf stringr]; };
   hergm = derive2 { name="hergm"; version="4.1-8"; sha256="1razjdiv33wrfkqsb234aw9j2sw049jnw9758jwjp48j8566d8k6"; depends=[ergm igraph intergraph latentnet Matrix mcgibbsit mlergm network Rcpp sna stringr]; };
   heritEWAS = derive2 { name="heritEWAS"; version="0.2.0"; sha256="0yss9vf2m9szq8xi5i2nhf85mfvzvhv6c1f4kvvb2z9lmaicjni5"; depends=[]; };
   heritability = derive2 { name="heritability"; version="1.3"; sha256="0a0pw8hppkgypl4jaa38hks9nxfwz2zbsd4w6w40j1hxlyy4km8m"; depends=[MASS]; };
   hermite = derive2 { name="hermite"; version="1.1.2"; sha256="0j9s7ayvbvmgwybrvf703b72qbn8gskb105pis19ig2sslllzda3"; depends=[maxLik]; };
-  hermiter = derive2 { name="hermiter"; version="2.0.3"; sha256="0vq39kfr8hpxsijg6452bx47yzaqqv69mx612pp97z0a0kllg2a2"; depends=[BH Rcpp]; };
+  hermiter = derive2 { name="hermiter"; version="2.1.0"; sha256="1z9zrmyxx7dgsi0zblp15saw1iz79sc2r9zyirdzqmz010rnm19y"; depends=[BH Rcpp]; };
   hero = derive2 { name="hero"; version="0.4.7"; sha256="129v2pjbxm5aalr5lfx0kh20rhwksnb80pc459pxg0xkwxvy1l3d"; depends=[fields Matrix optimx pbapply rgeos sp]; };
   hesim = derive2 { name="hesim"; version="0.5.1"; sha256="0w79ka88bafkcs7bjsyl7z2v44cd4xjv3xqyk764jamzfcfhanzq"; depends=[data_table flexsurv ggplot2 MASS msm R6 Rcpp RcppArmadillo survival]; };
   hetGP = derive2 { name="hetGP"; version="1.1.4"; sha256="1nm4kkg0jwlp21flviiw187jih4y1s6lqn3j0f2s1h81rh1vvvzf"; depends=[DiceDesign MASS Rcpp]; };
+  hetsurr = derive2 { name="hetsurr"; version="1.0"; sha256="1086lqxg6s5a0qxmd29bp3ninr4jzfdp3m6fsn9sfl7bagvrs5wy"; depends=[Rsurrogate]; };
   hett = derive2 { name="hett"; version="0.3-3"; sha256="0i7q28nc67m62vi1ipfg035yqjh691fb1mp33dp1b68g5wjysphh"; depends=[lattice MASS]; };
   hettreatreg = derive2 { name="hettreatreg"; version="0.1.0"; sha256="092xd2yndg5n5shxmcyn2gh6a6w1i1497cvj009ih3ax8hk3crf0"; depends=[]; };
   hettx = derive2 { name="hettx"; version="0.1.1"; sha256="0zfxg88l83pzj37c5khpv4vi0v28fdnp0p8yz39scm8d8lya1dkm"; depends=[doParallel dplyr foreach formula_tools MASS moments mvtnorm plyr purrr quantreg tidyverse]; };
@@ -10376,7 +10456,7 @@ in with self; {
   hhcartr = derive2 { name="hhcartr"; version="1.0.0"; sha256="104xy3ihpi031pyzifnpc0jfq68gsbc12gzv6hp1vjrgy0nqw5l1"; depends=[bookdown captioner checkmate DiagrammeR DiagrammeRsvg ggplot2 hash Matrix rsvg]; };
   hhh4contacts = derive2 { name="hhh4contacts"; version="0.13.1"; sha256="1cqwn09iqgh6131cm4b5j0kx7k5vil0ak42v064g4maayj0yqy7p"; depends=[surveillance]; };
   hhi = derive2 { name="hhi"; version="1.2.0"; sha256="1yl52c3nqdi8v60sr01l0vv8359803dm2i4c9ifazgj3h3a4h0yp"; depends=[ggplot2]; };
-  hhsmm = derive2 { name="hhsmm"; version="0.2.1"; sha256="0m3jgqfa1mirwa9iy9xrq7d06f00mbfpx0im76m815bfd8rmv9kq"; depends=[CMAPSS MASS mice mvtnorm Rcpp Rdpack]; };
+  hhsmm = derive2 { name="hhsmm"; version="0.2.2"; sha256="06r4pl96bd417mk2x9yn7gl84zybv9yz03xn7r1rqkgian9l110s"; depends=[CMAPSS MASS mice mvtnorm Rcpp Rdpack]; };
   hht = derive2 { name="hht"; version="2.1.4"; sha256="0i4rjr507k555pvf7q6y6b3df56rjc6igrv8dk0mhyfws49jw9m9"; depends=[EMD fields spatstat spatstat_core spatstat_geom spatstat_linnet]; };
   hiPOD = derive2 { name="hiPOD"; version="1.0"; sha256="1i15ickz2s0kffh99qq30pl5hsl0lbj0kp55jnbv4x72hndzhmla"; depends=[rgl]; };
   hiddenf = derive2 { name="hiddenf"; version="2.0"; sha256="0shc1kfiq527mkc5i97zcm51hsvknnhjg7dyfvbfqyk145v6sz00"; depends=[]; };
@@ -10387,8 +10467,8 @@ in with self; {
   hierarchicalDS = derive2 { name="hierarchicalDS"; version="3.0"; sha256="16d6l3y21nhynfjk4swp3pnjr6vhcxq369djgxz907zsjby35gkz"; depends=[coda ggplot2 Matrix mc2d MCMCpack mvtnorm rgeos truncnorm xtable]; };
   hierarchicalSets = derive2 { name="hierarchicalSets"; version="1.0.2"; sha256="0m5mnx1zmiscj0k1gnljr7fla4y1qhysi32a8q9jlah2q7grk7x9"; depends=[ggdendro ggplot2 gtable MASS Matrix RColorBrewer Rcpp scales]; };
   hierband = derive2 { name="hierband"; version="1.0"; sha256="0d95hrgkd8b5sww3wsgs6v9zg9pm71ick8x8kj8d6vyib350h6yn"; depends=[]; };
-  hierbase = derive2 { name="hierbase"; version="0.1.0"; sha256="0x51ybwdd6p2l88q4izgqr4n6p41hvhlz94gfwzffkds5djy47wb"; depends=[glmnet hdi SIHR]; };
-  hierfstat = derive2 { name="hierfstat"; version="0.5-7"; sha256="0dp8k1z5a8gqnax99y1hwfvxilzf4n2i751zr0z6ihrzirsvb3m3"; depends=[ade4 adegenet gaston gtools]; };
+  hierbase = derive2 { name="hierbase"; version="0.1.2"; sha256="1rsyjlwa8x5n83ymwv7qm373k3y7jfp64g717xd1jmn9vrmm052b"; depends=[glmnet hdi SIHR]; };
+  hierfstat = derive2 { name="hierfstat"; version="0.5-10"; sha256="1p4vlna185sa3b5xjbysiqxcj9aa5s7dmxy41hg79vlqdivf874r"; depends=[ade4 adegenet gaston gtools]; };
   hiertest = derive2 { name="hiertest"; version="1.1"; sha256="17maf1w4vkqknxff3f00fzv136j3dbbigyzl4vq4sln9j27w10r3"; depends=[]; };
   highD2pop = derive2 { name="highD2pop"; version="1.0"; sha256="1s4v6m2d3vzvxsgmjzczv1zj3kv3ygvv6gbkkbjwsdhkvc1rdmf0"; depends=[fastclime]; };
   highDmean = derive2 { name="highDmean"; version="0.1.0"; sha256="0z81iw1nb8y4pvmhk8ay9pq4kvqxwxwv8q6p47hy8s2b465sfy1f"; depends=[]; };
@@ -10396,7 +10476,7 @@ in with self; {
   highSCREEN = derive2 { name="highSCREEN"; version="0.4"; sha256="1nd4jayfhz89kpk4i7s3n3wlza1ik4w3gspplnjmfz951f8i3wlg"; depends=[gplots]; };
   highTtest = derive2 { name="highTtest"; version="1.1"; sha256="18hgxlr0y8y1d4ldqmfcg4536lhyn5p6w88sq1vj74qr5wzydga1"; depends=[]; };
   highcharter = derive2 { name="highcharter"; version="0.8.2"; sha256="1hwiifpm60kqgxlvp8zd6mhgbzc4mkcz9s9yc6byrm9i6daiqs8r"; depends=[assertthat broom dplyr htmltools htmlwidgets igraph jsonlite lubridate magrittr purrr quantmod rjson rlang rlist stringr tibble tidyr xts yaml zoo]; };
-  highfrequency = derive2 { name="highfrequency"; version="0.9.0"; sha256="1p3bvhqc71vmb1zcjr5b27lwppx355bgz8578ivz404p1ays4m0w"; depends=[cubature data_table mvtnorm numDeriv quantmod Rcpp RcppArmadillo RcppRoll robustbase Rsolnp sandwich xts zoo]; };
+  highfrequency = derive2 { name="highfrequency"; version="0.9.1"; sha256="1bbvcp5dw98hgwyzc8gh1rmqjgbbgd673agjs37s6ias8kf2y2nl"; depends=[cubature data_table mvtnorm numDeriv quantmod Rcpp RcppArmadillo RcppRoll robustbase Rsolnp sandwich xts zoo]; };
   highlight = derive2 { name="highlight"; version="0.5.0"; sha256="1shar4y07wyixg0ichdrn2xhgwkl3mv2pxkalqzisc69w605b3hf"; depends=[]; };
   highlightHTML = derive2 { name="highlightHTML"; version="0.2.5"; sha256="0j3zrvil7k5wfsbgfj2b4nbx77qsj3b4makv5angcf8s59p7q80r"; depends=[]; };
   highmean = derive2 { name="highmean"; version="3.0"; sha256="1lq7z0l1737j4wvsy7951405afylyywp7vf2i7girzh459fdfzpc"; depends=[MASS mnormt mvtnorm]; };
@@ -10410,13 +10490,13 @@ in with self; {
   hilldiv = derive2 { name="hilldiv"; version="1.5.1"; sha256="1jp4xvrpqd575y2x0i73s0bq708bzi6gdhqgz85bia6d5kf05lq9"; depends=[ape data_table FSA geiger ggplot2 ggpubr qgraph RColorBrewer scales vegan]; };
   hillmakeR = derive2 { name="hillmakeR"; version="0.2"; sha256="1baynibgn4xqmpsxna8irggxvdc484mq5nza00rwg58vh1bc7wzq"; depends=[]; };
   hillshader = derive2 { name="hillshader"; version="0.1.0"; sha256="12phdpkjc4gyk9ri33x86dzxb03llhpqf43vin9ssfr23sbblnqh"; depends=[raster rayshader scales]; };
-  himach = derive2 { name="himach"; version="0.2.1"; sha256="0znaxg11l7l5b40paiprg07264bna8wi5xsicbsk6h50pdxh4wx2"; depends=[cppRouting data_table dplyr geosphere ggplot2 lwgeom s2 sf sp tidyr]; };
+  himach = derive2 { name="himach"; version="0.2.2"; sha256="0da5hbm31yza1bzi74llbah1w10xcbvgf7zvy6skv0riz18yrl5c"; depends=[cppRouting data_table dplyr geosphere ggplot2 lwgeom purrr s2 sf tidyr]; };
   hindex = derive2 { name="hindex"; version="0.2.0"; sha256="01mcd2br33qqkfcyxl584f3l6kyb2cgzpd207p0mynzdaallgxgc"; depends=[foreach ggplot2 purrr]; };
   hindexcalculator = derive2 { name="hindexcalculator"; version="1.0.0"; sha256="06b4dn629avmnyqxb0l39m00wz9cg9dddmm6qhgwgnzlxh14ifgk"; depends=[]; };
   hint = derive2 { name="hint"; version="0.1-1"; sha256="1n18j2hcb1qynhsln10nzryi20l5aqhr7i1aanww10y5dz573zi3"; depends=[]; };
   hiphop = derive2 { name="hiphop"; version="0.0.1"; sha256="0k071kxf04b95f3z5y2h9dhnqrvzwgyhi3q26ghn3s76c155f1k1"; depends=[]; };
   hipread = derive2 { name="hipread"; version="0.2.2"; sha256="1y51yif2spl6brqjvb20k9r6xwkr5f6brv08qcl4g9xg561yngff"; depends=[BH R6 Rcpp rlang tibble]; };
-  hisse = derive2 { name="hisse"; version="1.9.19"; sha256="00b36r1aqbjajzinka4bbzf99bn7cf66i56z8da1cxlh7gqdx05f"; depends=[ape data_table deSolve diversitree GenSA nloptr phytools plotrix subplex]; };
+  hisse = derive2 { name="hisse"; version="2.1.6"; sha256="08pz0ys0hk7kjfz18959v5kkw5xijnkp97l9fagwb8wjgsk5lbb7"; depends=[ape corHMM data_table deSolve diversitree geiger GenSA igraph nloptr paleotree phangorn phytools plotrix subplex TreeSim]; };
   histmdl = derive2 { name="histmdl"; version="0.7-1"; sha256="0k6l3pfjzlgpxv55vy8dg4sl8zhh0460xcfszwp2k9sbzanwaamp"; depends=[]; };
   histogram = derive2 { name="histogram"; version="0.0-25"; sha256="0yymc7fw4qkbigr8jiw2nzjyrw0ikkipz62pdn3bpz1f7nb7mi93"; depends=[]; };
   historydata = derive2 { name="historydata"; version="0.1"; sha256="1h69x3iig542d43p9zm8x83p4dq48iwsw606j4fndnqhx99vzkw6"; depends=[]; };
@@ -10455,12 +10535,14 @@ in with self; {
   homologene = derive2 { name="homologene"; version="1.4.68.19.3.27"; sha256="0d7wxisk0vqk1n165v1i19bc02zv78h5r5d3jqai5y6nkmwn01sh"; depends=[dplyr magrittr purrr R_utils readr]; };
   homomorpheR = derive2 { name="homomorpheR"; version="0.2-2"; sha256="1iahq16nswlc3b87598206xdp24bg9v8acyjp1jivybl3fr4k3pq"; depends=[gmp R6 sodium]; };
   homtest = derive2 { name="homtest"; version="1.0-5"; sha256="1lnqlg3dwq174ic6dbjllysw5fjy5kvvgbl6gvabjmcs66z27fp0"; depends=[]; };
+  hoopR = derive2 { name="hoopR"; version="1.5.0"; sha256="1ndw76a733q225r67w6qxhkbbz5f4bll7bxfl3psy58z60qg02dh"; depends=[cli data_table dplyr furrr future glue janitor jsonlite magrittr progressr Rcpp RcppParallel rlang rvest stringr tidyr usethis]; };
   hopbyhop = derive2 { name="hopbyhop"; version="3.41"; sha256="1dh502mjrk9dlqikn0ak4gh2dw9nrnp3zrz8j1xwa9cjn37al2wh"; depends=[ggplot2 pastecs]; };
   hopit = derive2 { name="hopit"; version="0.10.3"; sha256="1dhfsbf4j2acncw0ypg44lkphhznafd80880jxfl6jdhd9fg2nn8"; depends=[MASS Matrix Rcpp RcppEigen Rdpack survey]; };
   hornpa = derive2 { name="hornpa"; version="1.0"; sha256="0pfvk2jkrwgvshgq9g55qijgpjh0677rpbya0r8759n92v3axbp4"; depends=[]; };
   horserule = derive2 { name="horserule"; version="1.0.0"; sha256="0d348pn0ld7lr9lfl1z05905l9kl296j0xic1pib6r5l1c5600r9"; depends=[gbm ggplot2 inTrees MASS mvnfast randomForest RColorBrewer Rdpack]; };
   horseshoe = derive2 { name="horseshoe"; version="0.2.0"; sha256="1qhkw6agkhpmgf27429c3kqqhbvpg61l0dvfxg7n564y2ha76r3c"; depends=[]; };
   horseshoenlm = derive2 { name="horseshoenlm"; version="0.0.6"; sha256="1m3n12wgmb1wnxc40bzpna261das8hy47l7hmvhfbzhmp7v803v5"; depends=[msm survival]; };
+  hospitals = derive2 { name="hospitals"; version="0.1.0"; sha256="03bg0fl1wpc7rxlzxgjdk48x8zsd7lv64dcs0fbg573wkhp02vim"; depends=[magrittr stringr tibble]; };
   hot_deck = derive2 { name="hot.deck"; version="1.2"; sha256="1zdrbqkqh3sbc4pkrqgv230h6jm6fvf3wwpb3y6r9l3g8zh4j18r"; depends=[data_table MASS mice tidyr]; };
   hotspot = derive2 { name="hotspot"; version="1.0"; sha256="0a4w5d6rg324hd06lfwr1hxf6bwr10n55s3ynz5bpkh9c61yik3n"; depends=[]; };
   hotspots = derive2 { name="hotspots"; version="1.0.3"; sha256="12v88k3yz1bsxx9p5dx8y54ccqcglwknm2jr7ybygdj2yasjr5l0"; depends=[ineq lattice]; };
@@ -10482,6 +10564,7 @@ in with self; {
   hscovar = derive2 { name="hscovar"; version="0.4.2"; sha256="06bkqcp0vcnkp0jqi0qjvxnw0lk0w4mrf88h1769ak7r49vzlr6f"; depends=[foreach Matrix pwr rlist]; };
   hsdar = derive2 { name="hsdar"; version="1.0.3"; sha256="1slb2m62j86hn1kvpv72fvp48sxl7zb2znrr70jqqbrah8n1ynnl"; depends=[Boruta caret raster rgdal signal]; };
   hse = derive2 { name="hse"; version="0.0-28"; sha256="14w09wm1kk7b4q8cl5cwjfqvzm2fb4ls8qjw6i0l54184fmw4dah"; depends=[]; };
+  hsem = derive2 { name="hsem"; version="1.0"; sha256="0dgp65isbfmw0q4sn36l5226sf6vrl7mvn7gn50xvgybh0l6y7vk"; depends=[boot Matrix mvtnorm numDeriv]; };
   hsicCCA = derive2 { name="hsicCCA"; version="1.0"; sha256="1d4lkjrihwhl3jrsj7250ccd90nfwpllyavc3mp15fhcy2jnjci8"; depends=[]; };
   hsm = derive2 { name="hsm"; version="0.2.0"; sha256="066shjikqrrkxpnra4zknax1a0sk5nx9ms1br58vwqqvqq479rym"; depends=[]; };
   hsmm = derive2 { name="hsmm"; version="0.4"; sha256="1fh8c5kfv4brygdq6bfkrhrhkm99mxl4ljb1mhp9nf2bjlla11mc"; depends=[mvtnorm]; };
@@ -10560,7 +10643,7 @@ in with self; {
   hypergeo = derive2 { name="hypergeo"; version="1.2-13"; sha256="13jdiy216znwhr91iqnh03mvkmyscw439syb3h4i67dd78sphnvd"; depends=[contfrac deSolve elliptic]; };
   hyperoverlap = derive2 { name="hyperoverlap"; version="1.1.1"; sha256="10kcphn5zl1pl70xg9bn947i9mbnjxk03p6y7xhdlv152cihffw0"; depends=[e1071 ggplot2 MASS matlib misc3d rgl]; };
   hypersampleplan = derive2 { name="hypersampleplan"; version="0.1.1"; sha256="1sk3s1jm46ac4i7p433s3kyngj86kq2821zzhp30a3y8vi1j2psq"; depends=[]; };
-  hypervolume = derive2 { name="hypervolume"; version="2.0.12"; sha256="0jd49jncmg23vm9rkcy6sd4zjwlw75hwps7wahpb36zs9kb63ssq"; depends=[data_table e1071 fastcluster geometry hitandrun ks maps MASS mvtnorm pdist progress raster Rcpp RcppArmadillo rgeos rgl sp]; };
+  hypervolume = derive2 { name="hypervolume"; version="3.0.0"; sha256="1iscpr7vldsr6wfnvgyfkylkp8mb0l7939hkwlmxj4nnxvhaphfc"; depends=[caret data_table doParallel dplyr e1071 fastcluster foreach geometry ggplot2 hitandrun ks maps MASS mvtnorm palmerpenguins pbapply pdist progress purrr raster Rcpp RcppArmadillo rgeos sp]; };
   hypoRF = derive2 { name="hypoRF"; version="1.0.0"; sha256="1yyq1pjxm9p395wq4zfimvcagspl8vlk0kzpa92pr084q5f7jcyr"; depends=[ranger]; };
   hypothesestest = derive2 { name="hypothesestest"; version="1.0"; sha256="0g8sm386m1zm9i3900r62x83wb600cy8hqk7dlvbx6wcgrxg82sm"; depends=[]; };
   hypothesisr = derive2 { name="hypothesisr"; version="0.1.1"; sha256="0z06risagphhvqiw4lrxy52q6q2yr10w2yxsm8iz1wh9ik097pcv"; depends=[dplyr httr jsonlite]; };
@@ -10588,10 +10671,10 @@ in with self; {
   iDOVE = derive2 { name="iDOVE"; version="1.3"; sha256="10xxg2mldbcjd6n1l2kblm7agw93ckx6waqwq9dm00l88kf06l3f"; depends=[knitr Rcpp RcppArmadillo]; };
   iDynoR = derive2 { name="iDynoR"; version="1.0"; sha256="01702vl10191mbq2wby1m0y6h8i6y6ic4pa83d27cg3yccsrhziz"; depends=[vegan XML]; };
   iFad = derive2 { name="iFad"; version="3.0"; sha256="0jrl9bayihp3wb4k5w9kc71qlsdxk7vl83ydfibx2bg79c4hf3cs"; depends=[coda MASS Rlab ROCR]; };
-  iForecast = derive2 { name="iForecast"; version="1.0.3"; sha256="1mvgg96rd8clqhdg1n2a6vcx3y1rp64n5zlj1nrnpd6c938a0a1m"; depends=[caret magrittr zoo]; };
+  iForecast = derive2 { name="iForecast"; version="1.0.4"; sha256="0yng5qrz1k4f1rn2wfhh8iik2zxzrzj8a0dka2gvlw2hwm2n4cgj"; depends=[caret magrittr zoo]; };
   iGSEA = derive2 { name="iGSEA"; version="1.2"; sha256="1xlz8mbxqnrwyqj7jwma7vmvjlaccajbfxf3hi4wp5qs2pch8806"; depends=[]; };
   iGasso = derive2 { name="iGasso"; version="1.4"; sha256="17xxqncl5xcphdqclghcazygcgibf8ijdf4kkl3ga11xf70sahj2"; depends=[CompQuadForm lattice]; };
-  iGraphMatch = derive2 { name="iGraphMatch"; version="1.0.1"; sha256="0jpwml540k5wwn958vb6ni3pldpx675y9jm8pr6vp2s571mlz7cv"; depends=[clue igraph irlba Matrix Rcpp]; };
+  iGraphMatch = derive2 { name="iGraphMatch"; version="2.0.0"; sha256="0xqf04wc5rm7x281pmnpz6a5ax26i9drgy90ixl4bchcx5ma0mr5"; depends=[clue igraph irlba Matrix Rcpp]; };
   iIneq = derive2 { name="iIneq"; version="1.0.2"; sha256="15487majkslabw33dgqfx0jmbzzjhiy8z07bki5540d1wf6rmmnn"; depends=[doParallel foreach]; };
   iMRMC = derive2 { name="iMRMC"; version="1.2.3"; sha256="1qga4mm5vslfmxcm3p99nijr4573kq71pfb6yd2ayl6lgjf3y0c3"; depends=[]; };
   iMediate = derive2 { name="iMediate"; version="0.5.5"; sha256="1lwhrzm4g2fcazh782g7p11v5pyx165ig1dzgkmdmjffpwk0w8b4"; depends=[MBESS mvtnorm plotly]; };
@@ -10600,7 +10683,7 @@ in with self; {
   iNZightPlots = derive2 { name="iNZightPlots"; version="2.13.3"; sha256="0dj39qwcxr9pbqpkq40m4758014rwd5hi219slnjcwl6pikf6ndm"; depends=[boot chron colorspace dichromat hexbin hms iNZightMR iNZightTools lubridate magrittr quantreg rlang s20x scales survey]; };
   iNZightRegression = derive2 { name="iNZightRegression"; version="1.3.1"; sha256="0vqk4574xm7xwdg1vmlc4alhfby02ifvrkc1q3vabs7zxix0xn35"; depends=[car dplyr ggplot2 ggrepel ggtext iNZightPlots multcomp patchwork]; };
   iNZightTS = derive2 { name="iNZightTS"; version="1.5.8"; sha256="0nqjxjphd9lrwkj8qs05qk8sf70kyi6akvcpp9f5shb043csnbqr"; depends=[colorspace dplyr forcats ggplot2 ggtext glue gridExtra magrittr patchwork rlang tidyr]; };
-  iNZightTools = derive2 { name="iNZightTools"; version="1.12.0"; sha256="17h2162pgka5y314drm2im6f5v39w9nv1k2klxjmajds9nn4cpsr"; depends=[chron dplyr forcats glue haven lubridate magrittr RcppTOML readr readxl srvyr stringr styler survey tibble tidyr validate zoo]; };
+  iNZightTools = derive2 { name="iNZightTools"; version="1.12.1"; sha256="17danz18f3j3xwgy3nf88d53a3z8b5yyxf1mdq7rn61zhjiprkim"; depends=[chron dplyr forcats glue haven lubridate magrittr RcppTOML readr readxl srvyr stringr styler survey tibble tidyr validate zoo]; };
   iRF = derive2 { name="iRF"; version="2.0.0"; sha256="1ll4lxg743p2zipxcq13yjsc7j7dk766dcyixwxilllbisg0dh8y"; depends=[AUC data_table doParallel dplyr foreach Matrix RColorBrewer Rcpp]; };
   iRafNet = derive2 { name="iRafNet"; version="1.1-1"; sha256="0w9bry49apkrrrabglnv5w9l47jakmc30jh8q22a8gazwss293fb"; depends=[ROCR]; };
   iRegression = derive2 { name="iRegression"; version="1.2.1"; sha256="1kwsrmsflmqan96aj0dczlszfww1dlg6rwycyid52f7ghg9810rn"; depends=[mgcv]; };
@@ -10639,7 +10722,6 @@ in with self; {
   ica = derive2 { name="ica"; version="1.0-2"; sha256="0ya1nph1zwhad0bfz4yxs27kl45yk1dhnphdlrq34p8pqrpmj8g7"; depends=[]; };
   ical = derive2 { name="ical"; version="0.1.6"; sha256="1raanaagas1c8w66d8s045z5ip1i97xca4233d55jk6cazv0mb1w"; depends=[V8]; };
   icapca = derive2 { name="icapca"; version="1.1"; sha256="131gdrk8vsbac0krmsryvsp21bn9hzxqxq847zn16cxjf6y5i3xb"; depends=[]; };
-  icardaFIGSr = derive2 { name="icardaFIGSr"; version="1.0.1"; sha256="1jmqhzc1nkbw3r9p4skh4pcp6986fa09h5bcyx99892gwn9dh7g0"; depends=[caret doParallel dplyr foreach ggplot2 gWidgets2 gWidgets2RGtk2 httr leaflet magrittr plotROC plyr raster reshape2 RGtk2 sp]; };
   icarus = derive2 { name="icarus"; version="0.3.1"; sha256="0ipbhzvwdn1cnzgdw33cwv901768srxfi588bimjx2ssl80mqn3a"; depends=[]; };
   iccCounts = derive2 { name="iccCounts"; version="1.0.3"; sha256="0wcfdizj4ng7qr3yrjs356qq7xxbiqsf4s6fq4h54bnyvlj611jz"; depends=[Deriv dplyr ggplot2 glmmTMB gridExtra VGAM]; };
   iccbeta = derive2 { name="iccbeta"; version="1.2.0"; sha256="03ms1c8qpbgxabj3hh4n0gwcazw6cd0cvixck5rz8fkvj04xzjak"; depends=[lme4 Rcpp RcppArmadillo]; };
@@ -10695,19 +10777,19 @@ in with self; {
   igcop = derive2 { name="igcop"; version="1.0.1"; sha256="0jl107mdwbldi319qflqjzy8vk02sr4nihky8jl5kcgr6x55qh6z"; depends=[Rcpp rlang vctrs]; };
   iglu = derive2 { name="iglu"; version="3.1.0"; sha256="1jq5y18gjxxvb1bhszs0xpklg7m9l9ig6ad1vjpll4m0xcln4hnl"; depends=[caTools dplyr ggplot2 ggpubr gridExtra gtable hms lubridate magrittr patchwork plotly scales shiny tibble tidyr zoo]; };
   igoR = derive2 { name="igoR"; version="0.1.3"; sha256="0i1s53pyibxpqdv4269q9riqwr3yvy207hwljx2gbnaf4jqpf5hk"; depends=[]; };
-  igraph = derive2 { name="igraph"; version="1.2.7"; sha256="1r8vmqm2rq1jnkh8axr4gw1hbj34ca1dil154qp037imfcra1h95"; depends=[magrittr Matrix pkgconfig]; };
+  igraph = derive2 { name="igraph"; version="1.2.9"; sha256="1k1p5vpr3k02ix5z5z37lrcdwzbqigwvwmbjva3flbak4q7pkwxf"; depends=[magrittr Matrix pkgconfig]; };
   igraphdata = derive2 { name="igraphdata"; version="1.0.1"; sha256="19w5npa4b8c054v94xlr7nmhhg2fhq4m8jbds86skp8zvipl4rkl"; depends=[]; };
   igraphinshiny = derive2 { name="igraphinshiny"; version="0.1"; sha256="1ww5s4jfihzcx4k35lbhzsf54z720xh7b2p5alzk843m6rx77986"; depends=[igraph shiny]; };
   igraphtosonia = derive2 { name="igraphtosonia"; version="1.0"; sha256="0vy9jnpjp68l8s0hi1l57j9p41c543h3iqv16pwl550f38zqp8j6"; depends=[igraph]; };
   iheatmapr = derive2 { name="iheatmapr"; version="0.5.1"; sha256="1pwkwh7ljlpr6zyz6j8knpz3iw60xzkw8amc98x4pc2mw148jvzx"; depends=[fastcluster ggdendro htmlwidgets jsonlite knitr magrittr RColorBrewer scales]; };
-  iheiddown = derive2 { name="iheiddown"; version="0.8.2"; sha256="0bb17872iiv6nnnc32r4g3pbgi5wlh1ishc66m454pav40mmsk9p"; depends=[bookdown covr crayon dplyr ggplot2 magrittr readr rlang rmarkdown roxygen2 rstudioapi servr tibble tidytext xaringan]; };
+  iheiddown = derive2 { name="iheiddown"; version="0.8.6"; sha256="0w36w875fzxx8parjc6lb9nwvfjs0p2vv1pzd12cb160pgn9y7mc"; depends=[bib2df bookdown crayon dplyr fs gender ggplot2 pdftools purrr readr remotes rlang rmarkdown rstudioapi servr stringr tibble tidytext usethis xaringan]; };
   ihpdr = derive2 { name="ihpdr"; version="1.2.1"; sha256="1qa9ndb5aqbmlqbl0ivh10ddah2rbhsc6928dml20fjgz7lggdww"; depends=[curl dplyr httr lubridate magrittr purrr readxl rlang rvest tidyr xml2]; };
   iilasso = derive2 { name="iilasso"; version="0.0.2"; sha256="043m1n5840459zsknkb54801apb0a2cqfprncmj2wp235rbqj832"; depends=[BH Matrix Rcpp]; };
   ijtiff = derive2 { name="ijtiff"; version="2.2.7"; sha256="187ykflj7b51j2jziqb45bcv9319w67g179505m74kjka897rir4"; depends=[checkmate cli dplyr fs magrittr purrr readr rlang strex stringr withr zeallot]; };
   ilc = derive2 { name="ilc"; version="1.0"; sha256="0hs0nxv7cd300mfxscgvcjag9f2igispcskfknb7sn7p8qvwr5ki"; depends=[date demography forecast rainbow survival]; };
   imabc = derive2 { name="imabc"; version="1.0.0"; sha256="1p420jlvqqcqdjqp7y4mcjkzimw3qiygph5yrvmm75znax3fkg4z"; depends=[data_table foreach lhs MASS truncnorm]; };
   image_CannyEdges = derive2 { name="image.CannyEdges"; version="0.1.0"; sha256="0c8pvk91xyys6d2i03yy88kylb3jli5jkpq2s069n7p0yl3z7rr1"; depends=[Rcpp]; };
-  image_ContourDetector = derive2 { name="image.ContourDetector"; version="0.1.0"; sha256="1z3713paqw86yq45sq1b4gi3nq3y21wcg3pxh7vsciqs669lpv1q"; depends=[Rcpp sp]; };
+  image_ContourDetector = derive2 { name="image.ContourDetector"; version="0.1.1"; sha256="0h9nq6k99rfmldw1c00k2anlpbjbpm26pp1d7jg2wz334dvlvlij"; depends=[Rcpp sp]; };
   image_CornerDetectionF9 = derive2 { name="image.CornerDetectionF9"; version="0.1.0"; sha256="04qy2yvgjmgb8r3piw6v5g97abljqv1nw7vn2wvn1npkq9lzj94x"; depends=[Rcpp]; };
   image_CornerDetectionHarris = derive2 { name="image.CornerDetectionHarris"; version="0.1.1"; sha256="150qz9wfpa33914x1am2ifzm0k2bdkmgk1qypvgxy958ginlaxsg"; depends=[Rcpp]; };
   image_LineSegmentDetector = derive2 { name="image.LineSegmentDetector"; version="0.1.0"; sha256="1mx6vkmm9miwqdd5vil44if0dikzn5cy3kxvb3vp0kwfm8k36ib5"; depends=[Rcpp sp]; };
@@ -10719,7 +10801,7 @@ in with self; {
   imageData = derive2 { name="imageData"; version="0.1-61"; sha256="0bavyd8njfjd0l8dcsm6gklgc81kykl275w2gpvb5cxrhb9yp32n"; depends=[dae GGally ggplot2 Hmisc RColorBrewer readxl reshape]; };
   imagefluency = derive2 { name="imagefluency"; version="0.2.3"; sha256="0f4kizxc86q6pgx5dbp14y6866b1ldyf7zgpfikd2iqhvxbs7qwa"; depends=[magick OpenImageR pracma R_utils readbitmap]; };
   imagefx = derive2 { name="imagefx"; version="0.4.1"; sha256="1mxd33y8zbq8kig6m6xihb5w8wrjppgmpyjspvaxjwk7si9a09k1"; depends=[moments signal]; };
-  imager = derive2 { name="imager"; version="0.42.10"; sha256="1vmfmmawbk8sgyba87igaxpwb926nb1ji8a08ad3dqfj7aq9x4q1"; depends=[downloader igraph jpeg magrittr png purrr Rcpp readbitmap stringr]; };
+  imager = derive2 { name="imager"; version="0.42.11"; sha256="1a1jhmgrpv1d0fk14axj88qvxgb25bqnj65d60g1k985ipzvgy27"; depends=[downloader igraph jpeg magrittr png purrr Rcpp readbitmap stringr]; };
   imagerExtra = derive2 { name="imagerExtra"; version="1.3.2"; sha256="1f6mxfn7am4ph9acbbx53r4bk4vsm73p7arh8rvrsic9pgma3gqf"; depends=[fftwtools imager magrittr Rcpp]; };
   imageviewer = derive2 { name="imageviewer"; version="0.1.0"; sha256="1rsrwy5v0gnsmbay1zqijhvll2l1bs844m52w65588j9nlx4fci9"; depends=[htmlwidgets]; };
   imagine = derive2 { name="imagine"; version="1.5.3"; sha256="1ss0gm769s8cmma3hnah15vmc2c5wxn0l3s4vas7jbvkwi62am6h"; depends=[Rcpp]; };
@@ -10736,9 +10818,10 @@ in with self; {
   immer = derive2 { name="immer"; version="1.1-35"; sha256="1nmf9wxxyq3p8b5kikpsr8b0v4s84zjpahg1rxvcrhc8blg26hjq"; depends=[CDM coda MASS psychotools Rcpp RcppArmadillo sirt TAM]; };
   immunarch = derive2 { name="immunarch"; version="0.6.7"; sha256="1dv983cnjyzwsfn7p174ab6rffpd1h24zy5w78mqapkyr0m95d98"; depends=[airr circlize data_table dbplyr dplyr dtplyr factoextra fpc ggalluvial ggplot2 ggpubr ggrepel ggseqlogo jsonlite magrittr MASS patchwork pheatmap plyr purrr Rcpp readr readxl reshape2 rlang Rtsne scales shiny shinythemes stringr tibble tidyselect UpSetR]; };
   immuneSIM = derive2 { name="immuneSIM"; version="0.8.7"; sha256="0brj12xnkzmn3n91vb39fq3q68wmzmwx9l38dl38yypp0l8pknjl"; depends=[Biostrings data_table ggplot2 ggthemes igraph Metrics plyr poweRlaw RColorBrewer repmis reshape2 stringdist stringr]; };
+  imola = derive2 { name="imola"; version="0.3.2"; sha256="0v41xprzqhhj0463g9176jc3zr7g6mjrcgs8vrcn3g5lmg6c9z7z"; depends=[glue htmltools magrittr shiny stringi yaml]; };
   imp4p = derive2 { name="imp4p"; version="1.2"; sha256="1ld8bjjrlij9m7xns7izibag9mndrfh21xgq1w7g3bh5ag9p9fs0"; depends=[Iso missForest missMDA norm Rcpp truncnorm]; };
   impactflu = derive2 { name="impactflu"; version="0.1.0"; sha256="0wpaq2q61g6hl9fffs5cjbzdz1qc8dxsbknfs0iarwkn08460bn5"; depends=[dplyr glue lubridate magrittr Rcpp rlang tibble]; };
-  impactr = derive2 { name="impactr"; version="0.2.0"; sha256="01xgc865nx6sm4p9ldrhdz2q0m140krhxcd5v20nyr4n7qcz612y"; depends=[glue lubridate lvmisc pillar pracma purrr Rcpp rlang signal stringr tibble toOrdinal vroom]; };
+  impactr = derive2 { name="impactr"; version="0.3.0"; sha256="1a1psp1jjnczza0skws75rn80xn5krmpbdfq75cdjfg03vqc95kx"; depends=[glue lubridate lvmisc pillar pracma purrr Rcpp rlang signal stringr tibble toOrdinal vroom]; };
   impimp = derive2 { name="impimp"; version="0.3.1"; sha256="0xkxph4f1rcpkryx9v339bfbsnq3xwdj1flb4j2dgh99apj126sq"; depends=[]; };
   implicitMeasures = derive2 { name="implicitMeasures"; version="0.2.0"; sha256="0w0dwnzfhw5v5j7q3zpfsca4ydmq7b9fzspvyf9sibyh587isb9c"; depends=[ggplot2 stringr tidyr xtable]; };
   implied = derive2 { name="implied"; version="0.4.0"; sha256="00wv05pb59p86ddfwha7ilfss36si8yljnmkmayiqcazn32ylzg8"; depends=[]; };
@@ -10769,7 +10852,7 @@ in with self; {
   incase = derive2 { name="incase"; version="0.3.1"; sha256="01x1alrk3pp4zi7r4nxnn9y16129ggmiqjys5sfhlybs505yq5vw"; depends=[backports magrittr plu rlang]; };
   incgraph = derive2 { name="incgraph"; version="1.0.1"; sha256="0zjvxk2krdlm5bcr0m80nxy46f69a1xadfjw5sjw249b28wdclml"; depends=[BH dplyr orca purrr Rcpp testthat tibble]; };
   incidence = derive2 { name="incidence"; version="1.7.3"; sha256="1wdxh2p7scm419fqki0i7vsz45rd7557h5n3zf9fshb8x1fdf2z7"; depends=[aweek ggplot2]; };
-  incidence2 = derive2 { name="incidence2"; version="1.2.2"; sha256="1sj79bm4pw8xqpjk5h4s7igqk34n5mhkd2yhlw32hbv0pk8f59lp"; depends=[clock data_table dplyr ellipsis grates lifecycle pillar rlang tibble tidyr tidyselect vctrs]; };
+  incidence2 = derive2 { name="incidence2"; version="1.2.3"; sha256="1cs4yh2jaf9d0pivz25v2bv2ci0ks4vw6x3r2zxrq4981hiqgzl1"; depends=[clock data_table dplyr ellipsis grates pillar rlang tibble tidyselect vctrs]; };
   incidental = derive2 { name="incidental"; version="0.1"; sha256="012pdwrkzlbnrrkvy67l6nvs1lrjgrzhfh3v4rqzk2ypdvfm3wmx"; depends=[dlnm ggplot2 MASS matrixStats numDeriv]; };
   inctools = derive2 { name="inctools"; version="1.0.15"; sha256="0ikldiwgizs2p9vcalk5729dr6krysnyr4ni0ybg9gljw7iafdlf"; depends=[binom cubature doParallel dplyr foreach ggplot2 glm2 magrittr plyr pracma rlang tibble tmvtnorm]; };
   indelmiss = derive2 { name="indelmiss"; version="1.0.9"; sha256="0i4qnvc0xb3ngnk8xdscmx7qnicfs7s6czawf6schb1nh2pjpzyq"; depends=[ape numDeriv phangorn Rcpp]; };
@@ -10793,7 +10876,7 @@ in with self; {
   influence_SEM = derive2 { name="influence.SEM"; version="2.2"; sha256="1cabl6486mlrmk0418s18wii3n6nl1ckv6w9281wdk4fy27y9qk2"; depends=[lavaan]; };
   influenceAUC = derive2 { name="influenceAUC"; version="0.1.2"; sha256="0pscwfxs2y780lzd5sxldnnkzzs2lsjdwz71z44kn7884wqmikpm"; depends=[dplyr geigen ggplot2 ggrepel ROCR]; };
   influenceR = derive2 { name="influenceR"; version="0.1.0.1"; sha256="0rj7rm236vn3v8302nwl12s0kvpv6xpdbm3q3gxk7vgwfl8nzi33"; depends=[igraph Matrix]; };
-  influential = derive2 { name="influential"; version="2.2.3"; sha256="13jlib9mczpfrmisrzksxjn45i03ci0ga64qzqkf2ffwxkaw2zdc"; depends=[coop ggplot2 igraph janitor ranger]; };
+  influential = derive2 { name="influential"; version="2.2.4"; sha256="0xvq661cs2wcwp42rwk8f1izwd7zfg6wjs8r88mdjksra7j0wkaf"; depends=[coop ggplot2 igraph janitor ranger]; };
   influxdbclient = derive2 { name="influxdbclient"; version="0.1.0"; sha256="0fdh1c9hfzamflzq2bsrkadqlysa95bqzl2xm60kr0ka1iamn7cj"; depends=[bit64 httr jsonlite nanotime plyr R6]; };
   influxdbr = derive2 { name="influxdbr"; version="0.14.2"; sha256="03dzw86mvbc8w38q9skjki1z17vc04k9q8dx7sd3xg6xbr10f9d9"; depends=[dplyr httr jsonlite magrittr purrr rlang tibble tidyr xts zoo]; };
   infoDecompuTE = derive2 { name="infoDecompuTE"; version="0.6.2"; sha256="0r1capiv4zr31dsy0sqly9zb00i86zq2ihbgsmb5g4cy0f04xlqz"; depends=[MASS]; };
@@ -10811,6 +10894,7 @@ in with self; {
   inline = derive2 { name="inline"; version="0.3.19"; sha256="1mcr9hgq6kkq03n7pkcccxa7vg8jma0q7lfxc5vvkc6snydk1s8f"; depends=[]; };
   inlinedocs = derive2 { name="inlinedocs"; version="2019.12.5"; sha256="11d8cnrzgq95w7hn234rcwrr1mmrv63f69807pnzxizxbgnp7wz3"; depends=[]; };
   inlmisc = derive2 { name="inlmisc"; version="0.5.2"; sha256="1jg92fy9dg9rv0sdzzcc7vylkx6z3l0b2q7rba63dpkdb1vqrwls"; depends=[checkmate data_table GA htmltools htmlwidgets igraph knitr leaflet raster rgdal rgeos rmarkdown scales sp tinytex webshot wordcloud2 xtable yaml]; };
+  innsight = derive2 { name="innsight"; version="0.1.0"; sha256="1df1byv5jnv895b6aywvkalxx5clw6p6yl0lpihf7qnzsgm8wz49"; depends=[checkmate ggplot2 R6 torch]; };
   inops = derive2 { name="inops"; version="0.0.1"; sha256="1y402a9r542hpwd1nfdc07mbgnf9alpnykl9di1v8fy0qly8s0an"; depends=[]; };
   inpdfr = derive2 { name="inpdfr"; version="0.1.11"; sha256="1wnz73ggc7xcgynvdlvgz26qkfjmxxy0xg8gkf1far5346g4qd9y"; depends=[ca cluster entropart metacom R_devices RColorBrewer SnowballC stringi tm wordcloud]; };
   inplace = derive2 { name="inplace"; version="0.1.2"; sha256="06jb8xzjqywdww8j2i59c8663dfbrhnvj0lh3xm73j39sig6vh7l"; depends=[Rcpp]; };
@@ -10826,7 +10910,7 @@ in with self; {
   install_load = derive2 { name="install.load"; version="1.2.3"; sha256="0z4klcpwdlmhwvk41z9q4c4382z8glad27h0gai93zyciy44sdyx"; depends=[assertthat checkmate fastmatch]; };
   installr = derive2 { name="installr"; version="0.23.2"; sha256="1xyzap1injimyib16srhbm0hchh1bcd5vg9d9wbvhf8dlpkaxw4q"; depends=[stringr]; };
   insuranceData = derive2 { name="insuranceData"; version="1.0"; sha256="0wryh8i1v3bnpbqn6d6dpxr9bwwl6mnh5cb5igz0yanh4m1rx96w"; depends=[]; };
-  insurancerating = derive2 { name="insurancerating"; version="0.6.7"; sha256="15rrxp6h8h3si1842vqxpa72s06m8i8wjs5kw4r6fbwhgl9b2fjr"; depends=[ciTools classInt colorspace data_table DHARMa dplyr evtree ggplot2 insight lubridate magrittr mgcv patchwork scales stringr tidyr tidyselect]; };
+  insurancerating = derive2 { name="insurancerating"; version="0.6.8"; sha256="0c5sic7vv83w0j9mccvjdds10kds8jn4ry3jp2qjgkq32wz7mg3v"; depends=[ciTools classInt colorspace data_table DHARMa dplyr evtree ggplot2 insight lubridate magrittr mgcv patchwork scales stringr tidyr tidyselect]; };
   intRegGOF = derive2 { name="intRegGOF"; version="0.85-5"; sha256="0xjq8vdlgqlzrvp752gd4qfrpnpapx7k6xzfsvfril8ngvm9a162"; depends=[]; };
   intRvals = derive2 { name="intRvals"; version="1.0.0"; sha256="0391raj5wq6issvzqm8bfnv1ap2hh5nfsqi9r1x5ss37fvcq5fjm"; depends=[lme4 plyr]; };
   intamap = derive2 { name="intamap"; version="1.4-9"; sha256="060sghkqsdrxpa340rvjskh2wafdkffa5q8nlbg1msnsmk639lkn"; depends=[automap doParallel evd foreach gstat MASS mvtnorm rgdal sp]; };
@@ -10860,7 +10944,7 @@ in with self; {
   intervals = derive2 { name="intervals"; version="0.15.2"; sha256="0mvwfwc03ifb30a3dzbmkv9adwqb8ajxhcw24d8xip8px063plhb"; depends=[]; };
   intervcomp = derive2 { name="intervcomp"; version="0.1.2"; sha256="1l6x1fl84li6is3b92b96q3fbv0rpgqy2lvw9cbi2cq8nh9imnyx"; depends=[]; };
   interventionalDBN = derive2 { name="interventionalDBN"; version="1.2.2"; sha256="0wpp4bfi22ncvl0vdivniwwvcqgnpifpgxb4g5jbyvr0z735cd9w"; depends=[]; };
-  inti = derive2 { name="inti"; version="0.4.4"; sha256="1whazmsw5j09gyiirzpnpmijnpyr6h1bd6lkvimwhndl15pr3sxp"; depends=[agricolae dplyr DT emmeans FactoMineR ggplot2 lme4 purrr shiny stringi stringr tibble tidyr]; };
+  inti = derive2 { name="inti"; version="0.5.0"; sha256="1prv5h220i66jbmw6kjkg7ya3v133anz6zlgv4vvw1gpx3pj42bq"; depends=[agricolae dplyr DT emmeans FactoMineR ggplot2 lme4 purrr shiny stringi stringr tibble tidyr]; };
   intkrige = derive2 { name="intkrige"; version="1.0.1"; sha256="1p3fn5nzn1iliy025187k590qrsw3z3d47p67gzwwd6h050yrl86"; depends=[gstat raster Rcpp RcppArmadillo Rdpack sp]; };
   intmed = derive2 { name="intmed"; version="0.1.2"; sha256="0amcqzinj35yvb9nfy808bz098dqmnds13z335lgqm6sykriyjpl"; depends=[doParallel dplyr foreach MASS mice stringr tibble]; };
   intrinsicDimension = derive2 { name="intrinsicDimension"; version="1.2.0"; sha256="0cka20ifxx9njnvp18bzhrvmh3cwjnxkc0a23qzi43dahc51ijbc"; depends=[yaImpute]; };
@@ -10924,12 +11008,12 @@ in with self; {
   irrCAC = derive2 { name="irrCAC"; version="1.0"; sha256="1j9z8vz5zcl51a8qq6maf9sw0dqaknkrai7gp31mzag7b6vwms06"; depends=[]; };
   irrICC = derive2 { name="irrICC"; version="1.0"; sha256="0vi5g97kbyhwxz242d1hpqf11izd3kmlzh3997v07md1llcsp6s3"; depends=[]; };
   irrNA = derive2 { name="irrNA"; version="0.2.2"; sha256="1l7ln5ahwnjvvd5gmismwfvljkg6vpipgi7hlcdlqlxadl165pry"; depends=[irr]; };
-  irt = derive2 { name="irt"; version="0.1.3"; sha256="01hr3c9by13cif55xn6z4b9zi3k99lx8pf5qzrwj0hard0a6m936"; depends=[ggplot2 Rcpp]; };
+  irt = derive2 { name="irt"; version="0.2.5"; sha256="13cfmzr7bw5jbcwykvjli5lsnbcr7n8w6nljwsmnsa42fa7f2159"; depends=[Rcpp]; };
   irtDemo = derive2 { name="irtDemo"; version="0.1.4"; sha256="0rpwryybnj7b4bxn0mn1m496y85s2fpqdd78lmdl6jg1ck4j4pb3"; depends=[fGarch shiny]; };
   irtGUI = derive2 { name="irtGUI"; version="0.2"; sha256="1hyabm9wvld1b1gvcn02yyd8j1wrpfmpxkcj505az64lqj4p7yj0"; depends=[irtoys magrittr mirt psych readxl shiny shinycssloaders shinydashboard WrightMap writexl]; };
   irtProb = derive2 { name="irtProb"; version="1.2"; sha256="12wnvbzkh0mx9i3iyh1v2n2f2wjsjj7ad3dgv9xj949x4nbz16j0"; depends=[lattice moments]; };
   irtoys = derive2 { name="irtoys"; version="0.2.1"; sha256="0h6iiaxikhbxhbyksbjnb09qdxinlkwr2v9yzs5wslbni14paq5q"; depends=[ltm sm]; };
-  irtplay = derive2 { name="irtplay"; version="1.6.2"; sha256="05jqghz30lfbl4ac5p2dnqd3aphkzyy1j382qjyvcw629gahybbp"; depends=[dplyr ggplot2 gridExtra Matrix pbapply purrr reshape2 rlang statmod tidyr]; };
+  irtplay = derive2 { name="irtplay"; version="1.6.3"; sha256="026h519ycyvn55c8gih2snwrljnvjwsylkdr5jpapviv8304mdj0"; depends=[dplyr ggplot2 gridExtra Matrix purrr reshape2 rlang statmod tidyr]; };
   irtrees = derive2 { name="irtrees"; version="0.1.0"; sha256="03jmfyx1ia987zhi74fmmcdz70wnm8c7z5z30rwzd1cs11dijjwv"; depends=[]; };
   irtreliability = derive2 { name="irtreliability"; version="0.1-1"; sha256="15qs8bvgrwajj5kfd57rd34l1p2805ilyd7w60ngrqc14d6az9d2"; depends=[fastGHQuad ltm mirt]; };
   isa2 = derive2 { name="isa2"; version="0.3.5"; sha256="17vm0906szhrh2k5x694vwcfijbzmd1v3axpszfybc0lgds437cv"; depends=[lattice]; };
@@ -10938,7 +11022,7 @@ in with self; {
   isdals = derive2 { name="isdals"; version="2.0-4"; sha256="15p432fskdz2r8523cw122mfhvrq8vdsdsrd0kz9yfin4b5z3zfh"; depends=[]; };
   isdparser = derive2 { name="isdparser"; version="0.4.0"; sha256="05xkffmiiyhas5hzdjdylbrvh6fjc2fjh7s00iwjxkp4ba7rwq3g"; depends=[data_table lubridate tibble]; };
   isingLenzMC = derive2 { name="isingLenzMC"; version="0.2.5"; sha256="1pd1s3a1rv7vlxd5db1pgwdjps8w5im4zz2h3qzal9cwbis0hb51"; depends=[]; };
-  islasso = derive2 { name="islasso"; version="1.4.0"; sha256="1h5425qb6gm3an944rpb5g8bsmsznrqyp37w0as0x22wvp7l0jhr"; depends=[glmnet Matrix]; };
+  islasso = derive2 { name="islasso"; version="1.4.1"; sha256="05wgjwqi6529ws0mqiqhairqs2ya62s2xzgb0g06bi772syxf9qw"; depends=[glmnet Matrix]; };
   ismev = derive2 { name="ismev"; version="1.42"; sha256="19giigxwf62cdkf7mglsca649n2ignb9bxyg9zl7im1vm3ngnmqd"; depends=[mgcv]; };
   isni = derive2 { name="isni"; version="1.3"; sha256="02a4vbhk26w796kxsyzqfp3bqxn64byfd5x5qma09lmdaxzmm71m"; depends=[Formula lme4 matrixcalc mvtnorm nlme nnet]; };
   isnullptr = derive2 { name="isnullptr"; version="1.0.1"; sha256="0kwjxq59n3qncdw63vsdvz7v5mzbl5lmckdfgiiw35pzmahnxzh9"; depends=[]; };
@@ -10949,12 +11033,13 @@ in with self; {
   isobxr = derive2 { name="isobxr"; version="1.0.1"; sha256="18kjymp7lkdnmzsl9cdgqk6x1njqwgp9rsf7z3gi683yfjli7p3g"; depends=[data_table deSolve dplyr DT fs ggplot2 ggrepel metR qgraph R_utils readxl rlang shiny shinyFiles shinyjs shinythemes stringr writexl]; };
   isocalcR = derive2 { name="isocalcR"; version="0.0.2"; sha256="0ryg80jfakday1flrqv801rqi29v85qv0yrw3hijrh3rvj8pj7pa"; depends=[dplyr]; };
   isocat = derive2 { name="isocat"; version="0.2.6"; sha256="1d6pi2l1lfi4226890lsfa02v0df1mc8gi214icsbk4fid4jygsx"; depends=[foreach magrittr plyr raster sp]; };
-  isocir = derive2 { name="isocir"; version="2.0-6"; sha256="0dkxdx2g1c579q97r45shws2gylkwqlvrhmc14ddmzi45xhxlql6"; depends=[circular combinat TSP]; };
+  isocir = derive2 { name="isocir"; version="2.0-7"; sha256="09cy79zxxj96a3q0izm83yrsmfxkpnqg7w1mcibfglgjg83a8lz3"; depends=[circular combinat TSP]; };
   isodistrreg = derive2 { name="isodistrreg"; version="0.1.0"; sha256="0na7jipwzr16afvz2l6wxh62mv0mrq1ma1qwxnys83zhr0dca099"; depends=[Matrix osqp Rcpp]; };
+  isogeochem = derive2 { name="isogeochem"; version="1.0.9"; sha256="1x7wi04r68564yavvnj4d0ir48avccwdp0aw4d8cgg8r8f5p5fjj"; depends=[]; };
   isokernel = derive2 { name="isokernel"; version="0.1.0"; sha256="04mrbq2822yhcq4q82xwm61a38zsk6w55jgjkp0xnardpv8a39pb"; depends=[Matrix RANN]; };
   isopam = derive2 { name="isopam"; version="0.9-13"; sha256="0y1yy0922kq5jxyc40gz8sk9vlzwfkfg5swmc6lk4007g9mgc8fm"; depends=[cluster vegan]; };
   isopat = derive2 { name="isopat"; version="1.0"; sha256="0fznvgycyd35dh7pbq1xhp667gsficlmycn5pcrqcbs89069xr1s"; depends=[]; };
-  isoreader = derive2 { name="isoreader"; version="1.3.1"; sha256="15141sbq2wjdv6ykbdxc4p4qjl7rhfwws6km7aa3z81flynv5vgg"; depends=[dplyr future glue lubridate magrittr progress purrr R_utils readr rlang stringr tibble tidyr tidyselect UNF vctrs]; };
+  isoreader = derive2 { name="isoreader"; version="1.3.2"; sha256="0d0h57imbis7g58gdn7j0pwmc1s71b8ymqwqkg3byagd0yhrxf0w"; depends=[dplyr future glue lubridate magrittr progress purrr R_utils readr rlang stringr tibble tidyr tidyselect UNF vctrs]; };
   isotone = derive2 { name="isotone"; version="1.1-0"; sha256="0alk0cma5h3yn4w2nqcahprijsm89b0gby9najbngzi5vnxr6nvn"; depends=[nnls]; };
   isotonic_pen = derive2 { name="isotonic.pen"; version="1.0"; sha256="1lgw15df08f4dhrjjfr0jqkcvxwad92kflj2px526pcxwkj7cj3i"; depends=[coneproj Matrix]; };
   isotracer = derive2 { name="isotracer"; version="1.0.4"; sha256="1zqn7clqrpy112kvi31f4qpv3y5j07jvngg143dryrn3j2j81yav"; depends=[BH coda data_table dplyr latex2exp magrittr pillar purrr Rcpp RcppEigen rlang rstan rstantools StanHeaders tibble tidyr tidyselect]; };
@@ -10964,11 +11049,10 @@ in with self; {
   istacr = derive2 { name="istacr"; version="0.1.3"; sha256="14nhd3v8l827mb1fxfhsxklzxbf4316ijp2qkc99qp7ydmxbk0rd"; depends=[curl jsonlite]; };
   isva = derive2 { name="isva"; version="1.9"; sha256="05qx9q0kg4ma23v4abhihw0vz017nq6hv2jzsiqx4d20ngh1dl4z"; depends=[fastICA JADE qvalue]; };
   italy = derive2 { name="italy"; version="0.1.0"; sha256="0is90xp6980ja12jzi3816jq1y90ifcw6cvfmybb7invj6rr1cks"; depends=[]; };
-  itan = derive2 { name="itan"; version="1.0"; sha256="082vh5gvh8hgyhk8nswll16ldhnp0pfpxnz1yx05zsc4nzvm92cf"; depends=[ggplot2 reshape]; };
+  itan = derive2 { name="itan"; version="2.0.1"; sha256="0bvdi18dmjvxf5wrvipsf1q2bsmiwh2pb57kyrb2zlkfz3hz53ww"; depends=[ggplot2 reshape]; };
   itcSegment = derive2 { name="itcSegment"; version="0.8"; sha256="032wj34313m3wigdfalq356srdzg0cvnvxnaxwxws6bc44r78izf"; depends=[maptools raster rgeos sp]; };
   itdr = derive2 { name="itdr"; version="1.0"; sha256="1113lr17m370ipg3sxghqvk4fj36bgqs5bfvnli8rss2ffyzfin0"; depends=[MASS]; };
   iteRates = derive2 { name="iteRates"; version="3.1"; sha256="1dycmlm3vldc60wz2jjdfbla14383911zfahgal5mx8whxwq95c5"; depends=[ape apTreeshape geiger gtools MASS partitions VGAM]; };
-  itemanalysis = derive2 { name="itemanalysis"; version="1.0"; sha256="1ksbd69mca45jlr2gpars87cf4jfm5rx6sz009sv6a83x831x5rq"; depends=[car ggplot2 polycor]; };
   iterLap = derive2 { name="iterLap"; version="1.1-3"; sha256="079d4hxf1ha8pgibzb4r1yk7xqpzndd7hjbp8294qb26jvvcnd8q"; depends=[quadprog randtoolbox]; };
   iterators = derive2 { name="iterators"; version="1.0.13"; sha256="190i1y2493v5c9z8978rb3idlwsjymy67k1assa9znljqbj313kp"; depends=[]; };
   iterpc = derive2 { name="iterpc"; version="0.4.2"; sha256="06q7l8mz8ws4nn6gb0whnlqs8my2n8z2d2g8fvv3cxd28904dg9q"; depends=[arrangements gmp iterators]; };
@@ -10981,7 +11065,6 @@ in with self; {
   iva = derive2 { name="iva"; version="0.1.0"; sha256="0dchb263ygilxapwsw2gpl18z12wcjsz8zz5fg7h068hmcysa88g"; depends=[Formula ucminf]; };
   ivdesc = derive2 { name="ivdesc"; version="1.1.0"; sha256="06jqnh6i8szygc00d6ys0wwvh9br33zmwc430q2ann1qmrkaxxj5"; depends=[knitr purrr rsample]; };
   ivdesign = derive2 { name="ivdesign"; version="0.1.0"; sha256="02v2cnljz3gk7mb8q3p1i54rj6l02r4pirznnrshy092zvrvr26m"; depends=[]; };
-  ivdoctr = derive2 { name="ivdoctr"; version="1.0.0"; sha256="18pca08cww4x13j3ks0mr84c3jkigf09s7wrh5y8pc11ypyxbgp1"; depends=[AER coda data_table MASS Rcpp RcppArmadillo rgl sandwich]; };
   ivfixed = derive2 { name="ivfixed"; version="1.0"; sha256="0a26zrkvz0ffq4zxdx5vhr1nvsi9c15s6gvc1zy2pddjz31x2xi5"; depends=[Formula]; };
   ivitr = derive2 { name="ivitr"; version="0.1.0"; sha256="0fc5svmkxv0s20ipwbvkvmmh1w5gb1g6va496fa9qbf99wifnmrx"; depends=[dplyr nnet randomForest rlang]; };
   ivmodel = derive2 { name="ivmodel"; version="1.9.0"; sha256="1yb2k6ciwcfiylnlb9ncz30mz10f73rxqrxk8s099ypr5k6myajk"; depends=[Formula ggplot2 Matrix reshape2]; };
@@ -11011,16 +11094,18 @@ in with self; {
   janeaustenr = derive2 { name="janeaustenr"; version="0.1.5"; sha256="1wyn4qc28a3sval8shmyi2d7s4nl3jh96s8pzq871brxcmrncbwr"; depends=[]; };
   janitor = derive2 { name="janitor"; version="2.1.0"; sha256="09nqm957m2f54y2l30619b58x4i7gxwvr2lwg5kly5xy1ya1a1nn"; depends=[dplyr lifecycle lubridate magrittr purrr rlang snakecase stringi stringr tidyr tidyselect]; };
   jaod = derive2 { name="jaod"; version="0.3.0"; sha256="071j3xqk7gzsic1sk8v0pwmqv6pav0nj9vvbskss3l1gczy80dfr"; depends=[crul jsonlite tibble]; };
+  japanmesh = derive2 { name="japanmesh"; version="0.1.0"; sha256="0hnl9x9vmmjsfm209wvvx1cs5f4yc5if4ldx09dlk14wfvhdhn39"; depends=[dplyr geosphere magrittr purrr rlang sf stringr tibble tidyr units vctrs]; };
+  japanstat = derive2 { name="japanstat"; version="0.1.0"; sha256="0rd2q23s9r075ns47ccmr8fjvdcv2jncjs9w1c668s597cwkf6lb"; depends=[cli dplyr httr pillar progress purrr rlang stringi stringr tibble tidyr vctrs]; };
   jarbes = derive2 { name="jarbes"; version="1.7.2"; sha256="0qjnx0m65f6a8r6y5mwplaq518lrsf73k8zbf728v857nbjlhf2l"; depends=[ggExtra ggplot2 gridExtra MASS mcmcplots R2jags rjags]; };
   jcext = derive2 { name="jcext"; version="0.1.1"; sha256="02zppiyq3gy551zi1g00gam1w4y1wgzn5zi9wrcz8yw915dla0ix"; depends=[ggplot2 maps RColorBrewer rworldmap sp stringr]; };
   jcolors = derive2 { name="jcolors"; version="0.0.4"; sha256="18dmjcrci0z1xy2kglrarzm0idr9g3nhbbw7f1ijls3i0piqdri6"; depends=[ggplot2 scales]; };
-  jcp = derive2 { name="jcp"; version="1.1"; sha256="1b4z1h4ygf39cg870q08ahzi4ccrlrxp6g97y1qiff5pf9xyp1jc"; depends=[]; };
+  jcp = derive2 { name="jcp"; version="1.2"; sha256="120hhysgnb5992ss2ays7ksyy0xb251lsxgnxihc11h2rqg6wqv8"; depends=[]; };
   jds_rmd = derive2 { name="jds.rmd"; version="0.3.0"; sha256="0xrs0xabh0m9ax9praiwj1l7z6mb53q53pqvcgwqw7xld6kkgzh7"; depends=[bookdown rmarkdown]; };
   jeek = derive2 { name="jeek"; version="1.1.1"; sha256="15n0k0i1wwp72g8zqrjmglnckab3p65q3rnpg6d6h8hjcpv82i7g"; depends=[igraph lpSolve pcaPP]; };
   jenga = derive2 { name="jenga"; version="1.0.0"; sha256="1lnqvq979yw3im2cll2bynqafgcs81ndqkzi37smys4fnlb7kyi6"; depends=[abind ggplot2 imputeTS lubridate modeest moments narray philentropy purrr readr scales stringr tictoc]; };
   jetpack = derive2 { name="jetpack"; version="0.5.0"; sha256="17dixhg5nwv2fhp7gvcc927kfxzj07x288g6ywbba1mphk9j5nam"; depends=[desc docopt remotes renv]; };
   jetset = derive2 { name="jetset"; version="3.4.0"; sha256="0c99h5npsv2gf5d59s4qhkaqmjhbwa3prcykk24wzhnpfq6y6xhp"; depends=[AnnotationDbi org_Hs_eg_db]; };
-  jfa = derive2 { name="jfa"; version="0.6.0"; sha256="1kcwjdzz31firrdh5kz5h1wyq9faf5k4y3jg5d7gjw0rzzhfw662"; depends=[extraDistr]; };
+  jfa = derive2 { name="jfa"; version="0.6.1"; sha256="1f0y13kh3mi5x50wsw5yp88l6d4874nrp0fdpi6nashcffznk8zg"; depends=[extraDistr]; };
   jgcricolors = derive2 { name="jgcricolors"; version="1.0.0"; sha256="1lg6yzqly5y2cf396b6rvfqplnfyz9v9ay2g4q9m110mng5ln96l"; depends=[ggplot2 knitr markdown RColorBrewer stringr]; };
   jiebaR = derive2 { name="jiebaR"; version="0.11"; sha256="08v64xwr9jp4vh88x7y935khh4cmj8rwsjaxfd2c67n0445qppmd"; depends=[jiebaRD Rcpp]; };
   jiebaRD = derive2 { name="jiebaRD"; version="0.1"; sha256="1wadpcdca4pm56r8q22y4axmqdbb2dazsh2vlhjy73rpymqfcph4"; depends=[]; };
@@ -11037,7 +11122,7 @@ in with self; {
   jmv = derive2 { name="jmv"; version="2.0"; sha256="0fhjp3ih46r34yiqxbd2kpwp88nhyrqfwh729l14sj3aw142nlbi"; depends=[afex BayesFactor car emmeans GGally ggplot2 ggridges GPArotation jmvcore lavaan MASS multcomp mvnormtest nnet PMCMR psych R6 ROCR vcd vcdExtra]; };
   jmvReadWrite = derive2 { name="jmvReadWrite"; version="0.2.2"; sha256="1i9gl79pdr73mkzpqbainsrwa942nvmzmflcy7mcp8lli7xbcpsm"; depends=[rjson]; };
   jmvconnect = derive2 { name="jmvconnect"; version="2.0.0"; sha256="1q412v8z0wbiqab4czabg75w976591lh59gbbhqz1avkas3jjhf2"; depends=[BH evaluate httr jmvcore rappdirs Rcpp]; };
-  jmvcore = derive2 { name="jmvcore"; version="1.8"; sha256="00kcb581bs3r291wq365d53lvjqgjpp5krpi3zqbxvdb12d5xdqc"; depends=[base64enc jsonlite R6 rlang stringi]; };
+  jmvcore = derive2 { name="jmvcore"; version="2.2"; sha256="009hkg378vfkzxbz323m7zfmfyh0j742xf4381qb6s81v3wmg4dq"; depends=[base64enc jsonlite R6 rlang stringi]; };
   job = derive2 { name="job"; version="0.3.0"; sha256="0d7pw3q5lqlgmav1vx63y8l6gdav96656bg378wj001rx5gx052h"; depends=[digest rstudioapi]; };
   jocre = derive2 { name="jocre"; version="0.3.3"; sha256="1i9n3r16pq6r4sy3fc1rxpil5ws8v2is0xdxafinvwr1hzkv1gz6"; depends=[boot KernSmooth plyr TSP]; };
   joinXL = derive2 { name="joinXL"; version="1.0.1"; sha256="1l76bckjz5r1kdsh0s10i0gpca12rkfkp14346fn7avdcw73v23i"; depends=[data_table openxlsx R_utils rChoiceDialogs Rcpp readxl rJava timeDate timeSeries]; };
@@ -11054,17 +11139,17 @@ in with self; {
   jomo = derive2 { name="jomo"; version="2.7-2"; sha256="1sbcpacxnxbzwa8rr9x2bq7hh0s3sw6yznr90dkp43n6xk5xaqir"; depends=[lme4 MASS ordinal survival]; };
   jordan = derive2 { name="jordan"; version="1.0-1"; sha256="1d0my0lf8bmlmygz9f23skywzsrhy4xaykyrblbmhb00l0vxpa5s"; depends=[emulator mathjaxr onion]; };
   josaplay = derive2 { name="josaplay"; version="0.1.3"; sha256="0q6kjk3mjxwbqvq3zz0ylpi1viznp9pxzngqpjzv5sibv0ndh0lf"; depends=[magrittr utf8]; };
-  jose = derive2 { name="jose"; version="1.1.0"; sha256="0663n7kbxijy403fj8jd567kq3lv3wzp42fk9ng4dwpn14wdc8j9"; depends=[jsonlite openssl]; };
+  jose = derive2 { name="jose"; version="1.2.0"; sha256="09k6wnnqlsbmlag4156rcsnavph52grqagkax9kd1sxgpknril3v"; depends=[jsonlite openssl]; };
   journalabbr = derive2 { name="journalabbr"; version="0.3.0"; sha256="1q1dmvx4b55bbd2qn920kmi962ignj2h36y7f22bqi5kcgzfgx9d"; depends=[dplyr httr knitr purrr rlang rmarkdown shiny stringi stringr tibble]; };
   joyn = derive2 { name="joyn"; version="0.1.3"; sha256="0f6dgcbh7qvk97vyykyncf0nlspjhyppwywx2hk3h9gzh323c7zq"; depends=[cli data_table glue rlang]; };
   jpeg = derive2 { name="jpeg"; version="0.1-9"; sha256="0wihj538wdnr71wdldym83qadb4kh68a6rkallwbh2f25r27b881"; depends=[]; };
   jpmesh = derive2 { name="jpmesh"; version="2.0.2"; sha256="1rq8xqngizgib5lq60zkpd744f7lf8q69dzhxwlbnhirysnvp1p7"; depends=[leaflet magrittr memoise miniUI purrr rlang sf shiny tibble units vctrs]; };
-  jqr = derive2 { name="jqr"; version="1.2.1"; sha256="0ywyy846lpn3bw4v3zh3n33c9g6gc9m99knc78bq3wypcafvhzf7"; depends=[lazyeval magrittr]; };
+  jqr = derive2 { name="jqr"; version="1.2.2"; sha256="1v3qjqblwn15mlw3cgmrmh78kcckqrj54wnfyfhrfxdsiqi5d0dk"; depends=[lazyeval magrittr]; };
   jquerylib = derive2 { name="jquerylib"; version="0.1.4"; sha256="04a40v4znpj98j7y6009d74a6g9dchj5rr3p08cgz9p3rlfw3g7h"; depends=[htmltools]; };
   jrc = derive2 { name="jrc"; version="0.5.0"; sha256="0ab8kks0i5cqj2p15hf9zinj3hdji2nj63j134q26bdf4hdvvza3"; depends=[httpuv jsonlite mime R_utils R6 stringi stringr]; };
   jrich = derive2 { name="jrich"; version="0.60-35"; sha256="1y486bfqmfg3f22wm0lfk3lh20ljgi8qrgn5jji0f417wh48nf0x"; depends=[ape]; };
   jrt = derive2 { name="jrt"; version="1.0.1"; sha256="023i0xqz8mhnjnii92vjw64mjnnlf8jaji99i4c2vxcr7m83jm0r"; depends=[directlabels dplyr ggplot2 ggsci irr mirt psych tidyr]; };
-  jrvFinance = derive2 { name="jrvFinance"; version="1.4.2"; sha256="12x5k3xk4f33jn1czqvh651gf1n255128dihdiqqpj0229gcb138"; depends=[]; };
+  jrvFinance = derive2 { name="jrvFinance"; version="1.4.3"; sha256="0g3w65avys5chni0zlahzwqgv09z9na08yhay385ax33ddwrcrjv"; depends=[]; };
   js = derive2 { name="js"; version="1.2"; sha256="0s5rj845255a4fzv4h76gcnnqyl5cg3c03r2ay3f00jxnxvvigcg"; depends=[V8]; };
   jsTree = derive2 { name="jsTree"; version="1.2"; sha256="06mmz55brm6w19vnlk1w8qaz0n3czlyl4fs62nzgdlsdjn8pad1h"; depends=[data_table htmltools htmlwidgets jsonlite]; };
   jsTreeR = derive2 { name="jsTreeR"; version="1.4.0"; sha256="0gvrp7qmjd8qikb0vd72fb43csd7505szjkxghbzbpp65n14z55r"; depends=[base64enc fontawesome htmltools htmlwidgets jquerylib miniUI R_utils rstudioapi shiny shinyAce]; };
@@ -11077,7 +11162,7 @@ in with self; {
   jsonlite = derive2 { name="jsonlite"; version="1.7.2"; sha256="1lhzcpz9clwq04i5m6jzkvw9x03pwlqrixv4l9xzchjr8d84nd86"; depends=[]; };
   jsonstat = derive2 { name="jsonstat"; version="0.0.2"; sha256="0p0d3snl1971p5ikrkmwqrjjh4fy0b89qk3rnd1dayfb0r80xnnj"; depends=[cli dplyr jsonlite rlang]; };
   jsontools = derive2 { name="jsontools"; version="0.1.0"; sha256="13i1g8lmzgs7hd0xay4gm8z2myzbjzi73fwp9x4f4f9mywj7zl5s"; depends=[bit64 DBI glue jsonlite magrittr pillar purrr rlang RSQLite tibble tidyselect vctrs withr]; };
-  jsonvalidate = derive2 { name="jsonvalidate"; version="1.3.1"; sha256="1qp1wb4js0hpdlcp2z6amslm9hvbgbfr7b6jkp67bgcignqz3pf4"; depends=[V8]; };
+  jsonvalidate = derive2 { name="jsonvalidate"; version="1.3.2"; sha256="0myvm93azl6mj60l8fp91qa3ln3nnwj4p48xli8k215sm6zhhv1b"; depends=[V8]; };
   jstable = derive2 { name="jstable"; version="1.0.7"; sha256="1hs202z49aazsadr0jb67wk43i18y3h1aw0xflfmvirxjxr63xm8"; depends=[coxme data_table dplyr geepack labelled lme4 magrittr purrr survey survival tableone tibble]; };
   jti = derive2 { name="jti"; version="0.8.0"; sha256="15rx44psz5hbpqzlmwnmqzzdf6488n17mbhyh52wyaaa70gk9ndh"; depends=[igraph Rcpp RcppArmadillo sparta]; };
   jtools = derive2 { name="jtools"; version="2.1.4"; sha256="1zbzhr7bz735b8pvqjxhqnmh3sl12xvpz5fpkmjngvwi4yz5873r"; depends=[crayon generics ggplot2 magrittr pander pkgconfig rlang tibble]; };
@@ -11093,6 +11178,7 @@ in with self; {
   kStatistics = derive2 { name="kStatistics"; version="2.1"; sha256="018xlxcykjfi2kagf7jvavry8l7i146rqbnb4lz7ccc5q44schwd"; depends=[]; };
   kableExtra = derive2 { name="kableExtra"; version="1.3.4"; sha256="1c5vzy95cbz36jwyssr927qicrayifinv861rvnmg4nghb1gl7q9"; depends=[digest glue htmltools knitr magrittr rmarkdown rstudioapi rvest scales stringr svglite viridisLite webshot xml2]; };
   kader = derive2 { name="kader"; version="0.0.8"; sha256="15f2swgngw5rdjdsh5kd55wm2nivlfs8pv4mdn0b75qihwgg1zkk"; depends=[]; };
+  kairos = derive2 { name="kairos"; version="1.0.0"; sha256="1yi2igflvjjyma1kgrnnnkvmz46axz3dil02l7n26l569bhnp0lh"; depends=[arkhe dimensio extraDistr ggplot2 rlang]; };
   kamila = derive2 { name="kamila"; version="0.1.2"; sha256="01rwalv2qigxl3j3jyhrdbxlarwf0xdc8xa6c42sgcl6qpna5vn7"; depends=[abind gtools KernSmooth plyr Rcpp]; };
   kangar00 = derive2 { name="kangar00"; version="1.4"; sha256="0cgyxvgk6bxvh77y9vl0p024dya9ffr9fhmwlcxbysbr4p3kyiaj"; depends=[bigmemory biomaRt CompQuadForm data_table igraph KEGGgraph lattice sqldf]; };
   kantorovich = derive2 { name="kantorovich"; version="3.0.0"; sha256="1iwbxj2c1085pc57zkb5lklkd0bvx0i27a94r526zv7bxaf0kgrd"; depends=[CVXR gmp lpSolve rcdd Rglpk slam]; };
@@ -11124,7 +11210,7 @@ in with self; {
   kendallRandomWalks = derive2 { name="kendallRandomWalks"; version="0.9.4"; sha256="1mfqblvsn9p6gdcnbypfpzk0xzn6bz1ajbrkz2dap5w35dia3kxa"; depends=[actuar dplyr ggplot2 tibble]; };
   kequate = derive2 { name="kequate"; version="1.6.3"; sha256="1ii3wlypm2qqkfxr3z1sdnmgc43h2zzlw6v4h2xxjdlznzxkp3mr"; depends=[equateIRT ltm mirt]; };
   kerTests = derive2 { name="kerTests"; version="0.1.3"; sha256="0981q4n4wrv62x4b8jccj5hx58n975rls3sn3s0mz7ajhh1xxbi9"; depends=[]; };
-  keras = derive2 { name="keras"; version="2.6.1"; sha256="0xg4n9sp1pf2yfbba3lb3fzr5gbdwlhv4j1h5njfqmjy5984b8ij"; depends=[ellipsis generics glue magrittr R6 reticulate rlang tensorflow tfruns zeallot]; };
+  keras = derive2 { name="keras"; version="2.7.0"; sha256="004z9aajc0b7lw7g68ri7ndabdwbylmnlyvmziljmm29z6fzk8y5"; depends=[ellipsis generics glue magrittr R6 reticulate rlang tensorflow tfruns zeallot]; };
   kerasR = derive2 { name="kerasR"; version="0.6.1"; sha256="1yi7710vgcwz0jhishbga41sc6qyk83a0avmq01dvqjsz3cdfsfc"; depends=[reticulate]; };
   kerastuneR = derive2 { name="kerastuneR"; version="0.1.0.3"; sha256="1lky84mgppsbn2wn0livx2j18x5vg92mskhb3pyf4ig9qyfxgjkk"; depends=[crayon data_table dplyr echarts4r keras magick plotly reticulate rjson RJSONIO rstudioapi tensorflow tidyjson]; };
   kerdiest = derive2 { name="kerdiest"; version="1.2"; sha256="16xj2br520ls8vw5qksxq9hqlpxlwmxccfk5balwgk5n2yhjs6r3"; depends=[chron date evir]; };
@@ -11143,13 +11229,13 @@ in with self; {
   keyholder = derive2 { name="keyholder"; version="0.1.5"; sha256="0sr0rcchvwflqf2xj9j8j35ng52ichgvp1ix57v4ah91dlpj9i5s"; depends=[dplyr rlang tibble]; };
   keyplayer = derive2 { name="keyplayer"; version="1.0.3"; sha256="0j4n46r9ivkbzqz8g22dq2bpmx7bs05yb5qp27p9jnfh5x19v2ds"; depends=[igraph matpow sna]; };
   keypress = derive2 { name="keypress"; version="1.2.0"; sha256="19l33519f726i3q20y34v1aavrn4fpj3zn5caij3l9q2asw2kqk2"; depends=[]; };
-  keyring = derive2 { name="keyring"; version="1.2.0"; sha256="1rqz29ycsmfqixhnzhhfd89j9ivnmp7x2z3vxdla622zmakbcy4c"; depends=[askpass assertthat filelock openssl R6 rappdirs sodium yaml]; };
+  keyring = derive2 { name="keyring"; version="1.3.0"; sha256="1j8l6nmh4dr70kwybiais8yh687fdwrj134xynq68igw1b1rm8ga"; depends=[askpass assertthat filelock openssl R6 rappdirs sodium yaml]; };
   keyringr = derive2 { name="keyringr"; version="0.4.0"; sha256="04f0z6mqj75l5qhiab0zvjsvz3jz1bp6dfazkpgihjmls5k11dnh"; depends=[stringr]; };
   keys = derive2 { name="keys"; version="0.1.1"; sha256="0jq7c70hyxpaxkrciy2jz4bf2mdcbcnmpjniwqffk1lkaxr0ni9b"; depends=[htmltools jsonlite shiny]; };
   kfda = derive2 { name="kfda"; version="1.0.0"; sha256="0861hzry55gj8ykdd8cwil1wb7234pkmipp4v1749fpmzggq1xgi"; depends=[kernlab MASS]; };
   kfigr = derive2 { name="kfigr"; version="1.2.1"; sha256="0kys4j2n2n1v918v877798m34q431fpz0p0s6gxnfqnn26z2hy14"; depends=[knitr]; };
   kgc = derive2 { name="kgc"; version="1.0.0.2"; sha256="14zbcimnglh5jj07dcaxp1dfjaz8syswy29nf8z39qmslv1hg9kk"; depends=[plyr shiny shinythemes]; };
-  kgrams = derive2 { name="kgrams"; version="0.1.0"; sha256="1p4nbpxv8pklk6i164f6psdldqv8dw6840jjhmapmlw6gqjqy1fh"; depends=[Rcpp RcppProgress Rdpack rlang]; };
+  kgrams = derive2 { name="kgrams"; version="0.1.2"; sha256="0m1cw55lr0bl83p379wh3103d1rw9933lvf457kvxy56r1164l2h"; depends=[Rcpp RcppProgress Rdpack rlang]; };
   kgschart = derive2 { name="kgschart"; version="1.3.5"; sha256="1gdsrmnv8z99cldvig7grlq8gsbv3wpx7zdamw85lz563n4ln94d"; depends=[abind deepnet ggplot2 gridExtra magrittr matrixStats nnet png shiny stringr]; };
   khroma = derive2 { name="khroma"; version="1.7.0"; sha256="146kc7mazzznaih9sjqf7cylpxq08lnhijmrapqyhk00f3i6h52n"; depends=[]; };
   kibior = derive2 { name="kibior"; version="0.1.1"; sha256="1acrdlqbklhhd69i1gija8r3nsdgcnfvk5ngz7b2ndy2f58w5ynf"; depends=[Biostrings data_table dplyr elastic jsonlite magrittr purrr R6 rio Rsamtools rtracklayer stringr tibble tidyr]; };
@@ -11165,21 +11251,20 @@ in with self; {
   kirby21_fmri = derive2 { name="kirby21.fmri"; version="1.7.0"; sha256="1z2l6bn53mwkll9ki4169lqlz6wcfp29xzdrqyw606j2xrs4wc22"; depends=[kirby21_base]; };
   kirby21_t1 = derive2 { name="kirby21.t1"; version="1.7.0"; sha256="0bv8rrk9jh02h3gill1g2w246j4zv98cjchz7i2c092lvqps8szs"; depends=[kirby21_base]; };
   kissmig = derive2 { name="kissmig"; version="1.0-3"; sha256="1pi1x3gdbqrhr1km1hqj15k8wyrgs697fnxgjgxga1irbn8bi482"; depends=[raster]; };
-  kit = derive2 { name="kit"; version="0.0.9"; sha256="01n4y5n5jzi41wd6ddgswplnc7kjks3449v4da5kizg3ygb14v4n"; depends=[]; };
+  kit = derive2 { name="kit"; version="0.0.10"; sha256="05gsvz95cfmw5pkbdcd2b9pqfjpnq78jhv722hl1x8lx7ivw2mla"; depends=[]; };
   kitagawa = derive2 { name="kitagawa"; version="3.1.0"; sha256="190xi88zc3vybpyawayh8m78sgcn951n3axmc2fc67sic458r02s"; depends=[Bessel kelvin psd]; };
   kiwisR = derive2 { name="kiwisR"; version="0.2.0"; sha256="14fzf72swy221jcbiplss9dh7g03idrpbbyvbxp4bcqpxwr6hbsa"; depends=[dplyr httr jsonlite lubridate purrr tibble]; };
   kknn = derive2 { name="kknn"; version="1.3.1"; sha256="1nzkg3dxaiqp87p56wm895qx5xn86hv5hjr73qvl1yiaxiq0x112"; depends=[igraph Matrix]; };
   klaR = derive2 { name="klaR"; version="0.6-15"; sha256="1bhgkq6spjawy5lsh663rnby4fzrx4k2qwqp4ci4p9pq8g35pzjv"; depends=[combinat MASS questionr]; };
   klassR = derive2 { name="klassR"; version="0.1.7"; sha256="1y2jbpb7yyah62a6ii61xllskz5h4jcnw7sxmwzfnw6jpnd5m3gr"; depends=[httr jsonlite tm]; };
   klausuR = derive2 { name="klausuR"; version="0.12-10"; sha256="12fjs4dnwaki8sz718xgsg8qrqhsgf87cs0bylf0p3f5k8hrmk4b"; depends=[polycor psychometric xtable]; };
-  kldtools = derive2 { name="kldtools"; version="1.1"; sha256="1nip4vn7bfacl567f79nvafzgc6bzv48z5p02l679hmjf5l9xl9s"; depends=[]; };
+  kldtools = derive2 { name="kldtools"; version="1.2"; sha256="1r6j6ddylzxsfmymnf8hp7sm8c2ckr8xrdz75xlkgp4fgay106r2"; depends=[]; };
   klexdatr = derive2 { name="klexdatr"; version="0.1.2"; sha256="141xs03sb0ixhjpr388fwf5h124mqkbj0k1xqw0whdhrm5051qsz"; depends=[sf]; };
   klic = derive2 { name="klic"; version="1.0.4"; sha256="1ggsdq8xcg6hi12rq356myhngx3j475gpwlvpynm1581r4z0lkbk"; depends=[cluster coca Matrix pheatmap RColorBrewer]; };
   klsh = derive2 { name="klsh"; version="0.1.0"; sha256="1r354fd5da6mp7v3048ii09hnghhfwdg6pvmx2ib0cr88ql431sy"; depends=[blink plyr Rcpp SnowballC stringi]; };
   klustR = derive2 { name="klustR"; version="0.1.0"; sha256="1g2q6h3cbm8v3gqz0f6v8bl5na9972k38d94czjfxmx4cv7wfgx8"; depends=[htmlwidgets jsonlite]; };
   km_ci = derive2 { name="km.ci"; version="0.5-2"; sha256="1l6kw8jppaa1802yc5pbfwwgac56nhwc9p076ivylhms4w7cdf8v"; depends=[survival]; };
   kmc = derive2 { name="kmc"; version="0.2-4"; sha256="0y8bdgdxsz53fiqc2yr39agndxs4zxj7mmplj273map9k0slnnqk"; depends=[emplik Rcpp rootSolve]; };
-  kmcudaR = derive2 { name="kmcudaR"; version="1.1.0"; sha256="16dkv9ag5375zc23nqakbg7v6knxvh1pips9rjsls0d7rw2bg1bs"; depends=[Rcpp RcppEigen]; };
   kmed = derive2 { name="kmed"; version="0.4.0"; sha256="0lm22wrvv8pfndy1ii1wp54makfp37hism3z9hp700zhpml4nnch"; depends=[ggplot2]; };
   kmer = derive2 { name="kmer"; version="1.1.2"; sha256="0jimn9r0abglwxdl1zqz0lxa99cmj6haydkxjzqfbpx9by80wnww"; depends=[openssl phylogram Rcpp]; };
   kmi = derive2 { name="kmi"; version="0.5.5"; sha256="1j6fyi004fl97l569sn05pb7bmc2jx5hi0blfd896qi309s9qkd8"; depends=[mitools survival]; };
@@ -11196,6 +11281,7 @@ in with self; {
   knn_covertree = derive2 { name="knn.covertree"; version="1.0"; sha256="0msfcmwydws7q7m5jdb0dxab0nkbl7mq5llg6v3r4qrnlvrdggvz"; depends=[Matrix Rcpp RcppEigen]; };
   knnIndep = derive2 { name="knnIndep"; version="2.0"; sha256="1fwkldgs2994svf3sj90pwsfx6r22cwwa22b30hdmd24l8v9kzn7"; depends=[]; };
   knnp = derive2 { name="knnp"; version="2.0.0"; sha256="0qgq8la3zndlb1wwqv9b2kw52y9ns36pi4ds68pkm81bhzq5nqis"; depends=[doParallel foreach forecast parallelDist plyr]; };
+  knnwtsim = derive2 { name="knnwtsim"; version="0.1.0"; sha256="0b902w012lkj18piyfn8mkjh45fdvw19v3wpsw5ng9gk4j7g4mwj"; depends=[]; };
   knockoff = derive2 { name="knockoff"; version="0.3.3"; sha256="1nswpchpk1ccvhlgz1h3ka3c65mjfrrykfgv824fyncmfxaz8lmw"; depends=[corpcor glmnet gtools Matrix Rdsdp RSpectra]; };
   knotR = derive2 { name="knotR"; version="1.0-2"; sha256="0kd1b9wibpwyaanz9ny61qgfvcg4d3rzpy05sfshlpp0b1y8d3xj"; depends=[]; };
   kntnr = derive2 { name="kntnr"; version="0.4.4"; sha256="1af5qhj82dixf1qcbz3sfj52pzgy8gnafzifwxnhrp7vpn4rnv6m"; depends=[base64enc dplyr httr jsonlite lubridate purrr rlang rstudioapi stringr tibble tidyr]; };
@@ -11216,7 +11302,7 @@ in with self; {
   kriens = derive2 { name="kriens"; version="0.1"; sha256="1qi65k9fsbbkbw0w40rv60p5ygrvr10rmlyxdaqa5bdpcmrbly5z"; depends=[]; };
   krige = derive2 { name="krige"; version="0.6.1"; sha256="0xcx7glarqjb25bchs3wflw5lyy9xrbksirrdm35vdsxgif62ydz"; depends=[coda Rcpp]; };
   kriging = derive2 { name="kriging"; version="1.1"; sha256="04bxr34grf2nlrwvgrlh84pz7yi0r8y7dc2wk0v5h5z6yf5a085w"; depends=[]; };
-  krippendorffsalpha = derive2 { name="krippendorffsalpha"; version="1.1"; sha256="0d06rwg3ab383x4194n5s50n5nc6ns16jhcfn8kzzcj7j9swz5kl"; depends=[]; };
+  krippendorffsalpha = derive2 { name="krippendorffsalpha"; version="1.1-1"; sha256="1vaqwimlmbxh2jy08f3bkpb9r4fz6gkx6cpzjkgiyspjaqhc8a1a"; depends=[]; };
   krm = derive2 { name="krm"; version="2020.5-20"; sha256="1b6477cjv5k30djvrlbmwn91ghgwk24cfd58cb0q80xqhgiqvrzb"; depends=[kyotil]; };
   ks = derive2 { name="ks"; version="1.13.2"; sha256="02gnpyjqdlj6dl2x9i7mmks4f5nrh85j3h0kfa0v1v6wi8blx7kw"; depends=[FNN kernlab KernSmooth Matrix mclust mgcv multicool mvtnorm plot3D pracma]; };
   ksNN = derive2 { name="ksNN"; version="0.1.2"; sha256="06x471hck95xqy7rbh53ibhzh6kfjra7y9ipqdj2rqdkmfdj72q8"; depends=[Rcpp]; };
@@ -11258,7 +11344,7 @@ in with self; {
   lacm = derive2 { name="lacm"; version="0.1.1"; sha256="01zd4zsas60kzxx4wsnxs6qqc72i4djwj8m7ryjyx5nrxgpjaixc"; depends=[numDeriv statmod]; };
   lacrmr = derive2 { name="lacrmr"; version="1.0.3"; sha256="0zpfc4a7krwkwbf31idpmdzks4qassqnhxk1f9fcq1qjzqzhjkvi"; depends=[dplyr httr janitor jsonlite magrittr sjmisc stringr]; };
   lactcurves = derive2 { name="lactcurves"; version="1.1.0"; sha256="1ksllpgz519gzrs8gwfgg7743vj3j7ikmbwgisdjs77sdxxl7xyz"; depends=[orthopolynom polynom]; };
-  lacunaritycovariance = derive2 { name="lacunaritycovariance"; version="1.1-1"; sha256="0a3mn4gj5w63h01k3l49phn557fdjynw58dblq5hz9621gqdll1n"; depends=[RcppRoll spatstat spatstat_core spatstat_geom spatstat_linnet]; };
+  lacunaritycovariance = derive2 { name="lacunaritycovariance"; version="1.1-2"; sha256="15s05igbrvsl0jlc84750l4i1pahigjacvq6b6gjj9gbyjfs6cbm"; depends=[RcppRoll spatstat spatstat_core spatstat_geom spatstat_linnet]; };
   laeken = derive2 { name="laeken"; version="0.5.2"; sha256="1p3ccbaydlr52p8qmgmm2l6kryvq6jjjx7mqn2vv0gpjaxqhyy92"; depends=[boot MASS]; };
   laercio = derive2 { name="laercio"; version="1.0-1"; sha256="0la6fxv5k9zq4pyn8dxjiayx3vs9ksm9c6qg4mnyr9vs12z53imm"; depends=[]; };
   lagged = derive2 { name="lagged"; version="0.3-0"; sha256="0bm3d6pgb25rw1njarki60j4d7mx7rni25a21iw1l650slg7sscm"; depends=[]; };
@@ -11268,10 +11354,11 @@ in with self; {
   lamW = derive2 { name="lamW"; version="2.1.0"; sha256="09f93gf9q3bxa2a2g5kgzc69s6izn8z243160280vbqzsy55m28q"; depends=[Rcpp RcppParallel]; };
   lambda_r = derive2 { name="lambda.r"; version="1.2.4"; sha256="1mh1g0gsd58gng0hb29vww2yqb2jfs07kba5kxnnqck5j3izwlnj"; depends=[formatR]; };
   lambdaTS = derive2 { name="lambdaTS"; version="1.0.0"; sha256="0bd1kvvw573vagx7k2nylawgaf826bvqms4ar56cx54hys0blmm5"; depends=[abind bestNormalize bizdays fANCOVA ggplot2 imputeTS lubridate modeest narray purrr readr scales stringr tictoc torch]; };
+  lambdr = derive2 { name="lambdr"; version="1.1.0"; sha256="02piqnw1n444sa396bbmplf3br7bh70qkn4dwvkzxj558ddv9l83"; depends=[httr jsonlite logger]; };
   lamme = derive2 { name="lamme"; version="0.0.1"; sha256="1x9jl79iqikpjixajly1k8w2nkzskns2m0v242giknl0ikw298h1"; depends=[]; };
-  landest = derive2 { name="landest"; version="1.0"; sha256="1lp5sfqk0n7i23fmwjgzsabml1fsji1h9xq5khxzaz1bzqv1s08g"; depends=[survival]; };
+  landest = derive2 { name="landest"; version="1.1"; sha256="1gcjxn9g3zq37glb92xgv2r9w5yq6hwsmgfmv2ijr66lla0qxsf4"; depends=[survival]; };
   landmap = derive2 { name="landmap"; version="0.0.13"; sha256="04pycbi0pf2n92xzs650h2dc8yzqfvaxn8m6yxqprf3y7qjgys9c"; depends=[forestError gdalUtils geoR glmnet kernlab maptools matrixStats mlr nnet parallelMap ParamHelpers plyr ranger raster rgdal rpart sp spdep xgboost]; };
-  landpred = derive2 { name="landpred"; version="1.0"; sha256="1bl17xkx18i8i7arccnjmxvhjn4yiy7w64hg4n0xmhk8pg0l3mrg"; depends=[survival]; };
+  landpred = derive2 { name="landpred"; version="1.1"; sha256="074zzlwj1pml7v7y47z67j5sp3xvsngsf0asan613q1bpvc4yq49"; depends=[survival]; };
   landsat = derive2 { name="landsat"; version="1.1.0"; sha256="15ymmwhkgw0lqyy2sryss3nsmkrjf4cc0bzlsr41vh5c2636srfd"; depends=[lmodel2 mgcv rgdal sp]; };
   landsat8 = derive2 { name="landsat8"; version="0.1-10"; sha256="169b5ka98ka9chbmksz6syaygc9wgl8i2gz1h2xkxj3lk9jcg01r"; depends=[rgdal sp]; };
   landscapeR = derive2 { name="landscapeR"; version="1.2"; sha256="1zm5mj861ycbc2m28yjqnkifx8grc4l718mf8r422m78jfakvcjy"; depends=[raster Rcpp]; };
@@ -11284,7 +11371,7 @@ in with self; {
   languageserversetup = derive2 { name="languageserversetup"; version="0.1.2"; sha256="05i8kcp1zpbkrqpq5vxxvxk9p7phyngxl0q6v76va0i7qnmy1v7a"; depends=[]; };
   lans2r = derive2 { name="lans2r"; version="1.1.0"; sha256="0svqaz1j8vhfnm31bfp4gqshdj73wmljva4kxcv2qajmcdiqbd2s"; depends=[dplyr ggplot2 R_matlab reshape2 rlang tidyr]; };
   lar = derive2 { name="lar"; version="0.1-2"; sha256="0qda0y4ag10kg83wxs3z754kc8c1dg2rwciy64klk7an4ln43i5b"; depends=[data_table treemap xlsx]; };
-  lares = derive2 { name="lares"; version="5.0.2"; sha256="0lrw1mw6qwhv7mcpr42gwjrafjv7il5wk0js8gqn440qgjlywm28"; depends=[dplyr ggplot2 h2o httr jsonlite lubridate magrittr openxlsx patchwork pROC rlang rpart rpart_plot rvest stringr tidyr yaml]; };
+  lares = derive2 { name="lares"; version="5.0.3"; sha256="1fbpcjmj3f0ff39jh5kkk7lj7596zkpv46khq62yr6a0dbw5j9df"; depends=[dplyr ggplot2 h2o httr jsonlite lubridate magrittr openxlsx patchwork pROC rlang rpart rpart_plot rvest stringr tidyr yaml]; };
   largeList = derive2 { name="largeList"; version="0.3.1"; sha256="0csijzlxajj0rh24w5n7fs6ss301zr6zfv5khyq4a9g437bwhc2i"; depends=[]; };
   lars = derive2 { name="lars"; version="1.2"; sha256="0blj44wqrx6lmym1m9v6wkz8zxzbjax2zl6swgdczci0ixb5nx34"; depends=[]; };
   lasso2 = derive2 { name="lasso2"; version="1.2-22"; sha256="1l87djh539m444p5nl9975dd3v5nc7j8af9rj4xr54h5d0mbcbjv"; depends=[]; };
@@ -11328,6 +11415,7 @@ in with self; {
   lbfgs = derive2 { name="lbfgs"; version="1.2.1"; sha256="0p99g4f3f63vhsw0s1m0y241is9lfqma86p26pvja1szlapz3jf5"; depends=[Rcpp]; };
   lbfgsb3c = derive2 { name="lbfgsb3c"; version="2020-3.2"; sha256="07mhiaxhjjma5c65z3pz7wchgsqn4b19labzyq25ncnmj319fxrg"; depends=[numDeriv Rcpp RcppArmadillo]; };
   lbiassurv = derive2 { name="lbiassurv"; version="1.1"; sha256="1i6l3y4rasqpqka7j39qjx22wjbilgc9pkp05an52aysfvfxy193"; depends=[actuar]; };
+  lbm = derive2 { name="lbm"; version="0.9.0.2"; sha256="0mn0k5liwrnbsl5lf4k5b8j2y79bkk689v8wrvcmj3l7q2abaxhf"; depends=[]; };
   lbreg = derive2 { name="lbreg"; version="1.3"; sha256="1z9vixf6sl0k9lizngc3859lk32srkk1d8y133sl6s37ppmqb4s2"; depends=[MASS]; };
   lcars = derive2 { name="lcars"; version="0.3.7"; sha256="1hjlcl57aazcm5hgjiwmi116rk13z2gr65mpgcvyc0p9xih8bvdf"; depends=[ggplot2 shiny trekcolors]; };
   lcc = derive2 { name="lcc"; version="1.1.3"; sha256="0hbv0nv421ldk10b4qr8dq7ww4w1342sl3s8gw0slfigxbbxv4bh"; depends=[doRNG doSNOW foreach ggplot2 hnp nlme]; };
@@ -11349,6 +11437,7 @@ in with self; {
   ldatuning = derive2 { name="ldatuning"; version="1.0.2"; sha256="0367y6k5i4sccwfcm89xyc62qblrlwnm6hsa2jf346rnrfz9hkkc"; depends=[ggplot2 reshape2 Rmpfr scales slam topicmodels]; };
   ldbod = derive2 { name="ldbod"; version="0.1.2"; sha256="1ylzkswnhf4jnjx2ijasy49pj78ffx333za0bx2fnf3g85kicqiv"; depends=[mnormt RANN]; };
   ldbounds = derive2 { name="ldbounds"; version="1.1-1.1"; sha256="10rmkidvvhwnrkc62c5ld44xhbvx1k8mch28h1yryakn8gznp3p8"; depends=[lattice]; };
+  lddmm = derive2 { name="lddmm"; version="0.1.0"; sha256="19y2249fj1k1qq4lp6qzbd3jjwlz2li1710k3l7j7a9gg3rq9gfs"; depends=[dplyr ggplot2 gtools LaplacesDemon latex2exp plyr RColorBrewer Rcpp RcppArmadillo RcppProgress reshape2 rgen tidyr]; };
   ldhmm = derive2 { name="ldhmm"; version="0.5.1"; sha256="1jwgxwzz56n6hhpp1qks1x0jsfbrjgfsl6h5sp7498l4d2f279ij"; depends=[ecd ggplot2 moments optimx scales xts zoo]; };
   ldsep = derive2 { name="ldsep"; version="2.1.2"; sha256="1kpqmwphkhw9l2s8mz4s6mjfjlysivpzqvhpncw5nphhgdqd22j6"; depends=[abind ashr corrplot doParallel foreach lpSolve matrixStats modeest Rcpp RcppArmadillo]; };
   ldsr = derive2 { name="ldsr"; version="0.0.2"; sha256="0wmxpglad1mk2c1gi9kxmh149r8ad0l8i2xlfs1hdjb6a4wxsklr"; depends=[data_table foreach MASS Rcpp RcppArmadillo]; };
@@ -11385,22 +11474,22 @@ in with self; {
   learnrbook = derive2 { name="learnrbook"; version="1.0.2"; sha256="13jd5j597pv3ainy6xx7ra402ymrh25hgfjzq0csq6d86n5fz3aj"; depends=[]; };
   learnstats = derive2 { name="learnstats"; version="0.1.1"; sha256="1sa064cr7ykl4s1ssdfmb3v1sjrnkbwdh04hmwwd9b3x0llsi9vv"; depends=[ggplot2 Rcmdr shiny]; };
   leastcostpath = derive2 { name="leastcostpath"; version="1.8.0"; sha256="1106wh2yy048jimiyb3gwm9d00jfq4wk0dnj4a5sfk90rkg28acw"; depends=[gdistance Matrix pbapply raster rgdal rgeos sp]; };
-  ledger = derive2 { name="ledger"; version="2.0.7"; sha256="07shnvawahm9bvwz37fynkp7sd69y9gc1mjhn7x8883jz8k4mjic"; depends=[dplyr rio rlang stringr tibble tidyr tidyselect]; };
+  ledger = derive2 { name="ledger"; version="2.0.9"; sha256="0ynr1g7vfkabl78zjnshyxixk45g28bi9h1p4zjfl83009yhqjwx"; depends=[dplyr rlang stringr tibble tidyr tidyselect]; };
   leerSIECyL = derive2 { name="leerSIECyL"; version="1.0.2"; sha256="1zx28gpnys9mmhq7wwljfnq92wj1h1vxgqiirnfmn36z942nvmxl"; depends=[RCurl]; };
-  lefko3 = derive2 { name="lefko3"; version="3.8.0"; sha256="1x8nrm6zvgkv7j0jrq69lvl0a3g9ysvibq8457azy7k5nzsla4zl"; depends=[glmmTMB lme4 MASS MuMIn pscl Rcpp RcppArmadillo SparseM stringr VGAM]; };
+  lefko3 = derive2 { name="lefko3"; version="4.0.1"; sha256="06dng2y2ip629nf94h9lwksrwgllhh69dqvpxq9d6d289nr88s6a"; depends=[glmmTMB lme4 MASS MuMIn pscl Rcpp RcppArmadillo SparseM stringr VGAM]; };
   legco = derive2 { name="legco"; version="0.1.4"; sha256="0fd1d2zf510lyrwclsy57d8lgqprk6p8c6ghxglgm6gbx9d2yrgg"; depends=[dplyr httr jsonlite]; };
   legion = derive2 { name="legion"; version="0.1.0"; sha256="0lpxg3jx9ll3748aixr84yl44ig8arqj6axzr80402kzjndc2z3h"; depends=[greybox nloptr pracma Rcpp RcppArmadillo smooth statmod zoo]; };
   legislatoR = derive2 { name="legislatoR"; version="1.0"; sha256="1553hpb2cmv3hw6v4c7qwgg8n18jwx101yaqnmaaiv8gfyh6j43m"; depends=[curl dplyr]; };
   legocolors = derive2 { name="legocolors"; version="0.3.1"; sha256="0ds9c2x0x590yk7mrjm4hh7k72p51slssg7jlprd71mw6hry91ma"; depends=[]; };
   leiden = derive2 { name="leiden"; version="0.3.9"; sha256="03gaxpcab3a1av5lk8r5ll1s858gvyx5ndknci1sia96w1v44xc1"; depends=[igraph Matrix reticulate]; };
-  leidenAlg = derive2 { name="leidenAlg"; version="0.1.1"; sha256="1540h4jak4g482d3g9iqrgp388mmbw3640swh9bsk6xhg1j8r0s7"; depends=[igraph Matrix Matrix_utils Rcpp RcppArmadillo RcppEigen sccore]; };
+  leidenAlg = derive2 { name="leidenAlg"; version="1.0.0"; sha256="14bswisavxsvczcibzh8j5135z3bq5z6ajd9n8s1dn957g3sk8va"; depends=[igraph Matrix Matrix_utils Rcpp RcppArmadillo RcppEigen sccore]; };
   leiv = derive2 { name="leiv"; version="2.0-7"; sha256="15ay50886xx9k298npyksfpva8pck7fhqa40h9n3d7fzvqm5h1jp"; depends=[]; };
   lemon = derive2 { name="lemon"; version="0.4.5"; sha256="1y3ljidhqdakxlya2npj2w0az820g8kw6gl1cfm4f0cxvzgd1ly4"; depends=[ggplot2 gridExtra gtable knitr lattice plyr rlang scales]; };
   lenses = derive2 { name="lenses"; version="0.0.3"; sha256="08akwzlc5gk2rxbh9xp67n5ahdcld60932ascczjv0accrkxizhk"; depends=[magrittr rlang tidyselect]; };
   leontief = derive2 { name="leontief"; version="0.2"; sha256="1gy23047c6gci9m83yrb662d5685x1kky6m94w68swms59gdc6yp"; depends=[Rcpp RcppArmadillo]; };
   leri = derive2 { name="leri"; version="0.0.1"; sha256="1309v58xdw3p6y2wpnl64vgsds5kvfiary2a3fa041kz23jzbp3c"; depends=[ncdf4 raster]; };
   lero_lero = derive2 { name="lero.lero"; version="0.2"; sha256="03ll7jzcay0swwpmxyf0y9k2h8mxx4p5v3ggm9dgdz4j99934l70"; depends=[]; };
-  lessR = derive2 { name="lessR"; version="4.0.6"; sha256="1qw99fnb1zsvhgcxfjhj8snv7lzwlazpl586x16f9y9y61897vbv"; depends=[colorspace ellipse knitr lattice latticeExtra leaps openxlsx robustbase shiny viridisLite]; };
+  lessR = derive2 { name="lessR"; version="4.0.8"; sha256="1ryh2sijl55jlzj31wgrjymi2hl50xssh284qqb3fcwkw47adf6g"; depends=[colorspace ellipse knitr lattice latticeExtra leaps openxlsx robustbase shiny viridisLite]; };
   lest = derive2 { name="lest"; version="1.1.0"; sha256="1d69kvdl31crv4ik8bwylq3s3f4skzrjc4x49c79w443g64n2jp9"; depends=[]; };
   lestat = derive2 { name="lestat"; version="1.9"; sha256="1skxymdf3ncmdbskh7711xxgwsmwxfxnl52gcgw06jscx6s6wrsd"; depends=[MASS]; };
   letsR = derive2 { name="letsR"; version="4.0"; sha256="07l1wgwnkqnvh47ssg62vj88vgml52n0934w00pjxdk90kk3c5zs"; depends=[fields geosphere maps maptools raster rgdal rgeos sp XML]; };
@@ -11410,7 +11499,7 @@ in with self; {
   lexiconPT = derive2 { name="lexiconPT"; version="0.1.0"; sha256="0w53gnr29nzc1ib54rnxdycs0c5f7vpv586qmvxxzy4ar16kisaq"; depends=[]; };
   lfactors = derive2 { name="lfactors"; version="1.0.4"; sha256="1r8qlwj3zsm233jfx9ag0q5g1knvjmbwl3785pwcd12zi6f68dcc"; depends=[]; };
   lfda = derive2 { name="lfda"; version="1.1.3"; sha256="0sk409jx4chs2wzhpfw7rlg9pwpdqg32ncfl3w243ypq73jq0qv3"; depends=[plyr rARPACK]; };
-  lfe = derive2 { name="lfe"; version="2.8-7"; sha256="0yzif44kjnlr2iva8l9vi0kw83kadw573i3x5xnam0s5mhha1hlp"; depends=[Formula Matrix sandwich xtable]; };
+  lfe = derive2 { name="lfe"; version="2.8-7.1"; sha256="0l4clxsh1s8zram1ad8ixzzganz82s7r6na93qlzm11zqkcfz8fn"; depends=[Formula Matrix sandwich xtable]; };
   lfl = derive2 { name="lfl"; version="2.1.2"; sha256="0qi84mmsxah6yjacf6q2grgd40nqkf75srcfwksacv90qz6bvm0x"; depends=[e1071 foreach forecast plyr Rcpp tseries zoo]; };
   lfmm = derive2 { name="lfmm"; version="1.1"; sha256="1v2sb2qghwcln3b5rpzhakg562izlzyxzvz49nz74y0rh2gx7g9i"; depends=[foreach ggplot2 knitr MASS purrr Rcpp RcppEigen readr rmarkdown RSpectra]; };
   lfstat = derive2 { name="lfstat"; version="0.9.4"; sha256="0lm9fyw45kdkkjldkmagykn9p3l3jlw2ky3h00f7j6rqkizjm6r0"; depends=[dygraphs lattice latticeExtra lmom lmomRFA plyr xts zoo]; };
@@ -11429,12 +11518,12 @@ in with self; {
   libbib = derive2 { name="libbib"; version="1.6.2"; sha256="1d6d4fc9bpj8lkkblqcccdcsf21136vdr38kzy91259z3525gvcg"; depends=[curl data_table pbapply stringr xml2]; };
   libcoin = derive2 { name="libcoin"; version="1.0-9"; sha256="1syrcdj5qg5m3zd3dlxgpfklswbalfg42w058dr09hnzqsvx0z9d"; depends=[mvtnorm]; };
   libgeos = derive2 { name="libgeos"; version="3.10.0-1"; sha256="0mvdz8lcmfriiy3rq9nwlrjy8lppfk174ibxnssmjzqmrqr035j4"; depends=[]; };
-  libr = derive2 { name="libr"; version="1.2.1"; sha256="0gc799lcwprjj0myn0fyh65lybynn1hl3x04xs7zxq1ijbcs8j9q"; depends=[crayon data_table dplyr haven openxlsx Rcpp readr readxl tibble]; };
+  libr = derive2 { name="libr"; version="1.2.2"; sha256="1b3wfkzmxvfjrapydm3i5kgld6vpl6b9ywbili8zygs3p5pfyp5b"; depends=[crayon data_table dplyr haven openxlsx Rcpp readr readxl tibble]; };
   librarian = derive2 { name="librarian"; version="1.8.1"; sha256="0bbgx9pdwcv64p6zdrw3m0893ar4bw6z90vhbgplp53l65cch548"; depends=[BiocManager remotes]; };
   librarysnapshot = derive2 { name="librarysnapshot"; version="0.1.2"; sha256="0v4x564zpm58kxs5n84bi6mcjhbzjg6a2lc30vsc8kbm3qy0nq38"; depends=[]; };
   libsoc = derive2 { name="libsoc"; version="0.7"; sha256="1r548rvj98wl0yp6jx5d2qhvy1y4883qp0w3jjk97vp07a1cywn8"; depends=[]; };
   libstableR = derive2 { name="libstableR"; version="1.0.2"; sha256="1gkcgbc8a7ks9x8mqmlz98hk55q3qy62izam7csz1s0r5dzsyqcr"; depends=[Rcpp RcppGSL]; };
-  lidR = derive2 { name="lidR"; version="3.2.2"; sha256="0nna76pi2q3zhydzsgqz8jk3rqgcgw3hr65lgllpn8daylqh4r8b"; depends=[BH data_table future geometry glue lazyeval raster Rcpp RcppArmadillo rgl rlas sf sp]; };
+  lidR = derive2 { name="lidR"; version="3.2.3"; sha256="0132vbfdppw9fr029w8c6lcfg8jxbfvb2y3p3wgs2n776c6y6wky"; depends=[BH data_table future geometry glue lazyeval raster Rcpp RcppArmadillo rgl rlas sf sp]; };
   lidaRtRee = derive2 { name="lidaRtRee"; version="3.1.0"; sha256="17k6gysypc91lx5701bvf4rvh10rrmmz7z6xlm09cchqfpkhlvch"; depends=[car gvlma imager leaps lidR raster reldist sp]; };
   lifecontingencies = derive2 { name="lifecontingencies"; version="1.3.7"; sha256="00vqbrv1y3hg8iqx6mfm7p81a23hf69kc20pzacsx93yqdh97841"; depends=[markovchain Rcpp]; };
   lifecourse = derive2 { name="lifecourse"; version="2.0"; sha256="1m8ihqvzhzpq2m2pdvh37bpq9pdbj23r3y0jkl3q8farh3qj473d"; depends=[TraMineR]; };
@@ -11446,7 +11535,7 @@ in with self; {
   lifx = derive2 { name="lifx"; version="0.2.0"; sha256="0p9ljd3s3lc1rkhzpp801izy9y52f0yc1dsrsxwx5gi89cnib596"; depends=[assertthat crayon curl httr jsonlite]; };
   liger = derive2 { name="liger"; version="2.0.1"; sha256="121ipwznm40x2xhhlxd20385va4nmvgni5dg24lbhyfn5sb3dsy1"; depends=[matrixStats Rcpp RcppArmadillo]; };
   lightgbm = derive2 { name="lightgbm"; version="3.3.1"; sha256="0hvpwirskzcd7ww47f9gllgl3wjvpghnwj8a41glpppwwaaxa0z4"; depends=[data_table jsonlite Matrix R6]; };
-  lightr = derive2 { name="lightr"; version="1.6.0"; sha256="1d1xrsra3ng5g9vlsvdgimfyx6kqdazwv8i787qh3nbavxfqjmay"; depends=[future_apply progressr xml2]; };
+  lightr = derive2 { name="lightr"; version="1.6.2"; sha256="1dq4gj4yxqxaqip2vy3jynxrsllqlcjlg9v83m0ilrf6nhnigm2i"; depends=[future_apply progressr xml2]; };
   lightsout = derive2 { name="lightsout"; version="0.3"; sha256="0ypniqf9wk35dd9j57wd7gxchr5hy25fwhmkndz2z8b9ajhm3c9b"; depends=[magrittr shiny shinyjs]; };
   likelihood = derive2 { name="likelihood"; version="1.7"; sha256="0q8lvwzlniijyzsznb3ys4mv1cqy7ibj9nc3wgyb4rf8676k4f8v"; depends=[nlme]; };
   likelihoodAsy = derive2 { name="likelihoodAsy"; version="0.51"; sha256="0qxwdf6npyj926zd2pbfscgz1z01hwgm6099h882d2l1sim2j9g7"; depends=[alabama cond digest nleqslv pracma Rsolnp]; };
@@ -11469,7 +11558,7 @@ in with self; {
   linearQ = derive2 { name="linearQ"; version="2.0"; sha256="0sx7bx0x1k193day5w1dbmc09kn5741pcilxijjn2y5aijhd5wk9"; depends=[Rcpp stepR]; };
   lineartestr = derive2 { name="lineartestr"; version="1.0.0"; sha256="0bzsywk97j2mmsi7pj9267za1q2601crynh9kszwj6xjbg08nvsm"; depends=[dplyr forecast ggplot2 Matrix readr sandwich tidyr viridis]; };
   linemap = derive2 { name="linemap"; version="0.2.0"; sha256="04nb0hmmikksp7ak4vdam9r2dpv7w3r5wkxxbjr7yk9pfq5gjncp"; depends=[sf]; };
-  lineup = derive2 { name="lineup"; version="0.38-3"; sha256="15m90cg700lq1w54adkmld876fpr41nhv1y0vqwbhwwfjgfxj700"; depends=[class qtl]; };
+  lineup = derive2 { name="lineup"; version="0.40"; sha256="01m50q9qdryav94rmspm4dk17m7kfcxb0p502cbxmnajklz3ajgg"; depends=[class qtl]; };
   lineup2 = derive2 { name="lineup2"; version="0.6"; sha256="0qkxwn30g0bjm9aq9a59pb3xq844qr43ribnk607zlf8lwbibsk2"; depends=[Rcpp]; };
   lingmatch = derive2 { name="lingmatch"; version="1.0.2"; sha256="1986vi8r105wsd27vzy7wq9w0flgmgigssa3p0j7xmgr4kmjkks4"; depends=[Matrix Rcpp RcppParallel]; };
   lingtypology = derive2 { name="lingtypology"; version="1.1.7"; sha256="1ykbjzv139vdlpyf2ka59whz1x98ingsj2z09lz4f5f8dasp7fn7"; depends=[jsonlite leaflet leaflet_minicharts stringdist]; };
@@ -11501,6 +11590,7 @@ in with self; {
   listdtr = derive2 { name="listdtr"; version="1.1"; sha256="13p27cx2w3qb1rcizrva2ib7x7sm310gasi7n5pvvd8rkpwaypzq"; depends=[ggplot2]; };
   listenv = derive2 { name="listenv"; version="0.8.0"; sha256="0ps8bk7zlhbviawrw7vw25skjq81hkk3ijyi6g74dmfqy8zsyapx"; depends=[]; };
   listviewer = derive2 { name="listviewer"; version="3.0.0"; sha256="0zirxdj58h43062f68h6nqcgmpnvdglxx3kjbs4i4k0z9wvqhx8r"; depends=[htmltools htmlwidgets shiny]; };
+  litRiddle = derive2 { name="litRiddle"; version="0.4.0"; sha256="0pq8140g0w03x38k0wv8ia83b8fvb9zfp1qmg0yp9apq20v1nzs5"; depends=[dplyr ggplot2]; };
   liteq = derive2 { name="liteq"; version="1.1.0"; sha256="0w3w9f6374qwvlrqknavqh9b38n5q1r6aw5zmz5lahvadalwdbwi"; depends=[assertthat DBI rappdirs RSQLite]; };
   litteR = derive2 { name="litteR"; version="0.9.1"; sha256="14giq4lp3g1srkj8y94y8sih11ix32fnh6nwaz3xvrx7jm2ic580"; depends=[dplyr fs ggplot2 purrr readr rlang rmarkdown stringr tidyr tidyselect yaml]; };
   littler = derive2 { name="littler"; version="0.3.14"; sha256="14iwwp6gdshz3igkq96sjfrhdgk3ia7cf9rng1ylsp7809v1xi1x"; depends=[]; };
@@ -11521,7 +11611,6 @@ in with self; {
   lmPerm = derive2 { name="lmPerm"; version="2.1.0"; sha256="1ss2hcfxqvfq4n6hypv7jp0n0apby9payxzaswaysr5368lkidn3"; depends=[]; };
   lmQCM = derive2 { name="lmQCM"; version="0.2.3"; sha256="0zld7gyng9kk3np62j8xfg951gvgsq2r8x3zmjfr2ykalw36kx5d"; depends=[Biobase genefilter progress]; };
   lmSubsets = derive2 { name="lmSubsets"; version="0.5-2"; sha256="1afdpcp3qiiprzc47cbckf49jd3f8ip81441ghgx0kfx54d1m305"; depends=[]; };
-  lmSupport = derive2 { name="lmSupport"; version="2.9.13"; sha256="0ln5c91mbxkymgnv2nw5m3nrm5bwckpikgb9x1qhmjc55m98wkb8"; depends=[AICcmodavg car gplots gvlma lme4 pbkrtest psych pwr]; };
   lmboot = derive2 { name="lmboot"; version="0.0.1"; sha256="1v7a3vlv0187mpg3y3pj7f3pbk1v5n6amw732chy10vdw5nmfkwd"; depends=[evd]; };
   lmds = derive2 { name="lmds"; version="0.1.0"; sha256="130azb0nc2wwxv0qi8v5s4rd02p9lc92zwn634pv7b8awbw81i65"; depends=[assertthat dynutils irlba Matrix]; };
   lme4 = derive2 { name="lme4"; version="1.1-27.1"; sha256="1i9f8kl2qj48j75dbn1vmwxz1xlbikdr7v2yq542w6dq74z8gyi5"; depends=[boot lattice MASS Matrix minqa nlme nloptr Rcpp RcppEigen]; };
@@ -11544,13 +11633,14 @@ in with self; {
   lmomRFA = derive2 { name="lmomRFA"; version="3.3"; sha256="113sz2lgb3yv3ayy3x831qww3d088yw2iyjrdc8jfhq6id1w9giq"; depends=[lmom]; };
   lmomco = derive2 { name="lmomco"; version="2.3.7"; sha256="1pxk3hpmihhzyy3yawmi7d6fq0zfxliz8lwsbr9jr1kahhhbw982"; depends=[goftest Lmoments MASS]; };
   lmreg = derive2 { name="lmreg"; version="1.2"; sha256="02a4nqqcfkjlq21mpk8abd4lj4ib2nps3ndf7zgmzygkd1z0df18"; depends=[MASS]; };
-  lmridge = derive2 { name="lmridge"; version="1.2"; sha256="091rznzh77bmsv7sw9xmsq6s9pnljyq7qyl74kgcxss718134jr3"; depends=[]; };
-  lmtest = derive2 { name="lmtest"; version="0.9-38"; sha256="0sr19bmw2cpagfvwg772m79wvl1i2hww1xfr69bzr3rr8pm2r8ij"; depends=[zoo]; };
+  lmridge = derive2 { name="lmridge"; version="1.2.1"; sha256="1wxgsrigyjh22aa4m1z5qs4ac168g1g1g1jnj154490znfqdqip0"; depends=[]; };
+  lmtest = derive2 { name="lmtest"; version="0.9-39"; sha256="126l0y7j2iy6g1w4zii1qkfcjq6wrnc3w2li0bz376smpryddy3i"; depends=[zoo]; };
   lmtp = derive2 { name="lmtp"; version="1.0.0"; sha256="04lmbb5j3ndjjdpb2yih0lxijzah6p45hv2jiva1l49p9jxwxw0i"; depends=[cli data_table future generics nnls origami progressr R6 SuperLearner]; };
   lmvar = derive2 { name="lmvar"; version="1.5.2"; sha256="0wrny8yzk5y4mzpri6xv5wibbnbaxm0195lcbk5jrl5l5gs99bn6"; depends=[Matrix matrixcalc maxLik]; };
   lmviz = derive2 { name="lmviz"; version="0.2.0"; sha256="0sl2k02m5bxkb4jg8y666ln0xxhr4dhsfz9hlp55p9smlhycl5s2"; depends=[car lmtest MASS mgcv rgl scatterplot3d shiny shinyjs]; };
   lncDIFF = derive2 { name="lncDIFF"; version="1.0.0"; sha256="012dwrcp0pny59hvzj7mnyyc3nijcjgxc0dyx7ab2fknp9bhs5w8"; depends=[]; };
   loa = derive2 { name="loa"; version="0.2.47.1"; sha256="1xzcf3cvk3zrlqknrw5j19g7z4lw74ahw7cwavx7c9b007kk7f5c"; depends=[lattice MASS mgcv OpenStreetMap plyr png RColorBrewer rgdal RgoogleMaps sp]; };
+  loadflux = derive2 { name="loadflux"; version="0.0.2"; sha256="08lbpd0nwwck36bkklmqx62lyj9p1ywwk80v1qx7f6zhgfjx8pj4"; depends=[dplyr dygraphs ggplot2 lubridate rlang tidyr tsibble xts zoo]; };
   loadings = derive2 { name="loadings"; version="0.1.1"; sha256="0nickkdjkfsjy8k52243181fdd1jvj3rgpzkcfjsmacbjcdl169g"; depends=[]; };
   loadr = derive2 { name="loadr"; version="0.1.3"; sha256="01nsjsv7c8grsizfisczqwjrz5saff0pgn7716ig4i8nzargvz7a"; depends=[]; };
   lobstr = derive2 { name="lobstr"; version="1.1.1"; sha256="0vkif17825x33cz8r89j0qph4wj5l8fzfgl8nh2g7m2v140cxjdq"; depends=[crayon Rcpp rlang]; };
@@ -11576,9 +11666,9 @@ in with self; {
   loe = derive2 { name="loe"; version="1.1"; sha256="1n16pgfxg9vcn729xxjbbvavg2ywbdcch9v2ph8nv3z7psc0q46c"; depends=[MASS]; };
   loewesadditivity = derive2 { name="loewesadditivity"; version="0.1.0"; sha256="0j9vvh2ys09hy2k3mbrlf0p493ymrxvfsdcjw0p6rlls54z9lqqc"; depends=[dplyr ggplot2 gridExtra magrittr metR rlang rootSolve tidyr viridis]; };
   log = derive2 { name="log"; version="1.1.0"; sha256="04cl8qb2ivdili89h4cghcjqywpkz85v48g2vkg6hdlimcd63wff"; depends=[cli crayon R6]; };
-  log4r = derive2 { name="log4r"; version="0.4.1"; sha256="0qxzmbrjasa766vgqxn7a2ifnpny7zchvb2b3mi8gkbznxlixyif"; depends=[]; };
+  log4r = derive2 { name="log4r"; version="0.4.2"; sha256="0d7yxp3h7iy0miaprgp16n5vbxk0mvy8aci8r0mmml6wcl2h4jlj"; depends=[]; };
   logKDE = derive2 { name="logKDE"; version="0.3.2"; sha256="09gachibj0klqa9ijw572lwphbh9qj6zqray5byq1dh7zsiq516q"; depends=[pracma Rcpp]; };
-  logNormReg = derive2 { name="logNormReg"; version="0.4-0"; sha256="10b6a7z2mq0vrpg3sy4m5g8xaw3zs5k0zsbngxqmjmln99big9ad"; depends=[]; };
+  logNormReg = derive2 { name="logNormReg"; version="0.5-0"; sha256="0lv5m6yz1v8pi1svw9qh3gkq3r0lp13qhx3p6g6yvzqwd0px0pip"; depends=[]; };
   logOfGamma = derive2 { name="logOfGamma"; version="0.0.1"; sha256="0r7di0l646ycfmdjk8hli6b0v7qj0i8z3i8i7rwd3fsblb2q22vd"; depends=[]; };
   logbin = derive2 { name="logbin"; version="2.0.5"; sha256="1v8bzhh8bm8704sv68k7dmbs0m7f656s91jhc0p7a6w7vqlmv803"; depends=[glm2 iterators itertools2 Matrix turboEM]; };
   logconcens = derive2 { name="logconcens"; version="0.17-0"; sha256="0zrnyb25iyr3cm83b3xp21nipv1q0l1kp7nwjaja3173z7wwlvvr"; depends=[]; };
@@ -11589,7 +11679,8 @@ in with self; {
   logging = derive2 { name="logging"; version="0.10-108"; sha256="13gd40ygx586vs6xcp6clg69a92aj8zxlk1rn3xzkx8klfjimjc5"; depends=[]; };
   loggit = derive2 { name="loggit"; version="2.1.1"; sha256="1fkr2fnfazxhm3pq0gysxhz6aqsdx38d017y0xbmlsg9hfgfx6q1"; depends=[]; };
   logiBin = derive2 { name="logiBin"; version="0.3"; sha256="06y5bqm3j6xdr1cd607v2sqkghnd2bv6bvxc6cz8dvp8jabqa0zm"; depends=[data_table doParallel foreach iterators partykit]; };
-  logib = derive2 { name="logib"; version="0.1.1"; sha256="0s9fmdqklmffhvqmlznbrmxvpn63w77zqmk41y0q12hh81npib64"; depends=[lubridate readxl]; };
+  logib = derive2 { name="logib"; version="0.1.2"; sha256="09c528wrgyk0cg1flx2fsl53q4v9442rr44g9kh5jznqs788608b"; depends=[lubridate readxl]; };
+  logicDT = derive2 { name="logicDT"; version="1.0.1"; sha256="0gdzrbjq2pyfhsm8840q8dvrcfj3kvzkc8grgvpv05j11fpzwyq3"; depends=[]; };
   logihist = derive2 { name="logihist"; version="1.0"; sha256="1q3322rh3g31c5i80aw54pln0m1jgxmbx30cn31nlh3ijkvnpq9a"; depends=[ggplot2]; };
   logistf = derive2 { name="logistf"; version="1.24"; sha256="0syrg4v1cik0vn2h7452n84nbpdbhs5h0g5k9jaqkdr1zq8x6qb5"; depends=[formula_tools mgcv mice]; };
   logistic4p = derive2 { name="logistic4p"; version="1.5"; sha256="0h0dxyklqc95ykyril1a3d2bdnszj5l9dqbxzh2wbfmk06prvh8b"; depends=[MASS]; };
@@ -11599,8 +11690,8 @@ in with self; {
   logitr = derive2 { name="logitr"; version="0.4.0"; sha256="0j3p0lkwdj700nfjpkc7n4kf3xjz7ak69q8rziilpiqg7dxf1502"; depends=[MASS nloptr randtoolbox]; };
   loglognorm = derive2 { name="loglognorm"; version="1.0.1"; sha256="0rhx769a5nmidpbpngs2vglsbkpgw9badz3kj3jfmpj873jfnbln"; depends=[]; };
   logmult = derive2 { name="logmult"; version="0.7.3"; sha256="10dmvvwlaw8dn6h0343d8apn7rlc2b8nys3f38x9wlvd9xhhlwxm"; depends=[gnm qvcalc]; };
-  lognorm = derive2 { name="lognorm"; version="0.1.9"; sha256="0mx7wgqpiprwvh5srf8z9f8glz2kgh8l15b2pydb4bvqx1m54kxa"; depends=[Matrix]; };
-  logr = derive2 { name="logr"; version="1.2.6"; sha256="0zz5ahk4n5b2qsa3zkh1s84dg86ihgflv3rn23j29wp44m7kl226"; depends=[this_path withr]; };
+  lognorm = derive2 { name="lognorm"; version="0.1.10"; sha256="021g3g7hyxcrj2lzqfjxj2ypcn8c6qminr0l6sdydynvjdjjv0pc"; depends=[Matrix]; };
+  logr = derive2 { name="logr"; version="1.2.7"; sha256="0ns4i2snvcfbrb00wlp570j9y67rb4vmxgyz1vzllskz3klraqly"; depends=[this_path withr]; };
   logspline = derive2 { name="logspline"; version="2.1.16"; sha256="12hkdi77vkic05p2vhap025xdcg1n53ywm239v18713pihdlj63l"; depends=[]; };
   lokern = derive2 { name="lokern"; version="1.1-9"; sha256="1fms79bb4y6ryzmxhpc544zh52xgd879gpcigc24bjhd7whl9nry"; depends=[sfsmisc]; };
   lolR = derive2 { name="lolR"; version="2.1"; sha256="0lrmn9lzyyfr1y0i7qp6xfpdxyisbkajwg0jkrqkiw687psnh2rc"; depends=[abind ggplot2 irlba MASS pls robust robustbase]; };
@@ -11611,7 +11702,7 @@ in with self; {
   longRPart2 = derive2 { name="longRPart2"; version="0.2.3"; sha256="1vqcsxi6c4hqrpk3ns7yhghfryin1psxl38qkz2xz8cvyn58f685"; depends=[formula_tools ggplot2 MASS nlme rpart]; };
   longclust = derive2 { name="longclust"; version="1.2.3"; sha256="1g45d5pak2vhbjrcmxxrk9jyrdxkqwy45phzpsw6b2bjyrgr4i7g"; depends=[]; };
   longit = derive2 { name="longit"; version="0.1.0"; sha256="08d7pfwd2anx6cdgpyzrn5na3s75z6plbxb11774zcxyzg81rz69"; depends=[AICcmodavg missForest R2jags rjags]; };
-  longitudinal = derive2 { name="longitudinal"; version="1.1.12"; sha256="1d83ws28nxi3kw5lgd5n5y7865djq7ky72fw3ddi1fkkhg1r9y6l"; depends=[corpcor]; };
+  longitudinal = derive2 { name="longitudinal"; version="1.1.13"; sha256="046w3xbr535c5jyd68adv42a7limxp1mv57b5w6w673w707lmw2p"; depends=[corpcor]; };
   longitudinalData = derive2 { name="longitudinalData"; version="2.4.1"; sha256="0lnvcfgj721bawl1ciz0jw83mfsnzkhg6jn824vr3qdm4rbib2vd"; depends=[class clv misc3d rgl]; };
   longitudinalcascade = derive2 { name="longitudinalcascade"; version="0.3.2.1"; sha256="03nqglxyz6qfalxdnyh2aarxv3agn0b3r4nhsji4v9703h4m1fvg"; depends=[dplyr ggplot2 lubridate rlang scales survival tidyr zoo]; };
   longmemo = derive2 { name="longmemo"; version="1.1-2"; sha256="01rj5x9cgscsrakbx9155mbvs35fd3j484cfz5cds9vl521fjr3r"; depends=[]; };
@@ -11648,13 +11739,13 @@ in with self; {
   lpme = derive2 { name="lpme"; version="1.1.2"; sha256="1b0w5ji8hjayni1sh5id193cmanf6n11p16fijkxln4sv4lks4aw"; depends=[decon flexmix locpol Rcpp RcppArmadillo]; };
   lpmodeler = derive2 { name="lpmodeler"; version="0.2-1"; sha256="17k67l03dkjx61p4hwswghjm6awk0zx173x9xafxrfd8jrgsf6kf"; depends=[slam]; };
   lpridge = derive2 { name="lpridge"; version="1.0-8"; sha256="0jk4l95z9rcdqkc8lpp4sf1mg2dqj67rhqw1iafrxy5lx4jfaqqx"; depends=[]; };
-  lqmm = derive2 { name="lqmm"; version="1.5.5"; sha256="15kyfpbvdgyxl6gjqinx79zq03axg36qgaqfc6zq4blyjlhj6i3c"; depends=[nlme SparseGrid]; };
+  lqmm = derive2 { name="lqmm"; version="1.5.6"; sha256="1s0x95c3gqznw9snr7fm2k41n6h6ay9rsk3bp88jcna1yn3f525i"; depends=[nlme SparseGrid]; };
   lqr = derive2 { name="lqr"; version="4.0"; sha256="1hv8zvpivmp55gsyk9wzhix4swkx5pp6h1kbiz5749irhfx7kpx0"; depends=[MomTrunc numDeriv quantreg spatstat_geom]; };
   lrequire = derive2 { name="lrequire"; version="0.1.3"; sha256="03c8h9v2xhlv7bj5jv117a27gaqaly2kdxs9zyihsm9yh9rg3d79"; depends=[]; };
   lrgs = derive2 { name="lrgs"; version="0.5.4"; sha256="0mf6wqlv21z68w81hvpmhgngvdsklf3x2678d9c9lxfmqmpv4a7y"; depends=[mvtnorm]; };
   lrmest = derive2 { name="lrmest"; version="3.0"; sha256="1yddkgza672z9y0ipgl92pg9prhmr387zsqf0qbi9k2yzfz2vvs6"; depends=[MASS psych]; };
   lsa = derive2 { name="lsa"; version="0.73.2"; sha256="1a33irqa6qvbc02z12rgbgv8kxq2gmahy7j5bg8b23lvvaxif06b"; depends=[SnowballC]; };
-  lsasim = derive2 { name="lsasim"; version="2.1.1"; sha256="18xjns1sgzmmy3mf162kcq7y106gbywzmsfd4z9xl8d8wvwqa7b7"; depends=[cli mvtnorm polycor]; };
+  lsasim = derive2 { name="lsasim"; version="2.1.2"; sha256="1x6vgdslw6v91l1p1igrvnj3s4ap2igqcx3m95y1ada7kpl3b2jk"; depends=[cli mvtnorm polycor]; };
   lsbclust = derive2 { name="lsbclust"; version="1.1"; sha256="1pbai58pfvhfcrd0nj13d54vrn9wrx2xapqhgqa1pkrjwbk5amj7"; depends=[clue doParallel foreach ggplot2 gridExtra mvtnorm plyr Rcpp reshape2]; };
   lsbs = derive2 { name="lsbs"; version="0.1"; sha256="14aq80zg89lq7hffv1v1m4n7hbzqzxkazcga4y2fq40ij3v7kv6n"; depends=[ks Matrix numDeriv]; };
   lsdbc = derive2 { name="lsdbc"; version="0.1.0"; sha256="1dk07zlvwwfhlll21ql264gx94v3jvgidy3yvxidwmhnyc1vx80x"; depends=[]; };
@@ -11671,7 +11762,7 @@ in with self; {
   lsplsGlm = derive2 { name="lsplsGlm"; version="1.0"; sha256="1qh68r033fwq1hc19h2srl1k6znvvvrcp38ghxadsksjfxllvniy"; depends=[]; };
   lsr = derive2 { name="lsr"; version="0.5.1"; sha256="1vx3wy7s8wr79almwn1c24x91c5sxndpbi2hi7fa6xa8w7xl3lzn"; depends=[]; };
   lss2 = derive2 { name="lss2"; version="1.1"; sha256="1rkv26zq36zyh891xkkllxphwplljmzpy15g619x1w4qvsajyyg8"; depends=[quantreg]; };
-  ltable = derive2 { name="ltable"; version="1.0"; sha256="1sx6bknbfkays899yq7wqpvc7izz757smaw9g9i7wii7d7a75plr"; depends=[]; };
+  ltable = derive2 { name="ltable"; version="2.0.1"; sha256="15il58g7m09z0alln12xp1g6y3i8vaxggf229nbgb5gmcf4z97dx"; depends=[clipr Rcpp RcppGSL]; };
   ltbayes = derive2 { name="ltbayes"; version="0.4"; sha256="0kv5k56hmc1m7bv5pmmmk46822szsgwqgpwydn0x56az7xn6hjk6"; depends=[mcmc MHadaptive numDeriv]; };
   ltm = derive2 { name="ltm"; version="1.1-1"; sha256="1qrgzwx5l58qf5rfp1knxc84r0g943q5sdr3ky74zzwpnmrf2vf7"; depends=[MASS msm polycor]; };
   ltmix = derive2 { name="ltmix"; version="0.2.1"; sha256="03i0gr79xiqnny57g0y9w5dfpw51gqhrkff2rh8rggsni20pzm1h"; depends=[gtools pracma]; };
@@ -11682,6 +11773,7 @@ in with self; {
   ltsspca = derive2 { name="ltsspca"; version="0.1.0"; sha256="0hgl2zd8y01z8mhnqg1hlv1l7klpwhwk7q8b99pw9vgnh1f2gnfs"; depends=[pracma Rcpp RcppArmadillo]; };
   ltxsparklines = derive2 { name="ltxsparklines"; version="1.1.2"; sha256="1jnygg7wm2768lrrzball8rn8f60xy4nc3a18h4d32jpnbhifj13"; depends=[]; };
   lubridate = derive2 { name="lubridate"; version="1.8.0"; sha256="199b00cql07gf3rf4hh5ba34amnk0ai40zhx73dq1mpkn7ynxml7"; depends=[cpp11 generics]; };
+  luca = derive2 { name="luca"; version="1.0-6"; sha256="0zrxrwpk7iblpysd4fbh50s5bmvd5l1bzbd8rdyk06wby6bcs1rk"; depends=[genetics survival]; };
   lucas = derive2 { name="lucas"; version="1.0"; sha256="1ws35f2pq2y7nnik40nj4qpz1d499gfc5isr1409pwy6r5knb78q"; depends=[DBI plyr rpostgis RPostgreSQL]; };
   lucid = derive2 { name="lucid"; version="1.8"; sha256="1dhbyr0l7cp5r0r7xdgqqxlix5hhk0v4v0zghd904dvfyaz2zdwi"; depends=[nlme]; };
   ludic = derive2 { name="ludic"; version="0.2.0"; sha256="08j6y65dxalyrcp14mry7a393if42lfh8smkq1q70dsdk6645j7d"; depends=[fGarch landpred Matrix Rcpp RcppArmadillo rootSolve]; };
@@ -11709,6 +11801,7 @@ in with self; {
   mBvs = derive2 { name="mBvs"; version="1.5"; sha256="1fmi4ap55jl06swivspk24acwf5n4wd9agiw330z15x427j579s3"; depends=[]; };
   mDAG = derive2 { name="mDAG"; version="1.2.2"; sha256="0k85sl0jmpcpiz92cz6x3kd8jc6yyfv9z4wm1kyaikcf5q4qlad4"; depends=[bnlearn logistf mgm nnet pcalg Rcpp RcppArmadillo]; };
   mExplorer = derive2 { name="mExplorer"; version="1.0.0"; sha256="1563d9r7f25vw5vsph21z3dwz9n40dpaiyx28ay1bbp5i1x2l3rb"; depends=[nnet qusage]; };
+  mFD = derive2 { name="mFD"; version="1.0.0"; sha256="0p93ca3gkgqi3w3f4q7xh33kslhy2dg7sx31h6f4mj4kkk95wr1r"; depends=[ade4 ape betapart cluster dendextend FactoMineR gawdis geometry ggplot2 ggrepel Hmisc patchwork reshape2 rstatix vegan]; };
   mFLICA = derive2 { name="mFLICA"; version="0.1.3"; sha256="0q9d4x6imrcayk0qcdwp6rigk9b741xc64vbiggmynzyc1kjwr4w"; depends=[dtw ggplot2]; };
   mFilter = derive2 { name="mFilter"; version="0.1-5"; sha256="0anc93mciq8j64knd0i38sfgv10w1gd375wnfzn1fq8sj3lby7kb"; depends=[]; };
   mGSZ = derive2 { name="mGSZ"; version="1.0"; sha256="08l98i75h2h8kx9ksvzp5qr8jhf0l6n4j7rg8fcn7hk8chn8v5zh"; depends=[Biobase GSA ismev limma MASS]; };
@@ -11721,7 +11814,6 @@ in with self; {
   mSTEM = derive2 { name="mSTEM"; version="1.0-1"; sha256="0mh09mqqpq9k8jrxs9d39009idld3b4y98ik75czdy580jmdg7mm"; depends=[doParallel foreach latex2exp]; };
   mSimCC = derive2 { name="mSimCC"; version="0.0.1"; sha256="1f15r214srcdb4yacmy4hq890a674iqd2s7bry5dk20k46qdl026"; depends=[doParallel foreach]; };
   mStats = derive2 { name="mStats"; version="3.4.0"; sha256="196fjnld26dmirga4mghlvsrj4fgnw08wdg77masxm15kpvm1x1d"; depends=[]; };
-  maGUI = derive2 { name="maGUI"; version="3.0"; sha256="1ak2sa6y766v5zh54bf7j9hklmkia40nsdchyw834ybb9ijjyjsm"; depends=[Biobase gWidgets2 gWidgets2RGtk2 impute limma Rgraphviz RGtk2 ssize]; };
   maSAE = derive2 { name="maSAE"; version="2.0.3"; sha256="0453rvfhi4zvjhbkjammy81gxi6ax75gs8iqpnphbrv60agz0bjc"; depends=[]; };
   maat = derive2 { name="maat"; version="1.0.2"; sha256="1fw1kk59qz86vahwrk8xyifd8lyag7xch2mvhr7jk5wsbk7clrcl"; depends=[diagram MASS Rdpack readxl TestDesign]; };
   mable = derive2 { name="mable"; version="3.0.1"; sha256="14vv0dhfrsbxqs8nmisx1ka9r4h9nhgj4mjqnakwchgr58jhpwxb"; depends=[doParallel foreach icenReg iterators survival]; };
@@ -11760,7 +11852,7 @@ in with self; {
   makeProject = derive2 { name="makeProject"; version="1.0"; sha256="09q8xa5j4s5spgzzr3y06l3xis93lqxlx0q66s2nczrhd8nrz3ca"; depends=[]; };
   makedummies = derive2 { name="makedummies"; version="1.2.1"; sha256="062rvijhy2dybpgxzp44cg46bfyb8lp9yasv3mhskhf3yg717sqp"; depends=[tibble]; };
   makemyprior = derive2 { name="makemyprior"; version="1.0.0"; sha256="0l4xpalw13x07fr1g9h6dfcmb16dk712pp70mnshqjhy1vlq2ajp"; depends=[ggplot2 knitr MASS Matrix rlang rmarkdown shiny shinyBS shinyjs testthat visNetwork]; };
-  makepipe = derive2 { name="makepipe"; version="0.0.4"; sha256="0j4iqwl2qqd4652c985yph9rv8847p6fipj1nrj2iwz77cnhg358"; depends=[cli R6 visNetwork]; };
+  makepipe = derive2 { name="makepipe"; version="0.1.0"; sha256="087lp7s70nx1zfs3mw4jk43miw4sc0gfd5faxqpnkgbpx01iaa51"; depends=[cli R6 visNetwork]; };
   maketools = derive2 { name="maketools"; version="1.2.0"; sha256="1i2s48s0qfk9nwkkbx5hr0q7b0c8xziyrsg1klianmk9jqfngg36"; depends=[sys]; };
   malan = derive2 { name="malan"; version="1.0.2"; sha256="0qwf0r2gwpb93gzvyp8vaw7j6rhghr6nbrfp8xw876n5j5b9jhj3"; depends=[dplyr igraph magrittr Rcpp RcppArmadillo RcppProgress tibble tidygraph]; };
   malani = derive2 { name="malani"; version="1.0"; sha256="1jps28gfkiysr356ackxf1my5xz6rpx3a2bv68pziy2614hrqbs9"; depends=[e1071]; };
@@ -11777,14 +11869,14 @@ in with self; {
   manifestoR = derive2 { name="manifestoR"; version="1.5.0"; sha256="0b4x4ampzmxcmlcyvl683rwynzwjg1cyx5zpamgy8027fh376zcp"; depends=[base64enc dplyr DT functional htmltools htmlwidgets httr jsonlite magrittr NLP psych purrr readr tibble tidyselect tm zoo]; };
   manipulate = derive2 { name="manipulate"; version="1.0.1"; sha256="1klknqdfppi5lf6zbda3r2aqzsghabcsaxmvd3vw3cy3aa984zky"; depends=[]; };
   manipulateWidget = derive2 { name="manipulateWidget"; version="0.11.1"; sha256="1dpgzmiv08afm57yxr017b014lfn9h3pa4w65prk5k3dgn6p4wsv"; depends=[base64enc codetools htmltools htmlwidgets knitr miniUI shiny shinyjs webshot]; };
-  manymodelr = derive2 { name="manymodelr"; version="0.3.6"; sha256="0a444kn38qsc197f6625ds61c1aww1kwh9dvh3jppabdf691pnv5"; depends=[caret dplyr e1071 ggplot2 lme4 Metrics]; };
+  manymodelr = derive2 { name="manymodelr"; version="0.3.7"; sha256="0kc4y9i21qkcg0pkwlas2mm06s54s70w5ybw4215qjwiy6xax268"; depends=[caret dplyr e1071 ggplot2 lme4 Metrics]; };
   maotai = derive2 { name="maotai"; version="0.2.2"; sha256="10s9fcfn6i0rkfhv8bq452ianjkah6srxa5fc2ymhqzm6m1r5b3j"; depends=[cluster dbscan fastcluster labdsv Matrix RANN Rcpp RcppArmadillo RcppDist Rdpack RSpectra Rtsne shapes]; };
   mapReasy = derive2 { name="mapReasy"; version="1.0"; sha256="13va0z967ckwxnnianki5aj66km0x6r37nj4mz9qd3b0bps4g2kj"; depends=[Hmisc rgdal sp]; };
   mapSpain = derive2 { name="mapSpain"; version="0.4.0"; sha256="043a79q2pc4c6w01pad2zyk3chjkv26vxhlvym30qq6ipdljl0sh"; depends=[countrycode giscoR rappdirs sf]; };
   mapStats = derive2 { name="mapStats"; version="2.4"; sha256="18pp1sb9p4p300ffvmzjrg5bv1i7f78mhpggq83myc26c3a593na"; depends=[classInt colorspace Hmisc lattice maptools RColorBrewer reshape2 sp survey]; };
   mapaccuracy = derive2 { name="mapaccuracy"; version="0.1.0"; sha256="1rrnbmar8s48kww2x9qjlm68xs55mbc8cnms2crdsaah7787s6aa"; depends=[assertthat gtools reshape]; };
   mapbayr = derive2 { name="mapbayr"; version="0.5.0"; sha256="12k8n3fcm9km14ih4vspv4p314yqqim2v3hgcd4h98jwsp3ls6aq"; depends=[dplyr ggplot2 magrittr mrgsolve optimx purrr rlang stringr tibble tidyr]; };
-  mapboxapi = derive2 { name="mapboxapi"; version="0.2"; sha256="0rqpynin27vvwyjjv0c22mhrpsq4cgkkvhfhf24aqbkzfay92905"; depends=[aws_s3 curl dplyr geojsonsf httr jsonlite leaflet magick protolite purrr rlang sf slippymath stringi tidyr]; };
+  mapboxapi = derive2 { name="mapboxapi"; version="0.3"; sha256="151p1k38s38bbgzwhq52jhsmlg9nhb6sm5qlz9589s0yx06mp370"; depends=[aws_s3 curl dplyr geojsonsf httr jpeg jsonlite leaflet magick png protolite purrr raster rlang sf slippymath stringi tidyr units]; };
   mapboxer = derive2 { name="mapboxer"; version="0.4.0"; sha256="0f873js87dgk8nqnhpxh88svvsbnk81vkm7gycb62mkr4xqsgqs7"; depends=[geojsonsf htmltools htmlwidgets magrittr purrr yaml]; };
   mapcan = derive2 { name="mapcan"; version="0.0.1"; sha256="1a4135wc1h4nzcv6xq0bg75i744wyq8p7q0ix7y2x2gb6s35w46k"; depends=[dplyr ggplot2 magrittr]; };
   mapchina = derive2 { name="mapchina"; version="0.1.0"; sha256="0f6ayq4izqxcj0hi2vfg0pc239hxgg7abb5476v5mfjjyi156mni"; depends=[sf]; };
@@ -11792,7 +11884,7 @@ in with self; {
   mapdeck = derive2 { name="mapdeck"; version="0.3.4"; sha256="0agbf6bs3z7gwx1dj9jqlq6cllq5b65x89lkplm5mwhr20lzwvhr"; depends=[BH colourvalues geojsonsf geometries googlePolylines htmlwidgets jsonify magrittr rapidjsonr Rcpp sfheaders shiny spatialwidget]; };
   mapedit = derive2 { name="mapedit"; version="0.6.0"; sha256="1ix0sjsqb6646xyi73am9ic97plw9y9p4pl8mrkpzvqzm0pxdhxx"; depends=[dplyr htmltools htmlwidgets jsonlite leafem leaflet leaflet_extras leafpm mapview miniUI raster scales sf shiny sp]; };
   mapfit = derive2 { name="mapfit"; version="0.9.7"; sha256="16a318bz3my27qj0xzf40g0q4bh9alg2bm6c8jbwgswf1paq1xmx"; depends=[Matrix]; };
-  mapi = derive2 { name="mapi"; version="1.0.3"; sha256="0axypjmxr0kg8wqizywdh24n51xbfjdscis5kvs78044kds99sag"; depends=[data_table pbapply Rcpp sf]; };
+  mapi = derive2 { name="mapi"; version="1.0.4"; sha256="0mlm3vp5ffjszl6zprfanr6gjbrdjrl82m7hk5q7z42h37aasc45"; depends=[data_table pbapply Rcpp sf]; };
   mapmisc = derive2 { name="mapmisc"; version="1.8.0"; sha256="0xp2ns6j8craz74jw4gjjhzkfbbihcy8d9dg1i08hiws743kzd8s"; depends=[raster sp]; };
   mapping = derive2 { name="mapping"; version="1.3"; sha256="1in4fjdiass73fdh3y937c600bdbv8gwjzxb5wj07wkc76jxb5ba"; depends=[cartography curl dplyr geojsonio ggplot2 htmltools httr jsonlite leaflet leafpop leafsync mapview rgdal s2 sf stringi stringr tmap tmaptools viridisLite]; };
   mappings = derive2 { name="mappings"; version="0.1"; sha256="1f7m6nbdzdcxsk4m8rh8fzrck8pzxl2lgfz5c6wramwmp8rxczzb"; depends=[]; };
@@ -11805,6 +11897,7 @@ in with self; {
   mapsPERU = derive2 { name="mapsPERU"; version="0.1.3"; sha256="0s3qlvf1cwc4l2g1z6h30cijsnxdyyxiprms0lvs1fxx2kf64f7i"; depends=[tibble]; };
   mapsRinteractive = derive2 { name="mapsRinteractive"; version="1.0.1"; sha256="03x5mza9y5kdqshma0k7bynmd3fffayy1j243m5bhw7ln85ws73x"; depends=[gstat raster rgdal rgeos sp]; };
   mapsapi = derive2 { name="mapsapi"; version="0.5.0"; sha256="0cf9ycj1a0vik0j10nif69n7rirrvkan9md55mgicw4wmcn1rs6i"; depends=[bitops magrittr RgoogleMaps sf stars xml2]; };
+  mapscanner = derive2 { name="mapscanner"; version="0.0.6"; sha256="017m33v2523rjmspfbzq1xnb3clzmbn4p1qqzp480j71wy5c1dry"; depends=[cli curl fs glue magick magrittr memoise pdftools png purrr raster Rcpp reproj RNiftyReg sf slippymath tibble]; };
   mapsf = derive2 { name="mapsf"; version="0.3.0"; sha256="0kyqzpk14k4qs4vqlzpsbl29wfkspd3c95mqvlzh1a8shw70jfrn"; depends=[classInt Rcpp sf]; };
   maptiles = derive2 { name="maptiles"; version="0.3.0"; sha256="025n9fpl55n9wnslpjqr4z5y0q4mn68dplb3fm7wyn968kw7sbig"; depends=[curl png sf slippymath terra]; };
   maptools = derive2 { name="maptools"; version="1.1-2"; sha256="0fa4a43zax8gn3jdp4ngqav61x4g6l33bg9wzqbngkbjhipck59r"; depends=[foreign lattice sp]; };
@@ -11820,7 +11913,7 @@ in with self; {
   marginalizedRisk = derive2 { name="marginalizedRisk"; version="2021.2-4"; sha256="0kagl9xghq9nsh9qvx165j1a5plh08zxhb6nm8j402mnl8pq7a4z"; depends=[]; };
   margins = derive2 { name="margins"; version="0.3.26"; sha256="0sx5xjbzz1rjz8bklfna3171s53xsh123x4bh0kmwp006v8rv309"; depends=[data_table MASS prediction]; };
   marima = derive2 { name="marima"; version="2.2"; sha256="03nvh93r4052li84yjqzc106gwh1542q9s192s980gs6sgy8scm6"; depends=[]; };
-  mark = derive2 { name="mark"; version="0.4.0"; sha256="1jv16pbfbnayah7lrrpdq602wicy0b9iclpnsvb9ixriq2cfhi4b"; depends=[magrittr]; };
+  mark = derive2 { name="mark"; version="0.4.1"; sha256="1lcax5bi00n7as4pm2149rjvymrlasf0837k0iyvb58k7nyhwv9x"; depends=[magrittr]; };
   markdown = derive2 { name="markdown"; version="1.1"; sha256="06zwbrp14bri3470anadd7dvgmw06xf8df6v2pk64wx3f9sd934d"; depends=[mime xfun]; };
   markdownInput = derive2 { name="markdownInput"; version="0.1.2"; sha256="1qxil2liikbbn6w8niyc03fwqvwvdv6wiy98ip8j77729i7g2hln"; depends=[markdown shiny shinyAce]; };
   marked = derive2 { name="marked"; version="1.2.6"; sha256="0k367sjyac1w894rndz5m0drmbd56nzyx5mr7mvhsqzq3gnv4dw5"; depends=[bookdown coda data_table expm kableExtra knitr lme4 Matrix numDeriv optimx R2admb Rcpp TMB truncnorm]; };
@@ -11828,12 +11921,14 @@ in with self; {
   marketr = derive2 { name="marketr"; version="0.0.2"; sha256="12nhlz40n80i6zg7y5w9zknq9qpk9qwd3wbvvya1ff8gq195147w"; depends=[dplyr magrittr tibble tidyr]; };
   markmyassignment = derive2 { name="markmyassignment"; version="0.8.6"; sha256="1w96jmb6iiw4ghmc73l721fdrq5k197fv21fz7spiapaa5xzbkrb"; depends=[checkmate codetools httr rlang testthat yaml]; };
   markophylo = derive2 { name="markophylo"; version="1.0.8"; sha256="05hfykjzx4wf2p1d6dvyx5lizfxmq3zprvnfg74r7l1izp7wpl38"; depends=[ape numDeriv phangorn Rcpp RcppArmadillo]; };
+  markovMSM = derive2 { name="markovMSM"; version="0.1.0"; sha256="022j7cg51ga5vwvkdn74xliqdhk5c26fh1z62iicbyvigjrp8r7g"; depends=[mstate survidm survival]; };
   markovchain = derive2 { name="markovchain"; version="0.8.6"; sha256="1al3b76qi6var3gpfqxy6kp0varyp7sbblrhm6hvzf8nwqvl3hq2"; depends=[expm igraph matlab Matrix Rcpp RcppArmadillo RcppParallel]; };
   marl = derive2 { name="marl"; version="1.0"; sha256="0rndnf3rbcibv3gsrw1kfp5zhg37cw9wwlz0b7dbwprd0m71l3pm"; depends=[]; };
-  marmap = derive2 { name="marmap"; version="1.0.5"; sha256="0aqir3daf154n6qqmy48snsgiz9ixdkrfck67x4pmasxj9w5wgl9"; depends=[adehabitatMA DBI gdistance geosphere ggplot2 ncdf4 plotrix raster reshape2 RSQLite shape sp]; };
+  marmap = derive2 { name="marmap"; version="1.0.6"; sha256="16r7in3m63l7fdwxwfdphcd4fr073fb675zabjxphpxmclikyxdz"; depends=[adehabitatMA DBI gdistance geosphere ggplot2 ncdf4 plotrix raster reshape2 RSQLite shape sp]; };
   marqLevAlg = derive2 { name="marqLevAlg"; version="2.0.5"; sha256="0cp3p9cgnb9hw08s8gjs7yj51d4fsa5zkkrikbgzkw0skj1gaa51"; depends=[doParallel foreach]; };
   mase = derive2 { name="mase"; version="0.1.3"; sha256="10wyrvh3p344inx5qbzkwh4rr3lmpnh1ikhrghmlqr5607kiy3fm"; depends=[boot dplyr glmnet magrittr Rdpack rpms survey]; };
   mashr = derive2 { name="mashr"; version="0.2.50"; sha256="0dj5h7fksy36ksancrvadxfn3915m22aza9qyksf7dmqj1mghd9g"; depends=[abind ashr assertthat mvtnorm plyr Rcpp RcppArmadillo RcppGSL rmeta softImpute]; };
+  maskRangeR = derive2 { name="maskRangeR"; version="1.0"; sha256="12g9cx7l2bwl3wzka11p73r6w47h4nma3rdlhm9kq1a69ig5cm68"; depends=[dismo dplyr e1071 gdalUtils lubridate magrittr maptools raster rgdal sp tidyverse virtualspecies]; };
   mason = derive2 { name="mason"; version="0.3.0"; sha256="1x5wiagb1sy5gkp0xkbr1jzhrjg1c2bqdh4hy6igwcnws2cbhxyr"; depends=[broom dplyr magrittr purrr rlang tibble tidyr tidyselect]; };
   masscor = derive2 { name="masscor"; version="0.0.7.1"; sha256="1153gx648csmzc2znf7l84f134qzp238hqj2s60r9najk1pczgf6"; depends=[metRology]; };
   mastif = derive2 { name="mastif"; version="1.0.1"; sha256="1jw7dz4qxyj848qm7lwg0klcw028260nizdi5gdwf7wd5a2nis9c"; depends=[corrplot RANN Rcpp RcppArmadillo repmis xtable]; };
@@ -11866,7 +11961,7 @@ in with self; {
   matrixcalc = derive2 { name="matrixcalc"; version="1.0-5"; sha256="1jkgl1v1q7cqpl1rf49qahdr9y0f33f0ldsbgby8xhfv0vpy21jr"; depends=[]; };
   matrixdist = derive2 { name="matrixdist"; version="1.1.3"; sha256="0yvw6rn7js06qhz2qpj9m5h9hjwa7nswkmkyzi1vpa24inbfpzah"; depends=[Rcpp RcppArmadillo]; };
   matrixpls = derive2 { name="matrixpls"; version="1.0.13"; sha256="0m9gqq5waicj3znlsyz50cj6w1x6rkvfwknavhxid8r4p9h891ak"; depends=[assertive lavaan MASS matrixcalc psych]; };
-  matrixprofiler = derive2 { name="matrixprofiler"; version="0.1.5"; sha256="0rm99pibl5vyvf3w5x6d12wppjxb68n3qy3vvvpnawb8m2h3dkd1"; depends=[checkmate Rcpp RcppParallel RcppProgress RcppThread]; };
+  matrixprofiler = derive2 { name="matrixprofiler"; version="0.1.7"; sha256="0jicclzjil9yqlapzji23wm916aprv1fyad1qrn6ip7kap3m2kln"; depends=[checkmate Rcpp RcppParallel RcppProgress RcppThread]; };
   matrixsampling = derive2 { name="matrixsampling"; version="2.0.0"; sha256="05dbn7rj07jx1hj7i6k3akf11hysxg6v32kav9fvsqmiy2zkippa"; depends=[keep]; };
   matsbyname = derive2 { name="matsbyname"; version="0.4.25"; sha256="1rqha59w4kf10byz0p41r7iaw8zwhcg06jhm94na3mcxxbd9jqjk"; depends=[assertthat dplyr Hmisc magrittr purrr rlang stringi tibble]; };
   matsindf = derive2 { name="matsindf"; version="0.3.9"; sha256="0d764q54kw2ywanx7v5r1c0rjd39js77ghi1qjdhy2dz6qx6yiy4"; depends=[dplyr magrittr matsbyname purrr rlang tibble tidyr]; };
@@ -11925,12 +12020,11 @@ in with self; {
   mclcar = derive2 { name="mclcar"; version="0.1-9"; sha256="0bwnivmajsrvmwskhk44qhz4nnc0irxq83g0kzbj4wshhivnwryp"; depends=[fields maxLik nleqslv rsm spam spdep]; };
   mcll = derive2 { name="mcll"; version="1.2"; sha256="0i9zqbh0l9a9mv4558gbdq9mh52chanykyfwmiymmxygxhp809sz"; depends=[locfit statmod]; };
   mclogit = derive2 { name="mclogit"; version="0.8.7.3"; sha256="1as3mqqzxjdr7saw4vpgg88yqbax86z1qhl9s1jm49cw7nyqigxz"; depends=[Matrix memisc]; };
-  mclust = derive2 { name="mclust"; version="5.4.7"; sha256="08scl72llpinfijiyx14yqvmx8lma9jvh8h92v9ynnzfr9kadxa5"; depends=[]; };
+  mclust = derive2 { name="mclust"; version="5.4.8"; sha256="0j79a1nidwxl62x8j97k09qjxladp9irw5z1x1q5gyy6zxskvh8i"; depends=[]; };
   mclustAddons = derive2 { name="mclustAddons"; version="0.5"; sha256="11rrilf05hdhmvrxkngqv4rcdzn7q1bhdn877ajc38257rhjnmjm"; depends=[foreach iterators mclust Rcpp RcppArmadillo]; };
   mclustcomp = derive2 { name="mclustcomp"; version="0.3.3"; sha256="1kxrms77m7n9lv32771zvwg82xqh5kx8al6f0bknsj8idq8aqbh3"; depends=[Rcpp RcppArmadillo Rdpack]; };
   mcmc = derive2 { name="mcmc"; version="0.9-7"; sha256="0q42m8ab7b6bxhns494ksjdss5f3c5m2jjfdlfj6fk1nz7ax7i5p"; depends=[]; };
   mcmcOutput = derive2 { name="mcmcOutput"; version="0.1.1"; sha256="0nw33xb7x695g8i91hfj2apgywbyzf2k587drzridqnfmbm26pni"; depends=[coda HDInterval MASS]; };
-  mcmcabn = derive2 { name="mcmcabn"; version="0.4"; sha256="0ym7ngai8pv9xalh1s53p8f96s8xpc05zi6ryih2rjv449ib06kq"; depends=[abn coda cowplot ggplot2 ggpubr gRbase]; };
   mcmcderive = derive2 { name="mcmcderive"; version="0.1.2"; sha256="0v89nyvr2d57zvjy9qq6drqb48s4n88hb65pima1gx4aqb479yfh"; depends=[abind chk extras mcmcr nlist purrr universals]; };
   mcmcensemble = derive2 { name="mcmcensemble"; version="3.0.0"; sha256="1yf8mm0nmw0x89pj3is5rv3arcfbxvkfh8bip1sprcqzsrixa0s8"; depends=[future_apply progressr]; };
   mcmcplots = derive2 { name="mcmcplots"; version="0.4.3"; sha256="0187z79gmvcrwqybxh3ckhcrqi0nqhvcvlczgxfkpq95y5czprdq"; depends=[coda colorspace denstrip sfsmisc]; };
@@ -11939,12 +12033,14 @@ in with self; {
   mcmcse = derive2 { name="mcmcse"; version="1.5-0"; sha256="0qvlkv7j35h2lxdzhbsbsrf1cgsbgf4in7lxgwmx7vs85k10v0ja"; depends=[ellipse fftwtools Rcpp RcppArmadillo testthat]; };
   mco = derive2 { name="mco"; version="1.15.6"; sha256="10h5d2lw6ybyva44nn5wml6v3ljpnv9m1b2lh36vg2cwrdwy5sqp"; depends=[]; };
   mcompanion = derive2 { name="mcompanion"; version="0.5-3"; sha256="0051agyzbhrsxi9wpfpqcq98h7y25627s2czf30qxcq80m7xbhj0"; depends=[gbutils MASS Matrix Rdpack]; };
+  mcp = derive2 { name="mcp"; version="0.3.1"; sha256="07acx5mvp4znibjyacyjrnb4f5glq1xh4qhzysvkqj4vl1wai6vl"; depends=[bayesplot coda dplyr future future_apply ggplot2 loo magrittr patchwork rjags rlang stringr tibble tidybayes tidyr tidyselect]; };
   mcparallelDo = derive2 { name="mcparallelDo"; version="1.1.0"; sha256="1ivh0d4f7ks6xwcjywk62h1zhr7h5bbhzpisky7973wi4g8vipbn"; depends=[checkmate R_utils R6]; };
   mcprofile = derive2 { name="mcprofile"; version="1.0-1"; sha256="118n3pxzjm4j9y09d1n2hw7pm0b8b0m8mnm5v9kq76vignklh75l"; depends=[ggplot2 mvtnorm quadprog]; };
   mcr = derive2 { name="mcr"; version="1.2.2"; sha256="0n1wd8z7j9s20ym8m6vbpixibmfb3qkykb3z92jv3pbamjf2sxsc"; depends=[]; };
   mcreplicate = derive2 { name="mcreplicate"; version="0.1.2"; sha256="12pmfp75sc00cdrkx4xniq74qqx3y67qxwdrrbp2mf562pdn2gmn"; depends=[]; };
   mcsm = derive2 { name="mcsm"; version="1.0"; sha256="13sx7s3ywis5n4a70ld2szld9fb8jkfsc82dy6iskhy17vy8pml0"; depends=[coda MASS]; };
   mctest = derive2 { name="mctest"; version="1.3.1"; sha256="1d248r9ifwl1xhvka6z69l943rvbq7s7ag6vqp9lljkcybvg75f2"; depends=[]; };
+  mctq = derive2 { name="mctq"; version="0.1.0"; sha256="1j4f5jfwq827x0dd19xfwjrxf1rclr5813l2rcirxifsncs5hbnc"; depends=[checkmate cli dplyr hms lifecycle lubridate]; };
   mcunit = derive2 { name="mcunit"; version="0.3.2"; sha256="16nnm50g87iaf058b1w5w5hphx99xplczndcbv1356f2gs2gfy6l"; depends=[Rdpack rlang simctest testthat]; };
   mcvis = derive2 { name="mcvis"; version="1.0.8"; sha256="0dc7jwdfzyn6x785lbwikpql96b3gh9fhb65fv4sk9ib28b2kpmy"; depends=[assertthat dplyr ggplot2 igraph magrittr psych purrr reshape2 rlang shiny]; };
   mcwr = derive2 { name="mcwr"; version="1.0.0"; sha256="1aqmrxjmllq1waw3pzmwhqd07q02n1h1g6c0qi1fvay4xz0rwgik"; depends=[]; };
@@ -12014,8 +12110,8 @@ in with self; {
   memo = derive2 { name="memo"; version="1.0.1"; sha256="14nvqi1qsin45ksd0wp9cigjk1gghr4jijdqkaqh177dwa244r9j"; depends=[digest]; };
   memochange = derive2 { name="memochange"; version="1.1.1"; sha256="144134kpchb7ps8b2g7pyga5add0iqphzcwygf11aybmbzmp90x7"; depends=[forecast fracdiff longmemo LongMemoryTS sandwich strucchange urca]; };
   memofunc = derive2 { name="memofunc"; version="1.0.2"; sha256="02y32mnwafqnsvs3vy4g8v0jmdvnx935dqavy3q1f2n8c76p0bk9"; depends=[digest magrittr uuid]; };
-  memoiR = derive2 { name="memoiR"; version="1.1-2"; sha256="0py8kkj0jka6a211r7yhdmwnhf7nz13zkbgai2df4bc3gxxw9hzs"; depends=[bookdown rmarkdown usethis]; };
-  memoise = derive2 { name="memoise"; version="2.0.0"; sha256="1bzcv7pmls3bx2w5ccv1pm20wycbfqba1v76k0fjgmjsm6hy76pz"; depends=[cachem rlang]; };
+  memoiR = derive2 { name="memoiR"; version="1.1-3"; sha256="1p3s0rv4l44gx726frrwp64xv7xakyh2svjqglg85pv3krhlw4b4"; depends=[bookdown rmarkdown usethis]; };
+  memoise = derive2 { name="memoise"; version="2.0.1"; sha256="1srdzv2bp0splislrabmf1sfbqfi3hn189nq7kxhgjn8k3p38l7q"; depends=[cachem rlang]; };
   memor = derive2 { name="memor"; version="0.2.3"; sha256="1b3rjh121in7gi6khbhh2d1r0998a24ifcg6hpv8cdksl6lhm330"; depends=[knitr rmarkdown yaml]; };
   memoria = derive2 { name="memoria"; version="1.0.0"; sha256="05nx6xkgf1mkn1ajjizwp66xhn7ddbvgdnmkdbcl4s7sq456vczw"; depends=[cowplot ggplot2 HH ranger stringr tidyr viridis viridisLite zoo]; };
   memuse = derive2 { name="memuse"; version="4.2-1"; sha256="1wvwnjaaiv2647561z2b55dss35033ildx4kk8hzxfzgsjmdpsgm"; depends=[]; };
@@ -12027,12 +12123,13 @@ in with self; {
   merror = derive2 { name="merror"; version="2.0.2"; sha256="13d9r5r83zai8jnzxaz1ak40876aw20zbpr244gs55rvj5j7f87q"; depends=[]; };
   meshed = derive2 { name="meshed"; version="0.1.4"; sha256="1fqfn4di04ysbafxd0anxsf3n9zr6xwgw4x78szlygkr7qv1chz1"; depends=[dplyr glue magrittr Rcpp RcppArmadillo rlang]; };
   messaging = derive2 { name="messaging"; version="0.1.0"; sha256="0q19cqp1zgh0yhk1ql0jqf414bhx6jwhkairq6wx2cmkli2g7k1y"; depends=[dplyr glue magrittr rlang stringr]; };
-  messydates = derive2 { name="messydates"; version="0.1.1"; sha256="1xqavldvq9qxhk5y7dlcra3vlqdvjxmhk4ydyrk25diqhaix4qqv"; depends=[covr dplyr lubridate purrr stringr tibble]; };
+  messydates = derive2 { name="messydates"; version="0.2.0"; sha256="193rc2723i6a75g8qmrf743h89nsxm9j1dlvxncsxk1jpj5hzd43"; depends=[dplyr lubridate purrr stringr tibble]; };
   met = derive2 { name="met"; version="0.1.0"; sha256="0714103xzc4n178307czxmcv7ygjiigjr9b6xnj240ljp7qmln19"; depends=[DiPs]; };
   metR = derive2 { name="metR"; version="0.11.0"; sha256="09ar9lckrzbvcy0jgnwlrnj96ln426yh70dgjfmlac68bhinv2fw"; depends=[checkmate data_table digest fields Formula formula_tools ggplot2 gtable isoband lubridate memoise plyr purrr RCurl scales sp stringr]; };
   metRology = derive2 { name="metRology"; version="0.9-28-1"; sha256="1syjwblyd18myxrs0hx4m91fgb6zs3r4g7w701j2f2pw6j9mvz0y"; depends=[MASS numDeriv robustbase]; };
   metScanR = derive2 { name="metScanR"; version="1.2.3"; sha256="1v7zrxj3wspx6f5n5s75skcygbf3r85rn4p0z9iwbrbrgxwi4qgs"; depends=[geosphere leaflet matlab plyr RCurl]; };
-  meta = derive2 { name="meta"; version="5.0-1"; sha256="1kmlknbclvxjc4sk6rzlz8xpblzbxfphmzhpvk5xwa9nk4clkr02"; depends=[CompQuadForm lme4 metafor xml2]; };
+  meta = derive2 { name="meta"; version="5.1-0"; sha256="0s19pfmxg5wx86jpyb1pmd7yvjfg01yw699c4zg0dkwp2cb43a0p"; depends=[CompQuadForm lme4 metafor xml2]; };
+  meta_shrinkage = derive2 { name="meta.shrinkage"; version="0.1.0"; sha256="04ld3ka1zn86l38dxgqzmf6s8ak9g25p5yprmnlgwsiwihww8017"; depends=[]; };
   meta4diag = derive2 { name="meta4diag"; version="2.0.8"; sha256="1ila8x9r1rdmlwfpzfx1zj5yx1m4yrbhyb74db4wqbh1dswn7zsm"; depends=[caTools shiny shinyBS sp]; };
   metaBLUE = derive2 { name="metaBLUE"; version="1.0.0"; sha256="0ppn4bvr10z32pghmv4wjv86k6n5y5bkfxc6h5mvb556v6jnl6d8"; depends=[Matrix]; };
   metaBMA = derive2 { name="metaBMA"; version="0.6.7"; sha256="1nk76cw3wb8gwknn5xq75400pfbqx72rf499nylc6yr9nascq2rk"; depends=[BH bridgesampling coda LaplacesDemon logspline mvtnorm Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
@@ -12049,7 +12146,6 @@ in with self; {
   metaSurvival = derive2 { name="metaSurvival"; version="0.1.0"; sha256="05f103fi287y64gys73a55snw54bnph69q8dykfii10dykd44g0y"; depends=[mvtnorm survival]; };
   metaboData = derive2 { name="metaboData"; version="0.6.2"; sha256="1iiy9ipyp3h1rvcbjld6bdy1jgnxbixvgs5xqwly1yj4mvri0bsg"; depends=[dplyr fs magrittr piggyback purrr readr rlang stringr tibble yaml]; };
   metabolic = derive2 { name="metabolic"; version="0.1.0"; sha256="1bk8d0sxlgc17d7x02zmx23fdqz39c9zpin16bzhcj602kjcq0y8"; depends=[cli dplyr forcats ggfittext ggimage ggplot2 glue magrittr meta patchwork purrr rmarkdown scales stringr tibble tidyr usethis]; };
-  metabolighteR = derive2 { name="metabolighteR"; version="0.1.2"; sha256="1v50b0pp2hzn6b4xrlclaks3kd315rir44acm24mmqhqybj6lhls"; depends=[crayon dplyr httr magrittr purrr]; };
   metacart = derive2 { name="metacart"; version="2.0-3"; sha256="1wim72fvhx6cyc16c9gl8cwzbhlpzilk7q8gi4jnzzazqmc1kb5n"; depends=[ggplot2 gridExtra Rcpp rpart]; };
   metacoder = derive2 { name="metacoder"; version="0.3.5"; sha256="0d0ihglsal9cx03jjq472x2xlqdflgxhzkr0vwvjpq0rqvq5syva"; depends=[ape cowplot crayon dplyr GA ggfittext ggplot2 igraph lazyeval magrittr R6 Rcpp RCurl readr rlang seqinr stringr taxize tibble vegan]; };
   metacom = derive2 { name="metacom"; version="1.5.3"; sha256="0c0gzn28cl2sl52wx2n36jm9c18d9s3yqjyx88kgbmd9069z1nvk"; depends=[vegan]; };
@@ -12062,7 +12158,7 @@ in with self; {
   metafor = derive2 { name="metafor"; version="3.0-2"; sha256="12hk6k2awbf022bbkh0zqcmm8fi534yzgv83c5rxl9djjx8l7pq2"; depends=[mathjaxr Matrix nlme pbapply]; };
   metaforest = derive2 { name="metaforest"; version="0.1.3"; sha256="1q6m60cd7gl7y0gdjd10ky25hwv5jc4x5g5sr5w61xc3j2hnw8in"; depends=[data_table ggplot2 gtable metafor ranger]; };
   metafuse = derive2 { name="metafuse"; version="2.0-1"; sha256="1zdw22f5kzvy2xr3c2csy873hcags60as567brc2sw17d0apfy8j"; depends=[evd glmnet MASS Matrix]; };
-  metagam = derive2 { name="metagam"; version="0.2.0"; sha256="0il5m02v3fv5gl9pf3ggkv0kwaycmvvaxzxda20rg30cbhma27vy"; depends=[dplyr furrr ggplot2 knitr metafor metap purrr rlang stringr tidyr]; };
+  metagam = derive2 { name="metagam"; version="0.3.1"; sha256="05rijhhqwlfd563fx4r4kbqnr9hgbxn1qh05h9ljny0js15q06b9"; depends=[ggplot2 metafor mgcv rlang]; };
   metagear = derive2 { name="metagear"; version="0.7"; sha256="1gwfk6v591xxsccbi287b90vnf5c1jfz72jxcxy9iswp0jpjflaq"; depends=[MASS Matrix metafor stringr]; };
   metaggR = derive2 { name="metaggR"; version="0.2.0"; sha256="00w40ip630p42h9v87zq08xrggpwkvbqmn4m0963s7x7yjscwp9d"; depends=[MASS]; };
   metaheuristicOpt = derive2 { name="metaheuristicOpt"; version="2.0.0"; sha256="0ra4hl9l1jlzymj218m2i6xrxfacyx4aaln5pk7q4di2ks0nq11m"; depends=[]; };
@@ -12071,9 +12167,9 @@ in with self; {
   metamer = derive2 { name="metamer"; version="0.2.0"; sha256="0wdhr83mph9v7vb9mfhf7lcwmp0smz72sniass7kxcbj6j9hga4g"; depends=[FNN progress]; };
   metamicrobiomeR = derive2 { name="metamicrobiomeR"; version="1.2"; sha256="0fgdjy2s47pqmb9x79a4sf0kn4hbc49rd41jnzw0d3ll1l9kwy7f"; depends=[compositions dplyr gamlss gdata ggplot2 gridExtra lme4 lmerTest matrixStats meta plyr tidyr zCompositions]; };
   metamisc = derive2 { name="metamisc"; version="0.2.5"; sha256="1fg6k2sr74iprjx2bwqqfnp67c493fkilncy2nbynv4sqmbl8s0i"; depends=[dplyr ggplot2 lme4 metafor mvtnorm plyr pROC]; };
-  metan = derive2 { name="metan"; version="1.15.0"; sha256="140ldg9w2z3nc04dwzw6lpnn1an28mb7013bfr72rxhkbh8wravl"; depends=[dplyr GGally ggforce ggplot2 ggrepel lme4 lmerTest magrittr mathjaxr patchwork purrr rlang tibble tidyr tidyselect]; };
+  metan = derive2 { name="metan"; version="1.16.0"; sha256="09qa46069xb7vrmp8r0nq84fvwzzx5bqav3x3cfc2shxm6dxmf0g"; depends=[dplyr GGally ggforce ggplot2 ggrepel lme4 lmerTest magrittr mathjaxr patchwork purrr rlang tibble tidyr tidyselect]; };
   metansue = derive2 { name="metansue"; version="2.4"; sha256="1ja7a3z4d764a1rcf256kmzf8xc6d8x7mqq12vzznw5ks8r2p9hk"; depends=[]; };
-  metap = derive2 { name="metap"; version="1.5"; sha256="0cwjhnzzafaq00nvjk76xnb9m83sv0ga1binm2142j9pkfj762v4"; depends=[lattice mathjaxr mutoss Rdpack TFisher]; };
+  metap = derive2 { name="metap"; version="1.6"; sha256="0z9fr4s8h6s6r50d1v29kyliflp2cws4n9zafhhpvfkl84k0488n"; depends=[lattice mathjaxr mutoss Rdpack TFisher]; };
   metapack = derive2 { name="metapack"; version="0.1.4"; sha256="0n7y3jvjrbvq1d58cbw5b5pb10v02w1314yq0n88snc70j9s2mq3"; depends=[BH Formula ggplot2 gridExtra Rcpp RcppArmadillo RcppProgress]; };
   metaplot = derive2 { name="metaplot"; version="0.8.3"; sha256="1zw8bq2fy9m15dfc92ag0dz2k9dqrf5jbvfaycizcgsgaqd79s1c"; depends=[dplyr encode ggplot2 gridExtra gtable lattice magrittr rlang scales tidyr]; };
   metaplotr = derive2 { name="metaplotr"; version="0.0.3"; sha256="01iala6cxsxv30fnlh80md5mpy3ksd2piw90zcls8f68g1c6v1jy"; depends=[ggplot2 gridExtra]; };
@@ -12092,10 +12188,10 @@ in with self; {
   meteo = derive2 { name="meteo"; version="0.1-5"; sha256="0n37plka9vsxwd03lca3h6m8dcz3f1bi46jn3bz7vyilnkq9hcdk"; depends=[gstat plyr raster rgdal snowfall sp spacetime]; };
   meteoForecast = derive2 { name="meteoForecast"; version="0.54"; sha256="046c0z66hsyfrnksdq40xv3kf2di0ywv5wfb9s7b7999s694ak18"; depends=[ncdf4 raster sp XML zoo]; };
   meteogRam = derive2 { name="meteogRam"; version="1.0"; sha256="167gyxjnl4dyfqs3znv8sdpkvpqdxzdqi1g730s30gycrm9snap9"; depends=[ggplot2 RadioSonde]; };
-  meteoland = derive2 { name="meteoland"; version="0.9.7"; sha256="0m2q451zgvimd3xx3h66c3blzp7r5waj8ddb9p8hg5aj3drq2l8p"; depends=[httr jsonlite ncdf4 Rcpp rgdal sp spdep]; };
+  meteoland = derive2 { name="meteoland"; version="1.0.1"; sha256="1160yjawyb0icgmxz963la722dqdil72kjp4253yraanw0zdzy64"; depends=[httr jsonlite meteospain ncdf4 Rcpp rgdal sf sp spdep units xml2]; };
   meteor = derive2 { name="meteor"; version="0.3-4"; sha256="01009d9wpxybig4n82m48hqqg1k4x4shcjxfy8y0kk7cgfdb4naw"; depends=[Rcpp]; };
   meteorits = derive2 { name="meteorits"; version="0.1.1"; sha256="1vk8pbhfc5mbkbpw7ml81gx9i8187xp3vx36pbyyhjbrpy6gqabx"; depends=[MASS pracma Rcpp RcppArmadillo]; };
-  meteospain = derive2 { name="meteospain"; version="0.0.2"; sha256="15wmf5w8p7j0bmgmkjsyr6jb9ss941vhvgg2zl5bc3975z4czjyg"; depends=[assertthat crayon dplyr glue httr jsonlite lubridate magrittr purrr rlang sf stringr tidyr units vctrs xml2]; };
+  meteospain = derive2 { name="meteospain"; version="0.0.3"; sha256="0qqlfli9k4472ajx57xkf9laym0znl43qy8xzdq8xnq5alv0yrsw"; depends=[assertthat cachem crayon dplyr glue httr jsonlite lubridate magrittr memoise purrr rlang sf stringr tidyr units vctrs xml2]; };
   methcon5 = derive2 { name="methcon5"; version="0.1.0"; sha256="08xsi6j65izxqcrlh37f2d7m3pwna1v6zvdv96mqylsjqgqmbk5x"; depends=[dplyr magrittr purrr rlang]; };
   metools = derive2 { name="metools"; version="1.0.0"; sha256="05l49ifx2nnlbdxh2qhdb0islf95fc67720rm5in7mrlida4khnq"; depends=[ggplot2 lubridate scales stringr tibble tidyr]; };
   metricsgraphics = derive2 { name="metricsgraphics"; version="0.9.0"; sha256="1zbx82b34y0rr4w7rzvyc1nzk95w6cdkg0j1kkshbmkvplq6v9i4"; depends=[htmltools htmlwidgets magrittr]; };
@@ -12110,7 +12206,7 @@ in with self; {
   mfGARCH = derive2 { name="mfGARCH"; version="0.2.1"; sha256="1pcabijwhdxhdlrdjvi2zl8la939igsdy3j1yv0ic8wvkpw1sh4x"; depends=[maxLik numDeriv Rcpp zoo]; };
   mfaces = derive2 { name="mfaces"; version="0.1-3"; sha256="0pqmsflph2iplr0jlwpgbfgg523v0nw41gvjb88q1d993pyfhfdl"; depends=[face Matrix matrixcalc mgcv]; };
   mfbvar = derive2 { name="mfbvar"; version="0.5.6"; sha256="1wv46h6cr0xnvr8dxymx362skf7nf77yw84y6g48rj9mbq8kkkcj"; depends=[dplyr ggplot2 GIGrvg lubridate magrittr Rcpp RcppArmadillo RcppParallel RcppProgress stochvol tibble zoo]; };
-  mfdb = derive2 { name="mfdb"; version="7.1-1"; sha256="027r0sh65vwwqv81sagbsyfmf6i5gx7frj69fmd2xrw1iz1bqdkw"; depends=[DBI duckdb getPass logging rlang RPostgres RSQLite]; };
+  mfdb = derive2 { name="mfdb"; version="7.2-0"; sha256="0jmydw6kv4lnyyx05ih5k4xah42pg3sjckhgxmykrpsgdvd8f96j"; depends=[DBI duckdb getPass logging rlang RPostgres RSQLite]; };
   mfe = derive2 { name="mfe"; version="0.1.5"; sha256="1pw9gw9bd778s57dyjwbmrmsla4m8dkf8g49gplv4zrsvlgsgbr3"; depends=[cluster clusterCrit e1071 ECoL infotheo MASS rpart rrcov]; };
   mfp = derive2 { name="mfp"; version="1.5.2"; sha256="1i90ggbyk2p1ym7xvbf4rhyl51kmfp6ibc1dnmphgw15wy56y97a"; depends=[survival]; };
   mfx = derive2 { name="mfx"; version="1.2-2"; sha256="04pwp67i4sn4rf497pgy6qifwvrcmwyxn8x5sn96fy8qyrdzjfhj"; depends=[betareg lmtest MASS sandwich]; };
@@ -12146,9 +12242,8 @@ in with self; {
   micEconIndex = derive2 { name="micEconIndex"; version="0.1-6"; sha256="1ihly6qpyg1pms4nkvs6khxxqwr3fwg57i8pg0yhyy1apqxyj2xl"; depends=[miscTools]; };
   micEconSNQP = derive2 { name="micEconSNQP"; version="0.6-8"; sha256="183hg4iap97is8cdaqxmnj9z8yybvpfnhg2kf85nfy1nl7b30xl2"; depends=[MASS miscTools systemfit]; };
   micar = derive2 { name="micar"; version="1.1.2"; sha256="1zx2x6r4m0ihwhjd2n4rmk9da7p9bpadk65h7mbb0rgvwrspkzf8"; depends=[httr jsonlite]; };
-  mice = derive2 { name="mice"; version="3.13.0"; sha256="11cpyqlilakan2pwjzacb9jjlazazsqdngy237nnrj8j6mky822i"; depends=[broom cpp11 dplyr generics lattice Rcpp rlang tidyr]; };
+  mice = derive2 { name="mice"; version="3.14.0"; sha256="01fnfrr7adp29s5kic95r9q0rdznkz2pjmziyimnrqzyicyvfyzq"; depends=[broom cpp11 dplyr generics lattice Rcpp rlang tidyr withr]; };
   miceFast = derive2 { name="miceFast"; version="0.7.1"; sha256="1vlm19b9q6539c9rqa852kkva1j3cfwbxy2y9x8khb8pqk1w0bb7"; depends=[assertthat data_table dplyr ggplot2 magrittr Rcpp RcppArmadillo tidyr UpSetR]; };
-  miceMNAR = derive2 { name="miceMNAR"; version="1.0.2"; sha256="1s607icaf3c25mn8xdi3zkzmm8m7qd9a6vjdlz5j7ig2gc9f2y2d"; depends=[GJRM mice mvtnorm pbivnorm sampleSelection]; };
   miceRanger = derive2 { name="miceRanger"; version="1.5.0"; sha256="0xm8fcvjf6pcfyyk1gnwfdac44q6b33i5byja9lqxy7vygbxmgxd"; depends=[corrplot crayon data_table DescTools FNN foreach ggplot2 ggpubr ranger]; };
   miceadds = derive2 { name="miceadds"; version="3.11-6"; sha256="1xh977xralyivmi57c11rpbbbx24dhzwfnjq4m55ikzv2b40678j"; depends=[mice mitools Rcpp RcppArmadillo]; };
   micemd = derive2 { name="micemd"; version="1.8.0"; sha256="1vds5199bv3lgpn3qzra6gakvabyz6a83p55xjxgs9zk9chgf9yw"; depends=[abind digest jomo lme4 MASS Matrix mice mvmeta mvtnorm nlme]; };
@@ -12158,13 +12253,13 @@ in with self; {
   microPop = derive2 { name="microPop"; version="1.5"; sha256="1gikp20n2b50fkybbg2hmlfjdcm0imjwygjsjnyv3wrjzypm2i78"; depends=[deSolve]; };
   microSTASIS = derive2 { name="microSTASIS"; version="0.1.0"; sha256="09zyf80l964lfil56vln70i0r2d8ry2ffx4zz3f3xcka22m94r78"; depends=[crayon fmsb future future_apply ggplot2 ggside progressr reshape2 stringr]; };
   microbats = derive2 { name="microbats"; version="0.1-1"; sha256="1mahvblaiwg1xk2s34wd1ic8ddc9lh6g0azik2pd97bsf0krkyw8"; depends=[]; };
-  microbenchmark = derive2 { name="microbenchmark"; version="1.4.8"; sha256="0gqkxf31my5dchv81yjnvk9gpziihc4p6dbvw01586xbi16vdbp1"; depends=[]; };
-  microbial = derive2 { name="microbial"; version="0.0.19"; sha256="0pf8rdr7fdfalx28hqkfzrgwdia956d3cksz58bbf75hsiay8vak"; depends=[Biostrings broom dada2 DECIPHER DESeq2 dplyr edgeR ggplot2 ggpubr magrittr MASS phangorn phyloseq plyr randomForest rlang rstatix S4Vectors SummarizedExperiment testthat tidyr vegan]; };
+  microbenchmark = derive2 { name="microbenchmark"; version="1.4.9"; sha256="1lpzpffnjiwnxxl0jhrvyj88fvxqksnpccbpq953xwqf6ypjqga4"; depends=[]; };
+  microbial = derive2 { name="microbial"; version="0.0.20"; sha256="1y5vhh4sq22c4wxb3c9rzj53niacn97vfg0484d9wkcjb179lc79"; depends=[broom DESeq2 dplyr edgeR ggplot2 ggpubr magrittr phangorn phyloseq plyr randomForest rlang rstatix S4Vectors SummarizedExperiment testthat tidyr vegan]; };
   microclass = derive2 { name="microclass"; version="1.2"; sha256="0q6mn1hbi6nk29x2x5a1wcdqp06mjggbrpglk5i8pp4gkqlzhl8q"; depends=[dplyr microcontax microseq Rcpp RcppEigen RcppParallel rlang stringr tibble]; };
   microclustr = derive2 { name="microclustr"; version="0.1.0"; sha256="04xn8p4wgmxq1jbxawq0rhx6l7y1kddlbdfid8zsi4x4arkz7hvp"; depends=[Rcpp]; };
   microcontax = derive2 { name="microcontax"; version="1.2"; sha256="004g979hyg0asbah7hxr445fidil4ibw1b8pqpjdbgmpm1qgvw7y"; depends=[microseq]; };
   microdemic = derive2 { name="microdemic"; version="0.6.0"; sha256="1w4zh0vagnar95l5b8cgmcvp8q7vk2iba5g8d8g2ywynqiqcx5fc"; depends=[crul data_table httpcode jsonlite tibble]; };
-  microeco = derive2 { name="microeco"; version="0.5.1"; sha256="1g3ifkxdbncrhihf6s8kfx9nv3cx4zfwl4kgg21plhv1prfzcia2"; depends=[ape data_table dplyr ggplot2 magrittr R6 RColorBrewer rlang scales tibble vegan]; };
+  microeco = derive2 { name="microeco"; version="0.6.0"; sha256="1kfbfvlq2h738ipm4481jh785pvpl3xsyb37gplg9aj3s0a6q7j7"; depends=[ape data_table dplyr ggplot2 magrittr R6 RColorBrewer reshape2 rlang scales tibble vegan]; };
   microhaplot = derive2 { name="microhaplot"; version="1.0.1"; sha256="0g15g7d19yz11nn2g0h8h2m8k1cvmpryz72pnalgv5yi58md5l5i"; depends=[dplyr DT ggiraph ggplot2 gtools magrittr scales shiny shinyBS shinyWidgets tidyr]; };
   micromap = derive2 { name="micromap"; version="1.9.5"; sha256="18y8m63k9l4dir8w1qbbi1g86506yajvi6qs0j1588575lak1l62"; depends=[ggplot2 maptools RColorBrewer rgdal sf sp]; };
   micromapST = derive2 { name="micromapST"; version="1.1.1"; sha256="15ch132x3wnpf7rmy25nah7iyfxfk90p7lvavqjhrnavhjsfxbxx"; depends=[labeling RColorBrewer stringr]; };
@@ -12173,7 +12268,7 @@ in with self; {
   microsamplingDesign = derive2 { name="microsamplingDesign"; version="1.0.8"; sha256="0swaqvzqbmlk9j2gr8z7x7xrkr38xndprg9k66whzcigxfh8nhiz"; depends=[abind deSolve devtools ggplot2 gridExtra gtools knitr MASS matrixcalc matrixStats plyr Rcpp RcppArmadillo readr reshape2 shiny stringr]; };
   microseq = derive2 { name="microseq"; version="2.1.5"; sha256="1asdy0njy5xcykd88jxa8s5hkrh6kab566h3nf9i93yw1i6kmwip"; depends=[data_table dplyr Rcpp rlang stringr tibble]; };
   microservices = derive2 { name="microservices"; version="0.1.2"; sha256="18inmqwdb2cz0i0q9rh7mm3bi0hg193kkipbzhgk0bk8i8gkdy84"; depends=[config desc dplyr glue purrr withr]; };
-  microsimulation = derive2 { name="microsimulation"; version="1.3.5"; sha256="0fg3b1jq3igv6y76d97wjzwy7gxscbislfiv7kpc694i32hphygz"; depends=[ascii BH Rcpp]; };
+  microsimulation = derive2 { name="microsimulation"; version="1.3.6"; sha256="0qpsjw1mfmz0rgkgvv2r36jfsb2k9smxw4sxd32fwafaiqh1fcb6"; depends=[ascii BH Rcpp]; };
   microsynth = derive2 { name="microsynth"; version="2.0.31"; sha256="0wmrp9igylzp4qbvdr13r2rxfkcq9xwg8gw29j1g6kcqyq4aflds"; depends=[boot kernlab LowRankQP nleqslv pracma survey]; };
   midas = derive2 { name="midas"; version="1.0.1"; sha256="1alqxk23651jnkg0xn4rpvk71z5rhvx3y0wjrgkw2qw95s7jjn72"; depends=[shiny xml2]; };
   midasml = derive2 { name="midasml"; version="0.1.5-1"; sha256="1glz7v7ai9hz1yr27j3zzx0j7b959jssw4d9h1n08rdd8akir5g4"; depends=[foreach lubridate Matrix mcGlobaloptim]; };
@@ -12187,16 +12282,16 @@ in with self; {
   migration_indices = derive2 { name="migration.indices"; version="0.3.0"; sha256="0h0yjcj70wzpgrv3wl1f2h2wangh1klsllq0i0935plgzw736mwd"; depends=[calibrate]; };
   migui = derive2 { name="migui"; version="1.1"; sha256="1qchjsc7ff2b6s9w6ncj9knjv6pyp90jd4jxljn2rr1ix1gc45za"; depends=[arm gWidgets2 mi]; };
   miic = derive2 { name="miic"; version="1.5.3"; sha256="1wrvgzi91jirn5n5fvvbhhpcga7l75h149sz1g1r1wbci181l3bg"; depends=[ppcor Rcpp scales]; };
-  mikropml = derive2 { name="mikropml"; version="1.1.1"; sha256="0hkxb21yamvarxlh5m0356a02ijdbq8g1dnmjjd7lcndf9pxzg9d"; depends=[caret dplyr e1071 glmnet kernlab MLmetrics randomForest rlang rpart xgboost]; };
+  mikropml = derive2 { name="mikropml"; version="1.2.0"; sha256="1h4nqmm7cqfsv3dff7akpy3mx3smdgdwak62l5h7lmisfj6xyk87"; depends=[caret dplyr e1071 glmnet kernlab MLmetrics randomForest rlang rpart xgboost]; };
   milorGWAS = derive2 { name="milorGWAS"; version="0.3"; sha256="1z44sbs3lmrx32wagk5rr3rc2k8iqq860fz0bi983llmgmhaqdxn"; depends=[gaston Rcpp RcppEigen]; };
   milr = derive2 { name="milr"; version="0.3.1"; sha256="03hihr1w5j0mlvi5vm9m5vb9i6nyb6lsji3xmv0chpczabd85mzy"; depends=[glmnet numDeriv pipeR Rcpp RcppArmadillo RcppParallel]; };
   mime = derive2 { name="mime"; version="0.12"; sha256="0j9qbq9jfsp61h2d0xmb87pa2wi8nhb1h2wih7l5drf1sr8i0059"; depends=[]; };
   mimi = derive2 { name="mimi"; version="0.2.0"; sha256="1ig34qd37my74nmlv3jcfrj7cnd55alxpf2flf2sssk2ws1y56xh"; depends=[data_table doParallel FactoMineR foreach glmnet rARPACK softImpute]; };
   mimsy = derive2 { name="mimsy"; version="0.6.2"; sha256="01dy1fryrgq07jdfnxcnks97h0gq632dvqk7hnfs0f5fnx0k0vvf"; depends=[dplyr lubridate magrittr openxlsx]; };
-  minMSE = derive2 { name="minMSE"; version="0.3.1"; sha256="0xzd2hw7ga5fi54d35vr9n3sbnp6acak27fl4lv089sn1ig6s95p"; depends=[MASS]; };
+  minMSE = derive2 { name="minMSE"; version="0.5.1"; sha256="1fj6njqdc6zn73n2q60x01znwn6xlprjldwy5c13d8rd1n5shccm"; depends=[MASS Rcpp]; };
   minSNPs = derive2 { name="minSNPs"; version="0.0.1"; sha256="0kj3kalr11c4jab9b5w0i2w2z0dsdmm22szgfzyrc3y2w6jdhvjw"; depends=[BiocParallel]; };
   mind = derive2 { name="mind"; version="0.1.4"; sha256="0zalbxd4mbi5snidz60pdnm1bkgbp5pabwc4p3qfvix6ll863kmc"; depends=[data_table dplyr JWileymisc MASS Matrix qdap]; };
-  mindr = derive2 { name="mindr"; version="1.2.3"; sha256="1slglva5ipbzj748k7rxvlw6g2iqdkvyf8qnplnzcjc2qsjljd1q"; depends=[data_tree htmlwidgets jsonlite knitr]; };
+  mindr = derive2 { name="mindr"; version="1.3.2"; sha256="0nv3wripimpbi8zf1h8fkj80ibrzava36kcai9f1gl8frincafr9"; depends=[htmlwidgets knitr]; };
   mineCitrus = derive2 { name="mineCitrus"; version="1.0.0"; sha256="031nfhrsc5rlqls3vyrk18lx0pd4ssdk96cmfr4ifaciz0rgv8h2"; depends=[ggplot2]; };
   minerva = derive2 { name="minerva"; version="1.5.10"; sha256="03srkii3rmx40lyr050bnrxil6w0hfv5pr64k339m66ciwyka9ig"; depends=[Rcpp RcppArmadillo]; };
   miniCRAN = derive2 { name="miniCRAN"; version="0.2.14"; sha256="1i1rf97m7c8x65rfy8c26l0kbl4zq7ha1f9yi413fk9jlngxajj3"; depends=[assertthat httr igraph]; };
@@ -12242,6 +12337,7 @@ in with self; {
   missMethods = derive2 { name="missMethods"; version="0.2.0"; sha256="0rsx7fdg0k8ajpj81ybl2jc9s8sprc2si6zx7mkvcqgw9iacrdik"; depends=[]; };
   missRanger = derive2 { name="missRanger"; version="2.1.3"; sha256="1kk64q9ip6hhjcyrvnm5yd8ikilrvvw1vjz8166c6jb8xrqwbb2v"; depends=[FNN ranger]; };
   missSBM = derive2 { name="missSBM"; version="1.0.1"; sha256="1hy9q27sqgasd60davx53z33m8f3ilzrlqv0xcrpd84l8ahi6wrk"; depends=[future_apply ggplot2 igraph magrittr Matrix nloptr R6 Rcpp RcppArmadillo rlang sbm]; };
+  missSOM = derive2 { name="missSOM"; version="1.0.0"; sha256="02hi37jha49dppcv5cyzpcayb4b7mpmcp56nspbrlnxp9dgy7pim"; depends=[kpodclustr Rcpp]; };
   missingHE = derive2 { name="missingHE"; version="1.4.1"; sha256="1bxpp88rwnv4fc9lm606cczj1dx63p507sqsr71dblgsfw3aw7xy"; depends=[bayesplot BCEA coda ggmcmc ggplot2 ggpubr ggthemes gridExtra loo mcmcplots mcmcr R2jags]; };
   mistat = derive2 { name="mistat"; version="2.0.3"; sha256="068ycnnkqcmf3sracsa279lggyc1qxdkpcba7ghax0xl4y505yxj"; depends=[]; };
   mistr = derive2 { name="mistr"; version="0.0.4"; sha256="0jb0qmraghn8gy1bxmfh0jnbfp0b38bxidl0cxkxg9lbfmi0irlq"; depends=[bbmle]; };
@@ -12273,7 +12369,6 @@ in with self; {
   mixedsde = derive2 { name="mixedsde"; version="5.0"; sha256="0ss1ng4nx91gxj85wxxfyh9ljxsj3ag6lsj1a5d2815p9jzl7dsv"; depends=[MASS moments plot3D sde]; };
   mixexp = derive2 { name="mixexp"; version="1.2.5"; sha256="0nbf10xhrr51rb1b2apcj4p3ci8xbi7flgz500ar3mxh8h8l74sq"; depends=[daewr gdata lattice]; };
   mixl = derive2 { name="mixl"; version="1.3.2"; sha256="0adxbwh8zlcg076baj5b5dglfsphliz5gz9xk82xkbnlqawmj33k"; depends=[maxLik numDeriv randtoolbox Rcpp readr sandwich stringr]; };
-  mixlink = derive2 { name="mixlink"; version="0.1.5"; sha256="0ywgrcplhspc0x5fniw52xqz20y7j9mwgy4ky8lv3vii659mr52m"; depends=[mvtnorm numDeriv Rcpp RcppGSL]; };
   mixlm = derive2 { name="mixlm"; version="1.2.5"; sha256="0k7sy2bkf6vsp5qkz33327p1kjyzn3cxmxzc6dmw6g29c4dyxkac"; depends=[car leaps multcomp pls pracma]; };
   mixmeta = derive2 { name="mixmeta"; version="1.2.0"; sha256="093f6jjq0hc49k5kmjp17s2lv3swpssfxnra80bwv59ggav8w8d8"; depends=[]; };
   mixpoissonreg = derive2 { name="mixpoissonreg"; version="1.0.0"; sha256="1pk45p96kwl3gvi5523vm824s1bb5aqpn9qqpqy8kjy2pd2a4k32"; depends=[dplyr Formula gamlss gamlss_dist generics ggplot2 ggrepel gridExtra lmtest magrittr pbapply Rfast rlang statmod tibble]; };
@@ -12307,13 +12402,13 @@ in with self; {
   mleur = derive2 { name="mleur"; version="1.0-6"; sha256="0mddphq3b6y2jaafaa9y41842kcaqdl3dh7j4pva55q2vcjcclj7"; depends=[fGarch lattice stabledist urca]; };
   mlf = derive2 { name="mlf"; version="1.2.1"; sha256="09ihnibpknpp26hdlbxyr99yz7z0n8qpsjs5aq3zngng0yh3wdn9"; depends=[]; };
   mlfit = derive2 { name="mlfit"; version="0.5.3"; sha256="0nyk5vmy2gkpz022djacy80gibskv96z0rsmjz2rw14zhc5kizsh"; depends=[BB dplyr forcats hms kimisc lifecycle Matrix plyr rlang tibble wrswoR]; };
-  mlflow = derive2 { name="mlflow"; version="1.20.2"; sha256="1m11vn9ip9fsd7amn1j0l7bsrb1jiapnspbbnpbcg860z37jaix9"; depends=[base64enc forge fs git2r glue httpuv httr ini jsonlite openssl processx purrr reticulate rlang swagger tibble withr xml2 yaml zeallot]; };
+  mlflow = derive2 { name="mlflow"; version="1.21.0"; sha256="1rdgrhxmfnx5wyq2xg5p373janz72q89ghg827hrazj70c1zphil"; depends=[base64enc forge fs git2r glue httpuv httr ini jsonlite openssl processx purrr reticulate rlang swagger tibble withr xml2 yaml zeallot]; };
   mlgt = derive2 { name="mlgt"; version="0.16"; sha256="1nvdq6mvgr39ikkf73aggsb6pmbw132injj8fdkr8hgcmwm6lgd9"; depends=[seqinr]; };
   mlica2 = derive2 { name="mlica2"; version="2.1"; sha256="0c3m1zd9x99n6lw12hfzmd59355z51xa8rhg1h7qwfn9p86r826f"; depends=[]; };
   mlmRev = derive2 { name="mlmRev"; version="1.0-8"; sha256="0ln4nazhc1prnlmvhfzhx268vx3klb0xnz1nsiwh0pwyskskyzym"; depends=[lme4]; };
   mlma = derive2 { name="mlma"; version="6.1-1"; sha256="1z3v00g7ji0xkpz9ri4li3r7s8g2rcp2pc1p060cwsaidizs38dr"; depends=[abind car coxme gplots lme4 survival]; };
   mlmc = derive2 { name="mlmc"; version="1.0.0"; sha256="01h7w0ajyg3bccynlpbi3yjpy089wczbfbajpg6yw5v4dppw7k7a"; depends=[ggplot2 Rcpp]; };
-  mlmi = derive2 { name="mlmi"; version="1.1.0"; sha256="09c4gxbi561ms30nhjjvmw94l1hzh6j64gp9cq4c5zf2f0fsgzyc"; depends=[cat gsl MASS Matrix mix nlme norm]; };
+  mlmi = derive2 { name="mlmi"; version="1.1.1"; sha256="0ksx5qih54ww983ycs08hhr50ms2c2k6pk07mrcwdgli7irzc2cc"; depends=[cat gsl MASS Matrix mix nlme norm]; };
   mlmm_gwas = derive2 { name="mlmm.gwas"; version="1.0.6"; sha256="14xp8k7sww1skyw5l2006gpaw2c6yrri5nmfx4yav4vqdlhcj2k1"; depends=[coxme Matrix multcomp multcompView sommer]; };
   mlmmm = derive2 { name="mlmmm"; version="0.3-1.2"; sha256="1m5ziiqs3ll1xjm1yf7x4sdc910jypn3kjnbadf95xxkvqmfrsqq"; depends=[]; };
   mlogit = derive2 { name="mlogit"; version="1.1-1"; sha256="0hyi6gi03n895iydrfr1ba2ifbsd6lyjyhkq62d95ghhniysjgkg"; depends=[dfidx Formula lmtest MASS Rdpack statmod zoo]; };
@@ -12321,27 +12416,28 @@ in with self; {
   mlpack = derive2 { name="mlpack"; version="3.4.2.1"; sha256="0fqpajcmqn9rijzjg7qj0zd2lik4xmhp5dmhbm3mdc9ssdg0axbr"; depends=[BH Rcpp RcppArmadillo RcppEnsmallen]; };
   mlquantify = derive2 { name="mlquantify"; version="0.1.5"; sha256="00fxsg5p1fv1x102gz4541swinbc3c592qlfp123hy25h4bgdarj"; depends=[caret randomForest]; };
   mlr = derive2 { name="mlr"; version="2.19.0"; sha256="04v1br59ykzhzaiybjyyknbrc7ai5nl5l106b7482r49afscjj8i"; depends=[backports BBmisc checkmate data_table ggplot2 parallelMap ParamHelpers stringi survival XML]; };
-  mlr3 = derive2 { name="mlr3"; version="0.12.0"; sha256="0nimwczsgrj29r9qrlz32qc3fkj02369zql7jhkrn3lk3mfy5zmz"; depends=[backports checkmate data_table future future_apply lgr mlbench mlr3measures mlr3misc palmerpenguins paradox parallelly R6 uuid]; };
+  mlr3 = derive2 { name="mlr3"; version="0.13.0"; sha256="1729wbdp62cjjk775qxrahyskp191s9qqnmqbxncfjrpdxphxk34"; depends=[backports checkmate data_table future future_apply lgr mlbench mlr3measures mlr3misc palmerpenguins paradox parallelly R6 uuid]; };
   mlr3benchmark = derive2 { name="mlr3benchmark"; version="0.1.3"; sha256="0j56l8yi1c0sa3fsychrvv42rpip2d300yccps0bj636c5r7na64"; depends=[checkmate data_table ggplot2 mlr3misc R6]; };
   mlr3cluster = derive2 { name="mlr3cluster"; version="0.1.2"; sha256="15sbxpp3lawh30dh3hznig12xp68p83p4rz6si6b6jjddcgsw3rq"; depends=[backports checkmate clue clusterCrit data_table mlr3 mlr3misc paradox R6]; };
   mlr3data = derive2 { name="mlr3data"; version="0.5.0"; sha256="1bck1rsnp4a9bkzyjrdxn1n12lkgkj0gwiwxrf9maj0l8x3kfpyw"; depends=[]; };
-  mlr3db = derive2 { name="mlr3db"; version="0.4.1"; sha256="0b1488iw4hismhirylf4qi9pn6qwh8125pxkd5fds5l50wc5m59l"; depends=[backports checkmate data_table digest mlr3 mlr3misc R6]; };
+  mlr3db = derive2 { name="mlr3db"; version="0.4.2"; sha256="17gahnzhraixxxmyinsh1pnrsfqy5kznw5ynfcwyrzpbinx4drih"; depends=[backports checkmate data_table mlr3 mlr3misc R6]; };
   mlr3filters = derive2 { name="mlr3filters"; version="0.4.2"; sha256="1xlyj7ai230pmcqgyj2zkhqjw819fy88b3ismc4hnq7gwkp0z360"; depends=[backports checkmate data_table mlr3 mlr3misc paradox R6]; };
   mlr3fselect = derive2 { name="mlr3fselect"; version="0.6.0"; sha256="1xzwzxffa4lwdmpqrg05vgj4pfr3rph5zq4123ssjn5b5396shiz"; depends=[bbotk checkmate data_table lgr mlr3 mlr3misc mlr3pipelines paradox R6]; };
   mlr3hyperband = derive2 { name="mlr3hyperband"; version="0.2.0"; sha256="0jdgmnxq1f9h7zlhdrafs21r80216lwfgd450swm7p4ibnd93fy4"; depends=[bbotk checkmate data_table lgr mlr3 mlr3misc mlr3tuning paradox R6]; };
-  mlr3learners = derive2 { name="mlr3learners"; version="0.5.0"; sha256="1gkbbn5ah2iv4pv5q2jf4lrqkga744d4y9jlyhyjqf0x75y9wkg2"; depends=[checkmate data_table mlr3 mlr3misc paradox R6]; };
+  mlr3learners = derive2 { name="mlr3learners"; version="0.5.1"; sha256="1yc3mrk1b9h1k342wnw7sm4zmcw7w31l5ybh558g88f5hmibdl98"; depends=[checkmate data_table mlr3 mlr3misc paradox R6]; };
   mlr3measures = derive2 { name="mlr3measures"; version="0.4.0"; sha256="1qlqfan5akz42zwkcz3ncln6rd9c302dy4cyp7nx0jcafr5i459f"; depends=[checkmate PRROC]; };
-  mlr3misc = derive2 { name="mlr3misc"; version="0.9.4"; sha256="14lcpvxrrl68l3khmy5r266b7yjjlg97pz4xvha0ypx8hlpbqik2"; depends=[backports checkmate data_table digest R6]; };
+  mlr3misc = derive2 { name="mlr3misc"; version="0.9.5"; sha256="1ax1mvnm8xjcskq12x63jkal766v1zwilpgrkdv6yawd7yrww4q9"; depends=[backports checkmate data_table digest R6]; };
   mlr3oml = derive2 { name="mlr3oml"; version="0.5.0"; sha256="1w4hjzzmy968mzgyg6ybcpq09n9zkhiwi2ccm41rvwaysl27rgfd"; depends=[backports checkmate curl data_table jsonlite lgr mlr3 mlr3misc R6 stringi]; };
-  mlr3pipelines = derive2 { name="mlr3pipelines"; version="0.3.6-1"; sha256="00v39y50krmjbmk63j7kc8zgdkwi2m4l6r7j5913ghiy9f9394wc"; depends=[backports checkmate data_table digest lgr mlr3 mlr3misc paradox R6 withr]; };
+  mlr3pipelines = derive2 { name="mlr3pipelines"; version="0.4.0"; sha256="0913f67c1r9bi68gxh1prsp0vch21bl6plahnvjrlbq8rrs1sr6p"; depends=[backports checkmate data_table digest lgr mlr3 mlr3misc paradox R6 withr]; };
   mlr3proba = derive2 { name="mlr3proba"; version="0.4.2"; sha256="01k49spc52i8bnwi61b1knw0xnll4hgd489pswfdm7367yskhb2r"; depends=[checkmate data_table distr6 mlr3 mlr3misc paradox R6 Rcpp survival]; };
   mlr3shiny = derive2 { name="mlr3shiny"; version="0.2.0"; sha256="0s581aqi3a3kg35db0gnsmmg62zwl5bij4vbszjhc63i3xg0ayiz"; depends=[data_table DT e1071 mlr3 mlr3learners mlr3measures plyr purrr ranger readxl shiny shinyalert shinydashboard shinyjs shinythemes shinyWidgets stringr]; };
+  mlr3spatial = derive2 { name="mlr3spatial"; version="0.1.0"; sha256="14wbdgad7ajmwg7gz91gpdd5wvvrxmkzsk40vgfgbybmffz7zafb"; depends=[checkmate data_table lgr mlr3 mlr3misc R6 terra]; };
   mlr3spatiotempcv = derive2 { name="mlr3spatiotempcv"; version="1.0.0"; sha256="0y04w96xk3m786aamqv9p91gqqyi19dc0shgkwlba32lkd5rqj0w"; depends=[checkmate data_table ggplot2 mlr3 mlr3misc paradox R6]; };
   mlr3tuning = derive2 { name="mlr3tuning"; version="0.9.0"; sha256="0i428kdbak81j1wlwmdf9y40hqi63azhyny802ms2z04wl8lwnvs"; depends=[bbotk checkmate data_table digest lgr mlr3 mlr3misc paradox R6]; };
   mlr3tuningspaces = derive2 { name="mlr3tuningspaces"; version="0.0.1"; sha256="1fr536xy23rglmy4rlk3fb7d29hb5s3vkyx530s7d8i1gwxad9xv"; depends=[checkmate data_table mlr3 mlr3misc mlr3tuning paradox R6]; };
   mlr3verse = derive2 { name="mlr3verse"; version="0.2.2"; sha256="1rgvhxjqxdrdhbslfxcli4mlafgvswc164yzv7rms60asvq1sndw"; depends=[bbotk data_table mlr3 mlr3cluster mlr3data mlr3filters mlr3fselect mlr3learners mlr3misc mlr3pipelines mlr3proba mlr3tuning mlr3viz paradox]; };
   mlr3viz = derive2 { name="mlr3viz"; version="0.5.7"; sha256="1agl6s6i9l7mk8mrvmnz7csqsc77dwjnymlrqcy5vxddr2nfc47l"; depends=[checkmate data_table ggplot2 mlr3misc]; };
-  mlrCPO = derive2 { name="mlrCPO"; version="0.3.7-2"; sha256="01n36nh9brb5kkgmxblmcz86gzrrjgg1bi0xmkyyx1qp57qx33p6"; depends=[backports BBmisc checkmate mlr ParamHelpers stringi]; };
+  mlrCPO = derive2 { name="mlrCPO"; version="0.3.7-3"; sha256="0vq163ca446l2sb3jbn8wmvj26zsrpz52b1w7d8xgb0jjf2jhp91"; depends=[backports BBmisc checkmate mlr ParamHelpers stringi]; };
   mlrMBO = derive2 { name="mlrMBO"; version="1.1.5"; sha256="1f2ryd0mrlnnwxgwiria2sxqkb09kskfqjzsh32cbxh6ml4d3fbs"; depends=[backports BBmisc checkmate data_table lhs mlr parallelMap ParamHelpers smoof]; };
   mlrintermbo = derive2 { name="mlrintermbo"; version="0.5.0"; sha256="1nyaqf6vkckdh7jb27iwv5dnvrh4bp0kkc5jzbqkyi8af11phg1l"; depends=[backports bbotk callr checkmate data_table lhs mlr3misc mlr3tuning paradox R6]; };
   mlsbm = derive2 { name="mlsbm"; version="0.99.2"; sha256="1p6fflhjbbyzx51hb77aak1kdabjrmzd7b47vdcanhb0vd263aby"; depends=[Rcpp RcppArmadillo]; };
@@ -12366,7 +12462,6 @@ in with self; {
   mmm2 = derive2 { name="mmm2"; version="1.2"; sha256="1h9pn5s3jjs4bydrr1qysjb4hv7vs4h3m7mvi22ggs2dzyz3b298"; depends=[gee]; };
   mmmgee = derive2 { name="mmmgee"; version="1.20"; sha256="0y3pwnc9h7y2l9cvgfl62nl1vnnkla2y8082jhdvxsb3mk88rgad"; depends=[Matrix mvtnorm]; };
   mmod = derive2 { name="mmod"; version="1.3.3"; sha256="1dz6887mlqbagjj98wcabmxj9hvsz8pgsizy1fqkwjhhs44c62y4"; depends=[adegenet pegas]; };
-  mmpca = derive2 { name="mmpca"; version="2.0.1"; sha256="05vir7hjv5dccfcizyn5n6qxx2p53111if16l44a7ifg5k599xj9"; depends=[digest gsl Rcpp RcppEigen]; };
   mmpf = derive2 { name="mmpf"; version="0.0.5"; sha256="1w1ll1l7yzwb1wmlrcfpgqyzni7yb20kxy422y867hx2ndxlfwpz"; depends=[checkmate data_table]; };
   mmpp = derive2 { name="mmpp"; version="0.6"; sha256="16aypjf4i0ya3qgxqrrg8y0xbnq1pnqky1dpkgln5q494hphyg91"; depends=[]; };
   mmr = derive2 { name="mmr"; version="0.1.0"; sha256="0by2v47b4kpjhfxzzl6kc1shw7g46nwnww4rq333r2cywvrbkk4w"; depends=[]; };
@@ -12414,7 +12509,7 @@ in with self; {
   modelimpact = derive2 { name="modelimpact"; version="1.0.0"; sha256="16sy7r6bw5nzx77rd27ihgvp7bs39xchgid94ssklj6syc3kn2vq"; depends=[dplyr magrittr]; };
   modelplotr = derive2 { name="modelplotr"; version="1.1.0"; sha256="0i1ssfcyl97zaxc9khdngrmsq9ydrmgv2nd7c6kc6i9z93jbkk4k"; depends=[dplyr ggfittext ggplot2 gridExtra magrittr RColorBrewer rlang scales]; };
   modelr = derive2 { name="modelr"; version="0.1.8"; sha256="1i31nff7bqibk6r4hhd4j1vzwbyaf8493v0bjaagn36njmysfnw2"; depends=[broom magrittr purrr rlang tibble tidyr tidyselect vctrs]; };
-  modelsummary = derive2 { name="modelsummary"; version="0.9.2"; sha256="1wmw309r5g2qh7z5ry3p8a1336abbs0pmrsh11civb8l861bs6m2"; depends=[broom checkmate generics glue insight kableExtra parameters performance rlang tables]; };
+  modelsummary = derive2 { name="modelsummary"; version="0.9.4"; sha256="0dpzhvkcbc52ykxn7ccb6aapl65p7zzs82bg585g4clakldb9q6c"; depends=[broom checkmate generics glue insight kableExtra parameters performance rlang tables]; };
   modeltests = derive2 { name="modeltests"; version="0.1.4"; sha256="0ii5sh8yz5yvf0gq41ia55dvbg8x9042x82j52ck6haxa0w8zpfy"; depends=[dplyr generics purrr testthat tibble]; };
   modeltime = derive2 { name="modeltime"; version="1.1.0"; sha256="005jj1n6z343h9wspli7hxjmy2zxjkl7rkzc0bapl76j44rv022r"; depends=[cli dials doParallel dplyr forcats foreach forecast ggplot2 glue gt hardhat janitor magrittr parsnip plotly prophet purrr reactable rlang scales StanHeaders stringr tibble tidyr timetk workflows xgboost yardstick]; };
   modeltime_ensemble = derive2 { name="modeltime.ensemble"; version="1.0.0"; sha256="01mi6pkjn97c77kyddz6xsyz11kchkdqy6672p8r96h0wy7530a1"; depends=[cli doParallel dplyr foreach generics glue magrittr modeltime modeltime_resample parsnip purrr recipes rlang rsample stringr tibble tictoc tidyr timetk tune workflows yardstick]; };
@@ -12446,7 +12541,7 @@ in with self; {
   molaR = derive2 { name="molaR"; version="4.5"; sha256="1mfb05cfg0jh60yxnmwhja6m38185r58kbz2ak0ikgaqd9lls07s"; depends=[alphahull rgl Rvcg]; };
   molic = derive2 { name="molic"; version="2.0.3"; sha256="1qgb63wl5726mypv0f07wcf3aznl93vh045ghx66hiqj3kzfir2b"; depends=[doParallel ess foreach ggplot2 ggridges Rcpp]; };
   molnet = derive2 { name="molnet"; version="0.1.0"; sha256="1ha1jyh3mmbv2zgr2zrrjmslwd1gyy04hvqjk4d3ap2kna35wlgk"; depends=[dplyr igraph magrittr readr Rfast rlang stringr tibble tidyr WGCNA]; };
-  mombf = derive2 { name="mombf"; version="3.0.6"; sha256="1pan5xrd70qdl4rzjxbvyp48lmfabv4w4fx6srch7i17ifzc3yp5"; depends=[mclust mgcv mvtnorm ncvreg Rcpp RcppArmadillo survival]; };
+  mombf = derive2 { name="mombf"; version="3.0.7"; sha256="07z6y1w87svifvx6fz5z08mfgz2hasyzkcw6kkysjb1n11pynvp5"; depends=[mclust mgcv mvtnorm ncvreg Rcpp RcppArmadillo survival]; };
   momentchi2 = derive2 { name="momentchi2"; version="0.1.5"; sha256="1fv0jmwws4mkl9dsaybfpj29ncvqx2idsijgwz2qjblcg309a6k9"; depends=[]; };
   momentfit = derive2 { name="momentfit"; version="0.2"; sha256="1xh3w3bwr2k4a79vma5cmz0l995nwbih0j7sgv3bjqdv4fn463d1"; depends=[sandwich]; };
   moments = derive2 { name="moments"; version="0.14"; sha256="0f9y58w1hxcz4bqivirx25ywlmc80gbi6dfx5cnhkpdg1pk82fra"; depends=[]; };
@@ -12454,16 +12549,15 @@ in with self; {
   momr = derive2 { name="momr"; version="1.1"; sha256="091vzaw8dm29q89lg2iys25rbg2aslgdn9sk06x038nngxdrn95r"; depends=[gplots Hmisc nortest]; };
   monaco = derive2 { name="monaco"; version="0.2.1"; sha256="1wwfwxv8064icdi6fhyrp3mrpv37x0cnnwdb5k1b88jfzb7j1hb6"; depends=[htmltools htmlwidgets rstudioapi shiny]; };
   mondate = derive2 { name="mondate"; version="0.10.02"; sha256="18nsqldj1vvv882nh2dyilqvz1jbhqkz3q69cpjq1xfcj0z88qxz"; depends=[]; };
-  mongolite = derive2 { name="mongolite"; version="2.3.1"; sha256="0r7b5cxy5mjxsm9kqpaqqs8v0z9ysxhgbzy4y016hj9sn25ix60s"; depends=[jsonlite mime openssl]; };
+  mongolite = derive2 { name="mongolite"; version="2.4.1"; sha256="0y5g55nkmvgc5wd6lld1435g0szr0niphlnc96fm9pla4f6c4c0a"; depends=[jsonlite mime openssl]; };
   mongopipe = derive2 { name="mongopipe"; version="0.1.1"; sha256="081l6d1kwh30wq5kwz9dd2a9221x9139x1xbvfiqixwv0g9sjjy0"; depends=[jsonlite magrittr rlang]; };
   monitoR = derive2 { name="monitoR"; version="1.0.7"; sha256="1h1g0m1j13mz37xxwck4s7a0bfqvi0nrzfw60j7bkzaah8zxcc9n"; depends=[tuneR]; };
   monmlp = derive2 { name="monmlp"; version="1.1.5"; sha256="19cx60csm8mnf6ksg64vlhi8wi1c7bmv9l55y9zmaljblr0kmzxf"; depends=[optimx]; };
   monoClust = derive2 { name="monoClust"; version="1.2.1"; sha256="18zb4wfb09rpzzr9bc0nr71994nhgsk74s512dxlss50isvfqjqd"; depends=[cluster doParallel dplyr foreach ggplot2 permute purrr rlang stringr tibble tidyr]; };
-  monobin = derive2 { name="monobin"; version="0.2.0"; sha256="1ajxh0p685p143y2wjg2gp35dvxbyq6921x3kz3znl0c1x4z6hgs"; depends=[dplyr Hmisc]; };
-  monobinShiny = derive2 { name="monobinShiny"; version="0.0.9"; sha256="0cd54zqj4y8ii2m5jhn5fz77zylfds030rhf709wlmgj96s0i750"; depends=[dplyr DT monobin shiny shinydashboard shinyjs]; };
+  monobin = derive2 { name="monobin"; version="0.2.1"; sha256="13261k81xpjvbjny938y124r2cqn36c93s177gbg1m0c8k4jlb4i"; depends=[dplyr Hmisc]; };
+  monobinShiny = derive2 { name="monobinShiny"; version="0.1.0"; sha256="1ix376j39fby5571irf8i5bmz8i7nnvfzbvs5cv0k42dcgq93m0g"; depends=[dplyr DT monobin shiny shinydashboard shinyjs]; };
   monographaR = derive2 { name="monographaR"; version="1.2.1"; sha256="09fkcw13h7dx7j5vyp48fk6yzv9n64568zf2zvmm2c008jw3gkbm"; depends=[circular maptools png raster rmarkdown sp]; };
   monomvn = derive2 { name="monomvn"; version="1.9-13"; sha256="1hm5qf28bh0q7f4zcjqx1qxw3l8hzkx349c1y3nwyfg7436vff6a"; depends=[lars MASS mvtnorm pls quadprog]; };
-  monoreg = derive2 { name="monoreg"; version="1.2"; sha256="16n622j1j998a5fhn1c1qbzk5bfa5h09d95ry89gsd00p40hqg0a"; depends=[]; };
   monotone = derive2 { name="monotone"; version="0.1.0"; sha256="1091xqa88gdp64b65610mfcknyz29kb980iqbvwnmlk12csszr1w"; depends=[]; };
   monotonicity = derive2 { name="monotonicity"; version="1.3.1"; sha256="0bb6sl8yykry25a86qfggi36ggr1xrxcqsnzp6rb6na228hbwa2z"; depends=[lmtest MASS sandwich]; };
   monreg = derive2 { name="monreg"; version="0.1.4"; sha256="15qgfhbd8ny05rjd1nn33ynh4i7m7wcy8az53jraghlk760bymwg"; depends=[]; };
@@ -12481,7 +12575,6 @@ in with self; {
   mortAAR = derive2 { name="mortAAR"; version="1.1.1"; sha256="0as88rl4v2shrfjqpvjajnb2wj00n3fj8mzj4g0ssywmccxji5ag"; depends=[magrittr Rdpack reshape2 tibble]; };
   mortyr = derive2 { name="mortyr"; version="0.0.2"; sha256="0flihmkzw8dypp2ijq22cd3rka6h8cd1qdyr4zrs9cv5335nddmk"; depends=[httr jsonlite tibble]; };
   mosaic = derive2 { name="mosaic"; version="1.8.3"; sha256="1y0isqbva0vi5zlx1xvixbq87n4xp66ljh43qnd0cpzaz0mn21cg"; depends=[broom dplyr ggdendro ggformula ggplot2 ggrepel ggridges ggstance glue gridExtra lattice latticeExtra leaflet MASS Matrix mosaicCore mosaicData readr rlang tidyr]; };
-  mosaic_find = derive2 { name="mosaic.find"; version="0.1.2"; sha256="1fzgksh8sp701qjfrvjl2bg967qjkjpilxsfkrazhw71cgmzjgjl"; depends=[minpack_lm]; };
   mosaicCalc = derive2 { name="mosaicCalc"; version="0.5.1"; sha256="0w5j7q314hzfzaw24ych2dhn255lnn3w0x4xr47qc1zclbmbny91"; depends=[ggformula magrittr MASS mosaic mosaicCore rlang]; };
   mosaicCore = derive2 { name="mosaicCore"; version="0.9.0"; sha256="1h3ixzna4xy42rdnd89jj0v9q0riy3fnkd33z6l5c0zaidzm58fz"; depends=[dplyr MASS rlang tidyr]; };
   mosaicData = derive2 { name="mosaicData"; version="0.20.2"; sha256="0h3f5fgzkzjfgf3ml0qa5j52921y6wy6jgggxmhs31bs8fd4srg4"; depends=[]; };
@@ -12490,7 +12583,7 @@ in with self; {
   mosqcontrol = derive2 { name="mosqcontrol"; version="0.1.0"; sha256="199rkfisagr4kfx358f8yrbls00fng0kq8siyrbfwwf8qrba9fla"; depends=[assertthat magrittr NlcOptim nloptr pracma sfsmisc]; };
   mosum = derive2 { name="mosum"; version="1.2.6"; sha256="1xbh06sxvqgwqmid2x1lba43b20ma0gpw8mqgjnii51g7masb9kb"; depends=[plot3D RColorBrewer Rcpp]; };
   motif = derive2 { name="motif"; version="0.5.0"; sha256="1lvybnahxg5xr1rqih1nczqgywcywnjwzdix8asgyl0ayh9fsv21"; depends=[comat philentropy Rcpp RcppArmadillo sf stars tibble]; };
-  motifcluster = derive2 { name="motifcluster"; version="0.1.1"; sha256="1a123djc476hf528h68f1l1sh47ljxh23hmp8j22fypiaci1a3av"; depends=[igraph LICORS Matrix RSpectra]; };
+  motifcluster = derive2 { name="motifcluster"; version="0.1.2"; sha256="11qv4289qvh7gsbcz42hdlfbrgjvb390pjyf2imdih2xd7bk48fa"; depends=[igraph LICORS Matrix RSpectra]; };
   motifr = derive2 { name="motifr"; version="1.0.0"; sha256="01synariq39mzhx12jbcpwn982piakakl97sgs33xa8xrbwzcxgm"; depends=[dplyr ggplot2 ggraph igraph intergraph network purrr RColorBrewer reshape2 reticulate rlang scales tibble tidygraph]; };
   motmot = derive2 { name="motmot"; version="2.1.3"; sha256="09qsyc4ifdl316kjqqkarmflpjcd0ivkhx5fzi3502anj6dxpjnq"; depends=[ape caper coda ks mvtnorm Rcpp]; };
   motoRneuron = derive2 { name="motoRneuron"; version="1.0.0"; sha256="1hdsf4c1v5hfaqpi5y1v60zqq5fdmlqdvzpsq77diclp9vzdshja"; depends=[dygraphs ggplot2]; };
@@ -12579,14 +12672,15 @@ in with self; {
   msmtools = derive2 { name="msmtools"; version="2.0.1"; sha256="09an9bpr0gnqbglb8kj4x8bb7f5dm2lc3d01wx6dh7j1d99vrrdk"; depends=[data_table ggplot2 msm patchwork scales survival]; };
   msos = derive2 { name="msos"; version="1.2.0"; sha256="1fg9q6269cckn4g6isv22k22mzglxhjxjg5npqsikmisribmr9kb"; depends=[mclust tree]; };
   mssm = derive2 { name="mssm"; version="0.1.5"; sha256="0mwcbqndaczxxg9pvzpgd6j5v73pp5cplah4ss48h7sh984nbjwx"; depends=[nloptr Rcpp RcppArmadillo testthat]; };
-  mssqlR = derive2 { name="mssqlR"; version="1.0.0"; sha256="0qdnm7cx9cg14vfcnkmcjqr1jpxsw8xlrbnxldvzz44mzv2n878l"; depends=[magrittr RODBC]; };
   mstDIF = derive2 { name="mstDIF"; version="0.1.6"; sha256="0zhslqzvvk8wbgqvcipmzhy94awwfmkv5yfl812m8wmwgpkcqzpb"; depends=[eRm expm Matrix mirt PP scDIFtest]; };
   mstR = derive2 { name="mstR"; version="1.2"; sha256="0v8cv9pswkvw0lva6jx5vavsb20dawgq83gn4rgydyhvigcl5szd"; depends=[]; };
-  mstate = derive2 { name="mstate"; version="0.3.1"; sha256="11i3p7fph8nbnfis1m7rdrq32qryaajv2wrkxk1x6k17zkh4rq6i"; depends=[data_table lattice magrittr RColorBrewer rlang survival viridis]; };
+  mstate = derive2 { name="mstate"; version="0.3.2"; sha256="054dzrd5b0xjjjl7862q3aq1jwgrxbkqz7zpvbdirqsld3zksirw"; depends=[data_table lattice RColorBrewer rlang survival viridisLite]; };
   mstherm = derive2 { name="mstherm"; version="0.4.7"; sha256="04jrp0w17svwmrvx356jmh04npbwhk9nvfy3r39vqr82yrvn6jip"; depends=[doParallel foreach nls2 plotrix RColorBrewer]; };
   mstknnclust = derive2 { name="mstknnclust"; version="0.3.1"; sha256="0bg38gnaf2jjva8l2wk862ch2cpqvw7szvvvpb2bnz02fp795p3g"; depends=[igraph]; };
   mstrio = derive2 { name="mstrio"; version="11.3.0.1"; sha256="1qjqxrgy2amm0ikfixkqjix3d6jzh1y3abnbzq41ibl5qiz8pjxy"; depends=[crul data_table httr jsonlite openssl R6 rstudioapi shiny shinyjs]; };
   msu = derive2 { name="msu"; version="0.0.1"; sha256="1vhh9725dbywmzihnmsq1jircpn91r8227j2f76fvma9rwss90p7"; depends=[entropy]; };
+  mt = derive2 { name="mt"; version="2.0-1.18"; sha256="11a01ji5vniz82y56wpdv5j10kfp9c982lhdl0d8xnqkw4xgw06b"; depends=[class e1071 ellipse lattice latticeExtra MASS pls randomForest]; };
+  mtb = derive2 { name="mtb"; version="0.1.1"; sha256="1ncisrv738s0ddripji02pyykkb1h25z5dpn5asqgjp0qp5611qv"; depends=[ggplot2 htmltools labeling scales]; };
   mtconnectR = derive2 { name="mtconnectR"; version="1.2.1"; sha256="0hl46h535mjqwgrhmxlixhfsych3blzcynffp55nr1ynrra4dn06"; depends=[data_table dplyr dtw ggplot2 lubridate magrittr plyr proxy stringr tidyr XML]; };
   mthapower = derive2 { name="mthapower"; version="0.1.1"; sha256="0g6dn0qn7z6qc1gbzspy1n7b803427bc9fv5yqk7j8i1is1p8h94"; depends=[]; };
   mtk = derive2 { name="mtk"; version="1.0"; sha256="0vq2xlxf86l92fl91qm8m4yfjyz1h8szmwxiics7sc9f0as0dkmy"; depends=[lhs rgl sensitivity stringr XML]; };
@@ -12629,7 +12723,7 @@ in with self; {
   multichull = derive2 { name="multichull"; version="1.0.0"; sha256="1gc7kxxlbanc6rmmbf6h85jf7kj0a78h23m5vwwqqliv018qsv2n"; depends=[igraph plotly shiny shinythemes]; };
   multiclassPairs = derive2 { name="multiclassPairs"; version="0.4.3"; sha256="0mz15dl3fiznbnfjjmnhr9z6qh43mwafnkisd7svc3cb0lrbbjci"; depends=[Boruta caret dunn_test e1071 ranger rdist]; };
   multicmp = derive2 { name="multicmp"; version="1.1"; sha256="0mz7ksc5h6dy95l3kbsamm191372blhlrj573krc57bj93lmp1a5"; depends=[numDeriv]; };
-  multicolor = derive2 { name="multicolor"; version="0.1.4"; sha256="1yswpqm62cvpfj6zxrprbvamjah3zxhsvn19qgpqmha0098lx5g2"; depends=[cowsay crayon dplyr glue magrittr purrr stringi stringr tibble tidyr]; };
+  multicolor = derive2 { name="multicolor"; version="0.1.5"; sha256="19l564rfsq0l9ipw6p5m1zp0ada2szmk1nxcsll95z4v5z2da2rv"; depends=[cowsay crayon dplyr glue magrittr purrr stringi stringr tibble tidyr]; };
   multicon = derive2 { name="multicon"; version="1.6"; sha256="16glkgnm4vlpxkhf1xw1gl1q10yavx9479i21v29lldag35z8pqx"; depends=[abind foreach mvtnorm psych sciplot]; };
   multicool = derive2 { name="multicool"; version="0.1-12"; sha256="0djacq0irfqz4nlnx238kja73yvr1n5qybbfyl6bw1n6qgcjhza8"; depends=[Rcpp]; };
   multicross = derive2 { name="multicross"; version="2.1.0"; sha256="17hk03wsms9ij6hp6dw77cvvngdb5i66is6pcl1q21pyp327zqi6"; depends=[crossmatch MASS Matrix nbpMatching]; };
@@ -12646,7 +12740,6 @@ in with self; {
   multilevel = derive2 { name="multilevel"; version="2.6"; sha256="19zrvpq23dn69d7kai1rgw5b8ibmgybnbg6isliq0n8bv9jvrzia"; depends=[MASS nlme]; };
   multilevelPSA = derive2 { name="multilevelPSA"; version="1.2.5"; sha256="0926jaicdxk846vyfphb2hyg3zan3wal44x1bwamws0zf4flc4hj"; depends=[ggplot2 MASS party plyr PSAgraphics psych reshape xtable]; };
   multilevelTools = derive2 { name="multilevelTools"; version="0.1.1"; sha256="01fzx7j0mkb4fr7axv34184w6w5nfsdcr51nscci1mi5b2805x1s"; depends=[cowplot data_table extraoperators ggplot2 JWileymisc lavaan lme4 lmerTest nlme zoo]; };
-  multilinguer = derive2 { name="multilinguer"; version="0.0.4"; sha256="0kavgvbzv8bvv9qlr92j8mx7b802w513mqalrdyln0pw36c9i13x"; depends=[askpass fs rstudioapi rvest sys usethis xml2 zip]; };
   multimark = derive2 { name="multimark"; version="2.1.3"; sha256="13arvjxfnxq7dr5r8cqwxxkravwwf4dq5hq263ss353fdi2qv4i0"; depends=[Brobdingnag coda Matrix mvtnorm prodlim raster RMark sp statmod]; };
   multimode = derive2 { name="multimode"; version="1.5"; sha256="0qxb67qss2pmid0wiwblqng5qmihqchdhbkyjklgj20pvbjz1wjm"; depends=[diptest ks rootSolve]; };
   multimorbidity = derive2 { name="multimorbidity"; version="0.5.0"; sha256="1x4869pqckldx6g4zhawjbin03glkxzfszb4qiq7yy2xi444jkl0"; depends=[devtools dplyr lubridate magrittr rlang sqldf stringr tidyr tidyselect tidyverse]; };
@@ -12701,7 +12794,7 @@ in with self; {
   mvPot = derive2 { name="mvPot"; version="0.1.5"; sha256="18kzlz42ridmwjrai6f598vvhmvk7gwyp869qjqclbf9jpc1xlcx"; depends=[evd gmp MASS numbers]; };
   mvProbit = derive2 { name="mvProbit"; version="0.1-10"; sha256="1iy249mc5fi72l0lcvjrn40fn6q1m8hj8njcl0li2z6lzydifkd4"; depends=[abind bayesm maxLik miscTools mvtnorm]; };
   mvQuad = derive2 { name="mvQuad"; version="1.0-6"; sha256="016477dhjdkqiadc631vzpbp967mn4yli6by3s1k348mlfirwsi3"; depends=[data_table statmod]; };
-  mvSLOUCH = derive2 { name="mvSLOUCH"; version="2.6.5"; sha256="1ahzpfb178n5rxm1rh5qf0h66am5mfmx1g3cwaz27k7g5c00j20x"; depends=[abind ape Matrix matrixcalc mvtnorm ouch PCMBase TreeSim]; };
+  mvSLOUCH = derive2 { name="mvSLOUCH"; version="2.7.3"; sha256="1f048j48mv654n8yswvlj9q4rr2kpyi4b4mibg28cspayidq9yyc"; depends=[abind ape Matrix matrixcalc mvtnorm ouch PCMBase TreeSim]; };
   mvShapiroTest = derive2 { name="mvShapiroTest"; version="1.0"; sha256="0zcv5l28gwipkmymk12l4wcj9v047pr8k8q5avljdrs2a37f74v1"; depends=[]; };
   mvabund = derive2 { name="mvabund"; version="4.1.12"; sha256="107pwv2bwird1a98chcnbld2wqj9prkf4pkncyrrp304zpdkkby1"; depends=[MASS Rcpp RcppGSL statmod tweedie]; };
   mvbutils = derive2 { name="mvbutils"; version="2.8.232"; sha256="0awd0jy492ha321c20kmmgl20kqphdmrmswakc0rq6h8z9d55kdg"; depends=[]; };
@@ -12726,7 +12819,6 @@ in with self; {
   mvprpb = derive2 { name="mvprpb"; version="1.0.4"; sha256="1kcjynz9s7vrvcgjb9sbqv7g50yiymbpkpg6ci34wznd33f7nrxm"; depends=[]; };
   mvrsquared = derive2 { name="mvrsquared"; version="0.1.2"; sha256="1x9ck55b5fiakvbn2nr3h75ksawjaijm2bg1xqavncl3cvlfqahl"; depends=[Matrix Rcpp RcppArmadillo RcppThread]; };
   mvrtn = derive2 { name="mvrtn"; version="1.0"; sha256="0k0k76wk5zq0cjydncsrb60rdhmb58mlf7zhclhaqmli1cy697k8"; depends=[]; };
-  mvst = derive2 { name="mvst"; version="1.1.0"; sha256="03q0kdychsmn4wcn50b6dqhxn4f2mjvrr5rac942xdv75w8qklc9"; depends=[MCMCpack mnormt mvtnorm]; };
   mvtmeta = derive2 { name="mvtmeta"; version="1.1"; sha256="0s0s5922c5rs8cqk100nci3akqnhbvibm2n2gn8049v3qcyfajyb"; depends=[gtools]; };
   mvtnorm = derive2 { name="mvtnorm"; version="1.1-3"; sha256="0j14q2bkc14v35s5k03sw44zsssrd2qjljlwzj014qxs74hk0kpz"; depends=[]; };
   mvtsplot = derive2 { name="mvtsplot"; version="1.0-1"; sha256="0g5grrha77rsnkfasw5pxnpmkl7vgb728ms8apyg8xnbmgilg9vv"; depends=[RColorBrewer]; };
@@ -12754,7 +12846,7 @@ in with self; {
   naaccr = derive2 { name="naaccr"; version="1.0.0"; sha256="1hw74a2gjm3gxq0s0qlndhqw0vij6p31walz1ic741z7hqsffqq7"; depends=[data_table stringi]; };
   nabor = derive2 { name="nabor"; version="0.5.0"; sha256="1nj39cdfwrmhgsi3cq8imxv3n6xzc1v6dzdb2cf2hybjk368v4s7"; depends=[BH Rcpp RcppEigen]; };
   nadiv = derive2 { name="nadiv"; version="2.17.1"; sha256="1v1fbnps55pbaz0q88y8vrxjd503krymc7f8i0xx3yxgdxl56x8q"; depends=[Matrix]; };
-  naijR = derive2 { name="naijR"; version="0.3.2"; sha256="1ad8cvabdz98mi21sc5phhgjl05wslb7yvjxzvx9hw4h0hpfy3bp"; depends=[lifecycle magrittr mapdata maps RColorBrewer rgdal rlang]; };
+  naijR = derive2 { name="naijR"; version="0.3.3"; sha256="07f2n6xqy94pkii4ps39qcy27kfyms75n8cfykydgnxpb1apjlxg"; depends=[lifecycle magrittr mapdata maps RColorBrewer rgdal rlang]; };
   naivebayes = derive2 { name="naivebayes"; version="0.9.7"; sha256="070m78d8hsbqfbapb6g8vvh91gyznqfdpqsaq6z3raps8zlybsag"; depends=[]; };
   naivereg = derive2 { name="naivereg"; version="1.0.5"; sha256="1cxfl419pp7xh1xrad29gvpn6hm0rhk40vylj97ypndh6gmnynzz"; depends=[glmnet gmm grpreg ncvreg]; };
   nakagami = derive2 { name="nakagami"; version="1.1.0"; sha256="0bxsg5k51x7qrw34l16da79ck212drkgvzgn9d5zanx5dwv5asl2"; depends=[assertthat]; };
@@ -12766,7 +12858,7 @@ in with self; {
   naniar = derive2 { name="naniar"; version="0.6.1"; sha256="0l3l2x85v3srilww483kpgp4zlwixyml257b0cqly8kcpwawlinm"; depends=[dplyr forcats ggplot2 glue magrittr norm purrr rlang tibble tidyr UpSetR viridis visdat]; };
   nanop = derive2 { name="nanop"; version="2.0-6"; sha256="007gdc93pk0vpfmsw7zgfma2k1045n2cxwwsyy276smy0ys9fdhp"; depends=[distrEx rgl]; };
   nanostringr = derive2 { name="nanostringr"; version="0.2.0"; sha256="13rcc33zfqlx8m5bmr5hh87gp0g5wlg2cwlj1683kw9adj2y3fdf"; depends=[assertthat ccaPP dplyr epiR magrittr purrr rlang]; };
-  nanotime = derive2 { name="nanotime"; version="0.3.3"; sha256="1q3xh7im77h70nyj7sl2rqzj4kcvwh27l9y9x36xyps7r6i8xfbi"; depends=[bit64 Rcpp RcppCCTZ RcppDate zoo]; };
+  nanotime = derive2 { name="nanotime"; version="0.3.4"; sha256="1ylj79fs45l1d8ijlllja543ggbq613yskvnhql4davki98gdhg1"; depends=[bit64 Rcpp RcppCCTZ RcppDate zoo]; };
   naptime = derive2 { name="naptime"; version="1.3.0"; sha256="1cadfv5sdsmz61kf96hf2gbnghf24q40g5c3h9b8prvkxslap691"; depends=[lubridate]; };
   nardl = derive2 { name="nardl"; version="0.1.6"; sha256="1vf8im4zs4j0v3k617aaskq9n2fg8sn3j5bllcbz2ircrpijr21m"; depends=[car Formula gtools MASS strucchange tseries]; };
   narray = derive2 { name="narray"; version="0.4.1.1"; sha256="1xyyn6v3khk5x759fr9h96z036hbb87fzfqgdpw907bc95gjnkz9"; depends=[progress stringr]; };
@@ -12795,7 +12887,7 @@ in with self; {
   ncappc = derive2 { name="ncappc"; version="0.3.0"; sha256="0bf00iskrd3x43839bwn957mi3qvm2dhcmqa7hl1ib0gp2r1cnzx"; depends=[bookdown Cairo dplyr ggplot2 gridExtra gtable knitr lazyeval magrittr PopED purrr readr reshape2 rlang rmarkdown scales tibble tidyr xtable]; };
   ncar = derive2 { name="ncar"; version="0.4.4"; sha256="1b37isgj7njpyh3js2kyl6vil9v8azh7n04m5yn4pcvyz02sqkx8"; depends=[NonCompart rtf]; };
   ncbit = derive2 { name="ncbit"; version="2013.03.29"; sha256="0f07h8v68119rjvgm84b75j0j7dvcrl6dq62vp41adlm2hgjg024"; depends=[]; };
-  ncdf4 = derive2 { name="ncdf4"; version="1.17"; sha256="1xls44ln2zjrrlimxl8v4bk2ni3g45c9j0gxdnjx31rikmrc95fv"; depends=[]; };
+  ncdf4 = derive2 { name="ncdf4"; version="1.18"; sha256="0yfvway6rnjkhr46d9313l4k5r9hc025nq948lx715mlrsnqns51"; depends=[]; };
   ncdf4_helpers = derive2 { name="ncdf4.helpers"; version="0.3-6"; sha256="0qnm41rbxb6v7aqh1mdkjhcc2rhs4wg6wmrllldzd99mzz8slv1r"; depends=[abind ncdf4 PCICt]; };
   ncdfgeom = derive2 { name="ncdfgeom"; version="1.1.1"; sha256="173hfbvp6pzyxmy0xwir02nmhifmfzl6jipn5pp41c947gyg8vwx"; depends=[dplyr ncmeta RNetCDF sf]; };
   ncdump = derive2 { name="ncdump"; version="0.0.3"; sha256="09g98mzpky32z41jf23ahzhyv34l34y1gqq99j2hl4pqlvvhxs9i"; depends=[dplyr ncdf4]; };
@@ -12807,11 +12899,11 @@ in with self; {
   ncvreg = derive2 { name="ncvreg"; version="3.13.0"; sha256="04r7nf6516wi0bfxgk5rgbkw6qqa8aprsjivvgym19z9i6qaxanm"; depends=[]; };
   ndjson = derive2 { name="ndjson"; version="0.8.0"; sha256="0lvzbgfi1sg4kya1mvv67z14qk3vz9q57x22qh57xq8ampdkg812"; depends=[data_table Rcpp tibble]; };
   ndl = derive2 { name="ndl"; version="0.2.18"; sha256="0b235v6jf98rrqp5aqw3jkk7mq8dbqmhb758zbzza1mavh4n2k7s"; depends=[Hmisc MASS Rcpp]; };
-  nearfar = derive2 { name="nearfar"; version="1.2"; sha256="116rq797a5fascirz8xg465fywjf40j1k5czryvqzpik0if0w00r"; depends=[car GenSA MASS nbpMatching]; };
+  ndtv = derive2 { name="ndtv"; version="0.13.2"; sha256="0symd0rwzk8kcq7f0flbw3pnyigybgsypjaaq5b5p1pjm1dz0c8j"; depends=[animation base64 jsonlite MASS network networkDynamic sna statnet_common]; };
   neariso = derive2 { name="neariso"; version="1.0.1"; sha256="1b2gnws75kkqsi8mg9n0zzdaawx57a6zz47cswabj5m6nb09ikh8"; depends=[]; };
   neat = derive2 { name="neat"; version="1.2.3"; sha256="0mdv47l50wzxnjfk1sway7gzpkyf57svqip16fqn0hrc1fsrifbn"; depends=[igraph]; };
   neatRanges = derive2 { name="neatRanges"; version="0.1.3"; sha256="1zfp6f1q7m0bks0shvzr120nd5jxba28xhi7vrd55qfy7g72167g"; depends=[data_table Rcpp]; };
-  neatStats = derive2 { name="neatStats"; version="1.7.3"; sha256="0zkx22irhjkds1l2ypj8nkc1yz15pc90rbfgy1y6jh5l6a3dgdhx"; depends=[BayesFactor bayestestR car Exact ez ggplot2 ggpubr logspline MBESS plyr PoweR pROC viridis]; };
+  neatStats = derive2 { name="neatStats"; version="1.8.1"; sha256="0kxhl4h3xq6qg4fpxxji3j3p0yg5g271c3p9zbngkp7q8fiqz5vd"; depends=[BayesFactor bayestestR car Exact ez ggplot2 ggpubr logspline MBESS plyr PoweR pROC viridis]; };
   neatmaps = derive2 { name="neatmaps"; version="2.1.0"; sha256="1kz1na3fzpd8vkxmpp5rz8ksyf8q2wk456csiii82winv9a2zxc9"; depends=[ConsensusClusterPlus dplyr ggplot2 heatmaply igraph]; };
   needmining = derive2 { name="needmining"; version="0.1.1"; sha256="0qsj0ihjchrnl4s44rpsizbcz033z00dmzvic2y1msv0bnfawl6p"; depends=[randomForest rtweet SnowballC SparseM stringr tau tm]; };
   needs = derive2 { name="needs"; version="0.0.3"; sha256="16dkjpijz3rz7kd5ggxsdg55iwd42nll1vk6g5ix4xdbqrx6cp9x"; depends=[]; };
@@ -12839,7 +12931,7 @@ in with self; {
   netcontrol = derive2 { name="netcontrol"; version="0.1"; sha256="1gskb728ycnhz9a9g9ghm0dz3ajf3dzgyv23bsk9i01wj9hrxhc0"; depends=[expm MASS Matrix pracma Rcpp RcppArmadillo Rdpack]; };
   netdiffuseR = derive2 { name="netdiffuseR"; version="1.22.3"; sha256="1vb3ql37fh5104ks65i03mz7ka1xk1rb8xnm2wxd654khkwjcp0m"; depends=[boot igraph MASS MatchIt Matrix network networkDynamic Rcpp RcppArmadillo sna SparseM viridisLite]; };
   netgen = derive2 { name="netgen"; version="1.3.2"; sha256="1yqi4rb6w9ipxgbl1j1s2s81cg7nzrn65irn5gs82hsq94d6vv2j"; depends=[BBmisc checkmate ggplot2 igraph lhs mvtnorm stringr]; };
-  netgsa = derive2 { name="netgsa"; version="4.0.1"; sha256="1j7j48snlkv3islwl4fab037d3h38ar5wsalr9jbxcng4bac8fqg"; depends=[AnnotationDbi corpcor data_table dplyr genefilter glassoFast glmnet graph graphite httr igraph jsonlite magrittr Matrix msigdbr ndexr org_Hs_eg_db quadprog Rcpp RcppEigen RCy3 reshape2 rlang]; };
+  netgsa = derive2 { name="netgsa"; version="4.0.2"; sha256="0v26a29dpgim993g43jwz4666jf7dnvli89czn2bynclb3jz69k8"; depends=[AnnotationDbi corpcor data_table dplyr genefilter glassoFast glmnet graph graphite httr igraph jsonlite magrittr Matrix msigdbr ndexr org_Hs_eg_db quadprog Rcpp RcppEigen RCy3 reshape2 rlang]; };
   netgwas = derive2 { name="netgwas"; version="1.13"; sha256="156axkl61z0s3zm8plkcc3s46x0881mqnk94azl3p0nphblhmhcv"; depends=[glasso huge igraph MASS Matrix qtl RBGL tmvtnorm]; };
   netie = derive2 { name="netie"; version="1.0"; sha256="0ja59rfg576z8rbv073aaab32qazlrqhvyvxpssibwsvbfcrhklm"; depends=[]; };
   netjack = derive2 { name="netjack"; version="1.2.0"; sha256="060ygb0kxi0gx1ya38cmf5hhyy6jkwq5519azdqhq5i324cwzzm7"; depends=[brainGraph ggplot2 igraph Rdpack]; };
@@ -12873,7 +12965,7 @@ in with self; {
   neurohcp = derive2 { name="neurohcp"; version="0.9.0"; sha256="02z0lhmw2mr2fk8d8wp7nfcrfl8izds68zskm5j0xfabfb4dwkbx"; depends=[aws_s3 base64enc digest httr xml2]; };
   neuroim = derive2 { name="neuroim"; version="0.0.6"; sha256="00cjr6pkip6zi2d0q3qbn3lb3k0z82v6c19qslvgpa9n0g63dr5p"; depends=[abind assertthat hash iterators Matrix Rcpp readr rgl stringr yaImpute]; };
   neuromplex = derive2 { name="neuromplex"; version="1.0-1"; sha256="1zj7x528qv4bp24fx546jj9kf0q0n26jyi65v6h2bl3c61rrb6bz"; depends=[BayesLogit dplyr ggplot2 gridExtra magrittr tidyr]; };
-  neuronorm = derive2 { name="neuronorm"; version="1.0.0"; sha256="01j8bzs8jbklsjm9krsv5jkfaardhq5apfgr5bc11ry9xbwzz3b0"; depends=[fslr knitr neurobase oro_nifti]; };
+  neuronorm = derive2 { name="neuronorm"; version="1.0.1"; sha256="09sd73a5xr1id37b3rkmv8v4f67wjwac9k3j1q5ssgkpq92kg50k"; depends=[fslr knitr neurobase oro_nifti]; };
   neutralitytestr = derive2 { name="neutralitytestr"; version="0.0.3"; sha256="1660v7nng6dj9gwn04ynirms0g10wpsz33i26va229zdviqm5cyy"; depends=[cowplot dplyr ggplot2 ggpmisc pracma scales]; };
   nevada = derive2 { name="nevada"; version="0.1.0"; sha256="0z1wi3769204cgi6hk13nnm6z6nx3dlx334mbs13r7p5rhmf794g"; depends=[cli dplyr flipr forcats ggplot2 igraph magrittr purrr Rcpp RcppArmadillo rlang tibble tidyr withr]; };
   neverhpfilter = derive2 { name="neverhpfilter"; version="0.4-0"; sha256="097nfz30pf4bd95l943ccsvndni0n8c6gpcdk5dv02802mcg0h81"; depends=[xts zoo]; };
@@ -12883,6 +12975,7 @@ in with self; {
   newscatcheR = derive2 { name="newscatcheR"; version="0.1.0"; sha256="0rm91dfzfjhi51gk65gvq2z7aywg6y8ay3hrjnp6frlmyvh661sp"; depends=[tidyRSS]; };
   newsmap = derive2 { name="newsmap"; version="0.7.4"; sha256="1k7jbfz3hrpy8z3zfn0gcm9fzmfiaf3qkx1m89c5q072zpdpiajn"; depends=[Matrix quanteda quanteda_textstats stringi]; };
   newsmd = derive2 { name="newsmd"; version="0.3.1"; sha256="0xgrxz0ppvja4avff2l4kjnbw90ynbrziih0iqfjsvnvy92msalg"; depends=[R6]; };
+  nfer = derive2 { name="nfer"; version="1.0.1"; sha256="1dbvadpfgwanfdc9kvm620r5nj7l9kvbbhfcg80z5jbdn38jgh3r"; depends=[]; };
   nfl4th = derive2 { name="nfl4th"; version="1.0.1"; sha256="11hk9446ckhg46dzkbvd12n6k02m6qx265spwqdm23xpncamjlkk"; depends=[dplyr glue httr janitor jsonlite magrittr mgcv nflfastR nflreadr purrr stringr tibble tidyr tidyselect xgboost]; };
   nflfastR = derive2 { name="nflfastR"; version="4.3.0"; sha256="1vg27m51q01m6rypaksr5dw7qg3i638dypm31v5gimbdkjmgs2j7"; depends=[cli curl dplyr fastrmodels furrr future glue janitor lifecycle mgcv nflreadr progressr rlang stringr tibble tidyr tidyselect xgboost]; };
   nflreadr = derive2 { name="nflreadr"; version="1.1.1"; sha256="0icwsyk675s5ckgwrl73v4d1y0n43fgsmaibhkmvv7b6ric9n5b0"; depends=[cachem curl data_table memoise qs rappdirs Rcpp RcppParallel rlang]; };
@@ -12909,8 +13002,9 @@ in with self; {
   nilde = derive2 { name="nilde"; version="1.1-4"; sha256="1zw952sqqxcxniyi7s0901xzqqpxqxdbisab9f3rv1i3kikcaa60"; depends=[]; };
   nima = derive2 { name="nima"; version="0.6.2"; sha256="0n8r8h1m0v0ssbpv6p32jby49f45qbicwr0awm7x054p48qk49cy"; depends=[assertthat dplyr ggplot2 ggthemes gridExtra gtools scales]; };
   nimble = derive2 { name="nimble"; version="0.12.1"; sha256="1n37g22wj5zlvb8lgxh9gi7mk011lyrmg3kaibhcpj2858hz681m"; depends=[coda igraph R6]; };
+  nimbleAPT = derive2 { name="nimbleAPT"; version="1.0.4"; sha256="0615fm6sa6nf607ay98r81m0pp8yvydpwzn3972imf87irps2k3l"; depends=[nimble]; };
   nimbleCarbon = derive2 { name="nimbleCarbon"; version="0.1.2"; sha256="1cj1yik4knxniag12qr8hqxkqhcm5lhq8xw7g8iibv3rxq0jvkki"; depends=[coda doSNOW foreach nimble rcarbon snow]; };
-  nimbleEcology = derive2 { name="nimbleEcology"; version="0.4.0"; sha256="1qpwjzxgcmfqfp2ccjkngvjymqsyxvhvcs43vvynx30xgrj3nzdm"; depends=[nimble]; };
+  nimbleEcology = derive2 { name="nimbleEcology"; version="0.4.1"; sha256="1z4byxsana1fa2y7qhmiqbb8ana6zbas0cmbgcc703mqh1642jb2"; depends=[nimble]; };
   nimbleSCR = derive2 { name="nimbleSCR"; version="0.1.3"; sha256="1859qai1cyh82cxa8kccrn36flw045j4dggzixi2m3k029gvjh15"; depends=[nimble]; };
   nimbleSMC = derive2 { name="nimbleSMC"; version="0.10.0"; sha256="15abjhgq8mi8c079hfzwjyl5glchx606hciq2lsirkrbyvc7b23n"; depends=[nimble]; };
   nipals = derive2 { name="nipals"; version="0.8"; sha256="0nv7h68hysxnpiinmgw6v3bz4ya53c0p96k9bfvcmalfb7hs8j5z"; depends=[]; };
@@ -12929,11 +13023,12 @@ in with self; {
   nlme = derive2 { name="nlme"; version="3.1-153"; sha256="1qw0sq64iybyidj0s8m76z4i1gxb1fn27s29i63fw5hvvy7aj9rx"; depends=[lattice]; };
   nlmeODE = derive2 { name="nlmeODE"; version="1.1"; sha256="1zp1p98mzbfxidl87yrj2i9m21zlfp622dfnmyg8f2pyijhhn0y2"; depends=[deSolve lattice nlme]; };
   nlmeU = derive2 { name="nlmeU"; version="0.70-3"; sha256="05kxymgybziiijpb17bhcd9aq4awmp5km67l2py9ypakivi0hc6l"; depends=[nlme]; };
-  nlmixr = derive2 { name="nlmixr"; version="2.0.5"; sha256="1zx900il7vp0d26npd0fy5zny9f7484i6bwh3030drbqcsr34aqh"; depends=[backports BH brew dparser fastGHQuad ggplot2 lbfgsb3c magrittr Matrix minqa n1qn1 nlme Rcpp RcppArmadillo RcppEigen rex RxODE StanHeaders symengine]; };
+  nlmeVPC = derive2 { name="nlmeVPC"; version="2.2"; sha256="0dkj0l0rkml6nydg3k04dzcp17sn59p3hnaqmnqa0arbzv0rsq8i"; depends=[dplyr ggplot2 Hmisc magrittr optimx plyr quantreg Rcpp RcppArmadillo tidyr timeDate]; };
+  nlmixr = derive2 { name="nlmixr"; version="2.0.6"; sha256="18vlqny31im7402h10y7hqq31bki8rxj0x2z0wazk865prpab5k9"; depends=[backports BH brew dparser fastGHQuad ggplot2 lbfgsb3c magrittr Matrix minqa n1qn1 nlme Rcpp RcppArmadillo RcppEigen rex RxODE StanHeaders symengine]; };
   nlmm = derive2 { name="nlmm"; version="1.0.1"; sha256="0q5vz4xqdb510i26zbcq4djcribn7h477akh8f56nzjgq231vhcq"; depends=[BH HI lqmm MASS Matrix mvtnorm nlme numDeriv Qtools Rcpp RcppArmadillo statmod]; };
   nlmrt = derive2 { name="nlmrt"; version="2016.3.2"; sha256="1g0qq0a933ay65gkp04qgn2wqk6vw79pj2a228c2ski4rcmkjxyn"; depends=[]; };
   nlnet = derive2 { name="nlnet"; version="1.4"; sha256="13lv4b6chsjrhimny3wc1y9ljgbxmm1byj4j04n4vj8icn87gyfd"; depends=[coin e1071 earth fdrtool igraph randomForest ROCR TSP]; };
-  nloptr = derive2 { name="nloptr"; version="1.2.2.2"; sha256="0whkilb85k4wixvr3k7rygfw1rcs1fs9h8c18kz4p3y1k9hsj3p8"; depends=[]; };
+  nloptr = derive2 { name="nloptr"; version="1.2.2.3"; sha256="1zznk9f2w2g02zqzay21k8xqzfvc6icxfzp6bx2wpd77sm7vf25g"; depends=[]; };
   nlpred = derive2 { name="nlpred"; version="1.0.1"; sha256="05jna8hzd5v36a0dwag6zr8ms1pkryas3qarwb946bkxlslffp27"; depends=[assertthat bde cvAUC data_table np Rdpack ROCR SuperLearner]; };
   nlraa = derive2 { name="nlraa"; version="0.98"; sha256="1vihk6k8582iwwn2gzpbs1amg8wbvpiar4diljvjx75172lc1s0h"; depends=[boot knitr MASS Matrix mgcv nlme]; };
   nlreg = derive2 { name="nlreg"; version="1.2-2.2"; sha256="0gkcxg5m287axhvkl00xy26vidawhhb1ii1s13rh49v0yccwvvqh"; depends=[statmod survival]; };
@@ -12978,8 +13073,8 @@ in with self; {
   noaaoceans = derive2 { name="noaaoceans"; version="0.3.0"; sha256="0pxsddzkrprzjch173shhmd7c2h6rh5xzs3n5bbs97l51ni8m60m"; depends=[httr jsonlite rvest xml2]; };
   noaastormevents = derive2 { name="noaastormevents"; version="0.2.0"; sha256="1d93h8av0bbv7a56g6m000qpsnzqpfdla0fmcj5y8fbbqkipxnfr"; depends=[choroplethr choroplethrMaps data_table dplyr forcats ggplot2 hurricaneexposure lubridate magrittr maps plyr RColorBrewer RCurl rlang stringr tibble tidyr viridis XML]; };
   noah = derive2 { name="noah"; version="0.1.0"; sha256="1ln23lp4c70fin9sjjhm4ngy47f8sk2mcljp5q449b7hq8gqi12c"; depends=[assertthat crayon digest dplyr hash magrittr purrr R6 rlang stringr]; };
-  noctua = derive2 { name="noctua"; version="2.3.0"; sha256="1py32s0qjya3rb6znx8vrlvc8bpqijchcc6dbyr53w8xfikiyd4i"; depends=[data_table DBI paws uuid]; };
-  nodbi = derive2 { name="nodbi"; version="0.4.3"; sha256="03vb11iryhx18jdj4sbmh50l9h39pkzdp9d33117pbfvr61pzx32"; depends=[data_table jsonlite]; };
+  noctua = derive2 { name="noctua"; version="2.4.0"; sha256="1dzpa7ksf3mj97mhsxzigppcsjwxzr9x8rc0b13hcsjgawxlq5f1"; depends=[data_table DBI paws uuid]; };
+  nodbi = derive2 { name="nodbi"; version="0.5.1"; sha256="009rzpgjgmajns9cz55bjvxdvp852rk9h4wd61x18wm6bfw17d0n"; depends=[DBI elastic jqr jsonify jsonlite mongolite RSQLite sofa stringi uuid]; };
   node2vec = derive2 { name="node2vec"; version="0.1.0"; sha256="03gfpn4xgmdwlrpwi9pdpnh6k75mwp85j6vywkj0jsxhz3rbg95g"; depends=[data_table dplyr igraph rlist vctrs vegan word2vec]; };
   nodeHarvest = derive2 { name="nodeHarvest"; version="0.7-3"; sha256="0nh3g50rk9qzrarpf29kijwkz9v60682i0ag77j2ipyvhhbpwpkc"; depends=[quadprog randomForest]; };
   nodeSub = derive2 { name="nodeSub"; version="1.2"; sha256="06yk8kk959grnmvnhqj7z7k02ykxr04mrz63k8ppbmwb4q60q5nv"; depends=[ape apTreeshape assertthat babette beastier beautier DDD geiger mauricer nLTT pbapply phangorn phylobase rappdirs Rcpp Rmpfr RPANDA stringr testit tibble tracerer]; };
@@ -12992,7 +13087,7 @@ in with self; {
   noisyr = derive2 { name="noisyr"; version="1.0.0"; sha256="05nvxz5qa4lsi62va74yq4m68nlacjkl8xj5nsq7dik3357y53dr"; depends=[doParallel dplyr foreach GenomicRanges ggplot2 IRanges magrittr philentropy preprocessCore Rsamtools tibble]; };
   nombre = derive2 { name="nombre"; version="0.4.0"; sha256="0bc66vc8xxg8q2x7nh4si04qgb2gxzl61jf4k10vc6v8dsglk77k"; depends=[fracture]; };
   nomclust = derive2 { name="nomclust"; version="2.5.0"; sha256="17vqxbx5bpja2fxp83w0sbgbs61b2vaak9zzvvxkicxqwk09ix2v"; depends=[cluster Rcpp]; };
-  nominatimlite = derive2 { name="nominatimlite"; version="0.1.4"; sha256="0kcmhfvslvffm7scv8na8z9l9jyzayy7bwgbzgjyqk21b9rcigc2"; depends=[dplyr jsonlite sf tibble]; };
+  nominatimlite = derive2 { name="nominatimlite"; version="0.1.5"; sha256="0x3vaidx7w5v0713ddsj3dgczf788dpq7irjl63ihslvd4ncr6ba"; depends=[dplyr jsonlite rlang sf tibble]; };
   nomisr = derive2 { name="nomisr"; version="0.4.4"; sha256="1qa7k4fh7n2imf91nfcdg32dacraay343jv9sczs6qc37nadhdbg"; depends=[dplyr httr jsonlite readr rlang rsdmx snakecase tibble]; };
   nomnoml = derive2 { name="nomnoml"; version="0.2.3"; sha256="08zraip0v4jc51zv2zsvka6k8d1ry2ac9d70xpavfggbgmrmz987"; depends=[htmlwidgets lifecycle png rlang webshot]; };
   nomogramEx = derive2 { name="nomogramEx"; version="3.0"; sha256="16235rwblnzn8k53817llwy2pzhnpifh6ij159nxymjm8ar9qpbp"; depends=[pracma rms]; };
@@ -13009,6 +13104,7 @@ in with self; {
   nonnest2 = derive2 { name="nonnest2"; version="0.5-5"; sha256="1ddaqwx8i3ygwvxf11mc8xhgk4nkvnail99nr5szq8i168752zq2"; depends=[CompQuadForm lavaan mvtnorm sandwich]; };
   nonpar = derive2 { name="nonpar"; version="1.0.2"; sha256="0gflldd3kjbpdlvbwi073igj6shcqr9g5x6zcp5gfa12404qpflq"; depends=[]; };
   nonparaeff = derive2 { name="nonparaeff"; version="0.5-8"; sha256="1kkn68m7cqlzx3v539cjxw3x5a2y86lvmyv2k98s87m3yvqg0gdk"; depends=[gdata geometry Hmisc lpSolve psych pwt rms]; };
+  nonparametric_bayes = derive2 { name="nonparametric.bayes"; version="0.0.1"; sha256="1acrjh0fcr15b9k2hpg0ihfav0w2lzjdpjyayz3f4hx596j32vi8"; depends=[mvtnorm progress]; };
   nontarget = derive2 { name="nontarget"; version="1.9"; sha256="0ndqcr73sja5ks5kdahhakpz9lw3rp26imklagdv4f5agqnb608s"; depends=[enviPat mgcv nontargetData]; };
   nontargetData = derive2 { name="nontargetData"; version="1.1"; sha256="07cdbpmn64sg4jfhljdcx503d55azyz58x7nkji044z3jmdryzqw"; depends=[]; };
   nopaco = derive2 { name="nopaco"; version="1.0.6"; sha256="0q705b7bjzq0b6vfp6yargybc8h07adx8al1ip7pxkmfcpilj66v"; depends=[Matrix]; };
@@ -13037,7 +13133,7 @@ in with self; {
   np = derive2 { name="np"; version="0.60-11"; sha256="1a9kzn37cddwfdki5zjmzanxp75pccdjnsvqfrh84hhcsy51pcx3"; depends=[boot cubature quadprog quantreg]; };
   npExact = derive2 { name="npExact"; version="0.2"; sha256="055wm5lcj98wb71lqp2zdyl8kkwvi6lwmnaylynvr907xqabaqvd"; depends=[]; };
   npIntFactRep = derive2 { name="npIntFactRep"; version="1.5"; sha256="14ms66ppzb4jjsa3fparic6gdn913f6wv2ccjyb02j1ahs4iaa4g"; depends=[ez plyr]; };
-  npROCRegression = derive2 { name="npROCRegression"; version="1.0-5"; sha256="09ngfj0bd9cp19lpwsbknp2y71x36k03ph84bmf67wm1q2na7f93"; depends=[lattice]; };
+  npROCRegression = derive2 { name="npROCRegression"; version="1.0-6"; sha256="122sy722wbslmd0yq5gc9zs87ng45zlwcsfvl962czk3yncrn1bv"; depends=[lattice]; };
   nparACT = derive2 { name="nparACT"; version="0.8"; sha256="0zwhz52j526n3xd21s7kghjaby56a8g296bkkc6scaa23zn1xg4b"; depends=[ggplot2 stringr zoo]; };
   nparLD = derive2 { name="nparLD"; version="2.1"; sha256="1asq00lv1rz3rkz1gqpi7f83p5vhzfib3m7ka1ywpf2wfbfng27n"; depends=[MASS]; };
   nparMD = derive2 { name="nparMD"; version="0.1.0"; sha256="0kxbcykc01b1c68hk3akfhs9xzmshxvjvhm69k4j1c4nvpz8y9z9"; depends=[Formula gtools MASS matrixcalc matrixStats]; };
@@ -13058,7 +13154,7 @@ in with self; {
   npmv = derive2 { name="npmv"; version="2.4.0"; sha256="04lfks2rlax59gxdnbgkpmk2vaax718z6hkgsvmyxf52iby6rvlr"; depends=[Formula]; };
   npordtests = derive2 { name="npordtests"; version="1.2"; sha256="1axzcyy45h3rs67m0i3cvwbmza1mnmraxan9j4zlpxdd5x9nz4h8"; depends=[]; };
   nppbib = derive2 { name="nppbib"; version="1.2-0"; sha256="1nn6wf89jhr3gy4rcd6px0cd5b1bsr7pbaxng4adba8n3yrss7vs"; depends=[]; };
-  npphen = derive2 { name="npphen"; version="1.1-0"; sha256="0pbf9sqdapl5q09g1hj5hi4j2wigrd0b6s0gbv1gx4wn68alrals"; depends=[ks lubridate raster rgdal rts snow]; };
+  npphen = derive2 { name="npphen"; version="1.1.1"; sha256="0xfsi6y4233gwslrh86chfpc71fdp5pfh4v9c9qcjqaib9hxvixn"; depends=[ks lubridate raster rgdal snow]; };
   nprcgenekeepr = derive2 { name="nprcgenekeepr"; version="1.0.5"; sha256="1j6pfc694yf1m42a0fhlbh5wdbmgs61fswbw7083h69d2sr2zq05"; depends=[anytime futile_logger htmlTable lubridate Matrix plotrix readxl Rlabkey rlang shiny stringi WriteXLS]; };
   npreg = derive2 { name="npreg"; version="1.0-6"; sha256="0a28hj4a8j46zyh483y4b5abwy18yl648rf99nj8a2blhdmipyla"; depends=[]; };
   npregderiv = derive2 { name="npregderiv"; version="1.0"; sha256="1k873cs3rs15l13z8017n4anacandx7di6yk1zlamcc5p3vlh59n"; depends=[]; };
@@ -13109,6 +13205,7 @@ in with self; {
   nzilbb_labbcat = derive2 { name="nzilbb.labbcat"; version="1.0-1"; sha256="0lypdwyvihza88jnccvh4wapfivsjy9sgxj4hvai52bkrw92578d"; depends=[httr jsonlite rstudioapi stringr]; };
   nzpullover = derive2 { name="nzpullover"; version="0.3.0"; sha256="0b3mz5i58m48fa1x7gv4l3gqj0gvrar201ph2l1gkbcnfmazwjp8"; depends=[]; };
   o2geosocial = derive2 { name="o2geosocial"; version="1.1.0"; sha256="158nbc45h4k677lgx9n976d9kz7hy8fb7z5s2v6pmkmh521jdn2a"; depends=[data_table geosphere ggplot2 outbreaker2 Rcpp visNetwork]; };
+  o2plsda = derive2 { name="o2plsda"; version="0.0.12"; sha256="1rm57bnmzqz86yfbz2wnn6xfd5mr7pdbq89855hg40a59i3yhp04"; depends=[dplyr ggplot2 ggrepel magrittr Rcpp RcppArmadillo RcppEigen]; };
   oRus = derive2 { name="oRus"; version="1.0.0"; sha256="0q6hgiidcpm95pyisndihxjg78v6k1zycdqd72309aankdk0g5h4"; depends=[dplyr knitr rmarkdown stringr tibble tidytext tm topicmodels xlsx]; };
   oaColors = derive2 { name="oaColors"; version="0.0.4"; sha256="040sdqrk9dciylnnrrshlj06s9qhvngii9shx1p8412ip7mk8r1m"; depends=[MASS RColorBrewer]; };
   oaPlots = derive2 { name="oaPlots"; version="0.0.25"; sha256="0c5ig1ar02vg38pjjmp3gd53ij1j7pzajs0zrlfajz141qkv2ysr"; depends=[ggplot2 oaColors]; };
@@ -13126,10 +13223,11 @@ in with self; {
   obsSens = derive2 { name="obsSens"; version="1.3"; sha256="1vfm1mzsycwkqa39vf3fcdv1s6adps9hw1rxlvl8v9kq746hcabw"; depends=[]; };
   observer = derive2 { name="observer"; version="0.1.2"; sha256="1027827k57qb4xppx0xxxffd1s3n7pz754irdx3v1v3piix8xi8m"; depends=[bazar bit dplyr lazyeval magrittr tibble]; };
   occ = derive2 { name="occ"; version="1.1"; sha256="1aka29qqwbd494kvi15yyyqkb9hks4ky2gcvykxhx2drm2fnsn4g"; depends=[]; };
+  occCite = derive2 { name="occCite"; version="0.5.1"; sha256="1swarf4nwqy20ffy5ff44zq804i8gb095b7p9zay0iccfz9bn2jm"; depends=[bib2df BIEN DBI dplyr ggplot2 htmltools httr leaflet lubridate RColorBrewer rgbif rlang RPostgreSQL stringr taxize tidyr viridis waffle]; };
   occupancy = derive2 { name="occupancy"; version="1.2"; sha256="0j50vg1405n1hp72xqsq1hp3gdbfx5yq9w1zdv6dzjc6vjhbx00d"; depends=[matrixStats]; };
   ocd = derive2 { name="ocd"; version="1.1"; sha256="06pyc352pvn85k76z9797gwk0ksbb3snvh6krysp68k3lcygq872"; depends=[]; };
   oce = derive2 { name="oce"; version="1.4-0"; sha256="0224fgd51fchn8apdi6x0n3ycl6zdbwch9janmidqr0i01418d1v"; depends=[gsw Rcpp sf testthat]; };
-  oceanis = derive2 { name="oceanis"; version="1.7.5.2"; sha256="1ng6qlsbybnv77lbqhmzvi93ydiy99zbcgl3yszrqwnw0ld08k9j"; depends=[classInt dplyr DT ggplot2 leaflet leaflet_extras lwgeom mapview sf shiny shinyBS shinyjs shinythemes stringr units]; };
+  oceanis = derive2 { name="oceanis"; version="1.8.4"; sha256="0m0mhab74wnd9hm0im47c14m5mzsrvs61d07vikd8f1sly36h943"; depends=[classInt dplyr DT ggplot2 leaflet leaflet_extras lwgeom mapview sf shiny shinyBS shinyjs shinythemes stringr zip]; };
   oceanmap = derive2 { name="oceanmap"; version="0.1.1"; sha256="06h4yxqcn3rjr3m2n82w128z110a4k5rg6msrbd0gcqksxc4vd2v"; depends=[abind extrafont fields lubridate mapdata maps maptools ncdf4 plotrix raster sp]; };
   oceanwaves = derive2 { name="oceanwaves"; version="0.2.0"; sha256="1v4gj4ippv1l3r77z2ic19x5zi5lpsh5wihaqay3264zhpb3kv9a"; depends=[bspec ggplot2 signal]; };
   ocedata = derive2 { name="ocedata"; version="0.1.8"; sha256="01m2pflk3zgqbqmv34w7mh8bs1lbpagdmhvhzji2j6p1fysvhqr1"; depends=[testthat]; };
@@ -13137,7 +13235,7 @@ in with self; {
   oclust = derive2 { name="oclust"; version="0.1.0"; sha256="005ml6vhi9rw6js2v4f1dc2ci8kcd7iwrkgbs4c1qxc836ygq0yx"; depends=[entropy mclust]; };
   ocomposition = derive2 { name="ocomposition"; version="1.1"; sha256="0fk8ia95yjlvyvmjw7qg72piqa40kcqq9wlb3flc6a81pys1ycb5"; depends=[bayesm coda]; };
   ocp = derive2 { name="ocp"; version="0.1.1"; sha256="0q52s8j3z3xwnma3sxx6019qxid66bf0a43w4g8xjagplwps57dx"; depends=[]; };
-  ocs4R = derive2 { name="ocs4R"; version="0.2-1"; sha256="1phkji9p622v6hq309j7ggnc7gjhgwmm9zwys3nk9v0ac9k3g0dq"; depends=[curl httr jsonlite keyring openssl R6 XML]; };
+  ocs4R = derive2 { name="ocs4R"; version="0.2-2"; sha256="1b2f05yrxj3j6f6bvj3aqsv6szp5c6i5cwkfjbsrj1ncny2f53zj"; depends=[curl httr jsonlite keyring openssl R6 XML]; };
   od = derive2 { name="od"; version="0.3.1"; sha256="1fbx0w10wmd9f99kdigx4k21d8bsa8dfjzm9ibbf14z2908899ag"; depends=[sfheaders]; };
   odbc = derive2 { name="odbc"; version="1.3.2"; sha256="1s1fbnkg6xlch94w5vwfwa9pa0rc722jbzckhkbl9m80z93hj4pm"; depends=[bit64 blob DBI hms Rcpp rlang]; };
   odds_converter = derive2 { name="odds.converter"; version="1.4.8"; sha256="09s8pg55gpsxmrbimzg5rsr1n07la93781sar6vab5p9zn9zxgx4"; depends=[]; };
@@ -13153,8 +13251,8 @@ in with self; {
   oem = derive2 { name="oem"; version="2.0.10"; sha256="1nf9ja4l7b9gnnvv216dz9siy02432qgyg930vcrqq3l8g05r6zc"; depends=[BH bigmemory foreach Matrix Rcpp RcppArmadillo RcppEigen]; };
   oenb = derive2 { name="oenb"; version="0.0.2"; sha256="1jgxw7ycx2lcdzglg9nix8k08fs4r6i5jdsjzrd6w1dg6smsinl5"; depends=[dplyr XML]; };
   ofGEM = derive2 { name="ofGEM"; version="1.0"; sha256="0xdkl8k12an9pdy6i5nay4m2iakrwsp0lr3zl8gphii75j0ywz7k"; depends=[CompQuadForm forestplot MASS]; };
-  officedown = derive2 { name="officedown"; version="0.2.2"; sha256="0xbkdgl14nmhl110xxvsxm3zi4120v1fhhb9gb5q3ba6wd5n245g"; depends=[knitr memoise officer rlang rmarkdown rvg uuid xml2 yaml]; };
-  officer = derive2 { name="officer"; version="0.4.0"; sha256="1za3vb1wmsianh9ygm6h5lyf796rni6w2adplz4z6z93r3mz4cmv"; depends=[R6 uuid xml2 zip]; };
+  officedown = derive2 { name="officedown"; version="0.2.3"; sha256="1wz3312hq5ybichb0js7jiig7y0wb1nyd2lcsk1nlq70cqsgrv4w"; depends=[knitr memoise officer rlang rmarkdown rvg uuid xml2 yaml]; };
+  officer = derive2 { name="officer"; version="0.4.1"; sha256="1gfx299zr4q2264q37994pirv5bd5isn1cszccz603ij3q40wajr"; depends=[R6 uuid xml2 zip]; };
   offlineChange = derive2 { name="offlineChange"; version="0.0.4"; sha256="005afrm4ki4zz3zkgrf8c1v9gf5cjhc5g50mjkqya3r8npaccwq2"; depends=[Rcpp]; };
   oglmx = derive2 { name="oglmx"; version="3.0.0.0"; sha256="13axmhbqhv4kkcdsdmp9r7p0d0kyqlsaqgyyllbkxlxb4hfz79b6"; depends=[maxLik]; };
   ohenery = derive2 { name="ohenery"; version="0.1.1"; sha256="0i7cc110c30y7dm86srh2xkikkmlr28mvy0kkjxywxmiwnrsmzjq"; depends=[dplyr magrittr maxLik Rcpp]; };
@@ -13184,12 +13282,11 @@ in with self; {
   oneclust = derive2 { name="oneclust"; version="0.2.1"; sha256="04nafy0bv3g5vjd5k7858lvs9rc141kzpblsdcb7sl4kfw76s11z"; depends=[magrittr Rcpp]; };
   onehot = derive2 { name="onehot"; version="0.1.1"; sha256="1cdsz007wr054k5phvihhg4qx0fc039k2s6484m92kws8mb2ziix"; depends=[]; };
   onelogin = derive2 { name="onelogin"; version="0.2.0"; sha256="06p3a8kaxmvsj8nn7dy8w6wv1jjw67is991hqg9q0fa20ifym3dl"; depends=[glue jsonlite magrittr R6 safer tibble]; };
-  onemap = derive2 { name="onemap"; version="2.1.3"; sha256="0fwkr845zz0j8ccrwpksb28lly1rsgj3603ak1aqqgmlx6481p08"; depends=[ggplot2 MDSMap plotly Rcpp reshape2]; };
   onemapsgapi = derive2 { name="onemapsgapi"; version="1.0.0"; sha256="11w3xkjxhjf0b78hfjxjk650giswaf1js471backz4pcb97gaigl"; depends=[dplyr furrr future httr purrr rlang stringr tidyr]; };
   onepass = derive2 { name="onepass"; version="0.1.2"; sha256="1r8wk00aqc0sc7l6mmy1k4hkijfikynysrx5vvahbd6mlcdb3bmp"; depends=[jsonlite]; };
   onewaytests = derive2 { name="onewaytests"; version="2.6"; sha256="05q2ir65x9pvsiim4l029hjhm12niiqjgk5rsx47i6vx23ffg8ir"; depends=[car ggplot2 moments nortest]; };
   onion = derive2 { name="onion"; version="1.5-0"; sha256="07q5wwphb6jsk7ya7hgsf5782yalvhyc7h43hsd9rg4rhpmy8in9"; depends=[emulator]; };
-  onlineBcp = derive2 { name="onlineBcp"; version="0.1.1"; sha256="0azm3xmk4fqdzwssdx2g9k00fcz6inwv1qj4lvd0wdz6i7grya8g"; depends=[VIM]; };
+  onlineBcp = derive2 { name="onlineBcp"; version="0.1.3"; sha256="1bnpl94v30h3il8flin85nsnm27z8ghscmzqj9mc3afv2rzi8kb4"; depends=[VIM]; };
   onlineCOV = derive2 { name="onlineCOV"; version="1.3"; sha256="04ikvsd76f6xhja7djyv433m88lfj2vf0y9qi6x1s4i9kh8xkbz9"; depends=[]; };
   onlinePCA = derive2 { name="onlinePCA"; version="1.3.1"; sha256="08qivsfnwz5vp089lv9czsaz3nfi42kn9yhgzf27dji18y2xscic"; depends=[Rcpp RcppArmadillo RSpectra]; };
   onlineVAR = derive2 { name="onlineVAR"; version="0.1-1"; sha256="01z2d91mbdjvwwiqjq1dbqp50jbc9v6d7nw4gs7d1abhsqyiqa13"; depends=[lattice]; };
@@ -13203,14 +13300,14 @@ in with self; {
   ontologyIndex = derive2 { name="ontologyIndex"; version="2.7"; sha256="0j3h1spqwjhh1wbmwivmqcyi042yy7d565c3kxgn70xrmy693x1k"; depends=[]; };
   ontologyPlot = derive2 { name="ontologyPlot"; version="1.6"; sha256="0n51x2im134wq3a54wrv02j1pgkpm1qcgb9hd0y6fchz43i039j1"; depends=[ontologyIndex paintmap Rgraphviz]; };
   ontologySimilarity = derive2 { name="ontologySimilarity"; version="2.5"; sha256="035z572lbsfcnr9c0hl8gir1kgk0dw8dxzr3v8dqd93k6jr6kaxb"; depends=[ontologyIndex Rcpp]; };
-  oolong = derive2 { name="oolong"; version="0.4.0"; sha256="0b8yx0fl5lirfmpwmc9ip6n1253rkzq9r9423nla57rc6xzzply8"; depends=[cli cowplot digest dplyr ggplot2 irr keyATM miniUI purrr quanteda R6 shiny text2vec tibble]; };
+  oolong = derive2 { name="oolong"; version="0.4.1"; sha256="16f5r2z9p87k3pi643s63nxxnh7gn4x70m5jpk48hwb2s1rdar9h"; depends=[cli cowplot digest ggplot2 irr keyATM purrr quanteda R6 shiny tibble]; };
   oompaBase = derive2 { name="oompaBase"; version="3.2.9"; sha256="1cmw2s5dznmv675484jgvkzgvi6vhg0zbxsq6zhpqsisf672pjhl"; depends=[cluster]; };
   oompaData = derive2 { name="oompaData"; version="3.1.1"; sha256="0by9qfxlx6fdmp12qnphlli5hdn5balvx4ckg64fw6vwa291g7b0"; depends=[]; };
   ooplah = derive2 { name="ooplah"; version="0.1.0"; sha256="0hrbpidcrnvm14qdjhcz4j4im1caydxkj4k9zmqs7dq3wv10rgr9"; depends=[R6]; };
-  opGMMassessment = derive2 { name="opGMMassessment"; version="0.2.0"; sha256="0mhqv8vqjnnjmn4ayykmvwkwh1k9y3xacna814c61jl14kg8jx0v"; depends=[AdaptGauss caTools cluster ClusterR DataVisualizations DistributionOptimization doParallel dplyr foreach ggplot2 mclust mixAK mixtools multimode NbClust rlang]; };
+  opGMMassessment = derive2 { name="opGMMassessment"; version="0.3"; sha256="1y6g65y6r3l0p7dbw70w8lbp4c888llwd7ak9wliwin0a54y13lz"; depends=[AdaptGauss caTools cluster ClusterR DataVisualizations DistributionOptimization doParallel dplyr foreach ggplot2 mclust mixAK mixtools multimode NbClust rlang]; };
   opalr = derive2 { name="opalr"; version="3.0.2"; sha256="0nwa77l4d4zz3jxmfgm8h8k823lvcvjzbk3i6ahscrhzw2ky2phc"; depends=[httr jsonlite labelled mime progress]; };
-  opdisDownsampling = derive2 { name="opdisDownsampling"; version="0.7.0"; sha256="0vk99psbbks136h3md73g7w3rwlx3mgkx2lahmv536kf8v4fj2bp"; depends=[benchmarkme caTools doParallel foreach memuse pracma twosamples]; };
-  openCR = derive2 { name="openCR"; version="2.1.0"; sha256="1399kmvxhb4rhhdv8ishi1bwsjma1fflz5hpl9qjqpvirr1aazb2"; depends=[abind BH MASS nlme plyr Rcpp RcppParallel secr stringr]; };
+  opdisDownsampling = derive2 { name="opdisDownsampling"; version="0.8.0"; sha256="04qqph9flnqbqyj2kq4xjbs0rnq2flaqlxn68nmgshykbcywmc19"; depends=[benchmarkme caTools doParallel foreach memuse pracma twosamples]; };
+  openCR = derive2 { name="openCR"; version="2.2.1"; sha256="0v3n1w0lxbz7hf68b2dp0vsgvby9vywd35w1n7d78gwznjlisfk8"; depends=[abind BH MASS nlme plyr Rcpp RcppParallel secr stringr]; };
   openEBGM = derive2 { name="openEBGM"; version="0.8.3"; sha256="120lp7fy6abj6f8g6naq4018d0dfzz6bq3dlh0xdhd4iclb7pplv"; depends=[data_table ggplot2]; };
   openMSE = derive2 { name="openMSE"; version="1.0.0"; sha256="15jp9hybnkwmnkcqawhpd3y3imq6wfxxzxzh90yx4cvzky36hf89"; depends=[crayon DLMtool MSEtool SAMtool]; };
   openNLP = derive2 { name="openNLP"; version="0.2-7"; sha256="15yl74wv6w1d2wwpn1xlkkpam3c62977gnqal651fv623v29gg35"; depends=[NLP openNLPdata rJava]; };
@@ -13219,13 +13316,14 @@ in with self; {
   openSkies = derive2 { name="openSkies"; version="1.1.5"; sha256="00lnd3xwryh8z2r4hl0xlr6mi57vnggrz3yqldvi9v7br8i54kjm"; depends=[cluster dbscan ggmap ggplot2 httr magick R6 ssh xml2]; };
   openVA = derive2 { name="openVA"; version="1.0.13"; sha256="1hps67qlimhrjk3ymmr0jgqac8z6vilqgrchqp6z7vydqirfyp5l"; depends=[cli crayon ggplot2 InSilicoVA InterVA4 InterVA5 Tariff]; };
   openadds = derive2 { name="openadds"; version="0.2.0"; sha256="1jb8zd3rpxfkjkg895iab6m4cfi53p5vy3nnpjkgq7ym6499qjcv"; depends=[crul dplyr jsonlite maptools rappdirs readr tibble xml2]; };
-  openair = derive2 { name="openair"; version="2.8-5"; sha256="19d51pnxsy474vgzk6353ylpmdfaaw0262yp5wyad1snchbagwk9"; depends=[cluster dplyr hexbin lattice latticeExtra lubridate mapproj MASS mgcv purrr Rcpp readr rlang tidyr]; };
+  openair = derive2 { name="openair"; version="2.8-6"; sha256="1h3klcg6gjr6q2pgcd317zyw9rpj4ngmkii0azcvrkpmqpbdkzrp"; depends=[cluster dplyr hexbin lattice latticeExtra lubridate mapproj MASS mgcv purrr Rcpp readr rlang tidyr]; };
   openblender = derive2 { name="openblender"; version="0.5.81"; sha256="01akixxj04kgrxhv04icrivfpnipnpg9j62i3y19q3jkl9846lh1"; depends=[httr jsonlite]; };
   opencage = derive2 { name="opencage"; version="0.2.2"; sha256="1sjkpp6cj6ivd68p6ql6vwgdvy0fwfkjv84wgwgb4i7f4mnxgnff"; depends=[crul dplyr jsonlite lifecycle memoise progress purrr ratelimitr rlang tibble tidyr withr]; };
   opencpu = derive2 { name="opencpu"; version="2.2.5"; sha256="1qlwx8iq30qfy2sh0v31pxg955bj4zs0r7v8yklbdwb3qw7kv30g"; depends=[brew curl evaluate httpuv jsonlite knitr mime openssl protolite rappdirs remotes sys webutils zip]; };
   opencv = derive2 { name="opencv"; version="0.2.1"; sha256="1zb6qdvlgylzm9afq8ybcrn2w5wcym6zi4b36sycp4clbc7gncq5"; depends=[magrittr Rcpp]; };
   opendatatoronto = derive2 { name="opendatatoronto"; version="0.1.4"; sha256="0ggf25ry31xz69fl95cglg45ld8w7rc83wci609fmb63bhj8dzlg"; depends=[ckanr curl magrittr readxl sf tibble xml2]; };
   opendotaR = derive2 { name="opendotaR"; version="0.1.4"; sha256="17cygsw3nkg6zincfrcdh1509rlz3n5zrv9wvv7mjngm61sn79nf"; depends=[dplyr jsonlite lubridate]; };
+  openeo = derive2 { name="openeo"; version="1.1.0"; sha256="1vdga91jiw2dxfvjwr12kip60m8pdcvsan3g9cn9hhhpxsgidw6q"; depends=[base64enc httr jsonlite lubridate R6]; };
   openintro = derive2 { name="openintro"; version="2.2.0"; sha256="0jvgbb9az73sidr58lpz2p8gjigmi4873dpvzqbv7r8jzr1vqhvz"; depends=[airports cherryblossom ggplot2 readr rmarkdown tibble usdata]; };
   openmetrics = derive2 { name="openmetrics"; version="0.3.0"; sha256="0bcljsirlkxn0h87j2g2jb6spcik84h7nms06mcj40ckx188yr82"; depends=[R6]; };
   openssl = derive2 { name="openssl"; version="1.4.5"; sha256="1xy1w0rljzsgvsg91fh9hs6h9rx58mza1vg6rig9ykp9m2ml3hag"; depends=[askpass]; };
@@ -13300,7 +13398,7 @@ in with self; {
   ordinalRR = derive2 { name="ordinalRR"; version="1.1"; sha256="1sfkq8gryyls22208ympw5scgb4jkd27pyc1qklw4x7cz9wfnfbp"; depends=[rjags]; };
   ordinalgmifs = derive2 { name="ordinalgmifs"; version="1.0.6"; sha256="0axpndyyns649mwifq8f16l8n8x9nic8cv8l71ljyr2gwlm0nqz0"; depends=[survival]; };
   ordinalpattern = derive2 { name="ordinalpattern"; version="0.2.0"; sha256="0nf7323wd8wm4qxlhr6cvm1l87rwfdr5c4qivhncy0m2n5vknc1c"; depends=[gtools mvtnorm]; };
-  ore = derive2 { name="ore"; version="1.7.0"; sha256="0qhbv7bynisr0prv7h0yxsxff7qdxfqza7i06xi4vn360kxx6w9g"; depends=[]; };
+  ore = derive2 { name="ore"; version="1.7.1.1"; sha256="0rs5r5h11x4l4nsbl4xqzbl4ahajd5374fq05abcmfjnjr9j64w5"; depends=[]; };
   oreo = derive2 { name="oreo"; version="1.0"; sha256="1qzv6fjana5fx45msqasqfniiancsch6j8r1llh1xyg2wjhqdj23"; depends=[fftwtools ggplot2 gridExtra openxlsx pracma scales spectral]; };
   ores = derive2 { name="ores"; version="0.3.2"; sha256="0xzc0d38z7h5ghab3kqsv0r2cl3888j7vn94p51xlwcbhnq10kip"; depends=[httr]; };
   orf = derive2 { name="orf"; version="0.1.3"; sha256="19drrxvnh9y33p0g8pv9bhl6i8jpsdc7nkcpbpxbrsc5hs96dycp"; depends=[ggplot2 ranger Rcpp xtable]; };
@@ -13327,7 +13425,7 @@ in with self; {
   osd = derive2 { name="osd"; version="0.1"; sha256="1py9p15nrcydr8w9ilxkxabiz9zlqnls8xn9avjkxd8x6602jx6p"; depends=[JADE nnls]; };
   osfr = derive2 { name="osfr"; version="0.2.8"; sha256="1yzi8k6ddr8kfgsliigbwzaiqapqa65ismbvxn30ny6raa4rf2xx"; depends=[crul fs httr jsonlite memoise purrr rlang stringi tibble]; };
   oshka = derive2 { name="oshka"; version="0.1.2"; sha256="02hglpq5lknq93zbcf219lhnhppzgygkhxqixb15f89rxf9fczgs"; depends=[]; };
-  oskeyring = derive2 { name="oskeyring"; version="0.1.1"; sha256="04i5nbgwwwsi0g94kyyhh29jsfn9jzjn6ihpj0ah8vj6yama152b"; depends=[]; };
+  oskeyring = derive2 { name="oskeyring"; version="0.1.2"; sha256="1hwrgxsqd4s3wqvkgnga10382jva7l648jnaaff8pcb70hv4m0xg"; depends=[]; };
   osmar = derive2 { name="osmar"; version="1.1-7"; sha256="0q6d8nw7d580bnx66mjc282dx45zw9srczz90b520hjcli4w3i3r"; depends=[geosphere RCurl XML]; };
   osmdata = derive2 { name="osmdata"; version="0.1.8"; sha256="0cypc9ibqhg4yghyq6l9nv3j90ajy1ri7dlsc92bhpc5b7im107n"; depends=[curl httr jsonlite lubridate magrittr Rcpp rvest sp tibble xml2]; };
   osmextract = derive2 { name="osmextract"; version="0.4.0"; sha256="027mwp909xa2i32ibgig6kqazwy8kqyyqyjiyaqhpajm17kfb011"; depends=[httr jsonlite sf]; };
@@ -13365,7 +13463,7 @@ in with self; {
   overviewR = derive2 { name="overviewR"; version="0.0.7"; sha256="1y8iqgyhppl2w9z59azi3h1kgzrw5a1zqw09zyjp0ghlvpjbn9cn"; depends=[dplyr ggplot2 tibble]; };
   owd = derive2 { name="owd"; version="1.0.6"; sha256="08f1zzlnkfdzm5rlw14qm6yvn68j2yas21zjsy31pc59rh3lzkyh"; depends=[]; };
   owdbr = derive2 { name="owdbr"; version="1.0.1.1"; sha256="0q4654zr5aw04sssy7127vafry72b7p3d8i44fqvqg3055awin0i"; depends=[data_table dplyr httr jsonlite magrittr tibble]; };
-  owidR = derive2 { name="owidR"; version="1.0.0"; sha256="192ln11422s6ckfzy4ncw1pzbmbss7kjc1glcpz83bzqqrfrm01a"; depends=[curl dplyr forcats ggplot2 ggrepel htmltools jsonlite leaflet magrittr purrr readr rlang rvest scales sf stringr xml2]; };
+  owidR = derive2 { name="owidR"; version="1.1.0"; sha256="1i9lqmabwk8nnva428syfk3zbr60s6crx6dq8y8i4272xprqd5dk"; depends=[curl dplyr forcats ggplot2 ggrepel htmltools jsonlite leaflet magrittr purrr readr rlang rvest scales sf stringr xml2]; };
   owmr = derive2 { name="owmr"; version="0.8.2"; sha256="0qlb5aw6n06yf8y2gd2fjp8kp3w0xgqh3fka7rxqndgvaqmin1a6"; depends=[httr jsonlite magrittr plyr tibble tidyr]; };
   ows4R = derive2 { name="ows4R"; version="0.1-5"; sha256="0zl6nvcrzjcaz43ji2a6ym3mvfzfvf8lyb29hg8sidribr6js3nk"; depends=[geometa httr openssl R6 rgdal sf XML]; };
   oxcAAR = derive2 { name="oxcAAR"; version="1.1.1"; sha256="1szifw978qr7v8n178jhg4ap2jwvfnwjl2izbbiydwx8q1fyj2q4"; depends=[jsonlite stringi stringr]; };
@@ -13375,6 +13473,7 @@ in with self; {
   ozmaps = derive2 { name="ozmaps"; version="0.4.5"; sha256="0sqxaiw1mdcg81228g7k7r6fla6d7hfk9ax2z6pws8457xbvrzka"; depends=[oz sf tibble]; };
   p2distance = derive2 { name="p2distance"; version="1.0.1"; sha256="1ims8i5z5k97kjpdysgx8g7lgvnvf7amahcrssw7bk38bvbxawni"; depends=[]; };
   p3state_msm = derive2 { name="p3state.msm"; version="1.3"; sha256="0gbrka62ylxx64r3abpk60y92k2lk5smlf8na68qazph8llsl2rv"; depends=[survival]; };
+  pARI = derive2 { name="pARI"; version="1.1.0"; sha256="0v96a2ppydhjsxm9msyff82g5ajqwnxby8775ra0hy6lrafhbk3h"; depends=[ARIbrain matrixStats plyr Rcpp RcppArmadillo RNifti]; };
   pAnalysis = derive2 { name="pAnalysis"; version="2.0"; sha256="0pykdlbynzgcbnjs8xs8frgncf53l8qgf6na34adq7da76n570hi"; depends=[coin ggplot2]; };
   pBrackets = derive2 { name="pBrackets"; version="1.0.1"; sha256="1rhsl59wqplpx4iavhm133fywkjdsbxw1x60fz22hby0cc9ckg6i"; depends=[]; };
   pCODE = derive2 { name="pCODE"; version="0.9.3"; sha256="067hhlj75l04b404fidvb2rkj6bb3zxrjy37p5vzvc5a1p1pcnf5"; depends=[deSolve fda MASS pracma]; };
@@ -13386,6 +13485,7 @@ in with self; {
   pROC = derive2 { name="pROC"; version="1.18.0"; sha256="1abvbzdss12n64pp9vlgnn0q3abh0nj4n0a8cinwwvhphjrm9vym"; depends=[plyr Rcpp]; };
   pRSR = derive2 { name="pRSR"; version="3.1.1"; sha256="1irx95b7cwvx3gpn9brjjn4k947m8frz542r18nilc9f1159mb3s"; depends=[]; };
   pRecipe = derive2 { name="pRecipe"; version="0.1.1"; sha256="05lhviyzsrfh1f7jfp77i9xk5nnj4k3kgynw8brxmkyjnr68rayf"; depends=[curl data_table dplyr gdalUtils getPass ggplot2 hdf5r lubridate maps ncdf4 R_utils raster rgdal sp stringr viridis zoo]; };
+  pTITAN2 = derive2 { name="pTITAN2"; version="1.0.0"; sha256="1pv7v8dl3hnb1zyx2msar8cvhx2a8y6218kf9yxz21389ig5zvq1"; depends=[data_table]; };
   pa = derive2 { name="pa"; version="1.2-1"; sha256="1pfgzxirkb0p8f6smjlrbp1qpsh0vsvqf306cvldaj9zx8cw0q9f"; depends=[ggplot2]; };
   pacbpred = derive2 { name="pacbpred"; version="0.92.2"; sha256="13p405vh9rf1r5idxl5payc85vwlzcd87wm15163vc9gmil1ncsf"; depends=[]; };
   pack = derive2 { name="pack"; version="0.1-1"; sha256="0x4p8clwp49s2y67y7in530xwhjngnqwagf9xnyb1jp0z3myd3r7"; depends=[]; };
@@ -13404,7 +13504,7 @@ in with self; {
   packrat = derive2 { name="packrat"; version="0.7.0"; sha256="1hnwhdgqljqs3m7c4rjlyndyc0k85jpa4rbfymxkm3zjg3yy3g78"; depends=[]; };
   pacman = derive2 { name="pacman"; version="0.5.1"; sha256="0z7gngd6h83cpjhq1vg75wvzhdjbgjh7gj5d4zvvi9gd2lmagjcy"; depends=[remotes]; };
   paco = derive2 { name="paco"; version="0.4.2"; sha256="0p02fdc5f7d7sbdvxill8jln76p1ndiw95k6s9j41slfriq647vd"; depends=[ape plyr vegan]; };
-  pacotest = derive2 { name="pacotest"; version="0.4.0"; sha256="1m52spl856agk5y00s6d7n07sjv775calgpksajdsn1ipjfxs5nk"; depends=[ggplot2 gridExtra numDeriv Rcpp RcppArmadillo VineCopula]; };
+  pacotest = derive2 { name="pacotest"; version="0.4.1"; sha256="1ry0lwzphgivmlc8swhk6l26q4ca6x36rm8r7vvjb64y0fvayqk5"; depends=[ggplot2 gridExtra numDeriv Rcpp RcppArmadillo VineCopula]; };
   pacs = derive2 { name="pacs"; version="0.3.5"; sha256="0a8k6i7v26r4njbpcy3zp556kxn1p9rx6v7375k1r4w2b49jba6k"; depends=[memoise stringi xml2]; };
   pacviz = derive2 { name="pacviz"; version="1.0.1"; sha256="0afh10zf32lk6gh42y6mjfgdw2blhjavhbq2n3s8h62w9blfad5g"; depends=[circlize e1071 plotrix]; };
   padr = derive2 { name="padr"; version="0.6.0"; sha256="1l8i40vqpy033j8nc8fqp9ymn378bhyy4hkj8xhk94npv7jibqkk"; depends=[dplyr lubridate Rcpp rlang]; };
@@ -13415,8 +13515,9 @@ in with self; {
   pagemap = derive2 { name="pagemap"; version="0.1.3"; sha256="1rwspbk7xmp27iadrd1471a7z71qyzlb0vnkw4ssjk7wi8q48fnj"; depends=[htmlwidgets]; };
   pagenum = derive2 { name="pagenum"; version="1.2"; sha256="0nid26wmrm76ifxqpqqry232q4alf80i7df1rg237qil8asx06k1"; depends=[]; };
   pageviews = derive2 { name="pageviews"; version="0.5.0"; sha256="1fhlm2y288wx625y0glxybjb0xv9sqvvln35jqlwqq38h3grcpqd"; depends=[curl httr jsonlite]; };
-  pagoda2 = derive2 { name="pagoda2"; version="1.0.6"; sha256="13dknc7qc1wfs6pjiq4kdwx1gxqx9ana3zm62j614kdd5sq8syzw"; depends=[dendsort drat fastcluster igraph irlba magrittr MASS Matrix mgcv N2R plyr R_utils R6 Rcpp RcppArmadillo RcppEigen RcppProgress rjson rlang RMTstat Rook Rtsne sccore urltools]; };
+  pagoda2 = derive2 { name="pagoda2"; version="1.0.7"; sha256="0xhbrpw3865arnqigazwlzi0iihxgzdgxdclyc4ypf2abd4fgzdc"; depends=[dendsort drat fastcluster igraph irlba magrittr MASS Matrix mgcv N2R plyr R_utils R6 Rcpp RcppArmadillo RcppEigen RcppProgress rjson rlang RMTstat Rook Rtsne sccore urltools]; };
   pagoo = derive2 { name="pagoo"; version="0.3.9"; sha256="0z8k7hcnc4galr1afwk7zjdjbn298jgzawc09afq6pnhl5mjiya0"; depends=[BiocGenerics Biostrings dendextend DT GenomicRanges ggfortify ggplot2 heatmaply magrittr plotly R6 reshape2 S4Vectors shiny shinydashboard shinyWidgets vegan]; };
+  painbow = derive2 { name="painbow"; version="1.0.1"; sha256="10c8spknh7sqa4vl0q4bjdwd03nl4qk28hj2qa9sbyb1ryc7p4j9"; depends=[ggplot2]; };
   painter = derive2 { name="painter"; version="0.1.0"; sha256="0qr6p13h50rlavcsamxmijfr4dfrbv1k088m28qf8a4gam3ap85b"; depends=[]; };
   paintmap = derive2 { name="paintmap"; version="1.0"; sha256="1qw5725yjymxmfhffqjx4lbmzj437c7qwr8xrzmf52f0m28nl3vk"; depends=[]; };
   pairedCI = derive2 { name="pairedCI"; version="0.5-4"; sha256="03wf526n3bbr2ai44zwrdhbfx99pxq1nbng9wsbndrdg2ji4dar2"; depends=[]; };
@@ -13453,7 +13554,6 @@ in with self; {
   pan = derive2 { name="pan"; version="1.6"; sha256="1dk3jjj826p7xrz10qz04vyc068xnypg7bp0pj4c32z3da0xzh5d"; depends=[]; };
   pander = derive2 { name="pander"; version="0.6.4"; sha256="1knjcr50xxns3w3kh15myjpsizn4d7fdqx071a4yj90imif07qjh"; depends=[digest Rcpp]; };
   pandocfilters = derive2 { name="pandocfilters"; version="0.1-4"; sha256="1nlnvnvq3zwzpf6hnf8akl0w25kr7hrbr98rw5vgncxw35314xdp"; depends=[jsonlite]; };
-  panelAR = derive2 { name="panelAR"; version="0.1"; sha256="1ka2rbl9gs65xh2y2m4aqwh5qj4szibjy101hqfmza9wmdh25gpq"; depends=[car]; };
   panelView = derive2 { name="panelView"; version="1.1.5"; sha256="1pvi1b571sbqbhma7m277ppcv98c9yc720fr9pgqfdy8hswsd2rd"; depends=[ggplot2 gridExtra]; };
   panelWranglR = derive2 { name="panelWranglR"; version="1.2.13"; sha256="0zj0m08518zi6xsa7qik61ys1qqa2lqiar4l7acclkw58w5zrmbc"; depends=[caret data_table Hmisc]; };
   panelaggregation = derive2 { name="panelaggregation"; version="0.1.1"; sha256="0x8ldqb9216pclfvs4ymdpian43v2ydkyflpf0k6lcn35r04xfr6"; depends=[data_table]; };
@@ -13472,7 +13572,7 @@ in with self; {
   parallelML = derive2 { name="parallelML"; version="1.2"; sha256="05j0rb81i8342m8drwgmgi1w30q96yf501d83cdq4zhjbchphbl1"; depends=[doParallel foreach]; };
   parallelMap = derive2 { name="parallelMap"; version="1.5.1"; sha256="1qg7zpz5sd9jp8wzjqahkhipwj1jn192llwg06q4gv9mlcsac261"; depends=[BBmisc checkmate]; };
   parallelPlot = derive2 { name="parallelPlot"; version="0.1.0"; sha256="1zppgd0dwxfryv6wfl6k7jrny1yqb5q4f8phnnmzz9ydlv7xyv32"; depends=[htmlwidgets]; };
-  parallelly = derive2 { name="parallelly"; version="1.28.1"; sha256="0qy6gj1xybiziks5gvw5px81n3klgr16kvb1qn1xp6j030xqibpl"; depends=[]; };
+  parallelly = derive2 { name="parallelly"; version="1.29.0"; sha256="0a84lr2jqqnvmdayb9v9kv7m8rffp65s4s1wcalr96sl3cxypyc7"; depends=[]; };
   param6 = derive2 { name="param6"; version="0.2.3"; sha256="1d4fhs82qpb18480wg6i1q59kw65hqvafv5nb7p7jqys16mmsj3i"; depends=[checkmate data_table dictionar6 R6 set6]; };
   paramGUI = derive2 { name="paramGUI"; version="2.1.4"; sha256="0k2wkl99ji3w7xmd9k7zzvrr3dbf3237q7lxm527dnrq331pmxmi"; depends=[colorspace fields shiny shinydashboard TIMP]; };
   parameters = derive2 { name="parameters"; version="0.15.0"; sha256="0f06bwlc1g0xdyhdqzx8plfx1jwk8a9j4lcbl91wjsil8wja0bkl"; depends=[bayestestR datawizard insight]; };
@@ -13532,7 +13632,7 @@ in with self; {
   patentsview = derive2 { name="patentsview"; version="0.3.0"; sha256="1ysqarmqqbw7zy1c3nfa08i6byima31pmcvv60qz9qjpyd2np0fn"; depends=[httr jsonlite]; };
   path_chain = derive2 { name="path.chain"; version="0.2.0"; sha256="1p28mcar4krgvkgn02xrlwcpzchnppn2l2k2iwh511c3qrfpy653"; depends=[logger rlang stringi]; };
   pathdiagram = derive2 { name="pathdiagram"; version="0.1.9.1"; sha256="018frv1n3x0bf1682jibnm5k2dlkg85xa9mps28l22a0z8bplbv5"; depends=[shape]; };
-  pathfindR = derive2 { name="pathfindR"; version="1.6.2"; sha256="10fvcpikp8drmj877jn5c4216fmkr6w1xzqs5rk4qaq4w68j469h"; depends=[AnnotationDbi DBI doParallel foreach fpc ggplot2 ggraph ggupset igraph KEGGgraph KEGGREST knitr magick msigdbr org_Hs_eg_db pathfindR_data R_utils rmarkdown]; };
+  pathfindR = derive2 { name="pathfindR"; version="1.6.3"; sha256="104qr67xnrqnm112xyjsakgy01xkxjxhq89vqw5ic9v3ljyn0vvr"; depends=[AnnotationDbi DBI doParallel foreach fpc ggplot2 ggraph ggupset igraph KEGGgraph KEGGREST knitr magick msigdbr org_Hs_eg_db pathfindR_data R_utils rmarkdown]; };
   pathfindR_data = derive2 { name="pathfindR.data"; version="1.1.2"; sha256="0p0infg5hxw40bacgni5w1a8xb29wc0xrd8mjsnlfarr8wygd9fl"; depends=[]; };
   pathlibr = derive2 { name="pathlibr"; version="0.1.0"; sha256="0z8iz765fi1s2770p7dwwv2anihfw86kb5dwg081wb6474wiq6v8"; depends=[glue logging magrittr purrr R6 rlang]; };
   pathlit = derive2 { name="pathlit"; version="0.1.0"; sha256="0harvldkhq2c1wb9i4n72w1s3frhjzyn4cjpwk1n350zg12kh9gz"; depends=[httr jsonlite testthat timeSeries usethis]; };
@@ -13567,11 +13667,7 @@ in with self; {
   pbapply = derive2 { name="pbapply"; version="1.5-0"; sha256="0m8a0ygwl98cs0vcha5gs9f7z8whcplwxhravhs9bfp5hvigxzgg"; depends=[]; };
   pbatR = derive2 { name="pbatR"; version="2.2-13"; sha256="01ra1ggdpxdl1xqjdh86qynr5gkgzw01ww6j9bwgx4mj20i6j1ha"; depends=[rootSolve survival]; };
   pbbd = derive2 { name="pbbd"; version="1.0.0"; sha256="07g029qw5949500c879iv86zwg2fldqrz8wzfz335jmcinqimgj6"; depends=[ibd]; };
-  pbdBASE = derive2 { name="pbdBASE"; version="0.5-3"; sha256="1f90bk1mp1s03177b9g5w5ni77jzrzc1pl3bjx0w0fjbjs1myn79"; depends=[pbdMPI pbdSLAP]; };
-  pbdMPI = derive2 { name="pbdMPI"; version="0.4-3"; sha256="1mxikhr0qfqksr62v5dxvzgqx07391p7ikjk9g2w4xzrzmxs8fc3"; depends=[float rlecuyer]; };
-  pbdPROF = derive2 { name="pbdPROF"; version="0.4-0"; sha256="174jwrkvw5qz1430y6id01w1czlw45j1yw8a8dyw36knrmvmdz10"; depends=[]; };
-  pbdRPC = derive2 { name="pbdRPC"; version="0.2-1"; sha256="1pz71zfs9qw96dj3h5mrm734vbbi4drlv9hrw91dbzm3a7jsxg4q"; depends=[]; };
-  pbdSLAP = derive2 { name="pbdSLAP"; version="0.3-1"; sha256="1iwc5iw6q7r6p08yngczqlbqk779nsx2rmxc3fajzl6d73rprshl"; depends=[pbdMPI rlecuyer]; };
+  pbdMPI = derive2 { name="pbdMPI"; version="0.4-4"; sha256="006pm2yn4mdrpwhfflqcybzv41lz7zssrjrcpq5g98zf60p9c07a"; depends=[float rlecuyer]; };
   pbdZMQ = derive2 { name="pbdZMQ"; version="0.3-6"; sha256="0yy3x3l04vx13jbjbvkvsc8jdbf0abndjfknszdx3bi18b2chi4r"; depends=[]; };
   pbivnorm = derive2 { name="pbivnorm"; version="0.6.0"; sha256="05jzrjqxzbcf6z245hlk7sjxiszv9paadaaimvcx5y5qgi87vhq7"; depends=[]; };
   pbixr = derive2 { name="pbixr"; version="0.1.4"; sha256="098fwmar56l8w5r58grirqypdmc2c4hil7bi11z18llja62fncnw"; depends=[dplyr formatR jsonlite stringr textclean xml2 zip]; };
@@ -13591,7 +13687,7 @@ in with self; {
   pcaPP = derive2 { name="pcaPP"; version="1.9-74"; sha256="1dlrz5plb8b89vr3j6sn9jwryyhcwflqkiilxkybbr379m1pp0sh"; depends=[mvtnorm]; };
   pcadapt = derive2 { name="pcadapt"; version="4.3.3"; sha256="01wvcflfsnlsq23vq03n870fxsab3ab29k26nqlqxw82lbvx99s3"; depends=[bigutilsr data_table ggplot2 magrittr mmapcharr Rcpp rmio RSpectra]; };
   pcal = derive2 { name="pcal"; version="1.0.0"; sha256="07119k5f4h9jc48bicl4q5i7bdrkha3rz22r6g44c8ilnkvjhw6j"; depends=[Rdpack]; };
-  pcalg = derive2 { name="pcalg"; version="2.7-3"; sha256="0va8cx2g8dhf65sz1gzasvnnbzjrnccb5bhixj448bcnxq3mw8ql"; depends=[abind bdsmatrix BH clue corpcor fastICA ggm graph igraph RBGL Rcpp RcppArmadillo robustbase sfsmisc vcd]; };
+  pcalg = derive2 { name="pcalg"; version="2.7-4"; sha256="0yph4w5hvw8ss8w6wkpka4crk9nwmm6d091gz3pr1vv2qifx98ii"; depends=[abind bdsmatrix BH clue corpcor fastICA ggm graph igraph RBGL Rcpp RcppArmadillo robustbase sfsmisc vcd]; };
   pcalls = derive2 { name="pcalls"; version="1.0"; sha256="1vdgvrzfv69p3p5zc9i6gxq53f36s0mia4idzrbsda661f1bhmxk"; depends=[]; };
   pccc = derive2 { name="pccc"; version="1.0.5"; sha256="0jh8yadks76ip9jmgvld9nycdm74f5gllkyhfmnrir8vi6xwvbad"; depends=[dplyr Rcpp]; };
   pcdpca = derive2 { name="pcdpca"; version="0.4"; sha256="0ys4hrin0w3f87d1d986wvrfkfwapzj9hz7d7v92r60ns74g7r5m"; depends=[fda freqdom]; };
@@ -13605,10 +13701,11 @@ in with self; {
   pcmabc = derive2 { name="pcmabc"; version="1.1.1"; sha256="1bacxxgcrgsa7h1baybwwinw3n95cx5wkkfm5cb4iscgk910mfmb"; depends=[ape distory geiger mvSLOUCH phangorn TreeSim yuima]; };
   pcnetmeta = derive2 { name="pcnetmeta"; version="2.7"; sha256="0jibi4wylxkisgj740xbibjqs60d5xg9my4sx7vshgfl941y9wcv"; depends=[coda rjags]; };
   pco = derive2 { name="pco"; version="1.0.1"; sha256="0k1m450wfmlym976g7p9g8arqrvnsxgdpcazk5kh3m3jsrvrcchf"; depends=[]; };
-  pcoxtime = derive2 { name="pcoxtime"; version="1.0.2"; sha256="0fyzmah3b1gfcwlspf2gr7iwdrgk1q688z3b545zlmah3d8hy929"; depends=[doParallel foreach ggplot2 pec PermAlgo prodlim Rcpp RcppArmadillo riskRegression survival]; };
+  pcoxtime = derive2 { name="pcoxtime"; version="1.0.3"; sha256="04xng5ixmp5jm2m2v3661qvfjnp44xx999hvgv05140qx3i2nmqj"; depends=[doParallel foreach ggplot2 pec PermAlgo prodlim Rcpp RcppArmadillo riskRegression survival]; };
   pcr = derive2 { name="pcr"; version="1.2.2"; sha256="1lmgm8k3s7780ivrdj0zk1ninx7b5jffir6q5p2p47h62qqjmp5d"; depends=[ggplot2]; };
   pcse = derive2 { name="pcse"; version="1.9.1.1"; sha256="1rb9146vjkf36vc5v3frykmsff7kp6qp1hhmj8pak583in4rz8f8"; depends=[]; };
   pcsstools = derive2 { name="pcsstools"; version="0.1.1"; sha256="1vp4lflxzzgjfh1nkkfvnb74pjmbcdgrc1hlakjd8i5rw7swvr20"; depends=[gtools Rdpack]; };
+  pct = derive2 { name="pct"; version="0.9.3"; sha256="1y3cmqirh003hyg80bnl0rpbcp9h9bzlv0lbjxq0wmvsb84hbqbn"; depends=[boot readr sf stplanr]; };
   pcts = derive2 { name="pcts"; version="0.15"; sha256="1wl3hgj0sn9128vwcqin37jn5ww3na4g7r1isj39j6m2v76s3ndk"; depends=[BB gbutils lagged lubridate Matrix mcompanion PolynomF Rdpack sarima xts zoo]; };
   pdR = derive2 { name="pdR"; version="1.7"; sha256="05rnyb9znb71ilr9kf62x30knby1rm0p4ain220wvb62vkz054d7"; depends=[boot car coefplot lmtest papeR plm sandwich]; };
   pdSpecEst = derive2 { name="pdSpecEst"; version="1.2.4"; sha256="1sf2d7vh7a1qc0cq230an8pzg9qi9g640z0ql8x2pp9wfawfzn1f"; depends=[ddalpha multitaper Rcpp RcppArmadillo Rdpack]; };
@@ -13631,13 +13728,13 @@ in with self; {
   pdynmc = derive2 { name="pdynmc"; version="0.9.6"; sha256="0347p0s4zx3y4yp2rzn4zz4lkj32skll2n2wrnb7yxsnhwf94a7f"; depends=[data_table MASS Matrix optimx qlcMatrix Rdpack]; };
   peRiodiCS = derive2 { name="peRiodiCS"; version="0.5.0"; sha256="1366gmn6qfciwcjsfnbl3hfa16ffn11g00fm0kv74ilvm3nnawk3"; depends=[Hmisc rms]; };
   peRspective = derive2 { name="peRspective"; version="0.1.1"; sha256="1dca7592h9yp8lfj866hjzg0d48c84v2kd9l5bsvkw935wwxwg2w"; depends=[crayon dplyr glue httr jsonlite magrittr purrr rlang rlist stringr tibble]; };
-  peacesciencer = derive2 { name="peacesciencer"; version="0.6.0"; sha256="00lfavqlxm7zm1bp1kwh1dy5y3016vis3lnwv587xylszr2w9czq"; depends=[bib2df dplyr geosphere magrittr rlang stevemisc stringr tidyr]; };
+  peacesciencer = derive2 { name="peacesciencer"; version="0.7.0"; sha256="1z7h22rigw7r8njvwhjg7cn7blayn9vm7wrng1fmzk85j50nj37s"; depends=[bib2df dplyr geosphere lifecycle magrittr rlang stevemisc stringr tidyr]; };
   peacots = derive2 { name="peacots"; version="1.3"; sha256="128qpz06b0giz80lp9yq9l6pxcjglfr97yickg7z64vzzl2jilmq"; depends=[]; };
   peakPick = derive2 { name="peakPick"; version="0.11"; sha256="1zf7ff9arm4hkdxrfhb0p8p7npd51icy773g2raaqsfys825xwhm"; depends=[matrixStats]; };
   peakRAM = derive2 { name="peakRAM"; version="1.0.2"; sha256="0mj7f8jqkfky61xag2km0svbgvfmif3c1d8ccav6pv1963cg3cvv"; depends=[]; };
   pearson7 = derive2 { name="pearson7"; version="1.0-3"; sha256="0vdhhds1lngaff7dkx4b1az3syqw8b22w2jskcrw0m49wp1dbbha"; depends=[]; };
   pec = derive2 { name="pec"; version="2021.10.11"; sha256="1cb63qrc1lwds5kv55jd2mibsw49bpfaj066kwhs1wgby25h8ydi"; depends=[foreach lava prodlim riskRegression rms survival timereg]; };
-  pecora = derive2 { name="pecora"; version="0.1.0"; sha256="0a45i5vpdz9m14c64hsvwdp625vaxc77lvmckgjvnn31ca089gp0"; depends=[matrixStats Rcpp RcppArmadillo]; };
+  pecora = derive2 { name="pecora"; version="0.1.1"; sha256="0l66brd5d24hn279ck785jy4qnxiv9lc3d1czh4f3l25d0hj99xi"; depends=[matrixStats Rcpp RcppArmadillo]; };
   pedSimulate = derive2 { name="pedSimulate"; version="1.2.1"; sha256="1hahflnzpg7mbsli9prjqs4jwbqji2cyvr9k4alb129bzg335aq4"; depends=[]; };
   pedbuildr = derive2 { name="pedbuildr"; version="0.2.1"; sha256="19yzfg5jms2qnww4p8npmk9815hrgqsbd49h8pi62yy9kjqnccai"; depends=[forrel glue pedprobr pedtools]; };
   pedgene = derive2 { name="pedgene"; version="3.3"; sha256="0y6kr5ad4fmxljsj0czs9h1dkz63wvqiira9ibgsf0707xb0vh7f"; depends=[CompQuadForm kinship2 Matrix survey]; };
@@ -13684,7 +13781,6 @@ in with self; {
   pergola = derive2 { name="pergola"; version="1.0"; sha256="1650ipp2b455xdkznwm7bnxvimad7nbyr9i1lg2vdh64j1qfh7gl"; depends=[seriation]; };
   periscope = derive2 { name="periscope"; version="1.0.0"; sha256="0idf6bwl1n03padgzvid4bkyq00qb59bi3dg0hpvax5fvyjfm9hh"; depends=[DT fresh ggplot2 lubridate shiny shinyBS shinydashboard writexl yaml]; };
   perm = derive2 { name="perm"; version="1.0-0.2"; sha256="182ac1y91yzb34zwdcmx5fdfr5z0cha0gx2bgk36gwxhgfc994kj"; depends=[]; };
-  permGPU = derive2 { name="permGPU"; version="0.15"; sha256="1bxydc5dw7ka45k6ban35d5xb1dw9yq9480qns8b39cc0x3acmhc"; depends=[Biobase foreach RUnit survival]; };
   permGS = derive2 { name="permGS"; version="0.2.5"; sha256="0d2kp3c1fmnjjmsvc2qwh6m66yqvy2vrrxgv1fj2i4clsbavfa0y"; depends=[coin survival]; };
   permPATH = derive2 { name="permPATH"; version="1.2"; sha256="074knhcn88nzisfl20ais71micnnjqbm5lqp6jfkqj176r2af7cq"; depends=[R2HTML xtable]; };
   permimp = derive2 { name="permimp"; version="1.0-2"; sha256="1zq513bkallkkqghjilvgc5iw0pcglrdyc0r2sns4ck07a3q378j"; depends=[ipred party randomForest survival]; };
@@ -13693,8 +13789,8 @@ in with self; {
   permutations = derive2 { name="permutations"; version="1.0-9"; sha256="1701jah8i9frw3cbqlri2l56lansw54l3pp9h1fy36a8ahhcllkg"; depends=[magic numbers partitions]; };
   permute = derive2 { name="permute"; version="0.9-5"; sha256="0ra8p5mf2590azrkas8z2ry7mif77xqxd29n4zgyi5vll225726j"; depends=[]; };
   permutes = derive2 { name="permutes"; version="2.2"; sha256="0cmpngzl76v7mjdwk9b70a60gycsx9kw7laxswdh6j9wi0jcpp2a"; depends=[plyr]; };
-  perry = derive2 { name="perry"; version="0.3.0"; sha256="0g54m7cg9vkdrfqk339ylas6riyjp8scr6mwjnss1gcvqj378gs8"; depends=[ggplot2]; };
-  perryExamples = derive2 { name="perryExamples"; version="0.1.0"; sha256="0di0fl2ay3kza5alv6841qqjx1s2mbpn2gdl3f6aa7hfj20c9zym"; depends=[lars perry quantreg robustbase]; };
+  perry = derive2 { name="perry"; version="0.3.1"; sha256="0c3i9dc6hfdjfkjq2p630w6l1pz21mmqb8p0ikv6m159cfl3i3nq"; depends=[ggplot2]; };
+  perryExamples = derive2 { name="perryExamples"; version="0.1.1"; sha256="1abfrri0lq7iwdlk1qfzlq8378xpyvzfwcg1i18rmndfwsyyihjp"; depends=[lars perry quantreg robustbase]; };
   persiandictionary = derive2 { name="persiandictionary"; version="1.0"; sha256="0rgi36ngpiax3p5zk4cdgf3463vgx7zg5wxscs2j7834yh37jwax"; depends=[]; };
   personalized = derive2 { name="personalized"; version="0.2.6"; sha256="1pakg7c8h3cijm3n8x433isbmwa78gmg42xpkdvpabv2fx7jlday"; depends=[foreach gbm ggplot2 glmnet kernlab mgcv plotly survival]; };
   personalized2part = derive2 { name="personalized2part"; version="0.0.1"; sha256="104flqjyf0x0619msyc0vlkg61znvhf0v86fsdpksdxkgwb7wv7j"; depends=[foreach HDtweedie personalized Rcpp RcppEigen]; };
@@ -13709,7 +13805,7 @@ in with self; {
   petitr = derive2 { name="petitr"; version="1.0"; sha256="0i13zhdrdka0ij0khdzj6ylvvcn4wxvplb8a368i1s64cpgak30c"; depends=[]; };
   petrinetR = derive2 { name="petrinetR"; version="0.2.1"; sha256="0h9nsjsj87b6qvvkg81kn0j2c4xkzq89sddp9l6pjh636bdqwf8i"; depends=[DiagrammeR dplyr purrr visNetwork xml2]; };
   pewdata = derive2 { name="pewdata"; version="0.3.2"; sha256="1a4ci8hzpmwxs48lsppswcwkxv72yn44w486m9izwvx8wr1nlh2d"; depends=[foreign magrittr purrr rio RSelenium stringr]; };
-  pexm = derive2 { name="pexm"; version="1.0.1"; sha256="0347k4vk5aa8myvyija4h1rpdjhxqcd39a35hfdgyzm1b57qbzkm"; depends=[coda msm rjags]; };
+  pexm = derive2 { name="pexm"; version="1.1.1"; sha256="0qk634rlshd04vzb0jfnxf8xim74zkmdd6b7acg55kxx0n7kmd1i"; depends=[coda msm rjags]; };
   pez = derive2 { name="pez"; version="1.2-3"; sha256="07d4p2nz19ncd7bbf5facfym5h6rriayrcflx5sjb1f8ni63f98j"; depends=[ade4 animation ape caper FD Matrix mvtnorm phytools picante quantreg vegan]; };
   pfa = derive2 { name="pfa"; version="1.1"; sha256="0ikdd7ps8wnjp9nm66w447m06hqxnnk553jglxikl2w5d9vk6b31"; depends=[lars POET quantreg]; };
   pfica = derive2 { name="pfica"; version="0.1.2"; sha256="0v6wz2ig88z4pvwkmsxniy7cl2415091r6kn17dbgaw2qwqxgbxn"; depends=[corpcor expm fda moments]; };
@@ -13719,7 +13815,7 @@ in with self; {
   pgee_mixed = derive2 { name="pgee.mixed"; version="0.1.0"; sha256="115vvpv54q80486i3xs2yhmfyx476cf4g1v43q6l7wj3jwzcrvbg"; depends=[copula mvtnorm Rcpp RcppArmadillo]; };
   pgirmess = derive2 { name="pgirmess"; version="1.7.0"; sha256="1kh5vca2bnaa5yzazbhmhyw097x1v7b61cr6zxk3lxn9w6vqdhiy"; depends=[boot maptools rgdal rgeos sp spdep splancs]; };
   pglm = derive2 { name="pglm"; version="0.2-3"; sha256="16ghdgnpwyqgfa6z6gc93bw933dvazb3alv1867cbn7qnp2gaj3j"; depends=[Formula maxLik plm statmod]; };
-  pgmm = derive2 { name="pgmm"; version="1.2.4"; sha256="1bpknwfzw6rmag5s7ajg1glx46wkby5ahyya76ksa7r8vz4ffs3z"; depends=[]; };
+  pgmm = derive2 { name="pgmm"; version="1.2.5"; sha256="09cpjvhjdncrjs7v2hy6xdqq9p57gd1n8gmaq0p3jmhvrbnsgpfy"; depends=[]; };
   pgnorm = derive2 { name="pgnorm"; version="2.0"; sha256="1k9z7pvmranr8m62v7amc0pj6lwzh3wqi79gg3mflifn1mr6c057"; depends=[]; };
   pgraph = derive2 { name="pgraph"; version="1.6"; sha256="1mfpyj4ahs5szkzzv5fs9g26651vcnign3mkfgp23g8nlrs50cqa"; depends=[energy glasso glmnet SAM]; };
   pgsc = derive2 { name="pgsc"; version="1.0.0"; sha256="1y4szqn1jhp3yn8q738dpbhnqcqk45vgbmczamai154w3wb0qai7"; depends=[nloptr Rcpp RcppArmadillo reshape2]; };
@@ -13728,7 +13824,7 @@ in with self; {
   ph2bye = derive2 { name="ph2bye"; version="0.1.4"; sha256="0h5d8d4bagkp6g0nb67cb225ki5p1amnclnfj6afgdcsli5clr67"; depends=[animation nleqslv Rcpp VGAM]; };
   ph2mult = derive2 { name="ph2mult"; version="0.1.1"; sha256="0w3w18fkr9xzv6mpb00cz5id33zgsnl6s8zgjpchzvrhmpjpp437"; depends=[clinfun]; };
   ph2rand = derive2 { name="ph2rand"; version="0.1.0"; sha256="0k6azygcvzkirjx3vpx6kbhax1yai8r467kmmnvhh3p0v46mc5zp"; depends=[dplyr ggplot2 Rcpp scales tibble tidyr]; };
-  phangorn = derive2 { name="phangorn"; version="2.7.1"; sha256="160kks4bg4iwy8g234g6aiiqbvz7ki5k9csyax3kjv7ia5wddafq"; depends=[ape fastmatch igraph magrittr Matrix quadprog Rcpp]; };
+  phangorn = derive2 { name="phangorn"; version="2.8.0"; sha256="1pg5lfc5m4ccphswbfbihj91ppmqhf4084kbjlmfsrqxylsyy8ch"; depends=[ape fastmatch igraph Matrix quadprog Rcpp]; };
   pharmaRTF = derive2 { name="pharmaRTF"; version="0.1.4"; sha256="1h16r4yhlm6mbwq3k24ssm70bsrg2hvykqh8dayigz5wi2nq5c1f"; depends=[assertthat huxtable purrr stringr]; };
   pharmr = derive2 { name="pharmr"; version="0.33.1"; sha256="1a1mlgpw4yyi5px4mpw655b597nqw55nr810rp474f2dz2r18bgv"; depends=[altair reticulate]; };
   phase = derive2 { name="phase"; version="1.2.1"; sha256="1gh6xaymw3236d719jg6vl7yrdvnl5i276qhaksbb6axh3nnmgdb"; depends=[behavr circular lubridate plotly pracma signal zeitgebr zoo]; };
@@ -13770,7 +13866,6 @@ in with self; {
   photobiologySun = derive2 { name="photobiologySun"; version="0.4.1"; sha256="15wp8q29m5c4qplind9098ikxmm1r60lw8cm0pa48lmh33638ia3"; depends=[photobiology]; };
   photobiologyWavebands = derive2 { name="photobiologyWavebands"; version="0.4.4"; sha256="04bl72jaxm7vfvzss3wxjqf7p4l6rrqv11a7gqyfg0xqy18clnhx"; depends=[photobiology]; };
   photosynthesis = derive2 { name="photosynthesis"; version="2.0.1"; sha256="0drbic4sdx841pzcqvi0gkny7qrnzixlc0wsr6m0llh7pfyl99s6"; depends=[checkmate crayon dplyr furrr future ggplot2 glue gunit magrittr minpack_lm nlme pkgnet purrr rlang stringr tealeaves tidyselect units]; };
-  phreeqc = derive2 { name="phreeqc"; version="3.6.3"; sha256="0z20gj1kqhnbvx33sswz5ivj7nk2p4hia4gr2npscs94nc50b5j4"; depends=[]; };
   phuassess = derive2 { name="phuassess"; version="1.1"; sha256="0jplj9gih32dllx2hw5aqvc9b94sbrbv66s3a5r8mdbpjh93rhng"; depends=[]; };
   phyclust = derive2 { name="phyclust"; version="0.1-30"; sha256="0fy9q95vmlm9idpax7alhpfwn30gflnc9md72g91jypyxkx5nr7p"; depends=[ape]; };
   phyext2 = derive2 { name="phyext2"; version="0.0.4"; sha256="0j871kgqm9fll0vdgh071z77ib51y8pxxm0ssjszljvvpx1mb8rb"; depends=[ape phylobase]; };
@@ -13786,6 +13881,7 @@ in with self; {
   phylometrics = derive2 { name="phylometrics"; version="0.0.1"; sha256="1pmr6l3wmaf91wdlsc5m63l07fibngnly2qzkma0rdi463ii03il"; depends=[mvtnorm]; };
   phylopath = derive2 { name="phylopath"; version="1.1.3"; sha256="1j0gqd5027zd7xw6c8gkdqxwzqf0gw73m709gxqzk91xscnshg6q"; depends=[ape ggm ggplot2 ggraph igraph MuMIn pbapply phylolm purrr tibble]; };
   phyloregion = derive2 { name="phyloregion"; version="1.0.6"; sha256="161pjy66vhpjwc4h9q4jiqpyzn0v4nawx8ahspjpc7a376rk5552"; depends=[ape betapart clustMixType colorspace dismo igraph Matrix phangorn randomForest raster rgdal rgeos sp vegan]; };
+  phylosamp = derive2 { name="phylosamp"; version="0.1.6"; sha256="0bnj75hm6dlfx4milyl3idpaz0bxilmgwmcbai23gh5rgn2mpmcx"; depends=[cowplot ggplot2 RColorBrewer reshape2]; };
   phyloseqGraphTest = derive2 { name="phyloseqGraphTest"; version="0.1.0"; sha256="0y1hxj68dcic4i7ihnw9hgf28qp6s6kpq4c08dy7gv19gq7sllgd"; depends=[ggnetwork ggplot2 igraph intergraph phyloseq]; };
   phylosignal = derive2 { name="phylosignal"; version="1.3"; sha256="1h73wwczwak5v89mybq16lmmfr0fxfv5mx347ffipy6q9vgvwqx5"; depends=[adephylo ape boot DBI igraph phylobase Rcpp RcppArmadillo]; };
   phylotate = derive2 { name="phylotate"; version="1.3"; sha256="092kvn32j06vm8ilwjkgidcz11r3qhsmi0cb0g0nnykw0a0vii4p"; depends=[]; };
@@ -13800,7 +13896,7 @@ in with self; {
   picasso = derive2 { name="picasso"; version="1.3.1"; sha256="1z7zm88wjp7fia7054l7i55f152iddrjj9wbcpcskhc8s6kfg53c"; depends=[MASS Matrix]; };
   pid = derive2 { name="pid"; version="0.50"; sha256="05s3xqf95d4avh7gkr49jsm8jzacbv694c3wgppkkc40zip6vkc7"; depends=[DoE_base FrF2 FrF2_catlg128 ggplot2 png]; };
   piecemaker = derive2 { name="piecemaker"; version="1.0.0"; sha256="0qm9bbsxfmiycbhappzpm98arlwnbck29c75xjyg03m1dbfykvnk"; depends=[purrr rlang stringi stringr]; };
-  piecepackr = derive2 { name="piecepackr"; version="1.8.1"; sha256="1ckcjx36kk5zsfblq663aq31fj0bpkyp0k3fyl7snrxhm4gzjcgi"; depends=[backports gridGeometry grImport2 jpeg png purrr R6 stringr tibble]; };
+  piecepackr = derive2 { name="piecepackr"; version="1.9.2"; sha256="01vwp0h4955g9vbblsiq1m4mgc6ilx6iryfv07n81yd6b6s0690d"; depends=[backports gridGeometry grImport2 jpeg png purrr R6 stringr tibble]; };
   piecewiseSEM = derive2 { name="piecewiseSEM"; version="2.1.2"; sha256="1qxwc1drx26p4cgymrfjmg5i7ypl7gddv40virkpmc0qaag9pq36"; depends=[car DiagrammeR emmeans igraph lme4 MASS multcomp nlme]; };
   piggyback = derive2 { name="piggyback"; version="0.1.1"; sha256="1d448hkk772d21ix1l1cgq2a0spyjnppyrn1myjcv3dcrfxndn83"; depends=[clisymbols crayon fs gh httr jsonlite lubridate memoise]; };
   pillar = derive2 { name="pillar"; version="1.6.4"; sha256="17m13rzgwdddwa0n3gpmax6wmfaphbg71l13ffhw5vnxf6i94fh3"; depends=[cli crayon ellipsis fansi lifecycle rlang utf8 vctrs]; };
@@ -13840,17 +13936,17 @@ in with self; {
   pkdata = derive2 { name="pkdata"; version="0.1.0"; sha256="1kmcalidw2zidd6i8ds0k057b3187by2k8z6764va43d5garbbcv"; depends=[lubridate]; };
   pkgKitten = derive2 { name="pkgKitten"; version="0.2.2"; sha256="0rappcycpkdfdivzl6nn3jq1f42r9jqqmkb33asvhmpjs35fyc3s"; depends=[]; };
   pkgbuild = derive2 { name="pkgbuild"; version="1.2.0"; sha256="0qx920h2viwjg10va81nj0xja495d8ni6vcc25ggvzki6a6k069f"; depends=[callr cli crayon desc prettyunits R6 rprojroot withr]; };
-  pkgcache = derive2 { name="pkgcache"; version="1.2.2"; sha256="0jz3z1sxqksncisnvlnmq7ygmabh4sppjanhgk2gsqglq2zpyw4x"; depends=[assertthat callr cli curl digest filelock glue jsonlite prettyunits processx R6 rappdirs rlang tibble uuid]; };
+  pkgcache = derive2 { name="pkgcache"; version="1.3.0"; sha256="0wclbg0q5gx6dsy58979j3nzpfd6b6y4gxzrihlw37zf7c54cpxx"; depends=[assertthat callr cli curl digest filelock glue jsonlite prettyunits processx R6 rappdirs rlang tibble uuid]; };
   pkgcond = derive2 { name="pkgcond"; version="0.1.1"; sha256="03a4blq3niw1mljzylamvmr3l43czqlww4i6n7zb0dlym9x8gs1w"; depends=[assertthat]; };
   pkgconfig = derive2 { name="pkgconfig"; version="2.0.3"; sha256="0l1qph8zyi2sic3k2qcd7vlfl7rzfh1q7z7zvjkl5f7y1x2fy3rk"; depends=[]; };
-  pkgdepends = derive2 { name="pkgdepends"; version="0.1.2"; sha256="0yj0h5brkl333rs0cz1cfnn5b6ahz4130ijzz15jwxlb37yq3xy4"; depends=[callr cli crayon curl desc filelock glue jsonlite lpSolve pkgbuild pkgcache prettyunits processx ps R6 rematch2 rprojroot tibble withr zip]; };
+  pkgdepends = derive2 { name="pkgdepends"; version="0.2.0"; sha256="152dpxrsdw5rp0zi0h65p6q0a2hs076wbjpslj5hhqwnwphdpbsr"; depends=[callr cli crayon curl desc filelock glue jsonlite lpSolve pkgbuild pkgcache prettyunits processx ps R6 rematch2 rprojroot tibble withr zip]; };
   pkgdown = derive2 { name="pkgdown"; version="1.6.1"; sha256="1k31biyvxkv3xjc1yy3nzb9wfza3vbx97fv17nly5a6vlv7zqbs4"; depends=[callr crayon desc digest downlit fs httr magrittr memoise openssl purrr ragg rematch2 rlang rmarkdown tibble whisker withr xml2 yaml]; };
   pkgfilecache = derive2 { name="pkgfilecache"; version="0.1.4"; sha256="1fr650yb4wjz6flq4f8p2p5bck5q4kkrhlhlwjn832payq9p4zsp"; depends=[downloader rappdirs]; };
   pkggraph = derive2 { name="pkggraph"; version="0.2.3"; sha256="1isiywgm20rypc5qr03p0k7lis76zzd96x5ncbvia644d2n13brm"; depends=[curl data_table dplyr ggnetwork ggplot2 htmltools igraph intergraph Matrix network networkD3 plyr RColorBrewer tibble]; };
   pkglite = derive2 { name="pkglite"; version="0.2.0"; sha256="1qjym8kkbmzdz46xn6a4ir8b07ws30s3m7zdrgh98nf0vrv9bkj8"; depends=[cli magrittr remotes]; };
   pkgload = derive2 { name="pkgload"; version="1.2.3"; sha256="0jdkaj5cl0viy0i0hkcm4n2wlg1mfv3camr7f385njfararfanhh"; depends=[cli crayon desc rlang rprojroot rstudioapi withr]; };
   pkgmaker = derive2 { name="pkgmaker"; version="0.32.2"; sha256="14ggsd24n5g5rvn0wl4w90ipxzmywqikh28llj89q6kpxwnv4iff"; depends=[assertthat codetools digest registry stringr withr xtable]; };
-  pkgndep = derive2 { name="pkgndep"; version="1.0.3"; sha256="15kxzgq1v73rzccj9hng3zj775x27w04j31dcn2bhnnqzi8xviy5"; depends=[callr ComplexHeatmap crayon GetoptLong]; };
+  pkgndep = derive2 { name="pkgndep"; version="1.1.0"; sha256="1fd42v91z2ad6h7vcwy9rbg1s886laapz9n2737vdxywc00ylidb"; depends=[BiocManager brew ComplexHeatmap GetoptLong hash]; };
   pkgnet = derive2 { name="pkgnet"; version="0.4.1"; sha256="194ynbhq6k7gp8l4ccq6m37qhhf791ynbppjh77cc0q50w2jz387"; depends=[assertthat covr data_table DT futile_logger glue igraph knitr magrittr R6 rlang rmarkdown visNetwork]; };
   pkgnews = derive2 { name="pkgnews"; version="0.0.2"; sha256="0kqyy1fchpcyclxh6gly23pkfcf5b3hpsq1bhj4ykzbl4bc002h2"; depends=[]; };
   pkgsearch = derive2 { name="pkgsearch"; version="3.0.3"; sha256="1icn8qw6jpcgbmidqpml4ifpv1i5z2i4hp6b0gpb1xk9dlf6mnl2"; depends=[assertthat curl jsonlite parsedate prettyunits tibble]; };
@@ -13877,10 +13973,9 @@ in with self; {
   pleLMA = derive2 { name="pleLMA"; version="0.2.1"; sha256="1n6q4x8qv00j0hikzzr600xgikhr462zm73zllb9n0valhmzy18z"; depends=[dfidx mlogit]; };
   pleio = derive2 { name="pleio"; version="1.6"; sha256="0av1sl0fdn2ia7ddalbvidhcnsvs36iq618s1bknjw29y5yyq020"; depends=[Matrix rms]; };
   pleiotest = derive2 { name="pleiotest"; version="1.0.0"; sha256="05mgz42wn1y7q8ffgvak22r3k40q9rv1qvpal8yycp83p7hdzg7v"; depends=[RColorBrewer Rcpp RcppArmadillo]; };
-  plfMA = derive2 { name="plfMA"; version="1.0.5"; sha256="13hs06n4b28vlik9bzqdx6j85q05bsd6hb10cr39581a3m33rv5m"; depends=[cairoDevice gWidgets2 gWidgets2RGtk2 limma RGtk2]; };
   plfm = derive2 { name="plfm"; version="2.2.2"; sha256="1jgf3jrkdpsf77i4lf68s6sxax95c9is4nryhnzanq9i5f23j24v"; depends=[abind sfsmisc]; };
   plgp = derive2 { name="plgp"; version="1.1-7"; sha256="02g6saabrsd8pra0szbwcbilf6w5ywg2gxqb5zdvbxds2vw36hn0"; depends=[mvtnorm tgp]; };
-  pliman = derive2 { name="pliman"; version="0.3.0"; sha256="0jvsnxq7px2hi1mw6ci56p7jpm7jj8ic1j95r3mwvksn6ajc8kn3"; depends=[EBImage ggplot2]; };
+  pliman = derive2 { name="pliman"; version="1.0.0"; sha256="1mixkw8vfmjfhhfcw7zyfpadzk4imy5b0vlqvjlsmc5r71aakd4w"; depends=[lattice]; };
   plink = derive2 { name="plink"; version="1.5-1"; sha256="0rn2i9i8af9aq0xgxhpcdchs2952lq2d2sg8x3js0zi3vcml76k0"; depends=[lattice MASS statmod]; };
   plinkFile = derive2 { name="plinkFile"; version="0.1.0"; sha256="0803hp822v9rqh4h437q2nmab19yamc4dbyi6iimm67ykp0d5xss"; depends=[]; };
   plinkQC = derive2 { name="plinkQC"; version="0.3.4"; sha256="0l5gf7wf33fhzby0n2qzph02v7an2gj2dji1i129hxsxqnynx7dy"; depends=[cowplot data_table dplyr ggforce ggplot2 ggrepel igraph optparse R_utils sys UpSetR]; };
@@ -13942,15 +14037,15 @@ in with self; {
   pmcgd = derive2 { name="pmcgd"; version="1.1"; sha256="1pybzvyjmzpcnxrjsas06diy3x83i1r5491s6ccyr63l56hs55d5"; depends=[mixture mnormt]; };
   pmclust = derive2 { name="pmclust"; version="0.2-1"; sha256="0wldf0bj406qxmlc7hsbamiak7qcwf8ixng9dfkswh511m3p05jd"; depends=[MASS pbdMPI]; };
   pmd = derive2 { name="pmd"; version="0.2.1"; sha256="14xra1d6qx6gxnpiwfsxz200qhmm7s4zy2j8h5kwbvbpnykdyr5c"; depends=[data_table enviGCMS igraph RColorBrewer]; };
-  pmetar = derive2 { name="pmetar"; version="0.3.1"; sha256="1545gm88p2ym1zj8i4m50f6n8z7g3mx2jqk27kpj81m86kkdbnym"; depends=[dplyr httr lubridate magrittr RCurl stringr tidyr]; };
+  pmetar = derive2 { name="pmetar"; version="0.3.2"; sha256="1vx80pzwks0czvsyh48svvm2gb4jyz1m2r5l60dnia07kpz9wrjd"; depends=[curl dplyr httr lubridate magrittr RCurl stringr tidyr]; };
   pmhtutorial = derive2 { name="pmhtutorial"; version="1.5"; sha256="1hcw8hwpsivbhz86lnzy08q9n8vahnq8f7rmi4xkmg6b44582cqx"; depends=[mvtnorm Quandl]; };
   pmlbr = derive2 { name="pmlbr"; version="0.2.0"; sha256="1f0i52ws8ywkz4c0s3ax3qa3qinqhv1k9qlghkama3b027zkl9zn"; depends=[FNN]; };
   pmledecon = derive2 { name="pmledecon"; version="0.1.0"; sha256="0bpfx3lkg7wl7b189gl1m2xz72zna98wiw98yx3hvk6ndv55jy03"; depends=[rmutil splitstackshape]; };
-  pmml = derive2 { name="pmml"; version="2.4.0"; sha256="1mfjpvj2gdkkr3ji0l9x65vsx2y8313ak26cj1dim8c9j26snamw"; depends=[stringr XML]; };
+  pmml = derive2 { name="pmml"; version="2.5.1"; sha256="1spi8xfj6ab7niidlalnpwfd16800xdvambkmizjdh5w9i5hklzk"; depends=[stringr XML]; };
   pmmlTransformations = derive2 { name="pmmlTransformations"; version="1.3.3"; sha256="0315kb5x04pidpzr04yaxyynp0mz4ilzp7vkspq4agjkds5hyc88"; depends=[]; };
   pmpp = derive2 { name="pmpp"; version="0.1.1"; sha256="1srmkih6zsyf8yf1f045xy1afcz0if6nf1ncslgrq6rgm7330lkw"; depends=[data_table dplyr ggplot2 magrittr MASS Matrix minqa moments plm pracma]; };
   pmr = derive2 { name="pmr"; version="1.2.5"; sha256="0dq97dfjmgxlhr3a2n20vyyzfmamcicw878hdxpw31lw02xs6yls"; depends=[]; };
-  pmsampsize = derive2 { name="pmsampsize"; version="1.1.0"; sha256="1hqc4xnmlflz3rwsm9yl9ya8i02f8mbqgk8yy2fjxd3y2h7qigfc"; depends=[]; };
+  pmsampsize = derive2 { name="pmsampsize"; version="1.1.1"; sha256="09z1bhqk451jw5knl58mr3hs1il66hq40g2a9960gz55a8jj6fva"; depends=[]; };
   pmultinom = derive2 { name="pmultinom"; version="1.0.0"; sha256="0p2amb3y4jl24r21fii1qpmdbn5pfgywrx8k7x1jxpg49rk7k0rp"; depends=[fftw]; };
   pmwg = derive2 { name="pmwg"; version="0.2.0"; sha256="1f1r66ml24ys7nx5558c189a4gcaqkr16y87dmi4ravick9l5yfi"; depends=[checkmate coda condMVNorm MASS MCMCpack mvtnorm]; };
   pmxTools = derive2 { name="pmxTools"; version="1.2.1"; sha256="0r5y09ab6k31d7fbd5pn8lzaafq1ix2lrjci1bsvg0wwcxmdipw6"; depends=[chron data_tree DiagrammeR dplyr ggplot2 ggrepel gridExtra magrittr MASS stringr xml2]; };
@@ -14007,7 +14102,7 @@ in with self; {
   polypharmacy = derive2 { name="polypharmacy"; version="1.0.0"; sha256="1rimhy7z5xglkxfp3yh4vqm5g075n8g09nl4a8nxxf6cyl504gcv"; depends=[data_table doParallel foreach itertools lubridate stringr]; };
   polypoly = derive2 { name="polypoly"; version="0.0.2"; sha256="00c1hrnf575awvh0rlsnf6nkgi9p3fnqhd1knamkgb4icwi5s46d"; depends=[ggplot2 reshape2 rlang tibble]; };
   polyqtlR = derive2 { name="polyqtlR"; version="0.0.6"; sha256="0kdrq2j9lzcns29a27na3f1xga9sfa5bagf7ffkbvwxndy0xv1fi"; depends=[abind doParallel foreach Hmisc knitr nlme RColorBrewer Rcpp RcppArmadillo reshape2]; };
-  polyreg = derive2 { name="polyreg"; version="0.6.9"; sha256="04dw410h29r6ji38nrlnkhb5hpmify68drnl3vmzx33xx6avd15x"; depends=[dummies nnet partools RSpectra]; };
+  polyreg = derive2 { name="polyreg"; version="0.7.0"; sha256="1vsg1ldhvdq8pmw16qiv62c5l52mh6ccjcz3i3v06150ma953gcn"; depends=[dummies nnet]; };
   polysat = derive2 { name="polysat"; version="1.7-5"; sha256="1wc5q7hnhsshj8j83q85xzy84cjxmy6k2w6w0p0id05wp4j9vm94"; depends=[Rcpp]; };
   polywog = derive2 { name="polywog"; version="0.4-1"; sha256="02qk1cyvkd77mwlvhj1zzzi0bmy7qxz29j2v730wp7rz4w7h5x5n"; depends=[foreach Formula glmnet iterators Matrix miscTools ncvreg Rcpp stringr]; };
   pom = derive2 { name="pom"; version="1.1"; sha256="02jv19apn0kmp1ric2cxajlaad2fmsz4nm4izd2c3691vzas7l83"; depends=[matrixcalc]; };
@@ -14028,8 +14123,9 @@ in with self; {
   popPCR = derive2 { name="popPCR"; version="0.1.1.1"; sha256="03ppgjmdp3rivlgqs7aq082j4rzndf9fw5aq8mzci7fvjkj7whc4"; depends=[mvtnorm]; };
   popRF = derive2 { name="popRF"; version="1.0.0"; sha256="0w3w1ffyy5b8glviib7ryjqzhmfp5aw6am3z8qpvis6l745p7vgh"; depends=[doParallel foreach gdalUtils plyr quantregForest randomForest raster]; };
   popReconstruct = derive2 { name="popReconstruct"; version="1.0-6"; sha256="0nmf93dy2qf7z9mafpy99ry53aapbxlismn7drn732r8gvravapx"; depends=[coda]; };
+  popbayes = derive2 { name="popbayes"; version="1.0"; sha256="01p0highanjqdslbavykx67ss7w7f5xwczqx1l5pw4gkrvngm992"; depends=[R2jags usethis]; };
   popbio = derive2 { name="popbio"; version="2.7"; sha256="02dbb2sinn1n8a9dg8lvf35sc8hb14c90mjymz2gk64xdysf0m2j"; depends=[]; };
-  popdemo = derive2 { name="popdemo"; version="1.3-0"; sha256="0760ajqaq822m0j092gdqzhgw1mk413k09mmmwyzb0jzj6bd15q3"; depends=[expm MCMCpack]; };
+  popdemo = derive2 { name="popdemo"; version="1.3-1"; sha256="0xvqp71spqh5khi2gdzxmj8pp71i6l2qpcgcw8s9xbqwx9w905mq"; depends=[expm MCMCpack]; };
   popgenr = derive2 { name="popgenr"; version="0.2"; sha256="164dhizka0yadzihbjqkfs5p0hknw966mq0grigs7r9ppbq9kajh"; depends=[]; };
   popkin = derive2 { name="popkin"; version="1.3.13"; sha256="0b00rs89jrz28p4gj35lngvaq3jynmw1gqvz4pdbsnpan6xr63v1"; depends=[ape RColorBrewer Rcpp RcppEigen]; };
   poppr = derive2 { name="poppr"; version="2.9.3"; sha256="0f8gw14vz4p6jvxa8w3fp84pm1k980mk5sfbj82qmmj236rfvyx9"; depends=[ade4 adegenet ape boot dplyr ggplot2 igraph magrittr pegas polysat progressr rlang shiny vegan]; };
@@ -14070,7 +14166,7 @@ in with self; {
   powerMediation = derive2 { name="powerMediation"; version="0.3.4"; sha256="08zszskhd21pbjamch5q7v7vx2p78c1d53zrp31hmpxk1ymx2xf3"; depends=[]; };
   powerSurvEpi = derive2 { name="powerSurvEpi"; version="0.1.3"; sha256="1p1fw4jq4rxc273hmycxf4bkqm6zmfw0jdy2s65jy10q37r53ial"; depends=[pracma survival]; };
   powerbydesign = derive2 { name="powerbydesign"; version="1.0.5"; sha256="006m127rc49bshgljd5d3ii6sfx24ndn2690ixj0vnqm2dp3zjnw"; depends=[gdata ggplot2 lme4 MASS plyr reshape2 stringr]; };
-  powerly = derive2 { name="powerly"; version="1.5.2"; sha256="0agmycl9nqd4f3fl77bk49gd8lcfwp5gaidzrylpsrffmm5g3bgg"; depends=[bootnet ggplot2 osqp patchwork progress qgraph quadprog R6 splines2]; };
+  powerly = derive2 { name="powerly"; version="1.7.2"; sha256="104wp8cbwzlb6il614aacq608rir3yv18rwjqxljxi597nyy004v"; depends=[bootnet ggplot2 osqp patchwork progress qgraph quadprog R6 rlang splines2]; };
   powerpkg = derive2 { name="powerpkg"; version="1.5"; sha256="0mbk2fda2fvyp1h5lk5b1fg398xybbjv0z6kdx7w7xj345misf7l"; depends=[]; };
   powerplus = derive2 { name="powerplus"; version="3.1"; sha256="0ayp6x34hkzgris4j3zbbs0r23n81bhww3wgfyy630ri4sk6brrn"; depends=[complexplus expm MASS Matrix phonTools]; };
   ppcSpatial = derive2 { name="ppcSpatial"; version="0.2.0"; sha256="1gi57zngc42wcrihg29nn7qa3gaq105ckp76qmczkldshlpd7x4r"; depends=[dplyr ggplot2 htmltools htmlwidgets leaflet magrittr PakPC2017 rgdal scales shiny tidyr tmap]; };
@@ -14094,10 +14190,10 @@ in with self; {
   prabclus = derive2 { name="prabclus"; version="2.3-2"; sha256="0hg4d7y1w18jpgvw10z8833bbbcnlkwiasx0wh6iwa2pnnybq8gl"; depends=[MASS mclust]; };
   pracma = derive2 { name="pracma"; version="2.3.3"; sha256="0g5r5ir5k43ba0ngnsanp108k479l2dnsjd5w6idk1d34ivqs7yg"; depends=[]; };
   pragma = derive2 { name="pragma"; version="0.1.3"; sha256="1n30a346pph4d8cj4p4qx2l6fnwhkxa8yxdisx47pix376ljpjfx"; depends=[]; };
-  prais = derive2 { name="prais"; version="1.1.1"; sha256="027qsa1nc680bcs61dlyz0wwap5pgxdfzasg9ny37a55hnikxid5"; depends=[lmtest sandwich]; };
+  prais = derive2 { name="prais"; version="1.1.2"; sha256="16h3771lr6vn0g92bfpdq7r3wpdkspbhmrl5948p4isc5qxy2cgx"; depends=[lmtest pcse sandwich]; };
   praise = derive2 { name="praise"; version="1.0.0"; sha256="1gfyypnvmih97p2r0php9qa39grzqpsdbq5g0fdsbpq5zms5w0sw"; depends=[]; };
   praktikum = derive2 { name="praktikum"; version="0.1"; sha256="0kkydgglvqw371fxh46fi86fmdndhwq1n8qj0ynbh2gz1cn86aw1"; depends=[]; };
-  praznik = derive2 { name="praznik"; version="9.0.0"; sha256="0k8dk2jbinr3n8hgfsxkyv8739y9y3v4kcxwrq9dxzpiasx3p5r6"; depends=[]; };
+  praznik = derive2 { name="praznik"; version="10.0.0"; sha256="199g6wgda6m8ym9kg3qbx42c21bigg9bxkga950k2hdm3f1xa62g"; depends=[]; };
   prcbench = derive2 { name="prcbench"; version="1.0.1"; sha256="1n7f9qn0vz86ir4byvni4fi5x2xa8sdzpb54hwc0b34xy2wjm204"; depends=[assertthat ggplot2 gridExtra memoise precrec PRROC R6 rJava ROCR]; };
   prclust = derive2 { name="prclust"; version="1.3"; sha256="0p0sf8248aigs99py8mpzz743jnrf7n1nv5shag15arxz9yx7zn3"; depends=[Rcpp]; };
   prcr = derive2 { name="prcr"; version="0.2.1"; sha256="0k5vl14akqf8qvak6h7a19qxn4wzpyxq7lyvdhxfh8l4gs4ca2l6"; depends=[class dplyr forcats ggplot2 irr lpSolve magrittr purrr tibble tidyr]; };
@@ -14132,13 +14228,13 @@ in with self; {
   prereg = derive2 { name="prereg"; version="0.5.0"; sha256="0bck13iiaxwpqh0rd45mp1s5d8z62ggg0wa7rmyi8a65aywiypsi"; depends=[rmarkdown]; };
   preregr = derive2 { name="preregr"; version="0.1.9"; sha256="04fq2rxqfrpfxpv25biv2rxg0n4zdyyxylcl148x3cwxsc88rad1"; depends=[cli jsonlite rmdpartials yaml]; };
   presens = derive2 { name="presens"; version="2.1.0"; sha256="175nr9pqn3m6kh9bcc1gxqmqv05xdsqdw9lx385lmm1g947d2159"; depends=[marelac measurements]; };
-  presenter = derive2 { name="presenter"; version="0.1.0"; sha256="1sfn3pia1wvljgbkiya338d90xm404kp3qdq6sf0zacskwfaagjv"; depends=[badger berryFunctions dplyr flextable formattable framecleaner janitor lubridate magrittr officer openxlsx purrr randomcoloR rlang rvg stringi stringr tibble tidyr tidyselect]; };
+  presenter = derive2 { name="presenter"; version="0.1.1"; sha256="13q9cn2kglrr37cng9rz3bpl2ipmbiaaf233bn1bw83c6fisrq6m"; depends=[badger berryFunctions dplyr flextable formattable framecleaner janitor lubridate magrittr officer openxlsx purrr randomcoloR rlang rvg stringi stringr tibble tidyr tidyselect]; };
   presentes = derive2 { name="presentes"; version="0.1.0"; sha256="0d6zhishc7wxcvvglgw44pc6c172qpxb8i4iw3lqbmji7ash5zpx"; depends=[]; };
   preseqR = derive2 { name="preseqR"; version="4.0.0"; sha256="1g2rnnmi45649vpy6z45v5i3wxm54s138ajqrzwi3a5r7x3xnhq1"; depends=[polynom]; };
   presize = derive2 { name="presize"; version="0.2.3"; sha256="0gwavbi9fbwh454n5yg0rwqy13a8zjhs2yj7jhlmjn1bjjmxp8j4"; depends=[kappaSize shiny]; };
   presmTP = derive2 { name="presmTP"; version="1.1.0"; sha256="134p58zzk8i0whscvl5qdfn4niksypyxavq1m15cvw4zzk4dk6fw"; depends=[mgcv survPresmooth]; };
   presser = derive2 { name="presser"; version="1.1.0"; sha256="1slkdfh0wq242adp6a60612sjz117bii3pbahn00bfmnpa9g1wya"; depends=[]; };
-  prettifyAddins = derive2 { name="prettifyAddins"; version="2.2.0"; sha256="1hwcvfzknr6fnqbgbp5mq8g3cayrl4df8ncg0rvshaxkvmapcm88"; depends=[httr rstudioapi shiny webdriver xml2 XRJulia]; };
+  prettifyAddins = derive2 { name="prettifyAddins"; version="2.3.0"; sha256="14all19l4q9n2wjc4y1sv8zncy21aar29al1fnwqkvbp8ghjkx5m"; depends=[httr rstudioapi shiny webdriver xml2 XRJulia]; };
   prettyB = derive2 { name="prettyB"; version="0.2.2"; sha256="1wszcmn5jnk02iyvjld42291m1irfp9m0b3lcdyyp41iq3icm67g"; depends=[]; };
   prettyGraphs = derive2 { name="prettyGraphs"; version="2.1.6"; sha256="0yjpwxdy9mkj2k33zvd5klyv4ava46i19yls87n0bvf79y90ikpy"; depends=[]; };
   prettyR = derive2 { name="prettyR"; version="2.2-3"; sha256="1rs90cmr5dyry724php90mp41qwzzk1z3gxfwcj1k157qawacyhr"; depends=[]; };
@@ -14150,7 +14246,7 @@ in with self; {
   prevR = derive2 { name="prevR"; version="3.4.1"; sha256="02qfyc5j7rgvwl7a5pr1l41jmgjxxsrc674xfm08hcydwda5clq1"; depends=[directlabels fields foreign GenKern ggplot2 gstat maptools rgdal sp]; };
   prevalence = derive2 { name="prevalence"; version="0.4.0"; sha256="0vnmglxj1p66sgkw4ffc4wgn0w4s281fk2yifx5cn4svwijv30q0"; depends=[coda rjags]; };
   prevederer = derive2 { name="prevederer"; version="0.0.1"; sha256="0vkx9nrlgp36xbl95lrb5sb5yivxlcw4yvbs8hgbm31kh0vbz32f"; depends=[httr]; };
-  previsionio = derive2 { name="previsionio"; version="11.3.1"; sha256="13ypvlw2lz41v85rp7nqsv43n27far7jllf5ni4kvmpxw0xwi52c"; depends=[data_table futile_logger httr jsonlite magrittr Metrics plotly XML]; };
+  previsionio = derive2 { name="previsionio"; version="11.3.3"; sha256="0mx604y4kwj7d4ssnb1i61fyh3cd6df81yhvpjpf2k4bi6ifcx2s"; depends=[data_table futile_logger httr jsonlite magrittr Metrics plotly XML]; };
   prevtoinc = derive2 { name="prevtoinc"; version="0.12.0"; sha256="0ypdxcx9gh87a7ih3cw3yai47rzv41qwh4kpk6007ai8jkjv4n9w"; depends=[dplyr purrr rlang tibble]; };
   prewas = derive2 { name="prewas"; version="1.1.1"; sha256="16dpwpks0sqfq7pdhbpipb8hnm2viic2dnz1g7v86ar51z8db4xk"; depends=[ape future future_apply phangorn vcfR]; };
   priceR = derive2 { name="priceR"; version="0.1.6"; sha256="1c2yxjrd9v5i76hc5dn0hc6k2shy9cs32mvhr579w7n990ksjw23"; depends=[curl dplyr gsubfn jsonlite lubridate purrr stringi stringr]; };
@@ -14229,7 +14325,7 @@ in with self; {
   prophet = derive2 { name="prophet"; version="1.0"; sha256="06mryavky9xj54ig4scqjgpx7i56nwhs53g0zqsbs9f6qxja7gll"; depends=[BH dplyr dygraphs extraDistr ggplot2 lubridate Rcpp RcppEigen RcppParallel rlang rstan rstantools scales StanHeaders tidyr xts]; };
   proportion = derive2 { name="proportion"; version="2.0.0"; sha256="0a71f6hz6blb7550m9x0di84vp51yjhnn952301rwlrh3axf6dbr"; depends=[ggplot2 TeachingDemos]; };
   propr = derive2 { name="propr"; version="4.2.6"; sha256="16ghgzpwz6q9zlaa0pc8wqv0wpz81c75n7zwjyr1lv9y19qwlkfg"; depends=[fastcluster ggplot2 igraph Rcpp]; };
-  prospectr = derive2 { name="prospectr"; version="0.2.1"; sha256="0yg2ip33548mily51hgpiiasp67pcc3x1ksmbaxcg1mpp48algyz"; depends=[foreach iterators lifecycle mathjaxr Rcpp RcppArmadillo]; };
+  prospectr = derive2 { name="prospectr"; version="0.2.2"; sha256="1nlwwz777nlpdcnsn36j6s0gpdb7ria08x20hklmsa49q2aiqfc1"; depends=[foreach iterators lifecycle mathjaxr Rcpp RcppArmadillo]; };
   protViz = derive2 { name="protViz"; version="0.7.0"; sha256="0l1pmfr9kmc90rl5s9b0141451rxrjmiiasp3lsvl2x3ps0smqaj"; depends=[Rcpp]; };
   protag = derive2 { name="protag"; version="1.0.0"; sha256="1iaw2w1d7hdvlg5vplpqc49wq08dgmm0ifvp2v0ggqb8invvdnw8"; depends=[dplyr ggplot2 RColorBrewer]; };
   protein8k = derive2 { name="protein8k"; version="0.0.1"; sha256="11qj4sadhcsp1kk5kjmvzj2jnd3srsm5mp0q9h9khp1ps6dk35yw"; depends=[dplyr ggplot2 gridExtra lattice magick pryr rjson rlang shiny]; };
@@ -14253,9 +14349,9 @@ in with self; {
   provTraceR = derive2 { name="provTraceR"; version="1.0"; sha256="19iillyh5zw64mmr6ik4ci1n2p651xqzxa4iq5bwa70imbzyy5ip"; depends=[provParseR]; };
   provViz = derive2 { name="provViz"; version="1.0.7"; sha256="0bjq8mywgm2jr0m0458wk6n5al7jr1psvh4g31z4qzlrrkfqgzzg"; depends=[]; };
   provenance = derive2 { name="provenance"; version="3.3"; sha256="0kdpv1gjvgv9nxfsarm1z042xas9d4n2smhrqccs450a2mhb5fxr"; depends=[IsoplotR MASS]; };
-  proxirr = derive2 { name="proxirr"; version="0.1"; sha256="1lb32fdfswdrczylhfz5f0aawg7rkxzzsav37m551makn6a26k49"; depends=[]; };
+  proxirr = derive2 { name="proxirr"; version="0.2"; sha256="0ffnzmd9zy43vzp0mc0ncjwfj5d7p2gzwk8gcwhk1f9yvgiw4wc1"; depends=[]; };
   proxy = derive2 { name="proxy"; version="0.4-26"; sha256="0k8sr24mjfvxp12sf1j9228ah3ngy15nqmm0jw14x5s32f1assv7"; depends=[]; };
-  proxyC = derive2 { name="proxyC"; version="0.2.2"; sha256="107z7di0xkil58pf051abp8v729rg4gk47bp9a1h5z1xwp132fnh"; depends=[Matrix Rcpp RcppArmadillo RcppParallel]; };
+  proxyC = derive2 { name="proxyC"; version="0.2.3"; sha256="1g90d82rp82dkidlfykankprzpp94d7394s2b2qjlyiia3k0hlb3"; depends=[Matrix Rcpp RcppArmadillo RcppParallel]; };
   prozor = derive2 { name="prozor"; version="0.2.11"; sha256="1a2k69fvgi6vxgczk81kh8r2jxc6nirc51w6ac239rqjzb1zyhjm"; depends=[AhoCorasickTrie doParallel dplyr foreach Matrix plyr readr seqinr stringr]; };
   prrd = derive2 { name="prrd"; version="0.0.5"; sha256="0ig3k1l2md6hzb5asv277ylg0k9a1rkcrbs8d8h4f07pxykhmivf"; depends=[config crayon data_table DBI liteq RSQLite]; };
   prt = derive2 { name="prt"; version="0.1.4"; sha256="0adbznxacdfqd9hvp5x45vckh6vxlz2fvhqdqikmfy99k9gzcd4c"; depends=[assertthat backports cli crayon data_table fansi fst pillar rlang tibble vctrs]; };
@@ -14303,6 +14399,7 @@ in with self; {
   psychotools = derive2 { name="psychotools"; version="0.7-0"; sha256="11gybrf9d90nbqfm76qr2z9y4bn498j1csg5zir38k5inpw5bk3x"; depends=[]; };
   psychotree = derive2 { name="psychotree"; version="0.15-4"; sha256="0ni8ajl0hzl4spm71c0myhv16an00j0brb4gyzg2fgkqs6rm34l2"; depends=[Formula partykit psychotools]; };
   psychrolib = derive2 { name="psychrolib"; version="2.5.2"; sha256="0d43zhpl5ik90hqpdy62x7rwmxag3z1mdrn3cl1whr04rmymhk20"; depends=[Rcpp]; };
+  psychtm = derive2 { name="psychtm"; version="2021.1.0"; sha256="1qx3ks23wyi7c53p05jq2w18qz0kym0j43japz9sgj6zyh0c5649"; depends=[coda label_switching Rcpp RcppArmadillo RcppProgress rlang tibble]; };
   psymetadata = derive2 { name="psymetadata"; version="1.0.0"; sha256="16xcjxa8h7x58ssvdmiy1byxxmppmxjgf9m5xacm6w1nyw062jd5"; depends=[Rdpack]; };
   psymonitor = derive2 { name="psymonitor"; version="0.0.2"; sha256="09288w2bk5jhnbyj516jqn5qb33yqqg5kqbg6ylqk7anlq2yg2sl"; depends=[doParallel foreach magrittr]; };
   psyntur = derive2 { name="psyntur"; version="0.1.0"; sha256="0dh7vdj3ynsxibcf0wmh5h4yknijg78azjzlma25glihpgd2nbbw"; depends=[dplyr effsize ez fastDummies formula_tools GGally ggplot2 ggthemes magrittr plyr psych purrr rlang tidyr tidyselect]; };
@@ -14312,7 +14409,7 @@ in with self; {
   ptf = derive2 { name="ptf"; version="0.0.1"; sha256="1s9nzn823z2capil83vcfs7frg8f6bpygx8aw1zz4sacnhvryr52"; depends=[Matrix plyr rARPACK Rcpp RcppArmadillo]; };
   ptinpoly = derive2 { name="ptinpoly"; version="2.8"; sha256="126chp92ha48agx5i819bzdij79zbgj32msijvaid3zhxjx7qy1j"; depends=[misc3d]; };
   ptm = derive2 { name="ptm"; version="0.2.4"; sha256="00szxlil7657ciwh17jkk1mv28m5h1la97ksgn3glypf5z7hsrd4"; depends=[bio3d Biostrings curl httr igraph jsonlite muscle RCurl seqinr xml2]; };
-  ptmixed = derive2 { name="ptmixed"; version="1.0.3"; sha256="03nkbwjybryifv1wk6a923w6pgfb10f9nkda2f2kfxpyi5hwqrzs"; depends=[aod GLMMadaptive lme4 matrixcalc moments mvtnorm numDeriv tweeDEseq]; };
+  ptmixed = derive2 { name="ptmixed"; version="1.1.0"; sha256="08pi6bj5mdg3jahb035ld41b0hlx16bmfwf51i8ayxhf71paayq5"; depends=[aod GLMMadaptive lme4 matrixcalc moments mvtnorm numDeriv tweeDEseq]; };
   pts2polys = derive2 { name="pts2polys"; version="0.1.3"; sha256="0rmgryv0vds20npvaqvvwrhrx0grfcz9qwdy2w3bx945r0chhw39"; depends=[Rcpp]; };
   ptspotter = derive2 { name="ptspotter"; version="1.0.1"; sha256="1yppjmsxx01n9x0a0bbqsaxjixvrzyjq3112p94igg2xpp6h6cvl"; depends=[beepr log4r pryr stringr this_path]; };
   ptsuite = derive2 { name="ptsuite"; version="1.0.0"; sha256="1df273p8v6zvhy2jj6imhjigwj77grx6sxqmg0sidxwqny5d1d9c"; depends=[Rcpp]; };
@@ -14323,7 +14420,7 @@ in with self; {
   pubchunks = derive2 { name="pubchunks"; version="0.3.0"; sha256="14jzl0ra0d68s246a9jhfgp1wyy9g7d0rzahvl97crkklld1crvx"; depends=[data_table rcrossref xml2]; };
   pubh = derive2 { name="pubh"; version="1.2.5"; sha256="0gqiqrj1w4arwlfvwllghdq5p85yl0aqabfij54wgvgs34nfmqjb"; depends=[car dplyr emmeans Epi epiR epitools ggformula ggplot2 gtsummary Hmisc huxtable lmtest magrittr moonBook sandwich sjlabelled sjmisc sjPlot survival tibble tidyselect]; };
   publipha = derive2 { name="publipha"; version="0.1.1"; sha256="0ssmkz4bbrp5yvqb2da0i6shzm59ydw2sqkmqkid039782sibjch"; depends=[BH loo Rcpp RcppEigen rstan rstantools StanHeaders truncnorm]; };
-  pubmed_mineR = derive2 { name="pubmed.mineR"; version="1.0.18"; sha256="1y396jjybgawmd6nfmqz8zzgf2jk1hq4519njbi5q4wna8gg3gar"; depends=[boot R2HTML RCurl XML]; };
+  pubmed_mineR = derive2 { name="pubmed.mineR"; version="1.0.19"; sha256="0yh4gjhh7nw5vh3ksay2z5pgskmasbagzbgb3bfxch9b6arv6kgc"; depends=[boot R2HTML RCurl RJSONIO XML]; };
   pubmedR = derive2 { name="pubmedR"; version="0.0.3"; sha256="153br94iqayrvvgzrzx0r3ilcrmnznfdnzk8yaii01s8i1g1wxcd"; depends=[rentrez XML]; };
   pubtatordb = derive2 { name="pubtatordb"; version="0.1.4"; sha256="0i5azbf75bwxxzpsr5fc2hh22pbwix00hz9dcdpn5jgp2957f7wx"; depends=[assertthat DBI dplyr R_utils readr RSQLite]; };
   pullword = derive2 { name="pullword"; version="0.3"; sha256="125d091ba9h8h61y0m1bnflklmz898sp9w6ibca50vwz3d2qy5rz"; depends=[RCurl]; };
@@ -14339,8 +14436,9 @@ in with self; {
   purrr = derive2 { name="purrr"; version="0.3.4"; sha256="1cj091rsjdj2xz16qhynyw72gh5cyhznifcfbrbygndfr4xwksr3"; depends=[magrittr rlang]; };
   purrrlyr = derive2 { name="purrrlyr"; version="0.0.7"; sha256="03472xz0q30vjg45xv24zkd9b1w8ggi33vchxrimfnppdiqi3x0m"; depends=[BH dplyr magrittr purrr Rcpp]; };
   pushbar = derive2 { name="pushbar"; version="0.1.0"; sha256="1gxarv6x32y6ssrhsq3pyihzcvpnnj7bg0jf2cpcr99da78n1d9b"; depends=[jsonlite shiny]; };
-  pushoverr = derive2 { name="pushoverr"; version="1.0.0"; sha256="1zazrx0szx21ymn7zlkfqkhid0ar8jblnpnf5nycj0p7dbh6d0bd"; depends=[assertthat httr]; };
+  pushoverr = derive2 { name="pushoverr"; version="1.1.0"; sha256="05ma76jhk00m9872f7gb0vwmk2q3l79r1ddaf1slbhgd57l1avk2"; depends=[checkmate cli glue httr rlang]; };
   puzzle = derive2 { name="puzzle"; version="0.0.1"; sha256="073n074irsvn4w1jy5xmr6l24a209kn0ypvf1d2zn3p6yd93wzss"; depends=[dplyr kableExtra lubridate plyr readr readxl reshape reshape2 sqldf tidyverse]; };
+  pvLRT = derive2 { name="pvLRT"; version="0.3"; sha256="0fhnyj0ax9c4k0vah0p7dlf825abxr45bkcx5ifrgbmwdnj783gl"; depends=[bit64 data_table ggplot2 glue magrittr progress RColorBrewer]; };
   pvaluefunctions = derive2 { name="pvaluefunctions"; version="1.6.1"; sha256="0p1hgrab8yallxri1z2q3cv26q6nydzykcvc6bcv9r00wjjfh966"; depends=[ggplot2 pracma scales zipfR]; };
   pvar = derive2 { name="pvar"; version="2.2.5"; sha256="1a5dxhki5nd5s1d5wwnc1dkg7mdib2s8w1i0l8mdg3f1g3l00klz"; depends=[Rcpp]; };
   pvclass = derive2 { name="pvclass"; version="1.4"; sha256="1g6x75qz3xybq1xnik0hzi7mcs0gzzqd3f0iwfkzi5d1zcddnw13"; depends=[Matrix]; };
@@ -14360,6 +14458,7 @@ in with self; {
   pwt9 = derive2 { name="pwt9"; version="9.1-0"; sha256="0m2df89lali9945avcv4gdjpxch9in7vdd042nx0q8nv0alb4ijd"; depends=[]; };
   pxR = derive2 { name="pxR"; version="0.42.4"; sha256="1r0ffr5wxf67i1jh67v06vcmifw4hhhasd4aivic94bkvq4sqmn5"; depends=[plyr reshape2 RJSONIO stringr]; };
   pxweb = derive2 { name="pxweb"; version="0.12.0"; sha256="0xg20yxc2fl31rqs92m4slc1b0q7vwpqnjv6hh0v4bybgw02qvr1"; depends=[checkmate httr jsonlite]; };
+  pyMTurkR = derive2 { name="pyMTurkR"; version="1.1.5"; sha256="1b1cbvjbnvw2h8l3lbm0ma80zgpm212wzfhyyr6dr115k237xy89"; depends=[curl reticulate XML]; };
   pycno = derive2 { name="pycno"; version="1.2"; sha256="0ha5css95xb98dq6qk98gnp1al32gy6w5fkz74255vs4hmkwfzw2"; depends=[maptools rgeos sp]; };
   pyinit = derive2 { name="pyinit"; version="1.1.2"; sha256="0i5l9rm8gkkabsqxkl0gvrpsbz7im0lk0axz1c0m0lq2vlrw9jsq"; depends=[robustbase]; };
   pylintR = derive2 { name="pylintR"; version="0.1.0"; sha256="00k9p3igdxhyx353gq8j9mnhrs9fh0j4q2iqa2ljfjdsdw1r2asr"; depends=[fansi htmlwidgets rstudioapi]; };
@@ -14388,7 +14487,7 @@ in with self; {
   qdapTools = derive2 { name="qdapTools"; version="1.3.5"; sha256="09byvv39qmdcavlykpcvk248l2f7sw0pq64ynq2xffmnga3ji24c"; depends=[chron data_table RCurl XML]; };
   qdm = derive2 { name="qdm"; version="0.1-0"; sha256="0cfxyy8s5zfb7867f9xv9scq9blq2qnw68x66m7y7nqlrrff5xdr"; depends=[]; };
   qfasar = derive2 { name="qfasar"; version="1.2.1"; sha256="14370bmq4qx5j02va13wz52m2lgl4vb992p9587z9v2sxl1v4jjg"; depends=[Rsolnp]; };
-  qgam = derive2 { name="qgam"; version="1.3.3"; sha256="0vx2wf3rqc3j8i0870xrwxndkbgza0nnh7f0yxi8h67lfi7gws4s"; depends=[doParallel mgcv plyr shiny]; };
+  qgam = derive2 { name="qgam"; version="1.3.4"; sha256="1jyamamdffaks89rspyhmg18b4iik0nb1j0vgqzvfnm890514cvn"; depends=[doParallel mgcv plyr shiny]; };
   qgcomp = derive2 { name="qgcomp"; version="2.8.0"; sha256="1z9wy2nxjr6dnxphsnfbdbqgbyysbrygybbpaka4li42wkfnaz40"; depends=[arm future future_apply generics ggplot2 gridExtra pscl survival tibble]; };
   qgcompint = derive2 { name="qgcompint"; version="0.6.2"; sha256="0jn39bsm75z13r5hhbhw0hs9a9yy54zn7sv9xq88hgzl4qqqnaaa"; depends=[arm future future_apply ggplot2 gridExtra qgcomp survival]; };
   qgg = derive2 { name="qgg"; version="1.0.4"; sha256="1xyviy73jl76bpv5izlkgf171qrypgv2wm5mi3s06cb7md8psrkb"; depends=[data_table MASS MCMCpack statmod]; };
@@ -14419,7 +14518,7 @@ in with self; {
   qqtest = derive2 { name="qqtest"; version="1.2.0"; sha256="1v0qbbp2dpqflpg7yif7hipwdbz27isfyfwcia1ln7z0nnvkjm8c"; depends=[]; };
   qqvases = derive2 { name="qqvases"; version="1.0.0"; sha256="1fli4v1slmnwcmzmmfw84sa4mx3xzv3im1q0plb8811sbsgmwdvl"; depends=[shiny shinythemes]; };
   qrLMM = derive2 { name="qrLMM"; version="2.1"; sha256="1viyllsd08dwgd5z930ml1nrcc9saaa18i5sx0bska8b0s7qh414"; depends=[ald lqr mvtnorm psych quantreg]; };
-  qrNLMM = derive2 { name="qrNLMM"; version="3.1"; sha256="15gr3wg8d4kh5fl006p4ddfsxzx7wypniwk5h2dai5c3ag7ki59c"; depends=[ald lqr mvtnorm progress psych quantreg]; };
+  qrNLMM = derive2 { name="qrNLMM"; version="3.2"; sha256="0spwwzrjzz74gfl3s4dghrbvqmg8f7ic52yz3nbm85bpgjw7zqnv"; depends=[ald lqr mvtnorm progress psych quantreg]; };
   qra = derive2 { name="qra"; version="0.2.7"; sha256="0wx0lz8a7qc1fdpvgyfhpbryy7wk7yi90ii2yirh57dvpyfq54m0"; depends=[ggplot2 knitr lattice latticeExtra lme4 rmarkdown]; };
   qrage = derive2 { name="qrage"; version="1.0"; sha256="00j74bnkcpp0h8v44jwzj67q9aaw47ajc2fvgr6dckj9rymydinl"; depends=[htmlwidgets]; };
   qrandom = derive2 { name="qrandom"; version="1.2.4"; sha256="0a75pz9bhy6bqxlz02bgkgi83hrq06p9ah7qf8n0pdc2rh3sy1cx"; depends=[curl jsonlite Rmpfr]; };
@@ -14433,7 +14532,7 @@ in with self; {
   qrmtools = derive2 { name="qrmtools"; version="0.0-14"; sha256="1gjaq6i0xhsivcmivbn4xxsqasbvf95p1w0rzpycxzgcfarxwwx3"; depends=[ADGofTest lattice Quandl quantmod rugarch xts zoo]; };
   qrng = derive2 { name="qrng"; version="0.0-8"; sha256="1yagh7llrg208mdmwyq7gy4c7h20hj4s5ikp6nc3q8pl7avmq3jc"; depends=[copula randtoolbox]; };
   qrnn = derive2 { name="qrnn"; version="2.0.5"; sha256="0ligz67kbfg5cmvacnb7y0ms1v0c7mbvbcfsxyfiz543ppl3xn1v"; depends=[]; };
-  qs = derive2 { name="qs"; version="0.25.1"; sha256="0qzrhc5jsygj813k956b00h4b6haynz44rk6a4v34fv4ywq9ba7w"; depends=[RApiSerialize Rcpp stringfish]; };
+  qs = derive2 { name="qs"; version="0.25.1.1"; sha256="077i181vh0izvsdy2d4366yir0ajg531g6d1s7ab044ssbphg38x"; depends=[RApiSerialize Rcpp stringfish]; };
   qsimulatR = derive2 { name="qsimulatR"; version="1.0"; sha256="0d2al6rnsyj58jhwczn2rx09b007s2yjihpk7i65law7v8dmxiaf"; depends=[]; };
   qsort = derive2 { name="qsort"; version="0.2.3"; sha256="1xvp29dijfa2207wyw3z09rmffn61fngfy0f00qjk284n1jnnvrg"; depends=[cowplot ggplot2 gridExtra purrr]; };
   qst = derive2 { name="qst"; version="0.1.2"; sha256="0f5c4088y9c5fxyy2dyfkp049lnzvys3zyizazxsa82xwkwsbc8a"; depends=[DBI dbplyr dplyr magrittr RSQLite tibble]; };
@@ -14453,6 +14552,7 @@ in with self; {
   qtlhot = derive2 { name="qtlhot"; version="1.0.4"; sha256="0gf0fsq91g830vqg5kz01zznm40qpjncy964ccvmms3i6d3hxd9m"; depends=[corpcor mnormt qtl]; };
   qtlmt = derive2 { name="qtlmt"; version="0.1-6"; sha256="023h60z8d05832l2g7mg776hfjb0i7xpvhz3i899rc3h5pgjd94c"; depends=[]; };
   qtlnet = derive2 { name="qtlnet"; version="1.5.4"; sha256="0jdf3hyzas0lyv2v4gqai9mhh7218a1mvm0nlwv9hfdbij0hi84v"; depends=[graph igraph pcalg qtl sem]; };
+  qtlpoly = derive2 { name="qtlpoly"; version="0.2.2"; sha256="0a7nlc22yndp9xbq5lyabzahgym6vayi46z1a75wwgjdjizji1r0"; depends=[abind CompQuadForm ggplot2 gtools MASS Matrix mvtnorm nlme quadprog Rcpp RcppArmadillo RcppProgress RLRsim]; };
   quRan = derive2 { name="quRan"; version="0.1.0"; sha256="108d797l9ggggc5b61pl7f6avzknmnnib2ys5vrg385zfbx9srvw"; depends=[]; };
   quad = derive2 { name="quad"; version="1.0"; sha256="0fak12l19f260k0ygh6zimx8dabzsv7a9i2njw8hnfcs3ndffhv5"; depends=[PearsonDS]; };
   quadmatrix = derive2 { name="quadmatrix"; version="0.1.0"; sha256="0nngrvvbalmrr6g9bq9f5qrllvwfq5p1b9yhs4zb098s3wga8jms"; depends=[geigen matrixcalc]; };
@@ -14474,7 +14574,7 @@ in with self; {
   quanteda = derive2 { name="quanteda"; version="3.1.0"; sha256="0gafbb73gcxx2gq9q7bg88alyhymkr471lp394m5ydij6mdm4hb9"; depends=[fastmatch magrittr Matrix Rcpp RcppArmadillo RcppParallel SnowballC stopwords stringi xml2 yaml]; };
   quanteda_textmodels = derive2 { name="quanteda.textmodels"; version="0.9.4"; sha256="0r2nls93nriw97z0rmmpn2bb8c3jr571hv5slqj68p7ibr06rh1h"; depends=[glmnet LiblineaR Matrix quanteda Rcpp RcppArmadillo RcppParallel RSpectra SparseM stringi]; };
   quanteda_textplots = derive2 { name="quanteda.textplots"; version="0.94"; sha256="1as7mpy3ihja5d9nw7c30w0yhaklpmn41bgw2cvpic2rbp5828fa"; depends=[extrafont ggplot2 ggrepel igraph Matrix network quanteda RColorBrewer Rcpp sna stringi]; };
-  quanteda_textstats = derive2 { name="quanteda.textstats"; version="0.94.1"; sha256="1hwkkk1q6h8fdd0wdbkg657zppg2l049bcnxw4zq602wfplxra5n"; depends=[Matrix nsyllable proxyC quanteda Rcpp RcppArmadillo RcppParallel stringi]; };
+  quanteda_textstats = derive2 { name="quanteda.textstats"; version="0.95"; sha256="100125n2l3mhj0clbwpy3cbb84mwf83ix2c67sy8lmmh71vxz2rk"; depends=[Matrix nsyllable proxyC quanteda Rcpp RcppArmadillo RcppParallel stringi]; };
   quantification = derive2 { name="quantification"; version="0.2.0"; sha256="116cp88q9cmizxc2a8lsysa1vwyp1y86457fx5qkq5dcm4g721g8"; depends=[car]; };
   quantileDA = derive2 { name="quantileDA"; version="1.1"; sha256="0jbklxsy33j7clcw97qq4ijwkrb94v2m11gjcfa38vplfxm9913q"; depends=[]; };
   quantilogram = derive2 { name="quantilogram"; version="2.1.1"; sha256="07mvgbk5qhkaihk2dn5c8cfac2xd9hfglh284sg4jkrkq0cfgrl8"; depends=[np quantreg SparseM]; };
@@ -14485,10 +14585,10 @@ in with self; {
   quantreg = derive2 { name="quantreg"; version="5.86"; sha256="01fnp6ndh7npxj76xlynndacsgmcfr9kgh2waw0clx3mmwlwilbi"; depends=[conquer Matrix MatrixModels SparseM]; };
   quantreg_nonpar = derive2 { name="quantreg.nonpar"; version="1.0"; sha256="1f9120awnkwsgdiqg98lg7xs5l4y80930869x6k9q76595r5m92k"; depends=[fda mnormt quantreg Rearrangement]; };
   quantregForest = derive2 { name="quantregForest"; version="1.3-7"; sha256="0lk7r02i6zpx9sdl2rp0r7fc3a84s8qhg49nh2x7k3vxwa095pjz"; depends=[randomForest RColorBrewer]; };
-  quantregGrowth = derive2 { name="quantregGrowth"; version="1.3-1"; sha256="00avyjpbwh3y3pmncppkwl4545s2m1x77nllpih7sry4wds7rkj7"; depends=[quantreg]; };
+  quantregGrowth = derive2 { name="quantregGrowth"; version="1.4-0"; sha256="0fw8kdgnlvb9c0xnankmzlpk9qnk52rqrrby32a02mz2f93ddh7k"; depends=[quantreg]; };
   quantregRanger = derive2 { name="quantregRanger"; version="1.0"; sha256="1a9q2prr790bpw6s0y5ni5ppd3vqkjr0v4nqp6ywcj5n3sk69pvx"; depends=[ranger Rcpp]; };
   quantspec = derive2 { name="quantspec"; version="1.2-3"; sha256="0ifwq2jmvxhpijz9yd9hffkff6ixcliaqkp9ispp9k1b8icwi8zn"; depends=[abind quantreg Rcpp snowfall zoo]; };
-  quarks = derive2 { name="quarks"; version="1.0.9"; sha256="02yjmbv0lm940g74d4q6xhmv158ghis9n9s84g09j3q8wzkgmsld"; depends=[rugarch]; };
+  quarks = derive2 { name="quarks"; version="1.0.10"; sha256="13g2pyxb2a4vyyj7nzq23mzbl1j9q5kpvyj0vd1gxvjnds47r5qp"; depends=[rugarch]; };
   quarrint = derive2 { name="quarrint"; version="1.0.0"; sha256="13fdmmrgn23xd9vpywmcl7pf729gmcxjfl1wxs30axsbp4h1s6rk"; depends=[neuralnet]; };
   quarto = derive2 { name="quarto"; version="1.0"; sha256="1733ck30p163m6zfxwr8kbzf8ks4zi0g5fi1azwdl97np5q3aarw"; depends=[jsonlite later processx rmarkdown rstudioapi yaml]; };
   queryparser = derive2 { name="queryparser"; version="0.3.1"; sha256="1pz66f3wxvvv42l5hib7hbpy14s8a13gn0n57vf6v5zdnz423kdr"; depends=[]; };
@@ -14517,6 +14617,7 @@ in with self; {
   qwraps2 = derive2 { name="qwraps2"; version="0.5.2"; sha256="1ars25aa50fn6m4v423pzs4rkplxhpi26qi3aq7f39bgmqpnpy83"; depends=[dplyr ggplot2 knitr Rcpp RcppArmadillo rlang xfun]; };
   r_blip = derive2 { name="r.blip"; version="1.1"; sha256="1p33g6i6fq9c27d5ix9nd8prv90i4hrf91x34bldlw8041sjqxm0"; depends=[bnlearn foreign]; };
   r_jive = derive2 { name="r.jive"; version="2.4"; sha256="12zjzjjy1dwhr1gxb5029p5l3wjhwaysja4zf6insdnx1fd0ybxd"; depends=[abind gplots]; };
+  r_proxy = derive2 { name="r.proxy"; version="0.1.0"; sha256="0k7bcgp1d53ps6aalqz764v33mkamz5czdp72fc69zwrfb9rz63w"; depends=[curl jsonlite]; };
   r02pro = derive2 { name="r02pro"; version="0.1"; sha256="1zciq86wpykvbd6zmh8b83dl4vpz53isi6hbbrz0h48sqb1g2006"; depends=[learnr]; };
   r2d2 = derive2 { name="r2d2"; version="1.0-0"; sha256="1zl0b36kx49ymfks8rm33hh0z460y3cz6189zqaf0kblg3a32nsi"; depends=[KernSmooth MASS sp]; };
   r2d3 = derive2 { name="r2d3"; version="0.2.5"; sha256="1wfr5qnywrvps25z9iwn04n6wwvam4340jwpszxbbawby48kjppn"; depends=[htmltools htmlwidgets jsonlite rstudioapi]; };
@@ -14527,12 +14628,13 @@ in with self; {
   r2dii_match = derive2 { name="r2dii.match"; version="0.0.11"; sha256="01iwb2jhbx8xllzplw0vvqhq7xp9xn560gdv1xbshmr6aklgsgzg"; depends=[data_table dplyr glue magrittr purrr r2dii_data rlang stringdist stringi tibble tidyr tidyselect]; };
   r2dii_plot = derive2 { name="r2dii.plot"; version="0.2.0"; sha256="0df2grafjwpy9cd2lfgiy20rlhsrmr87miw9vxw8k12722iq9jms"; depends=[dplyr forcats ggplot2 ggrepel glue magrittr r2dii_data rlang scales]; };
   r2glmm = derive2 { name="r2glmm"; version="0.1.2"; sha256="0iim92blpa59vgz97c2pi05yhbjjmaffdbkbmk5kplfb2vmazgiy"; depends=[afex data_table dplyr ggplot2 gridExtra lmerTest MASS Matrix mgcv pbkrtest]; };
-  r2mlm = derive2 { name="r2mlm"; version="0.3.0"; sha256="15pn0pyn18bw1k120n29wssbvynq3ay0cxhxhj3zfw5ps4879liq"; depends=[broomExtra dplyr lme4 magrittr nlme rlang rockchalk stringr tidyselect]; };
+  r2mlm = derive2 { name="r2mlm"; version="0.3.1"; sha256="0iiqn97mg4m3wrm7v1barbly2kr89ch8sg7lap26kwwir6f1jc1i"; depends=[broomExtra dplyr lme4 magrittr nlme rlang rockchalk stringr tidyselect]; };
   r2pmml = derive2 { name="r2pmml"; version="0.26.0"; sha256="15npzyjd5n1zysffhcfp4c0wykk2nhwgs8j2x8fqyn9cv2l8abjk"; depends=[]; };
   r2pptx = derive2 { name="r2pptx"; version="0.1.0"; sha256="12p3018b514kk1yxm1xyc0835j34zvpr1fz8k5rpiz30fbxjip58"; depends=[glue officer]; };
   r2r = derive2 { name="r2r"; version="0.1.1"; sha256="0vp0ak88m3ssca8b8kxf9w6qkxsdy0qs6cngrr9gqvbrnx0gh9j6"; depends=[digest rlang]; };
   r2rtf = derive2 { name="r2rtf"; version="0.3.1"; sha256="0icqk7awynasvwwkxf983c6jdgabm3mbw3kw7nqddavqmzcdl4cy"; depends=[]; };
   r2shortcode = derive2 { name="r2shortcode"; version="0.1"; sha256="03djy8m146k31xgvwcbrd1nzwj4wdlvvwzgviv80kskgr6ld9jrj"; depends=[magrittr stringr]; };
+  r2spss = derive2 { name="r2spss"; version="0.2.0"; sha256="1l3yy4fqnmdndm4mxcn5mnzwcdrsrfgq49z9liivjp587665n8jc"; depends=[car]; };
   r2sundials = derive2 { name="r2sundials"; version="5.0.0-10"; sha256="1hv5wq6lxrv57pszxky4xiwhjhjlzxa4fh0flrrmrrk89dygkx9v"; depends=[Rcpp RcppArmadillo rmumps]; };
   r2symbols = derive2 { name="r2symbols"; version="0.1"; sha256="1i4sd015dgkv5i89d0cphp3jmn4jn4wqfazklfglysf85b2cm4iw"; depends=[]; };
   r3PG = derive2 { name="r3PG"; version="0.1.3"; sha256="188vjzjya3qxi2xgzxxvf6ys97yxgdbjivwc54f4as37k2ad7l6p"; depends=[]; };
@@ -14545,7 +14647,7 @@ in with self; {
   r6methods = derive2 { name="r6methods"; version="0.1.0"; sha256="18q1qd7hkxbk0yilqdk17cp7qbl4c71jv10z732539wcmy8svb1v"; depends=[dplyr glue magrittr miniUI purrr rstudioapi shiny stringr]; };
   rADA = derive2 { name="rADA"; version="1.1.9"; sha256="0p47nqm8mki03pq5gzc2r5vx4vixs6hpf7am1fvadgi2bn2jrcl2"; depends=[car dplyr e1071 forestplot ggplot2 gridExtra Hmisc knitr lme4 lmerTest matrixStats openxlsx reshape2 stringr tidyr]; };
   rARPACK = derive2 { name="rARPACK"; version="0.11-0"; sha256="12h2y46xcfldhjdmm960swgn9b23zvkj5vg2bi42s9qxwgi02d63"; depends=[RSpectra]; };
-  rATTAINS = derive2 { name="rATTAINS"; version="0.1.2"; sha256="1v6zf6f6fxa4qj4n5jrc6xc8rvhs219x1rdxgqk016fyjdarqb2i"; depends=[checkmate crul dplyr fauxpas fs hoardr janitor magrittr purrr rlang rlist tibble tidyjson tidyr]; };
+  rATTAINS = derive2 { name="rATTAINS"; version="0.1.3"; sha256="0zc710ydpxda5vbyw1d29abrk94nj253qylxrirr89mhlv5fnac1"; depends=[checkmate crul curl dplyr fauxpas fs hoardr janitor magrittr purrr rlang rlist tibble tidyjson tidyr]; };
   rAltmetric = derive2 { name="rAltmetric"; version="0.7.0"; sha256="1vbvjv273vg3pi30vxxa2bivlajfsbqrzflk3payp6ym9myi27mg"; depends=[httr jsonlite rlist]; };
   rAmCharts = derive2 { name="rAmCharts"; version="2.1.13"; sha256="1c9gz7jmkh8gfaq8lmcb66kavdldnlc3x1mc1c72di8zxcpgzprc"; depends=[data_table htmltools htmlwidgets knitr pipeR yaml zoo]; };
   rAmCharts4 = derive2 { name="rAmCharts4"; version="1.5.0"; sha256="0z7dq8nhivrf3lhwv0zwyjnalnbl23qw02fg0ml883ns9rdi78rz"; depends=[base64enc htmltools htmlwidgets jsonlite lubridate minpack_lm reactR shiny stringr xml2]; };
@@ -14565,6 +14667,7 @@ in with self; {
   rD3plot = derive2 { name="rD3plot"; version="1.0.25"; sha256="1ilkd3ixkqpdi7hy6sdss53s40w640n7c7v7nb8khqlpfghkrpch"; depends=[igraph]; };
   rDEA = derive2 { name="rDEA"; version="1.2-6"; sha256="0045crn7azsy3ggzr28vw5jd4f5aw5nj16cjnjxy2md3skfbc3zw"; depends=[maxLik slam truncnorm truncreg]; };
   rDNAse = derive2 { name="rDNAse"; version="1.1-1"; sha256="0cl51q61kwvdsm5f49cjjbzggqam1fnr6gp15cmy6m2yahyxg1lk"; depends=[]; };
+  rDataPipeline = derive2 { name="rDataPipeline"; version="0.54.1"; sha256="0i0vb7gsjshh1wn0lksdma51xdyn6qw54j02cb0xmzcg896gl2p9"; depends=[assertthat cli configr dplyr git2r httr jsonlite openssl R6 rhdf5 semver usethis yaml]; };
   rDecode = derive2 { name="rDecode"; version="0.1.0"; sha256="1d0rrhycw9anhvx6czz7axkzhzqprdgi9sqfglmc962zf1x3hmn2"; depends=[]; };
   rDotNet = derive2 { name="rDotNet"; version="0.9.1"; sha256="18cd5373pdfi1x958llb4cgjqdi1fb7h7m5nkdwcd4xw9hxhinzd"; depends=[Rcpp testthat]; };
   rDppDiversity = derive2 { name="rDppDiversity"; version="0.0.2"; sha256="0833v5wkamqipfxpsdxz040q6vlgg9qqpwiaivvh8ar5sci10v88"; depends=[Rcpp]; };
@@ -14576,7 +14679,6 @@ in with self; {
   rFSA = derive2 { name="rFSA"; version="0.9.6"; sha256="1fxd194iq8jnlsnj76mjq2f6db7ln641qwfsf5v63kx3qqhn8x5s"; depends=[hash rPref tibble tidyr]; };
   rFerns = derive2 { name="rFerns"; version="5.0.0"; sha256="1yw3np5iamnr7f3nrd507dkyz76nxmzdpinwxncv87yw30g6gnkq"; depends=[]; };
   rForest = derive2 { name="rForest"; version="0.1.4"; sha256="0vk9sfnbzpjqh7mr3qwi5awlh8qc0h1i6qwbyv7qj72apy05s2d8"; depends=[alphashape3d geometry rgl sp]; };
-  rGEDI = derive2 { name="rGEDI"; version="0.1.11"; sha256="0fkvy4p82jyfbbfymkfbrdyh13hk6a6wghk2myb64p5nhz8kv7iz"; depends=[bit64 curl data_table fs getPass ggplot2 hdf5r jsonlite lazyeval raster RColorBrewer rgdal rgeos sp]; };
   rGammaGamma = derive2 { name="rGammaGamma"; version="1.0.12"; sha256="1051ah6q11qkxj1my4xybbzc8xcqkxfmps8mv2his5cyfllwidbs"; depends=[gsl]; };
   rGroovy = derive2 { name="rGroovy"; version="1.3"; sha256="172vm4diygzi4ipmw8bl03k0x3aps0h1vkvwvw539kamy7xb5w98"; depends=[rJava]; };
   rHealthDataGov = derive2 { name="rHealthDataGov"; version="1.0.1"; sha256="0lkjprss15yl6n9wgh79r4clip3jndly2ab1lv4iijzxnxay099d"; depends=[bit64 httr jsonlite]; };
@@ -14589,7 +14691,6 @@ in with self; {
   rJython = derive2 { name="rJython"; version="0.0-4"; sha256="13fpcw37cca738v9idqgi3gv9avfkfwfacxj54p2c4wyg46ghnah"; depends=[rJava rjson]; };
   rKIN = derive2 { name="rKIN"; version="0.1"; sha256="1j6fdi5h869q4d1hq6ha6qyhisa0zk2qmhjrc4ahl9991d680dyn"; depends=[ggplot2 maptools MASS rgeos sp]; };
   rKOMICS = derive2 { name="rKOMICS"; version="1.1"; sha256="0zs7a75hgrj4ajbbxn0kmc2871rakyizhwdn7ryha8bgig4ld3cs"; depends=[ape circlize ComplexHeatmap dplyr factoextra FactoMineR ggplot2 ggpubr magrittr reshape2 stringr]; };
-  rKolada = derive2 { name="rKolada"; version="0.2.0"; sha256="0ikyjzg8xbzyah37dpfwq2slssz956irm4dj8b7zv6x9qxi09gj9"; depends=[dplyr glue httr jsonlite magrittr purrr rlang stringr tibble tidyr urltools]; };
   rLDCP = derive2 { name="rLDCP"; version="1.0.2"; sha256="0k7zc1xyqmcl7070hhpqw1d2k1ij6bd4wjym8cw263pds2n7nx21"; depends=[XML]; };
   rLFT = derive2 { name="rLFT"; version="1.0.1"; sha256="0d86z5ckhkavgr2xi9pk7pw8ss3whrssa7na43kj0pirax9cys4z"; depends=[Rcpp sf]; };
   rLTP = derive2 { name="rLTP"; version="0.1.4"; sha256="04w432m03xwh0szshsrfw5h7wy43q4lj8z0y07k8w6gsf27cy5bx"; depends=[RCurl]; };
@@ -14605,7 +14706,7 @@ in with self; {
   rNeighborGWAS = derive2 { name="rNeighborGWAS"; version="1.2.4"; sha256="1j2rafli0ns34ms5s8zjxwyvlxhl88r5krw0qqzc3igd9sc0mjvn"; depends=[gaston Matrix RcppParallel]; };
   rNeighborQTL = derive2 { name="rNeighborQTL"; version="1.1.2"; sha256="1balbky8jyvyn2v56dvx7b80gpys40pfslqrsv25sywmp0cqy68p"; depends=[gaston Matrix qtl]; };
   rODE = derive2 { name="rODE"; version="0.99.6"; sha256="0l518ghfw6283kckqcbh45a35vd73njy05v3dwghhhjdj7v3km8b"; depends=[data_table]; };
-  rPACI = derive2 { name="rPACI"; version="0.2.1"; sha256="1kzn4yzhaikcm87rzfrimr6nl8v7amrrgxy7wrj3mqbbmklk8ag5"; depends=[bnlearn ggplot2 ggpubr rlang tidyr]; };
+  rPACI = derive2 { name="rPACI"; version="0.2.2"; sha256="10i9lx8h67x3ldysjqgfi6dqbclj7pwfg15wxzr2vw3qzsjyb9cz"; depends=[bnlearn ggplot2 ggpubr rlang tidyr]; };
   rPAex = derive2 { name="rPAex"; version="1.0.1"; sha256="1v85qy8fg6vf1fqqqawzw4i9sfaihdqzbs0h91hpqbzkc4v7n2bb"; depends=[agricolae raster]; };
   rPackedBar = derive2 { name="rPackedBar"; version="0.2.2"; sha256="1nh0kvj4bqkinczj8llcgy63ibsnk9vgsvm0vqg8g526x0vffdma"; depends=[data_table plotly scales shiny]; };
   rPanglaoDB = derive2 { name="rPanglaoDB"; version="0.2.1"; sha256="1ykzih3idgp2yhbw4039hhhzv0nmrmn3wx2c4dxmgp5qzhrg42nf"; depends=[Matrix pbapply Seurat XML xml2]; };
@@ -14625,30 +14726,32 @@ in with self; {
   rSQM = derive2 { name="rSQM"; version="1.3.14"; sha256="0m69n2pnfv2085dln6p149a5gw0gif9xk00xmad5s9j68hwjdmym"; depends=[dplyr EcoHydRology ggplot2 gsubfn mise ncdf4 qmap reshape2 stringr yaml zoo]; };
   rStrava = derive2 { name="rStrava"; version="1.1.4"; sha256="00y400znkwyr6y33wiz0jikpa31a60hdcmsi9x3724zwjh28vynj"; depends=[bitops dplyr geosphere ggplot2 ggrepel googleway httpuv httr magrittr plyr purrr RCurl rvest tibble tidyr V8 XML xml2]; };
   rTG = derive2 { name="rTG"; version="0.2.2"; sha256="0f1syh2v8a0klcz7rvi8nrn1qv8rjl69ssrliqnh2zpy7c6ck9xs"; depends=[brnn dplyr ggplot2 knitr magrittr mgcv]; };
+  rTLS = derive2 { name="rTLS"; version="0.2.5.1"; sha256="1j7pp8x7w87sj9z85jz3mi5x65irp2r82025qclna84yjcdd6p70"; depends=[alphashape3d boot data_table doSNOW foreach Rcpp RcppArmadillo RcppHNSW RcppProgress rgeos rgl sp]; };
   rTRNG = derive2 { name="rTRNG"; version="4.23.1-1"; sha256="0jlkr57afkg6axkdk020rd3nybx1qzwvy1hjgfw8fwvm79x0kpr7"; depends=[Rcpp RcppParallel]; };
   rTableICC = derive2 { name="rTableICC"; version="1.0.7"; sha256="1z896675kmm9p5dnmcnsz2205ynf05laqcxvlc9y0g5i0x8rf8v6"; depends=[aster partitions]; };
   rTensor = derive2 { name="rTensor"; version="1.4.8"; sha256="1ks4rwaish24sg5gc2jkfdqfq6h8gh9f3wdxk3dxjgpwjqwijz8f"; depends=[]; };
   rTephra = derive2 { name="rTephra"; version="0.1"; sha256="045f2sp2j4hiwa9k1vs6cxr59x1yr34jq1z2crasxflsxbwa3xz8"; depends=[]; };
   rTorch = derive2 { name="rTorch"; version="0.4.2"; sha256="03a9vls09mgd77xm1q1h1pqw4q026rdibbjr218706h4iqphrqm7"; depends=[jsonlite reticulate rstudioapi]; };
-  rUM = derive2 { name="rUM"; version="0.3.0"; sha256="0b9p55mikgjxyv5qivng26m0kijpnl92qmzkgfj1n33m9ngcxk13"; depends=[bookdown conflicted rmarkdown table1 tidyverse]; };
+  rUM = derive2 { name="rUM"; version="0.3.1"; sha256="092si35ii0gyphnk3k02zaw9bykf8sw0mbzvgrkafhqrqsscmdp6"; depends=[bookdown conflicted rmarkdown table1 tidyverse]; };
   rWBclimate = derive2 { name="rWBclimate"; version="0.1.3"; sha256="0vs56hx7a85pw4jx8nb8bdlr9dbkl4zdhzhqsm0505xc3qz18vxh"; depends=[ggplot2 httr jsonlite plyr reshape2 rgdal sp]; };
   rWind = derive2 { name="rWind"; version="1.1.7"; sha256="1dvzkhi9hbxd9wvggcbkfx7hxaxjssbmfnqsc7qakj8pkbvr7nax"; depends=[gdistance lubridate Matrix raster]; };
   rWishart = derive2 { name="rWishart"; version="0.1.2"; sha256="0wzijc454mrvmggb7a5jqwjbmk0kzr4bmy0iwniz5cn343pr1rri"; depends=[lazyeval MASS Matrix]; };
   rYoutheria = derive2 { name="rYoutheria"; version="1.0.3"; sha256="1r63ggy4knwzxnpjkmsn7zwmwfaznm8mmxl7r9ph10wz4sblgygl"; depends=[plyr RCurl reshape2 RJSONIO]; };
   ra4bayesmeta = derive2 { name="ra4bayesmeta"; version="1.0-7"; sha256="07fcjqw8w787pcfzjxxwq6160433ms6xk9qrvvm8ybxd7n0f5i44"; depends=[bayesmeta]; };
   rabi = derive2 { name="rabi"; version="1.0.2"; sha256="0jndx1gvsnsv1xrx3ismgvjp7d4kj3436zcawvw32c5klvxx0y4j"; depends=[numbers polynom shiny stringdist]; };
+  racademyocean = derive2 { name="racademyocean"; version="0.1.0"; sha256="0xgsjg7ck532fzwyn62pn1hq9khkw0i1pdcam09j5l24ny1akajw"; depends=[cli dplyr httr2 pbapply purrr rappdirs retry rlang stringr tidyr withr]; };
   raceland = derive2 { name="raceland"; version="1.1.1"; sha256="1sb56id7h1nm34a7kf6abfxwh4kmnnzc51x23cijq6fd3jm4ggnr"; depends=[comat fasterize plotwidgets raster Rcpp RcppArmadillo rgdal sf]; };
   racir = derive2 { name="racir"; version="2.0.0"; sha256="0qpjnaifx4z1jvyrc8p5jny0ci20w2ri1rs68sv9b93nkaiixnps"; depends=[]; };
-  ractivecampaign = derive2 { name="ractivecampaign"; version="0.1.1"; sha256="1lnjz7fkvp119ka5mry2k0pj8bs8g35mpp298wcr2p87l6r2imm1"; depends=[cli dplyr httr pbapply stringr tidyr]; };
+  ractivecampaign = derive2 { name="ractivecampaign"; version="0.2.0"; sha256="1l7266qryba2zijgs7xj4p073l69q0iin6qgsbnn7dafmggv5mlr"; depends=[cli dplyr httr pbapply retry stringr tidyr]; };
   radar = derive2 { name="radar"; version="1.0.0"; sha256="1wh5j3cfbj01jx2kbm9ca5cqhbb0vw7ifjn426bllm4lbbd8l273"; depends=[]; };
   radarBoxplot = derive2 { name="radarBoxplot"; version="1.0.5"; sha256="1lmgh8j3c6jiiwpdz9l5zd07xcv87laxnj789bpqnmxa0szsfngl"; depends=[]; };
   radarchart = derive2 { name="radarchart"; version="0.3.1"; sha256="0gcxnbgj8ja1m4wzhbjy67m6zphf0c5ni9yx7sr7f0abm03ry753"; depends=[htmltools htmlwidgets]; };
-  radiant = derive2 { name="radiant"; version="1.4.0"; sha256="1ippx0gzizrb00m8apmzfw5ahgnfsrja94dxd3gylai7c969f1d5"; depends=[r_import radiant_basics radiant_data radiant_design radiant_model radiant_multivariate shiny]; };
-  radiant_basics = derive2 { name="radiant.basics"; version="1.4.0"; sha256="0ah3spq56w42lla38d9p0d3lkgvbvlvbpj6g9l3vjqafzp30sqzp"; depends=[dplyr ggplot2 lubridate magrittr patchwork polycor psych r_import radiant_data scales shiny tidyr]; };
-  radiant_data = derive2 { name="radiant.data"; version="1.3.12"; sha256="08bqqrfvpgyf613ikihwfnzb23l23f5nfs7zynnxbjxc1zfhbpny"; depends=[base64enc broom car curl dplyr DT ggplot2 glue jsonlite knitr lubridate magrittr markdown MASS patchwork plotly psych r_import randomizr readr readxl rlang rmarkdown rstudioapi scales shiny shinyAce shinyFiles stringi tibble tidyr writexl]; };
-  radiant_design = derive2 { name="radiant.design"; version="1.3.5"; sha256="1514s21jybyvpi2sx06xsxfrzgg07x7xxhwsazc61v3w1mllj2xw"; depends=[AlgDesign dplyr magrittr mvtnorm polycor pwr r_import radiant_data randomizr shiny]; };
-  radiant_model = derive2 { name="radiant.model"; version="1.4.1"; sha256="0slll2lc24sy8ga69h8mhffp1idp36jclf8v83y58q9fz7ps1y8k"; depends=[broom car data_tree DiagrammeR dplyr e1071 ggplot2 ggrepel lubridate magrittr NeuralNetTools nnet patchwork pdp psych r_import radiant_basics radiant_data ranger rlang rpart sandwich shiny stringr tidyr xgboost yaml]; };
-  radiant_multivariate = derive2 { name="radiant.multivariate"; version="1.3.5"; sha256="1khgy3zj0q155dyky1bd2wfdj6r8jgw8aa6a2nj0rbnwa5zam913"; depends=[car clustMixType dplyr ggplot2 ggrepel gower GPArotation lubridate magrittr MASS patchwork polycor psych r_import radiant_data radiant_model rlang scales shiny]; };
+  radiant = derive2 { name="radiant"; version="1.4.1"; sha256="1srvblfpfzaf5bspskkgvp4jm9y9d8n9gvvpgyjxmp5zm01s9bgv"; depends=[r_import radiant_basics radiant_data radiant_design radiant_model radiant_multivariate shiny]; };
+  radiant_basics = derive2 { name="radiant.basics"; version="1.4.1"; sha256="1gjl5nn7xra94n2if0idq43a1qv4x3v7rf2qsx8aqvl9zy9z7i7s"; depends=[dplyr ggplot2 lubridate magrittr patchwork polycor psych r_import radiant_data scales shiny tidyr]; };
+  radiant_data = derive2 { name="radiant.data"; version="1.4.1"; sha256="12x4nz5n6yz1a67ji79pwvznp9flmn50hpp9y9sfhixir7dvwy27"; depends=[base64enc broom car curl dplyr DT ggplot2 glue jsonlite knitr lubridate magrittr markdown MASS patchwork plotly psych r_import randomizr readr readxl rlang rmarkdown rstudioapi scales shiny shinyAce shinyFiles stringi tibble tidyr writexl]; };
+  radiant_design = derive2 { name="radiant.design"; version="1.4.1"; sha256="062psfkadr3i23j4w7i4fl1qfgzbjpcac7fyxqgfh5fkc7d393r4"; depends=[AlgDesign dplyr magrittr mvtnorm polycor pwr r_import radiant_data randomizr shiny]; };
+  radiant_model = derive2 { name="radiant.model"; version="1.4.2"; sha256="1syfj78lhxz9fg7g9ljansd63bglvh7s6v83939l3l1s3xwmbjla"; depends=[broom car data_tree DiagrammeR dplyr e1071 ggplot2 ggrepel lubridate magrittr NeuralNetTools nnet patchwork pdp psych r_import radiant_basics radiant_data ranger rlang rpart sandwich shiny stringr tidyr xgboost yaml]; };
+  radiant_multivariate = derive2 { name="radiant.multivariate"; version="1.4.1"; sha256="0k48g3m98ziwpdcdfz76j789slh81siq07cmfb6hxaw1j8dzv4x8"; depends=[car clustMixType dplyr ggplot2 ggrepel gower GPArotation lubridate magrittr MASS patchwork polycor psych r_import radiant_data radiant_model rlang scales shiny]; };
   radir = derive2 { name="radir"; version="1.0.4"; sha256="12a99ig3n6kp5wa5rjp2w1nal4qqjs6vq05d3lrqcyl3bind6lqb"; depends=[hermite]; };
   radix = derive2 { name="radix"; version="0.6"; sha256="0290n0yax8649srdjbq4439h0d9f6jsmxayyhp86igcnszcxilnb"; depends=[base64enc bookdown digest downloader htmltools jsonlite knitr lubridate mime png progress rmarkdown rprojroot rstudioapi stringr whisker xfun xml2 yaml]; };
   radlibs = derive2 { name="radlibs"; version="0.2.0"; sha256="1xl7pacqgiv68ay7mkr6bkx3rqqr7z8b9yh42n4zm7ybqfxbx6dr"; depends=[data_table lexicon stringr]; };
@@ -14685,7 +14788,7 @@ in with self; {
   random_polychor_pa = derive2 { name="random.polychor.pa"; version="1.1.4-4"; sha256="19yzpjidw5pbrqfa5ln5hgghv0mq3cwl92z2isq25yydfl6qsl6h"; depends=[boot MASS mvtnorm nFactors psych sfsmisc]; };
   randomForest = derive2 { name="randomForest"; version="4.6-14"; sha256="0kbmm0l42fc2d1rdq0l7k09d34kd87q4lx651ffsic4y84h8kf7l"; depends=[]; };
   randomForestExplainer = derive2 { name="randomForestExplainer"; version="0.10.1"; sha256="1ny8c3vn2zvdx12avwvlm4lp648jigkrkcvnhf5qmj8rh0w069v0"; depends=[data_table dplyr DT GGally ggplot2 ggrepel randomForest ranger reshape2 rmarkdown]; };
-  randomForestSRC = derive2 { name="randomForestSRC"; version="2.13.0"; sha256="1gcafbagia1ccc9lkh8sbx6v8gi9ydxhlzx65hm27ix8wg583fdy"; depends=[data_tree DiagrammeR]; };
+  randomForestSRC = derive2 { name="randomForestSRC"; version="2.14.0"; sha256="0fvfv1ah9n6hzdfr2xxpyhswp7js4m941858glrn1ap2zp71va8k"; depends=[data_tree DiagrammeR]; };
   randomLCA = derive2 { name="randomLCA"; version="1.1-1"; sha256="08flank5pmyh5ih63bfw5qaby3g8vfh8p36sjbmxfylicdydfjl7"; depends=[boot doParallel doRNG fastGHQuad foreach lattice Matrix Rfast]; };
   randomNames = derive2 { name="randomNames"; version="1.5-0.0"; sha256="1lv1vqb4wgs0j1gqy84dpa30qsvbp6928zpshczpw87yf32k71vh"; depends=[crayon data_table toOrdinal]; };
   randomUniformForest = derive2 { name="randomUniformForest"; version="1.1.5"; sha256="1amr3m7h5xcb8gahrr58233chsnx1naf9x5vpjy9p5ivh71xcxf7"; depends=[cluster doParallel foreach ggplot2 gtools iterators MASS pROC Rcpp]; };
@@ -14694,7 +14797,6 @@ in with self; {
   randomizeBE = derive2 { name="randomizeBE"; version="0.3-5"; sha256="08yfdrf56i8php48ycilc79jk7ms0f6k40swg56mccnqm2yb3b12"; depends=[]; };
   randomizeR = derive2 { name="randomizeR"; version="2.0.0"; sha256="1bcdh245lh5a2yim00m2cgcmlcjm2vyba813026v0a4c42gr3b8x"; depends=[ggplot2 plotrix survival]; };
   randomizr = derive2 { name="randomizr"; version="0.20.0"; sha256="0dljyfldnardaps3fq6vi5wcs9x6qfaq5apapa78c51lnaa6fn9h"; depends=[]; };
-  randomsearch = derive2 { name="randomsearch"; version="0.2.0"; sha256="0ywr4ms66p5nmq8bzy04gbvmpp0nhfyf8rvynhr2c4alqva9x3yi"; depends=[checkmate fs parallelMap ParamHelpers smoof]; };
   randquotes = derive2 { name="randquotes"; version="0.1.1"; sha256="0fj9vx0c4059511wka7ip30yz87y144pz7ny840gp72qm73pp8li"; depends=[curl httr jsonlite xml2]; };
   randtests = derive2 { name="randtests"; version="1.0"; sha256="03z3kxl4x0l91dsv65ld9kgc58z82ld1f4lk18i18dpvwcgkqk82"; depends=[]; };
   randtoolbox = derive2 { name="randtoolbox"; version="1.31.1"; sha256="1b9vjzqg014hxp1vfb62m01d7xim5vmpbyxzlbll49bqas0jx69h"; depends=[rngWELL]; };
@@ -14704,7 +14806,8 @@ in with self; {
   rangemap = derive2 { name="rangemap"; version="0.1.18"; sha256="17ycliswmsrc1rvyxj2ik2rs7f061dvam6ck0pm6myj52m2xg781"; depends=[concaveman dplyr maps maptools raster rgdal rgeos rgl rnaturalearthdata scales sf sp spatial]; };
   ranger = derive2 { name="ranger"; version="0.13.1"; sha256="02idcc6zbdz4wsi1mcwh7qyhmlbwvnzxwkdvvppxw7n2rh54z4v0"; depends=[Matrix Rcpp RcppEigen]; };
   rankFD = derive2 { name="rankFD"; version="0.1.0"; sha256="1qqdqbyr0kgjn83prfg5b5f5qsfs0gxxadzkxzd76s0yhryps6mm"; depends=[coin lattice MASS multcomp mvtnorm]; };
-  rankUncertainty = derive2 { name="rankUncertainty"; version="1.0.1.0"; sha256="13xmc37v9w15jlcpbn96axpwqjwh8w3k1dgiwipzgwvd065qvj3f"; depends=[cpp11 magrittr Rcpp]; };
+  rankUncertainty = derive2 { name="rankUncertainty"; version="1.0.2.0"; sha256="0w9b3vdlx2kjviz4790lrmbzb8i1lrckiy1jxzl9kxycp1kjqkwa"; depends=[cpp11 magrittr Rcpp]; };
+  rankdifferencetest = derive2 { name="rankdifferencetest"; version="2021-11-25"; sha256="11isc6fjaicyibnbc315036wp7m670ja6kg4xq5s2x72k076v55f"; depends=[coin modeltools Rdpack]; };
   rankdist = derive2 { name="rankdist"; version="1.1.4"; sha256="1xqrkss8d5vv3blqpvrvdczsygphbx259hy9j7w9b2ahssw8cjr5"; depends=[hash optimx permute Rcpp]; };
   rankhazard = derive2 { name="rankhazard"; version="1.1.0"; sha256="0kljn9b74alrd22b5pwfnamdbaqi2wa2z6yzpmgpfs3x0hv72fw7"; depends=[survival]; };
   ranlip = derive2 { name="ranlip"; version="1.0.1"; sha256="04jh7m8gmz0b4h507amnj708sg5qf4fzawybss01681hsnb3swnz"; depends=[Rcpp]; };
@@ -14724,7 +14827,7 @@ in with self; {
   rareGE = derive2 { name="rareGE"; version="0.1"; sha256="0v3a2wns77q923ilddicqzg0108f8kmfdnsff1n65icin7cfzsny"; depends=[MASS nlme survey]; };
   rareNMtests = derive2 { name="rareNMtests"; version="1.1"; sha256="13r2hipqsf8z9k48ha5bh53n3plw1whb7crpy8zqqkcac8444b2z"; depends=[vegan]; };
   rarms = derive2 { name="rarms"; version="1.0.0"; sha256="11wjxd3pxvjv1j2nz26l8f0kykk9w6lf08izhivfngp63dk2akns"; depends=[jsonlite]; };
-  rasciidoc = derive2 { name="rasciidoc"; version="3.1.4"; sha256="0wy16zaz4b8yjjb9vwxwz327z3r56nmsxr63rfcammfflz0hv3d9"; depends=[checkmate document fritools gert highr knitr reticulate]; };
+  rasciidoc = derive2 { name="rasciidoc"; version="4.0.2"; sha256="1k3bh1bbjrzhmz2dz98qw8ad46jk7dx7srigp22valk5jz4ni7s5"; depends=[checkmate document fritools gert highr knitr reticulate]; };
   rasclass = derive2 { name="rasclass"; version="0.2.2"; sha256="1lsmv8kh519mz3szb4k9s17fz1480cw0i4qk12givhhm2rpzjy50"; depends=[car e1071 nnet randomForest RSNNS]; };
   rassta = derive2 { name="rassta"; version="1.0.1"; sha256="03abcgg5310avlwmphr6inw1dnyj2g9rp1jzry9wfi3yshpf15b4"; depends=[cluster data_table dplyr DT foreach GGally ggplot2 histogram KernSmooth kohonen plotly raster rlang scales shiny stringdist stringi terra]; };
   raster = derive2 { name="raster"; version="3.5-2"; sha256="0wixw1ixnmcmkwczpj8m90c76727zira2rl4ighashggydkm2mlr"; depends=[Rcpp sp terra]; };
@@ -14732,7 +14835,7 @@ in with self; {
   rasterImage = derive2 { name="rasterImage"; version="0.4.0"; sha256="191m5k1rbbwziznmxbsq4g55afkw8gb5011i70f3wx3dscr3phxz"; depends=[plotrix]; };
   rasterKernelEstimates = derive2 { name="rasterKernelEstimates"; version="1.0.2"; sha256="0az96k8l7yjya5mg5ckda43qy9h8iad5gyyxi1ycld3kzcwiinhj"; depends=[raster]; };
   rasterList = derive2 { name="rasterList"; version="0.5.8"; sha256="0q7apglxzpah04463z07cpkzyd6l6dbbdhm601brzh6yk75z20vh"; depends=[raster]; };
-  rasterVis = derive2 { name="rasterVis"; version="0.51.0"; sha256="1gkn5na7cspnh3qpmi4k5n65crmp8c2s106g8hh51lsdvm5369aj"; depends=[hexbin lattice latticeExtra raster RColorBrewer sp terra viridisLite zoo]; };
+  rasterVis = derive2 { name="rasterVis"; version="0.51.1"; sha256="1mg11njzajx9az6xjghjl2sna6wzs85ga8fhy9w43l2n8icsfbr2"; depends=[hexbin lattice latticeExtra raster RColorBrewer sp terra viridisLite zoo]; };
   rasterdiv = derive2 { name="rasterdiv"; version="0.2-3"; sha256="1n0zrncda3nk4x8l9wb0acdx25dlki9wwrg874qwhd73cx0iy0rp"; depends=[foreach progress proxy raster svMisc]; };
   rasterize = derive2 { name="rasterize"; version="0.1"; sha256="18nrhmq1qmi05rkyr86xsyc8nz0fbdpf2d45h62bbfzbfynqd4qy"; depends=[png]; };
   rasterly = derive2 { name="rasterly"; version="0.2.0"; sha256="1fv0ayh8r78qss7ikcwnj0i5x8iyz4c3icsfb554zji9bw30x7qr"; depends=[data_table ggplot2 magrittr plotly Rcpp rlang]; };
@@ -14752,10 +14855,9 @@ in with self; {
   raven_rdf = derive2 { name="raven.rdf"; version="0.2.0"; sha256="12jy3md6d1qwzkks5iljn4h0iv5lj3n39ll7r3fvrxjwh7afvw7r"; depends=[]; };
   raw = derive2 { name="raw"; version="0.1.8"; sha256="1y2vhpgigzkd2xyj3986wlzm1g3pp99w6fspmhlff5czd73g16is"; depends=[]; };
   rawKS = derive2 { name="rawKS"; version="0.1.0"; sha256="1yiw9imhgij49qbm9hk6psb73zngqmxxwnaxq144ydwb7fbk6j0z"; depends=[dplyr ggplot2 magrittr ROCR tidyr]; };
-  rawr = derive2 { name="rawr"; version="0.1.3"; sha256="0k0x1pmxs73j6dmjg33n4hhwjwzpnhzbmmmjza6kw7hj6lfmipx4"; depends=[clipr dplyr jsonlite rvest stringr xml2]; };
   raws_profile = derive2 { name="raws.profile"; version="0.1.0"; sha256="04f7wk7x9j3rb6nn3zqss9vw0h9a4vpcjyilc2vqy0fm2by41xkg"; depends=[stringr tibble withr]; };
   rayimage = derive2 { name="rayimage"; version="0.6.2"; sha256="1zhs4whbxvn8gn0ddxpd8qgnv2f75nlvrz6x5y0ac516bgrapz5z"; depends=[jpeg magrittr png progress Rcpp RcppArmadillo]; };
-  rayrender = derive2 { name="rayrender"; version="0.21.2"; sha256="0s88p9yqm2xxvwpxbnmhs3yay1gd904dgsik9fy6551cym1asl1n"; depends=[assertthat decido magrittr png progress purrr raster rayimage Rcpp RcppThread spacefillr tibble]; };
+  rayrender = derive2 { name="rayrender"; version="0.23.6"; sha256="05pnj42mqrpkxr59fmap0j9s66aaf6hjsbgmnw4gnaal6x9xxijm"; depends=[decido magrittr png progress purrr raster rayimage Rcpp RcppThread spacefillr tibble]; };
   rayshader = derive2 { name="rayshader"; version="0.24.10"; sha256="1wdqbbk8f0vxha0awgfv4c8n7yndy2k1q6f3rkr3f5j84wwqfjbx"; depends=[doParallel foreach magrittr png progress raster rayimage Rcpp RcppArmadillo rgl scales terrainmeshr]; };
   raytracing = derive2 { name="raytracing"; version="0.1.0"; sha256="052j053l4104pk7cbkkqrj3kkiip9lv2lf0xl2xsray62n6p07m4"; depends=[ncdf4 sf units]; };
   rayvertex = derive2 { name="rayvertex"; version="0.3.3"; sha256="1xigdspf3jybk48i60141kjk34vig9drl7sdn1pi5zsh3pi4w5rx"; depends=[digest magrittr png rayimage Rcpp RcppThread spacefillr]; };
@@ -14768,13 +14870,13 @@ in with self; {
   rbenvo = derive2 { name="rbenvo"; version="1.0.5"; sha256="0clg2cxyi60yz2mdp95v0hd5gqhk8h2xgmx68852jcpbjf76xasa"; depends=[dplyr forcats ggplot2 lme4 lubridate magrittr Matrix purrr rlang sf stringr tidyr]; };
   rbgm = derive2 { name="rbgm"; version="0.1.0"; sha256="0jw7p6l0il0fz5rq7ra731xzj06aqqvm9s1r0hwa4rd74lkg198n"; depends=[dplyr geosphere raster reproj rlang sfheaders sp]; };
   rbhl = derive2 { name="rbhl"; version="0.9.2"; sha256="0rs1mmah4yyy5dgz1lvzslm4dk53x0wpiy3742z3hwr8p4agnkqi"; depends=[crul jsonlite plyr tibble xml2]; };
-  rbi = derive2 { name="rbi"; version="0.10.3"; sha256="09hqv235fry60nqvd1is8n7szkq96w160xpw2pdxqdxvlh52cf2r"; depends=[data_table ncdf4 processx reshape2]; };
+  rbi = derive2 { name="rbi"; version="0.10.4"; sha256="0p0cvdzhb81drk5b9fb9jcnw5c02i7qfy7vwyyhk2b1vm9rkw681"; depends=[data_table ncdf4 processx reshape2]; };
   rbi_helpers = derive2 { name="rbi.helpers"; version="0.3.2"; sha256="1inbf3kpl4y46m7v36akrr24112y4sd3d8yqia16i32wxf53wql5"; depends=[data_table lubridate Matrix rbi reshape2]; };
   rbibutils = derive2 { name="rbibutils"; version="2.2.4"; sha256="15yyihk0dgz3yyqz28r5nc6m99zcywpabnabf18phbs7rb87p7mv"; depends=[]; };
   rbin = derive2 { name="rbin"; version="0.2.0"; sha256="18g6s4m0yc1bzrymk8km553kcwi4vj16b6mxw2lmv48z7243iq87"; depends=[data_table ggplot2]; };
   rbioacc = derive2 { name="rbioacc"; version="1.0.2"; sha256="15244p3k0cmv9fwcffnwzl130wn14l4axkzr29lvic9v4zx28f1q"; depends=[BH GGally ggmcmc ggplot2 loo Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders stringr testthat zoo]; };
   rbioapi = derive2 { name="rbioapi"; version="0.7.4"; sha256="1w3mahdrqk76g5ygyabvb8kypycwp91k5njwsqhzyfgj2yr67qkn"; depends=[httr jsonlite]; };
-  rbiom = derive2 { name="rbiom"; version="1.0.2"; sha256="0zg1ibxz3h9mmb4s2gwlliahni6dgqqn849pcxcyhpzyc81av85y"; depends=[magrittr openxlsx plyr R_utils Rcpp RcppParallel rjson slam]; };
+  rbiom = derive2 { name="rbiom"; version="1.0.3"; sha256="13nma1s3p4bzh8mvikrnmkqyyrx9axvxavq6fyk2w0j804w1qzcg"; depends=[magrittr openxlsx plyr R_utils Rcpp RcppParallel rjson rlang slam]; };
   rbiouml = derive2 { name="rbiouml"; version="1.11"; sha256="1g1q6xc8x8y71ji75c5fl35sxxss964xmhcqlriybb5zc38m1dh0"; depends=[RCurl RJSONIO]; };
   rbison = derive2 { name="rbison"; version="1.0.0"; sha256="0g586hsqci4amci10zjq6xpjvxfjr6rv5i63vp85v3z6bkwfamwr"; depends=[crul data_table dplyr ggplot2 jsonlite mapproj plyr sp tibble]; };
   rbit = derive2 { name="rbit"; version="1.0.0"; sha256="09ywr711gv0vgfims2vfcxk3rnd0iadzlksil0q9159yarapfc59"; depends=[R6]; };
@@ -14797,25 +14899,25 @@ in with self; {
   rcartocolor = derive2 { name="rcartocolor"; version="2.0.0"; sha256="08ljaag2mnhz2671zvwji1sp003z94lz30vjidmybm9fp8piqw5g"; depends=[ggplot2 scales]; };
   rcbalance = derive2 { name="rcbalance"; version="1.8.5"; sha256="15qlk3cqwsvixl17l1fxcajrabmz4y7q5gz0a1pd66f6i1xskcqq"; depends=[MASS plyr]; };
   rcbayes = derive2 { name="rcbayes"; version="0.1.0"; sha256="00pr7fh33nsl84m5p32a010pyw2cgyjlqsjrlz3hlwwggwlfw1rw"; depends=[BH dplyr magrittr Rcpp RcppEigen RcppParallel Rdpack rlang rstan rstantools shiny shinythemes StanHeaders tibble tidybayes]; };
-  rcbsubset = derive2 { name="rcbsubset"; version="1.1.4"; sha256="0sfsmnxs4c8blzg0bb2ffb2xcsjv7pp39arnda988f7b2aas59wj"; depends=[MASS plyr]; };
+  rcbsubset = derive2 { name="rcbsubset"; version="1.1.5"; sha256="0qfx8qzsrlgbgpymc67ywy9k8dgfjz5x54xwabf2bjjwrzv2mcl5"; depends=[MASS plyr rcbalance]; };
   rcc = derive2 { name="rcc"; version="1.0.0"; sha256="0a77d54c9qahhsjzpa0436ddsj4j44013r7rbxm0fjz04c0d2921"; depends=[]; };
   rccdates = derive2 { name="rccdates"; version="1.0.0"; sha256="1f87qlw62am2qy1zzrz91vmsn8axhld44gak61xa7046675hm98s"; depends=[rccmisc]; };
   rccmisc = derive2 { name="rccmisc"; version="0.3.7"; sha256="171s2ll759xjdnx0z24ih5ix2vcp4qnmf1nf107gij6wv8k450ab"; depends=[dplyr]; };
-  rcdd = derive2 { name="rcdd"; version="1.4"; sha256="02jj1lpk4kvjh5484lbdrdlx2ffk9qdxys7afyakd5kl6swqalz2"; depends=[]; };
+  rcdd = derive2 { name="rcdd"; version="1.5"; sha256="0zxx0qvv26ba30jkm8mvca4h59rqklay4jwazpcw7h9dzp4189jr"; depends=[]; };
   rcdk = derive2 { name="rcdk"; version="3.6.0"; sha256="0v3i1402hrlp3sap3ryjd63gac8wbcwj7lfa3smk1agqy659glcx"; depends=[fingerprint iterators itertools png rcdklibs rJava]; };
   rcdklibs = derive2 { name="rcdklibs"; version="2.3"; sha256="16ijvzsc1irpz1z2xd82i2saafsvpn0x5lr54c5gx9bfb35gacyp"; depends=[rJava]; };
   rchallenge = derive2 { name="rchallenge"; version="1.3.4"; sha256="0i402p6ccjn10ix5nln30pab5nd78hg5q4ivvgc4i99nx7aq0xpx"; depends=[knitr rmarkdown]; };
-  rcheology = derive2 { name="rcheology"; version="4.1.1.0"; sha256="1rrnzyxy8x8xy63rrpi6jpmfwww131q4naaslyi5kgj7fys5irzz"; depends=[]; };
+  rcheology = derive2 { name="rcheology"; version="4.1.2.0"; sha256="0vsjcg83jvvmwggqh073325wsar6dfa7diikkvq3k0jlfwkcrs4n"; depends=[]; };
   rchess = derive2 { name="rchess"; version="0.1"; sha256="0qnvvvwcl02rmqra9m7qnhy40cbavswbq6i0jm47x6njmr1gpfhy"; depends=[assertthat dplyr ggplot2 htmlwidgets plyr R6 V8]; };
   rchie = derive2 { name="rchie"; version="1.0.2"; sha256="1m89mwq5f81yr2vc3wvnxkpm04bad11sx5fllcd3yy8ilghmbfp6"; depends=[jsonlite V8]; };
-  rcites = derive2 { name="rcites"; version="1.1.0"; sha256="185s26pzgg3y3d890q5mk1rn75yipd6kfgnhbafnqgk7qy09v8lx"; depends=[cli httr jsonlite]; };
+  rcites = derive2 { name="rcites"; version="1.2.0"; sha256="1lyahgpjskzqlmjnz14kkkrl30by1nzzi02wsf0rfskbdhmwc5in"; depends=[cli curl httr jsonlite]; };
   rcitoid = derive2 { name="rcitoid"; version="0.1.0"; sha256="11iqdj1q983w28fh17rqvmhs41ks09b24p408nl7hz4iqg9c7lpi"; depends=[crul curl fauxpas jsonlite]; };
   rclipboard = derive2 { name="rclipboard"; version="0.1.3"; sha256="087ih0b3bizgknccy7gm47r1v9wjmj2fb8i4bp4rszd2kdcbwh29"; depends=[shiny]; };
   rcmdcheck = derive2 { name="rcmdcheck"; version="1.4.0"; sha256="1l696byn3kjq2xvz4wxybzaj6ink85h4lz3a35v2132ba5yyzm5v"; depends=[callr cli curl desc digest pkgbuild prettyunits R6 rprojroot sessioninfo withr xopen]; };
   rco = derive2 { name="rco"; version="1.0.2"; sha256="1ch7ak802ri4jr10jqvhvdi6q9fhyhql15ja395xfv6j81d5cmia"; depends=[]; };
   rcol = derive2 { name="rcol"; version="0.2.0"; sha256="1ypn5fiwhyvfnmjs2davqqhxf5pjg7f0101v40bqrv4jz563h5n1"; depends=[crul data_table glue jsonlite tibble]; };
   rcolors = derive2 { name="rcolors"; version="0.1.0"; sha256="19lkwd1wdwq9if957qjgrz9mq6s8x49dig8snivhw9ksffcfy4xp"; depends=[magrittr]; };
-  rcompanion = derive2 { name="rcompanion"; version="2.4.1"; sha256="047w6m2llw0iybrc4g06mfcryjgg18kf3la4n8sa0014ygbmw3r3"; depends=[boot coin DescTools lmtest multcompView nortest plyr]; };
+  rcompanion = derive2 { name="rcompanion"; version="2.4.6"; sha256="158jlwmnyldf77r6hrmjx502fzd86ibpmp54zvk6hn1z45svyq77"; depends=[boot coin DescTools lmtest multcompView nortest plyr]; };
   rcompendium = derive2 { name="rcompendium"; version="0.5.1"; sha256="0zg7051c4wg1jbdf7hshswy53y24x8h8myhshvg9z2pg8mvd8sir"; depends=[clisymbols crayon devtools gert gh gtools rmarkdown rstudioapi stringr usethis xfun]; };
   rcoreoa = derive2 { name="rcoreoa"; version="0.4.0"; sha256="0q5dprz0ag04w265bk7isd2lr61nahf223qza47m0izd9nyi9h8a"; depends=[crul hoardr jsonlite pdftools]; };
   rcorpora = derive2 { name="rcorpora"; version="2.0.0"; sha256="1b8xa81mn3afadz77576vda9b0d99f1k096drxrpqd989g993aqy"; depends=[jsonlite]; };
@@ -14846,9 +14948,10 @@ in with self; {
   rdmulti = derive2 { name="rdmulti"; version="0.8"; sha256="0hkcvcndfma9sbw6brmj29ka52kn3axhwk1cix3vw5ganwnmpaqh"; depends=[ggplot2 rdrobust]; };
   rdnb = derive2 { name="rdnb"; version="0.1-4"; sha256="069xlfdjjyl4a9clxj8m5gfplmll6qiqzms59mnsql3b74jamxi3"; depends=[brew httr stringr xml2]; };
   rdoc = derive2 { name="rdoc"; version="0.1.0"; sha256="0ac6413jyrr7m25z30n3bpiafsvjx38ik6rrjzsiqxrfp41j6l9x"; depends=[cli crayon prettycode R6]; };
+  rdomains = derive2 { name="rdomains"; version="0.2.0"; sha256="048wdddgg2zaarpmn07dya74xy10831lba1zpq9kjnqk8v286jrw"; depends=[aws_alexa curl devtools glmnet httr jsonlite Matrix rlang urltools virustotal XML xml2]; };
   rdoxygen = derive2 { name="rdoxygen"; version="1.0.0"; sha256="16907969w66xvy62k45rw10qfv4x8z6jkkc6i97vppkgnlvf4d4b"; depends=[devtools]; };
-  rdpower = derive2 { name="rdpower"; version="2.0"; sha256="1yw563nz7dc24ba7vh0w85gp3rhr2ddx3qkpfdr1iwq8a8g1hg01"; depends=[rdrobust]; };
-  rdrobust = derive2 { name="rdrobust"; version="1.0.6"; sha256="09qffxmihnw7dpdb7x92190drcfgsv66ahwvqxbzy6shqsvs4yhs"; depends=[ggplot2 MASS]; };
+  rdpower = derive2 { name="rdpower"; version="2.1"; sha256="1aylzslfjcm84y2nbnlam8pvg1fjgznihhngjvz771rn5klgkznc"; depends=[rdrobust]; };
+  rdrobust = derive2 { name="rdrobust"; version="1.0.7"; sha256="0j7qalrbc1jxnzwjwm2hyakfjxai97kzw4aprzygdx9f838al9pf"; depends=[ggplot2 MASS]; };
   rdrop2 = derive2 { name="rdrop2"; version="0.8.2.1"; sha256="02rhcq1vn349ddjkqamxb0wjb3z3m4wzkvin1mprcz4fzrjxgbdr"; depends=[assertive digest dplyr httr jsonlite magrittr purrr]; };
   rdryad = derive2 { name="rdryad"; version="1.0.0"; sha256="00f1qwsbwg5jggm5b83nhk1lxyw272rv2kg77bcwqvlf3074c3mz"; depends=[crul curl hoardr jsonlite mime tibble zip]; };
   rdtLite = derive2 { name="rdtLite"; version="1.3"; sha256="1njn6x2k03qxmb96d5sl7jz0xq5wabbixn9xy55ypw8g1k0cgmd1"; depends=[curl digest gtools jsonlite knitr provSummarizeR provViz rlang rmarkdown sessioninfo stringi XML]; };
@@ -14879,7 +14982,7 @@ in with self; {
   readmnist = derive2 { name="readmnist"; version="1.0.6"; sha256="0f2kp5r04k47gpvbj8x13c47zsis3bw3y8f5f37sh6jggblqr004"; depends=[]; };
   readmoRe = derive2 { name="readmoRe"; version="0.2-12"; sha256="18zxhnh8nzh3l5j94mrqf9l94bxvc82nzhl8sx5k9h08gj4f1zfw"; depends=[plyr R_utils readxl xml2]; };
   readobj = derive2 { name="readobj"; version="0.4.1"; sha256="0ga0kk6n98zy8w9wc2fahn15bgsv73n4ncqgqb5ldyr4vjqxr2sr"; depends=[Rcpp]; };
-  readr = derive2 { name="readr"; version="2.0.2"; sha256="05bnvcc55i0xjilfrqx3700mwiz8sgihq1wxlbvvr8nxa7bmxc4q"; depends=[cli clipr cpp11 crayon hms lifecycle R6 rlang tibble tzdb vroom]; };
+  readr = derive2 { name="readr"; version="2.1.0"; sha256="03d7y4k9w5vcm7fwlcaw715ff7d953i92jwbp7ynrqcr09kw6zm0"; depends=[cli clipr cpp11 crayon hms lifecycle R6 rlang tibble tzdb vroom]; };
   readrba = derive2 { name="readrba"; version="0.1.2"; sha256="1gbyin3lvh4vjwr715xbdjnlzz42f9fs44x1hqmyinya55l9whih"; depends=[dplyr httr lubridate purrr readxl rlang rvest stringr tidyr xml2]; };
   readroper = derive2 { name="readroper"; version="0.9.3"; sha256="00l731hryx0igj0x7knljs9xq4gaczmsgw2hh05ngrl9y5s528dc"; depends=[readr]; };
   readsdmx = derive2 { name="readsdmx"; version="0.3.0"; sha256="188yzkjblbjly032312w0fazj7k7j4ynqfc69xpblnw4gs708sx0"; depends=[Rcpp]; };
@@ -14906,7 +15009,7 @@ in with self; {
   recexcavAAR = derive2 { name="recexcavAAR"; version="0.3.0"; sha256="0b91jbgqzkgzvk658ckk639yyz1daa0xql3qgl0kzgqg68d53x20"; depends=[kriging Rcpp]; };
   rechonest = derive2 { name="rechonest"; version="1.2"; sha256="0vpff8q5p6in7vjyl62bx3wmksravcg4mpx20qlgy5ia47vyhqp2"; depends=[httr jsonlite RCurl]; };
   recipes = derive2 { name="recipes"; version="0.1.17"; sha256="0gbdc5kvbn14s5zrf4vrdjvkfajs00p7vvb433ii0lqnl07bl87d"; depends=[dplyr ellipsis generics glue gower ipred lifecycle lubridate magrittr Matrix purrr rlang tibble tidyr tidyselect timeDate vctrs withr]; };
-  reclin = derive2 { name="reclin"; version="0.1.1"; sha256="15qrdgjmclffivnljgmmipws9ks41fj4q40wnq0fk14mbv2045g2"; depends=[dplyr ldat lpSolve lvec Rcpp stringdist]; };
+  reclin = derive2 { name="reclin"; version="0.1.2"; sha256="0bskmlysc12g5invscr0vvshy8bp1gxjx4wihwbbfzmnk2951qrc"; depends=[dplyr ldat lpSolve lvec Rcpp stringdist]; };
   recluster = derive2 { name="recluster"; version="2.9"; sha256="1nz5w4v5hhb3qjwxixc526gqsmr1imw582l9gj2acwar4z9mixjp"; depends=[ape cluster phangorn phytools picante plotrix vegan]; };
   recmap = derive2 { name="recmap"; version="1.0.11"; sha256="08gbbgm6494s490lw9c85j1bvmd6wnk9r43dh8x4lijb3fhs0dq0"; depends=[GA Rcpp sp]; };
   recodeflow = derive2 { name="recodeflow"; version="0.1.0"; sha256="0qi5y1rbdw6dcvkl8gw9fh7rcb0f6ckig8464sgxslgf7cdk2gcz"; depends=[dplyr haven magrittr sjlabelled stringr tidyr XML]; };
@@ -14934,6 +15037,7 @@ in with self; {
   redoc = derive2 { name="redoc"; version="2.0.0.49"; sha256="06nfqw6xs0ij21mjbqk9sdvhhh0pqf6fwankvagsbyrv742g7qkx"; depends=[jsonlite]; };
   redux = derive2 { name="redux"; version="1.1.0"; sha256="0a551w7fph338mqzxda6y21lsad19dway7w18jw9cv1rgvcp9nvc"; depends=[R6 storr]; };
   ref_ICAR = derive2 { name="ref.ICAR"; version="1.0"; sha256="0k6czsbjclgmi7vp5hl50jghkzm573s50993iz3dcv55mv662251"; depends=[coda MCMCglmm mvtnorm Rdpack rgdal spdep]; };
+  refer = derive2 { name="refer"; version="0.1.0"; sha256="1y0n4xzhn96d25mwjr0735w990rz2kbxhcpsc5k5vwbwq64q6wsd"; depends=[eList matchr]; };
   referenceIntervals = derive2 { name="referenceIntervals"; version="1.2.0"; sha256="0wf8c71z7gq2f91q60dyy7mrxsnhq7x3wdllmzn2lpabgv2wrm85"; depends=[boot car extremevalues outliers]; };
   refineR = derive2 { name="refineR"; version="1.0.0"; sha256="13bxi1fp0517lvwdwdjc8vm7sr38kwjk6d17qra0is1mlac4wyj3"; depends=[ash future future_apply]; };
   refinr = derive2 { name="refinr"; version="0.3.1"; sha256="0q76sr050pg3ahwzcxj08mjig0k2jq8yh7nv6d914pwg3dhq05sn"; depends=[Rcpp stringdist stringi]; };
@@ -14943,13 +15047,14 @@ in with self; {
   refset = derive2 { name="refset"; version="0.1.1"; sha256="1xbwvm9066g3f7pd34z5jh04vph4ddy2lkcgmf4kiwa1k5czpwg1"; depends=[]; };
   refuge = derive2 { name="refuge"; version="0.3.3"; sha256="0cq62rgawlam4j4h4sz4zvkgi0x21k4syy4vh7i40bxrq0z9ysyz"; depends=[dplyr httr jsonlite tibble]; };
   refund = derive2 { name="refund"; version="0.1-24"; sha256="089dl0vjn474gka9j18fk125aqvwd2gx61g1rv8cp6m0caq99pzg"; depends=[boot fda gamm4 ggplot2 grpreg lattice lme4 magic MASS Matrix mgcv nlme pbs RLRsim]; };
+  refund_shiny = derive2 { name="refund.shiny"; version="0.4.1"; sha256="0pjcb20p9mjj08lk27ig78gj8sq4lwljmq52bszm9qdhyhhpap5m"; depends=[dplyr ggplot2 gridExtra lme4 plotly refund registr reshape2 shiny tidyr]; };
   regDIF = derive2 { name="regDIF"; version="1.0.0"; sha256="1gw4ymg6qk1v4nkayqw706f2la0yfkwvdjlam4wc00mnjjbxgnyd"; depends=[statmod]; };
   regRSM = derive2 { name="regRSM"; version="0.5"; sha256="0nbp3yjk9r7qvwm7wla39155rmqnvpdb720iq3b0hcy1bbsxbk9s"; depends=[doParallel foreach Rmpi]; };
   regclass = derive2 { name="regclass"; version="1.6"; sha256="0m974k3yhf0dgv5f1qjs8c53mam0cll3cjn35ywfrmlfla0wlhf5"; depends=[bestglm leaps randomForest rpart rpart_plot VGAM]; };
   regexPipes = derive2 { name="regexPipes"; version="0.0.1"; sha256="1hk0rhvmgzcyf5cyl8hjznl3ll25kpasqikfr6nxd6ian2slvmmb"; depends=[]; };
   regexSelect = derive2 { name="regexSelect"; version="1.0.0"; sha256="0xnb9qa8l63ang4r40ky4qhlrs5mbzvmj98dgij26j3mq1ys1pa7"; depends=[shiny shinyjs]; };
   regexTestR = derive2 { name="regexTestR"; version="0.1.0"; sha256="1nfzzifqvhz3cjdr93pd4iyz5hb8v42v94r89b2ikc8ycc48k75g"; depends=[config data_table DT golem htmltools pkgload processx purrr RColorBrewer rvest shiny shinyBS shinythemes stringr tidyr xml2]; };
-  reghelper = derive2 { name="reghelper"; version="1.0.2"; sha256="1ya15ksn30ad6lx10xr9vhncvm72j5qz82hwg6avdm8h6xi16bqp"; depends=[ggplot2 lme4 nlme]; };
+  reghelper = derive2 { name="reghelper"; version="1.1.0"; sha256="16mj3v9rn9krx4a8xnb2l01wnk17hgn0pkmkvqh4baby9a479hv7"; depends=[ggplot2 lme4 MASS nlme]; };
   regioncode = derive2 { name="regioncode"; version="0.1.1"; sha256="1h5qbpcfgl86g0cy5nz9vvwzqsp335lqhl4djil3k3mab38k778d"; depends=[dplyr knitr pinyin textshaping]; };
   regions = derive2 { name="regions"; version="0.1.8"; sha256="16i0w1my9zfwh0p9qvc3vcid0r6rb6gbvvrx03vbg81l6cxrglr4"; depends=[assertthat countrycode dplyr glue here magrittr purrr readxl rlang stringr tibble tidyr tidyselect]; };
   registr = derive2 { name="registr"; version="1.0.0"; sha256="1ysj2ab69w6g71d1kpcwyq0py71w6h7lfhk4nzgn2dhh6k8whwbn"; depends=[dplyr ggplot2 gridExtra magrittr Rcpp RcppArmadillo tidyr]; };
@@ -14972,7 +15077,7 @@ in with self; {
   rehh = derive2 { name="rehh"; version="3.2.2"; sha256="1kgabmg0vq8psdhkfcpdv3iy8gj5hmqzhb8bs8rld49nhnnbqs2x"; depends=[rehh_data]; };
   rehh_data = derive2 { name="rehh.data"; version="1.0.0"; sha256="1jkvwmnnmfa7iyvrabgcfzw3vfzx0dlgq47s6yf4zayi437v4di0"; depends=[]; };
   rehydratoR = derive2 { name="rehydratoR"; version="0.5.2"; sha256="1d94m9hv1l72l9lph2vzbq4qqbfcgyhv2qk82p9vb8l2ckavjzvv"; depends=[dplyr jsonlite rtweet tibble]; };
-  reinstallr = derive2 { name="reinstallr"; version="0.1.4"; sha256="1fcmy2cyqy4zwh815j2jbmziaiq6kypwsnj5bx0f10dlq3522m5q"; depends=[]; };
+  reinstallr = derive2 { name="reinstallr"; version="0.1.5"; sha256="0yr1fzfahxqffjh5vm6y6b0iay8p0cirlzq2z4hlz7nci57fx5yr"; depends=[]; };
   reinsureR = derive2 { name="reinsureR"; version="0.1.0"; sha256="19ayikzcq6z4i7xrlby76yy2nwvrsv6xdfrmvzyr7rz934flh8kd"; depends=[data_table dplyr ggplot2 viridis viridisLite]; };
   relMix = derive2 { name="relMix"; version="1.3.3"; sha256="03zzmsx2i7ib1mhdfk5igvr1winl9g2dfjqz2kzvcx3rl7l6hjym"; depends=[Familias gWidgets2 gWidgets2tcltk]; };
   relSim = derive2 { name="relSim"; version="0.3-1"; sha256="1d6yihapfyjlfw87l370wyfyby7ivvykx04qljffdv3hi801gn7f"; depends=[multicool Rcpp rvest stringr xml2 xtable]; };
@@ -14987,9 +15092,9 @@ in with self; {
   relevent = derive2 { name="relevent"; version="1.1"; sha256="10wy6qbg91bq8cs5fas50nnfw80rpsgr8bqpfbsxcmsh43ilpgg9"; depends=[coda sna trust]; };
   relgam = derive2 { name="relgam"; version="1.0"; sha256="0bfsk2pc3vdk8wgdfpz80x0f9p0z37sq114swqn6z11p298hwf2x"; depends=[foreach glmnet]; };
   reliaR = derive2 { name="reliaR"; version="0.01"; sha256="000nafjp386nzd0n57hshmjzippiha6s6c4nfrcwl059dzmi088i"; depends=[]; };
-  reliabilitydiag = derive2 { name="reliabilitydiag"; version="0.1.3"; sha256="06g2p7a47yc8kcd3g2jg08jf9x3xa0byp56w7jgfknv80m4d9mk0"; depends=[bde dplyr ggExtra ggplot2 magrittr purrr rlang tibble tidyr vctrs]; };
+  reliabilitydiag = derive2 { name="reliabilitydiag"; version="0.2.0"; sha256="0qgvyjc512gwr0rbgxkkf9ipvxfl9y07215f1pdk15xhzkk94m53"; depends=[bde dplyr ggExtra ggplot2 magrittr purrr rlang tibble tidyr vctrs]; };
   relimp = derive2 { name="relimp"; version="1.0-5"; sha256="0ydn82g8xdqzhf34187080bbpcpw1zdjbj2i3dv1d6d35vvprb5c"; depends=[]; };
-  relliptical = derive2 { name="relliptical"; version="0.1.0"; sha256="122gv5pckx87hsczfqsac6nwh54a6y1ka066aab2zlrhrlx0wx2y"; depends=[FuzzyNumbers_Ext_2 matrixcalc Rcpp RcppArmadillo RcppEigen RcppNumerical Rdpack Ryacas0]; };
+  relliptical = derive2 { name="relliptical"; version="0.9.0"; sha256="1smrbrxaj0jwfsl07pk46s0iqcb1xmww1yzr73kv43ld6py9n4sv"; depends=[FuzzyNumbers_Ext_2 matrixcalc Rcpp RcppArmadillo RcppEigen RcppNumerical Rdpack Ryacas0]; };
   relsurv = derive2 { name="relsurv"; version="2.2-5"; sha256="0bqmr493jdk3vkw386gs2bk688bja5yg14ax1rb88bf6i6fqqcy8"; depends=[date survival]; };
   rem = derive2 { name="rem"; version="1.3.1"; sha256="1q4p26irhhl1lvc0ydv9wmng1y635zm16szpl7gwq1kyn2p90rai"; depends=[doParallel foreach Rcpp]; };
   rema = derive2 { name="rema"; version="0.0.1"; sha256="15b68pynac9ff9bina0mf94absvfsn21xcdmvd4lbl97pxwj83ph"; depends=[progress Rcpp Rdpack]; };
@@ -15022,7 +15127,7 @@ in with self; {
   report = derive2 { name="report"; version="0.4.0"; sha256="1g6xq6gl84ddz03pfnihc501svghdjxsa0f6fmlb3r58h61r8isq"; depends=[bayestestR datawizard effectsize insight parameters performance]; };
   reportROC = derive2 { name="reportROC"; version="3.5"; sha256="1f3vdxz45bhks1pm3b41pmh8g8vr2czfr1pn4ddy4kgw5h1x3n8n"; depends=[pROC]; };
   reportReg = derive2 { name="reportReg"; version="0.3.0"; sha256="0qwrpn61x69hmgln5fpc58dqfa3pba0lgjjyj0f3fh96wc9jyhq1"; depends=[nlme]; };
-  reporter = derive2 { name="reporter"; version="1.2.0"; sha256="02p49xm0hcdx9lz6f57jn3j49dp2cipdc1rl05baypfrhwnz2ix9"; depends=[crayon fmtr jpeg stringi]; };
+  reporter = derive2 { name="reporter"; version="1.2.6"; sha256="1xa53xahi0ag202abigg51s5pllabll53zwx1b16yxh382c42ad6"; depends=[crayon fmtr jpeg stringi]; };
   reportfactory = derive2 { name="reportfactory"; version="0.4.0"; sha256="0mkk9gyd3l6m33mkc6w3fmgrzc6na03kwxxwgn0zb83bjpmyyl1z"; depends=[callr fs knitr rmarkdown rprojroot rstudioapi yaml]; };
   reportr = derive2 { name="reportr"; version="1.3.0"; sha256="0zynplxqvbmf23cm2rsz3wz2jx6mv55z94mn1k44ny3lx625cnpw"; depends=[ore]; };
   reporttools = derive2 { name="reporttools"; version="1.1.3"; sha256="0sx89qb66lczmzcsybxac4razcncf2xcxr0vfkvb3f8jqc7xwcik"; depends=[xtable]; };
@@ -15039,18 +15144,18 @@ in with self; {
   request = derive2 { name="request"; version="0.1.0"; sha256="1q7zd6q00gdqmgq7s7nq1ixmns8zn2amr5zah9rwnsn8dkllj9yh"; depends=[curl httr jsonlite lazyeval magrittr R6 whisker]; };
   requiRements = derive2 { name="requiRements"; version="0.0.1"; sha256="17afbpny5j2rssi173k7sxi9q2syskjh8h0h89z24dqsbh3947mz"; depends=[remotes]; };
   requireR = derive2 { name="requireR"; version="1.0.0.1"; sha256="192l7i3q7s2a6n737an3fn258agjsdzh0q2w0vc8jbz7v4f3i92d"; depends=[]; };
-  rerddap = derive2 { name="rerddap"; version="0.7.6"; sha256="0nfcwpspjvdqr00azfz47h5p513dnfx828hxg2wg13h3hdzh651g"; depends=[crul data_table digest dplyr hoardr jsonlite ncdf4 tibble xml2]; };
+  rerddap = derive2 { name="rerddap"; version="0.8.0"; sha256="0jfmbaybm1shmkj9fn7n403hfbhmhbclkpw95709r3bazqmfqiys"; depends=[crul data_table digest dplyr hoardr jsonlite ncdf4 tibble xml2]; };
   rerddapXtracto = derive2 { name="rerddapXtracto"; version="1.1.2"; sha256="1xca6bqzpk8hy04vdi8g0psddaa88bd4vkwcymyl6cy1p6xkqya5"; depends=[abind dplyr ggplot2 httr maps ncdf4 parsedate plotdap readr rerddap sf sp]; };
   resample = derive2 { name="resample"; version="0.4"; sha256="1rckzm2p0rkf42isc47x72j17xqrg8b7jpc440kn24mqw4szgmgh"; depends=[]; };
   resampledata = derive2 { name="resampledata"; version="0.3.1"; sha256="1nxjqvxxvycccmh1n7lpc4k8zmwnciicfr5rzfid1icij5fzw3ak"; depends=[]; };
   rescue = derive2 { name="rescue"; version="1.0.3"; sha256="0wq4ka1a7yhbjwr99ngykhn2r3czn3rqi63r6jn46pz15vnicwad"; depends=[data_table dbscan igraph irlba Matrix reticulate]; };
-  resemble = derive2 { name="resemble"; version="2.0.0"; sha256="1vr4aydwyipspkw662qw50219r30ms05i567j66yv1ccs574dw6a"; depends=[data_table foreach iterators lifecycle magrittr mathjaxr Rcpp RcppArmadillo]; };
   reservoir = derive2 { name="reservoir"; version="1.1.5"; sha256="1qvjq8j2gxp6b8m3k3822f9na8a1kbwzzsmq70m763dcq293rgiz"; depends=[gtools]; };
   resevol = derive2 { name="resevol"; version="0.2.0.8"; sha256="1s9g034cjrafj8lkk3gahd05cz8kkgal2lsvm4nfx3s7hx91q0ww"; depends=[]; };
   reshape = derive2 { name="reshape"; version="0.8.8"; sha256="0s6i0sqxg1vldxs6miv8mi0zydxbqzgpmzfiwkj8y7jix3yrfmad"; depends=[plyr]; };
   reshape2 = derive2 { name="reshape2"; version="1.4.4"; sha256="1n0jrajpvc8hjkh9z4g8bwq63qy5vy5cgl2pzjardyih4ngcz3fq"; depends=[plyr Rcpp stringr]; };
   resourcer = derive2 { name="resourcer"; version="1.1.1"; sha256="0zjr12fxjlw9zwa5n3l7r2m6vrksvczdzyhq3aj3hzqbm148z1cq"; depends=[httr R6]; };
   respirometry = derive2 { name="respirometry"; version="1.3.0"; sha256="1ffhkvf8a8zhkysghd636k47bl7k5bdwkkg4m0pr1zlxpfrif82c"; depends=[birk lubridate marelac measurements minpack_lm PKNCA seacarb segmented]; };
+  responsePatterns = derive2 { name="responsePatterns"; version="0.1.0"; sha256="0iyx35kq82w18v8c7lfz7x31c2cgywn4xh8hg0ad3gsdygadq8hq"; depends=[]; };
   restatapi = derive2 { name="restatapi"; version="0.12.3"; sha256="1jwhc9igcxa8k3hnnf4vpharbh1scbb7m7zvjyv2axbjjz0hr8hs"; depends=[data_table rjson xml2]; };
   restaurant = derive2 { name="restaurant"; version="0.1.0"; sha256="1dr9nw5xkll1wnra2xi8dg2yiv85nibdg1i9lsn44v7cgr9vb32j"; depends=[]; };
   restfulr = derive2 { name="restfulr"; version="0.0.13"; sha256="1dk45mzrr6ka92yjz7hfhkj12kpx1wg4szv1h1mg80mgga4ganbv"; depends=[RCurl rjson S4Vectors XML yaml]; };
@@ -15064,9 +15169,9 @@ in with self; {
   reticulate = derive2 { name="reticulate"; version="1.22"; sha256="0v7m2pv94lfqiw8rhz3c9g66vvz4qvih4vd29rhfk2phmcwpnvmh"; depends=[here jsonlite Matrix png rappdirs Rcpp withr]; };
   retistruct = derive2 { name="retistruct"; version="0.6.3"; sha256="1zij37n2ja3yx6n1agdkb3lj42p01parcg6djv60bng9c2qq0wsl"; depends=[foreign geometry png R_matlab R6 rgl RImageJROI RTriangle sp ttutils]; };
   retractcheck = derive2 { name="retractcheck"; version="1.0.0"; sha256="1c4p8afh9g359s560sswcys3manc0lqvk0aqgvd09p4rpzls2dm7"; depends=[httr plyr textreadr]; };
-  retriever = derive2 { name="retriever"; version="0.2.0"; sha256="0bvfpcm1j6k1rlag42d4xg87nks50n51cjx8rklbl5s7m0y8a29i"; depends=[pbapply preprocessCore]; };
+  retriever = derive2 { name="retriever"; version="0.2.1"; sha256="0vachj8rzh8g55y18hz85bsrzr86614frdmr7wz6hszgiq8qgcxy"; depends=[pbapply preprocessCore]; };
   retrodesign = derive2 { name="retrodesign"; version="0.1.0"; sha256="173jrpzasimplv8vbm8gzpl8aibnsjkgvhz1hd75is0b2l8gnbxy"; depends=[]; };
-  retroharmonize = derive2 { name="retroharmonize"; version="0.1.17"; sha256="13fyc0wq3jqjbdzl0pncf7s452mvz94z7h2da107kfaqrim9vbgs"; depends=[assertthat dplyr fs glue haven here labelled magrittr pillar purrr rlang snakecase stringr tibble tidyr tidyselect vctrs]; };
+  retroharmonize = derive2 { name="retroharmonize"; version="0.2.0"; sha256="10fwmm91p3dgad99a7imkg9cjlk0gy2bkpmzgfr6s9bp07splj6i"; depends=[assertthat dplyr fs glue haven here labelled magrittr pillar purrr rlang snakecase stringr tibble tidyr tidyselect vctrs]; };
   retrosheet = derive2 { name="retrosheet"; version="1.1.4"; sha256="13vicafx3z83wrxhc6d7bk6bd0m49qcd5li2b4j0bgzavrx6clxs"; depends=[httr rvest stringi stringr xml2]; };
   retry = derive2 { name="retry"; version="0.1.0"; sha256="1yfcfvszfjnvvnjcywgchyiyj3jk9nmvk3h40g6bc24xapfkfl2p"; depends=[later rlang]; };
   reutils = derive2 { name="reutils"; version="0.2.3"; sha256="09dhf4s7wz3anrkzqi16abx64gk8ck2142kfd8pv71mjy3x548l7"; depends=[assertthat jsonlite RCurl tibble XML]; };
@@ -15084,7 +15189,7 @@ in with self; {
   revulyticsR = derive2 { name="revulyticsR"; version="0.0.3"; sha256="0dz9c26qwasgpp6a5fqh1rgq0hp9dhsrcm1h2hbp0cisri8iwsjf"; depends=[dplyr httr jsonlite magrittr purrr tibble tidyr tidyselect]; };
   reweight = derive2 { name="reweight"; version="1.2.1"; sha256="0fv7q1zb3f4vplg3b5ykb1ydwbzmiajgd1ihrxl732ll8rkkfa4v"; depends=[]; };
   rewie = derive2 { name="rewie"; version="0.1.0"; sha256="1ysrpd2cqmz27sjj3dh0wpg86685d708kjwiqybwjlw9ap55jb06"; depends=[lme4 MASS plm rockchalk]; };
-  rex = derive2 { name="rex"; version="1.2.0"; sha256="0m7bq8db3m5dhf01rw7xc7xy1ciq3m7dfgsl80p8cy4h8vqr3d06"; depends=[lazyeval]; };
+  rex = derive2 { name="rex"; version="1.2.1"; sha256="1mmzlc3j7xa0rbjxa369f4sr0iw3gq58g8fmjjxbsjvfq14ychmg"; depends=[lazyeval]; };
   rexpokit = derive2 { name="rexpokit"; version="0.26.6.7"; sha256="13zrr5qj96vh50mknlc2pl7gq1kx5ahwk3n9ij4xr67734x3mx1r"; depends=[Rcpp]; };
   rextendr = derive2 { name="rextendr"; version="0.2.0"; sha256="0d5nkdphdlyyd9qi3dam16ag89b0h6n38q91pkp71n9xhb4ffrx8"; depends=[brio callr cli desc dplyr glue pkgbuild pkgload purrr rlang rprojroot stringi tibble withr]; };
   rfPermute = derive2 { name="rfPermute"; version="2.5"; sha256="0h7p11cfgdl050qldpns8766y8yqp6wvpdpd15xb07z4cgzbymf7"; depends=[abind dplyr ggplot2 gridExtra magrittr plyr randomForest rlang scales swfscMisc tibble tidyr]; };
@@ -15096,11 +15201,12 @@ in with self; {
   rfigshare = derive2 { name="rfigshare"; version="0.3.7"; sha256="1qgzn0mpjy4czy0pnbi395fxxx84arkg8r7rk8aidmd34584gjiq"; depends=[ggplot2 httpuv httr plyr RJSONIO XML yaml]; };
   rfinance = derive2 { name="rfinance"; version="0.1.0"; sha256="0xy4jw50vqbvicpwc3drzgg8ywgpdyxda7bqym52c76vsghcmq2d"; depends=[cli curl data_table dplyr glue httr janitor lubridate magrittr PerformanceAnalytics readr rvest stringr tibble TTR xml2 xts]; };
   rfinterval = derive2 { name="rfinterval"; version="1.0.0"; sha256="1z7v0sbql6g2h3fr1268nj79rbx1d33hjfaraxhbikrjgb8mbp0w"; depends=[MASS ranger]; };
-  rfishbase = derive2 { name="rfishbase"; version="3.1.9"; sha256="0mviki09ydgbnd5mgbikvijxjfg7jrf836campnlz0b9xvk32kb8"; depends=[arkdb curl DBI dbplyr dplyr gh magrittr memoise progress purrr readr rlang RSQLite stringr]; };
+  rfishbase = derive2 { name="rfishbase"; version="3.1.10"; sha256="01nwgn73mfs6cdbqkchsi4lnfv73svawdf4mw3mcld83y6li0zcw"; depends=[arkdb curl DBI dbplyr dplyr gh magrittr memoise openssl progress purrr readr rlang RSQLite stringr]; };
   rfishdraw = derive2 { name="rfishdraw"; version="0.1.0"; sha256="0204s8jy6shr694hacrq4j0lia9l59rk8kc75sdw87c09q7kjld2"; depends=[ggplot2 jsonlite]; };
   rfisheries = derive2 { name="rfisheries"; version="0.2"; sha256="16j3hn1py8khqadmh81qsg76c62wzqkaq3fn39z0z5mgynmcm62j"; depends=[assertthat data_table ggplot2 httr rjson]; };
   rfishnet2 = derive2 { name="rfishnet2"; version="0.2.0"; sha256="0g90h4353kp7szv3971kb4l5x3x08qx4f9ln85n5g3b3zdg77dkz"; depends=[dplyr ggplot2 pracma rworldmap sf]; };
   rflexscan = derive2 { name="rflexscan"; version="1.0.0"; sha256="1azjdri1dnxqd128p3iya1x36bbhhrckmj08rp23jzfi5zd71c8s"; depends=[igraph Rcpp rgdal sp]; };
+  rflsgen = derive2 { name="rflsgen"; version="0.1.1"; sha256="19iayqfqf22i78ih67yxmmx6p2w3b17qy28hkab1yiig25njfdjr"; depends=[checkmate raster rgdal rJava]; };
   rfm = derive2 { name="rfm"; version="0.2.2"; sha256="1s8h9ll4l5xq3m7ib83zrab49p5q4wclk8qiy2hgjr2hq1sb7wak"; depends=[dplyr ggplot2 ggthemes lubridate magrittr RColorBrewer rlang tibble tidyr xplorerr]; };
   rfoaas = derive2 { name="rfoaas"; version="2.1.0"; sha256="0w6m3lvfb60a2zfvyc0ksnfllb2ndy45b301vk9f3nr27lxdz6dm"; depends=[httr]; };
   rfordummies = derive2 { name="rfordummies"; version="0.1.5"; sha256="1glzc20sbv90fbazy3wh6drqd5dkh47s3fjqzgm78dkmj6gp9hdv"; depends=[openxlsx]; };
@@ -15120,12 +15226,11 @@ in with self; {
   rgeoprofile = derive2 { name="rgeoprofile"; version="0.2.2"; sha256="1nk3qzwcvvq3n1da480zk047wl738fjyvarakm00wwrbnb3ax70j"; depends=[geosphere leaflet pals RANN raster sp spatstat_geom splancs]; };
   rgeos = derive2 { name="rgeos"; version="0.5-8"; sha256="05539shf38slvq38pf92h9q57vmzn2vfqbirl3pbbvvc2j957cqd"; depends=[sp]; };
   rgexf = derive2 { name="rgexf"; version="0.16.2"; sha256="00c2zka1n3k7p1l0mlchr063s6x58p9r3fb64d4wgl4rvsq55q3f"; depends=[igraph servr XML]; };
-  rgho = derive2 { name="rgho"; version="2.0.1"; sha256="1byvq2swn2j9v0zy5smjklv7bkncrclhli62cf1f2wiah5qg8sv2"; depends=[curl dplyr httr jsonlite lazyeval magrittr memoise readr rlang tibble tidyr]; };
-  rgl = derive2 { name="rgl"; version="0.107.14"; sha256="1z5h4wbjj18prcykc96rqcn699pnqw6vybwj2mpbbbdw2lr3q8b7"; depends=[crosstalk htmltools htmlwidgets jsonlite knitr magrittr]; };
+  rgl = derive2 { name="rgl"; version="0.108.3"; sha256="0fqkx079z9y5b1gdg6qfz2wpw2j8q3ddflfkd9wwrkyacas6xyc9"; depends=[htmltools htmlwidgets jsonlite knitr magrittr R6]; };
   rglobi = derive2 { name="rglobi"; version="0.2.27"; sha256="12rqd92i0n7lgnp57a4pfp1fpnhm8v0lmmlfzcy0d8vhvzwgfhw7"; depends=[curl RCurl readr rjson]; };
   rglwidget = derive2 { name="rglwidget"; version="0.2.1"; sha256="0siqxn3gyl98i84p0yha821b4rdrp2i0942mkx819wnf7qwrpqcv"; depends=[rgl]; };
   rgnparser = derive2 { name="rgnparser"; version="0.2.0"; sha256="01dmnyyprnayzn21vgdj9058l17kx8z4fisw4bp4lc6yif39q1r9"; depends=[jsonlite readr sys tibble]; };
-  rgoogleads = derive2 { name="rgoogleads"; version="0.3.0"; sha256="00sbxcnws0gvn7w2yjzpv2i2kjqzl875l24fnxbz1jfq4xc2npx3"; depends=[cli dplyr gargle httr jsonlite magrittr pbapply purrr rlang rlist rvest snakecase stringr tidyr withr]; };
+  rgoogleads = derive2 { name="rgoogleads"; version="0.4.1"; sha256="13fg1swqx761h3jwam0pfg772gagyc3pn551sb75ai44dnji2qwd"; depends=[cachem cli dplyr gargle httr jsonlite magrittr memoise pbapply purrr rappdirs rlang rlist rvest snakecase stringr tidyr withr]; };
   rgoogleslides = derive2 { name="rgoogleslides"; version="0.3.2"; sha256="0h9gws1vcf0zdd21d8b65c2yz9kxppp3218h5lhd5iz879ajwa2i"; depends=[assertthat httr jsonlite R6]; };
   rgovcan = derive2 { name="rgovcan"; version="1.0.3"; sha256="0b1fk7w3x60y0j74pglv14i0d76f13pzslghrday04qzkxy9smvd"; depends=[ckanr cli crayon crul tibble]; };
   rgplates = derive2 { name="rgplates"; version="0.1.0"; sha256="1pxvccyq8m1dbq4rl0fi4vwp6k5w83gjwpga9r182z87cij97j43"; depends=[rgdal sp]; };
@@ -15133,6 +15238,7 @@ in with self; {
   rgrass7 = derive2 { name="rgrass7"; version="0.2-6"; sha256="0k11qm2fc7bxwlajbrk8k49qf65ca4z71f6cynas8ngq4csyzr5r"; depends=[XML]; };
   rgrassdoc = derive2 { name="rgrassdoc"; version="1.0.0"; sha256="18fcacf4v9n8cd27rc2lidwqm04151ya30pcs0bfhkssz80x0zds"; depends=[cli rlang rstudioapi xml2]; };
   rgsp = derive2 { name="rgsp"; version="0.2.0"; sha256="1fk0k479srfr0f4a5abyzcrzwy9hr1v5xf0jgs36fbim9bh7njlc"; depends=[dplyr magrittr tibble]; };
+  rgtmx = derive2 { name="rgtmx"; version="0.1.4"; sha256="0zqab6zhfkc302nsa13nbi5bc45xwrhsrn42g2jnjw2xpnfk3ynz"; depends=[httr jsonlite]; };
   rgugik = derive2 { name="rgugik"; version="0.3.1"; sha256="17cvxbjjzyf4v8pwcwikb02qrbwgsr6f6bh4brs48zh1jvzbcgzd"; depends=[jsonlite openssl sf]; };
   rgw = derive2 { name="rgw"; version="0.3.0"; sha256="0hzkajmvqkmv6c238rdgyc6g16h96d5a0lnajnn5m87j0gwsl6wa"; depends=[]; };
   rhandsontable = derive2 { name="rhandsontable"; version="0.3.8"; sha256="07fj6npq65pq836vdwblkhprdaq4i4f13cwdmm9gmxrnk72xj7lh"; depends=[htmlwidgets jsonlite magrittr]; };
@@ -15147,9 +15253,10 @@ in with self; {
   rhosp = derive2 { name="rhosp"; version="1.10"; sha256="1k0rb4fchjlzinky6ysdvyk0xjsx5986aqwn3yc6s7m3v7y9wb9m"; depends=[]; };
   rhub = derive2 { name="rhub"; version="1.1.1"; sha256="05b4phrny85fshismspjbaz1h0klg1fpy4b309si94pnqffxaqx6"; depends=[assertthat callr cli crayon desc digest httr jsonlite parsedate pillar prettyunits processx R6 rappdirs rcmdcheck rematch tibble uuid whoami withr]; };
   rhymer = derive2 { name="rhymer"; version="1.1.0"; sha256="00piml975chmmm3ipskzhfbbp5sq47yg5a78hsisssbzwwxsmbs0"; depends=[httr jsonlite]; };
+  rhype = derive2 { name="rhype"; version="0.0.1"; sha256="148ssg1rxhw5wsm989fws5dc6lrx23nai22awxmpr1lx06khrm6a"; depends=[R6]; };
   ri = derive2 { name="ri"; version="0.9"; sha256="00y01n9cx95bjhdpnh7vi0xd5p6al3sxbjszbyxafn7m9mygmnhv"; depends=[]; };
   ri2 = derive2 { name="ri2"; version="0.2.0"; sha256="0zadczx7awymn420hf15sci5z1hq5rpid866gpa1wmrhcyh177nh"; depends=[estimatr generics ggplot2 pbapply randomizr]; };
-  ribd = derive2 { name="ribd"; version="1.3.0"; sha256="1vidhghqq2g9v4l7hwq39llbbps8hrfpy1i9s170gak1d38dkciq"; depends=[glue kinship2 pedtools slam]; };
+  ribd = derive2 { name="ribd"; version="1.3.1"; sha256="1an3cifgvw7rrsq1plfycpk1yhlsncn83s2f9xl52161iyljwj6g"; depends=[glue kinship2 pedtools slam]; };
   ricegeneann = derive2 { name="ricegeneann"; version="1.0.2"; sha256="0wxqp4pfdhvq4mwzjrqi3m9jiayk5bp1ha222mpm4qz1pl41cy9w"; depends=[riceidconverter]; };
   riceidconverter = derive2 { name="riceidconverter"; version="1.1.1"; sha256="143f76v3k2q9ddcxf2nzvd04pjgy7p120ln0zkmxpal20c81dwq6"; depends=[dplyr]; };
   riceware = derive2 { name="riceware"; version="0.4"; sha256="0pky0bwf10qcdgg9fgysafr35xbmnr9q0jbh56fawj99nbyj3m70"; depends=[random]; };
@@ -15162,13 +15269,13 @@ in with self; {
   rifle = derive2 { name="rifle"; version="1.0"; sha256="1r0cfj3vzndgiarl9sb38zmpnpm4p8v9l5cm9c1m6g2q9kvpgpbs"; depends=[MASS]; };
   rigr = derive2 { name="rigr"; version="1.0.1"; sha256="0cjk03llklml3h6dmdahdbnxanynii64q664fax62dbkncxg5gqa"; depends=[Exact plyr sandwich survival tibble]; };
   riingo = derive2 { name="riingo"; version="0.3.1"; sha256="1ww9ps0v1yga9dwb68crbhf56xw2svl7az95ifrdrswyyikj02vj"; depends=[crayon glue httr jsonlite purrr rlang tibble vctrs]; };
-  rim = derive2 { name="rim"; version="0.4.1"; sha256="1m3wc8nd2n1s86xxm2gdgz8qq5p3y92xr3xqfcs98ygn2syair9z"; depends=[digest knitr R6 Rcpp stringr]; };
+  rim = derive2 { name="rim"; version="0.5.0"; sha256="1q83w7wfivhhfhrph9zhnd02gmihj9h6vhm5rysbm435hxx9h834"; depends=[GlobalOptions knitr R6 Rcpp rmarkdown stringr]; };
   rinat = derive2 { name="rinat"; version="0.1.8"; sha256="1jp19scgizfi3qp419k2nkkpjm8zcvcgj85zlsa27sd6fjv6vv6m"; depends=[curl ggplot2 httr jsonlite maps plyr sp]; };
   ring = derive2 { name="ring"; version="1.0.3"; sha256="1ljmqq7mngxs59nri36w0cx6a6d85qsbk9v9698hfx9asicv398d"; depends=[R6]; };
   ringostat = derive2 { name="ringostat"; version="0.1.3"; sha256="087l2r64hs9f864mnalh0pnbpb54z6gpkqhcb2zv7r8f5cpfggqj"; depends=[cli httr2 lifecycle readr stringr]; };
   rintimg = derive2 { name="rintimg"; version="0.1.0"; sha256="0jzs4mdwpzbpl0wchyhl3cpywk25ayaxalr12p4cnjl7vnmdm7dp"; depends=[glue htmltools]; };
   rintrojs = derive2 { name="rintrojs"; version="0.3.0"; sha256="00l5mk80gj3xkbf3m1kip566ic98bhd88lh0bg69ybkpk4gifpyw"; depends=[jsonlite shiny]; };
-  rio = derive2 { name="rio"; version="0.5.27"; sha256="02nxwg1d2m1h09a6ismhcp71gmq1c8rhbbl98if2v7xsvdn63sz0"; depends=[curl data_table foreign haven openxlsx readxl tibble]; };
+  rio = derive2 { name="rio"; version="0.5.29"; sha256="04jlrhyl0791yxwcpp1s8p1hhkljnijlc5iaxpk56h41w63k39lz"; depends=[curl data_table foreign haven openxlsx readxl tibble]; };
   rioja = derive2 { name="rioja"; version="0.9-26"; sha256="02af6is38nakzr1hf9688n32m5glk1jyp2d9p4irn0mzk7r6r976"; depends=[mgcv vegan]; };
   ripserr = derive2 { name="ripserr"; version="0.1.1"; sha256="1rwsd1yi5vrzdscjgr27fw0d1a6nkc8g2w5hqgqijiwm25h4wl17"; depends=[Rcpp]; };
   rise = derive2 { name="rise"; version="1.0.4"; sha256="12r7mbaxp9pjypbpjxlsbqg7spw80gjgm2w0lsvgvclffc50a6ni"; depends=[dplyr ggplot2]; };
@@ -15225,6 +15332,7 @@ in with self; {
   rma_exact = derive2 { name="rma.exact"; version="0.1.0"; sha256="1igs92la79akyqj84ah23lpcay7i33k7zgzcwm7sii782fhirivx"; depends=[abind metafor]; };
   rmaf = derive2 { name="rmaf"; version="3.0.1"; sha256="0w247mamwgibr5576p5c2lzaiz2lv2c25n7gw9q99s7rc4bps7j7"; depends=[]; };
   rmake = derive2 { name="rmake"; version="1.1.0"; sha256="00qlki2vps505nxzmfykf1iyq4b0y20nb75hbfcj63ap46z7zk3c"; depends=[assertthat pryr rmarkdown visNetwork]; };
+  rmangal = derive2 { name="rmangal"; version="2.1.0"; sha256="105jnf7583zmmn7w8cziiypga7h5imyp73wnn2jzdblg71lzwqn7"; depends=[httr igraph jsonlite memoise purrr]; };
   rmapshaper = derive2 { name="rmapshaper"; version="0.4.5"; sha256="0mfmip9ncg60nciv6mf12z15wfyffd2shhclx78l0801295siybc"; depends=[geojsonio geojsonlint jsonlite readr sf sp V8]; };
   rmapzen = derive2 { name="rmapzen"; version="0.4.3"; sha256="1n44l4sj6s78nr3hqidabkyg9pradk9c1mqfvzhanj2nrfdrwnqj"; depends=[assertthat digest dplyr geojsonio httr jsonlite maps maptools purrr rgdal sf sp tibble tidyr]; };
   rmarchingcubes = derive2 { name="rmarchingcubes"; version="0.1.3"; sha256="0cdmy728irmbd40xsc2k4r2g8am7s72ks7cw465fa92ml2xa6iq8"; depends=[Rcpp RcppArmadillo]; };
@@ -15268,18 +15376,18 @@ in with self; {
   rnbp = derive2 { name="rnbp"; version="0.2.1"; sha256="0vphfxb262jryvvs48l21q3vxqicj51az0li38axg1mslshw0y4g"; depends=[curl httr jsonlite]; };
   rncl = derive2 { name="rncl"; version="0.8.4"; sha256="0ss9jqrvv7bhvl5j74cjrp8r866d9dlavrbbfscwz3mhkgfx06bb"; depends=[progress Rcpp]; };
   rneos = derive2 { name="rneos"; version="0.4-0"; sha256="07b3vb0h36ilwb8iylgppl8wpi84f583frmscpj236s1aihqwrmx"; depends=[RCurl XML]; };
-  rnetcarto = derive2 { name="rnetcarto"; version="0.2.4"; sha256="0fk5rym6zp049bl1f7bkl2231mjh3pgnxn0nhvmzpsah08rh4rr6"; depends=[]; };
   rngSetSeed = derive2 { name="rngSetSeed"; version="0.3-2"; sha256="00mqjjkhbnvxqkf1kz16gipsf98q62vmhx9v8140qs7c4ljbhc3a"; depends=[]; };
   rngWELL = derive2 { name="rngWELL"; version="0.10-7"; sha256="0f1dxxaimfb0fww8ym9ciqf6q760ai46wxldl37m5mfpd57ca00c"; depends=[]; };
   rngtools = derive2 { name="rngtools"; version="1.5.2"; sha256="0kd7x214cqw7hzpmk1iqy1bn7j6x0ady0yz2hsdbclbq9k57d33z"; depends=[digest]; };
   rngwell19937 = derive2 { name="rngwell19937"; version="0.6-0"; sha256="0m6icqf7nckdxxvmqvwfkrpjs10hc7l8xisc65q8iqpnpwl5p2f6"; depends=[]; };
+  rnmamod = derive2 { name="rnmamod"; version="0.1.0"; sha256="1ayl5cry7lxdf1zscdrxdf50y78scr4qdkghdki6srkx2r645wx0"; depends=[coda dplyr fdrtool gemtc ggfittext ggplot2 ggpubr ggrepel knitr MASS mcmcplots netmeta pcnetmeta R2jags reshape2 scales writexl]; };
   rnn = derive2 { name="rnn"; version="1.4.0"; sha256="0k960jylbvg8r453430d8dpdzydkk3yr5np8rxkay79533ikrcgy"; depends=[shiny sigmoid]; };
-  rnoaa = derive2 { name="rnoaa"; version="1.3.4"; sha256="1yrasq4wgi5q783zyv00xxqzv0r8mrzdv9q7mkabawdmpxji3f1y"; depends=[crul data_table dplyr geonames ggplot2 gridExtra hoardr isdparser jsonlite lubridate rappdirs scales tibble tidyr tidyselect XML xml2]; };
-  rnpn = derive2 { name="rnpn"; version="1.2.3"; sha256="13dkl66x9lpm7ycql53by6vln24q8lira2sjd4rvpxghjy1czfva"; depends=[curl data_table httr jsonlite magrittr plyr raster rgdal sp tibble XML]; };
+  rnoaa = derive2 { name="rnoaa"; version="1.3.7"; sha256="06sq2wgv735s5bji1i8x8q5dsixppiddb1hkabhvvr5mq8valjcc"; depends=[crul data_table dplyr geonames ggplot2 gridExtra hoardr isdparser jsonlite lubridate rappdirs scales tibble tidyr tidyselect XML xml2]; };
+  rnpn = derive2 { name="rnpn"; version="1.2.4"; sha256="0lq9c5in0pf3km6zvfnn71wbh34lk3hgav0b9waspmzsgki8fvl1"; depends=[curl data_table httr jsonlite magrittr plyr raster rgdal sp tibble XML]; };
   rnr = derive2 { name="rnr"; version="0.2.1"; sha256="1z9bab3qmq8d79bcvjzldbxlah2w8mqp2ifd0cn1348dafwa0dhi"; depends=[assertthat purrr]; };
   rnrfa = derive2 { name="rnrfa"; version="2.0.4"; sha256="0sy64bgb94ksgcy37kmj61iphf66i0jpx0qlrcsr24zr92syc1n2"; depends=[curl ggmap ggplot2 httr jsonlite lubridate rgdal sp tibble zoo]; };
   roadoi = derive2 { name="roadoi"; version="0.7.1"; sha256="1diprwir4agp2ifcgfsla1kd5m0y5cnc7ixhh6pqdvlgax5wx96w"; depends=[dplyr httr jsonlite miniUI plyr purrr rlang shiny tibble tidyr]; };
-  roahd = derive2 { name="roahd"; version="1.4.2"; sha256="1lq4aafag5cd9h6jffk6gv4m7v4p4y7wkdyxazw6fdwiqy8g4wvn"; depends=[dplyr magrittr robustbase scales]; };
+  roahd = derive2 { name="roahd"; version="1.4.3"; sha256="089klcgxry6b8z30h1ssy024lqxqm1bz6qs2kx95qjfl8xgwlwm0"; depends=[dplyr ggplot2 magrittr plotly robustbase scales]; };
   robCompositions = derive2 { name="robCompositions"; version="2.3.1"; sha256="13m03r2mcs6srn3hk46lrjhyv5px9jyvqsqbxri1h79f31bji58b"; depends=[car cluster cvTools data_table e1071 fda fpc GGally ggfortify ggplot2 kernlab MASS mclust pls Rcpp RcppEigen reshape2 robustbase robustHD rrcov tidyr VIM zCompositions]; };
   robFitConGraph = derive2 { name="robFitConGraph"; version="0.1.0"; sha256="092nc0xnjs2zxd9ij0dl1xggb8mwl8nly284yjhhygmwlwsvhzxm"; depends=[MASS mvtnorm Rcpp]; };
   robber = derive2 { name="robber"; version="0.2.2"; sha256="053yiwjlsg7z9p5l60wddm1wf5wni54a28yp6x4hbfkgaazvby02"; depends=[blockmodels ggplot2 GREMLINS igraph magrittr pammtools partitions purrr]; };
@@ -15294,6 +15402,7 @@ in with self; {
   robis = derive2 { name="robis"; version="2.8.2"; sha256="0nlvp9w9j2kyv0rrsjkzr3sj77ciz8ink3yr615sjc69iqic34aw"; depends=[curl data_table dplyr ggplot2 httpcache httr jsonlite leaflet mapedit purrr rlang sf stringr tibble tidyr tidyselect xml2]; };
   robmed = derive2 { name="robmed"; version="0.9.0"; sha256="0xjq97jy72hcc03s7z5ckl4f9jwsy2sbhwsr8r7hxgrcc8g1zvwf"; depends=[boot ggplot2 quantreg robustbase shiny sn]; };
   robmixglm = derive2 { name="robmixglm"; version="1.2-2"; sha256="117dhnnj55hihpzim45dw3cjm4ma6w21d8j77fybyri2bmpvlypa"; depends=[actuar bbmle boot doParallel doRNG fastGHQuad foreach MASS numDeriv Rcpp VGAM]; };
+  robnptests = derive2 { name="robnptests"; version="1.0.0"; sha256="0bk3ngwav3r00lf2lb8hq2h578mkfc48gcm845lyxyn7i87vglgg"; depends=[checkmate gtools Rdpack robustbase statmod]; };
   robomit = derive2 { name="robomit"; version="1.0.6"; sha256="1yma6m4bxy3hikc9kx7mslqgq1fpi4my7qij9pz77ag836r9hcxm"; depends=[broom dplyr ggplot2 plm tibble tidyr]; };
   robotstxt = derive2 { name="robotstxt"; version="0.7.13"; sha256="1x5sachf7g5c2aj1mg3z2lf60723k1ad80bdr89szkgi92jkfal7"; depends=[future future_apply httr magrittr spiderbar stringr]; };
   robreg3S = derive2 { name="robreg3S"; version="0.3"; sha256="0rv8qh98wws1f40d1kmysyy9qin0ngsvwq63cnxbwi290wsnrvls"; depends=[GSE MASS robustbase]; };
@@ -15303,11 +15412,12 @@ in with self; {
   robslopes = derive2 { name="robslopes"; version="1.0.2"; sha256="04767ggjjsgm31ysk5xw8jvdnjdbk4fmrrsi83ksz746kl0xafzp"; depends=[Rcpp RcppArmadillo]; };
   robsurvey = derive2 { name="robsurvey"; version="0.1.1"; sha256="0rf2sd7maz565hlgpyhvkswqyck01hif4mg5isbnnky9n3nc98pi"; depends=[survey]; };
   robumeta = derive2 { name="robumeta"; version="2.0"; sha256="1ynlfxlzh442jd1cf02j0f948m16d536a30gb4bf7208baqri1vg"; depends=[]; };
-  robust = derive2 { name="robust"; version="0.6-0"; sha256="1nq21ka5qyyyx84vcpycwk553z9a0s94hlgqaqzghmxnygdhg7sf"; depends=[fit_models lattice MASS robustbase rrcov]; };
+  robust = derive2 { name="robust"; version="0.6-1"; sha256="0z8i0qqlsa6vpl457qir3dlsynhjfn2g22436d776vxwyqjx4vs9"; depends=[fit_models lattice MASS robustbase rrcov]; };
+  robust2sls = derive2 { name="robust2sls"; version="0.1.0"; sha256="149wdrjjpzwm2zi1a2wrv6qcdxya77dz1i7d2vqz4vx4qzw55hf6"; depends=[AER doRNG foreach pracma]; };
   robustBLME = derive2 { name="robustBLME"; version="0.1.3"; sha256="18wx116l1riy4wn4083kxl637mkyyi9wbwnmvhkgqw3vb36s4vxd"; depends=[doParallel foreach iterators lme4 mvtnorm numDeriv Rcpp RcppArmadillo]; };
   robustDA = derive2 { name="robustDA"; version="1.2"; sha256="0kxdqvv17dgnlqp0hkazwfqsg3h4g9gw1w57blwpay67xp4d1jyx"; depends=[MASS mclust Rsolnp]; };
   robustETM = derive2 { name="robustETM"; version="1.0"; sha256="1dlj79v08bls500lb81rya6vwx58h97rpq1sy9zwd3mfl9b6awp9"; depends=[]; };
-  robustHD = derive2 { name="robustHD"; version="0.7.1"; sha256="0s0kxdqi390si653wsnd19lnnqna7nxi5hi6v4xfmmnpdwvp4l3x"; depends=[ggplot2 MASS perry Rcpp RcppArmadillo robustbase]; };
+  robustHD = derive2 { name="robustHD"; version="0.7.2"; sha256="19nq86wy08gpb07snwadymxwfdg4qkp2a8bhnpymwfqd0lzjyq43"; depends=[ggplot2 MASS perry Rcpp RcppArmadillo robustbase]; };
   robustX = derive2 { name="robustX"; version="1.2-5"; sha256="1l8ap69aljr3d28512d15hf53bxzfdk6q4ab59z63nr053rfxa4f"; depends=[robustbase]; };
   robustarima = derive2 { name="robustarima"; version="0.2.6"; sha256="137x9w3fq523bw2wix7bwc255mq7kvqa047chcnb2prihn9d6as7"; depends=[splusTimeDate splusTimeSeries]; };
   robustbase = derive2 { name="robustbase"; version="0.93-9"; sha256="0i9wf4aq8zpn2np6z2rjja21ks9n740dgkiv0qfwdzk3ah3vapyp"; depends=[DEoptimR]; };
@@ -15328,8 +15438,10 @@ in with self; {
   roccv = derive2 { name="roccv"; version="1.2"; sha256="18kq2gzcbz97dw168xppql8k3slpkfl8yv1d8ac48damlhvipif1"; depends=[glmnet pROC]; };
   rock = derive2 { name="rock"; version="0.5.1"; sha256="1abyr9i2p1xjll6cry8hmbgskwr10ki4r0zw29qg8iz2rpxl0zpp"; depends=[data_tree DiagrammeR DiagrammeRsvg dplyr ggplot2 glue htmltools markdown purrr yaml yum]; };
   rockchalk = derive2 { name="rockchalk"; version="1.8.144"; sha256="07dp1n155b9gfvk8l30h6bhjbhbylsjxfzns08mryn4mxj3nqpnb"; depends=[carData kutils lme4 MASS]; };
+  rocker = derive2 { name="rocker"; version="0.1.2"; sha256="17z1vrypy25g18jmpiydxhahzlb0cdhzl84b8c6nqhyc3ldwxiyv"; depends=[DBI R6 safer]; };
   rockr = derive2 { name="rockr"; version="1.0.0"; sha256="190xaxcbb7miqw5mxyfqqlb2vzacifc8a7a3cqfdlpxra4d4jc25"; depends=[httr jsonlite mime progress]; };
   roclang = derive2 { name="roclang"; version="0.1.2"; sha256="139m7biiidcbc3a9nnp5qpdysszrzldhf6dp64rfshp3rjpfssiq"; depends=[dplyr magrittr purrr rex rlang roxygen2 stringr tibble tidyr]; };
+  rocnp = derive2 { name="rocnp"; version="0.1.0"; sha256="1xqlmihhgjn6g3kabgmdx1qn18sxqd43sq3nb39i8pbwvaxhjqjr"; depends=[dplyr glue magrittr purrr rlang stringr tibble]; };
   rococo = derive2 { name="rococo"; version="1.1.7"; sha256="1fp3kk5j9kc0vyr50rlbsxjc9p3qz5137sifxsbd297p7zj1fcs2"; depends=[Rcpp]; };
   rocsvm_path = derive2 { name="rocsvm.path"; version="0.1.0"; sha256="1pd59bzcz96sxpp725pqa7pjh2gdrfapbilp4wccjkf5290zw56v"; depends=[quadprog svmpath]; };
   rodd = derive2 { name="rodd"; version="0.2-1"; sha256="01zrkw4lr21vxk2grfc37iyrcipfdcj5m0i7gnxsvs435y9fqagd"; depends=[Matrix matrixcalc numDeriv quadprog rootSolve]; };
@@ -15361,13 +15473,13 @@ in with self; {
   rorcid = derive2 { name="rorcid"; version="0.7.0"; sha256="1d0s5w48ksyj152nc4xq5w0nsimab8jc5fgspdwnbas2g8a52igr"; depends=[crul data_table fauxpas httr jsonlite tibble xml2]; };
   rorqual_morpho = derive2 { name="rorqual.morpho"; version="0.1.1"; sha256="1475yhb5qwj4zpsc4gqqpzs7qvyddxwc63i1f4rhnv6id2hi4msp"; depends=[dplyr magrittr]; };
   rorutadis = derive2 { name="rorutadis"; version="0.4.2"; sha256="13a7xj4qw1nd8xgrqhrki3php960lgy9gy38sg4kpvs4j2rwijzc"; depends=[ggplot2 gridExtra hitandrun Rglpk]; };
-  rosetta = derive2 { name="rosetta"; version="0.3.8"; sha256="1krc2254z1sy5gi8alvq12bmvmcm16ynpngvasxab09jjfgjsp17"; depends=[car diptest ggplot2 ggrepel gridExtra kableExtra knitr lavaan lme4 multcompView pander plyr psych pwr rio rmdpartials ufs viridis]; };
+  rosetta = derive2 { name="rosetta"; version="0.3.9"; sha256="104k6j7v41czd4g1qwifmig3zsjs3l4q5mvfab81przdb1m6k5kd"; depends=[car diptest ggplot2 ggrepel gridExtra kableExtra knitr lavaan lme4 multcompView pander plyr psych pwr rmdpartials ufs viridis]; };
   rosetteApi = derive2 { name="rosetteApi"; version="1.14.4"; sha256="166p3dvib0xpvhkb92b3imassv1b9mrblz2m05jai2nzlz0q7hzk"; depends=[httr jsonlite]; };
   rosm = derive2 { name="rosm"; version="0.2.5"; sha256="10n3yzhk29i3mzbcg6nkjqgvwc9n53ax0d7imn9l4a9msa06as07"; depends=[abind curl jpeg plyr png prettymapr rgdal rjson sp]; };
   rospca = derive2 { name="rospca"; version="1.0.4"; sha256="1pxm34xsc2610n0i6dwcm4rhn016yqb03f8vrm93r7285c04n4q7"; depends=[elasticnet mrfDepth mvtnorm pcaPP pracma robustbase rrcov rrcovHD]; };
   rotasym = derive2 { name="rotasym"; version="1.1.3"; sha256="1sknhvwmy1r0sa76lp8qv5h7lx05mvw04ip7cvxcamwg6l2bifis"; depends=[Rcpp RcppArmadillo]; };
   rotationForest = derive2 { name="rotationForest"; version="0.1.3"; sha256="1z2wk3mcs5hrahsxralidbc0dd8gxdbwjpr2f71g4g3isfx1ic8d"; depends=[rpart]; };
-  rotations = derive2 { name="rotations"; version="1.6.2"; sha256="1r42lgy4f6mblz29hvy7s166yk2s4k8x03snh7yy97g7falmh718"; depends=[ggplot2 gridExtra Rcpp RcppArmadillo sphereplot]; };
+  rotations = derive2 { name="rotations"; version="1.6.3"; sha256="075nr8wajvb40w9zbi9gaqhhjylj3s81p0mdncjw2zw8hyv4f476"; depends=[ggplot2 gridExtra Rcpp RcppArmadillo sphereplot]; };
   rotl = derive2 { name="rotl"; version="3.0.11"; sha256="0b0wr795qicb8k1m4ng0kx9alc88davhdr3kar4ynjblaavz16rk"; depends=[ape assertthat httr jsonlite rentrez rncl]; };
   rotor = derive2 { name="rotor"; version="0.3.5"; sha256="0rpa24yh72r6sv5xxyia9p8f8c51cfblprb4srrjk2y0fgz5h33i"; depends=[dint R6]; };
   round = derive2 { name="round"; version="0.20-0"; sha256="1c403i57fwfh3pz6ksg5ws2fydq8zf2fk4x6r9d0xqn0fs7px7j4"; depends=[]; };
@@ -15414,6 +15526,7 @@ in with self; {
   rpsychi = derive2 { name="rpsychi"; version="0.8"; sha256="1h40kbqvvwwjkz5hrclj6j22zhav3yyfbbhqahs1whwjkksnam4w"; depends=[gtools]; };
   rptR = derive2 { name="rptR"; version="0.9.22"; sha256="0vvjc6qiq71d5wckl77z606q1fp43mgrfzp1bxcab96n5whb2r9k"; depends=[lme4 pbapply]; };
   rpubs = derive2 { name="rpubs"; version="0.2.2"; sha256="18cnzhcvm7gx4k01ysqay53smrf8xqlbaszq41mny5c7qqh1fvpz"; depends=[rvest xml2]; };
+  rpymat = derive2 { name="rpymat"; version="0.1.1"; sha256="067czg4wkpkgrrw78j9r62i1b82bzfsxgx4mdgab2wq2szdij6rn"; depends=[fastmap rappdirs reticulate]; };
   rqPen = derive2 { name="rqPen"; version="2.2.2"; sha256="077kdvfdyp5h8630k8jigbz8mfyby8vkjiqxpqv0wfi6cqcjlaf2"; depends=[quantreg regpro]; };
   rqdatatable = derive2 { name="rqdatatable"; version="1.3.0"; sha256="0q10fi6xvw7495yrv6y8zzda31xyl6nbinq0dn2brfjp66w864k7"; depends=[data_table rquery wrapr]; };
   rquery = derive2 { name="rquery"; version="1.4.7"; sha256="0m57y5wfg1mvla4d6a8mnxnhz973k1nvz899rbxnxaqfa7azxp62"; depends=[wrapr]; };
@@ -15430,7 +15543,7 @@ in with self; {
   rrecsys = derive2 { name="rrecsys"; version="0.9.7.3.1"; sha256="1qnjriv1xq4gjjhzz8jxrbk88mw5xddl2l2i4bmfhnxhi51d2rk3"; depends=[ggplot2 knitr MASS Rcpp registry]; };
   rredis = derive2 { name="rredis"; version="1.7.0"; sha256="0wzamwpmx20did8xj8x9dllri2ps83viyqjic18ari7i4h1bpixv"; depends=[]; };
   rredlist = derive2 { name="rredlist"; version="0.7.0"; sha256="1w77cnfrybmqnadsmfkpjv5m49kkr7yc6kcqq165lmj3bijnprnj"; depends=[crul jsonlite]; };
-  rrefine = derive2 { name="rrefine"; version="1.1.2"; sha256="19k9njv3x6bg2yrh3zk842nmrjaawma4xyprxkqvb6qi38q890lx"; depends=[httr readr]; };
+  rrefine = derive2 { name="rrefine"; version="2.0.0"; sha256="1plv6ykhcpp8d111gkkh8zx9zjrkxqpvg6vcbcy2234yd6wd0wky"; depends=[httr jsonlite readr]; };
   rreg = derive2 { name="rreg"; version="0.2.1"; sha256="05c2yj58zn43zkmqp4iyblsixsq76hsjkchffl5rkqynvgxi0qzi"; depends=[directlabels ggplot2]; };
   rrepast = derive2 { name="rrepast"; version="0.8.0"; sha256="1x8xda9cndxri2hhd2ihxmjjy0x74r0dh3953dfh7gvj4slaf0rl"; depends=[digest doSNOW foreach ggplot2 gridExtra lhs rJava sensitivity xlsx]; };
   rres = derive2 { name="rres"; version="1.1"; sha256="138m26ya119805b1akwski0hf1ypiqsqjlkrm9p0l2x22zrv1n60"; depends=[kernlab Rcpp]; };
@@ -15443,13 +15556,13 @@ in with self; {
   rrtable = derive2 { name="rrtable"; version="0.2.1"; sha256="1hblrxn7vixcp32j3cij0xrkzvk31agi9dqgxrimcrzs7gjcd1j5"; depends=[devEMF editData flextable ggplot2 ggpubr magrittr moonBook officer purrr readr rlang rmarkdown rvg shiny shinyWidgets stringr ztable]; };
   rrum = derive2 { name="rrum"; version="0.2.0"; sha256="0w0f2n14if2b8x7n6v8y8q2vghd8j7xm1xhpxnvy3z50flinwgm7"; depends=[Rcpp RcppArmadillo rgen simcdm]; };
   rsae = derive2 { name="rsae"; version="0.1-5"; sha256="1f3ry3jwa6vg2vq2npx2pzzvfwadz8m48hjrqjk860nfjrymwgx5"; depends=[]; };
-  rsample = derive2 { name="rsample"; version="0.1.0"; sha256="00w8r0p499fm8cyw297gznr83mbgy9a3znzpbgj0zq9dry1a266b"; depends=[dplyr ellipsis furrr generics lifecycle purrr rlang slider tibble tidyr tidyselect vctrs]; };
+  rsample = derive2 { name="rsample"; version="0.1.1"; sha256="01xwhj4zfvxbv9cjb6mbz3aphxqc3cnjjx1xy2yx2wd94fbka42z"; depends=[dplyr ellipsis furrr generics lifecycle purrr rlang slider tibble tidyr tidyselect vctrs]; };
   rsatscan = derive2 { name="rsatscan"; version="0.3.9200"; sha256="00vgby24jknq8nl7rnqcwg7gawcxhwq8b7m98vjx2hkqx39n4g21"; depends=[foreign]; };
   rsbp = derive2 { name="rsbp"; version="0.1.0"; sha256="0aardngvj9apn8q5vhfpv67rf7d5iqb7xdq7rh8xmgr8341fvbgc"; depends=[dplyr lubridate magrittr purrr reshape2 tibble tidyr xml2]; };
   rscala = derive2 { name="rscala"; version="3.2.19"; sha256="1wq0wrdbh0gi0bx4m9526qlbjm7nxxqgc17ikdx5mrhcy2f61hjk"; depends=[]; };
-  rscc = derive2 { name="rscc"; version="0.1.0"; sha256="1l5dwlwkfww97nwwdlcqla9cbsip8p3wqdi0a5z14ngznkzy3n4k"; depends=[crayon formatR highlight igraph]; };
+  rscc = derive2 { name="rscc"; version="0.2.0"; sha256="0k1p0w90p2qyjhwfgh35ya02hxqm12h3fkyc6wfxbsxiklkw61vz"; depends=[crayon formatR highlight igraph tm]; };
   rscimark = derive2 { name="rscimark"; version="1.0"; sha256="1jsjz4d5bnxb90qqzz42m4nyvm8d8w8bs0m1r5g2n78zmckqb8vy"; depends=[checkmate]; };
-  rsconnect = derive2 { name="rsconnect"; version="0.8.24"; sha256="19p4w9dmhsl1vdvwv3hfmd5qzf4296g0x878idfajvrx0wgfysyg"; depends=[curl digest jsonlite openssl packrat rstudioapi yaml]; };
+  rsconnect = derive2 { name="rsconnect"; version="0.8.25"; sha256="1kyr4v7vds2yw3xmkk2yr56ylz1h95944brylwvwmwj5yxvm419w"; depends=[curl digest jsonlite openssl packrat rstudioapi yaml]; };
   rscontract = derive2 { name="rscontract"; version="0.1.2"; sha256="0gn0xcvg9nj6m97g4si6bgmgaj6hxpicz8yig7n84jnczh6w510x"; depends=[]; };
   rscopus = derive2 { name="rscopus"; version="0.6.6"; sha256="0kl6rv0j2396b8izvy0lp1f588il6w3yhq6d4swv8x8z14rsgcpw"; depends=[dplyr glue httr jsonlite plyr tidyr]; };
   rscorecard = derive2 { name="rscorecard"; version="0.20.0"; sha256="0psh53r8hvyvg7n20p7dl2qnd5gznx1lfkxqrc05kfksl4zvrrm5"; depends=[dplyr httr jsonlite lazyeval magrittr purrr tidyr tidyselect]; };
@@ -15462,9 +15575,9 @@ in with self; {
   rsimsum = derive2 { name="rsimsum"; version="0.11.0"; sha256="0zmwnhvg55dd7234ffxs08gjhjkww214xxqad0byi7aqnkn7x56a"; depends=[checkmate generics ggplot2 ggridges knitr lifecycle rlang scales]; };
   rsinaica = derive2 { name="rsinaica"; version="0.6.1"; sha256="1ba19b2fgnnl50qp6hgjppgxbadghq68qap9f0m51k2k3ijgfiwn"; depends=[dplyr httr jsonlite lubridate stringr]; };
   rskey = derive2 { name="rskey"; version="0.4.4"; sha256="1la3apypp1kk425r753vqwm3nk9zmynp9gix6db0ckkssw0fjxpw"; depends=[berryFunctions rstudioapi]; };
-  rsleep = derive2 { name="rsleep"; version="1.0.3"; sha256="11r32xxqdi0cvx67x8yrb4c36c73mgdy18sayg18cnsqb9qhxvyz"; depends=[edfReader ggplot2 jsonlite phonTools psd signal]; };
+  rsleep = derive2 { name="rsleep"; version="1.0.4"; sha256="0rb9dpy1ks04mqb0aismkj0zg9sigyrbgb6j0rl9cw2npp0jz7vg"; depends=[edfReader ggplot2 jsonlite phonTools psd signal]; };
   rslp = derive2 { name="rslp"; version="0.2.0"; sha256="186k1gngirqhvhii4ysq77wjf5gf75c7gya73minb0pfg9fn16l7"; depends=[magrittr plyr stringi stringr tokenizers]; };
-  rslurm = derive2 { name="rslurm"; version="0.6.0"; sha256="0fn2na8prsaxa03x5wi3105gpsxc35qvgmik7wy3nylvx4wdfv9g"; depends=[whisker]; };
+  rslurm = derive2 { name="rslurm"; version="0.6.1"; sha256="19451icfh7snjbbmpzpr1hrdf52q8ijv0ag1di3y55r2la3jxxcf"; depends=[whisker]; };
   rsm = derive2 { name="rsm"; version="2.10.3"; sha256="1dcjsn3wa7rqdpixh37vjgk3z5siwlyn70qffp49m3awn258hwpg"; depends=[estimability]; };
   rsmatrix = derive2 { name="rsmatrix"; version="0.2.0"; sha256="0d3y0ihz32jhqmzlgh7lqw4c122dbai2ic56qkalg63ckfswpzrw"; depends=[Matrix]; };
   rsnps = derive2 { name="rsnps"; version="0.4.0"; sha256="0ppv64yj1nh13q4lks6djrjc37b32qj5pyddy1lfcy066ah63km6"; depends=[crul data_table httr jsonlite plyr RJSONIO stringr]; };
@@ -15488,10 +15601,10 @@ in with self; {
   rstatix = derive2 { name="rstatix"; version="0.7.0"; sha256="0330y8iziffqg8j9j5h9zv4qcdyf8ybhmzxrr9fzq9nc6bf1gbm5"; depends=[broom car corrplot dplyr generics magrittr purrr rlang tibble tidyr tidyselect]; };
   rstatscn = derive2 { name="rstatscn"; version="1.1.3"; sha256="07w7ixq1faq7mif2ksxcgl8n6ali9h0wx0nb2yz4kbdgvz68r7b9"; depends=[httr jsonlite]; };
   rstiefel = derive2 { name="rstiefel"; version="1.0.1"; sha256="063nj6k2qzc5wd1dk6m6ld16sk2vlfa8ic86gc4qkqsla8l82fgg"; depends=[]; };
-  rstoat = derive2 { name="rstoat"; version="1.0.1"; sha256="10ksslz675dgpd8ri4d6ranpabl9940g127i7sbhvccdgvz2j44i"; depends=[curl httr jsonlite keyring]; };
+  rstoat = derive2 { name="rstoat"; version="1.0.2"; sha256="0npwv33a7axwhnfyz39nh0x5kk4q3chscings3msx532lzvif0cl"; depends=[curl httr jsonlite keyring]; };
   rstpm2 = derive2 { name="rstpm2"; version="1.5.2"; sha256="0c6l3z250b2kn6mh2xyb0bd2y5nsbj11n9xfi51dac9s8xq3v7m4"; depends=[bbmle BH deSolve fastGHQuad mgcv Rcpp RcppArmadillo survival]; };
   rstream = derive2 { name="rstream"; version="1.3.6"; sha256="1mr869hff5wdpw6a7x71366y8dxf9vljbb11fssfkhcf7hm2ipnj"; depends=[]; };
-  rstudio_prefs = derive2 { name="rstudio.prefs"; version="0.1.7"; sha256="1b93hakw5wn8fp99zp22rm8yd27m1884ig1xx5bbcifgxanvic57"; depends=[cli dplyr fs jsonlite purrr rappdirs rlang rstudioapi rvest tibble]; };
+  rstudio_prefs = derive2 { name="rstudio.prefs"; version="0.1.8"; sha256="1mb87qf53h46n6fvyskr17v36lfqq59vi21lcf7j6mg2sz5nnyq5"; depends=[cli dplyr fs jsonlite purrr rappdirs rlang rstudioapi rvest tibble]; };
   rstudioapi = derive2 { name="rstudioapi"; version="0.13"; sha256="12vdfzzjc6mv4h105l8cp108j3hjk0mqmg23m6mqr3jarfymphxa"; depends=[]; };
   rsubgroup = derive2 { name="rsubgroup"; version="1.1"; sha256="16glxyv6aja7j0vfjccfi8w84wzm2ajfl62l0g5vpl73j7cs6gnk"; depends=[foreign rJava]; };
   rsurface = derive2 { name="rsurface"; version="1.1.0"; sha256="1pymbgvr72nqd66wap5wrcizzx2k9bfr6vkxv6dkvjmi8q7jl2gv"; depends=[plotly rsm]; };
@@ -15513,6 +15626,7 @@ in with self; {
   rtern = derive2 { name="rtern"; version="0.1.1"; sha256="00yhsns89jynh2gpgwwklkf0pbwcriha76ff3sh7pb5n6hl5nr1c"; depends=[lifecycle]; };
   rtext = derive2 { name="rtext"; version="0.1.22"; sha256="0wsy0iqzbfin92pw0bqj4bxm2p4f2y4frr137l6c3yvd0jrax3q4"; depends=[digest hellno magrittr R6 Rcpp RSQLite stringb]; };
   rtf = derive2 { name="rtf"; version="0.4-14.1"; sha256="032ff0yavqmd2d9svgwkmvxwh0cxjbac6pj48v4cshi898f02rhh"; depends=[R_methodsS3 R_oo]; };
+  rtgstat = derive2 { name="rtgstat"; version="0.1.1"; sha256="0nbw9swwd7a5cfdjkixlgv0irc9l9qg1jlrkixkldb2dk35330nx"; depends=[cli dplyr httr2 purrr retry snakecase stringr tidyr]; };
   rticles = derive2 { name="rticles"; version="0.21"; sha256="0xk0xz97k8r8srmniihn3y4dkxddxf97yjbsljcxlgcq8f0zcc2s"; depends=[knitr rmarkdown tinytex xfun yaml]; };
   rticulate = derive2 { name="rticulate"; version="1.7.2"; sha256="0xgl36m63z9kzqj0srjp3lb65hfizszlgw0kwjwc9li607q4fy6m"; depends=[dplyr ggplot2 glue magrittr mgcv purrr readr rlang stringr tibble tidymv tidyr tidyselect tidyverse]; };
   rtide = derive2 { name="rtide"; version="0.0.9"; sha256="0gr0j52jy7y1w1s0s88rjv9l85yvavypagmi0qw2ix9ca2xadlzl"; depends=[abind chk dttr2 tibble]; };
@@ -15545,9 +15659,10 @@ in with self; {
   ruler = derive2 { name="ruler"; version="0.2.4"; sha256="159k7453jb37zgjg9rcgz566mz2827dpfq5gm40r6zgkia4z3apx"; depends=[dplyr keyholder magrittr rlang tibble tidyr]; };
   rules = derive2 { name="rules"; version="0.1.2"; sha256="1mmwlrybkv2xq49rwfv2d60wzl6hiq9jdyy9blw24vlvbyp0c42p"; depends=[dials dplyr generics modeldata parsnip purrr rlang stringr tibble tidyr]; };
   rumidas = derive2 { name="rumidas"; version="0.1.1"; sha256="1hnkjj689kn7sx5gvjrh1x3n5pickb9d0adb5n0grjq4j5ympbns"; depends=[highfrequency lubridate maxLik Rdpack roll tseries xts zoo]; };
+  runcharter = derive2 { name="runcharter"; version="0.2.0"; sha256="0n4jkgvlbpafjks22fjackazp246c7skphirjsrzkrg169qwdin0"; depends=[data_table ggplot2 magrittr zoo]; };
   runes = derive2 { name="runes"; version="0.1.0"; sha256="1s2vhwya434q70j4aq4qbds8wivscc5cyldr5pch7p41nqj0j7aw"; depends=[]; };
   runexp = derive2 { name="runexp"; version="0.2.1"; sha256="0pcxwz0kpfrcsfalwlcwp81k3dyc9rqm9rba25xkp51bwz5scv64"; depends=[doParallel foreach]; };
-  runjags = derive2 { name="runjags"; version="2.2.0-2"; sha256="16h3ym5r2002kjzxa3q4k8yczpmfckdzcaa4wvmikbvgsf1yppz5"; depends=[coda lattice]; };
+  runjags = derive2 { name="runjags"; version="2.2.0-3"; sha256="0a5m1nlyrph22s0crmajacy4n4fw9j0bmg1srkgfrygcryqc07qv"; depends=[coda lattice]; };
   runner = derive2 { name="runner"; version="0.4.1"; sha256="1iic84ab6gbikc2qfqhdg5i48i8hldz59l0k4466n8v6ha2k7hxi"; depends=[Rcpp]; };
   runonce = derive2 { name="runonce"; version="0.2.3"; sha256="04lmzw9ldc3b6zdc7sr3mrfiam24372j11l5p1y9i2zjb9rxk1nn"; depends=[bigassertr urltools]; };
   runstats = derive2 { name="runstats"; version="1.1.0"; sha256="0n9348af60j8a2mwgbafabspb4nm45ry92zlzmynja06zyx8lb2d"; depends=[fftwtools]; };
@@ -15618,6 +15733,7 @@ in with self; {
   sadists = derive2 { name="sadists"; version="0.2.4"; sha256="00iqgwqfia4mybg4v66kb368gydr103zmr8ka9y4j8rmwkg5j9kq"; depends=[hypergeo orthopolynom PDQutils]; };
   sads = derive2 { name="sads"; version="0.4.2"; sha256="1j6vdjvpnbqp4kwbvhcl8p51ln29mmk9n150718wsqlifb8d1lw9"; depends=[bbmle GUILDS MASS poilog VGAM]; };
   sae = derive2 { name="sae"; version="1.3"; sha256="1ncrlzgnga9pfa2j8x1y6axl2665rp08aff98zrim6gq6n6yap8z"; depends=[lme4 MASS]; };
+  saeHB = derive2 { name="saeHB"; version="0.1.0"; sha256="1ny22mbf22zlpzl9kh8gxkldi49slw584nvwwi94rvs1wa8j9b8x"; depends=[coda rjags stringr]; };
   saeME = derive2 { name="saeME"; version="1.2.4"; sha256="02yf5rf2kavwl3icfnsjg0kxmifrcc7v4j5jsfrfa8ssfbwcivhn"; depends=[ClusterR dplyr expm MASS]; };
   saeRobust = derive2 { name="saeRobust"; version="0.2.0"; sha256="1bdfrsm59xwkga0kxl3r5n83mhhkyzj7gplrgx26gyflashyd1zc"; depends=[aoos assertthat ggplot2 magrittr MASS Matrix memoise modules pbapply Rcpp RcppArmadillo spdep]; };
   saeSim = derive2 { name="saeSim"; version="0.10.0"; sha256="0nh8x2v0g8i0rjq4s5q0ayhyxhl5p0126plmd4vnnhaifm6pn0q3"; depends=[dplyr functional ggplot2 MASS parallelMap spdep]; };
@@ -15626,7 +15742,6 @@ in with self; {
   saemix = derive2 { name="saemix"; version="2.4"; sha256="0w79n28xvkf2iw0vm9bw5dhxlp54bzm1lwl7q2hw356c2gmbpwjh"; depends=[]; };
   saery = derive2 { name="saery"; version="1.0"; sha256="09x1v627llqbpiwkh1wr0z7gsndfdrjzag2hprhq1adbzh05k47z"; depends=[]; };
   safeBinaryRegression = derive2 { name="safeBinaryRegression"; version="0.1-3"; sha256="1g68r6pp5l41rbgyfqgcha1gpsisnl0ybdmdqr4ylr43f61dpgvd"; depends=[lpSolveAPI]; };
-  safedata = derive2 { name="safedata"; version="1.0.9"; sha256="0xcpgh4898rqdnnxx21vyxc8aqlwg26aywr591sllasrv1jzsmrc"; depends=[chron curl igraph jsonlite readxl sf]; };
   safejoin = derive2 { name="safejoin"; version="0.1.0"; sha256="0qvra505g7cay3nhq6yqrddb7sw3kx50y8jhgvxi47rxdc3alzba"; depends=[dplyr glue]; };
   safer = derive2 { name="safer"; version="0.2.1"; sha256="1lmhaj9y0hi4ybxfkllxl99vsagcg73sy4kkcmlvn3bs69jky1r9"; depends=[assertthat base64enc sodium]; };
   safetyCharts = derive2 { name="safetyCharts"; version="0.2.0"; sha256="1gdrl7wmxlvnk8wghrjv3cnvdsmx79f1s0j51yb4q94dxprssajh"; depends=[dplyr DT forcats ggplot2 huxtable kableExtra knitr pharmaRTF RColorBrewer rlang shiny stringr Tendril Tplyr]; };
@@ -15660,6 +15775,7 @@ in with self; {
   sams = derive2 { name="sams"; version="0.4.2"; sha256="0k67vdjwnp7ljll87vjqb80axbcfgm05rgw5vadzn67dgghkqd0j"; depends=[]; };
   samurais = derive2 { name="samurais"; version="0.1.0"; sha256="0s00hd3ax4r662n8iqmd9i56sgyjxbgc59la7qvh3jwcnzcvmgz9"; depends=[MASS Rcpp RcppArmadillo]; };
   sand = derive2 { name="sand"; version="2.0.0"; sha256="0a8skj1wi1n9zlm7jb5cix1i4ssdzfpj4ym2854ala9jy6qj7g7n"; depends=[igraph igraphdata]; };
+  sandbox = derive2 { name="sandbox"; version="0.2.0"; sha256="1xwz8bddl9zf75d5xxvyvnljm6x45dwsf7lsks0fw7h5h97cv3xq"; depends=[RLumModel]; };
   sandwich = derive2 { name="sandwich"; version="3.0-1"; sha256="12aa5083k3sfrfq1jy3l94wffss9h0rga8j71jy3n8pkhiq4nn7n"; depends=[zoo]; };
   sanic = derive2 { name="sanic"; version="0.0.1"; sha256="05fd7jpi7cf9klfh6dqf8wklrjh5q1b3xqddxhdihcsqvcqhg48l"; depends=[Matrix Rcpp RcppEigen]; };
   sanitizers = derive2 { name="sanitizers"; version="0.1.0"; sha256="1c1831fnv1nzpq8nw9krgf9fm8v54w0gvcn4443b6jghnnbhn2n6"; depends=[]; };
@@ -15668,25 +15784,24 @@ in with self; {
   sankeywheel = derive2 { name="sankeywheel"; version="0.1.0"; sha256="1sigj4jz13qj4s8vxk0dl2xsddqgyfxabj8yggkasawm7pryvbyy"; depends=[htmlwidgets]; };
   sanon = derive2 { name="sanon"; version="1.6"; sha256="0h3l1dzgkddvb3vzg7pcgwrgidphy73jys2h49v84nbfvqr6l85z"; depends=[]; };
   santaR = derive2 { name="santaR"; version="1.0"; sha256="10g4z951mpxw9d21s5f6zwfch5xs9vx812fb0wyrbw9s8drmlbkh"; depends=[doParallel foreach ggplot2 gridExtra iterators pcaMethods plyr reshape2 shiny shinythemes]; };
-  santoku = derive2 { name="santoku"; version="0.5.0"; sha256="1l69jnlzcjkwr8wqmgf40nkf48a58m50c6cwn8sh0vd71bmi75qm"; depends=[assertthat lifecycle Rcpp vctrs]; };
+  santoku = derive2 { name="santoku"; version="0.6.0"; sha256="1kwyc9c8fhfxr6kh9wkrw1ywqx5hjrp0dfvl97qzcly0g28432fs"; depends=[assertthat lifecycle Rcpp vctrs]; };
   sanzo = derive2 { name="sanzo"; version="0.1.0"; sha256="1fqsx2mgjsy6vjvsp2avi2i5cw7cjs2p53l1z6hb3bzid3067s87"; depends=[]; };
   saotd = derive2 { name="saotd"; version="0.3.0"; sha256="11ql731w3rc4spmd2ii52r49sxymxkf7wj2ngdvb8pcs4idar059"; depends=[dplyr ggplot2 ggraph igraph ldatuning lubridate magrittr reshape2 rtweet scales stringr tidyr tidytext topicmodels widyr]; };
   sapa = derive2 { name="sapa"; version="2.0-3"; sha256="0kj681rd4c2lvqr926lb6f4qwp281x5274dg6vbk8pf5y7s0qlpc"; depends=[ifultools splus2R]; };
   sapevom = derive2 { name="sapevom"; version="0.2.0"; sha256="0vq4rx85pdjc0wjxjf7wj8j5qs3cb20hwhlc2ypbgrlw7zkcp1z4"; depends=[]; };
-  sapfluxnetr = derive2 { name="sapfluxnetr"; version="0.1.2"; sha256="073sdsq9a4dijmya3pcckb45wr1axraymwragwpmvbsb4rfw9zi7"; depends=[assertthat dplyr furrr ggplot2 glue lubridate magrittr purrr rlang stringr tibble tidyr]; };
+  sapfluxnetr = derive2 { name="sapfluxnetr"; version="0.1.3"; sha256="06w3wm8m55ak1zxdyqq01ymgvyw71hk2m1vv378dppjxib7kvh3z"; depends=[assertthat dplyr furrr ggplot2 glue lubridate magrittr purrr rlang stringr tibble tidyr]; };
   saqgetr = derive2 { name="saqgetr"; version="0.2.21"; sha256="0s7mmc8gqx89697wkv369x6sp3d1wha4q2zkkwikh835i3alx4zd"; depends=[dplyr httr lubridate magrittr purrr readr stringr tidyr]; };
-  sara4r = derive2 { name="sara4r"; version="0.0.8"; sha256="0b8ir25f0348pd2ckwzv1pyz3iz98zy09baih3rkgxxn8hjdnxj7"; depends=[raster rgdal RGtk2 sp]; };
   sarima = derive2 { name="sarima"; version="0.8.5"; sha256="1850h8rly6kx8lsnpyh16nw69jhmgh5ggp9c8knqz2bm64s7xlwa"; depends=[dplyr FitAR FitARMA FKF Formula KFAS lagged ltsa numDeriv PolynomF Rcpp RcppArmadillo Rdpack]; };
   sarp_snowprofile = derive2 { name="sarp.snowprofile"; version="1.0.0"; sha256="02g7d5kilfkhqxm02jkhkraqbamxaj1qzzi150k6m55d5bfy4wih"; depends=[data_table xml2]; };
   sarp_snowprofile_alignment = derive2 { name="sarp.snowprofile.alignment"; version="1.0.2"; sha256="1yh4ybnscjzps28ncqd46xzv88fjcn4bhcx6rwz8kl1m253c4wpl"; depends=[dtw sarp_snowprofile shiny]; };
   sars = derive2 { name="sars"; version="1.3.5"; sha256="07jaagf3q8x4iwjh1avy5vzv9y62ipnjd43acbw0hizh983qlq3r"; depends=[AICcmodavg cli crayon doParallel foreach nortest numDeriv]; };
   sarsop = derive2 { name="sarsop"; version="0.6.9"; sha256="1rjpgicgy9vfi9q2vldrbbakybmazal5gh79p2kysnzhcr76v3z5"; depends=[BH digest Matrix processx xml2]; };
   sas7bdat = derive2 { name="sas7bdat"; version="0.5"; sha256="0qxlapb6wdhzpwlmzlhscy3av7va3h6gkzsppn4sx5q960310an3"; depends=[]; };
-  sasLM = derive2 { name="sasLM"; version="0.6.3"; sha256="0p4k9mkdwm3zb647gsxra6vfpjnch57yckihbgrlaw3295g9s637"; depends=[mvtnorm]; };
+  sasLM = derive2 { name="sasLM"; version="0.6.4"; sha256="0rqw8phpmv3ij9rz9jl2n0j1mfklh27acijnqqlw2f65qrilqapd"; depends=[mvtnorm]; };
   sasMap = derive2 { name="sasMap"; version="1.0.0"; sha256="11vhhxhakqm1gsb3p4s4966sapmrqfyw79zfppbx5lnqi3xr0ngn"; depends=[readr stringi stringr]; };
   sasfunclust = derive2 { name="sasfunclust"; version="1.0.0"; sha256="1ba7g3rxyq5h806na6bsdvh6mw6hydgcf3740qkfd4d5fx7m0mq4"; depends=[fda MASS Matrix matrixcalc mclust Rcpp RcppArmadillo]; };
   sass = derive2 { name="sass"; version="0.4.0"; sha256="0axw358bbk3vxsqg3wq0bz3xigasa6af8fxvi2ga8hli4cawl1kx"; depends=[fs htmltools R6 rappdirs rlang]; };
-  sassy = derive2 { name="sassy"; version="1.0.5"; sha256="0f723qnj37vz2nzxkcjq735zs6bj1ks65ivzwr38qy3h0372gmq3"; depends=[fmtr libr logr reporter]; };
+  sassy = derive2 { name="sassy"; version="1.0.6"; sha256="1nad1czbd508a0v4mgh5m0na39qv2jzrlzjb008w8q5c08hyp0sd"; depends=[fmtr libr logr reporter]; };
   sate = derive2 { name="sate"; version="1.1.0"; sha256="0d1b0gp5abh5g7a25ff40xdnncrl2afjnlcc56dbhqkk43gjah17"; depends=[MASS]; };
   satellite = derive2 { name="satellite"; version="1.0.4"; sha256="0z6wh0nmzxgizd8rzafkq8hkxx9s8lkaqins68697284lxvrbrwr"; depends=[plyr raster Rcpp terra]; };
   satin = derive2 { name="satin"; version="1.0"; sha256="0ing5vhw8akrpy703fcwn5p0gadfabqb3abc9ircpgb6y2k5axzk"; depends=[geosphere lubridate maps maptools ncdf4 PBSmapping sp splancs]; };
@@ -15694,6 +15809,7 @@ in with self; {
   saturnin = derive2 { name="saturnin"; version="1.1.1"; sha256="0cjp4h1s9ivn17v8ar48mxflaj9vgv92c8p9l2k5bc9yqx9mcs36"; depends=[Rcpp RcppEigen]; };
   saves = derive2 { name="saves"; version="0.5"; sha256="1b4mfi2851bwcp0frx079h5yl6y1bhc2s8ziigmr8kwy1y1cxw10"; depends=[]; };
   savonliquide = derive2 { name="savonliquide"; version="0.2.0"; sha256="1f1s2pzvpqrcb68fqk4ivpimwsphnjjx3b42jivw63y7q7ak4azh"; depends=[crayon glue htmltools httr]; };
+  sawnuti = derive2 { name="sawnuti"; version="0.1.0"; sha256="18mgpd9y54awxml5mz4bvwazy3iqnpwghr18hkv76iafi72d55az"; depends=[]; };
   saws = derive2 { name="saws"; version="0.9-6.2"; sha256="1ikvky45inz65djv1c9v749a5lq4m0xlzhm4p12am25qyv08hgjz"; depends=[gee]; };
   sazedR = derive2 { name="sazedR"; version="2.0.2"; sha256="0v8ap9ivwj5h4w2iwhww16v1jm6jpkkphvkh5vq06mv1a72p0inz"; depends=[bspec dplyr fftwtools pracma zoo]; };
   sbfc = derive2 { name="sbfc"; version="1.0.2"; sha256="1bwwy4yw8wfvmisiqwswd78dy4bjgmhcv0aki1x2sslzazmdy23y"; depends=[DiagrammeR discretization Matrix Rcpp RcppArmadillo]; };
@@ -15712,6 +15828,7 @@ in with self; {
   scDIFtest = derive2 { name="scDIFtest"; version="0.1.1"; sha256="1hq68g7zf7372cach2qfc7l1l8gh5aqkp66k0cxjnrhmvvb1qcax"; depends=[mirt sandwich strucchange zoo]; };
   scDiffCom = derive2 { name="scDiffCom"; version="0.1.0"; sha256="1xgrsfrh06n8hzyqv3j99kjk6l85khg099vjdsf7kx9f5p92iixd"; depends=[data_table DelayedArray future future_apply magrittr Seurat]; };
   scINSIGHT = derive2 { name="scINSIGHT"; version="0.1.1"; sha256="1a02013l648bz1h3nhflm1j0kdy48vg3y0x4gzjnhz1ihvnjngwl"; depends=[igraph RANN Rcpp RcppArmadillo stringr]; };
+  scITD = derive2 { name="scITD"; version="1.0.0"; sha256="0mar8m3qvrvn6cx8nq5dvrc3im27scz1rhpydyx043vmv5yxmldz"; depends=[circlize ComplexHeatmap dplyr edgeR fgsea ggplot2 ggpubr ica Matrix mgcv msigdbr NMF RColorBrewer Rcpp RcppArmadillo RcppProgress reshape2 Rmisc rTensor sccore sva]; };
   scLink = derive2 { name="scLink"; version="1.0.1"; sha256="0gcwx8kfik1lv949r9d9rqqnvrfkr4bj5cj2i9h1r7l1b76kna74"; depends=[glasso]; };
   scMappR = derive2 { name="scMappR"; version="1.0.7"; sha256="08ifrdmr4ws4z6aq75j84sain8q55ax6h1gzqqnphyw593yh9918"; depends=[ADAPTS downloader ggplot2 gProfileR gprofiler2 GSVA limSolve pbapply pcaMethods pheatmap reshape Seurat]; };
   scModels = derive2 { name="scModels"; version="1.0.2"; sha256="02nn8nv77fgmskx5zsa34ij9lzq9jiv8w2vmw5863v55khzvfs53"; depends=[gamlss_dist Rcpp]; };
@@ -15746,13 +15863,14 @@ in with self; {
   scdensity = derive2 { name="scdensity"; version="1.0.2"; sha256="173xm3bf8vxl30zk4n451al7m003byg9q4d1l1pfyfa4xnv8qdg9"; depends=[lpSolve quadprog]; };
   scdhlm = derive2 { name="scdhlm"; version="0.5.2"; sha256="147kqr65gxy44nj9rj4jbw590pbqspli4dpkgdq4hj9x1daww2ql"; depends=[lmeInfo nlme readxl]; };
   scenario = derive2 { name="scenario"; version="1.0"; sha256="0v1b00kiny21yx4qkk2x51cy1zqibdnd68z76qia7h5py28yhxsi"; depends=[]; };
-  scgwr = derive2 { name="scgwr"; version="0.1.2-1"; sha256="1dv6lsdpv6gdgjkww3ljqqkwdy9ir82dzwiqrclbfp9vlzay4ybf"; depends=[dplyr FNN optimParallel spData]; };
+  scgwr = derive2 { name="scgwr"; version="0.1.2-21"; sha256="15pwasxkwirr2wwf8w02cy8zx0bqavzyfixjz3m37c1llrhddpka"; depends=[dplyr FNN optimParallel sp spData]; };
   schemr = derive2 { name="schemr"; version="0.1.0"; sha256="0w29la0mh5bvij52r8jgfl47cgm0xc53702ms5r4jv0pdd49qlg8"; depends=[apcluster dplyr ggplot2 magrittr OpenImageR purrr stringr]; };
   schoRsch = derive2 { name="schoRsch"; version="1.9.1"; sha256="0f823z48s50jhcphqqivchrmkiwqg25nc01c17kjpzzryd2fi5zs"; depends=[]; };
   schoenberg = derive2 { name="schoenberg"; version="2.0.2"; sha256="17pbw9266r9lv9blygmvq9285kcrcy07jaqrj3zfa2pg0zyvhjvm"; depends=[crayon]; };
   scholar = derive2 { name="scholar"; version="0.2.2"; sha256="1irigcws62sz1ai3ci80cdgwgisnra8kylqb2hxx3h62ddlpzhg7"; depends=[dplyr ggplot2 ggraph httr R_cache rvest stringr tidygraph xml2]; };
   schoolmath = derive2 { name="schoolmath"; version="0.4"; sha256="06gcmm294d0bs5whvknrq48sk7li961lzy4bcncjg052zbbpn67x"; depends=[]; };
   schrute = derive2 { name="schrute"; version="0.2.2"; sha256="1j1bb7inhxq355kvqmp45zgxz41d3rpbh2rxk9wkahsbiy0cdybn"; depends=[dplyr ggplot2 magrittr stringi stringr tibble tidyr tidytext]; };
+  schtools = derive2 { name="schtools"; version="0.1.0"; sha256="02qlncaddbyvm38ja480qd92gqbs06wxb49902g81mc918gmxqf6"; depends=[dplyr formatR rlang tidyr]; };
   schumaker = derive2 { name="schumaker"; version="1.2.1"; sha256="15i39lzkd1qggd35sp39vy922y3y1n9drjkidz7asniv1miali6j"; depends=[]; };
   scico = derive2 { name="scico"; version="1.2.0"; sha256="1l7vin8zjnv3zhgv81v6qrx6nysd2kx10na1pfn6mmxvr1bsj9jp"; depends=[]; };
   scientoText = derive2 { name="scientoText"; version="0.1"; sha256="0f18hg9s50lbbgl0fqjv45yhynpnsxj8wwm07g126snzr68gbd21"; depends=[stringr tm]; };
@@ -15760,10 +15878,10 @@ in with self; {
   sciplot = derive2 { name="sciplot"; version="1.2-0"; sha256="097zcgjsv54f6wd8fjwh2xb406j6yrw94v9pcxa0zln1q7fs93vk"; depends=[]; };
   scipub = derive2 { name="scipub"; version="1.2.2"; sha256="1k06pmpwpmgiglqhh9ca67m74vb961dczc9394xnwfszq9g3gz1n"; depends=[dplyr forcats gghalves ggplot2 purrr stringr tibble tidyr tidyselect]; };
   sclr = derive2 { name="sclr"; version="0.3.1"; sha256="10pihx35889w509ijbyq5hzslk9n7kakjnfscg7p0dq198nbpyca"; depends=[broom dplyr purrr rlang tibble]; };
-  scoper = derive2 { name="scoper"; version="1.1.0"; sha256="0ls1c4h7l5wk6y4yw8278rg3kyk96508pc9cd4k68kncj302xj26"; depends=[alakazam data_table doParallel dplyr foreach ggplot2 Rcpp rlang scales shazam stringi tidyr]; };
+  scoper = derive2 { name="scoper"; version="1.2.0"; sha256="08zpia618dkvgksbpvhix5dgvgzbc1iakf97bh4akpxqa7i3bcv5"; depends=[alakazam data_table doParallel dplyr foreach ggplot2 Rcpp rlang scales shazam stringi tidyr]; };
   scopr = derive2 { name="scopr"; version="0.3.3"; sha256="1j45l5zcrpc4dnb6ik1v0jlqizpkijl0p656s869jhhvv55r6v2i"; depends=[behavr data_table memoise readr RSQLite stringr]; };
   score = derive2 { name="score"; version="1.0.2"; sha256="1p289k1vmc7qg70rv15x05dyb92r7s6315whr1ibi40sqln62a5s"; depends=[msm]; };
-  scorecard = derive2 { name="scorecard"; version="0.3.5"; sha256="0zsmjdcsprpnggznwiy4m21r7vryx17chz2s3q2ny74gdjpyc0z2"; depends=[data_table doParallel foreach ggplot2 gridExtra openxlsx stringi]; };
+  scorecard = derive2 { name="scorecard"; version="0.3.6"; sha256="1ajsgqfpw3wbbdn2rfwxi585rn0kih0c0hsknlrkhid0jcxvxln3"; depends=[data_table doParallel foreach ggplot2 gridExtra openxlsx stringi]; };
   scorecardModelUtils = derive2 { name="scorecardModelUtils"; version="0.0.1.0"; sha256="09znaxrv14m58hsk5pac458xbpcsidc6ygcsw4q9j0p4yd80qbvl"; depends=[car e1071 gbm ggplot2 partykit randomForest reshape2 sqldf stringr]; };
   scorepeak = derive2 { name="scorepeak"; version="0.1.2"; sha256="1g9n7kjqb9qk5b7hw8ysrc069w9dzc4z29ay6z1kbm0v4kkzp7bi"; depends=[checkmate Rcpp]; };
   scoring = derive2 { name="scoring"; version="0.6"; sha256="114jlpbnm15fdan5lr40adxdzwajy3yhdw6dm4kvkvky6qhcx7q5"; depends=[]; };
@@ -15784,13 +15902,13 @@ in with self; {
   scrobbler = derive2 { name="scrobbler"; version="1.0.2"; sha256="14nnqcjrcc5xcdn2swwj0j2jsw5maayd9ba06s6d5i88png2xhv5"; depends=[httr jsonlite]; };
   scrollrevealR = derive2 { name="scrollrevealR"; version="0.2.0"; sha256="0k8ffapwxpb25wphm76arma095hrh3wf0gpkx1z6g4rplahf4jxa"; depends=[glue htmltools]; };
   scrypt = derive2 { name="scrypt"; version="0.1.3"; sha256="14iblgbp9v2by8fjbrpsd59iknp5babcz7j3yv1yxxzcwyb6wrrm"; depends=[Rcpp]; };
-  scs = derive2 { name="scs"; version="1.3-2"; sha256="10z5619gbnnygk8pkdx2qji56jlv1q6c1z4581pdkd9sfnhg1yp3"; depends=[]; };
+  scs = derive2 { name="scs"; version="3.0-0"; sha256="18f1h3j1vzvkr5llqv98026ilrqvrdzckaacscwadzcw99rb2mqz"; depends=[]; };
   sctransform = derive2 { name="sctransform"; version="0.3.2"; sha256="1p3m6i28nlxh6r609syn88cwlbdpl3dw44dy3gsijk2ibq20mfsx"; depends=[future future_apply ggplot2 gridExtra MASS Matrix matrixStats Rcpp RcppArmadillo reshape2]; };
   scuba = derive2 { name="scuba"; version="1.11-0"; sha256="0g2n8clr2c0cb0jvfz1g9zv8m72yqwmb3p726k89dzma2lkyramd"; depends=[]; };
   scutr = derive2 { name="scutr"; version="0.1.2"; sha256="0wq20zvn839iws9qzaknfisr9r2pipdcvxfjvqmk1bw9irfgj3gm"; depends=[mclust smotefamily]; };
   sdPrior = derive2 { name="sdPrior"; version="1.0-0"; sha256="0g4crlasnvxz752n3az5jc681jvvj2g87c3a8s2h1i2vh64p5h37"; depends=[doParallel GB2 MASS mgcv mvtnorm pscl]; };
   sdStaf = derive2 { name="sdStaf"; version="1.0.2"; sha256="0r7lqj30r3f0b18kpahi63zsdizcw2zjf1vvvs04s4cg1djjbcp3"; depends=[dismo dplyr ggplot2 raster rasterVis rgdal rgeos sp tidyr]; };
-  sda = derive2 { name="sda"; version="1.3.7"; sha256="1v0kp6pnjhazr8brz1k9lypchz8k8gdaby8sqpqzjsj8klghlcjp"; depends=[corpcor entropy fdrtool]; };
+  sda = derive2 { name="sda"; version="1.3.8"; sha256="14cpl7zj9aamdwyc8c9s7hnf660srvjv66lpnsm837d4r7k19icv"; depends=[corpcor entropy fdrtool]; };
   sdafilter = derive2 { name="sdafilter"; version="1.0.0"; sha256="0y692j25pln46dp6xvaq17fkym0461yqfa6rv5avfw2b240k8jiq"; depends=[glasso glmnet huge POET]; };
   sdamr = derive2 { name="sdamr"; version="0.1.0"; sha256="19mgdipp2fwv0c8g5fc02j4vdnc6v4x0204570swv8mkb2r2acqy"; depends=[car dplyr ggplot2]; };
   sdat = derive2 { name="sdat"; version="1.1"; sha256="1mxijw2yfblqjvqqb2xrzhfn9c872i1q9ggw24xicvr2fk4lvjw6"; depends=[]; };
@@ -15803,7 +15921,7 @@ in with self; {
   sde = derive2 { name="sde"; version="2.0.15"; sha256="0gxyhq9lafd62y68h7fd746a3jz3jdsm0shgwm2ylmp4a2f5cdmm"; depends=[fda MASS zoo]; };
   sdef = derive2 { name="sdef"; version="1.7"; sha256="0x2b8shp02ik0dd11wi3jcrl9h9m963fnkfy47fwwhav9x6jg0jf"; depends=[]; };
   sdetorus = derive2 { name="sdetorus"; version="0.1.8"; sha256="1bf622k9szas3bfxz9f82dn28l1hdqxzpvgqwvzygy9vp2gi4gyp"; depends=[colorRamps mvtnorm Rcpp RcppArmadillo]; };
-  sdm = derive2 { name="sdm"; version="1.0-89"; sha256="1qi2hc06wnyz9apfpbypngvs8w20r1jq3mr6l6xpjdyg6ks1m0rc"; depends=[raster sp]; };
+  sdm = derive2 { name="sdm"; version="1.1-8"; sha256="130zkhhq1l99r16dii21i87wphb4n10xq70rgimm4x0q7zn0jv5y"; depends=[raster sp]; };
   sdmApp = derive2 { name="sdmApp"; version="0.0.2"; sha256="1rfzy3bbdya7amyr43dhhv4cvmrxcan0fv167ldpbf0m9snqrnrx"; depends=[raster shiny sp]; };
   sdmpredictors = derive2 { name="sdmpredictors"; version="0.2.10"; sha256="12isgysfpmaj7r5zvs9mc3cd8jkinqqhmhzmfdvabddman6whhzk"; depends=[R_utils raster RCurl rgdal]; };
   sdmvspecies = derive2 { name="sdmvspecies"; version="0.3.2"; sha256="19avkag13ij1k65vqhmvcy8j50j8vrgw4mjc49x8i63w3d4z1wxh"; depends=[psych raster]; };
@@ -15821,10 +15939,11 @@ in with self; {
   season = derive2 { name="season"; version="0.3.13"; sha256="0sn10vxdqvds162i4d7jg6if15h9p8fxia27ihlr4kfyp9113g98"; depends=[ggplot2 MASS survival]; };
   seasonal = derive2 { name="seasonal"; version="1.8.4"; sha256="1mqlck752d9hmzmkmjw9qq7g9kkrwbzglsm7sx0xc03qbm5zxd3k"; depends=[x13binary]; };
   seasonalclumped = derive2 { name="seasonalclumped"; version="0.3.2"; sha256="0a9ryds9l00dw6pr9s6r6fzrby53zz63idjywh127a4ga48jwnq3"; depends=[ggplot2 gridExtra magrittr TTR]; };
+  seasonalityPlot = derive2 { name="seasonalityPlot"; version="0.99.3"; sha256="12z15qlvyj9rrljzqbhgh384x53qqylwmzias4bhx0k3hq2qvsrj"; depends=[dygraphs htmltools magrittr plotrix quantmod zoo]; };
   seasonalview = derive2 { name="seasonalview"; version="0.3"; sha256="1l705yc7ssldsfckbgnvd95sh3zzhpkmf1rr6ar2s60s3wsyly4n"; depends=[dygraphs htmlwidgets openxlsx seasonal shiny shinydashboard xtable xts zoo]; };
   seastests = derive2 { name="seastests"; version="0.15.4"; sha256="1xy2hacd57v75y5snhn4al7bi71wr994jy6m2sdr6qzzsd5pbgpc"; depends=[forecast xts zoo]; };
   seawaveQ = derive2 { name="seawaveQ"; version="2.0.2"; sha256="1x4vvassal1lwb9xnwisrhlx2maaqxl84h7klfy8yg9x80fdrhsw"; depends=[lubridate plyr reshape2 rms survival]; };
-  secr = derive2 { name="secr"; version="4.4.7"; sha256="1n4w178r4nnq8fkgx42blysvi3vbmaiqn6311lhrvhg93z3gn1yx"; depends=[abind BH MASS mgcv nlme raster Rcpp RcppEigen RcppNumerical RcppParallel sp stringr]; };
+  secr = derive2 { name="secr"; version="4.4.8"; sha256="0lwnqfqc9bwz4fwsp9xis5rb1lykjv6vabbh14hpcpdvsqzslpba"; depends=[abind BH MASS mgcv nlme raster Rcpp RcppEigen RcppNumerical RcppParallel sp stringr]; };
   secrdesign = derive2 { name="secrdesign"; version="2.5.11"; sha256="02fysbx6w1iw2ig54f9sgr74c40wfjwiwpdmxdjymsaynqnm9anl"; depends=[abind openCR secr]; };
   secret = derive2 { name="secret"; version="1.1.0"; sha256="063gpyc2s2l6zw1j8b8ppzsv9kjsf0s77s5wcn7ipmwkj8qr2g4b"; depends=[assertthat curl jsonlite openssl rprojroot]; };
   secrettext = derive2 { name="secrettext"; version="0.1.0"; sha256="129v524yyb464mcij7hvzv05cxliaz5nm7v30g9g9ppskcdqhsx2"; depends=[dplyr magrittr rlang stringr testthat tidyr]; };
@@ -15870,10 +15989,10 @@ in with self; {
   semEff = derive2 { name="semEff"; version="0.6.0"; sha256="0w919y49kl2vq9psnjn03cwwp99myip5cbvm6jmkkjiikx8iikh0"; depends=[boot gsl lme4]; };
   semPLS = derive2 { name="semPLS"; version="1.0-10"; sha256="0q5linjyv5npkw4grx3vq58iq2q1grf06ikivhkg8w7rvb7pqn6b"; depends=[lattice]; };
   semPlot = derive2 { name="semPlot"; version="1.1.2"; sha256="0l1v9yi1pv59iwfknw4dh9qskk5y8r347jq1vq13gnfd3bmd71xr"; depends=[colorspace corpcor igraph lavaan lisrelToR OpenMx plyr qgraph regsem rockchalk sem XML]; };
-  semPower = derive2 { name="semPower"; version="1.1.0"; sha256="091695q9s5hymnziz9sjbn0magxqb21m9z2yj97w1laaflc3m3z3"; depends=[]; };
+  semPower = derive2 { name="semPower"; version="1.2.0"; sha256="1y3j6b3ab19fqxzqrrssjcj7f0za0vkwq97s7qs6hwj9yfsg1nas"; depends=[]; };
   semTable = derive2 { name="semTable"; version="1.8"; sha256="0qr420rnz59q8arf6x05iy1zyh7pv31ldi2rsw1j2a00fbpp4ndf"; depends=[kutils lavaan plyr stationery xtable]; };
   semTools = derive2 { name="semTools"; version="0.5-5"; sha256="1dpsn43ifvfy5v8w2fqdy54yclmy0d3qlzix67lflr2r7isq7y6x"; depends=[lavaan pbivnorm]; };
-  semantic_dashboard = derive2 { name="semantic.dashboard"; version="0.2.0"; sha256="0i9l8s19bw5xj4dzq932j0lzldg725zwcxnnda9p8gp0fimkb3d2"; depends=[checkmate glue htmltools shiny shiny_semantic]; };
+  semantic_dashboard = derive2 { name="semantic.dashboard"; version="0.2.1"; sha256="0518pdxgjjv8ql1aaysk64pv1pa01bbg3s7qdibw1v0c6pcf3adb"; depends=[checkmate glue htmltools shiny shiny_semantic]; };
   semdiag = derive2 { name="semdiag"; version="0.1.2"; sha256="0kjcflw7dn907zx6790w7hnf5db6bf549whfsc0c2r173kf13irp"; depends=[sem]; };
   semdrw = derive2 { name="semdrw"; version="0.1.0"; sha256="16hm1ifgspnxnlf3rfg5ylmql2fq91ig8nc5953ggyhfrjwbqx15"; depends=[dplyr lavaan psych semPlot semTools shiny shinyAce]; };
   semds = derive2 { name="semds"; version="0.9-6"; sha256="10kvcmcy6qa2r5sram6azqgzl528rghfxgw2f2bq2fvhhq127dzq"; depends=[minpack_lm pracma]; };
@@ -15924,26 +16043,26 @@ in with self; {
   seqhandbook = derive2 { name="seqhandbook"; version="0.1.0"; sha256="0zncpjabazci92wzw126i491669gidkyiw7zjp7iw23m6jaf71l4"; depends=[TraMineR]; };
   seqinr = derive2 { name="seqinr"; version="4.2-8"; sha256="1xz9spln6s9mcwpgcv1m4jymn4gnl1bb6vh90bphqcn0vvlk8jsq"; depends=[ade4 segmented]; };
   seqmagick = derive2 { name="seqmagick"; version="0.1.5"; sha256="0h1vdsx88k3mpajfv0cgswk2s1560zm6y776b4dqrdkvkcgdbb3g"; depends=[Biostrings magrittr]; };
-  seqminer = derive2 { name="seqminer"; version="8.0"; sha256="00jzj8mwb0zaiwlifd41b26mrq9mzigj18nc29dydi0r42hxg16i"; depends=[]; };
+  seqminer = derive2 { name="seqminer"; version="8.2"; sha256="097313x72jr2q6dp8ma33w8kyp3gfw71snf1qx2maxbwwnysk085"; depends=[]; };
   seqmon = derive2 { name="seqmon"; version="2.4"; sha256="1aqrg9aqvsabg5mm9jfj5vaxxaapfs1qw3yyzbx7vsspcgjdhyca"; depends=[]; };
   seqtest = derive2 { name="seqtest"; version="0.1-0"; sha256="1bdfww9szh7h278id5xpfc39mxkcix3yvsdwc68wx3q3x0wxhqhq"; depends=[]; };
   sequence = derive2 { name="sequence"; version="2.0"; sha256="0r5h96gcp18lwgrl2pjlr71xqspkf6qmm1m0xjq5vadalfa7y294"; depends=[]; };
   sequences = derive2 { name="sequences"; version="0.5.9"; sha256="17571m525b6a3k4f0m936wfq401181gx1fpb7x4v0fhaldzdmk3a"; depends=[Rcpp]; };
   sequenza = derive2 { name="sequenza"; version="3.0.0"; sha256="13l16lacdcf7fn96yj3xqxap0l19ma9ppkxxx5qk9f5abbvdk303"; depends=[copynumber iotools pbapply readr seqminer squash]; };
   sequoia = derive2 { name="sequoia"; version="2.3.5"; sha256="1n0c24g5zl0l63nsaywwjfqsjn0ql2ckd3iqmc381qngijnckc17"; depends=[plyr]; };
-  sergeant = derive2 { name="sergeant"; version="0.9.0"; sha256="1iyb0191hkkhhsr4507b1c6j7c7z7lz1v0m2y7flc50yfxicb1fb"; depends=[bit64 DBI dbplyr dplyr htmltools httr jsonlite magrittr purrr readr scales tibble]; };
+  sergeant = derive2 { name="sergeant"; version="0.9.1"; sha256="0mgrrlny1qfddznyc34awh8vkbjnyskbyqrxszdhsm2c5wgp2nwh"; depends=[bit64 DBI dbplyr dplyr htmltools httr jsonlite magrittr purrr readr scales stringi tibble]; };
   serial = derive2 { name="serial"; version="3.0"; sha256="1y1gj0lcdn5apiv6c6arks6pqhsbvnrfym6n2izjarx2c27ijrjj"; depends=[]; };
   seriation = derive2 { name="seriation"; version="1.3.1"; sha256="08c37n3xxc4n4vbkw38k3l3hdlmck8drqpl6z274vkgi2sqv8qyf"; depends=[cluster colorspace gclus MASS qap registry TSP]; };
   serieslcb = derive2 { name="serieslcb"; version="0.4.0"; sha256="1ip4k2xzg06hwsni62ai1whs1zzhwlf94507inpfpqz3jmmafrhq"; depends=[gplots shiny]; };
   seroincidence = derive2 { name="seroincidence"; version="2.0.0"; sha256="0sam4y7w6prswz0izkm1a9v2k5rv7z22g1ajy15n9xix9aml5ms4"; depends=[]; };
-  serp = derive2 { name="serp"; version="0.2.1"; sha256="04rcs0p9yig9i0ckxispgdf13x4jabs9fl3kirxkllda73pxa4mm"; depends=[ordinal]; };
+  serp = derive2 { name="serp"; version="0.2.3"; sha256="0fbhcn10vvyg29sg5i39i004vks4in21br1gm8zhlx9sqmw7m0l0"; depends=[crayon ordinal]; };
   serpstatr = derive2 { name="serpstatr"; version="0.1.0"; sha256="1myxw3dh3mkai803dnfdd1zyr2mjzsd2pw00l1fwmmbdplqg9q20"; depends=[httr]; };
   serrsBayes = derive2 { name="serrsBayes"; version="0.5-0"; sha256="1w8fs9k4zhy0hwkm30dvi360n28cl2gn9vdqaak64g0nlvb9jy1w"; depends=[Matrix Rcpp RcppEigen truncnorm]; };
   servosphereR = derive2 { name="servosphereR"; version="0.1.1"; sha256="0m1fjd3f1s2ss54xmcrm3p0c33hhi2dj0vim790g4y0mw2aicc8l"; depends=[data_table dplyr magrittr purrr rlang]; };
-  servr = derive2 { name="servr"; version="0.23"; sha256="1f1fgfgjgjsbn2krkbyw2qwkm0k4lq9p9jakg9zwyqlgpkdd34j4"; depends=[httpuv jsonlite mime xfun]; };
+  servr = derive2 { name="servr"; version="0.24"; sha256="11x0857m3xzdbzr4z0vx4fcdk36arfagyf2qgamvprich0qisknr"; depends=[httpuv jsonlite mime xfun]; };
   sesem = derive2 { name="sesem"; version="1.0.2"; sha256="0b1xzv38wpkhhlq87xrvlh45b8ksbi8bg4ar5hrf8gxa19r9rmi5"; depends=[gplots lavaan mgcv]; };
   session = derive2 { name="session"; version="1.0.3"; sha256="04mcy1ac75fd33bg70c47nxqxrmqh665m9r8b1zsz5jij1sbl8q5"; depends=[]; };
-  sessioninfo = derive2 { name="sessioninfo"; version="1.2.0"; sha256="1pq7ihd1qxigbdj7r9y00vpi20r4jjcr8b9h33hgjfixmlwggsxd"; depends=[cli]; };
+  sessioninfo = derive2 { name="sessioninfo"; version="1.2.1"; sha256="0w3vhp652524348a4cfyvvs8z9xpxkcznw8x406nvkwfh0gdyka2"; depends=[cli]; };
   set = derive2 { name="set"; version="1.2"; sha256="0f36dp9k0nxp1amsd7ybwgbv0vxvgd1kns7cbfsbsh0kljxyplzp"; depends=[do]; };
   set6 = derive2 { name="set6"; version="0.2.4"; sha256="06swz60p73a7m7rvsv1545hsr2chkk2w2hmnfwkwfz4hrbdxm709"; depends=[checkmate ooplah R6 Rcpp]; };
   setRNG = derive2 { name="setRNG"; version="2013.9-1"; sha256="02198cikj769yc32v8m2qrv5c01l2fxmx61l77m5ysm0hab3j6hs"; depends=[]; };
@@ -15952,7 +16071,7 @@ in with self; {
   settings = derive2 { name="settings"; version="0.2.7"; sha256="1i9ij5k8p2v9gxr48vas8hj337mbyx9c4ywv9bbdwkz6kzah46k5"; depends=[]; };
   sever = derive2 { name="sever"; version="0.0.7"; sha256="10jckf6q31blsl1yhs5f1mx7b8sm8sqb86iakcvaslf651ijx81m"; depends=[cli htmltools shiny]; };
   severity = derive2 { name="severity"; version="2.0"; sha256="1mp19y2pn7nl9m8xfljc515kk5dirv0r2kypazpmd956lcivziqq"; depends=[]; };
-  sf = derive2 { name="sf"; version="1.0-3"; sha256="1y1im0wxqx0vqas6ggmi6p1dyp98l895jy3asxky4vq5wpjfrqrf"; depends=[classInt DBI magrittr Rcpp s2 units]; };
+  sf = derive2 { name="sf"; version="1.0-4"; sha256="0dxln3ikqmwczz0ri63xwj05v09hkpljw2qvma6n03nzczyg2713"; depends=[classInt DBI magrittr Rcpp s2 units]; };
   sfa = derive2 { name="sfa"; version="1.0-1"; sha256="1acqxgydf8j5csdkx0yf169x3yaa31r0ccdrqarh6vj1hacm89ad"; depends=[]; };
   sfaR = derive2 { name="sfaR"; version="0.1.0"; sha256="1lgazgj6xfg0syspw6wzmd4xyczydhdgghpaf9kgrqvqfkaqcf8p"; depends=[dplyr emdbook fBasics Formula gsl marqLevAlg MASS maxLik moments nleqslv numDeriv primes qrng randtoolbox trustOptim ucminf]; };
   sfadv = derive2 { name="sfadv"; version="1.0.1"; sha256="1rfpm6km5pckwhqgpvidm6qsj5sjdaqqj5b0sgvpslivfa4c80cr"; depends=[gmm minpack_lm]; };
@@ -15962,7 +16081,7 @@ in with self; {
   sfdct = derive2 { name="sfdct"; version="0.1.0"; sha256="0p3ipp6x8vnsi94078n098yk9wglnawvzh19imcgk2c1l5lazwgf"; depends=[dplyr RTriangle sf sp tibble]; };
   sfheaders = derive2 { name="sfheaders"; version="0.4.0"; sha256="0ig02nszrs6fkjkrkqibp23n4a8qr4i09yz7l741yjd0308ddg46"; depends=[geometries Rcpp]; };
   sfinx = derive2 { name="sfinx"; version="1.7.99"; sha256="14v47y00qwvc2s0vzjw19hwn85nzj8lna539c75qq6zkn6kir6va"; depends=[]; };
-  sfnetworks = derive2 { name="sfnetworks"; version="0.5.2"; sha256="0kywp90zc9wbqsbhp2nc3a3xhyqvhv0l033i4nnrkjf60v9sqam8"; depends=[crayon dplyr igraph lwgeom rlang sf sfheaders tibble tidygraph units]; };
+  sfnetworks = derive2 { name="sfnetworks"; version="0.5.3"; sha256="1f3zz706chps73j9i4is1k94134kxyq4pwkg86qwqrlxlfd623ha"; depends=[crayon dplyr igraph lwgeom rlang sf sfheaders tibble tidygraph units]; };
   sfo = derive2 { name="sfo"; version="0.1.1"; sha256="0ja0kyrr6vqwk9fj1hq9bvfkak2vgav0hlqpgn4sa9h9j1s8r4js"; depends=[]; };
   sfsmisc = derive2 { name="sfsmisc"; version="1.1-12"; sha256="10h76pgzcxv1y5pkmba9607lvjrsyq62sq63s2n7ry7z5151h4lv"; depends=[]; };
   sft = derive2 { name="sft"; version="2.2-1"; sha256="0fxz64ba58n6ghfqsgq64n1c7qkvi8c3lsa86732mil9w71yxw33"; depends=[fda SuppDists]; };
@@ -16005,6 +16124,7 @@ in with self; {
   shattering = derive2 { name="shattering"; version="1.0.7"; sha256="0dmb57pdgzwm001gfm1zm8ba7x71bp2vjk4ml0cy4r05hpdswfh3"; depends=[e1071 FNN NMF pdist pracma rmarkdown Ryacas slam]; };
   shazam = derive2 { name="shazam"; version="1.1.0"; sha256="1jakx3fwhlswwbmkac25nmcrk70cyc2iypmmxlgd3wxaqbnrd97z"; depends=[alakazam ape diptest doParallel dplyr foreach ggplot2 igraph iterators kedd KernSmooth lazyeval MASS progress rlang scales seqinr stringi tidyr tidyselect]; };
   shelltrace = derive2 { name="shelltrace"; version="3.5.1"; sha256="1xgbavaa26185i6q3907ds3bzq4xrw027x1sw5vsybqrxdz04jiz"; depends=[bmp tiff xlsx]; };
+  shidashi = derive2 { name="shidashi"; version="0.1.0"; sha256="0h87fmk4z1rjsmv62m9si7z40aqz75xxgv3d02rh7z97bxz3hkml"; depends=[digest fastmap formatR httr jsonlite shiny yaml]; };
   shiftR = derive2 { name="shiftR"; version="1.5"; sha256="18y2qzqx8hd6yph1wnsq4ygm16pcdszynh174xsrxrhvx2h9mi4x"; depends=[]; };
   shinipsum = derive2 { name="shinipsum"; version="0.1.0"; sha256="0d94189hmg0bl8x0s8fpba5gcvb95sr9k9lbp3kk8482fc5h147n"; depends=[attempt DT dygraphs ggplot2 magrittr plotly]; };
   shiny = derive2 { name="shiny"; version="1.7.1"; sha256="000xfa8jsl9kfqpps1zgrb26wbk3r2y15s60qx906hs1zdb20fy0"; depends=[bslib cachem commonmark crayon ellipsis fastmap fontawesome glue htmltools httpuv jsonlite later lifecycle mime promises R6 rlang sourcetools withr xtable]; };
@@ -16014,7 +16134,7 @@ in with self; {
   shiny_react = derive2 { name="shiny.react"; version="0.2.3"; sha256="19k1rvq47s56cipxqbalgzmhwdxw3ic5bd9qqnvsw75ynbhpa959"; depends=[glue htmltools jsonlite logger rlang shiny]; };
   shiny_reglog = derive2 { name="shiny.reglog"; version="0.4.1"; sha256="1azhcz2ffrc82f9yfqfivb9m2alanl4wx1i8q8pyympqw09gg5zy"; depends=[DBI dplyr googlesheets4 lubridate R6 RSQLite scrypt shiny]; };
   shiny_router = derive2 { name="shiny.router"; version="0.2.2"; sha256="1jxk1hxi42kyi5dahszhl9nzppa99svk1vhwf2d15apfrg2d6ivc"; depends=[htmltools magrittr shiny]; };
-  shiny_semantic = derive2 { name="shiny.semantic"; version="0.4.2"; sha256="0ndjp8c3c8kci8rzhj4bg1zpgwzcilgbjplx0sr2hii87lpi0v2j"; depends=[glue htmltools htmlwidgets jsonlite magrittr purrr R6 shiny]; };
+  shiny_semantic = derive2 { name="shiny.semantic"; version="0.4.3"; sha256="124bxgbbzx4xkzxqzr16brqdm12ra0pvx1qhqkvp8alvjm0s54vg"; depends=[glue htmltools htmlwidgets jsonlite magrittr purrr R6 shiny]; };
   shiny_worker = derive2 { name="shiny.worker"; version="0.0.1"; sha256="1l30dx46s3q1x9nd42r6dracd3lqkjk80r9jyjqy8lmdsq48300i"; depends=[future R6 shiny]; };
   shinyAce = derive2 { name="shinyAce"; version="0.4.1"; sha256="1m33dfm2kjirvgix7ybv1kbzgjkicdpv411g9c0q3fw6rnyhfxxn"; depends=[jsonlite shiny]; };
   shinyBS = derive2 { name="shinyBS"; version="0.61"; sha256="0rhim4mbp4x9vvm7xkmpl7mhb9qd1gr96cr4dv330v863ra2kgji"; depends=[htmltools shiny]; };
@@ -16024,8 +16144,8 @@ in with self; {
   shinyDND = derive2 { name="shinyDND"; version="0.1.0"; sha256="0nkvz4hmjzmxlzj4vkjrdy8xlbxapg1amk180irgvwicqldi4jpm"; depends=[htmltools shiny]; };
   shinyEffects = derive2 { name="shinyEffects"; version="0.2.0"; sha256="1ajar09hmrk7vcw89wkgvkz2yl0cfnkz915b57w1lmbvpxzgsq3i"; depends=[htmltools shiny]; };
   shinyFeedback = derive2 { name="shinyFeedback"; version="0.4.0"; sha256="1xfznq2d4wkk0b0y4k25rwg4d3bhn3gxlkf3chfqk44f4rgril11"; depends=[fontawesome htmltools jsonlite shiny]; };
-  shinyFiles = derive2 { name="shinyFiles"; version="0.9.0"; sha256="0rsijlx16vd74r7bd8s9zipy71kgpw19v9s85kxj5bmwc6njmbai"; depends=[fs htmltools jsonlite shiny tibble]; };
-  shinyGovstyle = derive2 { name="shinyGovstyle"; version="0.0.6"; sha256="0q3yjkb7gnf15l2bh5wp1y1z6rn6apxd731wr8b82qbsdm68q5sm"; depends=[htmltools jsonlite shiny shinyjs]; };
+  shinyFiles = derive2 { name="shinyFiles"; version="0.9.1"; sha256="0f8dfdiar376lx0979ccyghgx5rhr08v5z3z60asrrjsxlq4cs85"; depends=[fs htmltools jsonlite shiny tibble]; };
+  shinyGovstyle = derive2 { name="shinyGovstyle"; version="0.0.7"; sha256="08lslxzmlzyrphaf0i3pqj21q2iqqskmlr7dnhm4yrfvm6jllglz"; depends=[htmltools jsonlite shiny shinyjs]; };
   shinyHeatmaply = derive2 { name="shinyHeatmaply"; version="0.2.0"; sha256="1n7c7dvvb9kqay2phcf0bkwi990x1cjl7js6pq05xx7rli5bc5h4"; depends=[dplyr heatmaply htmltools plotly readxl rmarkdown shiny xtable]; };
   shinyIRT = derive2 { name="shinyIRT"; version="0.1"; sha256="01x7nhjs1dx2ldwznhbavc5vzqhgkn73xg395vlf2hgzbxa2ydvj"; depends=[irtoys magrittr mirt psych readxl shiny shinycssloaders shinydashboard]; };
   shinyKGode = derive2 { name="shinyKGode"; version="1.0.5"; sha256="004zwz4kqfijzvvwkq8v1gi25w1wrdlg8230g93w36gbi6cl2vk1"; depends=[ggplot2 gridExtra KGode mvtnorm pracma pspline reshape2 shiny shinyjs XML]; };
@@ -16043,6 +16163,7 @@ in with self; {
   shinyRadioMatrix = derive2 { name="shinyRadioMatrix"; version="0.2.0"; sha256="1y45qj0229s2q7rkd443axg95bfzpjxdndk16irlgddfrzvrhs6r"; depends=[shiny]; };
   shinySIR = derive2 { name="shinySIR"; version="0.1.2"; sha256="1g2xcm0n7chswrnw9zq3wz6mimzzf6avhkp1rcd24ga809346jcd"; depends=[deSolve dplyr ggplot2 shiny tidyr]; };
   shinySearchbar = derive2 { name="shinySearchbar"; version="1.0.0"; sha256="1v80380vym31aw0i1ghwlbdi2xkf3n59w2as62ywqi79025x3w6y"; depends=[jsonlite shiny]; };
+  shinySelect = derive2 { name="shinySelect"; version="1.0.0"; sha256="1s96ipcicpn7aj19rvsa48cm6izk2m84sd2w8qicqp7b5brg4jla"; depends=[fontawesome htmltools reactR shiny]; };
   shinyShortcut = derive2 { name="shinyShortcut"; version="0.1.0"; sha256="101wz9s4rk7fbaqgm0r2v3v8za20vdxwq4vhkz8xr7y5pr65sxiq"; depends=[]; };
   shinyTime = derive2 { name="shinyTime"; version="1.0.1"; sha256="1d830wf7d5ki7frbr1vgy9d0vllyfcylq7pfkspjkz64b2xfhah3"; depends=[htmltools shiny]; };
   shinyToastify = derive2 { name="shinyToastify"; version="2.0.0"; sha256="0ipqwgl89pjiycwg78p0db45lbzry989kn6aqjsf79lpvghnk5qs"; depends=[fontawesome htmltools reactR shiny]; };
@@ -16053,7 +16174,7 @@ in with self; {
   shinyanimate = derive2 { name="shinyanimate"; version="0.3.0"; sha256="0vshid5mfq006cprjj61d0g7ajyc3plc66x55c5jjmijwbp6pw7a"; depends=[shiny]; };
   shinyauthr = derive2 { name="shinyauthr"; version="1.0.0"; sha256="0apaqjkxpr96kx9indl0pifk5y75gdx5npfcvxfg5k2crpx9vmxk"; depends=[dplyr glue rlang shiny shinyjs sodium]; };
   shinybootstrap2 = derive2 { name="shinybootstrap2"; version="0.2.1"; sha256="17634l3swlvgj1sv56nvrpgd6rqv7y7qjq0gygljbrgpwmfj198c"; depends=[htmltools jsonlite shiny]; };
-  shinybrms = derive2 { name="shinybrms"; version="1.5.2"; sha256="021ihnbmi0wqrpqy4rzbbrgvnpzf6nk1fjp63jx1hx7qi9w3ddha"; depends=[brms rstan shiny]; };
+  shinybrms = derive2 { name="shinybrms"; version="1.6.0"; sha256="0dbj0sl65sgg293knrarj7rc5fc8xvhdh601b2srs0zqp6vjzhbn"; depends=[brms rlang rstan shiny]; };
   shinybusy = derive2 { name="shinybusy"; version="0.2.2"; sha256="06vfkv382xcpjh30i7d4ym4vyravadp5vjsvrnw4npy0302pdmzl"; depends=[htmltools htmlwidgets jsonlite shiny]; };
   shinycssloaders = derive2 { name="shinycssloaders"; version="1.0.0"; sha256="0r3xm273lhdhzbs2mkgw1m2kwb7z1dh1pzya8yxy5vacda1l2ikl"; depends=[digest glue shiny]; };
   shinycustomloader = derive2 { name="shinycustomloader"; version="0.9.0"; sha256="1klx71vr26g0gjf6hbiia1qidqii5d467i1sdjvlrg1hxdcggqff"; depends=[glue shiny]; };
@@ -16070,10 +16191,11 @@ in with self; {
   shinyjqui = derive2 { name="shinyjqui"; version="0.4.0"; sha256="0ins0pmfis34jr0rimsp1k1aw856r3xjdnsvv8lkwqhvp58nzqah"; depends=[htmltools htmlwidgets jsonlite shiny]; };
   shinyjs = derive2 { name="shinyjs"; version="2.0.0"; sha256="1zzq356dvd8ciajy6r5n4ybgx9xk7ydwv25j86xlcsqznkxdkkf2"; depends=[digest htmltools jsonlite shiny]; };
   shinyloadtest = derive2 { name="shinyloadtest"; version="1.1.0"; sha256="0684p9anbc3qdn4rqkxp33nm0d04zb264b3blwa23pa5akis2klq"; depends=[curl dplyr ggplot2 httpuv jsonlite magrittr R6 rlang scales stringr svglite vroom websocket xml2]; };
-  shinylogs = derive2 { name="shinylogs"; version="0.1.7"; sha256="1b4p0g1vf9wn643rybf382mw6mrrl49qsykh7npa3agcarwznmgr"; depends=[anytime bit64 data_table DBI digest htmltools jsonlite nanotime RSQLite shiny]; };
+  shinylogs = derive2 { name="shinylogs"; version="0.2.0"; sha256="00rswic0kbrzr6ix88avsxdfnv2bx94kxjkln8li14zaqsdksivm"; depends=[anytime bit64 data_table digest htmltools jsonlite nanotime shiny]; };
   shinymanager = derive2 { name="shinymanager"; version="1.0.400"; sha256="1np2yp5pn8g9i4jhysfgprmdn13cpw4vaaagrd72rnk2r4hpmyx4"; depends=[billboarder DBI DT htmltools openssl R_utils R6 RSQLite scrypt shiny]; };
   shinymaterial = derive2 { name="shinymaterial"; version="1.2.0"; sha256="0nqakim0cx722sydbv12kgva1nis7h2i0lrvi9c0h54733x7lbza"; depends=[jsonlite sass shiny]; };
-  shinymeta = derive2 { name="shinymeta"; version="0.2.0.2"; sha256="1wdfkkks8j510hdhv1h1j3cc8gb79l6z5jnchq62xx1dja12krkp"; depends=[callr fastmap fs htmltools rlang shiny sourcetools styler]; };
+  shinymeta = derive2 { name="shinymeta"; version="0.2.0.3"; sha256="1lizg5sjg0f2axr9vk8z4w43lbyim83gd4dzx91dygknv3kgyp89"; depends=[callr fastmap fs htmltools rlang shiny sourcetools styler]; };
+  shinymodels = derive2 { name="shinymodels"; version="0.1.0"; sha256="177c8ksv17ywyrdyxfr872hc1ajr0l3b9ra8as9q36qcpzl24v7i"; depends=[dplyr DT generics ggplot2 glue htmltools magrittr parsnip plotly purrr rlang scales shiny shinydashboard tidyr tidyselect tune yardstick]; };
   shinyobjects = derive2 { name="shinyobjects"; version="0.2.0"; sha256="0fg5gyssia2fqar635vrqgfwpfrk4pqachsgg10y13ljp09lcdm3"; depends=[dplyr glue knitr magrittr pander purrr readr rlang rstudioapi shiny stringr styler tibble tidyr]; };
   shinypanel = derive2 { name="shinypanel"; version="0.1.4"; sha256="0hdfpjfhyqj7ym3bwg5xmhnawl98q7mfl2wj950ysajqi88l91pr"; depends=[htmltools jsonlite shiny shinyBS shinyjs]; };
   shinypanels = derive2 { name="shinypanels"; version="0.5.0"; sha256="1rslz9wl3gx11dm6il77j4k5swxvcfy5mf0zffbs4zk8xjgpzzj6"; depends=[glue htmltools shiny shinyjs]; };
@@ -16103,7 +16225,7 @@ in with self; {
   shp2graph = derive2 { name="shp2graph"; version="0-5"; sha256="1l9mg98hkb0bvr5dzd2p26g8mw5hqjxrym2gmbm10kyapvccfk56"; depends=[igraph maptools sp]; };
   shrink = derive2 { name="shrink"; version="1.2.1"; sha256="0pd967wsys8fd7gyvr9y08km118yamfk5c1a1i2k8nr2ifpqmy0w"; depends=[MASS mfp rms survival]; };
   shrinkDSM = derive2 { name="shrinkDSM"; version="0.1.0"; sha256="01yvs1shsp7npfm9w1caprb1x8w42zlzswc2fk9y6q340i51kfzm"; depends=[coda Rcpp RcppArmadillo RcppProgress shrinkTVP stochvol]; };
-  shrinkTVP = derive2 { name="shrinkTVP"; version="2.0.3"; sha256="130x6rpvrng25l6mx3fskcvv9jyjzbvl6da35bvsw2j88qd3fra2"; depends=[coda GIGrvg Rcpp RcppArmadillo RcppProgress stochvol zoo]; };
+  shrinkTVP = derive2 { name="shrinkTVP"; version="2.0.4"; sha256="15avxdrn4734p1hbv8q0kc2zngarsr96ca25dqv4kd75q721c9nz"; depends=[coda GIGrvg Rcpp RcppArmadillo RcppProgress stochvol zoo]; };
   shuffle = derive2 { name="shuffle"; version="1.0.1"; sha256="0aqb11h340picx7z2jg3k46l3pr6fkknlpyzc0z89hhrc90pss48"; depends=[]; };
   shuffleCI = derive2 { name="shuffleCI"; version="0.1.0"; sha256="1n9k28m1fcnw1my9a7v0gy9waygd48lab45vj9k2wwijbc325zai"; depends=[plotrix]; };
   shutterplot = derive2 { name="shutterplot"; version="0.1.0"; sha256="129jv20m0dinb07lwiz9fxv4z7sxshcmjab2g0p5vrv8jlp9a0yv"; depends=[]; };
@@ -16145,6 +16267,7 @@ in with self; {
   simITS = derive2 { name="simITS"; version="0.1.1"; sha256="0b62lvknfqli6ki4w360b1ih9nsm6pinaqskgra6vl2nzsim3sal"; depends=[dplyr rlang]; };
   simMP = derive2 { name="simMP"; version="0.17.3"; sha256="1pzg79dd08ds3pfzxnk9h95gaibicv00mnm0jb4i8v5is4gzrdhr"; depends=[Biostrings BSgenome doParallel foreach GenomeInfoDb GenomicRanges IRanges XVector]; };
   simMSM = derive2 { name="simMSM"; version="1.1.41"; sha256="04icijrdc269b4hwbdl3qz2lyxcxx6z63y2wbak1884spn6bzbs8"; depends=[mvna survival]; };
+  simPATHy = derive2 { name="simPATHy"; version="0.6"; sha256="0xiqcrdnn7pcbhykkjabfym6hqq9hrnjigav8nshs143s9wflw1q"; depends=[ggm graph gRbase htmlwidgets igraph mvtnorm qpgraph R_utils shiny shinydashboard]; };
   simPH = derive2 { name="simPH"; version="1.3.13"; sha256="086060f78f1dmpa6cyhx160blchckplw04gs6997f1hwzswci2l2"; depends=[data_table dplyr ggplot2 gridExtra lazyeval MASS mgcv quadprog stringr survival]; };
   simPop = derive2 { name="simPop"; version="1.2.1"; sha256="1rpjyffs7s40wlyv77ha6r282p08kp7x252nfiasbgxp5c7x17i0"; depends=[colorspace data_table doParallel e1071 EnvStats fitdistrplus foreach laeken lattice MASS nnet party plyr ranger Rcpp RcppArmadillo vcd VIM wrswoR]; };
   simTargetCov = derive2 { name="simTargetCov"; version="1.0.1"; sha256="0gdqqwg9i2hga6l4s5x7wbbsm20b3sgwrci1g6hc04x1h9aawiw2"; depends=[MASS]; };
@@ -16165,7 +16288,7 @@ in with self; {
   simglm = derive2 { name="simglm"; version="0.8.8"; sha256="18k3wd9j4hyph9db4h8r7cc93g8f3jkshraj3jn6mpg6k911w78n"; depends=[broom dplyr future_apply Matrix purrr rlang]; };
   simgof = derive2 { name="simgof"; version="1.0.2"; sha256="05d7im59i193f266kqy4lr37dw3v20j9niizhj9w8z1qlfqfqsrk"; depends=[ddst]; };
   simhelpers = derive2 { name="simhelpers"; version="0.1.1"; sha256="0hnqvymmyimh6244r8a8qmmsb799pgj6j6yvgdnhvjmss8ymif9d"; depends=[dplyr furrr future magrittr purrr Rdpack rlang rstudioapi tibble tidyr]; };
-  simlandr = derive2 { name="simlandr"; version="0.1.1"; sha256="0d3ck7q5wqnnkipw69yn3n8m9005b7xic26yiif9b10r73y6pykg"; depends=[bigmemory digest dplyr forcats gganimate ggplot2 htmlwidgets ks magrittr MASS plotly purrr rlang scales tibble]; };
+  simlandr = derive2 { name="simlandr"; version="0.1.2"; sha256="1f1r22a7w8xqkgavnb6g06if29vf1905d3h32ww9zzxz65g3a9qa"; depends=[bigmemory digest dplyr forcats gganimate ggplot2 htmlwidgets ks magrittr MASS plotly purrr rlang scales tibble]; };
   simmer = derive2 { name="simmer"; version="4.4.3"; sha256="0vp1dc9kpinl4hkyrig5msssl35wxd9w9jyk7lbknxavjp1aqc69"; depends=[BH codetools magrittr Rcpp]; };
   simmer_bricks = derive2 { name="simmer.bricks"; version="0.2.1"; sha256="1s73mfmpjz91n932kjk50aai5j3p1sjibq73yxrjdhlyhiy4d8lp"; depends=[simmer]; };
   simmer_plot = derive2 { name="simmer.plot"; version="0.1.16"; sha256="15snsxbljapk1br3psd6ypwa34a6x57zrblgpjyihpaivpxcz7m6"; depends=[DiagrammeR dplyr ggplot2 scales simmer tidyr]; };
@@ -16173,6 +16296,7 @@ in with self; {
   simmr = derive2 { name="simmr"; version="0.4.5"; sha256="0kv3ip0yq3r2a9dglx0pkjvg5bkf9fg2x051dp6z0ld1c0f4p6ms"; depends=[bayesplot boot checkmate compositions ggplot2 MASS R2jags reshape2 viridis]; };
   simode = derive2 { name="simode"; version="1.2.0"; sha256="0wlnd01xfdqvjfvmkhkj6nvkrnv5ghjv4md5nhaqsjc8bycawyl0"; depends=[deSolve pracma quadprog]; };
   simpleCache = derive2 { name="simpleCache"; version="0.4.2"; sha256="0zayq4n8cc0xgszckjvvf55ygy8hwywv161pp8pqi2k4z91rq4lz"; depends=[]; };
+  simpleFDR = derive2 { name="simpleFDR"; version="1.1"; sha256="09w7l8pb6kibzifwyqcgshlxjq2gn6s642i78939q00q0m9qvdbk"; depends=[dplyr tidyr]; };
   simpleMH = derive2 { name="simpleMH"; version="0.1.0"; sha256="02arll0w39b4cz7gslka26lvjg90xy83kqiyvm4gxnsbw7s9hkyr"; depends=[mvtnorm]; };
   simpleMLP = derive2 { name="simpleMLP"; version="1.0.0"; sha256="134h217d3ipzpxgj5fh04pkajqmxdnnlr53ykk27vi86dqk4087p"; depends=[ggplot2 readr]; };
   simpleNeural = derive2 { name="simpleNeural"; version="0.1.3"; sha256="01q04807qws870x1qhvlr3bp0dawy8q4bh00psakhln9j9dl1ljm"; depends=[]; };
@@ -16184,7 +16308,7 @@ in with self; {
   simplegraph = derive2 { name="simplegraph"; version="1.0.0"; sha256="1gcpbljp1fgaprxnmq23izf1h2x3p5dnxlylwqsnlcj50bvm46gq"; depends=[]; };
   simplegraphdb = derive2 { name="simplegraphdb"; version="2021.03.10"; sha256="0573hrv23nimmf3d8dgdynii79h84a3mfr4xxk3cggxhsxpfmb2i"; depends=[DBI rjson RSQLite]; };
   simplermarkdown = derive2 { name="simplermarkdown"; version="0.0.3"; sha256="1670x6fxqgdz471n12b9smfqrfpz282vcax1jsssficgw748lyw4"; depends=[rjson]; };
-  simplevis = derive2 { name="simplevis"; version="4.6.0"; sha256="0mfcfin3hq4aai0mc6drmw9asd02xc74pbvyvy1yr3fpf9888nsd"; depends=[dplyr DT forcats ggplot2 htmltools janitor kimisc leaflet leaflet_extras leafpop lubridate magrittr plotly purrr readr rlang scales sf shiny shinycssloaders snakecase stringr tibble tidyr tidyselect viridis]; };
+  simplevis = derive2 { name="simplevis"; version="5.0.0"; sha256="0hrv0dgghl9rba2rk2w1q4vg306djnz69hp4daxf462y95nnh1k7"; depends=[dplyr forcats ggplot2 htmlwidgets leafem leaflet leafpop lubridate magrittr purrr rlang scales sf snakecase stars stringr tidyr tidyselect viridis]; };
   simplexreg = derive2 { name="simplexreg"; version="1.3"; sha256="1zkh00xbddhgz0qn0a5pj12n0hpx4f5kihpfj71x92pmxpzglcxh"; depends=[Formula plotrix]; };
   simplextree = derive2 { name="simplextree"; version="1.0.1"; sha256="18jvzcz4fdsi17j7qdqpjvx6zygvlcvpziikb8qxskaib5180l08"; depends=[magrittr Rcpp]; };
   simputation = derive2 { name="simputation"; version="0.2.7"; sha256="0jw0j57pgg06ix7yr01bbv314w2dh08idjvsa46s02xkqn37cb7q"; depends=[gower MASS rpart]; };
@@ -16196,12 +16320,13 @@ in with self; {
   simsem = derive2 { name="simsem"; version="0.5-16"; sha256="0scjb308pb8ivy5blbk1wj9d1yxcqknhvh95a3728crfq2xcqnh0"; depends=[lavaan]; };
   simsl = derive2 { name="simsl"; version="0.2.1"; sha256="12dc9lcy11g1yynycvcqm62npq0v13bg6fnykb5m9ijwga4x51il"; depends=[mgcv]; };
   simstandard = derive2 { name="simstandard"; version="0.6.3"; sha256="1l1vny3csrr7krfpn25rzysmwjfv6mclf51y3mq02cimcwq9fzcy"; depends=[lavaan magrittr mvtnorm purrr rlang tibble]; };
-  simstudy = derive2 { name="simstudy"; version="0.2.1"; sha256="0cczfby7l8s0kmb7jzn2bl67i55nwgc4h3vixg9gsfgds32pisfc"; depends=[backports data_table glue mvnfast mvtnorm Rcpp]; };
+  simstudy = derive2 { name="simstudy"; version="0.3.0"; sha256="1dvfdrgyjnqij5hgr4ffw926m5anys03k6zv7h5jx5hpx5lfx5gv"; depends=[backports data_table glue mvnfast mvtnorm Rcpp]; };
   simsurv = derive2 { name="simsurv"; version="1.0.0"; sha256="16b2a3br107hy2fc0vann9wf5h9kb5j76baa37g1sfc0h19kg6kr"; depends=[]; };
   simtimer = derive2 { name="simtimer"; version="4.0.0"; sha256="1c5017xmh4767d75k4rs1pssyn7p5w41bcsjjmwk4c9g6w1jgx1w"; depends=[]; };
   simtrait = derive2 { name="simtrait"; version="1.0.21"; sha256="0l5x33ik4s8wlh9002dslygprh1q4j3nfr3s4yw8hpq12k5pvg8z"; depends=[PRROC]; };
   simts = derive2 { name="simts"; version="0.1.1"; sha256="1b76grf7c14pgyhphplnil4lkzbwn3dih4pv4xdy721ih9n9llby"; depends=[broom dplyr magrittr purrr Rcpp RcppArmadillo robcor scales tidyr]; };
   simukde = derive2 { name="simukde"; version="1.3.0"; sha256="0mpj8pfrlagc97v53idsiypjcpbaj07y6klanph5lkiwzsgbz8sv"; depends=[ks MASS mvtnorm]; };
+  simulariatools = derive2 { name="simulariatools"; version="2.4.0"; sha256="0p6yg9hxiz326ghvmc2miimv4y091z4dqgxc07zcp5miqf7b07ds"; depends=[dplyr ggplot2 lubridate openair png raster RColorBrewer reshape2 reticulate scales]; };
   simule = derive2 { name="simule"; version="1.3.0"; sha256="0jzyk1r2jfs7qivmy9x44c5bagy55jpy3hf0xpl9xnk409c3y2wd"; depends=[igraph lpSolve pcaPP]; };
   sinaplot = derive2 { name="sinaplot"; version="1.1.0"; sha256="0zfq6l8wjvdj7rndsfyh0a2xjlxmn2ij1q50hg3xjfpwrjxcsck8"; depends=[plyr]; };
   sinar = derive2 { name="sinar"; version="0.1.0"; sha256="0dywgqmvbrsygyvnln2mc5p6gaxvphr5byx7hkf0nkil54f2jzdf"; depends=[MASS numDeriv]; };
@@ -16223,11 +16348,11 @@ in with self; {
   siteymlgen = derive2 { name="siteymlgen"; version="1.0.0"; sha256="1176fnf39ars5cdjvy5w2k6b92qv51hy86s71sl8ghr0lwdq9f59"; depends=[data_table dplyr lubridate magrittr purrr rlist rmarkdown stringr yaml ymlthis]; };
   sitmo = derive2 { name="sitmo"; version="2.0.2"; sha256="1hm89zi38ldgbskyx1cn7gm87yqy7zrxli8q05a36y1ndvazi3j4"; depends=[Rcpp]; };
   sitools = derive2 { name="sitools"; version="1.4"; sha256="0c0qnvsv06g6v7hxad96fkp9j641v8472mbphvaxa60k3xc7ackb"; depends=[]; };
-  sitree = derive2 { name="sitree"; version="0.1-10"; sha256="1sspbzzr0xdzgx2n4yvj1vih952wz17qzk4vkjwpifbl8xkafw6v"; depends=[data_table ggplot2]; };
-  sitreeE = derive2 { name="sitreeE"; version="0.0-7"; sha256="07x7p0rqkmjlf6lykx9ckh9dbwjqjkmszrhar1vmpy54i8gv3ha7"; depends=[data_table sitree]; };
+  sitree = derive2 { name="sitree"; version="0.1-12"; sha256="0xhfq9w6rl11bb2l5n09byr2rbrqr9mli2qnnqcpz5dsy5bb17zv"; depends=[data_table ggplot2]; };
+  sitreeE = derive2 { name="sitreeE"; version="0.0-8"; sha256="0jwxca8y0nn1aqx4c6gikgf31nb4dll543m0akd4jmqx6fc450kd"; depends=[data_table sitree]; };
   sivs = derive2 { name="sivs"; version="0.2.5"; sha256="16w1yixb2wfgprnfm408l11nz9j28by7sz82x17rzmjb6p3n1jw5"; depends=[doParallel foreach glmnet pROC varhandle]; };
   sizeMat = derive2 { name="sizeMat"; version="1.1.2"; sha256="1vbndadsn80ddrg471vp1qxf0gan38w6dkjk1p2npvfb47wdjj2h"; depends=[MASS matrixStats MCMCpack]; };
-  sjPlot = derive2 { name="sjPlot"; version="2.8.9"; sha256="07b9p5wbb6xmyapg9j6i4cdcj7j9wj9gi30gljj6j2lj1flgdd7q"; depends=[bayestestR datawizard dplyr effectsize ggeffects ggplot2 insight knitr MASS parameters performance purrr rlang scales sjlabelled sjmisc sjstats tidyr]; };
+  sjPlot = derive2 { name="sjPlot"; version="2.8.10"; sha256="1rnwhh271xj8xgvvlpqw9ain56mfz37fvl7f6jq9nzx9jxx95bjd"; depends=[bayestestR datawizard dplyr effectsize ggeffects ggplot2 insight knitr MASS parameters performance purrr rlang scales sjlabelled sjmisc sjstats tidyr]; };
   sjdbc = derive2 { name="sjdbc"; version="1.6.1"; sha256="0cz5qc5lsipd3nlkzj8j03xmpzxp52c3q5av8pr7fm3vsdclawfk"; depends=[rJava]; };
   sjlabelled = derive2 { name="sjlabelled"; version="1.1.8"; sha256="17gskxr43rgbg7syla3b78g2qgksq2kj07iad4139xycqxblxya0"; depends=[insight]; };
   sjmisc = derive2 { name="sjmisc"; version="2.8.7"; sha256="17hcjb2j690qi2zrkwc14sr1wsid6dy6v7bfsf0bc94ql812k8g2"; depends=[dplyr insight magrittr purrr rlang sjlabelled tidyselect]; };
@@ -16238,20 +16363,20 @@ in with self; {
   skellam = derive2 { name="skellam"; version="0.2.0"; sha256="0r5wbs5h7xc3k2vjxd4axwnxr9cmwm008fcyj1vyixkg8fa680gx"; depends=[]; };
   sketch = derive2 { name="sketch"; version="1.1.17"; sha256="17lb4fnlwvdxgsm8iipcx4v6fn1vkf5wr9zwmm6m4p770651z116"; depends=[base64enc glue htmltools jsonlite magrittr purrr rlang rstudioapi shiny]; };
   sketcher = derive2 { name="sketcher"; version="0.1.3"; sha256="011lx15whrdj5q5h33h9brkzbn2fnpm1nx9ip1v9xl5xfkbj7952"; depends=[downloader dplyr imager jpeg magrittr png readbitmap stringr]; };
-  skewMLRM = derive2 { name="skewMLRM"; version="1.2"; sha256="0hcdq1x9z5p2yz6bv6gr9f6llz74p6187bqyr6q0p7037i6a5705"; depends=[clusterGeneration doParallel foreach MASS matrixcalc moments mvtnorm]; };
+  skewMLRM = derive2 { name="skewMLRM"; version="1.6"; sha256="16gr0haag0pqw7k7nvfqlc6s5i92lkpd0ghkgvlwgql8jzw7zmlk"; depends=[clusterGeneration doParallel foreach MASS matrixcalc moments mvtnorm]; };
   skewlmm = derive2 { name="skewlmm"; version="1.0.0"; sha256="1z7rz520vmjqmnak2zgxnnj7yhg7k2phclx3ilvkwzn9v8pd224j"; depends=[dplyr furrr future ggplot2 ggrepel haven moments mvtnorm nlme numDeriv optimParallel purrr]; };
   skewt = derive2 { name="skewt"; version="0.1"; sha256="1xm00zfzjv53cq9drfcx7w2ri5dwsq7kajrk2hc1mvw0b6s4x2ix"; depends=[]; };
   skilljaR = derive2 { name="skilljaR"; version="0.0.1"; sha256="1qfb4irslbmidjq358bkhadr71armk4jps78xz5bm0kxbj2nljhq"; depends=[dplyr httr jsonlite magrittr purrr]; };
   skimr = derive2 { name="skimr"; version="2.1.3"; sha256="02q5l1l1a9m602dg55gbb1zd3ymh0gxy6r815dj8cp769i8hqla1"; depends=[cli crayon dplyr knitr magrittr purrr repr rlang stringr tibble tidyr tidyselect vctrs withr]; };
-  sklarsomega = derive2 { name="sklarsomega"; version="2.0-1"; sha256="0pk3dk0bsbby4wnj8sad8yllix48hq3ayv3709kglc97d8bhjzha"; depends=[extraDistr hash LaplacesDemon Matrix mcmcse numDeriv spam]; };
+  sklarsomega = derive2 { name="sklarsomega"; version="3.0-1"; sha256="110j27wjj1z30b7y60lm6jdimb0x5yrj18qyb0m6m2fpsczg93w4"; depends=[dfoptim extraDistr hash LaplacesDemon Matrix mcmcse numDeriv spam]; };
   skm = derive2 { name="skm"; version="0.1.5.4"; sha256="06g3bdncq2r56d8k3dr87gqnibypbsps0gj4jxkw9q1sq1yaff3v"; depends=[data_table magrittr plyr Rcpp RcppArmadillo RcppParallel]; };
-  skmeans = derive2 { name="skmeans"; version="0.2-13"; sha256="1nks9k910fc0m07wpi9ridpyvgnnjlgw821mnvpv8skr4i75zy1w"; depends=[clue cluster slam]; };
+  skmeans = derive2 { name="skmeans"; version="0.2-14"; sha256="1kkp9zdwk1k3q50xp8g0jqgg3x1qzgigfkg37bpac7542276vsqq"; depends=[clue cluster slam]; };
   sknifedatar = derive2 { name="sknifedatar"; version="0.1.2"; sha256="0zi9anrxg9zkgxlzlfyry5i5zlj3fs8580mp6xckkl096dry9ih0"; depends=[cli dplyr knitr magrittr modeltime parsnip purrr rlang rsample tibble tidyr tune]; };
   skpr = derive2 { name="skpr"; version="1.0.0"; sha256="1p8wwan29jgc4p9pk0x19wwqnvy012bhci6s49za1wzvzxh6w7ia"; depends=[car doParallel doRNG foreach future gt iterators lazyeval lme4 lmerTest magrittr progress promises Rcpp RcppEigen rintrojs scales shiny shinyjs shinythemes survival viridis]; };
   skynet = derive2 { name="skynet"; version="1.4.0"; sha256="1ir8sw99fvdy8zp7ncgdnggr8hv1ph21kvdi9my42vlsh2fqi5ja"; depends=[data_table dplyr geosphere ggplot2 ggrepel httr igraph leaflet maps stringr]; };
   skyscapeR = derive2 { name="skyscapeR"; version="1.0.0"; sha256="1x3s003wdmnf0h1k3gl6cvd35g516y7v2yzahr3wxk2np832kjli"; depends=[doParallel foreach httr MESS numDeriv oce plotrix png RColorBrewer rootSolve swephR zoo]; };
   slackr = derive2 { name="slackr"; version="3.2.0"; sha256="10klljhkycnyqkzq73gj71c2phdqx9l3lb2jzancc59x21wjqn3b"; depends=[cachem dplyr ggplot2 httr jsonlite magrittr memoise rlang tibble withr]; };
-  slam = derive2 { name="slam"; version="0.1-48"; sha256="1ppsvkph4v1dffxgp12a4wnr9arj7pkmh4qv0and3f6nbz9k42qa"; depends=[]; };
+  slam = derive2 { name="slam"; version="0.1-49"; sha256="044hnfqbx57v5zr64gl09b5arj45swn9ywqzrl9rsc8267ys0028"; depends=[]; };
   slanter = derive2 { name="slanter"; version="0.2-0"; sha256="024dkman0r5qzc215gw0ds932vdaz8krrhv64fjw9pni37ixc3mf"; depends=[Matrix pheatmap pracma]; };
   slasso = derive2 { name="slasso"; version="1.0.0"; sha256="0k83szk6jzvn5353p9ia2ipmjyl65ivx95rj62rq8dyjfrdyzs0d"; depends=[cxxfunplus fda fda_usc inline MASS matrixcalc matrixStats plot3D Rcpp RcppArmadillo]; };
   sld = derive2 { name="sld"; version="0.3.3"; sha256="1ggvyx1nsfc1wwwzlqgvk6p5xxq6r6yx2rjv0290q7p06gc3i1ll"; depends=[lmom]; };
@@ -16281,7 +16406,6 @@ in with self; {
   smam = derive2 { name="smam"; version="0.6.0"; sha256="1vgsx1n9gkkjnv5lrrznpfqvh019qcjki6gy625k3ykqg5zg229v"; depends=[doParallel doSNOW EnvStats foreach Matrix nloptr numDeriv Rcpp RcppGSL RcppParallel]; };
   smapr = derive2 { name="smapr"; version="0.2.1"; sha256="1gcq66gs6968c5h303dqd2jyw2rcdwxv642ki1cmpdj6ix665dpr"; depends=[httr rappdirs raster rhdf5 rvest xml2]; };
   smartDesign = derive2 { name="smartDesign"; version="0.72"; sha256="1mq8h2zwj8mrq4s2bl3s6hzizpdjbl69c984hydxvzx2vgq1v8za"; depends=[knitr]; };
-  smartR = derive2 { name="smartR"; version="0.62.3"; sha256="0ardb4arhr7qmr30b3ahf7hkwlys9i420bm8h2688phahgfkk0y8"; depends=[caret chron cluster foreign ggplot2 ggrepel ggthemes gridExtra gstat gsubfn gWidgets2 gWidgets2RGtk2 igraph jpeg jsonlite lattice mapdata mapproj maps maptools marmap mtsdi nnls PBSmapping plyr R6 RColorBrewer reshape2 rgdal rgeos rjags ROCR rpart scales shape sp spdep sqldf vegan]; };
   smartmap = derive2 { name="smartmap"; version="0.1.1"; sha256="0pxbjkkknng7xa8ihba69n1a2w9052fsbb0w8fq1y1qrqmmibwdi"; depends=[leaflet magrittr sf]; };
   smartsizer = derive2 { name="smartsizer"; version="1.0.3"; sha256="1jfhba8p5flz4v0m770kb3p2gw4vgzpxqb0ngl9fhw30jzkx6nwd"; depends=[MASS]; };
   smartsnp = derive2 { name="smartsnp"; version="1.1.0"; sha256="1gzzhys6bja55iclkji254kri6r3iamiw7bv881mp615wi9r3hx2"; depends=[bootSVD data_table foreach Rcpp RcppArmadillo Rfast RSpectra vegan vroom]; };
@@ -16293,7 +16417,7 @@ in with self; {
   smd = derive2 { name="smd"; version="0.6.6"; sha256="1nvlka2prqh1hcj4ngpj2c2gmfryziijqwjyfy9fmq78skiq0jij"; depends=[MASS]; };
   smdata = derive2 { name="smdata"; version="1.2"; sha256="1p26b46kg4hmhs2fl9h9vchar00llqv58ylx438bjgzz4f229qvr"; depends=[]; };
   smds = derive2 { name="smds"; version="1.0"; sha256="0aqf3wfn6mlsl8a32gaf9qdpyxwsx19g6mma8qzgaysdmk6vhbpd"; depends=[MASS]; };
-  smerc = derive2 { name="smerc"; version="1.5"; sha256="0vsilvm0g9ghcpyvdcayc0iyl94gyr6zy30nbhnb0hxs4m0pgiq9"; depends=[MESS pbapply randtoolbox Rcpp RcppProgress sp]; };
+  smerc = derive2 { name="smerc"; version="1.5.2"; sha256="0c33xw4kk6x37fscv57lgxxrsg3ypgdsz5xfl4qrqg4svp48f7j7"; depends=[MESS pbapply randtoolbox Rcpp RcppProgress sp]; };
   smfishHmrf = derive2 { name="smfishHmrf"; version="0.1"; sha256="1k6mpyp11zv5rc3k98baymr903p2pf424nf9xng20q1li8s8y2ab"; depends=[fs pracma Rdpack]; };
   smfsb = derive2 { name="smfsb"; version="1.3"; sha256="1328w7zpwd3nam6ha4bh14g919jjl87v323ijmbp1j71gc64nn2i"; depends=[abind]; };
   smicd = derive2 { name="smicd"; version="1.1.2"; sha256="1v80sshsp3qlc1y7yz1pl4s2jk6khdsli3z2v0cjxfsv1izfd02x"; depends=[formula_tools Hmisc ineq laeken lme4 MuMIn mvtnorm truncnorm weights]; };
@@ -16322,7 +16446,8 @@ in with self; {
   sms = derive2 { name="sms"; version="2.3.1"; sha256="0vr5jy8bxbczaqr9kg0fnanxhv9nj51yzgacrb63k33cs85p981m"; depends=[doParallel foreach iterators]; };
   smss = derive2 { name="smss"; version="1.0-2"; sha256="04lgfdcvnzpnpplyl62fy7slyiy8wkqpjjrzmclgqis3c9zkkncp"; depends=[]; };
   smurf = derive2 { name="smurf"; version="1.1.2"; sha256="00q54pg42anilhcshhjvv277mkszbpzpkf1g7srs7cjd5skjvsaf"; depends=[catdata glmnet MASS Matrix mgcv RColorBrewer Rcpp RcppArmadillo speedglm]; };
-  sn = derive2 { name="sn"; version="2.0.0"; sha256="0sl8qzy9isy5fq8qxh1fg5285jzgy895nbgz8gdq5d0r6zdwrmmb"; depends=[mnormt numDeriv quantreg]; };
+  smvgraph = derive2 { name="smvgraph"; version="0.1.2"; sha256="06pvnrhd3q913nxhk1icj11xkd1is3qi31b0kv6zbc0qkixn1ym7"; depends=[DescTools fmsb MASS shiny shinydashboard sortable]; };
+  sn = derive2 { name="sn"; version="2.0.1"; sha256="1z58kwvq8igjm3biyyjdlhs2qq8hfjq5d9x0lzy80yk5hw08kcw6"; depends=[mnormt numDeriv quantreg]; };
   sna = derive2 { name="sna"; version="2.6"; sha256="0ai0v4538d30m4wks5s3lch1yfmx1ml0nnrz7ihs097lv586a09s"; depends=[network statnet_common]; };
   snahelper = derive2 { name="snahelper"; version="1.3.0"; sha256="130pzmnvcqqgpi7h8fn61qrshq61h6w5i25shbng6bbw5kw4kchf"; depends=[colourpicker DT formatR ggplot2 ggraph graphlayouts igraph miniUI rstudioapi shiny]; };
   snakecase = derive2 { name="snakecase"; version="0.11.0"; sha256="1ky1x2cp5rd0ffd9m1fji9sq4z4jsrpxzg30brw8bb4ihfjj114r"; depends=[stringi stringr]; };
@@ -16399,13 +16524,12 @@ in with self; {
   sound = derive2 { name="sound"; version="1.4.5"; sha256="1kbbb614d0fmj9l0yjiwf5yqnl7sby4xklp7qwp6rwjvq9bnm0ab"; depends=[]; };
   soundcorrs = derive2 { name="soundcorrs"; version="0.4.0"; sha256="1azvsv3bghlab8q24wbb6xwd5a4cydx1cagvhk8h0h5ib9957zab"; depends=[]; };
   soundecology = derive2 { name="soundecology"; version="1.3.3"; sha256="16h6gbdlyav7wbfisdv1f2zsqhr45liidgj7qqk8giwjxgan8q97"; depends=[ineq oce pracma seewave tuneR vegan]; };
-  soundgen = derive2 { name="soundgen"; version="2.4.0"; sha256="0rynd8212njvp0rfgh9pddng1m3815mjgvywfnx50ipamj11v13z"; depends=[dtw mvtnorm phonTools reshape2 seewave shiny shinyBS shinyjs signal tuneR zoo]; };
+  soundgen = derive2 { name="soundgen"; version="2.5.0"; sha256="0shvrz37l65ka8yxqzynanz33wmiiagglnvgqy4ihs6x8yxx10qs"; depends=[doParallel dtw foreach mvtnorm phonTools reshape2 seewave shiny shinyBS shinyjs signal tuneR zoo]; };
   sourceR = derive2 { name="sourceR"; version="1.1.0"; sha256="09mikl6rkigx2bdnwqsgxwksz40lspq27hsrhlnfyz5yhs31ssda"; depends=[assertthat cluster dplyr gplots gtools R6 Rcpp reshape2 SPIn tensorA]; };
   sourcetools = derive2 { name="sourcetools"; version="0.1.7"; sha256="1jnjir0q2dj724f1mjm6p5h77yzyx6xcqy9r2g7gmcxkxw349627"; depends=[]; };
   sovereign = derive2 { name="sovereign"; version="1.2.0"; sha256="06maaw366k0pfdmj09rj7l4chv6mynhs67mmr98gfwqhsabhqfxh"; depends=[broom dplyr furrr future ggplot2 gridExtra lmtest lubridate magrittr mclust purrr randomForest sandwich stringr strucchange tidyr xts zoo]; };
-  sp = derive2 { name="sp"; version="1.4-5"; sha256="1nh9izsnszzm5kbq461w8bi0yh7fqzb74b2zmpg5qis0slbb5vkb"; depends=[lattice]; };
+  sp = derive2 { name="sp"; version="1.4-6"; sha256="09m2ddbrbs2aqnq5si42ipa0g1vbd0pxg4zbcx59is2047pv7sws"; depends=[lattice]; };
   sp23design = derive2 { name="sp23design"; version="0.9"; sha256="1ihvcld19cxflq2h93m9k9yaidhwixvbn46fqqc1p3wxzplmh8bs"; depends=[mvtnorm survival]; };
-  spANOVA = derive2 { name="spANOVA"; version="0.99.3"; sha256="0w817zwbk6amh3n3j8wzjr15qqhfbk9s23c77b27iwcc5akdgbix"; depends=[ape car DT geoR gtools knitr MASS Matrix multcomp multcompView mvtnorm rmarkdown ScottKnott shiny shinyBS shinycssloaders shinythemes spatialreg spdep xtable]; };
   spAddins = derive2 { name="spAddins"; version="0.2.0"; sha256="19wbcghcf0f9qvqy92jhsdcpmd9b4lkhxndvr71cyhzga539lh1n"; depends=[magrittr purrr rstudioapi stringr]; };
   spBFA = derive2 { name="spBFA"; version="1.1"; sha256="1jx1w9ipf8q08vx1w80s4h7nvgl2xqwcj7afci3j78psc6bigazi"; depends=[msm mvtnorm pgdraw Rcpp RcppArmadillo]; };
   spBayes = derive2 { name="spBayes"; version="0.4-5"; sha256="1qjh7y241v9z5al9nwdsbdqr15cj1prsrppwvbv4m5h285npvnji"; depends=[coda Formula magic Matrix sp]; };
@@ -16419,10 +16543,11 @@ in with self; {
   spMaps = derive2 { name="spMaps"; version="0.4.0"; sha256="0n9693aam7gsclfhijq7cy61l0w4mm5vf3rjaz5w0jrz77lrkprh"; depends=[raster rgeos sp]; };
   spNNGP = derive2 { name="spNNGP"; version="0.1.6"; sha256="12ys92r2xpmnhy6hw8sldcz0y28gnxpwnj6sm5jc1lfyz7k1ww6f"; depends=[coda Formula RANN]; };
   spNetwork = derive2 { name="spNetwork"; version="0.2.1"; sha256="0hmg68v5a7d1ixwj9nvh7kd948r7kspar6nd3yp02mgj495ps1z8"; depends=[BH cubature data_table future_apply ggplot2 igraph maptools progressr raster Rcpp RcppArmadillo RcppProgress Rdpack rgeos SearchTrees sp spdep]; };
+  spOccupancy = derive2 { name="spOccupancy"; version="0.1.3"; sha256="0xwqnhi7iw1gwgggxaaahrnc8d5cdr8cjz3jj5v835lc0jg0wxcf"; depends=[abind coda doParallel foreach lme4 RANN spBayes]; };
   spTDyn = derive2 { name="spTDyn"; version="2.0.1"; sha256="1wprn2adw4l5pkwkfzdpcr07jxgycx9kaf8w8mfv27nka5hacgqx"; depends=[coda sp spacetime spTimer]; };
   spThin = derive2 { name="spThin"; version="0.2.0"; sha256="0j10j1cbbwp3baqm3b59rxlnd643mkx1mirlxpnr1ad2g7xpm69f"; depends=[fields knitr spam]; };
   spTimer = derive2 { name="spTimer"; version="3.3.1"; sha256="0lf39n32ifsmbcf35h0g60xniw72mlrzvzax3k6kz5c5k1wszlba"; depends=[coda extraDistr sp spacetime]; };
-  spaMM = derive2 { name="spaMM"; version="3.9.13"; sha256="05157vl2728241bylb8zmj6z0xsbshb4qmn2vlazymn60s8x5ppr"; depends=[boot crayon gmp MASS Matrix minqa nlme nloptr pbapply proxy Rcpp RcppEigen ROI]; };
+  spaMM = derive2 { name="spaMM"; version="3.9.25"; sha256="01a05f3wbgi0x6ybdym1g673vnqgkb1r1ldk17wwdj58yz5sdq06"; depends=[boot crayon gmp MASS Matrix minqa nlme nloptr pbapply proxy Rcpp RcppEigen ROI]; };
   spaa = derive2 { name="spaa"; version="0.2.2"; sha256="163iipz1knxx1lzby9a3n1f014yqkf25z1wpwwy4gbx7sia499d5"; depends=[]; };
   space = derive2 { name="space"; version="0.1-1.1"; sha256="09dpksbda4lg5hax47a9h9shjmggza6583slvdj0fldblykpyxck"; depends=[]; };
   spaceNet = derive2 { name="spaceNet"; version="1.2"; sha256="1s2672icxs0qvdhl52xhllgvh1i9mjfrn5j3icyw6h61ljbnhy11"; depends=[MASS mclust permute RcppTN Rfast sna vegan]; };
@@ -16440,7 +16565,7 @@ in with self; {
   spamtree = derive2 { name="spamtree"; version="0.2.1"; sha256="06j0qjhdjgpbad82gq6zgp6vbh6rdpnbpnkj0836lmi1180x7fay"; depends=[dplyr FNN magrittr Rcpp RcppArmadillo rlang tibble]; };
   spanel = derive2 { name="spanel"; version="0.1"; sha256="1riyvvfij277mclgik41gyi01qv0k466wyk2wbqqhlvrlj79yzsc"; depends=[]; };
   spanish = derive2 { name="spanish"; version="0.4.2"; sha256="15drc11lh0qxpww50p0smi8qxfbln82bx0yd74jqf71irhk5jxyp"; depends=[magrittr xml2]; };
-  spant = derive2 { name="spant"; version="1.15.0"; sha256="1kr5ainz31r8fl052id8i4v9ybswp7mk5jxhh7pim9df3ndxfsi5"; depends=[abind complexplus fields foreach irlba jsonlite magrittr minpack_lm mmand nloptr numDeriv plyr pracma ptw RNifti RNiftyReg signal smoother stringr]; };
+  spant = derive2 { name="spant"; version="1.16.0"; sha256="07l5wzwjjgwdyl7cc988icv0z96108lz0f092jgsbvv75ml6nnlh"; depends=[abind expm fields foreach irlba jsonlite magrittr minpack_lm mmand nloptr numDeriv plyr pracma ptw RNifti RNiftyReg signal smoother stringr]; };
   sparcl = derive2 { name="sparcl"; version="1.0.4"; sha256="138krflvfdlx4hlh90mswds51i8aw2vv00gm5lgkfsvxj4w324jg"; depends=[]; };
   spark_sas7bdat = derive2 { name="spark.sas7bdat"; version="1.4"; sha256="1s1hd6hvjxnfb3w10v93pggijmm2h4rcsf7ckl34j2sw9bvv7zka"; depends=[sparklyr]; };
   sparkavro = derive2 { name="sparkavro"; version="0.3.0"; sha256="0g6ac9msfbx8f8j8rj0hvlxjsn317zyam207q7i8kf0hshs1r58f"; depends=[DBI dplyr sparklyr]; };
@@ -16482,10 +16607,9 @@ in with self; {
   sparsevar = derive2 { name="sparsevar"; version="0.1.0"; sha256="1kcy6bm04mccky529nryy5l001bv71hx304ysiabl4myakw0rwy7"; depends=[corpcor doParallel ggplot2 glmnet Matrix mvtnorm ncvreg picasso reshape2]; };
   sparsevb = derive2 { name="sparsevb"; version="0.1.0"; sha256="1cigq8hwymrrkiy3iyrxsjjbj228ahrd7mq9lqar4jlb925jzqx4"; depends=[glmnet Rcpp RcppArmadillo RcppEnsmallen selectiveInference]; };
   sparsio = derive2 { name="sparsio"; version="1.0.1"; sha256="181kzs9x3h497c7shfalbzrjz05bkj7mmjh9nyphxyi2jjrr6y1q"; depends=[Matrix Rcpp]; };
-  sparta = derive2 { name="sparta"; version="0.8.1.1"; sha256="19gqfrzqnks6vx8d4jif3finc39whaxq3zid7hzd3cv28wv8wbz7"; depends=[Rcpp RcppArmadillo]; };
+  sparta = derive2 { name="sparta"; version="0.8.2"; sha256="0gvpa0vikkn51jih4ji569f04dhxrblir761i6xp6r0dh7mifi9i"; depends=[Rcpp RcppArmadillo]; };
   spass = derive2 { name="spass"; version="1.3"; sha256="1c148z0i3d185hnf54xmgppjrblv3b2s3sm0lmj78gvav04mj5s4"; depends=[geepack MASS multcomp mvtnorm Rcpp]; };
   spatPomp = derive2 { name="spatPomp"; version="0.28.0.0"; sha256="0yql6llgclynd2nv1y4sm1a6lsc87003bqbq9skh3lgvdgbg5qsr"; depends=[abind dplyr foreach ggplot2 magrittr pomp rlang stringr tidyr]; };
-  spate = derive2 { name="spate"; version="1.7"; sha256="1cr5jjrycfj9larsqgzfakk4qgfz8m5djg4ddzk6s3lg2iw06y43"; depends=[mvtnorm truncnorm]; };
   spatgraphs = derive2 { name="spatgraphs"; version="3.2-2"; sha256="09bbcqgmbg6a65mnxivr4pghsanj22x1j0l4hq8bzpwgbas7byhy"; depends=[Matrix Rcpp]; };
   spathial = derive2 { name="spathial"; version="0.1.2"; sha256="1vwzcwpmx8kwv821vjf940qd5am3k0shf1s14jva71mgxs70ddmb"; depends=[class igraph irlba knitr MASS matrixStats pracma rmarkdown Rtsne]; };
   spatial = derive2 { name="spatial"; version="7.3-14"; sha256="0dlafq744mahxpb13llmsrg54fzww8ld1nbxmr7m851gff11kk2j"; depends=[]; };
@@ -16493,18 +16617,17 @@ in with self; {
   spatialEco = derive2 { name="spatialEco"; version="1.3-7"; sha256="0yhv4amqwbmcx6anzyrsmlrk25ishdlwyigyw9snd9d2v5k88s1q"; depends=[MASS raster rgeos sf sp spatstat_core spatstat_geom spdep]; };
   spatialRF = derive2 { name="spatialRF"; version="1.1.3"; sha256="1ganbsp7krazl90mdlq23g227ixmxpk4yzxl47rayd431vg6fys1"; depends=[doParallel dplyr foreach ggplot2 huxtable magrittr patchwork ranger rlang tibble tidyr tidyselect viridis]; };
   spatialTIME = derive2 { name="spatialTIME"; version="1.2.0"; sha256="0pmpk2kfh53gfzw33ncr1pjzyh7zprkdwgxqgajvd8y2wb90a462"; depends=[crayon dplyr furrr future ggplot2 ggpubr magrittr pheatmap plyr purrr RColorBrewer rlang rlist scales spatstat_core spatstat_geom tidyr tidyselect viridis]; };
-  spatialfusion = derive2 { name="spatialfusion"; version="0.6-4"; sha256="18ji1pps5kb0mbff620mw7zm6nzyy3nfclmcpl677xd9927apvn9"; depends=[fields Rcpp rstan SDraw sp]; };
   spatialnbda = derive2 { name="spatialnbda"; version="1.0"; sha256="14mx5jybymasyia752f3vnr5vmswcavbz8bpqr69vlxphw27qkwk"; depends=[mvtnorm SocialNetworks]; };
   spatialprobit = derive2 { name="spatialprobit"; version="0.9-11"; sha256="1cpxxylc0pm7h9m83m2cklrh4jni5x79r5m5gibxi6viahwxn9kc"; depends=[Matrix mvtnorm spdep tmvtnorm]; };
-  spatialreg = derive2 { name="spatialreg"; version="1.1-8"; sha256="045fn7zib7asimj43bs9b9mr2fy1fpa31a077bxbqn4729hrdxs2"; depends=[boot coda expm gmodels LearnBayes MASS Matrix nlme spData spdep]; };
-  spatialrisk = derive2 { name="spatialrisk"; version="0.6.9"; sha256="06crwxc6bb1r5hypjiikyv71h62ka59bmbw9h32kgm4ks6f8g361"; depends=[classInt colourvalues data_table dplyr fs GenSA geohashTools ggplot2 leafem leafgl leaflet lubridate Rcpp RcppProgress sf tmap units viridis]; };
+  spatialreg = derive2 { name="spatialreg"; version="1.2-1"; sha256="10d0gd21s84r7d5i1h62zavb40ws9c6vikrk8qjii25a66rvch2c"; depends=[boot coda expm gmodels LearnBayes MASS Matrix nlme sf spData spdep]; };
+  spatialrisk = derive2 { name="spatialrisk"; version="0.7.0"; sha256="0mqi8jrz1msk2aaza67vfp9s21f372mhvbivwxy56fxrl7vp975v"; depends=[classInt colourvalues data_table dplyr fs GenSA geohashTools ggplot2 leafem leafgl leaflet lubridate Rcpp RcppProgress sf tmap units viridis]; };
   spatialsample = derive2 { name="spatialsample"; version="0.1.0"; sha256="0w57pl09pamx8mmrwyj2hixxqp9cf0xg06gvsrrg4abjbkj0i1pr"; depends=[dplyr purrr rlang rsample tibble tidyselect vctrs]; };
   spatialwarnings = derive2 { name="spatialwarnings"; version="3.0.0"; sha256="1m6dbfngnbzqlbdvm1qvlb743zypf4cqczihdhbhny9mfgmwds5i"; depends=[future future_apply ggplot2 gsl plyr Rcpp RcppArmadillo segmented]; };
   spatialwidget = derive2 { name="spatialwidget"; version="0.2.3"; sha256="0j0v0cyqndlg9p7g03gp1br9b2i3p50abzpw67k3cawm96a87crj"; depends=[BH colourvalues geojsonsf geometries jsonify rapidjsonr Rcpp sfheaders]; };
   spatsoc = derive2 { name="spatsoc"; version="0.1.16"; sha256="1pyw6606kwskgcfnzvgzvy8n4i9s3mmn1789d1lhk04h14r33fns"; depends=[adehabitatHR data_table igraph rgeos sp]; };
   spatstat = derive2 { name="spatstat"; version="2.2-0"; sha256="0lz3sidn05xjswxaxhagal6jj5hra6aya0azxybjw7mgspl903wg"; depends=[spatstat_core spatstat_data spatstat_geom spatstat_linnet spatstat_utils]; };
   spatstat_Knet = derive2 { name="spatstat.Knet"; version="2.0-0"; sha256="1w9ag7v18mvy4dl1gz2w8xjhw9n2sf9zycqz3mraajis831c76ix"; depends=[Matrix spatstat_core spatstat_data spatstat_geom spatstat_linnet spatstat_sparse spatstat_utils]; };
-  spatstat_core = derive2 { name="spatstat.core"; version="2.3-0"; sha256="1j962lzllqzxkd57j6immyj94pc53ff9mlvw1iscw7cnn9nyr5ap"; depends=[abind goftest Matrix mgcv nlme rpart spatstat_data spatstat_geom spatstat_sparse spatstat_utils tensor]; };
+  spatstat_core = derive2 { name="spatstat.core"; version="2.3-2"; sha256="0g7nj8nf9ywhdbc5irxlry6kzq6bwwbkk9cp22kyv1wigycnskbz"; depends=[abind goftest Matrix mgcv nlme rpart spatstat_data spatstat_geom spatstat_sparse spatstat_utils tensor]; };
   spatstat_data = derive2 { name="spatstat.data"; version="2.1-0"; sha256="0csmz5vjaxnznkbsfah8qd3v8p0y56jvis01ialxzvf71snl160v"; depends=[Matrix spatstat_utils]; };
   spatstat_geom = derive2 { name="spatstat.geom"; version="2.3-0"; sha256="1iz9zi45nli5lf96ng6bqqbl4ix3zxzlfclkg4cdb9h98nj4c5vv"; depends=[deldir polyclip spatstat_data spatstat_utils]; };
   spatstat_gui = derive2 { name="spatstat.gui"; version="2.0-0"; sha256="0v26pmi6ir38hsfhkmkz7njf8b12y8dgacqz54vy9giq73k71j14"; depends=[rpanel spatstat_core spatstat_data spatstat_geom spatstat_linnet spatstat_utils]; };
@@ -16520,7 +16643,7 @@ in with self; {
   spcov = derive2 { name="spcov"; version="1.01"; sha256="1brmy64wbk56bwz9va7mc86a0ajbfy09qpjafyq2jv7gm7a35ph5"; depends=[]; };
   spcr = derive2 { name="spcr"; version="2.1"; sha256="08lpcj49sj0bc2vz54wigdb9dqn182c11q31n3sdkc41spgk0s7a"; depends=[]; };
   spd = derive2 { name="spd"; version="2.0-1"; sha256="00zxh4ri47b61jkcjf5idl9hhlfld6rhczsnhmjsax59884f2i8m"; depends=[KernSmooth]; };
-  spdep = derive2 { name="spdep"; version="1.1-11"; sha256="1ym523dzpiji6c8ypa3gvw8va36gl1gnzcsvdg9drly3mlq42rpr"; depends=[boot coda deldir e1071 expm gmodels LearnBayes MASS Matrix nlme s2 sf sp spData units]; };
+  spdep = derive2 { name="spdep"; version="1.1-12"; sha256="1dykhsk5djh62b3zcvpmvm3s87rn8ywzbwblhzivhln0y6pzk9hv"; depends=[boot coda deldir e1071 expm gmodels LearnBayes MASS Matrix nlme s2 sf sp spData units]; };
   spdownscale = derive2 { name="spdownscale"; version="0.1.0"; sha256="0pl560km9629iwy13h7359ab7ixzs09hg986kvk0xbnc348srb86"; depends=[]; };
   spdplyr = derive2 { name="spdplyr"; version="0.4.0"; sha256="0lijp78wgrky103137vfk3k4s051qppd6jq6s065k9i7y1azbpc1"; depends=[dplyr rlang sp spbabel tibble]; };
   spduration = derive2 { name="spduration"; version="0.17.1"; sha256="1hsz4hcw85f1rj2pd8ppzsd1r8fh4yf6axc11yf2hd287ghzzxzy"; depends=[corpcor forecast MASS plyr Rcpp RcppArmadillo separationplot xtable]; };
@@ -16546,17 +16669,16 @@ in with self; {
   sped = derive2 { name="sped"; version="0.2-1"; sha256="05igpk8szdcs6kjhpmd9dmjvqdg199pz3hi0rwkhdjglxivvjzjn"; depends=[pooh]; };
   speech = derive2 { name="speech"; version="0.1.4"; sha256="17j4hwfqsazakkdxdrx87dfpmdsh51mms31sm3hpnzh4j7ijcg86"; depends=[dplyr lubridate magrittr pdftools purrr rvest stringr tibble tidyr tm]; };
   speedglm = derive2 { name="speedglm"; version="0.3-3"; sha256="0f37w4lj8dpcg1sfkd7cv6qpdkanmb97mnd8zih2fxzv8bpd0rfh"; depends=[MASS Matrix]; };
-  speedycode = derive2 { name="speedycode"; version="0.1.0"; sha256="1bmhc7x8smjs3d880ah9h6phb3igrd95b31wyg3pgzdb6lh8xa13"; depends=[dplyr purrr stringr]; };
+  speedycode = derive2 { name="speedycode"; version="0.2.0"; sha256="1fz8a6z77r17rld1qqiq3hsk65fpjz8f6czcfqsc8y2fxm0jy602"; depends=[dplyr purrr stringr]; };
   spef = derive2 { name="spef"; version="1.0.9"; sha256="115lmv2a21ws1mj22v1fbk72mqn3siqmw3frbg4nci96lnyr7qh6"; depends=[BB ggplot2 nleqslv plyr sm SQUAREM survival]; };
   speff2trial = derive2 { name="speff2trial"; version="1.0.4"; sha256="0dj5mh2sdp6j4ijgv14hjr39rasab8g83lx1d9y50av11yhbf2pw"; depends=[leaps survival]; };
   spellcheckr = derive2 { name="spellcheckr"; version="0.1.2"; sha256="09snc1ymzr4njnr3w502b84dqwjjd414higjxqi48jvh27br5k1l"; depends=[data_table dplyr stringr]; };
   spelling = derive2 { name="spelling"; version="2.2"; sha256="179nj9w1v27qq9q5240ddvggp0795998sxyqjvbqjvq9dmach3bl"; depends=[commonmark hunspell knitr xml2]; };
   spemd = derive2 { name="spemd"; version="0.1-1"; sha256="1aw8dg2fm8qd95bgim2kjwp7ax4b2g78521llsxv7fhdj9hl7rgw"; depends=[MBA sp spdep]; };
   sperich = derive2 { name="sperich"; version="1.5-8"; sha256="0v4mnv9nl0dvmmfx10w03k02pwjjnip9526m3j1kpgn6c4wk1h93"; depends=[foreach rgdal sp]; };
-  sperrorest = derive2 { name="sperrorest"; version="3.0.2"; sha256="195bdg8fd619z0i8jw1rm1zm2qcdq7hb2h5ynq1lf3a2j0y3fdpl"; depends=[future future_apply ROCR stringr]; };
+  sperrorest = derive2 { name="sperrorest"; version="3.0.4"; sha256="169bv07vwlbn2ihw0f8hx10qrfdww9lqb2j8wgrkh1xnkskz13hv"; depends=[dplyr future future_apply ROCR stringr]; };
   spex = derive2 { name="spex"; version="0.7.1"; sha256="0lsmh1sywd4si0v10aix44hybwph3gan8w8cxz956dcgkz60p41v"; depends=[crsmeta quadmesh raster reproj sp]; };
   spfda = derive2 { name="spfda"; version="0.9.0"; sha256="156vs1f75x0wbf65fwzkhlbda649sryf58xixi7gbfjzn873w111"; depends=[mathjaxr]; };
-  spfilteR = derive2 { name="spfilteR"; version="1.1.1"; sha256="0y6jmg4iz584c35r6xs16z8zbs2z5y8g6wshnall7i6g2hv35nnj"; depends=[]; };
   spflow = derive2 { name="spflow"; version="0.1.0"; sha256="0a5nirccwcc2z4dn3gxdlhdjz7sxv1r23clawy0kwn4ggdkmphp1"; depends=[coda Matrix Rdpack RSpectra]; };
   spfrontier = derive2 { name="spfrontier"; version="0.2.5"; sha256="1vnvwcjbhvbmyn5rp4760amzy8k3y156q629fjymw9rw6zy45pbf"; depends=[ezsim moments mvtnorm numDeriv optimx spdep tmvtnorm]; };
   spftir = derive2 { name="spftir"; version="0.1.0"; sha256="07vw8igy698jx671cj6hmf6ll9xvaq81fb6la7j95pqbd6jl284z"; depends=[pracma]; };
@@ -16587,7 +16709,7 @@ in with self; {
   splines2 = derive2 { name="splines2"; version="0.4.5"; sha256="0vgwgrkrkl2j6pcr98gylm3q60aiqdj9n9ndpj6szzn3ygjr0j9q"; depends=[Rcpp RcppArmadillo]; };
   splinetree = derive2 { name="splinetree"; version="0.2.0"; sha256="0gqb3kwca42crrx6fj42ryl5pkxvankhp1chdlvi5lgg8mzmqsnl"; depends=[ggplot2 mclust mosaic nlme rpart treeClust]; };
   splitFeas = derive2 { name="splitFeas"; version="0.1.0"; sha256="1cfiis32h5kkp8r1mndmj4xss9gw96vdzk7q68q3jhbwqiaxp9rp"; depends=[corpcor matrixStats]; };
-  splitSelect = derive2 { name="splitSelect"; version="1.0.2"; sha256="0bx5b2v274i5bsfmp8ggsphzacf9gvgnravki438q3j5sx5888fz"; depends=[doParallel foreach glmnet multicool]; };
+  splitSelect = derive2 { name="splitSelect"; version="1.0.3"; sha256="03gziy1hhm35hw8q2w9w6d4x2zci5q2wds0mkzihvfm0wkshi4fw"; depends=[doParallel foreach glmnet multicool]; };
   splitTools = derive2 { name="splitTools"; version="0.3.1"; sha256="015vk8awxfc3zmcm3h51b6fy7si31g8w7mg4ig5fvpgsnm97h7rw"; depends=[]; };
   splitfngr = derive2 { name="splitfngr"; version="0.1.2"; sha256="0cf9y68m72j890a732m0n784nr12ydljr6s8i80f0in6q8lmw8ls"; depends=[lbfgs]; };
   splithalf = derive2 { name="splithalf"; version="0.7.2"; sha256="1b66dssjjs3j7wvjx12ql1iavfllh366cb5kbf5scxg882zjdi0l"; depends=[dplyr ggplot2 patchwork plyr Rcpp robustbase tidyr]; };
@@ -16603,7 +16725,7 @@ in with self; {
   spm = derive2 { name="spm"; version="1.2.1"; sha256="0gr6dc5xcz4y84iibkfi3gi84yij5vvazi1yrwd54jblf3fx32jr"; depends=[biomod2 gbm gstat psy randomForest ranger sp]; };
   spm12r = derive2 { name="spm12r"; version="2.8.3"; sha256="04bv4x7p2vv9n8zi5axpkcj13h6q08lc6qyd1czvxrpdmzsp40yb"; depends=[git2r matlabr neurobase oro_nifti R_utils]; };
   spm2 = derive2 { name="spm2"; version="1.1.0"; sha256="0aw6b4j0b452hf3vi47id3r4qnmngzzfa9cdh09rammj3mvmqb4i"; depends=[e1071 gbm glmnet gstat MASS nlme psy randomForest ranger sp spm]; };
-  spmoran = derive2 { name="spmoran"; version="0.2.2"; sha256="0qympyy5qwcxxpi3ygvsac8wnzw83c3pjiq1hqj1zd7immx2wp9a"; depends=[doParallel fields FNN foreach ggplot2 Matrix rARPACK RColorBrewer sp spdep vegan]; };
+  spmoran = derive2 { name="spmoran"; version="0.2.2.1"; sha256="095c1wl3232gkaf4q02k6awsb4y031y0ss4345yw5xxxcrr5g7jj"; depends=[doParallel fields FNN foreach ggplot2 Matrix rARPACK RColorBrewer sp spdep vegan]; };
   spnet = derive2 { name="spnet"; version="0.9.1-0"; sha256="1fy0fpgz2k985brfqyza1l49y0w2j9z308n542pgmkzqsnsdscpw"; depends=[shape sp]; };
   spnn = derive2 { name="spnn"; version="1.2.1"; sha256="1yj89j7nynfyw1ikm6q5kdwdgiiwxx0aa6kgnri5wfnb4l0356l7"; depends=[MASS Rcpp RcppArmadillo]; };
   spocc = derive2 { name="spocc"; version="1.2.0"; sha256="114xlwd9200ysgkcwxgjc5awj50j4k4v1lgbdjzs7gv9bvdlbb2b"; depends=[crul data_table jsonlite lubridate rbison rebird rgbif ridigbio rvertnet tibble wellknown whisker]; };
@@ -16616,14 +16738,15 @@ in with self; {
   sportyR = derive2 { name="sportyR"; version="1.0.1"; sha256="03l5zyqdrzji58acq5mmczz7nx9yk29hf5dzagpgb8fraq1vvddi"; depends=[dplyr ggplot2 glue]; };
   spotGUI = derive2 { name="spotGUI"; version="0.2.3"; sha256="0hybpw0lgqrzrryfp08qvl42hrgdmx2hq7bavxjihm8mp0375dmz"; depends=[batchtools gridExtra httpuv plotly rclipboard rhandsontable shiny shinyBS shinydashboard shinyFiles shinyjs smoof SPOT XML]; };
   spotidy = derive2 { name="spotidy"; version="0.1.0"; sha256="0hg8d3piiwp4q3257qsv5l41zc3c5a8mbq595ci63id8fc2q2pkd"; depends=[dplyr httr magrittr purrr]; };
-  spotifyr = derive2 { name="spotifyr"; version="2.2.1"; sha256="0yj00sn73jl741c6ma68cxm1i6gv5s9xnj0k07c90mhhb6sxfq9y"; depends=[assertthat dplyr genius ggridges httr janitor jsonlite lubridate magrittr purrr readr rlang rvest stringr tibble tidyr xml2]; };
-  spotoroo = derive2 { name="spotoroo"; version="0.1.1"; sha256="0xh7fxkry63fm83vfc2njjzp4r6gb5b2242ima8q75mrvjc5biax"; depends=[cli dplyr geodist ggbeeswarm ggExtra ggplot2 ggrepel patchwork progress]; };
+  spotifyr = derive2 { name="spotifyr"; version="2.2.3"; sha256="1gpi7d40rdx4dvx5699xj5zisz48arwni18sszvp8phvhgqbj0lh"; depends=[assertthat dplyr genius ggridges httr janitor jsonlite lubridate magrittr purrr readr rlang rvest stringr tibble tidyr xml2]; };
+  spotoroo = derive2 { name="spotoroo"; version="0.1.2"; sha256="04zmb0smljr0yszhd789mqm5ds3l71k5cfd9v173d04r5vv8z77a"; depends=[cli dplyr geodist ggbeeswarm ggExtra ggplot2 ggrepel patchwork progress]; };
   spp = derive2 { name="spp"; version="1.16.0"; sha256="08zxxgyp0h6733b08jmml7k4rhfd3mi5dda3jrzid0s184y0z29w"; depends=[BH caTools Rcpp Rsamtools]; };
-  spray = derive2 { name="spray"; version="1.0-11"; sha256="0zg7rhsxbbrbvjv4azkyl9fd5kgh0a5xnkr9lnaqiss8z109jl6v"; depends=[magic mathjaxr partitions Rcpp]; };
+  spray = derive2 { name="spray"; version="1.0-16"; sha256="1js6bdvz1sw1rnaa4k2pbkk5sm6rm3xn0fgg1w1jxqws817wpyib"; depends=[disordR magic mathjaxr partitions Rcpp]; };
   spreadr = derive2 { name="spreadr"; version="0.2.0"; sha256="180dvr39i1glc0jllsnnglwrxh133q20v7px2fmdi7229pr175id"; depends=[assertthat extrafont ggplot2 igraph Matrix Rcpp]; };
   spreval = derive2 { name="spreval"; version="1.0.0"; sha256="0949ms3d2r94vbsqyfma4vfavf0gdq58xs7nkirgrfxjd1a65vfm"; depends=[interp timeDate]; };
   sprex = derive2 { name="sprex"; version="1.4.1"; sha256="14idml4mipd4wyza7hqf49ww4dparmwaps35hxm8jg5h0w1pgh7j"; depends=[swfscMisc]; };
   springer = derive2 { name="springer"; version="0.1.5"; sha256="197zmn90zrqv9g0kzwnzs14g1sh3cx2hnp5x92dfp96xcb650dz1"; depends=[MASS Rcpp RcppArmadillo]; };
+  springpheno = derive2 { name="springpheno"; version="0.5.0"; sha256="16pa56k1pbazv3vx5lhzc8n3pazrfh1q4bi7116bbvsdgpp9vs8g"; depends=[]; };
   sprintr = derive2 { name="sprintr"; version="0.9.0"; sha256="0nnzjn7zrcgcmk3rs0hn56jcjrzrn5z0kc77bv4zzvbz5vr8gbwj"; depends=[glmnet Rcpp RcppArmadillo]; };
   sprm = derive2 { name="sprm"; version="1.2.2"; sha256="0iyijkjnyz4yx2cmazlnhkk0f5ls0c2q2aikwlzl13w6zbj040a8"; depends=[cvTools ggplot2 pcaPP reshape2 robustbase]; };
   sprsmdl = derive2 { name="sprsmdl"; version="0.1-0"; sha256="09klwsjp5w6p7dkn5ddmqp7m9a3zcmpr9vhcf00ynwyp1w7d26gi"; depends=[]; };
@@ -16634,7 +16757,7 @@ in with self; {
   spselect = derive2 { name="spselect"; version="0.0.1"; sha256="02aiml4dh40n6yl52ypramn4847ykdi4y5lhsmchnnp4nnnqycsn"; depends=[magic pracma tester]; };
   spsh = derive2 { name="spsh"; version="1.1.0"; sha256="1rmsgp0mrb4153v5f5xby7r3izvgz1a0vi63g5p9q5jd6z0gd2i1"; depends=[DEoptim FME hypergeo lhs pracma Rdpack]; };
   spsi = derive2 { name="spsi"; version="0.1"; sha256="0q995hdp7knic6nca0kf5yzkvv8rsskisbzpkh9pijxjmp1wnjrx"; depends=[plot3D]; };
-  spsur = derive2 { name="spsur"; version="1.0.1.9"; sha256="1fadw95dadhzmq4gg0mlpvvmzgr1c62f3g78cmdfbxyv07lrvlvp"; depends=[car Formula ggplot2 gmodels gridExtra knitr lmtest MASS Matrix minqa numDeriv Rdpack rlang rmarkdown sparseMVN spatialreg spdep]; };
+  spsur = derive2 { name="spsur"; version="1.0.2.0"; sha256="0dkbl5x2h1l34ybhb4zdygnf7fdga78aaq4nb9kqyw6xjfrcsazn"; depends=[car Formula ggplot2 gmodels gridExtra knitr lmtest MASS Matrix minqa numDeriv Rdpack rlang rmarkdown sparseMVN spatialreg spdep]; };
   spsurv = derive2 { name="spsurv"; version="1.0.0"; sha256="11jlbzvzxv3d1d0nwpbii46ddvphglrxv25rw7pvxbybcx2i7k6x"; depends=[BH coda loo MASS Rcpp RcppEigen rstan rstantools StanHeaders survival]; };
   spsurvey = derive2 { name="spsurvey"; version="5.0.1"; sha256="1ly96f7fcz4gxdxx1n71ak5vpanah2bpck3h0d2mvpyqz19ajris"; depends=[boot crossdes deldir lme4 MASS sf survey units]; };
   spt = derive2 { name="spt"; version="2.5.1"; sha256="04j38d2b35p4798znnc49vqrg8r8bygwi07vybfj3nzimlp2mkrn"; depends=[]; };
@@ -16667,6 +16790,7 @@ in with self; {
   ssc = derive2 { name="ssc"; version="2.1-0"; sha256="1lq71p8hbjfg4a52009810k5dmhak9ddk1dywvhy7v2gjmxqnadw"; depends=[proxy]; };
   sscor = derive2 { name="sscor"; version="0.2"; sha256="1kcrr90cxg6k4qkc3pidhkwf4dsnlgbxczxigr2afwpd9cpf104c"; depends=[mvtnorm pcaPP robustbase]; };
   ssd = derive2 { name="ssd"; version="0.3"; sha256="1z61n9m6vn0ijawyz924ak0zfl9z13jsb4k4575b7c424ci2p6gy"; depends=[]; };
+  ssddata = derive2 { name="ssddata"; version="1.0.0"; sha256="0njcnjcgdghwrbjcbiq4yfn7nq9h4dvylrqh57c6vx35yqc4g375"; depends=[chk dplyr Rdpack]; };
   ssdtools = derive2 { name="ssdtools"; version="0.3.7"; sha256="1mxkbf7skxg073nmy195c78fh8mimxnycnlx921y3pb9vrplsn2a"; depends=[abind actuar chk fitdistrplus ggplot2 lifecycle Rcpp scales tibble VGAM]; };
   sse = derive2 { name="sse"; version="0.7-17"; sha256="0aqpi70rgmh2kmf11z2cvyl8c9klv8jm81pcpkzjrw3pbpgkqizf"; depends=[lattice]; };
   ssev = derive2 { name="ssev"; version="0.1.0"; sha256="1iw07gw9vhg073s5kkxh5f1si6p998rc1i2zglnpk5c3pi3l55wp"; depends=[MESS pwr]; };
@@ -16675,7 +16799,7 @@ in with self; {
   ssgraph = derive2 { name="ssgraph"; version="1.12"; sha256="0mcg8bzgx0376f72xxqmsfwmnmfk6lcmam19d28psr1sxnhngklj"; depends=[BDgraph]; };
   ssh = derive2 { name="ssh"; version="0.8.0"; sha256="0y9rrvn21mc9ivjlz6zmg5h282d2gycyjda8sh9k0gx0y4c2m30i"; depends=[askpass credentials]; };
   ssh_utils = derive2 { name="ssh.utils"; version="1.0"; sha256="08313zzzgcyvzkrkq0w0yf748ya1a9shx5xnan5891v0lah9v0b1"; depends=[stringr]; };
-  sship = derive2 { name="sship"; version="0.7.1"; sha256="09pgpwhm63n266v9c9g4mp1461dlf4fhigqjnf1cpagsbgil8raj"; depends=[httr jsonlite openssl RCurl yaml]; };
+  sship = derive2 { name="sship"; version="0.7.3"; sha256="0ac882x8p131iy61qkgaiax073387qsc5ahmxw4vvhhlks0kssi2"; depends=[httr jsonlite openssl RCurl yaml]; };
   ssimparser = derive2 { name="ssimparser"; version="0.1.0"; sha256="1h4jwfcbsimwkwwfpjdi9mipc8z8ia6b6ha6v9dz7ghgpp1a2919"; depends=[airportr dplyr magrittr stringr tidyr]; };
   ssize_fdr = derive2 { name="ssize.fdr"; version="1.2"; sha256="0y723lwsnmk3rxbhlsrny9hiy07a5p255ygy9qkj6mri64gk1hby"; depends=[]; };
   ssizeRNA = derive2 { name="ssizeRNA"; version="1.3.2"; sha256="1qw10yswzpg28fhvr6rsq0gh7xivfapw64gxc0hakb1nc31jf8ky"; depends=[Biobase edgeR limma MASS qvalue ssize_fdr]; };
@@ -16692,7 +16816,7 @@ in with self; {
   sstModel = derive2 { name="sstModel"; version="1.0.0"; sha256="04dvj6dbxidn1df2rslppl2pw2ql09rag39jrzdbnv6z20szbbd9"; depends=[data_table MASS openxlsx readxl shiny shinydashboard]; };
   ssvd = derive2 { name="ssvd"; version="1.0"; sha256="1fdpr38qi59ijrz16jixn6ii1hvmxfjirjqfcp7dxrqz9nx8x0sk"; depends=[]; };
   ssym = derive2 { name="ssym"; version="1.5.7"; sha256="0l5d921vlhd4qwddllrgcxpq3bhivvy5ikh3ixdy3s140rzpgwrv"; depends=[Formula GIGrvg normalp numDeriv sandwich survival]; };
-  st = derive2 { name="st"; version="1.2.6"; sha256="0v2bii21c0dg25zbf2379q7jy6z4z93hpw3rd32gm77bvgr0fd40"; depends=[corpcor fdrtool sda]; };
+  st = derive2 { name="st"; version="1.2.7"; sha256="0j29k9fg8659yw1jwmcakiic51rin1dj1fmvpapy2wmz4c3pr0fp"; depends=[corpcor fdrtool sda]; };
   stR = derive2 { name="stR"; version="0.4"; sha256="120k8k1l8cfy8x746808jym7lnaplgh4s3lycgyq2wia2c35r0rc"; depends=[foreach forecast Matrix quantreg rgl SparseM]; };
   sta = derive2 { name="sta"; version="0.1.5"; sha256="0q9pplx4ifndvbh2bfa96vjbcaaqdj6bq57kwlzhavq6hjq7d56v"; depends=[doParallel foreach geoTS iterators mapview raster RColorBrewer rgdal trend]; };
   staRdom = derive2 { name="staRdom"; version="1.1.23"; sha256="0gsix1dxk4gn2iq0zqbm7fyzxxnyzbgdlcbk11lqirx9x0xmwj80"; depends=[cdom data_table doParallel dplyr drc eemR foreach GGally ggplot2 gtools matrixStats MBA multiway pracma R_matlab readr stringr tibble tidyr viridisLite zoo]; };
@@ -16708,12 +16832,14 @@ in with self; {
   stabs = derive2 { name="stabs"; version="0.6-4"; sha256="1nf1yg14cgxrs4np1yghpzw1nczaslfv3rvf3918wrlzg0vp6l7q"; depends=[]; };
   stackoverflow = derive2 { name="stackoverflow"; version="0.7.0"; sha256="0zv8bxzw4pgaa5ra8wsb9p7g8bwffdhc6gqsfrcs61zva7v9izc2"; depends=[]; };
   stacks = derive2 { name="stacks"; version="0.2.1"; sha256="0a69fvj48npcbm0jj0506mq5m9hdprva247nyhiays6ar4ic52kv"; depends=[butcher cli dials dplyr foreach generics ggplot2 glmnet glue parsnip purrr recipes rlang rsample tibble tidyr tune workflows workflowsets yardstick]; };
-  stacomirtools = derive2 { name="stacomirtools"; version="0.5.3"; sha256="00zpsfrw0gcjbjr3xdxf2wacrr1zfw6wq7a2ycq32pbh2smbkz4k"; depends=[RODBC xtable]; };
+  stacomiR = derive2 { name="stacomiR"; version="0.6.0"; sha256="0mcq7lcwcz9s18vdd7762dfr2fyb5fqvnv0b5ljp7kdbr3ia977y"; depends=[dplyr ggplot2 Hmisc intervals lattice lubridate magrittr mgcv pool RColorBrewer reshape2 rlang RPostgres stacomirtools stringr withr xtable]; };
+  stacomirtools = derive2 { name="stacomirtools"; version="0.6.0"; sha256="1qy9rw38qa0ng7gcnbccws8cm8175rficm5b1jn956qbkcxkz0w8"; depends=[DBI pool RODBC RPostgres xtable]; };
   stagePop = derive2 { name="stagePop"; version="1.1-1"; sha256="0949r5ibl3sb10sr5xsswxap3wd824riglrylk7fx43ynsv5hzpy"; depends=[deSolve PBSddesolve]; };
   stagedtrees = derive2 { name="stagedtrees"; version="2.2.0"; sha256="01qb8pw0al3b3b6smcapd61i81p6xw3hh1x8i6dsb73pdvpbfyxj"; depends=[]; };
   staggered = derive2 { name="staggered"; version="1.1"; sha256="0z9358qbgn637j8iz5qwr4nyrlvi9w85l325vxpc61mcwksx5ip8"; depends=[coop dplyr magrittr MASS purrr Rcpp RcppEigen reshape2 tidyr]; };
   stam = derive2 { name="stam"; version="0.0-1"; sha256="1x1j45fir64kffny0nssb2hwn4rcp8gd2cjv6fw4yy0l4d0xi5iv"; depends=[np sp]; };
   stampr = derive2 { name="stampr"; version="0.2"; sha256="10mc71kgnw5712q2gvzd4bmjaw1879r7s599hfsjap21idqb2k2m"; depends=[deldir maptools raster rgdal rgeos sp spdep]; };
+  stan4bart = derive2 { name="stan4bart"; version="0.0-1"; sha256="0a4ajv00zx15ncw79biniq7y9x3fql130pybii07l7kp3m7ccgjj"; depends=[BH dbarts Matrix Rcpp RcppEigen RcppParallel]; };
   standardize = derive2 { name="standardize"; version="0.2.2"; sha256="008nz9vf08qxwdsn373yzpmsw5lhbm6mpm6dlwyys58wq0bdvh28"; depends=[lme4 MASS stringr]; };
   standartox = derive2 { name="standartox"; version="0.0.1"; sha256="1b5w66x4v8hfxzp3ahw97my6m0rcn22iv5nhgm2wzdq0if0cq8py"; depends=[curl data_table fst httr jsonlite]; };
   stanette = derive2 { name="stanette"; version="2.21.2"; sha256="1266555964cymrgrmfzjk2x12hpyjvd18c8q0lx92wdssnqzhhzr"; depends=[BH brew coda ggplot2 gridExtra inline lattice loo pkgbuild Rcpp RcppEigen RcppParallel StanHeaders V8 withr]; };
@@ -16723,17 +16849,17 @@ in with self; {
   starm = derive2 { name="starm"; version="0.1.0"; sha256="0y580c6inmfix6agwd5nr340l3hjk2xxs95s468j5pghpjpb8rmv"; depends=[Matrix]; };
   starma = derive2 { name="starma"; version="1.3"; sha256="07r0kyabhgbm2v39fcrw0qhxcxj9a9cb45g9chzcnn9qmvramcwx"; depends=[ggplot2 Rcpp RcppArmadillo scales]; };
   starnet = derive2 { name="starnet"; version="0.0.6"; sha256="0gbg8svyj4nh846q7986ap7jjry599kb1348k9lifz19kvyr4rn4"; depends=[cornet glmnet Matrix survival]; };
-  stars = derive2 { name="stars"; version="0.5-3"; sha256="00cljaz98iy3wymabp7b47qgxdybg9jgjkw7q6da1ginmy14m524"; depends=[abind classInt lwgeom rlang sf units]; };
-  starsExtra = derive2 { name="starsExtra"; version="0.2.6"; sha256="0z64alwx1m4cfjbgymqd61j5rx0b52bs9d7qhng7kplbnws8hn3j"; depends=[mgcv nngeo sf stars units]; };
+  stars = derive2 { name="stars"; version="0.5-4"; sha256="1h5fway2fk637mkglw0h3ajiyyx8saqcapg42xzsiwbk8lnaf9f4"; depends=[abind classInt lwgeom rlang sf units]; };
+  starsExtra = derive2 { name="starsExtra"; version="0.2.7"; sha256="06l9rpgw1dmvvn3389zzqrq4y87192k4zzj7xgvwzrdlrcxsqdh7"; depends=[mgcv nngeo sf stars units]; };
   starschemar = derive2 { name="starschemar"; version="1.2.0"; sha256="0jjaic1zwdc3lvdlgs0vzkjjivjs2dskmhx4qg469ban34az0591"; depends=[dplyr generics pander purrr readr rlang snakecase tibble tidyr tidyselect]; };
   startR = derive2 { name="startR"; version="2.1.0"; sha256="1cgn77jaiy7gfqbhh6w3x0bf57v32vzpp334mp50v827hgv439wy"; depends=[abind bigmemory ClimProjDiags easyNCDF future multiApply s2dverification]; };
-  starter = derive2 { name="starter"; version="0.1.6"; sha256="1f7vmbiynaflbjd1pr8g1zmgxlkgyi1hb33xbah503qrz5iclfpf"; depends=[dplyr fs gert glue here purrr R_utils readr renv rlang stringr tibble usethis]; };
-  startup = derive2 { name="startup"; version="0.15.0"; sha256="05a5drjzmc969yn5y62gy1ja469nqrcbicycvjmlgrrfcj7918mi"; depends=[]; };
+  starter = derive2 { name="starter"; version="0.1.8"; sha256="003ih4035hhka5cghr5j3h0gc9a2fxdafag8ffxxg8cvigh2m7fm"; depends=[dplyr fs gert glue here purrr R_utils readr renv rlang stringr tibble usethis]; };
+  startup = derive2 { name="startup"; version="0.16.0"; sha256="1lqjig4jvy71w7082b5s209kmkchn39n0fksnvjp1prjvygh575w"; depends=[]; };
   startupmsg = derive2 { name="startupmsg"; version="0.9.6"; sha256="0vkqxir4ady4dn9s70dfg1fxck2xg8vnmrmxjzvk01i6pc9zyq0x"; depends=[]; };
-  starvars = derive2 { name="starvars"; version="1.1.8"; sha256="0l081xw1ad7b4qgdr6wywhqvq4icrpcid5khwck58i1v95qsq3is"; depends=[doSNOW foreach ks lessR MASS matrixcalc optimParallel quantmod vars xts zoo]; };
-  starvz = derive2 { name="starvz"; version="0.6.0"; sha256="0qmgijlj00rqkf47m06zf8p6gm94fylm7wamrip1zmf23mr7fhvk"; depends=[arrow BH car data_tree dplyr flexmix ggplot2 gtools lpSolve magrittr patchwork purrr RColorBrewer Rcpp readr rlang stringr tibble tidyr yaml zoo]; };
+  starvars = derive2 { name="starvars"; version="1.1.9"; sha256="0h4swxkvcif79258jimrzy4lk370ad6f0w9npjhya6pbjii40j3l"; depends=[doSNOW foreach ks lessR MASS matrixcalc optimParallel quantmod vars xts zoo]; };
+  starvz = derive2 { name="starvz"; version="0.7.0"; sha256="166mppribk0hsx4rs3km0k44s7yww6ss5bmxn4434caj43rda5lr"; depends=[arrow BH data_tree dplyr ggplot2 gtools lpSolve magrittr patchwork purrr RColorBrewer Rcpp readr rlang stringr tibble tidyr yaml zoo]; };
   starwarsdb = derive2 { name="starwarsdb"; version="0.1.2"; sha256="00n9qqw4lbfk698qgvw8i42sy3dv5i5fiiqma3zks4rr9yspkldq"; depends=[DBI duckdb magrittr tibble]; };
-  stat_extend = derive2 { name="stat.extend"; version="0.1.4"; sha256="1m3bjwgb0g0c445xy9b29yibnf8ldjfnyd0i519dxnh31b6k8vy9"; depends=[sets]; };
+  stat_extend = derive2 { name="stat.extend"; version="0.2.1"; sha256="1qwjqnjds733xvxhby604yqvwlj1rkr3411diwzhbgwp89rhy11r"; depends=[sets]; };
   statGraph = derive2 { name="statGraph"; version="0.5.0"; sha256="0fd7jsngd8gihivnir3y58961kvbdd5g1m5gm1da91984qs7r9q1"; depends=[cluster doParallel foreach igraph MASS rARPACK]; };
   statVisual = derive2 { name="statVisual"; version="1.2.1"; sha256="1cc9p9g8lzn0lgh793r977yhqbk89l74m443gnznjlfml69bfb21"; depends=[Biobase dplyr factoextra forestplot gbm GGally ggdendro ggfortify ggplot2 ggrepel glmnet gridExtra knitr limma magrittr pheatmap pROC pvca randomForest RColorBrewer reshape2 rmarkdown rpart_plot tibble tidyverse]; };
   statar = derive2 { name="statar"; version="0.7.3"; sha256="17zg1g0ndsysrqj0alpx0sgmc69d3jkqr543l8m758mnm9bw83c9"; depends=[data_table dplyr ggplot2 lazyeval matrixStats rlang stringr tidyselect]; };
@@ -16779,11 +16905,12 @@ in with self; {
   stepR = derive2 { name="stepR"; version="2.1-1"; sha256="0mz88d7214g59nvr40c4gf4grq9skjqqlfgydbdzmc4l315nr4zv"; depends=[digest lowpassFilter R_cache Rcpp]; };
   stepjglm = derive2 { name="stepjglm"; version="0.0.1"; sha256="0xsb0wg7ka4ska2jkzaic7kqdzj2fkhpf5sxr3a116f2najj9ax2"; depends=[rsq]; };
   stepp = derive2 { name="stepp"; version="3.2.2"; sha256="1iyj1f9gzn44xllhm9y1j0ynfz4q48d2l8ic4mjvzc3p4z8cnpmz"; depends=[car rstudioapi scales survival]; };
+  steprf = derive2 { name="steprf"; version="1.0.0"; sha256="0v3bh8rc5pxwfv9dfpv4fmi816fayhjca14wz30b54d3zjvbjxqk"; depends=[psy randomForest spm spm2]; };
   steps = derive2 { name="steps"; version="1.2.1"; sha256="04n5m7a5yp3karhiwgcl6fzfp85iad2xymdwp1kyqbagx2acyrka"; depends=[future future_apply memuse raster rasterVis Rcpp viridisLite]; };
-  stevedata = derive2 { name="stevedata"; version="0.5.0"; sha256="1cfq1fdyv8cxk4h1r7dgbypia3ih31svw3r024bkfzw986jqvzk0"; depends=[]; };
+  stevedata = derive2 { name="stevedata"; version="0.6.0"; sha256="1xhgj4g40qpj32n0n6ls5vs6ynl8ns54k1nrynd67gisdk236aq8"; depends=[]; };
   stevedore = derive2 { name="stevedore"; version="0.9.4"; sha256="0qf7qid8sv3agzci7kvgh204h3p6bk60bh45zri987j2qqjjxiiy"; depends=[crayon curl jsonlite yaml]; };
   stevemisc = derive2 { name="stevemisc"; version="1.3.0"; sha256="0dkmq6510r36pihj2g8c4iya5j3sbsnq9gp5i72dqj9fwsx242ca"; depends=[arm broom_mixed dplyr forcats ggplot2 httr labelled lme4 magrittr purrr rlang rmarkdown stringr tibble tidyr]; };
-  stevetemplates = derive2 { name="stevetemplates"; version="0.6.0"; sha256="1xwf4c2g5n4av19xxj1vm3gv2200kqnzvxh7qzkbgs8b6s9ivly7"; depends=[rmarkdown]; };
+  stevetemplates = derive2 { name="stevetemplates"; version="0.7.0"; sha256="1cbxh71c7ffxb22zs5yb33h62ipmnp2a9x2i6sdlhix6vr358705"; depends=[rmarkdown]; };
   stfit = derive2 { name="stfit"; version="0.99.8"; sha256="0js09v04ik5m3d9iz9waq0yigvg2g6n75m4zm5dc0nz3yr1irb88"; depends=[abind doParallel fda foreach Matrix raster rasterVis RColorBrewer Rcpp]; };
   stickr = derive2 { name="stickr"; version="0.3.1"; sha256="0krz123vz4bdcdi4p27r637pgz4rcj6kmyiqdf5x69riddvfxx8r"; depends=[base64enc fs gh stringr]; };
   sticky = derive2 { name="sticky"; version="0.5.6.1"; sha256="1szfpay9cpdwq6v5fmnjyr00r4zhz6zd2rrl3h88v9l5xpfafi4w"; depends=[]; };
@@ -16801,21 +16928,22 @@ in with self; {
   stmgp = derive2 { name="stmgp"; version="1.0.4"; sha256="1yf0hr5gaql424ikjm9ra50vz4ppfsshhf89xphl7c9v9a6bjvw0"; depends=[MASS]; };
   stmgui = derive2 { name="stmgui"; version="0.1.6"; sha256="1fn2m5l7y3p1riw39g6r3hpjxdccygih7yipp7dvc4msl9fm4h5c"; depends=[markdown shiny shinyBS shinyjs shinythemes stm tm]; };
   stminsights = derive2 { name="stminsights"; version="0.4.1"; sha256="1ll2chjz9r08lya2z7dnxjqdnwrvw7jn05mpvvxi1w8s2npsggib"; depends=[dplyr ggplot2 ggraph ggrepel huge igraph purrr readr scales shiny shinyBS shinydashboard shinyjs stm stringr tibble tidygraph]; };
-  stoRy = derive2 { name="stoRy"; version="0.1.5"; sha256="1ccx5xpjx4f6y4afay7zk195891xx2z6z2a11xqx5qg8rf0fv9jm"; depends=[data_tree R6]; };
+  stoRy = derive2 { name="stoRy"; version="0.2.0"; sha256="1mxnnmg6wqp40hyh2mjd39vpzks78rr59pdlyxljlpnlslgkf1md"; depends=[cli crayon dplyr fansi httr lifecycle purrr R6 rappdirs readr rlang stringr tibble tidyjson tidyr]; };
   stocc = derive2 { name="stocc"; version="1.31"; sha256="0d0n9nrcva0vradippq30y6dc6klwd1mllnzpnzq9rczpz5cw7mw"; depends=[coda fields Matrix rARPACK truncnorm]; };
   stochQN = derive2 { name="stochQN"; version="0.1.2-1"; sha256="1lfzivl745dj94kap103arz0zy75wk69kc6v84xaaxk7ad3icnaj"; depends=[]; };
   stochprofML = derive2 { name="stochprofML"; version="2.0.3"; sha256="0j6m2byh7w9kcbp3mfvmg6fm6z0dq8k4qabj1yfkl0d1y2ifd1zd"; depends=[MASS numDeriv]; };
-  stochvol = derive2 { name="stochvol"; version="3.1.0"; sha256="04ds1knjdy39is7wyqhcncpmyr1bd45l7g3wrz8hll3bzap5c8wj"; depends=[coda Rcpp RcppArmadillo]; };
+  stochvol = derive2 { name="stochvol"; version="3.2.0"; sha256="1ix8x3gmm5advdxk0rd0p26x3487qmw6pv4mi628vjqpmvnv42fr"; depends=[coda Rcpp RcppArmadillo]; };
   stochvolTMB = derive2 { name="stochvolTMB"; version="0.2.0"; sha256="07m3qz8j1sw37lrxzmbkbifd3nsdvd2blbca8vr1aq5bbafr1g1b"; depends=[data_table ggplot2 MASS RcppEigen sn TMB]; };
   stockR = derive2 { name="stockR"; version="1.0.74"; sha256="002i0bhyskwyjjczfa752ghn19hvqhdyzdfkpvci3hb66rh94x65"; depends=[gtools RColorBrewer]; };
   stockfish = derive2 { name="stockfish"; version="0.1.3"; sha256="0f98xi81kjahvqhmq7hjbrg54kdff5j4q2dq8wj41l13pzi81sac"; depends=[processx R6]; };
   stocks = derive2 { name="stocks"; version="1.1.4"; sha256="0b6rl7pfkgzbpwnv7zzkr36hs5f1zb60d16ijslf7g9m25vvcyg6"; depends=[dvmisc Hmisc lubridate quantmod rbenchmark RColorBrewer Rcpp TTR zoo]; };
   stoichcalc = derive2 { name="stoichcalc"; version="1.1-3"; sha256="0z9fnapibfp070jxg27k74fdxpgszl07xiqfj448dkydpg8ydkrb"; depends=[]; };
-  stokes = derive2 { name="stokes"; version="1.0-8"; sha256="0hdw7yyakbn78prxyydv09j2k3xj2fwy0v2nxw3n7mm2qgkjggg9"; depends=[magrittr mathjaxr partitions permutations spray]; };
+  stokes = derive2 { name="stokes"; version="1.0-9"; sha256="1hs57fz52zrpmjminsqpxs3bnmgn8fr3mkca9zmh2017ypk7zc1p"; depends=[disordR magrittr mathjaxr partitions permutations spray]; };
   stopwords = derive2 { name="stopwords"; version="2.3"; sha256="1ci1cgxrcvlhhplximsfv0plvjdbcd5kv0nphxnpildsn5m1rv65"; depends=[ISOcodes]; };
   storr = derive2 { name="storr"; version="1.2.5"; sha256="0qszdq16bf0dbss33zi63ciwmkgjsyc0c3akrr2kl14w3ncw6922"; depends=[digest R6]; };
   storywranglr = derive2 { name="storywranglr"; version="0.2.0"; sha256="07w3dwv2naqbbdzjcv58cisj7cv1rbhrk96a30q8ww11rf953rj4"; depends=[dplyr httr jsonlite tibble urltools]; };
   stosim = derive2 { name="stosim"; version="0.0.14"; sha256="10k8j7manskjsrjc1l44yhy682b1qh0k2jx3cs5k69j2z42mnhmk"; depends=[Rcpp]; };
+  stplanr = derive2 { name="stplanr"; version="0.8.6"; sha256="08kxbblp6zb99v303j1m6ijr378m6jj3sfqnlj30ysb9ppy2fdmk"; depends=[curl data_table dplyr geosphere httr jsonlite lwgeom magrittr maptools nabor pbapply raster Rcpp RcppArmadillo rgeos rlang sf sfheaders sp stringr]; };
   stpm = derive2 { name="stpm"; version="1.7.10"; sha256="0y9rpqjn33gdqjvag4kb6dr00w80paspgj9ic25brclfv1zmzbhf"; depends=[MASS nloptr Rcpp RcppArmadillo sas7bdat survival]; };
   stpp = derive2 { name="stpp"; version="2.0-5"; sha256="1p7dxzfhi5pvva956nyypl7dfdgq3m0cara73hai87qzc342xcf0"; depends=[ggplot2 gridExtra KernSmooth plot3D rgl rpanel spatstat_core spatstat_geom splancs]; };
   str2str = derive2 { name="str2str"; version="0.2.1"; sha256="180m261hr0qr3mnm8hbvjbw3q44cr1kfrnq97fvkpypigdycd9z4"; depends=[abind checkmate plyr reshape]; };
@@ -16841,12 +16969,12 @@ in with self; {
   stressr = derive2 { name="stressr"; version="1.0.0"; sha256="00b93gfh1jd5r7i3dhsfqjidrczf693kyqlsa1krdndg8f0jkyj7"; depends=[lattice latticeExtra XML xts]; };
   strex = derive2 { name="strex"; version="1.4.2"; sha256="1m9dr5rv3s33kg2b2lr5lxsmbf6qs0nypxw2yx2hyzhsgq363mbn"; depends=[checkmate magrittr rlang stringi stringr]; };
   strider = derive2 { name="strider"; version="1.3"; sha256="114j0qpdyg8rrhj68zq596pgc4h7ja39n0rfxf0x9qg7imhaj1h6"; depends=[BH Rcpp]; };
-  string2path = derive2 { name="string2path"; version="0.0.3"; sha256="0pdz33l8jnpcvw9r80f4hkq6ncv800bv2li3aa71jh4ppplm28xv"; depends=[tibble]; };
+  string2path = derive2 { name="string2path"; version="0.0.4"; sha256="1vxrl60ld7iy9fhy4jz954n9ywq6g0glm2wci9262c827jwd8pyb"; depends=[tibble]; };
   stringb = derive2 { name="stringb"; version="0.1.17"; sha256="0bfwwbg64nzxrx30cndqvdlhanjkx6875lg5dzm9cbwvwg2wbxcn"; depends=[backports]; };
   stringdist = derive2 { name="stringdist"; version="0.9.8"; sha256="1fv1hbdlm8qwx57b2aj50mw0say5k48awzavx65mfk67qp6ddk7g"; depends=[]; };
   stringfish = derive2 { name="stringfish"; version="0.15.4"; sha256="1n67y9vgv8vb8qd091d1wm5sgbalcm2avh2fz0hd3mmglpkr83wf"; depends=[Rcpp RcppParallel]; };
   stringformattr = derive2 { name="stringformattr"; version="0.1.2"; sha256="0x56k30clj5ajk0qg5sr8b9l0asz6ldivwr1ddy1vp1djliih1fx"; depends=[stringr]; };
-  stringi = derive2 { name="stringi"; version="1.7.5"; sha256="0r959gzyqkq9683qdfy95g9plwpj3c73n9lhf0a6byybw4scq519"; depends=[]; };
+  stringi = derive2 { name="stringi"; version="1.7.6"; sha256="1v0rj5svgvn1mlf69yzm6jm00fxmrsxazs9xymzrf0apxjpxb8qf"; depends=[]; };
   stringr = derive2 { name="stringr"; version="1.4.0"; sha256="1p9ip7p87gbbg4s6d3d392svvzz2b5dqdq2c8ilgvn4s78nlsq47"; depends=[glue magrittr stringi]; };
   stringx = derive2 { name="stringx"; version="0.2.2"; sha256="166n7npbm60rxffrgvdhdr3l08mdnbk6hyx7srwrjhsxbcgmb5l1"; depends=[stringi]; };
   strip = derive2 { name="strip"; version="1.0.0"; sha256="1j3kq6w8k66z45rpd1cgxplpnldzbyqklgs4bnbv906pyd8wk9ak"; depends=[rlist]; };
@@ -16854,7 +16982,7 @@ in with self; {
   striprtf = derive2 { name="striprtf"; version="0.5.3"; sha256="0dqcsh3fb8j0mmmxvxjl77rryhmrjm7a3scqvk2xkgxk4xq6q316"; depends=[magrittr Rcpp stringr]; };
   strm = derive2 { name="strm"; version="0.1.2"; sha256="09x5h4zgbdqq88xabi7hw506y5jrd26br0233afd46m7c69ayadn"; depends=[dplyr knitr magrittr purrr rgdal rlang rmarkdown spatialreg testthat tidyr]; };
   strucchange = derive2 { name="strucchange"; version="1.5-2"; sha256="1y022363a4pp0mnji91sjh1qiyspkh09sybqwj03r9pmwrd7q93x"; depends=[sandwich zoo]; };
-  strucchangeRcpp = derive2 { name="strucchangeRcpp"; version="1.5-3-1.0.3"; sha256="14yim9bbyj1cz2gv9kwwm2rsdm2x64jr68fjjidxgb8ywz2vcl4k"; depends=[Rcpp RcppArmadillo sandwich zoo]; };
+  strucchangeRcpp = derive2 { name="strucchangeRcpp"; version="1.5-3-1.0.4"; sha256="0vfqbhck0qwc8dsnm5ggc0if03vx4ma53qidi7qsqjyfjfszq1pm"; depends=[Rcpp RcppArmadillo sandwich zoo]; };
   structree = derive2 { name="structree"; version="1.1.7"; sha256="178x6maghjaw9lkyjr84pq916vbq0ldh5gqia0r0vqs8k8dvna9i"; depends=[lme4 mgcv penalized]; };
   strvalidator = derive2 { name="strvalidator"; version="2.3.0"; sha256="0m1nxpvb7hbx9n00mc0ar7ay1sk8h819cmf0r0g323z23axq1kdx"; depends=[data_table ggplot2 gridExtra gtable gWidgets2 MASS plyr scales]; };
   stsm = derive2 { name="stsm"; version="1.9"; sha256="18ypmkd7l7m7qkahb0nqf8f1m8g4irxlw48v2ms0dq1bsnhbzx7j"; depends=[KFKSDS]; };
@@ -16881,7 +17009,6 @@ in with self; {
   subscreen = derive2 { name="subscreen"; version="3.0.5"; sha256="0786p2n1a4xjsxnd31w2b079ggdzx9pgn14d5vbngrc6mgjm9hk8"; depends=[bsplus colourpicker data_table dplyr DT jsonlite plyr purrr randomForestSRC shiny shinyjs shinyWidgets]; };
   subselect = derive2 { name="subselect"; version="0.15.2"; sha256="0ggpm5bq4ncx4302855s8x1nj0afjizmi81cg6b7xc7rvpirw0fq"; depends=[corpcor ISwR MASS]; };
   subspace = derive2 { name="subspace"; version="1.0.4"; sha256="0p2j0lnwj3ym1v4xla6r97zjikb8alnibdc690xn9c0z21hmv43v"; depends=[colorspace ggvis rJava stringr]; };
-  subtee = derive2 { name="subtee"; version="1.0.0"; sha256="09ah1n3whdycygbi1a6pwgm5jqs1srd565p3ihkk5ygp4gl2r3z9"; depends=[ggplot2 MASS matrixStats survival]; };
   subtype = derive2 { name="subtype"; version="1.0"; sha256="1094q46j0njkkqv09slliclp3jf8hkg4147hmisggy433xwd19xh"; depends=[penalized ROCR]; };
   sudachir = derive2 { name="sudachir"; version="0.1.0"; sha256="09ry00c3yhrz8fiyxdxgj9r3x7kldsl6fv35mmi5ysc2549kbcfb"; depends=[cli dplyr glue magrittr purrr reticulate rlang tibble tidyselect]; };
   suddengains = derive2 { name="suddengains"; version="0.4.4"; sha256="160jna9imnpy91f6pa881w6wlrwy59db0nijrn1sf5ym1cmh5gz5"; depends=[dplyr forcats ggplot2 ggrepel magrittr naniar patchwork psych readr rlang scales stringr tibble tidyr]; };
@@ -16890,6 +17017,7 @@ in with self; {
   sugarbag = derive2 { name="sugarbag"; version="0.1.3"; sha256="05j2b9vbhpkfr3xkam9wgm0w4k8blnm1ssf9cd6l5f1y2rrqizsv"; depends=[dplyr geosphere lwgeom progress purrr rlang rmapshaper sf tibble tidyr utf8]; };
   sugrrants = derive2 { name="sugrrants"; version="0.2.8"; sha256="08cs74afpkvjh32hlrwbl8sdsi3p0ga4ziw32r9pihs28a060fam"; depends=[dplyr ggplot2 gtable lubridate rlang]; };
   sumFREGAT = derive2 { name="sumFREGAT"; version="1.2.2"; sha256="1phffgscn76xm759jz2fpx82czp91i7q261f6fxlj79kb164njk0"; depends=[GBJ Matrix seqminer]; };
+  sumSome = derive2 { name="sumSome"; version="1.1.0"; sha256="1a70kxvp9d9hn38jnvgk934vwbz4bjb6k4kcngp6rp9gv9h2bh2r"; depends=[ARIbrain pARI Rcpp RNifti]; };
   summariser = derive2 { name="summariser"; version="2.3.0"; sha256="0zliqy8dlcr2yy4ky8k68qn256xvpla8fcv7via19y40bmla37ic"; depends=[dplyr]; };
   summarytools = derive2 { name="summarytools"; version="1.0.0"; sha256="04qcysfywljnqkcz2b7kzpy0xv3ykkvvb14vnda63z1wvmadyhkn"; depends=[base64enc checkmate dplyr htmltools lubridate magick matrixStats pander pryr rapportools tibble tidyr]; };
   sunburstR = derive2 { name="sunburstR"; version="2.1.6"; sha256="1a8a6scfmr74qfi86nrpli6abhfri60cd6sdb40ywrh9qpshkl81"; depends=[d3r dplyr htmltools htmlwidgets]; };
@@ -16907,10 +17035,10 @@ in with self; {
   supernova = derive2 { name="supernova"; version="2.4.4"; sha256="122srb8mbpgywcl8ggv33dlpl64489r3r3mcsrpvly29c2i7qx4f"; depends=[backports cli ggplot2 magrittr pillar purrr rlang stringr tibble vctrs]; };
   superpc = derive2 { name="superpc"; version="1.12"; sha256="0n68qafsww00q0wx37ms3rimrlhbp085ywvv2k5vw951j4z8ivfb"; depends=[survival]; };
   supervisedPRIM = derive2 { name="supervisedPRIM"; version="2.0.0"; sha256="1j5gsy119pvrhkkg048lyk6hjvn9x1bhmfy5g824gj3k1w5slrib"; depends=[prim]; };
-  suppdata = derive2 { name="suppdata"; version="1.1-7"; sha256="1kga3jczxa9wjazl7gcks2p521y7c2y1518v7wk48sm7yri6sm4p"; depends=[httr jsonlite rcrossref xml2]; };
+  suppdata = derive2 { name="suppdata"; version="1.1-8"; sha256="0npbr1zvn30vh6qccyxld2xzdflh6armj6d807d9qbkjqd81kkyn"; depends=[httr jsonlite rcrossref xml2]; };
   support = derive2 { name="support"; version="0.1.5"; sha256="0gs6mva1lwanq4rm8l70sid28if2l0k249ydirqkz72lz12hg1br"; depends=[BH MHadaptive nloptr randtoolbox Rcpp RcppArmadillo]; };
   support_BWS = derive2 { name="support.BWS"; version="0.4-4"; sha256="0w4d4hiv46bsj9hl600y0n8n54cisagnim6ym2g8yipbvvsfqxlh"; depends=[]; };
-  support_BWS2 = derive2 { name="support.BWS2"; version="0.3-0"; sha256="0k9yvg0n4lzsq43r53r9f70hq1q3zfljjafj9ds2p3c6qzgs9chi"; depends=[]; };
+  support_BWS2 = derive2 { name="support.BWS2"; version="0.3-1"; sha256="15m4aim384ivrw53qhglv782c6bcp1sfh1i94d9i308q4iqaaa2v"; depends=[]; };
   support_BWS3 = derive2 { name="support.BWS3"; version="0.2-0"; sha256="012kcvscz7m2is92r71731zc7xnp7pwyx30vivwjazrigp9bq1kl"; depends=[]; };
   support_CEs = derive2 { name="support.CEs"; version="0.5-0"; sha256="194vnld2rg5qcp6vmcx259icj7gl1kyrivh8v8hygy9fy6dp16wc"; depends=[DoE_base MASS simex]; };
   supportInt = derive2 { name="supportInt"; version="1.1"; sha256="14fh75sds05c06xkcfbijd8my3sa9kpnczzh96xx0gwj1193yya9"; depends=[ProfileLikelihood]; };
@@ -16942,10 +17070,10 @@ in with self; {
   survRM2 = derive2 { name="survRM2"; version="1.0-3"; sha256="1x526ax39xx4zbhr6bdzphj4sljnl070vm0qh1479r1gj0vmmhif"; depends=[survival]; };
   survRM2adapt = derive2 { name="survRM2adapt"; version="1.0-1"; sha256="1r3jvjbc2sb7b00s95b3sdx4d99rmrnd573fx1n4914ydiggi9nn"; depends=[survival]; };
   survRM2perm = derive2 { name="survRM2perm"; version="0.1.0"; sha256="0js9sgslxzzs8k94k9kdmbmwp1ckk9mlr8sndk17dg24raks4zmz"; depends=[survival]; };
-  survRatio = derive2 { name="survRatio"; version="0.1"; sha256="1xrqin3q3b7r8ga4i71ci97rsm4lj5ffd0720n7s563jkpnpyb9l"; depends=[ggplot2 ggpubr gridExtra survival]; };
   survSNP = derive2 { name="survSNP"; version="0.25"; sha256="0awj4vh7sdal873bkp7f0ff4r87idgdn5cby405flvivlxv83i9z"; depends=[foreach lattice Rcpp survival xtable]; };
   survSens = derive2 { name="survSens"; version="0.1.0"; sha256="1s4s5l31yps93s2zdxpidkdg8kmmwj6vb3zfndmnxvc07arwhvbv"; depends=[directlabels ggplot2 survival]; };
   survSpearman = derive2 { name="survSpearman"; version="1.0.0"; sha256="06xric3fwv2rdrbapsawrg288s2sflzrbx1a4yc7lzxzxbsbs619"; depends=[]; };
+  surveil = derive2 { name="surveil"; version="0.1.0"; sha256="1mscqz25scpvl1a387883yvbjs4qlk12idasb5zv76rqfgspsdrz"; depends=[BH dplyr ggdist ggplot2 gridExtra Rcpp RcppEigen RcppParallel rlang rstan rstantools scales StanHeaders tidybayes tidyr]; };
   surveillance = derive2 { name="surveillance"; version="1.19.1"; sha256="1665n26qs79b3hj4wdp13qjr13w6g32jvbpc4qpcn39bgql6i599"; depends=[MASS Matrix nlme polyCub Rcpp sp spatstat spatstat_geom xtable]; };
   survexp_fr = derive2 { name="survexp.fr"; version="1.0"; sha256="12rjpnih0xld4dg5gl7gwxdxmrdmyzsymm7j05v98ynldd1jkjl8"; depends=[survival]; };
   survey = derive2 { name="survey"; version="4.1-1"; sha256="0ljsszybzri531q6xab04r6zq11vchfs7y0snjzk57m3g0b9ms05"; depends=[lattice Matrix minqa mitools numDeriv survival]; };
@@ -16957,19 +17085,20 @@ in with self; {
   surveysd = derive2 { name="surveysd"; version="1.3.0"; sha256="0d5xjdlccqaa1h437rz5zq6a829rpz426m55jgprhfpcps1wfhbk"; depends=[data_table ggplot2 laeken Rcpp]; };
   survidm = derive2 { name="survidm"; version="1.3.2"; sha256="0ass7ffpk70ph7dcdjm2f6xyzqaavlkhr1pcij2vcasiy4v1vyiv"; depends=[doParallel doRNG foreach ggplot2 gridExtra KernSmooth np plotly Rcpp survival TPmsm]; };
   survival = derive2 { name="survival"; version="3.2-13"; sha256="0zrikancm9shixvgng89f1610sphlwljczi0fnjbdqn4l85rrarz"; depends=[Matrix]; };
+  survival666 = derive2 { name="survival666"; version="0.5"; sha256="11vs546lrbxnhpxjmwxhh2hnp6kwcf4hzgigi3x9525hr8n9cy01"; depends=[ggplot2 survival survminer]; };
   survivalAnalysis = derive2 { name="survivalAnalysis"; version="0.2.0"; sha256="1sx7xjqkwc3788j0520kgv602m3gdlmpg1ps9fm8lhsjb8dmvlya"; depends=[cowplot dplyr forcats ggplot2 gridExtra magrittr purrr rlang scales stringr survival survminer tibble tidyr tidytidbits]; };
-  survivalMPL = derive2 { name="survivalMPL"; version="0.2"; sha256="05bfa9fx841kh9g2jcs1dimsxkjnf4bxgamcnjpisx3a644c1gkn"; depends=[MASS survival]; };
+  survivalMPL = derive2 { name="survivalMPL"; version="0.2-1"; sha256="1rskhawhpkzi3laq452kgr1740p6998z7c7p95f2023ymkdm4rxv"; depends=[MASS survival]; };
   survivalMPLdc = derive2 { name="survivalMPLdc"; version="0.1.1"; sha256="1wqlzpwm1p7nq19l3d7c93zv6fnn0b1w24kak9zwsgyhar3f5lv9"; depends=[copula matrixcalc splines2 survival]; };
   survivalROC = derive2 { name="survivalROC"; version="1.0.3"; sha256="0wnd65ff5w679hxa1zrpfrx9qg47q21pjxppsga6m3h4iq1yfj8l"; depends=[]; };
   survivalmodels = derive2 { name="survivalmodels"; version="0.1.9"; sha256="13plpgvxlljd953kv0krzzs1rfgl4yv9s7s5naplqfzjrapk0j7z"; depends=[Rcpp]; };
   survivalsvm = derive2 { name="survivalsvm"; version="0.0.5"; sha256="1b4hrdrqq1z0kfn8vpdwg54388m25df2s6w9i574x3mkxkmkjkga"; depends=[Hmisc kernlab Matrix pracma quadprog survival]; };
-  survivoR = derive2 { name="survivoR"; version="0.9.4"; sha256="1swvlxsj4msa82c6cnfx0g5w6c3b592czc14c4barx028qj40sph"; depends=[dplyr ggplot2 magrittr stringr tidyr]; };
+  survivoR = derive2 { name="survivoR"; version="0.9.6"; sha256="1knrcp6f1gxad4s9l1zfak805ixsgxvs6d30awv5x34jny1cgj8a"; depends=[dplyr ggplot2 magrittr stringr tidyr]; };
   survminer = derive2 { name="survminer"; version="0.4.9"; sha256="0byh0wxdbjfwdrzsnqv4xlmnik6lj0vkkzfxy7lssk8dv5zmj7nz"; depends=[broom dplyr ggplot2 ggpubr ggtext gridExtra magrittr maxstat purrr rlang scales survival survMisc tibble tidyr]; };
   survmixer = derive2 { name="survmixer"; version="1.3"; sha256="00s06h7nn8li4d2kn4yzlnj3px1wkpvnx5w73y98cvrcwm0ad71g"; depends=[]; };
   survsim = derive2 { name="survsim"; version="1.1.7"; sha256="1873m3lhrmy36fbg3rdnkvqmgyxbf07vb3p54p8xnggyllf94q5b"; depends=[eha statmod]; };
   survtmle = derive2 { name="survtmle"; version="1.1.1"; sha256="1l13rvwq4915ij2a55fxdj3b3wkgjca1fbqzcgkjlpzkcn97k1nj"; depends=[dplyr ggplot2 ggsci Matrix plyr speedglm stringr SuperLearner tidyr]; };
   survxai = derive2 { name="survxai"; version="0.2.2"; sha256="09ig561754kjzpay2hy3n62zlk0bgwkjy8vnslrr428r8m1lj0qr"; depends=[breakDown ggplot2 pec prodlim scales survival survminer]; };
-  susieR = derive2 { name="susieR"; version="0.11.42"; sha256="1x5rk0yi7232bmdkq17sv5gwk7w8mhs15mmix5n7zc3d0al1p7yh"; depends=[ggplot2 Matrix mixsqp reshape]; };
+  susieR = derive2 { name="susieR"; version="0.11.92"; sha256="1wlw41vslbgf6dmppn2hv2mqrnnza5091qzjl0qjaydsp97h5b3b"; depends=[crayon ggplot2 Matrix matrixStats mixsqp reshape]; };
   sutteForecastR = derive2 { name="sutteForecastR"; version="0.1"; sha256="13dd0v3l3s7xb1wnpf6qvnvclzab87831z8bsxsq53vpb26xcw1b"; depends=[forecast forecastHybrid fracdiff robets]; };
   svDialogs = derive2 { name="svDialogs"; version="1.0.3"; sha256="0j00xjvkwv992ir48czhvyj29rb9vpd243vbyyj2binn0q0qa431"; depends=[rstudioapi svGUI]; };
   svDialogstcltk = derive2 { name="svDialogstcltk"; version="0.9-4"; sha256="16166f8i6nsg7palqmnlp5b9s91d6ja9n0zm6rcvd2fwnw2ljkr4"; depends=[svDialogs svGUI]; };
@@ -17006,6 +17135,7 @@ in with self; {
   swatches = derive2 { name="swatches"; version="0.5.0"; sha256="1kivscgka8gn44rjj0s5sjan1s04znnyn0nd37a74zaik0hm8zs0"; depends=[colorspace httr pack stringr xml2]; };
   swdft = derive2 { name="swdft"; version="1.0.0"; sha256="0529rw8nsl48hwiy741alvrzg5d5q1nhnjshrsfwchm5kdv0igva"; depends=[]; };
   swdpwr = derive2 { name="swdpwr"; version="1.6"; sha256="0gyys5lv8zp6n8ywlnqnzpnmpply32ghhwiwi6rilin08nbd0wm8"; depends=[spatstat_core]; };
+  sweater = derive2 { name="sweater"; version="0.1.2"; sha256="0sfyz77i50gs2kndd6zq08l1qji1d4jbnsp6jqj5jv5sazcw1vwn"; depends=[data_table LiblineaR proxy purrr quanteda Rcpp]; };
   sweep = derive2 { name="sweep"; version="0.2.3"; sha256="1705mcp9p5h50ifqjjwx61z5wl5izv889nxcgdkx1i0dlcr61l2a"; depends=[broom dplyr forecast lubridate rlang tibble tidyr timetk]; };
   sweidnumbr = derive2 { name="sweidnumbr"; version="1.4.2"; sha256="0zzjvwd60w9b5ybsb72aqa42sx6al4ymr591j3zryxgpl6rms5rh"; depends=[checkmate lubridate stringr]; };
   swephR = derive2 { name="swephR"; version="0.3.0"; sha256="0fk5wih3i5vpkcc9y1n30xwc1hyqgfgnad9jkdgdx0m31pn1y9j5"; depends=[Rcpp]; };
@@ -17018,6 +17148,7 @@ in with self; {
   swirlify = derive2 { name="swirlify"; version="0.5.3"; sha256="1bpg6yz2adgspjlwsf2q83j1bq0iyvp9938smgc41861nsclngwr"; depends=[base64enc readr rmarkdown shiny shinyAce stringr swirl whisker yaml]; };
   swissMrP = derive2 { name="swissMrP"; version="0.62"; sha256="1vy6h6c4v49zlsli77ilj4df8cfh67rqmki71v6j1aqw6kf3b649"; depends=[arm blme lme4 maptools sp]; };
   swissdd = derive2 { name="swissdd"; version="1.1.4"; sha256="0ad260b4sfism5q1jxjazg6q33283ncld1m7gfdrps3xg1kyfirs"; depends=[dplyr ggplot2 httr jsonlite lubridate purrr RCurl sf stringr tibble tidyr]; };
+  swissparl = derive2 { name="swissparl"; version="0.2.2"; sha256="0rj01qcg0vh3vwrbag42w7mvb9ld800hzn4lszmbiv13yifgi8ys"; depends=[crayon dplyr ggplot2 httr jsonlite magrittr purrr stringr tibble tidyr]; };
   switchboard = derive2 { name="switchboard"; version="0.1"; sha256="1qh6cfm5h0j17ldljpgj400f2dhcfaa4x1157d46cyfawfdscvc5"; depends=[magrittr]; };
   switchcase = derive2 { name="switchcase"; version="0.1.1"; sha256="0h31nzyf7dzalgl65cw0k1fxylbmx78l45r5id2wcqdym23dv9a9"; depends=[]; };
   switchnpreg = derive2 { name="switchnpreg"; version="0.8-0"; sha256="1vaanz01vd62ds2g2xv4kjlnvp13h59n8yqikwx07293ixd4qhpw"; depends=[expm fda HiddenMarkov MASS]; };
@@ -17036,7 +17167,7 @@ in with self; {
   symSEM = derive2 { name="symSEM"; version="0.1"; sha256="084c47fkpgxjafx856d9xjijjz4l1da76bdqq63fvmhhiz17q8gs"; depends=[metaSEM mvtnorm OpenMx Ryacas]; };
   symbolicDA = derive2 { name="symbolicDA"; version="0.6-2"; sha256="0fd36dndzs0n0xwz38px5182gc6ng174n433rgch1s1g6bh8dn4s"; depends=[ade4 cluster clusterSim e1071 rgl RSDA shapes XML]; };
   symbols = derive2 { name="symbols"; version="1.1"; sha256="1234rx3divhg60p0h0zn11viqn51fm6b8876m6rip2i6z8vrg319"; depends=[shape]; };
-  symengine = derive2 { name="symengine"; version="0.1.5"; sha256="1n8gxazjfjfas8463qa00zs6ww1vzv059d9aakvh1pads24l8v6l"; depends=[Rcpp]; };
+  symengine = derive2 { name="symengine"; version="0.1.6"; sha256="10d4v3whfbwd8a4bf24jyf8lndcafpwdh8gwynf8wscjfc0c7zi2"; depends=[Rcpp]; };
   symmetry = derive2 { name="symmetry"; version="0.2.1"; sha256="041vxbva5kaywpn4y7kjwlc2cj56iyvd51iv5198dv280jfcnjv9"; depends=[Rcpp RcppArmadillo Rdpack]; };
   symmoments = derive2 { name="symmoments"; version="1.2.1"; sha256="0wl68nsvydfhlbyaj54alj31dphqigyp1s4h2xdapxj4zvwf2sws"; depends=[combinat cubature multipol mvtnorm]; };
   symphony = derive2 { name="symphony"; version="0.1.0"; sha256="0pwl9ahiv0xxc7j6448cja77fvcng28gdwhhr1z0qmhjsdcxadxq"; depends=[class data_table dplyr ggplot2 ggrastr ggrepel harmony irlba magrittr Matrix purrr RANN RColorBrewer Rcpp RcppArmadillo rlang tibble tidyr uwot]; };
@@ -17047,11 +17178,12 @@ in with self; {
   synfd = derive2 { name="synfd"; version="0.1.3"; sha256="1h8vfrfw00449vjbj6z4y7m5p7rxzvqjcykyxw5sb473f63gr5px"; depends=[L1pack Rdpack]; };
   synlik = derive2 { name="synlik"; version="0.1.4"; sha256="009kw0cx49jvm9giw2hp8lv72rf69q7h5d4gjigp2bsx309yfzcs"; depends=[Matrix Rcpp RcppArmadillo]; };
   synoptReg = derive2 { name="synoptReg"; version="1.2.1"; sha256="1v282ag4275p5lm6yvzwkpndrf4cnrpn0rw3v6mh5hxnb2pbmjl5"; depends=[dplyr ggplot2 kohonen lubridate magrittr metR raster rnaturalearth rnaturalearthdata RNCEP sf stringr tibble tidyr]; };
+  synr = derive2 { name="synr"; version="0.5.1"; sha256="1x7357p2hgqqfcqxbhdc1c34a0axy9iwrlfcdqbnj8cj4b9dnwpa"; depends=[data_table dbscan ggplot2]; };
   syntaxr = derive2 { name="syntaxr"; version="0.8.0"; sha256="1iik9b3x9jx7w31j7hyi3sixg30l5a6w40svhqj1xlchsk60yykn"; depends=[magrittr]; };
   synthACS = derive2 { name="synthACS"; version="1.6.0"; sha256="0dwcx2c284fa9d0y7kpai3jpby3drriw9bxbjld8v6lz7af6d9mw"; depends=[acs data_table Rcpp]; };
-  synthesis = derive2 { name="synthesis"; version="1.2.2"; sha256="0kkhib5s7ibj22zwlhr95gazvinrrhnddbkdg9d1k9y9zxm8df6j"; depends=[MASS]; };
+  synthesis = derive2 { name="synthesis"; version="1.2.3"; sha256="0nhnpqhs1h7iz49h852ns8pgmcl8via506idyp19dp778wbmxkn1"; depends=[MASS]; };
   synthesisr = derive2 { name="synthesisr"; version="0.3.0"; sha256="0b50d5hfkscggn2f6h8wyljkar08r8cbc0a4l12f809w5hdnjc63"; depends=[stringdist]; };
-  synthpop = derive2 { name="synthpop"; version="1.6-0"; sha256="0yknpisl81r87afijnjz5za0j6nn135mhrbpa9dva3c0dzamnhms"; depends=[classInt foreign ggplot2 lattice MASS mipfp nnet party plyr polspline proto randomForest ranger rpart]; };
+  synthpop = derive2 { name="synthpop"; version="1.7-0"; sha256="17f2fc4l5733zqrmxvwq9yklraxxxp37810fsnj9lb8sq4cl70rn"; depends=[classInt foreign ggplot2 lattice MASS mipfp nnet party plyr polspline proto randomForest ranger rpart stringr survival]; };
   sys = derive2 { name="sys"; version="3.4"; sha256="11q4zmx62w44p1j34frwmrsp23mc7l4n354i0zyziw92yax8zy0p"; depends=[]; };
   sysfonts = derive2 { name="sysfonts"; version="0.8.5"; sha256="1fhf0x5sqx3mv72j9d0clkq1qzqiqxbxn1h808f7ccf0mb04v43y"; depends=[]; };
   sysid = derive2 { name="sysid"; version="1.0.4"; sha256="0fr9gf5yjin3zvz850z4r4pqc1r4mwx8d46sl64i4csdm9qnqagy"; depends=[bitops ggplot2 polynom reshape2 signal tframe zoo]; };
@@ -17067,6 +17199,7 @@ in with self; {
   tTOlr = derive2 { name="tTOlr"; version="0.2"; sha256="1fk33vp6y65mls1iczjf63wzj1rl1knbdcbd4rnqqfdcqhibb3p3"; depends=[lattice latticeExtra]; };
   taRifx = derive2 { name="taRifx"; version="1.0.6.2"; sha256="05cvjsi65fvy9hg2v3fldzwn1yd2kfirl3ffg9yfajm903dk3l49"; depends=[plyr reshape2]; };
   tab = derive2 { name="tab"; version="5.1.1"; sha256="1kg8c1safi9klkx2mdkmsf5dn9piy4jljwd4ma7g4jz2rwl4jzhv"; depends=[dplyr kableExtra knitr MASS survey]; };
+  tabbycat = derive2 { name="tabbycat"; version="0.17.0"; sha256="1q18vnk4jyql46vjj6bhn2sa65yswg1hw8mbrwv7602dfk09p74x"; depends=[dplyr janitor magrittr purrr rlang stringr tibble tidyr]; };
   taber = derive2 { name="taber"; version="0.1.2"; sha256="0cib8fsib4q8nf18vcpailvkplf57cm8fshb09clxm3zcp8j9c17"; depends=[dplyr magrittr]; };
   tabit = derive2 { name="tabit"; version="0.2.1"; sha256="0jy95jpbzj4rgaxmm6ki9wr0cl1w13pygq3yavdccjr82mayfpvc"; depends=[]; };
   tablaxlsx = derive2 { name="tablaxlsx"; version="1.2.4"; sha256="19yg8m264f1hjsi8b7zxjpbvlaz2jrxj2bd9nv95g52dvlysg4nk"; depends=[openxlsx]; };
@@ -17124,6 +17257,7 @@ in with self; {
   taxlist = derive2 { name="taxlist"; version="0.2.2"; sha256="0xdl7aw3ifn4v2wclk38iyayy9r71cx5diir1m4pws986qfdddb4"; depends=[foreign stringdist taxa taxize vegdata]; };
   taxonomizr = derive2 { name="taxonomizr"; version="0.8.0"; sha256="0i1xn5x8c555hdlnfbhpga4vzn1l6kcqjgcw472y8yg0n7s2birx"; depends=[curl data_table R_utils RSQLite]; };
   taxotools = derive2 { name="taxotools"; version="0.0.79"; sha256="1q69dh1ifa7mc8y3bdgvvg97s9prflh6mczqr4clxnsysd3xhafs"; depends=[plyr sqldf stringdist stringr taxize wikitaxa]; };
+  tayloRswift = derive2 { name="tayloRswift"; version="0.1.0"; sha256="1gr179hzqxih49v214dqawfhsbsahhyj1lbj77vqv00zq1siigpl"; depends=[]; };
   taylor = derive2 { name="taylor"; version="0.2.1"; sha256="07agh34c1l1jgcqfq1p7fpfzd2sihsfs16xqc2m8yy4qpij929xm"; depends=[crayon ggplot2 glue rlang scales tibble vctrs]; };
   tbart = derive2 { name="tbart"; version="1.0"; sha256="0m8l9ic7na70il6r9ha0pyrjwznbgjq7gk5xwa5k9px4ysws29k5"; depends=[Rcpp sp]; };
   tbd = derive2 { name="tbd"; version="0.1.0"; sha256="1wmfy3p82gckhfsslxzapryfygmircii7x24j6ysfyx52gy8iwf5"; depends=[numDeriv]; };
@@ -17134,6 +17268,7 @@ in with self; {
   tbrf = derive2 { name="tbrf"; version="0.1.5"; sha256="1mxfvgb18a62igdh3af4m8x6fl69s25j4x7isd70w744w6jvch3h"; depends=[boot dplyr lubridate purrr rlang tibble tidyr]; };
   tcensReg = derive2 { name="tcensReg"; version="0.1.7"; sha256="07wwn65c4q2ngafxhdd9vl0y1wambfy158mf38skxm295yidd05n"; depends=[maxLik Rdpack]; };
   tcftt = derive2 { name="tcftt"; version="0.1.0"; sha256="0p5ln0sl0fasdn49252g4lvwgwajgl7lh33a4r073ib54hxbj7bk"; depends=[]; };
+  tci = derive2 { name="tci"; version="0.1.2"; sha256="0j7bqmnh0x6070ywnb2fbmhmf4iwmfa8hjw9rbw1hybnp8il090s"; depends=[ggplot2 gridExtra mvtnorm Rcpp RcppArmadillo reshape truncnorm]; };
   tcl = derive2 { name="tcl"; version="0.1.1"; sha256="01klrzvw7vc0iwqpmcikgqm8jx3g7536r5f8gb6vwcik912maxnl"; depends=[colorspace eRm lattice ltm MASS Matrix numDeriv psych psychotools]; };
   tcltk2 = derive2 { name="tcltk2"; version="1.2-11"; sha256="1ibxld379600xx7kiqq3fck083s8psry12859980218rnzikl65d"; depends=[]; };
   tclust = derive2 { name="tclust"; version="1.4-2"; sha256="1nb5iky4kc832627jf28lzj19wrvgwg5da6fyl3kyf0npmyx1p4m"; depends=[]; };
@@ -17169,16 +17304,16 @@ in with self; {
   tensorBF = derive2 { name="tensorBF"; version="1.0.2"; sha256="1dw1a6xqcsl4isbzbfiplgqq5nak5n9ffzm23mzzmkh1r1a8kl1y"; depends=[tensor]; };
   tensorBSS = derive2 { name="tensorBSS"; version="0.3.8"; sha256="1chgkdshjpxzy0cxkgjzpr5k4v2hyad1vchrxyqhsj9isfic2581"; depends=[abind fICA ggplot2 ICtest JADE Rcpp RcppArmadillo tensor tsBSS]; };
   tensorTS = derive2 { name="tensorTS"; version="0.1.2"; sha256="0hwskjw611vlrd3q6yypgk6g8p704yih6m9869hjyn3x0rf2kw7n"; depends=[abind expm MASS Matrix pracma rTensor tensor]; };
-  tensorflow = derive2 { name="tensorflow"; version="2.6.0"; sha256="1lkzxc3b5gkcg4hwqr57cysplcba6ff44qz8lbvk19kxnrhjaf9g"; depends=[config processx reticulate rstudioapi tfautograph tfruns yaml]; };
+  tensorflow = derive2 { name="tensorflow"; version="2.7.0"; sha256="0xgm8jb1hl8564vviqys3aqwzvfbh0d43m154cj07j9spdz306ng"; depends=[config processx reticulate rstudioapi tfautograph tfruns yaml]; };
   tensorr = derive2 { name="tensorr"; version="0.1.1"; sha256="18xdvp328h96jn8y1iayxh7cyz2s8j5nn43nq18pyaxq271hkfyh"; depends=[assertive_base assertive_properties assertive_types Matrix purrr]; };
   tensorregress = derive2 { name="tensorregress"; version="4.0"; sha256="0pb512v3gahgv3qc31i5v2jg8wixi6ps3p920sq5dgpfrig9hg2q"; depends=[MASS pracma speedglm]; };
   tensorsparse = derive2 { name="tensorsparse"; version="3.0"; sha256="0xx003nh5bi87cbsqb7ikpcs4yhjhphh7pybzzas44qkwbn4fn1k"; depends=[]; };
   tensr = derive2 { name="tensr"; version="1.0.1"; sha256="1z6b3ra7fgn88mxbhsq65x3frj5j7p17n119s9kbw7sg9y633vfx"; depends=[assertthat]; };
   tergm = derive2 { name="tergm"; version="4.0.2"; sha256="0r1afidhfwmfkihcmry37j9imq26b55m84nxgv3r03y9cq8xdcas"; depends=[coda ergm MASS network networkDynamic nlme purrr robustbase statnet_common]; };
-  tergmLite = derive2 { name="tergmLite"; version="2.5.0"; sha256="17qs02lh3if4s6ims5scig0bwykb6cvb4a87k6iz24ccb18gahlc"; depends=[ergm network Rcpp statnet_common tergm tibble]; };
+  tergmLite = derive2 { name="tergmLite"; version="2.5.5"; sha256="0sg19ppvmy1wfqbvchn98maxiqzaa67yz64g4mhyxviksh1yzwxd"; depends=[ergm network networkDynamic Rcpp statnet_common tergm tibble]; };
   term = derive2 { name="term"; version="0.3.3"; sha256="04zl9hb3kgji5y3lq7d1pa4fh7mr0kxxjx1pmyj3dla8mqjxv22r"; depends=[chk extras lifecycle purrr rlang universals vctrs]; };
   ternvis = derive2 { name="ternvis"; version="1.2"; sha256="057i6i3ygxrin0npc18gsg3dpdldzafyb5sr6lix5mhy6b09lkxf"; depends=[dichromat maps quadprog]; };
-  terra = derive2 { name="terra"; version="1.4-11"; sha256="08gx28ad00adz4fqch3fx27s6yd0rpjhmdy6b83d1wnlzzgc13qa"; depends=[Rcpp]; };
+  terra = derive2 { name="terra"; version="1.4-22"; sha256="0xir5d6krf6n5dw9nzy04j4gnrfvyr5f545ksx474mv4cyiwzv5q"; depends=[Rcpp]; };
   terrainmeshr = derive2 { name="terrainmeshr"; version="0.1.0"; sha256="1xab6wzq2izzdvsss1rlgp5m3cn45naxhymq6cglipj0fd792jbr"; depends=[Rcpp]; };
   terrainr = derive2 { name="terrainr"; version="0.5.0"; sha256="0jams1b0a2bvm3l8kybfgvqgarm98kvhzh6n68mrh7xnk5hxgyjx"; depends=[base64enc gdalUtils ggplot2 httr magick png raster sf units]; };
   tesseract = derive2 { name="tesseract"; version="4.1.2"; sha256="1x29i48khn679x8xf246br12aa3ax96sh5x8m2ya96kz6m7zchjh"; depends=[curl digest pdftools rappdirs Rcpp]; };
@@ -17187,6 +17322,7 @@ in with self; {
   testarguments = derive2 { name="testarguments"; version="0.0.1"; sha256="1x77z0pljfi6z4bs6db3zsjbpyypsd3jbd0ykh4pq07595phh8x5"; depends=[dplyr ggplot2 magrittr plyr reshape2]; };
   testassay = derive2 { name="testassay"; version="0.1.1"; sha256="1gc35s5an0cpvadwx4bswy5lzcp01az3gnkjhvph6sm3pi3xjxm7"; depends=[]; };
   testcorr = derive2 { name="testcorr"; version="0.2.0"; sha256="0bqhf4p4csyd430240d8gh09axpz3h108fh78sbgpyqdhiq3d1fh"; depends=[forcats ggplot2 knitr reshape2 scales]; };
+  testdat = derive2 { name="testdat"; version="0.3.0"; sha256="1kpzhqpqfxkmn0xrb7w0zk7vanm7daxhr3qpnsj3s23mkhrx333k"; depends=[dplyr glue lifecycle rlang stringr testthat tidyselect]; };
   testequavar = derive2 { name="testequavar"; version="0.1.2"; sha256="12qfy53rkrasxphcfmch5bmdlvlybd27jfg3azsi3fg4zk4qgdw2"; depends=[]; };
   tester = derive2 { name="tester"; version="0.1.7"; sha256="1x5m43abk3x3fvb2yrb1xwa7rb4jxl8wjrnkyd899ii1kh8lbimr"; depends=[]; };
   testforDEP = derive2 { name="testforDEP"; version="0.2.0"; sha256="1mgzhj8b35r5cm4bl0nnyxj0h7rwd28d17qvgvaky2kvm2r83cf9"; depends=[Hmisc minerva Rcpp]; };
@@ -17195,13 +17331,14 @@ in with self; {
   testthis = derive2 { name="testthis"; version="1.1.1"; sha256="0csragn695698dpkr9d3md0g81bzpy5mybd0jik669q9cs8sdzh2"; depends=[assertthat devtools fs magrittr pkgload rprojroot stringi testthat usethis]; };
   testtwice = derive2 { name="testtwice"; version="1.0.3"; sha256="06fr13ww2wqk753p0cnl1ldn3nqrvdfnz0lgkpldcn0xwiwjh2x2"; depends=[mvtnorm]; };
   tetraclasse = derive2 { name="tetraclasse"; version="0.1.21"; sha256="1cl2cah0xi6x3rvvdy56iszai6rkbxc1w3x13v0l1z1nryff7c6a"; depends=[dplyr FactoMineR ggplot2 ggrepel magrittr reshape2 tibble tidyr]; };
+  tetragon = derive2 { name="tetragon"; version="1.0.0"; sha256="17n6g262f19bvxh0i35xcpf9qbdzaff80vvmx8vsijjiniw2hrbq"; depends=[abind ggplot2 greybox imputeTS lubridate modeest moments narray philentropy purrr readr scales stringr tictoc]; };
   texPreview = derive2 { name="texPreview"; version="1.5"; sha256="11njmn29qq50iff30in9i0yfi6ypnpqsx3317smr9fiw3hgda3c5"; depends=[base64enc details fs htmltools knitr lifecycle magick magrittr rematch2 rstudioapi svgPanZoom whisker xml2]; };
   texmex = derive2 { name="texmex"; version="2.4.8"; sha256="115x7j2kvifzsrmh8zy6xymm1p01sxk4c26zdmi0p51bsgvs46ih"; depends=[ggplot2 mvtnorm Rcpp]; };
   texreg = derive2 { name="texreg"; version="1.37.5"; sha256="0cb3kvxfi9k9g958fkb73cgqdxx3h9bz2cnaakic4wgrkv27mk2c"; depends=[httr]; };
   text = derive2 { name="text"; version="0.9.10"; sha256="1ramsv2pbg57yyxp5qjkls82gl5icda6f5116hr0w5s0w3jpajmj"; depends=[cowplot dplyr furrr future ggplot2 ggrepel magrittr parsnip purrr recipes reticulate rlang rsample stringr tibble tidyr tokenizers tune workflows yardstick]; };
   text_alignment = derive2 { name="text.alignment"; version="0.1.2"; sha256="0qjnzdm7savn2jqmm23cd3rszyihnhb5rfnygc36ccfd15vav79j"; depends=[Rcpp]; };
   text2map = derive2 { name="text2map"; version="0.1.1"; sha256="1kwbb9bp3ikksh24i69gclmanyqri3xn7rdbf1x93lhj7fxzbxrs"; depends=[doParallel dplyr fastmatch foreach igraph kit magrittr Matrix mlpack qgraph rlang stringi stringr text2vec tibble]; };
-  text2sdg = derive2 { name="text2sdg"; version="0.1.0"; sha256="1a4ms4bha7h8mrbjzv5rb3s4gc1s5s22x5c97ss82r9pdb2ynvck"; depends=[corpustools dplyr ggplot2 magrittr stringr tibble tidyr]; };
+  text2sdg = derive2 { name="text2sdg"; version="0.1.1"; sha256="1l7v8jn8pj5r9n60im7ihj9xnb7m02ay2qxichg9ssv47h8sl9fl"; depends=[corpustools dplyr ggplot2 magrittr stringr tibble tidyr]; };
   text2speech = derive2 { name="text2speech"; version="0.2.13"; sha256="0c0h4yfp1gzaf4snav84iy5m0fx8az0pw1h2s33239dxkwcff893"; depends=[aws_signature dplyr googleAuthR googleLanguageR httr knitr magrittr mscstts tuneR]; };
   text2vec = derive2 { name="text2vec"; version="0.6"; sha256="0r75cv77x2zm1z66s95hic71dpbqmybz39n48q6mz7gfd3m7312y"; depends=[data_table digest lgr Matrix mlapi R6 Rcpp rsparse stringi]; };
   textTinyR = derive2 { name="textTinyR"; version="1.1.7"; sha256="17c3vciqx2i0h0jkqsiva8kp6pwcrscwgyxf804sjvdbym0pwc7d"; depends=[BH data_table Matrix R6 Rcpp RcppArmadillo]; };
@@ -17231,7 +17368,7 @@ in with self; {
   tfaddons = derive2 { name="tfaddons"; version="0.10.0"; sha256="16adig97qmafval6i29pqdinsgbwjz2isajxdx1xvbf1mrawkmz0"; depends=[keras purrr reticulate rstudioapi tensorflow]; };
   tfarima = derive2 { name="tfarima"; version="0.2.1"; sha256="1n7bdhcn6cvz7ly9b3jgxyw2nan0ixzj1m9d316yalmbkqh1md62"; depends=[numDeriv Rcpp RcppArmadillo zoo]; };
   tfautograph = derive2 { name="tfautograph"; version="0.3.2"; sha256="0fmaq1ggjyxgf2ss7qb8jk74sfwc3s1vc123pd5glclxcy1ib0j2"; depends=[backports reticulate]; };
-  tfdatasets = derive2 { name="tfdatasets"; version="2.6.0"; sha256="06sjcbrv4msl66kjjq30557x8pikcqp8350k9f77ilxgcq2nhqqb"; depends=[generics magrittr reticulate rlang tensorflow tidyselect vctrs]; };
+  tfdatasets = derive2 { name="tfdatasets"; version="2.7.0"; sha256="1yzh13mc1mwz464raa0q9gj6s4mv87g7mdla73scr5x009wqjpln"; depends=[generics magrittr reticulate rlang tensorflow tidyselect vctrs]; };
   tfdeploy = derive2 { name="tfdeploy"; version="0.6.1"; sha256="1vbxyvmzaafbwp1pmvzn16zyl4nz85787m79gn7iazh9zw9f7j34"; depends=[httpuv httr jsonlite magrittr reticulate swagger tensorflow]; };
   tfer = derive2 { name="tfer"; version="1.3"; sha256="1a5i9jccj39n61ixx8q2qq9ismr43jybp0vlvy6jda99r92zdhhl"; depends=[]; };
   tfestimators = derive2 { name="tfestimators"; version="1.9.2"; sha256="1gwj2xal5an0m9c2x1rxzsg07hgzjyxr4m08sd3salgyc2h3bi5g"; depends=[forge magrittr progress purrr reticulate rlang tensorflow tfruns tibble tidyr tidyselect]; };
@@ -17250,7 +17387,6 @@ in with self; {
   tgram = derive2 { name="tgram"; version="0.2-3"; sha256="0vlnry8drq3fqfy8dk50pcwcx9dj657kx6s19fs2b6acigkr4g7w"; depends=[zoo]; };
   tgstat = derive2 { name="tgstat"; version="2.3.16"; sha256="12apvcpdwfng0sp2v80xvpk7ynbadi2lvbfk14hlcsvw8h3rb268"; depends=[]; };
   thankr = derive2 { name="thankr"; version="1.0.0"; sha256="089ikp85d5ia6a1qzmw8dkgcmz628cibmwfzcpk7m3ii8acxq91w"; depends=[]; };
-  thectar = derive2 { name="thectar"; version="1.0.0"; sha256="1qh0qzg0ybb38kzm56xxlvhm201pdjm16aky5f1fdflcsszgy8mx"; depends=[proxy smacof]; };
   theiaR = derive2 { name="theiaR"; version="0.4.0"; sha256="07m532r67cil2ya2w9lfhycrm8n0ga0r3x7jwbp5jbd83hw4l1p6"; depends=[askpass httr R6 raster XML]; };
   thematic = derive2 { name="thematic"; version="0.1.2.1"; sha256="1hr9373256n1rya3l2z2sqwfifypsh6wrs2s27aqchh9sm0blkmy"; depends=[farver ggplot2 rappdirs rlang rstudioapi scales]; };
   themetagenomics = derive2 { name="themetagenomics"; version="1.0.2"; sha256="14i81cd9cyzhi3j2d9ygwlairkimhx8ffvva3pg3xwwvpywb6mla"; depends=[ggplot2 lda lme4 Matrix plotly Rcpp rstan scales shiny stm]; };
@@ -17274,7 +17410,7 @@ in with self; {
   thriftr = derive2 { name="thriftr"; version="1.1.5"; sha256="1s8fn0imja6gh5bb0h2g1pmvkwk5v0dmpml9yvcd5dhz9lxy6vdj"; depends=[R6 rly stringi]; };
   thsls = derive2 { name="thsls"; version="0.1"; sha256="18z7apskydkg7iqrs2hgnzby578qsvyd73wx8v4z3aa338lssdi7"; depends=[Formula]; };
   thurstonianIRT = derive2 { name="thurstonianIRT"; version="0.12.1"; sha256="1qac1kg441x6fx3nxlhj1w1q7b3isivw6hzy7np3g1ics3kxpw8b"; depends=[BH dplyr knitr lavaan magrittr MplusAutomation mvtnorm Rcpp RcppEigen RcppParallel rlang rstan rstantools StanHeaders tibble tidyr]; };
-  tibble = derive2 { name="tibble"; version="3.1.5"; sha256="1ryv1r3cah1s8dyqdhcb0yl81r384jvgc4d1q9zwsrrsd2x8fqys"; depends=[ellipsis fansi lifecycle magrittr pillar pkgconfig rlang vctrs]; };
+  tibble = derive2 { name="tibble"; version="3.1.6"; sha256="14l2i6ri3v5y0h8g0ahc4kz0pdqsp5yabxk2w8wavss6y44xjcsv"; depends=[ellipsis fansi lifecycle magrittr pillar pkgconfig rlang vctrs]; };
   tibbletime = derive2 { name="tibbletime"; version="0.1.6"; sha256="0pfph4pyjxkxrir5ca1sh7xz07dylqnq40w0qyqiyaj5s23mbbmb"; depends=[assertthat dplyr glue hms lifecycle lubridate purrr Rcpp rlang tibble tidyselect vctrs zoo]; };
   tibblify = derive2 { name="tibblify"; version="0.1.0"; sha256="0mdi9x36nrlcbchl7b2rlf4j1k0y6c7657aznm7xa0396ciij5fk"; depends=[crayon purrr rlang tibble vctrs]; };
   tictactoe = derive2 { name="tictactoe"; version="0.2.2"; sha256="1fx8plj5zr04xwk5hfj3zqhcknidxlzya2q14cf0m3y33a86lx42"; depends=[hash]; };
@@ -17282,11 +17418,11 @@ in with self; {
   tidyBdE = derive2 { name="tidyBdE"; version="0.2.2"; sha256="041hwm73galrwjr4xnwzw5pzwp54g88w0464gmszrhs27lhhsr06"; depends=[dplyr ggplot2 readr scales tibble]; };
   tidyCpp = derive2 { name="tidyCpp"; version="0.0.5"; sha256="1ad10m831k0askr15yv6drmjh7rlg0py1ib8zmpsgj57v5s9wx3p"; depends=[]; };
   tidyHeatmap = derive2 { name="tidyHeatmap"; version="1.3.1"; sha256="107bfyjakqfiimnwdyl2nhvx1fjpzv693akvi5l0cai6vjs007wj"; depends=[circlize ComplexHeatmap dendextend dplyr lifecycle magrittr purrr RColorBrewer rlang tibble tidyr viridis]; };
-  tidyLPA = derive2 { name="tidyLPA"; version="1.0.8"; sha256="0jrvd92q20kzz83lid9vvdh0l3l1kbc4m77cim261gzra1p7w5y0"; depends=[dplyr ggplot2 gtable mclust mix MplusAutomation tibble]; };
+  tidyLPA = derive2 { name="tidyLPA"; version="1.1.0"; sha256="1lyd8cx90j49bm65330i57jyimiid75c2pvnzk7dcp6mbmglvimz"; depends=[dplyr ggplot2 gtable mclust mix MplusAutomation tibble]; };
   tidyMicro = derive2 { name="tidyMicro"; version="1.47"; sha256="02pc6rh0l7xdrqhihi53zp17x0walc0mpm70spm7yrwzkbc486lv"; depends=[ade4 broom car cowplot dplyr Evomorph factoextra ggplot2 ggrepel gridExtra latex2exp lme4 lsr magrittr MASS Matrix plotly plyr png purrr rlang scales scatterplot3d shapes stringr ThreeWay tibble tidyr tidyverse vegan VGAM]; };
   tidyREDCap = derive2 { name="tidyREDCap"; version="0.2.0"; sha256="03kx91avw6zbmrcxvhkb7i3syw3ajkv9ypvgn2iq3ki887vbiwzw"; depends=[dplyr janitor magrittr purrr rlang stringr tibble tidyr]; };
   tidyRSS = derive2 { name="tidyRSS"; version="2.0.4"; sha256="0djkdjgs64f00pcs5gc8vmijyjsfb5sm0p64bybhs1y0kb3wlnl3"; depends=[anytime dplyr glue httr jsonlite magrittr purrr rlang tibble tidyselect vctrs xml2]; };
-  tidySEM = derive2 { name="tidySEM"; version="0.1.10"; sha256="12i3d48z8y5r4v8pkswlnq9jng9065xy6aflnna5hl0jh93wa4rp"; depends=[ggplot2 igraph lavaan MplusAutomation OpenMx psych]; };
+  tidySEM = derive2 { name="tidySEM"; version="0.2.0"; sha256="115nr2h3bz9pjxf5c1cw3b2v16nix5z41r49zjqzn8yrfjs59crw"; depends=[ggplot2 gtable igraph lavaan MplusAutomation OpenMx psych]; };
   tidyUSDA = derive2 { name="tidyUSDA"; version="0.3.2"; sha256="092zy2k2hajr0g47r7ngsm089j4y70q7biwyhsiz3vfmpg3s3ijb"; depends=[crayon dplyr fuzzyjoin ggplot2 httr jsonlite magrittr purrr sf tigris]; };
   tidybayes = derive2 { name="tidybayes"; version="3.0.1"; sha256="1drgjqcrcxx0jwaj9c0a5j0f6v793pq8rjcw8cv3zc438apfmdsm"; depends=[arrayhelpers coda dplyr ggdist ggplot2 magrittr posterior rlang tibble tidyr tidyselect vctrs withr]; };
   tidybins = derive2 { name="tidybins"; version="0.1.0"; sha256="1kwwz0y1anlf1l8yl80xyiggdi8alsh0drb1529rijfk2jxlljg9"; depends=[badger ClusterR dplyr framecleaner ggplot2 janitor lubridate magrittr OneR purrr rlang rlist scales strex stringr tibble tidyselect xgboost]; };
@@ -17294,6 +17430,7 @@ in with self; {
   tidycat = derive2 { name="tidycat"; version="0.1.2"; sha256="1c8ib5zcz2xk7yrzh4j5q4ccv6lnw58sh2ggqn04k2wp0gcj2zcs"; depends=[dplyr forcats magrittr stringr tibble tidyr]; };
   tidycensus = derive2 { name="tidycensus"; version="1.1"; sha256="1h32f1qgb7fnlbmqdkgl98cql06ds5r25ad3zbqrcs58ckngs549"; depends=[crayon dplyr httr jsonlite purrr rappdirs readr rlang rvest sf stringr tidyr tigris units xml2]; };
   tidycharts = derive2 { name="tidycharts"; version="0.1.2"; sha256="0afdd5rdpwpyciangybwxahfjivqm13i3az2wzaky4s6mv68x6bd"; depends=[dplyr htmlwidgets lubridate magick magrittr rlang rsvg stringr testthat]; };
+  tidycmprsk = derive2 { name="tidycmprsk"; version="0.1.0"; sha256="00wp47kdwp5kln25mn1lvzwchxrf3fq3qlacn9pi2drhjcp7hwj4"; depends=[broom cli cmprsk dplyr ggplot2 gtsummary hardhat purrr rlang stringr survival tibble tidyr]; };
   tidycode = derive2 { name="tidycode"; version="0.1.1"; sha256="0ahjhn1ar93xnd1snxnivdl43d1b6ica0pc30rgh8jpha87zbsay"; depends=[glue matahari pryr purrr rlang tibble]; };
   tidycomm = derive2 { name="tidycomm"; version="0.2.1"; sha256="1h1xixa7fbijp1iifpwl689b1pz1vvpy7v4sc9wnkqgw0q31b3iy"; depends=[broom dplyr forcats glue magrittr MBESS purrr rlang stringr tibble tidyr]; };
   tidycwl = derive2 { name="tidycwl"; version="1.0.5"; sha256="1ii23iamqmplsmnjnr6x9a1wjrbk82r0ywbskfifv26i66wyjqc3"; depends=[dplyr htmlwidgets jsonlite magrittr visNetwork webshot yaml]; };
@@ -17306,10 +17443,11 @@ in with self; {
   tidygate = derive2 { name="tidygate"; version="0.4.7"; sha256="0g5k136bgcvs9hzach3wlf97npdgy52anx7m7xjg6ixgf9rvqw70"; depends=[dplyr lifecycle magrittr purrr RColorBrewer rlang scales stringr tibble tidyr viridis]; };
   tidygenomics = derive2 { name="tidygenomics"; version="0.1.2"; sha256="1cnwmmmzp9kg4k7iy2kgb22bdllpnz257pv1ahy3l11zy6bl48fc"; depends=[dplyr fuzzyjoin IRanges purrr Rcpp rlang tidyr]; };
   tidygeoRSS = derive2 { name="tidygeoRSS"; version="0.0.1"; sha256="0bppkwbxmm8ps1cnrhzxkzm2pbi3s5bfiwx8fcrp31x81jl61w1x"; depends=[anytime dplyr httr jsonlite magrittr purrr rlang sf strex stringr tidyRSS xml2]; };
-  tidygeocoder = derive2 { name="tidygeocoder"; version="1.0.4"; sha256="1n7k7h14027xc2c15vvkg131l0kzzamk1yd4r2d821yll3ccnwm4"; depends=[dplyr httr jsonlite lifecycle progress tibble]; };
+  tidygeocoder = derive2 { name="tidygeocoder"; version="1.0.5"; sha256="1ffj8ka5miv3jnds7fdrkcqdc3m2w1ab724z9m10biky213skqka"; depends=[dplyr httr jsonlite lifecycle progress tibble]; };
   tidygraph = derive2 { name="tidygraph"; version="1.2.0"; sha256="17qjns33zcj82jcsl7bn7i4zxcm7ric50zyf7agi0i01zi16qz85"; depends=[dplyr igraph magrittr pillar R6 Rcpp rlang tibble tidyr]; };
   tidyhydat = derive2 { name="tidyhydat"; version="0.5.4"; sha256="0pkh6pd8rvjlang5zf15c2ca465shi46ks3mbzyymdy5sdj63hdf"; depends=[cli crayon DBI dbplyr dplyr httr lubridate rappdirs readr rlang RSQLite tidyr]; };
   tidyjson = derive2 { name="tidyjson"; version="0.3.1"; sha256="1rx5ncp20j9mhcziyqb0vgfq9061qylgvfwz27dsyz58r8fygwnq"; depends=[assertthat dplyr jsonlite magrittr purrr rlang tibble tidyr]; };
+  tidylab = derive2 { name="tidylab"; version="4.1.1"; sha256="052wgx4dfbr806b9r0cfblkwaf1qnrlf5ngm1c029ggss3br7ki4"; depends=[cli crayon decorators dplyr microservices purrr rstudioapi tibble usethat]; };
   tidylda = derive2 { name="tidylda"; version="0.0.1"; sha256="1w53zjz0ckn2qhgichak54j2i4anbhcb8mdg37f0kqiygavxdkmx"; depends=[dplyr generics gtools Matrix mvrsquared Rcpp RcppArmadillo RcppProgress RcppThread rlang stringr textmineR tibble tidyr tidytext]; };
   tidylo = derive2 { name="tidylo"; version="0.1.0"; sha256="135aw7zqgxz7l3zgskhzy72lgm1xwl50566s0s45dq7h6ah0vi5d"; depends=[dplyr rlang]; };
   tidylog = derive2 { name="tidylog"; version="1.0.2"; sha256="076am30ayc16wm3bilznxqzd5806yi7dx5m9yv4w7q90i7imsqk7"; depends=[clisymbols dplyr glue tidyr]; };
@@ -17337,15 +17475,15 @@ in with self; {
   tidytable = derive2 { name="tidytable"; version="0.6.5"; sha256="1k8zl5hxbmizas8lhcp5nzqis7wikn9bbdjwjkc6cpzbpr722bd3"; depends=[data_table glue lifecycle magrittr pillar rlang tidyselect vctrs]; };
   tidytext = derive2 { name="tidytext"; version="0.3.2"; sha256="0as7lscjl6ywk85almmb4f71vxmgkfds46g52ryggkg2isksvq3g"; depends=[dplyr generics hunspell janeaustenr lifecycle Matrix purrr rlang stringr tibble tokenizers vctrs]; };
   tidytidbits = derive2 { name="tidytidbits"; version="0.2.3"; sha256="1sia4bxfnb0hw047l6hl013si3iaisac51lp9b42m22hcxzxwgx0"; depends=[dplyr extrafont forcats magrittr purrr rlang stringr tibble tidyr tidyselect]; };
-  tidytransit = derive2 { name="tidytransit"; version="1.1.0"; sha256="0z4xiz8afvsqcc4x7ac1p6y60lwx5yr1s78mi7a0c322lc80yfln"; depends=[checkmate data_table digest dplyr geodist gtfsio hms httr lubridate readr rlang sf tibble tidyr zip]; };
+  tidytransit = derive2 { name="tidytransit"; version="1.2.0"; sha256="0zvzjnrn7znm58di38h53kmbyabc9a514010rywpjs6w9blvyb6g"; depends=[checkmate data_table digest dplyr geodist gtfsio hms httr rlang sf]; };
   tidytreatment = derive2 { name="tidytreatment"; version="0.2.1"; sha256="09d9qiwb1mniwfyklkiylr1glix1f441kkxlbff2x99j1xij197x"; depends=[dplyr purrr readr rlang tidybayes tidyr]; };
-  tidytree = derive2 { name="tidytree"; version="0.3.5"; sha256="0zk46n3nh577k2jy34isdw845hk0blkvqk7rg5nmix5b65qsp762"; depends=[ape dplyr lazyeval magrittr rlang tibble tidyr tidyselect]; };
+  tidytree = derive2 { name="tidytree"; version="0.3.6"; sha256="1gnpm4zz0kvqng5s179301q0h5993ajynm8y0zbdz38qcmzfpsdk"; depends=[ape dplyr lazyeval magrittr rlang tibble tidyr tidyselect yulab_utils]; };
   tidytuesdayR = derive2 { name="tidytuesdayR"; version="1.0.1"; sha256="0slpfajv5cxqxfb1sh98574zrcgihiazscpr0zga2i6kiwn3kgpy"; depends=[httr jsonlite lubridate magrittr purrr readr readxl rstudioapi rvest usethis xml2]; };
   tidyverse = derive2 { name="tidyverse"; version="1.3.1"; sha256="0ck6xmsw5p168jmw2fqv79fzfnw5jckfra7mfii261j6kl89bkw3"; depends=[broom cli crayon dbplyr dplyr dtplyr forcats ggplot2 googledrive googlesheets4 haven hms httr jsonlite lubridate magrittr modelr pillar purrr readr readxl reprex rlang rstudioapi rvest stringr tibble tidyr xml2]; };
   tidyvpc = derive2 { name="tidyvpc"; version="1.2.0"; sha256="1xih8gdc44ddi5kqx8kq9i3pz21hddha87fpb58wjfr5hsaw18sy"; depends=[classInt data_table fastDummies ggplot2 magrittr mgcv quantreg rlang]; };
   tidywikidatar = derive2 { name="tidywikidatar"; version="0.4.2"; sha256="006rcm8g5vqrbwvviaclynzrapff8yclqkmq3hkdljm5v972g5gj"; depends=[DBI dplyr fs glue jsonlite magrittr progress purrr rlang RSQLite stringr tibble tidyr usethis WikidataQueryServiceR WikidataR]; };
   tidyxl = derive2 { name="tidyxl"; version="1.0.7"; sha256="1wg8h5fd2hd8ilshrbcs99q18p15687dx8j51v5pyd30pg5cab7b"; depends=[piton Rcpp]; };
-  tiff = derive2 { name="tiff"; version="0.1-8"; sha256="18m17g5q3nz4v4wrqxnb129b1j02873g2vknddczkklf1pvq4x2b"; depends=[]; };
+  tiff = derive2 { name="tiff"; version="0.1-10"; sha256="1zha6bzb1rmfl6n2xjkygs9wfi3ah9cjr7a6jzk4zqc5kvl58lak"; depends=[]; };
   tiger = derive2 { name="tiger"; version="0.2.3.1"; sha256="0xr56c46b956yiwkili6vp8rhk885pcmfyd3j0rr4h8sz085md6n"; depends=[e1071 hexbin klaR lattice qualV som]; };
   tigerhitteR = derive2 { name="tigerhitteR"; version="1.1.0"; sha256="0inyi12lf8bn7nbklf2rjixk6wrgrjcp8njv7knai4dgvv7v0rfa"; depends=[Hmisc magrittr openxlsx zoo]; };
   tigerstats = derive2 { name="tigerstats"; version="0.3.2"; sha256="0p5z4qh0aznj03rnhk4lpqfkwnsa5zgvj51rddkzligg9zx73xwl"; depends=[abd ggplot2 lattice manipulate MASS mosaic mosaicData rlang]; };
@@ -17354,7 +17492,7 @@ in with self; {
   tigreBrowserWriter = derive2 { name="tigreBrowserWriter"; version="0.1.5"; sha256="0izgx1khci6qc6pz85dxj75kzxvpr30l0vhcv9476jrcbwqs4k8m"; depends=[DBI RSQLite]; };
   tigris = derive2 { name="tigris"; version="1.5"; sha256="0wj4q09k4nwl1kj7r05ivhdy4vp8x1hfblc6xsbnpb8p72l1rxsy"; depends=[dplyr httr magrittr maptools rappdirs rgdal sf sp stringr uuid]; };
   tikzDevice = derive2 { name="tikzDevice"; version="0.12.3.1"; sha256="040yz6wi05151m9nal97symv66a133kk0a8c1h6nz058zk081vav"; depends=[filehash png]; };
-  tiledb = derive2 { name="tiledb"; version="0.9.7"; sha256="0rdkcyx69xlrzpc8cz0jijx97afhrvhl5wq1d8xcrfjcjni74rfn"; depends=[nanotime Rcpp]; };
+  tiledb = derive2 { name="tiledb"; version="0.10.1"; sha256="09cb5xi20096iy3dyiirb9alq0a0f03yaxjhacnwz4cmbxrv3phc"; depends=[nanotime Rcpp]; };
   tilegramsR = derive2 { name="tilegramsR"; version="0.2.0"; sha256="11cnyvlghg8z7lr9ahzsjpyjrqnxqs77wdcydqvavrsqj745xvi2"; depends=[sf sp]; };
   tilemaps = derive2 { name="tilemaps"; version="0.2.0"; sha256="06pwwlndb7nvw2b0h0fak3vnpbi11mxsby43qm9ng3k3sqwrqjz2"; depends=[clue ggplot2 igraph lwgeom sf smoothr]; };
   tiler = derive2 { name="tiler"; version="0.2.5"; sha256="02sxc70s8v5b5lf1fpv1ig1hmpkamsmzbgpk6zds504gh9kz7qxy"; depends=[png raster rgdal sp]; };
@@ -17375,7 +17513,7 @@ in with self; {
   timereg = derive2 { name="timereg"; version="2.0.1"; sha256="1mrqy54jwgfygjlm7hvlx42c631is1nc1q6jd3chw2cx3pi9lhiq"; depends=[lava numDeriv survival]; };
   timesboot = derive2 { name="timesboot"; version="1.0"; sha256="1ixmcigi1bf42np93md8d3w464papg9hp85v0c3hg3vl4nsm2bji"; depends=[boot]; };
   timeseriesdb = derive2 { name="timeseriesdb"; version="0.4.1"; sha256="1ghb3lg63fs9zx34l5qczv39mdccnmqzlc74l1zhb8qmsg8sm1g2"; depends=[data_table DBI jsonlite openxlsx RPostgreSQL shiny xtable xts zoo]; };
-  timetk = derive2 { name="timetk"; version="2.6.1"; sha256="1yf0b8rpk0nmvvhz0hgj6mykr0kml0kh8f13xpzadwp9n0i0r3mw"; depends=[anytime assertthat dplyr forcats forecast generics ggplot2 hms lubridate padr plotly purrr readr recipes rlang rsample slider stringi stringr tibble tidyr tidyselect timeDate xts zoo]; };
+  timetk = derive2 { name="timetk"; version="2.6.2"; sha256="0wmay9ccl398jp1wy2czfpapmf4vy59sz4dc5y6z97jdimjmg46i"; depends=[anytime assertthat dplyr forcats forecast generics ggplot2 hms lubridate padr plotly purrr readr recipes rlang rsample slider stringi stringr tibble tidyr tidyselect timeDate xts zoo]; };
   timetools = derive2 { name="timetools"; version="1.14"; sha256="13jchgd9fc8hxj74wm1kg4rwcng4yxblkq04i33djsqghgb5f9mj"; depends=[]; };
   timetree = derive2 { name="timetree"; version="1.0"; sha256="1fpdp6mkwm67svqvkfflvqxn52y2041zl09rxrms28ybbd5f84c0"; depends=[phangorn XML]; };
   timevis = derive2 { name="timevis"; version="1.0.0"; sha256="003kizf974xibj90n60ipzwnrbdwjb659yxwi2xfnvh067aibwsp"; depends=[htmltools htmlwidgets jsonlite lubridate magrittr rmarkdown shiny]; };
@@ -17386,12 +17524,12 @@ in with self; {
   tint = derive2 { name="tint"; version="0.1.3"; sha256="00830n5nl6p73v9w0yzsak56phz4w1fh5lhf1c42gg1i81x7swnx"; depends=[htmltools knitr rmarkdown]; };
   tinter = derive2 { name="tinter"; version="0.1.0"; sha256="02hfw2720qn70x0piahm8cy2ajsb5bqapr4vyvknm4v1yka1wmw3"; depends=[chk]; };
   tinyProject = derive2 { name="tinyProject"; version="0.6.1"; sha256="0cflnfp5mib3j1y3n5yvi867h5a7z6xr6163gq9y9b6nrl2skxfk"; depends=[brew R_utils]; };
-  tinyarray = derive2 { name="tinyarray"; version="2.2.6"; sha256="0k99i0k1l5bjh08pgsxcanq74zw7hraawc679km6bblhh7yag2az"; depends=[BiocManager clusterProfiler dplyr ggplot2 limma org_Hs_eg_db patchwork pheatmap stringr survival survminer tibble]; };
+  tinyarray = derive2 { name="tinyarray"; version="2.2.7"; sha256="0nhsmgg126x2rfk82d91c8rk74sg7qbshy10vcbqdgcmlz6466mh"; depends=[BiocManager clusterProfiler dplyr ggplot2 limma org_Hs_eg_db patchwork pheatmap stringr survival survminer tibble]; };
   tinylabels = derive2 { name="tinylabels"; version="0.2.1"; sha256="1gvj8l6lvhjxx6fpk825jdgwq34ikm4wmjicyn486spxjc81bw85"; depends=[]; };
   tinyscholar = derive2 { name="tinyscholar"; version="0.1.4"; sha256="0lj5ax3m5kr18qf9xmrh6iyy00bp59wwi3ss96ynsyiajmndsajf"; depends=[curl dplyr ggplot2 gt jsonlite magrittr purrr R_utils rlang rvest stringr xml2]; };
   tinyspotifyr = derive2 { name="tinyspotifyr"; version="0.2.2"; sha256="19nicp1ml73lylja2np52rcc070maxm9286fjm7bfx3zsblxmakc"; depends=[httr jsonlite]; };
   tinytest = derive2 { name="tinytest"; version="1.3.1"; sha256="1mq31f7bzcz5bkgzl9khm1i80axfzra7gcjqxd2yqb4wrw1m3x4s"; depends=[]; };
-  tinytex = derive2 { name="tinytex"; version="0.34"; sha256="16z6v06pmvg02rbxkqyiidasg1dryy759zabnqjw6y85nybr618x"; depends=[xfun]; };
+  tinytex = derive2 { name="tinytex"; version="0.35"; sha256="04ng34kfds2isz4j9ch1xlii0dfclqay9fsc6wvr6sfifzv9fqyk"; depends=[xfun]; };
   tipitaka = derive2 { name="tipitaka"; version="0.1.2"; sha256="0xf64bpzwywwjm0135c7zjn4ha0h1zj36rj2d4h8dskiq9z90xqi"; depends=[cpp11 dplyr magrittr stringi stringr]; };
   tipom = derive2 { name="tipom"; version="1.0.2-1"; sha256="1gdfv0g5dw742j6ycmi0baqh6xcchp3yf2n1g8vn7jmqgz5mlhdr"; depends=[]; };
   tippy = derive2 { name="tippy"; version="0.1.0"; sha256="00c9v07ax7l0x5wpx3ca8hqvdqs3p62d58igp51rsbh9x1ylgjcn"; depends=[htmltools htmlwidgets jsonlite shiny]; };
@@ -17440,11 +17578,13 @@ in with self; {
   tokenizers = derive2 { name="tokenizers"; version="0.2.1"; sha256="006xf1vdrmp9skhpss9ldhmk4cwqk512cjp1pxm2gxfybpf7qq98"; depends=[Rcpp SnowballC stringi]; };
   tokenizers_bpe = derive2 { name="tokenizers.bpe"; version="0.1.0"; sha256="1pwgjrzdcsafpv9rlyly6fckcjiymz0xcjm9byavj069kc4c69mi"; depends=[Rcpp]; };
   tolerance = derive2 { name="tolerance"; version="2.0.0"; sha256="001snzr2ipag3zprynydlbi9prkjzrllc054qh7m0qwkb3r19jjd"; depends=[MASS rgl]; };
+  tomba = derive2 { name="tomba"; version="1.0.1"; sha256="1433jxghx8jrgy8r9kfp506vn58qpzp4wbzncks7fnignbb6cp50"; depends=[httr jsonlite testthat]; };
   tongfen = derive2 { name="tongfen"; version="0.3.3"; sha256="0hn2zmb5fa390bbwg03mxzlp3qc5pr61qxm6gjydja29gcpvbk9m"; depends=[dplyr lifecycle PROJ purrr readr rlang sf stringr tibble tidyr]; };
   toolmaRk = derive2 { name="toolmaRk"; version="0.0.1"; sha256="0pdr8lq4c11ia03v68lbfq38p3qp770mbj0nsbjsgbqi0pv9i1vx"; depends=[dplyr ggplot2 plyr reshape2]; };
   tools4uplift = derive2 { name="tools4uplift"; version="1.0.0"; sha256="1izm9q2bj9l2nd9jn0fi3lf9hscfa0vmib58ypgpjsbsn0nd7p2h"; depends=[BiasedUrn dplyr glmnet latticeExtra lhs]; };
   topicdoc = derive2 { name="topicdoc"; version="0.1.0"; sha256="0qliy6y8l09nblch1swlywam2awzwjl5xx0w8c3kiz48jxfysw0j"; depends=[slam topicmodels]; };
   topicmodels = derive2 { name="topicmodels"; version="0.2-12"; sha256="1d6iizmn042b59q2y6qc82z19wq3xm0zvgkf8iqf8fdzh51kmn5g"; depends=[modeltools slam tm]; };
+  topicmodels_etm = derive2 { name="topicmodels.etm"; version="0.1.0"; sha256="06w2n1gswv268sgzm0nz14mmrahibnsgcxh7hcks3bmq9r8d9ba4"; depends=[Matrix torch]; };
   topmodel = derive2 { name="topmodel"; version="0.7.3"; sha256="15w9id90d6l0i0ji3ln3sxnpispb6pgabk4waysqn0nh6y4lfdgb"; depends=[]; };
   topoDistance = derive2 { name="topoDistance"; version="1.0.1"; sha256="055z3gvqlb8nyy58ix89w7miav9gj3h43a4wcfc3kagd97xc3222"; depends=[gdistance igraph plotly raster RColorBrewer scales sp]; };
   topologyGSA = derive2 { name="topologyGSA"; version="1.4.7"; sha256="073n8bkrapk6il3izqr3bmcdp7yc29yzpbyzh6fvy9rg0x4d3g0z"; depends=[fields graph gRbase qpgraph]; };
@@ -17464,6 +17604,7 @@ in with self; {
   toxEval = derive2 { name="toxEval"; version="1.2.0"; sha256="11rw8vjnz3kzikd59vbyiv8vc7dijpi6znyxlc7c4rpi41gs6c0m"; depends=[dplyr DT ggplot2 leaflet magrittr RColorBrewer readxl shiny shinyAce shinycssloaders shinydashboard tidyr]; };
   toxtestD = derive2 { name="toxtestD"; version="2.0"; sha256="0b7hmpfhwg626r8il12shni0kw94cqnbj49y4vfh8gn98x1s6m48"; depends=[]; };
   tpAUC = derive2 { name="tpAUC"; version="2.1.1"; sha256="0wix9qwcidj7xfqhh7bmrpnadd9qlkvg3515gaamdxkjbz2kyydc"; depends=[pROC]; };
+  tpfp = derive2 { name="tpfp"; version="0.0.1"; sha256="0vm5qssaanvi0sck2hj1qgjra89a42i6nvzbva5z0aj2hkd5h4vh"; depends=[knitr readxl xlsx]; };
   tpn = derive2 { name="tpn"; version="1.1"; sha256="062kim1wljg3pjzj1www8jljfpz35sylqykbp8w899srr3qmv22c"; depends=[pracma skewMLRM]; };
   tpr = derive2 { name="tpr"; version="0.3-2"; sha256="0v2s35yjislzaw924r1mk7jqzs0bxx6kyd3g1sc9rxlflvlbp15y"; depends=[lgtdl]; };
   tracer = derive2 { name="tracer"; version="1.0.0"; sha256="1jdh4ljcz7d0w2y5miggqkvv397jdx7fn108hbjw93af2gnh698q"; depends=[clisymbols crayon prettycode]; };
@@ -17531,7 +17672,7 @@ in with self; {
   treespace = derive2 { name="treespace"; version="1.1.4.1"; sha256="177n1h4yjvfmdsyy4anwi1gfxcxxvhdlyqagn74ni3pi6mxvjp4s"; depends=[ade4 adegenet adegraphics adephylo ape combinat distory fields htmlwidgets MASS phangorn phytools Rcpp rgl RLumShiny scatterD3 shiny shinyBS]; };
   treestartr = derive2 { name="treestartr"; version="0.1.0"; sha256="05rxy9lmb77ng4266871sd881mlp4rd5qalvsd7ps2x2j4plaqf4"; depends=[ape phytools]; };
   treestructure = derive2 { name="treestructure"; version="0.1.0"; sha256="0514q53bdwv9fwd58srhr6lzw1j56fcd64hml8w4rv4wzcd6c01m"; depends=[ape Rcpp]; };
-  treetop = derive2 { name="treetop"; version="0.0.1"; sha256="06ca5zn60d925r775v39cdlpiwh0g9hv6a01hh1v6s2hs0176ivr"; depends=[geometry lidR maptools pryr raster rasterVis RColorBrewer rgdal rgl rglwidget sf shiny sp spatstat_core spatstat_geom stars]; };
+  treetop = derive2 { name="treetop"; version="0.0.3"; sha256="0mmvn6521p4m7xranlzb9cg0gfzg5dzlack2k8xls5s3ydpylirx"; depends=[geometry lidR pryr raster rasterVis RColorBrewer rgdal rgeos rgl sf shiny sp spatstat_core spatstat_geom stars]; };
   trekcolors = derive2 { name="trekcolors"; version="0.1.3"; sha256="0jm85lrsqlpl1k62fbim48kprsqs50bm0dbajnk8f42x6i3m1xav"; depends=[ggplot2]; };
   trekfont = derive2 { name="trekfont"; version="0.9.5"; sha256="1c0rwjmpg6b83kvkwrc0fcg1adx5is1g0wn01iss037jph5j0f2l"; depends=[]; };
   trelliscopejs = derive2 { name="trelliscopejs"; version="0.2.6"; sha256="16i1km57yz8bl4ni919d3qmj8aj5l88l7byhd6ksh88ygpfl7wq8"; depends=[autocogs base64enc digest DistributionUtils dplyr ggplot2 gtable htmltools htmlwidgets jsonlite knitr progress purrr rlang tidyr webshot]; };
@@ -17541,7 +17682,7 @@ in with self; {
   trendchange = derive2 { name="trendchange"; version="1.1"; sha256="19r0kmwsim78ynssyh6j0zd99cz96cacy3hmyrjabwwvz0f8sk3h"; depends=[]; };
   trendeval = derive2 { name="trendeval"; version="0.0.1"; sha256="1cpv7l26ia40s46wfi4jwhwzl0xxs0dgzv4ngg8frbv5l80fmvmr"; depends=[ellipsis rsample tibble tidyr trending yardstick]; };
   trending = derive2 { name="trending"; version="0.0.3"; sha256="1crp8hizvasm47fjlf8pjy5jn7y9s16vm7dmpiyr4qb8sizia6xw"; depends=[ciTools MASS tibble vctrs]; };
-  trendsegmentR = derive2 { name="trendsegmentR"; version="1.0.0"; sha256="0zgm5nbm5azmz6x0xg4aphc80q6x1cvijry9pznyi0mg14743g86"; depends=[]; };
+  trendsegmentR = derive2 { name="trendsegmentR"; version="1.1.0"; sha256="1r582zmxcdmq3sg5wd4zc2p1fv8sgbys5nryvvslak7nj5h0i2yq"; depends=[]; };
   trendyy = derive2 { name="trendyy"; version="0.1.1"; sha256="03n7qdfc197hds8bdwl20b0nn62nqnz9r35v1q315nm3ccdifl1p"; depends=[crayon dplyr gtrendsR magrittr purrr stringr tibble]; };
   trialr = derive2 { name="trialr"; version="0.1.5"; sha256="11b5wmyq4ki2n0cr2hp2lf219i8q5yh6biyyl8wnvajiaa8560ja"; depends=[BH binom coda dplyr ggplot2 gtools magrittr MASS purrr Rcpp RcppEigen rlang rstan rstantools StanHeaders stringr tibble tidybayes]; };
   triangle = derive2 { name="triangle"; version="0.12"; sha256="1cv3l97myhkyl0c4xjympqghlk0av8xfk00av8kj93ndgkv5bfj7"; depends=[]; };
@@ -17600,7 +17741,7 @@ in with self; {
   tsdf = derive2 { name="tsdf"; version="1.1-8"; sha256="00s0aiis88611xsq9px61f9gwprp803wcvi5milvc7qckrh1kw0z"; depends=[]; };
   tsdisagg2 = derive2 { name="tsdisagg2"; version="0.1.0"; sha256="1vjypf9d4rdprpgxfsgpccn412kvar59v341ridq2hcdp7hfb70s"; depends=[]; };
   tsensembler = derive2 { name="tsensembler"; version="0.1.0"; sha256="0amb3dn96hdgy5a0j6s43mf82cdjwbz8dhz3yrjlr07nknxzirzi"; depends=[Cubist doParallel earth foreach gbm glmnet kernlab monmlp pls ranger RcppRoll softImpute xgboost xts zoo]; };
-  tseries = derive2 { name="tseries"; version="0.10-48"; sha256="0wa4rcf0igayi1yrwc6wak6d491560p0z89rz32haqlkiiq25gak"; depends=[quadprog quantmod zoo]; };
+  tseries = derive2 { name="tseries"; version="0.10-49"; sha256="1fhldj95d16cwygw8xg0kvr4xk569mpzprdvahlsf4hzykc2dgs5"; depends=[quadprog quantmod zoo]; };
   tseriesChaos = derive2 { name="tseriesChaos"; version="0.1-13.1"; sha256="0qfrrzd0h8n9zp7wj5fl88wkiv22fs5zy8x509g316j0avm5zjr3"; depends=[deSolve]; };
   tseriesEntropy = derive2 { name="tseriesEntropy"; version="0.6-0"; sha256="04clfkpkiy5p5nxcq59c7f4v1llj1d95lvck23h1px50lvb993fv"; depends=[cubature ks]; };
   tsfeatures = derive2 { name="tsfeatures"; version="1.0.2"; sha256="1zi7p7gdd9bg6rpdin88rq9qi43cpk663xmvffa7d5p1w45831kd"; depends=[forecast fracdiff furrr future purrr RcppRoll tibble tseries urca]; };
@@ -17614,7 +17755,7 @@ in with self; {
   tsibbletalk = derive2 { name="tsibbletalk"; version="0.1.0"; sha256="14j1gpimvlz9cgxgl1n68ngkqx4w2ai92782ifrpvc57lqy9cs7v"; depends=[crosstalk dendextend dplyr glue lubridate plotly R6 rlang shiny tsibble vctrs]; };
   tsintermittent = derive2 { name="tsintermittent"; version="1.9"; sha256="1mrb6yrsjwj6j40n97sgg42ddvwhjnaiq9k7ka249bbq01gf2975"; depends=[MAPA]; };
   tsmp = derive2 { name="tsmp"; version="0.4.14"; sha256="1ahqdizygbs49xbgn35fdb5drxwyx2z9ima4fm83aqwaan7wrrja"; depends=[audio checkmate doSNOW foreach magrittr progress Rcpp RcppParallel RJSONIO]; };
-  tsna = derive2 { name="tsna"; version="0.3.4"; sha256="1lmllb0h17kwfayfsvl3j41g4qwd0s0qz93pv1y0g1lb7099dz88"; depends=[network networkDynamic statnet_common]; };
+  tsna = derive2 { name="tsna"; version="0.3.5"; sha256="0rgzdf60j8ahi0zgypkj7wd7y7ghrkymc48kjfyz9w3ksmrzgqjf"; depends=[network networkDynamic statnet_common]; };
   tsne = derive2 { name="tsne"; version="0.1-3"; sha256="0s8cv2pndkddq62rzlgzgfdjp1vjv5hz5i5957sllnb97vbzbzb6"; depends=[]; };
   tsoutliers = derive2 { name="tsoutliers"; version="0.6-8"; sha256="02qd7ky416yp2l4cfl2yl7ckr2aidkps9cxkk03r9r7c5247c6zh"; depends=[forecast]; };
   tspmeta = derive2 { name="tspmeta"; version="1.2"; sha256="028jbbd0pwpbjq4r6jcc1h0p7c4djcb9d2mvgzw1rmpphaxjvrkd"; depends=[BBmisc checkmate fpc ggplot2 MASS splancs stringr TSP vegan]; };
@@ -17678,13 +17819,12 @@ in with self; {
   twitteR = derive2 { name="twitteR"; version="1.1.9"; sha256="1hh055aqb8iddk9bdqw82r3df9rwjqsg5a0d2i0rs1bry8z4kzbr"; depends=[bit64 DBI httr rjson]; };
   twitterwidget = derive2 { name="twitterwidget"; version="0.1.1"; sha256="1dlhydhy69284gg3jsxwa6h8cp1rlkg1j8h8z1fjz4fyy1p5xrpv"; depends=[htmlwidgets]; };
   twl = derive2 { name="twl"; version="1.0"; sha256="0n2r40ddsr5zpzi92k7f0lvq78k5cmfbqzjxvr78hwq6j13dhar3"; depends=[corrplot data_table MCMCpack Rfast]; };
-  twn = derive2 { name="twn"; version="0.2.0"; sha256="1nc3jc3rakppn9bxzqwbs7yhgzp8skz62zyybpwn2ddnjskc2fn1"; depends=[crayon dplyr rlang stringr tibble]; };
+  twn = derive2 { name="twn"; version="0.2.1"; sha256="1lw2dvcchx7ldxjibw4i48vpnfqk6z1cqb86ilfxhdm6baply8g0"; depends=[crayon dplyr rlang stringr tibble]; };
   twosamples = derive2 { name="twosamples"; version="1.1.1"; sha256="0c2hk49zysjgkgm3pv9j1gnpg5hs5icdzn40ihyqj8aziynkripp"; depends=[Rcpp]; };
   twostageTE = derive2 { name="twostageTE"; version="1.3"; sha256="0mkxs3lmzja51zdrf5himhwcdygpj6czhdd2bydakm26kvw7znwr"; depends=[isotone]; };
   twoway = derive2 { name="twoway"; version="0.6.3"; sha256="02z2syb0g92d97gjxfkarpil9b2n25s128606h071jl0s88cr4ar"; depends=[]; };
   twowaytests = derive2 { name="twowaytests"; version="1.1"; sha256="00wz8l4ginv1pp1dbjwqbmn4q8i8fnmhz8x3v6riffndw5ag22f2"; depends=[car ggplot2 nortest onewaytests]; };
   twoxtwo = derive2 { name="twoxtwo"; version="0.1.0"; sha256="03wrxzjv21df5c8w9bixfw42m82yf9grv1c4nlw5dy09lsfhl8sv"; depends=[dplyr forcats knitr magrittr rlang tidyr]; };
-  txshift = derive2 { name="txshift"; version="0.3.6"; sha256="16ffkzgy9x1ng6338mb4flg3xy3cc32lrhqmb7rgpzs2fb0h20zr"; depends=[assertthat data_table ggplot2 hal9001 haldensify latex2exp lspline mvtnorm Rdpack scales stringr]; };
   txtplot = derive2 { name="txtplot"; version="1.0-4"; sha256="00sriml48y70j18jz235dsfm5x3a81bnzskfp3hnv6cbjwwsmca4"; depends=[]; };
   txtq = derive2 { name="txtq"; version="0.2.4"; sha256="1fvjprcwfqbw9c4sqcxv8r0jgvqmkip6d86r3cgrhwyic1ndk1l5"; depends=[base64url filelock R6]; };
   typed = derive2 { name="typed"; version="0.0.1"; sha256="096rzsxjdycf55jx33cxk1284rzb2vcxvp298y4q6v9x0w36php3"; depends=[waldo]; };
@@ -17694,7 +17834,6 @@ in with self; {
   tzupdater = derive2 { name="tzupdater"; version="0.1.2"; sha256="0s1simvn76m569iq24qb3w6xli0202cjf1jr3a4qy58fs4sda2kv"; depends=[]; };
   u5mr = derive2 { name="u5mr"; version="0.1.1"; sha256="16znlmxanhg1m6fq28z62jv033fxgr4njzz50hgskprvgvx8svkj"; depends=[lifecycle]; };
   uCAREChemSuiteCLI = derive2 { name="uCAREChemSuiteCLI"; version="0.2.0"; sha256="1nccgkxv57inhgvgmhwm4fr8cp28sj8n83za5gam9xx1f42mzsqk"; depends=[ChemmineR usethis]; };
-  uFTIR = derive2 { name="uFTIR"; version="0.1.4"; sha256="1blgwn6i0dadmr7vml6rbniv103mgr9hgx2dwgcxbagfyv00ah24"; depends=[raster Rcpp RcppArmadillo sp]; };
   uGMAR = derive2 { name="uGMAR"; version="3.4.0"; sha256="1n8ishsldfmqdbxz719gakrngrqr9bj7fzddq2ri86yj9krfgas1"; depends=[Brobdingnag gsl pbapply]; };
   uHMM = derive2 { name="uHMM"; version="1.0"; sha256="1516ipadxi7rc1dbinr5rva2fbcr5i2zg3rlli5wy7r6naf8fzzl"; depends=[chron class cluster clValid corrplot FactoMineR HMM tcltk2 tkrplot]; };
   uaparserjs = derive2 { name="uaparserjs"; version="0.3.5"; sha256="0v24smgsz1p2wa23mc2llx7dycwmgf7zyxdhwxgwplabpmy3xzhl"; depends=[progress V8]; };
@@ -17708,9 +17847,9 @@ in with self; {
   ucminf = derive2 { name="ucminf"; version="1.1-4"; sha256="01vggwg1w71k98qs6fhb0x1843vi322mf4g3hbclks94kcpkisx2"; depends=[]; };
   udapi = derive2 { name="udapi"; version="0.1.3"; sha256="0qyn6fdh8ia913hn2dl0x99xsm20ps8zm52snswlyb00prinm668"; depends=[curl httr]; };
   udpipe = derive2 { name="udpipe"; version="0.8.6"; sha256="1jqx9nbxl61k6s20rjkyghkv6lq1dzf63a9gljaxmv30hwgmgrvk"; depends=[data_table Matrix Rcpp]; };
-  udunits2 = derive2 { name="udunits2"; version="0.13"; sha256="0yav7rm2afcx67xqrknybxgz7x63w78zyxa0xifvc0k2gz0d6mfi"; depends=[]; };
-  ufs = derive2 { name="ufs"; version="0.4.3"; sha256="0gbmy7viwn55cj6z44aals02bvci0g6y2ya6x7fvjz3s4v3digd1"; depends=[digest diptest dplyr ggplot2 ggrepel ggridges gridExtra gtable htmltools kableExtra knitr pander plyr rmdpartials scales SuppDists]; };
-  ugatsdb = derive2 { name="ugatsdb"; version="0.2.1"; sha256="1r4h01x9a1rhvkrqa61n0a71q5xpyf26xzdf2i99l9vif6pg8rfv"; depends=[collapse data_table DBI RMySQL writexl]; };
+  udunits2 = derive2 { name="udunits2"; version="0.13.1"; sha256="1l889f8iy8qaacxfs6ll62d6hs8g8qsr5ynn24grpvp8dk8l888w"; depends=[]; };
+  ufs = derive2 { name="ufs"; version="0.5.2"; sha256="1lqnib0pizx97isqbr4v2r4qp7fph6znbd5arbjnxmlh2wblfbsl"; depends=[digest diptest dplyr ggplot2 ggrepel ggridges gridExtra gtable htmltools kableExtra knitr pander plyr pwr rmdpartials scales SuppDists]; };
+  ugatsdb = derive2 { name="ugatsdb"; version="0.2.2"; sha256="0f5fgys80b5nlj5f8jadh5jpylhhb5hsknrsspfac5amncmb0yyv"; depends=[collapse data_table DBI RMySQL writexl]; };
   ugomquantreg = derive2 { name="ugomquantreg"; version="1.0.0"; sha256="1a5vc1qgy3kp1by5bp296w980lkxcghzzxibhap2jg06jnzjfcq8"; depends=[gamlss gamlss_dist pracma Rcpp]; };
   ui = derive2 { name="ui"; version="0.1.1"; sha256="15hcdzaj75ip6j7yglx8rqhp4y3yf3aw5cpbjgk1mjr4cya7lvzi"; depends=[Matrix maxLik mvtnorm numDeriv]; };
   uiucthemes = derive2 { name="uiucthemes"; version="0.3.1"; sha256="1faggg8hiqw4pblq5r3m9wi3x5m6kbjq0flf88mqa993v9rpdrf6"; depends=[rmarkdown xaringan]; };
@@ -17722,8 +17861,9 @@ in with self; {
   ukpolice = derive2 { name="ukpolice"; version="0.2.2"; sha256="1dwwixhiarlpdss7rhiamzcsl1k2yphgmjzh7wn2my4vxj06817l"; depends=[httr jsonlite purrr snakecase tibble]; };
   ulid = derive2 { name="ulid"; version="0.3.0"; sha256="0xxkqrnlz3pkb3s1gacfzqav54w97gc0w8rh0fn1qy5rkmg2bplv"; depends=[Rcpp]; };
   umap = derive2 { name="umap"; version="0.2.7.0"; sha256="191vpy84s0bar06y9z1qx43x2kc4qp7lmrcmd0cvz2pnzq722jab"; depends=[openssl Rcpp reticulate RSpectra]; };
+  umiAnalyzer = derive2 { name="umiAnalyzer"; version="1.0.0"; sha256="147x48mr9mj0njwbz39876795rninvk89zm9immkppdm4s5g1ghf"; depends=[BiocManager dplyr DT forcats ggplot2 gridExtra magrittr pheatmap plotly readr Rsamtools scales shiny shinydashboard shinyFiles shinyWidgets stringr tibble tidyr viridis]; };
   ump = derive2 { name="ump"; version="0.5-8"; sha256="1sg226caq9y41cwl7wr5s9z3bpq2j5p6rj6fy2pasbzimgzw0byx"; depends=[]; };
-  umx = derive2 { name="umx"; version="4.9.0"; sha256="0512082fyjs2qx7k16ndza0xldmq1axc9zk4gwk98k208rq8wgln"; depends=[cowplot DiagrammeR DiagrammeRsvg ggplot2 kableExtra knitr lavaan MASS Matrix MuMIn mvtnorm nlme OpenMx polycor R2HTML RCurl rsvg scales xtable]; };
+  umx = derive2 { name="umx"; version="4.10.10"; sha256="1c0cl9q29sq0047qlh9gnc17bvypxk82mr9l81s7hvnns80yq9w5"; depends=[cowplot DiagrammeR DiagrammeRsvg ggplot2 kableExtra knitr lavaan MASS Matrix MuMIn mvtnorm nlme OpenMx polycor R2HTML RCurl rsvg scales xtable]; };
   unbalanced = derive2 { name="unbalanced"; version="2.0"; sha256="18hy9nnq42s1viij0a5i9wzrrfmmbf7y3yzjzymz2wnrx4f2pqwv"; depends=[doParallel FNN foreach mlr RANN]; };
   unbalhaar = derive2 { name="unbalhaar"; version="2.0"; sha256="0v6bkin1cakwl9lmv49s0jnccl9d6vdslbi1a7kfvmr5dgy760hs"; depends=[]; };
   uncertainty = derive2 { name="uncertainty"; version="0.2.0"; sha256="1mq14ny7l3gy3wjsqijnm37azavyapxszjnckd861h4hgcpdcdjz"; depends=[mvtnorm triangle]; };
@@ -17753,7 +17893,7 @@ in with self; {
   unival = derive2 { name="unival"; version="1.1.0"; sha256="0j7fl77my2273k72s8k9v5pcb85swxfipjxmk4vw487i7aq8b1nq"; depends=[psych]; };
   univariateML = derive2 { name="univariateML"; version="1.1.0"; sha256="1bnpb1g6hm8p3q73kyb4mxijzj53cfp38ns98bq12m9yvsjq1c4n"; depends=[actuar assertthat extraDistr fGarch logitnorm nakagami tibble]; };
   universals = derive2 { name="universals"; version="0.0.4"; sha256="1dx7xh5l2dkamskpwfc9qsjf7df1fj54ph6s3sxhnhdbppzckd4d"; depends=[]; };
-  unix = derive2 { name="unix"; version="1.5.3"; sha256="07cjwmxdivzf43nq1b1gd4i6fz9m7xhr7wsdj630q6jiy7ll8r1l"; depends=[]; };
+  unix = derive2 { name="unix"; version="1.5.4"; sha256="0wj85h5lljzw4qj4ry79y05gd6vakqff8lzw9f70154i79jq74hl"; depends=[]; };
   unjoin = derive2 { name="unjoin"; version="0.1.0"; sha256="1hp9fxkb59z0cpnwxpaf5whglrljg2nrmsygdb98klxsama9gr5z"; depends=[dplyr rlang tibble]; };
   unmarked = derive2 { name="unmarked"; version="1.1.1"; sha256="1zabfsij6kjxzy7qj2h2x21kd24qm7kfs98095by54aadhwlyis8"; depends=[lattice lme4 MASS Matrix plyr raster Rcpp RcppArmadillo TMB]; };
   unnest = derive2 { name="unnest"; version="0.0.3"; sha256="1as245gzviq3394g36q82m1cv2rdrwjlm3icd18lcz6sl13wggdy"; depends=[]; };
@@ -17775,7 +17915,7 @@ in with self; {
   urbin = derive2 { name="urbin"; version="0.1-12"; sha256="18zskhpcngpw0zanya88l8znhbac5f7a89kq231w59yml9ll7y52"; depends=[]; };
   urca = derive2 { name="urca"; version="1.3-0"; sha256="1akaqwf3fvvvx4sgfn641fd4sj51s0701pvfl6s5hnz2k0iwh732"; depends=[nlme]; };
   urlchecker = derive2 { name="urlchecker"; version="1.0.0"; sha256="03rjgsi344d6kacx4l2wh91gp269hddd5q567c9r52glbjp382d8"; depends=[cli curl xml2]; };
-  urlshorteneR = derive2 { name="urlshorteneR"; version="1.4.3"; sha256="168y1mdxhn7lhhzmzw9a7h4g9xpwh294wl53aaqp23s486p46pdz"; depends=[assertthat cli clipr httr jsonlite lubridate miniUI shiny stringr]; };
+  urlshorteneR = derive2 { name="urlshorteneR"; version="1.5.1"; sha256="0vcjjb3r4cmfp5i0zcm3bmn6q4i4xazz1m994yka4gp34zqbz67n"; depends=[assertthat cli clipr httr jsonlite lubridate miniUI shiny stringr]; };
   urltools = derive2 { name="urltools"; version="1.7.3"; sha256="04x3my655dd287cbsszbnf75q0swmjlxxrblcsay7a8n3df3a830"; depends=[Rcpp triebeard]; };
   uroot = derive2 { name="uroot"; version="2.1-2"; sha256="0dsb1vdr2bwy64v889svhvkadg5jl9cl77mfiw79vl18b7ixjzxx"; depends=[]; };
   ursa = derive2 { name="ursa"; version="3.9.4"; sha256="1dnqwyw1xmgsb064spynqisyx503nqqq427qvc85fbp0qrhi631l"; depends=[jpeg png rgdal]; };
@@ -17802,13 +17942,13 @@ in with self; {
   utile_tables = derive2 { name="utile.tables"; version="0.2.1"; sha256="0bj3rg4f9dby7qzf0m95dg626ws4nz5v2vn3m50x8g3pqq8m7lmp"; depends=[dplyr purrr rlang tidyselect utile_tools]; };
   utile_tools = derive2 { name="utile.tools"; version="0.2.6"; sha256="1l3l6x37290ism459kjfbgm2s0w7sa84q93nzrij1z250gv6g0rp"; depends=[lubridate purrr vctrs]; };
   utile_visuals = derive2 { name="utile.visuals"; version="0.3.0"; sha256="1653wds2126b82bfm22a17xgrkybw6an5j3apg53ag5ykak9pg87"; depends=[dplyr ggplot2 gridExtra purrr]; };
-  utilities = derive2 { name="utilities"; version="0.3.0"; sha256="1dbx9p5hx9fbp0aqnnvx3xskbkpsxa47bm5j4fx5511gqqc82i0z"; depends=[]; };
+  utilities = derive2 { name="utilities"; version="0.4.0"; sha256="0wyi4qs1lzqdjqkx06xn73fcv25mgqax02zqv15cjvblgq4lil35"; depends=[]; };
   utility = derive2 { name="utility"; version="1.4.5"; sha256="0a11bxyg8la6yvxr04qbhay05jb2ihd7calc1zcisgj43kq6k7xd"; depends=[]; };
   utilityFunctionTools = derive2 { name="utilityFunctionTools"; version="0.1.1"; sha256="1225nl83yka31j0adm1210kc89vs3hi9i2pqrykax109sgk0nw97"; depends=[spatstat_geom]; };
   utilsIPEA = derive2 { name="utilsIPEA"; version="0.0.6"; sha256="07avc0j6qkzqmznbydn0zdg743g7g7kn2bcx5n03m3wg0fqyggr7"; depends=[data_table dplyr RCurl stringdist stringr]; };
   utiml = derive2 { name="utiml"; version="0.1.7"; sha256="16l64scyipj7plwyv6whv3h040sgvzxx43jhjxyhrcdci4pqwh94"; depends=[mldr ROCR]; };
   utr_annotation = derive2 { name="utr.annotation"; version="1.0.4"; sha256="0lldkd5fw86qxngjfvigmkdzynz0712wsk9p51xliqlavivvnpny"; depends=[AnnotationFilter AnnotationHub BiocGenerics biomaRt Biostrings data_table doParallel dplyr ensembldb foreach GenomicFeatures GenomicRanges IRanges keras readr rtracklayer stringr tidyr vcfR xml2]; };
-  uuid = derive2 { name="uuid"; version="1.0-2"; sha256="0yiqlrvsh93k361a89gn6jrnlp6gicnil733if0kw4lqw8zimv8b"; depends=[]; };
+  uuid = derive2 { name="uuid"; version="1.0-3"; sha256="0il35jnci537r8zkinyiy5jp5q530p85ln6dswpj884zclrlcvj5"; depends=[]; };
   uwo4419 = derive2 { name="uwo4419"; version="0.3.0"; sha256="0hk5qhyarjxz7ngj5ak37vx0rak6xv0hfb4sdrsbci3kv5fqijv7"; depends=[DescTools dplyr ggplot2 gmodels haven magrittr psych RColorBrewer rio tibble tidyr]; };
   uwot = derive2 { name="uwot"; version="0.1.10"; sha256="08vxh085wnrxgwy35ksb4cr7ccjvd98pyr2zlgarqryfgc1bdqbf"; depends=[dqrng FNN irlba Matrix Rcpp RcppAnnoy RcppProgress RSpectra]; };
   vICC = derive2 { name="vICC"; version="1.0.0"; sha256="13lcs7wwj1xfbjf3q7r8ssf00jg5hr1vjp2pyw0r42iz7mx47xjv"; depends=[coda ggplot2 nlme Rdpack rjags]; };
@@ -17890,7 +18030,7 @@ in with self; {
   vegalite = derive2 { name="vegalite"; version="0.6.1"; sha256="0dlzhvrg3nj6knyycdgg3d1vzq3dn9vxb34fjin9hzilszqmarbk"; depends=[base64 clipr digest htmltools htmlwidgets jsonlite magrittr webshot]; };
   vegan = derive2 { name="vegan"; version="2.5-7"; sha256="0aj6m9l1vkh32sar6fyvq4p8j4h2f2f347w1300qnzgaa5lmhfz6"; depends=[cluster lattice MASS mgcv permute]; };
   vegan3d = derive2 { name="vegan3d"; version="1.1-2"; sha256="01yyhrapdvs6rr5hw1ij4jnpz7mq005s35pn96snpy8ngn6ir386"; depends=[cluster rgl scatterplot3d vegan]; };
-  vegawidget = derive2 { name="vegawidget"; version="0.3.2"; sha256="0qrwzavfghiv6kqs5amsj1w7gn94igg8x2hkl0hzb5m8hd9mlgin"; depends=[assertthat digest glue htmltools htmlwidgets jsonlite magrittr rlang]; };
+  vegawidget = derive2 { name="vegawidget"; version="0.3.3"; sha256="0pyfj7ahz65pxcrf6vr8rl2zw1b7w5d6lvmcxsm1c81xw64xpc1n"; depends=[assertthat digest glue htmltools htmlwidgets jsonlite magrittr rlang]; };
   vegclust = derive2 { name="vegclust"; version="2.0.0"; sha256="1zxgkq4ymg3w2dccfr448nmxp2kl7ws206djl2ymsrvzigivfqgs"; depends=[MASS sp vegan]; };
   vegdata = derive2 { name="vegdata"; version="0.9.8"; sha256="05sgmas7hlhxx2j95b4r5y2m6hhxa2cswy80bhs8lmjmy3yqyig6"; depends=[foreign plyr xml2]; };
   vegperiod = derive2 { name="vegperiod"; version="0.3.1"; sha256="178zp7hw7bicygzl4ql0a9llkmrk4kyszcvvl430pvsc5y6srg75"; depends=[]; };
@@ -17902,11 +18042,13 @@ in with self; {
   vennLasso = derive2 { name="vennLasso"; version="0.1.6"; sha256="0maydvx0qhdn5alqzqxjn485y9hw9qdr1xvgkmgwnjq59vni6d31"; depends=[foreach igraph MASS Matrix Rcpp RcppEigen RcppNumerical survival VennDiagram visNetwork]; };
   venneuler = derive2 { name="venneuler"; version="1.1-0"; sha256="10fviqv9vr7zkmqm6iy2l9bjxglf2ljb7sx423vi4s9vffcxjp17"; depends=[rJava]; };
   vennplot = derive2 { name="vennplot"; version="1.0"; sha256="0x59awa1zsjwk5qb1jzv6d2mn2fm4aq1lq8zlbnf1da0h4837yab"; depends=[Rcpp rgl stringr]; };
+  verbalisr = derive2 { name="verbalisr"; version="0.2.1"; sha256="0jiyz3nsiw3nyq46l720x5qcrfr7mwdq7f3d8axgwchg4w4fl1i3"; depends=[pedtools ribd]; };
   verhoeff = derive2 { name="verhoeff"; version="0.4.0"; sha256="0kpxpl5s5342ajg22cwb7y9ks240drp37q1g67n19krdy6ih14kz"; depends=[]; };
   verification = derive2 { name="verification"; version="1.42"; sha256="0pdqvg7cm9gam49lhc2xy42w788hh2zd06apydc95q2gj95xnaiw"; depends=[boot CircStats dtw fields MASS]; };
   versions = derive2 { name="versions"; version="0.3"; sha256="0zm49j785dgv7fyr1yl9q5f0dsk8hhpim5q5bpkgrkzv7pwjribd"; depends=[]; };
   vertexenum = derive2 { name="vertexenum"; version="1.0.2"; sha256="16ywz3z1kzhb3knhhi2i5igm3djdaaxyyrw69wkc5saa7ayhdb4y"; depends=[numbers]; };
   vesselr = derive2 { name="vesselr"; version="0.2.1"; sha256="1wzprnpiv04gxhqgki36gp1a0xj9l3mchllphwkfsdja4axq3prk"; depends=[oro_nifti pbapply pbmcapply]; };
+  vetiver = derive2 { name="vetiver"; version="0.1.0"; sha256="0fmlff09mvg9j81vmnmyas5mj52i0fxkc3nxkf10y628x1xa3mrz"; depends=[butcher cli glue hardhat httr jsonlite pins plumber purrr rapidoc readr rlang tibble vctrs withr]; };
   vetools = derive2 { name="vetools"; version="1.3-28"; sha256="1470xgqdq9n5kj86gdfds15k3vqidk3h99zi3g76hhyfl8gyl1c0"; depends=[lubridate maptools plyr scales sp stringr tis xts]; };
   vetr = derive2 { name="vetr"; version="0.2.13"; sha256="0wbhi5wzwvvp645dg8na8mh1yxvvfzwdm34xqrqkzh6cvlvlby4c"; depends=[]; };
   vfcp = derive2 { name="vfcp"; version="1.4.0"; sha256="0zj1ihqdx5x1695al1xyi8k001yw8x7gdss72myxlnh7b4flnp9m"; depends=[copula extraDistr stringr]; };
@@ -17921,9 +18063,9 @@ in with self; {
   vimp = derive2 { name="vimp"; version="2.2.5"; sha256="13461pcvyc6rad1rf2ymmkyzcwjxw7g4fs8qd51baljhjnjmifv0"; depends=[boot data_table dplyr magrittr MASS rlang ROCR SuperLearner tibble]; };
   vimpclust = derive2 { name="vimpclust"; version="0.1.0"; sha256="0ly7piz7q88sh2g7zq5b2pqph9467b4fclgq9amm0m7xc8vrv4f9"; depends=[ggplot2 mclust PCAmixdata Polychrome rlang]; };
   vindecodr = derive2 { name="vindecodr"; version="0.1.1"; sha256="0yvchdf90l8lkzyba5wrpma6vjcgf19li159s8s79y8sgp5pyx7p"; depends=[httr]; };
-  vinereg = derive2 { name="vinereg"; version="0.7.4"; sha256="0d9x7w6gqjfl0kvj94ypqi6c2xl2ig440xhqgvfkmyswif2w9ffi"; depends=[assertthat BH kde1d Rcpp RcppEigen RcppThread rvinecopulib wdm]; };
+  vinereg = derive2 { name="vinereg"; version="0.8.0"; sha256="1v0bk9xm8547g76nd0v4n5wn6v4kagyd5ssqmlpc2768ldmcn64f"; depends=[assertthat BH kde1d Rcpp RcppEigen RcppThread rvinecopulib wdm]; };
   vines = derive2 { name="vines"; version="1.1.5"; sha256="057d2fdh03cq9kh4vz94arqscahmz14xbr2g59l0vn205lnyilf1"; depends=[ADGofTest copula cubature TSP]; };
-  violinplotter = derive2 { name="violinplotter"; version="2.0.1"; sha256="0kin6b7alykxging8kh443mgn665sd9hqfpr2dq2c91pyvdpvdkj"; depends=[]; };
+  violinplotter = derive2 { name="violinplotter"; version="3.0.0"; sha256="02hyc85bmpc4lzpy4yay73gz4v00wns1ghkkf9sljl3kdgybmyi2"; depends=[]; };
   vioplot = derive2 { name="vioplot"; version="0.3.7"; sha256="1dmdasp3jldc41233z6r08w3j76vyyp9m3jrj7n4ahk48yd5siq6"; depends=[sm zoo]; };
   viopoints = derive2 { name="viopoints"; version="0.2-1"; sha256="0cpbkkzm1rxch8gnvlmmzy8g521f5ang3nhlcnin419gha0w6avf"; depends=[]; };
   vip = derive2 { name="vip"; version="0.3.2"; sha256="1qsvyfms79sn46jdmq7q5r0d6gwjqhr9pll1y776rx0bj7vx1ax5"; depends=[ggplot2 gridExtra magrittr plyr tibble]; };
@@ -17932,15 +18074,15 @@ in with self; {
   viridisLite = derive2 { name="viridisLite"; version="0.4.0"; sha256="0siwr0vq80gs3sbyd542zjb0cl9av5zqdm0fqnym5g6ribf5b6c4"; depends=[]; };
   virtualPollen = derive2 { name="virtualPollen"; version="1.0.0"; sha256="16q1smwh3ryids3pa7lb4i4pxmjjyl449w6fikkrm9ybj1k8gfcf"; depends=[cowplot ggplot2 mgcv plyr tidyr viridis]; };
   virtualspecies = derive2 { name="virtualspecies"; version="1.5.1"; sha256="0l86awcjq6i1lqax596xy5qfmzwiz3cwp2rczvgg37fdrym97cm3"; depends=[ade4 raster rworldmap sp]; };
-  virtuoso = derive2 { name="virtuoso"; version="0.1.6"; sha256="04lpypp9bbawnwmavw7xl0q448rava0bd95jwd10ywnbj5w2nkw6"; depends=[curl DBI digest fs ini odbc processx ps rappdirs]; };
-  virustotal = derive2 { name="virustotal"; version="0.2.1"; sha256="0lky75al8zcvmfgx7a2s3bij8ya4avdsnv046lk7564zfd8rbymw"; depends=[httr plyr]; };
+  virtuoso = derive2 { name="virtuoso"; version="0.1.8"; sha256="1smb8sjfqcp3jflplgf92swasxzrp72fnnqwyisf87pjknm91qsc"; depends=[curl DBI digest fs ini odbc processx ps rappdirs]; };
+  virustotal = derive2 { name="virustotal"; version="0.2.2"; sha256="020kwhki5740857zd24xm18dg3whzhf527qhmfx1cxyqyld404wy"; depends=[httr plyr]; };
   visNetwork = derive2 { name="visNetwork"; version="2.1.0"; sha256="0bqmy5m6b5hda4vzlwnpgabsbg60v68wicm556cqml6rpdzixfd2"; depends=[htmltools htmlwidgets jsonlite magrittr]; };
   visR = derive2 { name="visR"; version="0.2.0"; sha256="1lbkr33kc69lv6czqjhabjdnn30f0d05ln5gzqmgr1l2w5r023wf"; depends=[broom cowplot dplyr DT ggplot2 gridExtra gt gtable kableExtra magrittr parcats rlang survival tidyr tidyselect]; };
   visStatistics = derive2 { name="visStatistics"; version="0.1.1"; sha256="0lp6sf2wrjjp1zh77yhlgr9sfpls54z0bny0l36v98ik4qykky0f"; depends=[Cairo multcompView nortest vcd]; };
   visTree = derive2 { name="visTree"; version="0.8.1"; sha256="1l07zfr2hagjpdxfw5290wa3ki4bl7iqxrrhda0d1bp3wmwfz0ai"; depends=[colorspace partykit rpart]; };
   visa = derive2 { name="visa"; version="0.1.0"; sha256="1mx7nbbpxs4fdp781a75qvffa42dx2n6anslbfs9bnprmvzmljqr"; depends=[ggplot2 ggpmisc Matrix RColorBrewer reshape2]; };
-  visachartR = derive2 { name="visachartR"; version="1.1.0"; sha256="05572bwlpyyhb9m6rkd5hx4fzvxlzhyxrzw1ks7p73nyqxw5mxrl"; depends=[htmlwidgets]; };
-  visae = derive2 { name="visae"; version="0.1.0"; sha256="06qrb7q5qwcmmp258psfxzxhmxy2j53gcz09gngspv0fwh92h7z8"; depends=[ca dplyr DT ggplot2 ggrepel magrittr rlang shiny shinyjs tidyr]; };
+  visachartR = derive2 { name="visachartR"; version="1.1.1"; sha256="1qj0ma9dai1q1khwh0cckhi0r6jqbpm2qr6fhlv2skz19s2hvzjs"; depends=[htmlwidgets]; };
+  visae = derive2 { name="visae"; version="0.2.0"; sha256="0ycwb380z8nb646w7w42952lwvdi8prmph7yv1lraswvp4wjfx3p"; depends=[ca dplyr DT ggplot2 ggrepel magrittr rlang shiny shinyjs tidyr]; };
   viscomplexr = derive2 { name="viscomplexr"; version="1.1.1"; sha256="1b45yi5xv4vq52pfa064ll3ghxgkwpbknzq94gg60vcvb7spd0if"; depends=[doParallel foreach plotrix Rcpp Rdpack scales]; };
   visdat = derive2 { name="visdat"; version="0.5.3"; sha256="1ikqp29nncbw1xlwyb9dqqgcdk9q0bs3wxhnhnjpb11vcjv7cz2j"; depends=[dplyr ggplot2 glue magrittr purrr readr tibble tidyr]; };
   visit = derive2 { name="visit"; version="2.1"; sha256="0kkspih7m18g5pqlwrxpgjdwqxpp23c3xyvcnvv247abl9aq81rd"; depends=[BH Rcpp RcppEigen rstan sqldf StanHeaders]; };
@@ -17955,13 +18097,14 @@ in with self; {
   vita = derive2 { name="vita"; version="1.0.0"; sha256="114p2lzcr8rn68f0z4kmjdnragqlmi18axda9ma4sbqh8mrmjs9v"; depends=[randomForest Rcpp]; };
   vitae = derive2 { name="vitae"; version="0.4.2"; sha256="1pxd612qq0jzp29qcykb4c1s9mljpmq6xfvhmyx8r9nv8j816qkv"; depends=[dplyr glue knitr pillar rlang rmarkdown tibble vctrs xfun yaml]; };
   vitality = derive2 { name="vitality"; version="1.3"; sha256="17micfmlksnw167vavvhlk431fm20k74y5ggs47pgz5fwpm854zp"; depends=[]; };
-  vivid = derive2 { name="vivid"; version="0.2.2"; sha256="06kd97ypjqi8xhx57g9qjczcw8w9g5cfa7sqn4g58whs65h8cnc1"; depends=[colorspace condvis2 DendSer dplyr flashlight GGally ggalt ggnewscale ggplot2 igraph RColorBrewer tidyr]; };
+  vivid = derive2 { name="vivid"; version="0.2.3"; sha256="1kqh9skcafng0wcbb2vqdlba7ix3mjhqd2r51npv1ys3p20jrrmw"; depends=[colorspace condvis2 DendSer dplyr flashlight GGally ggalt ggnewscale ggplot2 igraph RColorBrewer tidyr]; };
   vivo = derive2 { name="vivo"; version="0.2.1"; sha256="1cfval06byviw7himr5nql34h4jaway9gb6dzya3v994p7v851cg"; depends=[DALEX ggplot2]; };
   vizdraws = derive2 { name="vizdraws"; version="1.1"; sha256="19lr55swfnl79pdkybgfbkm0pvx60x64rlya0wkhdijbizyr1jvb"; depends=[dplyr glue htmlwidgets magrittr stringr tidyr]; };
   vkR = derive2 { name="vkR"; version="0.2"; sha256="1pk444fcw4yyv2dnfrw9vynbpc4gwr5yv9jd41djp9yipdf6d53l"; depends=[httr jsonlite purrr XML]; };
   vlad = derive2 { name="vlad"; version="0.2.2"; sha256="0c3zfjm5nj7iisfnl822sk8wdszv6hcsaf51sn7aqnlp579hq2jk"; depends=[BH checkmate dplyr magrittr Rcpp RcppArmadillo tidyr]; };
   vlda = derive2 { name="vlda"; version="1.1.5"; sha256="17xn8qqh043dm05ib3h4l1qx07wxncf5d06x9l1wl6jbkvnsm2nq"; depends=[dplyr ggiraph ggplot2 ggrepel ggsci]; };
   vmd = derive2 { name="vmd"; version="0.1.0"; sha256="17c06a9l6i90ivpvf3rgv6yrsqv36qmywmmy92y5b81zqhgmh907"; depends=[ggplot2 magrittr R6 Rcpp reshape2 scales]; };
+  vmeasur = derive2 { name="vmeasur"; version="0.1.4"; sha256="17rqr8zpfnq3f0d3yi9w09wvrbq79g4w7rkqf4l2wyd8ic5npwb0"; depends=[av crayon doFuture dplyr foreach future ggplot2 ggpubr imager magrittr pdftools pracma progressr purrr readr rlang scales stringr svDialogs tidyr]; };
   vmr = derive2 { name="vmr"; version="0.0.3"; sha256="1qxcbmf71xwlmi5wyjs3a86ywjd0cj6f86kyq5bpw4ykn797kciw"; depends=[curl jsonlite]; };
   vntrs = derive2 { name="vntrs"; version="0.1.0"; sha256="0ffjjzcs7i4zli7bn83gkgi0q7dmgyxrhv9l3gdambma9hsig45c"; depends=[trust]; };
   vocaldia = derive2 { name="vocaldia"; version="0.8.3"; sha256="1r28f2bwkkxjjv3qysdvp5v9gjrd4rz8l1zqd80qjnj552viy86z"; depends=[]; };
@@ -17987,17 +18130,18 @@ in with self; {
   vrcp = derive2 { name="vrcp"; version="0.1.1"; sha256="1wrch1dqy752gkj24h1dgi2x3kf1797xj4pf1s9mszf3x3ic905d"; depends=[ggplot2]; };
   vrmlgen = derive2 { name="vrmlgen"; version="1.4.9"; sha256="0lifhhf41yml4k83wpkssl14jgn8jaw1lcknwbci1sd8s1c4478l"; depends=[]; };
   vrnmf = derive2 { name="vrnmf"; version="1.0.0"; sha256="1mcmpv30z9zzaq2r7h7r8pgf3fgwv3bx61b9a17a5wv39smnj0x2"; depends=[ica lpSolveAPI nnls quadprog]; };
-  vroom = derive2 { name="vroom"; version="1.5.5"; sha256="1zk5nk9y64lspwhsasb7d2yg8i6ihyg2slys1qqa6qpi1266hi8x"; depends=[bit64 cli cpp11 crayon glue hms lifecycle progress rlang tibble tidyselect tzdb vctrs withr]; };
+  vroom = derive2 { name="vroom"; version="1.5.6"; sha256="0b1lbi20gadwjwinw1v0az4g0y79vlcqfqyblphls601h3nnmn3p"; depends=[bit64 cli cpp11 crayon glue hms lifecycle progress rlang tibble tidyselect tzdb vctrs withr]; };
   vrtest = derive2 { name="vrtest"; version="0.97"; sha256="00hdgb0r18nwv3qay97b09kqqw9xqsbya06rrjyddqh9r6ggx1y0"; depends=[]; };
   vscc = derive2 { name="vscc"; version="0.2"; sha256="1p14v8vd8kckd44g4dvzh51gdkd8jvsc4bkd2i4csx8vjiwrni5w"; depends=[mclust teigen]; };
   vsd = derive2 { name="vsd"; version="0.1.0"; sha256="18whnvary4glblzx1vxf3yzsllnnnbnyijwhbw7bi3agppnwrf22"; depends=[dplyr flexsurv ggplot2 ggpubr magrittr muhaz survival survminer]; };
   vsgoftest = derive2 { name="vsgoftest"; version="1.0-1"; sha256="0vypi4cf04bljmx3jwq3ixs86ivd6p7a825ik189y71fyqg9g70v"; depends=[fitdistrplus Rcpp]; };
-  vstsr = derive2 { name="vstsr"; version="1.0.0"; sha256="0flsw5yw1vmj5x866klxmjqz5aimkvjiwl1zdciz63p9zffmb4gz"; depends=[httr jsonlite magrittr R6 RCurl xml2]; };
+  vstsr = derive2 { name="vstsr"; version="1.1.0"; sha256="071nfxkwwpbp2d8khxq7d1pp268pa1fcfj619bs6xwg4wk9srr3k"; depends=[httr jsonlite R6 RCurl]; };
   vtable = derive2 { name="vtable"; version="1.3.3"; sha256="1a1rw5n3j2ylhg0sjbdszkw5l9971s7lih9shmyhpikx79j4qgm5"; depends=[haven kableExtra knitr rstudioapi sjlabelled]; };
   vtreat = derive2 { name="vtreat"; version="1.6.3"; sha256="181nsjl811m3k1123bvgnnwr253sc2mbj4ljzmawz9wl7dfbwfij"; depends=[digest wrapr]; };
   vtree = derive2 { name="vtree"; version="5.4.6"; sha256="03n79xn4wr4hqrj571781igd07dw0sxfi6cnvmhmshc0brzkz7s9"; depends=[DiagrammeR DiagrammeRsvg htmlwidgets rsvg shiny]; };
   vtype = derive2 { name="vtype"; version="0.8"; sha256="0j070bn86a6hlg99h2qaf0dlbnjjsmx1zdcmvl3acymr31bqyvrj"; depends=[randomForest]; };
   vudc = derive2 { name="vudc"; version="1.1"; sha256="0zxz6n3ixa3xjzcinky8ymqjx9w8y8z65mz8d84dl00mxzkmkz4h"; depends=[]; };
+  vueR = derive2 { name="vueR"; version="0.5.3"; sha256="0am4iwgadi9c9f7zm5zx3nrzyhy7w1qgp9rkyypzwb6bicjjb9cz"; depends=[htmltools htmlwidgets]; };
   vwline = derive2 { name="vwline"; version="0.2-2"; sha256="1hilr996xn5wh8kfyab55w2i1c02a8x909h4ahag5q6s7603qng5"; depends=[gridBezier polyclip]; };
   vwr = derive2 { name="vwr"; version="0.3.0"; sha256="1h790vjcdfngs1siwldvqz8jrxpkajl3266lzadfnmchfan1x7xv"; depends=[lattice latticeExtra stringdist]; };
   wBoot = derive2 { name="wBoot"; version="1.0.3"; sha256="08qgkkv6jvqmxq5gvfp7jbrc3k8mxajfww7k8a3p8888aq411p7q"; depends=[boot simpleboot]; };
@@ -18029,7 +18173,7 @@ in with self; {
   warpMix = derive2 { name="warpMix"; version="0.1.0"; sha256="13zbl4aifhg7j5b3vpwgzgs09hr7yblz0rckmj5qh40s78j8cpfn"; depends=[fda fields lme4 MASS nlme reshape2]; };
   washdata = derive2 { name="washdata"; version="0.1.3"; sha256="0m7rwwi189sbsv3144x14jqmfax30f6ri1pisy47yggmmjpdplps"; depends=[]; };
   washeR = derive2 { name="washeR"; version="0.1.2"; sha256="0sb5sgwf7y9sd291qfj1az3x6h6gmznnnsdmqizkmv2xz9029rxz"; depends=[gplots]; };
-  washex = derive2 { name="washex"; version="1.0.0"; sha256="0di55jhrrhdjgmg60z8bzrp4ypcxlchjysd7y3b6h6h97k327yd0"; depends=[dplyr purrr rlang XML]; };
+  washex = derive2 { name="washex"; version="1.2.0"; sha256="0g5cgs6y3l7ng4bcia1w3ysb8z7s3187ph5g052bssd3w01kim6g"; depends=[curl dplyr httr purrr rlang XML xml2]; };
   waspr = derive2 { name="waspr"; version="1.0.0"; sha256="0rs7h9pjiqq7as5k7yrj3phn6lgdl7dzyirbmk2jjp7mw9iqhy9i"; depends=[BH Rcpp RcppArmadillo]; };
   waterData = derive2 { name="waterData"; version="1.0.8"; sha256="0884agh876wf3qlbc75fbaa47x2iwvncz7r2l25qw34n8lxq1yr6"; depends=[dataRetrieval lattice latticeExtra lubridate xml2]; };
   waterYearType = derive2 { name="waterYearType"; version="1.0.1"; sha256="09brbqcd41khycz9lhn84w68wpk8lsdnzb6lzc10gm5s5ambgj06"; depends=[]; };
@@ -18047,7 +18191,7 @@ in with self; {
   waveslim = derive2 { name="waveslim"; version="1.8.2"; sha256="0ibivnhz0l06sss5rrrcvyiwg3qpbyk3qn4vx4pp90kj09x4yg0k"; depends=[]; };
   wavethresh = derive2 { name="wavethresh"; version="4.6.8"; sha256="1nz74bm7pgck1i9c28svxnic8wkwkm5dhc8bhrxiih5wxb36kcwk"; depends=[MASS]; };
   waydown = derive2 { name="waydown"; version="1.1.0"; sha256="1yjx9cd8h8rsi44s7dcqrvfmsbjhw7vkg2z7bl4knsgbki0c978g"; depends=[Matrix numDeriv]; };
-  wbacon = derive2 { name="wbacon"; version="0.5-2"; sha256="08c3rj8aiax7c2lnaa241n39d1c1yjlhvwqsfk1rw03sz7i4q2im"; depends=[hexbin]; };
+  wbacon = derive2 { name="wbacon"; version="0.6"; sha256="0b91h71fs07knnqrbr167wdlb1iakafbadzr4zznndwplx3ygpbz"; depends=[hexbin]; };
   wbs = derive2 { name="wbs"; version="1.4"; sha256="0ibrf30riavy6shaxgiznwh4gmnkx92260gsl0d74jkys98mlxdj"; depends=[]; };
   wbsd = derive2 { name="wbsd"; version="1.0.0"; sha256="16jhimsq8symf6f2awczqkaqkdmlkzhmgk01iimhkvqlx8g2v219"; depends=[Rcpp RcppEigen]; };
   wbstats = derive2 { name="wbstats"; version="1.0.4"; sha256="1va3lrksr5zg4k729xvbh176f8zcp9vfrvwxcp04znyh1rvmh6vz"; depends=[dplyr httr jsonlite lifecycle lubridate magrittr readr rlang stringr tibble tidyr]; };
@@ -18070,7 +18214,7 @@ in with self; {
   webfakes = derive2 { name="webfakes"; version="1.1.3"; sha256="0ncy5rma28b600vaxll7vlfhjx5xxpmhc2bkvhjb5z1cravpl4kx"; depends=[]; };
   webglobe = derive2 { name="webglobe"; version="1.0.3"; sha256="0gbg4pai4cn7hdc1943aqpx4bn3vgc82zp93a1wl6bmmajv1da4b"; depends=[geojsonio httpuv jsonlite]; };
   webmockr = derive2 { name="webmockr"; version="0.8.0"; sha256="0j40srwi0yasmllb9wsww4m6zkiyzqd549cis4dxd7c7p24hak8j"; depends=[base64enc crul curl fauxpas jsonlite magrittr R6 urltools]; };
-  webp = derive2 { name="webp"; version="1.0"; sha256="1h17g2zaq6ipsb1w6ix9m68ddmp7dspmaqflqkskylh2n8jhk8cd"; depends=[]; };
+  webp = derive2 { name="webp"; version="1.1.0"; sha256="199l6qhf7f96gqsg0bqzazvl09q383z4087vb1vjiy22k031zbh6"; depends=[]; };
   webr = derive2 { name="webr"; version="0.1.5"; sha256="03yhlla74i71nphrfhr5sd57ykj7rjanh2a8nw3cq22rg9g668jk"; depends=[dplyr flextable ggforce ggplot2 magrittr moonBook psych purrr rlang rrtable scales shiny sjlabelled stringr tibble tidyr tidyselect vcd ztable]; };
   webreadr = derive2 { name="webreadr"; version="0.4.0"; sha256="0l3l5g4zj5faxqi1kqwx9lq91gbj40z2q3csrsmpal08qnwkxs90"; depends=[Rcpp readr]; };
   websearchr = derive2 { name="websearchr"; version="0.0.3"; sha256="1c6dwm5g5rjq0b12zrwwi5k9760jb0ph83v4j2gm8zm0x9dhiqm9"; depends=[]; };
@@ -18081,10 +18225,12 @@ in with self; {
   wec = derive2 { name="wec"; version="0.4-1"; sha256="10lqh43536d44d6082rpp11q1323pmjbmgrgb8v9mrk9c1ysf50w"; depends=[dplyr]; };
   weco = derive2 { name="weco"; version="1.2"; sha256="1prk8hn782pd8g2rbbaj7y10vjimqs9n8i4rab6aw6fc3k759d6b"; depends=[]; };
   weed = derive2 { name="weed"; version="1.1.1"; sha256="18kz10c580a25cxcghvp81irwqncvhjan3y5gnzy8gxm894q3p7m"; depends=[countrycode dplyr forcats geonames ggplot2 here magrittr purrr readxl rgeos sf stringr tibble tidyr tidytext]; };
+  wehoop = derive2 { name="wehoop"; version="1.2.1"; sha256="1w6zrn2w86qrnx7jrc1fldfpg21rryq8r552323rd2p8n8d0w012"; depends=[data_table dplyr furrr future glue janitor jsonlite magrittr progressr Rcpp RcppParallel rlang rvest stringr tidyr usethis]; };
   weibull4 = derive2 { name="weibull4"; version="1.0.0"; sha256="1a95yw67iy7dqib33v31apxmskl019zng66jrlflbqx6p2vjdh30"; depends=[]; };
   weibullness = derive2 { name="weibullness"; version="1.19.8"; sha256="19s44mxxcnhngifxshsyjr3a9zvbwywmqgby5dxd73yid1p2k9mr"; depends=[]; };
   weibulltools = derive2 { name="weibulltools"; version="2.0.0"; sha256="1flgnsivam9vyrs6hwn3119s5bzczjm5qb1xjwydl1cd6r2984k5"; depends=[dplyr ggplot2 lifecycle magrittr plotly purrr Rcpp RcppArmadillo sandwich segmented SPREDA survival tibble tidyr]; };
   weightQuant = derive2 { name="weightQuant"; version="1.0"; sha256="1ngz51wr5qpnb98lfbddwvipcra86dq5whm6z8c4xd921anb15bx"; depends=[doParallel foreach quantreg]; };
+  weightedGCM = derive2 { name="weightedGCM"; version="0.1.0"; sha256="04c24mxpvqdaprg6627w84ikmwxy96c1zcifn2y5n9ir7dlih5r3"; depends=[GeneralisedCovarianceMeasure mgcv xgboost]; };
   weightedScores = derive2 { name="weightedScores"; version="0.9.5.3"; sha256="1wf01z94snwbqp22waz7qays3ymg5lsxpfpafdarad2b6mg5j2g8"; depends=[mvtnorm rootSolve]; };
   weightedZdiff = derive2 { name="weightedZdiff"; version="0.1.0"; sha256="1mrhjg0h7qiwya8jrmf5h4gc352ahc6fczlk5kfhqw5vkwr0b1k3"; depends=[]; };
   weightr = derive2 { name="weightr"; version="2.0.2"; sha256="1qsyak91kdgv48wf6qhpfbiirlg4ba9w6rw8ynjcsnqqdvmly1lb"; depends=[ggplot2 scales]; };
@@ -18108,10 +18254,11 @@ in with self; {
   whisker = derive2 { name="whisker"; version="0.4"; sha256="1a7vz0dk95xfjvi38wbpw8vmf5qn3g8p490msz2rw0piwidmk1ks"; depends=[]; };
   whitebox = derive2 { name="whitebox"; version="2.0.0"; sha256="0qw96ma3hbwqc258chcsjgg0c6c3xi6d1q0iin3rdr8nvczinxma"; depends=[]; };
   whitechapelR = derive2 { name="whitechapelR"; version="0.3.0"; sha256="0mnq5m59mw8w5g1p0h2xzlz738j397b3444km59bm5yln3j0nsbi"; depends=[igraph plyr]; };
-  whitening = derive2 { name="whitening"; version="1.2.0"; sha256="08j49kpbybw8j25ckzvbzqxigqzdxb56lryi06kbzcja0mlzrhvb"; depends=[corpcor]; };
+  whitening = derive2 { name="whitening"; version="1.3.0"; sha256="13c06sk4n2821pskqi8vk61khyhswddcir9qr8zy15czn5id3i1j"; depends=[corpcor]; };
   whitestrap = derive2 { name="whitestrap"; version="0.0.1"; sha256="1jcnxqxvkhyz9j6jay5834ncv5fxb9qiyyyj3b8al75mqknmn8ra"; depends=[]; };
   whoa = derive2 { name="whoa"; version="0.0.2"; sha256="1wa1s2dqwkmfa3avrgqkm6w59b6vm2xnnb77q25w187wdpjq65xx"; depends=[dplyr ggplot2 magrittr Rcpp tibble tidyr vcfR viridis]; };
   whoami = derive2 { name="whoami"; version="1.3.0"; sha256="19fwl7z55s4kl2xzwqwh8iwg13kdrv222vyl3kibxgwrjcjwj2y2"; depends=[httr jsonlite]; };
+  whomds = derive2 { name="whomds"; version="1.0.1"; sha256="1imz98lldrhxnqlq062vblacc25yr2gmpq9fnq8aj9y7jpc719c5"; depends=[colorspace dplyr eRm foreign ggplot2 ggraph GPArotation httr igraph intergraph lordif lubridate nFactors openxlsx plyr polycor psych purrr RColorBrewer readr rlang scales srvyr stringr survey TAM tibble tidygraph tidyr WrightMap]; };
   wiad = derive2 { name="wiad"; version="0.0.1.0"; sha256="1yr1cng5659n8chfghpyfxvqzl8b57vdjzv5m22cbcvrlq6m6p4j"; depends=[abind data_table dplyr DT shiny]; };
   widals = derive2 { name="widals"; version="0.6.1"; sha256="1094yaaq2xb0ykvc1j3hs87j1p4h7zgf8mkn4han8iw5fmr9zncy"; depends=[snowfall]; };
   widgetframe = derive2 { name="widgetframe"; version="0.3.1"; sha256="0j0d73m72nzfc1wyrgsqr99ldx72adis6pd57mpim55hz0n9l224"; depends=[htmltools htmlwidgets magrittr purrr]; };
@@ -18147,11 +18294,12 @@ in with self; {
   wmlf = derive2 { name="wmlf"; version="0.1.2"; sha256="0zxw84l5v12r15hpyd1kbajjz3cbkn5g884kmj72y7yi0yi1b6d6"; depends=[waveslim]; };
   wmm = derive2 { name="wmm"; version="1.1.1"; sha256="0qy4cp4d8nlcqlcs4mqjv1f1kf1yh9y2wvh1ak6f049qlj7yfwfb"; depends=[]; };
   wmwpow = derive2 { name="wmwpow"; version="0.1.3"; sha256="03rd75r4wih1w7srhnwqxjkirisb43y1sd2f1wzixqj8lq0dmb25"; depends=[lamW MASS smoothmest]; };
-  wnl = derive2 { name="wnl"; version="0.6.3"; sha256="199fkpbflnrk27gymxp7ikjxq9hwg0zydlb25fns7b8l9xl2glmg"; depends=[numDeriv]; };
+  wnl = derive2 { name="wnl"; version="0.6.4"; sha256="0157q09paiyvg9almsq8bp5z8kj8bclc4rak7n1qrsx2asjyl2py"; depends=[numDeriv]; };
+  wnominate = derive2 { name="wnominate"; version="1.3"; sha256="0k4w6qbmwqd720dsslmb3xl53lr0b16rr0w9frybfq4046g9i2c6"; depends=[pscl]; };
   woe = derive2 { name="woe"; version="0.2"; sha256="15mvcmwnrqxpzn054lq85vyzq5rgxkiwbd40gnn4s3ny1xdrwgsm"; depends=[]; };
   woeBinning = derive2 { name="woeBinning"; version="0.1.6"; sha256="0x890h5fh59n54587adyzphr956fkg3px8i7c378aq1fs7k35gxs"; depends=[]; };
   womblR = derive2 { name="womblR"; version="1.0.4"; sha256="0yjz4nymhqq6aqvxf0a90bw3hi1zqz1zp3mxbv2ns5v5ygh2a10p"; depends=[msm mvtnorm Rcpp RcppArmadillo]; };
-  wooldridge = derive2 { name="wooldridge"; version="1.4-1"; sha256="1835rn2hxr58yr829crdfjgyi02xplvxdgrp7ywzfpbhwpch6mp7"; depends=[]; };
+  wooldridge = derive2 { name="wooldridge"; version="1.4-2"; sha256="06rc510wmkakc19hcqmya6mgrg2g3x0fkzjb3ix0rayh7lddhy4p"; depends=[]; };
   worcs = derive2 { name="worcs"; version="0.1.8"; sha256="00h99f5xk1gaqcdy1qh2dxbmay1310w64paiv68a8003wp7yn6p0"; depends=[digest gert prereg ranger rmarkdown rticles yaml]; };
   word_alignment = derive2 { name="word.alignment"; version="1.1"; sha256="0inlq96j4zkjncz2v66amz91l5y3b5lx49qi2jg6jbqdldw7aa02"; depends=[data_table openxlsx]; };
   word2vec = derive2 { name="word2vec"; version="0.3.4"; sha256="0qj39vms6zgwb8lpmfkppayizdmhakic3pkacglary3ain61vnsk"; depends=[Rcpp RcppProgress]; };
@@ -18171,12 +18319,13 @@ in with self; {
   workflows = derive2 { name="workflows"; version="0.2.4"; sha256="1sxrgza922p137z41jcj2iwk19lxzwh6kp4kz7h9kw0b8rvfqwab"; depends=[cli ellipsis generics glue hardhat lifecycle parsnip rlang tidyselect vctrs]; };
   workflowsets = derive2 { name="workflowsets"; version="0.1.0"; sha256="0596hb17mshpag3vjy2wl6fi2mdw54i9gc5za10vzy8vpkigb9jy"; depends=[cli dplyr generics ggplot2 hardhat lifecycle prettyunits purrr rlang rsample tibble tidyr tune vctrs withr workflows]; };
   workloopR = derive2 { name="workloopR"; version="1.1.4"; sha256="1gynlvmqxyibql5j3db9dwvc0jsc9jqzpy3d3gp43d5lcl11mcmq"; depends=[pracma signal]; };
+  worldfootballR = derive2 { name="worldfootballR"; version="0.4.5"; sha256="13mzgn479002gf0yrd4gisdqk606s7l9jnc0awpiq7d3k74jqr29"; depends=[dplyr glue janitor jsonlite lubridate magrittr progress purrr qdapRegex readr rlang rvest stringi stringr tidyr withr xml2]; };
   worldmet = derive2 { name="worldmet"; version="0.9.5"; sha256="03dc93b6akah0pf36h0327jb65slsb3bypyv57cnkyxwyvni6w4s"; depends=[doParallel dplyr foreach leaflet openair purrr readr tidyr]; };
   worms = derive2 { name="worms"; version="0.2.2"; sha256="183chjdi5qvsmdznvc9igcxaz769a37rwh5nzgvf5zf012a85wir"; depends=[httr plyr]; };
   worrms = derive2 { name="worrms"; version="0.4.2"; sha256="1gpbyplfpcrapmci8axarrjjijsgh2dmhnsn79g1lhrafvm2ichs"; depends=[crul data_table jsonlite tibble]; };
   wosr = derive2 { name="wosr"; version="0.3.0"; sha256="0fl9mizrjg3r7n7gslsxgaw3k2v63scqmvnv6341q8sq7018hzln"; depends=[httr jsonlite pbapply xml2]; };
   wowa = derive2 { name="wowa"; version="1.0.1"; sha256="0jdw73z5whvb4bb9syhqscllaa31bhs81gmgckxh7w1r3pp42yha"; depends=[Rcpp]; };
-  wpa = derive2 { name="wpa"; version="1.6.2"; sha256="12b0cyddpcnzy57c2n1xa47p3m8n3gr9iqijh4l009vb4x9r6z3d"; depends=[data_table dplyr DT ggplot2 ggraph ggrepel ggwordcloud htmltools igraph magrittr markdown networkD3 proxy purrr reshape2 rmarkdown scales tidyr tidyselect tidytext]; };
+  wpa = derive2 { name="wpa"; version="1.6.3"; sha256="11lw6jgzyq43w401j58yp3qd2xzpq0a45zl2ksc0iwnc563bizhi"; depends=[data_table dplyr DT ggplot2 ggraph ggrepel ggwordcloud htmltools igraph magrittr markdown networkD3 proxy purrr reshape2 rmarkdown scales tidyr tidyselect tidytext]; };
   wpp2008 = derive2 { name="wpp2008"; version="1.0-1"; sha256="0gd3vjw1fpzhp3qlf1jpc24f76i0pxsjs5pb1v3k2si6df7q4msd"; depends=[]; };
   wpp2010 = derive2 { name="wpp2010"; version="1.2-0"; sha256="1h87r1cn4lnx80dprvawsyzfkriscqjgr27gvv7n19wvsx8qd57k"; depends=[]; };
   wpp2012 = derive2 { name="wpp2012"; version="2.2-1"; sha256="00283s4r36zzwn67fydrl7ldg6jhn14qkf47h0ifmsky95bd1n5k"; depends=[]; };
@@ -18215,19 +18364,20 @@ in with self; {
   x_ent = derive2 { name="x.ent"; version="1.1.7"; sha256="15qra77dqhj27g3qx92gram4mq4n9fdidygdpvxfmcx7ww3vc6yh"; depends=[ggplot2 jsonlite statmod stringr xtable]; };
   x12 = derive2 { name="x12"; version="1.9.3"; sha256="05dzf38vlf73bmwdjs6w32d0b91cs6zgdmg7afw9gs36qfi5fahn"; depends=[stringr x13binary]; };
   x13binary = derive2 { name="x13binary"; version="1.1.57-2"; sha256="13j1xylbdsmrnnccn1vcww0y0890vn057j836yqihmlgrh3prcbi"; depends=[]; };
+  x3ptools = derive2 { name="x3ptools"; version="0.0.3"; sha256="04j40nkwlsaga6kp60rf1grk76dw2i1sqivfm2sj017n0v6mj017"; depends=[assertthat digest dplyr MASS png pracma readr rgl xml2 zoo]; };
   xLLiM = derive2 { name="xLLiM"; version="2.2"; sha256="0gmy3jy1nf0fixgwcgfhrwcd85ran5ic7srzcx46akad828a4znq"; depends=[abind capushe corpcor e1071 glmnet igraph MASS Matrix mda progress randomForest]; };
   xROI = derive2 { name="xROI"; version="0.9.20"; sha256="0xa12qsw5xbbfqyv60apr4f9gx7q6rad4ywayvw8l2zla2wnhq5h"; depends=[colourpicker data_table jpeg lubridate moments raster RCurl rgdal rjson shiny shinyjs sp stringr tiff]; };
   xSub = derive2 { name="xSub"; version="3.0.1"; sha256="0c3jc801pn85wm17jj911spryg6p3gq19im1506zkv8lqwsy1nab"; depends=[countrycode haven RCurl]; };
   xVA = derive2 { name="xVA"; version="0.8.5"; sha256="1scn7acp69k80q9ksygj7ns9937yim8iwhpi54ygm28h20jnfllr"; depends=[SACCR Trading]; };
   xaringan = derive2 { name="xaringan"; version="0.22"; sha256="0qk8cp52g18l1pp7i5lhqbklafd20b51fhv7qil2dd397wjqcghk"; depends=[htmltools knitr rmarkdown servr xfun]; };
-  xaringanthemer = derive2 { name="xaringanthemer"; version="0.4.0"; sha256="1dy0w5cb23hdjffaff5gznwgpq98b3g9aslqvq79gy7xh7asikh9"; depends=[colorspace glue purrr whisker]; };
+  xaringanthemer = derive2 { name="xaringanthemer"; version="0.4.1"; sha256="05gkk9ll5whfvhbd8x3p180qzqcz6krz2s26lfbrp2y7srpx9jr4"; depends=[colorspace glue purrr whisker]; };
   xbreed = derive2 { name="xbreed"; version="1.0.1.1"; sha256="032i04ginyf9dyabfkygnhrkq7lqdvvyw7s41vjimy2kvjrnkkkx"; depends=[BGLR]; };
   xdcclarge = derive2 { name="xdcclarge"; version="0.1.0"; sha256="1j8wsidwmfjygqlwavxinv4bqc6rddy42jdmlknsjfrrs49yj8kn"; depends=[nlshrink Rcpp RcppArmadillo]; };
   xergm_common = derive2 { name="xergm.common"; version="1.7.8"; sha256="03mjpafwfkmyj5ba84jydap9rp0i602izjlbd511xbxcw6dx2k0b"; depends=[ergm network]; };
   xesreadR = derive2 { name="xesreadR"; version="0.2.3"; sha256="1pvdx0mxg2f885bhy4hb3kqzcgva4q7hzzaipkfzyi5lnjdsbc81"; depends=[bupaR data_table dplyr lubridate purrr stringr tidyr XML xml2]; };
-  xfun = derive2 { name="xfun"; version="0.27"; sha256="11alh3kasiizfar0f667m5sj3s5443fggjv0541ghmxwlqrvyxf7"; depends=[]; };
+  xfun = derive2 { name="xfun"; version="0.28"; sha256="0civd050r94w2vwfx3xgz1w36wkwrkm5dscdv5kb3klbvqwy8nqb"; depends=[]; };
   xgb2sql = derive2 { name="xgb2sql"; version="0.1.2"; sha256="1gw5dw0ck5hip8mv347zaswrggk395bg2hgn02bvqs0d31jhmgvi"; depends=[data_table xgboost]; };
-  xgboost = derive2 { name="xgboost"; version="1.4.1.1"; sha256="1i706h6yhayzbqlqa1z6fgjc56kxm3isz0jw6d26fpyfjlw6z64z"; depends=[data_table jsonlite magrittr Matrix]; };
+  xgboost = derive2 { name="xgboost"; version="1.5.0.2"; sha256="04xbgrrb3aq067hrivslq5f2rd1v95yfv7lkj596ijyqi6ibjl27"; depends=[data_table jsonlite Matrix]; };
   xgobi = derive2 { name="xgobi"; version="1.2-15"; sha256="03ym5mm16rb1bdwrymr393r3xgprp0ign45ryym3g0x2zi8dy557"; depends=[]; };
   xgxr = derive2 { name="xgxr"; version="1.1.1"; sha256="00fd9n2qivfxg2b7vynssc82afa7nskg4akk6cgxnyhcai5jbmra"; depends=[assertthat binom Deriv DescTools dplyr ggplot2 glue gtable Hmisc labeling magrittr minpack_lm pander png RCurl readr scales stringr tibble]; };
   xkcd = derive2 { name="xkcd"; version="0.0.6"; sha256="1z2y0ihn68ppay7xkglhw7djki5654g6z4bbpyy41if57z9q554f"; depends=[extrafont ggplot2 Hmisc]; };
@@ -18283,7 +18433,7 @@ in with self; {
   yamlme = derive2 { name="yamlme"; version="0.1.1"; sha256="1cknx8ndcb9rz1j7z27244vba8hxyh5sa9zwsv6rwk9g1c52vmyg"; depends=[]; };
   yap = derive2 { name="yap"; version="0.1.1"; sha256="0m126vpfvlmwkpy14i9wbzr51hb8r6s3wcdm3vp9izfccpnxfxl2"; depends=[lhs randtoolbox]; };
   yaps = derive2 { name="yaps"; version="1.2.5"; sha256="0309vc67v5kfbdcah5gnvdqwdxir4k1ik47dw6msw2hvg6lpqvqf"; depends=[circular cowplot data_table ggplot2 ggrepel nloptr plyr Rcpp RcppEigen reshape2 splusTimeSeries tictoc TMB viridis zoo]; };
-  yardstick = derive2 { name="yardstick"; version="0.0.8"; sha256="13b0lyj2k0r568mwlyz9yvp9156rzlj4jqnjazaffh9vwqh4whir"; depends=[dplyr generics pROC rlang tidyselect vctrs]; };
+  yardstick = derive2 { name="yardstick"; version="0.0.9"; sha256="00hv4gk1ba4dab8i3dcq7lim4bll7l572rgc8km9x4ja8by95j8h"; depends=[dplyr generics pROC rlang tidyselect vctrs]; };
   yarr = derive2 { name="yarr"; version="0.1.2"; sha256="16q109jrydckz7s1rkmr2sh8q92cgr1c534fvpbh3h0bc3fvvf8g"; depends=[]; };
   yarrr = derive2 { name="yarrr"; version="0.1.5"; sha256="1258bj7x4icaxfabnnd3fgwydnqbzxkih7zw0sdlwdax3q8fw5c5"; depends=[BayesFactor circlize jpeg]; };
   yasp = derive2 { name="yasp"; version="0.2.0"; sha256="0fza8h9y1wmarsmjcvw4r970d6j4ii795pd2h4xh9nlsirv50adi"; depends=[]; };
@@ -18296,10 +18446,11 @@ in with self; {
   yll = derive2 { name="yll"; version="1.0.0"; sha256="0lf3cd6pfzki29nk2iy0vd6v4dw6zlsbrjh2839zq5vlpiimsvck"; depends=[]; };
   ymlthis = derive2 { name="ymlthis"; version="0.1.5"; sha256="02flsiqzpasyvskzlygllmrc1vbd4cv6yx4cdfiqrcq1806kdrf2"; depends=[crayon fs glue magrittr miniUI purrr rlang rmarkdown rstudioapi shiny shinyBS stringr usethis whoami withr yaml]; };
   yonder = derive2 { name="yonder"; version="0.2.0"; sha256="1ilzn17w6skd0dhwxyrgnfzyazafp8hsi8q6pfxz6k16cd668mc0"; depends=[htmltools magrittr shiny]; };
-  yorkr = derive2 { name="yorkr"; version="0.0.27"; sha256="0lgnfrq9nvy1z2fk9ihgxbjd4xc23vvi547mkwwfzgc7g2kznkca"; depends=[dplyr ggplot2 gridExtra reshape2 rpart_plot yaml]; };
+  yorkr = derive2 { name="yorkr"; version="0.0.28"; sha256="074hvxgw827xkawrfn5sg7c5rgxx3n5jrbkl6rf7qlq6zjph23ab"; depends=[dplyr ggplot2 gridExtra reshape2 rpart_plot yaml]; };
   youtubecaption = derive2 { name="youtubecaption"; version="1.0.0"; sha256="15cafl7b03xrql2y2ayy6ajf6v764wym3xqs4pbzlf6ncy8qwl5r"; depends=[dplyr magrittr purrr reticulate stringr tibble writexl]; };
   yowie = derive2 { name="yowie"; version="0.1.0"; sha256="1sm3dg4sirvlb17ciwldvnc1zzfgwxm38x1k2n99nwa6sygn1nrw"; depends=[tsibble]; };
   ypr = derive2 { name="ypr"; version="0.5.2"; sha256="1bbcwy4hngai6cajgcir1g6hdjh9xdpfcxqzm8ba8ikyjfzwn9bw"; depends=[chk ggplot2 lifecycle purrr scales yesno]; };
+  ypssc = derive2 { name="ypssc"; version="1.1.0"; sha256="0fpph19amj1cafcbh5k6s75pi7nahzgfvnsbs9i5644gv43iavbj"; depends=[dplyr eulerr Peptides readxl spelling stringr svDialogs]; };
   yuima = derive2 { name="yuima"; version="1.9.6"; sha256="1iqcv6m2lbdnpkcmgbmjhdn233pq3b2g6s9naiq3ks0fyv04zpar"; depends=[boot cubature expm glassoFast mvtnorm Rcpp RcppArmadillo zoo]; };
   yuimaGUI = derive2 { name="yuimaGUI"; version="1.3.0"; sha256="1znwfkhnmv9m32izikziqpgxx8gpw50786r81va808x7q058cp5n"; depends=[DT ggplot2 ghyp plotly quantmod sde shiny shinyBS shinydashboard shinyjs yuima]; };
   yulab_utils = derive2 { name="yulab.utils"; version="0.0.4"; sha256="1bj93gnj7j4b7dgkbr5v22rsbwfcw5dvipl5irmidaakvrihd19q"; depends=[]; };
@@ -18307,8 +18458,8 @@ in with self; {
   yummlyr = derive2 { name="yummlyr"; version="0.1.1"; sha256="0xrk6g58laksz92d8mxck923sk4j92g55szrkxk123wjp5kg9vx6"; depends=[httr jsonlite]; };
   zCompositions = derive2 { name="zCompositions"; version="1.3.4"; sha256="15cfqk1vzamz66y9idnrwxlrp2sirkp44gwkcmia4s13x5pwh8mf"; depends=[MASS NADA truncnorm]; };
   zGPS_AO = derive2 { name="zGPS.AO"; version="0.1.0"; sha256="18dqssnj4gch1yg0qvrj4j2ry95sy6a9z8yz2zi8nzhhsj8dz1qq"; depends=[doParallel doRNG dplyr foreach ggplot2 hrbrthemes MASS plotly pscl questionr viridis]; };
-  zTree = derive2 { name="zTree"; version="1.0.6"; sha256="1mywxrx6bw7dzhrdwyxbjzc8ikgvw423zycyji0jjr69cfhpmywv"; depends=[plyr]; };
-  zalpha = derive2 { name="zalpha"; version="0.2.0"; sha256="0wyk4smrch5c0jnzi8z0in1hcbfsddgw4n28dljj917wyg5cnmqd"; depends=[]; };
+  zTree = derive2 { name="zTree"; version="1.0.7"; sha256="005zk6wpchpss6865ki35yawgf668pn70163ah97rnfkhfaswm6y"; depends=[plyr]; };
+  zalpha = derive2 { name="zalpha"; version="0.3.0"; sha256="04hi5lxgcqzmkbqppp5fv8x7wdgap3bgr8b8pv4pvavzh73jlmxs"; depends=[]; };
   zbank = derive2 { name="zbank"; version="0.1.0"; sha256="0vzvlri3sncvbz2cdg8wzlpskm1lq9ji0jrfy5cx4ib19m6gxhpc"; depends=[crul jsonlite tibble]; };
   zcurve = derive2 { name="zcurve"; version="1.0.9"; sha256="0hrgf8id2fdy5xakgif508kl8sddil01mwrq4fnchajzrgp2lb9w"; depends=[evmix nleqslv Rcpp Rdpack]; };
   zdeskR = derive2 { name="zdeskR"; version="0.1.1"; sha256="0fqayn2g7903qs51x4ymy0aq36bwrgvp1k2701cd02zvnxy91l3j"; depends=[dplyr httr jsonlite magrittr plyr purrr tidyr]; };
@@ -18334,6 +18485,7 @@ in with self; {
   zlog = derive2 { name="zlog"; version="1.0.0"; sha256="1d5j31p0h3rrn230087h3ngpvwknlisjv0f1qdbicdj9m177spci"; depends=[]; };
   zoeppritz = derive2 { name="zoeppritz"; version="1.0-8"; sha256="1711szx9zz17q6pfinyzlyrw7m9772c8ywlixqar2l165bkjalgm"; depends=[]; };
   zoib = derive2 { name="zoib"; version="1.5.5"; sha256="0inm7f2pc68ksqxvq12xp9jc99vj7ydylvs24ip12nksbj5k1n8f"; depends=[abind coda Formula rjags]; };
+  zoid = derive2 { name="zoid"; version="1.0.0"; sha256="12gvb80ybnhc3yij1kgffhx2xygamjr4yli405dyndh0n5q6kxvy"; depends=[BH compositions gtools Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; };
   zoltr = derive2 { name="zoltr"; version="0.5.1"; sha256="12zh7y3pwidclscgvd0b0iaqq9j5y8mc8xd6pz4vs0jy5qs3ahar"; depends=[base64url dplyr httr jsonlite magrittr MMWRweek mockery readr rlang webmockr]; };
   zonator = derive2 { name="zonator"; version="0.6.0"; sha256="1plxchpd4ypp36phl13pi9yvlrqi3lk83lv5rldrhdqynhcgfw2k"; depends=[ggplot2 raster RColorBrewer reshape2 rgdal]; };
   zonebuilder = derive2 { name="zonebuilder"; version="0.0.2"; sha256="0mxf3dz0d6bi5wwjilqivdxhy5ypnq5svky8zygha0clv45l4dmn"; depends=[RColorBrewer sf]; };
@@ -18356,49 +18508,66 @@ in with self; {
   AgroR = derive2 { name="AgroR"; version="1.2.3"; sha256="0vyn7jrk6g4m8srjc0qdn1yxygx8phr0zwnl86ng05hl78d1x35h"; depends=[ARTool cowplot crayon drc emmeans ggplot2 ggrepel gridExtra Hmisc hnp lme4 lmtest MASS multcomp multcompView nortest RColorBrewer reshape2 ScottKnott stringr]; broken = true; };
   AlphaVantageClient = derive2 { name="AlphaVantageClient"; version="0.0.1"; sha256="095m850v945lw7i3qd812p28srdb5hdk9h52zf6bkr166zai1ni0"; depends=[httr xts]; broken = true; };
   AnimalAPD = derive2 { name="AnimalAPD"; version="1.0.0"; sha256="1csa6disrg11hpxg4zw0jay15srw9lsgbhl1xgl7hpdr3nqsv3s7"; depends=[activityGCMM brms circular ggplot2 gridExtra loo overlap]; broken = true; };
+  BALD = derive2 { name="BALD"; version="1.0.0-3"; sha256="1azyqami07g3ax60j0ws3d1qha65k0svn2v5c9pisni0qch5xql0"; depends=[lattice logspline rjags]; broken = true; };
+  BCA = derive2 { name="BCA"; version="0.9-3"; sha256="0ksd6b0ykydgdn33x29bwwqkrp23cvdj3imps0l6qs1p4465j5nf"; depends=[car clv flexclust Rcmdr RcmdrMisc rpart]; broken = true; };
+  BIS = derive2 { name="BIS"; version="0.2.1"; sha256="0mngmchgc46wc9a7ksyqrvj6k46nm4ih7x69k3xijfia9bgkym0v"; depends=[dplyr readr rvest tidyr xml2]; broken = true; };
   BNN = derive2 { name="BNN"; version="1.0.2"; sha256="13h9xqfdqnc9d8brx1xlmvb4nrkpwncwjz98y7i3wijih85wkikd"; depends=[mvtnorm]; broken = true; };
-  BayesPostEst = derive2 { name="BayesPostEst"; version="0.3.1"; sha256="0pfildzmqdwnj6h2k692ym9i37lwc65jqgjcx6h3cz8spcmzxm8y"; depends=[carData caTools coda dplyr ggplot2 ggridges HDInterval reshape2 rlang ROCR texreg tidyr]; broken = true; };
+  BioMedR = derive2 { name="BioMedR"; version="1.2.1"; sha256="0l3nmnqv0gzkbby4fhajbba910zpnbyckvxwds353pn54g9pcry7"; depends=[Biostrings ChemmineR fmcsR GOSemSim MASS org_Hs_eg_db pls randomForest rcdk RCurl rjson]; broken = true; };
+  CLA = derive2 { name="CLA"; version="0.96-1"; sha256="1nxzs0y6mid5f2903pxrkqc3rhk7vpax8wm588ddlz6c97y3m8gk"; depends=[]; broken = true; };
+  CPE = derive2 { name="CPE"; version="1.5.1"; sha256="0n3pd6daj0mzhh547syh7nz8iys6q27igqngldb8zd4ib4778603"; depends=[rms survival]; broken = true; };
+  CatPredi = derive2 { name="CatPredi"; version="1.2"; sha256="029haj44smz2k6vpk10bv3ri9qsy0ss2fn1mhw8vj42f3g8i39jb"; depends=[CPE mgcv rgenoud rms survival]; broken = true; };
+  ConfoundedMeta = derive2 { name="ConfoundedMeta"; version="1.3.0"; sha256="17l6dfff2v0a4p022qclrmkzi78ga9adkgxgrgk9imz0n9m9424d"; depends=[ggplot2 metafor]; broken = true; };
   CytobankAPIstats = derive2 { name="CytobankAPIstats"; version="2.0"; sha256="0xczcgaxd8dv6fd1j5c8y4il852lq8859d1y16sxs8a3gqn9fbz2"; depends=[CytobankAPI pheatmap shiny shinyFiles xlsx]; broken = true; };
   DNH4 = derive2 { name="DNH4"; version="0.1.11"; sha256="15a1hq8f8nz200apbm28dwyphl18rhicmf7irsdj0z1n1j898c44"; depends=[httr rvest tibble tidyr xml2]; broken = true; };
-  EGAnet = derive2 { name="EGAnet"; version="0.9.8"; sha256="1mdvp67wnbgmdhdwlgq8p20vhbv4m3fyvdw3zrcxy9zd8mchjydh"; depends=[dplyr GGally glasso igraph lavaan Matrix network NetworkToolbox qgraph semPlot]; broken = true; };
-  EPP = derive2 { name="EPP"; version="0.3.3"; sha256="0wwiz9i6azy60vhgqs0d4pwd2w5gxp8wj724lw6zmldnk3n6vb0k"; depends=[assertthat curl deldir dplyr flexclust leaflet leaflet_extras maptools nngeo osrm plyr rgdal rgeos sf sp tibble]; broken = true; };
+  DataEntry = derive2 { name="DataEntry"; version="0.9-3"; sha256="0gfsg7wfwy88x7y1dwpgwi6fkizjnhrzj0a5ij70y4a4sjmyiy55"; depends=[digest gWidgets2 gWidgets2RGtk2 RGtk2]; broken = true; };
+  DengueRT = derive2 { name="DengueRT"; version="1.0.1"; sha256="11qfg4l6y3j8qh4dcsz13xjjj1n0q71c9a3c180nm5lgqv0nwb81"; depends=[drc ggplot2 nlme]; broken = true; };
+  DominoPredictionLogging = derive2 { name="DominoPredictionLogging"; version="0.1.0"; sha256="1qzh8inzqk1s6cw9bsl7hazdf6cbfr11zs22723wl4xs31inp1lg"; depends=[lgr rjson uuid]; broken = true; };
   EpiSignalDetection = derive2 { name="EpiSignalDetection"; version="0.1.1"; sha256="04bagnx9fs0r3167hmwgc389fl5hq7l4j6kdjjmi360vcaimx9qi"; depends=[dplyr DT ggplot2 ISOweek knitr pander rmarkdown shiny surveillance]; broken = true; };
   Eunomia = derive2 { name="Eunomia"; version="1.0.1"; sha256="06a42qsf3nx1pbynikkdvmbhh1rmgnfmiggdn86b3a0ij6cq0p2r"; depends=[DatabaseConnector RSQLite SqlRender]; broken = true; };
+  FLightR = derive2 { name="FLightR"; version="0.5.1"; sha256="14188r6kk194ir0l8byaqlly4lsg8w58lw5xx2s4abyhbn35kwq8"; depends=[bit CircStats circular fields GeoLight ggmap ggplot2 ggsn maptools mgcv nlme RcppArmadillo rgdal rgeos sp truncnorm]; broken = true; };
   GEVACO = derive2 { name="GEVACO"; version="1.0.0"; sha256="0rslnxqbj1pbbnp849pdn6l9dyfib9w19a1q3fw7kdjfir76gk6a"; depends=[nlme RLRsim]; broken = true; };
-  GLIDE = derive2 { name="GLIDE"; version="1.0.2"; sha256="1z5h8br6aig24g5gsh8h6npm269id3h5gjjyf5avs4v08b51rpcv"; depends=[doParallel foreach MASS]; broken = true; };
-  GPSeqClus = derive2 { name="GPSeqClus"; version="1.0.0"; sha256="1zxihac4hd2b1vvrb36v2c6lhn8pfs8q4zgzi2flyb0dnb5di09r"; depends=[geosphere leaflet leaflet_extras plotKML plyr purrr rgdal sp spacetime suncalc]; broken = true; };
   GeneBook = derive2 { name="GeneBook"; version="1.0"; sha256="1cg8zyr7rbshj3shhzkrxs910dsz4brhh51jvn2qzipzd8dbvxiv"; depends=[dplyr repmis stringr svDialogs]; broken = true; };
+  GeoLight = derive2 { name="GeoLight"; version="2.0.0"; sha256="1i49hyj3f5rcw0s6j2csnfwc6mnp5zn44vxjnk05wdkpw6dpvx5i"; depends=[changepoint fields maps MASS]; broken = true; };
   ICSsmoothing = derive2 { name="ICSsmoothing"; version="1.2.5"; sha256="08m8p6y5zk54ha3wp5x9xbx6f2xkkqx232hsan1f1s8k9j3q5avd"; depends=[ggplot2 polynom]; broken = true; };
+  IP = derive2 { name="IP"; version="0.1"; sha256="0ranpsacsl2nm8swc3saw6xh6cdsfdyq58jlpki04kk3hsqbr9p0"; depends=[stringi]; broken = true; };
+  IRATER = derive2 { name="IRATER"; version="0.0.1"; sha256="0jxdvjmnmangbqy3ibb5qrj9jz3wrzs0wa1r2gjk4v8vsbk0ipcf"; depends=[coda lattice plyr R2admb]; broken = true; };
   ISEtools = derive2 { name="ISEtools"; version="3.1.1.1"; sha256="00d6znqz2mfmyi9ijgrg2pwl4lnvvsy00ysa7a7vjq7ip8qvcjfq"; depends=[coda Xmisc]; broken = true; };
   ISR3 = derive2 { name="ISR3"; version="0.98"; sha256="0mmpdl9ndlj9i0k3zl7ja0g7y9pm67igw925ld5qnz7a36plygxs"; depends=[]; broken = true; };
   IceCast = derive2 { name="IceCast"; version="2.1.0"; sha256="0h3z68lfjw5s51601m17m2gvn12vkwj5gzc70dqzfjmxdkgv3p28"; depends=[coda maptools MASS ncdf4 raster Rcpp RcppArmadillo rgeos sp]; broken = true; };
   IgorR = derive2 { name="IgorR"; version="0.8.1"; sha256="1lkiz3gxj8i1xbr5jp69z21rpk7kz3a68h29inp1qa7zi7gikmgx"; depends=[bitops]; broken = true; };
+  JMcmprsk = derive2 { name="JMcmprsk"; version="0.9.10"; sha256="1hkylfrr2036vgkxfs98szm3883bmyvvyr0f3a8xygccf3pn28xc"; depends=[dplyr MASS pracma Rcpp reshape2 statmod]; broken = true; };
+  KSgeneral = derive2 { name="KSgeneral"; version="1.0.0"; sha256="0pfrhmqgdxa13bjs1jgqkggbjfvwbmx6khkjxcfb96rnf2wccgyc"; depends=[dgof MASS Rcpp]; broken = true; };
   LexisNexisTools = derive2 { name="LexisNexisTools"; version="0.3.4"; sha256="08v160s9znvv808wcw7319p3dk189bmpypg2wkdzzgkdby4gj3fr"; depends=[data_table pbapply quanteda quanteda_textstats stringdist stringi tibble]; broken = true; };
   MAFDash = derive2 { name="MAFDash"; version="0.1.0"; sha256="0xk9zbdwmm597jck8v3w76d2s72k6amv8ya94y7jbnik60ndwnda"; depends=[bsplus canvasXpress circlize ComplexHeatmap crosstalk data_table dplyr DT ensurer flexdashboard GenomicRanges ggbeeswarm ggplot2 htmltools IRanges knitr maftools pheatmap plotly RColorBrewer reshape2 rmarkdown TCGAbiolinks]; broken = true; };
   MHTcop = derive2 { name="MHTcop"; version="0.1.1"; sha256="1mr8y8brsi37b5qx3fqm0bj90dgknzzwhxfmvyd9kxbxh19whgxq"; depends=[copula matrixStats MCMCpack mvtnorm stabledist]; broken = true; };
-  MIMSunit = derive2 { name="MIMSunit"; version="0.11.0"; sha256="03mzjf86qs9kqpqn9vqspfv4jkx52s3yvgr3nk1p28w5qhdi2nq5"; depends=[caTools dplyr dygraphs ggplot2 lubridate magrittr matlab plyr R_utils RColorBrewer readr shiny signal stringr tibble xts]; broken = true; };
   MLPA = derive2 { name="MLPA"; version="1.10.0"; sha256="1w8vhvs8ri8iyh068g59chz3mn0wapa4jr1wmhjlzwa2c651q2cx"; depends=[]; broken = true; };
   MRMR = derive2 { name="MRMR"; version="0.1.4"; sha256="0dgbhlynaaka7mdzl6igwgcdzvy6cm2y8mbxaf9pfla8w3z8y0lq"; depends=[ggplot2 lmtest lubridate plyr reshape2]; broken = true; };
   MVT = derive2 { name="MVT"; version="0.3"; sha256="0vinlv3d5daf8q7pd9xgs51nxz2njgdba5750vygmv883srlzi9d"; depends=[]; broken = true; };
-  MedianaDesigner = derive2 { name="MedianaDesigner"; version="0.5"; sha256="1nd6sgqxx76yz6fyvdlvqvk7bg7dq8w4laamkabnzha35fsz567y"; depends=[devEMF flextable mvtnorm officer Rcpp RcppEigen RcppNumerical shiny shinydashboard shinyMatrix]; broken = true; };
   MetaboLouise = derive2 { name="MetaboLouise"; version="1.0.0"; sha256="1agcp520in0wpxv3x2jvvmv61hasazdymnvjhzl66nwv8lifl98z"; depends=[igraph]; broken = true; };
-  MoBPS = derive2 { name="MoBPS"; version="1.6.54"; sha256="1r15ag7c56bi54mby8kxb74l5v4qihdj7cr3i5vg8p5qpmvsff8m"; depends=[]; broken = true; };
   Myrrix = derive2 { name="Myrrix"; version="1.2"; sha256="05x2h4ppjhfm0wlpwyp8ycjg59qj3gv0yqdilxrzb1lkrzln92xb"; depends=[Myrrixjars rJava]; broken = true; };
   Myrrixjars = derive2 { name="Myrrixjars"; version="1.0-2"; sha256="1hhfg83z5kl6l250z3lippx3qc68k1wj1qlfzd6m66rgmk699gyl"; depends=[rJava]; broken = true; };
   N2H4 = derive2 { name="N2H4"; version="0.5.9"; sha256="09ikdnn17zx9l683k6mrc4hifxnd5d7fjxm6qdvxxbn10dh6qgvj"; depends=[dplyr httr jsonlite lubridate rvest tibble tidyr xml2]; broken = true; };
-  OVtool = derive2 { name="OVtool"; version="1.0.2"; sha256="0bm4iqzzdzy47ha90zm0nz4qm41q2rbdbckwpdnhk5c73l64xxvq"; depends=[Amelia devtools dplyr EnvStats ggplot2 ggrepel glue magrittr metR progress purrr rlang survey tibble tidyselect twang varhandle]; broken = true; };
   OligoSpecificitySystem = derive2 { name="OligoSpecificitySystem"; version="1.3"; sha256="17mspf1ph2ybv046zckykfdcbrsiz40hrs6ib5mpwkfnrvsp1w7l"; depends=[tkrplot]; broken = true; };
   OpenMPController = derive2 { name="OpenMPController"; version="0.2-5"; sha256="00hs8v47pr2d726z8izkfrgmayw147hdm16rr9rw1zs3ad216zjj"; depends=[]; broken = true; };
+  OutlierDC = derive2 { name="OutlierDC"; version="0.3-0"; sha256="1vm3zx4qmj9l0ddfqbksm1qyqzzqrxf93gh4kj52h68zlsfxwv41"; depends=[Formula quantreg survival]; broken = true; };
+  PANDA = derive2 { name="PANDA"; version="0.9.9"; sha256="1sf3c49v4mb3mz2imqlqdbh1iab7bc2pxpi8bmgj2jld133555ip"; depends=[cluster GO_db]; broken = true; };
   POPdemog = derive2 { name="POPdemog"; version="1.0.3"; sha256="0j83c853ligmw8ag4pb0vj46sfn2w2ynh4wvgkabzs688hxxni8r"; depends=[]; broken = true; };
   Plasmode = derive2 { name="Plasmode"; version="0.1.0"; sha256="1qcni9zdckhsnw616jn7rdfd09kbl5wd4hljdja0w73jz1wd1z14"; depends=[arm epiDisplay foreign gbm glm2 lattice latticeExtra lme4 MASS Matrix mgcv nlme nnet RColorBrewer survey survival twang xtable]; broken = true; };
+  QZ = derive2 { name="QZ"; version="0.2-1"; sha256="1xivasa5dppm9z02ki6ciqxj0ybxch41w1xszl9zqrf755b6f6xw"; depends=[Matrix]; broken = true; };
   QuantumClone = derive2 { name="QuantumClone"; version="1.0.0.6"; sha256="1520jgkzp8g7gv7ggqhvlrdnpdyhygqjgsd1my5jq30afdqj6qmp"; depends=[DEoptim doParallel foreach fpc ggplot2 gridExtra NbClust optimx]; broken = true; };
+  RAhrefs = derive2 { name="RAhrefs"; version="0.1.4"; sha256="0yd7jbv2x711dnhbvwjjg7qhg8h8bh5564amsv9bkqw661i042m3"; depends=[assertthat httr jsonlite testthat]; broken = true; };
+  RCSL = derive2 { name="RCSL"; version="0.99.95"; sha256="1ngzbhrc74ljhidsf7a17k4hyx0igv2srgbf822gm2wawzsmp0y2"; depends=[ggplot2 igraph mclust NbClust pracma RcppAnnoy Rtsne SingleCellExperiment umap]; broken = true; };
+  RCzechia = derive2 { name="RCzechia"; version="1.8.3"; sha256="025fv6dh1q6g13wmi2q7czgm30d6j9v56ihp8cvag6yqxq60l08x"; depends=[curl httr jsonlite magrittr sf]; broken = true; };
   RDFTensor = derive2 { name="RDFTensor"; version="1.3"; sha256="1kfhhn0lb1r61bkgxn7rv1smgk8b7vxbc8y97hdmg5argiywc65i"; depends=[doParallel foreach Matrix pracma]; broken = true; };
   RNAsmc = derive2 { name="RNAsmc"; version="0.6.0"; sha256="0q4b24baabzx41zqygy6l2jnyzc4m7knmlnhra4hhc5f5cl5ab8r"; depends=[circlize RRNA]; broken = true; };
   RNRCS = derive2 { name="RNRCS"; version="0.2.5"; sha256="19q78l8mh4701vqvr36vqc87n39s5ivzhiy5lvnxbd4dgibk1jr2"; depends=[ggplot2 magrittr rvest xml2]; broken = true; };
   RSCABS = derive2 { name="RSCABS"; version="0.9.5"; sha256="193wbf1v18xv098i6abpglb239788d9gjzqbn8p3aai0la6y1pk3"; depends=[gWidgets2 gWidgets2RGtk2 R2HTML RGtk2]; broken = true; };
   RefFreeEWAS = derive2 { name="RefFreeEWAS"; version="2.2"; sha256="1aya34iz5v3xfpj86x9ab998m7fdwl138ly007mgdayacvqi4a6y"; depends=[quadprog]; broken = true; };
-  SDLfilter = derive2 { name="SDLfilter"; version="2.1.1"; sha256="1lyigd578ngsmqpkbbf6jv7lnffnccydlcd6vk9nvvynnx5x8r5a"; depends=[data_table dplyr ggmap ggplot2 ggsn gridExtra lubridate maps plotKML plyr pracma raster sp trip]; broken = true; };
+  Rhpc = derive2 { name="Rhpc"; version="0.21-247"; sha256="0r4zikqzkcyyvywxq1s8jcq6h559mxilkmzpnl79781hh537jvii"; depends=[]; broken = true; };
+  SDraw = derive2 { name="SDraw"; version="2.1.13"; sha256="1kx8kfga3zspfdgf9vq2lclszrhf3bfwkfhwqri64kn8fdr34jsq"; depends=[covr deldir rgeos sp spsurvey]; broken = true; };
   SEAA = derive2 { name="SEAA"; version="0.9.6"; sha256="0f1j8pq3a0liyjxjlc91v8nm5y0fr8fq7qlhdayvkf1fx96srqs2"; depends=[clusterProfiler ggforce ggplot2 ggpubr ggrepel gridExtra org_Hs_eg_db org_Mm_eg_db reshape2 Rsubread tidyr]; broken = true; };
+  SNPassoc = derive2 { name="SNPassoc"; version="2.0-2"; sha256="16raq5nkm24xqfshncwmf46z2naf2fcixgjs9b7gy1368wn3ahzl"; depends=[BiocStyle ggplot2 haplo_stats mvtnorm plyr poisbinom survival tidyr]; broken = true; };
+  SpatialEpiApp = derive2 { name="SpatialEpiApp"; version="0.3"; sha256="0svnnzqshk08s58ishy8xhqch44mb5svgfphkvpgysdd68dgaysr"; depends=[dplyr dygraphs ggplot2 htmlwidgets knitr leaflet mapproj maptools RColorBrewer rgdal rgeos rmarkdown shiny shinyjs SpatialEpi spdep xts]; broken = true; };
   StatCharrms = derive2 { name="StatCharrms"; version="0.90.96"; sha256="1451aj1476qjpmxhpbgd8g55i7rp2msml64xsiy25h7x9g6d9w05"; depends=[cairoDevice car clinfun coxme gWidgets2 gWidgets2RGtk2 lattice multcomp nlme R2HTML RGtk2 RSCABS survival]; broken = true; };
   TLBC = derive2 { name="TLBC"; version="1.0"; sha256="08w187akbhfbz6nrrf7avf02lrhgj7bbrjmim9gkh4wlbjhzvw67"; depends=[caret HMM randomForest signal stringr]; broken = true; };
   TNRS = derive2 { name="TNRS"; version="0.1.0"; sha256="146shb1dg4iyaanrdr1l8nqpiqf05la1ai34w74z6wsd1mpcchqy"; depends=[jsonlite RCurl rjson]; broken = true; };
@@ -18407,99 +18576,156 @@ in with self; {
   TwoPhaseInd = derive2 { name="TwoPhaseInd"; version="1.1.1"; sha256="0xsqiq4x7vmhif9j8zi1smbchwm4fsbgb10i4vxi0biijybizk9z"; depends=[survival]; broken = true; };
   UKB_COVID19 = derive2 { name="UKB.COVID19"; version="0.1.1"; sha256="0626cix3v5j2nflqy6g0dc2101pif3p8x3r62d5kmn1si5p171gn"; depends=[data_table dplyr here magrittr questionr tidyverse]; broken = true; };
   UncertainInterval = derive2 { name="UncertainInterval"; version="0.7.0"; sha256="1lywwjkbmlbxhp2ahmsw2f47i0p848cky7xx1lxrg5ydfzq9kzl5"; depends=[car MASS nloptr psych reshape2 shiny zoo]; broken = true; };
+  VNM = derive2 { name="VNM"; version="7.1"; sha256="19qglcibb7r6jjz0n0piklwfv3hi4jphd6vmyfbm0ccjjkmn5nin"; depends=[Rcpp]; broken = true; };
   XPolaris = derive2 { name="XPolaris"; version="1.0.2"; sha256="1l05svscgkv9bzkawi2kp9zhchrhxxma3271b828j34pkrnnmq5m"; depends=[curl dplyr ggplot2 httr magrittr purrr raster sf tidyr]; broken = true; };
+  aRbs = derive2 { name="aRbs"; version="0.1.3"; sha256="19s4x2w036xllrsarapmp8rvyxcsky82k4h9mfr2rbhdfid6h1f3"; depends=[crayon data_table dlstats dplyr DT ggplot2 lubridate progress purrr rvest shiny shinyBS shinycssloaders shinydashboard stringr xml2]; broken = true; };
+  abmR = derive2 { name="abmR"; version="1.0.4"; sha256="1sz27ym4lfzsf8413p3zdq51gcn9lp3bbgjgah0wfas4v3yyfsp4"; depends=[geosphere ggplot2 googledrive gstat gtsummary kableExtra purrr raster rgdal rgeos rnaturalearth rnaturalearthdata sf sp swfscMisc table1 tmap]; broken = true; };
+  abn = derive2 { name="abn"; version="2.5-0"; sha256="1fqmhw0mhdl6az1gpg0byvx5snhz1pl3fqikhyfjcjrc9xbsq8yw"; depends=[lme4 nnet Rcpp RcppArmadillo Rgraphviz rjags]; broken = true; };
+  abstr = derive2 { name="abstr"; version="0.4.0"; sha256="1alipc1pajjbvs69swxn5xkbjryrmdx5fyrwnfwdrn8l2vkgw10w"; depends=[jsonlite lwgeom magrittr od sf tibble tidyr]; broken = true; };
   adoption = derive2 { name="adoption"; version="0.6.4"; sha256="1xjkvj1ys2xmjgswqfsrry27zyqcc9hk9khl0j4s72gcc8az8sz6"; depends=[quadprog RandomFieldsUtils tkrplot]; broken = true; };
-  aghq = derive2 { name="aghq"; version="0.2.1"; sha256="0c4yk2vcycxryrs0g5jnfsbwr0f2nwq660mmx3vsfsdqml2qdv5w"; depends=[Matrix mvQuad polynom rlang]; broken = true; };
+  agroclim = derive2 { name="agroclim"; version="0.1.0"; sha256="16cyqplzmwziqwkicix0sr06zhc0yx615iv3hda0cxbdyf2rllk3"; depends=[abind cowplot easyNCDF ggforce ggplot2 ggpubr gtable multiApply ncdf4 plyr raster reshape sp zoo]; broken = true; };
   amber = derive2 { name="amber"; version="1.0.3"; sha256="0kc7g5rb0wrs1id1k0qay56063gpffwvcll38983b1l3k215mxiv"; depends=[classInt doParallel foreach Hmisc latex2exp ncdf4 raster rgdal rgeos scico sp viridis xtable]; broken = true; };
+  amt = derive2 { name="amt"; version="0.1.4"; sha256="0xdrpkirdxmni3bcqjjx8xxh3b0bllmsgc3r7h9zd7sf0p3aldhs"; depends=[checkmate circular ctmm dplyr fitdistrplus lubridate magrittr purrr raster Rcpp Rdpack rgeos rlang sf sp survival tibble tidyr]; broken = true; };
   anominate = derive2 { name="anominate"; version="0.6"; sha256="01p2qkqf88bzhwywyass5r8dwg2ycflmkbzmsps7fzy0kv3xyb02"; depends=[coda MCMCpack pscl wnominate]; broken = true; };
   aptg = derive2 { name="aptg"; version="0.1.1"; sha256="0mdhgc0jrl2za3k2awm92vky2ghcssqq1x2h57ns9b17lwdrsdl4"; depends=[ape brranching phytools taxize xml2]; broken = true; };
   artemis = derive2 { name="artemis"; version="1.1.1"; sha256="1v875xn0mvw7p7jdp6d3hpc4cp8yq2aq0b80rq1c619n9rkjq4ks"; depends=[BH ggplot2 lme4 loo Rcpp RcppEigen RcppParallel rstan rstantools StanHeaders]; broken = true; };
   aspline = derive2 { name="aspline"; version="0.1.0"; sha256="1xywp471ly6f0n88lwhpwlg54fizdkjxksli9c60vbi8r56n46mr"; depends=[dplyr fda ggplot2 magrittr Matrix mgcv pryr pspline Rcpp reshape2 rlang splines2 tidyr]; broken = true; };
-  ausplotsR = derive2 { name="ausplotsR"; version="1.2.6"; sha256="1vnf1rhg5frv1kc5bdssvljww6bw2q1cj29y4304851fifk8l502"; depends=[betapart curl ggplot2 gtools httr jose jsonlite mapdata maps maptools plyr R_utils simba sp vegan]; broken = true; };
+  automultinomial = derive2 { name="automultinomial"; version="2.0.0"; sha256="04rjg3xjlhnkchzvdxqm762z5abm81s5b9czgzmli30zh07bf3fd"; depends=[igraph Matrix numDeriv]; broken = true; };
   batchr = derive2 { name="batchr"; version="0.0.2"; sha256="0fkrv6dlyla7bbl00f16lypnz5idyjz9kdqslgbx3pnfwx5hngwx"; depends=[chk cli furrr hms hmstimer yesno]; broken = true; };
-  biblio = derive2 { name="biblio"; version="0.0.2"; sha256="1yx90cmkcm5vran3n0p8l3hz9sqny7bhzgvnlsa8f4fddh0ah78p"; depends=[stringr yamlme]; broken = true; };
   binomialMix = derive2 { name="binomialMix"; version="1.0.1"; sha256="1ak3h0lgjmrv9miwn7fl6jvcp8xdld53swjz71q67q999s42np0m"; depends=[dplyr gmp lubridate MASS rlang Rmpfr stringr]; broken = true; };
+  bmd = derive2 { name="bmd"; version="0.5"; sha256="0d4wxyymycb416sdn272292l70s1h2m5kv568vakx3rbvb8y6agy"; depends=[drc]; broken = true; };
+  bmeta = derive2 { name="bmeta"; version="0.1.2"; sha256="19pm60xpmlanngq4nbibp0n5m98xw24b2xghz92ly31i3mkg2n68"; depends=[forestplot R2jags]; broken = true; };
+  bnpmr = derive2 { name="bnpmr"; version="1.2"; sha256="0vpqhs1h2mphn9w5yngb7lxvmzrhn7mkj7ca6hykhhg48s2ra98g"; depends=[]; broken = true; };
   boostr = derive2 { name="boostr"; version="1.0.0"; sha256="123ag8m042i1dhd4i5pqayqxbkfdj4z0kq2fyhxfy92a7550gib2"; depends=[foreach iterators stringr]; broken = true; };
   caliver = derive2 { name="caliver"; version="2.0.0"; sha256="04qa3zrk70c8ak70djfh23jyfxs8293s8wzkk6cs0nyrknhaxzzj"; depends=[ggplot2 lubridate ncdf4 raster rworldmap]; broken = true; };
-  cjbart = derive2 { name="cjbart"; version="0.1.0"; sha256="1lpqwm6py0xwmcj87crk9ivd96wy3kzfhkinv064d6dx5n4m4fax"; depends=[BART ggplot2 rlang tidyr]; broken = true; };
+  circglmbayes = derive2 { name="circglmbayes"; version="1.3.0"; sha256="0i5aacr7vqznm3rhlznc02xjzjkjliadxhhvsmf8wb2cvivz0wir"; depends=[BH coda ggplot2 Rcpp RcppArmadillo reshape2 shiny]; broken = true; };
   compstatr = derive2 { name="compstatr"; version="0.2.1"; sha256="0pg8yacfb7jvg9xr0gmis8a4g339isd77h6wr8dd6w900q47xac0"; depends=[dplyr fs httr janitor lubridate purrr readr rlang rvest sf stringr tibble tidyr xml2]; broken = true; };
   connections = derive2 { name="connections"; version="0.1.1"; sha256="08fbyzyp26nh1a46p0zi3q0wzgl0cd9bjp4lhw2bwv1bv7yayamp"; depends=[DBI dbplyr dplyr pins rscontract uuid]; broken = true; };
   contextual = derive2 { name="contextual"; version="0.9.8.4"; sha256="0lww36nymg2cla83jdvl7a42cwn0il20apciz0ddplq8rw2i0a91"; depends=[data_table doParallel foreach Formula iterators itertools R_devices R6 rjson]; broken = true; };
+  cplexAPI = derive2 { name="cplexAPI"; version="1.4.0"; sha256="00h2zir1ffzjiglfyq8bsfmgq9z155jr0k0fxv8fsbfyw2x9dg10"; depends=[]; broken = true; };
   cuml = derive2 { name="cuml"; version="0.2.1"; sha256="1dmk1gvvzkwfra63qslax9cgqjbsiqam5wcjl955wpb0wdqpa54k"; depends=[ellipsis hardhat magrittr parsnip Rcpp rlang]; broken = true; };
   danstat = derive2 { name="danstat"; version="0.1.0"; sha256="1wb4v4s9qc7qna7jgd1kk0xvyaqmxhnmjvr5wlk5jjl355lhjxbc"; depends=[httr jsonlite readr]; broken = true; };
-  dataReporter = derive2 { name="dataReporter"; version="1.0.0"; sha256="12rwjd46h35cydvfx5qhb4rssqpm94b628zr06gy9nhwydnajn5x"; depends=[ggplot2 gridExtra haven htmltools magrittr pander rmarkdown robustbase stringi whoami]; broken = true; };
+  data_validator = derive2 { name="data.validator"; version="0.1.5"; sha256="1p2dzn9q3vrqs3askp8ccriaxyhay8iyqhnaryr1drycwrd13wi8"; depends=[assertr dplyr htmltools htmlwidgets knitr purrr R6 rlang rmarkdown shiny shiny_semantic tibble tidyr]; broken = true; };
   diffman = derive2 { name="diffman"; version="0.1.1"; sha256="08b4kqxfg8pmyl2xg8flb581s9wnkdcy5rrmrxp8a89y265qmirx"; depends=[data_table dplyr igraph Matrix progress Rcpp sf tidyverse]; broken = true; };
   dpa = derive2 { name="dpa"; version="1.0-3"; sha256="0dmwi68riddi1q4b10c12wx6n7pqfmv30ix5x72zpdbgm72v343h"; depends=[igraph sem]; broken = true; };
   dynamicGraph = derive2 { name="dynamicGraph"; version="0.2.2.6"; sha256="1xnsp8mr3is4yyn0pyrvqhl893gdx2y1zv8d2d55aah2xbfk0fjj"; depends=[ggm]; broken = true; };
   dynatopmodel = derive2 { name="dynatopmodel"; version="1.2.1"; sha256="0lpfhj69bvagqzzg2kjqvn9xx8f93ii34flrrns20z3bxla6gds9"; depends=[deSolve lubridate maptools raster rgdal rgeos sp topmodel xts zoo]; broken = true; };
+  eSIR = derive2 { name="eSIR"; version="0.4.1"; sha256="0vni057bnvjyj0s9vl6rr4qh3pz8h60fwck0xqzyl86psw73g1dh"; depends=[chron coda data_table ggplot2 gtools reshape2 rjags scales]; broken = true; };
   elo = derive2 { name="elo"; version="2.1.1"; sha256="1i6qcw2plw12v065142kx58d911zr1gcsd1xic152zxvh89nmhxx"; depends=[pROC Rcpp]; broken = true; };
   endogMNP = derive2 { name="endogMNP"; version="0.2-1"; sha256="0maxcp321ngbxrg0i23nlwhj849v771xahh53367x928ss4f8v7i"; depends=[]; broken = true; };
   evaluator = derive2 { name="evaluator"; version="0.4.3"; sha256="1gccymjb1ad3xw3kmqafchazv9rid6v6c3h8w96ai5b2jh8zlgwk"; depends=[cli crayon dplyr extrafont ggplot2 magrittr mc2d purrr readr readxl rlang rstudioapi scales stringi tibble tidyr vctrs viridis]; broken = true; };
   expands = derive2 { name="expands"; version="2.1.3"; sha256="00zb57gmpj86c7rvpqywpn4c5wl51immps935n3hd2fyk73vqljh"; depends=[ape commonsMath flexclust flexmix gplots matlab moments NbClust plyr RColorBrewer rJava]; broken = true; };
-  fabisearch = derive2 { name="fabisearch"; version="0.0.3.6"; sha256="0gaw9hk7il4fsc0mklb3pfxl6kg7amydvqar8m2524hcb7ar835z"; depends=[doParallel doRNG foreach NMF reshape2 rgl]; broken = true; };
+  fastshap = derive2 { name="fastshap"; version="0.0.5"; sha256="08f25ib5mry6h8lvj0g3clc9kfl5g2wdd8x8bw455wwmbcm6x5vg"; depends=[abind ggplot2 gridExtra matrixStats plyr Rcpp RcppArmadillo tibble]; broken = true; };
   feedeR = derive2 { name="feedeR"; version="0.0.10"; sha256="1p64c7ibwn6k5k3vsjxrcjr84czild7g8bqw0yv4axk52vk5jfkx"; depends=[digest dplyr lubridate readr stringr tibble xml2]; broken = true; };
   fpmoutliers = derive2 { name="fpmoutliers"; version="0.1.0"; sha256="108bp3smk9jnckd5237xly4ywmal03rq1kidq5z61l6zrhc3yfh9"; depends=[arules doParallel foreach Matrix pmml pryr R_utils XML]; broken = true; };
-  fuzzyreg = derive2 { name="fuzzyreg"; version="0.5.1"; sha256="19ppb1m655z3n7h4wcd5bwjciw4ynjbi883ki50mr5di3zy64n4r"; depends=[limSolve quadprog]; broken = true; };
+  fractalRegression = derive2 { name="fractalRegression"; version="1.0"; sha256="0lkxm3f9xz1c4kc81rfhd521q9jzsdb3ngrgn7nsawllpi2zrgwb"; depends=[Rcpp RcppArmadillo]; broken = true; };
+  fulltext = derive2 { name="fulltext"; version="2.0"; sha256="104wkas9azyb2drfaz1hrgbx2ilbb0k2mb8411l10rsbkqva099f"; depends=[aRxiv crul data_table digest fauxpas hoardr jsonlite magrittr microdemic pdftools rcrossref rentrez rplos storr tibble xml2]; broken = true; };
+  gWidgets2RGtk2 = derive2 { name="gWidgets2RGtk2"; version="1.0-7"; sha256="14c933j0wj3lb5da75zxg3w3mfqh0nqk8rczbi4dnqd8sna6jks9"; depends=[gWidgets2 memoise RGtk2]; broken = true; };
   gdmp = derive2 { name="gdmp"; version="0.2.0"; sha256="0fy8x9l6swrb78apwq9d9msz2y8dkfd2fkyp1pkmzxwdb85lmcdm"; depends=[]; broken = true; };
+  genekitr = derive2 { name="genekitr"; version="0.2.1"; sha256="1xns8sq535w47l0pxja35pxgp4a5x0vnnyprmd363fi5ls9rwbi5"; depends=[clusterProfiler dplyr ggplot2 stringi stringr tibble tidyr VennDiagram]; broken = true; };
   gfmR = derive2 { name="gfmR"; version="1.1-0"; sha256="0qzzbcra1fnbp0h31b1as20yhmqmi7p62xrhikj64an9avg9b277"; depends=[faraway nnet]; broken = true; };
   ggguitar = derive2 { name="ggguitar"; version="0.1.1"; sha256="1lmfs54h91gzcxin37v4flkywbq3fs648mm1h9ak03xlj5nagzsi"; depends=[dplyr ggplot2 gridExtra lazyeval readr tibble]; broken = true; };
   glinvci = derive2 { name="glinvci"; version="1.1.4"; sha256="0s8qmrqajsrmzp30xgi49n96ks22dxxa0c5psqkw67n66h39njlh"; depends=[ape BB lbfgsb3c numDeriv plyr Rcgmin rlang]; broken = true; };
   gorica = derive2 { name="gorica"; version="0.1.1"; sha256="06022nkdqmd653bxi81ks4lq5gx3j9jxbwkx1wjmmj4ph6qabkmn"; depends=[bain lavaan limSolve lme4 MASS mvtnorm quadprog]; broken = true; };
   graphscan = derive2 { name="graphscan"; version="1.1.1"; sha256="1dgjb0grdymhimdgwnddjcivgy2i9r1i1nni4v9mx0447skcahk9"; depends=[ape rgl snowfall sp]; broken = true; };
+  hal9001 = derive2 { name="hal9001"; version="0.4.1"; sha256="0hclz3rrav536dz7hqzdzck0hxx24pd59p3s2flhkx60wqxajvrq"; depends=[assertthat data_table glmnet Matrix origami Rcpp RcppEigen stringr]; broken = true; };
+  haldensify = derive2 { name="haldensify"; version="0.2.1"; sha256="1mckpr70q10qv2m70rbwwzb7a6mvk8hwrkvbnh7v2qksd5lcfxn8"; depends=[assertthat data_table dplyr future_apply ggplot2 hal9001 latex2exp matrixStats origami Rdpack rlang rsample scales tibble]; broken = true; };
   happybiRthday = derive2 { name="happybiRthday"; version="0.0.1"; sha256="0rrvi5kx09p74xwxvqcwibbh4qjlk4jxb89grx74chjxk9ak2yv8"; depends=[data_table dplyr gh lubridate tidyr]; broken = true; };
+  hddtools = derive2 { name="hddtools"; version="0.9.4"; sha256="011yhs8c6riimz63pa2am56n5aip2yk5gryx2amvk29pzp1v6my9"; depends=[curl raster readxl rgdal sp tidyr XML zoo]; broken = true; };
   hdpGLM = derive2 { name="hdpGLM"; version="1.0.0"; sha256="04mn0cbbx66218rsd273yh29h28f1xl8k0whwlyn6hrg035mlk0x"; depends=[coda data_table dplyr formula_tools ggjoy ggplot2 ggpubr ggridges Hmisc isotone LaplacesDemon magrittr MASS MCMCpack mvtnorm purrr questionr Rcpp RcppArmadillo rprojroot stringr tibble tidyr tidyverse]; broken = true; };
   healthforum = derive2 { name="healthforum"; version="0.1.0"; sha256="13ih00amv9hrpngm6pxc8vzqzhx8c0yqgaprxdcp5li90lg5r3av"; depends=[magrittr purrr rvest stringr tokenizers xml2]; broken = true; };
   hockeyR = derive2 { name="hockeyR"; version="0.1.1"; sha256="1rzm67ib4i7qa0x302g9k5bm5vabg39l1da5brnkkh9fp6v37lb6"; depends=[dplyr glue httr janitor jsonlite lubridate magrittr polite purrr rvest stringr tidyr zoo]; broken = true; };
+  icardaFIGSr = derive2 { name="icardaFIGSr"; version="1.0.1"; sha256="1jmqhzc1nkbw3r9p4skh4pcp6986fa09h5bcyx99892gwn9dh7g0"; depends=[caret doParallel dplyr foreach ggplot2 gWidgets2 gWidgets2RGtk2 httr leaflet magrittr plotROC plyr raster reshape2 RGtk2 sp]; broken = true; };
   incadata = derive2 { name="incadata"; version="0.9.1"; sha256="0987zazkp3cxvk88i3yqb70s2i1cg108vc8wyhh2867s3rqdrpgh"; depends=[decoder rvest sweidnumbr xml2]; broken = true; };
   ipmisc = derive2 { name="ipmisc"; version="6.0.2"; sha256="1dn815p2k1v371pv5fra6541zwc1hyjzxlx11m8pgfcyrfgmicyk"; depends=[dplyr magrittr rlang tibble tidyr zeallot]; broken = true; };
+  itemanalysis = derive2 { name="itemanalysis"; version="1.0"; sha256="1ksbd69mca45jlr2gpars87cf4jfm5rx6sz009sv6a83x831x5rq"; depends=[car ggplot2 polycor]; broken = true; };
+  ivdoctr = derive2 { name="ivdoctr"; version="1.0.0"; sha256="18pca08cww4x13j3ks0mr84c3jkigf09s7wrh5y8pc11ypyxbgp1"; depends=[AER coda data_table MASS Rcpp RcppArmadillo rgl sandwich]; broken = true; };
   jdx = derive2 { name="jdx"; version="0.1.4"; sha256="0jqf0nkdyv9g4rifzlkls0n64fdcma2yphwl478772jlgfmxm2jb"; depends=[rJava]; broken = true; };
   jsr223 = derive2 { name="jsr223"; version="0.3.4"; sha256="0rir9v0qhnbl2rgkx1qz2ydj68ba9ccbdzsg6y1acczdhpl03j51"; depends=[curl jdx R6 rJava]; broken = true; };
+  kmcudaR = derive2 { name="kmcudaR"; version="1.1.0"; sha256="16dkv9ag5375zc23nqakbg7v6knxvh1pips9rjsls0d7rw2bg1bs"; depends=[Rcpp RcppEigen]; broken = true; };
   lass0 = derive2 { name="lass0"; version="1.1.0"; sha256="01fafgyhi3fw8ldjw2gf0z9w1si7il3ailwm197fxmw4wqgys9fl"; depends=[doRNG foreach ismev lpSolve]; broken = true; };
   libproj = derive2 { name="libproj"; version="8.1.0-1"; sha256="16mavs0kpbn1lskfgyzgw5ns270kdvvh2991c8w26cyl23zrcys6"; depends=[cpp11 rappdirs]; broken = true; };
   likeLTD = derive2 { name="likeLTD"; version="6.3.0"; sha256="1mjf4667xd9pf2684d7vqaj54l5s9pgljn4vkfp32wzbfknq6y8r"; depends=[DEoptim gdata ggplot2 gtools rtf]; broken = true; };
+  lmSupport = derive2 { name="lmSupport"; version="2.9.13"; sha256="0ln5c91mbxkymgnv2nw5m3nrm5bwckpikgb9x1qhmjc55m98wkb8"; depends=[AICcmodavg car gplots gvlma lme4 pbkrtest psych pwr]; broken = true; };
+  maGUI = derive2 { name="maGUI"; version="3.0"; sha256="1ak2sa6y766v5zh54bf7j9hklmkia40nsdchyw834ybb9ijjyjsm"; depends=[Biobase gWidgets2 gWidgets2RGtk2 impute limma Rgraphviz RGtk2 ssize]; broken = true; };
   machQA = derive2 { name="machQA"; version="0.1.4"; sha256="1rdrjy9sxql2c9y691a1jrmgsv7m1ihsschixxb6wc7aahf7mav6"; depends=[machina plyr]; broken = true; };
   machina = derive2 { name="machina"; version="0.1.6"; sha256="009mzqb5jgnilj9b5ldmm5600008bljlqacm8jjxvqsfnfdfg8zv"; depends=[DT httr jsonlite lubridate rhandsontable xts]; broken = true; };
+  mcmcabn = derive2 { name="mcmcabn"; version="0.4"; sha256="0ym7ngai8pv9xalh1s53p8f96s8xpc05zi6ryih2rjv449ib06kq"; depends=[abn coda cowplot ggplot2 ggpubr gRbase]; broken = true; };
+  metabolighteR = derive2 { name="metabolighteR"; version="0.1.2"; sha256="1v50b0pp2hzn6b4xrlclaks3kd315rir44acm24mmqhqybj6lhls"; depends=[crayon dplyr httr magrittr purrr]; broken = true; };
+  miceMNAR = derive2 { name="miceMNAR"; version="1.0.2"; sha256="1s607icaf3c25mn8xdi3zkzmm8m7qd9a6vjdlz5j7ig2gc9f2y2d"; depends=[GJRM mice mvtnorm pbivnorm sampleSelection]; broken = true; };
   migrbc = derive2 { name="migrbc"; version="2.0.9"; sha256="1nbxdm70a9lvbp4sw78719hdpbqnziw1y7r4xk8i390q2c195am1"; depends=[dplyr futile_logger lubridate Rcpp stringr]; broken = true; };
   miraculix = derive2 { name="miraculix"; version="0.9.23"; sha256="0i08v5hq43296k3sa7akpq4h5dmvpkgn7cfpqwdyp0qaxkqk0k0s"; depends=[RandomFieldsUtils]; broken = true; };
+  mixlink = derive2 { name="mixlink"; version="0.1.5"; sha256="0ywgrcplhspc0x5fniw52xqz20y7j9mwgy4ky8lv3vii659mr52m"; depends=[mvtnorm numDeriv Rcpp RcppGSL]; broken = true; };
+  mmpca = derive2 { name="mmpca"; version="2.0.1"; sha256="05vir7hjv5dccfcizyn5n6qxx2p53111if16l44a7ifg5k599xj9"; depends=[digest gsl Rcpp RcppEigen]; broken = true; };
   mnlogit = derive2 { name="mnlogit"; version="1.2.6"; sha256="0dfwpkl8g7ap5xr48smiv8vdbamd2r1liy9nwpsn0kcsr9cj65n9"; depends=[Formula lmtest mlogit]; broken = true; };
+  monoreg = derive2 { name="monoreg"; version="1.2"; sha256="16n622j1j998a5fhn1c1qbzk5bfa5h09d95ry89gsd00p40hqg0a"; depends=[]; broken = true; };
+  mosaic_find = derive2 { name="mosaic.find"; version="0.1.2"; sha256="1fzgksh8sp701qjfrvjl2bg967qjkjpilxsfkrazhw71cgmzjgjl"; depends=[minpack_lm]; broken = true; };
+  mssqlR = derive2 { name="mssqlR"; version="1.0.0"; sha256="0qdnm7cx9cg14vfcnkmcjqr1jpxsw8xlrbnxldvzz44mzv2n878l"; depends=[magrittr RODBC]; broken = true; };
+  multilinguer = derive2 { name="multilinguer"; version="0.0.4"; sha256="0kavgvbzv8bvv9qlr92j8mx7b802w513mqalrdyln0pw36c9i13x"; depends=[askpass fs rstudioapi rvest sys usethis xml2 zip]; broken = true; };
+  mvst = derive2 { name="mvst"; version="1.1.0"; sha256="03q0kdychsmn4wcn50b6dqhxn4f2mjvrr5rac942xdv75w8qklc9"; depends=[MCMCpack mnormt mvtnorm]; broken = true; };
+  mwcsr = derive2 { name="mwcsr"; version="0.1.0"; sha256="0v0c5mlxfy804zp6ykjjn6rhz5ji1h3vnm97cwpdr0r016nvvr9j"; depends=[igraph Rcpp]; broken = true; };
   nCal = derive2 { name="nCal"; version="2021.9-12"; sha256="133dpy2rp8sabwdlk0wjxs9rzixzcja73im94qaw26z5xsnaydhf"; depends=[drc gdata gWidgets2 kyotil]; broken = true; };
-  ndtv = derive2 { name="ndtv"; version="0.13.1"; sha256="18d51xp62fis63p2prybhigxx03yhbrzs0k1yhh9j21548wzhb2l"; depends=[animation base64 jsonlite MASS network networkDynamic sna statnet_common]; broken = true; };
+  nearfar = derive2 { name="nearfar"; version="1.2"; sha256="116rq797a5fascirz8xg465fywjf40j1k5czryvqzpik0if0w00r"; depends=[car GenSA MASS nbpMatching]; broken = true; };
   ntwk = derive2 { name="ntwk"; version="1.0.0"; sha256="1c12c3pq992f02z3ikx17zv2djq9d9ly232ha0j5jswsksqzx024"; depends=[assertthat copCAR ghyp Matrix mvtnorm pracma zoo]; broken = true; };
   oc = derive2 { name="oc"; version="1.2"; sha256="0cw1gvz6gk8j718zmywqp03h9cnzn132nwbv45gr00xg2s9h7dk7"; depends=[pscl]; broken = true; };
-  occCite = derive2 { name="occCite"; version="0.5.0"; sha256="09y1vqjshrh8mbw1xsmcfrcxy5ccx14gf6p5mfzlwm3ywsi84hcc"; depends=[bib2df BIEN DBI dplyr ggplot2 htmltools httr leaflet lubridate RColorBrewer rgbif rlang RPostgreSQL stringr taxize tidyr viridis waffle]; broken = true; };
+  onemap = derive2 { name="onemap"; version="2.1.3"; sha256="0fwkr845zz0j8ccrwpksb28lly1rsgj3603ak1aqqgmlx6481p08"; depends=[ggplot2 MDSMap plotly Rcpp reshape2]; broken = true; };
   pairwiseComparisons = derive2 { name="pairwiseComparisons"; version="3.1.6"; sha256="0aiq8gr33pr5lia6cf6ak7zy5z81am5j5a0py0a2m9ljgmsgmn4s"; depends=[BayesFactor dplyr insight ipmisc parameters PMCMRplus purrr rlang WRS2]; broken = true; };
-  pct = derive2 { name="pct"; version="0.9.1"; sha256="0chqvaa8cfv3s3zf940hzca90967raakxndyxcg08acysvfq6fir"; depends=[boot readr sf stplanr]; broken = true; };
+  panelAR = derive2 { name="panelAR"; version="0.1"; sha256="1ka2rbl9gs65xh2y2m4aqwh5qj4szibjy101hqfmza9wmdh25gpq"; depends=[car]; broken = true; };
+  pbdBASE = derive2 { name="pbdBASE"; version="0.5-3"; sha256="1f90bk1mp1s03177b9g5w5ni77jzrzc1pl3bjx0w0fjbjs1myn79"; depends=[pbdMPI pbdSLAP]; broken = true; };
+  pbdPROF = derive2 { name="pbdPROF"; version="0.4-0"; sha256="174jwrkvw5qz1430y6id01w1czlw45j1yw8a8dyw36knrmvmdz10"; depends=[]; broken = true; };
+  pbdRPC = derive2 { name="pbdRPC"; version="0.2-1"; sha256="1pz71zfs9qw96dj3h5mrm734vbbi4drlv9hrw91dbzm3a7jsxg4q"; depends=[]; broken = true; };
+  pbdSLAP = derive2 { name="pbdSLAP"; version="0.3-1"; sha256="1iwc5iw6q7r6p08yngczqlbqk779nsx2rmxc3fajzl6d73rprshl"; depends=[pbdMPI rlecuyer]; broken = true; };
   pedometrics = derive2 { name="pedometrics"; version="0.7.0"; sha256="0rqldc67yrcg16i5q9wrmfmh3lw3qrfdxwdb4mxkjxx18v4fv737"; depends=[lattice latticeExtra Rcpp]; broken = true; };
+  permGPU = derive2 { name="permGPU"; version="0.15"; sha256="1bxydc5dw7ka45k6ban35d5xb1dw9yq9480qns8b39cc0x3acmhc"; depends=[Biobase foreach RUnit survival]; broken = true; };
+  phreeqc = derive2 { name="phreeqc"; version="3.6.3"; sha256="0z20gj1kqhnbvx33sswz5ivj7nk2p4hia4gr2npscs94nc50b5j4"; depends=[]; broken = true; };
+  plfMA = derive2 { name="plfMA"; version="1.0.5"; sha256="13hs06n4b28vlik9bzqdx6j85q05bsd6hb10cr39581a3m33rv5m"; depends=[cairoDevice gWidgets2 gWidgets2RGtk2 limma RGtk2]; broken = true; };
   pm4py = derive2 { name="pm4py"; version="1.2.7"; sha256="11xbsmsc9pxd98fy28l3nxzhb6c2pwvh1gmm34jnqn0rjbpb2n9i"; depends=[bupaR petrinetR purrr reticulate stringr]; broken = true; };
   pmdplyr = derive2 { name="pmdplyr"; version="0.3.3"; sha256="1grnqqydi84hnig1522lv4xbh9ds32wnq7sha7jn1q4186wlz1qa"; depends=[dplyr lubridate magrittr pillar rlang tibble tidyr tidyselect vctrs]; broken = true; };
+  podcleaner = derive2 { name="podcleaner"; version="0.1.1"; sha256="1mgkcmayysm2amz2a94mzsyxa0kgqk4y43qsy4hp81j31ij8chkv"; depends=[dplyr fuzzyjoin magrittr progress purrr readr rlang stringi stringr tibble tidyr]; broken = true; };
   podr = derive2 { name="podr"; version="0.0.5"; sha256="135nq0dw1x6ngf6mxy3yds3xsxhaf5rnv1cmhavlrklhdfygc0a4"; depends=[assertthat DBI dplyr lubridate magrittr odbc plogr RPostgres rstudioapi shiny stringr tibble]; broken = true; };
   polyglot = derive2 { name="polyglot"; version="0.3.0"; sha256="1mmmdqaq882qys41lmm009ncg9s9h5x1q8psv0v3pwpar0d7vgff"; depends=[magick pins]; broken = true; };
   psyosphere = derive2 { name="psyosphere"; version="0.1.6"; sha256="1hcas3jk2n11lyw1ysmci0sysxf7qg9h2msqqg7q9nqp5gbf90np"; depends=[geosphere ggplot2 Hmisc lubridate plyr rgdal RgoogleMaps sp]; broken = true; };
   qbld = derive2 { name="qbld"; version="1.0.1"; sha256="0agx32f2pf1hzs3and40zd7kfkjml7qjbnn0im4dr2v10h1jz6c0"; depends=[knitr mcmcse Rcpp RcppArmadillo RcppDist rmarkdown stableGR]; broken = true; };
   qoma_smuggler = derive2 { name="qoma.smuggler"; version="0.0.1"; sha256="03p9i0kr6i3adpb9lcszcmdr9p26nfy7f8hw2sbydazglaw4hscr"; depends=[lubridate rhli tibble]; broken = true; };
+  rGEDI = derive2 { name="rGEDI"; version="0.1.11"; sha256="0fkvy4p82jyfbbfymkfbrdyh13hk6a6wghk2myb64p5nhz8kv7iz"; depends=[bit64 curl data_table fs getPass ggplot2 hdf5r jsonlite lazyeval raster RColorBrewer rgdal rgeos sp]; broken = true; };
+  rKolada = derive2 { name="rKolada"; version="0.2.0"; sha256="0ikyjzg8xbzyah37dpfwq2slssz956irm4dj8b7zv6x9qxi09gj9"; depends=[dplyr glue httr jsonlite magrittr purrr rlang stringr tibble tidyr urltools]; broken = true; };
   rModeling = derive2 { name="rModeling"; version="0.0.3"; sha256="0xrjxayp59f31wwcqqkzs5my2j2lpbv1f4pp709fmqxz02vbdzhv"; depends=[caret e1071 MASS]; broken = true; };
   rabhit = derive2 { name="rabhit"; version="0.1.5"; sha256="0dqzcv241g2b2slygq87w4qkdxalr58zs61k7485b8745xansxmv"; depends=[alakazam cowplot data_table dendextend dplyr fastmatch ggdendro ggplot2 gridExtra gtable gtools htmlwidgets plotly plyr RColorBrewer reshape2 rlang splitstackshape stringi tidyr tigger]; broken = true; };
+  randomsearch = derive2 { name="randomsearch"; version="0.2.0"; sha256="0ywr4ms66p5nmq8bzy04gbvmpp0nhfyf8rvynhr2c4alqva9x3yi"; depends=[checkmate fs parallelMap ParamHelpers smoof]; broken = true; };
+  rawr = derive2 { name="rawr"; version="0.1.3"; sha256="0k0x1pmxs73j6dmjg33n4hhwjwzpnhzbmmmjza6kw7hj6lfmipx4"; depends=[clipr dplyr jsonlite rvest stringr xml2]; broken = true; };
   rdaemon = derive2 { name="rdaemon"; version="1.0.6"; sha256="1qr6v7kgk9nd5qp96667x51331xmpp1yz1r190dgd1fqigw735s5"; depends=[base64enc futile_logger Rcpp]; broken = true; };
-  rdomains = derive2 { name="rdomains"; version="0.1.9"; sha256="0pfz438qiz8mqh391nlhz2q2r8830y5i0sg1ajhppj1hq2cgqqbg"; depends=[aws_alexa curl devtools glmnet httr jsonlite Matrix rlang urltools virustotal XML xml2]; broken = true; };
+  resemble = derive2 { name="resemble"; version="2.0.0"; sha256="1vr4aydwyipspkw662qw50219r30ms05i567j66yv1ccs574dw6a"; depends=[data_table foreach iterators lifecycle magrittr mathjaxr Rcpp RcppArmadillo]; broken = true; };
+  retrocombinator = derive2 { name="retrocombinator"; version="1.0.0"; sha256="0ci5cm9ml2gsn0n0scaahpfi8kyn6i0s3fb4mn7m9s83c0ls6xgv"; depends=[dplyr ggplot2 magrittr Rcpp rlang]; broken = true; };
+  rgho = derive2 { name="rgho"; version="2.0.1"; sha256="1byvq2swn2j9v0zy5smjklv7bkncrclhli62cf1f2wiah5qg8sv2"; depends=[curl dplyr httr jsonlite lazyeval magrittr memoise readr rlang tibble tidyr]; broken = true; };
   rijkspalette = derive2 { name="rijkspalette"; version="1.0.2"; sha256="00726q8s36si08ghd9sgi7ikadcj11xqwhgv8f3cml6lvwz7ppzz"; depends=[crayon imager jsonlite]; broken = true; };
+  rnetcarto = derive2 { name="rnetcarto"; version="0.2.4"; sha256="0fk5rym6zp049bl1f7bkl2231mjh3pgnxn0nhvmzpsah08rh4rr6"; depends=[]; broken = true; };
+  safedata = derive2 { name="safedata"; version="1.0.9"; sha256="0xcpgh4898rqdnnxx21vyxc8aqlwg26aywr591sllasrv1jzsmrc"; depends=[chron curl igraph jsonlite readxl sf]; broken = true; };
+  sara4r = derive2 { name="sara4r"; version="0.0.8"; sha256="0b8ir25f0348pd2ckwzv1pyz3iz98zy09baih3rkgxxn8hjdnxj7"; depends=[raster rgdal RGtk2 sp]; broken = true; };
   seedwater = derive2 { name="seedwater"; version="2.0"; sha256="1q6q612245hqqx89jzlp77f73vj2baxi0bghd9l8kpjz4ydh6rv8"; depends=[rpanel]; broken = true; };
   shinyypr = derive2 { name="shinyypr"; version="0.0.2"; sha256="1k6jsw6gnpwk90hkpa9grki0b68cab57vbd0h6ldjqr11giwcz8z"; depends=[bsplus chk dplyr DT ggplot2 lifecycle magrittr purrr readr shiny shinyjs waiter ypr]; broken = true; };
   simLife = derive2 { name="simLife"; version="0.5.2"; sha256="1dhrjszfgxr0j4dkc2bwykyj515ji5rkb572nmnyjgkyi652j01v"; depends=[splancs]; broken = true; };
   simba = derive2 { name="simba"; version="0.3-5"; sha256="14kqxqavacckl5s1518iiwzrmlgbxz1lxy33y8c9qq7xaln41g9h"; depends=[vegan]; broken = true; };
   slga = derive2 { name="slga"; version="1.2.0"; sha256="0n96vqczpzc51ln2nraxz0846amasfbm541sy0wf0dsng283mh13"; depends=[httr raster s2 sf xml2]; broken = true; };
+  smartR = derive2 { name="smartR"; version="0.62.3"; sha256="0ardb4arhr7qmr30b3ahf7hkwlys9i420bm8h2688phahgfkk0y8"; depends=[caret chron cluster foreign ggplot2 ggrepel ggthemes gridExtra gstat gsubfn gWidgets2 gWidgets2RGtk2 igraph jpeg jsonlite lattice mapdata mapproj maps maptools marmap mtsdi nnls PBSmapping plyr R6 RColorBrewer reshape2 rgdal rgeos rjags ROCR rpart scales shape sp spdep sqldf vegan]; broken = true; };
   soilphysics = derive2 { name="soilphysics"; version="4.0"; sha256="0b4fkc1plmafjdlad7s4pvca6lafmrswwpfddvsh73734s7cslmq"; depends=[boot fields MASS shiny shinydashboard]; broken = true; };
+  spANOVA = derive2 { name="spANOVA"; version="0.99.3"; sha256="0w817zwbk6amh3n3j8wzjr15qqhfbk9s23c77b27iwcc5akdgbix"; depends=[ape car DT geoR gtools knitr MASS Matrix multcomp multcompView mvtnorm rmarkdown ScottKnott shiny shinyBS shinycssloaders shinythemes spatialreg spdep xtable]; broken = true; };
+  spate = derive2 { name="spate"; version="1.7"; sha256="1cr5jjrycfj9larsqgzfakk4qgfz8m5djg4ddzk6s3lg2iw06y43"; depends=[mvtnorm truncnorm]; broken = true; };
+  spatialfusion = derive2 { name="spatialfusion"; version="0.6-4"; sha256="18ji1pps5kb0mbff620mw7zm6nzyy3nfclmcpl677xd9927apvn9"; depends=[fields Rcpp rstan SDraw sp]; broken = true; };
+  spfilteR = derive2 { name="spfilteR"; version="1.1.1"; sha256="0y6jmg4iz584c35r6xs16z8zbs2z5y8g6wshnall7i6g2hv35nnj"; depends=[]; broken = true; };
   spsann = derive2 { name="spsann"; version="2.2.0"; sha256="00nlrwk50ch128brzvfxld0pcpq1syks9rvwdrcf1i2pcxnva7d0"; depends=[pedometrics Rcpp sp SpatialTools]; broken = true; };
-  stplanr = derive2 { name="stplanr"; version="0.8.4"; sha256="0mkkaz47a3cfbi4jqm930j8dyg3y5j9njqp9za121arsyv0jp3zf"; depends=[curl data_table dplyr geosphere httr igraph jsonlite lwgeom magrittr maptools nabor pbapply raster Rcpp RcppArmadillo rgeos rlang sf sfheaders sp stringr]; broken = true; };
   stratifyR = derive2 { name="stratifyR"; version="1.0-2"; sha256="10qlxkdbym206bvl2wc8ig00fvj1n7553vmjk6rs2n4p945qd47g"; depends=[actuar fitdistrplus mc2d triangle zipfR]; broken = true; };
+  subtee = derive2 { name="subtee"; version="1.0.0"; sha256="09ah1n3whdycygbi1a6pwgm5jqs1srd565p3ihkk5ygp4gl2r3z9"; depends=[ggplot2 MASS matrixStats survival]; broken = true; };
   supc = derive2 { name="supc"; version="0.2.5"; sha256="1qj7a1zcj3mf0a40anifjyq851yjksygrpj4vsf0dm4yfwl5viwx"; depends=[BH Rcpp]; broken = true; };
-  swissparl = derive2 { name="swissparl"; version="0.2.1"; sha256="0181ls1gw68kfz3yqf8m2nwhah87i9m164rlbycy1kxq9adi93cs"; depends=[crayon dplyr ggplot2 httr jsonlite lubridate magrittr purrr stringr tibble tidyr]; broken = true; };
+  survRatio = derive2 { name="survRatio"; version="0.1"; sha256="1xrqin3q3b7r8ga4i71ci97rsm4lj5ffd0720n7s563jkpnpyb9l"; depends=[ggplot2 ggpubr gridExtra survival]; broken = true; };
   tabulizer = derive2 { name="tabulizer"; version="0.2.2"; sha256="0zd5cfqwgirqchw1mvziscxvzl8pb1y6rbfywkn9i9pxfydkm5vi"; depends=[png rJava tabulizerjars]; broken = true; };
   tabulizerjars = derive2 { name="tabulizerjars"; version="1.0.1"; sha256="005n2gyzzmq8h0mpj8xs6ri6llzwag7nqzpm4vnzp81vwy8kmf92"; depends=[rJava]; broken = true; };
+  thectar = derive2 { name="thectar"; version="1.0.0"; sha256="1qh0qzg0ybb38kzm56xxlvhm201pdjm16aky5f1fdflcsszgy8mx"; depends=[proxy smacof]; broken = true; };
+  txshift = derive2 { name="txshift"; version="0.3.6"; sha256="16ffkzgy9x1ng6338mb4flg3xy3cc32lrhqmb7rgpzs2fb0h20zr"; depends=[assertthat data_table ggplot2 hal9001 haldensify latex2exp lspline mvtnorm Rdpack scales stringr]; broken = true; };
+  uFTIR = derive2 { name="uFTIR"; version="0.1.4"; sha256="1blgwn6i0dadmr7vml6rbniv103mgr9hgx2dwgcxbagfyv00ah24"; depends=[raster Rcpp RcppArmadillo sp]; broken = true; };
   unfoldr = derive2 { name="unfoldr"; version="0.7.1"; sha256="1khas7d04g4y2kwldnsja5xk1n5mys2s66pln3l0gqlsbk67na12"; depends=[]; broken = true; };
   usethis2 = derive2 { name="usethis2"; version="0.2.0"; sha256="0ljvfgwg73y71yvyz2pp4c1rzgiqk1x7kmgswxa1ay05zwdgyi0x"; depends=[microservices purrr usethis withr]; broken = true; };
   viewshed3d = derive2 { name="viewshed3d"; version="4.0.0"; sha256="039xx39w3k3hckf0qci7j1364s47vja5s18siqjh6c5yy1w8q737"; depends=[data_table hyper_fit lidR nabor pkgcond plotrix pracma raster rgl sp viridis]; broken = true; };
   vmsbase = derive2 { name="vmsbase"; version="2.2.1"; sha256="1xxn0vm9r8kiix6whlc12r0wanf6acrl9a86h44nwm019xfmlfyp"; depends=[AMORE cairoDevice chron cluster DBI ecodist fields foreign ggmap ggplot2 gmt gsubfn gWidgets2 gWidgets2RGtk2 intervals mapdata maps maptools marmap outliers PBSmapping plotrix R6 RSQLite sp sqldf VennDiagram]; broken = true; };
   water = derive2 { name="water"; version="0.8"; sha256="0qglf922dlgi41jzz3sivq7ckmzl8axqjfg4klcgnddycmm3ha5j"; depends=[raster rgdal sp]; broken = true; };
-  wnominate = derive2 { name="wnominate"; version="1.2.5"; sha256="0pvw36jzx90z7ah4f7cyf95csdn5x7n9rh3ddsppa61y1dmjsn5k"; depends=[pscl]; broken = true; };
   x12GUI = derive2 { name="x12GUI"; version="0.13.0"; sha256="1mga7g9gwb3nv2qs27lz4n9rp6j3svads28hql88sxaif6is3nk1"; depends=[cairoDevice Hmisc lattice RGtk2 stringr x12]; broken = true; };
 }
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix
index f48d41e25f2bb..1c9c479edd474 100644
--- a/pkgs/development/r-modules/default.nix
+++ b/pkgs/development/r-modules/default.nix
@@ -15,14 +15,17 @@ let
   #
   # some packages, e.g. cncaGUI, require X running while installation,
   # so that we use xvfb-run if requireX is true.
-  mkDerive = {mkHomepage, mkUrls}: args:
+  mkDerive = {mkHomepage, mkUrls, hydraPlatforms ? null}: args:
+    let hydraPlatforms' = hydraPlatforms; in
       lib.makeOverridable ({
         name, version, sha256,
         depends ? [],
         doCheck ? true,
         requireX ? false,
         broken ? false,
-        hydraPlatforms ? R.meta.platforms
+        platforms ? R.meta.platforms,
+        hydraPlatforms ? if hydraPlatforms' != null then hydraPlatforms' else platforms,
+        maintainers ? []
       }: buildRPackage {
     name = "${name}-${version}";
     src = fetchurl {
@@ -33,9 +36,10 @@ let
     propagatedBuildInputs = depends;
     nativeBuildInputs = depends;
     meta.homepage = mkHomepage (args // { inherit name; });
-    meta.platforms = R.meta.platforms;
+    meta.platforms = platforms;
     meta.hydraPlatforms = hydraPlatforms;
     meta.broken = broken;
+    meta.maintainers = maintainers;
   });
 
   # Templates for generating Bioconductor and CRAN packages
@@ -54,12 +58,14 @@ let
     mkUrls = {name, version, biocVersion}: [
       "mirror://bioc/${biocVersion}/data/annotation/src/contrib/${name}_${version}.tar.gz"
     ];
+    hydraPlatforms = [];
   };
   deriveBiocExp = mkDerive {
     mkHomepage = {name, ...}: "http://www.bioconductor.org/packages/${name}.html";
     mkUrls = {name, version, biocVersion}: [
       "mirror://bioc/${biocVersion}/data/experiment/src/contrib/${name}_${version}.tar.gz"
     ];
+    hydraPlatforms = [];
   };
   deriveCran = mkDerive {
     mkHomepage = {name, snapshot, ...}: "http://mran.revolutionanalytics.com/snapshot/${snapshot}/web/packages/${name}/";
@@ -110,6 +116,26 @@ let
       })
     ) overrides;
 
+  # Overrides package definitions with maintainers.
+  # For example,
+  #
+  # overrideMaintainers {
+  #   foo = [ lib.maintainers.jsmith ]
+  # } old
+  #
+  # results in
+  #
+  # {
+  #   foo = old.foo.override {
+  #     maintainers = [ lib.maintainers.jsmith ];
+  #   };
+  # }
+  overrideMaintainers = overrides: old:
+    lib.mapAttrs (name: value:
+      (builtins.getAttr name old).override {
+        maintainers = value;
+      }) overrides;
+
   # Overrides package definitions with new R dependencies.
   # For example,
   #
@@ -250,7 +276,8 @@ let
       old5 = old4 // (overrideNativeBuildInputs packagesWithNativeBuildInputs old4);
       old6 = old5 // (overrideBuildInputs packagesWithBuildInputs old5);
       old7 = old6 // (overrideBroken brokenPackages old6);
-      old = old7;
+      old8 = old7 // (overrideMaintainers packagesWithMaintainers old7);
+      old = old8;
     in old // (otherOverrides old new);
 
   # Recursive override pattern.
@@ -266,6 +293,15 @@ let
 
   # tweaks for the individual packages and "in self" follow
 
+  packagesWithMaintainers = with lib.maintainers; {
+    data_table = [ jbedo ];
+    BiocManager = [ jbedo ];
+    ggplot2 = [ jbedo ];
+    svaNUMT = [ jbedo ];
+    svaRetro = [ jbedo ];
+    StructuralVariantAnnotation = [ jbedo ];
+  };
+
   packagesWithRDepends = {
     FactoMineR = [ self.car ];
     pander = [ self.codetools ];
@@ -309,7 +345,6 @@ let
     gert = [ pkgs.libgit2 ];
     haven = with pkgs; [ libiconv zlib.dev ];
     h5vc = [ pkgs.zlib.dev ];
-    HDF5Array = [ pkgs.zlib.dev ];
     HiCseg = [ pkgs.gsl ];
     imager = [ pkgs.x11 ];
     iBMQ = [ pkgs.gsl ];
@@ -454,6 +489,9 @@ let
     trackViewer = [ pkgs.zlib.dev ];
     themetagenomics = [ pkgs.zlib.dev ];
     NanoMethViz = [ pkgs.zlib.dev ];
+    RcppMeCab = [ pkgs.pkg-config ];
+    HilbertVisGUI = with pkgs; [ pkg-config which ];
+    textshaping = [ pkgs.pkg-config ];
   };
 
   packagesWithBuildInputs = {
@@ -601,6 +639,14 @@ let
     PoissonBinomial = [ pkgs.fftw.dev ];
     rrd = [ pkgs.rrdtool ];
     flowWorkspace = [ pkgs.zlib.dev ];
+    RcppMeCab = [ pkgs.mecab ];
+    PING = [ pkgs.gsl ];
+    RcppAlgos = [ pkgs.gmp.dev ];
+    RcppBigIntAlgos = [ pkgs.gmp.dev ];
+    HilbertVisGUI = [ pkgs.gnome2.gtkmm.dev ];
+    textshaping = with pkgs; [ harfbuzz.dev freetype.dev fribidi libpng ];
+    DropletUtils = [ pkgs.zlib.dev ];
+    RMariaDB = [ pkgs.libmysqlclient.dev ];
   };
 
   packagesRequiringX = [
@@ -622,6 +668,7 @@ let
     "biplotbootGUI"
     "blender"
     "cairoDevice"
+    "canceR"
     "CCTpack"
     "cncaGUI"
     "cocorresp"
@@ -730,6 +777,7 @@ let
     "RcmdrPlugin_EcoVirtual"
     "RcmdrPlugin_EZR"
     "RcmdrPlugin_FactoMineR"
+    "RcmdrPlugin_FuzzyClust"
     "RcmdrPlugin_HH"
     "RcmdrPlugin_IPSUR"
     "RcmdrPlugin_KMggplot2"
@@ -737,6 +785,7 @@ let
     "RcmdrPlugin_MA"
     "RcmdrPlugin_MPAStats"
     "RcmdrPlugin_orloca"
+    "RcmdrPlugin_PcaRobust"
     "RcmdrPlugin_plotByGroup"
     "RcmdrPlugin_pointG"
     "RcmdrPlugin_ROC"
@@ -751,7 +800,6 @@ let
     "RcmdrPlugin_UCA"
     "recluster"
     "relimp"
-    "rgl"
     "RHRV"
     "rich"
     "RNCEP"
@@ -785,6 +833,7 @@ let
     "tspmeta"
     "TTAinterfaceTrendAnalysis"
     "twiddler"
+    "uHMM"
     "vcdExtra"
     "VecStatGraphs3D"
     "vegan"
@@ -848,11 +897,11 @@ let
   # Packages which cannot be installed due to lack of dependencies or other reasons.
   brokenPackages = [
     "av"
-    "rgl"
     "NetLogoR"
-    "x13binary"
     "valse"
     "HierO"
+    "HIBAG"
+    "HiveR"
 
     # Impure network access during build
     "waddR"
@@ -1062,6 +1111,11 @@ let
         export LIB_DIR=${pkgs.v8}/lib
         patchShebangs configure
       '';
+
+      R_MAKEVARS_SITE = lib.optionalString (pkgs.system == "aarch64-linux")
+        (pkgs.writeText "Makevars" ''
+          CXX14PICFLAGS = -fPIC
+        '');
     });
 
     acs = old.acs.overrideDerivation (attrs: {
@@ -1194,13 +1248,6 @@ let
       '';
     });
 
-    MatchIt = old.MatchIt.overrideDerivation (attrs: {
-      patches = [ (pkgs.fetchpatch {
-        url = "https://github.com/kosukeimai/MatchIt/commit/8c15a1afa16b74eb04a45e7e46f8aca64ed89bcb.patch";
-        sha256 = "sha256-3UI60n49xuX6LniHpTLOUSsHCEAQ7f1FMBVH0jNlW60=";
-      }) ];
-    });
-
     h2o = old.h2o.overrideDerivation (attrs: {
       preConfigure = ''
         # prevent download of jar file during install and postpone to first use
@@ -1238,6 +1285,18 @@ let
         patchShebangs configure
       '';
     });
+
+    ChIPXpress = old.ChIPXpress.override { hydraPlatforms = []; };
+
+    rgl = old.rgl.overrideDerivation (attrs: {
+      RGL_USE_NULL = "true";
+    });
+
+    Rrdrand = old.Rrdrand.override { platforms = lib.platforms.x86_64 ++ lib.platforms.x86; };
+
+    RandomFieldsUtils = old.RandomFieldsUtils.override { platforms = lib.platforms.x86_64 ++ lib.platforms.x86; };
+
+    flowClust = old.flowClust.override { platforms = lib.platforms.x86_64 ++ lib.platforms.x86; };
   };
 in
   self
diff --git a/pkgs/development/r-modules/generic-builder.nix b/pkgs/development/r-modules/generic-builder.nix
index 7201bab40e129..880fff44ed644 100644
--- a/pkgs/development/r-modules/generic-builder.nix
+++ b/pkgs/development/r-modules/generic-builder.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation ({
   installPhase = ''
     runHook preInstall
     mkdir -p $out/library
-    $rCommand CMD INSTALL $installFlags --configure-args="$configureFlags" -l $out/library .
+    $rCommand CMD INSTALL --built-timestamp='1970-01-01 00:00:00 UTC' $installFlags --configure-args="$configureFlags" -l $out/library .
     runHook postInstall
   '';
 
diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix
index f389ebb4578e4..64b9d9ca4c223 100644
--- a/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/pkgs/development/ruby-modules/gem-config/default.nix
@@ -26,7 +26,7 @@
 , file, libvirt, glib, vips, taglib, libopus, linux-pam, libidn, protobuf, fribidi, harfbuzz
 , bison, flex, pango, python3, patchelf, binutils, freetds, wrapGAppsHook, atk
 , bundler, libsass, libexif, libselinux, libsepol, shared-mime-info, libthai, libdatrie
-, CoreServices, DarwinTools, cctools
+, CoreServices, DarwinTools, cctools, libtool
 }@args:
 
 let
@@ -280,7 +280,7 @@ in
   };
 
   grpc = attrs: {
-    nativeBuildInputs = [ pkg-config ];
+    nativeBuildInputs = [ pkg-config ] ++ lib.optional stdenv.isDarwin libtool;
     buildInputs = [ openssl ];
     hardeningDisable = [ "format" ];
     NIX_CFLAGS_COMPILE = toString [
@@ -297,6 +297,9 @@ in
     postPatch = ''
       substituteInPlace Makefile \
         --replace '-Wno-invalid-source-encoding' ""
+    '' + lib.optionalString stdenv.isDarwin ''
+      substituteInPlace src/ruby/ext/grpc/extconf.rb \
+        --replace "ENV['AR'] = 'libtool -o' if RUBY_PLATFORM =~ /darwin/" ""
     '';
   };
 
@@ -570,7 +573,7 @@ in
   };
 
   rugged = attrs: {
-    nativeBuildInputs = [ cmake pkg-config which ];
+    nativeBuildInputs = [ cmake pkg-config which ] ++ lib.optional stdenv.isDarwin libiconv;
     buildInputs = [ openssl libssh2 zlib ];
     dontUseCmakeConfigure = true;
   };
@@ -676,11 +679,5 @@ in
 
   zookeeper = attrs: {
     buildInputs = lib.optionals stdenv.isDarwin [ cctools ];
-    dontBuild = false;
-    postPatch = ''
-      sed -i ext/extconf.rb -e "4a \
-        FileUtils.cp '${./zookeeper-ftbfs-with-gcc-8.patch}', 'patches/zkc-3.4.5-gcc-8.patch'
-      "
-    '';
   };
 }
diff --git a/pkgs/development/ruby-modules/gem-config/zookeeper-ftbfs-with-gcc-8.patch b/pkgs/development/ruby-modules/gem-config/zookeeper-ftbfs-with-gcc-8.patch
deleted file mode 100644
index badb76ccfd203..0000000000000
--- a/pkgs/development/ruby-modules/gem-config/zookeeper-ftbfs-with-gcc-8.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- zkc-3.4.5/c/src/zookeeper.c 2019-09-13 12:05:20.647034862 +0200
-+++ zkc-3.4.5/c/src/zookeeper.c 2019-09-13 12:05:49.125360269 +0200
-@@ -3418,7 +3418,7 @@
- 
- static const char* format_endpoint_info(const struct sockaddr_storage* ep)
- {
--    static char buf[128];
-+    static char buf[128 + 6]; // include space for the port :xxxxxx
-     char addrstr[128];
-     void *inaddr;
- #ifdef WIN32
diff --git a/pkgs/development/ruby-modules/with-packages/Gemfile b/pkgs/development/ruby-modules/with-packages/Gemfile
index a476912cdd7fe..ca8e09704a11c 100644
--- a/pkgs/development/ruby-modules/with-packages/Gemfile
+++ b/pkgs/development/ruby-modules/with-packages/Gemfile
@@ -97,6 +97,7 @@ source 'https://rubygems.org' do
   gem 'patron'
   gem 'pcaprub'
   gem 'pg'
+  gem 'prettier'
   gem 'pry'
   gem 'pry-byebug'
   gem 'pry-doc'
diff --git a/pkgs/development/tools/air/default.nix b/pkgs/development/tools/air/default.nix
index 1950b969d66d2..712f7ad1ca09a 100644
--- a/pkgs/development/tools/air/default.nix
+++ b/pkgs/development/tools/air/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "air";
-  version = "1.27.3";
+  version = "1.27.8";
 
   src = fetchFromGitHub {
     owner = "cosmtrek";
     repo = "air";
     rev = "v${version}";
-    sha256 = "sha256-QO3cPyr2FqCdoiax/V0fe7kRwT61T3efnfO8uWp8rRM=";
+    sha256 = "sha256-CVx4TDDAVIrJ3lnD2AIuxhmTV+/sIA0viX20zFkznNc=";
   };
 
-  vendorSha256 = "sha256-B7AgUFjiW3P1dU88u3kswbCQJ7Qq7rgPlX+b+3Pq1L4=";
+  vendorSha256 = "sha256-dloXz1hiKAQUmSQv1rLbE5vYrZpKAcwakC71AFXWZqM=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/tools/alloy/default.nix b/pkgs/development/tools/alloy/default.nix
index 1dade32ac64d4..92f7e80951285 100644
--- a/pkgs/development/tools/alloy/default.nix
+++ b/pkgs/development/tools/alloy/default.nix
@@ -1,16 +1,20 @@
 { lib, stdenv, fetchurl, jre, makeWrapper, makeDesktopItem }:
 
-let generic = { major, version, src }:
-
+let generic = { version, sha256 }:
   stdenv.mkDerivation rec {
-    name = "${nameMajor}-${version}";
-    nameMajor = "alloy${major}";
+    pname = "alloy${lib.versions.major version}";
+    inherit version;
+
+    src = fetchurl {
+      inherit sha256;
+      url = "https://github.com/AlloyTools/org.alloytools.alloy/releases/download/v${version}/org.alloytools.alloy.dist.jar";
+    };
 
     desktopItem = makeDesktopItem rec {
-      name = nameMajor;
+      name = pname;
       exec = name;
       icon = name;
-      desktopName = "Alloy ${major}";
+      desktopName = "Alloy ${lib.versions.major version}";
       genericName = "Relational modelling tool";
       comment = meta.description;
       categories = "Development;IDE;Education;";
@@ -19,14 +23,14 @@ let generic = { major, version, src }:
     nativeBuildInputs = [ makeWrapper ];
 
     buildCommand = ''
-      jar=$out/share/alloy/${nameMajor}.jar
+      jar=$out/share/alloy/${pname}.jar
       install -Dm644 ${src} $jar
 
       mkdir -p $out/bin
-      makeWrapper ${jre}/bin/java $out/bin/${nameMajor} --add-flags \
-       "-jar $jar"
+      makeWrapper ${jre}/bin/java $out/bin/${pname} --add-flags \
+        "-jar $jar"
 
-      install -Dm644 ${./icon.png} $out/share/pixmaps/${nameMajor}.png
+      install -Dm644 ${./icon.png} $out/share/pixmaps/${pname}.png
       cp -r ${desktopItem}/share/applications $out/share
     '';
 
@@ -50,22 +54,14 @@ let generic = { major, version, src }:
   };
 
 in rec {
-  alloy4 = let version = "4.2_2015-02-22"; in generic {
-    major = "4";
-    inherit version;
-    src = fetchurl {
-      sha256 = "0p93v8jwx9prijpikkgmfdzb9qn8ljmvga5d9wvrkxddccjx9k28";
-      url = "http://alloytools.org/download/alloy${version}.jar";
-    };
+  alloy5 = generic rec {
+    version = "5.1.0";
+    sha256 = "02k9khs4k5nc86x9pp5k3vcb0kiwdgcin46mlap4fycnr673xd53";
   };
 
-  alloy5 = let version = "5.1.0"; in generic {
-    major = "5";
-    inherit version;
-    src = fetchurl {
-      sha256 = "02k9khs4k5nc86x9pp5k3vcb0kiwdgcin46mlap4fycnr673xd53";
-      url = "https://github.com/AlloyTools/org.alloytools.alloy/releases/download/v${version}/org.alloytools.alloy.dist.jar";
-    };
+  alloy6 = generic rec {
+    version = "6.0.0";
+    sha256 = "sha256-rA7mNxcu0DWkykMyfV4JwFmQqg0HOIcwjjD4jCRxNww=";
   };
 
   alloy = alloy5;
diff --git a/pkgs/development/tools/ammonite/default.nix b/pkgs/development/tools/ammonite/default.nix
index a31a6478a761a..13b0e8d257058 100644
--- a/pkgs/development/tools/ammonite/default.nix
+++ b/pkgs/development/tools/ammonite/default.nix
@@ -9,7 +9,7 @@ let
   common = { scalaVersion, sha256 }:
     stdenv.mkDerivation rec {
       pname = "ammonite";
-      version = "2.4.1";
+      version = "2.5.0";
 
       src = fetchurl {
         url =
@@ -74,7 +74,7 @@ let
           with a lot of ergonomic improvements and configurability
           that may be familiar to people coming from IDEs or other REPLs such as IPython or Zsh.
         '';
-        homepage = "https://www.lihaoyi.com/Ammonite/";
+        homepage = "https://github.com/com-lihaoyi/Ammonite";
         license = licenses.mit;
         platforms = platforms.all;
         maintainers = [ maintainers.nequissimus ];
@@ -83,10 +83,10 @@ let
 in {
   ammonite_2_12 = common {
     scalaVersion = "2.12";
-    sha256 = "5n9q/7d/PwDJfBPITYyDua24+fci6bi1oG5dSw8A244=";
+    sha256 = "sha256-JTW1xb+eCb0yhzrA1ntmalP88JoUo+KrjOBvs+cuE/A=";
   };
   ammonite_2_13 = common {
     scalaVersion = "2.13";
-    sha256 = "RIuNyWvwNM39/rczUH328K5ky5hePflokW/VP603j+I=";
+    sha256 = "sha256-l5kGPP8tuYi16t6u8ZeAY54yqAWJZR5UuopSGQ69v9Y=";
   };
 }
diff --git a/pkgs/development/tools/analysis/actionlint/default.nix b/pkgs/development/tools/analysis/actionlint/default.nix
index 137c966349caf..7b525b412054a 100644
--- a/pkgs/development/tools/analysis/actionlint/default.nix
+++ b/pkgs/development/tools/analysis/actionlint/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "actionlint";
-  version = "1.6.6";
+  version = "1.6.8";
 
   subPackages = [ "cmd/actionlint" ];
 
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "rhysd";
     repo = "actionlint";
     rev = "v${version}";
-    sha256 = "17c6952cjdpbl70lnn34pl3njrvpqmdbgnrm1q69kx94bni1slnz";
+    sha256 = "sha256-wjLY40bxpoMk6YIG/4KbjxSWUDVNn3cX5OcsgfEPjzk=";
   };
 
-  vendorSha256 = "1i7442n621jmc974b73pfz1gyqw74ilpg1zz16yxqpfh5c958m7n";
+  vendorSha256 = "sha256-J/DlugisnCvbYpqMQuyISyiKHB0hepHrQKsnzSes2zs=";
 
   nativeBuildInputs = [ ronn installShellFiles ];
 
diff --git a/pkgs/development/tools/analysis/checkov/default.nix b/pkgs/development/tools/analysis/checkov/default.nix
index 421d9cb8c1ee4..fdd6fefd76005 100644
--- a/pkgs/development/tools/analysis/checkov/default.nix
+++ b/pkgs/development/tools/analysis/checkov/default.nix
@@ -39,16 +39,6 @@ let
         doCheck = false;
       });
 
-      cyclonedx-python-lib = super.cyclonedx-python-lib.overridePythonAttrs (oldAttrs: rec {
-        version = "0.6.2";
-        src = fetchFromGitHub {
-          owner = "CycloneDX";
-          repo = "cyclonedx-python-lib";
-          rev = "v${version}";
-          sha256 = "10cmp2aqbnbiyrsq5r9p7ppghqj3zyg612d2dldk6m85li3jr500";
-        };
-      });
-
     };
   };
 in
@@ -56,13 +46,13 @@ with py.pkgs;
 
 buildPythonApplication rec {
   pname = "checkov";
-  version = "2.0.594";
+  version = "2.0.701";
 
   src = fetchFromGitHub {
     owner = "bridgecrewio";
     repo = pname;
     rev = version;
-    sha256 = "sha256-wbqFEeqe0RXLfiaIIG6UyBLgFOG3kUWKLVoeKoSktuI=";
+    sha256 = "sha256-jhMhi+72lB70WXzPRWfhZjqmkEjvBMjKcnVic41PDJk=";
   };
 
   nativeBuildInputs = with py.pkgs; [
@@ -73,6 +63,7 @@ buildPythonApplication rec {
     aiodns
     aiohttp
     aiomultiprocess
+    argcomplete
     bc-python-hcl2
     boto3
     cachetools
diff --git a/pkgs/development/tools/analysis/codeql/default.nix b/pkgs/development/tools/analysis/codeql/default.nix
index 92d2a0ddd3328..7491b5892744e 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.7.0";
+  version = "2.7.3";
 
   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";
-    sha256 = "sha256-KsgtuQ0ovccZTMm19LrxRU/JOcLzfkL6VRa6W7Tprnw=";
+    sha256 = "sha256-wvN9NODw8JV30mDGhs7qlCoyp3Z3bJSGUfQ6+GtE5kE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/analysis/cppcheck/default.nix b/pkgs/development/tools/analysis/cppcheck/default.nix
index 5e7f6a3f2d56d..f7e6f040ba2e9 100644
--- a/pkgs/development/tools/analysis/cppcheck/default.nix
+++ b/pkgs/development/tools/analysis/cppcheck/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cppcheck";
-  version = "2.5";
+  version = "2.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-s+KJpA11A4bFOXgy2eVkRMYBFwwBjU7QZgSPZ0oVKxo=";
+    sha256 = "sha256-rQuvhVgpVBdwCCekraG+cqxR9PUs/wm5pjVQHzTpaKI=";
   };
 
   buildInputs = [ pcre ] ++ lib.optionals withZ3 [ z3 ];
diff --git a/pkgs/development/tools/analysis/cpplint/0001-Remove-pytest-runner-version-pin.patch b/pkgs/development/tools/analysis/cpplint/0001-Remove-pytest-runner-version-pin.patch
new file mode 100644
index 0000000000000..3b602421d100b
--- /dev/null
+++ b/pkgs/development/tools/analysis/cpplint/0001-Remove-pytest-runner-version-pin.patch
@@ -0,0 +1,16 @@
+diff --git a/setup.py b/setup.py
+index aef5c4e..030ea14 100755
+--- a/setup.py
++++ b/setup.py
+@@ -73,7 +73,7 @@ setup(name='cpplint',
+       long_description=open('README.rst').read(),
+       license='BSD-3-Clause',
+       setup_requires=[
+-          "pytest-runner==5.2"
++          "pytest-runner"
+       ],
+       tests_require=test_required,
+       # extras_require allow pip install .[dev]
+-- 
+2.31.1
+
diff --git a/pkgs/development/tools/analysis/cpplint/default.nix b/pkgs/development/tools/analysis/cpplint/default.nix
index f880d8fa7b7fa..2f665b8395ba5 100644
--- a/pkgs/development/tools/analysis/cpplint/default.nix
+++ b/pkgs/development/tools/analysis/cpplint/default.nix
@@ -2,16 +2,18 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "cpplint";
-  version = "1.5.1";
+  version = "1.5.5";
 
   # Fetch from github instead of pypi, since the test cases are not in the pypi archive
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "0k927mycj1k4l3fbxrk597bhcjl2nrpaas1imbjgk64cyq8dv7lh";
+    sha256 = "sha256-JXz2Ufo7JSceZVqYwCRkuAsOR08znZlIUk8GCLAyiI4=";
   };
 
+  patches = [ ./0001-Remove-pytest-runner-version-pin.patch ];
+
   postPatch = ''
     patchShebangs cpplint_unittest.py
   '';
diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index 54cea3727f213..56929f16c4777 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.163.0";
+  version = "0.168.0";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "flow";
     rev = "v${version}";
-    sha256 = "sha256-8O7EuYMNEa0M3HS0U10VbkevxL/cnySXHkT1WdI4Z84=";
+    sha256 = "sha256:0bd5xja547gwjh7zn26l52mssp6l9djd0lfc581zj30yx07aimi5";
   };
 
   installPhase = ''
diff --git a/pkgs/development/tools/analysis/frama-c/default.nix b/pkgs/development/tools/analysis/frama-c/default.nix
index a1c7265e05dd5..1b627376aca02 100644
--- a/pkgs/development/tools/analysis/frama-c/default.nix
+++ b/pkgs/development/tools/analysis/frama-c/default.nix
@@ -31,12 +31,12 @@ in
 
 stdenv.mkDerivation rec {
   pname = "frama-c";
-  version = "23.1";
-  slang   = "Vanadium";
+  version = "24.0";
+  slang   = "Chromium";
 
   src = fetchurl {
     url    = "https://frama-c.com/download/frama-c-${version}-${slang}.tar.gz";
-    sha256 = "1rgkq9sg436smw005ag0j6y3xryhjn18a07m5wjfrfp0s1438nnj";
+    sha256 = "sha256:0x1xgip50jdz1phsb9rzwf2ra8lshn1hmd9g967xia402wrg3sjf";
   };
 
   preConfigure = lib.optionalString stdenv.cc.isClang "configureFlagsArray=(\"--with-cpp=clang -E -C\")";
diff --git a/pkgs/development/tools/analysis/include-what-you-use/default.nix b/pkgs/development/tools/analysis/include-what-you-use/default.nix
index 8ba381bc5443f..bc1be4e5ba5e8 100644
--- a/pkgs/development/tools/analysis/include-what-you-use/default.nix
+++ b/pkgs/development/tools/analysis/include-what-you-use/default.nix
@@ -3,10 +3,10 @@
 stdenv.mkDerivation rec {
   pname = "include-what-you-use";
   # Also bump llvmPackages in all-packages.nix to the supported version!
-  version = "0.16";
+  version = "0.17";
 
   src = fetchurl {
-    sha256 = "sha256-jW/JslU0O8Hl7EWeOVEt8dUcYOA1YpheAHYDYRn/Whw=";
+    sha256 = "sha256-7KfAT4tBa2OF7QDjNmmn+kaTzSbLcrUizeVYgo6wxmU=";
     url = "${meta.homepage}/downloads/${pname}-${version}.src.tar.gz";
   };
 
diff --git a/pkgs/development/tools/analysis/pmd/default.nix b/pkgs/development/tools/analysis/pmd/default.nix
index 3aa37d650cb20..64ab4a315de11 100644
--- a/pkgs/development/tools/analysis/pmd/default.nix
+++ b/pkgs/development/tools/analysis/pmd/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pmd";
-  version = "6.30.0";
+  version = "6.41.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/pmd/pmd-bin-${version}.zip";
-    sha256 = "sha256-LgQmoUdsG5sAyHs9YyiaOFonMFaVtHKdp/KvSAWSy8w=";
+    sha256 = "sha256-kXyUukqLFIdaBpO+oimyrzmGm6bNwoQaRDIoMtZq45k=";
   };
 
   nativeBuildInputs = [ unzip makeWrapper ];
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index 8cbfed0b16f9f..c50f75c154eac 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -34,21 +34,31 @@ let
     rev = "3c5eaba46dab72ecb7d5f5b865a13fdeee95b464";
     sha256 = "sha256-alcGEi+D8CptXzfznnuxQKCvU2mbzn2sQge5jSqLVpg=";
   };
+  armv7 = fetchFromGitHub {
+    owner = "radareorg";
+    repo = "vector35-arch-armv7";
+    rev = "dde39f69ffea19fc37e681874b12cb4707bc4f30";
+
+    sha256 = "sha256-bnWQc0dScM9rhIdzf+iVXvMqYWq/bguEAUQPaZRgdlU=";
+  };
 in
 stdenv.mkDerivation rec {
   pname = "radare2";
-  version = "5.4.2";
+  version = "5.5.4";
 
   src = fetchFromGitHub {
     owner = "radare";
     repo = "radare2";
     rev = version;
-    sha256 = "sha256-5GvJ7J+pAL8GIZ4Tv09wdGyihfMm1bUABhmf7ozQoxc=";
+    sha256 = "sha256-zELmNpbT1JCt0UAzHwzcTDN9QZTLQY0+rG9zVRWxiFg=";
   };
 
   preBuild = ''
     cp -r ${arm64} libr/asm/arch/arm/v35arm64/arch-arm64
     chmod -R +w libr/asm/arch/arm/v35arm64/arch-arm64
+
+    cp -r ${armv7} libr/asm/arch/arm/v35arm64/arch-armv7
+    chmod -R +w libr/asm/arch/arm/v35arm64/arch-armv7
   '';
 
   postFixup = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/tools/analysis/tartan/default.nix b/pkgs/development/tools/analysis/tartan/default.nix
new file mode 100644
index 0000000000000..0ac4bf3252823
--- /dev/null
+++ b/pkgs/development/tools/analysis/tartan/default.nix
@@ -0,0 +1,52 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, llvmPackages
+, gobject-introspection
+, glib
+, unstableGitUpdater
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tartan";
+  version = "unstable-2021-12-23";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    owner = "tartan";
+    repo = "tartan";
+    rev = "bd4ea95d8b3ce1258491e9fac7fcc37d2b241a16";
+    sha256 = "l3duPt8Kh/JljzOV+Dm26XbS7gZ+mmFfYUYofWSJRyo=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    gobject-introspection
+    glib
+    llvmPackages.libclang
+    llvmPackages.libllvm
+  ];
+
+  passthru = {
+    updateScript = unstableGitUpdater {
+      # The updater tries src.url by default, which does not exist for fetchFromGitLab (fetchurl).
+      url = "https://gitlab.freedesktop.org/tartan/tartan.git";
+    };
+  };
+
+  meta = with lib; {
+    description = "Tools and Clang plugins for developing code with GLib";
+    homepage = "https://freedesktop.org/wiki/Software/tartan";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ jtojnar ];
+  };
+}
diff --git a/pkgs/development/tools/analysis/tflint/default.nix b/pkgs/development/tools/analysis/tflint/default.nix
index 3d5eec0d9373b..951e95b1477c0 100644
--- a/pkgs/development/tools/analysis/tflint/default.nix
+++ b/pkgs/development/tools/analysis/tflint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tflint";
-  version = "0.33.1";
+  version = "0.34.1";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1n1xw2h544r6bap2drgrip9i8nl5zg5gcdic8qj3y93ppisgzqml";
+    sha256 = "sha256-ltxFduUr+poi4tEjViQXCbe+j3fUdvBG8CTaM7VdpK0=";
   };
 
-  vendorSha256 = "0fq4nbd0w1nb98g321mns76a60dwwhf4w7g589qz87z29vdy0jbk";
+  vendorSha256 = "sha256-iZdWCSkdKG0SXcUtZ0DgDGk25vESlv2dSbcK1gUVTV8=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/analysis/tfsec/default.nix b/pkgs/development/tools/analysis/tfsec/default.nix
index 9d60879d88032..75d1b3035ee31 100644
--- a/pkgs/development/tools/analysis/tfsec/default.nix
+++ b/pkgs/development/tools/analysis/tfsec/default.nix
@@ -5,13 +5,13 @@
 
 buildGoPackage rec {
   pname = "tfsec";
-  version = "0.60.0";
+  version = "0.63.1";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-LBU2nXpmktjyy3x5cBGsrCM6k+6BEZaoDybHVrIrVBo=";
+    sha256 = "sha256-khAVb+uwr3qyAWjvMjPG//+FKQJ9qoVwmhsej++IQhs=";
   };
 
   goPackagePath = "github.com/aquasecurity/tfsec";
diff --git a/pkgs/development/tools/analysis/valgrind/default.nix b/pkgs/development/tools/analysis/valgrind/default.nix
index 341aba8e00b5f..6e736df235f06 100644
--- a/pkgs/development/tools/analysis/valgrind/default.nix
+++ b/pkgs/development/tools/analysis/valgrind/default.nix
@@ -1,4 +1,7 @@
-{ lib, stdenv, fetchurl, perl, gdb, cctools, xnu, bootstrap_cmds }:
+{ lib, stdenv, fetchurl, fetchpatch
+, autoreconfHook, perl
+, gdb, cctools, xnu, bootstrap_cmds
+}:
 
 stdenv.mkDerivation rec {
   pname = "valgrind";
@@ -9,16 +12,25 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-AIWaoTp3Lt33giIl9LRu4NOa++Bx0yd42k2ZmECB9/U=";
   };
 
+  patches = [
+    # Fix tests on Musl.
+    # https://bugs.kde.org/show_bug.cgi?id=445300
+    (fetchpatch {
+      url = "https://bugsfiles.kde.org/attachment.cgi?id=143535";
+      sha256 = "036zyk30rixjvpylw3c7n171n4gpn6zcp7h6ya2dz4h5r478l9i6";
+    })
+  ];
+
   outputs = [ "out" "dev" "man" "doc" ];
 
-  hardeningDisable = [ "stackprotector" ];
+  hardeningDisable = [ "pie" "stackprotector" ];
 
   # GDB is needed to provide a sane default for `--db-command'.
   # Perl is needed for `callgrind_{annotate,control}'.
   buildInputs = [ gdb perl ]  ++ lib.optionals (stdenv.isDarwin) [ bootstrap_cmds xnu ];
 
   # Perl is also a native build input.
-  nativeBuildInputs = [ perl ];
+  nativeBuildInputs = [ autoreconfHook perl ];
 
   enableParallelBuilding = true;
   separateDebugInfo = stdenv.isLinux;
diff --git a/pkgs/development/tools/aws-sam-cli/default.nix b/pkgs/development/tools/aws-sam-cli/default.nix
index 7b05004002965..d38ac9ba88c92 100644
--- a/pkgs/development/tools/aws-sam-cli/default.nix
+++ b/pkgs/development/tools/aws-sam-cli/default.nix
@@ -5,11 +5,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "aws-sam-cli";
-  version = "1.35.0";
+  version = "1.36.0";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ojJoC8UuZDVm6CDmYbPoO0e+1QAYa0UcekYEd/MGFRM=";
+    sha256 = "sha256-GJbBhe1l25ZHGWVu1o2oJvd/BNv8dv7aIYor/ebFl9U=";
   };
 
   # Tests are not included in the PyPI package
@@ -51,7 +51,7 @@ python3.pkgs.buildPythonApplication rec {
       --replace "aws_lambda_builders==" "aws-lambda-builders #" \
       --replace "typing_extensions==" "typing-extensions #" \
       --replace "regex==" "regex #" \
-      --replace "tzlocal==3.0" "tzlocal==2.*"
+      --replace "tzlocal==3.0" "tzlocal"
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/tools/azure-functions-core-tools/default.nix b/pkgs/development/tools/azure-functions-core-tools/default.nix
index f72c875e65e7b..55720d2831103 100644
--- a/pkgs/development/tools/azure-functions-core-tools/default.nix
+++ b/pkgs/development/tools/azure-functions-core-tools/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     mkdir -p $out/bin
-    cp -prd * $out/bin
+    cp -prd *.dll *.so gozip func $out/bin
     patchelf \
       --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
       --set-rpath "${libPath}" "$out/bin/func"
diff --git a/pkgs/development/tools/backblaze-b2/default.nix b/pkgs/development/tools/backblaze-b2/default.nix
index 70bf668765baa..b46ad5efc881e 100644
--- a/pkgs/development/tools/backblaze-b2/default.nix
+++ b/pkgs/development/tools/backblaze-b2/default.nix
@@ -1,23 +1,13 @@
 { fetchFromGitHub, lib, python3Packages }:
 
-let
-  python3Packages2 = python3Packages.override {
-    overrides = self: super: {
-      arrow = self.callPackage ../../python-modules/arrow/2.nix { };
-    };
-  };
-in
-let
-  python3Packages = python3Packages2; # two separate let … in to avoid infinite recursion
-in
 python3Packages.buildPythonApplication rec {
   pname = "backblaze-b2";
-  version = "3.0.3";
+  version = "3.2.0";
 
   src = python3Packages.fetchPypi {
     inherit version;
     pname = "b2";
-    sha256 = "sha256-asrhinANGlTsSBbtGToOxTRGGSCf+1c4VWnoE3ezoIA=";
+    sha256 = "sha256-dE4eLTNU6O0DscwN8+m1UaG46dbI0DiWzeJK49GUvKA=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/bacon/default.nix b/pkgs/development/tools/bacon/default.nix
index 8d69bab6a175b..c31529fd4e1d2 100644
--- a/pkgs/development/tools/bacon/default.nix
+++ b/pkgs/development/tools/bacon/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bacon";
-  version = "1.2.2";
+  version = "1.2.4";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-pcwu6UJr8pgTVXMefXCtET2DFaNIixmwCUYlv1GF8Ck=";
+    sha256 = "sha256-G1vds0156dYTxB6I155NiTuI9JnqZ7Uh3f5vHNTOMsk=";
   };
 
-  cargoSha256 = "sha256-zpVnF1InSVEZfhch7g5w2WgFYXwp9xVjEV3gvwx+Ndo=";
+  cargoSha256 = "sha256-ytS+U+Tbyz2cMgXN/rZ5Kf4WgoIr8RIuBwLLUJ2XtHU=";
 
   buildInputs = lib.optional stdenv.isDarwin CoreServices;
 
diff --git a/pkgs/development/tools/bazelisk/default.nix b/pkgs/development/tools/bazelisk/default.nix
index 00852a4c90f17..2ba077fa9439c 100644
--- a/pkgs/development/tools/bazelisk/default.nix
+++ b/pkgs/development/tools/bazelisk/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "bazelisk";
-  version = "1.10.1";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-MpAYJSDAbyh4aGW+hRrny5+bXZ96cNcUhqJkgY8bdD8=";
+    sha256 = "sha256-9J49+1fI3wmHQqYgdoGgaAuVMA9eG7wrFe7dQEectvI=";
   };
 
-  vendorSha256 = "sha256-5qpeAD4VFsR8iJlRiNTncOdq39lq3MU6gSLu3G/BcPU=";
+  vendorSha256 = "sha256-+zJEB9FyVvxHdwR/dAn56jrMbgVBhlbziVFe2WCQFfE=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/boost-build/darwin-default-toolset.patch b/pkgs/development/tools/boost-build/darwin-default-toolset.patch
deleted file mode 100644
index ebe3f8d2e1ea2..0000000000000
--- a/pkgs/development/tools/boost-build/darwin-default-toolset.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/build-system.jam b/src/build-system.jam
-index 60425c54..c6842217 100644
---- a/src/build-system.jam
-+++ b/src/build-system.jam
-@@ -644,7 +644,7 @@ local rule should-clean-project ( project )
-             }
-             else if [ os.name ] = MACOSX
-             {
--                default-toolset = darwin ;
-+                default-toolset = clang-darwin ;
-             }
-         }
diff --git a/pkgs/development/tools/boost-build/default.nix b/pkgs/development/tools/boost-build/default.nix
index c6c66d4d212d3..044589a9664b4 100644
--- a/pkgs/development/tools/boost-build/default.nix
+++ b/pkgs/development/tools/boost-build/default.nix
@@ -33,10 +33,11 @@ stdenv.mkDerivation {
     sourceRoot="$sourceRoot/tools/build"
   '';
 
-  patches = [
-    # Upstream defaults to gcc on darwin, but we use clang.
-    ./darwin-default-toolset.patch
-  ];
+  # Upstream defaults to gcc on darwin, but we use clang.
+  postPatch = ''
+    substituteInPlace src/build-system.jam \
+    --replace "default-toolset = darwin" "default-toolset = clang-darwin"
+  '';
 
   nativeBuildInputs = [
     bison
diff --git a/pkgs/development/tools/build-managers/apache-ant/default.nix b/pkgs/development/tools/build-managers/apache-ant/default.nix
index 7c05fcf60a376..e752604721401 100644
--- a/pkgs/development/tools/build-managers/apache-ant/default.nix
+++ b/pkgs/development/tools/build-managers/apache-ant/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation rec {
     ''; # */
 
   meta = {
-    homepage = "http://ant.apache.org/";
+    homepage = "https://ant.apache.org/";
     description = "A Java-based build tool";
 
     longDescription = ''
diff --git a/pkgs/development/tools/build-managers/apache-maven/default.nix b/pkgs/development/tools/build-managers/apache-maven/default.nix
index e76d424953b8a..24f2a54f42e52 100644
--- a/pkgs/development/tools/build-managers/apache-maven/default.nix
+++ b/pkgs/development/tools/build-managers/apache-maven/default.nix
@@ -4,13 +4,13 @@ assert jdk != null;
 
 stdenv.mkDerivation rec {
   pname = "apache-maven";
-  version = "3.8.3";
+  version = "3.8.4";
 
   builder = ./builder.sh;
 
   src = fetchurl {
     url = "mirror://apache/maven/maven-3/${version}/binaries/${pname}-${version}-bin.tar.gz";
-    sha256 = "sha256-DxWX0RCFuP6T2EZSoYxt7qcezp+rukWgLPZgDHdY/Vs=";
+    sha256 = "sha256-LNycUZQnuyD9wlvvWpBjt5Dkq9kw57FLTp9IY9b58Tw=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/build-managers/bazel/README.md b/pkgs/development/tools/build-managers/bazel/README.md
new file mode 100644
index 0000000000000..69ec0e30e1578
--- /dev/null
+++ b/pkgs/development/tools/build-managers/bazel/README.md
@@ -0,0 +1,7 @@
+# The Bazel build tool
+
+https://bazel.build/
+
+The bazel tool requires regular maintenance, especially under darwin, so we created a maintainers team.
+
+Please ping @NixOS/bazel in your github PR/issue to increase your chance of a quick turnaround, thanks!
diff --git a/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix b/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
index db3c3d053da0b..9c64b4a078c9a 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "bazel-remote";
-  version = "2.2.0";
+  version = "2.3.3";
 
   src = fetchFromGitHub {
     owner = "buchgr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zRZlpZWGZpBHc5DtqxeVc4xmJDKTem54/Fx/41i57c4=";
+    sha256 = "sha256-3ZN/SCTQ5k0X4cqnrpp8Yt1QDnYkT2RbMLKpDfdWaxk=";
   };
 
-  vendorSha256 = "sha256-N0UfC/M6EBbnpBpOTNkGgFEJpTA3VQ2jg9M7kxQQQc8=";
+  vendorSha256 = "sha256-XBsYSA0i0q/mp8sQh9h//pjs+TbEDc7UIdNU24/Qemo=";
 
   doCheck = false;
 
@@ -22,7 +22,7 @@ buildGoModule rec {
     homepage = "https://github.com/buchgr/bazel-remote";
     description = "A remote HTTP/1.1 cache for Bazel";
     license = licenses.asl20;
-    maintainers = [ maintainers.uri-canva ];
+    maintainers = lib.teams.bazel.members;
     platforms = platforms.darwin ++ platforms.linux;
   };
 }
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
index 3a3a39b3eeeec..0ecf6300eb233 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
@@ -149,7 +149,7 @@ stdenv'.mkDerivation rec {
     homepage = "https://github.com/bazelbuild/bazel/";
     description = "Build tool that builds code quickly and reliably";
     license = licenses.asl20;
-    maintainers = [ maintainers.mboes ];
+    maintainers = lib.teams.bazel.members;
     inherit platforms;
   };
 
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
index ee39a7c6f7b23..3adf52ec905ea 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
@@ -150,7 +150,7 @@ stdenv'.mkDerivation rec {
     homepage = "https://github.com/bazelbuild/bazel/";
     description = "Build tool that builds code quickly and reliably";
     license = licenses.asl20;
-    maintainers = [ maintainers.mboes ];
+    maintainers = lib.teams.bazel.members;
     inherit platforms;
   };
 
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
index a08f7a62eae68..d9c93c2265f5a 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
@@ -164,7 +164,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/bazelbuild/bazel/";
     description = "Build tool that builds code quickly and reliably";
     license = licenses.asl20;
-    maintainers = [ maintainers.mboes ];
+    maintainers = lib.teams.bazel.members;
     inherit platforms;
   };
 
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_4/actions_path.patch b/pkgs/development/tools/build-managers/bazel/bazel_4/actions_path.patch
new file mode 100644
index 0000000000000..1fa1e57483339
--- /dev/null
+++ b/pkgs/development/tools/build-managers/bazel/bazel_4/actions_path.patch
@@ -0,0 +1,41 @@
+diff --git a/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java b/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
+index 6fff2af..7e2877e 100644
+--- a/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
++++ b/src/main/java/com/google/devtools/build/lib/exec/local/PosixLocalEnvProvider.java
+@@ -47,6 +47,16 @@ public final class PosixLocalEnvProvider implements LocalEnvProvider {
+       Map<String, String> env, BinTools binTools, String fallbackTmpDir) {
+     ImmutableMap.Builder<String, String> result = ImmutableMap.builder();
+     result.putAll(Maps.filterKeys(env, k -> !k.equals("TMPDIR")));
++
++    // In case we are running on NixOS.
++    // If bash is called with an unset PATH on this platform,
++    // it will set it to /no-such-path and default tools will be missings.
++    // See, https://github.com/NixOS/nixpkgs/issues/94222
++    // So we ensure that minimal dependencies are present.
++    if (!env.containsKey("PATH")){
++        result.put("PATH", "@actionsPathPatch@");
++    }
++ 
+     String p = clientEnv.get("TMPDIR");
+     if (Strings.isNullOrEmpty(p)) {
+       // Do not use `fallbackTmpDir`, use `/tmp` instead. This way if the user didn't export TMPDIR
+index 95642767c6..39d3c62461 100644
+--- a/src/main/java/com/google/devtools/build/lib/exec/local/XcodeLocalEnvProvider.java
++++ b/src/main/java/com/google/devtools/build/lib/exec/local/XcodeLocalEnvProvider.java
+@@ -74,6 +74,16 @@ public final class XcodeLocalEnvProvider implements LocalEnvProvider {
+
+     ImmutableMap.Builder<String, String> newEnvBuilder = ImmutableMap.builder();
+     newEnvBuilder.putAll(Maps.filterKeys(env, k -> !k.equals("TMPDIR")));
++
++    // In case we are running on NixOS.
++    // If bash is called with an unset PATH on this platform,
++    // it will set it to /no-such-path and default tools will be missings.
++    // See, https://github.com/NixOS/nixpkgs/issues/94222
++    // So we ensure that minimal dependencies are present.
++    if (!env.containsKey("PATH")){
++      newEnvBuilder.put("PATH", "@actionsPathPatch@");
++    }
++
+     String p = clientEnv.get("TMPDIR");
+     if (Strings.isNullOrEmpty(p)) {
+       // Do not use `fallbackTmpDir`, use `/tmp` instead. This way if the user didn't export TMPDIR
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
index 0e021d05ac37a..d7943ef25844e 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, callPackage, lib, fetchurl, fetchFromGitHub, installShellFiles
+{ stdenv, callPackage, lib, fetchurl, fetchpatch, fetchFromGitHub, installShellFiles
 , runCommand, runCommandCC, makeWrapper, recurseIntoAttrs
 # this package (through the fixpoint glass)
 , bazel_self
@@ -27,12 +27,12 @@
 }:
 
 let
-  version = "4.2.1";
+  version = "4.2.2";
   sourceRoot = ".";
 
   src = fetchurl {
     url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
-    sha256 = "Eup6oR4r2xLeHc65k5oi6W9aSAQ3yxfBIzedjg/fXoI=";
+    sha256 = "mYHQ1To1bE6HlihHdQqXyegFTkYIVHSABsgPDX4rLTM=";
   };
 
   # Update with `eval $(nix-build -A bazel.updater)`,
@@ -75,7 +75,7 @@ let
     for i in ${builtins.toString srcDeps}; do cp $i $out/$(stripHash $i); done
   '';
 
-  defaultShellPath = lib.makeBinPath
+  defaultShellUtils =
     # Keep this list conservative. For more exotic tools, prefer to use
     # @rules_nixpkgs to pull in tools from the nix repository. Example:
     #
@@ -103,7 +103,27 @@ let
     #        ],
     #     )
     #
-    [ bash coreutils findutils gawk gnugrep gnutar gnused gzip which unzip file zip python27 python3 ];
+    # Some of the scripts explicitly depend on Python 2.7. Otherwise, we
+    # default to using python3. Therefore, both python27 and python3 are
+    # runtime dependencies.
+    [
+      bash
+      coreutils
+      file
+      findutils
+      gawk
+      gnugrep
+      gnused
+      gnutar
+      gzip
+      python27
+      python3
+      unzip
+      which
+      zip
+    ];
+
+  defaultShellPath = lib.makeBinPath defaultShellUtils;
 
   # Java toolchain used for the build and tests
   javaToolchain = "@bazel_tools//tools/jdk:toolchain_${buildJdkName}";
@@ -177,7 +197,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/bazelbuild/bazel/";
     description = "Build tool that builds code quickly and reliably";
     license = licenses.asl20;
-    maintainers = [ maintainers.mboes ];
+    maintainers = lib.teams.bazel.members;
     inherit platforms;
   };
 
@@ -208,6 +228,11 @@ stdenv.mkDerivation rec {
       strictActionEnvPatch = defaultShellPath;
     })
 
+    (substituteAll {
+      src = ./actions_path.patch;
+      actionsPathPatch = defaultShellPath;
+    })
+
     # bazel reads its system bazelrc in /etc
     # override this path to a builtin one
     (substituteAll {
@@ -227,7 +252,7 @@ stdenv.mkDerivation rec {
       runLocal = name: attrs: script:
       let
         attrs' = removeAttrs attrs [ "buildInputs" ];
-        buildInputs = [ python3 ] ++ (attrs.buildInputs or []);
+        buildInputs = [ python3 which ] ++ (attrs.buildInputs or []);
       in
       runCommandCC name ({
         inherit buildInputs;
@@ -350,32 +375,6 @@ stdenv.mkDerivation rec {
   # Bazel starts a local server and needs to bind a local address.
   __darwinAllowLocalNetworking = true;
 
-  # Bazel expects several utils to be available in Bash even without PATH. Hence this hack.
-  customBash = writeCBin "bash" ''
-    #include <stdio.h>
-    #include <stdlib.h>
-    #include <string.h>
-    #include <unistd.h>
-
-    extern char **environ;
-
-    int main(int argc, char *argv[]) {
-      char *path = getenv("PATH");
-      char *pathToAppend = "${defaultShellPath}";
-      char *newPath;
-      if (path != NULL) {
-        int length = strlen(path) + 1 + strlen(pathToAppend) + 1;
-        newPath = malloc(length * sizeof(char));
-        snprintf(newPath, length, "%s:%s", path, pathToAppend);
-      } else {
-        newPath = pathToAppend;
-      }
-      setenv("PATH", newPath, 1);
-      execve("${bash}/bin/bash", argv, environ);
-      return 0;
-    }
-  '';
-
   postPatch = let
 
     darwinPatches = ''
@@ -448,8 +447,8 @@ stdenv.mkDerivation rec {
         # We default to python3 where possible. See also `postFixup` where
         # python3 is added to $out/nix-support
         substituteInPlace "$path" \
-          --replace /bin/bash ${customBash}/bin/bash \
-          --replace "/usr/bin/env bash" ${customBash}/bin/bash \
+          --replace /bin/bash ${bash}/bin/bash \
+          --replace "/usr/bin/env bash" ${bash}/bin/bash \
           --replace "/usr/bin/env python" ${python3}/bin/python \
           --replace /usr/bin/env ${coreutils}/bin/env \
           --replace /bin/true ${coreutils}/bin/true
@@ -457,17 +456,17 @@ stdenv.mkDerivation rec {
 
       # bazel test runner include references to /bin/bash
       substituteInPlace tools/build_rules/test_rules.bzl \
-        --replace /bin/bash ${customBash}/bin/bash
+        --replace /bin/bash ${bash}/bin/bash
 
       for i in $(find tools/cpp/ -type f)
       do
         substituteInPlace $i \
-          --replace /bin/bash ${customBash}/bin/bash
+          --replace /bin/bash ${bash}/bin/bash
       done
 
       # Fixup scripts that generate scripts. Not fixed up by patchShebangs below.
       substituteInPlace scripts/bootstrap/compile.sh \
-          --replace /bin/bash ${customBash}/bin/bash
+          --replace /bin/bash ${bash}/bin/bash
 
       # add nix environment vars to .bazelrc
       cat >> .bazelrc <<EOF
@@ -488,6 +487,8 @@ stdenv.mkDerivation rec {
       build --host_javabase='@local_jdk//:jdk'
       build --host_java_toolchain='${javaToolchain}'
       build --verbose_failures
+      build --curses=no
+      build --sandbox_debug
       EOF
 
       # add the same environment vars to compile.sh
@@ -500,6 +501,8 @@ stdenv.mkDerivation rec {
           -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
           -e "/\$command \\\\$/a --host_java_toolchain='${javaToolchain}' \\\\" \
           -e "/\$command \\\\$/a --verbose_failures \\\\" \
+          -e "/\$command \\\\$/a --curses=no \\\\" \
+          -e "/\$command \\\\$/a --sandbox_debug \\\\" \
           -i scripts/bootstrap/compile.sh
 
       # This is necessary to avoid:
@@ -521,21 +524,18 @@ stdenv.mkDerivation rec {
     in lib.optionalString stdenv.hostPlatform.isDarwin darwinPatches
      + genericPatches;
 
-  buildInputs = [
-    buildJdk
-    python3
-  ];
+  buildInputs = [buildJdk] ++ defaultShellUtils;
 
   # when a command can’t be found in a bazel build, you might also
   # need to add it to `defaultShellPath`.
   nativeBuildInputs = [
+    coreutils
     installShellFiles
-    zip
+    makeWrapper
     python3
     unzip
-    makeWrapper
     which
-    customBash
+    zip
   ] ++ lib.optionals (stdenv.isDarwin) [ cctools libcxx CoreFoundation CoreServices Foundation ];
 
   # Bazel makes extensive use of symlinks in the WORKSPACE.
@@ -565,7 +565,7 @@ stdenv.mkDerivation rec {
     # Note that .bazelversion is always correct and is based on bazel-*
     # executable name, version checks should work fine
     export EMBED_LABEL="${version}- (@non-git)"
-    ${customBash}/bin/bash ./bazel_src/compile.sh
+    ${bash}/bin/bash ./bazel_src/compile.sh
     ./bazel_src/scripts/generate_bash_completion.sh \
         --bazel=./bazel_src/output/bazel \
         --output=./bazel_src/output/bazel-complete.bash \
@@ -657,16 +657,10 @@ stdenv.mkDerivation rec {
   '';
 
   # Save paths to hardcoded dependencies so Nix can detect them.
+  # This is needed because the templates get tar’d up into a .jar.
   postFixup = ''
     mkdir -p $out/nix-support
-    echo "${customBash} ${defaultShellPath}" >> $out/nix-support/depends
-    # The templates get tar’d up into a .jar,
-    # so nix can’t detect python is needed in the runtime closure
-    # Some of the scripts explicitly depend on Python 2.7. Otherwise, we
-    # default to using python3. Therefore, both python27 and python3 are
-    # runtime dependencies.
-    echo "${python27}" >> $out/nix-support/depends
-    echo "${python3}" >> $out/nix-support/depends
+    echo "${defaultShellPath}" >> $out/nix-support/depends
   '' + lib.optionalString stdenv.isDarwin ''
     echo "${cctools}" >> $out/nix-support/depends
   '';
diff --git a/pkgs/development/tools/build-managers/bazel/buildtools/default.nix b/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
index 5a71a40cfc7b7..00a9f54014341 100644
--- a/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "bazel-buildtools";
-  version = "4.2.3";
+  version = "4.2.4";
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = "buildtools";
     rev = version;
-    sha256 = "sha256-FRT8t7bBE98ya5P50UJWhq02XuDGBZCNd3wBOpnDWmo=";
+    sha256 = "sha256-Tt1inAViAFaV+o2A2yquPXEv5EiC2eJgNUnr7jBYq7w=";
   };
 
   vendorSha256 = "sha256-buMkRxVLlS2LBJGaGWeR41BsmE/0vgDS8s1VcRYN0fA=";
@@ -27,6 +27,8 @@ buildGoModule rec {
     description = "Tools for working with Google's bazel buildtool. Includes buildifier, buildozer, and unused_deps";
     homepage = "https://github.com/bazelbuild/buildtools";
     license = licenses.asl20;
-    maintainers = with maintainers; [ elasticdog uri-canva marsam ];
+    maintainers = with maintainers;
+      [ elasticdog uri-canva marsam ]
+      ++ lib.teams.bazel.members;
   };
 }
diff --git a/pkgs/development/tools/build-managers/bazel/cpp-test.nix b/pkgs/development/tools/build-managers/bazel/cpp-test.nix
index f4e03abdbc947..3f3faae25e2ec 100644
--- a/pkgs/development/tools/build-managers/bazel/cpp-test.nix
+++ b/pkgs/development/tools/build-managers/bazel/cpp-test.nix
@@ -44,6 +44,8 @@ let
       ${bazel}/bin/bazel \
         build --verbose_failures \
         --distdir=${distDir} \
+        --curses=no \
+        --sandbox_debug \
           //...
     '';
   };
diff --git a/pkgs/development/tools/build-managers/bazel/java-test.nix b/pkgs/development/tools/build-managers/bazel/java-test.nix
index 11931a197c0c2..9641a95c33b8b 100644
--- a/pkgs/development/tools/build-managers/bazel/java-test.nix
+++ b/pkgs/development/tools/build-managers/bazel/java-test.nix
@@ -50,6 +50,8 @@ let
           --java_toolchain='@bazel_tools//tools/jdk:toolchain_hostjdk8' \
           --javabase='@local_jdk//:jdk' \
           --verbose_failures \
+          --curses=no \
+          --sandbox_debug \
           //:ProjectRunner
     '';
   };
diff --git a/pkgs/development/tools/build-managers/bazel/protobuf-test.nix b/pkgs/development/tools/build-managers/bazel/protobuf-test.nix
index 3858a681659b2..d01e18887248d 100644
--- a/pkgs/development/tools/build-managers/bazel/protobuf-test.nix
+++ b/pkgs/development/tools/build-managers/bazel/protobuf-test.nix
@@ -169,6 +169,8 @@ let
           --java_toolchain='@bazel_tools//tools/jdk:toolchain_hostjdk8' \
           --javabase='@local_jdk//:jdk' \
           --verbose_failures \
+          --curses=no \
+          --sandbox_debug \
           //...
     '';
   };
diff --git a/pkgs/development/tools/build-managers/bear/default.nix b/pkgs/development/tools/build-managers/bear/default.nix
index 552cb0573665b..21f7512588c00 100644
--- a/pkgs/development/tools/build-managers/bear/default.nix
+++ b/pkgs/development/tools/build-managers/bear/default.nix
@@ -47,9 +47,6 @@ stdenv.mkDerivation rec {
     ./no-double-relative.patch
   ];
 
-  # 'path' is unavailable: introduced in macOS 10.15
-  CXXFLAGS = lib.optional (stdenv.hostPlatform.system == "x86_64-darwin") "-D_LIBCPP_DISABLE_AVAILABILITY";
-
   meta = with lib; {
     description = "Tool that generates a compilation database for clang tooling";
     longDescription = ''
diff --git a/pkgs/development/tools/build-managers/bloop/default.nix b/pkgs/development/tools/build-managers/bloop/default.nix
index 8710d390dea0a..ebb4bb5f36c32 100644
--- a/pkgs/development/tools/build-managers/bloop/default.nix
+++ b/pkgs/development/tools/build-managers/bloop/default.nix
@@ -3,6 +3,7 @@
 , coursier
 , autoPatchelfHook
 , installShellFiles
+, makeWrapper
 , jre
 , lib
 , zlib
@@ -10,76 +11,83 @@
 
 stdenv.mkDerivation rec {
   pname = "bloop";
-  version = "1.4.9";
+  version = "1.4.11";
 
   bloop-coursier-channel = fetchurl {
     url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bloop-coursier.json";
-    sha256 = "0yh9k98c0cq9ksi3g6rb1q1qblnhcznrc5z1y9ps8cvwv2lx8ly4";
+    sha256 = "CoF/1nggjaL17SWmWDcKicfgoyqpOSZUse8f+3TgD0E=";
   };
 
   bloop-bash = fetchurl {
     url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bash-completions";
-    sha256 = "1ldxlqv353gvhdn4yq7z506ywvnjv6fjsi8wigwhzg89876pwsys";
+    sha256 = "2mt+zUEJvQ/5ixxFLZ3Z0m7uDSj/YE9sg/uNMjamvdE=";
   };
 
   bloop-fish = fetchurl {
     url = "https://github.com/scalacenter/bloop/releases/download/v${version}/fish-completions";
-    sha256 = "1pa8h81l2498q8dbd83fzipr99myjwxpy8xdgzhvqzdmfv6aa4m0";
+    sha256 = "oBKlzHa1fbzhf60jfzuXvqaUb/xuoLYawigRQQOCSN0=";
   };
 
   bloop-zsh = fetchurl {
     url = "https://github.com/scalacenter/bloop/releases/download/v${version}/zsh-completions";
-    sha256 = "1xzg0qfkjdmzm3mvg82mc4iia8cl7b6vbl8ng4ir2xsz00zjrlsq";
+    sha256 = "WNMsPwBfd5EjeRbRtc06lCEVI2FVoLfrqL82OR0G7/c=";
   };
 
   bloop-coursier = stdenv.mkDerivation rec {
     name = "${pname}-coursier-${version}";
 
     platform = if stdenv.isLinux && stdenv.isx86_64 then "x86_64-pc-linux"
-               else if stdenv.isDarwin && stdenv.isx86_64 then "x86_64-apple-darwin"
-               else throw "unsupported platform";
+    else if stdenv.isDarwin && stdenv.isx86_64 then "x86_64-apple-darwin"
+    else throw "unsupported platform";
 
-    phases = [ "installPhase" ];
+    dontUnpack = true;
     installPhase = ''
+      runHook preInstall
+
       export COURSIER_CACHE=$(pwd)
       export COURSIER_JVM_CACHE=$(pwd)
 
       mkdir channel
       ln -s ${bloop-coursier-channel} channel/bloop.json
-      ${coursier}/bin/cs install --install-dir $out --install-platform ${platform} --default-channels=false --channel channel --only-prebuilt=true bloop
+      ${coursier}/bin/cs install --install-dir . --install-platform ${platform} --default-channels=false --channel channel --only-prebuilt=true bloop
+
+      # Only keeping the binary, we'll wrap it ourselves
+      # This guarantees the output of this fixed-output derivation doesn't have references to itself
+      install -D -m 0755 .bloop.aux $out
 
-      # Remove binary part of the coursier launcher script to make derivation output hash stable
-      sed -i '5,$ d' $out/bloop
-   '';
+      runHook postInstall
+    '';
 
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash = if stdenv.isLinux && stdenv.isx86_64 then "1hxyzf430g95l6qz1qlq8wvizvy6j3a7a9crb3lcxd67cpbg3x7i"
-      else if stdenv.isDarwin && stdenv.isx86_64 then "0x5yqf3i8y6s5h27yr0jkpvj6ch25ckx2802dmaxlgq6gz0fx6w2"
-      else throw "unsupported platform";
+    outputHash = if stdenv.isLinux && stdenv.isx86_64 then "0c02n779z4l7blzla5820bzfhblbp5nlizx9f8wns4miwnph357f"
+    else if stdenv.isDarwin && stdenv.isx86_64 then "1gy5k9ii86rxyv2v9if4n1clvmb1hi4ym32mp6miwgcjla10sv30"
+    else throw "unsupported platform";
   };
 
   dontUnpack = true;
-  nativeBuildInputs = [ autoPatchelfHook installShellFiles ];
+  nativeBuildInputs = [ autoPatchelfHook installShellFiles makeWrapper ];
   buildInputs = [ stdenv.cc.cc.lib zlib ];
   propagatedBuildInputs = [ jre ];
 
   installPhase = ''
+    runHook preInstall
+
     export COURSIER_CACHE=$(pwd)
     export COURSIER_JVM_CACHE=$(pwd)
 
-    mkdir -p $out/bin
-    cp ${bloop-coursier}/bloop $out/bloop
-    cp ${bloop-coursier}/.bloop.aux $out/.bloop.aux
-    ln -s $out/bloop $out/bin/bloop
+    install -D -m 0755 ${bloop-coursier} $out/.bloop-wrapped
 
-    # patch the bloop launcher so that it works when symlinked
-    sed "s|\$(dirname \"\$0\")|$out|" -i $out/bloop
+    makeWrapper $out/.bloop-wrapped $out/bin/bloop \
+      --set CS_NATIVE_LAUNCHER true \
+      --set IS_CS_INSTALLED_LAUNCHER true
 
     #Install completions
     installShellCompletion --name bloop --bash ${bloop-bash}
     installShellCompletion --name _bloop --zsh ${bloop-zsh}
     installShellCompletion --name bloop.fish --fish ${bloop-fish}
+
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -87,6 +95,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     description = "A Scala build server and command-line tool to make the compile and test developer workflows fast and productive in a build-tool-agnostic way";
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
-    maintainers = with maintainers; [ tomahna ];
+    maintainers = with maintainers; [ kubukoz tomahna ];
   };
 }
diff --git a/pkgs/development/tools/build-managers/cmake/2.8.nix b/pkgs/development/tools/build-managers/cmake/2.8.nix
index 9dabd7b35560d..ec03e285603fa 100644
--- a/pkgs/development/tools/build-managers/cmake/2.8.nix
+++ b/pkgs/development/tools/build-managers/cmake/2.8.nix
@@ -15,7 +15,8 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "cmake-${os useNcurses "cursesUI-"}${os useQt4 "qt4UI-"}${version}";
+  pname = "cmake${os useNcurses "-cursesUI"}${os useQt4 "-qt4UI"}";
+  inherit version;
 
   inherit majorVersion;
 
@@ -56,7 +57,7 @@ stdenv.mkDerivation rec {
     (concatMap (p: [ (p.dev or p) (p.out or p) ]) buildInputs);
 
   configureFlags = [
-    "--docdir=/share/doc/${name}"
+    "--docdir=/share/doc/${pname}-${version}"
     "--mandir=/share/man"
     "--system-libs"
     "--no-system-libarchive"
diff --git a/pkgs/development/tools/build-managers/cmake/default.nix b/pkgs/development/tools/build-managers/cmake/default.nix
index 33dbc25d9bf89..f74d0d46906da 100644
--- a/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/pkgs/development/tools/build-managers/cmake/default.nix
@@ -71,6 +71,7 @@ stdenv.mkDerivation rec {
   '';
 
   configureFlags = [
+    "CXXFLAGS=-Wno-elaborated-enum-base"
     "--docdir=share/doc/${pname}${version}"
   ] ++ (if useSharedLibraries then [ "--no-system-jsoncpp" "--system-libs" ] else [ "--no-system-libs" ]) # FIXME: cleanup
   ++ lib.optional withQt5 "--qt-gui"
diff --git a/pkgs/development/tools/build-managers/conan/default.nix b/pkgs/development/tools/build-managers/conan/default.nix
index 95994e0924db1..353f4d0f4e064 100644
--- a/pkgs/development/tools/build-managers/conan/default.nix
+++ b/pkgs/development/tools/build-managers/conan/default.nix
@@ -52,14 +52,14 @@ let newPython = python3.override {
 };
 
 in newPython.pkgs.buildPythonApplication rec {
-  version = "1.40.0";
+  version = "1.43.1";
   pname = "conan";
 
   src = fetchFromGitHub {
     owner = "conan-io";
     repo = "conan";
     rev = version;
-    sha256 = "1sb4w4wahasrwxkag1g79f135601sca6iafv4r4836f2vi48ka2d";
+    sha256 = "0jwi7smgy2d9m49igijqr2p4ncw5nksjbijj8fzjvf1lgxgnyjhr";
   };
 
   propagatedBuildInputs = with newPython.pkgs; [
diff --git a/pkgs/development/tools/build-managers/corrosion/default.nix b/pkgs/development/tools/build-managers/corrosion/default.nix
index 2285579b0bbd6..9f0421d3eee53 100644
--- a/pkgs/development/tools/build-managers/corrosion/default.nix
+++ b/pkgs/development/tools/build-managers/corrosion/default.nix
@@ -3,17 +3,18 @@
 , fetchFromGitHub
 , cmake
 , rustPlatform
+, libiconv
 }:
 
 stdenv.mkDerivation rec {
   pname = "corrosion";
-  version = "unstable-2021-02-23";
+  version = "unstable-2021-11-23";
 
   src = fetchFromGitHub {
     owner = "AndrewGaspar";
     repo = "corrosion";
-    rev = "e6c35c7e55a59c8223577b5abc4d253b4a82898b";
-    sha256 = "0vq6g3ggnqiln0q8gsr8rr5rrdgpfcgfly79jwcygxrviw37m44d";
+    rev = "f679545a63a8b214a415e086f910126ab66714fa";
+    sha256 = "sha256-K+QdhWc5n5mH6yxiQa/v5HsrqnWJ5SM93IprVpyCVO0=";
   };
 
   patches = [
@@ -27,9 +28,11 @@ stdenv.mkDerivation rec {
     inherit src;
     sourceRoot = "${src.name}/${cargoRoot}";
     name = "${pname}-${version}";
-    sha256 = "1fsq8zzzq28fj2fh92wmg8kmdj4y10mcpdmlgxsygy5lbh4xs13f";
+    sha256 = "sha256-ZvCRgXv+ASMIL00oc3luegV1qVNDieU9J7mbIhfayGk=";
   };
 
+  buildInputs = lib.optional stdenv.isDarwin libiconv;
+
   nativeBuildInputs = [
     cmake
   ] ++ (with rustPlatform; [
diff --git a/pkgs/development/tools/build-managers/gn/default.nix b/pkgs/development/tools/build-managers/gn/default.nix
index 3c0abb3edeab5..508a821d74950 100644
--- a/pkgs/development/tools/build-managers/gn/default.nix
+++ b/pkgs/development/tools/build-managers/gn/default.nix
@@ -1,64 +1,10 @@
-{ stdenv, lib, fetchgit, darwin, writeText
-, ninja, python3
-}:
+{ callPackage, ... } @ args:
 
-let
+callPackage ./generic.nix args {
   # Note: Please use the recommended version for Chromium, e.g.:
   # https://git.archlinux.org/svntogit/packages.git/tree/trunk/chromium-gn-version.sh?h=packages/gn
   rev = "fd3d768bcfd44a8d9639fe278581bd9851d0ce3a";
   revNum = "1718"; # git describe HEAD --match initial-commit | cut -d- -f3
   version = "2020-03-09";
   sha256 = "1asc14y8by7qcn10vbk467hvx93s30pif8r0brissl0sihsaqazr";
-
-  revShort = builtins.substring 0 7 rev;
-  lastCommitPosition = writeText "last_commit_position.h" ''
-    #ifndef OUT_LAST_COMMIT_POSITION_H_
-    #define OUT_LAST_COMMIT_POSITION_H_
-
-    #define LAST_COMMIT_POSITION_NUM ${revNum}
-    #define LAST_COMMIT_POSITION "${revNum} (${revShort})"
-
-    #endif  // OUT_LAST_COMMIT_POSITION_H_
-  '';
-
-in stdenv.mkDerivation {
-  pname = "gn-unstable";
-  inherit version;
-
-  src = fetchgit {
-    # Note: The TAR-Archives (+archive/${rev}.tar.gz) are not deterministic!
-    url = "https://gn.googlesource.com/gn";
-    inherit rev sha256;
-  };
-
-  nativeBuildInputs = [ ninja python3 ];
-  buildInputs = lib.optionals stdenv.isDarwin (with darwin; with apple_sdk.frameworks; [
-    libobjc
-    cctools
-
-    # frameworks
-    ApplicationServices
-    Foundation
-    AppKit
-  ]);
-
-  buildPhase = ''
-    python build/gen.py --no-last-commit-position
-    ln -s ${lastCommitPosition} out/last_commit_position.h
-    ninja -j $NIX_BUILD_CORES -C out gn
-  '';
-
-  installPhase = ''
-    install -vD out/gn "$out/bin/gn"
-  '';
-
-  setupHook = ./setup-hook.sh;
-
-  meta = with lib; {
-    description = "A meta-build system that generates build files for Ninja";
-    homepage = "https://gn.googlesource.com/gn";
-    license = licenses.bsd3;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ stesie matthewbauer primeos ];
-  };
 }
diff --git a/pkgs/development/tools/build-managers/gn/generic.nix b/pkgs/development/tools/build-managers/gn/generic.nix
new file mode 100644
index 0000000000000..4214bb822b994
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gn/generic.nix
@@ -0,0 +1,60 @@
+{ stdenv, lib, fetchgit, darwin, writeText
+, ninja, python3
+, ...
+}:
+
+{ rev, revNum, version, sha256 }:
+
+let
+  revShort = builtins.substring 0 7 rev;
+  lastCommitPosition = writeText "last_commit_position.h" ''
+    #ifndef OUT_LAST_COMMIT_POSITION_H_
+    #define OUT_LAST_COMMIT_POSITION_H_
+
+    #define LAST_COMMIT_POSITION_NUM ${revNum}
+    #define LAST_COMMIT_POSITION "${revNum} (${revShort})"
+
+    #endif  // OUT_LAST_COMMIT_POSITION_H_
+  '';
+
+in stdenv.mkDerivation {
+  pname = "gn-unstable";
+  inherit version;
+
+  src = fetchgit {
+    # Note: The TAR-Archives (+archive/${rev}.tar.gz) are not deterministic!
+    url = "https://gn.googlesource.com/gn";
+    inherit rev sha256;
+  };
+
+  nativeBuildInputs = [ ninja python3 ];
+  buildInputs = lib.optionals stdenv.isDarwin (with darwin; with apple_sdk.frameworks; [
+    libobjc
+    cctools
+
+    # frameworks
+    ApplicationServices
+    Foundation
+    AppKit
+  ]);
+
+  buildPhase = ''
+    python build/gen.py --no-last-commit-position
+    ln -s ${lastCommitPosition} out/last_commit_position.h
+    ninja -j $NIX_BUILD_CORES -C out gn
+  '';
+
+  installPhase = ''
+    install -vD out/gn "$out/bin/gn"
+  '';
+
+  setupHook = ./setup-hook.sh;
+
+  meta = with lib; {
+    description = "A meta-build system that generates build files for Ninja";
+    homepage = "https://gn.googlesource.com/gn";
+    license = licenses.bsd3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ stesie matthewbauer primeos ];
+  };
+}
diff --git a/pkgs/development/tools/build-managers/gn/rev1924.nix b/pkgs/development/tools/build-managers/gn/rev1924.nix
new file mode 100644
index 0000000000000..1b17328f2e095
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gn/rev1924.nix
@@ -0,0 +1,8 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix args {
+  rev = "24e2f7df92641de0351a96096fb2c490b2436bb8";
+  revNum = "1924"; # git describe HEAD --match initial-commit | cut -d- -f3
+  version = "2021-08-08";
+  sha256 = "1lwkyhfhw0zd7daqz466n7x5cddf0danr799h4jg3s0yvd4galjl";
+}
diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix
index 443e91325af1f..b94330d658ceb 100644
--- a/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/pkgs/development/tools/build-managers/gradle/default.nix
@@ -1,73 +1,126 @@
-{ lib, stdenv, fetchurl, unzip, jdk, java ? jdk, makeWrapper }:
+{ jdk8, jdk11, jdk17 }:
 
 rec {
-  gradleGen = { version, nativeVersion, sha256 }: stdenv.mkDerivation {
-    pname = "gradle";
-    inherit version;
+  gen =
 
-    src = fetchurl {
-      inherit sha256;
-      url = "https://services.gradle.org/distributions/gradle-${version}-bin.zip";
-    };
+    { version, nativeVersion, sha256, defaultJava ? jdk8 }:
+
+    { lib, stdenv, fetchurl, makeWrapper, unzip, java ? defaultJava
+    , javaToolchains ? [ ], ncurses5, ncurses6 }:
+
+    stdenv.mkDerivation rec {
+      pname = "gradle";
+      inherit version;
+
+      src = fetchurl {
+        inherit sha256;
+        url =
+          "https://services.gradle.org/distributions/gradle-${version}-bin.zip";
+      };
+
+      dontBuild = true;
+
+      nativeBuildInputs = [ makeWrapper unzip ];
+      buildInputs = [ java ];
+
+      # NOTE: For more information on toolchains,
+      # see https://docs.gradle.org/current/userguide/toolchains.html
+      installPhase = with builtins;
+        let
+          toolchain = rec {
+            var = x: "JAVA_TOOLCHAIN_NIX_${toString x}";
+            vars = (lib.imap0 (i: x: ("${var i} ${x}")) javaToolchains);
+            varNames = lib.imap0 (i: x: var i) javaToolchains;
+            property = " -Porg.gradle.java.installations.fromEnv='${
+                 concatStringsSep "," varNames
+               }'";
+          };
+          vars = concatStringsSep "\n" (map (x: "  --set ${x} \\")
+            ([ "JAVA_HOME ${java}" ] ++ toolchain.vars));
+        in ''
+          mkdir -pv $out/lib/gradle/
+          cp -rv lib/ $out/lib/gradle/
+
+          gradle_launcher_jar=$(echo $out/lib/gradle/lib/gradle-launcher-*.jar)
+          test -f $gradle_launcher_jar
+          makeWrapper ${java}/bin/java $out/bin/gradle \
+            ${vars}
+            --add-flags "-classpath $gradle_launcher_jar org.gradle.launcher.GradleMain${toolchain.property}"
+        '';
 
-    dontBuild = true;
-
-    nativeBuildInputs = [ makeWrapper unzip ];
-    buildInputs = [ java ];
-
-    installPhase = ''
-      mkdir -pv $out/lib/gradle/
-      cp -rv lib/ $out/lib/gradle/
-
-      gradle_launcher_jar=$(echo $out/lib/gradle/lib/gradle-launcher-*.jar)
-      test -f $gradle_launcher_jar
-      makeWrapper ${java}/bin/java $out/bin/gradle \
-        --set JAVA_HOME ${java} \
-        --add-flags "-classpath $gradle_launcher_jar org.gradle.launcher.GradleMain"
-    '';
-
-    fixupPhase = if (!stdenv.isLinux) then ":" else
-    let arch = if stdenv.is64bit then "amd64" else "i386"; in
-    ''
-      mkdir patching
-      pushd patching
-      jar xf $out/lib/gradle/lib/native-platform-linux-${arch}-${nativeVersion}.jar
-      patchelf --set-rpath "${stdenv.cc.cc.lib}/lib:${stdenv.cc.cc.lib}/lib64" net/rubygrapefruit/platform/linux-${arch}/libnative-platform.so
-      jar cf native-platform-linux-${arch}-${nativeVersion}.jar .
-      mv native-platform-linux-${arch}-${nativeVersion}.jar $out/lib/gradle/lib/
-      popd
-
-      # The scanner doesn't pick up the runtime dependency in the jar.
-      # Manually add a reference where it will be found.
-      mkdir $out/nix-support
-      echo ${stdenv.cc.cc} > $out/nix-support/manual-runtime-dependencies
-    '';
-
-    meta = with lib; {
-      description = "Enterprise-grade build system";
-      longDescription = ''
-        Gradle is a build system which offers you ease, power and freedom.
-        You can choose the balance for yourself. It has powerful multi-project
-        build support. It has a layer on top of Ivy that provides a
-        build-by-convention integration for Ivy. It gives you always the choice
-        between the flexibility of Ant and the convenience of a
-        build-by-convention behavior.
+      dontFixup = !stdenv.isLinux;
+
+      fixupPhase = let arch = if stdenv.is64bit then "amd64" else "i386";
+      in ''
+        for variant in "" "-ncurses5" "-ncurses6"; do
+          mkdir "patching$variant"
+          pushd "patching$variant"
+          jar xf $out/lib/gradle/lib/native-platform-linux-${arch}$variant-${nativeVersion}.jar
+          patchelf \
+            --set-rpath "${stdenv.cc.cc.lib}/lib64:${lib.makeLibraryPath [ stdenv.cc.cc ncurses5 ncurses6 ]}" \
+            net/rubygrapefruit/platform/linux-${arch}$variant/libnative-platform*.so
+          jar cf native-platform-linux-${arch}$variant-${nativeVersion}.jar .
+          mv native-platform-linux-${arch}$variant-${nativeVersion}.jar $out/lib/gradle/lib/
+          popd
+        done
+
+        # The scanner doesn't pick up the runtime dependency in the jar.
+        # Manually add a reference where it will be found.
+        mkdir $out/nix-support
+        echo ${stdenv.cc.cc} > $out/nix-support/manual-runtime-dependencies
+        # Gradle will refuse to start without _both_ 5 and 6 versions of ncurses.
+        echo ${ncurses5} >> $out/nix-support/manual-runtime-dependencies
+        echo ${ncurses6} >> $out/nix-support/manual-runtime-dependencies
       '';
-      homepage = "https://www.gradle.org/";
-      changelog = "https://docs.gradle.org/${version}/release-notes.html";
-      downloadPage = "https://gradle.org/next-steps/?version=${version}";
-      license = licenses.asl20;
-      platforms = platforms.unix;
-      maintainers = with maintainers; [ lorenzleutgeb ];
+
+      meta = with lib; {
+        description = "Enterprise-grade build system";
+        longDescription = ''
+          Gradle is a build system which offers you ease, power and freedom.
+          You can choose the balance for yourself. It has powerful multi-project
+          build support. It has a layer on top of Ivy that provides a
+          build-by-convention integration for Ivy. It gives you always the choice
+          between the flexibility of Ant and the convenience of a
+          build-by-convention behavior.
+        '';
+        homepage = "https://www.gradle.org/";
+        changelog = "https://docs.gradle.org/${version}/release-notes.html";
+        downloadPage = "https://gradle.org/next-steps/?version=${version}";
+        license = licenses.asl20;
+        platforms = platforms.unix;
+        maintainers = with maintainers; [ lorenzleutgeb liff ];
+      };
     };
+
+  # NOTE: Default JDKs are LTS versions and according to
+  # https://docs.gradle.org/current/userguide/compatibility.html
+
+  gradle_7 = gen {
+    version = "7.3.3";
+    nativeVersion = "0.22-milestone-21";
+    sha256 = "00h3z0vxc4hv31sc71gb88r8yabyqgz304wpr0bxhbx2d14f11mm";
+    defaultJava = jdk17;
   };
 
-  gradle_latest = gradle_7_3;
+  gradle_6 = gen {
+    version = "6.9.2";
+    nativeVersion = "0.22-milestone-20";
+    sha256 = "13qyk3f6namw27ynh6nxljxpk9r3l12vxl3f0qpglprdf3c6ydcb";
+    defaultJava = jdk11;
+  };
 
-  gradle_7_3 = gradleGen (import ./gradle-7.3-spec.nix);
-  gradle_6_9 = gradleGen (import ./gradle-6.9.1-spec.nix);
+  # NOTE: No GitHub Release for the following versions. `update.sh` will not work.
+  gradle_5 = gen {
+    version = "5.6.4";
+    nativeVersion = "0.18";
+    sha256 = "03d86bbqd19h9xlanffcjcy3vg1k5905vzhf9mal9g21603nfc0z";
+    defaultJava = jdk11;
+  };
 
-  # NOTE: No GitHub Release for the following versions. Update.sh will not work.
-  gradle_5_6 = gradleGen (import ./gradle-5.6.4-spec.nix);
-  gradle_4_10 = gradleGen (import ./gradle-4.10.3-spec.nix);
+  gradle_4 = gen {
+    version = "4.10.3";
+    nativeVersion = "0.14";
+    sha256 = "0vhqxnk0yj3q9jam5w4kpia70i4h0q4pjxxqwynh3qml0vrcn9l6";
+    defaultJava = jdk8;
+  };
 }
diff --git a/pkgs/development/tools/build-managers/gradle/gradle-4.10.3-spec.nix b/pkgs/development/tools/build-managers/gradle/gradle-4.10.3-spec.nix
deleted file mode 100644
index 598deab87e060..0000000000000
--- a/pkgs/development/tools/build-managers/gradle/gradle-4.10.3-spec.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  version = "4.10.3";
-  nativeVersion = "0.14";
-  sha256 = "0vhqxnk0yj3q9jam5w4kpia70i4h0q4pjxxqwynh3qml0vrcn9l6";
-}
diff --git a/pkgs/development/tools/build-managers/gradle/gradle-5.6.4-spec.nix b/pkgs/development/tools/build-managers/gradle/gradle-5.6.4-spec.nix
deleted file mode 100644
index 41e567c1449cb..0000000000000
--- a/pkgs/development/tools/build-managers/gradle/gradle-5.6.4-spec.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  version = "5.6.4";
-  nativeVersion = "0.18";
-  sha256 = "03d86bbqd19h9xlanffcjcy3vg1k5905vzhf9mal9g21603nfc0z";
-}
diff --git a/pkgs/development/tools/build-managers/gradle/gradle-6.9.1-spec.nix b/pkgs/development/tools/build-managers/gradle/gradle-6.9.1-spec.nix
deleted file mode 100644
index d343d6bf27267..0000000000000
--- a/pkgs/development/tools/build-managers/gradle/gradle-6.9.1-spec.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  version = "6.9.1";
-  nativeVersion = "0.22-milestone-20";
-  sha256 = "1zmjfwlh34b65rdx9izgavw3qwqqwm39h5siyj2bf0m55111a4lc";
-}
diff --git a/pkgs/development/tools/build-managers/gradle/gradle-7.2-spec.nix b/pkgs/development/tools/build-managers/gradle/gradle-7.2-spec.nix
deleted file mode 100644
index 1237fb562bdbf..0000000000000
--- a/pkgs/development/tools/build-managers/gradle/gradle-7.2-spec.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  version = "7.2";
-  nativeVersion = "0.22-milestone-21";
-  sha256 = "1pg6w5czysywsgdvmll5bwd2p6y99cn5sn3gw69cps9mkjd710gm";
-}
diff --git a/pkgs/development/tools/build-managers/gradle/gradle-7.3-spec.nix b/pkgs/development/tools/build-managers/gradle/gradle-7.3-spec.nix
deleted file mode 100644
index 2e7b007329700..0000000000000
--- a/pkgs/development/tools/build-managers/gradle/gradle-7.3-spec.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  version = "7.3";
-  nativeVersion = "0.22-milestone-21";
-  sha256 = "04741q7avmn7rv9h5s6dqj4ibnvdylxrlhvj9wb5kixx96nm53yy";
-}
diff --git a/pkgs/development/tools/build-managers/mage/default.nix b/pkgs/development/tools/build-managers/mage/default.nix
index cf719f2c0ca17..06d38588dbda2 100644
--- a/pkgs/development/tools/build-managers/mage/default.nix
+++ b/pkgs/development/tools/build-managers/mage/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "mage";
-  version = "1.11.0";
+  version = "1.12.1";
 
   src = fetchFromGitHub {
     owner = "magefile";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ghOk44VcQUAAYm9NCLsgYdky1KEpwOeChBNrgUKjnC8=";
+    sha256 = "sha256-hfLclI9bzsvITwdo8LTqNcr25yZN82B0pqwlk559tRU=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch b/pkgs/development/tools/build-managers/meson/0.57/allow-dirs-outside-of-prefix.patch
index 4eb292a2e529e..4eb292a2e529e 100644
--- a/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch
+++ b/pkgs/development/tools/build-managers/meson/0.57/allow-dirs-outside-of-prefix.patch
diff --git a/pkgs/development/tools/build-managers/meson/boost-Do-not-add-system-paths-on-nix.patch b/pkgs/development/tools/build-managers/meson/0.57/boost-Do-not-add-system-paths-on-nix.patch
index 5b9020b3d5402..5b9020b3d5402 100644
--- a/pkgs/development/tools/build-managers/meson/boost-Do-not-add-system-paths-on-nix.patch
+++ b/pkgs/development/tools/build-managers/meson/0.57/boost-Do-not-add-system-paths-on-nix.patch
diff --git a/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch b/pkgs/development/tools/build-managers/meson/0.57/clear-old-rpath.patch
index f1e3c76e8b53b..f1e3c76e8b53b 100644
--- a/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch
+++ b/pkgs/development/tools/build-managers/meson/0.57/clear-old-rpath.patch
diff --git a/pkgs/development/tools/build-managers/meson/default.nix b/pkgs/development/tools/build-managers/meson/0.57/default.nix
index de82609a5486f..6fd93e8f86b15 100644
--- a/pkgs/development/tools/build-managers/meson/default.nix
+++ b/pkgs/development/tools/build-managers/meson/0.57/default.nix
@@ -1,6 +1,5 @@
 { lib
 , python3
-
 , writeTextDir
 , substituteAll
 , fetchpatch
diff --git a/pkgs/development/tools/build-managers/meson/fix-rpath.patch b/pkgs/development/tools/build-managers/meson/0.57/fix-rpath.patch
index d34b6c4c43457..d34b6c4c43457 100644
--- a/pkgs/development/tools/build-managers/meson/fix-rpath.patch
+++ b/pkgs/development/tools/build-managers/meson/0.57/fix-rpath.patch
diff --git a/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch b/pkgs/development/tools/build-managers/meson/0.57/gir-fallback-path.patch
index 0c924bacf73f5..0c924bacf73f5 100644
--- a/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch
+++ b/pkgs/development/tools/build-managers/meson/0.57/gir-fallback-path.patch
diff --git a/pkgs/development/tools/build-managers/meson/more-env-vars.patch b/pkgs/development/tools/build-managers/meson/0.57/more-env-vars.patch
index 4b2606e2d694a..4b2606e2d694a 100644
--- a/pkgs/development/tools/build-managers/meson/more-env-vars.patch
+++ b/pkgs/development/tools/build-managers/meson/0.57/more-env-vars.patch
diff --git a/pkgs/development/tools/build-managers/meson/setup-hook.sh b/pkgs/development/tools/build-managers/meson/0.57/setup-hook.sh
index 3d946fcffd522..3d946fcffd522 100644
--- a/pkgs/development/tools/build-managers/meson/setup-hook.sh
+++ b/pkgs/development/tools/build-managers/meson/0.57/setup-hook.sh
diff --git a/pkgs/development/tools/build-managers/meson/0.60/allow-dirs-outside-of-prefix.patch b/pkgs/development/tools/build-managers/meson/0.60/allow-dirs-outside-of-prefix.patch
new file mode 100644
index 0000000000000..4eb292a2e529e
--- /dev/null
+++ b/pkgs/development/tools/build-managers/meson/0.60/allow-dirs-outside-of-prefix.patch
@@ -0,0 +1,19 @@
+--- a/mesonbuild/coredata.py
++++ b/mesonbuild/coredata.py
+@@ -506,7 +506,6 @@ class CoreData:
+             return value
+         if option.name.endswith('dir') and value.is_absolute() and \
+            option not in BULITIN_DIR_NOPREFIX_OPTIONS:
+-            # Value must be a subdir of the prefix
+             # commonpath will always return a path in the native format, so we
+             # must use pathlib.PurePath to do the same conversion before
+             # comparing.
+@@ -518,7 +517,7 @@ class CoreData:
+             try:
+                 value = value.relative_to(prefix)
+             except ValueError:
+-                raise MesonException(msg.format(option, value, prefix))
++                pass
+             if '..' in str(value):
+                 raise MesonException(msg.format(option, value, prefix))
+         return value.as_posix()
diff --git a/pkgs/development/tools/build-managers/meson/0.60/boost-Do-not-add-system-paths-on-nix.patch b/pkgs/development/tools/build-managers/meson/0.60/boost-Do-not-add-system-paths-on-nix.patch
new file mode 100644
index 0000000000000..0a2eda9de9ac6
--- /dev/null
+++ b/pkgs/development/tools/build-managers/meson/0.60/boost-Do-not-add-system-paths-on-nix.patch
@@ -0,0 +1,21 @@
+diff -Naur meson-0.60.2-old/mesonbuild/dependencies/boost.py meson-0.60.2-new/mesonbuild/dependencies/boost.py
+--- meson-0.60.2-old/mesonbuild/dependencies/boost.py	2021-11-02 16:58:07.000000000 -0300
++++ meson-0.60.2-new/mesonbuild/dependencies/boost.py	2021-12-12 19:21:27.895705897 -0300
+@@ -682,16 +682,7 @@
+         else:
+             tmp = []  # type: T.List[Path]
+ 
+-            # Add some default system paths
+-            tmp += [Path('/opt/local')]
+-            tmp += [Path('/usr/local/opt/boost')]
+-            tmp += [Path('/usr/local')]
+-            tmp += [Path('/usr')]
+-
+-            # Cleanup paths
+-            tmp = [x for x in tmp if x.is_dir()]
+-            tmp = [x.resolve() for x in tmp]
+-            roots += tmp
++            # Remove such spurious, non-explicit "system" paths for Nix&Nixpkgs
+ 
+         self.check_and_set_roots(roots, use_system=True)
+ 
diff --git a/pkgs/development/tools/build-managers/meson/0.60/clear-old-rpath.patch b/pkgs/development/tools/build-managers/meson/0.60/clear-old-rpath.patch
new file mode 100644
index 0000000000000..f1e3c76e8b53b
--- /dev/null
+++ b/pkgs/development/tools/build-managers/meson/0.60/clear-old-rpath.patch
@@ -0,0 +1,20 @@
+diff --git a/mesonbuild/scripts/depfixer.py b/mesonbuild/scripts/depfixer.py
+index 4176b9a03..faaabf616 100644
+--- a/mesonbuild/scripts/depfixer.py
++++ b/mesonbuild/scripts/depfixer.py
+@@ -336,6 +336,15 @@ class Elf(DataSizes):
+         if not new_rpath:
+             self.remove_rpath_entry(entrynum)
+         else:
++            # Clear old rpath to avoid stale references,
++            # not heeding the warning above about de-duplication
++            # since it does not seem to cause issues for us
++            # and not doing so trips up Nix’s reference checker.
++            # See https://github.com/NixOS/nixpkgs/pull/46020
++            # and https://github.com/NixOS/nixpkgs/issues/95163
++            self.bf.seek(rp_off)
++            self.bf.write(b'\0'*len(old_rpath))
++
+             self.bf.seek(rp_off)
+             self.bf.write(new_rpath)
+             self.bf.write(b'\0')
diff --git a/pkgs/development/tools/build-managers/meson/0.60/default.nix b/pkgs/development/tools/build-managers/meson/0.60/default.nix
new file mode 100644
index 0000000000000..79870cd4d128a
--- /dev/null
+++ b/pkgs/development/tools/build-managers/meson/0.60/default.nix
@@ -0,0 +1,109 @@
+{ lib
+, fetchpatch
+, installShellFiles
+, ninja
+, pkg-config
+, python3
+, substituteAll
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "meson";
+  version = "0.60.2";
+
+  src = python3.pkgs.fetchPypi {
+    inherit pname version;
+    hash = "sha256-ZOaWhWW/G4FS9PnWyoFU77nhTKqaq/eyLnHmxdBT6SE=";
+  };
+
+  patches = [
+    # Upstream insists on not allowing bindir and other dir options
+    # outside of prefix for some reason:
+    # https://github.com/mesonbuild/meson/issues/2561
+    # We remove the check so multiple outputs can work sanely.
+    ./allow-dirs-outside-of-prefix.patch
+
+    # Meson is currently inspecting fewer variables than autoconf does, which
+    # makes it harder for us to use setup hooks, etc.  Taken from
+    # https://github.com/mesonbuild/meson/pull/6827
+    ./more-env-vars.patch
+
+    # Unlike libtool, vanilla Meson does not pass any information
+    # about the path library will be installed to to g-ir-scanner,
+    # breaking the GIR when path other than ${!outputLib}/lib is used.
+    # We patch Meson to add a --fallback-library-path argument with
+    # library install_dir to g-ir-scanner.
+    ./gir-fallback-path.patch
+
+    # In common distributions, RPATH is only needed for internal libraries so
+    # meson removes everything else. With Nix, the locations of libraries
+    # are not as predictable, therefore we need to keep them in the RPATH.
+    # At the moment we are keeping the paths starting with /nix/store.
+    # https://github.com/NixOS/nixpkgs/issues/31222#issuecomment-365811634
+    (substituteAll {
+      src = ./fix-rpath.patch;
+      inherit (builtins) storeDir;
+    })
+
+    # When Meson removes build_rpath from DT_RUNPATH entry, it just writes
+    # the shorter NUL-terminated new rpath over the old one to reduce
+    # the risk of potentially breaking the ELF files.
+    # But this can cause much bigger problem for Nix as it can produce
+    # cut-in-half-by-\0 store path references.
+    # Let’s just clear the whole rpath and hope for the best.
+    ./clear-old-rpath.patch
+
+    # Patch out default boost search paths to avoid impure builds on
+    # unsandboxed non-NixOS builds, see:
+    # https://github.com/NixOS/nixpkgs/issues/86131#issuecomment-711051774
+    ./boost-Do-not-add-system-paths-on-nix.patch
+  ];
+
+  setupHook = ./setup-hook.sh;
+
+  # Meson included tests since 0.45, however they fail in Nixpkgs because they
+  # require a typical building environment (including C compiler and stuff).
+  # Just for the sake of documentation, the next lines are maintained here.
+  doCheck = false;
+  checkInputs = [ ninja pkg-config ];
+  checkPhase = ''
+    python ./run_project_tests.py
+  '';
+
+  postFixup = ''
+    pushd $out/bin
+    # undo shell wrapper as meson tools are called with python
+    for i in *; do
+      mv ".$i-wrapped" "$i"
+    done
+    popd
+
+    # Do not propagate Python
+    rm $out/nix-support/propagated-build-inputs
+  '';
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    installShellCompletion --zsh data/shell-completions/zsh/_meson
+    installShellCompletion --bash data/shell-completions/bash/meson
+  '';
+
+  meta = with lib; {
+    homepage = "https://mesonbuild.com";
+    description = "An open source, fast and friendly build system made in Python";
+    longDescription = ''
+      Meson is an open source build system meant to be both extremely fast, and,
+      even more importantly, as user friendly as possible.
+
+      The main design point of Meson is that every moment a developer spends
+      writing or debugging build definitions is a second wasted. So is every
+      second spent waiting for the build system to actually start compiling
+      code.
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jtojnar mbe AndersonTorres ];
+    inherit (python3.meta) platforms;
+  };
+}
+# TODO: a more Nixpkgs-tailoired test suite
diff --git a/pkgs/development/tools/build-managers/meson/0.60/fix-rpath.patch b/pkgs/development/tools/build-managers/meson/0.60/fix-rpath.patch
new file mode 100644
index 0000000000000..d34b6c4c43457
--- /dev/null
+++ b/pkgs/development/tools/build-managers/meson/0.60/fix-rpath.patch
@@ -0,0 +1,24 @@
+--- a/mesonbuild/backend/backends.py
++++ b/mesonbuild/backend/backends.py
+@@ -456,6 +456,21 @@ class Backend:
+                 args.extend(self.environment.coredata.get_external_link_args(target.for_machine, lang))
+             except Exception:
+                 pass
++
++        nix_ldflags = os.environ.get('NIX_LDFLAGS', '').split()
++        next_is_path = False
++        # Try to add rpaths set by user or ld-wrapper so that they are not removed.
++        # Based on https://github.com/NixOS/nixpkgs/blob/69711a2f5ffe8cda208163be5258266172ff527f/pkgs/build-support/bintools-wrapper/ld-wrapper.sh#L148-L177
++        for flag in nix_ldflags:
++            if flag == '-rpath' or flag == '-L':
++                next_is_path = True
++            elif next_is_path or flag.startswith('-L/'):
++                if flag.startswith('-L/'):
++                    flag = flag[2:]
++                if flag.startswith('@storeDir@'):
++                    dirs.add(flag)
++                next_is_path = False
++
+         # Match rpath formats:
+         # -Wl,-rpath=
+         # -Wl,-rpath,
diff --git a/pkgs/development/tools/build-managers/meson/0.60/gir-fallback-path.patch b/pkgs/development/tools/build-managers/meson/0.60/gir-fallback-path.patch
new file mode 100644
index 0000000000000..e6d7402652778
--- /dev/null
+++ b/pkgs/development/tools/build-managers/meson/0.60/gir-fallback-path.patch
@@ -0,0 +1,21 @@
+diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py
+index 1c6952df7..9466a0b7d 100644
+--- a/mesonbuild/modules/gnome.py
++++ b/mesonbuild/modules/gnome.py
+@@ -923,6 +923,16 @@ class GnomeModule(ExtensionModule):
+         if fatal_warnings:
+             scan_command.append('--warn-error')
+
++        if len(set(girtarget.get_custom_install_dir()[0] for girtarget in girtargets if girtarget.get_custom_install_dir())) > 1:
++            raise MesonException('generate_gir tries to build multiple libraries with different install_dir at once: {}'.format(','.join([str(girtarget) for girtarget in girtargets])))
++
++        if girtargets[0].get_custom_install_dir():
++            fallback_libpath = girtargets[0].get_custom_install_dir()[0]
++        else:
++            fallback_libpath = None
++        if fallback_libpath is not None and isinstance(fallback_libpath, str) and len(fallback_libpath) > 0 and fallback_libpath[0] == "/":
++            scan_command += ['--fallback-library-path=' + fallback_libpath]
++
+         generated_files = [f for f in libsources if isinstance(f, (GeneratedList, CustomTarget, CustomTargetIndex))]
+ 
+         scan_target = self._make_gir_target(state, girfile, scan_command, generated_files, depends, kwargs)
diff --git a/pkgs/development/tools/build-managers/meson/0.60/more-env-vars.patch b/pkgs/development/tools/build-managers/meson/0.60/more-env-vars.patch
new file mode 100644
index 0000000000000..e4ad43550423d
--- /dev/null
+++ b/pkgs/development/tools/build-managers/meson/0.60/more-env-vars.patch
@@ -0,0 +1,12 @@
+diff -Naur meson-0.60.2-old/mesonbuild/environment.py meson-0.60.2-new/mesonbuild/environment.py
+--- meson-0.60.2-old/mesonbuild/environment.py	2021-11-02 16:58:13.000000000 -0300
++++ meson-0.60.2-new/mesonbuild/environment.py	2021-12-12 17:44:00.350499307 -0300
+@@ -68,7 +68,7 @@
+         # compiling we fall back on the unprefixed host version. This
+         # allows native builds to never need to worry about the 'BUILD_*'
+         # ones.
+-        ([var_name + '_FOR_BUILD'] if is_cross else [var_name]),
++        [var_name + '_FOR_BUILD'] + ([] if is_cross else [var_name]),
+         # Always just the unprefixed host versions
+         [var_name]
+     )[for_machine]
diff --git a/pkgs/development/tools/build-managers/meson/0.60/setup-hook.sh b/pkgs/development/tools/build-managers/meson/0.60/setup-hook.sh
new file mode 100644
index 0000000000000..3d946fcffd522
--- /dev/null
+++ b/pkgs/development/tools/build-managers/meson/0.60/setup-hook.sh
@@ -0,0 +1,37 @@
+mesonConfigurePhase() {
+    runHook preConfigure
+
+    if [ -z "${dontAddPrefix-}" ]; then
+        mesonFlags="--prefix=$prefix $mesonFlags"
+    fi
+
+    # See multiple-outputs.sh and meson’s coredata.py
+    mesonFlags="\
+        --libdir=${!outputLib}/lib --libexecdir=${!outputLib}/libexec \
+        --bindir=${!outputBin}/bin --sbindir=${!outputBin}/sbin \
+        --includedir=${!outputInclude}/include \
+        --mandir=${!outputMan}/share/man --infodir=${!outputInfo}/share/info \
+        --localedir=${!outputLib}/share/locale \
+        -Dauto_features=${mesonAutoFeatures:-enabled} \
+        -Dwrap_mode=${mesonWrapMode:-nodownload} \
+        $mesonFlags"
+
+    mesonFlags="${crossMesonFlags+$crossMesonFlags }--buildtype=${mesonBuildType:-plain} $mesonFlags"
+
+    echo "meson flags: $mesonFlags ${mesonFlagsArray[@]}"
+
+    meson build $mesonFlags "${mesonFlagsArray[@]}"
+    cd build
+
+    if ! [[ -v enableParallelBuilding ]]; then
+        enableParallelBuilding=1
+        echo "meson: enabled parallel building"
+    fi
+
+    runHook postConfigure
+}
+
+if [ -z "${dontUseMesonConfigure-}" -a -z "${configurePhase-}" ]; then
+    setOutputFlags=
+    configurePhase=mesonConfigurePhase
+fi
diff --git a/pkgs/development/tools/build-managers/mill/default.nix b/pkgs/development/tools/build-managers/mill/default.nix
index 27a21619c1d78..bc335da78a7b8 100644
--- a/pkgs/development/tools/build-managers/mill/default.nix
+++ b/pkgs/development/tools/build-managers/mill/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mill";
-  version = "0.9.9";
+  version = "0.9.11";
 
   src = fetchurl {
     url = "https://github.com/com-lihaoyi/mill/releases/download/${version}/${version}-assembly";
-    sha256 = "sha256-HIT7bxMEz7jpSsYvohN9+zYuyCf/ARE7hd48YMTo9/4=";
+    sha256 = "sha256-qYwCt7+//GJHJyDrZ8rcGCKLshKebIDBQCyn6rLOhJQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/build-managers/qbs/default.nix b/pkgs/development/tools/build-managers/qbs/default.nix
index 502c5e638fffd..e09aeea75a321 100644
--- a/pkgs/development/tools/build-managers/qbs/default.nix
+++ b/pkgs/development/tools/build-managers/qbs/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "qbs";
 
-  version = "1.20.1";
+  version = "1.21.0";
 
   src = fetchFromGitHub {
     owner = "qbs";
     repo = "qbs";
     rev = "v${version}";
-    sha256 = "sha256-tqpQ+TpcpD6o/7CtJOMfBQHGK0OX3pVhPHdpVHXplFs=";
+    sha256 = "sha256-jlJ7bk+lKBUs+jB6MTMe2Qxhf7BA7s5M9Xa2Dnx2UJs=";
   };
 
   nativeBuildInputs = [ qmake ];
diff --git a/pkgs/development/tools/build-managers/redo-apenwarr/default.nix b/pkgs/development/tools/build-managers/redo-apenwarr/default.nix
index 638f10f018737..460ee00414726 100644
--- a/pkgs/development/tools/build-managers/redo-apenwarr/default.nix
+++ b/pkgs/development/tools/build-managers/redo-apenwarr/default.nix
@@ -4,13 +4,13 @@
 }: stdenv.mkDerivation rec {
 
   pname = "redo-apenwarr";
-  version = "0.42c";
+  version = "0.42d";
 
   src = fetchFromGitHub rec {
     owner = "apenwarr";
     repo = "redo";
     rev = "${repo}-${version}";
-    sha256 = "0kc2gag1n5583195gs38gjm8mb7in9y70c07fxibsay19pvvb8iw";
+    sha256 = "/QIMXpVhVLAIJa3LiOlRKzbUztIWZygkWZUKN4Nrh+M=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/build-managers/rocm-cmake/default.nix b/pkgs/development/tools/build-managers/rocm-cmake/default.nix
index ad6ac4fc2e5f9..6c366be8b42f3 100644
--- a/pkgs/development/tools/build-managers/rocm-cmake/default.nix
+++ b/pkgs/development/tools/build-managers/rocm-cmake/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-cmake";
-  version = "4.3.1";
+  version = "4.5.2";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "rocm-cmake";
     rev = "rocm-${version}";
-    hash = "sha256-BhpYOL7+IlBpkzeFjfy6KLO7ail472KQWFfQX/sXLGo=";
+    hash = "sha256-5RwhIIOtqeMl/Gyufl5U1gTEpoCjdPJP5MbVnhEKYMM=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
index ec479c138953b..5371bea7760e8 100644
--- a/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/pkgs/development/tools/build-managers/sbt/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sbt";
-  version = "1.5.5";
+  version = "1.6.0";
 
   src = fetchurl {
     url = "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz";
-    sha256 = "1jdknan2gckkfl79pzshgb4009xn2y3nlp0ws1xd47n9yl6dbz60";
+    sha256 = "sha256-Y52xcPZRDQ+IX/QAVGRODshbuDb5oJA45r9OT2Jxusw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/build-managers/scala-cli/default.nix b/pkgs/development/tools/build-managers/scala-cli/default.nix
index 7d7e084a79ff6..33f9811ab8364 100644
--- a/pkgs/development/tools/build-managers/scala-cli/default.nix
+++ b/pkgs/development/tools/build-managers/scala-cli/default.nix
@@ -1,15 +1,15 @@
 { stdenv, coreutils, lib, installShellFiles, zlib, autoPatchelfHook, fetchurl }:
 
 let
-  version = "0.0.8";
+  version = "0.0.9";
   assets = {
     x86_64-darwin = {
       asset = "scala-cli-x86_64-apple-darwin.gz";
-      sha256 = "14bf1zwvfq86vh00qlf8jf4sb82p9jakrmwqhnv9p0x13lq56xm5";
+      sha256 = "sha256-1KwJuapqGhMEIMwrJp2LKlpYFtl+OP9DyaMtge9ZedI=";
     };
     x86_64-linux = {
       asset = "scala-cli-x86_64-pc-linux.gz";
-      sha256 = "01dhcj6q9c87aqpz8vy1kwaa1qqq9bh43rkx2sabhnfrzj4vypjr";
+      sha256 = "sha256-IDXO+MgFlnT7VPugcQr/IGLZeD/vWFqJ0D0zVIbTtk4=";
     };
   };
 in
@@ -22,10 +22,10 @@ stdenv.mkDerivation {
     let
       asset = assets."${stdenv.hostPlatform.system}" or (throw "Unsupported platform ${stdenv.hostPlatform.system}");
     in
-      fetchurl {
-        url = "https://github.com/Virtuslab/scala-cli/releases/download/v${version}/${asset.asset}";
-        sha256 = asset.sha256;
-      };
+    fetchurl {
+      url = "https://github.com/Virtuslab/scala-cli/releases/download/v${version}/${asset.asset}";
+      sha256 = asset.sha256;
+    };
 
   unpackPhase = ''
     runHook preUnpack
diff --git a/pkgs/development/tools/build-managers/tup/setup-hook.sh b/pkgs/development/tools/build-managers/tup/setup-hook.sh
index 5bf64ae59d35d..b7962c80d4692 100644
--- a/pkgs/development/tools/build-managers/tup/setup-hook.sh
+++ b/pkgs/development/tools/build-managers/tup/setup-hook.sh
@@ -1,27 +1,27 @@
 #!/bin/sh
 
 tupConfigurePhase() {
-	runHook preConfigure
-
-	echo -n CONFIG_TUP_ARCH= >> tup.config
-	case "$system" in
-	"i686-*")      echo i386 >> tup.config;;
-	"x86_64-*")    echo x86_64 >> tup.config;;
-	"powerpc-*")   echo powerpc >> tup.config;;
-	"powerpc64-*") echo powerpc64 >> tup.config;;
-	"ia64-*")      echo ia64 >> tup.config;;
-	"alpha-*")     echo alpha >> tup.config;;
-	"sparc-*")     echo sparc >> tup.config;;
-	"aarch64-*")   echo arm64 >> tup.config;;
-	"arm*")        echo arm >> tup.config;;
-	esac
-
-	echo "${tupConfig-}" >> tup.config
-
-	tup init
-	tup generate tupBuild.sh
-
-	runHook postConfigure
+    runHook preConfigure
+
+    echo -n CONFIG_TUP_ARCH= >> tup.config
+    case "$system" in
+    "i686-*")      echo i386 >> tup.config;;
+    "x86_64-*")    echo x86_64 >> tup.config;;
+    "powerpc-*")   echo powerpc >> tup.config;;
+    "powerpc64-*") echo powerpc64 >> tup.config;;
+    "ia64-*")      echo ia64 >> tup.config;;
+    "alpha-*")     echo alpha >> tup.config;;
+    "sparc-*")     echo sparc >> tup.config;;
+    "aarch64-*")   echo arm64 >> tup.config;;
+    "arm*")        echo arm >> tup.config;;
+    esac
+
+    echo "${tupConfig-}" >> tup.config
+
+    tup init
+    tup generate tupBuild.sh
+
+    runHook postConfigure
 }
 
 if [ -z "${dontUseTupConfigure-}" -a -z "${configurePhase-}" ]; then
@@ -30,13 +30,13 @@ fi
 
 
 tupBuildPhase() {
-	runHook preBuild
+    runHook preBuild
 
-	pushd .
-	. tupBuild.sh
-	popd
+    pushd .
+    . tupBuild.sh
+    popd
 
-	runHook postBuild
+    runHook postBuild
 }
 
 if [ -z "${dontUseTupBuild-}" -a -z "${buildPhase-}" ]; then
diff --git a/pkgs/development/tools/build-managers/wafHook/setup-hook.sh b/pkgs/development/tools/build-managers/wafHook/setup-hook.sh
index 439350c3abc28..6cea8fcc2ea84 100644
--- a/pkgs/development/tools/build-managers/wafHook/setup-hook.sh
+++ b/pkgs/development/tools/build-managers/wafHook/setup-hook.sh
@@ -21,6 +21,11 @@ wafConfigurePhase() {
     echoCmd 'configure flags' "${flagsArray[@]}"
     python "$wafPath" "${flagsArray[@]}"
 
+    if ! [[ -v enableParallelBuilding ]]; then
+        enableParallelBuilding=1
+        echo "waf: enabled parallel building"
+    fi
+
     runHook postConfigure
 }
 
diff --git a/pkgs/development/tools/buildkit/default.nix b/pkgs/development/tools/buildkit/default.nix
index 12d35c07db3ec..b9ae4e4dd8875 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.9.0";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
     owner = "moby";
     repo = "buildkit";
     rev = "v${version}";
-    sha256 = "0i04b5ngvhkan45mx6xjcia0dsx0dc6w8bwy90yg3qnz7yzidm2d";
+    sha256 = "sha256-xjuHMjJjA4sx2Hrr6tPpvKtSmhGZ3AZka733DLxmYfk=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/buildpack/default.nix b/pkgs/development/tools/buildpack/default.nix
index f4c65120036d5..c10e5e7f459b9 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.20.0";
+  version = "0.23.0";
 
   src = fetchFromGitHub {
     owner = "buildpacks";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-G1tnk0SlQVX4bEifmuZahazNv3bbdgmcr1V0dN9dlKc=";
+    sha256 = "sha256-dtDciyQyTYhgYwqRCcxV0kAbPMl3KXhDM0BelPTWymA=";
   };
 
-  vendorSha256 = "sha256-jeOK4k1W/5LvqB52LriKD5jNvZa/nc2ypRowrem2y30=";
+  vendorSha256 = "sha256-mIXt3rWXQ6lVbV4hT7KRK7VZ4iFuDX6kZjgoE1WvJxI=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/tools/bunyan-rs/default.nix b/pkgs/development/tools/bunyan-rs/default.nix
index e5f58810ebf42..77191efbe4fa2 100644
--- a/pkgs/development/tools/bunyan-rs/default.nix
+++ b/pkgs/development/tools/bunyan-rs/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bunyan-rs";
-  version = "0.1.2";
+  version = "0.1.7";
 
   src = fetchFromGitHub {
     owner = "LukeMathWalker";
     repo = "bunyan";
     rev = "v${version}";
-    sha256 = "sha256-Rj0VoJMcl8UBuVNu88FwTNF1GBx8IEXxwLL8sGz9kVM=";
+    sha256 = "sha256-NGM8ryOy5bxF53Ak2/UDCf47MBlx/t6wcPlt+K8qvkg=";
   };
 
-  cargoSha256 = "sha256-UZAiXLbRhr2J7QFf7x+JbEjc6p2AoVHYMgyARuwaB7E=";
+  cargoSha256 = "sha256-kzzOEHil7mW+fsstgr4/N4i8c9rzx4TzqGfYDgkzjh0=";
 
   meta = with lib; {
     description = "A CLI to pretty print logs in bunyan format (Rust port of the original JavaScript bunyan CLI)";
diff --git a/pkgs/development/tools/cargo-flamegraph/default.nix b/pkgs/development/tools/cargo-flamegraph/default.nix
index 33c3a20e2d861..e3bbb29164f13 100644
--- a/pkgs/development/tools/cargo-flamegraph/default.nix
+++ b/pkgs/development/tools/cargo-flamegraph/default.nix
@@ -4,16 +4,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-flamegraph";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "flamegraph-rs";
     repo = "flamegraph";
     rev = "v${version}";
-    sha256 = "sha256-qxUYqqz6dlpkw6MGHH8iPfZcbc3/ZF1E+C8arISSTdY=";
+    sha256 = "sha256-Q930PIGncUX2Wz3hA1OQu0TEPMfOu2jMpBPbaAVlUMU=";
   };
 
-  cargoSha256 = "sha256-qJEhcqa78QW9X5ZD3Jy2BfRh/SkOhqBLzTT00u4DM0Q=";
+  cargoSha256 = "sha256-ENL1FeIn9HESyp1VhePr4q7BLCc0SS8NAuHKv1crJE8=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ];
   buildInputs = lib.optionals stdenv.isDarwin [
diff --git a/pkgs/development/tools/checkmate/default.nix b/pkgs/development/tools/checkmate/default.nix
index 26249b0d163f2..d5aded2d8e106 100644
--- a/pkgs/development/tools/checkmate/default.nix
+++ b/pkgs/development/tools/checkmate/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "checkmate";
-  version = "0.4.6";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "adedayo";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-x3R6xkfgFhmR3iGSAXLCUl5wPQ25TqEBI5z9p0I/GoY=";
+    sha256 = "sha256-oBX1MSniVwXvq4Cy9uR3YqxaeSxeWg38oBlCiBy6z/8=";
   };
 
-  vendorSha256 = "sha256-ulXilkDEkvpfCgdJ55gzb8qpcra3s8wSjcEupxWP+h8=";
+  vendorSha256 = "sha256-rlwph9oQXgesLHjrtD+H4zvT2ekTeqZFgRBjXoyFltM=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/tools/clang-tools/default.nix b/pkgs/development/tools/clang-tools/default.nix
index ba829f2c41dfd..bfc00fb6e3d35 100644
--- a/pkgs/development/tools/clang-tools/default.nix
+++ b/pkgs/development/tools/clang-tools/default.nix
@@ -34,6 +34,6 @@ in stdenv.mkDerivation {
 
   meta = unwrapped.meta // {
     description = "Standalone command line tools for C++ development";
-    maintainers = with lib.maintainers; [ aherrmann ];
+    maintainers = with lib.maintainers; [ patryk27 ];
   };
 }
diff --git a/pkgs/development/tools/clj-kondo/default.nix b/pkgs/development/tools/clj-kondo/default.nix
index 97f41b0c8a7e4..8a71939f2c11d 100644
--- a/pkgs/development/tools/clj-kondo/default.nix
+++ b/pkgs/development/tools/clj-kondo/default.nix
@@ -1,46 +1,24 @@
-{ stdenv, lib, graalvm11-ce, fetchurl }:
+{ lib, buildGraalvmNativeImage, fetchurl }:
 
-stdenv.mkDerivation rec {
+buildGraalvmNativeImage rec {
   pname = "clj-kondo";
-  version = "2021.10.19";
+  version = "2021.12.19";
 
   src = fetchurl {
     url = "https://github.com/clj-kondo/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
-    sha256 = "sha256-i0OeQPZfQPUeXC/Bs84I91IahBKK6W1mFix97s8/lVA=";
+    sha256 = "sha256-CjqzsYT3Hc2Ej7ALHkuKwBPHMAQkQQilUZhuC3hcZQg=";
   };
 
-  dontUnpack = true;
-
-  buildInputs = [ graalvm11-ce ];
-
-  buildPhase = ''
-    runHook preBuild
-
-    # https://github.com/clj-kondo/clj-kondo/blob/v2021.10.19/script/compile#L17-L21
-    args=("-jar" "$src"
-          "-H:CLibraryPath=${graalvm11-ce.lib}/lib"
-          # Required to build babashka on darwin. Do not remove.
-          "${lib.optionalString stdenv.isDarwin "-H:-CheckToolchain"}"
-          "-H:+ReportExceptionStackTraces"
-          "--verbose"
-          "--no-fallback"
-          "-J-Xmx3g")
-
-     native-image ''${args[@]}
-
-     runHook postBuild
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp clj-kondo $out/bin/clj-kondo
-  '';
+  extraNativeImageBuildArgs = [
+    "-H:+ReportExceptionStackTraces"
+    "--no-fallback"
+  ];
 
   meta = with lib; {
     description = "A linter for Clojure code that sparks joy";
     homepage = "https://github.com/clj-kondo/clj-kondo";
     license = licenses.epl10;
-    platforms = graalvm11-ce.meta.platforms;
+    changelog = "https://github.com/clj-kondo/clj-kondo/blob/v${version}/CHANGELOG.md";
     maintainers = with maintainers; [ jlesquembre bandresen thiagokokada ];
   };
 }
diff --git a/pkgs/development/tools/cloud-nuke/default.nix b/pkgs/development/tools/cloud-nuke/default.nix
index 501d52c607469..a0d0ced824d81 100644
--- a/pkgs/development/tools/cloud-nuke/default.nix
+++ b/pkgs/development/tools/cloud-nuke/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "cloud-nuke";
-  version = "0.5.1";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-f93zpTA3FWfqmPVnhnvGBJSqQ2OEHMxnI6MUN74LmAk=";
+    sha256 = "sha256-gW7uunW7gE/5umBQNjx+k2FIAryKka7yLMqnd6ewv6I=";
   };
 
-  vendorSha256 = "sha256-C9UGpm8JBLQpSFQkvib5Bmn3J88LxUNt4ELJXL4ZQ80=";
+  vendorSha256 = "sha256-GDXkrrE0KgFJHXCDZH83/nQAexKhmGed/QGZ1aSXnpg=";
 
   ldflags = [ "-s" "-w" "-X main.VERSION=${version}" ];
 
diff --git a/pkgs/development/tools/cloudsmith-cli/default.nix b/pkgs/development/tools/cloudsmith-cli/default.nix
index 8d36c89908282..c58455ac24bbe 100644
--- a/pkgs/development/tools/cloudsmith-cli/default.nix
+++ b/pkgs/development/tools/cloudsmith-cli/default.nix
@@ -4,14 +4,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "cloudsmith-cli";
-  version = "0.26.0";
+  version = "0.31.1";
 
   format = "wheel";
 
   src = python3.pkgs.fetchPypi {
     pname = "cloudsmith_cli";
     inherit format version;
-    sha256 = "c2W5+z+X4oRZxlNhB6for4mN4NeBX9MtEtmXhU5sz4A=";
+    sha256 = "sha256-r8h0fHePZoqy/oFOedkwAke0b+Huasuv+sWcL92EZ+k=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/development/tools/compass/Gemfile.lock b/pkgs/development/tools/compass/Gemfile.lock
index ecae8fdd7f624..f0bf7699df0d8 100644
--- a/pkgs/development/tools/compass/Gemfile.lock
+++ b/pkgs/development/tools/compass/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    chunky_png (1.3.11)
+    chunky_png (1.4.0)
     compass (1.0.3)
       chunky_png (~> 1.2)
       compass-core (~> 1.0.2)
@@ -14,10 +14,10 @@ GEM
       sass (>= 3.3.0, < 3.5)
     compass-import-once (1.0.5)
       sass (>= 3.2, < 3.5)
-    ffi (1.10.0)
-    multi_json (1.13.1)
-    rb-fsevent (0.10.3)
-    rb-inotify (0.10.0)
+    ffi (1.15.4)
+    multi_json (1.15.0)
+    rb-fsevent (0.11.0)
+    rb-inotify (0.10.1)
       ffi (~> 1.0)
     sass (3.4.25)
 
@@ -28,4 +28,4 @@ DEPENDENCIES
   compass!
 
 BUNDLED WITH
-   2.1.4
+   2.2.24
diff --git a/pkgs/development/tools/compass/gemset.nix b/pkgs/development/tools/compass/gemset.nix
index 3e93f6e417abc..2b1bd604254bf 100644
--- a/pkgs/development/tools/compass/gemset.nix
+++ b/pkgs/development/tools/compass/gemset.nix
@@ -4,10 +4,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "124najs9prqzrzk49h53kap992rmqxj0wni61z2hhsn7mwmgdp9d";
+      sha256 = "1znw5x86hmm9vfhidwdsijz8m38pqgmv98l9ryilvky0aldv7mc9";
       type = "gem";
     };
-    version = "1.3.11";
+    version = "1.4.0";
   };
   compass = {
     dependencies = ["chunky_png" "compass-core" "compass-import-once" "rb-fsevent" "rb-inotify" "sass"];
@@ -47,30 +47,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0j8pzj8raxbir5w5k6s7a042sb5k02pg0f8s4na1r5lan901j00p";
+      sha256 = "0ssxcywmb3flxsjdg13is6k01807zgzasdhj4j48dm7ac59cmksn";
       type = "gem";
     };
-    version = "1.10.0";
+    version = "1.15.4";
   };
   multi_json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "1.15.0";
   };
   rb-fsevent = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8";
+      sha256 = "1qsx9c4jr11vr3a9s5j83avczx9qn9rjaf32gxpc2v451hvbc0is";
       type = "gem";
     };
-    version = "0.10.3";
+    version = "0.11.0";
   };
   rb-inotify = {
     dependencies = ["ffi"];
@@ -78,10 +78,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fs7hxm9g6ywv2yih83b879klhc4fs8i0p9166z795qmd77dk0a4";
+      sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005";
       type = "gem";
     };
-    version = "0.10.0";
+    version = "0.10.1";
   };
   sass = {
     groups = ["default"];
diff --git a/pkgs/development/tools/conftest/default.nix b/pkgs/development/tools/conftest/default.nix
index 85b34e483468d..ae5e97cd574b8 100644
--- a/pkgs/development/tools/conftest/default.nix
+++ b/pkgs/development/tools/conftest/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "conftest";
-  version = "0.28.2";
+  version = "0.28.3";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "conftest";
     rev = "v${version}";
-    sha256 = "sha256-lmmk6veBDI51UA/wnFB7Q3DTxZ9J/1qp0OoNgmBrR1Y=";
+    sha256 = "sha256-qUbrd80As5BrP67bk8aXWAq85UKL1de5sJlPQtBuxn4=";
   };
-  vendorSha256 = "sha256-NALyUjFL6OqgCke1QiUxbSNLAoaIMB2zeIWWEfcnCjs=";
+  vendorSha256 = "sha256-cEa2IB65CWsWXZnVRZmOOvUyOhybHBssQGt/pP7YPcg=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/development/tools/continuous-integration/github-runner/default.nix b/pkgs/development/tools/continuous-integration/github-runner/default.nix
index 97312c835f51e..e784e3fe330e7 100644
--- a/pkgs/development/tools/continuous-integration/github-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/github-runner/default.nix
@@ -14,6 +14,7 @@
 , lttng-ust
 , makeWrapper
 , nodejs-12_x
+, nodejs-16_x
 , openssl
 , stdenv
 , zlib
@@ -37,13 +38,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "github-runner";
-  version = "2.284.0";
+  version = "2.285.1";
 
   src = fetchFromGitHub {
     owner = "actions";
     repo = "runner";
     rev = "v${version}";
-    sha256 = "sha256-JR0OzbT5gGhO/dxb/eSjP/d/VxW/aLmTs/oPwN8b8Rc=";
+    hash = "sha256-SlKUuebsoZ9OgYuDTNOlY1KMg01LFSFazrLCctiFq3A=";
   };
 
   nativeBuildInputs = [
@@ -142,6 +143,9 @@ stdenv.mkDerivation rec {
   disabledTests = [
     # Self-updating is patched out, hence this test will fail
     "FullyQualifiedName!=GitHub.Runner.Common.Tests.Listener.RunnerL0.TestRunOnceHandleUpdateMessage"
+  ] ++ lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [
+    # "JavaScript Actions in Alpine containers are only supported on x64 Linux runners. Detected Linux Arm64"
+    "FullyQualifiedName!=GitHub.Runner.Common.Tests.Worker.StepHostL0.DetermineNodeRuntimeVersionInAlpineContainerAsync"
   ] ++ map
     # Online tests
     (x: "FullyQualifiedName!=GitHub.Runner.Common.Tests.Worker.ActionManagerL0.PrepareActions_${x}")
@@ -189,6 +193,7 @@ stdenv.mkDerivation rec {
 
     mkdir -p _layout/externals
     ln -s ${nodejs-12_x} _layout/externals/node12
+    ln -s ${nodejs-16_x} _layout/externals/node16
 
     # BUILDCONFIG needs to be "Debug"
     dotnet msbuild \
@@ -230,11 +235,17 @@ stdenv.mkDerivation rec {
       --replace './externals' "$out/externals" \
       --replace './bin' "$out/lib"
 
-    # The upstream package includes Node 12 and expects it at the path
-    # externals/node12. As opposed to the official releases, we don't
-    # link the Alpine Node flavor.
+    # The upstream package includes Node {12,16} and expects it at the path
+    # externals/node{12,16}. As opposed to the official releases, we don't
+    # link the Alpine Node flavors.
     mkdir -p $out/externals
     ln -s ${nodejs-12_x} $out/externals/node12
+    ln -s ${nodejs-16_x} $out/externals/node16
+
+    # Install Nodejs scripts called from workflows
+    install -D src/Misc/layoutbin/hashFiles/index.js $out/lib/hashFiles/index.js
+    mkdir -p $out/lib/checkScripts
+    install src/Misc/layoutbin/checkScripts/* $out/lib/checkScripts/
 
     runHook postInstall
   '';
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/0001-gitlab-runner-don-t-checked-for-fixed-runtime.patch b/pkgs/development/tools/continuous-integration/gitlab-runner/0001-gitlab-runner-don-t-checked-for-fixed-runtime.patch
new file mode 100644
index 0000000000000..a1736d83a656e
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/gitlab-runner/0001-gitlab-runner-don-t-checked-for-fixed-runtime.patch
@@ -0,0 +1,30 @@
+From 13c633bf0075daa6ff973f368a25cf205caa017e Mon Sep 17 00:00:00 2001
+From: Pascal Bach <pascal.bach@nextrem.ch>
+Date: Sat, 11 Dec 2021 10:07:01 +0100
+Subject: [PATCH] gitlab-runner: don't checked for fixed runtime
+
+We already use 1.16.12 which has the proper fix
+---
+ helpers/patches/issue_28732/syscall.go | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/helpers/patches/issue_28732/syscall.go b/helpers/patches/issue_28732/syscall.go
+index 580513b57..fa9e4cc85 100644
+--- a/helpers/patches/issue_28732/syscall.go
++++ b/helpers/patches/issue_28732/syscall.go
+@@ -2,11 +2,6 @@
+ 
+ package issue_28732
+ 
+-import (
+-	"syscall"
+-)
+-
+ func AssertFixPresent() {
+-	// Ensure that Issue28732Fix fixed runtime is used
+-	syscall.Issue28732Fix()
++	// Issue already fixed by using go 1.16.12
+ }
+-- 
+2.34.0
+
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index e77da6d03813e..a8456d09f9899 100644
--- a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -1,17 +1,7 @@
 { lib, buildGoPackage, fetchFromGitLab, fetchurl }:
 
 let
-  version = "14.4.0";
-  # Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
-  docker_x86_64 = fetchurl {
-    url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/binaries/gitlab-runner-helper/gitlab-runner-helper.x86_64";
-    sha256 = "0cd0bcqfy2cwkhgj1d4mmn0xv4n5mmhyf2yv42ynvv0yr5xk75n0";
-  };
-
-  docker_arm = fetchurl {
-    url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/binaries/gitlab-runner-helper/gitlab-runner-helper.arm";
-    sha256 = "06dnxj1w1nnqkkxrbhz8p85g1afr49j8jizkf2g8j01dsk5b2gvi";
-  };
+  version = "14.6.0";
 in
 buildGoPackage rec {
   inherit version;
@@ -29,16 +19,13 @@ buildGoPackage rec {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "07dvbair8fiska7ay4k4hbdwlkgyrq8hmxxwdzkhcpyc0faxqlly";
+    sha256 = "1sgz8gri51i2pxnzzkcvwx5ncw1rjz7ain82hlcx6f3874qfsniy";
   };
 
-  patches = [ ./fix-shell-path.patch ];
-
-  postInstall = ''
-    install -d $out/bin/helper-images
-    ln -sf ${docker_x86_64} $out/bin/helper-images/prebuilt-x86_64.tar.xz
-    ln -sf ${docker_arm} $out/bin/helper-images/prebuilt-arm.tar.xz
-  '';
+  patches = [
+    ./fix-shell-path.patch
+    ./0001-gitlab-runner-don-t-checked-for-fixed-runtime.patch
+  ];
 
   meta = with lib; {
     description = "GitLab Runner the continuous integration executor of GitLab";
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/fix-shell-path.patch b/pkgs/development/tools/continuous-integration/gitlab-runner/fix-shell-path.patch
index 8aa419ea5f949..4a3d37be09cd4 100644
--- a/pkgs/development/tools/continuous-integration/gitlab-runner/fix-shell-path.patch
+++ b/pkgs/development/tools/continuous-integration/gitlab-runner/fix-shell-path.patch
@@ -1,28 +1,25 @@
 diff --git a/shells/bash.go b/shells/bash.go
-index 673f4765..a58cc5e2 100644
+index bd99eca1a..9873dff6b 100644
 --- a/shells/bash.go
 +++ b/shells/bash.go
-@@ -5,6 +5,7 @@ import (
+@@ -3,6 +3,7 @@ package shells
+ import (
  	"bytes"
  	"fmt"
- 	"io"
 +	"os/exec"
  	"path"
  	"runtime"
  	"strconv"
-@@ -225,7 +226,11 @@ func (b *BashShell) GetConfiguration(info common.ShellScriptInfo) (script *commo
+@@ -300,7 +301,11 @@ func (b *BashShell) GetConfiguration(info common.ShellScriptInfo) (*common.Shell
  	if info.User != "" {
  		script.Command = "su"
  		if runtime.GOOS == "linux" {
 -			script.Arguments = append(script.Arguments, "-s", "/bin/"+b.Shell)
 +			shellPath, err := exec.LookPath(b.Shell)
 +			if err != nil {
-+				shellPath = "/bin/"+b.Shell
++				shellPath = "/bin/" + b.Shell
 +			}
 +			script.Arguments = append(script.Arguments, "-s", shellPath)
  		}
- 		script.Arguments = append(script.Arguments, info.User)
- 		script.Arguments = append(script.Arguments, "-c", shellCommand)
--- 
-2.18.0
-
+ 		script.Arguments = append(
+ 			script.Arguments,
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index a7d9aeda000b1..65132b72391ea 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.303.1";
+  version = "2.319.1";
 
   src = fetchurl {
     url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
-    sha256 = "0rf06axz1hxssg942w2g66avak30jy6rfdwxynhriqv3vrf17bja";
+    sha256 = "0qm562v7jwc9mjpbn1f808kg97axy1mraq3s5h679niffn588jvy";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/crd2pulumi/default.nix b/pkgs/development/tools/crd2pulumi/default.nix
new file mode 100644
index 0000000000000..574228fa4cf0a
--- /dev/null
+++ b/pkgs/development/tools/crd2pulumi/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "crd2pulumi";
+  version = "1.0.10";
+
+  src = fetchFromGitHub {
+    owner = "pulumi";
+    repo = "crd2pulumi";
+    rev = "v${version}";
+    sha256 = "1xzr63brzqysvhm3fqj246c7s84kchpcm6wad3mvxcxjcab6xd1f";
+  };
+
+  vendorSha256 = "0xi5va2fy4nrxp3qgyzcw20a2089sbz8h1hvqx2ryxijr61wd93d";
+
+  ldflags = [ "-s" "-w" "-X github.com/pulumi/crd2pulumi/gen.Version=${src.rev}" ];
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "Generate typed CustomResources from a Kubernetes CustomResourceDefinition";
+    homepage = "https://github.com/pulumi/crd2pulumi";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ flokli ];
+  };
+}
diff --git a/pkgs/development/tools/database/clickhouse-backup/default.nix b/pkgs/development/tools/database/clickhouse-backup/default.nix
new file mode 100644
index 0000000000000..6090bc1d75b7c
--- /dev/null
+++ b/pkgs/development/tools/database/clickhouse-backup/default.nix
@@ -0,0 +1,27 @@
+{ buildGoModule, lib, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "clickhouse-backup";
+  version = "1.2.2";
+
+  src = fetchFromGitHub {
+    owner = "AlexAkulov";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-ThN1uvofIvV5Dt6dqxLpekTRy9pV4xb0bkVNRcfNJ2c=";
+  };
+
+  vendorSha256 = "sha256-OQGpWWerUv2asjpjMLAkgeb0Q+lMAsDXjFCh0I4ze20=";
+
+  postConfigure = ''
+    export CGO_ENABLED=0
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/AlexAkulov/clickhouse-backup";
+    description = "Tool for easy ClickHouse backup and restore with cloud storages support";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ma27 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/tools/database/litestream/default.nix b/pkgs/development/tools/database/litestream/default.nix
index 7468aa55d6189..6a7e53e6cf206 100644
--- a/pkgs/development/tools/database/litestream/default.nix
+++ b/pkgs/development/tools/database/litestream/default.nix
@@ -4,13 +4,13 @@
 }:
 buildGoModule rec {
   pname = "litestream";
-  version = "0.3.6";
+  version = "0.3.7";
 
   src = fetchFromGitHub {
     owner = "benbjohnson";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-A1okmeX3njyRXFKcXJPSV7Hg8Q/P7WqpGz2HThDdUQo=";
+    sha256 = "sha256-IEdTLf+fEp19FhwL3IaGT9HGKQoa6HwFox2gf0lvFu4=";
   };
 
   ldflags = [
diff --git a/pkgs/development/tools/database/prisma-engines/default.nix b/pkgs/development/tools/database/prisma-engines/default.nix
index b05b0c2e47f1e..77d5eb006b109 100644
--- a/pkgs/development/tools/database/prisma-engines/default.nix
+++ b/pkgs/development/tools/database/prisma-engines/default.nix
@@ -10,19 +10,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "prisma-engines";
-  version = "3.5.0";
+  version = "3.7.0";
 
   src = fetchFromGitHub {
     owner = "prisma";
     repo = "prisma-engines";
     rev = version;
-    sha256 = "sha256-c4t7r9Os0nmQEBpNeZ+XdTPc/5X6Dyw0dd7J4pw5s88=";
+    sha256 = "sha256-00WAN4GFchZVsL1Vf1bPXF3/pmqygs3T8XrCMtGimfg=";
   };
 
   # Use system openssl.
   OPENSSL_NO_VENDOR = 1;
 
-  cargoSha256 = "sha256-rjqFEY7GXXWzlw5E6Wg4KPz25BbvQPuLW5m8+3CbcRw=";
+  cargoSha256 = "sha256-w4n61gNEWdfiIMDQ82lFxnE4o4liS5z3tx3OZCcT1kI=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/database/sqlfluff/default.nix b/pkgs/development/tools/database/sqlfluff/default.nix
index 559aeb18c267c..26d3377b22ff1 100644
--- a/pkgs/development/tools/database/sqlfluff/default.nix
+++ b/pkgs/development/tools/database/sqlfluff/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "sqlfluff";
-  version = "0.8.1";
+  version = "0.8.2";
   disabled = python3.pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-p2vRHJ7IDjGpAqWLkAHIjNCFRvUfpkvwVtixz8wWR8I=";
+    sha256 = "sha256-0FlXHUjoeZ7XfmOSlY30b13i2t/4vyWwhDKXquXKaJE=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/development/tools/datree/default.nix b/pkgs/development/tools/datree/default.nix
new file mode 100644
index 0000000000000..2eb11b2ffc28c
--- /dev/null
+++ b/pkgs/development/tools/datree/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "datree";
+  version = "0.14.87";
+
+  src = fetchFromGitHub {
+    owner = "datreeio";
+    repo = "datree";
+    rev = version;
+    sha256 = "sha256-zoFWiqrKdTh6XDrKx2mQe3NqK03so6MqIX0sSQHQa5U=";
+  };
+
+  vendorSha256 = "sha256-SlU1lJcKCDkoihU19c8iky3Bj5ZZD9E9W0QQX9fBT1c=";
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/datreeio/datree/cmd.CliVersion=${version}"
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "CLI tool to ensure K8s manifests and Helm charts follow best practices as well as your organization’s policies";
+    homepage = "https://datree.io/";
+    license = [ licenses.asl20 ];
+    maintainers = [ maintainers.jceb ];
+  };
+}
diff --git a/pkgs/development/tools/ddosify/default.nix b/pkgs/development/tools/ddosify/default.nix
index fd4b1ea279b52..509dabb0b0102 100644
--- a/pkgs/development/tools/ddosify/default.nix
+++ b/pkgs/development/tools/ddosify/default.nix
@@ -2,23 +2,25 @@
 
 buildGoModule rec {
   pname = "ddosify";
-  version = "0.6.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-RA+WmlSrNwkysuvAXjCoKZ528nt0tTZ5OHkqCETMskE=";
+    sha256 = "sha256-QzNMUeA9oOZaNZDGf9TXloZ5r2prDHTRX1wso3fSetc=";
   };
 
   vendorSha256 = "sha256-TY8shTb77uFm8/yCvlIncAfq7brWgnH/63W+hj1rvqg=";
 
-  # triggers a different set of tests that seems to be interactive and fail (no url target defined)
   ldflags = [
     "-s -w"
     "-X main.GitVersion=${version}"
   ];
 
+  # TestCreateHammerMultipartPayload error occurred - Get "https://upload.wikimedia.org/wikipedia/commons/b/bd/Test.svg"
+  doCheck = false;
+
   doInstallCheck = true;
   installCheckPhase = ''
     $out/bin/ddosify -version | grep ${version} > /dev/null
diff --git a/pkgs/development/tools/delve/default.nix b/pkgs/development/tools/delve/default.nix
index bf0391fd755fa..457a1d7a31dba 100644
--- a/pkgs/development/tools/delve/default.nix
+++ b/pkgs/development/tools/delve/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "delve";
-  version = "1.7.2";
+  version = "1.8.0";
 
   goPackagePath = "github.com/go-delve/delve";
   excludedPackages = "\\(_fixtures\\|scripts\\|service/test\\)";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "go-delve";
     repo = "delve";
     rev = "v${version}";
-    sha256 = "sha256-Mye8Gh73yQ1fhjVpEOKBQGjdOzgMUqzdNiBjRRTteTg=";
+    sha256 = "sha256-NihlBFZ5xu+DMBtUiGyjxpgob2hoLlFJ7MfnM55feuw=";
   };
 
   subPackages = [ "cmd/dlv" ];
diff --git a/pkgs/development/tools/devpi-client/default.nix b/pkgs/development/tools/devpi-client/default.nix
index dcc3f38b995ee..2b122326bfe5e 100644
--- a/pkgs/development/tools/devpi-client/default.nix
+++ b/pkgs/development/tools/devpi-client/default.nix
@@ -25,19 +25,13 @@
 
 buildPythonApplication rec {
   pname = "devpi-client";
-  version = "5.2.2";
+  version = "5.2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "24ac6d94108996efad4ff5185dabb1e5120ae238134b8175d6de2ca9e766cd92";
+    sha256 = "362eb26e95136a792491861cc2728d14a6309a9d4c4f13a7b9c3e6fd39de58ec";
   };
 
-  postPatch = ''
-    # can be removed after 5.2.2, updated upstream
-    substituteInPlace setup.py \
-      --replace "pluggy>=0.6.0,<1.0" "pluggy"
-  '';
-
   buildInputs = [ glibcLocales ];
 
   propagatedBuildInputs = [ py devpi-common pluggy setuptools check-manifest pkginfo ];
diff --git a/pkgs/development/tools/doctl/default.nix b/pkgs/development/tools/doctl/default.nix
index 2f91257801a9d..9f31ebb0af428 100644
--- a/pkgs/development/tools/doctl/default.nix
+++ b/pkgs/development/tools/doctl/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "doctl";
-  version = "1.65.0";
+  version = "1.68.0";
 
   vendorSha256 = null;
 
@@ -31,7 +31,7 @@ buildGoModule rec {
     owner = "digitalocean";
     repo = "doctl";
     rev = "v${version}";
-    sha256 = "sha256-Fd3Zp4mXrYAdINJu/kbBCputAkHrG3MVpTOPitcd0hk=";
+    sha256 = "sha256-3W6jDMT4UUtSND9bJJEexQ9LrqxL4oZtpucdcM1McdE=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/documentation/gi-docgen/default.nix b/pkgs/development/tools/documentation/gi-docgen/default.nix
index ac715147dc3f4..05b7aac82c17a 100644
--- a/pkgs/development/tools/documentation/gi-docgen/default.nix
+++ b/pkgs/development/tools/documentation/gi-docgen/default.nix
@@ -29,6 +29,10 @@ python3.pkgs.buildPythonApplication rec {
     })
   ];
 
+  depsBuildBuild = [
+    python3
+  ];
+
   nativeBuildInputs = [
     meson
     ninja
diff --git a/pkgs/development/tools/dprint/default.nix b/pkgs/development/tools/dprint/default.nix
index 8fe044e41cced..729e523dc89da 100644
--- a/pkgs/development/tools/dprint/default.nix
+++ b/pkgs/development/tools/dprint/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dprint";
-  version = "0.15.1";
+  version = "0.18.2";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-ftzV5babf3/l59CWDzVgUF2qws5yo1qEuepFLYd8psA=";
+    sha256 = "sha256-5vWkIQtbeQzPgc1BDjxfWCmCYseOUiV0LXapypcLItI=";
   };
 
-  cargoSha256 = "sha256-ayCCNE44cOpbrk3FFtW2ZPZ1fTwzXwq3srmptI629sw=";
+  cargoSha256 = "sha256-ezfVDgZs0QemYHm/o3aX2QGO2WuMweE8LuNZaX4whhw=";
 
   # Tests fail because they expect a test WASM plugin. Tests already run for
   # every commit upstream on GitHub Actions
diff --git a/pkgs/development/tools/dstp/default.nix b/pkgs/development/tools/dstp/default.nix
index 89661612b4ee6..c0a7f79eae19b 100644
--- a/pkgs/development/tools/dstp/default.nix
+++ b/pkgs/development/tools/dstp/default.nix
@@ -2,16 +2,16 @@
 
 buildGo117Module rec {
   pname = "dstp";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "ycd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1pxzaz2a261lsnbdbr9km1214a4jzq2wgkdfvf9g966gsa4nqfl6";
+    sha256 = "sha256-YvuUgHHa8Egk+bbSI0SH0i3YrKWRbzjAckNG32RBRXw=";
   };
 
-  vendorSha256 = "1n1kx4zcskndikjl44vwmckr6x5cv6cacwdwfwjjsf6aqgagpld8";
+  vendorSha256 = "sha256-qNH71MPKOC0ld7xxppjZrHSTJ6t8E0LljM1OzT7pM9g=";
 
   # Tests require network connection, but is not allowed by nix
   doCheck = false;
diff --git a/pkgs/development/tools/dtools/default.nix b/pkgs/development/tools/dtools/default.nix
index 7a994df51b40f..5faf403e71a66 100644
--- a/pkgs/development/tools/dtools/default.nix
+++ b/pkgs/development/tools/dtools/default.nix
@@ -1,34 +1,25 @@
-{stdenv, lib, fetchFromGitHub, ldc, curl}:
+{stdenv, lib, fetchFromGitHub, fetchpatch, ldc, curl}:
 
 stdenv.mkDerivation rec {
   pname = "dtools";
   version = "2.095.1";
 
-  srcs = [
-    (fetchFromGitHub {
-      owner = "dlang";
-      repo = "dmd";
-      rev = "v${version}";
-      sha256 = "sha256:0faca1y42a1h16aml4lb7z118mh9k9fjx3xlw3ki5f1h3ln91xhk";
-      name = "dmd";
-    })
-    (fetchFromGitHub {
-      owner = "dlang";
-      repo = "tools";
-      rev = "v${version}";
-      sha256 = "sha256:0rdfk3mh3fjrb0h8pr8skwlq6ac9hdl1fkrkdl7n1fa2806b740b";
-      name = "dtools";
+  src = fetchFromGitHub {
+    owner = "dlang";
+    repo = "tools";
+    rev = "v${version}";
+    sha256 = "sha256:0rdfk3mh3fjrb0h8pr8skwlq6ac9hdl1fkrkdl7n1fa2806b740b";
+    name = "dtools";
+  };
+
+  patches = [
+    (fetchpatch {
+      # part of https://github.com/dlang/tools/pull/441
+      url = "https://github.com/dlang/tools/commit/6c6a042d1b08e3ec1790bd07a7f69424625ee866.patch"; # Fix LDC arm64 build
+      sha256 = "sha256-x6EclTYN1Y5FG57KLhbBK0BZicSYcZoWO7MTVcP4T18=";
     })
   ];
 
-  sourceRoot = ".";
-
-  postUnpack = ''
-      mv dmd dtools
-      cd dtools
-
-  '';
-
   nativeBuildInputs = [ ldc ];
   buildInputs = [ curl ];
 
diff --git a/pkgs/development/tools/dyff/default.nix b/pkgs/development/tools/dyff/default.nix
index eab35b69585c0..90f4881be055e 100644
--- a/pkgs/development/tools/dyff/default.nix
+++ b/pkgs/development/tools/dyff/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dyff";
-  version = "1.4.5";
+  version = "1.4.6";
 
   src = fetchFromGitHub {
     owner = "homeport";
     repo = "dyff";
     rev = "v${version}";
-    sha256 = "sha256-TaGtl5TBQMHjY4/HmDUghyhrsc5fjSMmY+oqO+rKGo4=";
+    sha256 = "sha256-xODOKKMGlpMePwO3A4IVReqsR1Kx0CwBjrhsvN+uDR4=";
   };
 
-  vendorSha256 = "sha256-3L3FtL/P+Jyvv0WESBvfSxJOl99v5QDyyzIqottB2EI=";
+  vendorSha256 = "sha256-W882fD4O4lPVH27KWmkRsS58R6qw7ENhKA2UgpNKvTw=";
 
   subPackages = [
     "cmd/dyff"
diff --git a/pkgs/development/tools/earthly/default.nix b/pkgs/development/tools/earthly/default.nix
index 1cd5d9caf2829..c6cc57e14c5c9 100644
--- a/pkgs/development/tools/earthly/default.nix
+++ b/pkgs/development/tools/earthly/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "earthly";
-  version = "0.5.24";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "earthly";
     repo = "earthly";
     rev = "v${version}";
-    sha256 = "sha256-d4TCuFj7nbQDxTLCStrGj698iUYTH0mCqoCZeeOGNIE=";
+    sha256 = "sha256-a2NNpQvbhMY66nbk4RAXFb/o1qR5OXPm93ujzS2cxp4=";
   };
 
-  vendorSha256 = "sha256-3o+jizVVHcPZ6nNT2nCF8fLDynnFccI2Y50kbXp2qAI=";
+  vendorSha256 = "sha256-0wyefhY/KR79K9DDI4/8EaA/DFI1rf6wxsBIAZo+rUI=";
 
   ldflags = [
     "-s" "-w"
diff --git a/pkgs/development/tools/efm-langserver/default.nix b/pkgs/development/tools/efm-langserver/default.nix
index 9fb1da1aaa53e..935ec9076ba66 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.37";
+  version = "0.0.38";
 
   src = fetchFromGitHub {
     owner = "mattn";
     repo = "efm-langserver";
     rev = "v${version}";
-    sha256 = "sha256-7weRR1+n0v2HHkM4iYAzWDazmPJUmJj5TQo+dG13B0M=";
+    sha256 = "sha256-+Q3vSifPiE9PyxJnoapJ1CBKUioTHExwBbWJgWD1iNI=";
   };
 
   vendorSha256 = "sha256-tca+1SRrFyvU8ttHmfMFiGXd1A8rQSEWm1Mc2qp0EfI=";
diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix
index 96c45104bd200..a09bd4a99d3e5 100644
--- a/pkgs/development/tools/electron/default.nix
+++ b/pkgs/development/tools/electron/default.nix
@@ -115,43 +115,43 @@ rec {
     headers = "1idam1xirxqxqg4g7n33kdx2skk0r351m00g59a8yx9z82g06ah9";
   };
 
-  electron_13 = mkElectron "13.6.2" {
-    armv7l-linux = "aeb037e24cbcc532b09a604c3421dd1e330afbc3c34b3fb692fcdafbe2d63097";
-    aarch64-linux = "c6014ac6842d81a612e907ce3655edde495f647784ba2bafebd2ada52c065702";
-    x86_64-linux = "529fb7ceb2646324e527a0d9472bbb608e89756a310a8fe1cd929e3a218b45ec";
-    i686-linux = "eeaec723f16adae8b6ba9375745cc143a038905cfa0a9e9ef59ea9026fe1a11b";
-    x86_64-darwin = "86f7f7270ebd36e4957f56c1ef38eecd7d1725f032810c7fef3476955914d6ff";
-    aarch64-darwin = "cc0a19b6ae73f953ce3a3f8d587da8220cd00a284aa705250e81be324b9271dd";
-    headers = "0a5nnj3bd8ly9shx7palaiy0q7n70x8zp1myshcg5pz1qqjjmlw9";
+  electron_13 = mkElectron "13.6.3" {
+    armv7l-linux = "a293a9684e16a427a9f68d101814575a4b1dd232dc3fca47552f906019a6cadc";
+    aarch64-linux = "1599d259832c806b98751a68fb93112711963d259024f0e36f12f064995b3251";
+    x86_64-linux = "7607422a4ba80cda4bd7fefb2fbe2f4e0b9a73db92e1e82dc01012a85b5d0d2b";
+    i686-linux = "db9261c05ed57af2fcd4a84b89d299c76948b9d57ce0dba38e3240eb43935257";
+    x86_64-darwin = "6bf09794d6f020bbaaf806a7758da125137b3c96646f4503eb81b9541e50e02f";
+    aarch64-darwin = "374ddf0581794b31eee900828172f9218193c032c0e46bffcfac6aec95c22f1a";
+    headers = "0v1n8izy83qq3ljs6191a7mzr6nnda5ib9ava1cjddkshl8pampq";
   };
 
-  electron_14 = mkElectron "14.2.1" {
-    armv7l-linux = "d95b5055a53ffb4c502885c3b35f0b938c1be3a7b77e378587d99e6ce009e5d5";
-    aarch64-linux = "52d71b92606b639881b82efd369e4cc3fd01cade476cbb25cafb22e05a8c423b";
-    x86_64-linux = "820271f62c17cdfe61ed7bce4eff1e82c375d317b7e8b47f965ce9fa863e5994";
-    i686-linux = "478efa82bf017f65fda6f90405d3ccc6adb073bd4b2ab2985e550b5ac6135cba";
-    x86_64-darwin = "d1684580a1c6e800e488428cc15cb223e9615a456784a7cb86ec116a0afafb85";
-    aarch64-darwin = "b40c8a5b4680d509e1ab799d5a0bee19cebfc5c948196b35d9a92e52ebc8fafd";
-    headers = "14yaw3kml2kmi7sns8z32kv4cd8anyj5nd7rfxcg74hj2pbl9dvp";
+  electron_14 = mkElectron "14.2.3" {
+    armv7l-linux = "d4ed85690c49b6ec1b532256bd63ccfb670d14da9bb5ccf706e03da2f5fe377e";
+    aarch64-linux = "ac8be1a06ad4b3da16438cc9c257b3c443417d5d9272830b0d51c1f2c9b14f52";
+    x86_64-linux = "c72ce5943e9e5e9b10b0822b3e60de74612db81c4ebaf475e5fa8735af344b22";
+    i686-linux = "9dec585682c0a08f048f1eda6a931cad3c85d47842786aae565af930a7ef7b51";
+    x86_64-darwin = "fb90d61855b63ac1115a60683d476931a6b6bf194e77867192d927bbb9051070";
+    aarch64-darwin = "035e6e2e8d50e867eee37b0631fc95b3f0e8760294af71c23bc73c0f3fc99f83";
+    headers = "0m03nb1nlwd03wn765rs06yiqzkxlk9jafab0zaxywsq94z5np0y";
   };
 
-  electron_15 = mkElectron "15.3.2" {
-    armv7l-linux = "40d2f83a3cd29350edfff442ec1d9a5a681358ad9a7a086adf0ed8d0afa4145e";
-    aarch64-linux = "c4c37b852a5576420d43c0a7d3b62be343fc0340134e9f0a7791c3c9285fe249";
-    x86_64-linux = "10b85813d5280f97125437c65a002aa783f204247d501fb58786ac2a7144bb7d";
-    i686-linux = "4a138dbf3d7e34915de73e0224c434666b0c9c5f335ed22e72014b20147378e6";
-    x86_64-darwin = "0bd7e44d41bcdd048a2ac5dc4e1eb6807e80165ce5c06f1a220b20f10579be75";
-    aarch64-darwin = "9eae07658b7d9a5eb318233a66c3933dba31661cf78b7b156d3d20ab7134f4c3";
-    headers = "0r1qxgkpcn03fd28zbz86ilhsqg0gzp9clbghr5w6gy5ak8y68hz";
+  electron_15 = mkElectron "15.3.4" {
+    armv7l-linux = "caff953cbffdac63307b75a3b78be82ea6003782e981edfdcba14da5ee48b8b6";
+    aarch64-linux = "dba1e09b3e4924148b57539d86840fa22e5500f3e15a694dcd2e26b830c1f780";
+    x86_64-linux = "5e13b64c3b1b025ddea92b3bda577e00fc533902a9cf92bfd87b976637f7b59a";
+    i686-linux = "1253e837e98fc41c14f6b71f0f917b8f42a0777bd2554046567b512f747240d8";
+    x86_64-darwin = "ea1cb757f9c8c4c99c840357ecab42a0bcbe8c7a6a3a1265106c238088ad18f1";
+    aarch64-darwin = "65b9b3235efdb681e3a4db85068dc9fe6dfbcb7fbb146053c0a534e4b44a2f7a";
+    headers = "1xnbzskvf8p5a07bha41qqnw1hb68f019qrda3z2jn96m3qnj46r";
   };
 
-  electron_16 = mkElectron "16.0.1" {
-    armv7l-linux = "9fe58dcc8838fc641e9fc6f2723ece6f12c29169340da3ab754e1afc57634314";
-    aarch64-linux = "991369b7dee6cf9c146c48566153baf898b5ed73efaada2688d1699d69ba366c";
-    x86_64-linux = "4063b6d05c9320fc53535a7d932e03f94ad0aae95432437bbf2f2f222b67c5a5";
-    i686-linux = "68a817a999dcc996497c53e54f06199af0c2de278ff910c28845405d1b1828f0";
-    x86_64-darwin = "7e28327d3efb013f19295e2491208491c66b117a167e9e56d141d0516d6d5587";
-    aarch64-darwin = "f05684ca31d3d98746bca9ec05d425998d60af640958eeb55f464747ceb97bdf";
-    headers = "0sk6h0jqfw2q9h05xdzivwfa6040r4racf82s8i5xkw5s13vsl6d";
+  electron_16 = mkElectron "16.0.5" {
+    armv7l-linux = "16381d22f6f3c7990435598fc50addf8addde2fa749ab23672733ec90b8d53ef";
+    aarch64-linux = "6274bdf2a3894ce9ddb70800df497a034893e1be5e2d07763e339550009d53b6";
+    x86_64-linux = "2830a9f8fc5e7fa4f70997e11d55b250e90db511b29da22699e1fe23b153128c";
+    i686-linux = "363e2588f57f3d31e506e759f723768b543baf248dfb518d06747ffa0a8d8ab1";
+    x86_64-darwin = "0bb7f2c506d8c3e9ef7ec4049baf87a3365cbf80c569f6eb98ddc1a2ddb653e6";
+    aarch64-darwin = "de4eac412a942a0b238792a38c0c80691d1a7ef2eba850c15619c0db9da89f1a";
+    headers = "1pdi86sq60z9bqd81fvgl14c3bk21wk9mwkqyn653yq4zk0mqpi5";
   };
 }
diff --git a/pkgs/development/tools/esbuild/default.nix b/pkgs/development/tools/esbuild/default.nix
index 2c8e18f062e3a..c3ed6ce6b14df 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.13.12";
+  version = "0.14.8";
 
   src = fetchFromGitHub {
     owner = "evanw";
     repo = "esbuild";
     rev = "v${version}";
-    sha256 = "sha256-1SjLbrOYEh0g9weVEqcOT7hMr9asxgSr+rKDNP75Sc4=";
+    sha256 = "sha256-RyxlU6Wf+rHSZ/xuhiCbF+KYhMxHEEh3XvLCdwAVTYw=";
   };
 
   vendorSha256 = "sha256-QPkBR+FscUc3jOvH7olcGUhM6OW4vxawmNJuRQxPuGs=";
diff --git a/pkgs/development/tools/faas-cli/default.nix b/pkgs/development/tools/faas-cli/default.nix
index 425d79219c8d0..835641001034b 100644
--- a/pkgs/development/tools/faas-cli/default.nix
+++ b/pkgs/development/tools/faas-cli/default.nix
@@ -10,14 +10,14 @@ in
 buildGoModule rec {
   pname = "faas-cli";
   # When updating version change rev.
-  version = "0.13.15";
-  rev = "b562392b12a78a11bcff9c6fca5a47146ea2ba0a";
+  version = "0.14.1";
+  rev = "d94600d2d2be52a66e0a15c219634f3bcac27318";
 
   src = fetchFromGitHub {
     owner = "openfaas";
     repo = "faas-cli";
     rev = version;
-    sha256 = "15kjxn0p8nz8147vsm9q5q6wr2w5ssybvn247kynj2n7139iva2f";
+    sha256 = "132m9kv7a4vv65n8y3sq1drks6n1pci9fhvq0s637imf2vxccxqr";
   };
 
   CGO_ENABLED = 0;
diff --git a/pkgs/development/tools/flatpak-builder/default.nix b/pkgs/development/tools/flatpak-builder/default.nix
index cc1a46c834b5e..ce3420fd911b1 100644
--- a/pkgs/development/tools/flatpak-builder/default.nix
+++ b/pkgs/development/tools/flatpak-builder/default.nix
@@ -21,6 +21,7 @@
 , coreutils
 , cpio
 , curl
+, debugedit
 , elfutils
 , flatpak
 , gitMinimal
@@ -46,44 +47,15 @@ let
   installed_test_metadir = "${placeholder "installedTests"}/share/installed-tests/flatpak-builder";
 in stdenv.mkDerivation rec {
   pname = "flatpak-builder";
-  version = "1.0.14";
+  version = "1.2.0";
 
   outputs = [ "out" "doc" "man" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/flatpak/flatpak-builder/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-abZa9PY4BBJ1GMVFGE+d/JqTWM3tqr7yseUGI64rjYs=";
+    sha256 = "sha256-38tqPKONYeB3W3CkaatQUoXhKTYUYt8JAE5tQlHCRqg=";
   };
 
-  nativeBuildInputs = [
-    autoreconfHook
-    docbook_xml_dtd_412
-    docbook_xml_dtd_42
-    docbook_xml_dtd_43
-    docbook_xsl
-    gettext
-    libxml2
-    libxslt
-    pkg-config
-    xmlto
-  ];
-
-  buildInputs = [
-    acl
-    bzip2
-    curl
-    elfutils
-    flatpak
-    glib
-    json-glib
-    libcap
-    libdwarf
-    libsoup
-    libxml2
-    libyaml
-    ostree
-  ];
-
   patches = [
     # patch taken from gtk_doc
     ./respect-xml-catalog-files-var.patch
@@ -113,8 +85,41 @@ in stdenv.mkDerivation rec {
     })
   ];
 
+  nativeBuildInputs = [
+    autoreconfHook
+    # TODO: Remove older versions.
+    # https://github.com/flatpak/flatpak-builder/pull/437
+    docbook_xml_dtd_412
+    docbook_xml_dtd_42
+    docbook_xml_dtd_43
+    docbook_xsl
+    gettext
+    libxml2
+    libxslt
+    pkg-config
+    xmlto
+  ];
+
+  buildInputs = [
+    acl
+    bzip2
+    curl
+    debugedit
+    elfutils
+    flatpak
+    glib
+    json-glib
+    libcap
+    libdwarf
+    libsoup
+    libxml2
+    libyaml
+    ostree
+  ];
+
   configureFlags = [
     "--enable-installed-tests"
+    "--with-system-debugedit"
   ];
 
   makeFlags = [
@@ -125,6 +130,8 @@ in stdenv.mkDerivation rec {
   # Some scripts used by tests  need to use shebangs that are available in Flatpak runtimes.
   dontPatchShebangs = true;
 
+  enableParallelBuilding = true;
+
   # Installed tests
   postFixup = ''
     for file in ${installed_testdir}/{test-builder.sh,test-builder-python.sh}; do
diff --git a/pkgs/development/tools/fnm/default.nix b/pkgs/development/tools/fnm/default.nix
index 4a9c05b4a4e62..efbdce1e592fe 100644
--- a/pkgs/development/tools/fnm/default.nix
+++ b/pkgs/development/tools/fnm/default.nix
@@ -1,21 +1,29 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, installShellFiles, Security }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, installShellFiles
+, DiskArbitration
+, Foundation
+, Security
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "fnm";
-  version = "1.27.0";
+  version = "1.28.2";
 
   src = fetchFromGitHub {
     owner = "Schniz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4qnisgWhdAWZda8iy9nkph7//bVKJuUeEDS1GaAx+FQ=";
+    sha256 = "sha256-8/J7LfSk2a0Bq9v6CH63BIyUkT56EY+4UcEUdwkbZ4U=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+  buildInputs = lib.optionals stdenv.isDarwin [ DiskArbitration Foundation Security ];
 
-  cargoSha256 = "sha256-f3wzuXH2ByXHHOq3zLaMtYm2HJ4BzmZe2e6DQ3V7qVo=";
+  cargoSha256 = "sha256-k3WZpN6DSbFFKLilFEN2lDMbJH5q1KgfE12OoGv+eGk=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/fq/default.nix b/pkgs/development/tools/fq/default.nix
new file mode 100644
index 0000000000000..5d1c730e925b4
--- /dev/null
+++ b/pkgs/development/tools/fq/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildGo117Module
+, fetchFromGitHub
+, fq
+, testVersion
+}:
+
+buildGo117Module rec {
+  pname = "fq";
+  version = "0.0.2";
+
+  src = fetchFromGitHub {
+    owner = "wader";
+    repo = "fq";
+    rev = "v${version}";
+    sha256 = "sha256-ykjt9MPkN5dgTaY2VhApNt5DKh9TFapMpoHwLdpOKcw=";
+  };
+
+  vendorSha256 = "sha256-89rSpxhP35wreo+0AqM+rDICCPchF+yFVvrTtZ2Xwr4=";
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.version=${version}"
+  ];
+
+  passthru.tests = testVersion { package = fq; };
+
+  meta = with lib; {
+    description = "jq for binary formats";
+    homepage = "https://github.com/wader/fq";
+    license = licenses.mit;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/pkgs/development/tools/frugal/default.nix b/pkgs/development/tools/frugal/default.nix
index 8ad529b42d567..fb6a4f4962483 100644
--- a/pkgs/development/tools/frugal/default.nix
+++ b/pkgs/development/tools/frugal/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "frugal";
-  version = "3.14.10";
+  version = "3.14.12";
 
   src = fetchFromGitHub {
     owner = "Workiva";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-K/Nptw0AEP7awS/xXCg6T2Ff3WQc7fKTUB/uEg1WOA4=";
+    sha256 = "sha256-2fXefYvcclcxMeX6JtHjoVNRwJTsUAhxet646BDPHic=";
   };
 
   subPackages = [ "." ];
 
-  vendorSha256 = "sha256-Z42t9dGlNbSwNy2N/ZoEejkbIEeUUk87mcYhkTnxhpc=";
+  vendorSha256 = "sha256-4Ak+mh9ege38iO1QyxvGkYvRyU11QjphfLrit1qfu58=";
 
   meta = with lib; {
     description = "Thrift improved";
diff --git a/pkgs/development/tools/gir/default.nix b/pkgs/development/tools/gir/default.nix
index 2d1cdfc546b28..d72befbaa15c6 100644
--- a/pkgs/development/tools/gir/default.nix
+++ b/pkgs/development/tools/gir/default.nix
@@ -2,17 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gir";
-  version = "unstable-2021-05-05";
+  version = "unstable-2021-11-21";
 
   src = fetchFromGitHub {
     owner = "gtk-rs";
     repo = "gir";
-    rev = "c148542ce89b0bf7cbb9f5ef4179c96a45d022df";
-    sha256 = "0vy366ipwnn0cpp14l1v5g3dpnsr3hd8mjp3333lp0946igfqsy5";
-    leaveDotGit = true; # required for build.rs
+    rev = "a69abbe5ee1a745e554cac9433c65d2ac26a7688";
+    sha256 = "16ygy1bcbcj69x6ss72g9n62qlsd1bacr5hz91f8whw6qm9am46m";
   };
 
-  cargoSha256 = "11as1v88zf0f7l2ngllg5zqycvd05nb4vrsyl1dlarjvbq7fhvv8";
+  cargoSha256 = "14srs2369yryqpkklmfp64fyqxrhf91b2bjy0068nx2myr25m624";
+
+  postPatch = ''
+    rm build.rs
+    sed -i '/build = "build\.rs"/d' Cargo.toml
+    echo "pub const VERSION: &str = \"$version\";" > src/gir_version.rs
+  '';
 
   meta = with lib; {
     description = "Tool to generate rust bindings and user API for glib-based libraries";
diff --git a/pkgs/development/tools/go-task/default.nix b/pkgs/development/tools/go-task/default.nix
index ac81e0f8b29ff..822633982c879 100644
--- a/pkgs/development/tools/go-task/default.nix
+++ b/pkgs/development/tools/go-task/default.nix
@@ -1,20 +1,22 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "go-task";
-  version = "3.9.0";
+  version = "3.9.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "task";
     rev = "v${version}";
-    sha256 = "sha256-BOOtzI45Vbce2XmcleyDOg/+6YDASCIOBvBytZDK7ZA=";
+    sha256 = "sha256-nlIgX7TV3bWi8vaYQ9kXmNzGlVLgRUDNkNApwrAw3EQ=";
   };
 
-  vendorSha256 = "sha256-N23jdHR+Alo3dYkfZ4ygr5UU2NEO/cgrgN52glU2hd8=";
+  vendorSha256 = "sha256-Dmn3LJ+TBO/F3N5lgrNXXrFJ5KTp6r45ZwU11LxvQSg=";
 
   doCheck = false;
 
+  nativeBuildInputs = [ installShellFiles ];
+
   subPackages = [ "cmd/task" ];
 
   ldflags = [
@@ -23,6 +25,8 @@ buildGoModule rec {
 
   postInstall = ''
     ln -s $out/bin/task $out/bin/go-task
+
+    installShellCompletion completion/{bash,fish,zsh}/*
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/tools/go-tools/default.nix b/pkgs/development/tools/go-tools/default.nix
index 38ed470cbe908..0812c949e37ec 100644
--- a/pkgs/development/tools/go-tools/default.nix
+++ b/pkgs/development/tools/go-tools/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "go-tools";
-  version = "2021.1.1";
+  version = "2021.1.2";
 
   src = fetchFromGitHub {
     owner = "dominikh";
     repo = "go-tools";
     rev = version;
-    sha256 = "sha256-Vj5C+PIzZUSD16U4KFO3jR/Gq11P8v3my5eODWb//4c=";
+    sha256 = "sha256-C6ekgrc+zvm8ZLvw1uYR3ZiMLCNSUw1ANEuM4bT4C/o=";
   };
 
   vendorSha256 = "sha256-EjCOMdeJ0whp2pHZvm4VV2K78UNKzl98Z/cQvGhWSyY=";
diff --git a/pkgs/development/tools/gojsontoyaml/default.nix b/pkgs/development/tools/gojsontoyaml/default.nix
index 659532e04e017..02f5421ca004c 100644
--- a/pkgs/development/tools/gojsontoyaml/default.nix
+++ b/pkgs/development/tools/gojsontoyaml/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gojsontoyaml";
-  version = "unstable-2020-12-16";
+  version = "0.1.0";
 
   src = fetchFromGitHub {
     owner = "brancz";
     repo = "gojsontoyaml";
-    rev = "202f76bf8c1f8fb74941a845b349941064603185";
-    sha256 = "sha256-N49iHQh28nAZBGJnLKG/aZPdn5fwPKQpdrXXtX28yss=";
+    rev = "v${version}";
+    sha256 = "sha256-ebxz2uTH7XwD3j6JnsfET6aCGYjvsCjow/sU9pagg50=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/google-java-format/default.nix b/pkgs/development/tools/google-java-format/default.nix
index 1e598dfb1e230..2fa6f23be0ef3 100644
--- a/pkgs/development/tools/google-java-format/default.nix
+++ b/pkgs/development/tools/google-java-format/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "google-java-format";
-  version = "1.12.0";
+  version = "1.13.0";
 
   src = fetchurl {
     url = "https://github.com/google/google-java-format/releases/download/v${version}/google-java-format-${version}-all-deps.jar";
-    sha256 = "sha256-hdqCubcfBK/KzanQCMLSFUC/T6JZJp77XFYdotThElI=";
+    sha256 = "sha256-oDask5L/by5mh5EyTCa9c5Y7CWgu1KDUy8EX/W6j/lU=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/tools/gopls/default.nix b/pkgs/development/tools/gopls/default.nix
index d3eab38627c5d..efbe65799f527 100644
--- a/pkgs/development/tools/gopls/default.nix
+++ b/pkgs/development/tools/gopls/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "gopls";
-  version = "0.7.3";
+  version = "0.7.4";
 
   src = fetchFromGitHub {
     owner = "golang";
     repo = "tools";
     rev = "gopls/v${version}";
-    sha256 = "sha256-aaRaStQ35a/SK4YIR5rjvp8gPxvoNuhLh2AGbr0c6p4=";
+    sha256 = "sha256-tpJkEq3TuEiJ4bChlWXi2241WMcZjChEt1hV1G+h8f8=";
   };
 
   modRoot = "gopls";
-  vendorSha256 = "sha256-8+sWd48w+ghQzznobBPcCQMuc9HLgOuAZPwD6lbbfj8=";
+  vendorSha256 = "sha256-MEL3VRHPSf1Im09Hw+GX+3J3UGt7j29V4kxzoiWhqfk=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/gosec/default.nix b/pkgs/development/tools/gosec/default.nix
index 70e127e9000d4..baadebe53a07b 100644
--- a/pkgs/development/tools/gosec/default.nix
+++ b/pkgs/development/tools/gosec/default.nix
@@ -1,23 +1,34 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
 buildGoModule rec {
   pname = "gosec";
-  version = "2.9.1";
-
-  subPackages = [ "cmd/gosec" ];
+  version = "2.9.5";
 
   src = fetchFromGitHub {
     owner = "securego";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0q9834siya19gj5ckymymyzkd1yn34b4xg5bvcgd7ckcpky143yw";
+    sha256 = "sha256-YXAUDICQhZFeafP/wezd+dLpXpd7waz3wUCVCwVb12I=";
   };
 
-  vendorSha256 = "1h0bbkp9g5nzzjm8qkaag54n9nl711ckkjwibb1gb9ciqwsad33l";
+  vendorSha256 = "sha256-Mob8XxTALtuG9q7gMWKvp1k2cUDKI0QHAeXfQK47NDo=";
+
+  subPackages = [
+    "cmd/gosec"
+  ];
 
   doCheck = false;
 
-  ldflags = [ "-s" "-w" "-X main.Version=${version}" "-X main.GitTag=${src.rev}" "-X main.BuildDate=unknown" ];
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.Version=${version}"
+    "-X main.GitTag=${src.rev}"
+    "-X main.BuildDate=unknown"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/securego/gosec";
diff --git a/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix b/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix
index 3ebbc9b03396b..890ea6cef616b 100644
--- a/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix
+++ b/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix
@@ -3,11 +3,11 @@
 }:
 mkDerivation {
   pname = "dconf2nix";
-  version = "0.0.8";
+  version = "0.0.10";
   src = fetchgit {
     url = "https://github.com/gvolpe/dconf2nix.git";
-    sha256 = "19jk3p0ys3lbqk21lm37a7alkg2vhnmkvcffjqfxrw8p4737hxid";
-    rev = "6bf3d7d4ca9f553a9e1ba4a70a65640114d230b2";
+    sha256 = "0ddjgd97nhcbdkry3668mnjb0kbkklzab7zr12km3p8fv99xzva4";
+    rev = "629faff2deb6a1131c67e241b688000f859dac48";
     fetchSubmodules = true;
   };
   isLibrary = true;
diff --git a/pkgs/development/tools/hcloud/default.nix b/pkgs/development/tools/hcloud/default.nix
index 4cc9722ed4eea..0e9474e4f390e 100644
--- a/pkgs/development/tools/hcloud/default.nix
+++ b/pkgs/development/tools/hcloud/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "hcloud";
-  version = "1.28.1";
+  version = "1.29.0";
 
   src = fetchFromGitHub {
     owner = "hetznercloud";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-gEXQaVBzvOifnCN8TWfadTgypHy+u7lZw+qoyW+mEKU=";
+    sha256 = "sha256-B5L4vK5JkcYHqdyxAsP+tBcA6PtM2Gd4JwtW5nMuIXQ=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
 
-  vendorSha256 = "sha256-SURFlHCrWqTjdHO9ZUmtR2nmKwt0S7rpA6jQ0dDD/EE=";
+  vendorSha256 = "sha256-3YU6vAIzTzkEwyMPH4QSUuQ1PQlrWnfRRCA1fHMny48=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/hjson-go/default.nix b/pkgs/development/tools/hjson-go/default.nix
new file mode 100644
index 0000000000000..ce6da30d3b581
--- /dev/null
+++ b/pkgs/development/tools/hjson-go/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "hjson-go";
+  version = "3.1.1";
+
+  src = fetchFromGitHub {
+    owner = "hjson";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-yU1VkxwQ12CjzITR9X6LLaOfiteN+807rfB/tWcRR1c=";
+  };
+
+  goPackagePath = "github.com/hjson/hjson-go";
+
+  meta = with lib;
+    src.meta // {
+      description = "Utility to convert JSON to and from HJSON";
+      maintainers = with maintainers; [ ehmry ];
+      license = licenses.mit;
+    };
+}
diff --git a/pkgs/development/tools/hostess/default.nix b/pkgs/development/tools/hostess/default.nix
new file mode 100644
index 0000000000000..47eab1abd8ef9
--- /dev/null
+++ b/pkgs/development/tools/hostess/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "hostess";
+  version = "0.5.2";
+
+  src = fetchFromGitHub {
+    owner = "cbednarski";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1izszf60nsa6pyxx3kd8qdrz3h47ylm17r9hzh9wk37f61pmm42j";
+  };
+
+  subPackages = [ "." ];
+
+  vendorSha256 = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
+
+  meta = with lib; {
+    description = "An idempotent command-line utility for managing your /etc/hosts* file.";
+    license = licenses.mit;
+    maintainers = with maintainers; [ edlimerkaj ];
+  };
+}
diff --git a/pkgs/development/tools/hover/default.nix b/pkgs/development/tools/hover/default.nix
index 9b3a222723bf4..388525db6de51 100644
--- a/pkgs/development/tools/hover/default.nix
+++ b/pkgs/development/tools/hover/default.nix
@@ -18,7 +18,7 @@
 
 let
   pname = "hover";
-  version = "0.46.6";
+  version = "0.47.0";
 
   libs = with xorg; [
     libX11.dev
@@ -41,18 +41,18 @@ let
       homepage = "https://github.com/go-flutter-desktop/hover";
       license = licenses.bsd3;
       platforms = platforms.linux;
-      maintainers = with maintainers; [ ericdallo thiagokokada flexagoon ];
+      maintainers = with maintainers; [ ericdallo flexagoon ];
     };
 
     subPackages = [ "." ];
 
-    vendorSha256 = "0b4h7sr9ldvgaq2rz8hyzqv1b5gk8gkc9yxc8m3yzh2fxzznkr87";
+    vendorSha256 = "sha256-GDoX5d2aDfaAx9JsKuS4r8137t3swT6rgcCghmaThSM=";
 
     src = fetchFromGitHub {
       rev = "v${version}";
       owner = "go-flutter-desktop";
       repo = pname;
-      sha256 = "127hz08rvskl6hayn7dwd78g9lz83w7bmhdamk1fhwvay396q9qk";
+      sha256 = "sha256-ch59Wx4g72u7x99807ppURI4I+5aJ/W8Zr35q8X68v4=";
     };
 
     nativeBuildInputs = [ addOpenGLRunpath makeWrapper ];
diff --git a/pkgs/development/tools/iaca/2.1.nix b/pkgs/development/tools/iaca/2.1.nix
index 6170cbb4318bb..a1b9729ccb4a8 100644
--- a/pkgs/development/tools/iaca/2.1.nix
+++ b/pkgs/development/tools/iaca/2.1.nix
@@ -2,10 +2,11 @@
 with lib;
 
 # v2.1: last version with NHM/WSM arch support
-stdenv.mkDerivation {
-  name = "iaca-2.1";
+stdenv.mkDerivation rec {
+  pname = "iaca";
+  version = "2.1";
   src = requireFile {
-    name = "iaca-version-2.1-lin64.zip";
+    name = "iaca-version-${version}-lin64.zip";
     sha256 = "11s1134ijf66wrc77ksky9mnb0lq6ml6fzmr86a6p6r5xclzay2m";
     url = "https://software.intel.com/en-us/articles/intel-architecture-code-analyzer-download";
   };
diff --git a/pkgs/development/tools/iaca/3.0.nix b/pkgs/development/tools/iaca/3.0.nix
index 731b643171724..4da6851af5afb 100644
--- a/pkgs/development/tools/iaca/3.0.nix
+++ b/pkgs/development/tools/iaca/3.0.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, requireFile, unzip }:
 with lib;
 
-stdenv.mkDerivation {
-  name = "iaca-3.0";
+stdenv.mkDerivation rec {
+  pname = "iaca";
+  version = "3.0";
   src = requireFile {
-    name = "iaca-version-v3.0-lin64.zip";
+    name = "iaca-version-v${version}-lin64.zip";
     sha256 = "0qd81bxg269cwwvfmdp266kvhcl3sdvhrkfqdrbmanawk0w7lvp1";
     url = "https://software.intel.com/en-us/articles/intel-architecture-code-analyzer-download";
   };
diff --git a/pkgs/development/tools/java/cfr/default.nix b/pkgs/development/tools/java/cfr/default.nix
index 68841d48d47ed..0676cea4a0415 100644
--- a/pkgs/development/tools/java/cfr/default.nix
+++ b/pkgs/development/tools/java/cfr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cfr";
-  version = "0.151";
+  version = "0.152";
 
   src = fetchurl {
     url = "http://www.benf.org/other/cfr/cfr_${version}.jar";
-    sha256 = "sha256-MW6QFbmvKVP8/0/oa/O7pwXzLnzSW9blNcaY3ool6Dc=";
+    sha256 = "sha256-9obo897Td9e8h9IWqQ6elRLfQVbnWwbGVaFmSK6HZbI=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/jet/default.nix b/pkgs/development/tools/jet/default.nix
index 9ba85cb8fc4f5..6e140620adc96 100644
--- a/pkgs/development/tools/jet/default.nix
+++ b/pkgs/development/tools/jet/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, lib, graalvm11-ce, fetchurl }:
+{ lib, buildGraalvmNativeImage, fetchurl }:
 
-stdenv.mkDerivation rec {
+buildGraalvmNativeImage rec {
   pname = "jet";
   version = "0.1.0";
 
@@ -14,46 +14,22 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-mOUiKEM5tYhtpBpm7KtslyPYFsJ+Wr+4ul6Zi4aS09Q=";
   };
 
-  dontUnpack = true;
-
-  buildInputs = [ graalvm11-ce ];
-
-  buildPhase = ''
-    runHook preBuild
-
-    # https://github.com/borkdude/jet/blob/v0.1.0/script/compile#L16-L29
-    args=("-jar" "$src"
-          "-H:CLibraryPath=${graalvm11-ce.lib}/lib"
-          # Required to build jet on darwin. Do not remove.
-          "${lib.optionalString stdenv.isDarwin "-H:-CheckToolchain"}"
-          "-H:Name=jet"
-          "-H:+ReportExceptionStackTraces"
-          "-J-Dclojure.spec.skip-macros=true"
-          "-J-Dclojure.compiler.direct-linking=true"
-          "-H:IncludeResources=JET_VERSION"
-          "-H:ReflectionConfigurationFiles=${reflectionJson}"
-          "--initialize-at-build-time"
-          "-H:Log=registerResource:"
-          "--verbose"
-          "--no-fallback"
-          "--no-server"
-          "-J-Xmx3g")
-
-     native-image ''${args[@]}
-
-     runHook postBuild
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp jet $out/bin/jet
-  '';
+  extraNativeImageBuildArgs = [
+    "-H:+ReportExceptionStackTraces"
+    "-J-Dclojure.spec.skip-macros=true"
+    "-J-Dclojure.compiler.direct-linking=true"
+    "-H:IncludeResources=JET_VERSION"
+    "-H:ReflectionConfigurationFiles=${reflectionJson}"
+    "--initialize-at-build-time"
+    "-H:Log=registerResource:"
+    "--no-fallback"
+    "--no-server"
+  ];
 
   meta = with lib; {
     description = "CLI to transform between JSON, EDN and Transit, powered with a minimal query language";
     homepage = "https://github.com/borkdude/jet";
     license = licenses.epl10;
-    platforms = graalvm11-ce.meta.platforms;
     maintainers = with maintainers; [ ericdallo ];
   };
 }
diff --git a/pkgs/development/tools/jql/default.nix b/pkgs/development/tools/jql/default.nix
index 381a53f0f1e52..a36dba9660456 100644
--- a/pkgs/development/tools/jql/default.nix
+++ b/pkgs/development/tools/jql/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jql";
-  version = "2.9.4";
+  version = "3.0.4";
 
   src = fetchFromGitHub {
     owner = "yamafaktory";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1rwnmp2rnzwc7anmk7nr8l4ncza8s1f8sn0r2la4ai2sx1iqn06h";
+    sha256 = "sha256-SU8byylr/Rv4lDWkt9+U4UvgCM5kYZeRsTk+hdz0y8w=";
   };
 
-  cargoSha256 = "1c83mmdxci7l3c6ja5fhk4cak1gcbg0r0nlpbpims5gi16nf99r3";
+  cargoSha256 = "sha256-snc5QSaxbnXo6FOceqYucjN+ECo+RonejXda9Fvgggc=";
 
   meta = with lib; {
     description = "A JSON Query Language CLI tool built with Rust";
diff --git a/pkgs/development/tools/jtc/default.nix b/pkgs/development/tools/jtc/default.nix
index 947dee9ee3c0b..947f26664f4d1 100644
--- a/pkgs/development/tools/jtc/default.nix
+++ b/pkgs/development/tools/jtc/default.nix
@@ -2,19 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "jtc";
-  version = "1.75d";
+  version = "1.76";
 
   src = fetchFromGitHub {
     owner = "ldn-softdev";
     repo = pname;
     rev = version;
-    sha256 = "0vgb5hcgml0vmdal494231jq6dlr0qgssqhnrgsvqqjapy8xhnpw";
+    sha256 = "sha256-VATRlOOV4wBInLOm9J0Dp2vhtL5mb0Yxdl/ya0JiqEU=";
   };
 
   buildPhase = ''
     runHook preBuild
 
-    $CXX -o jtc -Wall -std=gnu++14 -Ofast jtc.cpp
+    $CXX -o jtc -Wall -std=gnu++14 -Ofast -pthread -lpthread jtc.cpp
 
     runHook postBuild
   '';
diff --git a/pkgs/development/tools/just/default.nix b/pkgs/development/tools/just/default.nix
index 2d78ec338ac3a..79c726c27964c 100644
--- a/pkgs/development/tools/just/default.nix
+++ b/pkgs/development/tools/just/default.nix
@@ -2,25 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "just";
-  version = "0.10.3";
+  version = "0.10.5";
 
   src = fetchFromGitHub {
     owner = "casey";
     repo = pname;
     rev = version;
-    sha256 = "sha256-r6kP1LbT8ZQoxSuy7jpnHD2/RgcPvmTNfjKzj5ceXRc=";
+    sha256 = "sha256-PbWV8It/ubDbZooJdt/KWihnp221Pexs0U6zMa8KSMw=";
   };
-  cargoSha256 = "sha256-y6RcFH2qDoM3wWnZ6ewC9QyRD3mFsoakToRmon4bAnE=";
+  cargoSha256 = "sha256-VRfk6566SNmvCxtD9EdDxDdBvQuEfjPVggXzt4VoYRg=";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
-  postPatch = ''
-    # this hard codes the compiler, which breaks the aarch64 in particular
-    # we rather want to set the compiler ourself
-    rm .cargo/config
-  '';
-
   postInstall = ''
     installManPage man/just.1
 
diff --git a/pkgs/development/tools/k6/default.nix b/pkgs/development/tools/k6/default.nix
index b311ce4deacb5..82ae89a699e3c 100644
--- a/pkgs/development/tools/k6/default.nix
+++ b/pkgs/development/tools/k6/default.nix
@@ -1,25 +1,31 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "k6";
-  version = "0.31.1";
-
-  goPackagePath = "github.com/loadimpact/k6";
+  version = "0.35.0";
 
   src = fetchFromGitHub {
-    owner = "loadimpact";
+    owner = "grafana";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wngOG0uSNoUU+88oShDpCgPpzuevzJxcwzSzWS3PzAw=";
+    sha256 = "sha256-mSVU/0OdlEfGWxO6Gn/Ji7k2pMO5jWTfxFujN08bZjU=";
   };
 
   subPackages = [ "./" ];
 
+  vendorSha256 = null;
+
+  doCheck = true;
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/k6 version | grep ${version} > /dev/null
+  '';
+
   meta = with lib; {
     description = "A modern load testing tool, using Go and JavaScript";
     homepage = "https://k6.io/";
-    changelog = "https://github.com/loadimpact/k6/releases/tag/v${version}";
+    changelog = "https://github.com/grafana/k6/releases/tag/v${version}";
     license = licenses.agpl3Plus;
-    maintainers = with maintainers; [ offline ];
+    maintainers = with maintainers; [ offline bryanasdev000 ];
   };
 }
diff --git a/pkgs/development/tools/kafka-delta-ingest/default.nix b/pkgs/development/tools/kafka-delta-ingest/default.nix
new file mode 100644
index 0000000000000..9287b4d908747
--- /dev/null
+++ b/pkgs/development/tools/kafka-delta-ingest/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, openssl
+, perl
+, rdkafka
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "kafka-delta-ingest";
+  version = "unstable-2021-12-08";
+
+  src = fetchFromGitHub {
+    owner = "delta-io";
+    repo = pname;
+    rev = "c48c854145b5aab1b8f36cc04978880794a2273c";
+    sha256 = "sha256-q0jOVZlxMHIhnc8y2N8o7Sl5Eg7DfJ96kXrPIV8RD1Y=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    perl
+  ];
+
+  buildFeatures = [ "dynamic-linking" ];
+
+  buildInputs = [
+    openssl
+    rdkafka
+  ];
+
+  cargoSha256 = "sha256-srSu3Rx58Ee2Y+8MVis1ACXBQ92u1mIvy1DNp0qJ4IA=";
+
+  # many tests seem to require a running kafka instance
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A highly efficient daemon for streaming data from Kafka into Delta Lake";
+    homepage = "https://github.com/delta-io/kafka-delta-ingest";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bbigras ];
+  };
+}
diff --git a/pkgs/development/tools/kexpand/default.nix b/pkgs/development/tools/kexpand/default.nix
index 8e45eb2654bd6..35d0a5c2da079 100644
--- a/pkgs/development/tools/kexpand/default.nix
+++ b/pkgs/development/tools/kexpand/default.nix
@@ -1,7 +1,8 @@
 { buildGoPackage, fetchFromGitHub }:
 
 buildGoPackage {
-  name = "kexpand-unstable-2017-05-12";
+  pname = "kexpand";
+  version = "unstable-2017-05-12";
 
   goPackagePath = "github.com/kopeio/kexpand";
 
diff --git a/pkgs/development/tools/konstraint/default.nix b/pkgs/development/tools/konstraint/default.nix
index a59b452b0a4a6..341df436e294b 100644
--- a/pkgs/development/tools/konstraint/default.nix
+++ b/pkgs/development/tools/konstraint/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "konstraint";
-  version = "0.15.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "plexsystems";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lnbci3SUVp/vyArrfRF1dgv0KnqcmGIalhsZjDOhpSg=";
+    sha256 = "sha256-vt8/hYsThBoAxMglF8pjdVphmkbHXsuzaHFJhnGXdU4=";
   };
-  vendorSha256 = "sha256-hfnpZgGIEpfHjM5J93D/aljN6j5XHGknpYXWeRV4Y4Q=";
+  vendorSha256 = "sha256-3m+mN90Edb/yMgVmkokRQrDM2EdB7cb2opL0QZJ8L+U=";
 
   # Exclude go within .github folder
   excludedPackages = ".github";
diff --git a/pkgs/development/tools/kotlin-language-server/default.nix b/pkgs/development/tools/kotlin-language-server/default.nix
new file mode 100644
index 0000000000000..144c159f36378
--- /dev/null
+++ b/pkgs/development/tools/kotlin-language-server/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchurl, unzip, openjdk11, gradle }:
+
+stdenv.mkDerivation rec {
+  pname = "kotlin-language-server";
+  version = "1.2.0";
+  src = fetchurl {
+    url = "https://github.com/fwcd/kotlin-language-server/releases/download/${version}/server.zip";
+    sha256 = "sha256-GXr+sOGa09qeQrfaJYRPsoHULwfMst8tTr4y2cv752k=";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/lib
+    mkdir -p $out/bin
+    cp -r lib/* $out/lib
+    cp -r bin/* $out/bin
+  '';
+
+  nativeBuildInputs = [ unzip gradle ];
+  buildInputs = [ openjdk11 gradle ];
+
+  meta = {
+    description = "kotlin language server";
+    longDescription = ''
+      About Kotlin code completion, linting and more for any editor/IDE
+      using the Language Server Protocol Topics'';
+    homepage = "https://github.com/fwcd/kotlin-language-server";
+    license = lib.licenses.mit;
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/development/tools/krankerl/default.nix b/pkgs/development/tools/krankerl/default.nix
index c44677235d95f..0061ca60bfccf 100644
--- a/pkgs/development/tools/krankerl/default.nix
+++ b/pkgs/development/tools/krankerl/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "krankerl";
-  version = "0.13.2";
+  version = "0.13.3";
 
   src = fetchFromGitHub {
     owner = "ChristophWurst";
     repo = "krankerl";
     rev = "v${version}";
-    sha256 = "sha256-Kol39AtM5m6FC+s5SDbQhWuASkGbeXPlmSGb7axEuK8=";
+    sha256 = "sha256-/zRO+CVYQgx9/j14zgNm/ABzLprt0OYne+O6hOEjSEw=";
   };
 
-  cargoSha256 = "sha256-bPcKe3vE3VIjLJ4iYdF3Gt0sID09gRpxG5TpTGWhnPs=";
+  cargoSha256 = "sha256-LWQRFgDxl2yxP+v1TUENaTGrA/udh84AJvWIkfTJezM=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/ktlint/default.nix b/pkgs/development/tools/ktlint/default.nix
index 96a98222caaa2..21ab6ddf188f7 100644
--- a/pkgs/development/tools/ktlint/default.nix
+++ b/pkgs/development/tools/ktlint/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ktlint";
-  version = "0.43.0";
+  version = "0.43.2";
 
   src = fetchurl {
     url = "https://github.com/pinterest/ktlint/releases/download/${version}/ktlint";
-    sha256 = "0vrfxmqnwwgij8hrcbzp3j0vg90w55r6kw4zhqmjsnnsg29gc82s";
+    sha256 = "sha256-HXTkYwN6U8xyxgFnj69nLSpbDCqWUWeSuqlZbquRD6o=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/kubie/default.nix b/pkgs/development/tools/kubie/default.nix
index 5c86b9a240601..0bf711a2293d3 100644
--- a/pkgs/development/tools/kubie/default.nix
+++ b/pkgs/development/tools/kubie/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kubie";
-  version = "0.15.1";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "sbstp";
     repo = "kubie";
-    sha256 = "sha256-jv5IhTxusB74pnpoopl+fKnXDJI/65D8PSuhGVgbDyo=";
+    sha256 = "sha256-loVGMkB3p+xx7xRHdeSOcck+2vhV461VdNgUIpb/3O0=";
   };
 
-  cargoSha256 = "sha256-6SaW3wqhn251GaH3GRNaSqRLnbQimDBRSt+RPgJG1M8=";
+  cargoSha256 = "sha256-BLKcuumF72MPL408+fUS+7MiTYjvSRORKNP2s0I7McI=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/tools/kustomize/default.nix b/pkgs/development/tools/kustomize/default.nix
index 81635a257f04b..f82c20dccf8e9 100644
--- a/pkgs/development/tools/kustomize/default.nix
+++ b/pkgs/development/tools/kustomize/default.nix
@@ -2,9 +2,9 @@
 
 buildGoModule rec {
   pname = "kustomize";
-  version = "4.4.0";
+  version = "4.4.1";
   # rev is the commit of the tag, mainly for kustomize version command output
-  rev = "9e8e7a7fe99ec9fbf801463e8607928322fc5245";
+  rev = "b2d65ddc98e09187a8e38adc27c30bab078c1dbf";
 
   ldflags = let t = "sigs.k8s.io/kustomize/api/provenance"; in
     [
@@ -17,16 +17,15 @@ buildGoModule rec {
     owner = "kubernetes-sigs";
     repo = pname;
     rev = "kustomize/v${version}";
-    sha256 = "sha256-dHCUuKEUJ4xKMfeR629y/cdM7ZBgP3GxUSKGQYj9Ahg=";
+    sha256 = "sha256-gq5SrI1f6ctGIL0Arf8HQMfgnlglwWlsn1r27Ug70gs=";
   };
 
-  # TODO: Remove once https://github.com/kubernetes-sigs/kustomize/pull/3708 got merged.
-  doCheck = false;
+  doCheck = true;
 
   # avoid finding test and development commands
   sourceRoot = "source/kustomize";
 
-  vendorSha256 = "sha256-jP3Jf8QtdNnCrXO3JfyQNCfMwz9d3UaKVTh8DSbx6vA=";
+  vendorSha256 = "sha256-2GbRk7A8VwGONmL74cc2TA+MLyJrSSOQPLaded5s90k=";
 
   meta = with lib; {
     description = "Customization of kubernetes YAML configurations";
diff --git a/pkgs/development/tools/lazygit/default.nix b/pkgs/development/tools/lazygit/default.nix
index fa95b2c2b4e8c..2e06ed3829a8c 100644
--- a/pkgs/development/tools/lazygit/default.nix
+++ b/pkgs/development/tools/lazygit/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "lazygit";
-  version = "0.31.3";
+  version = "0.31.4";
 
   src = fetchFromGitHub {
     owner = "jesseduffield";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-CgWN7xfWX0aSwNAPt2UDftyD0CbQQSUY6SMlyP9TSjc=";
+    sha256 = "sha256-yze4UaSEbyHwHSyj0mM7uCzaDED+p4O3HVVlHJi/FKU=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/mani/default.nix b/pkgs/development/tools/mani/default.nix
new file mode 100644
index 0000000000000..8cfebb34861e7
--- /dev/null
+++ b/pkgs/development/tools/mani/default.nix
@@ -0,0 +1,45 @@
+{ buildGoModule, fetchFromGitHub, lib, installShellFiles, git, makeWrapper}:
+
+buildGoModule rec {
+  pname = "mani";
+  version = "0.10.0";
+
+  src = fetchFromGitHub {
+    owner = "alajmo";
+    repo = "mani";
+    rev = "v${version}";
+    sha256 = "sha256-9rcgPeYFHdIN73K0zGPEHqFFLFkVYkNYRXJ+0/Zo4zI=";
+  };
+
+  vendorSha256 = "sha256-ZivzDfjx2djzS0Xm3GISK3zpB5fUUMgy2o4Ti1Z9wMM=";
+
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
+
+  postInstall = ''
+    installShellCompletion --cmd mani \
+      --bash <($out/bin/mani completion bash) \
+      --fish <($out/bin/mani completion fish) \
+      --zsh <($out/bin/mani completion zsh)
+
+    wrapProgram $out/bin/mani \
+      --prefix PATH : ${lib.makeBinPath [ git ]}
+  '';
+
+  # Skip tests
+  # The repo's test folder has a README.md with detailed information. I don't
+  # know how to wrap the dependencies for these integration tests so skip for now.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "CLI tool to help you manage multiple repositories";
+    longDescription = ''
+      mani is a CLI tool that helps you manage multiple repositories. It's useful
+      when you are working with microservices, multi-project systems, many
+      libraries or just a bunch of repositories and want a central place for
+      pulling all repositories and running commands over them.
+    '';
+    homepage = "https://manicli.com/";
+    changelog = "https://github.com/alajmo/mani/releases/tag/v${version}";
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/tools/manul/default.nix b/pkgs/development/tools/manul/default.nix
index 306c9143c5c6c..377cd2856df53 100644
--- a/pkgs/development/tools/manul/default.nix
+++ b/pkgs/development/tools/manul/default.nix
@@ -1,7 +1,8 @@
 { lib, buildGoPackage, fetchFromGitHub }:
 
 buildGoPackage {
-  name = "manul-unstable-2016-09-30";
+  pname = "manul";
+  version = "unstable-2016-09-30";
 
   goPackagePath = "github.com/kovetskiy/manul";
   excludedPackages = "tests";
diff --git a/pkgs/development/tools/metal-cli/default.nix b/pkgs/development/tools/metal-cli/default.nix
index c5488cdb900a4..f88fcd9f42909 100644
--- a/pkgs/development/tools/metal-cli/default.nix
+++ b/pkgs/development/tools/metal-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "metal-cli";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "equinix";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-dGeOFrsqhW0+aQyB4f6pvv4ZBawqKX2+WRskDWoLS7E=";
+    sha256 = "sha256-Zl0OuyqF+bNsp1AqnS8jhQlY7l4U6OjHHgth7pRPwEc=";
   };
 
-  vendorSha256 = "sha256-ifSfeJjrZI1Hrsq64zAGBiLVc8GKvq+Ddg26gQooyTs=";
+  vendorSha256 = "sha256-F8d5i9jvjY11Pv6w0ZXI3jr0Wix++B/w9oRTuJGpQfE=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/misc/act/default.nix b/pkgs/development/tools/misc/act/default.nix
index 88f75d70fccc3..43bcaa57309d9 100644
--- a/pkgs/development/tools/misc/act/default.nix
+++ b/pkgs/development/tools/misc/act/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "act";
-  version = "0.2.24";
+  version = "0.2.25";
 
   src = fetchFromGitHub {
     owner = "nektos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-BWSw1yELxLDMUg2LxXuy+N0IRxLQYtVdzny1FGYVXEY=";
+    sha256 = "sha256-Eo5uWBLriYa7tLpPMa34+l6BYQe9useL1tN9gqUSt0k=";
   };
 
-  vendorSha256 = "sha256-dLIsVWN/PjcH0CUYRmn4YaF8Pczf/gaWhD3lulqGiuA=";
+  vendorSha256 = "sha256-1v87WcQoVyTyCStiMAoThidIMRqJwdsYNF987kQp5YM=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/misc/autoconf/2.13.nix b/pkgs/development/tools/misc/autoconf/2.13.nix
index 26d6d9178edd5..dc36028332ff7 100644
--- a/pkgs/development/tools/misc/autoconf/2.13.nix
+++ b/pkgs/development/tools/misc/autoconf/2.13.nix
@@ -1,10 +1,11 @@
-{lib, stdenv, fetchurl, m4, perl, xz}:
+{ lib, stdenv, fetchurl, m4, perl, xz }:
 
 stdenv.mkDerivation rec {
-  name = "autoconf-2.13";
+  pname = "autoconf";
+  version = "2.13";
 
   src = fetchurl {
-    url = "mirror://gnu/autoconf/${name}.tar.gz";
+    url = "mirror://gnu/autoconf/autoconf-${version}.tar.gz";
     sha256 = "07krzl4czczdsgzrrw9fiqx35xcf32naf751khg821g5pqv12qgh";
   };
 
diff --git a/pkgs/development/tools/misc/autoconf/2.64.nix b/pkgs/development/tools/misc/autoconf/2.64.nix
index 6976a291ae724..8c6e104e11b83 100644
--- a/pkgs/development/tools/misc/autoconf/2.64.nix
+++ b/pkgs/development/tools/misc/autoconf/2.64.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, m4, perl }:
 
 stdenv.mkDerivation rec {
-  name = "autoconf-2.64";
+  pname = "autoconf";
+  version = "2.64";
 
   src = fetchurl {
-    url = "mirror://gnu/autoconf/${name}.tar.xz";
+    url = "mirror://gnu/autoconf/autoconf-${version}.tar.xz";
     sha256 = "0j3jdjpf5ly39dlp0bg70h72nzqr059k0x8iqxvaxf106chpgn9j";
   };
 
@@ -24,7 +25,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   # Make the Autotest test suite run in parallel.
-  preCheck =''
+  preCheck = ''
     export TESTSUITEFLAGS="-j$NIX_BUILD_CORES"
   '';
 
diff --git a/pkgs/development/tools/misc/autoconf/2.69.nix b/pkgs/development/tools/misc/autoconf/2.69.nix
index f2f8ca0a858c9..870b0ae1d34a8 100644
--- a/pkgs/development/tools/misc/autoconf/2.69.nix
+++ b/pkgs/development/tools/misc/autoconf/2.69.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, m4, perl }:
 
 stdenv.mkDerivation rec {
-  name = "autoconf-2.69";
+  pname = "autoconf";
+  version = "2.69";
 
   src = fetchurl {
-    url = "mirror://gnu/autoconf/${name}.tar.xz";
+    url = "mirror://gnu/autoconf/autoconf-${version}.tar.xz";
     sha256 = "113nlmidxy9kjr45kg9x3ngar4951mvag1js2a3j8nxcz34wxsv4";
   };
 
@@ -25,7 +26,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   # Make the Autotest test suite run in parallel.
-  preCheck =''
+  preCheck = ''
     export TESTSUITEFLAGS="-j$NIX_BUILD_CORES"
   '';
 
diff --git a/pkgs/development/tools/misc/autoconf/2.71-fix-race.patch b/pkgs/development/tools/misc/autoconf/2.71-fix-race.patch
new file mode 100644
index 0000000000000..e3b28554352be
--- /dev/null
+++ b/pkgs/development/tools/misc/autoconf/2.71-fix-race.patch
@@ -0,0 +1,36 @@
+https://savannah.gnu.org/support/index.php?110521
+https://git.savannah.gnu.org/cgit/autoconf.git/patch/?id=3a9802d60156809c139e9b4620bf04917e143ee2
+--- a/lib/Autom4te/FileUtils.pm
++++ b/lib/Autom4te/FileUtils.pm
+@@ -34,12 +34,12 @@ This perl module provides various general purpose file handling functions.
+ 
+ =cut
+ 
+-use 5.006;
++use 5.008;
+ use strict;
+ use warnings FATAL => 'all';
+ 
+ use Exporter;
+-use File::stat;
++use Time::HiRes qw(stat);
+ use IO::File;
+ 
+ use Autom4te::Channels;
+@@ -115,10 +115,11 @@ sub mtime ($)
+   return 0
+     if $file eq '-' || ! -f $file;
+ 
+-  my $stat = stat ($file)
++  my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
++    $atime,$mtime,$ctime,$blksize,$blocks) = stat ($file)
+     or fatal "cannot stat $file: $!";
+ 
+-  return $stat->mtime;
++  return $mtime;
+ }
+ 
+ 
+-- 
+cgit v1.2.1
+
diff --git a/pkgs/development/tools/misc/autoconf/default.nix b/pkgs/development/tools/misc/autoconf/default.nix
index a2c160f566226..ac342086f6c51 100644
--- a/pkgs/development/tools/misc/autoconf/default.nix
+++ b/pkgs/development/tools/misc/autoconf/default.nix
@@ -13,6 +13,11 @@ stdenv.mkDerivation rec {
     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
+  ];
 
   nativeBuildInputs = [ m4 perl ];
   buildInputs = [ m4 ];
diff --git a/pkgs/development/tools/misc/autogen/default.nix b/pkgs/development/tools/misc/autogen/default.nix
index 8f2121c259927..61df38f68ce98 100644
--- a/pkgs/development/tools/misc/autogen/default.nix
+++ b/pkgs/development/tools/misc/autogen/default.nix
@@ -53,25 +53,23 @@ stdenv.mkDerivation rec {
     export MAN_PAGE_DATE=$(date '+%Y-%m-%d' -d "@$SOURCE_DATE_EPOCH")
   '';
 
-  configureFlags =
-    [
-      # Make sure to use a static value for the timeout. If we do not set a value
-      # here autogen will select one based on the execution time of the configure
-      # phase which is not really reproducible.
-      #
-      # If you are curious about the number 78, it has been cargo-culted from
-      # Debian: https://salsa.debian.org/debian/autogen/-/blob/master/debian/rules#L21
-      "--enable-timeout=78"
-    ]
-    ++ (lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-      "--with-libxml2=${libxml2.dev}"
-      "--with-libxml2-cflags=-I${libxml2.dev}/include/libxml2"
-      # the configure check for regcomp wants to run a host program
-      "libopts_cv_with_libregex=yes"
-      #"MAKEINFO=${buildPackages.texinfo}/bin/makeinfo"
-    ])
-    # See: https://sourceforge.net/p/autogen/bugs/187/
-    ++ lib.optionals stdenv.isDarwin [ "ac_cv_func_utimensat=no" ];
+  configureFlags = [
+    "--with-libxml2=${libxml2.dev}"
+    "--with-libxml2-cflags=-I${libxml2.dev}/include/libxml2"
+    # Make sure to use a static value for the timeout. If we do not set a value
+    # here autogen will select one based on the execution time of the configure
+    # phase which is not really reproducible.
+    #
+    # If you are curious about the number 78, it has been cargo-culted from
+    # Debian: https://salsa.debian.org/debian/autogen/-/blob/master/debian/rules#L21
+    "--enable-timeout=78"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    # the configure check for regcomp wants to run a host program
+    "libopts_cv_with_libregex=yes"
+    #"MAKEINFO=${buildPackages.texinfo}/bin/makeinfo"
+  ]
+  # See: https://sourceforge.net/p/autogen/bugs/187/
+  ++ lib.optionals stdenv.isDarwin [ "ac_cv_func_utimensat=no" ];
 
   #doCheck = true; # not reliable
 
diff --git a/pkgs/development/tools/misc/automake/automake-1.11.x.nix b/pkgs/development/tools/misc/automake/automake-1.11.x.nix
index 5e3167d182dcb..02d9f4c4872e6 100644
--- a/pkgs/development/tools/misc/automake/automake-1.11.x.nix
+++ b/pkgs/development/tools/misc/automake/automake-1.11.x.nix
@@ -1,7 +1,8 @@
 { lib, stdenv, fetchurl, perl, autoconf }:
 
 stdenv.mkDerivation rec {
-  name = "automake-1.11.6";
+  pname = "automake";
+  version = "1.11.6";
 
   # TODO: Remove the `aclocal' wrapper when $ACLOCAL_PATH support is
   # available upstream; see
@@ -11,7 +12,7 @@ stdenv.mkDerivation rec {
   setupHook = ./setup-hook.sh;
 
   src = fetchurl {
-    url = "mirror://gnu/automake/${name}.tar.xz";
+    url = "mirror://gnu/automake/automake-${version}.tar.xz";
     sha256 = "1ffbc6cc41f0ea6c864fbe9485b981679dc5e350f6c4bc6c3512f5a4226936b5";
   };
 
diff --git a/pkgs/development/tools/misc/automake/automake-1.15.x.nix b/pkgs/development/tools/misc/automake/automake-1.15.x.nix
index 0088eb74cc487..470827c2b45e9 100644
--- a/pkgs/development/tools/misc/automake/automake-1.15.x.nix
+++ b/pkgs/development/tools/misc/automake/automake-1.15.x.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, perl, autoconf }:
 
 stdenv.mkDerivation rec {
-  name = "automake-1.15.1";
+  pname = "automake";
+  version = "1.15.1";
 
   src = fetchurl {
-    url = "mirror://gnu/automake/${name}.tar.xz";
+    url = "mirror://gnu/automake/automake-${version}.tar.xz";
     sha256 = "1bzd9g32dfm4rsbw93ld9x7b5nc1y6i4m6zp032qf1i28a8s6sxg";
   };
 
diff --git a/pkgs/development/tools/misc/automake/automake-1.16.x.nix b/pkgs/development/tools/misc/automake/automake-1.16.x.nix
index 4547f745a98f4..89a5b4879004a 100644
--- a/pkgs/development/tools/misc/automake/automake-1.16.x.nix
+++ b/pkgs/development/tools/misc/automake/automake-1.16.x.nix
@@ -1,13 +1,12 @@
 { lib, stdenv, fetchurl, perl, autoconf }:
 
 stdenv.mkDerivation rec {
-  # When updating, beware of https://github.com/NixOS/nixpkgs/pull/131928#issuecomment-896614165
   pname = "automake";
-  version = "1.16.3";
+  version = "1.16.5";
 
   src = fetchurl {
     url = "mirror://gnu/automake/automake-${version}.tar.xz";
-    sha256 = "0fmz2fhmzcpacnprl5msphvaflwiy0hvpgmqlgfny72ddijzfazz";
+    sha256 = "0sdl32qxdy7m06iggmkkvf7j520rmmgbsjzbm7fgnxwxdp6mh7gh";
   };
 
   nativeBuildInputs = [ autoconf perl ];
diff --git a/pkgs/development/tools/misc/blackfire/default.nix b/pkgs/development/tools/misc/blackfire/default.nix
index 6ba1ba061079e..6f82e0731088d 100644
--- a/pkgs/development/tools/misc/blackfire/default.nix
+++ b/pkgs/development/tools/misc/blackfire/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "blackfire";
-  version = "2.5.1";
+  version = "2.5.2";
 
   src = fetchurl {
     url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire/blackfire_${version}_amd64.deb";
-    sha256 = "wak7LE5j6OKIHqCsEGrxSq1FAFzehMetYj6c/Zkr9dk=";
+    sha256 = "1RO5yabSNpIz5lWXngMOZ1S2vtnLEkXIj1ZoIinRrQ0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/misc/blackfire/php-probe.nix b/pkgs/development/tools/misc/blackfire/php-probe.nix
index 00facf91e3aa6..31ea03a2f8681 100644
--- a/pkgs/development/tools/misc/blackfire/php-probe.nix
+++ b/pkgs/development/tools/misc/blackfire/php-probe.nix
@@ -15,14 +15,15 @@ let
     "7.3" = "blackfire-20180731";
     "7.4" = "blackfire-20190902";
     "8.0" = "blackfire-20200930";
+    "8.1" = "blackfire-20210902";
   }.${lib.versions.majorMinor php.version} or (throw "Unsupported PHP version.");
 in stdenv.mkDerivation rec {
   pname = "php-blackfire";
-  version = "1.69.0";
+  version = "1.71.0";
 
   src = fetchurl {
     url = "https://packages.blackfire.io/debian/pool/any/main/b/blackfire-php/blackfire-php_${version}_amd64.deb";
-    sha256 = "5wE6yCl4N6PJiL2up9y/me/Sg2hZ4HnIKsbuhDzyFco=";
+    sha256 = "8LsYkzNy98qQ9niXrRCkL47Ouyd33ZICnSXx29WIWl4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/misc/circleci-cli/default.nix b/pkgs/development/tools/misc/circleci-cli/default.nix
index 70d68e92b4e99..77fe16c442d30 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.16122";
+  version = "0.1.16535";
 
   src = fetchFromGitHub {
     owner = "CircleCI-Public";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zIBEKGp9icdBLwZBMf30d8JxmJwwWrO/arh8ZvMHTSI=";
+    sha256 = "sha256-IsFvUWNuQsECh47M6wDpuyDYXrKKaZp2SSmEGFryzM0=";
   };
 
   vendorSha256 = "sha256-efrjHwHobML/t2lDSFx+UyAOca9dHjZHcAxkFzJqWEo=";
diff --git a/pkgs/development/tools/misc/cl-launch/default.nix b/pkgs/development/tools/misc/cl-launch/default.nix
index 4fe93694ab77f..35cfd01ff9252 100644
--- a/pkgs/development/tools/misc/cl-launch/default.nix
+++ b/pkgs/development/tools/misc/cl-launch/default.nix
@@ -1,22 +1,11 @@
-{lib, stdenv, fetchurl}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="cl-launch";
-    version="4.1.4.1";
-    name="${baseName}-${version}";
-    hash="09450yknzb0m3375lg4k8gdypmk3xwl8m1krv1kvhylmrm3995mz";
-    url="http://common-lisp.net/project/xcvb/cl-launch/cl-launch-4.1.4.1.tar.gz";
-    sha256="09450yknzb0m3375lg4k8gdypmk3xwl8m1krv1kvhylmrm3995mz";
-  };
-  buildInputs = [
-  ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
+{ lib, stdenv, fetchurl }:
+stdenv.mkDerivation rec {
+  pname = "cl-launch";
+  version = "4.1.4.1";
+
   src = fetchurl {
-    inherit (s) url sha256;
+    url = "http://common-lisp.net/project/xcvb/cl-launch/cl-launch-${version}.tar.gz";
+    sha256 = "sha256-v5aURs2Verhn2HmGiijvY9br20OTPFrOGBWsb6cHhSQ=";
   };
 
   preConfigure = ''
@@ -28,11 +17,10 @@ stdenv.mkDerivation {
     sed -e 's/\t\t@/\t\t/g' -i Makefile
   '';
 
-  meta = {
-    inherit (s) version;
+  meta = with lib; {
     description = "Common Lisp launcher script";
-    license = lib.licenses.llgpl21 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.unix;
+    license = licenses.llgpl21;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/misc/cl-launch/default.upstream b/pkgs/development/tools/misc/cl-launch/default.upstream
deleted file mode 100644
index ff7ee9446d28d..0000000000000
--- a/pkgs/development/tools/misc/cl-launch/default.upstream
+++ /dev/null
@@ -1,2 +0,0 @@
-url http://common-lisp.net/project/xcvb/cl-launch/
-version_link '.-[0-9].*[0-9][.]tar[.][a-z0-9]*$'
diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix
index 9128b3f190e10..5e3c750852df3 100644
--- a/pkgs/development/tools/misc/clojure-lsp/default.nix
+++ b/pkgs/development/tools/misc/clojure-lsp/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, graalvm11-ce, babashka, fetchurl, fetchFromGitHub, clojure, writeScript }:
+{ lib, stdenv, buildGraalvmNativeImage, babashka, fetchurl, fetchFromGitHub, clojure, writeScript }:
 
-stdenv.mkDerivation rec {
+buildGraalvmNativeImage rec {
   pname = "clojure-lsp";
   version = "2021.11.02-15.24.47";
 
@@ -16,48 +16,22 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-k0mzibcLAspklCPE6f2qsUm9bwSvcJRgWecMBq7mpF0=";
   };
 
-  GRAALVM_HOME = graalvm11-ce;
-  CLOJURE_LSP_JAR = jar;
-  CLOJURE_LSP_XMX = "-J-Xmx6g";
+  # https://github.com/clojure-lsp/clojure-lsp/blob/2021.11.02-15.24.47/graalvm/native-unix-compile.sh#L18-L27
+  DTLV_LIB_EXTRACT_DIR = "/tmp";
 
-  buildInputs = [ graalvm11-ce clojure ];
-
-  buildPhase = with lib; ''
-    runHook preBuild
-
-    # https://github.com/clojure-lsp/clojure-lsp/blob/2021.11.02-15.24.47/graalvm/native-unix-compile.sh#L18-L27
-    DTLV_LIB_EXTRACT_DIR=$(mktemp -d)
-    export DTLV_LIB_EXTRACT_DIR=$DTLV_LIB_EXTRACT_DIR
-
-    args=("-jar" "$CLOJURE_LSP_JAR"
-          "-H:+ReportExceptionStackTraces"
-          "-H:CLibraryPath=${graalvm11-ce.lib}/lib"
-          "-H:CLibraryPath=$DTLV_LIB_EXTRACT_DIR"
-          "--verbose"
-          "--no-fallback"
-          "--native-image-info"
-          "$CLOJURE_LSP_XMX")
-
-    native-image ''${args[@]}
-
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    install -Dm755 ./clojure-lsp $out/bin/clojure-lsp
-
-    runHook postInstall
-  '';
+  extraNativeImageBuildArgs = [
+    "-H:CLibraryPath=${DTLV_LIB_EXTRACT_DIR}"
+    "--no-fallback"
+    "--native-image-info"
+  ];
 
   doCheck = true;
   checkPhase = ''
     runHook preCheck
 
     export HOME="$(mktemp -d)"
-    ./clojure-lsp --version | fgrep -q '${version}'
-    ${babashka}/bin/bb integration-test ./clojure-lsp
+    ./${pname} --version | fgrep -q '${version}'
+    ${babashka}/bin/bb integration-test ./${pname}
 
     runHook postCheck
   '';
@@ -88,7 +62,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/clojure-lsp/clojure-lsp";
     license = licenses.mit;
     maintainers = with maintainers; [ ericdallo babariviere ];
-    platforms = graalvm11-ce.meta.platforms;
     # Depends on datalevin that is x86_64 only
     # https://github.com/juji-io/datalevin/blob/bb7d9328f4739cddea5d272b5cd6d6dcb5345da6/native/src/java/datalevin/ni/Lib.java#L86-L102
     broken = !stdenv.isx86_64;
diff --git a/pkgs/development/tools/misc/coreboot-toolchain/default.nix b/pkgs/development/tools/misc/coreboot-toolchain/default.nix
index a9d8ab302ea4e..d746a6d1ff334 100644
--- a/pkgs/development/tools/misc/coreboot-toolchain/default.nix
+++ b/pkgs/development/tools/misc/coreboot-toolchain/default.nix
@@ -1,72 +1,77 @@
-{ bison
-, callPackage
-, curl
-, fetchgit
-, flex
-, getopt
-, git
-, gnat11
-, lib
-, perl
-, stdenvNoCC
-, zlib
-}:
-
+{ lib, callPackage }:
 let
-  common = arch: stdenvNoCC.mkDerivation rec {
-    pname = "coreboot-toolchain-${arch}";
-    version = "4.15";
+  common = arch: callPackage (
+    { bison
+    , callPackage
+    , curl
+    , fetchgit
+    , flex
+    , getopt
+    , git
+    , gnat11
+    , lib
+    , perl
+    , stdenvNoCC
+    , zlib
+    }:
 
-    src = fetchgit {
-      url = "https://review.coreboot.org/coreboot";
-      rev = version;
-      sha256 = "1qsb2ca22h5f0iwc254qsfm7qcn8967ir8aybdxa1pakgmnfsyp9";
-      fetchSubmodules = false;
-      leaveDotGit = true;
-      postFetch = ''
-        patchShebangs $out/util/crossgcc/buildgcc
-        PATH=${lib.makeBinPath [ getopt ]}:$PATH $out/util/crossgcc/buildgcc -W > $out/.crossgcc_version
-        rm -rf $out/.git
-      '';
-    };
+    stdenvNoCC.mkDerivation rec {
+      pname = "coreboot-toolchain-${arch}";
+      version = "4.15";
+
+      src = fetchgit {
+        url = "https://review.coreboot.org/coreboot";
+        rev = version;
+        sha256 = "1qsb2ca22h5f0iwc254qsfm7qcn8967ir8aybdxa1pakgmnfsyp9";
+        fetchSubmodules = false;
+        leaveDotGit = true;
+        postFetch = ''
+          patchShebangs $out/util/crossgcc/buildgcc
+          PATH=${lib.makeBinPath [ getopt ]}:$PATH $out/util/crossgcc/buildgcc -W > $out/.crossgcc_version
+          rm -rf $out/.git
+        '';
+      };
 
-    nativeBuildInputs = [ bison curl git perl ];
-    buildInputs = [ flex gnat11 zlib ];
+      nativeBuildInputs = [ bison curl git perl ];
+      buildInputs = [ flex gnat11 zlib ];
 
-    enableParallelBuilding = true;
-    dontConfigure = true;
-    dontInstall = true;
+      enableParallelBuilding = true;
+      dontConfigure = true;
+      dontInstall = true;
 
-    postPatch = ''
-      mkdir -p util/crossgcc/tarballs
+      postPatch = ''
+        mkdir -p util/crossgcc/tarballs
 
-      ${lib.concatMapStringsSep "\n" (
-        file: "ln -s ${file.archive} util/crossgcc/tarballs/${file.name}"
-        ) (callPackage ./stable.nix { })
-      }
+        ${lib.concatMapStringsSep "\n" (
+          file: "ln -s ${file.archive} util/crossgcc/tarballs/${file.name}"
+          ) (callPackage ./stable.nix { })
+        }
 
-      patchShebangs util/genbuild_h/genbuild_h.sh
-    '';
+        patchShebangs util/genbuild_h/genbuild_h.sh
+      '';
+
+      buildPhase = ''
+        export CROSSGCC_VERSION=$(cat .crossgcc_version)
+        make crossgcc-${arch} CPUS=$NIX_BUILD_CORES DEST=$out
+      '';
 
-    buildPhase = ''
-      export CROSSGCC_VERSION=$(cat .crossgcc_version)
-      make crossgcc-${arch} CPUS=$NIX_BUILD_CORES DEST=$out
-    '';
+      meta = with lib; {
+        homepage = "https://www.coreboot.org";
+        description = "coreboot toolchain for ${arch} targets";
+        license = with licenses; [ bsd2 bsd3 gpl2 lgpl2Plus gpl3Plus ];
+        maintainers = with maintainers; [ felixsinger ];
+        platforms = platforms.linux;
+      };
+    }
+  );
+in
 
-    meta = with lib; {
-      homepage = "https://www.coreboot.org";
-      description = "coreboot toolchain for ${arch} targets";
-      license = with licenses; [ bsd2 bsd3 gpl2 lgpl2Plus gpl3Plus ];
-      maintainers = with maintainers; [ felixsinger ];
-      platforms = platforms.linux;
-    };
-  };
-in {
-  i386 = common "i386";
-  x86_64 = common "x64";
-  arm = common "arm";
-  aarch64 = common "aarch64";
-  riscv = common "riscv";
-  ppc64 = common "ppc64";
-  nds32le = common "nds32le";
-}
+lib.listToAttrs (map (arch: lib.nameValuePair arch (common arch {})) [
+  "i386"
+  "x64"
+  "arm"
+  "aarch64"
+  "riscv"
+  "ppc64"
+  "nds32le"
+])
diff --git a/pkgs/development/tools/misc/cproto/default.nix b/pkgs/development/tools/misc/cproto/default.nix
index cfd2ed81e7c45..c8448f44153b8 100644
--- a/pkgs/development/tools/misc/cproto/default.nix
+++ b/pkgs/development/tools/misc/cproto/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "cproto";
-  version = "4.7s";
+  version = "4.7t";
 
   src = fetchurl {
     urls = [
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
       # No version listings and apparently no versioned tarball over http(s).
       "ftp://ftp.invisible-island.net/cproto/cproto-${version}.tgz"
     ];
-    sha256 = "sha256-TGpZNahykQjRcUhgmwgDRQ/OFRWFiW+7gXhfHGEYQrg=";
+    sha256 = "sha256-PM6CpxaHtp4KPiNIn+glunLmk+VZzPGTOVIIrA65b+U=";
   };
 
   # patch made by Joe Khoobyar copied from gentoo bugs
diff --git a/pkgs/development/tools/misc/cvise/default.nix b/pkgs/development/tools/misc/cvise/default.nix
index 80d2a73cc4251..d6ad65164b74b 100644
--- a/pkgs/development/tools/misc/cvise/default.nix
+++ b/pkgs/development/tools/misc/cvise/default.nix
@@ -1,17 +1,17 @@
 { lib, buildPythonApplication, fetchFromGitHub, bash, cmake, flex
 , libclang, llvm, unifdef
-, pebble, psutil, pytestCheckHook, pytest-flake8
+, chardet, pebble, psutil, pytestCheckHook, pytest-flake8
 }:
 
 buildPythonApplication rec {
   pname = "cvise";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "marxin";
     repo = "cvise";
     rev = "v${version}";
-    sha256 = "1x2i8nv0nncgvr07znhh2slngbrg8qcsz2zqx76bcyq9hssn6yal";
+    sha256 = "0cfzikkhp91hjgxjk3izzczb8d9p8v9zsfyk6iklk92n5qf1aakq";
   };
 
   patches = [
@@ -21,7 +21,7 @@ buildPythonApplication rec {
 
   nativeBuildInputs = [ cmake flex llvm.dev ];
   buildInputs = [ bash libclang llvm llvm.dev unifdef ];
-  propagatedBuildInputs = [ pebble psutil ];
+  propagatedBuildInputs = [ chardet pebble psutil ];
   checkInputs = [ pytestCheckHook pytest-flake8 unifdef ];
 
   # 'cvise --command=...' generates a script with hardcoded shebang.
diff --git a/pkgs/development/tools/misc/debugedit/default.nix b/pkgs/development/tools/misc/debugedit/default.nix
index 0328d1f597b20..afac7168c5b34 100644
--- a/pkgs/development/tools/misc/debugedit/default.nix
+++ b/pkgs/development/tools/misc/debugedit/default.nix
@@ -1,8 +1,8 @@
 #TODO@deliciouslytyped The tool seems to unnecessarily force mutable access for the debugedit `-l` feature
 {fetchgit, lib, stdenv, autoreconfHook, pkg-config, elfutils, help2man, util-linux}:
-stdenv.mkDerivation {
-  name = "debugedit";
-  version = "unstable-2021-07-05";
+stdenv.mkDerivation rec {
+  pname = "debugedit";
+  version = "5.0";
 
   nativeBuildInputs = [ autoreconfHook pkg-config help2man ];
   buildInputs = [ elfutils ];
@@ -10,8 +10,8 @@ stdenv.mkDerivation {
 
   src = fetchgit {
     url = "git://sourceware.org/git/debugedit.git";
-    rev = "e04296ddf34cbc43303d7af32ab3a73ac20af51a";
-    sha256 = "19cjkpzhdn2z6fl7xw8556m6kyrb7nxwbz2rmiv2rynyp74yg44z";
+    rev = "debugedit-${version}";
+    sha256 = "VTZ7ybQT3DfKIfK0lH+JiehCJyJ+qpQ0bAn1/f+Pscs=";
   };
 
   preBuild = ''
diff --git a/pkgs/development/tools/misc/editorconfig-checker/default.nix b/pkgs/development/tools/misc/editorconfig-checker/default.nix
index 37f455e91bedd..13377334cce41 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.3.5";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "editorconfig-checker";
     repo = "editorconfig-checker";
     rev = version;
-    sha256 = "sha256-t1qvmTs6hOrAnq5hjU2Qjt33vdW9MuSOvWCCY82db+g=";
+    sha256 = "sha256-uP+AgQO1k9fic7r0pOKqO5lUHKEf7Pwaw2U2a6ghzz0=";
   };
 
-  vendorSha256 = "sha256-Rs7u/ZepnMNg5EZ/HWqSdO428KOkxpSbo7rl0treqUY=";
+  vendorSha256 = "sha256-SrBrYyExeDHXhezvtfGLtm8NM1eX4/8kzwUICQLZDjo=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/misc/elfutils/default.nix b/pkgs/development/tools/misc/elfutils/default.nix
index c89dd58329944..adee94dafa91e 100644
--- a/pkgs/development/tools/misc/elfutils/default.nix
+++ b/pkgs/development/tools/misc/elfutils/default.nix
@@ -7,16 +7,15 @@
 # TODO: Look at the hardcoded paths to kernel, modules etc.
 stdenv.mkDerivation rec {
   pname = "elfutils";
-  version = "0.185";
+  version = "0.186";
 
   src = fetchurl {
     url = "https://sourceware.org/elfutils/ftp/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-3I0+dKsglGXn9Wjhs7uaWhQvhlbitX0QBJpz2irmtaY=";
+    sha256 = "sha256-f2+5FJsWc9ONkXig0+D7ih7E9TqfTC/4lGlgmHlkEXc=";
   };
 
   patches = [
     ./debug-info-from-env.patch
-    ./musl-cdefs_h.patch
     (fetchpatch {
       name = "fix-aarch64_fregs.patch";
       url = "https://git.alpinelinux.org/aports/plain/main/elfutils/fix-aarch64_fregs.patch?id=2e3d4976eeffb4704cf83e2cc3306293b7c7b2e9";
diff --git a/pkgs/development/tools/misc/elfutils/musl-cdefs_h.patch b/pkgs/development/tools/misc/elfutils/musl-cdefs_h.patch
deleted file mode 100644
index 1b5bf466217b4..0000000000000
--- a/pkgs/development/tools/misc/elfutils/musl-cdefs_h.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-# avoids a warning about including an internal header when
-# compiling with musl-libc
-diff -crb --new-file a/lib/fixedsizehash.h b/lib/fixedsizehash.h
-*** a/lib/fixedsizehash.h	2020-06-11 11:37:46.000000000 -0400
---- b/lib/fixedsizehash.h	2021-01-21 05:52:59.000000000 -0500
-***************
-*** 30,36 ****
-  #include <errno.h>
-  #include <stdlib.h>
-  #include <string.h>
-- #include <sys/cdefs.h>
-  
-  #include <system.h>
-  
---- 30,35 ----
diff --git a/pkgs/development/tools/misc/gdb/default.nix b/pkgs/development/tools/misc/gdb/default.nix
index 62290548ec7bc..c173b96f6eb06 100644
--- a/pkgs/development/tools/misc/gdb/default.nix
+++ b/pkgs/development/tools/misc/gdb/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, targetPackages
 
 # Build time
-, fetchurl, pkg-config, perl, texinfo, setupDebugInfoDirs, buildPackages
+, fetchurl, fetchpatch, pkg-config, perl, texinfo, setupDebugInfoDirs, buildPackages
 
 # Run time
 , ncurses, readline, gmp, mpfr, expat, libipt, zlib, dejagnu, sourceHighlight
@@ -41,6 +41,13 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./debug-info-from-env.patch
+
+    # Pull upstream fix for gcc-12. Will be included in gdb-12.
+    (fetchpatch {
+      name = "gcc-12.patch";
+      url = "https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=e97436b1b789dcdb6ffb502263f4c86f8bc22996";
+      sha256 = "1mpgw6s9qgnwhwyg3hagc6vhqhvia0l1s8nr22bcahwqxi3wvzcw";
+    })
   ] ++ lib.optionals stdenv.isDarwin [
     ./darwin-target-match.patch
   ];
diff --git a/pkgs/development/tools/misc/gede/default.nix b/pkgs/development/tools/misc/gede/default.nix
index 7b5e8552f82c9..1725929026286 100644
--- a/pkgs/development/tools/misc/gede/default.nix
+++ b/pkgs/development/tools/misc/gede/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "gede";
-  version = "2.17.1";
+  version = "2.18.1";
 
   src = fetchurl {
     url = "http://gede.dexar.se/uploads/source/${pname}-${version}.tar.xz";
-    sha256 = "0hbsy2ymzgl8xd9mnh43gxdfncy7g6czxfvfyh7zp3ij8yiwf8x3";
+    sha256 = "sha256-iIP4QYBiowRs9vjgF73JVKKle8f7ig2exaIp1+ozRp0=";
   };
 
   nativeBuildInputs = [ qmake makeWrapper python3 ];
diff --git a/pkgs/development/tools/misc/gengetopt/default.nix b/pkgs/development/tools/misc/gengetopt/default.nix
index 2c09f925d3d8b..d24d4b66d66c9 100644
--- a/pkgs/development/tools/misc/gengetopt/default.nix
+++ b/pkgs/development/tools/misc/gengetopt/default.nix
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
     rm tests/test_conf_parser_save.sh
   '';
 
-  enableParallelBuilding = true;
+  # test suite is not thread safe
+  enableParallelBuilding = false;
 
   nativeBuildInputs = [ texinfo help2man ];
 
diff --git a/pkgs/development/tools/misc/gperf/3.0.x.nix b/pkgs/development/tools/misc/gperf/3.0.x.nix
index 339511f2cc022..f83b245417ee5 100644
--- a/pkgs/development/tools/misc/gperf/3.0.x.nix
+++ b/pkgs/development/tools/misc/gperf/3.0.x.nix
@@ -1,10 +1,11 @@
-{lib, stdenv, fetchurl, autoreconfHook }:
+{ lib, stdenv, fetchurl, autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  name = "gperf-3.0.4";
+  pname = "gperf";
+  version = "3.0.4";
 
   src = fetchurl {
-    url = "mirror://gnu/gperf/${name}.tar.gz";
+    url = "mirror://gnu/gperf/gperf-${version}.tar.gz";
     sha256 = "0gnnm8iqcl52m8iha3sxrzrl9mcyhg7lfrhhqgdn4zj00ji14wbn";
   };
 
diff --git a/pkgs/development/tools/misc/help2man/default.nix b/pkgs/development/tools/misc/help2man/default.nix
index 24edb2c5955b8..4521eee95a21e 100644
--- a/pkgs/development/tools/misc/help2man/default.nix
+++ b/pkgs/development/tools/misc/help2man/default.nix
@@ -14,8 +14,10 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-ZznkyqQuau0zmb5Dh8p5OZZAlnM06RcohjuOqpIlgr4=";
   };
 
-  nativeBuildInputs = [ gettext perlPackages.LocaleGettext ];
-  buildInputs = [ perlPackages.perl perlPackages.LocaleGettext ];
+  strictDeps = true;
+
+  nativeBuildInputs = [ gettext perlPackages.perl perlPackages.LocaleGettext ];
+  buildInputs = [ perlPackages.LocaleGettext ];
 
   doCheck = false;                                # target `check' is missing
 
diff --git a/pkgs/development/tools/misc/indent/default.nix b/pkgs/development/tools/misc/indent/default.nix
index 1f5236456dbca..ce8ce9d8a48b5 100644
--- a/pkgs/development/tools/misc/indent/default.nix
+++ b/pkgs/development/tools/misc/indent/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, texinfo }:
+{ lib, stdenv, fetchurl, texinfo, buildPackages, pkgsStatic }:
 
 stdenv.mkDerivation rec {
   pname = "indent";
@@ -10,14 +10,18 @@ stdenv.mkDerivation rec {
   };
 
   patches = [ ./darwin.patch ];
+  makeFlags = [ "AR=${stdenv.cc.targetPrefix}ar" ];
 
-  buildInputs = [ texinfo ];
+  strictDeps = true;
+  nativeBuildInputs = [ texinfo ];
+  pkgsBuildBuild = [ buildPackages.stdenv.cc ]; # needed when cross-compiling
 
   NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang
     "-Wno-implicit-function-declaration";
 
   hardeningDisable = [ "format" ];
 
+  passthru.tests.static = pkgsStatic.indent;
   meta = {
     homepage = "https://www.gnu.org/software/indent/";
     description = "A source code reformatter";
diff --git a/pkgs/development/tools/misc/itstool/default.nix b/pkgs/development/tools/misc/itstool/default.nix
index 01a0fab369e21..2c189cbf5a616 100644
--- a/pkgs/development/tools/misc/itstool/default.nix
+++ b/pkgs/development/tools/misc/itstool/default.nix
@@ -9,9 +9,11 @@ stdenv.mkDerivation rec {
     sha256 = "1acjgf8zlyk7qckdk19iqaca4jcmywd7vxjbcs1mm6kaf8icqcv2";
   };
 
-  pythonPath = [ python3.pkgs.libxml2 ];
+  strictDeps = true;
+
+  nativeBuildInputs = [ python3 python3.pkgs.wrapPython ];
   buildInputs = [ python3 python3.pkgs.libxml2 ];
-  nativeBuildInputs = [ python3.pkgs.wrapPython ];
+  pythonPath = [ python3.pkgs.libxml2 ];
 
   postFixup = ''
     wrapPythonPrograms
diff --git a/pkgs/development/tools/misc/kibana/6.x.nix b/pkgs/development/tools/misc/kibana/6.x.nix
index 9ba19c836b597..cd81975ee4452 100644
--- a/pkgs/development/tools/misc/kibana/6.x.nix
+++ b/pkgs/development/tools/misc/kibana/6.x.nix
@@ -18,20 +18,20 @@ let
   shas =
     if enableUnfree
     then {
-      x86_64-linux  = "1xwklhqxk5rmdrgy2simwvijzq29kyq5w2w3hy53xh2i1zlnyvq3";
-      x86_64-darwin = "1qpdn28mrpggd55khzqqld6r89l0hb870rigxcw2i8p2yx3jv106";
+      x86_64-linux  = "1a501lavxhckb3l93sbrbqyshicwkk6p89frry4x8p037xcfpy0x";
+      x86_64-darwin = "0zm45af30shhcg3mdhcma6rms1hyrx62rm5jzwnz9kxv4d30skbw";
     }
     else {
-      x86_64-linux  = "1wpnwal2rq5v2bsp5qil9j6dplif7ql5394sy4ia5ghp2fzifxmf";
-      x86_64-darwin = "12z8i0wbw10c097glbpdy350p0h3957433f51qfx2p0ghgkzkhzv";
+      x86_64-linux  = "0wfdipf21apyily7mvlqgyc7m5jpr96zgrryzwa854z3xb2vw8zg";
+      x86_64-darwin = "1nklfx4yz6hsxlljvnvwjy7pncv9mzngl84710xad5jlyras3sdj";
     };
 
 in stdenv.mkDerivation rec {
-  name = "kibana-${optionalString (!enableUnfree) "oss-"}${version}";
+  pname = "kibana${optionalString (!enableUnfree) "-oss"}";
   version = elk6Version;
 
   src = fetchurl {
-    url = "https://artifacts.elastic.co/downloads/kibana/${name}-${plat}-${arch}.tar.gz";
+    url = "https://artifacts.elastic.co/downloads/kibana/${pname}-${version}-${plat}-${arch}.tar.gz";
     sha256 = shas.${stdenv.hostPlatform.system} or (throw "Unknown architecture");
   };
 
diff --git a/pkgs/development/tools/misc/kibana/7.x.nix b/pkgs/development/tools/misc/kibana/7.x.nix
index 7a2e0d1d3647e..455f95a69eb09 100644
--- a/pkgs/development/tools/misc/kibana/7.x.nix
+++ b/pkgs/development/tools/misc/kibana/7.x.nix
@@ -4,23 +4,23 @@
 , stdenv
 , makeWrapper
 , fetchurl
-, nodejs-14_x
+, nodejs-16_x
 , coreutils
 , which
 }:
 
 with lib;
 let
-  nodejs = nodejs-14_x;
+  nodejs = nodejs-16_x;
   inherit (builtins) elemAt;
   info = splitString "-" stdenv.hostPlatform.system;
   arch = elemAt info 0;
   plat = elemAt info 1;
   shas =
     {
-      x86_64-linux  = "19p9s4sir982bb1zcldrbphhwfs9i11p0q28vgc421iqg10kjlf1";
-      x86_64-darwin = "0qq557ngwwakifidyrccga4cadj9k9pzhjwy4msmbcgf5pb86qyc";
-      aarch64-linux = "183cp1h8d3n7xfcpcys4hf36palczxa409afyp62kzyzckngy0j8";
+      x86_64-linux  = "0jivwsrq31n0qfznrsjfsn65sg3wpbd990afn2wzjnj4drq7plz6";
+      x86_64-darwin = "02483aqzrccq1x6rwznmcazijdd46yxj9vnbihnvp2xyp3w9as45";
+      aarch64-linux = "0iw155gkkl1hshc80lfj95rssg039ig21wz1l3srmmf2x4f934s9";
     };
 
 in stdenv.mkDerivation rec {
diff --git a/pkgs/development/tools/misc/libtree/default.nix b/pkgs/development/tools/misc/libtree/default.nix
new file mode 100644
index 0000000000000..f852b7ea7adfd
--- /dev/null
+++ b/pkgs/development/tools/misc/libtree/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, binutils
+, chrpath
+, cmake
+, cxxopts
+, elfio
+, termcolor
+, gtest
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libtree";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "haampie";
+    repo = "libtree";
+    rev = "v${version}";
+    sha256 = "sha256-j54fUwMkX4x4MwL8gMraguK9GqQRBjCC+W6ojFnQdHQ=";
+  };
+
+  patches = [
+    # add missing include
+    # https://github.com/haampie/libtree/pull/42
+    (fetchpatch {
+      url = "https://github.com/haampie/libtree/commit/219643ff6edcae42c9546b8ba38cfec9d19b034e.patch";
+      sha256 = "sha256-vdFmmBdBiOT3QBcwd3SuiolcaFTFAb88kU1KN8229K0=";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace src/main.cpp \
+      --replace "std::string strip = \"strip\";" "std::string strip = \"${binutils}/bin/strip\";" \
+      --replace "std::string chrpath = \"chrpath\";" "std::string chrpath = \"${chrpath}/bin/chrpath\";"
+  '';
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ cxxopts elfio termcolor ];
+
+  doCheck = true;
+
+  checkInputs = [ gtest ];
+
+  cmakeFlags = [ "-DLIBTREE_BUILD_TESTS=ON" ];
+
+  meta = with lib; {
+    description = "Tree ldd with an option to bundle dependencies into a single folder";
+    homepage = "https://github.com/haampie/libtree";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ prusnak rardiol ];
+  };
+}
diff --git a/pkgs/development/tools/misc/lit/default.nix b/pkgs/development/tools/misc/lit/default.nix
index 7c7549e3844c2..8a36c52e7ae31 100644
--- a/pkgs/development/tools/misc/lit/default.nix
+++ b/pkgs/development/tools/misc/lit/default.nix
@@ -2,11 +2,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "lit";
-  version = "0.10.0";
+  version = "13.0.0";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "13s8v9s2f284fnh47xdyc75gq2i9pndl39q8v4wl7v7lwri2hv8r";
+    sha256 = "4da976f3d114e4ba6ba06cbe660ce1393230f4519c4df15b90bc1840f00e4195";
   };
 
   passthru = {
diff --git a/pkgs/development/tools/misc/lttng-tools/default.nix b/pkgs/development/tools/misc/lttng-tools/default.nix
index 71485a2da3dae..42ff56ed8b049 100644
--- a/pkgs/development/tools/misc/lttng-tools/default.nix
+++ b/pkgs/development/tools/misc/lttng-tools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lttng-tools";
-  version = "2.13.0";
+  version = "2.13.1";
 
   src = fetchurl {
     url = "https://lttng.org/files/lttng-tools/${pname}-${version}.tar.bz2";
-    sha256 = "1ri93h45q5z6l3qmg4dakm9aj0ghfmf38i63q51yjh58lzwr9j4d";
+    sha256 = "sha256-z+bffagx/Af9B85GtELC7BB0wWevc/OhsdL7oMRTyLU=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/tools/misc/lttng-ust/2.12.nix b/pkgs/development/tools/misc/lttng-ust/2.12.nix
new file mode 100644
index 0000000000000..b3ef1fe65e7f5
--- /dev/null
+++ b/pkgs/development/tools/misc/lttng-ust/2.12.nix
@@ -0,0 +1,4 @@
+import ./generic.nix {
+  version = "2.12.2";
+  sha256 = "sha256-vNDwZLbKiMcthOdg6sNHKuXIKEEcY0Q1kivun841n8c=";
+}
diff --git a/pkgs/development/tools/misc/lttng-ust/default.nix b/pkgs/development/tools/misc/lttng-ust/default.nix
index 244d6442c15fd..3bace16de56d2 100644
--- a/pkgs/development/tools/misc/lttng-ust/default.nix
+++ b/pkgs/development/tools/misc/lttng-ust/default.nix
@@ -1,42 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, liburcu, numactl, python3 }:
-
-# NOTE:
-#   ./configure ...
-#   [...]
-#   LTTng-UST will be built with the following options:
-#
-#   Java support (JNI): Disabled
-#   sdt.h integration:  Disabled
-#   [...]
-#
-# Debian builds with std.h (systemtap).
-
-stdenv.mkDerivation rec {
-  pname = "lttng-ust";
-  version = "2.13.0";
-
-  src = fetchurl {
-    url = "https://lttng.org/files/lttng-ust/${pname}-${version}.tar.bz2";
-    sha256 = "0l0p6y2zrd9hgd015dhafjmpcj7waz762n6wf5ws1xlwcwrwkr2l";
-  };
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ numactl python3 ];
-
-  preConfigure = ''
-    patchShebangs .
-  '';
-
-  propagatedBuildInputs = [ liburcu ];
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    description = "LTTng Userspace Tracer libraries";
-    homepage = "https://lttng.org/";
-    license = with licenses; [ lgpl21Only gpl2Only mit ];
-    platforms = platforms.linux;
-    maintainers = [ maintainers.bjornfor ];
-  };
-
+import ./generic.nix {
+  version = "2.13.1";
+  sha256 = "sha256-Vme/Amnh5i4tnLl0xFb/huBAG9eqO/yNX9uXIzJJ7dw=";
 }
diff --git a/pkgs/development/tools/misc/lttng-ust/generic.nix b/pkgs/development/tools/misc/lttng-ust/generic.nix
new file mode 100644
index 0000000000000..e6e67352c859c
--- /dev/null
+++ b/pkgs/development/tools/misc/lttng-ust/generic.nix
@@ -0,0 +1,44 @@
+{ version, sha256 }:
+
+{ lib, stdenv, fetchurl, pkg-config, liburcu, numactl, python3 }:
+
+# NOTE:
+#   ./configure ...
+#   [...]
+#   LTTng-UST will be built with the following options:
+#
+#   Java support (JNI): Disabled
+#   sdt.h integration:  Disabled
+#   [...]
+#
+# Debian builds with std.h (systemtap).
+
+stdenv.mkDerivation rec {
+  pname = "lttng-ust";
+  inherit version;
+
+  src = fetchurl {
+    url = "https://lttng.org/files/lttng-ust/${pname}-${version}.tar.bz2";
+    inherit sha256;
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ numactl python3 ];
+
+  preConfigure = ''
+    patchShebangs .
+  '';
+
+  propagatedBuildInputs = [ liburcu ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "LTTng Userspace Tracer libraries";
+    homepage = "https://lttng.org/";
+    license = with licenses; [ lgpl21Only gpl2Only mit ];
+    platforms = platforms.linux;
+    maintainers = [ maintainers.bjornfor ];
+  };
+
+}
diff --git a/pkgs/development/tools/misc/netcoredbg/deps.nix b/pkgs/development/tools/misc/netcoredbg/deps.nix
index cbcef4c1720bb..8285009fc20ff 100644
--- a/pkgs/development/tools/misc/netcoredbg/deps.nix
+++ b/pkgs/development/tools/misc/netcoredbg/deps.nix
@@ -1,84 +1,84 @@
 { fetchNuGet }: [
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.Analyzers"; version = "1.1.0"; sha256 = "08r667hj2259wbim1p3al5qxkshydykmb7nd9ygbjlg4mmydkapc"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.Common"; version = "2.3.0"; sha256 = "1p29v4499qpyh7k7fv1li2y3c688zg95ic8gq9if1nqmjciz5w7p"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.CSharp"; version = "2.3.0"; sha256 = "1g893rqc8hmd59hdigq0fwm3w261i7cm1h2wciqp7406f0gz67x5"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "2.3.0"; sha256 = "121dhnfjd5jzm410dk79s8xk5jvd09xa0w5q3lbpqc7bs4wxmq4p"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.Scripting.Common"; version = "2.3.0"; sha256 = "11f11kvgrdgs86ykz4104jx1iw78v6af48hpdrhmr7y7h5334ziq"; })
-  (fetchNuGet { name = "Microsoft.CSharp"; version = "4.4.0"; sha256 = "1niyzqqfyhvh4zpxn8bcyyldynqlw0rfr1apwry4b3yrdnjh1hhh"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
-  (fetchNuGet { name = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; })
-  (fetchNuGet { name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
-  (fetchNuGet { name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
-  (fetchNuGet { name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
-  (fetchNuGet { name = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
-  (fetchNuGet { name = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
-  (fetchNuGet { name = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
-  (fetchNuGet { name = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
-  (fetchNuGet { name = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
-  (fetchNuGet { name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
-  (fetchNuGet { name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
-  (fetchNuGet { name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
-  (fetchNuGet { name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
-  (fetchNuGet { name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
-  (fetchNuGet { name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
-  (fetchNuGet { name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
-  (fetchNuGet { name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
-  (fetchNuGet { name = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
-  (fetchNuGet { name = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
-  (fetchNuGet { name = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
-  (fetchNuGet { name = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
-  (fetchNuGet { name = "System.Collections.Immutable"; version = "1.3.1"; sha256 = "17615br2x5riyx8ivf1dcqwj6q3ipq1bi5hqhw54yfyxmx38ddva"; })
-  (fetchNuGet { name = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
-  (fetchNuGet { name = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
-  (fetchNuGet { name = "System.Diagnostics.FileVersionInfo"; version = "4.3.0"; sha256 = "094hx249lb3vb336q7dg3v257hbxvz2jnalj695l7cg5kxzqwai7"; })
-  (fetchNuGet { name = "System.Diagnostics.StackTrace"; version = "4.3.0"; sha256 = "0ash4h9k0m7xsm0yl79r0ixrdz369h7y922wipp5gladmlbvpyjd"; })
-  (fetchNuGet { name = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
-  (fetchNuGet { name = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
-  (fetchNuGet { name = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; })
-  (fetchNuGet { name = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
-  (fetchNuGet { name = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
-  (fetchNuGet { name = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
-  (fetchNuGet { name = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
-  (fetchNuGet { name = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
-  (fetchNuGet { name = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
-  (fetchNuGet { name = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
-  (fetchNuGet { name = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
-  (fetchNuGet { name = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
-  (fetchNuGet { name = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
-  (fetchNuGet { name = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
-  (fetchNuGet { name = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
-  (fetchNuGet { name = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
-  (fetchNuGet { name = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
-  (fetchNuGet { name = "System.Reflection.Metadata"; version = "1.4.2"; sha256 = "08b7b43vczlliv8k7q43jinjfrxwpljsglw7sxmc6sd7d54pd1vi"; })
-  (fetchNuGet { name = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
-  (fetchNuGet { name = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
-  (fetchNuGet { name = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
-  (fetchNuGet { name = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
-  (fetchNuGet { name = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
-  (fetchNuGet { name = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
-  (fetchNuGet { name = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
-  (fetchNuGet { name = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
-  (fetchNuGet { name = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
-  (fetchNuGet { name = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
-  (fetchNuGet { name = "System.Text.Encoding.CodePages"; version = "4.3.0"; sha256 = "0lgxg1gn7pg7j0f942pfdc9q7wamzxsgq3ng248ikdasxz0iadkv"; })
-  (fetchNuGet { name = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
-  (fetchNuGet { name = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
-  (fetchNuGet { name = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
-  (fetchNuGet { name = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Parallel"; version = "4.3.0"; sha256 = "1rr3qa4hxwyj531s4nb3bwrxnxxwz617i0n9gh6x7nr7dd3ayzgh"; })
-  (fetchNuGet { name = "System.Threading.Thread"; version = "4.3.0"; sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4"; })
-  (fetchNuGet { name = "System.ValueTuple"; version = "4.3.0"; sha256 = "1227k7fxbxapq7dms4lvwwjdf3pr1jcsmhy2nzzhj6g6hs530hxn"; })
-  (fetchNuGet { name = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
-  (fetchNuGet { name = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
-  (fetchNuGet { name = "System.Xml.XmlDocument"; version = "4.3.0"; sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi"; })
-  (fetchNuGet { name = "System.Xml.XPath"; version = "4.3.0"; sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci"; })
-  (fetchNuGet { name = "System.Xml.XPath.XDocument"; version = "4.3.0"; sha256 = "1wxckyb7n1pi433xzz0qcwcbl1swpra64065mbwwi8dhdc4kiabn"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "1.1.0"; sha256 = "08r667hj2259wbim1p3al5qxkshydykmb7nd9ygbjlg4mmydkapc"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "2.3.0"; sha256 = "1p29v4499qpyh7k7fv1li2y3c688zg95ic8gq9if1nqmjciz5w7p"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "2.3.0"; sha256 = "1g893rqc8hmd59hdigq0fwm3w261i7cm1h2wciqp7406f0gz67x5"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "2.3.0"; sha256 = "121dhnfjd5jzm410dk79s8xk5jvd09xa0w5q3lbpqc7bs4wxmq4p"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Scripting.Common"; version = "2.3.0"; sha256 = "11f11kvgrdgs86ykz4104jx1iw78v6af48hpdrhmr7y7h5334ziq"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.4.0"; sha256 = "1niyzqqfyhvh4zpxn8bcyyldynqlw0rfr1apwry4b3yrdnjh1hhh"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; })
+  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
+  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
+  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
+  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
+  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
+  (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
+  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
+  (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
+  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.3.1"; sha256 = "17615br2x5riyx8ivf1dcqwj6q3ipq1bi5hqhw54yfyxmx38ddva"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
+  (fetchNuGet { pname = "System.Diagnostics.FileVersionInfo"; version = "4.3.0"; sha256 = "094hx249lb3vb336q7dg3v257hbxvz2jnalj695l7cg5kxzqwai7"; })
+  (fetchNuGet { pname = "System.Diagnostics.StackTrace"; version = "4.3.0"; sha256 = "0ash4h9k0m7xsm0yl79r0ixrdz369h7y922wipp5gladmlbvpyjd"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
+  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
+  (fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
+  (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.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
+  (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.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.4.2"; sha256 = "08b7b43vczlliv8k7q43jinjfrxwpljsglw7sxmc6sd7d54pd1vi"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
+  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.3.0"; sha256 = "0lgxg1gn7pg7j0f942pfdc9q7wamzxsgq3ng248ikdasxz0iadkv"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Parallel"; version = "4.3.0"; sha256 = "1rr3qa4hxwyj531s4nb3bwrxnxxwz617i0n9gh6x7nr7dd3ayzgh"; })
+  (fetchNuGet { pname = "System.Threading.Thread"; version = "4.3.0"; sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4"; })
+  (fetchNuGet { pname = "System.ValueTuple"; version = "4.3.0"; sha256 = "1227k7fxbxapq7dms4lvwwjdf3pr1jcsmhy2nzzhj6g6hs530hxn"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
+  (fetchNuGet { pname = "System.Xml.XmlDocument"; version = "4.3.0"; sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi"; })
+  (fetchNuGet { pname = "System.Xml.XPath"; version = "4.3.0"; sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci"; })
+  (fetchNuGet { pname = "System.Xml.XPath.XDocument"; version = "4.3.0"; sha256 = "1wxckyb7n1pi433xzz0qcwcbl1swpra64065mbwwi8dhdc4kiabn"; })
 ]
diff --git a/pkgs/development/tools/misc/pahole/default.nix b/pkgs/development/tools/misc/pahole/default.nix
index 86e1dac021c29..e0100154f3be8 100644
--- a/pkgs/development/tools/misc/pahole/default.nix
+++ b/pkgs/development/tools/misc/pahole/default.nix
@@ -1,20 +1,19 @@
-{ lib, stdenv, fetchgit, cmake, elfutils, zlib }:
+{ lib, stdenv, fetchgit, pkg-config, libbpf, cmake, elfutils, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "pahole";
-  version = "1.20";
+  version = "1.22";
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/devel/pahole/pahole.git";
     rev = "v${version}";
-    sha256 = "11q9dpfi4qj2v8z0nlf8c0079mlv10ljhh0d1yr0j4ds3saacd15";
-    fetchSubmodules = true;
+    sha256 = "sha256-U1/i9WNlLphPIcNysC476sqil/q9tMYmu+Y6psga8I0=";
   };
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ elfutils zlib ];
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ elfutils zlib libbpf ];
 
   # Put libraries in "lib" subdirectory, not top level of $out
-  cmakeFlags = [ "-D__LIB=lib" ];
+  cmakeFlags = [ "-D__LIB=lib" "-DLIBBPF_EMBEDDED=OFF" ];
 
   meta = with lib; {
     homepage = "https://git.kernel.org/cgit/devel/pahole/pahole.git/";
@@ -22,6 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
 
     platforms = platforms.linux;
-    maintainers = [ maintainers.bosu ];
+    maintainers = with maintainers; [ bosu martinetd ];
   };
 }
diff --git a/pkgs/development/tools/misc/patchelf/0.9.nix b/pkgs/development/tools/misc/patchelf/0.9.nix
index c64d722ca7113..142e6b0d76036 100644
--- a/pkgs/development/tools/misc/patchelf/0.9.nix
+++ b/pkgs/development/tools/misc/patchelf/0.9.nix
@@ -1,10 +1,11 @@
 { stdenv, fetchurl, patchelf }:
 
 stdenv.mkDerivation rec {
-  name = "patchelf-0.9";
+  pname = "patchelf";
+  version = "0.9";
 
   src = fetchurl {
-    url = "https://nixos.org/releases/patchelf/${name}/${name}.tar.bz2";
+    url = "https://nixos.org/releases/patchelf/patchelf-${version}/patchelf-${version}.tar.bz2";
     sha256 = "a0f65c1ba148890e9f2f7823f4bedf7ecad5417772f64f994004f59a39014f83";
   };
 
diff --git a/pkgs/development/tools/misc/patchelf/unstable.nix b/pkgs/development/tools/misc/patchelf/unstable.nix
index dd7f4ac881b4c..740015dbe9844 100644
--- a/pkgs/development/tools/misc/patchelf/unstable.nix
+++ b/pkgs/development/tools/misc/patchelf/unstable.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "patchelf-${version}";
-  version = "2020-07-11";
+  version = "2021-11-16";
 
   src = fetchFromGitHub {
     owner = "NixOS";
     repo = "patchelf";
-    rev = "126372b636733b160e693c9913e871f6755c02e";
-    sha256 = "07cn40ypys5pyc3jfgxvqj7qk5v6m2rr5brnpmxdsl1557ryx226";
+    rev = "a174cf3006baf31e0e9eaa62bc9adead93af63f7";
+    sha256 = "sha256-cKZ4DE70R5XiIqfnIVAl2s7a1bJxaaPpuCmxs3pxFRU=";
   };
 
   # Drop test that fails on musl (?)
diff --git a/pkgs/development/tools/misc/pkgconf/default.nix b/pkgs/development/tools/misc/pkgconf/default.nix
index 2c55a6f03a7fb..e3e0de4e7f16f 100644
--- a/pkgs/development/tools/misc/pkgconf/default.nix
+++ b/pkgs/development/tools/misc/pkgconf/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "pkgconf";
-  version = "1.7.4";
+  version = "1.8.0";
 
   nativeBuildInputs = [ removeReferencesTo ];
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://distfiles.dereferenced.org/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-1z8ywkikWRE5prF3d8gNTeq2tBTsKz0h0KJL40jEdqs=";
+    sha256 = "sha256-75x+YYIrfLg1bm6eHcpY2VVvMgDXisqzXkNH6dTCu68=";
   };
 
   # Debian has outputs like these too:
diff --git a/pkgs/development/tools/misc/polylith/default.nix b/pkgs/development/tools/misc/polylith/default.nix
index 4397fd11a27bf..a8330895e7c17 100644
--- a/pkgs/development/tools/misc/polylith/default.nix
+++ b/pkgs/development/tools/misc/polylith/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "polylith";
-  version = "0.2.12-alpha";
+  version = "0.2.13-alpha";
 
   src = fetchurl {
     url = "https://github.com/polyfy/polylith/releases/download/v${version}/poly-${version}.jar";
-    sha256 = "1zsasyrrssj7kmvgfr63fa5hslw9gnlbp9bh05g72bfgzi99n8kg";
+    sha256 = "sha256-iLN92qurc8+D0pt7Hwag+TFGoeFl9DvEeS67sKmmoSI=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/tools/misc/premake/default.nix b/pkgs/development/tools/misc/premake/default.nix
index ccd8a4574a1fc..192a7746203b0 100644
--- a/pkgs/development/tools/misc/premake/default.nix
+++ b/pkgs/development/tools/misc/premake/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation {
   setupHook = ./setup-hook.sh;
 
   meta = with lib; {
-    homepage = "http://industriousone.com/premake";
+    homepage = "https://premake.github.io/";
     description = "A simple build configuration and project generation tool using lua";
     license = lib.licenses.bsd3;
     platforms = platforms.unix;
diff --git a/pkgs/development/tools/misc/pwndbg/default.nix b/pkgs/development/tools/misc/pwndbg/default.nix
index 9aa11f35957f1..01b399e15a39f 100644
--- a/pkgs/development/tools/misc/pwndbg/default.nix
+++ b/pkgs/development/tools/misc/pwndbg/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , python3
 , fetchFromGitHub
 , makeWrapper
@@ -13,7 +14,7 @@ let
     pycparser
     pyelftools
     python-ptrace
-    ROPGadget
+    ropgadget
     six
     unicorn
     pygments
diff --git a/pkgs/development/tools/misc/spruce/default.nix b/pkgs/development/tools/misc/spruce/default.nix
index ff95242681bb9..16fd6cde043d4 100644
--- a/pkgs/development/tools/misc/spruce/default.nix
+++ b/pkgs/development/tools/misc/spruce/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "spruce";
-  version = "1.28.0";
+  version = "1.29.0";
 
   src = fetchFromGitHub {
     owner = "geofffranks";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-cNO+6rMQPO1e4Hen8vcFU1FRnnCv2+fDYtXXbuR2UCU=";
+    sha256 = "sha256-HjJWiBYd1YFDZ+XOFcU2Df6bmKFBwVQ6YbiZv1IVN3A=";
   };
 
   deleteVendor = true;
-  vendorSha256 = "sha256-5EM4Z9AN1Mjy7DayII0Iu+XrjM9lyUqrScMT/fe43dw=";
+  vendorSha256 = "sha256-67PGSW3wV8i3mAt3rCuWbFmeOe+QhHXn2rTUmeN6YMA=";
 
   meta = with lib; {
     description = "A BOSH template merge tool";
diff --git a/pkgs/development/tools/misc/strace/default.nix b/pkgs/development/tools/misc/strace/default.nix
index 7e5490fcc3d42..0b73355863c08 100644
--- a/pkgs/development/tools/misc/strace/default.nix
+++ b/pkgs/development/tools/misc/strace/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "strace";
-  version = "5.14";
+  version = "5.15";
 
   src = fetchurl {
     url = "https://strace.io/files/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-kBvubbXhfeutRTDdn/tNyalsSmVu2+HDFBt8swexHnM=";
+    sha256 = "sha256-68rCLylzNSlNxlRCXLw84BM0O+zm2iaZ467Iau6Nctw=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
diff --git a/pkgs/development/tools/misc/tcptrack/default.nix b/pkgs/development/tools/misc/tcptrack/default.nix
index 5b1fd72a7f517..25121bf1ad7d0 100644
--- a/pkgs/development/tools/misc/tcptrack/default.nix
+++ b/pkgs/development/tools/misc/tcptrack/default.nix
@@ -1,16 +1,26 @@
-{ lib, stdenv, fetchFromGitHub, ncurses, libpcap }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, ncurses, libpcap }:
 
 stdenv.mkDerivation rec {
   pname = "tcptrack";
-  version = "1.4.3";
+  version = "unstable-2017-04-29";
 
   src = fetchFromGitHub {
     owner = "bchretien";
     repo = "tcptrack";
-    rev = "d05fe08154ff1e46578e92be49e4cfa2c6543283";
-    sha256 = "08lh3l67wn4kq9q0nfspc7rj0jvp9dzwjgxpvqliwcif8cy5mi45";
+    rev = "2b096ac103af2884bbd7648cff8adcbadbda9394";
+    sha256 = "0084g9s0ynv1az67j08q9nz4p07bqqz9k6w5lprzj3ljlh0x10gj";
   };
 
+  patches = [
+    # Fix pending upstream inclusion for ncurses-6.3 support:
+    #  https://github.com/bchretien/tcptrack/pull/10
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/bchretien/tcptrack/commit/409007afbce8ec5a81312a2a4123dd83b62b4494.patch";
+      sha256 = "00641jyr52ksww5bbzvxlprmbb36jnvzg2w1aj1jgnm75jiajcfc";
+    })
+  ];
+
   buildInputs = [ ncurses libpcap ];
 
   NIX_CFLAGS_COMPILE = "-Wno-error=cpp";
diff --git a/pkgs/development/tools/misc/terraform-ls/default.nix b/pkgs/development/tools/misc/terraform-ls/default.nix
index 8e1f28d5e3730..fd626acd16b47 100644
--- a/pkgs/development/tools/misc/terraform-ls/default.nix
+++ b/pkgs/development/tools/misc/terraform-ls/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "terraform-ls";
-  version = "0.23.0";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-hntHEBc1/KSg12x+gv32aNiA2cJ7PWBeftNhI8u+rlw=";
+    sha256 = "sha256-iOSH7eFLsp31mW5ZsTUcJVPE1OBEXPLsoVYroYjwXtk=";
   };
-  vendorSha256 = "sha256-usPIhXWdp/pSAFH0LepG1/Uolfr/1SExinrAjMuB6zg=";
+  vendorSha256 = "sha256-s6urF9uZ9o8kkKfbRk22JuIv+f3ZlVAFR9c1vylhhoY=";
 
   ldflags = [ "-s" "-w" "-X main.version=v${version}" "-X main.prerelease=" ];
 
diff --git a/pkgs/development/tools/mold/default.nix b/pkgs/development/tools/mold/default.nix
index 0a39f47c0cc0a..3613b18e7286a 100644
--- a/pkgs/development/tools/mold/default.nix
+++ b/pkgs/development/tools/mold/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mold";
-  version = "0.9.6";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "rui314";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0mj258fy8l4i23jd6ail0xrrq3das7lmrf1brrr1591ahx4vjj14";
+    sha256 = "sha256-89Dh4qly70Jzyo/KPlRte58hbN5HNnzZpi32tFd8fXU=";
   };
 
   buildInputs = [ zlib openssl ];
diff --git a/pkgs/development/tools/nwjs/default.nix b/pkgs/development/tools/nwjs/default.nix
index a4a54717febeb..f3ec2dabc9232 100644
--- a/pkgs/development/tools/nwjs/default.nix
+++ b/pkgs/development/tools/nwjs/default.nix
@@ -1,7 +1,8 @@
 { stdenv, lib, fetchurl, buildEnv, makeWrapper
 
-, xorg, alsa-lib, dbus, glib, gtk3, atk, pango, freetype, fontconfig
-, gdk-pixbuf, cairo, nss, nspr, gconf, expat, systemd, libcap
+, xorg, alsa-lib, at-spi2-core, dbus, glib, gtk3, atk, pango, freetype
+, fontconfig , gdk-pixbuf, cairo, mesa, nss, nspr, gconf, expat, systemd
+, libcap, libdrm, libxkbcommon
 , libnotify
 , ffmpeg, libxcb, cups
 , sqlite, udev
@@ -15,12 +16,13 @@ let
   nwEnv = buildEnv {
     name = "nwjs-env";
     paths = [
-      xorg.libX11 xorg.libXrender glib /*gtk2*/ gtk3 atk pango cairo gdk-pixbuf
+      xorg.libX11 xorg.libXrender glib gtk3 atk at-spi2-core pango cairo gdk-pixbuf
       freetype fontconfig xorg.libXcomposite alsa-lib xorg.libXdamage
-      xorg.libXext xorg.libXfixes nss nspr gconf expat dbus
+      xorg.libXext xorg.libXfixes mesa nss nspr gconf expat dbus
       xorg.libXtst xorg.libXi xorg.libXcursor xorg.libXrandr
-      xorg.libXScrnSaver cups
-      libcap libnotify
+      xorg.libXScrnSaver xorg.libxshmfence cups
+      libcap libdrm libnotify
+      libxkbcommon
       # libnw-specific (not chromium dependencies)
       ffmpeg libxcb
       # chromium runtime deps (dlopen’d)
@@ -33,18 +35,18 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "nwjs";
-  version = "0.33.4";
+  version = "0.54.1";
 
   src = if sdk then fetchurl {
     url = "https://dl.nwjs.io/v${version}/nwjs-sdk-v${version}-linux-${bits}.tar.gz";
     sha256 = if bits == "x64" then
-      "1hi6xispxvyb6krm5j11mv8509dwpw5ikpbkvq135gsk3gm29c9y" else
-      "00p4clbfinrj5gp2i84a263l3h00z8g7mnx61qwmr0z02kvswz9s";
+      "sha256-1qeU4+EIki0M7yJPkRuzFwMdswfDOni5gltdmM6A/ds=" else
+      "sha256-wDEGePE9lrKa6OAzeiDLhVj992c0TJgiMHb8lJ4PF80=";
   } else fetchurl {
     url = "https://dl.nwjs.io/v${version}/nwjs-v${version}-linux-${bits}.tar.gz";
     sha256 = if bits == "x64" then
-      "09zd6gja3l20xx03h2gawpmh9f8nxqjp8qdkds5nz9kbbckhkj52" else
-      "0nlpdz76k1p1pq4xygfr2an91m0d7p5fjyg2xhiggyy8b7sp4964";
+      "sha256-TACEM06K2t6dDXRD44lSW7GRi77yzSW4BZJw8gT+fl4=" else
+      "sha256-yX9knqFV5VQTT3TJDmQoDgt17NqH8fLt+bLQAqKleTU=";
   };
 
   # we have runtime deps like sqlite3 that should remain
diff --git a/pkgs/development/tools/ocaml/camlp4/default.nix b/pkgs/development/tools/ocaml/camlp4/default.nix
index fffa426ba4c9c..acf1730af1bc3 100644
--- a/pkgs/development/tools/ocaml/camlp4/default.nix
+++ b/pkgs/development/tools/ocaml/camlp4/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchzip, which, ocaml, ocamlbuild }:
 
-if lib.versionAtLeast ocaml.version "4.09"
+if lib.versionAtLeast ocaml.version "4.14"
 then throw "camlp4 is not available for OCaml ${ocaml.version}"
 else
 
@@ -26,6 +26,21 @@ let param = {
   "4.08" = {
      version = "4.08+1";
      sha256 = "0qplawvxwai25bi27niw2cgz2al01kcnkj8wxwhxslpi21z6pyx1"; };
+  "4.09" = {
+     version = "4.09+1";
+     sha256 = "1gr33x6xs1rs0bpyq4vzyfxd6vn47jfkg8imi81db2r0cbs0kxx1"; };
+  "4.10" = {
+     version = "4.10+1";
+     sha256 = "093bc1c28wid5li0jwglnd4p3csxw09fmbs9ffybq2z41a5mgay6"; };
+  "4.11" = {
+     version = "4.11+1";
+     sha256 = "0sn7f6im940qh0ixmx1k738xrwwdvy9g7r19bv5218jb6mh0g068"; };
+  "4.12" = {
+     version = "4.12+1";
+     sha256 = "1cfk5ppnd511vzsr9gc0grxbafmh0m3m897aij198rppzxps5kyz"; };
+  "4.13" = {
+     version = "4.13+1";
+     sha256 = "0fzxa1zdhk74mlxpin7p90flks6sp4gkc0mfclmj9zak15rii55n"; };
   }.${ocaml.meta.branch};
 in
 
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
index 4cdd0b8e3e24f..82d84c819dd2c 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
@@ -1,23 +1,23 @@
 { lib, fetchurl, buildDunePackage
-, ocaml, cmdliner, cppo, yojson, ppxlib
+, cmdliner, yojson, ppxlib
 , menhir, menhirLib
 }:
 
 buildDunePackage rec {
   pname = "js_of_ocaml-compiler";
-  version = "3.10.0";
+  version = "3.11.0";
   useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/ocsigen/js_of_ocaml/releases/download/${version}/js_of_ocaml-${version}.tbz";
-    sha256 = "09k19bygxl766dmshrp5df3i99jfm8bmamb4jggm62p3hg19bzkv";
+    sha256 = "sha256:0flws9mw0yjfw4d8d3y3k408mivy2xgky70xk1br3iqs4zksz38m";
   };
 
-  nativeBuildInputs = [ cppo menhir ];
-  buildInputs = [ cmdliner menhirLib ];
+  nativeBuildInputs = [ menhir ];
+  buildInputs = [ cmdliner ppxlib ];
 
   configurePlatforms = [];
-  propagatedBuildInputs = [ yojson ppxlib ];
+  propagatedBuildInputs = [ menhirLib yojson ];
 
   meta = {
     description = "Compiler from OCaml bytecode to Javascript";
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix b/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix
index b29ef435e46cd..3c0f8c7612393 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix
@@ -8,5 +8,6 @@ buildDunePackage {
 
   inherit (js_of_ocaml-compiler) version src meta useDune2;
 
-  buildInputs = [ ppxlib js_of_ocaml ];
+  buildInputs = [ js_of_ocaml ];
+  propagatedBuildInputs = [ ppxlib ];
 }
diff --git a/pkgs/development/tools/ocaml/merlin/4.x.nix b/pkgs/development/tools/ocaml/merlin/4.x.nix
index 5554ce1635021..831360cd858d6 100644
--- a/pkgs/development/tools/ocaml/merlin/4.x.nix
+++ b/pkgs/development/tools/ocaml/merlin/4.x.nix
@@ -15,11 +15,12 @@
 }:
 
 let
-  merlinVersion = "4.3.1";
+  merlinVersion = "4.4";
 
   hashes = {
-    "4.3.1-411" = "0lhxkd1wa8k3fkcnhvzlahx3g519cdi5h7lgs60khqqm8nfvfcr5";
-    "4.3.1-412" = "0ah2zbj1hhrrfxp4nhfh47jsbkvm0b30dr7ikjpmvb13wa8h20sr";
+    "4.4-411" = "sha256:0chx28098mmnjbnaz5wgzsn82rh1w9dhzqmsykb412cq13msl1q4";
+    "4.4-412" = "sha256:18xjpsiz7xbgjdnsxfc52l7yfh22harj0birlph4xm42d14pkn0n";
+    "4.4-413" = "sha256:1ilmh2gqpwgr51w2ba8r0s5zkj75h00wkw4az61ssvivn9jxr7k0";
   };
 
   ocamlVersionShorthand = lib.concatStrings
@@ -37,7 +38,7 @@ buildDunePackage {
   inherit version;
 
   src = fetchurl {
-    url = "https://github.com/ocaml/merlin/releases/download/v${version}/merlin-v${version}.tbz";
+    url = "https://github.com/ocaml/merlin/releases/download/v${version}/merlin-${version}.tbz";
     sha256 = hashes."${version}";
   };
 
@@ -47,10 +48,12 @@ buildDunePackage {
       dot_merlin_reader = "${dot-merlin-reader}/bin/dot-merlin-reader";
       dune = "${dune_2}/bin/dune";
     })
+  ] ++ lib.optional (!lib.versionAtLeast ocaml.version "4.12")
     # This fixes the test-suite on macOS
     # See https://github.com/ocaml/merlin/pull/1399
+    # Fixed in 4.4 for OCaml ≥ 4.12
     ./test.patch
-  ];
+  ;
 
   useDune2 = true;
 
diff --git a/pkgs/development/tools/ocaml/obelisk/default.nix b/pkgs/development/tools/ocaml/obelisk/default.nix
index d5e9d33d5db62..0d92840a82bee 100644
--- a/pkgs/development/tools/ocaml/obelisk/default.nix
+++ b/pkgs/development/tools/ocaml/obelisk/default.nix
@@ -1,12 +1,14 @@
-{ lib, fetchurl, ocamlPackages }:
+{ lib, fetchFromGitHub, ocamlPackages }:
 
 ocamlPackages.buildDunePackage rec {
   pname = "obelisk";
-  version = "0.5.2";
+  version = "0.6.0";
   useDune2 = true;
-  src = fetchurl {
-    url = "https://github.com/Lelio-Brun/Obelisk/releases/download/v${version}/obelisk-v${version}.tbz";
-    sha256 = "0s86gkypyrkrp83xnay258ijri3yjwj3marsjnjf8mz58z0zd9g6";
+  src = fetchFromGitHub {
+    owner = "Lelio-Brun";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1jjaqa2b7msl9qd3x7j34vdh1s9alq8hbvzk8a5srb4yyfyim15b";
   };
 
   buildInputs = with ocamlPackages; [ menhir re ];
diff --git a/pkgs/development/tools/ocaml/opam/default.nix b/pkgs/development/tools/ocaml/opam/default.nix
index 05c555a6e141d..aa7cced5016d2 100644
--- a/pkgs/development/tools/ocaml/opam/default.nix
+++ b/pkgs/development/tools/ocaml/opam/default.nix
@@ -67,13 +67,13 @@ let
       sha256 = "0jnqsv6pqp5b5g7lcjwgd75zqqvcwcl5a32zi03zg1kvj79p5gxs";
     };
     opam = fetchurl {
-      url = "https://github.com/ocaml/opam/archive/2.1.1.zip";
-      sha256 = "0sm9a7yh1iqcd51j5wdrc34w71iga619hvmgyy5fq1hwvgmfssrj";
+      url = "https://github.com/ocaml/opam/archive/2.1.2.zip";
+      sha256 = "0yq3dgx869016xrf65xv0glmqill1nk2ad12x3l36l70pn90rmyd";
     };
   };
 in stdenv.mkDerivation {
   pname = "opam";
-  version = "2.1.1";
+  version = "2.1.2";
 
   nativeBuildInputs = [ makeWrapper unzip ];
   buildInputs = [ curl ncurses ocaml getconf ] ++ lib.optional stdenv.isLinux bubblewrap;
@@ -133,4 +133,4 @@ in stdenv.mkDerivation {
     platforms = platforms.all;
   };
 }
-# Generated by: ./opam.nix.pl -v 2.1.1 -p opam-shebangs.patch
+# Generated by: ./opam.nix.pl -v 2.1.2 -p opam-shebangs.patch
diff --git a/pkgs/development/tools/open-policy-agent/default.nix b/pkgs/development/tools/open-policy-agent/default.nix
index 824b9dc44d6ed..ec394630fdb11 100644
--- a/pkgs/development/tools/open-policy-agent/default.nix
+++ b/pkgs/development/tools/open-policy-agent/default.nix
@@ -8,13 +8,13 @@
 
 buildGoModule rec {
   pname = "open-policy-agent";
-  version = "0.34.0";
+  version = "0.35.0";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "opa";
     rev = "v${version}";
-    sha256 = "sha256-T8eFCFzDU0GTd7n141XKT34lRXoU2LOrl0Rlh1WLsmo=";
+    sha256 = "sha256-IiYEDvTHb25xolE/IfpFgcJArxU6c89P5oNgt1T2VXA=";
   };
   vendorSha256 = null;
 
diff --git a/pkgs/development/tools/oq/default.nix b/pkgs/development/tools/oq/default.nix
index 1ae81793b56df..31085e748c2c8 100644
--- a/pkgs/development/tools/oq/default.nix
+++ b/pkgs/development/tools/oq/default.nix
@@ -8,13 +8,13 @@
 
 crystal.buildCrystalPackage rec {
   pname = "oq";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "Blacksmoke16";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-oLy8Ts+wnI0LxtAH6vVqhS7nqNkaLs0/vK9GxfG4vU8=";
+    sha256 = "sha256-La2oi+r9sCmnacgjQe+LcTQ7EXKorSoTTD4LhNtQsYk=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/packer/default.nix b/pkgs/development/tools/packer/default.nix
index aea34c5d57c15..6c7fdda336bc6 100644
--- a/pkgs/development/tools/packer/default.nix
+++ b/pkgs/development/tools/packer/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+{ lib
+, stdenv
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+}:
 
 buildGoModule rec {
   pname = "packer";
@@ -30,5 +35,6 @@ buildGoModule rec {
     maintainers = with maintainers; [ cstrahan zimbatm ma27 ];
     changelog   = "https://github.com/hashicorp/packer/blob/v${version}/CHANGELOG.md";
     platforms   = platforms.unix;
+    broken = stdenv.isDarwin; # needs to update gopsutil to at least v3.21.3 to include https://github.com/shirou/gopsutil/pull/1042
   };
 }
diff --git a/pkgs/development/tools/parsing/antlr/2.7.7.nix b/pkgs/development/tools/parsing/antlr/2.7.7.nix
index fed96e954751b..3fc1b2cd86611 100644
--- a/pkgs/development/tools/parsing/antlr/2.7.7.nix
+++ b/pkgs/development/tools/parsing/antlr/2.7.7.nix
@@ -1,9 +1,10 @@
 { lib, stdenv, fetchurl, jdk, python2 }:
 
-stdenv.mkDerivation {
-  name = "antlr-2.7.7";
+stdenv.mkDerivation rec {
+  pname = "antlr";
+  version = "2.7.7";
   src = fetchurl {
-    url = "https://www.antlr2.org/download/antlr-2.7.7.tar.gz";
+    url = "https://www.antlr2.org/download/antlr-${version}.tar.gz";
     sha256 = "1ffvcwdw73id0dk6pj2mlxjvbg0662qacx4ylayqcxgg381fnfl5";
   };
   patches = [ ./2.7.7-fixes.patch ];
diff --git a/pkgs/development/tools/parsing/antlr/4.8.nix b/pkgs/development/tools/parsing/antlr/4.8.nix
index 0708ba754b2a3..0e69227aa7861 100644
--- a/pkgs/development/tools/parsing/antlr/4.8.nix
+++ b/pkgs/development/tools/parsing/antlr/4.8.nix
@@ -22,6 +22,10 @@ let
       buildInputs = lib.optional stdenv.isLinux libuuid
         ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.CoreFoundation;
 
+      # Install CMake config files, used to locate the runtime from another
+      # CMake project, using the find_package function.
+      cmakeFlags = [ "-DANTLR4_INSTALL=ON" ];
+
       postUnpack = ''
         export sourceRoot=$sourceRoot/runtime/Cpp
       '';
diff --git a/pkgs/development/tools/parsing/antlr/4.9.nix b/pkgs/development/tools/parsing/antlr/4.9.nix
new file mode 100644
index 0000000000000..efc478ecd9877
--- /dev/null
+++ b/pkgs/development/tools/parsing/antlr/4.9.nix
@@ -0,0 +1,95 @@
+{ lib, stdenv, fetchurl, jre
+, fetchpatch, fetchFromGitHub, cmake, ninja, pkg-config, libuuid, utf8cpp, darwin }:
+
+let
+  version = "4.9.2";
+  source = fetchFromGitHub {
+    owner = "antlr";
+    repo = "antlr4";
+    rev = version;
+    sha256 = "0rpqgl2y22iiyg42y8jyiy2g7x421yf0q16cf17j76iai6y0bm5p";
+  };
+
+  runtime = {
+    cpp = stdenv.mkDerivation {
+      pname = "antlr-runtime-cpp";
+      inherit version;
+      src = source;
+
+      outputs = [ "out" "dev" "doc" ];
+
+      patches = [
+        (fetchpatch {
+          name = "use-utfcpp-from-system.patch";
+          url = "https://github.com/antlr/antlr4/commit/5a808b470e1314b63b0a921178040ccabb357945.patch";
+          sha256 = "0nq7iajy9inllcspyqpxskfg3k5s1fwm7ph75i8lfc25rl35k1w7";
+        })
+      ];
+
+      patchFlags = [ "-p3" ];
+
+      nativeBuildInputs = [ cmake ninja pkg-config ];
+      buildInputs = [ utf8cpp ]
+        ++ lib.optional stdenv.isLinux libuuid
+        ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.CoreFoundation;
+
+      postUnpack = ''
+        export sourceRoot=$sourceRoot/runtime/Cpp
+      '';
+
+      meta = with lib; {
+        description = "C++ target for ANTLR 4";
+        homepage = "https://www.antlr.org/";
+        license = licenses.bsd3;
+        platforms = platforms.unix;
+      };
+    };
+  };
+
+  antlr = stdenv.mkDerivation {
+    pname = "antlr";
+    inherit version;
+
+    src = fetchurl {
+      url = "https://www.antlr.org/download/antlr-${version}-complete.jar";
+      sha256 = "1k9pw5gv2zhh06n1vys76kchlz4mz0vgv3iiba8w47b9fqa7n4dv";
+    };
+
+    dontUnpack = true;
+
+    installPhase = ''
+      mkdir -p "$out"/{share/java,bin}
+      cp "$src" "$out/share/java/antlr-${version}-complete.jar"
+
+      echo "#! ${stdenv.shell}" >> "$out/bin/antlr"
+      echo "'${jre}/bin/java' -cp '$out/share/java/antlr-${version}-complete.jar:$CLASSPATH' -Xmx500M org.antlr.v4.Tool \"\$@\"" >> "$out/bin/antlr"
+
+      echo "#! ${stdenv.shell}" >> "$out/bin/grun"
+      echo "'${jre}/bin/java' -cp '$out/share/java/antlr-${version}-complete.jar:$CLASSPATH' org.antlr.v4.gui.TestRig \"\$@\"" >> "$out/bin/grun"
+
+      chmod a+x "$out/bin/antlr" "$out/bin/grun"
+      ln -s "$out/bin/antlr"{,4}
+    '';
+
+    inherit jre;
+
+    passthru = {
+      inherit runtime;
+      jarLocation = "${antlr}/share/java/antlr-${version}-complete.jar";
+    };
+
+    meta = with lib; {
+      description = "Powerful parser generator";
+      longDescription = ''
+        ANTLR (ANother Tool for Language Recognition) is a powerful parser
+        generator for reading, processing, executing, or translating structured
+        text or binary files. It's widely used to build languages, tools, and
+        frameworks. From a grammar, ANTLR generates a parser that can build and
+        walk parse trees.
+      '';
+      homepage = "https://www.antlr.org/";
+      license = licenses.bsd3;
+      platforms = platforms.unix;
+    };
+  };
+in antlr
diff --git a/pkgs/development/tools/parsing/flex/2.5.35.nix b/pkgs/development/tools/parsing/flex/2.5.35.nix
index ec2c9eeb2d1c6..a80e75559df33 100644
--- a/pkgs/development/tools/parsing/flex/2.5.35.nix
+++ b/pkgs/development/tools/parsing/flex/2.5.35.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl, autoreconfHook, flex, bison, texinfo, help2man, m4 }:
 
-stdenv.mkDerivation {
-  name = "flex-2.5.35";
+stdenv.mkDerivation rec {
+  pname = "flex";
+  version = "2.5.35";
 
   src = fetchurl {
-    url = "https://github.com/westes/flex/archive/flex-2-5-35.tar.gz";
+    url = "https://github.com/westes/flex/archive/flex-${lib.replaceStrings ["."] ["-"] version}.tar.gz";
     sha256 = "0wh06nix8bd4w1aq4k2fbbkdq5i30a9lxz3xczf3ff28yy0kfwzm";
   };
 
diff --git a/pkgs/development/tools/parsing/tree-sitter/default.nix b/pkgs/development/tools/parsing/tree-sitter/default.nix
index 33d440d6d8a40..b56cd98da637e 100644
--- a/pkgs/development/tools/parsing/tree-sitter/default.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/default.nix
@@ -28,9 +28,9 @@ let
   # 1) change all these hashes
   # 2) nix-build -A tree-sitter.updater.update-all-grammars
   # 3) run the ./result script that is output by that (it updates ./grammars)
-  version = "0.20.0";
-  sha256 = "0hrcisvw44fjxix09lfbrz7majaj6njbnr6c92a6a5748p2jvyng";
-  cargoSha256 = "029db3yy6nj18vxfvj0ra568a9k4x7znfj08spvzl5sxfbx6442r";
+  version = "0.20.1";
+  sha256 = "sha256-JKbL05hFWI0jhAnRT9D0SWCoRPFqoMD4+LQQ1zyWc7g=";
+  cargoSha256 = "sha256-64O+3GrDqhRGth20B2/+jNDYSnwvT3SqYVqYNthiCB0=";
 
   src = fetchFromGitHub {
     owner = "tree-sitter";
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix b/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
index 2ecb55f5a7aeb..6995c41cc9114 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
@@ -4,49 +4,86 @@
   tree-sitter-agda = lib.importJSON ./tree-sitter-agda.json;
   tree-sitter-bash = lib.importJSON ./tree-sitter-bash.json;
   tree-sitter-beancount = lib.importJSON ./tree-sitter-beancount.json;
+  tree-sitter-bibtex = lib.importJSON ./tree-sitter-bibtex.json;
   tree-sitter-c = lib.importJSON ./tree-sitter-c.json;
   tree-sitter-c-sharp = lib.importJSON ./tree-sitter-c-sharp.json;
   tree-sitter-clojure = lib.importJSON ./tree-sitter-clojure.json;
+  tree-sitter-cmake = lib.importJSON ./tree-sitter-cmake.json;
   tree-sitter-comment = lib.importJSON ./tree-sitter-comment.json;
+  tree-sitter-commonlisp = lib.importJSON ./tree-sitter-commonlisp.json;
   tree-sitter-cpp = lib.importJSON ./tree-sitter-cpp.json;
   tree-sitter-css = lib.importJSON ./tree-sitter-css.json;
+  tree-sitter-cuda = lib.importJSON ./tree-sitter-cuda.json;
   tree-sitter-dart = lib.importJSON ./tree-sitter-dart.json;
+  tree-sitter-devicetree = lib.importJSON ./tree-sitter-devicetree.json;
+  tree-sitter-dockerfile = lib.importJSON ./tree-sitter-dockerfile.json;
   tree-sitter-dot = lib.importJSON ./tree-sitter-dot.json;
   tree-sitter-elisp = lib.importJSON ./tree-sitter-elisp.json;
+  tree-sitter-elixir = lib.importJSON ./tree-sitter-elixir.json;
+  tree-sitter-elm = lib.importJSON ./tree-sitter-elm.json;
   tree-sitter-embedded-template = lib.importJSON ./tree-sitter-embedded-template.json;
+  tree-sitter-erlang = lib.importJSON ./tree-sitter-erlang.json;
   tree-sitter-fennel = lib.importJSON ./tree-sitter-fennel.json;
   tree-sitter-fish = lib.importJSON ./tree-sitter-fish.json;
   tree-sitter-fluent = lib.importJSON ./tree-sitter-fluent.json;
+  tree-sitter-fortran = lib.importJSON ./tree-sitter-fortran.json;
+  tree-sitter-gdscript = lib.importJSON ./tree-sitter-gdscript.json;
+  tree-sitter-glimmer = lib.importJSON ./tree-sitter-glimmer.json;
+  tree-sitter-glsl = lib.importJSON ./tree-sitter-glsl.json;
   tree-sitter-go = lib.importJSON ./tree-sitter-go.json;
+  tree-sitter-godot-resource = lib.importJSON ./tree-sitter-godot-resource.json;
+  tree-sitter-gomod = lib.importJSON ./tree-sitter-gomod.json;
+  tree-sitter-graphql = lib.importJSON ./tree-sitter-graphql.json;
   tree-sitter-haskell = lib.importJSON ./tree-sitter-haskell.json;
+  tree-sitter-heex = lib.importJSON ./tree-sitter-heex.json;
+  tree-sitter-hjson = lib.importJSON ./tree-sitter-hjson.json;
   tree-sitter-html = lib.importJSON ./tree-sitter-html.json;
+  tree-sitter-http = lib.importJSON ./tree-sitter-http.json;
   tree-sitter-java = lib.importJSON ./tree-sitter-java.json;
   tree-sitter-javascript = lib.importJSON ./tree-sitter-javascript.json;
   tree-sitter-jsdoc = lib.importJSON ./tree-sitter-jsdoc.json;
   tree-sitter-json = lib.importJSON ./tree-sitter-json.json;
+  tree-sitter-json5 = lib.importJSON ./tree-sitter-json5.json;
   tree-sitter-julia = lib.importJSON ./tree-sitter-julia.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;
+  tree-sitter-llvm = lib.importJSON ./tree-sitter-llvm.json;
   tree-sitter-lua = lib.importJSON ./tree-sitter-lua.json;
   tree-sitter-make = lib.importJSON ./tree-sitter-make.json;
   tree-sitter-markdown = lib.importJSON ./tree-sitter-markdown.json;
   tree-sitter-nix = lib.importJSON ./tree-sitter-nix.json;
   tree-sitter-norg = lib.importJSON ./tree-sitter-norg.json;
   tree-sitter-ocaml = lib.importJSON ./tree-sitter-ocaml.json;
+  tree-sitter-perl = lib.importJSON ./tree-sitter-perl.json;
   tree-sitter-php = lib.importJSON ./tree-sitter-php.json;
+  tree-sitter-pioasm = lib.importJSON ./tree-sitter-pioasm.json;
+  tree-sitter-prisma = lib.importJSON ./tree-sitter-prisma.json;
+  tree-sitter-pug = lib.importJSON ./tree-sitter-pug.json;
   tree-sitter-python = lib.importJSON ./tree-sitter-python.json;
   tree-sitter-ql = lib.importJSON ./tree-sitter-ql.json;
+  tree-sitter-query = lib.importJSON ./tree-sitter-query.json;
+  tree-sitter-r = lib.importJSON ./tree-sitter-r.json;
   tree-sitter-regex = lib.importJSON ./tree-sitter-regex.json;
   tree-sitter-rst = lib.importJSON ./tree-sitter-rst.json;
   tree-sitter-ruby = lib.importJSON ./tree-sitter-ruby.json;
   tree-sitter-rust = lib.importJSON ./tree-sitter-rust.json;
   tree-sitter-scala = lib.importJSON ./tree-sitter-scala.json;
+  tree-sitter-scss = lib.importJSON ./tree-sitter-scss.json;
+  tree-sitter-sparql = lib.importJSON ./tree-sitter-sparql.json;
+  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-swift = lib.importJSON ./tree-sitter-swift.json;
+  tree-sitter-tlaplus = lib.importJSON ./tree-sitter-tlaplus.json;
   tree-sitter-toml = lib.importJSON ./tree-sitter-toml.json;
   tree-sitter-tsq = lib.importJSON ./tree-sitter-tsq.json;
+  tree-sitter-turtle = lib.importJSON ./tree-sitter-turtle.json;
   tree-sitter-typescript = lib.importJSON ./tree-sitter-typescript.json;
   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-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;
 }
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-bibtex.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-bibtex.json
new file mode 100644
index 0000000000000..24fc75ec25cdd
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-bibtex.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/latex-lsp/tree-sitter-bibtex",
+  "rev": "ccfd77db0ed799b6c22c214fe9d2937f47bc8b34",
+  "date": "2021-03-26T15:53:50+01:00",
+  "path": "/nix/store/pg00zy53rni7znda2vbyyhkkclgja3kq-tree-sitter-bibtex",
+  "sha256": "0m7f3dkqbmy8x1bhl11m8f4p6n76wfvh99rp46zrqv39355nw1y2",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
index ad7e72f61d120..efd5be612847b 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-c-sharp",
-  "rev": "69921685a7688361626600543a2beaf82b67a64d",
-  "date": "2021-11-03T12:36:17+00:00",
-  "path": "/nix/store/f4rd6avwf2flqr9yv0dvy9288qrgn2bs-tree-sitter-c-sharp",
-  "sha256": "18yzr0yvkbp5wf2slcfn04fc23jn0ray72ica0jyv92jkp5pxc03",
+  "rev": "3104df21065af0f3d51e05a96cd0e2ff16a6f982",
+  "date": "2021-12-09T21:13:54+00:00",
+  "path": "/nix/store/1xgrz7rm6mc6j2svaidj4x0zyda0ahz4-tree-sitter-c-sharp",
+  "sha256": "14g8x5q4xc87s2wpycws6r6ci083j7pk1jdw6sr8qp96zyzs17pp",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cmake.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cmake.json
new file mode 100644
index 0000000000000..61e0ee43fc7ad
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cmake.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/uyha/tree-sitter-cmake",
+  "rev": "f6616f1e417ee8b62daf251aa1daa5d73781c596",
+  "date": "2021-10-13T08:19:43+02:00",
+  "path": "/nix/store/p13qh130n5741wdfk2fbmy7ifd1z1zb2-tree-sitter-cmake",
+  "sha256": "1b5cc84d0gjm8nb73gdvfjxbk9fjrfkd5aay3b0qvk6gar59pcj6",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-commonlisp.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-commonlisp.json
new file mode 100644
index 0000000000000..cefe88d8be122
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-commonlisp.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/thehamsta/tree-sitter-commonlisp",
+  "rev": "4fd115d3bb7046cd094f21bfe5766c302dbf64cd",
+  "date": "2021-12-06T20:34:14+01:00",
+  "path": "/nix/store/vmyfmgyhnx0ipi16d1w7sxsdkprybzk7-tree-sitter-commonlisp",
+  "sha256": "1kmxmx93f34lba5g7kqa5fcijfak9zc9qydbid9dcqxw6kf65ncg",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cuda.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cuda.json
new file mode 100644
index 0000000000000..7eb34545b4169
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-cuda.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/thehamsta/tree-sitter-cuda",
+  "rev": "bc20ed7a36031437a69a88ef368af4b9f1ecec70",
+  "date": "2021-12-10T00:43:38+01:00",
+  "path": "/nix/store/zagrgq7zfh6n90z4qpp8cy002g588dhj-tree-sitter-cuda",
+  "sha256": "04gnfjq5rd1vcby8737wxhzmg4vmn2ggjz6n94bbna8b96qc1xxj",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-devicetree.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-devicetree.json
new file mode 100644
index 0000000000000..4b301bb0f5773
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-devicetree.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/joelspadin/tree-sitter-devicetree",
+  "rev": "fa70098cd70393f84785f85cdc6a45299b59cd5b",
+  "date": "2021-03-28T12:08:53-05:00",
+  "path": "/nix/store/6nqsmnd75vwbvkj764vg5slkmjzkmdd9-tree-sitter-devicetree",
+  "sha256": "0mr3q2l7js6csb1fp8xjysikj26l94p3mmsiik4qwnw5kg694yam",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-dockerfile.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-dockerfile.json
new file mode 100644
index 0000000000000..951daa9e3d9fe
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-dockerfile.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/camdencheek/tree-sitter-dockerfile",
+  "rev": "7af32bc04a66ab196f5b9f92ac471f29372ae2ce",
+  "date": "2021-12-16T07:47:57-07:00",
+  "path": "/nix/store/gh1pnracilf89q9z5czqr4z7lkd480xb-tree-sitter-dockerfile",
+  "sha256": "06hy683mrp1jcg2ypd6msbmv0pm2z85y8nqxgrnbr9vbi6syvmp5",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json
new file mode 100644
index 0000000000000..3041fe7610faf
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/elixir-lang/tree-sitter-elixir",
+  "rev": "1b3ecf7765979a5602bbb8988b8fc0d9f4c887d6",
+  "date": "2021-12-15T23:29:48+01:00",
+  "path": "/nix/store/ahdmwdlw7g63wf681cvclxh92mp8waba-tree-sitter-elixir",
+  "sha256": "09kmi989hp2fp7w1xsambnlnp49fnnivdh45pwz9y3dab8iyngsn",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elm.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elm.json
new file mode 100644
index 0000000000000..e5ab2be11133a
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elm.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/elm-tooling/tree-sitter-elm",
+  "rev": "8dd06afd9ca60a420374c6b65831e58a1d1237ad",
+  "date": "2021-07-26T03:59:46+02:00",
+  "path": "/nix/store/pz5nbdx19mdq6dp238l1qc3n81l2i88f-tree-sitter-elm",
+  "sha256": "1mncr0nvb616zn2172pqcjd2jrqzyfad0y1pz2mwh8pqwfr0c3nf",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-erlang.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-erlang.json
new file mode 100644
index 0000000000000..b824f34f27a09
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-erlang.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/abstractmachineslab/tree-sitter-erlang",
+  "rev": "9d5fd0c329280a156bf7614a49dc5e8c58cc037c",
+  "date": "2021-08-03T11:57:52+02:00",
+  "path": "/nix/store/35ydhh12dgf4q016gjka35wnqnkwc1jg-tree-sitter-erlang",
+  "sha256": "0d6wl95wgys21vcix6j0bf7l000glkmk1n6shgcnp4baw9wxh009",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fortran.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fortran.json
new file mode 100644
index 0000000000000..6b3198e731877
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-fortran.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/stadelmanma/tree-sitter-fortran",
+  "rev": "f0f2f100952a353e64e26b0fa710b4c296d7af13",
+  "date": "2021-09-02T21:24:27-04:00",
+  "path": "/nix/store/5abj5miyzb7dvyq4zw0j1mxgdxqyj2yx-tree-sitter-fortran",
+  "sha256": "17iiz38s7adkzv9rw97nn5nd9kvn1vyccm7r6ywipaa5aim0nm6a",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gdscript.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gdscript.json
new file mode 100644
index 0000000000000..23d0dd98a00ff
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gdscript.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/prestonknopp/tree-sitter-gdscript",
+  "rev": "2a6abdaa47fcb91397e09a97c7433fd995ea46c6",
+  "date": "2021-12-20T23:14:36-08:00",
+  "path": "/nix/store/kzps55mk9caigy4s9smvsqwm1savaaq7-tree-sitter-gdscript",
+  "sha256": "0k7lgli5b9f6dlsafl29lrmzd221ayj50q1axjihm7w70miwyck0",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-glimmer.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-glimmer.json
new file mode 100644
index 0000000000000..5dc18d6c7b287
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-glimmer.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/alexlafroscia/tree-sitter-glimmer",
+  "rev": "5ed38d3cba65376e4734b0f1763c2f049ad5a1cf",
+  "date": "2021-09-25T09:50:19-04:00",
+  "path": "/nix/store/z0nhsn3v519mbxrhj5x1y7h7k7giviw2-tree-sitter-glimmer",
+  "sha256": "0whij8420niywdi0lna8w5fizq30vhldz3wssisw91gjfdn8d9mz",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-glsl.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-glsl.json
new file mode 100644
index 0000000000000..9a0adc92f381c
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-glsl.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/thehamsta/tree-sitter-glsl",
+  "rev": "26ba31a3f5a85ebed5d71e49eef11a003bed782b",
+  "date": "2021-11-22T08:02:47+01:00",
+  "path": "/nix/store/khlrphky7p7qdivnn34r8hxlpzgav3xm-tree-sitter-glsl",
+  "sha256": "0qvn45whhd6q4wwqaihfd90197xr8lcynwjj418hxl83m9zy8xcz",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
index 3839bd61dc1f9..7e7ef382bae2e 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-go",
-  "rev": "7f6bfd0161b2fe97f03564edad3287ebea0494a3",
-  "date": "2021-10-04T13:10:27-04:00",
-  "path": "/nix/store/64xzxzc8z4fmwhfb7wbdkcxlk7r3bia2-tree-sitter-go",
-  "sha256": "12naks95vzb0sf219i39myvfpkycr2dh3lv7i7i6kwddmlhqsjnl",
+  "rev": "1203c11e422c73350e672445c5c32b8c0f79266d",
+  "date": "2021-12-03T14:22:11-08:00",
+  "path": "/nix/store/5h584m7qgvlh0s5k10503zj3idggandz-tree-sitter-go",
+  "sha256": "03i63mh5g21y424pf9whl42p7shqp9xlrx90xpyrd12dlc9zhh2j",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-godot-resource.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-godot-resource.json
new file mode 100644
index 0000000000000..19b3463215ee0
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-godot-resource.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/prestonknopp/tree-sitter-godot-resource",
+  "rev": "b6ef0768711086a86b3297056f9ffb5cc1d77b4a",
+  "date": "2021-12-20T22:40:16-08:00",
+  "path": "/nix/store/3lmwkk16jmjnkx8lrl33i7a19hjca2jz-tree-sitter-godot-resource",
+  "sha256": "0agnvg95fx60xkr5fivl1x3yhcw6ca58f7bpx3dq6fl7pyfgrky2",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gomod.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gomod.json
new file mode 100644
index 0000000000000..2b8fe79a3d245
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gomod.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/camdencheek/tree-sitter-go-mod",
+  "rev": "3cbcb572109ea0bc476a292208722c326c9e6c3a",
+  "date": "2021-12-16T14:44:10-07:00",
+  "path": "/nix/store/jxc3lqcxagfvlk7l62fg8z98mjrn7pgz-tree-sitter-go-mod",
+  "sha256": "0csrvmpvihwmw3772j4lkj49myqqp0f7imi7c11h9x9szz3lc8x8",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-graphql.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-graphql.json
new file mode 100644
index 0000000000000..b543c81fbd689
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-graphql.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/bkegley/tree-sitter-graphql",
+  "rev": "5e66e961eee421786bdda8495ed1db045e06b5fe",
+  "date": "2021-05-10T09:09:29-05:00",
+  "path": "/nix/store/am2ld0br0yhdny5c2ndp6l0bl3c78wwq-tree-sitter-graphql",
+  "sha256": "0xvrd6p9rxdjpqfq575ap6hpl2f7dad5i4d4m05w1qk9jx33vw9n",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json
new file mode 100644
index 0000000000000..99eb38b7adb21
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/connorlay/tree-sitter-heex",
+  "rev": "625a721ac38d9dd23d4f2b08eceb6700a2e670d5",
+  "date": "2021-10-19T12:18:28-07:00",
+  "path": "/nix/store/pr36q25xgnpmywm53w6rg58ygs9l93wj-tree-sitter-heex",
+  "sha256": "1r7wrb1h2l35wp0hlswb3xpwcf55dr56r865sriq3ngv89y64yha",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-hjson.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-hjson.json
new file mode 100644
index 0000000000000..d3ee4fba8cf5e
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-hjson.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/winston0410/tree-sitter-hjson",
+  "rev": "02fa3b79b3ff9a296066da6277adfc3f26cbc9e0",
+  "date": "2021-08-02T21:41:53+01:00",
+  "path": "/nix/store/cvbkxylvkpgxcmkv87fvknlfxg4q09bg-tree-sitter-hjson",
+  "sha256": "0zqf4bxqd2bpzdsw4kghq0jmn7l4sgdlrrlhc567b03p6kfdzi1n",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-http.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-http.json
new file mode 100644
index 0000000000000..71664391b230e
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-http.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/ntbbloodbath/tree-sitter-http",
+  "rev": "bfddd16b1cf78e0042fd1f6846a179f76a254e20",
+  "date": "2021-11-04T16:44:58-04:00",
+  "path": "/nix/store/l776a8vyhzg64pzna22hy96cia71l1sq-tree-sitter-http",
+  "sha256": "0va7lxddkpbsjpbih4dwv6i9minnl2a4lq7i6dm3fk99c71y4ghg",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json5.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json5.json
new file mode 100644
index 0000000000000..cd9bc3e8dc80f
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-json5.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/joakker/tree-sitter-json5",
+  "rev": "5dd5cdc418d9659682556b6adca2dd9ace0ac6d2",
+  "date": "2021-08-24T18:08:31-04:00",
+  "path": "/nix/store/0qhffwc84sp97d8im4lfrd06jsyvmzc4-tree-sitter-json5",
+  "sha256": "1la7bq5vi21gy0kf4zpwh0c0jfyv1bb62a3v7158hnxdyd5ijz07",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-kotlin.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-kotlin.json
new file mode 100644
index 0000000000000..f7e29af84f15e
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-kotlin.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/fwcd/tree-sitter-kotlin",
+  "rev": "607af7be5606ad6580246cd9c68fc615e1ad97fd",
+  "date": "2021-10-12T01:11:47+02:00",
+  "path": "/nix/store/49cvpcypxjzpb0srcpd383ay9f0g19dy-tree-sitter-kotlin",
+  "sha256": "1sisvx7cp95d309ykhimn8bhbwd1lzcwrpz3s0mdsb2i44p69469",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ledger.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ledger.json
new file mode 100644
index 0000000000000..a75a617649121
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ledger.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/cbarrete/tree-sitter-ledger",
+  "rev": "0cdeb0e51411a3ba5493662952c3039de08939ca",
+  "date": "2021-09-06T18:36:51-04:00",
+  "path": "/nix/store/8gh6lfvqczb6n6ncnmszvk3kj527m75w-tree-sitter-ledger",
+  "sha256": "1z0r2aphijzq6j67gb2lx2qr3fi2qpiz2x9dwkjvppdb4ch7ga7m",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-llvm.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-llvm.json
new file mode 100644
index 0000000000000..6fbe13182fec8
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-llvm.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/benwilliamgraham/tree-sitter-llvm",
+  "rev": "d4f61bed8ecb632addcd5e088c4f4cb9c1bf1c5b",
+  "date": "2021-10-03T12:19:51-04:00",
+  "path": "/nix/store/k9vpa9lvrvf1im6wx0c0xyjf2yzgbn0x-tree-sitter-llvm",
+  "sha256": "0iiigra7knvwsb6v76qs7vxpkmfnggakd27gl6sz9dm6gimp1adp",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-make.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-make.json
index fcb0b280e2439..468146ac47d09 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-make.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-make.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/alemuller/tree-sitter-make",
-  "rev": "716c294283bc3dda263ccbdf55e38ec30aa0edba",
-  "date": "2021-04-30T16:37:32-03:00",
-  "path": "/nix/store/v2dvgqs3fxwh83dhc53xivrx8i0g519y-tree-sitter-make",
-  "sha256": "1fb6rf6pc6mdawphifhlbzbgppxvq6hj48cz6073schvavgjgchc",
+  "rev": "a4b9187417d6be349ee5fd4b6e77b4172c6827dd",
+  "date": "2021-12-16T17:14:17+00:00",
+  "path": "/nix/store/v01s3lfi1w3bm433gf6zi0wb0r603906-tree-sitter-make",
+  "sha256": "07gz4x12xhigar2plr3jgazb2z4f9xp68nscmvy9a7wafak9l2m9",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json
index e04d8f81ff63e..801634201c867 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-nix.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/cstrahan/tree-sitter-nix",
-  "rev": "83ee5993560bf15854c69b77d92e34456f8fb655",
-  "date": "2021-07-21T20:36:40-05:00",
-  "path": "/nix/store/n5pq9gba570874akpwpvs052d7vyalhh-tree-sitter-nix",
-  "sha256": "03jhvyrsxq49smk9p2apjj839wmzjmrzy045wcxawz1g7xssp9pr",
+  "rev": "6d6aaa50793b8265b6a8b6628577a0083d3b923d",
+  "date": "2021-11-29T00:27:21-06:00",
+  "path": "/nix/store/6cjadxvqbrh205lsqnk2rnzq3badxdxv-tree-sitter-nix",
+  "sha256": "0cbk6dqppasrvnm87pwfgm718z6b0xmy9m7zj8ysil0h8bklz1w9",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-norg.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-norg.json
index dbf88190fb392..7feaee05a8651 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-norg.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-norg.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/nvim-neorg/tree-sitter-norg",
-  "rev": "995d7e0be4dc2a9655d2285405c0ef3fededf63c",
-  "date": "2021-11-05T21:28:42+01:00",
-  "path": "/nix/store/1l5dq21x6sln1gvixf20gx3pkadjad4d-tree-sitter-norg",
-  "sha256": "181y8p91hl5j7mrff0pmnx91d9vr24nvklgx12qvc0297vdp8c5v",
+  "rev": "665736e400cfd52ae92ead244ca9f5d44db98151",
+  "date": "2021-12-14T15:04:57+01:00",
+  "path": "/nix/store/crbl24rj54f8c9pjq8igadz3wqcw6qrw-tree-sitter-norg",
+  "sha256": "0hxar07a7n3ghqagr0qjxbz4sgzcpyxwgd4dbj1vvy4xnk07i0br",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-perl.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-perl.json
new file mode 100644
index 0000000000000..fd07357b6bb88
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-perl.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/ganezdragon/tree-sitter-perl",
+  "rev": "0ac2c6da562c7a2c26ed7e8691d4a590f7e8b90a",
+  "date": "2021-11-01T14:40:51-04:00",
+  "path": "/nix/store/1yzkap7jvps3xdj19pygyv1bn6c33qak-tree-sitter-perl",
+  "sha256": "184zaicrl9i4cywhyc2cxpghw7daz9pi0fhwkkgpv7j6kvp1ig2w",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
index c680b87b76d42..e64e3f6bff368 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-php",
-  "rev": "435fa00006c0d1515c37fbb4dd6a9de284af75ab",
-  "date": "2021-10-17T09:05:36+02:00",
-  "path": "/nix/store/0vgi25jrbc6fks97sxkya80dvwa0gzbk-tree-sitter-php",
-  "sha256": "05k4h58gi616gv41r0qqdb1x4rs8y94vghn2r10yczisgzq4vbad",
+  "rev": "57f855461aeeca73bd4218754fb26b5ac143f98f",
+  "date": "2021-11-19T17:22:11+01:00",
+  "path": "/nix/store/lxl3r0lykb9b3r0sdqb3sqixlnaf6015-tree-sitter-php",
+  "sha256": "1v7xzc8w8nilmgnx6whdvq03dbi1z8j57aarwwzx9xbb86z2qhvc",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pioasm.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pioasm.json
new file mode 100644
index 0000000000000..9c753e26305ef
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pioasm.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/leo60228/tree-sitter-pioasm",
+  "rev": "924aadaf5dea2a6074d72027b064f939acf32e20",
+  "date": "2021-08-27T17:22:56-04:00",
+  "path": "/nix/store/nhxzw33vljxh5i90d0fb5nzdfjp5h9bl-tree-sitter-pioasm",
+  "sha256": "1lxvgc0zkd2sv8dxp2fy6b1k3gqrbkxgqy25lw9sbd4kij7463m2",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-prisma.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-prisma.json
new file mode 100644
index 0000000000000..ec69a798aad65
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-prisma.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/victorhqc/tree-sitter-prisma",
+  "rev": "74a721e8eed1a4a25cf495d45974ba24f315f81a",
+  "date": "2021-11-19T19:52:32+01:00",
+  "path": "/nix/store/rbr2p57ic1kn0121ca6k0bh2r8svw066-tree-sitter-prisma",
+  "sha256": "1b8yil6v9jz9ndx2kzln639fkjkj1xb0qfcip1njxcq5mlqlfswd",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pug.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pug.json
new file mode 100644
index 0000000000000..cf72f03519cd1
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pug.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/zealot128/tree-sitter-pug",
+  "rev": "5875f9a7d94836708119b0a1102bb5792e8bf673",
+  "date": "2021-07-13T22:48:45+02:00",
+  "path": "/nix/store/3bwj01nmxkd4cmvjyrfv2a6wq07hbqig-tree-sitter-pug",
+  "sha256": "1sjw632yidi8dq34g1nqmld9861j40qnrlg4c8w478kl8hmhnvmb",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-query.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-query.json
new file mode 100644
index 0000000000000..8f70551443fa5
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-query.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/nvim-treesitter/tree-sitter-query",
+  "rev": "9a2ccff9f672f1f3d320cf925b8e5acc89b27055",
+  "date": "2021-07-13T08:51:40-05:00",
+  "path": "/nix/store/k843gr9rlkd5jaf9arvlwcs31wsznn81-tree-sitter-query",
+  "sha256": "0x5ssq8pb767s1l68123jaa5p4570xmz74ii94kckd46wmqbk4v9",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-r.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-r.json
new file mode 100644
index 0000000000000..dd644745aea23
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-r.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/r-lib/tree-sitter-r",
+  "rev": "91f587e5685f46e26f9f6e55f2e06d503f8f0fc0",
+  "date": "2021-12-03T10:44:27-05:00",
+  "path": "/nix/store/z89yfih6g05fkrzz6s7snkyqp8wj8pi5-tree-sitter-r",
+  "sha256": "0dds34vgrvgxi1918a2w6xcw5l8n9ch3qi43vql769p8zxf8qijp",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json
index 86320373d7ea3..e9df62ad10fd2 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ruby.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-ruby",
-  "rev": "fe6a2d634da0e16b11b5aa255cc3df568a4572fd",
-  "date": "2021-03-03T16:54:30-08:00",
-  "path": "/nix/store/ragrvqj7hm98r74v5b3fljvc47gd3nhj-tree-sitter-ruby",
-  "sha256": "0m3h4928rbs300wcb6776h9r88hi32rybbhcaf6rdympl5nzi83v",
+  "rev": "888e2e563ed3b43c417f17e57f7e29c39ce9aeea",
+  "date": "2021-12-03T16:33:06+01:00",
+  "path": "/nix/store/6g101r5pwy6iqicch9srlhwfz9xdrvzd-tree-sitter-ruby",
+  "sha256": "0xfcqafslxlpkw7agw4a179w3c6k6ivi3fzlf32pqfd5bjrlx9d7",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json
index 8e8af00423b8c..2f6ac50b07da6 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-rust",
-  "rev": "cc7bdd3e6d14677e8aa77da64f6a3f57b6f8b00a",
-  "date": "2021-08-17T11:21:11-07:00",
-  "path": "/nix/store/aw8bi91hz7a26swc5qrfqwn2lrdmiymr-tree-sitter-rust",
-  "sha256": "15qz4rwz1fkpcy78g0aspfgk9pgykvzv5sxmhgm37nfpgyi7vlg1",
+  "rev": "d045b04b66d51c0ba8671e7ce1ee23a9f286b7d7",
+  "date": "2021-12-12T10:08:54-08:00",
+  "path": "/nix/store/2h6vkl05jxqgp4738a0dxccmg40yhqvj-tree-sitter-rust",
+  "sha256": "0ckyaw1ll3yazyg18wd40kc09h6f0zmwqmahsm07bwgfyc2nvf3h",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scss.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scss.json
new file mode 100644
index 0000000000000..03644c839c3c5
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scss.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/serenadeai/tree-sitter-scss",
+  "rev": "f3174d3d131eb776f86dfa3d90fe6f7325c0ad9a",
+  "date": "2021-11-08T17:21:33-08:00",
+  "path": "/nix/store/qpmqd6a3rnrp451b5jjmqqwark276smj-tree-sitter-scss",
+  "sha256": "0c8mx5fxcfn8wn361i7pnr3xga7vm2jjj99ilkqljir71nl6bm11",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-sparql.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-sparql.json
new file mode 100644
index 0000000000000..4180f58440735
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-sparql.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/bonabeavis/tree-sitter-sparql",
+  "rev": "05f949d3c1c15e3261473a244d3ce87777374dec",
+  "date": "2021-08-16T15:50:03+02:00",
+  "path": "/nix/store/vvgvb1jcv0qrn3xj0jbf83qwi1lh2m68-tree-sitter-sparql",
+  "sha256": "012c1pi4vc6hkvllymvl2yah3ix8k4pi7997iydy949fc33aa5i8",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-supercollider.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-supercollider.json
new file mode 100644
index 0000000000000..26f6d7bc0bc81
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-supercollider.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/madskjeldgaard/tree-sitter-supercollider",
+  "rev": "ac83e9d5ef3a62d2160d0f1e0a64a949ecda1d8b",
+  "date": "2021-12-21T18:04:07+01:00",
+  "path": "/nix/store/zk5zwg98pljk2dwqax81pib3l68wgl8x-tree-sitter-supercollider",
+  "sha256": "0qpjy40wigcf6r23j2i3yqr061n6zdz60mlm9i5mkii2y65ff8cf",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-surface.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-surface.json
new file mode 100644
index 0000000000000..d12ff52a55631
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-surface.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/connorlay/tree-sitter-surface",
+  "rev": "21b7676859c1187645a27ff301f76738af5dfd44",
+  "date": "2021-08-15T10:33:50-07:00",
+  "path": "/nix/store/7i1klj80jbcvwgad7nrbcs7hvn68f125-tree-sitter-surface",
+  "sha256": "122v1d2zb0w2k5h7xqgm1c42rwfrp59dzyb2lly7kxmylyazmshy",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-tlaplus.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-tlaplus.json
new file mode 100644
index 0000000000000..cf939daf9cc68
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-tlaplus.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/tlaplus-community/tree-sitter-tlaplus",
+  "rev": "26bbaf5d07356cacbf21defa9316988bc732c8b3",
+  "date": "2021-10-12T19:50:03-04:00",
+  "path": "/nix/store/52rs1n8y6krfkb9z2h7jsl4s3j15dp08-tree-sitter-tlaplus",
+  "sha256": "1yj2hjc48sjjpysjgyji7nx2l0rpc5dnsm68i8amff5wcag5lyhw",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-turtle.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-turtle.json
new file mode 100644
index 0000000000000..6430be302fbf9
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-turtle.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/bonabeavis/tree-sitter-turtle",
+  "rev": "085437f5cb117703b7f520dd92161140a684f092",
+  "date": "2021-08-16T15:17:50+02:00",
+  "path": "/nix/store/c90hph3wfyhjmri3qbfb5lpy1bl855zv-tree-sitter-turtle",
+  "sha256": "1l5djvz90sq9w14kfcrffdigqs61r1p8v17xpj92sxz8z3ngpgmr",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-vue.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-vue.json
new file mode 100644
index 0000000000000..f40c0054c9481
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-vue.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/ikatyang/tree-sitter-vue",
+  "rev": "91fe2754796cd8fba5f229505a23fa08f3546c06",
+  "date": "2021-04-04T11:51:48+08:00",
+  "path": "/nix/store/9bw35fa56xli7r2k3b3bzzlm7vkpxzcy-tree-sitter-vue",
+  "sha256": "0l0kqy9ajm5izqcywd39aavgmc281s8qrhmjkbwl6r8arfj8vsrm",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yang.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yang.json
new file mode 100644
index 0000000000000..73d1872302710
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-yang.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/hubro/tree-sitter-yang",
+  "rev": "8e9d175982afcefa3dac8ca20d40d1643accd2bd",
+  "date": "2021-07-29T23:07:25+02:00",
+  "path": "/nix/store/ark7nssjv3jzy1kw9anlma7li5k9zpnb-tree-sitter-yang",
+  "sha256": "044q9fikaxnrcrnfwc7cfjnwdg6v7jb6rg7mj556iryv0bkv48s1",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json
index 100bb09fce20d..98a30d08ac447 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-zig.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/maxxnino/tree-sitter-zig",
-  "rev": "63e8a11f1858c7351a299223b231c8134ed61612",
-  "date": "2021-10-13T22:25:30+09:00",
-  "path": "/nix/store/2dy3wrmjss5mnmdv6xf50cjj3k9bfpp0-tree-sitter-zig",
-  "sha256": "1izvw3dv5ydklqlh8n4fslyzqdal9n8kark0g4xslcrnji3q71wg",
+  "rev": "cf93353d5682c3e9d8112d448ff24d4de7b2304e",
+  "date": "2021-11-25T20:46:40+09:00",
+  "path": "/nix/store/jwrs3fdgdqymjkrni6mlz1j0f0ai6h9y-tree-sitter-zig",
+  "sha256": "04ja9w28zprw575s4734d02ibi498whh3z7cxm3m1fdydhjsdlrj",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/update.nix b/pkgs/development/tools/parsing/tree-sitter/update.nix
index 0f7c61b37bb52..58d420fe4028a 100644
--- a/pkgs/development/tools/parsing/tree-sitter/update.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/update.nix
@@ -1,6 +1,12 @@
-{ writeShellScript, nix-prefetch-git, formats, lib
-, curl, jq, xe
-, src }:
+{ writeShellScript
+, nix-prefetch-git
+, formats
+, lib
+, curl
+, jq
+, xe
+, src
+}:
 
 # Grammar list:
 # https://github.com/tree-sitter/tree-sitter/blob/master/docs/index.md
@@ -150,38 +156,188 @@ let
       orga = "nvim-neorg";
       repo = "tree-sitter-norg";
     };
+    "tree-sitter-commonlisp" = {
+      orga = "thehamsta";
+      repo = "tree-sitter-commonlisp";
+    };
+    "tree-sitter-cuda" = {
+      orga = "thehamsta";
+      repo = "tree-sitter-cuda";
+    };
+    "tree-sitter-glsl" = {
+      orga = "thehamsta";
+      repo = "tree-sitter-glsl";
+    };
+    "tree-sitter-dockerfile" = {
+      orga = "camdencheek";
+      repo = "tree-sitter-dockerfile";
+    };
+    "tree-sitter-ledger" = {
+      orga = "cbarrete";
+      repo = "tree-sitter-ledger";
+    };
+    "tree-sitter-gomod" = {
+      orga = "camdencheek";
+      repo = "tree-sitter-go-mod";
+    };
+    "tree-sitter-graphql" = {
+      orga = "bkegley";
+      repo = "tree-sitter-graphql";
+    };
+    "tree-sitter-perl" = {
+      orga = "ganezdragon";
+      repo = "tree-sitter-perl";
+    };
+    "tree-sitter-kotlin" = {
+      orga = "fwcd";
+      repo = "tree-sitter-kotlin";
+    };
+    "tree-sitter-scss" = {
+      orga = "serenadeai";
+      repo = "tree-sitter-scss";
+    };
+    "tree-sitter-erlang" = {
+      orga = "abstractmachineslab";
+      repo = "tree-sitter-erlang";
+    };
+    "tree-sitter-elixir" = {
+      orga = "elixir-lang";
+      repo = "tree-sitter-elixir";
+    };
+    "tree-sitter-surface" = {
+      orga = "connorlay";
+      repo = "tree-sitter-surface";
+    };
+    "tree-sitter-heex" = {
+      orga = "connorlay";
+      repo = "tree-sitter-heex";
+    };
+    "tree-sitter-supercollider" = {
+      orga = "madskjeldgaard";
+      repo = "tree-sitter-supercollider";
+    };
+    "tree-sitter-tlaplus" = {
+      orga = "tlaplus-community";
+      repo = "tree-sitter-tlaplus";
+    };
+    "tree-sitter-glimmer" = {
+      orga = "alexlafroscia";
+      repo = "tree-sitter-glimmer";
+    };
+    "tree-sitter-pug" = {
+      orga = "zealot128";
+      repo = "tree-sitter-pug";
+    };
+    "tree-sitter-vue" = {
+      orga = "ikatyang";
+      repo = "tree-sitter-vue";
+    };
+    "tree-sitter-elm" = {
+      orga = "elm-tooling";
+      repo = "tree-sitter-elm";
+    };
+    "tree-sitter-yang" = {
+      orga = "hubro";
+      repo = "tree-sitter-yang";
+    };
+    "tree-sitter-query" = {
+      orga = "nvim-treesitter";
+      repo = "tree-sitter-query";
+    };
+    "tree-sitter-sparql" = {
+      orga = "bonabeavis";
+      repo = "tree-sitter-sparql";
+    };
+    "tree-sitter-gdscript" = {
+      orga = "prestonknopp";
+      repo = "tree-sitter-gdscript";
+    };
+    "tree-sitter-godot-resource" = {
+      orga = "prestonknopp";
+      repo = "tree-sitter-godot-resource";
+    };
+    "tree-sitter-turtle" = {
+      orga = "bonabeavis";
+      repo = "tree-sitter-turtle";
+    };
+    "tree-sitter-devicetree" = {
+      orga = "joelspadin";
+      repo = "tree-sitter-devicetree";
+    };
+    "tree-sitter-r" = {
+      orga = "r-lib";
+      repo = "tree-sitter-r";
+    };
+    "tree-sitter-bibtex" = {
+      orga = "latex-lsp";
+      repo = "tree-sitter-bibtex";
+    };
+    "tree-sitter-fortran" = {
+      orga = "stadelmanma";
+      repo = "tree-sitter-fortran";
+    };
+    "tree-sitter-cmake" = {
+      orga = "uyha";
+      repo = "tree-sitter-cmake";
+    };
+    "tree-sitter-json5" = {
+      orga = "joakker";
+      repo = "tree-sitter-json5";
+    };
+    "tree-sitter-pioasm" = {
+      orga = "leo60228";
+      repo = "tree-sitter-pioasm";
+    };
+    "tree-sitter-hjson" = {
+      orga = "winston0410";
+      repo = "tree-sitter-hjson";
+    };
+    "tree-sitter-llvm" = {
+      orga = "benwilliamgraham";
+      repo = "tree-sitter-llvm";
+    };
+    "tree-sitter-http" = {
+      orga = "ntbbloodbath";
+      repo = "tree-sitter-http";
+    };
+    "tree-sitter-prisma" = {
+      orga = "victorhqc";
+      repo = "tree-sitter-prisma";
+    };
   };
 
   allGrammars =
     let
       treeSitterOrgaGrammars =
-        lib.listToAttrs (map (repo:
-          { name = repo;
-            value = {
-              orga = "tree-sitter";
-              inherit repo;
-            };
-          })
-        knownTreeSitterOrgGrammarRepos);
+        lib.listToAttrs (map
+          (repo:
+            {
+              name = repo;
+              value = {
+                orga = "tree-sitter";
+                inherit repo;
+              };
+            })
+          knownTreeSitterOrgGrammarRepos);
 
     in
-      mergeAttrsUnique otherGrammars treeSitterOrgaGrammars;
+    mergeAttrsUnique otherGrammars treeSitterOrgaGrammars;
 
   # TODO: move to lib
   mergeAttrsUnique = left: right:
     let intersect = lib.intersectLists (lib.attrNames left) (lib.attrNames right); in
     assert
-      lib.assertMsg (intersect == [])
-        (lib.concatStringsSep "\n" [
-          "mergeAttrsUnique: keys in attrset overlapping:"
-          "left: ${lib.generators.toPretty {} (lib.getAttrs intersect left)}"
-          "right: ${lib.generators.toPretty {} (lib.getAttrs intersect right)}"
-        ]);
+    lib.assertMsg (intersect == [ ])
+      (lib.concatStringsSep "\n" [
+        "mergeAttrsUnique: keys in attrset overlapping:"
+        "left: ${lib.generators.toPretty {} (lib.getAttrs intersect left)}"
+        "right: ${lib.generators.toPretty {} (lib.getAttrs intersect right)}"
+      ]);
     left // right;
 
 
 
-  jsonFile = name: val: (formats.json {}).generate name val;
+  jsonFile = name: val: (formats.json { }).generate name val;
 
   # check the tree-sitter orga repos
   checkTreeSitterRepos = writeShellScript "get-grammars.sh" ''
@@ -244,11 +400,11 @@ let
       --no-deepClone \
       --url "https://github.com/${urlEscape orga}/${urlEscape repo}" \
       --rev "$latest"
-    '';
+  '';
 
   foreachSh = attrs: f:
     lib.concatMapStringsSep "\n" f
-    (lib.mapAttrsToList (k: v: { name = k; } // v) attrs);
+      (lib.mapAttrsToList (k: v: { name = k; } // v) attrs);
 
   update-all-grammars = writeShellScript "update-all-grammars.sh" ''
     set -euo pipefail
@@ -270,4 +426,5 @@ let
       > "$outputDir/default.nix"
   '';
 
-in update-all-grammars
+in
+update-all-grammars
diff --git a/pkgs/development/tools/perseus-cli/default.nix b/pkgs/development/tools/perseus-cli/default.nix
new file mode 100644
index 0000000000000..9ec8aa21e2d31
--- /dev/null
+++ b/pkgs/development/tools/perseus-cli/default.nix
@@ -0,0 +1,28 @@
+{ lib, rustPlatform, fetchCrate, makeWrapper, wasm-pack }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "perseus-cli";
+  version = "0.3.0";
+
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "sha256-YyQQjuxNUxuo2PFluGyT/CpG22tgjRCfmFKA5MFRgHo=";
+  };
+
+  cargoSha256 = "sha256-SKxPsltXFH+ENexn/KDD43hGLSTgvtU9hv9Vdi2oeFA=";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/perseus \
+      --prefix PATH : "${lib.makeBinPath [ wasm-pack ]}"
+  '';
+
+  meta = with lib; {
+    homepage = "https://arctic-hen7.github.io/perseus";
+    description = "A high-level web development framework for Rust with full support for server-side rendering and static generation";
+    maintainers = with maintainers; [ max-niederman ];
+    license = with licenses; [ mit ];
+    mainProgram = "perseus";
+  };
+}
diff --git a/pkgs/development/tools/pet/default.nix b/pkgs/development/tools/pet/default.nix
index 4ed16d4174661..653bc8aca7294 100644
--- a/pkgs/development/tools/pet/default.nix
+++ b/pkgs/development/tools/pet/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pet";
-  version = "0.3.6";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "knqyf263";
     repo = "pet";
     rev = "v${version}";
-    sha256 = "1na3az7vicjq1rxd3ybid47yrblsdazgli0dchkbwh8zchwhqj33";
+    sha256 = "sha256-gVTpzmXekQxGMucDKskGi+e+34nJwwsXwvQTjRO6Gdg=";
   };
 
-  vendorSha256 = "0pnd89iqdj3f719xf4iy5r04n51d0rrrf0qb2zjirpw7vh7g82i9";
+  vendorSha256 = "sha256-vciiBzmqUAt5ZWn9go4B1uaz0HsBk5Z9Rbw7/MAimY4=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/pgformatter/default.nix b/pkgs/development/tools/pgformatter/default.nix
index 6c0465c1cf356..16ef0a99390eb 100644
--- a/pkgs/development/tools/pgformatter/default.nix
+++ b/pkgs/development/tools/pgformatter/default.nix
@@ -2,13 +2,13 @@
 
 perlPackages.buildPerlPackage rec {
   pname = "pgformatter";
-  version = "5.1";
+  version = "5.2";
 
   src = fetchFromGitHub {
     owner = "darold";
     repo = "pgFormatter";
     rev = "v${version}";
-    sha256 = "1a6rmph96s7c8lpmpkizcvdf0x4jlsr5iqi7qjprxqsf6zak2rfg";
+    sha256 = "sha256-NNdg3H+tB5ovKWGneOs496c0b2dv/zFYF4CZhuH07Fs=";
   };
 
   outputs = [ "out" ];
diff --git a/pkgs/development/tools/pipenv/default.nix b/pkgs/development/tools/pipenv/default.nix
index 67f6b3a76f3bd..1c09bb502a233 100644
--- a/pkgs/development/tools/pipenv/default.nix
+++ b/pkgs/development/tools/pipenv/default.nix
@@ -18,11 +18,11 @@ let
 
 in buildPythonApplication rec {
   pname = "pipenv";
-  version = "2021.11.9";
+  version = "2021.11.23";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7662399162bc887ee86e96d0baa6984236228af9c1fd6594be0b18910225579d";
+    sha256 = "1bde859e8bbd1d21d503fd995bc0170048d6da7686ab885f074592c99a16e8f3";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/default.nix b/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
index dae0a02b6175b..07e0063d6c5bb 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
@@ -5,7 +5,7 @@
 }:
 let
   # Poetry2nix version
-  version = "1.21.0";
+  version = "1.24.1";
 
   inherit (poetryLib) isCompatible readTOML moduleName;
 
@@ -76,9 +76,9 @@ lib.makeScope pkgs.newScope (self: {
   inherit version;
 
   /* Returns a package of editable sources whose changes will be available without needing to restart the
-     nix-shell.
-     In editablePackageSources you can pass a mapping from package name to source directory to have
-     those packages available in the resulting environment, whose source changes are immediately available.
+    nix-shell.
+    In editablePackageSources you can pass a mapping from package name to source directory to have
+    those packages available in the resulting environment, whose source changes are immediately available.
 
   */
   mkPoetryEditablePackage =
@@ -109,7 +109,7 @@ lib.makeScope pkgs.newScope (self: {
       };
 
   /*
-     Returns an attrset { python, poetryPackages, pyProject, poetryLock } for the given pyproject/lockfile.
+    Returns an attrset { python, poetryPackages, pyProject, poetryLock } for the given pyproject/lockfile.
   */
   mkPoetryPackages =
     { projectDir ? null
@@ -211,7 +211,7 @@ lib.makeScope pkgs.newScope (self: {
 
                   __toPluginAble = toPluginAble self;
 
-                  inherit (hooks) pipBuildHook removePathDependenciesHook poetry2nixFixupHook wheelUnpackHook;
+                  inherit (hooks) pipBuildHook removePathDependenciesHook removeGitDependenciesHook poetry2nixFixupHook wheelUnpackHook;
                 } // lib.optionalAttrs (! super ? setuptools-scm) {
                   # The canonical name is setuptools-scm
                   setuptools-scm = super.setuptools_scm;
@@ -231,8 +231,8 @@ lib.makeScope pkgs.newScope (self: {
 
       requiredPythonModules = python.pkgs.requiredPythonModules;
       /* Include all the nested dependencies which are required for each package.
-         This guarantees that using the "poetryPackages" attribute will return
-         complete list of dependencies for the poetry project to be portable.
+        This guarantees that using the "poetryPackages" attribute will return
+        complete list of dependencies for the poetry project to be portable.
       */
       storePackages = requiredPythonModules (builtins.foldl' (acc: v: acc ++ v) [ ] (lib.attrValues inputAttrs));
     in
@@ -246,11 +246,11 @@ lib.makeScope pkgs.newScope (self: {
     };
 
   /* Returns a package with a python interpreter and all packages specified in the poetry.lock lock file.
-     In editablePackageSources you can pass a mapping from package name to source directory to have
-     those packages available in the resulting environment, whose source changes are immediately available.
+    In editablePackageSources you can pass a mapping from package name to source directory to have
+    those packages available in the resulting environment, whose source changes are immediately available.
 
-     Example:
-       poetry2nix.mkPoetryEnv { poetrylock = ./poetry.lock; python = python3; }
+    Example:
+    poetry2nix.mkPoetryEnv { poetrylock = ./poetry.lock; python = python3; }
   */
   mkPoetryEnv =
     { projectDir ? null
@@ -261,6 +261,7 @@ lib.makeScope pkgs.newScope (self: {
     , python ? pkgs.python3
     , preferWheels ? false
     , editablePackageSources ? { }
+    , extraPackages ? ps: [ ]
     }:
     let
       poetryPython = self.mkPoetryPackages {
@@ -270,14 +271,14 @@ lib.makeScope pkgs.newScope (self: {
       inherit (poetryPython) poetryPackages;
 
     in
-    poetryPython.python.withPackages (_: poetryPackages);
+    poetryPython.python.withPackages (ps: poetryPackages ++ (extraPackages ps));
 
   /* Creates a Python application from pyproject.toml and poetry.lock
 
-     The result also contains a .dependencyEnv attribute which is a python
-     environment of all dependencies and this apps modules. This is useful if
-     you rely on dependencies to invoke your modules for deployment: e.g. this
-     allows `gunicorn my-module:app`.
+    The result also contains a .dependencyEnv attribute which is a python
+    environment of all dependencies and this apps modules. This is useful if
+    you rely on dependencies to invoke your modules for deployment: e.g. this
+    allows `gunicorn my-module:app`.
   */
   mkPoetryApplication =
     { projectDir ? null
@@ -313,7 +314,10 @@ lib.makeScope pkgs.newScope (self: {
 
       app = py.pkgs.buildPythonPackage (
         passedAttrs // inputAttrs // {
-          nativeBuildInputs = inputAttrs.nativeBuildInputs ++ [ py.pkgs.removePathDependenciesHook ];
+          nativeBuildInputs = inputAttrs.nativeBuildInputs ++ [
+            py.pkgs.removePathDependenciesHook
+            py.pkgs.removeGitDependenciesHook
+          ];
         } // {
           pname = moduleName pyProject.tool.poetry.name;
           version = pyProject.tool.poetry.version;
@@ -369,7 +373,7 @@ lib.makeScope pkgs.newScope (self: {
 
 
   /*
-  Create a new default set of overrides with the same structure as the built-in ones
+    Create a new default set of overrides with the same structure as the built-in ones
   */
   mkDefaultPoetryOverrides = defaults: {
     __functor = defaults;
@@ -393,26 +397,26 @@ lib.makeScope pkgs.newScope (self: {
   };
 
   /*
-  The default list of poetry2nix override overlays
+    The default list of poetry2nix override overlays
 
-  Can be overriden by calling defaultPoetryOverrides.overrideOverlay which takes an overlay function
+    Can be overriden by calling defaultPoetryOverrides.overrideOverlay which takes an overlay function
   */
   defaultPoetryOverrides = self.mkDefaultPoetryOverrides (import ./overrides.nix { inherit pkgs lib; });
 
   /*
-  Convenience functions for specifying overlays with or without the poerty2nix default overrides
+    Convenience functions for specifying overlays with or without the poerty2nix default overrides
   */
   overrides = {
     /*
-    Returns the specified overlay in a list
+      Returns the specified overlay in a list
     */
     withoutDefaults = overlay: [
       overlay
     ];
 
     /*
-    Returns the specified overlay and returns a list
-    combining it with poetry2nix default overrides
+      Returns the specified overlay and returns a list
+      combining it with poetry2nix default overrides
     */
     withDefaults = overlay: [
       self.defaultPoetryOverrides
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/fetch_from_legacy.py b/pkgs/development/tools/poetry2nix/poetry2nix/fetch_from_legacy.py
index c1bed08293966..d59c3a7763ac4 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/fetch_from_legacy.py
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/fetch_from_legacy.py
@@ -4,7 +4,9 @@
 # Note it is not possible to use pip
 # https://discuss.python.org/t/pip-download-just-the-source-packages-no-building-no-metadata-etc/4651/12
 
+import os
 import sys
+import netrc
 from urllib.parse import urlparse, urlunparse
 from html.parser import HTMLParser
 import urllib.request
@@ -39,17 +41,32 @@ class Pep503(HTMLParser):
 
 url = sys.argv[1]
 package_name = sys.argv[2]
-index_url = url + "/" + package_name
+index_url = url + "/" + package_name + "/"
 package_filename = sys.argv[3]
 
+# Parse username and password for this host from the netrc file if given.
+username, password = None, None
+if os.environ["NETRC"]:
+    netrc_obj = netrc.netrc(os.environ["NETRC"])
+    host = urlparse(index_url).netloc
+    # Strip port number if present
+    if ":" in host:
+        host = host.split(":")[0]
+    username, _, password = netrc_obj.authenticators(host)
+
 print("Reading index %s" % index_url)
 
 context = ssl.create_default_context()
 context.check_hostname = False
 context.verify_mode = ssl.CERT_NONE
 
+req = urllib.request.Request(index_url)
+if username and password:
+    import base64
+    password_b64 = base64.b64encode(bytes(f"{username}:{password}", "utf-8")).decode("utf-8")
+    req.add_header("Authorization", f"Basic {password_b64}")
 response = urllib.request.urlopen(
-    index_url,
+    req,
     context=context)
 index = response.read()
 
@@ -63,7 +80,13 @@ if package_filename not in parser.sources:
 package_file = open(package_filename, "wb")
 # Sometimes the href is a relative path
 if urlparse(parser.sources[package_filename]).netloc == '':
-    package_url = index_url + "/" + parser.sources[package_filename]
+    parsed_url = urlparse(index_url)
+    package_url = urlunparse((
+        parsed_url.scheme,
+        parsed_url.netloc,
+        parser.sources[package_filename],
+        None, None, None,
+    ))
 else:
     package_url = parser.sources[package_filename]
 
@@ -81,8 +104,11 @@ real_package_url = urlunparse(
 )
 print("Downloading %s" % real_package_url)
 
+req = urllib.request.Request(real_package_url)
+if username and password:
+    req.add_unredirected_header("Authorization", f"Basic {password_b64}")
 response = urllib.request.urlopen(
-    real_package_url,
+    req,
     context=context)
 
 with response as r:
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix
index a66989f70e56f..0abbe2459927c 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix
@@ -21,9 +21,28 @@ in
           substitutions = {
             inherit pythonInterpreter;
             yj = "${buildPackages.yj}/bin/yj";
-            pyprojectPatchScript = "${./pyproject-without-path.py}";
+            pyprojectPatchScript = "${./pyproject-without-special-deps.py}";
+            fields = [ "path" ];
+            kind = "path";
           };
-        } ./remove-path-dependencies.sh
+        } ./remove-special-dependencies.sh
+    )
+    { };
+
+  removeGitDependenciesHook = callPackage
+    ({}:
+      makeSetupHook
+        {
+          name = "remove-git-dependencies.sh";
+          deps = [ ];
+          substitutions = {
+            inherit pythonInterpreter;
+            yj = "${buildPackages.yj}/bin/yj";
+            pyprojectPatchScript = "${./pyproject-without-special-deps.py}";
+            fields = [ "git" "branch" "rev" "tag" ];
+            kind = "git";
+          };
+        } ./remove-special-dependencies.sh
     )
     { };
 
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/pyproject-without-path.py b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/pyproject-without-path.py
deleted file mode 100644
index 5d8fbcfe6b4d7..0000000000000
--- a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/pyproject-without-path.py
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/usr/bin/env python
-# Patch out path dependencies from a pyproject.json file
-
-import json
-import sys
-
-data = json.load(sys.stdin)
-
-
-def get_deep(o, path):
-    for p in path.split('.'):
-        o = o.get(p, {})
-    return o
-
-
-for dep in get_deep(data, 'tool.poetry.dependencies').values():
-    if isinstance(dep, dict):
-        try:
-            del dep['path'];
-        except KeyError:
-            pass
-        else:
-            dep['version'] = '*'
-
-json.dump(data, sys.stdout, indent=4)
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/pyproject-without-special-deps.py b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/pyproject-without-special-deps.py
new file mode 100644
index 0000000000000..af9816cf831ea
--- /dev/null
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/pyproject-without-special-deps.py
@@ -0,0 +1,52 @@
+#!/usr/bin/env python
+# Patch out special dependencies (git and path) from a pyproject.json file
+
+import argparse
+import json
+import sys
+
+
+def main(input, output, fields_to_remove):
+    data = json.load(input)
+
+    try:
+        deps = data["tool"]["poetry"]["dependencies"]
+    except KeyError:
+        pass
+    else:
+        for dep in deps.values():
+            if isinstance(dep, dict):
+                any_removed = False
+                for field in fields_to_remove:
+                    any_removed |= dep.pop(field, None) is not None
+                if any_removed:
+                    dep["version"] = "*"
+
+    json.dump(data, output, separators=(",", ":"))
+
+
+if __name__ == "__main__":
+    p = argparse.ArgumentParser()
+    p.add_argument(
+        "-i",
+        "--input",
+        type=argparse.FileType("r"),
+        default=sys.stdin,
+        help="Location from which to read input JSON",
+    )
+    p.add_argument(
+        "-o",
+        "--output",
+        type=argparse.FileType("w"),
+        default=sys.stdout,
+        help="Location to write output JSON",
+    )
+    p.add_argument(
+        "-f",
+        "--fields-to-remove",
+        nargs="+",
+        help="The fields to remove from the dependency's JSON",
+    )
+
+    args = p.parse_args()
+    main(args.input, args.output, args.fields_to_remove)
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/remove-path-dependencies.sh b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/remove-path-dependencies.sh
deleted file mode 100644
index b22a05900a05f..0000000000000
--- a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/remove-path-dependencies.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-remove-path-dependencies-hook() {
-    if ! test -f pyproject.toml; then
-        return
-    fi
-
-    # Tell poetry not to resolve the path dependencies. Any version is fine!
-    @yj@ -tj < pyproject.toml | @pythonInterpreter@ @pyprojectPatchScript@ > pyproject.json
-    @yj@ -jt < pyproject.json > pyproject.toml
-    rm pyproject.json
-}
-
-postPatchHooks+=(remove-path-dependencies-hook)
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/hooks/remove-special-dependencies.sh b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/remove-special-dependencies.sh
new file mode 100644
index 0000000000000..2d37667d6fdfc
--- /dev/null
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/hooks/remove-special-dependencies.sh
@@ -0,0 +1,20 @@
+remove-@kind@-dependencies-hook() {
+    if ! test -f pyproject.toml; then
+        return
+    fi
+
+    echo "Removing @kind@ dependencies"
+
+    # Tell poetry not to resolve special dependencies. Any version is fine!
+    @yj@ -tj < pyproject.toml | \
+        @pythonInterpreter@ \
+        @pyprojectPatchScript@ \
+        --fields-to-remove @fields@ > pyproject.json
+    @yj@ -jt < pyproject.json > pyproject.toml
+
+    rm pyproject.json
+
+    echo "Finished removing @kind@ dependencies"
+}
+
+postPatchHooks+=(remove-@kind@-dependencies-hook)
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix b/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
index cb1cd8af13160..8e9dee865a543 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
@@ -137,6 +137,13 @@ let
 
   fetchFromLegacy = lib.makeOverridable (
     { python, pname, url, file, hash }:
+    let
+      pathParts =
+        (builtins.filter
+          ({ prefix, path }: "NETRC" == prefix)
+          builtins.nixPath);
+      netrc_file = if (pathParts != [ ]) then (builtins.head pathParts).path else "";
+    in
     pkgs.runCommand file
       {
         nativeBuildInputs = [ python ];
@@ -144,6 +151,7 @@ let
         outputHashMode = "flat";
         outputHashAlgo = "sha256";
         outputHash = hash;
+        NETRC = netrc_file;
       } ''
       python ${./fetch_from_legacy.py} ${url} ${pname} ${file}
       mv ${file} $out
@@ -174,11 +182,11 @@ let
     lib.optionals (builtins.toString path != "/" && ! isGitRoot) (findGitIgnores parent) ++ gitIgnores;
 
   /*
-  Provides a source filtering mechanism that:
+    Provides a source filtering mechanism that:
 
-  - Filters gitignore's
-  - Filters pycache/pyc files
-  - Uses cleanSourceFilter to filter out .git/.hg, .o/.so, editor backup files & nix result symlinks
+    - Filters gitignore's
+    - Filters pycache/pyc files
+    - Uses cleanSourceFilter to filter out .git/.hg, .o/.so, editor backup files & nix result symlinks
   */
   cleanPythonSources = { src }:
     let
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix b/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
index f99ee3a26dec7..5735e320c03fb 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
@@ -119,8 +119,10 @@ pythonPackages.callPackage
         pythonPackages.poetry2nixFixupHook
       ]
       ++ lib.optional (!isSource && (getManyLinuxDeps fileInfo.name).str != null) autoPatchelfHook
-      ++ lib.optional (format == "pyproject") pythonPackages.removePathDependenciesHook
-      ;
+      ++ lib.optionals (format == "pyproject") [
+        pythonPackages.removePathDependenciesHook
+        pythonPackages.removeGitDependenciesHook
+      ];
 
       buildInputs = (
         baseBuildInputs
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix b/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
index e464a08c849c3..6039e50d04eb9 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
@@ -20,11 +20,6 @@ self: super:
 
   ansible = super.ansible.overridePythonAttrs (
     old: {
-
-      prePatch = pkgs.python.pkgs.ansible.prePatch or "";
-
-      postInstall = pkgs.python.pkgs.ansible.postInstall or "";
-
       # Inputs copied from nixpkgs as ansible doesn't specify it's dependencies
       # in a correct manner.
       propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [
@@ -40,6 +35,9 @@ self: super:
         self.dopy
         self.ncclient
       ];
+    } // lib.optionalAttrs (lib.versionOlder old.version "5.0") {
+      prePatch = pkgs.python.pkgs.ansible.prePatch or "";
+      postInstall = pkgs.python.pkgs.ansible.postInstall or "";
     }
   );
 
@@ -73,7 +71,6 @@ self: super:
   astroid = super.astroid.overridePythonAttrs (
     old: rec {
       buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ];
-      doCheck = false;
     }
   );
 
@@ -86,6 +83,13 @@ self: super:
     }
   );
 
+  argon2-cffi = super.argon2-cffi.overridePythonAttrs (
+    old: {
+      buildInputs = (old.buildInputs or [ ]) ++
+        lib.optional (lib.versionAtLeast old.version "21.2.0") [ self.flit-core ];
+    }
+  );
+
   backports-entry-points-selectable = super.backports-entry-points-selectable.overridePythonAttrs (old: {
     postPatch = ''
       substituteInPlace setup.py --replace \
@@ -162,6 +166,14 @@ self: super:
     }
   );
 
+  cloudflare = super.cloudflare.overridePythonAttrs (
+    old: {
+      postPatch = ''
+        rm -rf examples/*
+      '';
+    }
+  );
+
   colour = super.colour.overridePythonAttrs (
     old: {
       buildInputs = (old.buildInputs or [ ]) ++ [ self.d2to1 ];
@@ -184,10 +196,29 @@ self: super:
     old: {
       nativeBuildInputs = (old.nativeBuildInputs or [ ])
         ++ lib.optional (lib.versionAtLeast old.version "3.4") [ self.setuptools-rust ]
-        ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) self.python.pythonForBuild.pkgs.cffi;
+        ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) self.python.pythonForBuild.pkgs.cffi
+        ++ lib.optional (lib.versionAtLeast old.version "3.5")
+        (with pkgs.rustPlatform; [ cargoSetupHook rust.cargo rust.rustc ]);
       buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.openssl ];
     } // lib.optionalAttrs (lib.versionAtLeast old.version "3.4" && lib.versionOlder old.version "3.5") {
       CRYPTOGRAPHY_DONT_BUILD_RUST = "1";
+    } // lib.optionalAttrs (lib.versionAtLeast old.version "35") rec {
+      cargoDeps =
+        let
+          getCargoHash = version:
+            if lib.versionOlder version "36.0.0" then "sha256-tQoQfo+TAoqAea86YFxyj/LNQCiViu5ij/3wj7ZnYLI="
+            else if lib.versionOlder version "36.0.1" then "sha256-Y6TuW7AryVgSvZ6G8WNoDIvi+0tvx8ZlEYF5qB0jfNk="
+            # This hash could no longer be valid for cryptography versions
+            # different from 36.0.1
+            else "sha256-kozYXkqt1Wpqyo9GYCwN08J+zV92ZWFJY/f+rulxmeQ=";
+        in
+        pkgs.rustPlatform.fetchCargoTarball {
+          src = old.src;
+          sourceRoot = "${old.pname}-${old.version}/${cargoRoot}";
+          name = "${old.pname}-${old.version}";
+          sha256 = getCargoHash old.version;
+        };
+      cargoRoot = "src/rust";
     }
   );
 
@@ -196,6 +227,13 @@ self: super:
       ++ [ self.cython ];
   });
 
+  cyclonedx-python-lib = super.cyclonedx-python-lib.overridePythonAttrs (old: {
+    propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.setuptools ];
+    postPatch = ''
+      substituteInPlace setup.py --replace 'setuptools>=50.3.2,<51.0.0' 'setuptools'
+    '';
+  });
+
   daphne = super.daphne.overridePythonAttrs (old: {
     postPatch = ''
       substituteInPlace setup.py --replace 'setup_requires=["pytest-runner"],' ""
@@ -345,6 +383,12 @@ self: super:
     }
   );
 
+  filelock = super.filelock.overridePythonAttrs (old: {
+    postPatch = ''
+      substituteInPlace setup.py --replace 'setup()' 'setup(version="${old.version}")'
+    '';
+  });
+
   fiona = super.fiona.overridePythonAttrs (
     old: {
       buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.gdal_2 ];
@@ -456,6 +500,10 @@ self: super:
     }
   );
 
+  httplib2 = super.httplib2.overridePythonAttrs (old: {
+    propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.pyparsing ];
+  });
+
   imagecodecs = super.imagecodecs.overridePythonAttrs (
     old: {
       patchPhase = ''
@@ -520,6 +568,17 @@ self: super:
 
       # disable the removal of pyproject.toml, required because of setuptools_scm
       dontPreferSetupPy = true;
+
+      postPatch = old.postPatch or "" + ''
+        substituteInPlace setup.py --replace 'setuptools.setup()' 'setuptools.setup(version="${old.version}")'
+      '';
+    }
+  );
+
+  importlib-resources = super.importlib-resources.overridePythonAttrs (
+    old: {
+      # disable the removal of pyproject.toml, required because of setuptools_scm
+      dontPreferSetupPy = true;
     }
   );
 
@@ -558,6 +617,16 @@ self: super:
     }
   );
 
+  jq = super.jq.overridePythonAttrs (attrs: {
+    buildInputs = [ pkgs.jq ];
+    patches = [
+      (pkgs.fetchpatch {
+        url = "https://raw.githubusercontent.com/NixOS/nixpkgs/088da8735f6620b60d724aa7db742607ea216087/pkgs/development/python-modules/jq/jq-py-setup.patch";
+        sha256 = "sha256-MYvX3S1YGe0QsUtExtOtULvp++AdVrv+Fid4Jh1xewQ=";
+      })
+    ];
+  });
+
   jsondiff = super.jsondiff.overridePythonAttrs (
     old: {
       preBuild = (old.preBuild or "") + ''
@@ -593,6 +662,9 @@ self: super:
     }
   );
 
+  kerberos = super.kerberos.overrideAttrs (old: {
+    nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.libkrb5 ];
+  });
 
   keyring = super.keyring.overridePythonAttrs (
     old: {
@@ -714,18 +786,18 @@ self: super:
 
       nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [
         pkgs.pkg-config
+      ] ++ lib.optional (lib.versionAtLeast super.matplotlib.version "3.5.0") [
+        self.setuptools-scm
+        self.setuptools-scm-git-archive
       ];
 
-      postPatch = ''
-        cat > setup.cfg <<EOF
+      MPLSETUPCFG = pkgs.writeText "mplsetup.cfg" ''
         [libs]
         system_freetype = True
         system_qhull = True
       '' + lib.optionalString stdenv.isDarwin ''
         # LTO not working in darwin stdenv, see NixOS/nixpkgs/pull/19312
         enable_lto = false
-      '' + ''
-        EOF
       '';
 
       propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [
@@ -935,6 +1007,10 @@ self: super:
     }
   );
 
+  paramiko = super.paramiko.overridePythonAttrs (old: {
+    doCheck = false; # requires networking
+  });
+
   parsel = super.parsel.overridePythonAttrs (
     old: rec {
       nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.pytest-runner ];
@@ -968,28 +1044,6 @@ self: super:
     }
   );
 
-  # Work around https://github.com/nix-community/poetry2nix/issues/244
-  # where git deps are not picked up as they should
-  pip =
-    if lib.versionAtLeast super.pip.version "20.3" then
-      super.pip.overridePythonAttrs
-        (old:
-          let
-            pname = "pip";
-            version = "20.2.4";
-          in
-          {
-            name = pname + "-" + version;
-            inherit version;
-            src = pkgs.fetchFromGitHub {
-              owner = "pypa";
-              repo = pname;
-              rev = version;
-              sha256 = "eMVV4ftgV71HLQsSeaOchYlfaJVgzNrwUynn3SA1/Do=";
-              name = "${pname}-${version}-source";
-            };
-          }) else super.pip;
-
   platformdirs = super.platformdirs.overridePythonAttrs (old: {
     postPatch = ''
       substituteInPlace setup.py --replace 'setup()' 'setup(version="${old.version}")'
@@ -1056,7 +1110,7 @@ self: super:
             );
 
             ARROW_HOME = _arrow-cpp;
-            arrowCppVersion = parseMinor pkgs.arrow-cpp;
+            arrowCppVersion = parseMinor _arrow-cpp;
             pyArrowVersion = parseMinor super.pyarrow;
             errorMessage = "arrow-cpp version (${arrowCppVersion}) mismatches pyarrow version (${pyArrowVersion})";
           in
@@ -1075,13 +1129,10 @@ self: super:
             PARQUET_HOME = _arrow-cpp;
             inherit ARROW_HOME;
 
-            buildInputs = (old.buildInputs or [ ]) ++ [
-              pkgs.arrow-cpp
-            ];
-
             PYARROW_BUILD_TYPE = "release";
-            PYARROW_WITH_DATASET = true;
-            PYARROW_WITH_PARQUET = true;
+            PYARROW_WITH_FLIGHT = if _arrow-cpp.enableFlight then 1 else 0;
+            PYARROW_WITH_DATASET = 1;
+            PYARROW_WITH_PARQUET = 1;
             PYARROW_CMAKE_OPTIONS = [
               "-DCMAKE_INSTALL_RPATH=${ARROW_HOME}/lib"
 
@@ -1201,7 +1252,6 @@ self: super:
   pylint = super.pylint.overridePythonAttrs (
     old: {
       buildInputs = (old.buildInputs or [ ]) ++ [ self.pytest-runner ];
-      doCheck = false;
     }
   );
 
@@ -1369,7 +1419,6 @@ self: super:
       postPatch = old.postPatch or "" + ''
         sed -i '/\[metadata\]/aversion = ${old.version}' setup.cfg
       '';
-      doCheck = false;
     }
   );
 
@@ -1550,7 +1599,9 @@ self: super:
   scipy = super.scipy.overridePythonAttrs (
     old:
     if old.format != "wheel" then {
-      nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.gfortran ];
+      nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++
+        [ pkgs.gfortran ] ++
+        lib.optional (lib.versionAtLeast super.scipy.version "1.7.0") [ self.cython self.pythran ];
       propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ [ self.pybind11 ];
       setupPyBuildFlags = [ "--fcompiler='gnu95'" ];
       enableParallelBuilding = true;
@@ -1656,6 +1707,7 @@ self: super:
         self.grpcio
         self.protobuf
         self.werkzeug
+        self.absl-py
       ];
     }
   );
@@ -1700,7 +1752,7 @@ self: super:
           if (!enableCuda) then ''
             export USE_CUDA=0
           '' else ''
-            export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${cudatoolkit}/targets/x86_64-linux/lib"
+            export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${cudatoolkit}/targets/x86_64-linux/lib"
           '';
         preFixup = lib.optionalString (!enableCuda) ''
           # For some reason pytorch retains a reference to libcuda even if it
@@ -1739,9 +1791,9 @@ self: super:
       ];
       preConfigure =
         if (enableCuda) then ''
-          export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${self.torch}/${self.python.sitePackages}/torch/lib:${lib.makeLibraryPath [ cudatoolkit "${cudatoolkit}" ]}"
+          export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${self.torch}/${self.python.sitePackages}/torch/lib:${lib.makeLibraryPath [ cudatoolkit "${cudatoolkit}" ]}"
         '' else ''
-          export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${self.torch}/${self.python.sitePackages}/torch/lib"
+          export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${self.torch}/${self.python.sitePackages}/torch/lib"
         '';
     }))
     { };
@@ -1760,7 +1812,12 @@ self: super:
   });
 
   # nix uses a dash, poetry uses an underscore
-  typing_extensions = super.typing_extensions or self.typing-extensions;
+  typing-extensions = (super.typing_extensions or super.typing-extensions).overridePythonAttrs (
+    old: {
+      buildInputs = (old.buildInputs or [ ]) ++
+        lib.optional (lib.versionAtLeast old.version "4.0.0") [ self.flit-core ];
+    }
+  );
 
   urwidtrees = super.urwidtrees.overridePythonAttrs (
     old: {
@@ -1854,13 +1911,14 @@ self: super:
     if lib.versionAtLeast super.zipp.version "2.0.0" then
       (
         super.zipp.overridePythonAttrs (
-          old: {
+          old:
+          if (old.format or "pyproject") != "wheel" then {
             prePatch = ''
               substituteInPlace setup.py --replace \
               'setuptools.setup()' \
               'setuptools.setup(version="${super.zipp.version}")'
             '';
-          }
+          } else old
         )
       ) else super.zipp
   ).overridePythonAttrs (
@@ -2068,6 +2126,10 @@ self: super:
     buildInputs = (old.buildInputs or [ ]) ++ [ self.pbr ];
   });
 
+  selinux = super.selinux.overridePythonAttrs (old: {
+    buildInputs = (old.buildInputs or [ ]) ++ [ self.setuptools-scm-git-archive ];
+  });
+
   shexjsg = super.shexjsg.overridePythonAttrs (old: {
     buildInputs = (old.buildInputs or [ ]) ++ [ self.pbr ];
   });
@@ -2080,9 +2142,12 @@ self: super:
     nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ self.flit-core ];
   });
 
-  virtualenv = super.virtualenv.overridePythonAttrs (old: {
-    postPatch = ''
-      substituteInPlace setup.cfg --replace 'platformdirs>=2,<3' 'platformdirs'
-    '';
+  uwsgi = super.uwsgi.overridePythonAttrs (old: {
+    buildInputs = (old.buildInputs or [ ]) ++ [ pkgs.ncurses ];
+    sourceRoot = ".";
+  });
+
+  wtforms = super.wtforms.overridePythonAttrs (old: {
+    buildInputs = (old.buildInputs or [ ]) ++ [ self.Babel ];
   });
 }
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock
index 4f023f8e09812..2da1370add736 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock
@@ -22,7 +22,7 @@ tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>
 
 [[package]]
 name = "backports.entry-points-selectable"
-version = "1.1.0"
+version = "1.1.1"
 description = "Compatibility shim providing selectable entry points for older implementations"
 category = "main"
 optional = false
@@ -33,7 +33,7 @@ importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
 
 [package.extras]
 docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
-testing = ["pytest (>=4.6)", "pytest-flake8", "pytest-cov", "pytest-black (>=0.3.7)", "pytest-mypy", "pytest-checkdocs (>=2.4)", "pytest-enabler (>=1.0.1)"]
+testing = ["pytest", "pytest-flake8", "pytest-cov", "pytest-black (>=0.3.7)", "pytest-mypy", "pytest-checkdocs (>=2.4)", "pytest-enabler (>=1.0.1)"]
 
 [[package]]
 name = "backports.functools-lru-cache"
@@ -65,6 +65,23 @@ filecache = ["lockfile (>=0.9)"]
 redis = ["redis (>=2.10.5)"]
 
 [[package]]
+name = "cachecontrol"
+version = "0.12.10"
+description = "httplib2 caching for requests"
+category = "main"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+lockfile = {version = ">=0.9", optional = true, markers = "extra == \"filecache\""}
+msgpack = ">=0.5.2"
+requests = "*"
+
+[package.extras]
+filecache = ["lockfile (>=0.9)"]
+redis = ["redis (>=2.10.5)"]
+
+[[package]]
 name = "cachy"
 version = "0.3.0"
 description = "Cachy provides a simple yet effective caching library."
@@ -79,7 +96,7 @@ msgpack = ["msgpack-python (>=0.5,<0.6)"]
 
 [[package]]
 name = "certifi"
-version = "2021.5.30"
+version = "2021.10.8"
 description = "Python package for providing Mozilla's CA Bundle."
 category = "main"
 optional = false
@@ -87,7 +104,7 @@ python-versions = "*"
 
 [[package]]
 name = "cffi"
-version = "1.14.6"
+version = "1.15.0"
 description = "Foreign Function Interface for Python calling C code."
 category = "main"
 optional = false
@@ -228,7 +245,7 @@ test = ["pytest (>=3.6.0,!=3.9.0,!=3.9.1,!=3.9.2)", "pretend", "iso8601", "pytz"
 
 [[package]]
 name = "cryptography"
-version = "3.4.8"
+version = "36.0.1"
 description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
 category = "main"
 optional = false
@@ -239,15 +256,15 @@ cffi = ">=1.12"
 
 [package.extras]
 docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"]
-docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
+docstest = ["pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
 pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"]
-sdist = ["setuptools-rust (>=0.11.4)"]
+sdist = ["setuptools_rust (>=0.11.4)"]
 ssh = ["bcrypt (>=3.1.5)"]
-test = ["pytest (>=6.0)", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
+test = ["pytest (>=6.2.0)", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
 
 [[package]]
 name = "distlib"
-version = "0.3.3"
+version = "0.3.4"
 description = "Distribution utilities"
 category = "main"
 optional = false
@@ -274,11 +291,15 @@ python-versions = "*"
 
 [[package]]
 name = "filelock"
-version = "3.0.12"
+version = "3.2.1"
 description = "A platform independent file lock."
 category = "main"
 optional = false
-python-versions = "*"
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
+
+[package.extras]
+docs = ["furo (>=2021.8.17b43)", "sphinx (>=4.1)", "sphinx-autodoc-typehints (>=1.12)"]
+testing = ["coverage (>=4)", "pytest (>=4)", "pytest-cov", "pytest-timeout (>=1.4.2)"]
 
 [[package]]
 name = "funcsigs"
@@ -343,14 +364,14 @@ six = "*"
 
 [[package]]
 name = "identify"
-version = "2.2.15"
+version = "2.4.0"
 description = "File identification library for Python"
 category = "dev"
 optional = false
 python-versions = ">=3.6.1"
 
 [package.extras]
-license = ["editdistance-s"]
+license = ["ukkonen"]
 
 [[package]]
 name = "idna"
@@ -525,7 +546,7 @@ python-versions = ">=3.4"
 
 [[package]]
 name = "more-itertools"
-version = "8.10.0"
+version = "8.12.0"
 description = "More routines for operating on iterables, beyond itertools"
 category = "dev"
 optional = false
@@ -533,7 +554,7 @@ python-versions = ">=3.5"
 
 [[package]]
 name = "msgpack"
-version = "1.0.2"
+version = "1.0.3"
 description = "MessagePack (de)serializer."
 category = "main"
 optional = false
@@ -591,14 +612,14 @@ ptyprocess = ">=0.5"
 
 [[package]]
 name = "pkginfo"
-version = "1.7.1"
+version = "1.8.2"
 description = "Query metadatdata from sdists / bdists / installed packages."
 category = "main"
 optional = false
 python-versions = "*"
 
 [package.extras]
-testing = ["nose", "coverage"]
+testing = ["coverage", "nose"]
 
 [[package]]
 name = "platformdirs"
@@ -624,7 +645,7 @@ dev = ["pre-commit", "tox"]
 
 [[package]]
 name = "poetry-core"
-version = "1.0.6"
+version = "1.0.7"
 description = "Poetry PEP 517 Build Backend"
 category = "main"
 optional = false
@@ -639,7 +660,7 @@ typing = {version = ">=3.7.4.1,<4.0.0.0", markers = "python_version >= \"2.7\" a
 
 [[package]]
 name = "pre-commit"
-version = "2.15.0"
+version = "2.16.0"
 description = "A framework for managing and maintaining multi-language pre-commit hooks."
 category = "dev"
 optional = false
@@ -649,7 +670,7 @@ python-versions = ">=3.6.1"
 cfgv = ">=2.0.0"
 identify = ">=1.0.0"
 importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
-importlib-resources = {version = "*", markers = "python_version < \"3.7\""}
+importlib-resources = {version = "<5.3", markers = "python_version < \"3.7\""}
 nodeenv = ">=0.11.1"
 pyyaml = ">=5.1"
 toml = "*"
@@ -665,15 +686,15 @@ python-versions = "*"
 
 [[package]]
 name = "py"
-version = "1.10.0"
+version = "1.11.0"
 description = "library with cross-python path, ini-parsing, io, code, log facilities"
 category = "dev"
 optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 
 [[package]]
 name = "pycparser"
-version = "2.20"
+version = "2.21"
 description = "C parser in Python"
 category = "main"
 optional = false
@@ -801,11 +822,11 @@ python-versions = "*"
 
 [[package]]
 name = "pyyaml"
-version = "5.4.1"
+version = "6.0"
 description = "YAML parser and emitter for Python"
 category = "dev"
 optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
+python-versions = ">=3.6"
 
 [[package]]
 name = "requests"
@@ -1004,7 +1025,7 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
 
 [[package]]
 name = "virtualenv"
-version = "20.8.0"
+version = "20.10.0"
 description = "Virtual Python Environment builder"
 category = "main"
 optional = false
@@ -1013,7 +1034,7 @@ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
 [package.dependencies]
 "backports.entry-points-selectable" = ">=1.0.4"
 distlib = ">=0.3.1,<1"
-filelock = ">=3.0.0,<4"
+filelock = ">=3.2,<4"
 importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
 importlib-resources = {version = ">=1.0", markers = "python_version < \"3.7\""}
 pathlib2 = {version = ">=2.3.3,<3", markers = "python_version < \"3.4\" and sys_platform != \"win32\""}
@@ -1021,7 +1042,7 @@ platformdirs = ">=2,<3"
 six = ">=1.9.0,<2"
 
 [package.extras]
-docs = ["proselint (>=0.10.2)", "sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=19.9.0rc1)"]
+docs = ["proselint (>=0.10.2)", "sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=21.3)"]
 testing = ["coverage (>=4)", "coverage-enable-subprocess (>=1)", "flaky (>=3)", "pytest (>=4)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.1)", "pytest-mock (>=2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)", "packaging (>=20.0)"]
 
 [[package]]
@@ -1061,7 +1082,7 @@ testing = ["pathlib2", "unittest2", "jaraco.itertools", "func-timeout"]
 [metadata]
 lock-version = "1.1"
 python-versions = "~2.7 || ^3.5"
-content-hash = "f29a657885ebf0c347d6426c52bbf926520555d4de7df43166738e0525361ded"
+content-hash = "290e530f0cdd81360dd6cb93f3182ac8e8b18a46238198d25de11c26f6b0c356"
 
 [metadata.files]
 atomicwrites = [
@@ -1073,8 +1094,8 @@ attrs = [
     {file = "attrs-21.2.0.tar.gz", hash = "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"},
 ]
 "backports.entry-points-selectable" = [
-    {file = "backports.entry_points_selectable-1.1.0-py2.py3-none-any.whl", hash = "sha256:a6d9a871cde5e15b4c4a53e3d43ba890cc6861ec1332c9c2428c92f977192acc"},
-    {file = "backports.entry_points_selectable-1.1.0.tar.gz", hash = "sha256:988468260ec1c196dab6ae1149260e2f5472c9110334e5d51adcb77867361f6a"},
+    {file = "backports.entry_points_selectable-1.1.1-py2.py3-none-any.whl", hash = "sha256:7fceed9532a7aa2bd888654a7314f864a3c16a4e710b34a58cfc0f08114c663b"},
+    {file = "backports.entry_points_selectable-1.1.1.tar.gz", hash = "sha256:914b21a479fde881635f7af5adc7f6e38d6b274be32269070c53b698c60d5386"},
 ]
 "backports.functools-lru-cache" = [
     {file = "backports.functools_lru_cache-1.6.4-py2.py3-none-any.whl", hash = "sha256:dbead04b9daa817909ec64e8d2855fb78feafe0b901d4568758e3a60559d8978"},
@@ -1083,61 +1104,68 @@ attrs = [
 cachecontrol = [
     {file = "CacheControl-0.12.6-py2.py3-none-any.whl", hash = "sha256:10d056fa27f8563a271b345207402a6dcce8efab7e5b377e270329c62471b10d"},
     {file = "CacheControl-0.12.6.tar.gz", hash = "sha256:be9aa45477a134aee56c8fac518627e1154df063e85f67d4f83ce0ccc23688e8"},
+    {file = "CacheControl-0.12.10-py2.py3-none-any.whl", hash = "sha256:b0d43d8f71948ef5ebdee5fe236b86c6ffc7799370453dccb0e894c20dfa487c"},
+    {file = "CacheControl-0.12.10.tar.gz", hash = "sha256:d8aca75b82eec92d84b5d6eb8c8f66ea16f09d2adb09dbca27fe2d5fc8d3732d"},
 ]
 cachy = [
     {file = "cachy-0.3.0-py2.py3-none-any.whl", hash = "sha256:338ca09c8860e76b275aff52374330efedc4d5a5e45dc1c5b539c1ead0786fe7"},
     {file = "cachy-0.3.0.tar.gz", hash = "sha256:186581f4ceb42a0bbe040c407da73c14092379b1e4c0e327fdb72ae4a9b269b1"},
 ]
 certifi = [
-    {file = "certifi-2021.5.30-py2.py3-none-any.whl", hash = "sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8"},
-    {file = "certifi-2021.5.30.tar.gz", hash = "sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee"},
+    {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"},
+    {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"},
 ]
 cffi = [
-    {file = "cffi-1.14.6-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:22b9c3c320171c108e903d61a3723b51e37aaa8c81255b5e7ce102775bd01e2c"},
-    {file = "cffi-1.14.6-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:f0c5d1acbfca6ebdd6b1e3eded8d261affb6ddcf2186205518f1428b8569bb99"},
-    {file = "cffi-1.14.6-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:99f27fefe34c37ba9875f224a8f36e31d744d8083e00f520f133cab79ad5e819"},
-    {file = "cffi-1.14.6-cp27-cp27m-win32.whl", hash = "sha256:55af55e32ae468e9946f741a5d51f9896da6b9bf0bbdd326843fec05c730eb20"},
-    {file = "cffi-1.14.6-cp27-cp27m-win_amd64.whl", hash = "sha256:7bcac9a2b4fdbed2c16fa5681356d7121ecabf041f18d97ed5b8e0dd38a80224"},
-    {file = "cffi-1.14.6-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:ed38b924ce794e505647f7c331b22a693bee1538fdf46b0222c4717b42f744e7"},
-    {file = "cffi-1.14.6-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e22dcb48709fc51a7b58a927391b23ab37eb3737a98ac4338e2448bef8559b33"},
-    {file = "cffi-1.14.6-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:aedb15f0a5a5949ecb129a82b72b19df97bbbca024081ed2ef88bd5c0a610534"},
-    {file = "cffi-1.14.6-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:48916e459c54c4a70e52745639f1db524542140433599e13911b2f329834276a"},
-    {file = "cffi-1.14.6-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f627688813d0a4140153ff532537fbe4afea5a3dffce1f9deb7f91f848a832b5"},
-    {file = "cffi-1.14.6-cp35-cp35m-win32.whl", hash = "sha256:f0010c6f9d1a4011e429109fda55a225921e3206e7f62a0c22a35344bfd13cca"},
-    {file = "cffi-1.14.6-cp35-cp35m-win_amd64.whl", hash = "sha256:57e555a9feb4a8460415f1aac331a2dc833b1115284f7ded7278b54afc5bd218"},
-    {file = "cffi-1.14.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e8c6a99be100371dbb046880e7a282152aa5d6127ae01783e37662ef73850d8f"},
-    {file = "cffi-1.14.6-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:19ca0dbdeda3b2615421d54bef8985f72af6e0c47082a8d26122adac81a95872"},
-    {file = "cffi-1.14.6-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:d950695ae4381ecd856bcaf2b1e866720e4ab9a1498cba61c602e56630ca7195"},
-    {file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9dc245e3ac69c92ee4c167fbdd7428ec1956d4e754223124991ef29eb57a09d"},
-    {file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a8661b2ce9694ca01c529bfa204dbb144b275a31685a075ce123f12331be790b"},
-    {file = "cffi-1.14.6-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b315d709717a99f4b27b59b021e6207c64620790ca3e0bde636a6c7f14618abb"},
-    {file = "cffi-1.14.6-cp36-cp36m-win32.whl", hash = "sha256:80b06212075346b5546b0417b9f2bf467fea3bfe7352f781ffc05a8ab24ba14a"},
-    {file = "cffi-1.14.6-cp36-cp36m-win_amd64.whl", hash = "sha256:a9da7010cec5a12193d1af9872a00888f396aba3dc79186604a09ea3ee7c029e"},
-    {file = "cffi-1.14.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4373612d59c404baeb7cbd788a18b2b2a8331abcc84c3ba40051fcd18b17a4d5"},
-    {file = "cffi-1.14.6-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:f10afb1004f102c7868ebfe91c28f4a712227fe4cb24974350ace1f90e1febbf"},
-    {file = "cffi-1.14.6-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:fd4305f86f53dfd8cd3522269ed7fc34856a8ee3709a5e28b2836b2db9d4cd69"},
-    {file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d6169cb3c6c2ad50db5b868db6491a790300ade1ed5d1da29289d73bbe40b56"},
-    {file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d4b68e216fc65e9fe4f524c177b54964af043dde734807586cf5435af84045c"},
-    {file = "cffi-1.14.6-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33791e8a2dc2953f28b8d8d300dde42dd929ac28f974c4b4c6272cb2955cb762"},
-    {file = "cffi-1.14.6-cp37-cp37m-win32.whl", hash = "sha256:0c0591bee64e438883b0c92a7bed78f6290d40bf02e54c5bf0978eaf36061771"},
-    {file = "cffi-1.14.6-cp37-cp37m-win_amd64.whl", hash = "sha256:8eb687582ed7cd8c4bdbff3df6c0da443eb89c3c72e6e5dcdd9c81729712791a"},
-    {file = "cffi-1.14.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ba6f2b3f452e150945d58f4badd92310449876c4c954836cfb1803bdd7b422f0"},
-    {file = "cffi-1.14.6-cp38-cp38-manylinux1_i686.whl", hash = "sha256:64fda793737bc4037521d4899be780534b9aea552eb673b9833b01f945904c2e"},
-    {file = "cffi-1.14.6-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:9f3e33c28cd39d1b655ed1ba7247133b6f7fc16fa16887b120c0c670e35ce346"},
-    {file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26bb2549b72708c833f5abe62b756176022a7b9a7f689b571e74c8478ead51dc"},
-    {file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eb687a11f0a7a1839719edd80f41e459cc5366857ecbed383ff376c4e3cc6afd"},
-    {file = "cffi-1.14.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d2ad4d668a5c0645d281dcd17aff2be3212bc109b33814bbb15c4939f44181cc"},
-    {file = "cffi-1.14.6-cp38-cp38-win32.whl", hash = "sha256:487d63e1454627c8e47dd230025780e91869cfba4c753a74fda196a1f6ad6548"},
-    {file = "cffi-1.14.6-cp38-cp38-win_amd64.whl", hash = "sha256:c33d18eb6e6bc36f09d793c0dc58b0211fccc6ae5149b808da4a62660678b156"},
-    {file = "cffi-1.14.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:06c54a68935738d206570b20da5ef2b6b6d92b38ef3ec45c5422c0ebaf338d4d"},
-    {file = "cffi-1.14.6-cp39-cp39-manylinux1_i686.whl", hash = "sha256:f174135f5609428cc6e1b9090f9268f5c8935fddb1b25ccb8255a2d50de6789e"},
-    {file = "cffi-1.14.6-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f3ebe6e73c319340830a9b2825d32eb6d8475c1dac020b4f0aa774ee3b898d1c"},
-    {file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c8d896becff2fa653dc4438b54a5a25a971d1f4110b32bd3068db3722c80202"},
-    {file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4922cd707b25e623b902c86188aca466d3620892db76c0bdd7b99a3d5e61d35f"},
-    {file = "cffi-1.14.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c9e005e9bd57bc987764c32a1bee4364c44fdc11a3cc20a40b93b444984f2b87"},
-    {file = "cffi-1.14.6-cp39-cp39-win32.whl", hash = "sha256:eb9e2a346c5238a30a746893f23a9535e700f8192a68c07c0258e7ece6ff3728"},
-    {file = "cffi-1.14.6-cp39-cp39-win_amd64.whl", hash = "sha256:818014c754cd3dba7229c0f5884396264d51ffb87ec86e927ef0be140bfdb0d2"},
-    {file = "cffi-1.14.6.tar.gz", hash = "sha256:c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd"},
+    {file = "cffi-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c2502a1a03b6312837279c8c1bd3ebedf6c12c4228ddbad40912d671ccc8a962"},
+    {file = "cffi-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:23cfe892bd5dd8941608f93348c0737e369e51c100d03718f108bf1add7bd6d0"},
+    {file = "cffi-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:41d45de54cd277a7878919867c0f08b0cf817605e4eb94093e7516505d3c8d14"},
+    {file = "cffi-1.15.0-cp27-cp27m-win32.whl", hash = "sha256:4a306fa632e8f0928956a41fa8e1d6243c71e7eb59ffbd165fc0b41e316b2474"},
+    {file = "cffi-1.15.0-cp27-cp27m-win_amd64.whl", hash = "sha256:e7022a66d9b55e93e1a845d8c9eba2a1bebd4966cd8bfc25d9cd07d515b33fa6"},
+    {file = "cffi-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:14cd121ea63ecdae71efa69c15c5543a4b5fbcd0bbe2aad864baca0063cecf27"},
+    {file = "cffi-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d4d692a89c5cf08a8557fdeb329b82e7bf609aadfaed6c0d79f5a449a3c7c023"},
+    {file = "cffi-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2"},
+    {file = "cffi-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:91ec59c33514b7c7559a6acda53bbfe1b283949c34fe7440bcf917f96ac0723e"},
+    {file = "cffi-1.15.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f5c7150ad32ba43a07c4479f40241756145a1f03b43480e058cfd862bf5041c7"},
+    {file = "cffi-1.15.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3"},
+    {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:abb9a20a72ac4e0fdb50dae135ba5e77880518e742077ced47eb1499e29a443c"},
+    {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a5263e363c27b653a90078143adb3d076c1a748ec9ecc78ea2fb916f9b861962"},
+    {file = "cffi-1.15.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f54a64f8b0c8ff0b64d18aa76675262e1700f3995182267998c31ae974fbc382"},
+    {file = "cffi-1.15.0-cp310-cp310-win32.whl", hash = "sha256:c21c9e3896c23007803a875460fb786118f0cdd4434359577ea25eb556e34c55"},
+    {file = "cffi-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:5e069f72d497312b24fcc02073d70cb989045d1c91cbd53979366077959933e0"},
+    {file = "cffi-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:64d4ec9f448dfe041705426000cc13e34e6e5bb13736e9fd62e34a0b0c41566e"},
+    {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2756c88cbb94231c7a147402476be2c4df2f6078099a6f4a480d239a8817ae39"},
+    {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b96a311ac60a3f6be21d2572e46ce67f09abcf4d09344c49274eb9e0bf345fc"},
+    {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75e4024375654472cc27e91cbe9eaa08567f7fbdf822638be2814ce059f58032"},
+    {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:59888172256cac5629e60e72e86598027aca6bf01fa2465bdb676d37636573e8"},
+    {file = "cffi-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:27c219baf94952ae9d50ec19651a687b826792055353d07648a5695413e0c605"},
+    {file = "cffi-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:4958391dbd6249d7ad855b9ca88fae690783a6be9e86df65865058ed81fc860e"},
+    {file = "cffi-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc"},
+    {file = "cffi-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:06c48159c1abed75c2e721b1715c379fa3200c7784271b3c46df01383b593636"},
+    {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:c2051981a968d7de9dd2d7b87bcb9c939c74a34626a6e2f8181455dd49ed69e4"},
+    {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997"},
+    {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91d77d2a782be4274da750752bb1650a97bfd8f291022b379bb8e01c66b4e96b"},
+    {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:45db3a33139e9c8f7c09234b5784a5e33d31fd6907800b316decad50af323ff2"},
+    {file = "cffi-1.15.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:263cc3d821c4ab2213cbe8cd8b355a7f72a8324577dc865ef98487c1aeee2bc7"},
+    {file = "cffi-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:17771976e82e9f94976180f76468546834d22a7cc404b17c22df2a2c81db0c66"},
+    {file = "cffi-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:3415c89f9204ee60cd09b235810be700e993e343a408693e80ce7f6a40108029"},
+    {file = "cffi-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4238e6dab5d6a8ba812de994bbb0a79bddbdf80994e4ce802b6f6f3142fcc880"},
+    {file = "cffi-1.15.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0808014eb713677ec1292301ea4c81ad277b6cdf2fdd90fd540af98c0b101d20"},
+    {file = "cffi-1.15.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:57e9ac9ccc3101fac9d6014fba037473e4358ef4e89f8e181f8951a2c0162024"},
+    {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b6c2ea03845c9f501ed1313e78de148cd3f6cad741a75d43a29b43da27f2e1e"},
+    {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10dffb601ccfb65262a27233ac273d552ddc4d8ae1bf93b21c94b8511bffe728"},
+    {file = "cffi-1.15.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:786902fb9ba7433aae840e0ed609f45c7bcd4e225ebb9c753aa39725bb3e6ad6"},
+    {file = "cffi-1.15.0-cp38-cp38-win32.whl", hash = "sha256:da5db4e883f1ce37f55c667e5c0de439df76ac4cb55964655906306918e7363c"},
+    {file = "cffi-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:181dee03b1170ff1969489acf1c26533710231c58f95534e3edac87fff06c443"},
+    {file = "cffi-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:45e8636704eacc432a206ac7345a5d3d2c62d95a507ec70d62f23cd91770482a"},
+    {file = "cffi-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:31fb708d9d7c3f49a60f04cf5b119aeefe5644daba1cd2a0fe389b674fd1de37"},
+    {file = "cffi-1.15.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6dc2737a3674b3e344847c8686cf29e500584ccad76204efea14f451d4cc669a"},
+    {file = "cffi-1.15.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:74fdfdbfdc48d3f47148976f49fab3251e550a8720bebc99bf1483f5bfb5db3e"},
+    {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796"},
+    {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f7d084648d77af029acb79a0ff49a0ad7e9d09057a9bf46596dac9514dc07df"},
+    {file = "cffi-1.15.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef1f279350da2c586a69d32fc8733092fd32cc8ac95139a00377841f59a3f8d8"},
+    {file = "cffi-1.15.0-cp39-cp39-win32.whl", hash = "sha256:2a23af14f408d53d5e6cd4e3d9a24ff9e05906ad574822a10563efcef137979a"},
+    {file = "cffi-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:3773c4d81e6e818df2efbc7dd77325ca0dcb688116050fb2b3011218eda36139"},
+    {file = "cffi-1.15.0.tar.gz", hash = "sha256:920f0d66a896c2d99f0adbb391f990a84091179542c205fa53ce5787aff87954"},
 ]
 cfgv = [
     {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"},
@@ -1262,29 +1290,30 @@ cryptography = [
     {file = "cryptography-3.3.2-cp36-abi3-win32.whl", hash = "sha256:3c284fc1e504e88e51c428db9c9274f2da9f73fdf5d7e13a36b8ecb039af6e6c"},
     {file = "cryptography-3.3.2-cp36-abi3-win_amd64.whl", hash = "sha256:7951a966613c4211b6612b0352f5bf29989955ee592c4a885d8c7d0f830d0433"},
     {file = "cryptography-3.3.2.tar.gz", hash = "sha256:5a60d3780149e13b7a6ff7ad6526b38846354d11a15e21068e57073e29e19bed"},
-    {file = "cryptography-3.4.8-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:a00cf305f07b26c351d8d4e1af84ad7501eca8a342dedf24a7acb0e7b7406e14"},
-    {file = "cryptography-3.4.8-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:f44d141b8c4ea5eb4dbc9b3ad992d45580c1d22bf5e24363f2fbf50c2d7ae8a7"},
-    {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0a7dcbcd3f1913f664aca35d47c1331fce738d44ec34b7be8b9d332151b0b01e"},
-    {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34dae04a0dce5730d8eb7894eab617d8a70d0c97da76b905de9efb7128ad7085"},
-    {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1eb7bb0df6f6f583dd8e054689def236255161ebbcf62b226454ab9ec663746b"},
-    {file = "cryptography-3.4.8-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:9965c46c674ba8cc572bc09a03f4c649292ee73e1b683adb1ce81e82e9a6a0fb"},
-    {file = "cryptography-3.4.8-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:3c4129fc3fdc0fa8e40861b5ac0c673315b3c902bbdc05fc176764815b43dd1d"},
-    {file = "cryptography-3.4.8-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:695104a9223a7239d155d7627ad912953b540929ef97ae0c34c7b8bf30857e89"},
-    {file = "cryptography-3.4.8-cp36-abi3-win32.whl", hash = "sha256:21ca464b3a4b8d8e86ba0ee5045e103a1fcfac3b39319727bc0fc58c09c6aff7"},
-    {file = "cryptography-3.4.8-cp36-abi3-win_amd64.whl", hash = "sha256:3520667fda779eb788ea00080124875be18f2d8f0848ec00733c0ec3bb8219fc"},
-    {file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d2a6e5ef66503da51d2110edf6c403dc6b494cc0082f85db12f54e9c5d4c3ec5"},
-    {file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a305600e7a6b7b855cd798e00278161b681ad6e9b7eca94c721d5f588ab212af"},
-    {file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:3fa3a7ccf96e826affdf1a0a9432be74dc73423125c8f96a909e3835a5ef194a"},
-    {file = "cryptography-3.4.8-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:d9ec0e67a14f9d1d48dd87a2531009a9b251c02ea42851c060b25c782516ff06"},
-    {file = "cryptography-3.4.8-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5b0fbfae7ff7febdb74b574055c7466da334a5371f253732d7e2e7525d570498"},
-    {file = "cryptography-3.4.8-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94fff993ee9bc1b2440d3b7243d488c6a3d9724cc2b09cdb297f6a886d040ef7"},
-    {file = "cryptography-3.4.8-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:8695456444f277af73a4877db9fc979849cd3ee74c198d04fc0776ebc3db52b9"},
-    {file = "cryptography-3.4.8-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:cd65b60cfe004790c795cc35f272e41a3df4631e2fb6b35aa7ac6ef2859d554e"},
-    {file = "cryptography-3.4.8.tar.gz", hash = "sha256:94cc5ed4ceaefcbe5bf38c8fba6a21fc1d365bb8fb826ea1688e3370b2e24a1c"},
+    {file = "cryptography-36.0.1-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:73bc2d3f2444bcfeac67dd130ff2ea598ea5f20b40e36d19821b4df8c9c5037b"},
+    {file = "cryptography-36.0.1-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:2d87cdcb378d3cfed944dac30596da1968f88fb96d7fc34fdae30a99054b2e31"},
+    {file = "cryptography-36.0.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:74d6c7e80609c0f4c2434b97b80c7f8fdfaa072ca4baab7e239a15d6d70ed73a"},
+    {file = "cryptography-36.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:6c0c021f35b421ebf5976abf2daacc47e235f8b6082d3396a2fe3ccd537ab173"},
+    {file = "cryptography-36.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d59a9d55027a8b88fd9fd2826c4392bd487d74bf628bb9d39beecc62a644c12"},
+    {file = "cryptography-36.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0a817b961b46894c5ca8a66b599c745b9a3d9f822725221f0e0fe49dc043a3a3"},
+    {file = "cryptography-36.0.1-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:94ae132f0e40fe48f310bba63f477f14a43116f05ddb69d6fa31e93f05848ae2"},
+    {file = "cryptography-36.0.1-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:7be0eec337359c155df191d6ae00a5e8bbb63933883f4f5dffc439dac5348c3f"},
+    {file = "cryptography-36.0.1-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:e0344c14c9cb89e76eb6a060e67980c9e35b3f36691e15e1b7a9e58a0a6c6dc3"},
+    {file = "cryptography-36.0.1-cp36-abi3-win32.whl", hash = "sha256:4caa4b893d8fad33cf1964d3e51842cd78ba87401ab1d2e44556826df849a8ca"},
+    {file = "cryptography-36.0.1-cp36-abi3-win_amd64.whl", hash = "sha256:391432971a66cfaf94b21c24ab465a4cc3e8bf4a939c1ca5c3e3a6e0abebdbcf"},
+    {file = "cryptography-36.0.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:bb5829d027ff82aa872d76158919045a7c1e91fbf241aec32cb07956e9ebd3c9"},
+    {file = "cryptography-36.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ebc15b1c22e55c4d5566e3ca4db8689470a0ca2babef8e3a9ee057a8b82ce4b1"},
+    {file = "cryptography-36.0.1-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:596f3cd67e1b950bc372c33f1a28a0692080625592ea6392987dba7f09f17a94"},
+    {file = "cryptography-36.0.1-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:30ee1eb3ebe1644d1c3f183d115a8c04e4e603ed6ce8e394ed39eea4a98469ac"},
+    {file = "cryptography-36.0.1-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:ec63da4e7e4a5f924b90af42eddf20b698a70e58d86a72d943857c4c6045b3ee"},
+    {file = "cryptography-36.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca238ceb7ba0bdf6ce88c1b74a87bffcee5afbfa1e41e173b1ceb095b39add46"},
+    {file = "cryptography-36.0.1-pp38-pypy38_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:ca28641954f767f9822c24e927ad894d45d5a1e501767599647259cbf030b903"},
+    {file = "cryptography-36.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:39bdf8e70eee6b1c7b289ec6e5d84d49a6bfa11f8b8646b5b3dfe41219153316"},
+    {file = "cryptography-36.0.1.tar.gz", hash = "sha256:53e5c1dc3d7a953de055d77bef2ff607ceef7a2aac0353b5d630ab67f7423638"},
 ]
 distlib = [
-    {file = "distlib-0.3.3-py2.py3-none-any.whl", hash = "sha256:c8b54e8454e5bf6237cc84c20e8264c3e991e824ef27e8f1e81049867d861e31"},
-    {file = "distlib-0.3.3.zip", hash = "sha256:d982d0751ff6eaaab5e2ec8e691d949ee80eddf01a62eaa96ddb11531fe16b05"},
+    {file = "distlib-0.3.4-py2.py3-none-any.whl", hash = "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b"},
+    {file = "distlib-0.3.4.zip", hash = "sha256:e4b58818180336dc9c529bfb9a0b58728ffc09ad92027a3f30b7cd91e3458579"},
 ]
 entrypoints = [
     {file = "entrypoints-0.3-py2.py3-none-any.whl", hash = "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19"},
@@ -1296,8 +1325,8 @@ enum34 = [
     {file = "enum34-1.1.10.tar.gz", hash = "sha256:cce6a7477ed816bd2542d03d53db9f0db935dd013b70f336a95c73979289f248"},
 ]
 filelock = [
-    {file = "filelock-3.0.12-py3-none-any.whl", hash = "sha256:929b7d63ec5b7d6b71b0fa5ac14e030b3f70b75747cef1b10da9b879fef15836"},
-    {file = "filelock-3.0.12.tar.gz", hash = "sha256:18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0f82159d6a6ff59"},
+    {file = "filelock-3.2.1-py2.py3-none-any.whl", hash = "sha256:7f07b08d731907441ff40d0c5b81f9512cd968842e0b6264c8bd18a8ce877760"},
+    {file = "filelock-3.2.1.tar.gz", hash = "sha256:9cdd29c411ab196cf4c35a1da684f7b9da723696cb356efa45bf5eb1ff313ee3"},
 ]
 funcsigs = [
     {file = "funcsigs-1.0.2-py2.py3-none-any.whl", hash = "sha256:330cc27ccbf7f1e992e69fef78261dc7c6569012cf397db8d3de0234e6c937ca"},
@@ -1322,8 +1351,8 @@ httpretty = [
     {file = "httpretty-0.9.7.tar.gz", hash = "sha256:66216f26b9d2c52e81808f3e674a6fb65d4bf719721394a1a9be926177e55fbe"},
 ]
 identify = [
-    {file = "identify-2.2.15-py2.py3-none-any.whl", hash = "sha256:de83a84d774921669774a2000bf87ebba46b4d1c04775f4a5d37deff0cf39f73"},
-    {file = "identify-2.2.15.tar.gz", hash = "sha256:528a88021749035d5a39fe2ba67c0642b8341aaf71889da0e1ed669a429b87f0"},
+    {file = "identify-2.4.0-py2.py3-none-any.whl", hash = "sha256:eba31ca80258de6bb51453084bff4a923187cd2193b9c13710f2516ab30732cc"},
+    {file = "identify-2.4.0.tar.gz", hash = "sha256:a33ae873287e81651c7800ca309dc1f84679b763c9c8b30680e16fbfa82f0107"},
 ]
 idna = [
     {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
@@ -1369,38 +1398,44 @@ more-itertools = [
     {file = "more_itertools-5.0.0-py3-none-any.whl", hash = "sha256:fe7a7cae1ccb57d33952113ff4fa1bc5f879963600ed74918f1236e212ee50b9"},
     {file = "more-itertools-7.2.0.tar.gz", hash = "sha256:409cd48d4db7052af495b09dec721011634af3753ae1ef92d2b32f73a745f832"},
     {file = "more_itertools-7.2.0-py3-none-any.whl", hash = "sha256:92b8c4b06dac4f0611c0729b2f2ede52b2e1bac1ab48f089c7ddc12e26bb60c4"},
-    {file = "more-itertools-8.10.0.tar.gz", hash = "sha256:1debcabeb1df793814859d64a81ad7cb10504c24349368ccf214c664c474f41f"},
-    {file = "more_itertools-8.10.0-py3-none-any.whl", hash = "sha256:56ddac45541718ba332db05f464bebfb0768110111affd27f66e0051f276fa43"},
+    {file = "more-itertools-8.12.0.tar.gz", hash = "sha256:7dc6ad46f05f545f900dd59e8dfb4e84a4827b97b3cfecb175ea0c7d247f6064"},
+    {file = "more_itertools-8.12.0-py3-none-any.whl", hash = "sha256:43e6dd9942dffd72661a2c4ef383ad7da1e6a3e968a927ad7a6083ab410a688b"},
 ]
 msgpack = [
-    {file = "msgpack-1.0.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:b6d9e2dae081aa35c44af9c4298de4ee72991305503442a5c74656d82b581fe9"},
-    {file = "msgpack-1.0.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:a99b144475230982aee16b3d249170f1cccebf27fb0a08e9f603b69637a62192"},
-    {file = "msgpack-1.0.2-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:1026dcc10537d27dd2d26c327e552f05ce148977e9d7b9f1718748281b38c841"},
-    {file = "msgpack-1.0.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:fe07bc6735d08e492a327f496b7850e98cb4d112c56df69b0c844dbebcbb47f6"},
-    {file = "msgpack-1.0.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:9ea52fff0473f9f3000987f313310208c879493491ef3ccf66268eff8d5a0326"},
-    {file = "msgpack-1.0.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:26a1759f1a88df5f1d0b393eb582ec022326994e311ba9c5818adc5374736439"},
-    {file = "msgpack-1.0.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:497d2c12426adcd27ab83144057a705efb6acc7e85957a51d43cdcf7f258900f"},
-    {file = "msgpack-1.0.2-cp36-cp36m-win32.whl", hash = "sha256:e89ec55871ed5473a041c0495b7b4e6099f6263438e0bd04ccd8418f92d5d7f2"},
-    {file = "msgpack-1.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:a4355d2193106c7aa77c98fc955252a737d8550320ecdb2e9ac701e15e2943bc"},
-    {file = "msgpack-1.0.2-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:d6c64601af8f3893d17ec233237030e3110f11b8a962cb66720bf70c0141aa54"},
-    {file = "msgpack-1.0.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:f484cd2dca68502de3704f056fa9b318c94b1539ed17a4c784266df5d6978c87"},
-    {file = "msgpack-1.0.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:f3e6aaf217ac1c7ce1563cf52a2f4f5d5b1f64e8729d794165db71da57257f0c"},
-    {file = "msgpack-1.0.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:8521e5be9e3b93d4d5e07cb80b7e32353264d143c1f072309e1863174c6aadb1"},
-    {file = "msgpack-1.0.2-cp37-cp37m-win32.whl", hash = "sha256:31c17bbf2ae5e29e48d794c693b7ca7a0c73bd4280976d408c53df421e838d2a"},
-    {file = "msgpack-1.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:8ffb24a3b7518e843cd83538cf859e026d24ec41ac5721c18ed0c55101f9775b"},
-    {file = "msgpack-1.0.2-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:b28c0876cce1466d7c2195d7658cf50e4730667196e2f1355c4209444717ee06"},
-    {file = "msgpack-1.0.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:87869ba567fe371c4555d2e11e4948778ab6b59d6cc9d8460d543e4cfbbddd1c"},
-    {file = "msgpack-1.0.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:b55f7db883530b74c857e50e149126b91bb75d35c08b28db12dcb0346f15e46e"},
-    {file = "msgpack-1.0.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:ac25f3e0513f6673e8b405c3a80500eb7be1cf8f57584be524c4fa78fe8e0c83"},
-    {file = "msgpack-1.0.2-cp38-cp38-win32.whl", hash = "sha256:0cb94ee48675a45d3b86e61d13c1e6f1696f0183f0715544976356ff86f741d9"},
-    {file = "msgpack-1.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:e36a812ef4705a291cdb4a2fd352f013134f26c6ff63477f20235138d1d21009"},
-    {file = "msgpack-1.0.2-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:2a5866bdc88d77f6e1370f82f2371c9bc6fc92fe898fa2dec0c5d4f5435a2694"},
-    {file = "msgpack-1.0.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:92be4b12de4806d3c36810b0fe2aeedd8d493db39e2eb90742b9c09299eb5759"},
-    {file = "msgpack-1.0.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:de6bd7990a2c2dabe926b7e62a92886ccbf809425c347ae7de277067f97c2887"},
-    {file = "msgpack-1.0.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:5a9ee2540c78659a1dd0b110f73773533ee3108d4e1219b5a15a8d635b7aca0e"},
-    {file = "msgpack-1.0.2-cp39-cp39-win32.whl", hash = "sha256:c747c0cc08bd6d72a586310bda6ea72eeb28e7505990f342552315b229a19b33"},
-    {file = "msgpack-1.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:d8167b84af26654c1124857d71650404336f4eb5cc06900667a493fc619ddd9f"},
-    {file = "msgpack-1.0.2.tar.gz", hash = "sha256:fae04496f5bc150eefad4e9571d1a76c55d021325dcd484ce45065ebbdd00984"},
+    {file = "msgpack-1.0.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:96acc674bb9c9be63fa8b6dabc3248fdc575c4adc005c440ad02f87ca7edd079"},
+    {file = "msgpack-1.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2c3ca57c96c8e69c1a0d2926a6acf2d9a522b41dc4253a8945c4c6cd4981a4e3"},
+    {file = "msgpack-1.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0a792c091bac433dfe0a70ac17fc2087d4595ab835b47b89defc8bbabcf5c73"},
+    {file = "msgpack-1.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c58cdec1cb5fcea8c2f1771d7b5fec79307d056874f746690bd2bdd609ab147"},
+    {file = "msgpack-1.0.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2f97c0f35b3b096a330bb4a1a9247d0bd7e1f3a2eba7ab69795501504b1c2c39"},
+    {file = "msgpack-1.0.3-cp310-cp310-win32.whl", hash = "sha256:36a64a10b16c2ab31dcd5f32d9787ed41fe68ab23dd66957ca2826c7f10d0b85"},
+    {file = "msgpack-1.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c1ba333b4024c17c7591f0f372e2daa3c31db495a9b2af3cf664aef3c14354f7"},
+    {file = "msgpack-1.0.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c2140cf7a3ec475ef0938edb6eb363fa704159e0bf71dde15d953bacc1cf9d7d"},
+    {file = "msgpack-1.0.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f4c22717c74d44bcd7af353024ce71c6b55346dad5e2cc1ddc17ce8c4507c6b"},
+    {file = "msgpack-1.0.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d733a15ade190540c703de209ffbc42a3367600421b62ac0c09fde594da6ec"},
+    {file = "msgpack-1.0.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7e03b06f2982aa98d4ddd082a210c3db200471da523f9ac197f2828e80e7770"},
+    {file = "msgpack-1.0.3-cp36-cp36m-win32.whl", hash = "sha256:3d875631ecab42f65f9dce6f55ce6d736696ced240f2634633188de2f5f21af9"},
+    {file = "msgpack-1.0.3-cp36-cp36m-win_amd64.whl", hash = "sha256:40fb89b4625d12d6027a19f4df18a4de5c64f6f3314325049f219683e07e678a"},
+    {file = "msgpack-1.0.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:6eef0cf8db3857b2b556213d97dd82de76e28a6524853a9beb3264983391dc1a"},
+    {file = "msgpack-1.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d8c332f53ffff01953ad25131272506500b14750c1d0ce8614b17d098252fbc"},
+    {file = "msgpack-1.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c0903bd93cbd34653dd63bbfcb99d7539c372795201f39d16fdfde4418de43a"},
+    {file = "msgpack-1.0.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bf1e6bfed4860d72106f4e0a1ab519546982b45689937b40257cfd820650b920"},
+    {file = "msgpack-1.0.3-cp37-cp37m-win32.whl", hash = "sha256:d02cea2252abc3756b2ac31f781f7a98e89ff9759b2e7450a1c7a0d13302ff50"},
+    {file = "msgpack-1.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:2f30dd0dc4dfe6231ad253b6f9f7128ac3202ae49edd3f10d311adc358772dba"},
+    {file = "msgpack-1.0.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:f201d34dc89342fabb2a10ed7c9a9aaaed9b7af0f16a5923f1ae562b31258dea"},
+    {file = "msgpack-1.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bb87f23ae7d14b7b3c21009c4b1705ec107cb21ee71975992f6aca571fb4a42a"},
+    {file = "msgpack-1.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a3a5c4b16e9d0edb823fe54b59b5660cc8d4782d7bf2c214cb4b91a1940a8ef"},
+    {file = "msgpack-1.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f74da1e5fcf20ade12c6bf1baa17a2dc3604958922de8dc83cbe3eff22e8b611"},
+    {file = "msgpack-1.0.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:73a80bd6eb6bcb338c1ec0da273f87420829c266379c8c82fa14c23fb586cfa1"},
+    {file = "msgpack-1.0.3-cp38-cp38-win32.whl", hash = "sha256:9fce00156e79af37bb6db4e7587b30d11e7ac6a02cb5bac387f023808cd7d7f4"},
+    {file = "msgpack-1.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:9b6f2d714c506e79cbead331de9aae6837c8dd36190d02da74cb409b36162e8a"},
+    {file = "msgpack-1.0.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:89908aea5f46ee1474cc37fbc146677f8529ac99201bc2faf4ef8edc023c2bf3"},
+    {file = "msgpack-1.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:973ad69fd7e31159eae8f580f3f707b718b61141838321c6fa4d891c4a2cca52"},
+    {file = "msgpack-1.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da24375ab4c50e5b7486c115a3198d207954fe10aaa5708f7b65105df09109b2"},
+    {file = "msgpack-1.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a598d0685e4ae07a0672b59792d2cc767d09d7a7f39fd9bd37ff84e060b1a996"},
+    {file = "msgpack-1.0.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e4c309a68cb5d6bbd0c50d5c71a25ae81f268c2dc675c6f4ea8ab2feec2ac4e2"},
+    {file = "msgpack-1.0.3-cp39-cp39-win32.whl", hash = "sha256:494471d65b25a8751d19c83f1a482fd411d7ca7a3b9e17d25980a74075ba0e88"},
+    {file = "msgpack-1.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:f01b26c2290cbd74316990ba84a14ac3d599af9cebefc543d241a66e785cf17d"},
+    {file = "msgpack-1.0.3.tar.gz", hash = "sha256:51fdc7fb93615286428ee7758cecc2f374d5ff363bdd884c7ea622a7a327a81e"},
 ]
 nodeenv = [
     {file = "nodeenv-1.6.0-py2.py3-none-any.whl", hash = "sha256:621e6b7076565ddcacd2db0294c0381e01fd28945ab36bcf00f41c5daf63bef7"},
@@ -1423,8 +1458,8 @@ pexpect = [
     {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"},
 ]
 pkginfo = [
-    {file = "pkginfo-1.7.1-py2.py3-none-any.whl", hash = "sha256:37ecd857b47e5f55949c41ed061eb51a0bee97a87c969219d144c0e023982779"},
-    {file = "pkginfo-1.7.1.tar.gz", hash = "sha256:e7432f81d08adec7297633191bbf0bd47faf13cd8724c3a13250e51d542635bd"},
+    {file = "pkginfo-1.8.2-py2.py3-none-any.whl", hash = "sha256:c24c487c6a7f72c66e816ab1796b96ac6c3d14d49338293d2141664330b55ffc"},
+    {file = "pkginfo-1.8.2.tar.gz", hash = "sha256:542e0d0b6750e2e21c20179803e40ab50598d8066d51097a0e382cba9eb02bff"},
 ]
 platformdirs = [
     {file = "platformdirs-2.0.2-py2.py3-none-any.whl", hash = "sha256:0b9547541f599d3d242078ae60b927b3e453f0ad52f58b4d4bc3be86aed3ec41"},
@@ -1435,24 +1470,24 @@ pluggy = [
     {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"},
 ]
 poetry-core = [
-    {file = "poetry-core-1.0.6.tar.gz", hash = "sha256:dd3c97003579242236890306836f2acc86d9741e6bea320dda6f844f16b0d845"},
-    {file = "poetry_core-1.0.6-py2.py3-none-any.whl", hash = "sha256:4ef68b4a55a8a95a60e6a312317e5a2f2af7590cf3d46b6bfe648c1e5f13cc48"},
+    {file = "poetry-core-1.0.7.tar.gz", hash = "sha256:98c11c755a16ef6c5673c22ca94a3802a7df4746a0853a70b6fae8b9f5cac206"},
+    {file = "poetry_core-1.0.7-py2.py3-none-any.whl", hash = "sha256:4f8a7f5390d772f42c4c4c3f188e6424b802cb4b57466c6633a1b9ac36f18a43"},
 ]
 pre-commit = [
-    {file = "pre_commit-2.15.0-py2.py3-none-any.whl", hash = "sha256:a4ed01000afcb484d9eb8d504272e642c4c4099bbad3a6b27e519bd6a3e928a6"},
-    {file = "pre_commit-2.15.0.tar.gz", hash = "sha256:3c25add78dbdfb6a28a651780d5c311ac40dd17f160eb3954a0c59da40a505a7"},
+    {file = "pre_commit-2.16.0-py2.py3-none-any.whl", hash = "sha256:758d1dc9b62c2ed8881585c254976d66eae0889919ab9b859064fc2fe3c7743e"},
+    {file = "pre_commit-2.16.0.tar.gz", hash = "sha256:fe9897cac830aa7164dbd02a4e7b90cae49630451ce88464bca73db486ba9f65"},
 ]
 ptyprocess = [
     {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"},
     {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"},
 ]
 py = [
-    {file = "py-1.10.0-py2.py3-none-any.whl", hash = "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"},
-    {file = "py-1.10.0.tar.gz", hash = "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"},
+    {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"},
+    {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"},
 ]
 pycparser = [
-    {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"},
-    {file = "pycparser-2.20.tar.gz", hash = "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0"},
+    {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"},
+    {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"},
 ]
 pylev = [
     {file = "pylev-1.4.0-py2.py3-none-any.whl", hash = "sha256:7b2e2aa7b00e05bb3f7650eb506fc89f474f70493271a35c242d9a92188ad3dd"},
@@ -1484,35 +1519,39 @@ pywin32-ctypes = [
     {file = "pywin32_ctypes-0.2.0-py2.py3-none-any.whl", hash = "sha256:9dc2d991b3479cc2df15930958b674a48a227d5361d413827a4cfd0b5876fc98"},
 ]
 pyyaml = [
-    {file = "PyYAML-5.4.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922"},
-    {file = "PyYAML-5.4.1-cp27-cp27m-win32.whl", hash = "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393"},
-    {file = "PyYAML-5.4.1-cp27-cp27m-win_amd64.whl", hash = "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8"},
-    {file = "PyYAML-5.4.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185"},
-    {file = "PyYAML-5.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253"},
-    {file = "PyYAML-5.4.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc"},
-    {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347"},
-    {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541"},
-    {file = "PyYAML-5.4.1-cp36-cp36m-win32.whl", hash = "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5"},
-    {file = "PyYAML-5.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df"},
-    {file = "PyYAML-5.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018"},
-    {file = "PyYAML-5.4.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63"},
-    {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa"},
-    {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0"},
-    {file = "PyYAML-5.4.1-cp37-cp37m-win32.whl", hash = "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b"},
-    {file = "PyYAML-5.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf"},
-    {file = "PyYAML-5.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46"},
-    {file = "PyYAML-5.4.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb"},
-    {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247"},
-    {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc"},
-    {file = "PyYAML-5.4.1-cp38-cp38-win32.whl", hash = "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc"},
-    {file = "PyYAML-5.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696"},
-    {file = "PyYAML-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77"},
-    {file = "PyYAML-5.4.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183"},
-    {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122"},
-    {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6"},
-    {file = "PyYAML-5.4.1-cp39-cp39-win32.whl", hash = "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10"},
-    {file = "PyYAML-5.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db"},
-    {file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"},
+    {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"},
+    {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"},
+    {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"},
+    {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"},
+    {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"},
+    {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"},
+    {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"},
+    {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"},
+    {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"},
+    {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"},
+    {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"},
+    {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"},
+    {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"},
+    {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"},
+    {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"},
+    {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"},
+    {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"},
+    {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"},
+    {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"},
+    {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"},
+    {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"},
+    {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"},
+    {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"},
+    {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"},
+    {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"},
+    {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"},
+    {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"},
+    {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"},
+    {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"},
+    {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"},
+    {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"},
+    {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"},
+    {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"},
 ]
 requests = [
     {file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"},
@@ -1589,8 +1628,8 @@ urllib3 = [
     {file = "urllib3-1.25.11.tar.gz", hash = "sha256:8d7eaa5a82a1cac232164990f04874c594c9453ec55eef02eab885aa02fc17a2"},
 ]
 virtualenv = [
-    {file = "virtualenv-20.8.0-py2.py3-none-any.whl", hash = "sha256:a4b987ec31c3c9996cf1bc865332f967fe4a0512c41b39652d6224f696e69da5"},
-    {file = "virtualenv-20.8.0.tar.gz", hash = "sha256:4da4ac43888e97de9cf4fdd870f48ed864bbfd133d2c46cbdec941fed4a25aef"},
+    {file = "virtualenv-20.10.0-py2.py3-none-any.whl", hash = "sha256:4b02e52a624336eece99c96e3ab7111f469c24ba226a53ec474e8e787b365814"},
+    {file = "virtualenv-20.10.0.tar.gz", hash = "sha256:576d05b46eace16a9c348085f7d0dc8ef28713a2cabaa1cf0aea41e8f12c9218"},
 ]
 wcwidth = [
     {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"},
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml
index eb11360fe16fa..5cf34372b050c 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "poetry"
-version = "1.1.10"
+version = "1.1.12"
 description = "Python dependency management and packaging made easy."
 authors = [
     "Sébastien Eustace <sebastien@eustace.io>"
@@ -24,14 +24,17 @@ classifiers = [
 [tool.poetry.dependencies]
 python = "~2.7 || ^3.5"
 
-poetry-core = "~1.0.6"
+poetry-core = "~1.0.7"
 cleo = "^0.8.1"
 clikit = "^0.6.2"
 crashtest = { version = "^0.3.0", python = "^3.6" }
 requests = "^2.18"
 cachy = "^0.3.0"
 requests-toolbelt = "^0.9.1"
-cachecontrol = { version = "^0.12.4", extras = ["filecache"] }
+cachecontrol = [
+    { version = "^0.12.4", extras = ["filecache"], python = "<3.6" },
+    { version = "^0.12.9", extras = ["filecache"], python = "^3.6" }
+]
 pkginfo = "^1.4"
 html5lib = "^1.0"
 shellingham = "^1.1"
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json
index 2973014f9109a..aeee3abb7d42f 100644
--- a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json
@@ -1,7 +1,7 @@
 {
     "owner": "python-poetry",
     "repo": "poetry",
-    "rev": "ebc5484d72fb719a6ffe949cbe95acd98f5c249b",
-    "sha256": "S2HwolO7cU2c90ZcxPEiGjQ5PrOzZ6US22WLcWUJ0R8=",
+    "rev": "020fb336e6da11d3a9909f30bd908437a69f13b3",
+    "sha256": "1fm4yj6wxr24v7b77gmf63j7xsgszhbhzw2i9fvlfi0p9l0q34pm",
     "fetchSubmodules": true
 }
diff --git a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update
index 915726c658f55..95b7f5bb3318f 100755
--- a/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update
+++ b/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/update
@@ -7,4 +7,5 @@ echo >> src.json
 
 src=$(nix-build --no-out-link --expr 'with import <nixpkgs> {}; fetchFromGitHub (lib.importJSON ./src.json)')
 cp $src/pyproject.toml $src/poetry.lock .
+nix-shell -p poetry --run 'poetry lock'
 nix-build --expr '(import <nixpkgs> { overlays = [ (import ../../overlay.nix) ]; }).poetry'
diff --git a/pkgs/development/tools/profiling/heaptrack/default.nix b/pkgs/development/tools/profiling/heaptrack/default.nix
index fc2937a8b0fdb..7f42c39cb218a 100644
--- a/pkgs/development/tools/profiling/heaptrack/default.nix
+++ b/pkgs/development/tools/profiling/heaptrack/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "heaptrack";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "KDE";
     repo = "heaptrack";
     rev = "v${version}";
-    sha256 = "0pw82c26da014i1qxnaib3fqa52ijhf0m4swhjc3qq4hm2dx9bxj";
+    sha256 = "sha256-GXwlauLspbY+h/Y75zlHPoP27pr3xVl05LuDW+WVYxU=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules ];
diff --git a/pkgs/development/tools/profiling/sysprof/default.nix b/pkgs/development/tools/profiling/sysprof/default.nix
index 7bcf387202eff..319212da77050 100644
--- a/pkgs/development/tools/profiling/sysprof/default.nix
+++ b/pkgs/development/tools/profiling/sysprof/default.nix
@@ -2,7 +2,6 @@
 , lib
 , desktop-file-utils
 , fetchurl
-, fetchpatch
 , gettext
 , glib
 , gtk3
@@ -22,23 +21,15 @@
 
 stdenv.mkDerivation rec {
   pname = "sysprof";
-  version = "3.42.0";
+  version = "3.42.1";
 
   outputs = [ "out" "lib" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "PBbgPv3+XT5xxNI5xndBrTf3LOiXHi9/rxaNvV6T6IY=";
+    sha256 = "F5a4FATudf0eus9URkrXr/6/YvKFHu9STZ+OrAxKIAE=";
   };
 
-  patches = [
-    # Fix missing unistd.h include.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/sysprof/commit/b113c89af1de2f87589175795a197f6384852a78.patch";
-      sha256 = "3Q8d6IZYNJl/vbyzRgoRR2sdl4aRkbcKPeVjSSqxb98=";
-    })
-  ];
-
   nativeBuildInputs = [
     desktop-file-utils
     gettext
diff --git a/pkgs/development/tools/protoc-gen-go-vtproto/default.nix b/pkgs/development/tools/protoc-gen-go-vtproto/default.nix
new file mode 100644
index 0000000000000..4ffc0a24264eb
--- /dev/null
+++ b/pkgs/development/tools/protoc-gen-go-vtproto/default.nix
@@ -0,0 +1,26 @@
+{ buildGoModule
+, fetchFromGitHub
+, lib
+}:
+buildGoModule rec {
+  pname = "protoc-gen-go-vtproto";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "planetscale";
+    repo = "vtprotobuf";
+    rev = "v${version}";
+    sha256 = "0kjjpfsiws4vi36ha1gajb97rwcggqw753mv2jqf09kdfszz9p63";
+  };
+
+  vendorSha256 = "01lxwlgh3y3gp22gk5qx7r60c1j63pnpi6jnri8gf2lmiiib8fdc";
+
+  excludedPackages = [ "conformance" ];
+
+  meta = with lib; {
+    description = "A Protocol Buffers compiler that generates optimized marshaling & unmarshaling Go code for ProtoBuf APIv2";
+    homepage = "https://github.com/planetscale/vtprotobuf";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.zane ];
+  };
+}
diff --git a/pkgs/development/tools/protoc-gen-twirp/default.nix b/pkgs/development/tools/protoc-gen-twirp/default.nix
index 363dfcaed6120..663fa37b62c9e 100644
--- a/pkgs/development/tools/protoc-gen-twirp/default.nix
+++ b/pkgs/development/tools/protoc-gen-twirp/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "protoc-gen-twirp";
-  version = "8.1.0";
+  version = "8.1.1";
 
   src = fetchFromGitHub {
     owner = "twitchtv";
     repo = "twirp";
     rev = "v${version}";
-    sha256 = "sha256-ezSNrDfOE1nj4FlX7E7Z7/eGfQw1B7NP34aj8ml5pDk=";
+    sha256 = "sha256-PnL7jgxAx/Xk/wajtQ+Q1G9KLes2NVANF2YmBcGFqe0=";
   };
 
   goPackagePath = "github.com/twitchtv/twirp";
diff --git a/pkgs/development/tools/pscale/default.nix b/pkgs/development/tools/pscale/default.nix
index e5b5f9b06076a..4f4c1f58fe24c 100644
--- a/pkgs/development/tools/pscale/default.nix
+++ b/pkgs/development/tools/pscale/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pscale";
-  version = "0.85.0";
+  version = "0.88.0";
 
   src = fetchFromGitHub {
     owner = "planetscale";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-I2t5tuBlO2RpY8+zWSTIDOziriqE6PGKVIwPdmvXuKo=";
+    sha256 = "sha256-/QQ35zLqhhJw/h1u08Sb3FDz8O+7kh/pVz1EgEJQUfg=";
   };
 
-  vendorSha256 = "sha256-V7iXPM2WTR5zls/EFxpoLKrconP88om6y2CFNiuS6g4=";
+  vendorSha256 = "sha256-kNt7tMHubpcrfzAjf++GxV3kEj2g6fHFrP9cY8UPqB8=";
 
   meta = with lib; {
     homepage = "https://www.planetscale.com/";
diff --git a/pkgs/development/tools/pup/default.nix b/pkgs/development/tools/pup/default.nix
index 018232b3f40ad..8cdfddb7f0163 100644
--- a/pkgs/development/tools/pup/default.nix
+++ b/pkgs/development/tools/pup/default.nix
@@ -17,6 +17,6 @@ buildGoModule rec {
     description = "Parsing HTML at the command line";
     homepage = "https://github.com/ericchiang/pup";
     license = licenses.mit;
-    maintainers = with maintainers; [ yegortimoshenko SuperSandro2000 ];
+    maintainers = with maintainers; [ SuperSandro2000 yana ];
   };
 }
diff --git a/pkgs/development/tools/py-spy/default.nix b/pkgs/development/tools/py-spy/default.nix
index ed1f7aa0f7955..c6bc51b4f844b 100644
--- a/pkgs/development/tools/py-spy/default.nix
+++ b/pkgs/development/tools/py-spy/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "py-spy";
-  version = "0.3.10";
+  version = "0.3.11";
 
   src = fetchFromGitHub {
     owner = "benfred";
     repo = "py-spy";
     rev = "v${version}";
-    sha256 = "sha256-OiYYWLbdDrte0+YeJklt5pX2u2f4PnWJ4dyGWJBiTmQ=";
+    sha256 = "sha256-4Zp4IGd4lKBC0ye2/7Tfpz8vJzm0VnkKqx/2k3mCj3A=";
   };
 
   NIX_CFLAGS_COMPILE = "-L${libunwind}/lib";
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
 
   checkInputs = [ python3 ];
 
-  cargoSha256 = "sha256-Dn+1C+RRjxu8onejeKB9WsVGtthTy3Uit9jm2JtyN1w=";
+  cargoSha256 = "sha256-LEtmzCoT8esBYh9PkCGpzUU7miaWd3Ao0z/LzxhP39A=";
 
   meta = with lib; {
     description = "Sampling profiler for Python programs";
diff --git a/pkgs/development/tools/rnix-lsp/default.nix b/pkgs/development/tools/rnix-lsp/default.nix
index 327a93637fc23..f1e21641c35f8 100644
--- a/pkgs/development/tools/rnix-lsp/default.nix
+++ b/pkgs/development/tools/rnix-lsp/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rnix-lsp";
-  version = "0.2.1";
+  version = "0.2.3";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "rnix-lsp";
     rev = "v${version}";
-    sha256 = "sha256-54dtLkGAbQ4Sln/bs/sI0GaCbXyK8+vDD8QBgxaiCXg=";
+    sha256 = "sha256-D2ItR8z4LqEH1IL53vq/wPh9Pfe3eB0KsA79aLM/BWM=";
   };
 
-  cargoSha256 = "sha256-Tw05eOIMJj+zX0fqtn6wJwolKNkYqfVuo/WO/WvYu2k=";
+  cargoSha256 = "sha256-71vH8oc8DmwbwM2PgxjGmWAbyC4AByx7waHxLsr2koI=";
 
   checkInputs = [ nix ];
 
diff --git a/pkgs/development/tools/rocminfo/default.nix b/pkgs/development/tools/rocminfo/default.nix
index cef5d7e3666fb..2734cfa09317e 100644
--- a/pkgs/development/tools/rocminfo/default.nix
+++ b/pkgs/development/tools/rocminfo/default.nix
@@ -7,13 +7,13 @@
   # compilers to determine the desired target.
 , defaultTargets ? []}:
 stdenv.mkDerivation rec {
-  version = "4.3.1";
+  version = "4.5.2";
   pname = "rocminfo";
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "rocminfo";
     rev = "rocm-${version}";
-    sha256 = "sha256-n80tiSVaPTFl4imZvoFENM4KhPLxgDKz5VlOvhEYlV0=";
+    sha256 = "sha256-VIlHYiGLen4xmdP7kpmObj5wKy6Qq7iupJFtPa4Zd98=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/tools/rust/bindgen/default.nix b/pkgs/development/tools/rust/bindgen/default.nix
index 57d5c1e64d2f0..2c69ad9876ecb 100644
--- a/pkgs/development/tools/rust/bindgen/default.nix
+++ b/pkgs/development/tools/rust/bindgen/default.nix
@@ -5,7 +5,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-bindgen";
-  version = "0.59.1";
+  version = "0.59.2";
 
   RUSTFLAGS = "--cap-lints warn"; # probably OK to remove after update
 
@@ -13,10 +13,10 @@ rustPlatform.buildRustPackage rec {
     owner = "rust-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nCww9sr6kF7nCQeIGtOXddxD3dR/SJ0rqAc+RlZnUkQ=";
+    sha256 = "sha256-bJYdyf5uZgWe7fQ80/3QsRV0qyExYn6P9UET3tzwPFs=";
   };
 
-  cargoSha256 = "sha256-3EXYC/mwzVxo/ginvF1WFtS7ABE/ybyuKb58uMqfTDs=";
+  cargoSha256 = "sha256-zhENlrqj611RkKDvpDtDFWc58wfQVamkJnpe2nvRieE=";
 
   #for substituteAll
   libclang = llvmPackages_latest.libclang.lib;
diff --git a/pkgs/development/tools/rust/cargo-cache/default.nix b/pkgs/development/tools/rust/cargo-cache/default.nix
index 12d9bd6bb0364..62c9f9b97e55c 100644
--- a/pkgs/development/tools/rust/cargo-cache/default.nix
+++ b/pkgs/development/tools/rust/cargo-cache/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-cache";
-  version = "0.6.3";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "matthiaskrgr";
     repo = pname;
     rev = version;
-    sha256 = "sha256-y6rvdY9511XScxLWPrH9aUFgSmRYmGqKE56MPBTH9OM=";
+    sha256 = "sha256-MPU+hmYfmWftVEkdT/sZx9ESgCPTb7m4lEnYf5bOSYU=";
   };
 
-  cargoSha256 = "sha256-H6MBAXrKu4hZwx3lGHN6YMuYzeb21Zq0tVlF/lsQmLI=";
+  cargoSha256 = "sha256-6Ffgg5/B1IFnTlSjzhAsnhxz8jBcgk01RIkwgLqlsvc=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
diff --git a/pkgs/development/tools/rust/cargo-deny/default.nix b/pkgs/development/tools/rust/cargo-deny/default.nix
index 39567600f7e9c..b895ff703e489 100644
--- a/pkgs/development/tools/rust/cargo-deny/default.nix
+++ b/pkgs/development/tools/rust/cargo-deny/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , pkg-config
 , openssl
+, zstd
 , stdenv
 , curl
 , Security
@@ -10,26 +11,30 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deny";
-  version = "0.10.1";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "EmbarkStudios";
     repo = pname;
     rev = version;
-    sha256 = "sha256-ZpTwqwxh1/Yz5MBlv1KvD/sBTaFb5m7cQXLkUAGZegc=";
+    sha256 = "sha256-LYXwdOopQkgq7i4l8dqQFkNLB3r+CVRor4BVeoj0DPs=";
   };
 
-  cargoSha256 = "sha256-JwljoLTEolKCaob7IPYan5N9YIZvnlj1uRZ1mNACGbQ=";
+  # enable pkg-config feature of zstd
+  cargoPatches = [ ./zstd-pkg-config.patch ];
 
-  doCheck = false;
+  cargoSha256 = "sha256-SdbDWw4GOvCTKN7vBjhLU5rhdVIpyO+AWaFbo06HXfU=";
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ openssl ]
+  buildInputs = [ openssl zstd ]
     ++ lib.optionals stdenv.isDarwin [ curl Security ];
 
   buildNoDefaultFeatures = true;
 
+  # tests require internet access
+  doCheck = false;
+
   meta = with lib; {
     description = "Cargo plugin to generate list of all licenses for a crate";
     homepage = "https://github.com/EmbarkStudios/cargo-deny";
diff --git a/pkgs/development/tools/rust/cargo-deny/zstd-pkg-config.patch b/pkgs/development/tools/rust/cargo-deny/zstd-pkg-config.patch
new file mode 100644
index 0000000000000..346d49e26d047
--- /dev/null
+++ b/pkgs/development/tools/rust/cargo-deny/zstd-pkg-config.patch
@@ -0,0 +1,29 @@
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -242,6 +242,7 @@ dependencies = [
+  "toml_edit",
+  "twox-hash",
+  "url",
++ "zstd",
+ ]
+ 
+ [[package]]
+@@ -1904,4 +1905,5 @@ checksum = "2141bed8922b427761470e6bbfeff255da94fa20b0bbeab0d9297fcaf71e3aa7"
+ dependencies = [
+  "cc",
+  "libc",
++ "pkg-config",
+ ]
+diff --git a/Cargo.toml b/Cargo.toml
+index 8f24673..b59c350 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -92,6 +92,8 @@ twox-hash = { version = "1.5", default-features = false }
+ # Url parsing/manipulation
+ url = "2.1"
+ 
++zstd = { version = "*", features = ["pkg-config"] }
++
+ [dev-dependencies]
+ # Avoid loading license check many times
+ lazy_static = "1.4.0"
diff --git a/pkgs/development/tools/rust/cargo-embed/default.nix b/pkgs/development/tools/rust/cargo-embed/default.nix
index 80a8195d77eb0..70b34dc350620 100644
--- a/pkgs/development/tools/rust/cargo-embed/default.nix
+++ b/pkgs/development/tools/rust/cargo-embed/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-embed";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "probe-rs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "151zdnv4i0dgkk4w3j2a1sdklcxw07bgqjs7sv6lvkylrx8dfrxa";
+    sha256 = "1is58n8y5lvnvzkbnh3gfk3r3f2r1w4l2qjdp2k8373apxzjxdvr";
   };
 
-  cargoSha256 = "00p2rwqrax99kwadc8bfq8pbcijals2nzpx43wb03kwxl4955wn9";
+  cargoSha256 = "0kalwigck9lf734zdpzg01sf2zzyrgdgq2rg3qj7hy94gfxlsk63";
 
   nativeBuildInputs = [ pkg-config rustfmt ];
   buildInputs = [ libusb1 libftdi1 ] ++ lib.optionals stdenv.isDarwin [ AppKit ];
@@ -30,6 +30,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "A cargo extension for working with microcontrollers";
     homepage = "https://probe.rs/";
+    changelog = "https://github.com/probe-rs/cargo-embed/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ fooker ];
   };
diff --git a/pkgs/development/tools/rust/cargo-expand/default.nix b/pkgs/development/tools/rust/cargo-expand/default.nix
index 304ede5214ab3..695a071491bff 100644
--- a/pkgs/development/tools/rust/cargo-expand/default.nix
+++ b/pkgs/development/tools/rust/cargo-expand/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-expand";
-  version = "1.0.9";
+  version = "1.0.10";
 
   src = fetchFromGitHub {
     owner = "dtolnay";
     repo = pname;
     rev = version;
-    sha256 = "sha256-wDuCmiQzyY/Ydr67fYb0yZaSWvuYwW91j0CoqbUFFpg=";
+    sha256 = "sha256-9Zov1XTU02TjQ707Z/Muv70AGtQL03V1G3suabY3D48=";
   };
 
-  cargoSha256 = "sha256-5KCGXJzk5VStby/JzjXJvDSrhFlB8YJHMcQNL8GxkLI=";
+  cargoSha256 = "sha256-toWzjfHU5ce/50kCbuxj6sIG2R3i8q9HBcIzlwW0C9A=";
 
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
diff --git a/pkgs/development/tools/rust/cargo-feature/default.nix b/pkgs/development/tools/rust/cargo-feature/default.nix
index facbf0299a526..938dfab2982e1 100644
--- a/pkgs/development/tools/rust/cargo-feature/default.nix
+++ b/pkgs/development/tools/rust/cargo-feature/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-feature";
-  version = "0.5.5";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "Riey";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-0Ski+LytE636HHduisYJJq3khRsaJJ4YhpmaU5On348=";
+    sha256 = "sha256-9TP67YtvRtgLtsKACL5xjXq5kZtYpTWsTqQsbOKPwtY=";
   };
 
-  cargoSha256 = "sha256-PA/s/BrqUftdGc5Lvd0glL9Dr8GLX9pYMq6WRRUQwEk=";
+  cargoSha256 = "sha256-MkLsQebQdqfUuARIdQZg47kMPudstJUgRQgUuovoLes=";
 
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
diff --git a/pkgs/development/tools/rust/cargo-flash/default.nix b/pkgs/development/tools/rust/cargo-flash/default.nix
index f5de052e0e554..0f90f48004395 100644
--- a/pkgs/development/tools/rust/cargo-flash/default.nix
+++ b/pkgs/development/tools/rust/cargo-flash/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-flash";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "probe-rs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-yTtnRdDy3wGBe0SlO0165uooWu6ZMhUQw3hdDUK1e8A=";
+    sha256 = "0s49q8x0iscy9rgn9zgymyg39cqm251a99m341znjn55lap3pdl8";
   };
 
-  cargoSha256 = "sha256-f5vUMdyz3vDh2yE0pMKZiknsqTAKkuvTCtlgb6/gaLc=";
+  cargoSha256 = "0rb4s5bwjs7hri636r2viva96a6z9qjv9if6i220j9yglrvi7c8i";
 
   nativeBuildInputs = [ pkg-config rustfmt ];
   buildInputs = [ libusb1 ] ++ lib.optionals stdenv.isDarwin [ AppKit ];
@@ -27,6 +27,7 @@ rustPlatform.buildRustPackage rec {
   meta = with lib; {
     description = "A cargo extension for working with microcontrollers";
     homepage = "https://probe.rs/";
+    changelog = "https://github.com/probe-rs/cargo-flash/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ fooker ];
   };
diff --git a/pkgs/development/tools/rust/cargo-fuzz/default.nix b/pkgs/development/tools/rust/cargo-fuzz/default.nix
index 56a2962f0c924..22fe3a2b19ce9 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.10.1";
+  version = "0.10.2";
 
   src = fetchFromGitHub {
     owner = "rust-fuzz";
     repo = "cargo-fuzz";
     rev = version;
-    sha256 = "sha256-txlHXboQi3Z8AMIJJBZsBrCA7xggF0zGDpKqcD8UxMo=";
+    sha256 = "sha256-5dHEUGn2CrEpSTJsbnSRx/hKXx6dLCDcuD1dPOH49d4=";
   };
 
-  cargoSha256 = "sha256-eEfry6Q2YiIkNEHu6C8p17pUTF43eS1/iTP2oATZ/F8=";
+  cargoSha256 = "sha256-vZPd8Zzyp0PgIdyp5qY57ex0cCihplw/FY+xf3etuu8=";
 
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
diff --git a/pkgs/development/tools/rust/cargo-generate/default.nix b/pkgs/development/tools/rust/cargo-generate/default.nix
index 040109da3adbd..d432f5a50fae7 100644
--- a/pkgs/development/tools/rust/cargo-generate/default.nix
+++ b/pkgs/development/tools/rust/cargo-generate/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-generate";
-  version = "0.5.3";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
     owner = "ashleygwilliams";
     repo = "cargo-generate";
     rev = "v${version}";
-    sha256 = "sha256-RrDwq5VufMDsPlqRmBP3x2RUWU740L0L18noByO1IDY=";
+    sha256 = "sha256-t0vIuJUGPgHQFBezmEMOlEJItwOJHlIQMFvcUZlx9is=";
   };
 
-  cargoSha256 = "sha256-/0pxEQFhovPRI4Knv5xq6+PHRuGN6+tF8CdK5X30LKI=";
+  cargoSha256 = "sha256-esfiMnnij3Tf1qROVViPAqXFJA4DAHarV44pK5zpDrc=";
 
   nativeBuildInputs = [ pkg-config ];
 
@@ -24,6 +24,12 @@ rustPlatform.buildRustPackage rec {
     git config --global user.email nixbld@localhost.localnet
   '';
 
+  # Exclude some tests that don't work in sandbox:
+  # - favorites_default_to_git_if_not_defined: requires network access to github.com
+  # - should_canonicalize: the test assumes that it will be called from the /Users/<project_dir>/ folder on darwin variant.
+  checkFlags = [ "--skip favorites::favorites_default_to_git_if_not_defined" ]
+      ++ lib.optionals stdenv.isDarwin [ "--skip git::should_canonicalize" ];
+
   meta = with lib; {
     description = "cargo, make me a project";
     homepage = "https://github.com/ashleygwilliams/cargo-generate";
diff --git a/pkgs/development/tools/rust/cargo-make/default.nix b/pkgs/development/tools/rust/cargo-make/default.nix
index 498b32858bba7..da4345c0e44cb 100644
--- a/pkgs/development/tools/rust/cargo-make/default.nix
+++ b/pkgs/development/tools/rust/cargo-make/default.nix
@@ -13,11 +13,11 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-make";
-  version = "0.35.6";
+  version = "0.35.7";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-31GIjm2OtaMwf0nYmWVUsi3GBeik/QKvL8AdCyhjZy0=";
+    sha256 = "sha256-rMeaKzCGY9jRrw8GaGtgm1rg3FIdaX/P+bOZRAtAI/s=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ]
     ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration libiconv ];
 
-  cargoSha256 = "sha256-GMniiGOxg97JCZGxxIr4Zup6b/Wzldy4/FLbJwFJPxY=";
+  cargoSha256 = "sha256-ZXQM2ij9Cpa5WCEHhcDc/tThfKZ7s1URmYsmqRg73m0=";
 
   # Some tests fail because they need network access.
   # However, Travis ensures a proper build.
diff --git a/pkgs/development/tools/rust/cargo-msrv/default.nix b/pkgs/development/tools/rust/cargo-msrv/default.nix
index 33e9fca441fb5..aec27c588a904 100644
--- a/pkgs/development/tools/rust/cargo-msrv/default.nix
+++ b/pkgs/development/tools/rust/cargo-msrv/default.nix
@@ -13,16 +13,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-msrv";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "foresterre";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zc6jJqG7OGqfsPnb3VeKmEnz8AL2p1wHqgDvHQC5OX8=";
+    sha256 = "sha256-zIUbPmSlobSC3iJ0ddto40Sa/1xzCYG6eaTjMuUnXNU=";
   };
 
-  cargoSha256 = "sha256-SjgYkDDe11SVN6rRZTi/fYB8CgYhu2kfSXrIyimlhkk=";
+  cargoSha256 = "sha256-GKU0ootG4fXUGErPplERMVjEBop/0+sfQCYpQwPPcXA=";
 
   passthru = {
     updateScript = nix-update-script {
diff --git a/pkgs/development/tools/rust/cargo-sort/default.nix b/pkgs/development/tools/rust/cargo-sort/default.nix
index 9ab6d7e2b03ae..428616e3e9959 100644
--- a/pkgs/development/tools/rust/cargo-sort/default.nix
+++ b/pkgs/development/tools/rust/cargo-sort/default.nix
@@ -2,20 +2,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-sort";
-  version = "1.0.5";
+  version = "1.0.7";
 
   src = fetchFromGitHub {
     owner = "devinr528";
     repo = pname;
     rev = "v${version}";
-    sha256 = "146aawikyjcxbj0dpnqia31xmplpwkl9w1gv7d9a5jvz8whvxrff";
+    sha256 = "sha256-jESz3SujznGLJeR23LvxORNC0Tj4VcEzdzhIRwyvjd0=";
   };
 
-  cargoSha256 = "0xm37f285vmd674k5j72pcjg6zpmxlf46d9vppi9s3qaw0hsslpf";
+  cargoSha256 = "sha256-1iOZ1EEP4bObTweTN4Wjtb9Y9ysJQ/9xnNpprxKIaho=";
 
   meta = with lib; {
     description = "A tool to check that your Cargo.toml dependencies are sorted alphabetically";
     homepage = "https://github.com/devinr528/cargo-sort";
+    changelog = "https://github.com/devinr528/cargo-sort/blob/v${version}/changelog.md";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
   };
diff --git a/pkgs/development/tools/rust/cargo-spellcheck/default.nix b/pkgs/development/tools/rust/cargo-spellcheck/default.nix
index 43571a26ab6f2..8e6e9459aab0a 100644
--- a/pkgs/development/tools/rust/cargo-spellcheck/default.nix
+++ b/pkgs/development/tools/rust/cargo-spellcheck/default.nix
@@ -8,21 +8,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-spellcheck";
-  version = "0.8.14";
+  version = "0.9.6";
 
   src = fetchFromGitHub {
     owner = "drahnr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "11r4gzcsbqlflam2rdixc451qw69c46mkf7g0slq6f127is25fgz";
+    sha256 = "0brrpcnsphvl1qn8myrzan0k87ph629gcj6zd54ym9f67qg2nri1";
   };
 
-  cargoSha256 = "1p4iirblk6idvfhn8954v8lbxlzj0gbd8fv4wq03hfrdqisjqcsn";
+  cargoSha256 = "0d0adpgf0j8xvw0dm3gcd6lnksn6p5rz3limc038fg8k84zf7cdb";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
   LIBCLANG_PATH = "${libclang.lib}/lib";
 
+  preCheck = "HOME=$(mktemp -d)";
+
   checkFlags = [
     "--skip checker::hunspell::tests::hunspell_binding_is_sane"
   ];
diff --git a/pkgs/development/tools/rust/cargo-udeps/default.nix b/pkgs/development/tools/rust/cargo-udeps/default.nix
index 31416670dcad1..88e32f2efdabf 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.24";
+  version = "0.1.25";
 
   src = fetchFromGitHub {
     owner = "est31";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/A3OaJje8AT4zR91sLAYN6lsKiv2FbSBYAeuc79nSF0=";
+    sha256 = "sha256-GNQ8PTnkmf4m2QW1yIEKytk53RNJZa9Z0GUrW5UjIkk=";
   };
 
-  cargoSha256 = "sha256-1LXcuLmbW0ezLJG0sszQDZqa2cRaMMC4blNjmFg1Ltc=";
+  cargoSha256 = "sha256-MbD5lkmKzggdoSzCcArVzpdQRLnXT1y+C2EFSWUbaa4=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/rust/cargo-watch/default.nix b/pkgs/development/tools/rust/cargo-watch/default.nix
index d349db0084c53..5cc3fa39eadec 100644
--- a/pkgs/development/tools/rust/cargo-watch/default.nix
+++ b/pkgs/development/tools/rust/cargo-watch/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-watch";
-  version = "8.1.1";
+  version = "8.1.2";
 
   src = fetchFromGitHub {
     owner = "passcod";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wv1aD20VHar0V7oKOEKIX3klGVXauMXU4vL+NgNeZPk=";
+    sha256 = "sha256-zhOYKvsCK5am4Ystt3+cPAQM77IlIBJysAEix5cXKbI=";
   };
 
-  cargoSha256 = "sha256-qhCDrZAG1FcPYKMj2C/m+5Dplko4Tpp1hGpRdGOK/Ds=";
+  cargoSha256 = "sha256-OAOzrGS8n0jfUiQyIAHWLJMEkRINyasgkIjiLw977LE=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices Foundation libiconv ];
 
diff --git a/pkgs/development/tools/rust/cargo-wipe/default.nix b/pkgs/development/tools/rust/cargo-wipe/default.nix
index a59a124317b94..d5652c82ec7ff 100644
--- a/pkgs/development/tools/rust/cargo-wipe/default.nix
+++ b/pkgs/development/tools/rust/cargo-wipe/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-wipe";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "mihai-dinculescu";
     repo = "cargo-wipe";
     rev = "v${version}";
-    sha256 = "sha256-sVekfGHg2wspP5/zJzXTXupspwJr4hQBucY5+8iUjUQ=";
+    sha256 = "sha256-AlmXq2jbU8mQ23Q64a8QiKXwiWkIfr98vAoq7FLImhA=";
   };
 
-  cargoSha256 = "sha256-EoXgsWg1Rh7C+fIqvefkLdck4Yj3kox2ZAU3kn6nH8Q=";
+  cargoSha256 = "sha256-vsN4cM4Q9LX1ZgAA5x7PupOTh0IcjI65xzuCPjy8YOs=";
 
   passthru = {
     updateScript = nix-update-script {
diff --git a/pkgs/development/tools/rust/probe-run/default.nix b/pkgs/development/tools/rust/probe-run/default.nix
index 6f9cb007b9041..2626de0f84baf 100644
--- a/pkgs/development/tools/rust/probe-run/default.nix
+++ b/pkgs/development/tools/rust/probe-run/default.nix
@@ -1,18 +1,16 @@
-{ lib, stdenv, rustPlatform, fetchFromGitHub, pkg-config, libusb1
+{ lib, stdenv, rustPlatform, fetchCrate, pkg-config, libusb1
 , libiconv, AppKit, IOKit }:
 
 rustPlatform.buildRustPackage rec {
   pname = "probe-run";
-  version = "0.3.0";
+  version = "0.3.1";
 
-  src = fetchFromGitHub {
-    owner = "knurling-rs";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0qlpvy62wqc8k9sww6pbiqv0yrjwpnai1vgrijw5285qpvrdsdw2";
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "1nfbpdx378p988q75hka9r8zp3xb9zy3dnagcxmha6dca5dhgsdm";
   };
 
-  cargoSha256 = "10ybgzvv2iy5bjmmw48gmgvsx6rfqclsysyfbhd820dg2lshgi44";
+  cargoSha256 = "05p3vmar00215x4mwsvs5knf4wrwmpq52rmbbi6b4qaqs3gqaghy";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ libusb1 ]
diff --git a/pkgs/development/tools/rust/rust-analyzer/default.nix b/pkgs/development/tools/rust/rust-analyzer/default.nix
index 7e69f18e124f1..164e57e77490b 100644
--- a/pkgs/development/tools/rust/rust-analyzer/default.nix
+++ b/pkgs/development/tools/rust/rust-analyzer/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , rustPlatform
 , CoreServices
 , cmake
@@ -12,14 +11,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-analyzer-unwrapped";
-  version = "2021-10-25";
-  cargoSha256 = "sha256-PCQxXNpv4krdLBhyINoZT5QxV2hCqXpp1mqs0dUu4Ag=";
+  version = "2021-12-27";
+  cargoSha256 = "sha256-yok7kLcvKvDwrdgJR0540QLJi5/zXi0NyZxhtoQ8Xno=";
 
   src = fetchFromGitHub {
     owner = "rust-analyzer";
     repo = "rust-analyzer";
     rev = version;
-    sha256 = "sha256-3AMRwtEmITIvUdR/NINQTPatkjhmS1dQsbbsefIDYAE=";
+    sha256 = "sha256-/195+NsV6Mku2roi8zVy4dw8QGL6rQcnPcQ29Os8oqs=";
   };
 
   patches = [
@@ -28,32 +27,6 @@ rustPlatform.buildRustPackage rec {
     ./ignore-git-and-rustfmt-tests.patch
   ];
 
-  # Revert edition 2021 related code since we have rust 1.55.0 in nixpkgs currently.
-  # Remove them when we have rust >= 1.56.0
-  # They change Cargo.toml so go `cargoPatches`.
-  cargoPatches = [
-    (fetchpatch {
-      url = "https://github.com/rust-analyzer/rust-analyzer/commit/f0ad6fa68bf98d317518bb75da01b7bb7abe98d3.patch";
-      revert = true;
-      sha256 = "sha256-ksX2j1Pgtd+M+FmXTEljm1nUxJwcY8GDQ9784Lb1uM4=";
-    })
-    (fetchpatch {
-      url = "https://github.com/rust-analyzer/rust-analyzer/commit/8457ae34bdbca117b2ef73787b214161440e21f9.patch";
-      revert = true;
-      sha256 = "sha256-w1Py1bvZ2/tDQDZVMNmPRo6i6uA4H3YYZY4rXlo0iqg=";
-    })
-    (fetchpatch {
-      url = "https://github.com/rust-analyzer/rust-analyzer/commit/ca44b6892e3e66765355d4e645f74df3d184c03b.patch";
-      revert = true;
-      sha256 = "sha256-N1TWlLxEg6oxFkns1ieVVvLAkrHq2WOr1tbkNvZvDFg=";
-    })
-    (fetchpatch {
-      url = "https://github.com/rust-analyzer/rust-analyzer/commit/1294bfce865c556184c9327af4a8953ca940aec8.patch";
-      revert = true;
-      sha256 = "sha256-65eZxAjsuUln6lzSihIP26x15PELLDL4yk9wiVzJ0hE=";
-    })
-  ];
-
   buildAndTestSubdir = "crates/rust-analyzer";
 
   nativeBuildInputs = lib.optional useMimalloc cmake;
@@ -84,8 +57,8 @@ rustPlatform.buildRustPackage rec {
   passthru.updateScript = ./update.sh;
 
   meta = with lib; {
-    description = "An experimental modular compiler frontend for the Rust language";
-    homepage = "https://github.com/rust-analyzer/rust-analyzer";
+    description = "A modular compiler frontend for the Rust language";
+    homepage = "https://rust-analyzer.github.io";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ oxalica ];
   };
diff --git a/pkgs/development/tools/rust/rust-analyzer/update.sh b/pkgs/development/tools/rust/rust-analyzer/update.sh
index add400e4d0e86..920b36a5131e5 100755
--- a/pkgs/development/tools/rust/rust-analyzer/update.sh
+++ b/pkgs/development/tools/rust/rust-analyzer/update.sh
@@ -28,50 +28,8 @@ sed -e "s#version = \".*\"#version = \"$ver\"#" \
     -e "/fetchFromGitHub/,/}/ s#sha256 = \".*\"#sha256 = \"$sha256\"#" \
     -e "s#cargoSha256 = \".*\"#cargoSha256 = \"sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\"#" \
     --in-place ./default.nix
-node_src="$(nix-build "$nixpkgs" -A rust-analyzer.src --no-out-link)/editors/code"
-
-# Check vscode compatibility
-req_vscode_ver="$(jq '.engines.vscode' "$node_src/package.json" --raw-output)"
-req_vscode_ver="${req_vscode_ver#^}"
-cur_vscode_ver="$(nix-instantiate --eval --strict "$nixpkgs" -A vscode.version | tr -d '"')"
-if [[ "$(nix-instantiate --eval --strict -E "(builtins.compareVersions \"$req_vscode_ver\" \"$cur_vscode_ver\")")" -gt 0 ]]; then
-    echo "vscode $cur_vscode_ver is incompatible with the extension requiring ^$req_vscode_ver"
-    exit 1
-fi
 
 echo "Prebuilding for cargoSha256"
 cargo_sha256=$(nix-prefetch "{ sha256 }: (import $nixpkgs {}).rust-analyzer-unwrapped.cargoDeps.overrideAttrs (_: { outputHash = sha256; })")
 sed "s#cargoSha256 = \".*\"#cargoSha256 = \"$cargo_sha256\"#" \
     --in-place ./default.nix
-
-# Update vscode extension
-
-extension_ver=$(curl "https://github.com/rust-analyzer/rust-analyzer/releases/download/$ver/rust-analyzer.vsix" -L |
-    bsdtar -xf - --to-stdout extension/package.json | # Use bsdtar to extract vsix(zip).
-    jq --raw-output '.version')
-echo "Extension version: $extension_ver"
-
-build_deps="../../../../misc/vscode-extensions/rust-analyzer/build-deps"
-# We need devDependencies to build vsix.
-# `esbuild` is a binary package an is already in nixpkgs so we omit it here.
-jq '{ name, version: $ver, dependencies: (.dependencies + .devDependencies | del(.esbuild)) }' "$node_src/package.json" \
-    --arg ver "$extension_ver" \
-    >"$build_deps/package.json.new"
-
-old_deps="$(jq '.dependencies' "$build_deps"/package.json)"
-new_deps="$(jq '.dependencies' "$build_deps"/package.json.new)"
-if [[ "$old_deps" == "$new_deps" ]]; then
-    echo "package.json dependencies not changed, do simple version change"
-
-    sed -E '/^  "rust-analyzer-build-deps/,+3 s/version = ".*"/version = "'"$extension_ver"'"/' \
-        --in-place ../../../node-packages/node-packages.nix
-    mv "$build_deps"/package.json{.new,}
-
-else
-    echo "package.json dependencies changed, updating nodePackages"
-    mv "$build_deps"/package.json{.new,}
-
-    pushd "../../../node-packages"
-    ./generate.sh
-    popd
-fi
diff --git a/pkgs/development/tools/rust/rust-script/default.nix b/pkgs/development/tools/rust/rust-script/default.nix
index 947b4721b0a3f..2839c2287f898 100644
--- a/pkgs/development/tools/rust/rust-script/default.nix
+++ b/pkgs/development/tools/rust/rust-script/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-script";
-  version = "0.18.0";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = "fornwall";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-B/xh0eYRJxjjIEXdxmLz6usQvo4v/HQK5VNnnjcDBjM=";
+    sha256 = "sha256-CYeTt6PzVGu62/GJB+gUlOXG2bs4RV0LWECF4CN3Uic=";
   };
 
-  cargoSha256 = "sha256-7qMrrs6K+mJVDHNkGQDb6abM18RyBPToseTNM7ogdQ0=";
+  cargoSha256 = "sha256-IUzaVeOTBAOo/jkDytk6qc7VatKX75l1yZy99iSIqyE=";
 
   # tests require network access
   doCheck = false;
diff --git a/pkgs/development/tools/sassc/default.nix b/pkgs/development/tools/sassc/default.nix
index d9662cd7ddb91..16bc97a48ee61 100644
--- a/pkgs/development/tools/sassc/default.nix
+++ b/pkgs/development/tools/sassc/default.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "sassc";
-  version = "3.6.1";
+  version = "3.6.2"; # also check libsass for updates
 
   src = fetchFromGitHub {
     owner = "sass";
     repo = pname;
     rev = version;
-    sha256 = "1sxm54mkhs9m4vnl7vn11y17mhzamc403hv3966j1c7p2rbzg5pv";
+    sha256 = "sha256-jcs3+orRqKt9C3c2FTdeaj4H2rBP74lW3HF8CHSm7lQ=";
   };
 
-  patchPhase = ''
+  preConfigure = ''
     export SASSC_VERSION=${version}
   '';
 
diff --git a/pkgs/development/tools/scalafmt/default.nix b/pkgs/development/tools/scalafmt/default.nix
index bddcaf1cc8a47..3b3e5be296fe5 100644
--- a/pkgs/development/tools/scalafmt/default.nix
+++ b/pkgs/development/tools/scalafmt/default.nix
@@ -2,7 +2,7 @@
 
 let
   baseName = "scalafmt";
-  version = "3.0.8";
+  version = "3.3.0";
   deps = stdenv.mkDerivation {
     name = "${baseName}-deps-${version}";
     buildCommand = ''
@@ -13,7 +13,7 @@ let
     '';
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash     = "VBU6Jg6Sq3RBy0ym5YbjLjvcfx/85f6wNMmkGVV0W88=";
+    outputHash     = "PlLQVNn2HomcR9grqGFgaXYWxg9EU7ihd28wXruZiBs=";
   };
 in
 stdenv.mkDerivation {
diff --git a/pkgs/development/tools/scenebuilder/default.nix b/pkgs/development/tools/scenebuilder/default.nix
index b2e1e69487ed7..438555998fde4 100644
--- a/pkgs/development/tools/scenebuilder/default.nix
+++ b/pkgs/development/tools/scenebuilder/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchFromGitHub, jdk11, gradleGen, makeDesktopItem, copyDesktopItems, perl, writeText, runtimeShell, makeWrapper, glib, wrapGAppsHook }:
+{ lib, stdenv, fetchFromGitHub, jdk11, gradle_6, makeDesktopItem, copyDesktopItems, perl, writeText, runtimeShell, makeWrapper, glib, wrapGAppsHook }:
 let
-  gradle = (gradleGen.override (old: { java = jdk11; })).gradle_6_9;
+  gradle = gradle_6;
 
   pname = "scenebuilder";
   version = "15.0.1";
@@ -33,7 +33,7 @@ let
 
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "0n93kb8pajlbidvdrsf3hwcwqzvgdm6dnly7wvk3vpargx6k7y1r";
+    outputHash = "01dkayad68g3zpzdnjwrc0h6s7s6n619y5b576snc35l8g2r5sgd";
   };
 
   # Point to our local deps repo
diff --git a/pkgs/development/tools/scenic-view/default.nix b/pkgs/development/tools/scenic-view/default.nix
index 6575f490a22c4..6dd3e11b60956 100644
--- a/pkgs/development/tools/scenic-view/default.nix
+++ b/pkgs/development/tools/scenic-view/default.nix
@@ -1,8 +1,5 @@
-{ lib, stdenv, fetchFromGitHub, jdk, gradleGen, makeDesktopItem, copyDesktopItems, perl, writeText, runtimeShell, makeWrapper }:
+{ lib, stdenv, fetchFromGitHub, jdk, gradle, makeDesktopItem, copyDesktopItems, perl, writeText, runtimeShell, makeWrapper }:
 let
-  # The default one still uses jdk8 (#89731)
-  gradle = (gradleGen.override (old: { java = jdk; })).gradle_latest;
-
   pname = "scenic-view";
   version = "11.0.2";
 
diff --git a/pkgs/development/tools/selenium/server/default.nix b/pkgs/development/tools/selenium/server/default.nix
index c4f8653794fe1..61959b98b4cc8 100644
--- a/pkgs/development/tools/selenium/server/default.nix
+++ b/pkgs/development/tools/selenium/server/default.nix
@@ -26,7 +26,7 @@ in stdenv.mkDerivation rec {
     cp $src $out/share/lib/${pname}-${version}/${pname}-${version}.jar
     makeWrapper ${jre}/bin/java $out/bin/selenium-server \
       --add-flags "-cp $out/share/lib/${pname}-${version}/${pname}-${version}.jar:${htmlunit-driver}/share/lib/${htmlunit-driver.name}/${htmlunit-driver.name}.jar" \
-      --add-flags ${optionalString chromeSupport "-Dwebdriver.chrome.driver=${chromedriver}/bin/chromedriver"} \
+      ${optionalString chromeSupport "--add-flags -Dwebdriver.chrome.driver=${chromedriver}/bin/chromedriver"} \
       --add-flags "org.openqa.grid.selenium.GridLauncherV3"
   '';
 
diff --git a/pkgs/development/tools/shellcheck/default.nix b/pkgs/development/tools/shellcheck/default.nix
index cf767515082e4..e85b596607b1c 100644
--- a/pkgs/development/tools/shellcheck/default.nix
+++ b/pkgs/development/tools/shellcheck/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, haskellPackages, haskell, pandoc }:
+{ stdenv, lib, ShellCheck, haskell, pandoc }:
 
 # this wraps around the haskell package
 # and puts the documentation into place
@@ -15,13 +15,13 @@ let
       };
     in drv' // { meta = meta' // overrideFn meta'; };
 
-  bin = haskell.lib.compose.justStaticExecutables haskellPackages.ShellCheck;
+  bin = haskell.lib.compose.justStaticExecutables ShellCheck;
 
   shellcheck = stdenv.mkDerivation {
     pname = "shellcheck";
     version = bin.version;
 
-    inherit (haskellPackages.ShellCheck) meta src;
+    inherit (ShellCheck) meta src;
 
     nativeBuildInputs = [ pandoc ];
 
diff --git a/pkgs/development/tools/skaffold/default.nix b/pkgs/development/tools/skaffold/default.nix
index 5921f8d19d470..3f5f2f22777c4 100644
--- a/pkgs/development/tools/skaffold/default.nix
+++ b/pkgs/development/tools/skaffold/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "skaffold";
-  version = "1.34.0";
+  version = "1.35.1";
 
   src = fetchFromGitHub {
     owner = "GoogleContainerTools";
     repo = "skaffold";
     rev = "v${version}";
-    sha256 = "sha256-y9y1aUy2fDvMuYCKU2g2lBSmX53NDy9v0XImHXqdJqM=";
+    sha256 = "sha256-8Ye2eR9eB7oyYOo46OraOxfLOG/XphWJkk+xPzDthPU=";
   };
 
-  vendorSha256 = "sha256-h5UybTcvr9Zxpfw7zBCeSAG2oAZzFWpuYugqXUCMtjs=";
+  vendorSha256 = "sha256-jr4HEs2mTRPNAiV/OWUnjYyQ1uSUJfVOTNCRi/18tEo=";
 
   subPackages = ["cmd/skaffold"];
 
@@ -41,6 +41,6 @@ buildGoModule rec {
       It also provides building blocks and describe customizations for a CI/CD pipeline.
     '';
     license = licenses.asl20;
-    maintainers = with maintainers; [ vdemeester ];
+    maintainers = with maintainers; [ vdemeester bryanasdev000];
   };
 }
diff --git a/pkgs/development/tools/skopeo/default.nix b/pkgs/development/tools/skopeo/default.nix
index 556b9c4a2587a..7b9a727c2ef07 100644
--- a/pkgs/development/tools/skopeo/default.nix
+++ b/pkgs/development/tools/skopeo/default.nix
@@ -14,13 +14,13 @@
 
 buildGoModule rec {
   pname = "skopeo";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "containers";
     repo = "skopeo";
-    sha256 = "sha256-GaOfONUAN+bNSyodDbZyahMheU5fnjuAp4/94jy+9Hg=";
+    sha256 = "sha256-KleTvRQwQFr4rrRXFW2z4N7DXIT920O2gig6wmOFIKs=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/development/tools/slimerjs/default.nix b/pkgs/development/tools/slimerjs/default.nix
index 473f24b1b55bc..7ebe7dba85125 100644
--- a/pkgs/development/tools/slimerjs/default.nix
+++ b/pkgs/development/tools/slimerjs/default.nix
@@ -1,33 +1,24 @@
-{lib, stdenv, fetchFromGitHub, zip, unzip, firefox, bash}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="slimerjs";
-    version="1.0.0";
-    name="${baseName}-${version}";
+{ lib, stdenv, fetchFromGitHub, zip, unzip, firefox, bash }:
+
+stdenv.mkDerivation rec {
+  pname = "slimerjs";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
     owner = "laurentj";
-    repo = baseName;
-    sha256="1w4sfrv520isbs7r1rlzl5y3idrpad7znw9fc92yz40jlwz7sxs4";
+    repo = "slimerjs";
+    sha256 = "sha256-RHd9PqcSkO9FYi5x+09TN7c4fKGf5pCPXjoCUXZ2mvA=";
     rev = version;
   };
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
+
   buildInputs = [ zip ];
   nativeBuildInputs = [ unzip ];
-  #src = fetchurl {
-  #  inherit (s) url sha256;
-  #};
-  #src = fetchgit {
-  #  inherit (s) url sha256 rev;
-  #};
-  src = fetchFromGitHub {
-    inherit (s) owner repo rev sha256;
-  };
+
   preConfigure = ''
     test -d src && cd src
     test -f omni.ja || zip omni.ja -r */
   '';
+
   installPhase = ''
     mkdir -p "$out"/{bin,share/doc/slimerjs,lib/slimerjs}
     cp LICENSE README* "$out/share/doc/slimerjs"
@@ -38,11 +29,11 @@ stdenv.mkDerivation {
     chmod a+x "$out/bin/slimerjs"
     sed -e 's@MaxVersion=[3456][0-9][.]@MaxVersion=99.@' -i "$out/lib/slimerjs/application.ini"
   '';
-  meta = {
-    inherit (s) version;
+
+  meta = with lib; {
     description = "Gecko-based programmatically-driven browser";
-    license = lib.licenses.mpl20 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/tools/slimerjs/default.upstream b/pkgs/development/tools/slimerjs/default.upstream
deleted file mode 100644
index f2d6b89e51b4b..0000000000000
--- a/pkgs/development/tools/slimerjs/default.upstream
+++ /dev/null
@@ -1,2 +0,0 @@
-url http://slimerjs.org/download.html
-version_link '/slimerjs-[0-9.]+[.]zip$'
diff --git a/pkgs/development/tools/slimerjs/default.upstream.git b/pkgs/development/tools/slimerjs/default.upstream.git
deleted file mode 100644
index 3066d5de82932..0000000000000
--- a/pkgs/development/tools/slimerjs/default.upstream.git
+++ /dev/null
@@ -1,3 +0,0 @@
-url https://github.com/laurentj/slimerjs
-target default.nix
-GH_latest
diff --git a/pkgs/development/tools/stagit/default.nix b/pkgs/development/tools/stagit/default.nix
index cfbca20256884..3b47823b9b439 100644
--- a/pkgs/development/tools/stagit/default.nix
+++ b/pkgs/development/tools/stagit/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "stagit";
-  version = "0.9.6";
+  version = "1.0";
 
   src = fetchgit {
     url = "git://git.codemadness.org/stagit";
     rev = version;
-    sha256 = "sha256-0vkdxtKZv7LyEHKGPrB4uOI2lD74+haelEanq2sOjkE=";
+    sha256 = "sha256-4QSKW89RyK/PpGE+lOHFiMTI82pdspfObnzd0rcgQkg=";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/development/tools/sumneko-lua-language-server/default.nix b/pkgs/development/tools/sumneko-lua-language-server/default.nix
index 80071b1d06063..d27506e2c4bcb 100644
--- a/pkgs/development/tools/sumneko-lua-language-server/default.nix
+++ b/pkgs/development/tools/sumneko-lua-language-server/default.nix
@@ -1,14 +1,16 @@
-{ lib, stdenv, fetchFromGitHub, ninja, makeWrapper }:
-
+{ lib, stdenv, fetchFromGitHub, ninja, makeWrapper, darwin }:
+let
+  target = if stdenv.isDarwin then "macOS" else "Linux";
+in
 stdenv.mkDerivation rec {
   pname = "sumneko-lua-language-server";
-  version = "2.4.7";
+  version = "2.5.6";
 
   src = fetchFromGitHub {
     owner = "sumneko";
     repo = "lua-language-server";
     rev = version;
-    sha256 = "sha256-lO+FUuU7uihbRLI1X9qhOvgukRGfhDeSM/JdIqr96Fk=";
+    sha256 = "sha256-dSj3wNbQghiGfqe7dNDbWnbXYLSiG+0mYv2yFmGsAc8=";
     fetchSubmodules = true;
   };
 
@@ -17,12 +19,32 @@ stdenv.mkDerivation rec {
     makeWrapper
   ];
 
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.CoreFoundation
+    darwin.apple_sdk.frameworks.Foundation
+  ];
+
   preBuild = ''
     cd 3rd/luamake
+  ''
+  + lib.optionalString stdenv.isDarwin ''
+    # Needed for the test
+    export HOME=/var/empty
+    # This package uses the program clang for C and C++ files. The language
+    # is selected via the command line argument -std, but this do not work
+    # in combination with the nixpkgs clang wrapper. Therefor we have to
+    # find all c++ compiler statements and replace $cc (which expands to
+    # clang) with clang++.
+    sed -i compile/ninja/macos.ninja \
+      -e '/c++/s,$cc,clang++,' \
+      -e '/test.lua/s,= .*,= true,' \
+      -e '/ldl/s,$cc,clang++,'
+    sed -i scripts/compiler/gcc.lua \
+      -e '/cxx_/s,$cc,clang++,'
   '';
 
   ninjaFlags = [
-    "-fcompile/ninja/linux.ninja"
+    "-fcompile/ninja/${lib.toLower target}.ninja"
   ];
 
   postBuild = ''
@@ -33,15 +55,15 @@ stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
 
-    install -Dt "$out"/share/lua-language-server/bin/Linux bin/Linux/lua-language-server
-    install -m644 -t "$out"/share/lua-language-server/bin/Linux bin/Linux/*.*
+    install -Dt "$out"/share/lua-language-server/bin bin/lua-language-server
+    install -m644 -t "$out"/share/lua-language-server/bin bin/*.*
     install -m644 -t "$out"/share/lua-language-server {debugger,main}.lua
     cp -r locale meta script "$out"/share/lua-language-server
 
     # necessary for --version to work:
     install -m644 -t "$out"/share/lua-language-server changelog.md
 
-    makeWrapper "$out"/share/lua-language-server/bin/Linux/lua-language-server \
+    makeWrapper "$out"/share/lua-language-server/bin/lua-language-server \
       $out/bin/lua-language-server \
       --add-flags "-E $out/share/lua-language-server/main.lua \
       --logpath='~/.cache/sumneko_lua/log' \
@@ -55,7 +77,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/sumneko/lua-language-server";
     license = licenses.mit;
     maintainers = with maintainers; [ mjlbach ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     mainProgram = "lua-language-server";
   };
 }
diff --git a/pkgs/development/tools/symfony-cli/default.nix b/pkgs/development/tools/symfony-cli/default.nix
index b2e8d5ba279b2..2eed473bb25ad 100644
--- a/pkgs/development/tools/symfony-cli/default.nix
+++ b/pkgs/development/tools/symfony-cli/default.nix
@@ -1,13 +1,34 @@
 { stdenvNoCC, fetchurl, lib }:
 
-stdenvNoCC.mkDerivation rec {
-  pname = "symfony-cli";
-  version = "4.26.8";
+let
+  version = "4.26.9";
+
+  srcs = {
+    x86_64-linux = fetchurl {
+      url = "https://github.com/symfony/cli/releases/download/v${version}/symfony_linux_amd64.gz";
+      sha256 = "0ivqqrpzbpyzp60bv25scarmvisj401rp7h2s3cxa7d17prja91v";
+    };
+
+    i686-linux = fetchurl {
+      url = "https://github.com/symfony/cli/releases/download/v${version}/symfony_linux_386.gz";
+      sha256 = "0ag5w70bkvj9wgp4yzzy824shj907sa5l20sqcgivi3r5gy0p277";
+    };
 
-  src = fetchurl {
-    url = "https://github.com/symfony/cli/releases/download/v${version}/symfony_linux_amd64.gz";
-    sha256 = "sha256-/9jsdl39TOkuNCB4G7orJH4qR4Spdt7VTsC1jelyLs0=";
+    aarch64-linux = fetchurl {
+      url = "https://github.com/symfony/cli/releases/download/v${version}/symfony_linux_arm64.gz";
+      sha256 = "00325xz7xl3bprj5zbg5yhn36jf4n37zlyag10m8zcmq8asa6k51";
+    };
+
+    x86_64-darwin = fetchurl {
+        url = "https://github.com/symfony/cli/releases/download/v${version}/symfony_darwin_amd64.gz";
+        sha256 = "00325xz7xl3bprj5zbg5yhn36jf4n37zlyag10m8zcmq8asa6k51";
+      };
   };
+in stdenvNoCC.mkDerivation rec {
+  inherit version;
+  pname = "symfony-cli";
+
+  src = srcs.${stdenvNoCC.hostPlatform.system} or (throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}");
 
   dontBuild = true;
 
@@ -24,6 +45,6 @@ stdenvNoCC.mkDerivation rec {
     homepage = "https://symfony.com/download";
     license = licenses.unfree;
     maintainers = with maintainers; [ drupol ];
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" "aarch64-linux" "i686-linux" "x86_64-darwin" ];
   };
 }
diff --git a/pkgs/development/tools/taplo-cli/default.nix b/pkgs/development/tools/taplo-cli/default.nix
index e35613d659144..e19de1c3cdf1f 100644
--- a/pkgs/development/tools/taplo-cli/default.nix
+++ b/pkgs/development/tools/taplo-cli/default.nix
@@ -1,15 +1,15 @@
-{ fetchCrate, lib, openssl, pkg-config, rustPlatform, stdenv, Security }:
+{ lib, rustPlatform, fetchCrate, stdenv, pkg-config, openssl, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "taplo-cli";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-bGQLAANVahpiiiKKJPNmtr4uT5iKHqyLS5yVm+rSHPg=";
+    sha256 = "sha256-+0smR1FDeJMSa/LaRM2M53updt5p8717DEaFItNXCdM=";
   };
 
-  cargoSha256 = "sha256-T3fbG5HKOG90kawjQK8D0PIonB6ErNfR3hVIZ5N8zgA=";
+  cargoSha256 = "sha256-d7mysGYR72shXwvmDXr0oftSa+RtRoSbP++HBR40Mus=";
 
   nativeBuildInputs = lib.optional stdenv.isLinux pkg-config;
 
diff --git a/pkgs/development/tools/treefmt/default.nix b/pkgs/development/tools/treefmt/default.nix
index 174f2273edfc7..bd297154cc36c 100644
--- a/pkgs/development/tools/treefmt/default.nix
+++ b/pkgs/development/tools/treefmt/default.nix
@@ -1,16 +1,16 @@
 { lib, rustPlatform, fetchFromGitHub }:
 rustPlatform.buildRustPackage rec {
   pname = "treefmt";
-  version = "0.2.6";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "numtide";
     repo = "treefmt";
     rev = "v${version}";
-    sha256 = "sha256-hnrMy8iYoaeWxZlhO9L1kQW3OgL6jHL1MxJpbNFLHZk=";
+    sha256 = "sha256-PTT87Na4KpyN6a7T49vHHhSqSOF6JSWr5/jiys1Uzko=";
   };
 
-  cargoSha256 = "sha256-O7Ma6+Vniil5hIDd5JCWecTvkAjq7wMuuyfrzePDDq4=";
+  cargoSha256 = "sha256-Gvr6Zjd9Gvn2CyjNHlJaKPFYUViPezRwoDBeVelRlkU=";
 
   meta = {
     description = "one CLI to format the code tree";
diff --git a/pkgs/development/tools/turbogit/default.nix b/pkgs/development/tools/turbogit/default.nix
index 30ce29ffe665d..4499ec606e8fb 100644
--- a/pkgs/development/tools/turbogit/default.nix
+++ b/pkgs/development/tools/turbogit/default.nix
@@ -1,16 +1,16 @@
 { fetchFromGitHub, buildGoModule, lib, installShellFiles, libgit2, pkg-config }:
 buildGoModule rec {
   pname = "turbogit";
-  version = "3.0.1";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "b4nst";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-A1hVpapp6yIpUVnDQ1yLLHiYdLcQlr/JcTOmt5sr3Oo=";
+    sha256 = "sha256-BHgVJlitRUX/9zYPoK5XfRpzzTZRbLhQVZJcx8KVshk=";
   };
 
-  vendorSha256 = "sha256-1AEcBq7wiENWQ5HZEEXpIgA6Bf2T28zm/MwYTke/f9s=";
+  vendorSha256 = "sha256-280OcGXZQJD4G6z0b2WnWAS+v7XVptyf2WnlPjG99/0=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/tools/typos/default.nix b/pkgs/development/tools/typos/default.nix
index c5545633bb4ed..666326d8c0aed 100644
--- a/pkgs/development/tools/typos/default.nix
+++ b/pkgs/development/tools/typos/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "typos";
-  version = "1.3.0";
+  version = "1.3.3";
 
   src = fetchFromGitHub {
     owner = "crate-ci";
     repo = pname;
     rev = "v${version}";
-    sha256 = "Y+sIyueLdREoq/NR6LwppyhWxB8s0iBjdFaDUSKnlRw=";
+    sha256 = "sha256-OyH+fwE6ISGVol/0i56OfGhRf5Rw6WGx55MBZUN2frg=";
   };
 
-  cargoSha256 = "3oqmiHH9QU8uHs9q2CgE0uTvfyaRxV3rFBxkXxC5/Tw=";
+  cargoSha256 = "sha256-PH1LpdzeBGmMDP5l2dgRWcZo+PjA5LTNLLBqnMEeOZk=";
 
   meta = with lib; {
     description = "Source code spell checker";
diff --git a/pkgs/development/tools/vala-language-server/default.nix b/pkgs/development/tools/vala-language-server/default.nix
index 1d211e55ad87a..fc7af672664e4 100644
--- a/pkgs/development/tools/vala-language-server/default.nix
+++ b/pkgs/development/tools/vala-language-server/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vala-language-server";
-  version = "0.48.3";
+  version = "0.48.4";
 
   src = fetchFromGitHub {
     owner = "Prince781";
     repo = pname;
     rev = version;
-    sha256 = "sha256-MhVwK4RtEAJcwcJe71ganCaXQHa9jzxyknzc9kJi274=";
+    sha256 = "sha256-vCQ/j0DxG9sSEquPh9TtZ5hTADPh0d8sDIDSJdUDK4s=";
   };
 
   passthru = {
diff --git a/pkgs/development/tools/vala-lint/default.nix b/pkgs/development/tools/vala-lint/default.nix
index e91bceeae7a3f..9e6962dca3d55 100644
--- a/pkgs/development/tools/vala-lint/default.nix
+++ b/pkgs/development/tools/vala-lint/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , glib
 , meson
 , ninja
@@ -9,19 +10,30 @@
 , vala
 , gettext
 , wrapGAppsHook
+, unstableGitUpdater
 }:
 
 stdenv.mkDerivation rec {
-  pname = "vala-lint-unstable";
-  version = "2021-02-17";
+  pname = "vala-lint";
+  version = "unstable-2021-11-18";
 
   src = fetchFromGitHub {
     owner = "vala-lang";
     repo = "vala-lint";
-    rev = "5b06cc2341ae7e9f7f8c35c542ef78c36e864c30";
-    sha256 = "KwJ5sCp9ZrrxIqc6qi2+ZdHBt1esNOO1+uDkS+d9mW8=";
+    rev = "2db018056befba76136e6c69a78d905a128a6165";
+    sha256 = "sha256-bQaj2bETzl6ykgrpE2iLAvx691aGDLFteL/ulfoKuEk=";
   };
 
+  patches = [
+    # Fix build against vala-0.54.3+. Pull fix pending upstream
+    # inclusion: https://github.com/vala-lang/vala-lint/pull/155
+    (fetchpatch {
+      name = "vala-0.54.patch";
+      url = "https://github.com/vala-lang/vala-lint/commit/739f9a0b7d3e92db41eb32f2bfa527efdacc223b.patch";
+      sha256 = "sha256-1IbQu3AQXRCrrjoMZKhEOqzExmPAo1SQOFHa/IrqnNA=";
+    })
+  ];
+
   nativeBuildInputs = [
     gettext
     meson
@@ -37,6 +49,12 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  passthru = {
+    updateScript = unstableGitUpdater {
+      url = "https://github.com/vala-lang/vala-lint.git";
+    };
+  };
+
   meta = with lib; {
     homepage = "https://github.com/vala-lang/vala-lint";
     description = "Check Vala code files for code-style errors";
@@ -47,5 +65,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = teams.pantheon.members;
+    mainProgram = "io.elementary.vala-lint";
   };
 }
diff --git a/pkgs/development/tools/vultr-cli/default.nix b/pkgs/development/tools/vultr-cli/default.nix
index 0a4ebdb970146..2a0d881a9d12d 100644
--- a/pkgs/development/tools/vultr-cli/default.nix
+++ b/pkgs/development/tools/vultr-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "vultr-cli";
-  version = "2.9.0";
+  version = "2.11.3";
 
   src = fetchFromGitHub {
     owner = "vultr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-xgp+hNNStyakfS8h72CqRTeJVTgA4p4CkoCoTFmFRyI=";
+    sha256 = "sha256-UI7D5bvfyGsNa6Gd1XuFu1VgiIQJ/b0g6DQlsJbaocI=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/development/tools/wabt/default.nix b/pkgs/development/tools/wabt/default.nix
index 344ab9fe9f740..5568f8c457ac2 100644
--- a/pkgs/development/tools/wabt/default.nix
+++ b/pkgs/development/tools/wabt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wabt";
-  version = "1.0.24";
+  version = "1.0.25";
 
   src = fetchFromGitHub {
     owner = "WebAssembly";
     repo = "wabt";
     rev = version;
-    sha256 = "sha256-/blukivL6+xsnChxDp5gCr5w8S3bBuhO459YkLGxYmA=";
+    sha256 = "sha256-2go4HR/z96ONisXBGZDSIB5vXtHvRqBMhHOQTBL5G5w=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/tools/wasm-pack/default.nix b/pkgs/development/tools/wasm-pack/default.nix
index cf151733ef69b..575d18f9e7dca 100644
--- a/pkgs/development/tools/wasm-pack/default.nix
+++ b/pkgs/development/tools/wasm-pack/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasm-pack";
-  version = "0.10.1";
+  version = "0.10.2";
 
   src = fetchFromGitHub {
     owner = "rustwasm";
     repo = "wasm-pack";
     rev = "v${version}";
-    sha256 = "sha256-I5TxpJTSus3fXMV0We9SCVMEERS0wIdYvC8SHo8zEHY=";
+    sha256 = "sha256-nhO/SLeJTq2viDqsJCRNLbgjyDKRli3RWExUNzKT9ug=";
   };
 
-  cargoSha256 = "sha256-MmbQb2JYaDpLijKRAxzD9pR4gh+Eoem0MtfdiuRC7Tg=";
+  cargoSha256 = "sha256-6qrCHpg92IRPsf/dK6xcLGX8BLmqox3vgLRqsV4ubsY=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/wrangler/default.nix b/pkgs/development/tools/wrangler/default.nix
index 1a0bd1ffe13c9..dd49657859cc5 100644
--- a/pkgs/development/tools/wrangler/default.nix
+++ b/pkgs/development/tools/wrangler/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wrangler";
-  version = "1.19.5";
+  version = "1.19.6";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-r8Ni6r1NpHJ0UVEV+aG1RkGn0GQijTiWWZyQWJRXPi8=";
+    sha256 = "sha256-eFrILGq6rlm/u8RAxGHRaFgOT88I8T4inAKCoJpqPYA=";
   };
 
-  cargoSha256 = "sha256-GWBY4diq6VFpBcb1ROmJcXX/zJGwanja8eoaxxm+ij8=";
+  cargoSha256 = "sha256-8JgtaSROcS9DwcnK7Yky8Ol8AJPI7guU08iaz9yPC8g=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
index eadb34062f3e3..b0bf715e66e87 100644
--- a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
+++ b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
@@ -1,6 +1,7 @@
 { pkgs ? import <nixpkgs> {}
 , nodejs ? pkgs.nodejs
 , yarn ? pkgs.yarn
+, allowAliases ? pkgs.config.allowAliases or true
 }:
 
 let
@@ -9,6 +10,14 @@ let
   compose = f: g: x: f (g x);
   id = x: x;
   composeAll = builtins.foldl' compose id;
+
+  # https://docs.npmjs.com/files/package.json#license
+  # TODO: support expression syntax (OR, AND, etc)
+  getLicenseFromSpdxId = licstr:
+    if licstr == "UNLICENSED" then
+      lib.licenses.unfree
+    else
+      lib.getLicenseFromSpdxId licstr;
 in rec {
   # Export yarn again to make it easier to find out which yarn was used.
   inherit yarn;
@@ -30,16 +39,7 @@ in rec {
       non-null = builtins.filter (x: x != null) parts;
     in builtins.concatStringsSep "-" non-null;
 
-  # https://docs.npmjs.com/files/package.json#license
-  # TODO: support expression syntax (OR, AND, etc)
-  spdxLicense = licstr:
-    if licstr == "UNLICENSED" then
-      lib.licenses.unfree
-    else
-      lib.findFirst
-        (l: l ? spdxId && l.spdxId == licstr)
-        { shortName = licstr; }
-        (builtins.attrValues lib.licenses);
+  inherit getLicenseFromSpdxId;
 
   # Generates the yarn.nix from the yarn.lock file
   mkYarnNix = { yarnLock, flags ? [] }:
@@ -369,7 +369,7 @@ in rec {
         description = packageJSON.description or "";
         homepage = packageJSON.homepage or "";
         version = packageJSON.version or "";
-        license = if packageJSON ? license then spdxLicense packageJSON.license else "";
+        license = if packageJSON ? license then getLicenseFromSpdxId packageJSON.license else "";
       } // (attrs.meta or {});
     });
 
@@ -437,4 +437,7 @@ in rec {
 
     patchShebangs $out
   '';
+} // lib.optionalAttrs allowAliases {
+  # Aliases
+  spdxLicense = getLicenseFromSpdxId; # added 2021-12-01
 }
diff --git a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_yarn_lock.js b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_yarn_lock.js
index 86e92f852087b..3c067fc99aaa2 100755
--- a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_yarn_lock.js
+++ b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/internal/fixup_yarn_lock.js
@@ -25,14 +25,14 @@ const result = []
 
 readFile
   .on('line', line => {
-    const arr = line.match(/^ {2}resolved "([^#]+)#([^"]+)"$/)
+    const arr = line.match(/^ {2}resolved "([^#]+)(#[^"]+)?"$/)
 
     if (arr !== null) {
       const [_, url, shaOrRev] = arr
 
       const fileName = urlToName(url)
 
-      result.push(`  resolved "${fileName}#${shaOrRev}"`)
+      result.push(`  resolved "${fileName}${shaOrRev ?? ''}"`)
     } else {
       result.push(line)
     }
diff --git a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/generateNix.js b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/generateNix.js
index 1e7b4f3410028..5004e6f3903df 100644
--- a/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/generateNix.js
+++ b/pkgs/development/tools/yarn2nix-moretea/yarn2nix/lib/generateNix.js
@@ -69,7 +69,7 @@ function fetchgit(fileName, url, rev, branch, builtinFetchGit) {
 
 function fetchLockedDep(builtinFetchGit) {
   return function (pkg) {
-    const { nameWithVersion, resolved } = pkg
+    const { integrity, nameWithVersion, resolved } = pkg
 
     if (!resolved) {
       console.error(
@@ -102,14 +102,14 @@ function fetchLockedDep(builtinFetchGit) {
       return fetchgit(fileName, urlForGit, rev, branch || 'master', builtinFetchGit)
     }
 
-    const sha = sha1OrRev
+    const [algo, hash] = integrity ? integrity.split('-') : ['sha1', sha1OrRev]
 
     return `    {
       name = "${fileName}";
       path = fetchurl {
         name = "${fileName}";
         url  = "${url}";
-        sha1 = "${sha}";
+        ${algo} = "${hash}";
       };
     }`
   }
diff --git a/pkgs/development/tools/yq-go/default.nix b/pkgs/development/tools/yq-go/default.nix
index 5095d85d3ca38..433aefb4123d2 100644
--- a/pkgs/development/tools/yq-go/default.nix
+++ b/pkgs/development/tools/yq-go/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "yq-go";
-  version = "4.13.5";
+  version = "4.16.2";
 
   src = fetchFromGitHub {
     owner = "mikefarah";
     repo = "yq";
     rev = "v${version}";
-    sha256 = "sha256-ckcuA9jf8aFgcuts3VOE629WGkvBkdZP86PKXqzBvks=";
+    sha256 = "sha256-qJZDFyBSiaS0cUcfEz1P+b5Z6Tb//KKWeYqNJpdOh9Q=";
   };
 
-  vendorSha256 = "sha256-jlQ4TH5PiO/68ZFOzOVUTYKkVe9lQleVjZoP4adRrUI=";
+  vendorSha256 = "sha256-6J+pHWiswDRxCFdRj/d+6+QLxEF207vTyfnPq5tP30o=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/zprint/default.nix b/pkgs/development/tools/zprint/default.nix
index f00d9c29a4829..d28574637a146 100644
--- a/pkgs/development/tools/zprint/default.nix
+++ b/pkgs/development/tools/zprint/default.nix
@@ -1,40 +1,22 @@
-{ stdenv, lib, fetchurl, graalvm11-ce, glibcLocales }:
+{ lib, buildGraalvmNativeImage, fetchurl  }:
 
-stdenv.mkDerivation rec {
+buildGraalvmNativeImage rec {
   pname = "zprint";
-  version = "1.1.2";
+  version = "1.2.0";
 
   src = fetchurl {
-    url =
-      "https://github.com/kkinnear/${pname}/releases/download/${version}/${pname}-filter-${version}";
-    sha256 = "1wh8jyj7alfa6h0cycfwffki83wqb5d5x0p7kvgdkhl7jx7isrwj";
+    url = "https://github.com/kkinnear/${pname}/releases/download/${version}/${pname}-filter-${version}";
+    sha256 = "sha256-av1DsTijNzLdnBjTF2fEFqEM/X2VUVFvNuC09ikeDGM=";
   };
 
-  dontUnpack = true;
-
-  LC_ALL = "en_US.UTF-8";
-  nativeBuildInputs = [ graalvm11-ce glibcLocales ];
-
-  buildPhase = ''
-    native-image \
-    --no-server \
-    -J-Xmx7G \
-    -J-Xms4G \
-    -jar ${src} \
-    -H:Name=${pname} \
-    -H:EnableURLProtocols=https,http \
-    -H:+ReportExceptionStackTraces \
-    -H:CLibraryPath=${graalvm11-ce.lib}/lib \
-    ${lib.optionalString stdenv.isDarwin ''-H:-CheckToolchain''} \
-    --report-unsupported-elements-at-runtime \
-    --initialize-at-build-time \
-    --no-fallback
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    install ${pname} $out/bin
-  '';
+  extraNativeImageBuildArgs = [
+    "--no-server"
+    "-H:EnableURLProtocols=https,http"
+    "-H:+ReportExceptionStackTraces"
+    "--report-unsupported-elements-at-runtime"
+    "--initialize-at-build-time"
+    "--no-fallback"
+  ];
 
   meta = with lib; {
     description = "Clojure/EDN source code formatter and pretty printer";
@@ -45,7 +27,6 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://github.com/kkinnear/zprint";
     license = licenses.mit;
-    platforms = graalvm11-ce.meta.platforms;
     maintainers = with maintainers; [ stelcodes ];
   };
 }
diff --git a/pkgs/development/web/cypress/default.nix b/pkgs/development/web/cypress/default.nix
index 7522052ea9a6e..aea8ba6b19aab 100644
--- a/pkgs/development/web/cypress/default.nix
+++ b/pkgs/development/web/cypress/default.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cypress";
-  version = "8.3.1";
+  version = "9.2.0";
 
   src = fetchzip {
     url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip";
-    sha256 = "sha256-aBnF3Ij7oTws+0qOHwIIioxy1sJslb02wn8eGyKFt/c=";
+    sha256 = "sha256-NxmGMHAEVuFl/3YgcHSbg+yWHB2tRpVTWlP5p5nGtPc=";
   };
 
   # don't remove runtime deps
diff --git a/pkgs/development/web/deno/default.nix b/pkgs/development/web/deno/default.nix
index d27dac79b7b36..31a8ef404d9a3 100644
--- a/pkgs/development/web/deno/default.nix
+++ b/pkgs/development/web/deno/default.nix
@@ -17,15 +17,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "deno";
-  version = "1.16.2";
+  version = "1.17.1";
 
   src = fetchFromGitHub {
     owner = "denoland";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Qf1eDQ6ZbBGOQIDh2q8hKjsKB0Ri9Hjqq1AMOTanML0=";
+    sha256 = "sha256-XzpOJTLTiF4GrECC7ObFzoPusFM8mvhUGH9F52o88MY=";
   };
-  cargoSha256 = "sha256-ZA9pR8yQV5v/Xa/B7M01PIqrkBe1DVIXC5VURoE1EtI=";
+  cargoSha256 = "sha256-7uTxDkAyViNidSDH6bdUrtP96vQgyz+p2OlK+/FUJvc=";
 
   # Install completions post-install
   nativeBuildInputs = [ installShellFiles ];
@@ -43,6 +43,10 @@ rustPlatform.buildRustPackage rec {
   # Skipping until resolved
   doCheck = false;
 
+  preInstall = ''
+    find ./target -name libswc_common${stdenv.hostPlatform.extensions.sharedLibrary} -delete
+  '';
+
   postInstall = ''
     installShellCompletion --cmd deno \
       --bash <($out/bin/deno completions bash) \
diff --git a/pkgs/development/web/deno/librusty_v8.nix b/pkgs/development/web/deno/librusty_v8.nix
index 7539f41e3afe7..2e62e5bfe7aba 100644
--- a/pkgs/development/web/deno/librusty_v8.nix
+++ b/pkgs/development/web/deno/librusty_v8.nix
@@ -11,11 +11,11 @@ let
   };
 in
 fetch_librusty_v8 {
-  version = "0.34.0";
+  version = "0.36.0";
   shas = {
-    x86_64-linux = "sha256-Ly5bEfC993JH3/1VNpFu72Dv8kJYOFu+HIlEUJJcHps=";
-    aarch64-linux = "sha256-zazlvm4uyHD6Z+2JmeHS7gQ84C83KTWOGqNjSNPgoT0=";
-    x86_64-darwin = "sha256-RTgbtkCAuIj/ceJNbdA0yfKtFG8hSZgurEHEuUfJ7fk=";
-    aarch64-darwin = "sha256-xrOUPEZ4tj2BK6pDeoTpTKDx4E1KUEQ+lGMyduKDvBE=";
+    x86_64-linux = "sha256-Ala3aT5oXrY+xwzXfB+pLr6gxfoSHcMen9elCbdS9mU=";
+    aarch64-linux = "sha256-BQn/gsNnnuzEzmUzEvGZ8twP0QElgOiTgHe++o4OVCI=";
+    x86_64-darwin = "sha256-YNgGgkrMdiVMe960LHz7BOB+mb/tIXBwGTveT7zrRMs=";
+    aarch64-darwin = "sha256-g2bpxeBVVlsT87jR5VWBArM7yQ/F/MDLeiKHt4u5C5M=";
   };
 }
diff --git a/pkgs/development/web/flyctl/default.nix b/pkgs/development/web/flyctl/default.nix
index 1b0748182dfc5..7bef336a5f3e8 100644
--- a/pkgs/development/web/flyctl/default.nix
+++ b/pkgs/development/web/flyctl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "flyctl";
-  version = "0.0.250";
+  version = "0.0.260";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = "flyctl";
     rev = "v${version}";
-    sha256 = "sha256-QhEstfzx0zqC+dDgqfgmi1zOdc491YbzVAgXVaoTVUU=";
+    sha256 = "sha256-xjvZp6LAKVYgZpiSHlfZzZ/OBp/UutjvndM46okC0b4=";
   };
 
   preBuild = ''
@@ -17,7 +17,7 @@ buildGoModule rec {
 
   subPackages = [ "." ];
 
-  vendorSha256 = "sha256-JxEl23bwfvd8jNBYqIXBIu1pNu2rt+jvdEl0RdXCidE=";
+  vendorSha256 = "sha256-lwayHq4uByCkiwzRd3lPaSAW4XvKNMVNcN4Cfct74e8=";
 
   doCheck = false;
 
diff --git a/pkgs/development/web/insomnia/default.nix b/pkgs/development/web/insomnia/default.nix
index 31ec970b42514..041ceed528811 100644
--- a/pkgs/development/web/insomnia/default.nix
+++ b/pkgs/development/web/insomnia/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, makeWrapper, fetchurl, dpkg, alsa-lib, atk, cairo, cups, dbus, expat
-, fontconfig, freetype, gdk-pixbuf, glib, gnome2, pango, mesa, nspr, nss, gtk3, gtk2
+, fontconfig, freetype, gdk-pixbuf, glib, gnome2, pango, mesa, nspr, nss, gtk3
 , at-spi2-atk, gsettings-desktop-schemas, gobject-introspection, wrapGAppsHook
 , libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
 , libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb, nghttp2
@@ -12,16 +12,15 @@ let
     libudev0-shim
     nghttp2
     openssl
-    stdenv.cc.cc
   ];
 in stdenv.mkDerivation rec {
   pname = "insomnia";
-  version = "2021.4.1";
+  version = "2021.7.2";
 
   src = fetchurl {
     url =
       "https://github.com/Kong/insomnia/releases/download/core%40${version}/Insomnia.Core-${version}.deb";
-    sha256 = "sha256-74du6UQB1LfsnYF9tmx41KJNmlEVVL5H2W+YQR720FY=";
+    sha256 = "sha256-HkQWW4h2+XT5Xi4oiIiMPnrRKw+GIyjGMQ5B1NrBARU=";
   };
 
   nativeBuildInputs =
@@ -41,7 +40,6 @@ in stdenv.mkDerivation rec {
     glib
     gnome2.GConf
     pango
-    gtk2
     gtk3
     gsettings-desktop-schemas
     libX11
@@ -59,7 +57,6 @@ in stdenv.mkDerivation rec {
     mesa # for libgbm
     nspr
     nss
-    stdenv.cc.cc
   ];
 
   dontBuild = true;
diff --git a/pkgs/development/web/nodejs/nodejs.nix b/pkgs/development/web/nodejs/nodejs.nix
index 3f0f0e78e07a1..72615b356222c 100644
--- a/pkgs/development/web/nodejs/nodejs.nix
+++ b/pkgs/development/web/nodejs/nodejs.nix
@@ -58,6 +58,10 @@ let
     nativeBuildInputs = [ which pkg-config python ]
       ++ optionals stdenv.isDarwin [ xcbuild ];
 
+    outputs = [ "out" "libv8" ];
+    setOutputFlags = false;
+    moveToDev = false;
+
     configureFlags = let
       isCross = stdenv.hostPlatform != stdenv.buildPlatform;
       inherit (stdenv.hostPlatform) gcc isAarch32;
@@ -130,6 +134,35 @@ let
 
       # install the missing headers for node-gyp
       cp -r ${concatStringsSep " " copyLibHeaders} $out/include/node
+
+      # assemble a static v8 library and put it in the 'libv8' output
+      mkdir -p $libv8/lib
+      pushd out/Release/obj.target
+      find . -path "./torque_*/**/*.o" -or -path "./v8*/**/*.o" | sort -u >files
+      ${if stdenv.buildPlatform.isGnu then ''
+        ar -cqs $libv8/lib/libv8.a @files
+      '' else ''
+        cat files | while read -r file; do
+          ar -cqS $libv8/lib/libv8.a $file
+        done
+      ''}
+      popd
+
+      # copy v8 headers
+      cp -r deps/v8/include $libv8/
+
+      # create a pkgconfig file for v8
+      major=$(grep V8_MAJOR_VERSION deps/v8/include/v8-version.h | cut -d ' ' -f 3)
+      minor=$(grep V8_MINOR_VERSION deps/v8/include/v8-version.h | cut -d ' ' -f 3)
+      patch=$(grep V8_PATCH_LEVEL deps/v8/include/v8-version.h | cut -d ' ' -f 3)
+      mkdir -p $libv8/lib/pkgconfig
+      cat > $libv8/lib/pkgconfig/v8.pc << EOF
+      Name: v8
+      Description: V8 JavaScript Engine
+      Version: $major.$minor.$patch
+      Libs: -L$libv8/lib -lv8 -pthread -licui18n
+      Cflags: -I$libv8/include
+      EOF
     '' + optionalString (stdenv.isDarwin && enableNpm) ''
       sed -i 's/raise.*No Xcode or CLT version detected.*/version = "7.0.0"/' $out/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py
     '';
@@ -148,6 +181,7 @@ let
       maintainers = with maintainers; [ goibhniu gilligan cko marsam ];
       platforms = platforms.linux ++ platforms.darwin;
       mainProgram = "node";
+      knownVulnerabilities = optional (versionOlder version "12") "This NodeJS release has reached its end of life. See https://nodejs.org/en/about/releases/.";
     };
 
     passthru.python = python; # to ensure nodeEnv uses the same version
diff --git a/pkgs/development/web/nodejs/v12.nix b/pkgs/development/web/nodejs/v12.nix
index 54f077e71821d..f69915ddfa69b 100644
--- a/pkgs/development/web/nodejs/v12.nix
+++ b/pkgs/development/web/nodejs/v12.nix
@@ -8,7 +8,7 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "12.22.7";
-    sha256 = "0sszg3k5jd26hymqhs5328kvnxsb3x78sg4gpna9lrvh92s26snc";
+    version = "12.22.8";
+    sha256 = "0g0ihjzbd02izhmb4jzkdsr5788982wy8q2b4a1h04q8l4fwp197";
     patches = lib.optional stdenv.isDarwin ./bypass-xcodebuild.diff;
   }
diff --git a/pkgs/development/web/nodejs/v16.nix b/pkgs/development/web/nodejs/v16.nix
index a1b0f1ea8c42a..a0c978169ae1d 100644
--- a/pkgs/development/web/nodejs/v16.nix
+++ b/pkgs/development/web/nodejs/v16.nix
@@ -1,4 +1,4 @@
-{ callPackage, openssl, python3, enableNpm ? true }:
+{ callPackage, fetchpatch, openssl, python3, enableNpm ? true }:
 
 let
   buildNodejs = callPackage ./nodejs.nix {
@@ -8,7 +8,15 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "16.13.0";
-    sha256 = "1k6bgs83s5iaawi63dcc826g23lfqr13phwbbzwx0pllqcyln49j";
-    patches = [ ./disable-darwin-v8-system-instrumentation.patch ];
+    version = "16.13.1";
+    sha256 = "1bb3rjb2xxwn6f4grjsa7m1pycp0ad7y6vz7v2d7kbsysx7h08sc";
+    patches = [
+      ./disable-darwin-v8-system-instrumentation.patch
+      # Fixes node incorrectly building vendored OpenSSL when we want system OpenSSL.
+      # https://github.com/nodejs/node/pull/40965
+      (fetchpatch {
+        url = "https://github.com/nodejs/node/commit/65119a89586b94b0dd46b45f6d315c9d9f4c9261.patch";
+        sha256 = "sha256-dihKYEdK68sQIsnfTRambJ2oZr0htROVbNZlFzSAL+I=";
+      })
+    ];
   }
diff --git a/pkgs/development/web/nodejs/v17.nix b/pkgs/development/web/nodejs/v17.nix
index d1254ed48a29b..62db8e9f87d2f 100644
--- a/pkgs/development/web/nodejs/v17.nix
+++ b/pkgs/development/web/nodejs/v17.nix
@@ -1,4 +1,4 @@
-{ callPackage, python3, enableNpm ? true }:
+{ callPackage, fetchpatch, python3, enableNpm ? true }:
 
 let
   buildNodejs = callPackage ./nodejs.nix {
@@ -7,7 +7,15 @@ let
 in
 buildNodejs {
   inherit enableNpm;
-  version = "17.1.0";
-  sha256 = "1iyazwpgv3pxqh7zz3s87qwrbahifrj9sj1a2vwhkc4jxcvkz03b";
-  patches = [ ./disable-darwin-v8-system-instrumentation.patch ];
+  version = "17.3.0";
+  sha256 = "00sx046xmh75va7jh810npphnz3yrixifjhlj0jqysal93kc9r74";
+  patches = [
+    ./disable-darwin-v8-system-instrumentation.patch
+    # Fixes node incorrectly building vendored OpenSSL when we want system OpenSSL.
+    # https://github.com/nodejs/node/pull/40965
+    (fetchpatch {
+      url = "https://github.com/nodejs/node/commit/65119a89586b94b0dd46b45f6d315c9d9f4c9261.patch";
+      sha256 = "sha256-dihKYEdK68sQIsnfTRambJ2oZr0htROVbNZlFzSAL+I=";
+    })
+  ];
 }
diff --git a/pkgs/development/web/postman/default.nix b/pkgs/development/web/postman/default.nix
index 16f2682979994..5896bbf336e30 100644
--- a/pkgs/development/web/postman/default.nix
+++ b/pkgs/development/web/postman/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "postman";
-  version = "9.1.1";
+  version = "9.6.1";
 
   src = fetchurl {
     url = "https://dl.pstmn.io/download/version/${version}/linux64";
-    sha256 = "QqlA/8fEOwucs+nU6ahDh3GB64PdhY8JFWPiyEBxGsE=";
+    sha256 = "sha256-4nnOMMfxk4VP8t5eLGHrlHEIeDA+Tp1Hqfe8EWaXUik=";
     name = "${pname}.tar.gz";
   };
 
diff --git a/pkgs/development/web/twitter-bootstrap/default.nix b/pkgs/development/web/twitter-bootstrap/default.nix
index 13b1e7b95c448..a09dbc51128ec 100644
--- a/pkgs/development/web/twitter-bootstrap/default.nix
+++ b/pkgs/development/web/twitter-bootstrap/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bootstrap";
-  version = "5.1.0";
+  version = "5.1.3";
 
   src = fetchurl {
     url = "https://github.com/twbs/bootstrap/releases/download/v${version}/${pname}-${version}-dist.zip";
-    sha256 = "sha256-OVNCspdOM1BWDmV1LTaqtlc2UrEcxste95ouXoOtZLE=";
+    sha256 = "sha256-vewp21DsjR7My3AgIrgj3wozPhBYFMJksyG9UYuJxyE=";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/pkgs/games/0ad/game.nix b/pkgs/games/0ad/game.nix
index 4f7cf4457a7d3..34a2cdddac820 100644
--- a/pkgs/games/0ad/game.nix
+++ b/pkgs/games/0ad/game.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, perl, fetchurl, python2, fmt, libidn
+{ stdenv, lib, perl, fetchurl, python3, fmt, libidn
 , pkg-config, spidermonkey_78, boost, icu, libxml2, libpng, libsodium
 , libjpeg, zlib, curl, libogg, libvorbis, enet, miniupnpc
 , openal, libGLU, libGL, xorgproto, libX11, libXcursor, nspr, SDL2
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     sha256 = "1p9fa8f7sjb9c5wl3mawzyfqvgr614kdkhrj2k4db9vkyisws3fp";
   };
 
-  nativeBuildInputs = [ python2 perl pkg-config ];
+  nativeBuildInputs = [ python3 perl pkg-config ];
 
   buildInputs = [
     spidermonkey_78_6 boost icu libxml2 libpng libjpeg
diff --git a/pkgs/games/arx-libertatis/default.nix b/pkgs/games/arx-libertatis/default.nix
index 945ebf7b785e1..edeacdec2a1cf 100644
--- a/pkgs/games/arx-libertatis/default.nix
+++ b/pkgs/games/arx-libertatis/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake, zlib, boost
-, openal, glm, freetype, libGLU, SDL2, epoxy
+, openal, glm, freetype, libGLU, SDL2, libepoxy
 , dejavu_fonts, inkscape, optipng, imagemagick
 , withCrashReporter ? !stdenv.isDarwin
 ,   qtbase ? null
@@ -27,7 +27,7 @@ stdenv.mkDerivation {
 
   buildInputs = [
     zlib boost openal glm
-    freetype libGLU SDL2 epoxy
+    freetype libGLU SDL2 libepoxy
   ] ++ optionals withCrashReporter [ qtbase curl ]
     ++ optionals stdenv.isLinux    [ gdb ];
 
diff --git a/pkgs/games/asc/default.nix b/pkgs/games/asc/default.nix
index af3f9f403100d..4dc671f5c3c38 100644
--- a/pkgs/games/asc/default.nix
+++ b/pkgs/games/asc/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
       currently available for Windows and Linux.
     '';
 
-    homepage = "http://www.asc-hq.org/";
+    homepage = "https://www.asc-hq.org/";
 
     license = licenses.gpl2Plus;
 
diff --git a/pkgs/games/astromenace/default.nix b/pkgs/games/astromenace/default.nix
index 16b087d1e4d0f..556b276e210ed 100644
--- a/pkgs/games/astromenace/default.nix
+++ b/pkgs/games/astromenace/default.nix
@@ -1,8 +1,8 @@
 { fetchurl, lib, stdenv, cmake, xlibsWrapper, libGLU, libGL, SDL, openal, freealut, libogg, libvorbis, runtimeShell }:
 
 stdenv.mkDerivation rec {
-  version = "1.3.2";
   pname = "astromenace";
+  version = "1.4.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/openastromenace/astromenace-src-${version}.tar.bz2";
@@ -12,27 +12,29 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
   buildInputs = [ xlibsWrapper libGLU libGL SDL openal freealut libogg libvorbis ];
 
-  buildPhase = ''
-    cmake ./
-    make
+  postBuild = ''
     ./AstroMenace --pack --rawdata=../RAW_VFS_DATA
   '';
+
   installPhase = ''
     mkdir -p $out/bin
+
     cp AstroMenace $out
     cp gamedata.vfs $out
+
     cat > $out/bin/AstroMenace << EOF
     #!${runtimeShell}
     $out/AstroMenace --dir=$out
     EOF
+
     chmod 755 $out/bin/AstroMenace
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Hardcore 3D space shooter with spaceship upgrade possibilities";
     homepage = "https://www.viewizard.com/";
-    license = lib.licenses.gpl3;
-    platforms = lib.platforms.linux;
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
     mainProgram = "AstroMenace";
   };
 }
diff --git a/pkgs/games/augustus/default.nix b/pkgs/games/augustus/default.nix
index 4693e290da6af..c6258ddb24d76 100644
--- a/pkgs/games/augustus/default.nix
+++ b/pkgs/games/augustus/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "augustus";
-  version = "3.0.1";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "Keriew";
     repo = "augustus";
     rev = "v${version}";
-    sha256 = "03pmnwq6bahq854vh1vmv1vabb8cs0alca8f36id8dlz8bw95nik";
+    sha256 = "1axm4x3ca5r08sv1b4q8y9c15mkwqd3rnc8k09a2fn3plbk2p2j4";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/games/cataclysm-dda/stable.nix b/pkgs/games/cataclysm-dda/stable.nix
index 1429cdbf180e3..453f5ceacae19 100644
--- a/pkgs/games/cataclysm-dda/stable.nix
+++ b/pkgs/games/cataclysm-dda/stable.nix
@@ -10,17 +10,17 @@ let
   };
 
   self = common.overrideAttrs (common: rec {
-    version = "0.F-2";
+    version = "0.F-3";
 
     src = fetchFromGitHub {
       owner = "CleverRaven";
       repo = "Cataclysm-DDA";
       rev = version;
-      sha256 = "sha256-8AZOrO/Wxui+LqAZo8hURktMTycecIgOONUJmE3M+vM=";
+      sha256 = "sha256-2su1uQaWl9WG41207dRvOTdVKcQsEz/y0uTi9JX52uI=";
     };
 
     makeFlags = common.makeFlags ++ [
-      # Makefile declares version as 0.F, even under 0.F-2
+      # Makefile declares version as 0.F, with no minor release number
       "VERSION=${version}"
     ];
 
diff --git a/pkgs/games/cbonsai/default.nix b/pkgs/games/cbonsai/default.nix
index 0425f4f56b3b0..30abbba93f286 100644
--- a/pkgs/games/cbonsai/default.nix
+++ b/pkgs/games/cbonsai/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, lib, fetchFromGitLab, ncurses, pkg-config, nix-update-script }:
+{ stdenv, lib, fetchFromGitLab, ncurses, pkg-config, nix-update-script, scdoc }:
 
 stdenv.mkDerivation rec {
-  version = "1.2.1";
   pname = "cbonsai";
+  version = "1.3.1";
 
   src = fetchFromGitLab {
     owner = "jallbrit";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-kofJqMoBsvHrV3XfIQbSYO7OWpN7UgvrSs3WX3IVAJs=";
+    sha256 = "sha256-XFK6DiIb8CzVubTnEMkqRW8xZkX/SWjUsrfS+I7LOs8=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config scdoc ];
   buildInputs = [ ncurses ];
 
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
diff --git a/pkgs/games/cdogs-sdl/default.nix b/pkgs/games/cdogs-sdl/default.nix
index c34c9efb1673b..2b072a4475239 100644
--- a/pkgs/games/cdogs-sdl/default.nix
+++ b/pkgs/games/cdogs-sdl/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ nixinator ];
     platforms = platforms.unix;
+    broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/cdogs-sdl.x86_64-darwin
   };
 }
diff --git a/pkgs/games/chiaki/default.nix b/pkgs/games/chiaki/default.nix
index ef454e500064f..29ac2d0da3e3d 100644
--- a/pkgs/games/chiaki/default.nix
+++ b/pkgs/games/chiaki/default.nix
@@ -18,13 +18,13 @@
 
 mkDerivation rec {
   pname = "chiaki";
-  version = "2.1.0";
+  version = "2.1.1";
 
   src = fetchgit {
     url = "https://git.sr.ht/~thestr4ng3r/chiaki";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "1hgh2j71rch53cnpm3f195gpfgrb4hd0yqa810k3ikar8zl4h7sd";
+    sha256 = "sha256-VkCA8KS4EHuVSgoYt1YDT38hA1NEBckiBwRcgDZUSs4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/games/crispy-doom/default.nix b/pkgs/games/crispy-doom/default.nix
index fea0d620a7019..c507332399ab8 100644
--- a/pkgs/games/crispy-doom/default.nix
+++ b/pkgs/games/crispy-doom/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, autoreconfHook, pkg-config, SDL2, SDL2_mixer, SDL2_net, fetchFromGitHub, python2 }:
+{ lib, stdenv, autoreconfHook, pkg-config, SDL2, SDL2_mixer, SDL2_net, fetchFromGitHub, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "crispy-doom";
@@ -13,10 +13,10 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     sed -e 's#/games#/bin#g' -i src{,/setup}/Makefile.am
-    for script in $(grep -lr '^#!/usr/bin/env python$'); do patchShebangs $script; done
+    for script in $(grep -lr '^#!/usr/bin/env python3$'); do patchShebangs $script; done
   '';
 
-  nativeBuildInputs = [ autoreconfHook pkg-config python2 ];
+  nativeBuildInputs = [ autoreconfHook pkg-config python3 ];
   buildInputs = [ SDL2 SDL2_mixer SDL2_net ];
   enableParallelBuilding = true;
 
diff --git a/pkgs/games/ddnet/default.nix b/pkgs/games/ddnet/default.nix
index c639f31ae6485..eca0d10d7f988 100644
--- a/pkgs/games/ddnet/default.nix
+++ b/pkgs/games/ddnet/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ddnet";
-  version = "15.6.2";
+  version = "15.8";
 
   src = fetchFromGitHub {
     owner = "ddnet";
     repo = pname;
     rev = version;
-    sha256 = "sha256-nWouBe1qptDHedrSw5KDuGYyT7Bvf3cfwMynAfQALVY=";
+    sha256 = "sha256-segJVGH5ngSEhk0EpLHPORTNck4tIDCxJh9Ri6sa2dE=";
   };
 
   nativeBuildInputs = [ cmake ninja pkg-config ];
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://ddnet.tw";
     license = licenses.asl20;
-    maintainers = with maintainers; [ sirseruju legendofmiracles ];
+    maintainers = with maintainers; [ sirseruju lom ];
     mainProgram = "DDNet";
   };
 }
diff --git a/pkgs/games/dwarf-fortress/update.sh b/pkgs/games/dwarf-fortress/update.sh
index e36badc4199e5..0ef9a40c7a5d7 100755
--- a/pkgs/games/dwarf-fortress/update.sh
+++ b/pkgs/games/dwarf-fortress/update.sh
@@ -3,13 +3,13 @@
 
 # systems to generate hashes for
 systems='linux linux32 osx osx32
-	 win win_s win32 win32_s
+     win win_s win32 win32_s
          legacy legacy_s legacy32 legacy32_s'
 
 if [ $# -eq 0 ]; then
     versions="$(curl http://www.bay12games.com/dwarves/ \
-		   | grep 'DWARF FORTRESS CLASSIC ' \
-		   | sed 's/.*DWARF FORTRESS CLASSIC \([0-9.]*\) .*/\1/')"
+           | grep 'DWARF FORTRESS CLASSIC ' \
+           | sed 's/.*DWARF FORTRESS CLASSIC \([0-9.]*\) .*/\1/')"
 else
     versions="$@"
 fi
@@ -18,23 +18,23 @@ tmp1="$(mktemp)"
 tmp2="$(mktemp)"
 for version in $versions; do
     for system in $systems; do
-	echo -n $version,$system,
-	ver=$(echo $version | sed -e s,^0\.,, | tr . _)
-	if [[ "$system" = *win* ]] || [[ "$system" = *legacy* ]]; then
-	    ext=zip
-	else
-	    ext=tar.bz2
-	fi
-	nix-prefetch-url \
-	    http://www.bay12games.com/dwarves/df_${ver}_${system}.${ext}
+    echo -n $version,$system,
+    ver=$(echo $version | sed -e s,^0\.,, | tr . _)
+    if [[ "$system" = *win* ]] || [[ "$system" = *legacy* ]]; then
+        ext=zip
+    else
+        ext=tar.bz2
+    fi
+    nix-prefetch-url \
+        http://www.bay12games.com/dwarves/df_${ver}_${system}.${ext}
     done
 done | jq --slurp --raw-input \
-	  'split("\n")  | .[:-1] | map(split(",")) |
+      'split("\n")  | .[:-1] | map(split(",")) |
            map({ "version": .[0], "platform": .[1], "sha256": .[2] }) |
-	   group_by(.version) |
-	   map(map({"version": .version, (.platform): .sha256}) | add |
-	       {(.version): .} | map_values(del(.version))) | add' \
-	  > "$tmp1"
+       group_by(.version) |
+       map(map({"version": .version, (.platform): .sha256}) | add |
+           {(.version): .} | map_values(del(.version))) | add' \
+      > "$tmp1"
 
 # Append $tmp1 to game.json. There should be a better way to handle
 # this but all other attempts failed for me.
diff --git a/pkgs/games/easyrpg-player/default.nix b/pkgs/games/easyrpg-player/default.nix
index 81968d25e3dc5..83e40a4c3407e 100644
--- a/pkgs/games/easyrpg-player/default.nix
+++ b/pkgs/games/easyrpg-player/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     description = "RPG Maker 2000/2003 and EasyRPG games interpreter";
     homepage = "https://easyrpg.org/";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ yegortimoshenko ];
+    maintainers = with maintainers; [ yana ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/games/endgame-singularity/default.nix b/pkgs/games/endgame-singularity/default.nix
index d6b153018723c..e0cd581af8235 100644
--- a/pkgs/games/endgame-singularity/default.nix
+++ b/pkgs/games/endgame-singularity/default.nix
@@ -42,7 +42,14 @@ python3.pkgs.buildPythonApplication rec {
       A simulation of a true AI. Go from computer to computer, pursued by the
       entire world. Keep hidden, and you might have a chance
     '';
-    license = lib.licenses.gpl2;
+    # License details are in LICENSE.txt
+    license = with lib.licenses; [
+      gpl2Plus # most of the code, some translations
+      mit # recursive_fix_pickle, polib
+      cc-by-sa-30 # data and artwork, some translations
+      free # earth images from NASA, some fonts
+      cc0 # cick0.wav
+    ];
     maintainers = with lib.maintainers; [ fgaz ];
   };
 }
diff --git a/pkgs/games/endless-sky/default.nix b/pkgs/games/endless-sky/default.nix
index 0c9871037f85a..7806ae4906a2e 100644
--- a/pkgs/games/endless-sky/default.nix
+++ b/pkgs/games/endless-sky/default.nix
@@ -1,27 +1,26 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
+{ lib, stdenv, fetchFromGitHub
 , SDL2, libpng, libjpeg, glew, openal, scons, libmad
 }:
 
 stdenv.mkDerivation rec {
   pname = "endless-sky";
-  version = "0.9.12";
+  version = "0.9.14";
 
   src = fetchFromGitHub {
     owner = "endless-sky";
     repo = "endless-sky";
     rev = "v${version}";
-    sha256 = "1hly68ljm7yv01jfxyr7g6jivhj0igg6xx7vi92zqymick0hlh7a";
+    sha256 = "sha256-Vcck+zGcv39DXyhZF2DLUrXq3gDwkgL0NtPT5rVOpHs=";
   };
 
   patches = [
-    (fetchpatch {
-      name = "endless-sky-gcc10.patch";
-      url = "https://github.com/endless-sky/endless-sky/commit/bc3cab5992694547f9c6c067b5579ef06224781b.patch";
-      sha256 = "0v3913jyzhh1d81dxv738kcd3xhh7mrl06qnmj7a3ya2xd9pq4dk";
-    })
     ./fixes.patch
   ];
 
+  preBuild = ''
+    export AR="${stdenv.cc.targetPrefix}gcc-ar"
+  '';
+
   enableParallelBuilding = true;
 
   buildInputs = [
diff --git a/pkgs/games/eternity-engine/default.nix b/pkgs/games/eternity-engine/default.nix
index 421115561055a..cdff7fab1e127 100644
--- a/pkgs/games/eternity-engine/default.nix
+++ b/pkgs/games/eternity-engine/default.nix
@@ -1,27 +1,28 @@
-{ lib, stdenv, cmake, libGL, SDL, SDL_mixer, SDL_net, fetchFromGitHub, makeWrapper }:
+{ lib, stdenv, cmake, libGL, SDL2, SDL2_mixer, SDL2_net, fetchFromGitHub, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "eternity-engine";
-  version = "3.42.02";
+  version = "4.02.00";
   src = fetchFromGitHub {
     owner = "team-eternity";
     repo = "eternity";
     rev = version;
-    sha256 = "00kpq4k23hjmzjaymw3sdda7mqk8fjq6dzf7fmdal9fm7lfmj41k";
+    sha256 = "0dlz7axbiw003bgwk2hl43w8r2bwnxhi042i1xwdiwaja0cpnf5y";
+    fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ cmake makeWrapper ];
-  buildInputs = [ libGL SDL SDL_mixer SDL_net ];
+  buildInputs = [ libGL SDL2 SDL2_mixer SDL2_net ];
 
   installPhase = ''
-    install -Dm755 source/eternity $out/lib/eternity/eternity
+    install -Dm755 eternity/eternity $out/lib/eternity/eternity
     cp -r $src/base $out/lib/eternity/base
     mkdir $out/bin
     makeWrapper $out/lib/eternity/eternity $out/bin/eternity
   '';
 
   meta = {
-    homepage = "http://doomworld.com/eternity";
+    homepage = "https://doomworld.com/eternity";
     description = "New school Doom port by James Haley";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.linux;
diff --git a/pkgs/games/factorio/versions.json b/pkgs/games/factorio/versions.json
index 0c159d6773ec4..37dc97d5597b5 100644
--- a/pkgs/games/factorio/versions.json
+++ b/pkgs/games/factorio/versions.json
@@ -2,48 +2,48 @@
   "x86_64-linux": {
     "alpha": {
       "experimental": {
-        "name": "factorio_alpha_x64-1.1.45.tar.xz",
+        "name": "factorio_alpha_x64-1.1.50.tar.xz",
         "needsAuth": true,
-        "sha256": "1gqf8p253qwlsg66fzh6nb264ckmg2wrrvg7grcxxniki7whd759",
+        "sha256": "1sb3kvpj3kikr1bvm4si4f3dmj7873dhbz6zj57kin6d5mbmhq4p",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.45/alpha/linux64",
-        "version": "1.1.45"
+        "url": "https://factorio.com/get-download/1.1.50/alpha/linux64",
+        "version": "1.1.50"
       },
       "stable": {
-        "name": "factorio_alpha_x64-1.1.46.tar.xz",
+        "name": "factorio_alpha_x64-1.1.50.tar.xz",
         "needsAuth": true,
-        "sha256": "sha256-ikvtD5X0WRBVMsByXLXC5jtVZeIFQIsWlZ9vzomYdGU=",
+        "sha256": "1sb3kvpj3kikr1bvm4si4f3dmj7873dhbz6zj57kin6d5mbmhq4p",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.46/alpha/linux64",
-        "version": "1.1.46"
+        "url": "https://factorio.com/get-download/1.1.50/alpha/linux64",
+        "version": "1.1.50"
       }
     },
     "demo": {
       "stable": {
-        "name": "factorio_demo_x64-1.1.46.tar.xz",
+        "name": "factorio_demo_x64-1.1.50.tar.xz",
         "needsAuth": false,
-        "sha256": "sha256-CJVk1b3GXqs8xV2a7Pa6p6JxEOy86xAnRfz6kphCDHk=",
+        "sha256": "0i3r21i7s4yzjfqrwf82x87pfjg7d3bhkz3zqi0x398j9bykpw43",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.46/demo/linux64",
-        "version": "1.1.46"
+        "url": "https://factorio.com/get-download/1.1.50/demo/linux64",
+        "version": "1.1.50"
       }
     },
     "headless": {
       "experimental": {
-        "name": "factorio_headless_x64-1.1.45.tar.xz",
+        "name": "factorio_headless_x64-1.1.50.tar.xz",
         "needsAuth": false,
-        "sha256": "1ga35yricj5k2b00hwyb7jgpa0c4v73q3lj9sn424rjxixy6naxf",
+        "sha256": "0j75wbnszhlmyk655b2h8jd1lvmnplq44blixl959hh3lxvqn50m",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.45/headless/linux64",
-        "version": "1.1.45"
+        "url": "https://factorio.com/get-download/1.1.50/headless/linux64",
+        "version": "1.1.50"
       },
       "stable": {
-        "name": "factorio_headless_x64-1.1.46.tar.xz",
+        "name": "factorio_headless_x64-1.1.50.tar.xz",
         "needsAuth": false,
-        "sha256": "sha256-xJ/NBwQR6tdwoAz/1RZmcGwutqETWgzyAlpg5ls2ba0=",
+        "sha256": "0j75wbnszhlmyk655b2h8jd1lvmnplq44blixl959hh3lxvqn50m",
         "tarDirectory": "x64",
-        "url": "https://factorio.com/get-download/1.1.46/headless/linux64",
-        "version": "1.1.46"
+        "url": "https://factorio.com/get-download/1.1.50/headless/linux64",
+        "version": "1.1.50"
       }
     }
   }
diff --git a/pkgs/games/fheroes2/default.nix b/pkgs/games/fheroes2/default.nix
index e7b065d6741f7..bf40cd566cc28 100644
--- a/pkgs/games/fheroes2/default.nix
+++ b/pkgs/games/fheroes2/default.nix
@@ -4,20 +4,19 @@
 
 stdenv.mkDerivation rec {
   pname = "fheroes2";
-  version = "0.9.9";
+  version = "0.9.11";
 
   src = fetchFromGitHub {
     owner = "ihhub";
     repo = "fheroes2";
     rev = version;
-    sha256 = "sha256-vm9/jHRrG7qSP4GKksUrcK0qC3BW9LXlOnH4/pRyEww=";
+    sha256 = "sha256-p2FG4oWLTGflOoxsp8A+FpoVHfKiEw3DEnK8n3UiBtU=";
   };
 
   buildInputs = [ gettext libpng SDL2 SDL2_image SDL2_mixer SDL2_ttf zlib ];
 
   makeFlags = [
     "FHEROES2_STRICT_COMPILATION=1"
-    "RELEASE=1"
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/games/fishfight/default.nix b/pkgs/games/fishfight/default.nix
index 420d024d5f671..422901fd98648 100644
--- a/pkgs/games/fishfight/default.nix
+++ b/pkgs/games/fishfight/default.nix
@@ -2,6 +2,7 @@
 , rustPlatform
 , fetchFromGitHub
 , stdenv
+, SDL2
 , alsa-lib
 , libGL
 , libX11
@@ -9,25 +10,28 @@
 , AudioToolbox
 , Cocoa
 , CoreAudio
-, CoreFoundation
-, IOKit
 , OpenGL
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "fishfight";
-  version = "0.1";
+  version = "0.3";
 
   src = fetchFromGitHub {
     owner = "fishfight";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0mbg9zshyg9hlbsk5npslbnwjf8fh6gxszi5hxks380z080cjxs2";
+    sha256 = "sha256-kLdk7zTICZ8iawNttTsWUVKGvh2zykXVsMqUyYoGrBs=";
   };
 
-  cargoSha256 = "sha256-fZXqJ6a2erAQSgAZRwmkor94eMryjiq3gbY102pJb9Q=";
+  # use system sdl2 instead of bundled sdl2
+  cargoPatches = [ ./use-system-sdl2.patch ];
 
-  buildInputs = lib.optionals stdenv.isLinux [
+  cargoSha256 = "sha256-KQiqUzdsVMIjDmmreihekrrFoXeyNzd6ZbqApwH8B4Q=";
+
+  buildInputs =  [
+    SDL2
+  ] ++ lib.optionals stdenv.isLinux [
     alsa-lib
     libGL
     libX11
@@ -36,15 +40,11 @@ rustPlatform.buildRustPackage rec {
     AudioToolbox
     Cocoa
     CoreAudio
-    CoreFoundation
-    IOKit
     OpenGL
   ];
 
   postPatch = ''
-    substituteInPlace assets/levels/levels.toml --replace assets $out/share/assets
-    substituteInPlace src/gui.rs --replace \"assets \"$out/share/assets
-    substituteInPlace src/main.rs --replace \"assets \"$out/share/assets
+    substituteInPlace src/main.rs --replace ./assets $out/share/assets
   '';
 
   postInstall = ''
@@ -57,6 +57,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://fishfight.org/";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ figsoda ];
-    mainProgram = "fishgame";
   };
 }
diff --git a/pkgs/games/fishfight/use-system-sdl2.patch b/pkgs/games/fishfight/use-system-sdl2.patch
new file mode 100644
index 0000000000000..fcae36ce68b0e
--- /dev/null
+++ b/pkgs/games/fishfight/use-system-sdl2.patch
@@ -0,0 +1,39 @@
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -96,15 +96,6 @@ version = "1.0.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+ 
+-[[package]]
+-name = "cmake"
+-version = "0.1.46"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b7b858541263efe664aead4a5209a4ae5c5d2811167d4ed4ee0944503f8d2089"
+-dependencies = [
+- "cc",
+-]
+-
+ [[package]]
+ name = "color_quant"
+ version = "1.1.0"
+@@ -605,7 +596,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "94cb479353c0603785c834e2307440d83d196bf255f204f7f6741358de8d6a2f"
+ dependencies = [
+  "cfg-if",
+- "cmake",
+  "libc",
+  "version-compare",
+ ]
+diff --git a/Cargo.toml b/Cargo.toml
+index d2af29e..a813f30 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -14,7 +14,7 @@ macroquad-profiler = "0.1"
+ 
+ ff-particles = { version = "0.1", features = ["serde"] }
+ 
+-fishsticks = { version = "0.2.0", features = ["bundled-sdl2"] }
++fishsticks = "0.2.0"
+ 
+ stunclient = { git = "https://github.com/not-fl3/rust-stunclient", default-features = false }
+ 
diff --git a/pkgs/games/freeciv/default.nix b/pkgs/games/freeciv/default.nix
index 4b022615e6c0c..f5c1ff0ea3f49 100644
--- a/pkgs/games/freeciv/default.nix
+++ b/pkgs/games/freeciv/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "freeciv";
-  version = "2.6.5";
+  version = "2.6.6";
 
   src = fetchFromGitHub {
     owner = "freeciv";
     repo = "freeciv";
     rev = "R${lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "sha256-7KVtBGihABpcbUm5ac2fuBVaDvbucEJSREPulGUdnUE=";
+    sha256 = "sha256-D5t6sMpm09jbixs5MCghBeDbeuRbGmrrfWR91VNolRM=";
   };
 
   postPatch = ''
diff --git a/pkgs/games/freesweep/default.nix b/pkgs/games/freesweep/default.nix
index 7c17877e93416..b0d556914fa70 100644
--- a/pkgs/games/freesweep/default.nix
+++ b/pkgs/games/freesweep/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, ncurses, lib, stdenv,
+{ fetchFromGitHub, fetchpatch, ncurses, lib, stdenv,
   updateAutotoolsGnuConfigScriptsHook }:
 
 stdenv.mkDerivation rec {
@@ -12,6 +12,25 @@ stdenv.mkDerivation rec {
     sha256 = "0grkwmz9whg1vlnk6gbr0vv9i2zgbd036182pk0xj4cavaj9rpjb";
   };
 
+  patches = [
+    # Pull fix pending upstream inclusion for -fno-common toolchains
+    # like upstream gcc-10+ or clang-13:
+    #  https://github.com/rwestlund/freesweep/pull/8
+    (fetchpatch {
+      name = "fno-common.patch";
+      url = "https://github.com/rwestlund/freesweep/commit/a86245df4f3ff276a393f799d737d28a5cb0a5a8.patch";
+      sha256 = "13gs3bjb68ixyn9micza7gjd489rd2f5pdrv6sip9fsa6ya29xky";
+    })
+
+    # Pull fix pending upstream inclusion for ncurses-6.3:
+    #  https://github.com/rwestlund/freesweep/pull/10
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/rwestlund/freesweep/commit/b0aef2bd0b2409d1e859af7d29bf2d86fc7bcea7.patch";
+      sha256 = "1nzvmvxhjxgm8228h1zz16w62iy6lak5sibif1s1f6p1ssn659jp";
+    })
+  ];
+
   nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
   buildInputs = [ ncurses ];
 
diff --git a/pkgs/games/frogatto/data.nix b/pkgs/games/frogatto/data.nix
index d31826ad29593..3ca955a09c39d 100644
--- a/pkgs/games/frogatto/data.nix
+++ b/pkgs/games/frogatto/data.nix
@@ -7,9 +7,9 @@ stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "frogatto";
     repo = "frogatto";
-    # master branch as of 2020-12-17
-    rev = "8b0f2bc8f9f172f6225b8e0d806552cb94f35e2a";
-    sha256 = "09nrna9l1zj2ma2bazdhdvphwy570kfz4br4xgpwq21rsjrvrqiy";
+    # master branch as of 2021-11-29
+    rev = "82d3dafa0cfeaad016a427bdbc729eb9509748f1";
+    sha256 = "0fmwn584xl0vafcsh72b4xnryfqyjxk5zhmymg5i8rzp6h03n8xq";
   };
 
   installPhase = ''
diff --git a/pkgs/games/frogatto/engine.nix b/pkgs/games/frogatto/engine.nix
index 22aab537c2176..9e8ee6fe8dd86 100644
--- a/pkgs/games/frogatto/engine.nix
+++ b/pkgs/games/frogatto/engine.nix
@@ -4,21 +4,16 @@
 
 stdenv.mkDerivation {
   pname = "anura-engine";
-  version = "unstable-2021-05-24";
+  version = "unstable-2021-11-23";
 
   src = fetchFromGitHub {
     owner = "anura-engine";
     repo = "anura";
-    rev = "ed50bbfa68a4aa09438d95d39103ec39156d438f";
-    sha256 = "0bk0qklk9wwx3jr2kbrmansccn1nj962v5n2vlb5hxsrcv96s3dg";
+    rev = "816425df31624066e2815e26a25b1c5d3d355cb4";
+    sha256 = "1k7fnfgz003gcbyygv4aakhkkz3w3z9nyz7dlwz01xa6122zqyir";
     fetchSubmodules = true;
   };
 
-  postPatch = ''
-    substituteInPlace src/sys.cpp \
-      --replace mallinfo2 mallinfo
-  '';
-
   nativeBuildInputs = [
     which pkg-config
   ];
diff --git a/pkgs/games/gcompris/default.nix b/pkgs/games/gcompris/default.nix
index a930b1682d4cf..2b3ff2b5c2e58 100644
--- a/pkgs/games/gcompris/default.nix
+++ b/pkgs/games/gcompris/default.nix
@@ -18,11 +18,11 @@
 
 mkDerivation rec {
   pname = "gcompris";
-  version = "1.1";
+  version = "2.0";
 
   src = fetchurl {
     url = "http://gcompris.net/download/qt/src/gcompris-qt-${version}.tar.xz";
-    sha256 = "sha256-8Kj5R/7WwOuew7e9qgx2HWS8mnHX+cv8mhHmgXbm8q4=";
+    sha256 = "sha256-mrVGYI9IPyXqlXZN2MEDGTjIPUmlLwfaAo+zW4HjqMc=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/games/gnome-hexgl/default.nix b/pkgs/games/gnome-hexgl/default.nix
index 8e2fa41f4200e..c78bc69c26fd9 100644
--- a/pkgs/games/gnome-hexgl/default.nix
+++ b/pkgs/games/gnome-hexgl/default.nix
@@ -5,7 +5,7 @@
 , pkg-config
 , gthree
 , gsound
-, epoxy
+, libepoxy
 , gtk3
 }:
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     gthree
     gsound
-    epoxy
+    libepoxy
     gtk3
   ];
 
diff --git a/pkgs/games/gnonograms/default.nix b/pkgs/games/gnonograms/default.nix
index 7a696001a15fe..cfe1085ca27b9 100644
--- a/pkgs/games/gnonograms/default.nix
+++ b/pkgs/games/gnonograms/default.nix
@@ -13,17 +13,18 @@
 , gtk3
 , pantheon
 , libgee
+, libhandy
 }:
 
 stdenv.mkDerivation rec {
   pname = "gnonograms";
-  version = "1.4.5";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "jeremypw";
     repo = "gnonograms";
     rev = "v${version}";
-    sha256 = "1ly3inp6dvjrixdysz5hdfwlhbs49ks0lf8062z2iq6gaf8ivkb2";
+    sha256 = "sha256-2uXaybpCAm9cr0o7bqfhgD7mMNPwtv1X/PgnFnSDOl0=";
   };
 
   postPatch = ''
@@ -46,6 +47,7 @@ stdenv.mkDerivation rec {
     gtk3
     pantheon.granite
     libgee
+    libhandy
   ];
 
   meta = with lib; {
diff --git a/pkgs/games/gnuchess/default.nix b/pkgs/games/gnuchess/default.nix
index c150ba4ffee48..3acf6a8aa62de 100644
--- a/pkgs/games/gnuchess/default.nix
+++ b/pkgs/games/gnuchess/default.nix
@@ -1,23 +1,17 @@
-{lib, stdenv, fetchurl, flex, makeWrapper}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="gnuchess";
-    version="6.2.9";
-    name="${baseName}-${version}";
-    url="mirror://gnu/chess/${name}.tar.gz";
-    sha256="sha256-3fzCC911aQCpq2xCx9r5CiiTv38ZzjR0IM42uuvEGJA=";
+{ lib, stdenv, fetchurl, flex, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "gnuchess";
+  version = "6.2.9";
+
+  src = fetchurl {
+    url = "mirror://gnu/chess/gnuchess-${version}.tar.gz";
+    sha256 = "sha256-3fzCC911aQCpq2xCx9r5CiiTv38ZzjR0IM42uuvEGJA=";
   };
+
   buildInputs = [
     flex
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
-  inherit buildInputs;
   nativeBuildInputs = [ makeWrapper ];
 
   postInstall = ''
@@ -25,11 +19,10 @@ stdenv.mkDerivation {
     wrapProgram $out/bin/gnuchessu --set PATH "$out/bin"
   '';
 
-  meta = {
-    inherit (s) version;
+  meta = with lib; {
     description = "GNU Chess engine";
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.unix;
-    license = lib.licenses.gpl3Plus;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.unix;
+    license = licenses.gpl3Plus;
   };
 }
diff --git a/pkgs/games/gnuchess/default.upstream b/pkgs/games/gnuchess/default.upstream
deleted file mode 100644
index f19dca51addcd..0000000000000
--- a/pkgs/games/gnuchess/default.upstream
+++ /dev/null
@@ -1 +0,0 @@
-url https://ftp.gnu.org/gnu/chess/
diff --git a/pkgs/games/gotypist/default.nix b/pkgs/games/gotypist/default.nix
new file mode 100644
index 0000000000000..d7c9c33d7574a
--- /dev/null
+++ b/pkgs/games/gotypist/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "gotypist";
+  version = "0.8.2";
+
+  src = fetchFromGitHub {
+    owner = "pb-";
+    repo = "gotypist";
+    rev = "${version}";
+    sha256 = "0khl2f6bl121slw9mlf4qzsdarpk1v3vry11f3dvz7pb1q6zjj11";
+  };
+
+  vendorSha256 = null;
+
+  meta = with lib; {
+    description = "A touch-typing tutor";
+    longDescription = ''
+      A simple touch-typing tutor that follows Steve Yegge's methodology of
+      going in fast, slow, and medium cycles.
+    '';
+    homepage = "https://github.com/pb-/gotypist";
+    license = licenses.mit;
+    maintainers = with maintainers; [ pb- ];
+  };
+}
diff --git a/pkgs/games/gzdoom/default.nix b/pkgs/games/gzdoom/default.nix
index beba37c07aca0..e38294ff4014a 100644
--- a/pkgs/games/gzdoom/default.nix
+++ b/pkgs/games/gzdoom/default.nix
@@ -28,13 +28,13 @@ let
 
   gzdoom = stdenv.mkDerivation rec {
     pname = "gzdoom";
-    version = "4.7.0";
+    version = "4.7.1";
 
     src = fetchFromGitHub {
       owner = "coelckers";
       repo = "gzdoom";
       rev = "g${version}";
-      sha256 = "0xxxy7k2zr5g0vr1lnwv4n5amiwq1wln7r6hr37gmrjr72zkcjqn";
+      sha256 = "sha256-3wO83RgxzeJnoxykKQxb1S1GA6QZlhZMw6GrV3YEm/0=";
       fetchSubmodules = true;
     };
 
diff --git a/pkgs/games/heroic/default.nix b/pkgs/games/heroic/default.nix
new file mode 100644
index 0000000000000..e6413a87f2cab
--- /dev/null
+++ b/pkgs/games/heroic/default.nix
@@ -0,0 +1,38 @@
+{ lib, fetchurl, appimageTools, python }:
+
+let
+  pname = "heroic";
+  version = "1.10.3";
+  name = "${pname}-${version}";
+  src = fetchurl {
+    url = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases/download/v${version}/Heroic-${version}.AppImage";
+    sha256 = "sha256-0VQ5rSGGsEAsOLB4H/Hn2w7wCOrCSoVFzCBqNV5NyVE=";
+  };
+  appimageContents = appimageTools.extractType2 { inherit name src; };
+
+in appimageTools.wrapType2 {
+  inherit name src;
+
+  extraInstallCommands = ''
+    mv $out/bin/${name} $out/bin/${pname}
+
+    mkdir -p $out/share/${pname}
+    cp -a ${appimageContents}/locales $out/share/${pname}
+    cp -a ${appimageContents}/resources $out/share/${pname}
+
+    install -m 444 -D ${appimageContents}/heroic.desktop -t $out/share/applications
+
+    cp -a ${appimageContents}/usr/share/icons $out/share/
+
+    substituteInPlace $out/share/applications/heroic.desktop \
+      --replace 'Exec=AppRun' 'Exec=heroic'
+  '';
+
+  meta = with lib; {
+    description = "A Native GUI Epic Games Launcher for Linux, Windows and Mac";
+    homepage = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ wolfangaukang ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/games/keen4/builder.sh b/pkgs/games/keen4/builder.sh
deleted file mode 100644
index f39edc7899955..0000000000000
--- a/pkgs/games/keen4/builder.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env bash
-
-set -o nounset
-
-# shellcheck source=/dev/null
-source "${stdenv}/setup"
-
-mkdir -p "${out}/share/keen4"
-unzip -j "$dist" -d "${out}/share/keen4"
-
-mkdir -p "${out}/bin"
-cat > "${out}/bin/keen4" <<EOF
-#! $SHELL -e
-if test -z "\$HOME"; then
-    echo "HOME directory not set"
-    exit 1
-fi
-
-# Game wants to write in the current directory, but of course we can't
-# let it write in the Nix store.  So create symlinks to the game files
-# in ~/.keen4 and execute game from there.
-mkdir -p \$HOME/.keen4
-cd \$HOME/.keen4
-
-ln -sf "${out}/share/keen4/"* .
-
-"${dosbox}/bin/dosbox" ./KEEN4E.EXE -fullscreen -exit || true
-
-# Cleanup the symlinks.
-for i in *; do
-    if test -L "\$i"; then
-        rm "\$i"
-    fi
-done
-EOF
-chmod +x "${out}/bin/keen4"
diff --git a/pkgs/games/keen4/default.nix b/pkgs/games/keen4/default.nix
index 59bb30d627f7f..5e2468a8f9ea0 100644
--- a/pkgs/games/keen4/default.nix
+++ b/pkgs/games/keen4/default.nix
@@ -2,16 +2,45 @@
 
 stdenv.mkDerivation {
   name = "keen4";
-  builder = ./builder.sh;
 
-  dist = fetchurl {
+  src = fetchurl {
     url = "http://tarballs.nixos.org/keen4.zip";
     sha256 = "12rnc9ksl7v6l8wsxvr26ylkafzq80dbsa7yafzw9pqc8pafkhx1";
   };
 
   nativeBuildInputs = [ unzip ];
 
-  inherit dosbox;
+  installPhase = ''
+    mkdir -p $out/share/keen4
+    mv * $out/share/keen4
+
+    mkdir -p $out/bin
+    cat > $out/bin/keen4 <<EOF
+    #! $SHELL -e
+    if test -z "\$HOME"; then
+        echo "HOME directory not set"
+        exit 1
+    fi
+
+    # Game wants to write in the current directory, but of course we can't
+    # let it write in the Nix store.  So create symlinks to the game files
+    # in ~/.keen4 and execute game from there.
+    mkdir -p \$HOME/.keen4
+    cd \$HOME/.keen4
+
+    ln -sf $out/share/keen4/* .
+
+    ${dosbox}/bin/dosbox ./KEEN4E.EXE -fullscreen -exit || true
+
+    # Cleanup the symlinks.
+    for i in *; do
+        if test -L "\$i"; then
+            rm "\$i"
+        fi
+    done
+    EOF
+    chmod +x $out/bin/keen4
+  '';
 
   meta = {
     description = "Commander Keen Episode 4: Secret of the Oracle";
diff --git a/pkgs/games/legendary-gl/default.nix b/pkgs/games/legendary-gl/default.nix
index f09503ea8b9d3..cbdfbc22891be 100644
--- a/pkgs/games/legendary-gl/default.nix
+++ b/pkgs/games/legendary-gl/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonApplication rec {
   pname = "legendary-gl"; # Name in pypi
-  version = "0.20.10";
+  version = "0.20.18";
 
   src = fetchFromGitHub {
     owner = "derrod";
     repo = "legendary";
     rev = version;
-    sha256 = "sha256-/OttNHwS08gHx/ZpOuB6yxfK2cX3BbMeQLZC7iXKKrk=";
+    sha256 = "0d31c8grvcw7y3sh2x90cxhj612k6f491w2r12j1q33d2v9sqm4j";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/games/lunar-client/default.nix b/pkgs/games/lunar-client/default.nix
index df361c69b0491..2dc0e14daf8e1 100644
--- a/pkgs/games/lunar-client/default.nix
+++ b/pkgs/games/lunar-client/default.nix
@@ -2,7 +2,7 @@
 
 let
   name = "lunar-client";
-  version = "2.7.3";
+  version = "2.9.3";
 
   desktopItem = makeDesktopItem {
     name = "Lunar Client";
@@ -21,9 +21,10 @@ let
   src = fetchurl {
     url = "https://launcherupdates.lunarclientcdn.com/Lunar%20Client-${version}.AppImage";
     name = "lunar-client.AppImage";
-    sha256 = "0ihi937rrj677y9b377b4hhp9wsarbqwrdrd6k3lhzx3jyh2fynf";
+    sha256 = "sha256-2wlC+OAG2lvUB3yPxppNhhvNDZv4gxrNKpww9vAfStI=";
   };
-in appimageTools.wrapType1 rec {
+in
+appimageTools.wrapType1 rec {
   inherit name src;
 
   extraInstallCommands = ''
diff --git a/pkgs/games/mindustry/default.nix b/pkgs/games/mindustry/default.nix
index 2dbf32e825756..d28f2b1d1e7f8 100644
--- a/pkgs/games/mindustry/default.nix
+++ b/pkgs/games/mindustry/default.nix
@@ -3,7 +3,7 @@
 , makeDesktopItem
 , copyDesktopItems
 , fetchFromGitHub
-, gradleGen
+, gradle_6
 , jdk
 , perl
 
@@ -29,20 +29,20 @@ let
   # Note: when raising the version, ensure that all SNAPSHOT versions in
   # build.gradle are replaced by a fixed version
   # (the current one at the time of release) (see postPatch).
-  version = "126.1";
+  version = "126.2";
   buildVersion = makeBuildVersion version;
 
   Mindustry = fetchFromGitHub {
     owner = "Anuken";
     repo = "Mindustry";
     rev = "v${version}";
-    sha256 = "cyg4TofSSFLv8pM3zzvc0FxXMiTm+OIchBJF9PDQrkg=";
+    sha256 = "URmjmfzQAVVl6erbh3+FVFdN7vGTNwYKPtcrwtt9vkg=";
   };
   Arc = fetchFromGitHub {
     owner = "Anuken";
     repo = "Arc";
     rev = "v${version}";
-    sha256 = "uBIm82mt1etBB/HrNY6XGa7mmBfwd1E3RtqN8Rk5qeY=";
+    sha256 = "pUUak5P9t4RmSdT+/oH/8oo6l7rjIN08XDJ06TcUn8I=";
   };
   soloud = fetchFromGitHub {
     owner = "Anuken";
@@ -87,8 +87,7 @@ let
     popd
   '';
 
-  # The default one still uses jdk8 (#89731)
-  gradle_6 = (gradleGen.override (old: { java = jdk; })).gradle_6_9;
+  gradle = (gradle_6.override (old: { java = jdk; }));
 
   # fake build to pre-download deps into fixed-output derivation
   deps = stdenv.mkDerivation {
@@ -96,7 +95,7 @@ let
     inherit version unpackPhase patches;
     postPatch = cleanupMindustrySrc;
 
-    nativeBuildInputs = [ gradle_6 perl ];
+    nativeBuildInputs = [ gradle perl ];
     # Here we download dependencies for both the server and the client so
     # we only have to specify one hash for 'deps'. Deps can be garbage
     # collected after the build, so this is not really an issue.
@@ -114,7 +113,7 @@ let
     '';
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "Mw8LZ1iW6vn4RkBBs8SWHp6mo2Bhj7tMZjLbyuJUqSI=";
+    outputHash = "+7vSwQT6LwHgKE9DubISznq4G4DgvlnD7WaF1KywBzU=";
   };
 
 in
@@ -129,6 +128,15 @@ stdenv.mkDerivation rec {
     rm Arc/backends/backend-sdl/libs/linux64/libsdl-arc*.so
   '' + cleanupMindustrySrc;
 
+  # Propagate glew to prevent it from being cleaned up.
+  # Since a jar is a compressed archive, nix can't figure out that the dependency is actually in there,
+  # and will assume that it's not actually needed.
+  # This can cause issues.
+  # See https://github.com/NixOS/nixpkgs/issues/109798.
+  propagatedBuildInputs = lib.optionals enableClient [
+    glew.out
+  ];
+
   buildInputs = lib.optionals enableClient [
     SDL2
     glew
@@ -136,7 +144,7 @@ stdenv.mkDerivation rec {
   ];
   nativeBuildInputs = [
     pkg-config
-    gradle_6
+    gradle
     makeWrapper
     jdk
   ] ++ lib.optionals enableClient [
@@ -157,9 +165,11 @@ stdenv.mkDerivation rec {
   '' + optionalString enableClient ''
     gradle --offline --no-daemon jnigenBuild -Pbuildversion=${buildVersion}
     gradle --offline --no-daemon sdlnatives -Pdynamic -Pbuildversion=${buildVersion}
+    glewlib=${lib.getLib glew}/lib/libGLEW.so
+    sdllib=${lib.getLib SDL2}/lib/libSDL2.so
     patchelf ../Arc/backends/backend-sdl/libs/linux64/libsdl-arc*.so \
-      --add-needed ${glew.out}/lib/libGLEW.so \
-      --add-needed ${SDL2}/lib/libSDL2.so
+      --add-needed $glewlib \
+      --add-needed $sdllib
     gradle --offline --no-daemon desktop:dist -Pbuildversion=${buildVersion}
   '' + optionalString enableServer ''
     gradle --offline --no-daemon server:dist -Pbuildversion=${buildVersion}
@@ -191,8 +201,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.x86_64;
     # Hash mismatch on darwin:
     # https://github.com/NixOS/nixpkgs/pull/105590#issuecomment-737120293
-    broken = stdenv.isDarwin
-    # does not work with any maintained java version (https://github.com/Anuken/Mindustry/issues/5114)
-      || true;
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/games/minecraft-server/default.nix b/pkgs/games/minecraft-server/default.nix
index 2304acf446dfe..02054f1ad8b52 100644
--- a/pkgs/games/minecraft-server/default.nix
+++ b/pkgs/games/minecraft-server/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, nixosTests, jre_headless }:
 stdenv.mkDerivation {
   pname = "minecraft-server";
-  version = "1.17.1";
+  version = "1.18.1";
 
   src = fetchurl {
-    url = "https://launcher.mojang.com/v1/objects/a16d67e5807f57fc4e550299cf20226194497dc2/server.jar";
+    url = "https://launcher.mojang.com/v1/objects/125e5adf40c659fd3bce3e66e67a16bb49ecc1b9/server.jar";
     # sha1 because that comes from mojang via api
-    sha1 = "a16d67e5807f57fc4e550299cf20226194497dc2";
+    sha1 = "125e5adf40c659fd3bce3e66e67a16bb49ecc1b9";
   };
 
   preferLocalBuild = true;
diff --git a/pkgs/games/mudlet/default.nix b/pkgs/games/mudlet/default.nix
index 9d8898b119e19..aacc15d19b975 100644
--- a/pkgs/games/mudlet/default.nix
+++ b/pkgs/games/mudlet/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Crossplatform mud client";
-    homepage = "http://mudlet.org/";
+    homepage = "https://mudlet.org";
     maintainers = [ maintainers.wyvie maintainers.pstn ];
     platforms = platforms.linux;
     license = licenses.gpl2;
diff --git a/pkgs/games/nanosaur/default.nix b/pkgs/games/nanosaur/default.nix
new file mode 100644
index 0000000000000..d5ebee755da6a
--- /dev/null
+++ b/pkgs/games/nanosaur/default.nix
@@ -0,0 +1,48 @@
+{ lib, stdenv, fetchFromGitHub, SDL2, cmake, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "nanosaur";
+  version = "unstable-2021-12-03";
+
+  src = fetchFromGitHub {
+    owner = "jorio";
+    repo = pname;
+    rev = "b567a3e6d7fd1cbc43800cfaa1bd82f31c6d9fae";
+    sha256 = "sha256-P/o6uSwUV6O8u8XNXN9YyA8XlgEUkqGj3SC+oD2/GKQ=";
+    fetchSubmodules = true;
+  };
+
+  buildInputs = [
+    SDL2
+    cmake
+    makeWrapper
+  ];
+
+  configurePhase = ''
+    cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
+  '';
+
+  buildPhase = ''
+    cmake --build build
+  '';
+
+  installPhase = ''
+    mv build $out
+    makeWrapper $out/Nanosaur $out/bin/Nanosaur --run "cd $out"
+  '';
+
+  meta = with lib; {
+    description = "A port of Nanosaur, a 1998 Macintosh game by Pangea Software, for modern operating systems";
+    longDescription = ''
+      Nanosaur is a 1998 Macintosh game by Pangea Software.
+      In it, you’re a cybernetic dinosaur from the future who’s sent back in time 20 minutes before a giant asteroid hits the Earth.
+      And you get to shoot at T-Rexes with nukes.
+    '';
+    homepage = "https://github.com/jorio/Nanosaur";
+    license = with licenses; [
+      cc-by-sa-40
+    ];
+    maintainers = with maintainers; [ lux ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/games/odamex/default.nix b/pkgs/games/odamex/default.nix
index 8b58ec67eda43..7905cfaa3855d 100644
--- a/pkgs/games/odamex/default.nix
+++ b/pkgs/games/odamex/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "odamex";
-  version = "0.8.2";
+  version = "0.9.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-src-${version}.tar.bz2";
-    sha256 = "0d4v1l7kghkz1xz92jxlx50x3iy94z7ix1i3209m5j5545qzxrqq";
+    sha256 = "sha256-WBqO5fWzemw1kYlY192v0nnZkbIEVuWmjWYMy+1ODPQ=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/games/openrct2/default.nix b/pkgs/games/openrct2/default.nix
index ade022cefe9d7..4e07148761b7a 100644
--- a/pkgs/games/openrct2/default.nix
+++ b/pkgs/games/openrct2/default.nix
@@ -5,7 +5,7 @@
 }:
 
 let
-  openrct2-version = "0.3.5";
+  openrct2-version = "0.3.5.1";
 
   # Those versions MUST match the pinned versions within the CMakeLists.txt
   # file. The REPLAYS repository from the CMakeLists.txt is not necessary.
@@ -16,7 +16,7 @@ let
     owner = "OpenRCT2";
     repo = "OpenRCT2";
     rev = "v${openrct2-version}";
-    sha256 = "0xmj0qs49d1xlc8lbspr1vg66i0jdjlhcfxci72x6knjvd0vcgz0";
+    sha256 = "01v9nsabqjq8hjmyshcp7f5liagfq8sxx9i3yqqab7zk4iixag1h";
   };
 
   objects-src = fetchFromGitHub {
@@ -74,7 +74,7 @@ stdenv.mkDerivation {
   '';
 
   preConfigure = ''
-    # Verify that the correct version of the third party repositories is used.
+    # Verify that the correct version of each third party repository is used.
 
     grep -q '^set(OBJECTS_VERSION "${objects-version}")$' CMakeLists.txt \
       || (echo "OBJECTS_VERSION differs!"; exit 1)
@@ -87,6 +87,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Open source re-implementation of RollerCoaster Tycoon 2 (original game required)";
     homepage = "https://openrct2.io/";
+    downloadPage = "https://github.com/OpenRCT2/OpenRCT2/releases";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ oxzi ];
diff --git a/pkgs/games/openrw/default.nix b/pkgs/games/openrw/default.nix
index f1bcab2895fb0..95ec3d64cfb43 100644
--- a/pkgs/games/openrw/default.nix
+++ b/pkgs/games/openrw/default.nix
@@ -28,6 +28,11 @@ stdenv.mkDerivation {
     fetchSubmodules = true;
   };
 
+  postPatch = lib.optional (stdenv.cc.isClang && (lib.versionAtLeast stdenv.cc.version "9"))''
+    substituteInPlace cmake_configure.cmake \
+      --replace 'target_link_libraries(rw_interface INTERFACE "stdc++fs")' ""
+  '';
+
   nativeBuildInputs = [ cmake ];
 
   buildInputs = [
diff --git a/pkgs/games/osu-lazer/default.nix b/pkgs/games/osu-lazer/default.nix
index 48b2f87ab67b1..ab826c4f0b31b 100644
--- a/pkgs/games/osu-lazer/default.nix
+++ b/pkgs/games/osu-lazer/default.nix
@@ -32,9 +32,9 @@ in stdenv.mkDerivation rec {
   ];
 
   nugetDeps = linkFarmFromDrvs "${pname}-nuget-deps" (import ./deps.nix {
-    fetchNuGet = { name, version, sha256 }: fetchurl {
-      name = "nuget-${name}-${version}.nupkg";
-      url = "https://www.nuget.org/api/v2/package/${name}/${version}";
+    fetchNuGet = { pname, version, sha256 }: fetchurl {
+      name = "${pname}-${version}.nupkg";
+      url = "https://www.nuget.org/api/v2/package/${pname}/${version}";
       inherit sha256;
     };
   });
diff --git a/pkgs/games/osu-lazer/deps.nix b/pkgs/games/osu-lazer/deps.nix
index f809793a7eac9..96b257204f4fe 100644
--- a/pkgs/games/osu-lazer/deps.nix
+++ b/pkgs/games/osu-lazer/deps.nix
@@ -1,362 +1,362 @@
 { fetchNuGet }: [
-  (fetchNuGet { name = "AutoMapper"; version = "10.1.1"; sha256 = "1l1p9g7f7finr8laklbm7h2c45k0swl47iq0ik68js5s6pzvd6f8"; })
-  (fetchNuGet { name = "DeltaCompressionDotNet"; version = "2.0.0.0"; sha256 = "0zhj7m3zaf9wcg51385in9qg1xgkvp8yyzgq3r5k4sagm7y68aqy"; })
-  (fetchNuGet { name = "DiffPlex"; version = "1.7.0"; sha256 = "09a8hkbx99iwikfl8war629945yv7i8llj9480dbc4kyp6qqlr00"; })
-  (fetchNuGet { name = "DiscordRichPresence"; version = "1.0.175"; sha256 = "180sax976327d70qbinv07f65g3w2zbw80n49hckg8wd4rw209vd"; })
-  (fetchNuGet { name = "FFmpeg.AutoGen"; version = "4.3.0.1"; sha256 = "0n6x57mnnvcjnrs8zyvy07h5zm4bcfy9gh4n4bvd9fx5ys4pxkvv"; })
-  (fetchNuGet { name = "Fody"; version = "6.5.3"; sha256 = "14yj3xj4jh2ayl8jsyypxv9af0xbw30946kn14m0bfmlyl027wkp"; })
-  (fetchNuGet { name = "HidSharpCore"; version = "1.2.1.1"; sha256 = "1zkndglmz0s8rblfhnqcvv90rkq2i7lf4bc380g7z8h1avf2ikll"; })
-  (fetchNuGet { name = "HtmlAgilityPack"; version = "1.11.37"; sha256 = "1q0kkw2rhvxi67hqv18ziv2dvmhi7f68745gcs1253mwv5da4vy6"; })
-  (fetchNuGet { name = "Humanizer"; version = "2.11.10"; sha256 = "057pqzvdxsbpnnc5f1xkqg7j3ywp68ggia3w74fgqp0158dm6rdk"; })
-  (fetchNuGet { name = "Humanizer.Core"; version = "2.11.10"; sha256 = "0z7kmd5rh1sb6izq0vssk6c2p63n00xglk45s7ga9z18z9aaskxv"; })
-  (fetchNuGet { name = "Humanizer.Core"; version = "2.2.0"; sha256 = "08mzg65y9d3zvq16rsmpapcdan71ggq2mpks6k777h3wlm2sh3p5"; })
-  (fetchNuGet { name = "Humanizer.Core.af"; version = "2.11.10"; sha256 = "18fiixfvjwn8m1i8z2cz4aqykzylvfdqmmpwc2zcd8sr1a2xm86z"; })
-  (fetchNuGet { name = "Humanizer.Core.ar"; version = "2.11.10"; sha256 = "009fpm4jd325izm82ipipsvlwd31824gvskda68bdwi4yqmycz4p"; })
-  (fetchNuGet { name = "Humanizer.Core.az"; version = "2.11.10"; sha256 = "144b9diwprabxwgi5a98k5iy95ajq4p7356phdqi2lhzwbz7b6a9"; })
-  (fetchNuGet { name = "Humanizer.Core.bg"; version = "2.11.10"; sha256 = "1b9y40gvq2kwnj5wa40f8cbywv79jkajcwknagrgr27sykpfadl2"; })
-  (fetchNuGet { name = "Humanizer.Core.bn-BD"; version = "2.11.10"; sha256 = "18pn4jcp36ygcx283l3fi9bs5d7q1a384b72a10g5kl0qckn88ay"; })
-  (fetchNuGet { name = "Humanizer.Core.cs"; version = "2.11.10"; sha256 = "03crw1lnzp32v2kcdmllkrsqh07r4ggw9gyc96qw7cv0nk5ch1h8"; })
-  (fetchNuGet { name = "Humanizer.Core.da"; version = "2.11.10"; sha256 = "0glby12zra3y3yiq4cwq1m6wjcjl8f21v8ghi6s20r48glm8vzy9"; })
-  (fetchNuGet { name = "Humanizer.Core.de"; version = "2.11.10"; sha256 = "0a35xrm1f9p74x0fkr52bw9sd54vdy9d5rnvf565yh8ww43xfk7b"; })
-  (fetchNuGet { name = "Humanizer.Core.el"; version = "2.11.10"; sha256 = "0bhwwdx5vc48zikdsbrkghdhwahxxc2lkff0yaa5nxhbhasl84h8"; })
-  (fetchNuGet { name = "Humanizer.Core.es"; version = "2.11.10"; sha256 = "07bw07qy8nyzlgxl7l2lxv9f78qmkfppgzx7iyq5ikrcnpvc7i9q"; })
-  (fetchNuGet { name = "Humanizer.Core.fa"; version = "2.11.10"; sha256 = "00d4hc1pfmhfkc5wmx9p7i00lgi4r0k6wfcns9kl1syjxv3bs5f2"; })
-  (fetchNuGet { name = "Humanizer.Core.fi-FI"; version = "2.11.10"; sha256 = "0z4is7pl5jpi4pfdvd2zvx5mp00bj26d9l9ksqyc0liax8nfzyik"; })
-  (fetchNuGet { name = "Humanizer.Core.fr"; version = "2.11.10"; sha256 = "0sybpg6kbbhrnk7gxcdk7ppan89lsfqsdssrg4i1dm8w48wgicap"; })
-  (fetchNuGet { name = "Humanizer.Core.fr-BE"; version = "2.11.10"; sha256 = "1s25c86nl9wpsn6fydzwv4rfmdx5sm0vgyd7xhw5344k20gazvhv"; })
-  (fetchNuGet { name = "Humanizer.Core.he"; version = "2.11.10"; sha256 = "1nx61qkjd6p9r36dmnm4942khyv35fpdqmb2w69gz6463g4d7z29"; })
-  (fetchNuGet { name = "Humanizer.Core.hr"; version = "2.11.10"; sha256 = "02jhcyj72prkqsjxyilv04drm0bknqjh2r893jlbsfi9vjg2zay3"; })
-  (fetchNuGet { name = "Humanizer.Core.hu"; version = "2.11.10"; sha256 = "0yb6ly4s1wdyaf96h2dvifqyb575aid6irwl3qx8gcvrs0xpcxdp"; })
-  (fetchNuGet { name = "Humanizer.Core.hy"; version = "2.11.10"; sha256 = "0b7vaqldn7ca3xi4gkvkhjk900kw2zwb0m0d20bg45a83zdlx79c"; })
-  (fetchNuGet { name = "Humanizer.Core.id"; version = "2.11.10"; sha256 = "1yqxirknwga4j18k7ixwgqxlv20479afanhariy3c5mkwvglsr9b"; })
-  (fetchNuGet { name = "Humanizer.Core.it"; version = "2.11.10"; sha256 = "1skwgj5a6kkx3pm9w4f29psch69h1knmwbkdydlmx13h452p1w4l"; })
-  (fetchNuGet { name = "Humanizer.Core.ja"; version = "2.11.10"; sha256 = "1wpc3yz9v611dqbw8j5yimk8dpz0rvpnls4rmlnp1m47gavpj8x4"; })
-  (fetchNuGet { name = "Humanizer.Core.ko-KR"; version = "2.11.10"; sha256 = "1df0kd7vwdc3inxfkb3wsl1aw3d6vbab99dzh08p4m04g7i2c1a9"; })
-  (fetchNuGet { name = "Humanizer.Core.ku"; version = "2.11.10"; sha256 = "17b66xfgwjr0sffx0hw4c6l90h43z7ffylrs26hgav0n110q2nwg"; })
-  (fetchNuGet { name = "Humanizer.Core.lv"; version = "2.11.10"; sha256 = "0czxx4b9g0w7agykdl82wds09zasa9y58dmgjm925amlfz4wkyzs"; })
-  (fetchNuGet { name = "Humanizer.Core.ms-MY"; version = "2.11.10"; sha256 = "0kix95nbw94fx0dziyz80y59i7ii7d21b63f7f94niarljjq36i3"; })
-  (fetchNuGet { name = "Humanizer.Core.mt"; version = "2.11.10"; sha256 = "1rwy6m22pq65gxn86xlr9lv818fp5kb0wz98zxxfljc2iviw1f4p"; })
-  (fetchNuGet { name = "Humanizer.Core.nb"; version = "2.11.10"; sha256 = "0ra2cl0avvv4sylha7z76jxnb4pdiqfbpr5m477snr04dsjxd9q9"; })
-  (fetchNuGet { name = "Humanizer.Core.nb-NO"; version = "2.11.10"; sha256 = "1qszib03pvmjkrg8za7jjd2vzrs9p4fn2rmy82abnzldkhvifipq"; })
-  (fetchNuGet { name = "Humanizer.Core.nl"; version = "2.11.10"; sha256 = "1i9bvy0i2yyasl9mgxiiwrkmfpm2c53d3wwdp9270r6120sxyy63"; })
-  (fetchNuGet { name = "Humanizer.Core.pl"; version = "2.11.10"; sha256 = "0kggh4wgcic7wzgxy548n6w61schss2ccf9kz8alqshfi42xifby"; })
-  (fetchNuGet { name = "Humanizer.Core.pt"; version = "2.11.10"; sha256 = "09j90s8x1lpvhfiy3syfnj8slkgcacf3xjy3pnkgxa6g4mi4f4bd"; })
-  (fetchNuGet { name = "Humanizer.Core.ro"; version = "2.11.10"; sha256 = "1jgidmqfly91v1k22gn687mfql5bz7gjzp1aapi93vq5x635qssy"; })
-  (fetchNuGet { name = "Humanizer.Core.ru"; version = "2.11.10"; sha256 = "13mmlh0ibxfyc85xrz3vx4mcg56mkzqql184iwdryq94p0g5ahil"; })
-  (fetchNuGet { name = "Humanizer.Core.sk"; version = "2.11.10"; sha256 = "04ja06y5jaz1jwkwn117wx9cib04gpbi0vysn58a8sd5jrxmxai5"; })
-  (fetchNuGet { name = "Humanizer.Core.sl"; version = "2.11.10"; sha256 = "05hxk9v3a7fn7s4g9jp5zxk2z6a33b9fkavyb1hjqnl2i37q2wja"; })
-  (fetchNuGet { name = "Humanizer.Core.sr"; version = "2.11.10"; sha256 = "0x6l2msimrx72iywa1g0rqklgy209sdwg0r77i2lz0s1rvk5klm5"; })
-  (fetchNuGet { name = "Humanizer.Core.sr-Latn"; version = "2.11.10"; sha256 = "01hdyn7mmbyy7f3aglawgnsj3nblcdpqjgzdcvniy73l536mira0"; })
-  (fetchNuGet { name = "Humanizer.Core.sv"; version = "2.11.10"; sha256 = "0cbgchivw3d5ndib1zmgzmnymhyvfh9g9f0hijc860g5vaa9fkvh"; })
-  (fetchNuGet { name = "Humanizer.Core.th-TH"; version = "2.11.10"; sha256 = "1v7f9x3b04iwhz9lb3ir8az8128nvcw1gi4park5zh3fg0f3mni0"; })
-  (fetchNuGet { name = "Humanizer.Core.tr"; version = "2.11.10"; sha256 = "02c4ky0dskxkdrkc7vy8yzmvwjr1wqll1kzx0k21afhlx8xynjd4"; })
-  (fetchNuGet { name = "Humanizer.Core.uk"; version = "2.11.10"; sha256 = "0900ilhwj8yvhyzpg1pjr7f5vrl62wp8dsnhk4c2igs20qvnv079"; })
-  (fetchNuGet { name = "Humanizer.Core.uz-Cyrl-UZ"; version = "2.11.10"; sha256 = "09b7p2m8y49j49ckrmx2difgyj6y7fm2mwca093j8psxclsykcyr"; })
-  (fetchNuGet { name = "Humanizer.Core.uz-Latn-UZ"; version = "2.11.10"; sha256 = "029kvkawqhlln52vpjpvr52dhr18ylk01cgsj2z8lxnqaka0q9hk"; })
-  (fetchNuGet { name = "Humanizer.Core.vi"; version = "2.11.10"; sha256 = "0q4d47plsj956ivn82qwyidfxppjr9dp13m8c66aamrvhy4q8ny5"; })
-  (fetchNuGet { name = "Humanizer.Core.zh-CN"; version = "2.11.10"; sha256 = "01dy5kf6ai8id77px92ji4kcxjc8haj39ivv55xy1afcg3qiy7mh"; })
-  (fetchNuGet { name = "Humanizer.Core.zh-Hans"; version = "2.11.10"; sha256 = "16gcxgw2g6gck3nc2hxzlkbsg7wkfaqsjl87kasibxxh47zdqqv2"; })
-  (fetchNuGet { name = "Humanizer.Core.zh-Hant"; version = "2.11.10"; sha256 = "1rjg2xvkwjjw3c7z9mdjjvbnl9lcvvhh4fr7l61rla2ynzdk46cj"; })
-  (fetchNuGet { name = "JetBrains.Annotations"; version = "2021.3.0"; sha256 = "01ssylllbwpana2w3iybi533zlvcsbhzjc8kr0g4kg307kjbfn8v"; })
-  (fetchNuGet { name = "ManagedBass"; version = "3.0.0"; sha256 = "1yh1s36w465z8gcj4xs6q048g63z7m3nyfy1vvw1lgh7k6hqqgma"; })
-  (fetchNuGet { name = "ManagedBass.Fx"; version = "3.0.0"; sha256 = "0sck1wmjlcy8q941bamk1i0k4yrklyilsgg6c832xdh96sdc049s"; })
-  (fetchNuGet { name = "ManagedBass.Mix"; version = "3.0.0"; sha256 = "0brnm0ry96b81hgffbaj52s53bsn9c8cx4q24j0whsvmcqqxhs4v"; })
-  (fetchNuGet { name = "managed-midi"; version = "1.9.14"; sha256 = "025jh146zy98699y4civ7nxlkx312lwkl4sr8pha626q7q1kg89h"; })
-  (fetchNuGet { name = "Markdig"; version = "0.26.0"; sha256 = "1pg0yica8h1c2kx10pqzc5iclmlfll5wbw1bxa8l251w1qnfglv2"; })
-  (fetchNuGet { name = "MessagePack"; version = "2.3.85"; sha256 = "0n7kv4i6knhv1dd35cv45sfpidsiy9albfdmbrdschykd1mzxmiy"; })
-  (fetchNuGet { name = "MessagePack.Annotations"; version = "2.3.85"; sha256 = "0axjgy9r533bw00lflnc6acjyza76mf2x1nn6fw7qacvak9rqxm3"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "5.0.12"; sha256 = "1asph5v7kgmscfgsyv9gg7cwvg52gnm6m0ldm2m4pfkpsxqyp2mi"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Connections.Abstractions"; version = "5.0.11"; sha256 = "0x6c6m8s4mq1j21sys8j1xp8sqvy5n3shcpcm0yyx4r2ld2cpdkr"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Http.Connections.Client"; version = "5.0.11"; sha256 = "1b60rhlbn8s4c39nl2kb1xfq0m3kzy407hdvz2s5r9qc8y9p55ps"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Http.Connections.Common"; version = "5.0.11"; sha256 = "1rq6lildicnz6ngrf1m46ynya0hbn0hzazdqp6c3lkmkw3pgd8wp"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Http.Features"; version = "5.0.11"; sha256 = "0n09fldmy60ggffznfwzr99hfpa0p9qxq4hp2zy4j94cmqkqm1pg"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.SignalR.Client"; version = "5.0.11"; sha256 = "1iyxkr2lks5xfay4h70z94dnjm5dpbygyyi9krrx1lin1na235ly"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.SignalR.Client.Core"; version = "5.0.11"; sha256 = "13hpp6sq0ad56v1l09gq4mnmj5y1f9lykd2x12hjrdpk3g7gqdix"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.SignalR.Common"; version = "5.0.11"; sha256 = "1vsskslaz7428f13q0hjf81hvfxip9wsc53z5j37ysk9qmixlnyd"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.SignalR.Protocols.Json"; version = "5.0.11"; sha256 = "0vdr2n9lfjybkv0m21lhpnxv0shlyfnyffv32vziiglhssdza15g"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.SignalR.Protocols.MessagePack"; version = "5.0.11"; sha256 = "0w60z54wxv1nndv7mz9rqswdh8k4rxmgihnxkirp4gr0idr7ln7j"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson"; version = "5.0.11"; sha256 = "1qrmrkdrzm4bn5zq6a1dk88rpb6pajcs6jh23h43yny68y80jcnr"; })
-  (fetchNuGet { name = "Microsoft.Bcl.AsyncInterfaces"; version = "1.0.0"; sha256 = "00dx5armvkqjxvkldz3invdlck9nj7w21dlsr2aqp1rqbyrbsbbh"; })
-  (fetchNuGet { name = "Microsoft.Bcl.AsyncInterfaces"; version = "1.1.0"; sha256 = "1dq5yw7cy6s42193yl4iqscfw5vzkjkgv0zyy32scr4jza6ni1a1"; })
-  (fetchNuGet { name = "Microsoft.Bcl.AsyncInterfaces"; version = "5.0.0"; sha256 = "0cp5jbax2mf6xr3dqiljzlwi05fv6n9a35z337s92jcljiq674kf"; })
-  (fetchNuGet { name = "Microsoft.Build.Framework"; version = "16.5.0"; sha256 = "1xgr02r7s9i6s70n237hss4yi9zicssia3zd2ny6s8vyxb7jpdyb"; })
-  (fetchNuGet { name = "Microsoft.Build.Locator"; version = "1.4.1"; sha256 = "0j119rri7a401rca67cxdyrn3rprzdl1b2wrblqc23xsff1xvlrx"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.2"; sha256 = "162vb5894zxps0cf5n9gc08an7gwybzz87allx3lsszvllr9ldx4"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.BannedApiAnalyzers"; version = "3.3.3"; sha256 = "1z6x0d8lpcfjr3sxy25493i17vvcg5bsay6c03qan6mnj5aqzw2k"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.Common"; version = "3.11.0"; sha256 = "0pwidgg4ifm7cirdy3hf61dyvg6lk4vgb6q7lyb4y0h0b6mvkrcl"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.CSharp"; version = "3.11.0"; sha256 = "1h16b7dsp1mq7d7picyfhkssqr6xiyywi5x1fd4jwclyrvanyl81"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.CSharp.Workspaces"; version = "3.11.0"; sha256 = "16myshcix4a37c4vlig4gi9jnhb6p6py171xgn6b0ab6wz020r71"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.NetAnalyzers"; version = "5.0.3"; sha256 = "1l0zg9wl8yapjq9g2d979zhsmdkr8kfybmxnl7kvgkgldf114fbg"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.Workspaces.Common"; version = "3.11.0"; sha256 = "07iaqjdhp55cw3y159i3h4j30l9s69gn5q6rv08bkizv8yk7yhls"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.Workspaces.MSBuild"; version = "3.11.0"; sha256 = "0jmcjx37b3649b16kisg9pjmz3m86pba9b1p1y0vlq1r4hyzvn3m"; })
-  (fetchNuGet { name = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
-  (fetchNuGet { name = "Microsoft.CSharp"; version = "4.5.0"; sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; })
-  (fetchNuGet { name = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
-  (fetchNuGet { name = "Microsoft.Data.Sqlite.Core"; version = "2.2.6"; sha256 = "0fx8698k71vzr8pdc6q8bsbzg6r8a42s4hkzmiyv13ibmyb5q68k"; })
-  (fetchNuGet { name = "Microsoft.Diagnostics.NETCore.Client"; version = "0.2.221401"; sha256 = "1k55l60bg8lj5ayl3kixbzvx2684xd7a9nzha5fiqjgp85cimb3r"; })
-  (fetchNuGet { name = "Microsoft.Diagnostics.Runtime"; version = "2.0.226801"; sha256 = "1w8ahqkv8nbq2ch17aa9axhqqnybmc9bsxpdhpiy52ix70mr72w1"; })
-  (fetchNuGet { name = "Microsoft.DotNet.PlatformAbstractions"; version = "2.1.0"; sha256 = "1qydvyyinj3b5mraazjal3n2k7jqhn05b6n1a2f3qjkqkxi63dmy"; })
-  (fetchNuGet { name = "Microsoft.EntityFrameworkCore"; version = "2.2.6"; sha256 = "18j2cr50wsikwv7gy3vrjvmpdxckvv537qma8afdpr3yn2klayh5"; })
-  (fetchNuGet { name = "Microsoft.EntityFrameworkCore.Abstractions"; version = "2.2.6"; sha256 = "1dyxb5ibx24frlgbqy7zch0falq9p1189zvlbxgl94m0hvpml5j3"; })
-  (fetchNuGet { name = "Microsoft.EntityFrameworkCore.Analyzers"; version = "2.2.6"; sha256 = "10f2lxxmh0xrdjvnam31fqfnjkaick23mpfvahj3ca5l07bph0rc"; })
-  (fetchNuGet { name = "Microsoft.EntityFrameworkCore.Design"; version = "2.2.6"; sha256 = "0kjjkh1yfb56wnkmciqzfn9vymqfjap364y5amia0lmqmhfz8g7f"; })
-  (fetchNuGet { name = "Microsoft.EntityFrameworkCore.Relational"; version = "2.2.6"; sha256 = "0c0z4mrqldjfslyxywb2ydk8hn9ybhkvz6lxx3idrfalq3ni5f1z"; })
-  (fetchNuGet { name = "Microsoft.EntityFrameworkCore.Sqlite"; version = "2.2.6"; sha256 = "0z8k5ns841imaqha5abb1ka0rsfzy90k6qkrvix11sp6k9i7lsam"; })
-  (fetchNuGet { name = "Microsoft.EntityFrameworkCore.Sqlite.Core"; version = "2.2.6"; sha256 = "0jzqw4672mzxjvzas09sl0zyzzayfgkv003a7bw5g2gjyiphf630"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Caching.Abstractions"; version = "2.2.0"; sha256 = "0hhxc5dp52faha1bdqw0k426zicsv6x1kfqi30m9agr0b2hixj52"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Caching.Memory"; version = "2.2.0"; sha256 = "0bzrsn5vas86w66bd04xilnlb21nx4l6lz7d3acvy6y8ir2vb5dv"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration"; version = "2.2.0"; sha256 = "02250qrs3jqqbggfvd0mkim82817f79x6jh8fx2i7r58d0m66qkl"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.2.0"; sha256 = "1fv5277hyhfqmc0gqszyqb1ilwnijm8kc9606yia6hwr8pxyg674"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Abstractions"; version = "5.0.0"; sha256 = "0fqxkc9pjxkqylsdf26s9q21ciyk56h1w33pz3v1v4wcv8yv1v6k"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Binder"; version = "2.2.0"; sha256 = "10qyjdkymdmag3r807kvbnwag4j3nz65i4cwikbd77jjvz92ya3j"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection"; version = "2.2.0"; sha256 = "0lvv45rvq1xbf47lz818rjydc776zk8mf7svpzh1dml4qwlx9zck"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection"; version = "5.0.2"; sha256 = "0db6d1b076nfqfn5mhy63l3gkfn5kr29hwcrx81ldr7y062r1b9y"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.2.0"; sha256 = "1jyzfdr9651h3x6pxwhpfbb9mysfh8f8z1jvy4g117h9790r9zx5"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "5.0.0"; sha256 = "17cz6s80va0ch0a6nqa1wbbbp3p8sqxb96lj4qcw67ivkp2yxiyj"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyModel"; version = "2.1.0"; sha256 = "0dl4qhjgifm6v3jsfzvzkvddyic77ggp9fq49ah661v45gk6ilgd"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging"; version = "2.2.0"; sha256 = "0bx3ljyvvcbikradq2h583rl72h8bxdz33aghk026cxzpv2mm3wm"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging"; version = "5.0.0"; sha256 = "1qa1l18q2jh9azya8gv1p8anzcdirjzd9dxxisb4911i9m1648i3"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging.Abstractions"; version = "2.2.0"; sha256 = "02w7hp6jicr7cl5p456k2cmrjvvhm6spg5kxnlncw3b72358m5wl"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging.Abstractions"; version = "5.0.0"; sha256 = "1yza38675dbv1qqnnhqm23alv2bbaqxp0pb7zinjmw8j2mr5r6wc"; })
-  (fetchNuGet { name = "Microsoft.Extensions.ObjectPool"; version = "5.0.11"; sha256 = "0i7li76gmk6hml12aig4cvyvja9mgl16qr8pkwvx5vm6lc9a3nn4"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Options"; version = "2.2.0"; sha256 = "1b20yh03fg4nmmi3vlf6gf13vrdkmklshfzl3ijygcs4c2hly6v0"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Options"; version = "5.0.0"; sha256 = "1rdmgpg770x8qwaaa6ryc27zh93p697fcyvn5vkxp0wimlhqkbay"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Primitives"; version = "2.2.0"; sha256 = "0znah6arbcqari49ymigg3wiy2hgdifz8zsq8vdc3ynnf45r7h0c"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Primitives"; version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Primitives"; version = "5.0.1"; sha256 = "01ar5ba2sal9wnpa1xnnikhgb37vzhg2cspz45wf760jflpai2vv"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.12"; sha256 = "1fdbrjrmjd31y1amp0inlmki9w3fwzv8nz41pqmc943g3cpmyg9f"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "2.1.2"; sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Targets"; version = "3.1.0"; sha256 = "04cc2wl90p7g9zscnxgyj55vzl7srrrjwadl2dxgicfb2x2499ca"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Targets"; version = "5.0.0"; sha256 = "0z3qyv7qal5irvabc8lmkh58zsl42mrzd1i0sssvzhv4q4kl3cg6"; })
-  (fetchNuGet { name = "Microsoft.Win32.Primitives"; version = "4.0.1"; sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7"; })
-  (fetchNuGet { name = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
-  (fetchNuGet { name = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
-  (fetchNuGet { name = "MongoDB.Bson"; version = "2.11.3"; sha256 = "0fn900i51rwgk3ywpcp4dsf7c9v5glch7hia9l9w8aj8s10qjf1r"; })
-  (fetchNuGet { name = "Mono.Cecil"; version = "0.9.6.1"; sha256 = "1fr7969h5q611l5227xw6nvv5rzap76vbpk0wg9hxbcxk3hn7szf"; })
-  (fetchNuGet { name = "Mono.Posix.NETStandard"; version = "1.0.0"; sha256 = "0xlja36hwpjm837haq15mjh2prcf68lyrmn72nvgpz8qnf9vappw"; })
-  (fetchNuGet { name = "NETStandard.Library"; version = "1.6.0"; sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k"; })
-  (fetchNuGet { name = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
-  (fetchNuGet { name = "NETStandard.Library"; version = "2.0.0"; sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
-  (fetchNuGet { name = "NuGet.Common"; version = "5.11.0"; sha256 = "1amf6scr5mcjdvd1fflag6i4qjwmydq5qwp6g3f099n901zq0dr3"; })
-  (fetchNuGet { name = "NuGet.Configuration"; version = "5.11.0"; sha256 = "1s9pbrh7xy9jz7npz0sahdsj1cw8gfx1fwf3knv0ms1n0c9bk53l"; })
-  (fetchNuGet { name = "NuGet.DependencyResolver.Core"; version = "5.11.0"; sha256 = "0yllxfv8lx1b7zj114mpxw03186q5ynsdvza6llp3wypxp367inr"; })
-  (fetchNuGet { name = "NuGet.Frameworks"; version = "5.11.0"; sha256 = "0wv26gq39hfqw9md32amr5771s73f5zn1z9vs4y77cgynxr73s4z"; })
-  (fetchNuGet { name = "NuGet.LibraryModel"; version = "5.11.0"; sha256 = "18kcxl46d004brvj7xmpskgml5qq001ip7bc7vhg2q92cisqa1by"; })
-  (fetchNuGet { name = "NuGet.Packaging"; version = "5.11.0"; sha256 = "0rxgnsh8ny37bv6cdn70prqbq3xavncyd3nqhw5yarxkp29i11xv"; })
-  (fetchNuGet { name = "NuGet.ProjectModel"; version = "5.11.0"; sha256 = "1i0dcak9qdj8s68c5f3zhrjs5sc4rsim92dy1qw4x9cavv5jrp05"; })
-  (fetchNuGet { name = "NuGet.Protocol"; version = "5.11.0"; sha256 = "041pva6ykc5h6az7bb87mkg32c95cvxlixgspnd34zbdldr4ypdb"; })
-  (fetchNuGet { name = "NuGet.Versioning"; version = "5.11.0"; sha256 = "041351n1rbyqpfxqyxbvjgfrcbbawymbq96givz5pvdbabvyf5vq"; })
-  (fetchNuGet { name = "NUnit"; version = "3.13.2"; sha256 = "00bkjgarkwbj497da9d7lajala1ns67h1kx53w4bapwkf32jlcvn"; })
-  (fetchNuGet { name = "OpenTabletDriver"; version = "0.5.3.1"; sha256 = "16xw8w943x9gvnnpbryahff5azzy8n26j2igyqgv88m352jd9rb8"; })
-  (fetchNuGet { name = "OpenTabletDriver.Plugin"; version = "0.5.3.1"; sha256 = "17dxsvcz9g8kzydk5xlfz9kfxl62x9wi20609rh76wjd881bg1br"; })
-  (fetchNuGet { name = "ppy.LocalisationAnalyser"; version = "2021.725.0"; sha256 = "00nvk8kw94v0iq5k7y810sa235lqdjlggq7f00c64c3d1zam4203"; })
-  (fetchNuGet { name = "ppy.ManagedBass"; version = "3.1.3-alpha"; sha256 = "0qdrklalp42pbyb30vpr7c0kwjablsja0s6xplxxkpfd14y8mzk4"; })
-  (fetchNuGet { name = "ppy.osu.Framework"; version = "2021.1108.0"; sha256 = "0zcmxnb521j8v9q863l5bf74svgsn8lc00d03kmldyfhcjq6zqb9"; })
-  (fetchNuGet { name = "ppy.osu.Framework.NativeLibs"; version = "2021.805.0"; sha256 = "004c053s6p7339bfw68lvlyk9jkbw6djkf2d72dz8wam546k8dcl"; })
-  (fetchNuGet { name = "ppy.osu.Game.Resources"; version = "2021.1112.0"; sha256 = "0q0z0f9f9g2a6523zyp5a7k3z0h2rallnz6pzyahkn2vz9s4ykxj"; })
-  (fetchNuGet { name = "ppy.osuTK.NS20"; version = "1.0.178"; sha256 = "1bv77rrf3g6zr4bzfrrqqzl0vjj4c8izc0sakckda8dlm6h3gxln"; })
-  (fetchNuGet { name = "ppy.SDL2-CS"; version = "1.0.468-alpha"; sha256 = "1qa2xg5p6ywmvzz868vck2jy4sn8vfqssa4an4afqsmc4amxfmc8"; })
-  (fetchNuGet { name = "ppy.squirrel.windows"; version = "1.9.0.5"; sha256 = "0nmhrg3q6izapfpwdslq80fqkvjj12ad9r94pd0nr2xx1zw0x1zl"; })
-  (fetchNuGet { name = "Realm"; version = "10.6.0"; sha256 = "0vsd99zr22a2cvyx71gdqqvr2ld239v5s4dhhfdkjgvadz5dyc2a"; })
-  (fetchNuGet { name = "Realm.Fody"; version = "10.6.0"; sha256 = "031igfdwrkgn5nh19qxh6s6l8l1ni6lgk65dhqrzqc202xqidsdm"; })
-  (fetchNuGet { name = "Remotion.Linq"; version = "2.2.0"; sha256 = "1y46ni0xswmmiryp8sydjgryafwn458dr91f9xn653w73kdyk4xf"; })
-  (fetchNuGet { name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
-  (fetchNuGet { name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
-  (fetchNuGet { name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
-  (fetchNuGet { name = "runtime.native.System"; version = "4.0.0"; sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf"; })
-  (fetchNuGet { name = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
-  (fetchNuGet { name = "runtime.native.System.IO.Compression"; version = "4.1.0"; sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk"; })
-  (fetchNuGet { name = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
-  (fetchNuGet { name = "runtime.native.System.Net.Http"; version = "4.0.1"; sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6"; })
-  (fetchNuGet { name = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
-  (fetchNuGet { name = "runtime.native.System.Security.Cryptography"; version = "4.0.0"; sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9"; })
-  (fetchNuGet { name = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
-  (fetchNuGet { name = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
-  (fetchNuGet { name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
-  (fetchNuGet { name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
-  (fetchNuGet { name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
-  (fetchNuGet { name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
-  (fetchNuGet { name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
-  (fetchNuGet { name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
-  (fetchNuGet { name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
-  (fetchNuGet { name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
-  (fetchNuGet { name = "Sentry"; version = "3.10.0"; sha256 = "1dnvj1adr6kz5pfdhi2cvq8m303vdaj00zgg2sbx0pc8y3nhc6x7"; })
-  (fetchNuGet { name = "SharpCompress"; version = "0.17.1"; sha256 = "1ffiacghbcnr3fkgvdcad7b1nky54nhmmn2sm43sks9zm8grvva4"; })
-  (fetchNuGet { name = "SharpCompress"; version = "0.30.0"; sha256 = "0q9icpwzf76a85wlqqn2d5zsb0pfzvqxihsg71g76gk74xg9gdcd"; })
-  (fetchNuGet { name = "SharpFNT"; version = "2.0.0"; sha256 = "1bgacgh9hbck0qvji6frbb50sdiqfdng2fvvfgfw8b9qaql91mx0"; })
-  (fetchNuGet { name = "SixLabors.ImageSharp"; version = "1.0.4"; sha256 = "0fmgn414my76gjgp89qlc210a0lqvnvkvk2fcwnpwxdhqpfvyilr"; })
-  (fetchNuGet { name = "Splat"; version = "1.6.2"; sha256 = "154w9q0z8697rcpqs4x233crx5ap1z4pl4xc21hsd3csbhw13ykf"; })
-  (fetchNuGet { name = "SQLitePCLRaw.bundle_green"; version = "1.1.12"; sha256 = "0jbyd25ag15fyn9nawjikv0v5ylk2zh5pxgr6gm4kpbpqys86sq9"; })
-  (fetchNuGet { name = "SQLitePCLRaw.core"; version = "1.1.12"; sha256 = "03gflsn2wl6v0a8zvh6y5xdhx0xxmfrn6jfldiy829x3fx74zgdl"; })
-  (fetchNuGet { name = "SQLitePCLRaw.lib.e_sqlite3.linux"; version = "1.1.12"; sha256 = "10mlq914d3zggdjf4bv27w6jx0gqqjf6f91y5ri6pbvaqyhi28h5"; })
-  (fetchNuGet { name = "SQLitePCLRaw.lib.e_sqlite3.osx"; version = "1.1.12"; sha256 = "1hixg6n9sqllfrcihj145lh1l38inv827808difvazd4zr3mi0z1"; })
-  (fetchNuGet { name = "SQLitePCLRaw.lib.e_sqlite3.v110_xp"; version = "1.1.12"; sha256 = "107sivk5p38dg1kyvqrxgp67dj89s8l6brf9l52k6s4vrn4hrrk7"; })
-  (fetchNuGet { name = "SQLitePCLRaw.provider.e_sqlite3.netstandard11"; version = "1.1.12"; sha256 = "0qr2d7ka6f5c7bybdhiyq7nl90c9575szmi0nfpknd9c0w024if4"; })
-  (fetchNuGet { name = "StbiSharp"; version = "1.0.13"; sha256 = "0yaspwlh4x93d7xnqj5w5pxlwzlv9lixvksyvdh176krfa4mjw3q"; })
-  (fetchNuGet { name = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
-  (fetchNuGet { name = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
-  (fetchNuGet { name = "System.Buffers"; version = "4.0.0"; sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; })
-  (fetchNuGet { name = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
-  (fetchNuGet { name = "System.Buffers"; version = "4.4.0"; sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19"; })
-  (fetchNuGet { name = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; })
-  (fetchNuGet { name = "System.CodeDom"; version = "4.5.0"; sha256 = "1js3h3ig0zwyynl1q88siynp8ra0gz0pfq1wmvls6ji83jrxsami"; })
-  (fetchNuGet { name = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
-  (fetchNuGet { name = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
-  (fetchNuGet { name = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; })
-  (fetchNuGet { name = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
-  (fetchNuGet { name = "System.Collections.Immutable"; version = "1.5.0"; sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06"; })
-  (fetchNuGet { name = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
-  (fetchNuGet { name = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
-  (fetchNuGet { name = "System.ComponentModel.Annotations"; version = "5.0.0"; sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j"; })
-  (fetchNuGet { name = "System.Composition"; version = "1.0.31"; sha256 = "0aa27jz73qb0xm6dyxv22qhfrmyyqjyn2dvvsd9asi82lcdh9i61"; })
-  (fetchNuGet { name = "System.Composition.AttributedModel"; version = "1.0.31"; sha256 = "1ipyb86hvw754kmk47vjmzyilvj5hymg9nqabz70sbgsz1fygrdv"; })
-  (fetchNuGet { name = "System.Composition.Convention"; version = "1.0.31"; sha256 = "00gqcdrql7vhynxh4xq0s9j5nw27kghmn2n773v7lhzjh3ash18r"; })
-  (fetchNuGet { name = "System.Composition.Hosting"; version = "1.0.31"; sha256 = "1f1bnk3j7ndx9r7zpzibmrhw78clys1pspl20j2dhnmkiwhl23vy"; })
-  (fetchNuGet { name = "System.Composition.Runtime"; version = "1.0.31"; sha256 = "1shfybfzsn4g6aim4pggb5ha31g0fz2kkk0519c4vj6m166g39ws"; })
-  (fetchNuGet { name = "System.Composition.TypedParts"; version = "1.0.31"; sha256 = "1m4j19zx50lbbdx1xxbgpsd1dai2r3kzkyapw47kdvkb89qjkl63"; })
-  (fetchNuGet { name = "System.Console"; version = "4.0.0"; sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; })
-  (fetchNuGet { name = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
-  (fetchNuGet { name = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
-  (fetchNuGet { name = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
-  (fetchNuGet { name = "System.Diagnostics.DiagnosticSource"; version = "4.0.0"; sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m"; })
-  (fetchNuGet { name = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
-  (fetchNuGet { name = "System.Diagnostics.DiagnosticSource"; version = "4.5.0"; sha256 = "1y8m0p3127nak5yspapfnz25qc9x53gqpvwr3hdpsvrcd2r1pgyj"; })
-  (fetchNuGet { name = "System.Diagnostics.DiagnosticSource"; version = "5.0.0"; sha256 = "0phd2qizshjvglhzws1jd0cq4m54gscz4ychzr3x6wbgl4vvfrga"; })
-  (fetchNuGet { name = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
-  (fetchNuGet { name = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
-  (fetchNuGet { name = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; })
-  (fetchNuGet { name = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
-  (fetchNuGet { name = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
-  (fetchNuGet { name = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; })
-  (fetchNuGet { name = "System.Formats.Asn1"; version = "5.0.0"; sha256 = "1axc8z0839yvqi2cb63l73l6d9j6wd20lsbdymwddz9hvrsgfwpn"; })
-  (fetchNuGet { name = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
-  (fetchNuGet { name = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
-  (fetchNuGet { name = "System.Globalization.Calendars"; version = "4.0.1"; sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh"; })
-  (fetchNuGet { name = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
-  (fetchNuGet { name = "System.Globalization.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; })
-  (fetchNuGet { name = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
-  (fetchNuGet { name = "System.Interactive.Async"; version = "3.2.0"; sha256 = "0y5r5y7dlccjpgg17rjrrzi3jya4ysyydamxs33qckkv4jb3534d"; })
-  (fetchNuGet { name = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
-  (fetchNuGet { name = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
-  (fetchNuGet { name = "System.IO.Compression"; version = "4.1.0"; sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji"; })
-  (fetchNuGet { name = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
-  (fetchNuGet { name = "System.IO.Compression.ZipFile"; version = "4.0.1"; sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82"; })
-  (fetchNuGet { name = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
-  (fetchNuGet { name = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
-  (fetchNuGet { name = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
-  (fetchNuGet { name = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
-  (fetchNuGet { name = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
-  (fetchNuGet { name = "System.IO.Packaging"; version = "5.0.0"; sha256 = "08l85pi8jy65las973szqdnir2awxp0r16h21c0bgrz19gxhs11n"; })
-  (fetchNuGet { name = "System.IO.Pipelines"; version = "5.0.1"; sha256 = "1zvfcd2l1d5qxifsqd0cjyv57nr61a9ac2ca5jinyqmj32wgjd6v"; })
-  (fetchNuGet { name = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
-  (fetchNuGet { name = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
-  (fetchNuGet { name = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
-  (fetchNuGet { name = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
-  (fetchNuGet { name = "System.Linq.Queryable"; version = "4.0.1"; sha256 = "11jn9k34g245yyf260gr3ldzvaqa9477w2c5nhb1p8vjx4xm3qaw"; })
-  (fetchNuGet { name = "System.Management"; version = "4.5.0"; sha256 = "19z5x23n21xi94bgl531l9hrm64nyw9d5fpd7klfvr5xfsbh9jwr"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.1"; sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
-  (fetchNuGet { name = "System.Net.Http"; version = "4.1.0"; sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb"; })
-  (fetchNuGet { name = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
-  (fetchNuGet { name = "System.Net.Primitives"; version = "4.0.11"; sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r"; })
-  (fetchNuGet { name = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
-  (fetchNuGet { name = "System.Net.Sockets"; version = "4.1.0"; sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls"; })
-  (fetchNuGet { name = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
-  (fetchNuGet { name = "System.Numerics.Vectors"; version = "4.4.0"; sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; })
-  (fetchNuGet { name = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
-  (fetchNuGet { name = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
-  (fetchNuGet { name = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
-  (fetchNuGet { name = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
-  (fetchNuGet { name = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
-  (fetchNuGet { name = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
-  (fetchNuGet { name = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
-  (fetchNuGet { name = "System.Reflection.Emit"; version = "4.6.0"; sha256 = "18h375q5bn9h7swxnk4krrxym1dxmi9bm26p89xps9ygrj4q6zqw"; })
-  (fetchNuGet { name = "System.Reflection.Emit"; version = "4.7.0"; sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; })
-  (fetchNuGet { name = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
-  (fetchNuGet { name = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
-  (fetchNuGet { name = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
-  (fetchNuGet { name = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
-  (fetchNuGet { name = "System.Reflection.Emit.Lightweight"; version = "4.6.0"; sha256 = "0hry2k6b7kicg4zxnq0hhn0ys52711pxy7l9v5sp7gvp9cicwpgp"; })
-  (fetchNuGet { name = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
-  (fetchNuGet { name = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
-  (fetchNuGet { name = "System.Reflection.Metadata"; version = "5.0.0"; sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; })
-  (fetchNuGet { name = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
-  (fetchNuGet { name = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
-  (fetchNuGet { name = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
-  (fetchNuGet { name = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
-  (fetchNuGet { name = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
-  (fetchNuGet { name = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
-  (fetchNuGet { name = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
-  (fetchNuGet { name = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.1"; sha256 = "1xcrjx5fwg284qdnxyi2d0lzdm5q4frlpkp0nf6vvkx1kdz2prrf"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.3"; sha256 = "1afi6s2r1mh1kygbjmfba6l4f87pi5sg13p4a48idqafli94qxln"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; })
-  (fetchNuGet { name = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
-  (fetchNuGet { name = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
-  (fetchNuGet { name = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
-  (fetchNuGet { name = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.0.0"; sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
-  (fetchNuGet { name = "System.Runtime.Numerics"; version = "4.0.1"; sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn"; })
-  (fetchNuGet { name = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
-  (fetchNuGet { name = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
-  (fetchNuGet { name = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Algorithms"; version = "4.2.0"; sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Cng"; version = "4.2.0"; sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Cng"; version = "5.0.0"; sha256 = "06hkx2za8jifpslkh491dfwzm5dxrsyxzj5lsc0achb6yzg4zqlw"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Csp"; version = "4.0.0"; sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Encoding"; version = "4.0.0"; sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
-  (fetchNuGet { name = "System.Security.Cryptography.OpenSsl"; version = "4.0.0"; sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q"; })
-  (fetchNuGet { name = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Pkcs"; version = "5.0.0"; sha256 = "0hb2mndac3xrw3786bsjxjfh19bwnr991qib54k6wsqjhjyyvbwj"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Primitives"; version = "4.0.0"; sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
-  (fetchNuGet { name = "System.Security.Cryptography.ProtectedData"; version = "4.4.0"; sha256 = "1q8ljvqhasyynp94a1d7jknk946m20lkwy2c3wa8zw2pc517fbj6"; })
-  (fetchNuGet { name = "System.Security.Cryptography.X509Certificates"; version = "4.1.0"; sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh"; })
-  (fetchNuGet { name = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
-  (fetchNuGet { name = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
-  (fetchNuGet { name = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
-  (fetchNuGet { name = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
-  (fetchNuGet { name = "System.Text.Encoding.CodePages"; version = "4.5.1"; sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; })
-  (fetchNuGet { name = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; })
-  (fetchNuGet { name = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
-  (fetchNuGet { name = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
-  (fetchNuGet { name = "System.Text.Encodings.Web"; version = "5.0.1"; sha256 = "00yg63qnp94q2qryxxggzigi276bibb8b3b96gcvsyrxy7b703n9"; })
-  (fetchNuGet { name = "System.Text.Json"; version = "4.7.0"; sha256 = "0fp3xrysccm5dkaac4yb51d793vywxks978kkl5x4db9gw29rfdr"; })
-  (fetchNuGet { name = "System.Text.Json"; version = "5.0.2"; sha256 = "0vd0wd29cdhgcjngl9sw391sn2s8xm974y15zvym0whsdgjwiqfx"; })
-  (fetchNuGet { name = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
-  (fetchNuGet { name = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
-  (fetchNuGet { name = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
-  (fetchNuGet { name = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
-  (fetchNuGet { name = "System.Threading.Channels"; version = "5.0.0"; sha256 = "11z28x3cawry60l5phkqrvavm0mshz84n4c79hrz0p65lq8jpxgs"; })
-  (fetchNuGet { name = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
-  (fetchNuGet { name = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.5.2"; sha256 = "1sh63dz0dymqcwmprp0nadm77b83vmm7lyllpv578c397bslb8hj"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.5.3"; sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
-  (fetchNuGet { name = "System.Threading.Thread"; version = "4.0.0"; sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc"; })
-  (fetchNuGet { name = "System.Threading.Timer"; version = "4.0.1"; sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6"; })
-  (fetchNuGet { name = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
-  (fetchNuGet { name = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
-  (fetchNuGet { name = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
-  (fetchNuGet { name = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
-  (fetchNuGet { name = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
-  (fetchNuGet { name = "TagLibSharp"; version = "2.2.0"; sha256 = "0jb0f84p4jd59ha36spyk9q08g6fjap3xywq32rcs2xwzhhqiq0y"; })
+  (fetchNuGet { pname = "AutoMapper"; version = "10.1.1"; sha256 = "1l1p9g7f7finr8laklbm7h2c45k0swl47iq0ik68js5s6pzvd6f8"; })
+  (fetchNuGet { pname = "DeltaCompressionDotNet"; version = "2.0.0.0"; sha256 = "0zhj7m3zaf9wcg51385in9qg1xgkvp8yyzgq3r5k4sagm7y68aqy"; })
+  (fetchNuGet { pname = "DiffPlex"; version = "1.7.0"; sha256 = "09a8hkbx99iwikfl8war629945yv7i8llj9480dbc4kyp6qqlr00"; })
+  (fetchNuGet { pname = "DiscordRichPresence"; version = "1.0.175"; sha256 = "180sax976327d70qbinv07f65g3w2zbw80n49hckg8wd4rw209vd"; })
+  (fetchNuGet { pname = "FFmpeg.AutoGen"; version = "4.3.0.1"; sha256 = "0n6x57mnnvcjnrs8zyvy07h5zm4bcfy9gh4n4bvd9fx5ys4pxkvv"; })
+  (fetchNuGet { pname = "Fody"; version = "6.5.3"; sha256 = "14yj3xj4jh2ayl8jsyypxv9af0xbw30946kn14m0bfmlyl027wkp"; })
+  (fetchNuGet { pname = "HidSharpCore"; version = "1.2.1.1"; sha256 = "1zkndglmz0s8rblfhnqcvv90rkq2i7lf4bc380g7z8h1avf2ikll"; })
+  (fetchNuGet { pname = "HtmlAgilityPack"; version = "1.11.37"; sha256 = "1q0kkw2rhvxi67hqv18ziv2dvmhi7f68745gcs1253mwv5da4vy6"; })
+  (fetchNuGet { pname = "Humanizer"; version = "2.11.10"; sha256 = "057pqzvdxsbpnnc5f1xkqg7j3ywp68ggia3w74fgqp0158dm6rdk"; })
+  (fetchNuGet { pname = "Humanizer.Core"; version = "2.11.10"; sha256 = "0z7kmd5rh1sb6izq0vssk6c2p63n00xglk45s7ga9z18z9aaskxv"; })
+  (fetchNuGet { pname = "Humanizer.Core"; version = "2.2.0"; sha256 = "08mzg65y9d3zvq16rsmpapcdan71ggq2mpks6k777h3wlm2sh3p5"; })
+  (fetchNuGet { pname = "Humanizer.Core.af"; version = "2.11.10"; sha256 = "18fiixfvjwn8m1i8z2cz4aqykzylvfdqmmpwc2zcd8sr1a2xm86z"; })
+  (fetchNuGet { pname = "Humanizer.Core.ar"; version = "2.11.10"; sha256 = "009fpm4jd325izm82ipipsvlwd31824gvskda68bdwi4yqmycz4p"; })
+  (fetchNuGet { pname = "Humanizer.Core.az"; version = "2.11.10"; sha256 = "144b9diwprabxwgi5a98k5iy95ajq4p7356phdqi2lhzwbz7b6a9"; })
+  (fetchNuGet { pname = "Humanizer.Core.bg"; version = "2.11.10"; sha256 = "1b9y40gvq2kwnj5wa40f8cbywv79jkajcwknagrgr27sykpfadl2"; })
+  (fetchNuGet { pname = "Humanizer.Core.bn-BD"; version = "2.11.10"; sha256 = "18pn4jcp36ygcx283l3fi9bs5d7q1a384b72a10g5kl0qckn88ay"; })
+  (fetchNuGet { pname = "Humanizer.Core.cs"; version = "2.11.10"; sha256 = "03crw1lnzp32v2kcdmllkrsqh07r4ggw9gyc96qw7cv0nk5ch1h8"; })
+  (fetchNuGet { pname = "Humanizer.Core.da"; version = "2.11.10"; sha256 = "0glby12zra3y3yiq4cwq1m6wjcjl8f21v8ghi6s20r48glm8vzy9"; })
+  (fetchNuGet { pname = "Humanizer.Core.de"; version = "2.11.10"; sha256 = "0a35xrm1f9p74x0fkr52bw9sd54vdy9d5rnvf565yh8ww43xfk7b"; })
+  (fetchNuGet { pname = "Humanizer.Core.el"; version = "2.11.10"; sha256 = "0bhwwdx5vc48zikdsbrkghdhwahxxc2lkff0yaa5nxhbhasl84h8"; })
+  (fetchNuGet { pname = "Humanizer.Core.es"; version = "2.11.10"; sha256 = "07bw07qy8nyzlgxl7l2lxv9f78qmkfppgzx7iyq5ikrcnpvc7i9q"; })
+  (fetchNuGet { pname = "Humanizer.Core.fa"; version = "2.11.10"; sha256 = "00d4hc1pfmhfkc5wmx9p7i00lgi4r0k6wfcns9kl1syjxv3bs5f2"; })
+  (fetchNuGet { pname = "Humanizer.Core.fi-FI"; version = "2.11.10"; sha256 = "0z4is7pl5jpi4pfdvd2zvx5mp00bj26d9l9ksqyc0liax8nfzyik"; })
+  (fetchNuGet { pname = "Humanizer.Core.fr"; version = "2.11.10"; sha256 = "0sybpg6kbbhrnk7gxcdk7ppan89lsfqsdssrg4i1dm8w48wgicap"; })
+  (fetchNuGet { pname = "Humanizer.Core.fr-BE"; version = "2.11.10"; sha256 = "1s25c86nl9wpsn6fydzwv4rfmdx5sm0vgyd7xhw5344k20gazvhv"; })
+  (fetchNuGet { pname = "Humanizer.Core.he"; version = "2.11.10"; sha256 = "1nx61qkjd6p9r36dmnm4942khyv35fpdqmb2w69gz6463g4d7z29"; })
+  (fetchNuGet { pname = "Humanizer.Core.hr"; version = "2.11.10"; sha256 = "02jhcyj72prkqsjxyilv04drm0bknqjh2r893jlbsfi9vjg2zay3"; })
+  (fetchNuGet { pname = "Humanizer.Core.hu"; version = "2.11.10"; sha256 = "0yb6ly4s1wdyaf96h2dvifqyb575aid6irwl3qx8gcvrs0xpcxdp"; })
+  (fetchNuGet { pname = "Humanizer.Core.hy"; version = "2.11.10"; sha256 = "0b7vaqldn7ca3xi4gkvkhjk900kw2zwb0m0d20bg45a83zdlx79c"; })
+  (fetchNuGet { pname = "Humanizer.Core.id"; version = "2.11.10"; sha256 = "1yqxirknwga4j18k7ixwgqxlv20479afanhariy3c5mkwvglsr9b"; })
+  (fetchNuGet { pname = "Humanizer.Core.it"; version = "2.11.10"; sha256 = "1skwgj5a6kkx3pm9w4f29psch69h1knmwbkdydlmx13h452p1w4l"; })
+  (fetchNuGet { pname = "Humanizer.Core.ja"; version = "2.11.10"; sha256 = "1wpc3yz9v611dqbw8j5yimk8dpz0rvpnls4rmlnp1m47gavpj8x4"; })
+  (fetchNuGet { pname = "Humanizer.Core.ko-KR"; version = "2.11.10"; sha256 = "1df0kd7vwdc3inxfkb3wsl1aw3d6vbab99dzh08p4m04g7i2c1a9"; })
+  (fetchNuGet { pname = "Humanizer.Core.ku"; version = "2.11.10"; sha256 = "17b66xfgwjr0sffx0hw4c6l90h43z7ffylrs26hgav0n110q2nwg"; })
+  (fetchNuGet { pname = "Humanizer.Core.lv"; version = "2.11.10"; sha256 = "0czxx4b9g0w7agykdl82wds09zasa9y58dmgjm925amlfz4wkyzs"; })
+  (fetchNuGet { pname = "Humanizer.Core.ms-MY"; version = "2.11.10"; sha256 = "0kix95nbw94fx0dziyz80y59i7ii7d21b63f7f94niarljjq36i3"; })
+  (fetchNuGet { pname = "Humanizer.Core.mt"; version = "2.11.10"; sha256 = "1rwy6m22pq65gxn86xlr9lv818fp5kb0wz98zxxfljc2iviw1f4p"; })
+  (fetchNuGet { pname = "Humanizer.Core.nb"; version = "2.11.10"; sha256 = "0ra2cl0avvv4sylha7z76jxnb4pdiqfbpr5m477snr04dsjxd9q9"; })
+  (fetchNuGet { pname = "Humanizer.Core.nb-NO"; version = "2.11.10"; sha256 = "1qszib03pvmjkrg8za7jjd2vzrs9p4fn2rmy82abnzldkhvifipq"; })
+  (fetchNuGet { pname = "Humanizer.Core.nl"; version = "2.11.10"; sha256 = "1i9bvy0i2yyasl9mgxiiwrkmfpm2c53d3wwdp9270r6120sxyy63"; })
+  (fetchNuGet { pname = "Humanizer.Core.pl"; version = "2.11.10"; sha256 = "0kggh4wgcic7wzgxy548n6w61schss2ccf9kz8alqshfi42xifby"; })
+  (fetchNuGet { pname = "Humanizer.Core.pt"; version = "2.11.10"; sha256 = "09j90s8x1lpvhfiy3syfnj8slkgcacf3xjy3pnkgxa6g4mi4f4bd"; })
+  (fetchNuGet { pname = "Humanizer.Core.ro"; version = "2.11.10"; sha256 = "1jgidmqfly91v1k22gn687mfql5bz7gjzp1aapi93vq5x635qssy"; })
+  (fetchNuGet { pname = "Humanizer.Core.ru"; version = "2.11.10"; sha256 = "13mmlh0ibxfyc85xrz3vx4mcg56mkzqql184iwdryq94p0g5ahil"; })
+  (fetchNuGet { pname = "Humanizer.Core.sk"; version = "2.11.10"; sha256 = "04ja06y5jaz1jwkwn117wx9cib04gpbi0vysn58a8sd5jrxmxai5"; })
+  (fetchNuGet { pname = "Humanizer.Core.sl"; version = "2.11.10"; sha256 = "05hxk9v3a7fn7s4g9jp5zxk2z6a33b9fkavyb1hjqnl2i37q2wja"; })
+  (fetchNuGet { pname = "Humanizer.Core.sr"; version = "2.11.10"; sha256 = "0x6l2msimrx72iywa1g0rqklgy209sdwg0r77i2lz0s1rvk5klm5"; })
+  (fetchNuGet { pname = "Humanizer.Core.sr-Latn"; version = "2.11.10"; sha256 = "01hdyn7mmbyy7f3aglawgnsj3nblcdpqjgzdcvniy73l536mira0"; })
+  (fetchNuGet { pname = "Humanizer.Core.sv"; version = "2.11.10"; sha256 = "0cbgchivw3d5ndib1zmgzmnymhyvfh9g9f0hijc860g5vaa9fkvh"; })
+  (fetchNuGet { pname = "Humanizer.Core.th-TH"; version = "2.11.10"; sha256 = "1v7f9x3b04iwhz9lb3ir8az8128nvcw1gi4park5zh3fg0f3mni0"; })
+  (fetchNuGet { pname = "Humanizer.Core.tr"; version = "2.11.10"; sha256 = "02c4ky0dskxkdrkc7vy8yzmvwjr1wqll1kzx0k21afhlx8xynjd4"; })
+  (fetchNuGet { pname = "Humanizer.Core.uk"; version = "2.11.10"; sha256 = "0900ilhwj8yvhyzpg1pjr7f5vrl62wp8dsnhk4c2igs20qvnv079"; })
+  (fetchNuGet { pname = "Humanizer.Core.uz-Cyrl-UZ"; version = "2.11.10"; sha256 = "09b7p2m8y49j49ckrmx2difgyj6y7fm2mwca093j8psxclsykcyr"; })
+  (fetchNuGet { pname = "Humanizer.Core.uz-Latn-UZ"; version = "2.11.10"; sha256 = "029kvkawqhlln52vpjpvr52dhr18ylk01cgsj2z8lxnqaka0q9hk"; })
+  (fetchNuGet { pname = "Humanizer.Core.vi"; version = "2.11.10"; sha256 = "0q4d47plsj956ivn82qwyidfxppjr9dp13m8c66aamrvhy4q8ny5"; })
+  (fetchNuGet { pname = "Humanizer.Core.zh-CN"; version = "2.11.10"; sha256 = "01dy5kf6ai8id77px92ji4kcxjc8haj39ivv55xy1afcg3qiy7mh"; })
+  (fetchNuGet { pname = "Humanizer.Core.zh-Hans"; version = "2.11.10"; sha256 = "16gcxgw2g6gck3nc2hxzlkbsg7wkfaqsjl87kasibxxh47zdqqv2"; })
+  (fetchNuGet { pname = "Humanizer.Core.zh-Hant"; version = "2.11.10"; sha256 = "1rjg2xvkwjjw3c7z9mdjjvbnl9lcvvhh4fr7l61rla2ynzdk46cj"; })
+  (fetchNuGet { pname = "JetBrains.Annotations"; version = "2021.3.0"; sha256 = "01ssylllbwpana2w3iybi533zlvcsbhzjc8kr0g4kg307kjbfn8v"; })
+  (fetchNuGet { pname = "ManagedBass"; version = "3.0.0"; sha256 = "1yh1s36w465z8gcj4xs6q048g63z7m3nyfy1vvw1lgh7k6hqqgma"; })
+  (fetchNuGet { pname = "ManagedBass.Fx"; version = "3.0.0"; sha256 = "0sck1wmjlcy8q941bamk1i0k4yrklyilsgg6c832xdh96sdc049s"; })
+  (fetchNuGet { pname = "ManagedBass.Mix"; version = "3.0.0"; sha256 = "0brnm0ry96b81hgffbaj52s53bsn9c8cx4q24j0whsvmcqqxhs4v"; })
+  (fetchNuGet { pname = "managed-midi"; version = "1.9.14"; sha256 = "025jh146zy98699y4civ7nxlkx312lwkl4sr8pha626q7q1kg89h"; })
+  (fetchNuGet { pname = "Markdig"; version = "0.26.0"; sha256 = "1pg0yica8h1c2kx10pqzc5iclmlfll5wbw1bxa8l251w1qnfglv2"; })
+  (fetchNuGet { pname = "MessagePack"; version = "2.3.85"; sha256 = "0n7kv4i6knhv1dd35cv45sfpidsiy9albfdmbrdschykd1mzxmiy"; })
+  (fetchNuGet { pname = "MessagePack.Annotations"; version = "2.3.85"; sha256 = "0axjgy9r533bw00lflnc6acjyza76mf2x1nn6fw7qacvak9rqxm3"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "5.0.12"; sha256 = "1asph5v7kgmscfgsyv9gg7cwvg52gnm6m0ldm2m4pfkpsxqyp2mi"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Connections.Abstractions"; version = "5.0.11"; sha256 = "0x6c6m8s4mq1j21sys8j1xp8sqvy5n3shcpcm0yyx4r2ld2cpdkr"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Connections.Client"; version = "5.0.11"; sha256 = "1b60rhlbn8s4c39nl2kb1xfq0m3kzy407hdvz2s5r9qc8y9p55ps"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Connections.Common"; version = "5.0.11"; sha256 = "1rq6lildicnz6ngrf1m46ynya0hbn0hzazdqp6c3lkmkw3pgd8wp"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Features"; version = "5.0.11"; sha256 = "0n09fldmy60ggffznfwzr99hfpa0p9qxq4hp2zy4j94cmqkqm1pg"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Client"; version = "5.0.11"; sha256 = "1iyxkr2lks5xfay4h70z94dnjm5dpbygyyi9krrx1lin1na235ly"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Client.Core"; version = "5.0.11"; sha256 = "13hpp6sq0ad56v1l09gq4mnmj5y1f9lykd2x12hjrdpk3g7gqdix"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Common"; version = "5.0.11"; sha256 = "1vsskslaz7428f13q0hjf81hvfxip9wsc53z5j37ysk9qmixlnyd"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Protocols.Json"; version = "5.0.11"; sha256 = "0vdr2n9lfjybkv0m21lhpnxv0shlyfnyffv32vziiglhssdza15g"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Protocols.MessagePack"; version = "5.0.11"; sha256 = "0w60z54wxv1nndv7mz9rqswdh8k4rxmgihnxkirp4gr0idr7ln7j"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson"; version = "5.0.11"; sha256 = "1qrmrkdrzm4bn5zq6a1dk88rpb6pajcs6jh23h43yny68y80jcnr"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.0.0"; sha256 = "00dx5armvkqjxvkldz3invdlck9nj7w21dlsr2aqp1rqbyrbsbbh"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.1.0"; sha256 = "1dq5yw7cy6s42193yl4iqscfw5vzkjkgv0zyy32scr4jza6ni1a1"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "5.0.0"; sha256 = "0cp5jbax2mf6xr3dqiljzlwi05fv6n9a35z337s92jcljiq674kf"; })
+  (fetchNuGet { pname = "Microsoft.Build.Framework"; version = "16.5.0"; sha256 = "1xgr02r7s9i6s70n237hss4yi9zicssia3zd2ny6s8vyxb7jpdyb"; })
+  (fetchNuGet { pname = "Microsoft.Build.Locator"; version = "1.4.1"; sha256 = "0j119rri7a401rca67cxdyrn3rprzdl1b2wrblqc23xsff1xvlrx"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.2"; sha256 = "162vb5894zxps0cf5n9gc08an7gwybzz87allx3lsszvllr9ldx4"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.BannedApiAnalyzers"; version = "3.3.3"; sha256 = "1z6x0d8lpcfjr3sxy25493i17vvcg5bsay6c03qan6mnj5aqzw2k"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.11.0"; sha256 = "0pwidgg4ifm7cirdy3hf61dyvg6lk4vgb6q7lyb4y0h0b6mvkrcl"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "3.11.0"; sha256 = "1h16b7dsp1mq7d7picyfhkssqr6xiyywi5x1fd4jwclyrvanyl81"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Workspaces"; version = "3.11.0"; sha256 = "16myshcix4a37c4vlig4gi9jnhb6p6py171xgn6b0ab6wz020r71"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.NetAnalyzers"; version = "5.0.3"; sha256 = "1l0zg9wl8yapjq9g2d979zhsmdkr8kfybmxnl7kvgkgldf114fbg"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Workspaces.Common"; version = "3.11.0"; sha256 = "07iaqjdhp55cw3y159i3h4j30l9s69gn5q6rv08bkizv8yk7yhls"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Workspaces.MSBuild"; version = "3.11.0"; sha256 = "0jmcjx37b3649b16kisg9pjmz3m86pba9b1p1y0vlq1r4hyzvn3m"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.5.0"; sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
+  (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "2.2.6"; sha256 = "0fx8698k71vzr8pdc6q8bsbzg6r8a42s4hkzmiyv13ibmyb5q68k"; })
+  (fetchNuGet { pname = "Microsoft.Diagnostics.NETCore.Client"; version = "0.2.221401"; sha256 = "1k55l60bg8lj5ayl3kixbzvx2684xd7a9nzha5fiqjgp85cimb3r"; })
+  (fetchNuGet { pname = "Microsoft.Diagnostics.Runtime"; version = "2.0.226801"; sha256 = "1w8ahqkv8nbq2ch17aa9axhqqnybmc9bsxpdhpiy52ix70mr72w1"; })
+  (fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "2.1.0"; sha256 = "1qydvyyinj3b5mraazjal3n2k7jqhn05b6n1a2f3qjkqkxi63dmy"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore"; version = "2.2.6"; sha256 = "18j2cr50wsikwv7gy3vrjvmpdxckvv537qma8afdpr3yn2klayh5"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Abstractions"; version = "2.2.6"; sha256 = "1dyxb5ibx24frlgbqy7zch0falq9p1189zvlbxgl94m0hvpml5j3"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Analyzers"; version = "2.2.6"; sha256 = "10f2lxxmh0xrdjvnam31fqfnjkaick23mpfvahj3ca5l07bph0rc"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Design"; version = "2.2.6"; sha256 = "0kjjkh1yfb56wnkmciqzfn9vymqfjap364y5amia0lmqmhfz8g7f"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Relational"; version = "2.2.6"; sha256 = "0c0z4mrqldjfslyxywb2ydk8hn9ybhkvz6lxx3idrfalq3ni5f1z"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite"; version = "2.2.6"; sha256 = "0z8k5ns841imaqha5abb1ka0rsfzy90k6qkrvix11sp6k9i7lsam"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite.Core"; version = "2.2.6"; sha256 = "0jzqw4672mzxjvzas09sl0zyzzayfgkv003a7bw5g2gjyiphf630"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Abstractions"; version = "2.2.0"; sha256 = "0hhxc5dp52faha1bdqw0k426zicsv6x1kfqi30m9agr0b2hixj52"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Memory"; version = "2.2.0"; sha256 = "0bzrsn5vas86w66bd04xilnlb21nx4l6lz7d3acvy6y8ir2vb5dv"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "2.2.0"; sha256 = "02250qrs3jqqbggfvd0mkim82817f79x6jh8fx2i7r58d0m66qkl"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.2.0"; sha256 = "1fv5277hyhfqmc0gqszyqb1ilwnijm8kc9606yia6hwr8pxyg674"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "5.0.0"; sha256 = "0fqxkc9pjxkqylsdf26s9q21ciyk56h1w33pz3v1v4wcv8yv1v6k"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "2.2.0"; sha256 = "10qyjdkymdmag3r807kvbnwag4j3nz65i4cwikbd77jjvz92ya3j"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "2.2.0"; sha256 = "0lvv45rvq1xbf47lz818rjydc776zk8mf7svpzh1dml4qwlx9zck"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "5.0.2"; sha256 = "0db6d1b076nfqfn5mhy63l3gkfn5kr29hwcrx81ldr7y062r1b9y"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.2.0"; sha256 = "1jyzfdr9651h3x6pxwhpfbb9mysfh8f8z1jvy4g117h9790r9zx5"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "5.0.0"; sha256 = "17cz6s80va0ch0a6nqa1wbbbp3p8sqxb96lj4qcw67ivkp2yxiyj"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "2.1.0"; sha256 = "0dl4qhjgifm6v3jsfzvzkvddyic77ggp9fq49ah661v45gk6ilgd"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "2.2.0"; sha256 = "0bx3ljyvvcbikradq2h583rl72h8bxdz33aghk026cxzpv2mm3wm"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "5.0.0"; sha256 = "1qa1l18q2jh9azya8gv1p8anzcdirjzd9dxxisb4911i9m1648i3"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "2.2.0"; sha256 = "02w7hp6jicr7cl5p456k2cmrjvvhm6spg5kxnlncw3b72358m5wl"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "5.0.0"; sha256 = "1yza38675dbv1qqnnhqm23alv2bbaqxp0pb7zinjmw8j2mr5r6wc"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.ObjectPool"; version = "5.0.11"; sha256 = "0i7li76gmk6hml12aig4cvyvja9mgl16qr8pkwvx5vm6lc9a3nn4"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "2.2.0"; sha256 = "1b20yh03fg4nmmi3vlf6gf13vrdkmklshfzl3ijygcs4c2hly6v0"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "5.0.0"; sha256 = "1rdmgpg770x8qwaaa6ryc27zh93p697fcyvn5vkxp0wimlhqkbay"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "2.2.0"; sha256 = "0znah6arbcqari49ymigg3wiy2hgdifz8zsq8vdc3ynnf45r7h0c"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "5.0.1"; sha256 = "01ar5ba2sal9wnpa1xnnikhgb37vzhg2cspz45wf760jflpai2vv"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.12"; sha256 = "1fdbrjrmjd31y1amp0inlmki9w3fwzv8nz41pqmc943g3cpmyg9f"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.1.2"; sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "3.1.0"; sha256 = "04cc2wl90p7g9zscnxgyj55vzl7srrrjwadl2dxgicfb2x2499ca"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "5.0.0"; sha256 = "0z3qyv7qal5irvabc8lmkh58zsl42mrzd1i0sssvzhv4q4kl3cg6"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.0.1"; sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
+  (fetchNuGet { pname = "MongoDB.Bson"; version = "2.11.3"; sha256 = "0fn900i51rwgk3ywpcp4dsf7c9v5glch7hia9l9w8aj8s10qjf1r"; })
+  (fetchNuGet { pname = "Mono.Cecil"; version = "0.9.6.1"; sha256 = "1fr7969h5q611l5227xw6nvv5rzap76vbpk0wg9hxbcxk3hn7szf"; })
+  (fetchNuGet { pname = "Mono.Posix.NETStandard"; version = "1.0.0"; sha256 = "0xlja36hwpjm837haq15mjh2prcf68lyrmn72nvgpz8qnf9vappw"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.0"; sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.0"; sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
+  (fetchNuGet { pname = "NuGet.Common"; version = "5.11.0"; sha256 = "1amf6scr5mcjdvd1fflag6i4qjwmydq5qwp6g3f099n901zq0dr3"; })
+  (fetchNuGet { pname = "NuGet.Configuration"; version = "5.11.0"; sha256 = "1s9pbrh7xy9jz7npz0sahdsj1cw8gfx1fwf3knv0ms1n0c9bk53l"; })
+  (fetchNuGet { pname = "NuGet.DependencyResolver.Core"; version = "5.11.0"; sha256 = "0yllxfv8lx1b7zj114mpxw03186q5ynsdvza6llp3wypxp367inr"; })
+  (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.11.0"; sha256 = "0wv26gq39hfqw9md32amr5771s73f5zn1z9vs4y77cgynxr73s4z"; })
+  (fetchNuGet { pname = "NuGet.LibraryModel"; version = "5.11.0"; sha256 = "18kcxl46d004brvj7xmpskgml5qq001ip7bc7vhg2q92cisqa1by"; })
+  (fetchNuGet { pname = "NuGet.Packaging"; version = "5.11.0"; sha256 = "0rxgnsh8ny37bv6cdn70prqbq3xavncyd3nqhw5yarxkp29i11xv"; })
+  (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.2"; sha256 = "00bkjgarkwbj497da9d7lajala1ns67h1kx53w4bapwkf32jlcvn"; })
+  (fetchNuGet { pname = "OpenTabletDriver"; version = "0.5.3.1"; sha256 = "16xw8w943x9gvnnpbryahff5azzy8n26j2igyqgv88m352jd9rb8"; })
+  (fetchNuGet { pname = "OpenTabletDriver.Plugin"; version = "0.5.3.1"; sha256 = "17dxsvcz9g8kzydk5xlfz9kfxl62x9wi20609rh76wjd881bg1br"; })
+  (fetchNuGet { pname = "ppy.LocalisationAnalyser"; version = "2021.725.0"; sha256 = "00nvk8kw94v0iq5k7y810sa235lqdjlggq7f00c64c3d1zam4203"; })
+  (fetchNuGet { pname = "ppy.ManagedBass"; version = "3.1.3-alpha"; sha256 = "0qdrklalp42pbyb30vpr7c0kwjablsja0s6xplxxkpfd14y8mzk4"; })
+  (fetchNuGet { pname = "ppy.osu.Framework"; version = "2021.1108.0"; sha256 = "0zcmxnb521j8v9q863l5bf74svgsn8lc00d03kmldyfhcjq6zqb9"; })
+  (fetchNuGet { pname = "ppy.osu.Framework.NativeLibs"; version = "2021.805.0"; sha256 = "004c053s6p7339bfw68lvlyk9jkbw6djkf2d72dz8wam546k8dcl"; })
+  (fetchNuGet { pname = "ppy.osu.Game.Resources"; version = "2021.1112.0"; sha256 = "0q0z0f9f9g2a6523zyp5a7k3z0h2rallnz6pzyahkn2vz9s4ykxj"; })
+  (fetchNuGet { pname = "ppy.osuTK.NS20"; version = "1.0.178"; sha256 = "1bv77rrf3g6zr4bzfrrqqzl0vjj4c8izc0sakckda8dlm6h3gxln"; })
+  (fetchNuGet { pname = "ppy.SDL2-CS"; version = "1.0.468-alpha"; sha256 = "1qa2xg5p6ywmvzz868vck2jy4sn8vfqssa4an4afqsmc4amxfmc8"; })
+  (fetchNuGet { pname = "ppy.squirrel.windows"; version = "1.9.0.5"; sha256 = "0nmhrg3q6izapfpwdslq80fqkvjj12ad9r94pd0nr2xx1zw0x1zl"; })
+  (fetchNuGet { pname = "Realm"; version = "10.6.0"; sha256 = "0vsd99zr22a2cvyx71gdqqvr2ld239v5s4dhhfdkjgvadz5dyc2a"; })
+  (fetchNuGet { pname = "Realm.Fody"; version = "10.6.0"; sha256 = "031igfdwrkgn5nh19qxh6s6l8l1ni6lgk65dhqrzqc202xqidsdm"; })
+  (fetchNuGet { pname = "Remotion.Linq"; version = "2.2.0"; sha256 = "1y46ni0xswmmiryp8sydjgryafwn458dr91f9xn653w73kdyk4xf"; })
+  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
+  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
+  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.0.0"; sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
+  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.1.0"; sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk"; })
+  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
+  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.0.1"; sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6"; })
+  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography"; version = "4.0.0"; sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
+  (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
+  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
+  (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
+  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
+  (fetchNuGet { pname = "Sentry"; version = "3.10.0"; sha256 = "1dnvj1adr6kz5pfdhi2cvq8m303vdaj00zgg2sbx0pc8y3nhc6x7"; })
+  (fetchNuGet { pname = "SharpCompress"; version = "0.17.1"; sha256 = "1ffiacghbcnr3fkgvdcad7b1nky54nhmmn2sm43sks9zm8grvva4"; })
+  (fetchNuGet { pname = "SharpCompress"; version = "0.30.0"; sha256 = "0q9icpwzf76a85wlqqn2d5zsb0pfzvqxihsg71g76gk74xg9gdcd"; })
+  (fetchNuGet { pname = "SharpFNT"; version = "2.0.0"; sha256 = "1bgacgh9hbck0qvji6frbb50sdiqfdng2fvvfgfw8b9qaql91mx0"; })
+  (fetchNuGet { pname = "SixLabors.ImageSharp"; version = "1.0.4"; sha256 = "0fmgn414my76gjgp89qlc210a0lqvnvkvk2fcwnpwxdhqpfvyilr"; })
+  (fetchNuGet { pname = "Splat"; version = "1.6.2"; sha256 = "154w9q0z8697rcpqs4x233crx5ap1z4pl4xc21hsd3csbhw13ykf"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.bundle_green"; version = "1.1.12"; sha256 = "0jbyd25ag15fyn9nawjikv0v5ylk2zh5pxgr6gm4kpbpqys86sq9"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "1.1.12"; sha256 = "03gflsn2wl6v0a8zvh6y5xdhx0xxmfrn6jfldiy829x3fx74zgdl"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3.linux"; version = "1.1.12"; sha256 = "10mlq914d3zggdjf4bv27w6jx0gqqjf6f91y5ri6pbvaqyhi28h5"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3.osx"; version = "1.1.12"; sha256 = "1hixg6n9sqllfrcihj145lh1l38inv827808difvazd4zr3mi0z1"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3.v110_xp"; version = "1.1.12"; sha256 = "107sivk5p38dg1kyvqrxgp67dj89s8l6brf9l52k6s4vrn4hrrk7"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3.netstandard11"; version = "1.1.12"; sha256 = "0qr2d7ka6f5c7bybdhiyq7nl90c9575szmi0nfpknd9c0w024if4"; })
+  (fetchNuGet { pname = "StbiSharp"; version = "1.0.13"; sha256 = "0yaspwlh4x93d7xnqj5w5pxlwzlv9lixvksyvdh176krfa4mjw3q"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.0.0"; sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.4.0"; sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; })
+  (fetchNuGet { pname = "System.CodeDom"; version = "4.5.0"; sha256 = "1js3h3ig0zwyynl1q88siynp8ra0gz0pfq1wmvls6ji83jrxsami"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.5.0"; sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
+  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
+  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "5.0.0"; sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j"; })
+  (fetchNuGet { pname = "System.Composition"; version = "1.0.31"; sha256 = "0aa27jz73qb0xm6dyxv22qhfrmyyqjyn2dvvsd9asi82lcdh9i61"; })
+  (fetchNuGet { pname = "System.Composition.AttributedModel"; version = "1.0.31"; sha256 = "1ipyb86hvw754kmk47vjmzyilvj5hymg9nqabz70sbgsz1fygrdv"; })
+  (fetchNuGet { pname = "System.Composition.Convention"; version = "1.0.31"; sha256 = "00gqcdrql7vhynxh4xq0s9j5nw27kghmn2n773v7lhzjh3ash18r"; })
+  (fetchNuGet { pname = "System.Composition.Hosting"; version = "1.0.31"; sha256 = "1f1bnk3j7ndx9r7zpzibmrhw78clys1pspl20j2dhnmkiwhl23vy"; })
+  (fetchNuGet { pname = "System.Composition.Runtime"; version = "1.0.31"; sha256 = "1shfybfzsn4g6aim4pggb5ha31g0fz2kkk0519c4vj6m166g39ws"; })
+  (fetchNuGet { pname = "System.Composition.TypedParts"; version = "1.0.31"; sha256 = "1m4j19zx50lbbdx1xxbgpsd1dai2r3kzkyapw47kdvkb89qjkl63"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.0.0"; sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.0.0"; sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.5.0"; sha256 = "1y8m0p3127nak5yspapfnz25qc9x53gqpvwr3hdpsvrcd2r1pgyj"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "5.0.0"; sha256 = "0phd2qizshjvglhzws1jd0cq4m54gscz4ychzr3x6wbgl4vvfrga"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; })
+  (fetchNuGet { pname = "System.Formats.Asn1"; version = "5.0.0"; sha256 = "1axc8z0839yvqi2cb63l73l6d9j6wd20lsbdymwddz9hvrsgfwpn"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
+  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.0.1"; sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh"; })
+  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
+  (fetchNuGet { pname = "System.Interactive.Async"; version = "3.2.0"; sha256 = "0y5r5y7dlccjpgg17rjrrzi3jya4ysyydamxs33qckkv4jb3534d"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
+  (fetchNuGet { pname = "System.IO.Compression"; version = "4.1.0"; sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji"; })
+  (fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
+  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.0.1"; sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82"; })
+  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
+  (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.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
+  (fetchNuGet { pname = "System.IO.Packaging"; version = "5.0.0"; sha256 = "08l85pi8jy65las973szqdnir2awxp0r16h21c0bgrz19gxhs11n"; })
+  (fetchNuGet { pname = "System.IO.Pipelines"; version = "5.0.1"; sha256 = "1zvfcd2l1d5qxifsqd0cjyv57nr61a9ac2ca5jinyqmj32wgjd6v"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
+  (fetchNuGet { pname = "System.Linq.Queryable"; version = "4.0.1"; sha256 = "11jn9k34g245yyf260gr3ldzvaqa9477w2c5nhb1p8vjx4xm3qaw"; })
+  (fetchNuGet { pname = "System.Management"; version = "4.5.0"; sha256 = "19z5x23n21xi94bgl531l9hrm64nyw9d5fpd7klfvr5xfsbh9jwr"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.1"; sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
+  (fetchNuGet { pname = "System.Net.Http"; version = "4.1.0"; sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb"; })
+  (fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
+  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.0.11"; sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r"; })
+  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
+  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.1.0"; sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls"; })
+  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
+  (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.4.0"; sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; })
+  (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.6.0"; sha256 = "18h375q5bn9h7swxnk4krrxym1dxmi9bm26p89xps9ygrj4q6zqw"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.7.0"; sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.6.0"; sha256 = "0hry2k6b7kicg4zxnq0hhn0ys52711pxy7l9v5sp7gvp9cicwpgp"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "5.0.0"; sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.1"; sha256 = "1xcrjx5fwg284qdnxyi2d0lzdm5q4frlpkp0nf6vvkx1kdz2prrf"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.3"; sha256 = "1afi6s2r1mh1kygbjmfba6l4f87pi5sg13p4a48idqafli94qxln"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.0.0"; sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
+  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.0.1"; sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn"; })
+  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
+  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.2.0"; sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.2.0"; sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "5.0.0"; sha256 = "06hkx2za8jifpslkh491dfwzm5dxrsyxzj5lsc0achb6yzg4zqlw"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.0.0"; sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.0.0"; sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.0.0"; sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Pkcs"; version = "5.0.0"; sha256 = "0hb2mndac3xrw3786bsjxjfh19bwnr991qib54k6wsqjhjyyvbwj"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.0.0"; sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "4.4.0"; sha256 = "1q8ljvqhasyynp94a1d7jknk946m20lkwy2c3wa8zw2pc517fbj6"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.1.0"; sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.5.1"; sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "5.0.1"; sha256 = "00yg63qnp94q2qryxxggzigi276bibb8b3b96gcvsyrxy7b703n9"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "4.7.0"; sha256 = "0fp3xrysccm5dkaac4yb51d793vywxks978kkl5x4db9gw29rfdr"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "5.0.2"; sha256 = "0vd0wd29cdhgcjngl9sw391sn2s8xm974y15zvym0whsdgjwiqfx"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
+  (fetchNuGet { pname = "System.Threading.Channels"; version = "5.0.0"; sha256 = "11z28x3cawry60l5phkqrvavm0mshz84n4c79hrz0p65lq8jpxgs"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.2"; sha256 = "1sh63dz0dymqcwmprp0nadm77b83vmm7lyllpv578c397bslb8hj"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.3"; sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
+  (fetchNuGet { pname = "System.Threading.Thread"; version = "4.0.0"; sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc"; })
+  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.0.1"; sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6"; })
+  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
+  (fetchNuGet { pname = "TagLibSharp"; version = "2.2.0"; sha256 = "0jb0f84p4jd59ha36spyk9q08g6fjap3xywq32rcs2xwzhhqiq0y"; })
 ]
diff --git a/pkgs/games/papermc/default.nix b/pkgs/games/papermc/default.nix
index 6740b51cfd92a..e1554bdcb4106 100644
--- a/pkgs/games/papermc/default.nix
+++ b/pkgs/games/papermc/default.nix
@@ -1,10 +1,10 @@
 { lib, stdenv, fetchurl, bash, jre }:
 let
   mcVersion = "1.17.1";
-  buildNum = "97";
+  buildNum = "399";
   jar = fetchurl {
-    url = "https://papermc.io/api/v1/paper/${mcVersion}/${buildNum}/download";
-    sha256 = "sha256:0d7q6v5w872phcgkha7j5sxniqq9wqbh1jxdvyvy6d2jl74g1gzw";
+    url = "https://papermc.io/api/v2/projects/paper/versions/${mcVersion}/builds/${buildNum}/downloads/paper-${mcVersion}-${buildNum}.jar";
+    sha256 = "01374201dkzrx28phy87wji7kzjwx8bpjzv85bjl6672ziskbmpd";
   };
 in stdenv.mkDerivation {
   pname = "papermc";
diff --git a/pkgs/games/pentobi/default.nix b/pkgs/games/pentobi/default.nix
index deb59eb23775a..5cfe06ff8dd0b 100644
--- a/pkgs/games/pentobi/default.nix
+++ b/pkgs/games/pentobi/default.nix
@@ -3,14 +3,14 @@
 }:
 
 mkDerivation rec {
-  version = "18.5";
+  version = "19.0";
   pname = "pentobi";
 
   src = fetchFromGitHub {
     owner = "enz";
     repo = "pentobi";
     rev = "v${version}";
-    sha256 = "sha256-iVgG2Ee1nJWpuquX2ntFHAJrPA0u9YnutmOC+cMrgZg=";
+    sha256 = "sha256-2UeGMAYtVsmKUR7Yw5rogGOd/BTY6twAHuVBU5APp20=";
   };
 
   nativeBuildInputs = [ cmake docbook_xsl qttools ];
diff --git a/pkgs/games/performous/default.nix b/pkgs/games/performous/default.nix
index dce771faec17b..c4af373cdcddb 100644
--- a/pkgs/games/performous/default.nix
+++ b/pkgs/games/performous/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config, gettext
 , glibmm, libxmlxx, pango, librsvg
-, SDL2, glew, boost, ffmpeg, portaudio, epoxy
+, SDL2, glew, boost, ffmpeg, portaudio, libepoxy
 }:
 
 stdenv.mkDerivation rec {
@@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glibmm libxmlxx pango librsvg
-    SDL2 glew boost ffmpeg portaudio epoxy
+    SDL2 glew boost ffmpeg portaudio libepoxy
   ];
 }
diff --git a/pkgs/games/pokerth/default.nix b/pkgs/games/pokerth/default.nix
index 1c9879f8beb9c..ffae1b5cd8f64 100644
--- a/pkgs/games/pokerth/default.nix
+++ b/pkgs/games/pokerth/default.nix
@@ -65,7 +65,7 @@ mkDerivation rec {
     homepage = "https://www.pokerth.net";
     description = "Poker game ${target}";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ obadz yegortimoshenko ];
+    maintainers = with maintainers; [ obadz yana ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/games/quake3/quake3e/default.nix b/pkgs/games/quake3/quake3e/default.nix
index 25c6b4ddec092..7a1da6f6398c0 100644
--- a/pkgs/games/quake3/quake3e/default.nix
+++ b/pkgs/games/quake3/quake3e/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     sed -i -e 's#Sys_LoadLibrary( "libXrandr.so.2" )#Sys_LoadLibrary( "${libXrandr}/lib/libXrandr.so.2" )#' code/unix/x11_randr.c
     sed -i -e 's#Sys_LoadLibrary( "libXxf86vm.so.1" )#Sys_LoadLibrary( "${libXxf86vm}/lib/libXxf86vm.so.1" )#' code/unix/x11_randr.c
     sed -i -e 's#Sys_LoadLibrary( "libXxf86dga.so.1" )#Sys_LoadLibrary( "${libXxf86dga}/lib/libXxf86dga.so.1" )#' code/unix/x11_dga.c
+    sed -i -e 's#"libcurl.so.4"#"${curl.out}/lib/libcurl.so.4"#' code/client/cl_curl.h
   '';
 
   installPhase = ''
diff --git a/pkgs/games/quakespasm/default.nix b/pkgs/games/quakespasm/default.nix
index 7dda3b40ae3a0..ec5ae3e7d1544 100644
--- a/pkgs/games/quakespasm/default.nix
+++ b/pkgs/games/quakespasm/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "quakespasm";
-  version = "0.94.1";
+  version = "0.94.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/quakespasm/quakespasm-${version}.tar.gz";
-    sha256 = "19grpvsk3ikjypx9j0gpfsx5wanrqxkgf8dwl9h6ab5c8wwmjcjp";
+    sha256 = "sha256-PpX20+XHIF4aRosErKGnylXIqdMtG3Ubsi70zNG9Dq0=";
   };
 
   sourceRoot = "${pname}-${version}/Quake";
diff --git a/pkgs/games/quakespasm/vulkan.nix b/pkgs/games/quakespasm/vulkan.nix
index a71f36f723766..f3a5c67ba13da 100644
--- a/pkgs/games/quakespasm/vulkan.nix
+++ b/pkgs/games/quakespasm/vulkan.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vkquake";
-  version = "1.11.0";
+  version = "1.12.2";
 
   src = fetchFromGitHub {
     owner = "Novum";
     repo = "vkQuake";
     rev = version;
-    sha256 = "sha256-FbHqpBiTJWeJPBHUBTOIuXRoLttmDIpip5wUvuVw8YI=";
+    sha256 = "sha256-+AUSsqarDW40JKgDUIF3G9RNOKqQLuQHOGF23L8anPQ=";
   };
 
   sourceRoot = "source/Quake";
diff --git a/pkgs/games/quantumminigolf/default.nix b/pkgs/games/quantumminigolf/default.nix
index 61e2e1c4eb369..26a327dd3f524 100644
--- a/pkgs/games/quantumminigolf/default.nix
+++ b/pkgs/games/quantumminigolf/default.nix
@@ -1,40 +1,38 @@
-{lib, stdenv, fetchurl, fftwSinglePrec, freetype, SDL, SDL_ttf}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="quantumminigolf";
-    version="1.1.1";
-    name="${baseName}-${version}";
-    hash="16av7fk0irhi5nd7y9h9vhb0kf0dk12p6976ai3f60m99qdd8wk3";
-    url="mirror://sourceforge/project/quantumminigolf/quantumminigolf/1.1.1/quantumminigolf-1.1.1.src.tar.gz";
-    sha256="16av7fk0irhi5nd7y9h9vhb0kf0dk12p6976ai3f60m99qdd8wk3";
+{ lib, stdenv, fetchurl, fftwSinglePrec, freetype, SDL, SDL_ttf }:
+
+stdenv.mkDerivation rec {
+  pname = "quantumminigolf";
+  version = "1.1.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/project/quantumminigolf/quantumminigolf/${version}/quantumminigolf-${version}.src.tar.gz";
+    sha256 = "sha256-Y3LUGk6pAuNGVOYkc0WYDbgJFtwJJn+aLRHmCKY7W5k=";
   };
+
   buildInputs = [
-    fftwSinglePrec freetype SDL SDL_ttf
+    fftwSinglePrec
+    freetype
+    SDL
+    SDL_ttf
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
+
   preBuild = ''
     export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${SDL.dev}/include/SDL -I${SDL_ttf}/include/SDL"
 
     sed -re 's@"(gfx|fonts|tracks)/@"'"$out"'/share/quantumminigolf/\1/@g' -i *.cpp
   '';
+
   installPhase = ''
     mkdir -p "$out"/{share/doc,share/quantumminigolf,bin}
     cp README THANKS LICENSE "$out/share/doc"
     cp -r fonts gfx tracks "$out/share/quantumminigolf"
     cp quantumminigolf "$out/bin"
   '';
-  meta = {
-    inherit (s) version;
+
+  meta = with lib; {
     description = "Quantum mechanics-based minigolf-like game";
-    license = lib.licenses.gpl2 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/games/quantumminigolf/default.upstream b/pkgs/games/quantumminigolf/default.upstream
deleted file mode 100644
index a994bb1a6cbe0..0000000000000
--- a/pkgs/games/quantumminigolf/default.upstream
+++ /dev/null
@@ -1,4 +0,0 @@
-url https://sourceforge.net/projects/quantumminigolf/files/quantumminigolf/
-SF_version_dir
-version_link '[.]tar[.][^.]+/download$'
-SF_redirect
diff --git a/pkgs/games/residualvm/default.nix b/pkgs/games/residualvm/default.nix
deleted file mode 100644
index 9a836c5950879..0000000000000
--- a/pkgs/games/residualvm/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, stdenv, fetchurl, SDL, zlib, libmpeg2, libmad, libogg, libvorbis, flac, alsa-lib
-, libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
-, openglSupport ? libGLSupported, libGLU, libGL ? null
-}:
-
-assert openglSupport -> libGL != null && libGLU != null;
-
-stdenv.mkDerivation rec {
-  version = "0.1.1";
-  pname = "residualvm";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/residualvm/residualvm-${version}-sources.tar.bz2";
-    sha256 = "99c419b13885a49bdfc10a50a3a6000fd1ba9504f6aae04c74b840ec6f57a963";
-  };
-
-  buildInputs = [ stdenv SDL zlib libmpeg2 libmad libogg libvorbis flac alsa-lib ]
-    ++ lib.optionals openglSupport [ libGL libGLU ];
-
-  configureFlags = [ "--enable-all-engines" ];
-
-  meta = with lib; {
-    description = "Interpreter for LucasArts' Lua-based 3D adventure games";
-    homepage = "http://residualvm.org/";
-    repositories.git = "https://github.com/residualvm/residualvm.git";
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/games/rpg-cli/default.nix b/pkgs/games/rpg-cli/default.nix
index 23396ebf978d9..8128a67ebeeec 100644
--- a/pkgs/games/rpg-cli/default.nix
+++ b/pkgs/games/rpg-cli/default.nix
@@ -20,6 +20,6 @@ rustPlatform.buildRustPackage rec {
     description = "Your filesystem as a dungeon";
     homepage = "https://github.com/facundoolano/rpg-cli";
     license = licenses.mit;
-    maintainers = with maintainers; [ legendofmiracles ];
+    maintainers = with maintainers; [ lom ];
   };
 }
diff --git a/pkgs/games/sauerbraten/default.nix b/pkgs/games/sauerbraten/default.nix
index 1e43674d2a4a9..7373779c9e5aa 100644
--- a/pkgs/games/sauerbraten/default.nix
+++ b/pkgs/games/sauerbraten/default.nix
@@ -1,5 +1,13 @@
-{ lib, stdenv, fetchzip, SDL2, SDL2_image, SDL2_mixer
-, zlib, makeWrapper
+{ lib
+, stdenv
+, fetchzip
+, SDL2
+, SDL2_image
+, SDL2_mixer
+, zlib
+, makeWrapper
+, copyDesktopItems
+, makeDesktopItem
 }:
 
 stdenv.mkDerivation rec {
@@ -13,26 +21,47 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     makeWrapper
+    copyDesktopItems
   ];
 
   buildInputs = [
-    SDL2 SDL2_mixer SDL2_image
+    SDL2
+    SDL2_mixer
+    SDL2_image
     zlib
   ];
 
   sourceRoot = "source/src";
 
+  enableParallelBuilding = true;
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "sauerbraten";
+      exec = "sauerbraten_client %u";
+      icon = "sauerbraten";
+      desktopName = "Sauerbraten";
+      comment = "FPS that uses an improved version of the Cube engine";
+      categories = "Application;Game;ActionGame;";
+    })
+  ];
+
   installPhase = ''
-    mkdir -p $out/bin $out/share/sauerbraten $out/share/doc/sauerbraten
-    cp -rv "../docs/"* $out/share/doc/sauerbraten/
-    cp -v sauer_client sauer_server $out/share/sauerbraten/
-    cp -rv ../packages ../data $out/share/sauerbraten/
+    runHook preInstall
+
+    mkdir -p $out/bin $out/share/icon/ $out/share/sauerbraten $out/share/doc/sauerbraten
+    cp -r "../docs/"* $out/share/doc/sauerbraten/
+    cp sauer_client sauer_server $out/share/sauerbraten/
+    cp -r ../packages ../data $out/share/sauerbraten/
+    ln -s $out/share/sauerbraten/cube.png $out/share/icon/sauerbraten.png
 
     makeWrapper $out/share/sauerbraten/sauer_server $out/bin/sauerbraten_server \
       --run "cd $out/share/sauerbraten"
     makeWrapper $out/share/sauerbraten/sauer_client $out/bin/sauerbraten_client \
       --run "cd $out/share/sauerbraten" \
-      --add-flags "-q\''${HOME}"
+      --add-flags "-q\''${HOME}/.config/sauerbraten"
+
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -42,9 +71,8 @@ stdenv.mkDerivation rec {
     hydraPlatforms =
       # raskin: tested amd64-linux;
       # not setting platforms because it is 0.5+ GiB of game data
-      [];
-    license = "freeware"; # as an aggregate - data files have different licenses
-                          # code is under zlib license
+      [ ];
+    license = "freeware"; # as an aggregate - data files have different licenses code is under zlib license
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/games/scummvm/default.nix b/pkgs/games/scummvm/default.nix
index d7208265e39dd..8de6206ecd088 100644
--- a/pkgs/games/scummvm/default.nix
+++ b/pkgs/games/scummvm/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "scummvm";
-  version = "2.5.0";
+  version = "2.5.1";
 
   src = fetchurl {
     url = "http://scummvm.org/frs/scummvm/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256:08ynw1cmld41p4bwrw84gb1nv229va70i91qiqsjr3c2jnqy8zml";
+    sha256 = "sha256-n9jbOORFYUS/jDTazffyBOdfGOjkSOwBzgjOgmoDXwE=";
   };
 
   nativeBuildInputs = [ nasm ];
diff --git a/pkgs/games/shattered-pixel-dungeon/default.nix b/pkgs/games/shattered-pixel-dungeon/default.nix
index e67a9f6d470e0..8dc205d51bc39 100644
--- a/pkgs/games/shattered-pixel-dungeon/default.nix
+++ b/pkgs/games/shattered-pixel-dungeon/default.nix
@@ -10,15 +10,15 @@
 
 let
   pname = "shattered-pixel-dungeon";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "00-Evan";
     repo = "shattered-pixel-dungeon";
     # NOTE: always use the commit sha, not the tag. Tags _will_ disappear!
     # https://github.com/00-Evan/shattered-pixel-dungeon/issues/596
-    rev = "1f296a2d1088ad35421f5f8040a9f0803fa46ba8";
-    sha256 = "sha256-MzHdUAzCR2JtIdY1SGuge3xgR6qIhNYxUPOxA+TZtLE=";
+    rev = "7f29a03078647ea503d3c866476568511aa5af84";
+    sha256 = "sha256-+d8X7WFGX8YGb2rGu8jVO82QdlF9ec+6+Ti5wGEIwRg=";
   };
 
   postPatch = ''
@@ -47,7 +47,7 @@ let
         | sh
     '';
     outputHashMode = "recursive";
-    outputHash = "sha256-0P/BcjNnbDN25DguRcCyzPuUG7bouxEx1ySodIbSwvg=";
+    outputHash = "sha256-UI5/ZJbUtEz1Fr+qn6a8kzi9rrP+lVrpBbuDv8TG5y0=";
   };
 
 in stdenv.mkDerivation rec {
diff --git a/pkgs/games/shticker-book-unwritten/default.nix b/pkgs/games/shticker-book-unwritten/default.nix
index 7dbd5c257e89e..aa02087a75aad 100644
--- a/pkgs/games/shticker-book-unwritten/default.nix
+++ b/pkgs/games/shticker-book-unwritten/default.nix
@@ -1,4 +1,4 @@
-{ buildFHSUserEnv, callPackage, lib, stdenvNoCC }:
+{ buildFHSUserEnv, callPackage, lib }:
 let
 
   shticker-book-unwritten-unwrapped = callPackage ./unwrapped.nix { };
@@ -7,11 +7,12 @@ in buildFHSUserEnv {
   name = "shticker_book_unwritten";
   targetPkgs = pkgs: with pkgs; [
       alsa-lib
+      libglvnd
+      libpulseaudio
+      shticker-book-unwritten-unwrapped
       xorg.libX11
       xorg.libXcursor
       xorg.libXext
-      libglvnd
-      shticker-book-unwritten-unwrapped
   ];
   runScript = "shticker_book_unwritten";
 
diff --git a/pkgs/games/sm64ex/default.nix b/pkgs/games/sm64ex/default.nix
index 9bf6b513843d0..c6df2099d3ce3 100644
--- a/pkgs/games/sm64ex/default.nix
+++ b/pkgs/games/sm64ex/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sm64ex";
-  version = "unstable-2020-10-09";
+  version = "unstable-2021-11-30";
 
   src = fetchFromGitHub {
     owner = "sm64pc";
     repo = "sm64ex";
-    rev = "57c203465b2b3eee03dcb796ed1fad07d8283a2c";
-    sha256 = "0k6a3r9f4spa7y2v1lyqs9lwa05lw8xgywllb7w828nal8y33cs6";
+    rev = "db9a6345baa5acb41f9d77c480510442cab26025";
+    sha256 = "sha256-q7JWDvNeNrDpcKVtIGqB1k7I0FveYwrfqu7ZZK7T8F8=";
   };
 
   nativeBuildInputs = [ python3 pkg-config ];
@@ -53,6 +53,8 @@ stdenv.mkDerivation rec {
     cp build/${region}_pc/sm64.${region}.f3dex2e $out/bin/sm64ex
   '';
 
+  enableParallelBuilding = true;
+
   meta = with lib; {
     homepage = "https://github.com/sm64pc/sm64ex";
     description = "Super Mario 64 port based off of decompilation";
diff --git a/pkgs/games/space-cadet-pinball/default.nix b/pkgs/games/space-cadet-pinball/default.nix
new file mode 100644
index 0000000000000..82a22d9857903
--- /dev/null
+++ b/pkgs/games/space-cadet-pinball/default.nix
@@ -0,0 +1,51 @@
+{ lib, stdenv, fetchFromGitHub, fetchzip
+, cmake, SDL2, SDL2_mixer
+, unrar-wrapper, makeWrapper
+}:
+
+let
+  assets = (fetchzip {
+    url = "https://archive.org/download/SpaceCadet_Plus95/Space_Cadet.rar";
+    sha256 = "sha256-fC+zsR8BY6vXpUkVd6i1jF0IZZxVKVvNi6VWCKT+pA4=";
+    stripRoot = false;
+  }).overrideAttrs (old: {
+    nativeBuildInputs = old.nativeBuildInputs ++ [ unrar-wrapper ];
+  });
+in
+stdenv.mkDerivation rec {
+  pname = "SpaceCadetPinball";
+  version = "unstable-2021-12-02";
+
+  src = fetchFromGitHub {
+    owner = "k4zmu2a";
+    repo = pname;
+    rev = "de13d4e326b2dfa8e6dfb59815c0a8b9657f942d";
+    sha256 = "sha256-/nk4kNsmL1z2rKgV1dh9gcVjp8xJwovhE6/u2aNl/fA=";
+  };
+
+  buildInputs = [
+    SDL2
+    SDL2_mixer
+    cmake
+    makeWrapper
+  ];
+
+  postInstall = ''
+    mkdir -p $out/lib/SpaceCadetPinball
+    install ${assets}/*.{DAT,DOC,MID,BMP,INF} ${assets}/Sounds/*.WAV $out/lib/SpaceCadetPinball
+
+    # Assets are loaded from the directory of the program is stored in
+    # https://github.com/k4zmu2a/SpaceCadetPinball/blob/de13d4e326b2dfa8e6dfb59815c0a8b9657f942d/SpaceCadetPinball/winmain.cpp#L119
+    mv $out/bin/SpaceCadetPinball $out/lib/SpaceCadetPinball
+    makeWrapper $out/lib/SpaceCadetPinball/SpaceCadetPinball $out/bin/SpaceCadetPinball
+  '';
+
+  meta = with lib; {
+    description = "Reverse engineering of 3D Pinball for Windows – Space Cadet, a game bundled with Windows";
+    homepage = "https://github.com/k4zmu2a/SpaceCadetPinball";
+    # The assets are unfree while the code is labeled as MIT
+    license = with licenses; [ unfree mit ];
+    maintainers = [ maintainers.hqurve ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/games/spring/default.nix b/pkgs/games/spring/default.nix
index b6e6505fd0883..f8b05bd97091b 100644
--- a/pkgs/games/spring/default.nix
+++ b/pkgs/games/spring/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
     homepage = "https://springrts.com/";
     description = "A powerful real-time strategy (RTS) game engine";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ phreedom qknight domenkozar sorki ];
+    maintainers = with maintainers; [ qknight domenkozar sorki ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/games/spring/springlobby.nix b/pkgs/games/spring/springlobby.nix
index 009457a9dadbc..bf603e2f53080 100644
--- a/pkgs/games/spring/springlobby.nix
+++ b/pkgs/games/spring/springlobby.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     repositories.git = "git://github.com/springlobby/springlobby.git";
     description = "Cross-platform lobby client for the Spring RTS project";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ phreedom qknight domenkozar ];
+    maintainers = with maintainers; [ qknight domenkozar ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/games/starsector/default.nix b/pkgs/games/starsector/default.nix
index de1201e39c390..4aac0afb22b19 100644
--- a/pkgs/games/starsector/default.nix
+++ b/pkgs/games/starsector/default.nix
@@ -12,11 +12,11 @@
 
 stdenv.mkDerivation rec {
   pname = "starsector";
-  version = "0.95a-RC15";
+  version = "0.95.1a-RC5";
 
   src = fetchzip {
     url = "https://s3.amazonaws.com/fractalsoftworks/starsector/starsector_linux-${version}.zip";
-    sha256 = "sha256-/5ij/079aOad7otXSFFcmVmiYQnMX/0RXGOr1j0rkGY=";
+    sha256 = "sha256-V8/WQPvPIrF3Tg7JVO+GfeYqWhkWWrnHSVcFXGQqDAA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/games/steam-tui/default.nix b/pkgs/games/steam-tui/default.nix
index 968f529421d6a..66e17b1752ea8 100644
--- a/pkgs/games/steam-tui/default.nix
+++ b/pkgs/games/steam-tui/default.nix
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec {
     description = "Rust TUI client for steamcmd";
     homepage = "https://github.com/dmadisetti/steam-tui";
     license = licenses.mit;
-    maintainers = with maintainers; [ legendofmiracles ];
+    maintainers = with maintainers; [ lom ];
     # steam only supports that platform
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix
index 2b46c7ff2cfb3..8c379959ad8b0 100644
--- a/pkgs/games/steam/fhsenv.nix
+++ b/pkgs/games/steam/fhsenv.nix
@@ -22,7 +22,6 @@ let
       lsb-release
       # Errors in output without those
       pciutils
-      python2
       # Games' dependencies
       xorg.xrandr
       which
diff --git a/pkgs/games/steam/runtime.nix b/pkgs/games/steam/runtime.nix
index fc38c2eab99f5..8f2398255a41a 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.20210906.1";
+  version = "0.20211102.0";
 
   src = fetchurl {
     url = "https://repo.steampowered.com/steamrt-images-scout/snapshots/${version}/steam-runtime.tar.xz";
-    sha256 = "1dkynar5y4q0pi32ihdhl7r81v9jxsb7lhc91mqhy43f6462qz1h";
+    sha256 = "sha256-/ve4oVxKQ4uTaTiTg8Qc0Kyb4GRJKGZ5SQVLIyeJSpI=";
     name = "scout-runtime-${version}.tar.gz";
   };
 
diff --git a/pkgs/games/steam/steam.nix b/pkgs/games/steam/steam.nix
index fdc0058a2eee9..88e2473801a03 100644
--- a/pkgs/games/steam/steam.nix
+++ b/pkgs/games/steam/steam.nix
@@ -2,15 +2,16 @@
 
 let
   traceLog = "/tmp/steam-trace-dependencies.log";
-  version = "1.0.0.73";
+  version = "1.0.0.74";
 
 in stdenv.mkDerivation {
   pname = "steam-original";
   inherit version;
 
   src = fetchurl {
-    url = "https://repo.steampowered.com/steam/pool/steam/s/steam/steam_${version}.tar.gz";
-    sha256 = "sha256-uVO6D1K8zGlq12lrIs7aTQEVnj1bk1P4wRUtkPWkNZE=";
+    # use archive url so the tarball doesn't 404 on a new release
+    url = "https://repo.steampowered.com/steam/archive/stable/steam_${version}.tar.gz";
+    sha256 = "sha256-sO07g3j1Qejato2LWJ2FrW3AzfMCcBz46HEw7aKxojQ=";
   };
 
   makeFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
diff --git a/pkgs/games/vintagestory/default.nix b/pkgs/games/vintagestory/default.nix
index 721b8c921d244..d19611a08ffeb 100644
--- a/pkgs/games/vintagestory/default.nix
+++ b/pkgs/games/vintagestory/default.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "vintagestory";
-  version = "1.15.5";
+  version = "1.15.10";
 
   src = fetchurl {
     url = "https://cdn.vintagestory.at/gamefiles/stable/vs_archive_${version}.tar.gz";
-    sha256 = "sha256-38vLkH8B1yYC1I8P8uCsbC8CK8Btpfm9tNxgiuswsa8=";
+    sha256 = "sha256-aT6vndo/SSAqd4omyW4qWvGetkqEpgvapqaqDBrbTmo=";
   };
 
   nativeBuildInputs = [ makeWrapper copyDesktopItems ];
diff --git a/pkgs/games/warzone2100/default.nix b/pkgs/games/warzone2100/default.nix
index 0c5c5112f506a..e5656e50de3c6 100644
--- a/pkgs/games/warzone2100/default.nix
+++ b/pkgs/games/warzone2100/default.nix
@@ -26,6 +26,9 @@
 , vulkan-loader
 , shaderc
 
+, testVersion
+, warzone2100
+
 , withVideos ? false
 }:
 
@@ -39,11 +42,11 @@ in
 
 stdenv.mkDerivation rec {
   inherit pname;
-  version  = "4.2.1";
+  version  = "4.2.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/releases/${version}/${pname}_src.tar.xz";
-    sha256 = "sha256-N9D4K3+/Nt3N3/uHDD+jD6tzL0FMwmV7l+WGjGYa3Yk=";
+    sha256 = "sha256-IkD1WkeKas9qtUUTTo9w4cEoGAoX+d+Cr2C5PTUFaEg=";
   };
 
   buildInputs = [
@@ -60,6 +63,7 @@ stdenv.mkDerivation rec {
     freetype
     harfbuzz
     sqlite
+  ] ++ lib.optionals (!stdenv.isDarwin) [
     vulkan-headers
     vulkan-loader
   ];
@@ -93,12 +97,20 @@ stdenv.mkDerivation rec {
     #
     # Alternatively, we could have set CMAKE_INSTALL_BINDIR to "bin".
     "-DCMAKE_INSTALL_DATAROOTDIR=${placeholder "out"}/share"
-  ];
+  ] ++ lib.optional stdenv.isDarwin "-P../configure_mac.cmake";
 
   postInstall = lib.optionalString withVideos ''
     cp ${sequences_src} $out/share/warzone2100/sequences.wz
   '';
 
+  passthru.tests = {
+    version = testVersion {
+      package = warzone2100;
+      # The command always exits with code 1
+      command = "(warzone2100 --version || [ $? -eq 1 ])";
+    };
+  };
+
   meta = with lib; {
     description = "A free RTS game, originally developed by Pumpkin Studios";
     longDescription = ''
@@ -115,6 +127,9 @@ stdenv.mkDerivation rec {
     homepage = "http://wz2100.net";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ astsmtl fgaz ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
+    # configure_mac.cmake tries to download stuff
+    # https://github.com/Warzone2100/warzone2100/blob/master/macosx/README.md
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/games/wesnoth/default.nix b/pkgs/games/wesnoth/default.nix
index 265b193193e80..fa6b8cb631fc9 100644
--- a/pkgs/games/wesnoth/default.nix
+++ b/pkgs/games/wesnoth/default.nix
@@ -1,7 +1,6 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config, SDL2, SDL2_image, SDL2_mixer, SDL2_net, SDL2_ttf
 , pango, gettext, boost, libvorbis, fribidi, dbus, libpng, pcre, openssl, icu
 , Cocoa, Foundation
-, enableTools ? false
 }:
 
 stdenv.mkDerivation rec {
@@ -21,8 +20,6 @@ stdenv.mkDerivation rec {
                   libvorbis fribidi dbus libpng pcre openssl icu ]
                 ++ lib.optionals stdenv.isDarwin [ Cocoa Foundation];
 
-  cmakeFlags = [ "-DENABLE_TOOLS=${if enableTools then "ON" else "OFF"}" ];
-
   meta = with lib; {
     description = "The Battle for Wesnoth, a free, turn-based strategy game with a fantasy theme";
     longDescription = ''
diff --git a/pkgs/games/xboard/default.nix b/pkgs/games/xboard/default.nix
index 90c0f3707cd08..663207bd23c42 100644
--- a/pkgs/games/xboard/default.nix
+++ b/pkgs/games/xboard/default.nix
@@ -1,35 +1,57 @@
-{lib, stdenv, fetchurl, libX11, xorgproto, libXt, libXaw, libSM, libICE, libXmu
-, libXext, gnuchess, texinfo, libXpm, pkg-config, librsvg, cairo, pango
+{ lib
+, stdenv
+, fetchurl
+, libX11
+, xorgproto
+, libXt
+, libXaw
+, libSM
+, libICE
+, libXmu
+, libXext
+, gnuchess
+, texinfo
+, libXpm
+, pkg-config
+, librsvg
+, cairo
+, pango
 , gtk2
 }:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="xboard";
-    version="4.9.1";
-    name="${baseName}-${version}";
-    hash="1mkh36xnnacnz9r00b5f9ld9309k32jv6mcavklbdnca8bl56bib";
-    url="https://ftp.gnu.org/gnu/xboard/xboard-4.9.1.tar.gz";
-    sha256="1mkh36xnnacnz9r00b5f9ld9309k32jv6mcavklbdnca8bl56bib";
+
+stdenv.mkDerivation rec {
+  pname = "xboard";
+  version = "4.9.1";
+
+  src = fetchurl {
+    url = "mirror://gnu/xboard/xboard-${version}.tar.gz";
+    sha256 = "sha256-Ky5T6EKK2bbo3IpVs6UYM4GRGk2uLABy+pYpa7sZcNY=";
   };
+
   buildInputs = [
-    libX11 xorgproto libXt libXaw libSM libICE libXmu
-    libXext gnuchess texinfo libXpm pkg-config librsvg
-    cairo pango gtk2
+    libX11
+    xorgproto
+    libXt
+    libXaw
+    libSM
+    libICE
+    libXmu
+    libXext
+    gnuchess
+    texinfo
+    libXpm
+    pkg-config
+    librsvg
+    cairo
+    pango
+    gtk2
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
-  meta = {
-    inherit (s) version;
+
+  meta = with lib; {
     description = "GUI for chess engines";
     homepage = "https://www.gnu.org/software/xboard/";
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.unix;
-    license = lib.licenses.gpl3Plus;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.unix;
+    license = licenses.gpl3Plus;
   };
 }
diff --git a/pkgs/games/xboard/default.upstream b/pkgs/games/xboard/default.upstream
deleted file mode 100644
index 2e5af5d08725f..0000000000000
--- a/pkgs/games/xboard/default.upstream
+++ /dev/null
@@ -1 +0,0 @@
-url https://ftp.gnu.org/gnu/xboard/
diff --git a/pkgs/games/xsnow/default.nix b/pkgs/games/xsnow/default.nix
index bd617196288c8..ee7cbd8fb48db 100644
--- a/pkgs/games/xsnow/default.nix
+++ b/pkgs/games/xsnow/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xsnow";
-  version = "3.3.1";
+  version = "3.3.6";
 
   src = fetchurl {
     url = "https://ratrabbit.nl/downloads/xsnow/xsnow-${version}.tar.gz";
-    sha256 = "sha256-3piLgcZXQicHisAqr5XxbFqAMHyK7HzU5Re0mvfOBhE=";
+    sha256 = "sha256-rTJO1btS1VBHatj9Yr2R6vZBUPQtCB1Aa6AD6IzwuLg=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/misc/arm-trusted-firmware/default.nix b/pkgs/misc/arm-trusted-firmware/default.nix
index 60ddd621a05aa..d079b3f61ca4d 100644
--- a/pkgs/misc/arm-trusted-firmware/default.nix
+++ b/pkgs/misc/arm-trusted-firmware/default.nix
@@ -6,7 +6,7 @@ let
             , platform ? null
             , extraMakeFlags ? []
             , extraMeta ? {}
-            , version ? "2.5"
+            , version ? "2.6"
             , ... } @ args:
            stdenv.mkDerivation ({
 
@@ -17,7 +17,7 @@ let
       owner = "ARM-software";
       repo = "arm-trusted-firmware";
       rev = "v${version}";
-      sha256 = "0w3blkqgmyb5bahlp04hmh8abrflbzy0qg83kmj1x9nv4mw66f3b";
+      sha256 = "sha256-qT9DdTvMcUrvRzgmVf2qmKB+Rb1WOB4p1rM+fsewGcg=";
     };
 
     depsBuildBuild = [ buildPackages.stdenv.cc ];
diff --git a/pkgs/misc/autotiling/default.nix b/pkgs/misc/autotiling/default.nix
index 56e607c9d604e..756a17d04f5b0 100644
--- a/pkgs/misc/autotiling/default.nix
+++ b/pkgs/misc/autotiling/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonApplication rec {
   pname = "autotiling";
-  version = "1.5";
+  version = "1.6";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ih8yd1gankjxn88gd88vxs6f1cniyi04z25jz4nsgqi9snz65v4";
+    sha256 = "1hjlvg7095s322gb43r9g7mqlsy3pj13l827jpnbn5x0918rq9rr";
   };
 
   propagatedBuildInputs = [ i3ipc importlib-metadata ];
diff --git a/pkgs/misc/cliscord/default.nix b/pkgs/misc/cliscord/default.nix
index 7307fc6070095..485a6c0504179 100644
--- a/pkgs/misc/cliscord/default.nix
+++ b/pkgs/misc/cliscord/default.nix
@@ -21,7 +21,7 @@ rustPlatform.buildRustPackage rec {
     description = "Simple command-line tool to send text and files to discord";
     homepage = "https://github.com/somebody1234/cliscord";
     license = licenses.mit;
-    maintainers = with maintainers; [ legendofmiracles ];
+    maintainers = with maintainers; [ lom ];
     mainProgram = "cliscord";
   };
 }
diff --git a/pkgs/misc/cups/0001-TargetConditionals.patch b/pkgs/misc/cups/0001-TargetConditionals.patch
new file mode 100644
index 0000000000000..42cd4c051d4bf
--- /dev/null
+++ b/pkgs/misc/cups/0001-TargetConditionals.patch
@@ -0,0 +1,29 @@
+From 1204c841999808ba27267a0039777dcbccdcd6e3 Mon Sep 17 00:00:00 2001
+From: toonn <toonn@toonn.io>
+Date: Sun, 27 Jun 2021 12:30:08 +0200
+Subject: [PATCH] TargetConditionals
+
+---
+ test/ippserver.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/test/ippserver.c b/test/ippserver.c
+index 38b304f..68ccab1 100644
+--- a/test/ippserver.c
++++ b/test/ippserver.c
+@@ -25,7 +25,11 @@
+  * Include necessary headers...
+  */
+ 
+-#include <config.h>			/* CUPS configuration header */
++#ifdef __APPLE__
++#  include <xcode/config.h>		/* CUPS configuration header macOS */
++#else
++#  include <config.h>			/* CUPS configuration header */
++#endif /* __APPLE__ */
+ #include <cups/cups.h>			/* Public API */
+ #include <cups/string-private.h>	/* CUPS string functions */
+ #include <cups/thread-private.h>	/* For multithreading functions */
+-- 
+2.17.2 (Apple Git-113)
+
diff --git a/pkgs/misc/cups/default.nix b/pkgs/misc/cups/default.nix
index 1d467f0a53473..bbada33054d37 100644
--- a/pkgs/misc/cups/default.nix
+++ b/pkgs/misc/cups/default.nix
@@ -40,6 +40,8 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "lib" "dev" "man" ];
 
+  patches = lib.optional (version == "2.2.6") ./0001-TargetConditionals.patch;
+
   postPatch = ''
     substituteInPlace cups/testfile.c \
       --replace 'cupsFileFind("cat", "/bin' 'cupsFileFind("cat", "${coreutils}/bin'
diff --git a/pkgs/misc/cups/drivers/estudio/default.nix b/pkgs/misc/cups/drivers/estudio/default.nix
index 5dd4c88150597..1af8d1f575b86 100644
--- a/pkgs/misc/cups/drivers/estudio/default.nix
+++ b/pkgs/misc/cups/drivers/estudio/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation {
       TOSHIBA e-STUDIO6540C, TOSHIBA e-STUDIO6550C, TOSHIBA e-STUDIO6560C,
       TOSHIBA e-STUDIO6570C and TOSHIBA e-STUDIO7506AC.
     '';
-    homepage = "http://business.toshiba.com/support/downloads/index.html";
+    homepage = "https://business.toshiba.com/support/downloads/index.html";
     license = licenses.unfree;
     maintainers = [ maintainers.jpotier ];
   };
diff --git a/pkgs/misc/cups/drivers/hll2350dw/default.nix b/pkgs/misc/cups/drivers/hll2350dw/default.nix
new file mode 100644
index 0000000000000..3fd0c0fbac09c
--- /dev/null
+++ b/pkgs/misc/cups/drivers/hll2350dw/default.nix
@@ -0,0 +1,94 @@
+{ lib
+, stdenv
+, fetchurl
+, dpkg
+, autoPatchelfHook
+, makeWrapper
+, perl
+, gnused
+, ghostscript
+, file
+, coreutils
+, gnugrep
+, which
+}:
+
+let
+  arches = [ "x86_64" "i686" "armv7l" ];
+
+  runtimeDeps = [
+    ghostscript
+    file
+    gnused
+    gnugrep
+    coreutils
+    which
+  ];
+in
+
+stdenv.mkDerivation rec {
+  pname = "cups-brother-hll2350dw";
+  version = "4.0.0-1";
+
+  nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook ];
+  buildInputs = [ perl ];
+
+  dontUnpack = true;
+
+  src = fetchurl {
+    url = "https://download.brother.com/welcome/dlf103566/hll2350dwpdrv-${version}.i386.deb";
+    sha256 = "0b7hhln105agc3rwpi7cjlx5nf4d2yk9iksahdv3725nnd06lg46";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    dpkg-deb -x $src $out
+
+    # delete unnecessary files for the current architecture
+  '' + lib.concatMapStrings (arch: ''
+    echo Deleting files for ${arch}
+    rm -r "$out/opt/brother/Printers/HLL2350DW/lpd/${arch}"
+  '') (builtins.filter (arch: arch != stdenv.hostPlatform.linuxArch) arches) + ''
+
+      # bundled scripts don't understand the arch subdirectories for some reason
+      ln -s \
+        "$out/opt/brother/Printers/HLL2350DW/lpd/${stdenv.hostPlatform.linuxArch}/"* \
+        "$out/opt/brother/Printers/HLL2350DW/lpd/"
+
+      # Fix global references and replace auto discovery mechanism with hardcoded values
+      substituteInPlace $out/opt/brother/Printers/HLL2350DW/lpd/lpdfilter \
+        --replace /opt "$out/opt" \
+        --replace "my \$BR_PRT_PATH =" "my \$BR_PRT_PATH = \"$out/opt/brother/Printers/HLL2350DW\"; #" \
+        --replace "PRINTER =~" "PRINTER = \"HLL2350DW\"; #"
+
+      # Make sure all executables have the necessary runtime dependencies available
+      find "$out" -executable -and -type f | while read file; do
+        wrapProgram "$file" --prefix PATH : "${lib.makeBinPath runtimeDeps}"
+      done
+
+      # Symlink filter and ppd into a location where CUPS will discover it
+      mkdir -p $out/lib/cups/filter
+      mkdir -p $out/share/cups/model
+
+      ln -s \
+        $out/opt/brother/Printers/HLL2350DW/lpd/lpdfilter \
+        $out/lib/cups/filter/brother_lpdwrapper_HLL2350DW
+
+      ln -s \
+        $out/opt/brother/Printers/HLL2350DW/cupswrapper/brother-HLL2350DW-cups-en.ppd \
+        $out/share/cups/model/
+
+      runHook postInstall
+    '';
+
+  meta = with lib; {
+    homepage = "http://www.brother.com/";
+    description = "Brother HL-L2350DW printer driver";
+    license = licenses.unfree;
+    platforms = builtins.map (arch: "${arch}-linux") arches;
+    downloadPage = "https://support.brother.com/g/b/downloadlist.aspx?c=us_ot&lang=en&prod=hll2350dw_us_eu_as&os=128";
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/pkgs/misc/cups/drivers/mfcj470dwcupswrapper/default.nix b/pkgs/misc/cups/drivers/mfcj470dwcupswrapper/default.nix
index 2ff073591d05d..dc54611d335a7 100644
--- a/pkgs/misc/cups/drivers/mfcj470dwcupswrapper/default.nix
+++ b/pkgs/misc/cups/drivers/mfcj470dwcupswrapper/default.nix
@@ -21,8 +21,7 @@ stdenv.mkDerivation rec {
     --replace /etc "$out/etc"
 
     substituteInPlace $WRAPPER \
-    --replace "\`cp " "\`cp -p " \
-    --replace "\`mv " "\`cp -p "
+    --replace "cp " "cp -p "
     '';
 
   buildPhase = ''
@@ -33,11 +32,18 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     TARGETFOLDER=$out/opt/brother/Printers/mfcj470dw/cupswrapper/
-    mkdir -p $out/opt/brother/Printers/mfcj470dw/cupswrapper/
+    PPDFOLDER=$out/share/cups/model/
+    FILTERFOLDER=$out/lib/cups/filter/
+
+    mkdir -p $TARGETFOLDER
+    mkdir -p $PPDFOLDER
+    mkdir -p $FILTERFOLDER
 
     cp brcupsconfpt1/brcupsconfpt1 $TARGETFOLDER
-    cp cupswrapper/cupswrappermfcj470dw $TARGETFOLDER/
-    cp PPD/brother_mfcj470dw_printer_en.ppd $TARGETFOLDER/
+    cp cupswrapper/cupswrappermfcj470dw $TARGETFOLDER
+    cp PPD/brother_mfcj470dw_printer_en.ppd $PPDFOLDER
+
+    ln -s ${mfcj470dwlpr}/lib/cups/filter/brother_lpdwrapper_mfcj470dw $FILTERFOLDER/
     '';
 
   cleanPhase = ''
diff --git a/pkgs/misc/cups/drivers/mfcl2740dwcupswrapper/default.nix b/pkgs/misc/cups/drivers/mfcl2740dwcupswrapper/default.nix
index a119c31517ce8..2cad0ceba55be 100644
--- a/pkgs/misc/cups/drivers/mfcl2740dwcupswrapper/default.nix
+++ b/pkgs/misc/cups/drivers/mfcl2740dwcupswrapper/default.nix
@@ -40,6 +40,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.brother.com/";
     license = lib.licenses.gpl2;
     platforms = [ "x86_64-linux" "i686-linux" ];
-    maintainers = [ lib.maintainers.enzime ];
+    maintainers = [ lib.maintainers.Enzime ];
   };
 }
diff --git a/pkgs/misc/cups/drivers/mfcl2740dwlpr/default.nix b/pkgs/misc/cups/drivers/mfcl2740dwlpr/default.nix
index 38722a734a668..dc25dbb5a25f2 100644
--- a/pkgs/misc/cups/drivers/mfcl2740dwlpr/default.nix
+++ b/pkgs/misc/cups/drivers/mfcl2740dwlpr/default.nix
@@ -38,6 +38,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.brother.com/";
     license = lib.licenses.unfree;
     platforms = [ "x86_64-linux" "i686-linux" ];
-    maintainers = [ lib.maintainers.enzime ];
+    maintainers = [ lib.maintainers.Enzime ];
   };
 }
diff --git a/pkgs/misc/drivers/epson-escpr2/default.nix b/pkgs/misc/drivers/epson-escpr2/default.nix
index 395d504e136f4..44c6e8a4c6107 100644
--- a/pkgs/misc/drivers/epson-escpr2/default.nix
+++ b/pkgs/misc/drivers/epson-escpr2/default.nix
@@ -2,19 +2,15 @@
 
 stdenv.mkDerivation rec {
   pname = "epson-inkjet-printer-escpr2";
-  version = "1.1.42";
+  version = "1.1.45";
 
   src = fetchurl {
     # To find new versions, visit
     # http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX and search for
     # some printer like for instance "WF-7210" to get to the most recent
     # version.
-    # NOTE: Don't forget to update the webarchive link too!
-    urls = [
-      "https://download3.ebz.epson.net/dsc/f/03/00/13/07/72/df79cc238a167b9526f70cc123459c6bbe1edbad/epson-inkjet-printer-escpr2-1.1.42-1lsb3.2.src.rpm"
-      "https://web.archive.org/web/20211029093638/https://download3.ebz.epson.net/dsc/f/03/00/13/07/72/df79cc238a167b9526f70cc123459c6bbe1edbad/epson-inkjet-printer-escpr2-1.1.42-1lsb3.2.src.rpm"
-    ];
-    sha256 = "sha256-CsZUurwwoXNWONZKAIkRd0ztmAr5wLWZhirCzJWWqMA=";
+    url = "https://download3.ebz.epson.net/dsc/f/03/00/13/38/11/01e244e8529c5cbcec8d39220a9512d5e6c08eec/epson-inkjet-printer-escpr2-1.1.45-1lsb3.2.src.rpm";
+    sha256 = "sha256-MZXn1fsD3D6W5vlX+NwRkwLtaBRqQwe9lwnJC2L9Lfk=";
   };
 
   unpackPhase = ''
diff --git a/pkgs/misc/drivers/utsushi/default.nix b/pkgs/misc/drivers/utsushi/default.nix
index 46a72fdd0dad9..dcb04f5ce5784 100644
--- a/pkgs/misc/drivers/utsushi/default.nix
+++ b/pkgs/misc/drivers/utsushi/default.nix
@@ -1,6 +1,8 @@
-{ lib, stdenv, writeScriptBin, fetchFromGitLab, autoreconfHook, pkg-config
-, autoconf-archive, libxslt, boost , gtkmm2 , imagemagick, sane-backends
-, tesseract4, udev, libusb1 }:
+{ lib, stdenv, writeScriptBin, fetchpatch, fetchFromGitLab, autoreconfHook, pkg-config
+, autoconf-archive, libxslt, boost, gtkmm2, imagemagick, sane-backends
+, tesseract4, udev, libusb1
+, withNetworkScan ? false, utsushi-networkscan
+}:
 
 
 let
@@ -10,17 +12,29 @@ let
       [ -r .rev ] && cat .rev || true
     fi
   '';
+
 in stdenv.mkDerivation rec {
-  pname = "utsushi";
-  version = "unstable-2021-01-01";
+  pname = "imagescan";
+  version = "3.65.0";
 
   src = fetchFromGitLab {
-    owner = pname;
+    owner = "utsushi";
     repo = pname;
-    rev = "1646d7d301f3d2aeb24930696688853fed5f0d43";
-    sha256 = "1g9m00qljhlw56h3hgfq67ywf4r92nl37m7x5mxa7ygaxc0dyb14";
+    rev = version;
+    sha256 = "sha256-CrN9F/WJKmlDN7eozEHtKgGUQBWVwTqwjnrfiATk7lI=";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-gfx/iscan/files/iscan-3.63.0-autoconf-2.70.patch?id=4fe8a9e6c60f9163cadad830ba4935c069c67b10";
+      sha256 = "sha256-2V4cextjcEQrywe4tvvD5KaVYdXnwdNhTiY/aSNx3mM=";
+    })
+    (fetchpatch {
+      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-gfx/iscan/files/iscan-3.61.0-imagemagick-7.patch?id=985c92af4730d864e86fa87746185b0246e9db93";
+      sha256 = "sha256-dfdVMp3ZfclYeRxYjMIvl+ZdlLn9S+IwQ+OmlHW8318=";
+    })
+  ];
+
   nativeBuildInputs = [
     autoreconfHook
     pkg-config
@@ -49,8 +63,8 @@ in stdenv.mkDerivation rec {
     # create fake udev and sane config
     mkdir -p $out/etc/{sane.d,udev/rules.d}
     touch $out/etc/sane.d/dll.conf
+
     # absolute paths to convert & tesseract
-    sed -i '/\[AC_DEFINE(\[HAVE_IMAGE_MAGICK\], \[1\])/a \             MAGICK_CONVERT="${imagemagick}/bin/convert"' configure.ac
     substituteInPlace filters/magick.cpp \
       --replace 'convert ' '${imagemagick}/bin/convert '
     substituteInPlace filters/reorient.cpp \
@@ -77,6 +91,10 @@ in stdenv.mkDerivation rec {
 
   doInstallCheck = false;
 
+  postInstall = lib.optionalString withNetworkScan ''
+    ln -s ${utsushi-networkscan}/libexec/utsushi/networkscan $out/libexec/utsushi
+  '';
+
   meta = with lib; {
     description = "SANE utsushi backend for some Epson scanners";
     longDescription = ''
diff --git a/pkgs/misc/drivers/utsushi/networkscan.nix b/pkgs/misc/drivers/utsushi/networkscan.nix
new file mode 100644
index 0000000000000..09230b16cb44b
--- /dev/null
+++ b/pkgs/misc/drivers/utsushi/networkscan.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchurl, rpmextract }:
+
+stdenv.mkDerivation rec {
+  pname = "imagescan-plugin-networkscan";
+  imagescanVersion = "3.65.0";
+  version = "1.1.4";
+
+  src = fetchurl {
+    url = "https://download2.ebz.epson.net/imagescanv3/fedora/latest1/rpm/x64/imagescan-bundle-fedora-32-${imagescanVersion}.x64.rpm.tar.gz";
+    sha256 = "sha256-fxi63sV+YJOlv1aVTfCPIXOPfNAo+R7zNPvA11sFmMk=";
+  };
+
+  nativeBuildInputs = [ rpmextract ];
+
+  installPhase = ''
+    rpmextract plugins/imagescan-plugin-networkscan-${version}-*.x86_64.rpm
+    install -Dm755 usr/libexec/utsushi/networkscan $out/libexec/utsushi/networkscan
+    patchelf \
+      --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+      --set-rpath ${lib.makeLibraryPath [ stdenv.cc.cc ]} \
+      $out/libexec/utsushi/networkscan
+  '';
+
+  meta = with lib; {
+    homepage = "https://support.epson.net/linux/en/imagescanv3.php";
+    description = "Network scan plugin for ImageScan v3";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ abbradar ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/misc/emulators/ares/default.nix b/pkgs/misc/emulators/ares/default.nix
new file mode 100644
index 0000000000000..33a7858455d67
--- /dev/null
+++ b/pkgs/misc/emulators/ares/default.nix
@@ -0,0 +1,84 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, alsa-lib
+, gtksourceview3
+, libXv
+, openal
+, libpulseaudio
+, libao
+, udev
+, SDL2
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ares";
+  version = "126";
+
+  src = fetchFromGitHub {
+    owner = "ares-emulator";
+    repo = "ares";
+    rev = "v${version}";
+    sha256 = "1rj4vmz8lvpmfc6wni7222kagnw9f6jda9rcb6qky2kpizlp2d24";
+  };
+
+  parallel-rdp = fetchFromGitHub {
+    owner = "Themaister";
+    repo = "parallel-rdp-standalone";
+    rev = "0dcebe11ee79288441e40e145c8f340d81f52316";
+    sha256 = "1avp4wyfkhk5yfjqx5w3jbqghn2mq5la7k9248kjmnp9n9lip6w9";
+  };
+
+  patches = [
+    ./fix-ruby.patch
+  ];
+
+  enableParallelBuilding = true;
+  dontConfigure = true;
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    alsa-lib
+    gtksourceview3
+    libXv
+    openal
+    libpulseaudio
+    libao
+    udev
+    SDL2
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    rm -rf ares/n64/vulkan/parallel-rdp
+    ln -sf ${parallel-rdp} ares/n64/vulkan/parallel-rdp
+    make -C desktop-ui -j $NIX_BUILD_CORES openmp=true vulkan=true local=false hiro=gtk3
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,share/{applications,ares,pixmaps}}
+    cp desktop-ui/out/ares $out/bin
+    cp desktop-ui/resource/ares.desktop $out/share/applications
+    cp desktop-ui/resource/{ares{.ico,.png},font.png} $out/share/pixmaps
+    cp -r ares/{Shaders,System} $out/share/ares
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://ares.dev";
+    description = "Open-source multi-system emulator with a focus on accuracy and preservation";
+    license = licenses.isc;
+    maintainers = with maintainers; [ Madouura ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/misc/emulators/ares/fix-ruby.patch b/pkgs/misc/emulators/ares/fix-ruby.patch
new file mode 100644
index 0000000000000..01bd57ebaaddf
--- /dev/null
+++ b/pkgs/misc/emulators/ares/fix-ruby.patch
@@ -0,0 +1,27 @@
+diff --git a/ruby/GNUmakefile b/ruby/GNUmakefile
+index e85a51701..7fca89e0f 100644
+--- a/ruby/GNUmakefile
++++ b/ruby/GNUmakefile
+@@ -8,19 +8,9 @@ ifeq ($(ruby),)
+     ruby += audio.openal
+     ruby += input.quartz #input.carbon
+   else ifeq ($(platform),linux)
+-    pkg_check1 = $(if $(shell test -e /usr/lib/lib$1.so && echo 1),$2)
+-    pkg_check2 = $(if $(shell test -e /usr/lib/$(shell uname -m)-linux-gnu/lib$1.so && echo 1),$2)
+-    pkg_check = $(call pkg_check1,$1,$2) $(call pkg_check2,$1,$2)
+-    ruby += video.glx video.glx2 video.xshm
+-    ruby += $(call pkg_check,Xv,video.xvideo)
+-    ruby += audio.oss audio.alsa
+-    ruby += $(call pkg_check,openal,audio.openal)
+-    ruby += $(call pkg_check,pulse,audio.pulseaudio)
+-    ruby += $(call pkg_check,pulse-simple,audio.pulseaudiosimple)
+-    ruby += $(call pkg_check,ao,audio.ao)
+-    ruby += input.xlib
+-    ruby += $(call pkg_check,udev,input.udev)
+-    ruby += $(call pkg_check,SDL2,input.sdl)
++    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 test -e /usr/local/lib/lib$1.so && echo 1),$2)
+     ruby += video.glx video.glx2 video.xshm
diff --git a/pkgs/misc/emulators/citra/default.nix b/pkgs/misc/emulators/citra/default.nix
index c1d4724cee9bb..92d0f5b1d3648 100644
--- a/pkgs/misc/emulators/citra/default.nix
+++ b/pkgs/misc/emulators/citra/default.nix
@@ -3,21 +3,23 @@
 , fetchFromGitHub
 , cmake
 , wrapQtAppsHook
-, SDL2
-, qtbase
-, qtmultimedia
 , boost17x
-, libpulseaudio
 , pkg-config
 , libusb1
 , zstd
 , libressl
-, alsa-lib
-, rapidjson
-, aacHleDecoding ? true
-, fdk_aac
-, ffmpeg-full
+, enableSdl2 ? true, SDL2
+, enableQt ? true, qtbase, qtmultimedia
+, enableQtTranslation ? enableQt, qttools
+, enableWebService ? true
+, enableCubeb ? true, libpulseaudio
+, enableFfmpegAudioDecoder ? true
+, enableFfmpegVideoDumper ? true
+, ffmpeg
+, useDiscordRichPresence ? true, rapidjson
+, enableFdk ? false, fdk_aac
 }:
+assert lib.assertMsg (!enableFfmpegAudioDecoder || !enableFdk) "Can't enable both enableFfmpegAudioDecoder and enableFdk";
 
 stdenv.mkDerivation {
   pname = "citra";
@@ -31,36 +33,43 @@ stdenv.mkDerivation {
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [ cmake wrapQtAppsHook pkg-config ];
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ]
+  ++ lib.optionals enableQt [ wrapQtAppsHook ];
+
   buildInputs = [
-    SDL2
-    qtbase
-    qtmultimedia
-    libpulseaudio
     boost17x
     libusb1
-    alsa-lib
-    rapidjson # for discord-rpc
-  ] ++ lib.optional aacHleDecoding [ fdk_aac ffmpeg-full ];
+  ]
+  ++ lib.optionals enableSdl2 [ SDL2 ]
+  ++ lib.optionals enableQt [ qtbase qtmultimedia ]
+  ++ lib.optionals enableQtTranslation [ qttools ]
+  ++ lib.optionals enableCubeb [ libpulseaudio ]
+  ++ lib.optionals (enableFfmpegAudioDecoder || enableFfmpegVideoDumper) [ ffmpeg ]
+  ++ lib.optionals useDiscordRichPresence [ rapidjson ]
+  ++ lib.optionals enableFdk [ fdk_aac ];
 
   cmakeFlags = [
     "-DUSE_SYSTEM_BOOST=ON"
-    "-DUSE_DISCORD_PRESENCE=ON"
-  ] ++ lib.optionals aacHleDecoding [
-    "-DENABLE_FFMPEG_AUDIO_DECODER=ON"
-    "-DCITRA_USE_BUNDLED_FFMPEG=OFF"
-  ];
+  ]
+  ++ lib.optionals (!enableSdl2) [ "-DENABLE_SDL2=OFF" ]
+  ++ lib.optionals (!enableQt) [ "-DENABLE_QT=OFF" ]
+  ++ lib.optionals enableQtTranslation [ "-DENABLE_QT_TRANSLATION=ON" ]
+  ++ lib.optionals (!enableWebService) [ "-DENABLE_WEB_SERVICE=OFF" ]
+  ++ lib.optionals (!enableCubeb) [ "-DENABLE_CUBEB=OFF" ]
+  ++ lib.optionals enableFfmpegAudioDecoder [ "-DENABLE_FFMPEG_AUDIO_DECODER=ON"]
+  ++ lib.optionals enableFfmpegVideoDumper [ "-DENABLE_FFMPEG_VIDEO_DUMPER=ON" ]
+  ++ lib.optionals useDiscordRichPresence [ "-DUSE_DISCORD_PRESENCE=ON" ]
+  ++ lib.optionals enableFdk [ "-DENABLE_FDK=ON" ];
 
   postPatch = ''
-    # we already know the submodules are present
+    # We already know the submodules are present
     substituteInPlace CMakeLists.txt \
       --replace "check_submodules_present()" ""
 
-    # Trick configure system.
-    sed -n 's,^ *path = \(.*\),\1,p' .gitmodules | while read path; do
-    mkdir "$path/.git"
-    done
-
+    # Devendoring
     rm -rf externals/zstd externals/libressl
     cp -r ${zstd.src} externals/zstd
     tar xf ${libressl.src} -C externals/
@@ -69,6 +78,7 @@ stdenv.mkDerivation {
   '';
 
   # Todo: cubeb audio backend (the default one) doesn't work on the SDL interface.
+  # This seems to be a problem with libpulseaudio, other applications have similar problems (e.g Duckstation).
   # Note that the two interfaces have two separate configuration files.
 
   meta = with lib; {
diff --git a/pkgs/misc/emulators/dolphin-emu/master.nix b/pkgs/misc/emulators/dolphin-emu/master.nix
index d5133c8618d73..1afa976117195 100644
--- a/pkgs/misc/emulators/dolphin-emu/master.nix
+++ b/pkgs/misc/emulators/dolphin-emu/master.nix
@@ -2,7 +2,7 @@
 , wrapQtAppsHook, qtbase, bluez, ffmpeg, libao, libGLU, libGL, pcre, gettext
 , libXrandr, libusb1, lzo, libpthreadstubs, libXext, libXxf86vm, libXinerama
 , libSM, libXdmcp, readline, openal, udev, libevdev, portaudio, curl, alsa-lib
-, miniupnpc, enet, mbedtls, soundtouch, sfml
+, miniupnpc, enet, mbedtls, soundtouch, sfml, writeScript
 , vulkan-loader ? null, libpulseaudio ? null
 
 # - Inputs used for Darwin
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dolphin-emu";
-  version = "5.0-15260";
+  version = "5.0-15445";
 
   src = fetchFromGitHub {
     owner = "dolphin-emu";
     repo = "dolphin";
-    rev = "207c931a04c8e2629a735bc2b3f36b5c89365ca7";
-    sha256 = "15r9syk7f62h16klcznw7css6sng8nqkkz4d1qr8d988rdfaiypx";
+    rev = "db02b50d2ecdfbbc21e19aadc57253c353069f77";
+    sha256 = "l2vbTZOcjfyZjKOI3n5ig2f7cDYR22GcqKS479LMtP8=";
     fetchSubmodules = true;
   };
 
@@ -64,6 +64,17 @@ stdenv.mkDerivation rec {
     install -D $src/Data/51-usb-device.rules $out/etc/udev/rules.d/51-usb-device.rules
   '';
 
+
+  passthru.updateScript = writeScript "dolphin-update-script" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p curl jq common-updater-scripts
+    set -eou pipefail
+    json="$(curl -s https://dolphin-emu.org/update/latest/beta)"
+    version="$(jq -r '.shortrev' <<< "$json")"
+    rev="$(jq -r '.hash' <<< "$json")"
+    update-source-version dolphin-emu-beta "$version" --rev="$rev"
+  '';
+
   meta = with lib; {
     homepage = "https://dolphin-emu.org";
     description = "Gamecube/Wii/Triforce emulator for x86_64 and ARMv8";
diff --git a/pkgs/misc/emulators/dolphin-emu/primehack.nix b/pkgs/misc/emulators/dolphin-emu/primehack.nix
new file mode 100644
index 0000000000000..90510d645226f
--- /dev/null
+++ b/pkgs/misc/emulators/dolphin-emu/primehack.nix
@@ -0,0 +1,151 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, cmake
+, wrapQtAppsHook
+, qtbase
+, bluez
+, ffmpeg
+, libao
+, libGLU
+, libGL
+, pcre
+, gettext
+, libXrandr
+, libusb1
+, lzo
+, libpthreadstubs
+, libXext
+, libXxf86vm
+, libXinerama
+, libSM
+, libXdmcp
+, readline
+, openal
+, udev
+, libevdev
+, portaudio
+, curl
+, alsa-lib
+, miniupnpc
+, enet
+, mbedtls
+, soundtouch
+, sfml
+, fmt
+, vulkan-loader
+, libpulseaudio
+
+# - Inputs used for Darwin
+, CoreBluetooth
+, ForceFeedback
+, IOKit
+, OpenGL
+, libpng
+, hidapi
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dolphin-emu-primehack";
+  version = "1.0.5";
+
+  src = fetchFromGitHub {
+    owner = "shiiion";
+    repo = "dolphin";
+    rev = version;
+    sha256 = "011qghswgh9l7k993lfn1hrwhgyrv9m33smgspsjq50jww6r27fl";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    cmake
+  ] ++ lib.optional stdenv.isLinux wrapQtAppsHook;
+
+  buildInputs = [
+    curl
+    ffmpeg
+    libao
+    libGLU
+    libGL
+    pcre
+    gettext
+    libpthreadstubs
+    libpulseaudio
+    libXrandr
+    libXext
+    libXxf86vm
+    libXinerama
+    libSM
+    readline
+    openal
+    libXdmcp
+    lzo
+    portaudio
+    libusb1
+    libpng
+    hidapi
+    miniupnpc
+    enet
+    mbedtls
+    soundtouch
+    sfml
+    fmt
+    qtbase
+  ] ++ lib.optionals stdenv.isLinux [
+    bluez
+    udev
+    libevdev
+    alsa-lib
+    vulkan-loader
+  ] ++ lib.optionals stdenv.isDarwin [
+    CoreBluetooth
+    OpenGL
+    ForceFeedback
+    IOKit
+  ];
+
+  cmakeFlags = [
+    "-DUSE_SHARED_ENET=ON"
+    "-DENABLE_LTO=ON"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "-DOSX_USE_DEFAULT_SEARCH_PATH=True"
+  ];
+
+  qtWrapperArgs = lib.optionals stdenv.isLinux [
+    "--prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib"
+    # https://bugs.dolphin-emu.org/issues/11807
+    # The .desktop file should already set this, but Dolphin may be launched in other ways
+    "--set QT_QPA_PLATFORM xcb"
+  ];
+
+  # - Allow Dolphin to use nix-provided libraries instead of building them
+  postPatch = ''
+    substituteInPlace CMakeLists.txt --replace 'DISTRIBUTOR "None"' 'DISTRIBUTOR "NixOS"'
+  '' + lib.optionalString stdenv.isDarwin ''
+    substituteInPlace CMakeLists.txt --replace 'if(NOT APPLE)' 'if(true)'
+    substituteInPlace CMakeLists.txt --replace 'if(LIBUSB_FOUND AND NOT APPLE)' 'if(LIBUSB_FOUND)'
+  '';
+
+  postInstall = ''
+    mv $out/bin/dolphin-emu $out/bin/dolphin-emu-primehack
+    mv $out/bin/dolphin-emu-nogui $out/bin/dolphin-emu-primehack-nogui
+    mv $out/share/applications/dolphin-emu.desktop $out/share/applications/dolphin-emu-primehack.desktop
+    mv $out/share/icons/hicolor/256x256/apps/dolphin-emu.png $out/share/icons/hicolor/256x256/apps/dolphin-emu-primehack.png
+    substituteInPlace $out/share/applications/dolphin-emu-primehack.desktop --replace 'dolphin-emu' 'dolphin-emu-primehack'
+  '' + lib.optionalString stdenv.hostPlatform.isLinux ''
+    install -D $src/Data/51-usb-device.rules $out/etc/udev/rules.d/51-usb-device.rules
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/shiiion/dolphin";
+    description = "Gamecube/Wii/Triforce emulator for x86_64 and ARMv8";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ MP2E ashkitten Madouura ];
+    # x86_32 is an unsupported platform.
+    # Enable generic build if you really want a JIT-less binary.
+    broken = stdenv.isDarwin;
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+  };
+}
diff --git a/pkgs/misc/emulators/duckstation/default.nix b/pkgs/misc/emulators/duckstation/default.nix
index eacbc28890196..bbe4819246a29 100644
--- a/pkgs/misc/emulators/duckstation/default.nix
+++ b/pkgs/misc/emulators/duckstation/default.nix
@@ -1,51 +1,59 @@
 { lib
 , mkDerivation
 , fetchFromGitHub
+, SDL2
 , cmake
+, curl
 , extra-cmake-modules
-, pkg-config
-, SDL2
-, qtbase
-, wrapQtAppsHook
-, qttools
-, ninja
 , gtk3
 , libevdev
-, curl
 , libpulseaudio
-, sndio
 , mesa
+, ninja
+, pkg-config
+, qtbase
+, qttools
+, sndio
 , vulkan-loader
 , wayland
+, wrapQtAppsHook
 }:
+
 mkDerivation rec {
   pname = "duckstation";
-  version = "unstable-2021-10-19";
+  version = "0.pre+date=2021-12-16";
 
   src = fetchFromGitHub {
     owner = "stenzek";
     repo = pname;
-    rev = "96f4fdf8d88ff3a120f3bc409a6a6487cdcbd55f";
-    sha256 = "sha256-WWsi7kmFEYES2BoNKIFF1+lKHJGP3hbTZ9o3eWp+EcE=";
+    rev = "59cb7c03432f5f8d9f6283c71a34825d05e118c6";
+    sha256 = "sha256-vF3YEpicbwCtR6QW2huNk0+pJ7BBjn/x9/Ae1c00gN4=";
   };
 
-  nativeBuildInputs = [ cmake ninja pkg-config extra-cmake-modules wrapQtAppsHook qttools ];
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    ninja
+    pkg-config
+    qttools
+    wrapQtAppsHook
+  ];
 
   buildInputs = [
     SDL2
-    qtbase
+    curl
     gtk3
     libevdev
-    sndio
-    mesa
-    curl
     libpulseaudio
-    wayland
+    mesa
+    qtbase
+    sndio
     vulkan-loader
+    wayland
   ];
 
   cmakeFlags = [
-    #"-DUSE_DRMKMS=ON" # Broken in combination with Wayland, https://github.com/stenzek/duckstation/issues/2630
+    "-DUSE_DRMKMS=ON"
     "-DUSE_WAYLAND=ON"
   ];
 
@@ -62,6 +70,7 @@ mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
+
     mkdir -p $out/bin $out/share $out/share/pixmaps $out/share/applications
     rm bin/common-tests
 
@@ -70,6 +79,7 @@ mkDerivation rec {
 
     cp ../extras/icons/icon-256px.png $out/share/pixmaps/duckstation.png
     cp ../extras/linux-desktop-files/* $out/share/applications/
+
     runHook postInstall
   '';
 
@@ -84,14 +94,13 @@ mkDerivation rec {
     "--prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib"
   ];
 
-  # TODO:
-  # - default sound backend (cubeb) does not work, but SDL does. Strangely, switching to cubeb while a game is running makes it work.
-
   meta = with lib; {
-    description = "PlayStation 1 emulator focusing on playability, speed and long-term maintainability";
     homepage = "https://github.com/stenzek/duckstation";
+    description = "Fast PlayStation 1 emulator for x86-64/AArch32/AArch64";
     license = licenses.gpl3Only;
+    maintainers = with maintainers; [ guibou AndersonTorres ];
     platforms = platforms.linux;
-    maintainers = [ maintainers.guibou ];
   };
 }
+# TODO: default sound backend (cubeb) does not work, but SDL does. Strangely,
+# switching to cubeb while a game is running makes it work.
diff --git a/pkgs/misc/emulators/epsxe/default.nix b/pkgs/misc/emulators/epsxe/default.nix
index f70e90e987220..f39c2ae74ac46 100644
--- a/pkgs/misc/emulators/epsxe/default.nix
+++ b/pkgs/misc/emulators/epsxe/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     homepage = "http://epsxe.com/";
     description = "Enhanced PSX (PlayStation 1) emulator";
     license = licenses.unfree;
-    maintainers = with maintainers; [ yegortimoshenko ];
+    maintainers = with maintainers; [ yana ];
     platforms = [ "i686-linux" "x86_64-linux" ];
   };
 }
diff --git a/pkgs/misc/emulators/mame/default.nix b/pkgs/misc/emulators/mame/default.nix
index ea29a81a83462..82db9a118e4a3 100644
--- a/pkgs/misc/emulators/mame/default.nix
+++ b/pkgs/misc/emulators/mame/default.nix
@@ -33,13 +33,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mame";
-  version = "0.237";
+  version = "0.238";
 
   src = fetchFromGitHub {
     owner = "mamedev";
     repo = "mame";
     rev = "mame${builtins.replaceStrings [ "." ] [ "" ] version}";
-    sha256 = "sha256-0GOzpE8YP32ixz+c4dtDur9K0Szf7cl/dkWzPcJRFAM=";
+    sha256 = "sha256-kh0kvtl+zPJjBWUXyzb/LSbPoJRxh55vUwF2G06tzoo=";
   };
 
   hardeningDisable = [ "fortify" ];
diff --git a/pkgs/misc/emulators/mednaffe/default.nix b/pkgs/misc/emulators/mednaffe/default.nix
index 8a11b633d28e6..4874d5efee7ae 100644
--- a/pkgs/misc/emulators/mednaffe/default.nix
+++ b/pkgs/misc/emulators/mednaffe/default.nix
@@ -4,40 +4,34 @@
 , autoreconfHook
 , pkg-config
 , mednafen
-, gtk2 ? null
-, gtk3 ? null
+, gtk3
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "mednaffe";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "AmatCoder";
     repo = "mednaffe";
     rev = version;
-    sha256 = "sha256-YU8PHnQHAsY90LN/WDugi4WhsuZGBj/z3BS4o69qMS4=";
+    sha256 = "sha256-zvSAt6CMcgdoPpTTA5sPlQaWUw9LUMsR2Xg9jM2UaWY=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config wrapGAppsHook ];
-  buildInputs = [ gtk2 gtk3 mednafen ];
-
-  configureFlags = [ (lib.enableFeature (gtk3 != null) "gtk3") ];
-
-  dontWrapGApps = true;
+  buildInputs = [ gtk3 mednafen ];
 
   postInstall = ''
     wrapProgram $out/bin/mednaffe \
-      --prefix PATH ':' "${mednafen}/bin" \
-      "''${gappsWrapperArgs[@]}"
+      --prefix PATH ':' "${mednafen}/bin"
    '';
 
   meta = with lib; {
     description = "GTK-based frontend for mednafen emulator";
     homepage = "https://github.com/AmatCoder/mednaffe";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ sheenobu yegortimoshenko AndersonTorres ];
+    maintainers = with maintainers; [ sheenobu yana AndersonTorres ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/misc/emulators/melonDS/default.nix b/pkgs/misc/emulators/melonDS/default.nix
index 7123f496fad6f..3e30be8c2a3ff 100644
--- a/pkgs/misc/emulators/melonDS/default.nix
+++ b/pkgs/misc/emulators/melonDS/default.nix
@@ -2,7 +2,7 @@
 , fetchFromGitHub
 , mkDerivation
 , cmake
-, epoxy
+, libepoxy
 , libarchive
 , libpcap
 , libslirp
@@ -24,7 +24,7 @@ mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [
-    epoxy
+    libepoxy
     libarchive
     libslirp
     qtbase
diff --git a/pkgs/misc/emulators/mgba/default.nix b/pkgs/misc/emulators/mgba/default.nix
index be0911aaab103..f6b9c11ffe393 100644
--- a/pkgs/misc/emulators/mgba/default.nix
+++ b/pkgs/misc/emulators/mgba/default.nix
@@ -3,7 +3,7 @@
 , fetchFromGitHub
 , SDL2
 , cmake
-, epoxy
+, libepoxy
 , ffmpeg
 , imagemagick
 , libedit
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mgba";
-  version = "0.9.2";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
     owner = "mgba-emu";
     repo = "mgba";
     rev = version;
-    hash = "sha256-A48PVUCekdRYel/BddPCeIcEDllOvcU7pk4i4P58dpo=";
+    hash = "sha256-0ZtoyyoD+YjplJlPFpZgIg5119j/6X8ZaSZP+UpX5K0=";
   };
 
   nativeBuildInputs = [
@@ -34,9 +34,10 @@ stdenv.mkDerivation rec {
     pkg-config
     wrapQtAppsHook
   ];
+
   buildInputs = [
     SDL2
-    epoxy
+    libepoxy
     ffmpeg
     imagemagick
     libedit
@@ -78,10 +79,9 @@ stdenv.mkDerivation rec {
       runners, and a modern feature set for emulators that older emulators may
       not support.
     '';
-
     license = licenses.mpl20;
     maintainers = with maintainers; [ MP2E AndersonTorres ];
     platforms = platforms.linux;
   };
 }
-# TODO [ AndersonTorres ]: use desktopItem functions
+# TODO: use desktopItem functions
diff --git a/pkgs/misc/emulators/nestopia/default.nix b/pkgs/misc/emulators/nestopia/default.nix
index e19b97a477ef4..fa55c2e9635df 100644
--- a/pkgs/misc/emulators/nestopia/default.nix
+++ b/pkgs/misc/emulators/nestopia/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, pkg-config, SDL2, alsa-lib, gtk3
 , makeWrapper, libGLU, libGL, libarchive, libao, unzip, xdg-utils
-, epoxy, gdk-pixbuf, gnome, wrapGAppsHook
+, libepoxy, gdk-pixbuf, gnome, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     SDL2
     alsa-lib
-    epoxy
+    libepoxy
     gtk3
     gdk-pixbuf
     libGLU libGL
diff --git a/pkgs/misc/emulators/pcsx2/default.nix b/pkgs/misc/emulators/pcsx2/default.nix
index 4246240463ee3..2e22e7d9053a9 100644
--- a/pkgs/misc/emulators/pcsx2/default.nix
+++ b/pkgs/misc/emulators/pcsx2/default.nix
@@ -6,6 +6,7 @@
 , glib
 , gtk3
 , harfbuzz
+, lib
 , libaio
 , libpcap
 , libpng
@@ -17,29 +18,31 @@
 , portaudio
 , SDL2
 , soundtouch
-, lib, stdenv
+, stdenv
 , udev
 , wrapGAppsHook
 , wxGTK
 , zlib
+, wayland
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "pcsx2";
-  version = "unstable-2021-10-28";
+  version = "1.7.2105";
 
   src = fetchFromGitHub {
     owner = "PCSX2";
     repo = "pcsx2";
     fetchSubmodules = true;
-    rev = "52eab493591137d830b45337e04c75ff525a31f9";
-    sha256 = "RhAo5Fob8G16jzb9MOAS43vwTkFzf5XupymN0dzeGJU=";
+    rev = "v${version}";
+    hash = "sha256-/A8u7oDIVs0Zmne0ebaXxOeIQbM9pr62KEH6FJR2umk=";
   };
 
   cmakeFlags = [
     "-DDISABLE_ADVANCE_SIMD=TRUE"
     "-DDISABLE_PCSX2_WRAPPER=TRUE"
     "-DPACKAGE_MODE=TRUE"
+    "-DWAYLAND_API=TRUE"
     "-DXDG_STD=TRUE"
   ];
 
@@ -62,13 +65,14 @@ stdenv.mkDerivation {
     SDL2
     soundtouch
     udev
+    wayland
     wxGTK
     zlib
   ];
 
   meta = with lib; {
     description = "Playstation 2 emulator";
-    longDescription= ''
+    longDescription = ''
       PCSX2 is an open-source PlayStation 2 (AKA PS2) emulator. Its purpose
       is to emulate the PS2 hardware, using a combination of MIPS CPU
       Interpreters, Recompilers and a Virtual Machine which manages hardware
diff --git a/pkgs/misc/emulators/retroarch/cores.nix b/pkgs/misc/emulators/retroarch/cores.nix
index ab13e041139c4..09acbca8652d6 100644
--- a/pkgs/misc/emulators/retroarch/cores.nix
+++ b/pkgs/misc/emulators/retroarch/cores.nix
@@ -4,6 +4,7 @@
 , alsa-lib
 , boost
 , buildPackages
+, bzip2
 , cmake
 , curl
 , fetchFromGitHub
@@ -14,6 +15,7 @@
 , hexdump
 , hidapi
 , icu
+, libaio
 , libGL
 , libGLU
 , libevdev
@@ -21,6 +23,7 @@
 , libpcap
 , libpng
 , libvorbis
+, libxml2
 , libzip
 , makeWrapper
 , nasm
@@ -28,7 +31,6 @@
 , pcre
 , pkg-config
 , portaudio
-, python27
 , python3
 , retroarch
 , sfml
@@ -36,12 +38,12 @@
 , udev
 , which
 , xorg
+, xxd
+, xz
 , zlib
 }:
 
 let
-  d2u = lib.replaceChars [ "-" ] [ "_" ];
-
   hashesFile = builtins.fromJSON (builtins.readFile ./hashes.json);
 
   getCoreSrc = core:
@@ -50,14 +52,20 @@ let
   mkLibRetroCore =
     { core
     , description
+      # Check https://github.com/libretro/libretro-core-info for license information
     , license
     , src ? null
     , broken ? false
-    , version ? "unstable-2021-11-16"
+    , version ? "unstable-2021-12-06"
+    , platforms ? retroarch.meta.platforms
+      # The resulting core file is based on core name
+      # Setting `normalizeCore` to `true` will convert `-` to `_` on the core filename
+    , normalizeCore ? true
     , ...
     }@args:
     lib.makeOverridable stdenv.mkDerivation (
       let
+        d2u = if normalizeCore then (lib.replaceChars [ "-" ] [ "_" ]) else (x: x);
         finalSrc = if src == null then getCoreSrc core else src;
       in
       (rec {
@@ -82,13 +90,18 @@ let
           }.${stdenv.hostPlatform.parsed.cpu.name} or stdenv.hostPlatform.parsed.cpu.name}"
         ] ++ (args.makeFlags or [ ]);
 
+        coreDir = "${placeholder "out"}/lib/retroarch/cores";
+
         installPhase = ''
-          COREDIR="$out/lib/retroarch/cores"
+          runHook preInstall
+
           mkdir -p $out/bin
-          mkdir -p $COREDIR
-          mv ${d2u args.core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $COREDIR
+          mkdir -p $coreDir
+          mv ${d2u args.core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $coreDir
           makeWrapper ${retroarch}/bin/retroarch $out/bin/retroarch-${core} \
-            --add-flags "-L $COREDIR/${d2u core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $@"
+            --add-flags "-L $coreDir/${d2u core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary} $@"
+
+          runHook postInstall
         '';
 
         enableParallelBuilding = true;
@@ -99,15 +112,16 @@ let
         };
 
         meta = with lib; {
-          inherit broken description license;
+          inherit broken description license platforms;
           homepage = "https://www.libretro.com/";
           maintainers = with maintainers; [ edwtjo hrdinka MP2E thiagokokada ];
-          platforms = platforms.unix;
         };
       }) // builtins.removeAttrs args [ "core" "src" "description" "license" "makeFlags" ]
     );
 in
 {
+  inherit mkLibRetroCore;
+
   atari800 = mkLibRetroCore {
     core = "atari800";
     description = "Port of Atari800 to libretro";
@@ -116,14 +130,6 @@ in
     makeFlags = [ "GIT_VERSION=" ];
   };
 
-  beetle-snes = mkLibRetroCore {
-    core = "mednafen-snes";
-    src = getCoreSrc "beetle-snes";
-    description = "Port of Mednafen's SNES core to libretro";
-    license = lib.licenses.gpl2Only;
-    makefile = "Makefile";
-  };
-
   beetle-gba = mkLibRetroCore {
     core = "mednafen-gba";
     src = getCoreSrc "beetle-gba";
@@ -189,19 +195,15 @@ in
     description = "Port of Mednafen's Saturn core to libretro";
     license = lib.licenses.gpl2Only;
     makefile = "Makefile";
-    makeFlags = [ "HAVE_HW=0" ];
-    meta.platforms = [ "x86_64-linux" "aarch64-linux" ];
+    platforms = [ "x86_64-linux" "aarch64-linux" ];
   };
 
-  beetle-saturn-hw = mkLibRetroCore {
-    core = "mednafen-saturn-hw";
-    src = getCoreSrc "beetle-saturn";
-    description = "Port of Mednafen's Saturn core to libretro";
+  beetle-snes = mkLibRetroCore {
+    core = "mednafen-snes";
+    src = getCoreSrc "beetle-snes";
+    description = "Port of Mednafen's SNES core to libretro";
     license = lib.licenses.gpl2Only;
-    extraBuildInputs = [ libGL libGLU ];
     makefile = "Makefile";
-    makeFlags = [ "HAVE_OPENGL=1" "HAVE_HW=1" ];
-    meta.platforms = [ "x86_64-linux" "aarch64-linux" ];
   };
 
   beetle-supergrafx = mkLibRetroCore {
@@ -212,6 +214,14 @@ in
     makefile = "Makefile";
   };
 
+  beetle-vb = mkLibRetroCore {
+    core = "mednafen-vb";
+    src = getCoreSrc "beetle-vb";
+    description = "Port of Mednafen's VirtualBoy core to libretro";
+    license = lib.licenses.gpl2Only;
+    makefile = "Makefile";
+  };
+
   beetle-wswan = mkLibRetroCore {
     core = "mednafen-wswan";
     src = getCoreSrc "beetle-wswan";
@@ -220,12 +230,10 @@ in
     makefile = "Makefile";
   };
 
-  beetle-vb = mkLibRetroCore {
-    core = "mednafen-vb";
-    src = getCoreSrc "beetle-vb";
-    description = "Port of Mednafen's VirtualBoy core to libretro";
-    license = lib.licenses.gpl2Only;
-    makefile = "Makefile";
+  blastem = mkLibRetroCore {
+    core = "blastem";
+    description = "Port of BlastEm to libretro";
+    license = lib.licenses.gpl3Only;
   };
 
   bluemsx = mkLibRetroCore {
@@ -234,6 +242,43 @@ in
     license = lib.licenses.gpl2Only;
   };
 
+  bsnes = mkLibRetroCore {
+    core = "bsnes";
+    description = "Port of bsnes to libretro";
+    license = lib.licenses.gpl3Only;
+    makefile = "Makefile";
+    # https://github.com/libretro/bsnes-libretro/issues/10
+    patches = [
+      (fetchpatch {
+        name = "added-missing-GB_VERSION-define.patch";
+        url = "https://github.com/nE0sIghT/bsnes-libretro/commit/97fd8b486f9a9046277a580b238b6673a98f7f72.patch";
+        sha256 = "sha256-gCiy6sqc9sixT6Appr5ZCfHyBE2jYhPb0KvI63nfmEc=";
+      })
+    ];
+  };
+
+  bsnes-hd =
+    let
+      # linux = bsd
+      # https://github.com/DerKoun/bsnes-hd/blob/f0b6cf34e9780d53516977ed2de64137a8bcc3c5/bsnes/GNUmakefile#L37
+      platform = if stdenv.isDarwin then "macos" else "linux";
+    in
+    mkLibRetroCore {
+      core = "bsnes-hd-beta";
+      src = getCoreSrc "bsnes-hd";
+      description = "Port of bsnes-hd to libretro";
+      license = lib.licenses.gpl3Only;
+      makefile = "GNUmakefile";
+      makeFlags = [
+        "-C"
+        "bsnes"
+        "target=libretro"
+        "platform=${platform}"
+      ];
+      extraBuildInputs = [ xorg.libX11 xorg.libXext ];
+      postBuild = "cd bsnes/out";
+    };
+
   bsnes-mercury = mkLibRetroCore {
     core = "bsnes-mercury-accuracy";
     src = getCoreSrc "bsnes-mercury";
@@ -243,6 +288,24 @@ in
     makeFlags = [ "PROFILE=accuracy" ];
   };
 
+  bsnes-mercury-balanced = mkLibRetroCore {
+    core = "bsnes-mercury-balanced";
+    src = getCoreSrc "bsnes-mercury";
+    description = "Fork of bsnes with HLE DSP emulation restored";
+    license = lib.licenses.gpl3Only;
+    makefile = "Makefile";
+    makeFlags = [ "PROFILE=balanced" ];
+  };
+
+  bsnes-mercury-performance = mkLibRetroCore {
+    core = "bsnes-mercury-performance";
+    src = getCoreSrc "bsnes-mercury";
+    description = "Fork of bsnes with HLE DSP emulation restored";
+    license = lib.licenses.gpl3Only;
+    makefile = "Makefile";
+    makeFlags = [ "PROFILE=performance" ];
+  };
+
   citra = mkLibRetroCore {
     core = "citra";
     # `nix-prefetch-github` doesn't support `deepClone`, necessary for citra
@@ -306,7 +369,6 @@ in
     ] ++ (with xorg; [ libSM libX11 libXi libpthreadstubs libxcb xcbutil libXext libXrandr libXinerama libXxf86vm ]);
     makefile = "Makefile";
     cmakeFlags = [
-      "-DCMAKE_BUILD_TYPE=Release"
       "-DLIBRETRO=ON"
       "-DLIBRETRO_STATIC=1"
       "-DENABLE_QT=OFF"
@@ -343,11 +405,7 @@ in
     description = "Port of FBNeo to libretro";
     license = "Non-commercial";
     makefile = "Makefile";
-    postPatch = ''
-      sed -i -e 's:-Wall:-Wall -Wno-format-security:g' src/burner/libretro/Makefile
-    '';
     preBuild = "cd src/burner/libretro";
-    makeFlags = [ "USE_EXPERIMENTAL_FLAGS=1" ];
   };
 
   fceumm = mkLibRetroCore {
@@ -363,7 +421,7 @@ in
     extraBuildInputs = [ libGL libGLU ];
     makefile = "Makefile";
     makeFlags = lib.optional stdenv.hostPlatform.isAarch64 [ "platform=arm64" ];
-    meta.platforms = [ "aarch64-linux" "x86_64-linux" ];
+    platforms = [ "aarch64-linux" "x86_64-linux" ];
   };
 
   fmsx = mkLibRetroCore {
@@ -430,11 +488,6 @@ in
     description = "Port of MAME to libretro";
     license = with lib.licenses; [ bsd3 gpl2Plus ];
     extraBuildInputs = [ alsa-lib libGLU libGL portaudio python3 xorg.libX11 ];
-    postPatch = ''
-      # Prevent the failure during the parallel building of:
-      # make -C 3rdparty/genie/build/gmake.linux -f genie.make obj/Release/src/host/lua-5.3.0/src/lgc.o
-      mkdir -p 3rdparty/genie/build/gmake.linux/obj/Release/src/host/lua-5.3.0/src
-    '';
     makefile = "Makefile.libretro";
   };
 
@@ -476,7 +529,8 @@ in
     core = "mame2015";
     description = "Port of MAME ~2015 to libretro";
     license = "MAME";
-    extraNativeBuildInputs = [ python27 ];
+    makeFlags = [ "PYTHON=python3" ];
+    extraNativeBuildInputs = [ python3 ];
     extraBuildInputs = [ alsa-lib ];
     makefile = "Makefile";
     enableParallelBuilding = false;
@@ -484,17 +538,11 @@ in
 
   mame2016 = mkLibRetroCore {
     core = "mame2016";
-    patches = [
-      (fetchpatch {
-        name = "fix_mame_build_on_make-4.3.patch";
-        url = "https://github.com/libretro/mame2016-libretro/commit/5874fae3d124f5e7c8a91634f5473a8eac902e47.patch";
-        sha256 = "061f1lcm72glksf475ikl8w10pnbgqa7049ylw06nikis2qdjlfn";
-      })
-    ];
     description = "Port of MAME ~2016 to libretro";
     license = with lib.licenses; [ bsd3 gpl2Plus ];
-    extraNativeBuildInputs = [ python27 ];
+    extraNativeBuildInputs = [ python3 ];
     extraBuildInputs = [ alsa-lib ];
+    makeFlags = [ "PYTHON_EXECUTABLE=python3" ];
     postPatch = ''
       # Prevent the failure during the parallel building of:
       # make -C 3rdparty/genie/build/gmake.linux -f genie.make obj/Release/src/host/lua-5.3.0/src/lgc.o
@@ -503,6 +551,14 @@ in
     enableParallelBuilding = false;
   };
 
+  melonds = mkLibRetroCore {
+    core = "melonds";
+    description = "Port of MelonDS to libretro";
+    license = lib.licenses.gpl3Only;
+    extraBuildInputs = [ libGL libGLU ];
+    makefile = "Makefile";
+  };
+
   mesen = mkLibRetroCore {
     core = "mesen";
     description = "Port of Mesen to libretro";
@@ -511,6 +567,15 @@ in
     preBuild = "cd Libretro";
   };
 
+  mesen-s = mkLibRetroCore {
+    core = "mesen-s";
+    description = "Port of Mesen-S to libretro";
+    license = lib.licenses.gpl3Only;
+    makefile = "Makefile";
+    preBuild = "cd Libretro";
+    normalizeCore = false;
+  };
+
   meteor = mkLibRetroCore {
     core = "meteor";
     description = "Port of Meteor to libretro";
@@ -590,6 +655,37 @@ in
     '';
   };
 
+  pcsx2 = mkLibRetroCore {
+    core = "pcsx2";
+    description = "Port of PCSX2 to libretro";
+    license = lib.licenses.gpl3Plus;
+    extraNativeBuildInputs = [
+      cmake
+      gettext
+      pkg-config
+    ];
+    extraBuildInputs = [
+      libaio
+      libGL
+      libGLU
+      libpcap
+      libpng
+      libxml2
+      xz
+      xxd
+    ];
+    makefile = "Makefile";
+    cmakeFlags = [
+      "-DLIBRETRO=ON"
+    ];
+    postPatch = ''
+      # remove ccache
+      substituteInPlace CMakeLists.txt --replace "ccache" ""
+    '';
+    postBuild = "cd /build/source/build/pcsx2";
+    platforms = lib.platforms.x86;
+  };
+
   pcsx_rearmed = mkLibRetroCore {
     core = "pcsx_rearmed";
     description = "Port of PCSX ReARMed with GNU lightning to libretro";
@@ -613,11 +709,11 @@ in
     core = "play";
     description = "Port of Play! to libretro";
     license = lib.licenses.bsd2;
-    extraBuildInputs = [ boost ];
-    extraNativeBuildInputs = [ cmake openssl curl icu libGL libGLU xorg.libX11 ];
+    extraBuildInputs = [ boost bzip2 curl openssl icu libGL libGLU xorg.libX11 ];
+    extraNativeBuildInputs = [ cmake ];
     makefile = "Makefile";
-    cmakeFlags = [ "-DBUILD_PLAY=OFF -DBUILD_LIBRETRO_CORE=ON" ];
-    postBuild = "mv Source/ui_libretro/play_libretro${stdenv.hostPlatform.extensions.sharedLibrary} play_libretro${stdenv.hostPlatform.extensions.sharedLibrary}";
+    cmakeFlags = [ "-DBUILD_PLAY=OFF" "-DBUILD_LIBRETRO_CORE=ON" ];
+    postBuild = "cd Source/ui_libretro";
   };
 
   ppsspp = mkLibRetroCore {
@@ -627,8 +723,14 @@ in
     extraNativeBuildInputs = [ cmake pkg-config python3 ];
     extraBuildInputs = [ libGLU libGL libzip ffmpeg snappy xorg.libX11 ];
     makefile = "Makefile";
-    cmakeFlags = [ "-DLIBRETRO=ON -DUSE_SYSTEM_FFMPEG=ON -DUSE_SYSTEM_SNAPPY=ON -DUSE_SYSTEM_LIBZIP=ON -DOpenGL_GL_PREFERENCE=GLVND" ];
-    postBuild = "mv lib/ppsspp_libretro${stdenv.hostPlatform.extensions.sharedLibrary} ppsspp_libretro${stdenv.hostPlatform.extensions.sharedLibrary}";
+    cmakeFlags = [
+      "-DLIBRETRO=ON"
+      "-DUSE_SYSTEM_FFMPEG=ON"
+      "-DUSE_SYSTEM_SNAPPY=ON"
+      "-DUSE_SYSTEM_LIBZIP=ON"
+      "-DOpenGL_GL_PREFERENCE=GLVND"
+    ];
+    postBuild = "cd lib";
   };
 
   prboom = mkLibRetroCore {
@@ -697,8 +799,15 @@ in
     description = "Optimized port/rewrite of SNES9x 1.43 to Libretro";
     license = "Non-commercial";
     makefile = "Makefile";
+  };
+
+  snes9x2005-plus = mkLibRetroCore {
+    core = "snes9x2005-plus";
+    src = getCoreSrc "snes9x2005";
+    description = "Optimized port/rewrite of SNES9x 1.43 to Libretro, with Blargg's APU";
+    license = "Non-commercial";
+    makefile = "Makefile";
     makeFlags = [ "USE_BLARGG_APU=1" ];
-    postBuild = "mv snes9x2005_plus_libretro${stdenv.hostPlatform.extensions.sharedLibrary} snes9x2005_libretro${stdenv.hostPlatform.extensions.sharedLibrary}";
   };
 
   snes9x2010 = mkLibRetroCore {
@@ -724,6 +833,17 @@ in
     makefile = "Makefile";
   };
 
+  swanstation = mkLibRetroCore {
+    core = "swanstation";
+    description = "Port of SwanStation (a fork of DuckStation) to libretro";
+    license = lib.licenses.gpl3Only;
+    extraNativeBuildInputs = [ cmake ];
+    makefile = "Makefile";
+    cmakeFlags = [
+      "-DBUILD_LIBRETRO_CORE=ON"
+    ];
+  };
+
   tgbdual = mkLibRetroCore {
     core = "tgbdual";
     description = "Port of TGBDual to libretro";
@@ -737,7 +857,7 @@ in
     license = lib.licenses.gpl3Only;
     extraNativeBuildInputs = [ cmake ];
     makefile = "Makefile";
-    postBuild = "cd src/";
+    postBuild = "cd src";
   };
 
   tic80 = mkLibRetroCore {
@@ -757,12 +877,6 @@ in
     postBuild = "cd lib";
   };
 
-  vba-next = mkLibRetroCore {
-    core = "vba-next";
-    description = "VBA-M libretro port with modifications for speed";
-    license = lib.licenses.gpl2Only;
-  };
-
   vba-m = mkLibRetroCore {
     core = "vbam";
     src = getCoreSrc "vba-m";
@@ -772,6 +886,12 @@ in
     preBuild = "cd src/libretro";
   };
 
+  vba-next = mkLibRetroCore {
+    core = "vba-next";
+    description = "VBA-M libretro port with modifications for speed";
+    license = lib.licenses.gpl2Only;
+  };
+
   vecx = mkLibRetroCore {
     core = "vecx";
     description = "Port of Vecx to libretro";
@@ -791,7 +911,7 @@ in
     description = "Port of Yabause to libretro";
     license = lib.licenses.gpl2Only;
     makefile = "Makefile";
-    # Disable SSE for non-x86. DYNAREC doesn't build on either Aarch64 or x86_64.
+    # Disable SSE for non-x86. DYNAREC doesn't build on aarch64.
     makeFlags = lib.optional (!stdenv.hostPlatform.isx86) "HAVE_SSE=0";
     preBuild = "cd yabause/src/libretro";
   };
diff --git a/pkgs/misc/emulators/retroarch/default.nix b/pkgs/misc/emulators/retroarch/default.nix
index b2621ba8cc133..861fa6a47f6f8 100644
--- a/pkgs/misc/emulators/retroarch/default.nix
+++ b/pkgs/misc/emulators/retroarch/default.nix
@@ -36,21 +36,22 @@
 with lib;
 
 let
+  version = "1.9.14";
   libretroSuperSrc = fetchFromGitHub {
     owner = "libretro";
-    repo = "libretro-super";
-    sha256 = "sha256-4WB6/1DDec+smhMJKLCxWb4+LQlZN8v2ik69saKixkE=";
-    rev = "fa70d9843838df719623094965bd447e4db0d1b4";
+    repo = "libretro-core-info";
+    sha256 = "sha256-C2PiBcN5r9NDxFWFE1pytSGR1zq9E5aVt6QUf5aJ7I0=";
+    rev = "v${version}";
   };
 in
 stdenv.mkDerivation rec {
   pname = "retroarch-bare";
-  version = "1.9.13.2";
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "libretro";
     repo = "RetroArch";
-    sha256 = "sha256-fehHchn+o9QM2wIK6zYamnbFvQda32Gw0rJk8Orx00U=";
+    sha256 = "sha256-H2fCA1sM8FZfVnLxBjnKe7RjHJNAn/Antxlos5oFFSY=";
     rev = "v${version}";
   };
 
@@ -98,7 +99,7 @@ stdenv.mkDerivation rec {
   postInstall = optionalString withVulkan ''
     mkdir -p $out/share/libretro/info
     # TODO: ideally each core should have its own core information
-    cp -r ${libretroSuperSrc}/dist/info/* $out/share/libretro/info
+    cp -r ${libretroSuperSrc}/* $out/share/libretro/info
     wrapProgram $out/bin/retroarch --prefix LD_LIBRARY_PATH ':' ${vulkan-loader}/lib
   '';
 
@@ -108,7 +109,7 @@ stdenv.mkDerivation rec {
     homepage = "https://libretro.com";
     description = "Multi-platform emulator frontend for libretro cores";
     license = licenses.gpl3Plus;
-    platforms = platforms.all;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ MP2E edwtjo matthewbauer kolbycrouch thiagokokada ];
     # FIXME: exits with error on macOS:
     # No Info.plist file in application bundle or no NSPrincipalClass in the Info.plist file, exiting
diff --git a/pkgs/misc/emulators/retroarch/hashes.json b/pkgs/misc/emulators/retroarch/hashes.json
index a849a37bfab41..2d5e7411b8e45 100644
--- a/pkgs/misc/emulators/retroarch/hashes.json
+++ b/pkgs/misc/emulators/retroarch/hashes.json
@@ -6,13 +6,6 @@
         "sha256": "LJpRegJVR2+sS1UmTTpVest0rMrNDBMXmj/jRFVglWI=",
         "fetchSubmodules": false
     },
-    "beetle-snes": {
-        "owner": "libretro",
-        "repo": "beetle-bsnes-libretro",
-        "rev": "bc867656d7438aaffc6818b3b92350587bc78a47",
-        "sha256": "TyUCRGK+uyXowDjXW9/4m+zL8Vh/3GGsX1eznrTCbAg=",
-        "fetchSubmodules": false
-    },
     "beetle-gba": {
         "owner": "libretro",
         "repo": "beetle-gba-libretro",
@@ -23,64 +16,78 @@
     "beetle-lynx": {
         "owner": "libretro",
         "repo": "beetle-lynx-libretro",
-        "rev": "b84c79b2f185482f9cec2b10f33cbe1bc5732dd9",
-        "sha256": "pR3EsFN/Wf77gPoAnjf/nI0XlB2098qIrmbdjB4jmMQ=",
+        "rev": "24ca629d50de752861684a83cc9bcee96313f9e1",
+        "sha256": "LPt3JT0lyKK73yNIxvR1eUuzOkLKa8IkRA4cchhfljA=",
         "fetchSubmodules": false
     },
     "beetle-ngp": {
         "owner": "libretro",
         "repo": "beetle-ngp-libretro",
-        "rev": "f969af2b52f20642aea7e800e3cfcce728f3aee9",
-        "sha256": "GIzLZ3iOJeHKdAowhM4S56iouaxX8v2XZgc/ZiCzCPk=",
+        "rev": "f7c393184e5228c3d3807ee74c951c4c549107d8",
+        "sha256": "7vki8VkwOzxwMZcUxekg1DFSskV7VNQ1SRaU3M1xHZ0=",
         "fetchSubmodules": false
     },
     "beetle-pce-fast": {
         "owner": "libretro",
         "repo": "beetle-pce-fast-libretro",
-        "rev": "81d4c9d07a76c89c32ad0e7450b69bde6403836f",
-        "sha256": "LhQbAEUMhoIF3VfwLbhtD7xxSddzdgwIHHnSabQPAvs=",
+        "rev": "6f63eab86abab335c1e337d4e8c1582bceda5708",
+        "sha256": "QRw7FDd7rOTsTW4qGr2isvFHmobz7GgXUt84q0x2S/c=",
         "fetchSubmodules": false
     },
     "beetle-pcfx": {
         "owner": "libretro",
         "repo": "beetle-pcfx-libretro",
-        "rev": "a1f1734509dd6acb11269f118d61f480ae8dbacf",
-        "sha256": "rvRDuYJLxb1TSwNXhp3ATJW0sQgWi8Cj4NR3hep/AJk=",
+        "rev": "6d2b11e17ad5a95907c983e7c8a70e75508c2d41",
+        "sha256": "WG2YpCYdL/MxW5EbiP2+1VtAjbX7yYDIcLXhb+YySI4=",
         "fetchSubmodules": false
     },
     "beetle-psx": {
         "owner": "libretro",
         "repo": "beetle-psx-libretro",
-        "rev": "ccca81930a078c0efd77b00327d2ee212698f3b4",
-        "sha256": "Hy8Zrp0kTR+Mfbq0nVYerSarRCxZI+ykgDOscakDMiU=",
+        "rev": "39be47bc9958258cf3b6f3c68d9485ea99971cf8",
+        "sha256": "q6aKSfG1A2AV2MppZFujDwqqZu26R7b0t9KyAETQTyU=",
         "fetchSubmodules": false
     },
     "beetle-saturn": {
         "owner": "libretro",
         "repo": "beetle-saturn-libretro",
-        "rev": "e1119e91a4e3f4b30971455aeb3c1a6f4cd05e59",
-        "sha256": "lKlNNAHK1ynFXY++Ya0m1Ax5YTZkd44eQjzuOLXfWa8=",
+        "rev": "e6ba71f8bcc647b646d94dec812b24d00c41cf3f",
+        "sha256": "tDbV+CsDr4bowBbJ/C8J9scfCryTAXxz58pGaUHU5yU=",
+        "fetchSubmodules": false
+    },
+    "beetle-snes": {
+        "owner": "libretro",
+        "repo": "beetle-bsnes-libretro",
+        "rev": "bc867656d7438aaffc6818b3b92350587bc78a47",
+        "sha256": "TyUCRGK+uyXowDjXW9/4m+zL8Vh/3GGsX1eznrTCbAg=",
         "fetchSubmodules": false
     },
     "beetle-supergrafx": {
         "owner": "libretro",
         "repo": "beetle-supergrafx-libretro",
-        "rev": "59062662d6e925ad512fcbb9c1a0db97d1592bc1",
-        "sha256": "kGyl5XJMFUALPAEZf4IynY6bmXWfqy0o65eO8zS0RTE=",
+        "rev": "cd800d701f0b8f4dcb1654a5cb5b24ee09dd9257",
+        "sha256": "vnskn2+65cKQjaXO9GJnKNppi8TWHUO+uZdt2BYGN9Y=",
+        "fetchSubmodules": false
+    },
+    "beetle-vb": {
+        "owner": "libretro",
+        "repo": "beetle-vb-libretro",
+        "rev": "aa77198c6c60b935503b5ea2149b8ff7598344da",
+        "sha256": "ShsMYc2vjDoiN1yCCoSl91P5ecYJDj/V+VWUYuYVxas=",
         "fetchSubmodules": false
     },
     "beetle-wswan": {
         "owner": "libretro",
         "repo": "beetle-wswan-libretro",
-        "rev": "0c7faaf7f70b72ebb68e310530cd46a69e680d40",
-        "sha256": "UQyICcZe1DVotSFt0QVnGop+JG5NJwTBcGSZaFW0P0U=",
+        "rev": "ea00c1d8eb9894538dd8758975cd9d6ae99ead1e",
+        "sha256": "0ptDbq3X8EGNwPePr4H0VQkgmXXIP50dNpITX8DX6w8=",
         "fetchSubmodules": false
     },
-    "beetle-vb": {
+    "blastem": {
         "owner": "libretro",
-        "repo": "beetle-vb-libretro",
-        "rev": "1bd0da71c8f6add253ad76e2b6e1357cd09fc304",
-        "sha256": "KguKbRK0uXE+brpF8HdRwi8Gt76AMa4wkh1MFvNCbN4=",
+        "repo": "blastem",
+        "rev": "0786858437ed71996f43b7af0fbe627eb88152fc",
+        "sha256": "uEP5hSgLAle1cLv/EM7D11TJMAggu7pqWxfrUt3rhEg=",
         "fetchSubmodules": false
     },
     "bluemsx": {
@@ -90,6 +97,20 @@
         "sha256": "ix/AyYNer1R73ZJW1reXyj7geBr3ThrqXf5Ki5yrz9A=",
         "fetchSubmodules": false
     },
+    "bsnes": {
+        "owner": "libretro",
+        "repo": "bsnes-libretro",
+        "rev": "44d97b17d06a10ae17d97a91a48e5acd10ec6db4",
+        "sha256": "VNSeTRryrX2/V38GGXTRLuDEQqDUmX2DUOHAKLxJezU=",
+        "fetchSubmodules": false
+    },
+    "bsnes-hd": {
+        "owner": "DerKoun",
+        "repo": "bsnes-hd",
+        "rev": "65f24e56c37f46bb752190024bd4058e64ad77d1",
+        "sha256": "1dk2i71NOLeTTOZjVll8wrkr5dIH5bGSGUeeHqWjZHE=",
+        "fetchSubmodules": false
+    },
     "bsnes-mercury": {
         "owner": "libretro",
         "repo": "bsnes-mercury",
@@ -121,8 +142,8 @@
     "dolphin": {
         "owner": "libretro",
         "repo": "dolphin",
-        "rev": "82e617439b622af5d1189e9fec67e7f1376be099",
-        "sha256": "Q3a+0SYocX1hBGLs1K9r932NkiCDFINPhtHeyzUknJE=",
+        "rev": "48066c84560322219be4080bca125cc03d48f411",
+        "sha256": "IPKcqges/BX6KFQSirLpmsI2+7/cjcrySK+YWaA1cuo=",
         "fetchSubmodules": false
     },
     "dosbox": {
@@ -135,8 +156,8 @@
     "eightyone": {
         "owner": "libretro",
         "repo": "81-libretro",
-        "rev": "30344d3499fdb301ee33de136f7b390bebe0756a",
-        "sha256": "kMwga9MkjV+dKxW3VLu+rxst6H20HhREoiNBsCLa1G0=",
+        "rev": "7e8153cd5b88cd5cb23fb0c03c04e7c7d8a73159",
+        "sha256": "Y+RU3T4qUmV44IZ5OBNhtC+f/DX6njOCF0tsl8MN4qM=",
         "fetchSubmodules": false
     },
     "fbalpha2012": {
@@ -149,29 +170,29 @@
     "fbneo": {
         "owner": "libretro",
         "repo": "fbneo",
-        "rev": "4d6387b7f3e3f1a9c25015789d751c6db1a9ae8c",
-        "sha256": "bIOmvhu9mOfOXoOTbwbjMHIZ3JkGz96yyFZALmqkOmk=",
+        "rev": "8e9f73ab28fc6176f0bde53eac0f0b561b065e16",
+        "sha256": "gv1Yuo0wFB6MmCtnajM71EK2GEzd5X29VYY2yFcB6Uk=",
         "fetchSubmodules": false
     },
     "fceumm": {
         "owner": "libretro",
         "repo": "libretro-fceumm",
-        "rev": "a918869c18c9f30b84e04260b78b675b8a3c7be1",
-        "sha256": "nDYPrwIsvhWveDQDE0WEK7GO60iRE967p1XxXn+lNj4=",
+        "rev": "02b5bbf26981b5ae0da81a9f312cb51ed64112b8",
+        "sha256": "zsY0RyWLJD2Zf1qDzuMbbNxV630TAIt3KqjLWXR4lgQ=",
         "fetchSubmodules": false
     },
     "flycast": {
         "owner": "libretro",
         "repo": "flycast",
-        "rev": "ae670ea28fdbb9f08149cb598312a71a0970ca67",
-        "sha256": "jmSOfyak5mX04HgZOtCF9cz8HqAApxDXHJ6IqhqGILE=",
+        "rev": "041297cc6c266b1185a4414271a10732c946239c",
+        "sha256": "htuUfzwlSbhh8CxMEeE8HqNqaJupav4cBfXMwMEKim8=",
         "fetchSubmodules": false
     },
     "fmsx": {
         "owner": "libretro",
         "repo": "fmsx-libretro",
-        "rev": "20c805409b8f6e1f9d61cb3dff0d5b28d82d1ee3",
-        "sha256": "uqqVF2+YpfWOKbe8aIreoImFb3/kL8ohslJkl+JivQI=",
+        "rev": "cd2d59a9b820a0abf038fa7e279965da34132960",
+        "sha256": "8mOcTTETgDWGDV5q9n3UupMsbPXEqv0AbQGdgOSKfBk=",
         "fetchSubmodules": false
     },
     "freeintv": {
@@ -184,22 +205,22 @@
     "gambatte": {
         "owner": "libretro",
         "repo": "gambatte-libretro",
-        "rev": "4b822bcf561856689e101dd5505d365de5ffcffe",
-        "sha256": "FsIQLd/UO5xs/aTpggSn8WLPgi83gsxRlwKR+UzH+TY=",
+        "rev": "eb6f26a57ff6c35154950da20f83ddf1d44d4ca6",
+        "sha256": "boPCbMX1o1i+rL0dnY0M3pzY1D6uzoYRN21C1zXXOJw=",
         "fetchSubmodules": false
     },
     "genesis-plus-gx": {
         "owner": "libretro",
         "repo": "Genesis-Plus-GX",
-        "rev": "309a4aacfd582c312dcad61b7abfdffba4a0c66e",
-        "sha256": "jnbey1USldDZGXGXLLR5TgSJZgD+6ZFpwfIf6c8xvyM=",
+        "rev": "8a7d4c87d2e6936d64c1251c6f968a93cc87cce5",
+        "sha256": "SX0jA8VuN4LNVhR/aw3gF0uF7+c9McEiHnNmxbPtE5g=",
         "fetchSubmodules": false
     },
     "gpsp": {
         "owner": "libretro",
         "repo": "gpsp",
-        "rev": "a2aa78733d8daf1d550c9dc76c6ff94e8670b31c",
-        "sha256": "nKim7YkksUyZO97SvrW1TEYQlA+7Yi7xbLtyDPV4LWc=",
+        "rev": "be3fdfd0b4e0529d7e00c4e16eb26d92fe0559a6",
+        "sha256": "GX3iAVNfznxa/3aIHuopFFNsdz2b22BiQyycioH1TGw=",
         "fetchSubmodules": false
     },
     "gw": {
@@ -212,8 +233,8 @@
     "handy": {
         "owner": "libretro",
         "repo": "libretro-handy",
-        "rev": "e7b4e32d5f32d6e96630072072844a7dd16a02d9",
-        "sha256": "dQpEqxOcac7gdbmWu4HTvFx++us/spVMfroBlLTAgF0=",
+        "rev": "ebcbb8be5d174306ffb091b7657637b910fc35d2",
+        "sha256": "mkPgOFfYDICmFu0nZ+9kfbrmSmPpNdC9lvci0MsXIwo=",
         "fetchSubmodules": false
     },
     "hatari": {
@@ -240,15 +261,15 @@
     "mame2003": {
         "owner": "libretro",
         "repo": "mame2003-libretro",
-        "rev": "d0ed1a565803cfada9f4088326eae616f6e5f8a3",
-        "sha256": "JGEy6Mp5qcZwaehzbj+qpdBfxHzqi6qIR7akxIj/WK8=",
+        "rev": "80a4ca5c0db69be9fe9b65dcaa7ad45930c989b8",
+        "sha256": "ZViVX+Z40ctxWGiQtfmRUDbUT7EYHqTNDhwWbKBjTEQ=",
         "fetchSubmodules": false
     },
     "mame2003-plus": {
         "owner": "libretro",
         "repo": "mame2003-plus-libretro",
-        "rev": "841e44dff953a346127f15be53cb34778e20ce1c",
-        "sha256": "aCXyeDcz0uSObe4S2bQWCxIAF5aA3kne5v0HT+oXHuw=",
+        "rev": "8dc4cfa741db8136e43c4a0eabdc1977fd88ccdb",
+        "sha256": "gcsL2xfF+q5ECN9u4JaKR8rimCXLt/bVSzybLo2ln3Q=",
         "fetchSubmodules": false
     },
     "mame2010": {
@@ -268,15 +289,29 @@
     "mame2016": {
         "owner": "libretro",
         "repo": "mame2016-libretro",
-        "rev": "d53c379892b0bd91b4a52fc2de491e1199f03e32",
-        "sha256": "GQ4Sdg/1nZRT4Z1Aqq1zPo96duqIGyt6sjghf9ap2Jg=",
+        "rev": "69711c25c14f990b05fdce87fb92f3b5c312ec1e",
+        "sha256": "QdSgWcZIMDnmYAKAnvwNRPBYRaSMTcRpI7Vd04Xv3Is=",
+        "fetchSubmodules": false
+    },
+    "melonds": {
+        "owner": "libretro",
+        "repo": "melonds",
+        "rev": "1ad65728476d7b9594c4ff91a1ba60460a0a30e7",
+        "sha256": "EBV8F2MCmWuxWKMOXipTZKRGHqp8sb/ojK3JpGZe818=",
         "fetchSubmodules": false
     },
     "mesen": {
-        "owner": "SourMesen",
+        "owner": "libretro",
         "repo": "mesen",
-        "rev": "86326e832974d984846ae078e568c023a5f76f1f",
-        "sha256": "At5rhlJ6rAnXaQrmRA1NtCCi+Ff/ytlt5dwsaXZhxXg=",
+        "rev": "094d82bf724448426acbaad45e83bc38994e32f6",
+        "sha256": "9+AqZRv8lugNNa+ZZzIPJNO87J1aBUEiOggL8aYno1M=",
+        "fetchSubmodules": false
+    },
+    "mesen-s": {
+        "owner": "libretro",
+        "repo": "mesen-s",
+        "rev": "42eb0e8ad346608dae86feb8a04833d16ad21541",
+        "sha256": "q6zeoNiZtFy8ZYls9/E+O7o9BYTcVcmYjbJA48qiraU=",
         "fetchSubmodules": false
     },
     "meteor": {
@@ -289,8 +324,8 @@
     "mgba": {
         "owner": "libretro",
         "repo": "mgba",
-        "rev": "033e067285745909722df930deaeead80ea2d54a",
-        "sha256": "ZFmiVOf8H3PtSCWTtYc3XsIpiJI6XZ2v/HsusQsg7H8=",
+        "rev": "c33adfa66b4b3f72c939c27ff0668ebeada75086",
+        "sha256": "naZkfIghS4mIT5LT2x1E8W9/bju9pLZb8RfEHOlx7QI=",
         "fetchSubmodules": false
     },
     "mupen64plus": {
@@ -310,8 +345,8 @@
     "nestopia": {
         "owner": "libretro",
         "repo": "nestopia",
-        "rev": "ea6f1c0631bb62bf15ab96493127dd9cfaf74d1c",
-        "sha256": "v+5000V1SR1sXWHryoZEi5sTgaRlVMrHmWKJX2stdSk=",
+        "rev": "21e2cec7a13f0a09f493637de289e59386e2fd36",
+        "sha256": "XKEY43wtdE78XN2TnT8AW80irnsbIwPzQ1EkGXOrsG4=",
         "fetchSubmodules": false
     },
     "np2kai": {
@@ -324,15 +359,15 @@
     "o2em": {
         "owner": "libretro",
         "repo": "libretro-o2em",
-        "rev": "c039e83f2589cb9d21b9aa5dc211954234ab8c97",
-        "sha256": "QQS4mS68C3aTZ4dw7ju6WyPlDjIBoDkIeQduCccAmDQ=",
+        "rev": "f1050243e0d5285e7769e94a882b0cf39d2b7370",
+        "sha256": "wD+iJ8cKC8jYFZ6OVvX71uO7sSh5b/LLoc5+g7f3Yyg=",
         "fetchSubmodules": false
     },
     "opera": {
         "owner": "libretro",
         "repo": "opera-libretro",
-        "rev": "d8aa7cecf96298bd7ee51718086f7b1bc8c57e2a",
-        "sha256": "1t+zwCVmqiPFFNCNq9XzVfRGbEA1q8v4jzhOb+wV/nA=",
+        "rev": "aa868e656b518567a95b11b2f14c5db8001b11a0",
+        "sha256": "YUzfHtgKCzgxZwslFxwmAN0hg+MIGLAYBAI7RUCIW40=",
         "fetchSubmodules": false
     },
     "parallel-n64": {
@@ -342,6 +377,13 @@
         "sha256": "rms+T8JOp/TJ/T5a5uLj8lu1LLz/GAsJZ7UbK42C9yU=",
         "fetchSubmodules": false
     },
+    "pcsx2": {
+        "owner": "libretro",
+        "repo": "pcsx2",
+        "rev": "26890da6f34176e70289c2f3004cd5660be0035b",
+        "sha256": "PocOjidZyv30kIjOq++9DZdCNBXbCbyd0vepjMFXflQ=",
+        "fetchSubmodules": false
+    },
     "pcsx_rearmed": {
         "owner": "libretro",
         "repo": "pcsx_rearmed",
@@ -352,50 +394,50 @@
     "picodrive": {
         "owner": "libretro",
         "repo": "picodrive",
-        "rev": "9cb99ce36f93871b05c5adc2790b2e33e63b50b6",
-        "sha256": "hhdEuri1hSNLAkno8Rwd0Yls11Yh6Q7/+t4T2LH+BaE=",
+        "rev": "d44605c269e645a6734089ac1f95116a5ce57e0b",
+        "sha256": "Z4d+7Hf55raMAOIA2jrj6M99XhLTZqthHxi89ba+xEo=",
         "fetchSubmodules": true
     },
     "play": {
         "owner": "jpd002",
         "repo": "Play-",
-        "rev": "b8e16159734c2068db0f2f12b11bc16ef55058ce",
-        "sha256": "qjp1rEjmDAAB2wXITA3lAS+ERJuZinoneJToYiYRi/w=",
+        "rev": "65492042f0b2146d81decc8f63466362dd6122bc",
+        "sha256": "fpiOT6fXvjGWmnKwncV2NyuYeT2ACE8LLyisKsWqydQ=",
         "fetchSubmodules": true
     },
     "ppsspp": {
         "owner": "hrydgard",
         "repo": "ppsspp",
-        "rev": "b6e7fe1aaf2bbb8f4faa1378bf14f434aea33cc1",
-        "sha256": "Kif6oF8Bjhgc02xKDivCG9RBxj5wxNFEwxl9nX3AZug=",
+        "rev": "3e5511b6091b8af76d124d101f3d84ccc1021f30",
+        "sha256": "FCaKEdu55c7zxh9Mdi+xAFj8v5/AoT2AzYYEErHd9sQ=",
         "fetchSubmodules": true
     },
     "prboom": {
         "owner": "libretro",
         "repo": "libretro-prboom",
-        "rev": "0f5927db4fb7e61f32bc9eccc5f809e54f71a371",
-        "sha256": "DFpDxEUHjuCcHQGxT+impj98vYITeok1SHrRN5Hba4M=",
+        "rev": "de19b1124559423244b4d677fd6006444d418c0e",
+        "sha256": "vt43eYYGGUotxYeotUfp/9fvWnKJLJtrvo+GNavH3QY=",
         "fetchSubmodules": false
     },
     "prosystem": {
         "owner": "libretro",
         "repo": "prosystem-libretro",
-        "rev": "f8652c7f2b0edc81685d03204d4963fc4ea9eccd",
-        "sha256": "Ki4Dyb//X8isP0tScqunA/qt2vkX6d2HH7rHhqk3D5k=",
+        "rev": "89e6df7b60d151310fedbe118fb472959a9dcd61",
+        "sha256": "uxgKddS53X7ntPClE8MGezBAG+7OAFvMXTnyKpOOau0=",
         "fetchSubmodules": false
     },
     "quicknes": {
         "owner": "libretro",
         "repo": "QuickNES_Core",
-        "rev": "71b8000b33daab8ed488f8707ccd8d5b623443f8",
-        "sha256": "Wx8nFWy0DQaZlhEMiI2KRwBK0earSVSke7/qXbs0bQ0=",
+        "rev": "6444b56659ed887c3492831da188fbc42e3e8ca2",
+        "sha256": "FHV9oM4rmsCm7GsD5TKyVbBCN7uc9GRU5YGQE+2SiRM=",
         "fetchSubmodules": false
     },
     "sameboy": {
         "owner": "libretro",
         "repo": "sameboy",
-        "rev": "68f67b3db7747ba7aac84c5c253bc71d5a906525",
-        "sha256": "/4JQ1Tem3UgOUIcsLV0aLU+1R55hMTaT+wWElwj00Q4=",
+        "rev": "685c6c8b497260f53a984d5c4398ef2b25253104",
+        "sha256": "OosKYG38NvfwrLSEhAe2CrUx8PiSv4OhkmrVUO6l1qc=",
         "fetchSubmodules": false
     },
     "scummvm": {
@@ -415,8 +457,8 @@
     "snes9x": {
         "owner": "snes9xgit",
         "repo": "snes9x",
-        "rev": "edc32fc0bd6aea6d5645a03f0f94b72f3cbfa43e",
-        "sha256": "Zeojdoykmk+lpG1z5EdZToGWYDQvSSQqaEr7F68iyk0=",
+        "rev": "cf1a5901fccafdaead225b0a5e55ff74fdcf9678",
+        "sha256": "p6qTCZnZSV5vgpZglI/HMi/wOfu0hG2TuvOQhQHeo2s=",
         "fetchSubmodules": false
     },
     "snes9x2002": {
@@ -443,8 +485,8 @@
     "stella": {
         "owner": "stella-emu",
         "repo": "stella",
-        "rev": "e1035b74fce26932078d00e8625688927efce34c",
-        "sha256": "+ZvSCnnoKGyToSFqUQOArolFdgUcBBFNjFw8aoVDkYI=",
+        "rev": "66e2c857c2bd85e778c51ae1cb99fb7669c7af17",
+        "sha256": "RWNEq5qwShbBKIx5bif4NDs/uJES2wf1CVSxZbb6beI=",
         "fetchSubmodules": false
     },
     "stella2014": {
@@ -454,6 +496,13 @@
         "sha256": "s7LQ47sAPTyk4COONk4qnebxCq78zGLIjh3Y2+1fIak=",
         "fetchSubmodules": false
     },
+    "swanstation": {
+        "owner": "libretro",
+        "repo": "swanstation",
+        "rev": "8951ed1cea4ea65de5529a35e950f1b185e48b6e",
+        "sha256": "27EH4oiYf154DJwm738qPOMCuWOCKD7wuSng3hz/xh0=",
+        "fetchSubmodules": false
+    },
     "tgbdual": {
         "owner": "libretro",
         "repo": "tgbdual-libretro",
@@ -475,13 +524,6 @@
         "sha256": "SXJvWX6Q3BrdajNnT4HIf6H2z7dXXvnXTJXf/TYRw4I=",
         "fetchSubmodules": true
     },
-    "vba-next": {
-        "owner": "libretro",
-        "repo": "vba-next",
-        "rev": "b218f48bb27b5d3885fa4076ff325922b5acd817",
-        "sha256": "idqGMbMA9mZlIh0QAba3BxpPDi/bFJJkUbnxV3xMOCo=",
-        "fetchSubmodules": false
-    },
     "vba-m": {
         "owner": "libretro",
         "repo": "vbam-libretro",
@@ -489,6 +531,13 @@
         "sha256": "vJWjdqJ913NLGL4G15sRPqO/wp9xPsuhUMLUuAbDRKk=",
         "fetchSubmodules": false
     },
+    "vba-next": {
+        "owner": "libretro",
+        "repo": "vba-next",
+        "rev": "b218f48bb27b5d3885fa4076ff325922b5acd817",
+        "sha256": "idqGMbMA9mZlIh0QAba3BxpPDi/bFJJkUbnxV3xMOCo=",
+        "fetchSubmodules": false
+    },
     "vecx": {
         "owner": "libretro",
         "repo": "libretro-vecx",
@@ -506,8 +555,8 @@
     "yabause": {
         "owner": "libretro",
         "repo": "yabause",
-        "rev": "811f9e81dbff4bed18644e19631fd4893e73e6ee",
-        "sha256": "VstPh0oMEZ7/ts58NjZxBYZZx/7dRTYePhDIQMu0WOo=",
+        "rev": "c940fe68461cb2bc6dd98cc162b46813ba12b081",
+        "sha256": "a4nTgOZ2xEq45sWZ9AxmrjEdMOjnG3Whfm8mrvEMnuY=",
         "fetchSubmodules": false
     }
 }
diff --git a/pkgs/misc/emulators/retroarch/update.py b/pkgs/misc/emulators/retroarch/update.py
index db43db13575f4..831709d89e7c1 100755
--- a/pkgs/misc/emulators/retroarch/update.py
+++ b/pkgs/misc/emulators/retroarch/update.py
@@ -11,7 +11,6 @@ SCRIPT_PATH = Path(__file__).absolute().parent
 HASHES_PATH = SCRIPT_PATH / "hashes.json"
 CORES = {
     "atari800": {"repo": "libretro-atari800"},
-    "beetle-snes": {"repo": "beetle-bsnes-libretro"},
     "beetle-gba": {"repo": "beetle-gba-libretro"},
     "beetle-lynx": {"repo": "beetle-lynx-libretro"},
     "beetle-ngp": {"repo": "beetle-ngp-libretro"},
@@ -19,10 +18,14 @@ CORES = {
     "beetle-pcfx": {"repo": "beetle-pcfx-libretro"},
     "beetle-psx": {"repo": "beetle-psx-libretro"},
     "beetle-saturn": {"repo": "beetle-saturn-libretro"},
+    "beetle-snes": {"repo": "beetle-bsnes-libretro"},
     "beetle-supergrafx": {"repo": "beetle-supergrafx-libretro"},
-    "beetle-wswan": {"repo": "beetle-wswan-libretro"},
     "beetle-vb": {"repo": "beetle-vb-libretro"},
+    "beetle-wswan": {"repo": "beetle-wswan-libretro"},
+    "blastem": {"repo": "blastem"},
     "bluemsx": {"repo": "bluemsx-libretro"},
+    "bsnes": {"repo": "bsnes-libretro"},
+    "bsnes-hd": {"repo": "bsnes-hd", "owner": "DerKoun"},
     "bsnes-mercury": {"repo": "bsnes-mercury"},
     "citra": {"repo": "citra", "fetch_submodules": True},
     "desmume": {"repo": "desmume"},
@@ -49,7 +52,9 @@ CORES = {
     "mame2010": {"repo": "mame2010-libretro"},
     "mame2015": {"repo": "mame2015-libretro"},
     "mame2016": {"repo": "mame2016-libretro"},
-    "mesen": {"repo": "mesen", "owner": "SourMesen"},
+    "melonds": {"repo": "melonds"},
+    "mesen": {"repo": "mesen"},
+    "mesen-s": {"repo": "mesen-s"},
     "meteor": {"repo": "meteor-libretro"},
     "mgba": {"repo": "mgba"},
     "mupen64plus": {"repo": "mupen64plus-libretro-nx"},
@@ -59,6 +64,7 @@ CORES = {
     "o2em": {"repo": "libretro-o2em"},
     "opera": {"repo": "opera-libretro"},
     "parallel-n64": {"repo": "parallel-n64"},
+    "pcsx2": {"repo": "pcsx2"},
     "pcsx_rearmed": {"repo": "pcsx_rearmed"},
     "picodrive": {"repo": "picodrive", "fetch_submodules": True},
     "play": {"repo": "Play-", "owner": "jpd002", "fetch_submodules": True},
@@ -75,11 +81,12 @@ CORES = {
     "snes9x2010": {"repo": "snes9x2010"},
     "stella": {"repo": "stella", "owner": "stella-emu"},
     "stella2014": {"repo": "stella2014-libretro"},
+    "swanstation": {"repo": "swanstation"},
     "tgbdual": {"repo": "tgbdual-libretro"},
     "thepowdertoy": {"repo": "ThePowderToy"},
     "tic80": {"repo": "tic-80", "fetch_submodules": True},
-    "vba-next": {"repo": "vba-next"},
     "vba-m": {"repo": "vbam-libretro"},
+    "vba-next": {"repo": "vba-next"},
     "vecx": {"repo": "libretro-vecx"},
     "virtualjaguar": {"repo": "virtualjaguar-libretro"},
     "yabause": {"repo": "yabause"},
@@ -112,21 +119,33 @@ def get_repo_hash(fetcher="fetchFromGitHub", **kwargs):
         raise ValueError(f"Unsupported fetcher: {fetcher}")
 
 
-def get_repo_hashes():
-    repo_hashes = {}
+def get_repo_hashes(cores_to_update=[]):
+    with open(HASHES_PATH) as f:
+        repo_hashes = json.loads(f.read())
 
     for core, repo in CORES.items():
-        info(f"Getting repo hash for '{core}'...")
-        repo_hashes[core] = get_repo_hash(**repo)
+        if core in cores_to_update:
+            info(f"Getting repo hash for '{core}'...")
+            repo_hashes[core] = get_repo_hash(**repo)
+        else:
+            info(f"Skipping '{core}'...")
 
     return repo_hashes
 
 
 def main():
-    repo_hashes = get_repo_hashes()
+    # If you don't want to update all cores, pass the name of the cores you
+    # want to update on the command line. E.g.:
+    # $ ./update.py citra snes9x
+    if len(sys.argv) > 1:
+        cores_to_update = sys.argv[1:]
+    else:
+        cores_to_update = CORES.keys()
+
+    repo_hashes = get_repo_hashes(cores_to_update)
     info(f"Generating '{HASHES_PATH}'...")
     with open(HASHES_PATH, "w") as f:
-        f.write(json.dumps(repo_hashes, indent=4))
+        f.write(json.dumps(dict(sorted(repo_hashes.items())), indent=4))
         f.write("\n")
     info("Finished!")
 
diff --git a/pkgs/misc/emulators/ryujinx/deps.nix b/pkgs/misc/emulators/ryujinx/deps.nix
index 92638ea9b4ac0..5d4f1d8d7abbc 100644
--- a/pkgs/misc/emulators/ryujinx/deps.nix
+++ b/pkgs/misc/emulators/ryujinx/deps.nix
@@ -1,226 +1,226 @@
 { fetchNuGet }: [
-  (fetchNuGet { name = "AtkSharp"; version = "3.22.25.128"; sha256 = "0fg01zi7v6127043jzxzihirsdp187pyj83gfa6p79cx763l7z94"; })
-  (fetchNuGet { name = "CairoSharp"; version = "3.22.25.128"; sha256 = "1rjdxd4fq5z3n51qx8vrcaf4i277ccc62jxk88xzbsxapdmjjdf9"; })
-  (fetchNuGet { name = "CommandLineParser"; version = "2.8.0"; sha256 = "1m32xyilv2b7k55jy8ddg08c20glbcj2yi545kxs9hj2ahanhrbb"; })
-  (fetchNuGet { name = "Concentus"; version = "1.1.7"; sha256 = "0y5z444wrbhlmsqpy2sxmajl1fbf74843lvgj3y6vz260dn2q0l0"; })
-  (fetchNuGet { name = "Crc32.NET"; version = "1.2.0"; sha256 = "0qaj3192k1vfji87zf50rhydn5mrzyzybrs2k4v7ap29k8i0vi5h"; })
-  (fetchNuGet { name = "DiscordRichPresence"; version = "1.0.175"; sha256 = "180sax976327d70qbinv07f65g3w2zbw80n49hckg8wd4rw209vd"; })
-  (fetchNuGet { name = "FFmpeg.AutoGen"; version = "4.4.1"; sha256 = "01j989g68arm2d8abq44hp0f22pp6azf2xi7wi7hv7m4sl0l9cwp"; })
-  (fetchNuGet { name = "GdkSharp"; version = "3.22.25.128"; sha256 = "0bmn0ddaw8797pnhpyl03h2zl8i5ha67yv38gly4ydy50az2xhj7"; })
-  (fetchNuGet { name = "GioSharp"; version = "3.22.25.128"; sha256 = "0syfa1f2hg7wsxln5lh86n8m1lihhprc51b6km91gkl25l5hw5bv"; })
-  (fetchNuGet { name = "GLibSharp"; version = "3.22.25.128"; sha256 = "1j8i5izk97ga30z1qpd765zqd2q5w71y8bhnkqq4bj59768fyxp5"; })
-  (fetchNuGet { name = "GtkSharp"; version = "3.22.25.128"; sha256 = "0z0wx0p3gc02r8d7y88k1rw307sb2vapbr1k1yc5qdc38fxz5jsy"; })
-  (fetchNuGet { name = "GtkSharp.Dependencies"; version = "1.1.0"; sha256 = "1g1rhcn38ww97638rds6l5bysra43hkhv47fy71fvq89623zgyxn"; })
-  (fetchNuGet { name = "LibHac"; version = "0.13.3"; sha256 = "0mh7q1i9wk5mj7xc1rbsasfmd0d1y6xs5m4nllmclk4drzkzsi56"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "5.0.12"; sha256 = "1asph5v7kgmscfgsyv9gg7cwvg52gnm6m0ldm2m4pfkpsxqyp2mi"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "5.0.12"; sha256 = "02kv8xh6xvpav7vqj281321ly1imghxcc18cdgadiq8dwgm87xwp"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "5.0.12"; sha256 = "062zb8gqbzxq2xrmr8lbl215pnhw1fdidq43m975vsfgzmqrga8f"; })
-  (fetchNuGet { name = "Microsoft.CodeCoverage"; version = "16.8.0"; sha256 = "1y05sjk7wgd29a47v1yhn2s1lrd8wgazkilvmjbvivmrrm3fqjs8"; })
-  (fetchNuGet { name = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
-  (fetchNuGet { name = "Microsoft.DotNet.InternalAbstractions"; version = "1.0.0"; sha256 = "0mp8ihqlb7fsa789frjzidrfjc1lrhk88qp3xm5qvr7vf4wy4z8x"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Host.osx-x64"; version = "5.0.12"; sha256 = "0950m6x86jp5dybzakfsp74qzrk4pk8wkazc178v36j14sqmj2zq"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Host.win-x64"; version = "5.0.12"; sha256 = "173zymcac00rjb0l4yvksglj32b6fnwxzi60kpi0ki3z3a2k8kd3"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.12"; sha256 = "1fdbrjrmjd31y1amp0inlmki9w3fwzv8nz41pqmc943g3cpmyg9f"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "5.0.12"; sha256 = "0z8l0gzy9dih0mn5a2rknyph1w73y4m03s250wghym1zp6rz910p"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.win-x64"; version = "5.0.12"; sha256 = "1s4klc4p5wiqiiqcfqyi56cci9f29b588h52vj7na7gfqry4b51l"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
-  (fetchNuGet { name = "Microsoft.NET.Test.Sdk"; version = "16.8.0"; sha256 = "1ln2mva7j2mpsj9rdhpk8vhm3pgd8wn563xqdcwd38avnhp74rm9"; })
-  (fetchNuGet { name = "Microsoft.TestPlatform.ObjectModel"; version = "16.8.0"; sha256 = "0ii9d88py6mjsxzj9v3zx4izh6rb9ma6s9kj85xmc0xrw7jc2g3m"; })
-  (fetchNuGet { name = "Microsoft.TestPlatform.TestHost"; version = "16.8.0"; sha256 = "1rh8cga1km3jfafkwfjr0dwqrxb4306hf7fipwba9h02w7vlhb9a"; })
-  (fetchNuGet { name = "Microsoft.Win32.Primitives"; version = "4.0.1"; sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7"; })
-  (fetchNuGet { name = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
-  (fetchNuGet { name = "Microsoft.Win32.Registry"; version = "4.3.0"; sha256 = "1gxyzxam8163vk1kb6xzxjj4iwspjsz9zhgn1w9rjzciphaz0ig7"; })
-  (fetchNuGet { name = "Microsoft.Win32.Registry"; version = "4.5.0"; sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q"; })
-  (fetchNuGet { name = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
-  (fetchNuGet { name = "Microsoft.Win32.SystemEvents"; version = "5.0.0"; sha256 = "0sja4ba0mrvdamn0r9mhq38b9dxi08yb3c1hzh29n1z6ws1hlrcq"; })
-  (fetchNuGet { name = "Mono.Posix.NETStandard"; version = "1.0.0"; sha256 = "0xlja36hwpjm837haq15mjh2prcf68lyrmn72nvgpz8qnf9vappw"; })
-  (fetchNuGet { name = "MsgPack.Cli"; version = "1.0.1"; sha256 = "1dk2bs3g16lsxcjjm7gfx6jxa4667wccw94jlh2ql7y7smvh9z8r"; })
-  (fetchNuGet { name = "NETStandard.Library"; version = "1.6.0"; sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k"; })
-  (fetchNuGet { name = "NETStandard.Library"; version = "2.0.0"; sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
-  (fetchNuGet { name = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
-  (fetchNuGet { name = "NUnit"; version = "3.12.0"; sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2"; })
-  (fetchNuGet { name = "NUnit3TestAdapter"; version = "3.17.0"; sha256 = "0kxc6z3b8ccdrcyqz88jm5yh5ch9nbg303v67q8sp5hhs8rl8nk6"; })
-  (fetchNuGet { name = "OpenTK.Core"; version = "4.5.0"; sha256 = "06qxczikp0aah20d4skk3g588dgh2vn2xffn0ajyyv0475m61s9m"; })
-  (fetchNuGet { name = "OpenTK.Graphics"; version = "4.5.0"; sha256 = "180g5c92fhhhpmwl6paihx4h1bil7akaihlz2qy124n28pf4s988"; })
-  (fetchNuGet { name = "OpenTK.Mathematics"; version = "4.5.0"; sha256 = "1h9dxhq1llxdbgdzsi87ijqgj2ilr3rv0zkxhaa65xrc5x8j8fva"; })
-  (fetchNuGet { name = "OpenTK.OpenAL"; version = "4.5.0"; sha256 = "0lqxpc3vnxglql42x2frvq5bpkl5cf3dpnf9nx6pr3q6qnhigkfb"; })
-  (fetchNuGet { name = "PangoSharp"; version = "3.22.25.128"; sha256 = "0dkl9j0yd65s5ds9xj5z6yb7yca7wlycqz25m8dng20d13sqr1zp"; })
-  (fetchNuGet { name = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
-  (fetchNuGet { name = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
-  (fetchNuGet { name = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
-  (fetchNuGet { name = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
-  (fetchNuGet { name = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; })
-  (fetchNuGet { name = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
-  (fetchNuGet { name = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
-  (fetchNuGet { name = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; })
-  (fetchNuGet { name = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; })
-  (fetchNuGet { name = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; })
-  (fetchNuGet { name = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; })
-  (fetchNuGet { name = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; })
-  (fetchNuGet { name = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; })
-  (fetchNuGet { name = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
-  (fetchNuGet { name = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
-  (fetchNuGet { name = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
-  (fetchNuGet { name = "runtime.any.System.Threading.Timer"; version = "4.3.0"; sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086"; })
-  (fetchNuGet { name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
-  (fetchNuGet { name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
-  (fetchNuGet { name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
-  (fetchNuGet { name = "runtime.native.System"; version = "4.0.0"; sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf"; })
-  (fetchNuGet { name = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
-  (fetchNuGet { name = "runtime.native.System.IO.Compression"; version = "4.1.0"; sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk"; })
-  (fetchNuGet { name = "runtime.native.System.Net.Http"; version = "4.0.1"; sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6"; })
-  (fetchNuGet { name = "runtime.native.System.Security.Cryptography"; version = "4.0.0"; sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9"; })
-  (fetchNuGet { name = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
-  (fetchNuGet { name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
-  (fetchNuGet { name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
-  (fetchNuGet { name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
-  (fetchNuGet { name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
-  (fetchNuGet { name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
-  (fetchNuGet { name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
-  (fetchNuGet { name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
-  (fetchNuGet { name = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
-  (fetchNuGet { name = "runtime.unix.System.Console"; version = "4.3.0"; sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80"; })
-  (fetchNuGet { name = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
-  (fetchNuGet { name = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
-  (fetchNuGet { name = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; })
-  (fetchNuGet { name = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; })
-  (fetchNuGet { name = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
-  (fetchNuGet { name = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
-  (fetchNuGet { name = "runtime.win.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0k1h8nnp1s0p8rjwgjyj1387cc1yycv0k22igxc963lqdzrx2z36"; })
-  (fetchNuGet { name = "runtime.win.System.Console"; version = "4.3.0"; sha256 = "0x2yajfrbc5zc6g7nmlr44xpjk6p1hxjq47jn3xki5j7i33zw9jc"; })
-  (fetchNuGet { name = "runtime.win.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "16fbn4bcynad1ygdq0yk1wmckvs8jvrrf104xa5dc2hlc8y3x58f"; })
-  (fetchNuGet { name = "runtime.win.System.IO.FileSystem"; version = "4.3.0"; sha256 = "1c01nklbxywszsbfaxc76hsz7gdxac3jkphrywfkdsi3v4bwd6g8"; })
-  (fetchNuGet { name = "runtime.win.System.Net.Primitives"; version = "4.3.0"; sha256 = "1dixh195bi7473n17hspll6i562gghdz9m4jk8d4kzi1mlzjk9cf"; })
-  (fetchNuGet { name = "runtime.win.System.Net.Sockets"; version = "4.3.0"; sha256 = "0lr3zki831vs6qhk5wckv2b9qbfk9rcj0ds2926qvj1b9y9m6sck"; })
-  (fetchNuGet { name = "runtime.win.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1700famsxndccfbcdz9q14qb20p49lax67mqwpgy4gx3vja1yczr"; })
-  (fetchNuGet { name = "Ryujinx.Audio.OpenAL.Dependencies"; version = "1.21.0.1"; sha256 = "0z5k42h252nr60d02p2ww9190d7k1kzrb26vil4ydfhxqqqv6w9l"; })
-  (fetchNuGet { name = "Ryujinx.Graphics.Nvdec.Dependencies"; version = "4.4.0-build7"; sha256 = "0g1l3lgs0ffxp64ka81v6q1cgsdirl1qlf73255v29r3v337074m"; })
-  (fetchNuGet { name = "Ryujinx.Graphics.Nvdec.Dependencies"; version = "4.4.0-build9"; sha256 = "121zmh0byi22qsc9b25wv58kwcq6pmk7zf4f2rfafmdjvwx8bkxc"; })
-  (fetchNuGet { name = "Ryujinx.SDL2-CS"; version = "2.0.17-build18"; sha256 = "0j0vs6075c4fniydqxhpp18pg3x679mq463x4gxqgkri3vhpj4vl"; })
-  (fetchNuGet { name = "SharpZipLib"; version = "1.3.0"; sha256 = "1pizj82wisch28nfdaszwqm9bz19lnl0s5mq8c0zybm2vhnrhvk4"; })
-  (fetchNuGet { name = "SixLabors.Fonts"; version = "1.0.0-beta0013"; sha256 = "0r0aw8xxd32rwcawawcz6asiyggz02hnzg5hvz8gimq8hvwx1wql"; })
-  (fetchNuGet { name = "SixLabors.ImageSharp"; version = "1.0.2"; sha256 = "0fhk9sn8k18slfb26wz8mal0j699f7djwhxgv97snz6b10wynfaj"; })
-  (fetchNuGet { name = "SixLabors.ImageSharp.Drawing"; version = "1.0.0-beta11"; sha256 = "0hl0rs3kr1zdnx3gdssxgli6fyvmwzcfp99f4db71s0i8j8b2bp5"; })
-  (fetchNuGet { name = "SPB"; version = "0.0.3-build15"; sha256 = "0h00yi2j65q31r5npsziq2rpiw832vf9r72j1hjqibp2l5m6v6yw"; })
-  (fetchNuGet { name = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
-  (fetchNuGet { name = "System.Buffers"; version = "4.0.0"; sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; })
-  (fetchNuGet { name = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
-  (fetchNuGet { name = "System.CodeDom"; version = "4.4.0"; sha256 = "1zgbafm5p380r50ap5iddp11kzhr9khrf2pnai6k593wjar74p1g"; })
-  (fetchNuGet { name = "System.CodeDom"; version = "5.0.0"; sha256 = "14zs2wqkmdlxzj8ikx19n321lsbarx5vl2a8wrachymxn8zb5njh"; })
-  (fetchNuGet { name = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
-  (fetchNuGet { name = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
-  (fetchNuGet { name = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; })
-  (fetchNuGet { name = "System.Collections.NonGeneric"; version = "4.3.0"; sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k"; })
-  (fetchNuGet { name = "System.Collections.Specialized"; version = "4.3.0"; sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20"; })
-  (fetchNuGet { name = "System.ComponentModel"; version = "4.3.0"; sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb"; })
-  (fetchNuGet { name = "System.ComponentModel.EventBasedAsync"; version = "4.3.0"; sha256 = "1rv9bkb8yyhqqqrx6x95njv6mdxlbvv527b44mrd93g8fmgkifl7"; })
-  (fetchNuGet { name = "System.ComponentModel.Primitives"; version = "4.3.0"; sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0"; })
-  (fetchNuGet { name = "System.ComponentModel.TypeConverter"; version = "4.3.0"; sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x"; })
-  (fetchNuGet { name = "System.Console"; version = "4.0.0"; sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; })
-  (fetchNuGet { name = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
-  (fetchNuGet { name = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
-  (fetchNuGet { name = "System.Diagnostics.DiagnosticSource"; version = "4.0.0"; sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m"; })
-  (fetchNuGet { name = "System.Diagnostics.Process"; version = "4.3.0"; sha256 = "0g4prsbkygq8m21naqmcp70f24a1ksyix3dihb1r1f71lpi3cfj7"; })
-  (fetchNuGet { name = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
-  (fetchNuGet { name = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; })
-  (fetchNuGet { name = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
-  (fetchNuGet { name = "System.Drawing.Common"; version = "5.0.1"; sha256 = "14h722wq58k1wmgxmpws91xc7kh8109ijw0hcxjq9qkbhbi6pwmb"; })
-  (fetchNuGet { name = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
-  (fetchNuGet { name = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
-  (fetchNuGet { name = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
-  (fetchNuGet { name = "System.Globalization.Calendars"; version = "4.0.1"; sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh"; })
-  (fetchNuGet { name = "System.Globalization.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; })
-  (fetchNuGet { name = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
-  (fetchNuGet { name = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
-  (fetchNuGet { name = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
-  (fetchNuGet { name = "System.IO.Compression"; version = "4.1.0"; sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji"; })
-  (fetchNuGet { name = "System.IO.Compression.ZipFile"; version = "4.0.1"; sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82"; })
-  (fetchNuGet { name = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
-  (fetchNuGet { name = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
-  (fetchNuGet { name = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
-  (fetchNuGet { name = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
-  (fetchNuGet { name = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
-  (fetchNuGet { name = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
-  (fetchNuGet { name = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
-  (fetchNuGet { name = "System.Management"; version = "5.0.0"; sha256 = "09hyv3p0zd549577clydlb2szl84m4gvdjnsry73n8b12ja7d75s"; })
-  (fetchNuGet { name = "System.Net.Http"; version = "4.1.0"; sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb"; })
-  (fetchNuGet { name = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
-  (fetchNuGet { name = "System.Net.Primitives"; version = "4.0.11"; sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r"; })
-  (fetchNuGet { name = "System.Net.Sockets"; version = "4.1.0"; sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls"; })
-  (fetchNuGet { name = "System.Numerics.Vectors"; version = "4.3.0"; sha256 = "05kji1mv4sl75iwmc613p873145nynm02xiajx8pn0h2kx53d23s"; })
-  (fetchNuGet { name = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
-  (fetchNuGet { name = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
-  (fetchNuGet { name = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
-  (fetchNuGet { name = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
-  (fetchNuGet { name = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
-  (fetchNuGet { name = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
-  (fetchNuGet { name = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
-  (fetchNuGet { name = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
-  (fetchNuGet { name = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
-  (fetchNuGet { name = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
-  (fetchNuGet { name = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
-  (fetchNuGet { name = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
-  (fetchNuGet { name = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
-  (fetchNuGet { name = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
-  (fetchNuGet { name = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
-  (fetchNuGet { name = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
-  (fetchNuGet { name = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
-  (fetchNuGet { name = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
-  (fetchNuGet { name = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
-  (fetchNuGet { name = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
-  (fetchNuGet { name = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.0"; sha256 = "16r6sn4czfjk8qhnz7bnqlyiaaszr0ihinb7mq9zzr1wba257r54"; })
-  (fetchNuGet { name = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
-  (fetchNuGet { name = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
-  (fetchNuGet { name = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
-  (fetchNuGet { name = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.0.0"; sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
-  (fetchNuGet { name = "System.Runtime.Numerics"; version = "4.0.1"; sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn"; })
-  (fetchNuGet { name = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
-  (fetchNuGet { name = "System.Security.AccessControl"; version = "4.5.0"; sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0"; })
-  (fetchNuGet { name = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
-  (fetchNuGet { name = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Algorithms"; version = "4.2.0"; sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Cng"; version = "4.2.0"; sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Csp"; version = "4.0.0"; sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Encoding"; version = "4.0.0"; sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4"; })
-  (fetchNuGet { name = "System.Security.Cryptography.OpenSsl"; version = "4.0.0"; sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Primitives"; version = "4.0.0"; sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh"; })
-  (fetchNuGet { name = "System.Security.Cryptography.X509Certificates"; version = "4.1.0"; sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh"; })
-  (fetchNuGet { name = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
-  (fetchNuGet { name = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
-  (fetchNuGet { name = "System.Security.Principal.Windows"; version = "4.5.0"; sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86"; })
-  (fetchNuGet { name = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
-  (fetchNuGet { name = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
-  (fetchNuGet { name = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
-  (fetchNuGet { name = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
-  (fetchNuGet { name = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
-  (fetchNuGet { name = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
-  (fetchNuGet { name = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
-  (fetchNuGet { name = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
-  (fetchNuGet { name = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
-  (fetchNuGet { name = "System.Threading.Overlapped"; version = "4.3.0"; sha256 = "1nahikhqh9nk756dh8p011j36rlcp1bzz3vwi2b4m1l2s3vz8idm"; })
-  (fetchNuGet { name = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
-  (fetchNuGet { name = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
-  (fetchNuGet { name = "System.Threading.Thread"; version = "4.3.0"; sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4"; })
-  (fetchNuGet { name = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
-  (fetchNuGet { name = "System.Threading.Timer"; version = "4.0.1"; sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6"; })
-  (fetchNuGet { name = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
-  (fetchNuGet { name = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
-  (fetchNuGet { name = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
-  (fetchNuGet { name = "System.Xml.XmlDocument"; version = "4.3.0"; sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi"; })
-  (fetchNuGet { name = "System.Xml.XPath"; version = "4.3.0"; sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci"; })
-  (fetchNuGet { name = "System.Xml.XPath.XmlDocument"; version = "4.3.0"; sha256 = "1h9lh7qkp0lff33z847sdfjj8yaz98ylbnkbxlnsbflhj9xyfqrm"; })
+  (fetchNuGet { pname = "AtkSharp"; version = "3.22.25.128"; sha256 = "0fg01zi7v6127043jzxzihirsdp187pyj83gfa6p79cx763l7z94"; })
+  (fetchNuGet { pname = "CairoSharp"; version = "3.22.25.128"; sha256 = "1rjdxd4fq5z3n51qx8vrcaf4i277ccc62jxk88xzbsxapdmjjdf9"; })
+  (fetchNuGet { pname = "CommandLineParser"; version = "2.8.0"; sha256 = "1m32xyilv2b7k55jy8ddg08c20glbcj2yi545kxs9hj2ahanhrbb"; })
+  (fetchNuGet { pname = "Concentus"; version = "1.1.7"; sha256 = "0y5z444wrbhlmsqpy2sxmajl1fbf74843lvgj3y6vz260dn2q0l0"; })
+  (fetchNuGet { pname = "Crc32.NET"; version = "1.2.0"; sha256 = "0qaj3192k1vfji87zf50rhydn5mrzyzybrs2k4v7ap29k8i0vi5h"; })
+  (fetchNuGet { pname = "DiscordRichPresence"; version = "1.0.175"; sha256 = "180sax976327d70qbinv07f65g3w2zbw80n49hckg8wd4rw209vd"; })
+  (fetchNuGet { pname = "FFmpeg.AutoGen"; version = "4.4.1"; sha256 = "01j989g68arm2d8abq44hp0f22pp6azf2xi7wi7hv7m4sl0l9cwp"; })
+  (fetchNuGet { pname = "GdkSharp"; version = "3.22.25.128"; sha256 = "0bmn0ddaw8797pnhpyl03h2zl8i5ha67yv38gly4ydy50az2xhj7"; })
+  (fetchNuGet { pname = "GioSharp"; version = "3.22.25.128"; sha256 = "0syfa1f2hg7wsxln5lh86n8m1lihhprc51b6km91gkl25l5hw5bv"; })
+  (fetchNuGet { pname = "GLibSharp"; version = "3.22.25.128"; sha256 = "1j8i5izk97ga30z1qpd765zqd2q5w71y8bhnkqq4bj59768fyxp5"; })
+  (fetchNuGet { pname = "GtkSharp"; version = "3.22.25.128"; sha256 = "0z0wx0p3gc02r8d7y88k1rw307sb2vapbr1k1yc5qdc38fxz5jsy"; })
+  (fetchNuGet { pname = "GtkSharp.Dependencies"; version = "1.1.0"; sha256 = "1g1rhcn38ww97638rds6l5bysra43hkhv47fy71fvq89623zgyxn"; })
+  (fetchNuGet { pname = "LibHac"; version = "0.13.3"; sha256 = "0mh7q1i9wk5mj7xc1rbsasfmd0d1y6xs5m4nllmclk4drzkzsi56"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "5.0.12"; sha256 = "1asph5v7kgmscfgsyv9gg7cwvg52gnm6m0ldm2m4pfkpsxqyp2mi"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "5.0.12"; sha256 = "02kv8xh6xvpav7vqj281321ly1imghxcc18cdgadiq8dwgm87xwp"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "5.0.12"; sha256 = "062zb8gqbzxq2xrmr8lbl215pnhw1fdidq43m975vsfgzmqrga8f"; })
+  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "16.8.0"; sha256 = "1y05sjk7wgd29a47v1yhn2s1lrd8wgazkilvmjbvivmrrm3fqjs8"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
+  (fetchNuGet { pname = "Microsoft.DotNet.InternalAbstractions"; version = "1.0.0"; sha256 = "0mp8ihqlb7fsa789frjzidrfjc1lrhk88qp3xm5qvr7vf4wy4z8x"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "5.0.12"; sha256 = "0950m6x86jp5dybzakfsp74qzrk4pk8wkazc178v36j14sqmj2zq"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "5.0.12"; sha256 = "173zymcac00rjb0l4yvksglj32b6fnwxzi60kpi0ki3z3a2k8kd3"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.12"; sha256 = "1fdbrjrmjd31y1amp0inlmki9w3fwzv8nz41pqmc943g3cpmyg9f"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "5.0.12"; sha256 = "0z8l0gzy9dih0mn5a2rknyph1w73y4m03s250wghym1zp6rz910p"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "5.0.12"; sha256 = "1s4klc4p5wiqiiqcfqyi56cci9f29b588h52vj7na7gfqry4b51l"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
+  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "16.8.0"; sha256 = "1ln2mva7j2mpsj9rdhpk8vhm3pgd8wn563xqdcwd38avnhp74rm9"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "16.8.0"; sha256 = "0ii9d88py6mjsxzj9v3zx4izh6rb9ma6s9kj85xmc0xrw7jc2g3m"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "16.8.0"; sha256 = "1rh8cga1km3jfafkwfjr0dwqrxb4306hf7fipwba9h02w7vlhb9a"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.0.1"; sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.3.0"; sha256 = "1gxyzxam8163vk1kb6xzxjj4iwspjsz9zhgn1w9rjzciphaz0ig7"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.5.0"; sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
+  (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "5.0.0"; sha256 = "0sja4ba0mrvdamn0r9mhq38b9dxi08yb3c1hzh29n1z6ws1hlrcq"; })
+  (fetchNuGet { pname = "Mono.Posix.NETStandard"; version = "1.0.0"; sha256 = "0xlja36hwpjm837haq15mjh2prcf68lyrmn72nvgpz8qnf9vappw"; })
+  (fetchNuGet { pname = "MsgPack.Cli"; version = "1.0.1"; sha256 = "1dk2bs3g16lsxcjjm7gfx6jxa4667wccw94jlh2ql7y7smvh9z8r"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.0"; sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.0"; sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
+  (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
+  (fetchNuGet { pname = "NUnit"; version = "3.12.0"; sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2"; })
+  (fetchNuGet { pname = "NUnit3TestAdapter"; version = "3.17.0"; sha256 = "0kxc6z3b8ccdrcyqz88jm5yh5ch9nbg303v67q8sp5hhs8rl8nk6"; })
+  (fetchNuGet { pname = "OpenTK.Core"; version = "4.5.0"; sha256 = "06qxczikp0aah20d4skk3g588dgh2vn2xffn0ajyyv0475m61s9m"; })
+  (fetchNuGet { pname = "OpenTK.Graphics"; version = "4.5.0"; sha256 = "180g5c92fhhhpmwl6paihx4h1bil7akaihlz2qy124n28pf4s988"; })
+  (fetchNuGet { pname = "OpenTK.Mathematics"; version = "4.5.0"; sha256 = "1h9dxhq1llxdbgdzsi87ijqgj2ilr3rv0zkxhaa65xrc5x8j8fva"; })
+  (fetchNuGet { pname = "OpenTK.OpenAL"; version = "4.5.0"; sha256 = "0lqxpc3vnxglql42x2frvq5bpkl5cf3dpnf9nx6pr3q6qnhigkfb"; })
+  (fetchNuGet { pname = "PangoSharp"; version = "3.22.25.128"; sha256 = "0dkl9j0yd65s5ds9xj5z6yb7yca7wlycqz25m8dng20d13sqr1zp"; })
+  (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
+  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
+  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
+  (fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
+  (fetchNuGet { pname = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; })
+  (fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; })
+  (fetchNuGet { pname = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; })
+  (fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
+  (fetchNuGet { pname = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
+  (fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
+  (fetchNuGet { pname = "runtime.any.System.Threading.Timer"; version = "4.3.0"; sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086"; })
+  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
+  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
+  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.0.0"; sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
+  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.1.0"; sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk"; })
+  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.0.1"; sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography"; version = "4.0.0"; sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
+  (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
+  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
+  (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
+  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
+  (fetchNuGet { pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
+  (fetchNuGet { pname = "runtime.unix.System.Console"; version = "4.3.0"; sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80"; })
+  (fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
+  (fetchNuGet { pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
+  (fetchNuGet { pname = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; })
+  (fetchNuGet { pname = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; })
+  (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
+  (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
+  (fetchNuGet { pname = "runtime.win.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0k1h8nnp1s0p8rjwgjyj1387cc1yycv0k22igxc963lqdzrx2z36"; })
+  (fetchNuGet { pname = "runtime.win.System.Console"; version = "4.3.0"; sha256 = "0x2yajfrbc5zc6g7nmlr44xpjk6p1hxjq47jn3xki5j7i33zw9jc"; })
+  (fetchNuGet { pname = "runtime.win.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "16fbn4bcynad1ygdq0yk1wmckvs8jvrrf104xa5dc2hlc8y3x58f"; })
+  (fetchNuGet { pname = "runtime.win.System.IO.FileSystem"; version = "4.3.0"; sha256 = "1c01nklbxywszsbfaxc76hsz7gdxac3jkphrywfkdsi3v4bwd6g8"; })
+  (fetchNuGet { pname = "runtime.win.System.Net.Primitives"; version = "4.3.0"; sha256 = "1dixh195bi7473n17hspll6i562gghdz9m4jk8d4kzi1mlzjk9cf"; })
+  (fetchNuGet { pname = "runtime.win.System.Net.Sockets"; version = "4.3.0"; sha256 = "0lr3zki831vs6qhk5wckv2b9qbfk9rcj0ds2926qvj1b9y9m6sck"; })
+  (fetchNuGet { pname = "runtime.win.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1700famsxndccfbcdz9q14qb20p49lax67mqwpgy4gx3vja1yczr"; })
+  (fetchNuGet { pname = "Ryujinx.Audio.OpenAL.Dependencies"; version = "1.21.0.1"; sha256 = "0z5k42h252nr60d02p2ww9190d7k1kzrb26vil4ydfhxqqqv6w9l"; })
+  (fetchNuGet { pname = "Ryujinx.Graphics.Nvdec.Dependencies"; version = "4.4.0-build7"; sha256 = "0g1l3lgs0ffxp64ka81v6q1cgsdirl1qlf73255v29r3v337074m"; })
+  (fetchNuGet { pname = "Ryujinx.Graphics.Nvdec.Dependencies"; version = "4.4.0-build9"; sha256 = "121zmh0byi22qsc9b25wv58kwcq6pmk7zf4f2rfafmdjvwx8bkxc"; })
+  (fetchNuGet { pname = "Ryujinx.SDL2-CS"; version = "2.0.17-build18"; sha256 = "0j0vs6075c4fniydqxhpp18pg3x679mq463x4gxqgkri3vhpj4vl"; })
+  (fetchNuGet { pname = "SharpZipLib"; version = "1.3.0"; sha256 = "1pizj82wisch28nfdaszwqm9bz19lnl0s5mq8c0zybm2vhnrhvk4"; })
+  (fetchNuGet { pname = "SixLabors.Fonts"; version = "1.0.0-beta0013"; sha256 = "0r0aw8xxd32rwcawawcz6asiyggz02hnzg5hvz8gimq8hvwx1wql"; })
+  (fetchNuGet { pname = "SixLabors.ImageSharp"; version = "1.0.2"; sha256 = "0fhk9sn8k18slfb26wz8mal0j699f7djwhxgv97snz6b10wynfaj"; })
+  (fetchNuGet { pname = "SixLabors.ImageSharp.Drawing"; version = "1.0.0-beta11"; sha256 = "0hl0rs3kr1zdnx3gdssxgli6fyvmwzcfp99f4db71s0i8j8b2bp5"; })
+  (fetchNuGet { pname = "SPB"; version = "0.0.3-build15"; sha256 = "0h00yi2j65q31r5npsziq2rpiw832vf9r72j1hjqibp2l5m6v6yw"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.0.0"; sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "System.CodeDom"; version = "4.4.0"; sha256 = "1zgbafm5p380r50ap5iddp11kzhr9khrf2pnai6k593wjar74p1g"; })
+  (fetchNuGet { pname = "System.CodeDom"; version = "5.0.0"; sha256 = "14zs2wqkmdlxzj8ikx19n321lsbarx5vl2a8wrachymxn8zb5njh"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; })
+  (fetchNuGet { pname = "System.Collections.NonGeneric"; version = "4.3.0"; sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k"; })
+  (fetchNuGet { pname = "System.Collections.Specialized"; version = "4.3.0"; sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20"; })
+  (fetchNuGet { pname = "System.ComponentModel"; version = "4.3.0"; sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb"; })
+  (fetchNuGet { pname = "System.ComponentModel.EventBasedAsync"; version = "4.3.0"; sha256 = "1rv9bkb8yyhqqqrx6x95njv6mdxlbvv527b44mrd93g8fmgkifl7"; })
+  (fetchNuGet { pname = "System.ComponentModel.Primitives"; version = "4.3.0"; sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0"; })
+  (fetchNuGet { pname = "System.ComponentModel.TypeConverter"; version = "4.3.0"; sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.0.0"; sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.0.0"; sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m"; })
+  (fetchNuGet { pname = "System.Diagnostics.Process"; version = "4.3.0"; sha256 = "0g4prsbkygq8m21naqmcp70f24a1ksyix3dihb1r1f71lpi3cfj7"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
+  (fetchNuGet { pname = "System.Drawing.Common"; version = "5.0.1"; sha256 = "14h722wq58k1wmgxmpws91xc7kh8109ijw0hcxjq9qkbhbi6pwmb"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
+  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.0.1"; sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
+  (fetchNuGet { pname = "System.IO.Compression"; version = "4.1.0"; sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji"; })
+  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.0.1"; sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82"; })
+  (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.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
+  (fetchNuGet { pname = "System.Management"; version = "5.0.0"; sha256 = "09hyv3p0zd549577clydlb2szl84m4gvdjnsry73n8b12ja7d75s"; })
+  (fetchNuGet { pname = "System.Net.Http"; version = "4.1.0"; sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb"; })
+  (fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
+  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.0.11"; sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r"; })
+  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.1.0"; sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls"; })
+  (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.3.0"; sha256 = "05kji1mv4sl75iwmc613p873145nynm02xiajx8pn0h2kx53d23s"; })
+  (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
+  (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.0"; sha256 = "16r6sn4czfjk8qhnz7bnqlyiaaszr0ihinb7mq9zzr1wba257r54"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.0.0"; sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
+  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.0.1"; sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn"; })
+  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "4.5.0"; sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
+  (fetchNuGet { pname = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.2.0"; sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.2.0"; sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.0.0"; sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.0.0"; sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.0.0"; sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.0.0"; sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.1.0"; sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh"; })
+  (fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.5.0"; sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
+  (fetchNuGet { pname = "System.Threading.Overlapped"; version = "4.3.0"; sha256 = "1nahikhqh9nk756dh8p011j36rlcp1bzz3vwi2b4m1l2s3vz8idm"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
+  (fetchNuGet { pname = "System.Threading.Thread"; version = "4.3.0"; sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4"; })
+  (fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
+  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.0.1"; sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
+  (fetchNuGet { pname = "System.Xml.XmlDocument"; version = "4.3.0"; sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi"; })
+  (fetchNuGet { pname = "System.Xml.XPath"; version = "4.3.0"; sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci"; })
+  (fetchNuGet { pname = "System.Xml.XPath.XmlDocument"; version = "4.3.0"; sha256 = "1h9lh7qkp0lff33z847sdfjj8yaz98ylbnkbxlnsbflhj9xyfqrm"; })
 ]
diff --git a/pkgs/misc/emulators/snes9x-gtk/default.nix b/pkgs/misc/emulators/snes9x-gtk/default.nix
index 8cebc664bca2f..27f3400cc0b1c 100644
--- a/pkgs/misc/emulators/snes9x-gtk/default.nix
+++ b/pkgs/misc/emulators/snes9x-gtk/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, wrapGAppsHook
-, SDL2, zlib, gtk3, libxml2, libXv, epoxy, minizip, pulseaudio, portaudio }:
+, SDL2, zlib, gtk3, libxml2, libXv, libepoxy, minizip, pulseaudio, portaudio }:
 
 stdenv.mkDerivation rec {
   pname = "snes9x-gtk";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ meson ninja pkg-config wrapGAppsHook ];
-  buildInputs = [ SDL2 zlib gtk3 libxml2 libXv epoxy minizip pulseaudio portaudio ];
+  buildInputs = [ SDL2 zlib gtk3 libxml2 libXv libepoxy minizip pulseaudio portaudio ];
 
   preConfigure = "cd gtk";
 
diff --git a/pkgs/misc/emulators/vice/default.nix b/pkgs/misc/emulators/vice/default.nix
index ba9d538b66310..bfe2cae5120f8 100644
--- a/pkgs/misc/emulators/vice/default.nix
+++ b/pkgs/misc/emulators/vice/default.nix
@@ -1,20 +1,63 @@
-{ lib, stdenv, fetchurl, bison, flex, perl, libpng, giflib, libjpeg, alsa-lib, readline, libGLU, libGL, libXaw
-, pkg-config, gtk2, SDL, autoreconfHook, makeDesktopItem
+{ lib
+, stdenv
+, fetchurl
+, bison
+, flex
+, perl
+, libpng
+, giflib
+, libjpeg
+, alsa-lib
+, readline
+, libGLU
+, libGL
+, libXaw
+, pkg-config
+, gtk2
+, SDL
+, SDL_image
+, autoreconfHook
+, makeDesktopItem
+, dos2unix
+, xa
+, file
 }:
 
 stdenv.mkDerivation rec {
   pname = "vice";
-  version = "3.1";
+  version = "3.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/vice-emu/vice-${version}.tar.gz";
-    sha256 = "0h0jbml02s2a36hr78dxv1zshmfhxp1wadpcdl09aq416fb1bf1y";
+    sha256 = "sha256-Zb/lXM5ifbm1oKx4dqkMCH6f6G6fVRfoCURsQGSi0/0=";
   };
 
-  buildInputs = [ bison flex perl libpng giflib libjpeg alsa-lib readline libGLU libGL
-    pkg-config gtk2 SDL autoreconfHook libXaw ];
+  nativeBuildInputs = [
+    autoreconfHook
+    bison
+    dos2unix
+    file
+    flex
+    pkg-config
+  ];
+
+  buildInputs = [
+    alsa-lib
+    giflib
+    gtk2
+    libGL
+    libGLU
+    libXaw
+    libjpeg
+    libpng
+    perl
+    readline
+    SDL
+    SDL_image
+    xa
+  ];
   dontDisableStatic = true;
-  configureFlags = [ "--enable-fullscreen --enable-gnomeui" ];
+  configureFlags = [ "--enable-fullscreen" "--enable-gnomeui" "--disable-pdf-docs" ];
 
   desktopItem = makeDesktopItem {
     name = "vice";
@@ -28,16 +71,10 @@ stdenv.mkDerivation rec {
   preBuild = ''
     for i in src/resid src/resid-dtv
     do
-        mkdir -pv $i/src
-        ln -sv ../../wrap-u-ar.sh $i/src
+      mkdir -pv $i/src
+      ln -sv ../../wrap-u-ar.sh $i/src
     done
   '';
-  patchPhase = ''
-    # Disable font-cache update
-    sed -i -e "s|install: install-data-am|install-no: install-data-am|" data/fonts/Makefile.am
-  '';
-
-  #NIX_LDFLAGS = "-lX11 -L${libX11}/lib";
 
   postInstall = ''
     mkdir -p $out/share/applications
@@ -46,7 +83,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Commodore 64, 128 and other emulators";
-    homepage = "http://www.viceteam.org";
+    homepage = "https://vice-emu.sourceforge.io/";
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.sander ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index df50f068cf225..41b019461a811 100644
--- a/pkgs/misc/emulators/wine/sources.nix
+++ b/pkgs/misc/emulators/wine/sources.nix
@@ -13,9 +13,9 @@ let fetchurl = args@{url, sha256, ...}:
 in rec {
 
   stable = fetchurl rec {
-    version = "6.0.1";
+    version = "6.0.2";
     url = "https://dl.winehq.org/wine/source/6.0/wine-${version}.tar.xz";
-    sha256 = "sha256-Ogmh7Jyh6h1PcpWY14JxeXP09kRYZn+7dX0SLzoB2ko=";
+    sha256 = "sha256-3+PFiseFwHIg4o8VtiKZ12wk0lametm//Yrvpns9u3A=";
 
     ## see http://wiki.winehq.org/Gecko
     gecko32 = fetchurl rec {
@@ -44,16 +44,16 @@ in rec {
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the SHA256 for staging as well.
-    version = "6.22";
-    url = "https://dl.winehq.org/wine/source/6.x/wine-${version}.tar.xz";
-    sha256 = "sha256-gmBCoYGph5cyo9rLv4FnYF8wUpG/z6r16qDslSXXZO8=";
+    version = "7.0-rc2";
+    url = "https://dl.winehq.org/wine/source/7.0/wine-${version}.tar.xz";
+    sha256 = "sha256-D92OOa9fFdBd0wZbtRLz9oOhhJ3AtHcSZP0EaWyW7X0=";
     inherit (stable) gecko32 gecko64;
 
     ## see http://wiki.winehq.org/Mono
     mono = fetchurl rec {
-      version = "6.4.0";
+      version = "7.0.0";
       url = "https://dl.winehq.org/wine/wine-mono/${version}/wine-mono-${version}-x86.msi";
-      sha256 = "sha256-24uF87kQWQ9hrb+gAFqZXWE+KZocxz0AVT1w3IEBDjY=";
+      sha256 = "sha256-s35vyeWQ5YIkPcJdcqX8wzDDp5cN/cmKeoHSOEW6iQA=";
     };
 
     patches = [
@@ -65,7 +65,7 @@ in rec {
   staging = fetchFromGitHub rec {
     # https://github.com/wine-staging/wine-staging/releases
     inherit (unstable) version;
-    sha256 = "sha256-dGyaos6xITiAQdU65/PJQKRl5Rr5xBpgQhXii9iwb+E=";
+    sha256 = "sha256-UkwvKKRXyFjLfYbL8Ienpp5pxUzMQY1bEyAkoP7Xdz4=";
     owner = "wine-staging";
     repo = "wine-staging";
     rev = "v${version}";
diff --git a/pkgs/misc/emulators/yuzu/default.nix b/pkgs/misc/emulators/yuzu/default.nix
index 76a874d1c8466..c9f7cbd378f7b 100644
--- a/pkgs/misc/emulators/yuzu/default.nix
+++ b/pkgs/misc/emulators/yuzu/default.nix
@@ -4,13 +4,13 @@ let
 in {
   mainline = libsForQt5.callPackage ./base.nix rec {
     pname = "yuzu-mainline";
-    version = "788";
+    version = "844";
     branchName = branch;
     src = fetchFromGitHub {
       owner = "yuzu-emu";
       repo = "yuzu-mainline";
       rev = "mainline-0-${version}";
-      sha256 = "0vgj1jvbc1ylrzvbl7njdwpajhmp8l39i2k6hgh4az34ry4iaayy";
+      sha256 = "0vr1pqackvcb1sppfaqsibkm1agpdlg70lqfl5gcizkq9668gr12";
       fetchSubmodules = true;
     };
   };
diff --git a/pkgs/misc/ghostscript/default.nix b/pkgs/misc/ghostscript/default.nix
index 676c24b3f7d0c..5e27e5573c582 100644
--- a/pkgs/misc/ghostscript/default.nix
+++ b/pkgs/misc/ghostscript/default.nix
@@ -1,13 +1,10 @@
 { config, stdenv, lib, fetchurl, pkg-config, zlib, expat, openssl, autoconf
 , libjpeg, libpng, libtiff, freetype, fontconfig, libpaper, jbig2dec
-, libiconv, ijs, lcms2, fetchpatch, callPackage
-, cupsSupport ? config.ghostscript.cups or (!stdenv.isDarwin), cups ? null
-, x11Support ? cupsSupport, xlibsWrapper ? null # with CUPS, X11 only adds very little
+, libiconv, ijs, lcms2, fetchpatch, callPackage, bash, buildPackages
+, cupsSupport ? config.ghostscript.cups or (!stdenv.isDarwin), cups
+, x11Support ? cupsSupport, xlibsWrapper # with CUPS, X11 only adds very little
 }:
 
-assert x11Support -> xlibsWrapper != null;
-assert cupsSupport -> cups != null;
-
 let
   fonts = stdenv.mkDerivation {
     name = "ghostscript-fonts";
@@ -58,17 +55,27 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  nativeBuildInputs = [ pkg-config autoconf ];
-  buildInputs =
-    [ zlib expat openssl
-      libjpeg libpng libtiff freetype fontconfig libpaper jbig2dec
-      libiconv ijs lcms2
-    ]
-    ++ lib.optional x11Support xlibsWrapper
-    ++ lib.optional cupsSupport cups
-    ;
+  depsBuildBuild = [
+    buildPackages.stdenv.cc
+  ];
+
+  nativeBuildInputs = [ pkg-config autoconf zlib ]
+    ++ lib.optional cupsSupport cups;
+
+  buildInputs = [
+    zlib expat openssl
+    libjpeg libpng libtiff freetype fontconfig libpaper jbig2dec
+    libiconv ijs lcms2 bash
+  ]
+  ++ lib.optional x11Support xlibsWrapper
+  ++ lib.optional cupsSupport cups
+  ;
 
   preConfigure = ''
+    # https://ghostscript.com/doc/current/Make.htm
+    export CCAUX=$CC_FOR_BUILD
+    ${lib.optionalString cupsSupport ''export CUPSCONFIG="${cups.dev}/bin/cups-config"''}
+
     # requires in-tree (heavily patched) openjpeg
     rm -rf jpeg libpng zlib jasper expat tiff lcms2mt jbig2dec freetype cups/libs ijs
 
@@ -85,9 +92,6 @@ stdenv.mkDerivation rec {
   ++ lib.optional x11Support "--with-x"
   ++ lib.optionals cupsSupport [
     "--enable-cups"
-    "--with-cups-serverbin=$(out)/lib/cups"
-    "--with-cups-serverroot=$(out)/etc/cups"
-    "--with-cups-datadir=$(out)/share/cups"
   ];
 
   # make check does nothing useful
@@ -143,7 +147,6 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://www.ghostscript.com/";
     description = "PostScript interpreter (mainline version)";
-
     longDescription = ''
       Ghostscript is the name of a set of tools that provides (i) an
       interpreter for the PostScript language and the PDF file format,
@@ -152,9 +155,7 @@ stdenv.mkDerivation rec {
       operations in the PostScript language, and (iii) a wide variety
       of output drivers for various file formats and printers.
     '';
-
     license = lib.licenses.agpl3;
-
     platforms = lib.platforms.all;
     maintainers = [ lib.maintainers.viric ];
     mainProgram = "gs";
diff --git a/pkgs/misc/logging/beats/6.x.nix b/pkgs/misc/logging/beats/6.x.nix
index 1808197498b53..f5e31924791b2 100644
--- a/pkgs/misc/logging/beats/6.x.nix
+++ b/pkgs/misc/logging/beats/6.x.nix
@@ -8,7 +8,7 @@ let beat = package : extraArgs : buildGoPackage (rec {
         owner = "elastic";
         repo = "beats";
         rev = "v${version}";
-        sha256 = "0jkiz5dfdi9zsji04ipcmcj7pml9294v455y7s2c22k24gyzbaw8";
+        sha256 = "1vnw9clsc10cfpjf6vxvc6m507b2q17sgsl079iwqbp4v0286il7";
       };
 
       goPackagePath = "github.com/elastic/beats";
diff --git a/pkgs/misc/logging/beats/7.x.nix b/pkgs/misc/logging/beats/7.x.nix
index b8b82ed4b3080..9f5e550d9720a 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}";
-    sha256 = "0gjyzprgj9nskvlkm2bf125b7qn3608llz4kh1fyzsvrw6zb7sm8";
+    sha256 = "sha256-9Jl5Xo1iKdOY9ZE5JXKSL4ee+NdsN3KCY2dDYuxlzPI=";
   };
 
-  vendorSha256 = "04cwf96fh60ld3ndjzzssgirc9ssb53yq71j6ksx36m3y1x7fq9c";
+  vendorSha256 = "sha256-tyxyM7RsTHTVVxc9gagPsSvFRaWGTmobKzyv9RODXBk=";
 
   subPackages = [ package ];
 
@@ -24,7 +24,14 @@ let beat = package: extraArgs: buildGoModule (rec {
 } // extraArgs);
 in
 rec {
-  filebeat7 = beat "filebeat" { meta.description = "Lightweight shipper for logfiles"; };
+  filebeat7 = beat "filebeat" {
+    meta.description = "Lightweight shipper for logfiles";
+    buildInputs = [ systemd ];
+    tags = [ "withjournald" ];
+    postFixup = ''
+      patchelf --set-rpath ${lib.makeLibraryPath [ (lib.getLib systemd) ]} "$out/bin/filebeat"
+    '';
+  };
   heartbeat7 = beat "heartbeat" { meta.description = "Lightweight shipper for uptime monitoring"; };
   metricbeat7 = beat "metricbeat" {
     meta.description = "Lightweight shipper for metrics";
@@ -47,15 +54,4 @@ rec {
       PostgreSQL, Redis or Thrift and correlate the messages into transactions.
     '';
   };
-  journalbeat7 = beat "journalbeat" {
-    meta.description = ''
-      Journalbeat is an open source data collector to read and forward
-      journal entries from Linuxes with systemd.
-    '';
-    buildInputs = [ systemd.dev ];
-    postFixup = let libPath = lib.makeLibraryPath [ (lib.getLib systemd) ]; in
-      ''
-        patchelf --set-rpath ${libPath} "$out/bin/journalbeat"
-      '';
-  };
 }
diff --git a/pkgs/misc/openrussian-cli/default.nix b/pkgs/misc/openrussian-cli/default.nix
index ce9a9e49c4cac..24c0b6bece78c 100644
--- a/pkgs/misc/openrussian-cli/default.nix
+++ b/pkgs/misc/openrussian-cli/default.nix
@@ -25,12 +25,6 @@ stdenv.mkDerivation rec {
 
   dontConfigure = true;
 
-  # Disable check as it's too slow.
-  # doCheck = true;
-
-  #This is needed even though it's the default for some reason.
-  checkTarget = "check";
-
   # Can't use "make install" here
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/misc/plasma-hud/default.nix b/pkgs/misc/plasma-hud/default.nix
new file mode 100644
index 0000000000000..4116751f4fec0
--- /dev/null
+++ b/pkgs/misc/plasma-hud/default.nix
@@ -0,0 +1,41 @@
+{ lib, python3, fetchFromGitHub, rofi, gobject-introspection }:
+
+python3.pkgs.buildPythonApplication rec{
+  pname = "plasma-hud";
+  version = "19.10.1";
+
+  src = fetchFromGitHub {
+    owner = "Zren";
+    repo = pname;
+    rev = version;
+    sha256 = "19vlc156jfdamw7q1pc78fmlf0h3sff5ar3di9j316vbb60js16l";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    rofi
+    dbus-python
+    setproctitle
+    xlib
+    pygobject3
+    gobject-introspection
+  ];
+  format = "other";
+  postPatch = ''
+    sed -i "s:/usr/lib/plasma-hud:$out/bin:" etc/xdg/autostart/plasma-hud.desktop
+  '';
+
+  installPhase = ''
+    patchShebangs $out/bin/plasma-hud
+    mkdir -p $out/bin $out/etc/xdg/autostart
+    cp -r $src/usr/lib/plasma-hud/plasma-hud $out/bin/plasma-hud
+    cp -r $src/etc $out/etc
+  '';
+
+  meta = with lib;{
+    license = licenses.gpl2Only;
+    homepage = "https://github.com/Zren/plasma-hud";
+    platforms = platforms.unix;
+    description = "Run menubar commands, much like the Unity 7 Heads-Up Display (HUD)";
+    maintainers = with maintainers; [ pasqui23 ];
+  };
+}
diff --git a/pkgs/misc/present/default.nix b/pkgs/misc/present/default.nix
index e087db6f8d2e9..6eb489e1f8bd5 100644
--- a/pkgs/misc/present/default.nix
+++ b/pkgs/misc/present/default.nix
@@ -26,6 +26,6 @@ python3Packages.buildPythonPackage rec {
     description = "A terminal-based presentation tool with colors and effects.";
     homepage = "https://github.com/vinayak-mehta/present";
     license = licenses.asl20;
-    maintainers = with maintainers; [ legendofmiracles ];
+    maintainers = with maintainers; [ lom ];
   };
 }
diff --git a/pkgs/misc/scrcpy/default.nix b/pkgs/misc/scrcpy/default.nix
index f6c576301daa4..871e5bff6c94b 100644
--- a/pkgs/misc/scrcpy/default.nix
+++ b/pkgs/misc/scrcpy/default.nix
@@ -10,10 +10,10 @@
 }:
 
 let
-  version = "1.20";
+  version = "1.21";
   prebuilt_server = fetchurl {
     url = "https://github.com/Genymobile/scrcpy/releases/download/v${version}/scrcpy-server-v${version}";
-    sha256 = "sha256-sgruSVH5mwYMSkQAC6lN6XP5YEdY72K+slOzcarT3zQ=";
+    sha256 = "sha256-28zKtSPuJnluVeozZSZJ5LevSY7a6ap15NTXhpwKuEg=";
   };
 in
 stdenv.mkDerivation rec {
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     owner = "Genymobile";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-yj/hpndVC1oInrYmCSKQix1kNWy/GpAlmO/6o3vvQQE=";
+    sha256 = "sha256-9MzOaQj+lR1F+E/yoxbL/HMOOuKOU82zkPVq7x6AH3c=";
   };
 
   # postPatch:
diff --git a/pkgs/misc/screensavers/xlockmore/default.nix b/pkgs/misc/screensavers/xlockmore/default.nix
index 7a1de8731d03f..8d6b5eba5bf6e 100644
--- a/pkgs/misc/screensavers/xlockmore/default.nix
+++ b/pkgs/misc/screensavers/xlockmore/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xlockmore";
-  version = "5.67";
+  version = "5.68";
 
   src = fetchurl {
     url = "http://sillycycle.com/xlock/xlockmore-${version}.tar.xz";
-    sha256 = "sha256-qGB+Fw4N9K+PcH07OPfOsNDhKHc9fhdeICCSaV9/I0w=";
+    sha256 = "sha256-MHMf3LID8W61wcQ8BdQuRSrQ60VVyXxVVmpuyxh3zW4=";
     curlOpts = "--user-agent 'Mozilla/5.0'";
   };
 
diff --git a/pkgs/misc/vim-plugins/deprecated.json b/pkgs/misc/vim-plugins/deprecated.json
index 0b637a90f1d8b..b185aa7483d80 100644
--- a/pkgs/misc/vim-plugins/deprecated.json
+++ b/pkgs/misc/vim-plugins/deprecated.json
@@ -1,4 +1,8 @@
 {
+    "compe-tmux": {
+        "date": "2021-12-21",
+        "new": "cmp-tmux"
+    },
     "gist-vim": {
         "date": "2020-03-27",
         "new": "vim-gist"
@@ -15,6 +19,10 @@
         "date": "2021-08-22",
         "new": "toggleterm-nvim"
     },
+    "orgmode-nvim": {
+        "date": "2021-11-28",
+        "new": "orgmode"
+    },
     "sql-nvim": {
         "date": "2021-09-03",
         "new": "sqlite-lua"
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index ca190ee2b2b4d..c217fddec5f3d 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -41,12 +41,12 @@ final: prev:
 
   aerial-nvim = buildVimPluginFrom2Nix {
     pname = "aerial.nvim";
-    version = "2021-10-23";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "aerial.nvim";
-      rev = "0430d20508157d97fac4e14400b648346a7cba94";
-      sha256 = "0viqw73iyqv2vzskrfj9mfajvk4hslsl8w707km11509mv473d7h";
+      rev = "922155d70edf28249d9f8c6d1e4f8b53c4fe6396";
+      sha256 = "1q83dzhff1cylrgf42qml2mnh3lz3hlzvwcnna4xi2zbigqicc9i";
     };
     meta.homepage = "https://github.com/stevearc/aerial.nvim/";
   };
@@ -77,12 +77,12 @@ final: prev:
 
   ale = buildVimPluginFrom2Nix {
     pname = "ale";
-    version = "2021-11-15";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "31dc6a61a07839ea906f6f0b80be713fb8cad1c7";
-      sha256 = "1j8fzyxl3lgc5xwklllvk7cq0qh7hdjjvv9r93xzbmr74w82410v";
+      rev = "5b792c764196aeb45eb6025c6c1c9727084c2feb";
+      sha256 = "14pnk9g4wvwy450mlfd2g13fllhwmw6v869f3cxbpq18ddihhpi6";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -173,12 +173,12 @@ final: prev:
 
   asyncomplete-vim = buildVimPluginFrom2Nix {
     pname = "asyncomplete.vim";
-    version = "2021-08-19";
+    version = "2021-12-06";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "asyncomplete.vim";
-      rev = "73ac8e4e4525ba48e82d0f30643987b015233d4e";
-      sha256 = "0gbmkxrxcwr5adzp2j7dd64dpzc775m1b9sv0si96gh9pb6119q2";
+      rev = "9c7651894c2c6d656c0dc71e87cfabbbb71b9c78";
+      sha256 = "1vjai1v9nnn7vbckclz85bhl6mx4d5d3155pg2vv1d2s4lzqplhv";
     };
     meta.homepage = "https://github.com/prabirshrestha/asyncomplete.vim/";
   };
@@ -197,12 +197,12 @@ final: prev:
 
   aurora = buildVimPluginFrom2Nix {
     pname = "aurora";
-    version = "2021-11-13";
+    version = "2021-11-29";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "aurora";
-      rev = "639f60317e7ccaccb6b8b6681b40897308d466b8";
-      sha256 = "0b4nsdkfmd8j0v74fd4yzyx1rm2l4a968g3s9vhckrn9wnyj7khf";
+      rev = "1607b4c100f9c466fc0208e936421a0202025457";
+      sha256 = "1rx1ggy54j71pp5ihv8zb3wqq69b26v65q1snv6hlabar02hrl1r";
     };
     meta.homepage = "https://github.com/ray-x/aurora/";
   };
@@ -233,12 +233,12 @@ final: prev:
 
   auto-session = buildVimPluginFrom2Nix {
     pname = "auto-session";
-    version = "2021-10-30";
+    version = "2021-12-07";
     src = fetchFromGitHub {
       owner = "rmagatti";
       repo = "auto-session";
-      rev = "5f2a9d7e45133be33a1dae3580089e257824a907";
-      sha256 = "1gm6f9pnvv1kghxsm3082vxng81jg2srfnwczjik2m2m9bypdd4s";
+      rev = "08e766c1467d3fa3b53ca1dafdfa9815ea830b3c";
+      sha256 = "0xrj7hr5dx6xkwcjs6yl474f3i8vb0pyj42g0d1lxcqmw55fm7gw";
     };
     meta.homepage = "https://github.com/rmagatti/auto-session/";
   };
@@ -257,12 +257,12 @@ final: prev:
 
   awesome-vim-colorschemes = buildVimPluginFrom2Nix {
     pname = "awesome-vim-colorschemes";
-    version = "2021-08-15";
+    version = "2021-12-02";
     src = fetchFromGitHub {
       owner = "rafi";
       repo = "awesome-vim-colorschemes";
-      rev = "facbd7269201b1766369be9abc8bfc183938a9ae";
-      sha256 = "11bdzds9qyr56sqwl2c7cy7gll32dd3fzy8bx1b0rg7ylwlyqllf";
+      rev = "8844314af7aa10db30fc743656bf26eceb24cbe6";
+      sha256 = "0203vqi3dmlhcmhir25wb4lvvdca9ryqzbrvabxa3jsfz3s01c9l";
     };
     meta.homepage = "https://github.com/rafi/awesome-vim-colorschemes/";
   };
@@ -329,12 +329,12 @@ final: prev:
 
   better-escape-nvim = buildVimPluginFrom2Nix {
     pname = "better-escape.nvim";
-    version = "2021-10-18";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "max397574";
       repo = "better-escape.nvim";
-      rev = "bbb8b0e3d1b1088a1db6b5ece776a41709929128";
-      sha256 = "1xiaywjy12rj25qdq5ys8ayrwlw9p9frpjzzagx1p6zgp03jpq63";
+      rev = "066a74d517a10e6ef08e5acb72d86eb3f00e6444";
+      sha256 = "0bkvkl2599jba5j3dgrigkfrn2p4rbilgpvgyp3zw9m06gqxsqin";
     };
     meta.homepage = "https://github.com/max397574/better-escape.nvim/";
   };
@@ -353,12 +353,12 @@ final: prev:
 
   blueballs-neovim = buildVimPluginFrom2Nix {
     pname = "blueballs-neovim";
-    version = "2021-09-09";
+    version = "2021-11-28";
     src = fetchFromGitHub {
       owner = "blueballs-theme";
       repo = "blueballs-neovim";
-      rev = "e0d73d553f663a12539682d89130d71df2db9099";
-      sha256 = "02x374wgbw3fmqlyrlxspf1n3ajik5y53g232r44y6093ly8wsw1";
+      rev = "6201c1bf272bd3d8516a68579f5ead8ac5ab95b0";
+      sha256 = "1k9fh5r64csp1xxr647s3rd67h1ay36y57afkp67xgv7mlk17cv5";
     };
     meta.homepage = "https://github.com/blueballs-theme/blueballs-neovim/";
   };
@@ -389,12 +389,12 @@ final: prev:
 
   bufdelete-nvim = buildVimPluginFrom2Nix {
     pname = "bufdelete.nvim";
-    version = "2021-09-27";
+    version = "2021-12-18";
     src = fetchFromGitHub {
       owner = "famiu";
       repo = "bufdelete.nvim";
-      rev = "456a08ff8dad82d52fdc439a44bfc8626f92cb0f";
-      sha256 = "1ybfnizdr14gixv19vqm8jh1lvw9aka26r7yizsfik3jc6rqrjnf";
+      rev = "1c59b784c53afaf7b9ca63186da99e5d46e3e429";
+      sha256 = "0zq261nv2jzhqqzaldr5l6dlriyy23zv8rsn3k7fg91q3vjawn4i";
     };
     meta.homepage = "https://github.com/famiu/bufdelete.nvim/";
   };
@@ -413,12 +413,12 @@ final: prev:
 
   bufferline-nvim = buildVimPluginFrom2Nix {
     pname = "bufferline.nvim";
-    version = "2021-11-15";
+    version = "2021-12-15";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "bufferline.nvim";
-      rev = "463637a3ac86dcaacbcd47aa608f53aaad749696";
-      sha256 = "0nphn0ks8xqf0l8xklqn2fv2wvizzpg1x399x9yd916q4ck92588";
+      rev = "de66766716ab29414c7dd078d16b4773ab53a0bd";
+      sha256 = "0aixlx4yjl1mzj5rgsxxkvkrhivisp28ds5afbi8cizrg5r6l1cx";
     };
     meta.homepage = "https://github.com/akinsho/bufferline.nvim/";
   };
@@ -473,12 +473,12 @@ final: prev:
 
   chadtree = buildVimPluginFrom2Nix {
     pname = "chadtree";
-    version = "2021-11-17";
+    version = "2021-12-22";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "chadtree";
-      rev = "6202def5abfbc83acfbb86110753a03e00bc97bf";
-      sha256 = "1gp0if044cqzpjfxrsn8kdk4siqm18bvdrngpqqar4rqgsx89kg1";
+      rev = "57f8241fe429530f9c733286413b84f51c30e3fd";
+      sha256 = "16b9qbjmn2l7jxywalqyvr9x9dl2hp00gi5bm7j64niwycwimfyp";
     };
     meta.homepage = "https://github.com/ms-jpq/chadtree/";
   };
@@ -497,12 +497,12 @@ final: prev:
 
   cheatsheet-nvim = buildVimPluginFrom2Nix {
     pname = "cheatsheet.nvim";
-    version = "2021-09-20";
+    version = "2021-11-28";
     src = fetchFromGitHub {
       owner = "sudormrfbin";
       repo = "cheatsheet.nvim";
-      rev = "3f0b718a030dd2c2757e053345de4f130f213514";
-      sha256 = "0k1y57k14hgvjr7cq6likbwb2vdxmj6kiqbiqnk6arhnf8n614gi";
+      rev = "ce869da3e3f1825c386f363498a082536f8466fa";
+      sha256 = "16bypbi5haav3qs9g6fml4p0micdgd11l9k9ivp9258j3j9q57mn";
     };
     meta.homepage = "https://github.com/sudormrfbin/cheatsheet.nvim/";
   };
@@ -581,12 +581,12 @@ final: prev:
 
   cmp-buffer = buildVimPluginFrom2Nix {
     pname = "cmp-buffer";
-    version = "2021-11-15";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-buffer";
-      rev = "bfbc32a8aadbf3d21294aad45f069b7d204b34b1";
-      sha256 = "11wmq4fh5nbyswcgmw17ihx7g4naqba06a55f1cxk913aqcqqnwx";
+      rev = "e26cdfb26f645cd4c6330b541b7e74ff69daa483";
+      sha256 = "0mssjxxdvnb798dpzax8abw04v1kd0gv5329pxcsck5vd76bhcv2";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-buffer/";
   };
@@ -605,12 +605,12 @@ final: prev:
 
   cmp-cmdline = buildVimPluginFrom2Nix {
     pname = "cmp-cmdline";
-    version = "2021-11-08";
+    version = "2021-12-01";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-cmdline";
-      rev = "0ca73c3a50b72c2ca168d8904b39aba34d0c4227";
-      sha256 = "1777rv9mh3bar8lp5i4af7kip5j3s4ib8a83b67clga8pcdjla4d";
+      rev = "29ca81a6f0f288e6311b3377d9d9684d22eac2ec";
+      sha256 = "0yzh0jdys1bn1c2mqm410c0ndyyyxpmigzdrkhnkv78b16vjyhq6";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-cmdline/";
   };
@@ -689,12 +689,12 @@ final: prev:
 
   cmp-omni = buildVimPluginFrom2Nix {
     pname = "cmp-omni";
-    version = "2021-09-28";
+    version = "2021-11-30";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-omni";
-      rev = "3fec8a57d6d230c81d24c03dd80e97c62d4eda63";
-      sha256 = "018lzqxdcw78ckqm16jn0wh3pv9pjl6abcj1q2svfalmim0h6a87";
+      rev = "580d07d32242d542e365d2732eddd2dbb7374aff";
+      sha256 = "1d6j1ddfb9xijsljskb04s3kan3sg8lmbv1qal5hmhrwi8x65dwg";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-omni/";
   };
@@ -713,12 +713,12 @@ final: prev:
 
   cmp-path = buildVimPluginFrom2Nix {
     pname = "cmp-path";
-    version = "2021-11-10";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-path";
-      rev = "98ded32b9c4d95aa95af70b9979b767f39073f0e";
-      sha256 = "1axx401sikh9ylji3d6cmgn4xsrzzfmlc1akfv1q709chv0a6r2h";
+      rev = "81d88dfcafe26cc0cc856fc66f4677b20e6a9ffc";
+      sha256 = "1dq3wzvabxbvvb1gn25misxfrs5arv0087jfi54c2jlqv58g9gw7";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-path/";
   };
@@ -737,24 +737,36 @@ final: prev:
 
   cmp-tabnine = buildVimPluginFrom2Nix {
     pname = "cmp-tabnine";
-    version = "2021-10-14";
+    version = "2021-12-22";
     src = fetchFromGitHub {
       owner = "tzachar";
       repo = "cmp-tabnine";
-      rev = "f788bb17e1de13b49e197b68edb501010b64e975";
-      sha256 = "1c21y5vz9afzmx7l0ifv6gc2a6mfmsa8r0igxgyin0jj6ipk5kkl";
+      rev = "e69df7b9ae441f8c3e58fcbca116f668a224dc2f";
+      sha256 = "08dmgbfhccfwb5vvypi3yyazxvzjj8mn8xzmlmyq00swx7gy9la8";
     };
     meta.homepage = "https://github.com/tzachar/cmp-tabnine/";
   };
 
+  cmp-tmux = buildVimPluginFrom2Nix {
+    pname = "cmp-tmux";
+    version = "2021-11-30";
+    src = fetchFromGitHub {
+      owner = "andersevenrud";
+      repo = "cmp-tmux";
+      rev = "5106ae2d3c93d37173ccb3b917bebb9845e3d3e6";
+      sha256 = "1svhj1n17y70ns9d0hc9a3dvxb1nmpii5vgificgpwqfmkws4dak";
+    };
+    meta.homepage = "https://github.com/andersevenrud/cmp-tmux/";
+  };
+
   cmp-treesitter = buildVimPluginFrom2Nix {
     pname = "cmp-treesitter";
-    version = "2021-10-31";
+    version = "2021-12-02";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "cmp-treesitter";
-      rev = "fb1964fa6347467e1685507c4c9f56b25c266fb5";
-      sha256 = "196lk52ljsf5msgf1kxslgb5agk6dd9nwz4ms92wz2jg3qlnmbjm";
+      rev = "a6b4c95ee922cace635b5a46c7fcc691d2559fbb";
+      sha256 = "068x8n63iavycf5fsc5jf2p8i3cs697r60k54j7rm076bpbmnisa";
     };
     meta.homepage = "https://github.com/ray-x/cmp-treesitter/";
   };
@@ -785,12 +797,12 @@ final: prev:
 
   cmp_luasnip = buildVimPluginFrom2Nix {
     pname = "cmp_luasnip";
-    version = "2021-10-28";
+    version = "2021-12-12";
     src = fetchFromGitHub {
       owner = "saadparwaiz1";
       repo = "cmp_luasnip";
-      rev = "16832bb50e760223a403ffa3042859845dd9ef9d";
-      sha256 = "0hc6flnvdgd7a93p8y9msp92bc1r10nh00wvw9msr40442m8viqc";
+      rev = "7bd2612533db6863381193df83f9934b373b21e1";
+      sha256 = "1azlii2wvn4zsm6srac6db97jvwvpwi7vw3qb8aadg6aqdixwm4m";
     };
     meta.homepage = "https://github.com/saadparwaiz1/cmp_luasnip/";
   };
@@ -833,12 +845,12 @@ final: prev:
 
   coc-lua = buildVimPluginFrom2Nix {
     pname = "coc-lua";
-    version = "2021-11-16";
+    version = "2021-11-26";
     src = fetchFromGitHub {
       owner = "josa42";
       repo = "coc-lua";
-      rev = "3a5366b11ca3c11a9e894755d365328ba36de227";
-      sha256 = "0qv73ph2wgn0j7il508zb29k04r4n5q601fih2hp264zvyqkw6sf";
+      rev = "86a840a6512b3cda14aefbbb2779df1ea0160d5a";
+      sha256 = "0vc7rkqkq9wvrgjcaazxp39mvr95ark8c7q30agim28n4963w900";
     };
     meta.homepage = "https://github.com/josa42/coc-lua/";
   };
@@ -869,12 +881,12 @@ final: prev:
 
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc.nvim";
-    version = "2021-09-05";
+    version = "2021-12-22";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "287c743c9f227fdf0e1db452bbb8ae3c5caffc36";
-      sha256 = "18qj2zi9p4zz8252m3kcbi6yx7v27sckr0b1bfymckijws9lrlf5";
+      rev = "5e5eed44c192d276824ecf5a61101a8fdd016544";
+      sha256 = "05025bh4v1x9rk2miivkh7p6hdrkbg9if07vglzahsigj286ws1p";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
@@ -893,12 +905,12 @@ final: prev:
 
   colorbuddy-nvim = buildVimPluginFrom2Nix {
     pname = "colorbuddy.nvim";
-    version = "2021-10-25";
+    version = "2021-12-01";
     src = fetchFromGitHub {
       owner = "tjdevries";
       repo = "colorbuddy.nvim";
-      rev = "e231f7ebb9b81b082adb0d312eb8817b2c5d2505";
-      sha256 = "0j87harnc1j997rq1qwh0iys89r6mj1vaskdkbxf1nk2l6gjs6n4";
+      rev = "c678edd8113274574f9d9ef440773d1123e1431d";
+      sha256 = "095347cz5idcb09l4sl236agzi89lyr9r40nix2c8vk5pbskvp8f";
     };
     meta.homepage = "https://github.com/tjdevries/colorbuddy.nvim/";
   };
@@ -942,24 +954,24 @@ final: prev:
 
   comment-nvim = buildVimPluginFrom2Nix {
     pname = "comment.nvim";
-    version = "2021-11-05";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "numtostr";
       repo = "comment.nvim";
-      rev = "620445b87a0d1640fac6991f9c3338af8dec1884";
-      sha256 = "1mw6862njjfpl3h4kaq9vkl1gddi4bdah2kzrijgq0gykiqkjpks";
+      rev = "9e80d5146013275277238c89bbcaf4164f4e5140";
+      sha256 = "1pxinsw4alrd299s3d7rsn9h0wppmgg36ywa891km27cjzplvrjr";
     };
     meta.homepage = "https://github.com/numtostr/comment.nvim/";
   };
 
   committia-vim = buildVimPluginFrom2Nix {
     pname = "committia.vim";
-    version = "2020-08-27";
+    version = "2021-11-24";
     src = fetchFromGitHub {
       owner = "rhysd";
       repo = "committia.vim";
-      rev = "1d288281586d1e6b52646a4c412df3dd3a2fe231";
-      sha256 = "11ik72qi7fvxkz7fnyisaa0xscy4pksq8l2pvclywzg3lcclhxp1";
+      rev = "0b4df1a7f48ffbc23b009bd14d58ee1be541917c";
+      sha256 = "1scz52n6y2qrqd74kcsgvjkmxd37wmgzx2wail4sz88h3cks8w39";
     };
     meta.homepage = "https://github.com/rhysd/committia.vim/";
   };
@@ -1000,18 +1012,6 @@ final: prev:
     meta.homepage = "https://github.com/tzachar/compe-tabnine/";
   };
 
-  compe-tmux = buildVimPluginFrom2Nix {
-    pname = "compe-tmux";
-    version = "2021-10-30";
-    src = fetchFromGitHub {
-      owner = "andersevenrud";
-      repo = "compe-tmux";
-      rev = "ef911e2ee6f7d537ae5f5090c84112ce747c6eb5";
-      sha256 = "1xqbhbcahgpwhm9zl8pxxv7qkicl68qd4acvm5d0k0xg1zg672rq";
-    };
-    meta.homepage = "https://github.com/andersevenrud/compe-tmux/";
-  };
-
   compe-zsh = buildVimPluginFrom2Nix {
     pname = "compe-zsh";
     version = "2021-04-03";
@@ -1098,12 +1098,12 @@ final: prev:
 
   conjure = buildVimPluginFrom2Nix {
     pname = "conjure";
-    version = "2021-11-14";
+    version = "2021-12-10";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "conjure";
-      rev = "9ed390497a5013aa533a15f5d96f3fb6319b4eb9";
-      sha256 = "0w8akq23s5j5kais5s67f6zpkank9wgms30kzyvq2bpslk9kwvfx";
+      rev = "2752d956f26d47cc14dfe74eda72898cd3e84440";
+      sha256 = "1hwhia3bf3ynxm1qv20b5k7jy1sbirdz65jca1c5sywdwlc3bffi";
     };
     meta.homepage = "https://github.com/Olical/conjure/";
   };
@@ -1120,6 +1120,18 @@ final: prev:
     meta.homepage = "https://github.com/Shougo/context_filetype.vim/";
   };
 
+  copilot-vim = buildVimPluginFrom2Nix {
+    pname = "copilot.vim";
+    version = "2021-12-07";
+    src = fetchFromGitHub {
+      owner = "github";
+      repo = "copilot.vim";
+      rev = "c01314840b94da0b9767b52f8a4bbc579214e509";
+      sha256 = "10vw2hjrg20i8id5wld8c5b1m96fnxvkb5qhbdf9w5sagawn4wc2";
+    };
+    meta.homepage = "https://github.com/github/copilot.vim/";
+  };
+
   coq-vim = buildVimPluginFrom2Nix {
     pname = "coq.vim";
     version = "2013-01-16";
@@ -1134,12 +1146,12 @@ final: prev:
 
   Coqtail = buildVimPluginFrom2Nix {
     pname = "Coqtail";
-    version = "2021-11-15";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "whonore";
       repo = "Coqtail";
-      rev = "f38e086135c5d9b69c9a5f70f82072419d952c29";
-      sha256 = "01lf10b6b07s7ywrh16p5b52jj21hzv1vn216h9bnf4xdfz5pf9a";
+      rev = "b1ec877f0840475ec5ef43647305f6fe77937357";
+      sha256 = "02hiislh66pwf2ifyaij4fdpgd0favm4iv9mnjbkcxz8acddx3xp";
     };
     meta.homepage = "https://github.com/whonore/Coqtail/";
   };
@@ -1170,12 +1182,12 @@ final: prev:
 
   crates-nvim = buildVimPluginFrom2Nix {
     pname = "crates.nvim";
-    version = "2021-11-13";
+    version = "2021-12-22";
     src = fetchFromGitHub {
       owner = "saecki";
       repo = "crates.nvim";
-      rev = "dea18a76bbe84d1eb80f9474cb33c8efd377c73d";
-      sha256 = "0gc47ixbjb2zf9g0qr2jzq2cmnzgml1lvvv22zdsrk7j8n9kxxqb";
+      rev = "34fe3a241d8341878de3facf15f64d0f1977fea6";
+      sha256 = "0dnplvblxf9gf48q6s4f12l7rfbf2hxwb4c7iz3piqfz4ml44jqv";
     };
     meta.homepage = "https://github.com/saecki/crates.nvim/";
   };
@@ -1242,12 +1254,12 @@ final: prev:
 
   ctrlp-vim = buildVimPluginFrom2Nix {
     pname = "ctrlp.vim";
-    version = "2021-11-16";
+    version = "2021-12-11";
     src = fetchFromGitHub {
       owner = "ctrlpvim";
       repo = "ctrlp.vim";
-      rev = "d9388d89745bb30c20ad0051c53d301cd054f47c";
-      sha256 = "1lsr0y4q57k65qk5y17gnm8cfi7rg8r6h2h7cxkmgzn11d4p34c0";
+      rev = "fc153aabd54f9189e576c9bfb07bac09f36f2ccd";
+      sha256 = "115qj7zvs45agdvk7i429527hm9ygfgiwl523dy2f6aw508r2np5";
     };
     meta.homepage = "https://github.com/ctrlpvim/ctrlp.vim/";
   };
@@ -1302,12 +1314,12 @@ final: prev:
 
   defx-nvim = buildVimPluginFrom2Nix {
     pname = "defx.nvim";
-    version = "2021-10-26";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "defx.nvim";
-      rev = "2d7ddef50659f2b622e803f068a991656a66e6f8";
-      sha256 = "18dzlg5lm6z4nmcx0p51687s8yx4ygxwlpcc24l6yd6lbr0z0xwr";
+      rev = "199459391e097d0ae88ea165fc847791589b7626";
+      sha256 = "0kwy91zk13j19py9cmr3rvza75s3ks33pf0hb3w77qvr9znrad51";
     };
     meta.homepage = "https://github.com/Shougo/defx.nvim/";
   };
@@ -1362,12 +1374,12 @@ final: prev:
 
   deol-nvim = buildVimPluginFrom2Nix {
     pname = "deol.nvim";
-    version = "2021-11-06";
+    version = "2021-12-12";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deol.nvim";
-      rev = "feb1269a56628accc1ec74f4d5e0ea91b80fe9f9";
-      sha256 = "0nnbj538vd99rb4cjfs6xxx6c1n7aflpw92zkz9if1xhfw4jqfzc";
+      rev = "42a3f62153cb3f8ea5e7990d65b5f79b6b141b7e";
+      sha256 = "0lqikjj9260wikdm27r99rndrm4ffkfnymddbj3jzgnfh5gia4zd";
     };
     meta.homepage = "https://github.com/Shougo/deol.nvim/";
   };
@@ -1640,12 +1652,12 @@ final: prev:
 
   diffview-nvim = buildVimPluginFrom2Nix {
     pname = "diffview.nvim";
-    version = "2021-11-11";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "sindrets";
       repo = "diffview.nvim";
-      rev = "a38306ddf893b95b55c6cd881605b3232c658e42";
-      sha256 = "1c55zhxzf3zps7fzqs4vsd81z9la2x3blvjwh45abs93rnqik8nx";
+      rev = "eef47458679a922ef101c1e4c07fb7b36d701385";
+      sha256 = "1k1zsxiq034x72w98117h5cakxxhxak7zq0gwlq812j4gqz8011h";
     };
     meta.homepage = "https://github.com/sindrets/diffview.nvim/";
   };
@@ -1664,12 +1676,12 @@ final: prev:
 
   doki-theme-vim = buildVimPluginFrom2Nix {
     pname = "doki-theme-vim";
-    version = "2021-10-27";
+    version = "2021-12-07";
     src = fetchFromGitHub {
       owner = "doki-theme";
       repo = "doki-theme-vim";
-      rev = "f5f5adbc563120e80201e17196d625e758691a13";
-      sha256 = "0y09j8jl48hldmnwli69shq3lfphg7mifnmis0c5k371lznbi08s";
+      rev = "cea734282d7f2ea25d0ee6cb18224be8de25b24a";
+      sha256 = "0hvrkzcfqi6zfwcm7np6qq9sxmisidzkqlj9bwf0qc4h34qd6b7q";
     };
     meta.homepage = "https://github.com/doki-theme/doki-theme-vim/";
   };
@@ -1688,36 +1700,36 @@ final: prev:
 
   dracula-vim = buildVimPluginFrom2Nix {
     pname = "dracula-vim";
-    version = "2021-10-23";
+    version = "2021-12-10";
     src = fetchFromGitHub {
       owner = "dracula";
       repo = "vim";
-      rev = "e5f09746562ef0226d3484a01609ceca41700a3d";
-      sha256 = "1k5bwif20srhzwj8fwigrih1npjnjcvivl7sr7idspp7rig7lldk";
+      rev = "74f63c304a0625c4ff9ce16784fce583b3a60661";
+      sha256 = "0n5h2a7y4pwhbhzjla3i8wxaahgynnb0fzxmq2n3yaw333pmnv2f";
     };
     meta.homepage = "https://github.com/dracula/vim/";
   };
 
   echodoc-vim = buildVimPluginFrom2Nix {
     pname = "echodoc.vim";
-    version = "2021-10-08";
+    version = "2021-11-26";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "echodoc.vim";
-      rev = "a5568996527e2bc563dcfae2bfc78a3760f40d55";
-      sha256 = "13h37vkrbr3zq9l3d542z0rc8b9d6zxpp5r0cg89xa0q360y9l9w";
+      rev = "42b7fb45c6a45e90410203d9c248b79bc46ea933";
+      sha256 = "14as4q6dnc540in68039c1bbdn4ag86872pbra6h06s5rbhbgzky";
     };
     meta.homepage = "https://github.com/Shougo/echodoc.vim/";
   };
 
   edge = buildVimPluginFrom2Nix {
     pname = "edge";
-    version = "2021-11-11";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "edge";
-      rev = "f2c8e3d2a72f3763e3ea9c620a118e73e2146fb1";
-      sha256 = "08v10j0hirqcj2r2fcw8b04v8bpwj1kp887pq8vs5f57ncqzl8x7";
+      rev = "dfa64abfed4a5afde1ee11bfba2fbaaf7cc94fe1";
+      sha256 = "0ghp633jkcvx5r5d9s63ga5cfapsdx4c8x10gqp0ni9a5ldajbxr";
     };
     meta.homepage = "https://github.com/sainnhe/edge/";
   };
@@ -1737,12 +1749,12 @@ final: prev:
 
   editorconfig-nvim = buildVimPluginFrom2Nix {
     pname = "editorconfig.nvim";
-    version = "2021-11-02";
+    version = "2021-12-12";
     src = fetchFromGitHub {
       owner = "gpanders";
       repo = "editorconfig.nvim";
-      rev = "de419f22817fd93c7c09bf7d47838945761a2c9c";
-      sha256 = "0k6qdqmh5irjz1lyyy49pgdwa4fz4yyq4fxfx60dacjf6g99d19s";
+      rev = "fd56950ca2427114f7d2e34aba312df3c2788cdb";
+      sha256 = "1hns2sahc6yy8k3fkbpyd94sm3ywfcz3hndmijz5b1qnr5xhcvf2";
     };
     meta.homepage = "https://github.com/gpanders/editorconfig.nvim/";
   };
@@ -1773,24 +1785,24 @@ final: prev:
 
   embark-vim = buildVimPluginFrom2Nix {
     pname = "embark-vim";
-    version = "2021-07-24";
+    version = "2021-11-21";
     src = fetchFromGitHub {
       owner = "embark-theme";
       repo = "vim";
-      rev = "03029f4ec49cd0dd1d16eb9561742f5c9f794e71";
-      sha256 = "14gnndh40h8qlymsb9lkycn4w7jv8f7kk0yjxi4wzjvycg7mrplx";
+      rev = "aedd387afd0f15032ea68b5d806dac01aeb54e63";
+      sha256 = "1dasnj07iqh0k6pkfyqi33wah9pnsngsfx6ny0r9sxc2vb35cbvn";
     };
     meta.homepage = "https://github.com/embark-theme/vim/";
   };
 
   emmet-vim = buildVimPluginFrom2Nix {
     pname = "emmet-vim";
-    version = "2021-09-30";
+    version = "2021-12-04";
     src = fetchFromGitHub {
       owner = "mattn";
       repo = "emmet-vim";
-      rev = "1b7e460de071b7ed45cae3b5bec47310e7d12ed5";
-      sha256 = "0i8r9a8phmdphlgdyybnkkg6qc1nsnblrs52zdlybh32qnkjljsg";
+      rev = "def5d57a1ae5afb1b96ebe83c4652d1c03640f4d";
+      sha256 = "1x9v455q4z71dqzalvswd0l4lsp7ic0h1sr1z6pcgwf8ik3j7f7x";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/mattn/emmet-vim/";
@@ -1808,26 +1820,14 @@ final: prev:
     meta.homepage = "https://github.com/vim-scripts/emodeline/";
   };
 
-  ensime-vim = buildVimPluginFrom2Nix {
-    pname = "ensime-vim";
-    version = "2018-10-10";
-    src = fetchFromGitHub {
-      owner = "ensime";
-      repo = "ensime-vim";
-      rev = "caa734e84f002b25446c615706283a74edd4ecfe";
-      sha256 = "190qq8r2zs7xzmsag7ygk6dvpav3cnzlc40lc3fvwmkfwgci5zg0";
-    };
-    meta.homepage = "https://github.com/ensime/ensime-vim/";
-  };
-
   falcon = buildVimPluginFrom2Nix {
     pname = "falcon";
-    version = "2021-11-03";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "fenetikm";
       repo = "falcon";
-      rev = "7d08b7ceb9ac34f131b3125849476960876798b6";
-      sha256 = "0p9w78w9q8l2428rh5p53hs6p0zia7ffmyll8kcll7qbixf1sp2s";
+      rev = "01cc57decb4086644b07ba100f22fed770c91428";
+      sha256 = "0qaj37z4npd3azj912330qq84srmgwacgs1ywyhzcpmfp96smkxk";
     };
     meta.homepage = "https://github.com/fenetikm/falcon/";
   };
@@ -1870,14 +1870,14 @@ final: prev:
 
   feline-nvim = buildVimPluginFrom2Nix {
     pname = "feline.nvim";
-    version = "2021-10-15";
+    version = "2021-12-22";
     src = fetchFromGitHub {
-      owner = "famiu";
+      owner = "feline-nvim";
       repo = "feline.nvim";
-      rev = "4ef5e1516395eea731275e0f58b6bfba5c6ac9c1";
-      sha256 = "12fci8gkbs3gf7cx68dpczkvsgy7bbax6f5fdl6fbjszpwr96lhw";
+      rev = "4893372087444594add4631cf11f72c71e1aa1e4";
+      sha256 = "14pbp9dkd743sr3fagpyjx63hx9b97m2k8m1d1j3isx35x7k9fgp";
     };
-    meta.homepage = "https://github.com/famiu/feline.nvim/";
+    meta.homepage = "https://github.com/feline-nvim/feline.nvim/";
   };
 
   fennel-vim = buildVimPluginFrom2Nix {
@@ -2015,12 +2015,12 @@ final: prev:
 
   friendly-snippets = buildVimPluginFrom2Nix {
     pname = "friendly-snippets";
-    version = "2021-11-12";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "rafamadriz";
       repo = "friendly-snippets";
-      rev = "05bfa7681b8f11b664fab657001c2efb6f3ec85e";
-      sha256 = "1133f32q4g990mmvdrbnjxggk8y96w0c5zlvh553cz9j626a4zks";
+      rev = "24481f883c980ed8c4c5c08bf8fcdd0fef57c16f";
+      sha256 = "1vdall0jf259icmy2qf8lg03xp48xddlcnr6amjzzi2rjw3migzh";
     };
     meta.homepage = "https://github.com/rafamadriz/friendly-snippets/";
   };
@@ -2147,12 +2147,12 @@ final: prev:
 
   gentoo-syntax = buildVimPluginFrom2Nix {
     pname = "gentoo-syntax";
-    version = "2021-11-06";
+    version = "2021-12-10";
     src = fetchFromGitHub {
       owner = "gentoo";
       repo = "gentoo-syntax";
-      rev = "b3014c2205200b6e52a3093b1053b69a0228f878";
-      sha256 = "081b7d8vhhvrarfbv4681vf68vrxnlfagmglyg90wzpjiasf6vb2";
+      rev = "b6027756f5bdfaaa24b26c5472f8904f78e86c3e";
+      sha256 = "0w0nvf1ha065d16zlgqf77rvf52qs350zzy2rb4b741h1fk34v59";
     };
     meta.homepage = "https://github.com/gentoo/gentoo-syntax/";
   };
@@ -2219,12 +2219,12 @@ final: prev:
 
   git-worktree-nvim = buildVimPluginFrom2Nix {
     pname = "git-worktree.nvim";
-    version = "2021-11-09";
+    version = "2021-12-15";
     src = fetchFromGitHub {
       owner = "ThePrimeagen";
       repo = "git-worktree.nvim";
-      rev = "14d4be5f9db5c5cce7b4c1ee10c70d663c367373";
-      sha256 = "11gzz2dc75b0sqkkxsiw9yramfwhcrv4vq39mxlzmxxzbzk11dv2";
+      rev = "9eeb8eafbbbf159cfc45657af260f2789cd4a915";
+      sha256 = "16x7gp1y9s3mmpav21v21r7412fm3y8jhdwb0bb8n9nhaq1lpp53";
     };
     meta.homepage = "https://github.com/ThePrimeagen/git-worktree.nvim/";
   };
@@ -2243,24 +2243,24 @@ final: prev:
 
   gitlinker-nvim = buildVimPluginFrom2Nix {
     pname = "gitlinker.nvim";
-    version = "2021-11-15";
+    version = "2021-12-22";
     src = fetchFromGitHub {
       owner = "ruifm";
       repo = "gitlinker.nvim";
-      rev = "003ee482a25118cdac73faea8bd35df0399e8f8f";
-      sha256 = "0zpy1cpviia9l4z3b87534arnxfja48bjhqqb88mxjzm9gkc4rbf";
+      rev = "6f0430803162738bdab70bda8de45a71257f942d";
+      sha256 = "06bygsggk1lblkid28ayhw58klxl7v9cm4c5vinmb42yhw5nx69w";
     };
     meta.homepage = "https://github.com/ruifm/gitlinker.nvim/";
   };
 
   gitsigns-nvim = buildVimPluginFrom2Nix {
     pname = "gitsigns.nvim";
-    version = "2021-11-17";
+    version = "2021-12-13";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "gitsigns.nvim";
-      rev = "5e49bb09f324580519d1ef41cb03bcb07536a239";
-      sha256 = "1zfwazv58y4r9cpalx522hnb9wics50m90n59yabmimb2iyp323z";
+      rev = "a451f97117bd1ede582a6b9db61c387c48d880b6";
+      sha256 = "02hjrinkkhbyvsai18bcvp9v6i9jpllj2af5zi7gjwa8mahk8fak";
     };
     meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
   };
@@ -2291,12 +2291,12 @@ final: prev:
 
   glow-nvim = buildVimPluginFrom2Nix {
     pname = "glow.nvim";
-    version = "2021-11-05";
+    version = "2021-12-14";
     src = fetchFromGitHub {
       owner = "ellisonleao";
       repo = "glow.nvim";
-      rev = "708d3f3aca0f4e6bc9a6b9188bc7b37a828b8fa7";
-      sha256 = "01a9n27h0gna73amhaxsyj607a948nvhjk5b55ramzz0iippvkp0";
+      rev = "d86281307ce2898d0fcd85ecb0865fc1dd2f2578";
+      sha256 = "03idi3x531q213m3172w405yq2gsif0a4dkxy8b0y3k9ipcpbczf";
     };
     meta.homepage = "https://github.com/ellisonleao/glow.nvim/";
   };
@@ -2315,36 +2315,36 @@ final: prev:
 
   gotests-vim = buildVimPluginFrom2Nix {
     pname = "gotests-vim";
-    version = "2019-04-10";
+    version = "2021-11-25";
     src = fetchFromGitHub {
       owner = "buoto";
       repo = "gotests-vim";
-      rev = "e0ad687be26875153ecd43d16db3b93a637394e4";
-      sha256 = "01w981v7rya9fnxwdhlka4vfzlnw87pxmfcqmvxh3p96lmi71xjm";
+      rev = "9adb78b15d0cbb72a3ffb9fbed28faa909b0817b";
+      sha256 = "0lf05rfgw1dmidslbvw5qal45crnb8jfxsfbhbhffqa9da1fkspn";
     };
     meta.homepage = "https://github.com/buoto/gotests-vim/";
   };
 
   goto-preview = buildVimPluginFrom2Nix {
     pname = "goto-preview";
-    version = "2021-11-17";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "rmagatti";
       repo = "goto-preview";
-      rev = "817bae89f75c8f061f7c0198ce392dca5d16ac94";
-      sha256 = "0pxz7mrl4fsdi6pyk7zizxb7g3a11n8s36ndg3l9qsbihfxiqk5y";
+      rev = "899a3649e51e7ce85673a884027d354c9a186bf8";
+      sha256 = "1jly0f1h5d5j4cvq3ljvvmxkykyrbgbwsq3w59bsf790l108j8y2";
     };
     meta.homepage = "https://github.com/rmagatti/goto-preview/";
   };
 
   goyo-vim = buildVimPluginFrom2Nix {
     pname = "goyo.vim";
-    version = "2020-08-29";
+    version = "2021-11-18";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "goyo.vim";
-      rev = "a865dec7ca7616dbbd69315ad1417b84d0c411f8";
-      sha256 = "09mqmcz79dwcc5mv0p2wc84jc20ipa0vv2yckp4la4xh909ph4hm";
+      rev = "a9c7283dce60ffcdec952384f6451ff42f8914f2";
+      sha256 = "0ikp0hal6hqvkbzmd2vsp27rkhl9n5iv2nkzlsc3ahwihy6p6xn8";
     };
     meta.homepage = "https://github.com/junegunn/goyo.vim/";
   };
@@ -2363,12 +2363,12 @@ final: prev:
 
   gruvbox-community = buildVimPluginFrom2Nix {
     pname = "gruvbox-community";
-    version = "2021-10-10";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "gruvbox-community";
       repo = "gruvbox";
-      rev = "961cc1850bd7d5657aa5789f81487d4d85747d2b";
-      sha256 = "1kvl264xmk6vk5kqp6d32lfxyb5rx320kc3fhmjzkyaa2p4k3j25";
+      rev = "1f8500f033813fcc6f41f0fe366e27faa163f2c2";
+      sha256 = "0vvmzwlq5in1pn73gzsn2bbj4x5n7w48a635yn2qpkslh4qhnq82";
     };
     meta.homepage = "https://github.com/gruvbox-community/gruvbox/";
   };
@@ -2387,24 +2387,24 @@ final: prev:
 
   gruvbox-material = buildVimPluginFrom2Nix {
     pname = "gruvbox-material";
-    version = "2021-11-11";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "gruvbox-material";
-      rev = "a25c5294013d58e4fde6b72d94a5f77e3330f0cc";
-      sha256 = "0k4baphl8x6fy8hqidr7g8mw6w1cjhwsgjmsd9v72a9ikl4z22vq";
+      rev = "70bd495722e89d39ddb0d6dd353de119d415a9e4";
+      sha256 = "0jpcmb4kshjm866pmc8mzk6vccsy3rz691zsgm1f47wvbad24c17";
     };
     meta.homepage = "https://github.com/sainnhe/gruvbox-material/";
   };
 
   gruvbox-nvim = buildVimPluginFrom2Nix {
     pname = "gruvbox.nvim";
-    version = "2021-11-12";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "ellisonleao";
       repo = "gruvbox.nvim";
-      rev = "dc7c63320c523997610ced545007935c72d81942";
-      sha256 = "16nvlli0vmqxdbcx2d8p2nsl0865444l1d3ji23z9cbz4i171rsw";
+      rev = "b0a1c4bd71aa58e02809632fbc00fa6dce6d1213";
+      sha256 = "006r99is1x9k4z8y3gycrlczm964gl9gipri2qq7ihjnbsxbkjg3";
     };
     meta.homepage = "https://github.com/ellisonleao/gruvbox.nvim/";
   };
@@ -2435,12 +2435,12 @@ final: prev:
 
   harpoon = buildVimPluginFrom2Nix {
     pname = "harpoon";
-    version = "2021-11-09";
+    version = "2021-12-04";
     src = fetchFromGitHub {
       owner = "ThePrimeagen";
       repo = "harpoon";
-      rev = "57819752e62251f9488a95fea1690bb62547bd2a";
-      sha256 = "0x5x6jmz31aclai0l2dplr0y16f97jb40cgvnrx8mr5gb0s5i7sc";
+      rev = "6948a402c2d7b1a66826d28d50ad86c0b2c8a6cf";
+      sha256 = "0bg5ax66fsrqbr4385fh1klljrmh3ycrda8fzk3lm9wggf0z93js";
     };
     meta.homepage = "https://github.com/ThePrimeagen/harpoon/";
   };
@@ -2519,12 +2519,12 @@ final: prev:
 
   hop-nvim = buildVimPluginFrom2Nix {
     pname = "hop.nvim";
-    version = "2021-11-17";
+    version = "2021-12-03";
     src = fetchFromGitHub {
       owner = "phaazon";
       repo = "hop.nvim";
-      rev = "d2a9f2a6b0d075fc85ac346d3c03c4a3257bc805";
-      sha256 = "1gpgln5bfvygpkqb1p2pawq1pw5rg9j5jwgl7wmal4fik9yixp0f";
+      rev = "563ccb63195fb1274e846f6f031af7743c7214f0";
+      sha256 = "1zwjqg6zzs0y7ki63brsxf2k64xv4nld8jrixw0naajn4pip43r3";
     };
     meta.homepage = "https://github.com/phaazon/hop.nvim/";
   };
@@ -2627,12 +2627,12 @@ final: prev:
 
   indent-blankline-nvim = buildVimPluginFrom2Nix {
     pname = "indent-blankline.nvim";
-    version = "2021-11-12";
+    version = "2021-12-01";
     src = fetchFromGitHub {
       owner = "lukas-reineke";
       repo = "indent-blankline.nvim";
-      rev = "9f663d31d4ee0672f24cd5b26ca3863665048a25";
-      sha256 = "1lzdi3pgw9hf8pkmh3y8w3lrl27kac18hq4ryk0mghqyb8saabzw";
+      rev = "0f8df7e43f0cae4c44e0e8383436ad602f333419";
+      sha256 = "13jqcl54ijdzk3r17fmr2zzzjxn1njwfhipaaxyk7p6qqi1hphgj";
     };
     meta.homepage = "https://github.com/lukas-reineke/indent-blankline.nvim/";
   };
@@ -2735,12 +2735,12 @@ final: prev:
 
   jedi-vim = buildVimPluginFrom2Nix {
     pname = "jedi-vim";
-    version = "2021-06-22";
+    version = "2021-11-17";
     src = fetchFromGitHub {
       owner = "davidhalter";
       repo = "jedi-vim";
-      rev = "7ac81cb88059d3daaf2d654cbb5cd03d23a60d33";
-      sha256 = "0ydgj222i0ilbb4nhv988r2yrfhq7m29c32nardb7mw79y9a08i7";
+      rev = "030211555d5340e4a1acfa3a9368df85f34469d0";
+      sha256 = "09fbq010bfzs193x7g1lyhl56hcpj9m1b1k9rhdwvfjpwn9kh4x6";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/davidhalter/jedi-vim/";
@@ -2796,36 +2796,48 @@ final: prev:
 
   jsonc-vim = buildVimPluginFrom2Nix {
     pname = "jsonc.vim";
-    version = "2020-11-24";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "jsonc.vim";
-      rev = "63ffa5199a0e64d5ce0515256407f32dfbd67fc3";
-      sha256 = "047c2sc8q49axhi9416lzzpv5ykczc63dqd4xy56rfcfrvsi199j";
+      rev = "b87595ba7f3fa4bdcc8803a2ec72574719fc9fd6";
+      sha256 = "02bgqxi20lmq97s9nnsb1mmjp45fh5a9pbhbs6hl2zmb03spbvpi";
     };
     meta.homepage = "https://github.com/neoclide/jsonc.vim/";
   };
 
   julia-vim = buildVimPluginFrom2Nix {
     pname = "julia-vim";
-    version = "2021-09-24";
+    version = "2021-12-08";
     src = fetchFromGitHub {
       owner = "JuliaEditorSupport";
       repo = "julia-vim";
-      rev = "ee8465c7c21ea9a3ebcac30156105bdadd23751c";
-      sha256 = "10a9kwsws9haribmw7r3c80cygwza3cihs2i096vzg8010yx78fx";
+      rev = "e4972997fb5aee1c180e9840586a09553865cc20";
+      sha256 = "11v9fhd7i9si5psnsrvdgrih64rgjjy7ypjlfz9ys74rcryfyy5x";
     };
     meta.homepage = "https://github.com/JuliaEditorSupport/julia-vim/";
   };
 
+  kanagawa-nvim = buildVimPluginFrom2Nix {
+    pname = "kanagawa.nvim";
+    version = "2021-12-25";
+    src = fetchFromGitHub {
+      owner = "rebelot";
+      repo = "kanagawa.nvim";
+      rev = "10bccb5e8e8530725c8059df2e6852fb01842d1c";
+      sha256 = "15jji03qvpbyfk1bpc9b31rbkklfzdnhmnld4cr5ydjmz1fd5fzb";
+    };
+    meta.homepage = "https://github.com/rebelot/kanagawa.nvim/";
+  };
+
   kommentary = buildVimPluginFrom2Nix {
     pname = "kommentary";
-    version = "2021-10-13";
+    version = "2021-12-03";
     src = fetchFromGitHub {
       owner = "b3nj5m1n";
       repo = "kommentary";
-      rev = "8f1cd74ad28de7d7c4fda5d8e8557ff240904b42";
-      sha256 = "0avd7v0nzz31nf5vj29npw5g7c2rrlirvkyd042qlh5y2vas7b2g";
+      rev = "2e1c3be90d555cd2c1f70b1c24867cee08d352f4";
+      sha256 = "1rsfc0a8pg1iipcs690hndwycllgyqrjizn3rzix2jgknzbzbbsa";
     };
     meta.homepage = "https://github.com/b3nj5m1n/kommentary/";
   };
@@ -2856,12 +2868,12 @@ final: prev:
 
   LanguageClient-neovim = buildVimPluginFrom2Nix {
     pname = "LanguageClient-neovim";
-    version = "2018-08-07";
+    version = "2020-12-10";
     src = fetchFromGitHub {
       owner = "autozimu";
       repo = "LanguageClient-neovim";
-      rev = "dd45e31449511152f2127fe862d955237caa130f";
-      sha256 = "1i1c98r9fg1mzyl15b3grk6v7s7frwadh86rr1ggz7aq1gwfy7dq";
+      rev = "a42594c9c320b1283e9b9058b85a8097d8325fed";
+      sha256 = "0lj9na3g2cl0vj56jz8rhz9lm2d3xps5glk8ds491i2ixy4vdm37";
     };
     meta.homepage = "https://github.com/autozimu/LanguageClient-neovim/";
   };
@@ -2904,36 +2916,36 @@ final: prev:
 
   lazygit-nvim = buildVimPluginFrom2Nix {
     pname = "lazygit.nvim";
-    version = "2021-10-31";
+    version = "2021-11-21";
     src = fetchFromGitHub {
       owner = "kdheepak";
       repo = "lazygit.nvim";
-      rev = "bcd111df61abe90b133cb08ea577c02af44ca5ce";
-      sha256 = "08sbigblq42kb5qhn5z4i856p7sj5i86hcqlqpm0fidxr8c6xsf9";
+      rev = "497ef5578e15f6c79deef1cad71adedd1c80abd4";
+      sha256 = "1slmx1c3v2l49vnv5kxivgygla2wa7dvl47wf0xxshlsz2gml7y7";
     };
     meta.homepage = "https://github.com/kdheepak/lazygit.nvim/";
   };
 
   LeaderF = buildVimPluginFrom2Nix {
     pname = "LeaderF";
-    version = "2021-10-24";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "Yggdroot";
       repo = "LeaderF";
-      rev = "48fbae95f5ba26affb490488eb606ff127ccb0da";
-      sha256 = "0f2m2b8hwpyl74f6zl2n6x4d8yimi1pqy02alkwiwrm5y6x469sc";
+      rev = "5626a1f71bcc2dd7a74156f22c53734621c12433";
+      sha256 = "0xr76yf5wm4mggf5993m5sywim08dg3qsgx84xck5zcqiz84i3q9";
     };
     meta.homepage = "https://github.com/Yggdroot/LeaderF/";
   };
 
   lean-nvim = buildVimPluginFrom2Nix {
     pname = "lean.nvim";
-    version = "2021-11-17";
+    version = "2021-12-15";
     src = fetchFromGitHub {
       owner = "Julian";
       repo = "lean.nvim";
-      rev = "a74b5c09bee57c4c41a4fe7e4594416f92ea05aa";
-      sha256 = "1zrzd0rahwzhyx46bfwz6gzwr513h3k5b1f5maf0qrc1jq2snd6g";
+      rev = "b74370552cfeb5da1bc3a2eef527cac33494c21e";
+      sha256 = "0i2warnzyvnjcgl9pcvnadpp53z83rvvxvqlbjgxdk3lrcqqffsl";
     };
     meta.homepage = "https://github.com/Julian/lean.nvim/";
   };
@@ -2976,12 +2988,12 @@ final: prev:
 
   lexima-vim = buildVimPluginFrom2Nix {
     pname = "lexima.vim";
-    version = "2021-11-11";
+    version = "2021-12-06";
     src = fetchFromGitHub {
       owner = "cohama";
       repo = "lexima.vim";
-      rev = "99ece6758ec49b04de983873e4117a390121fbb8";
-      sha256 = "00sjngkscry6ln9d94w9b2466d1y2prxivaxn8hqxpng1wyhhlay";
+      rev = "5d84c57a143b3218d25225328ec2fb9735ac0284";
+      sha256 = "1z9zvysfb84wxrqd0ys0pf1lk3pqa0vgig6m8mrdl7d9n718d1dc";
     };
     meta.homepage = "https://github.com/cohama/lexima.vim/";
   };
@@ -3060,36 +3072,36 @@ final: prev:
 
   lightline-vim = buildVimPluginFrom2Nix {
     pname = "lightline.vim";
-    version = "2021-05-30";
+    version = "2021-11-21";
     src = fetchFromGitHub {
       owner = "itchyny";
       repo = "lightline.vim";
-      rev = "b06d921023cf6536bcbee5754071d122296e8942";
-      sha256 = "1dsqssxgbglq6al6di9grxl24rgwidgd6jrc8d4gk6v6ymgzckl8";
+      rev = "a29b8331e1bb36b09bafa30c3aa77e89cdd832b2";
+      sha256 = "0n3wrfcw6k95cmwg8jpxh0y9jy6y2bjgvszjgal9yha7y8gv6a9v";
     };
     meta.homepage = "https://github.com/itchyny/lightline.vim/";
   };
 
   lightspeed-nvim = buildVimPluginFrom2Nix {
     pname = "lightspeed.nvim";
-    version = "2021-11-17";
+    version = "2021-12-22";
     src = fetchFromGitHub {
       owner = "ggandor";
       repo = "lightspeed.nvim";
-      rev = "d60ee2ef756e89f51ee3f41be2fbacfac965091f";
-      sha256 = "0m610jvk7zx7lri33d3b2dr60w2xy8kzlssigiciynhzs0lg9pyg";
+      rev = "9fddb6ebf4007eaa26f44cd31b5140cbd3bbb820";
+      sha256 = "0d78fi1vch4frnkni2znqdj109igb4v1x24xlzr1k0yhz9gybh9y";
     };
     meta.homepage = "https://github.com/ggandor/lightspeed.nvim/";
   };
 
   limelight-vim = buildVimPluginFrom2Nix {
     pname = "limelight.vim";
-    version = "2020-10-13";
+    version = "2021-11-18";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "limelight.vim";
-      rev = "4412a84d7fbfd01281bf23d801e95c45c1eacc09";
-      sha256 = "1qab2pd1pyfrw0llxd5j11imzqxa3lnnfhr1w2fjn3yanbsxvlvd";
+      rev = "eebac6c4fce06d3b849cccd213b7233d37ab037f";
+      sha256 = "0nhiwmklkn4p8njw6l891yk5bnya1hyx4zg0a8d4yb2j734bmr2g";
     };
     meta.homepage = "https://github.com/junegunn/limelight.vim/";
   };
@@ -3108,24 +3120,24 @@ final: prev:
 
   lir-nvim = buildVimPluginFrom2Nix {
     pname = "lir.nvim";
-    version = "2021-11-03";
+    version = "2021-12-06";
     src = fetchFromGitHub {
       owner = "tamago324";
       repo = "lir.nvim";
-      rev = "e340f4ee25c74aaa6d67d84a5f48024a8f6422a0";
-      sha256 = "08wbfpdirmdjnj7l7kd008iwcp466skflb3rr3rzqshmqfv7vqfk";
+      rev = "334ac76c6b3308176d9d90ff661ac6f90e9ee749";
+      sha256 = "07s58v1c92bib6pmpc62mszs9jz0mwlik5qmv4b9y56rw4sa94xc";
     };
     meta.homepage = "https://github.com/tamago324/lir.nvim/";
   };
 
   lispdocs-nvim = buildVimPluginFrom2Nix {
     pname = "lispdocs.nvim";
-    version = "2021-10-19";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "tami5";
       repo = "lispdocs.nvim";
-      rev = "44d8321843b499a966255270ac59be6148b74097";
-      sha256 = "0pqyfx4b1wsfw30b22ycfvfwbf8h6gw2s4f4hxkicj24ix9qwx6w";
+      rev = "0ba08a70c671570d6e55b76505bf3dbf52cdbe00";
+      sha256 = "1q0lfymk6808n0c1p73yng9nm9qzsycg4irsg2l8i3ijphgni5fj";
     };
     meta.homepage = "https://github.com/tami5/lispdocs.nvim/";
   };
@@ -3156,12 +3168,12 @@ final: prev:
 
   lsp-status-nvim = buildVimPluginFrom2Nix {
     pname = "lsp-status.nvim";
-    version = "2021-09-15";
+    version = "2021-12-08";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "lsp-status.nvim";
-      rev = "e8e5303f9ee3d8dc327c97891eaa1257ba5d4eee";
-      sha256 = "106l23n01czd8ndzfixggj8ifv80w0n19mjakac575sjrxhwbl52";
+      rev = "4073f766f1303fb602802075e558fe43e382cc92";
+      sha256 = "1aicy5n57ihpy1fkrv3bpxdcmwbdldl6pnxisndfk2h0l2vc1bp4";
     };
     meta.homepage = "https://github.com/nvim-lua/lsp-status.nvim/";
   };
@@ -3180,24 +3192,24 @@ final: prev:
 
   lsp_signature-nvim = buildVimPluginFrom2Nix {
     pname = "lsp_signature.nvim";
-    version = "2021-11-13";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "lsp_signature.nvim";
-      rev = "600111e6249bcc948e2b811ef09adf4ea84ebfc1";
-      sha256 = "0w012936d42m2bs2g8mgg72wkf9mvx4w5m01qdh8daksi1wg86hy";
+      rev = "be39dacc17d51531f9e3a50f88de0a45683c6634";
+      sha256 = "1hj5b079akiy8k09bvzq36hb9icw0cspb2xk0dg88zafflkh9q3y";
     };
     meta.homepage = "https://github.com/ray-x/lsp_signature.nvim/";
   };
 
   lspkind-nvim = buildVimPluginFrom2Nix {
     pname = "lspkind-nvim";
-    version = "2021-10-25";
+    version = "2021-12-06";
     src = fetchFromGitHub {
       owner = "onsails";
       repo = "lspkind-nvim";
-      rev = "1557ce5b3b8e497c1cb1d0b9d967a873136b0c23";
-      sha256 = "0qrfrwd7mz311hjmpkjfjg1d2dkar675vflizpj0p09b5dp8zkbv";
+      rev = "f3b5efa11f0665accb7bd0258260b9d08dd4956e";
+      sha256 = "0v3apm4r41id6ij7mgblik4bb1mip8qs7fcpvrc6xlhmwbj3m2x8";
     };
     meta.homepage = "https://github.com/onsails/lspkind-nvim/";
   };
@@ -3228,28 +3240,40 @@ final: prev:
 
   lualine-nvim = buildVimPluginFrom2Nix {
     pname = "lualine.nvim";
-    version = "2021-11-16";
+    version = "2021-12-22";
     src = fetchFromGitHub {
       owner = "nvim-lualine";
       repo = "lualine.nvim";
-      rev = "7b608cb5731087b157bd509103b1d82d8984cba4";
-      sha256 = "04nbfml4j2yr4imvdzany4r6amakiwazgfjgd4y2h3c78pnlrb41";
+      rev = "593e28964cb3f071031cf849d562c982582ddaa0";
+      sha256 = "1rwrvrqplxqhdb904grvcnf0k3fldxyfc7yqf8lhymjr6dgpqnbh";
     };
     meta.homepage = "https://github.com/nvim-lualine/lualine.nvim/";
   };
 
   luasnip = buildVimPluginFrom2Nix {
     pname = "luasnip";
-    version = "2021-11-16";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "l3mon4d3";
       repo = "luasnip";
-      rev = "6e10a30178240182781955ce062618c8d793a37b";
-      sha256 = "0z1n838d8fvis88a603fzzmdh1iqm41svay8ypmkbm3wcjaafjyl";
+      rev = "3e4da0cfea0a2f0b4749369bc7ed247c1412a854";
+      sha256 = "0x8br3dyslbm63krcbflrb8csvppxnwfdgi1407z9b5y38x5zypx";
     };
     meta.homepage = "https://github.com/l3mon4d3/luasnip/";
   };
 
+  luatab-nvim = buildVimPluginFrom2Nix {
+    pname = "luatab.nvim";
+    version = "2021-12-05";
+    src = fetchFromGitHub {
+      owner = "alvarosevilla95";
+      repo = "luatab.nvim";
+      rev = "79d53c11bd77274b49b50f1d6fdb10529d7354b7";
+      sha256 = "0cn244bh82b52pysimvqwl0spj6jadxb673jw6mnmd52nlv634f5";
+    };
+    meta.homepage = "https://github.com/alvarosevilla95/luatab.nvim/";
+  };
+
   lush-nvim = buildVimPluginFrom2Nix {
     pname = "lush.nvim";
     version = "2021-11-06";
@@ -3288,12 +3312,12 @@ final: prev:
 
   marks-nvim = buildVimPluginFrom2Nix {
     pname = "marks.nvim";
-    version = "2021-11-07";
+    version = "2021-12-14";
     src = fetchFromGitHub {
       owner = "chentau";
       repo = "marks.nvim";
-      rev = "f43e349601b439b4b07bec1d996cfd70d48d09fb";
-      sha256 = "0xnrklam85yva82ncfbpymhs8wa0g9vcks4dzdpvnj8f21la1f3d";
+      rev = "54bc3f7bc4090457576dead244325b3e08c9f12f";
+      sha256 = "087yqgzcgjzj3z7j4f725q3qn4cn19w7p1ziirfz7ak1cx1br74g";
     };
     meta.homepage = "https://github.com/chentau/marks.nvim/";
   };
@@ -3348,12 +3372,12 @@ final: prev:
 
   minimap-vim = buildVimPluginFrom2Nix {
     pname = "minimap.vim";
-    version = "2021-11-16";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "wfxr";
       repo = "minimap.vim";
-      rev = "f699b8296c878a5d669f3a13a9d6f916f6276bef";
-      sha256 = "1v4xhp82rw5f7zq8mfcj478p088qrcqbml1crhqi9v41gghwv9b5";
+      rev = "9508d4bb96ec0ff951b41c9d49b5ac7414bb4e7a";
+      sha256 = "0y62ylqjv8q4hq6qf5cc82nzp0ncrpij8wnmnr9kppr5lmm6sf9p";
     };
     meta.homepage = "https://github.com/wfxr/minimap.vim/";
   };
@@ -3372,12 +3396,12 @@ final: prev:
 
   mkdx = buildVimPluginFrom2Nix {
     pname = "mkdx";
-    version = "2021-11-12";
+    version = "2021-12-06";
     src = fetchFromGitHub {
       owner = "SidOfc";
       repo = "mkdx";
-      rev = "aeb41655826fbeb6c412b32f2cd3acd1c7e5e958";
-      sha256 = "14bslsyrxc1x13mijybcinx39nmc3gp3skn05i537xzl7lq5dnlr";
+      rev = "a6fc41f7630e675ca5f0aeb829ad1b88c73a7c63";
+      sha256 = "08lls5zzlzglxx7hw19vid4kiqdsdnwahgw306vhqlhhx8wc00w3";
     };
     meta.homepage = "https://github.com/SidOfc/mkdx/";
   };
@@ -3684,12 +3708,12 @@ final: prev:
 
   neogit = buildVimPluginFrom2Nix {
     pname = "neogit";
-    version = "2021-11-09";
+    version = "2021-12-02";
     src = fetchFromGitHub {
       owner = "TimUntersberger";
       repo = "neogit";
-      rev = "807e4a795dc6c2383b281fc27bd1bc6c197d98cd";
-      sha256 = "126kdn9dfvk0ggzh00439zwrq1jldnxvk0nsf7g371qkbbnc4qal";
+      rev = "0ff8e0c53092a9cb3a2bf138b05f7efd1f6d2481";
+      sha256 = "08mdpgc6rmyldh9sfm4sic2shs69aln5jrgdx75amblcm0p42g1j";
     };
     meta.homepage = "https://github.com/TimUntersberger/neogit/";
   };
@@ -3744,12 +3768,12 @@ final: prev:
 
   neorg = buildVimPluginFrom2Nix {
     pname = "neorg";
-    version = "2021-10-26";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "nvim-neorg";
       repo = "neorg";
-      rev = "592fb0c9c220ca53238e6de7685c3151fe3a3085";
-      sha256 = "1s1bwa2aq28gzn3jws0nv8wr45b5mhx2wz0pld10qxmvpm7l32js";
+      rev = "e35a2eee66a5906c778ad4f57f8a015bea1be977";
+      sha256 = "1vxdf8zp6kr1np4lg9khhfsjm7r1dyjggkbris3m7b2srmzpbxhz";
     };
     meta.homepage = "https://github.com/nvim-neorg/neorg/";
   };
@@ -3816,12 +3840,12 @@ final: prev:
 
   neovim-ayu = buildVimPluginFrom2Nix {
     pname = "neovim-ayu";
-    version = "2021-10-13";
+    version = "2021-12-10";
     src = fetchFromGitHub {
       owner = "Shatur";
       repo = "neovim-ayu";
-      rev = "baf9ac7f20dbc225644ab4825f007bc65e944dce";
-      sha256 = "0x0y78kps2p9skqykcrvlgbhmmm5x5c5kkwz1dfc0akzkdjy8505";
+      rev = "c0507cd4b792c8b9d1a9d47c47380bba9707b790";
+      sha256 = "1b583k8wh0a4lx83wyrjl11jj4zazwhwq95p3jwxz9gwqn0gc5q9";
     };
     meta.homepage = "https://github.com/Shatur/neovim-ayu/";
   };
@@ -3864,12 +3888,12 @@ final: prev:
 
   nerdcommenter = buildVimPluginFrom2Nix {
     pname = "nerdcommenter";
-    version = "2021-09-02";
+    version = "2021-11-27";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "nerdcommenter";
-      rev = "a65465d321f2f8a74b2ffa540b9b87563f7e12e8";
-      sha256 = "00ir65iv8jfbgzjmj7332fmydh0qhabbhx8zbvd3j6pgfxqpaafw";
+      rev = "eddd535bdf8472db469b48ac8cf826871b340c4b";
+      sha256 = "1ka2rqn7rby55aps3iblh1dcqxm7m7qx72mpkz6y2aaj8mkj0zyd";
     };
     meta.homepage = "https://github.com/preservim/nerdcommenter/";
   };
@@ -3900,12 +3924,12 @@ final: prev:
 
   neuron-nvim = buildVimPluginFrom2Nix {
     pname = "neuron.nvim";
-    version = "2021-11-08";
+    version = "2021-12-04";
     src = fetchFromGitHub {
       owner = "oberblastmeister";
       repo = "neuron.nvim";
-      rev = "a7280d4923f51c8af8cecc53aa06ed49cbbd412d";
-      sha256 = "0qanc7r9z5ry3xxbvpv9xbmxnx0f8yj10fi887yhrcms7kj73al9";
+      rev = "d89a2f701eceae882dca1f9bbb754d2a89b0beda";
+      sha256 = "0xjf5wiwy57g1rpq08lw32xyk0yx27p6z1m1bycq4wnxd1faqm8s";
     };
     meta.homepage = "https://github.com/oberblastmeister/neuron.nvim/";
   };
@@ -3936,12 +3960,12 @@ final: prev:
 
   nightfox-nvim = buildVimPluginFrom2Nix {
     pname = "nightfox.nvim";
-    version = "2021-11-01";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "EdenEast";
       repo = "nightfox.nvim";
-      rev = "6df32a7283f86c5ec7cf50a6996b39d3db5c1ac2";
-      sha256 = "000vf833ajysbl5210a40kg9iq43mw77k7pnf4rg84pxjx49kvvd";
+      rev = "aaea945f89fdbee86de67339eaea05a16fa6912a";
+      sha256 = "0s37ygczbvcybqmfh1wq43q8v2pl1a42xasb7mzby94qbdjimq9f";
     };
     meta.homepage = "https://github.com/EdenEast/nightfox.nvim/";
   };
@@ -3960,24 +3984,24 @@ final: prev:
 
   nlua-nvim = buildVimPluginFrom2Nix {
     pname = "nlua.nvim";
-    version = "2021-06-15";
+    version = "2021-12-14";
     src = fetchFromGitHub {
       owner = "tjdevries";
       repo = "nlua.nvim";
-      rev = "a0722bd2f6fdf54f85aaf8dcd6a1032f64c83905";
-      sha256 = "1j3350hs5dhbksi7wbzaq5p2268544virj0hj41bs5iv078pjj45";
+      rev = "3603ee35ed928acd961847aeac30c92a3a048997";
+      sha256 = "0bdpplmgn0cvlgw37jn8qhl91qx4sjsyl88r1qzp6c0gjn0qfwi6";
     };
     meta.homepage = "https://github.com/tjdevries/nlua.nvim/";
   };
 
   nnn-vim = buildVimPluginFrom2Nix {
     pname = "nnn.vim";
-    version = "2021-11-05";
+    version = "2021-12-04";
     src = fetchFromGitHub {
       owner = "mcchrish";
       repo = "nnn.vim";
-      rev = "98b00d03ba1df60aa7f2fe8e21d40250bd67109b";
-      sha256 = "0slvmz25ics4bbqfcfv23mplkkpvbwhyalh8qkl1gs0klmdp1lj1";
+      rev = "32d106a121eb4c88a8f4d0c6d779065b731c9fcb";
+      sha256 = "12n3i813019q4j1lhgkpigjbi6yjywhhdib0xhw9qsjw2s7nvpk8";
     };
     meta.homepage = "https://github.com/mcchrish/nnn.vim/";
   };
@@ -3996,24 +4020,24 @@ final: prev:
 
   nord-nvim = buildVimPluginFrom2Nix {
     pname = "nord.nvim";
-    version = "2021-11-07";
+    version = "2021-12-01";
     src = fetchFromGitHub {
       owner = "shaunsingh";
       repo = "nord.nvim";
-      rev = "c9265653e7fbf70326d671b37c7c89e4fa2b8093";
-      sha256 = "0cn8gxzk9l4nmfxr97xrcz8sd0vrzv827mw499nlpai1z8xqj318";
+      rev = "3df247377b292ed084c3bc0ef300db473c1c8254";
+      sha256 = "1li8h2lf7pyy51hm81pnnc9d9wa9yazrkqskd0jpz7vlxi1sd3ah";
     };
     meta.homepage = "https://github.com/shaunsingh/nord.nvim/";
   };
 
   NrrwRgn = buildVimPluginFrom2Nix {
     pname = "NrrwRgn";
-    version = "2020-05-29";
+    version = "2021-12-01";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "NrrwRgn";
-      rev = "82a0fc6a3415db9a891f9d9f19b512041c865109";
-      sha256 = "00fd466i5860bazd4pj69k8piicgckxj68lkn2l7haawj9chslzs";
+      rev = "be7f06308bddd493d436372ee71d6b366af97fbb";
+      sha256 = "15f5alvp8lybyijpjp0h4ma7wyy5pgki4i3v88dwlkvd7gznjkqx";
     };
     meta.homepage = "https://github.com/chrisbra/NrrwRgn/";
   };
@@ -4032,24 +4056,24 @@ final: prev:
 
   nui-nvim = buildVimPluginFrom2Nix {
     pname = "nui.nvim";
-    version = "2021-11-11";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "MunifTanjim";
       repo = "nui.nvim";
-      rev = "e940b57f30f6035df690fb24b1e5c93ae6aafcd6";
-      sha256 = "0nvg3zsgqbk0gs978gzfkc57xn3wcn1mcsf6qrgc1xz4jxdd582m";
+      rev = "5799279fc8da92b38291a0a42bdb64cd17c3b42f";
+      sha256 = "06rh2sk2md0kbjr9bdx6nndx181pvmxadfhkbd6dz6j8g0z9yp75";
     };
     meta.homepage = "https://github.com/MunifTanjim/nui.nvim/";
   };
 
   null-ls-nvim = buildVimPluginFrom2Nix {
     pname = "null-ls.nvim";
-    version = "2021-11-17";
+    version = "2021-12-22";
     src = fetchFromGitHub {
       owner = "jose-elias-alvarez";
       repo = "null-ls.nvim";
-      rev = "e460ba050d074416a64ee7881b527fb87fbad981";
-      sha256 = "1nksrmh5aj2h4r845vbz9lg7lxa8cr05p4gmcccagpmq9y0fk8fn";
+      rev = "b7de45a0e62bf93f19db2b43ecded48c5763248d";
+      sha256 = "05mvqgk1a9ljqxg4zpd0a37wqpns7n1mb8dhm75ihr3wbqz4hbgm";
     };
     meta.homepage = "https://github.com/jose-elias-alvarez/null-ls.nvim/";
   };
@@ -4092,36 +4116,36 @@ final: prev:
 
   nvim-autopairs = buildVimPluginFrom2Nix {
     pname = "nvim-autopairs";
-    version = "2021-11-15";
+    version = "2021-12-18";
     src = fetchFromGitHub {
       owner = "windwp";
       repo = "nvim-autopairs";
-      rev = "1f18e79ee9b30fec25c3f32b1ed22c3290f07bb2";
-      sha256 = "0sy5p93vqbnz01blgsk085xm791iga1yk65lp147axbib7b760kq";
+      rev = "94a4fa4b9ffec88ecd742fb077a66bf8cb9c4bf1";
+      sha256 = "138yqgwavi4j4pfz5xygkxpw81lh2qyl8d1mnnrk5igrfaz05hff";
     };
     meta.homepage = "https://github.com/windwp/nvim-autopairs/";
   };
 
   nvim-base16 = buildVimPluginFrom2Nix {
     pname = "nvim-base16";
-    version = "2021-11-03";
+    version = "2021-12-02";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "nvim-base16";
-      rev = "e26952fbb030865c6d44e9875467177d7d0e1db7";
-      sha256 = "0mxf7ikqzqx54j5dc74v6c146vmhahbcbv9apshvkb6vdm23i3wq";
+      rev = "7344e741b459c527b84df05a231b7e76d8b4fde9";
+      sha256 = "0qsywl7fg8j4w57ichhgif6vph3iq9iz9i67jzpyc2v66kph0yfb";
     };
     meta.homepage = "https://github.com/RRethy/nvim-base16/";
   };
 
   nvim-bqf = buildVimPluginFrom2Nix {
     pname = "nvim-bqf";
-    version = "2021-11-13";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-bqf";
-      rev = "ee370769ea2d6da807533a4c2b8f55ef057d4477";
-      sha256 = "1xxab1pwnvlhy9mgyyvck8w3acz7cmjpqpl2mdc3z6gagqbjjrll";
+      rev = "9e2c95ae530b71bd99cfeb88d108101b0db02a5c";
+      sha256 = "16wa7nmh7ahxllbffak0jshkkcx2n3lywgnx7vazwfjndfyw7vjz";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-bqf/";
   };
@@ -4152,24 +4176,24 @@ final: prev:
 
   nvim-cmp = buildVimPluginFrom2Nix {
     pname = "nvim-cmp";
-    version = "2021-11-17";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "nvim-cmp";
-      rev = "27d4c21e8ff7a68e6abc930ff0e74a486c0026ad";
-      sha256 = "0hp88j9r7l82nx4fbg42hmv2vcfd74f72v6aizj4zdmx3xnxnyb1";
+      rev = "4a19645374b3c10538bd363e92099d94221efaea";
+      sha256 = "1x9k8wx9y7kdqnf13c2vgzq5cksdgps2b531d28bxwa88z32yddc";
     };
     meta.homepage = "https://github.com/hrsh7th/nvim-cmp/";
   };
 
   nvim-code-action-menu = buildVimPluginFrom2Nix {
     pname = "nvim-code-action-menu";
-    version = "2021-11-16";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "weilbith";
       repo = "nvim-code-action-menu";
-      rev = "d3d059082eff3eb081167f8a232b1bde54bb2bdb";
-      sha256 = "0d7imklcz39ir53nr5kr0s826yqrwhrmr5p9iabs07hshyq3khgx";
+      rev = "796d45f0ac89b9e5b6d41fb2c1fada25c1aba870";
+      sha256 = "1aadind1zxca5grs9jsawqsvkn9ijvxiqdw9v9jsq861xihsw9wl";
     };
     meta.homepage = "https://github.com/weilbith/nvim-code-action-menu/";
   };
@@ -4224,36 +4248,36 @@ final: prev:
 
   nvim-dap = buildVimPluginFrom2Nix {
     pname = "nvim-dap";
-    version = "2021-11-12";
+    version = "2021-12-22";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-dap";
-      rev = "1a87456d280e8e308df7983650a5ea2b5a6bfb63";
-      sha256 = "119cmq8bnm35l7vdlf83dkldk3jxdkdjsqw98b5hs437xrjwfhjr";
+      rev = "a6fa644f9de62c594a8a9cf6f2aaf324b5a6108b";
+      sha256 = "1ncl9f4vx382pma5x3siywc132hmns6nwj54w03b387129k25wky";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
   };
 
   nvim-dap-ui = buildVimPluginFrom2Nix {
     pname = "nvim-dap-ui";
-    version = "2021-11-06";
+    version = "2021-12-04";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "nvim-dap-ui";
-      rev = "649e0fee4f0b8dc6305dd29065c7623c3dc6a032";
-      sha256 = "110qf4gp3v6k9q2232hm2arz3c1jpb20s5vd69iqhq8nh3zvrl6a";
+      rev = "96813c9a42651b729f50f5d880a8919a155e9721";
+      sha256 = "1z53bfch6f8ld67jg2g57c29g8xhfbxlxxv1q86l62bdgy2pq15h";
     };
     meta.homepage = "https://github.com/rcarriga/nvim-dap-ui/";
   };
 
   nvim-dap-virtual-text = buildVimPluginFrom2Nix {
     pname = "nvim-dap-virtual-text";
-    version = "2021-11-02";
+    version = "2021-12-02";
     src = fetchFromGitHub {
       owner = "theHamsta";
       repo = "nvim-dap-virtual-text";
-      rev = "7ceb1a76a5049741cdd2d4d34963132737e1b5aa";
-      sha256 = "0baa746w1v9g2q3mnpq32vv1jifwx3dc04z55kjiwrf8h0qzrg0p";
+      rev = "fb176ca8cf666331fcfa75b7dcc238116d66f801";
+      sha256 = "1ksn4k2bhrc588wximrgc6z9pghvwmbkvls1999nvykzrkcpggmd";
     };
     meta.homepage = "https://github.com/theHamsta/nvim-dap-virtual-text/";
   };
@@ -4270,14 +4294,38 @@ final: prev:
     meta.homepage = "https://github.com/allendang/nvim-expand-expr/";
   };
 
+  nvim-fzf = buildVimPluginFrom2Nix {
+    pname = "nvim-fzf";
+    version = "2021-10-25";
+    src = fetchFromGitHub {
+      owner = "vijaymarupudi";
+      repo = "nvim-fzf";
+      rev = "7cc3670b00f4d6e0968289f8b3bee7481cab3e73";
+      sha256 = "1flp9y54fr94gb96x8nrvw2sx61rwwi2rzmjmipa9crl0ckj14pb";
+    };
+    meta.homepage = "https://github.com/vijaymarupudi/nvim-fzf/";
+  };
+
+  nvim-fzf-commands = buildVimPluginFrom2Nix {
+    pname = "nvim-fzf-commands";
+    version = "2021-05-31";
+    src = fetchFromGitHub {
+      owner = "vijaymarupudi";
+      repo = "nvim-fzf-commands";
+      rev = "c6188c8618ca6b579af37cbc242414e1016bcd45";
+      sha256 = "0nn04gpz3n0jqb9kyxbmipkixzp1lk2f67knxqzzzlxm27m839fy";
+    };
+    meta.homepage = "https://github.com/vijaymarupudi/nvim-fzf-commands/";
+  };
+
   nvim-gdb = buildVimPluginFrom2Nix {
     pname = "nvim-gdb";
-    version = "2021-09-29";
+    version = "2021-12-09";
     src = fetchFromGitHub {
       owner = "sakhnik";
       repo = "nvim-gdb";
-      rev = "ea474ca50d8600357d4e364178ffc0b55db499ea";
-      sha256 = "10g9n66jv9wjry57vzz4psdbddch75w1mn28a7zzlqps7k47amgp";
+      rev = "c2a0d076383b8a0991681c33efe80bcba6dd3608";
+      sha256 = "19yc51bhfaw53rc9awdr145i8k2i2gnnl3faw85afsqs9dr4hi7i";
     };
     meta.homepage = "https://github.com/sakhnik/nvim-gdb/";
   };
@@ -4296,24 +4344,24 @@ final: prev:
 
   nvim-highlite = buildVimPluginFrom2Nix {
     pname = "nvim-highlite";
-    version = "2021-11-11";
+    version = "2021-11-30";
     src = fetchFromGitHub {
       owner = "Iron-E";
       repo = "nvim-highlite";
-      rev = "c0f6d68ea245fd2efb527fe1b7874c48084d8150";
-      sha256 = "1nai09x1sc9wvz2m5j4rj6wjpdhwk88v4sapdmvb5pqvrqqylg60";
+      rev = "639c167541202fcbf41ed5cec619ce0fcf1d5ab8";
+      sha256 = "1dcwbzw6rfh5h2yxl17jy5szqp2fmjcss3sfcznis1ccdggh9wnr";
     };
     meta.homepage = "https://github.com/Iron-E/nvim-highlite/";
   };
 
   nvim-hlslens = buildVimPluginFrom2Nix {
     pname = "nvim-hlslens";
-    version = "2021-11-03";
+    version = "2021-12-15";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-hlslens";
-      rev = "4eec69c189a170bb99825e70f39c321da7baf67f";
-      sha256 = "0kwvwx2qvxgzfgzk9qp6ci0436qmcpkxxs0l2l8lyx9qghh5rbv4";
+      rev = "8119b7b846a21e87b2d6c2168f57d79540b2d304";
+      sha256 = "0mjakd4d4w680qn82s59352w275k40nimxs2g2x0b0gzqlk3wlwg";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-hlslens/";
   };
@@ -4332,16 +4380,28 @@ final: prev:
 
   nvim-jdtls = buildVimPluginFrom2Nix {
     pname = "nvim-jdtls";
-    version = "2021-11-02";
+    version = "2021-12-12";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-jdtls";
-      rev = "aac715eedc278b437d6885c7171f8bdec6e1d6ea";
-      sha256 = "1vr119w5vcid59rz4vspk3gszcv91aps0ig36ysirhnqmz1j29di";
+      rev = "47d7a9caec7338a0d038031812c4734d0c306b59";
+      sha256 = "1867cara40sjz8ph32i3kl61s8z8fbj2nib73q1hppa3lxbff9k5";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/";
   };
 
+  nvim-jqx = buildVimPluginFrom2Nix {
+    pname = "nvim-jqx";
+    version = "2021-12-03";
+    src = fetchFromGitHub {
+      owner = "gennaro-tedesco";
+      repo = "nvim-jqx";
+      rev = "03b678e5cb293d0e952a649fce3cdba02424bf57";
+      sha256 = "1bfw8s3z9nj1zxixrmnqgcqbgjil00y8isiq2ipw3rrcprxgkmix";
+    };
+    meta.homepage = "https://github.com/gennaro-tedesco/nvim-jqx/";
+  };
+
   nvim-lightbulb = buildVimPluginFrom2Nix {
     pname = "nvim-lightbulb";
     version = "2021-11-13";
@@ -4356,36 +4416,36 @@ final: prev:
 
   nvim-lint = buildVimPluginFrom2Nix {
     pname = "nvim-lint";
-    version = "2021-11-16";
+    version = "2021-12-22";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-lint";
-      rev = "c3c8a247fda421b0db1f2cbf50ab4340ba0ffc61";
-      sha256 = "1sa3mqm65aspa91vavg1ng36w51jsb5kdjsra4bjjmggwbphdz8w";
+      rev = "ae94ac712277dc77d648da262eecc3c4ea938cc3";
+      sha256 = "1s9dja4pb3nzpjvrp505y2pxckqi50pwsn4hk8d6770lw2nyk9r4";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-lint/";
   };
 
   nvim-lsp-ts-utils = buildVimPluginFrom2Nix {
     pname = "nvim-lsp-ts-utils";
-    version = "2021-11-16";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "jose-elias-alvarez";
       repo = "nvim-lsp-ts-utils";
-      rev = "825630a5d28634fbb3663d1e605ff0a82b843d81";
-      sha256 = "1zj7b0g3f9kqnpzqcvh0p9wg10y7kn5mq8vzcmwsyaiwqpdijgwv";
+      rev = "083c918f8a53c69361954e9d879113676e30c2c8";
+      sha256 = "1kpps6qpyrxnr497ynj89czgi5xh7pkblc6rggmg542zjmsnbr7z";
     };
     meta.homepage = "https://github.com/jose-elias-alvarez/nvim-lsp-ts-utils/";
   };
 
   nvim-lspconfig = buildVimPluginFrom2Nix {
     pname = "nvim-lspconfig";
-    version = "2021-11-17";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "27d2c116fdea5614f422dcbcae63da01a1415fcf";
-      sha256 = "10ip201ihd2jjs9mb0vafa7iqzxh0f0rs5s96rrpw4zaxzq49gkn";
+      rev = "f84f592816a6b0c55e2a655b56c480683ad92c63";
+      sha256 = "0933hn71qxbcn3g6g7jwhnmn9mywwfl9alnpwa9v5qwch0ardgnh";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
@@ -4402,26 +4462,50 @@ final: prev:
     meta.homepage = "https://github.com/RishabhRD/nvim-lsputils/";
   };
 
+  nvim-metals = buildVimPluginFrom2Nix {
+    pname = "nvim-metals";
+    version = "2021-12-17";
+    src = fetchFromGitHub {
+      owner = "scalameta";
+      repo = "nvim-metals";
+      rev = "2de6be8c334989e160540ab5fe35d4d34741ffed";
+      sha256 = "1vj2yxbavx30rqlx61vmz8dlr13as5jfv48098rlnch2wg1lh22b";
+    };
+    meta.homepage = "https://github.com/scalameta/nvim-metals/";
+  };
+
+  nvim-neoclip-lua = buildVimPluginFrom2Nix {
+    pname = "nvim-neoclip.lua";
+    version = "2021-12-20";
+    src = fetchFromGitHub {
+      owner = "AckslD";
+      repo = "nvim-neoclip.lua";
+      rev = "4b9c7c54d3f132ea39cac7a31143bc730f962453";
+      sha256 = "07gwp7bcpnpkir8lmcsxscyv41dac9ph5fdavz1xq5xr686c0m6k";
+    };
+    meta.homepage = "https://github.com/AckslD/nvim-neoclip.lua/";
+  };
+
   nvim-nonicons = buildVimPluginFrom2Nix {
     pname = "nvim-nonicons";
-    version = "2021-10-25";
+    version = "2021-12-06";
     src = fetchFromGitHub {
       owner = "yamatsum";
       repo = "nvim-nonicons";
-      rev = "27465e577d7871d4029e01eb7db95ca969c2054c";
-      sha256 = "1kf2093641pyxamhv0dldkm6lml1asbq3vyicgnzxbf3qks3v5xk";
+      rev = "cdb104f58c46a62ff9f484f49f8660d46db6326f";
+      sha256 = "0xqhcfp9qxnqn96ykycsyamwjjqrp7qfv7hshs9h4xa6c51yaqy4";
     };
     meta.homepage = "https://github.com/yamatsum/nvim-nonicons/";
   };
 
   nvim-notify = buildVimPluginFrom2Nix {
     pname = "nvim-notify";
-    version = "2021-11-12";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "nvim-notify";
-      rev = "54375b724637eb6f29085c582318ae1fd042e717";
-      sha256 = "1zli6vpcyk8ving7x7lh5nwgkf020rh5dixxsmiq6p8xhgi7hg53";
+      rev = "243811198d3a937be03535bbe899446f235dda75";
+      sha256 = "1c1vlialppamm4r9n4g33s3cy18nyg4r43w8rkqk9b8kcip1x7j7";
     };
     meta.homepage = "https://github.com/rcarriga/nvim-notify/";
   };
@@ -4440,38 +4524,38 @@ final: prev:
 
   nvim-scrollview = buildVimPluginFrom2Nix {
     pname = "nvim-scrollview";
-    version = "2021-10-09";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "dstein64";
       repo = "nvim-scrollview";
-      rev = "fb35d9d7b52985baac5d77ec52d6b6b35403fb8a";
-      sha256 = "013gmwrcanvsa95jgl4xd5agci7j05w9yvqayns83gxbsbl7bsjs";
+      rev = "5f35322499bc789b44d19f35ee4c23fbed5a3a89";
+      sha256 = "1nc3czp7grb9db52d2cvj81pqipk0x4918560v11b9g2kmvp34g2";
     };
     meta.homepage = "https://github.com/dstein64/nvim-scrollview/";
   };
 
   nvim-solarized-lua = buildVimPluginFrom2Nix {
     pname = "nvim-solarized-lua";
-    version = "2021-11-10";
+    version = "2021-12-02";
     src = fetchFromGitHub {
       owner = "ishan9299";
       repo = "nvim-solarized-lua";
-      rev = "05433b58825e13465b82430f2cc7b0414df2ba6c";
-      sha256 = "1w2n8zj17dj87xfbacz9kgkcws2cihnfa3640s6393gli20782kq";
+      rev = "670c7d06d658fdc10c324c5359bbec5da1bbfc47";
+      sha256 = "0lm2fvsj0cgqilz4gqlpl0kzqgaim6rscvar7b9qwx2l7zw97pxg";
     };
     meta.homepage = "https://github.com/ishan9299/nvim-solarized-lua/";
   };
 
   nvim-spectre = buildVimPluginFrom2Nix {
     pname = "nvim-spectre";
-    version = "2021-11-14";
+    version = "2021-12-11";
     src = fetchFromGitHub {
-      owner = "windwp";
+      owner = "nvim-pack";
       repo = "nvim-spectre";
-      rev = "b630e04fa176ffb4e8c188b651561973a5ace077";
-      sha256 = "1x0ndsgywkjb51y3zqhaxkrv9g7qjra6is3cxgiszl18d42g7nrd";
+      rev = "e2510d32dc80d6b5eea4df057762bbc6b2482e05";
+      sha256 = "1606wf7yhmhaksg45dz043apgxqhvkchsrj275qa6j80r31j7da6";
     };
-    meta.homepage = "https://github.com/windwp/nvim-spectre/";
+    meta.homepage = "https://github.com/nvim-pack/nvim-spectre/";
   };
 
   nvim-terminal-lua = buildVimPluginFrom2Nix {
@@ -4488,24 +4572,24 @@ final: prev:
 
   nvim-tree-lua = buildVimPluginFrom2Nix {
     pname = "nvim-tree.lua";
-    version = "2021-10-31";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-tree.lua";
-      rev = "5d8453dfbd34ab00cb3e8ce39660f9a54cdd35f3";
-      sha256 = "1r2qzajbraqv244kqd006f6rz586rdppi94wssvx8b03v56v8nb7";
+      rev = "0aec64d56c9448a039408228d410a01c41125d48";
+      sha256 = "0mj8d37i4g1wna1cjzzay2ck2nx9h9xw78vv5kv9mp1j3dmm9ayh";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/";
   };
 
   nvim-treesitter = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter";
-    version = "2021-09-17";
+    version = "2021-12-22";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "47cfda2c6711077625c90902d7722238a8294982";
-      sha256 = "14di7qm37m176r0qsbb0vmc3csya72rd5bszm6yk7lby8izfnqxa";
+      rev = "56634f49ab3d8122153c8c5582c581fb6a6af075";
+      sha256 = "1ffy9zl6k47iai4anvvghqv7vi5jqgqbp1ndjx0kagad40v6vlfp";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
@@ -4536,60 +4620,60 @@ final: prev:
 
   nvim-treesitter-refactor = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-refactor";
-    version = "2021-07-04";
+    version = "2021-12-18";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-refactor";
-      rev = "505e58a8b04596a073b326157490706ee63c3b81";
-      sha256 = "0z42rpnig6iq73d3mjfgadvqa03k02f4c89j5dp9dhpnrjja8nha";
+      rev = "a21ed4d294d2da5472ce5b70385d7871c4518a1e";
+      sha256 = "1hhl6gqq56q9lfgy581cwbhyiyqji4adbmhxmhwn7d5x0lv6bv24";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-refactor/";
   };
 
   nvim-treesitter-textobjects = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-textobjects";
-    version = "2021-07-25";
+    version = "2021-12-22";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-textobjects";
-      rev = "b100e6188c4b1e90af4066593e36a9f4ca7364b7";
-      sha256 = "1npcs5dxylny79hbkk1cnp3xp2yh4s3s6j314721k2v5mhim3dw2";
+      rev = "6ee11ac62681eb2eb8104a4ce509a9a861672cb5";
+      sha256 = "0hgay8d4lja4fk3d6xhq08n1j9ic6flzq1w003b3fpxzr6l2b0vl";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/";
   };
 
   nvim-ts-context-commentstring = buildVimPluginFrom2Nix {
     pname = "nvim-ts-context-commentstring";
-    version = "2021-11-09";
+    version = "2021-12-13";
     src = fetchFromGitHub {
       owner = "joosepalviste";
       repo = "nvim-ts-context-commentstring";
-      rev = "ce74852c36008b11dda451bfe6c2ed71c535152b";
-      sha256 = "04hd5wg3f39sn4qc958fw9inmkaj18mkgvmwkxni4qnb2y8qs9pi";
+      rev = "097df33c9ef5bbd3828105e4bee99965b758dc3f";
+      sha256 = "1q6n98kfhi4ra2rgijv32z0m63r6waih8j8zdy0g4ffk4ycqxsf0";
     };
     meta.homepage = "https://github.com/joosepalviste/nvim-ts-context-commentstring/";
   };
 
   nvim-ts-rainbow = buildVimPluginFrom2Nix {
     pname = "nvim-ts-rainbow";
-    version = "2021-11-10";
+    version = "2021-11-21";
     src = fetchFromGitHub {
       owner = "p00f";
       repo = "nvim-ts-rainbow";
-      rev = "5cef624eb407449a313b63cdda66720e9860821f";
-      sha256 = "0r39ahrk54smb9ngb4s11kxjncrsarclrdjvaazdi82260saxgb9";
+      rev = "54ee09f540935c604c9a3d4aed83b7f5314f2caa";
+      sha256 = "1q70przqvi71vyk9wspaamvv6kkh2pd9m1w4ngxkgcxbf9wm649k";
     };
     meta.homepage = "https://github.com/p00f/nvim-ts-rainbow/";
   };
 
   nvim-web-devicons = buildVimPluginFrom2Nix {
     pname = "nvim-web-devicons";
-    version = "2021-11-12";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-web-devicons";
-      rev = "f936ff3e1f9d58ec0caf0bd398e9675b54fe292e";
-      sha256 = "1vzrsr2m75nky1nz5hji7chqcc3d601bkx7raq88pjw4qa3s7b1r";
+      rev = "ac71ca88b1136e1ecb2aefef4948130f31aa40d1";
+      sha256 = "1fgl4cyichzlrl6dc2mp362kncc4aiy10svzzcqad168aj2x8rhd";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-web-devicons/";
   };
@@ -4692,12 +4776,12 @@ final: prev:
 
   onedarkpro-nvim = buildVimPluginFrom2Nix {
     pname = "onedarkpro.nvim";
-    version = "2021-11-16";
+    version = "2021-11-30";
     src = fetchFromGitHub {
       owner = "olimorris";
       repo = "onedarkpro.nvim";
-      rev = "fd4dd7a09bac975c94612ce3c8fa98a51bcce412";
-      sha256 = "0drjpfvkk9mmp7v2v16vwc3halxbwkwc95n0x0cz47lp2q3b7kss";
+      rev = "d644c85b0193a76c86fe591e378329987f984661";
+      sha256 = "19rw1n01qlfil6i2c0m1md12dql6caplx7apqxbgnwxbbawc4ps1";
     };
     meta.homepage = "https://github.com/olimorris/onedarkpro.nvim/";
   };
@@ -4738,38 +4822,38 @@ final: prev:
     meta.homepage = "https://github.com/tyru/open-browser.vim/";
   };
 
-  orgmode-nvim = buildVimPluginFrom2Nix {
-    pname = "orgmode.nvim";
-    version = "2021-11-14";
+  orgmode = buildVimPluginFrom2Nix {
+    pname = "orgmode";
+    version = "2021-12-18";
     src = fetchFromGitHub {
-      owner = "kristijanhusak";
-      repo = "orgmode.nvim";
-      rev = "25e1fec55362124a8300108c88bd7127e09dad03";
-      sha256 = "0yhdyiwbwwg7m57983pnlawjgzm40dg77jy8dk4gb2183ldk8srs";
+      owner = "nvim-orgmode";
+      repo = "orgmode";
+      rev = "8e3edfa5066db396a2f51f2e90f56c5914b00840";
+      sha256 = "07l5x98fxzccapmi9zca332h76gj8x4g0nkq6bb8zzz05ylczfwy";
     };
-    meta.homepage = "https://github.com/kristijanhusak/orgmode.nvim/";
+    meta.homepage = "https://github.com/nvim-orgmode/orgmode/";
   };
 
   package-info-nvim = buildVimPluginFrom2Nix {
     pname = "package-info.nvim";
-    version = "2021-11-13";
+    version = "2021-12-11";
     src = fetchFromGitHub {
       owner = "vuki656";
       repo = "package-info.nvim";
-      rev = "8656a9305afe828b7b2664a571d309090043a0ac";
-      sha256 = "0w5n1523d8la66d43w735lj57gmksj936kvlhwggmqyv64zw7jfz";
+      rev = "fad6afade384ccadcfd0e08f07a022eee6eaae28";
+      sha256 = "0nk3v1m0asn0z5gxszsgi6mv81vvd301pfcsqklkm23cryl4zwd4";
     };
     meta.homepage = "https://github.com/vuki656/package-info.nvim/";
   };
 
   packer-nvim = buildVimPluginFrom2Nix {
     pname = "packer.nvim";
-    version = "2021-11-03";
+    version = "2021-12-02";
     src = fetchFromGitHub {
       owner = "wbthomason";
       repo = "packer.nvim";
-      rev = "7f62848f3a92eac61ae61def5f59ddb5e2cc6823";
-      sha256 = "1sgrwm271pnvw9anl1y8x94bz0w7qvi3bdiqh1wpwvsqic73frq3";
+      rev = "851c62c5ecd3b5adc91665feda8f977e104162a5";
+      sha256 = "1d5zydsxgf8jfl1jy0l1w3xyz57a0p1irmc6d4l0d3wcbr5gbw5r";
     };
     meta.homepage = "https://github.com/wbthomason/packer.nvim/";
   };
@@ -4834,6 +4918,18 @@ final: prev:
     meta.homepage = "https://github.com/andsild/peskcolor.vim/";
   };
 
+  pgsql-vim = buildVimPluginFrom2Nix {
+    pname = "pgsql.vim";
+    version = "2021-12-08";
+    src = fetchFromGitHub {
+      owner = "lifepillar";
+      repo = "pgsql.vim";
+      rev = "736c9899163a7f4e212c1675d8a1fe42570a027a";
+      sha256 = "0z79jpjncdfc1a6c2992g9q0qrsr90cpp1zh07nr8pzp9rqzgjsw";
+    };
+    meta.homepage = "https://github.com/lifepillar/pgsql.vim/";
+  };
+
   pig-vim = buildVimPluginFrom2Nix {
     pname = "pig.vim";
     version = "2017-06-08";
@@ -4872,12 +4968,12 @@ final: prev:
 
   plenary-nvim = buildVimPluginFrom2Nix {
     pname = "plenary.nvim";
-    version = "2021-11-14";
+    version = "2021-12-15";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "plenary.nvim";
-      rev = "1c31adb35fcebe921f65e5c6ff6d5481fa5fa5ac";
-      sha256 = "075b6ak0hl3wqhsy1qmi91s30lh6p6vpbvqllzvyhlz3pxabh314";
+      rev = "a672e11c816d4a91ef01253ba1a2567d20e08e55";
+      sha256 = "1kqzspclkx7mpcpm2xb0fvzhv02wj7vms7xh9fjh64hvg2r2q21v";
     };
     meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
   };
@@ -4909,12 +5005,12 @@ final: prev:
 
   popup-nvim = buildVimPluginFrom2Nix {
     pname = "popup.nvim";
-    version = "2021-08-09";
+    version = "2021-11-18";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "popup.nvim";
-      rev = "f91d80973f80025d4ed00380f2e06c669dfda49d";
-      sha256 = "1pp1d6kbx8yn4cg2zs8rynvvpa8y89ryr8rial9csg26v2z22z95";
+      rev = "b7404d35d5d3548a82149238289fa71f7f6de4ac";
+      sha256 = "093r3cy02gfp7sphrag59n3fjhns7xdsam1ngiwhwlig3bzv7mbl";
     };
     meta.homepage = "https://github.com/nvim-lua/popup.nvim/";
   };
@@ -4981,24 +5077,25 @@ final: prev:
 
   purescript-vim = buildVimPluginFrom2Nix {
     pname = "purescript-vim";
-    version = "2020-10-08";
+    version = "2021-04-21";
     src = fetchFromGitHub {
       owner = "purescript-contrib";
       repo = "purescript-vim";
-      rev = "5b4fa3e2970be1353f7d77735c0c9b42dc9885f3";
-      sha256 = "11d2jfzimdi6idvs61gjhy7d1g8yk90dfvvw5m8rn9620xrypbgn";
+      rev = "d493b57406d2742f6f6c6545de5a3492f2e5b888";
+      sha256 = "1qnf8lg4a6xxn335z57nqb4yp7ij62yr408nbc8m6xwnznck3wa7";
     };
     meta.homepage = "https://github.com/purescript-contrib/purescript-vim/";
   };
 
   python-mode = buildVimPluginFrom2Nix {
     pname = "python-mode";
-    version = "2018-04-29";
+    version = "2021-11-14";
     src = fetchFromGitHub {
       owner = "python-mode";
       repo = "python-mode";
-      rev = "f94b0d7b21714f950f5878b430fbfde21c3b7ad9";
-      sha256 = "0zxsa1agigzb9adrwq54pdyl984drdqzz3kkixaijkq77kkdvj0n";
+      rev = "50ced6be5ceab94a11615b5abb89ff28b0e73a9e";
+      sha256 = "023mrdc5ih1q3dz6qm1f8a97kgwbnvfjbh7z3k1r4s9c5wvg9hyz";
+      fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/python-mode/python-mode/";
   };
@@ -5113,16 +5210,28 @@ final: prev:
 
   ranger-vim = buildVimPluginFrom2Nix {
     pname = "ranger.vim";
-    version = "2021-04-25";
+    version = "2021-12-13";
     src = fetchFromGitHub {
       owner = "rafaqz";
       repo = "ranger.vim";
-      rev = "aa2394bd429e98303f2273011f0429ce92105960";
-      sha256 = "0kfhzamryaxhzrwg2rqipcbrnfxnjrfk2bk4f0z27a2hk6c0r7b9";
+      rev = "527c7c5371667f7848da91c2abc75c3998cbf1a0";
+      sha256 = "1rfzv6lxbhfk4xwdmhpc9b0xamfa2lrzc1xi630v1hakscjdjcm1";
     };
     meta.homepage = "https://github.com/rafaqz/ranger.vim/";
   };
 
+  rcshell-vim = buildVimPluginFrom2Nix {
+    pname = "rcshell.vim";
+    version = "2014-12-29";
+    src = fetchFromGitHub {
+      owner = "vim-scripts";
+      repo = "rcshell.vim";
+      rev = "6b307c6e6e6948fbb27146b0f41b5fb2ddf8e1a8";
+      sha256 = "0dj6gjq213ljshnncal3ywzv8ply2lzqmvpzaf7vdsd6r6vss3ch";
+    };
+    meta.homepage = "https://github.com/vim-scripts/rcshell.vim/";
+  };
+
   readline-vim = buildVimPluginFrom2Nix {
     pname = "readline.vim";
     version = "2019-12-28";
@@ -5137,36 +5246,36 @@ final: prev:
 
   Recover-vim = buildVimPluginFrom2Nix {
     pname = "Recover.vim";
-    version = "2021-09-29";
+    version = "2015-08-14";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "Recover.vim";
-      rev = "5b496fbf6d2b989d93f1748340d1a43c6d80766f";
-      sha256 = "0k3xjnv57gsckias6l0lig87vdxlwdlvvly698b882kpgw2igih6";
+      rev = "efa491f6121f65e025f42d79a93081abb8db69d4";
+      sha256 = "17szim82bwnhf9q4n0n4jfmqkmhq6p0lh0j4y77a2x6lkn0pns5s";
     };
     meta.homepage = "https://github.com/chrisbra/Recover.vim/";
   };
 
   refactoring-nvim = buildVimPluginFrom2Nix {
     pname = "refactoring.nvim";
-    version = "2021-11-17";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "theprimeagen";
       repo = "refactoring.nvim";
-      rev = "9f730d6a87a63c7bd8cbc460882ca7e673da3cf1";
-      sha256 = "1qqan1g34k11kjf9j50yfdzlgagjv3fm5yxlla9kxg2pz13b2jfc";
+      rev = "22a46b0e27e62cad61e1dabb106197575470ef85";
+      sha256 = "0c1ihgwf1kvcsq20k5y6nk2mxs99c4la0l5b06pi5k316zkd45gc";
     };
     meta.homepage = "https://github.com/theprimeagen/refactoring.nvim/";
   };
 
   registers-nvim = buildVimPluginFrom2Nix {
     pname = "registers.nvim";
-    version = "2021-10-22";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "tversteeg";
       repo = "registers.nvim";
-      rev = "4d1f3525c6f9be4297e99e6aed515af3677d7241";
-      sha256 = "1lw8nwa8z8d8r1i9wg0mm4qdfv17ijzw7iadg2n980dkl6clh1ag";
+      rev = "fc1778fd8d847c2510763e69d5631fac382fd31d";
+      sha256 = "11mk4ypwcy7r026nbb9b0pdzj7bc4z2saysv9mv4xbramgdzbnm6";
     };
     meta.homepage = "https://github.com/tversteeg/registers.nvim/";
   };
@@ -5209,12 +5318,12 @@ final: prev:
 
   rnvimr = buildVimPluginFrom2Nix {
     pname = "rnvimr";
-    version = "2021-11-04";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "rnvimr";
-      rev = "ded689fbf40d8ab939d2596427cdb623fbc0e88d";
-      sha256 = "0jd3ffkgmcl2brdgz68zdwaifgfvvph3j58xmm4yq8dpl1h7k4xr";
+      rev = "f1f16e9b6e2f702990cc1eebbf6417eb451e417e";
+      sha256 = "1bvdp6h81i2mfiyyk2yf2qr9d1aln37kvb9vjk0bfbhiilndfx9r";
     };
     meta.homepage = "https://github.com/kevinhwang91/rnvimr/";
   };
@@ -5269,12 +5378,12 @@ final: prev:
 
   rust-tools-nvim = buildVimPluginFrom2Nix {
     pname = "rust-tools.nvim";
-    version = "2021-11-16";
+    version = "2021-12-09";
     src = fetchFromGitHub {
       owner = "simrat39";
       repo = "rust-tools.nvim";
-      rev = "9f98538d36b5f2e3ac1a11a524b52d11bafdff74";
-      sha256 = "0dfian3xi8cn4r537c8jp5qlnhgvppifgr9crrylvgj28y7vj9mw";
+      rev = "7b4d155dd47e211ee661cbb4c7969b245f768edb";
+      sha256 = "11z6z8nhi4a59mxny5b9scc831qbrb5kjr318c9cdki6rav0hvqq";
     };
     meta.homepage = "https://github.com/simrat39/rust-tools.nvim/";
   };
@@ -5317,12 +5426,12 @@ final: prev:
 
   SchemaStore-nvim = buildVimPluginFrom2Nix {
     pname = "SchemaStore.nvim";
-    version = "2021-11-16";
+    version = "2021-12-22";
     src = fetchFromGitHub {
       owner = "b0o";
       repo = "SchemaStore.nvim";
-      rev = "fa321a8512c199e04e3361fa0679198e1176dc68";
-      sha256 = "1ahsldfzqzwy83rhibyscr745s54571h6qmcmaz96rbv6k2wqyb5";
+      rev = "82b039aa402c9d138c3c4c16b1465c8a3be66117";
+      sha256 = "1z8rlwq4190gba9610p73i2c082avafxjbwmdw5hmqfpplciaz09";
     };
     meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
   };
@@ -5389,12 +5498,12 @@ final: prev:
 
   seoul256-vim = buildVimPluginFrom2Nix {
     pname = "seoul256.vim";
-    version = "2021-11-08";
+    version = "2021-11-22";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "seoul256.vim";
-      rev = "538742074ec5cac2e84c383f02b85b368d35df9c";
-      sha256 = "0pcgx5ng3snfvcspfi62qbsg5pd10y79r3j21cn1g5rr5ck7zl7a";
+      rev = "57e545942fff2f796f26715bc0e937243dfa30c0";
+      sha256 = "06k8fwi44836vsrcghn1s9wp6grrbddy8fjf60cr5nr29zr0h2gw";
     };
     meta.homepage = "https://github.com/junegunn/seoul256.vim/";
   };
@@ -5534,12 +5643,12 @@ final: prev:
 
   sonokai = buildVimPluginFrom2Nix {
     pname = "sonokai";
-    version = "2021-11-11";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "sonokai";
-      rev = "30dd4ae6f844ab0f53ba93eea61068f87886eb03";
-      sha256 = "0hwcar6c6n3fvli9pmx1ycvk4128f47hl07c7y7hxzy2rks7s3j8";
+      rev = "5488b3881c3348689a6ef842653b9061a503a36f";
+      sha256 = "09l4n0cna4nz03andwmwvz0316vqzkngsk8qhxbm7zn0xra1y9cl";
     };
     meta.homepage = "https://github.com/sainnhe/sonokai/";
   };
@@ -5655,24 +5764,24 @@ final: prev:
 
   sqlite-lua = buildVimPluginFrom2Nix {
     pname = "sqlite.lua";
-    version = "2021-09-29";
+    version = "2021-12-20";
     src = fetchFromGitHub {
       owner = "tami5";
       repo = "sqlite.lua";
-      rev = "b86857771be23e8a64562518a889b9b568571d79";
-      sha256 = "0wx96x4bjg5mrz28z0hilhqgdzj3jvjwaxirfcd7vdwd4g6bxpml";
+      rev = "3855b4ae6f20b73f8694f48b82ccc73a99d45b39";
+      sha256 = "1ymzmlkh0hhhvsgbzim91yr9ga8j1dgmfi2mmwpnhvvmf2ycr5xz";
     };
     meta.homepage = "https://github.com/tami5/sqlite.lua/";
   };
 
   srcery-vim = buildVimPluginFrom2Nix {
     pname = "srcery-vim";
-    version = "2021-11-17";
+    version = "2021-11-29";
     src = fetchFromGitHub {
       owner = "srcery-colors";
       repo = "srcery-vim";
-      rev = "3d86afaa61aa45ca8d849494d9f8ceb5fc424353";
-      sha256 = "16wx3wgmrslpsm1h5fskik2lkas390fj2gjz3vwii4c5mz2ijr9m";
+      rev = "fca1c02b29d5f54f063122270f3e5ea8777ca958";
+      sha256 = "0a5rra4al18m3f175awz118gilg3cqx8i3k1mr0657n5hvkxbs9d";
     };
     meta.homepage = "https://github.com/srcery-colors/srcery-vim/";
   };
@@ -5691,12 +5800,12 @@ final: prev:
 
   stabilize-nvim = buildVimPluginFrom2Nix {
     pname = "stabilize.nvim";
-    version = "2021-11-13";
+    version = "2021-12-22";
     src = fetchFromGitHub {
       owner = "luukvbaal";
       repo = "stabilize.nvim";
-      rev = "0026672d4b6fc922bd6f80df9a2858ce1e8cc0ed";
-      sha256 = "0667yh9yprym7vakm83x174srb2x2ch9q97137qlj28acks3wnqh";
+      rev = "16d1d235f0b05beb423d8b5e4a32044441e7e8ff";
+      sha256 = "00vaxyrji34xr0lhlanrd1sbbnrnvx93k6mwff0hmxq05m4r665x";
     };
     meta.homepage = "https://github.com/luukvbaal/stabilize.nvim/";
   };
@@ -5787,12 +5896,12 @@ final: prev:
 
   symbols-outline-nvim = buildVimPluginFrom2Nix {
     pname = "symbols-outline.nvim";
-    version = "2021-10-21";
+    version = "2021-12-09";
     src = fetchFromGitHub {
       owner = "simrat39";
       repo = "symbols-outline.nvim";
-      rev = "552b67993ed959993279e0b0f8a1da9f3c5e6fc0";
-      sha256 = "051505dmgcl3hgkmbaszz5l8m9j0fx4jwc2xffgkryxgqwsm4j8s";
+      rev = "034792838579c4b1515c8a5037aba58ecd1d9b35";
+      sha256 = "0h5n03sk89pv4cnlyfvf1sfdp2d7ja43nbdcd52s6lrazkqz204g";
     };
     meta.homepage = "https://github.com/simrat39/symbols-outline.nvim/";
   };
@@ -5809,6 +5918,18 @@ final: prev:
     meta.homepage = "https://github.com/vim-syntastic/syntastic/";
   };
 
+  tabline-nvim = buildVimPluginFrom2Nix {
+    pname = "tabline.nvim";
+    version = "2021-12-15";
+    src = fetchFromGitHub {
+      owner = "kdheepak";
+      repo = "tabline.nvim";
+      rev = "08022d401cb158ff949c3e00ce46c7a9d7d11357";
+      sha256 = "0c9hqi5a6xbbb4xk8smaw019g484wkigswm05ayfnk7xb0bg7drl";
+    };
+    meta.homepage = "https://github.com/kdheepak/tabline.nvim/";
+  };
+
   tabmerge = buildVimPluginFrom2Nix {
     pname = "tabmerge";
     version = "2010-10-18";
@@ -5872,24 +5993,24 @@ final: prev:
 
   tagalong-vim = buildVimPluginFrom2Nix {
     pname = "tagalong.vim";
-    version = "2021-10-17";
+    version = "2021-11-20";
     src = fetchFromGitHub {
       owner = "AndrewRadev";
       repo = "tagalong.vim";
-      rev = "18c010e0f28fea012f537bc1abd468a063c36b9c";
-      sha256 = "0qq1saqkk0cd09zppz469idzvl5d0aagq5gw908whz5dd72yl8al";
+      rev = "e9f58f764bbbd7e8de61785c4c5ee523727f06a2";
+      sha256 = "0lkkr42igsnfa5pr55q5a8kh1ggbl6ijig8ppcqs1pmhwwwyzkba";
     };
     meta.homepage = "https://github.com/AndrewRadev/tagalong.vim/";
   };
 
   tagbar = buildVimPluginFrom2Nix {
     pname = "tagbar";
-    version = "2021-09-28";
+    version = "2021-12-08";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "tagbar";
-      rev = "b6669c7c9de542c53f2d19a806abb7610e9ef813";
-      sha256 = "07nzjcp714g2jd9ys7md78yvxq2mz6s6yb06v1yxn5qfnlc7sjxk";
+      rev = "0441c1c6d9b39249503bc816c7a4e5895f72729e";
+      sha256 = "0mv8pqh3llygz2b03sjklw5m1m6vdvarxyiw8kcpl4icxmc2hq19";
     };
     meta.homepage = "https://github.com/preservim/tagbar/";
   };
@@ -5944,24 +6065,24 @@ final: prev:
 
   telescope-cheat-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-cheat.nvim";
-    version = "2021-09-24";
+    version = "2021-12-05";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-cheat.nvim";
-      rev = "4a58b92fc70af622ddc115f843b0e552ca5bd6ea";
-      sha256 = "132drgpak97sbwjma6h7zwflg386xhqmdb3rqvzgxav36p9f0xsw";
+      rev = "8a169767c19db2f2ef2fb3fffe6adbac5a630282";
+      sha256 = "0x68zb1x1v7dkrbgz88wh9ffij0ngjr23k5axxhhi07ppynmhvag";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-cheat.nvim/";
   };
 
   telescope-coc-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-coc.nvim";
-    version = "2021-10-13";
+    version = "2021-12-15";
     src = fetchFromGitHub {
       owner = "fannheyward";
       repo = "telescope-coc.nvim";
-      rev = "fc72e26b7a47e99e8ccdc21d76fd2ebc18fd34e2";
-      sha256 = "0f41f85m8s8smbqin9cflzkvd9cyknjps8hix566cfvx3qsx0ib7";
+      rev = "3f34f0c3ce29b0d738924f9bd15a68333dd35d45";
+      sha256 = "0hsm2zrnh0d7682jvd16lp7864w6mb76kxc8i0hzxk2m34qxpwx7";
     };
     meta.homepage = "https://github.com/fannheyward/telescope-coc.nvim/";
   };
@@ -5980,24 +6101,24 @@ final: prev:
 
   telescope-frecency-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-frecency.nvim";
-    version = "2021-10-04";
+    version = "2021-12-06";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-frecency.nvim";
-      rev = "4c46d468595d28d92bf340256e6cbbc3748ae6f0";
-      sha256 = "1kkmac237n0if5hssjxw1gwdwdrhaf4kppg5zrpaqgva5bgg5idj";
+      rev = "979a6f3d882b7b5352cc6a751faa9c9427d40e74";
+      sha256 = "0fy357m0pb1r3ficlkf89hcl4p8pxqr5il83zv5kzdai4zdnqwa8";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-frecency.nvim/";
   };
 
   telescope-fzf-native-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-fzf-native.nvim";
-    version = "2021-09-15";
+    version = "2021-11-24";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-fzf-native.nvim";
-      rev = "59e38e1661ffdd586cb7fc22ca0b5a05c7caf988";
-      sha256 = "0ipdrzivz04921i1l81bc1xck5smi0c61isfj5g8zyl0mwa0dvrm";
+      rev = "b8662b076175e75e6497c59f3e2799b879d7b954";
+      sha256 = "0wj7ip9c17m4ij9sw5rq1bqy5hb367b32iz9b14pgg110cvfgpw1";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-fzf-native.nvim/";
   };
@@ -6027,14 +6148,26 @@ final: prev:
     meta.homepage = "https://github.com/nvim-telescope/telescope-fzy-native.nvim/";
   };
 
+  telescope-lsp-handlers-nvim = buildVimPluginFrom2Nix {
+    pname = "telescope-lsp-handlers.nvim";
+    version = "2021-09-07";
+    src = fetchFromGitHub {
+      owner = "gbrlsnchs";
+      repo = "telescope-lsp-handlers.nvim";
+      rev = "d6d5983b0131ee2c386ca9e349f6621e12d971cb";
+      sha256 = "1x51mlj1c3cwmcjqssh89049q91423jxm3rv8s25pcw493zb2x6b";
+    };
+    meta.homepage = "https://github.com/gbrlsnchs/telescope-lsp-handlers.nvim/";
+  };
+
   telescope-project-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-project.nvim";
-    version = "2021-10-22";
+    version = "2021-11-20";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-project.nvim";
-      rev = "50ae840e22659c68468bec1c9d3df4467255a512";
-      sha256 = "0y014s942f0r0g5w01ib90fappz9wsjq509is8qrvq9zw7dlhk1z";
+      rev = "ad33c9eb67de635ded67069af7552d5162497b1e";
+      sha256 = "1m46h973wvr6bkb69msd9sj6413315qw2nndpr6rgk8vl2hd1vrr";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-project.nvim/";
   };
@@ -6051,26 +6184,38 @@ final: prev:
     meta.homepage = "https://github.com/nvim-telescope/telescope-symbols.nvim/";
   };
 
+  telescope-vim-bookmarks-nvim = buildVimPluginFrom2Nix {
+    pname = "telescope-vim-bookmarks.nvim";
+    version = "2021-08-12";
+    src = fetchFromGitHub {
+      owner = "tom-anders";
+      repo = "telescope-vim-bookmarks.nvim";
+      rev = "b7a436eba6102c2bc73f49766a12e79d24ab8fb5";
+      sha256 = "0lak83b8y963hv61z2yfi1nyaapvq2hnhpcx7bc6h8v4jzyjis0n";
+    };
+    meta.homepage = "https://github.com/tom-anders/telescope-vim-bookmarks.nvim/";
+  };
+
   telescope-z-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-z.nvim";
-    version = "2021-10-10";
+    version = "2021-12-06";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-z.nvim";
-      rev = "11cb74a421156a39c41e480d5dba3fbcaf35f84f";
-      sha256 = "06gznf97xl08czifv6lcb1nd00lmqb85phdxh5p7r38hjr4lfvah";
+      rev = "6b67c31f007720ffc53360cb91bf0aa0a41408f3";
+      sha256 = "11zsvwrkakrxagkwvapv5d53fn91yl7m0kb6c0ij68qpjbhc8ljv";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-z.nvim/";
   };
 
   telescope-nvim = buildVimPluginFrom2Nix {
     pname = "telescope.nvim";
-    version = "2021-11-15";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope.nvim";
-      rev = "9ac89ebf6755e9a3f4bae86625ec76106526e57b";
-      sha256 = "0bljlg2hwa531rp53hwx1w06awksbhxl4lm672rn74sfaxqnzv87";
+      rev = "9aaaa0c5f3eb665b51bbcafda084de4b0952fef0";
+      sha256 = "12gl563vc70grq0h583cnfnjsnj121s0a00ddgjxncrg69mssy0x";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
   };
@@ -6147,6 +6292,18 @@ final: prev:
     meta.homepage = "https://github.com/itchyny/thumbnail.vim/";
   };
 
+  timestamp-vim = buildVimPluginFrom2Nix {
+    pname = "timestamp.vim";
+    version = "2010-11-06";
+    src = fetchFromGitHub {
+      owner = "vim-scripts";
+      repo = "timestamp.vim";
+      rev = "0437f9bddd4e699e8e9de176daacec234d42b56c";
+      sha256 = "1dvssbmz7xm4p83jmsqalkshbrk67cacsjvxjpnlw870zf2hqc8p";
+    };
+    meta.homepage = "https://github.com/vim-scripts/timestamp.vim/";
+  };
+
   tlib_vim = buildVimPluginFrom2Nix {
     pname = "tlib_vim";
     version = "2021-07-17";
@@ -6185,12 +6342,12 @@ final: prev:
 
   todo-comments-nvim = buildVimPluginFrom2Nix {
     pname = "todo-comments.nvim";
-    version = "2021-10-22";
+    version = "2021-12-11";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "todo-comments.nvim";
-      rev = "9983edc5ef38c7a035c17c85f60ee13dbd75dcc8";
-      sha256 = "177syll14r0s7hbdv34rnjwc1r8gg7avcz6g9g08j1qzbb3sijh3";
+      rev = "672cd22bd15928434374ac52d0cf38dd250231df";
+      sha256 = "10cydwr1gwjm8d2isij3nshyicxdjsaf47ijbmfrzl64rscmm9yp";
     };
     meta.homepage = "https://github.com/folke/todo-comments.nvim/";
   };
@@ -6210,24 +6367,24 @@ final: prev:
 
   toggleterm-nvim = buildVimPluginFrom2Nix {
     pname = "toggleterm.nvim";
-    version = "2021-11-15";
+    version = "2021-11-24";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "toggleterm.nvim";
-      rev = "ff168c8218b963cc7fc9d80b684d840488839bb5";
-      sha256 = "09ap50nln9130h6px3x0df3vxlc09iyl419hnr8qf75qa58gbhmr";
+      rev = "265bbff68fbb8b2a5fb011272ec469850254ec9f";
+      sha256 = "0xqnnd4wbcyd0akx8bk3dw5cghlg3bf255qiq0p8mbmlc5rixyzq";
     };
     meta.homepage = "https://github.com/akinsho/toggleterm.nvim/";
   };
 
   tokyonight-nvim = buildVimPluginFrom2Nix {
     pname = "tokyonight.nvim";
-    version = "2021-10-22";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "tokyonight.nvim";
-      rev = "2981e4bd0919305675d8d665f9a20281bb33ed06";
-      sha256 = "15kv5g1srqsayryf3x469sl2bgaq69ni31imp7yi7dfvmzlxf6q1";
+      rev = "d5619991367bda99e0a0f44fd07e7925c774c9ca";
+      sha256 = "18qxvg2chwjf6rz3v0lbj3p4cbfzys3c72pmbm3iss9qfkk40661";
     };
     meta.homepage = "https://github.com/folke/tokyonight.nvim/";
   };
@@ -6270,12 +6427,12 @@ final: prev:
 
   trouble-nvim = buildVimPluginFrom2Nix {
     pname = "trouble.nvim";
-    version = "2021-10-22";
+    version = "2021-12-15";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "trouble.nvim";
-      rev = "756f09de113a775ab16ba6d26c090616b40a999d";
-      sha256 = "016aivnqq9lh33in5611phhl7h6sz9xqgmiaq5swk4pk7vyl4nqq";
+      rev = "aae12e7b23b3a2b8337ec5b1d6b7b4317aa3929b";
+      sha256 = "10wcpyb5ag72063b16n8jibxz5f0q6c5vvjpnxq9gv320b0sd07a";
     };
     meta.homepage = "https://github.com/folke/trouble.nvim/";
   };
@@ -6342,12 +6499,12 @@ final: prev:
 
   ultisnips = buildVimPluginFrom2Nix {
     pname = "ultisnips";
-    version = "2021-08-26";
+    version = "2021-11-23";
     src = fetchFromGitHub {
       owner = "SirVer";
       repo = "ultisnips";
-      rev = "53e1921e3ef015ef658e540c0aa9c4835f9c18a6";
-      sha256 = "1ayx52rc8gki3qj6j88ij1klasn6iggn035cgmp0vvspcsrs795c";
+      rev = "2c83e40ce66814bf813457bb58ea96184ab9bb81";
+      sha256 = "0bldpwjl7jbjdzz7ds9yyr351rdfh66z15dnbw12sicjac76qfin";
     };
     meta.homepage = "https://github.com/SirVer/ultisnips/";
   };
@@ -6424,6 +6581,18 @@ final: prev:
     meta.homepage = "https://github.com/KabbAmine/vCoolor.vim/";
   };
 
+  venn-nvim = buildVimPluginFrom2Nix {
+    pname = "venn.nvim";
+    version = "2021-10-19";
+    src = fetchFromGitHub {
+      owner = "jbyuki";
+      repo = "venn.nvim";
+      rev = "d5a9c73fe7772c11414fc52acbb1d1bdb1ebc70f";
+      sha256 = "1mzxvx1vqnm89yzzy6n3s30y9w7s38lbjhnwdf4diy0kdzyq8x06";
+    };
+    meta.homepage = "https://github.com/jbyuki/venn.nvim/";
+  };
+
   verilog_systemverilog-vim = buildVimPluginFrom2Nix {
     pname = "verilog_systemverilog.vim";
     version = "2021-01-16";
@@ -6438,12 +6607,12 @@ final: prev:
 
   vifm-vim = buildVimPluginFrom2Nix {
     pname = "vifm.vim";
-    version = "2021-11-17";
+    version = "2021-12-22";
     src = fetchFromGitHub {
       owner = "vifm";
       repo = "vifm.vim";
-      rev = "31c80d4f77056e89cabd9ea3e617feea076499f8";
-      sha256 = "0p64fr5l5khs4p7d677zkjq6j81mxkh5aailzk9jr82q5sskv3wf";
+      rev = "6472c7d8cc5cf7176de89a91074b8574585ee4e3";
+      sha256 = "0ficybz4kbr2zakgxh90v7af219y4wck18wibyvvhlr3f5d9b2br";
     };
     meta.homepage = "https://github.com/vifm/vifm.vim/";
   };
@@ -6702,12 +6871,12 @@ final: prev:
 
   vim-airline = buildVimPluginFrom2Nix {
     pname = "vim-airline";
-    version = "2021-11-12";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "4b96f58902a34abda87fd3105e9d47a08801a891";
-      sha256 = "05fn2485098kml90n5wc0qla7wwjcrz0lkhkr9qgdv4bvc9g3hyn";
+      rev = "77d651ef1331797ee4af0b8249e54a9d9d1a18e9";
+      sha256 = "0wzhpmflp6gqwng5daw05v5ncfrknwq1hpl25jkg6d56rm37kq0c";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline/";
   };
@@ -6798,12 +6967,12 @@ final: prev:
 
   vim-argwrap = buildVimPluginFrom2Nix {
     pname = "vim-argwrap";
-    version = "2021-06-11";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "FooSoft";
       repo = "vim-argwrap";
-      rev = "f1c1d2b0c763ed77f9b9f2515ffff99a72c6a757";
-      sha256 = "03mnvb9sb1angzyyhm7d708yzb26bnrqv1x7dy67r1b6rflvv4wz";
+      rev = "c5de0769d8c00817d42ed6f1b2e7ea4cca2cbc8d";
+      sha256 = "1qp21k9dlgh5gvd4x393xkalzfj36rchn17rg9jy3gij88p2xmbn";
     };
     meta.homepage = "https://github.com/FooSoft/vim-argwrap/";
   };
@@ -6820,6 +6989,18 @@ final: prev:
     meta.homepage = "https://github.com/haya14busa/vim-asterisk/";
   };
 
+  vim-asymptote = buildVimPluginFrom2Nix {
+    pname = "vim-asymptote";
+    version = "2014-06-26";
+    src = fetchFromGitHub {
+      owner = "hura";
+      repo = "vim-asymptote";
+      rev = "2c59b7d173bf3837c1378e60b0c51d911cdbe15c";
+      sha256 = "0j4hrirssgnh37crl3yvy2vxf7wigdir860z1qvn1m72hld8n32y";
+    };
+    meta.homepage = "https://github.com/hura/vim-asymptote/";
+  };
+
   vim-auto-save = buildVimPluginFrom2Nix {
     pname = "vim-auto-save";
     version = "2021-10-15";
@@ -6954,12 +7135,12 @@ final: prev:
 
   vim-buffergator = buildVimPluginFrom2Nix {
     pname = "vim-buffergator";
-    version = "2018-05-02";
+    version = "2021-11-28";
     src = fetchFromGitHub {
       owner = "jeetsukumaran";
       repo = "vim-buffergator";
-      rev = "947b60dca4d4fc6a041a6ec84b17ca6736d1b916";
-      sha256 = "0g7ymflzfdsj5793s32gc83bidqys5dxmw455viwpqgmgjxnar5c";
+      rev = "0514af606a3b41bbe82c33875179b53300a3cb86";
+      sha256 = "1g1g2agj9dzgrk6ccr4ampyrsqjs4j6gqmvv75avq7q068glglzz";
     };
     meta.homepage = "https://github.com/jeetsukumaran/vim-buffergator/";
   };
@@ -7026,24 +7207,24 @@ final: prev:
 
   vim-clang-format = buildVimPluginFrom2Nix {
     pname = "vim-clang-format";
-    version = "2021-11-11";
+    version = "2021-12-04";
     src = fetchFromGitHub {
       owner = "rhysd";
       repo = "vim-clang-format";
-      rev = "261d02c305f3ed361c39e3b9ca5d66b5b45df4c7";
-      sha256 = "1lbfxb91s3951j3zhpmc7jj8xnsd2qcrd6d5xm35xarcsxwl5rvh";
+      rev = "6b791825ff478061ad1c57b21bb1ed5a5fd0eb29";
+      sha256 = "00l0flcgbl7dipzq6yxqwlqfi43jrdgbs4bi14lw2wzki5wy3wmr";
     };
     meta.homepage = "https://github.com/rhysd/vim-clang-format/";
   };
 
   vim-clap = buildVimPluginFrom2Nix {
     pname = "vim-clap";
-    version = "2021-11-02";
+    version = "2021-12-12";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-clap";
-      rev = "72e1f7b1e35b6f79708e004367546701e646d64d";
-      sha256 = "19zlfjwzalrm8i6ilgm7pidcji9qk1i1acsysl87d2h5gpqqd6v5";
+      rev = "7b36b2599d7241b5918e92de231bd4e78bcaadef";
+      sha256 = "0kz2xm5qnicszvzap0b64jj9j7p2w6zmwcgk428043c2x0657sfz";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-clap/";
   };
@@ -7098,12 +7279,12 @@ final: prev:
 
   vim-code-dark = buildVimPluginFrom2Nix {
     pname = "vim-code-dark";
-    version = "2021-04-09";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "tomasiser";
       repo = "vim-code-dark";
-      rev = "670fed53a2ae67542a78ef7b642f4aca6b6326dc";
-      sha256 = "0zdhhv3h8lzba8dpv0amc5abpkzayp6gbjw6qv712p638zyr99vw";
+      rev = "7fe0dc672b20ef62962494560a0bc656fb237346";
+      sha256 = "1i9sgxdw6mjv81gmzk17fy3caizr8dhdygjcpqzz5p56njywwags";
     };
     meta.homepage = "https://github.com/tomasiser/vim-code-dark/";
   };
@@ -7254,12 +7435,12 @@ final: prev:
 
   vim-css-color = buildVimPluginFrom2Nix {
     pname = "vim-css-color";
-    version = "2021-05-30";
+    version = "2021-12-18";
     src = fetchFromGitHub {
       owner = "ap";
       repo = "vim-css-color";
-      rev = "7337c35588e9027b516f80f03c3b9621a271e168";
-      sha256 = "05np2fr8q8r8n5mlspjywibl7hx54liy77wxvjya7n2p085n49ks";
+      rev = "26ff274c20ef3929697ab31bbdeea5b42f890287";
+      sha256 = "19akvm6vks2k9bkcvzzqny9lwykw5kdjqlzv58xpb3jk70c1p4h6";
     };
     meta.homepage = "https://github.com/ap/vim-css-color/";
   };
@@ -7314,24 +7495,24 @@ final: prev:
 
   vim-dadbod-completion = buildVimPluginFrom2Nix {
     pname = "vim-dadbod-completion";
-    version = "2021-09-02";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "vim-dadbod-completion";
-      rev = "b791318764a58956e04d83ad7b89555bb089d8b0";
-      sha256 = "18glwgjbkb1bdwg590qpyh975ax0l5llr88c7xmz6g9di20g61dd";
+      rev = "10064d526001d98b6454235644e3e586b566f26d";
+      sha256 = "07vlg4w9x0xs4xag02pyxram94mvizipwya7p6vg7s3rznj0bipd";
     };
     meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-completion/";
   };
 
   vim-dadbod-ui = buildVimPluginFrom2Nix {
     pname = "vim-dadbod-ui";
-    version = "2021-08-27";
+    version = "2021-11-20";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "vim-dadbod-ui";
-      rev = "5f2bd8499f1627c1938300256e6d9abb1ae4856d";
-      sha256 = "1a2icyz84lc54y4nq5amf3l51cc0f2yyzyqz5zx6m7dwb1r3nhpn";
+      rev = "1b55f49028a0956bfe93ebb3d0833c2f5a5644ee";
+      sha256 = "0wh0x9yid4b1lcak0fcsm7q8z1qh85pykmcsqkal7ylq1lib1m16";
     };
     meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-ui/";
   };
@@ -7374,12 +7555,12 @@ final: prev:
 
   vim-devicons = buildVimPluginFrom2Nix {
     pname = "vim-devicons";
-    version = "2021-08-31";
+    version = "2021-12-18";
     src = fetchFromGitHub {
       owner = "ryanoasis";
       repo = "vim-devicons";
-      rev = "d16475cbd7d50664e3d9261951cd4415967c5c41";
-      sha256 = "10zxn3d3hg8kim3350lvirwnwah1qkcgrdj7ac1jiy3g0qa8j16n";
+      rev = "9252538fedd6bed5c7eff20ee6f9593676e2fed4";
+      sha256 = "0r2shfwb9i62mxl254wc9zcq3z1nf72snd0ar8sxjll5iklnzw1k";
     };
     meta.homepage = "https://github.com/ryanoasis/vim-devicons/";
   };
@@ -7434,12 +7615,12 @@ final: prev:
 
   vim-dispatch = buildVimPluginFrom2Nix {
     pname = "vim-dispatch";
-    version = "2021-10-22";
+    version = "2021-12-18";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dispatch";
-      rev = "a99a671aff87f77da9ac3461e589393b5ecfcd88";
-      sha256 = "0jsl7as2xc9mq2za58r9bxxghicmp7g86hzmpy8w7h8a3m9wpgz5";
+      rev = "a58eaaa41f895fb729a36740a91608ed47706636";
+      sha256 = "1hq8jvmlzpbpayjn94y9ikh3442p7hzcc1qxi9y90m5m3kbddv5b";
     };
     meta.homepage = "https://github.com/tpope/vim-dispatch/";
   };
@@ -7626,12 +7807,12 @@ final: prev:
 
   vim-erlang-runtime = buildVimPluginFrom2Nix {
     pname = "vim-erlang-runtime";
-    version = "2021-09-25";
+    version = "2021-11-25";
     src = fetchFromGitHub {
       owner = "vim-erlang";
       repo = "vim-erlang-runtime";
-      rev = "f62fa7eb5c17e8fbf93d7dcc5ff593dc534fd44b";
-      sha256 = "0h4n6r8zpwqlh635nqig8bisc6djq2by51nilra90i524lxw8fz5";
+      rev = "abb5ff4de17aa0add2afedaa478e06ede6ba2baf";
+      sha256 = "1zspw3p00b31x97if1hmmgvxmv6yzky4q4y16qckwn838yjarlhn";
     };
     meta.homepage = "https://github.com/vim-erlang/vim-erlang-runtime/";
   };
@@ -7710,12 +7891,12 @@ final: prev:
 
   vim-fireplace = buildVimPluginFrom2Nix {
     pname = "vim-fireplace";
-    version = "2021-11-16";
+    version = "2021-12-09";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fireplace";
-      rev = "18699186aad27dc92867527f5e3c2ad3ed51cb27";
-      sha256 = "0681c6ica9xi7cvjzlhlwcvmdvq3109xx39c06d879n7yy6kjyqi";
+      rev = "b2fffb38988747e6891bf3bedf3921783e5659df";
+      sha256 = "023vj0bsg3vp9s7ldhidlzd40117fbp0xripvzrz364xy22ikn1c";
     };
     meta.homepage = "https://github.com/tpope/vim-fireplace/";
   };
@@ -7734,12 +7915,12 @@ final: prev:
 
   vim-flagship = buildVimPluginFrom2Nix {
     pname = "vim-flagship";
-    version = "2019-12-09";
+    version = "2021-12-07";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-flagship";
-      rev = "e522bd0ffb0e329f695ead7d4288a6245ff22410";
-      sha256 = "0vqkdzd7b204kbinn12jk306kc9bn2f0yaifj49swd0g8hv6dk4b";
+      rev = "7f3aab5e3f1b48df9f9465b8cd55f9d2a1564087";
+      sha256 = "0vfihdwabl41wdavzppsim6sza8mjynpnb3my85di5xn5mgcmixp";
     };
     meta.homepage = "https://github.com/tpope/vim-flagship/";
   };
@@ -7770,36 +7951,36 @@ final: prev:
 
   vim-floaterm = buildVimPluginFrom2Nix {
     pname = "vim-floaterm";
-    version = "2021-08-11";
+    version = "2021-11-28";
     src = fetchFromGitHub {
       owner = "voldikss";
       repo = "vim-floaterm";
-      rev = "9716765f2af3415ad1f9091a50c334649a74e4c5";
-      sha256 = "1fclir7g02x8cpsyzf40l1igcw140h695g6mslyhhgjclm0rigpm";
+      rev = "399cb86a15b7f3ef32ba40edda0ee00f2bdb842b";
+      sha256 = "0yp1w8wbbkb2jvpw00q5sd622ns28ahi1j1v95blbb93cc6wvmvk";
     };
     meta.homepage = "https://github.com/voldikss/vim-floaterm/";
   };
 
   vim-flog = buildVimPluginFrom2Nix {
     pname = "vim-flog";
-    version = "2021-10-16";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "rbong";
       repo = "vim-flog";
-      rev = "d8e62cea4c57c9284a0d6bc92140deb1a7034a1d";
-      sha256 = "0a5yh0w143lvg934pwsln2n34zh7x2d6bxfp9cmw897nl6qlzrdj";
+      rev = "fcd459aba62fa1b1bda8338ac7686c7541fb10ae";
+      sha256 = "0626jbf4cnfshwbwzm3qhhhbvzqb5vf46nwk6igjaiay96bxj3c3";
     };
     meta.homepage = "https://github.com/rbong/vim-flog/";
   };
 
   vim-flutter = buildVimPluginFrom2Nix {
     pname = "vim-flutter";
-    version = "2020-09-14";
+    version = "2021-11-21";
     src = fetchFromGitHub {
       owner = "thosakwe";
       repo = "vim-flutter";
-      rev = "5a6de53adcc72742138b666b305869999fc8066e";
-      sha256 = "1zxa1gz47qpkcrzniax6q1bq9a953rypj1cfbcjb62h5ggx2rr5n";
+      rev = "2292de52c6b2470638b628ed2f3b1332e077cd46";
+      sha256 = "137wp2vhlsflnzkcdycn6cgdsclv9w67rkh7gbariqi8s45y9n6f";
     };
     meta.homepage = "https://github.com/thosakwe/vim-flutter/";
   };
@@ -7842,12 +8023,12 @@ final: prev:
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2021-11-16";
+    version = "2021-12-08";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "2dfaf17f9e9b2c8961eddc8ea51098fef500d189";
-      sha256 = "1y5ac8sag0lcdkq8k6rzn1cfcwyrn8fwmm3imsiq4b9883qjw2v2";
+      rev = "365231384cf9edc32b2fc34f6c3e1b31eeabfedf";
+      sha256 = "1mibf943kpvg7b8rzir1wa7pn1akgnjbwysbyw2sqcy92ib6ls7b";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -7866,12 +8047,12 @@ final: prev:
 
   vim-gh-line = buildVimPluginFrom2Nix {
     pname = "vim-gh-line";
-    version = "2021-03-25";
+    version = "2021-11-27";
     src = fetchFromGitHub {
       owner = "ruanyl";
       repo = "vim-gh-line";
-      rev = "4ca32f57f5f95cd3436c3f9ee7657a9b9c0ca763";
-      sha256 = "0pfw8jvmxwhdvjcfypiqk2jlk5plqbigjmykbqs1zvaznc2b7z5v";
+      rev = "d2185b18883b911a21b684d4bb9d26f6a41b62f4";
+      sha256 = "0wrgjd7l8cnam7nwqyh0m3np2452b18kz4lvnfv3hlsdsdx9xi17";
     };
     meta.homepage = "https://github.com/ruanyl/vim-gh-line/";
   };
@@ -7914,12 +8095,12 @@ final: prev:
 
   vim-git = buildVimPluginFrom2Nix {
     pname = "vim-git";
-    version = "2021-10-09";
+    version = "2021-12-10";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-git";
-      rev = "74063729aee801ee0cd4a968194ea61a36df091d";
-      sha256 = "195x75y5108wx7s68k1a5wz03gzm63l33b62gmq9rrq77wagv1g1";
+      rev = "6562b4fcc1aa5e1fb3d77d009e3a1d2f985578db";
+      sha256 = "0h4hmiyq9p9ywx601a5qr2ia8qgzl68qlzn85z2857pxmdv9s6w2";
     };
     meta.homepage = "https://github.com/tpope/vim-git/";
   };
@@ -7986,12 +8167,12 @@ final: prev:
 
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2021-11-08";
+    version = "2021-11-25";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "96b74acc8747d667247fd8d30eb15f6b44778f6f";
-      sha256 = "1cd5kzjsylg5if1fqs7ll5s47jmmbhpw3dxn1k7cyf9wkkmy0di8";
+      rev = "a319aaf6bf652dadb197807e4629ff5b1750a17b";
+      sha256 = "14q32d2cxh55qg2v9ykwayaanh47zx8fd3pj952x9zrhijkx5g4q";
     };
     meta.homepage = "https://github.com/fatih/vim-go/";
   };
@@ -8142,12 +8323,12 @@ final: prev:
 
   vim-helm = buildVimPluginFrom2Nix {
     pname = "vim-helm";
-    version = "2020-01-02";
+    version = "2021-12-13";
     src = fetchFromGitHub {
       owner = "towolf";
       repo = "vim-helm";
-      rev = "2c2e2e936607ed93f8f75de2066d04feff0e8e81";
-      sha256 = "1vlaqcxxsbys0ybk2x7ri1flyx412ak0dmanqg1cdig6xzhna2kc";
+      rev = "9c65dc6ad9b0be6b11514d9d25fe828c2299b484";
+      sha256 = "0hl48dabgssybgkbs6xr27ipsmjdk6i7fa5ynhn12c9bdbs2fnxv";
     };
     meta.homepage = "https://github.com/towolf/vim-helm/";
   };
@@ -8287,12 +8468,12 @@ final: prev:
 
   vim-illuminate = buildVimPluginFrom2Nix {
     pname = "vim-illuminate";
-    version = "2021-11-14";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-illuminate";
-      rev = "2beae0581caa66cf8c09fad7c7c557f92d49d2bd";
-      sha256 = "1qrc789a3aps99x89hiwwrmnxm5hm1qsjp8xjhhls6jk8scqq2qv";
+      rev = "8e68a8c75eee7fbfb5e94d779979fa41713ec8b2";
+      sha256 = "10gl1gj5apmn2yjr4fdm51n0wxgkx951d7hz7zfd0xhxyvsmp8dj";
     };
     meta.homepage = "https://github.com/RRethy/vim-illuminate/";
   };
@@ -8335,12 +8516,12 @@ final: prev:
 
   vim-indexed-search = buildVimPluginFrom2Nix {
     pname = "vim-indexed-search";
-    version = "2019-07-04";
+    version = "2021-12-13";
     src = fetchFromGitHub {
       owner = "henrik";
       repo = "vim-indexed-search";
-      rev = "5af020bba084b699d0453f242d7d76711d64b1e3";
-      sha256 = "0cq265yqksh7jqazxn7qxr7bclrk2pq7py4c29wspsvbi0m3m8rc";
+      rev = "763fdd0eb818ad441433aa04d00eabfda579476c";
+      sha256 = "09469n772gcakgwiszn6fd1gb64dma1sqib3c4raspfzjiynr79z";
     };
     meta.homepage = "https://github.com/henrik/vim-indexed-search/";
   };
@@ -8456,12 +8637,12 @@ final: prev:
 
   vim-jsdoc = buildVimPluginFrom2Nix {
     pname = "vim-jsdoc";
-    version = "2021-10-25";
+    version = "2021-11-20";
     src = fetchFromGitHub {
       owner = "heavenshell";
       repo = "vim-jsdoc";
-      rev = "27af18abfe60990410a10ade1b61b8b6350913d9";
-      sha256 = "0qc12dhp2kfjkmdcxajn0gy9z5vapylmnamd8lyhk2v8hkkzr8y4";
+      rev = "71c98ed6eacb4f1c0b9e4950ef679eda6a651cdd";
+      sha256 = "0jxcmriva73s0icllpbh6q6s2fw0ysjm7fk449kdd5fvd5y5ssq5";
     };
     meta.homepage = "https://github.com/heavenshell/vim-jsdoc/";
   };
@@ -8516,12 +8697,12 @@ final: prev:
 
   vim-kitty-navigator = buildVimPluginFrom2Nix {
     pname = "vim-kitty-navigator";
-    version = "2021-11-15";
+    version = "2021-11-26";
     src = fetchFromGitHub {
       owner = "knubie";
       repo = "vim-kitty-navigator";
-      rev = "e097580586e802352f225eed467fafa90f11223e";
-      sha256 = "1lzgqaxw0y53r1qrcqx3fxb1fdqkswzkl8b6yk4xmdxig6kyhm46";
+      rev = "443287463671020b461cec020ced52840723b95d";
+      sha256 = "0a0jy6vk7cdb0hijrrnvliak0gbyl1hh1hljlrrhdvxmqmch0022";
     };
     meta.homepage = "https://github.com/knubie/vim-kitty-navigator/";
   };
@@ -8648,12 +8829,12 @@ final: prev:
 
   vim-liquid = buildVimPluginFrom2Nix {
     pname = "vim-liquid";
-    version = "2021-09-24";
+    version = "2021-11-28";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-liquid";
-      rev = "dd5243a34e97c15e1a128b6ec440a0368e583900";
-      sha256 = "0kn4w2i83fwhjcpmj1zym9hr4lvl27vcl0f1cz3n3lv3jhr7g7zg";
+      rev = "fd2f0017fbc50f214db2f57c207c34cda3aa1522";
+      sha256 = "1z9bmcx13py56phr8djdnykw3a933chhv6ypcfigkjp6cyqkj1mc";
     };
     meta.homepage = "https://github.com/tpope/vim-liquid/";
   };
@@ -8708,12 +8889,12 @@ final: prev:
 
   vim-lsp = buildVimPluginFrom2Nix {
     pname = "vim-lsp";
-    version = "2021-11-02";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "vim-lsp";
-      rev = "0c8a35d899202f7a7d94aefd290f3c7a1590e9c5";
-      sha256 = "02h2z8j1w083hjvgafxrclz0a1r2q4lrsc56yllswpk8yq1x30pb";
+      rev = "69e6340c48571cc813c52d6acc2057b8aea6e742";
+      sha256 = "0f8sg66l579lyq1apbksr22a9h9hdv94nvs2d36sb2c2f8im3g6k";
     };
     meta.homepage = "https://github.com/prabirshrestha/vim-lsp/";
   };
@@ -8817,12 +8998,12 @@ final: prev:
 
   vim-matchup = buildVimPluginFrom2Nix {
     pname = "vim-matchup";
-    version = "2021-11-05";
+    version = "2021-11-30";
     src = fetchFromGitHub {
       owner = "andymass";
       repo = "vim-matchup";
-      rev = "50cadec5e6fbc3e3e30ef2057d169cbc61a6ae9c";
-      sha256 = "1kz0i4sir8fa42m606bcspf0alkvwz91xi2z9a9c64r9b3ixdpmr";
+      rev = "ef044ee012baa01d6f4ad79a04eeb5edb5bc7d84";
+      sha256 = "19hfg4ihx36rs14mcmr60s6mk1v28db2aba2w44cnisq4mm6y4qy";
     };
     meta.homepage = "https://github.com/andymass/vim-matchup/";
   };
@@ -8841,12 +9022,12 @@ final: prev:
 
   vim-merginal = buildVimPluginFrom2Nix {
     pname = "vim-merginal";
-    version = "2020-12-06";
+    version = "2021-11-26";
     src = fetchFromGitHub {
       owner = "idanarye";
       repo = "vim-merginal";
-      rev = "7e1446614cdfb3a8eca621e5006631af72cda0f8";
-      sha256 = "133lddbwz63djr6pyg3dqy2pn795b48i3y4ps9ssyy6yjyi3pnrg";
+      rev = "d47689faa5623e8f455c62a9a1016c92cf66c09e";
+      sha256 = "0ili5kk0rg85dzn3z606c3p81lyq40rj97b4nzcc61x1s9k4l9z7";
     };
     meta.homepage = "https://github.com/idanarye/vim-merginal/";
   };
@@ -8901,12 +9082,12 @@ final: prev:
 
   vim-move = buildVimPluginFrom2Nix {
     pname = "vim-move";
-    version = "2021-07-09";
+    version = "2021-12-14";
     src = fetchFromGitHub {
       owner = "matze";
       repo = "vim-move";
-      rev = "6442747a3d3084e3c1214388192b8308fcf391b8";
-      sha256 = "1acmaabzqc01gvnxs8jfpiwmgyrd4d20p3lm3g2xsg5zv1l67hbf";
+      rev = "d4fbf3b9d794d20a36aef729ecdfa56ce097986e";
+      sha256 = "0dkn6ssqhxdp52cg1hk104n3d3fac48yklmnx6sl7i7lx8hpjshc";
     };
     meta.homepage = "https://github.com/matze/vim-move/";
   };
@@ -8947,6 +9128,18 @@ final: prev:
     meta.homepage = "https://github.com/simnalamburt/vim-mundo/";
   };
 
+  vim-mustache-handlebars = buildVimPluginFrom2Nix {
+    pname = "vim-mustache-handlebars";
+    version = "2021-11-30";
+    src = fetchFromGitHub {
+      owner = "mustache";
+      repo = "vim-mustache-handlebars";
+      rev = "0153fe03a919add2d6cf2d41b2d5b6e1188bc0e0";
+      sha256 = "0dnafs9bcfm539plx5hq6nzq6k8li3xbkizdhv71cpmfcbw2srln";
+    };
+    meta.homepage = "https://github.com/mustache/vim-mustache-handlebars/";
+  };
+
   vim-nerdtree-syntax-highlight = buildVimPluginFrom2Nix {
     pname = "vim-nerdtree-syntax-highlight";
     version = "2021-01-11";
@@ -9045,12 +9238,12 @@ final: prev:
 
   vim-numbertoggle = buildVimPluginFrom2Nix {
     pname = "vim-numbertoggle";
-    version = "2021-01-12";
+    version = "2021-07-14";
     src = fetchFromGitHub {
       owner = "jeffkreeftmeijer";
       repo = "vim-numbertoggle";
-      rev = "df9b1fe616507340718716204ba7f434125bdf7a";
-      sha256 = "02zgzkwv2fk4zyg6agvski054nwkrm1m9dw0jpva57ksbf8rvqrg";
+      rev = "075b7478777e694fbac330ee34a74590dad0fee1";
+      sha256 = "1d6wjl20f80kqqb2k13gq7d0vr7kk2mgjpnqf37dzhv1w1g74l2c";
     };
     meta.homepage = "https://github.com/jeffkreeftmeijer/vim-numbertoggle/";
   };
@@ -9345,12 +9538,12 @@ final: prev:
 
   vim-plug = buildVimPluginFrom2Nix {
     pname = "vim-plug";
-    version = "2021-08-31";
+    version = "2021-12-06";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "vim-plug";
-      rev = "c9971346bb486ccff354aaee8606cc0d2d5a0c97";
-      sha256 = "0w2sk2fvjw3g8bjnrp0lkalbrawl2nn2akr92rji3ycggsnxb6ai";
+      rev = "68488fd7a388d31704643a3257eb97920bcdd54a";
+      sha256 = "025xwbzip1p7m8jhv0qh5m6bcf6yw6rr3zm22sknhzzls3byphmm";
     };
     meta.homepage = "https://github.com/junegunn/vim-plug/";
   };
@@ -9369,12 +9562,12 @@ final: prev:
 
   vim-polyglot = buildVimPluginFrom2Nix {
     pname = "vim-polyglot";
-    version = "2021-09-10";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "sheerun";
       repo = "vim-polyglot";
-      rev = "4d4aa5fe553a47ef5c5c6d0a97bb487fdfda2d5b";
-      sha256 = "0xavwlgmr2z86kkj1xg5c6ly2agaaa6l6mzsjnbmc98r720z6q88";
+      rev = "cb80947143fe342797bcf571b6190c86b3c07700";
+      sha256 = "0inim34psrkndsr93q1ax8xpg9hcjfchfn7dp84hc629bc2ziv13";
     };
     meta.homepage = "https://github.com/sheerun/vim-polyglot/";
   };
@@ -9405,12 +9598,12 @@ final: prev:
 
   vim-prettier = buildVimPluginFrom2Nix {
     pname = "vim-prettier";
-    version = "2021-06-29";
+    version = "2021-11-24";
     src = fetchFromGitHub {
       owner = "prettier";
       repo = "vim-prettier";
-      rev = "0e61e4a5b55d2740aa118db91a6671dcb11307e8";
-      sha256 = "0d83lx6kfpsi3d4q9wz8zwsgdn0vn16psqyngml6wspjyibh6pnf";
+      rev = "5e6cca21e12587c02e32a06bf423519eb1e9f1b2";
+      sha256 = "0sf23h1d15sqcfx1zsscvvczw8bbc7pravfw72mfrf5n6xfiaqal";
     };
     meta.homepage = "https://github.com/prettier/vim-prettier/";
   };
@@ -9441,24 +9634,24 @@ final: prev:
 
   vim-projectionist = buildVimPluginFrom2Nix {
     pname = "vim-projectionist";
-    version = "2021-10-19";
+    version = "2021-12-06";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-projectionist";
-      rev = "438b58aab54624e554d71063a69ba3d1e1bfbc2f";
-      sha256 = "1x9x7nb1r4x1lyj16l337dflccx7mbkqrhk7pz02zqnb7qip032f";
+      rev = "ddfa49f9ece73aca44d2b45d693e7b58adbf8f8c";
+      sha256 = "0kr79qila32j24mlcq044g07wwvaii5mqra6bjmpnxdlr535s08m";
     };
     meta.homepage = "https://github.com/tpope/vim-projectionist/";
   };
 
   vim-prosession = buildVimPluginFrom2Nix {
     pname = "vim-prosession";
-    version = "2021-03-21";
+    version = "2021-12-10";
     src = fetchFromGitHub {
       owner = "dhruvasagar";
       repo = "vim-prosession";
-      rev = "976f3e61c2dd4ab709ea5eccbbab9e42d35d7e8c";
-      sha256 = "01dbiwj1x8rd5yy19cphxysga3fi5l3il2ph8hr1v4adzvw8269z";
+      rev = "47709f9671f23fb9a6b16d3b5ac29628358f9f40";
+      sha256 = "0za6m05g2rp242pp2g9gm6wgi6p7whdq6nnc7vrkvrhjkvq6b6zj";
     };
     meta.homepage = "https://github.com/dhruvasagar/vim-prosession/";
   };
@@ -9609,12 +9802,12 @@ final: prev:
 
   vim-rails = buildVimPluginFrom2Nix {
     pname = "vim-rails";
-    version = "2021-10-19";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-rails";
-      rev = "a4595b48a83824e36c1ebe48b574aa8624632695";
-      sha256 = "1czfv1v7vp2br8mpbb5zpi6rrzfrqr7mq5q4xa3n7b9lhdjw6r4i";
+      rev = "3bac0233a49d2a00805c66bf17d3e2ea114b05d1";
+      sha256 = "0grk2jz655kmjdnhb19d2lhqi1xirl5g4577harw22ck1c7kdjvj";
     };
     meta.homepage = "https://github.com/tpope/vim-rails/";
   };
@@ -9705,36 +9898,36 @@ final: prev:
 
   vim-ruby = buildVimPluginFrom2Nix {
     pname = "vim-ruby";
-    version = "2021-11-03";
+    version = "2021-11-22";
     src = fetchFromGitHub {
       owner = "vim-ruby";
       repo = "vim-ruby";
-      rev = "ee99a4cdb6931a5409b17c8f0f397a5c5dd6a035";
-      sha256 = "0gg57jrsm86fhhyrw44pzm5jmnpllqm9sv2j0ajjkyxbzhb9m18m";
+      rev = "5bd142973816705364ce485b437f291687acc9ea";
+      sha256 = "0b5a8658w8fgkyiy77rv4r3y3lylli21j69frpnzmncwj8lvncax";
     };
     meta.homepage = "https://github.com/vim-ruby/vim-ruby/";
   };
 
   vim-salve = buildVimPluginFrom2Nix {
     pname = "vim-salve";
-    version = "2020-09-22";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-salve";
-      rev = "5958a99c4ac783cec668380917ac1f62b27466fe";
-      sha256 = "1vs2rfhcxm9v4ndnsx85b1i29h67qv748k3nvdxc145v1hjcnapm";
+      rev = "1a581fa047592d0bd430cda2f3ff8ec77345a2b2";
+      sha256 = "0q8dhlizilgvfr45s33j4nax74xns2lm4iq61nyy3899s6fhfjw5";
     };
     meta.homepage = "https://github.com/tpope/vim-salve/";
   };
 
   vim-sandwich = buildVimPluginFrom2Nix {
     pname = "vim-sandwich";
-    version = "2021-09-11";
+    version = "2021-11-30";
     src = fetchFromGitHub {
       owner = "machakann";
       repo = "vim-sandwich";
-      rev = "4cd1ea8db6aa43af8e1996422e2010c49d3a5998";
-      sha256 = "1nvjhx5y3rjy5lkm66hgrnsx8j7db7spvwy624qas1xhdqbadb6y";
+      rev = "cfe8b70e4f404e3bbb9d4e97e082a4294a5762a4";
+      sha256 = "0mcx85knnfmyjz0lbz6zbrv6gry8d9bp2z21af7riz93g7zi01z7";
     };
     meta.homepage = "https://github.com/machakann/vim-sandwich/";
   };
@@ -9885,24 +10078,24 @@ final: prev:
 
   vim-sleuth = buildVimPluginFrom2Nix {
     pname = "vim-sleuth";
-    version = "2021-04-01";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-sleuth";
-      rev = "38bd4010110614822cde523ebc5724963312ab63";
-      sha256 = "1qng5ndxsmkjgrdhlbdysr97b6pyz6faiqaayjkwpc69hnv2y79v";
+      rev = "e362d3552ba2fcf0bc1830a1c59e869b1c6f2067";
+      sha256 = "0d292s94krvq8pl3rb0y8z2qsw89rqz4cqikal0kp08jx0q384w0";
     };
     meta.homepage = "https://github.com/tpope/vim-sleuth/";
   };
 
   vim-slime = buildVimPluginFrom2Nix {
     pname = "vim-slime";
-    version = "2021-11-03";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "jpalardy";
       repo = "vim-slime";
-      rev = "e80be3ba286ea83fe39d2261cdc74ed2ca5e951a";
-      sha256 = "1qgrmsjcrfnkjh4an6m08x9anh2kjn4bx9mckr26mgskrglxykp9";
+      rev = "3d3e5fac8c15719f2117923134ce51f6ae269d3f";
+      sha256 = "1iqnwhpc0p3mjji99m710bqwfk5ymxnc6jg3rv4qbrlz784nc1mm";
     };
     meta.homepage = "https://github.com/jpalardy/vim-slime/";
   };
@@ -9981,12 +10174,12 @@ final: prev:
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2021-11-06";
+    version = "2021-12-18";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "43ed873ba09ac2d71992e773c68c75c6b85686c7";
-      sha256 = "02mdlicjzqqy40rsi8kkkix5ldj0fhbbbckr0yz4srnbw3wznsa8";
+      rev = "e2156cda628fe065be64e96347594c1d20812aea";
+      sha256 = "1c7228zvlhcgc2lgv6752mxcq1aghi9bnanwqv70rfsaj8yr2qv7";
     };
     meta.homepage = "https://github.com/honza/vim-snippets/";
   };
@@ -10065,12 +10258,12 @@ final: prev:
 
   vim-startuptime = buildVimPluginFrom2Nix {
     pname = "vim-startuptime";
-    version = "2021-08-06";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "dstein64";
       repo = "vim-startuptime";
-      rev = "5e4c41a744523a7e300d3e1613cf3201709b0b03";
-      sha256 = "036dyas04hrhhv1s747g4pv2qhi4pfyyxjifidrg5s1dx68zd6p2";
+      rev = "8a5e182f491ba7e4aca86c88face10c80ac2bf7e";
+      sha256 = "1mgx4cncqmx390lz65kl8majnh55hyl2k26vc5w6kwh7806i5yla";
     };
     meta.homepage = "https://github.com/dstein64/vim-startuptime/";
   };
@@ -10161,12 +10354,12 @@ final: prev:
 
   vim-table-mode = buildVimPluginFrom2Nix {
     pname = "vim-table-mode";
-    version = "2021-10-26";
+    version = "2021-12-01";
     src = fetchFromGitHub {
       owner = "dhruvasagar";
       repo = "vim-table-mode";
-      rev = "01a395df00adbb57813e852f2e83ffb12375f1b6";
-      sha256 = "1lrlwlrrvgbjlgdz1ywsz4ayhrrf905idkh6lh29j91m2118gvfj";
+      rev = "c547471c0ed32b8511f62752974cde5277e13df4";
+      sha256 = "1qdrd87b91013z1br67j1j45s4iva7ah1r52zkkr0sj0pbiiqh7r";
     };
     meta.homepage = "https://github.com/dhruvasagar/vim-table-mode/";
   };
@@ -10222,12 +10415,12 @@ final: prev:
 
   vim-test = buildVimPluginFrom2Nix {
     pname = "vim-test";
-    version = "2021-11-10";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "vim-test";
       repo = "vim-test";
-      rev = "8d942aa3b0eea1d53cccd1ee87a241b651f485ee";
-      sha256 = "03s5m19j19xjnwnfknfff4nj3wpzb11fbkf95bif1rrms9v8kw2i";
+      rev = "2d240b96221a8ef2cf2ed9db59f14c5871df80f0";
+      sha256 = "1yc4mjhx2vv6ybpn9yblg4zfv7cmf2glsvvr1a5wsq0w0mn3yv69";
     };
     meta.homepage = "https://github.com/vim-test/vim-test/";
   };
@@ -10318,12 +10511,12 @@ final: prev:
 
   vim-themis = buildVimPluginFrom2Nix {
     pname = "vim-themis";
-    version = "2021-09-29";
+    version = "2021-12-03";
     src = fetchFromGitHub {
       owner = "thinca";
       repo = "vim-themis";
-      rev = "3a01ba98782aa13e125b02748cb65718b5c1510b";
-      sha256 = "1bzfb3imj512p3jbf4z90bmcy8x3k6x0kqf309j6rqwr9y8f0sw9";
+      rev = "737e5444713ba53a9dcfbe3b962239bd0bd9162e";
+      sha256 = "0wj3v45p7pxm7f4pdzdbvy78vhq57jki0ldgfb3229hb101k1sgh";
     };
     meta.homepage = "https://github.com/thinca/vim-themis/";
   };
@@ -10378,36 +10571,36 @@ final: prev:
 
   vim-togglelist = buildVimPluginFrom2Nix {
     pname = "vim-togglelist";
-    version = "2013-04-07";
+    version = "2021-12-08";
     src = fetchFromGitHub {
       owner = "milkypostman";
       repo = "vim-togglelist";
-      rev = "cafedc49860950200f28f2e1d95ab6a87b79d113";
-      sha256 = "17y4ply2irz81gjv5hb51dy7wzv3l3sq6qaska31lswd5dgh1ifg";
+      rev = "48f0d30292efdf20edc883e61b121e6123e03df7";
+      sha256 = "0fz0wmz6hp8hwikpfrxxgg0cn6hmr5fl7q1a8bvkhxzhd7xzfqq1";
     };
     meta.homepage = "https://github.com/milkypostman/vim-togglelist/";
   };
 
   vim-toml = buildVimPluginFrom2Nix {
     pname = "vim-toml";
-    version = "2021-10-09";
+    version = "2021-12-06";
     src = fetchFromGitHub {
       owner = "cespare";
       repo = "vim-toml";
-      rev = "717bd87ef928293e0cc6cfc12ebf2e007cb25311";
-      sha256 = "1pbpj0wlh65hf474lrylwcsqfpv5wy4m7mhbkplgch7v8iabshqv";
+      rev = "2c8983cc391287e5e26e015c3ab9c38de9f9b759";
+      sha256 = "1mxn2z3p3lnk3ibwxhqb3dih25qalpqfwy0rx7i393vpjbkn79py";
     };
     meta.homepage = "https://github.com/cespare/vim-toml/";
   };
 
   vim-tpipeline = buildVimPluginFrom2Nix {
     pname = "vim-tpipeline";
-    version = "2021-11-12";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "vimpostor";
       repo = "vim-tpipeline";
-      rev = "be9cd2c8cd007088f69019f18fb61aff457adb8c";
-      sha256 = "1r2wvkgziil4bik3g7b19cscg17skhx98pgsvm2m00czrrfdxq6v";
+      rev = "513bc9cb4cab4d2eb849a647eb07cf3a2292a6fc";
+      sha256 = "1plr9v5wscl9c04q2gl8wpyn3kdx9bzqgn25l1qi97izfpmzzdhl";
     };
     meta.homepage = "https://github.com/vimpostor/vim-tpipeline/";
   };
@@ -10450,24 +10643,24 @@ final: prev:
 
   vim-twiggy = buildVimPluginFrom2Nix {
     pname = "vim-twiggy";
-    version = "2021-09-16";
+    version = "2021-11-24";
     src = fetchFromGitHub {
       owner = "sodapopcan";
       repo = "vim-twiggy";
-      rev = "16287d2261be67872870899744fd04a6802a9b87";
-      sha256 = "0cfqvq2was7jdhcixnlrzh9qdm2n2sv17l7a2sys8slzl04v2c61";
+      rev = "25399d85fc07054c534c7808476e763849cdcb02";
+      sha256 = "14cqyjvhabiw4izmdh69mj8qvb65cw5q28frl2hmdqf492r7h98z";
     };
     meta.homepage = "https://github.com/sodapopcan/vim-twiggy/";
   };
 
   vim-ultest = buildVimPluginFrom2Nix {
     pname = "vim-ultest";
-    version = "2021-10-28";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "vim-ultest";
-      rev = "97afe58821129e88d420ca318fd171cc54518263";
-      sha256 = "123rv36b5i84yk50xl5400za8g1pfypb2c5k3yv0pn0s4n0fm1pb";
+      rev = "04024e7568f4b341e858c6f65b532b554e92e2f1";
+      sha256 = "1h8wfk6pzlfrn368xs0m4sl6g6wkrd0bxpa4nrjr1lr100ia2gp5";
     };
     meta.homepage = "https://github.com/rcarriga/vim-ultest/";
   };
@@ -10558,24 +10751,24 @@ final: prev:
 
   vim-vsnip = buildVimPluginFrom2Nix {
     pname = "vim-vsnip";
-    version = "2021-11-15";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "vim-vsnip";
-      rev = "60ee20318550f4a5b6f7a5a8b827540c2c386898";
-      sha256 = "0gl34m17pxgyfbdqghhfcgxhbhxwvjc9r048sim1gf86wga4mq39";
+      rev = "fd13f3fb09823cdefb2c9bebb614a13afd1920cc";
+      sha256 = "0npflxwclwcs72wk8kgsccqfh5783hvmxzirz3qf8yznllj8k8rs";
     };
     meta.homepage = "https://github.com/hrsh7th/vim-vsnip/";
   };
 
   vim-vsnip-integ = buildVimPluginFrom2Nix {
     pname = "vim-vsnip-integ";
-    version = "2021-10-06";
+    version = "2021-12-13";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "vim-vsnip-integ";
-      rev = "8db26e85c12a382db6c34487de2e1512dd7516f5";
-      sha256 = "1rlaglccvgpaj89lfn41ygykdizlis4wwrw92qxb9raz2a0z9idh";
+      rev = "685b570acf24b37eaf6176180b81fabcb5e6ccc2";
+      sha256 = "0d2s9pfj5961z2n0rh44ibqk4923ynp23g28wfg0ga70fx8iqyxl";
     };
     meta.homepage = "https://github.com/hrsh7th/vim-vsnip-integ/";
   };
@@ -10594,12 +10787,12 @@ final: prev:
 
   vim-wakatime = buildVimPluginFrom2Nix {
     pname = "vim-wakatime";
-    version = "2021-11-17";
+    version = "2021-12-13";
     src = fetchFromGitHub {
       owner = "wakatime";
       repo = "vim-wakatime";
-      rev = "0d66dd3596e414368e2b2b77e694e431a4b0bca3";
-      sha256 = "157shaarg4xdnfzp47v5nv34py0wii6s7fdgzagh4h1b5czgszyv";
+      rev = "85e95ac35633b6b38222773a37230ade262e1a3e";
+      sha256 = "0n85v6a1zkq2psmv35b55pylq93cm0y213xrpf0afn85h0bdvv3q";
     };
     meta.homepage = "https://github.com/wakatime/vim-wakatime/";
   };
@@ -10630,12 +10823,12 @@ final: prev:
 
   vim-which-key = buildVimPluginFrom2Nix {
     pname = "vim-which-key";
-    version = "2021-11-12";
+    version = "2021-11-25";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-which-key";
-      rev = "7e3819a91a7710ce561a9c11a22a82b9437a2533";
-      sha256 = "0hx5ar663ai25jj7p44sl2nn2n0jj2iif5ybx5ic7cxz4qy477wn";
+      rev = "165772f440bd26c4679eef8b8b493ab11fffc4ae";
+      sha256 = "1jhc8x22qgpbwrbmaf02hbq98hxfibg3jqa3wrnyi1qiik0wxzrc";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-which-key/";
   };
@@ -10762,12 +10955,12 @@ final: prev:
 
   vimade = buildVimPluginFrom2Nix {
     pname = "vimade";
-    version = "2021-11-09";
+    version = "2021-12-02";
     src = fetchFromGitHub {
       owner = "TaDaa";
       repo = "vimade";
-      rev = "25ac9e6e3b8f127ab81dc996c69bb7a2c8f26329";
-      sha256 = "1nkqmxvamziyavpfqlpn24wqzmrjwzb0s53avkw06h437mpzxzgy";
+      rev = "4f7f2ae1821dabffce52a566e7bc653012cb4940";
+      sha256 = "088yi1bb7dn2jsa4i42pi7viils3xcqln6cn84571ri5p1fs59vi";
     };
     meta.homepage = "https://github.com/TaDaa/vimade/";
   };
@@ -10882,12 +11075,12 @@ final: prev:
 
   vimspector = buildVimPluginFrom2Nix {
     pname = "vimspector";
-    version = "2021-11-17";
+    version = "2021-12-21";
     src = fetchFromGitHub {
       owner = "puremourning";
       repo = "vimspector";
-      rev = "d80485393139d15df237e856b8ef6675cfb88f6b";
-      sha256 = "1cvj7k9xxg4hp0m6lxnqklrnj5dqp4pyx4w6x0p8wh81a94r0wvw";
+      rev = "9e833b22a7aee667e92fb578130fa617369d5b23";
+      sha256 = "1r0m54h1f277ldjxh9qz87w2wrjvsmy6hfp0sbz77gzvkighqg9l";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/puremourning/vimspector/";
@@ -10895,12 +11088,12 @@ final: prev:
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2021-11-16";
+    version = "2021-12-19";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "c3991f8a53dc8a193a23dba7645ce6b9b8d5038b";
-      sha256 = "1zn094xjskqc0pjpjp21j18s9b01j5k0kpczcwf8nxi52bb8815v";
+      rev = "3cd379482b3d680ddb5b13c484c5d6c4b5d5a028";
+      sha256 = "1ra9vdd03v6xpflcmlhrmahxqhrqqxyl76mhyn7yyny3hz6632m3";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -11003,12 +11196,12 @@ final: prev:
 
   which-key-nvim = buildVimPluginFrom2Nix {
     pname = "which-key.nvim";
-    version = "2021-10-22";
+    version = "2021-12-17";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "which-key.nvim";
-      rev = "d3032b6d3e0adb667975170f626cb693bfc66baa";
-      sha256 = "1jcaxljrknwh73i2s9vd6c5bly1x8gb7j09c8rixb2qwzz0fc0ls";
+      rev = "312c386ee0eafc925c27869d2be9c11ebdb807eb";
+      sha256 = "0v5lra7bhpna7fmch6h4r6cx7z5rr3kbp1b2c0np4k28znva3l2g";
     };
     meta.homepage = "https://github.com/folke/which-key.nvim/";
   };
@@ -11136,12 +11329,12 @@ final: prev:
 
   YouCompleteMe = buildVimPluginFrom2Nix {
     pname = "YouCompleteMe";
-    version = "2021-11-16";
+    version = "2021-12-13";
     src = fetchFromGitHub {
       owner = "ycm-core";
       repo = "YouCompleteMe";
-      rev = "e17fb2fc92c7c1bee6a429db0d3b432c811d0c8a";
-      sha256 = "0l95wj6ghfip2l7bsdv8frhnd92wdni6a8fi1i356x1ls2fm6vvr";
+      rev = "3c5a06301ed0f68d798c9df5aafa9a15bff1940f";
+      sha256 = "085pzcib06236vn78slhcg8n4iiirf0aqn777afdxp2zrsqnmlzr";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
@@ -11197,12 +11390,12 @@ final: prev:
 
   zig-vim = buildVimPluginFrom2Nix {
     pname = "zig.vim";
-    version = "2021-10-14";
+    version = "2021-12-16";
     src = fetchFromGitHub {
       owner = "ziglang";
       repo = "zig.vim";
-      rev = "0adf3a1407bdf60a6c1446fb6a9a05c9823e4290";
-      sha256 = "0sdjznbzwj180g1jgn6rizbq2dq2clpcj1rj1xb3m127w4rgqhyj";
+      rev = "045bb41776280df1adaa2d63c7166684bf631a00";
+      sha256 = "1d4l6x9rwfxr9a2yfhq4ywhm72sky35ki0mr3hq7xy6xj5lpwgq7";
     };
     meta.homepage = "https://github.com/ziglang/zig.vim/";
   };
diff --git a/pkgs/misc/vim-plugins/overrides.nix b/pkgs/misc/vim-plugins/overrides.nix
index 497c64c7c2c8d..5f502cfee5dfb 100644
--- a/pkgs/misc/vim-plugins/overrides.nix
+++ b/pkgs/misc/vim-plugins/overrides.nix
@@ -227,11 +227,6 @@ self: super: {
     '';
   });
 
-  ensime-vim = super.ensime-vim.overrideAttrs (old: {
-    passthru.python3Dependencies = ps: with ps; [ sexpdata websocket-client ];
-    dependencies = with self; [ vimproc-vim vimshell-vim self.self forms ];
-  });
-
   fcitx-vim = super.fcitx-vim.overrideAttrs (old: {
     passthru.python3Dependencies = ps: with ps; [ dbus-python ];
     meta = {
@@ -312,6 +307,13 @@ self: super: {
 
   # plenary-nvim = super.toVimPlugin(luaPackages.plenary-nvim);
 
+  plenary-nvim = super.plenary-nvim.overrideAttrs (old: {
+    postPatch = ''
+      sed -Ei lua/plenary/curl.lua \
+          -e 's@(command\s*=\s*")curl(")@\1${curl}/bin/curl\2@'
+    '';
+  });
+
   gruvbox-nvim = super.gruvbox-nvim.overrideAttrs (old: {
     dependencies = with self; [ lush-nvim ];
   });
@@ -483,6 +485,10 @@ self: super: {
     dependencies = with self; [ popfix ];
   });
 
+  nvim-metals = super.nvim-metals.overrideAttrs (old: {
+    dontBuild = true;
+  });
+
   nvim-spectre = super.nvim-spectre.overrideAttrs (old: {
     dependencies = with self; [ plenary-nvim ];
   });
@@ -539,7 +545,6 @@ self: super: {
   statix = buildVimPluginFrom2Nix rec {
     inherit (statix) pname src meta;
     version = "0.1.0";
-    dependencies = with self; [ statix ];
     postPatch = ''
       # check that version is up to date
       grep 'pname = "statix-vim"' -A 1 flake.nix \
@@ -744,7 +749,7 @@ self: super: {
             libiconv
           ];
 
-          cargoSha256 = "sha256-DiCQpgyz0iNEm6gjaJU5IGdsQISHhPqlDQBzZafngjY=";
+          cargoSha256 = "sha256-iE0L4pSKPf8lf76DuSTnU7LfNUgy1O06IgxracsLpFA=";
         };
       in
       ''
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index 1e08534ec619e..e83504f9e1624 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -1,43 +1,45 @@
 907th/vim-auto-save
 aca/completion-tabnine
-AckslD/nvim-whichkey-setup.lua@main
-ackyshake/Spacegray.vim@main
-ahmedkhalf/lsp-rooter.nvim@main
+AckslD/nvim-neoclip.lua
+AckslD/nvim-whichkey-setup.lua
+ackyshake/Spacegray.vim
+ahmedkhalf/lsp-rooter.nvim
 airblade/vim-gitgutter
 airblade/vim-rooter
 ajmwagar/vim-deus
 akinsho/bufferline.nvim
 akinsho/toggleterm.nvim
 aklt/plantuml-syntax
-allendang/nvim-expand-expr@main
+allendang/nvim-expand-expr
 altercation/vim-colors-solarized
 alvan/vim-closetag
+alvarosevilla95/luatab.nvim
 alx741/vim-hindent
 alx741/vim-stylishask
 amiorin/ctrlp-z
-andersevenrud/compe-tmux@cmp
+andersevenrud/cmp-tmux@cmp
 andrep/vimacs
 andreshazard/vim-logreview
-AndrewRadev/sideways.vim@main
-AndrewRadev/splitjoin.vim@main
+AndrewRadev/sideways.vim
+AndrewRadev/splitjoin.vim
 AndrewRadev/tagalong.vim
 andsild/peskcolor.vim
 andviro/flake8-vim
-andweeb/presence.nvim@main
+andweeb/presence.nvim
 andymass/vim-matchup
 andys8/vim-elm-syntax
 antoinemadec/coc-fzf
 antoinemadec/FixCursorHold.nvim
 ap/vim-css-color
-arcticicestudio/nord-vim
+arcticicestudio/nord-vim@master
 arkav/lualine-lsp-progress
 arthurxavierx/vim-unicoder
 artur-shaik/vim-javacomplete2
 autozimu/LanguageClient-neovim
 axelf4/vim-strip-trailing-whitespace
 ayu-theme/ayu-vim
-b0o/SchemaStore.nvim@main
-b3nj5m1n/kommentary@main
+b0o/SchemaStore.nvim
+b3nj5m1n/kommentary
 bakpakin/fennel.vim
 bazelbuild/vim-bazel
 bbchung/clighter8
@@ -51,15 +53,15 @@ blueballs-theme/blueballs-neovim
 blueyed/vim-diminactive
 bogado/file-line
 bohlender/vim-smt2
-brennanfee/vim-gui-position@main
+brennanfee/vim-gui-position
 bronson/vim-trailing-whitespace
 brooth/far.vim
 buoto/gotests-vim
 camspiers/lens.vim
-camspiers/snap@main
+camspiers/snap
 carlitux/deoplete-ternjs
 ccarpita/rtorrent-syntax-file
-cespare/vim-toml@main
+cespare/vim-toml
 chaoren/vim-wordmotion
 chentau/marks.nvim
 chikatoike/concealedyank.vim
@@ -119,7 +121,7 @@ dpelle/vim-LanguageTool
 dracula/vim as dracula-vim
 drewtempelmeyer/palenight.vim
 drmingdrmer/xptemplate
-dstein64/nvim-scrollview@main
+dstein64/nvim-scrollview
 dstein64/vim-startuptime
 dylanaraps/wal.vim
 eagletmt/ghcmod-vim
@@ -127,25 +129,24 @@ eagletmt/neco-ghc
 easymotion/vim-easymotion
 eddiebergman/nvim-treesitter-pyfold
 eddyekofo94/gruvbox-flat.nvim
-EdenEast/nightfox.nvim@main
+EdenEast/nightfox.nvim
 editorconfig/editorconfig-vim
 edkolev/tmuxline.vim
-edluffy/hologram.nvim@main
-edluffy/specs.nvim@main
+edluffy/hologram.nvim
+edluffy/specs.nvim
 edwinb/idris2-vim
 ehamberg/vim-cute-python
 eigenfoo/stan-vim
 eikenb/acp
 elixir-editors/vim-elixir
-ellisonleao/glow.nvim@main
-ellisonleao/gruvbox.nvim@main
+ellisonleao/glow.nvim
+ellisonleao/gruvbox.nvim
 elmcast/elm-vim
 elzr/vim-json
-embark-theme/vim@main as embark-vim
+embark-theme/vim as embark-vim
 embear/vim-localvimrc
 enomsg/vim-haskellConcealPlus
 enricobacis/vim-airline-clock
-ensime/ensime-vim
 ervandew/supertab
 esneider/YUNOcommit.vim
 euclidianAce/BetterLua.vim
@@ -153,24 +154,24 @@ euclio/vim-markdown-composer
 f-person/git-blame.nvim
 f3fora/cmp-spell
 famiu/bufdelete.nvim
-famiu/feline.nvim
 fannheyward/telescope-coc.nvim
 farmergreg/vim-lastplace
 fatih/vim-go
 fcpg/vim-osc52
 FelikZ/ctrlp-py-matcher
+feline-nvim/feline.nvim
 fenetikm/falcon
 fhill2/floating.nvim
 fiatjaf/neuron.vim
 fisadev/vim-isort
 flazz/vim-colorschemes
 floobits/floobits-neovim
-folke/lsp-colors.nvim@main
-folke/todo-comments.nvim@main
-folke/tokyonight.nvim@main
-folke/trouble.nvim@main
-folke/twilight.nvim@main
-folke/which-key.nvim@main
+folke/lsp-colors.nvim
+folke/todo-comments.nvim
+folke/tokyonight.nvim
+folke/trouble.nvim
+folke/twilight.nvim
+folke/which-key.nvim
 FooSoft/vim-argwrap
 freitass/todo.txt-vim
 frigoeu/psc-ide-vim
@@ -178,22 +179,25 @@ fruit-in/brainfuck-vim
 fruit-in/vim-nong-theme
 fsharp/vim-fsharp
 garbas/vim-snipmate
+gbrlsnchs/telescope-lsp-handlers.nvim
 gcmt/taboo.vim
 gcmt/wildfire.vim
 gelguy/wilder.nvim
+gennaro-tedesco/nvim-jqx
 gennaro-tedesco/nvim-peekup
 gentoo/gentoo-syntax
 GEverding/vim-hocon
-gfanto/fzf-lsp.nvim@main
-ggandor/lightspeed.nvim@main
+gfanto/fzf-lsp.nvim
+ggandor/lightspeed.nvim
 gibiansky/vim-textobj-haskell
 gioele/vim-autoswap
+github/copilot.vim
 gleam-lang/gleam.vim
 glepnir/dashboard-nvim
-glepnir/galaxyline.nvim@main
-glepnir/lspsaga.nvim@main
+glepnir/galaxyline.nvim
+glepnir/lspsaga.nvim
 glepnir/oceanic-material
-glepnir/zephyr-nvim@main
+glepnir/zephyr-nvim
 glts/vim-textobj-comment
 godlygeek/csapprox
 godlygeek/tabular
@@ -227,22 +231,23 @@ henrik/vim-indexed-search
 HerringtonDarkholme/yats.vim
 honza/vim-snippets
 hotwatermorning/auto-git-diff
-hrsh7th/cmp-buffer@main
-hrsh7th/cmp-calc@main
-hrsh7th/cmp-cmdline@main
-hrsh7th/cmp-emoji@main
-hrsh7th/cmp-nvim-lsp-document-symbol@main
-hrsh7th/cmp-nvim-lsp@main
-hrsh7th/cmp-nvim-lua@main
-hrsh7th/cmp-omni@main
-hrsh7th/cmp-path@main
-hrsh7th/cmp-vsnip@main
-hrsh7th/nvim-cmp@main
+hrsh7th/cmp-buffer
+hrsh7th/cmp-calc
+hrsh7th/cmp-cmdline
+hrsh7th/cmp-emoji
+hrsh7th/cmp-nvim-lsp
+hrsh7th/cmp-nvim-lsp-document-symbol
+hrsh7th/cmp-nvim-lua
+hrsh7th/cmp-omni
+hrsh7th/cmp-path
+hrsh7th/cmp-vsnip
+hrsh7th/nvim-cmp
 hrsh7th/nvim-compe
 hrsh7th/vim-vsnip
 hrsh7th/vim-vsnip-integ
 hsanson/vim-android
 hsitz/VimOrganizer
+hura/vim-asymptote
 iamcco/coc-spell-checker
 iamcco/markdown-preview.nvim
 ianks/vim-tsx
@@ -266,11 +271,12 @@ ivanov/vim-ipython
 jackguo380/vim-lsp-cxx-highlight
 jacoborus/tender.vim
 jakwings/vim-pony
-jamessan/vim-gnupg@main
+jamessan/vim-gnupg
 jaredgorski/SpaceCamp
 jasonccox/vim-wayland-clipboard
 jaxbot/semantic-highlight.vim
 JazzCore/ctrlp-cmatcher
+jbyuki/venn.nvim
 jc-doyle/cmp-pandoc-references
 jceb/vim-hier
 jceb/vim-orgmode
@@ -279,7 +285,7 @@ jeetsukumaran/vim-indentwise
 jeffkreeftmeijer/neovim-sensible
 jeffkreeftmeijer/vim-numbertoggle
 jelera/vim-javascript-syntax
-jgdavey/tslime.vim@main
+jgdavey/tslime.vim
 jhradilek/vim-docbk
 jhradilek/vim-snippets as vim-docbk-snippets
 jiangmiao/auto-pairs
@@ -291,22 +297,22 @@ jnurmine/zenburn
 jonbri/vim-colorstepper
 jonsmithers/vim-html-template-literals
 joonty/vim-xdebug
-joosepalviste/nvim-ts-context-commentstring@main
+joosepalviste/nvim-ts-context-commentstring
 jordwalke/vim-reasonml
 josa42/coc-lua
 josa42/vim-lightline-coc
-jose-elias-alvarez/minsnip.nvim@main
-jose-elias-alvarez/null-ls.nvim@main
-jose-elias-alvarez/nvim-lsp-ts-utils@main
-joshdick/onedark.vim@main
-jpalardy/vim-slime@main
+jose-elias-alvarez/minsnip.nvim
+jose-elias-alvarez/null-ls.nvim
+jose-elias-alvarez/nvim-lsp-ts-utils
+joshdick/onedark.vim
+jpalardy/vim-slime
 jparise/vim-graphql
 jparise/vim-phabricator
 jreybert/vimagit
 jsfaint/gen_tags.vim
 JuliaEditorSupport/deoplete-julia
 JuliaEditorSupport/julia-vim
-Julian/lean.nvim@main
+Julian/lean.nvim
 Julian/vim-textobj-variable-segment
 juliosueiras/vim-terraform-completion
 junegunn/fzf.vim
@@ -342,15 +348,16 @@ karb94/neoscroll.nvim
 kassio/neoterm
 kbenzie/vim-spirv
 kchmck/vim-coffee-script
-kdheepak/cmp-latex-symbols@main
+kdheepak/cmp-latex-symbols
 kdheepak/lazygit.nvim
+kdheepak/tabline.nvim
 KeitaNakamura/neodark.vim
 keith/investigate.vim
 keith/rspec.vim
 keith/swift.vim
-kevinhwang91/nvim-bqf@main
-kevinhwang91/nvim-hlslens@main
-kevinhwang91/rnvimr@main
+kevinhwang91/nvim-bqf
+kevinhwang91/nvim-hlslens
+kevinhwang91/rnvimr
 kien/rainbow_parentheses.vim
 knubie/vim-kitty-navigator
 konfekt/fastfold
@@ -361,7 +368,6 @@ kovisoft/slimv
 kristijanhusak/defx-git
 kristijanhusak/defx-icons
 kristijanhusak/deoplete-phpactor
-kristijanhusak/orgmode.nvim
 kristijanhusak/vim-carbon-now-sh
 kristijanhusak/vim-dadbod-completion
 kristijanhusak/vim-dadbod-ui
@@ -383,10 +389,11 @@ leanprover/lean.vim
 ledger/vim-ledger
 lepture/vim-jinja
 lervag/vimtex
-lewis6991/gitsigns.nvim@main
-lf-lang/lingua-franca.vim@main
+lewis6991/gitsigns.nvim
+lf-lang/lingua-franca.vim
 lfe-support/vim-lfe
 lfilho/cosco.vim
+lifepillar/pgsql.vim
 lifepillar/vim-gruvbox8
 lifepillar/vim-mucomplete
 lighttiger2505/deoplete-vim-lsp
@@ -451,7 +458,7 @@ megaannum/forms
 megaannum/self
 mengelbrecht/lightline-bufferline
 metakirby5/codi.vim
-metalelf0/jellybeans-nvim@main
+metalelf0/jellybeans-nvim
 mfukar/robotframework-vim
 mfussenegger/nvim-dap
 mfussenegger/nvim-jdtls
@@ -470,7 +477,7 @@ michaeljsmith/vim-indent-object
 mileszs/ack.vim
 milkypostman/vim-togglelist
 mindriot101/vim-yapf
-mk12/vim-lean@main
+mk12/vim-lean
 mkasa/lushtags
 mlr-msft/vim-loves-dafny
 moll/vim-bbye
@@ -481,6 +488,7 @@ mpickering/hlint-refactor-vim
 ms-jpq/chadtree@chad
 mtikekar/vim-bsv
 MunifTanjim/nui.nvim@main
+mustache/vim-mustache-handlebars
 mzlogin/vim-markdown-toc
 mzlogin/vim-smali
 nacro90/numb.nvim
@@ -488,7 +496,7 @@ nanotech/jellybeans.vim
 natebosch/vim-lsc
 nathanaelkane/vim-indent-guides
 nathangrigg/vim-beancount
-nathanmsmith/nvim-ale-diagnostic@main
+nathanmsmith/nvim-ale-diagnostic
 navicore/vissort.vim
 nbouscal/vim-stylish-haskell
 ncm2/float-preview.nvim
@@ -543,31 +551,33 @@ nvim-lua/lsp_extensions.nvim
 nvim-lua/plenary.nvim
 nvim-lua/popup.nvim
 nvim-lualine/lualine.nvim
-nvim-neorg/neorg@main
+nvim-neorg/neorg
+nvim-orgmode/orgmode
+nvim-pack/nvim-spectre
 nvim-telescope/telescope-cheat.nvim
 nvim-telescope/telescope-dap.nvim
 nvim-telescope/telescope-frecency.nvim
-nvim-telescope/telescope-fzf-native.nvim@main
+nvim-telescope/telescope-fzf-native.nvim
 nvim-telescope/telescope-fzf-writer.nvim
 nvim-telescope/telescope-fzy-native.nvim
 nvim-telescope/telescope-project.nvim
 nvim-telescope/telescope-symbols.nvim
-nvim-telescope/telescope-z.nvim@main
+nvim-telescope/telescope-z.nvim
 nvim-telescope/telescope.nvim
 nvim-treesitter/completion-treesitter
+nvim-treesitter/nvim-treesitter
 nvim-treesitter/nvim-treesitter-refactor
-nvim-treesitter/nvim-treesitter-textobjects@0.5-compat
-nvim-treesitter/nvim-treesitter@0.5-compat
+nvim-treesitter/nvim-treesitter-textobjects
 nvim-treesitter/playground
 oberblastmeister/neuron.nvim
 oberblastmeister/termwrapper.nvim
 ocaml/vim-ocaml
 octol/vim-cpp-enhanced-highlight
-ojroques/nvim-bufdel@main
-ojroques/vim-oscyank@main
+ojroques/nvim-bufdel
+ojroques/vim-oscyank
 Olical/aniseed
 Olical/conjure
-olimorris/onedarkpro.nvim@main
+olimorris/onedarkpro.nvim
 onsails/diaglist.nvim
 onsails/lspkind-nvim
 OrangeT/vim-csharp
@@ -591,7 +601,7 @@ petRUShka/vim-opencl
 phaazon/hop.nvim
 phanviet/vim-monokai-pro
 plasticboy/vim-markdown
-Pocco81/TrueZen.nvim@main
+Pocco81/TrueZen.nvim
 ponko2/deoplete-fish
 posva/vim-vue
 powerman/vim-plugin-AnsiEsc
@@ -616,8 +626,8 @@ qpkorr/vim-bufkill
 Quramy/tsuquyomi
 racer-rust/vim-racer
 radenling/vim-dispatch-neovim
-rafamadriz/friendly-snippets@main
-rafamadriz/neon@main
+rafamadriz/friendly-snippets
+rafamadriz/neon
 rafaqz/ranger.vim
 rafi/awesome-vim-colorschemes
 raghur/fruzzy
@@ -632,6 +642,7 @@ rbong/vim-flog
 rcarriga/nvim-dap-ui
 rcarriga/nvim-notify
 rcarriga/vim-ultest
+rebelot/kanagawa.nvim
 rhysd/clever-f.vim
 rhysd/committia.vim
 rhysd/conflict-marker.vim
@@ -642,10 +653,10 @@ rhysd/vim-grammarous
 rhysd/vim-operator-surround
 RishabhRD/nvim-lsputils
 RishabhRD/popfix
-rktjmp/fwatch.nvim@main
-rktjmp/lush.nvim@main
-rmagatti/auto-session@main
-rmagatti/goto-preview@main
+rktjmp/fwatch.nvim
+rktjmp/lush.nvim
+rmagatti/auto-session
+rmagatti/goto-preview
 RobertAudi/securemodelines
 rodjek/vim-puppet
 romainl/vim-cool
@@ -670,7 +681,7 @@ rust-lang/rust.vim
 ryanoasis/vim-devicons
 ryvnf/readline.vim
 saadparwaiz1/cmp_luasnip
-saecki/crates.nvim@main
+saecki/crates.nvim
 sainnhe/edge
 sainnhe/gruvbox-material
 sainnhe/sonokai
@@ -678,6 +689,7 @@ sakhnik/nvim-gdb
 saltstack/salt-vim
 samoshkin/vim-mergetool
 sbdchd/neoformat
+scalameta/nvim-metals
 sdiehl/vim-ormolu
 sebastianmarkow/deoplete-rust
 SevereOverfl0w/deoplete-github
@@ -711,7 +723,7 @@ SidOfc/mkdx
 simnalamburt/vim-mundo
 simrat39/rust-tools.nvim
 simrat39/symbols-outline.nvim
-sindrets/diffview.nvim@main
+sindrets/diffview.nvim
 SirVer/ultisnips
 sjl/gundo.vim
 sjl/splice.vim
@@ -748,7 +760,7 @@ ternjs/tern_for_vim
 terryma/vim-expand-region
 terryma/vim-multiple-cursors
 tex/vimpreviewpandoc
-Th3Whit3Wolf/one-nvim@main
+Th3Whit3Wolf/one-nvim
 theHamsta/nvim-dap-virtual-text
 ThePrimeagen/git-worktree.nvim
 ThePrimeagen/harpoon
@@ -772,6 +784,7 @@ tmhedberg/SimpylFold
 tmsvg/pear-tree
 tmux-plugins/vim-tmux
 tmux-plugins/vim-tmux-focus-events
+tom-anders/telescope-vim-bookmarks.nvim
 tomasiser/vim-code-dark
 tomasr/molokai
 tomlion/vim-solidity
@@ -814,11 +827,11 @@ tpope/vim-tbone
 tpope/vim-unimpaired
 tpope/vim-vinegar
 travitch/hasksyn
-tremor-rs/tremor-vim@main
+tremor-rs/tremor-vim
 triglav/vim-visual-increment
 troydm/zoomwintab.vim
 turbio/bracey.vim
-tversteeg/registers.nvim@main
+tversteeg/registers.nvim
 tweekmonster/wstrip.vim
 twerth/ir_black
 twinside/vim-haskellconceal
@@ -826,8 +839,8 @@ Twinside/vim-hoogle
 tyru/caw.vim
 tyru/open-browser-github.vim
 tyru/open-browser.vim
-tzachar/cmp-tabnine@main
-tzachar/compe-tabnine@main
+tzachar/cmp-tabnine
+tzachar/compe-tabnine
 uarun/vim-protobuf
 udalov/kotlin-vim
 ujihisa/neco-look
@@ -838,6 +851,8 @@ Valodim/deoplete-notmuch
 vhda/verilog_systemverilog.vim
 vifm/vifm.vim
 vigoux/LanguageTool.nvim
+vijaymarupudi/nvim-fzf
+vijaymarupudi/nvim-fzf-commands
 vim-airline/vim-airline
 vim-airline/vim-airline-themes
 vim-autoformat/vim-autoformat
@@ -868,11 +883,13 @@ vim-scripts/mayansmoke
 vim-scripts/PreserveNoEOL
 vim-scripts/prev_indent
 vim-scripts/random.vim
+vim-scripts/rcshell.vim
 vim-scripts/Rename
 vim-scripts/ReplaceWithRegister
 vim-scripts/ShowMultiBase
 vim-scripts/tabmerge
 vim-scripts/taglist.vim
+vim-scripts/timestamp.vim
 vim-scripts/utl.vim
 vim-scripts/vis
 vim-scripts/wombat256.vim
@@ -897,7 +914,7 @@ w0ng/vim-hybrid
 wakatime/vim-wakatime
 wannesm/wmgraphviz.vim
 wbthomason/packer.nvim
-weilbith/nvim-code-action-menu@main
+weilbith/nvim-code-action-menu
 wellle/targets.vim
 wellle/tmux-complete.vim
 wfxr/minimap.vim
@@ -907,7 +924,6 @@ wincent/command-t
 wincent/ferret
 wincent/terminus
 windwp/nvim-autopairs
-windwp/nvim-spectre
 winston0410/cmd-parser.nvim
 winston0410/range-highlight.nvim
 wlangstroth/vim-racket
@@ -918,8 +934,8 @@ xolox/vim-misc
 xuhdev/vim-latex-live-preview
 Xuyuanp/nerdtree-git-plugin
 Xuyuanp/scrollbar.nvim
-yamatsum/nvim-cursorline@main
-yamatsum/nvim-nonicons@main
+yamatsum/nvim-cursorline
+yamatsum/nvim-nonicons
 ycm-core/YouCompleteMe
 Yggdroot/hiPairs
 Yggdroot/indentLine
diff --git a/pkgs/misc/vscode-extensions/default.nix b/pkgs/misc/vscode-extensions/default.nix
index 25a8495c5a9f3..a158777787a87 100644
--- a/pkgs/misc/vscode-extensions/default.nix
+++ b/pkgs/misc/vscode-extensions/default.nix
@@ -135,8 +135,8 @@ let
           mktplcRef = {
             publisher = "antfu";
             name = "slidev";
-            version = "0.3.2";
-            sha256 = "sha256-vzmByEiKZIkd707Bs4RGQrMII5sghYlkQI6aAJOHFcY=";
+            version = "0.3.3";
+            sha256 = "0pqiwcvn5c8kwqlmz4ribwwra69gbiqvz41ig4fh29hkyh078rfk";
           };
           meta = with lib; {
             license = licenses.mit;
@@ -199,8 +199,8 @@ let
         mktplcRef = {
           name = "vscode-neovim";
           publisher = "asvetliakov";
-          version = "0.0.82";
-          sha256 = "17f0jzg9vdbqdjnnc5i1q28ij2kckvvxi7fw9szmyy754f074jb1";
+          version = "0.0.83";
+          sha256 = "1giybf12p0h0fm950w9bwvzdk77771zfkylrqs9h0lhbdzr92qbl";
         };
         meta = {
           license = lib.licenses.mit;
@@ -363,8 +363,8 @@ let
         mktplcRef = {
           name = "bracket-pair-colorizer-2";
           publisher = "CoenraadS";
-          version = "0.2.1";
-          sha256 = "0bfvzs4ac537zqhnqaa38jf4lhiy1fmqcv6lq89nnx8k963380z7";
+          version = "0.2.2";
+          sha256 = "0zcbs7h801agfs2cggk1cz8m8j0i2ypmgznkgw17lcx3zisll9ad";
         };
         meta = with lib; {
           license = licenses.mit;
@@ -529,8 +529,8 @@ let
         mktplcRef = {
           name = "gitlens";
           publisher = "eamodio";
-          version = "11.6.0";
-          sha256 = "sha256-JxCNE/IL/v94xWmhebsRZo1Gw+nSSpDgZ41ZGongGVI=";
+          version = "11.7.0";
+          sha256 = "0apjjlfdwljqih394ggz2d8m599pyyjrb0b4cfcz83601b7hk3x6";
         };
         meta = with lib; {
           changelog = "https://marketplace.visualstudio.com/items/eamodio.gitlens/changelog";
@@ -617,8 +617,8 @@ let
         mktplcRef = {
           name = "prettier-vscode";
           publisher = "esbenp";
-          version = "8.0.1";
-          sha256 = "017lqpmzjxq5f1zr49akcm9gfki0qq8v7pj7gks6a3szjdx16mnl";
+          version = "9.0.0";
+          sha256 = "1nak1hg46wxkl0kb0zhc343kq2f4nd5q1fqscb29jybd4qdb8lgn";
         };
       };
 
@@ -792,8 +792,8 @@ let
           mktplcRef = {
             publisher = "github";
             name = "copilot";
-            version = "1.4.2678";
-            sha256 = "sha256-NryXLuMIZJngp2dBsGbNhBiblEthckw1Zk2vqMXIzFM=";
+            version = "1.7.4421";
+            sha256 = "1wvzf8rq8ligj079f1m74zzna2mfmhcbgvvrsw6w0wxw9x8fn4wy";
           };
           meta = { license = lib.licenses.unfree; };
         };
@@ -819,8 +819,8 @@ let
           mktplcRef = {
             name = "vscode-pull-request-github";
             publisher = "github";
-            version = "0.22.0";
-            sha256 = "13p3z86vkra26npp5a78pxdwa4z6jqjzsd38arhgdnjgwmi6bnrw";
+            version = "0.35.2021122109";
+            sha256 = "1n7vjwxm92ibwhgn2n57p54dqpi0vvyllmcgjxilgnr14irg5457";
           };
           meta = { license = lib.licenses.mit; };
         };
@@ -921,8 +921,8 @@ let
         mktplcRef = {
           name = "Ionide-fsharp";
           publisher = "Ionide";
-          version = "5.5.5";
-          sha256 = "xrBNiIbZVJ0sGUk/4PudD8kSyX94QkrFtf7Ho/sB0Vs=";
+          version = "5.10.1";
+          sha256 = "sha256-LkWWgyh4khPyUgekVeO8ZzPK+1gTrS8d9Yz6/kHomr8=";
         };
         meta = with lib; {
           changelog = "https://marketplace.visualstudio.com/items/Ionide.Ionide-fsharp/changelog";
@@ -950,8 +950,8 @@ let
         mktplcRef = {
           publisher = "influxdata";
           name = "flux";
-          version = "0.6.5";
-          sha256 = "sha256-rKkZ7Sg8buryFtbIuKsrf3V3Rf7PP8hnbEIRFf4FvSM=";
+          version = "0.6.13";
+          sha256 = "0myl7rppzcz7hxy9zjs81vs9p66lnbfcrdr6s5qb4i6929gmywfy";
         };
         meta = with lib; {
           license = licenses.mit;
@@ -1192,6 +1192,18 @@ let
 
       ms-toolsai.jupyter = callPackage ./ms-toolsai-jupyter {};
 
+      ms-toolsai.jupyter-renderers = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "jupyter-renderers";
+          publisher = "ms-toolsai";
+          version = "1.0.4";
+          sha256 = "sha256-aKWu0Gp0f28DCv2akF/G8UDaGfTN410CcH8CAmW7mgU=";
+        };
+        meta = {
+          license = lib.licenses.mit;
+        };
+      };
+
       mvllow.rose-pine = buildVscodeMarketplaceExtension {
         mktplcRef = {
           publisher = "mvllow";
@@ -1325,8 +1337,8 @@ let
         mktplcRef = {
           name = "scala";
           publisher = "scala-lang";
-          version = "0.5.3";
-          sha256 = "0isw8jh845hj2fw7my1i19b710v3m5qsjy2faydb529ssdqv463p";
+          version = "0.5.5";
+          sha256 = "1gqgamm97sq09za8iyb06jf7hpqa2mlkycbx6zpqwvlwd3a92qr1";
         };
         meta = {
           license = lib.licenses.mit;
@@ -1337,8 +1349,8 @@ let
         mktplcRef = {
           name = "metals";
           publisher = "scalameta";
-          version = "1.10.4";
-          sha256 = "0q6zjpdi98png4vpzz39q85nxmsh3h1nnan58saz5rr83d6jgj89";
+          version = "1.10.15";
+          sha256 = "1yzvwdxipilxpg50sh1glm6p2mmn75pzq8kadk7cyl1kqlqd40ii";
         };
         meta = {
           license = lib.licenses.asl20;
@@ -1613,13 +1625,13 @@ let
         mktplcRef = {
           name = "vscode-ltex";
           publisher = "valentjn";
-          version = "13.0.0";
+          version = "13.1.0";
         };
 
         vsix = fetchurl {
            name = "${mktplcRef.publisher}-${mktplcRef.name}.zip";
            url = "https://github.com/valentjn/vscode-ltex/releases/download/${mktplcRef.version}/vscode-ltex-${mktplcRef.version}-offline-linux-x64.vsix";
-           sha256 = "6db4846dee4e394f7bcfb7e29520d45d6bc1534482ba73cf40cd5edf3f6ec266";
+           sha256 = "1nlrijjwc35n1xgb5lgnr4yvlgfcxd0vdj93ip8lv2xi8x1ni5f6";
         };
 
         nativeBuildInputs = [ jq moreutils ];
diff --git a/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json b/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json
index 6b01ee57ff2e9..54a931eee86a5 100644
--- a/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json
+++ b/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json
@@ -1,6 +1,6 @@
 {
   "name": "rust-analyzer",
-  "version": "0.2.792",
+  "version": "0.2.834",
   "dependencies": {
     "https-proxy-agent": "^5.0.0",
     "node-fetch": "^2.6.1",
@@ -20,7 +20,7 @@
     "tslib": "^2.3.0",
     "typescript": "^4.3.5",
     "typescript-formatter": "^7.2.2",
-    "vsce": "=1.95.1",
+    "vsce": "^1.95.1",
     "vscode-test": "^1.5.1"
   }
 }
diff --git a/pkgs/misc/vscode-extensions/rust-analyzer/default.nix b/pkgs/misc/vscode-extensions/rust-analyzer/default.nix
index 82491389791ed..fa08acb84c600 100644
--- a/pkgs/misc/vscode-extensions/rust-analyzer/default.nix
+++ b/pkgs/misc/vscode-extensions/rust-analyzer/default.nix
@@ -1,11 +1,15 @@
-# Update script: pkgs/development/tools/rust/rust-analyzer/update.sh
 { lib
+, fetchFromGitHub
 , vscode-utils
 , jq
 , rust-analyzer
 , nodePackages
 , moreutils
 , esbuild
+, pkg-config
+, libsecret
+, stdenv
+, darwin
 , setDefaultServerPath ? true
 }:
 
@@ -13,16 +17,35 @@ let
   pname = "rust-analyzer";
   publisher = "matklad";
 
+  # Use the plugin version as in vscode marketplace, updated by update script.
+  inherit (vsix) version;
+
+  releaseTag = "2021-11-29";
+
+  src = fetchFromGitHub {
+    owner = "rust-analyzer";
+    repo = "rust-analyzer";
+    rev = releaseTag;
+    sha256 = "sha256-vh7z8jupVxXPOko3sWUsOB7eji/7lKfwJ/CE3iw97Sw=";
+  };
+
   build-deps = nodePackages."rust-analyzer-build-deps-../../misc/vscode-extensions/rust-analyzer/build-deps";
   # FIXME: Making a new derivation to link `node_modules` and run `npm run package`
   # will cause a build failure.
   vsix = build-deps.override {
-    src = "${rust-analyzer.src}/editors/code";
+    src = "${src}/editors/code";
     outputs = [ "vsix" "out" ];
 
-    releaseTag = rust-analyzer.version;
+    inherit releaseTag;
 
-    nativeBuildInputs = [ jq moreutils esbuild ];
+    nativeBuildInputs = [
+      jq moreutils esbuild
+      # Required by `keytar`, which is a dependency of `vsce`.
+      pkg-config libsecret
+    ] ++ lib.optionals stdenv.isDarwin [
+      darwin.apple_sdk.frameworks.AppKit
+      darwin.apple_sdk.frameworks.Security
+    ];
 
     # Follows https://github.com/rust-analyzer/rust-analyzer/blob/41949748a6123fd6061eb984a47f4fe780525e63/xtask/src/dist.rs#L39-L65
     postInstall = ''
@@ -34,13 +57,12 @@ let
       ' package.json | sponge package.json
 
       mkdir -p $vsix
-      npx vsce package -o $vsix/${pname}.zip
+      # vsce ask for continue due to missing LICENSE.md
+      # Should be removed after https://github.com/rust-analyzer/rust-analyzer/commit/acd5c1f19bf7246107aaae7b6fe3f676a516c6d2
+      echo y | npx vsce package -o $vsix/${pname}.zip
     '';
   };
 
-  # Use the plugin version as in vscode marketplace, updated by update script.
-  inherit (vsix) version;
-
 in
 vscode-utils.buildVscodeExtension {
   inherit version vsix;
@@ -60,7 +82,7 @@ vscode-utils.buildVscodeExtension {
     description = "An alternative rust language server to the RLS";
     homepage = "https://github.com/rust-analyzer/rust-analyzer";
     license = with licenses; [ mit asl20 ];
-    maintainers = with maintainers; [ oxalica ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/misc/vscode-extensions/terraform/default.nix b/pkgs/misc/vscode-extensions/terraform/default.nix
index 66d23e491161c..3ab0f893c1a5e 100644
--- a/pkgs/misc/vscode-extensions/terraform/default.nix
+++ b/pkgs/misc/vscode-extensions/terraform/default.nix
@@ -3,8 +3,8 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
   mktplcRef = {
     name = "terraform";
     publisher = "hashicorp";
-    version = "2.16.0";
-    sha256 = "0ya0xmmn4rmbvh8mxz466msbb3y2xqi4bg9dgymy2wq8cwzbn81b";
+    version = "2.17.0";
+    sha256 = "sha256-IZlw1lYibbBw3rcSiWEKP8rObxnMCE1ppogwmigNgwE=";
   };
 
   patches = [ ./fix-terraform-ls.patch ];
diff --git a/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch b/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch
index e20c29a74b56f..e2dcd0b70aa99 100644
--- a/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch
+++ b/pkgs/misc/vscode-extensions/terraform/fix-terraform-ls.patch
@@ -1,8 +1,8 @@
 diff --git a/out/serverPath.js b/out/serverPath.js
-index d25f5d4..289f0dd 100644
+index fafa915..2e6d376 100644
 --- a/out/serverPath.js
 +++ b/out/serverPath.js
-@@ -8,7 +8,13 @@ exports.CUSTOM_BIN_PATH_OPTION_NAME = 'languageServer.pathToBinary';
+@@ -18,7 +18,13 @@ exports.CUSTOM_BIN_PATH_OPTION_NAME = 'languageServer.pathToBinary';
  class ServerPath {
      constructor(context) {
          this.context = context;
diff --git a/pkgs/misc/wiki-tui/default.nix b/pkgs/misc/wiki-tui/default.nix
index 13bc877ea8fc9..cc483cd66ad63 100644
--- a/pkgs/misc/wiki-tui/default.nix
+++ b/pkgs/misc/wiki-tui/default.nix
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
     description = "A simple and easy to use Wikipedia Text User Interface";
     homepage = "https://github.com/builditluc/wiki-tui";
     license = licenses.mit;
-    maintainers = with maintainers; [ legendofmiracles ];
+    maintainers = with maintainers; [ lom ];
     mainProgram = "wiki-tui";
   };
 }
diff --git a/pkgs/os-specific/bsd/netbsd/default.nix b/pkgs/os-specific/bsd/netbsd/default.nix
index 5fd9bbc51a0f1..beaa176dae157 100644
--- a/pkgs/os-specific/bsd/netbsd/default.nix
+++ b/pkgs/os-specific/bsd/netbsd/default.nix
@@ -72,7 +72,7 @@ in lib.makeScopeWithSplicing
     nativeBuildInputs = with buildPackages.netbsd; [
       bsdSetupHook netbsdSetupHook
       makeMinimal
-      install tsort lorder mandoc groff statHook rsync
+      install tsort lorder buildPackages.mandoc groff statHook rsync
     ];
     buildInputs = with self; compatIfNeeded;
 
@@ -966,7 +966,15 @@ in lib.makeScopeWithSplicing
     noCC = true;
     version = "9.2";
     sha256 = "1l4lmj4kmg8dl86x94sr45w0xdnkz8dn4zjx0ipgr9bnq98663zl";
-    makeFlags = defaultMakeFlags ++ [ "FILESDIR=$(out)/share" ];
+    # man0 generates a man.pdf using ps2pdf, but doesn't install it later,
+    # so we can avoid the dependency on ghostscript
+    postPatch = ''
+      substituteInPlace man0/Makefile --replace "ps2pdf" "echo noop "
+    '';
+    makeFlags = defaultMakeFlags ++ [
+      "FILESDIR=$(out)/share"
+      "MKRUMP=no" # would require to have additional path sys/rump/share/man
+    ];
   };
   #
   # END MISCELLANEOUS
diff --git a/pkgs/os-specific/darwin/apple-sdk/default.nix b/pkgs/os-specific/darwin/apple-sdk/default.nix
index 56b77fbf21489..0cf95cbe9c561 100644
--- a/pkgs/os-specific/darwin/apple-sdk/default.nix
+++ b/pkgs/os-specific/darwin/apple-sdk/default.nix
@@ -271,7 +271,7 @@ in rec {
 
   overrides = super: {
     AppKit = lib.overrideDerivation super.AppKit (drv: {
-      __propagatedImpureHostDeps = drv.__propagatedImpureHostDeps ++ [
+      __propagatedImpureHostDeps = drv.__propagatedImpureHostDeps or [] ++ [
         "/System/Library/PrivateFrameworks/"
       ];
     });
@@ -285,13 +285,13 @@ in rec {
     });
 
     CoreMedia = lib.overrideDerivation super.CoreMedia (drv: {
-      __propagatedImpureHostDeps = drv.__propagatedImpureHostDeps ++ [
+      __propagatedImpureHostDeps = drv.__propagatedImpureHostDeps or [] ++ [
         "/System/Library/Frameworks/CoreImage.framework"
       ];
     });
 
     CoreMIDI = lib.overrideDerivation super.CoreMIDI (drv: {
-      __propagatedImpureHostDeps = drv.__propagatedImpureHostDeps ++ [
+      __propagatedImpureHostDeps = drv.__propagatedImpureHostDeps or [] ++ [
         "/System/Library/PrivateFrameworks/"
       ];
       setupHook = ./private-frameworks-setup-hook.sh;
diff --git a/pkgs/os-specific/darwin/apple-source-releases/Libc/0001-Define-TARGET_OS_EMBEDDED-in-std-lib-io-if-not-defin.patch b/pkgs/os-specific/darwin/apple-source-releases/Libc/0001-Define-TARGET_OS_EMBEDDED-in-std-lib-io-if-not-defin.patch
new file mode 100644
index 0000000000000..2ba67734c5444
--- /dev/null
+++ b/pkgs/os-specific/darwin/apple-source-releases/Libc/0001-Define-TARGET_OS_EMBEDDED-in-std-lib-io-if-not-defin.patch
@@ -0,0 +1,47 @@
+From 187d0e8847d080790b22724352e51de50d214dd8 Mon Sep 17 00:00:00 2001
+From: toonn <toonn@toonn.io>
+Date: Tue, 27 Jul 2021 15:12:14 +0200
+Subject: [PATCH] Define TARGET_OS_EMBEDDED in std{lib,io} if not defined
+
+Originally attempted including `TargetConditionals.h` but this had
+knock-on effects, for example, breaking the zlib build because of
+`TARGET_OS_MAC` getting defined.
+
+This should be the lowest impact solution and corresponds to the default
+behavior IIUC.
+---
+ include/stdio.h  | 3 +++
+ include/stdlib.h | 3 +++
+ 2 files changed, 6 insertions(+)
+
+diff --git a/include/stdio.h b/include/stdio.h
+index d0cf7a5..487496e 100644
+--- a/include/stdio.h
++++ b/include/stdio.h
+@@ -351,6 +351,9 @@ __END_DECLS
+ /* Additional functionality provided by:
+  * POSIX.2-1992 C Language Binding Option
+  */
++#ifndef TARGET_OS_EMBEDDED
++#  define TARGET_OS_EMBEDDED 0
++#endif
+ #if TARGET_OS_EMBEDDED
+ #define __swift_unavailable_on(osx_msg, ios_msg) __swift_unavailable(ios_msg)
+ #else
+diff --git a/include/stdlib.h b/include/stdlib.h
+index c04d3a7..0b454ba 100644
+--- a/include/stdlib.h
++++ b/include/stdlib.h
+@@ -183,6 +183,9 @@ unsigned long long
+ #ifndef LIBC_ALIAS_SYSTEM
+ //End-Libc
+ 
++#ifndef TARGET_OS_EMBEDDED
++#  define TARGET_OS_EMBEDDED 0
++#endif
+ #if TARGET_OS_EMBEDDED
+ #define __swift_unavailable_on(osx_msg, ios_msg) __swift_unavailable(ios_msg)
+ #else
+-- 
+2.17.2 (Apple Git-113)
+
diff --git a/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix b/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix
index 9bec0b103c9db..915d3a61f8169 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/Libc/default.nix
@@ -3,6 +3,10 @@
 appleDerivation' stdenvNoCC {
   nativeBuildInputs = [ ed unifdef ];
 
+  patches = [
+    ./0001-Define-TARGET_OS_EMBEDDED-in-std-lib-io-if-not-defin.patch
+  ];
+
   # TODO: asl.h actually comes from syslog project now
   installPhase = ''
     export SRCROOT=$PWD
diff --git a/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix b/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix
index 66190b7b4e37c..86c91e9b55ccb 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/Libsystem/default.nix
@@ -63,20 +63,21 @@ appleDerivation' stdenv {
     cat <<EOF > $out/include/TargetConditionals.h
     #ifndef __TARGETCONDITIONALS__
     #define __TARGETCONDITIONALS__
-    #define TARGET_OS_MAC           1
-    #define TARGET_OS_OSX           1
-    #define TARGET_OS_WIN32         0
-    #define TARGET_OS_UNIX          0
-    #define TARGET_OS_EMBEDDED      0
-    #define TARGET_OS_IPHONE        0
-    #define TARGET_OS_IOS           0
-    #define TARGET_OS_WATCH         0
-    #define TARGET_OS_BRIDGE        0
-    #define TARGET_OS_TV            0
-    #define TARGET_OS_SIMULATOR     0
-    #define TARGET_IPHONE_SIMULATOR 0
-    #define TARGET_OS_NANO          0
-    #define TARGET_OS_LINUX         0
+    #define TARGET_OS_MAC               1
+    #define TARGET_OS_WIN32             0
+    #define TARGET_OS_UNIX              0
+    #define TARGET_OS_OSX               1
+    #define TARGET_OS_IPHONE            0
+    #define TARGET_OS_IOS               0
+    #define TARGET_OS_WATCH             0
+    #define TARGET_OS_BRIDGE            0
+    #define TARGET_OS_TV                0
+    #define TARGET_OS_SIMULATOR         0
+    #define TARGET_OS_EMBEDDED          0
+    #define TARGET_OS_EMBEDDED_OTHER    0 /* Used in configd */
+    #define TARGET_IPHONE_SIMULATOR     TARGET_OS_SIMULATOR /* deprecated */
+    #define TARGET_OS_NANO              TARGET_OS_WATCH /* deprecated */
+    #define TARGET_OS_LINUX             0
 
     #define TARGET_CPU_PPC          0
     #define TARGET_CPU_PPC64        0
@@ -84,6 +85,7 @@ appleDerivation' stdenv {
     #define TARGET_CPU_X86          0
     #define TARGET_CPU_X86_64       1
     #define TARGET_CPU_ARM          0
+    #define TARGET_CPU_ARM64        0
     #define TARGET_CPU_MIPS         0
     #define TARGET_CPU_SPARC        0
     #define TARGET_CPU_ALPHA        0
diff --git a/pkgs/os-specific/darwin/apple-source-releases/xnu/python3.patch b/pkgs/os-specific/darwin/apple-source-releases/xnu/python3.patch
index 10778406c8e0e..9f29376187f4c 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/xnu/python3.patch
+++ b/pkgs/os-specific/darwin/apple-source-releases/xnu/python3.patch
@@ -18,7 +18,7 @@ index 73b2db4..d354ba0 100755
 -	m = id_name_pattern.match(line)
 -	if m:
 +        m = id_name_pattern.match(line)
-+    if m:
++        if m:
              code_table += [(int(m.group(1),base=16), m.group(2))]
  
  # emit typedef:
diff --git a/pkgs/os-specific/darwin/swift-corelibs/0001-Add-missing-TARGET_OS_-defines.patch b/pkgs/os-specific/darwin/swift-corelibs/0001-Add-missing-TARGET_OS_-defines.patch
new file mode 100644
index 0000000000000..db17c517c7202
--- /dev/null
+++ b/pkgs/os-specific/darwin/swift-corelibs/0001-Add-missing-TARGET_OS_-defines.patch
@@ -0,0 +1,30 @@
+From 549160574ee44656d50997b27ef83736e0848201 Mon Sep 17 00:00:00 2001
+From: toonn <toonn@toonn.io>
+Date: Mon, 26 Apr 2021 20:51:05 +0200
+Subject: [PATCH] Add missing TARGET_OS_* defines
+
+---
+ .../Base.subproj/SwiftRuntime/TargetConditionals.h         | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/CoreFoundation/Base.subproj/SwiftRuntime/TargetConditionals.h b/CoreFoundation/Base.subproj/SwiftRuntime/TargetConditionals.h
+index 6d42b873..abf746c9 100644
+--- a/CoreFoundation/Base.subproj/SwiftRuntime/TargetConditionals.h
++++ b/CoreFoundation/Base.subproj/SwiftRuntime/TargetConditionals.h
+@@ -118,6 +118,13 @@
+ 
+ #define TARGET_OS_WIN32        TARGET_OS_WINDOWS
+ #define TARGET_OS_MAC          TARGET_OS_DARWIN
++#define TARGET_OS_OSX          TARGET_OS_DARWIN
++
++#define TARGET_OS_IPHONE       0
++#define TARGET_OS_WATCH        0
++#define TARGET_OS_TV           0
++#define TARGET_OS_EMBEDDED     0
++
+ 
+ #if __x86_64__
+ #define TARGET_CPU_PPC          0
+-- 
+2.17.2 (Apple Git-113)
+
diff --git a/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix b/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix
index 560be0c31ab61..bfe862eb3957d 100644
--- a/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix
+++ b/pkgs/os-specific/darwin/swift-corelibs/corefoundation.nix
@@ -23,6 +23,8 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ ninja python3 ];
   buildInputs = [ curl libxml2 objc4 ICU ];
 
+  patches = [ ./0001-Add-missing-TARGET_OS_-defines.patch ];
+
   postPatch = ''
     cd CoreFoundation
 
@@ -71,23 +73,12 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
-  # FIXME: Workaround for intermittent build failures of CFRuntime.c.
-  # Based on testing this issue seems to only occur with clang_7, so
-  # please remove this when updating the default llvm versions to 8 or
-  # later.
-  buildPhase = lib.optionalString true ''
-    for i in {1..512}; do
-        if ninja -j $NIX_BUILD_CORES; then
-            break
-        fi
-
-        echo >&2
-        echo "[$i/512] retrying build, workaround for #66811" >&2
-        echo "  With clang_7 the build of CFRuntime.c fails intermittently." >&2
-        echo "  See https://github.com/NixOS/nixpkgs/issues/66811 for more details." >&2
-        echo >&2
-        continue
-    done
+  buildPhase = ''
+    runHook preBuild
+
+    ninja -j $NIX_BUILD_CORES
+
+    runHook postBuild
   '';
 
   # TODO: their build system sorta kinda can do this, but it doesn't seem to work right now
diff --git a/pkgs/os-specific/darwin/yabai/default.nix b/pkgs/os-specific/darwin/yabai/default.nix
index b371e97d06fc3..5a3daed9fff81 100644
--- a/pkgs/os-specific/darwin/yabai/default.nix
+++ b/pkgs/os-specific/darwin/yabai/default.nix
@@ -1,17 +1,24 @@
-{ lib, stdenv, fetchFromGitHub, Carbon, Cocoa, ScriptingBridge, xxd }:
+{ lib, stdenv, fetchFromGitHub, darwin, xxd }:
 
 stdenv.mkDerivation rec {
   pname = "yabai";
-  version = "3.3.4";
+  version = "3.3.10";
 
   src = fetchFromGitHub {
     owner = "koekeishiya";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1pvyjdxgy7yxxz4x87f8an0dlxvxbnmv5kya8hkzw2na453ihvab";
+    sha256 = "sha256-8O6//T894C32Pba3F2Z84Z6VWeCXlwml3xsXoIZGqL0=";
   };
 
-  buildInputs = [ Carbon Cocoa ScriptingBridge xxd ];
+  nativeBuildInputs = [ xxd ];
+
+  buildInputs = with darwin.apple_sdk.frameworks; [
+    Carbon
+    Cocoa
+    ScriptingBridge
+    SkyLight
+  ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/os-specific/linux/acpi-call/default.nix b/pkgs/os-specific/linux/acpi-call/default.nix
index 39842927c9a1c..b84ecd21293a7 100644
--- a/pkgs/os-specific/linux/acpi-call/default.nix
+++ b/pkgs/os-specific/linux/acpi-call/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
 
-  makeFlags = [
+  makeFlags = kernel.makeFlags ++ [
     "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
   ];
 
diff --git a/pkgs/os-specific/linux/acpid/default.nix b/pkgs/os-specific/linux/acpid/default.nix
index 2b8dac0c8e43e..b766739aaafaa 100644
--- a/pkgs/os-specific/linux/acpid/default.nix
+++ b/pkgs/os-specific/linux/acpid/default.nix
@@ -2,23 +2,15 @@
 
 stdenv.mkDerivation rec {
   pname = "acpid";
-  version = "2.0.32";
+  version = "2.0.33";
 
   src = fetchurl {
     url = "mirror://sourceforge/acpid2/acpid-${version}.tar.xz";
-    sha256 = "0zhmxnhnhg4v1viw82yjr22kram6k5k1ixznhayk8cnw7q5x7lpj";
+    sha256 = "sha256-CFb3Gz6zShtmPQqOY2Pfy8UZ5j2EczBJiJhljily2+g=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
 
-  # remove when https://sourceforge.net/p/acpid2/code/merge-requests/1/ is merged
-  postPatch = ''
-    substituteInPlace configure.ac \
-      --replace "AC_FUNC_MALLOC" "" \
-      --replace "AC_FUNC_REALLOC" "" \
-      --replace "strrchr strtol" "strrchr strtol malloc realloc"
-  '';
-
   meta = with lib; {
     homepage = "https://sourceforge.net/projects/acpid2/";
     description = "A daemon for delivering ACPI events to userspace programs";
diff --git a/pkgs/os-specific/linux/alsa-project/alsa-utils/default.nix b/pkgs/os-specific/linux/alsa-project/alsa-utils/default.nix
index 782e6ffce8cb2..e614be978c067 100644
--- a/pkgs/os-specific/linux/alsa-project/alsa-utils/default.nix
+++ b/pkgs/os-specific/linux/alsa-project/alsa-utils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "alsa-utils";
-  version = "1.2.5.1";
+  version = "1.2.6";
 
   src = fetchurl {
     url = "mirror://alsa/utils/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-nBaa43pJKV+bl7kqzncoA9r2tlEKGVdOC3j4flYhGNA=";
+    sha256 = "sha256-ah79ih8dnTjkiWM+rsH/+lwxVmOzFsq4BL5IaIfmFF0=";
   };
 
   nativeBuildInputs = [ gettext makeWrapper ];
diff --git a/pkgs/os-specific/linux/amdgpu-pro/default.nix b/pkgs/os-specific/linux/amdgpu-pro/default.nix
index 13dd8302b18d2..0f65d1c0c484b 100644
--- a/pkgs/os-specific/linux/amdgpu-pro/default.nix
+++ b/pkgs/os-specific/linux/amdgpu-pro/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, elfutils
 , xorg, patchelf, openssl, libdrm, udev
-, libxcb, libxshmfence, epoxy, perl, zlib
+, libxcb, libxshmfence, libepoxy, perl, zlib
 , ncurses
 , libsOnly ? false, kernel ? null
 }:
@@ -101,7 +101,7 @@ in stdenv.mkDerivation rec {
 
   depLibPath = makeLibraryPath [
     stdenv.cc.cc.lib xorg.libXext xorg.libX11 xorg.libXdamage xorg.libXfixes zlib
-    xorg.libXxf86vm libxcb libxshmfence epoxy openssl libdrm elfutils udev ncurses5
+    xorg.libXxf86vm libxcb libxshmfence libepoxy openssl libdrm elfutils udev ncurses5
   ];
 
   installPhase = ''
@@ -173,7 +173,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "AMDGPU-PRO drivers";
-    homepage =  "http://support.amd.com/en-us/kb-articles/Pages/AMDGPU-PRO-Beta-Driver-for-Vulkan-Release-Notes.aspx";
+    homepage =  "https://www.amd.com/en/support";
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ corngood ];
diff --git a/pkgs/os-specific/linux/apparmor/default.nix b/pkgs/os-specific/linux/apparmor/default.nix
index 344913888d574..8e95c44f95cd8 100644
--- a/pkgs/os-specific/linux/apparmor/default.nix
+++ b/pkgs/os-specific/linux/apparmor/default.nix
@@ -4,13 +4,14 @@
 , linuxHeaders ? stdenv.cc.libc.linuxHeaders
 , gawk
 , withPerl ? stdenv.hostPlatform == stdenv.buildPlatform && lib.meta.availableOn stdenv.hostPlatform perl, perl
-, withPython ? stdenv.hostPlatform == stdenv.buildPlatform && lib.meta.availableOn stdenv.hostPlatform python, python
+, withPython ? stdenv.hostPlatform == stdenv.buildPlatform && lib.meta.availableOn stdenv.hostPlatform python3, python3
 , swig
 , ncurses
 , pam
 , libnotify
 , buildPackages
 , coreutils
+, bash
 , gnugrep
 , gnused
 , kmod
@@ -26,7 +27,7 @@ let
     homepage = "https://apparmor.net/";
     description = "A mandatory access control system - ${component}";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ joachifm julm phreedom thoughtpolice ];
+    maintainers = with maintainers; [ joachifm julm thoughtpolice ];
     platforms = platforms.linux;
   };
 
@@ -44,10 +45,11 @@ let
   prePatchCommon = ''
     chmod a+x ./common/list_capabilities.sh ./common/list_af_names.sh
     patchShebangs ./common/list_capabilities.sh ./common/list_af_names.sh
-    substituteInPlace ./common/Make.rules --replace "/usr/bin/pod2man" "${buildPackages.perl}/bin/pod2man"
-    substituteInPlace ./common/Make.rules --replace "/usr/bin/pod2html" "${buildPackages.perl}/bin/pod2html"
-    substituteInPlace ./common/Make.rules --replace "/usr/include/linux/capability.h" "${linuxHeaders}/include/linux/capability.h"
-    substituteInPlace ./common/Make.rules --replace "/usr/share/man" "share/man"
+    substituteInPlace ./common/Make.rules \
+      --replace "/usr/bin/pod2man" "${buildPackages.perl}/bin/pod2man" \
+      --replace "/usr/bin/pod2html" "${buildPackages.perl}/bin/pod2html" \
+      --replace "/usr/include/linux/capability.h" "${linuxHeaders}/include/linux/capability.h" \
+      --replace "/usr/share/man" "share/man"
   '';
 
   patches = lib.optionals stdenv.hostPlatform.isMusl [
@@ -65,9 +67,16 @@ let
   # FIXME: convert these to a single multiple-outputs package?
 
   libapparmor = stdenv.mkDerivation {
-    name = "libapparmor-${apparmor-version}";
+    pname = "libapparmor";
+    version = apparmor-version;
+
     src = apparmor-sources;
 
+   # checking whether python bindings are enabled... yes
+   # checking for python3... no
+   # configure: error: python is required when enabling python bindings
+    strictDeps = false;
+
     nativeBuildInputs = [
       autoreconfHook
       bison
@@ -77,11 +86,10 @@ let
       ncurses
       which
       perl
-    ];
+    ] ++ lib.optional withPython python3;
 
-    buildInputs = []
-      ++ lib.optional withPerl perl
-      ++ lib.optional withPython python;
+    buildInputs = lib.optional withPerl perl
+      ++ lib.optional withPython python3;
 
     # required to build apparmor-parser
     dontDisableStatic = true;
@@ -94,7 +102,10 @@ let
     '';
     inherit patches;
 
-    postPatch = "cd ./libraries/libapparmor";
+    postPatch = ''
+      cd ./libraries/libapparmor
+    '';
+
     # https://gitlab.com/apparmor/apparmor/issues/1
     configureFlags = [
       (lib.withFeature withPerl "perl")
@@ -114,14 +125,19 @@ let
   };
 
   apparmor-utils = stdenv.mkDerivation {
-    name = "apparmor-utils-${apparmor-version}";
+    pname = "apparmor-utils";
+    version = apparmor-version;
+
     src = apparmor-sources;
 
-    nativeBuildInputs = [ makeWrapper which ];
+    strictDeps = true;
+
+    nativeBuildInputs = [ makeWrapper which python3 ];
 
     buildInputs = [
+      bash
       perl
-      python
+      python3
       libapparmor
       libapparmor.python
     ];
@@ -131,9 +147,9 @@ let
       lib.optionalString stdenv.hostPlatform.isMusl ''
         sed -i ./utils/Makefile -e "/\<vim\>/d"
       '' + ''
-      substituteInPlace ./utils/apparmor/easyprof.py --replace "/sbin/apparmor_parser" "${apparmor-parser}/bin/apparmor_parser"
-      substituteInPlace ./utils/apparmor/aa.py --replace "/sbin/apparmor_parser" "${apparmor-parser}/bin/apparmor_parser"
-      substituteInPlace ./utils/logprof.conf --replace "/sbin/apparmor_parser" "${apparmor-parser}/bin/apparmor_parser"
+      for file in utils/apparmor/easyprof.py utils/apparmor/aa.py utils/logprof.conf; do
+        substituteInPlace $file --replace "/sbin/apparmor_parser" "${apparmor-parser}/bin/apparmor_parser"
+      done
     '';
     inherit patches;
     postPatch = "cd ./utils";
@@ -143,7 +159,7 @@ let
     postInstall = ''
       sed -i $out/bin/aa-unconfined -e "/my_env\['PATH'\]/d"
       for prog in aa-audit aa-autodep aa-cleanprof aa-complain aa-disable aa-enforce aa-genprof aa-logprof aa-mergeprof aa-unconfined ; do
-        wrapProgram $out/bin/$prog --prefix PYTHONPATH : "$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
+        wrapProgram $out/bin/$prog --prefix PYTHONPATH : "$out/lib/${python3.libPrefix}/site-packages:$PYTHONPATH"
       done
 
       substituteInPlace $out/bin/aa-notify \
@@ -153,7 +169,7 @@ let
       substituteInPlace $out/bin/aa-remove-unknown \
        --replace "/lib/apparmor/rc.apparmor.functions" "${apparmor-parser}/lib/apparmor/rc.apparmor.functions"
       wrapProgram $out/bin/aa-remove-unknown \
-       --prefix PATH : ${lib.makeBinPath [gawk]}
+       --prefix PATH : ${lib.makeBinPath [ gawk ]}
 
       ln -s ${aa-teardown} $out/bin/aa-teardown
     '';
@@ -166,7 +182,9 @@ let
   };
 
   apparmor-bin-utils = stdenv.mkDerivation {
-    name = "apparmor-bin-utils-${apparmor-version}";
+    pname = "apparmor-bin-utils";
+    version = apparmor-version;
+
     src = apparmor-sources;
 
     nativeBuildInputs = [
@@ -181,7 +199,9 @@ let
     ];
 
     prePatch = prePatchCommon;
-    postPatch = "cd ./binutils";
+    postPatch = ''
+      cd ./binutils
+    '';
     makeFlags = [ "LANGS=" "USE_SYSTEM=1" ];
     installFlags = [ "DESTDIR=$(out)" "BINDIR=$(out)/bin" "SBINDIR=$(out)/bin" ];
 
@@ -191,7 +211,9 @@ let
   };
 
   apparmor-parser = stdenv.mkDerivation {
-    name = "apparmor-parser-${apparmor-version}";
+    name = "apparmor-parser";
+    version = apparmor-version;
+
     src = apparmor-sources;
 
     nativeBuildInputs = [ bison flex which ];
@@ -199,17 +221,20 @@ let
     buildInputs = [ libapparmor ];
 
     prePatch = prePatchCommon + ''
-      substituteInPlace ./parser/Makefile --replace "/usr/bin/bison" "${bison}/bin/bison"
-      substituteInPlace ./parser/Makefile --replace "/usr/bin/flex" "${flex}/bin/flex"
-      substituteInPlace ./parser/Makefile --replace "/usr/include/linux/capability.h" "${linuxHeaders}/include/linux/capability.h"
       ## techdoc.pdf still doesn't build ...
-      substituteInPlace ./parser/Makefile --replace "manpages htmlmanpages pdf" "manpages htmlmanpages"
+      substituteInPlace ./parser/Makefile \
+        --replace "/usr/bin/bison" "${bison}/bin/bison" \
+        --replace "/usr/bin/flex" "${flex}/bin/flex" \
+        --replace "/usr/include/linux/capability.h" "${linuxHeaders}/include/linux/capability.h" \
+        --replace "manpages htmlmanpages pdf" "manpages htmlmanpages"
       substituteInPlace parser/rc.apparmor.functions \
        --replace "/sbin/apparmor_parser" "$out/bin/apparmor_parser"
       sed -i parser/rc.apparmor.functions -e '2i . ${./fix-rc.apparmor.functions.sh}'
     '';
     inherit patches;
-    postPatch = "cd ./parser";
+    postPatch = ''
+      cd ./parser
+    '';
     makeFlags = [
       "LANGS=" "USE_SYSTEM=1" "INCLUDEDIR=${libapparmor}/include"
       "AR=${stdenv.cc.bintools.targetPrefix}ar"
@@ -222,14 +247,18 @@ let
   };
 
   apparmor-pam = stdenv.mkDerivation {
-    name = "apparmor-pam-${apparmor-version}";
+    pname = "apparmor-pam";
+    version = apparmor-version;
+
     src = apparmor-sources;
 
     nativeBuildInputs = [ pkg-config which ];
 
     buildInputs = [ libapparmor pam ];
 
-    postPatch = "cd ./changehat/pam_apparmor";
+    postPatch = ''
+      cd ./changehat/pam_apparmor
+    '';
     makeFlags = [ "USE_SYSTEM=1" ];
     installFlags = [ "DESTDIR=$(out)" ];
 
@@ -239,12 +268,17 @@ let
   };
 
   apparmor-profiles = stdenv.mkDerivation {
-    name = "apparmor-profiles-${apparmor-version}";
+    pname = "apparmor-profiles";
+    version = apparmor-version;
+
     src = apparmor-sources;
 
     nativeBuildInputs = [ which ];
 
-    postPatch = "cd ./profiles";
+    postPatch = ''
+      cd ./profiles
+    '';
+
     installFlags = [ "DESTDIR=$(out)" "EXTRAS_DEST=$(out)/share/apparmor/extra-profiles" ];
 
     inherit doCheck;
@@ -253,7 +287,9 @@ let
   };
 
   apparmor-kernel-patches = stdenv.mkDerivation {
-    name = "apparmor-kernel-patches-${apparmor-version}";
+    pname = "apparmor-kernel-patches";
+    version = apparmor-version;
+
     src = apparmor-sources;
 
     dontBuild = true;
@@ -294,7 +330,7 @@ let
     touch $out
     while read -r path
     do printf >>$out "%s,\n" ${lib.concatMapStringsSep " " (x: "\"${x}\"") (baseRules ++ additionalRules)}
-    done <${closureInfo {inherit rootPaths;}}/store-paths
+    done <${closureInfo { inherit rootPaths; }}/store-paths
   '';
 in
 {
diff --git a/pkgs/os-specific/linux/asus-ec-sensors/default.nix b/pkgs/os-specific/linux/asus-ec-sensors/default.nix
new file mode 100644
index 0000000000000..f046ec206ab6f
--- /dev/null
+++ b/pkgs/os-specific/linux/asus-ec-sensors/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub, kernel }:
+
+stdenv.mkDerivation rec {
+  name = "asus-ec-sensors-${version}-${kernel.version}";
+  version = "unstable-2021-12-16";
+
+  src = fetchFromGitHub {
+    owner = "zeule";
+    repo = "asus-ec-sensors";
+    rev = "3621741c4ecb93216d546942707a9c413e971787";
+    sha256 = "0akdga2854q3w0pyi0jywa6cxr32541ifz0ka1hgn6j4czk39kyn";
+  };
+
+  hardeningDisable = [ "pic" ];
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
+  makeFlags = [
+    "KERNELRELEASE=${kernel.modDirVersion}"
+    "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}"
+  ];
+
+  installPhase = ''
+    install asus-ec-sensors.ko -Dm444 -t ${placeholder "out"}/lib/modules/${kernel.modDirVersion}/kernel/drivers/hwmon
+  '';
+
+  meta = with lib; {
+    description = "Linux HWMON sensors driver for ASUS motherboards to read sensor data from the embedded controller";
+    homepage = "https://github.com/zeule/asus-ec-sensors";
+    license = licenses.gpl2;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ nickhu ];
+  };
+}
diff --git a/pkgs/os-specific/linux/audit/default.nix b/pkgs/os-specific/linux/audit/default.nix
index a7f17e4495054..9fd24eea6d9b4 100644
--- a/pkgs/os-specific/linux/audit/default.nix
+++ b/pkgs/os-specific/linux/audit/default.nix
@@ -1,6 +1,7 @@
 {
   lib, stdenv, buildPackages, fetchurl, fetchpatch,
   runCommand,
+  autoreconfHook,
   autoconf, automake, libtool,
   enablePython ? false, python ? null,
 }:
@@ -19,8 +20,7 @@ stdenv.mkDerivation rec {
   outputs = [ "bin" "dev" "out" "man" ];
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
-  nativeBuildInputs = lib.optionals stdenv.hostPlatform.isMusl
-    [ autoconf automake libtool ];
+  nativeBuildInputs = [ autoreconfHook ];
   buildInputs = lib.optional enablePython python;
 
   configureFlags = [
@@ -44,8 +44,7 @@ stdenv.mkDerivation rec {
       url = "https://github.com/linux-audit/audit-userspace/commit/017e6c6ab95df55f34e339d2139def83e5dada1f.patch";
       sha256 = "100xa1rzkv0mvhjbfgpfm72f7c4p68syflvgc3xm6pxgrqqmfq8h";
     })
-  ]
-  ++ lib.optional stdenv.hostPlatform.isMusl [
+
     (
       let patch = fetchpatch {
             url = "https://github.com/linux-audit/audit-userspace/commit/d579a08bb1cde71f939c13ac6b2261052ae9f77e.patch";
@@ -60,6 +59,14 @@ stdenv.mkDerivation rec {
               '-* Copyright (c) 2007-09,2011-16 Red Hat Inc., Durham, North Carolina.'
         ''
     )
+
+    # upstream fix for linux-headers-5.15 which removed ipx.h
+    (fetchpatch {
+      name = "no-ipx.patch";
+      url = "https://github.com/linux-audit/audit-userspace/commit/6b09724c69d91668418ddb3af00da6db6755208c.patch";
+      sha256 = "0qjq41ridyamajz9v9nyplgq7f8nn3fxw375s9sa5a0igsrx9pm0";
+      excludes = [ "ChangeLog" ];
+    })
   ];
 
   prePatch = ''
diff --git a/pkgs/os-specific/linux/autofs/default.nix b/pkgs/os-specific/linux/autofs/default.nix
index 3055a91161b32..7b29f5a0e5cfe 100644
--- a/pkgs/os-specific/linux/autofs/default.nix
+++ b/pkgs/os-specific/linux/autofs/default.nix
@@ -1,14 +1,12 @@
 { lib, stdenv, fetchurl, flex, bison, linuxHeaders, libtirpc, mount, umount, nfs-utils, e2fsprogs
 , libxml2, libkrb5, kmod, openldap, sssd, cyrus_sasl, openssl, rpcsvc-proto }:
 
-let
+stdenv.mkDerivation rec {
   version = "5.1.6";
-  name = "autofs-${version}";
-in stdenv.mkDerivation {
-  inherit name;
+  pname = "autofs";
 
   src = fetchurl {
-    url = "mirror://kernel/linux/daemons/autofs/v5/${name}.tar.xz";
+    url = "mirror://kernel/linux/daemons/autofs/v5/autofs-${version}.tar.xz";
     sha256 = "1vya21mb4izj3khcr3flibv7xc15vvx2v0rjfk5yd31qnzcy7pnx";
   };
 
diff --git a/pkgs/os-specific/linux/bcc/absolute-ausyscall.patch b/pkgs/os-specific/linux/bcc/absolute-ausyscall.patch
new file mode 100644
index 0000000000000..7480e9c5d97b3
--- /dev/null
+++ b/pkgs/os-specific/linux/bcc/absolute-ausyscall.patch
@@ -0,0 +1,43 @@
+From 01e793163231c5085afced37471df32b94a313f5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
+Date: Thu, 30 Dec 2021 06:34:41 +0100
+Subject: [PATCH] absolute ausyscall
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
+---
+ libbpf-tools/syscall_helpers.c | 2 +-
+ src/python/bcc/syscall.py      | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/libbpf-tools/syscall_helpers.c b/libbpf-tools/syscall_helpers.c
+index e114a08f..62adea78 100644
+--- a/libbpf-tools/syscall_helpers.c
++++ b/libbpf-tools/syscall_helpers.c
+@@ -47,7 +47,7 @@ void init_syscall_names(void)
+ 	int err;
+ 	FILE *f;
+ 
+-	f = popen("ausyscall --dump 2>/dev/null", "r");
++	f = popen("@ausyscall@ --dump 2>/dev/null", "r");
+ 	if (!f) {
+ 		warn("popen: ausyscall --dump: %s\n", strerror(errno));
+ 		return;
+diff --git a/src/python/bcc/syscall.py b/src/python/bcc/syscall.py
+index 1346b4e8..e7e29a11 100644
+--- a/src/python/bcc/syscall.py
++++ b/src/python/bcc/syscall.py
+@@ -376,7 +376,7 @@ def _parse_syscall(line):
+ try:
+     # Skip the first line, which is a header. The rest of the lines are simply
+     # SYSCALL_NUM\tSYSCALL_NAME pairs.
+-    out = subprocess.check_output(['ausyscall', '--dump'], stderr=subprocess.STDOUT)
++    out = subprocess.check_output(['@ausyscall@', '--dump'], stderr=subprocess.STDOUT)
+     # remove the first line of expected output
+     out = out.split(b'\n',1)[1]
+     syscalls = dict(map(_parse_syscall, out.strip().split(b'\n')))
+-- 
+2.34.0
+
diff --git a/pkgs/os-specific/linux/bcc/default.nix b/pkgs/os-specific/linux/bcc/default.nix
index 91e53d686a1b3..caeaed455f7e8 100644
--- a/pkgs/os-specific/linux/bcc/default.nix
+++ b/pkgs/os-specific/linux/bcc/default.nix
@@ -1,7 +1,8 @@
 { lib, stdenv, fetchFromGitHub
-, makeWrapper, cmake, llvmPackages, kernel
+, makeWrapper, cmake, llvmPackages
 , flex, bison, elfutils, python, luajit, netperf, iperf, libelf
-, systemtap, bash
+, bash, libbpf, nixosTests
+, audit
 }:
 
 python.pkgs.buildPythonApplication rec {
@@ -14,15 +15,14 @@ python.pkgs.buildPythonApplication rec {
     owner = "iovisor";
     repo = "bcc";
     rev = "v${version}";
-    sha256 = "sha256-4zfjr3VLg26uZ4xNKA1wayti7f2tqGvYSbwoZnr+Ygk=";
-    fetchSubmodules = true;
+    sha256 = "sha256-iLVUwJTDQ8Bn38sgHOcIR8TYxIB+gIlfTgr9+gPU0gE=";
   };
   format = "other";
 
   buildInputs = with llvmPackages; [
-    llvm llvm.dev libclang kernel
+    llvm llvm.dev libclang
     elfutils luajit netperf iperf
-    systemtap.stapBuild flex bash
+    flex bash libbpf
   ];
 
   patches = [
@@ -32,20 +32,26 @@ python.pkgs.buildPythonApplication rec {
   ];
 
   propagatedBuildInputs = [ python.pkgs.netaddr ];
-  nativeBuildInputs = [ makeWrapper cmake flex bison llvmPackages.llvm.dev ]
-    # libelf is incompatible with elfutils-libelf
-    ++ lib.filter (x: x != libelf) kernel.moduleBuildDependencies;
+  nativeBuildInputs = [ makeWrapper cmake flex bison llvmPackages.llvm.dev ];
 
   cmakeFlags = [
-    "-DBCC_KERNEL_MODULES_DIR=${kernel.dev}/lib/modules"
+    "-DBCC_KERNEL_MODULES_DIR=/run/booted-system/kernel-modules/lib/modules"
     "-DREVISION=${version}"
     "-DENABLE_USDT=ON"
     "-DENABLE_CPP_API=ON"
+    "-DCMAKE_USE_LIBBPF_PACKAGE=ON"
   ];
 
+  # to replace this executable path:
+  # https://github.com/iovisor/bcc/blob/master/src/python/bcc/syscall.py#L384
+  ausyscall = "${audit}/bin/ausyscall";
+
   postPatch = ''
     substituteAll ${./libbcc-path.patch} ./libbcc-path.patch
     patch -p1 < libbcc-path.patch
+
+    substituteAll ${./absolute-ausyscall.patch} ./absolute-ausyscall.patch
+    patch -p1 < absolute-ausyscall.patch
   '';
 
   postInstall = ''
@@ -71,10 +77,14 @@ python.pkgs.buildPythonApplication rec {
     wrapPythonProgramsIn "$out/share/bcc/tools" "$out $pythonPath"
   '';
 
+  passthru.tests = {
+    bpf = nixosTests.bpf;
+  };
+
   meta = with lib; {
     description = "Dynamic Tracing Tools for Linux";
     homepage    = "https://iovisor.github.io/bcc/";
     license     = licenses.asl20;
-    maintainers = with maintainers; [ ragge mic92 thoughtpolice ];
+    maintainers = with maintainers; [ ragge mic92 thoughtpolice martinetd ];
   };
 }
diff --git a/pkgs/os-specific/linux/bpftrace/btf-dump-new-0.6.0.patch b/pkgs/os-specific/linux/bpftrace/btf-dump-new-0.6.0.patch
new file mode 100644
index 0000000000000..b5037192203c5
--- /dev/null
+++ b/pkgs/os-specific/linux/bpftrace/btf-dump-new-0.6.0.patch
@@ -0,0 +1,39 @@
+diff -ur source/src/btf.cpp new/src/btf.cpp
+--- source/src/btf.cpp	1970-01-01 09:00:01.000000000 +0900
++++ new/src/btf.cpp	2021-12-04 21:46:59.337023489 +0900
+@@ -225,7 +225,7 @@
+   char err_buf[256];
+   int err;
+ 
+-  dump = btf_dump__new(btf, nullptr, &opts, dump_printf);
++  dump = btf_dump__new_deprecated(btf, nullptr, &opts, dump_printf);
+   err = libbpf_get_error(dump);
+   if (err)
+   {
+@@ -496,7 +496,7 @@
+   char err_buf[256];
+   int err;
+ 
+-  dump = btf_dump__new(btf, nullptr, &opts, dump_printf);
++  dump = btf_dump__new_deprecated(btf, nullptr, &opts, dump_printf);
+   err = libbpf_get_error(dump);
+   if (err)
+   {
+@@ -554,7 +554,7 @@
+   char err_buf[256];
+   int err;
+ 
+-  dump = btf_dump__new(btf, nullptr, &opts, dump_printf);
++  dump = btf_dump__new_deprecated(btf, nullptr, &opts, dump_printf);
+   err = libbpf_get_error(dump);
+   if (err)
+   {
+@@ -648,7 +648,7 @@
+   char err_buf[256];
+   int err;
+ 
+-  dump = btf_dump__new(btf, nullptr, &opts, dump_printf);
++  dump = btf_dump__new_deprecated(btf, nullptr, &opts, dump_printf);
+   err = libbpf_get_error(dump);
+   if (err)
+   {
diff --git a/pkgs/os-specific/linux/bpftrace/default.nix b/pkgs/os-specific/linux/bpftrace/default.nix
index 4d2f29491fcaf..9a197b4c78c8d 100644
--- a/pkgs/os-specific/linux/bpftrace/default.nix
+++ b/pkgs/os-specific/linux/bpftrace/default.nix
@@ -1,38 +1,35 @@
 { lib, stdenv, fetchFromGitHub
 , cmake, pkg-config, flex, bison
-, llvmPackages, kernel, elfutils
+, llvmPackages, elfutils
 , libelf, libbfd, libbpf, libopcodes, bcc
+, cereal, asciidoctor
+, nixosTests
 }:
 
 stdenv.mkDerivation rec {
   pname = "bpftrace";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner  = "iovisor";
     repo   = "bpftrace";
     rev    = "v${version}";
-    sha256 = "sha256-BKWBdFzj0j7rAfG30A0fwyYCpOG/5NFRPODW46EP1u0=";
+    sha256 = "sha256-rlaajNfpoiMtU/4aNAnbQ0VixPz9/302TZMarGzsb58=";
   };
 
+  # libbpf 0.6.0 relies on typeof in bpf/btf.h to pick the right version of
+  # btf_dump__new() but that's not valid c++.
+  # see https://github.com/iovisor/bpftrace/issues/2068
+  patches = [ ./btf-dump-new-0.6.0.patch ];
+
   buildInputs = with llvmPackages;
     [ llvm libclang
-      kernel elfutils libelf bcc
+      elfutils libelf bcc
       libbpf libbfd libopcodes
+      cereal asciidoctor
     ];
 
-  nativeBuildInputs = [ cmake pkg-config flex bison llvmPackages.llvm.dev ]
-    # libelf is incompatible with elfutils-libelf
-    ++ lib.filter (x: x != libelf) kernel.moduleBuildDependencies;
-
-  # patch the source, *then* substitute on @NIX_KERNEL_SRC@ in the result. we could
-  # also in theory make this an environment variable around bpftrace, but this works
-  # nicely without wrappers.
-  patchPhase = ''
-    patch -p1 < ${./fix-kernel-include-dir.patch}
-    substituteInPlace ./src/utils.cpp \
-      --subst-var-by NIX_KERNEL_SRC '${kernel.dev}/lib/modules/${kernel.modDirVersion}'
-  '';
+  nativeBuildInputs = [ cmake pkg-config flex bison llvmPackages.llvm.dev ];
 
   # tests aren't built, due to gtest shenanigans. see:
   #
@@ -52,10 +49,14 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "man" ];
 
+  passthru.tests = {
+    bpf = nixosTests.bpf;
+  };
+
   meta = with lib; {
     description = "High-level tracing language for Linux eBPF";
     homepage    = "https://github.com/iovisor/bpftrace";
     license     = licenses.asl20;
-    maintainers = with maintainers; [ rvl thoughtpolice ];
+    maintainers = with maintainers; [ rvl thoughtpolice martinetd ];
   };
 }
diff --git a/pkgs/os-specific/linux/bpftrace/fix-kernel-include-dir.patch b/pkgs/os-specific/linux/bpftrace/fix-kernel-include-dir.patch
deleted file mode 100644
index bff370d51e27f..0000000000000
--- a/pkgs/os-specific/linux/bpftrace/fix-kernel-include-dir.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-commit b6172952c0150d84912fa6f09bab782dd0549f1e
-Author: Austin Seipp <aseipp@pobox.com>
-Date:   Fri May 3 00:47:12 2019 -0500
-
-    src: special case nix build directories for clang
-    
-    Signed-off-by: Austin Seipp <aseipp@pobox.com>
-
-diff --git a/src/clang_parser.cpp b/src/clang_parser.cpp
-index b1db8ff..0cfb01f 100644
---- a/src/utils.cpp
-+++ b/src/utils.cpp
-@@ -140,6 +140,9 @@ static bool is_dir(const std::string& path)
- // Both ksrc and kobj are guaranteed to be != "", if at least some trace of kernel sources was found.
- std::tuple<std::string, std::string> get_kernel_dirs(const struct utsname& utsname)
- {
-+  // NB (aseipp): special case the kernel directory for nix
-+  return { "@NIX_KERNEL_SRC@/source", "@NIX_KERNEL_SRC@/build" };
-+
- #ifdef KERNEL_HEADERS_DIR
-   return {KERNEL_HEADERS_DIR, KERNEL_HEADERS_DIR};
- #endif
diff --git a/pkgs/os-specific/linux/brillo/default.nix b/pkgs/os-specific/linux/brillo/default.nix
index 0736a13ce12e8..246aa471c2a90 100644
--- a/pkgs/os-specific/linux/brillo/default.nix
+++ b/pkgs/os-specific/linux/brillo/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "brillo";
-  version = "1.4.9";
+  version = "1.4.10";
 
   src = fetchFromGitLab {
     owner= "cameronnemo";
     repo= "brillo";
     rev= "v${version}";
-    sha256 = "0ab7s60zcgl6hvm0a9rlwq35p25n3jnw6r9256pwl4cdwyjyybsb";
+    sha256 = "sha256-x8K6CMkOyR+kWRlqa/BmJogZo41LvsL1kfz6CZ5PaUI=";
   };
 
   patches = [
diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix
index 527d2253e5b2b..5d86c2311f1fa 100644
--- a/pkgs/os-specific/linux/broadcom-sta/default.nix
+++ b/pkgs/os-specific/linux/broadcom-sta/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation {
     description = "Kernel module driver for some Broadcom's wireless cards";
     homepage = "http://www.broadcom.com/support/802.11/linux_sta.php";
     license = lib.licenses.unfreeRedistributable;
-    maintainers = with lib.maintainers; [ phreedom ];
+    maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/checkpolicy/default.nix b/pkgs/os-specific/linux/checkpolicy/default.nix
index c3d8928c7ba45..52cf0a3ec037c 100644
--- a/pkgs/os-specific/linux/checkpolicy/default.nix
+++ b/pkgs/os-specific/linux/checkpolicy/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "checkpolicy";
-  version = "2.9";
-  inherit (libsepol) se_release se_url;
+  version = "3.3";
+  inherit (libsepol) se_url;
 
   src = fetchurl {
-    url = "${se_url}/${se_release}/checkpolicy-${version}.tar.gz";
-    sha256 = "13jz6f8zdrijvn5w1j102b36fs41z0q8ii74axw48cj550mw6im9";
+    url = "${se_url}/${version}/checkpolicy-${version}.tar.gz";
+    sha256 = "118l8c2vvnnckbd269saslr7adv6rdavr5rv0z5vh2m1lgglxj15";
   };
 
   nativeBuildInputs = [ bison flex ];
diff --git a/pkgs/os-specific/linux/cifs-utils/default.nix b/pkgs/os-specific/linux/cifs-utils/default.nix
index 8c587a401960a..d6dcf702110dc 100644
--- a/pkgs/os-specific/linux/cifs-utils/default.nix
+++ b/pkgs/os-specific/linux/cifs-utils/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cifs-utils";
-  version = "6.13";
+  version = "6.14";
 
   src = fetchurl {
     url = "mirror://samba/pub/linux-cifs/cifs-utils/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-Q9h4bIYTysz6hJEwgcHWK8JAlXWFTPiVsFtIrwhj0FY=";
+    sha256 = "sha256-ZgnoB0tUISlf8BKjHwLM2aBYQVxhnIE2Lrt4jb8HVrg=";
   };
 
   nativeBuildInputs = [ autoreconfHook docutils pkg-config ];
diff --git a/pkgs/os-specific/linux/conspy/default.nix b/pkgs/os-specific/linux/conspy/default.nix
index 480962024f7e7..12e7f798e79e3 100644
--- a/pkgs/os-specific/linux/conspy/default.nix
+++ b/pkgs/os-specific/linux/conspy/default.nix
@@ -1,25 +1,21 @@
-{lib, stdenv, fetchurl, autoconf, automake, ncurses}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="conspy";
-    version="1.16";
-    name="${baseName}-${version}";
-    hash="02andak806vd04bgjlr0y0d2ddx7cazyf8nvca80vlh8x94gcppf";
-    url="mirror://sourceforge/project/conspy/conspy-1.16-1/conspy-1.16.tar.gz";
-    sha256="02andak806vd04bgjlr0y0d2ddx7cazyf8nvca80vlh8x94gcppf";
-  };
-  buildInputs = [
-    autoconf automake ncurses
-  ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
+{ lib, stdenv, fetchurl, autoconf, automake, ncurses }:
+
+stdenv.mkDerivation rec {
+  pname = "conspy";
+  version = "1.16";
+
   src = fetchurl {
-    inherit (s) url sha256;
+    url = "mirror://sourceforge/project/conspy/conspy-${version}-1/conspy-${version}.tar.gz";
+    sha256 = "02andak806vd04bgjlr0y0d2ddx7cazyf8nvca80vlh8x94gcppf";
     curlOpts = " -A application/octet-stream ";
   };
+
+  buildInputs = [
+    autoconf
+    automake
+    ncurses
+  ];
+
   preConfigure = ''
     touch NEWS
     echo "EPL 1.0" > COPYING
@@ -27,11 +23,11 @@ stdenv.mkDerivation {
     automake --add-missing
     autoconf
   '';
-  meta = {
-    inherit (s) version;
+
+  meta = with lib; {
     description = "Linux text console viewer";
-    license = lib.licenses.epl10 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.epl10;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/conspy/default.upstream b/pkgs/os-specific/linux/conspy/default.upstream
deleted file mode 100644
index 3f9ff3e4a820c..0000000000000
--- a/pkgs/os-specific/linux/conspy/default.upstream
+++ /dev/null
@@ -1,5 +0,0 @@
-url https://sourceforge.net/projects/conspy/files/
-version_link 'conspy-[-0-9.]+/$'
-version_link '[-0-9.]+[.]tar[.][a-z0-9]+/download$'
-SF_redirect
-version '.*-([-0-9.]+)[.]tar[.].*' '\1'
diff --git a/pkgs/os-specific/linux/cpuid/default.nix b/pkgs/os-specific/linux/cpuid/default.nix
index 49c64c9378d30..21a69a2234e2d 100644
--- a/pkgs/os-specific/linux/cpuid/default.nix
+++ b/pkgs/os-specific/linux/cpuid/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cpuid";
-  version = "20211114";
+  version = "20211210";
 
   src = fetchurl {
     url = "http://etallen.com/cpuid/${pname}-${version}.src.tar.gz";
-    sha256 = "1dz10d958hz7qbh77hxf2k6sc7y9nkvlmr2469hv6gwgqs6dq1vi";
+    sha256 = "sha256-4CmJVwDeGm+DNgJSgEiSzVi1TR9f869Et7tq/kEOX0Q=";
   };
 
   # For pod2man during the build process.
@@ -47,10 +47,9 @@ stdenv.mkDerivation rec {
       Intel, AMD, VIA, Hygon, and Zhaoxin CPUs, as well as older Transmeta,
       Cyrix, UMC, NexGen, Rise, and SiS CPUs.
     '';
-    platforms = [ "i686-linux" "x86_64-linux" ];
-    license = licenses.gpl2Plus;
     homepage = "http://etallen.com/cpuid.html";
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ blitz ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
   };
-
 }
diff --git a/pkgs/os-specific/linux/cpustat/default.nix b/pkgs/os-specific/linux/cpustat/default.nix
index 23ed2b07c966c..c37c191d8c5f1 100644
--- a/pkgs/os-specific/linux/cpustat/default.nix
+++ b/pkgs/os-specific/linux/cpustat/default.nix
@@ -1,12 +1,14 @@
-{ stdenv, lib, fetchurl, ncurses }:
+{ stdenv, lib, fetchFromGitHub, ncurses }:
 
 stdenv.mkDerivation rec {
   pname = "cpustat";
-  version = "0.02.09";
+  version = "0.02.17";
 
-  src = fetchurl {
-    url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "12xahv65yrhs5r830clkl1qnwg3dnrk5qn3zsznzbv1iy2f3cj7y";
+  src = fetchFromGitHub {
+    owner = "ColinIanKing";
+    repo = pname;
+    rev = "V${version}";
+    hash = "sha256-4HDXRtklzQSsywCGCTKdz6AtZta9R1mx7qkT7skX6Kc=";
   };
 
   buildInputs = [ ncurses ];
@@ -14,11 +16,12 @@ stdenv.mkDerivation rec {
   installFlags = [
     "BINDIR=${placeholder "out"}/bin"
     "MANDIR=${placeholder "out"}/share/man/man8"
+    "BASHDIR=${placeholder "out"}/share/bash-completion/completions"
   ];
 
   meta = with lib; {
     description = "CPU usage monitoring tool";
-    homepage = "https://kernel.ubuntu.com/~cking/cpustat/";
+    homepage = "https://github.com/ColinIanKing/cpustat";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/pkgs/os-specific/linux/ddcci/default.nix b/pkgs/os-specific/linux/ddcci/default.nix
index 086373f1ab5ab..fe16d283ffc89 100644
--- a/pkgs/os-specific/linux/ddcci/default.nix
+++ b/pkgs/os-specific/linux/ddcci/default.nix
@@ -1,18 +1,15 @@
-{ lib, stdenv, fetchpatch, fetchFromGitLab, kernel }:
+{ lib, stdenv, fetchFromGitLab, kernel }:
 
 stdenv.mkDerivation rec {
   pname = "ddcci-driver";
-  # XXX: We apply a patch for the upcoming version to the source of version 0.4.1
-  # XXX: When 0.4.2 is actually released, don't forget to remove this comment,
-  # XXX: fix the rev in fetchFromGitLab, and remove the patch.
   version = "0.4.2";
   name = "${pname}-${kernel.version}-${version}";
 
   src = fetchFromGitLab {
     owner = "${pname}-linux";
     repo = "${pname}-linux";
-    rev = "v0.4.1";
-    sha256 = "1qhsm0ccwfmwn0r6sbc6ms4lf4a3iqfcgqmbs6afr6hhxkqll3fg";
+    rev = "v${version}";
+    sha256 = "sSmL8PqxqHHQiume62si/Kc9El58/b4wkB93iG0dnNM=";
   };
 
   hardeningDisable = [ "pic" ];
@@ -28,13 +25,6 @@ stdenv.mkDerivation rec {
       --replace depmod \#
   '';
 
-  patches = [
-    (fetchpatch {
-      url = "https://gitlab.com/ddcci-driver-linux/ddcci-driver-linux/-/commit/bf9d79852cbd0aa5c2e288ce51b8280f74a1f5d2.patch";
-      sha256 = "sha256-ShqVzkoRnlX4Y5ARY11YVYatFI1K7bAtLulP3/8/nwg=";
-    })
-  ];
-
   makeFlags = kernel.makeFlags ++ [
     "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
     "KVER=${kernel.modDirVersion}"
diff --git a/pkgs/os-specific/linux/dpdk/default.nix b/pkgs/os-specific/linux/dpdk/default.nix
index ca8905e62402f..7592be483f532 100644
--- a/pkgs/os-specific/linux/dpdk/default.nix
+++ b/pkgs/os-specific/linux/dpdk/default.nix
@@ -2,21 +2,21 @@
 , kernel
 , fetchurl
 , pkg-config, meson, ninja
-, libbsd, numactl, libbpf, zlib, libelf, jansson, openssl, libpcap
+, libbsd, numactl, libbpf, zlib, libelf, jansson, openssl, libpcap, rdma-core
 , doxygen, python3
 , withExamples ? []
 , shared ? false }:
 
 let
   mod = kernel != null;
-  dpdkVersion = "21.05";
+  dpdkVersion = "21.11";
 in stdenv.mkDerivation rec {
   pname = "dpdk";
   version = "${dpdkVersion}" + lib.optionalString mod "-${kernel.version}";
 
   src = fetchurl {
     url = "https://fast.dpdk.org/rel/dpdk-${dpdkVersion}.tar.xz";
-    sha256 = "sha256-HhJJm0xfzbV8g+X+GE6mvs3ffPCSiTwsXvLvsO7BLws=";
+    sha256 = "sha256-Mkbj7WjuKzaaXYviwGzxCKZp4Vf01Bxby7sha/Wr06E=";
   };
 
   nativeBuildInputs = [
@@ -39,6 +39,12 @@ in stdenv.mkDerivation rec {
     zlib
   ] ++ lib.optionals mod kernel.moduleBuildDependencies;
 
+  # Propagated to support current DPDK users in nixpkgs which statically link
+  # with the framework (e.g. odp-dpdk).
+  propagatedBuildInputs = [
+    rdma-core
+  ];
+
   postPatch = ''
     patchShebangs config/arm buildtools
   '';
@@ -52,6 +58,7 @@ in stdenv.mkDerivation rec {
   ++ lib.optional (mod && kernel.kernelOlder "5.11") "-Ddisable_drivers=kni"
   ++ lib.optional (!shared) "-Ddefault_library=static"
   ++ lib.optional stdenv.isx86_64 "-Dmachine=nehalem"
+  ++ lib.optional stdenv.isAarch64 "-Dmachine=generic"
   ++ lib.optional mod "-Dkernel_dir=${placeholder "kmod"}/lib/modules/${kernel.modDirVersion}"
   ++ lib.optional (withExamples != []) "-Dexamples=${builtins.concatStringsSep "," withExamples}";
 
@@ -67,7 +74,11 @@ in stdenv.mkDerivation rec {
     rm -f $kmod/lib/modules/${kernel.modDirVersion}/build
   '';
 
-  postInstall = lib.optionalString (withExamples != []) ''
+  postInstall = ''
+    # Remove Sphinx cache files. Not only are they not useful, but they also
+    # contain store paths causing spurious dependencies.
+    rm -rf $out/share/doc/dpdk/html/.doctrees
+  '' + lib.optionalString (withExamples != []) ''
     find examples -type f -executable -exec install {} $out/bin \;
   '';
 
diff --git a/pkgs/os-specific/linux/drbd/default.nix b/pkgs/os-specific/linux/drbd/default.nix
index 85be205749ac2..0c5acd0ac0645 100644
--- a/pkgs/os-specific/linux/drbd/default.nix
+++ b/pkgs/os-specific/linux/drbd/default.nix
@@ -1,49 +1,128 @@
-{ lib, stdenv, fetchurl, flex, systemd, perl }:
+{ lib
+, stdenv
+, docbook_xml_dtd_44
+, docbook_xml_dtd_45
+, docbook_xsl
+, asciidoctor
+, fetchurl
+, flex
+, kmod
+, libxslt
+, nixosTests
+, perl
+, systemd
+
+# drbd-utils are compiled twice, once with forOCF = true to extract
+# its OCF definitions for use in the ocf-resource-agents derivation,
+# then again with forOCF = false, where the ocf-resource-agents is
+# provided as the OCF_ROOT.
+, forOCF ? false
+, ocf-resource-agents
+}:
 
 stdenv.mkDerivation rec {
   pname = "drbd";
-  version = "8.4.4";
+  version = "9.19.1";
 
   src = fetchurl {
-    url = "http://oss.linbit.com/drbd/8.4/drbd-${version}.tar.gz";
-    sha256 = "1w4889h1ak7gy9w33kd4fgjlfpgmp6hzfya16p1pkc13bjf22mm0";
+    url = "https://pkg.linbit.com/downloads/drbd/utils/${pname}-utils-${version}.tar.gz";
+    sha256 = "1l99kcrb0j85wxxmrdihpx9bk1a4sdi7wlp5m1x5l24k8ck1m5cf";
   };
 
-  patches = [ ./pass-force.patch ./fix-glibc-compilation.patch ];
+  nativeBuildInputs = [
+    flex
+    libxslt
+    docbook_xsl
+    asciidoctor
+  ];
 
-  nativeBuildInputs = [ flex ];
-  buildInputs = [ perl ];
+  buildInputs = [
+    perl
+    # perlPackages.Po4a used by ja documentation
+  ];
 
   configureFlags = [
-    "--without-distro"
-    "--without-pacemaker"
+    "--libdir=${placeholder "out"}/lib"
+    "--sbindir=${placeholder "out"}/bin"
     "--localstatedir=/var"
     "--sysconfdir=/etc"
+    "--without-distro"
   ];
 
-  preConfigure =
-    ''
-      export PATH=${systemd}/sbin:$PATH
-      substituteInPlace user/Makefile.in \
-        --replace /sbin '$(sbindir)'
-      substituteInPlace user/legacy/Makefile.in \
-        --replace '$(DESTDIR)/lib/drbd' '$(DESTDIR)$(LIBDIR)'
-      substituteInPlace user/drbdadm_usage_cnt.c --replace /lib/drbd $out/lib/drbd
-      substituteInPlace scripts/drbd.rules --replace /usr/sbin/drbdadm $out/sbin/drbdadm
-    '';
-
-  makeFlags = [ "SHELL=${stdenv.shell}" ];
+  makeFlags = [
+    "SOURCE_DATE_EPOCH=1"
+    "WANT_DRBD_REPRODUCIBLE_BUILD=1"
+  ] ++ lib.optional (!forOCF) "OCF_ROOT=${ocf-resource-agents}/usr/lib/ocf}";
 
   installFlags = [
-    "localstatedir=$(TMPDIR)/var"
-    "sysconfdir=$(out)/etc"
-    "INITDIR=$(out)/etc/init.d"
+    "prefix="
+    "DESTDIR=${placeholder "out"}"
+    "localstatedir=/var"
+    "DRBD_LIB_DIR=/var/lib"
+    "INITDIR=/etc/init.d"
+    "udevrulesdir=/etc/udev/rules.d"
+    "sysconfdir=/etc"
+    "sbindir=/bin"
+    "datadir="
+    "LIBDIR=/lib/drbd"
+    "mandir=/share/man"
   ];
 
+  postPatch = ''
+    patchShebangs .
+    substituteInPlace user/v84/drbdadm_usage_cnt.c \
+      --replace '"/lib/drbd");' \
+                '"${placeholder "out"}/lib/drbd");'
+    substituteInPlace user/v9/drbdsetup_linux.c \
+      --replace 'ret = system("/sbin/modprobe drbd");' \
+                'ret = system("${kmod}/bin/modprobe drbd");'
+    substituteInPlace user/v84/drbdsetup.c \
+      --replace 'system("/sbin/modprobe drbd")' \
+                'system("${kmod}/bin/modprobe drbd")'
+    substituteInPlace documentation/ra2refentry.xsl \
+      --replace "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" \
+                "${docbook_xml_dtd_44}/xml/dtd/docbook/docbookx.dtd"
+    function patch_docbook45() {
+      substituteInPlace $1 \
+        --replace "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" \
+                  "${docbook_xml_dtd_45}/xml/dtd/docbook/docbookx.dtd"
+    }
+    patch_docbook45 documentation/v9/drbd.conf.xml.in
+    patch_docbook45 documentation/v9/drbdsetup.xml.in
+    patch_docbook45 documentation/v84/drbdsetup.xml
+    patch_docbook45 documentation/v84/drbd.conf.xml
+    # The ja documentation is disabled because:
+    # make[1]: Entering directory '/build/drbd-utils-9.16.0/documentation/ja/v84'
+    # /nix/store/wyx2nn2pjcn50lc95c6qgsgm606rn0x2-perl5.32.1-po4a-0.62/bin/po4a-translate -f docbook -M utf-8 -L utf-8 -keep 0 -m ../../v84/drbdsetup.xml -p drbdsetup.xml.po -l drbdsetup.xml
+    # Use of uninitialized value $args[1] in sprintf at /nix/store/wyx2nn2pjcn50lc95c6qgsgm606rn0x2-perl5.32.1-po4a-0.62/lib/perl5/site_perl/Locale/Po4a/Common.pm line 134.
+    # Invalid po file drbdsetup.xml.po:
+    substituteInPlace Makefile.in \
+      --replace 'DOC_DIRS    := documentation/v9 documentation/ja/v9' \
+                'DOC_DIRS    := documentation/v9' \
+      --replace 'DOC_DIRS    += documentation/v84 documentation/ja/v84' \
+                'DOC_DIRS    += documentation/v84' \
+      --replace '$(MAKE) -C documentation/ja/v9 doc' \
+                "" \
+      --replace '$(MAKE) -C documentation/ja/v84 doc' \
+                ""
+    substituteInPlace user/v9/drbdtool_common.c \
+      --replace 'add_component_to_path("/lib/drbd");' \
+                'add_component_to_path("${placeholder "out"}/lib/drbd");'
+  '';
+
+  preConfigure = ''
+    export PATH=${systemd}/sbin:$PATH
+  '';
+
+  enableParallelBuilding = true;
+
+  passthru.tests.drbd = nixosTests.drbd;
+
   meta = with lib; {
-    homepage = "http://www.drbd.org/";
-    description = "Distributed Replicated Block Device, a distributed storage system for Linux";
-    license = licenses.gpl2;
+    homepage = "https://linbit.com/drbd/";
+    description = "Distributed Replicated Block Device, a distributed storage system for Linux (userspace utilities)";
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    maintainers = with maintainers; [ ryantm astro ];
   };
 }
diff --git a/pkgs/os-specific/linux/drbd/fix-glibc-compilation.patch b/pkgs/os-specific/linux/drbd/fix-glibc-compilation.patch
deleted file mode 100644
index 621a2dd995db5..0000000000000
--- a/pkgs/os-specific/linux/drbd/fix-glibc-compilation.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/user/drbdadm_adjust.c b/user/drbdadm_adjust.c
-index cb23270..3a751ca 100644
---- a/user/drbdadm_adjust.c
-+++ b/user/drbdadm_adjust.c
-@@ -29,6 +29,7 @@
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <sys/wait.h>
-+#include <sys/sysmacros.h>
- #include <unistd.h>
- #include <fcntl.h>
- 
-diff --git a/user/legacy/drbdadm_adjust.c b/user/legacy/drbdadm_adjust.c
-index c79163c..6990ffb 100644
---- a/user/legacy/drbdadm_adjust.c
-+++ b/user/legacy/drbdadm_adjust.c
-@@ -27,6 +27,7 @@
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <sys/wait.h>
-+#include <sys/sysmacros.h>
- #include <unistd.h>
- #include <fcntl.h>
- 
diff --git a/pkgs/os-specific/linux/drbd/pass-force.patch b/pkgs/os-specific/linux/drbd/pass-force.patch
deleted file mode 100644
index 8f0201100f72f..0000000000000
--- a/pkgs/os-specific/linux/drbd/pass-force.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Propagate the --force flag in the legacy drbdadm to drbdsetup.
-Otherwise "drbdadm primary --force" won't work as expected (the kernel
-will say "State change failed: Need access to UpToDate data").
-
-diff -ru -x '*~' drbd-8.4.0-orig/user/legacy/drbdadm_main.c drbd-8.4.0/user/legacy/drbdadm_main.c
---- drbd-8.4.0-orig/user/legacy/drbdadm_main.c	2011-07-07 06:55:39.000000000 -0400
-+++ drbd-8.4.0/user/legacy/drbdadm_main.c	2011-11-02 14:51:04.000000000 -0400
-@@ -1547,6 +1547,7 @@
- 	for (i = 0; i < soi; i++) {
- 		argv[NA(argc)] = setup_opts[i];
- 	}
-+	if (force) argv[NA(argc)] = "--force";
- 	argv[NA(argc)] = 0;
- 
- 	setenv("DRBD_RESOURCE", res->name, 1);
diff --git a/pkgs/os-specific/linux/ell/default.nix b/pkgs/os-specific/linux/ell/default.nix
index 308997501ff0d..aa8e3f15aab27 100644
--- a/pkgs/os-specific/linux/ell/default.nix
+++ b/pkgs/os-specific/linux/ell/default.nix
@@ -7,14 +7,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ell";
-  version = "0.44";
+  version = "0.46";
 
   outputs = [ "out" "dev" ];
 
   src = fetchgit {
-    url = "https://git.kernel.org/pub/scm/libs/${pname}/${pname}.git";
+    url = "https://git.kernel.org/pub/scm/libs/ell/ell.git";
     rev = version;
-    sha256 = "sha256-8korsEvlQOtfyuGkzFun1Xbuc4uhI2I0YpACUfxlpIM=";
+    sha256 = "sha256-Am1PNFFfSzII4Iaeq0wgfuVHSeMDjiDzYkNQWlnEHJY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/erofs-utils/default.nix b/pkgs/os-specific/linux/erofs-utils/default.nix
index 242f9e8391a4b..40d958bdd0f8c 100644
--- a/pkgs/os-specific/linux/erofs-utils/default.nix
+++ b/pkgs/os-specific/linux/erofs-utils/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "erofs-utils";
-  version = "1.3";
+  version = "1.4";
   outputs = [ "out" "man" ];
 
   src = fetchgit {
     url =
       "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git";
     rev = "v" + version;
-    sha256 = "0sqiw05zbxr6l0g9gn3whkc4qc5km2qvfg4lnm08nppwskm8yaw8";
+    sha256 = "sha256-yYMvtW6mQKGx+TZGzadbLX9pXU7vY5b4d1B8d5Ph6vk=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/os-specific/linux/eventstat/default.nix b/pkgs/os-specific/linux/eventstat/default.nix
index 55b00ab8719ec..9a2c20ca38aae 100644
--- a/pkgs/os-specific/linux/eventstat/default.nix
+++ b/pkgs/os-specific/linux/eventstat/default.nix
@@ -1,20 +1,26 @@
-{ stdenv, lib, fetchzip, ncurses }:
+{ stdenv, lib, fetchFromGitHub, ncurses }:
 
 stdenv.mkDerivation rec {
   pname = "eventstat";
-  version = "0.04.12";
-  src = fetchzip {
-    url = "https://kernel.ubuntu.com/~cking/tarballs/eventstat/eventstat-${version}.tar.gz";
-    sha256 = "sha256-XBSs/jZodCpI9BHgAF8+bE23gRCr2uebYiMJxxB8T5E=";
+  version = "0.04.13";
+
+  src = fetchFromGitHub {
+    owner = "ColinIanKing";
+    repo = pname;
+    rev = "V${version}";
+    hash = "sha256-psamt9omhakiO3Kx2EzofPL2VAsva7XKQTZmn6zKefA=";
   };
+
   buildInputs = [ ncurses ];
-  installFlags = [ "DESTDIR=$(out)" ];
-  postInstall = ''
-    mv $out/usr/* $out
-    rm -r $out/usr
-  '';
+  installFlags = [
+    "BINDIR=${placeholder "out"}/bin"
+    "MANDIR=${placeholder "out"}/share/man/man8"
+    "BASHDIR=${placeholder "out"}/share/bash-completion/completions"
+  ];
+
   meta = with lib; {
     description = "Simple monitoring of system events";
+    homepage = "https://github.com/ColinIanKing/eventstat";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ cstrahan ];
diff --git a/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix b/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
index c94ad67d20151..ebe9b733e3d0a 100644
--- a/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
+++ b/pkgs/os-specific/linux/firmware/firmware-linux-nonfree/default.nix
@@ -2,12 +2,12 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "firmware-linux-nonfree";
-  version = "20211027";
+  version = "20211216";
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git";
     rev = "refs/tags/${version}";
-    sha256 = "00vv617ngr8rfrm1rw98xxgc453zb8cb5p8ssz5s3khynpqqg08x";
+    sha256 = "sha256-Q5TPtSbETDDRVKFfwQOp+GGsTGpTpGU5PQ5QkJCtWcM=";
   };
 
   installFlags = [ "DESTDIR=$(out)" ];
@@ -17,7 +17,7 @@ stdenvNoCC.mkDerivation rec {
 
   outputHashMode = "recursive";
   outputHashAlgo = "sha256";
-  outputHash = "1bll1drjp2y8grcxwh1mynxa6qaj1n58mh51ialm7pbryrvsla1c";
+  outputHash = "sha256-nyhxyDVO7tWkCD7fMjwiFNuMSh5e/z5w71CIZw3SJH8=";
 
   meta = with lib; {
     description = "Binary firmware collection packaged by kernel.org";
diff --git a/pkgs/os-specific/linux/firmware/fwupd/default.nix b/pkgs/os-specific/linux/firmware/fwupd/default.nix
index e6c43c0aa6e43..71f6da0d13b1b 100644
--- a/pkgs/os-specific/linux/firmware/fwupd/default.nix
+++ b/pkgs/os-specific/linux/firmware/fwupd/default.nix
@@ -112,7 +112,7 @@ let
 
   self = stdenv.mkDerivation rec {
     pname = "fwupd";
-    version = "1.7.1";
+    version = "1.7.2";
 
     # libfwupd goes to lib
     # daemon, plug-ins and libfwupdplugin go to out
@@ -121,7 +121,7 @@ let
 
     src = fetchurl {
       url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz";
-      sha256 = "sha256-rlbOtEt4byH1TRM6xwvF2cuM1L2gFnM5xmmiKNpn+jw=";
+      sha256 = "sha256-hjLfacO6/Fk4fNy1F8POMaWXoJAm5E9ZB9g4RnG5+DQ=";
     };
 
     patches = [
@@ -142,6 +142,9 @@ let
 
       # Tests detect fwupd is installed when prefix is /usr.
       ./fix-install-detection.patch
+
+      # EFI capsule is located in fwupd-efi now.
+      ./efi-app-path.patch
     ];
 
     nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/firmware/fwupd/efi-app-path.patch b/pkgs/os-specific/linux/firmware/fwupd/efi-app-path.patch
new file mode 100644
index 0000000000000..c2502502a40c3
--- /dev/null
+++ b/pkgs/os-specific/linux/firmware/fwupd/efi-app-path.patch
@@ -0,0 +1,13 @@
+diff --git a/meson.build b/meson.build
+index 4330512e..e53b70ab 100644
+--- a/meson.build
++++ b/meson.build
+@@ -403,7 +403,7 @@ endif
+ if build_standalone and get_option('plugin_uefi_capsule')
+   efiboot = dependency('efiboot')
+ 
+-  efi_app_location = join_paths(libexecdir, 'fwupd', 'efi')
++  efi_app_location = join_paths(dependency('fwupd-efi').get_pkgconfig_variable('prefix'), 'libexec', 'fwupd', 'efi')
+   conf.set_quoted('EFI_APP_LOCATION', efi_app_location)
+ 
+   if host_cpu == 'x86'
diff --git a/pkgs/os-specific/linux/firmware/sof-firmware/default.nix b/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
index 98cfa68e0313f..841e73cfc8bae 100644
--- a/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
+++ b/pkgs/os-specific/linux/firmware/sof-firmware/default.nix
@@ -5,20 +5,20 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "sof-firmware";
-  version = "1.9";
+  version = "2.0";
 
   src = fetchFromGitHub {
     owner = "thesofproject";
     repo = "sof-bin";
     rev = "v${version}";
-    sha256 = "sha256-yife3gO8lXOGwRye213II9rCQqDic7B7w1xW1o7ajF8=";
+    sha256 = "sha256-pDxNcDe/l1foFYuHB0w3YZidKIeH6h0IuwRmMzeMteE=";
   };
 
   dontFixup = true; # binaries must not be stripped or patchelfed
 
   installPhase = ''
     runHook preInstall
-    cd "v${version}.x"
+    cd "v${lib.versions.majorMinor version}.x"
     mkdir -p $out/lib/firmware/intel/
     cp -a sof-v${version} $out/lib/firmware/intel/sof
     cp -a sof-tplg-v${version} $out/lib/firmware/intel/sof-tplg
diff --git a/pkgs/os-specific/linux/forkstat/default.nix b/pkgs/os-specific/linux/forkstat/default.nix
index 09c9c660285e1..1c3f3342e0815 100644
--- a/pkgs/os-specific/linux/forkstat/default.nix
+++ b/pkgs/os-specific/linux/forkstat/default.nix
@@ -1,20 +1,25 @@
-{ stdenv, lib, fetchurl }:
+{ stdenv, lib, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "forkstat";
-  version = "0.02.16";
-  src = fetchurl {
-    url = "https://kernel.ubuntu.com/~cking/tarballs/forkstat/forkstat-${version}.tar.xz";
-    sha256 = "1rrzvlws9725dy2jq5k4zfv669ngrb2klhla6wvir8nwh53jms4w";
+  version = "0.02.17";
+
+  src = fetchFromGitHub {
+    owner = "ColinIanKing";
+    repo = pname;
+    rev = "V${version}";
+    hash = "sha256-Rw1Xwst0+seksTLL+v3IUEojGjwCERwF89xkk70npUU=";
   };
-  installFlags = [ "DESTDIR=$(out)" ];
-  postInstall = ''
-    mv $out/usr/* $out
-    rm -r $out/usr
-  '';
+
+  installFlags = [
+    "BINDIR=${placeholder "out"}/bin"
+    "MANDIR=${placeholder "out"}/share/man/man8"
+    "BASHDIR=${placeholder "out"}/share/bash-completion/completions"
+  ];
+
   meta = with lib; {
     description = "Process fork/exec/exit monitoring tool";
-    homepage = "https://kernel.ubuntu.com/~cking/forkstat/";
+    homepage = "https://github.com/ColinIanKing/forkstat";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ womfoo ];
diff --git a/pkgs/os-specific/linux/forktty/default.nix b/pkgs/os-specific/linux/forktty/default.nix
index c2e4939958291..f060557cdecdb 100644
--- a/pkgs/os-specific/linux/forktty/default.nix
+++ b/pkgs/os-specific/linux/forktty/default.nix
@@ -1,36 +1,29 @@
-{lib, stdenv, fetchurl}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="forktty";
-    version="1.3";
-    name="${baseName}-${version}";
-    hash="0nd55zdqly6nl98k9lc7j751x86cw9hayx1qn0725f22r1x3j5zb";
-    url="http://sunsite.unc.edu/pub/linux/utils/terminal/forktty-1.3.tgz";
-    sha256="0nd55zdqly6nl98k9lc7j751x86cw9hayx1qn0725f22r1x3j5zb";
-  };
-  buildInputs = [
-  ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
+{ lib, stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "forktty";
+  version = "1.3";
+
   src = fetchurl {
-    inherit (s) url sha256;
+    url = "http://sunsite.unc.edu/pub/linux/utils/terminal/forktty-${version}.tgz";
+    sha256 = "sha256-6xc5eshCuCIOsDh0r2DizKAeypGH0TRRotZ4itsvpVk=";
   };
+
   preBuild = ''
     sed -e s@/usr/bin/ginstall@install@g -i Makefile
   '';
+
   preInstall = ''
     mkdir -p "$out/bin"
     mkdir -p "$out/share/man/man8"
   '';
+
   makeFlags = [ "prefix=$(out)" "manprefix=$(out)/share/" ];
-  meta = {
-    inherit (s) version;
+
+  meta = with lib; {
     description = "Tool to detach from controlling TTY and attach to another";
-    license = lib.licenses.gpl2 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/forktty/default.upstream b/pkgs/os-specific/linux/forktty/default.upstream
deleted file mode 100644
index 45cb775a0ae3f..0000000000000
--- a/pkgs/os-specific/linux/forktty/default.upstream
+++ /dev/null
@@ -1,2 +0,0 @@
-url http://sunsite.unc.edu/pub/linux/utils/terminal/
-version_link 'forktty.*tgz'
diff --git a/pkgs/os-specific/linux/fscrypt/default.nix b/pkgs/os-specific/linux/fscrypt/default.nix
index 7528fae6bdd7c..226c6e1c72ad2 100644
--- a/pkgs/os-specific/linux/fscrypt/default.nix
+++ b/pkgs/os-specific/linux/fscrypt/default.nix
@@ -4,13 +4,13 @@
 
 buildGoModule rec {
   pname = "fscrypt";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "fscrypt";
     rev = "v${version}";
-    sha256 = "1zdadi9f7wj6kgmmk9zlkpdm1lb3gfiscg9gkqqdql2si7y6g2nq";
+    sha256 = "0gi91vm0ai4vjzj6cfnjsfy8kbfxjiq2n7jnbhf5470qbx49qixr";
   };
 
   postPatch = ''
@@ -19,7 +19,7 @@ buildGoModule rec {
       --replace "/usr/local" "$out"
   '';
 
-  vendorSha256 = "0yak221mlyfacvlsaq9g3xiyk94n94vqgkbaji8d21pi8hhr38m6";
+  vendorSha256 = "1gw3q2pn8v6n9wkl5881rbxglislnr98a9gjqnqm894gnz7hfdzb";
 
   doCheck = false;
 
diff --git a/pkgs/os-specific/linux/fswebcam/default.nix b/pkgs/os-specific/linux/fswebcam/default.nix
index 08c35d79f3dc5..678e0d428419b 100644
--- a/pkgs/os-specific/linux/fswebcam/default.nix
+++ b/pkgs/os-specific/linux/fswebcam/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "fswebcam";
-  version = "2020-07-25";
+  version = "20200725";
 
   src = fetchurl {
-    url = "https://www.sanslogic.co.uk/fswebcam/files/fswebcam-${lib.replaceStrings ["."] [""] version}.tar.gz";
+    url = "https://www.sanslogic.co.uk/fswebcam/files/fswebcam-${version}.tar.gz";
     sha256 = "1dazsrcaw9s30zz3jpxamk9lkff5dkmflp1s0jjjvdbwa0k6k6ii";
   };
 
diff --git a/pkgs/os-specific/linux/gogoclient/default.nix b/pkgs/os-specific/linux/gogoclient/default.nix
index 83ac93fbf71cf..75c0f1c3d1bc1 100644
--- a/pkgs/os-specific/linux/gogoclient/default.nix
+++ b/pkgs/os-specific/linux/gogoclient/default.nix
@@ -1,11 +1,8 @@
 {lib, stdenv, fetchurl, openssl, nettools, iproute2, sysctl}:
 
-let baseName = "gogoclient";
-    version  = "1.2";
-in
-
 stdenv.mkDerivation rec {
-  name = "${baseName}-${version}";
+  pname = "gogoclient";
+  version  = "1.2";
 
   src = fetchurl {
     #url = "http://gogo6.com/downloads/gogoc-1_2-RELEASE.tar.gz";
@@ -21,9 +18,9 @@ stdenv.mkDerivation rec {
   buildInputs = [openssl];
 
   preFixup = ''
-    mkdir -p $out/share/${name}
+    mkdir -p $out/share/gogoclient-${version}
     chmod 444 $out/bin/gogoc.conf
-    mv $out/bin/gogoc.conf $out/share/${name}/gogoc.conf.sample
+    mv $out/bin/gogoc.conf $out/share/gogoclient-${version}/gogoc.conf.sample
     rm $out/bin/gogoc.conf.sample
 
     substituteInPlace "$out/template/linux.sh" \
diff --git a/pkgs/os-specific/linux/greetd/default.nix b/pkgs/os-specific/linux/greetd/default.nix
index 6f305c5d6ebb5..cfde703cd6744 100644
--- a/pkgs/os-specific/linux/greetd/default.nix
+++ b/pkgs/os-specific/linux/greetd/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "greetd";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromSourcehut {
     owner = "~kennylevinsen";
     repo = pname;
     rev = version;
-    sha256 = "b+S3fuJ8gjnSQzLHl3Bs9iO/Un2ynggAplz01GjJvFI=";
+    sha256 = "sha256-20D6HanUeAc0S9czkNJFmhsrfEqodpafkHsmwKccrHQ=";
   };
 
-  cargoHash = "sha256-YSC7osyBPwx+lo7P1ftI72mRWeQlDc2srRPzTFqVTxM=";
+  cargoHash = "sha256-8nMQ81Y0DnPs9WmxNASlcjTEVw5lh+nZtZ7vmmBCu2g=";
 
   nativeBuildInputs = [
     scdoc
diff --git a/pkgs/os-specific/linux/health-check/default.nix b/pkgs/os-specific/linux/health-check/default.nix
index 694d4565d9693..e876808b461a7 100644
--- a/pkgs/os-specific/linux/health-check/default.nix
+++ b/pkgs/os-specific/linux/health-check/default.nix
@@ -1,12 +1,14 @@
-{ stdenv, lib, fetchurl, json_c, libbsd }:
+{ stdenv, lib, fetchFromGitHub, json_c, libbsd }:
 
 stdenv.mkDerivation rec {
   pname = "health-check";
-  version = "0.03.05";
+  version = "0.03.10";
 
-  src = fetchurl {
-    url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "1qxmkdl4pa043yg4kq5ffapm0c2cmm64h3v2c3xhnx0ad5pbhy5z";
+  src = fetchFromGitHub {
+    owner = "ColinIanKing";
+    repo = pname;
+    rev = "V${version}";
+    hash = "sha256-1dm7tl7DHv1CzuLe1/UewDSUOanO0hN+STkPrAHcZmI=";
   };
 
   buildInputs = [ json_c libbsd ];
@@ -16,11 +18,12 @@ stdenv.mkDerivation rec {
   installFlags = [
     "BINDIR=${placeholder "out"}/bin"
     "MANDIR=${placeholder "out"}/share/man/man8"
+    "BASHDIR=${placeholder "out"}/share/bash-completion/completions"
   ];
 
   meta = with lib; {
     description = "Process monitoring tool";
-    homepage = "https://kernel.ubuntu.com/~cking/health-check/";
+    homepage = "https://github.com/ColinIanKing/health-check";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/pkgs/os-specific/linux/hostapd/default.nix b/pkgs/os-specific/linux/hostapd/default.nix
index 5d4edc4f7e76e..268e178aad08d 100644
--- a/pkgs/os-specific/linux/hostapd/default.nix
+++ b/pkgs/os-specific/linux/hostapd/default.nix
@@ -106,7 +106,7 @@ stdenv.mkDerivation rec {
     repositories.git = "git://w1.fi/hostap.git";
     description = "A user space daemon for access point and authentication servers";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ phreedom ninjatrappeur hexa ];
+    maintainers = with maintainers; [ ninjatrappeur hexa ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/intel-cmt-cat/default.nix b/pkgs/os-specific/linux/intel-cmt-cat/default.nix
index 748ae5b526703..af194d9dc1ca3 100644
--- a/pkgs/os-specific/linux/intel-cmt-cat/default.nix
+++ b/pkgs/os-specific/linux/intel-cmt-cat/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  version = "4.2.0";
+  version = "4.3.0";
   pname = "intel-cmt-cat";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "intel-cmt-cat";
     rev = "v${version}";
-    sha256 = "sha256-k66FZI76d9HcWEMwEgOlObdPmRhuK5h2GKXOzUY0BKQ=";
+    sha256 = "sha256-9XZuSHWcAFN5otBfG8xE4gTIDixw7mYnHT/CTjyOvwo=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/os-specific/linux/iw/default.nix b/pkgs/os-specific/linux/iw/default.nix
index 7d526db53e930..ac8efbb7969f5 100644
--- a/pkgs/os-specific/linux/iw/default.nix
+++ b/pkgs/os-specific/linux/iw/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "iw";
-  version = "5.9";
+  version = "5.16";
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/network/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "1wp1ky1v353qqy5fnrk67apgzsap53jkr7pmghk3czpbk880ffi9";
+    sha256 = "sha256-TETkJ2L5A/kJS6WlmJmMgAqXpir9b9MeweCnmeMIZZw=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/os-specific/linux/iwd/default.nix b/pkgs/os-specific/linux/iwd/default.nix
index 33e1f1783ab37..3f725e3e5b261 100644
--- a/pkgs/os-specific/linux/iwd/default.nix
+++ b/pkgs/os-specific/linux/iwd/default.nix
@@ -8,17 +8,16 @@
 , readline
 , openssl
 , python3Packages
-, fetchpatch
 }:
 
 stdenv.mkDerivation rec {
   pname = "iwd";
-  version = "1.17";
+  version = "1.20";
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/network/wireless/iwd.git";
     rev = version;
-    sha256 = "sha256-uWWdKjxctz8fdiIkSiuOYNcZPhxEWDXaA8QPLnd/I9c=";
+    sha256 = "sha256-GcqmMqrZSgvSrsY8FJbPynNWTzSi5A6kmyq+xJ+2i3Y=";
   };
 
   outputs = [ "out" "man" ]
@@ -57,14 +56,6 @@ stdenv.mkDerivation rec {
     "--with-systemd-networkdir=${placeholder "out"}/lib/systemd/network/"
   ];
 
-  patches = [
-    # Fix failure in test-eapol. Remove when bumping to 1.18
-    (fetchpatch {
-      url = "https://git.kernel.org/pub/scm/network/wireless/iwd.git/patch/?id=ed10b00afa3f4c087b46d7ba0b60a47bd05d8b39";
-      sha256 = "0n8ixrbfh428ajncakcb9kd2n4fw82kw9sfskn1d9ny0lrg39nvg";
-    })
-  ];
-
   postUnpack = ''
     mkdir -p iwd/ell
     ln -s ${ell.src}/ell/useful.h iwd/ell/useful.h
diff --git a/pkgs/os-specific/linux/kernel-headers/default.nix b/pkgs/os-specific/linux/kernel-headers/default.nix
index 27428b37284d3..3c7e899cba71a 100644
--- a/pkgs/os-specific/linux/kernel-headers/default.nix
+++ b/pkgs/os-specific/linux/kernel-headers/default.nix
@@ -81,12 +81,12 @@ let
 in {
   inherit makeLinuxHeaders;
 
-  linuxHeaders = let version = "5.14"; in
+  linuxHeaders = let version = "5.15.5"; in
     makeLinuxHeaders {
       inherit version;
       src = fetchurl {
         url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-        sha256 = "sha256-fgaLXg0mpisQ5TILJdzldYjLvG94HAkEQhOMnJwycbI=";
+        sha256 = "sha256-6VZaMBUlrIHBQs64MvkFPdVoXhB9vPdT0N5MWLyYhR8=";
       };
       patches = [
          ./no-relocs.patch # for building x86 kernel headers on non-ELF platforms
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 20968e3571ae3..b127ec9197cbb 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -41,6 +41,7 @@ let
         (whenAtLeast "5.2" yes)
       ];
       DEBUG_INFO_BTF            = whenAtLeast "5.2" (option yes);
+      BPF_LSM                   = whenAtLeast "5.7" (option yes);
       DEBUG_KERNEL              = yes;
       DEBUG_DEVRES              = no;
       DYNAMIC_DEBUG             = yes;
@@ -213,6 +214,10 @@ let
       MPTCP           = whenAtLeast "5.6" yes;
       MPTCP_IPV6      = whenAtLeast "5.6" yes;
       INET_MPTCP_DIAG = whenAtLeast "5.9" (mkDefault module);
+
+      # Kernel TLS
+      TLS         = whenAtLeast "4.13" module;
+      TLS_DEVICE  = whenAtLeast "4.18" yes;
     };
 
     wireless = {
@@ -468,6 +473,11 @@ let
 
       # Detect buffer overflows on the stack
       CC_STACKPROTECTOR_REGULAR = {optional = true; tristate = whenOlder "4.18" "y";};
+    } // optionalAttrs stdenv.hostPlatform.isx86 {
+      # Enable Intel SGX
+      X86_SGX     = whenAtLeast "5.11" yes;
+      # Allow KVM guests to load SGX enclaves
+      X86_SGX_KVM = whenAtLeast "5.13" yes;
     };
 
     microcode = {
@@ -872,6 +882,7 @@ let
 
       SCHED_CORE = whenAtLeast "5.14" yes;
 
+      FSL_MC_UAPI_SUPPORT = mkIf (stdenv.hostPlatform.system == "aarch64-linux") (whenAtLeast "5.12" yes);
     } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "aarch64-linux") {
       # Enable CPU/memory hotplug support
       # Allows you to dynamically add & remove CPUs/memory to a VM client running NixOS without requiring a reboot
diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json
index e7541e040496f..1242aa8eba5a0 100644
--- a/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -2,61 +2,51 @@
     "4.14": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-4.14.255-hardened1.patch",
-            "sha256": "0d84jwf9vd86qzxq8aqcyrzmwczf3qh2f7a801qsgzb96fyvakrl",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.255-hardened1/linux-hardened-4.14.255-hardened1.patch"
+            "name": "linux-hardened-4.14.258-hardened1.patch",
+            "sha256": "0rni42mbvyw0f9032i6bkgcwnzfw472vimd5l1q7rp52m63z6vbk",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.258-hardened1/linux-hardened-4.14.258-hardened1.patch"
         },
-        "sha256": "1mxjwqijnlvrdbpd973kdycz1dwklfkj9vpnj1cihgsf880q02zh",
-        "version": "4.14.255"
+        "sha256": "162bzhm0k8kipgk0ma745rjcl33rqhpwxdfdz3q6rkp48b82kbvi",
+        "version": "4.14.258"
     },
     "4.19": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-4.19.217-hardened1.patch",
-            "sha256": "1brx4dvh8acq1r5mbh2a5d95k3n7m4x3jnqnp0s69p3fx9gf1kxh",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.217-hardened1/linux-hardened-4.19.217-hardened1.patch"
+            "name": "linux-hardened-4.19.221-hardened1.patch",
+            "sha256": "0lw4lysiv5h1vlkwlz2z1kv78wsszj1xc383i2qkzfsb4l9vsm7h",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.221-hardened1/linux-hardened-4.19.221-hardened1.patch"
         },
-        "sha256": "01500jcjvhbkn7xcan564jw0nnwc12cf8hhvl8118jqqqw612lc5",
-        "version": "4.19.217"
+        "sha256": "1yg1cibyn53gpjnxfgj2qxxi8k3l7gv1ri6kywvp6sk5bygx8jd3",
+        "version": "4.19.221"
     },
     "5.10": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.10.80-hardened1.patch",
-            "sha256": "1srm1kwh1fhc1rm7hwwyki48x1b4nq2zishscamsb82drnwl5pbs",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.80-hardened1/linux-hardened-5.10.80-hardened1.patch"
+            "name": "linux-hardened-5.10.87-hardened1.patch",
+            "sha256": "1r1vyf9wy49s7pfskxlng17n0khi1dpxg5cm4yfnbbq0gdisnh1f",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.87-hardened1/linux-hardened-5.10.87-hardened1.patch"
         },
-        "sha256": "0ffvgxaq2ipylzavvgnnqk56pw2a6gy5zhhgdhsf8qs2cbvyhz27",
-        "version": "5.10.80"
-    },
-    "5.14": {
-        "patch": {
-            "extra": "-hardened1",
-            "name": "linux-hardened-5.14.20-hardened1.patch",
-            "sha256": "0bnbwcayfcijgchnhyig9g9q334f4x1hwqns1zwg0wnsi3kxvcsb",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.14.20-hardened1/linux-hardened-5.14.20-hardened1.patch"
-        },
-        "sha256": "0icb14xmwijcamqbnj3v16cl1awmjzhg9cniw5gwwk6la1d7aiwj",
-        "version": "5.14.20"
+        "sha256": "0jz6xhph7x0x11cjmypaw5gh8z4d53dcgx2gmg7k6d06ydq8n4h3",
+        "version": "5.10.87"
     },
     "5.15": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.15.3-hardened1.patch",
-            "sha256": "13d78f159bhd6f1fikrnf5madrfg9zrgg4zcmnjzmb1db1irh53n",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.3-hardened1/linux-hardened-5.15.3-hardened1.patch"
+            "name": "linux-hardened-5.15.10-hardened1.patch",
+            "sha256": "1fn37pg10w1m4cr4g0ibs5fvqs1yx3y776daxv836naffl1001fm",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.10-hardened1/linux-hardened-5.15.10-hardened1.patch"
         },
-        "sha256": "1rh5zkany0gxwha74l8ivb2psykp236h8q56plas7dc7hghxmwx9",
-        "version": "5.15.3"
+        "sha256": "0jsv8lialjwp91qg9c9rh8rhn49a70ryyhzl19bxq3fhz1fwyks8",
+        "version": "5.15.10"
     },
     "5.4": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.4.160-hardened1.patch",
-            "sha256": "06f7qnc21miz5yjrws3kbavj3v6ir8z3m87ljpnq55y6b73bxngy",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.160-hardened1/linux-hardened-5.4.160-hardened1.patch"
+            "name": "linux-hardened-5.4.167-hardened1.patch",
+            "sha256": "03mj8nncfpqf5j6l66239saxv251rh5infhl0jjyx1znhfzavg0p",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.167-hardened1/linux-hardened-5.4.167-hardened1.patch"
         },
-        "sha256": "0n04nlg44l7p855lxkdz80x2avwm1pmrx1761cjmqv4w1qlq1c6l",
-        "version": "5.4.160"
+        "sha256": "19x5f3s5f4nqzjb61g22rs0hnmk43q4b7sm7mc4j1q3y44b33r5l",
+        "version": "5.4.167"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 2073d28f078fe..e6104c6ed0c91 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "4.14.255";
+  version = "4.14.260";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1mxjwqijnlvrdbpd973kdycz1dwklfkj9vpnj1cihgsf880q02zh";
+    sha256 = "1bylxn6hsq17cann2w02ggz6xz3b3synrapcwlwfcfydf71hzj9f";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix
index 1e813076d1f94..d87a635c5ef35 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "4.19.217";
+  version = "4.19.223";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "01500jcjvhbkn7xcan564jw0nnwc12cf8hhvl8118jqqqw612lc5";
+    sha256 = "1cnjk49g8sxsbzk375ji47lnx36drqh1x2pbfiqdwgrbjcb043sz";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.4.nix b/pkgs/os-specific/linux/kernel/linux-4.4.nix
index f39340b59bca7..4bc6ca32c16bc 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,12 +1,12 @@
 { buildPackages, fetchurl, perl, buildLinux, nixosTests, stdenv, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.4.292";
+  version = "4.4.297";
   extraMeta.branch = "4.4";
   extraMeta.broken = stdenv.isAarch64;
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0v5rz8na1d458grc49x3j1951mhvxvqzjq5g9rv1hi0p9rjala97";
+    sha256 = "116346nkbhaz8jc1118gh40y6pw1kq7c7hm74f8bjga1p0gjqn0c";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index f58f7c4a7e4d8..eefe4fc7fb68f 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,12 +1,12 @@
 { buildPackages, fetchurl, perl, buildLinux, nixosTests, stdenv, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.290";
+  version = "4.9.295";
   extraMeta.branch = "4.9";
   extraMeta.broken = stdenv.isAarch64;
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1ns0xbcgv0ix4b3xkcws8g3ks1a31kzc5whmkf9arz1k8si5mpnd";
+    sha256 = "095am71hl7qryrcn1blvxsq5zsy0gixmj7062p7vvz5ypcvqcd52";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.10.nix b/pkgs/os-specific/linux/kernel/linux-5.10.nix
index ab9f11a57cce9..7b38ba8b09593 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.10.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.10.80";
+  version = "5.10.89";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "0ffvgxaq2ipylzavvgnnqk56pw2a6gy5zhhgdhsf8qs2cbvyhz27";
+    sha256 = "0c5v8fsv9sazdmdw4m1canm54x2p8777yavxq2gcpw8q98d8n8cj";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.14.nix b/pkgs/os-specific/linux/kernel/linux-5.14.nix
deleted file mode 100644
index 52ee895eb5016..0000000000000
--- a/pkgs/os-specific/linux/kernel/linux-5.14.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
-
-with lib;
-
-buildLinux (args // rec {
-  version = "5.14.20";
-
-  # modDirVersion needs to be x.y.z, will automatically add .0 if needed
-  modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
-
-  # branchVersion needs to be x.y
-  extraMeta.branch = versions.majorMinor version;
-
-  src = fetchurl {
-    url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "0icb14xmwijcamqbnj3v16cl1awmjzhg9cniw5gwwk6la1d7aiwj";
-  };
-} // (args.argsOverride or { }))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.15.nix b/pkgs/os-specific/linux/kernel/linux-5.15.nix
index 79df9a0fcdde2..f5f98e3317c08 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.15.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.15.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.15.3";
+  version = "5.15.12";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "1rh5zkany0gxwha74l8ivb2psykp236h8q56plas7dc7hghxmwx9";
+    sha256 = "182iwy2288layl2290cxla0k6y436lxlx43yaa8par325dviksbx";
   };
 } // (args.argsOverride or { }))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.4.nix b/pkgs/os-specific/linux/kernel/linux-5.4.nix
index 39f896b803516..d568a28538144 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.4.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.4.160";
+  version = "5.4.169";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "0n04nlg44l7p855lxkdz80x2avwm1pmrx1761cjmqv4w1qlq1c6l";
+    sha256 = "068sw1p50vcygi422bfjpahf2fxy3ifyp4ljnkwxbbvibzcq4hsm";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix b/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix
index a64520ab89325..70ac299f16199 100644
--- a/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix
@@ -1,10 +1,10 @@
 { buildPackages, fetchFromGitHub, perl, buildLinux, libelf, util-linux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.14.165-172";
+  version = "4.14.180-176";
 
   # modDirVersion needs to be x.y.z.
-  modDirVersion = "4.14.165";
+  modDirVersion = "4.14.180";
 
   # branchVersion needs to be x.y.
   extraMeta.branch = "4.14";
@@ -13,7 +13,7 @@ buildLinux (args // rec {
     owner = "hardkernel";
     repo = "linux";
     rev = version;
-    sha256 = "10ayqjjs2hxj1q7sb0mxa3gv75q28lznjha19rpxvig2fpi8015s";
+    sha256 = "0n7i7a2bkrm9p1wfr20h54cqm32fbjvwyn703r6zm1f6ivqhk43v";
   };
 
   defconfig = "odroidxu4_defconfig";
diff --git a/pkgs/os-specific/linux/kernel/linux-libre.nix b/pkgs/os-specific/linux/kernel/linux-libre.nix
index 364a810f5ee72..4d078e45fe231 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 = "18473";
-    sha256 = "0v30l950b35q4h6qb9p5x216ij4gd3cadf3fqb066wa34d4vx7yk";
+    rev = "18517";
+    sha256 = "1i4gppn3lyi3aqzscrdhm2dsvfa84xqhymcc468sakn9in3g85gg";
   }
 , ...
 }:
diff --git a/pkgs/os-specific/linux/kernel/linux-lqx.nix b/pkgs/os-specific/linux/kernel/linux-lqx.nix
index 98a340cf94800..02e3902d3c5c3 100644
--- a/pkgs/os-specific/linux/kernel/linux-lqx.nix
+++ b/pkgs/os-specific/linux/kernel/linux-lqx.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub, buildLinux, linux_zen, ... } @ args:
 
 let
-  version = "5.14.16";
+  version = "5.14.18";
   suffix = "lqx1";
 in
 
@@ -14,7 +14,7 @@ buildLinux (args // {
     owner = "zen-kernel";
     repo = "zen-kernel";
     rev = "v${version}-${suffix}";
-    sha256 = "sha256-nWeHvKnVo/ln8sTLdFTK1pG09HMTdZ75a+3Ehxjd5pc=";
+    sha256 = "sha256-jn2Y/zusxwOvT5MXlM5HCojiyY0ssC36O92iv7/ZMWU=";
   };
 
   extraMeta = {
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
index c8d42ddda7461..b9458b3947f9b 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "5.10.78-rt55"; # updated by ./update-rt.sh
+  version = "5.10.87-rt59"; # 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/v5.x/linux-${kversion}.tar.xz";
-    sha256 = "03q5lrv8gr9hnm7984pxi9kwsvxrn21qwykj60amisi2wac6r05y";
+    sha256 = "0jz6xhph7x0x11cjmypaw5gh8z4d53dcgx2gmg7k6d06ydq8n4h3";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "1wcw682r238qi5jgn5zk9m6j2506p9ypfax13bzhjfyjzz3h98kp";
+      sha256 = "04sr3n3ilvqq0dl59l92qmn3p7fjlsxxvbs3qls7b4pncb2xyyj3";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
index c299cd2a27d7d..0d827ad653e4b 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "5.4.154-rt65"; # updated by ./update-rt.sh
+  version = "5.4.161-rt67"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -14,14 +14,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
-    sha256 = "01iwbz1ncakw90yykdw3cx04wnclwf1qa8nmlis08svbcvs99285";
+    sha256 = "19rrz7fzka506bpgy229v1sbaxc2s609ldmxc2522y9h5aswcj9i";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "0vbcmwg91hzcxiwq9dj550bw24k8r7lk61j06nwcnwmjg9a3g449";
+      sha256 = "1xn3i1m0n4zcsnw5k52iyrd994zxmrla4rkjmdr71ra7csbrvkbx";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix b/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
index 37b03bc28ff9e..e417ee6d389b2 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
@@ -1,9 +1,9 @@
 { lib
 , fetchpatch
 , kernel
-, date ? "2021-11-06"
-, commit ? "10669a2c540de3276c8d2fc0e43be62f2886f377"
-, diffHash ? "1rn72wd8jg919j74x8banl70b2bdd6r9fgvnw693j20dq96j5cnw"
+, date ? "2021-12-26"
+, commit ? "b034dfb24fece43a7677b9a29781495aeb62767f"
+, diffHash ? "0m7qrnfrcx3dki9lmsq3jk3mcrfm99djh83gwwjh401ql0cycx5p"
 , kernelPatches # must always be defined in bcachefs' all-packages.nix entry because it's also a top-level attribute supplied by callPackage
 , argsOverride ? {}
 , ...
@@ -13,6 +13,7 @@
 (kernel.override ( args // {
   argsOverride = {
     version = "${kernel.version}-bcachefs-unstable-${date}";
+
     extraMeta = {
       branch = "master";
       maintainers = with lib.maintainers; [ davidak chiiruno ];
@@ -21,12 +22,13 @@
 
   kernelPatches = [ {
       name = "bcachefs-${commit}";
+
       patch = fetchpatch {
         name = "bcachefs-${commit}.diff";
         url = "https://evilpiepirate.org/git/bcachefs.git/rawdiff/?id=${commit}&id2=v${lib.versions.majorMinor kernel.version}";
         sha256 = diffHash;
       };
+
       extraConfig = "BCACHEFS_FS m";
     } ] ++ kernelPatches;
-
 }))
diff --git a/pkgs/os-specific/linux/kernel/linux-xanmod.nix b/pkgs/os-specific/linux/kernel/linux-xanmod.nix
index 8b95e912b0298..9740615a33111 100644
--- a/pkgs/os-specific/linux/kernel/linux-xanmod.nix
+++ b/pkgs/os-specific/linux/kernel/linux-xanmod.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, buildLinux, fetchFromGitHub, ... } @ args:
 
 let
-  version = "5.15.2";
+  version = "5.15.11";
   release = "1";
   suffix = "xanmod${release}-tt";
 in
@@ -13,7 +13,7 @@ buildLinux (args // rec {
     owner = "xanmod";
     repo = "linux";
     rev = modDirVersion;
-    sha256 = "sha256-3tIwj+4xf/I5srEAqECbfH343J5nzCWViq1ZnidZI24=";
+    sha256 = "sha256-f5DvjgZQoryCpRcawlmZY6muZdAcQMNm+N18XHEBq4U=";
   };
 
   structuredExtraConfig = with lib.kernel; {
@@ -51,16 +51,12 @@ buildLinux (args // rec {
     # Graysky's additional CPU optimizations
     CC_OPTIMIZE_FOR_PERFORMANCE_O3 = yes;
 
-    # Android Ashmem and Binder IPC Driver as module for Anbox
-    ASHMEM = module;
-    ANDROID = yes;
-    ANDROID_BINDER_IPC = module;
-    ANDROID_BINDERFS = module;
-    ANDROID_BINDER_DEVICES = freeform "binder,hwbinder,vndbinder";
-
     # Futex WAIT_MULTIPLE implementation for Wine / Proton Fsync.
     FUTEX = yes;
     FUTEX_PI = yes;
+
+    # WineSync driver for fast kernel-backed Wine
+    WINESYNC = module;
   };
 
   extraMeta = {
diff --git a/pkgs/os-specific/linux/kernel/linux-zen.nix b/pkgs/os-specific/linux/kernel/linux-zen.nix
index e259ec04f28a3..257485645f465 100644
--- a/pkgs/os-specific/linux/kernel/linux-zen.nix
+++ b/pkgs/os-specific/linux/kernel/linux-zen.nix
@@ -2,7 +2,7 @@
 
 let
   # having the full version string here makes it easier to update
-  modDirVersion = "5.15.2-zen1";
+  modDirVersion = "5.15.11-zen1";
   parts = lib.splitString "-" modDirVersion;
   version = lib.elemAt parts 0;
   suffix = lib.elemAt parts 1;
@@ -19,7 +19,7 @@ buildLinux (args // {
     owner = "zen-kernel";
     repo = "zen-kernel";
     rev = "v${modDirVersion}";
-    sha256 = "sha256-6cYKlRAd8kbphIThmTdWieH322Rj1KSmCJCmYRt8o2w=";
+    sha256 = "sha256-KOy1bmNnfa8LtnE+03Y+0pr9r1OCimY0bjGsVmGnPN4=";
   };
 
   structuredExtraConfig = with lib.kernel; {
diff --git a/pkgs/os-specific/linux/libbpf/default.nix b/pkgs/os-specific/linux/libbpf/default.nix
index f2ebcbdcc1cf6..daee83e61dbc2 100644
--- a/pkgs/os-specific/linux/libbpf/default.nix
+++ b/pkgs/os-specific/linux/libbpf/default.nix
@@ -1,19 +1,24 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config
-, libelf, zlib
+{ fetchFromGitHub
 , fetchpatch
+, libelf
+, pkg-config
+, stdenv
+, zlib
+, lib
+, nixosTests
 }:
 
 with builtins;
 
 stdenv.mkDerivation rec {
   pname = "libbpf";
-  version = "0.5.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
-    owner  = "libbpf";
-    repo   = "libbpf";
-    rev    = "v${version}";
-    sha256 = "sha256-L23Ba+slJW/ALj8AepwByrrHgYMY5/Jh+AoD0p4qryI=";
+    owner = "libbpf";
+    repo = "libbpf";
+    rev = "v${version}";
+    sha256 = "sha256-/MLPflnfooe7Wjy8M3CTowAi5oYpscruSkDsaVzhmYQ=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -23,6 +28,15 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
   makeFlags = [ "PREFIX=$(out)" ];
 
+  passthru.tests = {
+    bpf = nixosTests.bpf;
+  };
+
+  postInstall = ''
+    # install linux's libbpf-compatible linux/btf.h
+    install -Dm444 ../include/uapi/linux/btf.h -t $out/include/linux
+  '';
+
   # FIXME: Multi-output requires some fixes to the way the pkg-config file is
   # constructed (it gets put in $out instead of $dev for some reason, with
   # improper paths embedded). Don't enable it for now.
@@ -31,9 +45,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Upstream mirror of libbpf";
-    homepage    = "https://github.com/libbpf/libbpf";
-    license     = with licenses; [ lgpl21 /* or */ bsd2 ];
-    maintainers = with maintainers; [ thoughtpolice vcunat ];
-    platforms   = platforms.linux;
+    homepage = "https://github.com/libbpf/libbpf";
+    license = with licenses; [ lgpl21 /* or */ bsd2 ];
+    maintainers = with maintainers; [ thoughtpolice vcunat saschagrunert martinetd ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/os-specific/linux/libselinux/default.nix b/pkgs/os-specific/linux/libselinux/default.nix
index fcea787ed79c1..fd697fed77638 100644
--- a/pkgs/os-specific/linux/libselinux/default.nix
+++ b/pkgs/os-specific/linux/libselinux/default.nix
@@ -1,5 +1,5 @@
-{ lib, stdenv, fetchurl, pcre, pkg-config, libsepol
-, enablePython ? true, swig ? null, python3 ? null
+{ lib, stdenv, fetchurl, fetchpatch, buildPackages, pcre, pkg-config, libsepol
+, enablePython ? !stdenv.hostPlatform.isStatic, swig ? null, python3 ? null
 , fts
 }:
 
@@ -9,17 +9,38 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "libselinux";
-  version = "3.0";
-  inherit (libsepol) se_release se_url;
+  version = "3.3";
+  inherit (libsepol) se_url;
 
   outputs = [ "bin" "out" "dev" "man" ] ++ optional enablePython "py";
 
   src = fetchurl {
-    url = "${se_url}/${se_release}/libselinux-${version}.tar.gz";
-    sha256 = "0cr4p0qkr4qd5z1x677vwhz6mlz55kxyijwi2dmrvbhxcw7v78if";
+    url = "${se_url}/${version}/libselinux-${version}.tar.gz";
+    sha256 = "0mvh793g7fg6wb6zqhkdyrv80x6k84ypqwi8ii89c91xcckyxzdc";
   };
 
-  nativeBuildInputs = [ pkg-config ] ++ optionals enablePython [ swig python3 ];
+  patches = [
+    # Make it possible to disable shared builds (for pkgsStatic).
+    #
+    # We can't use fetchpatch because it processes includes/excludes
+    # /after/ stripping the prefix, which wouldn't work here because
+    # there would be no way to distinguish between
+    # e.g. libselinux/src/Makefile and libsepol/src/Makefile.
+    #
+    # This is a static email, so we shouldn't have to worry about
+    # normalizing the patch.
+    (fetchurl {
+      url = "https://lore.kernel.org/selinux/20211113141616.361640-1-hi@alyssa.is/raw";
+      sha256 = "16a2s2ji9049892i15yyqgp4r20hi1hij4c1s4s8law9jsx65b3n";
+      postFetch = ''
+        mv "$out" $TMPDIR/patch
+        ${buildPackages.patchutils_0_3_3}/bin/filterdiff \
+            -i 'a/libselinux/*' --strip 1 <$TMPDIR/patch >"$out"
+      '';
+    })
+  ];
+
+  nativeBuildInputs = [ pkg-config python3 ] ++ optionals enablePython [ swig ];
   buildInputs = [ libsepol pcre fts ] ++ optionals enablePython [ python3 ];
 
   # drop fortify here since package uses it by default, leading to compile error:
@@ -40,6 +61,8 @@ stdenv.mkDerivation rec {
 
     "LIBSEPOLA=${lib.getLib libsepol}/lib/libsepol.a"
     "ARCH=${stdenv.hostPlatform.linuxArch}"
+  ] ++ optionals stdenv.hostPlatform.isStatic [
+    "DISABLE_SHARED=y"
   ] ++ optionals enablePython [
     "PYTHON=${python3.pythonForBuild.interpreter}"
     "PYTHONLIBDIR=$(py)/${python3.sitePackages}"
diff --git a/pkgs/os-specific/linux/libsemanage/default.nix b/pkgs/os-specific/linux/libsemanage/default.nix
index 0f9f26c8c5b01..d828c38be1d98 100644
--- a/pkgs/os-specific/linux/libsemanage/default.nix
+++ b/pkgs/os-specific/linux/libsemanage/default.nix
@@ -6,12 +6,12 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "libsemanage";
-  version = "2.9";
-  inherit (libsepol) se_release se_url;
+  version = "3.3";
+  inherit (libsepol) se_url;
 
   src = fetchurl {
-    url = "${se_url}/${se_release}/libsemanage-${version}.tar.gz";
-    sha256 = "075w6y3l9hiy5hicgwrmijyxmhfyd1r7cnc08qxyg4j46jfk8xi5";
+    url = "${se_url}/${version}/libsemanage-${version}.tar.gz";
+    sha256 = "1s3wb66l47blc15s6lkqs11j9l8pycdqqbb03x3vpfrlz9dfrl44";
    };
 
   outputs = [ "out" "dev" "man" ] ++ optional enablePython "py";
diff --git a/pkgs/os-specific/linux/libsepol/default.nix b/pkgs/os-specific/linux/libsepol/default.nix
index e90c089420964..5fa51ac22382c 100644
--- a/pkgs/os-specific/linux/libsepol/default.nix
+++ b/pkgs/os-specific/linux/libsepol/default.nix
@@ -2,31 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "libsepol";
-  version = "3.0";
-  se_release = "20191204";
+  version = "3.3";
   se_url = "https://github.com/SELinuxProject/selinux/releases/download";
 
   outputs = [ "bin" "out" "dev" "man" ];
 
   src = fetchurl {
-    url = "${se_url}/${se_release}/libsepol-${version}.tar.gz";
-    sha256 = "0ygb6dh5lng91xs6xiqf5v0nxa68qmjc787p0s5h9w89364f2yjv";
+    url = "${se_url}/${version}/libsepol-${version}.tar.gz";
+    sha256 = "12r39ygn7aa1kz52wibfr4520m0cp75hlrn3i6rnjqa6p0zdz5rd";
   };
 
-  patches = [
-    # upstream build fix against -fno-common compilers like >=gcc-10
-    (fetchpatch {
-      url = "https://github.com/SELinuxProject/selinux/commit/a96e8c59ecac84096d870b42701a504791a8cc8c.patch";
-      sha256 = "0aybv4kzbhx8xq6s82dsh4ib76k59qzh2bgxmk44iq5cjnqn5rd6";
-      stripLen = 1;
-    })
-    (fetchpatch {
-      url = "https://github.com/SELinuxProject/selinux/commit/3d32fc24d6aff360a538c63dad08ca5c957551b0.patch";
-      sha256 = "1mphwdlj4d6mwmsp5xkpf6ci4rxhgbi3fm79d08h4jbzxaf4wny4";
-      stripLen = 1;
-    })
-  ];
-
   postPatch = lib.optionalString stdenv.hostPlatform.isStatic ''
     substituteInPlace src/Makefile --replace 'all: $(LIBA) $(LIBSO)' 'all: $(LIBA)'
     sed -i $'/^\t.*LIBSO/d' src/Makefile
@@ -46,13 +31,13 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = "-Wno-error";
 
-  passthru = { inherit se_release se_url; };
+  passthru = { inherit se_url; };
 
   meta = with lib; {
     description = "SELinux binary policy manipulation library";
     homepage = "http://userspace.selinuxproject.org";
     platforms = platforms.linux;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     license = lib.licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/os-specific/linux/libtraceevent/default.nix b/pkgs/os-specific/linux/libtraceevent/default.nix
index f28462652e08b..1278e25987062 100644
--- a/pkgs/os-specific/linux/libtraceevent/default.nix
+++ b/pkgs/os-specific/linux/libtraceevent/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "libtraceevent";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchgit {
     url = "git://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git";
     rev = "libtraceevent-${version}";
-    sha256 = "1x36qsrcssjywjpwkgyp9hz6y878kivma9pz7zrhxdsrqv2d2zs1";
+    sha256 = "sha256-ysdsuJ9MvmNY0/XSV+aO7Gh8buWed25DQhBE/5HIASU=";
   };
 
   # Don't build and install html documentation
diff --git a/pkgs/os-specific/linux/liquidtux/default.nix b/pkgs/os-specific/linux/liquidtux/default.nix
new file mode 100644
index 0000000000000..a306135f73b0d
--- /dev/null
+++ b/pkgs/os-specific/linux/liquidtux/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchFromGitHub, kernel }:
+
+stdenv.mkDerivation rec {
+  name = "liquidtux-${version}-${kernel.version}";
+  version = "unstable-2021-12-16";
+
+  src = fetchFromGitHub {
+    owner = "liquidctl";
+    repo = "liquidtux";
+    rev = "342defc0e22ea58f8ab2ab0f191ad3fd302c44cb";
+    sha256 = "12rc3vzfq8vnq9x9ca6swk5ag0xkpgkzmga8ga7q80mah9kxbaax";
+  };
+
+  hardeningDisable = [ "pic" ];
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
+  makeFlags = [
+    "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+  ];
+
+  installPhase = ''
+    install nzxt-grid3.ko nzxt-kraken2.ko nzxt-kraken3.ko nzxt-smart2.ko -Dm444 -t ${placeholder "out"}/lib/modules/${kernel.modDirVersion}/kernel/drivers/hwmon
+  '';
+
+  meta = with lib; {
+    description = "Linux kernel hwmon drivers for AIO liquid coolers and other devices";
+    homepage = "https://github.com/liquidctl/liquidtux";
+    license = licenses.gpl2;
+    platforms = [ "x86_64-linux" "i686-linux" ];
+    maintainers = with maintainers; [ nickhu ];
+  };
+}
diff --git a/pkgs/os-specific/linux/lm-sensors/default.nix b/pkgs/os-specific/linux/lm-sensors/default.nix
index 3590f87e37ade..c40a379405436 100644
--- a/pkgs/os-specific/linux/lm-sensors/default.nix
+++ b/pkgs/os-specific/linux/lm-sensors/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
     changelog = "https://raw.githubusercontent.com/lm-sensors/lm-sensors/V${dashedVersion}/CHANGES";
     description = "Tools for reading hardware sensors";
     license = with licenses; [ lgpl21Plus gpl2Plus ];
-    maintainers = with maintainers; [ pengmeiyu ];
+    maintainers = with maintainers; [ pmy ];
     platforms = platforms.linux;
     mainProgram = "sensors";
   };
diff --git a/pkgs/os-specific/linux/lxcfs/default.nix b/pkgs/os-specific/linux/lxcfs/default.nix
index 3ed80269d3add..6ae44f3fdb87b 100644
--- a/pkgs/os-specific/linux/lxcfs/default.nix
+++ b/pkgs/os-specific/linux/lxcfs/default.nix
@@ -5,13 +5,13 @@
 with lib;
 stdenv.mkDerivation rec {
   pname = "lxcfs";
-  version = "4.0.9";
+  version = "4.0.11";
 
   src = fetchFromGitHub {
     owner = "lxc";
     repo = "lxcfs";
     rev = "lxcfs-${version}";
-    sha256 = "0zx58lair8hwi4bxm5h7i8n1j5fcdgw5cr6f4wk9qhks0sr5dip5";
+    sha256 = "sha256-jWOmGV85uTYjBFQZKR3+TgPWZix2vuN8TLA/dhL8jwk=";
   };
 
   nativeBuildInputs = [ pkg-config help2man autoreconfHook makeWrapper ];
diff --git a/pkgs/os-specific/linux/mcelog/default.nix b/pkgs/os-specific/linux/mcelog/default.nix
index 85e4065e90a44..916c79a4298d9 100644
--- a/pkgs/os-specific/linux/mcelog/default.nix
+++ b/pkgs/os-specific/linux/mcelog/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mcelog";
-  version = "178";
+  version = "180";
 
   src = fetchFromGitHub {
     owner  = "andikleen";
     repo   = "mcelog";
     rev    = "v${version}";
-    sha256 = "sha256-++R/R3oRw0O0MoDnASdVr9UIiI0yS4UcIO8nV62PLzE=";
+    sha256 = "1xy1082c67yd48idg5vwvrw7yx74gn6jj2d9c67d0rh6yji091ki";
   };
 
   postPatch = ''
diff --git a/pkgs/os-specific/linux/mdevd/default.nix b/pkgs/os-specific/linux/mdevd/default.nix
index fe549e880a4d2..9860c3e73021e 100644
--- a/pkgs/os-specific/linux/mdevd/default.nix
+++ b/pkgs/os-specific/linux/mdevd/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "mdevd";
-  version = "0.1.5.0";
-  sha256 = "01ykxgnbm53wijdrbld10664xy2wkvyzbbs98mfnqnf4h1y064n0";
+  version = "0.1.5.1";
+  sha256 = "1xch9sk3hklf2v9z3qlw0rfhhmikqp85zkij7qzwbs09g039bkll";
 
   description = "mdev-compatible Linux hotplug manager daemon";
   platforms = lib.platforms.linux;
diff --git a/pkgs/os-specific/linux/mxu11x0/default.nix b/pkgs/os-specific/linux/mxu11x0/default.nix
index d5129ca7f73ac..ee29180a8d9d8 100644
--- a/pkgs/os-specific/linux/mxu11x0/default.nix
+++ b/pkgs/os-specific/linux/mxu11x0/default.nix
@@ -1,13 +1,15 @@
 { lib, stdenv, fetchurl, kernel }:
 
-stdenv.mkDerivation {
+let
+  srcs = import (./srcs.nix) { inherit fetchurl; };
+in
+stdenv.mkDerivation rec {
   pname = "mxu11x0";
-  version = "1.4-${kernel.version}";
 
-  src = fetchurl {
-    url = "https://www.moxa.com/Moxa/media/PDIM/S100000385/moxa-uport-1000-series-linux-3.x-and-4.x-for-uport-11x0-series-driver-v1.4.tgz";
-    sha256 = "1hz9ygabbp8pv49k1j4qcsr0v3zw9xy0bh1akqgxp5v29gbdgxjl";
-  };
+  src = if lib.versionAtLeast kernel.version "5.0" then srcs.mxu11x0_5.src else srcs.mxu11x0_4.src;
+  mxu_version = if lib.versionAtLeast kernel.version "5.0" then srcs.mxu11x0_5.version else srcs.mxu11x0_4.version;
+
+  version = mxu_version + "-${kernel.version}";
 
   preBuild = ''
     sed -i -e "s/\$(uname -r).*/${kernel.modDirVersion}/g" driver/mxconf
@@ -33,6 +35,8 @@ stdenv.mkDerivation {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ uralbash ];
     platforms = platforms.linux;
-    broken = kernel.kernelAtLeast "5.4";
+    # broken due to API change in write_room() > v5.14-rc1
+    # https://github.com/torvalds/linux/commit/94cc7aeaf6c0cff0b8aeb7cb3579cee46b923560
+    broken = kernel.kernelAtLeast "5.14";
   };
 }
diff --git a/pkgs/os-specific/linux/mxu11x0/srcs.nix b/pkgs/os-specific/linux/mxu11x0/srcs.nix
new file mode 100644
index 0000000000000..5c4e9137c6a6e
--- /dev/null
+++ b/pkgs/os-specific/linux/mxu11x0/srcs.nix
@@ -0,0 +1,18 @@
+{ fetchurl }:
+
+{
+  mxu11x0_4 = {
+    version = "4.1";
+    src = fetchurl {
+      url = "https://www.moxa.com/getmedia/b152d8c2-b9d6-4bc7-b0f4-420633b4bc2d/moxa-uport-1100-series-linux-kernel-4.x-driver-v4.1.tgz";
+      sha256 = "sha256-sbq5M5FQjrrORtSS07PQHf+MAZArxFcUDN5wszBwbnc=";
+    };
+  };
+  mxu11x0_5 = {
+    version = "5.1";
+    src = fetchurl {
+      url = "https://www.moxa.com/getmedia/57dfa4c1-8a2a-4da6-84c1-a36944ead74d/moxa-uport-1100-series-linux-kernel-5.x-driver-v5.1.tgz";
+      sha256 = "sha256-pdFIiD5naSDdYwRz8ww8Mg8z1gDOfZ/OeO6Q5n+kjDQ=";
+    };
+  };
+}
diff --git a/pkgs/os-specific/linux/nftables/default.nix b/pkgs/os-specific/linux/nftables/default.nix
index ebca6b2623c6e..0b6291226bc84 100644
--- a/pkgs/os-specific/linux/nftables/default.nix
+++ b/pkgs/os-specific/linux/nftables/default.nix
@@ -10,12 +10,12 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "1.0.0";
+  version = "1.0.1";
   pname = "nftables";
 
   src = fetchurl {
     url = "https://netfilter.org/projects/nftables/files/${pname}-${version}.tar.bz2";
-    sha256 = "1x25zs2czmn14mmq1nqi4zibsvh04vqjbx5lxj42nylnmxym9gsq";
+    sha256 = "08x4xw0s5sap3q7jfr91v7mrkxrydi4dvsckw85ims0qb1ibmviw";
   };
 
   nativeBuildInputs = [
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--with-json"
+    "--with-cli=readline"  # TODO: maybe switch to editline
   ] ++ optional (!withDebugSymbols) "--disable-debug"
     ++ optional (!withPython) "--disable-python"
     ++ optional withPython "--enable-python"
@@ -45,6 +46,6 @@ stdenv.mkDerivation rec {
     homepage = "https://netfilter.org/projects/nftables/";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ izorkin ];
+    maintainers = with maintainers; [ izorkin ajs124 ];
   };
 }
diff --git a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
index 244e1c1d52b14..e5e40dca086ed 100755
--- a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
+++ b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
@@ -1,4 +1,5 @@
 #! @runtimeShell@
+# shellcheck shell=bash
 
 if [ -x "@runtimeShell@" ]; then export SHELL="@runtimeShell@"; fi;
 
@@ -132,7 +133,7 @@ if [[ -n "$SUDO_USER" || -n $remoteSudo ]]; then
     maybeSudo=(sudo --preserve-env="$preservedSudoVars" --)
 fi
 
-if [ -z "$buildHost" -a -n "$targetHost" ]; then
+if [[ -z "$buildHost" && -n "$targetHost" ]]; then
     buildHost="$targetHost"
 fi
 if [ "$targetHost" = localhost ]; then
@@ -217,8 +218,7 @@ nixBuild() {
 }
 
 nixFlakeBuild() {
-    if [[ -z "$buildHost" && -z "$targetHost" ]] &&
-       ! [ "$action" = switch -o "$action" = boot ]
+    if [[ -z "$buildHost" && -z "$targetHost" && "$action" != switch && "$action" != boot ]]
     then
         nix "${flakeFlags[@]}" build "$@"
         readlink -f ./result
@@ -273,7 +273,7 @@ if [ -z "$action" ]; then showSyntax; fi
 # executed, so it's safe to run nixos-rebuild against a potentially
 # untrusted tree.
 canRun=
-if [ "$action" = switch -o "$action" = boot -o "$action" = test ]; then
+if [[ "$action" = switch || "$action" = boot || "$action" = test ]]; then
     canRun=1
 fi
 
@@ -377,7 +377,7 @@ trap cleanup EXIT
 
 # First build Nix, since NixOS may require a newer version than the
 # current one.
-if [ -n "$rollback" -o "$action" = dry-build ]; then
+if [[ -n "$rollback" || "$action" = dry-build ]]; then
     buildNix=
 fi
 
@@ -411,7 +411,7 @@ if [[ -n $buildNix && -z $flake ]]; then
             if ! nixStorePath="$(nix-instantiate --eval '<nixpkgs/nixos/modules/installer/tools/nix-fallback-paths.nix>' -A "$(nixSystem)" | sed -e 's/^"//' -e 's/"$//')"; then
                 nixStorePath="$(prebuiltNix "$(uname -m)")"
             fi
-            if ! nix-store -r $nixStorePath --add-root $tmpDir/nix --indirect \
+            if ! nix-store -r "$nixStorePath" --add-root "${tmpDir}/nix" --indirect \
                 --option extra-binary-caches https://cache.nixos.org/; then
                 echo "warning: don't know how to get latest Nix" >&2
             fi
@@ -464,7 +464,7 @@ fi
 # current directory (for "build" and "test").
 if [ -z "$rollback" ]; then
     echo "building the system configuration..." >&2
-    if [ "$action" = switch -o "$action" = boot ]; then
+    if [[ "$action" = switch || "$action" = boot ]]; then
         if [[ -z $flake ]]; then
             pathToConfig="$(nixBuild '<nixpkgs/nixos>' --no-out-link -A system "${extraBuildFlags[@]}")"
         else
@@ -472,7 +472,7 @@ if [ -z "$rollback" ]; then
         fi
         copyToTarget "$pathToConfig"
         targetHostCmd nix-env -p "$profile" --set "$pathToConfig"
-    elif [ "$action" = test -o "$action" = build -o "$action" = dry-build -o "$action" = dry-activate ]; then
+    elif [[ "$action" = test || "$action" = build || "$action" = dry-build || "$action" = dry-activate ]]; then
         if [[ -z $flake ]]; then
             pathToConfig="$(nixBuild '<nixpkgs/nixos>' -A system -k "${extraBuildFlags[@]}")"
         else
@@ -494,14 +494,14 @@ if [ -z "$rollback" ]; then
         showSyntax
     fi
     # Copy build to target host if we haven't already done it
-    if ! [ "$action" = switch -o "$action" = boot ]; then
+    if ! [[ "$action" = switch || "$action" = boot ]]; then
         copyToTarget "$pathToConfig"
     fi
 else # [ -n "$rollback" ]
-    if [ "$action" = switch -o "$action" = boot ]; then
+    if [[ "$action" = switch || "$action" = boot ]]; then
         targetHostCmd nix-env --rollback -p "$profile"
         pathToConfig="$profile"
-    elif [ "$action" = test -o "$action" = build ]; then
+    elif [[ "$action" = test || "$action" = build ]]; then
         systemNumber=$(
             targetHostCmd nix-env -p "$profile" --list-generations |
             sed -n '/current/ {g; p;}; s/ *\([0-9]*\).*/\1/; h'
@@ -518,7 +518,7 @@ fi
 
 # If we're not just building, then make the new configuration the boot
 # default and/or activate it now.
-if [ "$action" = switch -o "$action" = boot -o "$action" = test -o "$action" = dry-activate ]; then
+if [[ "$action" = switch || "$action" = boot || "$action" = test || "$action" = dry-activate ]]; then
     if ! targetHostCmd "$pathToConfig/bin/switch-to-configuration" "$action"; then
         echo "warning: error(s) occurred while switching to the new configuration" >&2
         exit 1
@@ -526,9 +526,9 @@ if [ "$action" = switch -o "$action" = boot -o "$action" = test -o "$action" = d
 fi
 
 
-if [ "$action" = build-vm -o "$action" = build-vm-with-bootloader ]; then
+if [[ "$action" = build-vm || "$action" = build-vm-with-bootloader ]]; then
     cat >&2 <<EOF
 
-Done.  The virtual machine can be started by running $(echo $pathToConfig/bin/run-*-vm)
+Done.  The virtual machine can be started by running $(echo "${pathToConfig}/bin/"run-*-vm)
 EOF
 fi
diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index d88d18b85caf6..2af6db7faf38f 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -19,13 +19,16 @@ rec {
   # Policy: use the highest stable version as the default (on our master).
   stable = if stdenv.hostPlatform.system == "x86_64-linux"
     then generic {
-      version = "495.44";
-      sha256_64bit = "0j4agxfdswadxkd9hz9j5cq4q3jmhwdnvqclxxkhl5jvh5knm1zi";
-      settingsSha256 = "0v8gqbhjsjjsc83cqacikj9bvs10bq6i34ca8l07zvsf8hfr2ziz";
-      persistencedSha256 = "19rv7vskv61q4gh59nyrfyqyqi565wzjbcfddp8wfvng4dcy18ld";
+      version = "495.46";
+      sha256_64bit = "2Dt30X2gxUZnqlsT1uqVpcUTBCV7Hs8vjUo7WuMcYvU=";
+      settingsSha256 = "vbcZYn+UBBGwjfrJ6SyXt3+JLBeNcXK4h8mjj7qxZPk=";
+      persistencedSha256 = "ieYqkVxe26cLw1LUgBsFSSowAyfZkTcItIzQCestCXI=";
     }
     else legacy_390;
 
+  # see https://www.nvidia.com/en-us/drivers/unix/ "Production branch"
+  production = legacy_470;
+
   beta = generic {
     version = "495.29.05";
     sha256_64bit = "sha256-9yVLl9QAxpJQR5ZJb059j2TpOx4xxCeGCk8hmhhvEl4=";
@@ -51,10 +54,10 @@ rec {
 
   # Last one supporting Kepler architecture
   legacy_470 = generic {
-      version = "470.86";
-      sha256_64bit = "sha256:0krwcxc0j19vjnk8sv6mx1lin2rm8hcfhc2hg266846jvcws1dsg";
-      settingsSha256 = "sha256:1lnj5hwmfkzs664fxlhljqy323394s1i7qzlpsjyrpm07sa93bky";
-      persistencedSha256 = "sha256:0apj764zc81ayb8nm9bf7cdicfinarv0gfijy2dxynbwz2xdlyvq";
+      version = "470.94";
+      sha256_64bit = "lYWqKTMOutm98izjyiusICbIWpoy8D18WfcUp3mFAOs=";
+      settingsSha256 = "blJNKuFu/Th/ceexkKhTH/eYk8miUlTT+ESrcIyJNn0=";
+      persistencedSha256 = "xnccQ/EgafwnReBlk5Y7iClAj4hwXyFq9gUmwqyEuwE=";
   };
 
   # Last one supporting x86
diff --git a/pkgs/os-specific/linux/nvme-cli/default.nix b/pkgs/os-specific/linux/nvme-cli/default.nix
index 57d59c27b6e6a..c7819afe3ef49 100644
--- a/pkgs/os-specific/linux/nvme-cli/default.nix
+++ b/pkgs/os-specific/linux/nvme-cli/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nvme-cli";
-  version = "1.15";
+  version = "1.16";
 
   src = fetchFromGitHub {
     owner = "linux-nvme";
     repo = "nvme-cli";
     rev = "v${version}";
-    sha256 = "0qr1wa163cb7z6g083nl3zcc28mmlbxh1m97pd54bp3gyrhmdhhr";
+    sha256 = "sha256-/wDQxsN1sji56zfcvqx02iciYnyxjIbL85bNaRwrHYw=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/os-specific/linux/ocf-resource-agents/default.nix b/pkgs/os-specific/linux/ocf-resource-agents/default.nix
new file mode 100644
index 0000000000000..9c9557c7be851
--- /dev/null
+++ b/pkgs/os-specific/linux/ocf-resource-agents/default.nix
@@ -0,0 +1,56 @@
+{ stdenv
+, lib
+, runCommand
+, lndir
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, python3
+, glib
+, drbd
+}:
+
+let
+  drbdForOCF = drbd.override {
+    forOCF = true;
+  };
+
+  resource-agentsForOCF = stdenv.mkDerivation rec {
+    pname = "resource-agents";
+    version = "4.10.0";
+
+    src = fetchFromGitHub {
+      owner = "ClusterLabs";
+      repo = pname;
+      rev = "v${version}";
+      sha256 = "0haryi3yrszdfpqnkfnppxj1yiy6ipah6m80snvayc7v0ss0wnir";
+    };
+
+    nativeBuildInputs = [
+      autoreconfHook
+      pkg-config
+    ];
+
+    buildInputs = [
+      glib
+      python3
+    ];
+
+    meta = with lib; {
+      homepage = "https://github.com/ClusterLabs/resource-agents";
+      description = "Combined repository of OCF agents from the RHCS and Linux-HA projects";
+      license = licenses.gpl2Plus;
+      platforms = platforms.linux;
+      maintainers = with maintainers; [ ryantm astro ];
+    };
+  };
+
+in
+
+# This combines together OCF definitions from other derivations.
+# https://github.com/ClusterLabs/resource-agents/blob/master/doc/dev-guides/ra-dev-guide.asc
+runCommand "ocf-resource-agents" {} ''
+  mkdir -p $out/usr/lib/ocf
+  ${lndir}/bin/lndir -silent "${resource-agentsForOCF}/lib/ocf/" $out/usr/lib/ocf
+  ${lndir}/bin/lndir -silent "${drbdForOCF}/usr/lib/ocf/" $out/usr/lib/ocf
+''
diff --git a/pkgs/os-specific/linux/pam_u2f/default.nix b/pkgs/os-specific/linux/pam_u2f/default.nix
index 30a55f2b9c006..5e4b190c7a32e 100644
--- a/pkgs/os-specific/linux/pam_u2f/default.nix
+++ b/pkgs/os-specific/linux/pam_u2f/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pam_u2f";
-  version = "1.1.1";
+  version = "1.2.0";
 
   src     = fetchurl {
     url = "https://developers.yubico.com/pam-u2f/Releases/${pname}-${version}.tar.gz";
-    sha256 = "12p3pkrp32vzpg7707cgx8zgvgj8iqwhy39sm761k7plqi027mmp";
+    sha256 = "sha256-IwPm+Zsf3o7jw6sopN4tpt3SJclTaT6EXWstg4giH7M=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/os-specific/linux/pax-utils/default.nix b/pkgs/os-specific/linux/pax-utils/default.nix
index 4bc5266cadc4e..b22af8d708388 100644
--- a/pkgs/os-specific/linux/pax-utils/default.nix
+++ b/pkgs/os-specific/linux/pax-utils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl }:
+{ stdenv, lib, fetchurl, bash }:
 
 stdenv.mkDerivation rec {
   pname = "pax-utils";
@@ -9,6 +9,10 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-7sp/vZi8Zr6tSncADCAl2fF+qCAbhCRYgkBs4AubaxQ=";
   };
 
+  strictDeps = true;
+
+  buildInputs = [ bash ];
+
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
diff --git a/pkgs/os-specific/linux/phc-intel/default.nix b/pkgs/os-specific/linux/phc-intel/default.nix
index 34693564e0aae..a0d43b2e0e367 100644
--- a/pkgs/os-specific/linux/phc-intel/default.nix
+++ b/pkgs/os-specific/linux/phc-intel/default.nix
@@ -44,8 +44,7 @@ in stdenv.mkDerivation rec {
       while noticably reducing fan noise. This driver works only on supported
       Intel architectures.
     '';
-    homepage = "http://www.linux-phc.org/";
-    downloadPage = "http://www.linux-phc.org/forum/viewtopic.php?f=7&t=267";
+    homepage = "https://github.com/danielw86dev/phc-intel-dkms";
     license = licenses.gpl2;
     platforms = [ "x86_64-linux" "i686-linux" ];
     broken = lib.versionAtLeast kernel.version "4.18";
diff --git a/pkgs/os-specific/linux/pktgen/default.nix b/pkgs/os-specific/linux/pktgen/default.nix
index 5a1a56ab6919d..36dea8ed6e0e7 100644
--- a/pkgs/os-specific/linux/pktgen/default.nix
+++ b/pkgs/os-specific/linux/pktgen/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pktgen";
-  version = "21.05.0";
+  version = "21.11.0";
 
   src = fetchFromGitHub {
     owner = "pktgen";
     repo = "Pktgen-DPDK";
     rev = "pktgen-${version}";
-    sha256 = "sha256-7lLDtbd14olEHO+1BuI6KTEUNRM/zAyRXau/OZbYbGA=";
+    sha256 = "sha256-3z5DSkggHTwjzsRzRG5zzZTcNsn/5YankJT8CKSN8b4=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
@@ -25,7 +25,6 @@ stdenv.mkDerivation rec {
   RTE_SDK = dpdk;
   GUI = lib.optionalString withGtk "true";
 
-  NIX_CFLAGS_COMPILE = "-msse3";
   # requires symbols from this file
   NIX_LDFLAGS = "-lrte_net_bond";
 
@@ -43,7 +42,7 @@ stdenv.mkDerivation rec {
     description = "Traffic generator powered by DPDK";
     homepage = "http://dpdk.org/";
     license = licenses.bsdOriginal;
-    platforms =  [ "x86_64-linux" ];
+    platforms =  platforms.linux;
     maintainers = [ maintainers.abuibrahim ];
   };
 }
diff --git a/pkgs/os-specific/linux/policycoreutils/default.nix b/pkgs/os-specific/linux/policycoreutils/default.nix
index 7e2ff29325a81..c066dd4c4c5c5 100644
--- a/pkgs/os-specific/linux/policycoreutils/default.nix
+++ b/pkgs/os-specific/linux/policycoreutils/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "policycoreutils";
-  version = "2.9";
-  inherit (libsepol) se_release se_url;
+  version = "3.3";
+  inherit (libsepol) se_url;
 
   src = fetchurl {
-    url = "${se_url}/${se_release}/policycoreutils-${version}.tar.gz";
-    sha256 = "0yqg5ws5gbl1cbn8msxdk1c3ilmmx58qg5dx883kqyq0517k8g65";
+    url = "${se_url}/${version}/policycoreutils-${version}.tar.gz";
+    sha256 = "0y0hl32b2ks7r0fhbx3k2j1gqqms5aplyasjs3fz50caxl6096a1";
   };
 
   postPatch = ''
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   makeFlags = [
     "PREFIX=$(out)"
-    "SBINDIR=$(out)/sbin"
+    "SBINDIR=$(out)/bin"
     "ETCDIR=$(out)/etc"
     "BASHCOMPLETIONDIR=$out/share/bash-completion/completions"
     "LOCALEDIR=$(out)/share/locale"
diff --git a/pkgs/os-specific/linux/power-calibrate/default.nix b/pkgs/os-specific/linux/power-calibrate/default.nix
index d62990ed4ffdf..884b2d0e01cdd 100644
--- a/pkgs/os-specific/linux/power-calibrate/default.nix
+++ b/pkgs/os-specific/linux/power-calibrate/default.nix
@@ -1,22 +1,25 @@
-{ stdenv, lib, fetchurl }:
+{ stdenv, lib, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "power-calibrate";
-  version = "0.01.29";
+  version = "0.01.34";
 
-  src = fetchurl {
-    url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "1v8wvhjqglkvk9cl2b48lkcwhbc6nsdi3hjd7sap4hyvd6703pgs";
+  src = fetchFromGitHub {
+    owner = "ColinIanKing";
+    repo = pname;
+    rev = "V${version}";
+    hash = "sha256-T2fCTE+snNt1ylOpVR0JfT2x0lWrgItpfjtUx/zjaQw=";
   };
 
   installFlags = [
     "BINDIR=${placeholder "out"}/bin"
     "MANDIR=${placeholder "out"}/share/man/man8"
+    "BASHDIR=${placeholder "out"}/share/bash-completion/completions"
   ];
 
   meta = with lib; {
     description = "Tool to calibrate power consumption";
-    homepage = "https://kernel.ubuntu.com/~cking/power-calibrate/";
+    homepage = "https://github.com/ColinIanKing/power-calibrate";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ dtzWill ];
diff --git a/pkgs/os-specific/linux/powercap/default.nix b/pkgs/os-specific/linux/powercap/default.nix
index ad9de9f75d5d9..24832e5fdff92 100644
--- a/pkgs/os-specific/linux/powercap/default.nix
+++ b/pkgs/os-specific/linux/powercap/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "powercap";
-  version = "0.3.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "powercap";
     repo = "powercap";
     rev = "v${version}";
-    sha256 = "0f1sg1zsskcfralg9khwq7lmz25gvnyknza3bb0hmh1a9lw0jhdn";
+    sha256 = "sha256-VvepbABc7daRE0/sJqsCb+m2my8O3B1ICXywBqsjSO8=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/os-specific/linux/powerstat/default.nix b/pkgs/os-specific/linux/powerstat/default.nix
index f80b7425cd485..86f2e124ed293 100644
--- a/pkgs/os-specific/linux/powerstat/default.nix
+++ b/pkgs/os-specific/linux/powerstat/default.nix
@@ -1,24 +1,25 @@
-{ stdenv, lib, fetchurl }:
+{ stdenv, lib, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "powerstat";
-  version = "0.02.25";
+  version = "0.02.27";
 
-  src = fetchurl {
-    url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-C6MCOXnElDI69QkLKd2X2SLved8cRCN0Q6BhUvvqsTY=";
+  src = fetchFromGitHub {
+    owner = "ColinIanKing";
+    repo = pname;
+    rev = "V${version}";
+    hash = "sha256-P6DhsHnB+ak35JpUfD8Q8XbgMhI1QKKe31B8uMT2ZcY=";
   };
 
-  installFlags = [ "DESTDIR=${placeholder "out"}" ];
-
-  postInstall = ''
-    mv $out/usr/* $out
-    rm -r $out/usr
-  '';
+  installFlags = [
+    "BINDIR=${placeholder "out"}/bin"
+    "MANDIR=${placeholder "out"}/share/man/man8"
+    "BASHDIR=${placeholder "out"}/share/bash-completion/completions"
+  ];
 
   meta = with lib; {
     description = "Laptop power measuring tool";
-    homepage = "https://kernel.ubuntu.com/~cking/powerstat/";
+    homepage = "https://github.com/ColinIanKing/powerstat";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ womfoo ];
diff --git a/pkgs/os-specific/linux/pps-tools/default.nix b/pkgs/os-specific/linux/pps-tools/default.nix
index 146c9457ed34e..66754e5148ec6 100644
--- a/pkgs/os-specific/linux/pps-tools/default.nix
+++ b/pkgs/os-specific/linux/pps-tools/default.nix
@@ -1,15 +1,14 @@
 { lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  baseName = "pps-tools";
-  version = "1.0.2";
-  name = "${baseName}-${version}";
+  pname = "pps-tools";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "redlab-i";
-    repo = baseName;
+    repo = pname;
     rev = "v${version}";
-    sha256 = "1yh9g0l59dkq4ci0wbb03qin3c3cizfngmn9jy1vwm5zm6axlxhf";
+    sha256 = "sha256-eLLFHrCgOQzOtVxlAsZ5X91KK+vZiKMGL7zbQFiIZtI=";
   };
 
   outputs = [ "out" "dev" ];
@@ -24,7 +23,7 @@ stdenv.mkDerivation rec {
     rm -rf $out/usr/
   '';
 
-  meta = with lib;{
+  meta = with lib; {
     description = "User-space tools for LinuxPPS";
     homepage = "http://linuxpps.org/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/os-specific/linux/prl-tools/default.nix b/pkgs/os-specific/linux/prl-tools/default.nix
index 431e0ed58b1f0..e6c246de0d27c 100644
--- a/pkgs/os-specific/linux/prl-tools/default.nix
+++ b/pkgs/os-specific/linux/prl-tools/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   inherit libsOnly;
 
   unpackPhase = ''
-    undmg < "${src}"
+    undmg "${src}"
 
     export sourceRoot=prl-tools-build
     7z x "Parallels Desktop.app/Contents/Resources/Tools/prl-tools-lin.iso" -o$sourceRoot
diff --git a/pkgs/os-specific/linux/psftools/default.nix b/pkgs/os-specific/linux/psftools/default.nix
index 6d423be738e73..5d8c39bb145c9 100644
--- a/pkgs/os-specific/linux/psftools/default.nix
+++ b/pkgs/os-specific/linux/psftools/default.nix
@@ -1,10 +1,10 @@
 { lib, stdenv, fetchurl }:
 stdenv.mkDerivation rec {
   pname = "psftools";
-  version = "1.1.0";
+  version = "1.1.1";
   src = fetchurl {
     url = "https://www.seasip.info/Unix/PSF/${pname}-${version}.tar.gz";
-    sha256 = "sha256-P9eIHtEXC55C2rXweJ9Vw93tIspjjQ6MCQ44FJDEook=";
+    sha256 = "sha256-MecY4JsIXTgHdkrFkQ+C3fC6OEFRUgjUgf7qxfKeZtM=";
   };
   outputs = ["out" "man" "dev" "lib"];
 
diff --git a/pkgs/os-specific/linux/radeontop/default.nix b/pkgs/os-specific/linux/radeontop/default.nix
index b172fad6adcbc..9e9cb5845e4e6 100644
--- a/pkgs/os-specific/linux/radeontop/default.nix
+++ b/pkgs/os-specific/linux/radeontop/default.nix
@@ -3,10 +3,10 @@
 
 stdenv.mkDerivation rec {
   pname = "radeontop";
-  version = "1.3";
+  version = "1.4";
 
   src = fetchFromGitHub {
-    sha256 = "sha256-tnIxM0+RfOIt714fEUWRP/4rEPHaOuCZFit9/RPdxis=";
+    sha256 = "0kwqddidr45s1blp0h8r8h1dd1p50l516yb6mb4s6zsc827xzgg3";
     rev = "v${version}";
     repo = "radeontop";
     owner = "clbr";
@@ -19,12 +19,13 @@ stdenv.mkDerivation rec {
 
   patchPhase = ''
     substituteInPlace getver.sh --replace ver=unknown ver=${version}
+    substituteInPlace Makefile --replace pkg-config "$PKG_CONFIG"
   '';
 
   makeFlags = [ "PREFIX=$(out)" ];
 
   postInstall = ''
-    wrapProgram $out/sbin/radeontop \
+    wrapProgram $out/bin/radeontop \
       --prefix LD_LIBRARY_PATH : $out/lib
   '';
 
diff --git a/pkgs/os-specific/linux/rdma-core/default.nix b/pkgs/os-specific/linux/rdma-core/default.nix
index b930e966a2755..710a74d67d8cf 100644
--- a/pkgs/os-specific/linux/rdma-core/default.nix
+++ b/pkgs/os-specific/linux/rdma-core/default.nix
@@ -5,17 +5,18 @@
 
 stdenv.mkDerivation rec {
   pname = "rdma-core";
-  version = "37.1";
+  version = "38.0";
 
   src = fetchFromGitHub {
     owner = "linux-rdma";
     repo = "rdma-core";
     rev = "v${version}";
-    sha256 = "19s59id4m0zkkm4hqa36f2xnah4rs4z207kxzn4zdg2x1d06j9jg";
+    sha256 = "1z9yrkqdknzidg4g1g5rqrs7i0325nmzzw0nf2ki1nzlfwqxy9qv";
   };
 
-  nativeBuildInputs = [ cmake pkg-config pandoc docutils ];
-  buildInputs = [ libnl ethtool iproute2 udev python3 perl ];
+  strictDeps = true;
+  nativeBuildInputs = [ cmake pkg-config pandoc docutils python3 ];
+  buildInputs = [ libnl ethtool iproute2 udev perl ];
 
   cmakeFlags = [
     "-DCMAKE_INSTALL_RUNDIR=/run"
diff --git a/pkgs/os-specific/linux/rtl8821ce/default.nix b/pkgs/os-specific/linux/rtl8821ce/default.nix
index 27ee57ba75537..75e12a1b7a46c 100644
--- a/pkgs/os-specific/linux/rtl8821ce/default.nix
+++ b/pkgs/os-specific/linux/rtl8821ce/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rtl8821ce";
-  version = "${kernel.version}-unstable-2021-05-28";
+  version = "${kernel.version}-unstable-2021-11-19";
 
   src = fetchFromGitHub {
     owner = "tomaspinho";
     repo = "rtl8821ce";
-    rev = "f93db734666f75ebf65e44ceb943c19b598b1647";
-    sha256 = "sha256-cqXV52U+6Jl9Jje1nEOYDvmH4rgA1QdrwNCfYeul3hU=";
+    rev = "ca204c60724d23ab10244f920d4e50759ed1affb";
+    sha256 = "18ma8a8h1l90dss0k6al7q6plwr57jc9g67p22g9917k1jfbhm97";
   };
 
   hardeningDisable = [ "pic" ];
@@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     platforms = platforms.linux;
     broken = stdenv.isAarch64;
-    maintainers = with maintainers; [ hhm ];
+    maintainers = with maintainers; [ hhm ivar ];
   };
 }
diff --git a/pkgs/os-specific/linux/rtl88xxau-aircrack/default.nix b/pkgs/os-specific/linux/rtl88xxau-aircrack/default.nix
index 25dd61bc8a0ba..1f27c262e673e 100644
--- a/pkgs/os-specific/linux/rtl88xxau-aircrack/default.nix
+++ b/pkgs/os-specific/linux/rtl88xxau-aircrack/default.nix
@@ -39,6 +39,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/aircrack-ng/rtl8812au";
     license = licenses.gpl2Only;
     maintainers = [ maintainers.jethro ];
-    platforms = [ "x86_64-linux" "i686-linux" ];
+    platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" ];
   };
 }
diff --git a/pkgs/os-specific/linux/s6-linux-init/default.nix b/pkgs/os-specific/linux/s6-linux-init/default.nix
index 5d579c3ab2ad5..ab9843d07f1f2 100644
--- a/pkgs/os-specific/linux/s6-linux-init/default.nix
+++ b/pkgs/os-specific/linux/s6-linux-init/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "s6-linux-init";
-  version = "1.0.6.4";
-  sha256 = "0grqk111d6aqym1c4l9j26fdqcgra1hvwb9vdgylrfbvn1c3hlpb";
+  version = "1.0.7.0";
+  sha256 = "16bzijmzxi91ycayhpn398yjgag3c5pnlghs6sqdmzlf2fiirif5";
 
   description = "A set of minimalistic tools used to create a s6-based init system, including a /sbin/init binary, on a Linux kernel";
   platforms = lib.platforms.linux;
diff --git a/pkgs/os-specific/linux/s6-linux-utils/default.nix b/pkgs/os-specific/linux/s6-linux-utils/default.nix
index 06a177f1cc62d..753a77aa1c723 100644
--- a/pkgs/os-specific/linux/s6-linux-utils/default.nix
+++ b/pkgs/os-specific/linux/s6-linux-utils/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "s6-linux-utils";
-  version = "2.5.1.6";
-  sha256 = "0hr49nl0d7a6i5w8cfg43xzvzayb8kpqij9xg7bmw2fyvc2z338z";
+  version = "2.5.1.7";
+  sha256 = "1n6zmnczbybwcchkhg5zqixz8mdk5bfn0sxq0kxifgpi9ggw5a46";
 
   description = "A set of minimalistic Linux-specific system utilities";
   platforms = lib.platforms.linux;
diff --git a/pkgs/os-specific/linux/selinux-python/default.nix b/pkgs/os-specific/linux/selinux-python/default.nix
index b6394b3e1f6c8..c50f4ffccd0bb 100644
--- a/pkgs/os-specific/linux/selinux-python/default.nix
+++ b/pkgs/os-specific/linux/selinux-python/default.nix
@@ -7,13 +7,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "selinux-python";
-  version = "2.9";
+  version = "3.3";
 
-  inherit (libsepol) se_release se_url;
+  inherit (libsepol) se_url;
 
   src = fetchurl {
-    url = "${se_url}/${se_release}/selinux-python-${version}.tar.gz";
-    sha256 = "1pjzsyay5535cxcjag7y7k193ajry0s0xc3dqv5905qd7cwval1n";
+    url = "${se_url}/${version}/selinux-python-${version}.tar.gz";
+    sha256 = "1v244hpb45my303793xa4kcn7qnxjgxn4ja7rdn9k1q361hi1nca";
   };
 
   strictDeps = true;
@@ -49,4 +49,3 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
   };
 }
-
diff --git a/pkgs/os-specific/linux/selinux-sandbox/default.nix b/pkgs/os-specific/linux/selinux-sandbox/default.nix
index a10588bacf113..0d2843d216a46 100644
--- a/pkgs/os-specific/linux/selinux-sandbox/default.nix
+++ b/pkgs/os-specific/linux/selinux-sandbox/default.nix
@@ -9,12 +9,12 @@ with python3.pkgs;
 
 stdenv.mkDerivation rec {
   pname = "selinux-sandbox";
-  version = "2.9";
-  inherit (policycoreutils) se_release se_url;
+  version = "3.3";
+  inherit (policycoreutils) se_url;
 
   src = fetchurl {
-    url = "${se_url}/${se_release}/selinux-sandbox-${version}.tar.gz";
-    sha256 = "0qj20jyi8v1653xdqj5yak3wwbvg5bw8f2jmx8fpahl6y1bmz481";
+    url = "${se_url}/${version}/selinux-sandbox-${version}.tar.gz";
+    sha256 = "0rw8pxfqhl6ww4w31fbf4hi3zilh1n3b1rfjm7ra76mm78wfyylj";
   };
 
   nativeBuildInputs = [ wrapPython ];
diff --git a/pkgs/os-specific/linux/semodule-utils/default.nix b/pkgs/os-specific/linux/semodule-utils/default.nix
index b76e715dbc26a..5c8d83c3f82a3 100644
--- a/pkgs/os-specific/linux/semodule-utils/default.nix
+++ b/pkgs/os-specific/linux/semodule-utils/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "semodule-utils";
-  version = "2.9";
+  version = "3.3";
 
-  inherit (libsepol) se_release se_url;
+  inherit (libsepol) se_url;
 
   src = fetchurl {
-    url = "${se_url}/${se_release}/${pname}-${version}.tar.gz";
-    sha256 = "01yrwnd3calmw6r8kdh8ld7i7fb250n2yqqqk9p0ymrlwsg6g0w0";
+    url = "${se_url}/${version}/${pname}-${version}.tar.gz";
+    sha256 = "0qvhl40a6jlm8p719nnlw2ghlxbh8lxbcsd59azxp884bxgfr61h";
   };
 
   buildInputs = [ libsepol ];
diff --git a/pkgs/os-specific/linux/sepolgen/default.nix b/pkgs/os-specific/linux/sepolgen/default.nix
deleted file mode 100644
index f7ef1cb9c3a74..0000000000000
--- a/pkgs/os-specific/linux/sepolgen/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib, stdenv, fetchurl, libsepol, python }:
-
-stdenv.mkDerivation rec {
-  pname = "sepolgen";
-  version = "1.2.2";
-  inherit (libsepol) se_release se_url;
-
-  src = fetchurl {
-    url = "${se_url}/${se_release}/sepolgen-${version}.tar.gz";
-    sha256 = "09139kspr41zgksayi4dh982p8080lrfl96p4dld51nknbpaigdy";
-  };
-
-  preBuild = ''
-    makeFlagsArray+=("PREFIX=$out")
-    makeFlagsArray+=("DESTDIR=$out")
-    makeFlagsArray+=("PYTHONLIBDIR=lib/${python.libPrefix}/site-packages")
-  '';
-
-  meta = with lib; {
-    inherit (libsepol.meta) homepage platforms maintainers;
-    description = "SELinux policy generation library";
-    license = licenses.gpl2;
-  };
-}
diff --git a/pkgs/os-specific/linux/service-wrapper/service-wrapper.sh b/pkgs/os-specific/linux/service-wrapper/service-wrapper.sh
index a7c3bc9758b12..2889adc186860 100755
--- a/pkgs/os-specific/linux/service-wrapper/service-wrapper.sh
+++ b/pkgs/os-specific/linux/service-wrapper/service-wrapper.sh
@@ -33,12 +33,12 @@
 
 
 is_ignored_file() {
-	case "$1" in
-		skeleton | README | *.dpkg-dist | *.dpkg-old | rc | rcS | single | reboot | bootclean.sh)
-			return 0
-		;;
-	esac
-	return 1
+    case "$1" in
+        skeleton | README | *.dpkg-dist | *.dpkg-old | rc | rcS | single | reboot | bootclean.sh)
+            return 0
+        ;;
+    esac
+    return 1
 }
 
 VERSION=$(@coreutils@/bin/basename $0)" ver. 19-04"
@@ -75,35 +75,35 @@ while [ $# -gt 0 ]; do
        if [ -z "${SERVICE}" -a $# -eq 1 -a "${1}" = "--status-all" ]; then
           if [ -d "${SERVICEDIR}" ]; then
              cd ${SERVICEDIR}
-	     for SERVICE in * ; do
-	       case "${SERVICE}" in
-	         functions | halt | killall | single| linuxconf| kudzu)
-	             ;;
-	         *)
-	           if ! is_ignored_file "${SERVICE}" \
-	   	    && [ -x "${SERVICEDIR}/${SERVICE}" ]; then
-	                   out=$(env -i LANG="$LANG" LANGUAGE="$LANGUAGE" LC_CTYPE="$LC_CTYPE" LC_NUMERIC="$LC_NUMERIC" LC_TIME="$LC_TIME" LC_COLLATE="$LC_COLLATE" LC_MONETARY="$LC_MONETARY" LC_MESSAGES="$LC_MESSAGES" LC_PAPER="$LC_PAPER" LC_NAME="$LC_NAME" LC_ADDRESS="$LC_ADDRESS" LC_TELEPHONE="$LC_TELEPHONE" LC_MEASUREMENT="$LC_MEASUREMENT" LC_IDENTIFICATION="$LC_IDENTIFICATION" LC_ALL="$LC_ALL" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status 2>&1)
-	                   retval=$?
-	                   if echo "$out" | egrep -iq "usage:"; then
-	                     #printf " %s %-60s %s\n" "[?]" "$SERVICE:" "unknown" 1>&2
-	                     echo " [ ? ]  $SERVICE" 1>&2
-	                     continue
-	                   else
-	                     if [ "$retval" = "0" -a -n "$out" ]; then
-	                       #printf " %s %-60s %s\n" "[+]" "$SERVICE:" "running"
-	                       echo " [ + ]  $SERVICE"
-	                       continue
-	                     else
-	                       #printf " %s %-60s %s\n" "[-]" "$SERVICE:" "NOT running"
-	                       echo " [ - ]  $SERVICE"
-	                       continue
-	                     fi
-	                   fi
-	             #env -i LANG="$LANG" LANGUAGE="$LANGUAGE" LC_CTYPE="$LC_CTYPE" LC_NUMERIC="$LC_NUMERIC" LC_TIME="$LC_TIME" LC_COLLATE="$LC_COLLATE" LC_MONETARY="$LC_MONETARY" LC_MESSAGES="$LC_MESSAGES" LC_PAPER="$LC_PAPER" LC_NAME="$LC_NAME" LC_ADDRESS="$LC_ADDRESS" LC_TELEPHONE="$LC_TELEPHONE" LC_MEASUREMENT="$LC_MEASUREMENT" LC_IDENTIFICATION="$LC_IDENTIFICATION" LC_ALL="$LC_ALL" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status
-	           fi
-	           ;;
-	       esac
-	     done
+         for SERVICE in * ; do
+           case "${SERVICE}" in
+             functions | halt | killall | single| linuxconf| kudzu)
+                 ;;
+             *)
+               if ! is_ignored_file "${SERVICE}" \
+               && [ -x "${SERVICEDIR}/${SERVICE}" ]; then
+                       out=$(env -i LANG="$LANG" LANGUAGE="$LANGUAGE" LC_CTYPE="$LC_CTYPE" LC_NUMERIC="$LC_NUMERIC" LC_TIME="$LC_TIME" LC_COLLATE="$LC_COLLATE" LC_MONETARY="$LC_MONETARY" LC_MESSAGES="$LC_MESSAGES" LC_PAPER="$LC_PAPER" LC_NAME="$LC_NAME" LC_ADDRESS="$LC_ADDRESS" LC_TELEPHONE="$LC_TELEPHONE" LC_MEASUREMENT="$LC_MEASUREMENT" LC_IDENTIFICATION="$LC_IDENTIFICATION" LC_ALL="$LC_ALL" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status 2>&1)
+                       retval=$?
+                       if echo "$out" | egrep -iq "usage:"; then
+                         #printf " %s %-60s %s\n" "[?]" "$SERVICE:" "unknown" 1>&2
+                         echo " [ ? ]  $SERVICE" 1>&2
+                         continue
+                       else
+                         if [ "$retval" = "0" -a -n "$out" ]; then
+                           #printf " %s %-60s %s\n" "[+]" "$SERVICE:" "running"
+                           echo " [ + ]  $SERVICE"
+                           continue
+                         else
+                           #printf " %s %-60s %s\n" "[-]" "$SERVICE:" "NOT running"
+                           echo " [ - ]  $SERVICE"
+                           continue
+                         fi
+                       fi
+                 #env -i LANG="$LANG" LANGUAGE="$LANGUAGE" LC_CTYPE="$LC_CTYPE" LC_NUMERIC="$LC_NUMERIC" LC_TIME="$LC_TIME" LC_COLLATE="$LC_COLLATE" LC_MONETARY="$LC_MONETARY" LC_MESSAGES="$LC_MESSAGES" LC_PAPER="$LC_PAPER" LC_NAME="$LC_NAME" LC_ADDRESS="$LC_ADDRESS" LC_TELEPHONE="$LC_TELEPHONE" LC_MEASUREMENT="$LC_MEASUREMENT" LC_IDENTIFICATION="$LC_IDENTIFICATION" LC_ALL="$LC_ALL" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status
+               fi
+               ;;
+           esac
+         done
           else
              systemctl $sctl_args list-units
           fi
diff --git a/pkgs/os-specific/linux/setools/default.nix b/pkgs/os-specific/linux/setools/default.nix
index 842a525353d4e..9d547d2007eca 100644
--- a/pkgs/os-specific/linux/setools/default.nix
+++ b/pkgs/os-specific/linux/setools/default.nix
@@ -1,6 +1,5 @@
 { lib, fetchFromGitHub, python3
 , libsepol, libselinux, checkpolicy
-, fetchpatch
 , withGraphics ? false
 }:
 
@@ -9,22 +8,15 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "setools";
-  version = "4.3.0";
+  version = "4.4.0";
 
   src = fetchFromGitHub {
     owner = "SELinuxProject";
     repo = pname;
     rev = version;
-    sha256 = "0vr20bi8w147z5lclqz1l0j1b34137zg2r04pkafkgqqk7qbyjk6";
+    sha256 = "1qvd5j6zwq4fmlahg45swjplhif2z89x7s6pnp07gvcp2fbqdsh5";
   };
 
-  patches = [
-    (fetchpatch { # included in 4.4.0
-      url = "https://github.com/SELinuxProject/setools/commit/f1b4a5d375be05fbccedb258c940d771bff8e524.diff";
-      sha256 = "1r38s6i4i6bdr2zdp5wcg1yifpf3pd018c73a511mgynyg7d11xy";
-    })
-  ];
-
   nativeBuildInputs = [ cython ];
   buildInputs = [ libsepol ];
   propagatedBuildInputs = [ enum34 libselinux networkx ]
diff --git a/pkgs/os-specific/linux/seturgent/default.nix b/pkgs/os-specific/linux/seturgent/default.nix
index da494f08ca2e7..6d83e322ce8f2 100644
--- a/pkgs/os-specific/linux/seturgent/default.nix
+++ b/pkgs/os-specific/linux/seturgent/default.nix
@@ -1,15 +1,15 @@
-{ lib, stdenv, fetchurl, libX11, xorgproto, unzip }:
+{ lib, stdenv, fetchgit, libX11, xorgproto }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "seturgent";
-  version = "unstable-2012-08-17";
+  version = "1.5";
 
-  src = fetchurl {
-    url = "https://github.com/hiltjo/seturgent/archive/ada70dcb15865391e5cdcab27a0739a304a17e03.zip";
-    sha256 = "0q1sr6aljkw2jr9b4xxzbc01qvnd5vk3pxrypif9yd8xjw4wqwri";
+  src = fetchgit {
+    url = "git://git.codemadness.org/seturgent";
+    rev = version;
+    sha256 = "sha256-XW7ms0BVCf1/fuL3PJ970t6sHkmMY1iLYXfS9R60JX0=";
   };
 
-  nativeBuildInputs = [ unzip ];
   buildInputs = [
     libX11
     xorgproto
@@ -20,11 +20,11 @@ stdenv.mkDerivation {
     mv seturgent $out/bin
   '';
 
-  meta = {
-    platforms = lib.platforms.linux;
+  meta = with lib; {
+    platforms = platforms.linux;
     description = "Set an application's urgency hint (or not)";
-    maintainers = [ lib.maintainers.yarr ];
-    homepage = "https://github.com/hiltjo/seturgent";
-    license = lib.licenses.mit;
+    maintainers = with maintainers; [ yarr ];
+    homepage = "https://codemadness.org/seturgent-set-urgency-hints-for-x-applications.html";
+    license = licenses.mit;
   };
 }
diff --git a/pkgs/os-specific/linux/sgx-sdk/default.nix b/pkgs/os-specific/linux/sgx-sdk/default.nix
deleted file mode 100644
index 130fd12cbb913..0000000000000
--- a/pkgs/os-specific/linux/sgx-sdk/default.nix
+++ /dev/null
@@ -1,159 +0,0 @@
-{ lib
-, stdenv
-, fetchpatch
-, fetchurl
-, fetchFromGitHub
-, callPackage
-, autoconf
-, automake
-, binutils
-, cmake
-, file
-, git
-, libtool
-, nasm
-, ncurses
-, ocaml
-, ocamlPackages
-, openssl
-, perl
-, python3
-, texinfo
-, which
-, writeShellScript
-}:
-
-stdenv.mkDerivation rec {
-  pname = "sgx-sdk";
-  version = "2.14";
-
-  src = fetchFromGitHub {
-    owner = "intel";
-    repo = "linux-sgx";
-    rev = "0cea078f17a24fb807e706409972d77f7a958db9";
-    sha256 = "1cr2mkk459s270ng0yddgcryi0zc3dfmg9rmdrdh9mhy2mc1kx0g";
-    fetchSubmodules = true;
-  };
-
-  patches = [
-    (fetchpatch {
-      name = "replace-bin-cp-with-cp.patch";
-      url = "https://github.com/intel/linux-sgx/commit/e0db5291d46d1c124980719d63829d65f89cf2c7.patch";
-      sha256 = "0xwlpm1r4rl4anfhjkr6fgz0gcyhr0ng46fv8iw9hfsh891yqb7z";
-    })
-    (fetchpatch {
-      name = "sgx_ippcp.h.patch";
-      url = "https://github.com/intel/linux-sgx/commit/e5929083f8161a8e7404afc0577936003fbb9d0b.patch";
-      sha256 = "12bgs9rxlq82hn5prl9qz2r4mwypink8hzdz4cki4k4cmkw961f5";
-    })
-  ];
-  postPatch = ''
-    patchShebangs ./linux/installer/bin/build-installpkg.sh \
-      ./linux/installer/common/sdk/createTarball.sh \
-      ./linux/installer/common/sdk/install.sh
-  '';
-
-  dontConfigure = true;
-
-  # SDK built with stackprotector produces broken enclaves which crash at runtime.
-  # Disable all to be safe, SDK build configures compiler mitigations manually.
-  hardeningDisable = [ "all" ];
-
-  nativeBuildInputs = [
-    cmake
-    git
-    ocaml
-    ocamlPackages.ocamlbuild
-    perl
-    python3
-    texinfo
-    nasm
-    file
-    ncurses
-    autoconf
-    automake
-  ];
-
-  buildInputs = [
-    libtool
-    openssl
-  ];
-
-  BINUTILS_DIR = "${binutils}/bin";
-
-  # Build external/ippcp_internal first. The Makefile is rewritten to make the
-  # build faster by splitting different versions of ipp-crypto builds and to
-  # avoid patching the Makefile for reproducibility issues.
-  buildPhase = let
-    ipp-crypto-no_mitigation = callPackage (import ./ipp-crypto.nix) {};
-
-    sgx-asm-pp = "python ${src}/build-scripts/sgx-asm-pp.py --assembler=nasm";
-
-    nasm-load = writeShellScript "nasm-load" "${sgx-asm-pp} --MITIGATION-CVE-2020-0551=LOAD $@";
-    ipp-crypto-cve_2020_0551_load = callPackage (import ./ipp-crypto.nix) {
-      extraCmakeFlags = [ "-DCMAKE_ASM_NASM_COMPILER=${nasm-load}" ];
-    };
-
-    nasm-cf = writeShellScript "nasm-cf" "${sgx-asm-pp} --MITIGATION-CVE-2020-0551=CF $@";
-    ipp-crypto-cve_2020_0551_cf = callPackage (import ./ipp-crypto.nix) {
-      extraCmakeFlags = [ "-DCMAKE_ASM_NASM_COMPILER=${nasm-cf}" ];
-    };
-  in ''
-    cd external/ippcp_internal
-
-    mkdir -p lib/linux/intel64/no_mitigation
-    cp ${ipp-crypto-no_mitigation}/lib/intel64/libippcp.a lib/linux/intel64/no_mitigation
-    chmod a+w lib/linux/intel64/no_mitigation/libippcp.a
-    cp ${ipp-crypto-no_mitigation}/include/* ./inc
-
-    mkdir -p lib/linux/intel64/cve_2020_0551_load
-    cp ${ipp-crypto-cve_2020_0551_load}/lib/intel64/libippcp.a lib/linux/intel64/cve_2020_0551_load
-    chmod a+w lib/linux/intel64/cve_2020_0551_load/libippcp.a
-
-    mkdir -p lib/linux/intel64/cve_2020_0551_cf
-    cp ${ipp-crypto-cve_2020_0551_cf}/lib/intel64/libippcp.a lib/linux/intel64/cve_2020_0551_cf
-    chmod a+w lib/linux/intel64/cve_2020_0551_cf/libippcp.a
-
-    rm -f ./inc/ippcp.h
-    patch ${ipp-crypto-no_mitigation}/include/ippcp.h -i ./inc/ippcp20u3.patch -o ./inc/ippcp.h
-
-    mkdir -p license
-    cp ${ipp-crypto-no_mitigation.src}/LICENSE ./license
-
-    # Build the SDK installation package.
-    cd ../..
-
-    # Nix patches make so that $(SHELL) defaults to "sh" instead of "/bin/sh".
-    # The build uses $(SHELL) as an argument to file -L which requires a path.
-    make SHELL=$SHELL sdk_install_pkg
-
-    runHook postBuild
-  '';
-
-  postBuild = ''
-    patchShebangs ./linux/installer/bin/sgx_linux_x64_sdk_*.bin
-  '';
-
-  installPhase = ''
-    echo -e 'no\n'$out | ./linux/installer/bin/sgx_linux_x64_sdk_*.bin
-  '';
-
-  dontFixup = true;
-
-  doInstallCheck = true;
-  installCheckInputs = [ which ];
-  installCheckPhase = ''
-    source $out/sgxsdk/environment
-    cd SampleCode/SampleEnclave
-    make SGX_MODE=SGX_SIM
-    ./app
-  '';
-
-  meta = with lib; {
-    description = "Intel SGX SDK for Linux built with IPP Crypto Library";
-    homepage = "https://github.com/intel/linux-sgx";
-    maintainers = with maintainers; [ sbellem arturcygan ];
-    platforms = [ "x86_64-linux" ];
-    license = with licenses; [ bsd3 ];
-  };
-}
diff --git a/pkgs/os-specific/linux/sgx-sdk/ipp-crypto.nix b/pkgs/os-specific/linux/sgx-sdk/ipp-crypto.nix
deleted file mode 100644
index 52cef4f82815b..0000000000000
--- a/pkgs/os-specific/linux/sgx-sdk/ipp-crypto.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, python3
-, nasm
-, extraCmakeFlags ? []
-}:
-
-stdenv.mkDerivation rec {
-  pname = "ipp-crypto";
-  version = "2020_update3";
-
-  src = fetchFromGitHub {
-    owner = "intel";
-    repo = "ipp-crypto";
-    rev = "ipp-crypto_${version}";
-    sha256 = "02vlda6mlhbd12ljzdf65klpx4kmx1ylch9w3yllsiya4hwqzy4b";
-  };
-
-  cmakeFlags = [ "-DARCH=intel64" ] ++ extraCmakeFlags;
-
-  nativeBuildInputs = [ cmake python3 nasm ];
-}
diff --git a/pkgs/os-specific/linux/sgx/psw/default.nix b/pkgs/os-specific/linux/sgx/psw/default.nix
new file mode 100644
index 0000000000000..b418d5c18225c
--- /dev/null
+++ b/pkgs/os-specific/linux/sgx/psw/default.nix
@@ -0,0 +1,190 @@
+{ stdenv
+, lib
+, fetchurl
+, cmake
+, coreutils
+, curl
+, file
+, glibc
+, makeWrapper
+, nixosTests
+, protobuf
+, python3
+, sgx-sdk
+, shadow
+, systemd
+, util-linux
+, which
+, debug ? false
+}:
+stdenv.mkDerivation rec {
+  inherit (sgx-sdk) version versionTag src;
+  pname = "sgx-psw";
+
+  postUnpack =
+    let
+      ae.prebuilt = fetchurl {
+        url = "https://download.01.org/intel-sgx/sgx-linux/${versionTag}/prebuilt_ae_${versionTag}.tar.gz";
+        hash = "sha256-JriA9UGYFkAPuCtRizk8RMM1YOYGR/eO9ILnx47A40s=";
+      };
+      dcap = rec {
+        version = "1.12.1";
+        filename = "prebuilt_dcap_${version}.tar.gz";
+        prebuilt = fetchurl {
+          url = "https://download.01.org/intel-sgx/sgx-dcap/${version}/linux/${filename}";
+          hash = "sha256-V/XHva9Sq3P36xSW+Sd0G6Dnk4H0ANO1Ns/u+FI1eGI=";
+        };
+      };
+    in
+    sgx-sdk.postUnpack + ''
+      # Make sure we use the correct version of prebuilt DCAP
+      grep -q 'ae_file_name=${dcap.filename}' "$src/external/dcap_source/QuoteGeneration/download_prebuilt.sh" \
+        || (echo "Could not find expected prebuilt DCAP ${dcap.filename} in linux-sgx source" >&2 && exit 1)
+
+      tar -zxf ${ae.prebuilt}   -C $sourceRoot/
+      tar -zxf ${dcap.prebuilt} -C $sourceRoot/external/dcap_source/QuoteGeneration/
+    '';
+
+  nativeBuildInputs = [
+    cmake
+    file
+    makeWrapper
+    python3
+    sgx-sdk
+    which
+  ];
+
+  buildInputs = [
+    curl
+    protobuf
+  ];
+
+  hardeningDisable = lib.optionals debug [
+    "fortify"
+  ];
+
+  postPatch = ''
+    # https://github.com/intel/linux-sgx/pull/730
+    substituteInPlace buildenv.mk --replace '/bin/cp' 'cp'
+    substituteInPlace psw/ae/aesm_service/source/CMakeLists.txt \
+      --replace '/usr/bin/getconf' 'getconf'
+
+    # https://github.com/intel/SGXDataCenterAttestationPrimitives/pull/205
+    substituteInPlace ./external/dcap_source/QuoteGeneration/buildenv.mk \
+      --replace '/bin/cp' 'cp'
+    substituteInPlace external/dcap_source/tools/SGXPlatformRegistration/Makefile \
+      --replace '/bin/cp' 'cp'
+    substituteInPlace external/dcap_source/tools/SGXPlatformRegistration/buildenv.mk \
+      --replace '/bin/cp' 'cp'
+
+    patchShebangs \
+      linux/installer/bin/build-installpkg.sh \
+      linux/installer/common/psw/createTarball.sh \
+      linux/installer/common/psw/install.sh
+  '';
+
+  dontUseCmakeConfigure = true;
+
+  # Randomly fails if enabled
+  enableParallelBuilding = false;
+
+  buildFlags = [
+    "psw_install_pkg"
+  ] ++ lib.optionals debug [
+    "DEBUG=1"
+  ];
+
+  installFlags = [
+    "-C linux/installer/common/psw/output"
+    "DESTDIR=$(TMPDIR)/install"
+  ];
+
+  postInstall = ''
+    installDir=$TMPDIR/install
+    sgxPswDir=$installDir/opt/intel/sgxpsw
+
+    mv $installDir/usr/lib64/ $out/lib/
+    ln -sr $out/lib $out/lib64
+
+    # Install udev rules to lib/udev/rules.d
+    mv $sgxPswDir/udev/ $out/lib/
+
+    # Install example AESM config
+    mkdir $out/etc/
+    mv $sgxPswDir/aesm/conf/aesmd.conf $out/etc/
+    rmdir $sgxPswDir/aesm/conf/
+
+    # Delete init service
+    rm $sgxPswDir/aesm/aesmd.conf
+
+    # Move systemd services
+    mkdir -p $out/lib/systemd/system/
+    mv $sgxPswDir/aesm/aesmd.service $out/lib/systemd/system/
+    mv $sgxPswDir/remount-dev-exec.service $out/lib/systemd/system/
+
+    # Move misc files
+    mkdir $out/share/
+    mv $sgxPswDir/licenses $out/share/
+
+    # Remove unnecessary files
+    rm $sgxPswDir/{cleanup.sh,startup.sh}
+    rm -r $sgxPswDir/scripts
+
+    mv $sgxPswDir/aesm/ $out/
+
+    mkdir $out/bin
+    makeWrapper $out/aesm/aesm_service $out/bin/aesm_service \
+      --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ protobuf ]}:$out/aesm \
+      --run "cd $out/aesm"
+
+    # Make sure we didn't forget to handle any files
+    rmdir $sgxPswDir || (echo "Error: The directory $installDir still contains unhandled files: $(ls -A $installDir)" >&2 && exit 1)
+  '';
+
+  # Most—if not all—of those fixups are not relevant for NixOS as we have our own
+  # NixOS module which is based on those files without relying on them. Still, it
+  # is helpful to have properly patched versions for non-NixOS distributions.
+  postFixup = ''
+    header "Fixing aesmd.service"
+    substituteInPlace $out/lib/systemd/system/aesmd.service \
+      --replace '@aesm_folder@' \
+                "$out/aesm" \
+      --replace 'Type=forking' \
+                'Type=simple' \
+      --replace "ExecStart=$out/aesm/aesm_service" \
+                "ExecStart=$out/bin/aesm_service --no-daemon"\
+      --replace "/bin/mkdir" \
+                "${coreutils}/bin/mkdir" \
+      --replace "/bin/chown" \
+                "${coreutils}/bin/chown" \
+      --replace "/bin/chmod" \
+                "${coreutils}/bin/chmod" \
+      --replace "/bin/kill" \
+                "${coreutils}/bin/kill"
+
+    header "Fixing remount-dev-exec.service"
+    substituteInPlace $out/lib/systemd/system/remount-dev-exec.service \
+      --replace '/bin/mount' \
+                "${util-linux}/bin/mount"
+
+    header "Fixing linksgx.sh"
+    # https://github.com/intel/linux-sgx/pull/736
+    substituteInPlace $out/aesm/linksgx.sh \
+      --replace '/usr/bin/getent' \
+                '${glibc.bin}/bin/getent' \
+      --replace '/usr/sbin/usermod' \
+                '${shadow}/bin/usermod'
+  '';
+
+  passthru.tests = {
+    service = nixosTests.aesmd;
+  };
+
+  meta = with lib; {
+    description = "Intel SGX Architectural Enclave Service Manager";
+    homepage = "https://github.com/intel/linux-sgx";
+    maintainers = with maintainers; [ veehaitch citadelcore ];
+    platforms = [ "x86_64-linux" ];
+    license = with licenses; [ bsd3 ];
+  };
+}
diff --git a/pkgs/os-specific/linux/sgx/sdk/default.nix b/pkgs/os-specific/linux/sgx/sdk/default.nix
new file mode 100644
index 0000000000000..18876f927e804
--- /dev/null
+++ b/pkgs/os-specific/linux/sgx/sdk/default.nix
@@ -0,0 +1,269 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, fetchzip
+, callPackage
+, autoconf
+, automake
+, binutils
+, cmake
+, file
+, gdb
+, git
+, libtool
+, nasm
+, ocaml
+, ocamlPackages
+, openssl
+, perl
+, python3
+, texinfo
+, validatePkgConfig
+, writeShellScript
+, writeText
+, debug ? false
+}:
+stdenv.mkDerivation rec {
+  pname = "sgx-sdk";
+  # Version as given in se_version.h
+  version = "2.15.101.1";
+  # Version as used in the Git tag
+  versionTag = "2.15.1";
+
+  src = fetchFromGitHub {
+    owner = "intel";
+    repo = "linux-sgx";
+    rev = "sgx_${versionTag}";
+    hash = "sha256-e11COTR5eDPMB81aPRKatvIkAOeX+OZgnvn2utiv78M=";
+    fetchSubmodules = true;
+  };
+
+  postUnpack = ''
+    # Make sure this is the right version of linux-sgx
+    grep -q '"${version}"' "$src/common/inc/internal/se_version.h" \
+      || (echo "Could not find expected version ${version} in linux-sgx source" >&2 && exit 1)
+  '';
+
+  patches = [
+    # Commit to add missing sgx_ippcp.h not yet part of this release
+    (fetchpatch {
+      name = "add-missing-sgx_ippcp-header.patch";
+      url = "https://github.com/intel/linux-sgx/commit/51d1087b707a47e18588da7bae23e5f686d44be6.patch";
+      sha256 = "sha256-RZC14H1oEuGp0zn8CySDPy1KNqP/POqb+KMYoQt2A7M=";
+    })
+  ];
+
+  postPatch = ''
+    # https://github.com/intel/linux-sgx/pull/730
+    substituteInPlace buildenv.mk --replace '/bin/cp' 'cp'
+
+    patchShebangs linux/installer/bin/build-installpkg.sh \
+      linux/installer/common/sdk/createTarball.sh \
+      linux/installer/common/sdk/install.sh
+  '';
+
+  # We need `cmake` as a build input but don't use it to kick off the build phase
+  dontUseCmakeConfigure = true;
+
+  # SDK built with stackprotector produces broken enclaves which crash at runtime.
+  # Disable all to be safe, SDK build configures compiler mitigations manually.
+  hardeningDisable = [ "all" ];
+
+  nativeBuildInputs = [
+    autoconf
+    automake
+    cmake
+    file
+    git
+    ocaml
+    ocamlPackages.ocamlbuild
+    perl
+    python3
+    texinfo
+    validatePkgConfig
+  ];
+
+  buildInputs = [
+    libtool
+    openssl
+  ];
+
+  BINUTILS_DIR = "${binutils}/bin";
+
+  # Build external/ippcp_internal first. The Makefile is rewritten to make the
+  # build faster by splitting different versions of ipp-crypto builds and to
+  # avoid patching the Makefile for reproducibility issues.
+  preBuild =
+    let
+      ipp-crypto-no_mitigation = callPackage ./ipp-crypto.nix { };
+
+      sgx-asm-pp = "python ${src}/build-scripts/sgx-asm-pp.py --assembler=nasm";
+
+      nasm-load = writeShellScript "nasm-load" "${sgx-asm-pp} --MITIGATION-CVE-2020-0551=LOAD $@";
+      ipp-crypto-cve_2020_0551_load = callPackage ./ipp-crypto.nix {
+        extraCmakeFlags = [ "-DCMAKE_ASM_NASM_COMPILER=${nasm-load}" ];
+      };
+
+      nasm-cf = writeShellScript "nasm-cf" "${sgx-asm-pp} --MITIGATION-CVE-2020-0551=CF $@";
+      ipp-crypto-cve_2020_0551_cf = callPackage ./ipp-crypto.nix {
+        extraCmakeFlags = [ "-DCMAKE_ASM_NASM_COMPILER=${nasm-cf}" ];
+      };
+    in
+    ''
+      header "Setting up IPP crypto build artifacts"
+
+      pushd 'external/ippcp_internal'
+
+      cp -r ${ipp-crypto-no_mitigation}/include/. inc/
+
+      install -D -m a+rw ${ipp-crypto-no_mitigation}/lib/intel64/libippcp.a \
+        lib/linux/intel64/no_mitigation/libippcp.a
+      install -D -m a+rw ${ipp-crypto-cve_2020_0551_load}/lib/intel64/libippcp.a \
+        lib/linux/intel64/cve_2020_0551_load/libippcp.a
+      install -D -m a+rw ${ipp-crypto-cve_2020_0551_cf}/lib/intel64/libippcp.a \
+        lib/linux/intel64/cve_2020_0551_cf/libippcp.a
+
+      rm inc/ippcp.h
+      patch ${ipp-crypto-no_mitigation}/include/ippcp.h -i inc/ippcp21u3.patch -o inc/ippcp.h
+
+      install -D ${ipp-crypto-no_mitigation.src}/LICENSE license/LICENSE
+
+      popd
+    '';
+
+  buildFlags = [
+    "sdk_install_pkg"
+  ] ++ lib.optionals debug [
+    "DEBUG=1"
+  ];
+
+  enableParallelBuilding = true;
+
+  postBuild = ''
+    patchShebangs linux/installer/bin/sgx_linux_x64_sdk_${version}.bin
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    installDir=$TMPDIR
+    ./linux/installer/bin/sgx_linux_x64_sdk_${version}.bin -prefix $installDir
+    installDir=$installDir/sgxsdk
+
+    header "Move files created by installer"
+
+    mkdir -p $out/bin
+    pushd $out
+
+    mv $installDir/bin/sgx-gdb $out/bin
+    mkdir $out/bin/x64
+    for file in $installDir/bin/x64/*; do
+      mv $file bin/
+      ln -sr bin/$(basename $file) bin/x64/
+    done
+    rmdir $installDir/bin/{x64,}
+
+    # Move `lib64` to `lib` and symlink `lib64`
+    mv $installDir/lib64 lib
+    ln -s lib/ lib64
+
+    mv $installDir/include/ .
+
+    mkdir -p share/
+    mv $installDir/{SampleCode,licenses} share/
+
+    mkdir -p share/bin
+    mv $installDir/{environment,buildenv.mk} share/bin/
+    ln -s share/bin/{environment,buildenv.mk} .
+
+    # pkgconfig should go to lib/
+    mv $installDir/pkgconfig lib/
+    ln -s lib/pkgconfig/ .
+
+    # Also create the `sdk_libs` for compat. All the files
+    # link to libraries in `lib64/`, we shouldn't link the entire
+    # directory, however, as there seems to be some ambiguity between
+    # SDK and PSW libraries.
+    mkdir sdk_libs/
+    for file in $installDir/sdk_libs/*; do
+      ln -sr lib/$(basename $file) sdk_libs/
+      rm $file
+    done
+    rmdir $installDir/sdk_libs
+
+    # No uninstall script required
+    rm $installDir/uninstall.sh
+
+    # Create an `sgxsdk` symlink which points to `$out` for compat
+    ln -sr . sgxsdk
+
+    # Make sure we didn't forget any files
+    rmdir $installDir || (echo "Error: The directory $installDir still contains unhandled files: $(ls -A $installDir)" >&2 && exit 1)
+
+    popd
+
+    runHook postInstall
+  '';
+
+
+  preFixup = ''
+    header "Strip sgxsdk prefix"
+    for path in "$out/share/bin/environment" "$out/bin/sgx-gdb"; do
+      substituteInPlace $path --replace "$TMPDIR/sgxsdk" "$out"
+    done
+
+    header "Fixing pkg-config files"
+    sed -i "s|prefix=.*|prefix=$out|g" $out/lib/pkgconfig/*.pc
+
+    header "Fixing SGX_SDK default in samples"
+    substituteInPlace $out/share/SampleCode/LocalAttestation/buildenv.mk \
+      --replace '/opt/intel/sgxsdk' "$out"
+    for file in $out/share/SampleCode/*/Makefile; do
+      substituteInPlace $file \
+        --replace '/opt/intel/sgxsdk' "$out"
+    done
+
+    header "Fixing BINUTILS_DIR in buildenv.mk"
+    substituteInPlace $out/share/bin/buildenv.mk \
+      --replace 'BINUTILS_DIR ?= /usr/local/bin' \
+                'BINUTILS_DIR ?= ${BINUTILS_DIR}'
+
+    header "Fixing GDB path in bin/sgx-gdb"
+    substituteInPlace $out/bin/sgx-gdb --replace '/usr/local/bin/gdb' '${gdb}/bin/gdb'
+  '';
+
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    # Make sure all symlinks are valid
+    output=$(find "$out" -type l -exec test ! -e {} \; -print)
+    if [[ -n "$output" ]]; then
+      echo "Broken symlinks:"
+      echo "$output"
+      exit 1
+    fi
+
+    runHook postInstallCheck
+  '';
+
+  setupHook = writeText "setup-hook.sh" ''
+    sgxsdk() {
+        export SGX_SDK=@out@
+    }
+
+    postHooks+=(sgxsdk)
+  '';
+
+  passthru.tests = callPackage ./samples.nix { };
+
+  meta = with lib; {
+    description = "Intel SGX SDK for Linux built with IPP Crypto Library";
+    homepage = "https://github.com/intel/linux-sgx";
+    maintainers = with maintainers; [ sbellem arturcygan veehaitch ];
+    platforms = [ "x86_64-linux" ];
+    license = with licenses; [ bsd3 ];
+  };
+}
diff --git a/pkgs/os-specific/linux/sgx/sdk/ipp-crypto.nix b/pkgs/os-specific/linux/sgx/sdk/ipp-crypto.nix
new file mode 100644
index 0000000000000..85fcfc9c554d7
--- /dev/null
+++ b/pkgs/os-specific/linux/sgx/sdk/ipp-crypto.nix
@@ -0,0 +1,36 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, nasm
+, openssl
+, python3
+, extraCmakeFlags ? [ ]
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ipp-crypto";
+  version = "2021.3";
+
+  src = fetchFromGitHub {
+    owner = "intel";
+    repo = "ipp-crypto";
+    rev = "ippcp_${version}";
+    hash = "sha256-QEJXvQ//zhQqibFxXwPMdS1MHewgyb24LRmkycVSGrM=";
+  };
+
+  # Fix typo: https://github.com/intel/ipp-crypto/pull/33
+  postPatch = ''
+    substituteInPlace sources/cmake/ippcp-gen-config.cmake \
+      --replace 'ippcpo-config.cmake' 'ippcp-config.cmake'
+  '';
+
+  cmakeFlags = [ "-DARCH=intel64" ] ++ extraCmakeFlags;
+
+  nativeBuildInputs = [
+    cmake
+    nasm
+    openssl
+    python3
+  ];
+}
diff --git a/pkgs/os-specific/linux/sgx/sdk/samples.nix b/pkgs/os-specific/linux/sgx/sdk/samples.nix
new file mode 100644
index 0000000000000..21b31f824476b
--- /dev/null
+++ b/pkgs/os-specific/linux/sgx/sdk/samples.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, sgx-sdk
+, which
+}:
+let
+  buildSample = name: stdenv.mkDerivation rec {
+    inherit name;
+
+    src = sgx-sdk.out;
+    sourceRoot = "${sgx-sdk.name}/share/SampleCode/${name}";
+
+    buildInputs = [
+      sgx-sdk
+    ];
+
+    # The samples don't have proper support for parallel building
+    # causing them to fail randomly.
+    enableParallelBuilding = false;
+
+    buildFlags = [
+      "SGX_MODE=SIM"
+    ];
+
+    installPhase = ''
+      mkdir $out
+      install -m 755 app $out/app
+      install *.so $out/
+    '';
+
+    doInstallCheck = true;
+    installCheckInputs = [ which ];
+    installCheckPhase = ''
+      pushd $out
+      ./app
+      popd
+    '';
+  };
+in
+{
+  cxx11SGXDemo = buildSample "Cxx11SGXDemo";
+  localAttestation = (buildSample "LocalAttestation").overrideAttrs (oldAttrs: {
+    installPhase = ''
+      mkdir $out
+      cp -r bin/. $out/
+    '';
+  });
+  powerTransition = (buildSample "PowerTransition").overrideAttrs (oldAttrs: {
+    # Requires interaction
+    doInstallCheck = false;
+  });
+  protobufSGXDemo = buildSample "ProtobufSGXDemo";
+  remoteAttestation = (buildSample "RemoteAttestation").overrideAttrs (oldAttrs: {
+    dontFixup = true;
+    installCheckPhase = ''
+      echo "a" | LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/sample_libcrypto ./app
+    '';
+  });
+  sampleEnclave = buildSample "SampleEnclave";
+  sampleEnclavePCL = buildSample "SampleEnclavePCL";
+  sampleEnclaveGMIPP = buildSample "SampleEnclaveGMIPP";
+  sealUnseal = buildSample "SealUnseal";
+  switchless = buildSample "Switchless";
+}
diff --git a/pkgs/os-specific/linux/smemstat/default.nix b/pkgs/os-specific/linux/smemstat/default.nix
index f95532ada3c48..5d78a3b302329 100644
--- a/pkgs/os-specific/linux/smemstat/default.nix
+++ b/pkgs/os-specific/linux/smemstat/default.nix
@@ -1,27 +1,23 @@
-{ stdenv, lib, fetchurl, fetchpatch, ncurses }:
+{ stdenv, lib, fetchFromGitHub, ncurses }:
 
 stdenv.mkDerivation rec {
   pname = "smemstat";
-  version = "0.02.10";
-  src = fetchurl {
-    url = "https://kernel.ubuntu.com/~cking/tarballs/smemstat/smemstat-${version}.tar.xz";
-    sha256 = "sha256-Vrs1jOg5yHdEffVo769aaxSawo4iZtGrFJ65Nu+RhcU=";
+  version = "0.02.11";
+
+  src = fetchFromGitHub {
+    owner = "ColinIanKing";
+    repo = pname;
+    rev = "V${version}";
+    hash = "sha256-RvHBrcyNB/zqxEY27twgMsjHNg8kzJryqnIAM7+vpg8=";
   };
-  patches = [
-    # Pull patch pending upstream inclusion to support ncurses-6.3:
-    #  https://github.com/ColinIanKing/smemstat/pull/1
-    (fetchpatch {
-      name = "ncurses-6.3.patch";
-      url = "https://github.com/ColinIanKing/smemstat/commit/95119558d1679295c9f9f7f618ddbe212674a4bf.patch";
-      sha256 = "sha256-Cl3Y0HIy1nXqBux6+AXoPuKJatSv3Z0X/4bD+MNjkAQ=";
-    })
-  ];
+
   buildInputs = [ ncurses ];
-  installFlags = [ "DESTDIR=$(out)" ];
-  postInstall = ''
-    mv $out/usr/* $out
-    rm -r $out/usr
-  '';
+  installFlags = [
+    "BINDIR=${placeholder "out"}/bin"
+    "MANDIR=${placeholder "out"}/share/man/man8"
+    "BASHDIR=${placeholder "out"}/share/bash-completion/completions"
+  ];
+
   meta = with lib; {
     description = "Memory usage monitoring tool";
     homepage = "https://github.com/ColinIanKing/smemstat";
diff --git a/pkgs/os-specific/linux/sssd/default.nix b/pkgs/os-specific/linux/sssd/default.nix
index 4a05d89ac80af..d0ff53fb96b90 100644
--- a/pkgs/os-specific/linux/sssd/default.nix
+++ b/pkgs/os-specific/linux/sssd/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook, glibc, augeas, dnsutils, c-ares, curl,
   cyrus_sasl, ding-libs, libnl, libunistring, nss, samba, nfs-utils, doxygen,
-  python, python3, pam, popt, talloc, tdb, tevent, pkg-config, ldb, openldap,
+  python3, pam, popt, talloc, tdb, tevent, pkg-config, ldb, openldap,
   pcre2, libkrb5, cifs-utils, glib, keyutils, dbus, fakeroot, libxslt, libxml2,
-  libuuid, ldap, systemd, nspr, check, cmocka, uid_wrapper, p11-kit,
+  libuuid, systemd, nspr, check, cmocka, uid_wrapper, p11-kit,
   nss_wrapper, ncurses, Po4a, http-parser, jansson,
   docbook_xsl, docbook_xml_dtd_44,
+  nixosTests,
   withSudo ? false }:
 
 let
@@ -12,13 +13,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "sssd";
-  version = "2.6.0";
+  version = "2.6.1";
 
   src = fetchFromGitHub {
     owner = "SSSD";
     repo = pname;
     rev = version;
-    sha256 = "1ik0x0b7s38d7n0aqhl31r0asxw6qcdb31hx9qydk87yg3n6rziv";
+    sha256 = "sha256-AcfNm/0VpjD+Aa1ZUwI2EI/i0s06rxQCfabv3a/AM38=";
   };
 
   postPatch = ''
@@ -30,7 +31,7 @@ stdenv.mkDerivation rec {
 
   preConfigure = ''
     export SGML_CATALOG_FILES="${docbookFiles}"
-    export PYTHONPATH=${ldap}/lib/python2.7/site-packages
+    export PYTHONPATH=$(find ${python3.pkgs.ldap} -type d -name site-packages)
     export PATH=$PATH:${openldap}/libexec
 
     configureFlagsArray=(
@@ -40,7 +41,6 @@ stdenv.mkDerivation rec {
       --enable-pammoddir=$out/lib/security
       --with-os=fedora
       --with-pid-path=/run
-      --with-python2-bindings
       --with-python3-bindings
       --with-syslog=journald
       --without-selinux
@@ -56,10 +56,10 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
   nativeBuildInputs = [ autoreconfHook pkg-config doxygen ];
   buildInputs = [ augeas dnsutils c-ares curl cyrus_sasl ding-libs libnl libunistring nss
-                  samba nfs-utils p11-kit python python3 popt
+                  samba nfs-utils p11-kit python3 popt
                   talloc tdb tevent ldb pam openldap pcre2 libkrb5
                   cifs-utils glib keyutils dbus fakeroot libxslt libxml2
-                  libuuid ldap systemd nspr check cmocka uid_wrapper
+                  libuuid python3.pkgs.ldap systemd nspr check cmocka uid_wrapper
                   nss_wrapper ncurses Po4a http-parser jansson ];
 
   makeFlags = [
@@ -88,6 +88,8 @@ stdenv.mkDerivation rec {
     find "$out" -depth -type d -exec rmdir --ignore-fail-on-non-empty {} \;
   '';
 
+  passthru.tests = { inherit (nixosTests) sssd sssd-ldap; };
+
   meta = with lib; {
     description = "System Security Services Daemon";
     homepage = "https://sssd.io/";
diff --git a/pkgs/os-specific/linux/sysdig/default.nix b/pkgs/os-specific/linux/sysdig/default.nix
index 564fbca37ba8e..39c07f48a29ad 100644
--- a/pkgs/os-specific/linux/sysdig/default.nix
+++ b/pkgs/os-specific/linux/sysdig/default.nix
@@ -1,26 +1,42 @@
-{ lib, stdenv, fetchFromGitHub, cmake, kernel, installShellFiles
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, kernel, installShellFiles, pkg-config
 , luajit, ncurses, perl, jsoncpp, libb64, openssl, curl, jq, gcc, elfutils, tbb, protobuf, grpc
 }:
 
 with lib;
+let
+  # Compare with https://github.com/draios/sysdig/blob/dev/cmake/modules/falcosecurity-libs.cmake
+  libsRev = "2160111cd088aea9ae2235d3385ecb0b1ab6623c";
+  libsSha256 = "sha256-TOuxXtrxujyAjzAtlX3/eCfM16mwxnmZ6Wg44SG0dTs=";
+in
 stdenv.mkDerivation rec {
   pname = "sysdig";
-  version = "0.27.1";
+  version = "0.28.0";
 
   src = fetchFromGitHub {
     owner = "draios";
     repo = "sysdig";
     rev = version;
-    sha256 = "sha256-lYjMvxMIReANNwMr62u881Nugrs9piOaN3EmrvGzRns=";
+    sha256 = "sha256-oE3vCmOw+gcmvGqj7Xk5injpNC/YThckJMNg5XRFhME=";
   };
 
-  nativeBuildInputs = [ cmake perl installShellFiles ];
+  nativeBuildInputs = [ cmake perl installShellFiles pkg-config ];
   buildInputs = [
     luajit ncurses jsoncpp libb64 openssl curl jq gcc elfutils tbb protobuf grpc
   ] ++ optionals (kernel != null) kernel.moduleBuildDependencies;
 
   hardeningDisable = [ "pic" ];
 
+  postUnpack = ''
+    cp -r ${fetchFromGitHub {
+      owner = "falcosecurity";
+      repo = "libs";
+      rev = libsRev;
+      sha256 = libsSha256;
+    }} libs
+    chmod -R +w libs
+    cmakeFlagsArray+=("-DFALCOSECURITY_LIBS_SOURCE_DIR=$(pwd)/libs")
+  '';
+
   cmakeFlags = [
     "-DUSE_BUNDLED_DEPS=OFF"
     "-DSYSDIG_VERSION=${version}"
@@ -32,9 +48,8 @@ stdenv.mkDerivation rec {
 
   preConfigure = ''
     cmakeFlagsArray+=(-DCMAKE_EXE_LINKER_FLAGS="-ltbb -lcurl -labsl_synchronization")
-
-    export INSTALL_MOD_PATH="$out"
   '' + optionalString (kernel != null) ''
+    export INSTALL_MOD_PATH="$out"
     export KERNELDIR="${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
   '';
 
@@ -51,12 +66,12 @@ stdenv.mkDerivation rec {
       kernel_dev=${kernel.dev}
       kernel_dev=''${kernel_dev#/nix/store/}
       kernel_dev=''${kernel_dev%%-linux*dev*}
-      if test -f "$out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko"; then
-          sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko
+      if test -f "$out/lib/modules/${kernel.modDirVersion}/extra/scap.ko"; then
+          sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/scap.ko
       else
-          xz -d $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko.xz
-          sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko
-          xz $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko
+          xz -d $out/lib/modules/${kernel.modDirVersion}/extra/scap.ko.xz
+          sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/scap.ko
+          xz $out/lib/modules/${kernel.modDirVersion}/extra/scap.ko
       fi
     '';
 
diff --git a/pkgs/os-specific/linux/system76-power/default.nix b/pkgs/os-specific/linux/system76-power/default.nix
index 8ef0e40312f56..edaf2b5c8144e 100644
--- a/pkgs/os-specific/linux/system76-power/default.nix
+++ b/pkgs/os-specific/linux/system76-power/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "system76-power";
-  version = "1.1.18";
+  version = "1.1.20";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = "system76-power";
     rev = version;
-    sha256 = "1zm06ywc3siwh2fpb8p7lp3xqjy4c08j8c8lipd6dyy3bakjh4r1";
+    sha256 = "sha256-Qk9zHqwFlUTWE+YRt2GASIekbDoBCHPAUUN3+0wpvfw=";
   };
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ dbus libusb1 ];
 
-  cargoSha256 = "0hda8cxa1pjz90bg215qmx5x2scz9mawq7irxbsw6zmcm7wahlii";
+  cargoSha256 = "sha256-iG7M9ICFRTFVkbC89DyfR+Iyi7jaT9WmG3PSdBOF7YI=";
 
   postInstall = ''
     install -D -m 0644 data/system76-power.conf $out/etc/dbus-1/system.d/system76-power.conf
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 dc7f2a2868e64..ac95dc745fe19 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
@@ -1,7 +1,7 @@
-From 06a8dbb65584b6f705fee8a486f32dab12f72082 Mon Sep 17 00:00:00 2001
+From d4ea219a35a09fe02bc9e47e8530644cb4fc4146 Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Tue, 8 Jan 2013 15:46:30 +0100
-Subject: [PATCH 01/19] Start device units for uninitialised encrypted devices
+Subject: [PATCH 01/21] Start device units for uninitialised encrypted devices
 
 This is necessary because the NixOS service that initialises the
 filesystem depends on the appearance of the device unit.  Also, this
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 51e934ef98310..dd351c0010063 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
@@ -1,7 +1,7 @@
-From 2c98ff115f7027bebde14cf3e74f2c51b343874c Mon Sep 17 00:00:00 2001
+From 67abd8f22f70d9348bc9d8e0e93dde4d325627ba Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Fri, 12 Apr 2013 13:16:57 +0200
-Subject: [PATCH 02/19] Don't try to unmount /nix or /nix/store
+Subject: [PATCH 02/21] Don't try to unmount /nix or /nix/store
 
 They'll still be remounted read-only.
 
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 194b3f5418a91..2dd3d87f6ed27 100644
--- a/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch
+++ b/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch
@@ -1,7 +1,7 @@
-From 16f441b6495ff4c4d1d0b71a7f1650505147173d Mon Sep 17 00:00:00 2001
+From 37c9471f59bd57223014a4a645b5f96a71d78787 Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Wed, 16 Apr 2014 10:59:28 +0200
-Subject: [PATCH 03/19] Fix NixOS containers
+Subject: [PATCH 03/21] Fix NixOS containers
 
 In NixOS containers, the init script is bind-mounted into the
 container, so checking early whether it exists will fail.
diff --git a/pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch b/pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch
index 210382d925973..54d9ff93b43b8 100644
--- a/pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch
+++ b/pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch
@@ -1,7 +1,7 @@
-From 261423bc039378115ad9223c2b6ede9c395847b2 Mon Sep 17 00:00:00 2001
+From 987d6f94dac8e1a75615fd9ddcfb0eb1c2c4c349 Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Thu, 1 May 2014 14:10:10 +0200
-Subject: [PATCH 04/19] Look for fsck in the right place
+Subject: [PATCH 04/21] Look for fsck in the right place
 
 ---
  src/fsck/fsck.c | 2 +-
diff --git a/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch b/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch
index ba105424f6c8b..ee878b410f048 100644
--- a/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch
+++ b/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch
@@ -1,7 +1,7 @@
-From 18b45c20499747bcc66714ee87edf34d4f6e3dca Mon Sep 17 00:00:00 2001
+From da4f855044b2babe052ce303cca1de736cf952cd Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Fri, 19 Dec 2014 14:46:17 +0100
-Subject: [PATCH 05/19] Add some NixOS-specific unit directories
+Subject: [PATCH 05/21] Add some NixOS-specific unit directories
 
 Look in `/nix/var/nix/profiles/default/lib/systemd/{system,user}` for
 units provided by packages installed into the default profile via
diff --git a/pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch b/pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch
index c136bd8f4c801..482eeacb0218f 100644
--- a/pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch
+++ b/pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch
@@ -1,7 +1,7 @@
-From 8b8f4168828a12cac17c3e8803cacebf31608c68 Mon Sep 17 00:00:00 2001
+From c06abdb631527f56a626b739340d1b275349612c Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Mon, 11 May 2015 15:39:38 +0200
-Subject: [PATCH 06/19] Get rid of a useless message in user sessions
+Subject: [PATCH 06/21] Get rid of a useless message in user sessions
 
 Namely lots of variants of
 
diff --git a/pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch b/pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch
index 4f9f98ec8b35e..22e4c74d08d74 100644
--- a/pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch
+++ b/pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch
@@ -1,7 +1,7 @@
-From e147e9defaf2bb5e8040566537661d90b4008daf Mon Sep 17 00:00:00 2001
+From 207c69466cdd164c42ed1901deb06f57b12f4363 Mon Sep 17 00:00:00 2001
 From: Gabriel Ebner <gebner@gebner.org>
 Date: Sun, 6 Dec 2015 14:26:36 +0100
-Subject: [PATCH 07/19] hostnamed, localed, timedated: disable methods that
+Subject: [PATCH 07/21] hostnamed, localed, timedated: disable methods that
  change system settings.
 
 ---
diff --git a/pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch b/pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch
index 4ef72f0dccf67..e5a0bf7d97fa6 100644
--- a/pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch
+++ b/pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch
@@ -1,7 +1,7 @@
-From 992d0e6abb09aacceee2f8646c4bcdacf7277dc7 Mon Sep 17 00:00:00 2001
+From 3ca3855259c3015615983587063fa159cfa7e93c Mon Sep 17 00:00:00 2001
 From: Nikolay Amiantov <ab@fmap.me>
 Date: Thu, 7 Jul 2016 02:47:13 +0300
-Subject: [PATCH 08/19] Fix hwdb paths
+Subject: [PATCH 08/21] Fix hwdb paths
 
 Patch by vcunat.
 ---
diff --git a/pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch b/pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
index 78ebcb50fccdd..9e22ea719e35b 100644
--- a/pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
+++ b/pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
@@ -1,7 +1,7 @@
-From 462bc01b3a38468fd617066a3d7f27b1acca9e0a Mon Sep 17 00:00:00 2001
+From 717226ad0dc37ceb6c667c1f56396848978b6e83 Mon Sep 17 00:00:00 2001
 From: Nikolay Amiantov <ab@fmap.me>
 Date: Tue, 11 Oct 2016 13:12:08 +0300
-Subject: [PATCH 09/19] Change /usr/share/zoneinfo to /etc/zoneinfo
+Subject: [PATCH 09/21] Change /usr/share/zoneinfo to /etc/zoneinfo
 
 NixOS uses this path.
 ---
diff --git a/pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch b/pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch
index a956cceff550b..ce0ad7e4ddc30 100644
--- a/pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch
+++ b/pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch
@@ -1,7 +1,7 @@
-From fbb302d00c63dc17a210f83648f24a1da983b2c0 Mon Sep 17 00:00:00 2001
+From 75d12cf65073458f091899d673c613dfc43f60c0 Mon Sep 17 00:00:00 2001
 From: Imuli <i@imu.li>
 Date: Wed, 19 Oct 2016 08:46:47 -0400
-Subject: [PATCH 10/19] localectl: use /etc/X11/xkb for list-x11-*
+Subject: [PATCH 10/21] localectl: use /etc/X11/xkb for list-x11-*
 
 NixOS has an option to link the xkb data files to /etc/X11, but not to
 /usr/share/X11.
diff --git a/pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch b/pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch
index 6b482eb8c9d7a..a03c5a14ad898 100644
--- a/pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch
+++ b/pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch
@@ -1,7 +1,7 @@
-From b850dae349de8ac6906d4f920a21ef275cecb2de Mon Sep 17 00:00:00 2001
+From bce75eb4cdeb0b86df6b0a577e886c49a88303f6 Mon Sep 17 00:00:00 2001
 From: Franz Pletz <fpletz@fnordicwalking.de>
 Date: Sun, 11 Feb 2018 04:37:44 +0100
-Subject: [PATCH 11/19] build: don't create statedir and don't touch prefixdir
+Subject: [PATCH 11/21] build: don't create statedir and don't touch prefixdir
 
 ---
  meson.build | 3 ---
diff --git a/pkgs/os-specific/linux/systemd/0012-inherit-systemd-environment-when-calling-generators.patch b/pkgs/os-specific/linux/systemd/0012-inherit-systemd-environment-when-calling-generators.patch
index ffe7b7467f506..0576f7a62f2c9 100644
--- a/pkgs/os-specific/linux/systemd/0012-inherit-systemd-environment-when-calling-generators.patch
+++ b/pkgs/os-specific/linux/systemd/0012-inherit-systemd-environment-when-calling-generators.patch
@@ -1,7 +1,7 @@
-From beefb6d381286769cc47c71c82b831a37a405d90 Mon Sep 17 00:00:00 2001
+From ecdf0c5d9f88f526521f093cc9ee85f43efab4b7 Mon Sep 17 00:00:00 2001
 From: Andreas Rammhold <andreas@rammhold.de>
 Date: Fri, 2 Nov 2018 21:15:42 +0100
-Subject: [PATCH 12/19] inherit systemd environment when calling generators.
+Subject: [PATCH 12/21] inherit systemd environment when calling generators.
 
 Systemd generators need access to the environment configured in
 stage-2-init.sh since it schedules fsck and mkfs executions based on
diff --git a/pkgs/os-specific/linux/systemd/0013-add-rootprefix-to-lookup-dir-paths.patch b/pkgs/os-specific/linux/systemd/0013-add-rootprefix-to-lookup-dir-paths.patch
index 086a20cabceb2..a424cf1061cc0 100644
--- a/pkgs/os-specific/linux/systemd/0013-add-rootprefix-to-lookup-dir-paths.patch
+++ b/pkgs/os-specific/linux/systemd/0013-add-rootprefix-to-lookup-dir-paths.patch
@@ -1,7 +1,7 @@
-From 146b79d55cc4fdfdb5fd4978e68b21f5c1df1679 Mon Sep 17 00:00:00 2001
+From 39969a1b01d6c223a21c770093209b7f4047aaa4 Mon Sep 17 00:00:00 2001
 From: Andreas Rammhold <andreas@rammhold.de>
 Date: Thu, 9 May 2019 11:15:22 +0200
-Subject: [PATCH 13/19] add rootprefix to lookup dir paths
+Subject: [PATCH 13/21] add rootprefix to lookup dir paths
 
 systemd does not longer use the UDEVLIBEXEC directory as root for
 discovery default udev rules. By adding `$out/lib` to the lookup paths
diff --git a/pkgs/os-specific/linux/systemd/0014-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch b/pkgs/os-specific/linux/systemd/0014-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
index b3fafabb515e9..5610d4d3ecc61 100644
--- a/pkgs/os-specific/linux/systemd/0014-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
+++ b/pkgs/os-specific/linux/systemd/0014-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
@@ -1,7 +1,7 @@
-From 8edd810e74e2308f34eba6e8072e559e69307830 Mon Sep 17 00:00:00 2001
+From e7c960789b0ca97b24a66e9eeaa56ea645d9c66b Mon Sep 17 00:00:00 2001
 From: Nikolay Amiantov <ab@fmap.me>
 Date: Thu, 25 Jul 2019 20:45:55 +0300
-Subject: [PATCH 14/19] systemd-shutdown: execute scripts in
+Subject: [PATCH 14/21] systemd-shutdown: execute scripts in
  /etc/systemd/system-shutdown
 
 This is needed for NixOS to use such scripts as systemd directory is immutable.
diff --git a/pkgs/os-specific/linux/systemd/0015-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch b/pkgs/os-specific/linux/systemd/0015-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
index ac40b8c1e2588..11848a623a327 100644
--- a/pkgs/os-specific/linux/systemd/0015-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
+++ b/pkgs/os-specific/linux/systemd/0015-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
@@ -1,7 +1,7 @@
-From 9ed24199dd3ce91d3f7fbfbdf823312c124aba56 Mon Sep 17 00:00:00 2001
+From 6124720aa2b9dbc07f2fb898f0db150a44a86041 Mon Sep 17 00:00:00 2001
 From: Nikolay Amiantov <ab@fmap.me>
 Date: Thu, 25 Jul 2019 20:46:58 +0300
-Subject: [PATCH 15/19] systemd-sleep: execute scripts in
+Subject: [PATCH 15/21] systemd-sleep: execute scripts in
  /etc/systemd/system-sleep
 
 This is needed for NixOS to use such scripts as systemd directory is immutable.
diff --git a/pkgs/os-specific/linux/systemd/0016-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch b/pkgs/os-specific/linux/systemd/0016-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch
index 26e586c00af8a..156195d9a9009 100644
--- a/pkgs/os-specific/linux/systemd/0016-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch
+++ b/pkgs/os-specific/linux/systemd/0016-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch
@@ -1,7 +1,7 @@
-From 6db7ad4d5526a82e4ed9b135daf1054a8b71e1c7 Mon Sep 17 00:00:00 2001
+From bee1d855d4fb7f2d6f6b9beb1dfd14b1dea31887 Mon Sep 17 00:00:00 2001
 From: Florian Klink <flokli@flokli.de>
 Date: Sat, 7 Mar 2020 22:40:27 +0100
-Subject: [PATCH 16/19] kmod-static-nodes.service: Update ConditionFileNotEmpty
+Subject: [PATCH 16/21] kmod-static-nodes.service: Update ConditionFileNotEmpty
 
 On NixOS, kernel modules of the currently booted systems are located at
 /run/booted-system/kernel-modules/lib/modules/%v/, not /lib/modules/%v/.
diff --git a/pkgs/os-specific/linux/systemd/0017-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch b/pkgs/os-specific/linux/systemd/0017-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
index a47c6f51836e6..1f21b628e9236 100644
--- a/pkgs/os-specific/linux/systemd/0017-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
+++ b/pkgs/os-specific/linux/systemd/0017-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
@@ -1,7 +1,7 @@
-From 160d32c336c96744bbfb618eae4c12cb90138644 Mon Sep 17 00:00:00 2001
+From 62198599bbc559eeb8e2a3caebce7b9135085270 Mon Sep 17 00:00:00 2001
 From: Florian Klink <flokli@flokli.de>
 Date: Sun, 8 Mar 2020 01:05:54 +0100
-Subject: [PATCH 17/19] path-util.h: add placeholder for DEFAULT_PATH_NORMAL
+Subject: [PATCH 17/21] path-util.h: add placeholder for DEFAULT_PATH_NORMAL
 
 This will be the $PATH used to lookup ExecStart= etc. options, which
 systemd itself uses extensively.
diff --git a/pkgs/os-specific/linux/systemd/0018-pkg-config-derive-prefix-from-prefix.patch b/pkgs/os-specific/linux/systemd/0018-pkg-config-derive-prefix-from-prefix.patch
index 3939a2ba15e0a..344b8b3952ff6 100644
--- a/pkgs/os-specific/linux/systemd/0018-pkg-config-derive-prefix-from-prefix.patch
+++ b/pkgs/os-specific/linux/systemd/0018-pkg-config-derive-prefix-from-prefix.patch
@@ -1,7 +1,7 @@
-From 777d61550f95b1dcf253e1d2132f9db7010a18f3 Mon Sep 17 00:00:00 2001
+From 7654964344ba083529cb232ab229db7c0888f782 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 18/19] pkg-config: derive prefix from --prefix
+Subject: [PATCH 18/21] 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
diff --git a/pkgs/os-specific/linux/systemd/0019-core-handle-lookup-paths-being-symlinks.patch b/pkgs/os-specific/linux/systemd/0019-core-handle-lookup-paths-being-symlinks.patch
index 5820e7605c453..4f950650d3206 100644
--- a/pkgs/os-specific/linux/systemd/0019-core-handle-lookup-paths-being-symlinks.patch
+++ b/pkgs/os-specific/linux/systemd/0019-core-handle-lookup-paths-being-symlinks.patch
@@ -1,7 +1,7 @@
-From 273e706ff561f2164b84c714148346ac92dd8846 Mon Sep 17 00:00:00 2001
+From 4e9b4aa87d299be08cffc77a86d6f473a7a4109a Mon Sep 17 00:00:00 2001
 From: Andreas Rammhold <andreas@rammhold.de>
 Date: Wed, 18 Aug 2021 19:10:08 +0200
-Subject: [PATCH 19/19] core: handle lookup paths being symlinks
+Subject: [PATCH 19/21] core: handle lookup paths being symlinks
 
 With a recent change paths leaving the statically known lookup paths
 would be treated differently then those that remained within those. That
diff --git a/pkgs/os-specific/linux/systemd/0020-sd-boot-Unify-error-handling.patch b/pkgs/os-specific/linux/systemd/0020-sd-boot-Unify-error-handling.patch
new file mode 100644
index 0000000000000..5c82cdbd6fab3
--- /dev/null
+++ b/pkgs/os-specific/linux/systemd/0020-sd-boot-Unify-error-handling.patch
@@ -0,0 +1,401 @@
+From 3cf1b5fb6d1dc342e836cf0990df3170d2e9db49 Mon Sep 17 00:00:00 2001
+From: Jan Janssen <medhefgo@web.de>
+Date: Wed, 11 Aug 2021 14:59:46 +0200
+Subject: [PATCH 20/21] sd-boot: Unify error handling
+
+log_error_stall() and log_error_status_stall() will ensure the user has
+a chance to catch an error message by stalling and also forcing a
+lightred/black color on it. Also, convert several Print() calls to it
+since they are actually error messages.
+
+(cherry picked from commit 8aba0eec499b762657f528988c2f093ac490620d)
+---
+ src/boot/efi/boot.c        | 62 ++++++++++----------------------
+ src/boot/efi/random-seed.c | 73 +++++++++++++-------------------------
+ src/boot/efi/stub.c        | 24 ++++---------
+ src/boot/efi/util.c        | 17 +++++++--
+ src/boot/efi/util.h        |  9 +++++
+ 5 files changed, 75 insertions(+), 110 deletions(-)
+
+diff --git a/src/boot/efi/boot.c b/src/boot/efi/boot.c
+index 13940a6df7..54d704f0d1 100644
+--- a/src/boot/efi/boot.c
++++ b/src/boot/efi/boot.c
+@@ -527,7 +527,7 @@ static BOOLEAN menu_run(
+                 err = console_set_mode(&config->console_mode, config->console_mode_change);
+                 if (EFI_ERROR(err)) {
+                         uefi_call_wrapper(ST->ConOut->ClearScreen, 1, ST->ConOut);
+-                        Print(L"Error switching console mode to %ld: %r.\r", (UINT64)config->console_mode, err);
++                        log_error_stall(L"Error switching console mode to %lu: %r", (UINT64)config->console_mode, err);
+                 }
+         } else
+                 uefi_call_wrapper(ST->ConOut->ClearScreen, 1, ST->ConOut);
+@@ -1221,8 +1221,7 @@ static VOID config_entry_bump_counters(
+                         break;
+ 
+                 if (r != EFI_BUFFER_TOO_SMALL || file_info_size * 2 < file_info_size) {
+-                        Print(L"\nFailed to get file info for '%s': %r\n", old_path, r);
+-                        uefi_call_wrapper(BS->Stall, 1, 3 * 1000 * 1000);
++                        log_error_stall(L"Failed to get file info for '%s': %r", old_path, r);
+                         return;
+                 }
+ 
+@@ -1234,8 +1233,7 @@ static VOID config_entry_bump_counters(
+         StrCpy(file_info->FileName, entry->next_name);
+         r = uefi_call_wrapper(handle->SetInfo, 4, handle, &EfiFileInfoGuid, file_info_size, file_info);
+         if (EFI_ERROR(r)) {
+-                Print(L"\nFailed to rename '%s' to '%s', ignoring: %r\n", old_path, entry->next_name, r);
+-                uefi_call_wrapper(BS->Stall, 1, 3 * 1000 * 1000);
++                log_error_stall(L"Failed to rename '%s' to '%s', ignoring: %r", old_path, entry->next_name, r);
+                 return;
+         }
+ 
+@@ -2165,18 +2163,12 @@ static EFI_STATUS image_start(
+         EFI_STATUS err;
+ 
+         path = FileDevicePath(entry->device, entry->loader);
+-        if (!path) {
+-                Print(L"Error getting device path.");
+-                uefi_call_wrapper(BS->Stall, 1, 3 * 1000 * 1000);
+-                return EFI_INVALID_PARAMETER;
+-        }
++        if (!path)
++                return log_error_status_stall(EFI_INVALID_PARAMETER, L"Error getting device path.");
+ 
+         err = uefi_call_wrapper(BS->LoadImage, 6, FALSE, parent_image, path, NULL, 0, &image);
+-        if (EFI_ERROR(err)) {
+-                Print(L"Error loading %s: %r", entry->loader, err);
+-                uefi_call_wrapper(BS->Stall, 1, 3 * 1000 * 1000);
+-                return err;
+-        }
++        if (EFI_ERROR(err))
++                return log_error_status_stall(err, L"Error loading %s: %r", entry->loader, err);
+ 
+         if (config->options_edit)
+                 options = config->options_edit;
+@@ -2190,8 +2182,7 @@ static EFI_STATUS image_start(
+                 err = uefi_call_wrapper(BS->OpenProtocol, 6, image, &LoadedImageProtocol, (VOID **)&loaded_image,
+                                         parent_image, NULL, EFI_OPEN_PROTOCOL_GET_PROTOCOL);
+                 if (EFI_ERROR(err)) {
+-                        Print(L"Error getting LoadedImageProtocol handle: %r", err);
+-                        uefi_call_wrapper(BS->Stall, 1, 3 * 1000 * 1000);
++                        log_error_stall(L"Error getting LoadedImageProtocol handle: %r", err);
+                         goto out_unload;
+                 }
+                 loaded_image->LoadOptions = options;
+@@ -2202,10 +2193,8 @@ static EFI_STATUS image_start(
+                 err = tpm_log_event(SD_TPM_PCR,
+                                     (EFI_PHYSICAL_ADDRESS) (UINTN) loaded_image->LoadOptions,
+                                     loaded_image->LoadOptionsSize, loaded_image->LoadOptions);
+-                if (EFI_ERROR(err)) {
+-                        Print(L"Unable to add image options measurement: %r", err);
+-                        uefi_call_wrapper(BS->Stall, 1, 200 * 1000);
+-                }
++                if (EFI_ERROR(err))
++                        log_error_stall(L"Unable to add image options measurement: %r", err);
+ #endif
+         }
+ 
+@@ -2231,9 +2220,7 @@ static EFI_STATUS reboot_into_firmware(VOID) {
+                 return err;
+ 
+         err = uefi_call_wrapper(RT->ResetSystem, 4, EfiResetCold, EFI_SUCCESS, 0, NULL);
+-        Print(L"Error calling ResetSystem: %r", err);
+-        uefi_call_wrapper(BS->Stall, 1, 3 * 1000 * 1000);
+-        return err;
++        return log_error_status_stall(err, L"Error calling ResetSystem: %r", err);
+ }
+ 
+ static VOID config_free(Config *config) {
+@@ -2305,30 +2292,21 @@ EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *sys_table) {
+ 
+         err = uefi_call_wrapper(BS->OpenProtocol, 6, image, &LoadedImageProtocol, (VOID **)&loaded_image,
+                                 image, NULL, EFI_OPEN_PROTOCOL_GET_PROTOCOL);
+-        if (EFI_ERROR(err)) {
+-                Print(L"Error getting a LoadedImageProtocol handle: %r", err);
+-                uefi_call_wrapper(BS->Stall, 1, 3 * 1000 * 1000);
+-                return err;
+-        }
++        if (EFI_ERROR(err))
++                return log_error_status_stall(err, L"Error getting a LoadedImageProtocol handle: %r", err);
+ 
+         /* export the device path this image is started from */
+         if (disk_get_part_uuid(loaded_image->DeviceHandle, uuid) == EFI_SUCCESS)
+                 efivar_set(LOADER_GUID, L"LoaderDevicePartUUID", uuid, 0);
+ 
+         root_dir = LibOpenRoot(loaded_image->DeviceHandle);
+-        if (!root_dir) {
+-                Print(L"Unable to open root directory.");
+-                uefi_call_wrapper(BS->Stall, 1, 3 * 1000 * 1000);
+-                return EFI_LOAD_ERROR;
+-        }
++        if (!root_dir)
++                return log_error_status_stall(EFI_LOAD_ERROR, L"Unable to open root directory.", EFI_LOAD_ERROR);
+ 
+         if (secure_boot_enabled() && shim_loaded()) {
+                 err = security_policy_install();
+-                if (EFI_ERROR(err)) {
+-                        Print(L"Error installing security policy: %r ", err);
+-                        uefi_call_wrapper(BS->Stall, 1, 3 * 1000 * 1000);
+-                        return err;
+-                }
++                if (EFI_ERROR(err))
++                        return log_error_status_stall(err, L"Error installing security policy: %r", err);
+         }
+ 
+         /* the filesystem path to this image, to prevent adding ourselves to the menu */
+@@ -2367,8 +2345,7 @@ EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *sys_table) {
+         }
+ 
+         if (config.entry_count == 0) {
+-                Print(L"No loader found. Configuration files in \\loader\\entries\\*.conf are needed.");
+-                uefi_call_wrapper(BS->Stall, 1, 3 * 1000 * 1000);
++                log_error_stall(L"No loader found. Configuration files in \\loader\\entries\\*.conf are needed.");
+                 goto out;
+         }
+ 
+@@ -2440,8 +2417,7 @@ EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *sys_table) {
+                 err = image_start(image, &config, entry);
+                 if (EFI_ERROR(err)) {
+                         graphics_mode(FALSE);
+-                        Print(L"\nFailed to execute %s (%s): %r\n", entry->title, entry->loader, err);
+-                        uefi_call_wrapper(BS->Stall, 1, 3 * 1000 * 1000);
++                        log_error_stall(L"Failed to execute %s (%s): %r", entry->title, entry->loader, err);
+                         goto out;
+                 }
+ 
+diff --git a/src/boot/efi/random-seed.c b/src/boot/efi/random-seed.c
+index 3e179851b0..939daf3e41 100644
+--- a/src/boot/efi/random-seed.c
++++ b/src/boot/efi/random-seed.c
+@@ -35,10 +35,8 @@ static EFI_STATUS acquire_rng(UINTN size, VOID **ret) {
+                 return log_oom();
+ 
+         err = uefi_call_wrapper(rng->GetRNG, 3, rng, NULL, size, data);
+-        if (EFI_ERROR(err)) {
+-                Print(L"Failed to acquire RNG data: %r\n", err);
+-                return err;
+-        }
++        if (EFI_ERROR(err))
++                return log_error_status_stall(err, L"Failed to acquire RNG data: %r", err);
+ 
+         *ret = TAKE_PTR(data);
+         return EFI_SUCCESS;
+@@ -149,14 +147,12 @@ static EFI_STATUS acquire_system_token(VOID **ret, UINTN *ret_size) {
+         err = efivar_get_raw(LOADER_GUID, L"LoaderSystemToken", &data, &size);
+         if (EFI_ERROR(err)) {
+                 if (err != EFI_NOT_FOUND)
+-                        Print(L"Failed to read LoaderSystemToken EFI variable: %r", err);
++                        log_error_stall(L"Failed to read LoaderSystemToken EFI variable: %r", err);
+                 return err;
+         }
+ 
+-        if (size <= 0) {
+-                Print(L"System token too short, ignoring.");
+-                return EFI_NOT_FOUND;
+-        }
++        if (size <= 0)
++                return log_error_status_stall(EFI_NOT_FOUND, L"System token too short, ignoring.");
+ 
+         *ret = TAKE_PTR(data);
+         *ret_size = size;
+@@ -209,8 +205,7 @@ static VOID validate_sha256(void) {
+                 sha256_finish_ctx(&hash, result);
+ 
+                 if (CompareMem(result, array[i].hash, HASH_VALUE_SIZE) != 0) {
+-                        Print(L"SHA256 failed validation.\n");
+-                        uefi_call_wrapper(BS->Stall, 1, 120 * 1000 * 1000);
++                        log_error_stall(L"SHA256 failed validation.");
+                         return;
+                 }
+         }
+@@ -246,7 +241,7 @@ EFI_STATUS process_random_seed(EFI_FILE *root_dir, RandomSeedMode mode) {
+         err = uefi_call_wrapper(root_dir->Open, 5, root_dir, &handle, (CHAR16*) L"\\loader\\random-seed", EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE, 0ULL);
+         if (EFI_ERROR(err)) {
+                 if (err != EFI_NOT_FOUND && err != EFI_WRITE_PROTECTED)
+-                        Print(L"Failed to open random seed file: %r\n", err);
++                        log_error_stall(L"Failed to open random seed file: %r", err);
+                 return err;
+         }
+ 
+@@ -255,15 +250,11 @@ EFI_STATUS process_random_seed(EFI_FILE *root_dir, RandomSeedMode mode) {
+                 return log_oom();
+ 
+         size = info->FileSize;
+-        if (size < RANDOM_MAX_SIZE_MIN) {
+-                Print(L"Random seed file is too short?\n");
+-                return EFI_INVALID_PARAMETER;
+-        }
++        if (size < RANDOM_MAX_SIZE_MIN)
++                return log_error_status_stall(EFI_INVALID_PARAMETER, L"Random seed file is too short.");
+ 
+-        if (size > RANDOM_MAX_SIZE_MAX) {
+-                Print(L"Random seed file is too large?\n");
+-                return EFI_INVALID_PARAMETER;
+-        }
++        if (size > RANDOM_MAX_SIZE_MAX)
++                return log_error_status_stall(EFI_INVALID_PARAMETER, L"Random seed file is too large.");
+ 
+         seed = AllocatePool(size);
+         if (!seed)
+@@ -271,20 +262,14 @@ EFI_STATUS process_random_seed(EFI_FILE *root_dir, RandomSeedMode mode) {
+ 
+         rsize = size;
+         err = uefi_call_wrapper(handle->Read, 3, handle, &rsize, seed);
+-        if (EFI_ERROR(err)) {
+-                Print(L"Failed to read random seed file: %r\n", err);
+-                return err;
+-        }
+-        if (rsize != size) {
+-                Print(L"Short read on random seed file\n");
+-                return EFI_PROTOCOL_ERROR;
+-        }
++        if (EFI_ERROR(err))
++                return log_error_status_stall(err, L"Failed to read random seed file: %r", err);
++        if (rsize != size)
++                return log_error_status_stall(EFI_PROTOCOL_ERROR, L"Short read on random seed file.");
+ 
+         err = uefi_call_wrapper(handle->SetPosition, 2, handle, 0);
+-        if (EFI_ERROR(err)) {
+-                Print(L"Failed to seek to beginning of random seed file: %r\n", err);
+-                return err;
+-        }
++        if (EFI_ERROR(err))
++                return log_error_status_stall(err, L"Failed to seek to beginning of random seed file: %r", err);
+ 
+         /* Request some random data from the UEFI RNG. We don't need this to work safely, but it's a good
+          * idea to use it because it helps us for cases where users mistakenly include a random seed in
+@@ -299,27 +284,19 @@ EFI_STATUS process_random_seed(EFI_FILE *root_dir, RandomSeedMode mode) {
+         /* Update the random seed on disk before we use it */
+         wsize = size;
+         err = uefi_call_wrapper(handle->Write, 3, handle, &wsize, new_seed);
+-        if (EFI_ERROR(err)) {
+-                Print(L"Failed to write random seed file: %r\n", err);
+-                return err;
+-        }
+-        if (wsize != size) {
+-                Print(L"Short write on random seed file\n");
+-                return EFI_PROTOCOL_ERROR;
+-        }
++        if (EFI_ERROR(err))
++                return log_error_status_stall(err, L"Failed to write random seed file: %r", err);
++        if (wsize != size)
++                return log_error_status_stall(EFI_PROTOCOL_ERROR, L"Short write on random seed file.");
+ 
+         err = uefi_call_wrapper(handle->Flush, 1, handle);
+-        if (EFI_ERROR(err)) {
+-                Print(L"Failed to flush random seed file: %r\n");
+-                return err;
+-        }
++        if (EFI_ERROR(err))
++                return log_error_status_stall(err, L"Failed to flush random seed file: %r", err);
+ 
+         /* We are good to go */
+         err = efivar_set_raw(LOADER_GUID, L"LoaderRandomSeed", for_kernel, size, 0);
+-        if (EFI_ERROR(err)) {
+-                Print(L"Failed to write random seed to EFI variable: %r\n", err);
+-                return err;
+-        }
++        if (EFI_ERROR(err))
++                return log_error_status_stall(err, L"Failed to write random seed to EFI variable: %r", err);
+ 
+         return EFI_SUCCESS;
+ }
+diff --git a/src/boot/efi/stub.c b/src/boot/efi/stub.c
+index 082fe91c9e..82da1d3ec4 100644
+--- a/src/boot/efi/stub.c
++++ b/src/boot/efi/stub.c
+@@ -36,18 +36,12 @@ EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *sys_table) {
+ 
+         err = uefi_call_wrapper(BS->OpenProtocol, 6, image, &LoadedImageProtocol, (VOID **)&loaded_image,
+                                 image, NULL, EFI_OPEN_PROTOCOL_GET_PROTOCOL);
+-        if (EFI_ERROR(err)) {
+-                Print(L"Error getting a LoadedImageProtocol handle: %r ", err);
+-                uefi_call_wrapper(BS->Stall, 1, 3 * 1000 * 1000);
+-                return err;
+-        }
++        if (EFI_ERROR(err))
++                return log_error_status_stall(err, L"Error getting a LoadedImageProtocol handle: %r", err);
+ 
+         err = pe_memory_locate_sections(loaded_image->ImageBase, sections, addrs, offs, szs);
+-        if (EFI_ERROR(err)) {
+-                Print(L"Unable to locate embedded .linux section: %r ", err);
+-                uefi_call_wrapper(BS->Stall, 1, 3 * 1000 * 1000);
+-                return err;
+-        }
++        if (EFI_ERROR(err))
++                return log_error_status_stall(err, L"Unable to locate embedded .linux section: %r", err);
+ 
+         if (szs[0] > 0)
+                 cmdline = (CHAR8 *)(loaded_image->ImageBase) + addrs[0];
+@@ -72,10 +66,8 @@ EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *sys_table) {
+                 err = tpm_log_event(SD_TPM_PCR,
+                                     (EFI_PHYSICAL_ADDRESS) (UINTN) loaded_image->LoadOptions,
+                                     loaded_image->LoadOptionsSize, loaded_image->LoadOptions);
+-                if (EFI_ERROR(err)) {
+-                        Print(L"Unable to add image options measurement: %r", err);
+-                        uefi_call_wrapper(BS->Stall, 1, 200 * 1000);
+-                }
++                if (EFI_ERROR(err))
++                        log_error_stall(L"Unable to add image options measurement: %r", err);
+ #endif
+         }
+ 
+@@ -126,7 +118,5 @@ EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *sys_table) {
+                          (UINTN)loaded_image->ImageBase + addrs[2], szs[2]);
+ 
+         graphics_mode(FALSE);
+-        Print(L"Execution of embedded linux image failed: %r\n", err);
+-        uefi_call_wrapper(BS->Stall, 1, 3 * 1000 * 1000);
+-        return err;
++        return log_error_status_stall(err, L"Execution of embedded linux image failed: %r", err);
+ }
+diff --git a/src/boot/efi/util.c b/src/boot/efi/util.c
+index 6f4e5933d3..aee076060b 100644
+--- a/src/boot/efi/util.c
++++ b/src/boot/efi/util.c
+@@ -411,8 +411,21 @@ EFI_STATUS file_read(EFI_FILE_HANDLE dir, const CHAR16 *name, UINTN off, UINTN s
+         return err;
+ }
+ 
++VOID log_error_stall(const CHAR16 *fmt, ...) {
++        va_list args;
++
++        uefi_call_wrapper(ST->ConOut->SetAttribute, 2, ST->ConOut, EFI_LIGHTRED|EFI_BACKGROUND_BLACK);
++
++        Print(L"\n");
++        va_start(args, fmt);
++        VPrint(fmt, args);
++        va_end(args);
++        Print(L"\n");
++
++        uefi_call_wrapper(BS->Stall, 1, 3 * 1000 * 1000);
++}
++
+ EFI_STATUS log_oom(void) {
+-        Print(L"Out of memory.");
+-        (void) uefi_call_wrapper(BS->Stall, 1, 3 * 1000 * 1000);
++        log_error_stall(L"Out of memory.");
+         return EFI_OUT_OF_RESOURCES;
+ }
+diff --git a/src/boot/efi/util.h b/src/boot/efi/util.h
+index 1a42b01033..d3bf848a95 100644
+--- a/src/boot/efi/util.h
++++ b/src/boot/efi/util.h
+@@ -74,4 +74,13 @@ static inline void FileHandleClosep(EFI_FILE_HANDLE *handle) {
+ #define UINT64_MAX ((UINT64) -1)
+ #endif
+ 
++VOID log_error_stall(const CHAR16 *fmt, ...);
+ EFI_STATUS log_oom(void);
++
++/* This works just like log_error_errno() from userspace, but requires you
++ * to provide err a second time if you want to use %r in the message! */
++#define log_error_status_stall(err, fmt, ...) \
++        ({ \
++                log_error_stall(fmt, ##__VA_ARGS__); \
++                err; \
++        })
+-- 
+2.33.0
+
diff --git a/pkgs/os-specific/linux/systemd/0021-sd-boot-Rework-console-input-handling.patch b/pkgs/os-specific/linux/systemd/0021-sd-boot-Rework-console-input-handling.patch
new file mode 100644
index 0000000000000..7cdc2491fa33e
--- /dev/null
+++ b/pkgs/os-specific/linux/systemd/0021-sd-boot-Rework-console-input-handling.patch
@@ -0,0 +1,320 @@
+From 2d9fcfcfa38667ada306e095599944f941576e53 Mon Sep 17 00:00:00 2001
+From: Jan Janssen <medhefgo@web.de>
+Date: Wed, 11 Aug 2021 14:59:46 +0200
+Subject: [PATCH 21/21] sd-boot: Rework console input handling
+
+Fixes: #15847
+Probably fixes: #19191
+
+(cherry picked from commit e98d271e57f3d0356e444b6ea2d48836ee2769b0)
+---
+ src/boot/efi/boot.c    |  55 +++++++---------------
+ src/boot/efi/console.c | 102 +++++++++++++++++++++++++++++------------
+ src/boot/efi/console.h |   2 +-
+ 3 files changed, 91 insertions(+), 68 deletions(-)
+
+diff --git a/src/boot/efi/boot.c b/src/boot/efi/boot.c
+index 54d704f0d1..b4f3b9605a 100644
+--- a/src/boot/efi/boot.c
++++ b/src/boot/efi/boot.c
+@@ -134,7 +134,7 @@ static BOOLEAN line_edit(
+                 uefi_call_wrapper(ST->ConOut->OutputString, 2, ST->ConOut, print);
+                 uefi_call_wrapper(ST->ConOut->SetCursorPosition, 3, ST->ConOut, cursor, y_pos);
+ 
+-                err = console_key_read(&key, TRUE);
++                err = console_key_read(&key, 0);
+                 if (EFI_ERROR(err))
+                         continue;
+ 
+@@ -387,7 +387,7 @@ static VOID print_status(Config *config, CHAR16 *loaded_image_path) {
+                 Print(L"OsIndicationsSupported: %d\n", indvar);
+ 
+         Print(L"\n--- press key ---\n\n");
+-        console_key_read(&key, TRUE);
++        console_key_read(&key, 0);
+ 
+         Print(L"timeout:                %u\n", config->timeout_sec);
+         if (config->timeout_sec_efivar >= 0)
+@@ -432,7 +432,7 @@ static VOID print_status(Config *config, CHAR16 *loaded_image_path) {
+                 Print(L"LoaderEntryDefault:     %s\n", defaultstr);
+ 
+         Print(L"\n--- press key ---\n\n");
+-        console_key_read(&key, TRUE);
++        console_key_read(&key, 0);
+ 
+         for (UINTN i = 0; i < config->entry_count; i++) {
+                 ConfigEntry *entry;
+@@ -482,7 +482,7 @@ static VOID print_status(Config *config, CHAR16 *loaded_image_path) {
+                               entry->path, entry->next_name);
+ 
+                 Print(L"\n--- press key ---\n\n");
+-                console_key_read(&key, TRUE);
++                console_key_read(&key, 0);
+         }
+ 
+         uefi_call_wrapper(ST->ConOut->ClearScreen, 1, ST->ConOut);
+@@ -509,11 +509,10 @@ static BOOLEAN menu_run(
+         UINTN y_max;
+         CHAR16 *status;
+         CHAR16 *clearline;
+-        INTN timeout_remain;
++        UINTN timeout_remain = config->timeout_sec;
+         INT16 idx;
+         BOOLEAN exit = FALSE;
+         BOOLEAN run = TRUE;
+-        BOOLEAN wait = FALSE;
+ 
+         graphics_mode(FALSE);
+         uefi_call_wrapper(ST->ConIn->Reset, 2, ST->ConIn, FALSE);
+@@ -538,12 +537,6 @@ static BOOLEAN menu_run(
+                 y_max = 25;
+         }
+ 
+-        /* we check 10 times per second for a keystroke */
+-        if (config->timeout_sec > 0)
+-                timeout_remain = config->timeout_sec * 10;
+-        else
+-                timeout_remain = -1;
+-
+         idx_highlight = config->idx_default;
+         idx_highlight_prev = 0;
+ 
+@@ -643,7 +636,7 @@ static BOOLEAN menu_run(
+ 
+                 if (timeout_remain > 0) {
+                         FreePool(status);
+-                        status = PoolPrint(L"Boot in %d sec.", (timeout_remain + 5) / 10);
++                        status = PoolPrint(L"Boot in %d s.", timeout_remain);
+                 }
+ 
+                 /* print status at last line of screen */
+@@ -664,27 +657,18 @@ static BOOLEAN menu_run(
+                         uefi_call_wrapper(ST->ConOut->OutputString, 2, ST->ConOut, clearline+1 + x + len);
+                 }
+ 
+-                err = console_key_read(&key, wait);
+-                if (EFI_ERROR(err)) {
+-                        /* timeout reached */
++                err = console_key_read(&key, timeout_remain > 0 ? 1000 * 1000 : 0);
++                if (err == EFI_TIMEOUT) {
++                        timeout_remain--;
+                         if (timeout_remain == 0) {
+                                 exit = TRUE;
+                                 break;
+                         }
+ 
+-                        /* sleep and update status */
+-                        if (timeout_remain > 0) {
+-                                uefi_call_wrapper(BS->Stall, 1, 100 * 1000);
+-                                timeout_remain--;
+-                                continue;
+-                        }
+-
+-                        /* timeout disabled, wait for next key */
+-                        wait = TRUE;
++                        /* update status */
+                         continue;
+-                }
+-
+-                timeout_remain = -1;
++                } else
++                        timeout_remain = 0;
+ 
+                 /* clear status after keystroke */
+                 if (status) {
+@@ -787,7 +771,7 @@ static BOOLEAN menu_run(
+                                         config->timeout_sec_efivar,
+                                         EFI_VARIABLE_NON_VOLATILE);
+                                 if (config->timeout_sec_efivar > 0)
+-                                        status = PoolPrint(L"Menu timeout set to %d sec.", config->timeout_sec_efivar);
++                                        status = PoolPrint(L"Menu timeout set to %d s.", config->timeout_sec_efivar);
+                                 else
+                                         status = StrDuplicate(L"Menu disabled. Hold down key at bootup to show menu.");
+                         } else if (config->timeout_sec_efivar <= 0){
+@@ -795,7 +779,7 @@ static BOOLEAN menu_run(
+                                 efivar_set(
+                                         LOADER_GUID, L"LoaderConfigTimeout", NULL, EFI_VARIABLE_NON_VOLATILE);
+                                 if (config->timeout_sec_config > 0)
+-                                        status = PoolPrint(L"Menu timeout of %d sec is defined by configuration file.",
++                                        status = PoolPrint(L"Menu timeout of %d s is defined by configuration file.",
+                                                            config->timeout_sec_config);
+                                 else
+                                         status = StrDuplicate(L"Menu disabled. Hold down key at bootup to show menu.");
+@@ -813,7 +797,7 @@ static BOOLEAN menu_run(
+                                 config->timeout_sec_efivar,
+                                 EFI_VARIABLE_NON_VOLATILE);
+                         if (config->timeout_sec_efivar > 0)
+-                                status = PoolPrint(L"Menu timeout set to %d sec.",
++                                status = PoolPrint(L"Menu timeout set to %d s.",
+                                                    config->timeout_sec_efivar);
+                         else
+                                 status = StrDuplicate(L"Menu disabled. Hold down key at bootup to show menu.");
+@@ -2369,13 +2353,8 @@ EFI_STATUS efi_main(EFI_HANDLE image, EFI_SYSTEM_TABLE *sys_table) {
+         else {
+                 UINT64 key;
+ 
+-                err = console_key_read(&key, FALSE);
+-
+-                if (err == EFI_NOT_READY) {
+-                        uefi_call_wrapper(BS->Stall, 1, 100 * 1000);
+-                        err = console_key_read(&key, FALSE);
+-                }
+-
++                /* Block up to 100ms to give firmware time to get input working. */
++                err = console_key_read(&key, 100 * 1000);
+                 if (!EFI_ERROR(err)) {
+                         INT16 idx;
+ 
+diff --git a/src/boot/efi/console.c b/src/boot/efi/console.c
+index 83619d2147..369c549daf 100644
+--- a/src/boot/efi/console.c
++++ b/src/boot/efi/console.c
+@@ -11,61 +11,105 @@
+ 
+ #define EFI_SIMPLE_TEXT_INPUT_EX_GUID &(EFI_GUID) EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID
+ 
+-EFI_STATUS console_key_read(UINT64 *key, BOOLEAN wait) {
++static inline void EventClosep(EFI_EVENT *event) {
++        if (!*event)
++                return;
++
++        uefi_call_wrapper(BS->CloseEvent, 1, *event);
++}
++
++/*
++ * Reading input from the console sounds like an easy task to do, but thanks to broken
++ * firmware it is actually a nightmare.
++ *
++ * There is a ConIn and TextInputEx API for this. Ideally we want to use TextInputEx,
++ * because that gives us Ctrl/Alt/Shift key state information. Unfortunately, it is not
++ * always available and sometimes just non-functional.
++ *
++ * On the other hand we have ConIn, where some firmware likes to just freeze on us
++ * if we call ReadKeyStroke on it.
++ *
++ * Therefore, we use WaitForEvent on both ConIn and TextInputEx (if available) along
++ * with a timer event. The timer ensures there is no need to call into functions
++ * that might freeze on us, while still allowing us to show a timeout counter.
++ */
++EFI_STATUS console_key_read(UINT64 *key, UINT64 timeout_usec) {
+         static EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInputEx;
+         static BOOLEAN checked;
+         UINTN index;
+         EFI_INPUT_KEY k;
+         EFI_STATUS err;
++        _cleanup_(EventClosep) EFI_EVENT timer = NULL;
++        EFI_EVENT events[3] = { ST->ConIn->WaitForKey };
++        UINTN n_events = 1;
+ 
+         if (!checked) {
+                 err = LibLocateProtocol(EFI_SIMPLE_TEXT_INPUT_EX_GUID, (VOID **)&TextInputEx);
+-                if (EFI_ERROR(err))
++                if (EFI_ERROR(err) ||
++                    uefi_call_wrapper(BS->CheckEvent, 1, TextInputEx->WaitForKeyEx) == EFI_INVALID_PARAMETER)
++                        /* If WaitForKeyEx fails here, the firmware pretends it talks this
++                         * protocol, but it really doesn't. */
+                         TextInputEx = NULL;
++                else
++                        events[n_events++] = TextInputEx->WaitForKeyEx;
+ 
+                 checked = TRUE;
+         }
+ 
+-        /* wait until key is pressed */
+-        if (wait)
+-                uefi_call_wrapper(BS->WaitForEvent, 3, 1, &ST->ConIn->WaitForKey, &index);
++        if (timeout_usec > 0) {
++                err = uefi_call_wrapper(BS->CreateEvent, 5, EVT_TIMER, 0, NULL, NULL, &timer);
++                if (EFI_ERROR(err))
++                        return log_error_status_stall(err, L"Error creating timer event: %r", err);
++
++                /* SetTimer expects 100ns units for some reason. */
++                err = uefi_call_wrapper(BS->SetTimer, 3, timer, TimerRelative, timeout_usec * 10);
++                if (EFI_ERROR(err))
++                        return log_error_status_stall(err, L"Error arming timer event: %r", err);
+ 
+-        if (TextInputEx) {
++                events[n_events++] = timer;
++        }
++
++        err = uefi_call_wrapper(BS->WaitForEvent, 3, n_events, events, &index);
++        if (EFI_ERROR(err))
++                return log_error_status_stall(err, L"Error waiting for events: %r", err);
++
++        if (timeout_usec > 0 && timer == events[index])
++                return EFI_TIMEOUT;
++
++        /* TextInputEx might be ready too even if ConIn got to signal first. */
++        if (TextInputEx && !EFI_ERROR(uefi_call_wrapper(BS->CheckEvent, 1, TextInputEx->WaitForKeyEx))) {
+                 EFI_KEY_DATA keydata;
+                 UINT64 keypress;
++                UINT32 shift = 0;
+ 
+                 err = uefi_call_wrapper(TextInputEx->ReadKeyStrokeEx, 2, TextInputEx, &keydata);
+-                if (!EFI_ERROR(err)) {
+-                        UINT32 shift = 0;
+-
+-                        /* do not distinguish between left and right keys */
+-                        if (keydata.KeyState.KeyShiftState & EFI_SHIFT_STATE_VALID) {
+-                                if (keydata.KeyState.KeyShiftState & (EFI_RIGHT_CONTROL_PRESSED|EFI_LEFT_CONTROL_PRESSED))
+-                                        shift |= EFI_CONTROL_PRESSED;
+-                                if (keydata.KeyState.KeyShiftState & (EFI_RIGHT_ALT_PRESSED|EFI_LEFT_ALT_PRESSED))
+-                                        shift |= EFI_ALT_PRESSED;
+-                        };
+-
+-                        /* 32 bit modifier keys + 16 bit scan code + 16 bit unicode */
+-                        keypress = KEYPRESS(shift, keydata.Key.ScanCode, keydata.Key.UnicodeChar);
+-                        if (keypress > 0) {
+-                                *key = keypress;
+-                                return 0;
+-                        }
++                if (EFI_ERROR(err))
++                        return err;
++
++                /* do not distinguish between left and right keys */
++                if (keydata.KeyState.KeyShiftState & EFI_SHIFT_STATE_VALID) {
++                        if (keydata.KeyState.KeyShiftState & (EFI_RIGHT_CONTROL_PRESSED|EFI_LEFT_CONTROL_PRESSED))
++                                shift |= EFI_CONTROL_PRESSED;
++                        if (keydata.KeyState.KeyShiftState & (EFI_RIGHT_ALT_PRESSED|EFI_LEFT_ALT_PRESSED))
++                                shift |= EFI_ALT_PRESSED;
++                };
++
++                /* 32 bit modifier keys + 16 bit scan code + 16 bit unicode */
++                keypress = KEYPRESS(shift, keydata.Key.ScanCode, keydata.Key.UnicodeChar);
++                if (keypress > 0) {
++                        *key = keypress;
++                        return EFI_SUCCESS;
+                 }
++
++                return EFI_NOT_READY;
+         }
+ 
+-        /* fallback for firmware which does not support SimpleTextInputExProtocol
+-         *
+-         * This is also called in case ReadKeyStrokeEx did not return a key, because
+-         * some broken firmwares offer SimpleTextInputExProtocol, but never actually
+-         * handle any key. */
+         err  = uefi_call_wrapper(ST->ConIn->ReadKeyStroke, 2, ST->ConIn, &k);
+         if (EFI_ERROR(err))
+                 return err;
+ 
+         *key = KEYPRESS(0, k.ScanCode, k.UnicodeChar);
+-        return 0;
++        return EFI_SUCCESS;
+ }
+ 
+ static EFI_STATUS change_mode(UINTN mode) {
+diff --git a/src/boot/efi/console.h b/src/boot/efi/console.h
+index 2c69af552a..23848a9c58 100644
+--- a/src/boot/efi/console.h
++++ b/src/boot/efi/console.h
+@@ -16,5 +16,5 @@ enum console_mode_change_type {
+         CONSOLE_MODE_MAX,
+ };
+ 
+-EFI_STATUS console_key_read(UINT64 *key, BOOLEAN wait);
++EFI_STATUS console_key_read(UINT64 *key, UINT64 timeout_usec);
+ EFI_STATUS console_set_mode(UINTN *mode, enum console_mode_change_type how);
+-- 
+2.33.0
+
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index 036ea991ef6ae..70036127fc896 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -2,6 +2,7 @@
 
 { stdenv
 , lib
+, nixosTests
 , fetchFromGitHub
 , fetchpatch
 , fetchzip
@@ -40,6 +41,7 @@
 , gnupg
 , zlib
 , xz
+, zstd
 , tpm2-tss
 , libuuid
 , libapparmor
@@ -47,6 +49,7 @@
 , bzip2
 , pcre2
 , e2fsprogs
+, elfutils
 , linuxHeaders ? stdenv.cc.libc.linuxHeaders
 , gnu-efi
 , iptables
@@ -67,7 +70,7 @@
 
 , withAnalyze ? true
 , withApparmor ? true
-, withCompression ? true  # adds bzip2, lz4 and xz
+, withCompression ? true  # adds bzip2, lz4, xz and zstd
 , withCoredump ? true
 , withCryptsetup ? true
 , withDocumentation ? true
@@ -164,6 +167,14 @@ stdenv.mkDerivation {
     # all our root unit dirs if they are symlinks. This does exactly what we
     # need (AFAICT).
     ./0019-core-handle-lookup-paths-being-symlinks.patch
+
+    # In v248 compiler weirdness and refactoring lead to the bootloader
+    # erroring out handling keyboard input on some systems. See
+    # https://github.com/systemd/systemd/issues/19191
+    # This should be redundant in v249.6 when it offically gets tagged in
+    # systemd-stable
+    ./0020-sd-boot-Unify-error-handling.patch
+    ./0021-sd-boot-Rework-console-input-handling.patch
   ] ++ lib.optional stdenv.hostPlatform.isMusl (let
     oe-core = fetchzip {
       url = "https://git.openembedded.org/openembedded-core/snapshot/openembedded-core-14c6e5a4b72d0e4665279158a0740dd1dc21f72f.tar.bz2";
@@ -364,7 +375,8 @@ stdenv.mkDerivation {
 
     ++ lib.optional withApparmor libapparmor
     ++ lib.optional wantCurl (lib.getDev curl)
-    ++ lib.optionals withCompression [ bzip2 lz4 xz ]
+    ++ lib.optionals withCompression [ bzip2 lz4 xz zstd ]
+    ++ lib.optional withCoredump elfutils
     ++ lib.optional withCryptsetup (lib.getDev cryptsetup.dev)
     ++ lib.optional withEfi gnu-efi
     ++ lib.optional withKexectools kexec-tools
@@ -605,6 +617,10 @@ stdenv.mkDerivation {
   # runtime; otherwise we can't and we need to reboot.
   passthru.interfaceVersion = 2;
 
+  passthru.tests = {
+    inherit (nixosTests) switchTest;
+  };
+
   meta = with lib; {
     homepage = "https://www.freedesktop.org/wiki/Software/systemd/";
     description = "A system and service manager for Linux";
diff --git a/pkgs/os-specific/linux/sysvinit/default.nix b/pkgs/os-specific/linux/sysvinit/default.nix
index c783c7924b597..5f4f6069bcc6f 100644
--- a/pkgs/os-specific/linux/sysvinit/default.nix
+++ b/pkgs/os-specific/linux/sysvinit/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchurl, withoutInitTools ? false }:
 
-let version = "3.00"; in
+let version = "3.01"; in
 
 stdenv.mkDerivation {
   name = (if withoutInitTools then "sysvtools" else "sysvinit") + "-" + version;
 
   src = fetchurl {
     url = "mirror://savannah/sysvinit/sysvinit-${version}.tar.xz";
-    sha256 = "sha256-7WvCCttnNTiYQefT64ZQ+nUMdq8gv07XOxMwpNTBQBc=";
+    sha256 = "sha256-aLEaR3LNrM5ftlpMvq0ySizjmZ0Ti0/2HcLVnlfvV5M=";
   };
 
   prePatch = ''
diff --git a/pkgs/os-specific/linux/uclibc/default.nix b/pkgs/os-specific/linux/uclibc/default.nix
index a724604c725eb..a0b748be2149e 100644
--- a/pkgs/os-specific/linux/uclibc/default.nix
+++ b/pkgs/os-specific/linux/uclibc/default.nix
@@ -39,6 +39,8 @@ let
     UCLIBC_SUSV4_LEGACY y
     UCLIBC_HAS_THREADS_NATIVE y
     KERNEL_HEADERS "${linuxHeaders}/include"
+  '' + lib.optionalString (stdenv.hostPlatform.gcc.float or "" == "soft") ''
+    UCLIBC_HAS_FPU n
   '' + lib.optionalString (stdenv.isAarch32 && stdenv.buildPlatform != stdenv.hostPlatform) ''
     CONFIG_ARM_EABI y
     ARCH_WANTS_BIG_ENDIAN n
@@ -81,7 +83,8 @@ stdenv.mkDerivation {
   depsBuildBuild = [ buildPackages.stdenv.cc ];
 
   makeFlags = [
-    "ARCH=${stdenv.hostPlatform.parsed.cpu.name}"
+    "ARCH=${stdenv.hostPlatform.linuxArch}"
+    "TARGET_ARCH=${stdenv.hostPlatform.linuxArch}"
     "VERBOSE=1"
   ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
     "CROSS=${stdenv.cc.targetPrefix}"
@@ -93,7 +96,7 @@ stdenv.mkDerivation {
 
   installPhase = ''
     mkdir -p $out
-    make PREFIX=$out VERBOSE=1 install
+    make $makeFlags PREFIX=$out VERBOSE=1 install
     (cd $out/include && ln -s $(ls -d ${linuxHeaders}/include/* | grep -v "scsi$") .)
     # libpthread.so may not exist, so I do || true
     sed -i s@/lib/@$out/lib/@g $out/lib/libc.so $out/lib/libpthread.so || true
@@ -109,6 +112,7 @@ stdenv.mkDerivation {
     description = "A small implementation of the C library";
     maintainers = with maintainers; [ rasendubi ];
     license = licenses.lgpl2;
-    platforms = intersectLists platforms.linux platforms.x86; # fails to build on ARM
+    platforms = platforms.linux;
+    broken = stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64;
   };
 }
diff --git a/pkgs/os-specific/linux/udisks/2-default.nix b/pkgs/os-specific/linux/udisks/2-default.nix
index 7be729f4ac8d6..e5a5ff971a35b 100644
--- a/pkgs/os-specific/linux/udisks/2-default.nix
+++ b/pkgs/os-specific/linux/udisks/2-default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, substituteAll, libtool, pkg-config, gettext, gnused
+{ lib, stdenv, fetchFromGitHub, substituteAll, libtool, pkg-config, gettext, gnused
 , gtk-doc, acl, systemd, glib, libatasmart, polkit, coreutils, bash, which
 , expat, libxslt, docbook_xsl, util-linux, mdadm, libgudev, libblockdev, parted
 , gobject-introspection, docbook_xml_dtd_412, docbook_xml_dtd_43, autoconf, automake
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "udisks";
-  version = "2.8.4";
+  version = "2.9.4";
 
   src = fetchFromGitHub {
     owner = "storaged-project";
     repo = "udisks";
     rev = "${pname}-${version}";
-    sha256 = "01wx2x8xyal595dhdih7rva2bz7gqzgwdp56gi0ikjdzayx17wcf";
+    sha256 = "sha256-MYQztzIyp5kh9t1bCIlj08/gaOmZfuu/ZOwo3F+rZiw=";
   };
 
   outputs = [ "out" "man" "dev" ] ++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) "devdoc";
@@ -37,17 +37,11 @@ stdenv.mkDerivation rec {
         xfsprogs ntfs3g parted util-linux
       ];
     })
-
-    # Fix tests: https://github.com/storaged-project/udisks/issues/724
-    (fetchpatch {
-      url = "https://github.com/storaged-project/udisks/commit/60a0c1c967821d317046d9494e45b9a8e4e7a1c1.patch";
-      sha256 = "0rlgqsxn7rb074x6ivm0ya5lywc4llifj5br0zr31mwwckv7hsdm";
-    })
   ];
 
   nativeBuildInputs = [
     autoconf automake pkg-config libtool gettext which gobject-introspection
-    gtk-doc libxslt docbook_xml_dtd_412 docbook_xml_dtd_43 docbook_xsl
+    gtk-doc libxslt docbook_xml_dtd_412 docbook_xml_dtd_43 docbook_xsl util-linux
   ];
 
   postPatch = lib.optionalString stdenv.hostPlatform.isMusl ''
diff --git a/pkgs/os-specific/linux/udisks/fix-paths.patch b/pkgs/os-specific/linux/udisks/fix-paths.patch
index c2744c3b42e14..215df565eccdd 100644
--- a/pkgs/os-specific/linux/udisks/fix-paths.patch
+++ b/pkgs/os-specific/linux/udisks/fix-paths.patch
@@ -1,16 +1,20 @@
+diff --git a/Makefile.am b/Makefile.am
+index 56922b79..697f8c6e 100644
 --- a/Makefile.am
 +++ b/Makefile.am
 @@ -1,6 +1,6 @@
  ## Process this file with automake to produce Makefile.in
  
--SHELL = /bin/bash
+-SHELL = @BASH@
 +SHELL = @bash@
  .SHELLFLAGS = -o pipefail -c
  
  PYTHON ?= python3
+diff --git a/data/80-udisks2.rules b/data/80-udisks2.rules
+index 39bfa28b..ee1ca90a 100644
 --- a/data/80-udisks2.rules
 +++ b/data/80-udisks2.rules
-@@ -17,9 +17,9 @@
+@@ -17,9 +17,9 @@ ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="?*", GOTO="udisks_probe_end"
  #
  # TODO: file bug against mdadm(8) to have --export-prefix option that can be used with e.g. UDISKS_MD_MEMBER
  #
@@ -22,17 +26,37 @@
  
  LABEL="udisks_probe_end"
  
+diff --git a/modules/zram/data/udisks2-zram-setup@.service.in b/modules/zram/data/udisks2-zram-setup@.service.in
+index ac868e84..03fdd887 100644
+--- a/modules/zram/data/udisks2-zram-setup@.service.in
++++ b/modules/zram/data/udisks2-zram-setup@.service.in
+@@ -8,7 +8,7 @@ Requires=dev-%i.device
+ Type=oneshot
+ RemainAfterExit=no
+ EnvironmentFile=-@zramconfdir@/%i
+-ExecStart=-/bin/sh -c 'if [ -n "$ZRAM_NUM_STR" ]; then echo "$ZRAM_NUM_STR" > /sys/class/block/%i/max_comp_streams; fi'
+-ExecStart=-/bin/sh -c 'if [ -n "$ZRAM_DEV_SIZE" ]; then echo "$ZRAM_DEV_SIZE" > /sys/class/block/%i/disksize; fi'
+-ExecStart=-/bin/sh -c 'if [ "$SWAP" = "y" ]; then mkswap /dev/%i && swapon /dev/%i; fi'
+-# ExecStop=-/bin/sh -c 'echo 1 > /sys/class/block/%i/reset'
++ExecStart=-@sh@ -c 'if [ -n "$ZRAM_NUM_STR" ]; then echo "$ZRAM_NUM_STR" > /sys/class/block/%i/max_comp_streams; fi'
++ExecStart=-@sh@ -c 'if [ -n "$ZRAM_DEV_SIZE" ]; then echo "$ZRAM_DEV_SIZE" > /sys/class/block/%i/disksize; fi'
++ExecStart=-@sh@ -c 'if [ "$SWAP" = "y" ]; then @mkswap@ /dev/%i && @swapon@ /dev/%i; fi'
++# ExecStop=-@sh@ -c 'echo 1 > /sys/class/block/%i/reset'
+diff --git a/modules/zram/udiskslinuxmanagerzram.c b/modules/zram/udiskslinuxmanagerzram.c
+index f647f653..df81e910 100644
 --- a/modules/zram/udiskslinuxmanagerzram.c
 +++ b/modules/zram/udiskslinuxmanagerzram.c
-@@ -250,7 +250,7 @@
+@@ -243,7 +243,7 @@ create_conf_files (guint64   num_devices,
  
        g_snprintf (tmp, 255, "zram%" G_GUINT64_FORMAT, i);
        filename = g_build_filename (PACKAGE_ZRAMCONF_DIR, tmp, NULL);
--      contents = g_strdup_printf ("#!/bin/bash\n\n"
-+      contents = g_strdup_printf ("#!@bash@\n\n"
+-      contents = g_strdup_printf ("#!/bin/bash\n"
++      contents = g_strdup_printf ("#!@bash@\n"
+                                   "# UDisks2 managed ZRAM configuration\n\n"
                                    "ZRAM_NUM_STR=%" G_GUINT64_FORMAT "\n"
                                    "ZRAM_DEV_SIZE=%" G_GUINT64_FORMAT "\n"
-                                   "SWAP=n\n",
+diff --git a/src/tests/install-udisks/runtest.sh b/src/tests/install-udisks/runtest.sh
+index e7df4ed2..ab4356d9 100644
 --- a/src/tests/install-udisks/runtest.sh
 +++ b/src/tests/install-udisks/runtest.sh
 @@ -1,4 +1,4 @@
@@ -41,18 +65,11 @@
  # vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  #
+diff --git a/src/tests/integration-test b/src/tests/integration-test
+index 4499a6a9..8b711f95 100755
 --- a/src/tests/integration-test
 +++ b/src/tests/integration-test
-@@ -414,7 +414,7 @@
-                 f.write('KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", '
-                         'ATTRS{model}=="scsi_debug*", '
-                         'ENV{ID_CDROM_MEDIA}=="?*", '
--                        'IMPORT{program}="/sbin/blkid -o udev -p -u noraid $tempnode"\n')
-+                        'IMPORT{program}="@blkid@ -o udev -p -u noraid $tempnode"\n')
-             # reload udev
-             subprocess.call('sync; pkill --signal HUP udevd || '
-                             'pkill --signal HUP systemd-udevd',
-@@ -1079,7 +1079,7 @@
+@@ -1142,7 +1142,7 @@ class FS(UDisksTestCase):
          self.assertFalse(os.access(f, os.X_OK))
  
          f = os.path.join(mount_point, 'simple.exe')
@@ -61,7 +78,7 @@
          self.assertTrue(os.access(f, os.R_OK))
          self.assertTrue(os.access(f, os.W_OK))
          self.assertTrue(os.access(f, os.X_OK))
-@@ -1092,7 +1092,7 @@
+@@ -1155,7 +1155,7 @@ class FS(UDisksTestCase):
          self.assertFalse(os.access(f, os.X_OK))
  
          f = os.path.join(mount_point, 'subdir', 'subdir.exe')
@@ -70,6 +87,8 @@
          self.assertTrue(os.access(f, os.R_OK))
          self.assertTrue(os.access(f, os.W_OK))
          self.assertTrue(os.access(f, os.X_OK))
+diff --git a/src/tests/storadectl/runtest.sh b/src/tests/storadectl/runtest.sh
+index f03885f9..baca6a93 100644
 --- a/src/tests/storadectl/runtest.sh
 +++ b/src/tests/storadectl/runtest.sh
 @@ -1,4 +1,4 @@
@@ -78,9 +97,11 @@
  # vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  #
+diff --git a/src/tests/test.c b/src/tests/test.c
+index 3ddbdf2c..a87f960a 100644
 --- a/src/tests/test.c
 +++ b/src/tests/test.c
-@@ -71,7 +71,7 @@
+@@ -71,7 +71,7 @@ test_spawned_job_successful (void)
  {
    UDisksSpawnedJob *job;
  
@@ -89,7 +110,7 @@
    udisks_spawned_job_start (job);
    _g_assert_signal_received (job, "completed", G_CALLBACK (on_completed_expect_success), NULL);
    g_object_unref (job);
-@@ -84,10 +84,10 @@
+@@ -84,10 +84,10 @@ test_spawned_job_failure (void)
  {
    UDisksSpawnedJob *job;
  
@@ -102,7 +123,7 @@
    g_object_unref (job);
  }
  
-@@ -119,7 +119,7 @@
+@@ -119,7 +119,7 @@ test_spawned_job_cancelled_at_start (void)
  
    cancellable = g_cancellable_new ();
    g_cancellable_cancel (cancellable);
@@ -111,7 +132,7 @@
    udisks_spawned_job_start (job);
    _g_assert_signal_received (job, "completed", G_CALLBACK (on_completed_expect_failure),
                               (gpointer) "Operation was cancelled (g-io-error-quark, 19)");
-@@ -145,7 +145,7 @@
+@@ -144,7 +144,7 @@ test_spawned_job_cancelled_midway (void)
    GCancellable *cancellable;
  
    cancellable = g_cancellable_new ();
@@ -119,8 +140,8 @@
 +  job = udisks_spawned_job_new ("@sleep@ 0.5", NULL, getuid (), geteuid (), NULL, cancellable);
    udisks_spawned_job_start (job);
    g_timeout_add (10, on_timeout, cancellable); /* 10 msec */
-   g_main_loop_run (loop);
-@@ -199,7 +199,7 @@
+   _g_assert_signal_received (job, "completed", G_CALLBACK (on_completed_expect_failure),
+@@ -197,7 +197,7 @@ test_spawned_job_premature_termination (void)
  {
    UDisksSpawnedJob *job;
  
@@ -129,3 +150,6 @@
    udisks_spawned_job_start (job);
    g_object_unref (job);
  }
+-- 
+2.33.1
+
diff --git a/pkgs/os-specific/linux/udisks/force-path.patch b/pkgs/os-specific/linux/udisks/force-path.patch
index 16c7ea5322fa5..741f53544beeb 100644
--- a/pkgs/os-specific/linux/udisks/force-path.patch
+++ b/pkgs/os-specific/linux/udisks/force-path.patch
@@ -1,8 +1,9 @@
-diff -ruN udisks-2.1.0.orig/src/main.c udisks-2.1.0/src/main.c
---- udisks-2.1.0.orig/src/main.c	2013-04-02 10:43:41.629332135 +0000
-+++ udisks-2.1.0/src/main.c	2013-04-02 11:04:55.635342823 +0000
-@@ -140,8 +140,7 @@
-         }
+diff --git a/src/main.c b/src/main.c
+index b4dbf9e0..3171fa34 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -144,8 +144,7 @@ main (int    argc,
+       g_setenv("G_MESSAGES_DEBUG", "udisks", FALSE);
      }
  
 -  if (g_getenv ("PATH") == NULL)
@@ -11,3 +12,6 @@ diff -ruN udisks-2.1.0.orig/src/main.c udisks-2.1.0/src/main.c
  
    udisks_notice ("udisks daemon version %s starting", PACKAGE_VERSION);
  
+-- 
+2.33.1
+
diff --git a/pkgs/os-specific/linux/util-linux/default.nix b/pkgs/os-specific/linux/util-linux/default.nix
index 7ab2489f5e8ae..b3536e038f0bb 100644
--- a/pkgs/os-specific/linux/util-linux/default.nix
+++ b/pkgs/os-specific/linux/util-linux/default.nix
@@ -1,15 +1,18 @@
 { lib, stdenv, fetchurl, pkg-config, zlib, shadow, libcap_ng
 , ncurses ? null, pam, systemd ? null
 , nlsSupport ? true
+, audit ? null
 }:
 
+assert stdenv.hostPlatform.isStatic -> audit != null;
+
 stdenv.mkDerivation rec {
   pname = "util-linux";
-  version = "2.36.2";
+  version = "2.37.2";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/util-linux/v${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0psc0asjp1rmfx1j7468zfnk9nphlphybw2n8dcl74v8v2lnnlgp";
+    sha256 = "sha256-agdkwarn+2B++KbdLA9sR9Xl/SeqCIIKuq2ewU4o6dk=";
   };
 
   patches = [
@@ -34,8 +37,6 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--localstatedir=/var"
     "--enable-write"
-    "--enable-last"
-    "--enable-mesg"
     "--disable-use-tty-group"
     "--enable-fs-paths-default=/run/wrappers/bin:/run/current-system/sw/bin:/sbin"
     "--disable-makeinstall-setuid" "--disable-makeinstall-chown"
@@ -59,7 +60,17 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs =
     [ zlib pam libcap_ng ]
-    ++ lib.filter (p: p != null) [ ncurses systemd ];
+    ++ lib.filter (p: p != null) [ ncurses systemd ]
+    # not sure how util-linux is linking with linux-pam,
+    # probably just with a simplistic -lpam.
+    # linux-pam doesn't seem to have a .pc file so I can't
+    # add -laudit to the Requires.private.
+    # libaudit is also needed directly anyway cf login-utils/login.c
+    # and sys-utils/hwclock.c, not sure how we got it working
+    # without audit on dynamic builds.
+    ++ lib.optionals stdenv.hostPlatform.isStatic [ audit ];
+
+  NIX_CFLAGS_LINK = lib.optionalString stdenv.hostPlatform.isStatic "-laudit";
 
   doCheck = false; # "For development purpose only. Don't execute on production system!"
 
diff --git a/pkgs/os-specific/linux/v86d/default.nix b/pkgs/os-specific/linux/v86d/default.nix
index 254abb5838e8d..dbc98344c5ec0 100644
--- a/pkgs/os-specific/linux/v86d/default.nix
+++ b/pkgs/os-specific/linux/v86d/default.nix
@@ -5,14 +5,16 @@
 , klibc
 }:
 
-stdenv.mkDerivation rec {
-  name = "v86d-${version}-${kernel.version}";
-  version = "0.1.10";
+let
+  pversion = "0.1.10";
+in stdenv.mkDerivation rec {
+  pname = "v86d";
+  version = "${pversion}-${kernel.version}";
 
   src = fetchFromGitHub {
     owner = "mjanusz";
     repo = "v86d";
-    rev = "v86d-${version}";
+    rev = "v86d-${pversion}";
     hash = "sha256-95LRzVbO/DyddmPwQNNQ290tasCGoQk7FDHlst6LkbA=";
   };
 
diff --git a/pkgs/os-specific/linux/vendor-reset/default.nix b/pkgs/os-specific/linux/vendor-reset/default.nix
index 8f1bde7ecbd53..e1395bd33c077 100644
--- a/pkgs/os-specific/linux/vendor-reset/default.nix
+++ b/pkgs/os-specific/linux/vendor-reset/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub, kernel, lib }:
 
 stdenv.mkDerivation rec {
-  name = "vendor-reset-${version}-${kernel.version}";
-  version = "unstable-2021-02-16";
+  pname = "vendor-reset";
+  version = "unstable-2021-02-16-${kernel.version}";
 
   src = fetchFromGitHub {
     owner = "gnif";
diff --git a/pkgs/os-specific/linux/virtualbox/default.nix b/pkgs/os-specific/linux/virtualbox/default.nix
index f795d36207a8c..3aae58933c8f6 100644
--- a/pkgs/os-specific/linux/virtualbox/default.nix
+++ b/pkgs/os-specific/linux/virtualbox/default.nix
@@ -1,7 +1,8 @@
 { stdenv, virtualbox, kernel }:
 
 stdenv.mkDerivation {
-  name = "virtualbox-modules-${virtualbox.version}-${kernel.version}";
+  pname = "virtualbox-modules";
+  version = "${virtualbox.version}-${kernel.version}";
   src = virtualbox.modsrc;
   hardeningDisable = [
     "fortify" "pic" "stackprotector"
diff --git a/pkgs/os-specific/linux/wpa_supplicant/gui.nix b/pkgs/os-specific/linux/wpa_supplicant/gui.nix
index d2d59ba21a5ed..8ec7519bf1ad1 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/gui.nix
+++ b/pkgs/os-specific/linux/wpa_supplicant/gui.nix
@@ -1,7 +1,8 @@
 { lib, mkDerivation, fetchpatch, qtbase, qmake, inkscape, imagemagick, wpa_supplicant }:
 
 mkDerivation {
-  name = "wpa_gui-${wpa_supplicant.version}";
+  pname = "wpa_gui";
+  version = wpa_supplicant.version;
 
   inherit (wpa_supplicant) src;
 
diff --git a/pkgs/os-specific/linux/x86_energy_perf_policy/default.nix b/pkgs/os-specific/linux/x86_energy_perf_policy/default.nix
index 4b57ed4ceae5a..d636f928f2494 100644
--- a/pkgs/os-specific/linux/x86_energy_perf_policy/default.nix
+++ b/pkgs/os-specific/linux/x86_energy_perf_policy/default.nix
@@ -1,7 +1,8 @@
 { lib, stdenv, kernel }:
 
 stdenv.mkDerivation {
-  name = "x86_energy_perf_policy-${kernel.version}";
+  pname = "x86_energy_perf_policy";
+  version = kernel.version;
 
   src = kernel.src;
 
diff --git a/pkgs/os-specific/linux/xsos/default.nix b/pkgs/os-specific/linux/xsos/default.nix
new file mode 100644
index 0000000000000..56516aee8b7b8
--- /dev/null
+++ b/pkgs/os-specific/linux/xsos/default.nix
@@ -0,0 +1,52 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, makeWrapper
+, installShellFiles
+, dmidecode
+, ethtool
+, pciutils
+, multipath-tools
+, iproute2
+, sysvinit
+}:
+let
+  binPath = [
+    iproute2
+    dmidecode
+    ethtool
+    pciutils
+    multipath-tools
+    iproute2
+    sysvinit
+  ];
+in
+
+stdenv.mkDerivation rec {
+  pname = "xsos";
+  version = "0.7.19";
+
+  src = fetchFromGitHub {
+    owner = "ryran";
+    repo = "xsos";
+    rev = "v${version}";
+    sha256 = "11cc8z3pz4gl0mwl2fc701mn4cgx50fybygx0rvs9bhvb0jnphay";
+  };
+
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -a xsos $out/bin
+    wrapProgram "$out/bin/xsos" --prefix PATH : ${lib.makeBinPath binPath}
+    installShellCompletion --bash --name xsos.bash xsos-bash-completion.bash
+  '';
+
+  meta = with lib; {
+    description = "Summarize system info from sosreports";
+    homepage = "https://github.com/ryran/xsos";
+    license = licenses.gpl3;
+    platforms = [ "i686-linux" "x86_64-linux" ];
+    maintainers = [ maintainers.nixinator ];
+  };
+}
diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index 50327bc658f2f..7341240f95afd 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -16,7 +16,7 @@
 , enablePython ? true
 
 # for determining the latest compatible linuxPackages
-, linuxPackages_5_14 ? pkgs.linuxKernel.packages.linux_5_14
+, linuxPackages_5_15 ? pkgs.linuxKernel.packages.linux_5_15
 }:
 
 with lib;
@@ -46,7 +46,7 @@ let
       name = "zfs-${configFile}-${version}${optionalString buildKernel "-${kernel.version}"}";
 
       src = fetchFromGitHub {
-        owner = "zfsonlinux";
+        owner = "openzfs";
         repo = "zfs";
         inherit rev sha256;
       };
@@ -215,28 +215,28 @@ in {
   # to be adapted
   zfsStable = common {
     # check the release notes for compatible kernels
-    kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.15";
-    latestCompatibleLinuxPackages = linuxPackages_5_14;
+    kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.16";
+    latestCompatibleLinuxPackages = linuxPackages_5_15;
 
     # this package should point to the latest release.
-    version = "2.1.1";
+    version = "2.1.2";
 
-    sha256 = "sha256-UUuJa5w/GsEvsgH/BnXFsP/dsOt9wwmPqKzDxLPrhiY=";
+    sha256 = "sha256-7oSFZlmjCr+egImIVf429GrFOKn3L3r4SMnK3LHHmL8=";
   };
 
   zfsUnstable = common {
     # check the release notes for compatible kernels
-    kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.15";
-    latestCompatibleLinuxPackages = linuxPackages_5_14;
+    kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.16";
+    latestCompatibleLinuxPackages = linuxPackages_5_15;
 
     # 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.1.1";
+    version = "2.1.2";
     # rev = "0000000000000000000000000000000000000000";
 
-    sha256 = "sha256-UUuJa5w/GsEvsgH/BnXFsP/dsOt9wwmPqKzDxLPrhiY=";
+    sha256 = "sha256-7oSFZlmjCr+egImIVf429GrFOKn3L3r4SMnK3LHHmL8=";
 
     isUnstable = true;
   };
diff --git a/pkgs/os-specific/linux/zsa-udev-rules/default.nix b/pkgs/os-specific/linux/zsa-udev-rules/default.nix
index ac69dc13b4746..3dfc2354fae38 100644
--- a/pkgs/os-specific/linux/zsa-udev-rules/default.nix
+++ b/pkgs/os-specific/linux/zsa-udev-rules/default.nix
@@ -1,18 +1,17 @@
 { lib, stdenv, fetchFromGitHub }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "zsa-udev-rules";
-  version = "unstable-2020-12-16";
+  version = "2.1.3";
 
-  # TODO: use version and source from nixpkgs/pkgs/development/tools/wally-cli/default.nix after next release
   src = fetchFromGitHub {
     owner = "zsa";
     repo = "wally";
-    rev = "e5dde3c700beab39fb941c6941e55535bf9b2af6";
-    sha256 = "0pkybi32r1hrmpa1mc8qlzhv7xy5n5rr5ah25lbr0cipp1bda417";
+    rev = "${version}-linux";
+    sha256 = "mZzXKFKlO/jAitnqzfvmIHp46A+R3xt2gOhVC3qN6gM=";
   };
 
-  # it only installs files
+  # Only copies udevs rules
   dontConfigure = true;
   dontBuild = true;
   dontFixup = true;
diff --git a/pkgs/os-specific/solo5/default.nix b/pkgs/os-specific/solo5/default.nix
index 71584aff77602..d45a2f0665de3 100644
--- a/pkgs/os-specific/solo5/default.nix
+++ b/pkgs/os-specific/solo5/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, pkg-config, libseccomp, util-linux, qemu }:
 
 let
-  version = "0.6.8";
+  version = "0.6.9";
   # list of all theoretically available targets
   targets = [
     "genode"
@@ -19,9 +19,8 @@ in stdenv.mkDerivation {
   buildInputs = lib.optional (stdenv.hostPlatform.isLinux) libseccomp;
 
   src = fetchurl {
-    url =
-      "https://github.com/Solo5/solo5/releases/download/v${version}/solo5-v${version}.tar.gz";
-    sha256 = "sha256-zrxNCXJIuEbtE3YNRK8Bxu2koHsQkcF+xItoIyhj9Uc=";
+    url = "https://github.com/Solo5/solo5/releases/download/v${version}/solo5-v${version}.tar.gz";
+    sha256 = "03lvk9mab3yxrmi73wrvvhykqcydjrsda0wj6aasnjm5lx9jycpr";
   };
 
   hardeningEnable = [ "pie" ];
diff --git a/pkgs/os-specific/windows/pthread-w32/default.nix b/pkgs/os-specific/windows/pthread-w32/default.nix
index de909828f7a24..da0fe569a4800 100644
--- a/pkgs/os-specific/windows/pthread-w32/default.nix
+++ b/pkgs/os-specific/windows/pthread-w32/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
     description = "POSIX threads library for Windows";
     homepage = "https://sourceware.org/pthreads-win32";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ yegortimoshenko ];
+    maintainers = with maintainers; [ yana ];
     platforms = platforms.windows;
   };
 }
diff --git a/pkgs/servers/adguardhome/bins.nix b/pkgs/servers/adguardhome/bins.nix
index 2489bd7a79d4c..45de659f38185 100644
--- a/pkgs/servers/adguardhome/bins.nix
+++ b/pkgs/servers/adguardhome/bins.nix
@@ -1,19 +1,19 @@
 { fetchurl, fetchzip }:
 {
 "x86_64-darwin" = fetchzip {
-  sha256 = "sha256-ec1l4KxKJH4Iwg9hW+xlxLADGLN1vParYaWIw7nCfKA=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.106.3/AdGuardHome_darwin_amd64.zip";
+  sha256 = "sha256-vRfKVjFFy4cO/TrA+wEFYp6jcJSB/QDU3if0FDdYu+M=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.0/AdGuardHome_darwin_amd64.zip";
 };
 "i686-linux" = fetchurl {
-  sha256 = "sha256-9aGyC76WyzwHlAkR72kuNcd/68XdWWC3gfT92IuW2LY=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.106.3/AdGuardHome_linux_386.tar.gz";
+  sha256 = "sha256-gWylZgCk+bGf1h2lTX2gRnW39P7C2ks0LH7anJW6JKw=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.0/AdGuardHome_linux_386.tar.gz";
 };
 "x86_64-linux" = fetchurl {
-  sha256 = "sha256-qJMymTxmoPlIhuJD6zFBWWwzz+CFx+9+MOrRiFtA4IY=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.106.3/AdGuardHome_linux_amd64.tar.gz";
+  sha256 = "sha256-g2DIeXwaqTTfshYyyDNHbOU57YUbuxXDKJHFqKFrqzw=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.0/AdGuardHome_linux_amd64.tar.gz";
 };
 "aarch64-linux" = fetchurl {
-  sha256 = "sha256-Z5hekNxeemqWsMu7n3UTmYCzdKp5Xsp9ku0G2LOqC80=";
-  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.106.3/AdGuardHome_linux_arm64.tar.gz";
+  sha256 = "sha256-PovduGRcfSUbhqX1cxRgMknN8mWJekjjpB0b1TE1//g=";
+  url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.0/AdGuardHome_linux_arm64.tar.gz";
 };
 }
diff --git a/pkgs/servers/adguardhome/default.nix b/pkgs/servers/adguardhome/default.nix
index 848e259256b96..9940decc0bc90 100644
--- a/pkgs/servers/adguardhome/default.nix
+++ b/pkgs/servers/adguardhome/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "adguardhome";
-  version = "0.106.3";
+  version = "0.107.0";
 
   src = (import ./bins.nix { inherit fetchurl fetchzip; }).${stdenv.hostPlatform.system};
 
diff --git a/pkgs/servers/apache-kafka/default.nix b/pkgs/servers/apache-kafka/default.nix
index e2db02f0def2d..d086c2b922c3b 100644
--- a/pkgs/servers/apache-kafka/default.nix
+++ b/pkgs/servers/apache-kafka/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "http://kafka.apache.org";
+    homepage = "https://kafka.apache.org";
     description = "A high-throughput distributed messaging system";
     license = licenses.asl20;
     maintainers = [ maintainers.ragge ];
diff --git a/pkgs/servers/caddy/default.nix b/pkgs/servers/caddy/default.nix
index 50c95c8f8da10..46ce2a94a6b39 100644
--- a/pkgs/servers/caddy/default.nix
+++ b/pkgs/servers/caddy/default.nix
@@ -1,20 +1,35 @@
 { lib, buildGoModule, fetchFromGitHub, nixosTests }:
-
-buildGoModule rec {
-  pname = "caddy";
+let
   version = "2.4.6";
+  dist = fetchFromGitHub {
+    owner = "caddyserver";
+    repo = "dist";
+    rev = "v${version}";
+    sha256 = "sha256-EXs+LNb87RWkmSWvs8nZIVqRJMutn+ntR241gqI7CUg=";
+  };
+in
+buildGoModule {
+  pname = "caddy";
+  inherit version;
 
   subPackages = [ "cmd/caddy" ];
 
   src = fetchFromGitHub {
     owner = "caddyserver";
-    repo = pname;
+    repo = "caddy";
     rev = "v${version}";
     sha256 = "sha256-xNCxzoNpXkj8WF9+kYJfO18ux8/OhxygkGjA49+Q4vY=";
   };
 
   vendorSha256 = "sha256-NomgHqIiugSISbEtvIbJDn5GRn6Dn72adLPkAvLbUQU=";
 
+  postInstall = ''
+    install -Dm644 ${dist}/init/caddy.service ${dist}/init/caddy-api.service -t $out/lib/systemd/system
+
+    substituteInPlace $out/lib/systemd/system/caddy.service --replace "/usr/bin/caddy" "$out/bin/caddy"
+    substituteInPlace $out/lib/systemd/system/caddy-api.service --replace "/usr/bin/caddy" "$out/bin/caddy"
+  '';
+
   passthru.tests = { inherit (nixosTests) caddy; };
 
   meta = with lib; {
diff --git a/pkgs/servers/calibre-web/default.nix b/pkgs/servers/calibre-web/default.nix
index a4d08dae2c0dc..8b8e93bc27a03 100644
--- a/pkgs/servers/calibre-web/default.nix
+++ b/pkgs/servers/calibre-web/default.nix
@@ -7,23 +7,15 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "calibre-web";
-  version = "0.6.13";
+  version = "0.6.14";
 
   src = fetchFromGitHub {
     owner = "janeczku";
     repo = "calibre-web";
     rev = version;
-    sha256 = "sha256-zU7ujvFPi4UaaEglIK3YX3TJxBME35NEKKblnJRt0tM=";
+    sha256 = "sha256-rR5pUB3A0WNQxq7ZJ6ykua7hMlzs49aMmVbBUOkOVfA=";
   };
 
-  prePatch = ''
-    substituteInPlace setup.cfg \
-      --replace "requests>=2.11.1,<2.25.0" "requests" \
-      --replace "cps = calibreweb:main" "calibre-web = calibreweb:main" \
-      --replace "PyPDF3>=1.0.0,<1.0.4" "PyPDF3>=1.0.0" \
-      --replace "unidecode>=0.04.19,<1.3.0" "unidecode>=0.04.19"
-  '';
-
   patches = [
     # default-logger.patch switches default logger to /dev/stdout. Otherwise calibre-web tries to open a file relative
     # to its location, which can't be done as the store is read-only. Log file location can later be configured using UI
@@ -42,6 +34,13 @@ python3.pkgs.buildPythonApplication rec {
     mkdir -p src/calibreweb
     mv cps.py src/calibreweb/__init__.py
     mv cps src/calibreweb
+
+    substituteInPlace setup.cfg \
+      --replace "requests>=2.11.1,<2.25.0" "requests" \
+      --replace "cps = calibreweb:main" "calibre-web = calibreweb:main" \
+      --replace "PyPDF3>=1.0.0,<1.0.4" "PyPDF3>=1.0.0" \
+      --replace "unidecode>=0.04.19,<1.3.0" "unidecode>=0.04.19" \
+      --replace "flask-wtf>=0.14.2,<0.16.0" "flask-wtf>=0.14.2"
   '';
 
   # Upstream repo doesn't provide any tests.
@@ -52,6 +51,7 @@ python3.pkgs.buildPythonApplication rec {
     flask-babel
     flask_login
     flask_principal
+    flask_wtf
     iso-639
     lxml
     pypdf3
diff --git a/pkgs/servers/clickhouse/default.nix b/pkgs/servers/clickhouse/default.nix
index dc9ec63ce9087..be067e477a830 100644
--- a/pkgs/servers/clickhouse/default.nix
+++ b/pkgs/servers/clickhouse/default.nix
@@ -8,7 +8,7 @@
 
 stdenv.mkDerivation rec {
   pname = "clickhouse";
-  version = "21.8.8.29";
+  version = "21.8.12.29";
 
   broken = stdenv.buildPlatform.is32bit; # not supposed to work on 32-bit https://github.com/ClickHouse/ClickHouse/pull/23959#issuecomment-835343685
 
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     repo   = "ClickHouse";
     rev    = "v${version}-lts";
     fetchSubmodules = true;
-    sha256 = "1hvsnh3fzbh1vl7cki0sbpd5ar6cxdc7k3mfqby0xxv3zfywmmr2";
+    sha256 = "1qqacb7v7mhr9k162yll8mcbh0cxa347f5hypz0a8l54v1dz5fyl";
   };
 
   nativeBuildInputs = [ cmake libtool llvm-bintools ninja ];
diff --git a/pkgs/servers/computing/slurm/default.nix b/pkgs/servers/computing/slurm/default.nix
index 8331f888b4674..c1e092dedcb8d 100644
--- a/pkgs/servers/computing/slurm/default.nix
+++ b/pkgs/servers/computing/slurm/default.nix
@@ -9,7 +9,7 @@
 
 stdenv.mkDerivation rec {
   pname = "slurm";
-  version = "21.08.3.1";
+  version = "21.08.5.1";
 
   # N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
   # because the latter does not keep older releases.
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     repo = "slurm";
     # The release tags use - instead of .
     rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}";
-    sha256 = "0riynmdmq44hqjdfd8acvc14miy5yqbwvsmbm1xcgsjdxjan8l2z";
+    sha256 = "sha256-2ctJnCZCziPnfWeDNvvcE0tPGVdhzjjhqMWJhWhitGo=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/servers/computing/storm/default.nix b/pkgs/servers/computing/storm/default.nix
index 07c636b6e5bad..146db2ea5de52 100644
--- a/pkgs/servers/computing/storm/default.nix
+++ b/pkgs/servers/computing/storm/default.nix
@@ -7,12 +7,12 @@
 
 stdenv.mkDerivation rec {
   pname = "apache-storm";
-  version = "2.2.0";
+  version = "2.3.0";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://apache/storm/${name}/${name}.tar.gz";
-    sha256 = "0xc6lfilfkkjyds59b6c770gj21v9srzpln31c9qb3ls6hzic8gn";
+    sha256 = "sha256-ScIlWyZjPG/ZY5nFIDOeRZ/NopoOfm0Mh3XO/P9sNjY=";
   };
 
   nativeBuildInputs = [ zip unzip ];
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   dontStrip = true;
 
   meta = with lib; {
-    homepage = "http://storm.apache.org";
+    homepage = "https://storm.apache.org/";
     description = "Distributed realtime computation system";
     license = licenses.asl20;
     maintainers = with maintainers; [ edwtjo vizanto ];
diff --git a/pkgs/servers/corosync/default.nix b/pkgs/servers/corosync/default.nix
index 9df679bf6bce1..df73fb9f48e9c 100644
--- a/pkgs/servers/corosync/default.nix
+++ b/pkgs/servers/corosync/default.nix
@@ -10,11 +10,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "corosync";
-  version = "3.1.5";
+  version = "3.1.6";
 
   src = fetchurl {
     url = "http://build.clusterlabs.org/corosync/releases/${pname}-${version}.tar.gz";
-    sha256 = "sha256-O7o+PtgasrCAcRsu4kEC+7530GCwXUvi2jEAgghPC7w=";
+    sha256 = "sha256-ym7TK01/M+1hSvzodg/ljQ3pLGi1ddSWnrrNiS89Hic=";
   };
 
   nativeBuildInputs = [ makeWrapper pkg-config ];
diff --git a/pkgs/servers/dico/default.nix b/pkgs/servers/dico/default.nix
index 13f69fcf4a353..0275046aa2526 100644
--- a/pkgs/servers/dico/default.nix
+++ b/pkgs/servers/dico/default.nix
@@ -12,8 +12,12 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
+  nativeBuildInputs = [ groff ];
+
   buildInputs =
-    [ libtool gettext zlib readline gsasl guile python3 pcre libffi groff ];
+    [ libtool gettext zlib readline gsasl guile python3 pcre libffi ];
+
+  strictDeps = true;
 
   doCheck = true;
 
diff --git a/pkgs/servers/dict/default.nix b/pkgs/servers/dict/default.nix
index 4e94b69f5124f..b35201ce1dfd1 100644
--- a/pkgs/servers/dict/default.nix
+++ b/pkgs/servers/dict/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dictd";
-  version = "1.13.0";
+  version = "1.13.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/dict/dictd-${version}.tar.gz";
-    sha256 = "1r413a78sa3mcrgddgdj1za34dj6mnd4dg66csqv2yz8fypm3fpf";
+    sha256 = "sha256-5PGmfRaJTYSUVp19yUQsFcw4wBHyuWMcfxzGInZlKhs=";
   };
 
   buildInputs = [ libmaa zlib ];
diff --git a/pkgs/servers/dns/knot-dns/default.nix b/pkgs/servers/dns/knot-dns/default.nix
index 2c731b4f1ff83..1938e9c02b660 100644
--- a/pkgs/servers/dns/knot-dns/default.nix
+++ b/pkgs/servers/dns/knot-dns/default.nix
@@ -1,15 +1,15 @@
 { lib, stdenv, fetchurl, pkg-config, gnutls, liburcu, lmdb, libcap_ng, libidn2, libunistring
 , systemd, nettle, libedit, zlib, libiconv, libintl, libmaxminddb, libbpf, nghttp2, libmnl
-, autoreconfHook, nixosTests
+, autoreconfHook, nixosTests, knot-resolver
 }:
 
 stdenv.mkDerivation rec {
   pname = "knot-dns";
-  version = "3.1.4";
+  version = "3.1.5";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-dns/knot-${version}.tar.xz";
-    sha256 = "05ebca053b4ce62205a095b6885ed1a1167c629ccac2b3c8dcc431bd2deedf70";
+    sha256 = "2da6e50b0662297d55f80e349568224e07fe88cad20bee1d2e22f54bb32da064";
   };
 
   outputs = [ "bin" "out" "dev" ];
@@ -53,7 +53,11 @@ stdenv.mkDerivation rec {
     rm -r "$out"/lib/*.la
   '';
 
-  passthru.tests = { inherit (nixosTests) knot; };
+  passthru.tests = {
+    inherit knot-resolver;
+  } // lib.optionalAttrs stdenv.isLinux {
+    inherit (nixosTests) knot;
+  };
 
   meta = with lib; {
     description = "Authoritative-only DNS server from .cz domain registry";
diff --git a/pkgs/servers/dns/knot-resolver/default.nix b/pkgs/servers/dns/knot-resolver/default.nix
index 420b09234547f..94fa36c5b03db 100644
--- a/pkgs/servers/dns/knot-resolver/default.nix
+++ b/pkgs/servers/dns/knot-resolver/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl
+{ lib, stdenv, fetchurl, fetchpatch
 # native deps.
 , runCommand, pkg-config, meson, ninja, makeWrapper
 # build+runtime deps.
@@ -17,15 +17,23 @@ lua = luajitPackages;
 
 unwrapped = stdenv.mkDerivation rec {
   pname = "knot-resolver";
-  version = "5.4.2";
+  version = "5.4.3";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-resolver/${pname}-${version}.tar.xz";
-    sha256 = "ea6a219571a752056669bae3f2c0c3ed0bec58af5ab832d505a3ec9c4063a58b";
+    sha256 = "488729eb93190336b6bca10de0d78ecb7919f77fcab105debc0a644aa7d0a506";
   };
 
   outputs = [ "out" "dev" ];
 
+  patches = [
+    (fetchpatch { # https://gitlab.nic.cz/knot/knot-resolver/-/merge_requests/1237
+      name = "console.aws.amazon.com-fix.patch";
+      url = "https://gitlab.nic.cz/knot/knot-resolver/-/commit/f4dabfbec9273703.diff";
+      sha256 = "3J+FDwNQ6CqIGo9pSzhrQZlHX99vXFDpPOBpwpCnOxs=";
+    })
+  ];
+
   # Path fixups for the NixOS service.
   postPatch = ''
     patch meson.build <<EOF
diff --git a/pkgs/servers/dns/nsd/default.nix b/pkgs/servers/dns/nsd/default.nix
index 8c64671251eaf..e9f030dac7858 100644
--- a/pkgs/servers/dns/nsd/default.nix
+++ b/pkgs/servers/dns/nsd/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nsd";
-  version = "4.3.7";
+  version = "4.3.9";
 
   src = fetchurl {
     url = "https://www.nlnetlabs.nl/downloads/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-/TuexTu9Fo1Wegv83xQMlmUR/a94vVOdCRwaE8E76K0=";
+    sha256 = "sha256-UxVJ8JKJ7L0Fgp4UuzRWMpTYW57d4sYToA9ZevITXo0=";
   };
 
   prePatch = ''
diff --git a/pkgs/servers/dns/pdns-recursor/default.nix b/pkgs/servers/dns/pdns-recursor/default.nix
index 881fef7f32f19..d106e154277ad 100644
--- a/pkgs/servers/dns/pdns-recursor/default.nix
+++ b/pkgs/servers/dns/pdns-recursor/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pdns-recursor";
-  version = "4.5.6";
+  version = "4.6.0";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/pdns-recursor-${version}.tar.bz2";
-    sha256 = "004jwyg64ww6sfwlfpyfvh6vymildygwkjhkin2fsrq4h79wv2dv";
+    sha256 = "1wmwkw8x39rall3673cngz0vpgc1z5vx29qy5r6mkg5fk29ma1nz";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/servers/domoticz/default.nix b/pkgs/servers/domoticz/default.nix
index 0208e27a276ed..883b807769577 100644
--- a/pkgs/servers/domoticz/default.nix
+++ b/pkgs/servers/domoticz/default.nix
@@ -85,5 +85,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.domoticz.com/";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
+    broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/domoticz.x86_64-darwin
   };
 }
diff --git a/pkgs/servers/duckling-proxy/default.nix b/pkgs/servers/duckling-proxy/default.nix
new file mode 100644
index 0000000000000..445e78234fbba
--- /dev/null
+++ b/pkgs/servers/duckling-proxy/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule {
+  pname = "duckling-proxy";
+  version = "2021-07-23-unstable";
+
+  src = fetchFromGitHub {
+    owner = "LukeEmmet";
+    repo = "duckling-proxy";
+    rev = "e2bfd73a60d7afa43f13a9d420d514131fee8fd1";
+    sha256 = "134hnfa4f5sb1z1j5684wmqzascsrlagx8z36i1470yggb00j4hr";
+  };
+  vendorSha256 = "0wxk1a5gn9a7q2kgq11a783rl5cziipzhndgp71i365y3p1ssqyf";
+
+  meta = with lib; {
+    description = "Gemini proxy to access the Small Web";
+    homepage = "https://github.com/LukeEmmet/duckling-proxy";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kaction ];
+  };
+}
diff --git a/pkgs/servers/felix/default.nix b/pkgs/servers/felix/default.nix
index 1f355e61e4570..21f3fecb68e4e 100644
--- a/pkgs/servers/felix/default.nix
+++ b/pkgs/servers/felix/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "apache-felix";
-  version = "7.0.0";
+  version = "7.0.1";
   src = fetchurl {
     url = "mirror://apache/felix/org.apache.felix.main.distribution-${version}.tar.gz";
-    sha256 = "sha256-ea1QYUqf6m3HB17TrEQ7UEc48fl5QHQMYsN3t0T9VD4=";
+    sha256 = "sha256-WypiOdJhqKngIFVNf/XXAUDRdS8rANxWrcT846hcWTo=";
   };
   buildCommand =
   ''
diff --git a/pkgs/servers/ftp/pure-ftpd/default.nix b/pkgs/servers/ftp/pure-ftpd/default.nix
index b88d926e1db64..80bcc361a8b06 100644
--- a/pkgs/servers/ftp/pure-ftpd/default.nix
+++ b/pkgs/servers/ftp/pure-ftpd/default.nix
@@ -1,28 +1,15 @@
-{ lib, stdenv, fetchurl, openssl, fetchpatch }:
+{ lib, stdenv, fetchurl, openssl, pam, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "pure-ftpd";
-  version = "1.0.49";
+  version = "1.0.50";
 
   src = fetchurl {
     url = "https://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-${version}.tar.gz";
-    sha256 = "19cjr262n6h560fi9nm7l1srwf93k34bp8dp1c6gh90bqxcg8yvn";
+    sha256 = "08zas1kg5pnckl28gs7q29952pjfyj8rj59bq96hscqbni7gkqmb";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2020-9274.patch";
-      url = "https://github.com/jedisct1/pure-ftpd/commit/8d0d42542e2cb7a56d645fbe4d0ef436e38bcefa.patch";
-      sha256 = "1yd84p6bd4rf21hg3kqpi2a02cac6dz5ag4xx3c2dl5vbzhr5a8k";
-    })
-    (fetchpatch {
-      name = "CVE-2020-9365.patch";
-      url = "https://github.com/jedisct1/pure-ftpd/commit/bf6fcd4935e95128cf22af5924cdc8fe5c0579da.patch";
-      sha256 = "003klx7j82qf92qr1dxg32v5r2bhhywplynd3xil1lbcd3s3mqhi";
-    })
-  ];
-
-  buildInputs = [ openssl ];
+  buildInputs = [ openssl pam ];
 
   configureFlags = [ "--with-tls" ];
 
@@ -31,6 +18,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.pureftpd.org";
     license = licenses.isc; # with some parts covered by BSD3(?)
     maintainers = [ ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/gemini/agate/default.nix b/pkgs/servers/gemini/agate/default.nix
index faaef53f164e9..2c45d7c75a4c7 100644
--- a/pkgs/servers/gemini/agate/default.nix
+++ b/pkgs/servers/gemini/agate/default.nix
@@ -24,8 +24,8 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with lib; {
-    homepage = "https://proxy.vulpes.one/gemini/qwertqwefsday.eu/agate.gmi";
-    changelog = "https://proxy.vulpes.one/gemini/qwertqwefsday.eu/agate.gmi";
+    homepage = "https://github.com/mbrubeck/agate";
+    changelog = "https://github.com/mbrubeck/agate/blob/master/CHANGELOG.md";
     description = "Very simple server for the Gemini hypertext protocol";
     longDescription = ''
       Agate is a server for the Gemini network protocol, built with the Rust
diff --git a/pkgs/servers/heisenbridge/default.nix b/pkgs/servers/heisenbridge/default.nix
index 0d1b538ceba81..0bc7bdb0bdfd0 100644
--- a/pkgs/servers/heisenbridge/default.nix
+++ b/pkgs/servers/heisenbridge/default.nix
@@ -1,29 +1,44 @@
-{ lib, fetchFromGitHub, python3Packages }:
+{ lib, fetchFromGitHub, fetchpatch, python3 }:
 
-python3Packages.buildPythonApplication rec {
+let
+  python = python3.override {
+    packageOverrides = self: super: {
+      mautrix_0_13 = self.mautrix.overridePythonAttrs (oldAttrs: rec {
+        version = "0.13.3";
+        src = oldAttrs.src.override {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "1e4a292469f3e200c182aaa5bf693a5c3834b2a0cfb3d29e4c9a1559db7740e3";
+        };
+      });
+    };
+  };
+in
+
+python.pkgs.buildPythonApplication rec {
   pname = "heisenbridge";
-  version = "1.7.0";
+  version = "1.8.2";
 
   src = fetchFromGitHub {
     owner = "hifi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-rN+qoBS9zIy5EHlFQxgAlcz9haoYJNMKJ2wlS46UOi0=";
+    sha256 = "173prcd56rwlxjxlw67arnm12k1l317xi5s6m7jhmp8zbbrj5vwr";
   };
 
   postPatch = ''
     echo "${version}" > heisenbridge/version.txt
   '';
 
-  propagatedBuildInputs = with python3Packages; [
+  propagatedBuildInputs = with python.pkgs; [
     aiohttp
     irc
-    mautrix
+    mautrix_0_13
     python-socks
     pyyaml
   ];
 
-  checkInputs = with python3Packages; [
+  checkInputs = with python.pkgs; [
     pytestCheckHook
   ];
 
diff --git a/pkgs/servers/hitch/default.nix b/pkgs/servers/hitch/default.nix
index 91b4e1d283ef8..22cfeb07300c5 100644
--- a/pkgs/servers/hitch/default.nix
+++ b/pkgs/servers/hitch/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, docutils, libev, openssl, pkg-config, nixosTests }:
 stdenv.mkDerivation rec {
-  version = "1.7.0";
+  version = "1.7.2";
   pname = "hitch";
 
   src = fetchurl {
     url = "https://hitch-tls.org/source/${pname}-${version}.tar.gz";
-    sha256 = "1i75giwyr66ip8xsvk3gg5xdbxnmcabgxz8dqi06c58mw7qzhzn9";
+    sha256 = "sha256-3NZcvsYofGIqWjF9Xzfh6lUm2qk/tNso9CBvyZEaF4U=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index a5526e92015de..454b54886a88d 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 = "2021.11.5";
+  version = "2021.12.7";
   components = {
     "abode" = ps: with ps; [ abodepy ];
     "accuweather" = ps: with ps; [ accuweather ];
@@ -77,6 +77,7 @@
     "azure_event_hub" = ps: with ps; [ azure-eventhub ];
     "azure_service_bus" = ps: with ps; [ azure-servicebus ];
     "baidu" = ps: with ps; [ ]; # missing inputs: baidu-aip
+    "balboa" = ps: with ps; [ pybalboa ];
     "bayesian" = ps: with ps; [ ];
     "bbb_gpio" = ps: with ps; [ ]; # missing inputs: Adafruit_BBIO
     "bbox" = ps: with ps; [ ]; # missing inputs: pybbox
@@ -112,6 +113,7 @@
     "bt_home_hub_5" = ps: with ps; [ ]; # missing inputs: bthomehub5-devicelist
     "bt_smarthub" = ps: with ps; [ ]; # missing inputs: btsmarthub_devicelist
     "buienradar" = ps: with ps; [ buienradar ];
+    "button" = ps: with ps; [ ];
     "caldav" = ps: with ps; [ caldav ];
     "calendar" = ps: with ps; [ aiohttp-cors ];
     "camera" = ps: with ps; [ pyturbojpeg aiohttp-cors ];
@@ -166,7 +168,7 @@
     "default_config" = ps: with ps; [ pynacl pyturbojpeg aiodiscover aiohttp-cors async-upnp-client emoji hass-nabucasa home-assistant-frontend ifaddr pillow pyserial pyudev scapy sqlalchemy zeroconf ];
     "delijn" = ps: with ps; [ pydelijn ];
     "deluge" = ps: with ps; [ deluge-client ];
-    "demo" = ps: with ps; [ aiohttp-cors ];
+    "demo" = ps: with ps; [ aiohttp-cors sqlalchemy ];
     "denon" = ps: with ps; [ ];
     "denonavr" = ps: with ps; [ denonavr ];
     "derivative" = ps: with ps; [ ];
@@ -175,9 +177,10 @@
     "device_sun_light_trigger" = ps: with ps; [ aiohttp-cors pillow ];
     "device_tracker" = ps: with ps; [ ];
     "devolo_home_control" = ps: with ps; [ aiohttp-cors devolo-home-control-api ifaddr zeroconf ];
+    "devolo_home_network" = ps: with ps; [ devolo-plc-api ];
     "dexcom" = ps: with ps; [ pydexcom ];
     "dhcp" = ps: with ps; [ aiodiscover scapy ];
-    "dht" = ps: with ps; [ ]; # missing inputs: adafruit-circuitpython-dht
+    "dht" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-dht
     "dialogflow" = ps: with ps; [ aiohttp-cors ];
     "digital_ocean" = ps: with ps; [ digital-ocean ];
     "digitalloggers" = ps: with ps; [ ]; # missing inputs: dlipower
@@ -204,7 +207,6 @@
     "dwd_weather_warnings" = ps: with ps; [ dwdwfsapi ];
     "dweet" = ps: with ps; [ ]; # missing inputs: dweepy
     "dynalite" = ps: with ps; [ ]; # missing inputs: dynalite_devices
-    "dyson" = ps: with ps; [ aiohttp-cors ifaddr libpurecool zeroconf ];
     "eafm" = ps: with ps; [ aioeafm ];
     "ebox" = ps: with ps; [ ]; # missing inputs: pyebox
     "ebusd" = ps: with ps; [ ]; # missing inputs: ebusdpy
@@ -246,6 +248,7 @@
     "etherscan" = ps: with ps; [ ]; # missing inputs: python-etherscan-api
     "eufy" = ps: with ps; [ ]; # missing inputs: lakeside
     "everlights" = ps: with ps; [ pyeverlights ];
+    "evil_genius_labs" = ps: with ps; [ pyevilgenius ];
     "evohome" = ps: with ps; [ evohome-async ];
     "ezviz" = ps: with ps; [ ha-ffmpeg pyezviz ];
     "faa_delays" = ps: with ps; [ faadelays ];
@@ -370,7 +373,7 @@
     "homekit_controller" = ps: with ps; [ aiohomekit aiohttp-cors ifaddr zeroconf ];
     "homematic" = ps: with ps; [ pyhomematic ];
     "homematicip_cloud" = ps: with ps; [ homematicip ];
-    "homeworks" = ps: with ps; [ ]; # missing inputs: pyhomeworks
+    "homeworks" = ps: with ps; [ pyhomeworks ];
     "honeywell" = ps: with ps; [ somecomfort ];
     "horizon" = ps: with ps; [ ]; # missing inputs: horimote
     "hp_ilo" = ps: with ps; [ python-hpilo ];
@@ -411,7 +414,6 @@
     "intent_script" = ps: with ps; [ ];
     "intesishome" = ps: with ps; [ pyintesishome ];
     "ios" = ps: with ps; [ aiohttp-cors ifaddr zeroconf ];
-    "iota" = ps: with ps; [ ]; # missing inputs: pyota
     "iotawatt" = ps: with ps; [ iotawattpy ];
     "iperf3" = ps: with ps; [ ]; # missing inputs: iperf3
     "ipma" = ps: with ps; [ pyipma ];
@@ -424,6 +426,7 @@
     "itach" = ps: with ps; [ ]; # missing inputs: pyitachip2ir
     "itunes" = ps: with ps; [ ];
     "izone" = ps: with ps; [ python-izone ];
+    "jellyfin" = ps: with ps; [ jellyfin-apiclient-python ];
     "jewish_calendar" = ps: with ps; [ hdate ];
     "joaoapps_join" = ps: with ps; [ ]; # missing inputs: python-join-api
     "juicenet" = ps: with ps; [ python-juicenet ];
@@ -476,7 +479,6 @@
     "london_air" = ps: with ps; [ ];
     "london_underground" = ps: with ps; [ ]; # missing inputs: london-tube-status
     "lookin" = ps: with ps; [ aiolookin ];
-    "loopenergy" = ps: with ps; [ ]; # missing inputs: pyloopenergy
     "lovelace" = ps: with ps; [ ];
     "luci" = ps: with ps; [ openwrt-luci-rpc ];
     "luftdaten" = ps: with ps; [ luftdaten ];
@@ -519,7 +521,7 @@
     "microsoft_face_identify" = ps: with ps; [ pyturbojpeg aiohttp-cors ];
     "miflora" = ps: with ps; [ bluepy ]; # missing inputs: miflora
     "mikrotik" = ps: with ps; [ librouteros ];
-    "mill" = ps: with ps; [ millheater ];
+    "mill" = ps: with ps; [ mill-local millheater ];
     "min_max" = ps: with ps; [ ];
     "minecraft_server" = ps: with ps; [ aiodns getmac mcstatus ];
     "minio" = ps: with ps; [ minio ];
@@ -547,7 +549,6 @@
     "mutesync" = ps: with ps; [ mutesync ];
     "mvglive" = ps: with ps; [ PyMVGLive ];
     "my" = ps: with ps; [ aiohttp-cors home-assistant-frontend pillow sqlalchemy ];
-    "mychevy" = ps: with ps; [ ]; # missing inputs: mychevy
     "mycroft" = ps: with ps; [ ]; # missing inputs: mycroftapi
     "myq" = ps: with ps; [ pymyq ];
     "mysensors" = ps: with ps; [ aiohttp-cors paho-mqtt pymysensors ];
@@ -560,7 +561,7 @@
     "neato" = ps: with ps; [ aiohttp-cors pybotvac ];
     "nederlandse_spoorwegen" = ps: with ps; [ nsapi ];
     "ness_alarm" = ps: with ps; [ nessclient ];
-    "nest" = ps: with ps; [ aiohttp-cors ha-ffmpeg python-nest ]; # missing inputs: google-nest-sdm
+    "nest" = ps: with ps; [ aiohttp-cors google-nest-sdm ha-ffmpeg python-nest ];
     "netatmo" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa pyatmo ];
     "netdata" = ps: with ps; [ netdata ];
     "netgear" = ps: with ps; [ ]; # missing inputs: pynetgear
@@ -596,7 +597,7 @@
     "nzbget" = ps: with ps; [ ]; # missing inputs: pynzbgetapi
     "oasa_telematics" = ps: with ps; [ ]; # missing inputs: oasatelematics
     "obihai" = ps: with ps; [ pyobihai ];
-    "octoprint" = ps: with ps; [ ]; # missing inputs: pyoctoprintapi
+    "octoprint" = ps: with ps; [ pyoctoprintapi ];
     "oem" = ps: with ps; [ oemthermostat ];
     "ohmconnect" = ps: with ps; [ defusedxml ];
     "ombi" = ps: with ps; [ pyombi ];
@@ -682,7 +683,7 @@
     "qld_bushfire" = ps: with ps; [ georss-qld-bushfire-alert-client ];
     "qnap" = ps: with ps; [ ]; # missing inputs: qnapstats
     "qrcode" = ps: with ps; [ pillow ]; # missing inputs: pyzbar
-    "quantum_gateway" = ps: with ps; [ ]; # missing inputs: quantum-gateway
+    "quantum_gateway" = ps: with ps; [ quantum-gateway ];
     "qvr_pro" = ps: with ps; [ ]; # missing inputs: pyqvrpro
     "qwikswitch" = ps: with ps; [ ]; # missing inputs: pyqwikswitch
     "rachio" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa rachiopy ];
@@ -695,6 +696,7 @@
     "random" = ps: with ps; [ ];
     "raspihats" = ps: with ps; [ smbus-cffi ]; # missing inputs: raspihats
     "raspyrfm" = ps: with ps; [ ]; # missing inputs: raspyrfm-client
+    "rdw" = ps: with ps; [ vehicle ];
     "recollect_waste" = ps: with ps; [ aiorecollect ];
     "recorder" = ps: with ps; [ sqlalchemy ];
     "recswitch" = ps: with ps; [ ]; # missing inputs: pyrecswitch
@@ -704,11 +706,12 @@
     "remote" = ps: with ps; [ ];
     "remote_rpi_gpio" = ps: with ps; [ ]; # missing inputs: gpiozero
     "renault" = ps: with ps; [ renault-api ];
-    "repetier" = ps: with ps; [ ]; # missing inputs: pyrepetier
+    "repetier" = ps: with ps; [ ]; # missing inputs: pyrepetierng
     "rest" = ps: with ps; [ jsonpath xmltodict ];
     "rest_command" = ps: with ps; [ ];
     "rflink" = ps: with ps; [ rflink ];
     "rfxtrx" = ps: with ps; [ pyrfxtrx ];
+    "ridwell" = ps: with ps; [ aioridwell ];
     "ring" = ps: with ps; [ ha-ffmpeg ring-doorbell ];
     "ripple" = ps: with ps; [ ]; # missing inputs: python-ripple-api
     "risco" = ps: with ps; [ pyrisco ];
@@ -852,6 +855,7 @@
     "tado" = ps: with ps; [ python-tado ];
     "tag" = ps: with ps; [ ];
     "tahoma" = ps: with ps; [ tahoma-api ];
+    "tailscale" = ps: with ps; [ tailscale ];
     "tank_utility" = ps: with ps; [ ]; # missing inputs: tank_utility
     "tankerkoenig" = ps: with ps; [ pytankerkoenig ];
     "tapsaff" = ps: with ps; [ ]; # missing inputs: tapsaff
@@ -867,6 +871,7 @@
     "temper" = ps: with ps; [ ]; # missing inputs: temperusb
     "template" = ps: with ps; [ ];
     "tensorflow" = ps: with ps; [ numpy pillow pycocotools tensorflow ]; # missing inputs: tf-models-official
+    "tesla_wall_connector" = ps: with ps; [ tesla-wall-connector ];
     "tfiac" = ps: with ps; [ ]; # missing inputs: pytfiac
     "thermoworks_smoke" = ps: with ps; [ stringcase ]; # missing inputs: thermoworks_smoke
     "thethingsnetwork" = ps: with ps; [ ];
@@ -883,6 +888,7 @@
     "tod" = ps: with ps; [ ];
     "todoist" = ps: with ps; [ todoist ];
     "tof" = ps: with ps; [ ]; # missing inputs: RPi.GPIO VL53L1X2
+    "tolo" = ps: with ps; [ tololib ];
     "tomato" = ps: with ps; [ ];
     "toon" = ps: with ps; [ pyturbojpeg aiohttp-cors hass-nabucasa toonapi ];
     "torque" = ps: with ps; [ aiohttp-cors ];
@@ -995,7 +1001,7 @@
     "yamaha_musiccast" = ps: with ps; [ aiohttp-cors aiomusiccast async-upnp-client ifaddr zeroconf ];
     "yandex_transport" = ps: with ps; [ aioymaps ];
     "yandextts" = ps: with ps; [ ];
-    "yeelight" = ps: with ps; [ aiohttp-cors async-upnp-client ifaddr yeelight ];
+    "yeelight" = ps: with ps; [ aiohttp-cors async-upnp-client ifaddr yeelight zeroconf ];
     "yeelightsunflower" = ps: with ps; [ ]; # missing inputs: yeelightsunflower
     "yi" = ps: with ps; [ aioftp ha-ffmpeg ];
     "youless" = ps: with ps; [ youless-api ];
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index 0ee7fcd6b3155..b0d2063742391 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -1,7 +1,10 @@
 { stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , python3
+, substituteAll
+, ffmpeg
 , inetutils
 , nixosTests
 
@@ -38,6 +41,87 @@ let
     (mkOverride "python-slugify" "4.0.1" "69a517766e00c1268e5bbfc0d010a0a8508de0b18d30ad5a1ff357f8ae724270")
 
     (self: super: {
+      httpcore = super.httpcore.overridePythonAttrs (oldAttrs: rec {
+        version = "0.14.3";
+        src = fetchFromGitHub {
+          owner = "encode";
+          repo = "httpcore";
+          rev = version;
+          sha256 = "sha256-jPsbMhY1lWKBXlh6hsX6DGKXi/g7VQSU00tF6H7qkOo=";
+        };
+        propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [ python3.pkgs.certifi ];
+        doCheck = false;
+      });
+    })
+
+    (self: super: {
+      httpx = super.httpx.overridePythonAttrs (oldAttrs: rec {
+        version = "0.21.1";
+        src = fetchFromGitHub {
+          owner = "encode";
+          repo = "httpx";
+          rev = version;
+          sha256 = "sha256-ayhLP+1hPWAx2ds227CKp5cebVkD5B2Z59L+3dzdINc=";
+        };
+        doCheck = false;
+      });
+    })
+
+    (self: super: {
+      pytest-httpx = super.pytest-httpx.overridePythonAttrs (oldAttrs: rec {
+        version = "0.15.0";
+        src = fetchFromGitHub {
+          owner = "Colin-bin";
+          repo = "pytest_httpx";
+          rev = "v${version}";
+          sha256 = "08dxvjkxlnam3r0yp17495d1vksyawzzkpykacjql1gi6hqlfrwg";
+        };
+      });
+    })
+
+    (self: super: {
+      respx = super.respx.overridePythonAttrs (oldAttrs: rec {
+        version = "0.19.0";
+        src = fetchFromGitHub {
+          owner = "lundberg";
+          repo = "respx";
+          rev = version;
+          sha256 = "sha256-xiAt42kc1+rro99KMwzYKi3XC+wxYVqOY11tM+M/uV8=";
+        };
+      });
+    })
+
+    (self: super: {
+      envoy-reader = super.envoy-reader.overridePythonAttrs (oldAttrs: rec {
+        patches = [
+          # Support for later httpx, https://github.com/jesserizzo/envoy_reader/pull/82
+          (fetchpatch {
+            name = "support-later-httpx.patch";
+            url = "https://github.com/jesserizzo/envoy_reader/commit/6019a89419fe9c830ba839be7d39ec54725268b0.patch";
+            sha256 = "17vsrx13rskvh8swvjisb2dk6x1jdbjcm8ikkpidia35pa24h272";
+          })
+        ];
+      });
+    })
+
+    (self: super: {
+      sanic = super.sanic.overridePythonAttrs (oldAttrs: rec {
+        version = "21.9.3";
+        src = fetchFromGitHub {
+          owner = "sanic-org";
+          repo = "sanic";
+          rev = "v${version}";
+          sha256 = "0m18jdw1mvf7jhpnrxhm96p24pxvv0h9m71a8c7sqqkwnnpa3p5i";
+        };
+        disabledTests = oldAttrs.disabledTests ++ [
+          "test_redirect"
+          "test_chained_redirect"
+          "test_unix_connection"
+        ];
+      });
+    })
+
+    (self: super: {
       huawei-lte-api = super.huawei-lte-api.overridePythonAttrs (oldAttrs: rec {
         version = "1.4.18";
         src = fetchFromGitHub {
@@ -78,17 +162,7 @@ let
       });
     })
 
-    (self: super: {
-      nettigo-air-monitor = super.nettigo-air-monitor.overridePythonAttrs (oldAttrs: rec {
-        version = "1.1.1";
-        src = fetchFromGitHub {
-          owner = "bieniu";
-          repo = "nettigo-air-monitor";
-          rev = version;
-          sha256 = "sha256-OIB1d6XtstUr5P0q/dmyJS7+UbtkFQIiuSnzwcdP1mE=";
-        };
-      });
-    })
+    (mkOverride "jinja2" "3.0.3" "1mvwr02s86zck5wsmd9wjxxb9iaqr17hdi5xza9vkwv8rmrv46v1")
 
     # Pinned due to API changes in pyruckus>0.12
     (self: super: {
@@ -119,6 +193,45 @@ let
     # Pinned due to API changes in 0.1.0
     (mkOverride "poolsense" "0.0.8" "09y4fq0gdvgkfsykpxnvmfv92dpbknnq5v82spz43ak6hjnhgcyp")
 
+    # Pinned due to API changes in 0.4.0
+    (self: super: {
+      vilfo-api-client = super.vilfo-api-client.overridePythonAttrs (oldAttrs: rec {
+        version = "0.3.3";
+        src = fetchFromGitHub {
+          owner = "ManneW";
+          repo = "vilfo-api-client-python";
+          rev = "v$version}";
+          sha256 = "1gy5gpsg99rcm1cc3m30232za00r9i46sp74zpd12p3vzz1wyyqf";
+        };
+      });
+    })
+
+    # Pinned due to API changes ~1.0
+    (self: super: {
+      vultr = super.vultr.overridePythonAttrs (oldAttrs: rec {
+        version = "0.1.2";
+        src = fetchFromGitHub {
+          owner = "spry-group";
+          repo = "python-vultr";
+          rev = "v${version}";
+          sha256 = "1qjvvr2v9gfnwskdl0ayazpcmiyw9zlgnijnhgq9mcri5gq9jw5h";
+        };
+      });
+    })
+
+    # Remove with 2021.12.6 as the requirement will be 1.1.16 (at least)
+    (self: super: {
+      yalexs = super.yalexs.overridePythonAttrs (oldAttrs: rec {
+        version = "1.1.13";
+        src = fetchFromGitHub {
+          owner = "bdraco";
+          repo = "yalexs";
+          rev = "v${version}";
+          sha256 = "sha256-lnx8+VyDyO7Wg+QW+CC0FUg77Ndfjar6PLsDYwEpaCQ=";
+        };
+      });
+    })
+
     # home-assistant-frontend does not exist in python3.pkgs
     (self: super: {
       home-assistant-frontend = self.callPackage ./frontend.nix { };
@@ -152,7 +265,7 @@ let
   extraBuildInputs = extraPackages py.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "2021.11.5";
+  hassVersion = "2021.12.7";
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "homeassistant";
@@ -169,20 +282,28 @@ in with py.pkgs; buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = version;
-    sha256 = "sha256-5MxArJLzOg9dU4Q2c6BDjvEzR2u7UVumNZjwE84+br8=";
+    hash = "sha256:0jcnk43wm3xwvsfyvbswq681v2c3xmki1bakn0l12j6paida784y";
   };
 
   # leave this in, so users don't have to constantly update their downstream patch handling
   patches = [
-    ./0001-tests-ignore-OSErrors-in-hass-fixture.patch
+    (substituteAll {
+      src = ./patches/ffmpeg-path.patch;
+      ffmpeg = "${lib.getBin ffmpeg}/bin/ffmpeg";
+    })
+    ./patches/tests-ignore-OSErrors-in-hass-fixture.patch
   ];
 
   postPatch = ''
     substituteInPlace setup.py \
+      --replace "aiohttp==3.8.1" "aiohttp" \
+      --replace "async_timeout==4.0.0" "async_timeout" \
       --replace "bcrypt==3.1.7" "bcrypt" \
+      --replace "cryptography==35.0.0" "cryptography" \
+      --replace "httpx==0.21.0" "httpx" \
       --replace "pip>=8.0.3,<20.3" "pip" \
       --replace "pyyaml==6.0" "pyyaml" \
-      --replace "yarl==1.6.3" "yarl==1.7.0"
+      --replace "yarl==1.6.3" "yarl"
     substituteInPlace tests/test_config.py --replace '"/usr"' '"/build/media"'
   '';
 
@@ -191,6 +312,7 @@ in with py.pkgs; buildPythonApplication rec {
     aiohttp
     astral
     async-timeout
+    atomicwrites
     attrs
     awesomeversion
     bcrypt
@@ -198,6 +320,7 @@ in with py.pkgs; buildPythonApplication rec {
     ciso8601
     cryptography
     httpx
+    ifaddr
     jinja2
     pip
     pyjwt
@@ -340,7 +463,6 @@ in with py.pkgs; buildPythonApplication rec {
     "dte_energy_bridge"
     "duckdns"
     "dunehd"
-    "dyson"
     "eafm"
     "ecobee"
     "econet"
@@ -399,7 +521,8 @@ in with py.pkgs; buildPythonApplication rec {
     "geonetnz_quakes"
     "geonetnz_volcano"
     "gios"
-    "glances"
+    # updated to incompatible version and overriding is annoying because of async_timeout<4 pin
+    # "glances"
     "goalzero"
     "gogogate2"
     "google"
@@ -537,6 +660,8 @@ in with py.pkgs; buildPythonApplication rec {
     "namecheapdns"
     "neato"
     "ness_alarm"
+    # python-nest has an unfree license, this prevents builds through ofborg
+    # "nest"
     "netatmo"
     "nexia"
     "nightscout"
@@ -548,6 +673,7 @@ in with py.pkgs; buildPythonApplication rec {
     "number"
     "nws"
     "nx584"
+    "octoprint"
     "omnilogic"
     "onboarding"
     "ondilo_ico"
@@ -678,8 +804,6 @@ in with py.pkgs; buildPythonApplication rec {
     "telegram"
     "tellduslive"
     "template"
-    # disable tesla comonent tests while typer is incompatible with click>=8.0
-    # "tesla"
     "threshold"
     "tibber"
     "tile"
@@ -718,7 +842,8 @@ in with py.pkgs; buildPythonApplication rec {
     "uvc"
     "vacuum"
     "velbus"
-    "venstar"
+    # disabled, because it includes onewire component tests, for which we lack p1wire dependency
+    # "venstar"
     "vera"
     "verisure"
     "version"
@@ -728,8 +853,7 @@ in with py.pkgs; buildPythonApplication rec {
     "vlc_telnet"
     "voicerss"
     "volumio"
-    # disabled, becaused AttributeError: <class 'vultr.vultr.Vultr'> does not have the attribute 'server_list'
-    # "vultr"
+    "vultr"
     "wake_on_lan"
     "wallbox"
     "water_heater"
@@ -748,7 +872,8 @@ in with py.pkgs; buildPythonApplication rec {
     "xbox"
     "xiaomi"
     "xiaomi_aqara"
-    "xiaomi_miio"
+    # disabled, because we require cryptography>=35.0 for the miio package
+    # "xiaomi_miio"
     "yamaha"
     "yandex_transport"
     "yandextts"
@@ -865,6 +990,8 @@ in with py.pkgs; buildPythonApplication rec {
   preCheck = ''
     export HOME="$TEMPDIR"
 
+    patch -p1 < ${./patches/tests-mock-source-ip.patch}
+
     # the tests require the existance of a media dir
     mkdir /build/media
 
@@ -881,7 +1008,7 @@ in with py.pkgs; buildPythonApplication rec {
   '';
 
   passthru = {
-    inherit availableComponents;
+    inherit availableComponents extraComponents;
     python = py;
     tests = {
       inherit (nixosTests) home-assistant;
diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix
index bf614a11e027d..a3ca2c07cdcf4 100644
--- a/pkgs/servers/home-assistant/frontend.nix
+++ b/pkgs/servers/home-assistant/frontend.nix
@@ -4,11 +4,11 @@ buildPythonPackage rec {
   # the frontend version corresponding to a specific home-assistant version can be found here
   # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
   pname = "home-assistant-frontend";
-  version = "20211109.0";
+  version = "20211229.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-DXL+D58kS8q4we6/r6iRuXA/d9NOoYUp9A3vsHQ0KVg=";
+    sha256 = "sha256-2hACC2542jz1DID7nV28keVVDDBOLW1QDYTLM4S1ZJ0=";
   };
 
   # there is nothing to strip in this package
diff --git a/pkgs/servers/home-assistant/patches/ffmpeg-path.patch b/pkgs/servers/home-assistant/patches/ffmpeg-path.patch
new file mode 100644
index 0000000000000..a72674ff7a5fe
--- /dev/null
+++ b/pkgs/servers/home-assistant/patches/ffmpeg-path.patch
@@ -0,0 +1,84 @@
+diff --git a/homeassistant/components/ffmpeg/__init__.py b/homeassistant/components/ffmpeg/__init__.py
+index 74c826f47d..91f359da2a 100644
+--- a/homeassistant/components/ffmpeg/__init__.py
++++ b/homeassistant/components/ffmpeg/__init__.py
+@@ -40,7 +40,7 @@ CONF_FFMPEG_BIN = "ffmpeg_bin"
+ CONF_EXTRA_ARGUMENTS = "extra_arguments"
+ CONF_OUTPUT = "output"
+ 
+-DEFAULT_BINARY = "ffmpeg"
++DEFAULT_BINARY = "@ffmpeg@"
+ 
+ CONFIG_SCHEMA = vol.Schema(
+     {
+diff --git a/tests/components/ffmpeg/test_init.py b/tests/components/ffmpeg/test_init.py
+index e1730ffdab..e9cd7934fd 100644
+--- a/tests/components/ffmpeg/test_init.py
++++ b/tests/components/ffmpeg/test_init.py
+@@ -87,7 +87,7 @@ class TestFFmpegSetup:
+         with assert_setup_component(1):
+             setup_component(self.hass, ffmpeg.DOMAIN, {ffmpeg.DOMAIN: {}})
+ 
+-        assert self.hass.data[ffmpeg.DATA_FFMPEG].binary == "ffmpeg"
++        assert self.hass.data[ffmpeg.DATA_FFMPEG].binary == "@ffmpeg@"
+ 
+     def test_setup_component_test_service(self):
+         """Set up ffmpeg component test services."""
+diff --git a/tests/components/ffmpeg/test_sensor.py b/tests/components/ffmpeg/test_sensor.py
+index a6c9c1f441..f13091da1a 100644
+--- a/tests/components/ffmpeg/test_sensor.py
++++ b/tests/components/ffmpeg/test_sensor.py
+@@ -27,7 +27,7 @@ class TestFFmpegNoiseSetup:
+             setup_component(self.hass, "binary_sensor", self.config)
+         self.hass.block_till_done()
+ 
+-        assert self.hass.data["ffmpeg"].binary == "ffmpeg"
++        assert self.hass.data["ffmpeg"].binary == "@ffmpeg@"
+         assert self.hass.states.get("binary_sensor.ffmpeg_noise") is not None
+ 
+     @patch("haffmpeg.sensor.SensorNoise.open_sensor", return_value=mock_coro())
+@@ -37,7 +37,7 @@ class TestFFmpegNoiseSetup:
+             setup_component(self.hass, "binary_sensor", self.config)
+         self.hass.block_till_done()
+ 
+-        assert self.hass.data["ffmpeg"].binary == "ffmpeg"
++        assert self.hass.data["ffmpeg"].binary == "@ffmpeg@"
+         assert self.hass.states.get("binary_sensor.ffmpeg_noise") is not None
+ 
+         self.hass.start()
+@@ -53,7 +53,7 @@ class TestFFmpegNoiseSetup:
+             setup_component(self.hass, "binary_sensor", self.config)
+         self.hass.block_till_done()
+ 
+-        assert self.hass.data["ffmpeg"].binary == "ffmpeg"
++        assert self.hass.data["ffmpeg"].binary == "@ffmpeg@"
+         assert self.hass.states.get("binary_sensor.ffmpeg_noise") is not None
+ 
+         self.hass.start()
+@@ -89,7 +89,7 @@ class TestFFmpegMotionSetup:
+             setup_component(self.hass, "binary_sensor", self.config)
+         self.hass.block_till_done()
+ 
+-        assert self.hass.data["ffmpeg"].binary == "ffmpeg"
++        assert self.hass.data["ffmpeg"].binary == "@ffmpeg@"
+         assert self.hass.states.get("binary_sensor.ffmpeg_motion") is not None
+ 
+     @patch("haffmpeg.sensor.SensorMotion.open_sensor", return_value=mock_coro())
+@@ -99,7 +99,7 @@ class TestFFmpegMotionSetup:
+             setup_component(self.hass, "binary_sensor", self.config)
+         self.hass.block_till_done()
+ 
+-        assert self.hass.data["ffmpeg"].binary == "ffmpeg"
++        assert self.hass.data["ffmpeg"].binary == "@ffmpeg@"
+         assert self.hass.states.get("binary_sensor.ffmpeg_motion") is not None
+ 
+         self.hass.start()
+@@ -115,7 +115,7 @@ class TestFFmpegMotionSetup:
+             setup_component(self.hass, "binary_sensor", self.config)
+         self.hass.block_till_done()
+ 
+-        assert self.hass.data["ffmpeg"].binary == "ffmpeg"
++        assert self.hass.data["ffmpeg"].binary == "@ffmpeg@"
+         assert self.hass.states.get("binary_sensor.ffmpeg_motion") is not None
+ 
+         self.hass.start()
diff --git a/pkgs/servers/home-assistant/0001-tests-ignore-OSErrors-in-hass-fixture.patch b/pkgs/servers/home-assistant/patches/tests-ignore-OSErrors-in-hass-fixture.patch
index add0ea1d5521f..add0ea1d5521f 100644
--- a/pkgs/servers/home-assistant/0001-tests-ignore-OSErrors-in-hass-fixture.patch
+++ b/pkgs/servers/home-assistant/patches/tests-ignore-OSErrors-in-hass-fixture.patch
diff --git a/pkgs/servers/home-assistant/patches/tests-mock-source-ip.patch b/pkgs/servers/home-assistant/patches/tests-mock-source-ip.patch
new file mode 100644
index 0000000000000..4094d08ee7ff8
--- /dev/null
+++ b/pkgs/servers/home-assistant/patches/tests-mock-source-ip.patch
@@ -0,0 +1,13 @@
+diff --git a/homeassistant/components/network/__init__.py b/homeassistant/components/network/__init__.py
+index 7cc864727d..69333a5454 100644
+--- a/homeassistant/components/network/__init__.py
++++ b/homeassistant/components/network/__init__.py
+@@ -26,7 +26,7 @@ async def async_get_source_ip(
+ ) -> str:
+     """Get the source ip for a target ip."""
+     adapters = await async_get_adapters(hass)
+-    all_ipv4s = []
++    all_ipv4s = ["127.0.0.1"]
+     for adapter in adapters:
+         if adapter["enabled"] and (ipv4s := adapter["ipv4"]):
+             all_ipv4s.extend([ipv4["address"] for ipv4 in ipv4s])
diff --git a/pkgs/servers/home-assistant/update.sh b/pkgs/servers/home-assistant/update.sh
index 8a47daf51c55c..05f2e93dfe464 100755
--- a/pkgs/servers/home-assistant/update.sh
+++ b/pkgs/servers/home-assistant/update.sh
@@ -6,7 +6,7 @@ set -eux
 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
 cd "$DIR"
 
-CURRENT_VERSION=$(nix eval --raw '(with import ../../.. {}; home-assistant.version)')
+CURRENT_VERSION=$(nix-instantiate ../../.. --eval --strict -A home-assistant.version | tr -d '"')
 TARGET_VERSION=$(curl https://api.github.com/repos/home-assistant/core/releases/latest | jq -r '.name')
 MANIFEST=$(curl https://raw.githubusercontent.com/home-assistant/core/${TARGET_VERSION}/homeassistant/components/frontend/manifest.json)
 FRONTEND_VERSION=$(echo $MANIFEST | jq -r '.requirements[] | select(startswith("home-assistant-frontend")) | sub(".*==(?<vers>.*)"; .vers)')
diff --git a/pkgs/servers/http/apache-modules/mod_itk/default.nix b/pkgs/servers/http/apache-modules/mod_itk/default.nix
new file mode 100644
index 0000000000000..a36a030899a59
--- /dev/null
+++ b/pkgs/servers/http/apache-modules/mod_itk/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, mod_ca
+, apr
+, aprutil
+, apacheHttpd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mod_itk";
+  version = "2.4.7-04";
+
+  src = fetchurl {
+    url = "http://mpm-itk.sesse.net/mpm-itk-${version}.tar.gz";
+    sha256 = "sha256:1kzgd1332pgpxf489kr0vdwsaik0y8wp3q282d4wa5jlk7l877v0";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ mod_ca apr aprutil apacheHttpd ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/modules
+    ${apacheHttpd.dev}/bin/apxs -S LIBEXECDIR=$out/modules -i mpm_itk.la
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "an MPM (Multi-Processing Module) for the Apache web server.";
+    maintainers = [ maintainers.zupo ];
+    homepage = "http://mpm-itk.sesse.net/";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/http/couchdb/3.nix b/pkgs/servers/http/couchdb/3.nix
index 4a7144a8e185a..076edfb8453aa 100644
--- a/pkgs/servers/http/couchdb/3.nix
+++ b/pkgs/servers/http/couchdb/3.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API";
-    homepage = "http://couchdb.apache.org";
+    homepage = "https://couchdb.apache.org";
     license = licenses.asl20;
     platforms = platforms.all;
     maintainers = with maintainers; [ lostnet ];
diff --git a/pkgs/servers/http/dave/default.nix b/pkgs/servers/http/dave/default.nix
new file mode 100644
index 0000000000000..f7052789d36a0
--- /dev/null
+++ b/pkgs/servers/http/dave/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildGoPackage, fetchFromGitHub, mage }:
+
+buildGoPackage rec {
+  pname = "dave";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "micromata";
+    repo = "dave";
+    rev = "v${version}";
+    sha256 = "sha256-wvsW4EwMWAgEV+LPeMhHL4AsuyS5TDMmpD9D4F1nVM4=";
+  };
+
+  goPackagePath = "github.com/micromata/dave";
+
+  subPackages = [ "cmd/dave" "cmd/davecli" ];
+
+  ldflags =
+    [ "-s" "-w" "-X main.version=${version}" "-X main.builtBy=nixpkgs" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/micromata/dave";
+    description =
+      "A totally simple and very easy to configure stand alone webdav server";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ lunik1 ];
+  };
+}
diff --git a/pkgs/servers/http/envoy/default.nix b/pkgs/servers/http/envoy/default.nix
index d26782560a470..c81d79dbb24be 100644
--- a/pkgs/servers/http/envoy/default.nix
+++ b/pkgs/servers/http/envoy/default.nix
@@ -17,8 +17,8 @@ let
     # However, the version string is more useful for end-users.
     # These are contained in a attrset of their own to make it obvious that
     # people should update both.
-    version = "1.17.3";
-    commit = "46bf743b97d0d3f01ff437b2f10cc0bd9cdfe6e4";
+    version = "1.19.1";
+    commit = "a2a1e3eed4214a38608ec223859fcfa8fb679b14";
   };
 in
 buildBazelPackage rec {
@@ -28,7 +28,7 @@ buildBazelPackage rec {
     owner = "envoyproxy";
     repo = "envoy";
     rev = srcVer.commit;
-    hash = "sha256:09zzr4h3zjsb2rkxrvlazpx0jy33yn9j65ilxiqbvv0ckaralqfc";
+    hash = "sha256:1v1hv4blrppnhllsxd9d3k2wl6nhd59r4ydljy389na3bb41jwf9";
 
     extraPostFetch = ''
       chmod -R +w $out
@@ -58,7 +58,7 @@ buildBazelPackage rec {
   ];
 
   fetchAttrs = {
-    sha256 = "sha256:1cy2b73x8jzczq9z9c1kl7zrg5iasvsakb50zxn4mswpmajkbj5h";
+    sha256 = "sha256:0vnl0gq6nhvyzz39jg1bvvna0xyhxalg71bp1jbxib7ql026004r";
     dontUseCmakeConfigure = true;
     dontUseGnConfigure = true;
     preInstall = ''
@@ -75,12 +75,6 @@ buildBazelPackage rec {
         $bazelOut/external/local_config_sh/BUILD
       rm -r $bazelOut/external/go_sdk
 
-      # Replace some wheels which are only used for tests with empty files;
-      # they're nondeterministically built and packed.
-      >$bazelOut/external/config_validation_pip3/PyYAML-5.3.1-cp38-cp38-linux_x86_64.whl
-      >$bazelOut/external/protodoc_pip3/PyYAML-5.3.1-cp38-cp38-linux_x86_64.whl
-      >$bazelOut/external/thrift_pip3/thrift-0.13.0-cp38-cp38-linux_x86_64.whl
-
       # Remove Unix timestamps from go cache.
       rm -rf $bazelOut/external/bazel_gazelle_go_repository_cache/{gocache,pkg/mod/cache,pkg/sumdb}
     '';
diff --git a/pkgs/servers/http/gitlab-pages/default.nix b/pkgs/servers/http/gitlab-pages/default.nix
index 68aaeb16af7a6..ffeead30a2933 100644
--- a/pkgs/servers/http/gitlab-pages/default.nix
+++ b/pkgs/servers/http/gitlab-pages/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gitlab-pages";
-  version = "1.41.0";
+  version = "1.48.0";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-pages";
     rev = "v${version}";
-    sha256 = "sha256-f/dmQvsWHlc9thJ9Ekp14VjdjW5+IMtD0vDMlYksUx4=";
+    sha256 = "sha256-oSimHF4qiI2zcMSx51qxs88AcrrewHIbhaRW8s4Ut7Q=";
   };
 
-  vendorSha256 = "sha256-C/1CuUbZEfawzAasTM1VsbK3vVvuRAWUR3cBm5zGzXs=";
+  vendorSha256 = "sha256-dzYO1yAQSVJmDJvjB5XPRBiYCk+ko1n928CTtUXbHBc=";
   subPackages = [ "." ];
 
   meta = with lib; {
diff --git a/pkgs/servers/http/nginx/generic.nix b/pkgs/servers/http/nginx/generic.nix
index 7465589d636e9..fa711d1dff4f0 100644
--- a/pkgs/servers/http/nginx/generic.nix
+++ b/pkgs/servers/http/nginx/generic.nix
@@ -3,6 +3,7 @@
 , nixosTests
 , substituteAll, gd, geoip, perl
 , withDebug ? false
+, withKTLS ? false
 , withStream ? true
 , withMail ? false
 , withPerl ? true
@@ -80,6 +81,8 @@ stdenv.mkDerivation {
     "--http-scgi-temp-path=/var/cache/nginx/scgi"
   ] ++ optionals withDebug [
     "--with-debug"
+  ] ++ optionals withKTLS [
+    "--with-openssl-opt=enable-ktls"
   ] ++ optionals withStream [
     "--with-stream"
     "--with-stream_realip_module"
diff --git a/pkgs/servers/http/nginx/modules.nix b/pkgs/servers/http/nginx/modules.nix
index de65e75ab9da0..1d89fd8d97523 100644
--- a/pkgs/servers/http/nginx/modules.nix
+++ b/pkgs/servers/http/nginx/modules.nix
@@ -293,10 +293,10 @@ in
   pam = {
     src = fetchFromGitHub {
       name = "pam";
-      owner = "stogh";
+      owner = "sto";
       repo = "ngx_http_auth_pam_module";
-      rev = "v1.5.2";
-      sha256 = "06nydxk82rc9yrw4408nakb197flxh4z1yv935crg65fn9706rl7";
+      rev = "v1.5.3";
+      sha256 = "sha256:09lnljdhjg65643bc4535z378lsn4llbq67zcxlln0pizk9y921a";
     };
     inputs = [ pkgs.pam ];
   };
diff --git a/pkgs/servers/http/nginx/quic.nix b/pkgs/servers/http/nginx/quic.nix
index 5874d3dd6794d..3217b859bc828 100644
--- a/pkgs/servers/http/nginx/quic.nix
+++ b/pkgs/servers/http/nginx/quic.nix
@@ -6,8 +6,8 @@
 callPackage ./generic.nix args {
   src = fetchhg {
     url = "https://hg.nginx.org/nginx-quic";
-    rev = "6d1488b62dc5"; # branch=quic
-    sha256 = "18xrkzzi4cxl4zi7clikwww9ad9l7vilrfs67hhzx7898jkws5fi";
+    rev = "0ee56d2eac44"; # branch=quic
+    sha256 = "sha256-ErJa71aOzcjcBl1P9+g5kzs5sr0JdjrPwYKZ9VAvQus=";
   };
 
   preConfigure = ''
@@ -16,9 +16,8 @@ callPackage ./generic.nix args {
 
   configureFlags = [
     "--with-http_v3_module"
-    "--with-http_quic_module"
     "--with-stream_quic_module"
   ];
 
-  version = "quic";
+  version = "1.21.4-quic";
 }
diff --git a/pkgs/servers/http/pomerium/default.nix b/pkgs/servers/http/pomerium/default.nix
index 7b28200b284e6..cbf2fe1943542 100644
--- a/pkgs/servers/http/pomerium/default.nix
+++ b/pkgs/servers/http/pomerium/default.nix
@@ -7,19 +7,19 @@
 }:
 
 let
-  inherit (lib) concatStringsSep mapAttrsToList;
+  inherit (lib) concatStringsSep concatMap id mapAttrsToList;
 in
 buildGoModule rec {
   pname = "pomerium";
-  version = "0.14.7";
+  version = "0.15.7";
   src = fetchFromGitHub {
     owner = "pomerium";
     repo = "pomerium";
     rev = "v${version}";
-    hash = "sha256:1jb96jk5qmary4fi1z9zwmppdyskj0qb6qii8s8mwazjjxqj1z2s";
+    hash = "sha256:0adlk4ylny1z43x1dw3ny0s1932vhb61hpf5wdz4r65y8k9qyfgr";
   };
 
-  vendorSha256 = "sha256:1daabi9qc9nx8bafn26iw6rv4vx2xpd0nnk06265aqaksx26db0s";
+  vendorSha256 = "sha256:1fszfbra84pcs8v1h2kf7iy603vf9v2ysg6il76aqmqrxmb1p7nv";
   subPackages = [
     "cmd/pomerium"
     "cmd/pomerium-cli"
@@ -28,38 +28,49 @@ buildGoModule rec {
   ldflags = let
     # Set a variety of useful meta variables for stamping the build with.
     setVars = {
-      Version = "v${version}";
-      BuildMeta = "nixpkgs";
-      ProjectName = "pomerium";
-      ProjectURL = "github.com/pomerium/pomerium";
+      "github.com/pomerium/pomerium/internal/version" = {
+        Version = "v${version}";
+        BuildMeta = "nixpkgs";
+        ProjectName = "pomerium";
+        ProjectURL = "github.com/pomerium/pomerium";
+      };
+      "github.com/pomerium/pomerium/internal/envoy" = {
+        OverrideEnvoyPath = "${envoy}/bin/envoy";
+      };
     };
-    varFlags = concatStringsSep " " (mapAttrsToList (name: value: "-X github.com/pomerium/pomerium/internal/version.${name}=${value}") setVars);
+    concatStringsSpace = list: concatStringsSep " " list;
+    mapAttrsToFlatList = fn: list: concatMap id (mapAttrsToList fn list);
+    varFlags = concatStringsSpace (
+      mapAttrsToFlatList (package: packageVars:
+        mapAttrsToList (variable: value:
+          "-X ${package}.${variable}=${value}"
+        ) packageVars
+      ) setVars);
   in [
     "${varFlags}"
   ];
 
-  nativeBuildInputs = [
-    zip
-  ];
+  preBuild = ''
+    # Replace embedded envoy with nothing.
+    # We set OverrideEnvoyPath above, so rawBinary should never get looked at
+    # but we still need to set a checksum/version.
+    rm internal/envoy/files/files_{darwin,linux}*.go
+    cat <<EOF >internal/envoy/files/files_generic.go
+    package files
 
-  # Pomerium expects to have envoy append to it in a zip.
-  # We use a store-only (-0) zip, so that the Nix scanner can find any store references we had in the envoy binary.
-  postBuild = ''
-    # Append Envoy
-    pushd $NIX_BUILD_TOP
-    mkdir -p envoy
-    cd envoy
-    cp ${envoy}/bin/envoy envoy
-    zip -0 envoy.zip envoy
-    popd
+    import _ "embed" // embed
 
-    mv $GOPATH/bin/pomerium $GOPATH/bin/pomerium.old
-    cat $GOPATH/bin/pomerium.old $NIX_BUILD_TOP/envoy/envoy.zip >$GOPATH/bin/pomerium
-    zip --adjust-sfx $GOPATH/bin/pomerium
-  '';
+    var rawBinary []byte
 
-  # We also need to set dontStrip to avoid having the envoy ZIP stripped off the end.
-  dontStrip = true;
+    //go:embed envoy.sha256
+    var rawChecksum string
+
+    //go:embed envoy.version
+    var rawVersion string
+    EOF
+    sha256sum '${envoy}/bin/envoy' > internal/envoy/files/envoy.sha256
+    echo '${envoy.version}' > internal/envoy/files/envoy.version
+  '';
 
   installPhase = ''
     install -Dm0755 $GOPATH/bin/pomerium $out/bin/pomerium
diff --git a/pkgs/servers/http/trafficserver/default.nix b/pkgs/servers/http/trafficserver/default.nix
index eb4af7bf49184..9058a4cbda75d 100644
--- a/pkgs/servers/http/trafficserver/default.nix
+++ b/pkgs/servers/http/trafficserver/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, fetchurl
+, fetchzip
 , fetchpatch
 , makeWrapper
 , nixosTests
@@ -49,11 +49,11 @@
 
 stdenv.mkDerivation rec {
   pname = "trafficserver";
-  version = "9.0.2";
+  version = "9.1.1";
 
-  src = fetchurl {
+  src = fetchzip {
     url = "mirror://apache/trafficserver/trafficserver-${version}.tar.bz2";
-    sha256 = "0r05iqmnnjq259nsibncgfrfsr0l4h3hsafizvgfl9zgmrkm6izz";
+    sha256 = "sha256-oicRqKFE6hOpcNG9o3BmrMujtEzi4hrPhBWaljOW+VI=";
   };
 
   patches = [
diff --git a/pkgs/servers/http/unit/default.nix b/pkgs/servers/http/unit/default.nix
index 4503d362dc634..e6fcaaca4bcf6 100644
--- a/pkgs/servers/http/unit/default.nix
+++ b/pkgs/servers/http/unit/default.nix
@@ -29,14 +29,14 @@ let
   php80-unit = php80.override phpConfig;
 
 in stdenv.mkDerivation rec {
-  version = "1.25.0";
+  version = "1.26.1";
   pname = "unit";
 
   src = fetchFromGitHub {
     owner = "nginx";
     repo = pname;
     rev = version;
-    sha256 = "sha256-8Xv7YTvwuI0evBO1Te4oI1IoJ0AnK8OVZoZTYtfYKfw=";
+    sha256 = "sha256-rTT7EJSHepGOwNXVqlOBOhZayZQXyNo3B2Oa1oLf2FI=";
   };
 
   nativeBuildInputs = [ which ];
diff --git a/pkgs/servers/icingaweb2/default.nix b/pkgs/servers/icingaweb2/default.nix
index 3602f5b010475..7a0d75dab24d8 100644
--- a/pkgs/servers/icingaweb2/default.nix
+++ b/pkgs/servers/icingaweb2/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "icingaweb2";
-  version = "2.9.4";
+  version = "2.9.5";
 
   src = fetchFromGitHub {
     owner = "Icinga";
     repo = "icingaweb2";
     rev = "v${version}";
-    sha256 = "sha256:1fd5d2vhiq3s7qr4hnvnh9vv4ns7dvqwq8s67av89hjf3sqgw13j";
+    sha256 = "sha256-yKnG+wxWVgLwG9hRRiLPmNzm9pBrf/mh5V/lLdj8Sv8=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/imgproxy/default.nix b/pkgs/servers/imgproxy/default.nix
index b71592e8f0f67..3c5e901dfb89b 100644
--- a/pkgs/servers/imgproxy/default.nix
+++ b/pkgs/servers/imgproxy/default.nix
@@ -3,16 +3,16 @@
 
 buildGoModule rec {
   pname = "imgproxy";
-  version = "2.17.0";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    sha256 = "sha256-afprMKFyuo1Doi5K5EtzdiQY+fbx2LtEh3xxnPr+yjk=";
+    sha256 = "sha256-r9nT4nAzD6xBTB9jfmPfE7vKs4tgrdGPWOptRpqh5TM=";
     rev = "v${version}";
   };
 
-  vendorSha256 = "sha256-aV+A2duS13Zi9IPa7bd/tBe5NzmUhKYsXzvluuIFc+I=";
+  vendorSha256 = "sha256-7LRxR6ISV+A30NSztlAlfjMjgnXZpHq3aMAKGoHJtNY=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/invidious/lsquic.nix b/pkgs/servers/invidious/lsquic.nix
index 35b93e4249f26..acc9b97ae5df7 100644
--- a/pkgs/servers/invidious/lsquic.nix
+++ b/pkgs/servers/invidious/lsquic.nix
@@ -26,9 +26,9 @@ stdenv.mkDerivation rec {
   buildInputs = [ boringssl' libevent zlib ];
 
   cmakeFlags = [
-    "-DBORINGSSL_DIR=${boringssl'}"
-    "-DBORINGSSL_LIB_crypto=${boringssl'}/lib/libcrypto.a"
-    "-DBORINGSSL_LIB_ssl=${boringssl'}/lib/libssl.a"
+    "-DBORINGSSL_DIR=${lib.getDev boringssl'}"
+    "-DBORINGSSL_LIB_crypto=${lib.getLib boringssl'}/lib/libcrypto.a"
+    "-DBORINGSSL_LIB_ssl=${lib.getLib boringssl'}/lib/libssl.a"
     "-DZLIB_LIB=${zlib}/lib/libz.so"
   ];
 
@@ -39,8 +39,8 @@ stdenv.mkDerivation rec {
 
     mkdir combinedlib
     cd combinedlib
-    ar -x ${boringssl'}/lib/libssl.a
-    ar -x ${boringssl'}/lib/libcrypto.a
+    ar -x ${lib.getLib boringssl'}/lib/libssl.a
+    ar -x ${lib.getLib boringssl'}/lib/libcrypto.a
     ar -x ../src/liblsquic/liblsquic.a
     ar rc liblsquic.a *.o
     ranlib liblsquic.a
diff --git a/pkgs/servers/irc/ircd-hybrid/default.nix b/pkgs/servers/irc/ircd-hybrid/default.nix
index f115b71091861..454cbcd7630e7 100644
--- a/pkgs/servers/irc/ircd-hybrid/default.nix
+++ b/pkgs/servers/irc/ircd-hybrid/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ircd-hybrid";
-  version = "8.2.38";
+  version = "8.2.39";
 
   src = fetchurl {
     url = "mirror://sourceforge/ircd-hybrid/ircd-hybrid-${version}.tgz";
-    sha256 = "sha256-xRA0hzowgjSQtb37Pnw7de1nPtlHAg2FwRMSaKdr+2M=";
+    sha256 = "sha256-A10nH2sN1FEVf4AUbRibwcm4TMm6G3rQb9cu5RCObk0=";
   };
 
   buildInputs = [ openssl zlib ];
diff --git a/pkgs/servers/irc/solanum/default.nix b/pkgs/servers/irc/solanum/default.nix
index d5e70799cf54a..9dc7a8abe2c82 100644
--- a/pkgs/servers/irc/solanum/default.nix
+++ b/pkgs/servers/irc/solanum/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "solanum";
-  version = "unstable-2021-04-27";
+  version = "unstable-2021-11-14";
 
   src = fetchFromGitHub {
     owner = "solanum-ircd";
     repo = pname;
-    rev = "3ff5a12e75662e9a642f2a4364797bd361eb0925";
-    sha256 = "14ywmfdv8cncbyg08y2qdis00kwg8lvhkcgj185is67smh0qf88f";
+    rev = "bd38559fedcdfded4d9acbcbf988e4a8f5057eeb";
+    sha256 = "sha256-2P+mqf5b+TD9+9dLahXOdH7ZZhPWUoR1eV73YHbRbAA=";
   };
 
   patches = [
diff --git a/pkgs/servers/jackett/default.nix b/pkgs/servers/jackett/default.nix
index e2f0984bb93d8..076bd4dbdf43c 100644
--- a/pkgs/servers/jackett/default.nix
+++ b/pkgs/servers/jackett/default.nix
@@ -1,32 +1,41 @@
 { lib
+, stdenv
 , buildDotnetModule
 , fetchFromGitHub
 , dotnetCorePackages
 , openssl
+, mono
 }:
 
 buildDotnetModule rec {
   pname = "jackett";
-  version = "0.19.138";
+  version = "0.20.184";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0qaaccc95csahylzv65ndx990kcr075jffawbjpsjfkxzflfjq9n";
+    sha256 = "Qp1yh1bPiJyZb5myPJJqOZAbrEHl/sD+PSLxjvrj0ho=";
   };
 
   projectFile = "src/Jackett.Server/Jackett.Server.csproj";
   nugetDeps = ./deps.nix;
 
-  dotnetInstallFlags = [ "-p:TargetFramework=net5.0" ];
-  dotnet-runtime = dotnetCorePackages.aspnetcore_5_0;
+  dotnet-sdk = dotnetCorePackages.sdk_6_0;
+  dotnet-runtime = dotnetCorePackages.aspnetcore_6_0;
+
+  dotnetInstallFlags = [ "-p:TargetFramework=net6.0" ];
 
   runtimeDeps = [ openssl ];
 
+  doCheck = !(stdenv.isDarwin && stdenv.isAarch64); # mono is not available on aarch64-darwin
+  checkInputs = [ mono ];
+  testProjectFile = "src/Jackett.Test/Jackett.Test.csproj";
+
   postFixup = ''
-    # Legacy
-    ln -s $out/bin/jackett $out/bin/Jackett
+    # For compatibility
+    ln -s $out/bin/jackett $out/bin/Jackett || :
+    ln -s $out/bin/Jackett $out/bin/jackett || :
   '';
 
   meta = with lib; {
diff --git a/pkgs/servers/jackett/deps.nix b/pkgs/servers/jackett/deps.nix
index 9ac744694198b..cf08f95623e79 100644
--- a/pkgs/servers/jackett/deps.nix
+++ b/pkgs/servers/jackett/deps.nix
@@ -1,250 +1,359 @@
 { fetchNuGet }: [
-  (fetchNuGet { name = "AngleSharp"; version = "0.14.0"; sha256 = "1zgwhh1fp2mmaplvpgm86rpmslix3wqfxf0d3hxx1gxwfgr6wxm6"; })
-  (fetchNuGet { name = "Autofac"; version = "5.2.0"; sha256 = "0yxks2nynl0mcg3m94cl94x50k3wa8xh9k3f2gmh8mxn5nrpl64r"; })
-  (fetchNuGet { name = "Autofac.Extensions.DependencyInjection"; version = "6.0.0"; sha256 = "0ljgzn1jlv4k0q13l9n7gjrbw49wdfjzg8rvbwzzrg73bz77vxm3"; })
-  (fetchNuGet { name = "AutoMapper"; version = "8.1.1"; sha256 = "1p2sc82lrbarhs08n2132vijfr3hv9zksb6ra12y9hfckam5lz9h"; })
-  (fetchNuGet { name = "BencodeNET"; version = "3.1.4"; sha256 = "12zim3k5wnlxgkg3310djh3zy97d6g3k3xvf87qd8pk2669vb1gw"; })
-  (fetchNuGet { name = "CommandLineParser"; version = "2.8.0"; sha256 = "1m32xyilv2b7k55jy8ddg08c20glbcj2yi545kxs9hj2ahanhrbb"; })
-  (fetchNuGet { name = "DotNet4.SocksProxy"; version = "1.4.0.1"; sha256 = "1ig2a9ism041a6qrqkxa9xhvp19yxzcadlap5i1kz97f05a2msvb"; })
-  (fetchNuGet { name = "FlareSolverrSharp"; version = "2.0.0"; sha256 = "15rs97ayh6s9g2vbn3r1bj7imazald0f22gfikw6mmyx5ghc3zrz"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore"; version = "2.2.0"; sha256 = "0vsv7hcsmnsgqhs67zp207n7m9ix3dbwm1p2ch3dizkcdvz235f9"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Antiforgery"; version = "2.2.0"; sha256 = "026wjdwjx0lgccqv0xi5gxylxzgz5ifgxf25p5pqakgrhkz0a59l"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Authentication"; version = "2.2.0"; sha256 = "0yqfzd0qq5ypmk6b9gnb1yscl75fxx9frq808cxs70ay7y7jqmgn"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Authentication.Abstractions"; version = "2.2.0"; sha256 = "0vj7fhpk0d95nkkxz4q0rma6pb4ym96mx6nms4603y0l19h0k5yh"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Authentication.Cookies"; version = "2.2.0"; sha256 = "0x7i7dmvq5ph8f21ajgb56fjvv31r4zn6pj8d7rsx0y6067vcp5d"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Authentication.Core"; version = "2.2.0"; sha256 = "1wgn45fmdi7dk9cl4cdhzgqc9mdxhfw7zg8zwns3j7qgrhlv6k8h"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Authorization"; version = "2.2.0"; sha256 = "1mpq8pmxlxfa625k2ghv6xcyy2wdpwv56xzya9mvmlnh50h1i8rx"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Authorization.Policy"; version = "2.2.0"; sha256 = "1d1zh65kfjf81j21ssmhr465vx08bra8424vgnrb22gdx03mhwd2"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Connections.Abstractions"; version = "2.2.0"; sha256 = "1rl94r8b0zq14f3dhfnvfjj1ivr81iw9zh5kdgs3zkdv0xc9x21j"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Cors"; version = "2.2.0"; sha256 = "0qskbz87i74kfbklxqfyqaccyba21kkx2lcdfa54kxj9r8daq7sc"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Cryptography.Internal"; version = "2.2.0"; sha256 = "01lg2fx85b47ldgdrhs6clsivj35x54xwc9r5xk3f1v8rr3gycsv"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.DataProtection"; version = "2.2.0"; sha256 = "09lzbp084xxy1xxfbxpqdff8phv2pzd1n5v30xfm03hhl7a038gx"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.DataProtection.Abstractions"; version = "2.2.0"; sha256 = "1gi4hpssmrrdf5lm6idkhvqbfy12bx14976y4gbhmx9z8lxaqcfz"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Diagnostics"; version = "2.2.0"; sha256 = "0hq5s2h0k2714352bdz2s3c3m6spkn4ckfw3pv9c4rmn6adbw9b1"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Diagnostics.Abstractions"; version = "2.2.0"; sha256 = "061cdhjh5w2f1frhimcgk68vx8p743jb9h4qik3lm1c734r0drm0"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.HostFiltering"; version = "2.2.0"; sha256 = "06wbgkbh24w9yxz6g8446l7nnjm3rdp1wklri710zqzr7zbfcx43"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Hosting"; version = "2.2.0"; sha256 = "1nk61mj7a4ri3p47xd0j520szwj05xid16r2bld85cp70xnpxjhx"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Hosting.Abstractions"; version = "2.1.0"; sha256 = "0sdzvjf6bz0krr2bm77zdyxpjcddadq2fqd3b4yybd6my3b5f7j2"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Hosting.Abstractions"; version = "2.2.0"; sha256 = "043k651vbfshh3s997x42ymj8nb32419m7q3sjw5q2c27anrhfhv"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Hosting.Server.Abstractions"; version = "2.1.0"; sha256 = "1xm8913slkx0cvk7gcbk1sf9518xmrajjjp3z8qhr5xdhdx1b879"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Hosting.Server.Abstractions"; version = "2.2.0"; sha256 = "0nz73bwrvhc1n7gd7xxm3p5ww2wx9qr9m9i43y20gh0c54adkygh"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Html.Abstractions"; version = "2.2.0"; sha256 = "1z5lkzb9h9wprvyxyjw4fj7bjypaibsw0cj4bz769hf0abjz8y1v"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Http"; version = "2.1.0"; sha256 = "1nrhbsr58fh6hpzxq75qvrimh0lk6pdwghs3cbv0f1zk90rar1cq"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Http"; version = "2.2.0"; sha256 = "1fcrafpa57sab3as18idqknzlxkx49n4sxzlzik3sj6pcji5j17q"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Http"; version = "2.2.2"; sha256 = "09mgjvpqdyylz9dbngql9arx46lfkiczjdf7aqr9asd5vjqlv2c8"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Http.Abstractions"; version = "2.1.0"; sha256 = "0jz5w1y661cxbh1sakyjh0813sqrc456mj53w3482ilb5xh5zhbf"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Http.Abstractions"; version = "2.2.0"; sha256 = "13s8cm6jdpydxmr0rgmzrmnp1v2r7i3rs7v9fhabk5spixdgfy6b"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Http.Extensions"; version = "2.2.0"; sha256 = "118gp1mfb8ymcvw87fzgjqwlc1d1b0l0sbfki291ydg414cz3dfn"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Http.Features"; version = "2.1.0"; sha256 = "1mwpvbq0z982f9r5ik6k15h18qviy735i55hld9vfk8694k9zwcj"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Http.Features"; version = "2.2.0"; sha256 = "0xrlq8i61vzhzzy25n80m7wh2kn593rfaii3aqnxdsxsg6sfgnx1"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.HttpOverrides"; version = "2.2.0"; sha256 = "1pbmmczxilgrf4qyaql88dc3av7kaixb1r36358kil68gl3irjy6"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.JsonPatch"; version = "2.2.0"; sha256 = "07cihb5sqkavg42nvircdwjp0b67mhrla97jgx285zdjphplg4h2"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.JsonPatch"; version = "5.0.0"; sha256 = "192mn6r73xjw8fvlss6vrv34iiavq7k8pg0w7advgj6khklw4dzx"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Localization"; version = "2.2.0"; sha256 = "08knc70cy7ycid5sbbbzy6my4b7ddj4j760k5xf1qnfb0njxhfh7"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc"; version = "2.2.0"; sha256 = "16jrikcywkd4r4jh551p8gxxw6hj3aizdzd5i7agb06gwpgqqv9c"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.Abstractions"; version = "2.2.0"; sha256 = "09p447ipd19517vy8xx9ykvspn6b4fgbm2rskpmzyw41x9wz4k0b"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.Analyzers"; version = "2.2.0"; sha256 = "1b975z00bzgh2z5hina4bzfksvc2vgnbzmi8g3q962hspg6ylh9f"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.ApiExplorer"; version = "2.2.0"; sha256 = "1ryhd1md30fgrli74qv45mhldivbasdvydw0lllg6x6jzpyrkwpa"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.Core"; version = "2.2.0"; sha256 = "1k6lkgk9zak5sczvyjbwgqnfcwcg9ks74wznqfzck8c6hns1by0m"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.Cors"; version = "2.2.0"; sha256 = "077vjxn0k5rr4s675g50rzkns6scgijxxh5iib59k77ldwpdr14q"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.DataAnnotations"; version = "2.2.0"; sha256 = "0vdhdjarh4az7g71gkvmhq6xpvwhh8si3sbrpdwb8p60i94cdyl6"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.Formatters.Json"; version = "2.2.0"; sha256 = "0421fcf2z8a6z81ql123ili32wbr3x25zpq17xjf4s9fmsr0069a"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.Localization"; version = "2.2.0"; sha256 = "0d27xirwsr3j7jacsrz6g2r4py35hgzjyy6ak6gkd07cm707wgc6"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson"; version = "5.0.0"; sha256 = "1q3z35pxgvpf6l6ywh5wb6gfly055rk99a80rjqisyrbmza1msd1"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.Razor"; version = "2.2.0"; sha256 = "06fqg7rfyvfj3hdppkhy37ddjff2d6pg7khj6lccs9lwc732yr7q"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.Razor.Extensions"; version = "2.2.0"; sha256 = "04javqbzv7mkakqjl40j429giaagjj7hmwcljrgj8q1jknk0x9xc"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.RazorPages"; version = "2.2.0"; sha256 = "0zqyqfxzl3lkqfy9chd0ipani75q3109imlxrnhdfiwmxrd8xqbm"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.TagHelpers"; version = "2.2.0"; sha256 = "16aprk81sp2i0n0dmp318cm65mk03i58rhpijm4fz4xz51j7z8li"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.ViewFeatures"; version = "2.2.0"; sha256 = "1isflvb0ff5nfqnvdlyvmszkd42axbbz0xmdaf0d7sah0qkvvi7n"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Razor"; version = "2.2.0"; sha256 = "02ybprvsi59nwa0fdq99jvx7r26bs2bg3xjxkilc495clgg98zp0"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Razor.Design"; version = "2.2.0"; sha256 = "03pcdcbmyw050hag588b7caqilnq3cb6ndq5g6j0r7j7wf3plsn6"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Razor.Language"; version = "2.2.0"; sha256 = "0n58qdipwy5wymfhgm3anickwvnf4svb9ipbrby7ksrhhrkqvx4z"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Razor.Runtime"; version = "2.2.0"; sha256 = "1n9j5hjinm5gp39nwmcf26dwg1psl7sf7xkxnvfxsnl44mbcy695"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.ResponseCaching.Abstractions"; version = "2.2.0"; sha256 = "01sp2i2bgcn6blw1mcvg5nrlc97c9czyawwvgfi6ydzdvs6ang37"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.ResponseCompression"; version = "2.2.0"; sha256 = "0madnk92752alpc7cv2bazqlihhzgl3yj1s9ajhi3w09vg8n8pz4"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Rewrite"; version = "2.2.0"; sha256 = "0f21v96wkvxcxfz5a9nvhqf1dshvgg34g9075fb0nd57nsw289af"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Routing"; version = "2.2.0"; sha256 = "12kv602j2rxp43l1v3618yz3pdd7hqc3r98ya0bqz6y2ppvhbyws"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Routing.Abstractions"; version = "2.1.0"; sha256 = "1f8xixbg749nhv10vaf3jmdv9zjdw822hw7ikwa97h70767d8xz5"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Routing.Abstractions"; version = "2.2.0"; sha256 = "0d9wwz1rsh1fslbv1y72jpkvqv2v9n28rl3vslcg0x74lp2678ly"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Server.IIS"; version = "2.2.0"; sha256 = "0cgyw8xjr6kgvrj7rn072mr97sh4xj95f635vmjrx10b8rnypmkk"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Server.IISIntegration"; version = "2.2.0"; sha256 = "1dmk68cyh02g9fcg1bxp90dxl7xpqiqikdlh1835jgm44m985mpc"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Server.Kestrel"; version = "2.2.0"; sha256 = "0wh7hf09i9qxs9r0d5xdcx3qingsid9nxlwcyjg2r44pjs6cg1rf"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Server.Kestrel.Core"; version = "2.2.0"; sha256 = "075ffds8hwp8ps0zf84bsv9pgiaqry9njc403qack701aybci97r"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Server.Kestrel.Https"; version = "2.2.0"; sha256 = "08z447wrbzy3l9lmmas353nr17sg9yccwcg62l9ax9a6n1wvds8c"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions"; version = "2.2.0"; sha256 = "08bj95zy4zszyx1rsy8v2ai9kg4120ij6yi0zillwx3ndb3q7vfb"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets"; version = "2.2.0"; sha256 = "0vhicfnv12sz2c81czdgdlffcgrhnn1jzz9zwy3a9c2n4rn8k9k5"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.StaticFiles"; version = "2.2.0"; sha256 = "1bpggypnx8ai11jqlbyb6cir3x7cnw1mvqh6h88f3b0gg8wxnnpj"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.WebUtilities"; version = "2.1.0"; sha256 = "148snpiq4rhm44gzx8wn9ljfb286h7vd1axc9by4r4fxp0gix0kf"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.WebUtilities"; version = "2.2.0"; sha256 = "0cs1g4ing4alfbwyngxzgvkrv7z964isv1j9dzflafda4p0wxmsi"; })
-  (fetchNuGet { name = "Microsoft.Bcl.AsyncInterfaces"; version = "1.1.0"; sha256 = "1dq5yw7cy6s42193yl4iqscfw5vzkjkgv0zyy32scr4jza6ni1a1"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.Analyzers"; version = "1.1.0"; sha256 = "08r667hj2259wbim1p3al5qxkshydykmb7nd9ygbjlg4mmydkapc"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.Common"; version = "2.8.0"; sha256 = "0g4h41fs0r8lqh9pk9s4mc1090kdpa6sbxq4rc866s8hnq9s1h4j"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.CSharp"; version = "2.8.0"; sha256 = "0p1xvw1h2fmnxywv1j4x6p3rgarpc8mfwfgn0vflk5xfnc961f6w"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.Razor"; version = "2.2.0"; sha256 = "03cm9danxxnsnmrzfz2swz6zhckkgg6hrz1ycnvnjrbpk3w4v0d6"; })
-  (fetchNuGet { name = "Microsoft.CSharp"; version = "4.5.0"; sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; })
-  (fetchNuGet { name = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
-  (fetchNuGet { name = "Microsoft.DiaSymReader.Native"; version = "1.7.0"; sha256 = "0l2w3xpr7dpni20mqx41hqdzkrl0k6w9a0wqmjzdqv5f1jrwhfxn"; })
-  (fetchNuGet { name = "Microsoft.DotNet.PlatformAbstractions"; version = "2.1.0"; sha256 = "1qydvyyinj3b5mraazjal3n2k7jqhn05b6n1a2f3qjkqkxi63dmy"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Caching.Abstractions"; version = "2.2.0"; sha256 = "0hhxc5dp52faha1bdqw0k426zicsv6x1kfqi30m9agr0b2hixj52"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Caching.Memory"; version = "2.2.0"; sha256 = "0bzrsn5vas86w66bd04xilnlb21nx4l6lz7d3acvy6y8ir2vb5dv"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration"; version = "3.1.8"; sha256 = "1px3f7snw2iry7h7gfxzq0vg88cc8bf5kga22p0nkrkpgrm9hasa"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration"; version = "5.0.0"; sha256 = "01m9vzlq0vg0lhckj2dimwq42niwny8g3lm13c9a401hlyg90z1p"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.1.0"; sha256 = "03gzlr3z9j1xnr1k6y91zgxpz3pj27i3zsvjwj7i8jqnlqmk7pxd"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.2.0"; sha256 = "1fv5277hyhfqmc0gqszyqb1ilwnijm8kc9606yia6hwr8pxyg674"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Abstractions"; version = "3.1.8"; sha256 = "05mlbia6vag0a0zfflv1m3ix48230wx0yib5hp7zsc72jpcmjd7q"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Abstractions"; version = "5.0.0"; sha256 = "0fqxkc9pjxkqylsdf26s9q21ciyk56h1w33pz3v1v4wcv8yv1v6k"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Binder"; version = "2.1.0"; sha256 = "0x1888w5ypavvszfmpja9krgc64527prs75vm8xbf9fv3rgsplql"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Binder"; version = "2.2.0"; sha256 = "10qyjdkymdmag3r807kvbnwag4j3nz65i4cwikbd77jjvz92ya3j"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Binder"; version = "3.0.0"; sha256 = "1415h62v6l1yjg95zrhbarwshmdd3hyphxavdim2z10lkyhsj9vz"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.CommandLine"; version = "2.2.0"; sha256 = "09kc7a6g6r9lxcm7y445bmnmkhxkxxvmx6fxh99ixb8a1fkxrvfi"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.EnvironmentVariables"; version = "2.2.0"; sha256 = "1af6003lmw6ms53m8wsvp9rx1alr8r9pharf6azaqcw4m99vd8c5"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.FileExtensions"; version = "2.2.0"; sha256 = "0bwk1kh6q259nmnly90j5rbbzi9w5gigq5vyjr31c1br4j8cjmqd"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Json"; version = "2.2.0"; sha256 = "18cmrvlhc71bxplldbgwfjg29qflcaf4rrg2avp4g03fqwma6vvc"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.UserSecrets"; version = "2.2.0"; sha256 = "15qarrjb7q463hsfkkja3yd34zf370qwjy22586w4r22rpxwirwp"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection"; version = "2.2.0"; sha256 = "0lvv45rvq1xbf47lz818rjydc776zk8mf7svpzh1dml4qwlx9zck"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection"; version = "3.0.0"; sha256 = "0cqbvy49ph16rlba2f35qhi0n7vpcf5kjybvn5fbs7dchfdzw927"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.1.0"; sha256 = "0c0cx8r5xkjpxmcfp51959jnp55qjvq28d9vaslk08avvi1by12s"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.2.0"; sha256 = "1jyzfdr9651h3x6pxwhpfbb9mysfh8f8z1jvy4g117h9790r9zx5"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "3.0.0"; sha256 = "06s8j8v0w06f12jxw6vvsd0l5zqrmsvc3rr2gqx9z3gcq7mdnr3l"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyModel"; version = "2.1.0"; sha256 = "0dl4qhjgifm6v3jsfzvzkvddyic77ggp9fq49ah661v45gk6ilgd"; })
-  (fetchNuGet { name = "Microsoft.Extensions.FileProviders.Abstractions"; version = "2.1.0"; sha256 = "1sxls5f5cgb0wr8cwb05skqmz074683hrhmd3hhq6m5dasnzb8n3"; })
-  (fetchNuGet { name = "Microsoft.Extensions.FileProviders.Abstractions"; version = "2.2.0"; sha256 = "1f83ffb4xjwljg8dgzdsa3pa0582q6b4zm0si467fgkybqzk3c54"; })
-  (fetchNuGet { name = "Microsoft.Extensions.FileProviders.Composite"; version = "2.2.0"; sha256 = "0k3qfxb0pn9b63grbf9jv7xw40gk6m1djmi3c4inwys7lxcj2k18"; })
-  (fetchNuGet { name = "Microsoft.Extensions.FileProviders.Physical"; version = "2.2.0"; sha256 = "0lrq4bxf67pw6n9kzwzqsnxkad2ygh2zn46hjias8j7aqljglh7x"; })
-  (fetchNuGet { name = "Microsoft.Extensions.FileSystemGlobbing"; version = "2.2.0"; sha256 = "01jw7s1nb44n65qs3rk7xdzc419qwl0s5c34k031f1cc5ag3jvc2"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Hosting.Abstractions"; version = "2.1.0"; sha256 = "04vm9mdjjzg3lpp2rzpgkpn8h5bzdl3bwcr22lshd3kp602ws4k9"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Hosting.Abstractions"; version = "2.2.0"; sha256 = "1xc7xr1nq7akfahyl5in9iyxrygap2xi9nxh39rfm37sf8lk55v1"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Localization"; version = "2.2.0"; sha256 = "1k73kk5qmrvdyd7l8qxp19crw18f2p5dgk3cjx59g7vf3rkgmc6k"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Localization.Abstractions"; version = "2.2.0"; sha256 = "1yzqs5x97rj6wlg0rylj0xi3dn1bw4ps26zdqsijx621jl1r97gy"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging"; version = "2.1.0"; sha256 = "0dii8i7s6libfnspz2xb96ayagb4rwqj2kmr162vndivr9rmbm06"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging"; version = "2.2.0"; sha256 = "0bx3ljyvvcbikradq2h583rl72h8bxdz33aghk026cxzpv2mm3wm"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging"; version = "3.0.0"; sha256 = "1a9laql7pnka3n8ca26rsclkiijcdrzd57jyvbyrihgpb7bmzx0r"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging.Abstractions"; version = "2.1.0"; sha256 = "1gvgif1wcx4k6pv7gc00qv1hid945jdywy1s50s33q0hfd91hbnj"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging.Abstractions"; version = "2.2.0"; sha256 = "02w7hp6jicr7cl5p456k2cmrjvvhm6spg5kxnlncw3b72358m5wl"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging.Abstractions"; version = "3.0.0"; sha256 = "0453382r1f39hgvw631lk1hx2kas8xa1xjr6xq4wshan8d62xgd7"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging.Configuration"; version = "2.2.0"; sha256 = "1npblvkb4f251277sm6mc1xj2yww6nzag0azfz772nzkbdpj1q19"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging.Console"; version = "2.2.0"; sha256 = "1g4wcd1kac0b4l0k4blr3qxpyfaf092cs2wnsjb3paj60rhr5agf"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging.Debug"; version = "2.2.0"; sha256 = "1z5zzf43dw5xzvylkcgdi0q2mfhig6fmw2p5mxdxx916c5s007np"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging.EventSource"; version = "2.2.0"; sha256 = "18kz2bm07zfj6d4j17zkj2zai7fmbsaq4xh312nh1x4468vi088g"; })
-  (fetchNuGet { name = "Microsoft.Extensions.ObjectPool"; version = "2.1.0"; sha256 = "0i0vmfc3ch7xa3awmbw3byylprfl2d6dp7lgm8k8f215kxzl1wdn"; })
-  (fetchNuGet { name = "Microsoft.Extensions.ObjectPool"; version = "2.2.0"; sha256 = "0n1q9lvc24ii1shzy575xldgmz7imnk4dswwwcgmzz93klri9r1z"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Options"; version = "2.1.0"; sha256 = "0w9644sryd1c6r3n4lq2cgd5pn6jl3k5m38a05m7vjffa4m2spd2"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Options"; version = "2.2.0"; sha256 = "1b20yh03fg4nmmi3vlf6gf13vrdkmklshfzl3ijygcs4c2hly6v0"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Options"; version = "3.0.0"; sha256 = "1vzx8ha74y542n6w54vf60676aaz01ryklz6rm70w83v7sg2fxg3"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "2.2.0"; sha256 = "0w95rpxl0fzcz7rp8zabv3c9bvkj9ma2mj1hrx9nipsc4dnqp4jd"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Primitives"; version = "2.1.0"; sha256 = "1r9gzwdfmb8ysnc4nzmyz5cyar1lw0qmizsvrsh252nhlyg06nmb"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Primitives"; version = "2.2.0"; sha256 = "0znah6arbcqari49ymigg3wiy2hgdifz8zsq8vdc3ynnf45r7h0c"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Primitives"; version = "3.0.0"; sha256 = "1d89yybxm7c30h5w79psybmpvy0pw7ha9r0y70f7i0kxgp8n62bk"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Primitives"; version = "3.1.8"; sha256 = "1p48hk3r9ikv36wdpwdrbvaccziazncf7nl60fr82i04199lfhgl"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Primitives"; version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; })
-  (fetchNuGet { name = "Microsoft.Extensions.WebEncoders"; version = "2.2.0"; sha256 = "1mhnichccw6mjf37d38q2i1kr7qp485m7apa1b872ji0q16yy1y3"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
-  (fetchNuGet { name = "Microsoft.NETFramework.ReferenceAssemblies"; version = "1.0.0"; sha256 = "0na724xhvqm63vq9y18fl9jw9q2v99bdwr353378s5fsi11qzxp9"; })
-  (fetchNuGet { name = "Microsoft.NETFramework.ReferenceAssemblies.net461"; version = "1.0.0"; sha256 = "00vkn4c6i0rn1l9pv912y0wgb9h6ks76qah8hvk441nari8fqbm1"; })
-  (fetchNuGet { name = "Microsoft.Net.Http.Headers"; version = "2.1.0"; sha256 = "1a02bll0flsin9grd3jxbi76ycl42qamynalbp7qbqcsprabw3ai"; })
-  (fetchNuGet { name = "Microsoft.Net.Http.Headers"; version = "2.2.0"; sha256 = "0w6lrk9z67bcirq2cj2ldfhnizc6id77ba6i30hjzgqjlyhh1gx5"; })
-  (fetchNuGet { name = "Microsoft.Win32.Registry"; version = "4.5.0"; sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q"; })
-  (fetchNuGet { name = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
-  (fetchNuGet { name = "MimeMapping"; version = "1.0.1.30"; sha256 = "03523g0kniwqzm30arnkds79j2gqjmhp5297xg4472l6iyfwwmln"; })
-  (fetchNuGet { name = "Mono.Posix.NETStandard"; version = "1.0.0"; sha256 = "0xlja36hwpjm837haq15mjh2prcf68lyrmn72nvgpz8qnf9vappw"; })
-  (fetchNuGet { name = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "10.0.1"; sha256 = "15ncqic3p2rzs8q8ppi0irl2miq75kilw4lh8yfgjq96id0ds3hv"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "11.0.2"; sha256 = "1784xi44f4k8v1fr696hsccmwpy94bz7kixxqlri98zhcxn406b2"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "12.0.3"; sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
-  (fetchNuGet { name = "Newtonsoft.Json.Bson"; version = "1.0.1"; sha256 = "1r1hvj5gjl466bya2bfl5aaj8rbwyf5x1msg710wf3k2llbci1xa"; })
-  (fetchNuGet { name = "Newtonsoft.Json.Bson"; version = "1.0.2"; sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35"; })
-  (fetchNuGet { name = "NLog"; version = "4.7.5"; sha256 = "0bx890dmwpx569982m532ibxlfh0n24hz1hkkxnxkpvximm4hsm5"; })
-  (fetchNuGet { name = "NLog.Extensions.Logging"; version = "1.6.4"; sha256 = "0yxx1mvz2d54kq00x38dgql8lssjxv5mk1yvx73v3qff1qxi7iyz"; })
-  (fetchNuGet { name = "NLog.Web.AspNetCore"; version = "4.9.3"; sha256 = "1mv5zaiyysp9j3h90i1v1rk0b6a4cv8ll6l8gj634y6ppshb8xkj"; })
-  (fetchNuGet { name = "Polly"; version = "7.2.1"; sha256 = "0cjmjkr2kq2q2cch30m95hms8mq73pzcqcirzvpzcl0rirvp3map"; })
-  (fetchNuGet { name = "SharpZipLib"; version = "1.2.0"; sha256 = "0ynhx1qkjm723bwjwsrdviw1d2s9azndpa12dagrjshhma3igqm5"; })
-  (fetchNuGet { name = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
-  (fetchNuGet { name = "System.Buffers"; version = "4.4.0"; sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19"; })
-  (fetchNuGet { name = "System.Buffers"; version = "4.5.0"; sha256 = "1ywfqn4md6g3iilpxjn5dsr0f5lx6z0yvhqp4pgjcamygg73cz2c"; })
-  (fetchNuGet { name = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; })
-  (fetchNuGet { name = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
-  (fetchNuGet { name = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
-  (fetchNuGet { name = "System.Collections.Immutable"; version = "1.3.1"; sha256 = "17615br2x5riyx8ivf1dcqwj6q3ipq1bi5hqhw54yfyxmx38ddva"; })
-  (fetchNuGet { name = "System.Collections.Immutable"; version = "1.5.0"; sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06"; })
-  (fetchNuGet { name = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
-  (fetchNuGet { name = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
-  (fetchNuGet { name = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
-  (fetchNuGet { name = "System.Diagnostics.DiagnosticSource"; version = "4.5.0"; sha256 = "1y8m0p3127nak5yspapfnz25qc9x53gqpvwr3hdpsvrcd2r1pgyj"; })
-  (fetchNuGet { name = "System.Diagnostics.EventLog"; version = "5.0.0"; sha256 = "0cii8iq25awhlc3bl8i863b9415qisnhd3fkdwf41v4bpli6i5fr"; })
-  (fetchNuGet { name = "System.Diagnostics.FileVersionInfo"; version = "4.3.0"; sha256 = "094hx249lb3vb336q7dg3v257hbxvz2jnalj695l7cg5kxzqwai7"; })
-  (fetchNuGet { name = "System.Diagnostics.StackTrace"; version = "4.3.0"; sha256 = "0ash4h9k0m7xsm0yl79r0ixrdz369h7y922wipp5gladmlbvpyjd"; })
-  (fetchNuGet { name = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
-  (fetchNuGet { name = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; })
-  (fetchNuGet { name = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
-  (fetchNuGet { name = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
-  (fetchNuGet { name = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
-  (fetchNuGet { name = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
-  (fetchNuGet { name = "System.IO.FileSystem.AccessControl"; version = "5.0.0"; sha256 = "0ixl68plva0fsj3byv76bai7vkin86s6wyzr8vcav3szl862blvk"; })
-  (fetchNuGet { name = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
-  (fetchNuGet { name = "System.IO.Pipelines"; version = "4.5.2"; sha256 = "045sn3vyk5xysjjm19q4dj5c1g1rf8l98n4qsl9pl9id4fn08yq1"; })
-  (fetchNuGet { name = "System.IO.Pipelines"; version = "4.6.0"; sha256 = "0r9ygjbxpyi6jgb67qnpbp42b7yvvhgmcjxnb50k3lb416claavh"; })
-  (fetchNuGet { name = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
-  (fetchNuGet { name = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.0"; sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.1"; sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.2"; sha256 = "1g24dwqfcmf4gpbgbhaw1j49xmpsz389l6bw2xxbsmnzvsf860ld"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
-  (fetchNuGet { name = "System.Numerics.Vectors"; version = "4.4.0"; sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; })
-  (fetchNuGet { name = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
-  (fetchNuGet { name = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
-  (fetchNuGet { name = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
-  (fetchNuGet { name = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
-  (fetchNuGet { name = "System.Reflection.Metadata"; version = "1.4.2"; sha256 = "08b7b43vczlliv8k7q43jinjfrxwpljsglw7sxmc6sd7d54pd1vi"; })
-  (fetchNuGet { name = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
-  (fetchNuGet { name = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
-  (fetchNuGet { name = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
-  (fetchNuGet { name = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.0"; sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.1"; sha256 = "1xcrjx5fwg284qdnxyi2d0lzdm5q4frlpkp0nf6vvkx1kdz2prrf"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.3"; sha256 = "1afi6s2r1mh1kygbjmfba6l4f87pi5sg13p4a48idqafli94qxln"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; })
-  (fetchNuGet { name = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.0.0"; sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
-  (fetchNuGet { name = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
-  (fetchNuGet { name = "System.Security.AccessControl"; version = "4.5.0"; sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0"; })
-  (fetchNuGet { name = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Cng"; version = "4.5.0"; sha256 = "1pm4ykbcz48f1hdmwpia432ha6qbb9kbrxrrp7cg3m8q8xn52ngn"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
-  (fetchNuGet { name = "System.Security.Cryptography.ProtectedData"; version = "5.0.0"; sha256 = "0jq1rcj5af2ydswld8ga3dyw2yi4c63wvb986b5kqsvpkwwc8x1b"; })
-  (fetchNuGet { name = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Xml"; version = "4.5.0"; sha256 = "1rk40x0msf9k7sxnjyizagjns1z25dh3cf22bx6hsx6vhf0sk08l"; })
-  (fetchNuGet { name = "System.Security.Permissions"; version = "4.5.0"; sha256 = "192ww5rm3c9mirxgl1nzyrwd18am3izqls0hzm0fvcdjl5grvbhm"; })
-  (fetchNuGet { name = "System.Security.Principal.Windows"; version = "4.5.0"; sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86"; })
-  (fetchNuGet { name = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
-  (fetchNuGet { name = "System.ServiceProcess.ServiceController"; version = "5.0.0"; sha256 = "1annp5kwwif6vfqn1x7vv3izwznxzb8ifvw3g9q3v0rrll26i99h"; })
-  (fetchNuGet { name = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
-  (fetchNuGet { name = "System.Text.Encoding.CodePages"; version = "4.5.0"; sha256 = "19x38911pawq4mrxrm04l2bnxwxxlzq8v8rj4cbxnfjj8pnd3vj3"; })
-  (fetchNuGet { name = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; })
-  (fetchNuGet { name = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
-  (fetchNuGet { name = "System.Text.Encodings.Web"; version = "4.5.0"; sha256 = "0srd5bva52n92i90wd88pzrqjsxnfgka3ilybwh7s6sf469y5s53"; })
-  (fetchNuGet { name = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
-  (fetchNuGet { name = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.5.1"; sha256 = "1ikrplvw4m6pzjbq3bfbpr572n4i9mni577zvmrkaygvx85q3myw"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.5.2"; sha256 = "1sh63dz0dymqcwmprp0nadm77b83vmm7lyllpv578c397bslb8hj"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Parallel"; version = "4.3.0"; sha256 = "1rr3qa4hxwyj531s4nb3bwrxnxxwz617i0n9gh6x7nr7dd3ayzgh"; })
-  (fetchNuGet { name = "System.Threading.Thread"; version = "4.3.0"; sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4"; })
-  (fetchNuGet { name = "System.ValueTuple"; version = "4.3.0"; sha256 = "1227k7fxbxapq7dms4lvwwjdf3pr1jcsmhy2nzzhj6g6hs530hxn"; })
-  (fetchNuGet { name = "System.ValueTuple"; version = "4.5.0"; sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"; })
-  (fetchNuGet { name = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
-  (fetchNuGet { name = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
-  (fetchNuGet { name = "System.Xml.XmlDocument"; version = "4.3.0"; sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi"; })
-  (fetchNuGet { name = "System.Xml.XPath"; version = "4.3.0"; sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci"; })
-  (fetchNuGet { name = "System.Xml.XPath.XDocument"; version = "4.3.0"; sha256 = "1wxckyb7n1pi433xzz0qcwcbl1swpra64065mbwwi8dhdc4kiabn"; })
-  (fetchNuGet { name = "YamlDotNet"; version = "8.1.2"; sha256 = "1lmi5mdw4067a8yk8gv9kilv1hljflkc45pr5vvz8n09af6gn78b"; })
+  (fetchNuGet { pname = "AngleSharp"; version = "0.16.1"; sha256 = "11r5fpm8009pwdlr0vblqbvngpm5mb7jc565sqb3rnwbd5yyrrnk"; })
+  (fetchNuGet { pname = "Autofac"; version = "6.3.0"; sha256 = "0zg0lsqzb8hh7l97mfd2z3fxdab86sbmxkaprzi41v0hs1x3jd9b"; })
+  (fetchNuGet { pname = "Autofac.Extensions.DependencyInjection"; version = "7.2.0"; sha256 = "0spr5yn4lhkyg3wm2xqjx857wxim4llc7i8291gw7hkvr6yiw8m6"; })
+  (fetchNuGet { pname = "AutoMapper"; version = "10.1.1"; sha256 = "1l1p9g7f7finr8laklbm7h2c45k0swl47iq0ik68js5s6pzvd6f8"; })
+  (fetchNuGet { pname = "BencodeNET"; version = "4.0.0"; sha256 = "05kzpqs70g7mg7cd9v91a9m40pwlcjf1myl7lpqvl6asp6mnjf86"; })
+  (fetchNuGet { pname = "CommandLineParser"; version = "2.8.0"; sha256 = "1m32xyilv2b7k55jy8ddg08c20glbcj2yi545kxs9hj2ahanhrbb"; })
+  (fetchNuGet { pname = "coverlet.msbuild"; version = "3.1.0"; sha256 = "1rx5x2zks2aryy6mbly86a83gxzm0y7bbx9834b3224673rs7ra0"; })
+  (fetchNuGet { pname = "DotNet4.SocksProxy"; version = "1.4.0.1"; sha256 = "1ig2a9ism041a6qrqkxa9xhvp19yxzcadlap5i1kz97f05a2msvb"; })
+  (fetchNuGet { pname = "FlareSolverrSharp"; version = "2.1.0"; sha256 = "17khlhfl3pg2619pyn3rbyw5hbjwra3rwzrkiqcwkikfla5185gf"; })
+  (fetchNuGet { pname = "FluentAssertions"; version = "6.2.0"; sha256 = "10zhr7hgzm9w0gfg0sa0h2qdlna0w7n2jl72s4j7hi6mf68px2xm"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore"; version = "2.2.0"; sha256 = "0vsv7hcsmnsgqhs67zp207n7m9ix3dbwm1p2ch3dizkcdvz235f9"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Antiforgery"; version = "2.2.0"; sha256 = "026wjdwjx0lgccqv0xi5gxylxzgz5ifgxf25p5pqakgrhkz0a59l"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Authentication"; version = "2.2.0"; sha256 = "0yqfzd0qq5ypmk6b9gnb1yscl75fxx9frq808cxs70ay7y7jqmgn"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Authentication.Abstractions"; version = "2.2.0"; sha256 = "0vj7fhpk0d95nkkxz4q0rma6pb4ym96mx6nms4603y0l19h0k5yh"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Authentication.Cookies"; version = "2.2.0"; sha256 = "0x7i7dmvq5ph8f21ajgb56fjvv31r4zn6pj8d7rsx0y6067vcp5d"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Authentication.Core"; version = "2.2.0"; sha256 = "1wgn45fmdi7dk9cl4cdhzgqc9mdxhfw7zg8zwns3j7qgrhlv6k8h"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Authorization"; version = "2.2.0"; sha256 = "1mpq8pmxlxfa625k2ghv6xcyy2wdpwv56xzya9mvmlnh50h1i8rx"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Authorization.Policy"; version = "2.2.0"; sha256 = "1d1zh65kfjf81j21ssmhr465vx08bra8424vgnrb22gdx03mhwd2"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Connections.Abstractions"; version = "2.2.0"; sha256 = "1rl94r8b0zq14f3dhfnvfjj1ivr81iw9zh5kdgs3zkdv0xc9x21j"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Cors"; version = "2.2.0"; sha256 = "0qskbz87i74kfbklxqfyqaccyba21kkx2lcdfa54kxj9r8daq7sc"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Cryptography.Internal"; version = "2.2.0"; sha256 = "01lg2fx85b47ldgdrhs6clsivj35x54xwc9r5xk3f1v8rr3gycsv"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Cryptography.Internal"; version = "6.0.0"; sha256 = "0vd6wxlbn3ww0a3xr35gsapfpzwr1hbbzwvjb3y7cbscah1n557l"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.DataProtection"; version = "2.2.0"; sha256 = "09lzbp084xxy1xxfbxpqdff8phv2pzd1n5v30xfm03hhl7a038gx"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.DataProtection"; version = "6.0.0"; sha256 = "1zdja8jvl643l5a39yfvklbiv4kxi41i8xri9cpbq7ldpq3lr7gm"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.DataProtection.Abstractions"; version = "2.2.0"; sha256 = "1gi4hpssmrrdf5lm6idkhvqbfy12bx14976y4gbhmx9z8lxaqcfz"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.DataProtection.Abstractions"; version = "6.0.0"; sha256 = "0a3ajznvw30m3aq66vdya4bkcjcrr1dsn3cy7756h1f489jwr1ic"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Diagnostics"; version = "2.2.0"; sha256 = "0hq5s2h0k2714352bdz2s3c3m6spkn4ckfw3pv9c4rmn6adbw9b1"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Diagnostics.Abstractions"; version = "2.2.0"; sha256 = "061cdhjh5w2f1frhimcgk68vx8p743jb9h4qik3lm1c734r0drm0"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.HostFiltering"; version = "2.2.0"; sha256 = "06wbgkbh24w9yxz6g8446l7nnjm3rdp1wklri710zqzr7zbfcx43"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Hosting"; version = "2.2.0"; sha256 = "1nk61mj7a4ri3p47xd0j520szwj05xid16r2bld85cp70xnpxjhx"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Hosting.Abstractions"; version = "2.1.0"; sha256 = "0sdzvjf6bz0krr2bm77zdyxpjcddadq2fqd3b4yybd6my3b5f7j2"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Hosting.Abstractions"; version = "2.2.0"; sha256 = "043k651vbfshh3s997x42ymj8nb32419m7q3sjw5q2c27anrhfhv"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Hosting.Server.Abstractions"; version = "2.1.0"; sha256 = "1xm8913slkx0cvk7gcbk1sf9518xmrajjjp3z8qhr5xdhdx1b879"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Hosting.Server.Abstractions"; version = "2.2.0"; sha256 = "0nz73bwrvhc1n7gd7xxm3p5ww2wx9qr9m9i43y20gh0c54adkygh"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Html.Abstractions"; version = "2.2.0"; sha256 = "1z5lkzb9h9wprvyxyjw4fj7bjypaibsw0cj4bz769hf0abjz8y1v"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http"; version = "2.1.0"; sha256 = "1nrhbsr58fh6hpzxq75qvrimh0lk6pdwghs3cbv0f1zk90rar1cq"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http"; version = "2.2.0"; sha256 = "1fcrafpa57sab3as18idqknzlxkx49n4sxzlzik3sj6pcji5j17q"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http"; version = "2.2.2"; sha256 = "09mgjvpqdyylz9dbngql9arx46lfkiczjdf7aqr9asd5vjqlv2c8"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Abstractions"; version = "2.1.0"; sha256 = "0jz5w1y661cxbh1sakyjh0813sqrc456mj53w3482ilb5xh5zhbf"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Abstractions"; version = "2.2.0"; sha256 = "13s8cm6jdpydxmr0rgmzrmnp1v2r7i3rs7v9fhabk5spixdgfy6b"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Extensions"; version = "2.2.0"; sha256 = "118gp1mfb8ymcvw87fzgjqwlc1d1b0l0sbfki291ydg414cz3dfn"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Features"; version = "2.1.0"; sha256 = "1mwpvbq0z982f9r5ik6k15h18qviy735i55hld9vfk8694k9zwcj"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Features"; version = "2.2.0"; sha256 = "0xrlq8i61vzhzzy25n80m7wh2kn593rfaii3aqnxdsxsg6sfgnx1"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.HttpOverrides"; version = "2.2.0"; sha256 = "1pbmmczxilgrf4qyaql88dc3av7kaixb1r36358kil68gl3irjy6"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.JsonPatch"; version = "2.2.0"; sha256 = "07cihb5sqkavg42nvircdwjp0b67mhrla97jgx285zdjphplg4h2"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.JsonPatch"; version = "6.0.0"; sha256 = "1hczz9kq3wwhpa8xi1xcalqjf03lhhnlvir2cmhxa51h2f1afx89"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Localization"; version = "2.2.0"; sha256 = "08knc70cy7ycid5sbbbzy6my4b7ddj4j760k5xf1qnfb0njxhfh7"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc"; version = "2.2.0"; sha256 = "16jrikcywkd4r4jh551p8gxxw6hj3aizdzd5i7agb06gwpgqqv9c"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Abstractions"; version = "2.2.0"; sha256 = "09p447ipd19517vy8xx9ykvspn6b4fgbm2rskpmzyw41x9wz4k0b"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Analyzers"; version = "2.2.0"; sha256 = "1b975z00bzgh2z5hina4bzfksvc2vgnbzmi8g3q962hspg6ylh9f"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.ApiExplorer"; version = "2.2.0"; sha256 = "1ryhd1md30fgrli74qv45mhldivbasdvydw0lllg6x6jzpyrkwpa"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Core"; version = "2.2.0"; sha256 = "1k6lkgk9zak5sczvyjbwgqnfcwcg9ks74wznqfzck8c6hns1by0m"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Cors"; version = "2.2.0"; sha256 = "077vjxn0k5rr4s675g50rzkns6scgijxxh5iib59k77ldwpdr14q"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.DataAnnotations"; version = "2.2.0"; sha256 = "0vdhdjarh4az7g71gkvmhq6xpvwhh8si3sbrpdwb8p60i94cdyl6"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Formatters.Json"; version = "2.2.0"; sha256 = "0421fcf2z8a6z81ql123ili32wbr3x25zpq17xjf4s9fmsr0069a"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Localization"; version = "2.2.0"; sha256 = "0d27xirwsr3j7jacsrz6g2r4py35hgzjyy6ak6gkd07cm707wgc6"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.NewtonsoftJson"; version = "6.0.0"; sha256 = "1zxzy4xb0jnnx7pri8pxkc1kwgpz58daxqy9ypyhf3wx1jdqy3w3"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Razor"; version = "2.2.0"; sha256 = "06fqg7rfyvfj3hdppkhy37ddjff2d6pg7khj6lccs9lwc732yr7q"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Razor.Extensions"; version = "2.2.0"; sha256 = "04javqbzv7mkakqjl40j429giaagjj7hmwcljrgj8q1jknk0x9xc"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.RazorPages"; version = "2.2.0"; sha256 = "0zqyqfxzl3lkqfy9chd0ipani75q3109imlxrnhdfiwmxrd8xqbm"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.TagHelpers"; version = "2.2.0"; sha256 = "16aprk81sp2i0n0dmp318cm65mk03i58rhpijm4fz4xz51j7z8li"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.ViewFeatures"; version = "2.2.0"; sha256 = "1isflvb0ff5nfqnvdlyvmszkd42axbbz0xmdaf0d7sah0qkvvi7n"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Razor"; version = "2.2.0"; sha256 = "02ybprvsi59nwa0fdq99jvx7r26bs2bg3xjxkilc495clgg98zp0"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Razor.Design"; version = "2.2.0"; sha256 = "03pcdcbmyw050hag588b7caqilnq3cb6ndq5g6j0r7j7wf3plsn6"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Razor.Language"; version = "2.2.0"; sha256 = "0n58qdipwy5wymfhgm3anickwvnf4svb9ipbrby7ksrhhrkqvx4z"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Razor.Runtime"; version = "2.2.0"; sha256 = "1n9j5hjinm5gp39nwmcf26dwg1psl7sf7xkxnvfxsnl44mbcy695"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.ResponseCaching.Abstractions"; version = "2.2.0"; sha256 = "01sp2i2bgcn6blw1mcvg5nrlc97c9czyawwvgfi6ydzdvs6ang37"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.ResponseCompression"; version = "2.2.0"; sha256 = "0madnk92752alpc7cv2bazqlihhzgl3yj1s9ajhi3w09vg8n8pz4"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Rewrite"; version = "2.2.0"; sha256 = "0f21v96wkvxcxfz5a9nvhqf1dshvgg34g9075fb0nd57nsw289af"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Routing"; version = "2.2.0"; sha256 = "12kv602j2rxp43l1v3618yz3pdd7hqc3r98ya0bqz6y2ppvhbyws"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Routing.Abstractions"; version = "2.1.0"; sha256 = "1f8xixbg749nhv10vaf3jmdv9zjdw822hw7ikwa97h70767d8xz5"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Routing.Abstractions"; version = "2.2.0"; sha256 = "0d9wwz1rsh1fslbv1y72jpkvqv2v9n28rl3vslcg0x74lp2678ly"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Server.IIS"; version = "2.2.0"; sha256 = "0cgyw8xjr6kgvrj7rn072mr97sh4xj95f635vmjrx10b8rnypmkk"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Server.IISIntegration"; version = "2.2.0"; sha256 = "1dmk68cyh02g9fcg1bxp90dxl7xpqiqikdlh1835jgm44m985mpc"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Server.Kestrel"; version = "2.2.0"; sha256 = "0wh7hf09i9qxs9r0d5xdcx3qingsid9nxlwcyjg2r44pjs6cg1rf"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Server.Kestrel.Core"; version = "2.2.0"; sha256 = "075ffds8hwp8ps0zf84bsv9pgiaqry9njc403qack701aybci97r"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Server.Kestrel.Https"; version = "2.2.0"; sha256 = "08z447wrbzy3l9lmmas353nr17sg9yccwcg62l9ax9a6n1wvds8c"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions"; version = "2.2.0"; sha256 = "08bj95zy4zszyx1rsy8v2ai9kg4120ij6yi0zillwx3ndb3q7vfb"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets"; version = "2.2.0"; sha256 = "0vhicfnv12sz2c81czdgdlffcgrhnn1jzz9zwy3a9c2n4rn8k9k5"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.StaticFiles"; version = "2.2.0"; sha256 = "1bpggypnx8ai11jqlbyb6cir3x7cnw1mvqh6h88f3b0gg8wxnnpj"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.WebUtilities"; version = "2.1.0"; sha256 = "148snpiq4rhm44gzx8wn9ljfb286h7vd1axc9by4r4fxp0gix0kf"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.WebUtilities"; version = "2.2.0"; sha256 = "0cs1g4ing4alfbwyngxzgvkrv7z964isv1j9dzflafda4p0wxmsi"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.1.0"; sha256 = "1dq5yw7cy6s42193yl4iqscfw5vzkjkgv0zyy32scr4jza6ni1a1"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "6.0.0"; sha256 = "15gqy2m14fdlvy1g59207h5kisznm355kbw010gy19vh47z8gpz3"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "1.1.0"; sha256 = "08r667hj2259wbim1p3al5qxkshydykmb7nd9ygbjlg4mmydkapc"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "2.8.0"; sha256 = "0g4h41fs0r8lqh9pk9s4mc1090kdpa6sbxq4rc866s8hnq9s1h4j"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "2.8.0"; sha256 = "0p1xvw1h2fmnxywv1j4x6p3rgarpc8mfwfgn0vflk5xfnc961f6w"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Razor"; version = "2.2.0"; sha256 = "03cm9danxxnsnmrzfz2swz6zhckkgg6hrz1ycnvnjrbpk3w4v0d6"; })
+  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.0.0"; sha256 = "18gdbsqf6i79ld4ikqr4jhx9ndsggm865b5xj1xmnmgg12ydp19a"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.5.0"; sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
+  (fetchNuGet { pname = "Microsoft.DiaSymReader.Native"; version = "1.7.0"; sha256 = "0l2w3xpr7dpni20mqx41hqdzkrl0k6w9a0wqmjzdqv5f1jrwhfxn"; })
+  (fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "2.1.0"; sha256 = "1qydvyyinj3b5mraazjal3n2k7jqhn05b6n1a2f3qjkqkxi63dmy"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Abstractions"; version = "2.2.0"; sha256 = "0hhxc5dp52faha1bdqw0k426zicsv6x1kfqi30m9agr0b2hixj52"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Memory"; version = "2.2.0"; sha256 = "0bzrsn5vas86w66bd04xilnlb21nx4l6lz7d3acvy6y8ir2vb5dv"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "3.1.8"; sha256 = "1px3f7snw2iry7h7gfxzq0vg88cc8bf5kga22p0nkrkpgrm9hasa"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "6.0.0"; sha256 = "1zdyai2rzngmsp3706d12qrdk315c1s3ja218fzb3nc3wd1vz0s8"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.1.0"; sha256 = "03gzlr3z9j1xnr1k6y91zgxpz3pj27i3zsvjwj7i8jqnlqmk7pxd"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.2.0"; sha256 = "1fv5277hyhfqmc0gqszyqb1ilwnijm8kc9606yia6hwr8pxyg674"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "3.1.8"; sha256 = "05mlbia6vag0a0zfflv1m3ix48230wx0yib5hp7zsc72jpcmjd7q"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "5.0.0"; sha256 = "0fqxkc9pjxkqylsdf26s9q21ciyk56h1w33pz3v1v4wcv8yv1v6k"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "6.0.0"; sha256 = "0w6wwxv12nbc3sghvr68847wc9skkdgsicrz3fx4chgng1i3xy0j"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "2.1.0"; sha256 = "0x1888w5ypavvszfmpja9krgc64527prs75vm8xbf9fv3rgsplql"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "2.2.0"; sha256 = "10qyjdkymdmag3r807kvbnwag4j3nz65i4cwikbd77jjvz92ya3j"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.CommandLine"; version = "2.2.0"; sha256 = "09kc7a6g6r9lxcm7y445bmnmkhxkxxvmx6fxh99ixb8a1fkxrvfi"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.EnvironmentVariables"; version = "2.2.0"; sha256 = "1af6003lmw6ms53m8wsvp9rx1alr8r9pharf6azaqcw4m99vd8c5"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.FileExtensions"; version = "2.2.0"; sha256 = "0bwk1kh6q259nmnly90j5rbbzi9w5gigq5vyjr31c1br4j8cjmqd"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Json"; version = "2.2.0"; sha256 = "18cmrvlhc71bxplldbgwfjg29qflcaf4rrg2avp4g03fqwma6vvc"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.UserSecrets"; version = "2.2.0"; sha256 = "15qarrjb7q463hsfkkja3yd34zf370qwjy22586w4r22rpxwirwp"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "2.2.0"; sha256 = "0lvv45rvq1xbf47lz818rjydc776zk8mf7svpzh1dml4qwlx9zck"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "5.0.0"; sha256 = "15sdwcyzz0qlybwbdq854bn3jk6kx7awx28gs864c4shhbqkppj4"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.1.0"; sha256 = "0c0cx8r5xkjpxmcfp51959jnp55qjvq28d9vaslk08avvi1by12s"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.2.0"; sha256 = "1jyzfdr9651h3x6pxwhpfbb9mysfh8f8z1jvy4g117h9790r9zx5"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "5.0.0"; sha256 = "17cz6s80va0ch0a6nqa1wbbbp3p8sqxb96lj4qcw67ivkp2yxiyj"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "6.0.0"; sha256 = "1vi67fw7q99gj7jd64gnnfr4d2c0ijpva7g9prps48ja6g91x6a9"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "2.1.0"; sha256 = "0dl4qhjgifm6v3jsfzvzkvddyic77ggp9fq49ah661v45gk6ilgd"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "2.1.0"; sha256 = "1sxls5f5cgb0wr8cwb05skqmz074683hrhmd3hhq6m5dasnzb8n3"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "2.2.0"; sha256 = "1f83ffb4xjwljg8dgzdsa3pa0582q6b4zm0si467fgkybqzk3c54"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "6.0.0"; sha256 = "1fbqmfapxdz77drcv1ndyj2ybvd2rv4c9i9pgiykcpl4fa6dc65q"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Composite"; version = "2.2.0"; sha256 = "0k3qfxb0pn9b63grbf9jv7xw40gk6m1djmi3c4inwys7lxcj2k18"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Physical"; version = "2.2.0"; sha256 = "0lrq4bxf67pw6n9kzwzqsnxkad2ygh2zn46hjias8j7aqljglh7x"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileSystemGlobbing"; version = "2.2.0"; sha256 = "01jw7s1nb44n65qs3rk7xdzc419qwl0s5c34k031f1cc5ag3jvc2"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "2.1.0"; sha256 = "04vm9mdjjzg3lpp2rzpgkpn8h5bzdl3bwcr22lshd3kp602ws4k9"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "2.2.0"; sha256 = "1xc7xr1nq7akfahyl5in9iyxrygap2xi9nxh39rfm37sf8lk55v1"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "6.0.0"; sha256 = "1mwjx6li4a82nb589763whpnhf5hfy1bpv1dzqqvczb1lhxhzhlj"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Localization"; version = "2.2.0"; sha256 = "1k73kk5qmrvdyd7l8qxp19crw18f2p5dgk3cjx59g7vf3rkgmc6k"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Localization.Abstractions"; version = "2.2.0"; sha256 = "1yzqs5x97rj6wlg0rylj0xi3dn1bw4ps26zdqsijx621jl1r97gy"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "2.1.0"; sha256 = "0dii8i7s6libfnspz2xb96ayagb4rwqj2kmr162vndivr9rmbm06"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "2.2.0"; sha256 = "0bx3ljyvvcbikradq2h583rl72h8bxdz33aghk026cxzpv2mm3wm"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "5.0.0"; sha256 = "1qa1l18q2jh9azya8gv1p8anzcdirjzd9dxxisb4911i9m1648i3"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "2.1.0"; sha256 = "1gvgif1wcx4k6pv7gc00qv1hid945jdywy1s50s33q0hfd91hbnj"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "2.2.0"; sha256 = "02w7hp6jicr7cl5p456k2cmrjvvhm6spg5kxnlncw3b72358m5wl"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "5.0.0"; sha256 = "1yza38675dbv1qqnnhqm23alv2bbaqxp0pb7zinjmw8j2mr5r6wc"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "6.0.0"; sha256 = "0b75fmins171zi6bfdcq1kcvyrirs8n91mknjnxy4c3ygi1rrnj0"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Configuration"; version = "2.2.0"; sha256 = "1npblvkb4f251277sm6mc1xj2yww6nzag0azfz772nzkbdpj1q19"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Console"; version = "2.2.0"; sha256 = "1g4wcd1kac0b4l0k4blr3qxpyfaf092cs2wnsjb3paj60rhr5agf"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Debug"; version = "2.2.0"; sha256 = "1z5zzf43dw5xzvylkcgdi0q2mfhig6fmw2p5mxdxx916c5s007np"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.EventSource"; version = "2.2.0"; sha256 = "18kz2bm07zfj6d4j17zkj2zai7fmbsaq4xh312nh1x4468vi088g"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.ObjectPool"; version = "2.1.0"; sha256 = "0i0vmfc3ch7xa3awmbw3byylprfl2d6dp7lgm8k8f215kxzl1wdn"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.ObjectPool"; version = "2.2.0"; sha256 = "0n1q9lvc24ii1shzy575xldgmz7imnk4dswwwcgmzz93klri9r1z"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "2.1.0"; sha256 = "0w9644sryd1c6r3n4lq2cgd5pn6jl3k5m38a05m7vjffa4m2spd2"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "2.2.0"; sha256 = "1b20yh03fg4nmmi3vlf6gf13vrdkmklshfzl3ijygcs4c2hly6v0"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "5.0.0"; sha256 = "1rdmgpg770x8qwaaa6ryc27zh93p697fcyvn5vkxp0wimlhqkbay"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "6.0.0"; sha256 = "008pnk2p50i594ahz308v81a41mbjz9mwcarqhmrjpl2d20c868g"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "2.2.0"; sha256 = "0w95rpxl0fzcz7rp8zabv3c9bvkj9ma2mj1hrx9nipsc4dnqp4jd"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "2.1.0"; sha256 = "1r9gzwdfmb8ysnc4nzmyz5cyar1lw0qmizsvrsh252nhlyg06nmb"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "2.2.0"; sha256 = "0znah6arbcqari49ymigg3wiy2hgdifz8zsq8vdc3ynnf45r7h0c"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "3.1.8"; sha256 = "1p48hk3r9ikv36wdpwdrbvaccziazncf7nl60fr82i04199lfhgl"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "6.0.0"; sha256 = "1kjiw6s4yfz9gm7mx3wkhp06ghnbs95icj9hi505shz9rjrg42q2"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.WebEncoders"; version = "2.2.0"; sha256 = "1mhnichccw6mjf37d38q2i1kr7qp485m7apa1b872ji0q16yy1y3"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
+  (fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies"; version = "1.0.0"; sha256 = "0na724xhvqm63vq9y18fl9jw9q2v99bdwr353378s5fsi11qzxp9"; })
+  (fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net461"; version = "1.0.0"; sha256 = "00vkn4c6i0rn1l9pv912y0wgb9h6ks76qah8hvk441nari8fqbm1"; })
+  (fetchNuGet { pname = "Microsoft.Net.Http.Headers"; version = "2.1.0"; sha256 = "1a02bll0flsin9grd3jxbi76ycl42qamynalbp7qbqcsprabw3ai"; })
+  (fetchNuGet { pname = "Microsoft.Net.Http.Headers"; version = "2.2.0"; sha256 = "0w6lrk9z67bcirq2cj2ldfhnizc6id77ba6i30hjzgqjlyhh1gx5"; })
+  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.0.0"; sha256 = "0bknyf5kig5icwjxls7pcn51x2b2qf91dz9qv67fl70v6cczaz2r"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.0.0"; sha256 = "1bh5scbvl6ndldqv20sl34h4y257irm9ziv2wyfc3hka6912fhn7"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.0.0"; sha256 = "06mn31cgpp7d8lwdyjanh89prc66j37dchn74vrd9s588rq0y70r"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.5.0"; sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
+  (fetchNuGet { pname = "MimeMapping"; version = "1.0.1.37"; sha256 = "19kkfjrvx9akm4l8z1dddkv7mfx4k2dkn5b69690z93mjpsa0l2g"; })
+  (fetchNuGet { pname = "Mono.Posix.NETStandard"; version = "1.0.0"; sha256 = "0xlja36hwpjm837haq15mjh2prcf68lyrmn72nvgpz8qnf9vappw"; })
+  (fetchNuGet { pname = "MSTest.TestAdapter"; version = "2.2.7"; sha256 = "0285pdxhndcn77pqjg5zhv381yrv8dq2z6j05gf4j2yc8zkz2kmb"; })
+  (fetchNuGet { pname = "MSTest.TestFramework"; version = "2.2.7"; sha256 = "1dmdb3g07wkciccv69nfrvqnda400qlh0kkgy28l8s00iil31dmr"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.0"; sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "10.0.1"; sha256 = "15ncqic3p2rzs8q8ppi0irl2miq75kilw4lh8yfgjq96id0ds3hv"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "11.0.2"; sha256 = "1784xi44f4k8v1fr696hsccmwpy94bz7kixxqlri98zhcxn406b2"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
+  (fetchNuGet { pname = "Newtonsoft.Json.Bson"; version = "1.0.1"; sha256 = "1r1hvj5gjl466bya2bfl5aaj8rbwyf5x1msg710wf3k2llbci1xa"; })
+  (fetchNuGet { pname = "Newtonsoft.Json.Bson"; version = "1.0.2"; sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35"; })
+  (fetchNuGet { pname = "NLog"; version = "4.7.12"; sha256 = "03qsmjid3jigklc2qxhjklv2nximfc4lhqfcy9m4gfj5ivfi4bpg"; })
+  (fetchNuGet { pname = "NLog.Extensions.Logging"; version = "1.7.4"; sha256 = "1lilk9sv3j9jg23hl0vhxd8w63bh6xvns42rkz5n582wpf5k2r24"; })
+  (fetchNuGet { pname = "NLog.Web.AspNetCore"; version = "4.14.0"; sha256 = "1q2v44inp4xjynncxpv432k2qjkfara1bpipmv3p3in0yv14l3wg"; })
+  (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
+  (fetchNuGet { pname = "NUnit"; version = "3.13.2"; sha256 = "00bkjgarkwbj497da9d7lajala1ns67h1kx53w4bapwkf32jlcvn"; })
+  (fetchNuGet { pname = "NUnit3TestAdapter"; version = "4.1.0"; sha256 = "1z5g15npmsjszhfmkrdmp4ds7jpxzhxblss2rjl5mfn5sihy4cww"; })
+  (fetchNuGet { pname = "NUnit.ConsoleRunner"; version = "3.12.0"; sha256 = "00ihk6i3wzqndrn6yyh1csh4b3h226x5kwdp3716p75p4nljs1ik"; })
+  (fetchNuGet { pname = "Polly"; version = "7.2.2"; sha256 = "0s15n5zwj44i6sw3v40ca8l6j0ijydxcakvad49j52rp49iwrmkn"; })
+  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
+  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
+  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
+  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
+  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
+  (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
+  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
+  (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
+  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
+  (fetchNuGet { pname = "SharpZipLib"; version = "1.3.3"; sha256 = "1gij11wfj1mqm10631cjpnhzw882bnzx699jzwhdqakxm1610q8x"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.4.0"; sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.5.0"; sha256 = "1ywfqn4md6g3iilpxjn5dsr0f5lx6z0yvhqp4pgjcamygg73cz2c"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.3.1"; sha256 = "17615br2x5riyx8ivf1dcqwj6q3ipq1bi5hqhw54yfyxmx38ddva"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.5.0"; sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06"; })
+  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
+  (fetchNuGet { pname = "System.Configuration.ConfigurationManager"; version = "4.4.0"; sha256 = "1hjgmz47v5229cbzd2pwz2h0dkq78lb2wp9grx8qr72pb5i0dk7v"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
+  (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 = "4.5.0"; sha256 = "1y8m0p3127nak5yspapfnz25qc9x53gqpvwr3hdpsvrcd2r1pgyj"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.7.1"; sha256 = "1mivaifniyrqwlnvzsfaxzrh2sd981bwzs3cbvs5wi7jjzbcqr4p"; })
+  (fetchNuGet { pname = "System.Diagnostics.EventLog"; version = "6.0.0"; sha256 = "08y1x2d5w2hnhkh9r1998pjc7r4qp0rmzax062abha85s11chifd"; })
+  (fetchNuGet { pname = "System.Diagnostics.FileVersionInfo"; version = "4.3.0"; sha256 = "094hx249lb3vb336q7dg3v257hbxvz2jnalj695l7cg5kxzqwai7"; })
+  (fetchNuGet { pname = "System.Diagnostics.StackTrace"; version = "4.3.0"; sha256 = "0ash4h9k0m7xsm0yl79r0ixrdz369h7y922wipp5gladmlbvpyjd"; })
+  (fetchNuGet { pname = "System.Diagnostics.TextWriterTraceListener"; version = "4.3.0"; sha256 = "09db74f36wkwg30f7v7zhz1yhkyrnl5v6bdwljq1jdfgzcfch7c3"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
+  (fetchNuGet { pname = "System.Diagnostics.TraceSource"; version = "4.3.0"; sha256 = "1kyw4d7dpjczhw6634nrmg7yyyzq72k75x38y0l0nwhigdlp1766"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; })
+  (fetchNuGet { pname = "System.Formats.Asn1"; version = "6.0.0"; sha256 = "1vvr7hs4qzjqb37r0w1mxq7xql2b17la63jwvmgv65s1hj00g8r9"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
+  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
+  (fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
+  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
+  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
+  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.AccessControl"; version = "5.0.0"; sha256 = "0ixl68plva0fsj3byv76bai7vkin86s6wyzr8vcav3szl862blvk"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
+  (fetchNuGet { pname = "System.IO.Pipelines"; version = "4.5.2"; sha256 = "045sn3vyk5xysjjm19q4dj5c1g1rf8l98n4qsl9pl9id4fn08yq1"; })
+  (fetchNuGet { pname = "System.IO.Pipelines"; version = "4.6.0"; sha256 = "0r9ygjbxpyi6jgb67qnpbp42b7yvvhgmcjxnb50k3lb416claavh"; })
+  (fetchNuGet { pname = "System.IO.Pipelines"; version = "5.0.1"; sha256 = "1zvfcd2l1d5qxifsqd0cjyv57nr61a9ac2ca5jinyqmj32wgjd6v"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.0"; sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.1"; sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.2"; sha256 = "1g24dwqfcmf4gpbgbhaw1j49xmpsz389l6bw2xxbsmnzvsf860ld"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
+  (fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
+  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
+  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
+  (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.4.0"; sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; })
+  (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.7.0"; sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.7.0"; sha256 = "0l8jpxhpgjlf1nkz5lvp61r4kfdbhr29qi8aapcxn3izd9wd0j8r"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.4.2"; sha256 = "08b7b43vczlliv8k7q43jinjfrxwpljsglw7sxmc6sd7d54pd1vi"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.0"; sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.1"; sha256 = "1xcrjx5fwg284qdnxyi2d0lzdm5q4frlpkp0nf6vvkx1kdz2prrf"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.3"; sha256 = "1afi6s2r1mh1kygbjmfba6l4f87pi5sg13p4a48idqafli94qxln"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; })
+  (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.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.0.0"; sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
+  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
+  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "4.5.0"; sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "6.0.0"; sha256 = "0a678bzj8yxxiffyzy60z2w1nczzpi8v97igr4ip3byd2q89dv58"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.5.0"; sha256 = "1pm4ykbcz48f1hdmwpia432ha6qbb9kbrxrrp7cg3m8q8xn52ngn"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Pkcs"; version = "6.0.0"; sha256 = "1q80znpwkv5wrzgx0qnzxqaa5k1s72fnk3g1yng62l7y14d8ki64"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "4.4.0"; sha256 = "1q8ljvqhasyynp94a1d7jknk946m20lkwy2c3wa8zw2pc517fbj6"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "6.0.0"; sha256 = "05kd3a8w7658hjxq9vvszxip30a479fjmfq4bq1r95nrsvs4hbss"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Xml"; version = "4.5.0"; sha256 = "1rk40x0msf9k7sxnjyizagjns1z25dh3cf22bx6hsx6vhf0sk08l"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Xml"; version = "6.0.0"; sha256 = "0aybd4mp9f8d4kgdnrnad7bmdg872044p75nk37f8a4lvkh2sywd"; })
+  (fetchNuGet { pname = "System.Security.Permissions"; version = "4.5.0"; sha256 = "192ww5rm3c9mirxgl1nzyrwd18am3izqls0hzm0fvcdjl5grvbhm"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.5.0"; sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
+  (fetchNuGet { pname = "System.ServiceProcess.ServiceController"; version = "6.0.0"; sha256 = "1x4i8jlpfvca3bmsm0fjzq3zswpd2cszjq93v2nxaq3d57vv5npa"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "6.0.0"; sha256 = "0gm2kiz2ndm9xyzxgi0jhazgwslcs427waxgfa30m7yqll1kcrww"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "4.5.0"; sha256 = "0srd5bva52n92i90wd88pzrqjsxnfgka3ilybwh7s6sf469y5s53"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.0"; sha256 = "05mpkdc7aigwadlcc9q3ash88hygkyz5pmkj360jj6c6ffhm91s8"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.1"; sha256 = "1ikrplvw4m6pzjbq3bfbpr572n4i9mni577zvmrkaygvx85q3myw"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.2"; sha256 = "1sh63dz0dymqcwmprp0nadm77b83vmm7lyllpv578c397bslb8hj"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Parallel"; version = "4.3.0"; sha256 = "1rr3qa4hxwyj531s4nb3bwrxnxxwz617i0n9gh6x7nr7dd3ayzgh"; })
+  (fetchNuGet { pname = "System.Threading.Thread"; version = "4.3.0"; sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4"; })
+  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
+  (fetchNuGet { pname = "System.ValueTuple"; version = "4.3.0"; sha256 = "1227k7fxbxapq7dms4lvwwjdf3pr1jcsmhy2nzzhj6g6hs530hxn"; })
+  (fetchNuGet { pname = "System.ValueTuple"; version = "4.5.0"; sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
+  (fetchNuGet { pname = "System.Xml.XmlDocument"; version = "4.3.0"; sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi"; })
+  (fetchNuGet { pname = "System.Xml.XPath"; version = "4.3.0"; sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci"; })
+  (fetchNuGet { pname = "System.Xml.XPath.XDocument"; version = "4.3.0"; sha256 = "1wxckyb7n1pi433xzz0qcwcbl1swpra64065mbwwi8dhdc4kiabn"; })
+  (fetchNuGet { pname = "YamlDotNet"; version = "11.2.1"; sha256 = "0acd7k97nqzisyqql71m6l0b0lvkr612zaav42hw0y1qnp06jdi4"; })
 ]
diff --git a/pkgs/servers/jackett/updater.sh b/pkgs/servers/jackett/updater.sh
index cd0226d6b69a2..9de6ae3ef46ad 100755
--- a/pkgs/servers/jackett/updater.sh
+++ b/pkgs/servers/jackett/updater.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p curl jq common-updater-scripts nuget-to-nix dotnet-sdk_5
+#!nix-shell -i bash -p curl jq common-updater-scripts nuget-to-nix dotnet-sdk_6
 set -eo pipefail
 cd "$(dirname "${BASH_SOURCE[0]}")"
 
@@ -26,7 +26,10 @@ export DOTNET_NOLOGO=1
 export DOTNET_CLI_TELEMETRY_OPTOUT=1
 
 mkdir ./nuget_pkgs
-dotnet restore src/Jackett.Server/Jackett.Server.csproj --packages ./nuget_pkgs
+
+for project in src/Jackett.Server/Jackett.Server.csproj src/Jackett.Test/Jackett.Test.csproj; do
+  dotnet restore "$project" --packages ./nuget_pkgs
+done
 
 nuget-to-nix ./nuget_pkgs > "$deps_file"
 
diff --git a/pkgs/servers/janus-gateway/default.nix b/pkgs/servers/janus-gateway/default.nix
index 6c6d6759f3296..1ccaca4213374 100644
--- a/pkgs/servers/janus-gateway/default.nix
+++ b/pkgs/servers/janus-gateway/default.nix
@@ -15,13 +15,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "janus-gateway";
-  version = "0.11.3";
+  version = "0.11.5";
 
   src = fetchFromGitHub {
     owner = "meetecho";
     repo = pname;
     rev = "v${version}";
-    sha256 = "15nadpz67w24f4wz8ya0kx0a1jc4wxv1kl0d5fr7kckkdyijh7gz";
+    sha256 = "sha256-+ojBVdglOTqdmWT8QPUzJRT7RgtXxEOLNC5GqP0vO6Y=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config gengetopt ];
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   configureFlags = [
-    "--enable-boringssl=${boringssl}"
+    "--enable-boringssl=${lib.getDev boringssl}"
     "--enable-libsrtp2"
     "--enable-turn-rest-api"
     "--enable-json-logger"
@@ -42,6 +42,10 @@ stdenv.mkDerivation rec {
     "--enable-post-processing"
   ];
 
+  makeFlagsArray = [
+    "BORINGSSL_LIBS=-L${lib.getLib boringssl}/lib"
+  ];
+
   outputs = [ "out" "dev" "doc" "man" ];
 
   postInstall = ''
diff --git a/pkgs/servers/jellyfin/default.nix b/pkgs/servers/jellyfin/default.nix
index b9924c69e857a..4dce2a7258fa5 100644
--- a/pkgs/servers/jellyfin/default.nix
+++ b/pkgs/servers/jellyfin/default.nix
@@ -60,9 +60,9 @@ stdenv.mkDerivation rec {
   ];
 
   nugetDeps = linkFarmFromDrvs "${pname}-nuget-deps" (import ./nuget-deps.nix {
-    fetchNuGet = { name, version, sha256 }: fetchurl {
-      name = "nuget-${name}-${version}.nupkg";
-      url = "https://www.nuget.org/api/v2/package/${name}/${version}";
+    fetchNuGet = { pname, version, sha256 }: fetchurl {
+      name = "${pname}-${version}.nupkg";
+      url = "https://www.nuget.org/api/v2/package/${pname}/${version}";
       inherit sha256;
     };
   });
diff --git a/pkgs/servers/jellyfin/nuget-deps.nix b/pkgs/servers/jellyfin/nuget-deps.nix
index 6afc41fba6f98..701aa215edb07 100644
--- a/pkgs/servers/jellyfin/nuget-deps.nix
+++ b/pkgs/servers/jellyfin/nuget-deps.nix
@@ -1,455 +1,455 @@
 { fetchNuGet }: [
-  (fetchNuGet { name = "BDInfo"; version = "0.7.6.1"; sha256 = "06qhssvd4iicssl9wv7921g3ss6y2s6g9zhf1svgcm8ffs52i38i"; })
-  (fetchNuGet { name = "BlurHashSharp"; version = "1.1.1"; sha256 = "1fbpg9935pfpr93vywxjdxqzjv1c7v3z86ylzh5n2krxm5jygzrv"; })
-  (fetchNuGet { name = "BlurHashSharp.SkiaSharp"; version = "1.1.1"; sha256 = "11ljrrph0kkw2qfxyza9xfzmh6aspbx5iv0pvk4ms0hyzxh1mas0"; })
-  (fetchNuGet { name = "CommandLineParser"; version = "2.8.0"; sha256 = "1m32xyilv2b7k55jy8ddg08c20glbcj2yi545kxs9hj2ahanhrbb"; })
-  (fetchNuGet { name = "DotNet.Glob"; version = "3.1.0"; sha256 = "11rvhb7y420yadah3j8by5xc7ad2ks2bqyhn4aa10m3xb6hiza0i"; })
-  (fetchNuGet { name = "Humanizer.Core"; version = "2.8.26"; sha256 = "1v8xd12yms4qq1md4vh6faxicmqrvahqdd7sdkyzrphab9v44nsm"; })
-  (fetchNuGet { name = "Jellyfin.XmlTv"; version = "10.6.2"; sha256 = "0ngxjl6d99hzccdbisgwf84w27j2fvjxr05awkirvm6nzvbgq16a"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Antiforgery"; version = "2.2.0"; sha256 = "026wjdwjx0lgccqv0xi5gxylxzgz5ifgxf25p5pqakgrhkz0a59l"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "5.0.5"; sha256 = "026m19pddhkx5idwpi6mp1yl9yfcfgm2qjp1jh54mdja1d7ng0vk"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Authentication"; version = "2.2.0"; sha256 = "0yqfzd0qq5ypmk6b9gnb1yscl75fxx9frq808cxs70ay7y7jqmgn"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Authentication.Abstractions"; version = "2.2.0"; sha256 = "0vj7fhpk0d95nkkxz4q0rma6pb4ym96mx6nms4603y0l19h0k5yh"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Authentication.Core"; version = "2.2.0"; sha256 = "1wgn45fmdi7dk9cl4cdhzgqc9mdxhfw7zg8zwns3j7qgrhlv6k8h"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Authorization"; version = "5.0.3"; sha256 = "0cffsksaaxndmryb3m1bhli1iihq1wc69dinpxzrdwhw8s2bmfxw"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Authorization.Policy"; version = "2.2.0"; sha256 = "1d1zh65kfjf81j21ssmhr465vx08bra8424vgnrb22gdx03mhwd2"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Connections.Abstractions"; version = "2.2.0"; sha256 = "1rl94r8b0zq14f3dhfnvfjj1ivr81iw9zh5kdgs3zkdv0xc9x21j"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Cors"; version = "2.2.0"; sha256 = "0qskbz87i74kfbklxqfyqaccyba21kkx2lcdfa54kxj9r8daq7sc"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Cryptography.Internal"; version = "2.2.0"; sha256 = "01lg2fx85b47ldgdrhs6clsivj35x54xwc9r5xk3f1v8rr3gycsv"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.DataProtection"; version = "2.2.0"; sha256 = "09lzbp084xxy1xxfbxpqdff8phv2pzd1n5v30xfm03hhl7a038gx"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.DataProtection.Abstractions"; version = "2.2.0"; sha256 = "1gi4hpssmrrdf5lm6idkhvqbfy12bx14976y4gbhmx9z8lxaqcfz"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Diagnostics.Abstractions"; version = "2.2.0"; sha256 = "061cdhjh5w2f1frhimcgk68vx8p743jb9h4qik3lm1c734r0drm0"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Hosting"; version = "2.2.7"; sha256 = "0pr4kmzlj3rmylxqg6dw2ph8a8sl2m2k630z1qy21kddsb4ac849"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Hosting.Abstractions"; version = "2.2.0"; sha256 = "043k651vbfshh3s997x42ymj8nb32419m7q3sjw5q2c27anrhfhv"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Hosting.Server.Abstractions"; version = "2.2.0"; sha256 = "0nz73bwrvhc1n7gd7xxm3p5ww2wx9qr9m9i43y20gh0c54adkygh"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Html.Abstractions"; version = "2.2.0"; sha256 = "1z5lkzb9h9wprvyxyjw4fj7bjypaibsw0cj4bz769hf0abjz8y1v"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Http"; version = "2.2.0"; sha256 = "1fcrafpa57sab3as18idqknzlxkx49n4sxzlzik3sj6pcji5j17q"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Http"; version = "2.2.2"; sha256 = "09mgjvpqdyylz9dbngql9arx46lfkiczjdf7aqr9asd5vjqlv2c8"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Http.Abstractions"; version = "2.2.0"; sha256 = "13s8cm6jdpydxmr0rgmzrmnp1v2r7i3rs7v9fhabk5spixdgfy6b"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Http.Extensions"; version = "2.2.0"; sha256 = "118gp1mfb8ymcvw87fzgjqwlc1d1b0l0sbfki291ydg414cz3dfn"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Http.Features"; version = "2.2.0"; sha256 = "0xrlq8i61vzhzzy25n80m7wh2kn593rfaii3aqnxdsxsg6sfgnx1"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.JsonPatch"; version = "2.2.0"; sha256 = "07cihb5sqkavg42nvircdwjp0b67mhrla97jgx285zdjphplg4h2"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Localization"; version = "2.2.0"; sha256 = "08knc70cy7ycid5sbbbzy6my4b7ddj4j760k5xf1qnfb0njxhfh7"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Metadata"; version = "5.0.3"; sha256 = "01v2iaqpzz0h6z3hg1vr67za7d3283gs0wym42zvb9yksg6pf0zi"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc"; version = "2.2.0"; sha256 = "16jrikcywkd4r4jh551p8gxxw6hj3aizdzd5i7agb06gwpgqqv9c"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.Abstractions"; version = "2.2.0"; sha256 = "09p447ipd19517vy8xx9ykvspn6b4fgbm2rskpmzyw41x9wz4k0b"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.Analyzers"; version = "2.2.0"; sha256 = "1b975z00bzgh2z5hina4bzfksvc2vgnbzmi8g3q962hspg6ylh9f"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.ApiExplorer"; version = "2.2.0"; sha256 = "1ryhd1md30fgrli74qv45mhldivbasdvydw0lllg6x6jzpyrkwpa"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.Core"; version = "2.2.0"; sha256 = "1k6lkgk9zak5sczvyjbwgqnfcwcg9ks74wznqfzck8c6hns1by0m"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.Cors"; version = "2.2.0"; sha256 = "077vjxn0k5rr4s675g50rzkns6scgijxxh5iib59k77ldwpdr14q"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.DataAnnotations"; version = "2.2.0"; sha256 = "0vdhdjarh4az7g71gkvmhq6xpvwhh8si3sbrpdwb8p60i94cdyl6"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.Formatters.Json"; version = "2.2.0"; sha256 = "0421fcf2z8a6z81ql123ili32wbr3x25zpq17xjf4s9fmsr0069a"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.Localization"; version = "2.2.0"; sha256 = "0d27xirwsr3j7jacsrz6g2r4py35hgzjyy6ak6gkd07cm707wgc6"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.Razor"; version = "2.2.0"; sha256 = "06fqg7rfyvfj3hdppkhy37ddjff2d6pg7khj6lccs9lwc732yr7q"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.Razor.Extensions"; version = "2.2.0"; sha256 = "04javqbzv7mkakqjl40j429giaagjj7hmwcljrgj8q1jknk0x9xc"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.RazorPages"; version = "2.2.0"; sha256 = "0zqyqfxzl3lkqfy9chd0ipani75q3109imlxrnhdfiwmxrd8xqbm"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.TagHelpers"; version = "2.2.0"; sha256 = "16aprk81sp2i0n0dmp318cm65mk03i58rhpijm4fz4xz51j7z8li"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Mvc.ViewFeatures"; version = "2.2.0"; sha256 = "1isflvb0ff5nfqnvdlyvmszkd42axbbz0xmdaf0d7sah0qkvvi7n"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Razor"; version = "2.2.0"; sha256 = "02ybprvsi59nwa0fdq99jvx7r26bs2bg3xjxkilc495clgg98zp0"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Razor.Design"; version = "2.2.0"; sha256 = "03pcdcbmyw050hag588b7caqilnq3cb6ndq5g6j0r7j7wf3plsn6"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Razor.Language"; version = "2.2.0"; sha256 = "0n58qdipwy5wymfhgm3anickwvnf4svb9ipbrby7ksrhhrkqvx4z"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Razor.Runtime"; version = "2.2.0"; sha256 = "1n9j5hjinm5gp39nwmcf26dwg1psl7sf7xkxnvfxsnl44mbcy695"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.ResponseCaching.Abstractions"; version = "2.2.0"; sha256 = "01sp2i2bgcn6blw1mcvg5nrlc97c9czyawwvgfi6ydzdvs6ang37"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.ResponseCompression"; version = "2.2.0"; sha256 = "0madnk92752alpc7cv2bazqlihhzgl3yj1s9ajhi3w09vg8n8pz4"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Routing"; version = "2.2.0"; sha256 = "12kv602j2rxp43l1v3618yz3pdd7hqc3r98ya0bqz6y2ppvhbyws"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Routing.Abstractions"; version = "2.2.0"; sha256 = "0d9wwz1rsh1fslbv1y72jpkvqv2v9n28rl3vslcg0x74lp2678ly"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Server.Kestrel"; version = "2.2.0"; sha256 = "0wh7hf09i9qxs9r0d5xdcx3qingsid9nxlwcyjg2r44pjs6cg1rf"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Server.Kestrel.Core"; version = "2.2.0"; sha256 = "075ffds8hwp8ps0zf84bsv9pgiaqry9njc403qack701aybci97r"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Server.Kestrel.Https"; version = "2.2.0"; sha256 = "08z447wrbzy3l9lmmas353nr17sg9yccwcg62l9ax9a6n1wvds8c"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions"; version = "2.2.0"; sha256 = "08bj95zy4zszyx1rsy8v2ai9kg4120ij6yi0zillwx3ndb3q7vfb"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets"; version = "2.2.0"; sha256 = "0vhicfnv12sz2c81czdgdlffcgrhnn1jzz9zwy3a9c2n4rn8k9k5"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.WebSockets"; version = "2.2.1"; sha256 = "0gzikr1z2fdz8nzy1m969jsrk2h97ld1hzgmbc6f036qmhiq26hr"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.WebUtilities"; version = "2.2.0"; sha256 = "0cs1g4ing4alfbwyngxzgvkrv7z964isv1j9dzflafda4p0wxmsi"; })
-  (fetchNuGet { name = "Microsoft.Build.Tasks.Git"; version = "1.0.0"; sha256 = "0avwja8vk56f2kr2pmrqx3h60bnwbs7ds062lhvhcxv87m5yfqnj"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.Analyzers"; version = "1.1.0"; sha256 = "08r667hj2259wbim1p3al5qxkshydykmb7nd9ygbjlg4mmydkapc"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.Common"; version = "2.8.0"; sha256 = "0g4h41fs0r8lqh9pk9s4mc1090kdpa6sbxq4rc866s8hnq9s1h4j"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.CSharp"; version = "2.8.0"; sha256 = "0p1xvw1h2fmnxywv1j4x6p3rgarpc8mfwfgn0vflk5xfnc961f6w"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.FxCopAnalyzers"; version = "2.9.8"; sha256 = "15zv982rln15ds8z2hkpmx04njdg0cmmf1xnb9v1v7cxxf7yxx27"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.Razor"; version = "2.2.0"; sha256 = "03cm9danxxnsnmrzfz2swz6zhckkgg6hrz1ycnvnjrbpk3w4v0d6"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.VersionCheckAnalyzer"; version = "2.9.8"; sha256 = "19v25694f9l172snrm4qik5gxzlifiyrmf0kk2zasz7hrciw36bl"; })
-  (fetchNuGet { name = "Microsoft.CodeQuality.Analyzers"; version = "2.9.8"; sha256 = "17ld069hlpcv4z4ylx6m4rhd398sxd0qd0msadfm0rljlkj6xg83"; })
-  (fetchNuGet { name = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
-  (fetchNuGet { name = "Microsoft.CSharp"; version = "4.3.0"; sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb"; })
-  (fetchNuGet { name = "Microsoft.CSharp"; version = "4.5.0"; sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; })
-  (fetchNuGet { name = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
-  (fetchNuGet { name = "Microsoft.Data.Sqlite.Core"; version = "5.0.3"; sha256 = "1msj8zn2yfdn5lcny3msqiry94rhs8lkmx1l4pv29mhxggchvidr"; })
-  (fetchNuGet { name = "Microsoft.DotNet.PlatformAbstractions"; version = "2.0.4"; sha256 = "1fdzln4im9hb55agzwchbfgm3vmngigmbpci5j89b0gqcxixmv8j"; })
-  (fetchNuGet { name = "Microsoft.DotNet.PlatformAbstractions"; version = "2.1.0"; sha256 = "1qydvyyinj3b5mraazjal3n2k7jqhn05b6n1a2f3qjkqkxi63dmy"; })
-  (fetchNuGet { name = "Microsoft.DotNet.PlatformAbstractions"; version = "3.1.6"; sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5"; })
-  (fetchNuGet { name = "Microsoft.EntityFrameworkCore"; version = "5.0.3"; sha256 = "1bhkmr15njgyrd57rmvrjdyamj6qm1n8sdrzcgbfyj7wsjav8dmv"; })
-  (fetchNuGet { name = "Microsoft.EntityFrameworkCore.Abstractions"; version = "5.0.3"; sha256 = "1h0cxqsmpgd1fc9jd4mm1v89s8zchpmd24ks4j5fjgc3j83nvgg9"; })
-  (fetchNuGet { name = "Microsoft.EntityFrameworkCore.Analyzers"; version = "5.0.3"; sha256 = "0mgnw1na94gg4mks7ba9r9cfy3k8vnspi08ryc2i8h91m31dibc2"; })
-  (fetchNuGet { name = "Microsoft.EntityFrameworkCore.Design"; version = "5.0.3"; sha256 = "00p9l6ydqg6kmwyqza0dd9q1zfvam7b3hv8b9kafbl590kdxjzl4"; })
-  (fetchNuGet { name = "Microsoft.EntityFrameworkCore.Relational"; version = "5.0.3"; sha256 = "11pancjxzx04yvy7h4x4m6hncwl2ijiwsvr9m1sa1cmq53lrrvlk"; })
-  (fetchNuGet { name = "Microsoft.EntityFrameworkCore.Sqlite"; version = "5.0.3"; sha256 = "16658n7q2jahk4haljand6j3bmkg718hck4g1piy1j8kx2i6dg7p"; })
-  (fetchNuGet { name = "Microsoft.EntityFrameworkCore.Sqlite.Core"; version = "5.0.3"; sha256 = "0ffi0dyrg00891ac15qajrk7mnhwyayi1fdpwjm10zjdxm4nwy26"; })
-  (fetchNuGet { name = "Microsoft.EntityFrameworkCore.Tools"; version = "5.0.3"; sha256 = "074v7y4irv34xw16ps8mmjm5pq8gk1fs17kx4sznw9bgkcfrm0hy"; })
-  (fetchNuGet { name = "Microsoft.Extensions.ApiDescription.Server"; version = "3.0.0"; sha256 = "13a47xcqyi5gz85swxd4mgp7ndgl4kknrvv3xwmbn71hsh953hsh"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Caching.Abstractions"; version = "2.2.0"; sha256 = "0hhxc5dp52faha1bdqw0k426zicsv6x1kfqi30m9agr0b2hixj52"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Caching.Abstractions"; version = "5.0.0"; sha256 = "0j83zapqhgqb4v5f6kn891km095pfhvsqha357a86ccclmv2czvb"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Caching.Memory"; version = "2.2.0"; sha256 = "0bzrsn5vas86w66bd04xilnlb21nx4l6lz7d3acvy6y8ir2vb5dv"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Caching.Memory"; version = "5.0.0"; sha256 = "0l8spndl3kvccjlay202msm31iy5iig0i9ddbsdy92wbcjr97lca"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration"; version = "2.0.0"; sha256 = "0yssxq9di5h6xw2cayp5hj3l9b2p0jw9wcjz73rwk4586spac9s9"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration"; version = "2.2.0"; sha256 = "02250qrs3jqqbggfvd0mkim82817f79x6jh8fx2i7r58d0m66qkl"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration"; version = "3.1.2"; sha256 = "06diq359ac4bf8jlr9msf8mwalk1a85lskkgcd8mcha56l7l7g0r"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration"; version = "3.1.6"; sha256 = "0j0zl05n9vv23m2dg4wy6pc39zy09rvnr0ljwh63sa1gski32fhx"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration"; version = "5.0.0"; sha256 = "01m9vzlq0vg0lhckj2dimwq42niwny8g3lm13c9a401hlyg90z1p"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.0.0"; sha256 = "1ilz2yrgg9rbjyhn6a5zh9pr51nmh11z7sixb4p7vivgydj9gxwf"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.1.0"; sha256 = "03gzlr3z9j1xnr1k6y91zgxpz3pj27i3zsvjwj7i8jqnlqmk7pxd"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.2.0"; sha256 = "1fv5277hyhfqmc0gqszyqb1ilwnijm8kc9606yia6hwr8pxyg674"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Abstractions"; version = "3.1.2"; sha256 = "1mfsgiklr4v99bx62z97vnp7y2jbdr9g9gwyyw89xcb67pir0wb9"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Abstractions"; version = "3.1.6"; sha256 = "1bqp28717rdlygdj7m3srfdbkvx0x6bqs2ply9h2sib87jqxaz9i"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Abstractions"; version = "5.0.0"; sha256 = "0fqxkc9pjxkqylsdf26s9q21ciyk56h1w33pz3v1v4wcv8yv1v6k"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Binder"; version = "2.0.0"; sha256 = "1prvdbma6r18n5agbhhabv6g357p1j70gq4m9g0vs859kf44nrgc"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Binder"; version = "2.2.0"; sha256 = "10qyjdkymdmag3r807kvbnwag4j3nz65i4cwikbd77jjvz92ya3j"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Binder"; version = "3.1.2"; sha256 = "1jksknhlvgxgys51z0j7pi6c4k8m1iqv3ixp8nhrk24bc8hf04br"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Binder"; version = "3.1.6"; sha256 = "0lq35v2zqvs9jl7y347nr8qmdghr6xrymmik3b5kndw1zlrflavn"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Binder"; version = "5.0.0"; sha256 = "0sld0bh2k5kss32i3nf8mwqkjagmw0d1cdfmxm87ckiicwm413a0"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.EnvironmentVariables"; version = "2.2.4"; sha256 = "0i5m7ki5jl4q9fbc0capcjakbh2y55g0zhq7cjs9qw38496rb020"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.EnvironmentVariables"; version = "5.0.0"; sha256 = "03gvckj10ljk1mir9g8cf3cajsnihhvmh8z8341gkr9h5653qkv0"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.FileExtensions"; version = "2.2.0"; sha256 = "0bwk1kh6q259nmnly90j5rbbzi9w5gigq5vyjr31c1br4j8cjmqd"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.FileExtensions"; version = "5.0.0"; sha256 = "1wq229r3xcmm9wh9sqdpvmfv4qpbp2zms9x6xk7g7sbb8h32hnz3"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Configuration.Json"; version = "5.0.0"; sha256 = "0hq5i483bjbvprp1la9l3si82x1ydxbvkpfc7r3s7zgxg957fyp9"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection"; version = "2.2.0"; sha256 = "0lvv45rvq1xbf47lz818rjydc776zk8mf7svpzh1dml4qwlx9zck"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection"; version = "3.1.2"; sha256 = "0z3vdzrnfy838afc2vv4knj2ycab7jni55kdj82p7plfjngv01ic"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection"; version = "3.1.6"; sha256 = "0m8b5phfbkx96l92nf0xs3bz6861mhb7i4havxckz7mr81g968l6"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection"; version = "5.0.0"; sha256 = "15sdwcyzz0qlybwbdq854bn3jk6kx7awx28gs864c4shhbqkppj4"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection"; version = "5.0.1"; sha256 = "06xig49mwyp3b2dvdx98j079ncg6p4c9x8yj4pzs6ppmi3jgaaqk"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.0.0"; sha256 = "1pwrfh9b72k9rq6mb2jab5qhhi225d5rjalzkapiayggmygc8nhz"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.1.0"; sha256 = "0c0cx8r5xkjpxmcfp51959jnp55qjvq28d9vaslk08avvi1by12s"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.2.0"; sha256 = "1jyzfdr9651h3x6pxwhpfbb9mysfh8f8z1jvy4g117h9790r9zx5"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "3.1.2"; sha256 = "0jh1338ai6060k1130by4m0s7jhz8ky7ij9vagrsgnpcl1yc9k70"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "3.1.6"; sha256 = "18mcv1x6b3qlaksmb8q92r34jrv1841la5lmg21qppmb9qs0z293"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "5.0.0"; sha256 = "17cz6s80va0ch0a6nqa1wbbbp3p8sqxb96lj4qcw67ivkp2yxiyj"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyModel"; version = "2.0.4"; sha256 = "041i1vlcibpzgalxxzdk81g5pgmqvmz2g61k0rqa2sky0wpvijx9"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyModel"; version = "2.1.0"; sha256 = "0dl4qhjgifm6v3jsfzvzkvddyic77ggp9fq49ah661v45gk6ilgd"; })
-  (fetchNuGet { name = "Microsoft.Extensions.DependencyModel"; version = "5.0.0"; sha256 = "1mma1zxi0b40972cwfvkj9y0w9r7vjbi74784jzcb22pric00k5x"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Diagnostics.HealthChecks"; version = "5.0.3"; sha256 = "0hv4l27bp29gy3rh9cssvvc8xwzy8ffwh277dw870zhv5mm2ha29"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions"; version = "5.0.3"; sha256 = "1r1xrlgbyfsf0b447lw6lv6jxq339ssrm61klyjmnk1ady05h9di"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore"; version = "5.0.3"; sha256 = "0q0j75i289yn3bv09dhzfirpb4glqm35wrv7p2463kmbf3g551rr"; })
-  (fetchNuGet { name = "Microsoft.Extensions.FileProviders.Abstractions"; version = "2.1.0"; sha256 = "1sxls5f5cgb0wr8cwb05skqmz074683hrhmd3hhq6m5dasnzb8n3"; })
-  (fetchNuGet { name = "Microsoft.Extensions.FileProviders.Abstractions"; version = "2.2.0"; sha256 = "1f83ffb4xjwljg8dgzdsa3pa0582q6b4zm0si467fgkybqzk3c54"; })
-  (fetchNuGet { name = "Microsoft.Extensions.FileProviders.Abstractions"; version = "5.0.0"; sha256 = "01ahgd0b2z2zycrr2lcsq2cl59fn04bh51hdwdp9dcsdkpvnasj1"; })
-  (fetchNuGet { name = "Microsoft.Extensions.FileProviders.Composite"; version = "2.2.0"; sha256 = "0k3qfxb0pn9b63grbf9jv7xw40gk6m1djmi3c4inwys7lxcj2k18"; })
-  (fetchNuGet { name = "Microsoft.Extensions.FileProviders.Physical"; version = "2.2.0"; sha256 = "0lrq4bxf67pw6n9kzwzqsnxkad2ygh2zn46hjias8j7aqljglh7x"; })
-  (fetchNuGet { name = "Microsoft.Extensions.FileProviders.Physical"; version = "5.0.0"; sha256 = "00vii8148a6pk12l9jl0rhjp7apil5q5qcy7v1smnv17lj4p8szd"; })
-  (fetchNuGet { name = "Microsoft.Extensions.FileSystemGlobbing"; version = "2.2.0"; sha256 = "01jw7s1nb44n65qs3rk7xdzc419qwl0s5c34k031f1cc5ag3jvc2"; })
-  (fetchNuGet { name = "Microsoft.Extensions.FileSystemGlobbing"; version = "5.0.0"; sha256 = "0lm6n9vbyjh0l17qcc2y9qwn1cns3dyjmkvbxjp0g9sll32kjpmb"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Hosting.Abstractions"; version = "2.1.0"; sha256 = "04vm9mdjjzg3lpp2rzpgkpn8h5bzdl3bwcr22lshd3kp602ws4k9"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Hosting.Abstractions"; version = "2.2.0"; sha256 = "1xc7xr1nq7akfahyl5in9iyxrygap2xi9nxh39rfm37sf8lk55v1"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Hosting.Abstractions"; version = "5.0.0"; sha256 = "1k28hndmm8ky7sr2j5agdz9lls25mbb08dkypka0b76x5f4hplb5"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Http"; version = "3.1.6"; sha256 = "04ggi7vdx7h5622y1y7xcls6lij880jn9b2xgg73rwrq6bcadj6q"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Http"; version = "5.0.0"; sha256 = "1sx2w6s2giavi3i1wbpa64h1v1xhk5afz3whh7rxhb9fmsn9h1bk"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Localization"; version = "2.2.0"; sha256 = "1k73kk5qmrvdyd7l8qxp19crw18f2p5dgk3cjx59g7vf3rkgmc6k"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Localization.Abstractions"; version = "2.2.0"; sha256 = "1yzqs5x97rj6wlg0rylj0xi3dn1bw4ps26zdqsijx621jl1r97gy"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging"; version = "2.2.0"; sha256 = "0bx3ljyvvcbikradq2h583rl72h8bxdz33aghk026cxzpv2mm3wm"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging"; version = "3.1.2"; sha256 = "0yh4zbyvm24alrcblcbm0sp7l9ys5ypcxs7l772yj7fdpk0bx3ap"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging"; version = "3.1.6"; sha256 = "0brzknkxlalpb1a8m371nmkmpfjf1q3p8x6nls5ylh0w7midxxgp"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging"; version = "5.0.0"; sha256 = "1qa1l18q2jh9azya8gv1p8anzcdirjzd9dxxisb4911i9m1648i3"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging.Abstractions"; version = "2.1.0"; sha256 = "1gvgif1wcx4k6pv7gc00qv1hid945jdywy1s50s33q0hfd91hbnj"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging.Abstractions"; version = "2.2.0"; sha256 = "02w7hp6jicr7cl5p456k2cmrjvvhm6spg5kxnlncw3b72358m5wl"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging.Abstractions"; version = "3.1.2"; sha256 = "0givwc5dnz1wm9aa0sfxi4mjws6v9c8v5i5772yg1r4w1wvn3733"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging.Abstractions"; version = "3.1.6"; sha256 = "16pk17a3hh0j431a5f7d663iqk1j6n3wjlzk6chmvnfk3dpwfhww"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Logging.Abstractions"; version = "5.0.0"; sha256 = "1yza38675dbv1qqnnhqm23alv2bbaqxp0pb7zinjmw8j2mr5r6wc"; })
-  (fetchNuGet { name = "Microsoft.Extensions.ObjectPool"; version = "2.2.0"; sha256 = "0n1q9lvc24ii1shzy575xldgmz7imnk4dswwwcgmzz93klri9r1z"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Options"; version = "2.0.0"; sha256 = "0g4zadlg73f507krilhaaa7h0jdga216syrzjlyf5fdk25gxmjqh"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Options"; version = "2.2.0"; sha256 = "1b20yh03fg4nmmi3vlf6gf13vrdkmklshfzl3ijygcs4c2hly6v0"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Options"; version = "3.1.2"; sha256 = "005f42rq6n2v5cakqi51266g26dkjc6nsqdd6w62pxvv6g6kp9km"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Options"; version = "3.1.6"; sha256 = "1rdi0pcpcmhvwkn7mxymrpav9q2c4frxhl99ps961mmh1i5738sc"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Options"; version = "5.0.0"; sha256 = "1rdmgpg770x8qwaaa6ryc27zh93p697fcyvn5vkxp0wimlhqkbay"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "2.0.0"; sha256 = "1isc3rjbzz60f7wbmgcwslx5d10hm5hisnk7v54vfi2bz7132gll"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Primitives"; version = "2.0.0"; sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Primitives"; version = "2.1.0"; sha256 = "1r9gzwdfmb8ysnc4nzmyz5cyar1lw0qmizsvrsh252nhlyg06nmb"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Primitives"; version = "2.2.0"; sha256 = "0znah6arbcqari49ymigg3wiy2hgdifz8zsq8vdc3ynnf45r7h0c"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Primitives"; version = "3.1.2"; sha256 = "04hdb7rd59frgb5ym0sfwc5r67jj6vykcbxljzs8909f8hrs98jb"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Primitives"; version = "3.1.6"; sha256 = "1acl88cph3yqcjz7ami5hzdr69cvxvry24a6r6fmrwnzfcc1i40n"; })
-  (fetchNuGet { name = "Microsoft.Extensions.Primitives"; version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; })
-  (fetchNuGet { name = "Microsoft.Extensions.WebEncoders"; version = "2.2.0"; sha256 = "1mhnichccw6mjf37d38q2i1kr7qp485m7apa1b872ji0q16yy1y3"; })
-  (fetchNuGet { name = "Microsoft.NetCore.Analyzers"; version = "2.9.8"; sha256 = "1klybsdy9yw49zlpmix4vjdhmfaibg5h9yx03vszdnijzap7vpsx"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.5"; sha256 = "1h5yry6k9bpqqis2fb1901csb8kipm7anm174fjj41r317vzfjfa"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.1.1"; sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "3.1.1"; sha256 = "05hmaygd5131rnqi6ipv7agsbpi7ka18779vw45iw6b385l7n987"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Targets"; version = "1.1.3"; sha256 = "05smkcyxir59rgrmp7d6327vvrlacdgldfxhmyr1azclvga1zfsq"; })
-  (fetchNuGet { name = "Microsoft.NetFramework.Analyzers"; version = "2.9.8"; sha256 = "0mb3gkqcr13ryphrzax40cf05bz0h269a6zm1hnzzsq7gbd5iipb"; })
-  (fetchNuGet { name = "Microsoft.Net.Http.Headers"; version = "2.2.0"; sha256 = "0w6lrk9z67bcirq2cj2ldfhnizc6id77ba6i30hjzgqjlyhh1gx5"; })
-  (fetchNuGet { name = "Microsoft.Net.Http.Headers"; version = "2.2.8"; sha256 = "1s0n68z6v5mbys4jjrd4jdxrrz81iq4dzmmbmxzmlf59769x8rj9"; })
-  (fetchNuGet { name = "Microsoft.OpenApi"; version = "1.2.3"; sha256 = "07b19k89whj69j87afkz86gp9b3iybw8jqwvlgcn43m7fb2y99rr"; })
-  (fetchNuGet { name = "Microsoft.SourceLink.Common"; version = "1.0.0"; sha256 = "1zxkpx01zdv17c39iiy8fx25ran89n14qwddh1f140v1s4dn8z9c"; })
-  (fetchNuGet { name = "Microsoft.SourceLink.GitHub"; version = "1.0.0"; sha256 = "029ixyaqn48cjza87m5qf0g1ynyhlm6irgbx1n09src9g666yhpd"; })
-  (fetchNuGet { name = "Microsoft.Win32.Primitives"; version = "4.0.1"; sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7"; })
-  (fetchNuGet { name = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
-  (fetchNuGet { name = "Microsoft.Win32.Registry"; version = "4.5.0"; sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q"; })
-  (fetchNuGet { name = "Mono.Nat"; version = "3.0.1"; sha256 = "1xy3c9wsiz8k3rx8v60y6gnps337rsb5jpyj0r6g384prg6z4vh0"; })
-  (fetchNuGet { name = "NETStandard.Library"; version = "1.6.0"; sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k"; })
-  (fetchNuGet { name = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "10.0.1"; sha256 = "15ncqic3p2rzs8q8ppi0irl2miq75kilw4lh8yfgjq96id0ds3hv"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "11.0.2"; sha256 = "1784xi44f4k8v1fr696hsccmwpy94bz7kixxqlri98zhcxn406b2"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "12.0.3"; sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
-  (fetchNuGet { name = "Newtonsoft.Json.Bson"; version = "1.0.1"; sha256 = "1r1hvj5gjl466bya2bfl5aaj8rbwyf5x1msg710wf3k2llbci1xa"; })
-  (fetchNuGet { name = "OptimizedPriorityQueue"; version = "5.0.0"; sha256 = "0a0kn4sr80yx1bm5nngbillfbcafv86hqxwp5kxjgh3wcd01c803"; })
-  (fetchNuGet { name = "PlaylistsNET"; version = "1.1.3"; sha256 = "092lgqvvarx6g8mrhm8rdzcqisklzffa0i3gkpc0zbk7b7b0f8yg"; })
-  (fetchNuGet { name = "prometheus-net"; version = "3.1.2"; sha256 = "1jyxvl9cqxvb71mpaglw8aks27i69hg7yzrdwsjc182nmmhh1p03"; })
-  (fetchNuGet { name = "prometheus-net"; version = "4.1.1"; sha256 = "0n016rxlz00xrw1jrikwr6h221rrw96h13d0823mfb5375rdi8rx"; })
-  (fetchNuGet { name = "prometheus-net.AspNetCore"; version = "4.1.1"; sha256 = "0239i5ga7z3ajq6rvqz2ym3a30b1nbfjn6dnmc1iljd9579flzhs"; })
-  (fetchNuGet { name = "prometheus-net.DotNetRuntime"; version = "3.4.1"; sha256 = "1b4a5yh2s8nji4bvp9fcw03dw0wbx58823b7jfga0vva33am3xx8"; })
-  (fetchNuGet { name = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
-  (fetchNuGet { name = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
-  (fetchNuGet { name = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
-  (fetchNuGet { name = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
-  (fetchNuGet { name = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; })
-  (fetchNuGet { name = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
-  (fetchNuGet { name = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
-  (fetchNuGet { name = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; })
-  (fetchNuGet { name = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; })
-  (fetchNuGet { name = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; })
-  (fetchNuGet { name = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; })
-  (fetchNuGet { name = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; })
-  (fetchNuGet { name = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; })
-  (fetchNuGet { name = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
-  (fetchNuGet { name = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
-  (fetchNuGet { name = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
-  (fetchNuGet { name = "runtime.any.System.Threading.Timer"; version = "4.3.0"; sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086"; })
-  (fetchNuGet { name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
-  (fetchNuGet { name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
-  (fetchNuGet { name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
-  (fetchNuGet { name = "runtime.native.System"; version = "4.0.0"; sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf"; })
-  (fetchNuGet { name = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
-  (fetchNuGet { name = "runtime.native.System.IO.Compression"; version = "4.1.0"; sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk"; })
-  (fetchNuGet { name = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
-  (fetchNuGet { name = "runtime.native.System.Net.Http"; version = "4.0.1"; sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6"; })
-  (fetchNuGet { name = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
-  (fetchNuGet { name = "runtime.native.System.Security.Cryptography"; version = "4.0.0"; sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9"; })
-  (fetchNuGet { name = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
-  (fetchNuGet { name = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
-  (fetchNuGet { name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
-  (fetchNuGet { name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
-  (fetchNuGet { name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
-  (fetchNuGet { name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
-  (fetchNuGet { name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
-  (fetchNuGet { name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
-  (fetchNuGet { name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
-  (fetchNuGet { name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
-  (fetchNuGet { name = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
-  (fetchNuGet { name = "runtime.unix.System.Console"; version = "4.3.0"; sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80"; })
-  (fetchNuGet { name = "runtime.unix.System.Console"; version = "4.3.1"; sha256 = "15kfi3761mk2i29zg135ipsvavm50nwm4334cy5m5q7iagzsf73p"; })
-  (fetchNuGet { name = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
-  (fetchNuGet { name = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
-  (fetchNuGet { name = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; })
-  (fetchNuGet { name = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; })
-  (fetchNuGet { name = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
-  (fetchNuGet { name = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
-  (fetchNuGet { name = "Serilog"; version = "2.3.0"; sha256 = "0y1111y0csfnil901nfahhj3x251nzdam0c4vab3gw5qh8iqs3my"; })
-  (fetchNuGet { name = "Serilog"; version = "2.5.0"; sha256 = "0lq3kpmb83mv9kzr9zshz46bp6mvgx1kfz4dzjgzpasf6llgmrx0"; })
-  (fetchNuGet { name = "Serilog"; version = "2.6.0"; sha256 = "0xzq2szx5yb9xgnkj2zvjil48baald22jm2j39smnac32gid5gm0"; })
-  (fetchNuGet { name = "Serilog"; version = "2.8.0"; sha256 = "0fnrs05yjnni06mbax7ig74wiiqjyyhrxmr1hrhlpwcmc40zs4ih"; })
-  (fetchNuGet { name = "Serilog"; version = "2.9.0"; sha256 = "0z0ib82w9b229a728bbyhzc2hnlbl0ki7nnvmgnv3l741f2vr4i6"; })
-  (fetchNuGet { name = "SerilogAnalyzer"; version = "0.15.0.0"; sha256 = "0k83cyzl9520q282vp07zb8rs16a56axv7a31l3m5fb1afq2hv9l"; })
-  (fetchNuGet { name = "Serilog.AspNetCore"; version = "3.4.0"; sha256 = "1k59zspma8hlka6j6hvflw8i073092qj8kzz52fdkqrck7w7cbag"; })
-  (fetchNuGet { name = "Serilog.Enrichers.Thread"; version = "3.1.0"; sha256 = "1y75aiv2k1sxnh012ixkx92fq1yl8srqggy8l439igg4p223hcqi"; })
-  (fetchNuGet { name = "Serilog.Extensions.Hosting"; version = "3.1.0"; sha256 = "0n01n2kvapl5hkp80fa0ra8zixacfqhrs05ijkh3hj5bvgnscsx5"; })
-  (fetchNuGet { name = "Serilog.Extensions.Logging"; version = "3.0.1"; sha256 = "069qy7dm5nxb372ij112ppa6m99b4iaimj3sji74m659fwrcrl9a"; })
-  (fetchNuGet { name = "Serilog.Formatting.Compact"; version = "1.1.0"; sha256 = "1w3qhj1jrihb20gr9la4r4gcmdyyy6dai2xflwhzvgqrq05wlycy"; })
-  (fetchNuGet { name = "Serilog.Settings.Configuration"; version = "3.1.0"; sha256 = "1cj5am4n073331gbfm2ylqb9cadl4q3ppzgwmm5c8m1drxpiwkb5"; })
-  (fetchNuGet { name = "Serilog.Sinks.Async"; version = "1.4.0"; sha256 = "00kqrn3xmfzg469y155vihsiby8dbbs382fi6qg8p2zg3i5dih1d"; })
-  (fetchNuGet { name = "Serilog.Sinks.Console"; version = "3.1.1"; sha256 = "0j99as641y1k6havwwkhyr0n08vibiblmfjj6nz051mz8g3864fn"; })
-  (fetchNuGet { name = "Serilog.Sinks.Debug"; version = "1.0.1"; sha256 = "0969mb254kr59bgkq01ybyzca89z3f4n9ng5mdj8m53d5653zf22"; })
-  (fetchNuGet { name = "Serilog.Sinks.File"; version = "4.1.0"; sha256 = "1ry7p9hf1zlnai1j5zjhjp4dqm2agsbpq6cvxgpf5l8m26x6mgca"; })
-  (fetchNuGet { name = "Serilog.Sinks.Graylog"; version = "2.2.2"; sha256 = "0cvl9vfd1qx0hdvvylhh9frnxwqdl9yq4vy21fjsr6wdvgflg2hr"; })
-  (fetchNuGet { name = "ServiceStack.Text.Core"; version = "5.10.2"; sha256 = "0hpqfify017gm8nbah2abkk5d4vnsqrgj86i8b5mx3wy54h82pvb"; })
-  (fetchNuGet { name = "SharpCompress"; version = "0.26.0"; sha256 = "03cygf8p44j1bfn6z9cn2xrw6zhvhq17xac1sph5rgq7vq2m5iq5"; })
-  (fetchNuGet { name = "SkiaSharp"; version = "2.80.2"; sha256 = "17n0f4gfxz69fzd7zmgimbxfja15vq902arap2rqjr1hxp8sck7g"; })
-  (fetchNuGet { name = "SkiaSharp.NativeAssets.Linux"; version = "2.80.2"; sha256 = "1951b7rpisaymb37j846jq01pjd05l4fjlnf56blh33ihxyj2jzi"; })
-  (fetchNuGet { name = "SmartAnalyzers.MultithreadingAnalyzer"; version = "1.1.31"; sha256 = "1qk5s4rx5ma7k2kzkn1h94fsrzmwkivj0z1czsjwmr8z7zhngs2h"; })
-  (fetchNuGet { name = "SQLitePCL.pretty.netstandard"; version = "2.1.0"; sha256 = "03vjk8r0dzyiwya6q5p2z2wp9sxj3b7xi72p7wgsy270a2pb3f28"; })
-  (fetchNuGet { name = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.0.4"; sha256 = "1l3vbkwismsx5jcy3d5bj4bzh8bni8bk2gq4lqplz82pz5phjpxm"; })
-  (fetchNuGet { name = "SQLitePCLRaw.core"; version = "1.1.14"; sha256 = "1najf6ns5b8rqqlmlxjn4wjcgnb5ch9ni7wiq6iip4155d35c519"; })
-  (fetchNuGet { name = "SQLitePCLRaw.core"; version = "2.0.2"; sha256 = "11mnbnsiirpgmilskqh1issvgzgg08ndq3p3nkrw73hyqr7kl958"; })
-  (fetchNuGet { name = "SQLitePCLRaw.core"; version = "2.0.4"; sha256 = "0lb5vwfl1hd24xzzdaj2p4k2hv2k0i3mgdri6fjj0ssb37mcyir1"; })
-  (fetchNuGet { name = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.0.4"; sha256 = "0kmx1w5qllmwxldr8338qxwmpfzc6g2lmyrah7wfaxd3mvfzky5c"; })
-  (fetchNuGet { name = "SQLitePCLRaw.provider.dynamic_cdecl"; version = "2.0.4"; sha256 = "084r98kilpm0q1aw41idq8slncpd7cz65g0m1wr0p8d12x8z5g6j"; })
-  (fetchNuGet { name = "SQLitePCLRaw.provider.sqlite3.netstandard11"; version = "1.1.14"; sha256 = "00jwin9lannq4qla6r85c4f0m1y8g103r02p8cnjhakxz588dm1y"; })
-  (fetchNuGet { name = "StyleCop.Analyzers"; version = "1.1.118"; sha256 = "0hj4ax64cay2lvrh9693m0g4pmis0fi5wpm12xwzvc7lkizvac0a"; })
-  (fetchNuGet { name = "Swashbuckle.AspNetCore"; version = "5.6.3"; sha256 = "1s8jmvssk8g518szi9nijsq73d85fnlzvink2x0ahf2jkvpakn9p"; })
-  (fetchNuGet { name = "Swashbuckle.AspNetCore.ReDoc"; version = "5.6.3"; sha256 = "1kbn77wbcn03pwcynj4n602p4157y1qrfv775clnmzfq7z5nfaw6"; })
-  (fetchNuGet { name = "Swashbuckle.AspNetCore.Swagger"; version = "5.6.3"; sha256 = "0yg27nlndaiaa6sv7xkcysdpmq1dzf24xjz6xq0vwn51mn84vsg9"; })
-  (fetchNuGet { name = "Swashbuckle.AspNetCore.SwaggerGen"; version = "5.6.3"; sha256 = "15h31wq9n9zcpalb3k1pzgcsafn1mz397mb9bnl55621p6zxrlz2"; })
-  (fetchNuGet { name = "Swashbuckle.AspNetCore.SwaggerUI"; version = "5.6.3"; sha256 = "0vbq3xycsixnpsqw2pphzw77w1liyz8hi1sl4hy9bpgpa18p2sfj"; })
-  (fetchNuGet { name = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
-  (fetchNuGet { name = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
-  (fetchNuGet { name = "System.Buffers"; version = "4.0.0"; sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; })
-  (fetchNuGet { name = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
-  (fetchNuGet { name = "System.Buffers"; version = "4.5.0"; sha256 = "1ywfqn4md6g3iilpxjn5dsr0f5lx6z0yvhqp4pgjcamygg73cz2c"; })
-  (fetchNuGet { name = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
-  (fetchNuGet { name = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
-  (fetchNuGet { name = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; })
-  (fetchNuGet { name = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
-  (fetchNuGet { name = "System.Collections.Immutable"; version = "1.3.1"; sha256 = "17615br2x5riyx8ivf1dcqwj6q3ipq1bi5hqhw54yfyxmx38ddva"; })
-  (fetchNuGet { name = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
-  (fetchNuGet { name = "System.Collections.NonGeneric"; version = "4.0.1"; sha256 = "19994r5y5bpdhj7di6w047apvil8lh06lh2c2yv9zc4fc5g9bl4d"; })
-  (fetchNuGet { name = "System.Collections.NonGeneric"; version = "4.3.0"; sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k"; })
-  (fetchNuGet { name = "System.Collections.Specialized"; version = "4.3.0"; sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20"; })
-  (fetchNuGet { name = "System.ComponentModel"; version = "4.3.0"; sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb"; })
-  (fetchNuGet { name = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
-  (fetchNuGet { name = "System.ComponentModel.Annotations"; version = "5.0.0"; sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j"; })
-  (fetchNuGet { name = "System.ComponentModel.Primitives"; version = "4.3.0"; sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0"; })
-  (fetchNuGet { name = "System.ComponentModel.TypeConverter"; version = "4.3.0"; sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x"; })
-  (fetchNuGet { name = "System.Console"; version = "4.0.0"; sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; })
-  (fetchNuGet { name = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
-  (fetchNuGet { name = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
-  (fetchNuGet { name = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
-  (fetchNuGet { name = "System.Diagnostics.DiagnosticSource"; version = "4.0.0"; sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m"; })
-  (fetchNuGet { name = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
-  (fetchNuGet { name = "System.Diagnostics.DiagnosticSource"; version = "4.5.0"; sha256 = "1y8m0p3127nak5yspapfnz25qc9x53gqpvwr3hdpsvrcd2r1pgyj"; })
-  (fetchNuGet { name = "System.Diagnostics.DiagnosticSource"; version = "4.5.1"; sha256 = "1j8dgilsgd0n7y87wq1cdlnwck96wijhbyhdp4d01l1gzm3074c1"; })
-  (fetchNuGet { name = "System.Diagnostics.DiagnosticSource"; version = "5.0.1"; sha256 = "0mzw44wsm87vpslb9sn7rirxynpq9m3b00l7gl0q71m8shfh66qs"; })
-  (fetchNuGet { name = "System.Diagnostics.FileVersionInfo"; version = "4.3.0"; sha256 = "094hx249lb3vb336q7dg3v257hbxvz2jnalj695l7cg5kxzqwai7"; })
-  (fetchNuGet { name = "System.Diagnostics.StackTrace"; version = "4.3.0"; sha256 = "0ash4h9k0m7xsm0yl79r0ixrdz369h7y922wipp5gladmlbvpyjd"; })
-  (fetchNuGet { name = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
-  (fetchNuGet { name = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
-  (fetchNuGet { name = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; })
-  (fetchNuGet { name = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
-  (fetchNuGet { name = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
-  (fetchNuGet { name = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; })
-  (fetchNuGet { name = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
-  (fetchNuGet { name = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
-  (fetchNuGet { name = "System.Globalization.Calendars"; version = "4.0.1"; sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh"; })
-  (fetchNuGet { name = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
-  (fetchNuGet { name = "System.Globalization.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; })
-  (fetchNuGet { name = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
-  (fetchNuGet { name = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
-  (fetchNuGet { name = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
-  (fetchNuGet { name = "System.IO.Compression"; version = "4.1.0"; sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji"; })
-  (fetchNuGet { name = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
-  (fetchNuGet { name = "System.IO.Compression.ZipFile"; version = "4.0.1"; sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82"; })
-  (fetchNuGet { name = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
-  (fetchNuGet { name = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
-  (fetchNuGet { name = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
-  (fetchNuGet { name = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
-  (fetchNuGet { name = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
-  (fetchNuGet { name = "System.IO.Pipelines"; version = "4.5.2"; sha256 = "045sn3vyk5xysjjm19q4dj5c1g1rf8l98n4qsl9pl9id4fn08yq1"; })
-  (fetchNuGet { name = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
-  (fetchNuGet { name = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
-  (fetchNuGet { name = "System.Linq.Async"; version = "5.0.0"; sha256 = "1bc1bfnahyk6y31mrxn7nd071436m94p4r9b2j835pghcqawqfbc"; })
-  (fetchNuGet { name = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
-  (fetchNuGet { name = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.0"; sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.1"; sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
-  (fetchNuGet { name = "System.Net.Http"; version = "4.1.0"; sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb"; })
-  (fetchNuGet { name = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
-  (fetchNuGet { name = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
-  (fetchNuGet { name = "System.Net.Primitives"; version = "4.0.11"; sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r"; })
-  (fetchNuGet { name = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
-  (fetchNuGet { name = "System.Net.Sockets"; version = "4.1.0"; sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls"; })
-  (fetchNuGet { name = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
-  (fetchNuGet { name = "System.Net.WebSockets.WebSocketProtocol"; version = "4.5.3"; sha256 = "0z9ccndkkq6gpsh35q3pjm4zya47p6vakcyj8nc352g4wiizqc8c"; })
-  (fetchNuGet { name = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
-  (fetchNuGet { name = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
-  (fetchNuGet { name = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
-  (fetchNuGet { name = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
-  (fetchNuGet { name = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
-  (fetchNuGet { name = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
-  (fetchNuGet { name = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
-  (fetchNuGet { name = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
-  (fetchNuGet { name = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
-  (fetchNuGet { name = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
-  (fetchNuGet { name = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
-  (fetchNuGet { name = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
-  (fetchNuGet { name = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
-  (fetchNuGet { name = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
-  (fetchNuGet { name = "System.Reflection.Metadata"; version = "1.4.2"; sha256 = "08b7b43vczlliv8k7q43jinjfrxwpljsglw7sxmc6sd7d54pd1vi"; })
-  (fetchNuGet { name = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
-  (fetchNuGet { name = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
-  (fetchNuGet { name = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
-  (fetchNuGet { name = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
-  (fetchNuGet { name = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
-  (fetchNuGet { name = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
-  (fetchNuGet { name = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
-  (fetchNuGet { name = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
-  (fetchNuGet { name = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
-  (fetchNuGet { name = "System.Runtime"; version = "4.3.1"; sha256 = "03ch4d2acf6q037a4njxpll2kkx3dwzlg07yxr4z5m6j1kqgmm27"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.4.0"; sha256 = "0a6ahgi5b148sl5qyfpyw383p3cb4yrkm802k29fsi4mxkiwir29"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.0"; sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.1"; sha256 = "1xcrjx5fwg284qdnxyi2d0lzdm5q4frlpkp0nf6vvkx1kdz2prrf"; })
-  (fetchNuGet { name = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
-  (fetchNuGet { name = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
-  (fetchNuGet { name = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
-  (fetchNuGet { name = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.0.0"; sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
-  (fetchNuGet { name = "System.Runtime.Numerics"; version = "4.0.1"; sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn"; })
-  (fetchNuGet { name = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
-  (fetchNuGet { name = "System.Runtime.Serialization.Formatters"; version = "4.3.0"; sha256 = "114j35n8gcvn3sqv9ar36r1jjq0y1yws9r0yk8i6wm4aq7n9rs0m"; })
-  (fetchNuGet { name = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
-  (fetchNuGet { name = "System.Runtime.Serialization.Primitives"; version = "4.3.0"; sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf"; })
-  (fetchNuGet { name = "System.Security.AccessControl"; version = "4.5.0"; sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0"; })
-  (fetchNuGet { name = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Algorithms"; version = "4.2.0"; sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Cng"; version = "4.2.0"; sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Cng"; version = "4.5.0"; sha256 = "1pm4ykbcz48f1hdmwpia432ha6qbb9kbrxrrp7cg3m8q8xn52ngn"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Csp"; version = "4.0.0"; sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Encoding"; version = "4.0.0"; sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
-  (fetchNuGet { name = "System.Security.Cryptography.OpenSsl"; version = "4.0.0"; sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q"; })
-  (fetchNuGet { name = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Pkcs"; version = "4.5.0"; sha256 = "16dhiz2qypk289dxiqa9rb7jmslnami6bykalv5dvbd8j91zikpy"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Primitives"; version = "4.0.0"; sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
-  (fetchNuGet { name = "System.Security.Cryptography.X509Certificates"; version = "4.1.0"; sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh"; })
-  (fetchNuGet { name = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Xml"; version = "4.5.0"; sha256 = "1rk40x0msf9k7sxnjyizagjns1z25dh3cf22bx6hsx6vhf0sk08l"; })
-  (fetchNuGet { name = "System.Security.Permissions"; version = "4.5.0"; sha256 = "192ww5rm3c9mirxgl1nzyrwd18am3izqls0hzm0fvcdjl5grvbhm"; })
-  (fetchNuGet { name = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
-  (fetchNuGet { name = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
-  (fetchNuGet { name = "System.Security.Principal.Windows"; version = "4.5.0"; sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86"; })
-  (fetchNuGet { name = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
-  (fetchNuGet { name = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
-  (fetchNuGet { name = "System.Text.Encoding.CodePages"; version = "4.3.0"; sha256 = "0lgxg1gn7pg7j0f942pfdc9q7wamzxsgq3ng248ikdasxz0iadkv"; })
-  (fetchNuGet { name = "System.Text.Encoding.CodePages"; version = "4.7.1"; sha256 = "1y1hdap9qbl7vp74j8s9zcbh3v1rnrrvcc55wj1hl6has2v3qh1r"; })
-  (fetchNuGet { name = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; })
-  (fetchNuGet { name = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
-  (fetchNuGet { name = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
-  (fetchNuGet { name = "System.Text.Encodings.Web"; version = "4.5.0"; sha256 = "0srd5bva52n92i90wd88pzrqjsxnfgka3ilybwh7s6sf469y5s53"; })
-  (fetchNuGet { name = "System.Text.Json"; version = "5.0.1"; sha256 = "1j7via4spxy73ipng754wdz1nb882gsb9qh26jqlql66vzbbm3j3"; })
-  (fetchNuGet { name = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
-  (fetchNuGet { name = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
-  (fetchNuGet { name = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
-  (fetchNuGet { name = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
-  (fetchNuGet { name = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
-  (fetchNuGet { name = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Dataflow"; version = "5.0.0"; sha256 = "028fimgwn5j9fv6m547c975a8b90d9qcnb89k5crjyspsnjcqbhy"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.5.1"; sha256 = "1ikrplvw4m6pzjbq3bfbpr572n4i9mni577zvmrkaygvx85q3myw"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Parallel"; version = "4.3.0"; sha256 = "1rr3qa4hxwyj531s4nb3bwrxnxxwz617i0n9gh6x7nr7dd3ayzgh"; })
-  (fetchNuGet { name = "System.Threading.Thread"; version = "4.3.0"; sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4"; })
-  (fetchNuGet { name = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
-  (fetchNuGet { name = "System.Threading.Timer"; version = "4.0.1"; sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6"; })
-  (fetchNuGet { name = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
-  (fetchNuGet { name = "System.ValueTuple"; version = "4.3.0"; sha256 = "1227k7fxbxapq7dms4lvwwjdf3pr1jcsmhy2nzzhj6g6hs530hxn"; })
-  (fetchNuGet { name = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
-  (fetchNuGet { name = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
-  (fetchNuGet { name = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
-  (fetchNuGet { name = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
-  (fetchNuGet { name = "System.Xml.XmlDocument"; version = "4.3.0"; sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi"; })
-  (fetchNuGet { name = "System.Xml.XPath"; version = "4.3.0"; sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci"; })
-  (fetchNuGet { name = "System.Xml.XPath.XDocument"; version = "4.3.0"; sha256 = "1wxckyb7n1pi433xzz0qcwcbl1swpra64065mbwwi8dhdc4kiabn"; })
-  (fetchNuGet { name = "TagLibSharp"; version = "2.2.0"; sha256 = "0jb0f84p4jd59ha36spyk9q08g6fjap3xywq32rcs2xwzhhqiq0y"; })
-  (fetchNuGet { name = "TMDbLib"; version = "1.7.3-alpha"; sha256 = "1dfk646w1mn2yj0ali7dcanxqs8q3njprzpw0n2v8wgd53jpava1"; })
-  (fetchNuGet { name = "TvDbSharper"; version = "3.2.2"; sha256 = "0dkxcb7745y7wy8sdg7xic5idwwdmnp7k0x8v05f6s075a8m7nqz"; })
-  (fetchNuGet { name = "UTF.Unknown"; version = "2.3.0"; sha256 = "067hw460y36sfcpdfaw8lirn1hn2g4fvkpnih41nighzvmq1ixzf"; })
+  (fetchNuGet { pname = "BDInfo"; version = "0.7.6.1"; sha256 = "06qhssvd4iicssl9wv7921g3ss6y2s6g9zhf1svgcm8ffs52i38i"; })
+  (fetchNuGet { pname = "BlurHashSharp"; version = "1.1.1"; sha256 = "1fbpg9935pfpr93vywxjdxqzjv1c7v3z86ylzh5n2krxm5jygzrv"; })
+  (fetchNuGet { pname = "BlurHashSharp.SkiaSharp"; version = "1.1.1"; sha256 = "11ljrrph0kkw2qfxyza9xfzmh6aspbx5iv0pvk4ms0hyzxh1mas0"; })
+  (fetchNuGet { pname = "CommandLineParser"; version = "2.8.0"; sha256 = "1m32xyilv2b7k55jy8ddg08c20glbcj2yi545kxs9hj2ahanhrbb"; })
+  (fetchNuGet { pname = "DotNet.Glob"; version = "3.1.0"; sha256 = "11rvhb7y420yadah3j8by5xc7ad2ks2bqyhn4aa10m3xb6hiza0i"; })
+  (fetchNuGet { pname = "Humanizer.Core"; version = "2.8.26"; sha256 = "1v8xd12yms4qq1md4vh6faxicmqrvahqdd7sdkyzrphab9v44nsm"; })
+  (fetchNuGet { pname = "Jellyfin.XmlTv"; version = "10.6.2"; sha256 = "0ngxjl6d99hzccdbisgwf84w27j2fvjxr05awkirvm6nzvbgq16a"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Antiforgery"; version = "2.2.0"; sha256 = "026wjdwjx0lgccqv0xi5gxylxzgz5ifgxf25p5pqakgrhkz0a59l"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "5.0.5"; sha256 = "026m19pddhkx5idwpi6mp1yl9yfcfgm2qjp1jh54mdja1d7ng0vk"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Authentication"; version = "2.2.0"; sha256 = "0yqfzd0qq5ypmk6b9gnb1yscl75fxx9frq808cxs70ay7y7jqmgn"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Authentication.Abstractions"; version = "2.2.0"; sha256 = "0vj7fhpk0d95nkkxz4q0rma6pb4ym96mx6nms4603y0l19h0k5yh"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Authentication.Core"; version = "2.2.0"; sha256 = "1wgn45fmdi7dk9cl4cdhzgqc9mdxhfw7zg8zwns3j7qgrhlv6k8h"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Authorization"; version = "5.0.3"; sha256 = "0cffsksaaxndmryb3m1bhli1iihq1wc69dinpxzrdwhw8s2bmfxw"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Authorization.Policy"; version = "2.2.0"; sha256 = "1d1zh65kfjf81j21ssmhr465vx08bra8424vgnrb22gdx03mhwd2"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Connections.Abstractions"; version = "2.2.0"; sha256 = "1rl94r8b0zq14f3dhfnvfjj1ivr81iw9zh5kdgs3zkdv0xc9x21j"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Cors"; version = "2.2.0"; sha256 = "0qskbz87i74kfbklxqfyqaccyba21kkx2lcdfa54kxj9r8daq7sc"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Cryptography.Internal"; version = "2.2.0"; sha256 = "01lg2fx85b47ldgdrhs6clsivj35x54xwc9r5xk3f1v8rr3gycsv"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.DataProtection"; version = "2.2.0"; sha256 = "09lzbp084xxy1xxfbxpqdff8phv2pzd1n5v30xfm03hhl7a038gx"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.DataProtection.Abstractions"; version = "2.2.0"; sha256 = "1gi4hpssmrrdf5lm6idkhvqbfy12bx14976y4gbhmx9z8lxaqcfz"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Diagnostics.Abstractions"; version = "2.2.0"; sha256 = "061cdhjh5w2f1frhimcgk68vx8p743jb9h4qik3lm1c734r0drm0"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Hosting"; version = "2.2.7"; sha256 = "0pr4kmzlj3rmylxqg6dw2ph8a8sl2m2k630z1qy21kddsb4ac849"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Hosting.Abstractions"; version = "2.2.0"; sha256 = "043k651vbfshh3s997x42ymj8nb32419m7q3sjw5q2c27anrhfhv"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Hosting.Server.Abstractions"; version = "2.2.0"; sha256 = "0nz73bwrvhc1n7gd7xxm3p5ww2wx9qr9m9i43y20gh0c54adkygh"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Html.Abstractions"; version = "2.2.0"; sha256 = "1z5lkzb9h9wprvyxyjw4fj7bjypaibsw0cj4bz769hf0abjz8y1v"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http"; version = "2.2.0"; sha256 = "1fcrafpa57sab3as18idqknzlxkx49n4sxzlzik3sj6pcji5j17q"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http"; version = "2.2.2"; sha256 = "09mgjvpqdyylz9dbngql9arx46lfkiczjdf7aqr9asd5vjqlv2c8"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Abstractions"; version = "2.2.0"; sha256 = "13s8cm6jdpydxmr0rgmzrmnp1v2r7i3rs7v9fhabk5spixdgfy6b"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Extensions"; version = "2.2.0"; sha256 = "118gp1mfb8ymcvw87fzgjqwlc1d1b0l0sbfki291ydg414cz3dfn"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Features"; version = "2.2.0"; sha256 = "0xrlq8i61vzhzzy25n80m7wh2kn593rfaii3aqnxdsxsg6sfgnx1"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.JsonPatch"; version = "2.2.0"; sha256 = "07cihb5sqkavg42nvircdwjp0b67mhrla97jgx285zdjphplg4h2"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Localization"; version = "2.2.0"; sha256 = "08knc70cy7ycid5sbbbzy6my4b7ddj4j760k5xf1qnfb0njxhfh7"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Metadata"; version = "5.0.3"; sha256 = "01v2iaqpzz0h6z3hg1vr67za7d3283gs0wym42zvb9yksg6pf0zi"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc"; version = "2.2.0"; sha256 = "16jrikcywkd4r4jh551p8gxxw6hj3aizdzd5i7agb06gwpgqqv9c"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Abstractions"; version = "2.2.0"; sha256 = "09p447ipd19517vy8xx9ykvspn6b4fgbm2rskpmzyw41x9wz4k0b"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Analyzers"; version = "2.2.0"; sha256 = "1b975z00bzgh2z5hina4bzfksvc2vgnbzmi8g3q962hspg6ylh9f"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.ApiExplorer"; version = "2.2.0"; sha256 = "1ryhd1md30fgrli74qv45mhldivbasdvydw0lllg6x6jzpyrkwpa"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Core"; version = "2.2.0"; sha256 = "1k6lkgk9zak5sczvyjbwgqnfcwcg9ks74wznqfzck8c6hns1by0m"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Cors"; version = "2.2.0"; sha256 = "077vjxn0k5rr4s675g50rzkns6scgijxxh5iib59k77ldwpdr14q"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.DataAnnotations"; version = "2.2.0"; sha256 = "0vdhdjarh4az7g71gkvmhq6xpvwhh8si3sbrpdwb8p60i94cdyl6"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Formatters.Json"; version = "2.2.0"; sha256 = "0421fcf2z8a6z81ql123ili32wbr3x25zpq17xjf4s9fmsr0069a"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Localization"; version = "2.2.0"; sha256 = "0d27xirwsr3j7jacsrz6g2r4py35hgzjyy6ak6gkd07cm707wgc6"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Razor"; version = "2.2.0"; sha256 = "06fqg7rfyvfj3hdppkhy37ddjff2d6pg7khj6lccs9lwc732yr7q"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.Razor.Extensions"; version = "2.2.0"; sha256 = "04javqbzv7mkakqjl40j429giaagjj7hmwcljrgj8q1jknk0x9xc"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.RazorPages"; version = "2.2.0"; sha256 = "0zqyqfxzl3lkqfy9chd0ipani75q3109imlxrnhdfiwmxrd8xqbm"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.TagHelpers"; version = "2.2.0"; sha256 = "16aprk81sp2i0n0dmp318cm65mk03i58rhpijm4fz4xz51j7z8li"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.ViewFeatures"; version = "2.2.0"; sha256 = "1isflvb0ff5nfqnvdlyvmszkd42axbbz0xmdaf0d7sah0qkvvi7n"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Razor"; version = "2.2.0"; sha256 = "02ybprvsi59nwa0fdq99jvx7r26bs2bg3xjxkilc495clgg98zp0"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Razor.Design"; version = "2.2.0"; sha256 = "03pcdcbmyw050hag588b7caqilnq3cb6ndq5g6j0r7j7wf3plsn6"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Razor.Language"; version = "2.2.0"; sha256 = "0n58qdipwy5wymfhgm3anickwvnf4svb9ipbrby7ksrhhrkqvx4z"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Razor.Runtime"; version = "2.2.0"; sha256 = "1n9j5hjinm5gp39nwmcf26dwg1psl7sf7xkxnvfxsnl44mbcy695"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.ResponseCaching.Abstractions"; version = "2.2.0"; sha256 = "01sp2i2bgcn6blw1mcvg5nrlc97c9czyawwvgfi6ydzdvs6ang37"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.ResponseCompression"; version = "2.2.0"; sha256 = "0madnk92752alpc7cv2bazqlihhzgl3yj1s9ajhi3w09vg8n8pz4"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Routing"; version = "2.2.0"; sha256 = "12kv602j2rxp43l1v3618yz3pdd7hqc3r98ya0bqz6y2ppvhbyws"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Routing.Abstractions"; version = "2.2.0"; sha256 = "0d9wwz1rsh1fslbv1y72jpkvqv2v9n28rl3vslcg0x74lp2678ly"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Server.Kestrel"; version = "2.2.0"; sha256 = "0wh7hf09i9qxs9r0d5xdcx3qingsid9nxlwcyjg2r44pjs6cg1rf"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Server.Kestrel.Core"; version = "2.2.0"; sha256 = "075ffds8hwp8ps0zf84bsv9pgiaqry9njc403qack701aybci97r"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Server.Kestrel.Https"; version = "2.2.0"; sha256 = "08z447wrbzy3l9lmmas353nr17sg9yccwcg62l9ax9a6n1wvds8c"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions"; version = "2.2.0"; sha256 = "08bj95zy4zszyx1rsy8v2ai9kg4120ij6yi0zillwx3ndb3q7vfb"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets"; version = "2.2.0"; sha256 = "0vhicfnv12sz2c81czdgdlffcgrhnn1jzz9zwy3a9c2n4rn8k9k5"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.WebSockets"; version = "2.2.1"; sha256 = "0gzikr1z2fdz8nzy1m969jsrk2h97ld1hzgmbc6f036qmhiq26hr"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.WebUtilities"; version = "2.2.0"; sha256 = "0cs1g4ing4alfbwyngxzgvkrv7z964isv1j9dzflafda4p0wxmsi"; })
+  (fetchNuGet { pname = "Microsoft.Build.Tasks.Git"; version = "1.0.0"; sha256 = "0avwja8vk56f2kr2pmrqx3h60bnwbs7ds062lhvhcxv87m5yfqnj"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "1.1.0"; sha256 = "08r667hj2259wbim1p3al5qxkshydykmb7nd9ygbjlg4mmydkapc"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "2.8.0"; sha256 = "0g4h41fs0r8lqh9pk9s4mc1090kdpa6sbxq4rc866s8hnq9s1h4j"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "2.8.0"; sha256 = "0p1xvw1h2fmnxywv1j4x6p3rgarpc8mfwfgn0vflk5xfnc961f6w"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.FxCopAnalyzers"; version = "2.9.8"; sha256 = "15zv982rln15ds8z2hkpmx04njdg0cmmf1xnb9v1v7cxxf7yxx27"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Razor"; version = "2.2.0"; sha256 = "03cm9danxxnsnmrzfz2swz6zhckkgg6hrz1ycnvnjrbpk3w4v0d6"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.VersionCheckAnalyzer"; version = "2.9.8"; sha256 = "19v25694f9l172snrm4qik5gxzlifiyrmf0kk2zasz7hrciw36bl"; })
+  (fetchNuGet { pname = "Microsoft.CodeQuality.Analyzers"; version = "2.9.8"; sha256 = "17ld069hlpcv4z4ylx6m4rhd398sxd0qd0msadfm0rljlkj6xg83"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.3.0"; sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.5.0"; sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
+  (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "5.0.3"; sha256 = "1msj8zn2yfdn5lcny3msqiry94rhs8lkmx1l4pv29mhxggchvidr"; })
+  (fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "2.0.4"; sha256 = "1fdzln4im9hb55agzwchbfgm3vmngigmbpci5j89b0gqcxixmv8j"; })
+  (fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "2.1.0"; sha256 = "1qydvyyinj3b5mraazjal3n2k7jqhn05b6n1a2f3qjkqkxi63dmy"; })
+  (fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "3.1.6"; sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore"; version = "5.0.3"; sha256 = "1bhkmr15njgyrd57rmvrjdyamj6qm1n8sdrzcgbfyj7wsjav8dmv"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Abstractions"; version = "5.0.3"; sha256 = "1h0cxqsmpgd1fc9jd4mm1v89s8zchpmd24ks4j5fjgc3j83nvgg9"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Analyzers"; version = "5.0.3"; sha256 = "0mgnw1na94gg4mks7ba9r9cfy3k8vnspi08ryc2i8h91m31dibc2"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Design"; version = "5.0.3"; sha256 = "00p9l6ydqg6kmwyqza0dd9q1zfvam7b3hv8b9kafbl590kdxjzl4"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Relational"; version = "5.0.3"; sha256 = "11pancjxzx04yvy7h4x4m6hncwl2ijiwsvr9m1sa1cmq53lrrvlk"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite"; version = "5.0.3"; sha256 = "16658n7q2jahk4haljand6j3bmkg718hck4g1piy1j8kx2i6dg7p"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite.Core"; version = "5.0.3"; sha256 = "0ffi0dyrg00891ac15qajrk7mnhwyayi1fdpwjm10zjdxm4nwy26"; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Tools"; version = "5.0.3"; sha256 = "074v7y4irv34xw16ps8mmjm5pq8gk1fs17kx4sznw9bgkcfrm0hy"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.ApiDescription.Server"; version = "3.0.0"; sha256 = "13a47xcqyi5gz85swxd4mgp7ndgl4kknrvv3xwmbn71hsh953hsh"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Abstractions"; version = "2.2.0"; sha256 = "0hhxc5dp52faha1bdqw0k426zicsv6x1kfqi30m9agr0b2hixj52"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Abstractions"; version = "5.0.0"; sha256 = "0j83zapqhgqb4v5f6kn891km095pfhvsqha357a86ccclmv2czvb"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Memory"; version = "2.2.0"; sha256 = "0bzrsn5vas86w66bd04xilnlb21nx4l6lz7d3acvy6y8ir2vb5dv"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Memory"; version = "5.0.0"; sha256 = "0l8spndl3kvccjlay202msm31iy5iig0i9ddbsdy92wbcjr97lca"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "2.0.0"; sha256 = "0yssxq9di5h6xw2cayp5hj3l9b2p0jw9wcjz73rwk4586spac9s9"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "2.2.0"; sha256 = "02250qrs3jqqbggfvd0mkim82817f79x6jh8fx2i7r58d0m66qkl"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "3.1.2"; sha256 = "06diq359ac4bf8jlr9msf8mwalk1a85lskkgcd8mcha56l7l7g0r"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "3.1.6"; sha256 = "0j0zl05n9vv23m2dg4wy6pc39zy09rvnr0ljwh63sa1gski32fhx"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "5.0.0"; sha256 = "01m9vzlq0vg0lhckj2dimwq42niwny8g3lm13c9a401hlyg90z1p"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.0.0"; sha256 = "1ilz2yrgg9rbjyhn6a5zh9pr51nmh11z7sixb4p7vivgydj9gxwf"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.1.0"; sha256 = "03gzlr3z9j1xnr1k6y91zgxpz3pj27i3zsvjwj7i8jqnlqmk7pxd"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.2.0"; sha256 = "1fv5277hyhfqmc0gqszyqb1ilwnijm8kc9606yia6hwr8pxyg674"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "3.1.2"; sha256 = "1mfsgiklr4v99bx62z97vnp7y2jbdr9g9gwyyw89xcb67pir0wb9"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "3.1.6"; sha256 = "1bqp28717rdlygdj7m3srfdbkvx0x6bqs2ply9h2sib87jqxaz9i"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "5.0.0"; sha256 = "0fqxkc9pjxkqylsdf26s9q21ciyk56h1w33pz3v1v4wcv8yv1v6k"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "2.0.0"; sha256 = "1prvdbma6r18n5agbhhabv6g357p1j70gq4m9g0vs859kf44nrgc"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "2.2.0"; sha256 = "10qyjdkymdmag3r807kvbnwag4j3nz65i4cwikbd77jjvz92ya3j"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "3.1.2"; sha256 = "1jksknhlvgxgys51z0j7pi6c4k8m1iqv3ixp8nhrk24bc8hf04br"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "3.1.6"; sha256 = "0lq35v2zqvs9jl7y347nr8qmdghr6xrymmik3b5kndw1zlrflavn"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "5.0.0"; sha256 = "0sld0bh2k5kss32i3nf8mwqkjagmw0d1cdfmxm87ckiicwm413a0"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.EnvironmentVariables"; version = "2.2.4"; sha256 = "0i5m7ki5jl4q9fbc0capcjakbh2y55g0zhq7cjs9qw38496rb020"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.EnvironmentVariables"; version = "5.0.0"; sha256 = "03gvckj10ljk1mir9g8cf3cajsnihhvmh8z8341gkr9h5653qkv0"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.FileExtensions"; version = "2.2.0"; sha256 = "0bwk1kh6q259nmnly90j5rbbzi9w5gigq5vyjr31c1br4j8cjmqd"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.FileExtensions"; version = "5.0.0"; sha256 = "1wq229r3xcmm9wh9sqdpvmfv4qpbp2zms9x6xk7g7sbb8h32hnz3"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Json"; version = "5.0.0"; sha256 = "0hq5i483bjbvprp1la9l3si82x1ydxbvkpfc7r3s7zgxg957fyp9"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "2.2.0"; sha256 = "0lvv45rvq1xbf47lz818rjydc776zk8mf7svpzh1dml4qwlx9zck"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "3.1.2"; sha256 = "0z3vdzrnfy838afc2vv4knj2ycab7jni55kdj82p7plfjngv01ic"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "3.1.6"; sha256 = "0m8b5phfbkx96l92nf0xs3bz6861mhb7i4havxckz7mr81g968l6"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "5.0.0"; sha256 = "15sdwcyzz0qlybwbdq854bn3jk6kx7awx28gs864c4shhbqkppj4"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "5.0.1"; sha256 = "06xig49mwyp3b2dvdx98j079ncg6p4c9x8yj4pzs6ppmi3jgaaqk"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.0.0"; sha256 = "1pwrfh9b72k9rq6mb2jab5qhhi225d5rjalzkapiayggmygc8nhz"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.1.0"; sha256 = "0c0cx8r5xkjpxmcfp51959jnp55qjvq28d9vaslk08avvi1by12s"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.2.0"; sha256 = "1jyzfdr9651h3x6pxwhpfbb9mysfh8f8z1jvy4g117h9790r9zx5"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "3.1.2"; sha256 = "0jh1338ai6060k1130by4m0s7jhz8ky7ij9vagrsgnpcl1yc9k70"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "3.1.6"; sha256 = "18mcv1x6b3qlaksmb8q92r34jrv1841la5lmg21qppmb9qs0z293"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "5.0.0"; sha256 = "17cz6s80va0ch0a6nqa1wbbbp3p8sqxb96lj4qcw67ivkp2yxiyj"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "2.0.4"; sha256 = "041i1vlcibpzgalxxzdk81g5pgmqvmz2g61k0rqa2sky0wpvijx9"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "2.1.0"; sha256 = "0dl4qhjgifm6v3jsfzvzkvddyic77ggp9fq49ah661v45gk6ilgd"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "5.0.0"; sha256 = "1mma1zxi0b40972cwfvkj9y0w9r7vjbi74784jzcb22pric00k5x"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.HealthChecks"; version = "5.0.3"; sha256 = "0hv4l27bp29gy3rh9cssvvc8xwzy8ffwh277dw870zhv5mm2ha29"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions"; version = "5.0.3"; sha256 = "1r1xrlgbyfsf0b447lw6lv6jxq339ssrm61klyjmnk1ady05h9di"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore"; version = "5.0.3"; sha256 = "0q0j75i289yn3bv09dhzfirpb4glqm35wrv7p2463kmbf3g551rr"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "2.1.0"; sha256 = "1sxls5f5cgb0wr8cwb05skqmz074683hrhmd3hhq6m5dasnzb8n3"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "2.2.0"; sha256 = "1f83ffb4xjwljg8dgzdsa3pa0582q6b4zm0si467fgkybqzk3c54"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "5.0.0"; sha256 = "01ahgd0b2z2zycrr2lcsq2cl59fn04bh51hdwdp9dcsdkpvnasj1"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Composite"; version = "2.2.0"; sha256 = "0k3qfxb0pn9b63grbf9jv7xw40gk6m1djmi3c4inwys7lxcj2k18"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Physical"; version = "2.2.0"; sha256 = "0lrq4bxf67pw6n9kzwzqsnxkad2ygh2zn46hjias8j7aqljglh7x"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Physical"; version = "5.0.0"; sha256 = "00vii8148a6pk12l9jl0rhjp7apil5q5qcy7v1smnv17lj4p8szd"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileSystemGlobbing"; version = "2.2.0"; sha256 = "01jw7s1nb44n65qs3rk7xdzc419qwl0s5c34k031f1cc5ag3jvc2"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileSystemGlobbing"; version = "5.0.0"; sha256 = "0lm6n9vbyjh0l17qcc2y9qwn1cns3dyjmkvbxjp0g9sll32kjpmb"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "2.1.0"; sha256 = "04vm9mdjjzg3lpp2rzpgkpn8h5bzdl3bwcr22lshd3kp602ws4k9"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "2.2.0"; sha256 = "1xc7xr1nq7akfahyl5in9iyxrygap2xi9nxh39rfm37sf8lk55v1"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "5.0.0"; sha256 = "1k28hndmm8ky7sr2j5agdz9lls25mbb08dkypka0b76x5f4hplb5"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Http"; version = "3.1.6"; sha256 = "04ggi7vdx7h5622y1y7xcls6lij880jn9b2xgg73rwrq6bcadj6q"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Http"; version = "5.0.0"; sha256 = "1sx2w6s2giavi3i1wbpa64h1v1xhk5afz3whh7rxhb9fmsn9h1bk"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Localization"; version = "2.2.0"; sha256 = "1k73kk5qmrvdyd7l8qxp19crw18f2p5dgk3cjx59g7vf3rkgmc6k"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Localization.Abstractions"; version = "2.2.0"; sha256 = "1yzqs5x97rj6wlg0rylj0xi3dn1bw4ps26zdqsijx621jl1r97gy"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "2.2.0"; sha256 = "0bx3ljyvvcbikradq2h583rl72h8bxdz33aghk026cxzpv2mm3wm"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "3.1.2"; sha256 = "0yh4zbyvm24alrcblcbm0sp7l9ys5ypcxs7l772yj7fdpk0bx3ap"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "3.1.6"; sha256 = "0brzknkxlalpb1a8m371nmkmpfjf1q3p8x6nls5ylh0w7midxxgp"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "5.0.0"; sha256 = "1qa1l18q2jh9azya8gv1p8anzcdirjzd9dxxisb4911i9m1648i3"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "2.1.0"; sha256 = "1gvgif1wcx4k6pv7gc00qv1hid945jdywy1s50s33q0hfd91hbnj"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "2.2.0"; sha256 = "02w7hp6jicr7cl5p456k2cmrjvvhm6spg5kxnlncw3b72358m5wl"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "3.1.2"; sha256 = "0givwc5dnz1wm9aa0sfxi4mjws6v9c8v5i5772yg1r4w1wvn3733"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "3.1.6"; sha256 = "16pk17a3hh0j431a5f7d663iqk1j6n3wjlzk6chmvnfk3dpwfhww"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "5.0.0"; sha256 = "1yza38675dbv1qqnnhqm23alv2bbaqxp0pb7zinjmw8j2mr5r6wc"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.ObjectPool"; version = "2.2.0"; sha256 = "0n1q9lvc24ii1shzy575xldgmz7imnk4dswwwcgmzz93klri9r1z"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "2.0.0"; sha256 = "0g4zadlg73f507krilhaaa7h0jdga216syrzjlyf5fdk25gxmjqh"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "2.2.0"; sha256 = "1b20yh03fg4nmmi3vlf6gf13vrdkmklshfzl3ijygcs4c2hly6v0"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "3.1.2"; sha256 = "005f42rq6n2v5cakqi51266g26dkjc6nsqdd6w62pxvv6g6kp9km"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "3.1.6"; sha256 = "1rdi0pcpcmhvwkn7mxymrpav9q2c4frxhl99ps961mmh1i5738sc"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "5.0.0"; sha256 = "1rdmgpg770x8qwaaa6ryc27zh93p697fcyvn5vkxp0wimlhqkbay"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "2.0.0"; sha256 = "1isc3rjbzz60f7wbmgcwslx5d10hm5hisnk7v54vfi2bz7132gll"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "2.0.0"; sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "2.1.0"; sha256 = "1r9gzwdfmb8ysnc4nzmyz5cyar1lw0qmizsvrsh252nhlyg06nmb"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "2.2.0"; sha256 = "0znah6arbcqari49ymigg3wiy2hgdifz8zsq8vdc3ynnf45r7h0c"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "3.1.2"; sha256 = "04hdb7rd59frgb5ym0sfwc5r67jj6vykcbxljzs8909f8hrs98jb"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "3.1.6"; sha256 = "1acl88cph3yqcjz7ami5hzdr69cvxvry24a6r6fmrwnzfcc1i40n"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.WebEncoders"; version = "2.2.0"; sha256 = "1mhnichccw6mjf37d38q2i1kr7qp485m7apa1b872ji0q16yy1y3"; })
+  (fetchNuGet { pname = "Microsoft.NetCore.Analyzers"; version = "2.9.8"; sha256 = "1klybsdy9yw49zlpmix4vjdhmfaibg5h9yx03vszdnijzap7vpsx"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.5"; sha256 = "1h5yry6k9bpqqis2fb1901csb8kipm7anm174fjj41r317vzfjfa"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.1"; sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "2.0.0"; sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "3.1.1"; sha256 = "05hmaygd5131rnqi6ipv7agsbpi7ka18779vw45iw6b385l7n987"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.3"; sha256 = "05smkcyxir59rgrmp7d6327vvrlacdgldfxhmyr1azclvga1zfsq"; })
+  (fetchNuGet { pname = "Microsoft.NetFramework.Analyzers"; version = "2.9.8"; sha256 = "0mb3gkqcr13ryphrzax40cf05bz0h269a6zm1hnzzsq7gbd5iipb"; })
+  (fetchNuGet { pname = "Microsoft.Net.Http.Headers"; version = "2.2.0"; sha256 = "0w6lrk9z67bcirq2cj2ldfhnizc6id77ba6i30hjzgqjlyhh1gx5"; })
+  (fetchNuGet { pname = "Microsoft.Net.Http.Headers"; version = "2.2.8"; sha256 = "1s0n68z6v5mbys4jjrd4jdxrrz81iq4dzmmbmxzmlf59769x8rj9"; })
+  (fetchNuGet { pname = "Microsoft.OpenApi"; version = "1.2.3"; sha256 = "07b19k89whj69j87afkz86gp9b3iybw8jqwvlgcn43m7fb2y99rr"; })
+  (fetchNuGet { pname = "Microsoft.SourceLink.Common"; version = "1.0.0"; sha256 = "1zxkpx01zdv17c39iiy8fx25ran89n14qwddh1f140v1s4dn8z9c"; })
+  (fetchNuGet { pname = "Microsoft.SourceLink.GitHub"; version = "1.0.0"; sha256 = "029ixyaqn48cjza87m5qf0g1ynyhlm6irgbx1n09src9g666yhpd"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.0.1"; sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.5.0"; sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q"; })
+  (fetchNuGet { pname = "Mono.Nat"; version = "3.0.1"; sha256 = "1xy3c9wsiz8k3rx8v60y6gnps337rsb5jpyj0r6g384prg6z4vh0"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.0"; sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "10.0.1"; sha256 = "15ncqic3p2rzs8q8ppi0irl2miq75kilw4lh8yfgjq96id0ds3hv"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "11.0.2"; sha256 = "1784xi44f4k8v1fr696hsccmwpy94bz7kixxqlri98zhcxn406b2"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.3"; sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
+  (fetchNuGet { pname = "Newtonsoft.Json.Bson"; version = "1.0.1"; sha256 = "1r1hvj5gjl466bya2bfl5aaj8rbwyf5x1msg710wf3k2llbci1xa"; })
+  (fetchNuGet { pname = "OptimizedPriorityQueue"; version = "5.0.0"; sha256 = "0a0kn4sr80yx1bm5nngbillfbcafv86hqxwp5kxjgh3wcd01c803"; })
+  (fetchNuGet { pname = "PlaylistsNET"; version = "1.1.3"; sha256 = "092lgqvvarx6g8mrhm8rdzcqisklzffa0i3gkpc0zbk7b7b0f8yg"; })
+  (fetchNuGet { pname = "prometheus-net"; version = "3.1.2"; sha256 = "1jyxvl9cqxvb71mpaglw8aks27i69hg7yzrdwsjc182nmmhh1p03"; })
+  (fetchNuGet { pname = "prometheus-net"; version = "4.1.1"; sha256 = "0n016rxlz00xrw1jrikwr6h221rrw96h13d0823mfb5375rdi8rx"; })
+  (fetchNuGet { pname = "prometheus-net.AspNetCore"; version = "4.1.1"; sha256 = "0239i5ga7z3ajq6rvqz2ym3a30b1nbfjn6dnmc1iljd9579flzhs"; })
+  (fetchNuGet { pname = "prometheus-net.DotNetRuntime"; version = "3.4.1"; sha256 = "1b4a5yh2s8nji4bvp9fcw03dw0wbx58823b7jfga0vva33am3xx8"; })
+  (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
+  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
+  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
+  (fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
+  (fetchNuGet { pname = "runtime.any.System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201"; })
+  (fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; })
+  (fetchNuGet { pname = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; })
+  (fetchNuGet { pname = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; })
+  (fetchNuGet { pname = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; })
+  (fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
+  (fetchNuGet { pname = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
+  (fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
+  (fetchNuGet { pname = "runtime.any.System.Threading.Timer"; version = "4.3.0"; sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086"; })
+  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
+  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
+  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.0.0"; sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
+  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.1.0"; sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk"; })
+  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
+  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.0.1"; sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6"; })
+  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography"; version = "4.0.0"; sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
+  (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
+  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
+  (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
+  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
+  (fetchNuGet { pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
+  (fetchNuGet { pname = "runtime.unix.System.Console"; version = "4.3.0"; sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80"; })
+  (fetchNuGet { pname = "runtime.unix.System.Console"; version = "4.3.1"; sha256 = "15kfi3761mk2i29zg135ipsvavm50nwm4334cy5m5q7iagzsf73p"; })
+  (fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
+  (fetchNuGet { pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
+  (fetchNuGet { pname = "runtime.unix.System.Net.Primitives"; version = "4.3.0"; sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4"; })
+  (fetchNuGet { pname = "runtime.unix.System.Net.Sockets"; version = "4.3.0"; sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12"; })
+  (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
+  (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
+  (fetchNuGet { pname = "Serilog"; version = "2.3.0"; sha256 = "0y1111y0csfnil901nfahhj3x251nzdam0c4vab3gw5qh8iqs3my"; })
+  (fetchNuGet { pname = "Serilog"; version = "2.5.0"; sha256 = "0lq3kpmb83mv9kzr9zshz46bp6mvgx1kfz4dzjgzpasf6llgmrx0"; })
+  (fetchNuGet { pname = "Serilog"; version = "2.6.0"; sha256 = "0xzq2szx5yb9xgnkj2zvjil48baald22jm2j39smnac32gid5gm0"; })
+  (fetchNuGet { pname = "Serilog"; version = "2.8.0"; sha256 = "0fnrs05yjnni06mbax7ig74wiiqjyyhrxmr1hrhlpwcmc40zs4ih"; })
+  (fetchNuGet { pname = "Serilog"; version = "2.9.0"; sha256 = "0z0ib82w9b229a728bbyhzc2hnlbl0ki7nnvmgnv3l741f2vr4i6"; })
+  (fetchNuGet { pname = "SerilogAnalyzer"; version = "0.15.0.0"; sha256 = "0k83cyzl9520q282vp07zb8rs16a56axv7a31l3m5fb1afq2hv9l"; })
+  (fetchNuGet { pname = "Serilog.AspNetCore"; version = "3.4.0"; sha256 = "1k59zspma8hlka6j6hvflw8i073092qj8kzz52fdkqrck7w7cbag"; })
+  (fetchNuGet { pname = "Serilog.Enrichers.Thread"; version = "3.1.0"; sha256 = "1y75aiv2k1sxnh012ixkx92fq1yl8srqggy8l439igg4p223hcqi"; })
+  (fetchNuGet { pname = "Serilog.Extensions.Hosting"; version = "3.1.0"; sha256 = "0n01n2kvapl5hkp80fa0ra8zixacfqhrs05ijkh3hj5bvgnscsx5"; })
+  (fetchNuGet { pname = "Serilog.Extensions.Logging"; version = "3.0.1"; sha256 = "069qy7dm5nxb372ij112ppa6m99b4iaimj3sji74m659fwrcrl9a"; })
+  (fetchNuGet { pname = "Serilog.Formatting.Compact"; version = "1.1.0"; sha256 = "1w3qhj1jrihb20gr9la4r4gcmdyyy6dai2xflwhzvgqrq05wlycy"; })
+  (fetchNuGet { pname = "Serilog.Settings.Configuration"; version = "3.1.0"; sha256 = "1cj5am4n073331gbfm2ylqb9cadl4q3ppzgwmm5c8m1drxpiwkb5"; })
+  (fetchNuGet { pname = "Serilog.Sinks.Async"; version = "1.4.0"; sha256 = "00kqrn3xmfzg469y155vihsiby8dbbs382fi6qg8p2zg3i5dih1d"; })
+  (fetchNuGet { pname = "Serilog.Sinks.Console"; version = "3.1.1"; sha256 = "0j99as641y1k6havwwkhyr0n08vibiblmfjj6nz051mz8g3864fn"; })
+  (fetchNuGet { pname = "Serilog.Sinks.Debug"; version = "1.0.1"; sha256 = "0969mb254kr59bgkq01ybyzca89z3f4n9ng5mdj8m53d5653zf22"; })
+  (fetchNuGet { pname = "Serilog.Sinks.File"; version = "4.1.0"; sha256 = "1ry7p9hf1zlnai1j5zjhjp4dqm2agsbpq6cvxgpf5l8m26x6mgca"; })
+  (fetchNuGet { pname = "Serilog.Sinks.Graylog"; version = "2.2.2"; sha256 = "0cvl9vfd1qx0hdvvylhh9frnxwqdl9yq4vy21fjsr6wdvgflg2hr"; })
+  (fetchNuGet { pname = "ServiceStack.Text.Core"; version = "5.10.2"; sha256 = "0hpqfify017gm8nbah2abkk5d4vnsqrgj86i8b5mx3wy54h82pvb"; })
+  (fetchNuGet { pname = "SharpCompress"; version = "0.26.0"; sha256 = "03cygf8p44j1bfn6z9cn2xrw6zhvhq17xac1sph5rgq7vq2m5iq5"; })
+  (fetchNuGet { pname = "SkiaSharp"; version = "2.80.2"; sha256 = "17n0f4gfxz69fzd7zmgimbxfja15vq902arap2rqjr1hxp8sck7g"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.80.2"; sha256 = "1951b7rpisaymb37j846jq01pjd05l4fjlnf56blh33ihxyj2jzi"; })
+  (fetchNuGet { pname = "SmartAnalyzers.MultithreadingAnalyzer"; version = "1.1.31"; sha256 = "1qk5s4rx5ma7k2kzkn1h94fsrzmwkivj0z1czsjwmr8z7zhngs2h"; })
+  (fetchNuGet { pname = "SQLitePCL.pretty.netstandard"; version = "2.1.0"; sha256 = "03vjk8r0dzyiwya6q5p2z2wp9sxj3b7xi72p7wgsy270a2pb3f28"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.0.4"; sha256 = "1l3vbkwismsx5jcy3d5bj4bzh8bni8bk2gq4lqplz82pz5phjpxm"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "1.1.14"; sha256 = "1najf6ns5b8rqqlmlxjn4wjcgnb5ch9ni7wiq6iip4155d35c519"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.0.2"; sha256 = "11mnbnsiirpgmilskqh1issvgzgg08ndq3p3nkrw73hyqr7kl958"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.0.4"; sha256 = "0lb5vwfl1hd24xzzdaj2p4k2hv2k0i3mgdri6fjj0ssb37mcyir1"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.0.4"; sha256 = "0kmx1w5qllmwxldr8338qxwmpfzc6g2lmyrah7wfaxd3mvfzky5c"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.provider.dynamic_cdecl"; version = "2.0.4"; sha256 = "084r98kilpm0q1aw41idq8slncpd7cz65g0m1wr0p8d12x8z5g6j"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.provider.sqlite3.netstandard11"; version = "1.1.14"; sha256 = "00jwin9lannq4qla6r85c4f0m1y8g103r02p8cnjhakxz588dm1y"; })
+  (fetchNuGet { pname = "StyleCop.Analyzers"; version = "1.1.118"; sha256 = "0hj4ax64cay2lvrh9693m0g4pmis0fi5wpm12xwzvc7lkizvac0a"; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "5.6.3"; sha256 = "1s8jmvssk8g518szi9nijsq73d85fnlzvink2x0ahf2jkvpakn9p"; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore.ReDoc"; version = "5.6.3"; sha256 = "1kbn77wbcn03pwcynj4n602p4157y1qrfv775clnmzfq7z5nfaw6"; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "5.6.3"; sha256 = "0yg27nlndaiaa6sv7xkcysdpmq1dzf24xjz6xq0vwn51mn84vsg9"; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "5.6.3"; sha256 = "15h31wq9n9zcpalb3k1pzgcsafn1mz397mb9bnl55621p6zxrlz2"; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerUI"; version = "5.6.3"; sha256 = "0vbq3xycsixnpsqw2pphzw77w1liyz8hi1sl4hy9bpgpa18p2sfj"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.0.0"; sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.5.0"; sha256 = "1ywfqn4md6g3iilpxjn5dsr0f5lx6z0yvhqp4pgjcamygg73cz2c"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.3.1"; sha256 = "17615br2x5riyx8ivf1dcqwj6q3ipq1bi5hqhw54yfyxmx38ddva"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
+  (fetchNuGet { pname = "System.Collections.NonGeneric"; version = "4.0.1"; sha256 = "19994r5y5bpdhj7di6w047apvil8lh06lh2c2yv9zc4fc5g9bl4d"; })
+  (fetchNuGet { pname = "System.Collections.NonGeneric"; version = "4.3.0"; sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k"; })
+  (fetchNuGet { pname = "System.Collections.Specialized"; version = "4.3.0"; sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20"; })
+  (fetchNuGet { pname = "System.ComponentModel"; version = "4.3.0"; sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb"; })
+  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
+  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "5.0.0"; sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j"; })
+  (fetchNuGet { pname = "System.ComponentModel.Primitives"; version = "4.3.0"; sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0"; })
+  (fetchNuGet { pname = "System.ComponentModel.TypeConverter"; version = "4.3.0"; sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.0.0"; sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.0.0"; sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.5.0"; sha256 = "1y8m0p3127nak5yspapfnz25qc9x53gqpvwr3hdpsvrcd2r1pgyj"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "4.5.1"; sha256 = "1j8dgilsgd0n7y87wq1cdlnwck96wijhbyhdp4d01l1gzm3074c1"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "5.0.1"; sha256 = "0mzw44wsm87vpslb9sn7rirxynpq9m3b00l7gl0q71m8shfh66qs"; })
+  (fetchNuGet { pname = "System.Diagnostics.FileVersionInfo"; version = "4.3.0"; sha256 = "094hx249lb3vb336q7dg3v257hbxvz2jnalj695l7cg5kxzqwai7"; })
+  (fetchNuGet { pname = "System.Diagnostics.StackTrace"; version = "4.3.0"; sha256 = "0ash4h9k0m7xsm0yl79r0ixrdz369h7y922wipp5gladmlbvpyjd"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
+  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.0.1"; sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh"; })
+  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
+  (fetchNuGet { pname = "System.IO.Compression"; version = "4.1.0"; sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji"; })
+  (fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
+  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.0.1"; sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82"; })
+  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
+  (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.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
+  (fetchNuGet { pname = "System.IO.Pipelines"; version = "4.5.2"; sha256 = "045sn3vyk5xysjjm19q4dj5c1g1rf8l98n4qsl9pl9id4fn08yq1"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
+  (fetchNuGet { pname = "System.Linq.Async"; version = "5.0.0"; sha256 = "1bc1bfnahyk6y31mrxn7nd071436m94p4r9b2j835pghcqawqfbc"; })
+  (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"; version = "4.5.0"; sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.1"; sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
+  (fetchNuGet { pname = "System.Net.Http"; version = "4.1.0"; sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb"; })
+  (fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
+  (fetchNuGet { pname = "System.Net.NameResolution"; version = "4.3.0"; sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq"; })
+  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.0.11"; sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r"; })
+  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
+  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.1.0"; sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls"; })
+  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
+  (fetchNuGet { pname = "System.Net.WebSockets.WebSocketProtocol"; version = "4.5.3"; sha256 = "0z9ccndkkq6gpsh35q3pjm4zya47p6vakcyj8nc352g4wiizqc8c"; })
+  (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
+  (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.4.2"; sha256 = "08b7b43vczlliv8k7q43jinjfrxwpljsglw7sxmc6sd7d54pd1vi"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
+  (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 = "4.4.0"; sha256 = "0a6ahgi5b148sl5qyfpyw383p3cb4yrkm802k29fsi4mxkiwir29"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.0"; sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.1"; sha256 = "1xcrjx5fwg284qdnxyi2d0lzdm5q4frlpkp0nf6vvkx1kdz2prrf"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.0.0"; sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
+  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.0.1"; sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn"; })
+  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
+  (fetchNuGet { pname = "System.Runtime.Serialization.Formatters"; version = "4.3.0"; sha256 = "114j35n8gcvn3sqv9ar36r1jjq0y1yws9r0yk8i6wm4aq7n9rs0m"; })
+  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
+  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.3.0"; sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "4.5.0"; sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0"; })
+  (fetchNuGet { pname = "System.Security.Claims"; version = "4.3.0"; sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.2.0"; sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.2.0"; sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.5.0"; sha256 = "1pm4ykbcz48f1hdmwpia432ha6qbb9kbrxrrp7cg3m8q8xn52ngn"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.0.0"; sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.0.0"; sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.0.0"; sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Pkcs"; version = "4.5.0"; sha256 = "16dhiz2qypk289dxiqa9rb7jmslnami6bykalv5dvbd8j91zikpy"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.0.0"; sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.1.0"; sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Xml"; version = "4.5.0"; sha256 = "1rk40x0msf9k7sxnjyizagjns1z25dh3cf22bx6hsx6vhf0sk08l"; })
+  (fetchNuGet { pname = "System.Security.Permissions"; version = "4.5.0"; sha256 = "192ww5rm3c9mirxgl1nzyrwd18am3izqls0hzm0fvcdjl5grvbhm"; })
+  (fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.5.0"; sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.3.0"; sha256 = "0lgxg1gn7pg7j0f942pfdc9q7wamzxsgq3ng248ikdasxz0iadkv"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.7.1"; sha256 = "1y1hdap9qbl7vp74j8s9zcbh3v1rnrrvcc55wj1hl6has2v3qh1r"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "4.5.0"; sha256 = "0srd5bva52n92i90wd88pzrqjsxnfgka3ilybwh7s6sf469y5s53"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "5.0.1"; sha256 = "1j7via4spxy73ipng754wdz1nb882gsb9qh26jqlql66vzbbm3j3"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Dataflow"; version = "5.0.0"; sha256 = "028fimgwn5j9fv6m547c975a8b90d9qcnb89k5crjyspsnjcqbhy"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.1"; sha256 = "1ikrplvw4m6pzjbq3bfbpr572n4i9mni577zvmrkaygvx85q3myw"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Parallel"; version = "4.3.0"; sha256 = "1rr3qa4hxwyj531s4nb3bwrxnxxwz617i0n9gh6x7nr7dd3ayzgh"; })
+  (fetchNuGet { pname = "System.Threading.Thread"; version = "4.3.0"; sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4"; })
+  (fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
+  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.0.1"; sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6"; })
+  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
+  (fetchNuGet { pname = "System.ValueTuple"; version = "4.3.0"; sha256 = "1227k7fxbxapq7dms4lvwwjdf3pr1jcsmhy2nzzhj6g6hs530hxn"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
+  (fetchNuGet { pname = "System.Xml.XmlDocument"; version = "4.3.0"; sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi"; })
+  (fetchNuGet { pname = "System.Xml.XPath"; version = "4.3.0"; sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci"; })
+  (fetchNuGet { pname = "System.Xml.XPath.XDocument"; version = "4.3.0"; sha256 = "1wxckyb7n1pi433xzz0qcwcbl1swpra64065mbwwi8dhdc4kiabn"; })
+  (fetchNuGet { pname = "TagLibSharp"; version = "2.2.0"; sha256 = "0jb0f84p4jd59ha36spyk9q08g6fjap3xywq32rcs2xwzhhqiq0y"; })
+  (fetchNuGet { pname = "TMDbLib"; version = "1.7.3-alpha"; sha256 = "1dfk646w1mn2yj0ali7dcanxqs8q3njprzpw0n2v8wgd53jpava1"; })
+  (fetchNuGet { pname = "TvDbSharper"; version = "3.2.2"; sha256 = "0dkxcb7745y7wy8sdg7xic5idwwdmnp7k0x8v05f6s075a8m7nqz"; })
+  (fetchNuGet { pname = "UTF.Unknown"; version = "2.3.0"; sha256 = "067hw460y36sfcpdfaw8lirn1hn2g4fvkpnih41nighzvmq1ixzf"; })
 ]
diff --git a/pkgs/servers/jetbrains/youtrack.nix b/pkgs/servers/jetbrains/youtrack.nix
index ac144f1660634..07de22e41acf0 100644
--- a/pkgs/servers/jetbrains/youtrack.nix
+++ b/pkgs/servers/jetbrains/youtrack.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, makeWrapper, jdk11, gawk }:
+{ lib, stdenv, fetchurl, makeWrapper, jdk17, gawk }:
 
 stdenv.mkDerivation rec {
   pname = "youtrack";
-  version = "2021.1.13597";
+  version = "2021.4.35970";
 
   jar = fetchurl {
     url = "https://download.jetbrains.com/charisma/${pname}-${version}.jar";
-    sha256 = "0lc0ra95ix5bs1spfjnx5akh8jm754v8lc3yja8dc438zi221qhh";
+    sha256 = "sha256-HB515TS0XXEAiT463nVHP/naeoF7nmeB+6EK0NJ+5c0=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -15,10 +15,10 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
-    makeWrapper ${jdk11}/bin/java $out/bin/youtrack \
+    makeWrapper ${jdk17}/bin/java $out/bin/youtrack \
       --add-flags "\$YOUTRACK_JVM_OPTS -jar $jar" \
       --prefix PATH : "${lib.makeBinPath [ gawk ]}" \
-      --set JRE_HOME ${jdk11}
+      --set JRE_HOME ${jdk17}
     runHook postInstall
   '';
 
diff --git a/pkgs/servers/keycloak/default.nix b/pkgs/servers/keycloak/default.nix
index cd8373f0842b9..ef168272fe76d 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 = "15.0.2";
+  version = "15.1.0";
 
   src = fetchzip {
     url    = "https://github.com/keycloak/keycloak/releases/download/${version}/keycloak-${version}.zip";
-    sha256 = "sha256-GlnSsvAYBjRTtabMVrpWUH0EWEdLIe6ud+HIXJqTsqY=";
+    sha256 = "0s8nvp1ca30569k1a7glbn2zvvchz35s2r8d08fbs5zjngnz3276";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/klipper/default.nix b/pkgs/servers/klipper/default.nix
index ebd8d26de125a..7d5ae0c74f298 100644
--- a/pkgs/servers/klipper/default.nix
+++ b/pkgs/servers/klipper/default.nix
@@ -6,13 +6,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "klipper";
-  version = "unstable-2021-11-10";
+  version = "unstable-2021-12-24";
 
   src = fetchFromGitHub {
     owner = "KevinOConnor";
     repo = "klipper";
-    rev = "c179db3d4331db9d85c7acfdaa1e96e295d277ba";
-    sha256 = "sha256-/fFbhKiSQq9E9iucinTgUTyOtfDKCMgvzebHjfOaJ+M=";
+    rev = "247cd753e283e70a9949e76d0ba669d99c0eb144";
+    sha256 = "sha256-65wxhE/XqNK6ly+fxZFLjtImvpJlgU54RStUve40CJA=";
   };
 
   sourceRoot = "source/klippy";
diff --git a/pkgs/servers/libreddit/default.nix b/pkgs/servers/libreddit/default.nix
index 56e04b3408449..5ad43a89522ff 100644
--- a/pkgs/servers/libreddit/default.nix
+++ b/pkgs/servers/libreddit/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "libreddit";
-  version = "0.16.0";
+  version = "0.21.4";
 
   src = fetchFromGitHub {
     owner = "spikecodes";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-E8PoUoHsrTKgLBs3b/C2x/nRrL99eiVNscRtDfKIWNc=";
+    sha256 = "sha256-9Qr1afzp5BwcnJ4WjACJQk4NA81JTnNBmZZNFMZ6FvU=";
   };
 
-  cargoSha256 = "sha256-tK0wvmn+U4pdDdBhmXJ2TmFRro85kfFkYVkxBXftbdE=";
+  cargoSha256 = "sha256-HD6asNFb0ZICeXnUwF4ZZ568GJRPeSy4XwflpIuWJw8=";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
@@ -29,6 +29,6 @@ rustPlatform.buildRustPackage rec {
     description = "Private front-end for Reddit";
     homepage = "https://github.com/spikecodes/libreddit";
     license = with licenses; [ agpl3Only ];
-    maintainers = with maintainers; [ fab ];
+    maintainers = with maintainers; [ fab jojosch ];
   };
 }
diff --git a/pkgs/servers/ma1sd/default.nix b/pkgs/servers/ma1sd/default.nix
index 46578019194da..91d291c58dabd 100644
--- a/pkgs/servers/ma1sd/default.nix
+++ b/pkgs/servers/ma1sd/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, jre, git, gradle_6, perl, makeWrapper }:
 
 let
-  name = "ma1sd-${version}";
+  pname = "ma1sd";
   version = "2.4.0";
   rev = version;
 
@@ -14,8 +14,8 @@ let
 
 
   deps = stdenv.mkDerivation {
-    name = "${name}-deps";
-    inherit src;
+    pname = "${pname}-deps";
+    inherit src version;
     nativeBuildInputs = [ gradle_6 perl git ];
 
     buildPhase = ''
@@ -40,7 +40,7 @@ let
 
 in
 stdenv.mkDerivation {
-  inherit name src version;
+  inherit pname src version;
   nativeBuildInputs = [ gradle_6 perl makeWrapper ];
   buildInputs = [ jre ];
 
diff --git a/pkgs/servers/maddy/default.nix b/pkgs/servers/maddy/default.nix
index 3381b7858beb8..b4ddb80c16532 100644
--- a/pkgs/servers/maddy/default.nix
+++ b/pkgs/servers/maddy/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, coreutils, installShellFiles, scdoc }:
+{ lib, buildGoModule, fetchFromGitHub, coreutils, installShellFiles, scdoc, nixosTests }:
 
 buildGoModule rec {
   pname = "maddy";
@@ -37,6 +37,8 @@ buildGoModule rec {
       --replace "/bin/kill" "${coreutils}/bin/kill"
   '';
 
+  passthru.tests.nixos = nixosTests.maddy;
+
   meta = with lib; {
     description = "Composable all-in-one mail server";
     homepage = "https://maddy.email";
diff --git a/pkgs/servers/mail/dovecot/default.nix b/pkgs/servers/mail/dovecot/default.nix
index 1fe61eb6bb67c..45300a8073f9e 100644
--- a/pkgs/servers/mail/dovecot/default.nix
+++ b/pkgs/servers/mail/dovecot/default.nix
@@ -11,7 +11,7 @@
 
 stdenv.mkDerivation rec {
   pname = "dovecot";
-  version = "2.3.17";
+  version = "2.3.17.1";
 
   nativeBuildInputs = [ perl pkg-config ];
   buildInputs =
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://dovecot.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.gz";
-    sha256 = "1y9dpn4jgzrfjibp5zrc11bdk0q843d998kxhpxkyfm2fz6i4i12";
+    sha256 = "1f525bvpjvi4rnwqjsqaqrbdii08sqmc1v8xq03m19w1vk6cqrqw";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix b/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
index 90859efd3c488..9af34371490de 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, pkg-config, dovecot, libtool, xapian, icu64 }:
 stdenv.mkDerivation rec {
-  pname = "fts-xapian";
-  version = "1.4.14";
+  pname = "dovecot-fts-xapian";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "grosjo";
     repo = "fts-xapian";
     rev = version;
-    sha256 = "sha256-Banyg10AiM1Jw6Zfl4Dcpc0/6Km48lLVuQ3xRLylE7k=";
+    sha256 = "1ap4jb43gvy7caa8lg2hg811q0n5c2gqbmcjl4126wz44hb7waa1";
   };
 
   buildInputs = [ dovecot xapian icu64 ];
@@ -21,7 +21,6 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--with-dovecot=${dovecot}/lib/dovecot"
-    "--without-dovecot-install-dirs"
     "--with-moduledir=$(out)/lib/dovecot"
   ];
 
@@ -32,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ julm symphorien ];
     platforms = platforms.unix;
+    broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/dovecot_fts_xapian.x86_64-darwin
   };
 }
diff --git a/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix b/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
index 6665abe969346..2b75a36c6c420 100644
--- a/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
+++ b/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
@@ -3,11 +3,11 @@ let
   dovecotMajorMinor = lib.versions.majorMinor dovecot.version;
 in stdenv.mkDerivation rec {
   pname = "dovecot-pigeonhole";
-  version = "0.5.17";
+  version = "0.5.17.1";
 
   src = fetchurl {
     url = "https://pigeonhole.dovecot.org/releases/${dovecotMajorMinor}/dovecot-${dovecotMajorMinor}-pigeonhole-${version}.tar.gz";
-    sha256 = "0j6ng173hh5iiqxdkxfb5v9djpn39gxdrv5ki7i22cf5cqwq47h3";
+    sha256 = "04j5z3y8yyci4ni9j9i7cy0zg1qj2sm9zfarmjcvs9vydpga7i1w";
   };
 
   buildInputs = [ dovecot openssl ];
@@ -30,7 +30,7 @@ in stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    homepage = "http://pigeonhole.dovecot.org/";
+    homepage = "https://pigeonhole.dovecot.org/";
     description = "A sieve plugin for the Dovecot IMAP server";
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ globin ajs124 ];
diff --git a/pkgs/servers/mastodon/package.json b/pkgs/servers/mastodon/package.json
index 7d54000790910..b81940521c82b 100644
--- a/pkgs/servers/mastodon/package.json
+++ b/pkgs/servers/mastodon/package.json
@@ -1,6 +1,6 @@
 {
-  "version": "3.4.1",
-  "name": "@tootsuite/mastodon",
+  "version": "3.4.4",
+  "name": "@mastodon/mastodon",
   "license": "AGPL-3.0-or-later",
   "engines": {
     "node": ">=12"
@@ -19,7 +19,7 @@
   },
   "repository": {
     "type": "git",
-    "url": "https://github.com/tootsuite/mastodon.git"
+    "url": "https://github.com/mastodon/mastodon.git"
   },
   "browserslist": [
     "last 2 versions",
diff --git a/pkgs/servers/mastodon/source.nix b/pkgs/servers/mastodon/source.nix
index be64ff23150dd..4b1cd55b5e9e3 100644
--- a/pkgs/servers/mastodon/source.nix
+++ b/pkgs/servers/mastodon/source.nix
@@ -2,8 +2,8 @@
 { fetchgit, applyPatches }: let
   src = fetchgit {
     url = "https://github.com/tootsuite/mastodon.git";
-    rev = "v3.4.1";
-    sha256 = "1pg3yh6gfzwrhzm35s6ydpny4fj117z2avi4rck5d7n20j8s2hf5";
+    rev = "v3.4.4";
+    sha256 = "0gi818ns7ws63g7izhcqq5b28kifzmvg0p278lq82h02ysg9grj3";
   };
 in applyPatches {
   inherit src;
diff --git a/pkgs/servers/mastodon/update.nix b/pkgs/servers/mastodon/update.nix
index d7423b3e66c84..2e7df482530f4 100644
--- a/pkgs/servers/mastodon/update.nix
+++ b/pkgs/servers/mastodon/update.nix
@@ -1,20 +1,30 @@
-{ pkgs, stdenv, lib, makeWrapper, yarn2nix, bundix, coreutils,
-  diffutils, nix-prefetch-github, gnused, jq }:
-stdenv.mkDerivation rec {
-  name = "mastodon-update-script";
-  installPhase = ''
-    mkdir -p $out/bin
-    cp ${./update.sh} $out/bin/update.sh
-    patchShebangs $out/bin/update.sh
-    wrapProgram $out/bin/update.sh --prefix PATH : ${lib.makeBinPath buildInputs}
-  '';
-
+{ pkgs
+, runCommand
+, lib
+, makeWrapper
+, yarn2nix
+, bundix
+, coreutils
+, diffutils
+, nix-prefetch-github
+, gnused
+, jq
+}:
+let
+  binPath = lib.makeBinPath [ yarn2nix bundix coreutils diffutils nix-prefetch-github gnused jq ];
+in
+runCommand "mastodon-update-script"
+{
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ yarn2nix bundix coreutils diffutils nix-prefetch-github gnused jq ];
 
   meta = {
     maintainers = with lib.maintainers; [ happy-river ];
     description = "Utility to generate Nix expressions for Mastodon's dependencies";
     platforms = lib.platforms.unix;
   };
-}
+} ''
+  mkdir -p $out/bin
+  cp ${./update.sh} $out/bin/update.sh
+  patchShebangs $out/bin/update.sh
+  wrapProgram $out/bin/update.sh --prefix PATH : ${binPath}
+''
diff --git a/pkgs/servers/mastodon/version.nix b/pkgs/servers/mastodon/version.nix
index 4ccfa7d8ebc60..852b6be5f4b31 100644
--- a/pkgs/servers/mastodon/version.nix
+++ b/pkgs/servers/mastodon/version.nix
@@ -1 +1 @@
-"3.4.1"
+"3.4.4"
diff --git a/pkgs/servers/mastodon/version.patch b/pkgs/servers/mastodon/version.patch
index 08bc2f827a8b6..2d8d600716505 100644
--- a/pkgs/servers/mastodon/version.patch
+++ b/pkgs/servers/mastodon/version.patch
@@ -3,7 +3,7 @@ diff -Naur --label a/package.json --label b/package.json a/package.json b/packag
 +++ b/package.json
 @@ -1,4 +1,5 @@
  {
-+  "version": "3.4.1",
-   "name": "@tootsuite/mastodon",
++  "version": "3.4.4",
+   "name": "@mastodon/mastodon",
    "license": "AGPL-3.0-or-later",
    "engines": {
diff --git a/pkgs/servers/matrix-synapse/0001-setup-add-homeserver-as-console-script.patch b/pkgs/servers/matrix-synapse/0001-setup-add-homeserver-as-console-script.patch
deleted file mode 100644
index 2a83c5fcf6d92..0000000000000
--- a/pkgs/servers/matrix-synapse/0001-setup-add-homeserver-as-console-script.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 36ffbb7ad2c535180cae473b470a43f9db4fbdcd Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Mon, 16 Aug 2021 13:27:28 +0200
-Subject: [PATCH 1/2] setup: add homeserver as console script
-
-With this change, it will be added to `$out/bin` in `nixpkgs` directly.
-This became necessary since our old workaround, calling it as script,
-doesn't work anymore since the shebangs were removed[1].
-
-[1] https://github.com/matrix-org/synapse/pull/10415
----
- setup.py | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/setup.py b/setup.py
-index c47856351..27f1d842c 100755
---- a/setup.py
-+++ b/setup.py
-@@ -133,6 +133,11 @@ setup(
-     long_description=long_description,
-     long_description_content_type="text/x-rst",
-     python_requires="~=3.6",
-+    entry_points={
-+        'console_scripts': [
-+            'homeserver = synapse.app.homeserver:main'
-+        ]
-+    },
-     classifiers=[
-         "Development Status :: 5 - Production/Stable",
-         "Topic :: Communications :: Chat",
--- 
-2.31.1
-
diff --git a/pkgs/servers/matrix-synapse/0002-Expose-generic-worker-as-binary-under-NixOS.patch b/pkgs/servers/matrix-synapse/0002-Expose-generic-worker-as-binary-under-NixOS.patch
deleted file mode 100644
index 11dd53c9ad3ec..0000000000000
--- a/pkgs/servers/matrix-synapse/0002-Expose-generic-worker-as-binary-under-NixOS.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 3089758015c64cc1e6788793c4fe40a0e1783457 Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Tue, 5 Oct 2021 22:33:12 +0200
-Subject: [PATCH 2/2] Expose generic worker as binary under NixOS
-
----
- setup.py                      | 3 ++-
- synapse/app/generic_worker.py | 6 +++++-
- 2 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 27f1d842c..6383aed6f 100755
---- a/setup.py
-+++ b/setup.py
-@@ -135,7 +135,8 @@ setup(
-     python_requires="~=3.6",
-     entry_points={
-         'console_scripts': [
--            'homeserver = synapse.app.homeserver:main'
-+            'homeserver = synapse.app.homeserver:main',
-+            'worker = synapse.app.generic_worker:main'
-         ]
-     },
-     classifiers=[
-diff --git a/synapse/app/generic_worker.py b/synapse/app/generic_worker.py
-index 3b7131af8..c77a6a95c 100644
---- a/synapse/app/generic_worker.py
-+++ b/synapse/app/generic_worker.py
-@@ -491,6 +491,10 @@ def start(config_options):
-     _base.start_worker_reactor("synapse-generic-worker", config)
- 
- 
--if __name__ == "__main__":
-+def main():
-     with LoggingContext("main"):
-         start(sys.argv[1:])
-+
-+
-+if __name__ == "__main__":
-+    main()
--- 
-2.31.1
-
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
index b1d42c8091c7d..dbb6fbc84f50e 100644
--- a/pkgs/servers/matrix-synapse/default.nix
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -11,18 +11,13 @@ in
 with python3.pkgs;
 buildPythonApplication rec {
   pname = "matrix-synapse";
-  version = "1.47.0";
+  version = "1.49.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-SS7ETkYQ3XBihOA6TQp+6f0PNhhlUvMBR6fEYmiLT3k=";
+    sha256 = "7b795ecfc36e3f57eb7cffbc5ef9da1745b777536416c31509b3e6220c39ca4d";
   };
 
-  patches = [
-    ./0001-setup-add-homeserver-as-console-script.patch
-    ./0002-Expose-generic-worker-as-binary-under-NixOS.patch
-  ];
-
   buildInputs = [ openssl ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/servers/matrix-synapse/matrix-appservice-irc/REVISION b/pkgs/servers/matrix-synapse/matrix-appservice-irc/REVISION
deleted file mode 100644
index c25c8e5b74165..0000000000000
--- a/pkgs/servers/matrix-synapse/matrix-appservice-irc/REVISION
+++ /dev/null
@@ -1 +0,0 @@
-0.30.0
diff --git a/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix b/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix
index 33ac1fca46726..020a3a28fe77c 100644
--- a/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix
+++ b/pkgs/servers/matrix-synapse/matrix-appservice-irc/default.nix
@@ -5,7 +5,8 @@ let
     inherit pkgs nodejs;
     inherit (stdenv.hostPlatform) system;
   };
-  version = builtins.replaceStrings [ "\n" ] [ "" ] (builtins.readFile ./REVISION);
+  version = (lib.importJSON ./package.json).version;
+  srcInfo = lib.importJSON ./src.json;
 in
 ourNodePackages.package.override {
   pname = "matrix-appservice-irc";
@@ -15,7 +16,7 @@ ourNodePackages.package.override {
     owner = "matrix-org";
     repo = "matrix-appservice-irc";
     rev = version;
-    sha256 = "sha256-EncodJKptrLC54B5XipkiHXFgJ5cD+crcT3SOPOc+7M=";
+    inherit (srcInfo) sha256;
   };
 
   nativeBuildInputs = [ makeWrapper nodePackages.node-gyp-build ];
@@ -30,7 +31,7 @@ ourNodePackages.package.override {
 
   meta = with lib; {
     description = "Node.js IRC bridge for Matrix";
-    maintainers = with maintainers; [ piegames ];
+    maintainers = with maintainers; [ ];
     homepage = "https://github.com/matrix-org/matrix-appservice-irc";
     license = licenses.asl20;
   };
diff --git a/pkgs/servers/matrix-synapse/matrix-appservice-irc/node-packages.nix b/pkgs/servers/matrix-synapse/matrix-appservice-irc/node-packages.nix
index f2d2b6fc94c18..af405451e58b4 100644
--- a/pkgs/servers/matrix-synapse/matrix-appservice-irc/node-packages.nix
+++ b/pkgs/servers/matrix-synapse/matrix-appservice-irc/node-packages.nix
@@ -139,31 +139,41 @@ let
         sha512 = "5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ==";
       };
     };
-    "@nodelib/fs.scandir-2.1.4" = {
+    "@matrix-org/olm-https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.4.tgz" = {
+      name = "_at_matrix-org_slash_olm";
+      packageName = "@matrix-org/olm";
+      version = 1;
+      src = fetchurl {
+        name = "olm-1.tar.gz";
+        url = "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.4.tgz";
+        sha1 = "edc0156a17eb1087df44f6e0b153ef0c9d454495";
+      };
+    };
+    "@nodelib/fs.scandir-2.1.5" = {
       name = "_at_nodelib_slash_fs.scandir";
       packageName = "@nodelib/fs.scandir";
-      version = "2.1.4";
+      version = "2.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz";
-        sha512 = "33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==";
+        url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz";
+        sha512 = "vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==";
       };
     };
-    "@nodelib/fs.stat-2.0.4" = {
+    "@nodelib/fs.stat-2.0.5" = {
       name = "_at_nodelib_slash_fs.stat";
       packageName = "@nodelib/fs.stat";
-      version = "2.0.4";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz";
-        sha512 = "IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==";
+        url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz";
+        sha512 = "RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==";
       };
     };
-    "@nodelib/fs.walk-1.2.6" = {
+    "@nodelib/fs.walk-1.2.8" = {
       name = "_at_nodelib_slash_fs.walk";
       packageName = "@nodelib/fs.walk";
-      version = "1.2.6";
+      version = "1.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz";
-        sha512 = "8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==";
+        url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz";
+        sha512 = "oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==";
       };
     };
     "@sentry/core-5.27.1" = {
@@ -274,13 +284,31 @@ let
         sha512 = "ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==";
       };
     };
-    "@types/express-4.17.8" = {
+    "@types/diff-5.0.1" = {
+      name = "_at_types_slash_diff";
+      packageName = "@types/diff";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/diff/-/diff-5.0.1.tgz";
+        sha512 = "XIpxU6Qdvp1ZE6Kr3yrkv1qgUab0fyf4mHYvW8N3Bx3PCsbN6or1q9/q72cv5jIFWolaGH08U9XyYoLLIykyKQ==";
+      };
+    };
+    "@types/express-4.17.11" = {
+      name = "_at_types_slash_express";
+      packageName = "@types/express";
+      version = "4.17.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz";
+        sha512 = "no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==";
+      };
+    };
+    "@types/express-4.17.13" = {
       name = "_at_types_slash_express";
       packageName = "@types/express";
-      version = "4.17.8";
+      version = "4.17.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express/-/express-4.17.8.tgz";
-        sha512 = "wLhcKh3PMlyA2cNAB9sjM1BntnhPMiM0JOBwPBqttjHev2428MLEB4AYVN+d8s2iyCVZac+o41Pflm/ZH5vLXQ==";
+        url = "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz";
+        sha512 = "6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==";
       };
     };
     "@types/express-serve-static-core-4.17.19" = {
@@ -310,13 +338,13 @@ let
         sha512 = "jpzrsR1ns0n3kyWt92QfOUQhIuJGQ9+QGa7M62rO6toe98woQjnsnzjdMtsQXCdvjjmqjS2ZBCC7xKw0cdzU+Q==";
       };
     };
-    "@types/json-schema-7.0.7" = {
+    "@types/json-schema-7.0.9" = {
       name = "_at_types_slash_json-schema";
       packageName = "@types/json-schema";
-      version = "7.0.7";
+      version = "7.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz";
-        sha512 = "cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==";
+        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz";
+        sha512 = "qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==";
       };
     };
     "@types/mime-1.3.2" = {
@@ -337,13 +365,13 @@ let
         sha512 = "qHQRLZ0e6l/XK/2Qb2v5N1ujmdttYkUvnRI4nPIifMy6vYwoAnER10xhX13isWjjQtNsrjNLinZgDDguzPmEKw==";
       };
     };
-    "@types/node-12.12.54" = {
+    "@types/node-14.17.19" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "12.12.54";
+      version = "14.17.19";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz";
-        sha512 = "ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==";
+        url = "https://registry.npmjs.org/@types/node/-/node-14.17.19.tgz";
+        sha512 = "jjYI6NkyfXykucU6ELEoT64QyKOdvaA6enOqKtP4xUsGY0X0ZUZz29fUmrTRo+7v7c6TgDu82q3GHHaCEkqZwA==";
       };
     };
     "@types/nopt-3.0.29" = {
@@ -400,67 +428,67 @@ let
         sha512 = "ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==";
       };
     };
-    "@typescript-eslint/eslint-plugin-4.16.1" = {
+    "@typescript-eslint/eslint-plugin-4.33.0" = {
       name = "_at_typescript-eslint_slash_eslint-plugin";
       packageName = "@typescript-eslint/eslint-plugin";
-      version = "4.16.1";
+      version = "4.33.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.16.1.tgz";
-        sha512 = "SK777klBdlkUZpZLC1mPvyOWk9yAFCWmug13eAjVQ4/Q1LATE/NbcQL1xDHkptQkZOLnPmLUA1Y54m8dqYwnoQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz";
+        sha512 = "aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==";
       };
     };
-    "@typescript-eslint/experimental-utils-4.16.1" = {
+    "@typescript-eslint/experimental-utils-4.33.0" = {
       name = "_at_typescript-eslint_slash_experimental-utils";
       packageName = "@typescript-eslint/experimental-utils";
-      version = "4.16.1";
+      version = "4.33.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.16.1.tgz";
-        sha512 = "0Hm3LSlMYFK17jO4iY3un1Ve9x1zLNn4EM50Lia+0EV99NdbK+cn0er7HC7IvBA23mBg3P+8dUkMXy4leL33UQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz";
+        sha512 = "zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==";
       };
     };
-    "@typescript-eslint/parser-4.16.1" = {
+    "@typescript-eslint/parser-4.33.0" = {
       name = "_at_typescript-eslint_slash_parser";
       packageName = "@typescript-eslint/parser";
-      version = "4.16.1";
+      version = "4.33.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.16.1.tgz";
-        sha512 = "/c0LEZcDL5y8RyI1zLcmZMvJrsR6SM1uetskFkoh3dvqDKVXPsXI+wFB/CbVw7WkEyyTKobC1mUNp/5y6gRvXg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.33.0.tgz";
+        sha512 = "ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==";
       };
     };
-    "@typescript-eslint/scope-manager-4.16.1" = {
+    "@typescript-eslint/scope-manager-4.33.0" = {
       name = "_at_typescript-eslint_slash_scope-manager";
       packageName = "@typescript-eslint/scope-manager";
-      version = "4.16.1";
+      version = "4.33.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.16.1.tgz";
-        sha512 = "6IlZv9JaurqV0jkEg923cV49aAn8V6+1H1DRfhRcvZUrptQ+UtSKHb5kwTayzOYTJJ/RsYZdcvhOEKiBLyc0Cw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz";
+        sha512 = "5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==";
       };
     };
-    "@typescript-eslint/types-4.16.1" = {
+    "@typescript-eslint/types-4.33.0" = {
       name = "_at_typescript-eslint_slash_types";
       packageName = "@typescript-eslint/types";
-      version = "4.16.1";
+      version = "4.33.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.16.1.tgz";
-        sha512 = "nnKqBwMgRlhzmJQF8tnFDZWfunXmJyuXj55xc8Kbfup4PbkzdoDXZvzN8//EiKR27J6vUSU8j4t37yUuYPiLqA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.33.0.tgz";
+        sha512 = "zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==";
       };
     };
-    "@typescript-eslint/typescript-estree-4.16.1" = {
+    "@typescript-eslint/typescript-estree-4.33.0" = {
       name = "_at_typescript-eslint_slash_typescript-estree";
       packageName = "@typescript-eslint/typescript-estree";
-      version = "4.16.1";
+      version = "4.33.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.16.1.tgz";
-        sha512 = "m8I/DKHa8YbeHt31T+UGd/l8Kwr0XCTCZL3H4HMvvLCT7HU9V7yYdinTOv1gf/zfqNeDcCgaFH2BMsS8x6NvJg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz";
+        sha512 = "rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==";
       };
     };
-    "@typescript-eslint/visitor-keys-4.16.1" = {
+    "@typescript-eslint/visitor-keys-4.33.0" = {
       name = "_at_typescript-eslint_slash_visitor-keys";
       packageName = "@typescript-eslint/visitor-keys";
-      version = "4.16.1";
+      version = "4.33.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.16.1.tgz";
-        sha512 = "s/aIP1XcMkEqCNcPQtl60ogUYjSM8FU2mq1O7y5cFf3Xcob1z1iXWNB6cC43Op+NGRTFgGolri6s8z/efA9i1w==";
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz";
+        sha512 = "uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==";
       };
     };
     "abbrev-1.1.1" = {
@@ -535,13 +563,13 @@ let
         sha1 = "b5f4019c973b6dd5c6506a2d93469cb6d32aeedc";
       };
     };
-    "ansi-align-3.0.0" = {
+    "ansi-align-3.0.1" = {
       name = "ansi-align";
       packageName = "ansi-align";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz";
-        sha512 = "ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==";
+        url = "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz";
+        sha512 = "IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==";
       };
     };
     "ansi-colors-4.1.1" = {
@@ -553,6 +581,24 @@ let
         sha512 = "JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==";
       };
     };
+    "ansi-regex-2.1.1" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
+        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+      };
+    };
+    "ansi-regex-3.0.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz";
+        sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+      };
+    };
     "ansi-regex-4.1.0" = {
       name = "ansi-regex";
       packageName = "ansi-regex";
@@ -562,13 +608,13 @@ let
         sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
       };
     };
-    "ansi-regex-5.0.0" = {
+    "ansi-regex-5.0.1" = {
       name = "ansi-regex";
       packageName = "ansi-regex";
-      version = "5.0.0";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz";
-        sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==";
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz";
+        sha512 = "quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==";
       };
     };
     "ansi-styles-3.2.1" = {
@@ -607,6 +653,15 @@ let
         sha512 = "P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==";
       };
     };
+    "aproba-1.2.0" = {
+      name = "aproba";
+      packageName = "aproba";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
+        sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==";
+      };
+    };
     "archy-1.0.0" = {
       name = "archy";
       packageName = "archy";
@@ -616,6 +671,15 @@ let
         sha1 = "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40";
       };
     };
+    "are-we-there-yet-1.1.7" = {
+      name = "are-we-there-yet";
+      packageName = "are-we-there-yet";
+      version = "1.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz";
+        sha512 = "nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==";
+      };
+    };
     "argparse-1.0.10" = {
       name = "argparse";
       packageName = "argparse";
@@ -742,6 +806,15 @@ let
         sha512 = "Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==";
       };
     };
+    "base64-js-1.5.1" = {
+      name = "base64-js";
+      packageName = "base64-js";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz";
+        sha512 = "AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==";
+      };
+    };
     "basic-auth-2.0.1" = {
       name = "basic-auth";
       packageName = "basic-auth";
@@ -760,6 +833,15 @@ let
         sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
       };
     };
+    "better-sqlite3-7.4.3" = {
+      name = "better-sqlite3";
+      packageName = "better-sqlite3";
+      version = "7.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.4.3.tgz";
+        sha512 = "07bKjClZg/f4KMVRkzWtoIvazVPcF1gsvVKVIXlxwleC2DxuIhnra3KCMlUT1rFeRYXXckot2a46UciF2d9KLw==";
+      };
+    };
     "binary-extensions-2.2.0" = {
       name = "binary-extensions";
       packageName = "binary-extensions";
@@ -778,6 +860,15 @@ let
         sha1 = "7dbb3b210fdca082450dad2334c304af39bdc784";
       };
     };
+    "bindings-1.5.0" = {
+      name = "bindings";
+      packageName = "bindings";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz";
+        sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==";
+      };
+    };
     "bintrees-1.0.1" = {
       name = "bintrees";
       packageName = "bintrees";
@@ -787,6 +878,15 @@ let
         sha1 = "0e655c9b9c2435eaab68bf4027226d2b55a34524";
       };
     };
+    "bl-4.1.0" = {
+      name = "bl";
+      packageName = "bl";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz";
+        sha512 = "1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==";
+      };
+    };
     "bluebird-3.7.2" = {
       name = "bluebird";
       packageName = "bluebird";
@@ -850,6 +950,15 @@ let
         sha1 = "be161e76c354f6f788ae4071f63f34e8c4f0a42a";
       };
     };
+    "buffer-5.7.1" = {
+      name = "buffer";
+      packageName = "buffer";
+      version = "5.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz";
+        sha512 = "EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==";
+      };
+    };
     "buffer-writer-2.0.0" = {
       name = "buffer-writer";
       packageName = "buffer-writer";
@@ -967,6 +1076,24 @@ let
         sha512 = "9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==";
       };
     };
+    "chownr-1.1.4" = {
+      name = "chownr";
+      packageName = "chownr";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz";
+        sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==";
+      };
+    };
+    "chownr-2.0.0" = {
+      name = "chownr";
+      packageName = "chownr";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz";
+        sha512 = "bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==";
+      };
+    };
     "ci-info-2.0.0" = {
       name = "ci-info";
       packageName = "ci-info";
@@ -1003,6 +1130,15 @@ let
         sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b";
       };
     };
+    "code-point-at-1.1.0" = {
+      name = "code-point-at";
+      packageName = "code-point-at";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz";
+        sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+      };
+    };
     "color-3.0.0" = {
       name = "color";
       packageName = "color";
@@ -1120,6 +1256,15 @@ let
         sha512 = "aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==";
       };
     };
+    "console-control-strings-1.1.0" = {
+      name = "console-control-strings";
+      packageName = "console-control-strings";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz";
+        sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
+      };
+    };
     "content-disposition-0.5.3" = {
       name = "content-disposition";
       packageName = "content-disposition";
@@ -1273,6 +1418,15 @@ let
         sha1 = "80a4dd323748384bfa248083622aedec982adff3";
       };
     };
+    "decompress-response-4.2.1" = {
+      name = "decompress-response";
+      packageName = "decompress-response";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz";
+        sha512 = "jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==";
+      };
+    };
     "deep-extend-0.6.0" = {
       name = "deep-extend";
       packageName = "deep-extend";
@@ -1327,6 +1481,15 @@ let
         sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
       };
     };
+    "delegates-1.0.0" = {
+      name = "delegates";
+      packageName = "delegates";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz";
+        sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+      };
+    };
     "depd-1.1.2" = {
       name = "depd";
       packageName = "depd";
@@ -1354,6 +1517,24 @@ let
         sha1 = "978857442c44749e4206613e37946205826abd80";
       };
     };
+    "detect-libc-1.0.3" = {
+      name = "detect-libc";
+      packageName = "detect-libc";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz";
+        sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+      };
+    };
+    "diff-5.0.0" = {
+      name = "diff";
+      packageName = "diff";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz";
+        sha512 = "/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==";
+      };
+    };
     "dir-glob-3.0.1" = {
       name = "dir-glob";
       packageName = "dir-glob";
@@ -1597,6 +1778,15 @@ let
         sha512 = "w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==";
       };
     };
+    "eslint-utils-3.0.0" = {
+      name = "eslint-utils";
+      packageName = "eslint-utils";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz";
+        sha512 = "uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==";
+      };
+    };
     "eslint-visitor-keys-1.3.0" = {
       name = "eslint-visitor-keys";
       packageName = "eslint-visitor-keys";
@@ -1696,6 +1886,15 @@ let
         sha512 = "8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==";
       };
     };
+    "expand-template-2.0.3" = {
+      name = "expand-template";
+      packageName = "expand-template";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz";
+        sha512 = "XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==";
+      };
+    };
     "express-4.17.1" = {
       name = "express";
       packageName = "express";
@@ -1732,13 +1931,13 @@ let
         sha512 = "8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==";
       };
     };
-    "fast-glob-3.2.5" = {
+    "fast-glob-3.2.7" = {
       name = "fast-glob";
       packageName = "fast-glob";
-      version = "3.2.5";
+      version = "3.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz";
-        sha512 = "2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==";
+        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz";
+        sha512 = "rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==";
       };
     };
     "fast-json-stable-stringify-2.1.0" = {
@@ -1768,13 +1967,13 @@ let
         sha512 = "Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==";
       };
     };
-    "fastq-1.11.0" = {
+    "fastq-1.13.0" = {
       name = "fastq";
       packageName = "fastq";
-      version = "1.11.0";
+      version = "1.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz";
-        sha512 = "7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==";
+        url = "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz";
+        sha512 = "YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==";
       };
     };
     "fecha-4.2.1" = {
@@ -1804,6 +2003,15 @@ let
         sha512 = "VYb3HZ/GiAGUCrfeakO8Mp54YGswNUHvL7P09WQcXAJNSj3iQ5QraYSp3cIn1MUyw6uzfgN/EFOarCNa4JvUHQ==";
       };
     };
+    "file-uri-to-path-1.0.0" = {
+      name = "file-uri-to-path";
+      packageName = "file-uri-to-path";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
+        sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==";
+      };
+    };
     "fill-keys-1.0.2" = {
       name = "fill-keys";
       packageName = "fill-keys";
@@ -1921,6 +2129,24 @@ let
         sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
       };
     };
+    "fs-constants-1.0.0" = {
+      name = "fs-constants";
+      packageName = "fs-constants";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz";
+        sha512 = "y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==";
+      };
+    };
+    "fs-minipass-2.1.0" = {
+      name = "fs-minipass";
+      packageName = "fs-minipass";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz";
+        sha512 = "V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==";
+      };
+    };
     "fs.realpath-1.0.0" = {
       name = "fs.realpath";
       packageName = "fs.realpath";
@@ -1957,6 +2183,15 @@ let
         sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
       };
     };
+    "gauge-2.7.4" = {
+      name = "gauge";
+      packageName = "gauge";
+      version = "2.7.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz";
+        sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+      };
+    };
     "generate-function-2.3.1" = {
       name = "generate-function";
       packageName = "generate-function";
@@ -2020,6 +2255,15 @@ let
         sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
       };
     };
+    "github-from-package-0.0.0" = {
+      name = "github-from-package";
+      packageName = "github-from-package";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz";
+        sha1 = "97fb5d96bfde8973313f20e8288ef9a167fa64ce";
+      };
+    };
     "glob-7.1.7" = {
       name = "glob";
       packageName = "glob";
@@ -2074,13 +2318,13 @@ let
         sha512 = "BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==";
       };
     };
-    "globby-11.0.3" = {
+    "globby-11.0.4" = {
       name = "globby";
       packageName = "globby";
-      version = "11.0.3";
+      version = "11.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz";
-        sha512 = "ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==";
+        url = "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz";
+        sha512 = "9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==";
       };
     };
     "got-9.6.0" = {
@@ -2155,6 +2399,15 @@ let
         sha512 = "chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==";
       };
     };
+    "has-unicode-2.0.1" = {
+      name = "has-unicode";
+      packageName = "has-unicode";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz";
+        sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+      };
+    };
     "has-yarn-2.1.0" = {
       name = "has-yarn";
       packageName = "has-yarn";
@@ -2209,6 +2462,15 @@ let
         sha512 = "H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==";
       };
     };
+    "html-to-text-6.0.0" = {
+      name = "html-to-text";
+      packageName = "html-to-text";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-to-text/-/html-to-text-6.0.0.tgz";
+        sha512 = "r0KNC5aqCAItsjlgtirW6RW25c92Ee3ybQj8z//4Sl4suE3HIPqM4deGpYCUJULLjtVPEP1+Ma+1ZeX1iMsCiA==";
+      };
+    };
     "htmlencode-0.0.4" = {
       name = "htmlencode";
       packageName = "htmlencode";
@@ -2290,6 +2552,15 @@ let
         sha512 = "4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==";
       };
     };
+    "ieee754-1.2.1" = {
+      name = "ieee754";
+      packageName = "ieee754";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz";
+        sha512 = "dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==";
+      };
+    };
     "ignore-4.0.6" = {
       name = "ignore";
       packageName = "ignore";
@@ -2461,6 +2732,15 @@ let
         sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
       };
     };
+    "is-fullwidth-code-point-1.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+        sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+      };
+    };
     "is-fullwidth-code-point-2.0.0" = {
       name = "is-fullwidth-code-point";
       packageName = "is-fullwidth-code-point";
@@ -3019,15 +3299,6 @@ let
         sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==";
       };
     };
-    "lru-cache-5.1.1" = {
-      name = "lru-cache";
-      packageName = "lru-cache";
-      version = "5.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz";
-        sha512 = "KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==";
-      };
-    };
     "lru-cache-6.0.0" = {
       name = "lru-cache";
       packageName = "lru-cache";
@@ -3073,22 +3344,22 @@ let
         sha512 = "mfgMpmV3dWLtzrd4V/3XtqUD0P44I/mTgsRreW5jMhSaUnnRGZbpptBw2q4/axbLjw2FarlWtOVgertDGMtccA==";
       };
     };
-    "matrix-appservice-bridge-2.6.1" = {
+    "matrix-appservice-bridge-3.1.2" = {
       name = "matrix-appservice-bridge";
       packageName = "matrix-appservice-bridge";
-      version = "2.6.1";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/matrix-appservice-bridge/-/matrix-appservice-bridge-2.6.1.tgz";
-        sha512 = "XNOziYVQoTQ9cym3Z2acXy8CKRXPVcEbni0XXCUfvu4O9+cBjUPywtRmhDBENsl/bgGbFKqbJNr68E/j9j+Tbw==";
+        url = "https://registry.npmjs.org/matrix-appservice-bridge/-/matrix-appservice-bridge-3.1.2.tgz";
+        sha512 = "1VjKSalKS/9/MknrcAkAEFcoeOduzqBWr3LHmuwc4+T94vtCrA3WX+SciurxW8jfs0D8sLdnNjH1sMVAPfA2Gw==";
       };
     };
-    "matrix-bot-sdk-0.4.0" = {
+    "matrix-bot-sdk-0.6.0-beta.2" = {
       name = "matrix-bot-sdk";
       packageName = "matrix-bot-sdk";
-      version = "0.4.0";
+      version = "0.6.0-beta.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/matrix-bot-sdk/-/matrix-bot-sdk-0.4.0.tgz";
-        sha512 = "ZIICFEYDsSX3emPnVRTV1FIV22zkt7KiJbTYN4rHQ3Z/rk66RB7Y+TMHxrkJCqPs3xVdaGmGkh5m+hNi4fibRg==";
+        url = "https://registry.npmjs.org/matrix-bot-sdk/-/matrix-bot-sdk-0.6.0-beta.2.tgz";
+        sha512 = "D9aQ2++1bJIzka2uIz22HkaeyT058QGOh96xdxiDOaezyzLY5BN7ehYg+P0xRzDYDFKx9DbqDYCt97IkfahtPw==";
       };
     };
     "matrix-js-sdk-9.11.0" = {
@@ -3100,15 +3371,6 @@ let
         sha512 = "wP28ybOxyQ7lbC48QddRORYr8atEwbTqDOsu8H6u9jTTgB2qqczI/bkSoXHtutODuSeLY5x0UuwLcxVCy4yxVQ==";
       };
     };
-    "matrix-lastactive-0.1.5" = {
-      name = "matrix-lastactive";
-      packageName = "matrix-lastactive";
-      version = "0.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/matrix-lastactive/-/matrix-lastactive-0.1.5.tgz";
-        sha512 = "JFIMJPNGGqi0myzIlN94SQReUbCrWi1TW5PZih1OGXzUj2wXYz3puktV/f64HZYn6D1ZKcwxZdLuNCG8cRuCyw==";
-      };
-    };
     "matrix-org-irc-1.2.0" = {
       name = "matrix-org-irc";
       packageName = "matrix-org-irc";
@@ -3208,6 +3470,15 @@ let
         sha512 = "j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==";
       };
     };
+    "mimic-response-2.1.0" = {
+      name = "mimic-response";
+      packageName = "mimic-response";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz";
+        sha512 = "wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==";
+      };
+    };
     "minimalistic-assert-1.0.1" = {
       name = "minimalistic-assert";
       packageName = "minimalistic-assert";
@@ -3235,6 +3506,24 @@ let
         sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
       };
     };
+    "minipass-3.1.5" = {
+      name = "minipass";
+      packageName = "minipass";
+      version = "3.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz";
+        sha512 = "+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==";
+      };
+    };
+    "minizlib-2.1.2" = {
+      name = "minizlib";
+      packageName = "minizlib";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz";
+        sha512 = "bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==";
+      };
+    };
     "mkdirp-0.5.5" = {
       name = "mkdirp";
       packageName = "mkdirp";
@@ -3244,6 +3533,24 @@ let
         sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
       };
     };
+    "mkdirp-1.0.4" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz";
+        sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==";
+      };
+    };
+    "mkdirp-classic-0.5.3" = {
+      name = "mkdirp-classic";
+      packageName = "mkdirp-classic";
+      version = "0.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz";
+        sha512 = "gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==";
+      };
+    };
     "module-not-found-error-1.0.1" = {
       name = "module-not-found-error";
       packageName = "module-not-found-error";
@@ -3307,6 +3614,15 @@ let
         sha512 = "FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==";
       };
     };
+    "napi-build-utils-1.0.2" = {
+      name = "napi-build-utils";
+      packageName = "napi-build-utils";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz";
+        sha512 = "ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==";
+      };
+    };
     "natural-compare-1.4.0" = {
       name = "natural-compare";
       packageName = "natural-compare";
@@ -3343,6 +3659,15 @@ let
         sha512 = "AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==";
       };
     };
+    "node-abi-2.30.1" = {
+      name = "node-abi";
+      packageName = "node-abi";
+      version = "2.30.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz";
+        sha512 = "/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==";
+      };
+    };
     "node-gyp-build-4.2.3" = {
       name = "node-gyp-build";
       packageName = "node-gyp-build";
@@ -3415,6 +3740,24 @@ let
         sha512 = "9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==";
       };
     };
+    "npmlog-4.1.2" = {
+      name = "npmlog";
+      packageName = "npmlog";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz";
+        sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==";
+      };
+    };
+    "number-is-nan-1.0.1" = {
+      name = "number-is-nan";
+      packageName = "number-is-nan";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz";
+        sha1 = "097b602b53422a522c1afb8790318336941a011d";
+      };
+    };
     "nyc-14.1.1" = {
       name = "nyc";
       packageName = "nyc";
@@ -3433,6 +3776,15 @@ let
         sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
       };
     };
+    "object-assign-4.1.1" = {
+      name = "object-assign";
+      packageName = "object-assign";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz";
+        sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+      };
+    };
     "object-hash-2.2.0" = {
       name = "object-hash";
       packageName = "object-hash";
@@ -3658,13 +4010,13 @@ let
         sha512 = "ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==";
       };
     };
-    "path-parse-1.0.6" = {
+    "path-parse-1.0.7" = {
       name = "path-parse";
       packageName = "path-parse";
-      version = "1.0.6";
+      version = "1.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
-        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
+        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz";
+        sha512 = "LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==";
       };
     };
     "path-to-regexp-0.1.7" = {
@@ -3766,22 +4118,13 @@ let
         sha512 = "YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==";
       };
     };
-    "picomatch-2.2.2" = {
+    "picomatch-2.3.0" = {
       name = "picomatch";
       packageName = "picomatch";
-      version = "2.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz";
-        sha512 = "q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==";
-      };
-    };
-    "picomatch-2.2.3" = {
-      name = "picomatch";
-      packageName = "picomatch";
-      version = "2.2.3";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz";
-        sha512 = "KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==";
+        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz";
+        sha512 = "lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==";
       };
     };
     "pify-3.0.0" = {
@@ -3811,15 +4154,6 @@ let
         sha512 = "/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==";
       };
     };
-    "postcss-7.0.35" = {
-      name = "postcss";
-      packageName = "postcss";
-      version = "7.0.35";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz";
-        sha512 = "3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==";
-      };
-    };
     "postcss-8.3.0" = {
       name = "postcss";
       packageName = "postcss";
@@ -3865,6 +4199,15 @@ let
         sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==";
       };
     };
+    "prebuild-install-6.1.4" = {
+      name = "prebuild-install";
+      packageName = "prebuild-install";
+      version = "6.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz";
+        sha512 = "Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==";
+      };
+    };
     "prelude-ls-1.2.1" = {
       name = "prelude-ls";
       packageName = "prelude-ls";
@@ -4306,15 +4649,6 @@ let
         sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
       };
     };
-    "sanitize-html-1.27.5" = {
-      name = "sanitize-html";
-      packageName = "sanitize-html";
-      version = "1.27.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.5.tgz";
-        sha512 = "M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A==";
-      };
-    };
     "sanitize-html-2.4.0" = {
       name = "sanitize-html";
       packageName = "sanitize-html";
@@ -4432,6 +4766,24 @@ let
         sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
       };
     };
+    "simple-concat-1.0.1" = {
+      name = "simple-concat";
+      packageName = "simple-concat";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz";
+        sha512 = "cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==";
+      };
+    };
+    "simple-get-3.1.0" = {
+      name = "simple-get";
+      packageName = "simple-get";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz";
+        sha512 = "bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==";
+      };
+    };
     "simple-swizzle-0.2.2" = {
       name = "simple-swizzle";
       packageName = "simple-swizzle";
@@ -4594,6 +4946,24 @@ let
         sha1 = "071105bdfc286e6615c0403c27e9d7b5dcb855cb";
       };
     };
+    "string-width-1.0.2" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz";
+        sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+      };
+    };
+    "string-width-2.1.1" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz";
+        sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==";
+      };
+    };
     "string-width-3.1.0" = {
       name = "string-width";
       packageName = "string-width";
@@ -4612,6 +4982,15 @@ let
         sha512 = "XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==";
       };
     };
+    "string-width-4.2.3" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "4.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz";
+        sha512 = "wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==";
+      };
+    };
     "string_decoder-1.1.1" = {
       name = "string_decoder";
       packageName = "string_decoder";
@@ -4630,6 +5009,24 @@ let
         sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==";
       };
     };
+    "strip-ansi-3.0.1" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
+        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+      };
+    };
+    "strip-ansi-4.0.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz";
+        sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+      };
+    };
     "strip-ansi-5.2.0" = {
       name = "strip-ansi";
       packageName = "strip-ansi";
@@ -4648,6 +5045,15 @@ let
         sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
       };
     };
+    "strip-ansi-6.0.1" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz";
+        sha512 = "Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==";
+      };
+    };
     "strip-bom-3.0.0" = {
       name = "strip-bom";
       packageName = "strip-bom";
@@ -4711,6 +5117,33 @@ let
         sha512 = "ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==";
       };
     };
+    "tar-6.1.11" = {
+      name = "tar";
+      packageName = "tar";
+      version = "6.1.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz";
+        sha512 = "an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==";
+      };
+    };
+    "tar-fs-2.1.1" = {
+      name = "tar-fs";
+      packageName = "tar-fs";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz";
+        sha512 = "V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==";
+      };
+    };
+    "tar-stream-2.2.0" = {
+      name = "tar-stream";
+      packageName = "tar-stream";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz";
+        sha512 = "ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==";
+      };
+    };
     "tdigest-0.1.1" = {
       name = "tdigest";
       packageName = "tdigest";
@@ -4891,13 +5324,13 @@ let
         sha512 = "zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==";
       };
     };
-    "typescript-4.2.3" = {
+    "typescript-4.4.3" = {
       name = "typescript";
       packageName = "typescript";
-      version = "4.2.3";
+      version = "4.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz";
-        sha512 = "qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz";
+        sha512 = "4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==";
       };
     };
     "undefsafe-2.0.3" = {
@@ -5071,6 +5504,15 @@ let
         sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
       };
     };
+    "wide-align-1.1.3" = {
+      name = "wide-align";
+      packageName = "wide-align";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
+        sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
+      };
+    };
     "widest-line-3.1.0" = {
       name = "widest-line";
       packageName = "widest-line";
@@ -5188,15 +5630,6 @@ let
         sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
       };
     };
-    "yallist-3.1.1" = {
-      name = "yallist";
-      packageName = "yallist";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
-        sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==";
-      };
-    };
     "yallist-4.0.0" = {
       name = "yallist";
       packageName = "yallist";
@@ -5228,7 +5661,7 @@ let
   args = {
     name = "matrix-appservice-irc";
     packageName = "matrix-appservice-irc";
-    version = "0.30.0";
+    version = "0.32.1";
     src = ./.;
     dependencies = [
       sources."@babel/code-frame-7.12.11"
@@ -5262,9 +5695,10 @@ let
           sources."ignore-4.0.6"
         ];
       })
-      sources."@nodelib/fs.scandir-2.1.4"
-      sources."@nodelib/fs.stat-2.0.4"
-      sources."@nodelib/fs.walk-1.2.6"
+      sources."@matrix-org/olm-https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.4.tgz"
+      sources."@nodelib/fs.scandir-2.1.5"
+      sources."@nodelib/fs.stat-2.0.5"
+      sources."@nodelib/fs.walk-1.2.8"
       sources."@sentry/core-5.27.1"
       sources."@sentry/hub-5.27.1"
       sources."@sentry/minimal-5.27.1"
@@ -5277,14 +5711,15 @@ let
       sources."@types/bluebird-3.5.32"
       sources."@types/body-parser-1.19.0"
       sources."@types/connect-3.4.34"
-      sources."@types/express-4.17.8"
+      sources."@types/diff-5.0.1"
+      sources."@types/express-4.17.11"
       sources."@types/express-serve-static-core-4.17.19"
       sources."@types/extend-3.0.1"
       sources."@types/he-1.1.1"
-      sources."@types/json-schema-7.0.7"
+      sources."@types/json-schema-7.0.9"
       sources."@types/mime-1.3.2"
       sources."@types/nedb-1.8.11"
-      sources."@types/node-12.12.54"
+      sources."@types/node-14.17.19"
       sources."@types/nopt-3.0.29"
       sources."@types/pg-8.6.0"
       sources."@types/qs-6.9.6"
@@ -5296,25 +5731,29 @@ let
         ];
       })
       sources."@types/serve-static-1.13.9"
-      (sources."@typescript-eslint/eslint-plugin-4.16.1" // {
+      (sources."@typescript-eslint/eslint-plugin-4.33.0" // {
         dependencies = [
           sources."lru-cache-6.0.0"
           sources."semver-7.3.5"
           sources."yallist-4.0.0"
         ];
       })
-      sources."@typescript-eslint/experimental-utils-4.16.1"
-      sources."@typescript-eslint/parser-4.16.1"
-      sources."@typescript-eslint/scope-manager-4.16.1"
-      sources."@typescript-eslint/types-4.16.1"
-      (sources."@typescript-eslint/typescript-estree-4.16.1" // {
+      (sources."@typescript-eslint/experimental-utils-4.33.0" // {
+        dependencies = [
+          sources."eslint-utils-3.0.0"
+        ];
+      })
+      sources."@typescript-eslint/parser-4.33.0"
+      sources."@typescript-eslint/scope-manager-4.33.0"
+      sources."@typescript-eslint/types-4.33.0"
+      (sources."@typescript-eslint/typescript-estree-4.33.0" // {
         dependencies = [
           sources."lru-cache-6.0.0"
           sources."semver-7.3.5"
           sources."yallist-4.0.0"
         ];
       })
-      sources."@typescript-eslint/visitor-keys-4.16.1"
+      sources."@typescript-eslint/visitor-keys-4.33.0"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       sources."acorn-7.4.1"
@@ -5322,7 +5761,13 @@ let
       sources."agent-base-6.0.2"
       sources."ajv-6.12.6"
       sources."another-json-0.2.0"
-      sources."ansi-align-3.0.0"
+      (sources."ansi-align-3.0.1" // {
+        dependencies = [
+          sources."ansi-regex-5.0.1"
+          sources."string-width-4.2.3"
+          sources."strip-ansi-6.0.1"
+        ];
+      })
       sources."ansi-colors-4.1.1"
       sources."ansi-regex-4.1.0"
       (sources."ansi-styles-4.3.0" // {
@@ -5332,7 +5777,14 @@ let
       })
       sources."anymatch-3.1.2"
       sources."append-transform-1.0.0"
+      sources."aproba-1.2.0"
       sources."archy-1.0.0"
+      (sources."are-we-there-yet-1.1.7" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."string_decoder-1.1.1"
+        ];
+      })
       sources."argparse-1.0.10"
       sources."array-flatten-1.1.1"
       sources."array-union-2.1.0"
@@ -5345,11 +5797,15 @@ let
       sources."aws4-1.11.0"
       sources."balanced-match-1.0.2"
       sources."base-x-3.0.8"
+      sources."base64-js-1.5.1"
       sources."basic-auth-2.0.1"
       sources."bcrypt-pbkdf-1.0.2"
+      sources."better-sqlite3-7.4.3"
       sources."binary-extensions-2.2.0"
       sources."binary-search-tree-0.2.5"
+      sources."bindings-1.5.0"
       sources."bintrees-1.0.1"
+      sources."bl-4.1.0"
       sources."bluebird-3.7.2"
       (sources."body-parser-1.19.0" // {
         dependencies = [
@@ -5360,7 +5816,7 @@ let
       })
       (sources."boxen-4.2.0" // {
         dependencies = [
-          sources."ansi-regex-5.0.0"
+          sources."ansi-regex-5.0.1"
           sources."chalk-3.0.0"
           sources."has-flag-4.0.0"
           sources."string-width-4.2.2"
@@ -5372,6 +5828,7 @@ let
       sources."braces-3.0.2"
       sources."browser-request-0.3.3"
       sources."bs58-4.0.1"
+      sources."buffer-5.7.1"
       sources."buffer-writer-2.0.0"
       sources."bytes-3.1.0"
       (sources."cacheable-request-6.1.0" // {
@@ -5394,10 +5851,12 @@ let
       })
       sources."chardet-1.3.0"
       sources."chokidar-3.5.1"
+      sources."chownr-2.0.0"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
       sources."cliui-5.0.0"
       sources."clone-response-1.0.2"
+      sources."code-point-at-1.1.0"
       sources."color-3.0.0"
       (sources."color-convert-1.9.3" // {
         dependencies = [
@@ -5418,6 +5877,7 @@ let
           sources."write-file-atomic-3.0.3"
         ];
       })
+      sources."console-control-strings-1.1.0"
       sources."content-disposition-0.5.3"
       sources."content-type-1.0.4"
       sources."convert-source-map-1.7.0"
@@ -5441,8 +5901,11 @@ let
       sources."default-require-extensions-2.0.0"
       sources."defer-to-connect-1.1.3"
       sources."delayed-stream-1.0.0"
+      sources."delegates-1.0.0"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
+      sources."detect-libc-1.0.3"
+      sources."diff-5.0.0"
       sources."dir-glob-3.0.1"
       sources."doctrine-3.0.0"
       (sources."dom-serializer-1.3.2" // {
@@ -5478,7 +5941,7 @@ let
       sources."escape-string-regexp-4.0.0"
       (sources."eslint-7.21.0" // {
         dependencies = [
-          sources."ansi-regex-5.0.0"
+          sources."ansi-regex-5.0.1"
           sources."chalk-4.1.1"
           sources."has-flag-4.0.0"
           sources."ignore-4.0.6"
@@ -5516,6 +5979,7 @@ let
       sources."esutils-2.0.3"
       sources."etag-1.8.1"
       sources."eventemitter3-4.0.7"
+      sources."expand-template-2.0.3"
       (sources."express-4.17.1" // {
         dependencies = [
           sources."cookie-0.4.0"
@@ -5526,14 +5990,15 @@ let
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.1"
-      sources."fast-glob-3.2.5"
+      sources."fast-glob-3.2.7"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."fast-safe-stringify-2.0.7"
-      sources."fastq-1.11.0"
+      sources."fastq-1.13.0"
       sources."fecha-4.2.1"
       sources."file-entry-cache-6.0.1"
       sources."file-stream-rotator-0.5.7"
+      sources."file-uri-to-path-1.0.0"
       sources."fill-keys-1.0.2"
       sources."fill-range-7.0.1"
       (sources."finalhandler-1.1.2" // {
@@ -5559,33 +6024,41 @@ let
       sources."form-data-2.3.3"
       sources."forwarded-0.1.2"
       sources."fresh-0.5.2"
+      sources."fs-constants-1.0.0"
+      sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
+      (sources."gauge-2.7.4" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."is-fullwidth-code-point-1.0.0"
+          sources."string-width-1.0.2"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
       sources."generate-function-2.3.1"
       sources."generate-object-property-1.2.0"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.1"
       sources."get-stream-4.1.0"
       sources."getpass-0.1.7"
+      sources."github-from-package-0.0.0"
       sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.4.1"
       sources."global-dirs-2.1.0"
       sources."globals-12.4.0"
-      sources."globby-11.0.3"
+      sources."globby-11.0.4"
       sources."got-9.6.0"
       sources."graceful-fs-4.2.3"
       sources."har-schema-2.0.0"
-      (sources."har-validator-5.1.5" // {
-        dependencies = [
-          sources."ajv-6.12.6"
-        ];
-      })
+      sources."har-validator-5.1.5"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."has-symbols-1.0.2"
+      sources."has-unicode-2.0.1"
       sources."has-yarn-2.1.0"
       sources."hash.js-1.1.7"
       (sources."hasha-3.0.0" // {
@@ -5596,6 +6069,7 @@ let
       sources."he-1.2.0"
       sources."hosted-git-info-2.8.9"
       sources."html-escaper-2.0.2"
+      sources."html-to-text-6.0.0"
       sources."htmlencode-0.0.4"
       sources."htmlparser2-4.1.0"
       sources."http-cache-semantics-4.1.0"
@@ -5607,6 +6081,7 @@ let
       sources."http-signature-1.2.0"
       sources."https-proxy-agent-5.0.0"
       sources."iconv-lite-0.6.3"
+      sources."ieee754-1.2.1"
       sources."ignore-5.1.8"
       sources."ignore-by-default-1.0.1"
       sources."immediate-3.0.6"
@@ -5683,7 +6158,6 @@ let
       sources."loglevel-1.7.1"
       sources."lowdb-1.0.0"
       sources."lowercase-keys-1.0.1"
-      sources."lru-cache-5.1.1"
       sources."lru_map-0.3.3"
       (sources."make-dir-2.1.0" // {
         dependencies = [
@@ -5692,36 +6166,19 @@ let
         ];
       })
       sources."matrix-appservice-0.8.0"
-      (sources."matrix-appservice-bridge-2.6.1" // {
+      (sources."matrix-appservice-bridge-3.1.2" // {
         dependencies = [
+          sources."@types/express-4.17.13"
           sources."argparse-2.0.1"
           sources."chalk-4.1.1"
-          sources."extend-3.0.2"
           sources."has-flag-4.0.0"
           sources."js-yaml-4.1.0"
+          sources."lru-cache-6.0.0"
+          sources."matrix-bot-sdk-0.6.0-beta.2"
+          sources."mkdirp-1.0.4"
           sources."nopt-5.0.0"
           sources."supports-color-7.2.0"
-        ];
-      })
-      (sources."matrix-bot-sdk-0.4.0" // {
-        dependencies = [
-          sources."chalk-3.0.0"
-          sources."escape-string-regexp-1.0.5"
-          sources."has-flag-4.0.0"
-          (sources."postcss-7.0.35" // {
-            dependencies = [
-              sources."ansi-styles-3.2.1"
-              (sources."chalk-2.4.2" // {
-                dependencies = [
-                  sources."supports-color-5.5.0"
-                ];
-              })
-              sources."has-flag-3.0.0"
-              sources."supports-color-6.1.0"
-            ];
-          })
-          sources."sanitize-html-1.27.5"
-          sources."supports-color-7.2.0"
+          sources."yallist-4.0.0"
         ];
       })
       (sources."matrix-js-sdk-9.11.0" // {
@@ -5729,18 +6186,13 @@ let
           sources."qs-6.10.1"
         ];
       })
-      sources."matrix-lastactive-0.1.5"
       sources."matrix-org-irc-1.2.0"
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."merge-source-map-1.1.0"
       sources."merge2-1.4.1"
       sources."methods-1.1.2"
-      (sources."micromatch-4.0.4" // {
-        dependencies = [
-          sources."picomatch-2.2.3"
-        ];
-      })
+      sources."micromatch-4.0.4"
       sources."mime-1.6.0"
       sources."mime-db-1.47.0"
       sources."mime-types-2.1.30"
@@ -5748,7 +6200,18 @@ let
       sources."minimalistic-assert-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
+      (sources."minipass-3.1.5" // {
+        dependencies = [
+          sources."yallist-4.0.0"
+        ];
+      })
+      (sources."minizlib-2.1.2" // {
+        dependencies = [
+          sources."yallist-4.0.0"
+        ];
+      })
       sources."mkdirp-0.5.5"
+      sources."mkdirp-classic-0.5.3"
       sources."module-not-found-error-1.0.1"
       sources."moment-2.29.1"
       (sources."morgan-1.10.0" // {
@@ -5760,10 +6223,16 @@ let
       })
       sources."ms-2.1.2"
       sources."nanoid-3.1.23"
+      sources."napi-build-utils-1.0.2"
       sources."natural-compare-1.4.0"
       sources."nedb-1.8.0"
       sources."negotiator-0.6.2"
       sources."nested-error-stacks-2.1.0"
+      (sources."node-abi-2.30.1" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
       sources."node-gyp-build-4.2.3"
       (sources."nodemon-2.0.7" // {
         dependencies = [
@@ -5780,12 +6249,15 @@ let
       })
       sources."normalize-path-3.0.0"
       sources."normalize-url-4.5.1"
+      sources."npmlog-4.1.2"
+      sources."number-is-nan-1.0.1"
       (sources."nyc-14.1.1" // {
         dependencies = [
           sources."rimraf-2.7.1"
         ];
       })
       sources."oauth-sign-0.9.0"
+      sources."object-assign-4.1.1"
       sources."object-hash-2.2.0"
       sources."object-inspect-1.10.3"
       sources."on-finished-2.3.0"
@@ -5811,7 +6283,7 @@ let
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
-      sources."path-parse-1.0.6"
+      sources."path-parse-1.0.7"
       sources."path-to-regexp-0.1.7"
       sources."path-type-4.0.0"
       sources."performance-now-2.1.0"
@@ -5822,7 +6294,7 @@ let
       sources."pg-protocol-1.5.0"
       sources."pg-types-2.2.0"
       sources."pgpass-1.0.4"
-      sources."picomatch-2.2.2"
+      sources."picomatch-2.3.0"
       sources."pify-3.0.0"
       sources."pkg-dir-3.0.0"
       sources."postcss-8.3.0"
@@ -5830,6 +6302,7 @@ let
       sources."postgres-bytea-1.0.0"
       sources."postgres-date-1.0.7"
       sources."postgres-interval-1.2.0"
+      sources."prebuild-install-6.1.4"
       sources."prelude-ls-1.2.1"
       sources."prepend-http-2.0.0"
       sources."process-nextick-args-2.0.1"
@@ -5876,7 +6349,6 @@ let
       sources."release-zalgo-1.0.0"
       (sources."request-2.88.2" // {
         dependencies = [
-          sources."extend-3.0.2"
           sources."qs-6.5.2"
         ];
       })
@@ -5897,7 +6369,6 @@ let
       (sources."sanitize-html-2.4.0" // {
         dependencies = [
           sources."domhandler-4.2.0"
-          sources."escape-string-regexp-4.0.0"
           sources."htmlparser2-6.1.0"
         ];
       })
@@ -5920,6 +6391,13 @@ let
       sources."shebang-regex-3.0.0"
       sources."side-channel-1.0.4"
       sources."signal-exit-3.0.2"
+      sources."simple-concat-1.0.1"
+      (sources."simple-get-3.1.0" // {
+        dependencies = [
+          sources."decompress-response-4.2.1"
+          sources."mimic-response-2.1.0"
+        ];
+      })
       sources."simple-swizzle-0.2.2"
       sources."slash-3.0.0"
       sources."slice-ansi-4.0.0"
@@ -5960,12 +6438,24 @@ let
       (sources."table-6.7.1" // {
         dependencies = [
           sources."ajv-8.4.0"
-          sources."ansi-regex-5.0.0"
+          sources."ansi-regex-5.0.1"
           sources."json-schema-traverse-1.0.0"
           sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
         ];
       })
+      (sources."tar-6.1.11" // {
+        dependencies = [
+          sources."mkdirp-1.0.4"
+          sources."yallist-4.0.0"
+        ];
+      })
+      (sources."tar-fs-2.1.1" // {
+        dependencies = [
+          sources."chownr-1.1.4"
+        ];
+      })
+      sources."tar-stream-2.2.0"
       sources."tdigest-0.1.1"
       sources."term-size-2.2.1"
       sources."test-exclude-5.2.3"
@@ -5990,7 +6480,7 @@ let
       sources."type-fest-0.8.1"
       sources."type-is-1.6.18"
       sources."typedarray-to-buffer-3.1.5"
-      sources."typescript-4.2.3"
+      sources."typescript-4.4.3"
       (sources."undefsafe-2.0.3" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -6020,9 +6510,17 @@ let
       sources."verror-1.10.0"
       sources."which-2.0.2"
       sources."which-module-2.0.0"
+      (sources."wide-align-1.1.3" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
+        ];
+      })
       (sources."widest-line-3.1.0" // {
         dependencies = [
-          sources."ansi-regex-5.0.0"
+          sources."ansi-regex-5.0.1"
           sources."string-width-4.2.2"
           sources."strip-ansi-6.0.0"
         ];
@@ -6050,7 +6548,6 @@ let
       sources."xdg-basedir-4.0.0"
       sources."xtend-4.0.2"
       sources."y18n-4.0.3"
-      sources."yallist-3.1.1"
       sources."yargs-13.3.2"
       sources."yargs-parser-13.1.2"
     ];
diff --git a/pkgs/servers/matrix-synapse/matrix-appservice-irc/package.json b/pkgs/servers/matrix-synapse/matrix-appservice-irc/package.json
index 998515f568e64..afbafc9b5e96b 100644
--- a/pkgs/servers/matrix-synapse/matrix-appservice-irc/package.json
+++ b/pkgs/servers/matrix-synapse/matrix-appservice-irc/package.json
@@ -1,6 +1,6 @@
 {
   "name": "matrix-appservice-irc",
-  "version": "0.30.0",
+  "version": "0.32.1",
   "description": "An IRC Bridge for Matrix",
   "main": "app.js",
   "bin": "./bin/matrix-appservice-irc",
@@ -28,13 +28,12 @@
   "dependencies": {
     "@sentry/node": "^5.27.1",
     "bluebird": "^3.7.2",
+    "diff": "^5.0.0",
     "escape-string-regexp": "^4.0.0",
     "extend": "^3.0.2",
     "he": "^1.2.0",
     "logform": "^2.2.0",
-    "matrix-appservice": "^0.8.0",
-    "matrix-appservice-bridge": "^2.6.1",
-    "matrix-lastactive": "^0.1.5",
+    "matrix-appservice-bridge": "^3.1.2",
     "matrix-org-irc": "^1.2.0",
     "nedb": "^1.1.2",
     "nodemon": "^2.0.7",
@@ -50,20 +49,23 @@
   },
   "devDependencies": {
     "@types/bluebird": "^3.5.32",
-    "@types/express": "^4.17.7",
+    "@types/diff": "^5.0.1",
     "@types/extend": "^3.0.1",
     "@types/he": "^1.1.1",
     "@types/nedb": "^1.8.11",
+    "@types/node": "^14",
     "@types/nopt": "^3.0.29",
     "@types/pg": "^8.6.0",
     "@types/sanitize-html": "^2.3.1",
-    "@typescript-eslint/eslint-plugin": "^4.16.1",
-    "@typescript-eslint/parser": "^4.16.1",
+    "@types/express": "4.17.11",
+    "@types/express-serve-static-core": "4.17.19",
+    "@typescript-eslint/eslint-plugin": "^4.33.0",
+    "@typescript-eslint/parser": "^4.33.0",
     "eslint": "^7.21.0",
     "jasmine": "^3.6.2",
     "nyc": "^14.1.1",
-    "prom-client": "^13.0.0",
+    "prom-client": "13.1.0",
     "proxyquire": "^1.4.0",
-    "typescript": "^4.2.2"
+    "typescript": "^4.4.3"
   }
 }
diff --git a/pkgs/servers/matrix-synapse/matrix-appservice-irc/src.json b/pkgs/servers/matrix-synapse/matrix-appservice-irc/src.json
new file mode 100644
index 0000000000000..14eb6c69d6df8
--- /dev/null
+++ b/pkgs/servers/matrix-synapse/matrix-appservice-irc/src.json
@@ -0,0 +1,10 @@
+{
+  "url": "https://github.com/matrix-org/matrix-appservice-irc",
+  "rev": "6d5795ce9544c8d73f4846f1bd7190d352dddead",
+  "date": "2021-10-25T12:54:49+02:00",
+  "path": "/nix/store/by3iwfs5yayyv576qvfl650dgjw7jy5k-matrix-appservice-irc",
+  "sha256": "06v5ihn03vidfa8aq8q9yil5s0hdgz09hzsm75fk5v8d8bi3d7d4",
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/servers/matrix-synapse/matrix-appservice-irc/update.sh b/pkgs/servers/matrix-synapse/matrix-appservice-irc/update.sh
index 462512dd0f4db..4ed109cc352f9 100755
--- a/pkgs/servers/matrix-synapse/matrix-appservice-irc/update.sh
+++ b/pkgs/servers/matrix-synapse/matrix-appservice-irc/update.sh
@@ -1,12 +1,12 @@
 #!/usr/bin/env nix-shell
-#! nix-shell -i bash -p nodePackages.node2nix nodejs-12_x curl jq nix
+#! nix-shell -i bash -p nodePackages.node2nix nodejs-12_x curl jq nix nix-prefetch-git
 
 set -euo pipefail
 # cd to the folder containing this script
 cd "$(dirname "$0")"
 
-CURRENT_VERSION=$(nix eval --raw '(with import ../../../../. {}; matrix-appservice-irc.version)')
-TARGET_VERSION="$(curl https://api.github.com/repos/matrix-org/matrix-appservice-irc/releases/latest | jq -r ".tag_name")"
+CURRENT_VERSION=$(nix-instantiate ../../../../. --eval --strict -A matrix-appservice-irc.version | tr -d '"')
+TARGET_VERSION="$(curl https://api.github.com/repos/matrix-org/matrix-appservice-irc/releases/latest | jq --exit-status -r ".tag_name")"
 
 if [[ "$CURRENT_VERSION" == "$TARGET_VERSION" ]]; then
     echo "matrix-appservice-irc is up-to-date: ${CURRENT_VERSION}"
@@ -18,12 +18,9 @@ echo "matrix-appservice-irc: $CURRENT_VERSION -> $TARGET_VERSION"
 rm -f package.json package-lock.json
 wget https://github.com/matrix-org/matrix-appservice-irc/raw/$TARGET_VERSION/package.json
 wget -O package-lock-temp.json https://github.com/matrix-org/matrix-appservice-irc/raw/$TARGET_VERSION/package-lock.json
-echo "$TARGET_VERSION" > ./REVISION
 
 ./generate-dependencies.sh
 
 rm ./package-lock-temp.json
 
-# Apparently this is done by r-ryantm, so only uncomment for manual usage
-#git add ./package.json ./node-packages.nix
-#git commit -m "matrix-appservice-irc: ${CURRENT_VERSION} -> ${TARGET_VERSION}"
+nix-prefetch-git --rev "$TARGET_VERSION" --url "https://github.com/matrix-org/matrix-appservice-irc" > ./src.json
diff --git a/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix b/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
index 327ab8a672dbe..eb3d82e14d0b4 100644
--- a/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
+++ b/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
@@ -3,8 +3,8 @@ let
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "matrix-appservice-slack";
-    rev = "1.9.0";
-    sha256 = "tx+dul+O7HZTGYW8ZSxoOZZmzm44nz0pYGQYp8xaVCw=";
+    rev = "1.10.0";
+    sha256 = "WnonduUhhrxCMuXOgLk8voNnn+f6R5CsJ7VKpEmGwzk=";
   };
 
   nodePackages = import ./node-composition.nix {
diff --git a/pkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh b/pkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh
index 33f0554573bdc..2503d6d7ef353 100755
--- a/pkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh
+++ b/pkgs/servers/matrix-synapse/matrix-appservice-slack/generate-dependencies.sh
@@ -1,9 +1,9 @@
 #!/usr/bin/env nix-shell
 #! nix-shell -i bash -p nodePackages.node2nix
 
-# Download package.json and package-lock.json from the v1.9.0 release
-curl https://raw.githubusercontent.com/matrix-org/matrix-appservice-slack/1.9.0/package.json -o package.json
-curl https://raw.githubusercontent.com/matrix-org/matrix-appservice-slack/1.9.0/package-lock.json -o package-lock.json
+# Download package.json and package-lock.json from the v1.10.0 release
+curl https://raw.githubusercontent.com/matrix-org/matrix-appservice-slack/1.10.0/package.json -o package.json
+curl https://raw.githubusercontent.com/matrix-org/matrix-appservice-slack/1.10.0/package-lock.json -o package-lock.json
 
 node2nix \
   --nodejs-12 \
diff --git a/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix b/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix
index 9fa290f1c79b0..dc0bd7b052bf1 100644
--- a/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix
+++ b/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix
@@ -13,40 +13,13 @@ let
         sha512 = "UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==";
       };
     };
-    "@babel/code-frame-7.12.11" = {
-      name = "_at_babel_slash_code-frame";
-      packageName = "@babel/code-frame";
-      version = "7.12.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz";
-        sha512 = "Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==";
-      };
-    };
-    "@babel/helper-validator-identifier-7.12.11" = {
-      name = "_at_babel_slash_helper-validator-identifier";
-      packageName = "@babel/helper-validator-identifier";
-      version = "7.12.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz";
-        sha512 = "np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==";
-      };
-    };
-    "@babel/highlight-7.13.10" = {
-      name = "_at_babel_slash_highlight";
-      packageName = "@babel/highlight";
-      version = "7.13.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz";
-        sha512 = "5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==";
-      };
-    };
-    "@babel/runtime-7.13.10" = {
+    "@babel/runtime-7.16.3" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.13.10";
+      version = "7.16.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz";
-        sha512 = "4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz";
+        sha512 = "WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==";
       };
     };
     "@dabh/diagnostics-2.0.2" = {
@@ -58,40 +31,40 @@ let
         sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==";
       };
     };
-    "@es-joy/jsdoccomment-0.9.0-alpha.1" = {
+    "@es-joy/jsdoccomment-0.12.0" = {
       name = "_at_es-joy_slash_jsdoccomment";
       packageName = "@es-joy/jsdoccomment";
-      version = "0.9.0-alpha.1";
+      version = "0.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.9.0-alpha.1.tgz";
-        sha512 = "Clxxc0PwpISoYYBibA+1L2qFJ7gvFVhI2Hos87S06K+Q0cXdOhZQJNKWuaQGPAeHjZEuUB/YoWOfwjuF2wirqA==";
+        url = "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.12.0.tgz";
+        sha512 = "Gw4/j9v36IKY8ET+W0GoOzrRw17xjf21EIFFRL3zx21fF5MnqmeNpNi+PU/LKjqLpPb2Pw2XdlJbYM31VVo/PQ==";
       };
     };
-    "@eslint/eslintrc-0.4.3" = {
+    "@eslint/eslintrc-1.0.5" = {
       name = "_at_eslint_slash_eslintrc";
       packageName = "@eslint/eslintrc";
-      version = "0.4.3";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz";
-        sha512 = "J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==";
+        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz";
+        sha512 = "BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==";
       };
     };
-    "@humanwhocodes/config-array-0.5.0" = {
+    "@humanwhocodes/config-array-0.9.2" = {
       name = "_at_humanwhocodes_slash_config-array";
       packageName = "@humanwhocodes/config-array";
-      version = "0.5.0";
+      version = "0.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz";
-        sha512 = "FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==";
+        url = "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz";
+        sha512 = "UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==";
       };
     };
-    "@humanwhocodes/object-schema-1.2.0" = {
+    "@humanwhocodes/object-schema-1.2.1" = {
       name = "_at_humanwhocodes_slash_object-schema";
       packageName = "@humanwhocodes/object-schema";
-      version = "1.2.0";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz";
-        sha512 = "wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==";
+        url = "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz";
+        sha512 = "ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==";
       };
     };
     "@matrix-org/olm-https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.4.tgz" = {
@@ -266,13 +239,13 @@ let
         sha512 = "KbeHS/Y4R+k+5sWXEYzAZKuB1yQlZtEghuhRxrVRLaqhtoG5+26JwQsa4HyS3AWX8v1Uwukma5HheduUDskasA==";
       };
     };
-    "@types/json-schema-7.0.8" = {
+    "@types/json-schema-7.0.9" = {
       name = "_at_types_slash_json-schema";
       packageName = "@types/json-schema";
-      version = "7.0.8";
+      version = "7.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz";
-        sha512 = "YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==";
+        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz";
+        sha512 = "qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==";
       };
     };
     "@types/mime-1.3.2" = {
@@ -419,67 +392,67 @@ let
         sha512 = "7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==";
       };
     };
-    "@typescript-eslint/eslint-plugin-4.28.4" = {
+    "@typescript-eslint/eslint-plugin-5.6.0" = {
       name = "_at_typescript-eslint_slash_eslint-plugin";
       packageName = "@typescript-eslint/eslint-plugin";
-      version = "4.28.4";
+      version = "5.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.4.tgz";
-        sha512 = "s1oY4RmYDlWMlcV0kKPBaADn46JirZzvvH7c2CtAqxCY96S538JRBAzt83RrfkDheV/+G/vWNK0zek+8TB3Gmw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.6.0.tgz";
+        sha512 = "MIbeMy5qfLqtgs1hWd088k1hOuRsN9JrHUPwVVKCD99EOUqScd7SrwoZl4Gso05EAP9w1kvLWUVGJOVpRPkDPA==";
       };
     };
-    "@typescript-eslint/experimental-utils-4.28.4" = {
+    "@typescript-eslint/experimental-utils-5.6.0" = {
       name = "_at_typescript-eslint_slash_experimental-utils";
       packageName = "@typescript-eslint/experimental-utils";
-      version = "4.28.4";
+      version = "5.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.4.tgz";
-        sha512 = "OglKWOQRWTCoqMSy6pm/kpinEIgdcXYceIcH3EKWUl4S8xhFtN34GQRaAvTIZB9DD94rW7d/U7tUg3SYeDFNHA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.6.0.tgz";
+        sha512 = "VDoRf3Qj7+W3sS/ZBXZh3LBzp0snDLEgvp6qj0vOAIiAPM07bd5ojQ3CTzF/QFl5AKh7Bh1ycgj6lFBJHUt/DA==";
       };
     };
-    "@typescript-eslint/parser-4.28.4" = {
+    "@typescript-eslint/parser-5.6.0" = {
       name = "_at_typescript-eslint_slash_parser";
       packageName = "@typescript-eslint/parser";
-      version = "4.28.4";
+      version = "5.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.28.4.tgz";
-        sha512 = "4i0jq3C6n+og7/uCHiE6q5ssw87zVdpUj1k6VlVYMonE3ILdFApEzTWgppSRG4kVNB/5jxnH+gTeKLMNfUelQA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.6.0.tgz";
+        sha512 = "YVK49NgdUPQ8SpCZaOpiq1kLkYRPMv9U5gcMrywzI8brtwZjr/tG3sZpuHyODt76W/A0SufNjYt9ZOgrC4tLIQ==";
       };
     };
-    "@typescript-eslint/scope-manager-4.28.4" = {
+    "@typescript-eslint/scope-manager-5.6.0" = {
       name = "_at_typescript-eslint_slash_scope-manager";
       packageName = "@typescript-eslint/scope-manager";
-      version = "4.28.4";
+      version = "5.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.28.4.tgz";
-        sha512 = "ZJBNs4usViOmlyFMt9X9l+X0WAFcDH7EdSArGqpldXu7aeZxDAuAzHiMAeI+JpSefY2INHrXeqnha39FVqXb8w==";
+        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.6.0.tgz";
+        sha512 = "1U1G77Hw2jsGWVsO2w6eVCbOg0HZ5WxL/cozVSTfqnL/eB9muhb8THsP0G3w+BB5xAHv9KptwdfYFAUfzcIh4A==";
       };
     };
-    "@typescript-eslint/types-4.28.4" = {
+    "@typescript-eslint/types-5.6.0" = {
       name = "_at_typescript-eslint_slash_types";
       packageName = "@typescript-eslint/types";
-      version = "4.28.4";
+      version = "5.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.28.4.tgz";
-        sha512 = "3eap4QWxGqkYuEmVebUGULMskR6Cuoc/Wii0oSOddleP4EGx1tjLnZQ0ZP33YRoMDCs5O3j56RBV4g14T4jvww==";
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.6.0.tgz";
+        sha512 = "OIZffked7mXv4mXzWU5MgAEbCf9ecNJBKi+Si6/I9PpTaj+cf2x58h2oHW5/P/yTnPkKaayfjhLvx+crnl5ubA==";
       };
     };
-    "@typescript-eslint/typescript-estree-4.28.4" = {
+    "@typescript-eslint/typescript-estree-5.6.0" = {
       name = "_at_typescript-eslint_slash_typescript-estree";
       packageName = "@typescript-eslint/typescript-estree";
-      version = "4.28.4";
+      version = "5.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.4.tgz";
-        sha512 = "z7d8HK8XvCRyN2SNp+OXC2iZaF+O2BTquGhEYLKLx5k6p0r05ureUtgEfo5f6anLkhCxdHtCf6rPM1p4efHYDQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.6.0.tgz";
+        sha512 = "92vK5tQaE81rK7fOmuWMrSQtK1IMonESR+RJR2Tlc7w4o0MeEdjgidY/uO2Gobh7z4Q1hhS94Cr7r021fMVEeA==";
       };
     };
-    "@typescript-eslint/visitor-keys-4.28.4" = {
+    "@typescript-eslint/visitor-keys-5.6.0" = {
       name = "_at_typescript-eslint_slash_visitor-keys";
       packageName = "@typescript-eslint/visitor-keys";
-      version = "4.28.4";
+      version = "5.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.4.tgz";
-        sha512 = "NIAXAdbz1XdOuzqkJHjNKXKj8QQ4cv5cxR/g0uQhCYf/6//XrmfpaYsM7PnBcNbfvTDLUkqQ5TPNm1sozDdTWg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.6.0.tgz";
+        sha512 = "1p7hDp5cpRFUyE3+lvA74egs+RWSgumrBpzBCDzfTFv0aQ7lIeay80yU0hIxgAhwQ6PcasW35kaOCyDOv6O/Ng==";
       };
     };
     "@ungap/promise-all-settled-1.1.2" = {
@@ -528,13 +501,13 @@ let
         sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
       };
     };
-    "acorn-7.4.1" = {
+    "acorn-8.6.0" = {
       name = "acorn";
       packageName = "acorn";
-      version = "7.4.1";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz";
-        sha512 = "nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==";
+        url = "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz";
+        sha512 = "U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==";
       };
     };
     "acorn-jsx-5.3.2" = {
@@ -555,15 +528,6 @@ let
         sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==";
       };
     };
-    "ajv-8.1.0" = {
-      name = "ajv";
-      packageName = "ajv";
-      version = "8.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-8.1.0.tgz";
-        sha512 = "B/Sk2Ix7A36fs/ZkuGLIR86EdjbgR6fsAcbx9lOP/QBSXujDNbVmIS/U4Itz5k8fPFDeVZl/zQ/gJW4Jrq6XjQ==";
-      };
-    };
     "another-json-0.2.0" = {
       name = "another-json";
       packageName = "another-json";
@@ -600,22 +564,13 @@ let
         sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
       };
     };
-    "ansi-regex-5.0.0" = {
+    "ansi-regex-5.0.1" = {
       name = "ansi-regex";
       packageName = "ansi-regex";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz";
-        sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==";
-      };
-    };
-    "ansi-styles-3.2.1" = {
-      name = "ansi-styles";
-      packageName = "ansi-styles";
-      version = "3.2.1";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz";
-        sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz";
+        sha512 = "quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==";
       };
     };
     "ansi-styles-4.3.0" = {
@@ -663,15 +618,6 @@ let
         sha512 = "58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==";
       };
     };
-    "argparse-1.0.10" = {
-      name = "argparse";
-      packageName = "argparse";
-      version = "1.0.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
-        sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
-      };
-    };
     "argparse-2.0.1" = {
       name = "argparse";
       packageName = "argparse";
@@ -753,15 +699,6 @@ let
         sha512 = "jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==";
       };
     };
-    "astral-regex-2.0.0" = {
-      name = "astral-regex";
-      packageName = "astral-regex";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz";
-        sha512 = "Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==";
-      };
-    };
     "async-0.2.10" = {
       name = "async";
       packageName = "async";
@@ -825,6 +762,15 @@ let
         sha512 = "ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==";
       };
     };
+    "axios-0.24.0" = {
+      name = "axios";
+      packageName = "axios";
+      version = "0.24.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz";
+        sha512 = "Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==";
+      };
+    };
     "balanced-match-1.0.2" = {
       name = "balanced-match";
       packageName = "balanced-match";
@@ -834,13 +780,13 @@ let
         sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==";
       };
     };
-    "base-x-3.0.8" = {
+    "base-x-3.0.9" = {
       name = "base-x";
       packageName = "base-x";
-      version = "3.0.8";
+      version = "3.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz";
-        sha512 = "Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==";
+        url = "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz";
+        sha512 = "H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==";
       };
     };
     "base64-js-1.5.1" = {
@@ -1068,15 +1014,6 @@ let
         sha512 = "yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==";
       };
     };
-    "chalk-2.4.2" = {
-      name = "chalk";
-      packageName = "chalk";
-      version = "2.4.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
-        sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
-      };
-    };
     "chalk-4.1.0" = {
       name = "chalk";
       packageName = "chalk";
@@ -1185,13 +1122,13 @@ let
         sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
       };
     };
-    "color-string-1.5.3" = {
+    "color-string-1.6.0" = {
       name = "color-string";
       packageName = "color-string";
-      version = "1.5.3";
+      version = "1.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz";
-        sha512 = "dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==";
+        url = "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz";
+        sha512 = "c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==";
       };
     };
     "colorette-1.4.0" = {
@@ -1239,13 +1176,22 @@ let
         sha512 = "P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==";
       };
     };
-    "comment-parser-1.1.6-beta.0" = {
+    "comment-parser-1.2.4" = {
+      name = "comment-parser";
+      packageName = "comment-parser";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/comment-parser/-/comment-parser-1.2.4.tgz";
+        sha512 = "pm0b+qv+CkWNriSTMsfnjChF9kH0kxz55y44Wo5le9qLxMj5xDQAaEd9ZN1ovSuk9CsrncWaFwgpOMg7ClJwkw==";
+      };
+    };
+    "comment-parser-1.3.0" = {
       name = "comment-parser";
       packageName = "comment-parser";
-      version = "1.1.6-beta.0";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/comment-parser/-/comment-parser-1.1.6-beta.0.tgz";
-        sha512 = "q3cA8TSMyqW7wcPSYWzbO/rMahnXgzs4SLG/UIWXdEsnXTFPZkEkWAdNgPiHig2OzxgpPLOh4WwsmClDxndwHw==";
+        url = "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.0.tgz";
+        sha512 = "hRpmWIKgzd81vn0ydoWoyPoALEOnF4wt8yKD35Ib1D6XC2siLiYaiqfGkYrunuKdsXGwpBpHU3+9r+RVw2NZfA==";
       };
     };
     "concat-map-0.0.1" = {
@@ -1356,13 +1302,13 @@ let
         sha512 = "doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==";
       };
     };
-    "debug-4.3.2" = {
+    "debug-4.3.3" = {
       name = "debug";
       packageName = "debug";
-      version = "4.3.2";
+      version = "4.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz";
-        sha512 = "mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==";
+        url = "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz";
+        sha512 = "/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==";
       };
     };
     "decamelize-4.0.0" = {
@@ -1644,15 +1590,6 @@ let
         sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
       };
     };
-    "escape-string-regexp-1.0.5" = {
-      name = "escape-string-regexp";
-      packageName = "escape-string-regexp";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
-        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
-      };
-    };
     "escape-string-regexp-4.0.0" = {
       name = "escape-string-regexp";
       packageName = "escape-string-regexp";
@@ -1662,22 +1599,22 @@ let
         sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
       };
     };
-    "eslint-7.31.0" = {
+    "eslint-8.4.1" = {
       name = "eslint";
       packageName = "eslint";
-      version = "7.31.0";
+      version = "8.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.31.0.tgz";
-        sha512 = "vafgJpSh2ia8tnTkNUkwxGmnumgckLh5aAbLa1xRmIn9+owi8qBNGKL+B881kNKNTy7FFqTEkpNkUvmw0n6PkA==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-8.4.1.tgz";
+        sha512 = "TxU/p7LB1KxQ6+7aztTnO7K0i+h0tDi81YRY9VzB6Id71kNz+fFYnf5HD5UOQmxkzcoa0TlVZf9dpMtUv0GpWg==";
       };
     };
-    "eslint-plugin-jsdoc-35.5.0" = {
+    "eslint-plugin-jsdoc-37.1.0" = {
       name = "eslint-plugin-jsdoc";
       packageName = "eslint-plugin-jsdoc";
-      version = "35.5.0";
+      version = "37.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-35.5.0.tgz";
-        sha512 = "QBtfGeKvSFjbMLl28fRVyk/V7NhdSy+/4a6nOUXNsJ+Ya4G88YwbBiHIZgU4COeMKPb+OGGnrLwxYO0tZiw+kg==";
+        url = "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.1.0.tgz";
+        sha512 = "DpkFzX5Sqkqzy4MCgowhDXmusWcF1Gn7wYnphdGfWmIkoQr6SwL0jEtltGAVyF5Rj6ACi6ydw0oCCI5hF3yz6w==";
       };
     };
     "eslint-plugin-prefer-arrow-1.2.3" = {
@@ -1698,13 +1635,13 @@ let
         sha512 = "2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==";
       };
     };
-    "eslint-utils-2.1.0" = {
-      name = "eslint-utils";
-      packageName = "eslint-utils";
-      version = "2.1.0";
+    "eslint-scope-7.1.0" = {
+      name = "eslint-scope";
+      packageName = "eslint-scope";
+      version = "7.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz";
-        sha512 = "w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==";
+        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz";
+        sha512 = "aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==";
       };
     };
     "eslint-utils-3.0.0" = {
@@ -1716,40 +1653,31 @@ let
         sha512 = "uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==";
       };
     };
-    "eslint-visitor-keys-1.3.0" = {
+    "eslint-visitor-keys-2.1.0" = {
       name = "eslint-visitor-keys";
       packageName = "eslint-visitor-keys";
-      version = "1.3.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
-        sha512 = "6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==";
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz";
+        sha512 = "0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==";
       };
     };
-    "eslint-visitor-keys-2.0.0" = {
+    "eslint-visitor-keys-3.1.0" = {
       name = "eslint-visitor-keys";
       packageName = "eslint-visitor-keys";
-      version = "2.0.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz";
-        sha512 = "QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==";
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz";
+        sha512 = "yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==";
       };
     };
-    "espree-7.3.1" = {
+    "espree-9.2.0" = {
       name = "espree";
       packageName = "espree";
-      version = "7.3.1";
+      version = "9.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz";
-        sha512 = "v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==";
-      };
-    };
-    "esprima-4.0.1" = {
-      name = "esprima";
-      packageName = "esprima";
-      version = "4.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
-        sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
+        url = "https://registry.npmjs.org/espree/-/espree-9.2.0.tgz";
+        sha512 = "oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==";
       };
     };
     "esquery-1.4.0" = {
@@ -1788,6 +1716,15 @@ let
         sha512 = "BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==";
       };
     };
+    "estraverse-5.3.0" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "5.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz";
+        sha512 = "MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==";
+      };
+    };
     "esutils-2.0.3" = {
       name = "esutils";
       packageName = "esutils";
@@ -1905,13 +1842,13 @@ let
         sha512 = "q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg==";
       };
     };
-    "fastq-1.11.1" = {
+    "fastq-1.13.0" = {
       name = "fastq";
       packageName = "fastq";
-      version = "1.11.1";
+      version = "1.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz";
-        sha512 = "HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==";
+        url = "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz";
+        sha512 = "YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==";
       };
     };
     "fecha-4.2.0" = {
@@ -2220,6 +2157,15 @@ let
         sha512 = "AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==";
       };
     };
+    "glob-parent-6.0.2" = {
+      name = "glob-parent";
+      packageName = "glob-parent";
+      version = "6.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz";
+        sha512 = "XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==";
+      };
+    };
     "glob-to-regexp-0.4.1" = {
       name = "glob-to-regexp";
       packageName = "glob-to-regexp";
@@ -2229,13 +2175,13 @@ let
         sha512 = "lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==";
       };
     };
-    "globals-13.10.0" = {
+    "globals-13.12.0" = {
       name = "globals";
       packageName = "globals";
-      version = "13.10.0";
+      version = "13.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz";
-        sha512 = "piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==";
+        url = "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz";
+        sha512 = "uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==";
       };
     };
     "globby-11.0.4" = {
@@ -2292,15 +2238,6 @@ let
         sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
       };
     };
-    "has-flag-3.0.0" = {
-      name = "has-flag";
-      packageName = "has-flag";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz";
-        sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
-      };
-    };
     "has-flag-4.0.0" = {
       name = "has-flag";
       packageName = "has-flag";
@@ -2427,13 +2364,13 @@ let
         sha512 = "cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==";
       };
     };
-    "ignore-5.1.8" = {
+    "ignore-5.1.9" = {
       name = "ignore";
       packageName = "ignore";
-      version = "5.1.8";
+      version = "5.1.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz";
-        sha512 = "BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==";
+        url = "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz";
+        sha512 = "2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==";
       };
     };
     "immediate-3.0.6" = {
@@ -2526,15 +2463,6 @@ let
         sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==";
       };
     };
-    "is-boolean-object-1.1.0" = {
-      name = "is-boolean-object";
-      packageName = "is-boolean-object";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz";
-        sha512 = "a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==";
-      };
-    };
     "is-extglob-2.1.1" = {
       name = "is-extglob";
       packageName = "is-extglob";
@@ -2571,13 +2499,13 @@ let
         sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
       };
     };
-    "is-glob-4.0.1" = {
+    "is-glob-4.0.3" = {
       name = "is-glob";
       packageName = "is-glob";
-      version = "4.0.1";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
-        sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
+        url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz";
+        sha512 = "xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==";
       };
     };
     "is-my-ip-valid-1.0.0" = {
@@ -2589,13 +2517,13 @@ let
         sha512 = "gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==";
       };
     };
-    "is-my-json-valid-2.20.5" = {
+    "is-my-json-valid-2.20.6" = {
       name = "is-my-json-valid";
       packageName = "is-my-json-valid";
-      version = "2.20.5";
+      version = "2.20.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.5.tgz";
-        sha512 = "VTPuvvGQtxvCeghwspQu1rBgjYUT6FGxPlvFKbYuFtgc4ADsX3U5ihZOYN0qyU6u+d4X9xXb0IT5O6QpXKt87A==";
+        url = "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.6.tgz";
+        sha512 = "1JQwulVNjx8UqkPE/bqDaxtH4PXCe/2VRh/y3p99heOV87HG4Id5/VfDswd+YiAfHcRTfDlWgISycnHuhZq1aw==";
       };
     };
     "is-number-7.0.0" = {
@@ -2607,15 +2535,6 @@ let
         sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
       };
     };
-    "is-number-object-1.0.4" = {
-      name = "is-number-object";
-      packageName = "is-number-object";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz";
-        sha512 = "zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==";
-      };
-    };
     "is-plain-obj-2.1.0" = {
       name = "is-plain-obj";
       packageName = "is-plain-obj";
@@ -2670,15 +2589,6 @@ let
         sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
       };
     };
-    "is-string-1.0.5" = {
-      name = "is-string";
-      packageName = "is-string";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz";
-        sha512 = "buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==";
-      };
-    };
     "is-typedarray-1.0.0" = {
       name = "is-typedarray";
       packageName = "is-typedarray";
@@ -2724,24 +2634,6 @@ let
         sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
       };
     };
-    "js-tokens-4.0.0" = {
-      name = "js-tokens";
-      packageName = "js-tokens";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz";
-        sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
-      };
-    };
-    "js-yaml-3.14.1" = {
-      name = "js-yaml";
-      packageName = "js-yaml";
-      version = "3.14.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz";
-        sha512 = "okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==";
-      };
-    };
     "js-yaml-4.1.0" = {
       name = "js-yaml";
       packageName = "js-yaml";
@@ -2760,13 +2652,13 @@ let
         sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
       };
     };
-    "jsdoc-type-pratt-parser-1.0.4" = {
+    "jsdoc-type-pratt-parser-2.0.0" = {
       name = "jsdoc-type-pratt-parser";
       packageName = "jsdoc-type-pratt-parser";
-      version = "1.0.4";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-1.0.4.tgz";
-        sha512 = "jzmW9gokeq9+bHPDR1nCeidMyFUikdZlbOhKzh9+/nJqB75XhpNKec1/UuxW5c4+O+Pi31Gc/dCboyfSm/pSpQ==";
+        url = "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.0.0.tgz";
+        sha512 = "sUuj2j48wxrEpbFjDp1sAesAxPiLT+z0SWVmMafyIINs6Lj5gIPKh3VrkBZu4E/Dv+wHpOot0m6H8zlHQjwqeQ==";
       };
     };
     "json-schema-0.2.3" = {
@@ -2787,15 +2679,6 @@ let
         sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
       };
     };
-    "json-schema-traverse-1.0.0" = {
-      name = "json-schema-traverse";
-      packageName = "json-schema-traverse";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz";
-        sha512 = "NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==";
-      };
-    };
     "json-stable-stringify-without-jsonify-1.0.1" = {
       name = "json-stable-stringify-without-jsonify";
       packageName = "json-stable-stringify-without-jsonify";
@@ -2814,13 +2697,13 @@ let
         sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
       };
     };
-    "jsonpointer-4.1.0" = {
+    "jsonpointer-5.0.0" = {
       name = "jsonpointer";
       packageName = "jsonpointer";
-      version = "4.1.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.1.0.tgz";
-        sha512 = "CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg==";
+        url = "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz";
+        sha512 = "PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==";
       };
     };
     "jsprim-1.4.1" = {
@@ -2895,24 +2778,6 @@ let
         sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==";
       };
     };
-    "lodash.clonedeep-4.5.0" = {
-      name = "lodash.clonedeep";
-      packageName = "lodash.clonedeep";
-      version = "4.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
-        sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
-      };
-    };
-    "lodash.flatten-4.4.0" = {
-      name = "lodash.flatten";
-      packageName = "lodash.flatten";
-      version = "4.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz";
-        sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f";
-      };
-    };
     "lodash.merge-4.6.2" = {
       name = "lodash.merge";
       packageName = "lodash.merge";
@@ -2931,15 +2796,6 @@ let
         sha1 = "24c4bfcd6b2fba38bfd0594db1179d8e9b656561";
       };
     };
-    "lodash.truncate-4.4.2" = {
-      name = "lodash.truncate";
-      packageName = "lodash.truncate";
-      version = "4.4.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz";
-        sha1 = "5a350da0b1113b837ecfffd5812cbe58d6eae193";
-      };
-    };
     "log-symbols-4.1.0" = {
       name = "log-symbols";
       packageName = "log-symbols";
@@ -2958,13 +2814,13 @@ let
         sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==";
       };
     };
-    "loglevel-1.7.1" = {
+    "loglevel-1.8.0" = {
       name = "loglevel";
       packageName = "loglevel";
-      version = "1.7.1";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz";
-        sha512 = "Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==";
+        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz";
+        sha512 = "G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==";
       };
     };
     "lowdb-1.0.0" = {
@@ -2994,22 +2850,22 @@ let
         sha512 = "s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==";
       };
     };
-    "matrix-appservice-0.8.0" = {
+    "matrix-appservice-0.10.0" = {
       name = "matrix-appservice";
       packageName = "matrix-appservice";
-      version = "0.8.0";
+      version = "0.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/matrix-appservice/-/matrix-appservice-0.8.0.tgz";
-        sha512 = "mfgMpmV3dWLtzrd4V/3XtqUD0P44I/mTgsRreW5jMhSaUnnRGZbpptBw2q4/axbLjw2FarlWtOVgertDGMtccA==";
+        url = "https://registry.npmjs.org/matrix-appservice/-/matrix-appservice-0.10.0.tgz";
+        sha512 = "bxkvPaFXzuuRfqSQgIBbA6M+nKXeRJEeZlJfzjhP0RBBMl62HQTXqNLSVHhLRCdzKbr1OayrbDKL+BnmoghDDA==";
       };
     };
-    "matrix-appservice-bridge-3.1.0" = {
+    "matrix-appservice-bridge-3.2.0" = {
       name = "matrix-appservice-bridge";
       packageName = "matrix-appservice-bridge";
-      version = "3.1.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/matrix-appservice-bridge/-/matrix-appservice-bridge-3.1.0.tgz";
-        sha512 = "mNLWyqLigy5TboZw+EJ38mtsVlJUKa50HEjtyzx0aJLySNvnCgDFFlMahJWedOrZ3ipultnhtaRbtU1ZVsu6yA==";
+        url = "https://registry.npmjs.org/matrix-appservice-bridge/-/matrix-appservice-bridge-3.2.0.tgz";
+        sha512 = "fkVarDN2vLwgr/j2gOAT58AOVK+ualZghOI5oIOCImwut4U7gXBig2sjJ9f+NYjE2ljlWOas4UPSRLsly16EvQ==";
       };
     };
     "matrix-bot-sdk-0.6.0-beta.2" = {
@@ -3021,13 +2877,13 @@ let
         sha512 = "D9aQ2++1bJIzka2uIz22HkaeyT058QGOh96xdxiDOaezyzLY5BN7ehYg+P0xRzDYDFKx9DbqDYCt97IkfahtPw==";
       };
     };
-    "matrix-js-sdk-9.11.0" = {
+    "matrix-js-sdk-12.5.0" = {
       name = "matrix-js-sdk";
       packageName = "matrix-js-sdk";
-      version = "9.11.0";
+      version = "12.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-9.11.0.tgz";
-        sha512 = "wP28ybOxyQ7lbC48QddRORYr8atEwbTqDOsu8H6u9jTTgB2qqczI/bkSoXHtutODuSeLY5x0UuwLcxVCy4yxVQ==";
+        url = "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-12.5.0.tgz";
+        sha512 = "HnEXoEhqpNp9/W9Ep7ZNZAubFlUssFyVpjgKfMOxxg+dYbBk5NWToHmAPQxlRUgrZ/rIMLVyMJROSCIthDbo2A==";
       };
     };
     "media-typer-0.3.0" = {
@@ -3381,13 +3237,13 @@ let
         sha512 = "VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ==";
       };
     };
-    "object-inspect-1.9.0" = {
+    "object-inspect-1.11.0" = {
       name = "object-inspect";
       packageName = "object-inspect";
-      version = "1.9.0";
+      version = "1.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz";
-        sha512 = "i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==";
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz";
+        sha512 = "jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==";
       };
     };
     "on-finished-2.3.0" = {
@@ -3489,13 +3345,13 @@ let
         sha512 = "RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==";
       };
     };
-    "p-retry-4.2.0" = {
+    "p-retry-4.6.1" = {
       name = "p-retry";
       packageName = "p-retry";
-      version = "4.2.0";
+      version = "4.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-retry/-/p-retry-4.2.0.tgz";
-        sha512 = "jPH38/MRh263KKcq0wBNOGFJbm+U6784RilTmHjB/HM9kH9V8WlCpVUcdOmip9cjXOh6MxZ5yk1z2SjDUJfWmA==";
+        url = "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz";
+        sha512 = "e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==";
       };
     };
     "p-timeout-3.2.0" = {
@@ -3606,13 +3462,13 @@ let
         sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
       };
     };
-    "pg-8.6.0" = {
+    "pg-8.7.1" = {
       name = "pg";
       packageName = "pg";
-      version = "8.6.0";
+      version = "8.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg/-/pg-8.6.0.tgz";
-        sha512 = "qNS9u61lqljTDFvmk/N66EeGq3n6Ujzj0FFyNMGQr6XuEv4tgNTXvJQTfJdcvGit5p5/DWPu+wj920hAJFI+QQ==";
+        url = "https://registry.npmjs.org/pg/-/pg-8.7.1.tgz";
+        sha512 = "7bdYcv7V6U3KAtWjpQJJBww0UEsWuh4yQ/EjNf2HeO/NnvKjpvhEIe/A/TleP6wtmSKnUnghs5A9jUoK6iDdkA==";
       };
     };
     "pg-connection-string-2.5.0" = {
@@ -3642,22 +3498,22 @@ let
         sha512 = "1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg==";
       };
     };
-    "pg-pool-3.3.0" = {
+    "pg-pool-3.4.1" = {
       name = "pg-pool";
       packageName = "pg-pool";
-      version = "3.3.0";
+      version = "3.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.3.0.tgz";
-        sha512 = "0O5huCql8/D6PIRFAlmccjphLYWC+JIzvUhSzXSpGaf+tjTZc4nn+Lr7mLXBbFJfvwbP0ywDv73EiaBsxn7zdg==";
+        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.4.1.tgz";
+        sha512 = "TVHxR/gf3MeJRvchgNHxsYsTCHQ+4wm3VIHSS19z8NC0+gioEhq1okDY1sm/TYbfoP6JLFx01s0ShvZ3puP/iQ==";
       };
     };
-    "pg-promise-10.10.2" = {
+    "pg-promise-10.11.1" = {
       name = "pg-promise";
       packageName = "pg-promise";
-      version = "10.10.2";
+      version = "10.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.10.2.tgz";
-        sha512 = "ezc5Jn2DdtYpNoDjo7v9TVQFXBEGR+tnseot8IsZ3/B4XD/CnIjyUPMfizDdbXWNO66hN8p2m8nNrcrJ8uhM/g==";
+        url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.11.1.tgz";
+        sha512 = "HAv32WSKf2m2RqHerW5RmANn/mcXIwWXbg/gOfGQcoS0SE+8iBi3Jj4JmoR4PNzSEozo/y/npy4e6F16psOItw==";
       };
     };
     "pg-protocol-1.5.0" = {
@@ -3795,6 +3651,15 @@ let
         sha512 = "jT9VccZCWrJWXdyEtQddCDszYsiuWj5T0ekrPszi/WEegj3IZy6Mm09iOOVM86A4IKMWq8hZkT2dD9MaSe+sng==";
       };
     };
+    "prom-client-14.0.1" = {
+      name = "prom-client";
+      packageName = "prom-client";
+      version = "14.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prom-client/-/prom-client-14.0.1.tgz";
+        sha512 = "HxTArb6fkOntQHoRGvv4qd/BkorjliiuO2uSWC2KC17MUTKYttWdDoXX/vxOhQdkoECEM9BBH0pj2l8G8kev6w==";
+      };
+    };
     "proxy-addr-2.0.6" = {
       name = "proxy-addr";
       packageName = "proxy-addr";
@@ -3948,22 +3813,22 @@ let
         sha512 = "hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==";
       };
     };
-    "regenerator-runtime-0.13.7" = {
+    "regenerator-runtime-0.13.9" = {
       name = "regenerator-runtime";
       packageName = "regenerator-runtime";
-      version = "0.13.7";
+      version = "0.13.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz";
-        sha512 = "a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==";
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz";
+        sha512 = "p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==";
       };
     };
-    "regexpp-3.1.0" = {
+    "regexpp-3.2.0" = {
       name = "regexpp";
       packageName = "regexpp";
-      version = "3.1.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz";
-        sha512 = "ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==";
+        url = "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz";
+        sha512 = "pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==";
       };
     };
     "regextras-0.8.0" = {
@@ -4011,15 +3876,6 @@ let
         sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
       };
     };
-    "require-from-string-2.0.2" = {
-      name = "require-from-string";
-      packageName = "require-from-string";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz";
-        sha512 = "Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==";
-      };
-    };
     "resolve-from-4.0.0" = {
       name = "resolve-from";
       packageName = "resolve-from";
@@ -4029,13 +3885,13 @@ let
         sha512 = "pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==";
       };
     };
-    "retry-0.12.0" = {
+    "retry-0.13.1" = {
       name = "retry";
       packageName = "retry";
-      version = "0.12.0";
+      version = "0.13.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz";
-        sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
+        url = "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz";
+        sha512 = "XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==";
       };
     };
     "reusify-1.0.4" = {
@@ -4110,15 +3966,6 @@ let
         sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
       };
     };
-    "semver-7.3.4" = {
-      name = "semver";
-      packageName = "semver";
-      version = "7.3.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz";
-        sha512 = "tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==";
-      };
-    };
     "semver-7.3.5" = {
       name = "semver";
       packageName = "semver";
@@ -4245,15 +4092,6 @@ let
         sha512 = "g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==";
       };
     };
-    "slice-ansi-4.0.0" = {
-      name = "slice-ansi";
-      packageName = "slice-ansi";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz";
-        sha512 = "qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==";
-      };
-    };
     "source-map-0.6.1" = {
       name = "source-map";
       packageName = "source-map";
@@ -4326,15 +4164,6 @@ let
         sha512 = "9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==";
       };
     };
-    "sprintf-js-1.0.3" = {
-      name = "sprintf-js";
-      packageName = "sprintf-js";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz";
-        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
-      };
-    };
     "sshpk-1.16.1" = {
       name = "sshpk";
       packageName = "sshpk";
@@ -4443,13 +4272,13 @@ let
         sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
       };
     };
-    "strip-ansi-6.0.0" = {
+    "strip-ansi-6.0.1" = {
       name = "strip-ansi";
       packageName = "strip-ansi";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz";
-        sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz";
+        sha512 = "Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==";
       };
     };
     "strip-json-comments-2.0.1" = {
@@ -4470,15 +4299,6 @@ let
         sha512 = "6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==";
       };
     };
-    "supports-color-5.5.0" = {
-      name = "supports-color";
-      packageName = "supports-color";
-      version = "5.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
-        sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
-      };
-    };
     "supports-color-7.2.0" = {
       name = "supports-color";
       packageName = "supports-color";
@@ -4497,15 +4317,6 @@ let
         sha512 = "MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==";
       };
     };
-    "table-6.2.0" = {
-      name = "table";
-      packageName = "table";
-      version = "6.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/table/-/table-6.2.0.tgz";
-        sha512 = "WMBBLuauiLXJjth35K4vOnd/xkaZ/dxEcyoZ+YhxSwfxFqvh+av06+oRqIwbR14m1lENB1egSWOFv/bNEt2D8A==";
-      };
-    };
     "tar-6.1.11" = {
       name = "tar";
       packageName = "tar";
@@ -4960,35 +4771,31 @@ let
   args = {
     name = "matrix-appservice-slack";
     packageName = "matrix-appservice-slack";
-    version = "1.9.0";
+    version = "1.10.0";
     src = ./.;
     dependencies = [
       sources."@alloc/quick-lru-5.2.0"
-      sources."@babel/code-frame-7.12.11"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      (sources."@babel/highlight-7.13.10" // {
+      sources."@babel/runtime-7.16.3"
+      sources."@dabh/diagnostics-2.0.2"
+      (sources."@es-joy/jsdoccomment-0.12.0" // {
         dependencies = [
-          sources."chalk-2.4.2"
-          sources."escape-string-regexp-1.0.5"
+          sources."comment-parser-1.2.4"
         ];
       })
-      sources."@babel/runtime-7.13.10"
-      sources."@dabh/diagnostics-2.0.2"
-      sources."@es-joy/jsdoccomment-0.9.0-alpha.1"
-      (sources."@eslint/eslintrc-0.4.3" // {
+      (sources."@eslint/eslintrc-1.0.5" // {
         dependencies = [
-          sources."debug-4.3.2"
-          sources."js-yaml-3.14.1"
+          sources."debug-4.3.3"
+          sources."ignore-4.0.6"
           sources."ms-2.1.2"
         ];
       })
-      (sources."@humanwhocodes/config-array-0.5.0" // {
+      (sources."@humanwhocodes/config-array-0.9.2" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
-      sources."@humanwhocodes/object-schema-1.2.0"
+      sources."@humanwhocodes/object-schema-1.2.1"
       sources."@matrix-org/olm-https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.4.tgz"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
@@ -5000,7 +4807,11 @@ let
         ];
       })
       sources."@slack/types-1.10.0"
-      sources."@slack/web-api-5.15.0"
+      (sources."@slack/web-api-5.15.0" // {
+        dependencies = [
+          sources."axios-0.21.4"
+        ];
+      })
       sources."@tsconfig/node10-1.0.8"
       sources."@tsconfig/node12-1.0.9"
       sources."@tsconfig/node14-1.0.1"
@@ -5012,7 +4823,7 @@ let
       sources."@types/express-serve-static-core-4.17.19"
       sources."@types/is-stream-1.1.0"
       sources."@types/js-yaml-4.0.2"
-      sources."@types/json-schema-7.0.8"
+      sources."@types/json-schema-7.0.9"
       sources."@types/mime-1.3.2"
       sources."@types/mocha-8.2.3"
       sources."@types/nedb-1.8.12"
@@ -5029,46 +4840,39 @@ let
       sources."@types/ws-7.2.6"
       sources."@types/yargs-17.0.3"
       sources."@types/yargs-parser-20.2.1"
-      (sources."@typescript-eslint/eslint-plugin-4.28.4" // {
+      (sources."@typescript-eslint/eslint-plugin-5.6.0" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
-          sources."semver-7.3.5"
         ];
       })
-      (sources."@typescript-eslint/experimental-utils-4.28.4" // {
+      sources."@typescript-eslint/experimental-utils-5.6.0"
+      (sources."@typescript-eslint/parser-5.6.0" // {
         dependencies = [
-          sources."eslint-utils-3.0.0"
-        ];
-      })
-      (sources."@typescript-eslint/parser-4.28.4" // {
-        dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
-      sources."@typescript-eslint/scope-manager-4.28.4"
-      sources."@typescript-eslint/types-4.28.4"
-      (sources."@typescript-eslint/typescript-estree-4.28.4" // {
+      sources."@typescript-eslint/scope-manager-5.6.0"
+      sources."@typescript-eslint/types-5.6.0"
+      (sources."@typescript-eslint/typescript-estree-5.6.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
-          sources."semver-7.3.5"
         ];
       })
-      sources."@typescript-eslint/visitor-keys-4.28.4"
+      sources."@typescript-eslint/visitor-keys-5.6.0"
       sources."@ungap/promise-all-settled-1.1.2"
       sources."Slackdown-git+https://Half-Shot@github.com/half-shot/slackdown.git#efd8934a3d9c3bf0064c0b217c5cf6b62ee697e4"
       sources."a-sync-waterfall-1.0.1"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
-      sources."acorn-7.4.1"
+      sources."acorn-8.6.0"
       sources."acorn-jsx-5.3.2"
       sources."ajv-6.12.6"
       sources."another-json-0.2.0"
       sources."ansi-colors-4.1.1"
-      sources."ansi-regex-5.0.0"
-      sources."ansi-styles-3.2.1"
+      sources."ansi-regex-5.0.1"
       sources."anymatch-3.1.2"
       sources."aproba-1.2.0"
       (sources."are-we-there-yet-1.1.7" // {
@@ -5078,7 +4882,6 @@ let
         ];
       })
       sources."arg-4.1.3"
-      sources."argparse-1.0.10"
       sources."array-flatten-1.1.1"
       sources."array-union-2.1.0"
       sources."array-uniq-1.0.2"
@@ -5087,15 +4890,14 @@ let
       sources."assert-options-0.7.0"
       sources."assert-plus-1.0.0"
       sources."assertion-error-1.1.0"
-      sources."astral-regex-2.0.0"
       sources."async-0.2.10"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."axios-0.21.4"
+      sources."axios-0.24.0"
       sources."balanced-match-1.0.2"
-      sources."base-x-3.0.8"
+      sources."base-x-3.0.9"
       sources."base64-js-1.5.1"
       sources."basic-auth-2.0.1"
       sources."bcrypt-pbkdf-1.0.2"
@@ -5142,13 +4944,13 @@ let
       sources."color-3.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.5.3"
+      sources."color-string-1.6.0"
       sources."colorette-1.4.0"
       sources."colors-1.3.3"
       sources."colorspace-1.1.2"
       sources."combined-stream-1.0.8"
       sources."commander-5.1.0"
-      sources."comment-parser-1.1.6-beta.0"
+      sources."comment-parser-1.3.0"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
       sources."content-disposition-0.5.3"
@@ -5197,34 +4999,31 @@ let
       sources."escalade-3.1.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-4.0.0"
-      (sources."eslint-7.31.0" // {
+      (sources."eslint-8.4.1" // {
         dependencies = [
-          sources."debug-4.3.1"
-          sources."js-yaml-3.14.1"
+          sources."debug-4.3.3"
+          sources."eslint-scope-7.1.0"
+          sources."estraverse-5.3.0"
+          sources."glob-parent-6.0.2"
+          sources."ignore-4.0.6"
           sources."ms-2.1.2"
         ];
       })
-      (sources."eslint-plugin-jsdoc-35.5.0" // {
+      (sources."eslint-plugin-jsdoc-37.1.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
-          sources."semver-7.3.5"
         ];
       })
       sources."eslint-plugin-prefer-arrow-1.2.3"
       sources."eslint-scope-5.1.1"
-      (sources."eslint-utils-2.1.0" // {
+      (sources."eslint-utils-3.0.0" // {
         dependencies = [
-          sources."eslint-visitor-keys-1.3.0"
+          sources."eslint-visitor-keys-2.1.0"
         ];
       })
-      sources."eslint-visitor-keys-2.0.0"
-      (sources."espree-7.3.1" // {
-        dependencies = [
-          sources."eslint-visitor-keys-1.3.0"
-        ];
-      })
-      sources."esprima-4.0.1"
+      sources."eslint-visitor-keys-3.1.0"
+      sources."espree-9.2.0"
       (sources."esquery-1.4.0" // {
         dependencies = [
           sources."estraverse-5.2.0"
@@ -5232,7 +5031,7 @@ let
       })
       (sources."esrecurse-4.3.0" // {
         dependencies = [
-          sources."estraverse-5.2.0"
+          sources."estraverse-5.3.0"
         ];
       })
       sources."estraverse-4.3.0"
@@ -5248,7 +5047,7 @@ let
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."fast-safe-stringify-2.0.6"
-      sources."fastq-1.11.1"
+      sources."fastq-1.13.0"
       sources."file-entry-cache-6.0.1"
       sources."file-stream-rotator-0.5.7"
       sources."file-uri-to-path-1.0.0"
@@ -5289,22 +5088,13 @@ let
       sources."glob-7.1.7"
       sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.4.1"
-      (sources."globals-13.10.0" // {
-        dependencies = [
-          sources."type-fest-0.20.2"
-        ];
-      })
-      (sources."globby-11.0.4" // {
-        dependencies = [
-          sources."ignore-5.1.8"
-        ];
-      })
+      sources."globals-13.12.0"
+      sources."globby-11.0.4"
       sources."graceful-fs-4.2.8"
       sources."growl-1.10.5"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
-      sources."has-flag-3.0.0"
       sources."has-symbols-1.0.2"
       sources."has-unicode-2.0.1"
       sources."hash.js-1.1.7"
@@ -5316,7 +5106,7 @@ let
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
-      sources."ignore-4.0.6"
+      sources."ignore-5.1.9"
       sources."immediate-3.0.6"
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
@@ -5326,38 +5116,34 @@ let
       sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.3.2"
       sources."is-binary-path-2.1.0"
-      sources."is-boolean-object-1.1.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
-      sources."is-glob-4.0.1"
+      sources."is-glob-4.0.3"
       sources."is-my-ip-valid-1.0.0"
-      sources."is-my-json-valid-2.20.5"
+      sources."is-my-json-valid-2.20.6"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.4"
       sources."is-plain-obj-2.1.0"
       sources."is-plain-object-5.0.0"
       sources."is-promise-2.2.2"
       sources."is-property-1.0.2"
       sources."is-stream-1.1.0"
-      sources."is-string-1.0.5"
       sources."is-typedarray-1.0.0"
       sources."is-unicode-supported-0.1.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
-      sources."js-tokens-4.0.0"
       (sources."js-yaml-4.1.0" // {
         dependencies = [
           sources."argparse-2.0.1"
         ];
       })
       sources."jsbn-0.1.1"
-      sources."jsdoc-type-pratt-parser-1.0.4"
+      sources."jsdoc-type-pratt-parser-2.0.0"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsonpointer-4.1.0"
+      sources."jsonpointer-5.0.0"
       sources."jsprim-1.4.1"
       sources."klona-2.0.4"
       sources."kuler-2.0.0"
@@ -5366,11 +5152,8 @@ let
       sources."localforage-1.7.3"
       sources."locate-path-6.0.0"
       sources."lodash-4.17.21"
-      sources."lodash.clonedeep-4.5.0"
-      sources."lodash.flatten-4.4.0"
       sources."lodash.merge-4.6.2"
       sources."lodash.toarray-4.4.0"
-      sources."lodash.truncate-4.4.2"
       sources."log-symbols-4.1.0"
       (sources."logform-2.2.0" // {
         dependencies = [
@@ -5378,17 +5161,14 @@ let
           sources."ms-2.1.2"
         ];
       })
-      sources."loglevel-1.7.1"
+      sources."loglevel-1.8.0"
       sources."lowdb-1.0.0"
       sources."lru-cache-6.0.0"
       sources."make-error-1.3.6"
-      (sources."matrix-appservice-bridge-3.1.0" // {
+      sources."matrix-appservice-0.10.0"
+      (sources."matrix-appservice-bridge-3.2.0" // {
         dependencies = [
-          (sources."matrix-appservice-0.8.0" // {
-            dependencies = [
-              sources."js-yaml-3.14.1"
-            ];
-          })
+          sources."prom-client-14.0.1"
         ];
       })
       (sources."matrix-bot-sdk-0.6.0-beta.2" // {
@@ -5396,7 +5176,7 @@ let
           sources."mkdirp-1.0.4"
         ];
       })
-      (sources."matrix-js-sdk-9.11.0" // {
+      (sources."matrix-js-sdk-12.5.0" // {
         dependencies = [
           sources."qs-6.10.1"
         ];
@@ -5457,7 +5237,7 @@ let
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
       sources."object-hash-2.1.1"
-      sources."object-inspect-1.9.0"
+      sources."object-inspect-1.11.0"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
@@ -5472,7 +5252,7 @@ let
           sources."eventemitter3-4.0.7"
         ];
       })
-      sources."p-retry-4.2.0"
+      sources."p-retry-4.6.1"
       sources."p-timeout-3.2.0"
       sources."packet-reader-1.0.0"
       sources."parent-module-1.0.1"
@@ -5485,12 +5265,12 @@ let
       sources."path-type-4.0.0"
       sources."pathval-1.1.1"
       sources."performance-now-2.1.0"
-      sources."pg-8.6.0"
+      sources."pg-8.7.1"
       sources."pg-connection-string-2.5.0"
       sources."pg-int8-1.0.1"
       sources."pg-minify-1.6.2"
-      sources."pg-pool-3.3.0"
-      sources."pg-promise-10.10.2"
+      sources."pg-pool-3.4.1"
+      sources."pg-promise-10.11.1"
       sources."pg-protocol-1.5.0"
       sources."pg-types-2.2.0"
       sources."pgpass-1.0.4"
@@ -5523,8 +5303,8 @@ let
       })
       sources."readable-stream-3.6.0"
       sources."readdirp-3.6.0"
-      sources."regenerator-runtime-0.13.7"
-      sources."regexpp-3.1.0"
+      sources."regenerator-runtime-0.13.9"
+      sources."regexpp-3.2.0"
       sources."regextras-0.8.0"
       (sources."request-2.88.2" // {
         dependencies = [
@@ -5536,9 +5316,8 @@ let
       sources."request-promise-4.2.6"
       sources."request-promise-core-1.1.4"
       sources."require-directory-2.1.1"
-      sources."require-from-string-2.0.2"
       sources."resolve-from-4.0.0"
-      sources."retry-0.12.0"
+      sources."retry-0.13.1"
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
       sources."run-parallel-1.2.0"
@@ -5550,7 +5329,7 @@ let
           sources."htmlparser2-6.1.0"
         ];
       })
-      sources."semver-7.3.4"
+      sources."semver-7.3.5"
       (sources."send-0.17.1" // {
         dependencies = [
           sources."ms-2.1.1"
@@ -5572,13 +5351,6 @@ let
       sources."simple-get-3.1.0"
       sources."simple-swizzle-0.2.2"
       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."source-map-0.6.1"
       sources."source-map-js-0.6.2"
       sources."source-map-support-0.5.19"
@@ -5587,7 +5359,6 @@ let
       sources."spdx-license-ids-3.0.7"
       sources."spex-3.2.0"
       sources."split2-3.2.2"
-      sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
       sources."stack-trace-0.0.10"
       sources."statuses-1.5.0"
@@ -5599,15 +5370,8 @@ let
           sources."safe-buffer-5.2.1"
         ];
       })
-      sources."strip-ansi-6.0.0"
+      sources."strip-ansi-6.0.1"
       sources."strip-json-comments-3.1.1"
-      sources."supports-color-5.5.0"
-      (sources."table-6.2.0" // {
-        dependencies = [
-          sources."ajv-8.1.0"
-          sources."json-schema-traverse-1.0.0"
-        ];
-      })
       (sources."tar-6.1.11" // {
         dependencies = [
           sources."mkdirp-1.0.4"
@@ -5633,6 +5397,7 @@ let
       sources."tweetnacl-0.14.5"
       sources."type-check-0.4.0"
       sources."type-detect-4.0.8"
+      sources."type-fest-0.20.2"
       sources."type-is-1.6.18"
       sources."typescript-4.4.3"
       sources."underscore-1.4.4"
diff --git a/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix b/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix
index b7c291d6cc44c..88ec52f45363a 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.1.20";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "mjolnir";
     rev = "v${version}";
-    sha256 = "06779z08qni1kgr292gpkxd2xvyg4apfnbhynli9qjp2vaf03wy9";
+    sha256 = "0fvdzn5l1a6bhr1qzgs30a3kh6nj0byqichnl149sjgr0v4lpkz1";
   };
 
   sourceRoot = "./source/synapse_antispam";
diff --git a/pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state.nix b/pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state.nix
index c81058b47b0f7..3734d7c602da2 100644
--- a/pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state.nix
+++ b/pkgs/servers/matrix-synapse/tools/rust-synapse-compress-state.nix
@@ -1,17 +1,25 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ lib, rustPlatform, python3, fetchFromGitHub, pkg-config, openssl }:
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-synapse-compress-state";
-  version = "0.1.0";
+  version = "0.1.2";
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = pname;
     rev = "v${version}";
-    sha256 = "15jvkpbq6pgdc91wnni8fj435yqlwqgx3bb0vqjgsdyxs5lzalfh";
+    sha256 = "sha256-uL7uoJPvZoTbrmEFY7jiBphvjWSRpH9pyk3x7s3Yvrs=";
   };
 
-  cargoSha256 = "173nylp9xj88cm42yggj41iqvgb25s3awhf1dqssy8f1zyw2cf3d";
+  cargoSha256 = "sha256-3w5RyVrpCnetXnxnzgVl94kUZa+1i9bU2O8vp7sb3lY=";
+
+  cargoBuildFlags = [
+    "--all"
+  ];
+
+  nativeBuildInputs = [ python3 pkg-config ];
+
+  buildInputs = [ openssl ];
 
   meta = with lib; {
     description = "A tool to compress some state in a Synapse instance's database";
diff --git a/pkgs/servers/matrix-synapse/tools/synadm.nix b/pkgs/servers/matrix-synapse/tools/synadm.nix
index 520f5e5a3742b..68099e50b139d 100644
--- a/pkgs/servers/matrix-synapse/tools/synadm.nix
+++ b/pkgs/servers/matrix-synapse/tools/synadm.nix
@@ -4,12 +4,12 @@
 
 with python3Packages; buildPythonApplication rec {
   pname = "synadm";
-  version = "0.31";
+  version = "0.32";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1098a5248a1e2de53ced3c699b3b78ced3327c5f4e0ff092a95ef4940e4f9c6e";
+    sha256 = "e3fc0db4920d36092a00080fe5b6dac867a6d19f630f69822c8544568f5885e2";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/matterbridge/default.nix b/pkgs/servers/matterbridge/default.nix
index 575069cce82ed..d0fde791291ce 100644
--- a/pkgs/servers/matterbridge/default.nix
+++ b/pkgs/servers/matterbridge/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "matterbridge";
-  version = "1.22.3";
+  version = "1.23.2";
 
   src = fetchFromGitHub {
     owner = "42wim";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-YBIDNyjS8Si7A2Bciz5M8jY3JrgKOmlDPT0m5QM/9+Y=";
+    sha256 = "03fxq8dxkd5qiiw4zfsacdk2skg3apb4aw7k3wq0fv4n65hk25y3";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/servers/mattermost/default.nix b/pkgs/servers/mattermost/default.nix
index 4bf4a41234c8c..889eff17a7335 100644
--- a/pkgs/servers/mattermost/default.nix
+++ b/pkgs/servers/mattermost/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, fetchFromGitHub, buildGoModule, buildEnv }:
 
 let
-  version = "5.37.2";
+  version = "5.37.5";
 
   mattermost-server = buildGoModule rec {
     pname = "mattermost-server";
@@ -11,7 +11,7 @@ let
       owner = "mattermost";
       repo = pname;
       rev = "v${version}";
-      sha256 = "sha256-kO5wSj/ApPhS2k9a9VjS3Qk55azNZeiFmevAxSkdGe0=";
+      sha256 = "sha256-ddK7gxWl1arCtW2vqmon28AAeyZQPYlbGj3QtOlqtiU=";
     };
 
     vendorSha256 = null;
@@ -29,7 +29,7 @@ let
 
     src = fetchurl {
       url = "https://releases.mattermost.com/${version}/mattermost-${version}-linux-amd64.tar.gz";
-      sha256 = "sha256-BzQVkOPo/f6O2ncQ0taS3cZkglOL+D+zBcfNYrpMgTM=";
+      sha256 = "sha256-G6L8Ct6PtARg2LKxcoFyg9vrDJXIKGByxovquMc6p00=";
     };
 
     installPhase = ''
diff --git a/pkgs/servers/mattermost/matterircd.nix b/pkgs/servers/mattermost/matterircd.nix
index fa10d140e4b6a..07c0b30d737a7 100644
--- a/pkgs/servers/mattermost/matterircd.nix
+++ b/pkgs/servers/mattermost/matterircd.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "matterircd";
-  version = "0.24.2";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "42wim";
     repo = "matterircd";
     rev = "v${version}";
-    sha256 = "sha256-SatnrRKYCngBZJwRNMad9Vt2xd7FktH79t3TB83cwhg=";
+    sha256 = "sha256-AuY6tAZ1WlUkiKcbDcXBDh2OdKwWllx2xJxPCbqQguM=";
   };
 
   goPackagePath = "github.com/42wim/matterircd";
diff --git a/pkgs/servers/mautrix-telegram/0001-Re-add-entrypoint.patch b/pkgs/servers/mautrix-telegram/0001-Re-add-entrypoint.patch
index 448e7017a6c3d..a1a732bbbeab3 100644
--- a/pkgs/servers/mautrix-telegram/0001-Re-add-entrypoint.patch
+++ b/pkgs/servers/mautrix-telegram/0001-Re-add-entrypoint.patch
@@ -8,22 +8,20 @@ Subject: [PATCH 1/2] Re-add entrypoint
  1 file changed, 6 insertions(+)
 
 diff --git a/setup.py b/setup.py
-index 068c351..95dbf89 100644
+index ea001e5..e1ca536 100644
 --- a/setup.py
 +++ b/setup.py
-@@ -51,6 +51,12 @@ setuptools.setup(
+@@ -54,6 +54,12 @@ setuptools.setup(
      extras_require=extras_require,
-     python_requires="~=3.6",
- 
+     python_requires="~=3.7",
+
 +    entry_points={
 +        'console_scripts': [
 +            'mautrix-telegram=mautrix_telegram.__main__:main'
 +        ]
 +    },
 +
-     setup_requires=["pytest-runner"],
-     tests_require=["pytest", "pytest-asyncio", "pytest-mock"],
- 
--- 
-2.28.0
+     classifiers=[
+         "Development Status :: 4 - Beta",
+         "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)",
 
diff --git a/pkgs/servers/mautrix-telegram/default.nix b/pkgs/servers/mautrix-telegram/default.nix
index 33b9d1d400dbf..bf5977f825275 100644
--- a/pkgs/servers/mautrix-telegram/default.nix
+++ b/pkgs/servers/mautrix-telegram/default.nix
@@ -5,20 +5,12 @@
 let
   python = python3.override {
     packageOverrides = self: super: {
-      sqlalchemy = super.sqlalchemy.overridePythonAttrs (oldAttrs: rec {
-        version = "1.3.24";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "ebbb777cbf9312359b897bf81ba00dae0f5cb69fba2a18265dcc18a6f5ef7519";
-        };
-      });
-
       tulir-telethon = self.telethon.overridePythonAttrs (oldAttrs: rec {
-        version = "1.24.0a2";
+        version = "1.25.0a1";
         pname = "tulir-telethon";
         src = oldAttrs.src.override {
           inherit pname version;
-          sha256 = "sha256-Qbx164FwC8nhesoY2fkaKvErN8g0Ph8vGcx+Cc1AqRg=";
+          sha256 = "sha256-TFZRmhCrQ9IccGFcYxwdbD2ReSCWZ2n33S1ank1Bn1k=";
         };
       });
     };
@@ -33,19 +25,18 @@ let
 
 in python.pkgs.buildPythonPackage rec {
   pname = "mautrix-telegram";
-  version = "0.10.2";
+  version = "0.11.0";
   disabled = python.pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "mautrix";
     repo = "telegram";
     rev = "v${version}";
-    sha256 = "sha256-BYsGLyxhdjBVmnZXLC5ZjwDlWcHdUGp+DsNIOXA1/Tc=";
+    sha256 = "sha256-s0UCl0FJWO53hvHJhpeSQVGCBKEH7COFLXFCFitpDjw=";
   };
 
-  patches = [ ./0001-Re-add-entrypoint.patch ./0002-Don-t-depend-on-pytest-runner.patch ];
+  patches = [ ./0001-Re-add-entrypoint.patch ];
   postPatch = ''
-    sed -i -e '/alembic>/d' requirements.txt
     substituteInPlace requirements.txt \
       --replace "telethon>=1.22,<1.23" "telethon"
   '';
@@ -72,18 +63,6 @@ in python.pkgs.buildPythonPackage rec {
     unpaddedbase64
   ]) ++ dbDrivers;
 
-  # `alembic` (a database migration tool) is only needed for the initial setup,
-  # and not needed during the actual runtime. However `alembic` requires `mautrix-telegram`
-  # in its environment to create a database schema from all models.
-  #
-  # Hence we need to patch away `alembic` from `mautrix-telegram` and create an `alembic`
-  # which has `mautrix-telegram` in its environment.
-  passthru.alembic = python.pkgs.alembic.overrideAttrs (old: {
-    propagatedBuildInputs = old.propagatedBuildInputs ++ dbDrivers ++ [
-      mautrix-telegram
-    ];
-  });
-
   # Tests are broken and throw the following for every test:
   #   TypeError: 'Mock' object is not subscriptable
   #
diff --git a/pkgs/servers/mautrix-whatsapp/default.nix b/pkgs/servers/mautrix-whatsapp/default.nix
index 5a84b87900120..42f7f5938fd3b 100644
--- a/pkgs/servers/mautrix-whatsapp/default.nix
+++ b/pkgs/servers/mautrix-whatsapp/default.nix
@@ -2,18 +2,18 @@
 
 buildGo117Module rec {
   pname = "mautrix-whatsapp";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "mautrix";
     repo = "whatsapp";
     rev = "v${version}";
-    sha256 = "sha256-gCbZGlZDwHw+OAlTx3rHlbd4Ntw+RaCEDTiP/1q0oJs=";
+    sha256 = "sha256-W+5DtCp7P/0azfusv+Nt3G9VcWKPUxVJmNwSfPjxjbw=";
   };
 
   buildInputs = [ olm ];
 
-  vendorSha256 = "sha256-4KDLL9FY3DrkGBDlu6G8Fp7XJfXjwLTELspyW+FBGfo=";
+  vendorSha256 = "sha256-Fr7yVTl8PIdr+SxXhUKG9DS18762HqL9ap6sUM3ziCQ=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/mbtileserver/default.nix b/pkgs/servers/mbtileserver/default.nix
index 0168a98ca73e5..59adcde1a6916 100644
--- a/pkgs/servers/mbtileserver/default.nix
+++ b/pkgs/servers/mbtileserver/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "mbtileserver";
-  version = "0.7.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "consbio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-QdirExVv7p7Mnhp8EGdTVRlmEiYpzoXVQbtO8aS9Kas=";
+    sha256 = "sha256-C6Gz+RBUrjnfJWo4Ou+s/JYJ8iVP9FMYJ/cxJjcVsXk=";
   };
 
-  vendorSha256 = "sha256-mUUxUZn8out6WNvKJKHoz+R44RDB0oWJb+57w72+E5w=";
+  vendorSha256 = "sha256-36tUTZud0hxH9oZlnKxeK/xzoEzfw3xFMnd/r0srw6U=";
 
   meta = with lib; {
     description = "A simple Go-based server for map tiles stored in mbtiles format";
diff --git a/pkgs/servers/mediatomb/default.nix b/pkgs/servers/mediatomb/default.nix
index 6294f9df2bd3c..aa1304bf89227 100644
--- a/pkgs/servers/mediatomb/default.nix
+++ b/pkgs/servers/mediatomb/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     repositories.git = "git://mediatomb.git.sourceforge.net/gitroot/mediatomb/mediatomb";
     description = "UPnP MediaServer with a web user interface";
     license = licenses.gpl2;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/memcached/default.nix b/pkgs/servers/memcached/default.nix
index f684883b8f554..ca91d4eb12b7d 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.9";
+  version = "1.6.12";
   pname = "memcached";
 
   src = fetchurl {
     url = "https://memcached.org/files/${pname}-${version}.tar.gz";
-    sha256 = "1lcjy1b9krnb2gk72qd1fvivlfiyfvknfi3wngyvyk9ifzijr9nm";
+    sha256 = "sha256-8pGjX4Lvl1btHZUoee9fS+hw+TK9/LKrYTVmCav4I0Y=";
   };
 
   configureFlags = [
diff --git a/pkgs/servers/metabase/default.nix b/pkgs/servers/metabase/default.nix
index d64279bf7e178..990ef950e6bd3 100644
--- a/pkgs/servers/metabase/default.nix
+++ b/pkgs/servers/metabase/default.nix
@@ -1,12 +1,12 @@
-{ lib, stdenv, fetchurl, makeWrapper, jdk11 }:
+{ lib, stdenv, fetchurl, makeWrapper, jdk11, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "metabase";
-  version = "0.38.0";
+  version = "0.41.5";
 
   src = fetchurl {
     url = "https://downloads.metabase.com/v${version}/metabase.jar";
-    sha256 = "170fj2cc7drh6c1dgl60f9n79vfrsw2v57lmds677naxnq254jhp";
+    sha256 = "sha256-DH1xy1cTVDNNXyOIaayGHzOi4g0ZukNFFbZjufY+XLk=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -24,4 +24,7 @@ stdenv.mkDerivation rec {
     platforms   = platforms.all;
     maintainers = with maintainers; [ schneefux thoughtpolice mmahut ];
   };
+  passthru.tests = {
+    inherit (nixosTests) metabase;
+  };
 }
diff --git a/pkgs/servers/meteor/default.nix b/pkgs/servers/meteor/default.nix
index ac870a8d5d15b..fb9221b93964b 100644
--- a/pkgs/servers/meteor/default.nix
+++ b/pkgs/servers/meteor/default.nix
@@ -93,7 +93,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Complete open source platform for building web and mobile apps in pure JavaScript";
-    homepage = "http://www.meteor.com";
+    homepage = "https://www.meteor.com/";
     license = licenses.mit;
     platforms = builtins.attrNames srcs;
     maintainers = with maintainers; [ cstrahan ];
diff --git a/pkgs/servers/miniflux/default.nix b/pkgs/servers/miniflux/default.nix
index a550ba9ae8273..71f3e532da5cc 100644
--- a/pkgs/servers/miniflux/default.nix
+++ b/pkgs/servers/miniflux/default.nix
@@ -2,19 +2,19 @@
 
 let
   pname = "miniflux";
-  version = "2.0.33";
+  version = "2.0.34";
 
 in buildGoModule {
   inherit pname version;
 
   src = fetchFromGitHub {
     owner = pname;
-    repo = pname;
+    repo = "v2";
     rev = version;
-    sha256 = "0vcfpy71gdvd0z20v6d36l3yvmnm4nmfplivw9yjzv8kbnf9mabc";
+    sha256 = "sha256-6fXmi0q6J1XyxEtOuKO8efkwLrfkMiqeKTHZPuoKYAs=";
   };
 
-  vendorSha256 = "1j4jskcply9mxz9bggw1c6368k22rga6f3f6mgs1pklz5v7r7n2j";
+  vendorSha256 = "sha256-P8ukjBrkPZ0n8HtfyEf2pG3DAXl7D10Ib+dmtwI4KqI=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/servers/minio/default.nix b/pkgs/servers/minio/default.nix
index 693d5fc280fce..dcd74748b8656 100644
--- a/pkgs/servers/minio/default.nix
+++ b/pkgs/servers/minio/default.nix
@@ -15,16 +15,16 @@ let
 in
 buildGoModule rec {
   pname = "minio";
-  version = "2021-10-27T16-29-42Z";
+  version = "2021-12-10T23-03-39Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "minio";
     rev = "RELEASE.${version}";
-    sha256 = "sha256-U/1NuWyNX0OUrtysV3ShvbyxiSiYzMFNK3lmAVs6D3Y=";
+    sha256 = "sha256-vu3p6LnmC2o7pX7T/x8SJ+Nr0G2GPIZqqOdPZ836puc=";
   };
 
-  vendorSha256 = "sha256-GLooogUglKxEk7X9UI4VZvj+mJ9LXLZEjFsxCpzm61I=";
+  vendorSha256 = "sha256-QxQPjjfCx0SVYquYVX5DOe8uzM16I2AYve0O2bj4y1k=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/misc/gobgpd/default.nix b/pkgs/servers/misc/gobgpd/default.nix
index c0fdf59989636..dc1b0d6bd6a2b 100644
--- a/pkgs/servers/misc/gobgpd/default.nix
+++ b/pkgs/servers/misc/gobgpd/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gobgpd";
-  version = "2.32.0";
+  version = "2.34.0";
 
   src = fetchFromGitHub {
     owner = "osrg";
     repo = "gobgp";
     rev = "v${version}";
-    sha256 = "sha256-+FVd/I1folRswTPIq09xpTCai4+FVa6TYDsaPE8sYR4=";
+    sha256 = "sha256-xyakq5DXwzONEP6EvDpAuzCrTDWcs+7asDlq9Vf4c1k=";
   };
 
   vendorSha256 = "sha256-+dX/XByFW5/zvfXvyWePAv9X71dJEKaQf6xNXAXoMxw=";
diff --git a/pkgs/servers/monitoring/alertmanager-irc-relay/default.nix b/pkgs/servers/monitoring/alertmanager-irc-relay/default.nix
index 5a2fcc4a89760..674cf2630e564 100644
--- a/pkgs/servers/monitoring/alertmanager-irc-relay/default.nix
+++ b/pkgs/servers/monitoring/alertmanager-irc-relay/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "alertmanager-irc-relay";
-  version = "0.4.2";
+  version = "0.4.3";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "alertmanager-irc-relay";
     rev = "v${version}";
-    sha256 = "sha256-/gZeIJN7xkDe7f+Q7zh16KG6RC+G/9MIPm3KQManVZ0=";
+    sha256 = "sha256-ACOXrIeNDUFUwr50frW/miuW1eq29UvCYac5HCdXfx8=";
   };
 
   vendorSha256 = "sha256-VLG15IXS/fXFMTCJKEqGW6qZ9aOLPhazidVsOywG+w4=";
diff --git a/pkgs/servers/monitoring/do-agent/default.nix b/pkgs/servers/monitoring/do-agent/default.nix
index b3da1a56049b3..05e7654bf5497 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.11.0";
+  version = "3.12.0";
 
   src = fetchFromGitHub {
     owner = "digitalocean";
     repo = "do-agent";
     rev = version;
-    sha256 = "sha256-Up7HBG6h24XIjBRvQYZpuB5lWXYTipQql9loykwwd1k=";
+    sha256 = "sha256-9xbtZeufDhci3yTsxAcPcYtnEhOg9k/K8a44SXXiAY0=";
   };
 
   ldflags = [
diff --git a/pkgs/servers/monitoring/grafana-agent/default.nix b/pkgs/servers/monitoring/grafana-agent/default.nix
index 01bfd6b4c2c9c..4ef0c34e393f8 100644
--- a/pkgs/servers/monitoring/grafana-agent/default.nix
+++ b/pkgs/servers/monitoring/grafana-agent/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "grafana-agent";
-  version = "0.20.0";
+  version = "0.21.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "grafana";
     repo = "agent";
-    sha256 = "sha256-oe5uUG3uQnobH94J3ndI35pnw7zExqtoXJ3Ro9lSrrc=";
+    sha256 = "sha256-s++21feD3L2HuVYFjWhNIOGTjjX+lXwURc4PqbwFnhI=";
   };
 
-  vendorSha256 = "sha256-uQEcoAxodMMSv0vEKtcmXYzZ50YYdywHG3S07UONN84=";
+  vendorSha256 = "sha256-kxLtbElzfimC/ZefUyTlfQiUZo4y0f1riajRm5shVdU=";
 
   patches = [
     # https://github.com/grafana/agent/issues/731
diff --git a/pkgs/servers/monitoring/grafana-image-renderer/default.nix b/pkgs/servers/monitoring/grafana-image-renderer/default.nix
index bf5ca7233a03d..b5ae640306896 100644
--- a/pkgs/servers/monitoring/grafana-image-renderer/default.nix
+++ b/pkgs/servers/monitoring/grafana-image-renderer/default.nix
@@ -10,13 +10,13 @@
 
 mkYarnPackage rec {
   pname = "grafana-image-renderer";
-  version = "3.2.1";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = "grafana-image-renderer";
     rev = "v${version}";
-    sha256 = "sha256-1xHRfEjtxiXXRt6Rpl4j8xxTQ6qXG4/ps885CLc35OQ=";
+    sha256 = "sha256-q4w40Do3e4vMluwAb1YwSGMVHO6QRZr8Fa5I+05uzLI=";
   };
 
   buildPhase = ''
diff --git a/pkgs/servers/monitoring/grafana-image-renderer/package.json b/pkgs/servers/monitoring/grafana-image-renderer/package.json
index 335f641ed26cb..da21f90bc9ebc 100644
--- a/pkgs/servers/monitoring/grafana-image-renderer/package.json
+++ b/pkgs/servers/monitoring/grafana-image-renderer/package.json
@@ -49,7 +49,7 @@
     "eslint-plugin-react-hooks": "^4.2.0",
     "husky": "^4.3.8",
     "lint-staged": "^11.2.0",
-    "pkg": "^5.3.3",
+    "pkg": "^5.4.1",
     "prettier": "2.2.1",
     "tsc-watch": "^4.2.3",
     "typescript": "^4.3.2"
diff --git a/pkgs/servers/monitoring/grafana-image-renderer/yarn.lock b/pkgs/servers/monitoring/grafana-image-renderer/yarn.lock
index 19a7f5edafb04..dae82acb1311c 100644
--- a/pkgs/servers/monitoring/grafana-image-renderer/yarn.lock
+++ b/pkgs/servers/monitoring/grafana-image-renderer/yarn.lock
@@ -1,3848 +1,3848 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@babel/code-frame@7.12.11":
-  version "7.12.11"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
-  integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
-  dependencies:
-    "@babel/highlight" "^7.10.4"
-
-"@babel/code-frame@^7.0.0":
-  version "7.15.8"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.15.8.tgz#45990c47adadb00c03677baa89221f7cc23d2503"
-  integrity sha512-2IAnmn8zbvC/jKYhq5Ki9I+DwjlrtMPUCH/CpHvqI4dNnlwHwsxoIhlc8WcYY5LSYknXQtAlFYuHfqAFCvQ4Wg==
-  dependencies:
-    "@babel/highlight" "^7.14.5"
-
-"@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.14.5":
-  version "7.15.7"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389"
-  integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==
-
-"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5":
-  version "7.14.5"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9"
-  integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==
-  dependencies:
-    "@babel/helper-validator-identifier" "^7.14.5"
-    chalk "^2.0.0"
-    js-tokens "^4.0.0"
-
-"@babel/parser@7.13.13":
-  version "7.13.13"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.13.tgz#42f03862f4aed50461e543270916b47dd501f0df"
-  integrity sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==
-
-"@babel/types@7.13.12":
-  version "7.13.12"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.12.tgz#edbf99208ef48852acdff1c8a681a1e4ade580cd"
-  integrity sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==
-  dependencies:
-    "@babel/helper-validator-identifier" "^7.12.11"
-    lodash "^4.17.19"
-    to-fast-properties "^2.0.0"
-
-"@dabh/diagnostics@^2.0.2":
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.2.tgz#290d08f7b381b8f94607dc8f471a12c675f9db31"
-  integrity sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==
-  dependencies:
-    colorspace "1.1.x"
-    enabled "2.0.x"
-    kuler "^2.0.0"
-
-"@es-joy/jsdoccomment@0.10.8":
-  version "0.10.8"
-  resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.10.8.tgz#b3152887e25246410ed4ea569a55926ec13b2b05"
-  integrity sha512-3P1JiGL4xaR9PoTKUHa2N/LKwa2/eUdRqGwijMWWgBqbFEqJUVpmaOi2TcjcemrsRMgFLBzQCK4ToPhrSVDiFQ==
-  dependencies:
-    comment-parser "1.2.4"
-    esquery "^1.4.0"
-    jsdoc-type-pratt-parser "1.1.1"
-
-"@eslint/eslintrc@^0.4.0", "@eslint/eslintrc@^0.4.3":
-  version "0.4.3"
-  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c"
-  integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==
-  dependencies:
-    ajv "^6.12.4"
-    debug "^4.1.1"
-    espree "^7.3.0"
-    globals "^13.9.0"
-    ignore "^4.0.6"
-    import-fresh "^3.2.1"
-    js-yaml "^3.13.1"
-    minimatch "^3.0.4"
-    strip-json-comments "^3.1.1"
-
-"@grafana/eslint-config@^2.5.0":
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/@grafana/eslint-config/-/eslint-config-2.5.0.tgz#d028898e201f242748a94d5582f0e14a493f5853"
-  integrity sha512-JHckBXfUoGYXT18br2n2nTqo4eX7V51/Ec4Y2I7ALh5XsW6OnO+/1AAPymE2J/4WGt3IocW7vJoNV2GRW1JSQg==
-  dependencies:
-    "@typescript-eslint/eslint-plugin" "4.28.0"
-    "@typescript-eslint/parser" "4.28.0"
-    eslint "7.21.0"
-    eslint-config-prettier "7.2.0"
-    eslint-plugin-jsdoc "31.6.1"
-    eslint-plugin-prettier "3.3.1"
-    eslint-plugin-react "7.22.0"
-    eslint-plugin-react-hooks "4.2.0"
-    prettier "2.2.1"
-    typescript "4.3.4"
-
-"@grpc/grpc-js@^1.0":
-  version "1.3.7"
-  resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.3.7.tgz#58b687aff93b743aafde237fd2ee9a3259d7f2d8"
-  integrity sha512-CKQVuwuSPh40tgOkR7c0ZisxYRiN05PcKPW72mQL5y++qd7CwBRoaJZvU5xfXnCJDFBmS3qZGQ71Frx6Ofo2XA==
-  dependencies:
-    "@types/node" ">=12.12.47"
-
-"@grpc/proto-loader@^0.5.4":
-  version "0.5.6"
-  resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.6.tgz#1dea4b8a6412b05e2d58514d507137b63a52a98d"
-  integrity sha512-DT14xgw3PSzPxwS13auTEwxhMMOoz33DPUKNtmYK/QYbBSpLXJy78FGGs5yVoxVobEqPm4iW9MOIoz0A3bLTRQ==
-  dependencies:
-    lodash.camelcase "^4.3.0"
-    protobufjs "^6.8.6"
-
-"@hapi/boom@^9.1.0":
-  version "9.1.4"
-  resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.4.tgz#1f9dad367c6a7da9f8def24b4a986fc5a7bd9db6"
-  integrity sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==
-  dependencies:
-    "@hapi/hoek" "9.x.x"
-
-"@hapi/hoek@9.x.x":
-  version "9.2.1"
-  resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.1.tgz#9551142a1980503752536b5050fd99f4a7f13b17"
-  integrity sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==
-
-"@humanwhocodes/config-array@^0.5.0":
-  version "0.5.0"
-  resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9"
-  integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==
-  dependencies:
-    "@humanwhocodes/object-schema" "^1.2.0"
-    debug "^4.1.1"
-    minimatch "^3.0.4"
-
-"@humanwhocodes/object-schema@^1.2.0":
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf"
-  integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==
-
-"@nodelib/fs.scandir@2.1.5":
-  version "2.1.5"
-  resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
-  integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
-  dependencies:
-    "@nodelib/fs.stat" "2.0.5"
-    run-parallel "^1.1.9"
-
-"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
-  integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
-
-"@nodelib/fs.walk@^1.2.3":
-  version "1.2.8"
-  resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
-  integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
-  dependencies:
-    "@nodelib/fs.scandir" "2.1.5"
-    fastq "^1.6.0"
-
-"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf"
-  integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78=
-
-"@protobufjs/base64@^1.1.2":
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735"
-  integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==
-
-"@protobufjs/codegen@^2.0.4":
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb"
-  integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==
-
-"@protobufjs/eventemitter@^1.1.0":
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70"
-  integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A=
-
-"@protobufjs/fetch@^1.1.0":
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45"
-  integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=
-  dependencies:
-    "@protobufjs/aspromise" "^1.1.1"
-    "@protobufjs/inquire" "^1.1.0"
-
-"@protobufjs/float@^1.0.2":
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1"
-  integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=
-
-"@protobufjs/inquire@^1.1.0":
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089"
-  integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=
-
-"@protobufjs/path@^1.1.2":
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d"
-  integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=
-
-"@protobufjs/pool@^1.1.0":
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54"
-  integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=
-
-"@protobufjs/utf8@^1.1.0":
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"
-  integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=
-
-"@types/body-parser@*":
-  version "1.19.1"
-  resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.1.tgz#0c0174c42a7d017b818303d4b5d969cb0b75929c"
-  integrity sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==
-  dependencies:
-    "@types/connect" "*"
-    "@types/node" "*"
-
-"@types/connect@*":
-  version "3.4.35"
-  resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1"
-  integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==
-  dependencies:
-    "@types/node" "*"
-
-"@types/express-serve-static-core@^4.17.18":
-  version "4.17.24"
-  resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz#ea41f93bf7e0d59cd5a76665068ed6aab6815c07"
-  integrity sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==
-  dependencies:
-    "@types/node" "*"
-    "@types/qs" "*"
-    "@types/range-parser" "*"
-
-"@types/express@^4.11.1":
-  version "4.17.13"
-  resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034"
-  integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==
-  dependencies:
-    "@types/body-parser" "*"
-    "@types/express-serve-static-core" "^4.17.18"
-    "@types/qs" "*"
-    "@types/serve-static" "*"
-
-"@types/json-schema@^7.0.7":
-  version "7.0.9"
-  resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d"
-  integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==
-
-"@types/long@^4.0.1":
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9"
-  integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==
-
-"@types/mime@^1":
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a"
-  integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==
-
-"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0":
-  version "16.10.3"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.3.tgz#7a8f2838603ea314d1d22bb3171d899e15c57bd5"
-  integrity sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==
-
-"@types/node@^14.14.41":
-  version "14.17.21"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.21.tgz#6359d8cf73481e312a43886fa50afc70ce5592c6"
-  integrity sha512-zv8ukKci1mrILYiQOwGSV4FpkZhyxQtuFWGya2GujWg+zVAeRQ4qbaMmWp9vb9889CFA8JECH7lkwCL6Ygg8kA==
-
-"@types/parse-json@^4.0.0":
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
-  integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
-
-"@types/qs@*":
-  version "6.9.7"
-  resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb"
-  integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==
-
-"@types/range-parser@*":
-  version "1.2.4"
-  resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc"
-  integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==
-
-"@types/serve-static@*":
-  version "1.13.10"
-  resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9"
-  integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==
-  dependencies:
-    "@types/mime" "^1"
-    "@types/node" "*"
-
-"@types/yauzl@^2.9.1":
-  version "2.9.2"
-  resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a"
-  integrity sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==
-  dependencies:
-    "@types/node" "*"
-
-"@typescript-eslint/eslint-plugin@4.28.0":
-  version "4.28.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.0.tgz#1a66f03b264844387beb7dc85e1f1d403bd1803f"
-  integrity sha512-KcF6p3zWhf1f8xO84tuBailV5cN92vhS+VT7UJsPzGBm9VnQqfI9AsiMUFUCYHTYPg1uCCo+HyiDnpDuvkAMfQ==
-  dependencies:
-    "@typescript-eslint/experimental-utils" "4.28.0"
-    "@typescript-eslint/scope-manager" "4.28.0"
-    debug "^4.3.1"
-    functional-red-black-tree "^1.0.1"
-    regexpp "^3.1.0"
-    semver "^7.3.5"
-    tsutils "^3.21.0"
-
-"@typescript-eslint/eslint-plugin@^4.32.0":
-  version "4.33.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276"
-  integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==
-  dependencies:
-    "@typescript-eslint/experimental-utils" "4.33.0"
-    "@typescript-eslint/scope-manager" "4.33.0"
-    debug "^4.3.1"
-    functional-red-black-tree "^1.0.1"
-    ignore "^5.1.8"
-    regexpp "^3.1.0"
-    semver "^7.3.5"
-    tsutils "^3.21.0"
-
-"@typescript-eslint/experimental-utils@4.28.0":
-  version "4.28.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.0.tgz#13167ed991320684bdc23588135ae62115b30ee0"
-  integrity sha512-9XD9s7mt3QWMk82GoyUpc/Ji03vz4T5AYlHF9DcoFNfJ/y3UAclRsfGiE2gLfXtyC+JRA3trR7cR296TEb1oiQ==
-  dependencies:
-    "@types/json-schema" "^7.0.7"
-    "@typescript-eslint/scope-manager" "4.28.0"
-    "@typescript-eslint/types" "4.28.0"
-    "@typescript-eslint/typescript-estree" "4.28.0"
-    eslint-scope "^5.1.1"
-    eslint-utils "^3.0.0"
-
-"@typescript-eslint/experimental-utils@4.33.0":
-  version "4.33.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd"
-  integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==
-  dependencies:
-    "@types/json-schema" "^7.0.7"
-    "@typescript-eslint/scope-manager" "4.33.0"
-    "@typescript-eslint/types" "4.33.0"
-    "@typescript-eslint/typescript-estree" "4.33.0"
-    eslint-scope "^5.1.1"
-    eslint-utils "^3.0.0"
-
-"@typescript-eslint/parser@4.28.0":
-  version "4.28.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.28.0.tgz#2404c16751a28616ef3abab77c8e51d680a12caa"
-  integrity sha512-7x4D22oPY8fDaOCvkuXtYYTQ6mTMmkivwEzS+7iml9F9VkHGbbZ3x4fHRwxAb5KeuSkLqfnYjs46tGx2Nour4A==
-  dependencies:
-    "@typescript-eslint/scope-manager" "4.28.0"
-    "@typescript-eslint/types" "4.28.0"
-    "@typescript-eslint/typescript-estree" "4.28.0"
-    debug "^4.3.1"
-
-"@typescript-eslint/parser@^4.32.0":
-  version "4.33.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899"
-  integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==
-  dependencies:
-    "@typescript-eslint/scope-manager" "4.33.0"
-    "@typescript-eslint/types" "4.33.0"
-    "@typescript-eslint/typescript-estree" "4.33.0"
-    debug "^4.3.1"
-
-"@typescript-eslint/scope-manager@4.28.0":
-  version "4.28.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.28.0.tgz#6a3009d2ab64a30fc8a1e257a1a320067f36a0ce"
-  integrity sha512-eCALCeScs5P/EYjwo6se9bdjtrh8ByWjtHzOkC4Tia6QQWtQr3PHovxh3TdYTuFcurkYI4rmFsRFpucADIkseg==
-  dependencies:
-    "@typescript-eslint/types" "4.28.0"
-    "@typescript-eslint/visitor-keys" "4.28.0"
-
-"@typescript-eslint/scope-manager@4.33.0":
-  version "4.33.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3"
-  integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==
-  dependencies:
-    "@typescript-eslint/types" "4.33.0"
-    "@typescript-eslint/visitor-keys" "4.33.0"
-
-"@typescript-eslint/types@4.28.0":
-  version "4.28.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.0.tgz#a33504e1ce7ac51fc39035f5fe6f15079d4dafb0"
-  integrity sha512-p16xMNKKoiJCVZY5PW/AfILw2xe1LfruTcfAKBj3a+wgNYP5I9ZEKNDOItoRt53p4EiPV6iRSICy8EPanG9ZVA==
-
-"@typescript-eslint/types@4.33.0":
-  version "4.33.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72"
-  integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==
-
-"@typescript-eslint/typescript-estree@4.28.0":
-  version "4.28.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.0.tgz#e66d4e5aa2ede66fec8af434898fe61af10c71cf"
-  integrity sha512-m19UQTRtxMzKAm8QxfKpvh6OwQSXaW1CdZPoCaQuLwAq7VZMNuhJmZR4g5281s2ECt658sldnJfdpSZZaxUGMQ==
-  dependencies:
-    "@typescript-eslint/types" "4.28.0"
-    "@typescript-eslint/visitor-keys" "4.28.0"
-    debug "^4.3.1"
-    globby "^11.0.3"
-    is-glob "^4.0.1"
-    semver "^7.3.5"
-    tsutils "^3.21.0"
-
-"@typescript-eslint/typescript-estree@4.33.0":
-  version "4.33.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609"
-  integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==
-  dependencies:
-    "@typescript-eslint/types" "4.33.0"
-    "@typescript-eslint/visitor-keys" "4.33.0"
-    debug "^4.3.1"
-    globby "^11.0.3"
-    is-glob "^4.0.1"
-    semver "^7.3.5"
-    tsutils "^3.21.0"
-
-"@typescript-eslint/visitor-keys@4.28.0":
-  version "4.28.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.0.tgz#255c67c966ec294104169a6939d96f91c8a89434"
-  integrity sha512-PjJyTWwrlrvM5jazxYF5ZPs/nl0kHDZMVbuIcbpawVXaDPelp3+S9zpOz5RmVUfS/fD5l5+ZXNKnWhNYjPzCvw==
-  dependencies:
-    "@typescript-eslint/types" "4.28.0"
-    eslint-visitor-keys "^2.0.0"
-
-"@typescript-eslint/visitor-keys@4.33.0":
-  version "4.33.0"
-  resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd"
-  integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==
-  dependencies:
-    "@typescript-eslint/types" "4.33.0"
-    eslint-visitor-keys "^2.0.0"
-
-accepts@~1.3.7:
-  version "1.3.7"
-  resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
-  integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
-  dependencies:
-    mime-types "~2.1.24"
-    negotiator "0.6.2"
-
-acorn-jsx@^5.3.1:
-  version "5.3.2"
-  resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
-  integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
-
-acorn@^7.4.0:
-  version "7.4.1"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
-  integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
-
-agent-base@6:
-  version "6.0.2"
-  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
-  integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
-  dependencies:
-    debug "4"
-
-aggregate-error@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
-  integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
-  dependencies:
-    clean-stack "^2.0.0"
-    indent-string "^4.0.0"
-
-ajv@^6.10.0, ajv@^6.12.4:
-  version "6.12.6"
-  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
-  integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
-  dependencies:
-    fast-deep-equal "^3.1.1"
-    fast-json-stable-stringify "^2.0.0"
-    json-schema-traverse "^0.4.1"
-    uri-js "^4.2.2"
-
-ajv@^8.0.1:
-  version "8.6.3"
-  resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764"
-  integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==
-  dependencies:
-    fast-deep-equal "^3.1.1"
-    json-schema-traverse "^1.0.0"
-    require-from-string "^2.0.2"
-    uri-js "^4.2.2"
-
-ansi-colors@^4.1.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
-  integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
-
-ansi-escapes@^4.3.0:
-  version "4.3.2"
-  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
-  integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
-  dependencies:
-    type-fest "^0.21.3"
-
-ansi-regex@^2.0.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
-  integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
-
-ansi-regex@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
-  integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
-
-ansi-regex@^5.0.1:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
-  integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
-
-ansi-styles@^3.2.1:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
-  integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
-  dependencies:
-    color-convert "^1.9.0"
-
-ansi-styles@^4.0.0, ansi-styles@^4.1.0:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
-  integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
-  dependencies:
-    color-convert "^2.0.1"
-
-anymatch@~3.1.2:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
-  integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
-  dependencies:
-    normalize-path "^3.0.0"
-    picomatch "^2.0.4"
-
-aproba@^1.0.3:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
-  integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
-
-are-we-there-yet@~1.1.2:
-  version "1.1.7"
-  resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146"
-  integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==
-  dependencies:
-    delegates "^1.0.0"
-    readable-stream "^2.0.6"
-
-argparse@^1.0.7:
-  version "1.0.10"
-  resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
-  integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
-  dependencies:
-    sprintf-js "~1.0.2"
-
-array-flatten@1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
-  integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
-
-array-includes@^3.1.1, array-includes@^3.1.3:
-  version "3.1.4"
-  resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9"
-  integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==
-  dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.3"
-    es-abstract "^1.19.1"
-    get-intrinsic "^1.1.1"
-    is-string "^1.0.7"
-
-array-union@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
-  integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
-
-array.prototype.flatmap@^1.2.3, array.prototype.flatmap@^1.2.4:
-  version "1.2.5"
-  resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz#908dc82d8a406930fdf38598d51e7411d18d4446"
-  integrity sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==
-  dependencies:
-    call-bind "^1.0.0"
-    define-properties "^1.1.3"
-    es-abstract "^1.19.0"
-
-astral-regex@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
-  integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
-
-async@^3.1.0:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/async/-/async-3.2.1.tgz#d3274ec66d107a47476a4c49136aacdb00665fc8"
-  integrity sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==
-
-at-least-node@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
-  integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
-
-balanced-match@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
-  integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-
-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==
-
-basic-auth@~2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a"
-  integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==
-  dependencies:
-    safe-buffer "5.1.2"
-
-binary-extensions@^2.0.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
-  integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
-
-bintrees@1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.1.tgz#0e655c9b9c2435eaab68bf4027226d2b55a34524"
-  integrity sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=
-
-bl@^4.0.3:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
-  integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
-  dependencies:
-    buffer "^5.5.0"
-    inherits "^2.0.4"
-    readable-stream "^3.4.0"
-
-body-parser@1.19.0:
-  version "1.19.0"
-  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
-  integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
-  dependencies:
-    bytes "3.1.0"
-    content-type "~1.0.4"
-    debug "2.6.9"
-    depd "~1.1.2"
-    http-errors "1.7.2"
-    iconv-lite "0.4.24"
-    on-finished "~2.3.0"
-    qs "6.7.0"
-    raw-body "2.4.0"
-    type-is "~1.6.17"
-
-brace-expansion@^1.1.7:
-  version "1.1.11"
-  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
-  integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
-  dependencies:
-    balanced-match "^1.0.0"
-    concat-map "0.0.1"
-
-braces@^3.0.1, braces@~3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
-  integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
-  dependencies:
-    fill-range "^7.0.1"
-
-buffer-crc32@~0.2.3:
-  version "0.2.13"
-  resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
-  integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
-
-buffer@^5.2.1, buffer@^5.5.0:
-  version "5.7.1"
-  resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
-  integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
-  dependencies:
-    base64-js "^1.3.1"
-    ieee754 "^1.1.13"
-
-bytes@3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
-  integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
-
-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==
-  dependencies:
-    function-bind "^1.1.1"
-    get-intrinsic "^1.0.2"
-
-callsites@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
-  integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
-
-chalk@^2.0.0:
-  version "2.4.2"
-  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
-  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
-  dependencies:
-    ansi-styles "^3.2.1"
-    escape-string-regexp "^1.0.5"
-    supports-color "^5.3.0"
-
-chalk@^4.0.0, chalk@^4.1.0:
-  version "4.1.2"
-  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
-  integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
-  dependencies:
-    ansi-styles "^4.1.0"
-    supports-color "^7.1.0"
-
-chokidar@^3.5.2:
-  version "3.5.2"
-  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75"
-  integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==
-  dependencies:
-    anymatch "~3.1.2"
-    braces "~3.0.2"
-    glob-parent "~5.1.2"
-    is-binary-path "~2.1.0"
-    is-glob "~4.0.1"
-    normalize-path "~3.0.0"
-    readdirp "~3.6.0"
-  optionalDependencies:
-    fsevents "~2.3.2"
-
-chownr@^1.1.1:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
-  integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
-
-ci-info@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
-  integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
-
-clean-stack@^2.0.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
-  integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
-
-cli-cursor@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
-  integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
-  dependencies:
-    restore-cursor "^3.1.0"
-
-cli-truncate@2.1.0, cli-truncate@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
-  integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
-  dependencies:
-    slice-ansi "^3.0.0"
-    string-width "^4.2.0"
-
-cliui@^7.0.2:
-  version "7.0.4"
-  resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
-  integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
-  dependencies:
-    string-width "^4.2.0"
-    strip-ansi "^6.0.0"
-    wrap-ansi "^7.0.0"
-
-code-point-at@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
-  integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
-
-color-convert@^1.9.0, color-convert@^1.9.1:
-  version "1.9.3"
-  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
-  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.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
-  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.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
-  integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
-
-color-name@^1.0.0, color-name@~1.1.4:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
-  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-
-color-string@^1.5.2:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312"
-  integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==
-  dependencies:
-    color-name "^1.0.0"
-    simple-swizzle "^0.2.2"
-
-color@3.0.x:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a"
-  integrity sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==
-  dependencies:
-    color-convert "^1.9.1"
-    color-string "^1.5.2"
-
-colorette@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40"
-  integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==
-
-colors@^1.2.1:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
-  integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
-
-colorspace@1.1.x:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.2.tgz#e0128950d082b86a2168580796a0aa5d6c68d8c5"
-  integrity sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==
-  dependencies:
-    color "3.0.x"
-    text-hex "1.0.x"
-
-commander@^8.2.0:
-  version "8.2.0"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-8.2.0.tgz#37fe2bde301d87d47a53adeff8b5915db1381ca8"
-  integrity sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==
-
-comment-parser@1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.1.2.tgz#e5317d7a2ec22b470dcb54a29b25426c30bf39d8"
-  integrity sha512-AOdq0i8ghZudnYv8RUnHrhTgafUGs61Rdz9jemU5x2lnZwAWyOq7vySo626K59e1fVKH1xSRorJwPVRLSWOoAQ==
-
-comment-parser@1.2.4:
-  version "1.2.4"
-  resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.2.4.tgz#489f3ee55dfd184a6e4bffb31baba284453cb760"
-  integrity sha512-pm0b+qv+CkWNriSTMsfnjChF9kH0kxz55y44Wo5le9qLxMj5xDQAaEd9ZN1ovSuk9CsrncWaFwgpOMg7ClJwkw==
-
-compare-versions@^3.6.0:
-  version "3.6.0"
-  resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62"
-  integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==
-
-concat-map@0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
-  integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-
-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"
-  integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
-
-content-disposition@0.5.3:
-  version "0.5.3"
-  resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
-  integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
-  dependencies:
-    safe-buffer "5.1.2"
-
-content-type@~1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
-  integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
-
-cookie-signature@1.0.6:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
-  integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
-
-cookie@0.4.0:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
-  integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
-
-core-util-is@~1.0.0:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
-  integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
-
-cosmiconfig@^7.0.0, cosmiconfig@^7.0.1:
-  version "7.0.1"
-  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d"
-  integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==
-  dependencies:
-    "@types/parse-json" "^4.0.0"
-    import-fresh "^3.2.1"
-    parse-json "^5.0.0"
-    path-type "^4.0.0"
-    yaml "^1.10.0"
-
-cross-spawn@^7.0.2, cross-spawn@^7.0.3:
-  version "7.0.3"
-  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
-  integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
-  dependencies:
-    path-key "^3.1.0"
-    shebang-command "^2.0.0"
-    which "^2.0.1"
-
-debug@2.6.9:
-  version "2.6.9"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
-  integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
-  dependencies:
-    ms "2.0.0"
-
-debug@4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2:
-  version "4.3.2"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
-  integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
-  dependencies:
-    ms "2.1.2"
-
-debug@4.3.1:
-  version "4.3.1"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
-  integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
-  dependencies:
-    ms "2.1.2"
-
-decompress-response@^4.2.0:
-  version "4.2.1"
-  resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986"
-  integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==
-  dependencies:
-    mimic-response "^2.0.0"
-
-deep-extend@^0.6.0:
-  version "0.6.0"
-  resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
-  integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
-
-deep-is@^0.1.3, deep-is@~0.1.3:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
-  integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
-
-define-properties@^1.1.3:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
-  integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
-  dependencies:
-    object-keys "^1.0.12"
-
-delegates@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
-  integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
-
-depd@~1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
-  integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
-
-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==
-
-destroy@~1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
-  integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
-
-detect-libc@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
-  integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
-
-devtools-protocol@0.0.901419:
-  version "0.0.901419"
-  resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.901419.tgz#79b5459c48fe7e1c5563c02bd72f8fec3e0cebcd"
-  integrity sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==
-
-dir-glob@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
-  integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
-  dependencies:
-    path-type "^4.0.0"
-
-doctrine@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
-  integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
-  dependencies:
-    esutils "^2.0.2"
-
-doctrine@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
-  integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
-  dependencies:
-    esutils "^2.0.2"
-
-duplexer@~0.1.1:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
-  integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
-
-ee-first@1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
-  integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
-
-emoji-regex@^8.0.0:
-  version "8.0.0"
-  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
-  integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
-
-enabled@2.0.x:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2"
-  integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==
-
-encodeurl@~1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
-  integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
-
-end-of-stream@^1.1.0, end-of-stream@^1.4.1:
-  version "1.4.4"
-  resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
-  integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
-  dependencies:
-    once "^1.4.0"
-
-enquirer@^2.3.5, enquirer@^2.3.6:
-  version "2.3.6"
-  resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
-  integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
-  dependencies:
-    ansi-colors "^4.1.1"
-
-error-ex@^1.3.1:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
-  integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
-  dependencies:
-    is-arrayish "^0.2.1"
-
-es-abstract@^1.19.0, es-abstract@^1.19.1:
-  version "1.19.1"
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3"
-  integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==
-  dependencies:
-    call-bind "^1.0.2"
-    es-to-primitive "^1.2.1"
-    function-bind "^1.1.1"
-    get-intrinsic "^1.1.1"
-    get-symbol-description "^1.0.0"
-    has "^1.0.3"
-    has-symbols "^1.0.2"
-    internal-slot "^1.0.3"
-    is-callable "^1.2.4"
-    is-negative-zero "^2.0.1"
-    is-regex "^1.1.4"
-    is-shared-array-buffer "^1.0.1"
-    is-string "^1.0.7"
-    is-weakref "^1.0.1"
-    object-inspect "^1.11.0"
-    object-keys "^1.1.1"
-    object.assign "^4.1.2"
-    string.prototype.trimend "^1.0.4"
-    string.prototype.trimstart "^1.0.4"
-    unbox-primitive "^1.0.1"
-
-es-to-primitive@^1.2.1:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
-  integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
-  dependencies:
-    is-callable "^1.1.4"
-    is-date-object "^1.0.1"
-    is-symbol "^1.0.2"
-
-escalade@^3.1.1:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
-  integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
-
-escape-html@~1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
-  integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
-
-escape-string-regexp@^1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-  integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
-
-escape-string-regexp@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
-  integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
-
-escodegen@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd"
-  integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==
-  dependencies:
-    esprima "^4.0.1"
-    estraverse "^5.2.0"
-    esutils "^2.0.2"
-    optionator "^0.8.1"
-  optionalDependencies:
-    source-map "~0.6.1"
-
-eslint-config-prettier@7.2.0:
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz#f4a4bd2832e810e8cc7c1411ec85b3e85c0c53f9"
-  integrity sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==
-
-eslint-config-prettier@^8.3.0:
-  version "8.3.0"
-  resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a"
-  integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==
-
-eslint-plugin-jsdoc@31.6.1:
-  version "31.6.1"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-31.6.1.tgz#98040c801500572fff71c984a097d89946f1e450"
-  integrity sha512-5hCV3u+1VSEUMyfdTl+dpWsioD7tqQr2ILQw+KbXrF42AVxCLO8gnNLR6zDCDjqGGpt79V1sgY0RRchCWuCigg==
-  dependencies:
-    comment-parser "1.1.2"
-    debug "^4.3.1"
-    jsdoctypeparser "^9.0.0"
-    lodash "^4.17.20"
-    regextras "^0.7.1"
-    semver "^7.3.4"
-    spdx-expression-parse "^3.0.1"
-
-eslint-plugin-jsdoc@^36.1.0:
-  version "36.1.1"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-36.1.1.tgz#124cd0e53a5d07f01ebde916a96dd1a6009625d6"
-  integrity sha512-nuLDvH1EJaKx0PCa9oeQIxH6pACIhZd1gkalTUxZbaxxwokjs7TplqY0Q8Ew3CoZaf5aowm0g/Z3JGHCatt+gQ==
-  dependencies:
-    "@es-joy/jsdoccomment" "0.10.8"
-    comment-parser "1.2.4"
-    debug "^4.3.2"
-    esquery "^1.4.0"
-    jsdoc-type-pratt-parser "^1.1.1"
-    lodash "^4.17.21"
-    regextras "^0.8.0"
-    semver "^7.3.5"
-    spdx-expression-parse "^3.0.1"
-
-eslint-plugin-prettier@3.3.1:
-  version "3.3.1"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz#7079cfa2497078905011e6f82e8dd8453d1371b7"
-  integrity sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ==
-  dependencies:
-    prettier-linter-helpers "^1.0.0"
-
-eslint-plugin-prettier@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz#8b99d1e4b8b24a762472b4567992023619cb98e0"
-  integrity sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==
-  dependencies:
-    prettier-linter-helpers "^1.0.0"
-
-eslint-plugin-react-hooks@4.2.0, eslint-plugin-react-hooks@^4.2.0:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556"
-  integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==
-
-eslint-plugin-react@7.22.0:
-  version "7.22.0"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz#3d1c542d1d3169c45421c1215d9470e341707269"
-  integrity sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA==
-  dependencies:
-    array-includes "^3.1.1"
-    array.prototype.flatmap "^1.2.3"
-    doctrine "^2.1.0"
-    has "^1.0.3"
-    jsx-ast-utils "^2.4.1 || ^3.0.0"
-    object.entries "^1.1.2"
-    object.fromentries "^2.0.2"
-    object.values "^1.1.1"
-    prop-types "^15.7.2"
-    resolve "^1.18.1"
-    string.prototype.matchall "^4.0.2"
-
-eslint-plugin-react@^7.26.1:
-  version "7.26.1"
-  resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.26.1.tgz#41bcfe3e39e6a5ac040971c1af94437c80daa40e"
-  integrity sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ==
-  dependencies:
-    array-includes "^3.1.3"
-    array.prototype.flatmap "^1.2.4"
-    doctrine "^2.1.0"
-    estraverse "^5.2.0"
-    jsx-ast-utils "^2.4.1 || ^3.0.0"
-    minimatch "^3.0.4"
-    object.entries "^1.1.4"
-    object.fromentries "^2.0.4"
-    object.hasown "^1.0.0"
-    object.values "^1.1.4"
-    prop-types "^15.7.2"
-    resolve "^2.0.0-next.3"
-    semver "^6.3.0"
-    string.prototype.matchall "^4.0.5"
-
-eslint-scope@^5.1.1:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
-  integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
-  dependencies:
-    esrecurse "^4.3.0"
-    estraverse "^4.1.1"
-
-eslint-utils@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
-  integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
-  dependencies:
-    eslint-visitor-keys "^1.1.0"
-
-eslint-utils@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
-  integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==
-  dependencies:
-    eslint-visitor-keys "^2.0.0"
-
-eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
-  integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
-
-eslint-visitor-keys@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
-  integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
-
-eslint@7.21.0:
-  version "7.21.0"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.21.0.tgz#4ecd5b8c5b44f5dedc9b8a110b01bbfeb15d1c83"
-  integrity sha512-W2aJbXpMNofUp0ztQaF40fveSsJBjlSCSWpy//gzfTvwC+USs/nceBrKmlJOiM8r1bLwP2EuYkCqArn/6QTIgg==
-  dependencies:
-    "@babel/code-frame" "7.12.11"
-    "@eslint/eslintrc" "^0.4.0"
-    ajv "^6.10.0"
-    chalk "^4.0.0"
-    cross-spawn "^7.0.2"
-    debug "^4.0.1"
-    doctrine "^3.0.0"
-    enquirer "^2.3.5"
-    eslint-scope "^5.1.1"
-    eslint-utils "^2.1.0"
-    eslint-visitor-keys "^2.0.0"
-    espree "^7.3.1"
-    esquery "^1.4.0"
-    esutils "^2.0.2"
-    file-entry-cache "^6.0.1"
-    functional-red-black-tree "^1.0.1"
-    glob-parent "^5.0.0"
-    globals "^12.1.0"
-    ignore "^4.0.6"
-    import-fresh "^3.0.0"
-    imurmurhash "^0.1.4"
-    is-glob "^4.0.0"
-    js-yaml "^3.13.1"
-    json-stable-stringify-without-jsonify "^1.0.1"
-    levn "^0.4.1"
-    lodash "^4.17.20"
-    minimatch "^3.0.4"
-    natural-compare "^1.4.0"
-    optionator "^0.9.1"
-    progress "^2.0.0"
-    regexpp "^3.1.0"
-    semver "^7.2.1"
-    strip-ansi "^6.0.0"
-    strip-json-comments "^3.1.0"
-    table "^6.0.4"
-    text-table "^0.2.0"
-    v8-compile-cache "^2.0.3"
-
-eslint@^7.32.0:
-  version "7.32.0"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d"
-  integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==
-  dependencies:
-    "@babel/code-frame" "7.12.11"
-    "@eslint/eslintrc" "^0.4.3"
-    "@humanwhocodes/config-array" "^0.5.0"
-    ajv "^6.10.0"
-    chalk "^4.0.0"
-    cross-spawn "^7.0.2"
-    debug "^4.0.1"
-    doctrine "^3.0.0"
-    enquirer "^2.3.5"
-    escape-string-regexp "^4.0.0"
-    eslint-scope "^5.1.1"
-    eslint-utils "^2.1.0"
-    eslint-visitor-keys "^2.0.0"
-    espree "^7.3.1"
-    esquery "^1.4.0"
-    esutils "^2.0.2"
-    fast-deep-equal "^3.1.3"
-    file-entry-cache "^6.0.1"
-    functional-red-black-tree "^1.0.1"
-    glob-parent "^5.1.2"
-    globals "^13.6.0"
-    ignore "^4.0.6"
-    import-fresh "^3.0.0"
-    imurmurhash "^0.1.4"
-    is-glob "^4.0.0"
-    js-yaml "^3.13.1"
-    json-stable-stringify-without-jsonify "^1.0.1"
-    levn "^0.4.1"
-    lodash.merge "^4.6.2"
-    minimatch "^3.0.4"
-    natural-compare "^1.4.0"
-    optionator "^0.9.1"
-    progress "^2.0.0"
-    regexpp "^3.1.0"
-    semver "^7.2.1"
-    strip-ansi "^6.0.0"
-    strip-json-comments "^3.1.0"
-    table "^6.0.9"
-    text-table "^0.2.0"
-    v8-compile-cache "^2.0.3"
-
-espree@^7.3.0, espree@^7.3.1:
-  version "7.3.1"
-  resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"
-  integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==
-  dependencies:
-    acorn "^7.4.0"
-    acorn-jsx "^5.3.1"
-    eslint-visitor-keys "^1.3.0"
-
-esprima@^4.0.0, esprima@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
-  integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-
-esquery@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
-  integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
-  dependencies:
-    estraverse "^5.1.0"
-
-esrecurse@^4.3.0:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
-  integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
-  dependencies:
-    estraverse "^5.2.0"
-
-estraverse@^4.1.1:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
-  integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
-
-estraverse@^5.1.0, estraverse@^5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
-  integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
-
-esutils@^2.0.2:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
-  integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
-
-etag@~1.8.1:
-  version "1.8.1"
-  resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
-  integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
-
-event-stream@=3.3.4:
-  version "3.3.4"
-  resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
-  integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=
-  dependencies:
-    duplexer "~0.1.1"
-    from "~0"
-    map-stream "~0.1.0"
-    pause-stream "0.0.11"
-    split "0.3"
-    stream-combiner "~0.0.4"
-    through "~2.3.1"
-
-execa@^5.1.1:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
-  integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
-  dependencies:
-    cross-spawn "^7.0.3"
-    get-stream "^6.0.0"
-    human-signals "^2.1.0"
-    is-stream "^2.0.0"
-    merge-stream "^2.0.0"
-    npm-run-path "^4.0.1"
-    onetime "^5.1.2"
-    signal-exit "^3.0.3"
-    strip-final-newline "^2.0.0"
-
-expand-template@^2.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c"
-  integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==
-
-express-prom-bundle@^5.1.5:
-  version "5.1.5"
-  resolved "https://registry.yarnpkg.com/express-prom-bundle/-/express-prom-bundle-5.1.5.tgz#f298615879299a58cf8ec1350186f4de91d91fa4"
-  integrity sha512-tUaQUBu0r9zGYcVDpKBI2AeWimuuodaC5BSBkzLPQxRTxaKQShQNnONQSYwjLxbHfPwlCKVZlzfbB9Recnj0Vg==
-  dependencies:
-    on-finished "^2.3.0"
-    url-value-parser "^2.0.0"
-
-express@^4.16.3:
-  version "4.17.1"
-  resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
-  integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
-  dependencies:
-    accepts "~1.3.7"
-    array-flatten "1.1.1"
-    body-parser "1.19.0"
-    content-disposition "0.5.3"
-    content-type "~1.0.4"
-    cookie "0.4.0"
-    cookie-signature "1.0.6"
-    debug "2.6.9"
-    depd "~1.1.2"
-    encodeurl "~1.0.2"
-    escape-html "~1.0.3"
-    etag "~1.8.1"
-    finalhandler "~1.1.2"
-    fresh "0.5.2"
-    merge-descriptors "1.0.1"
-    methods "~1.1.2"
-    on-finished "~2.3.0"
-    parseurl "~1.3.3"
-    path-to-regexp "0.1.7"
-    proxy-addr "~2.0.5"
-    qs "6.7.0"
-    range-parser "~1.2.1"
-    safe-buffer "5.1.2"
-    send "0.17.1"
-    serve-static "1.14.1"
-    setprototypeof "1.1.1"
-    statuses "~1.5.0"
-    type-is "~1.6.18"
-    utils-merge "1.0.1"
-    vary "~1.1.2"
-
-extract-zip@2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
-  integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
-  dependencies:
-    debug "^4.1.1"
-    get-stream "^5.1.0"
-    yauzl "^2.10.0"
-  optionalDependencies:
-    "@types/yauzl" "^2.9.1"
-
-fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
-  version "3.1.3"
-  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
-  integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-
-fast-diff@^1.1.2:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
-  integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
-
-fast-glob@^3.1.1:
-  version "3.2.7"
-  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1"
-  integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==
-  dependencies:
-    "@nodelib/fs.stat" "^2.0.2"
-    "@nodelib/fs.walk" "^1.2.3"
-    glob-parent "^5.1.2"
-    merge2 "^1.3.0"
-    micromatch "^4.0.4"
-
-fast-json-stable-stringify@^2.0.0:
-  version "2.1.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-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
-  version "2.0.6"
-  resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
-  integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
-
-fastq@^1.6.0:
-  version "1.13.0"
-  resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
-  integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
-  dependencies:
-    reusify "^1.0.4"
-
-fd-slicer@~1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
-  integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=
-  dependencies:
-    pend "~1.2.0"
-
-fecha@^4.2.0:
-  version "4.2.1"
-  resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce"
-  integrity sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==
-
-file-entry-cache@^6.0.1:
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
-  integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
-  dependencies:
-    flat-cache "^3.0.4"
-
-fill-range@^7.0.1:
-  version "7.0.1"
-  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
-  integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
-  dependencies:
-    to-regex-range "^5.0.1"
-
-finalhandler@~1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
-  integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
-  dependencies:
-    debug "2.6.9"
-    encodeurl "~1.0.2"
-    escape-html "~1.0.3"
-    on-finished "~2.3.0"
-    parseurl "~1.3.3"
-    statuses "~1.5.0"
-    unpipe "~1.0.0"
-
-find-up@^4.0.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
-  integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
-  dependencies:
-    locate-path "^5.0.0"
-    path-exists "^4.0.0"
-
-find-up@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
-  integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
-  dependencies:
-    locate-path "^6.0.0"
-    path-exists "^4.0.0"
-
-find-versions@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965"
-  integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==
-  dependencies:
-    semver-regex "^3.1.2"
-
-flat-cache@^3.0.4:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
-  integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
-  dependencies:
-    flatted "^3.1.0"
-    rimraf "^3.0.2"
-
-flatted@^3.1.0:
-  version "3.2.2"
-  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561"
-  integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==
-
-fn.name@1.x.x:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc"
-  integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==
-
-forwarded@0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
-  integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
-
-fresh@0.5.2:
-  version "0.5.2"
-  resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
-  integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
-
-from2@^2.3.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
-  integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=
-  dependencies:
-    inherits "^2.0.1"
-    readable-stream "^2.0.0"
-
-from@~0:
-  version "0.1.7"
-  resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
-  integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=
-
-fs-constants@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
-  integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
-
-fs-extra@^9.1.0:
-  version "9.1.0"
-  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
-  integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
-  dependencies:
-    at-least-node "^1.0.0"
-    graceful-fs "^4.2.0"
-    jsonfile "^6.0.1"
-    universalify "^2.0.0"
-
-fs.realpath@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-  integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
-
-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==
-
-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==
-
-functional-red-black-tree@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
-  integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
-
-gauge@~2.7.3:
-  version "2.7.4"
-  resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
-  integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
-  dependencies:
-    aproba "^1.0.3"
-    console-control-strings "^1.0.0"
-    has-unicode "^2.0.0"
-    object-assign "^4.1.0"
-    signal-exit "^3.0.0"
-    string-width "^1.0.1"
-    strip-ansi "^3.0.1"
-    wide-align "^1.1.0"
-
-get-caller-file@^2.0.5:
-  version "2.0.5"
-  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.0, get-intrinsic@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
-  integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
-  dependencies:
-    function-bind "^1.1.1"
-    has "^1.0.3"
-    has-symbols "^1.0.1"
-
-get-own-enumerable-property-symbols@^3.0.0:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664"
-  integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==
-
-get-stream@^5.1.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
-  integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
-  dependencies:
-    pump "^3.0.0"
-
-get-stream@^6.0.0:
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
-  integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
-
-get-symbol-description@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"
-  integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==
-  dependencies:
-    call-bind "^1.0.2"
-    get-intrinsic "^1.1.1"
-
-github-from-package@0.0.0:
-  version "0.0.0"
-  resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"
-  integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=
-
-glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.2:
-  version "5.1.2"
-  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
-  integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
-  dependencies:
-    is-glob "^4.0.1"
-
-glob@^7.1.3:
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
-  integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
-  dependencies:
-    fs.realpath "^1.0.0"
-    inflight "^1.0.4"
-    inherits "2"
-    minimatch "^3.0.4"
-    once "^1.3.0"
-    path-is-absolute "^1.0.0"
-
-globals@^12.1.0:
-  version "12.4.0"
-  resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
-  integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
-  dependencies:
-    type-fest "^0.8.1"
-
-globals@^13.6.0, globals@^13.9.0:
-  version "13.11.0"
-  resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7"
-  integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==
-  dependencies:
-    type-fest "^0.20.2"
-
-globby@^11.0.3:
-  version "11.0.4"
-  resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5"
-  integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==
-  dependencies:
-    array-union "^2.1.0"
-    dir-glob "^3.0.1"
-    fast-glob "^3.1.1"
-    ignore "^5.1.4"
-    merge2 "^1.3.0"
-    slash "^3.0.0"
-
-google-protobuf@3.5.0:
-  version "3.5.0"
-  resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.5.0.tgz#b8cc63c74d83457bd8a9a904503c8efb26bca339"
-  integrity sha1-uMxjx02DRXvYqakEUDyO+ya8ozk=
-
-graceful-fs@^4.1.6, graceful-fs@^4.2.0:
-  version "4.2.8"
-  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"
-  integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==
-
-has-bigints@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"
-  integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==
-
-has-flag@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
-  integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
-
-has-flag@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
-  integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
-
-has-symbols@^1.0.1, has-symbols@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
-  integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
-
-has-tostringtag@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
-  integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
-  dependencies:
-    has-symbols "^1.0.2"
-
-has-unicode@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
-  integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
-
-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"
-
-http-errors@1.7.2:
-  version "1.7.2"
-  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
-  integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
-  dependencies:
-    depd "~1.1.2"
-    inherits "2.0.3"
-    setprototypeof "1.1.1"
-    statuses ">= 1.5.0 < 2"
-    toidentifier "1.0.0"
-
-http-errors@~1.7.2:
-  version "1.7.3"
-  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
-  integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
-  dependencies:
-    depd "~1.1.2"
-    inherits "2.0.4"
-    setprototypeof "1.1.1"
-    statuses ">= 1.5.0 < 2"
-    toidentifier "1.0.0"
-
-https-proxy-agent@5.0.0, https-proxy-agent@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"
-  integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==
-  dependencies:
-    agent-base "6"
-    debug "4"
-
-human-signals@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
-  integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
-
-husky@^4.3.8:
-  version "4.3.8"
-  resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.8.tgz#31144060be963fd6850e5cc8f019a1dfe194296d"
-  integrity sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==
-  dependencies:
-    chalk "^4.0.0"
-    ci-info "^2.0.0"
-    compare-versions "^3.6.0"
-    cosmiconfig "^7.0.0"
-    find-versions "^4.0.0"
-    opencollective-postinstall "^2.0.2"
-    pkg-dir "^5.0.0"
-    please-upgrade-node "^3.2.0"
-    slash "^3.0.0"
-    which-pm-runs "^1.0.0"
-
-iconv-lite@0.4.24:
-  version "0.4.24"
-  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
-  integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
-  dependencies:
-    safer-buffer ">= 2.1.2 < 3"
-
-ieee754@^1.1.13:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
-  integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
-
-ignore@^4.0.6:
-  version "4.0.6"
-  resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
-  integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
-
-ignore@^5.1.4, ignore@^5.1.8:
-  version "5.1.8"
-  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
-  integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
-
-import-fresh@^3.0.0, import-fresh@^3.2.1:
-  version "3.3.0"
-  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
-  integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
-  dependencies:
-    parent-module "^1.0.0"
-    resolve-from "^4.0.0"
-
-imurmurhash@^0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
-  integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
-
-indent-string@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
-  integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
-
-inflight@^1.0.4:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
-  integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
-  dependencies:
-    once "^1.3.0"
-    wrappy "1"
-
-inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
-  integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
-inherits@2.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
-  integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
-
-ini@~1.3.0:
-  version "1.3.8"
-  resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
-  integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
-
-internal-slot@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c"
-  integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==
-  dependencies:
-    get-intrinsic "^1.1.0"
-    has "^1.0.3"
-    side-channel "^1.0.4"
-
-into-stream@^6.0.0:
-  version "6.0.0"
-  resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-6.0.0.tgz#4bfc1244c0128224e18b8870e85b2de8e66c6702"
-  integrity sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==
-  dependencies:
-    from2 "^2.3.0"
-    p-is-promise "^3.0.0"
-
-ipaddr.js@1.9.1:
-  version "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==
-
-is-arrayish@^0.2.1:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
-  integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
-
-is-arrayish@^0.3.1:
-  version "0.3.2"
-  resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
-  integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
-
-is-bigint@^1.0.1:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
-  integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==
-  dependencies:
-    has-bigints "^1.0.1"
-
-is-binary-path@~2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
-  integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
-  dependencies:
-    binary-extensions "^2.0.0"
-
-is-boolean-object@^1.1.0:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
-  integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
-  dependencies:
-    call-bind "^1.0.2"
-    has-tostringtag "^1.0.0"
-
-is-callable@^1.1.4, is-callable@^1.2.4:
-  version "1.2.4"
-  resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945"
-  integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==
-
-is-core-module@^2.2.0:
-  version "2.7.0"
-  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.7.0.tgz#3c0ef7d31b4acfc574f80c58409d568a836848e3"
-  integrity sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==
-  dependencies:
-    has "^1.0.3"
-
-is-date-object@^1.0.1:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
-  integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
-  dependencies:
-    has-tostringtag "^1.0.0"
-
-is-extglob@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
-  integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
-
-is-fullwidth-code-point@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
-  integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
-  dependencies:
-    number-is-nan "^1.0.0"
-
-is-fullwidth-code-point@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
-  integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
-
-is-fullwidth-code-point@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
-  integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
-
-is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
-  integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
-  dependencies:
-    is-extglob "^2.1.1"
-
-is-negative-zero@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24"
-  integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==
-
-is-number-object@^1.0.4:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0"
-  integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==
-  dependencies:
-    has-tostringtag "^1.0.0"
-
-is-number@^7.0.0:
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
-  integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-
-is-obj@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
-  integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
-
-is-regex@^1.1.4:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
-  integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
-  dependencies:
-    call-bind "^1.0.2"
-    has-tostringtag "^1.0.0"
-
-is-regexp@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
-  integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=
-
-is-shared-array-buffer@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6"
-  integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==
-
-is-stream@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
-  integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
-
-is-string@^1.0.5, is-string@^1.0.7:
-  version "1.0.7"
-  resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
-  integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==
-  dependencies:
-    has-tostringtag "^1.0.0"
-
-is-symbol@^1.0.2, is-symbol@^1.0.3:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
-  integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
-  dependencies:
-    has-symbols "^1.0.2"
-
-is-weakref@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2"
-  integrity sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==
-  dependencies:
-    call-bind "^1.0.0"
-
-isarray@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
-  integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
-
-isexe@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
-  integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
-
-"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
-  integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-
-js-yaml@^3.13.1:
-  version "3.14.1"
-  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
-  integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
-  dependencies:
-    argparse "^1.0.7"
-    esprima "^4.0.0"
-
-jsdoc-type-pratt-parser@1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-1.1.1.tgz#10fe5e409ba38de22a48b555598955a26ff0160f"
-  integrity sha512-uelRmpghNwPBuZScwgBG/OzodaFk5RbO5xaivBdsAY70icWfShwZ7PCMO0x1zSkOa8T1FzHThmrdoyg/0AwV5g==
-
-jsdoc-type-pratt-parser@^1.1.1:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-1.2.0.tgz#3482a3833b74a88c95a6ba7253f0c0de3b77b9f5"
-  integrity sha512-4STjeF14jp4bqha44nKMY1OUI6d2/g6uclHWUCZ7B4DoLzaB5bmpTkQrpqU+vSVzMD0LsKAOskcnI3I3VfIpmg==
-
-jsdoctypeparser@^9.0.0:
-  version "9.0.0"
-  resolved "https://registry.yarnpkg.com/jsdoctypeparser/-/jsdoctypeparser-9.0.0.tgz#8c97e2fb69315eb274b0f01377eaa5c940bd7b26"
-  integrity sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==
-
-json-parse-even-better-errors@^2.3.0:
-  version "2.3.1"
-  resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
-  integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
-
-json-schema-traverse@^0.4.1:
-  version "0.4.1"
-  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
-  integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
-
-json-schema-traverse@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
-  integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
-
-json-stable-stringify-without-jsonify@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
-  integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
-
-jsonfile@^6.0.1:
-  version "6.1.0"
-  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
-  integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
-  dependencies:
-    universalify "^2.0.0"
-  optionalDependencies:
-    graceful-fs "^4.1.6"
-
-"jsx-ast-utils@^2.4.1 || ^3.0.0":
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b"
-  integrity sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==
-  dependencies:
-    array-includes "^3.1.3"
-    object.assign "^4.1.2"
-
-kuler@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3"
-  integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==
-
-levn@^0.4.1:
-  version "0.4.1"
-  resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
-  integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
-  dependencies:
-    prelude-ls "^1.2.1"
-    type-check "~0.4.0"
-
-levn@~0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
-  integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=
-  dependencies:
-    prelude-ls "~1.1.2"
-    type-check "~0.3.2"
-
-lines-and-columns@^1.1.6:
-  version "1.1.6"
-  resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
-  integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
-
-lint-staged@^11.2.0:
-  version "11.2.1"
-  resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.2.1.tgz#e49104cb4eb01ef36742531385be2efe2b85ed94"
-  integrity sha512-p56vAvBwABYSThvncT1Vuq0u6A8ZS56oC+eURfoavqyhBPJv+RGAmIU2kEYQOO19LPQVHQJ56eoBq/ARPlBoVQ==
-  dependencies:
-    cli-truncate "2.1.0"
-    colorette "^1.4.0"
-    commander "^8.2.0"
-    cosmiconfig "^7.0.1"
-    debug "^4.3.2"
-    enquirer "^2.3.6"
-    execa "^5.1.1"
-    listr2 "^3.12.2"
-    micromatch "^4.0.4"
-    normalize-path "^3.0.0"
-    please-upgrade-node "^3.2.0"
-    string-argv "0.3.1"
-    stringify-object "3.3.0"
-    supports-color "8.1.1"
-
-listr2@^3.12.2:
-  version "3.12.2"
-  resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.12.2.tgz#2d55cc627111603ad4768a9e87c9c7bb9b49997e"
-  integrity sha512-64xC2CJ/As/xgVI3wbhlPWVPx0wfTqbUAkpb7bjDi0thSWMqrf07UFhrfsGoo8YSXmF049Rp9C0cjLC8rZxK9A==
-  dependencies:
-    cli-truncate "^2.1.0"
-    colorette "^1.4.0"
-    log-update "^4.0.0"
-    p-map "^4.0.0"
-    rxjs "^6.6.7"
-    through "^2.3.8"
-    wrap-ansi "^7.0.0"
-
-locate-path@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
-  integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
-  dependencies:
-    p-locate "^4.1.0"
-
-locate-path@^6.0.0:
-  version "6.0.0"
-  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
-  integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
-  dependencies:
-    p-locate "^5.0.0"
-
-lodash.camelcase@^4.3.0:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
-  integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
-
-lodash.clonedeep@^4.5.0:
-  version "4.5.0"
-  resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
-  integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
-
-lodash.merge@^4.6.2:
-  version "4.6.2"
-  resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
-  integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
-
-lodash.truncate@^4.4.2:
-  version "4.4.2"
-  resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
-  integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
-
-lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21:
-  version "4.17.21"
-  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
-  integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-
-log-update@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1"
-  integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==
-  dependencies:
-    ansi-escapes "^4.3.0"
-    cli-cursor "^3.1.0"
-    slice-ansi "^4.0.0"
-    wrap-ansi "^6.2.0"
-
-logform@^2.2.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/logform/-/logform-2.3.0.tgz#a3997a05985de2ebd325ae0d166dffc9c6fe6b57"
-  integrity sha512-graeoWUH2knKbGthMtuG1EfaSPMZFZBIrhuJHhkS5ZseFBrc7DupCzihOQAzsK/qIKPQaPJ/lFQFctILUY5ARQ==
-  dependencies:
-    colors "^1.2.1"
-    fecha "^4.2.0"
-    ms "^2.1.1"
-    safe-stable-stringify "^1.1.0"
-    triple-beam "^1.3.0"
-
-long@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
-  integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==
-
-loose-envify@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
-  integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
-  dependencies:
-    js-tokens "^3.0.0 || ^4.0.0"
-
-lru-cache@^6.0.0:
-  version "6.0.0"
-  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
-  integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
-  dependencies:
-    yallist "^4.0.0"
-
-map-stream@~0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194"
-  integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=
-
-media-typer@0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
-  integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
-
-merge-descriptors@1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
-  integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
-
-merge-stream@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
-  integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
-
-merge2@^1.3.0:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
-  integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
-
-methods@~1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
-  integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
-
-micromatch@^4.0.4:
-  version "4.0.4"
-  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
-  integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
-  dependencies:
-    braces "^3.0.1"
-    picomatch "^2.2.3"
-
-mime-db@1.50.0:
-  version "1.50.0"
-  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f"
-  integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==
-
-mime-types@~2.1.24:
-  version "2.1.33"
-  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb"
-  integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==
-  dependencies:
-    mime-db "1.50.0"
-
-mime@1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
-  integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
-
-mimic-fn@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
-  integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
-
-mimic-response@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43"
-  integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==
-
-minimatch@^3.0.4:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
-  integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
-  dependencies:
-    brace-expansion "^1.1.7"
-
-minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5:
-  version "1.2.5"
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
-  integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
-
-mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3:
-  version "0.5.3"
-  resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
-  integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
-
-mkdirp@^0.5.1:
-  version "0.5.5"
-  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
-  integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
-  dependencies:
-    minimist "^1.2.5"
-
-morgan@^1.9.0:
-  version "1.10.0"
-  resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7"
-  integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==
-  dependencies:
-    basic-auth "~2.0.1"
-    debug "2.6.9"
-    depd "~2.0.0"
-    on-finished "~2.3.0"
-    on-headers "~1.0.2"
-
-ms@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
-  integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
-
-ms@2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
-  integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
-
-ms@2.1.2:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
-  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-
-ms@^2.1.1:
-  version "2.1.3"
-  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
-  integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-
-multistream@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/multistream/-/multistream-4.1.0.tgz#7bf00dfd119556fbc153cff3de4c6d477909f5a8"
-  integrity sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==
-  dependencies:
-    once "^1.4.0"
-    readable-stream "^3.6.0"
-
-napi-build-utils@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806"
-  integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==
-
-natural-compare@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
-  integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
-
-negotiator@0.6.2:
-  version "0.6.2"
-  resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
-  integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
-
-node-abi@^2.7.0:
-  version "2.30.1"
-  resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf"
-  integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==
-  dependencies:
-    semver "^5.4.1"
-
-node-cleanup@^2.1.2:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/node-cleanup/-/node-cleanup-2.1.2.tgz#7ac19abd297e09a7f72a71545d951b517e4dde2c"
-  integrity sha1-esGavSl+Caf3KnFUXZUbUX5N3iw=
-
-node-fetch@2.6.1:
-  version "2.6.1"
-  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
-  integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
-
-node-fetch@^2.6.1:
-  version "2.6.5"
-  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd"
-  integrity sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==
-  dependencies:
-    whatwg-url "^5.0.0"
-
-noop-logger@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2"
-  integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=
-
-normalize-path@^3.0.0, normalize-path@~3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
-  integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
-
-npm-run-path@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
-  integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
-  dependencies:
-    path-key "^3.0.0"
-
-npmlog@^4.0.1:
-  version "4.1.2"
-  resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
-  integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
-  dependencies:
-    are-we-there-yet "~1.1.2"
-    console-control-strings "~1.1.0"
-    gauge "~2.7.3"
-    set-blocking "~2.0.0"
-
-number-is-nan@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
-  integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
-
-object-assign@^4.1.0, object-assign@^4.1.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
-  integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
-
-object-inspect@^1.11.0, object-inspect@^1.9.0:
-  version "1.11.0"
-  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1"
-  integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==
-
-object-keys@^1.0.12, object-keys@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
-  integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
-
-object.assign@^4.1.2:
-  version "4.1.2"
-  resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"
-  integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==
-  dependencies:
-    call-bind "^1.0.0"
-    define-properties "^1.1.3"
-    has-symbols "^1.0.1"
-    object-keys "^1.1.1"
-
-object.entries@^1.1.2, object.entries@^1.1.4:
-  version "1.1.5"
-  resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861"
-  integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==
-  dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.3"
-    es-abstract "^1.19.1"
-
-object.fromentries@^2.0.2, object.fromentries@^2.0.4:
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251"
-  integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==
-  dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.3"
-    es-abstract "^1.19.1"
-
-object.hasown@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.0.tgz#7232ed266f34d197d15cac5880232f7a4790afe5"
-  integrity sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==
-  dependencies:
-    define-properties "^1.1.3"
-    es-abstract "^1.19.1"
-
-object.values@^1.1.1, object.values@^1.1.4:
-  version "1.1.5"
-  resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac"
-  integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==
-  dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.3"
-    es-abstract "^1.19.1"
-
-on-finished@^2.3.0, on-finished@~2.3.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
-  integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
-  dependencies:
-    ee-first "1.1.1"
-
-on-headers@~1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
-  integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
-
-once@^1.3.0, once@^1.3.1, once@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
-  integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
-  dependencies:
-    wrappy "1"
-
-one-time@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45"
-  integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==
-  dependencies:
-    fn.name "1.x.x"
-
-onetime@^5.1.0, onetime@^5.1.2:
-  version "5.1.2"
-  resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
-  integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
-  dependencies:
-    mimic-fn "^2.1.0"
-
-opencollective-postinstall@^2.0.2:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259"
-  integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==
-
-optionator@^0.8.1:
-  version "0.8.3"
-  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
-  integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
-  dependencies:
-    deep-is "~0.1.3"
-    fast-levenshtein "~2.0.6"
-    levn "~0.3.0"
-    prelude-ls "~1.1.2"
-    type-check "~0.3.2"
-    word-wrap "~1.2.3"
-
-optionator@^0.9.1:
-  version "0.9.1"
-  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
-  integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
-  dependencies:
-    deep-is "^0.1.3"
-    fast-levenshtein "^2.0.6"
-    levn "^0.4.1"
-    prelude-ls "^1.2.1"
-    type-check "^0.4.0"
-    word-wrap "^1.2.3"
-
-p-is-promise@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-3.0.0.tgz#58e78c7dfe2e163cf2a04ff869e7c1dba64a5971"
-  integrity sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==
-
-p-limit@^2.2.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
-  integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
-  dependencies:
-    p-try "^2.0.0"
-
-p-limit@^3.0.2:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
-  integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
-  dependencies:
-    yocto-queue "^0.1.0"
-
-p-locate@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
-  integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
-  dependencies:
-    p-limit "^2.2.0"
-
-p-locate@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
-  integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
-  dependencies:
-    p-limit "^3.0.2"
-
-p-map@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
-  integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
-  dependencies:
-    aggregate-error "^3.0.0"
-
-p-try@^2.0.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
-  integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
-
-parent-module@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
-  integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
-  dependencies:
-    callsites "^3.0.0"
-
-parse-json@^5.0.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
-  integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
-  dependencies:
-    "@babel/code-frame" "^7.0.0"
-    error-ex "^1.3.1"
-    json-parse-even-better-errors "^2.3.0"
-    lines-and-columns "^1.1.6"
-
-parseurl@~1.3.3:
-  version "1.3.3"
-  resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
-  integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
-
-path-exists@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
-  integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
-
-path-is-absolute@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
-  integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
-
-path-key@^3.0.0, path-key@^3.1.0:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
-  integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
-
-path-parse@^1.0.6:
-  version "1.0.7"
-  resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
-  integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
-
-path-to-regexp@0.1.7:
-  version "0.1.7"
-  resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
-  integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
-
-path-type@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
-  integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
-
-pause-stream@0.0.11:
-  version "0.0.11"
-  resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445"
-  integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=
-  dependencies:
-    through "~2.3"
-
-pend@~1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
-  integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=
-
-picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
-  integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
-
-pkg-dir@4.2.0:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
-  integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
-  dependencies:
-    find-up "^4.0.0"
-
-pkg-dir@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760"
-  integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==
-  dependencies:
-    find-up "^5.0.0"
-
-pkg-fetch@3.2.3:
-  version "3.2.3"
-  resolved "https://registry.yarnpkg.com/pkg-fetch/-/pkg-fetch-3.2.3.tgz#9825febf4eadd470c126d3f6bdc2cb6996861d36"
-  integrity sha512-bv9vYANgAZ2Lvxn5Dsq7E0rLqzcqYkV4gnwe2f7oHV9N4SVMfDOIjjFCRuuTltop5EmsOcu7XkQpB5A/pIgC1g==
-  dependencies:
-    chalk "^4.1.0"
-    fs-extra "^9.1.0"
-    https-proxy-agent "^5.0.0"
-    node-fetch "^2.6.1"
-    progress "^2.0.3"
-    semver "^7.3.5"
-    yargs "^16.2.0"
-
-pkg@^5.3.3:
-  version "5.3.3"
-  resolved "https://registry.yarnpkg.com/pkg/-/pkg-5.3.3.tgz#5ad1dadfc4e55169f0e1046626e669e0428d4cd7"
-  integrity sha512-48qPxwyPvKfUuXxeK+kS3mBvfWWTX2khAdceDThbWCc8OUz3RFyO1Ft8SVkq2gQfPU2DtiPtWaf2SKH0Dlx59g==
-  dependencies:
-    "@babel/parser" "7.13.13"
-    "@babel/types" "7.13.12"
-    chalk "^4.1.0"
-    escodegen "^2.0.0"
-    fs-extra "^9.1.0"
-    globby "^11.0.3"
-    into-stream "^6.0.0"
-    minimist "^1.2.5"
-    multistream "^4.1.0"
-    pkg-fetch "3.2.3"
-    prebuild-install "6.0.1"
-    progress "^2.0.3"
-    resolve "^1.20.0"
-    stream-meter "^1.0.4"
-    tslib "2.1.0"
-
-please-upgrade-node@^3.2.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942"
-  integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==
-  dependencies:
-    semver-compare "^1.0.0"
-
-prebuild-install@6.0.1:
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.0.1.tgz#5902172f7a40eb67305b96c2a695db32636ee26d"
-  integrity sha512-7GOJrLuow8yeiyv75rmvZyeMGzl8mdEX5gY69d6a6bHWmiPevwqFw+tQavhK0EYMaSg3/KD24cWqeQv1EWsqDQ==
-  dependencies:
-    detect-libc "^1.0.3"
-    expand-template "^2.0.3"
-    github-from-package "0.0.0"
-    minimist "^1.2.3"
-    mkdirp-classic "^0.5.3"
-    napi-build-utils "^1.0.1"
-    node-abi "^2.7.0"
-    noop-logger "^0.1.1"
-    npmlog "^4.0.1"
-    pump "^3.0.0"
-    rc "^1.2.7"
-    simple-get "^3.0.3"
-    tar-fs "^2.0.0"
-    tunnel-agent "^0.6.0"
-    which-pm-runs "^1.0.0"
-
-prelude-ls@^1.2.1:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
-  integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
-
-prelude-ls@~1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
-  integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
-
-prettier-linter-helpers@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
-  integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
-  dependencies:
-    fast-diff "^1.1.2"
-
-prettier@2.2.1:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5"
-  integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==
-
-process-nextick-args@~2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
-  integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
-
-progress@2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31"
-  integrity sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==
-
-progress@^2.0.0, progress@^2.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
-  integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
-
-prom-client@^11.5.3:
-  version "11.5.3"
-  resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-11.5.3.tgz#5fedfce1083bac6c2b223738e966d0e1643756f8"
-  integrity sha512-iz22FmTbtkyL2vt0MdDFY+kWof+S9UB/NACxSn2aJcewtw+EERsen0urSkZ2WrHseNdydsvcxCTAnPcSMZZv4Q==
-  dependencies:
-    tdigest "^0.1.1"
-
-prop-types@^15.7.2:
-  version "15.7.2"
-  resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
-  integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
-  dependencies:
-    loose-envify "^1.4.0"
-    object-assign "^4.1.1"
-    react-is "^16.8.1"
-
-protobufjs@^6.8.6:
-  version "6.11.2"
-  resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.2.tgz#de39fabd4ed32beaa08e9bb1e30d08544c1edf8b"
-  integrity sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==
-  dependencies:
-    "@protobufjs/aspromise" "^1.1.2"
-    "@protobufjs/base64" "^1.1.2"
-    "@protobufjs/codegen" "^2.0.4"
-    "@protobufjs/eventemitter" "^1.1.0"
-    "@protobufjs/fetch" "^1.1.0"
-    "@protobufjs/float" "^1.0.2"
-    "@protobufjs/inquire" "^1.1.0"
-    "@protobufjs/path" "^1.1.2"
-    "@protobufjs/pool" "^1.1.0"
-    "@protobufjs/utf8" "^1.1.0"
-    "@types/long" "^4.0.1"
-    "@types/node" ">=13.7.0"
-    long "^4.0.0"
-
-proxy-addr@~2.0.5:
-  version "2.0.7"
-  resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
-  integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
-  dependencies:
-    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==
-
-ps-tree@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd"
-  integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==
-  dependencies:
-    event-stream "=3.3.4"
-
-pump@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
-  integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
-  dependencies:
-    end-of-stream "^1.1.0"
-    once "^1.3.1"
-
-punycode@^2.1.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
-  integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
-
-puppeteer-cluster@^0.22.0:
-  version "0.22.0"
-  resolved "https://registry.yarnpkg.com/puppeteer-cluster/-/puppeteer-cluster-0.22.0.tgz#4ab214671f414f15ad6a94a4b61ed0b4172e86e6"
-  integrity sha512-hmydtMwfVM+idFIDzS8OXetnujHGre7RY3BGL+3njy9+r8Dcu3VALkZHfuBEPf6byKssTCgzxU1BvLczifXd5w==
-  dependencies:
-    debug "^4.1.1"
-
-puppeteer@^10.0.0:
-  version "10.4.0"
-  resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-10.4.0.tgz#a6465ff97fda0576c4ac29601406f67e6fea3dc7"
-  integrity sha512-2cP8mBoqnu5gzAVpbZ0fRaobBWZM8GEUF4I1F6WbgHrKV/rz7SX8PG2wMymZgD0wo0UBlg2FBPNxlF/xlqW6+w==
-  dependencies:
-    debug "4.3.1"
-    devtools-protocol "0.0.901419"
-    extract-zip "2.0.1"
-    https-proxy-agent "5.0.0"
-    node-fetch "2.6.1"
-    pkg-dir "4.2.0"
-    progress "2.0.1"
-    proxy-from-env "1.1.0"
-    rimraf "3.0.2"
-    tar-fs "2.0.0"
-    unbzip2-stream "1.3.3"
-    ws "7.4.6"
-
-qs@6.7.0:
-  version "6.7.0"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
-  integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
-
-queue-microtask@^1.2.2:
-  version "1.2.3"
-  resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
-  integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
-
-range-parser@~1.2.1:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
-  integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
-
-raw-body@2.4.0:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
-  integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
-  dependencies:
-    bytes "3.1.0"
-    http-errors "1.7.2"
-    iconv-lite "0.4.24"
-    unpipe "1.0.0"
-
-rc@^1.2.7:
-  version "1.2.8"
-  resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
-  integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
-  dependencies:
-    deep-extend "^0.6.0"
-    ini "~1.3.0"
-    minimist "^1.2.0"
-    strip-json-comments "~2.0.1"
-
-react-is@^16.8.1:
-  version "16.13.1"
-  resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
-  integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
-
-readable-stream@^2.0.0, readable-stream@^2.0.6, readable-stream@^2.1.4, 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@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
-  version "3.6.0"
-  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
-  integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
-  dependencies:
-    inherits "^2.0.3"
-    string_decoder "^1.1.1"
-    util-deprecate "^1.0.1"
-
-readdirp@~3.6.0:
-  version "3.6.0"
-  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
-  integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
-  dependencies:
-    picomatch "^2.2.1"
-
-regexp.prototype.flags@^1.3.1:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26"
-  integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==
-  dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.3"
-
-regexpp@^3.1.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
-  integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
-
-regextras@^0.7.1:
-  version "0.7.1"
-  resolved "https://registry.yarnpkg.com/regextras/-/regextras-0.7.1.tgz#be95719d5f43f9ef0b9fa07ad89b7c606995a3b2"
-  integrity sha512-9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w==
-
-regextras@^0.8.0:
-  version "0.8.0"
-  resolved "https://registry.yarnpkg.com/regextras/-/regextras-0.8.0.tgz#ec0f99853d4912839321172f608b544814b02217"
-  integrity sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ==
-
-require-directory@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
-  integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
-
-require-from-string@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
-  integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
-
-resolve-from@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
-  integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
-
-resolve@^1.18.1, resolve@^1.20.0:
-  version "1.20.0"
-  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"
-  integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==
-  dependencies:
-    is-core-module "^2.2.0"
-    path-parse "^1.0.6"
-
-resolve@^2.0.0-next.3:
-  version "2.0.0-next.3"
-  resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46"
-  integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==
-  dependencies:
-    is-core-module "^2.2.0"
-    path-parse "^1.0.6"
-
-restore-cursor@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
-  integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
-  dependencies:
-    onetime "^5.1.0"
-    signal-exit "^3.0.2"
-
-reusify@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
-  integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
-
-rimraf@3.0.2, rimraf@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
-  integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
-  dependencies:
-    glob "^7.1.3"
-
-run-parallel@^1.1.9:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
-  integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
-  dependencies:
-    queue-microtask "^1.2.2"
-
-rxjs@^6.6.7:
-  version "6.6.7"
-  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"
-  integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==
-  dependencies:
-    tslib "^1.9.0"
-
-safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
-  version "5.1.2"
-  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
-  integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-
-safe-buffer@^5.0.1, safe-buffer@~5.2.0:
-  version "5.2.1"
-  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
-  integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
-
-safe-stable-stringify@^1.1.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz#c8a220ab525cd94e60ebf47ddc404d610dc5d84a"
-  integrity sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==
-
-"safer-buffer@>= 2.1.2 < 3":
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
-  integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-
-semver-compare@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
-  integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
-
-semver-regex@^3.1.2:
-  version "3.1.3"
-  resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.3.tgz#b2bcc6f97f63269f286994e297e229b6245d0dc3"
-  integrity sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ==
-
-semver@^5.4.1:
-  version "5.7.1"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
-  integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-
-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@^7.2.1, semver@^7.3.4, semver@^7.3.5:
-  version "7.3.5"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
-  integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
-  dependencies:
-    lru-cache "^6.0.0"
-
-send@0.17.1:
-  version "0.17.1"
-  resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
-  integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
-  dependencies:
-    debug "2.6.9"
-    depd "~1.1.2"
-    destroy "~1.0.4"
-    encodeurl "~1.0.2"
-    escape-html "~1.0.3"
-    etag "~1.8.1"
-    fresh "0.5.2"
-    http-errors "~1.7.2"
-    mime "1.6.0"
-    ms "2.1.1"
-    on-finished "~2.3.0"
-    range-parser "~1.2.1"
-    statuses "~1.5.0"
-
-serve-static@1.14.1:
-  version "1.14.1"
-  resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
-  integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
-  dependencies:
-    encodeurl "~1.0.2"
-    escape-html "~1.0.3"
-    parseurl "~1.3.3"
-    send "0.17.1"
-
-set-blocking@~2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
-  integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
-
-setprototypeof@1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
-  integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
-
-shebang-command@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
-  integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
-  dependencies:
-    shebang-regex "^3.0.0"
-
-shebang-regex@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
-  integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
-
-side-channel@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
-  integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
-  dependencies:
-    call-bind "^1.0.0"
-    get-intrinsic "^1.0.2"
-    object-inspect "^1.9.0"
-
-signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3:
-  version "3.0.5"
-  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f"
-  integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==
-
-simple-concat@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f"
-  integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==
-
-simple-get@^3.0.3:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3"
-  integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==
-  dependencies:
-    decompress-response "^4.2.0"
-    once "^1.3.1"
-    simple-concat "^1.0.0"
-
-simple-swizzle@^0.2.2:
-  version "0.2.2"
-  resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
-  integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
-  dependencies:
-    is-arrayish "^0.3.1"
-
-slash@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
-  integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
-
-slice-ansi@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787"
-  integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==
-  dependencies:
-    ansi-styles "^4.0.0"
-    astral-regex "^2.0.0"
-    is-fullwidth-code-point "^3.0.0"
-
-slice-ansi@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
-  integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
-  dependencies:
-    ansi-styles "^4.0.0"
-    astral-regex "^2.0.0"
-    is-fullwidth-code-point "^3.0.0"
-
-source-map@~0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
-  integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-
-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==
-
-spdx-expression-parse@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
-  integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
-  dependencies:
-    spdx-exceptions "^2.1.0"
-    spdx-license-ids "^3.0.0"
-
-spdx-license-ids@^3.0.0:
-  version "3.0.10"
-  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b"
-  integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==
-
-split@0.3:
-  version "0.3.3"
-  resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f"
-  integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=
-  dependencies:
-    through "2"
-
-sprintf-js@~1.0.2:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
-  integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
-
-stack-trace@0.0.x:
-  version "0.0.10"
-  resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
-  integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=
-
-"statuses@>= 1.5.0 < 2", statuses@~1.5.0:
-  version "1.5.0"
-  resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
-  integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
-
-stream-combiner@~0.0.4:
-  version "0.0.4"
-  resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14"
-  integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=
-  dependencies:
-    duplexer "~0.1.1"
-
-stream-meter@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/stream-meter/-/stream-meter-1.0.4.tgz#52af95aa5ea760a2491716704dbff90f73afdd1d"
-  integrity sha1-Uq+Vql6nYKJJFxZwTb/5D3Ov3R0=
-  dependencies:
-    readable-stream "^2.1.4"
-
-string-argv@0.3.1:
-  version "0.3.1"
-  resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da"
-  integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==
-
-string-argv@^0.1.1:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.1.2.tgz#c5b7bc03fb2b11983ba3a72333dd0559e77e4738"
-  integrity sha512-mBqPGEOMNJKXRo7z0keX0wlAhbBAjilUdPW13nN0PecVryZxdHIeM7TqbsSUA7VYuS00HGC6mojP7DlQzfa9ZA==
-
-string-width@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
-  integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
-  dependencies:
-    code-point-at "^1.0.0"
-    is-fullwidth-code-point "^1.0.0"
-    strip-ansi "^3.0.0"
-
-"string-width@^1.0.2 || 2":
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
-  integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
-  dependencies:
-    is-fullwidth-code-point "^2.0.0"
-    strip-ansi "^4.0.0"
-
-string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
-  version "4.2.3"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
-  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"
-
-string.prototype.matchall@^4.0.2, string.prototype.matchall@^4.0.5:
-  version "4.0.6"
-  resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz#5abb5dabc94c7b0ea2380f65ba610b3a544b15fa"
-  integrity sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==
-  dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.3"
-    es-abstract "^1.19.1"
-    get-intrinsic "^1.1.1"
-    has-symbols "^1.0.2"
-    internal-slot "^1.0.3"
-    regexp.prototype.flags "^1.3.1"
-    side-channel "^1.0.4"
-
-string.prototype.trimend@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"
-  integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==
-  dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.3"
-
-string.prototype.trimstart@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed"
-  integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==
-  dependencies:
-    call-bind "^1.0.2"
-    define-properties "^1.1.3"
-
-string_decoder@^1.1.1:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
-  integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
-  dependencies:
-    safe-buffer "~5.2.0"
-
-string_decoder@~1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
-  integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
-  dependencies:
-    safe-buffer "~5.1.0"
-
-stringify-object@3.3.0:
-  version "3.3.0"
-  resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629"
-  integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==
-  dependencies:
-    get-own-enumerable-property-symbols "^3.0.0"
-    is-obj "^1.0.1"
-    is-regexp "^1.0.0"
-
-strip-ansi@^3.0.0, strip-ansi@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
-  integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
-  dependencies:
-    ansi-regex "^2.0.0"
-
-strip-ansi@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
-  integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
-  dependencies:
-    ansi-regex "^3.0.0"
-
-strip-ansi@^6.0.0, strip-ansi@^6.0.1:
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
-  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
-  dependencies:
-    ansi-regex "^5.0.1"
-
-strip-final-newline@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
-  integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
-
-strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
-  integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
-
-strip-json-comments@~2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
-  integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
-
-supports-color@8.1.1:
-  version "8.1.1"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
-  integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
-  dependencies:
-    has-flag "^4.0.0"
-
-supports-color@^5.3.0:
-  version "5.5.0"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
-  integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
-  dependencies:
-    has-flag "^3.0.0"
-
-supports-color@^7.1.0:
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
-  integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
-  dependencies:
-    has-flag "^4.0.0"
-
-table@^6.0.4, table@^6.0.9:
-  version "6.7.2"
-  resolved "https://registry.yarnpkg.com/table/-/table-6.7.2.tgz#a8d39b9f5966693ca8b0feba270a78722cbaf3b0"
-  integrity sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==
-  dependencies:
-    ajv "^8.0.1"
-    lodash.clonedeep "^4.5.0"
-    lodash.truncate "^4.4.2"
-    slice-ansi "^4.0.0"
-    string-width "^4.2.3"
-    strip-ansi "^6.0.1"
-
-tar-fs@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.0.tgz#677700fc0c8b337a78bee3623fdc235f21d7afad"
-  integrity sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==
-  dependencies:
-    chownr "^1.1.1"
-    mkdirp "^0.5.1"
-    pump "^3.0.0"
-    tar-stream "^2.0.0"
-
-tar-fs@^2.0.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784"
-  integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==
-  dependencies:
-    chownr "^1.1.1"
-    mkdirp-classic "^0.5.2"
-    pump "^3.0.0"
-    tar-stream "^2.1.4"
-
-tar-stream@^2.0.0, tar-stream@^2.1.4:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
-  integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
-  dependencies:
-    bl "^4.0.3"
-    end-of-stream "^1.4.1"
-    fs-constants "^1.0.0"
-    inherits "^2.0.3"
-    readable-stream "^3.1.1"
-
-tdigest@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.1.tgz#2e3cb2c39ea449e55d1e6cd91117accca4588021"
-  integrity sha1-Ljyyw56kSeVdHmzZEReszKRYgCE=
-  dependencies:
-    bintrees "1.0.1"
-
-text-hex@1.0.x:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5"
-  integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==
-
-text-table@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
-  integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
-
-through@2, through@^2.3.8, through@~2.3, through@~2.3.1:
-  version "2.3.8"
-  resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
-  integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
-
-to-fast-properties@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
-  integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
-
-to-regex-range@^5.0.1:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
-  integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
-  dependencies:
-    is-number "^7.0.0"
-
-toidentifier@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
-  integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
-
-tr46@~0.0.3:
-  version "0.0.3"
-  resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
-  integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
-
-triple-beam@^1.2.0, 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==
-
-tsc-watch@^4.2.3:
-  version "4.5.0"
-  resolved "https://registry.yarnpkg.com/tsc-watch/-/tsc-watch-4.5.0.tgz#d6884b932822b2c2ccd37f1c1f3748304566a474"
-  integrity sha512-aXhN4jY+1YEcn/NwCQ/+fHqU43EqOpW+pS+933EPsVEsrKhvyrodPDIjQsk1a1niFrabAK3RIBrRbAslVefEbQ==
-  dependencies:
-    cross-spawn "^7.0.3"
-    node-cleanup "^2.1.2"
-    ps-tree "^1.2.0"
-    string-argv "^0.1.1"
-    strip-ansi "^6.0.0"
-
-tslib@2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a"
-  integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==
-
-tslib@^1.8.1, tslib@^1.9.0:
-  version "1.14.1"
-  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
-  integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
-
-tsutils@^3.21.0:
-  version "3.21.0"
-  resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
-  integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
-  dependencies:
-    tslib "^1.8.1"
-
-tunnel-agent@^0.6.0:
-  version "0.6.0"
-  resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
-  integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
-  dependencies:
-    safe-buffer "^5.0.1"
-
-type-check@^0.4.0, type-check@~0.4.0:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
-  integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
-  dependencies:
-    prelude-ls "^1.2.1"
-
-type-check@~0.3.2:
-  version "0.3.2"
-  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
-  integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=
-  dependencies:
-    prelude-ls "~1.1.2"
-
-type-fest@^0.20.2:
-  version "0.20.2"
-  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
-  integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
-
-type-fest@^0.21.3:
-  version "0.21.3"
-  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
-  integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
-
-type-fest@^0.8.1:
-  version "0.8.1"
-  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
-  integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
-
-type-is@~1.6.17, type-is@~1.6.18:
-  version "1.6.18"
-  resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
-  integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
-  dependencies:
-    media-typer "0.3.0"
-    mime-types "~2.1.24"
-
-typescript@4.3.4:
-  version "4.3.4"
-  resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.4.tgz#3f85b986945bcf31071decdd96cf8bfa65f9dcbc"
-  integrity sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew==
-
-typescript@^4.3.2:
-  version "4.4.3"
-  resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz#bdc5407caa2b109efd4f82fe130656f977a29324"
-  integrity sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==
-
-unbox-primitive@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
-  integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==
-  dependencies:
-    function-bind "^1.1.1"
-    has-bigints "^1.0.1"
-    has-symbols "^1.0.2"
-    which-boxed-primitive "^1.0.2"
-
-unbzip2-stream@1.3.3:
-  version "1.3.3"
-  resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz#d156d205e670d8d8c393e1c02ebd506422873f6a"
-  integrity sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==
-  dependencies:
-    buffer "^5.2.1"
-    through "^2.3.8"
-
-unique-filename@^1.1.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
-  integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
-  dependencies:
-    unique-slug "^2.0.0"
-
-unique-slug@^2.0.0:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"
-  integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==
-  dependencies:
-    imurmurhash "^0.1.4"
-
-universalify@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
-  integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
-
-unpipe@1.0.0, unpipe@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
-  integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
-
-uri-js@^4.2.2:
-  version "4.4.1"
-  resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
-  integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
-  dependencies:
-    punycode "^2.1.0"
-
-url-value-parser@^2.0.0:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/url-value-parser/-/url-value-parser-2.0.3.tgz#cd4b8d6754e458d65e8125260c09718d926e6e21"
-  integrity sha512-FjIX+Q9lYmDM9uYIGdMYfQW0uLbWVwN2NrL2ayAI7BTOvEwzH+VoDdNquwB9h4dFAx+u6mb0ONLa3sHD5DvyvA==
-
-util-deprecate@^1.0.1, util-deprecate@~1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
-  integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
-
-utils-merge@1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
-  integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
-
-v8-compile-cache@^2.0.3:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
-  integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
-
-vary@~1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
-  integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
-
-webidl-conversions@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
-  integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
-
-whatwg-url@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
-  integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=
-  dependencies:
-    tr46 "~0.0.3"
-    webidl-conversions "^3.0.0"
-
-which-boxed-primitive@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
-  integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
-  dependencies:
-    is-bigint "^1.0.1"
-    is-boolean-object "^1.1.0"
-    is-number-object "^1.0.4"
-    is-string "^1.0.5"
-    is-symbol "^1.0.3"
-
-which-pm-runs@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb"
-  integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=
-
-which@^2.0.1:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
-  integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
-  dependencies:
-    isexe "^2.0.0"
-
-wide-align@^1.1.0:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
-  integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
-  dependencies:
-    string-width "^1.0.2 || 2"
-
-winston-transport@^4.4.0:
-  version "4.4.0"
-  resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.4.0.tgz#17af518daa690d5b2ecccaa7acf7b20ca7925e59"
-  integrity sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==
-  dependencies:
-    readable-stream "^2.3.7"
-    triple-beam "^1.2.0"
-
-winston@^3.2.1:
-  version "3.3.3"
-  resolved "https://registry.yarnpkg.com/winston/-/winston-3.3.3.tgz#ae6172042cafb29786afa3d09c8ff833ab7c9170"
-  integrity sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==
-  dependencies:
-    "@dabh/diagnostics" "^2.0.2"
-    async "^3.1.0"
-    is-stream "^2.0.0"
-    logform "^2.2.0"
-    one-time "^1.0.0"
-    readable-stream "^3.4.0"
-    stack-trace "0.0.x"
-    triple-beam "^1.3.0"
-    winston-transport "^4.4.0"
-
-word-wrap@^1.2.3, word-wrap@~1.2.3:
-  version "1.2.3"
-  resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
-  integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
-
-wrap-ansi@^6.2.0:
-  version "6.2.0"
-  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
-  integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
-  dependencies:
-    ansi-styles "^4.0.0"
-    string-width "^4.1.0"
-    strip-ansi "^6.0.0"
-
-wrap-ansi@^7.0.0:
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
-  integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
-  dependencies:
-    ansi-styles "^4.0.0"
-    string-width "^4.1.0"
-    strip-ansi "^6.0.0"
-
-wrappy@1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
-  integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-
-ws@7.4.6:
-  version "7.4.6"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
-  integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
-
-y18n@^5.0.5:
-  version "5.0.8"
-  resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
-  integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
-
-yallist@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
-  integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
-
-yaml@^1.10.0:
-  version "1.10.2"
-  resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
-  integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
-
-yargs-parser@^20.2.2:
-  version "20.2.9"
-  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
-  integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
-
-yargs@^16.2.0:
-  version "16.2.0"
-  resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
-  integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
-  dependencies:
-    cliui "^7.0.2"
-    escalade "^3.1.1"
-    get-caller-file "^2.0.5"
-    require-directory "^2.1.1"
-    string-width "^4.2.0"
-    y18n "^5.0.5"
-    yargs-parser "^20.2.2"
-
-yauzl@^2.10.0:
-  version "2.10.0"
-  resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
-  integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
-  dependencies:
-    buffer-crc32 "~0.2.3"
-    fd-slicer "~1.1.0"
-
-yocto-queue@^0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
-  integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.

+# yarn lockfile v1

+

+

+"@babel/code-frame@7.12.11":

+  version "7.12.11"

+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"

+  integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==

+  dependencies:

+    "@babel/highlight" "^7.10.4"

+

+"@babel/code-frame@^7.0.0":

+  version "7.14.5"

+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb"

+  integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==

+  dependencies:

+    "@babel/highlight" "^7.14.5"

+

+"@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.14.5":

+  version "7.15.7"

+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389"

+  integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==

+

+"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5":

+  version "7.14.5"

+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9"

+  integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==

+  dependencies:

+    "@babel/helper-validator-identifier" "^7.14.5"

+    chalk "^2.0.0"

+    js-tokens "^4.0.0"

+

+"@babel/parser@7.13.13":

+  version "7.13.13"

+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.13.tgz#42f03862f4aed50461e543270916b47dd501f0df"

+  integrity sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==

+

+"@babel/types@7.13.12":

+  version "7.13.12"

+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.12.tgz#edbf99208ef48852acdff1c8a681a1e4ade580cd"

+  integrity sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==

+  dependencies:

+    "@babel/helper-validator-identifier" "^7.12.11"

+    lodash "^4.17.19"

+    to-fast-properties "^2.0.0"

+

+"@dabh/diagnostics@^2.0.2":

+  version "2.0.2"

+  resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.2.tgz#290d08f7b381b8f94607dc8f471a12c675f9db31"

+  integrity sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==

+  dependencies:

+    colorspace "1.1.x"

+    enabled "2.0.x"

+    kuler "^2.0.0"

+

+"@es-joy/jsdoccomment@0.10.8":

+  version "0.10.8"

+  resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.10.8.tgz#b3152887e25246410ed4ea569a55926ec13b2b05"

+  integrity sha512-3P1JiGL4xaR9PoTKUHa2N/LKwa2/eUdRqGwijMWWgBqbFEqJUVpmaOi2TcjcemrsRMgFLBzQCK4ToPhrSVDiFQ==

+  dependencies:

+    comment-parser "1.2.4"

+    esquery "^1.4.0"

+    jsdoc-type-pratt-parser "1.1.1"

+

+"@eslint/eslintrc@^0.4.0", "@eslint/eslintrc@^0.4.3":

+  version "0.4.3"

+  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c"

+  integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==

+  dependencies:

+    ajv "^6.12.4"

+    debug "^4.1.1"

+    espree "^7.3.0"

+    globals "^13.9.0"

+    ignore "^4.0.6"

+    import-fresh "^3.2.1"

+    js-yaml "^3.13.1"

+    minimatch "^3.0.4"

+    strip-json-comments "^3.1.1"

+

+"@grafana/eslint-config@^2.5.0":

+  version "2.5.0"

+  resolved "https://registry.yarnpkg.com/@grafana/eslint-config/-/eslint-config-2.5.0.tgz#d028898e201f242748a94d5582f0e14a493f5853"

+  integrity sha512-JHckBXfUoGYXT18br2n2nTqo4eX7V51/Ec4Y2I7ALh5XsW6OnO+/1AAPymE2J/4WGt3IocW7vJoNV2GRW1JSQg==

+  dependencies:

+    "@typescript-eslint/eslint-plugin" "4.28.0"

+    "@typescript-eslint/parser" "4.28.0"

+    eslint "7.21.0"

+    eslint-config-prettier "7.2.0"

+    eslint-plugin-jsdoc "31.6.1"

+    eslint-plugin-prettier "3.3.1"

+    eslint-plugin-react "7.22.0"

+    eslint-plugin-react-hooks "4.2.0"

+    prettier "2.2.1"

+    typescript "4.3.4"

+

+"@grpc/grpc-js@^1.0":

+  version "1.3.7"

+  resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.3.7.tgz#58b687aff93b743aafde237fd2ee9a3259d7f2d8"

+  integrity sha512-CKQVuwuSPh40tgOkR7c0ZisxYRiN05PcKPW72mQL5y++qd7CwBRoaJZvU5xfXnCJDFBmS3qZGQ71Frx6Ofo2XA==

+  dependencies:

+    "@types/node" ">=12.12.47"

+

+"@grpc/proto-loader@^0.5.4":

+  version "0.5.6"

+  resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.5.6.tgz#1dea4b8a6412b05e2d58514d507137b63a52a98d"

+  integrity sha512-DT14xgw3PSzPxwS13auTEwxhMMOoz33DPUKNtmYK/QYbBSpLXJy78FGGs5yVoxVobEqPm4iW9MOIoz0A3bLTRQ==

+  dependencies:

+    lodash.camelcase "^4.3.0"

+    protobufjs "^6.8.6"

+

+"@hapi/boom@^9.1.0":

+  version "9.1.4"

+  resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.4.tgz#1f9dad367c6a7da9f8def24b4a986fc5a7bd9db6"

+  integrity sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==

+  dependencies:

+    "@hapi/hoek" "9.x.x"

+

+"@hapi/hoek@9.x.x":

+  version "9.2.1"

+  resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.1.tgz#9551142a1980503752536b5050fd99f4a7f13b17"

+  integrity sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==

+

+"@humanwhocodes/config-array@^0.5.0":

+  version "0.5.0"

+  resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9"

+  integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==

+  dependencies:

+    "@humanwhocodes/object-schema" "^1.2.0"

+    debug "^4.1.1"

+    minimatch "^3.0.4"

+

+"@humanwhocodes/object-schema@^1.2.0":

+  version "1.2.0"

+  resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf"

+  integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==

+

+"@nodelib/fs.scandir@2.1.5":

+  version "2.1.5"

+  resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"

+  integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==

+  dependencies:

+    "@nodelib/fs.stat" "2.0.5"

+    run-parallel "^1.1.9"

+

+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":

+  version "2.0.5"

+  resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"

+  integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==

+

+"@nodelib/fs.walk@^1.2.3":

+  version "1.2.8"

+  resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"

+  integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==

+  dependencies:

+    "@nodelib/fs.scandir" "2.1.5"

+    fastq "^1.6.0"

+

+"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2":

+  version "1.1.2"

+  resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf"

+  integrity sha1-m4sMxmPWaafY9vXQiToU00jzD78=

+

+"@protobufjs/base64@^1.1.2":

+  version "1.1.2"

+  resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735"

+  integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==

+

+"@protobufjs/codegen@^2.0.4":

+  version "2.0.4"

+  resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb"

+  integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==

+

+"@protobufjs/eventemitter@^1.1.0":

+  version "1.1.0"

+  resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70"

+  integrity sha1-NVy8mLr61ZePntCV85diHx0Ga3A=

+

+"@protobufjs/fetch@^1.1.0":

+  version "1.1.0"

+  resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45"

+  integrity sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=

+  dependencies:

+    "@protobufjs/aspromise" "^1.1.1"

+    "@protobufjs/inquire" "^1.1.0"

+

+"@protobufjs/float@^1.0.2":

+  version "1.0.2"

+  resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1"

+  integrity sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=

+

+"@protobufjs/inquire@^1.1.0":

+  version "1.1.0"

+  resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089"

+  integrity sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=

+

+"@protobufjs/path@^1.1.2":

+  version "1.1.2"

+  resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d"

+  integrity sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=

+

+"@protobufjs/pool@^1.1.0":

+  version "1.1.0"

+  resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54"

+  integrity sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=

+

+"@protobufjs/utf8@^1.1.0":

+  version "1.1.0"

+  resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570"

+  integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=

+

+"@types/body-parser@*":

+  version "1.19.1"

+  resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.1.tgz#0c0174c42a7d017b818303d4b5d969cb0b75929c"

+  integrity sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==

+  dependencies:

+    "@types/connect" "*"

+    "@types/node" "*"

+

+"@types/connect@*":

+  version "3.4.35"

+  resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1"

+  integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==

+  dependencies:

+    "@types/node" "*"

+

+"@types/express-serve-static-core@^4.17.18":

+  version "4.17.24"

+  resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz#ea41f93bf7e0d59cd5a76665068ed6aab6815c07"

+  integrity sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==

+  dependencies:

+    "@types/node" "*"

+    "@types/qs" "*"

+    "@types/range-parser" "*"

+

+"@types/express@^4.11.1":

+  version "4.17.13"

+  resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034"

+  integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==

+  dependencies:

+    "@types/body-parser" "*"

+    "@types/express-serve-static-core" "^4.17.18"

+    "@types/qs" "*"

+    "@types/serve-static" "*"

+

+"@types/json-schema@^7.0.7":

+  version "7.0.9"

+  resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d"

+  integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==

+

+"@types/long@^4.0.1":

+  version "4.0.1"

+  resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9"

+  integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==

+

+"@types/mime@^1":

+  version "1.3.2"

+  resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.2.tgz#93e25bf9ee75fe0fd80b594bc4feb0e862111b5a"

+  integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==

+

+"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0":

+  version "16.10.2"

+  resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.2.tgz#5764ca9aa94470adb4e1185fe2e9f19458992b2e"

+  integrity sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ==

+

+"@types/node@^14.14.41":

+  version "14.17.20"

+  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.20.tgz#74cc80438fd0467dc4377ee5bbad89a886df3c10"

+  integrity sha512-gI5Sl30tmhXsqkNvopFydP7ASc4c2cLfGNQrVKN3X90ADFWFsPEsotm/8JHSUJQKTHbwowAHtcJPeyVhtKv0TQ==

+

+"@types/parse-json@^4.0.0":

+  version "4.0.0"

+  resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"

+  integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==

+

+"@types/qs@*":

+  version "6.9.7"

+  resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb"

+  integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==

+

+"@types/range-parser@*":

+  version "1.2.4"

+  resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc"

+  integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==

+

+"@types/serve-static@*":

+  version "1.13.10"

+  resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9"

+  integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==

+  dependencies:

+    "@types/mime" "^1"

+    "@types/node" "*"

+

+"@types/yauzl@^2.9.1":

+  version "2.9.2"

+  resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.2.tgz#c48e5d56aff1444409e39fa164b0b4d4552a7b7a"

+  integrity sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==

+  dependencies:

+    "@types/node" "*"

+

+"@typescript-eslint/eslint-plugin@4.28.0":

+  version "4.28.0"

+  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.0.tgz#1a66f03b264844387beb7dc85e1f1d403bd1803f"

+  integrity sha512-KcF6p3zWhf1f8xO84tuBailV5cN92vhS+VT7UJsPzGBm9VnQqfI9AsiMUFUCYHTYPg1uCCo+HyiDnpDuvkAMfQ==

+  dependencies:

+    "@typescript-eslint/experimental-utils" "4.28.0"

+    "@typescript-eslint/scope-manager" "4.28.0"

+    debug "^4.3.1"

+    functional-red-black-tree "^1.0.1"

+    regexpp "^3.1.0"

+    semver "^7.3.5"

+    tsutils "^3.21.0"

+

+"@typescript-eslint/eslint-plugin@^4.32.0":

+  version "4.33.0"

+  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276"

+  integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==

+  dependencies:

+    "@typescript-eslint/experimental-utils" "4.33.0"

+    "@typescript-eslint/scope-manager" "4.33.0"

+    debug "^4.3.1"

+    functional-red-black-tree "^1.0.1"

+    ignore "^5.1.8"

+    regexpp "^3.1.0"

+    semver "^7.3.5"

+    tsutils "^3.21.0"

+

+"@typescript-eslint/experimental-utils@4.28.0":

+  version "4.28.0"

+  resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.28.0.tgz#13167ed991320684bdc23588135ae62115b30ee0"

+  integrity sha512-9XD9s7mt3QWMk82GoyUpc/Ji03vz4T5AYlHF9DcoFNfJ/y3UAclRsfGiE2gLfXtyC+JRA3trR7cR296TEb1oiQ==

+  dependencies:

+    "@types/json-schema" "^7.0.7"

+    "@typescript-eslint/scope-manager" "4.28.0"

+    "@typescript-eslint/types" "4.28.0"

+    "@typescript-eslint/typescript-estree" "4.28.0"

+    eslint-scope "^5.1.1"

+    eslint-utils "^3.0.0"

+

+"@typescript-eslint/experimental-utils@4.33.0":

+  version "4.33.0"

+  resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd"

+  integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==

+  dependencies:

+    "@types/json-schema" "^7.0.7"

+    "@typescript-eslint/scope-manager" "4.33.0"

+    "@typescript-eslint/types" "4.33.0"

+    "@typescript-eslint/typescript-estree" "4.33.0"

+    eslint-scope "^5.1.1"

+    eslint-utils "^3.0.0"

+

+"@typescript-eslint/parser@4.28.0":

+  version "4.28.0"

+  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.28.0.tgz#2404c16751a28616ef3abab77c8e51d680a12caa"

+  integrity sha512-7x4D22oPY8fDaOCvkuXtYYTQ6mTMmkivwEzS+7iml9F9VkHGbbZ3x4fHRwxAb5KeuSkLqfnYjs46tGx2Nour4A==

+  dependencies:

+    "@typescript-eslint/scope-manager" "4.28.0"

+    "@typescript-eslint/types" "4.28.0"

+    "@typescript-eslint/typescript-estree" "4.28.0"

+    debug "^4.3.1"

+

+"@typescript-eslint/parser@^4.32.0":

+  version "4.33.0"

+  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899"

+  integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==

+  dependencies:

+    "@typescript-eslint/scope-manager" "4.33.0"

+    "@typescript-eslint/types" "4.33.0"

+    "@typescript-eslint/typescript-estree" "4.33.0"

+    debug "^4.3.1"

+

+"@typescript-eslint/scope-manager@4.28.0":

+  version "4.28.0"

+  resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.28.0.tgz#6a3009d2ab64a30fc8a1e257a1a320067f36a0ce"

+  integrity sha512-eCALCeScs5P/EYjwo6se9bdjtrh8ByWjtHzOkC4Tia6QQWtQr3PHovxh3TdYTuFcurkYI4rmFsRFpucADIkseg==

+  dependencies:

+    "@typescript-eslint/types" "4.28.0"

+    "@typescript-eslint/visitor-keys" "4.28.0"

+

+"@typescript-eslint/scope-manager@4.33.0":

+  version "4.33.0"

+  resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3"

+  integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==

+  dependencies:

+    "@typescript-eslint/types" "4.33.0"

+    "@typescript-eslint/visitor-keys" "4.33.0"

+

+"@typescript-eslint/types@4.28.0":

+  version "4.28.0"

+  resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.28.0.tgz#a33504e1ce7ac51fc39035f5fe6f15079d4dafb0"

+  integrity sha512-p16xMNKKoiJCVZY5PW/AfILw2xe1LfruTcfAKBj3a+wgNYP5I9ZEKNDOItoRt53p4EiPV6iRSICy8EPanG9ZVA==

+

+"@typescript-eslint/types@4.33.0":

+  version "4.33.0"

+  resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72"

+  integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==

+

+"@typescript-eslint/typescript-estree@4.28.0":

+  version "4.28.0"

+  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.28.0.tgz#e66d4e5aa2ede66fec8af434898fe61af10c71cf"

+  integrity sha512-m19UQTRtxMzKAm8QxfKpvh6OwQSXaW1CdZPoCaQuLwAq7VZMNuhJmZR4g5281s2ECt658sldnJfdpSZZaxUGMQ==

+  dependencies:

+    "@typescript-eslint/types" "4.28.0"

+    "@typescript-eslint/visitor-keys" "4.28.0"

+    debug "^4.3.1"

+    globby "^11.0.3"

+    is-glob "^4.0.1"

+    semver "^7.3.5"

+    tsutils "^3.21.0"

+

+"@typescript-eslint/typescript-estree@4.33.0":

+  version "4.33.0"

+  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609"

+  integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==

+  dependencies:

+    "@typescript-eslint/types" "4.33.0"

+    "@typescript-eslint/visitor-keys" "4.33.0"

+    debug "^4.3.1"

+    globby "^11.0.3"

+    is-glob "^4.0.1"

+    semver "^7.3.5"

+    tsutils "^3.21.0"

+

+"@typescript-eslint/visitor-keys@4.28.0":

+  version "4.28.0"

+  resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.28.0.tgz#255c67c966ec294104169a6939d96f91c8a89434"

+  integrity sha512-PjJyTWwrlrvM5jazxYF5ZPs/nl0kHDZMVbuIcbpawVXaDPelp3+S9zpOz5RmVUfS/fD5l5+ZXNKnWhNYjPzCvw==

+  dependencies:

+    "@typescript-eslint/types" "4.28.0"

+    eslint-visitor-keys "^2.0.0"

+

+"@typescript-eslint/visitor-keys@4.33.0":

+  version "4.33.0"

+  resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd"

+  integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==

+  dependencies:

+    "@typescript-eslint/types" "4.33.0"

+    eslint-visitor-keys "^2.0.0"

+

+accepts@~1.3.7:

+  version "1.3.7"

+  resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"

+  integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==

+  dependencies:

+    mime-types "~2.1.24"

+    negotiator "0.6.2"

+

+acorn-jsx@^5.3.1:

+  version "5.3.2"

+  resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"

+  integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==

+

+acorn@^7.4.0:

+  version "7.4.1"

+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"

+  integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==

+

+agent-base@6:

+  version "6.0.2"

+  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"

+  integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==

+  dependencies:

+    debug "4"

+

+aggregate-error@^3.0.0:

+  version "3.1.0"

+  resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"

+  integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==

+  dependencies:

+    clean-stack "^2.0.0"

+    indent-string "^4.0.0"

+

+ajv@^6.10.0, ajv@^6.12.4:

+  version "6.12.6"

+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"

+  integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==

+  dependencies:

+    fast-deep-equal "^3.1.1"

+    fast-json-stable-stringify "^2.0.0"

+    json-schema-traverse "^0.4.1"

+    uri-js "^4.2.2"

+

+ajv@^8.0.1:

+  version "8.6.3"

+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764"

+  integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==

+  dependencies:

+    fast-deep-equal "^3.1.1"

+    json-schema-traverse "^1.0.0"

+    require-from-string "^2.0.2"

+    uri-js "^4.2.2"

+

+ansi-colors@^4.1.1:

+  version "4.1.1"

+  resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"

+  integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==

+

+ansi-escapes@^4.3.0:

+  version "4.3.2"

+  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"

+  integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==

+  dependencies:

+    type-fest "^0.21.3"

+

+ansi-regex@^2.0.0:

+  version "2.1.1"

+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"

+  integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=

+

+ansi-regex@^3.0.0:

+  version "3.0.0"

+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"

+  integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=

+

+ansi-regex@^5.0.1:

+  version "5.0.1"

+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"

+  integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==

+

+ansi-styles@^3.2.1:

+  version "3.2.1"

+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"

+  integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==

+  dependencies:

+    color-convert "^1.9.0"

+

+ansi-styles@^4.0.0, ansi-styles@^4.1.0:

+  version "4.3.0"

+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"

+  integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==

+  dependencies:

+    color-convert "^2.0.1"

+

+anymatch@~3.1.2:

+  version "3.1.2"

+  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"

+  integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==

+  dependencies:

+    normalize-path "^3.0.0"

+    picomatch "^2.0.4"

+

+aproba@^1.0.3:

+  version "1.2.0"

+  resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"

+  integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==

+

+are-we-there-yet@~1.1.2:

+  version "1.1.7"

+  resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146"

+  integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==

+  dependencies:

+    delegates "^1.0.0"

+    readable-stream "^2.0.6"

+

+argparse@^1.0.7:

+  version "1.0.10"

+  resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"

+  integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==

+  dependencies:

+    sprintf-js "~1.0.2"

+

+array-flatten@1.1.1:

+  version "1.1.1"

+  resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"

+  integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=

+

+array-includes@^3.1.1, array-includes@^3.1.3:

+  version "3.1.4"

+  resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.4.tgz#f5b493162c760f3539631f005ba2bb46acb45ba9"

+  integrity sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==

+  dependencies:

+    call-bind "^1.0.2"

+    define-properties "^1.1.3"

+    es-abstract "^1.19.1"

+    get-intrinsic "^1.1.1"

+    is-string "^1.0.7"

+

+array-union@^2.1.0:

+  version "2.1.0"

+  resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"

+  integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==

+

+array.prototype.flatmap@^1.2.3, array.prototype.flatmap@^1.2.4:

+  version "1.2.5"

+  resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz#908dc82d8a406930fdf38598d51e7411d18d4446"

+  integrity sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==

+  dependencies:

+    call-bind "^1.0.0"

+    define-properties "^1.1.3"

+    es-abstract "^1.19.0"

+

+astral-regex@^2.0.0:

+  version "2.0.0"

+  resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"

+  integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==

+

+async@^3.1.0:

+  version "3.2.1"

+  resolved "https://registry.yarnpkg.com/async/-/async-3.2.1.tgz#d3274ec66d107a47476a4c49136aacdb00665fc8"

+  integrity sha512-XdD5lRO/87udXCMC9meWdYiR+Nq6ZjUfXidViUZGu2F1MO4T3XwZ1et0hb2++BgLfhyJwy44BGB/yx80ABx8hg==

+

+at-least-node@^1.0.0:

+  version "1.0.0"

+  resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"

+  integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==

+

+balanced-match@^1.0.0:

+  version "1.0.2"

+  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"

+  integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==

+

+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==

+

+basic-auth@~2.0.1:

+  version "2.0.1"

+  resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a"

+  integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==

+  dependencies:

+    safe-buffer "5.1.2"

+

+binary-extensions@^2.0.0:

+  version "2.2.0"

+  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"

+  integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==

+

+bintrees@1.0.1:

+  version "1.0.1"

+  resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.1.tgz#0e655c9b9c2435eaab68bf4027226d2b55a34524"

+  integrity sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=

+

+bl@^4.0.3:

+  version "4.1.0"

+  resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"

+  integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==

+  dependencies:

+    buffer "^5.5.0"

+    inherits "^2.0.4"

+    readable-stream "^3.4.0"

+

+body-parser@1.19.0:

+  version "1.19.0"

+  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"

+  integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==

+  dependencies:

+    bytes "3.1.0"

+    content-type "~1.0.4"

+    debug "2.6.9"

+    depd "~1.1.2"

+    http-errors "1.7.2"

+    iconv-lite "0.4.24"

+    on-finished "~2.3.0"

+    qs "6.7.0"

+    raw-body "2.4.0"

+    type-is "~1.6.17"

+

+brace-expansion@^1.1.7:

+  version "1.1.11"

+  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"

+  integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==

+  dependencies:

+    balanced-match "^1.0.0"

+    concat-map "0.0.1"

+

+braces@^3.0.1, braces@~3.0.2:

+  version "3.0.2"

+  resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"

+  integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==

+  dependencies:

+    fill-range "^7.0.1"

+

+buffer-crc32@~0.2.3:

+  version "0.2.13"

+  resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"

+  integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=

+

+buffer@^5.2.1, buffer@^5.5.0:

+  version "5.7.1"

+  resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"

+  integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==

+  dependencies:

+    base64-js "^1.3.1"

+    ieee754 "^1.1.13"

+

+bytes@3.1.0:

+  version "3.1.0"

+  resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"

+  integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==

+

+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==

+  dependencies:

+    function-bind "^1.1.1"

+    get-intrinsic "^1.0.2"

+

+callsites@^3.0.0:

+  version "3.1.0"

+  resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"

+  integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==

+

+chalk@^2.0.0:

+  version "2.4.2"

+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"

+  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==

+  dependencies:

+    ansi-styles "^3.2.1"

+    escape-string-regexp "^1.0.5"

+    supports-color "^5.3.0"

+

+chalk@^4.0.0, chalk@^4.1.0:

+  version "4.1.2"

+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"

+  integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==

+  dependencies:

+    ansi-styles "^4.1.0"

+    supports-color "^7.1.0"

+

+chokidar@^3.5.2:

+  version "3.5.2"

+  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75"

+  integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==

+  dependencies:

+    anymatch "~3.1.2"

+    braces "~3.0.2"

+    glob-parent "~5.1.2"

+    is-binary-path "~2.1.0"

+    is-glob "~4.0.1"

+    normalize-path "~3.0.0"

+    readdirp "~3.6.0"

+  optionalDependencies:

+    fsevents "~2.3.2"

+

+chownr@^1.1.1:

+  version "1.1.4"

+  resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"

+  integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==

+

+ci-info@^2.0.0:

+  version "2.0.0"

+  resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"

+  integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==

+

+clean-stack@^2.0.0:

+  version "2.2.0"

+  resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"

+  integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==

+

+cli-cursor@^3.1.0:

+  version "3.1.0"

+  resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"

+  integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==

+  dependencies:

+    restore-cursor "^3.1.0"

+

+cli-truncate@2.1.0, cli-truncate@^2.1.0:

+  version "2.1.0"

+  resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"

+  integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==

+  dependencies:

+    slice-ansi "^3.0.0"

+    string-width "^4.2.0"

+

+cliui@^7.0.2:

+  version "7.0.4"

+  resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"

+  integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==

+  dependencies:

+    string-width "^4.2.0"

+    strip-ansi "^6.0.0"

+    wrap-ansi "^7.0.0"

+

+code-point-at@^1.0.0:

+  version "1.1.0"

+  resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"

+  integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=

+

+color-convert@^1.9.0, color-convert@^1.9.1:

+  version "1.9.3"

+  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"

+  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.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"

+  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.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"

+  integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=

+

+color-name@^1.0.0, color-name@~1.1.4:

+  version "1.1.4"

+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"

+  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==

+

+color-string@^1.5.2:

+  version "1.6.0"

+  resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312"

+  integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==

+  dependencies:

+    color-name "^1.0.0"

+    simple-swizzle "^0.2.2"

+

+color@3.0.x:

+  version "3.0.0"

+  resolved "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz#d920b4328d534a3ac8295d68f7bd4ba6c427be9a"

+  integrity sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==

+  dependencies:

+    color-convert "^1.9.1"

+    color-string "^1.5.2"

+

+colorette@^1.4.0:

+  version "1.4.0"

+  resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40"

+  integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==

+

+colors@^1.2.1:

+  version "1.4.0"

+  resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"

+  integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==

+

+colorspace@1.1.x:

+  version "1.1.2"

+  resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.2.tgz#e0128950d082b86a2168580796a0aa5d6c68d8c5"

+  integrity sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==

+  dependencies:

+    color "3.0.x"

+    text-hex "1.0.x"

+

+commander@^8.2.0:

+  version "8.2.0"

+  resolved "https://registry.yarnpkg.com/commander/-/commander-8.2.0.tgz#37fe2bde301d87d47a53adeff8b5915db1381ca8"

+  integrity sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==

+

+comment-parser@1.1.2:

+  version "1.1.2"

+  resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.1.2.tgz#e5317d7a2ec22b470dcb54a29b25426c30bf39d8"

+  integrity sha512-AOdq0i8ghZudnYv8RUnHrhTgafUGs61Rdz9jemU5x2lnZwAWyOq7vySo626K59e1fVKH1xSRorJwPVRLSWOoAQ==

+

+comment-parser@1.2.4:

+  version "1.2.4"

+  resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.2.4.tgz#489f3ee55dfd184a6e4bffb31baba284453cb760"

+  integrity sha512-pm0b+qv+CkWNriSTMsfnjChF9kH0kxz55y44Wo5le9qLxMj5xDQAaEd9ZN1ovSuk9CsrncWaFwgpOMg7ClJwkw==

+

+compare-versions@^3.6.0:

+  version "3.6.0"

+  resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62"

+  integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==

+

+concat-map@0.0.1:

+  version "0.0.1"

+  resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"

+  integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=

+

+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"

+  integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=

+

+content-disposition@0.5.3:

+  version "0.5.3"

+  resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"

+  integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==

+  dependencies:

+    safe-buffer "5.1.2"

+

+content-type@~1.0.4:

+  version "1.0.4"

+  resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"

+  integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==

+

+cookie-signature@1.0.6:

+  version "1.0.6"

+  resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"

+  integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=

+

+cookie@0.4.0:

+  version "0.4.0"

+  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"

+  integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==

+

+core-util-is@~1.0.0:

+  version "1.0.3"

+  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"

+  integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==

+

+cosmiconfig@^7.0.0, cosmiconfig@^7.0.1:

+  version "7.0.1"

+  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d"

+  integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==

+  dependencies:

+    "@types/parse-json" "^4.0.0"

+    import-fresh "^3.2.1"

+    parse-json "^5.0.0"

+    path-type "^4.0.0"

+    yaml "^1.10.0"

+

+cross-spawn@^7.0.2, cross-spawn@^7.0.3:

+  version "7.0.3"

+  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"

+  integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==

+  dependencies:

+    path-key "^3.1.0"

+    shebang-command "^2.0.0"

+    which "^2.0.1"

+

+debug@2.6.9:

+  version "2.6.9"

+  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"

+  integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==

+  dependencies:

+    ms "2.0.0"

+

+debug@4, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2:

+  version "4.3.2"

+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"

+  integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==

+  dependencies:

+    ms "2.1.2"

+

+debug@4.3.1:

+  version "4.3.1"

+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"

+  integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==

+  dependencies:

+    ms "2.1.2"

+

+decompress-response@^4.2.0:

+  version "4.2.1"

+  resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986"

+  integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==

+  dependencies:

+    mimic-response "^2.0.0"

+

+deep-extend@^0.6.0:

+  version "0.6.0"

+  resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"

+  integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==

+

+deep-is@^0.1.3, deep-is@~0.1.3:

+  version "0.1.4"

+  resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"

+  integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==

+

+define-properties@^1.1.3:

+  version "1.1.3"

+  resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"

+  integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==

+  dependencies:

+    object-keys "^1.0.12"

+

+delegates@^1.0.0:

+  version "1.0.0"

+  resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"

+  integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=

+

+depd@~1.1.2:

+  version "1.1.2"

+  resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"

+  integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=

+

+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==

+

+destroy@~1.0.4:

+  version "1.0.4"

+  resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"

+  integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=

+

+detect-libc@^1.0.3:

+  version "1.0.3"

+  resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"

+  integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=

+

+devtools-protocol@0.0.901419:

+  version "0.0.901419"

+  resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.901419.tgz#79b5459c48fe7e1c5563c02bd72f8fec3e0cebcd"

+  integrity sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==

+

+dir-glob@^3.0.1:

+  version "3.0.1"

+  resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"

+  integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==

+  dependencies:

+    path-type "^4.0.0"

+

+doctrine@^2.1.0:

+  version "2.1.0"

+  resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"

+  integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==

+  dependencies:

+    esutils "^2.0.2"

+

+doctrine@^3.0.0:

+  version "3.0.0"

+  resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"

+  integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==

+  dependencies:

+    esutils "^2.0.2"

+

+duplexer@~0.1.1:

+  version "0.1.2"

+  resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"

+  integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==

+

+ee-first@1.1.1:

+  version "1.1.1"

+  resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"

+  integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=

+

+emoji-regex@^8.0.0:

+  version "8.0.0"

+  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"

+  integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==

+

+enabled@2.0.x:

+  version "2.0.0"

+  resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2"

+  integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==

+

+encodeurl@~1.0.2:

+  version "1.0.2"

+  resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"

+  integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=

+

+end-of-stream@^1.1.0, end-of-stream@^1.4.1:

+  version "1.4.4"

+  resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"

+  integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==

+  dependencies:

+    once "^1.4.0"

+

+enquirer@^2.3.5, enquirer@^2.3.6:

+  version "2.3.6"

+  resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"

+  integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==

+  dependencies:

+    ansi-colors "^4.1.1"

+

+error-ex@^1.3.1:

+  version "1.3.2"

+  resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"

+  integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==

+  dependencies:

+    is-arrayish "^0.2.1"

+

+es-abstract@^1.19.0, es-abstract@^1.19.1:

+  version "1.19.1"

+  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3"

+  integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==

+  dependencies:

+    call-bind "^1.0.2"

+    es-to-primitive "^1.2.1"

+    function-bind "^1.1.1"

+    get-intrinsic "^1.1.1"

+    get-symbol-description "^1.0.0"

+    has "^1.0.3"

+    has-symbols "^1.0.2"

+    internal-slot "^1.0.3"

+    is-callable "^1.2.4"

+    is-negative-zero "^2.0.1"

+    is-regex "^1.1.4"

+    is-shared-array-buffer "^1.0.1"

+    is-string "^1.0.7"

+    is-weakref "^1.0.1"

+    object-inspect "^1.11.0"

+    object-keys "^1.1.1"

+    object.assign "^4.1.2"

+    string.prototype.trimend "^1.0.4"

+    string.prototype.trimstart "^1.0.4"

+    unbox-primitive "^1.0.1"

+

+es-to-primitive@^1.2.1:

+  version "1.2.1"

+  resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"

+  integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==

+  dependencies:

+    is-callable "^1.1.4"

+    is-date-object "^1.0.1"

+    is-symbol "^1.0.2"

+

+escalade@^3.1.1:

+  version "3.1.1"

+  resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"

+  integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==

+

+escape-html@~1.0.3:

+  version "1.0.3"

+  resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"

+  integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=

+

+escape-string-regexp@^1.0.5:

+  version "1.0.5"

+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"

+  integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=

+

+escape-string-regexp@^4.0.0:

+  version "4.0.0"

+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"

+  integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==

+

+escodegen@^2.0.0:

+  version "2.0.0"

+  resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd"

+  integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==

+  dependencies:

+    esprima "^4.0.1"

+    estraverse "^5.2.0"

+    esutils "^2.0.2"

+    optionator "^0.8.1"

+  optionalDependencies:

+    source-map "~0.6.1"

+

+eslint-config-prettier@7.2.0:

+  version "7.2.0"

+  resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz#f4a4bd2832e810e8cc7c1411ec85b3e85c0c53f9"

+  integrity sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==

+

+eslint-config-prettier@^8.3.0:

+  version "8.3.0"

+  resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a"

+  integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==

+

+eslint-plugin-jsdoc@31.6.1:

+  version "31.6.1"

+  resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-31.6.1.tgz#98040c801500572fff71c984a097d89946f1e450"

+  integrity sha512-5hCV3u+1VSEUMyfdTl+dpWsioD7tqQr2ILQw+KbXrF42AVxCLO8gnNLR6zDCDjqGGpt79V1sgY0RRchCWuCigg==

+  dependencies:

+    comment-parser "1.1.2"

+    debug "^4.3.1"

+    jsdoctypeparser "^9.0.0"

+    lodash "^4.17.20"

+    regextras "^0.7.1"

+    semver "^7.3.4"

+    spdx-expression-parse "^3.0.1"

+

+eslint-plugin-jsdoc@^36.1.0:

+  version "36.1.0"

+  resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-36.1.0.tgz#8dfe5f27edfb6aa3812e6d86ccaea849ddc86b03"

+  integrity sha512-Qpied2AJCQcScxfzTObLKRiP5QgLXjMU/ITjBagEV5p2Q/HpumD1EQtazdRYdjDSwPmXhwOl2yquwOGQ4HOJNw==

+  dependencies:

+    "@es-joy/jsdoccomment" "0.10.8"

+    comment-parser "1.2.4"

+    debug "^4.3.2"

+    esquery "^1.4.0"

+    jsdoc-type-pratt-parser "^1.1.1"

+    lodash "^4.17.21"

+    regextras "^0.8.0"

+    semver "^7.3.5"

+    spdx-expression-parse "^3.0.1"

+

+eslint-plugin-prettier@3.3.1:

+  version "3.3.1"

+  resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz#7079cfa2497078905011e6f82e8dd8453d1371b7"

+  integrity sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ==

+  dependencies:

+    prettier-linter-helpers "^1.0.0"

+

+eslint-plugin-prettier@^4.0.0:

+  version "4.0.0"

+  resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz#8b99d1e4b8b24a762472b4567992023619cb98e0"

+  integrity sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==

+  dependencies:

+    prettier-linter-helpers "^1.0.0"

+

+eslint-plugin-react-hooks@4.2.0, eslint-plugin-react-hooks@^4.2.0:

+  version "4.2.0"

+  resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556"

+  integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==

+

+eslint-plugin-react@7.22.0:

+  version "7.22.0"

+  resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz#3d1c542d1d3169c45421c1215d9470e341707269"

+  integrity sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA==

+  dependencies:

+    array-includes "^3.1.1"

+    array.prototype.flatmap "^1.2.3"

+    doctrine "^2.1.0"

+    has "^1.0.3"

+    jsx-ast-utils "^2.4.1 || ^3.0.0"

+    object.entries "^1.1.2"

+    object.fromentries "^2.0.2"

+    object.values "^1.1.1"

+    prop-types "^15.7.2"

+    resolve "^1.18.1"

+    string.prototype.matchall "^4.0.2"

+

+eslint-plugin-react@^7.26.1:

+  version "7.26.1"

+  resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.26.1.tgz#41bcfe3e39e6a5ac040971c1af94437c80daa40e"

+  integrity sha512-Lug0+NOFXeOE+ORZ5pbsh6mSKjBKXDXItUD2sQoT+5Yl0eoT82DqnXeTMfUare4QVCn9QwXbfzO/dBLjLXwVjQ==

+  dependencies:

+    array-includes "^3.1.3"

+    array.prototype.flatmap "^1.2.4"

+    doctrine "^2.1.0"

+    estraverse "^5.2.0"

+    jsx-ast-utils "^2.4.1 || ^3.0.0"

+    minimatch "^3.0.4"

+    object.entries "^1.1.4"

+    object.fromentries "^2.0.4"

+    object.hasown "^1.0.0"

+    object.values "^1.1.4"

+    prop-types "^15.7.2"

+    resolve "^2.0.0-next.3"

+    semver "^6.3.0"

+    string.prototype.matchall "^4.0.5"

+

+eslint-scope@^5.1.1:

+  version "5.1.1"

+  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"

+  integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==

+  dependencies:

+    esrecurse "^4.3.0"

+    estraverse "^4.1.1"

+

+eslint-utils@^2.1.0:

+  version "2.1.0"

+  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"

+  integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==

+  dependencies:

+    eslint-visitor-keys "^1.1.0"

+

+eslint-utils@^3.0.0:

+  version "3.0.0"

+  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"

+  integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==

+  dependencies:

+    eslint-visitor-keys "^2.0.0"

+

+eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:

+  version "1.3.0"

+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"

+  integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==

+

+eslint-visitor-keys@^2.0.0:

+  version "2.1.0"

+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"

+  integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==

+

+eslint@7.21.0:

+  version "7.21.0"

+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.21.0.tgz#4ecd5b8c5b44f5dedc9b8a110b01bbfeb15d1c83"

+  integrity sha512-W2aJbXpMNofUp0ztQaF40fveSsJBjlSCSWpy//gzfTvwC+USs/nceBrKmlJOiM8r1bLwP2EuYkCqArn/6QTIgg==

+  dependencies:

+    "@babel/code-frame" "7.12.11"

+    "@eslint/eslintrc" "^0.4.0"

+    ajv "^6.10.0"

+    chalk "^4.0.0"

+    cross-spawn "^7.0.2"

+    debug "^4.0.1"

+    doctrine "^3.0.0"

+    enquirer "^2.3.5"

+    eslint-scope "^5.1.1"

+    eslint-utils "^2.1.0"

+    eslint-visitor-keys "^2.0.0"

+    espree "^7.3.1"

+    esquery "^1.4.0"

+    esutils "^2.0.2"

+    file-entry-cache "^6.0.1"

+    functional-red-black-tree "^1.0.1"

+    glob-parent "^5.0.0"

+    globals "^12.1.0"

+    ignore "^4.0.6"

+    import-fresh "^3.0.0"

+    imurmurhash "^0.1.4"

+    is-glob "^4.0.0"

+    js-yaml "^3.13.1"

+    json-stable-stringify-without-jsonify "^1.0.1"

+    levn "^0.4.1"

+    lodash "^4.17.20"

+    minimatch "^3.0.4"

+    natural-compare "^1.4.0"

+    optionator "^0.9.1"

+    progress "^2.0.0"

+    regexpp "^3.1.0"

+    semver "^7.2.1"

+    strip-ansi "^6.0.0"

+    strip-json-comments "^3.1.0"

+    table "^6.0.4"

+    text-table "^0.2.0"

+    v8-compile-cache "^2.0.3"

+

+eslint@^7.32.0:

+  version "7.32.0"

+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d"

+  integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==

+  dependencies:

+    "@babel/code-frame" "7.12.11"

+    "@eslint/eslintrc" "^0.4.3"

+    "@humanwhocodes/config-array" "^0.5.0"

+    ajv "^6.10.0"

+    chalk "^4.0.0"

+    cross-spawn "^7.0.2"

+    debug "^4.0.1"

+    doctrine "^3.0.0"

+    enquirer "^2.3.5"

+    escape-string-regexp "^4.0.0"

+    eslint-scope "^5.1.1"

+    eslint-utils "^2.1.0"

+    eslint-visitor-keys "^2.0.0"

+    espree "^7.3.1"

+    esquery "^1.4.0"

+    esutils "^2.0.2"

+    fast-deep-equal "^3.1.3"

+    file-entry-cache "^6.0.1"

+    functional-red-black-tree "^1.0.1"

+    glob-parent "^5.1.2"

+    globals "^13.6.0"

+    ignore "^4.0.6"

+    import-fresh "^3.0.0"

+    imurmurhash "^0.1.4"

+    is-glob "^4.0.0"

+    js-yaml "^3.13.1"

+    json-stable-stringify-without-jsonify "^1.0.1"

+    levn "^0.4.1"

+    lodash.merge "^4.6.2"

+    minimatch "^3.0.4"

+    natural-compare "^1.4.0"

+    optionator "^0.9.1"

+    progress "^2.0.0"

+    regexpp "^3.1.0"

+    semver "^7.2.1"

+    strip-ansi "^6.0.0"

+    strip-json-comments "^3.1.0"

+    table "^6.0.9"

+    text-table "^0.2.0"

+    v8-compile-cache "^2.0.3"

+

+espree@^7.3.0, espree@^7.3.1:

+  version "7.3.1"

+  resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"

+  integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==

+  dependencies:

+    acorn "^7.4.0"

+    acorn-jsx "^5.3.1"

+    eslint-visitor-keys "^1.3.0"

+

+esprima@^4.0.0, esprima@^4.0.1:

+  version "4.0.1"

+  resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"

+  integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==

+

+esquery@^1.4.0:

+  version "1.4.0"

+  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"

+  integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==

+  dependencies:

+    estraverse "^5.1.0"

+

+esrecurse@^4.3.0:

+  version "4.3.0"

+  resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"

+  integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==

+  dependencies:

+    estraverse "^5.2.0"

+

+estraverse@^4.1.1:

+  version "4.3.0"

+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"

+  integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==

+

+estraverse@^5.1.0, estraverse@^5.2.0:

+  version "5.2.0"

+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"

+  integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==

+

+esutils@^2.0.2:

+  version "2.0.3"

+  resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"

+  integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==

+

+etag@~1.8.1:

+  version "1.8.1"

+  resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"

+  integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=

+

+event-stream@=3.3.4:

+  version "3.3.4"

+  resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"

+  integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=

+  dependencies:

+    duplexer "~0.1.1"

+    from "~0"

+    map-stream "~0.1.0"

+    pause-stream "0.0.11"

+    split "0.3"

+    stream-combiner "~0.0.4"

+    through "~2.3.1"

+

+execa@^5.1.1:

+  version "5.1.1"

+  resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"

+  integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==

+  dependencies:

+    cross-spawn "^7.0.3"

+    get-stream "^6.0.0"

+    human-signals "^2.1.0"

+    is-stream "^2.0.0"

+    merge-stream "^2.0.0"

+    npm-run-path "^4.0.1"

+    onetime "^5.1.2"

+    signal-exit "^3.0.3"

+    strip-final-newline "^2.0.0"

+

+expand-template@^2.0.3:

+  version "2.0.3"

+  resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c"

+  integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==

+

+express-prom-bundle@^5.1.5:

+  version "5.1.5"

+  resolved "https://registry.yarnpkg.com/express-prom-bundle/-/express-prom-bundle-5.1.5.tgz#f298615879299a58cf8ec1350186f4de91d91fa4"

+  integrity sha512-tUaQUBu0r9zGYcVDpKBI2AeWimuuodaC5BSBkzLPQxRTxaKQShQNnONQSYwjLxbHfPwlCKVZlzfbB9Recnj0Vg==

+  dependencies:

+    on-finished "^2.3.0"

+    url-value-parser "^2.0.0"

+

+express@^4.16.3:

+  version "4.17.1"

+  resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"

+  integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==

+  dependencies:

+    accepts "~1.3.7"

+    array-flatten "1.1.1"

+    body-parser "1.19.0"

+    content-disposition "0.5.3"

+    content-type "~1.0.4"

+    cookie "0.4.0"

+    cookie-signature "1.0.6"

+    debug "2.6.9"

+    depd "~1.1.2"

+    encodeurl "~1.0.2"

+    escape-html "~1.0.3"

+    etag "~1.8.1"

+    finalhandler "~1.1.2"

+    fresh "0.5.2"

+    merge-descriptors "1.0.1"

+    methods "~1.1.2"

+    on-finished "~2.3.0"

+    parseurl "~1.3.3"

+    path-to-regexp "0.1.7"

+    proxy-addr "~2.0.5"

+    qs "6.7.0"

+    range-parser "~1.2.1"

+    safe-buffer "5.1.2"

+    send "0.17.1"

+    serve-static "1.14.1"

+    setprototypeof "1.1.1"

+    statuses "~1.5.0"

+    type-is "~1.6.18"

+    utils-merge "1.0.1"

+    vary "~1.1.2"

+

+extract-zip@2.0.1:

+  version "2.0.1"

+  resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"

+  integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==

+  dependencies:

+    debug "^4.1.1"

+    get-stream "^5.1.0"

+    yauzl "^2.10.0"

+  optionalDependencies:

+    "@types/yauzl" "^2.9.1"

+

+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:

+  version "3.1.3"

+  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"

+  integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==

+

+fast-diff@^1.1.2:

+  version "1.2.0"

+  resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"

+  integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==

+

+fast-glob@^3.1.1:

+  version "3.2.7"

+  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1"

+  integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==

+  dependencies:

+    "@nodelib/fs.stat" "^2.0.2"

+    "@nodelib/fs.walk" "^1.2.3"

+    glob-parent "^5.1.2"

+    merge2 "^1.3.0"

+    micromatch "^4.0.4"

+

+fast-json-stable-stringify@^2.0.0:

+  version "2.1.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-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:

+  version "2.0.6"

+  resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"

+  integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=

+

+fastq@^1.6.0:

+  version "1.13.0"

+  resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"

+  integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==

+  dependencies:

+    reusify "^1.0.4"

+

+fd-slicer@~1.1.0:

+  version "1.1.0"

+  resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"

+  integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=

+  dependencies:

+    pend "~1.2.0"

+

+fecha@^4.2.0:

+  version "4.2.1"

+  resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.1.tgz#0a83ad8f86ef62a091e22bb5a039cd03d23eecce"

+  integrity sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==

+

+file-entry-cache@^6.0.1:

+  version "6.0.1"

+  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"

+  integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==

+  dependencies:

+    flat-cache "^3.0.4"

+

+fill-range@^7.0.1:

+  version "7.0.1"

+  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"

+  integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==

+  dependencies:

+    to-regex-range "^5.0.1"

+

+finalhandler@~1.1.2:

+  version "1.1.2"

+  resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"

+  integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==

+  dependencies:

+    debug "2.6.9"

+    encodeurl "~1.0.2"

+    escape-html "~1.0.3"

+    on-finished "~2.3.0"

+    parseurl "~1.3.3"

+    statuses "~1.5.0"

+    unpipe "~1.0.0"

+

+find-up@^4.0.0:

+  version "4.1.0"

+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"

+  integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==

+  dependencies:

+    locate-path "^5.0.0"

+    path-exists "^4.0.0"

+

+find-up@^5.0.0:

+  version "5.0.0"

+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"

+  integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==

+  dependencies:

+    locate-path "^6.0.0"

+    path-exists "^4.0.0"

+

+find-versions@^4.0.0:

+  version "4.0.0"

+  resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965"

+  integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==

+  dependencies:

+    semver-regex "^3.1.2"

+

+flat-cache@^3.0.4:

+  version "3.0.4"

+  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"

+  integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==

+  dependencies:

+    flatted "^3.1.0"

+    rimraf "^3.0.2"

+

+flatted@^3.1.0:

+  version "3.2.2"

+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561"

+  integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==

+

+fn.name@1.x.x:

+  version "1.1.0"

+  resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc"

+  integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==

+

+forwarded@0.2.0:

+  version "0.2.0"

+  resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"

+  integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==

+

+fresh@0.5.2:

+  version "0.5.2"

+  resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"

+  integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=

+

+from2@^2.3.0:

+  version "2.3.0"

+  resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"

+  integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=

+  dependencies:

+    inherits "^2.0.1"

+    readable-stream "^2.0.0"

+

+from@~0:

+  version "0.1.7"

+  resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"

+  integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=

+

+fs-constants@^1.0.0:

+  version "1.0.0"

+  resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"

+  integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==

+

+fs-extra@^9.1.0:

+  version "9.1.0"

+  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"

+  integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==

+  dependencies:

+    at-least-node "^1.0.0"

+    graceful-fs "^4.2.0"

+    jsonfile "^6.0.1"

+    universalify "^2.0.0"

+

+fs.realpath@^1.0.0:

+  version "1.0.0"

+  resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"

+  integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=

+

+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==

+

+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==

+

+functional-red-black-tree@^1.0.1:

+  version "1.0.1"

+  resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"

+  integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=

+

+gauge@~2.7.3:

+  version "2.7.4"

+  resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"

+  integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=

+  dependencies:

+    aproba "^1.0.3"

+    console-control-strings "^1.0.0"

+    has-unicode "^2.0.0"

+    object-assign "^4.1.0"

+    signal-exit "^3.0.0"

+    string-width "^1.0.1"

+    strip-ansi "^3.0.1"

+    wide-align "^1.1.0"

+

+get-caller-file@^2.0.5:

+  version "2.0.5"

+  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.0, get-intrinsic@^1.1.1:

+  version "1.1.1"

+  resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"

+  integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==

+  dependencies:

+    function-bind "^1.1.1"

+    has "^1.0.3"

+    has-symbols "^1.0.1"

+

+get-own-enumerable-property-symbols@^3.0.0:

+  version "3.0.2"

+  resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664"

+  integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==

+

+get-stream@^5.1.0:

+  version "5.2.0"

+  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"

+  integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==

+  dependencies:

+    pump "^3.0.0"

+

+get-stream@^6.0.0:

+  version "6.0.1"

+  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"

+  integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==

+

+get-symbol-description@^1.0.0:

+  version "1.0.0"

+  resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"

+  integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==

+  dependencies:

+    call-bind "^1.0.2"

+    get-intrinsic "^1.1.1"

+

+github-from-package@0.0.0:

+  version "0.0.0"

+  resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce"

+  integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=

+

+glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.2:

+  version "5.1.2"

+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"

+  integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==

+  dependencies:

+    is-glob "^4.0.1"

+

+glob@^7.1.3:

+  version "7.2.0"

+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"

+  integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==

+  dependencies:

+    fs.realpath "^1.0.0"

+    inflight "^1.0.4"

+    inherits "2"

+    minimatch "^3.0.4"

+    once "^1.3.0"

+    path-is-absolute "^1.0.0"

+

+globals@^12.1.0:

+  version "12.4.0"

+  resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"

+  integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==

+  dependencies:

+    type-fest "^0.8.1"

+

+globals@^13.6.0, globals@^13.9.0:

+  version "13.11.0"

+  resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7"

+  integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==

+  dependencies:

+    type-fest "^0.20.2"

+

+globby@^11.0.3:

+  version "11.0.4"

+  resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5"

+  integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==

+  dependencies:

+    array-union "^2.1.0"

+    dir-glob "^3.0.1"

+    fast-glob "^3.1.1"

+    ignore "^5.1.4"

+    merge2 "^1.3.0"

+    slash "^3.0.0"

+

+google-protobuf@3.5.0:

+  version "3.5.0"

+  resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.5.0.tgz#b8cc63c74d83457bd8a9a904503c8efb26bca339"

+  integrity sha1-uMxjx02DRXvYqakEUDyO+ya8ozk=

+

+graceful-fs@^4.1.6, graceful-fs@^4.2.0:

+  version "4.2.8"

+  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"

+  integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==

+

+has-bigints@^1.0.1:

+  version "1.0.1"

+  resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113"

+  integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==

+

+has-flag@^3.0.0:

+  version "3.0.0"

+  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"

+  integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=

+

+has-flag@^4.0.0:

+  version "4.0.0"

+  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"

+  integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==

+

+has-symbols@^1.0.1, has-symbols@^1.0.2:

+  version "1.0.2"

+  resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"

+  integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==

+

+has-tostringtag@^1.0.0:

+  version "1.0.0"

+  resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"

+  integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==

+  dependencies:

+    has-symbols "^1.0.2"

+

+has-unicode@^2.0.0:

+  version "2.0.1"

+  resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"

+  integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=

+

+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"

+

+http-errors@1.7.2:

+  version "1.7.2"

+  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"

+  integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==

+  dependencies:

+    depd "~1.1.2"

+    inherits "2.0.3"

+    setprototypeof "1.1.1"

+    statuses ">= 1.5.0 < 2"

+    toidentifier "1.0.0"

+

+http-errors@~1.7.2:

+  version "1.7.3"

+  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"

+  integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==

+  dependencies:

+    depd "~1.1.2"

+    inherits "2.0.4"

+    setprototypeof "1.1.1"

+    statuses ">= 1.5.0 < 2"

+    toidentifier "1.0.0"

+

+https-proxy-agent@5.0.0, https-proxy-agent@^5.0.0:

+  version "5.0.0"

+  resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"

+  integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==

+  dependencies:

+    agent-base "6"

+    debug "4"

+

+human-signals@^2.1.0:

+  version "2.1.0"

+  resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"

+  integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==

+

+husky@^4.3.8:

+  version "4.3.8"

+  resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.8.tgz#31144060be963fd6850e5cc8f019a1dfe194296d"

+  integrity sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==

+  dependencies:

+    chalk "^4.0.0"

+    ci-info "^2.0.0"

+    compare-versions "^3.6.0"

+    cosmiconfig "^7.0.0"

+    find-versions "^4.0.0"

+    opencollective-postinstall "^2.0.2"

+    pkg-dir "^5.0.0"

+    please-upgrade-node "^3.2.0"

+    slash "^3.0.0"

+    which-pm-runs "^1.0.0"

+

+iconv-lite@0.4.24:

+  version "0.4.24"

+  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"

+  integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==

+  dependencies:

+    safer-buffer ">= 2.1.2 < 3"

+

+ieee754@^1.1.13:

+  version "1.2.1"

+  resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"

+  integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==

+

+ignore@^4.0.6:

+  version "4.0.6"

+  resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"

+  integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==

+

+ignore@^5.1.4, ignore@^5.1.8:

+  version "5.1.8"

+  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"

+  integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==

+

+import-fresh@^3.0.0, import-fresh@^3.2.1:

+  version "3.3.0"

+  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"

+  integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==

+  dependencies:

+    parent-module "^1.0.0"

+    resolve-from "^4.0.0"

+

+imurmurhash@^0.1.4:

+  version "0.1.4"

+  resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"

+  integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=

+

+indent-string@^4.0.0:

+  version "4.0.0"

+  resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"

+  integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==

+

+inflight@^1.0.4:

+  version "1.0.6"

+  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"

+  integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=

+  dependencies:

+    once "^1.3.0"

+    wrappy "1"

+

+inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:

+  version "2.0.4"

+  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"

+  integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==

+

+inherits@2.0.3:

+  version "2.0.3"

+  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"

+  integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=

+

+ini@~1.3.0:

+  version "1.3.8"

+  resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"

+  integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==

+

+internal-slot@^1.0.3:

+  version "1.0.3"

+  resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c"

+  integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==

+  dependencies:

+    get-intrinsic "^1.1.0"

+    has "^1.0.3"

+    side-channel "^1.0.4"

+

+into-stream@^6.0.0:

+  version "6.0.0"

+  resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-6.0.0.tgz#4bfc1244c0128224e18b8870e85b2de8e66c6702"

+  integrity sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==

+  dependencies:

+    from2 "^2.3.0"

+    p-is-promise "^3.0.0"

+

+ipaddr.js@1.9.1:

+  version "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==

+

+is-arrayish@^0.2.1:

+  version "0.2.1"

+  resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"

+  integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=

+

+is-arrayish@^0.3.1:

+  version "0.3.2"

+  resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"

+  integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==

+

+is-bigint@^1.0.1:

+  version "1.0.4"

+  resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"

+  integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==

+  dependencies:

+    has-bigints "^1.0.1"

+

+is-binary-path@~2.1.0:

+  version "2.1.0"

+  resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"

+  integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==

+  dependencies:

+    binary-extensions "^2.0.0"

+

+is-boolean-object@^1.1.0:

+  version "1.1.2"

+  resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"

+  integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==

+  dependencies:

+    call-bind "^1.0.2"

+    has-tostringtag "^1.0.0"

+

+is-callable@^1.1.4, is-callable@^1.2.4:

+  version "1.2.4"

+  resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945"

+  integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==

+

+is-core-module@^2.2.0:

+  version "2.7.0"

+  resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.7.0.tgz#3c0ef7d31b4acfc574f80c58409d568a836848e3"

+  integrity sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==

+  dependencies:

+    has "^1.0.3"

+

+is-date-object@^1.0.1:

+  version "1.0.5"

+  resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"

+  integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==

+  dependencies:

+    has-tostringtag "^1.0.0"

+

+is-extglob@^2.1.1:

+  version "2.1.1"

+  resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"

+  integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=

+

+is-fullwidth-code-point@^1.0.0:

+  version "1.0.0"

+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"

+  integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=

+  dependencies:

+    number-is-nan "^1.0.0"

+

+is-fullwidth-code-point@^2.0.0:

+  version "2.0.0"

+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"

+  integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=

+

+is-fullwidth-code-point@^3.0.0:

+  version "3.0.0"

+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"

+  integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==

+

+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:

+  version "4.0.3"

+  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"

+  integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==

+  dependencies:

+    is-extglob "^2.1.1"

+

+is-negative-zero@^2.0.1:

+  version "2.0.1"

+  resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24"

+  integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==

+

+is-number-object@^1.0.4:

+  version "1.0.6"

+  resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0"

+  integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==

+  dependencies:

+    has-tostringtag "^1.0.0"

+

+is-number@^7.0.0:

+  version "7.0.0"

+  resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"

+  integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==

+

+is-obj@^1.0.1:

+  version "1.0.1"

+  resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"

+  integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=

+

+is-regex@^1.1.4:

+  version "1.1.4"

+  resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"

+  integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==

+  dependencies:

+    call-bind "^1.0.2"

+    has-tostringtag "^1.0.0"

+

+is-regexp@^1.0.0:

+  version "1.0.0"

+  resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"

+  integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=

+

+is-shared-array-buffer@^1.0.1:

+  version "1.0.1"

+  resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6"

+  integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==

+

+is-stream@^2.0.0:

+  version "2.0.1"

+  resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"

+  integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==

+

+is-string@^1.0.5, is-string@^1.0.7:

+  version "1.0.7"

+  resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"

+  integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==

+  dependencies:

+    has-tostringtag "^1.0.0"

+

+is-symbol@^1.0.2, is-symbol@^1.0.3:

+  version "1.0.4"

+  resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"

+  integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==

+  dependencies:

+    has-symbols "^1.0.2"

+

+is-weakref@^1.0.1:

+  version "1.0.1"

+  resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.1.tgz#842dba4ec17fa9ac9850df2d6efbc1737274f2a2"

+  integrity sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==

+  dependencies:

+    call-bind "^1.0.0"

+

+isarray@~1.0.0:

+  version "1.0.0"

+  resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"

+  integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=

+

+isexe@^2.0.0:

+  version "2.0.0"

+  resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"

+  integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=

+

+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:

+  version "4.0.0"

+  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"

+  integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==

+

+js-yaml@^3.13.1:

+  version "3.14.1"

+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"

+  integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==

+  dependencies:

+    argparse "^1.0.7"

+    esprima "^4.0.0"

+

+jsdoc-type-pratt-parser@1.1.1:

+  version "1.1.1"

+  resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-1.1.1.tgz#10fe5e409ba38de22a48b555598955a26ff0160f"

+  integrity sha512-uelRmpghNwPBuZScwgBG/OzodaFk5RbO5xaivBdsAY70icWfShwZ7PCMO0x1zSkOa8T1FzHThmrdoyg/0AwV5g==

+

+jsdoc-type-pratt-parser@^1.1.1:

+  version "1.2.0"

+  resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-1.2.0.tgz#3482a3833b74a88c95a6ba7253f0c0de3b77b9f5"

+  integrity sha512-4STjeF14jp4bqha44nKMY1OUI6d2/g6uclHWUCZ7B4DoLzaB5bmpTkQrpqU+vSVzMD0LsKAOskcnI3I3VfIpmg==

+

+jsdoctypeparser@^9.0.0:

+  version "9.0.0"

+  resolved "https://registry.yarnpkg.com/jsdoctypeparser/-/jsdoctypeparser-9.0.0.tgz#8c97e2fb69315eb274b0f01377eaa5c940bd7b26"

+  integrity sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==

+

+json-parse-even-better-errors@^2.3.0:

+  version "2.3.1"

+  resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"

+  integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==

+

+json-schema-traverse@^0.4.1:

+  version "0.4.1"

+  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"

+  integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==

+

+json-schema-traverse@^1.0.0:

+  version "1.0.0"

+  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"

+  integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==

+

+json-stable-stringify-without-jsonify@^1.0.1:

+  version "1.0.1"

+  resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"

+  integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=

+

+jsonfile@^6.0.1:

+  version "6.1.0"

+  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"

+  integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==

+  dependencies:

+    universalify "^2.0.0"

+  optionalDependencies:

+    graceful-fs "^4.1.6"

+

+"jsx-ast-utils@^2.4.1 || ^3.0.0":

+  version "3.2.1"

+  resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b"

+  integrity sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==

+  dependencies:

+    array-includes "^3.1.3"

+    object.assign "^4.1.2"

+

+kuler@^2.0.0:

+  version "2.0.0"

+  resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3"

+  integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==

+

+levn@^0.4.1:

+  version "0.4.1"

+  resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"

+  integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==

+  dependencies:

+    prelude-ls "^1.2.1"

+    type-check "~0.4.0"

+

+levn@~0.3.0:

+  version "0.3.0"

+  resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"

+  integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=

+  dependencies:

+    prelude-ls "~1.1.2"

+    type-check "~0.3.2"

+

+lines-and-columns@^1.1.6:

+  version "1.1.6"

+  resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"

+  integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=

+

+lint-staged@^11.2.0:

+  version "11.2.0"

+  resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.2.0.tgz#6b9774a74b3eb4bef5c59fb6475bff84d6853008"

+  integrity sha512-0KIcRuO4HQS2Su7qWtjrfTXgSklvyIb9Fk9qVWRZkGHa5S81Vj6WBbs+ogQBvHUwLJYq1eQ4R+H82GSak4OM7w==

+  dependencies:

+    cli-truncate "2.1.0"

+    colorette "^1.4.0"

+    commander "^8.2.0"

+    cosmiconfig "^7.0.1"

+    debug "^4.3.2"

+    enquirer "^2.3.6"

+    execa "^5.1.1"

+    listr2 "^3.12.2"

+    micromatch "^4.0.4"

+    normalize-path "^3.0.0"

+    please-upgrade-node "^3.2.0"

+    string-argv "0.3.1"

+    stringify-object "3.3.0"

+    supports-color "8.1.1"

+

+listr2@^3.12.2:

+  version "3.12.2"

+  resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.12.2.tgz#2d55cc627111603ad4768a9e87c9c7bb9b49997e"

+  integrity sha512-64xC2CJ/As/xgVI3wbhlPWVPx0wfTqbUAkpb7bjDi0thSWMqrf07UFhrfsGoo8YSXmF049Rp9C0cjLC8rZxK9A==

+  dependencies:

+    cli-truncate "^2.1.0"

+    colorette "^1.4.0"

+    log-update "^4.0.0"

+    p-map "^4.0.0"

+    rxjs "^6.6.7"

+    through "^2.3.8"

+    wrap-ansi "^7.0.0"

+

+locate-path@^5.0.0:

+  version "5.0.0"

+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"

+  integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==

+  dependencies:

+    p-locate "^4.1.0"

+

+locate-path@^6.0.0:

+  version "6.0.0"

+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"

+  integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==

+  dependencies:

+    p-locate "^5.0.0"

+

+lodash.camelcase@^4.3.0:

+  version "4.3.0"

+  resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"

+  integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=

+

+lodash.clonedeep@^4.5.0:

+  version "4.5.0"

+  resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"

+  integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=

+

+lodash.merge@^4.6.2:

+  version "4.6.2"

+  resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"

+  integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==

+

+lodash.truncate@^4.4.2:

+  version "4.4.2"

+  resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"

+  integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=

+

+lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21:

+  version "4.17.21"

+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"

+  integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==

+

+log-update@^4.0.0:

+  version "4.0.0"

+  resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1"

+  integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==

+  dependencies:

+    ansi-escapes "^4.3.0"

+    cli-cursor "^3.1.0"

+    slice-ansi "^4.0.0"

+    wrap-ansi "^6.2.0"

+

+logform@^2.2.0:

+  version "2.3.0"

+  resolved "https://registry.yarnpkg.com/logform/-/logform-2.3.0.tgz#a3997a05985de2ebd325ae0d166dffc9c6fe6b57"

+  integrity sha512-graeoWUH2knKbGthMtuG1EfaSPMZFZBIrhuJHhkS5ZseFBrc7DupCzihOQAzsK/qIKPQaPJ/lFQFctILUY5ARQ==

+  dependencies:

+    colors "^1.2.1"

+    fecha "^4.2.0"

+    ms "^2.1.1"

+    safe-stable-stringify "^1.1.0"

+    triple-beam "^1.3.0"

+

+long@^4.0.0:

+  version "4.0.0"

+  resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"

+  integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==

+

+loose-envify@^1.4.0:

+  version "1.4.0"

+  resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"

+  integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==

+  dependencies:

+    js-tokens "^3.0.0 || ^4.0.0"

+

+lru-cache@^6.0.0:

+  version "6.0.0"

+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"

+  integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==

+  dependencies:

+    yallist "^4.0.0"

+

+map-stream@~0.1.0:

+  version "0.1.0"

+  resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194"

+  integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=

+

+media-typer@0.3.0:

+  version "0.3.0"

+  resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"

+  integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=

+

+merge-descriptors@1.0.1:

+  version "1.0.1"

+  resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"

+  integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=

+

+merge-stream@^2.0.0:

+  version "2.0.0"

+  resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"

+  integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==

+

+merge2@^1.3.0:

+  version "1.4.1"

+  resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"

+  integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==

+

+methods@~1.1.2:

+  version "1.1.2"

+  resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"

+  integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=

+

+micromatch@^4.0.4:

+  version "4.0.4"

+  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"

+  integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==

+  dependencies:

+    braces "^3.0.1"

+    picomatch "^2.2.3"

+

+mime-db@1.50.0:

+  version "1.50.0"

+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.50.0.tgz#abd4ac94e98d3c0e185016c67ab45d5fde40c11f"

+  integrity sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==

+

+mime-types@~2.1.24:

+  version "2.1.33"

+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.33.tgz#1fa12a904472fafd068e48d9e8401f74d3f70edb"

+  integrity sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==

+  dependencies:

+    mime-db "1.50.0"

+

+mime@1.6.0:

+  version "1.6.0"

+  resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"

+  integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==

+

+mimic-fn@^2.1.0:

+  version "2.1.0"

+  resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"

+  integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==

+

+mimic-response@^2.0.0:

+  version "2.1.0"

+  resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43"

+  integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==

+

+minimatch@^3.0.4:

+  version "3.0.4"

+  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"

+  integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==

+  dependencies:

+    brace-expansion "^1.1.7"

+

+minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5:

+  version "1.2.5"

+  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"

+  integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==

+

+mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3:

+  version "0.5.3"

+  resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"

+  integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==

+

+mkdirp@^0.5.1:

+  version "0.5.5"

+  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"

+  integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==

+  dependencies:

+    minimist "^1.2.5"

+

+morgan@^1.9.0:

+  version "1.10.0"

+  resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7"

+  integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==

+  dependencies:

+    basic-auth "~2.0.1"

+    debug "2.6.9"

+    depd "~2.0.0"

+    on-finished "~2.3.0"

+    on-headers "~1.0.2"

+

+ms@2.0.0:

+  version "2.0.0"

+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"

+  integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=

+

+ms@2.1.1:

+  version "2.1.1"

+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"

+  integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==

+

+ms@2.1.2:

+  version "2.1.2"

+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"

+  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==

+

+ms@^2.1.1:

+  version "2.1.3"

+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"

+  integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==

+

+multistream@^4.1.0:

+  version "4.1.0"

+  resolved "https://registry.yarnpkg.com/multistream/-/multistream-4.1.0.tgz#7bf00dfd119556fbc153cff3de4c6d477909f5a8"

+  integrity sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==

+  dependencies:

+    once "^1.4.0"

+    readable-stream "^3.6.0"

+

+napi-build-utils@^1.0.1:

+  version "1.0.2"

+  resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806"

+  integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==

+

+natural-compare@^1.4.0:

+  version "1.4.0"

+  resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"

+  integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=

+

+negotiator@0.6.2:

+  version "0.6.2"

+  resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"

+  integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==

+

+node-abi@^2.7.0:

+  version "2.30.1"

+  resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf"

+  integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==

+  dependencies:

+    semver "^5.4.1"

+

+node-cleanup@^2.1.2:

+  version "2.1.2"

+  resolved "https://registry.yarnpkg.com/node-cleanup/-/node-cleanup-2.1.2.tgz#7ac19abd297e09a7f72a71545d951b517e4dde2c"

+  integrity sha1-esGavSl+Caf3KnFUXZUbUX5N3iw=

+

+node-fetch@2.6.1:

+  version "2.6.1"

+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"

+  integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==

+

+node-fetch@^2.6.1:

+  version "2.6.5"

+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd"

+  integrity sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==

+  dependencies:

+    whatwg-url "^5.0.0"

+

+noop-logger@^0.1.1:

+  version "0.1.1"

+  resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2"

+  integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=

+

+normalize-path@^3.0.0, normalize-path@~3.0.0:

+  version "3.0.0"

+  resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"

+  integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==

+

+npm-run-path@^4.0.1:

+  version "4.0.1"

+  resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"

+  integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==

+  dependencies:

+    path-key "^3.0.0"

+

+npmlog@^4.0.1:

+  version "4.1.2"

+  resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"

+  integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==

+  dependencies:

+    are-we-there-yet "~1.1.2"

+    console-control-strings "~1.1.0"

+    gauge "~2.7.3"

+    set-blocking "~2.0.0"

+

+number-is-nan@^1.0.0:

+  version "1.0.1"

+  resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"

+  integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=

+

+object-assign@^4.1.0, object-assign@^4.1.1:

+  version "4.1.1"

+  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"

+  integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=

+

+object-inspect@^1.11.0, object-inspect@^1.9.0:

+  version "1.11.0"

+  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1"

+  integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==

+

+object-keys@^1.0.12, object-keys@^1.1.1:

+  version "1.1.1"

+  resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"

+  integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==

+

+object.assign@^4.1.2:

+  version "4.1.2"

+  resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940"

+  integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==

+  dependencies:

+    call-bind "^1.0.0"

+    define-properties "^1.1.3"

+    has-symbols "^1.0.1"

+    object-keys "^1.1.1"

+

+object.entries@^1.1.2, object.entries@^1.1.4:

+  version "1.1.5"

+  resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861"

+  integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==

+  dependencies:

+    call-bind "^1.0.2"

+    define-properties "^1.1.3"

+    es-abstract "^1.19.1"

+

+object.fromentries@^2.0.2, object.fromentries@^2.0.4:

+  version "2.0.5"

+  resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251"

+  integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==

+  dependencies:

+    call-bind "^1.0.2"

+    define-properties "^1.1.3"

+    es-abstract "^1.19.1"

+

+object.hasown@^1.0.0:

+  version "1.1.0"

+  resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.0.tgz#7232ed266f34d197d15cac5880232f7a4790afe5"

+  integrity sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==

+  dependencies:

+    define-properties "^1.1.3"

+    es-abstract "^1.19.1"

+

+object.values@^1.1.1, object.values@^1.1.4:

+  version "1.1.5"

+  resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac"

+  integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==

+  dependencies:

+    call-bind "^1.0.2"

+    define-properties "^1.1.3"

+    es-abstract "^1.19.1"

+

+on-finished@^2.3.0, on-finished@~2.3.0:

+  version "2.3.0"

+  resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"

+  integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=

+  dependencies:

+    ee-first "1.1.1"

+

+on-headers@~1.0.2:

+  version "1.0.2"

+  resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"

+  integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==

+

+once@^1.3.0, once@^1.3.1, once@^1.4.0:

+  version "1.4.0"

+  resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"

+  integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=

+  dependencies:

+    wrappy "1"

+

+one-time@^1.0.0:

+  version "1.0.0"

+  resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45"

+  integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==

+  dependencies:

+    fn.name "1.x.x"

+

+onetime@^5.1.0, onetime@^5.1.2:

+  version "5.1.2"

+  resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"

+  integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==

+  dependencies:

+    mimic-fn "^2.1.0"

+

+opencollective-postinstall@^2.0.2:

+  version "2.0.3"

+  resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259"

+  integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==

+

+optionator@^0.8.1:

+  version "0.8.3"

+  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"

+  integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==

+  dependencies:

+    deep-is "~0.1.3"

+    fast-levenshtein "~2.0.6"

+    levn "~0.3.0"

+    prelude-ls "~1.1.2"

+    type-check "~0.3.2"

+    word-wrap "~1.2.3"

+

+optionator@^0.9.1:

+  version "0.9.1"

+  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"

+  integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==

+  dependencies:

+    deep-is "^0.1.3"

+    fast-levenshtein "^2.0.6"

+    levn "^0.4.1"

+    prelude-ls "^1.2.1"

+    type-check "^0.4.0"

+    word-wrap "^1.2.3"

+

+p-is-promise@^3.0.0:

+  version "3.0.0"

+  resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-3.0.0.tgz#58e78c7dfe2e163cf2a04ff869e7c1dba64a5971"

+  integrity sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==

+

+p-limit@^2.2.0:

+  version "2.3.0"

+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"

+  integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==

+  dependencies:

+    p-try "^2.0.0"

+

+p-limit@^3.0.2:

+  version "3.1.0"

+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"

+  integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==

+  dependencies:

+    yocto-queue "^0.1.0"

+

+p-locate@^4.1.0:

+  version "4.1.0"

+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"

+  integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==

+  dependencies:

+    p-limit "^2.2.0"

+

+p-locate@^5.0.0:

+  version "5.0.0"

+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"

+  integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==

+  dependencies:

+    p-limit "^3.0.2"

+

+p-map@^4.0.0:

+  version "4.0.0"

+  resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"

+  integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==

+  dependencies:

+    aggregate-error "^3.0.0"

+

+p-try@^2.0.0:

+  version "2.2.0"

+  resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"

+  integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==

+

+parent-module@^1.0.0:

+  version "1.0.1"

+  resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"

+  integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==

+  dependencies:

+    callsites "^3.0.0"

+

+parse-json@^5.0.0:

+  version "5.2.0"

+  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"

+  integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==

+  dependencies:

+    "@babel/code-frame" "^7.0.0"

+    error-ex "^1.3.1"

+    json-parse-even-better-errors "^2.3.0"

+    lines-and-columns "^1.1.6"

+

+parseurl@~1.3.3:

+  version "1.3.3"

+  resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"

+  integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==

+

+path-exists@^4.0.0:

+  version "4.0.0"

+  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"

+  integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==

+

+path-is-absolute@^1.0.0:

+  version "1.0.1"

+  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"

+  integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=

+

+path-key@^3.0.0, path-key@^3.1.0:

+  version "3.1.1"

+  resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"

+  integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==

+

+path-parse@^1.0.6:

+  version "1.0.7"

+  resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"

+  integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==

+

+path-to-regexp@0.1.7:

+  version "0.1.7"

+  resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"

+  integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=

+

+path-type@^4.0.0:

+  version "4.0.0"

+  resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"

+  integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==

+

+pause-stream@0.0.11:

+  version "0.0.11"

+  resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445"

+  integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=

+  dependencies:

+    through "~2.3"

+

+pend@~1.2.0:

+  version "1.2.0"

+  resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"

+  integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA=

+

+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:

+  version "2.3.0"

+  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"

+  integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==

+

+pkg-dir@4.2.0:

+  version "4.2.0"

+  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"

+  integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==

+  dependencies:

+    find-up "^4.0.0"

+

+pkg-dir@^5.0.0:

+  version "5.0.0"

+  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760"

+  integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==

+  dependencies:

+    find-up "^5.0.0"

+

+pkg-fetch@3.2.4:

+  version "3.2.4"

+  resolved "https://registry.yarnpkg.com/pkg-fetch/-/pkg-fetch-3.2.4.tgz#5372734b12167d4bacd872be348217461b517390"

+  integrity sha512-ewUD26GP86/8+Fu93zrb30CpJjKOtT4maSgm4SwTX9Ujy1pfdUdv+1PubsY9tTJES0iBYItAtqbfkf7Wu5LV9w==

+  dependencies:

+    chalk "^4.1.0"

+    fs-extra "^9.1.0"

+    https-proxy-agent "^5.0.0"

+    node-fetch "^2.6.1"

+    progress "^2.0.3"

+    semver "^7.3.5"

+    yargs "^16.2.0"

+

+pkg@^5.4.1:

+  version "5.4.1"

+  resolved "https://registry.yarnpkg.com/pkg/-/pkg-5.4.1.tgz#4d824e42c454f32131e471d7cd8d14bfdb3e1c4c"

+  integrity sha512-iJs3W6MCgeZ4MrH7iZtX6HTqsNzoh2U9rGILL3eOLbQFV43U8WPAzrqRK7cBQGuHx38UXxcGT6G/2yDl/GveRg==

+  dependencies:

+    "@babel/parser" "7.13.13"

+    "@babel/types" "7.13.12"

+    chalk "^4.1.0"

+    escodegen "^2.0.0"

+    fs-extra "^9.1.0"

+    globby "^11.0.3"

+    into-stream "^6.0.0"

+    minimist "^1.2.5"

+    multistream "^4.1.0"

+    pkg-fetch "3.2.4"

+    prebuild-install "6.0.1"

+    progress "^2.0.3"

+    resolve "^1.20.0"

+    stream-meter "^1.0.4"

+    tslib "2.1.0"

+

+please-upgrade-node@^3.2.0:

+  version "3.2.0"

+  resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942"

+  integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==

+  dependencies:

+    semver-compare "^1.0.0"

+

+prebuild-install@6.0.1:

+  version "6.0.1"

+  resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.0.1.tgz#5902172f7a40eb67305b96c2a695db32636ee26d"

+  integrity sha512-7GOJrLuow8yeiyv75rmvZyeMGzl8mdEX5gY69d6a6bHWmiPevwqFw+tQavhK0EYMaSg3/KD24cWqeQv1EWsqDQ==

+  dependencies:

+    detect-libc "^1.0.3"

+    expand-template "^2.0.3"

+    github-from-package "0.0.0"

+    minimist "^1.2.3"

+    mkdirp-classic "^0.5.3"

+    napi-build-utils "^1.0.1"

+    node-abi "^2.7.0"

+    noop-logger "^0.1.1"

+    npmlog "^4.0.1"

+    pump "^3.0.0"

+    rc "^1.2.7"

+    simple-get "^3.0.3"

+    tar-fs "^2.0.0"

+    tunnel-agent "^0.6.0"

+    which-pm-runs "^1.0.0"

+

+prelude-ls@^1.2.1:

+  version "1.2.1"

+  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"

+  integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==

+

+prelude-ls@~1.1.2:

+  version "1.1.2"

+  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"

+  integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=

+

+prettier-linter-helpers@^1.0.0:

+  version "1.0.0"

+  resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"

+  integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==

+  dependencies:

+    fast-diff "^1.1.2"

+

+prettier@2.2.1:

+  version "2.2.1"

+  resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5"

+  integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==

+

+process-nextick-args@~2.0.0:

+  version "2.0.1"

+  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"

+  integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==

+

+progress@2.0.1:

+  version "2.0.1"

+  resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31"

+  integrity sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==

+

+progress@^2.0.0, progress@^2.0.3:

+  version "2.0.3"

+  resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"

+  integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==

+

+prom-client@^11.5.3:

+  version "11.5.3"

+  resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-11.5.3.tgz#5fedfce1083bac6c2b223738e966d0e1643756f8"

+  integrity sha512-iz22FmTbtkyL2vt0MdDFY+kWof+S9UB/NACxSn2aJcewtw+EERsen0urSkZ2WrHseNdydsvcxCTAnPcSMZZv4Q==

+  dependencies:

+    tdigest "^0.1.1"

+

+prop-types@^15.7.2:

+  version "15.7.2"

+  resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"

+  integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==

+  dependencies:

+    loose-envify "^1.4.0"

+    object-assign "^4.1.1"

+    react-is "^16.8.1"

+

+protobufjs@^6.8.6:

+  version "6.11.2"

+  resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.2.tgz#de39fabd4ed32beaa08e9bb1e30d08544c1edf8b"

+  integrity sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==

+  dependencies:

+    "@protobufjs/aspromise" "^1.1.2"

+    "@protobufjs/base64" "^1.1.2"

+    "@protobufjs/codegen" "^2.0.4"

+    "@protobufjs/eventemitter" "^1.1.0"

+    "@protobufjs/fetch" "^1.1.0"

+    "@protobufjs/float" "^1.0.2"

+    "@protobufjs/inquire" "^1.1.0"

+    "@protobufjs/path" "^1.1.2"

+    "@protobufjs/pool" "^1.1.0"

+    "@protobufjs/utf8" "^1.1.0"

+    "@types/long" "^4.0.1"

+    "@types/node" ">=13.7.0"

+    long "^4.0.0"

+

+proxy-addr@~2.0.5:

+  version "2.0.7"

+  resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"

+  integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==

+  dependencies:

+    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==

+

+ps-tree@^1.2.0:

+  version "1.2.0"

+  resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd"

+  integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==

+  dependencies:

+    event-stream "=3.3.4"

+

+pump@^3.0.0:

+  version "3.0.0"

+  resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"

+  integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==

+  dependencies:

+    end-of-stream "^1.1.0"

+    once "^1.3.1"

+

+punycode@^2.1.0:

+  version "2.1.1"

+  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"

+  integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==

+

+puppeteer-cluster@^0.22.0:

+  version "0.22.0"

+  resolved "https://registry.yarnpkg.com/puppeteer-cluster/-/puppeteer-cluster-0.22.0.tgz#4ab214671f414f15ad6a94a4b61ed0b4172e86e6"

+  integrity sha512-hmydtMwfVM+idFIDzS8OXetnujHGre7RY3BGL+3njy9+r8Dcu3VALkZHfuBEPf6byKssTCgzxU1BvLczifXd5w==

+  dependencies:

+    debug "^4.1.1"

+

+puppeteer@^10.0.0:

+  version "10.4.0"

+  resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-10.4.0.tgz#a6465ff97fda0576c4ac29601406f67e6fea3dc7"

+  integrity sha512-2cP8mBoqnu5gzAVpbZ0fRaobBWZM8GEUF4I1F6WbgHrKV/rz7SX8PG2wMymZgD0wo0UBlg2FBPNxlF/xlqW6+w==

+  dependencies:

+    debug "4.3.1"

+    devtools-protocol "0.0.901419"

+    extract-zip "2.0.1"

+    https-proxy-agent "5.0.0"

+    node-fetch "2.6.1"

+    pkg-dir "4.2.0"

+    progress "2.0.1"

+    proxy-from-env "1.1.0"

+    rimraf "3.0.2"

+    tar-fs "2.0.0"

+    unbzip2-stream "1.3.3"

+    ws "7.4.6"

+

+qs@6.7.0:

+  version "6.7.0"

+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"

+  integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==

+

+queue-microtask@^1.2.2:

+  version "1.2.3"

+  resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"

+  integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==

+

+range-parser@~1.2.1:

+  version "1.2.1"

+  resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"

+  integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==

+

+raw-body@2.4.0:

+  version "2.4.0"

+  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"

+  integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==

+  dependencies:

+    bytes "3.1.0"

+    http-errors "1.7.2"

+    iconv-lite "0.4.24"

+    unpipe "1.0.0"

+

+rc@^1.2.7:

+  version "1.2.8"

+  resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"

+  integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==

+  dependencies:

+    deep-extend "^0.6.0"

+    ini "~1.3.0"

+    minimist "^1.2.0"

+    strip-json-comments "~2.0.1"

+

+react-is@^16.8.1:

+  version "16.13.1"

+  resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"

+  integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==

+

+readable-stream@^2.0.0, readable-stream@^2.0.6, readable-stream@^2.1.4, 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@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:

+  version "3.6.0"

+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"

+  integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==

+  dependencies:

+    inherits "^2.0.3"

+    string_decoder "^1.1.1"

+    util-deprecate "^1.0.1"

+

+readdirp@~3.6.0:

+  version "3.6.0"

+  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"

+  integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==

+  dependencies:

+    picomatch "^2.2.1"

+

+regexp.prototype.flags@^1.3.1:

+  version "1.3.1"

+  resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26"

+  integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==

+  dependencies:

+    call-bind "^1.0.2"

+    define-properties "^1.1.3"

+

+regexpp@^3.1.0:

+  version "3.2.0"

+  resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"

+  integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==

+

+regextras@^0.7.1:

+  version "0.7.1"

+  resolved "https://registry.yarnpkg.com/regextras/-/regextras-0.7.1.tgz#be95719d5f43f9ef0b9fa07ad89b7c606995a3b2"

+  integrity sha512-9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w==

+

+regextras@^0.8.0:

+  version "0.8.0"

+  resolved "https://registry.yarnpkg.com/regextras/-/regextras-0.8.0.tgz#ec0f99853d4912839321172f608b544814b02217"

+  integrity sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ==

+

+require-directory@^2.1.1:

+  version "2.1.1"

+  resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"

+  integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=

+

+require-from-string@^2.0.2:

+  version "2.0.2"

+  resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"

+  integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==

+

+resolve-from@^4.0.0:

+  version "4.0.0"

+  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"

+  integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==

+

+resolve@^1.18.1, resolve@^1.20.0:

+  version "1.20.0"

+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975"

+  integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==

+  dependencies:

+    is-core-module "^2.2.0"

+    path-parse "^1.0.6"

+

+resolve@^2.0.0-next.3:

+  version "2.0.0-next.3"

+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46"

+  integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==

+  dependencies:

+    is-core-module "^2.2.0"

+    path-parse "^1.0.6"

+

+restore-cursor@^3.1.0:

+  version "3.1.0"

+  resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"

+  integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==

+  dependencies:

+    onetime "^5.1.0"

+    signal-exit "^3.0.2"

+

+reusify@^1.0.4:

+  version "1.0.4"

+  resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"

+  integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==

+

+rimraf@3.0.2, rimraf@^3.0.2:

+  version "3.0.2"

+  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"

+  integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==

+  dependencies:

+    glob "^7.1.3"

+

+run-parallel@^1.1.9:

+  version "1.2.0"

+  resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"

+  integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==

+  dependencies:

+    queue-microtask "^1.2.2"

+

+rxjs@^6.6.7:

+  version "6.6.7"

+  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"

+  integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==

+  dependencies:

+    tslib "^1.9.0"

+

+safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:

+  version "5.1.2"

+  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"

+  integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==

+

+safe-buffer@^5.0.1, safe-buffer@~5.2.0:

+  version "5.2.1"

+  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"

+  integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==

+

+safe-stable-stringify@^1.1.0:

+  version "1.1.1"

+  resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz#c8a220ab525cd94e60ebf47ddc404d610dc5d84a"

+  integrity sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==

+

+"safer-buffer@>= 2.1.2 < 3":

+  version "2.1.2"

+  resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"

+  integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==

+

+semver-compare@^1.0.0:

+  version "1.0.0"

+  resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"

+  integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=

+

+semver-regex@^3.1.2:

+  version "3.1.3"

+  resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.3.tgz#b2bcc6f97f63269f286994e297e229b6245d0dc3"

+  integrity sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ==

+

+semver@^5.4.1:

+  version "5.7.1"

+  resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"

+  integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==

+

+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@^7.2.1, semver@^7.3.4, semver@^7.3.5:

+  version "7.3.5"

+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"

+  integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==

+  dependencies:

+    lru-cache "^6.0.0"

+

+send@0.17.1:

+  version "0.17.1"

+  resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"

+  integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==

+  dependencies:

+    debug "2.6.9"

+    depd "~1.1.2"

+    destroy "~1.0.4"

+    encodeurl "~1.0.2"

+    escape-html "~1.0.3"

+    etag "~1.8.1"

+    fresh "0.5.2"

+    http-errors "~1.7.2"

+    mime "1.6.0"

+    ms "2.1.1"

+    on-finished "~2.3.0"

+    range-parser "~1.2.1"

+    statuses "~1.5.0"

+

+serve-static@1.14.1:

+  version "1.14.1"

+  resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"

+  integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==

+  dependencies:

+    encodeurl "~1.0.2"

+    escape-html "~1.0.3"

+    parseurl "~1.3.3"

+    send "0.17.1"

+

+set-blocking@~2.0.0:

+  version "2.0.0"

+  resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"

+  integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=

+

+setprototypeof@1.1.1:

+  version "1.1.1"

+  resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"

+  integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==

+

+shebang-command@^2.0.0:

+  version "2.0.0"

+  resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"

+  integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==

+  dependencies:

+    shebang-regex "^3.0.0"

+

+shebang-regex@^3.0.0:

+  version "3.0.0"

+  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"

+  integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==

+

+side-channel@^1.0.4:

+  version "1.0.4"

+  resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"

+  integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==

+  dependencies:

+    call-bind "^1.0.0"

+    get-intrinsic "^1.0.2"

+    object-inspect "^1.9.0"

+

+signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3:

+  version "3.0.5"

+  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f"

+  integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==

+

+simple-concat@^1.0.0:

+  version "1.0.1"

+  resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f"

+  integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==

+

+simple-get@^3.0.3:

+  version "3.1.0"

+  resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3"

+  integrity sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==

+  dependencies:

+    decompress-response "^4.2.0"

+    once "^1.3.1"

+    simple-concat "^1.0.0"

+

+simple-swizzle@^0.2.2:

+  version "0.2.2"

+  resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"

+  integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=

+  dependencies:

+    is-arrayish "^0.3.1"

+

+slash@^3.0.0:

+  version "3.0.0"

+  resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"

+  integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==

+

+slice-ansi@^3.0.0:

+  version "3.0.0"

+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787"

+  integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==

+  dependencies:

+    ansi-styles "^4.0.0"

+    astral-regex "^2.0.0"

+    is-fullwidth-code-point "^3.0.0"

+

+slice-ansi@^4.0.0:

+  version "4.0.0"

+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"

+  integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==

+  dependencies:

+    ansi-styles "^4.0.0"

+    astral-regex "^2.0.0"

+    is-fullwidth-code-point "^3.0.0"

+

+source-map@~0.6.1:

+  version "0.6.1"

+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"

+  integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==

+

+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==

+

+spdx-expression-parse@^3.0.1:

+  version "3.0.1"

+  resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"

+  integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==

+  dependencies:

+    spdx-exceptions "^2.1.0"

+    spdx-license-ids "^3.0.0"

+

+spdx-license-ids@^3.0.0:

+  version "3.0.10"

+  resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b"

+  integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==

+

+split@0.3:

+  version "0.3.3"

+  resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f"

+  integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=

+  dependencies:

+    through "2"

+

+sprintf-js@~1.0.2:

+  version "1.0.3"

+  resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"

+  integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=

+

+stack-trace@0.0.x:

+  version "0.0.10"

+  resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"

+  integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=

+

+"statuses@>= 1.5.0 < 2", statuses@~1.5.0:

+  version "1.5.0"

+  resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"

+  integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=

+

+stream-combiner@~0.0.4:

+  version "0.0.4"

+  resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14"

+  integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=

+  dependencies:

+    duplexer "~0.1.1"

+

+stream-meter@^1.0.4:

+  version "1.0.4"

+  resolved "https://registry.yarnpkg.com/stream-meter/-/stream-meter-1.0.4.tgz#52af95aa5ea760a2491716704dbff90f73afdd1d"

+  integrity sha1-Uq+Vql6nYKJJFxZwTb/5D3Ov3R0=

+  dependencies:

+    readable-stream "^2.1.4"

+

+string-argv@0.3.1:

+  version "0.3.1"

+  resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da"

+  integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==

+

+string-argv@^0.1.1:

+  version "0.1.2"

+  resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.1.2.tgz#c5b7bc03fb2b11983ba3a72333dd0559e77e4738"

+  integrity sha512-mBqPGEOMNJKXRo7z0keX0wlAhbBAjilUdPW13nN0PecVryZxdHIeM7TqbsSUA7VYuS00HGC6mojP7DlQzfa9ZA==

+

+string-width@^1.0.1:

+  version "1.0.2"

+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"

+  integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=

+  dependencies:

+    code-point-at "^1.0.0"

+    is-fullwidth-code-point "^1.0.0"

+    strip-ansi "^3.0.0"

+

+"string-width@^1.0.2 || 2":

+  version "2.1.1"

+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"

+  integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==

+  dependencies:

+    is-fullwidth-code-point "^2.0.0"

+    strip-ansi "^4.0.0"

+

+string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:

+  version "4.2.3"

+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"

+  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"

+

+string.prototype.matchall@^4.0.2, string.prototype.matchall@^4.0.5:

+  version "4.0.6"

+  resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz#5abb5dabc94c7b0ea2380f65ba610b3a544b15fa"

+  integrity sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==

+  dependencies:

+    call-bind "^1.0.2"

+    define-properties "^1.1.3"

+    es-abstract "^1.19.1"

+    get-intrinsic "^1.1.1"

+    has-symbols "^1.0.2"

+    internal-slot "^1.0.3"

+    regexp.prototype.flags "^1.3.1"

+    side-channel "^1.0.4"

+

+string.prototype.trimend@^1.0.4:

+  version "1.0.4"

+  resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80"

+  integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==

+  dependencies:

+    call-bind "^1.0.2"

+    define-properties "^1.1.3"

+

+string.prototype.trimstart@^1.0.4:

+  version "1.0.4"

+  resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed"

+  integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==

+  dependencies:

+    call-bind "^1.0.2"

+    define-properties "^1.1.3"

+

+string_decoder@^1.1.1:

+  version "1.3.0"

+  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"

+  integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==

+  dependencies:

+    safe-buffer "~5.2.0"

+

+string_decoder@~1.1.1:

+  version "1.1.1"

+  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"

+  integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==

+  dependencies:

+    safe-buffer "~5.1.0"

+

+stringify-object@3.3.0:

+  version "3.3.0"

+  resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629"

+  integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==

+  dependencies:

+    get-own-enumerable-property-symbols "^3.0.0"

+    is-obj "^1.0.1"

+    is-regexp "^1.0.0"

+

+strip-ansi@^3.0.0, strip-ansi@^3.0.1:

+  version "3.0.1"

+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"

+  integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=

+  dependencies:

+    ansi-regex "^2.0.0"

+

+strip-ansi@^4.0.0:

+  version "4.0.0"

+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"

+  integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=

+  dependencies:

+    ansi-regex "^3.0.0"

+

+strip-ansi@^6.0.0, strip-ansi@^6.0.1:

+  version "6.0.1"

+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"

+  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==

+  dependencies:

+    ansi-regex "^5.0.1"

+

+strip-final-newline@^2.0.0:

+  version "2.0.0"

+  resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"

+  integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==

+

+strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:

+  version "3.1.1"

+  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"

+  integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==

+

+strip-json-comments@~2.0.1:

+  version "2.0.1"

+  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"

+  integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=

+

+supports-color@8.1.1:

+  version "8.1.1"

+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"

+  integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==

+  dependencies:

+    has-flag "^4.0.0"

+

+supports-color@^5.3.0:

+  version "5.5.0"

+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"

+  integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==

+  dependencies:

+    has-flag "^3.0.0"

+

+supports-color@^7.1.0:

+  version "7.2.0"

+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"

+  integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==

+  dependencies:

+    has-flag "^4.0.0"

+

+table@^6.0.4, table@^6.0.9:

+  version "6.7.2"

+  resolved "https://registry.yarnpkg.com/table/-/table-6.7.2.tgz#a8d39b9f5966693ca8b0feba270a78722cbaf3b0"

+  integrity sha512-UFZK67uvyNivLeQbVtkiUs8Uuuxv24aSL4/Vil2PJVtMgU8Lx0CYkP12uCGa3kjyQzOSgV1+z9Wkb82fCGsO0g==

+  dependencies:

+    ajv "^8.0.1"

+    lodash.clonedeep "^4.5.0"

+    lodash.truncate "^4.4.2"

+    slice-ansi "^4.0.0"

+    string-width "^4.2.3"

+    strip-ansi "^6.0.1"

+

+tar-fs@2.0.0:

+  version "2.0.0"

+  resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.0.tgz#677700fc0c8b337a78bee3623fdc235f21d7afad"

+  integrity sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==

+  dependencies:

+    chownr "^1.1.1"

+    mkdirp "^0.5.1"

+    pump "^3.0.0"

+    tar-stream "^2.0.0"

+

+tar-fs@^2.0.0:

+  version "2.1.1"

+  resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784"

+  integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==

+  dependencies:

+    chownr "^1.1.1"

+    mkdirp-classic "^0.5.2"

+    pump "^3.0.0"

+    tar-stream "^2.1.4"

+

+tar-stream@^2.0.0, tar-stream@^2.1.4:

+  version "2.2.0"

+  resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"

+  integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==

+  dependencies:

+    bl "^4.0.3"

+    end-of-stream "^1.4.1"

+    fs-constants "^1.0.0"

+    inherits "^2.0.3"

+    readable-stream "^3.1.1"

+

+tdigest@^0.1.1:

+  version "0.1.1"

+  resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.1.tgz#2e3cb2c39ea449e55d1e6cd91117accca4588021"

+  integrity sha1-Ljyyw56kSeVdHmzZEReszKRYgCE=

+  dependencies:

+    bintrees "1.0.1"

+

+text-hex@1.0.x:

+  version "1.0.0"

+  resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5"

+  integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==

+

+text-table@^0.2.0:

+  version "0.2.0"

+  resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"

+  integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=

+

+through@2, through@^2.3.8, through@~2.3, through@~2.3.1:

+  version "2.3.8"

+  resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"

+  integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=

+

+to-fast-properties@^2.0.0:

+  version "2.0.0"

+  resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"

+  integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=

+

+to-regex-range@^5.0.1:

+  version "5.0.1"

+  resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"

+  integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==

+  dependencies:

+    is-number "^7.0.0"

+

+toidentifier@1.0.0:

+  version "1.0.0"

+  resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"

+  integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==

+

+tr46@~0.0.3:

+  version "0.0.3"

+  resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"

+  integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=

+

+triple-beam@^1.2.0, 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==

+

+tsc-watch@^4.2.3:

+  version "4.5.0"

+  resolved "https://registry.yarnpkg.com/tsc-watch/-/tsc-watch-4.5.0.tgz#d6884b932822b2c2ccd37f1c1f3748304566a474"

+  integrity sha512-aXhN4jY+1YEcn/NwCQ/+fHqU43EqOpW+pS+933EPsVEsrKhvyrodPDIjQsk1a1niFrabAK3RIBrRbAslVefEbQ==

+  dependencies:

+    cross-spawn "^7.0.3"

+    node-cleanup "^2.1.2"

+    ps-tree "^1.2.0"

+    string-argv "^0.1.1"

+    strip-ansi "^6.0.0"

+

+tslib@2.1.0:

+  version "2.1.0"

+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a"

+  integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==

+

+tslib@^1.8.1, tslib@^1.9.0:

+  version "1.14.1"

+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"

+  integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==

+

+tsutils@^3.21.0:

+  version "3.21.0"

+  resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"

+  integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==

+  dependencies:

+    tslib "^1.8.1"

+

+tunnel-agent@^0.6.0:

+  version "0.6.0"

+  resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"

+  integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=

+  dependencies:

+    safe-buffer "^5.0.1"

+

+type-check@^0.4.0, type-check@~0.4.0:

+  version "0.4.0"

+  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"

+  integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==

+  dependencies:

+    prelude-ls "^1.2.1"

+

+type-check@~0.3.2:

+  version "0.3.2"

+  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"

+  integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=

+  dependencies:

+    prelude-ls "~1.1.2"

+

+type-fest@^0.20.2:

+  version "0.20.2"

+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"

+  integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==

+

+type-fest@^0.21.3:

+  version "0.21.3"

+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"

+  integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==

+

+type-fest@^0.8.1:

+  version "0.8.1"

+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"

+  integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==

+

+type-is@~1.6.17, type-is@~1.6.18:

+  version "1.6.18"

+  resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"

+  integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==

+  dependencies:

+    media-typer "0.3.0"

+    mime-types "~2.1.24"

+

+typescript@4.3.4:

+  version "4.3.4"

+  resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.4.tgz#3f85b986945bcf31071decdd96cf8bfa65f9dcbc"

+  integrity sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew==

+

+typescript@^4.3.2:

+  version "4.4.3"

+  resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz#bdc5407caa2b109efd4f82fe130656f977a29324"

+  integrity sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==

+

+unbox-primitive@^1.0.1:

+  version "1.0.1"

+  resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"

+  integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==

+  dependencies:

+    function-bind "^1.1.1"

+    has-bigints "^1.0.1"

+    has-symbols "^1.0.2"

+    which-boxed-primitive "^1.0.2"

+

+unbzip2-stream@1.3.3:

+  version "1.3.3"

+  resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz#d156d205e670d8d8c393e1c02ebd506422873f6a"

+  integrity sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==

+  dependencies:

+    buffer "^5.2.1"

+    through "^2.3.8"

+

+unique-filename@^1.1.0:

+  version "1.1.1"

+  resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"

+  integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==

+  dependencies:

+    unique-slug "^2.0.0"

+

+unique-slug@^2.0.0:

+  version "2.0.2"

+  resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"

+  integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==

+  dependencies:

+    imurmurhash "^0.1.4"

+

+universalify@^2.0.0:

+  version "2.0.0"

+  resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"

+  integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==

+

+unpipe@1.0.0, unpipe@~1.0.0:

+  version "1.0.0"

+  resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"

+  integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=

+

+uri-js@^4.2.2:

+  version "4.4.1"

+  resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"

+  integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==

+  dependencies:

+    punycode "^2.1.0"

+

+url-value-parser@^2.0.0:

+  version "2.0.3"

+  resolved "https://registry.yarnpkg.com/url-value-parser/-/url-value-parser-2.0.3.tgz#cd4b8d6754e458d65e8125260c09718d926e6e21"

+  integrity sha512-FjIX+Q9lYmDM9uYIGdMYfQW0uLbWVwN2NrL2ayAI7BTOvEwzH+VoDdNquwB9h4dFAx+u6mb0ONLa3sHD5DvyvA==

+

+util-deprecate@^1.0.1, util-deprecate@~1.0.1:

+  version "1.0.2"

+  resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"

+  integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=

+

+utils-merge@1.0.1:

+  version "1.0.1"

+  resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"

+  integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=

+

+v8-compile-cache@^2.0.3:

+  version "2.3.0"

+  resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"

+  integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==

+

+vary@~1.1.2:

+  version "1.1.2"

+  resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"

+  integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=

+

+webidl-conversions@^3.0.0:

+  version "3.0.1"

+  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"

+  integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=

+

+whatwg-url@^5.0.0:

+  version "5.0.0"

+  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"

+  integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=

+  dependencies:

+    tr46 "~0.0.3"

+    webidl-conversions "^3.0.0"

+

+which-boxed-primitive@^1.0.2:

+  version "1.0.2"

+  resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"

+  integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==

+  dependencies:

+    is-bigint "^1.0.1"

+    is-boolean-object "^1.1.0"

+    is-number-object "^1.0.4"

+    is-string "^1.0.5"

+    is-symbol "^1.0.3"

+

+which-pm-runs@^1.0.0:

+  version "1.0.0"

+  resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb"

+  integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=

+

+which@^2.0.1:

+  version "2.0.2"

+  resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"

+  integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==

+  dependencies:

+    isexe "^2.0.0"

+

+wide-align@^1.1.0:

+  version "1.1.3"

+  resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"

+  integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==

+  dependencies:

+    string-width "^1.0.2 || 2"

+

+winston-transport@^4.4.0:

+  version "4.4.0"

+  resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.4.0.tgz#17af518daa690d5b2ecccaa7acf7b20ca7925e59"

+  integrity sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==

+  dependencies:

+    readable-stream "^2.3.7"

+    triple-beam "^1.2.0"

+

+winston@^3.2.1:

+  version "3.3.3"

+  resolved "https://registry.yarnpkg.com/winston/-/winston-3.3.3.tgz#ae6172042cafb29786afa3d09c8ff833ab7c9170"

+  integrity sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==

+  dependencies:

+    "@dabh/diagnostics" "^2.0.2"

+    async "^3.1.0"

+    is-stream "^2.0.0"

+    logform "^2.2.0"

+    one-time "^1.0.0"

+    readable-stream "^3.4.0"

+    stack-trace "0.0.x"

+    triple-beam "^1.3.0"

+    winston-transport "^4.4.0"

+

+word-wrap@^1.2.3, word-wrap@~1.2.3:

+  version "1.2.3"

+  resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"

+  integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==

+

+wrap-ansi@^6.2.0:

+  version "6.2.0"

+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"

+  integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==

+  dependencies:

+    ansi-styles "^4.0.0"

+    string-width "^4.1.0"

+    strip-ansi "^6.0.0"

+

+wrap-ansi@^7.0.0:

+  version "7.0.0"

+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"

+  integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==

+  dependencies:

+    ansi-styles "^4.0.0"

+    string-width "^4.1.0"

+    strip-ansi "^6.0.0"

+

+wrappy@1:

+  version "1.0.2"

+  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"

+  integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=

+

+ws@7.4.6:

+  version "7.4.6"

+  resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"

+  integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==

+

+y18n@^5.0.5:

+  version "5.0.8"

+  resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"

+  integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==

+

+yallist@^4.0.0:

+  version "4.0.0"

+  resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"

+  integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==

+

+yaml@^1.10.0:

+  version "1.10.2"

+  resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"

+  integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==

+

+yargs-parser@^20.2.2:

+  version "20.2.9"

+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"

+  integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==

+

+yargs@^16.2.0:

+  version "16.2.0"

+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"

+  integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==

+  dependencies:

+    cliui "^7.0.2"

+    escalade "^3.1.1"

+    get-caller-file "^2.0.5"

+    require-directory "^2.1.1"

+    string-width "^4.2.0"

+    y18n "^5.0.5"

+    yargs-parser "^20.2.2"

+

+yauzl@^2.10.0:

+  version "2.10.0"

+  resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"

+  integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=

+  dependencies:

+    buffer-crc32 "~0.2.3"

+    fd-slicer "~1.1.0"

+

+yocto-queue@^0.1.0:

+  version "0.1.0"

+  resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"

+  integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==

diff --git a/pkgs/servers/monitoring/grafana-image-renderer/yarn.nix b/pkgs/servers/monitoring/grafana-image-renderer/yarn.nix
index d9bc794b18289..f72f4e59bf0e7 100644
--- a/pkgs/servers/monitoring/grafana-image-renderer/yarn.nix
+++ b/pkgs/servers/monitoring/grafana-image-renderer/yarn.nix
@@ -10,11 +10,11 @@
       };
     }
     {
-      name = "_babel_code_frame___code_frame_7.15.8.tgz";
+      name = "_babel_code_frame___code_frame_7.14.5.tgz";
       path = fetchurl {
-        name = "_babel_code_frame___code_frame_7.15.8.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.15.8.tgz";
-        sha1 = "45990c47adadb00c03677baa89221f7cc23d2503";
+        name = "_babel_code_frame___code_frame_7.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz";
+        sha1 = "23b08d740e83f49c5e59945fbf1b43e80bbf4edb";
       };
     }
     {
@@ -290,19 +290,19 @@
       };
     }
     {
-      name = "_types_node___node_16.10.3.tgz";
+      name = "_types_node___node_16.10.2.tgz";
       path = fetchurl {
-        name = "_types_node___node_16.10.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-16.10.3.tgz";
-        sha1 = "7a8f2838603ea314d1d22bb3171d899e15c57bd5";
+        name = "_types_node___node_16.10.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-16.10.2.tgz";
+        sha1 = "5764ca9aa94470adb4e1185fe2e9f19458992b2e";
       };
     }
     {
-      name = "_types_node___node_14.17.21.tgz";
+      name = "_types_node___node_14.17.20.tgz";
       path = fetchurl {
-        name = "_types_node___node_14.17.21.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.17.21.tgz";
-        sha1 = "6359d8cf73481e312a43886fa50afc70ce5592c6";
+        name = "_types_node___node_14.17.20.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.17.20.tgz";
+        sha1 = "74cc80438fd0467dc4377ee5bbad89a886df3c10";
       };
     }
     {
@@ -1298,11 +1298,11 @@
       };
     }
     {
-      name = "eslint_plugin_jsdoc___eslint_plugin_jsdoc_36.1.1.tgz";
+      name = "eslint_plugin_jsdoc___eslint_plugin_jsdoc_36.1.0.tgz";
       path = fetchurl {
-        name = "eslint_plugin_jsdoc___eslint_plugin_jsdoc_36.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-36.1.1.tgz";
-        sha1 = "124cd0e53a5d07f01ebde916a96dd1a6009625d6";
+        name = "eslint_plugin_jsdoc___eslint_plugin_jsdoc_36.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-36.1.0.tgz";
+        sha1 = "8dfe5f27edfb6aa3812e6d86ccaea849ddc86b03";
       };
     }
     {
@@ -2386,11 +2386,11 @@
       };
     }
     {
-      name = "lint_staged___lint_staged_11.2.1.tgz";
+      name = "lint_staged___lint_staged_11.2.0.tgz";
       path = fetchurl {
-        name = "lint_staged___lint_staged_11.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.2.1.tgz";
-        sha1 = "e49104cb4eb01ef36742531385be2efe2b85ed94";
+        name = "lint_staged___lint_staged_11.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/lint-staged/-/lint-staged-11.2.0.tgz";
+        sha1 = "6b9774a74b3eb4bef5c59fb6475bff84d6853008";
       };
     }
     {
@@ -3066,19 +3066,19 @@
       };
     }
     {
-      name = "pkg_fetch___pkg_fetch_3.2.3.tgz";
+      name = "pkg_fetch___pkg_fetch_3.2.4.tgz";
       path = fetchurl {
-        name = "pkg_fetch___pkg_fetch_3.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/pkg-fetch/-/pkg-fetch-3.2.3.tgz";
-        sha1 = "9825febf4eadd470c126d3f6bdc2cb6996861d36";
+        name = "pkg_fetch___pkg_fetch_3.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/pkg-fetch/-/pkg-fetch-3.2.4.tgz";
+        sha1 = "5372734b12167d4bacd872be348217461b517390";
       };
     }
     {
-      name = "pkg___pkg_5.3.3.tgz";
+      name = "pkg___pkg_5.4.1.tgz";
       path = fetchurl {
-        name = "pkg___pkg_5.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/pkg/-/pkg-5.3.3.tgz";
-        sha1 = "5ad1dadfc4e55169f0e1046626e669e0428d4cd7";
+        name = "pkg___pkg_5.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/pkg/-/pkg-5.4.1.tgz";
+        sha1 = "4d824e42c454f32131e471d7cd8d14bfdb3e1c4c";
       };
     }
     {
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index 802948474bc3f..32f31a686a6e8 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -2,7 +2,7 @@
 
 buildGo117Module rec {
   pname = "grafana";
-  version = "8.2.5";
+  version = "8.3.3";
 
   excludedPackages = "\\(alert_webhook_listener\\|clean-swagger\\|release_publisher\\|slow_proxy\\|slow_proxy_mac\\|macaron\\)";
 
@@ -10,15 +10,15 @@ buildGo117Module rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    sha256 = "sha256-Bi4z8HqKUeVOxbkKXazNIzFBFy7lW0T27ROVC6enrZE=";
+    sha256 = "sha256-kfeYAEwHal5bfCmNe2l5iBLM4D3eYFaVtVhXdN90o+I=";
   };
 
   srcStatic = fetchurl {
     url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
-    sha256 = "sha256-ngQA8580rvH3C04TfuIsdiStbvk7/HRDDtS04gR92M4=";
+    sha256 = "sha256-iUKMUg4AS8ufr3YY3UyB/2JJYGTL8urT4bnbz0dsbxg=";
   };
 
-  vendorSha256 = "sha256-adWWL2shdsp1hGxhYvxBbr1YFM89Ym1J0kBNGUrj6vc=";
+  vendorSha256 = "sha256-FHVlCL4ZyHO7Ebi31K1wXcMiN6hiQjVz+5jkJx8R7jc=";
 
   nativeBuildInputs = [ wire ];
 
@@ -26,19 +26,14 @@ buildGo117Module rec {
     # 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
+    wire gen -tags oss ./pkg/cmd/grafana-cli/runner
 
     # The testcase makes an API call against grafana.com:
     #
-    # --- Expected
-    # +++ Actual
-    # @@ -1,4 +1,4 @@
-    #  (map[string]interface {}) (len=2) {
-    # - (string) (len=5) "error": (string) (len=16) "plugin not found",
-    # - (string) (len=7) "message": (string) (len=16) "Plugin not found"
-    # + (string) (len=5) "error": (string) (len=171) "Failed to send request: Get \"https://grafana.com/api/plugins/repo/test\": dial tcp: lookup grafana.com on [::1]:53: read udp [::1]:48019->[::1]:53: read: connection refused",
-    # + (string) (len=7) "message": (string) (len=24) "Failed to install plugin"
-    #  }
-    sed -i -e '/func TestPluginInstallAccess/a t.Skip();' pkg/tests/api/plugins/api_install_test.go
+    # [...]
+    # grafana> t=2021-12-02T14:24:58+0000 lvl=dbug msg="Failed to get latest.json repo from github.com" logger=update.checker error="Get \"https://raw.githubusercontent.com/grafana/grafana/main/latest.json\": dial tcp: lookup raw.githubusercontent.com on [::1]:53: read udp [::1]:36391->[::1]:53: read: connection refused"
+    # grafana> t=2021-12-02T14:24:58+0000 lvl=dbug msg="Failed to get plugins repo from grafana.com" logger=plugin.manager error="Get \"https://grafana.com/api/plugins/versioncheck?slugIn=&grafanaVersion=\": dial tcp: lookup grafana.com on [::1]:53: read udp [::1]:41796->[::1]:53: read: connection refused"
+    sed -i -e '/Request is not forbidden if from an admin/a t.Skip();' pkg/tests/api/plugins/api_plugins_test.go
 
     # Skip a flaky test (https://github.com/NixOS/nixpkgs/pull/126928#issuecomment-861424128)
     sed -i -e '/it should change folder successfully and return correct result/{N;s/$/\nt.Skip();/}'\
@@ -67,6 +62,8 @@ buildGo117Module rec {
     tar -xvf $srcStatic
     mkdir -p $out/share/grafana
     mv grafana-*/{public,conf,tools} $out/share/grafana/
+
+    cp ./conf/defaults.ini $out/share/grafana/conf/
   '';
 
   passthru.tests = { inherit (nixosTests) grafana; };
diff --git a/pkgs/servers/monitoring/matrix-alertmanager/default.nix b/pkgs/servers/monitoring/matrix-alertmanager/default.nix
new file mode 100644
index 0000000000000..d41ece8d9bacc
--- /dev/null
+++ b/pkgs/servers/monitoring/matrix-alertmanager/default.nix
@@ -0,0 +1,39 @@
+{ lib, callPackage, mkYarnPackage, fetchYarnDeps, fetchFromGitHub, nodejs }:
+
+mkYarnPackage rec {
+  pname = "matrix-alertmanager";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "jaywink";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "M3/8viRCRiVJGJSHidP6nG8cr8wOl9hMFY/gzdSRN+4=";
+  };
+
+  packageJSON = ./package.json;
+  yarnLock = ./yarn.lock;
+
+  offlineCache = fetchYarnDeps {
+    inherit yarnLock;
+    sha256 = lib.fileContents ./yarn-hash;
+  };
+
+  prePatch = ''
+    cp ${./package.json} ./package.json
+  '';
+  postInstall = ''
+    sed '1 s;^;#!${nodejs}/bin/node\n;' -i $out/libexec/matrix-alertmanager/node_modules/matrix-alertmanager/src/app.js
+    chmod +x $out/libexec/matrix-alertmanager/node_modules/matrix-alertmanager/src/app.js
+  '';
+
+  passthru.updateScript = callPackage ./update.nix {};
+
+  meta = with lib; {
+    description = "Bot to receive Alertmanager webhook events and forward them to chosen rooms";
+    homepage = "https://github.com/jaywink/matrix-alertmanager";
+    license = licenses.mit;
+    maintainers = with maintainers; [ yuka ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/servers/monitoring/matrix-alertmanager/package.json b/pkgs/servers/monitoring/matrix-alertmanager/package.json
new file mode 100644
index 0000000000000..589775bdcff93
--- /dev/null
+++ b/pkgs/servers/monitoring/matrix-alertmanager/package.json
@@ -0,0 +1,41 @@
+{
+  "name": "matrix-alertmanager",
+  "version": "0.5.0",
+  "description": "Prometheus Alertmanager bot for Matrix",
+  "main": "src/app.js",
+  "scripts": {
+    "dev": "node_modules/.bin/nodemon src/app.js localhost 3000",
+    "test": "node_modules/.bin/mocha tests/",
+    "start": "node src/app.js"
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/jaywink/matrix-alertmanager"
+  },
+  "keywords": [
+    "matrix",
+    "alertmanager",
+    "prometheus",
+    "bot"
+  ],
+  "engines": {
+    "node": ">= 14"
+  },
+  "author": "Jason Robinson",
+  "license": "MIT",
+  "devDependencies": {
+    "chai": "^4.3.4",
+    "eslint": "^7.32.0",
+    "mocha": "^9.1.1",
+    "nodemon": "^2.0.12",
+    "npm-check-updates": "^11.8.5",
+    "sinon": "^11.1.2"
+  },
+  "dependencies": {
+    "dotenv": "^10.0.0",
+    "express": "^4.17.1",
+    "matrix-js-sdk": "^12.5.0",
+    "striptags": "^3.2.0"
+  },
+  "bin": "src/app.js"
+}
diff --git a/pkgs/servers/monitoring/matrix-alertmanager/update.nix b/pkgs/servers/monitoring/matrix-alertmanager/update.nix
new file mode 100755
index 0000000000000..f2ba046fda6b8
--- /dev/null
+++ b/pkgs/servers/monitoring/matrix-alertmanager/update.nix
@@ -0,0 +1,32 @@
+{ lib, writeShellScript
+, coreutils, jq, common-updater-scripts
+, curl, wget, gnugrep, yarn, prefetch-yarn-deps
+}:
+
+writeShellScript "update-matrix-alertmanager" ''
+  set -xe
+  export PATH="${lib.makeBinPath [ gnugrep coreutils curl wget jq common-updater-scripts yarn prefetch-yarn-deps ]}"
+
+  cd pkgs/servers/monitoring/matrix-alertmanager/
+
+  owner="jaywink"
+  repo="matrix-alertmanager"
+  version=`curl -s "https://api.github.com/repos/$owner/$repo/tags" | jq -r .[0].name | grep -oP "^v\K.*"`
+  url="https://raw.githubusercontent.com/$owner/$repo/v$version/"
+
+  (
+    cd ../../../..
+    update-source-version matrix-alertmanager "$version" --file=pkgs/servers/monitoring/matrix-alertmanager/default.nix
+  )
+
+  rm -f package.json package-lock.json yarn.lock
+  wget "$url/package.json" "$url/package-lock.json"
+
+  yarn import
+  echo $(prefetch-yarn-deps) > yarn-hash
+
+  jq '. + { bin: .main }' package.json > package.json.tmp
+  mv package.json{.tmp,}
+
+  rm -rf package-lock.json node_modules
+''
diff --git a/pkgs/servers/monitoring/matrix-alertmanager/yarn-hash b/pkgs/servers/monitoring/matrix-alertmanager/yarn-hash
new file mode 100644
index 0000000000000..9b8af4dbb9db2
--- /dev/null
+++ b/pkgs/servers/monitoring/matrix-alertmanager/yarn-hash
@@ -0,0 +1 @@
+1vjg0rapdj88ygc00j60w4h5wkaf6jycmlx3fz13xar74ikwrifa
diff --git a/pkgs/servers/monitoring/matrix-alertmanager/yarn.lock b/pkgs/servers/monitoring/matrix-alertmanager/yarn.lock
new file mode 100644
index 0000000000000..036469dd85cd9
--- /dev/null
+++ b/pkgs/servers/monitoring/matrix-alertmanager/yarn.lock
@@ -0,0 +1,3560 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@babel/code-frame@7.12.11":
+  version "7.12.11"
+  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
+  integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
+  dependencies:
+    "@babel/highlight" "^7.10.4"
+
+"@babel/helper-validator-identifier@^7.14.5":
+  version "7.15.7"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz#220df993bfe904a4a6b02ab4f3385a5ebf6e2389"
+  integrity sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==
+
+"@babel/highlight@^7.10.4":
+  version "7.14.5"
+  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9"
+  integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==
+  dependencies:
+    "@babel/helper-validator-identifier" "^7.14.5"
+    chalk "^2.0.0"
+    js-tokens "^4.0.0"
+
+"@babel/runtime@^7.12.5":
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a"
+  integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==
+  dependencies:
+    regenerator-runtime "^0.13.4"
+
+"@eslint/eslintrc@^0.4.3":
+  version "0.4.3"
+  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c"
+  integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==
+  dependencies:
+    ajv "^6.12.4"
+    debug "^4.1.1"
+    espree "^7.3.0"
+    globals "^13.9.0"
+    ignore "^4.0.6"
+    import-fresh "^3.2.1"
+    js-yaml "^3.13.1"
+    minimatch "^3.0.4"
+    strip-json-comments "^3.1.1"
+
+"@gar/promisify@^1.0.1":
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.2.tgz#30aa825f11d438671d585bd44e7fd564535fc210"
+  integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==
+
+"@humanwhocodes/config-array@^0.5.0":
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9"
+  integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==
+  dependencies:
+    "@humanwhocodes/object-schema" "^1.2.0"
+    debug "^4.1.1"
+    minimatch "^3.0.4"
+
+"@humanwhocodes/object-schema@^1.2.0":
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf"
+  integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==
+
+"@nodelib/fs.scandir@2.1.5":
+  version "2.1.5"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
+  integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+  dependencies:
+    "@nodelib/fs.stat" "2.0.5"
+    run-parallel "^1.1.9"
+
+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
+  integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+
+"@nodelib/fs.walk@^1.2.3":
+  version "1.2.8"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
+  integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
+  dependencies:
+    "@nodelib/fs.scandir" "2.1.5"
+    fastq "^1.6.0"
+
+"@npmcli/fs@^1.0.0":
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.0.0.tgz#589612cfad3a6ea0feafcb901d29c63fd52db09f"
+  integrity sha512-8ltnOpRR/oJbOp8vaGUnipOi3bqkcW+sLHFlyXIr08OGHmVJLB1Hn7QtGXbYcpVtH1gAYZTlmDXtE4YV0+AMMQ==
+  dependencies:
+    "@gar/promisify" "^1.0.1"
+    semver "^7.3.5"
+
+"@npmcli/git@^2.1.0":
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-2.1.0.tgz#2fbd77e147530247d37f325930d457b3ebe894f6"
+  integrity sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==
+  dependencies:
+    "@npmcli/promise-spawn" "^1.3.2"
+    lru-cache "^6.0.0"
+    mkdirp "^1.0.4"
+    npm-pick-manifest "^6.1.1"
+    promise-inflight "^1.0.1"
+    promise-retry "^2.0.1"
+    semver "^7.3.5"
+    which "^2.0.2"
+
+"@npmcli/installed-package-contents@^1.0.6":
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa"
+  integrity sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==
+  dependencies:
+    npm-bundled "^1.1.1"
+    npm-normalize-package-bin "^1.0.1"
+
+"@npmcli/move-file@^1.0.1":
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674"
+  integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==
+  dependencies:
+    mkdirp "^1.0.4"
+    rimraf "^3.0.2"
+
+"@npmcli/node-gyp@^1.0.2":
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz#3cdc1f30e9736dbc417373ed803b42b1a0a29ede"
+  integrity sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg==
+
+"@npmcli/promise-spawn@^1.2.0", "@npmcli/promise-spawn@^1.3.2":
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz#42d4e56a8e9274fba180dabc0aea6e38f29274f5"
+  integrity sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==
+  dependencies:
+    infer-owner "^1.0.4"
+
+"@npmcli/run-script@^1.8.2":
+  version "1.8.6"
+  resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-1.8.6.tgz#18314802a6660b0d4baa4c3afe7f1ad39d8c28b7"
+  integrity sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g==
+  dependencies:
+    "@npmcli/node-gyp" "^1.0.2"
+    "@npmcli/promise-spawn" "^1.3.2"
+    node-gyp "^7.1.0"
+    read-package-json-fast "^2.0.1"
+
+"@sindresorhus/is@^0.14.0":
+  version "0.14.0"
+  resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
+  integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==
+
+"@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.3":
+  version "1.8.3"
+  resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d"
+  integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==
+  dependencies:
+    type-detect "4.0.8"
+
+"@sinonjs/fake-timers@^7.0.4", "@sinonjs/fake-timers@^7.1.2":
+  version "7.1.2"
+  resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5"
+  integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==
+  dependencies:
+    "@sinonjs/commons" "^1.7.0"
+
+"@sinonjs/samsam@^6.0.2":
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-6.0.2.tgz#a0117d823260f282c04bff5f8704bdc2ac6910bb"
+  integrity sha512-jxPRPp9n93ci7b8hMfJOFDPRLFYadN6FSpeROFTR4UNF4i5b+EK6m4QXPO46BDhFgRy1JuS87zAnFOzCUwMJcQ==
+  dependencies:
+    "@sinonjs/commons" "^1.6.0"
+    lodash.get "^4.4.2"
+    type-detect "^4.0.8"
+
+"@sinonjs/text-encoding@^0.7.1":
+  version "0.7.1"
+  resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5"
+  integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==
+
+"@szmarczak/http-timer@^1.1.2":
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421"
+  integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==
+  dependencies:
+    defer-to-connect "^1.0.1"
+
+"@tootallnate/once@1":
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
+  integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
+
+"@types/retry@^0.12.0":
+  version "0.12.1"
+  resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065"
+  integrity sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==
+
+"@ungap/promise-all-settled@1.1.2":
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44"
+  integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==
+
+abbrev@1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+  integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
+
+accepts@~1.3.7:
+  version "1.3.7"
+  resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
+  integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
+  dependencies:
+    mime-types "~2.1.24"
+    negotiator "0.6.2"
+
+acorn-jsx@^5.3.1:
+  version "5.3.2"
+  resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
+  integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
+
+acorn@^7.4.0:
+  version "7.4.1"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
+  integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
+
+agent-base@6, agent-base@^6.0.2:
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
+  integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
+  dependencies:
+    debug "4"
+
+agentkeepalive@^4.1.3:
+  version "4.1.4"
+  resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.1.4.tgz#d928028a4862cb11718e55227872e842a44c945b"
+  integrity sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==
+  dependencies:
+    debug "^4.1.0"
+    depd "^1.1.2"
+    humanize-ms "^1.2.1"
+
+aggregate-error@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
+  integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
+  dependencies:
+    clean-stack "^2.0.0"
+    indent-string "^4.0.0"
+
+ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4:
+  version "6.12.6"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+  integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+  dependencies:
+    fast-deep-equal "^3.1.1"
+    fast-json-stable-stringify "^2.0.0"
+    json-schema-traverse "^0.4.1"
+    uri-js "^4.2.2"
+
+ajv@^8.0.1:
+  version "8.6.3"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764"
+  integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==
+  dependencies:
+    fast-deep-equal "^3.1.1"
+    json-schema-traverse "^1.0.0"
+    require-from-string "^2.0.2"
+    uri-js "^4.2.2"
+
+another-json@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/another-json/-/another-json-0.2.0.tgz#b5f4019c973b6dd5c6506a2d93469cb6d32aeedc"
+  integrity sha1-tfQBnJc7bdXGUGotk0acttMq7tw=
+
+ansi-align@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb"
+  integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==
+  dependencies:
+    string-width "^3.0.0"
+
+ansi-colors@4.1.1, ansi-colors@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
+  integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
+
+ansi-regex@^2.0.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+  integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
+
+ansi-regex@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+  integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
+
+ansi-regex@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
+  integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
+
+ansi-regex@^5.0.0:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+  integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
+ansi-styles@^3.2.1:
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+  integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+  dependencies:
+    color-convert "^1.9.0"
+
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+  integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+  dependencies:
+    color-convert "^2.0.1"
+
+anymatch@~3.1.2:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
+  integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
+  dependencies:
+    normalize-path "^3.0.0"
+    picomatch "^2.0.4"
+
+aproba@^1.0.3:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
+  integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
+
+are-we-there-yet@~1.1.2:
+  version "1.1.7"
+  resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146"
+  integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==
+  dependencies:
+    delegates "^1.0.0"
+    readable-stream "^2.0.6"
+
+argparse@^1.0.7:
+  version "1.0.10"
+  resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+  integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+  dependencies:
+    sprintf-js "~1.0.2"
+
+argparse@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+  integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+
+array-flatten@1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
+  integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
+
+array-union@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
+  integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+
+asn1@~0.2.3:
+  version "0.2.4"
+  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
+  integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
+  dependencies:
+    safer-buffer "~2.1.0"
+
+assert-plus@1.0.0, assert-plus@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+  integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
+
+assertion-error@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
+  integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==
+
+astral-regex@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
+  integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
+
+asynckit@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+  integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
+
+aws-sign2@~0.7.0:
+  version "0.7.0"
+  resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+  integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
+
+aws4@^1.8.0:
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
+  integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
+
+balanced-match@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+  integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
+
+base-x@^3.0.2:
+  version "3.0.8"
+  resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d"
+  integrity sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==
+  dependencies:
+    safe-buffer "^5.0.1"
+
+bcrypt-pbkdf@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
+  integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
+  dependencies:
+    tweetnacl "^0.14.3"
+
+binary-extensions@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
+  integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
+
+body-parser@1.19.0:
+  version "1.19.0"
+  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
+  integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
+  dependencies:
+    bytes "3.1.0"
+    content-type "~1.0.4"
+    debug "2.6.9"
+    depd "~1.1.2"
+    http-errors "1.7.2"
+    iconv-lite "0.4.24"
+    on-finished "~2.3.0"
+    qs "6.7.0"
+    raw-body "2.4.0"
+    type-is "~1.6.17"
+
+boxen@^4.2.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64"
+  integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==
+  dependencies:
+    ansi-align "^3.0.0"
+    camelcase "^5.3.1"
+    chalk "^3.0.0"
+    cli-boxes "^2.2.0"
+    string-width "^4.1.0"
+    term-size "^2.1.0"
+    type-fest "^0.8.1"
+    widest-line "^3.1.0"
+
+boxen@^5.0.0:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50"
+  integrity sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==
+  dependencies:
+    ansi-align "^3.0.0"
+    camelcase "^6.2.0"
+    chalk "^4.1.0"
+    cli-boxes "^2.2.1"
+    string-width "^4.2.2"
+    type-fest "^0.20.2"
+    widest-line "^3.1.0"
+    wrap-ansi "^7.0.0"
+
+brace-expansion@^1.1.7:
+  version "1.1.11"
+  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+  integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+  dependencies:
+    balanced-match "^1.0.0"
+    concat-map "0.0.1"
+
+braces@^3.0.1, braces@~3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+  integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+  dependencies:
+    fill-range "^7.0.1"
+
+browser-request@^0.3.3:
+  version "0.3.3"
+  resolved "https://registry.yarnpkg.com/browser-request/-/browser-request-0.3.3.tgz#9ece5b5aca89a29932242e18bf933def9876cc17"
+  integrity sha1-ns5bWsqJopkyJC4Yv5M975h2zBc=
+
+browser-stdout@1.3.1:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
+  integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==
+
+bs58@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a"
+  integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo=
+  dependencies:
+    base-x "^3.0.2"
+
+builtins@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88"
+  integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og=
+
+bytes@3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
+  integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
+
+cacache@^15.0.5, cacache@^15.2.0:
+  version "15.3.0"
+  resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb"
+  integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==
+  dependencies:
+    "@npmcli/fs" "^1.0.0"
+    "@npmcli/move-file" "^1.0.1"
+    chownr "^2.0.0"
+    fs-minipass "^2.0.0"
+    glob "^7.1.4"
+    infer-owner "^1.0.4"
+    lru-cache "^6.0.0"
+    minipass "^3.1.1"
+    minipass-collect "^1.0.2"
+    minipass-flush "^1.0.5"
+    minipass-pipeline "^1.2.2"
+    mkdirp "^1.0.3"
+    p-map "^4.0.0"
+    promise-inflight "^1.0.1"
+    rimraf "^3.0.2"
+    ssri "^8.0.1"
+    tar "^6.0.2"
+    unique-filename "^1.1.1"
+
+cacheable-request@^6.0.0:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912"
+  integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==
+  dependencies:
+    clone-response "^1.0.2"
+    get-stream "^5.1.0"
+    http-cache-semantics "^4.0.0"
+    keyv "^3.0.0"
+    lowercase-keys "^2.0.0"
+    normalize-url "^4.1.0"
+    responselike "^1.0.2"
+
+call-bind@^1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
+  integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
+  dependencies:
+    function-bind "^1.1.1"
+    get-intrinsic "^1.0.2"
+
+callsites@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+  integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+
+camelcase@^5.3.1:
+  version "5.3.1"
+  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+  integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+
+camelcase@^6.0.0, camelcase@^6.2.0:
+  version "6.2.0"
+  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"
+  integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==
+
+caseless@~0.12.0:
+  version "0.12.0"
+  resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+  integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
+
+chai@^4.3.4:
+  version "4.3.4"
+  resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz#b55e655b31e1eac7099be4c08c21964fce2e6c49"
+  integrity sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==
+  dependencies:
+    assertion-error "^1.1.0"
+    check-error "^1.0.2"
+    deep-eql "^3.0.1"
+    get-func-name "^2.0.0"
+    pathval "^1.1.1"
+    type-detect "^4.0.5"
+
+chalk@^2.0.0:
+  version "2.4.2"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+  dependencies:
+    ansi-styles "^3.2.1"
+    escape-string-regexp "^1.0.5"
+    supports-color "^5.3.0"
+
+chalk@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
+  integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
+  dependencies:
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
+
+chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+  integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
+  dependencies:
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
+
+check-error@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
+  integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=
+
+chokidar@3.5.2, chokidar@^3.2.2:
+  version "3.5.2"
+  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75"
+  integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==
+  dependencies:
+    anymatch "~3.1.2"
+    braces "~3.0.2"
+    glob-parent "~5.1.2"
+    is-binary-path "~2.1.0"
+    is-glob "~4.0.1"
+    normalize-path "~3.0.0"
+    readdirp "~3.6.0"
+  optionalDependencies:
+    fsevents "~2.3.2"
+
+chownr@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
+  integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
+
+ci-info@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
+  integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
+
+cint@^8.2.1:
+  version "8.2.1"
+  resolved "https://registry.yarnpkg.com/cint/-/cint-8.2.1.tgz#70386b1b48e2773d0d63166a55aff94ef4456a12"
+  integrity sha1-cDhrG0jidz0NYxZqVa/5TvRFahI=
+
+clean-stack@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
+  integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
+
+cli-boxes@^2.2.0, cli-boxes@^2.2.1:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f"
+  integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==
+
+cli-table@^0.3.6:
+  version "0.3.6"
+  resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.6.tgz#e9d6aa859c7fe636981fd3787378c2a20bce92fc"
+  integrity sha512-ZkNZbnZjKERTY5NwC2SeMeLeifSPq/pubeRoTpdr3WchLlnZg6hEgvHkK5zL7KNFdd9PmHN8lxrENUwI3cE8vQ==
+  dependencies:
+    colors "1.0.3"
+
+cliui@^7.0.2:
+  version "7.0.4"
+  resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
+  integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
+  dependencies:
+    string-width "^4.2.0"
+    strip-ansi "^6.0.0"
+    wrap-ansi "^7.0.0"
+
+clone-response@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b"
+  integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=
+  dependencies:
+    mimic-response "^1.0.0"
+
+code-point-at@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+  integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
+
+color-convert@^1.9.0:
+  version "1.9.3"
+  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+  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.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+  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.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+  integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+
+color-name@~1.1.4:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
+colors@1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
+  integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=
+
+combined-stream@^1.0.6, combined-stream@~1.0.6:
+  version "1.0.8"
+  resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+  integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+  dependencies:
+    delayed-stream "~1.0.0"
+
+commander@^6.2.1:
+  version "6.2.1"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
+  integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
+
+concat-map@0.0.1:
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+  integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
+
+configstore@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96"
+  integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==
+  dependencies:
+    dot-prop "^5.2.0"
+    graceful-fs "^4.1.2"
+    make-dir "^3.0.0"
+    unique-string "^2.0.0"
+    write-file-atomic "^3.0.0"
+    xdg-basedir "^4.0.0"
+
+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"
+  integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
+
+content-disposition@0.5.3:
+  version "0.5.3"
+  resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
+  integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
+  dependencies:
+    safe-buffer "5.1.2"
+
+content-type@^1.0.4, content-type@~1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
+  integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
+
+cookie-signature@1.0.6:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
+  integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
+
+cookie@0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
+  integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
+
+core-util-is@1.0.2, core-util-is@~1.0.0:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+  integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+
+cross-spawn@^7.0.2:
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+  integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+  dependencies:
+    path-key "^3.1.0"
+    shebang-command "^2.0.0"
+    which "^2.0.1"
+
+crypto-random-string@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
+  integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
+
+dashdash@^1.12.0:
+  version "1.14.1"
+  resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+  integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
+  dependencies:
+    assert-plus "^1.0.0"
+
+debug@2.6.9, debug@^2.2.0:
+  version "2.6.9"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+  integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
+  dependencies:
+    ms "2.0.0"
+
+debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:
+  version "4.3.2"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
+  integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
+  dependencies:
+    ms "2.1.2"
+
+debug@4.3.1:
+  version "4.3.1"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
+  integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
+  dependencies:
+    ms "2.1.2"
+
+debug@^3.2.6:
+  version "3.2.7"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
+  integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
+  dependencies:
+    ms "^2.1.1"
+
+decamelize@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837"
+  integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==
+
+decompress-response@^3.3.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3"
+  integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=
+  dependencies:
+    mimic-response "^1.0.0"
+
+deep-eql@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
+  integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==
+  dependencies:
+    type-detect "^4.0.0"
+
+deep-extend@^0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+  integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
+
+deep-is@^0.1.3:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
+  integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+
+defer-to-connect@^1.0.1:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591"
+  integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==
+
+delayed-stream@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+  integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
+
+delegates@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+  integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
+
+depd@^1.1.2, depd@~1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+  integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
+
+destroy@~1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
+  integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
+
+diff@5.0.0, diff@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b"
+  integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==
+
+dir-glob@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
+  integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
+  dependencies:
+    path-type "^4.0.0"
+
+doctrine@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+  integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
+  dependencies:
+    esutils "^2.0.2"
+
+dot-prop@^5.2.0:
+  version "5.3.0"
+  resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
+  integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
+  dependencies:
+    is-obj "^2.0.0"
+
+dotenv@^10.0.0:
+  version "10.0.0"
+  resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81"
+  integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==
+
+duplexer3@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
+  integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=
+
+ecc-jsbn@~0.1.1:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
+  integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
+  dependencies:
+    jsbn "~0.1.0"
+    safer-buffer "^2.1.0"
+
+ee-first@1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+  integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
+
+emoji-regex@^7.0.1:
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
+  integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
+
+emoji-regex@^8.0.0:
+  version "8.0.0"
+  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+  integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+encodeurl@~1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
+  integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
+
+encoding@^0.1.12:
+  version "0.1.13"
+  resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
+  integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
+  dependencies:
+    iconv-lite "^0.6.2"
+
+end-of-stream@^1.1.0:
+  version "1.4.4"
+  resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+  integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+  dependencies:
+    once "^1.4.0"
+
+enquirer@^2.3.5:
+  version "2.3.6"
+  resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
+  integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
+  dependencies:
+    ansi-colors "^4.1.1"
+
+env-paths@^2.2.0:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
+  integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
+
+err-code@^2.0.2:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9"
+  integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==
+
+escalade@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+  integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
+escape-goat@^2.0.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675"
+  integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==
+
+escape-html@~1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+  integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
+
+escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+  integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
+escape-string-regexp@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+  integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+
+eslint-scope@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
+  integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
+  dependencies:
+    esrecurse "^4.3.0"
+    estraverse "^4.1.1"
+
+eslint-utils@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
+  integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
+  dependencies:
+    eslint-visitor-keys "^1.1.0"
+
+eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
+  integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
+
+eslint-visitor-keys@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
+  integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
+
+eslint@^7.32.0:
+  version "7.32.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d"
+  integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==
+  dependencies:
+    "@babel/code-frame" "7.12.11"
+    "@eslint/eslintrc" "^0.4.3"
+    "@humanwhocodes/config-array" "^0.5.0"
+    ajv "^6.10.0"
+    chalk "^4.0.0"
+    cross-spawn "^7.0.2"
+    debug "^4.0.1"
+    doctrine "^3.0.0"
+    enquirer "^2.3.5"
+    escape-string-regexp "^4.0.0"
+    eslint-scope "^5.1.1"
+    eslint-utils "^2.1.0"
+    eslint-visitor-keys "^2.0.0"
+    espree "^7.3.1"
+    esquery "^1.4.0"
+    esutils "^2.0.2"
+    fast-deep-equal "^3.1.3"
+    file-entry-cache "^6.0.1"
+    functional-red-black-tree "^1.0.1"
+    glob-parent "^5.1.2"
+    globals "^13.6.0"
+    ignore "^4.0.6"
+    import-fresh "^3.0.0"
+    imurmurhash "^0.1.4"
+    is-glob "^4.0.0"
+    js-yaml "^3.13.1"
+    json-stable-stringify-without-jsonify "^1.0.1"
+    levn "^0.4.1"
+    lodash.merge "^4.6.2"
+    minimatch "^3.0.4"
+    natural-compare "^1.4.0"
+    optionator "^0.9.1"
+    progress "^2.0.0"
+    regexpp "^3.1.0"
+    semver "^7.2.1"
+    strip-ansi "^6.0.0"
+    strip-json-comments "^3.1.0"
+    table "^6.0.9"
+    text-table "^0.2.0"
+    v8-compile-cache "^2.0.3"
+
+espree@^7.3.0, espree@^7.3.1:
+  version "7.3.1"
+  resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"
+  integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==
+  dependencies:
+    acorn "^7.4.0"
+    acorn-jsx "^5.3.1"
+    eslint-visitor-keys "^1.3.0"
+
+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==
+
+esquery@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
+  integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
+  dependencies:
+    estraverse "^5.1.0"
+
+esrecurse@^4.3.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
+  integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
+  dependencies:
+    estraverse "^5.2.0"
+
+estraverse@^4.1.1:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+  integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+
+estraverse@^5.1.0, estraverse@^5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
+  integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
+
+esutils@^2.0.2:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+  integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+etag@~1.8.1:
+  version "1.8.1"
+  resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
+  integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
+
+express@^4.17.1:
+  version "4.17.1"
+  resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
+  integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
+  dependencies:
+    accepts "~1.3.7"
+    array-flatten "1.1.1"
+    body-parser "1.19.0"
+    content-disposition "0.5.3"
+    content-type "~1.0.4"
+    cookie "0.4.0"
+    cookie-signature "1.0.6"
+    debug "2.6.9"
+    depd "~1.1.2"
+    encodeurl "~1.0.2"
+    escape-html "~1.0.3"
+    etag "~1.8.1"
+    finalhandler "~1.1.2"
+    fresh "0.5.2"
+    merge-descriptors "1.0.1"
+    methods "~1.1.2"
+    on-finished "~2.3.0"
+    parseurl "~1.3.3"
+    path-to-regexp "0.1.7"
+    proxy-addr "~2.0.5"
+    qs "6.7.0"
+    range-parser "~1.2.1"
+    safe-buffer "5.1.2"
+    send "0.17.1"
+    serve-static "1.14.1"
+    setprototypeof "1.1.1"
+    statuses "~1.5.0"
+    type-is "~1.6.18"
+    utils-merge "1.0.1"
+    vary "~1.1.2"
+
+extend@~3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
+  integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
+
+extsprintf@1.3.0, extsprintf@^1.2.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+  integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
+
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
+  version "3.1.3"
+  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+  integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
+fast-glob@^3.1.1:
+  version "3.2.7"
+  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1"
+  integrity sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==
+  dependencies:
+    "@nodelib/fs.stat" "^2.0.2"
+    "@nodelib/fs.walk" "^1.2.3"
+    glob-parent "^5.1.2"
+    merge2 "^1.3.0"
+    micromatch "^4.0.4"
+
+fast-json-stable-stringify@^2.0.0:
+  version "2.1.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-levenshtein@^2.0.6:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+  integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+
+fast-memoize@^2.5.2:
+  version "2.5.2"
+  resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e"
+  integrity sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==
+
+fastq@^1.6.0:
+  version "1.13.0"
+  resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
+  integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
+  dependencies:
+    reusify "^1.0.4"
+
+figgy-pudding@^3.5.1:
+  version "3.5.2"
+  resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
+  integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==
+
+file-entry-cache@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
+  integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
+  dependencies:
+    flat-cache "^3.0.4"
+
+fill-range@^7.0.1:
+  version "7.0.1"
+  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+  integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+  dependencies:
+    to-regex-range "^5.0.1"
+
+finalhandler@~1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
+  integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
+  dependencies:
+    debug "2.6.9"
+    encodeurl "~1.0.2"
+    escape-html "~1.0.3"
+    on-finished "~2.3.0"
+    parseurl "~1.3.3"
+    statuses "~1.5.0"
+    unpipe "~1.0.0"
+
+find-up@5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
+  integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
+  dependencies:
+    locate-path "^6.0.0"
+    path-exists "^4.0.0"
+
+find-up@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
+  integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
+  dependencies:
+    locate-path "^3.0.0"
+
+flat-cache@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
+  integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
+  dependencies:
+    flatted "^3.1.0"
+    rimraf "^3.0.2"
+
+flat@^5.0.2:
+  version "5.0.2"
+  resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
+  integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
+
+flatted@^3.1.0:
+  version "3.2.2"
+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561"
+  integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==
+
+forever-agent@~0.6.1:
+  version "0.6.1"
+  resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+  integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
+
+form-data@~2.3.2:
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
+  integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
+  dependencies:
+    asynckit "^0.4.0"
+    combined-stream "^1.0.6"
+    mime-types "^2.1.12"
+
+forwarded@~0.1.2:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
+  integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
+
+fp-and-or@^0.1.3:
+  version "0.1.3"
+  resolved "https://registry.yarnpkg.com/fp-and-or/-/fp-and-or-0.1.3.tgz#e6fba83872a5853a56b3ebdf8d3167f5dfca1882"
+  integrity sha512-wJaE62fLaB3jCYvY2ZHjZvmKK2iiLiiehX38rz5QZxtdN8fVPJDeZUiVvJrHStdTc+23LHlyZuSEKgFc0pxi2g==
+
+fresh@0.5.2:
+  version "0.5.2"
+  resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+  integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
+
+fs-minipass@^2.0.0, fs-minipass@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
+  integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
+  dependencies:
+    minipass "^3.0.0"
+
+fs.realpath@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+  integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+
+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==
+
+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==
+
+functional-red-black-tree@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
+  integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
+
+gauge@~2.7.3:
+  version "2.7.4"
+  resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
+  integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
+  dependencies:
+    aproba "^1.0.3"
+    console-control-strings "^1.0.0"
+    has-unicode "^2.0.0"
+    object-assign "^4.1.0"
+    signal-exit "^3.0.0"
+    string-width "^1.0.1"
+    strip-ansi "^3.0.1"
+    wide-align "^1.1.0"
+
+get-caller-file@^2.0.5:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+  integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
+get-func-name@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
+  integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=
+
+get-intrinsic@^1.0.2:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6"
+  integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==
+  dependencies:
+    function-bind "^1.1.1"
+    has "^1.0.3"
+    has-symbols "^1.0.1"
+
+get-stdin@^8.0.0:
+  version "8.0.0"
+  resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53"
+  integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==
+
+get-stream@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
+  integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
+  dependencies:
+    pump "^3.0.0"
+
+get-stream@^5.1.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
+  integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
+  dependencies:
+    pump "^3.0.0"
+
+getpass@^0.1.1:
+  version "0.1.7"
+  resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+  integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
+  dependencies:
+    assert-plus "^1.0.0"
+
+glob-parent@^5.1.2, glob-parent@~5.1.2:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+  integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+  dependencies:
+    is-glob "^4.0.1"
+
+glob@7.1.7:
+  version "7.1.7"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
+  integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
+  dependencies:
+    fs.realpath "^1.0.0"
+    inflight "^1.0.4"
+    inherits "2"
+    minimatch "^3.0.4"
+    once "^1.3.0"
+    path-is-absolute "^1.0.0"
+
+glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
+  integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
+  dependencies:
+    fs.realpath "^1.0.0"
+    inflight "^1.0.4"
+    inherits "2"
+    minimatch "^3.0.4"
+    once "^1.3.0"
+    path-is-absolute "^1.0.0"
+
+global-dirs@^2.0.1:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d"
+  integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==
+  dependencies:
+    ini "1.3.7"
+
+global-dirs@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686"
+  integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==
+  dependencies:
+    ini "2.0.0"
+
+globals@^13.6.0, globals@^13.9.0:
+  version "13.11.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7"
+  integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==
+  dependencies:
+    type-fest "^0.20.2"
+
+globby@^11.0.4:
+  version "11.0.4"
+  resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5"
+  integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==
+  dependencies:
+    array-union "^2.1.0"
+    dir-glob "^3.0.1"
+    fast-glob "^3.1.1"
+    ignore "^5.1.4"
+    merge2 "^1.3.0"
+    slash "^3.0.0"
+
+got@^9.6.0:
+  version "9.6.0"
+  resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85"
+  integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==
+  dependencies:
+    "@sindresorhus/is" "^0.14.0"
+    "@szmarczak/http-timer" "^1.1.2"
+    cacheable-request "^6.0.0"
+    decompress-response "^3.3.0"
+    duplexer3 "^0.1.4"
+    get-stream "^4.1.0"
+    lowercase-keys "^1.0.1"
+    mimic-response "^1.0.1"
+    p-cancelable "^1.0.0"
+    to-readable-stream "^1.0.0"
+    url-parse-lax "^3.0.0"
+
+graceful-fs@^4.1.2, graceful-fs@^4.2.3:
+  version "4.2.8"
+  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a"
+  integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==
+
+growl@1.10.5:
+  version "1.10.5"
+  resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
+  integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
+
+har-schema@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+  integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
+
+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==
+  dependencies:
+    ajv "^6.12.3"
+    har-schema "^2.0.0"
+
+has-flag@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+  integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+
+has-flag@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+  integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+
+has-symbols@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
+  integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==
+
+has-unicode@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+  integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
+
+has-yarn@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77"
+  integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==
+
+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"
+
+he@1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
+  integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
+
+hosted-git-info@^4.0.1, hosted-git-info@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961"
+  integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==
+  dependencies:
+    lru-cache "^6.0.0"
+
+http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
+  integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==
+
+http-errors@1.7.2, http-errors@~1.7.2:
+  version "1.7.2"
+  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
+  integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
+  dependencies:
+    depd "~1.1.2"
+    inherits "2.0.3"
+    setprototypeof "1.1.1"
+    statuses ">= 1.5.0 < 2"
+    toidentifier "1.0.0"
+
+http-proxy-agent@^4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a"
+  integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==
+  dependencies:
+    "@tootallnate/once" "1"
+    agent-base "6"
+    debug "4"
+
+http-signature@~1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+  integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
+  dependencies:
+    assert-plus "^1.0.0"
+    jsprim "^1.2.2"
+    sshpk "^1.7.0"
+
+https-proxy-agent@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"
+  integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==
+  dependencies:
+    agent-base "6"
+    debug "4"
+
+humanize-ms@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
+  integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=
+  dependencies:
+    ms "^2.0.0"
+
+iconv-lite@0.4.24:
+  version "0.4.24"
+  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+  integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+  dependencies:
+    safer-buffer ">= 2.1.2 < 3"
+
+iconv-lite@^0.6.2:
+  version "0.6.3"
+  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
+  integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
+  dependencies:
+    safer-buffer ">= 2.1.2 < 3.0.0"
+
+ignore-by-default@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
+  integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk=
+
+ignore-walk@^3.0.3:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.4.tgz#c9a09f69b7c7b479a5d74ac1a3c0d4236d2a6335"
+  integrity sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==
+  dependencies:
+    minimatch "^3.0.4"
+
+ignore@^4.0.6:
+  version "4.0.6"
+  resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
+  integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
+
+ignore@^5.1.4:
+  version "5.1.8"
+  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
+  integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
+
+import-fresh@^3.0.0, import-fresh@^3.2.1:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+  integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+  dependencies:
+    parent-module "^1.0.0"
+    resolve-from "^4.0.0"
+
+import-lazy@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
+  integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=
+
+imurmurhash@^0.1.4:
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+  integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
+
+indent-string@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
+  integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
+
+infer-owner@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
+  integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
+
+inflight@^1.0.4:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+  integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+  dependencies:
+    once "^1.3.0"
+    wrappy "1"
+
+inherits@2, inherits@2.0.3, inherits@~2.0.3:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+  integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
+
+ini@1.3.7, ini@^1.3.5, ini@~1.3.0:
+  version "1.3.7"
+  resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84"
+  integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==
+
+ini@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5"
+  integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
+
+ip@^1.1.5:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
+  integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
+
+ipaddr.js@1.9.1:
+  version "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==
+
+is-binary-path@~2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+  integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+  dependencies:
+    binary-extensions "^2.0.0"
+
+is-ci@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
+  integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
+  dependencies:
+    ci-info "^2.0.0"
+
+is-extglob@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+  integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+
+is-fullwidth-code-point@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+  integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
+  dependencies:
+    number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+  integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
+
+is-fullwidth-code-point@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+  integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
+  integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
+  dependencies:
+    is-extglob "^2.1.1"
+
+is-installed-globally@^0.3.1:
+  version "0.3.2"
+  resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141"
+  integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==
+  dependencies:
+    global-dirs "^2.0.1"
+    is-path-inside "^3.0.1"
+
+is-installed-globally@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520"
+  integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==
+  dependencies:
+    global-dirs "^3.0.0"
+    is-path-inside "^3.0.2"
+
+is-lambda@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5"
+  integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=
+
+is-npm@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d"
+  integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==
+
+is-npm@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8"
+  integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==
+
+is-number@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+  integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+is-obj@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
+  integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
+
+is-path-inside@^3.0.1, is-path-inside@^3.0.2:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
+  integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
+
+is-plain-obj@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287"
+  integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
+
+is-typedarray@^1.0.0, is-typedarray@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+  integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
+
+is-unicode-supported@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7"
+  integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
+
+is-yarn-global@^0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232"
+  integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==
+
+isarray@0.0.1:
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
+  integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=
+
+isarray@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+  integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+
+isexe@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+  integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
+
+isstream@~0.1.2:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+  integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
+
+jju@^1.1.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a"
+  integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo=
+
+js-tokens@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+  integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+js-yaml@4.1.0, js-yaml@^4.0.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+  integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+  dependencies:
+    argparse "^2.0.1"
+
+js-yaml@^3.13.1:
+  version "3.14.1"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
+  integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
+  dependencies:
+    argparse "^1.0.7"
+    esprima "^4.0.0"
+
+jsbn@~0.1.0:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+  integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
+
+json-buffer@3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
+  integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=
+
+json-parse-even-better-errors@^2.3.0:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+  integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
+json-parse-helpfulerror@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz#13f14ce02eed4e981297b64eb9e3b932e2dd13dc"
+  integrity sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w=
+  dependencies:
+    jju "^1.1.0"
+
+json-schema-traverse@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+  integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
+json-schema-traverse@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
+  integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
+
+json-schema@0.2.3:
+  version "0.2.3"
+  resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+  integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
+
+json-stable-stringify-without-jsonify@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+  integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
+
+json-stringify-safe@~5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+  integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
+
+json5@^2.1.2:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3"
+  integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==
+  dependencies:
+    minimist "^1.2.5"
+
+jsonlines@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/jsonlines/-/jsonlines-0.1.1.tgz#4fcd246dc5d0e38691907c44ab002f782d1d94cc"
+  integrity sha1-T80kbcXQ44aRkHxEqwAveC0dlMw=
+
+jsonparse@^1.3.1:
+  version "1.3.1"
+  resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
+  integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=
+
+jsprim@^1.2.2:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
+  integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
+  dependencies:
+    assert-plus "1.0.0"
+    extsprintf "1.3.0"
+    json-schema "0.2.3"
+    verror "1.10.0"
+
+just-extend@^4.0.2:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744"
+  integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==
+
+keyv@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9"
+  integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==
+  dependencies:
+    json-buffer "3.0.0"
+
+kleur@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
+  integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
+
+latest-version@^5.0.0, latest-version@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face"
+  integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==
+  dependencies:
+    package-json "^6.3.0"
+
+levn@^0.4.1:
+  version "0.4.1"
+  resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
+  integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
+  dependencies:
+    prelude-ls "^1.2.1"
+    type-check "~0.4.0"
+
+libnpmconfig@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz#c0c2f793a74e67d4825e5039e7a02a0044dfcbc0"
+  integrity sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA==
+  dependencies:
+    figgy-pudding "^3.5.1"
+    find-up "^3.0.0"
+    ini "^1.3.5"
+
+locate-path@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
+  integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
+  dependencies:
+    p-locate "^3.0.0"
+    path-exists "^3.0.0"
+
+locate-path@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
+  integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
+  dependencies:
+    p-locate "^5.0.0"
+
+lodash.clonedeep@^4.5.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
+  integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
+
+lodash.get@^4.4.2:
+  version "4.4.2"
+  resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
+  integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
+
+lodash.merge@^4.6.2:
+  version "4.6.2"
+  resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
+  integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+
+lodash.truncate@^4.4.2:
+  version "4.4.2"
+  resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
+  integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
+
+lodash@^4.17.21:
+  version "4.17.21"
+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+  integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+log-symbols@4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503"
+  integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
+  dependencies:
+    chalk "^4.1.0"
+    is-unicode-supported "^0.1.0"
+
+loglevel@^1.7.1:
+  version "1.7.1"
+  resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197"
+  integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==
+
+lowercase-keys@^1.0.0, lowercase-keys@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f"
+  integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==
+
+lowercase-keys@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479"
+  integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==
+
+lru-cache@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+  integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+  dependencies:
+    yallist "^4.0.0"
+
+make-dir@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+  integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+  dependencies:
+    semver "^6.0.0"
+
+make-fetch-happen@^9.0.1:
+  version "9.1.0"
+  resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968"
+  integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==
+  dependencies:
+    agentkeepalive "^4.1.3"
+    cacache "^15.2.0"
+    http-cache-semantics "^4.1.0"
+    http-proxy-agent "^4.0.1"
+    https-proxy-agent "^5.0.0"
+    is-lambda "^1.0.1"
+    lru-cache "^6.0.0"
+    minipass "^3.1.3"
+    minipass-collect "^1.0.2"
+    minipass-fetch "^1.3.2"
+    minipass-flush "^1.0.5"
+    minipass-pipeline "^1.2.4"
+    negotiator "^0.6.2"
+    promise-retry "^2.0.1"
+    socks-proxy-agent "^6.0.0"
+    ssri "^8.0.0"
+
+matrix-js-sdk@^12.5.0:
+  version "12.5.0"
+  resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-12.5.0.tgz#3899f9d323c457d15a1fe436a2dfa07ae131cce2"
+  integrity sha512-HnEXoEhqpNp9/W9Ep7ZNZAubFlUssFyVpjgKfMOxxg+dYbBk5NWToHmAPQxlRUgrZ/rIMLVyMJROSCIthDbo2A==
+  dependencies:
+    "@babel/runtime" "^7.12.5"
+    another-json "^0.2.0"
+    browser-request "^0.3.3"
+    bs58 "^4.0.1"
+    content-type "^1.0.4"
+    loglevel "^1.7.1"
+    p-retry "^4.5.0"
+    qs "^6.9.6"
+    request "^2.88.2"
+    unhomoglyph "^1.0.6"
+
+media-typer@0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+  integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
+
+merge-descriptors@1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
+  integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
+
+merge2@^1.3.0:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+  integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+
+methods@~1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+  integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
+
+micromatch@^4.0.4:
+  version "4.0.4"
+  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
+  integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
+  dependencies:
+    braces "^3.0.1"
+    picomatch "^2.2.3"
+
+mime-db@1.44.0:
+  version "1.44.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
+  integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
+
+mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24:
+  version "2.1.27"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
+  integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
+  dependencies:
+    mime-db "1.44.0"
+
+mime@1.6.0:
+  version "1.6.0"
+  resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
+  integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
+
+mimic-response@^1.0.0, mimic-response@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
+  integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==
+
+minimatch@3.0.4, minimatch@^3.0.4:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+  integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+  dependencies:
+    brace-expansion "^1.1.7"
+
+minimist@^1.2.0, minimist@^1.2.5:
+  version "1.2.5"
+  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
+  integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
+
+minipass-collect@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617"
+  integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==
+  dependencies:
+    minipass "^3.0.0"
+
+minipass-fetch@^1.3.0, minipass-fetch@^1.3.2:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6"
+  integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==
+  dependencies:
+    minipass "^3.1.0"
+    minipass-sized "^1.0.3"
+    minizlib "^2.0.0"
+  optionalDependencies:
+    encoding "^0.1.12"
+
+minipass-flush@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373"
+  integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==
+  dependencies:
+    minipass "^3.0.0"
+
+minipass-json-stream@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7"
+  integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==
+  dependencies:
+    jsonparse "^1.3.1"
+    minipass "^3.0.0"
+
+minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4:
+  version "1.2.4"
+  resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c"
+  integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==
+  dependencies:
+    minipass "^3.0.0"
+
+minipass-sized@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70"
+  integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==
+  dependencies:
+    minipass "^3.0.0"
+
+minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3:
+  version "3.1.5"
+  resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.5.tgz#71f6251b0a33a49c01b3cf97ff77eda030dff732"
+  integrity sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==
+  dependencies:
+    yallist "^4.0.0"
+
+minizlib@^2.0.0, minizlib@^2.1.1:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931"
+  integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==
+  dependencies:
+    minipass "^3.0.0"
+    yallist "^4.0.0"
+
+mkdirp@^1.0.3, mkdirp@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
+  integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+
+mocha@^9.1.1:
+  version "9.1.1"
+  resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.1.1.tgz#33df2eb9c6262434630510c5f4283b36efda9b61"
+  integrity sha512-0wE74YMgOkCgBUj8VyIDwmLUjTsS13WV1Pg7l0SHea2qzZzlq7MDnfbPsHKcELBRk3+izEVkRofjmClpycudCA==
+  dependencies:
+    "@ungap/promise-all-settled" "1.1.2"
+    ansi-colors "4.1.1"
+    browser-stdout "1.3.1"
+    chokidar "3.5.2"
+    debug "4.3.1"
+    diff "5.0.0"
+    escape-string-regexp "4.0.0"
+    find-up "5.0.0"
+    glob "7.1.7"
+    growl "1.10.5"
+    he "1.2.0"
+    js-yaml "4.1.0"
+    log-symbols "4.1.0"
+    minimatch "3.0.4"
+    ms "2.1.3"
+    nanoid "3.1.23"
+    serialize-javascript "6.0.0"
+    strip-json-comments "3.1.1"
+    supports-color "8.1.1"
+    which "2.0.2"
+    wide-align "1.1.3"
+    workerpool "6.1.5"
+    yargs "16.2.0"
+    yargs-parser "20.2.4"
+    yargs-unparser "2.0.0"
+
+ms@2.0.0, ms@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+  integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+
+ms@2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
+  integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
+
+ms@2.1.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+ms@2.1.3, ms@^2.1.1:
+  version "2.1.3"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+  integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
+
+nanoid@3.1.23:
+  version "3.1.23"
+  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81"
+  integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==
+
+natural-compare@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+  integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
+
+negotiator@0.6.2, negotiator@^0.6.2:
+  version "0.6.2"
+  resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
+  integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
+
+nise@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.0.tgz#713ef3ed138252daef20ec035ab62b7a28be645c"
+  integrity sha512-W5WlHu+wvo3PaKLsJJkgPup2LrsXCcm7AWwyNZkUnn5rwPkuPBi3Iwk5SQtN0mv+K65k7nKKjwNQ30wg3wLAQQ==
+  dependencies:
+    "@sinonjs/commons" "^1.7.0"
+    "@sinonjs/fake-timers" "^7.0.4"
+    "@sinonjs/text-encoding" "^0.7.1"
+    just-extend "^4.0.2"
+    path-to-regexp "^1.7.0"
+
+node-gyp@^7.1.0:
+  version "7.1.2"
+  resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.2.tgz#21a810aebb187120251c3bcec979af1587b188ae"
+  integrity sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==
+  dependencies:
+    env-paths "^2.2.0"
+    glob "^7.1.4"
+    graceful-fs "^4.2.3"
+    nopt "^5.0.0"
+    npmlog "^4.1.2"
+    request "^2.88.2"
+    rimraf "^3.0.2"
+    semver "^7.3.2"
+    tar "^6.0.2"
+    which "^2.0.2"
+
+nodemon@^2.0.12:
+  version "2.0.12"
+  resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.12.tgz#5dae4e162b617b91f1873b3bfea215dd71e144d5"
+  integrity sha512-egCTmNZdObdBxUBw6ZNwvZ/xzk24CKRs5K6d+5zbmrMr7rOpPmfPeF6OxM3DDpaRx331CQRFEktn+wrFFfBSOA==
+  dependencies:
+    chokidar "^3.2.2"
+    debug "^3.2.6"
+    ignore-by-default "^1.0.1"
+    minimatch "^3.0.4"
+    pstree.remy "^1.1.7"
+    semver "^5.7.1"
+    supports-color "^5.5.0"
+    touch "^3.1.0"
+    undefsafe "^2.0.3"
+    update-notifier "^4.1.0"
+
+nopt@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88"
+  integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==
+  dependencies:
+    abbrev "1"
+
+nopt@~1.0.10:
+  version "1.0.10"
+  resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
+  integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=
+  dependencies:
+    abbrev "1"
+
+normalize-path@^3.0.0, normalize-path@~3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+  integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+
+normalize-url@^4.1.0:
+  version "4.5.1"
+  resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a"
+  integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==
+
+npm-bundled@^1.1.1:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1"
+  integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==
+  dependencies:
+    npm-normalize-package-bin "^1.0.1"
+
+npm-check-updates@^11.8.5:
+  version "11.8.5"
+  resolved "https://registry.yarnpkg.com/npm-check-updates/-/npm-check-updates-11.8.5.tgz#8dec7fd255a437264742c15f9c0bb29f4eceaf55"
+  integrity sha512-IYSHjlWe8UEugDy7X0qjBeJwcni4DlcWdBK4QQEbwgkNlEDlXyd4yQJYWFumKaJzrp/n5/EcvaboXsBD1Er/pw==
+  dependencies:
+    chalk "^4.1.2"
+    cint "^8.2.1"
+    cli-table "^0.3.6"
+    commander "^6.2.1"
+    fast-memoize "^2.5.2"
+    find-up "5.0.0"
+    fp-and-or "^0.1.3"
+    get-stdin "^8.0.0"
+    globby "^11.0.4"
+    hosted-git-info "^4.0.2"
+    json-parse-helpfulerror "^1.0.3"
+    jsonlines "^0.1.1"
+    libnpmconfig "^1.2.1"
+    lodash "^4.17.21"
+    minimatch "^3.0.4"
+    p-map "^4.0.0"
+    pacote "^11.3.5"
+    parse-github-url "^1.0.2"
+    progress "^2.0.3"
+    prompts "^2.4.1"
+    rc-config-loader "^4.0.0"
+    remote-git-tags "^3.0.0"
+    rimraf "^3.0.2"
+    semver "^7.3.5"
+    semver-utils "^1.1.4"
+    spawn-please "^1.0.0"
+    update-notifier "^5.1.0"
+
+npm-install-checks@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4"
+  integrity sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==
+  dependencies:
+    semver "^7.1.1"
+
+npm-normalize-package-bin@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
+  integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
+
+npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.2:
+  version "8.1.5"
+  resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44"
+  integrity sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==
+  dependencies:
+    hosted-git-info "^4.0.1"
+    semver "^7.3.4"
+    validate-npm-package-name "^3.0.0"
+
+npm-packlist@^2.1.4:
+  version "2.2.2"
+  resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.2.2.tgz#076b97293fa620f632833186a7a8f65aaa6148c8"
+  integrity sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==
+  dependencies:
+    glob "^7.1.6"
+    ignore-walk "^3.0.3"
+    npm-bundled "^1.1.1"
+    npm-normalize-package-bin "^1.0.1"
+
+npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.1:
+  version "6.1.1"
+  resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz#7b5484ca2c908565f43b7f27644f36bb816f5148"
+  integrity sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==
+  dependencies:
+    npm-install-checks "^4.0.0"
+    npm-normalize-package-bin "^1.0.1"
+    npm-package-arg "^8.1.2"
+    semver "^7.3.4"
+
+npm-registry-fetch@^11.0.0:
+  version "11.0.0"
+  resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz#68c1bb810c46542760d62a6a965f85a702d43a76"
+  integrity sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==
+  dependencies:
+    make-fetch-happen "^9.0.1"
+    minipass "^3.1.3"
+    minipass-fetch "^1.3.0"
+    minipass-json-stream "^1.0.1"
+    minizlib "^2.0.0"
+    npm-package-arg "^8.0.0"
+
+npmlog@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
+  integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
+  dependencies:
+    are-we-there-yet "~1.1.2"
+    console-control-strings "~1.1.0"
+    gauge "~2.7.3"
+    set-blocking "~2.0.0"
+
+number-is-nan@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+  integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
+
+oauth-sign@~0.9.0:
+  version "0.9.0"
+  resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
+  integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
+
+object-assign@^4.1.0:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+  integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
+
+object-inspect@^1.9.0:
+  version "1.11.0"
+  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1"
+  integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==
+
+on-finished@~2.3.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
+  integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
+  dependencies:
+    ee-first "1.1.1"
+
+once@^1.3.0, once@^1.3.1, once@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+  integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+  dependencies:
+    wrappy "1"
+
+optionator@^0.9.1:
+  version "0.9.1"
+  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
+  integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
+  dependencies:
+    deep-is "^0.1.3"
+    fast-levenshtein "^2.0.6"
+    levn "^0.4.1"
+    prelude-ls "^1.2.1"
+    type-check "^0.4.0"
+    word-wrap "^1.2.3"
+
+p-cancelable@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc"
+  integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==
+
+p-limit@^2.0.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+  integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+  dependencies:
+    p-try "^2.0.0"
+
+p-limit@^3.0.2:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+  integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+  dependencies:
+    yocto-queue "^0.1.0"
+
+p-locate@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
+  integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
+  dependencies:
+    p-limit "^2.0.0"
+
+p-locate@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
+  integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
+  dependencies:
+    p-limit "^3.0.2"
+
+p-map@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
+  integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
+  dependencies:
+    aggregate-error "^3.0.0"
+
+p-retry@^4.5.0:
+  version "4.6.1"
+  resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.6.1.tgz#8fcddd5cdf7a67a0911a9cf2ef0e5df7f602316c"
+  integrity sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==
+  dependencies:
+    "@types/retry" "^0.12.0"
+    retry "^0.13.1"
+
+p-try@^2.0.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+  integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+package-json@^6.3.0:
+  version "6.5.0"
+  resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0"
+  integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==
+  dependencies:
+    got "^9.6.0"
+    registry-auth-token "^4.0.0"
+    registry-url "^5.0.0"
+    semver "^6.2.0"
+
+pacote@^11.3.5:
+  version "11.3.5"
+  resolved "https://registry.yarnpkg.com/pacote/-/pacote-11.3.5.tgz#73cf1fc3772b533f575e39efa96c50be8c3dc9d2"
+  integrity sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg==
+  dependencies:
+    "@npmcli/git" "^2.1.0"
+    "@npmcli/installed-package-contents" "^1.0.6"
+    "@npmcli/promise-spawn" "^1.2.0"
+    "@npmcli/run-script" "^1.8.2"
+    cacache "^15.0.5"
+    chownr "^2.0.0"
+    fs-minipass "^2.1.0"
+    infer-owner "^1.0.4"
+    minipass "^3.1.3"
+    mkdirp "^1.0.3"
+    npm-package-arg "^8.0.1"
+    npm-packlist "^2.1.4"
+    npm-pick-manifest "^6.0.0"
+    npm-registry-fetch "^11.0.0"
+    promise-retry "^2.0.1"
+    read-package-json-fast "^2.0.1"
+    rimraf "^3.0.2"
+    ssri "^8.0.1"
+    tar "^6.1.0"
+
+parent-module@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+  integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
+  dependencies:
+    callsites "^3.0.0"
+
+parse-github-url@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395"
+  integrity sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==
+
+parseurl@~1.3.3:
+  version "1.3.3"
+  resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
+  integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
+
+path-exists@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+  integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
+
+path-exists@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+  integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
+path-is-absolute@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+  integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+
+path-key@^3.1.0:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+  integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
+path-to-regexp@0.1.7:
+  version "0.1.7"
+  resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
+  integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
+
+path-to-regexp@^1.7.0:
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a"
+  integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==
+  dependencies:
+    isarray "0.0.1"
+
+path-type@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+  integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+
+pathval@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d"
+  integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==
+
+performance-now@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+  integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
+
+picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
+  integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
+
+prelude-ls@^1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
+  integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
+
+prepend-http@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
+  integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=
+
+process-nextick-args@~2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+  integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+progress@^2.0.0, progress@^2.0.3:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
+  integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
+
+promise-inflight@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
+  integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
+
+promise-retry@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22"
+  integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==
+  dependencies:
+    err-code "^2.0.2"
+    retry "^0.12.0"
+
+prompts@^2.4.1:
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61"
+  integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==
+  dependencies:
+    kleur "^3.0.3"
+    sisteransi "^1.0.5"
+
+proxy-addr@~2.0.5:
+  version "2.0.6"
+  resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf"
+  integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==
+  dependencies:
+    forwarded "~0.1.2"
+    ipaddr.js "1.9.1"
+
+psl@^1.1.28:
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
+  integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
+
+pstree.remy@^1.1.7:
+  version "1.1.8"
+  resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a"
+  integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==
+
+pump@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
+  integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
+  dependencies:
+    end-of-stream "^1.1.0"
+    once "^1.3.1"
+
+punycode@^2.1.0, punycode@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+  integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+
+pupa@^2.0.1, pupa@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62"
+  integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==
+  dependencies:
+    escape-goat "^2.0.0"
+
+qs@6.7.0:
+  version "6.7.0"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
+  integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
+
+qs@^6.9.6:
+  version "6.10.1"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a"
+  integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==
+  dependencies:
+    side-channel "^1.0.4"
+
+qs@~6.5.2:
+  version "6.5.2"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
+  integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
+
+queue-microtask@^1.2.2:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+  integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+
+randombytes@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
+  integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
+  dependencies:
+    safe-buffer "^5.1.0"
+
+range-parser@~1.2.1:
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
+  integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
+
+raw-body@2.4.0:
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
+  integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
+  dependencies:
+    bytes "3.1.0"
+    http-errors "1.7.2"
+    iconv-lite "0.4.24"
+    unpipe "1.0.0"
+
+rc-config-loader@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/rc-config-loader/-/rc-config-loader-4.0.0.tgz#144cf31961c9f8ebcf252bd9c263fd40d62bd387"
+  integrity sha512-//LRTblJEcqbmmro1GCmZ39qZXD+JqzuD8Y5/IZU3Dhp3A1Yr0Xn68ks8MQ6qKfKvYCWDveUmRDKDA40c+sCXw==
+  dependencies:
+    debug "^4.1.1"
+    js-yaml "^4.0.0"
+    json5 "^2.1.2"
+    require-from-string "^2.0.2"
+
+rc@^1.2.8:
+  version "1.2.8"
+  resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
+  integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
+  dependencies:
+    deep-extend "^0.6.0"
+    ini "~1.3.0"
+    minimist "^1.2.0"
+    strip-json-comments "~2.0.1"
+
+read-package-json-fast@^2.0.1:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83"
+  integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==
+  dependencies:
+    json-parse-even-better-errors "^2.3.0"
+    npm-normalize-package-bin "^1.0.1"
+
+readable-stream@^2.0.6:
+  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"
+
+readdirp@~3.6.0:
+  version "3.6.0"
+  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+  integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
+  dependencies:
+    picomatch "^2.2.1"
+
+regenerator-runtime@^0.13.4:
+  version "0.13.9"
+  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
+  integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
+
+regexpp@^3.1.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
+  integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
+
+registry-auth-token@^4.0.0:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250"
+  integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==
+  dependencies:
+    rc "^1.2.8"
+
+registry-url@^5.0.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009"
+  integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==
+  dependencies:
+    rc "^1.2.8"
+
+remote-git-tags@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/remote-git-tags/-/remote-git-tags-3.0.0.tgz#424f8ec2cdea00bb5af1784a49190f25e16983c3"
+  integrity sha512-C9hAO4eoEsX+OXA4rla66pXZQ+TLQ8T9dttgQj18yuKlPMTVkIkdYXvlMC55IuUsIkV6DpmQYi10JKFLaU+l7w==
+
+request@^2.88.2:
+  version "2.88.2"
+  resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
+  integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
+  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.3"
+    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.5.0"
+    tunnel-agent "^0.6.0"
+    uuid "^3.3.2"
+
+require-directory@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+  integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
+
+require-from-string@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
+  integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
+
+resolve-from@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+  integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+
+responselike@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7"
+  integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=
+  dependencies:
+    lowercase-keys "^1.0.0"
+
+retry@^0.12.0:
+  version "0.12.0"
+  resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
+  integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=
+
+retry@^0.13.1:
+  version "0.13.1"
+  resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658"
+  integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==
+
+reusify@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+  integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+
+rimraf@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+  integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+  dependencies:
+    glob "^7.1.3"
+
+run-parallel@^1.1.9:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+  integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+  dependencies:
+    queue-microtask "^1.2.2"
+
+safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+  version "5.1.2"
+  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+  integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+  integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+semver-diff@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b"
+  integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==
+  dependencies:
+    semver "^6.3.0"
+
+semver-utils@^1.1.4:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/semver-utils/-/semver-utils-1.1.4.tgz#cf0405e669a57488913909fc1c3f29bf2a4871e2"
+  integrity sha512-EjnoLE5OGmDAVV/8YDoN5KiajNadjzIp9BAHOhYeQHt7j0UWxjmgsx4YD48wp4Ue1Qogq38F1GNUJNqF1kKKxA==
+
+semver@^5.7.1:
+  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.2.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@^7.1.1, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5:
+  version "7.3.5"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
+  integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
+  dependencies:
+    lru-cache "^6.0.0"
+
+send@0.17.1:
+  version "0.17.1"
+  resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
+  integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
+  dependencies:
+    debug "2.6.9"
+    depd "~1.1.2"
+    destroy "~1.0.4"
+    encodeurl "~1.0.2"
+    escape-html "~1.0.3"
+    etag "~1.8.1"
+    fresh "0.5.2"
+    http-errors "~1.7.2"
+    mime "1.6.0"
+    ms "2.1.1"
+    on-finished "~2.3.0"
+    range-parser "~1.2.1"
+    statuses "~1.5.0"
+
+serialize-javascript@6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8"
+  integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==
+  dependencies:
+    randombytes "^2.1.0"
+
+serve-static@1.14.1:
+  version "1.14.1"
+  resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
+  integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
+  dependencies:
+    encodeurl "~1.0.2"
+    escape-html "~1.0.3"
+    parseurl "~1.3.3"
+    send "0.17.1"
+
+set-blocking@~2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+  integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
+
+setprototypeof@1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
+  integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
+
+shebang-command@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+  integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
+  dependencies:
+    shebang-regex "^3.0.0"
+
+shebang-regex@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+  integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+
+side-channel@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
+  integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
+  dependencies:
+    call-bind "^1.0.0"
+    get-intrinsic "^1.0.2"
+    object-inspect "^1.9.0"
+
+signal-exit@^3.0.0, signal-exit@^3.0.2:
+  version "3.0.4"
+  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.4.tgz#366a4684d175b9cab2081e3681fda3747b6c51d7"
+  integrity sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q==
+
+sinon@^11.1.2:
+  version "11.1.2"
+  resolved "https://registry.yarnpkg.com/sinon/-/sinon-11.1.2.tgz#9e78850c747241d5c59d1614d8f9cbe8840e8674"
+  integrity sha512-59237HChms4kg7/sXhiRcUzdSkKuydDeTiamT/jesUVHshBgL8XAmhgFo0GfK6RruMDM/iRSij1EybmMog9cJw==
+  dependencies:
+    "@sinonjs/commons" "^1.8.3"
+    "@sinonjs/fake-timers" "^7.1.2"
+    "@sinonjs/samsam" "^6.0.2"
+    diff "^5.0.0"
+    nise "^5.1.0"
+    supports-color "^7.2.0"
+
+sisteransi@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
+  integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
+
+slash@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
+  integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+
+slice-ansi@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
+  integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
+  dependencies:
+    ansi-styles "^4.0.0"
+    astral-regex "^2.0.0"
+    is-fullwidth-code-point "^3.0.0"
+
+smart-buffer@^4.1.0:
+  version "4.2.0"
+  resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
+  integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
+
+socks-proxy-agent@^6.0.0:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.1.0.tgz#869cf2d7bd10fea96c7ad3111e81726855e285c3"
+  integrity sha512-57e7lwCN4Tzt3mXz25VxOErJKXlPfXmkMLnk310v/jwW20jWRVcgsOit+xNkN3eIEdB47GwnfAEBLacZ/wVIKg==
+  dependencies:
+    agent-base "^6.0.2"
+    debug "^4.3.1"
+    socks "^2.6.1"
+
+socks@^2.6.1:
+  version "2.6.1"
+  resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.1.tgz#989e6534a07cf337deb1b1c94aaa44296520d30e"
+  integrity sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==
+  dependencies:
+    ip "^1.1.5"
+    smart-buffer "^4.1.0"
+
+spawn-please@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/spawn-please/-/spawn-please-1.0.0.tgz#51cf5831ba2bf418aa3ec2102d40b75cfd48b6f2"
+  integrity sha512-Kz33ip6NRNKuyTRo3aDWyWxeGeM0ORDO552Fs6E1nj4pLWPkl37SrRtTnq+MEopVaqgmaO6bAvVS+v64BJ5M/A==
+
+sprintf-js@~1.0.2:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+  integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
+
+sshpk@^1.7.0:
+  version "1.16.1"
+  resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
+  integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
+  dependencies:
+    asn1 "~0.2.3"
+    assert-plus "^1.0.0"
+    bcrypt-pbkdf "^1.0.0"
+    dashdash "^1.12.0"
+    ecc-jsbn "~0.1.1"
+    getpass "^0.1.1"
+    jsbn "~0.1.0"
+    safer-buffer "^2.0.2"
+    tweetnacl "~0.14.0"
+
+ssri@^8.0.0, ssri@^8.0.1:
+  version "8.0.1"
+  resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af"
+  integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==
+  dependencies:
+    minipass "^3.1.1"
+
+"statuses@>= 1.5.0 < 2", statuses@~1.5.0:
+  version "1.5.0"
+  resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
+  integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
+
+string-width@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+  integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
+  dependencies:
+    code-point-at "^1.0.0"
+    is-fullwidth-code-point "^1.0.0"
+    strip-ansi "^3.0.0"
+
+"string-width@^1.0.2 || 2":
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+  integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
+  dependencies:
+    is-fullwidth-code-point "^2.0.0"
+    strip-ansi "^4.0.0"
+
+string-width@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
+  integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
+  dependencies:
+    emoji-regex "^7.0.1"
+    is-fullwidth-code-point "^2.0.0"
+    strip-ansi "^5.1.0"
+
+string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2:
+  version "4.2.2"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5"
+  integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==
+  dependencies:
+    emoji-regex "^8.0.0"
+    is-fullwidth-code-point "^3.0.0"
+    strip-ansi "^6.0.0"
+
+string_decoder@~1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+  integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+  dependencies:
+    safe-buffer "~5.1.0"
+
+strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+  integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
+  dependencies:
+    ansi-regex "^2.0.0"
+
+strip-ansi@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+  integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
+  dependencies:
+    ansi-regex "^3.0.0"
+
+strip-ansi@^5.1.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
+  integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
+  dependencies:
+    ansi-regex "^4.1.0"
+
+strip-ansi@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
+  integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
+  dependencies:
+    ansi-regex "^5.0.0"
+
+strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
+  integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+
+strip-json-comments@~2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+  integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
+
+striptags@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/striptags/-/striptags-3.2.0.tgz#cc74a137db2de8b0b9a370006334161f7dd67052"
+  integrity sha512-g45ZOGzHDMe2bdYMdIvdAfCQkCTDMGBazSw1ypMowwGIee7ZQ5dU0rBJ8Jqgl+jAKIv4dbeE1jscZq9wid1Tkw==
+
+supports-color@8.1.1:
+  version "8.1.1"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
+  integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
+  dependencies:
+    has-flag "^4.0.0"
+
+supports-color@^5.3.0, supports-color@^5.5.0:
+  version "5.5.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+  integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+  dependencies:
+    has-flag "^3.0.0"
+
+supports-color@^7.1.0, supports-color@^7.2.0:
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
+  integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
+  dependencies:
+    has-flag "^4.0.0"
+
+table@^6.0.9:
+  version "6.7.1"
+  resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2"
+  integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==
+  dependencies:
+    ajv "^8.0.1"
+    lodash.clonedeep "^4.5.0"
+    lodash.truncate "^4.4.2"
+    slice-ansi "^4.0.0"
+    string-width "^4.2.0"
+    strip-ansi "^6.0.0"
+
+tar@^6.0.2, tar@^6.1.0:
+  version "6.1.11"
+  resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621"
+  integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==
+  dependencies:
+    chownr "^2.0.0"
+    fs-minipass "^2.0.0"
+    minipass "^3.0.0"
+    minizlib "^2.1.1"
+    mkdirp "^1.0.3"
+    yallist "^4.0.0"
+
+term-size@^2.1.0:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54"
+  integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==
+
+text-table@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+  integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
+
+to-readable-stream@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771"
+  integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==
+
+to-regex-range@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+  integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+  dependencies:
+    is-number "^7.0.0"
+
+toidentifier@1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
+  integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
+
+touch@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b"
+  integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==
+  dependencies:
+    nopt "~1.0.10"
+
+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"
+
+tunnel-agent@^0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
+  integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
+  dependencies:
+    safe-buffer "^5.0.1"
+
+tweetnacl@^0.14.3, tweetnacl@~0.14.0:
+  version "0.14.5"
+  resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+  integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
+
+type-check@^0.4.0, type-check@~0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
+  integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
+  dependencies:
+    prelude-ls "^1.2.1"
+
+type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5, type-detect@^4.0.8:
+  version "4.0.8"
+  resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
+  integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
+
+type-fest@^0.20.2:
+  version "0.20.2"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
+  integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
+
+type-fest@^0.8.1:
+  version "0.8.1"
+  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
+  integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
+
+type-is@~1.6.17, type-is@~1.6.18:
+  version "1.6.18"
+  resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
+  integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
+  dependencies:
+    media-typer "0.3.0"
+    mime-types "~2.1.24"
+
+typedarray-to-buffer@^3.1.5:
+  version "3.1.5"
+  resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
+  integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
+  dependencies:
+    is-typedarray "^1.0.0"
+
+undefsafe@^2.0.3:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.3.tgz#6b166e7094ad46313b2202da7ecc2cd7cc6e7aae"
+  integrity sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==
+  dependencies:
+    debug "^2.2.0"
+
+unhomoglyph@^1.0.6:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/unhomoglyph/-/unhomoglyph-1.0.6.tgz#ea41f926d0fcf598e3b8bb2980c2ddac66b081d3"
+  integrity sha512-7uvcWI3hWshSADBu4JpnyYbTVc7YlhF5GDW/oPD5AxIxl34k4wXR3WDkPnzLxkN32LiTCTKMQLtKVZiwki3zGg==
+
+unique-filename@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
+  integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
+  dependencies:
+    unique-slug "^2.0.0"
+
+unique-slug@^2.0.0:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"
+  integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==
+  dependencies:
+    imurmurhash "^0.1.4"
+
+unique-string@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
+  integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==
+  dependencies:
+    crypto-random-string "^2.0.0"
+
+unpipe@1.0.0, unpipe@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+  integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
+
+update-notifier@^4.1.0:
+  version "4.1.3"
+  resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3"
+  integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==
+  dependencies:
+    boxen "^4.2.0"
+    chalk "^3.0.0"
+    configstore "^5.0.1"
+    has-yarn "^2.1.0"
+    import-lazy "^2.1.0"
+    is-ci "^2.0.0"
+    is-installed-globally "^0.3.1"
+    is-npm "^4.0.0"
+    is-yarn-global "^0.3.0"
+    latest-version "^5.0.0"
+    pupa "^2.0.1"
+    semver-diff "^3.1.1"
+    xdg-basedir "^4.0.0"
+
+update-notifier@^5.1.0:
+  version "5.1.0"
+  resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9"
+  integrity sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==
+  dependencies:
+    boxen "^5.0.0"
+    chalk "^4.1.0"
+    configstore "^5.0.1"
+    has-yarn "^2.1.0"
+    import-lazy "^2.1.0"
+    is-ci "^2.0.0"
+    is-installed-globally "^0.4.0"
+    is-npm "^5.0.0"
+    is-yarn-global "^0.3.0"
+    latest-version "^5.1.0"
+    pupa "^2.1.1"
+    semver "^7.3.4"
+    semver-diff "^3.1.1"
+    xdg-basedir "^4.0.0"
+
+uri-js@^4.2.2:
+  version "4.4.1"
+  resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+  integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
+  dependencies:
+    punycode "^2.1.0"
+
+url-parse-lax@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c"
+  integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=
+  dependencies:
+    prepend-http "^2.0.0"
+
+util-deprecate@~1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+  integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+
+utils-merge@1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
+  integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
+
+uuid@^3.3.2:
+  version "3.4.0"
+  resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
+  integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
+
+v8-compile-cache@^2.0.3:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
+  integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
+
+validate-npm-package-name@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e"
+  integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34=
+  dependencies:
+    builtins "^1.0.3"
+
+vary@~1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
+  integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
+
+verror@1.10.0:
+  version "1.10.0"
+  resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+  integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
+  dependencies:
+    assert-plus "^1.0.0"
+    core-util-is "1.0.2"
+    extsprintf "^1.2.0"
+
+which@2.0.2, which@^2.0.1, which@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+  integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+  dependencies:
+    isexe "^2.0.0"
+
+wide-align@1.1.3, wide-align@^1.1.0:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
+  integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
+  dependencies:
+    string-width "^1.0.2 || 2"
+
+widest-line@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca"
+  integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==
+  dependencies:
+    string-width "^4.0.0"
+
+word-wrap@^1.2.3:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
+  integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+
+workerpool@6.1.5:
+  version "6.1.5"
+  resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.5.tgz#0f7cf076b6215fd7e1da903ff6f22ddd1886b581"
+  integrity sha512-XdKkCK0Zqc6w3iTxLckiuJ81tiD/o5rBE/m+nXpRCB+/Sq4DqkfXZ/x0jW02DG1tGsfUGXbTJyZDP+eu67haSw==
+
+wrap-ansi@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+  integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+  dependencies:
+    ansi-styles "^4.0.0"
+    string-width "^4.1.0"
+    strip-ansi "^6.0.0"
+
+wrappy@1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+  integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+
+write-file-atomic@^3.0.0:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
+  integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==
+  dependencies:
+    imurmurhash "^0.1.4"
+    is-typedarray "^1.0.0"
+    signal-exit "^3.0.2"
+    typedarray-to-buffer "^3.1.5"
+
+xdg-basedir@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
+  integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==
+
+y18n@^5.0.5:
+  version "5.0.8"
+  resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
+  integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+
+yallist@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+  integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
+yargs-parser@20.2.4, yargs-parser@^20.2.2:
+  version "20.2.4"
+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54"
+  integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==
+
+yargs-unparser@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb"
+  integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==
+  dependencies:
+    camelcase "^6.0.0"
+    decamelize "^4.0.0"
+    flat "^5.0.2"
+    is-plain-obj "^2.1.0"
+
+yargs@16.2.0:
+  version "16.2.0"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
+  integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
+  dependencies:
+    cliui "^7.0.2"
+    escalade "^3.1.1"
+    get-caller-file "^2.0.5"
+    require-directory "^2.1.1"
+    string-width "^4.2.0"
+    y18n "^5.0.5"
+    yargs-parser "^20.2.2"
+
+yocto-queue@^0.1.0:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
+  integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
diff --git a/pkgs/servers/monitoring/munin/default.nix b/pkgs/servers/monitoring/munin/default.nix
index ac9b015480ee2..28ff8ac80705f 100644
--- a/pkgs/servers/monitoring/munin/default.nix
+++ b/pkgs/servers/monitoring/munin/default.nix
@@ -3,14 +3,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.0.66";
+  version = "2.0.69";
   pname = "munin";
 
   src = fetchFromGitHub {
     owner = "munin-monitoring";
     repo = "munin";
     rev = version;
-    sha256 = "sha256-1aikMRY1YiSQNUnYqsw1Eew9D9JHbkX+BXNCof6YK50=";
+    sha256 = "sha256-p273O5JLFX1dA2caV3lVVL9YNTcGMSrC7DWieUfUmqI=";
   };
 
   buildInputs = [
diff --git a/pkgs/servers/monitoring/prometheus/default.nix b/pkgs/servers/monitoring/prometheus/default.nix
index 5cb326dab5341..931e5f7ffeaed 100644
--- a/pkgs/servers/monitoring/prometheus/default.nix
+++ b/pkgs/servers/monitoring/prometheus/default.nix
@@ -2,7 +2,7 @@
 , lib
 , go
 , pkgs
-, nodejs
+, nodejs-14_x
 , nodePackages
 , buildGoModule
 , fetchFromGitHub
@@ -24,11 +24,13 @@ let
   goPackagePath = "github.com/prometheus/prometheus";
 
   codemirrorNode = import ./webui/codemirror-promql {
-    inherit pkgs nodejs;
+    inherit pkgs;
+    nodejs = nodejs-14_x;
     inherit (stdenv.hostPlatform) system;
   };
   webuiNode = import ./webui/webui {
-    inherit pkgs nodejs;
+    inherit pkgs;
+    nodejs = nodejs-14_x;
     inherit (stdenv.hostPlatform) system;
   };
 
@@ -36,7 +38,7 @@ let
     name = "prometheus-webui-codemirror-promql";
     src = "${src}/web/ui/module/codemirror-promql";
 
-    buildInputs = [ nodejs nodePackages.typescript codemirrorNode.nodeDependencies ];
+    buildInputs = [ nodejs-14_x nodePackages.typescript codemirrorNode.nodeDependencies ];
 
     configurePhase = ''
       ln -s ${codemirrorNode.nodeDependencies}/lib/node_modules node_modules
@@ -56,7 +58,7 @@ let
     name = "prometheus-webui";
     src = "${src}/web/ui/react-app";
 
-    buildInputs = [ nodejs webuiNode.nodeDependencies ];
+    buildInputs = [ nodejs-14_x webuiNode.nodeDependencies ];
 
     # create `node_modules/.cache` dir (we need writeable .cache)
     # and then copy the rest over.
@@ -77,7 +79,7 @@ buildGoModule rec {
 
   excludedPackages = [ "documentation/prometheus-mixin" ];
 
-  nativeBuildInputs = [ nodejs ];
+  nativeBuildInputs = [ nodejs-14_x ];
 
   postPatch = ''
     # we don't want this anyways, as we
diff --git a/pkgs/servers/monitoring/prometheus/fastly-exporter.nix b/pkgs/servers/monitoring/prometheus/fastly-exporter.nix
index cffdca4083cf8..f97fc84aa2b70 100644
--- a/pkgs/servers/monitoring/prometheus/fastly-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/fastly-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fastly-exporter";
-  version = "6.1.0";
+  version = "7.0.1";
 
   src = fetchFromGitHub {
     owner = "peterbourgon";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0my0pcxix5rk73m5ciz513nwmjcm7vjs6r8wg3vddm0xixv7zq94";
+    sha256 = "sha256-KL+UfYuHtfQ9sKad7Q1KqIK4CFzDsIWvgG1YO1ZbUQc=";
   };
 
-  vendorSha256 = "1w9asky8h8l5gc0c6cv89m38qw50hyhma8qbsw3zirplhk9mb3r2";
+  vendorSha256 = "sha256-yE7yvnyDfrrFdBmBBYe2gBU7b4gOWl5kfqkoblE51EQ=";
 
   meta = with lib; {
     description = "Prometheus exporter for the Fastly Real-time Analytics API";
diff --git a/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix b/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
index 37f9b0c4e06d7..6f9e78799a03e 100644
--- a/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "mikrotik-exporter-unstable";
-  version = "2020-02-10";
+  version = "2021-08-10";
 
   src = fetchFromGitHub {
     owner = "nshttpd";
     repo = "mikrotik-exporter";
-    sha256 = "193zh06rqp9ybsnkxwmv7l4p2h2xisw4f01jjirshsb784j44bh6";
-    rev = "3b33400d24abcfdc07dc31c15ca5ba7b82de444f";
+    sha256 = "1vqn1f159g0l76021gifbxpjf7zjhrj807qqqn51h5413lbi6r66";
+    rev = "4bfa7adfef500ff621a677adfab1f7010af920d1";
   };
 
-  vendorSha256 = "0i5x4d3ra0s41knmybbg8gnjxgraxkid6y3gfkjwa65xcbp7hr7q";
+  vendorSha256 = "0b244z3hly5726vwkr7vhdzzm2fi38cv1qh7nvfp3vpsxnii04md";
 
   doCheck = false;
 
diff --git a/pkgs/servers/monitoring/prometheus/node-exporter.nix b/pkgs/servers/monitoring/prometheus/node-exporter.nix
index ea4a511f72221..7d40e919773d1 100644
--- a/pkgs/servers/monitoring/prometheus/node-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/node-exporter.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "node_exporter";
-  version = "1.2.2";
+  version = "1.3.1";
   rev = "v${version}";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "prometheus";
     repo = "node_exporter";
-    sha256 = "11xjbkws3vv5r4p6w6qfmm9wrmlhzwmvlx3vcgz99ylz34r19xvc";
+    sha256 = "sha256-+0k9LBsHqNHmoOAY1UDzbbqni+ikj+c3ijfT41rCfLc=";
   };
 
-  vendorSha256 = "0wwji220pidrmsjzd9c3n40v237680av750jf6hdvp0aqi63p9nr";
+  vendorSha256 = "sha256-nAvODyy+PfkGFAaq+3hBhQaPji5GUMU7N8xcgbGQMeI=";
 
   # FIXME: tests fail due to read-only nix store
   doCheck = false;
diff --git a/pkgs/servers/monitoring/prometheus/promscale/0001-remove-jaeger-test-dep.patch b/pkgs/servers/monitoring/prometheus/promscale/0001-remove-jaeger-test-dep.patch
new file mode 100644
index 0000000000000..9266a9aca53cc
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/promscale/0001-remove-jaeger-test-dep.patch
@@ -0,0 +1,17 @@
+
+A Promscale test has a dependency on a package which was not intended to be
+vendored, so `go mod vendor` breaks. The dependency is not required to build
+Promscale, so it can be removed.
+
+diff --git a/pkg/tests/end_to_end_tests/trace_query_integration_test.go b/pkg/tests/end_to_end_tests/trace_query_integration_test.go
+index 84a0d08..efbe5e1 100644
+--- a/pkg/tests/end_to_end_tests/trace_query_integration_test.go
++++ b/pkg/tests/end_to_end_tests/trace_query_integration_test.go
+@@ -24,7 +24,6 @@ import (
+ 	ingstr "github.com/timescale/promscale/pkg/pgmodel/ingestor"
+ 	"github.com/timescale/promscale/pkg/pgxconn"
+ 
+-	jaegerQueryApp "github.com/jaegertracing/jaeger/cmd/query/app"
+ 	jaegerQueryService "github.com/jaegertracing/jaeger/cmd/query/app/querysvc"
+ 	jaegerJSONModel "github.com/jaegertracing/jaeger/model/json"
+ )
diff --git a/pkgs/servers/monitoring/prometheus/promscale.nix b/pkgs/servers/monitoring/prometheus/promscale/default.nix
index 5940d033deba6..591542f28398e 100644
--- a/pkgs/servers/monitoring/prometheus/promscale.nix
+++ b/pkgs/servers/monitoring/prometheus/promscale/default.nix
@@ -1,33 +1,35 @@
 { lib
 , buildGoModule
 , fetchFromGitHub
+, promscale
+, testVersion
 }:
 
 buildGoModule rec {
   pname = "promscale";
-  version = "0.6.2";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "timescale";
     repo = pname;
     rev = version;
-    sha256 = "sha256-YGT+VaHX6dqYdJz002fGZxRYE3gFqY8Q7VdhtSTPpjU=";
+    sha256 = "sha256-OMDl8RGFOMW+KNX2tNHusJY/6gLZxuWCI3c0E/oqrfE=";
   };
 
-  vendorSha256 = "sha256-o7vRSCEEqzhruHEnRPuxC1e4NzCl8Br4vvqg0pwGIgA=";
+  patches = [
+    ./0001-remove-jaeger-test-dep.patch
+  ];
+
+  vendorSha256 = "sha256-IwHngKiQ+TangEj5PcdiGoLxQJrt/Y3EtbSYZYmfUOE=";
 
   ldflags = [ "-s" "-w" "-X github.com/timescale/promscale/pkg/version.Version=${version}" "-X github.com/timescale/promscale/pkg/version.CommitHash=${src.rev}" ];
 
   doCheck = false; # Requires access to a docker daemon
-  doInstallCheck = true;
-  installCheckPhase = ''
-    if [[ "$("$out/bin/${pname}" -version)" == "${version}" ]]; then
-      echo '${pname} smoke check passed'
-    else
-      echo '${pname} smoke check failed'
-      exit 1
-    fi
-  '';
+
+  passthru.tests.version = testVersion {
+    package = promscale;
+    command = "promscale -version";
+  };
 
   meta = with lib; {
     description = "An open-source analytical platform for Prometheus metrics";
diff --git a/pkgs/servers/monitoring/prometheus/redis-exporter.nix b/pkgs/servers/monitoring/prometheus/redis-exporter.nix
index b205b806e2bb6..440a21a6b6ace 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.29.0";
+  version = "1.33.0";
 
   src = fetchFromGitHub {
     owner = "oliver006";
     repo = "redis_exporter";
     rev = "v${version}";
-    sha256 = "sha256-13um5/k/Mh/BLgvd9ziR5vo9HfVqgaQMfJTPYRPVlRY=";
+    sha256 = "sha256-3b0hlRjPXrMjFhXi8j4VvKJyRGicIk9FZUBRsBUp+Xo=";
   };
 
-  vendorSha256 = "sha256-vCE1mr7R3o3uiVQvIqg+qOngh5nrr957mgbO+6E72Ss=";
+  vendorSha256 = "sha256-MVDb4JN2QqZNxANDLUZywgoBc2NpcaPB8TkR1xrq+Yk=";
 
   ldflags = [
     "-X main.BuildVersion=${version}"
diff --git a/pkgs/servers/monitoring/prometheus/smartctl-exporter/0001-Return-the-cached-value-if-it-s-not-time-to-scan-aga.patch b/pkgs/servers/monitoring/prometheus/smartctl-exporter/0001-Return-the-cached-value-if-it-s-not-time-to-scan-aga.patch
new file mode 100644
index 0000000000000..28616251f37ef
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/smartctl-exporter/0001-Return-the-cached-value-if-it-s-not-time-to-scan-aga.patch
@@ -0,0 +1,51 @@
+From e81b06df67b1d42ef915615fafa0b56ef956673b Mon Sep 17 00:00:00 2001
+From: Andreas Fuchs <asf@boinkor.net>
+Date: Thu, 11 Feb 2021 17:30:44 -0500
+Subject: [PATCH] Return the cached value if it's not time to scan again yet
+
+This should ensure that if we have a valid value cached (which ought
+to be every time after the first scan), we return it as metrics.
+
+This fixes the crashes that would happen if queries happened earlier
+than the re-scan interval allowed.
+
+Address review feedback: Shorten the time-to-scan logic
+
+We can express this in a single if statement, so it takes fewer lines
+to do the "should we check again" check.
+---
+ readjson.go | 11 ++---------
+ 1 file changed, 2 insertions(+), 9 deletions(-)
+
+diff --git a/readjson.go b/readjson.go
+index da35448..c9996fd 100644
+--- a/readjson.go
++++ b/readjson.go
+@@ -78,14 +78,7 @@ func readData(device string) (gjson.Result, error) {
+ 
+ 	if _, err := os.Stat(device); err == nil {
+ 		cacheValue, cacheOk := jsonCache[device]
+-		timeToScan := false
+-		if cacheOk {
+-			timeToScan = time.Now().After(cacheValue.LastCollect.Add(options.SMARTctl.CollectPeriodDuration))
+-		} else {
+-			timeToScan = true
+-		}
+-
+-		if timeToScan {
++		if !cacheOk || time.Now().After(cacheValue.LastCollect.Add(options.SMARTctl.CollectPeriodDuration)) {
+ 			json, ok := readSMARTctl(device)
+ 			if ok {
+ 				jsonCache[device] = JSONCache{JSON: json, LastCollect: time.Now()}
+@@ -93,7 +86,7 @@ func readData(device string) (gjson.Result, error) {
+ 			}
+ 			return gjson.Parse(DEFAULT_EMPTY_JSON), fmt.Errorf("smartctl returned bad data for device %s", device)
+ 		}
+-		return gjson.Parse(DEFAULT_EMPTY_JSON), fmt.Errorf("Too early collect called for device %s", device)
++		return cacheValue.JSON, nil
+ 	}
+ 	return gjson.Parse(DEFAULT_EMPTY_JSON), fmt.Errorf("Device %s unavialable", device)
+ }
+-- 
+2.33.1
+
diff --git a/pkgs/servers/monitoring/prometheus/smartctl-exporter/default.nix b/pkgs/servers/monitoring/prometheus/smartctl-exporter/default.nix
new file mode 100644
index 0000000000000..45315a0f3d76a
--- /dev/null
+++ b/pkgs/servers/monitoring/prometheus/smartctl-exporter/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, fetchFromGitHub
+, fetchpatch
+, buildGoModule
+}:
+
+buildGoModule rec {
+  pname = "smartctl_exporter";
+  version = "unstable-2020-11-14";
+
+  src = fetchFromGitHub {
+    owner = "prometheus-community";
+    repo = pname;
+    rev = "e27581d56ad80340fb076d3ce22cef337ed76679";
+    sha256 = "sha256-iWaFDjVLBIAA9zGe0utbuvmEdA3R5lge0iCh3j2JfE8=";
+  };
+
+  patches = [
+    # Fixes out of range panic (https://github.com/prometheus-community/smartctl_exporter/issues/19)
+    (fetchpatch {
+      url = "https://github.com/prometheus-community/smartctl_exporter/commit/15575301a8e2fe5802a8c066c6fa9765d50b8cfa.patch";
+      sha256 = "sha256-HLUrGXNz3uKpuQBUgQBSw6EGbGl23hQnimTGl64M5bQ=";
+    })
+    # Fix validation on empty smartctl response (https://github.com/prometheus-community/smartctl_exporter/pull/31)
+    (fetchpatch {
+      url = "https://github.com/prometheus-community/smartctl_exporter/commit/744b4e5f6a46e029d31d5aa46642e85f429c2cfa.patch";
+      sha256 = "sha256-MgLtYR1SpM6XrZQQ3AgQRmNF3OnaBCqXMJRV9BOzKPc=";
+    })
+    # Fixes missing metrics if outside of query interval (https://github.com/prometheus-community/smartctl_exporter/pull/18)
+    ./0001-Return-the-cached-value-if-it-s-not-time-to-scan-aga.patch
+  ];
+
+  vendorSha256 = "1xhrzkfm2p20k7prgdfax4408g4qpa4wbxigmcmfz7kjg2zi88ld";
+
+  meta = with lib; {
+    description = "Export smartctl statistics for Prometheus";
+    homepage = "https://github.com/prometheus-community/smartctl_exporter";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/servers/monitoring/telegraf/default.nix b/pkgs/servers/monitoring/telegraf/default.nix
index d640d956bd387..12b124b784157 100644
--- a/pkgs/servers/monitoring/telegraf/default.nix
+++ b/pkgs/servers/monitoring/telegraf/default.nix
@@ -1,8 +1,8 @@
-{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
+{ lib, buildGo117Module, fetchFromGitHub, nixosTests }:
 
-buildGoModule rec {
+buildGo117Module rec {
   pname = "telegraf";
-  version = "1.20.3";
+  version = "1.20.4";
 
   excludedPackages = "test";
 
@@ -12,10 +12,10 @@ buildGoModule rec {
     owner = "influxdata";
     repo = "telegraf";
     rev = "v${version}";
-    sha256 = "sha256-KziXTuj1J3pXJIACiF09En3rRt1BYixj/jAadyaz4ns=";
+    sha256 = "sha256-AK2KCbwFHeryqdK7iYtKEaP8JYINdX1i42/EHCAGkFk=";
   };
 
-  vendorSha256 = "sha256-4L65JT+5GRS7KszuwKdveOlJIrOptPomDuyQ/r434cc=";
+  vendorSha256 = "sha256-35jcieU/EdJ3d4WfYhwXpDNZRrS+DQsWZYp2EoxpKU4";
   proxyVendor = true;
 
   ldflags = [
diff --git a/pkgs/servers/monitoring/thanos/default.nix b/pkgs/servers/monitoring/thanos/default.nix
index 7433328d40b35..932e03b99f837 100644
--- a/pkgs/servers/monitoring/thanos/default.nix
+++ b/pkgs/servers/monitoring/thanos/default.nix
@@ -1,16 +1,16 @@
 { lib, buildGoModule, fetchFromGitHub }:
 buildGoModule rec {
   pname = "thanos";
-  version = "0.23.1";
+  version = "0.24.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "thanos-io";
     repo = "thanos";
-    sha256 = "sha256-JQp0Bg7sCA5obb24G/Ca7EcD7er+ux9x+BgRK0L7dJE=";
+    sha256 = "sha256-HdfOxi9l2xPs4JOY15Yt+KlCm7SQ0Ap1qa5F7abr2g8=";
   };
 
-  vendorSha256 = "sha256-I7d81A5FMAOY1M8vhhrPFsPl/1sh2ydAzKySM5i5VfM=";
+  vendorSha256 = "sha256-+0XW7xGocM00kxmOMj0xHYPIpxc0rTQnyr9JQ/cPl3I=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/monitoring/zabbix/agent.nix b/pkgs/servers/monitoring/zabbix/agent.nix
index e4516f652b9a8..269a8c6ba66fa 100644
--- a/pkgs/servers/monitoring/zabbix/agent.nix
+++ b/pkgs/servers/monitoring/zabbix/agent.nix
@@ -19,6 +19,7 @@ import ./versions.nix ({ version, sha256 }:
 
     configureFlags = [
       "--enable-agent"
+      "--enable-ipv6"
       "--with-iconv"
       "--with-libpcre"
       "--with-openssl=${openssl.dev}"
diff --git a/pkgs/servers/monitoring/zabbix/agent2.nix b/pkgs/servers/monitoring/zabbix/agent2.nix
index 74b23c0bbd25e..b4463bf05e5ef 100644
--- a/pkgs/servers/monitoring/zabbix/agent2.nix
+++ b/pkgs/servers/monitoring/zabbix/agent2.nix
@@ -33,6 +33,7 @@ import ./versions.nix ({ version, sha256 }:
       ./configure \
         --prefix=${placeholder "out"} \
         --enable-agent2 \
+        --enable-ipv6 \
         --with-iconv \
         --with-libpcre \
         --with-openssl=${openssl.dev}
diff --git a/pkgs/servers/monitoring/zabbix/proxy.nix b/pkgs/servers/monitoring/zabbix/proxy.nix
index 067d888332415..b52015e1c3df5 100644
--- a/pkgs/servers/monitoring/zabbix/proxy.nix
+++ b/pkgs/servers/monitoring/zabbix/proxy.nix
@@ -41,6 +41,7 @@ in
       ++ optional postgresqlSupport postgresql;
 
       configureFlags = [
+        "--enable-ipv6"
         "--enable-proxy"
         "--with-iconv"
         "--with-libevent"
diff --git a/pkgs/servers/monitoring/zabbix/server.nix b/pkgs/servers/monitoring/zabbix/server.nix
index 474cf82f7c187..9249e3852e9c9 100644
--- a/pkgs/servers/monitoring/zabbix/server.nix
+++ b/pkgs/servers/monitoring/zabbix/server.nix
@@ -46,6 +46,7 @@ in
       ++ optional ipmiSupport openipmi;
 
       configureFlags = [
+        "--enable-ipv6"
         "--enable-server"
         "--with-iconv"
         "--with-libcurl"
diff --git a/pkgs/servers/mpd/libmpdclient.nix b/pkgs/servers/mpd/libmpdclient.nix
index 4ff45b527b145..72c3a37d97d66 100644
--- a/pkgs/servers/mpd/libmpdclient.nix
+++ b/pkgs/servers/mpd/libmpdclient.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libmpdclient";
-  version = "2.19";
+  version = "2.20";
 
   src = fetchFromGitHub {
     owner  = "MusicPlayerDaemon";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "01agvjscdxagw6jcfx0wg81c4b6p8rh0hp3slycmjs2b835kvmq2";
+    sha256 = "sha256-qEgdwG7ygVblIa3uRf1tddxHg7T1yvY17nbhZ7NRNvg=";
   };
 
   nativeBuildInputs = [ meson ninja ]
diff --git a/pkgs/servers/mqtt/mosquitto/default.nix b/pkgs/servers/mqtt/mosquitto/default.nix
index 67200f5515a9d..81821f1b7c490 100644
--- a/pkgs/servers/mqtt/mosquitto/default.nix
+++ b/pkgs/servers/mqtt/mosquitto/default.nix
@@ -8,13 +8,19 @@
 , cjson
 , libuuid
 , libuv
-, libwebsockets_3_1
+, libwebsockets
 , openssl
 , withSystemd ? stdenv.isLinux
 , systemd
 , fetchpatch
 }:
 
+let
+  # Mosquitto needs external poll enabled in libwebsockets.
+  libwebsockets' = libwebsockets.override {
+    withExternalPoll = true;
+  };
+in
 stdenv.mkDerivation rec {
   pname = "mosquitto";
   version = "2.0.12";
@@ -54,7 +60,7 @@ stdenv.mkDerivation rec {
     cjson
     libuuid
     libuv
-    libwebsockets_3_1
+    libwebsockets'
     openssl
   ] ++ lib.optional withSystemd systemd;
 
diff --git a/pkgs/servers/mycorrhiza/default.nix b/pkgs/servers/mycorrhiza/default.nix
index b0f255e165448..8036d966d7227 100644
--- a/pkgs/servers/mycorrhiza/default.nix
+++ b/pkgs/servers/mycorrhiza/default.nix
@@ -4,16 +4,16 @@
 
 buildGoModule rec {
   pname = "mycorrhiza";
-  version = "1.5.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "bouncepaw";
     repo = "mycorrhiza";
     rev = "v${version}";
-    sha256 = "0manay7gfybzk28dp9a8xdfpbhxm1dbnvcyp4mjhh449n8jlp4bq";
+    sha256 = "1dd18n9lq4wxz7kn1szavigw9098r7rcwz9j53q92mx100fa42q6";
   };
 
-  vendorSha256 = "1br1p8cnyv2xpwnld3ydd87zxbdwl962f6yww8i8xbsm7881bl0d";
+  vendorSha256 = "1s7n0lk3cr4lkay3plvlqfpx2gh03n2afb43gv9lmwljbry9zbss";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/servers/neard/default.nix b/pkgs/servers/neard/default.nix
index 77c6f8839f71d..d41603873e9f7 100644
--- a/pkgs/servers/neard/default.nix
+++ b/pkgs/servers/neard/default.nix
@@ -1,26 +1,63 @@
-{ lib, stdenv, fetchurl, autoreconfHook, pkg-config, systemd, glib, dbus, libnl, python2Packages }:
+{ stdenv
+, lib
+, fetchurl
+, autoreconfHook
+, autoconf-archive
+, pkg-config
+, systemd
+, glib
+, dbus
+, libnl
+, python2Packages
+}:
 
 stdenv.mkDerivation rec {
   pname = "neard";
-  version = "0.16";
+  version = "0.18";
+
+  outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://git.kernel.org/pub/scm/network/nfc/neard.git/snapshot/neard-${version}.tar.gz";
-    sha256 = "0bpdmyxvd3z54p95apz4bjb5jp8hbc04sicjapcryjwa8mh6pbil";
+    sha256 = "wBPjEVMV4uEdFrXw8cjOmvvNuiaACq2RJF/ZtKXck4s=";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkg-config python2Packages.wrapPython ];
-  buildInputs = [ systemd glib dbus libnl ] ++ (with python2Packages; [ python ]);
-  pythonPath = with python2Packages; [ pygobject2 dbus-python pygtk ];
+  nativeBuildInputs = [
+    autoreconfHook
+    autoconf-archive
+    pkg-config
+    python2Packages.wrapPython
+  ];
+
+  buildInputs = [
+    systemd
+    glib
+    dbus
+    libnl
+  ] ++ (with python2Packages; [
+    python
+  ]);
+
+  pythonPath = with python2Packages; [
+    pygobject2
+    dbus-python
+    pygtk
+  ];
 
   strictDeps = true;
 
-  configureFlags = [ "--disable-debug" "--enable-tools" "--enable-ese" "--with-systemdsystemunitdir=$out/lib/systemd/system" ];
+  enableParallelBuilding = true;
+
+  configureFlags = [
+    "--disable-debug"
+    "--enable-tools"
+    "--enable-ese"
+    "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
+  ];
 
   postInstall = ''
     install -m 0755 tools/snep-send $out/bin/
 
-    install -D -m644 src/neard.service $out/lib/systemd/system/neard.service
     install -D -m644 src/main.conf $out/etc/neard/main.conf
 
     # INFO: the config option "--enable-test" would copy the apps to $out/lib/neard/test/ instead
@@ -31,9 +68,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Near Field Communication manager";
-    homepage    = "https://01.org/linux-nfc";
-    license     = licenses.gpl2;
-    maintainers = with maintainers; [ tstrobel ];
-    platforms   = platforms.unix;
+    homepage = "https://01.org/linux-nfc";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ jtojnar tstrobel ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix
index 0b7fb6f50fe77..5490b29090e06 100644
--- a/pkgs/servers/nextcloud/default.nix
+++ b/pkgs/servers/nextcloud/default.nix
@@ -46,14 +46,19 @@ in {
   '';
 
   nextcloud21 = generic {
-    version = "21.0.5";
-    sha256 = "1q46h480kn97k7h3xm7r5gsa8l3f0kfiicapi46sh0p39pbjbyhv";
+    version = "21.0.7";
+    sha256 = "sha256-WZMhWW613q5c6grR/dzVSCKJKru7XPtRoxgBhi8VE7c=";
   };
 
   nextcloud22 = generic {
     version = "22.2.3";
     sha256 = "sha256-ZqKaakkHOMCr7bZ3y2jHyR+rqz5kGaPJnYtAaJnrlCo=";
   };
+
+  nextcloud23 = generic {
+    version = "23.0.0";
+    sha256 = "sha256-w3WSq8O2XI/ShFkoGiT0FLh69S/IwuqXm+P5vnXQGiw=";
+  };
   # tip: get she sha with:
   # curl 'https://download.nextcloud.com/server/releases/nextcloud-${version}.tar.bz2.sha256'
 }
diff --git a/pkgs/servers/nfd/default.nix b/pkgs/servers/nfd/default.nix
new file mode 100644
index 0000000000000..2f0176de2b82e
--- /dev/null
+++ b/pkgs/servers/nfd/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenv
+, boost175
+, fetchFromGitHub
+, libpcap
+, ndn-cxx
+, openssl
+, pkg-config
+, sphinx
+, systemd
+, wafHook
+, websocketpp
+, withSystemd ? stdenv.isLinux
+, withWebSocket ? true
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nfd";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "named-data";
+    repo = lib.toUpper pname;
+    rev = "NFD-${version}";
+    sha256 = "sha256-8Zm8oxbpw9qD31NuofDdgPYnTWIz5E04NhkZhiRkK9E=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ pkg-config sphinx wafHook ];
+  buildInputs = [ libpcap ndn-cxx openssl websocketpp ] ++ lib.optional withSystemd systemd;
+
+  wafConfigureFlags = [
+    "--boost-includes=${boost175.dev}/include"
+    "--boost-libs=${boost175.out}/lib"
+    "--with-tests"
+  ] ++ lib.optional (!withWebSocket) "--without-websocket";
+
+  doCheck = true;
+  checkPhase = ''
+    runHook preCheck
+    build/unit-tests-core
+    # build/unit-tests-daemon # 3 tests fail
+    build/unit-tests-rib
+    build/unit-tests-tools
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    homepage = "https://named-data.net/";
+    description = "Named Data Neworking (NDN) Forwarding Daemon";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.bertof ];
+  };
+}
diff --git a/pkgs/servers/nfs-ganesha/default.nix b/pkgs/servers/nfs-ganesha/default.nix
index b5533e10b2f6a..0c8b871ade716 100644
--- a/pkgs/servers/nfs-ganesha/default.nix
+++ b/pkgs/servers/nfs-ganesha/default.nix
@@ -5,17 +5,15 @@
 
 stdenv.mkDerivation rec {
   pname = "nfs-ganesha";
-  version = "3.5";
+  version = "4.0";
 
   src = fetchFromGitHub {
     owner = "nfs-ganesha";
     repo = "nfs-ganesha";
     rev = "V${version}";
-    sha256 = "sha256-N0qVlnMshsEcWEpPhtR+zXwFKXlik1XnEuZdFMjpZTE=";
+    sha256 = "1zv7aprmydyjs53xnn1h1s6xxb22pic7va23459zq0nfnhmsgd26";
   };
 
-  patches = [ ./sysstatedir.patch ];
-
   preConfigure = "cd src";
 
   cmakeFlags = [ "-DUSE_SYSTEM_NTIRPC=ON" ];
diff --git a/pkgs/servers/nfs-ganesha/sysstatedir.patch b/pkgs/servers/nfs-ganesha/sysstatedir.patch
deleted file mode 100644
index fff3d58973533..0000000000000
--- a/pkgs/servers/nfs-ganesha/sysstatedir.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/src/include/config-h.in.cmake b/src/include/config-h.in.cmake
-index 2a5795e9f..7314e0594 100644
---- a/src/include/config-h.in.cmake
-+++ b/src/include/config-h.in.cmake
-@@ -71,13 +71,13 @@
- #cmakedefine HAVE_URCU_REF_GET_UNLESS_ZERO 1
- #define NFS_GANESHA 1
- 
--#define GANESHA_CONFIG_PATH "@SYSCONFDIR@/ganesha/ganesha.conf"
--#define GANESHA_PIDFILE_PATH "@SYSSTATEDIR@/run/ganesha.pid"
--#define NFS_V4_RECOV_ROOT "@SYSSTATEDIR@/lib/nfs/ganesha"
-+#define GANESHA_CONFIG_PATH "/etc/ganesha/ganesha.conf"
-+#define GANESHA_PIDFILE_PATH "/run/ganesha.pid"
-+#define NFS_V4_RECOV_ROOT "/var/lib/nfs/ganesha"
- /**
-  * @brief Default value for krb5_param.ccache_dir
-  */
--#define DEFAULT_NFS_CCACHE_DIR "@SYSSTATEDIR@/run/ganesha"
-+#define DEFAULT_NFS_CCACHE_DIR "/run/ganesha"
- 
- /* We're LGPL'd */
- #define _LGPL_SOURCE 1
diff --git a/pkgs/servers/nitter/default.nix b/pkgs/servers/nitter/default.nix
index 7abd3e865fcbe..9d460e3140be7 100644
--- a/pkgs/servers/nitter/default.nix
+++ b/pkgs/servers/nitter/default.nix
@@ -45,7 +45,6 @@ nimPackages.buildNimPackage rec {
     homepage = "https://github.com/zedeus/nitter";
     maintainers = with maintainers; [ erdnaxe ];
     license = licenses.agpl3Only;
-    platforms = [ "x86_64-linux" ];
     mainProgram = "nitter";
   };
 }
diff --git a/pkgs/servers/nosql/apache-jena/binary.nix b/pkgs/servers/nosql/apache-jena/binary.nix
index 2ceb4afc0cd05..e32f31926bcf2 100644
--- a/pkgs/servers/nosql/apache-jena/binary.nix
+++ b/pkgs/servers/nosql/apache-jena/binary.nix
@@ -3,10 +3,10 @@ let
   s = # Generated upstream information
   rec {
     baseName="apache-jena";
-    version = "4.2.0";
+    version = "4.3.2";
     name="${baseName}-${version}";
-    url="http://archive.apache.org/dist/jena/binaries/apache-jena-${version}.tar.gz";
-    sha256 = "1yiqlsp1g2fladal8mj164b9s0qsl5csllg54p7x7w63wf7gixnq";
+    url="https://dlcdn.apache.org/jena/binaries/apache-jena-${version}.tar.gz";
+    sha256 = "sha256-+GNxf79RkmHUXI99e3BZIyboiEj8TiVfVtlgQADku+Y=";
   };
   buildInputs = [
     makeWrapper
diff --git a/pkgs/servers/nosql/apache-jena/fuseki-binary.nix b/pkgs/servers/nosql/apache-jena/fuseki-binary.nix
index 9be009f3b1f17..849827c075d79 100644
--- a/pkgs/servers/nosql/apache-jena/fuseki-binary.nix
+++ b/pkgs/servers/nosql/apache-jena/fuseki-binary.nix
@@ -3,10 +3,10 @@ let
   s = # Generated upstream information
   rec {
     baseName="apache-jena-fuseki";
-    version = "4.2.0";
+    version = "4.3.1";
     name="${baseName}-${version}";
-    url="http://archive.apache.org/dist/jena/binaries/apache-jena-fuseki-${version}.tar.gz";
-    sha256 = "1x3va4yqmxh55lhr6ms85ks9v0lqkl3y41h0bpjdycp8j96lsy3h";
+    url="https://dlcdn.apache.org/jena/binaries/apache-jena-fuseki-${version}.tar.gz";
+    sha256 = "1r0vfa7d55lzw22yfx46mxxmz8x8pkr666vggqw2m1rzzj52z9nx";
   };
   buildInputs = [
     makeWrapper
diff --git a/pkgs/servers/nosql/eventstore/create-deps.sh b/pkgs/servers/nosql/eventstore/create-deps.sh
index 7b1acd5ab26f1..8001fea4d26f3 100755
--- a/pkgs/servers/nosql/eventstore/create-deps.sh
+++ b/pkgs/servers/nosql/eventstore/create-deps.sh
@@ -28,9 +28,9 @@ DEPS_HEADER="
 { fetchurl }:
 let
   nugetUrlBase = \"$URLBASE\";
-  fetchNuGet = { name, version, sha256 }: fetchurl {
+  fetchNuGet = { pname, version, sha256 }: fetchurl {
     inherit sha256;
-    url = \"\${nugetUrlBase}/\${name}/\${version}\";
+    url = \"\${nugetUrlBase}/\${pname}/\${version}\";
   };
 in ["
 
@@ -38,7 +38,7 @@ DEPS_FOOTER="]"
 
 DEPS_TEMPLATE="
 (fetchNuGet {
-  name = \"%s\";
+  pname = \"%s\";
   version = \"%s\";
   sha256 = \"%s\";
 })"
diff --git a/pkgs/servers/nosql/eventstore/deps.nix b/pkgs/servers/nosql/eventstore/deps.nix
index 7f61169276fd6..24b1c005143a1 100644
--- a/pkgs/servers/nosql/eventstore/deps.nix
+++ b/pkgs/servers/nosql/eventstore/deps.nix
@@ -1,632 +1,632 @@
 { fetchurl }:
 let
   nugetUrlBase = "https://www.nuget.org/api/v2/package";
-  fetchNuGet = { name, version, sha256 }: fetchurl { inherit sha256; url = "${nugetUrlBase}/${name}/${version}"; };
+  fetchNuGet = { pname, version, sha256 }: fetchurl { inherit sha256; url = "${nugetUrlBase}/${pname}/${version}"; };
 in
 [
 
   (fetchNuGet {
-    name = "hdrhistogram";
+    pname = "hdrhistogram";
     version = "2.5.0";
     sha256 = "1s2np7m3pp17rgambax9a3x5pd2grx74cr325q3xapjz2gd58sj1";
   })
   (fetchNuGet {
-    name = "microsoft.build.tasks.git";
+    pname = "microsoft.build.tasks.git";
     version = "1.0.0-beta-63127-02";
     sha256 = "10avjhp4vjbmix4rwacbw6cim2d4kbmz64q4n7r6zz94395l61b6";
   })
   (fetchNuGet {
-    name = "microsoft.codecoverage";
+    pname = "microsoft.codecoverage";
     version = "15.9.0";
     sha256 = "10v5xrdilnm362g9545qxvlrbwc9vn65jhpb1i0jlhyqsj6bfwzg";
   })
   (fetchNuGet {
-    name = "microsoft.netcore.platforms";
+    pname = "microsoft.netcore.platforms";
     version = "1.1.0";
     sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
   })
   (fetchNuGet {
-    name = "microsoft.netcore.platforms";
+    pname = "microsoft.netcore.platforms";
     version = "1.1.1";
     sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj";
   })
   (fetchNuGet {
-    name = "microsoft.netcore.platforms";
+    pname = "microsoft.netcore.platforms";
     version = "2.1.0";
     sha256 = "0nmdnkmwyxj8cp746hs9an57zspqlmqdm55b00i7yk8a22s6akxz";
   })
   (fetchNuGet {
-    name = "microsoft.netcore.targets";
+    pname = "microsoft.netcore.targets";
     version = "1.1.0";
     sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
   })
   (fetchNuGet {
-    name = "microsoft.netframework.referenceassemblies";
+    pname = "microsoft.netframework.referenceassemblies";
     version = "1.0.0";
     sha256 = "0na724xhvqm63vq9y18fl9jw9q2v99bdwr353378s5fsi11qzxp9";
   })
   (fetchNuGet {
-    name = "microsoft.netframework.referenceassemblies.net452";
+    pname = "microsoft.netframework.referenceassemblies.net452";
     version = "1.0.0";
     sha256 = "1f0vqrnkggnn4fgfbb2wp4hg9b1n1zvcknvgpphl5dfrk4b0zag8";
   })
   (fetchNuGet {
-    name = "microsoft.netframework.referenceassemblies.net46";
+    pname = "microsoft.netframework.referenceassemblies.net46";
     version = "1.0.0";
     sha256 = "1yl609ilni8adiyryn9rm967sjm499pkx4xj06gpb16dm8d9jkji";
   })
   (fetchNuGet {
-    name = "microsoft.netframework.referenceassemblies.net471";
+    pname = "microsoft.netframework.referenceassemblies.net471";
     version = "1.0.0";
     sha256 = "101incszmaxdhrfzqbfya04fqivi81xvazdfc5l0hr7hm42r6k2m";
   })
   (fetchNuGet {
-    name = "microsoft.net.test.sdk";
+    pname = "microsoft.net.test.sdk";
     version = "15.9.0";
     sha256 = "0g7wjgiigs4v8qa32g9ysqgx8bx55dzmbxfkc4ic95mpd1vkjqxw";
   })
   (fetchNuGet {
-    name = "microsoft.sourcelink.common";
+    pname = "microsoft.sourcelink.common";
     version = "1.0.0-beta-63127-02";
     sha256 = "0y29xx3x9nd14n1sr8ycxhf6y1a83pv3sayfxjib8wi6s866lagb";
   })
   (fetchNuGet {
-    name = "microsoft.sourcelink.github";
+    pname = "microsoft.sourcelink.github";
     version = "1.0.0-beta-63127-02";
     sha256 = "1096d5n7mfvgm1apdmafjkxkqray6r2cw6zjhhxj2zn98836w1n2";
   })
   (fetchNuGet {
-    name = "microsoft.win32.primitives";
+    pname = "microsoft.win32.primitives";
     version = "4.3.0";
     sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq";
   })
   (fetchNuGet {
-    name = "netstandard.library";
+    pname = "netstandard.library";
     version = "2.0.3";
     sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
   })
   (fetchNuGet {
-    name = "newtonsoft.json";
+    pname = "newtonsoft.json";
     version = "11.0.2";
     sha256 = "1784xi44f4k8v1fr696hsccmwpy94bz7kixxqlri98zhcxn406b2";
   })
   (fetchNuGet {
-    name = "nlog";
+    pname = "nlog";
     version = "4.5.10";
     sha256 = "0d4yqxrhqn2k36h3v1f5pn6qqlagbzg67v6gvxqhz3s4zyc3b8rg";
   })
   (fetchNuGet {
-    name = "nunit";
+    pname = "nunit";
     version = "3.11.0";
     sha256 = "0mmc8snwjjmbkhk6cv5c0ha77czzy9bca4q59244rxciw9sxk1cz";
   })
   (fetchNuGet {
-    name = "nunit3testadapter";
+    pname = "nunit3testadapter";
     version = "3.10.0";
     sha256 = "0ahzfk9y2dq0wl91ll5hss89hqw7la85ndll5030nslizsgm5q2i";
   })
   (fetchNuGet {
-    name = "protobuf-net";
+    pname = "protobuf-net";
     version = "2.4.0";
     sha256 = "106lxm9afga7ihlknyy7mlfplyq40mrndksqrsn8ia2a47fbqqld";
   })
   (fetchNuGet {
-    name = "runtime.any.system.collections";
+    pname = "runtime.any.system.collections";
     version = "4.3.0";
     sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0";
   })
   (fetchNuGet {
-    name = "runtime.any.system.diagnostics.tracing";
+    pname = "runtime.any.system.diagnostics.tracing";
     version = "4.3.0";
     sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn";
   })
   (fetchNuGet {
-    name = "runtime.any.system.globalization";
+    pname = "runtime.any.system.globalization";
     version = "4.3.0";
     sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x";
   })
   (fetchNuGet {
-    name = "runtime.any.system.globalization.calendars";
+    pname = "runtime.any.system.globalization.calendars";
     version = "4.3.0";
     sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201";
   })
   (fetchNuGet {
-    name = "runtime.any.system.io";
+    pname = "runtime.any.system.io";
     version = "4.3.0";
     sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x";
   })
   (fetchNuGet {
-    name = "runtime.any.system.reflection";
+    pname = "runtime.any.system.reflection";
     version = "4.3.0";
     sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly";
   })
   (fetchNuGet {
-    name = "runtime.any.system.reflection.extensions";
+    pname = "runtime.any.system.reflection.extensions";
     version = "4.3.0";
     sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33";
   })
   (fetchNuGet {
-    name = "runtime.any.system.reflection.primitives";
+    pname = "runtime.any.system.reflection.primitives";
     version = "4.3.0";
     sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf";
   })
   (fetchNuGet {
-    name = "runtime.any.system.resources.resourcemanager";
+    pname = "runtime.any.system.resources.resourcemanager";
     version = "4.3.0";
     sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl";
   })
   (fetchNuGet {
-    name = "runtime.any.system.runtime";
+    pname = "runtime.any.system.runtime";
     version = "4.3.0";
     sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
   })
   (fetchNuGet {
-    name = "runtime.any.system.runtime.handles";
+    pname = "runtime.any.system.runtime.handles";
     version = "4.3.0";
     sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x";
   })
   (fetchNuGet {
-    name = "runtime.any.system.runtime.interopservices";
+    pname = "runtime.any.system.runtime.interopservices";
     version = "4.3.0";
     sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19";
   })
   (fetchNuGet {
-    name = "runtime.any.system.text.encoding";
+    pname = "runtime.any.system.text.encoding";
     version = "4.3.0";
     sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3";
   })
   (fetchNuGet {
-    name = "runtime.any.system.text.encoding.extensions";
+    pname = "runtime.any.system.text.encoding.extensions";
     version = "4.3.0";
     sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8";
   })
   (fetchNuGet {
-    name = "runtime.any.system.threading.tasks";
+    pname = "runtime.any.system.threading.tasks";
     version = "4.3.0";
     sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va";
   })
   (fetchNuGet {
-    name = "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.0";
     sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
   })
   (fetchNuGet {
-    name = "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.2";
     sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i";
   })
   (fetchNuGet {
-    name = "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.0";
     sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
   })
   (fetchNuGet {
-    name = "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.2";
     sha256 = "1n06gxwlinhs0w7s8a94r1q3lwqzvynxwd3mp10ws9bg6gck8n4r";
   })
   (fetchNuGet {
-    name = "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.0";
     sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
   })
   (fetchNuGet {
-    name = "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.2";
     sha256 = "0404wqrc7f2yc0wxv71y3nnybvqx8v4j9d47hlscxy759a525mc3";
   })
   (fetchNuGet {
-    name = "runtime.native.system";
+    pname = "runtime.native.system";
     version = "4.3.0";
     sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
   })
   (fetchNuGet {
-    name = "runtime.native.system.net.http";
+    pname = "runtime.native.system.net.http";
     version = "4.3.0";
     sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk";
   })
   (fetchNuGet {
-    name = "runtime.native.system.net.security";
+    pname = "runtime.native.system.net.security";
     version = "4.3.0";
     sha256 = "0dnqjhw445ay3chpia9p6vy4w2j6s9vy3hxszqvdanpvvyaxijr3";
   })
   (fetchNuGet {
-    name = "runtime.native.system.security.cryptography.apple";
+    pname = "runtime.native.system.security.cryptography.apple";
     version = "4.3.0";
     sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q";
   })
   (fetchNuGet {
-    name = "runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.native.system.security.cryptography.openssl";
     version = "4.3.0";
     sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
   })
   (fetchNuGet {
-    name = "runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.native.system.security.cryptography.openssl";
     version = "4.3.2";
     sha256 = "0zy5r25jppz48i2bkg8b9lfig24xixg6nm3xyr1379zdnqnpm8f6";
   })
   (fetchNuGet {
-    name = "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.0";
     sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
   })
   (fetchNuGet {
-    name = "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.2";
     sha256 = "096ch4n4s8k82xga80lfmpimpzahd2ip1mgwdqgar0ywbbl6x438";
   })
   (fetchNuGet {
-    name = "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.0";
     sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
   })
   (fetchNuGet {
-    name = "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.2";
     sha256 = "1dm8fifl7rf1gy7lnwln78ch4rw54g0pl5g1c189vawavll7p6rj";
   })
   (fetchNuGet {
-    name = "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple";
+    pname = "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple";
     version = "4.3.0";
     sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi";
   })
   (fetchNuGet {
-    name = "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.0";
     sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3";
   })
   (fetchNuGet {
-    name = "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.2";
     sha256 = "1m9z1k9kzva9n9kwinqxl97x2vgl79qhqjlv17k9s2ymcyv2bwr6";
   })
   (fetchNuGet {
-    name = "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.0";
     sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
   })
   (fetchNuGet {
-    name = "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.2";
     sha256 = "1cpx56mcfxz7cpn57wvj18sjisvzq8b5vd9rw16ihd2i6mcp3wa1";
   })
   (fetchNuGet {
-    name = "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.0";
     sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
   })
   (fetchNuGet {
-    name = "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.2";
     sha256 = "15gsm1a8jdmgmf8j5v1slfz8ks124nfdhk2vxs2rw3asrxalg8hi";
   })
   (fetchNuGet {
-    name = "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.0";
     sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
   })
   (fetchNuGet {
-    name = "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.2";
     sha256 = "0q0n5q1r1wnqmr5i5idsrd9ywl33k0js4pngkwq9p368mbxp8x1w";
   })
   (fetchNuGet {
-    name = "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.0";
     sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
   })
   (fetchNuGet {
-    name = "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl";
+    pname = "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl";
     version = "4.3.2";
     sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c";
   })
   (fetchNuGet {
-    name = "runtime.unix.microsoft.win32.primitives";
+    pname = "runtime.unix.microsoft.win32.primitives";
     version = "4.3.0";
     sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id";
   })
   (fetchNuGet {
-    name = "runtime.unix.system.diagnostics.debug";
+    pname = "runtime.unix.system.diagnostics.debug";
     version = "4.3.0";
     sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5";
   })
   (fetchNuGet {
-    name = "runtime.unix.system.io.filesystem";
+    pname = "runtime.unix.system.io.filesystem";
     version = "4.3.0";
     sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix";
   })
   (fetchNuGet {
-    name = "runtime.unix.system.net.primitives";
+    pname = "runtime.unix.system.net.primitives";
     version = "4.3.0";
     sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4";
   })
   (fetchNuGet {
-    name = "runtime.unix.system.private.uri";
+    pname = "runtime.unix.system.private.uri";
     version = "4.3.0";
     sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk";
   })
   (fetchNuGet {
-    name = "runtime.unix.system.runtime.extensions";
+    pname = "runtime.unix.system.runtime.extensions";
     version = "4.3.0";
     sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p";
   })
   (fetchNuGet {
-    name = "system.buffers";
+    pname = "system.buffers";
     version = "4.3.0";
     sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy";
   })
   (fetchNuGet {
-    name = "system.collections";
+    pname = "system.collections";
     version = "4.3.0";
     sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
   })
   (fetchNuGet {
-    name = "system.collections.concurrent";
+    pname = "system.collections.concurrent";
     version = "4.3.0";
     sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8";
   })
   (fetchNuGet {
-    name = "system.diagnostics.debug";
+    pname = "system.diagnostics.debug";
     version = "4.3.0";
     sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
   })
   (fetchNuGet {
-    name = "system.diagnostics.diagnosticsource";
+    pname = "system.diagnostics.diagnosticsource";
     version = "4.3.0";
     sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq";
   })
   (fetchNuGet {
-    name = "system.diagnostics.tracing";
+    pname = "system.diagnostics.tracing";
     version = "4.3.0";
     sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4";
   })
   (fetchNuGet {
-    name = "system.globalization";
+    pname = "system.globalization";
     version = "4.3.0";
     sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
   })
   (fetchNuGet {
-    name = "system.globalization.calendars";
+    pname = "system.globalization.calendars";
     version = "4.3.0";
     sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq";
   })
   (fetchNuGet {
-    name = "system.globalization.extensions";
+    pname = "system.globalization.extensions";
     version = "4.3.0";
     sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
   })
   (fetchNuGet {
-    name = "system.io";
+    pname = "system.io";
     version = "4.3.0";
     sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
   })
   (fetchNuGet {
-    name = "system.io.filesystem";
+    pname = "system.io.filesystem";
     version = "4.3.0";
     sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
   })
   (fetchNuGet {
-    name = "system.io.filesystem.primitives";
+    pname = "system.io.filesystem.primitives";
     version = "4.3.0";
     sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
   })
   (fetchNuGet {
-    name = "system.linq";
+    pname = "system.linq";
     version = "4.3.0";
     sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
   })
   (fetchNuGet {
-    name = "system.net.http";
+    pname = "system.net.http";
     version = "4.3.4";
     sha256 = "0kdp31b8819v88l719j6my0yas6myv9d1viql3qz5577mv819jhl";
   })
   (fetchNuGet {
-    name = "system.net.primitives";
+    pname = "system.net.primitives";
     version = "4.3.0";
     sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii";
   })
   (fetchNuGet {
-    name = "system.net.requests";
+    pname = "system.net.requests";
     version = "4.3.0";
     sha256 = "0pcznmwqqk0qzp0gf4g4xw7arhb0q8v9cbzh3v8h8qp6rjcr339a";
   })
   (fetchNuGet {
-    name = "system.net.security";
+    pname = "system.net.security";
     version = "4.3.2";
     sha256 = "1aw1ca1vssqrillrh4qkarx0lxwc8wcaqdkfdima8376wb98j2q8";
   })
   (fetchNuGet {
-    name = "system.net.webheadercollection";
+    pname = "system.net.webheadercollection";
     version = "4.3.0";
     sha256 = "0ms3ddjv1wn8sqa5qchm245f3vzzif6l6fx5k92klqpn7zf4z562";
   })
   (fetchNuGet {
-    name = "system.private.servicemodel";
+    pname = "system.private.servicemodel";
     version = "4.5.3";
     sha256 = "0nyw9m9dj327hn0qb0jmgwpch0f40jv301fk4mrchga8g99xbpng";
   })
   (fetchNuGet {
-    name = "system.private.uri";
+    pname = "system.private.uri";
     version = "4.3.0";
     sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx";
   })
   (fetchNuGet {
-    name = "system.reflection";
+    pname = "system.reflection";
     version = "4.3.0";
     sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
   })
   (fetchNuGet {
-    name = "system.reflection.dispatchproxy";
+    pname = "system.reflection.dispatchproxy";
     version = "4.5.0";
     sha256 = "0v9sg38h91aljvjyc77m1y5v34p50hjdbxvvxwa1whlajhafadcn";
   })
   (fetchNuGet {
-    name = "system.reflection.emit";
+    pname = "system.reflection.emit";
     version = "4.3.0";
     sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
   })
   (fetchNuGet {
-    name = "system.reflection.emit.ilgeneration";
+    pname = "system.reflection.emit.ilgeneration";
     version = "4.3.0";
     sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
   })
   (fetchNuGet {
-    name = "system.reflection.emit.lightweight";
+    pname = "system.reflection.emit.lightweight";
     version = "4.3.0";
     sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
   })
   (fetchNuGet {
-    name = "system.reflection.extensions";
+    pname = "system.reflection.extensions";
     version = "4.3.0";
     sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
   })
   (fetchNuGet {
-    name = "system.reflection.primitives";
+    pname = "system.reflection.primitives";
     version = "4.3.0";
     sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
   })
   (fetchNuGet {
-    name = "system.reflection.typeextensions";
+    pname = "system.reflection.typeextensions";
     version = "4.4.0";
     sha256 = "0n9r1w4lp2zmadyqkgp4sk9wy90sj4ygq4dh7kzamx26i9biys5h";
   })
   (fetchNuGet {
-    name = "system.resources.resourcemanager";
+    pname = "system.resources.resourcemanager";
     version = "4.3.0";
     sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
   })
   (fetchNuGet {
-    name = "system.runtime";
+    pname = "system.runtime";
     version = "4.3.0";
     sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
   })
   (fetchNuGet {
-    name = "system.runtime.extensions";
+    pname = "system.runtime.extensions";
     version = "4.3.0";
     sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
   })
   (fetchNuGet {
-    name = "system.runtime.handles";
+    pname = "system.runtime.handles";
     version = "4.3.0";
     sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
   })
   (fetchNuGet {
-    name = "system.runtime.interopservices";
+    pname = "system.runtime.interopservices";
     version = "4.3.0";
     sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
   })
   (fetchNuGet {
-    name = "system.runtime.numerics";
+    pname = "system.runtime.numerics";
     version = "4.3.0";
     sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
   })
   (fetchNuGet {
-    name = "system.security.claims";
+    pname = "system.security.claims";
     version = "4.3.0";
     sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn";
   })
   (fetchNuGet {
-    name = "system.security.cryptography.algorithms";
+    pname = "system.security.cryptography.algorithms";
     version = "4.3.0";
     sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml";
   })
   (fetchNuGet {
-    name = "system.security.cryptography.cng";
+    pname = "system.security.cryptography.cng";
     version = "4.3.0";
     sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv";
   })
   (fetchNuGet {
-    name = "system.security.cryptography.csp";
+    pname = "system.security.cryptography.csp";
     version = "4.3.0";
     sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1";
   })
   (fetchNuGet {
-    name = "system.security.cryptography.encoding";
+    pname = "system.security.cryptography.encoding";
     version = "4.3.0";
     sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32";
   })
   (fetchNuGet {
-    name = "system.security.cryptography.openssl";
+    pname = "system.security.cryptography.openssl";
     version = "4.3.0";
     sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc";
   })
   (fetchNuGet {
-    name = "system.security.cryptography.primitives";
+    pname = "system.security.cryptography.primitives";
     version = "4.3.0";
     sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby";
   })
   (fetchNuGet {
-    name = "system.security.cryptography.x509certificates";
+    pname = "system.security.cryptography.x509certificates";
     version = "4.3.0";
     sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h";
   })
   (fetchNuGet {
-    name = "system.security.principal";
+    pname = "system.security.principal";
     version = "4.3.0";
     sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf";
   })
   (fetchNuGet {
-    name = "system.security.principal.windows";
+    pname = "system.security.principal.windows";
     version = "4.5.0";
     sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86";
   })
   (fetchNuGet {
-    name = "system.servicemodel.primitives";
+    pname = "system.servicemodel.primitives";
     version = "4.5.3";
     sha256 = "1v90pci049cn44y0km885k1vrilhb34w6q2zva4y6f3ay84klrih";
   })
   (fetchNuGet {
-    name = "system.text.encoding";
+    pname = "system.text.encoding";
     version = "4.3.0";
     sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
   })
   (fetchNuGet {
-    name = "system.text.encoding.extensions";
+    pname = "system.text.encoding.extensions";
     version = "4.3.0";
     sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
   })
   (fetchNuGet {
-    name = "system.text.regularexpressions";
+    pname = "system.text.regularexpressions";
     version = "4.3.0";
     sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
   })
   (fetchNuGet {
-    name = "system.threading";
+    pname = "system.threading";
     version = "4.3.0";
     sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
   })
   (fetchNuGet {
-    name = "system.threading.tasks";
+    pname = "system.threading.tasks";
     version = "4.3.0";
     sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
   })
   (fetchNuGet {
-    name = "system.threading.tasks.extensions";
+    pname = "system.threading.tasks.extensions";
     version = "4.3.0";
     sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
   })
   (fetchNuGet {
-    name = "system.threading.threadpool";
+    pname = "system.threading.threadpool";
     version = "4.3.0";
     sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1";
   })
   (fetchNuGet {
-    name = "system.xml.readerwriter";
+    pname = "system.xml.readerwriter";
     version = "4.3.0";
     sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
   })
   (fetchNuGet {
-    name = "system.xml.xmldocument";
+    pname = "system.xml.xmldocument";
     version = "4.3.0";
     sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
   })
   (fetchNuGet {
-    name = "system.xml.xmlserializer";
+    pname = "system.xml.xmlserializer";
     version = "4.3.0";
     sha256 = "07pa4sx196vxkgl3csvdmw94nydlsm9ir38xxcs84qjn8cycd912";
   })
   (fetchNuGet {
-    name = "yamldotnet";
+    pname = "yamldotnet";
     version = "5.2.1";
     sha256 = "0nb34qcdhs5qn4783idg28f2kr89vaiyjn4v2barhv7i75zhym6y";
   })
diff --git a/pkgs/servers/nosql/influxdb2/cli.nix b/pkgs/servers/nosql/influxdb2/cli.nix
new file mode 100644
index 0000000000000..573835a2dd838
--- /dev/null
+++ b/pkgs/servers/nosql/influxdb2/cli.nix
@@ -0,0 +1,33 @@
+{ buildGoModule
+, buildGoPackage
+, fetchFromGitHub
+, lib
+}:
+
+let
+  version = "2.2.1";
+
+  src = fetchFromGitHub {
+    owner = "influxdata";
+    repo = "influx-cli";
+    rev = "v${version}";
+    sha256 = "sha256-9FUchI93xLpQwtpbr5S3GfVrApHaemwbnRPIfAWmG6Y=";
+  };
+
+in buildGoModule {
+  pname = "influx-cli";
+  version = version;
+  src = src;
+
+  vendorSha256 = "sha256-Boz1G8g0fjjlflxZh4V8sd/v0bE9Oy3DpqywOpKxjd0=";
+  subPackages = [ "cmd/influx" ];
+
+  ldflags = [ "-X main.commit=v${version}" "-X main.version=${version}" ];
+
+  meta = with lib; {
+    description = "CLI for managing resources in InfluxDB v2";
+    license = licenses.mit;
+    homepage = "https://influxdata.com/";
+    maintainers = with maintainers; [ abbradar danderson ];
+  };
+}
diff --git a/pkgs/servers/nosql/influxdb2/combined.nix b/pkgs/servers/nosql/influxdb2/combined.nix
new file mode 100644
index 0000000000000..285c94d01580c
--- /dev/null
+++ b/pkgs/servers/nosql/influxdb2/combined.nix
@@ -0,0 +1,12 @@
+{
+  buildEnv,
+  influxdb2-server,
+  influxdb2-cli,
+}:
+buildEnv {
+  name = "influxdb2";
+  paths = [
+    influxdb2-server
+    influxdb2-cli
+  ];
+}
diff --git a/pkgs/servers/nosql/influxdb2/default.nix b/pkgs/servers/nosql/influxdb2/default.nix
index f786171d709ff..3aee5977850b1 100644
--- a/pkgs/servers/nosql/influxdb2/default.nix
+++ b/pkgs/servers/nosql/influxdb2/default.nix
@@ -1,35 +1,31 @@
 { buildGoModule
-, buildGoPackage
 , fetchFromGitHub
 , fetchurl
 , go-bindata
 , lib
 , llvmPackages
+, perl
 , pkg-config
 , rustPlatform
 , stdenv
 , libiconv
 }:
 
-# Note for maintainers: use ./update-influxdb2.sh to update the Yarn
-# dependencies nix expression.
-
 let
-  version = "2.0.8";
-  shorthash = "e91d41810f"; # git rev-parse HEAD with 2.0.8 checked out
-  libflux_version = "0.124.0";
+  version = "2.1.1";
+  ui_version = "2.1.2";
+  libflux_version = "0.139.0";
 
   src = fetchFromGitHub {
     owner = "influxdata";
     repo = "influxdb";
     rev = "v${version}";
-    sha256 = "0hbinnja13xr9ziyynjsnsbrxmyrvag7xdgfwq2ya28g07lw5wgq";
+    sha256 = "sha256-wf01DhB1ampZuWPkHUEOf3KJK4GjeOAPL3LG2+g4NGY=";
   };
 
   ui = fetchurl {
-    url = "https://github.com/influxdata/ui/releases/download/OSS-v${version}/build.tar.gz";
-    # https://github.com/influxdata/ui/releases/download/OSS-v${version}/sha256.txt
-    sha256 = "94965ae999a1098c26128141fbb849be3da9a723d509118eb6e0db4384ee01fc";
+    url = "https://github.com/influxdata/ui/releases/download/OSS-${ui_version}/build.tar.gz";
+    sha256 = "sha256-fXjShNJfKN/ZQNQHoX9/Ou4XBrXavCN+rcO+8AMc5Ug=";
   };
 
   flux = rustPlatform.buildRustPackage {
@@ -39,10 +35,10 @@ let
       owner = "influxdata";
       repo = "flux";
       rev = "v${libflux_version}";
-      sha256 = "1g1qilfzxqbbjbfvgkf7k7spcnhzvlmrqacpqdl05418ywkp3v29";
+      sha256 = "sha256-cELeWZXGVLFoPYfBoBP8NeLBVFIb5o+lWyto42BLyXY=";
     };
     sourceRoot = "source/libflux";
-    cargoSha256 = "0farcjwnwwgfvcgbs5r6vsdrsiwq2mp82sjxkqb1pzqfls4ixcxj";
+    cargoSha256 = "sha256-wFgawxgqZqoPnOXJD3r5t2n7Y2bTAkBbBxeBtFEF7N4=";
     nativeBuildInputs = [ llvmPackages.libclang ];
     buildInputs = lib.optional stdenv.isDarwin libiconv;
     LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
@@ -63,6 +59,7 @@ let
       install_name_tool -id $out/lib/libflux.dylib $out/lib/libflux.dylib
     '';
   };
+
 in buildGoModule {
   pname = "influxdb";
   version = version;
@@ -70,34 +67,42 @@ in buildGoModule {
 
   nativeBuildInputs = [ go-bindata pkg-config ];
 
-  vendorSha256 = "1kar88vlm6px7smlnajpyf8qx6d481xk979qafpfb1xy8931781m";
-  subPackages = [ "cmd/influxd" "cmd/influx" ];
+  vendorSha256 = "sha256-GVLAzVJzSsC10ZWDZPP8upydwZG21E+zQ6sMKm1lCY0=";
+  subPackages = [ "cmd/influxd" "cmd/telemetryd" ];
 
   PKG_CONFIG_PATH = "${flux}/pkgconfig";
-  # We have to run a bunch of go:generate commands to embed the UI
-  # assets into the source code. Ideally we'd run `make generate`, but
-  # that ends up running a ton of non-hermetic stuff. Instead, we find
-  # the relevant go:generate directives, and run them by hand without
-  # breaking hermeticity.
+  # Check that libflux and the UI are at the right version, and embed
+  # the UI assets into the Go source tree.
   preBuild = ''
-    tar -xzf ${ui} -C static/data
+    (
+      flux_ver=$(grep github.com/influxdata/flux go.mod | awk '{print $2}')
+      if [ "$flux_ver" != "v${libflux_version}" ]; then
+        echo "go.mod wants libflux $flux_ver, but nix derivation provides ${libflux_version}"
+        exit 1
+      fi
 
-    grep -RI -e 'go:generate.*go-bindata' | cut -f1 -d: | while read -r filename; do
-      sed -i -e 's/go:generate.*go-bindata/go:generate go-bindata/' $filename
-      pushd $(dirname $filename)
-      go generate
-      popd
-    done
+      ui_ver=$(grep influxdata/ui/releases scripts/fetch-ui-assets.sh | ${perl}/bin/perl -pe 's#.*/OSS-([^/]+)/.*#$1#')
+      if [ "$ui_ver" != "${ui_version}" ]; then
+        echo "scripts/fetch-ui-assets.sh wants UI $ui_ver, but nix derivation provides ${ui_version}"
+        exit 1
+      fi
+    )
+
+    mkdir -p static/data
+    tar -xzf ${ui} -C static/data
+    pushd static
+    go generate
+    popd
   '';
 
   tags = [ "assets" ];
 
-  ldflags = [ "-X main.commit=${shorthash}" "-X main.version=${version}" ];
+  ldflags = [ "-X main.commit=v${version}" "-X main.version=${version}" ];
 
   meta = with lib; {
     description = "An open-source distributed time series database";
     license = licenses.mit;
     homepage = "https://influxdata.com/";
-    maintainers = with maintainers; [ danderson ];
+    maintainers = with maintainers; [ abbradar danderson ];
   };
 }
diff --git a/pkgs/servers/nosql/influxdb2/influx-ui-package.json b/pkgs/servers/nosql/influxdb2/influx-ui-package.json
deleted file mode 100644
index 1a3840f154874..0000000000000
--- a/pkgs/servers/nosql/influxdb2/influx-ui-package.json
+++ /dev/null
@@ -1,201 +0,0 @@
-{
-  "name": "influxdb-ui",
-  "version": "2.0.5",
-  "private": false,
-  "license": "MIT",
-  "description": "",
-  "repository": {
-    "type": "git",
-    "url": "github:influxdata/ui"
-  },
-  "engines": {
-    "node": ">=10.5.0",
-    "yarn": ">=1.16.0"
-  },
-  "alias": {
-    "src": "./src"
-  },
-  "scripts": {
-    "start": "yarn install && yarn generate && cross-env TS_NODE_PROJECT=\"webpack.tsconfig.json\" && yarn run build:vendor && yarn run start:dev",
-    "start:cloud": "yarn install && yarn generate && cross-env TS_NODE_PROJECT=\"webpack.tsconfig.json\" && yarn run build:vendor && yarn run start:dev-cloud",
-    "start:dev": "webpack-dev-server --config ./webpack.dev.ts --progress false",
-    "start:dev-cloud": "cross-env CLOUD_LOGOUT_URL=http://localhost:8080/api/v2/signout CLOUD_URL=http://localhost:4000 webpack-dev-server --config ./webpack.dev.ts",
-    "start:docker": "yarn generate && yarn build:vendor && yarn run start:dev",
-    "build": "yarn install --silent && yarn build:ci",
-    "build:ci": "yarn generate && yarn build:vendor && webpack --config webpack.prod.ts --bail",
-    "build:vendor": "webpack --config webpack.vendor.ts",
-    "clean": "rm -rf ./build && rm -rf ./.cache && rm -rf node_modules && rm -rf cypress/screenshots && rm -rf cypress/videos && rm -f junit-results/* ",
-    "test": "jest --maxWorkers=2",
-    "test:watch": "jest --watch --verbose false",
-    "test:update": "jest --updateSnapshot",
-    "test:debug": "node --inspect-brk $(npm bin)/jest --runInBand --watch --verbose false",
-    "test:e2e": "CYPRESS_baseUrl=http://localhost:8086 cypress run --browser chrome --reporter junit --reporter-options 'mochaFile=junit-results/test-output-[hash].xml'",
-    "test:e2e:report": "junit-viewer --results=junit-results --save-file=cypress/site/junit-report.html",
-    "test:e2e:clean": "rm junit-results/*.xml",
-    "test:e2e:all": "yarn test:e2e:clean && yarn test:e2e; yarn test:e2e:report;",
-    "test:circleci": "yarn run test:ci --maxWorkers=2",
-    "test:ci": "JEST_JUNIT_OUTPUT_DIR=\"./coverage\" jest --ci --coverage",
-    "lint": "yarn tsc && yarn prettier && yarn eslint",
-    "eslint": "eslint '{src,cypress}/**/*.{ts,tsx}'",
-    "eslint:circleci": "eslint",
-    "eslint:fix": "eslint --fix '{src,cypress}/**/*.{ts,tsx}'",
-    "prettier": "prettier --config .prettierrc.json --check '{src,cypress}/**/*.{ts,tsx}'",
-    "prettier:circleci": "prettier --config .prettierrc.json --check",
-    "prettier:fix": "prettier --config .prettierrc.json --write '{src,cypress}/**/*.{ts,tsx}'",
-    "tsc": "tsc -p ./tsconfig.json --noEmit --pretty --skipLibCheck",
-    "tsc:cypress": "tsc -p ./cypress/tsconfig.json --noEmit --pretty --skipLibCheck",
-    "cy": "CYPRESS_baseUrl=http://localhost:8086 cypress open",
-    "cy:dev": "CYPRESS_baseUrl=http://localhost:8080 cypress open",
-    "generate": "oats ../http/swagger.yml > ./src/client/generatedRoutes.ts"
-  },
-  "author": "",
-  "devDependencies": {
-    "@babel/core": "^7.5.5",
-    "@babel/preset-env": "^7.5.5",
-    "@influxdata/oats": "0.5.0",
-    "@testing-library/react": "^10.2.1",
-    "@types/chroma-js": "^1.3.4",
-    "@types/codemirror": "^0.0.56",
-    "@types/d3-color": "^1.2.1",
-    "@types/d3-scale": "^2.0.1",
-    "@types/enzyme": "^3.1.14",
-    "@types/history": "4.7.6",
-    "@types/jest": "^23.3.2",
-    "@types/lodash": "^4.14.116",
-    "@types/memoize-one": "^4.0.2",
-    "@types/node": "^12.6.8",
-    "@types/papaparse": "^4.5.9",
-    "@types/prop-types": "^15.5.2",
-    "@types/qs": "^6.5.1",
-    "@types/react": "^16.8.3",
-    "@types/react-datepicker": "^2.8.1",
-    "@types/react-dom": "^16.8.1",
-    "@types/react-grid-layout": "^0.16.5",
-    "@types/react-redux": "^7.1.9",
-    "@types/react-router-dom": "^5.1.5",
-    "@types/react-virtualized": "^9.18.3",
-    "@types/text-encoding": "^0.0.32",
-    "@types/uuid": "^3.4.3",
-    "@types/webpack": "^4.4.35",
-    "@types/webpack-env": "^1.15.2",
-    "@typescript-eslint/eslint-plugin": "^2.6.0",
-    "@typescript-eslint/parser": "^2.6.0",
-    "acorn": "^6.0.6",
-    "ajv": "^6.7.0",
-    "autoprefixer": "^6.3.1",
-    "babel-loader": "^8.0.6",
-    "clean-webpack-plugin": "^3.0.0",
-    "cross-env": "^5.2.0",
-    "css-loader": "^3.1.0",
-    "cypress": "4.12.1",
-    "cypress-file-upload": "^4.0.7",
-    "cypress-pipe": "^1.5.0",
-    "cypress-plugin-tab": "^1.0.5",
-    "enzyme": "^3.6.0",
-    "enzyme-adapter-react-16": "^1.6.0",
-    "enzyme-to-json": "^3.3.4",
-    "eslint": "^6.6.0",
-    "eslint-config-prettier": "^6.5.0",
-    "eslint-plugin-jest": "^23.0.2",
-    "eslint-plugin-react": "^7.16.0",
-    "eslint-plugin-react-hooks": "^4.0.5",
-    "express": "^4.14.0",
-    "file-loader": "^4.1.0",
-    "fork-ts-checker-webpack-plugin": "^1.4.3",
-    "html-webpack-plugin": "^3.2.0",
-    "http-proxy-middleware": "^0.18.0",
-    "identity-obj-proxy": "^3.0.0",
-    "jest": "^24.8.0",
-    "jest-fetch-mock": "^3.0.3",
-    "jest-junit": "^10.0.0",
-    "jsdom": "^9.0.0",
-    "junit-viewer": "^4.11.1",
-    "mini-css-extract-plugin": "^0.8.0",
-    "mocha": "^5.2.0",
-    "mocha-junit-reporter": "^1.18.0",
-    "mutation-observer": "^1.0.3",
-    "optimize-css-assets-webpack-plugin": "^5.0.3",
-    "prettier": "^1.19.1",
-    "raw-loader": "^4.0.1",
-    "sass": "^1.22.7",
-    "sass-loader": "^7.1.0",
-    "source-map-loader": "^0.2.4",
-    "style-loader": "^0.23.1",
-    "terser-webpack-plugin": "2.2.1",
-    "ts-jest": "^24.0.0",
-    "ts-loader": "^5.3.3",
-    "ts-node": "^8.3.0",
-    "tslib": "^1.9.0",
-    "typescript": "3.8.3",
-    "webpack": "^4.41.4",
-    "webpack-cli": "^3.3.10",
-    "webpack-dev-server": "^3.7.2",
-    "webpack-merge": "^4.2.1"
-  },
-  "dependencies": {
-    "@influxdata/clockface": "2.3.4",
-    "@influxdata/flux": "^0.5.1",
-    "@influxdata/flux-lsp-browser": "^0.5.41",
-    "@influxdata/giraffe": "0.29.0",
-    "@influxdata/influx": "0.5.5",
-    "@influxdata/influxdb-templates": "0.9.0",
-    "@influxdata/react-custom-scrollbars": "4.3.8",
-    "abortcontroller-polyfill": "^1.3.0",
-    "auth0-js": "^9.12.2",
-    "axios": "^0.19.0",
-    "babel-polyfill": "^6.26.0",
-    "bignumber.js": "^4.0.2",
-    "calculate-size": "^1.1.1",
-    "chroma-js": "^1.3.6",
-    "classnames": "^2.2.3",
-    "codemirror": "^5.36.0",
-    "connected-react-router": "^6.8.0",
-    "d3-format": "^1.3.2",
-    "d3-scale": "^2.1.0",
-    "fast.js": "^0.1.1",
-    "history": "^4.7.2",
-    "honeybadger-js": "^1.0.2",
-    "immer": "^1.9.3",
-    "immutable": "^3.8.1",
-    "intersection-observer": "^0.7.0",
-    "jsonlint-mod": "^1.7.5",
-    "lodash": "^4.3.0",
-    "memoize-one": "^4.0.2",
-    "moment": "^2.13.0",
-    "monaco-editor": "^0.19.2",
-    "monaco-editor-textmate": "^2.2.1",
-    "monaco-editor-webpack-plugin": "^1.8.2",
-    "monaco-languageclient": "^0.11.0",
-    "monaco-textmate": "^3.0.1",
-    "normalizr": "^3.4.1",
-    "onigasm": "^2.2.4",
-    "papaparse": "^5.2.0",
-    "prop-types": "^15.6.1",
-    "qs": "^6.5.2",
-    "react": "^16.11.0",
-    "react-codemirror2": "^4.2.1",
-    "react-copy-to-clipboard": "^5.0.1",
-    "react-datepicker": "^2.1.0",
-    "react-dimensions": "^1.2.0",
-    "react-dnd": "^9.3.2",
-    "react-dnd-html5-backend": "^9.3.2",
-    "react-dom": "^16.8.2",
-    "react-grid-layout": "^0.16.6",
-    "react-loadable": "^5.5.0",
-    "react-markdown": "^4.0.3",
-    "react-monaco-editor": "^0.33.0",
-    "react-redux": "^7.2.0",
-    "react-router-dom": "^5.2.0",
-    "react-scrollbars-custom": "^4.0.0-alpha.8",
-    "react-virtualized": "^9.18.5",
-    "redux": "^4.0.0",
-    "redux-auth-wrapper": "^1.0.0",
-    "redux-thunk": "^2.3.0",
-    "reselect": "^4.0.0",
-    "rome": "^2.1.22",
-    "seamless-immutable": "^7.1.3",
-    "use-persisted-state": "^0.3.0",
-    "uuid": "^3.2.1",
-    "webpack-bundle-analyzer": "^3.6.0"
-  }
-}
diff --git a/pkgs/servers/nosql/influxdb2/influx-ui-yarndeps.nix b/pkgs/servers/nosql/influxdb2/influx-ui-yarndeps.nix
deleted file mode 100644
index bc92013b14729..0000000000000
--- a/pkgs/servers/nosql/influxdb2/influx-ui-yarndeps.nix
+++ /dev/null
@@ -1,13389 +0,0 @@
-{ fetchurl, fetchgit, linkFarm, runCommand, gnutar }: rec {
-  offline_cache = linkFarm "offline" packages;
-  packages = [
-    {
-      name = "_babel_code_frame___code_frame_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_code_frame___code_frame_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz";
-        sha1 = "bc0782f6d69f7b7d49531219699b988f669a8f9d";
-      };
-    }
-    {
-      name = "_babel_core___core_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_core___core_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz";
-        sha1 = "17b2686ef0d6bc58f963dddd68ab669755582c30";
-      };
-    }
-    {
-      name = "_babel_generator___generator_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_generator___generator_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz";
-        sha1 = "873a7f936a3c89491b43536d12245b626664e3cf";
-      };
-    }
-    {
-      name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.0.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz";
-        sha1 = "323d39dd0b50e10c7c06ca7d7638e6864d8c5c32";
-      };
-    }
-    {
-      name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.1.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz";
-        sha1 = "6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f";
-      };
-    }
-    {
-      name = "_babel_helper_call_delegate___helper_call_delegate_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_helper_call_delegate___helper_call_delegate_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz";
-        sha1 = "87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43";
-      };
-    }
-    {
-      name = "_babel_helper_define_map___helper_define_map_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_helper_define_map___helper_define_map_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz";
-        sha1 = "3dec32c2046f37e09b28c93eb0b103fd2a25d369";
-      };
-    }
-    {
-      name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.1.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz";
-        sha1 = "537fa13f6f1674df745b0c00ec8fe4e99681c8f6";
-      };
-    }
-    {
-      name = "_babel_helper_function_name___helper_function_name_7.1.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_function_name___helper_function_name_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz";
-        sha1 = "a0ceb01685f73355d4360c1247f582bfafc8ff53";
-      };
-    }
-    {
-      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.0.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz";
-        sha1 = "83572d4320e2a4657263734113c42868b64e49c3";
-      };
-    }
-    {
-      name = "_babel_helper_hoist_variables___helper_hoist_variables_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_helper_hoist_variables___helper_hoist_variables_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz";
-        sha1 = "0298b5f25c8c09c53102d52ac4a98f773eb2850a";
-      };
-    }
-    {
-      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz";
-        sha1 = "1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590";
-      };
-    }
-    {
-      name = "_babel_helper_module_imports___helper_module_imports_7.0.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_module_imports___helper_module_imports_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz";
-        sha1 = "96081b7111e486da4d2cd971ad1a4fe216cc2e3d";
-      };
-    }
-    {
-      name = "_babel_helper_module_transforms___helper_module_transforms_7.2.2.tgz";
-      path = fetchurl {
-        name = "_babel_helper_module_transforms___helper_module_transforms_7.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz";
-        sha1 = "ab2f8e8d231409f8370c883d20c335190284b963";
-      };
-    }
-    {
-      name = "_babel_helper_module_transforms___helper_module_transforms_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_helper_module_transforms___helper_module_transforms_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz";
-        sha1 = "f84ff8a09038dcbca1fd4355661a500937165b4a";
-      };
-    }
-    {
-      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.0.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz";
-        sha1 = "a2920c5702b073c15de51106200aa8cad20497d5";
-      };
-    }
-    {
-      name = "_babel_helper_plugin_utils___helper_plugin_utils_7.0.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_plugin_utils___helper_plugin_utils_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz";
-        sha1 = "bbb3fbee98661c569034237cc03967ba99b4f250";
-      };
-    }
-    {
-      name = "_babel_helper_regex___helper_regex_7.0.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_regex___helper_regex_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz";
-        sha1 = "2c1718923b57f9bbe64705ffe5640ac64d9bdb27";
-      };
-    }
-    {
-      name = "_babel_helper_regex___helper_regex_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_helper_regex___helper_regex_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz";
-        sha1 = "0aa6824f7100a2e0e89c1527c23936c152cab351";
-      };
-    }
-    {
-      name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.1.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz";
-        sha1 = "361d80821b6f38da75bd3f0785ece20a88c5fe7f";
-      };
-    }
-    {
-      name = "_babel_helper_replace_supers___helper_replace_supers_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_helper_replace_supers___helper_replace_supers_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz";
-        sha1 = "f84ce43df031222d2bad068d2626cb5799c34bc2";
-      };
-    }
-    {
-      name = "_babel_helper_simple_access___helper_simple_access_7.1.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_simple_access___helper_simple_access_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz";
-        sha1 = "65eeb954c8c245beaa4e859da6188f39d71e585c";
-      };
-    }
-    {
-      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz";
-        sha1 = "ff94894a340be78f53f06af038b205c49d993677";
-      };
-    }
-    {
-      name = "_babel_helper_wrap_function___helper_wrap_function_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_helper_wrap_function___helper_wrap_function_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz";
-        sha1 = "c4e0012445769e2815b55296ead43a958549f6fa";
-      };
-    }
-    {
-      name = "_babel_helpers___helpers_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_helpers___helpers_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz";
-        sha1 = "63908d2a73942229d1e6685bc2a0e730dde3b75e";
-      };
-    }
-    {
-      name = "_babel_highlight___highlight_7.5.0.tgz";
-      path = fetchurl {
-        name = "_babel_highlight___highlight_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz";
-        sha1 = "56d11312bd9248fa619591d02472be6e8cb32540";
-      };
-    }
-    {
-      name = "_babel_parser___parser_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_parser___parser_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz";
-        sha1 = "02f077ac8817d3df4a832ef59de67565e71cca4b";
-      };
-    }
-    {
-      name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz";
-        sha1 = "b289b306669dce4ad20b0252889a15768c9d417e";
-      };
-    }
-    {
-      name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.5.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz";
-        sha1 = "e532202db4838723691b10a67b8ce509e397c506";
-      };
-    }
-    {
-      name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz";
-        sha1 = "568ecc446c6148ae6b267f02551130891e29f317";
-      };
-    }
-    {
-      name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz";
-        sha1 = "61939744f71ba76a3ae46b5eea18a54c16d22e58";
-      };
-    }
-    {
-      name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz";
-        sha1 = "135d81edb68a081e55e56ec48541ece8065c38f5";
-      };
-    }
-    {
-      name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz";
-        sha1 = "501ffd9826c0b91da22690720722ac7cb1ca9c78";
-      };
-    }
-    {
-      name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_syntax_async_generators___plugin_syntax_async_generators_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz";
-        sha1 = "69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f";
-      };
-    }
-    {
-      name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_syntax_dynamic_import___plugin_syntax_dynamic_import_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz";
-        sha1 = "69c159ffaf4998122161ad8ebc5e6d1f55df8612";
-      };
-    }
-    {
-      name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_syntax_json_strings___plugin_syntax_json_strings_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz";
-        sha1 = "72bd13f6ffe1d25938129d2a186b11fd62951470";
-      };
-    }
-    {
-      name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_syntax_object_rest_spread___plugin_syntax_object_rest_spread_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz";
-        sha1 = "3b7a3e733510c57e820b9142a6579ac8b0dfad2e";
-      };
-    }
-    {
-      name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_syntax_optional_catch_binding___plugin_syntax_optional_catch_binding_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz";
-        sha1 = "a94013d6eda8908dfe6a477e7f9eda85656ecf5c";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz";
-        sha1 = "9aeafbe4d6ffc6563bf8f8372091628f00779550";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.5.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz";
-        sha1 = "89a3848a0166623b5bc481164b5936ab947e887e";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz";
-        sha1 = "5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz";
-        sha1 = "a35f395e5402822f10d2119f6f8e045e3639a2ce";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_classes___plugin_transform_classes_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_classes___plugin_transform_classes_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz";
-        sha1 = "d094299d9bd680a14a2a0edae38305ad60fb4de9";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz";
-        sha1 = "83a7df6a658865b1c8f641d510c6f3af220216da";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.5.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz";
-        sha1 = "f6c09fdfe3f94516ff074fe877db7bc9ef05855a";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz";
-        sha1 = "361a148bc951444312c69446d76ed1ea8e4450c3";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.5.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz";
-        sha1 = "c5dbf5106bf84cdf691222c0974c12b1df931853";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz";
-        sha1 = "a63868289e5b4007f7054d46491af51435766008";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz";
-        sha1 = "0267fc735e24c808ba173866c6c4d1440fc3c556";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz";
-        sha1 = "e1436116abb0610c2259094848754ac5230922ad";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_literals___plugin_transform_literals_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_literals___plugin_transform_literals_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz";
-        sha1 = "690353e81f9267dad4fd8cfd77eafa86aba53ea1";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz";
-        sha1 = "fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.5.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz";
-        sha1 = "ef00435d46da0a5961aa728a1d2ecff063e4fb91";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.5.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz";
-        sha1 = "425127e6045231360858eeaa47a71d75eded7a74";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.5.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz";
-        sha1 = "e75266a13ef94202db2a0620977756f51d52d249";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz";
-        sha1 = "7678ce75169f0877b8eb2235538c074268dd01ae";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.4.5.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.4.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz";
-        sha1 = "9d269fd28a370258199b4294736813a60bbdd106";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz";
-        sha1 = "18d120438b0cc9ee95a47f2c72bc9768fbed60a5";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz";
-        sha1 = "c70021df834073c65eb613b8679cc4a381d1a9f9";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz";
-        sha1 = "7556cf03f318bd2719fe4c922d2d808be5571e16";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz";
-        sha1 = "03e33f653f5b25c4eb572c98b9485055b389e905";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.4.5.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.4.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz";
-        sha1 = "629dc82512c55cee01341fb27bdfcb210354680f";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz";
-        sha1 = "4792af87c998a49367597d07fedf02636d2e1634";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz";
-        sha1 = "6333aee2f8d6ee7e28615457298934a3b46198f0";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_spread___plugin_transform_spread_7.2.2.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_spread___plugin_transform_spread_7.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz";
-        sha1 = "3103a9abe22f742b6d406ecd3cd49b774919b406";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz";
-        sha1 = "a1e454b5995560a9c1e0d537dfc15061fd2687e1";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz";
-        sha1 = "9d28fea7bbce637fb7612a0750989d8321d4bcb0";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.2.0.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz";
-        sha1 = "117d2bcec2fbf64b4b59d1f9819894682d29f2b2";
-      };
-    }
-    {
-      name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz";
-        sha1 = "ab4634bb4f14d36728bf5978322b35587787970f";
-      };
-    }
-    {
-      name = "_babel_preset_env___preset_env_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_preset_env___preset_env_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.5.5.tgz";
-        sha1 = "bc470b53acaa48df4b8db24a570d6da1fef53c9a";
-      };
-    }
-    {
-      name = "_babel_runtime_corejs3___runtime_corejs3_7.10.2.tgz";
-      path = fetchurl {
-        name = "_babel_runtime_corejs3___runtime_corejs3_7.10.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.10.2.tgz";
-        sha1 = "3511797ddf9a3d6f3ce46b99cc835184817eaa4e";
-      };
-    }
-    {
-      name = "_babel_runtime___runtime_7.7.7.tgz";
-      path = fetchurl {
-        name = "_babel_runtime___runtime_7.7.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.7.tgz";
-        sha1 = "194769ca8d6d7790ec23605af9ee3e42a0aa79cf";
-      };
-    }
-    {
-      name = "_babel_runtime___runtime_7.10.2.tgz";
-      path = fetchurl {
-        name = "_babel_runtime___runtime_7.10.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.2.tgz";
-        sha1 = "d103f21f2602497d38348a32e008637d506db839";
-      };
-    }
-    {
-      name = "_babel_runtime___runtime_7.10.4.tgz";
-      path = fetchurl {
-        name = "_babel_runtime___runtime_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.4.tgz";
-        sha1 = "a6724f1a6b8d2f6ea5236dbfe58c7d7ea9c5eb99";
-      };
-    }
-    {
-      name = "_babel_template___template_7.4.4.tgz";
-      path = fetchurl {
-        name = "_babel_template___template_7.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz";
-        sha1 = "f4b88d1225689a08f5bc3a17483545be9e4ed237";
-      };
-    }
-    {
-      name = "_babel_traverse___traverse_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_traverse___traverse_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz";
-        sha1 = "f664f8f368ed32988cd648da9f72d5ca70f165bb";
-      };
-    }
-    {
-      name = "_babel_types___types_7.5.5.tgz";
-      path = fetchurl {
-        name = "_babel_types___types_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz";
-        sha1 = "97b9f728e182785909aa4ab56264f090a028d18a";
-      };
-    }
-    {
-      name = "_babel_types___types_7.2.2.tgz";
-      path = fetchurl {
-        name = "_babel_types___types_7.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.2.2.tgz";
-        sha1 = "44e10fc24e33af524488b716cdaee5360ea8ed1e";
-      };
-    }
-    {
-      name = "_cnakazawa_watch___watch_1.0.3.tgz";
-      path = fetchurl {
-        name = "_cnakazawa_watch___watch_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz";
-        sha1 = "099139eaec7ebf07a27c1786a3ff64f39464d2ef";
-      };
-    }
-    {
-      name = "_cypress_listr_verbose_renderer___listr_verbose_renderer_0.4.1.tgz";
-      path = fetchurl {
-        name = "_cypress_listr_verbose_renderer___listr_verbose_renderer_0.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/@cypress/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz";
-        sha1 = "a77492f4b11dcc7c446a34b3e28721afd33c642a";
-      };
-    }
-    {
-      name = "_cypress_request___request_2.88.5.tgz";
-      path = fetchurl {
-        name = "_cypress_request___request_2.88.5.tgz";
-        url  = "https://registry.yarnpkg.com/@cypress/request/-/request-2.88.5.tgz";
-        sha1 = "8d7ecd17b53a849cfd5ab06d5abe7d84976375d7";
-      };
-    }
-    {
-      name = "_cypress_xvfb___xvfb_1.2.4.tgz";
-      path = fetchurl {
-        name = "_cypress_xvfb___xvfb_1.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz";
-        sha1 = "2daf42e8275b39f4aa53c14214e557bd14e7748a";
-      };
-    }
-    {
-      name = "_influxdata_clockface___clockface_2.3.4.tgz";
-      path = fetchurl {
-        name = "_influxdata_clockface___clockface_2.3.4.tgz";
-        url  = "https://registry.yarnpkg.com/@influxdata/clockface/-/clockface-2.3.4.tgz";
-        sha1 = "9c496601253e1d49cbeae29a7b9cfb54862785f6";
-      };
-    }
-    {
-      name = "_influxdata_flux_lsp_browser___flux_lsp_browser_0.5.41.tgz";
-      path = fetchurl {
-        name = "_influxdata_flux_lsp_browser___flux_lsp_browser_0.5.41.tgz";
-        url  = "https://registry.yarnpkg.com/@influxdata/flux-lsp-browser/-/flux-lsp-browser-0.5.41.tgz";
-        sha1 = "abf6c5ad253317f34a9217ecfd250d78fe625a83";
-      };
-    }
-    {
-      name = "_influxdata_flux___flux_0.5.1.tgz";
-      path = fetchurl {
-        name = "_influxdata_flux___flux_0.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/@influxdata/flux/-/flux-0.5.1.tgz";
-        sha1 = "e39e7a7af9163fc9494422c8fed77f3ae1b68f56";
-      };
-    }
-    {
-      name = "_influxdata_giraffe___giraffe_0.29.0.tgz";
-      path = fetchurl {
-        name = "_influxdata_giraffe___giraffe_0.29.0.tgz";
-        url  = "https://registry.yarnpkg.com/@influxdata/giraffe/-/giraffe-0.29.0.tgz";
-        sha1 = "0a6a3216b910ae3a1d834d682003f3894d7bc5d6";
-      };
-    }
-    {
-      name = "_influxdata_influx___influx_0.5.5.tgz";
-      path = fetchurl {
-        name = "_influxdata_influx___influx_0.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/@influxdata/influx/-/influx-0.5.5.tgz";
-        sha1 = "ff30862ba3837df8e6e237634e7c844a00c03c08";
-      };
-    }
-    {
-      name = "_influxdata_influxdb_templates___influxdb_templates_0.9.0.tgz";
-      path = fetchurl {
-        name = "_influxdata_influxdb_templates___influxdb_templates_0.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/@influxdata/influxdb-templates/-/influxdb-templates-0.9.0.tgz";
-        sha1 = "d4b1f727c8949147d2ade63f5754425a0d1a0e9d";
-      };
-    }
-    {
-      name = "_influxdata_oats___oats_0.5.0.tgz";
-      path = fetchurl {
-        name = "_influxdata_oats___oats_0.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@influxdata/oats/-/oats-0.5.0.tgz";
-        sha1 = "0fdd308524fa407303ffa6a3d60fe959777dcfcb";
-      };
-    }
-    {
-      name = "_influxdata_react_custom_scrollbars___react_custom_scrollbars_4.3.8.tgz";
-      path = fetchurl {
-        name = "_influxdata_react_custom_scrollbars___react_custom_scrollbars_4.3.8.tgz";
-        url  = "https://registry.yarnpkg.com/@influxdata/react-custom-scrollbars/-/react-custom-scrollbars-4.3.8.tgz";
-        sha1 = "0e2a570860b0d9d8ef134069fe7e16e76e6765d9";
-      };
-    }
-    {
-      name = "_jest_console___console_24.7.1.tgz";
-      path = fetchurl {
-        name = "_jest_console___console_24.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/console/-/console-24.7.1.tgz";
-        sha1 = "32a9e42535a97aedfe037e725bd67e954b459545";
-      };
-    }
-    {
-      name = "_jest_core___core_24.8.0.tgz";
-      path = fetchurl {
-        name = "_jest_core___core_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/core/-/core-24.8.0.tgz";
-        sha1 = "fbbdcd42a41d0d39cddbc9f520c8bab0c33eed5b";
-      };
-    }
-    {
-      name = "_jest_environment___environment_24.8.0.tgz";
-      path = fetchurl {
-        name = "_jest_environment___environment_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/environment/-/environment-24.8.0.tgz";
-        sha1 = "0342261383c776bdd652168f68065ef144af0eac";
-      };
-    }
-    {
-      name = "_jest_fake_timers___fake_timers_24.8.0.tgz";
-      path = fetchurl {
-        name = "_jest_fake_timers___fake_timers_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.8.0.tgz";
-        sha1 = "2e5b80a4f78f284bcb4bd5714b8e10dd36a8d3d1";
-      };
-    }
-    {
-      name = "_jest_reporters___reporters_24.8.0.tgz";
-      path = fetchurl {
-        name = "_jest_reporters___reporters_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.8.0.tgz";
-        sha1 = "075169cd029bddec54b8f2c0fc489fd0b9e05729";
-      };
-    }
-    {
-      name = "_jest_source_map___source_map_24.3.0.tgz";
-      path = fetchurl {
-        name = "_jest_source_map___source_map_24.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.3.0.tgz";
-        sha1 = "563be3aa4d224caf65ff77edc95cd1ca4da67f28";
-      };
-    }
-    {
-      name = "_jest_test_result___test_result_24.8.0.tgz";
-      path = fetchurl {
-        name = "_jest_test_result___test_result_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.8.0.tgz";
-        sha1 = "7675d0aaf9d2484caa65e048d9b467d160f8e9d3";
-      };
-    }
-    {
-      name = "_jest_test_sequencer___test_sequencer_24.8.0.tgz";
-      path = fetchurl {
-        name = "_jest_test_sequencer___test_sequencer_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.8.0.tgz";
-        sha1 = "2f993bcf6ef5eb4e65e8233a95a3320248cf994b";
-      };
-    }
-    {
-      name = "_jest_transform___transform_24.8.0.tgz";
-      path = fetchurl {
-        name = "_jest_transform___transform_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/transform/-/transform-24.8.0.tgz";
-        sha1 = "628fb99dce4f9d254c6fd9341e3eea262e06fef5";
-      };
-    }
-    {
-      name = "_jest_types___types_24.8.0.tgz";
-      path = fetchurl {
-        name = "_jest_types___types_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/types/-/types-24.8.0.tgz";
-        sha1 = "f31e25948c58f0abd8c845ae26fcea1491dea7ad";
-      };
-    }
-    {
-      name = "_jest_types___types_24.9.0.tgz";
-      path = fetchurl {
-        name = "_jest_types___types_24.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz";
-        sha1 = "63cb26cb7500d069e5a389441a7c6ab5e909fc59";
-      };
-    }
-    {
-      name = "_jest_types___types_25.5.0.tgz";
-      path = fetchurl {
-        name = "_jest_types___types_25.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz";
-        sha1 = "4d6a4793f7b9599fc3680877b856a97dbccf2a9d";
-      };
-    }
-    {
-      name = "_samverschueren_stream_to_observable___stream_to_observable_0.3.0.tgz";
-      path = fetchurl {
-        name = "_samverschueren_stream_to_observable___stream_to_observable_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz";
-        sha1 = "ecdf48d532c58ea477acfcab80348424f8d0662f";
-      };
-    }
-    {
-      name = "_testing_library_dom___dom_7.11.0.tgz";
-      path = fetchurl {
-        name = "_testing_library_dom___dom_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.11.0.tgz";
-        sha1 = "db8678bc55aef7cd6091d1510e8d0949d77d79fd";
-      };
-    }
-    {
-      name = "_testing_library_react___react_10.2.1.tgz";
-      path = fetchurl {
-        name = "_testing_library_react___react_10.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/@testing-library/react/-/react-10.2.1.tgz";
-        sha1 = "f0c5ac9072ad54c29672150943f35d6617263f26";
-      };
-    }
-    {
-      name = "_types_anymatch___anymatch_1.3.1.tgz";
-      path = fetchurl {
-        name = "_types_anymatch___anymatch_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz";
-        sha1 = "336badc1beecb9dacc38bea2cf32adf627a8421a";
-      };
-    }
-    {
-      name = "_types_asap___asap_2.0.0.tgz";
-      path = fetchurl {
-        name = "_types_asap___asap_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/asap/-/asap-2.0.0.tgz";
-        sha1 = "d529e9608c83499a62ae08c871c5e62271aa2963";
-      };
-    }
-    {
-      name = "_types_babel__core___babel__core_7.1.2.tgz";
-      path = fetchurl {
-        name = "_types_babel__core___babel__core_7.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.2.tgz";
-        sha1 = "608c74f55928033fce18b99b213c16be4b3d114f";
-      };
-    }
-    {
-      name = "_types_babel__generator___babel__generator_7.0.2.tgz";
-      path = fetchurl {
-        name = "_types_babel__generator___babel__generator_7.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz";
-        sha1 = "d2112a6b21fad600d7674274293c85dce0cb47fc";
-      };
-    }
-    {
-      name = "_types_babel__template___babel__template_7.0.2.tgz";
-      path = fetchurl {
-        name = "_types_babel__template___babel__template_7.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz";
-        sha1 = "4ff63d6b52eddac1de7b975a5223ed32ecea9307";
-      };
-    }
-    {
-      name = "_types_babel__traverse___babel__traverse_7.0.7.tgz";
-      path = fetchurl {
-        name = "_types_babel__traverse___babel__traverse_7.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.7.tgz";
-        sha1 = "2496e9ff56196cc1429c72034e07eab6121b6f3f";
-      };
-    }
-    {
-      name = "_types_cheerio___cheerio_0.22.9.tgz";
-      path = fetchurl {
-        name = "_types_cheerio___cheerio_0.22.9.tgz";
-        url  = "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.9.tgz";
-        sha1 = "b5990152604c2ada749b7f88cab3476f21f39d7b";
-      };
-    }
-    {
-      name = "_types_chroma_js___chroma_js_1.4.0.tgz";
-      path = fetchurl {
-        name = "_types_chroma_js___chroma_js_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/chroma-js/-/chroma-js-1.4.0.tgz";
-        sha1 = "1d215474b54e227bd0204572c0483b98593eabd0";
-      };
-    }
-    {
-      name = "_types_codemirror___codemirror_0.0.56.tgz";
-      path = fetchurl {
-        name = "_types_codemirror___codemirror_0.0.56.tgz";
-        url  = "https://registry.yarnpkg.com/@types/codemirror/-/codemirror-0.0.56.tgz";
-        sha1 = "1fcf68df0d0a49791d843dadda7d94891ac88669";
-      };
-    }
-    {
-      name = "_types_color_name___color_name_1.1.1.tgz";
-      path = fetchurl {
-        name = "_types_color_name___color_name_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz";
-        sha1 = "1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0";
-      };
-    }
-    {
-      name = "_types_d3_color___d3_color_1.2.1.tgz";
-      path = fetchurl {
-        name = "_types_d3_color___d3_color_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/d3-color/-/d3-color-1.2.1.tgz";
-        sha1 = "26141c3c554e320edd40726b793570a3ae57397e";
-      };
-    }
-    {
-      name = "_types_d3_scale___d3_scale_2.0.2.tgz";
-      path = fetchurl {
-        name = "_types_d3_scale___d3_scale_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/d3-scale/-/d3-scale-2.0.2.tgz";
-        sha1 = "61145948aa1a52ab31384766cd013308699112b3";
-      };
-    }
-    {
-      name = "_types_d3_time___d3_time_1.0.9.tgz";
-      path = fetchurl {
-        name = "_types_d3_time___d3_time_1.0.9.tgz";
-        url  = "https://registry.yarnpkg.com/@types/d3-time/-/d3-time-1.0.9.tgz";
-        sha1 = "c2cf05a3cd51f810b8d8a9bbca0c74030d4e535e";
-      };
-    }
-    {
-      name = "_types_enzyme___enzyme_3.1.14.tgz";
-      path = fetchurl {
-        name = "_types_enzyme___enzyme_3.1.14.tgz";
-        url  = "https://registry.yarnpkg.com/@types/enzyme/-/enzyme-3.1.14.tgz";
-        sha1 = "379c26205f6e0e272f3a51d6bbdd50071a9d03a6";
-      };
-    }
-    {
-      name = "_types_eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
-      path = fetchurl {
-        name = "_types_eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz";
-        sha1 = "1ee30d79544ca84d68d4b3cdb0af4f205663dd2d";
-      };
-    }
-    {
-      name = "_types_events___events_3.0.0.tgz";
-      path = fetchurl {
-        name = "_types_events___events_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz";
-        sha1 = "2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7";
-      };
-    }
-    {
-      name = "_types_glob___glob_7.1.1.tgz";
-      path = fetchurl {
-        name = "_types_glob___glob_7.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz";
-        sha1 = "aa59a1c6e3fbc421e07ccd31a944c30eba521575";
-      };
-    }
-    {
-      name = "_types_history___history_4.7.6.tgz";
-      path = fetchurl {
-        name = "_types_history___history_4.7.6.tgz";
-        url  = "https://registry.yarnpkg.com/@types/history/-/history-4.7.6.tgz";
-        sha1 = "ed8fc802c45b8e8f54419c2d054e55c9ea344356";
-      };
-    }
-    {
-      name = "_types_hoist_non_react_statics___hoist_non_react_statics_3.3.1.tgz";
-      path = fetchurl {
-        name = "_types_hoist_non_react_statics___hoist_non_react_statics_3.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz";
-        sha1 = "1124aafe5118cb591977aeb1ceaaed1070eb039f";
-      };
-    }
-    {
-      name = "_types_invariant___invariant_2.2.33.tgz";
-      path = fetchurl {
-        name = "_types_invariant___invariant_2.2.33.tgz";
-        url  = "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.33.tgz";
-        sha1 = "ec5eec29c63bf5e4ca164e9feb3ef7337cdcbadb";
-      };
-    }
-    {
-      name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.1.tgz";
-      path = fetchurl {
-        name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz";
-        sha1 = "42995b446db9a48a11a07ec083499a860e9138ff";
-      };
-    }
-    {
-      name = "_types_istanbul_lib_report___istanbul_lib_report_1.1.1.tgz";
-      path = fetchurl {
-        name = "_types_istanbul_lib_report___istanbul_lib_report_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz";
-        sha1 = "e5471e7fa33c61358dd38426189c037a58433b8c";
-      };
-    }
-    {
-      name = "_types_istanbul_reports___istanbul_reports_1.1.1.tgz";
-      path = fetchurl {
-        name = "_types_istanbul_reports___istanbul_reports_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz";
-        sha1 = "7a8cbf6a406f36c8add871625b278eaf0b0d255a";
-      };
-    }
-    {
-      name = "_types_jest___jest_23.3.3.tgz";
-      path = fetchurl {
-        name = "_types_jest___jest_23.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/jest/-/jest-23.3.3.tgz";
-        sha1 = "246ebcc52771d2327bb8e37aa971b412d9dc4237";
-      };
-    }
-    {
-      name = "_types_json_schema___json_schema_7.0.3.tgz";
-      path = fetchurl {
-        name = "_types_json_schema___json_schema_7.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.3.tgz";
-        sha1 = "bdfd69d61e464dcc81b25159c270d75a73c1a636";
-      };
-    }
-    {
-      name = "_types_json_schema___json_schema_7.0.5.tgz";
-      path = fetchurl {
-        name = "_types_json_schema___json_schema_7.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz";
-        sha1 = "dcce4430e64b443ba8945f0290fb564ad5bac6dd";
-      };
-    }
-    {
-      name = "_types_lodash___lodash_4.14.116.tgz";
-      path = fetchurl {
-        name = "_types_lodash___lodash_4.14.116.tgz";
-        url  = "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.116.tgz";
-        sha1 = "5ccf215653e3e8c786a58390751033a9adca0eb9";
-      };
-    }
-    {
-      name = "_types_memoize_one___memoize_one_4.1.0.tgz";
-      path = fetchurl {
-        name = "_types_memoize_one___memoize_one_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/memoize-one/-/memoize-one-4.1.0.tgz";
-        sha1 = "62119f26055b3193ae43ca1882c5b29b88b71ece";
-      };
-    }
-    {
-      name = "_types_minimatch___minimatch_3.0.3.tgz";
-      path = fetchurl {
-        name = "_types_minimatch___minimatch_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz";
-        sha1 = "3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d";
-      };
-    }
-    {
-      name = "_types_node___node_13.9.2.tgz";
-      path = fetchurl {
-        name = "_types_node___node_13.9.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-13.9.2.tgz";
-        sha1 = "ace1880c03594cc3e80206d96847157d8e7fa349";
-      };
-    }
-    {
-      name = "_types_node___node_12.6.8.tgz";
-      path = fetchurl {
-        name = "_types_node___node_12.6.8.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-12.6.8.tgz";
-        sha1 = "e469b4bf9d1c9832aee4907ba8a051494357c12c";
-      };
-    }
-    {
-      name = "_types_papaparse___papaparse_4.5.9.tgz";
-      path = fetchurl {
-        name = "_types_papaparse___papaparse_4.5.9.tgz";
-        url  = "https://registry.yarnpkg.com/@types/papaparse/-/papaparse-4.5.9.tgz";
-        sha1 = "ff887bd362f57cd0c87320d2de38ac232bb55e81";
-      };
-    }
-    {
-      name = "_types_prop_types___prop_types_15.5.6.tgz";
-      path = fetchurl {
-        name = "_types_prop_types___prop_types_15.5.6.tgz";
-        url  = "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.6.tgz";
-        sha1 = "9c03d3fed70a8d517c191b7734da2879b50ca26c";
-      };
-    }
-    {
-      name = "_types_q___q_1.5.2.tgz";
-      path = fetchurl {
-        name = "_types_q___q_1.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz";
-        sha1 = "690a1475b84f2a884fd07cd797c00f5f31356ea8";
-      };
-    }
-    {
-      name = "_types_qs___qs_6.5.1.tgz";
-      path = fetchurl {
-        name = "_types_qs___qs_6.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/qs/-/qs-6.5.1.tgz";
-        sha1 = "a38f69c62528d56ba7bd1f91335a8004988d72f7";
-      };
-    }
-    {
-      name = "_types_react_datepicker___react_datepicker_2.8.1.tgz";
-      path = fetchurl {
-        name = "_types_react_datepicker___react_datepicker_2.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-datepicker/-/react-datepicker-2.8.1.tgz";
-        sha1 = "37b52655695c2494810e7258528aace79f6a2a46";
-      };
-    }
-    {
-      name = "_types_react_dom___react_dom_16.8.2.tgz";
-      path = fetchurl {
-        name = "_types_react_dom___react_dom_16.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.8.2.tgz";
-        sha1 = "9bd7d33f908b243ff0692846ef36c81d4941ad12";
-      };
-    }
-    {
-      name = "_types_react_grid_layout___react_grid_layout_0.16.5.tgz";
-      path = fetchurl {
-        name = "_types_react_grid_layout___react_grid_layout_0.16.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-grid-layout/-/react-grid-layout-0.16.5.tgz";
-        sha1 = "ee23e1f9a0f2d00fc0bf91a5ad12b5c9c6b548df";
-      };
-    }
-    {
-      name = "_types_react_redux___react_redux_7.1.9.tgz";
-      path = fetchurl {
-        name = "_types_react_redux___react_redux_7.1.9.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.9.tgz";
-        sha1 = "280c13565c9f13ceb727ec21e767abe0e9b4aec3";
-      };
-    }
-    {
-      name = "_types_react_router_dom___react_router_dom_5.1.5.tgz";
-      path = fetchurl {
-        name = "_types_react_router_dom___react_router_dom_5.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.1.5.tgz";
-        sha1 = "7c334a2ea785dbad2b2dcdd83d2cf3d9973da090";
-      };
-    }
-    {
-      name = "_types_react_router___react_router_5.1.8.tgz";
-      path = fetchurl {
-        name = "_types_react_router___react_router_5.1.8.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.8.tgz";
-        sha1 = "4614e5ba7559657438e17766bb95ef6ed6acc3fa";
-      };
-    }
-    {
-      name = "_types_react_virtualized___react_virtualized_9.18.7.tgz";
-      path = fetchurl {
-        name = "_types_react_virtualized___react_virtualized_9.18.7.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-virtualized/-/react-virtualized-9.18.7.tgz";
-        sha1 = "8703d8904236819facff90b8b320f29233160c90";
-      };
-    }
-    {
-      name = "_types_react___react_16.8.3.tgz";
-      path = fetchurl {
-        name = "_types_react___react_16.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react/-/react-16.8.3.tgz";
-        sha1 = "7b67956f682bea30a5a09b3242c0784ff196c848";
-      };
-    }
-    {
-      name = "_types_react___react_16.9.11.tgz";
-      path = fetchurl {
-        name = "_types_react___react_16.9.11.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react/-/react-16.9.11.tgz";
-        sha1 = "70e0b7ad79058a7842f25ccf2999807076ada120";
-      };
-    }
-    {
-      name = "_types_shallowequal___shallowequal_1.1.1.tgz";
-      path = fetchurl {
-        name = "_types_shallowequal___shallowequal_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/shallowequal/-/shallowequal-1.1.1.tgz";
-        sha1 = "aad262bb3f2b1257d94c71d545268d592575c9b1";
-      };
-    }
-    {
-      name = "_types_sinonjs__fake_timers___sinonjs__fake_timers_6.0.1.tgz";
-      path = fetchurl {
-        name = "_types_sinonjs__fake_timers___sinonjs__fake_timers_6.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz";
-        sha1 = "681df970358c82836b42f989188d133e218c458e";
-      };
-    }
-    {
-      name = "_types_sizzle___sizzle_2.3.2.tgz";
-      path = fetchurl {
-        name = "_types_sizzle___sizzle_2.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.2.tgz";
-        sha1 = "a811b8c18e2babab7d542b3365887ae2e4d9de47";
-      };
-    }
-    {
-      name = "_types_stack_utils___stack_utils_1.0.1.tgz";
-      path = fetchurl {
-        name = "_types_stack_utils___stack_utils_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz";
-        sha1 = "0a851d3bd96498fa25c33ab7278ed3bd65f06c3e";
-      };
-    }
-    {
-      name = "_types_tapable___tapable_1.0.4.tgz";
-      path = fetchurl {
-        name = "_types_tapable___tapable_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.4.tgz";
-        sha1 = "b4ffc7dc97b498c969b360a41eee247f82616370";
-      };
-    }
-    {
-      name = "_types_text_encoding___text_encoding_0.0.32.tgz";
-      path = fetchurl {
-        name = "_types_text_encoding___text_encoding_0.0.32.tgz";
-        url  = "https://registry.yarnpkg.com/@types/text-encoding/-/text-encoding-0.0.32.tgz";
-        sha1 = "52289b320a406850b14f08f48b475ca021218048";
-      };
-    }
-    {
-      name = "_types_uglify_js___uglify_js_3.0.4.tgz";
-      path = fetchurl {
-        name = "_types_uglify_js___uglify_js_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.0.4.tgz";
-        sha1 = "96beae23df6f561862a830b4288a49e86baac082";
-      };
-    }
-    {
-      name = "_types_uuid___uuid_3.4.4.tgz";
-      path = fetchurl {
-        name = "_types_uuid___uuid_3.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/@types/uuid/-/uuid-3.4.4.tgz";
-        sha1 = "7af69360fa65ef0decb41fd150bf4ca5c0cefdf5";
-      };
-    }
-    {
-      name = "_types_webpack_env___webpack_env_1.15.2.tgz";
-      path = fetchurl {
-        name = "_types_webpack_env___webpack_env_1.15.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/webpack-env/-/webpack-env-1.15.2.tgz";
-        sha1 = "927997342bb9f4a5185a86e6579a0a18afc33b0a";
-      };
-    }
-    {
-      name = "_types_webpack___webpack_4.4.35.tgz";
-      path = fetchurl {
-        name = "_types_webpack___webpack_4.4.35.tgz";
-        url  = "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.4.35.tgz";
-        sha1 = "b7088eb2d471d5645e5503d272783cafa753583b";
-      };
-    }
-    {
-      name = "_types_yargs_parser___yargs_parser_13.1.0.tgz";
-      path = fetchurl {
-        name = "_types_yargs_parser___yargs_parser_13.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.1.0.tgz";
-        sha1 = "c563aa192f39350a1d18da36c5a8da382bbd8228";
-      };
-    }
-    {
-      name = "_types_yargs___yargs_12.0.12.tgz";
-      path = fetchurl {
-        name = "_types_yargs___yargs_12.0.12.tgz";
-        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.12.tgz";
-        sha1 = "45dd1d0638e8c8f153e87d296907659296873916";
-      };
-    }
-    {
-      name = "_types_yargs___yargs_13.0.3.tgz";
-      path = fetchurl {
-        name = "_types_yargs___yargs_13.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.3.tgz";
-        sha1 = "76482af3981d4412d65371a318f992d33464a380";
-      };
-    }
-    {
-      name = "_types_yargs___yargs_15.0.5.tgz";
-      path = fetchurl {
-        name = "_types_yargs___yargs_15.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz";
-        sha1 = "947e9a6561483bdee9adffc983e91a6902af8b79";
-      };
-    }
-    {
-      name = "_typescript_eslint_eslint_plugin___eslint_plugin_2.6.0.tgz";
-      path = fetchurl {
-        name = "_typescript_eslint_eslint_plugin___eslint_plugin_2.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.6.0.tgz";
-        sha1 = "e82ed43fc4527b21bfe35c20a2d6e4ed49fc7957";
-      };
-    }
-    {
-      name = "_typescript_eslint_experimental_utils___experimental_utils_2.6.0.tgz";
-      path = fetchurl {
-        name = "_typescript_eslint_experimental_utils___experimental_utils_2.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.6.0.tgz";
-        sha1 = "ed70bef72822bff54031ff0615fc888b9e2b6e8a";
-      };
-    }
-    {
-      name = "_typescript_eslint_parser___parser_2.6.0.tgz";
-      path = fetchurl {
-        name = "_typescript_eslint_parser___parser_2.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.6.0.tgz";
-        sha1 = "5106295c6a7056287b4719e24aae8d6293d5af49";
-      };
-    }
-    {
-      name = "_typescript_eslint_typescript_estree___typescript_estree_2.6.0.tgz";
-      path = fetchurl {
-        name = "_typescript_eslint_typescript_estree___typescript_estree_2.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.6.0.tgz";
-        sha1 = "d3e9d8e001492e2b9124c4d4bd4e7f03c0fd7254";
-      };
-    }
-    {
-      name = "_use_it_event_listener___event_listener_0.1.3.tgz";
-      path = fetchurl {
-        name = "_use_it_event_listener___event_listener_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/@use-it/event-listener/-/event-listener-0.1.3.tgz";
-        sha1 = "a9920b2819d211cf55e68e830997546eec6886d3";
-      };
-    }
-    {
-      name = "_webassemblyjs_ast___ast_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_ast___ast_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz";
-        sha1 = "51b1c5fe6576a34953bf4b253df9f0d490d9e359";
-      };
-    }
-    {
-      name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_floating_point_hex_parser___floating_point_hex_parser_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz";
-        sha1 = "1ba926a2923613edce496fd5b02e8ce8a5f49721";
-      };
-    }
-    {
-      name = "_webassemblyjs_helper_api_error___helper_api_error_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_helper_api_error___helper_api_error_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz";
-        sha1 = "c49dad22f645227c5edb610bdb9697f1aab721f7";
-      };
-    }
-    {
-      name = "_webassemblyjs_helper_buffer___helper_buffer_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_helper_buffer___helper_buffer_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz";
-        sha1 = "fea93e429863dd5e4338555f42292385a653f204";
-      };
-    }
-    {
-      name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_helper_code_frame___helper_code_frame_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz";
-        sha1 = "9a740ff48e3faa3022b1dff54423df9aa293c25e";
-      };
-    }
-    {
-      name = "_webassemblyjs_helper_fsm___helper_fsm_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_helper_fsm___helper_fsm_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz";
-        sha1 = "ba0b7d3b3f7e4733da6059c9332275d860702452";
-      };
-    }
-    {
-      name = "_webassemblyjs_helper_module_context___helper_module_context_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_helper_module_context___helper_module_context_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz";
-        sha1 = "def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245";
-      };
-    }
-    {
-      name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_helper_wasm_bytecode___helper_wasm_bytecode_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz";
-        sha1 = "537a750eddf5c1e932f3744206551c91c1b93e61";
-      };
-    }
-    {
-      name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_helper_wasm_section___helper_wasm_section_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz";
-        sha1 = "74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf";
-      };
-    }
-    {
-      name = "_webassemblyjs_ieee754___ieee754_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_ieee754___ieee754_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz";
-        sha1 = "712329dbef240f36bf57bd2f7b8fb9bf4154421e";
-      };
-    }
-    {
-      name = "_webassemblyjs_leb128___leb128_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_leb128___leb128_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz";
-        sha1 = "044edeb34ea679f3e04cd4fd9824d5e35767ae10";
-      };
-    }
-    {
-      name = "_webassemblyjs_utf8___utf8_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_utf8___utf8_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz";
-        sha1 = "a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc";
-      };
-    }
-    {
-      name = "_webassemblyjs_wasm_edit___wasm_edit_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_wasm_edit___wasm_edit_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz";
-        sha1 = "962da12aa5acc1c131c81c4232991c82ce56e01a";
-      };
-    }
-    {
-      name = "_webassemblyjs_wasm_gen___wasm_gen_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_wasm_gen___wasm_gen_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz";
-        sha1 = "54840766c2c1002eb64ed1abe720aded714f98bc";
-      };
-    }
-    {
-      name = "_webassemblyjs_wasm_opt___wasm_opt_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_wasm_opt___wasm_opt_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz";
-        sha1 = "b24d9f6ba50394af1349f510afa8ffcb8a63d264";
-      };
-    }
-    {
-      name = "_webassemblyjs_wasm_parser___wasm_parser_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_wasm_parser___wasm_parser_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz";
-        sha1 = "21576f0ec88b91427357b8536383668ef7c66b8d";
-      };
-    }
-    {
-      name = "_webassemblyjs_wast_parser___wast_parser_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_wast_parser___wast_parser_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz";
-        sha1 = "e10eecd542d0e7bd394f6827c49f3df6d4eefb8c";
-      };
-    }
-    {
-      name = "_webassemblyjs_wast_printer___wast_printer_1.8.5.tgz";
-      path = fetchurl {
-        name = "_webassemblyjs_wast_printer___wast_printer_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz";
-        sha1 = "114bbc481fd10ca0e23b3560fa812748b0bae5bc";
-      };
-    }
-    {
-      name = "_xtuc_ieee754___ieee754_1.2.0.tgz";
-      path = fetchurl {
-        name = "_xtuc_ieee754___ieee754_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz";
-        sha1 = "eef014a3145ae477a1cbc00cd1e552336dceb790";
-      };
-    }
-    {
-      name = "_xtuc_long___long_4.2.2.tgz";
-      path = fetchurl {
-        name = "_xtuc_long___long_4.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz";
-        sha1 = "d291c6a4e97989b5c61d9acf396ae4fe133a718d";
-      };
-    }
-    {
-      name = "JSV___JSV_4.0.2.tgz";
-      path = fetchurl {
-        name = "JSV___JSV_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz";
-        sha1 = "d077f6825571f82132f9dffaed587b4029feff57";
-      };
-    }
-    {
-      name = "abab___abab_1.0.4.tgz";
-      path = fetchurl {
-        name = "abab___abab_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz";
-        sha1 = "5faad9c2c07f60dd76770f71cf025b62a63cfd4e";
-      };
-    }
-    {
-      name = "abab___abab_2.0.0.tgz";
-      path = fetchurl {
-        name = "abab___abab_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz";
-        sha1 = "aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f";
-      };
-    }
-    {
-      name = "abortcontroller_polyfill___abortcontroller_polyfill_1.3.0.tgz";
-      path = fetchurl {
-        name = "abortcontroller_polyfill___abortcontroller_polyfill_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.3.0.tgz";
-        sha1 = "de69af32ae926c210b7efbcc29bf644ee4838b00";
-      };
-    }
-    {
-      name = "accepts___accepts_1.3.7.tgz";
-      path = fetchurl {
-        name = "accepts___accepts_1.3.7.tgz";
-        url  = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz";
-        sha1 = "531bc726517a3b2b41f850021c6cc15eaab507cd";
-      };
-    }
-    {
-      name = "acorn_globals___acorn_globals_3.1.0.tgz";
-      path = fetchurl {
-        name = "acorn_globals___acorn_globals_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-3.1.0.tgz";
-        sha1 = "fd8270f71fbb4996b004fa880ee5d46573a731bf";
-      };
-    }
-    {
-      name = "acorn_globals___acorn_globals_4.3.2.tgz";
-      path = fetchurl {
-        name = "acorn_globals___acorn_globals_4.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.2.tgz";
-        sha1 = "4e2c2313a597fd589720395f6354b41cd5ec8006";
-      };
-    }
-    {
-      name = "acorn_jsx___acorn_jsx_5.1.0.tgz";
-      path = fetchurl {
-        name = "acorn_jsx___acorn_jsx_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz";
-        sha1 = "294adb71b57398b0680015f0a38c563ee1db5384";
-      };
-    }
-    {
-      name = "acorn_walk___acorn_walk_6.2.0.tgz";
-      path = fetchurl {
-        name = "acorn_walk___acorn_walk_6.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz";
-        sha1 = "123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c";
-      };
-    }
-    {
-      name = "acorn___acorn_4.0.13.tgz";
-      path = fetchurl {
-        name = "acorn___acorn_4.0.13.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz";
-        sha1 = "105495ae5361d697bd195c825192e1ad7f253787";
-      };
-    }
-    {
-      name = "acorn___acorn_5.7.3.tgz";
-      path = fetchurl {
-        name = "acorn___acorn_5.7.3.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz";
-        sha1 = "67aa231bf8812974b85235a96771eb6bd07ea279";
-      };
-    }
-    {
-      name = "acorn___acorn_6.2.1.tgz";
-      path = fetchurl {
-        name = "acorn___acorn_6.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.2.1.tgz";
-        sha1 = "3ed8422d6dec09e6121cc7a843ca86a330a86b51";
-      };
-    }
-    {
-      name = "acorn___acorn_6.0.6.tgz";
-      path = fetchurl {
-        name = "acorn___acorn_6.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.0.6.tgz";
-        sha1 = "cd75181670d5b99bdb1b1c993941d3a239ab1f56";
-      };
-    }
-    {
-      name = "acorn___acorn_6.3.0.tgz";
-      path = fetchurl {
-        name = "acorn___acorn_6.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz";
-        sha1 = "0087509119ffa4fc0a0041d1e93a417e68cb856e";
-      };
-    }
-    {
-      name = "acorn___acorn_6.4.1.tgz";
-      path = fetchurl {
-        name = "acorn___acorn_6.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz";
-        sha1 = "531e58ba3f51b9dacb9a6646ca4debf5b14ca474";
-      };
-    }
-    {
-      name = "acorn___acorn_7.1.0.tgz";
-      path = fetchurl {
-        name = "acorn___acorn_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz";
-        sha1 = "949d36f2c292535da602283586c2477c57eb2d6c";
-      };
-    }
-    {
-      name = "add_px_to_style___add_px_to_style_1.0.0.tgz";
-      path = fetchurl {
-        name = "add_px_to_style___add_px_to_style_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/add-px-to-style/-/add-px-to-style-1.0.0.tgz";
-        sha1 = "d0c135441fa8014a8137904531096f67f28f263a";
-      };
-    }
-    {
-      name = "aggregate_error___aggregate_error_3.0.1.tgz";
-      path = fetchurl {
-        name = "aggregate_error___aggregate_error_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz";
-        sha1 = "db2fe7246e536f40d9b5442a39e117d7dd6a24e0";
-      };
-    }
-    {
-      name = "ajv_errors___ajv_errors_1.0.1.tgz";
-      path = fetchurl {
-        name = "ajv_errors___ajv_errors_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz";
-        sha1 = "f35986aceb91afadec4102fbd85014950cefa64d";
-      };
-    }
-    {
-      name = "ajv_keywords___ajv_keywords_3.4.1.tgz";
-      path = fetchurl {
-        name = "ajv_keywords___ajv_keywords_3.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz";
-        sha1 = "ef916e271c64ac12171fd8384eaae6b2345854da";
-      };
-    }
-    {
-      name = "ajv___ajv_6.12.0.tgz";
-      path = fetchurl {
-        name = "ajv___ajv_6.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz";
-        sha1 = "06d60b96d87b8454a5adaba86e7854da629db4b7";
-      };
-    }
-    {
-      name = "ajv___ajv_6.10.2.tgz";
-      path = fetchurl {
-        name = "ajv___ajv_6.10.2.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz";
-        sha1 = "d3cea04d6b017b2894ad69040fec8b623eb4bd52";
-      };
-    }
-    {
-      name = "ajv___ajv_6.12.2.tgz";
-      path = fetchurl {
-        name = "ajv___ajv_6.12.2.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz";
-        sha1 = "c629c5eced17baf314437918d2da88c99d5958cd";
-      };
-    }
-    {
-      name = "ajv___ajv_6.7.0.tgz";
-      path = fetchurl {
-        name = "ajv___ajv_6.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.7.0.tgz";
-        sha1 = "e3ce7bb372d6577bb1839f1dfdfcbf5ad2948d96";
-      };
-    }
-    {
-      name = "ajv___ajv_6.9.1.tgz";
-      path = fetchurl {
-        name = "ajv___ajv_6.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.9.1.tgz";
-        sha1 = "a4d3683d74abc5670e75f0b16520f70a20ea8dc1";
-      };
-    }
-    {
-      name = "align_text___align_text_0.1.4.tgz";
-      path = fetchurl {
-        name = "align_text___align_text_0.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz";
-        sha1 = "0cd90a561093f35d0a99256c22b7069433fad117";
-      };
-    }
-    {
-      name = "ally.js___ally.js_1.4.1.tgz";
-      path = fetchurl {
-        name = "ally.js___ally.js_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/ally.js/-/ally.js-1.4.1.tgz";
-        sha1 = "9fb7e6ba58efac4ee9131cb29aa9ee3b540bcf1e";
-      };
-    }
-    {
-      name = "alphanum_sort___alphanum_sort_1.0.2.tgz";
-      path = fetchurl {
-        name = "alphanum_sort___alphanum_sort_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz";
-        sha1 = "97a1119649b211ad33691d9f9f486a8ec9fbe0a3";
-      };
-    }
-    {
-      name = "amdefine___amdefine_1.0.1.tgz";
-      path = fetchurl {
-        name = "amdefine___amdefine_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz";
-        sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5";
-      };
-    }
-    {
-      name = "ansi_colors___ansi_colors_3.2.4.tgz";
-      path = fetchurl {
-        name = "ansi_colors___ansi_colors_3.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz";
-        sha1 = "e3a3da4bfbae6c86a9c285625de124a234026fbf";
-      };
-    }
-    {
-      name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
-      path = fetchurl {
-        name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
-        sha1 = "8780b98ff9dbf5638152d1f1fe5c1d7b4442976b";
-      };
-    }
-    {
-      name = "ansi_escapes___ansi_escapes_4.2.1.tgz";
-      path = fetchurl {
-        name = "ansi_escapes___ansi_escapes_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.2.1.tgz";
-        sha1 = "4dccdb846c3eee10f6d64dea66273eab90c37228";
-      };
-    }
-    {
-      name = "ansi_html___ansi_html_0.0.7.tgz";
-      path = fetchurl {
-        name = "ansi_html___ansi_html_0.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz";
-        sha1 = "813584021962a9e9e6fd039f940d12f56ca7859e";
-      };
-    }
-    {
-      name = "ansi_regex___ansi_regex_2.1.1.tgz";
-      path = fetchurl {
-        name = "ansi_regex___ansi_regex_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz";
-        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
-      };
-    }
-    {
-      name = "ansi_regex___ansi_regex_3.0.0.tgz";
-      path = fetchurl {
-        name = "ansi_regex___ansi_regex_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz";
-        sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
-      };
-    }
-    {
-      name = "ansi_regex___ansi_regex_4.1.0.tgz";
-      path = fetchurl {
-        name = "ansi_regex___ansi_regex_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz";
-        sha1 = "8b9f8f08cf1acb843756a839ca8c7e3168c51997";
-      };
-    }
-    {
-      name = "ansi_regex___ansi_regex_5.0.0.tgz";
-      path = fetchurl {
-        name = "ansi_regex___ansi_regex_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz";
-        sha1 = "388539f55179bf39339c81af30a654d69f87cb75";
-      };
-    }
-    {
-      name = "ansi_styles___ansi_styles_2.2.1.tgz";
-      path = fetchurl {
-        name = "ansi_styles___ansi_styles_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz";
-        sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
-      };
-    }
-    {
-      name = "ansi_styles___ansi_styles_3.2.1.tgz";
-      path = fetchurl {
-        name = "ansi_styles___ansi_styles_3.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
-        sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d";
-      };
-    }
-    {
-      name = "ansi_styles___ansi_styles_4.2.1.tgz";
-      path = fetchurl {
-        name = "ansi_styles___ansi_styles_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz";
-        sha1 = "90ae75c424d008d2624c5bf29ead3177ebfcf359";
-      };
-    }
-    {
-      name = "any_observable___any_observable_0.3.0.tgz";
-      path = fetchurl {
-        name = "any_observable___any_observable_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz";
-        sha1 = "af933475e5806a67d0d7df090dd5e8bef65d119b";
-      };
-    }
-    {
-      name = "anymatch___anymatch_2.0.0.tgz";
-      path = fetchurl {
-        name = "anymatch___anymatch_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz";
-        sha1 = "bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb";
-      };
-    }
-    {
-      name = "anymatch___anymatch_3.0.3.tgz";
-      path = fetchurl {
-        name = "anymatch___anymatch_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.0.3.tgz";
-        sha1 = "2fb624fe0e84bccab00afee3d0006ed310f22f09";
-      };
-    }
-    {
-      name = "aproba___aproba_1.2.0.tgz";
-      path = fetchurl {
-        name = "aproba___aproba_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz";
-        sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a";
-      };
-    }
-    {
-      name = "arch___arch_2.1.2.tgz";
-      path = fetchurl {
-        name = "arch___arch_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/arch/-/arch-2.1.2.tgz";
-        sha1 = "0c52bbe7344bb4fa260c443d2cbad9c00ff2f0bf";
-      };
-    }
-    {
-      name = "arg___arg_4.1.1.tgz";
-      path = fetchurl {
-        name = "arg___arg_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/arg/-/arg-4.1.1.tgz";
-        sha1 = "485f8e7c390ce4c5f78257dbea80d4be11feda4c";
-      };
-    }
-    {
-      name = "argparse___argparse_1.0.10.tgz";
-      path = fetchurl {
-        name = "argparse___argparse_1.0.10.tgz";
-        url  = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
-        sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
-      };
-    }
-    {
-      name = "aria_query___aria_query_4.0.2.tgz";
-      path = fetchurl {
-        name = "aria_query___aria_query_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/aria-query/-/aria-query-4.0.2.tgz";
-        sha1 = "250687b4ccde1ab86d127da0432ae3552fc7b145";
-      };
-    }
-    {
-      name = "arr_diff___arr_diff_4.0.0.tgz";
-      path = fetchurl {
-        name = "arr_diff___arr_diff_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz";
-        sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
-      };
-    }
-    {
-      name = "arr_flatten___arr_flatten_1.1.0.tgz";
-      path = fetchurl {
-        name = "arr_flatten___arr_flatten_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz";
-        sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1";
-      };
-    }
-    {
-      name = "arr_union___arr_union_3.1.0.tgz";
-      path = fetchurl {
-        name = "arr_union___arr_union_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz";
-        sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
-      };
-    }
-    {
-      name = "array_equal___array_equal_1.0.0.tgz";
-      path = fetchurl {
-        name = "array_equal___array_equal_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz";
-        sha1 = "8c2a5ef2472fd9ea742b04c77a75093ba2757c93";
-      };
-    }
-    {
-      name = "array_flatten___array_flatten_1.1.1.tgz";
-      path = fetchurl {
-        name = "array_flatten___array_flatten_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz";
-        sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
-      };
-    }
-    {
-      name = "array_flatten___array_flatten_2.1.2.tgz";
-      path = fetchurl {
-        name = "array_flatten___array_flatten_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz";
-        sha1 = "24ef80a28c1a893617e2149b0c6d0d788293b099";
-      };
-    }
-    {
-      name = "array_includes___array_includes_3.0.3.tgz";
-      path = fetchurl {
-        name = "array_includes___array_includes_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz";
-        sha1 = "184b48f62d92d7452bb31b323165c7f8bd02266d";
-      };
-    }
-    {
-      name = "array_union___array_union_1.0.2.tgz";
-      path = fetchurl {
-        name = "array_union___array_union_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz";
-        sha1 = "9a34410e4f4e3da23dea375be5be70f24778ec39";
-      };
-    }
-    {
-      name = "array_uniq___array_uniq_1.0.3.tgz";
-      path = fetchurl {
-        name = "array_uniq___array_uniq_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz";
-        sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6";
-      };
-    }
-    {
-      name = "array_unique___array_unique_0.3.2.tgz";
-      path = fetchurl {
-        name = "array_unique___array_unique_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz";
-        sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
-      };
-    }
-    {
-      name = "array.prototype.flat___array.prototype.flat_1.2.1.tgz";
-      path = fetchurl {
-        name = "array.prototype.flat___array.prototype.flat_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz";
-        sha1 = "812db8f02cad24d3fab65dd67eabe3b8903494a4";
-      };
-    }
-    {
-      name = "asap___asap_2.0.6.tgz";
-      path = fetchurl {
-        name = "asap___asap_2.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz";
-        sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46";
-      };
-    }
-    {
-      name = "asn1.js___asn1.js_4.10.1.tgz";
-      path = fetchurl {
-        name = "asn1.js___asn1.js_4.10.1.tgz";
-        url  = "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz";
-        sha1 = "b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0";
-      };
-    }
-    {
-      name = "asn1___asn1_0.2.4.tgz";
-      path = fetchurl {
-        name = "asn1___asn1_0.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
-        sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
-      };
-    }
-    {
-      name = "assert_plus___assert_plus_1.0.0.tgz";
-      path = fetchurl {
-        name = "assert_plus___assert_plus_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
-        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
-      };
-    }
-    {
-      name = "assert___assert_1.5.0.tgz";
-      path = fetchurl {
-        name = "assert___assert_1.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz";
-        sha1 = "55c109aaf6e0aefdb3dc4b71240c70bf574b18eb";
-      };
-    }
-    {
-      name = "assign_symbols___assign_symbols_1.0.0.tgz";
-      path = fetchurl {
-        name = "assign_symbols___assign_symbols_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz";
-        sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
-      };
-    }
-    {
-      name = "astral_regex___astral_regex_1.0.0.tgz";
-      path = fetchurl {
-        name = "astral_regex___astral_regex_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz";
-        sha1 = "6c8c3fb827dd43ee3918f27b82782ab7658a6fd9";
-      };
-    }
-    {
-      name = "async_each___async_each_1.0.3.tgz";
-      path = fetchurl {
-        name = "async_each___async_each_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz";
-        sha1 = "b727dbf87d7651602f06f4d4ac387f47d91b0cbf";
-      };
-    }
-    {
-      name = "async_limiter___async_limiter_1.0.0.tgz";
-      path = fetchurl {
-        name = "async_limiter___async_limiter_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz";
-        sha1 = "78faed8c3d074ab81f22b4e985d79e8738f720f8";
-      };
-    }
-    {
-      name = "async___async_2.6.3.tgz";
-      path = fetchurl {
-        name = "async___async_2.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz";
-        sha1 = "d72625e2344a3656e3a3ad4fa749fa83299d82ff";
-      };
-    }
-    {
-      name = "async___async_3.2.0.tgz";
-      path = fetchurl {
-        name = "async___async_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz";
-        sha1 = "b3a2685c5ebb641d3de02d161002c60fc9f85720";
-      };
-    }
-    {
-      name = "async___async_0.2.10.tgz";
-      path = fetchurl {
-        name = "async___async_0.2.10.tgz";
-        url  = "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz";
-        sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
-      };
-    }
-    {
-      name = "asynckit___asynckit_0.4.0.tgz";
-      path = fetchurl {
-        name = "asynckit___asynckit_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
-        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
-      };
-    }
-    {
-      name = "atoa___atoa_1.0.0.tgz";
-      path = fetchurl {
-        name = "atoa___atoa_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/atoa/-/atoa-1.0.0.tgz";
-        sha1 = "0cc0e91a480e738f923ebc103676471779b34a49";
-      };
-    }
-    {
-      name = "atob___atob_2.1.2.tgz";
-      path = fetchurl {
-        name = "atob___atob_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz";
-        sha1 = "6d9517eb9e030d2436666651e86bd9f6f13533c9";
-      };
-    }
-    {
-      name = "auth0_js___auth0_js_9.12.2.tgz";
-      path = fetchurl {
-        name = "auth0_js___auth0_js_9.12.2.tgz";
-        url  = "https://registry.yarnpkg.com/auth0-js/-/auth0-js-9.12.2.tgz";
-        sha1 = "8227259a94e8a47eecf8d7a630d99669049833a6";
-      };
-    }
-    {
-      name = "autoprefixer___autoprefixer_6.7.7.tgz";
-      path = fetchurl {
-        name = "autoprefixer___autoprefixer_6.7.7.tgz";
-        url  = "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz";
-        sha1 = "1dbd1c835658e35ce3f9984099db00585c782014";
-      };
-    }
-    {
-      name = "aws_sign2___aws_sign2_0.7.0.tgz";
-      path = fetchurl {
-        name = "aws_sign2___aws_sign2_0.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
-        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
-      };
-    }
-    {
-      name = "aws4___aws4_1.8.0.tgz";
-      path = fetchurl {
-        name = "aws4___aws4_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz";
-        sha1 = "f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f";
-      };
-    }
-    {
-      name = "axios___axios_0.19.0.tgz";
-      path = fetchurl {
-        name = "axios___axios_0.19.0.tgz";
-        url  = "https://registry.yarnpkg.com/axios/-/axios-0.19.0.tgz";
-        sha1 = "8e09bff3d9122e133f7b8101c8fbdd00ed3d2ab8";
-      };
-    }
-    {
-      name = "babel_code_frame___babel_code_frame_6.26.0.tgz";
-      path = fetchurl {
-        name = "babel_code_frame___babel_code_frame_6.26.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz";
-        sha1 = "63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b";
-      };
-    }
-    {
-      name = "babel_jest___babel_jest_24.8.0.tgz";
-      path = fetchurl {
-        name = "babel_jest___babel_jest_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.8.0.tgz";
-        sha1 = "5c15ff2b28e20b0f45df43fe6b7f2aae93dba589";
-      };
-    }
-    {
-      name = "babel_loader___babel_loader_8.0.6.tgz";
-      path = fetchurl {
-        name = "babel_loader___babel_loader_8.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz";
-        sha1 = "e33bdb6f362b03f4bb141a0c21ab87c501b70dfb";
-      };
-    }
-    {
-      name = "babel_plugin_dynamic_import_node___babel_plugin_dynamic_import_node_2.3.0.tgz";
-      path = fetchurl {
-        name = "babel_plugin_dynamic_import_node___babel_plugin_dynamic_import_node_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz";
-        sha1 = "f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f";
-      };
-    }
-    {
-      name = "babel_plugin_istanbul___babel_plugin_istanbul_5.2.0.tgz";
-      path = fetchurl {
-        name = "babel_plugin_istanbul___babel_plugin_istanbul_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz";
-        sha1 = "df4ade83d897a92df069c4d9a25cf2671293c854";
-      };
-    }
-    {
-      name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_24.6.0.tgz";
-      path = fetchurl {
-        name = "babel_plugin_jest_hoist___babel_plugin_jest_hoist_24.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.6.0.tgz";
-        sha1 = "f7f7f7ad150ee96d7a5e8e2c5da8319579e78019";
-      };
-    }
-    {
-      name = "babel_polyfill___babel_polyfill_6.26.0.tgz";
-      path = fetchurl {
-        name = "babel_polyfill___babel_polyfill_6.26.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz";
-        sha1 = "379937abc67d7895970adc621f284cd966cf2153";
-      };
-    }
-    {
-      name = "babel_preset_jest___babel_preset_jest_24.6.0.tgz";
-      path = fetchurl {
-        name = "babel_preset_jest___babel_preset_jest_24.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.6.0.tgz";
-        sha1 = "66f06136eefce87797539c0d63f1769cc3915984";
-      };
-    }
-    {
-      name = "babel_runtime___babel_runtime_6.26.0.tgz";
-      path = fetchurl {
-        name = "babel_runtime___babel_runtime_6.26.0.tgz";
-        url  = "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz";
-        sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe";
-      };
-    }
-    {
-      name = "bail___bail_1.0.3.tgz";
-      path = fetchurl {
-        name = "bail___bail_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/bail/-/bail-1.0.3.tgz";
-        sha1 = "63cfb9ddbac829b02a3128cd53224be78e6c21a3";
-      };
-    }
-    {
-      name = "balanced_match___balanced_match_1.0.0.tgz";
-      path = fetchurl {
-        name = "balanced_match___balanced_match_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
-        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
-      };
-    }
-    {
-      name = "base64_js___base64_js_1.3.1.tgz";
-      path = fetchurl {
-        name = "base64_js___base64_js_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz";
-        sha1 = "58ece8cb75dd07e71ed08c736abc5fac4dbf8df1";
-      };
-    }
-    {
-      name = "base___base_0.11.2.tgz";
-      path = fetchurl {
-        name = "base___base_0.11.2.tgz";
-        url  = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz";
-        sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f";
-      };
-    }
-    {
-      name = "batch___batch_0.6.1.tgz";
-      path = fetchurl {
-        name = "batch___batch_0.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz";
-        sha1 = "dc34314f4e679318093fc760272525f94bf25c16";
-      };
-    }
-    {
-      name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
-      path = fetchurl {
-        name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
-        sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
-      };
-    }
-    {
-      name = "bfj___bfj_6.1.2.tgz";
-      path = fetchurl {
-        name = "bfj___bfj_6.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/bfj/-/bfj-6.1.2.tgz";
-        sha1 = "325c861a822bcb358a41c78a33b8e6e2086dde7f";
-      };
-    }
-    {
-      name = "big.js___big.js_3.2.0.tgz";
-      path = fetchurl {
-        name = "big.js___big.js_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz";
-        sha1 = "a5fc298b81b9e0dca2e458824784b65c52ba588e";
-      };
-    }
-    {
-      name = "big.js___big.js_5.2.2.tgz";
-      path = fetchurl {
-        name = "big.js___big.js_5.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz";
-        sha1 = "65f0af382f578bcdc742bd9c281e9cb2d7768328";
-      };
-    }
-    {
-      name = "bignumber.js___bignumber.js_4.1.0.tgz";
-      path = fetchurl {
-        name = "bignumber.js___bignumber.js_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-4.1.0.tgz";
-        sha1 = "db6f14067c140bd46624815a7916c92d9b6c24b1";
-      };
-    }
-    {
-      name = "binary_extensions___binary_extensions_1.13.1.tgz";
-      path = fetchurl {
-        name = "binary_extensions___binary_extensions_1.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz";
-        sha1 = "598afe54755b2868a5330d2aff9d4ebb53209b65";
-      };
-    }
-    {
-      name = "binary_extensions___binary_extensions_2.0.0.tgz";
-      path = fetchurl {
-        name = "binary_extensions___binary_extensions_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz";
-        sha1 = "23c0df14f6a88077f5f986c0d167ec03c3d5537c";
-      };
-    }
-    {
-      name = "bindings___bindings_1.5.0.tgz";
-      path = fetchurl {
-        name = "bindings___bindings_1.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz";
-        sha1 = "10353c9e945334bc0511a6d90b38fbc7c9c504df";
-      };
-    }
-    {
-      name = "bluebird___bluebird_3.7.2.tgz";
-      path = fetchurl {
-        name = "bluebird___bluebird_3.7.2.tgz";
-        url  = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz";
-        sha1 = "9f229c15be272454ffa973ace0dbee79a1b0c36f";
-      };
-    }
-    {
-      name = "bn.js___bn.js_4.11.8.tgz";
-      path = fetchurl {
-        name = "bn.js___bn.js_4.11.8.tgz";
-        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz";
-        sha1 = "2cde09eb5ee341f484746bb0309b3253b1b1442f";
-      };
-    }
-    {
-      name = "body_parser___body_parser_1.18.2.tgz";
-      path = fetchurl {
-        name = "body_parser___body_parser_1.18.2.tgz";
-        url  = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz";
-        sha1 = "87678a19d84b47d859b83199bd59bce222b10454";
-      };
-    }
-    {
-      name = "body_parser___body_parser_1.19.0.tgz";
-      path = fetchurl {
-        name = "body_parser___body_parser_1.19.0.tgz";
-        url  = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz";
-        sha1 = "96b2709e57c9c4e09a6fd66a8fd979844f69f08a";
-      };
-    }
-    {
-      name = "bonjour___bonjour_3.5.0.tgz";
-      path = fetchurl {
-        name = "bonjour___bonjour_3.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz";
-        sha1 = "8e890a183d8ee9a2393b3844c691a42bcf7bc9f5";
-      };
-    }
-    {
-      name = "boolbase___boolbase_1.0.0.tgz";
-      path = fetchurl {
-        name = "boolbase___boolbase_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz";
-        sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e";
-      };
-    }
-    {
-      name = "brace_expansion___brace_expansion_1.1.11.tgz";
-      path = fetchurl {
-        name = "brace_expansion___brace_expansion_1.1.11.tgz";
-        url  = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
-        sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
-      };
-    }
-    {
-      name = "braces___braces_2.3.2.tgz";
-      path = fetchurl {
-        name = "braces___braces_2.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz";
-        sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729";
-      };
-    }
-    {
-      name = "braces___braces_3.0.2.tgz";
-      path = fetchurl {
-        name = "braces___braces_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz";
-        sha1 = "3454e1a462ee8d599e236df336cd9ea4f8afe107";
-      };
-    }
-    {
-      name = "brorand___brorand_1.1.0.tgz";
-      path = fetchurl {
-        name = "brorand___brorand_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz";
-        sha1 = "12c25efe40a45e3c323eb8675a0a0ce57b22371f";
-      };
-    }
-    {
-      name = "browser_process_hrtime___browser_process_hrtime_0.1.3.tgz";
-      path = fetchurl {
-        name = "browser_process_hrtime___browser_process_hrtime_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz";
-        sha1 = "616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4";
-      };
-    }
-    {
-      name = "browser_resolve___browser_resolve_1.11.3.tgz";
-      path = fetchurl {
-        name = "browser_resolve___browser_resolve_1.11.3.tgz";
-        url  = "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz";
-        sha1 = "9b7cbb3d0f510e4cb86bdbd796124d28b5890af6";
-      };
-    }
-    {
-      name = "browser_stdout___browser_stdout_1.3.1.tgz";
-      path = fetchurl {
-        name = "browser_stdout___browser_stdout_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz";
-        sha1 = "baa559ee14ced73452229bad7326467c61fabd60";
-      };
-    }
-    {
-      name = "browserify_aes___browserify_aes_1.2.0.tgz";
-      path = fetchurl {
-        name = "browserify_aes___browserify_aes_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz";
-        sha1 = "326734642f403dabc3003209853bb70ad428ef48";
-      };
-    }
-    {
-      name = "browserify_cipher___browserify_cipher_1.0.1.tgz";
-      path = fetchurl {
-        name = "browserify_cipher___browserify_cipher_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz";
-        sha1 = "8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0";
-      };
-    }
-    {
-      name = "browserify_des___browserify_des_1.0.2.tgz";
-      path = fetchurl {
-        name = "browserify_des___browserify_des_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz";
-        sha1 = "3af4f1f59839403572f1c66204375f7a7f703e9c";
-      };
-    }
-    {
-      name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
-      path = fetchurl {
-        name = "browserify_rsa___browserify_rsa_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz";
-        sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
-      };
-    }
-    {
-      name = "browserify_sign___browserify_sign_4.0.4.tgz";
-      path = fetchurl {
-        name = "browserify_sign___browserify_sign_4.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz";
-        sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298";
-      };
-    }
-    {
-      name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
-      path = fetchurl {
-        name = "browserify_zlib___browserify_zlib_0.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz";
-        sha1 = "2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f";
-      };
-    }
-    {
-      name = "browserslist___browserslist_1.7.7.tgz";
-      path = fetchurl {
-        name = "browserslist___browserslist_1.7.7.tgz";
-        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz";
-        sha1 = "0bd76704258be829b2398bb50e4b62d1a166b0b9";
-      };
-    }
-    {
-      name = "browserslist___browserslist_4.3.7.tgz";
-      path = fetchurl {
-        name = "browserslist___browserslist_4.3.7.tgz";
-        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.7.tgz";
-        sha1 = "f1de479a6466ea47a0a26dcc725e7504817e624a";
-      };
-    }
-    {
-      name = "browserslist___browserslist_4.6.6.tgz";
-      path = fetchurl {
-        name = "browserslist___browserslist_4.6.6.tgz";
-        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.6.6.tgz";
-        sha1 = "6e4bf467cde520bc9dbdf3747dafa03531cec453";
-      };
-    }
-    {
-      name = "bs_logger___bs_logger_0.2.6.tgz";
-      path = fetchurl {
-        name = "bs_logger___bs_logger_0.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz";
-        sha1 = "eb7d365307a72cf974cc6cda76b68354ad336bd8";
-      };
-    }
-    {
-      name = "bser___bser_2.1.0.tgz";
-      path = fetchurl {
-        name = "bser___bser_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/bser/-/bser-2.1.0.tgz";
-        sha1 = "65fc784bf7f87c009b973c12db6546902fa9c7b5";
-      };
-    }
-    {
-      name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
-      path = fetchurl {
-        name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
-        url  = "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz";
-        sha1 = "0d333e3f00eac50aa1454abd30ef8c2a5d9a7242";
-      };
-    }
-    {
-      name = "buffer_from___buffer_from_1.1.1.tgz";
-      path = fetchurl {
-        name = "buffer_from___buffer_from_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz";
-        sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef";
-      };
-    }
-    {
-      name = "buffer_indexof___buffer_indexof_1.1.1.tgz";
-      path = fetchurl {
-        name = "buffer_indexof___buffer_indexof_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz";
-        sha1 = "52fabcc6a606d1a00302802648ef68f639da268c";
-      };
-    }
-    {
-      name = "buffer_xor___buffer_xor_1.0.3.tgz";
-      path = fetchurl {
-        name = "buffer_xor___buffer_xor_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz";
-        sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9";
-      };
-    }
-    {
-      name = "buffer___buffer_4.9.2.tgz";
-      path = fetchurl {
-        name = "buffer___buffer_4.9.2.tgz";
-        url  = "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz";
-        sha1 = "230ead344002988644841ab0244af8c44bbe3ef8";
-      };
-    }
-    {
-      name = "builtin_modules___builtin_modules_1.1.1.tgz";
-      path = fetchurl {
-        name = "builtin_modules___builtin_modules_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz";
-        sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
-      };
-    }
-    {
-      name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
-      path = fetchurl {
-        name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz";
-        sha1 = "85982878e21b98e1c66425e03d0174788f569ee8";
-      };
-    }
-    {
-      name = "bullseye___bullseye_1.4.6.tgz";
-      path = fetchurl {
-        name = "bullseye___bullseye_1.4.6.tgz";
-        url  = "https://registry.yarnpkg.com/bullseye/-/bullseye-1.4.6.tgz";
-        sha1 = "b73f606f7b4273be80ac65acd75295d62606fe24";
-      };
-    }
-    {
-      name = "bytes___bytes_3.0.0.tgz";
-      path = fetchurl {
-        name = "bytes___bytes_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz";
-        sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
-      };
-    }
-    {
-      name = "bytes___bytes_3.1.0.tgz";
-      path = fetchurl {
-        name = "bytes___bytes_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz";
-        sha1 = "f6cf7933a360e0588fa9fde85651cdc7f805d1f6";
-      };
-    }
-    {
-      name = "cacache___cacache_12.0.3.tgz";
-      path = fetchurl {
-        name = "cacache___cacache_12.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz";
-        sha1 = "be99abba4e1bf5df461cd5a2c1071fc432573390";
-      };
-    }
-    {
-      name = "cacache___cacache_13.0.1.tgz";
-      path = fetchurl {
-        name = "cacache___cacache_13.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz";
-        sha1 = "a8000c21697089082f85287a1aec6e382024a71c";
-      };
-    }
-    {
-      name = "cache_base___cache_base_1.0.1.tgz";
-      path = fetchurl {
-        name = "cache_base___cache_base_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz";
-        sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2";
-      };
-    }
-    {
-      name = "cachedir___cachedir_2.3.0.tgz";
-      path = fetchurl {
-        name = "cachedir___cachedir_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/cachedir/-/cachedir-2.3.0.tgz";
-        sha1 = "0c75892a052198f0b21c7c1804d8331edfcae0e8";
-      };
-    }
-    {
-      name = "calculate_size___calculate_size_1.1.1.tgz";
-      path = fetchurl {
-        name = "calculate_size___calculate_size_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/calculate-size/-/calculate-size-1.1.1.tgz";
-        sha1 = "ae7caa1c7795f82c4f035dc7be270e3581dae3ee";
-      };
-    }
-    {
-      name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
-      path = fetchurl {
-        name = "call_me_maybe___call_me_maybe_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz";
-        sha1 = "26d208ea89e37b5cbde60250a15f031c16a4d66b";
-      };
-    }
-    {
-      name = "caller_callsite___caller_callsite_2.0.0.tgz";
-      path = fetchurl {
-        name = "caller_callsite___caller_callsite_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz";
-        sha1 = "847e0fce0a223750a9a027c54b33731ad3154134";
-      };
-    }
-    {
-      name = "caller_path___caller_path_2.0.0.tgz";
-      path = fetchurl {
-        name = "caller_path___caller_path_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz";
-        sha1 = "468f83044e369ab2010fac5f06ceee15bb2cb1f4";
-      };
-    }
-    {
-      name = "callsites___callsites_2.0.0.tgz";
-      path = fetchurl {
-        name = "callsites___callsites_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz";
-        sha1 = "06eb84f00eea413da86affefacbffb36093b3c50";
-      };
-    }
-    {
-      name = "callsites___callsites_3.1.0.tgz";
-      path = fetchurl {
-        name = "callsites___callsites_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz";
-        sha1 = "b3630abd8943432f54b3f0519238e33cd7df2f73";
-      };
-    }
-    {
-      name = "camel_case___camel_case_3.0.0.tgz";
-      path = fetchurl {
-        name = "camel_case___camel_case_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz";
-        sha1 = "ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73";
-      };
-    }
-    {
-      name = "camelcase___camelcase_1.2.1.tgz";
-      path = fetchurl {
-        name = "camelcase___camelcase_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz";
-        sha1 = "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39";
-      };
-    }
-    {
-      name = "camelcase___camelcase_4.1.0.tgz";
-      path = fetchurl {
-        name = "camelcase___camelcase_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz";
-        sha1 = "d545635be1e33c542649c69173e5de6acfae34dd";
-      };
-    }
-    {
-      name = "camelcase___camelcase_5.3.1.tgz";
-      path = fetchurl {
-        name = "camelcase___camelcase_5.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz";
-        sha1 = "e3c9b31569e106811df242f715725a1f4c494320";
-      };
-    }
-    {
-      name = "caniuse_api___caniuse_api_3.0.0.tgz";
-      path = fetchurl {
-        name = "caniuse_api___caniuse_api_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz";
-        sha1 = "5e4d90e2274961d46291997df599e3ed008ee4c0";
-      };
-    }
-    {
-      name = "caniuse_db___caniuse_db_1.0.30000890.tgz";
-      path = fetchurl {
-        name = "caniuse_db___caniuse_db_1.0.30000890.tgz";
-        url  = "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000890.tgz";
-        sha1 = "b406595db8b631975b8dc5fa174f32925c23778b";
-      };
-    }
-    {
-      name = "caniuse_lite___caniuse_lite_1.0.30000926.tgz";
-      path = fetchurl {
-        name = "caniuse_lite___caniuse_lite_1.0.30000926.tgz";
-        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000926.tgz";
-        sha1 = "4361a99d818ca6e521dbe89a732de62a194a789c";
-      };
-    }
-    {
-      name = "caniuse_lite___caniuse_lite_1.0.30000984.tgz";
-      path = fetchurl {
-        name = "caniuse_lite___caniuse_lite_1.0.30000984.tgz";
-        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000984.tgz";
-        sha1 = "dc96c3c469e9bcfc6ad5bdd24c77ec918ea76fe0";
-      };
-    }
-    {
-      name = "capture_exit___capture_exit_2.0.0.tgz";
-      path = fetchurl {
-        name = "capture_exit___capture_exit_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz";
-        sha1 = "fb953bfaebeb781f62898239dabb426d08a509a4";
-      };
-    }
-    {
-      name = "caseless___caseless_0.12.0.tgz";
-      path = fetchurl {
-        name = "caseless___caseless_0.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
-        sha1 = "1b681c21ff84033c826543090689420d187151dc";
-      };
-    }
-    {
-      name = "center_align___center_align_0.1.3.tgz";
-      path = fetchurl {
-        name = "center_align___center_align_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz";
-        sha1 = "aa0d32629b6ee972200411cbd4461c907bc2b7ad";
-      };
-    }
-    {
-      name = "chalk___chalk_2.4.2.tgz";
-      path = fetchurl {
-        name = "chalk___chalk_2.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz";
-        sha1 = "cd42541677a54333cf541a49108c1432b44c9424";
-      };
-    }
-    {
-      name = "chalk___chalk_1.1.3.tgz";
-      path = fetchurl {
-        name = "chalk___chalk_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz";
-        sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
-      };
-    }
-    {
-      name = "chalk___chalk_2.4.1.tgz";
-      path = fetchurl {
-        name = "chalk___chalk_2.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz";
-        sha1 = "18c49ab16a037b6eb0152cc83e3471338215b66e";
-      };
-    }
-    {
-      name = "chalk___chalk_3.0.0.tgz";
-      path = fetchurl {
-        name = "chalk___chalk_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz";
-        sha1 = "3f73c2bf526591f574cc492c51e2456349f844e4";
-      };
-    }
-    {
-      name = "character_entities_legacy___character_entities_legacy_1.1.2.tgz";
-      path = fetchurl {
-        name = "character_entities_legacy___character_entities_legacy_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz";
-        sha1 = "7c6defb81648498222c9855309953d05f4d63a9c";
-      };
-    }
-    {
-      name = "character_entities___character_entities_1.2.2.tgz";
-      path = fetchurl {
-        name = "character_entities___character_entities_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.2.tgz";
-        sha1 = "58c8f371c0774ef0ba9b2aca5f00d8f100e6e363";
-      };
-    }
-    {
-      name = "character_reference_invalid___character_reference_invalid_1.1.2.tgz";
-      path = fetchurl {
-        name = "character_reference_invalid___character_reference_invalid_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz";
-        sha1 = "21e421ad3d84055952dab4a43a04e73cd425d3ed";
-      };
-    }
-    {
-      name = "chardet___chardet_0.7.0.tgz";
-      path = fetchurl {
-        name = "chardet___chardet_0.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz";
-        sha1 = "90094849f0937f2eedc2425d0d28a9e5f0cbad9e";
-      };
-    }
-    {
-      name = "charenc___charenc_0.0.2.tgz";
-      path = fetchurl {
-        name = "charenc___charenc_0.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz";
-        sha1 = "c0a1d2f3a7092e03774bfa83f14c0fc5790a8667";
-      };
-    }
-    {
-      name = "check_more_types___check_more_types_2.24.0.tgz";
-      path = fetchurl {
-        name = "check_more_types___check_more_types_2.24.0.tgz";
-        url  = "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz";
-        sha1 = "1420ffb10fd444dcfc79b43891bbfffd32a84600";
-      };
-    }
-    {
-      name = "check_types___check_types_8.0.3.tgz";
-      path = fetchurl {
-        name = "check_types___check_types_8.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz";
-        sha1 = "3356cca19c889544f2d7a95ed49ce508a0ecf552";
-      };
-    }
-    {
-      name = "cheerio___cheerio_1.0.0_rc.2.tgz";
-      path = fetchurl {
-        name = "cheerio___cheerio_1.0.0_rc.2.tgz";
-        url  = "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.2.tgz";
-        sha1 = "4b9f53a81b27e4d5dac31c0ffd0cfa03cc6830db";
-      };
-    }
-    {
-      name = "chokidar___chokidar_3.0.2.tgz";
-      path = fetchurl {
-        name = "chokidar___chokidar_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.0.2.tgz";
-        sha1 = "0d1cd6d04eb2df0327446188cd13736a3367d681";
-      };
-    }
-    {
-      name = "chokidar___chokidar_2.1.8.tgz";
-      path = fetchurl {
-        name = "chokidar___chokidar_2.1.8.tgz";
-        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz";
-        sha1 = "804b3a7b6a99358c3c5c61e71d8728f041cff917";
-      };
-    }
-    {
-      name = "chokidar___chokidar_2.1.6.tgz";
-      path = fetchurl {
-        name = "chokidar___chokidar_2.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz";
-        sha1 = "b6cad653a929e244ce8a834244164d241fa954c5";
-      };
-    }
-    {
-      name = "chownr___chownr_1.1.4.tgz";
-      path = fetchurl {
-        name = "chownr___chownr_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz";
-        sha1 = "6fc9d7b42d32a583596337666e7d08084da2cc6b";
-      };
-    }
-    {
-      name = "chownr___chownr_1.1.3.tgz";
-      path = fetchurl {
-        name = "chownr___chownr_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz";
-        sha1 = "42d837d5239688d55f303003a508230fa6727142";
-      };
-    }
-    {
-      name = "chroma_js___chroma_js_1.4.0.tgz";
-      path = fetchurl {
-        name = "chroma_js___chroma_js_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/chroma-js/-/chroma-js-1.4.0.tgz";
-        sha1 = "695c52e7c97617e5f687db31913503d410481ae4";
-      };
-    }
-    {
-      name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
-      path = fetchurl {
-        name = "chrome_trace_event___chrome_trace_event_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz";
-        sha1 = "234090ee97c7d4ad1a2c4beae27505deffc608a4";
-      };
-    }
-    {
-      name = "ci_info___ci_info_2.0.0.tgz";
-      path = fetchurl {
-        name = "ci_info___ci_info_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz";
-        sha1 = "67a9e964be31a51e15e5010d58e6f12834002f46";
-      };
-    }
-    {
-      name = "cipher_base___cipher_base_1.0.4.tgz";
-      path = fetchurl {
-        name = "cipher_base___cipher_base_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz";
-        sha1 = "8760e4ecc272f4c363532f926d874aae2c1397de";
-      };
-    }
-    {
-      name = "class_utils___class_utils_0.3.6.tgz";
-      path = fetchurl {
-        name = "class_utils___class_utils_0.3.6.tgz";
-        url  = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz";
-        sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463";
-      };
-    }
-    {
-      name = "classnames___classnames_2.2.6.tgz";
-      path = fetchurl {
-        name = "classnames___classnames_2.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/classnames/-/classnames-2.2.6.tgz";
-        sha1 = "43935bffdd291f326dad0a205309b38d00f650ce";
-      };
-    }
-    {
-      name = "clean_css___clean_css_4.2.1.tgz";
-      path = fetchurl {
-        name = "clean_css___clean_css_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz";
-        sha1 = "2d411ef76b8569b6d0c84068dabe85b0aa5e5c17";
-      };
-    }
-    {
-      name = "clean_css___clean_css_3.4.28.tgz";
-      path = fetchurl {
-        name = "clean_css___clean_css_3.4.28.tgz";
-        url  = "https://registry.yarnpkg.com/clean-css/-/clean-css-3.4.28.tgz";
-        sha1 = "bf1945e82fc808f55695e6ddeaec01400efd03ff";
-      };
-    }
-    {
-      name = "clean_stack___clean_stack_2.2.0.tgz";
-      path = fetchurl {
-        name = "clean_stack___clean_stack_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz";
-        sha1 = "ee8472dbb129e727b31e8a10a427dee9dfe4008b";
-      };
-    }
-    {
-      name = "clean_webpack_plugin___clean_webpack_plugin_3.0.0.tgz";
-      path = fetchurl {
-        name = "clean_webpack_plugin___clean_webpack_plugin_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-3.0.0.tgz";
-        sha1 = "a99d8ec34c1c628a4541567aa7b457446460c62b";
-      };
-    }
-    {
-      name = "cli_cursor___cli_cursor_1.0.2.tgz";
-      path = fetchurl {
-        name = "cli_cursor___cli_cursor_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz";
-        sha1 = "64da3f7d56a54412e59794bd62dc35295e8f2987";
-      };
-    }
-    {
-      name = "cli_cursor___cli_cursor_2.1.0.tgz";
-      path = fetchurl {
-        name = "cli_cursor___cli_cursor_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz";
-        sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5";
-      };
-    }
-    {
-      name = "cli_cursor___cli_cursor_3.1.0.tgz";
-      path = fetchurl {
-        name = "cli_cursor___cli_cursor_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz";
-        sha1 = "264305a7ae490d1d03bf0c9ba7c925d1753af307";
-      };
-    }
-    {
-      name = "cli_table3___cli_table3_0.5.1.tgz";
-      path = fetchurl {
-        name = "cli_table3___cli_table3_0.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz";
-        sha1 = "0252372d94dfc40dbd8df06005f48f31f656f202";
-      };
-    }
-    {
-      name = "cli_truncate___cli_truncate_0.2.1.tgz";
-      path = fetchurl {
-        name = "cli_truncate___cli_truncate_0.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz";
-        sha1 = "9f15cfbb0705005369216c626ac7d05ab90dd574";
-      };
-    }
-    {
-      name = "cli_width___cli_width_2.2.0.tgz";
-      path = fetchurl {
-        name = "cli_width___cli_width_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz";
-        sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639";
-      };
-    }
-    {
-      name = "cliui___cliui_2.1.0.tgz";
-      path = fetchurl {
-        name = "cliui___cliui_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz";
-        sha1 = "4b475760ff80264c762c3a1719032e91c7fea0d1";
-      };
-    }
-    {
-      name = "cliui___cliui_4.1.0.tgz";
-      path = fetchurl {
-        name = "cliui___cliui_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz";
-        sha1 = "348422dbe82d800b3022eef4f6ac10bf2e4d1b49";
-      };
-    }
-    {
-      name = "cliui___cliui_5.0.0.tgz";
-      path = fetchurl {
-        name = "cliui___cliui_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz";
-        sha1 = "deefcfdb2e800784aa34f46fa08e06851c7bbbc5";
-      };
-    }
-    {
-      name = "clone_deep___clone_deep_2.0.2.tgz";
-      path = fetchurl {
-        name = "clone_deep___clone_deep_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz";
-        sha1 = "00db3a1e173656730d1188c3d6aced6d7ea97713";
-      };
-    }
-    {
-      name = "cnbuilder___cnbuilder_1.0.8.tgz";
-      path = fetchurl {
-        name = "cnbuilder___cnbuilder_1.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/cnbuilder/-/cnbuilder-1.0.8.tgz";
-        sha1 = "2b5a700e4d541085df31709b5678c786d29967da";
-      };
-    }
-    {
-      name = "co___co_4.6.0.tgz";
-      path = fetchurl {
-        name = "co___co_4.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz";
-        sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
-      };
-    }
-    {
-      name = "coa___coa_2.0.2.tgz";
-      path = fetchurl {
-        name = "coa___coa_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz";
-        sha1 = "43f6c21151b4ef2bf57187db0d73de229e3e7ec3";
-      };
-    }
-    {
-      name = "code_point_at___code_point_at_1.1.0.tgz";
-      path = fetchurl {
-        name = "code_point_at___code_point_at_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz";
-        sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
-      };
-    }
-    {
-      name = "codemirror___codemirror_5.40.2.tgz";
-      path = fetchurl {
-        name = "codemirror___codemirror_5.40.2.tgz";
-        url  = "https://registry.yarnpkg.com/codemirror/-/codemirror-5.40.2.tgz";
-        sha1 = "f4a41fee2d84e679543591b3680af259d903330b";
-      };
-    }
-    {
-      name = "collapse_white_space___collapse_white_space_1.0.4.tgz";
-      path = fetchurl {
-        name = "collapse_white_space___collapse_white_space_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.4.tgz";
-        sha1 = "ce05cf49e54c3277ae573036a26851ba430a0091";
-      };
-    }
-    {
-      name = "collection_visit___collection_visit_1.0.0.tgz";
-      path = fetchurl {
-        name = "collection_visit___collection_visit_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz";
-        sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
-      };
-    }
-    {
-      name = "color_convert___color_convert_1.9.3.tgz";
-      path = fetchurl {
-        name = "color_convert___color_convert_1.9.3.tgz";
-        url  = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz";
-        sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8";
-      };
-    }
-    {
-      name = "color_convert___color_convert_2.0.1.tgz";
-      path = fetchurl {
-        name = "color_convert___color_convert_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz";
-        sha1 = "72d3a68d598c9bdb3af2ad1e84f21d896abd4de3";
-      };
-    }
-    {
-      name = "color_name___color_name_1.1.3.tgz";
-      path = fetchurl {
-        name = "color_name___color_name_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz";
-        sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
-      };
-    }
-    {
-      name = "color_name___color_name_1.1.4.tgz";
-      path = fetchurl {
-        name = "color_name___color_name_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz";
-        sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2";
-      };
-    }
-    {
-      name = "color_string___color_string_1.5.3.tgz";
-      path = fetchurl {
-        name = "color_string___color_string_1.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz";
-        sha1 = "c9bbc5f01b58b5492f3d6857459cb6590ce204cc";
-      };
-    }
-    {
-      name = "color___color_3.1.1.tgz";
-      path = fetchurl {
-        name = "color___color_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/color/-/color-3.1.1.tgz";
-        sha1 = "7abf5c0d38e89378284e873c207ae2172dcc8a61";
-      };
-    }
-    {
-      name = "colors___colors_0.5.1.tgz";
-      path = fetchurl {
-        name = "colors___colors_0.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz";
-        sha1 = "7d0023eaeb154e8ee9fce75dcb923d0ed1667774";
-      };
-    }
-    {
-      name = "colors___colors_1.1.2.tgz";
-      path = fetchurl {
-        name = "colors___colors_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz";
-        sha1 = "168a4701756b6a7f51a12ce0c97bfa28c084ed63";
-      };
-    }
-    {
-      name = "combined_stream___combined_stream_1.0.8.tgz";
-      path = fetchurl {
-        name = "combined_stream___combined_stream_1.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz";
-        sha1 = "c3d45a8b34fd730631a110a8a2520682b31d5a7f";
-      };
-    }
-    {
-      name = "commander___commander_2.15.1.tgz";
-      path = fetchurl {
-        name = "commander___commander_2.15.1.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz";
-        sha1 = "df46e867d0fc2aec66a34662b406a9ccafff5b0f";
-      };
-    }
-    {
-      name = "commander___commander_2.17.1.tgz";
-      path = fetchurl {
-        name = "commander___commander_2.17.1.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz";
-        sha1 = "bd77ab7de6de94205ceacc72f1716d29f20a77bf";
-      };
-    }
-    {
-      name = "commander___commander_2.8.1.tgz";
-      path = fetchurl {
-        name = "commander___commander_2.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz";
-        sha1 = "06be367febfda0c330aa1e2a072d3dc9762425d4";
-      };
-    }
-    {
-      name = "commander___commander_2.20.3.tgz";
-      path = fetchurl {
-        name = "commander___commander_2.20.3.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz";
-        sha1 = "fd485e84c03eb4881c20722ba48035e8531aeb33";
-      };
-    }
-    {
-      name = "commander___commander_2.20.0.tgz";
-      path = fetchurl {
-        name = "commander___commander_2.20.0.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz";
-        sha1 = "d58bb2b5c1ee8f87b0d340027e9e94e222c5a422";
-      };
-    }
-    {
-      name = "commander___commander_4.1.1.tgz";
-      path = fetchurl {
-        name = "commander___commander_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz";
-        sha1 = "9fd602bd936294e9e9ef46a3f4d6964044b18068";
-      };
-    }
-    {
-      name = "commander___commander_2.19.0.tgz";
-      path = fetchurl {
-        name = "commander___commander_2.19.0.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz";
-        sha1 = "f6198aa84e5b83c46054b94ddedbfed5ee9ff12a";
-      };
-    }
-    {
-      name = "commander___commander_2.9.0.tgz";
-      path = fetchurl {
-        name = "commander___commander_2.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz";
-        sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
-      };
-    }
-    {
-      name = "common_tags___common_tags_1.8.0.tgz";
-      path = fetchurl {
-        name = "common_tags___common_tags_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz";
-        sha1 = "8e3153e542d4a39e9b10554434afaaf98956a937";
-      };
-    }
-    {
-      name = "commondir___commondir_1.0.1.tgz";
-      path = fetchurl {
-        name = "commondir___commondir_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz";
-        sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b";
-      };
-    }
-    {
-      name = "component_emitter___component_emitter_1.3.0.tgz";
-      path = fetchurl {
-        name = "component_emitter___component_emitter_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz";
-        sha1 = "16e4070fba8ae29b679f2215853ee181ab2eabc0";
-      };
-    }
-    {
-      name = "compressible___compressible_2.0.18.tgz";
-      path = fetchurl {
-        name = "compressible___compressible_2.0.18.tgz";
-        url  = "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz";
-        sha1 = "af53cca6b070d4c3c0750fbd77286a6d7cc46fba";
-      };
-    }
-    {
-      name = "compression___compression_1.7.4.tgz";
-      path = fetchurl {
-        name = "compression___compression_1.7.4.tgz";
-        url  = "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz";
-        sha1 = "95523eff170ca57c29a0ca41e6fe131f41e5bb8f";
-      };
-    }
-    {
-      name = "concat_map___concat_map_0.0.1.tgz";
-      path = fetchurl {
-        name = "concat_map___concat_map_0.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
-        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
-      };
-    }
-    {
-      name = "concat_stream___concat_stream_1.6.2.tgz";
-      path = fetchurl {
-        name = "concat_stream___concat_stream_1.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz";
-        sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34";
-      };
-    }
-    {
-      name = "connect_history_api_fallback___connect_history_api_fallback_1.6.0.tgz";
-      path = fetchurl {
-        name = "connect_history_api_fallback___connect_history_api_fallback_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz";
-        sha1 = "8b32089359308d111115d81cad3fceab888f97bc";
-      };
-    }
-    {
-      name = "connected_react_router___connected_react_router_6.8.0.tgz";
-      path = fetchurl {
-        name = "connected_react_router___connected_react_router_6.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/connected-react-router/-/connected-react-router-6.8.0.tgz";
-        sha1 = "ddc687b31d498322445d235d660798489fa56cae";
-      };
-    }
-    {
-      name = "console_browserify___console_browserify_1.2.0.tgz";
-      path = fetchurl {
-        name = "console_browserify___console_browserify_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz";
-        sha1 = "67063cef57ceb6cf4993a2ab3a55840ae8c49336";
-      };
-    }
-    {
-      name = "constants_browserify___constants_browserify_1.0.0.tgz";
-      path = fetchurl {
-        name = "constants_browserify___constants_browserify_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz";
-        sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
-      };
-    }
-    {
-      name = "content_disposition___content_disposition_0.5.2.tgz";
-      path = fetchurl {
-        name = "content_disposition___content_disposition_0.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz";
-        sha1 = "0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4";
-      };
-    }
-    {
-      name = "content_disposition___content_disposition_0.5.3.tgz";
-      path = fetchurl {
-        name = "content_disposition___content_disposition_0.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz";
-        sha1 = "e130caf7e7279087c5616c2007d0485698984fbd";
-      };
-    }
-    {
-      name = "content_type_parser___content_type_parser_1.0.2.tgz";
-      path = fetchurl {
-        name = "content_type_parser___content_type_parser_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.2.tgz";
-        sha1 = "caabe80623e63638b2502fd4c7f12ff4ce2352e7";
-      };
-    }
-    {
-      name = "content_type___content_type_1.0.4.tgz";
-      path = fetchurl {
-        name = "content_type___content_type_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz";
-        sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b";
-      };
-    }
-    {
-      name = "contra___contra_1.9.1.tgz";
-      path = fetchurl {
-        name = "contra___contra_1.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/contra/-/contra-1.9.1.tgz";
-        sha1 = "60e498274b3d2d332896d60f82900aefa2ecac8c";
-      };
-    }
-    {
-      name = "convert_source_map___convert_source_map_1.6.0.tgz";
-      path = fetchurl {
-        name = "convert_source_map___convert_source_map_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz";
-        sha1 = "51b537a8c43e0f04dec1993bffcdd504e758ac20";
-      };
-    }
-    {
-      name = "cookie_signature___cookie_signature_1.0.6.tgz";
-      path = fetchurl {
-        name = "cookie_signature___cookie_signature_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz";
-        sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
-      };
-    }
-    {
-      name = "cookie___cookie_0.3.1.tgz";
-      path = fetchurl {
-        name = "cookie___cookie_0.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz";
-        sha1 = "e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb";
-      };
-    }
-    {
-      name = "cookie___cookie_0.4.0.tgz";
-      path = fetchurl {
-        name = "cookie___cookie_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz";
-        sha1 = "beb437e7022b3b6d49019d088665303ebe9c14ba";
-      };
-    }
-    {
-      name = "cookiejar___cookiejar_2.1.2.tgz";
-      path = fetchurl {
-        name = "cookiejar___cookiejar_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz";
-        sha1 = "dd8a235530752f988f9a0844f3fc589e3111125c";
-      };
-    }
-    {
-      name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
-      path = fetchurl {
-        name = "copy_concurrently___copy_concurrently_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz";
-        sha1 = "92297398cae34937fcafd6ec8139c18051f0b5e0";
-      };
-    }
-    {
-      name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
-      path = fetchurl {
-        name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
-        sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
-      };
-    }
-    {
-      name = "copy_to_clipboard___copy_to_clipboard_3.0.8.tgz";
-      path = fetchurl {
-        name = "copy_to_clipboard___copy_to_clipboard_3.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.0.8.tgz";
-        sha1 = "f4e82f4a8830dce4666b7eb8ded0c9bcc313aba9";
-      };
-    }
-    {
-      name = "core_js_compat___core_js_compat_3.1.4.tgz";
-      path = fetchurl {
-        name = "core_js_compat___core_js_compat_3.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.1.4.tgz";
-        sha1 = "e4d0c40fbd01e65b1d457980fe4112d4358a7408";
-      };
-    }
-    {
-      name = "core_js_pure___core_js_pure_3.1.4.tgz";
-      path = fetchurl {
-        name = "core_js_pure___core_js_pure_3.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.1.4.tgz";
-        sha1 = "5fa17dc77002a169a3566cc48dc774d2e13e3769";
-      };
-    }
-    {
-      name = "core_js_pure___core_js_pure_3.6.5.tgz";
-      path = fetchurl {
-        name = "core_js_pure___core_js_pure_3.6.5.tgz";
-        url  = "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz";
-        sha1 = "c79e75f5e38dbc85a662d91eea52b8256d53b813";
-      };
-    }
-    {
-      name = "core_js___core_js_1.2.7.tgz";
-      path = fetchurl {
-        name = "core_js___core_js_1.2.7.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz";
-        sha1 = "652294c14651db28fa93bd2d5ff2983a4f08c636";
-      };
-    }
-    {
-      name = "core_js___core_js_2.5.7.tgz";
-      path = fetchurl {
-        name = "core_js___core_js_2.5.7.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-2.5.7.tgz";
-        sha1 = "f972608ff0cead68b841a16a932d0b183791814e";
-      };
-    }
-    {
-      name = "core_js___core_js_2.6.9.tgz";
-      path = fetchurl {
-        name = "core_js___core_js_2.6.9.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz";
-        sha1 = "6b4b214620c834152e179323727fc19741b084f2";
-      };
-    }
-    {
-      name = "core_util_is___core_util_is_1.0.2.tgz";
-      path = fetchurl {
-        name = "core_util_is___core_util_is_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
-        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
-      };
-    }
-    {
-      name = "cosmiconfig___cosmiconfig_5.2.1.tgz";
-      path = fetchurl {
-        name = "cosmiconfig___cosmiconfig_5.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz";
-        sha1 = "040f726809c591e77a17c0a3626ca45b4f168b1a";
-      };
-    }
-    {
-      name = "create_ecdh___create_ecdh_4.0.3.tgz";
-      path = fetchurl {
-        name = "create_ecdh___create_ecdh_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz";
-        sha1 = "c9111b6f33045c4697f144787f9254cdc77c45ff";
-      };
-    }
-    {
-      name = "create_hash___create_hash_1.2.0.tgz";
-      path = fetchurl {
-        name = "create_hash___create_hash_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz";
-        sha1 = "889078af11a63756bcfb59bd221996be3a9ef196";
-      };
-    }
-    {
-      name = "create_hmac___create_hmac_1.1.7.tgz";
-      path = fetchurl {
-        name = "create_hmac___create_hmac_1.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz";
-        sha1 = "69170c78b3ab957147b2b8b04572e47ead2243ff";
-      };
-    }
-    {
-      name = "create_react_context___create_react_context_0.2.2.tgz";
-      path = fetchurl {
-        name = "create_react_context___create_react_context_0.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.2.2.tgz";
-        sha1 = "9836542f9aaa22868cd7d4a6f82667df38019dca";
-      };
-    }
-    {
-      name = "cross_env___cross_env_5.2.0.tgz";
-      path = fetchurl {
-        name = "cross_env___cross_env_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.0.tgz";
-        sha1 = "6ecd4c015d5773e614039ee529076669b9d126f2";
-      };
-    }
-    {
-      name = "cross_fetch___cross_fetch_3.0.4.tgz";
-      path = fetchurl {
-        name = "cross_fetch___cross_fetch_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.4.tgz";
-        sha1 = "7bef7020207e684a7638ef5f2f698e24d9eb283c";
-      };
-    }
-    {
-      name = "cross_spawn___cross_spawn_6.0.5.tgz";
-      path = fetchurl {
-        name = "cross_spawn___cross_spawn_6.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz";
-        sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
-      };
-    }
-    {
-      name = "crossvent___crossvent_1.5.0.tgz";
-      path = fetchurl {
-        name = "crossvent___crossvent_1.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/crossvent/-/crossvent-1.5.0.tgz";
-        sha1 = "3779c1242699e19417f0414e61b144753a52fd6d";
-      };
-    }
-    {
-      name = "crypt___crypt_0.0.2.tgz";
-      path = fetchurl {
-        name = "crypt___crypt_0.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz";
-        sha1 = "88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b";
-      };
-    }
-    {
-      name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
-      path = fetchurl {
-        name = "crypto_browserify___crypto_browserify_3.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz";
-        sha1 = "396cf9f3137f03e4b8e532c58f698254e00f80ec";
-      };
-    }
-    {
-      name = "crypto_js___crypto_js_3.3.0.tgz";
-      path = fetchurl {
-        name = "crypto_js___crypto_js_3.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.3.0.tgz";
-        sha1 = "846dd1cce2f68aacfa156c8578f926a609b7976b";
-      };
-    }
-    {
-      name = "css_color_names___css_color_names_0.0.4.tgz";
-      path = fetchurl {
-        name = "css_color_names___css_color_names_0.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz";
-        sha1 = "808adc2e79cf84738069b646cb20ec27beb629e0";
-      };
-    }
-    {
-      name = "css_declaration_sorter___css_declaration_sorter_4.0.1.tgz";
-      path = fetchurl {
-        name = "css_declaration_sorter___css_declaration_sorter_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz";
-        sha1 = "c198940f63a76d7e36c1e71018b001721054cb22";
-      };
-    }
-    {
-      name = "css_loader___css_loader_3.1.0.tgz";
-      path = fetchurl {
-        name = "css_loader___css_loader_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/css-loader/-/css-loader-3.1.0.tgz";
-        sha1 = "6f008b993b8ce812e6bab57f3cbfdc7a7cf28685";
-      };
-    }
-    {
-      name = "css_select_base_adapter___css_select_base_adapter_0.1.1.tgz";
-      path = fetchurl {
-        name = "css_select_base_adapter___css_select_base_adapter_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz";
-        sha1 = "3b2ff4972cc362ab88561507a95408a1432135d7";
-      };
-    }
-    {
-      name = "css_select___css_select_1.2.0.tgz";
-      path = fetchurl {
-        name = "css_select___css_select_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz";
-        sha1 = "2b3a110539c5355f1cd8d314623e870b121ec858";
-      };
-    }
-    {
-      name = "css_select___css_select_2.0.2.tgz";
-      path = fetchurl {
-        name = "css_select___css_select_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz";
-        sha1 = "ab4386cec9e1f668855564b17c3733b43b2a5ede";
-      };
-    }
-    {
-      name = "css_tree___css_tree_1.0.0_alpha.28.tgz";
-      path = fetchurl {
-        name = "css_tree___css_tree_1.0.0_alpha.28.tgz";
-        url  = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz";
-        sha1 = "8e8968190d886c9477bc8d61e96f61af3f7ffa7f";
-      };
-    }
-    {
-      name = "css_tree___css_tree_1.0.0_alpha.29.tgz";
-      path = fetchurl {
-        name = "css_tree___css_tree_1.0.0_alpha.29.tgz";
-        url  = "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz";
-        sha1 = "3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39";
-      };
-    }
-    {
-      name = "css_unit_converter___css_unit_converter_1.1.1.tgz";
-      path = fetchurl {
-        name = "css_unit_converter___css_unit_converter_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz";
-        sha1 = "d9b9281adcfd8ced935bdbaba83786897f64e996";
-      };
-    }
-    {
-      name = "css_url_regex___css_url_regex_1.1.0.tgz";
-      path = fetchurl {
-        name = "css_url_regex___css_url_regex_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz";
-        sha1 = "83834230cc9f74c457de59eebd1543feeb83b7ec";
-      };
-    }
-    {
-      name = "css_what___css_what_2.1.0.tgz";
-      path = fetchurl {
-        name = "css_what___css_what_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz";
-        sha1 = "9467d032c38cfaefb9f2d79501253062f87fa1bd";
-      };
-    }
-    {
-      name = "css_what___css_what_2.1.3.tgz";
-      path = fetchurl {
-        name = "css_what___css_what_2.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz";
-        sha1 = "a6d7604573365fe74686c3f311c56513d88285f2";
-      };
-    }
-    {
-      name = "css.escape___css.escape_1.5.1.tgz";
-      path = fetchurl {
-        name = "css.escape___css.escape_1.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz";
-        sha1 = "42e27d4fa04ae32f931a4b4d4191fa9cddee97cb";
-      };
-    }
-    {
-      name = "cssesc___cssesc_2.0.0.tgz";
-      path = fetchurl {
-        name = "cssesc___cssesc_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz";
-        sha1 = "3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703";
-      };
-    }
-    {
-      name = "cssesc___cssesc_3.0.0.tgz";
-      path = fetchurl {
-        name = "cssesc___cssesc_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz";
-        sha1 = "37741919903b868565e1c09ea747445cd18983ee";
-      };
-    }
-    {
-      name = "cssnano_preset_default___cssnano_preset_default_4.0.7.tgz";
-      path = fetchurl {
-        name = "cssnano_preset_default___cssnano_preset_default_4.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz";
-        sha1 = "51ec662ccfca0f88b396dcd9679cdb931be17f76";
-      };
-    }
-    {
-      name = "cssnano_util_get_arguments___cssnano_util_get_arguments_4.0.0.tgz";
-      path = fetchurl {
-        name = "cssnano_util_get_arguments___cssnano_util_get_arguments_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz";
-        sha1 = "ed3a08299f21d75741b20f3b81f194ed49cc150f";
-      };
-    }
-    {
-      name = "cssnano_util_get_match___cssnano_util_get_match_4.0.0.tgz";
-      path = fetchurl {
-        name = "cssnano_util_get_match___cssnano_util_get_match_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz";
-        sha1 = "c0e4ca07f5386bb17ec5e52250b4f5961365156d";
-      };
-    }
-    {
-      name = "cssnano_util_raw_cache___cssnano_util_raw_cache_4.0.1.tgz";
-      path = fetchurl {
-        name = "cssnano_util_raw_cache___cssnano_util_raw_cache_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz";
-        sha1 = "b26d5fd5f72a11dfe7a7846fb4c67260f96bf282";
-      };
-    }
-    {
-      name = "cssnano_util_same_parent___cssnano_util_same_parent_4.0.1.tgz";
-      path = fetchurl {
-        name = "cssnano_util_same_parent___cssnano_util_same_parent_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz";
-        sha1 = "574082fb2859d2db433855835d9a8456ea18bbf3";
-      };
-    }
-    {
-      name = "cssnano___cssnano_4.1.10.tgz";
-      path = fetchurl {
-        name = "cssnano___cssnano_4.1.10.tgz";
-        url  = "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz";
-        sha1 = "0ac41f0b13d13d465487e111b778d42da631b8b2";
-      };
-    }
-    {
-      name = "csso___csso_3.5.1.tgz";
-      path = fetchurl {
-        name = "csso___csso_3.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz";
-        sha1 = "7b9eb8be61628973c1b261e169d2f024008e758b";
-      };
-    }
-    {
-      name = "cssom___cssom_0.3.8.tgz";
-      path = fetchurl {
-        name = "cssom___cssom_0.3.8.tgz";
-        url  = "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz";
-        sha1 = "9f1276f5b2b463f2114d3f2c75250af8c1a36f4a";
-      };
-    }
-    {
-      name = "cssstyle___cssstyle_0.2.37.tgz";
-      path = fetchurl {
-        name = "cssstyle___cssstyle_0.2.37.tgz";
-        url  = "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz";
-        sha1 = "541097234cb2513c83ceed3acddc27ff27987d54";
-      };
-    }
-    {
-      name = "cssstyle___cssstyle_1.4.0.tgz";
-      path = fetchurl {
-        name = "cssstyle___cssstyle_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz";
-        sha1 = "9d31328229d3c565c61e586b02041a28fccdccf1";
-      };
-    }
-    {
-      name = "csstype___csstype_2.6.2.tgz";
-      path = fetchurl {
-        name = "csstype___csstype_2.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/csstype/-/csstype-2.6.2.tgz";
-        sha1 = "3043d5e065454579afc7478a18de41909c8a2f01";
-      };
-    }
-    {
-      name = "custom_event___custom_event_1.0.0.tgz";
-      path = fetchurl {
-        name = "custom_event___custom_event_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.0.tgz";
-        sha1 = "2e4628be19dc4b214b5c02630c5971e811618062";
-      };
-    }
-    {
-      name = "cyclist___cyclist_1.0.1.tgz";
-      path = fetchurl {
-        name = "cyclist___cyclist_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz";
-        sha1 = "596e9698fd0c80e12038c2b82d6eb1b35b6224d9";
-      };
-    }
-    {
-      name = "cypress_file_upload___cypress_file_upload_4.0.7.tgz";
-      path = fetchurl {
-        name = "cypress_file_upload___cypress_file_upload_4.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/cypress-file-upload/-/cypress-file-upload-4.0.7.tgz";
-        sha1 = "1136139bb3c660b9c39a69f231ac1da7785acaae";
-      };
-    }
-    {
-      name = "cypress_pipe___cypress_pipe_1.5.0.tgz";
-      path = fetchurl {
-        name = "cypress_pipe___cypress_pipe_1.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/cypress-pipe/-/cypress-pipe-1.5.0.tgz";
-        sha1 = "bf8603a8eb6969b3ebad49080957192b03be85a0";
-      };
-    }
-    {
-      name = "cypress_plugin_tab___cypress_plugin_tab_1.0.5.tgz";
-      path = fetchurl {
-        name = "cypress_plugin_tab___cypress_plugin_tab_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/cypress-plugin-tab/-/cypress-plugin-tab-1.0.5.tgz";
-        sha1 = "a40714148104004bb05ed62b1bf46bb544f8eb4a";
-      };
-    }
-    {
-      name = "cypress___cypress_4.12.1.tgz";
-      path = fetchurl {
-        name = "cypress___cypress_4.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/cypress/-/cypress-4.12.1.tgz";
-        sha1 = "0ead1b9f4c0917d69d8b57f996b6e01fe693b6ec";
-      };
-    }
-    {
-      name = "d3_array___d3_array_1.2.4.tgz";
-      path = fetchurl {
-        name = "d3_array___d3_array_1.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz";
-        sha1 = "635ce4d5eea759f6f605863dbcfc30edc737f71f";
-      };
-    }
-    {
-      name = "d3_collection___d3_collection_1.0.7.tgz";
-      path = fetchurl {
-        name = "d3_collection___d3_collection_1.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz";
-        sha1 = "349bd2aa9977db071091c13144d5e4f16b5b310e";
-      };
-    }
-    {
-      name = "d3_color___d3_color_1.2.3.tgz";
-      path = fetchurl {
-        name = "d3_color___d3_color_1.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/d3-color/-/d3-color-1.2.3.tgz";
-        sha1 = "6c67bb2af6df3cc8d79efcc4d3a3e83e28c8048f";
-      };
-    }
-    {
-      name = "d3_format___d3_format_1.3.2.tgz";
-      path = fetchurl {
-        name = "d3_format___d3_format_1.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/d3-format/-/d3-format-1.3.2.tgz";
-        sha1 = "6a96b5e31bcb98122a30863f7d92365c00603562";
-      };
-    }
-    {
-      name = "d3_interpolate___d3_interpolate_1.3.2.tgz";
-      path = fetchurl {
-        name = "d3_interpolate___d3_interpolate_1.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.3.2.tgz";
-        sha1 = "417d3ebdeb4bc4efcc8fd4361c55e4040211fd68";
-      };
-    }
-    {
-      name = "d3_scale___d3_scale_2.1.2.tgz";
-      path = fetchurl {
-        name = "d3_scale___d3_scale_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.1.2.tgz";
-        sha1 = "4e932b7b60182aee9073ede8764c98423e5f9a94";
-      };
-    }
-    {
-      name = "d3_time_format___d3_time_format_2.1.3.tgz";
-      path = fetchurl {
-        name = "d3_time_format___d3_time_format_2.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.1.3.tgz";
-        sha1 = "ae06f8e0126a9d60d6364eac5b1533ae1bac826b";
-      };
-    }
-    {
-      name = "d3_time___d3_time_1.0.10.tgz";
-      path = fetchurl {
-        name = "d3_time___d3_time_1.0.10.tgz";
-        url  = "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.10.tgz";
-        sha1 = "8259dd71288d72eeacfd8de281c4bf5c7393053c";
-      };
-    }
-    {
-      name = "dashdash___dashdash_1.14.1.tgz";
-      path = fetchurl {
-        name = "dashdash___dashdash_1.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
-        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
-      };
-    }
-    {
-      name = "data_urls___data_urls_1.1.0.tgz";
-      path = fetchurl {
-        name = "data_urls___data_urls_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz";
-        sha1 = "15ee0582baa5e22bb59c77140da8f9c76963bbfe";
-      };
-    }
-    {
-      name = "date_fns___date_fns_1.30.1.tgz";
-      path = fetchurl {
-        name = "date_fns___date_fns_1.30.1.tgz";
-        url  = "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz";
-        sha1 = "2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c";
-      };
-    }
-    {
-      name = "date_fns___date_fns_2.0.0_alpha.27.tgz";
-      path = fetchurl {
-        name = "date_fns___date_fns_2.0.0_alpha.27.tgz";
-        url  = "https://registry.yarnpkg.com/date-fns/-/date-fns-2.0.0-alpha.27.tgz";
-        sha1 = "5ecd4204ef0e7064264039570f6e8afbc014481c";
-      };
-    }
-    {
-      name = "date_fns___date_fns_2.0.0_beta.2.tgz";
-      path = fetchurl {
-        name = "date_fns___date_fns_2.0.0_beta.2.tgz";
-        url  = "https://registry.yarnpkg.com/date-fns/-/date-fns-2.0.0-beta.2.tgz";
-        sha1 = "ccd556df832ef761baa88c600f53d2e829245999";
-      };
-    }
-    {
-      name = "debug___debug_2.6.9.tgz";
-      path = fetchurl {
-        name = "debug___debug_2.6.9.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
-        sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
-      };
-    }
-    {
-      name = "debug___debug_3.1.0.tgz";
-      path = fetchurl {
-        name = "debug___debug_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz";
-        sha1 = "5bb5a0672628b64149566ba16819e61518c67261";
-      };
-    }
-    {
-      name = "debug___debug_3.2.6.tgz";
-      path = fetchurl {
-        name = "debug___debug_3.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz";
-        sha1 = "e83d17de16d8a7efb7717edbe5fb10135eee629b";
-      };
-    }
-    {
-      name = "debug___debug_4.1.1.tgz";
-      path = fetchurl {
-        name = "debug___debug_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz";
-        sha1 = "3b72260255109c6b589cee050f1d516139664791";
-      };
-    }
-    {
-      name = "decamelize___decamelize_1.2.0.tgz";
-      path = fetchurl {
-        name = "decamelize___decamelize_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz";
-        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
-      };
-    }
-    {
-      name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
-      path = fetchurl {
-        name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
-        sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
-      };
-    }
-    {
-      name = "deep_equal___deep_equal_1.1.1.tgz";
-      path = fetchurl {
-        name = "deep_equal___deep_equal_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz";
-        sha1 = "b5c98c942ceffaf7cb051e24e1434a25a2e6076a";
-      };
-    }
-    {
-      name = "deep_is___deep_is_0.1.3.tgz";
-      path = fetchurl {
-        name = "deep_is___deep_is_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz";
-        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
-      };
-    }
-    {
-      name = "default_gateway___default_gateway_4.2.0.tgz";
-      path = fetchurl {
-        name = "default_gateway___default_gateway_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz";
-        sha1 = "167104c7500c2115f6dd69b0a536bb8ed720552b";
-      };
-    }
-    {
-      name = "define_properties___define_properties_1.1.3.tgz";
-      path = fetchurl {
-        name = "define_properties___define_properties_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz";
-        sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1";
-      };
-    }
-    {
-      name = "define_property___define_property_0.2.5.tgz";
-      path = fetchurl {
-        name = "define_property___define_property_0.2.5.tgz";
-        url  = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz";
-        sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
-      };
-    }
-    {
-      name = "define_property___define_property_1.0.0.tgz";
-      path = fetchurl {
-        name = "define_property___define_property_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz";
-        sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
-      };
-    }
-    {
-      name = "define_property___define_property_2.0.2.tgz";
-      path = fetchurl {
-        name = "define_property___define_property_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz";
-        sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d";
-      };
-    }
-    {
-      name = "del___del_4.1.1.tgz";
-      path = fetchurl {
-        name = "del___del_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz";
-        sha1 = "9e8f117222ea44a31ff3a156c049b99052a9f0b4";
-      };
-    }
-    {
-      name = "delayed_stream___delayed_stream_1.0.0.tgz";
-      path = fetchurl {
-        name = "delayed_stream___delayed_stream_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
-        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
-      };
-    }
-    {
-      name = "depd___depd_1.1.1.tgz";
-      path = fetchurl {
-        name = "depd___depd_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz";
-        sha1 = "5783b4e1c459f06fa5ca27f991f3d06e7a310359";
-      };
-    }
-    {
-      name = "depd___depd_1.1.2.tgz";
-      path = fetchurl {
-        name = "depd___depd_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz";
-        sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
-      };
-    }
-    {
-      name = "des.js___des.js_1.0.1.tgz";
-      path = fetchurl {
-        name = "des.js___des.js_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz";
-        sha1 = "5382142e1bdc53f85d86d53e5f4aa7deb91e0843";
-      };
-    }
-    {
-      name = "destroy___destroy_1.0.4.tgz";
-      path = fetchurl {
-        name = "destroy___destroy_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz";
-        sha1 = "978857442c44749e4206613e37946205826abd80";
-      };
-    }
-    {
-      name = "detect_file___detect_file_1.0.0.tgz";
-      path = fetchurl {
-        name = "detect_file___detect_file_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz";
-        sha1 = "f0d66d03672a825cb1b73bdb3fe62310c8e552b7";
-      };
-    }
-    {
-      name = "detect_newline___detect_newline_2.1.0.tgz";
-      path = fetchurl {
-        name = "detect_newline___detect_newline_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz";
-        sha1 = "f41f1c10be4b00e87b5f13da680759f2c5bfd3e2";
-      };
-    }
-    {
-      name = "detect_node___detect_node_2.0.4.tgz";
-      path = fetchurl {
-        name = "detect_node___detect_node_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz";
-        sha1 = "014ee8f8f669c5c58023da64b8179c083a28c46c";
-      };
-    }
-    {
-      name = "diff_sequences___diff_sequences_24.3.0.tgz";
-      path = fetchurl {
-        name = "diff_sequences___diff_sequences_24.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.3.0.tgz";
-        sha1 = "0f20e8a1df1abddaf4d9c226680952e64118b975";
-      };
-    }
-    {
-      name = "diff___diff_3.5.0.tgz";
-      path = fetchurl {
-        name = "diff___diff_3.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz";
-        sha1 = "800c0dd1e0a8bfbc95835c202ad220fe317e5a12";
-      };
-    }
-    {
-      name = "diff___diff_4.0.1.tgz";
-      path = fetchurl {
-        name = "diff___diff_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz";
-        sha1 = "0c667cb467ebbb5cea7f14f135cc2dba7780a8ff";
-      };
-    }
-    {
-      name = "diffie_hellman___diffie_hellman_5.0.3.tgz";
-      path = fetchurl {
-        name = "diffie_hellman___diffie_hellman_5.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz";
-        sha1 = "40e8ee98f55a2149607146921c63e1ae5f3d2875";
-      };
-    }
-    {
-      name = "discontinuous_range___discontinuous_range_1.0.0.tgz";
-      path = fetchurl {
-        name = "discontinuous_range___discontinuous_range_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz";
-        sha1 = "e38331f0844bba49b9a9cb71c771585aab1bc65a";
-      };
-    }
-    {
-      name = "dnd_core___dnd_core_9.5.1.tgz";
-      path = fetchurl {
-        name = "dnd_core___dnd_core_9.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/dnd-core/-/dnd-core-9.5.1.tgz";
-        sha1 = "e9ec02d33529b68fa528865704d40ac4b14f2baf";
-      };
-    }
-    {
-      name = "dns_equal___dns_equal_1.0.0.tgz";
-      path = fetchurl {
-        name = "dns_equal___dns_equal_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz";
-        sha1 = "b39e7f1da6eb0a75ba9c17324b34753c47e0654d";
-      };
-    }
-    {
-      name = "dns_packet___dns_packet_1.3.1.tgz";
-      path = fetchurl {
-        name = "dns_packet___dns_packet_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz";
-        sha1 = "12aa426981075be500b910eedcd0b47dd7deda5a";
-      };
-    }
-    {
-      name = "dns_txt___dns_txt_2.0.2.tgz";
-      path = fetchurl {
-        name = "dns_txt___dns_txt_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz";
-        sha1 = "b91d806f5d27188e4ab3e7d107d881a1cc4642b6";
-      };
-    }
-    {
-      name = "doctrine___doctrine_2.1.0.tgz";
-      path = fetchurl {
-        name = "doctrine___doctrine_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz";
-        sha1 = "5cd01fc101621b42c4cd7f5d1a66243716d3f39d";
-      };
-    }
-    {
-      name = "doctrine___doctrine_3.0.0.tgz";
-      path = fetchurl {
-        name = "doctrine___doctrine_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz";
-        sha1 = "addebead72a6574db783639dc87a121773973961";
-      };
-    }
-    {
-      name = "dom_accessibility_api___dom_accessibility_api_0.4.5.tgz";
-      path = fetchurl {
-        name = "dom_accessibility_api___dom_accessibility_api_0.4.5.tgz";
-        url  = "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.4.5.tgz";
-        sha1 = "d9c1cefa89f509d8cf132ab5d250004d755e76e3";
-      };
-    }
-    {
-      name = "dom_converter___dom_converter_0.2.0.tgz";
-      path = fetchurl {
-        name = "dom_converter___dom_converter_0.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz";
-        sha1 = "6721a9daee2e293682955b6afe416771627bb768";
-      };
-    }
-    {
-      name = "dom_css___dom_css_2.1.0.tgz";
-      path = fetchurl {
-        name = "dom_css___dom_css_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/dom-css/-/dom-css-2.1.0.tgz";
-        sha1 = "fdbc2d5a015d0a3e1872e11472bbd0e7b9e6a202";
-      };
-    }
-    {
-      name = "dom_helpers___dom_helpers_3.3.1.tgz";
-      path = fetchurl {
-        name = "dom_helpers___dom_helpers_3.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.3.1.tgz";
-        sha1 = "fc1a4e15ffdf60ddde03a480a9c0fece821dd4a6";
-      };
-    }
-    {
-      name = "dom_serializer___dom_serializer_0.1.0.tgz";
-      path = fetchurl {
-        name = "dom_serializer___dom_serializer_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz";
-        sha1 = "073c697546ce0780ce23be4a28e293e40bc30c82";
-      };
-    }
-    {
-      name = "domain_browser___domain_browser_1.2.0.tgz";
-      path = fetchurl {
-        name = "domain_browser___domain_browser_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz";
-        sha1 = "3d31f50191a6749dd1375a7f522e823d42e54eda";
-      };
-    }
-    {
-      name = "domelementtype___domelementtype_1.3.0.tgz";
-      path = fetchurl {
-        name = "domelementtype___domelementtype_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz";
-        sha1 = "b17aed82e8ab59e52dd9c19b1756e0fc187204c2";
-      };
-    }
-    {
-      name = "domelementtype___domelementtype_1.3.1.tgz";
-      path = fetchurl {
-        name = "domelementtype___domelementtype_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz";
-        sha1 = "d048c44b37b0d10a7f2a3d5fee3f4333d790481f";
-      };
-    }
-    {
-      name = "domelementtype___domelementtype_1.1.3.tgz";
-      path = fetchurl {
-        name = "domelementtype___domelementtype_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz";
-        sha1 = "bd28773e2642881aec51544924299c5cd822185b";
-      };
-    }
-    {
-      name = "domexception___domexception_1.0.1.tgz";
-      path = fetchurl {
-        name = "domexception___domexception_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz";
-        sha1 = "937442644ca6a31261ef36e3ec677fe805582c90";
-      };
-    }
-    {
-      name = "domhandler___domhandler_2.4.2.tgz";
-      path = fetchurl {
-        name = "domhandler___domhandler_2.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz";
-        sha1 = "8805097e933d65e85546f726d60f5eb88b44f803";
-      };
-    }
-    {
-      name = "domutils___domutils_1.5.1.tgz";
-      path = fetchurl {
-        name = "domutils___domutils_1.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz";
-        sha1 = "dcd8488a26f563d61079e48c9f7b7e32373682cf";
-      };
-    }
-    {
-      name = "domutils___domutils_1.7.0.tgz";
-      path = fetchurl {
-        name = "domutils___domutils_1.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz";
-        sha1 = "56ea341e834e06e6748af7a1cb25da67ea9f8c2a";
-      };
-    }
-    {
-      name = "dot_prop___dot_prop_4.2.0.tgz";
-      path = fetchurl {
-        name = "dot_prop___dot_prop_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz";
-        sha1 = "1f19e0c2e1aa0e32797c49799f2837ac6af69c57";
-      };
-    }
-    {
-      name = "duplexer___duplexer_0.1.1.tgz";
-      path = fetchurl {
-        name = "duplexer___duplexer_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz";
-        sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1";
-      };
-    }
-    {
-      name = "duplexify___duplexify_3.7.1.tgz";
-      path = fetchurl {
-        name = "duplexify___duplexify_3.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz";
-        sha1 = "2a4df5317f6ccfd91f86d6fd25d8d8a103b88309";
-      };
-    }
-    {
-      name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
-      path = fetchurl {
-        name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
-        sha1 = "3a83a904e54353287874c564b7549386849a98c9";
-      };
-    }
-    {
-      name = "ee_first___ee_first_1.1.1.tgz";
-      path = fetchurl {
-        name = "ee_first___ee_first_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz";
-        sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
-      };
-    }
-    {
-      name = "ejs___ejs_2.7.1.tgz";
-      path = fetchurl {
-        name = "ejs___ejs_2.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/ejs/-/ejs-2.7.1.tgz";
-        sha1 = "5b5ab57f718b79d4aca9254457afecd36fa80228";
-      };
-    }
-    {
-      name = "electron_to_chromium___electron_to_chromium_1.3.75.tgz";
-      path = fetchurl {
-        name = "electron_to_chromium___electron_to_chromium_1.3.75.tgz";
-        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.75.tgz";
-        sha1 = "dd04551739e7371862b0ac7f4ddaa9f3f95b7e68";
-      };
-    }
-    {
-      name = "electron_to_chromium___electron_to_chromium_1.3.194.tgz";
-      path = fetchurl {
-        name = "electron_to_chromium___electron_to_chromium_1.3.194.tgz";
-        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.194.tgz";
-        sha1 = "a96452a96d4539131957aade9f634a45721f2819";
-      };
-    }
-    {
-      name = "electron_to_chromium___electron_to_chromium_1.3.96.tgz";
-      path = fetchurl {
-        name = "electron_to_chromium___electron_to_chromium_1.3.96.tgz";
-        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.96.tgz";
-        sha1 = "25770ec99b8b07706dedf3a5f43fa50cb54c4f9a";
-      };
-    }
-    {
-      name = "elegant_spinner___elegant_spinner_1.0.1.tgz";
-      path = fetchurl {
-        name = "elegant_spinner___elegant_spinner_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz";
-        sha1 = "db043521c95d7e303fd8f345bedc3349cfb0729e";
-      };
-    }
-    {
-      name = "element_resize_event___element_resize_event_2.0.9.tgz";
-      path = fetchurl {
-        name = "element_resize_event___element_resize_event_2.0.9.tgz";
-        url  = "https://registry.yarnpkg.com/element-resize-event/-/element-resize-event-2.0.9.tgz";
-        sha1 = "2f5e1581a296eb5275210c141bc56342e218f876";
-      };
-    }
-    {
-      name = "elliptic___elliptic_6.5.2.tgz";
-      path = fetchurl {
-        name = "elliptic___elliptic_6.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz";
-        sha1 = "05c5678d7173c049d8ca433552224a495d0e3762";
-      };
-    }
-    {
-      name = "emoji_regex___emoji_regex_7.0.3.tgz";
-      path = fetchurl {
-        name = "emoji_regex___emoji_regex_7.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz";
-        sha1 = "933a04052860c85e83c122479c4748a8e4c72156";
-      };
-    }
-    {
-      name = "emoji_regex___emoji_regex_8.0.0.tgz";
-      path = fetchurl {
-        name = "emoji_regex___emoji_regex_8.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz";
-        sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37";
-      };
-    }
-    {
-      name = "emojis_list___emojis_list_2.1.0.tgz";
-      path = fetchurl {
-        name = "emojis_list___emojis_list_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz";
-        sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389";
-      };
-    }
-    {
-      name = "emojis_list___emojis_list_3.0.0.tgz";
-      path = fetchurl {
-        name = "emojis_list___emojis_list_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz";
-        sha1 = "5570662046ad29e2e916e71aae260abdff4f6a78";
-      };
-    }
-    {
-      name = "encodeurl___encodeurl_1.0.2.tgz";
-      path = fetchurl {
-        name = "encodeurl___encodeurl_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz";
-        sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
-      };
-    }
-    {
-      name = "encoding___encoding_0.1.12.tgz";
-      path = fetchurl {
-        name = "encoding___encoding_0.1.12.tgz";
-        url  = "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz";
-        sha1 = "538b66f3ee62cd1ab51ec323829d1f9480c74beb";
-      };
-    }
-    {
-      name = "end_of_stream___end_of_stream_1.4.4.tgz";
-      path = fetchurl {
-        name = "end_of_stream___end_of_stream_1.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz";
-        sha1 = "5ae64a5f45057baf3626ec14da0ca5e4b2431eb0";
-      };
-    }
-    {
-      name = "enhanced_resolve___enhanced_resolve_4.1.0.tgz";
-      path = fetchurl {
-        name = "enhanced_resolve___enhanced_resolve_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz";
-        sha1 = "41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f";
-      };
-    }
-    {
-      name = "enhanced_resolve___enhanced_resolve_4.1.1.tgz";
-      path = fetchurl {
-        name = "enhanced_resolve___enhanced_resolve_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz";
-        sha1 = "2937e2b8066cd0fe7ce0990a98f0d71a35189f66";
-      };
-    }
-    {
-      name = "entities___entities_1.1.1.tgz";
-      path = fetchurl {
-        name = "entities___entities_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz";
-        sha1 = "6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0";
-      };
-    }
-    {
-      name = "enzyme_adapter_react_16___enzyme_adapter_react_16_1.6.0.tgz";
-      path = fetchurl {
-        name = "enzyme_adapter_react_16___enzyme_adapter_react_16_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.6.0.tgz";
-        sha1 = "3fca28d3c32f3ff427495380fe2dd51494689073";
-      };
-    }
-    {
-      name = "enzyme_adapter_utils___enzyme_adapter_utils_1.8.1.tgz";
-      path = fetchurl {
-        name = "enzyme_adapter_utils___enzyme_adapter_utils_1.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.8.1.tgz";
-        sha1 = "a927d840ce2c14b42892a533aec836809d4e022b";
-      };
-    }
-    {
-      name = "enzyme_to_json___enzyme_to_json_3.3.4.tgz";
-      path = fetchurl {
-        name = "enzyme_to_json___enzyme_to_json_3.3.4.tgz";
-        url  = "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.3.4.tgz";
-        sha1 = "67c6040e931182f183418af2eb9f4323258aa77f";
-      };
-    }
-    {
-      name = "enzyme___enzyme_3.7.0.tgz";
-      path = fetchurl {
-        name = "enzyme___enzyme_3.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/enzyme/-/enzyme-3.7.0.tgz";
-        sha1 = "9b499e8ca155df44fef64d9f1558961ba1385a46";
-      };
-    }
-    {
-      name = "errno___errno_0.1.7.tgz";
-      path = fetchurl {
-        name = "errno___errno_0.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz";
-        sha1 = "4684d71779ad39af177e3f007996f7c67c852618";
-      };
-    }
-    {
-      name = "error_ex___error_ex_1.3.2.tgz";
-      path = fetchurl {
-        name = "error_ex___error_ex_1.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz";
-        sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf";
-      };
-    }
-    {
-      name = "es_abstract___es_abstract_1.12.0.tgz";
-      path = fetchurl {
-        name = "es_abstract___es_abstract_1.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz";
-        sha1 = "9dbbdd27c6856f0001421ca18782d786bf8a6165";
-      };
-    }
-    {
-      name = "es_abstract___es_abstract_1.17.4.tgz";
-      path = fetchurl {
-        name = "es_abstract___es_abstract_1.17.4.tgz";
-        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz";
-        sha1 = "e3aedf19706b20e7c2594c35fc0d57605a79e184";
-      };
-    }
-    {
-      name = "es_abstract___es_abstract_1.13.0.tgz";
-      path = fetchurl {
-        name = "es_abstract___es_abstract_1.13.0.tgz";
-        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz";
-        sha1 = "ac86145fdd5099d8dd49558ccba2eaf9b88e24e9";
-      };
-    }
-    {
-      name = "es_to_primitive___es_to_primitive_1.2.0.tgz";
-      path = fetchurl {
-        name = "es_to_primitive___es_to_primitive_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz";
-        sha1 = "edf72478033456e8dda8ef09e00ad9650707f377";
-      };
-    }
-    {
-      name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
-      path = fetchurl {
-        name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
-        sha1 = "e55cd4c9cdc188bcefb03b366c736323fc5c898a";
-      };
-    }
-    {
-      name = "es6_promise___es6_promise_4.2.8.tgz";
-      path = fetchurl {
-        name = "es6_promise___es6_promise_4.2.8.tgz";
-        url  = "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz";
-        sha1 = "4eb21594c972bc40553d276e510539143db53e0a";
-      };
-    }
-    {
-      name = "escape_html___escape_html_1.0.3.tgz";
-      path = fetchurl {
-        name = "escape_html___escape_html_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz";
-        sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
-      };
-    }
-    {
-      name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
-      path = fetchurl {
-        name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
-        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
-      };
-    }
-    {
-      name = "escodegen___escodegen_1.11.0.tgz";
-      path = fetchurl {
-        name = "escodegen___escodegen_1.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz";
-        sha1 = "b27a9389481d5bfd5bec76f7bb1eb3f8f4556589";
-      };
-    }
-    {
-      name = "escodegen___escodegen_1.11.1.tgz";
-      path = fetchurl {
-        name = "escodegen___escodegen_1.11.1.tgz";
-        url  = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.1.tgz";
-        sha1 = "c485ff8d6b4cdb89e27f4a856e91f118401ca510";
-      };
-    }
-    {
-      name = "eslint_config_prettier___eslint_config_prettier_6.5.0.tgz";
-      path = fetchurl {
-        name = "eslint_config_prettier___eslint_config_prettier_6.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.5.0.tgz";
-        sha1 = "aaf9a495e2a816865e541bfdbb73a65cc162b3eb";
-      };
-    }
-    {
-      name = "eslint_plugin_jest___eslint_plugin_jest_23.0.2.tgz";
-      path = fetchurl {
-        name = "eslint_plugin_jest___eslint_plugin_jest_23.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-23.0.2.tgz";
-        sha1 = "54a59bfe77245186afe13711a297067aefefff0a";
-      };
-    }
-    {
-      name = "eslint_plugin_react_hooks___eslint_plugin_react_hooks_4.0.5.tgz";
-      path = fetchurl {
-        name = "eslint_plugin_react_hooks___eslint_plugin_react_hooks_4.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.0.5.tgz";
-        sha1 = "4879003aa38e5d05d0312175beb6e4a1f617bfcf";
-      };
-    }
-    {
-      name = "eslint_plugin_react___eslint_plugin_react_7.16.0.tgz";
-      path = fetchurl {
-        name = "eslint_plugin_react___eslint_plugin_react_7.16.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.16.0.tgz";
-        sha1 = "9928e4f3e2122ed3ba6a5b56d0303ba3e41d8c09";
-      };
-    }
-    {
-      name = "eslint_scope___eslint_scope_4.0.3.tgz";
-      path = fetchurl {
-        name = "eslint_scope___eslint_scope_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz";
-        sha1 = "ca03833310f6889a3264781aa82e63eb9cfe7848";
-      };
-    }
-    {
-      name = "eslint_scope___eslint_scope_5.0.0.tgz";
-      path = fetchurl {
-        name = "eslint_scope___eslint_scope_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz";
-        sha1 = "e87c8887c73e8d1ec84f1ca591645c358bfc8fb9";
-      };
-    }
-    {
-      name = "eslint_utils___eslint_utils_1.4.2.tgz";
-      path = fetchurl {
-        name = "eslint_utils___eslint_utils_1.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.2.tgz";
-        sha1 = "166a5180ef6ab7eb462f162fd0e6f2463d7309ab";
-      };
-    }
-    {
-      name = "eslint_utils___eslint_utils_1.4.3.tgz";
-      path = fetchurl {
-        name = "eslint_utils___eslint_utils_1.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz";
-        sha1 = "74fec7c54d0776b6f67e0251040b5806564e981f";
-      };
-    }
-    {
-      name = "eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
-      path = fetchurl {
-        name = "eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz";
-        sha1 = "3f3180fb2e291017716acb4c9d6d5b5c34a6a81d";
-      };
-    }
-    {
-      name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
-      path = fetchurl {
-        name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz";
-        sha1 = "e2a82cea84ff246ad6fb57f9bde5b46621459ec2";
-      };
-    }
-    {
-      name = "eslint___eslint_6.6.0.tgz";
-      path = fetchurl {
-        name = "eslint___eslint_6.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint/-/eslint-6.6.0.tgz";
-        sha1 = "4a01a2fb48d32aacef5530ee9c5a78f11a8afd04";
-      };
-    }
-    {
-      name = "espree___espree_6.1.2.tgz";
-      path = fetchurl {
-        name = "espree___espree_6.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/espree/-/espree-6.1.2.tgz";
-        sha1 = "6c272650932b4f91c3714e5e7b5f5e2ecf47262d";
-      };
-    }
-    {
-      name = "esprima___esprima_3.1.3.tgz";
-      path = fetchurl {
-        name = "esprima___esprima_3.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz";
-        sha1 = "fdca51cee6133895e3c88d535ce49dbff62a4633";
-      };
-    }
-    {
-      name = "esprima___esprima_4.0.1.tgz";
-      path = fetchurl {
-        name = "esprima___esprima_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz";
-        sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71";
-      };
-    }
-    {
-      name = "esquery___esquery_1.0.1.tgz";
-      path = fetchurl {
-        name = "esquery___esquery_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz";
-        sha1 = "406c51658b1f5991a5f9b62b1dc25b00e3e5c708";
-      };
-    }
-    {
-      name = "esrecurse___esrecurse_4.2.1.tgz";
-      path = fetchurl {
-        name = "esrecurse___esrecurse_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz";
-        sha1 = "007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf";
-      };
-    }
-    {
-      name = "estraverse___estraverse_4.2.0.tgz";
-      path = fetchurl {
-        name = "estraverse___estraverse_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz";
-        sha1 = "0dee3fed31fcd469618ce7342099fc1afa0bdb13";
-      };
-    }
-    {
-      name = "estraverse___estraverse_4.3.0.tgz";
-      path = fetchurl {
-        name = "estraverse___estraverse_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz";
-        sha1 = "398ad3f3c5a24948be7725e83d11a7de28cdbd1d";
-      };
-    }
-    {
-      name = "esutils___esutils_2.0.2.tgz";
-      path = fetchurl {
-        name = "esutils___esutils_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz";
-        sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b";
-      };
-    }
-    {
-      name = "etag___etag_1.8.1.tgz";
-      path = fetchurl {
-        name = "etag___etag_1.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz";
-        sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
-      };
-    }
-    {
-      name = "eventemitter2___eventemitter2_6.4.3.tgz";
-      path = fetchurl {
-        name = "eventemitter2___eventemitter2_6.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.3.tgz";
-        sha1 = "35c563619b13f3681e7eb05cbdaf50f56ba58820";
-      };
-    }
-    {
-      name = "eventemitter3___eventemitter3_3.1.2.tgz";
-      path = fetchurl {
-        name = "eventemitter3___eventemitter3_3.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz";
-        sha1 = "2d3d48f9c346698fce83a85d7d664e98535df6e7";
-      };
-    }
-    {
-      name = "eventemitter3___eventemitter3_4.0.0.tgz";
-      path = fetchurl {
-        name = "eventemitter3___eventemitter3_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz";
-        sha1 = "d65176163887ee59f386d64c82610b696a4a74eb";
-      };
-    }
-    {
-      name = "events___events_3.1.0.tgz";
-      path = fetchurl {
-        name = "events___events_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz";
-        sha1 = "84279af1b34cb75aa88bf5ff291f6d0bd9b31a59";
-      };
-    }
-    {
-      name = "eventsource___eventsource_1.0.7.tgz";
-      path = fetchurl {
-        name = "eventsource___eventsource_1.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz";
-        sha1 = "8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0";
-      };
-    }
-    {
-      name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
-      path = fetchurl {
-        name = "evp_bytestokey___evp_bytestokey_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz";
-        sha1 = "7fcbdb198dc71959432efe13842684e0525acb02";
-      };
-    }
-    {
-      name = "exec_sh___exec_sh_0.3.2.tgz";
-      path = fetchurl {
-        name = "exec_sh___exec_sh_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.2.tgz";
-        sha1 = "6738de2eb7c8e671d0366aea0b0db8c6f7d7391b";
-      };
-    }
-    {
-      name = "execa___execa_1.0.0.tgz";
-      path = fetchurl {
-        name = "execa___execa_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz";
-        sha1 = "c6236a5bb4df6d6f15e88e7f017798216749ddd8";
-      };
-    }
-    {
-      name = "executable___executable_4.1.1.tgz";
-      path = fetchurl {
-        name = "executable___executable_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz";
-        sha1 = "41532bff361d3e57af4d763b70582db18f5d133c";
-      };
-    }
-    {
-      name = "exit_hook___exit_hook_1.1.1.tgz";
-      path = fetchurl {
-        name = "exit_hook___exit_hook_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz";
-        sha1 = "f05ca233b48c05d54fff07765df8507e95c02ff8";
-      };
-    }
-    {
-      name = "exit___exit_0.1.2.tgz";
-      path = fetchurl {
-        name = "exit___exit_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz";
-        sha1 = "0632638f8d877cc82107d30a0fff1a17cba1cd0c";
-      };
-    }
-    {
-      name = "expand_brackets___expand_brackets_2.1.4.tgz";
-      path = fetchurl {
-        name = "expand_brackets___expand_brackets_2.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz";
-        sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
-      };
-    }
-    {
-      name = "expand_tilde___expand_tilde_2.0.2.tgz";
-      path = fetchurl {
-        name = "expand_tilde___expand_tilde_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz";
-        sha1 = "97e801aa052df02454de46b02bf621642cdc8502";
-      };
-    }
-    {
-      name = "expect___expect_24.8.0.tgz";
-      path = fetchurl {
-        name = "expect___expect_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/expect/-/expect-24.8.0.tgz";
-        sha1 = "471f8ec256b7b6129ca2524b2a62f030df38718d";
-      };
-    }
-    {
-      name = "express___express_4.16.3.tgz";
-      path = fetchurl {
-        name = "express___express_4.16.3.tgz";
-        url  = "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz";
-        sha1 = "6af8a502350db3246ecc4becf6b5a34d22f7ed53";
-      };
-    }
-    {
-      name = "express___express_4.17.1.tgz";
-      path = fetchurl {
-        name = "express___express_4.17.1.tgz";
-        url  = "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz";
-        sha1 = "4491fc38605cf51f8629d39c2b5d026f98a4c134";
-      };
-    }
-    {
-      name = "extend_shallow___extend_shallow_2.0.1.tgz";
-      path = fetchurl {
-        name = "extend_shallow___extend_shallow_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz";
-        sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
-      };
-    }
-    {
-      name = "extend_shallow___extend_shallow_3.0.2.tgz";
-      path = fetchurl {
-        name = "extend_shallow___extend_shallow_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz";
-        sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
-      };
-    }
-    {
-      name = "extend___extend_3.0.2.tgz";
-      path = fetchurl {
-        name = "extend___extend_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
-        sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
-      };
-    }
-    {
-      name = "external_editor___external_editor_3.0.3.tgz";
-      path = fetchurl {
-        name = "external_editor___external_editor_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/external-editor/-/external-editor-3.0.3.tgz";
-        sha1 = "5866db29a97826dbe4bf3afd24070ead9ea43a27";
-      };
-    }
-    {
-      name = "extglob___extglob_2.0.4.tgz";
-      path = fetchurl {
-        name = "extglob___extglob_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz";
-        sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543";
-      };
-    }
-    {
-      name = "extract_zip___extract_zip_1.7.0.tgz";
-      path = fetchurl {
-        name = "extract_zip___extract_zip_1.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz";
-        sha1 = "556cc3ae9df7f452c493a0cfb51cc30277940927";
-      };
-    }
-    {
-      name = "extsprintf___extsprintf_1.3.0.tgz";
-      path = fetchurl {
-        name = "extsprintf___extsprintf_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
-        sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
-      };
-    }
-    {
-      name = "extsprintf___extsprintf_1.4.0.tgz";
-      path = fetchurl {
-        name = "extsprintf___extsprintf_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
-        sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
-      };
-    }
-    {
-      name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
-      path = fetchurl {
-        name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz";
-        sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
-      };
-    }
-    {
-      name = "fast_deep_equal___fast_deep_equal_3.1.1.tgz";
-      path = fetchurl {
-        name = "fast_deep_equal___fast_deep_equal_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz";
-        sha1 = "545145077c501491e33b15ec408c294376e94ae4";
-      };
-    }
-    {
-      name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
-      path = fetchurl {
-        name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
-        sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
-      };
-    }
-    {
-      name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
-      path = fetchurl {
-        name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
-        sha1 = "874bf69c6f404c2b5d99c481341399fd55892633";
-      };
-    }
-    {
-      name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
-      path = fetchurl {
-        name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
-        sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
-      };
-    }
-    {
-      name = "fast_plist___fast_plist_0.1.2.tgz";
-      path = fetchurl {
-        name = "fast_plist___fast_plist_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/fast-plist/-/fast-plist-0.1.2.tgz";
-        sha1 = "a45aff345196006d406ca6cdcd05f69051ef35b8";
-      };
-    }
-    {
-      name = "fast.js___fast.js_0.1.1.tgz";
-      path = fetchurl {
-        name = "fast.js___fast.js_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/fast.js/-/fast.js-0.1.1.tgz";
-        sha1 = "7c024d55ae144882fbcee44b79005fe2dcabd9fe";
-      };
-    }
-    {
-      name = "faye_websocket___faye_websocket_0.10.0.tgz";
-      path = fetchurl {
-        name = "faye_websocket___faye_websocket_0.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz";
-        sha1 = "4e492f8d04dfb6f89003507f6edbf2d501e7c6f4";
-      };
-    }
-    {
-      name = "faye_websocket___faye_websocket_0.11.3.tgz";
-      path = fetchurl {
-        name = "faye_websocket___faye_websocket_0.11.3.tgz";
-        url  = "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz";
-        sha1 = "5c0e9a8968e8912c286639fde977a8b209f2508e";
-      };
-    }
-    {
-      name = "fb_watchman___fb_watchman_2.0.0.tgz";
-      path = fetchurl {
-        name = "fb_watchman___fb_watchman_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz";
-        sha1 = "54e9abf7dfa2f26cd9b1636c588c1afc05de5d58";
-      };
-    }
-    {
-      name = "fbjs___fbjs_0.8.17.tgz";
-      path = fetchurl {
-        name = "fbjs___fbjs_0.8.17.tgz";
-        url  = "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz";
-        sha1 = "c4d598ead6949112653d6588b01a5cdcd9f90fdd";
-      };
-    }
-    {
-      name = "fd_slicer___fd_slicer_1.1.0.tgz";
-      path = fetchurl {
-        name = "fd_slicer___fd_slicer_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz";
-        sha1 = "25c7c89cb1f9077f8891bbe61d8f390eae256f1e";
-      };
-    }
-    {
-      name = "figgy_pudding___figgy_pudding_3.5.1.tgz";
-      path = fetchurl {
-        name = "figgy_pudding___figgy_pudding_3.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz";
-        sha1 = "862470112901c727a0e495a80744bd5baa1d6790";
-      };
-    }
-    {
-      name = "figures___figures_1.7.0.tgz";
-      path = fetchurl {
-        name = "figures___figures_1.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz";
-        sha1 = "cbe1e3affcf1cd44b80cadfed28dc793a9701d2e";
-      };
-    }
-    {
-      name = "figures___figures_2.0.0.tgz";
-      path = fetchurl {
-        name = "figures___figures_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz";
-        sha1 = "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962";
-      };
-    }
-    {
-      name = "figures___figures_3.1.0.tgz";
-      path = fetchurl {
-        name = "figures___figures_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/figures/-/figures-3.1.0.tgz";
-        sha1 = "4b198dd07d8d71530642864af2d45dd9e459c4ec";
-      };
-    }
-    {
-      name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
-      path = fetchurl {
-        name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz";
-        sha1 = "ca0f6efa6dd3d561333fb14515065c2fafdf439c";
-      };
-    }
-    {
-      name = "file_loader___file_loader_4.1.0.tgz";
-      path = fetchurl {
-        name = "file_loader___file_loader_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/file-loader/-/file-loader-4.1.0.tgz";
-        sha1 = "3a763391bc9502da7c59612fe348e38fc1980336";
-      };
-    }
-    {
-      name = "file_uri_to_path___file_uri_to_path_1.0.0.tgz";
-      path = fetchurl {
-        name = "file_uri_to_path___file_uri_to_path_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
-        sha1 = "553a7b8446ff6f684359c445f1e37a05dacc33dd";
-      };
-    }
-    {
-      name = "filesize___filesize_3.6.1.tgz";
-      path = fetchurl {
-        name = "filesize___filesize_3.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz";
-        sha1 = "090bb3ee01b6f801a8a8be99d31710b3422bb317";
-      };
-    }
-    {
-      name = "fill_range___fill_range_4.0.0.tgz";
-      path = fetchurl {
-        name = "fill_range___fill_range_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz";
-        sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
-      };
-    }
-    {
-      name = "fill_range___fill_range_7.0.1.tgz";
-      path = fetchurl {
-        name = "fill_range___fill_range_7.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz";
-        sha1 = "1919a6a7c75fe38b2c7c77e5198535da9acdda40";
-      };
-    }
-    {
-      name = "finalhandler___finalhandler_1.1.1.tgz";
-      path = fetchurl {
-        name = "finalhandler___finalhandler_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz";
-        sha1 = "eebf4ed840079c83f4249038c9d703008301b105";
-      };
-    }
-    {
-      name = "finalhandler___finalhandler_1.1.2.tgz";
-      path = fetchurl {
-        name = "finalhandler___finalhandler_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz";
-        sha1 = "b7e7d000ffd11938d0fdb053506f6ebabe9f587d";
-      };
-    }
-    {
-      name = "find_cache_dir___find_cache_dir_2.0.0.tgz";
-      path = fetchurl {
-        name = "find_cache_dir___find_cache_dir_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz";
-        sha1 = "4c1faed59f45184530fb9d7fa123a4d04a98472d";
-      };
-    }
-    {
-      name = "find_cache_dir___find_cache_dir_2.1.0.tgz";
-      path = fetchurl {
-        name = "find_cache_dir___find_cache_dir_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz";
-        sha1 = "8d0f94cd13fe43c6c7c261a0d86115ca918c05f7";
-      };
-    }
-    {
-      name = "find_cache_dir___find_cache_dir_3.1.0.tgz";
-      path = fetchurl {
-        name = "find_cache_dir___find_cache_dir_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.1.0.tgz";
-        sha1 = "9935894999debef4cf9f677fdf646d002c4cdecb";
-      };
-    }
-    {
-      name = "find_up___find_up_3.0.0.tgz";
-      path = fetchurl {
-        name = "find_up___find_up_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz";
-        sha1 = "49169f1d7993430646da61ecc5ae355c21c97b73";
-      };
-    }
-    {
-      name = "find_up___find_up_4.1.0.tgz";
-      path = fetchurl {
-        name = "find_up___find_up_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz";
-        sha1 = "97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19";
-      };
-    }
-    {
-      name = "findup_sync___findup_sync_3.0.0.tgz";
-      path = fetchurl {
-        name = "findup_sync___findup_sync_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz";
-        sha1 = "17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1";
-      };
-    }
-    {
-      name = "flat_cache___flat_cache_2.0.1.tgz";
-      path = fetchurl {
-        name = "flat_cache___flat_cache_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz";
-        sha1 = "5d296d6f04bda44a4630a301413bdbc2ec085ec0";
-      };
-    }
-    {
-      name = "flatted___flatted_2.0.0.tgz";
-      path = fetchurl {
-        name = "flatted___flatted_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz";
-        sha1 = "55122b6536ea496b4b44893ee2608141d10d9916";
-      };
-    }
-    {
-      name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
-      path = fetchurl {
-        name = "flush_write_stream___flush_write_stream_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz";
-        sha1 = "8dd7d873a1babc207d94ead0c2e0e44276ebf2e8";
-      };
-    }
-    {
-      name = "follow_redirects___follow_redirects_1.5.10.tgz";
-      path = fetchurl {
-        name = "follow_redirects___follow_redirects_1.5.10.tgz";
-        url  = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz";
-        sha1 = "7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a";
-      };
-    }
-    {
-      name = "follow_redirects___follow_redirects_1.10.0.tgz";
-      path = fetchurl {
-        name = "follow_redirects___follow_redirects_1.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.10.0.tgz";
-        sha1 = "01f5263aee921c6a54fb91667f08f4155ce169eb";
-      };
-    }
-    {
-      name = "for_in___for_in_0.1.8.tgz";
-      path = fetchurl {
-        name = "for_in___for_in_0.1.8.tgz";
-        url  = "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz";
-        sha1 = "d8773908e31256109952b1fdb9b3fa867d2775e1";
-      };
-    }
-    {
-      name = "for_in___for_in_1.0.2.tgz";
-      path = fetchurl {
-        name = "for_in___for_in_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz";
-        sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
-      };
-    }
-    {
-      name = "for_own___for_own_1.0.0.tgz";
-      path = fetchurl {
-        name = "for_own___for_own_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz";
-        sha1 = "c63332f415cedc4b04dbfe70cf836494c53cb44b";
-      };
-    }
-    {
-      name = "forever_agent___forever_agent_0.6.1.tgz";
-      path = fetchurl {
-        name = "forever_agent___forever_agent_0.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
-        sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
-      };
-    }
-    {
-      name = "fork_ts_checker_webpack_plugin___fork_ts_checker_webpack_plugin_1.4.3.tgz";
-      path = fetchurl {
-        name = "fork_ts_checker_webpack_plugin___fork_ts_checker_webpack_plugin_1.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.4.3.tgz";
-        sha1 = "2252c1f8ad1b25313e056835d939b423ea240cd6";
-      };
-    }
-    {
-      name = "form_data___form_data_2.5.1.tgz";
-      path = fetchurl {
-        name = "form_data___form_data_2.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz";
-        sha1 = "f2cbec57b5e59e23716e128fe44d4e5dd23895f4";
-      };
-    }
-    {
-      name = "form_data___form_data_2.3.3.tgz";
-      path = fetchurl {
-        name = "form_data___form_data_2.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
-        sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
-      };
-    }
-    {
-      name = "formidable___formidable_1.2.1.tgz";
-      path = fetchurl {
-        name = "formidable___formidable_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/formidable/-/formidable-1.2.1.tgz";
-        sha1 = "70fb7ca0290ee6ff961090415f4b3df3d2082659";
-      };
-    }
-    {
-      name = "forwarded___forwarded_0.1.2.tgz";
-      path = fetchurl {
-        name = "forwarded___forwarded_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz";
-        sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
-      };
-    }
-    {
-      name = "fragment_cache___fragment_cache_0.2.1.tgz";
-      path = fetchurl {
-        name = "fragment_cache___fragment_cache_0.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz";
-        sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
-      };
-    }
-    {
-      name = "fresh___fresh_0.5.2.tgz";
-      path = fetchurl {
-        name = "fresh___fresh_0.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz";
-        sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
-      };
-    }
-    {
-      name = "from2___from2_2.3.0.tgz";
-      path = fetchurl {
-        name = "from2___from2_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz";
-        sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af";
-      };
-    }
-    {
-      name = "fs_extra___fs_extra_8.1.0.tgz";
-      path = fetchurl {
-        name = "fs_extra___fs_extra_8.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz";
-        sha1 = "49d43c45a88cd9677668cb7be1b46efdb8d2e1c0";
-      };
-    }
-    {
-      name = "fs_minipass___fs_minipass_2.0.0.tgz";
-      path = fetchurl {
-        name = "fs_minipass___fs_minipass_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.0.0.tgz";
-        sha1 = "a6415edab02fae4b9e9230bc87ee2e4472003cd1";
-      };
-    }
-    {
-      name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
-      path = fetchurl {
-        name = "fs_write_stream_atomic___fs_write_stream_atomic_1.0.10.tgz";
-        url  = "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz";
-        sha1 = "b47df53493ef911df75731e70a9ded0189db40c9";
-      };
-    }
-    {
-      name = "fs.realpath___fs.realpath_1.0.0.tgz";
-      path = fetchurl {
-        name = "fs.realpath___fs.realpath_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
-        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
-      };
-    }
-    {
-      name = "fsevents___fsevents_1.2.12.tgz";
-      path = fetchurl {
-        name = "fsevents___fsevents_1.2.12.tgz";
-        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.12.tgz";
-        sha1 = "db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c";
-      };
-    }
-    {
-      name = "fsevents___fsevents_2.0.7.tgz";
-      path = fetchurl {
-        name = "fsevents___fsevents_2.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.0.7.tgz";
-        sha1 = "382c9b443c6cbac4c57187cdda23aa3bf1ccfc2a";
-      };
-    }
-    {
-      name = "function_bind___function_bind_1.1.1.tgz";
-      path = fetchurl {
-        name = "function_bind___function_bind_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz";
-        sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
-      };
-    }
-    {
-      name = "function.prototype.name___function.prototype.name_1.1.0.tgz";
-      path = fetchurl {
-        name = "function.prototype.name___function.prototype.name_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.0.tgz";
-        sha1 = "8bd763cc0af860a859cc5d49384d74b932cd2327";
-      };
-    }
-    {
-      name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
-      path = fetchurl {
-        name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
-        sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
-      };
-    }
-    {
-      name = "get_caller_file___get_caller_file_1.0.3.tgz";
-      path = fetchurl {
-        name = "get_caller_file___get_caller_file_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz";
-        sha1 = "f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a";
-      };
-    }
-    {
-      name = "get_caller_file___get_caller_file_2.0.5.tgz";
-      path = fetchurl {
-        name = "get_caller_file___get_caller_file_2.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz";
-        sha1 = "4f94412a82db32f36e3b0b9741f8a97feb031f7e";
-      };
-    }
-    {
-      name = "get_stdin___get_stdin_6.0.0.tgz";
-      path = fetchurl {
-        name = "get_stdin___get_stdin_6.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz";
-        sha1 = "9e09bf712b360ab9225e812048f71fde9c89657b";
-      };
-    }
-    {
-      name = "get_stream___get_stream_4.1.0.tgz";
-      path = fetchurl {
-        name = "get_stream___get_stream_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz";
-        sha1 = "c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5";
-      };
-    }
-    {
-      name = "get_value___get_value_2.0.6.tgz";
-      path = fetchurl {
-        name = "get_value___get_value_2.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz";
-        sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
-      };
-    }
-    {
-      name = "getos___getos_3.2.1.tgz";
-      path = fetchurl {
-        name = "getos___getos_3.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz";
-        sha1 = "0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5";
-      };
-    }
-    {
-      name = "getpass___getpass_0.1.7.tgz";
-      path = fetchurl {
-        name = "getpass___getpass_0.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
-        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
-      };
-    }
-    {
-      name = "glob_parent___glob_parent_3.1.0.tgz";
-      path = fetchurl {
-        name = "glob_parent___glob_parent_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz";
-        sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
-      };
-    }
-    {
-      name = "glob_parent___glob_parent_5.0.0.tgz";
-      path = fetchurl {
-        name = "glob_parent___glob_parent_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz";
-        sha1 = "1dc99f0f39b006d3e92c2c284068382f0c20e954";
-      };
-    }
-    {
-      name = "glob_to_regexp___glob_to_regexp_0.3.0.tgz";
-      path = fetchurl {
-        name = "glob_to_regexp___glob_to_regexp_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz";
-        sha1 = "8c5a1494d2066c570cc3bfe4496175acc4d502ab";
-      };
-    }
-    {
-      name = "glob___glob_7.1.2.tgz";
-      path = fetchurl {
-        name = "glob___glob_7.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz";
-        sha1 = "c19c9df9a028702d678612384a6552404c636d15";
-      };
-    }
-    {
-      name = "glob___glob_7.1.6.tgz";
-      path = fetchurl {
-        name = "glob___glob_7.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz";
-        sha1 = "141f33b81a7c2492e125594307480c46679278a6";
-      };
-    }
-    {
-      name = "glob___glob_7.1.4.tgz";
-      path = fetchurl {
-        name = "glob___glob_7.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz";
-        sha1 = "aa608a2f6c577ad357e1ae5a5c26d9a8d1969255";
-      };
-    }
-    {
-      name = "global_dirs___global_dirs_2.0.1.tgz";
-      path = fetchurl {
-        name = "global_dirs___global_dirs_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz";
-        sha1 = "acdf3bb6685bcd55cb35e8a052266569e9469201";
-      };
-    }
-    {
-      name = "global_modules___global_modules_2.0.0.tgz";
-      path = fetchurl {
-        name = "global_modules___global_modules_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz";
-        sha1 = "997605ad2345f27f51539bea26574421215c7780";
-      };
-    }
-    {
-      name = "global_modules___global_modules_1.0.0.tgz";
-      path = fetchurl {
-        name = "global_modules___global_modules_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz";
-        sha1 = "6d770f0eb523ac78164d72b5e71a8877265cc3ea";
-      };
-    }
-    {
-      name = "global_prefix___global_prefix_1.0.2.tgz";
-      path = fetchurl {
-        name = "global_prefix___global_prefix_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz";
-        sha1 = "dbf743c6c14992593c655568cb66ed32c0122ebe";
-      };
-    }
-    {
-      name = "global_prefix___global_prefix_3.0.0.tgz";
-      path = fetchurl {
-        name = "global_prefix___global_prefix_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz";
-        sha1 = "fc85f73064df69f50421f47f883fe5b913ba9b97";
-      };
-    }
-    {
-      name = "globals___globals_11.12.0.tgz";
-      path = fetchurl {
-        name = "globals___globals_11.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz";
-        sha1 = "ab8795338868a0babd8525758018c2a7eb95c42e";
-      };
-    }
-    {
-      name = "globals___globals_11.9.0.tgz";
-      path = fetchurl {
-        name = "globals___globals_11.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz";
-        sha1 = "bde236808e987f290768a93d065060d78e6ab249";
-      };
-    }
-    {
-      name = "globby___globby_6.1.0.tgz";
-      path = fetchurl {
-        name = "globby___globby_6.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz";
-        sha1 = "f5a6d70e8395e21c858fb0489d64df02424d506c";
-      };
-    }
-    {
-      name = "graceful_fs___graceful_fs_4.2.3.tgz";
-      path = fetchurl {
-        name = "graceful_fs___graceful_fs_4.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz";
-        sha1 = "4a12ff1b60376ef09862c2093edd908328be8423";
-      };
-    }
-    {
-      name = "graceful_fs___graceful_fs_4.1.11.tgz";
-      path = fetchurl {
-        name = "graceful_fs___graceful_fs_4.1.11.tgz";
-        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz";
-        sha1 = "0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658";
-      };
-    }
-    {
-      name = "graceful_fs___graceful_fs_4.2.4.tgz";
-      path = fetchurl {
-        name = "graceful_fs___graceful_fs_4.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz";
-        sha1 = "2256bde14d3632958c465ebc96dc467ca07a29fb";
-      };
-    }
-    {
-      name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
-      path = fetchurl {
-        name = "graceful_readlink___graceful_readlink_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
-        sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
-      };
-    }
-    {
-      name = "growl___growl_1.10.5.tgz";
-      path = fetchurl {
-        name = "growl___growl_1.10.5.tgz";
-        url  = "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz";
-        sha1 = "f2735dc2283674fa67478b10181059355c369e5e";
-      };
-    }
-    {
-      name = "growly___growly_1.3.0.tgz";
-      path = fetchurl {
-        name = "growly___growly_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz";
-        sha1 = "f10748cbe76af964b7c96c93c6bcc28af120c081";
-      };
-    }
-    {
-      name = "gud___gud_1.0.0.tgz";
-      path = fetchurl {
-        name = "gud___gud_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz";
-        sha1 = "a489581b17e6a70beca9abe3ae57de7a499852c0";
-      };
-    }
-    {
-      name = "gzip_size___gzip_size_5.1.1.tgz";
-      path = fetchurl {
-        name = "gzip_size___gzip_size_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz";
-        sha1 = "cb9bee692f87c0612b232840a873904e4c135274";
-      };
-    }
-    {
-      name = "handle_thing___handle_thing_2.0.0.tgz";
-      path = fetchurl {
-        name = "handle_thing___handle_thing_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz";
-        sha1 = "0e039695ff50c93fc288557d696f3c1dc6776754";
-      };
-    }
-    {
-      name = "handlebars___handlebars_4.1.2.tgz";
-      path = fetchurl {
-        name = "handlebars___handlebars_4.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz";
-        sha1 = "b6b37c1ced0306b221e094fc7aca3ec23b131b67";
-      };
-    }
-    {
-      name = "har_schema___har_schema_2.0.0.tgz";
-      path = fetchurl {
-        name = "har_schema___har_schema_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
-        sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
-      };
-    }
-    {
-      name = "har_validator___har_validator_5.1.3.tgz";
-      path = fetchurl {
-        name = "har_validator___har_validator_5.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz";
-        sha1 = "1ef89ebd3e4996557675eed9893110dc350fa080";
-      };
-    }
-    {
-      name = "harmony_reflect___harmony_reflect_1.6.1.tgz";
-      path = fetchurl {
-        name = "harmony_reflect___harmony_reflect_1.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz";
-        sha1 = "c108d4f2bb451efef7a37861fdbdae72c9bdefa9";
-      };
-    }
-    {
-      name = "has_ansi___has_ansi_2.0.0.tgz";
-      path = fetchurl {
-        name = "has_ansi___has_ansi_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz";
-        sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
-      };
-    }
-    {
-      name = "has_flag___has_flag_1.0.0.tgz";
-      path = fetchurl {
-        name = "has_flag___has_flag_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz";
-        sha1 = "9d9e793165ce017a00f00418c43f942a7b1d11fa";
-      };
-    }
-    {
-      name = "has_flag___has_flag_3.0.0.tgz";
-      path = fetchurl {
-        name = "has_flag___has_flag_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz";
-        sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
-      };
-    }
-    {
-      name = "has_flag___has_flag_4.0.0.tgz";
-      path = fetchurl {
-        name = "has_flag___has_flag_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz";
-        sha1 = "944771fd9c81c81265c4d6941860da06bb59479b";
-      };
-    }
-    {
-      name = "has_symbols___has_symbols_1.0.0.tgz";
-      path = fetchurl {
-        name = "has_symbols___has_symbols_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz";
-        sha1 = "ba1a8f1af2a0fc39650f5c850367704122063b44";
-      };
-    }
-    {
-      name = "has_symbols___has_symbols_1.0.1.tgz";
-      path = fetchurl {
-        name = "has_symbols___has_symbols_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz";
-        sha1 = "9f5214758a44196c406d9bd76cebf81ec2dd31e8";
-      };
-    }
-    {
-      name = "has_value___has_value_0.3.1.tgz";
-      path = fetchurl {
-        name = "has_value___has_value_0.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz";
-        sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
-      };
-    }
-    {
-      name = "has_value___has_value_1.0.0.tgz";
-      path = fetchurl {
-        name = "has_value___has_value_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz";
-        sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
-      };
-    }
-    {
-      name = "has_values___has_values_0.1.4.tgz";
-      path = fetchurl {
-        name = "has_values___has_values_0.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz";
-        sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
-      };
-    }
-    {
-      name = "has_values___has_values_1.0.0.tgz";
-      path = fetchurl {
-        name = "has_values___has_values_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz";
-        sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
-      };
-    }
-    {
-      name = "has___has_1.0.3.tgz";
-      path = fetchurl {
-        name = "has___has_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
-        sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
-      };
-    }
-    {
-      name = "hash_base___hash_base_3.0.4.tgz";
-      path = fetchurl {
-        name = "hash_base___hash_base_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz";
-        sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918";
-      };
-    }
-    {
-      name = "hash.js___hash.js_1.1.7.tgz";
-      path = fetchurl {
-        name = "hash.js___hash.js_1.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz";
-        sha1 = "0babca538e8d4ee4a0f8988d68866537a003cf42";
-      };
-    }
-    {
-      name = "he___he_1.1.1.tgz";
-      path = fetchurl {
-        name = "he___he_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz";
-        sha1 = "93410fd21b009735151f8868c2f271f3427e23fd";
-      };
-    }
-    {
-      name = "he___he_1.2.0.tgz";
-      path = fetchurl {
-        name = "he___he_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz";
-        sha1 = "84ae65fa7eafb165fddb61566ae14baf05664f0f";
-      };
-    }
-    {
-      name = "hex_color_regex___hex_color_regex_1.1.0.tgz";
-      path = fetchurl {
-        name = "hex_color_regex___hex_color_regex_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz";
-        sha1 = "4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e";
-      };
-    }
-    {
-      name = "history___history_4.10.1.tgz";
-      path = fetchurl {
-        name = "history___history_4.10.1.tgz";
-        url  = "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz";
-        sha1 = "33371a65e3a83b267434e2b3f3b1b4c58aad4cf3";
-      };
-    }
-    {
-      name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
-      path = fetchurl {
-        name = "hmac_drbg___hmac_drbg_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz";
-        sha1 = "d2745701025a6c775a6c545793ed502fc0c649a1";
-      };
-    }
-    {
-      name = "hoist_non_react_statics___hoist_non_react_statics_1.2.0.tgz";
-      path = fetchurl {
-        name = "hoist_non_react_statics___hoist_non_react_statics_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz";
-        sha1 = "aa448cf0986d55cc40773b17174b7dd066cb7cfb";
-      };
-    }
-    {
-      name = "hoist_non_react_statics___hoist_non_react_statics_3.3.2.tgz";
-      path = fetchurl {
-        name = "hoist_non_react_statics___hoist_non_react_statics_3.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz";
-        sha1 = "ece0acaf71d62c2969c2ec59feff42a4b1a85b45";
-      };
-    }
-    {
-      name = "hoist_non_react_statics___hoist_non_react_statics_3.3.1.tgz";
-      path = fetchurl {
-        name = "hoist_non_react_statics___hoist_non_react_statics_3.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz";
-        sha1 = "101685d3aff3b23ea213163f6e8e12f4f111e19f";
-      };
-    }
-    {
-      name = "homedir_polyfill___homedir_polyfill_1.0.3.tgz";
-      path = fetchurl {
-        name = "homedir_polyfill___homedir_polyfill_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz";
-        sha1 = "743298cef4e5af3e194161fbadcc2151d3a058e8";
-      };
-    }
-    {
-      name = "honeybadger_js___honeybadger_js_1.0.2.tgz";
-      path = fetchurl {
-        name = "honeybadger_js___honeybadger_js_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/honeybadger-js/-/honeybadger-js-1.0.2.tgz";
-        sha1 = "f5abb30c4d036773fe9b2c8c1b77dd855b158dab";
-      };
-    }
-    {
-      name = "hoopy___hoopy_0.1.4.tgz";
-      path = fetchurl {
-        name = "hoopy___hoopy_0.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz";
-        sha1 = "609207d661100033a9a9402ad3dea677381c1b1d";
-      };
-    }
-    {
-      name = "hosted_git_info___hosted_git_info_2.7.1.tgz";
-      path = fetchurl {
-        name = "hosted_git_info___hosted_git_info_2.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz";
-        sha1 = "97f236977bd6e125408930ff6de3eec6281ec047";
-      };
-    }
-    {
-      name = "hpack.js___hpack.js_2.1.6.tgz";
-      path = fetchurl {
-        name = "hpack.js___hpack.js_2.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz";
-        sha1 = "87774c0949e513f42e84575b3c45681fade2a0b2";
-      };
-    }
-    {
-      name = "hsl_regex___hsl_regex_1.0.0.tgz";
-      path = fetchurl {
-        name = "hsl_regex___hsl_regex_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz";
-        sha1 = "d49330c789ed819e276a4c0d272dffa30b18fe6e";
-      };
-    }
-    {
-      name = "hsla_regex___hsla_regex_1.0.0.tgz";
-      path = fetchurl {
-        name = "hsla_regex___hsla_regex_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz";
-        sha1 = "c1ce7a3168c8c6614033a4b5f7877f3b225f9c38";
-      };
-    }
-    {
-      name = "html_comment_regex___html_comment_regex_1.1.2.tgz";
-      path = fetchurl {
-        name = "html_comment_regex___html_comment_regex_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz";
-        sha1 = "97d4688aeb5c81886a364faa0cad1dda14d433a7";
-      };
-    }
-    {
-      name = "html_encoding_sniffer___html_encoding_sniffer_1.0.2.tgz";
-      path = fetchurl {
-        name = "html_encoding_sniffer___html_encoding_sniffer_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz";
-        sha1 = "e70d84b94da53aa375e11fe3a351be6642ca46f8";
-      };
-    }
-    {
-      name = "html_entities___html_entities_1.2.1.tgz";
-      path = fetchurl {
-        name = "html_entities___html_entities_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz";
-        sha1 = "0df29351f0721163515dfb9e5543e5f6eed5162f";
-      };
-    }
-    {
-      name = "html_minifier___html_minifier_3.5.21.tgz";
-      path = fetchurl {
-        name = "html_minifier___html_minifier_3.5.21.tgz";
-        url  = "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz";
-        sha1 = "d0040e054730e354db008463593194015212d20c";
-      };
-    }
-    {
-      name = "html_minify___html_minify_0.3.2.tgz";
-      path = fetchurl {
-        name = "html_minify___html_minify_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/html-minify/-/html-minify-0.3.2.tgz";
-        sha1 = "32604b23b267ea2e67997e0814cdcd4250139df0";
-      };
-    }
-    {
-      name = "html_to_react___html_to_react_1.3.4.tgz";
-      path = fetchurl {
-        name = "html_to_react___html_to_react_1.3.4.tgz";
-        url  = "https://registry.yarnpkg.com/html-to-react/-/html-to-react-1.3.4.tgz";
-        sha1 = "647b3a54fdec73a6461864b129fb0d1eec7d4589";
-      };
-    }
-    {
-      name = "html_webpack_plugin___html_webpack_plugin_3.2.0.tgz";
-      path = fetchurl {
-        name = "html_webpack_plugin___html_webpack_plugin_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz";
-        sha1 = "b01abbd723acaaa7b37b6af4492ebda03d9dd37b";
-      };
-    }
-    {
-      name = "htmlparser2___htmlparser2_3.10.0.tgz";
-      path = fetchurl {
-        name = "htmlparser2___htmlparser2_3.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.0.tgz";
-        sha1 = "5f5e422dcf6119c0d983ed36260ce9ded0bee464";
-      };
-    }
-    {
-      name = "htmlparser2___htmlparser2_3.10.1.tgz";
-      path = fetchurl {
-        name = "htmlparser2___htmlparser2_3.10.1.tgz";
-        url  = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz";
-        sha1 = "bd679dc3f59897b6a34bb10749c855bb53a9392f";
-      };
-    }
-    {
-      name = "htmlparser2___htmlparser2_3.9.2.tgz";
-      path = fetchurl {
-        name = "htmlparser2___htmlparser2_3.9.2.tgz";
-        url  = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.9.2.tgz";
-        sha1 = "1bdf87acca0f3f9e53fa4fcceb0f4b4cbb00b338";
-      };
-    }
-    {
-      name = "http_deceiver___http_deceiver_1.2.7.tgz";
-      path = fetchurl {
-        name = "http_deceiver___http_deceiver_1.2.7.tgz";
-        url  = "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz";
-        sha1 = "fa7168944ab9a519d337cb0bec7284dc3e723d87";
-      };
-    }
-    {
-      name = "http_errors___http_errors_1.6.2.tgz";
-      path = fetchurl {
-        name = "http_errors___http_errors_1.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz";
-        sha1 = "0a002cc85707192a7e7946ceedc11155f60ec736";
-      };
-    }
-    {
-      name = "http_errors___http_errors_1.7.2.tgz";
-      path = fetchurl {
-        name = "http_errors___http_errors_1.7.2.tgz";
-        url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz";
-        sha1 = "4f5029cf13239f31036e5b2e55292bcfbcc85c8f";
-      };
-    }
-    {
-      name = "http_errors___http_errors_1.6.3.tgz";
-      path = fetchurl {
-        name = "http_errors___http_errors_1.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz";
-        sha1 = "8b55680bb4be283a0b5bf4ea2e38580be1d9320d";
-      };
-    }
-    {
-      name = "http_errors___http_errors_1.7.3.tgz";
-      path = fetchurl {
-        name = "http_errors___http_errors_1.7.3.tgz";
-        url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz";
-        sha1 = "6c619e4f9c60308c38519498c14fbb10aacebb06";
-      };
-    }
-    {
-      name = "http_parser_js___http_parser_js_0.4.10.tgz";
-      path = fetchurl {
-        name = "http_parser_js___http_parser_js_0.4.10.tgz";
-        url  = "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz";
-        sha1 = "92c9c1374c35085f75db359ec56cc257cbb93fa4";
-      };
-    }
-    {
-      name = "http_proxy_middleware___http_proxy_middleware_0.19.1.tgz";
-      path = fetchurl {
-        name = "http_proxy_middleware___http_proxy_middleware_0.19.1.tgz";
-        url  = "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz";
-        sha1 = "183c7dc4aa1479150306498c210cdaf96080a43a";
-      };
-    }
-    {
-      name = "http_proxy_middleware___http_proxy_middleware_0.18.0.tgz";
-      path = fetchurl {
-        name = "http_proxy_middleware___http_proxy_middleware_0.18.0.tgz";
-        url  = "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz";
-        sha1 = "0987e6bb5a5606e5a69168d8f967a87f15dd8aab";
-      };
-    }
-    {
-      name = "http_proxy___http_proxy_1.17.0.tgz";
-      path = fetchurl {
-        name = "http_proxy___http_proxy_1.17.0.tgz";
-        url  = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz";
-        sha1 = "7ad38494658f84605e2f6db4436df410f4e5be9a";
-      };
-    }
-    {
-      name = "http_proxy___http_proxy_1.18.0.tgz";
-      path = fetchurl {
-        name = "http_proxy___http_proxy_1.18.0.tgz";
-        url  = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz";
-        sha1 = "dbe55f63e75a347db7f3d99974f2692a314a6a3a";
-      };
-    }
-    {
-      name = "http_signature___http_signature_1.2.0.tgz";
-      path = fetchurl {
-        name = "http_signature___http_signature_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
-        sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
-      };
-    }
-    {
-      name = "https_browserify___https_browserify_1.0.0.tgz";
-      path = fetchurl {
-        name = "https_browserify___https_browserify_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz";
-        sha1 = "ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73";
-      };
-    }
-    {
-      name = "humps___humps_2.0.1.tgz";
-      path = fetchurl {
-        name = "humps___humps_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/humps/-/humps-2.0.1.tgz";
-        sha1 = "dd02ea6081bd0568dc5d073184463957ba9ef9aa";
-      };
-    }
-    {
-      name = "iconv_lite___iconv_lite_0.4.19.tgz";
-      path = fetchurl {
-        name = "iconv_lite___iconv_lite_0.4.19.tgz";
-        url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz";
-        sha1 = "f7468f60135f5e5dad3399c0a81be9a1603a082b";
-      };
-    }
-    {
-      name = "iconv_lite___iconv_lite_0.4.24.tgz";
-      path = fetchurl {
-        name = "iconv_lite___iconv_lite_0.4.24.tgz";
-        url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz";
-        sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b";
-      };
-    }
-    {
-      name = "icss_utils___icss_utils_4.1.1.tgz";
-      path = fetchurl {
-        name = "icss_utils___icss_utils_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz";
-        sha1 = "21170b53789ee27447c2f47dd683081403f9a467";
-      };
-    }
-    {
-      name = "identity_obj_proxy___identity_obj_proxy_3.0.0.tgz";
-      path = fetchurl {
-        name = "identity_obj_proxy___identity_obj_proxy_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz";
-        sha1 = "94d2bda96084453ef36fbc5aaec37e0f79f1fc14";
-      };
-    }
-    {
-      name = "idtoken_verifier___idtoken_verifier_2.0.2.tgz";
-      path = fetchurl {
-        name = "idtoken_verifier___idtoken_verifier_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/idtoken-verifier/-/idtoken-verifier-2.0.2.tgz";
-        sha1 = "7fd1c64c435abf07e92f137e7ac538a758fdc399";
-      };
-    }
-    {
-      name = "ieee754___ieee754_1.1.13.tgz";
-      path = fetchurl {
-        name = "ieee754___ieee754_1.1.13.tgz";
-        url  = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz";
-        sha1 = "ec168558e95aa181fd87d37f55c32bbcb6708b84";
-      };
-    }
-    {
-      name = "iferr___iferr_0.1.5.tgz";
-      path = fetchurl {
-        name = "iferr___iferr_0.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz";
-        sha1 = "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501";
-      };
-    }
-    {
-      name = "ignore___ignore_4.0.6.tgz";
-      path = fetchurl {
-        name = "ignore___ignore_4.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz";
-        sha1 = "750e3db5862087b4737ebac8207ffd1ef27b25fc";
-      };
-    }
-    {
-      name = "immer___immer_1.9.3.tgz";
-      path = fetchurl {
-        name = "immer___immer_1.9.3.tgz";
-        url  = "https://registry.yarnpkg.com/immer/-/immer-1.9.3.tgz";
-        sha1 = "e88f8cbea730d2cde0f5e7e763000a8608bccdae";
-      };
-    }
-    {
-      name = "immutable___immutable_3.8.2.tgz";
-      path = fetchurl {
-        name = "immutable___immutable_3.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz";
-        sha1 = "c2439951455bb39913daf281376f1530e104adf3";
-      };
-    }
-    {
-      name = "import_fresh___import_fresh_2.0.0.tgz";
-      path = fetchurl {
-        name = "import_fresh___import_fresh_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz";
-        sha1 = "d81355c15612d386c61f9ddd3922d4304822a546";
-      };
-    }
-    {
-      name = "import_fresh___import_fresh_3.0.0.tgz";
-      path = fetchurl {
-        name = "import_fresh___import_fresh_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.0.0.tgz";
-        sha1 = "a3d897f420cab0e671236897f75bc14b4885c390";
-      };
-    }
-    {
-      name = "import_local___import_local_2.0.0.tgz";
-      path = fetchurl {
-        name = "import_local___import_local_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz";
-        sha1 = "55070be38a5993cf18ef6db7e961f5bee5c5a09d";
-      };
-    }
-    {
-      name = "imurmurhash___imurmurhash_0.1.4.tgz";
-      path = fetchurl {
-        name = "imurmurhash___imurmurhash_0.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz";
-        sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
-      };
-    }
-    {
-      name = "indent_string___indent_string_3.2.0.tgz";
-      path = fetchurl {
-        name = "indent_string___indent_string_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz";
-        sha1 = "4a5fd6d27cc332f37e5419a504dbb837105c9289";
-      };
-    }
-    {
-      name = "indent_string___indent_string_4.0.0.tgz";
-      path = fetchurl {
-        name = "indent_string___indent_string_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz";
-        sha1 = "624f8f4497d619b2d9768531d58f4122854d7251";
-      };
-    }
-    {
-      name = "indexes_of___indexes_of_1.0.1.tgz";
-      path = fetchurl {
-        name = "indexes_of___indexes_of_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz";
-        sha1 = "f30f716c8e2bd346c7b67d3df3915566a7c05607";
-      };
-    }
-    {
-      name = "infer_owner___infer_owner_1.0.4.tgz";
-      path = fetchurl {
-        name = "infer_owner___infer_owner_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz";
-        sha1 = "c4cefcaa8e51051c2a40ba2ce8a3d27295af9467";
-      };
-    }
-    {
-      name = "inflight___inflight_1.0.6.tgz";
-      path = fetchurl {
-        name = "inflight___inflight_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
-        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
-      };
-    }
-    {
-      name = "inherits___inherits_2.0.4.tgz";
-      path = fetchurl {
-        name = "inherits___inherits_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
-        sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
-      };
-    }
-    {
-      name = "inherits___inherits_2.0.1.tgz";
-      path = fetchurl {
-        name = "inherits___inherits_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz";
-        sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1";
-      };
-    }
-    {
-      name = "inherits___inherits_2.0.3.tgz";
-      path = fetchurl {
-        name = "inherits___inherits_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
-        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
-      };
-    }
-    {
-      name = "ini___ini_1.3.5.tgz";
-      path = fetchurl {
-        name = "ini___ini_1.3.5.tgz";
-        url  = "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz";
-        sha1 = "eee25f56db1c9ec6085e0c22778083f596abf927";
-      };
-    }
-    {
-      name = "inquirer___inquirer_7.0.0.tgz";
-      path = fetchurl {
-        name = "inquirer___inquirer_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/inquirer/-/inquirer-7.0.0.tgz";
-        sha1 = "9e2b032dde77da1db5db804758b8fea3a970519a";
-      };
-    }
-    {
-      name = "internal_ip___internal_ip_4.3.0.tgz";
-      path = fetchurl {
-        name = "internal_ip___internal_ip_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz";
-        sha1 = "845452baad9d2ca3b69c635a137acb9a0dad0907";
-      };
-    }
-    {
-      name = "interpret___interpret_1.2.0.tgz";
-      path = fetchurl {
-        name = "interpret___interpret_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz";
-        sha1 = "d5061a6224be58e8083985f5014d844359576296";
-      };
-    }
-    {
-      name = "intersection_observer___intersection_observer_0.7.0.tgz";
-      path = fetchurl {
-        name = "intersection_observer___intersection_observer_0.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.7.0.tgz";
-        sha1 = "ee16bee978db53516ead2f0a8154b09b400bbdc9";
-      };
-    }
-    {
-      name = "invariant___invariant_2.2.4.tgz";
-      path = fetchurl {
-        name = "invariant___invariant_2.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz";
-        sha1 = "610f3c92c9359ce1db616e538008d23ff35158e6";
-      };
-    }
-    {
-      name = "invert_kv___invert_kv_2.0.0.tgz";
-      path = fetchurl {
-        name = "invert_kv___invert_kv_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz";
-        sha1 = "7393f5afa59ec9ff5f67a27620d11c226e3eec02";
-      };
-    }
-    {
-      name = "ip_regex___ip_regex_2.1.0.tgz";
-      path = fetchurl {
-        name = "ip_regex___ip_regex_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz";
-        sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
-      };
-    }
-    {
-      name = "ip___ip_1.1.5.tgz";
-      path = fetchurl {
-        name = "ip___ip_1.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz";
-        sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a";
-      };
-    }
-    {
-      name = "ipaddr.js___ipaddr.js_1.8.0.tgz";
-      path = fetchurl {
-        name = "ipaddr.js___ipaddr.js_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.0.tgz";
-        sha1 = "eaa33d6ddd7ace8f7f6fe0c9ca0440e706738b1e";
-      };
-    }
-    {
-      name = "ipaddr.js___ipaddr.js_1.9.1.tgz";
-      path = fetchurl {
-        name = "ipaddr.js___ipaddr.js_1.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
-        sha1 = "bff38543eeb8984825079ff3a2a8e6cbd46781b3";
-      };
-    }
-    {
-      name = "is_absolute_url___is_absolute_url_2.1.0.tgz";
-      path = fetchurl {
-        name = "is_absolute_url___is_absolute_url_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz";
-        sha1 = "50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6";
-      };
-    }
-    {
-      name = "is_absolute_url___is_absolute_url_3.0.3.tgz";
-      path = fetchurl {
-        name = "is_absolute_url___is_absolute_url_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz";
-        sha1 = "96c6a22b6a23929b11ea0afb1836c36ad4a5d698";
-      };
-    }
-    {
-      name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
-      path = fetchurl {
-        name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
-        sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
-      };
-    }
-    {
-      name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
-        sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656";
-      };
-    }
-    {
-      name = "is_alphabetical___is_alphabetical_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_alphabetical___is_alphabetical_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.2.tgz";
-        sha1 = "1fa6e49213cb7885b75d15862fb3f3d96c884f41";
-      };
-    }
-    {
-      name = "is_alphanumerical___is_alphanumerical_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_alphanumerical___is_alphanumerical_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz";
-        sha1 = "1138e9ae5040158dc6ff76b820acd6b7a181fd40";
-      };
-    }
-    {
-      name = "is_arguments___is_arguments_1.0.4.tgz";
-      path = fetchurl {
-        name = "is_arguments___is_arguments_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz";
-        sha1 = "3faf966c7cba0ff437fb31f6250082fcf0448cf3";
-      };
-    }
-    {
-      name = "is_arrayish___is_arrayish_0.2.1.tgz";
-      path = fetchurl {
-        name = "is_arrayish___is_arrayish_0.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz";
-        sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
-      };
-    }
-    {
-      name = "is_arrayish___is_arrayish_0.3.2.tgz";
-      path = fetchurl {
-        name = "is_arrayish___is_arrayish_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz";
-        sha1 = "4574a2ae56f7ab206896fb431eaeed066fdf8f03";
-      };
-    }
-    {
-      name = "is_binary_path___is_binary_path_1.0.1.tgz";
-      path = fetchurl {
-        name = "is_binary_path___is_binary_path_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz";
-        sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
-      };
-    }
-    {
-      name = "is_binary_path___is_binary_path_2.1.0.tgz";
-      path = fetchurl {
-        name = "is_binary_path___is_binary_path_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz";
-        sha1 = "ea1f7f3b80f064236e83470f86c09c254fb45b09";
-      };
-    }
-    {
-      name = "is_boolean_object___is_boolean_object_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_boolean_object___is_boolean_object_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz";
-        sha1 = "98f8b28030684219a95f375cfbd88ce3405dff93";
-      };
-    }
-    {
-      name = "is_buffer___is_buffer_1.1.6.tgz";
-      path = fetchurl {
-        name = "is_buffer___is_buffer_1.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz";
-        sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be";
-      };
-    }
-    {
-      name = "is_buffer___is_buffer_2.0.3.tgz";
-      path = fetchurl {
-        name = "is_buffer___is_buffer_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz";
-        sha1 = "4ecf3fcf749cbd1e472689e109ac66261a25e725";
-      };
-    }
-    {
-      name = "is_callable___is_callable_1.1.4.tgz";
-      path = fetchurl {
-        name = "is_callable___is_callable_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz";
-        sha1 = "1e1adf219e1eeb684d691f9d6a05ff0d30a24d75";
-      };
-    }
-    {
-      name = "is_callable___is_callable_1.1.5.tgz";
-      path = fetchurl {
-        name = "is_callable___is_callable_1.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz";
-        sha1 = "f7e46b596890456db74e7f6e976cb3273d06faab";
-      };
-    }
-    {
-      name = "is_ci___is_ci_2.0.0.tgz";
-      path = fetchurl {
-        name = "is_ci___is_ci_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz";
-        sha1 = "6bc6334181810e04b5c22b3d589fdca55026404c";
-      };
-    }
-    {
-      name = "is_color_stop___is_color_stop_1.1.0.tgz";
-      path = fetchurl {
-        name = "is_color_stop___is_color_stop_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz";
-        sha1 = "cfff471aee4dd5c9e158598fbe12967b5cdad345";
-      };
-    }
-    {
-      name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
-      path = fetchurl {
-        name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
-        sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
-      };
-    }
-    {
-      name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
-        sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7";
-      };
-    }
-    {
-      name = "is_date_object___is_date_object_1.0.1.tgz";
-      path = fetchurl {
-        name = "is_date_object___is_date_object_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz";
-        sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16";
-      };
-    }
-    {
-      name = "is_decimal___is_decimal_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_decimal___is_decimal_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.2.tgz";
-        sha1 = "894662d6a8709d307f3a276ca4339c8fa5dff0ff";
-      };
-    }
-    {
-      name = "is_descriptor___is_descriptor_0.1.6.tgz";
-      path = fetchurl {
-        name = "is_descriptor___is_descriptor_0.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz";
-        sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca";
-      };
-    }
-    {
-      name = "is_descriptor___is_descriptor_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_descriptor___is_descriptor_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz";
-        sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec";
-      };
-    }
-    {
-      name = "is_directory___is_directory_0.3.1.tgz";
-      path = fetchurl {
-        name = "is_directory___is_directory_0.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz";
-        sha1 = "61339b6f2475fc772fd9c9d83f5c8575dc154ae1";
-      };
-    }
-    {
-      name = "is_extendable___is_extendable_0.1.1.tgz";
-      path = fetchurl {
-        name = "is_extendable___is_extendable_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz";
-        sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
-      };
-    }
-    {
-      name = "is_extendable___is_extendable_1.0.1.tgz";
-      path = fetchurl {
-        name = "is_extendable___is_extendable_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz";
-        sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4";
-      };
-    }
-    {
-      name = "is_extglob___is_extglob_2.1.1.tgz";
-      path = fetchurl {
-        name = "is_extglob___is_extglob_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
-        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
-      };
-    }
-    {
-      name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
-        sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
-      };
-    }
-    {
-      name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
-      path = fetchurl {
-        name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
-        sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
-      };
-    }
-    {
-      name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
-      path = fetchurl {
-        name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
-        sha1 = "f116f8064fe90b3f7844a38997c0b75051269f1d";
-      };
-    }
-    {
-      name = "is_generator_fn___is_generator_fn_2.1.0.tgz";
-      path = fetchurl {
-        name = "is_generator_fn___is_generator_fn_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz";
-        sha1 = "7d140adc389aaf3011a8f2a2a4cfa6faadffb118";
-      };
-    }
-    {
-      name = "is_glob___is_glob_3.1.0.tgz";
-      path = fetchurl {
-        name = "is_glob___is_glob_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz";
-        sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
-      };
-    }
-    {
-      name = "is_glob___is_glob_4.0.1.tgz";
-      path = fetchurl {
-        name = "is_glob___is_glob_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz";
-        sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc";
-      };
-    }
-    {
-      name = "is_hexadecimal___is_hexadecimal_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_hexadecimal___is_hexadecimal_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz";
-        sha1 = "b6e710d7d07bb66b98cb8cece5c9b4921deeb835";
-      };
-    }
-    {
-      name = "is_installed_globally___is_installed_globally_0.3.2.tgz";
-      path = fetchurl {
-        name = "is_installed_globally___is_installed_globally_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz";
-        sha1 = "fd3efa79ee670d1187233182d5b0a1dd00313141";
-      };
-    }
-    {
-      name = "is_number_object___is_number_object_1.0.3.tgz";
-      path = fetchurl {
-        name = "is_number_object___is_number_object_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.3.tgz";
-        sha1 = "f265ab89a9f445034ef6aff15a8f00b00f551799";
-      };
-    }
-    {
-      name = "is_number___is_number_3.0.0.tgz";
-      path = fetchurl {
-        name = "is_number___is_number_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz";
-        sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
-      };
-    }
-    {
-      name = "is_number___is_number_7.0.0.tgz";
-      path = fetchurl {
-        name = "is_number___is_number_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz";
-        sha1 = "7535345b896734d5f80c4d06c50955527a14f12b";
-      };
-    }
-    {
-      name = "is_obj___is_obj_1.0.1.tgz";
-      path = fetchurl {
-        name = "is_obj___is_obj_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz";
-        sha1 = "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f";
-      };
-    }
-    {
-      name = "is_observable___is_observable_1.1.0.tgz";
-      path = fetchurl {
-        name = "is_observable___is_observable_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz";
-        sha1 = "b3e986c8f44de950867cab5403f5a3465005975e";
-      };
-    }
-    {
-      name = "is_path_cwd___is_path_cwd_2.2.0.tgz";
-      path = fetchurl {
-        name = "is_path_cwd___is_path_cwd_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz";
-        sha1 = "67d43b82664a7b5191fd9119127eb300048a9fdb";
-      };
-    }
-    {
-      name = "is_path_in_cwd___is_path_in_cwd_2.1.0.tgz";
-      path = fetchurl {
-        name = "is_path_in_cwd___is_path_in_cwd_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz";
-        sha1 = "bfe2dca26c69f397265a4009963602935a053acb";
-      };
-    }
-    {
-      name = "is_path_inside___is_path_inside_2.1.0.tgz";
-      path = fetchurl {
-        name = "is_path_inside___is_path_inside_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz";
-        sha1 = "7c9810587d659a40d27bcdb4d5616eab059494b2";
-      };
-    }
-    {
-      name = "is_path_inside___is_path_inside_3.0.2.tgz";
-      path = fetchurl {
-        name = "is_path_inside___is_path_inside_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz";
-        sha1 = "f5220fc82a3e233757291dddc9c5877f2a1f3017";
-      };
-    }
-    {
-      name = "is_plain_obj___is_plain_obj_1.1.0.tgz";
-      path = fetchurl {
-        name = "is_plain_obj___is_plain_obj_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz";
-        sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
-      };
-    }
-    {
-      name = "is_plain_object___is_plain_object_2.0.4.tgz";
-      path = fetchurl {
-        name = "is_plain_object___is_plain_object_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz";
-        sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677";
-      };
-    }
-    {
-      name = "is_promise___is_promise_2.1.0.tgz";
-      path = fetchurl {
-        name = "is_promise___is_promise_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz";
-        sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
-      };
-    }
-    {
-      name = "is_regex___is_regex_1.0.4.tgz";
-      path = fetchurl {
-        name = "is_regex___is_regex_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz";
-        sha1 = "5517489b547091b0930e095654ced25ee97e9491";
-      };
-    }
-    {
-      name = "is_regex___is_regex_1.0.5.tgz";
-      path = fetchurl {
-        name = "is_regex___is_regex_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz";
-        sha1 = "39d589a358bf18967f726967120b8fc1aed74eae";
-      };
-    }
-    {
-      name = "is_resolvable___is_resolvable_1.1.0.tgz";
-      path = fetchurl {
-        name = "is_resolvable___is_resolvable_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz";
-        sha1 = "fb18f87ce1feb925169c9a407c19318a3206ed88";
-      };
-    }
-    {
-      name = "is_stream___is_stream_1.1.0.tgz";
-      path = fetchurl {
-        name = "is_stream___is_stream_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz";
-        sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
-      };
-    }
-    {
-      name = "is_string___is_string_1.0.4.tgz";
-      path = fetchurl {
-        name = "is_string___is_string_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/is-string/-/is-string-1.0.4.tgz";
-        sha1 = "cc3a9b69857d621e963725a24caeec873b826e64";
-      };
-    }
-    {
-      name = "is_subset___is_subset_0.1.1.tgz";
-      path = fetchurl {
-        name = "is_subset___is_subset_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz";
-        sha1 = "8a59117d932de1de00f245fcdd39ce43f1e939a6";
-      };
-    }
-    {
-      name = "is_svg___is_svg_3.0.0.tgz";
-      path = fetchurl {
-        name = "is_svg___is_svg_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz";
-        sha1 = "9321dbd29c212e5ca99c4fa9794c714bcafa2f75";
-      };
-    }
-    {
-      name = "is_symbol___is_symbol_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_symbol___is_symbol_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz";
-        sha1 = "a055f6ae57192caee329e7a860118b497a950f38";
-      };
-    }
-    {
-      name = "is_typedarray___is_typedarray_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_typedarray___is_typedarray_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
-        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
-      };
-    }
-    {
-      name = "is_whitespace_character___is_whitespace_character_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_whitespace_character___is_whitespace_character_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz";
-        sha1 = "ede53b4c6f6fb3874533751ec9280d01928d03ed";
-      };
-    }
-    {
-      name = "is_windows___is_windows_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_windows___is_windows_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
-        sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
-      };
-    }
-    {
-      name = "is_word_character___is_word_character_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_word_character___is_word_character_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.2.tgz";
-        sha1 = "46a5dac3f2a1840898b91e576cd40d493f3ae553";
-      };
-    }
-    {
-      name = "is_wsl___is_wsl_1.1.0.tgz";
-      path = fetchurl {
-        name = "is_wsl___is_wsl_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz";
-        sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d";
-      };
-    }
-    {
-      name = "isarray___isarray_0.0.1.tgz";
-      path = fetchurl {
-        name = "isarray___isarray_0.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz";
-        sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
-      };
-    }
-    {
-      name = "isarray___isarray_1.0.0.tgz";
-      path = fetchurl {
-        name = "isarray___isarray_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
-        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
-      };
-    }
-    {
-      name = "isexe___isexe_2.0.0.tgz";
-      path = fetchurl {
-        name = "isexe___isexe_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
-        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
-      };
-    }
-    {
-      name = "isobject___isobject_2.1.0.tgz";
-      path = fetchurl {
-        name = "isobject___isobject_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz";
-        sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
-      };
-    }
-    {
-      name = "isobject___isobject_3.0.1.tgz";
-      path = fetchurl {
-        name = "isobject___isobject_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz";
-        sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
-      };
-    }
-    {
-      name = "isomorphic_fetch___isomorphic_fetch_2.2.1.tgz";
-      path = fetchurl {
-        name = "isomorphic_fetch___isomorphic_fetch_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz";
-        sha1 = "611ae1acf14f5e81f729507472819fe9733558a9";
-      };
-    }
-    {
-      name = "isstream___isstream_0.1.2.tgz";
-      path = fetchurl {
-        name = "isstream___isstream_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
-        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
-      };
-    }
-    {
-      name = "istanbul_lib_coverage___istanbul_lib_coverage_2.0.5.tgz";
-      path = fetchurl {
-        name = "istanbul_lib_coverage___istanbul_lib_coverage_2.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz";
-        sha1 = "675f0ab69503fad4b1d849f736baaca803344f49";
-      };
-    }
-    {
-      name = "istanbul_lib_instrument___istanbul_lib_instrument_3.3.0.tgz";
-      path = fetchurl {
-        name = "istanbul_lib_instrument___istanbul_lib_instrument_3.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz";
-        sha1 = "a5f63d91f0bbc0c3e479ef4c5de027335ec6d630";
-      };
-    }
-    {
-      name = "istanbul_lib_report___istanbul_lib_report_2.0.8.tgz";
-      path = fetchurl {
-        name = "istanbul_lib_report___istanbul_lib_report_2.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz";
-        sha1 = "5a8113cd746d43c4889eba36ab10e7d50c9b4f33";
-      };
-    }
-    {
-      name = "istanbul_lib_source_maps___istanbul_lib_source_maps_3.0.6.tgz";
-      path = fetchurl {
-        name = "istanbul_lib_source_maps___istanbul_lib_source_maps_3.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz";
-        sha1 = "284997c48211752ec486253da97e3879defba8c8";
-      };
-    }
-    {
-      name = "istanbul_reports___istanbul_reports_2.2.6.tgz";
-      path = fetchurl {
-        name = "istanbul_reports___istanbul_reports_2.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz";
-        sha1 = "7b4f2660d82b29303a8fe6091f8ca4bf058da1af";
-      };
-    }
-    {
-      name = "jest_changed_files___jest_changed_files_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_changed_files___jest_changed_files_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.8.0.tgz";
-        sha1 = "7e7eb21cf687587a85e50f3d249d1327e15b157b";
-      };
-    }
-    {
-      name = "jest_cli___jest_cli_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_cli___jest_cli_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.8.0.tgz";
-        sha1 = "b075ac914492ed114fa338ade7362a301693e989";
-      };
-    }
-    {
-      name = "jest_config___jest_config_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_config___jest_config_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-config/-/jest-config-24.8.0.tgz";
-        sha1 = "77db3d265a6f726294687cbbccc36f8a76ee0f4f";
-      };
-    }
-    {
-      name = "jest_diff___jest_diff_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_diff___jest_diff_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.8.0.tgz";
-        sha1 = "146435e7d1e3ffdf293d53ff97e193f1d1546172";
-      };
-    }
-    {
-      name = "jest_docblock___jest_docblock_24.3.0.tgz";
-      path = fetchurl {
-        name = "jest_docblock___jest_docblock_24.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.3.0.tgz";
-        sha1 = "b9c32dac70f72e4464520d2ba4aec02ab14db5dd";
-      };
-    }
-    {
-      name = "jest_each___jest_each_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_each___jest_each_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-each/-/jest-each-24.8.0.tgz";
-        sha1 = "a05fd2bf94ddc0b1da66c6d13ec2457f35e52775";
-      };
-    }
-    {
-      name = "jest_environment_jsdom___jest_environment_jsdom_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_environment_jsdom___jest_environment_jsdom_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.8.0.tgz";
-        sha1 = "300f6949a146cabe1c9357ad9e9ecf9f43f38857";
-      };
-    }
-    {
-      name = "jest_environment_node___jest_environment_node_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_environment_node___jest_environment_node_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.8.0.tgz";
-        sha1 = "d3f726ba8bc53087a60e7a84ca08883a4c892231";
-      };
-    }
-    {
-      name = "jest_fetch_mock___jest_fetch_mock_3.0.3.tgz";
-      path = fetchurl {
-        name = "jest_fetch_mock___jest_fetch_mock_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/jest-fetch-mock/-/jest-fetch-mock-3.0.3.tgz";
-        sha1 = "31749c456ae27b8919d69824f1c2bd85fe0a1f3b";
-      };
-    }
-    {
-      name = "jest_get_type___jest_get_type_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_get_type___jest_get_type_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.8.0.tgz";
-        sha1 = "a7440de30b651f5a70ea3ed7ff073a32dfe646fc";
-      };
-    }
-    {
-      name = "jest_get_type___jest_get_type_24.9.0.tgz";
-      path = fetchurl {
-        name = "jest_get_type___jest_get_type_24.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz";
-        sha1 = "1684a0c8a50f2e4901b6644ae861f579eed2ef0e";
-      };
-    }
-    {
-      name = "jest_haste_map___jest_haste_map_24.8.1.tgz";
-      path = fetchurl {
-        name = "jest_haste_map___jest_haste_map_24.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.8.1.tgz";
-        sha1 = "f39cc1d2b1d907e014165b4bd5a957afcb992982";
-      };
-    }
-    {
-      name = "jest_jasmine2___jest_jasmine2_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_jasmine2___jest_jasmine2_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.8.0.tgz";
-        sha1 = "a9c7e14c83dd77d8b15e820549ce8987cc8cd898";
-      };
-    }
-    {
-      name = "jest_junit___jest_junit_10.0.0.tgz";
-      path = fetchurl {
-        name = "jest_junit___jest_junit_10.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-junit/-/jest-junit-10.0.0.tgz";
-        sha1 = "c94b91c24920a327c9d2a075e897b2dba4af494b";
-      };
-    }
-    {
-      name = "jest_leak_detector___jest_leak_detector_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_leak_detector___jest_leak_detector_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.8.0.tgz";
-        sha1 = "c0086384e1f650c2d8348095df769f29b48e6980";
-      };
-    }
-    {
-      name = "jest_matcher_utils___jest_matcher_utils_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_matcher_utils___jest_matcher_utils_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.8.0.tgz";
-        sha1 = "2bce42204c9af12bde46f83dc839efe8be832495";
-      };
-    }
-    {
-      name = "jest_message_util___jest_message_util_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_message_util___jest_message_util_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.8.0.tgz";
-        sha1 = "0d6891e72a4beacc0292b638685df42e28d6218b";
-      };
-    }
-    {
-      name = "jest_mock___jest_mock_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_mock___jest_mock_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.8.0.tgz";
-        sha1 = "2f9d14d37699e863f1febf4e4d5a33b7fdbbde56";
-      };
-    }
-    {
-      name = "jest_pnp_resolver___jest_pnp_resolver_1.2.1.tgz";
-      path = fetchurl {
-        name = "jest_pnp_resolver___jest_pnp_resolver_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz";
-        sha1 = "ecdae604c077a7fbc70defb6d517c3c1c898923a";
-      };
-    }
-    {
-      name = "jest_regex_util___jest_regex_util_24.3.0.tgz";
-      path = fetchurl {
-        name = "jest_regex_util___jest_regex_util_24.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz";
-        sha1 = "d5a65f60be1ae3e310d5214a0307581995227b36";
-      };
-    }
-    {
-      name = "jest_resolve_dependencies___jest_resolve_dependencies_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_resolve_dependencies___jest_resolve_dependencies_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.8.0.tgz";
-        sha1 = "19eec3241f2045d3f990dba331d0d7526acff8e0";
-      };
-    }
-    {
-      name = "jest_resolve___jest_resolve_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_resolve___jest_resolve_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.8.0.tgz";
-        sha1 = "84b8e5408c1f6a11539793e2b5feb1b6e722439f";
-      };
-    }
-    {
-      name = "jest_runner___jest_runner_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_runner___jest_runner_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.8.0.tgz";
-        sha1 = "4f9ae07b767db27b740d7deffad0cf67ccb4c5bb";
-      };
-    }
-    {
-      name = "jest_runtime___jest_runtime_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_runtime___jest_runtime_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.8.0.tgz";
-        sha1 = "05f94d5b05c21f6dc54e427cd2e4980923350620";
-      };
-    }
-    {
-      name = "jest_serializer___jest_serializer_24.4.0.tgz";
-      path = fetchurl {
-        name = "jest_serializer___jest_serializer_24.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz";
-        sha1 = "f70c5918c8ea9235ccb1276d232e459080588db3";
-      };
-    }
-    {
-      name = "jest_snapshot___jest_snapshot_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_snapshot___jest_snapshot_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.8.0.tgz";
-        sha1 = "3bec6a59da2ff7bc7d097a853fb67f9d415cb7c6";
-      };
-    }
-    {
-      name = "jest_util___jest_util_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_util___jest_util_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-util/-/jest-util-24.8.0.tgz";
-        sha1 = "41f0e945da11df44cc76d64ffb915d0716f46cd1";
-      };
-    }
-    {
-      name = "jest_validate___jest_validate_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_validate___jest_validate_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.8.0.tgz";
-        sha1 = "624c41533e6dfe356ffadc6e2423a35c2d3b4849";
-      };
-    }
-    {
-      name = "jest_validate___jest_validate_24.9.0.tgz";
-      path = fetchurl {
-        name = "jest_validate___jest_validate_24.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz";
-        sha1 = "0775c55360d173cd854e40180756d4ff52def8ab";
-      };
-    }
-    {
-      name = "jest_watcher___jest_watcher_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest_watcher___jest_watcher_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.8.0.tgz";
-        sha1 = "58d49915ceddd2de85e238f6213cef1c93715de4";
-      };
-    }
-    {
-      name = "jest_worker___jest_worker_24.6.0.tgz";
-      path = fetchurl {
-        name = "jest_worker___jest_worker_24.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.6.0.tgz";
-        sha1 = "7f81ceae34b7cde0c9827a6980c35b7cdc0161b3";
-      };
-    }
-    {
-      name = "jest_worker___jest_worker_24.9.0.tgz";
-      path = fetchurl {
-        name = "jest_worker___jest_worker_24.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz";
-        sha1 = "5dbfdb5b2d322e98567898238a9697bcce67b3e5";
-      };
-    }
-    {
-      name = "jest___jest_24.8.0.tgz";
-      path = fetchurl {
-        name = "jest___jest_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest/-/jest-24.8.0.tgz";
-        sha1 = "d5dff1984d0d1002196e9b7f12f75af1b2809081";
-      };
-    }
-    {
-      name = "js_base64___js_base64_2.4.9.tgz";
-      path = fetchurl {
-        name = "js_base64___js_base64_2.4.9.tgz";
-        url  = "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.9.tgz";
-        sha1 = "748911fb04f48a60c4771b375cac45a80df11c03";
-      };
-    }
-    {
-      name = "js_cookie___js_cookie_2.2.1.tgz";
-      path = fetchurl {
-        name = "js_cookie___js_cookie_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz";
-        sha1 = "69e106dc5d5806894562902aa5baec3744e9b2b8";
-      };
-    }
-    {
-      name = "js_levenshtein___js_levenshtein_1.1.6.tgz";
-      path = fetchurl {
-        name = "js_levenshtein___js_levenshtein_1.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz";
-        sha1 = "c6cee58eb3550372df8deb85fad5ce66ce01d59d";
-      };
-    }
-    {
-      name = "js_tokens___js_tokens_4.0.0.tgz";
-      path = fetchurl {
-        name = "js_tokens___js_tokens_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz";
-        sha1 = "19203fb59991df98e3a287050d4647cdeaf32499";
-      };
-    }
-    {
-      name = "js_tokens___js_tokens_3.0.2.tgz";
-      path = fetchurl {
-        name = "js_tokens___js_tokens_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz";
-        sha1 = "9866df395102130e38f7f996bceb65443209c25b";
-      };
-    }
-    {
-      name = "js_yaml___js_yaml_3.13.1.tgz";
-      path = fetchurl {
-        name = "js_yaml___js_yaml_3.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz";
-        sha1 = "aff151b30bfdfa8e49e05da22e7415e9dfa37847";
-      };
-    }
-    {
-      name = "jsbn___jsbn_1.1.0.tgz";
-      path = fetchurl {
-        name = "jsbn___jsbn_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz";
-        sha1 = "b01307cb29b618a1ed26ec79e911f803c4da0040";
-      };
-    }
-    {
-      name = "jsbn___jsbn_0.1.1.tgz";
-      path = fetchurl {
-        name = "jsbn___jsbn_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
-        sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
-      };
-    }
-    {
-      name = "jsdom___jsdom_11.12.0.tgz";
-      path = fetchurl {
-        name = "jsdom___jsdom_11.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz";
-        sha1 = "1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8";
-      };
-    }
-    {
-      name = "jsdom___jsdom_9.12.0.tgz";
-      path = fetchurl {
-        name = "jsdom___jsdom_9.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsdom/-/jsdom-9.12.0.tgz";
-        sha1 = "e8c546fffcb06c00d4833ca84410fed7f8a097d4";
-      };
-    }
-    {
-      name = "jsesc___jsesc_2.5.2.tgz";
-      path = fetchurl {
-        name = "jsesc___jsesc_2.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz";
-        sha1 = "80564d2e483dacf6e8ef209650a67df3f0c283a4";
-      };
-    }
-    {
-      name = "jsesc___jsesc_0.5.0.tgz";
-      path = fetchurl {
-        name = "jsesc___jsesc_0.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz";
-        sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
-      };
-    }
-    {
-      name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
-      path = fetchurl {
-        name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
-        sha1 = "bb867cfb3450e69107c131d1c514bab3dc8bcaa9";
-      };
-    }
-    {
-      name = "json_schema_ref_parser___json_schema_ref_parser_7.1.0.tgz";
-      path = fetchurl {
-        name = "json_schema_ref_parser___json_schema_ref_parser_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/json-schema-ref-parser/-/json-schema-ref-parser-7.1.0.tgz";
-        sha1 = "987582b19fa06a37db4797d4e825879a7aea127c";
-      };
-    }
-    {
-      name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
-      path = fetchurl {
-        name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
-        sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
-      };
-    }
-    {
-      name = "json_schema___json_schema_0.2.3.tgz";
-      path = fetchurl {
-        name = "json_schema___json_schema_0.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
-        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
-      };
-    }
-    {
-      name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
-      path = fetchurl {
-        name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
-        sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
-      };
-    }
-    {
-      name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
-      path = fetchurl {
-        name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
-        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
-      };
-    }
-    {
-      name = "json3___json3_3.3.3.tgz";
-      path = fetchurl {
-        name = "json3___json3_3.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz";
-        sha1 = "7fc10e375fc5ae42c4705a5cc0aa6f62be305b81";
-      };
-    }
-    {
-      name = "json5___json5_2.1.0.tgz";
-      path = fetchurl {
-        name = "json5___json5_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz";
-        sha1 = "e7a0c62c48285c628d20a10b85c89bb807c32850";
-      };
-    }
-    {
-      name = "json5___json5_0.5.1.tgz";
-      path = fetchurl {
-        name = "json5___json5_0.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz";
-        sha1 = "1eade7acc012034ad84e2396767ead9fa5495821";
-      };
-    }
-    {
-      name = "json5___json5_1.0.1.tgz";
-      path = fetchurl {
-        name = "json5___json5_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz";
-        sha1 = "779fb0018604fa854eacbf6252180d83543e3dbe";
-      };
-    }
-    {
-      name = "json5___json5_2.1.3.tgz";
-      path = fetchurl {
-        name = "json5___json5_2.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz";
-        sha1 = "c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43";
-      };
-    }
-    {
-      name = "jsonfile___jsonfile_4.0.0.tgz";
-      path = fetchurl {
-        name = "jsonfile___jsonfile_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz";
-        sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
-      };
-    }
-    {
-      name = "jsonlint_mod___jsonlint_mod_1.7.5.tgz";
-      path = fetchurl {
-        name = "jsonlint_mod___jsonlint_mod_1.7.5.tgz";
-        url  = "https://registry.yarnpkg.com/jsonlint-mod/-/jsonlint-mod-1.7.5.tgz";
-        sha1 = "678d2b600b9d350ec3448373d6f71dcbf09a0e3d";
-      };
-    }
-    {
-      name = "jsprim___jsprim_1.4.1.tgz";
-      path = fetchurl {
-        name = "jsprim___jsprim_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
-        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
-      };
-    }
-    {
-      name = "jsx_ast_utils___jsx_ast_utils_2.2.3.tgz";
-      path = fetchurl {
-        name = "jsx_ast_utils___jsx_ast_utils_2.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz";
-        sha1 = "8a9364e402448a3ce7f14d357738310d9248054f";
-      };
-    }
-    {
-      name = "junit_viewer___junit_viewer_4.11.1.tgz";
-      path = fetchurl {
-        name = "junit_viewer___junit_viewer_4.11.1.tgz";
-        url  = "https://registry.yarnpkg.com/junit-viewer/-/junit-viewer-4.11.1.tgz";
-        sha1 = "31f712789a92a815605fb12bc2be9f6b377c34f7";
-      };
-    }
-    {
-      name = "killable___killable_1.0.1.tgz";
-      path = fetchurl {
-        name = "killable___killable_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz";
-        sha1 = "4c8ce441187a061c7474fb87ca08e2a638194892";
-      };
-    }
-    {
-      name = "kind_of___kind_of_3.2.2.tgz";
-      path = fetchurl {
-        name = "kind_of___kind_of_3.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz";
-        sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
-      };
-    }
-    {
-      name = "kind_of___kind_of_4.0.0.tgz";
-      path = fetchurl {
-        name = "kind_of___kind_of_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz";
-        sha1 = "20813df3d712928b207378691a45066fae72dd57";
-      };
-    }
-    {
-      name = "kind_of___kind_of_5.1.0.tgz";
-      path = fetchurl {
-        name = "kind_of___kind_of_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz";
-        sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d";
-      };
-    }
-    {
-      name = "kind_of___kind_of_6.0.3.tgz";
-      path = fetchurl {
-        name = "kind_of___kind_of_6.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz";
-        sha1 = "07c05034a6c349fa06e24fa35aa76db4580ce4dd";
-      };
-    }
-    {
-      name = "kleur___kleur_3.0.3.tgz";
-      path = fetchurl {
-        name = "kleur___kleur_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz";
-        sha1 = "a79c9ecc86ee1ce3fa6206d1216c501f147fc07e";
-      };
-    }
-    {
-      name = "last_call_webpack_plugin___last_call_webpack_plugin_3.0.0.tgz";
-      path = fetchurl {
-        name = "last_call_webpack_plugin___last_call_webpack_plugin_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz";
-        sha1 = "9742df0e10e3cf46e5c0381c2de90d3a7a2d7555";
-      };
-    }
-    {
-      name = "lazy_ass___lazy_ass_1.6.0.tgz";
-      path = fetchurl {
-        name = "lazy_ass___lazy_ass_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz";
-        sha1 = "7999655e8646c17f089fdd187d150d3324d54513";
-      };
-    }
-    {
-      name = "lazy_cache___lazy_cache_1.0.4.tgz";
-      path = fetchurl {
-        name = "lazy_cache___lazy_cache_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz";
-        sha1 = "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e";
-      };
-    }
-    {
-      name = "lcid___lcid_2.0.0.tgz";
-      path = fetchurl {
-        name = "lcid___lcid_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz";
-        sha1 = "6ef5d2df60e52f82eb228a4c373e8d1f397253cf";
-      };
-    }
-    {
-      name = "left_pad___left_pad_1.3.0.tgz";
-      path = fetchurl {
-        name = "left_pad___left_pad_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz";
-        sha1 = "5b8a3a7765dfe001261dde915589e782f8c94d1e";
-      };
-    }
-    {
-      name = "leven___leven_2.1.0.tgz";
-      path = fetchurl {
-        name = "leven___leven_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz";
-        sha1 = "c2e7a9f772094dee9d34202ae8acce4687875580";
-      };
-    }
-    {
-      name = "leven___leven_3.1.0.tgz";
-      path = fetchurl {
-        name = "leven___leven_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz";
-        sha1 = "77891de834064cccba82ae7842bb6b14a13ed7f2";
-      };
-    }
-    {
-      name = "levn___levn_0.3.0.tgz";
-      path = fetchurl {
-        name = "levn___levn_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz";
-        sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
-      };
-    }
-    {
-      name = "listr_silent_renderer___listr_silent_renderer_1.1.1.tgz";
-      path = fetchurl {
-        name = "listr_silent_renderer___listr_silent_renderer_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz";
-        sha1 = "924b5a3757153770bf1a8e3fbf74b8bbf3f9242e";
-      };
-    }
-    {
-      name = "listr_update_renderer___listr_update_renderer_0.5.0.tgz";
-      path = fetchurl {
-        name = "listr_update_renderer___listr_update_renderer_0.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz";
-        sha1 = "4ea8368548a7b8aecb7e06d8c95cb45ae2ede6a2";
-      };
-    }
-    {
-      name = "listr_verbose_renderer___listr_verbose_renderer_0.5.0.tgz";
-      path = fetchurl {
-        name = "listr_verbose_renderer___listr_verbose_renderer_0.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz";
-        sha1 = "f1132167535ea4c1261102b9f28dac7cba1e03db";
-      };
-    }
-    {
-      name = "listr___listr_0.14.3.tgz";
-      path = fetchurl {
-        name = "listr___listr_0.14.3.tgz";
-        url  = "https://registry.yarnpkg.com/listr/-/listr-0.14.3.tgz";
-        sha1 = "2fea909604e434be464c50bddba0d496928fa586";
-      };
-    }
-    {
-      name = "load_json_file___load_json_file_4.0.0.tgz";
-      path = fetchurl {
-        name = "load_json_file___load_json_file_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz";
-        sha1 = "2f5f45ab91e33216234fd53adab668eb4ec0993b";
-      };
-    }
-    {
-      name = "loader_runner___loader_runner_2.4.0.tgz";
-      path = fetchurl {
-        name = "loader_runner___loader_runner_2.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz";
-        sha1 = "ed47066bfe534d7e84c4c7b9998c2a75607d9357";
-      };
-    }
-    {
-      name = "loader_utils___loader_utils_1.2.3.tgz";
-      path = fetchurl {
-        name = "loader_utils___loader_utils_1.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz";
-        sha1 = "1ff5dc6911c9f0a062531a4c04b609406108c2c7";
-      };
-    }
-    {
-      name = "loader_utils___loader_utils_0.2.17.tgz";
-      path = fetchurl {
-        name = "loader_utils___loader_utils_0.2.17.tgz";
-        url  = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz";
-        sha1 = "f86e6374d43205a6e6c60e9196f17c0299bfb348";
-      };
-    }
-    {
-      name = "loader_utils___loader_utils_1.4.0.tgz";
-      path = fetchurl {
-        name = "loader_utils___loader_utils_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz";
-        sha1 = "c579b5e34cb34b1a74edc6c1fb36bfa371d5a613";
-      };
-    }
-    {
-      name = "loader_utils___loader_utils_2.0.0.tgz";
-      path = fetchurl {
-        name = "loader_utils___loader_utils_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz";
-        sha1 = "e4cace5b816d425a166b5f097e10cd12b36064b0";
-      };
-    }
-    {
-      name = "locate_path___locate_path_3.0.0.tgz";
-      path = fetchurl {
-        name = "locate_path___locate_path_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz";
-        sha1 = "dbec3b3ab759758071b58fe59fc41871af21400e";
-      };
-    }
-    {
-      name = "locate_path___locate_path_5.0.0.tgz";
-      path = fetchurl {
-        name = "locate_path___locate_path_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz";
-        sha1 = "1afba396afd676a6d42504d0a67a3a7eb9f62aa0";
-      };
-    }
-    {
-      name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz";
-      path = fetchurl {
-        name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz";
-        sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6";
-      };
-    }
-    {
-      name = "lodash.escape___lodash.escape_4.0.1.tgz";
-      path = fetchurl {
-        name = "lodash.escape___lodash.escape_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz";
-        sha1 = "c9044690c21e04294beaa517712fded1fa88de98";
-      };
-    }
-    {
-      name = "lodash.flattendeep___lodash.flattendeep_4.4.0.tgz";
-      path = fetchurl {
-        name = "lodash.flattendeep___lodash.flattendeep_4.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz";
-        sha1 = "fb030917f86a3134e5bc9bec0d69e0013ddfedb2";
-      };
-    }
-    {
-      name = "lodash.get___lodash.get_4.4.2.tgz";
-      path = fetchurl {
-        name = "lodash.get___lodash.get_4.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz";
-        sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99";
-      };
-    }
-    {
-      name = "lodash.isempty___lodash.isempty_4.4.0.tgz";
-      path = fetchurl {
-        name = "lodash.isempty___lodash.isempty_4.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz";
-        sha1 = "6f86cbedd8be4ec987be9aaf33c9684db1b31e7e";
-      };
-    }
-    {
-      name = "lodash.isequal___lodash.isequal_4.5.0.tgz";
-      path = fetchurl {
-        name = "lodash.isequal___lodash.isequal_4.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz";
-        sha1 = "415c4478f2bcc30120c22ce10ed3226f7d3e18e0";
-      };
-    }
-    {
-      name = "lodash.memoize___lodash.memoize_4.1.2.tgz";
-      path = fetchurl {
-        name = "lodash.memoize___lodash.memoize_4.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz";
-        sha1 = "bcc6c49a42a2840ed997f323eada5ecd182e0bfe";
-      };
-    }
-    {
-      name = "lodash.once___lodash.once_4.1.1.tgz";
-      path = fetchurl {
-        name = "lodash.once___lodash.once_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz";
-        sha1 = "0dd3971213c7c56df880977d504c88fb471a97ac";
-      };
-    }
-    {
-      name = "lodash.sortby___lodash.sortby_4.7.0.tgz";
-      path = fetchurl {
-        name = "lodash.sortby___lodash.sortby_4.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz";
-        sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438";
-      };
-    }
-    {
-      name = "lodash.tail___lodash.tail_4.1.1.tgz";
-      path = fetchurl {
-        name = "lodash.tail___lodash.tail_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz";
-        sha1 = "d2333a36d9e7717c8ad2f7cacafec7c32b444664";
-      };
-    }
-    {
-      name = "lodash.unescape___lodash.unescape_4.0.1.tgz";
-      path = fetchurl {
-        name = "lodash.unescape___lodash.unescape_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz";
-        sha1 = "bf2249886ce514cda112fae9218cdc065211fc9c";
-      };
-    }
-    {
-      name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
-      path = fetchurl {
-        name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
-        sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
-      };
-    }
-    {
-      name = "lodash___lodash_4.17.11.tgz";
-      path = fetchurl {
-        name = "lodash___lodash_4.17.11.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz";
-        sha1 = "b39ea6229ef607ecd89e2c8df12536891cac9b8d";
-      };
-    }
-    {
-      name = "lodash___lodash_4.17.15.tgz";
-      path = fetchurl {
-        name = "lodash___lodash_4.17.15.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz";
-        sha1 = "b447f6670a0455bbfeedd11392eff330ea097548";
-      };
-    }
-    {
-      name = "lodash___lodash_4.17.19.tgz";
-      path = fetchurl {
-        name = "lodash___lodash_4.17.19.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz";
-        sha1 = "e48ddedbe30b3321783c5b4301fbd353bc1e4a4b";
-      };
-    }
-    {
-      name = "log_symbols___log_symbols_1.0.2.tgz";
-      path = fetchurl {
-        name = "log_symbols___log_symbols_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz";
-        sha1 = "376ff7b58ea3086a0f09facc74617eca501e1a18";
-      };
-    }
-    {
-      name = "log_symbols___log_symbols_3.0.0.tgz";
-      path = fetchurl {
-        name = "log_symbols___log_symbols_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-3.0.0.tgz";
-        sha1 = "f3a08516a5dea893336a7dee14d18a1cfdab77c4";
-      };
-    }
-    {
-      name = "log_update___log_update_2.3.0.tgz";
-      path = fetchurl {
-        name = "log_update___log_update_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/log-update/-/log-update-2.3.0.tgz";
-        sha1 = "88328fd7d1ce7938b29283746f0b1bc126b24708";
-      };
-    }
-    {
-      name = "loglevel___loglevel_1.6.7.tgz";
-      path = fetchurl {
-        name = "loglevel___loglevel_1.6.7.tgz";
-        url  = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.7.tgz";
-        sha1 = "b3e034233188c68b889f5b862415306f565e2c56";
-      };
-    }
-    {
-      name = "longest___longest_1.0.1.tgz";
-      path = fetchurl {
-        name = "longest___longest_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz";
-        sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097";
-      };
-    }
-    {
-      name = "loose_envify___loose_envify_1.4.0.tgz";
-      path = fetchurl {
-        name = "loose_envify___loose_envify_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz";
-        sha1 = "71ee51fa7be4caec1a63839f7e682d8132d30caf";
-      };
-    }
-    {
-      name = "lower_case___lower_case_1.1.4.tgz";
-      path = fetchurl {
-        name = "lower_case___lower_case_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz";
-        sha1 = "9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac";
-      };
-    }
-    {
-      name = "lru_cache___lru_cache_5.1.1.tgz";
-      path = fetchurl {
-        name = "lru_cache___lru_cache_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz";
-        sha1 = "1da27e6710271947695daf6848e847f01d84b920";
-      };
-    }
-    {
-      name = "make_dir___make_dir_1.3.0.tgz";
-      path = fetchurl {
-        name = "make_dir___make_dir_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz";
-        sha1 = "79c1033b80515bd6d24ec9933e860ca75ee27f0c";
-      };
-    }
-    {
-      name = "make_dir___make_dir_2.1.0.tgz";
-      path = fetchurl {
-        name = "make_dir___make_dir_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz";
-        sha1 = "5f0310e18b8be898cc07009295a30ae41e91e6f5";
-      };
-    }
-    {
-      name = "make_dir___make_dir_3.0.0.tgz";
-      path = fetchurl {
-        name = "make_dir___make_dir_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.0.tgz";
-        sha1 = "1b5f39f6b9270ed33f9f054c5c0f84304989f801";
-      };
-    }
-    {
-      name = "make_error___make_error_1.3.5.tgz";
-      path = fetchurl {
-        name = "make_error___make_error_1.3.5.tgz";
-        url  = "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz";
-        sha1 = "efe4e81f6db28cadd605c70f29c831b58ef776c8";
-      };
-    }
-    {
-      name = "makeerror___makeerror_1.0.11.tgz";
-      path = fetchurl {
-        name = "makeerror___makeerror_1.0.11.tgz";
-        url  = "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz";
-        sha1 = "e01a5c9109f2af79660e4e8b9587790184f5a96c";
-      };
-    }
-    {
-      name = "mamacro___mamacro_0.0.3.tgz";
-      path = fetchurl {
-        name = "mamacro___mamacro_0.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz";
-        sha1 = "ad2c9576197c9f1abf308d0787865bd975a3f3e4";
-      };
-    }
-    {
-      name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
-      path = fetchurl {
-        name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
-        sha1 = "7d583a7306434c055fe474b0f45078e6e1b4b92a";
-      };
-    }
-    {
-      name = "map_cache___map_cache_0.2.2.tgz";
-      path = fetchurl {
-        name = "map_cache___map_cache_0.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz";
-        sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
-      };
-    }
-    {
-      name = "map_visit___map_visit_1.0.0.tgz";
-      path = fetchurl {
-        name = "map_visit___map_visit_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz";
-        sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
-      };
-    }
-    {
-      name = "markdown_escapes___markdown_escapes_1.0.2.tgz";
-      path = fetchurl {
-        name = "markdown_escapes___markdown_escapes_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.2.tgz";
-        sha1 = "e639cbde7b99c841c0bacc8a07982873b46d2122";
-      };
-    }
-    {
-      name = "md5.js___md5.js_1.3.5.tgz";
-      path = fetchurl {
-        name = "md5.js___md5.js_1.3.5.tgz";
-        url  = "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz";
-        sha1 = "b5d07b8e3216e3e27cd728d72f70d1e6a342005f";
-      };
-    }
-    {
-      name = "md5___md5_2.2.1.tgz";
-      path = fetchurl {
-        name = "md5___md5_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz";
-        sha1 = "53ab38d5fe3c8891ba465329ea23fac0540126f9";
-      };
-    }
-    {
-      name = "mdast_add_list_metadata___mdast_add_list_metadata_1.0.1.tgz";
-      path = fetchurl {
-        name = "mdast_add_list_metadata___mdast_add_list_metadata_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/mdast-add-list-metadata/-/mdast-add-list-metadata-1.0.1.tgz";
-        sha1 = "95e73640ce2fc1fa2dcb7ec443d09e2bfe7db4cf";
-      };
-    }
-    {
-      name = "mdn_data___mdn_data_1.1.4.tgz";
-      path = fetchurl {
-        name = "mdn_data___mdn_data_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz";
-        sha1 = "50b5d4ffc4575276573c4eedb8780812a8419f01";
-      };
-    }
-    {
-      name = "media_typer___media_typer_0.3.0.tgz";
-      path = fetchurl {
-        name = "media_typer___media_typer_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz";
-        sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
-      };
-    }
-    {
-      name = "mem___mem_4.3.0.tgz";
-      path = fetchurl {
-        name = "mem___mem_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz";
-        sha1 = "461af497bc4ae09608cdb2e60eefb69bff744178";
-      };
-    }
-    {
-      name = "memoize_one___memoize_one_4.0.2.tgz";
-      path = fetchurl {
-        name = "memoize_one___memoize_one_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/memoize-one/-/memoize-one-4.0.2.tgz";
-        sha1 = "3fb8db695aa14ab9c0f1644e1585a8806adc1aee";
-      };
-    }
-    {
-      name = "memory_fs___memory_fs_0.4.1.tgz";
-      path = fetchurl {
-        name = "memory_fs___memory_fs_0.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz";
-        sha1 = "3a9a20b8462523e447cfbc7e8bb80ed667bfc552";
-      };
-    }
-    {
-      name = "memory_fs___memory_fs_0.5.0.tgz";
-      path = fetchurl {
-        name = "memory_fs___memory_fs_0.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz";
-        sha1 = "324c01288b88652966d161db77838720845a8e3c";
-      };
-    }
-    {
-      name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
-      path = fetchurl {
-        name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
-        sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
-      };
-    }
-    {
-      name = "merge_stream___merge_stream_1.0.1.tgz";
-      path = fetchurl {
-        name = "merge_stream___merge_stream_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz";
-        sha1 = "4041202d508a342ba00174008df0c251b8c135e1";
-      };
-    }
-    {
-      name = "merge_stream___merge_stream_2.0.0.tgz";
-      path = fetchurl {
-        name = "merge_stream___merge_stream_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz";
-        sha1 = "52823629a14dd00c9770fb6ad47dc6310f2c1f60";
-      };
-    }
-    {
-      name = "methods___methods_1.1.2.tgz";
-      path = fetchurl {
-        name = "methods___methods_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz";
-        sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
-      };
-    }
-    {
-      name = "microevent.ts___microevent.ts_0.1.1.tgz";
-      path = fetchurl {
-        name = "microevent.ts___microevent.ts_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz";
-        sha1 = "70b09b83f43df5172d0205a63025bce0f7357fa0";
-      };
-    }
-    {
-      name = "micromatch___micromatch_3.1.10.tgz";
-      path = fetchurl {
-        name = "micromatch___micromatch_3.1.10.tgz";
-        url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz";
-        sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23";
-      };
-    }
-    {
-      name = "miller_rabin___miller_rabin_4.0.1.tgz";
-      path = fetchurl {
-        name = "miller_rabin___miller_rabin_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz";
-        sha1 = "f080351c865b0dc562a8462966daa53543c78a4d";
-      };
-    }
-    {
-      name = "mime_db___mime_db_1.40.0.tgz";
-      path = fetchurl {
-        name = "mime_db___mime_db_1.40.0.tgz";
-        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz";
-        sha1 = "a65057e998db090f732a68f6c276d387d4126c32";
-      };
-    }
-    {
-      name = "mime_db___mime_db_1.43.0.tgz";
-      path = fetchurl {
-        name = "mime_db___mime_db_1.43.0.tgz";
-        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz";
-        sha1 = "0a12e0502650e473d735535050e7c8f4eb4fae58";
-      };
-    }
-    {
-      name = "mime_types___mime_types_2.1.24.tgz";
-      path = fetchurl {
-        name = "mime_types___mime_types_2.1.24.tgz";
-        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz";
-        sha1 = "b6f8d0b3e951efb77dedeca194cff6d16f676f81";
-      };
-    }
-    {
-      name = "mime_types___mime_types_2.1.26.tgz";
-      path = fetchurl {
-        name = "mime_types___mime_types_2.1.26.tgz";
-        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz";
-        sha1 = "9c921fc09b7e149a65dfdc0da4d20997200b0a06";
-      };
-    }
-    {
-      name = "mime___mime_1.4.1.tgz";
-      path = fetchurl {
-        name = "mime___mime_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz";
-        sha1 = "121f9ebc49e3766f311a76e1fa1c8003c4b03aa6";
-      };
-    }
-    {
-      name = "mime___mime_1.6.0.tgz";
-      path = fetchurl {
-        name = "mime___mime_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz";
-        sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1";
-      };
-    }
-    {
-      name = "mime___mime_2.4.4.tgz";
-      path = fetchurl {
-        name = "mime___mime_2.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz";
-        sha1 = "bd7b91135fc6b01cde3e9bae33d659b63d8857e5";
-      };
-    }
-    {
-      name = "mimic_fn___mimic_fn_1.2.0.tgz";
-      path = fetchurl {
-        name = "mimic_fn___mimic_fn_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz";
-        sha1 = "820c86a39334640e99516928bd03fca88057d022";
-      };
-    }
-    {
-      name = "mimic_fn___mimic_fn_2.1.0.tgz";
-      path = fetchurl {
-        name = "mimic_fn___mimic_fn_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz";
-        sha1 = "7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b";
-      };
-    }
-    {
-      name = "mini_create_react_context___mini_create_react_context_0.4.0.tgz";
-      path = fetchurl {
-        name = "mini_create_react_context___mini_create_react_context_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz";
-        sha1 = "df60501c83151db69e28eac0ef08b4002efab040";
-      };
-    }
-    {
-      name = "mini_css_extract_plugin___mini_css_extract_plugin_0.8.0.tgz";
-      path = fetchurl {
-        name = "mini_css_extract_plugin___mini_css_extract_plugin_0.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz";
-        sha1 = "81d41ec4fe58c713a96ad7c723cdb2d0bd4d70e1";
-      };
-    }
-    {
-      name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
-      path = fetchurl {
-        name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
-        sha1 = "2e194de044626d4a10e7f7fbc00ce73e83e4d5c7";
-      };
-    }
-    {
-      name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
-      path = fetchurl {
-        name = "minimalistic_crypto_utils___minimalistic_crypto_utils_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz";
-        sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a";
-      };
-    }
-    {
-      name = "minimatch___minimatch_3.0.4.tgz";
-      path = fetchurl {
-        name = "minimatch___minimatch_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
-        sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
-      };
-    }
-    {
-      name = "minimist___minimist_0.0.8.tgz";
-      path = fetchurl {
-        name = "minimist___minimist_0.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
-        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
-      };
-    }
-    {
-      name = "minimist___minimist_1.2.0.tgz";
-      path = fetchurl {
-        name = "minimist___minimist_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz";
-        sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
-      };
-    }
-    {
-      name = "minimist___minimist_1.2.5.tgz";
-      path = fetchurl {
-        name = "minimist___minimist_1.2.5.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
-        sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
-      };
-    }
-    {
-      name = "minimist___minimist_0.0.10.tgz";
-      path = fetchurl {
-        name = "minimist___minimist_0.0.10.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz";
-        sha1 = "de3f98543dbf96082be48ad1a0c7cda836301dcf";
-      };
-    }
-    {
-      name = "minipass_collect___minipass_collect_1.0.2.tgz";
-      path = fetchurl {
-        name = "minipass_collect___minipass_collect_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz";
-        sha1 = "22b813bf745dc6edba2576b940022ad6edc8c617";
-      };
-    }
-    {
-      name = "minipass_flush___minipass_flush_1.0.5.tgz";
-      path = fetchurl {
-        name = "minipass_flush___minipass_flush_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz";
-        sha1 = "82e7135d7e89a50ffe64610a787953c4c4cbb373";
-      };
-    }
-    {
-      name = "minipass_pipeline___minipass_pipeline_1.2.2.tgz";
-      path = fetchurl {
-        name = "minipass_pipeline___minipass_pipeline_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz";
-        sha1 = "3dcb6bb4a546e32969c7ad710f2c79a86abba93a";
-      };
-    }
-    {
-      name = "minipass___minipass_3.1.1.tgz";
-      path = fetchurl {
-        name = "minipass___minipass_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz";
-        sha1 = "7607ce778472a185ad6d89082aa2070f79cedcd5";
-      };
-    }
-    {
-      name = "mississippi___mississippi_3.0.0.tgz";
-      path = fetchurl {
-        name = "mississippi___mississippi_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz";
-        sha1 = "ea0a3291f97e0b5e8776b363d5f0a12d94c67022";
-      };
-    }
-    {
-      name = "mixin_deep___mixin_deep_1.3.2.tgz";
-      path = fetchurl {
-        name = "mixin_deep___mixin_deep_1.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz";
-        sha1 = "1120b43dc359a785dce65b55b82e257ccf479566";
-      };
-    }
-    {
-      name = "mixin_object___mixin_object_2.0.1.tgz";
-      path = fetchurl {
-        name = "mixin_object___mixin_object_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz";
-        sha1 = "4fb949441dab182540f1fe035ba60e1947a5e57e";
-      };
-    }
-    {
-      name = "mkdirp___mkdirp_0.5.1.tgz";
-      path = fetchurl {
-        name = "mkdirp___mkdirp_0.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz";
-        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
-      };
-    }
-    {
-      name = "mkdirp___mkdirp_0.5.3.tgz";
-      path = fetchurl {
-        name = "mkdirp___mkdirp_0.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.3.tgz";
-        sha1 = "5a514b7179259287952881e94410ec5465659f8c";
-      };
-    }
-    {
-      name = "mkdirp___mkdirp_0.5.5.tgz";
-      path = fetchurl {
-        name = "mkdirp___mkdirp_0.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
-        sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
-      };
-    }
-    {
-      name = "mocha_junit_reporter___mocha_junit_reporter_1.18.0.tgz";
-      path = fetchurl {
-        name = "mocha_junit_reporter___mocha_junit_reporter_1.18.0.tgz";
-        url  = "https://registry.yarnpkg.com/mocha-junit-reporter/-/mocha-junit-reporter-1.18.0.tgz";
-        sha1 = "9209a3fba30025ae3ae5e6bfe7f9c5bc3c2e8ee2";
-      };
-    }
-    {
-      name = "mocha___mocha_5.2.0.tgz";
-      path = fetchurl {
-        name = "mocha___mocha_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz";
-        sha1 = "6d8ae508f59167f940f2b5b3c4a612ae50c90ae6";
-      };
-    }
-    {
-      name = "moment___moment_2.22.2.tgz";
-      path = fetchurl {
-        name = "moment___moment_2.22.2.tgz";
-        url  = "https://registry.yarnpkg.com/moment/-/moment-2.22.2.tgz";
-        sha1 = "3c257f9839fc0e93ff53149632239eb90783ff66";
-      };
-    }
-    {
-      name = "moment___moment_2.27.0.tgz";
-      path = fetchurl {
-        name = "moment___moment_2.27.0.tgz";
-        url  = "https://registry.yarnpkg.com/moment/-/moment-2.27.0.tgz";
-        sha1 = "8bff4e3e26a236220dfe3e36de756b6ebaa0105d";
-      };
-    }
-    {
-      name = "monaco_editor_textmate___monaco_editor_textmate_2.2.1.tgz";
-      path = fetchurl {
-        name = "monaco_editor_textmate___monaco_editor_textmate_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/monaco-editor-textmate/-/monaco-editor-textmate-2.2.1.tgz";
-        sha1 = "93f3f1932061dd2311b92a42ea1c027cfeb3e439";
-      };
-    }
-    {
-      name = "monaco_editor_webpack_plugin___monaco_editor_webpack_plugin_1.8.2.tgz";
-      path = fetchurl {
-        name = "monaco_editor_webpack_plugin___monaco_editor_webpack_plugin_1.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/monaco-editor-webpack-plugin/-/monaco-editor-webpack-plugin-1.8.2.tgz";
-        sha1 = "3721b8d9a3e2e41b154cf2a2955a7d7246c03714";
-      };
-    }
-    {
-      name = "monaco_editor___monaco_editor_0.19.3.tgz";
-      path = fetchurl {
-        name = "monaco_editor___monaco_editor_0.19.3.tgz";
-        url  = "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.19.3.tgz";
-        sha1 = "1c994b3186c00650dbcd034d5370d46bf56c0663";
-      };
-    }
-    {
-      name = "monaco_languageclient___monaco_languageclient_0.11.0.tgz";
-      path = fetchurl {
-        name = "monaco_languageclient___monaco_languageclient_0.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/monaco-languageclient/-/monaco-languageclient-0.11.0.tgz";
-        sha1 = "0968ec143c98bf2c9fa69c2a84ac9ad5448e039d";
-      };
-    }
-    {
-      name = "monaco_textmate___monaco_textmate_3.0.1.tgz";
-      path = fetchurl {
-        name = "monaco_textmate___monaco_textmate_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/monaco-textmate/-/monaco-textmate-3.0.1.tgz";
-        sha1 = "b6d26d266aa12edaff7069dae0d6e3747cba5cd7";
-      };
-    }
-    {
-      name = "moo___moo_0.4.3.tgz";
-      path = fetchurl {
-        name = "moo___moo_0.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz";
-        sha1 = "3f847a26f31cf625a956a87f2b10fbc013bfd10e";
-      };
-    }
-    {
-      name = "move_concurrently___move_concurrently_1.0.1.tgz";
-      path = fetchurl {
-        name = "move_concurrently___move_concurrently_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz";
-        sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92";
-      };
-    }
-    {
-      name = "ms___ms_2.0.0.tgz";
-      path = fetchurl {
-        name = "ms___ms_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
-        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
-      };
-    }
-    {
-      name = "ms___ms_2.1.1.tgz";
-      path = fetchurl {
-        name = "ms___ms_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz";
-        sha1 = "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a";
-      };
-    }
-    {
-      name = "ms___ms_2.1.2.tgz";
-      path = fetchurl {
-        name = "ms___ms_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz";
-        sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009";
-      };
-    }
-    {
-      name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz";
-      path = fetchurl {
-        name = "multicast_dns_service_types___multicast_dns_service_types_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz";
-        sha1 = "899f11d9686e5e05cb91b35d5f0e63b773cfc901";
-      };
-    }
-    {
-      name = "multicast_dns___multicast_dns_6.2.3.tgz";
-      path = fetchurl {
-        name = "multicast_dns___multicast_dns_6.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz";
-        sha1 = "a0ec7bd9055c4282f790c3c82f4e28db3b31b229";
-      };
-    }
-    {
-      name = "mustache___mustache_2.3.2.tgz";
-      path = fetchurl {
-        name = "mustache___mustache_2.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/mustache/-/mustache-2.3.2.tgz";
-        sha1 = "a6d4d9c3f91d13359ab889a812954f9230a3d0c5";
-      };
-    }
-    {
-      name = "mutation_observer___mutation_observer_1.0.3.tgz";
-      path = fetchurl {
-        name = "mutation_observer___mutation_observer_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/mutation-observer/-/mutation-observer-1.0.3.tgz";
-        sha1 = "42e9222b101bca82e5ba9d5a7acf4a14c0f263d0";
-      };
-    }
-    {
-      name = "mute_stream___mute_stream_0.0.8.tgz";
-      path = fetchurl {
-        name = "mute_stream___mute_stream_0.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz";
-        sha1 = "1630c42b2251ff81e2a283de96a5497ea92e5e0d";
-      };
-    }
-    {
-      name = "nan___nan_2.14.0.tgz";
-      path = fetchurl {
-        name = "nan___nan_2.14.0.tgz";
-        url  = "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz";
-        sha1 = "7818f722027b2459a86f0295d434d1fc2336c52c";
-      };
-    }
-    {
-      name = "nanomatch___nanomatch_1.2.13.tgz";
-      path = fetchurl {
-        name = "nanomatch___nanomatch_1.2.13.tgz";
-        url  = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz";
-        sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119";
-      };
-    }
-    {
-      name = "natural_compare___natural_compare_1.4.0.tgz";
-      path = fetchurl {
-        name = "natural_compare___natural_compare_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz";
-        sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
-      };
-    }
-    {
-      name = "nearley___nearley_2.15.1.tgz";
-      path = fetchurl {
-        name = "nearley___nearley_2.15.1.tgz";
-        url  = "https://registry.yarnpkg.com/nearley/-/nearley-2.15.1.tgz";
-        sha1 = "965e4e6ec9ed6b80fc81453e161efbcebb36d247";
-      };
-    }
-    {
-      name = "negotiator___negotiator_0.6.2.tgz";
-      path = fetchurl {
-        name = "negotiator___negotiator_0.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz";
-        sha1 = "feacf7ccf525a77ae9634436a64883ffeca346fb";
-      };
-    }
-    {
-      name = "neo_async___neo_async_2.6.1.tgz";
-      path = fetchurl {
-        name = "neo_async___neo_async_2.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz";
-        sha1 = "ac27ada66167fa8849a6addd837f6b189ad2081c";
-      };
-    }
-    {
-      name = "nice_try___nice_try_1.0.5.tgz";
-      path = fetchurl {
-        name = "nice_try___nice_try_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz";
-        sha1 = "a3378a7696ce7d223e88fc9b764bd7ef1089e366";
-      };
-    }
-    {
-      name = "no_case___no_case_2.3.2.tgz";
-      path = fetchurl {
-        name = "no_case___no_case_2.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz";
-        sha1 = "60b813396be39b3f1288a4c1ed5d1e7d28b464ac";
-      };
-    }
-    {
-      name = "node_fetch___node_fetch_2.6.0.tgz";
-      path = fetchurl {
-        name = "node_fetch___node_fetch_2.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz";
-        sha1 = "e633456386d4aa55863f676a7ab0daa8fdecb0fd";
-      };
-    }
-    {
-      name = "node_fetch___node_fetch_1.7.3.tgz";
-      path = fetchurl {
-        name = "node_fetch___node_fetch_1.7.3.tgz";
-        url  = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz";
-        sha1 = "980f6f72d85211a5347c6b2bc18c5b84c3eb47ef";
-      };
-    }
-    {
-      name = "node_forge___node_forge_0.9.0.tgz";
-      path = fetchurl {
-        name = "node_forge___node_forge_0.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz";
-        sha1 = "d624050edbb44874adca12bb9a52ec63cb782579";
-      };
-    }
-    {
-      name = "node_int64___node_int64_0.4.0.tgz";
-      path = fetchurl {
-        name = "node_int64___node_int64_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz";
-        sha1 = "87a9065cdb355d3182d8f94ce11188b825c68a3b";
-      };
-    }
-    {
-      name = "node_libs_browser___node_libs_browser_2.2.1.tgz";
-      path = fetchurl {
-        name = "node_libs_browser___node_libs_browser_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz";
-        sha1 = "b64f513d18338625f90346d27b0d235e631f6425";
-      };
-    }
-    {
-      name = "node_modules_regexp___node_modules_regexp_1.0.0.tgz";
-      path = fetchurl {
-        name = "node_modules_regexp___node_modules_regexp_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz";
-        sha1 = "8d9dbe28964a4ac5712e9131642107c71e90ec40";
-      };
-    }
-    {
-      name = "node_notifier___node_notifier_5.4.0.tgz";
-      path = fetchurl {
-        name = "node_notifier___node_notifier_5.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.0.tgz";
-        sha1 = "7b455fdce9f7de0c63538297354f3db468426e6a";
-      };
-    }
-    {
-      name = "node_releases___node_releases_1.1.25.tgz";
-      path = fetchurl {
-        name = "node_releases___node_releases_1.1.25.tgz";
-        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.25.tgz";
-        sha1 = "0c2d7dbc7fed30fbe02a9ee3007b8c90bf0133d3";
-      };
-    }
-    {
-      name = "node_releases___node_releases_1.1.3.tgz";
-      path = fetchurl {
-        name = "node_releases___node_releases_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.3.tgz";
-        sha1 = "aad9ce0dcb98129c753f772c0aa01360fb90fbd2";
-      };
-    }
-    {
-      name = "nomnom___nomnom_1.6.2.tgz";
-      path = fetchurl {
-        name = "nomnom___nomnom_1.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/nomnom/-/nomnom-1.6.2.tgz";
-        sha1 = "84a66a260174408fc5b77a18f888eccc44fb6971";
-      };
-    }
-    {
-      name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
-      path = fetchurl {
-        name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
-        sha1 = "e66db1838b200c1dfc233225d12cb36520e234a8";
-      };
-    }
-    {
-      name = "normalize_path___normalize_path_2.1.1.tgz";
-      path = fetchurl {
-        name = "normalize_path___normalize_path_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz";
-        sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
-      };
-    }
-    {
-      name = "normalize_path___normalize_path_3.0.0.tgz";
-      path = fetchurl {
-        name = "normalize_path___normalize_path_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz";
-        sha1 = "0dcd69ff23a1c9b11fd0978316644a0388216a65";
-      };
-    }
-    {
-      name = "normalize_range___normalize_range_0.1.2.tgz";
-      path = fetchurl {
-        name = "normalize_range___normalize_range_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz";
-        sha1 = "2d10c06bdfd312ea9777695a4d28439456b75942";
-      };
-    }
-    {
-      name = "normalize_url___normalize_url_1.9.1.tgz";
-      path = fetchurl {
-        name = "normalize_url___normalize_url_1.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz";
-        sha1 = "2cc0d66b31ea23036458436e3620d85954c66c3c";
-      };
-    }
-    {
-      name = "normalize_url___normalize_url_3.3.0.tgz";
-      path = fetchurl {
-        name = "normalize_url___normalize_url_3.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz";
-        sha1 = "b2e1c4dc4f7c6d57743df733a4f5978d18650559";
-      };
-    }
-    {
-      name = "normalizr___normalizr_3.4.1.tgz";
-      path = fetchurl {
-        name = "normalizr___normalizr_3.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/normalizr/-/normalizr-3.4.1.tgz";
-        sha1 = "cf4f8ac7a4a0dd7fe504b77cbe9dd533cb3e45b5";
-      };
-    }
-    {
-      name = "npm_run_path___npm_run_path_2.0.2.tgz";
-      path = fetchurl {
-        name = "npm_run_path___npm_run_path_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz";
-        sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
-      };
-    }
-    {
-      name = "nth_check___nth_check_1.0.2.tgz";
-      path = fetchurl {
-        name = "nth_check___nth_check_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz";
-        sha1 = "b2bd295c37e3dd58a3bf0700376663ba4d9cf05c";
-      };
-    }
-    {
-      name = "nth_check___nth_check_1.0.1.tgz";
-      path = fetchurl {
-        name = "nth_check___nth_check_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz";
-        sha1 = "9929acdf628fc2c41098deab82ac580cf149aae4";
-      };
-    }
-    {
-      name = "num2fraction___num2fraction_1.2.2.tgz";
-      path = fetchurl {
-        name = "num2fraction___num2fraction_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz";
-        sha1 = "6f682b6a027a4e9ddfa4564cd2589d1d4e669ede";
-      };
-    }
-    {
-      name = "number_is_nan___number_is_nan_1.0.1.tgz";
-      path = fetchurl {
-        name = "number_is_nan___number_is_nan_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
-        sha1 = "097b602b53422a522c1afb8790318336941a011d";
-      };
-    }
-    {
-      name = "nwmatcher___nwmatcher_1.4.4.tgz";
-      path = fetchurl {
-        name = "nwmatcher___nwmatcher_1.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.4.tgz";
-        sha1 = "2285631f34a95f0d0395cd900c96ed39b58f346e";
-      };
-    }
-    {
-      name = "nwsapi___nwsapi_2.1.4.tgz";
-      path = fetchurl {
-        name = "nwsapi___nwsapi_2.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.1.4.tgz";
-        sha1 = "e006a878db23636f8e8a67d33ca0e4edf61a842f";
-      };
-    }
-    {
-      name = "oauth_sign___oauth_sign_0.9.0.tgz";
-      path = fetchurl {
-        name = "oauth_sign___oauth_sign_0.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
-        sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
-      };
-    }
-    {
-      name = "object_assign___object_assign_4.1.1.tgz";
-      path = fetchurl {
-        name = "object_assign___object_assign_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz";
-        sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
-      };
-    }
-    {
-      name = "object_copy___object_copy_0.1.0.tgz";
-      path = fetchurl {
-        name = "object_copy___object_copy_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz";
-        sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
-      };
-    }
-    {
-      name = "object_inspect___object_inspect_1.6.0.tgz";
-      path = fetchurl {
-        name = "object_inspect___object_inspect_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz";
-        sha1 = "c70b6cbf72f274aab4c34c0c82f5167bf82cf15b";
-      };
-    }
-    {
-      name = "object_inspect___object_inspect_1.7.0.tgz";
-      path = fetchurl {
-        name = "object_inspect___object_inspect_1.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz";
-        sha1 = "f4f6bd181ad77f006b5ece60bd0b6f398ff74a67";
-      };
-    }
-    {
-      name = "object_is___object_is_1.0.1.tgz";
-      path = fetchurl {
-        name = "object_is___object_is_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz";
-        sha1 = "0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6";
-      };
-    }
-    {
-      name = "object_keys___object_keys_1.0.12.tgz";
-      path = fetchurl {
-        name = "object_keys___object_keys_1.0.12.tgz";
-        url  = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz";
-        sha1 = "09c53855377575310cca62f55bb334abff7b3ed2";
-      };
-    }
-    {
-      name = "object_keys___object_keys_1.1.1.tgz";
-      path = fetchurl {
-        name = "object_keys___object_keys_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz";
-        sha1 = "1c47f272df277f3b1daf061677d9c82e2322c60e";
-      };
-    }
-    {
-      name = "object_visit___object_visit_1.0.1.tgz";
-      path = fetchurl {
-        name = "object_visit___object_visit_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz";
-        sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
-      };
-    }
-    {
-      name = "object.assign___object.assign_4.1.0.tgz";
-      path = fetchurl {
-        name = "object.assign___object.assign_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz";
-        sha1 = "968bf1100d7956bb3ca086f006f846b3bc4008da";
-      };
-    }
-    {
-      name = "object.entries___object.entries_1.0.4.tgz";
-      path = fetchurl {
-        name = "object.entries___object.entries_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz";
-        sha1 = "1bf9a4dd2288f5b33f3a993d257661f05d161a5f";
-      };
-    }
-    {
-      name = "object.entries___object.entries_1.1.0.tgz";
-      path = fetchurl {
-        name = "object.entries___object.entries_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.0.tgz";
-        sha1 = "2024fc6d6ba246aee38bdb0ffd5cfbcf371b7519";
-      };
-    }
-    {
-      name = "object.fromentries___object.fromentries_2.0.0.tgz";
-      path = fetchurl {
-        name = "object.fromentries___object.fromentries_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.0.tgz";
-        sha1 = "49a543d92151f8277b3ac9600f1e930b189d30ab";
-      };
-    }
-    {
-      name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz";
-      path = fetchurl {
-        name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz";
-        sha1 = "8758c846f5b407adab0f236e0986f14b051caa16";
-      };
-    }
-    {
-      name = "object.pick___object.pick_1.3.0.tgz";
-      path = fetchurl {
-        name = "object.pick___object.pick_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz";
-        sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
-      };
-    }
-    {
-      name = "object.values___object.values_1.0.4.tgz";
-      path = fetchurl {
-        name = "object.values___object.values_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz";
-        sha1 = "e524da09b4f66ff05df457546ec72ac99f13069a";
-      };
-    }
-    {
-      name = "object.values___object.values_1.1.0.tgz";
-      path = fetchurl {
-        name = "object.values___object.values_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz";
-        sha1 = "bf6810ef5da3e5325790eaaa2be213ea84624da9";
-      };
-    }
-    {
-      name = "obuf___obuf_1.1.2.tgz";
-      path = fetchurl {
-        name = "obuf___obuf_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz";
-        sha1 = "09bea3343d41859ebd446292d11c9d4db619084e";
-      };
-    }
-    {
-      name = "on_finished___on_finished_2.3.0.tgz";
-      path = fetchurl {
-        name = "on_finished___on_finished_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz";
-        sha1 = "20f1336481b083cd75337992a16971aa2d906947";
-      };
-    }
-    {
-      name = "on_headers___on_headers_1.0.2.tgz";
-      path = fetchurl {
-        name = "on_headers___on_headers_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz";
-        sha1 = "772b0ae6aaa525c399e489adfad90c403eb3c28f";
-      };
-    }
-    {
-      name = "once___once_1.4.0.tgz";
-      path = fetchurl {
-        name = "once___once_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
-        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
-      };
-    }
-    {
-      name = "onetime___onetime_1.1.0.tgz";
-      path = fetchurl {
-        name = "onetime___onetime_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz";
-        sha1 = "a1f7838f8314c516f05ecefcbc4ccfe04b4ed789";
-      };
-    }
-    {
-      name = "onetime___onetime_2.0.1.tgz";
-      path = fetchurl {
-        name = "onetime___onetime_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz";
-        sha1 = "067428230fd67443b2794b22bba528b6867962d4";
-      };
-    }
-    {
-      name = "onetime___onetime_5.1.0.tgz";
-      path = fetchurl {
-        name = "onetime___onetime_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz";
-        sha1 = "fff0f3c91617fe62bb50189636e99ac8a6df7be5";
-      };
-    }
-    {
-      name = "onigasm___onigasm_2.2.4.tgz";
-      path = fetchurl {
-        name = "onigasm___onigasm_2.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/onigasm/-/onigasm-2.2.4.tgz";
-        sha1 = "b0ad97e3d7c3080476a1e5daae4b4579a976cbba";
-      };
-    }
-    {
-      name = "ono___ono_5.0.1.tgz";
-      path = fetchurl {
-        name = "ono___ono_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/ono/-/ono-5.0.1.tgz";
-        sha1 = "a39e0af7ab2c2a143a06f08ad9d187e61f9da0c8";
-      };
-    }
-    {
-      name = "openapi_schemas___openapi_schemas_1.0.0.tgz";
-      path = fetchurl {
-        name = "openapi_schemas___openapi_schemas_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/openapi-schemas/-/openapi-schemas-1.0.0.tgz";
-        sha1 = "c23ae0ae990d867a608e06265cb1ba8c73136a8e";
-      };
-    }
-    {
-      name = "openapi_types___openapi_types_1.3.5.tgz";
-      path = fetchurl {
-        name = "openapi_types___openapi_types_1.3.5.tgz";
-        url  = "https://registry.yarnpkg.com/openapi-types/-/openapi-types-1.3.5.tgz";
-        sha1 = "6718cfbc857fe6c6f1471f65b32bdebb9c10ce40";
-      };
-    }
-    {
-      name = "opener___opener_1.5.1.tgz";
-      path = fetchurl {
-        name = "opener___opener_1.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/opener/-/opener-1.5.1.tgz";
-        sha1 = "6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed";
-      };
-    }
-    {
-      name = "opn___opn_5.5.0.tgz";
-      path = fetchurl {
-        name = "opn___opn_5.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz";
-        sha1 = "fc7164fab56d235904c51c3b27da6758ca3b9bfc";
-      };
-    }
-    {
-      name = "optimist___optimist_0.6.1.tgz";
-      path = fetchurl {
-        name = "optimist___optimist_0.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz";
-        sha1 = "da3ea74686fa21a19a111c326e90eb15a0196686";
-      };
-    }
-    {
-      name = "optimize_css_assets_webpack_plugin___optimize_css_assets_webpack_plugin_5.0.3.tgz";
-      path = fetchurl {
-        name = "optimize_css_assets_webpack_plugin___optimize_css_assets_webpack_plugin_5.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz";
-        sha1 = "e2f1d4d94ad8c0af8967ebd7cf138dcb1ef14572";
-      };
-    }
-    {
-      name = "optionator___optionator_0.8.2.tgz";
-      path = fetchurl {
-        name = "optionator___optionator_0.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz";
-        sha1 = "364c5e409d3f4d6301d6c0b4c05bba50180aeb64";
-      };
-    }
-    {
-      name = "original___original_1.0.2.tgz";
-      path = fetchurl {
-        name = "original___original_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz";
-        sha1 = "e442a61cffe1c5fd20a65f3261c26663b303f25f";
-      };
-    }
-    {
-      name = "os_browserify___os_browserify_0.3.0.tgz";
-      path = fetchurl {
-        name = "os_browserify___os_browserify_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz";
-        sha1 = "854373c7f5c2315914fc9bfc6bd8238fdda1ec27";
-      };
-    }
-    {
-      name = "os_locale___os_locale_3.1.0.tgz";
-      path = fetchurl {
-        name = "os_locale___os_locale_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz";
-        sha1 = "a802a6ee17f24c10483ab9935719cef4ed16bf1a";
-      };
-    }
-    {
-      name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
-      path = fetchurl {
-        name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
-        sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
-      };
-    }
-    {
-      name = "ospath___ospath_1.2.2.tgz";
-      path = fetchurl {
-        name = "ospath___ospath_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz";
-        sha1 = "1276639774a3f8ef2572f7fe4280e0ea4550c07b";
-      };
-    }
-    {
-      name = "p_defer___p_defer_1.0.0.tgz";
-      path = fetchurl {
-        name = "p_defer___p_defer_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz";
-        sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
-      };
-    }
-    {
-      name = "p_each_series___p_each_series_1.0.0.tgz";
-      path = fetchurl {
-        name = "p_each_series___p_each_series_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz";
-        sha1 = "930f3d12dd1f50e7434457a22cd6f04ac6ad7f71";
-      };
-    }
-    {
-      name = "p_finally___p_finally_1.0.0.tgz";
-      path = fetchurl {
-        name = "p_finally___p_finally_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz";
-        sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
-      };
-    }
-    {
-      name = "p_is_promise___p_is_promise_2.1.0.tgz";
-      path = fetchurl {
-        name = "p_is_promise___p_is_promise_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz";
-        sha1 = "918cebaea248a62cf7ffab8e3bca8c5f882fc42e";
-      };
-    }
-    {
-      name = "p_limit___p_limit_2.2.2.tgz";
-      path = fetchurl {
-        name = "p_limit___p_limit_2.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz";
-        sha1 = "61279b67721f5287aa1c13a9a7fbbc48c9291b1e";
-      };
-    }
-    {
-      name = "p_limit___p_limit_2.2.1.tgz";
-      path = fetchurl {
-        name = "p_limit___p_limit_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz";
-        sha1 = "aa07a788cc3151c939b5131f63570f0dd2009537";
-      };
-    }
-    {
-      name = "p_locate___p_locate_3.0.0.tgz";
-      path = fetchurl {
-        name = "p_locate___p_locate_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz";
-        sha1 = "322d69a05c0264b25997d9f40cd8a891ab0064a4";
-      };
-    }
-    {
-      name = "p_locate___p_locate_4.1.0.tgz";
-      path = fetchurl {
-        name = "p_locate___p_locate_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz";
-        sha1 = "a3428bb7088b3a60292f66919278b7c297ad4f07";
-      };
-    }
-    {
-      name = "p_map___p_map_2.1.0.tgz";
-      path = fetchurl {
-        name = "p_map___p_map_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz";
-        sha1 = "310928feef9c9ecc65b68b17693018a665cea175";
-      };
-    }
-    {
-      name = "p_map___p_map_3.0.0.tgz";
-      path = fetchurl {
-        name = "p_map___p_map_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz";
-        sha1 = "d704d9af8a2ba684e2600d9a215983d4141a979d";
-      };
-    }
-    {
-      name = "p_reduce___p_reduce_1.0.0.tgz";
-      path = fetchurl {
-        name = "p_reduce___p_reduce_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz";
-        sha1 = "18c2b0dd936a4690a529f8231f58a0fdb6a47dfa";
-      };
-    }
-    {
-      name = "p_retry___p_retry_3.0.1.tgz";
-      path = fetchurl {
-        name = "p_retry___p_retry_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz";
-        sha1 = "316b4c8893e2c8dc1cfa891f406c4b422bebf328";
-      };
-    }
-    {
-      name = "p_try___p_try_2.2.0.tgz";
-      path = fetchurl {
-        name = "p_try___p_try_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz";
-        sha1 = "cb2868540e313d61de58fafbe35ce9004d5540e6";
-      };
-    }
-    {
-      name = "pako___pako_1.0.11.tgz";
-      path = fetchurl {
-        name = "pako___pako_1.0.11.tgz";
-        url  = "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz";
-        sha1 = "6c9599d340d54dfd3946380252a35705a6b992bf";
-      };
-    }
-    {
-      name = "papaparse___papaparse_5.2.0.tgz";
-      path = fetchurl {
-        name = "papaparse___papaparse_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/papaparse/-/papaparse-5.2.0.tgz";
-        sha1 = "97976a1b135c46612773029153dc64995caa3b7b";
-      };
-    }
-    {
-      name = "parallel_transform___parallel_transform_1.2.0.tgz";
-      path = fetchurl {
-        name = "parallel_transform___parallel_transform_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz";
-        sha1 = "9049ca37d6cb2182c3b1d2c720be94d14a5814fc";
-      };
-    }
-    {
-      name = "param_case___param_case_2.1.1.tgz";
-      path = fetchurl {
-        name = "param_case___param_case_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz";
-        sha1 = "df94fd8cf6531ecf75e6bef9a0858fbc72be2247";
-      };
-    }
-    {
-      name = "parent_module___parent_module_1.0.0.tgz";
-      path = fetchurl {
-        name = "parent_module___parent_module_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.0.tgz";
-        sha1 = "df250bdc5391f4a085fb589dad761f5ad6b865b5";
-      };
-    }
-    {
-      name = "parse_asn1___parse_asn1_5.1.5.tgz";
-      path = fetchurl {
-        name = "parse_asn1___parse_asn1_5.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz";
-        sha1 = "003271343da58dc94cace494faef3d2147ecea0e";
-      };
-    }
-    {
-      name = "parse_entities___parse_entities_1.2.0.tgz";
-      path = fetchurl {
-        name = "parse_entities___parse_entities_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.0.tgz";
-        sha1 = "9deac087661b2e36814153cb78d7e54a4c5fd6f4";
-      };
-    }
-    {
-      name = "parse_json___parse_json_4.0.0.tgz";
-      path = fetchurl {
-        name = "parse_json___parse_json_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz";
-        sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
-      };
-    }
-    {
-      name = "parse_passwd___parse_passwd_1.0.0.tgz";
-      path = fetchurl {
-        name = "parse_passwd___parse_passwd_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz";
-        sha1 = "6d5b934a456993b23d37f40a382d6f1666a8e5c6";
-      };
-    }
-    {
-      name = "parse5___parse5_4.0.0.tgz";
-      path = fetchurl {
-        name = "parse5___parse5_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz";
-        sha1 = "6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608";
-      };
-    }
-    {
-      name = "parse5___parse5_1.5.1.tgz";
-      path = fetchurl {
-        name = "parse5___parse5_1.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/parse5/-/parse5-1.5.1.tgz";
-        sha1 = "9b7f3b0de32be78dc2401b17573ccaf0f6f59d94";
-      };
-    }
-    {
-      name = "parse5___parse5_3.0.3.tgz";
-      path = fetchurl {
-        name = "parse5___parse5_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz";
-        sha1 = "042f792ffdd36851551cf4e9e066b3874ab45b5c";
-      };
-    }
-    {
-      name = "parseurl___parseurl_1.3.3.tgz";
-      path = fetchurl {
-        name = "parseurl___parseurl_1.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz";
-        sha1 = "9da19e7bee8d12dff0513ed5b76957793bc2e8d4";
-      };
-    }
-    {
-      name = "pascalcase___pascalcase_0.1.1.tgz";
-      path = fetchurl {
-        name = "pascalcase___pascalcase_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz";
-        sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
-      };
-    }
-    {
-      name = "path_browserify___path_browserify_0.0.1.tgz";
-      path = fetchurl {
-        name = "path_browserify___path_browserify_0.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz";
-        sha1 = "e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a";
-      };
-    }
-    {
-      name = "path_dirname___path_dirname_1.0.2.tgz";
-      path = fetchurl {
-        name = "path_dirname___path_dirname_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz";
-        sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
-      };
-    }
-    {
-      name = "path_exists___path_exists_3.0.0.tgz";
-      path = fetchurl {
-        name = "path_exists___path_exists_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz";
-        sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
-      };
-    }
-    {
-      name = "path_exists___path_exists_4.0.0.tgz";
-      path = fetchurl {
-        name = "path_exists___path_exists_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz";
-        sha1 = "513bdbe2d3b95d7762e8c1137efa195c6c61b5b3";
-      };
-    }
-    {
-      name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
-      path = fetchurl {
-        name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
-        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
-      };
-    }
-    {
-      name = "path_is_inside___path_is_inside_1.0.2.tgz";
-      path = fetchurl {
-        name = "path_is_inside___path_is_inside_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz";
-        sha1 = "365417dede44430d1c11af61027facf074bdfc53";
-      };
-    }
-    {
-      name = "path_key___path_key_2.0.1.tgz";
-      path = fetchurl {
-        name = "path_key___path_key_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz";
-        sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
-      };
-    }
-    {
-      name = "path_parse___path_parse_1.0.6.tgz";
-      path = fetchurl {
-        name = "path_parse___path_parse_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz";
-        sha1 = "d62dbb5679405d72c4737ec58600e9ddcf06d24c";
-      };
-    }
-    {
-      name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
-      path = fetchurl {
-        name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
-        sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
-      };
-    }
-    {
-      name = "path_to_regexp___path_to_regexp_1.8.0.tgz";
-      path = fetchurl {
-        name = "path_to_regexp___path_to_regexp_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz";
-        sha1 = "887b3ba9d84393e87a0a0b9f4cb756198b53548a";
-      };
-    }
-    {
-      name = "path_type___path_type_3.0.0.tgz";
-      path = fetchurl {
-        name = "path_type___path_type_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz";
-        sha1 = "cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f";
-      };
-    }
-    {
-      name = "pbkdf2___pbkdf2_3.0.17.tgz";
-      path = fetchurl {
-        name = "pbkdf2___pbkdf2_3.0.17.tgz";
-        url  = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz";
-        sha1 = "976c206530617b14ebb32114239f7b09336e93a6";
-      };
-    }
-    {
-      name = "pend___pend_1.2.0.tgz";
-      path = fetchurl {
-        name = "pend___pend_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz";
-        sha1 = "7a57eb550a6783f9115331fcf4663d5c8e007a50";
-      };
-    }
-    {
-      name = "performance_now___performance_now_2.1.0.tgz";
-      path = fetchurl {
-        name = "performance_now___performance_now_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
-        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
-      };
-    }
-    {
-      name = "picomatch___picomatch_2.0.7.tgz";
-      path = fetchurl {
-        name = "picomatch___picomatch_2.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz";
-        sha1 = "514169d8c7cd0bdbeecc8a2609e34a7163de69f6";
-      };
-    }
-    {
-      name = "pify___pify_2.3.0.tgz";
-      path = fetchurl {
-        name = "pify___pify_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz";
-        sha1 = "ed141a6ac043a849ea588498e7dca8b15330e90c";
-      };
-    }
-    {
-      name = "pify___pify_3.0.0.tgz";
-      path = fetchurl {
-        name = "pify___pify_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz";
-        sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
-      };
-    }
-    {
-      name = "pify___pify_4.0.1.tgz";
-      path = fetchurl {
-        name = "pify___pify_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz";
-        sha1 = "4b2cd25c50d598735c50292224fd8c6df41e3231";
-      };
-    }
-    {
-      name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
-      path = fetchurl {
-        name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz";
-        sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
-      };
-    }
-    {
-      name = "pinkie___pinkie_2.0.4.tgz";
-      path = fetchurl {
-        name = "pinkie___pinkie_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz";
-        sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870";
-      };
-    }
-    {
-      name = "pirates___pirates_4.0.1.tgz";
-      path = fetchurl {
-        name = "pirates___pirates_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz";
-        sha1 = "643a92caf894566f91b2b986d2c66950a8e2fb87";
-      };
-    }
-    {
-      name = "pkg_dir___pkg_dir_3.0.0.tgz";
-      path = fetchurl {
-        name = "pkg_dir___pkg_dir_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz";
-        sha1 = "2749020f239ed990881b1f71210d51eb6523bea3";
-      };
-    }
-    {
-      name = "pkg_dir___pkg_dir_4.2.0.tgz";
-      path = fetchurl {
-        name = "pkg_dir___pkg_dir_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz";
-        sha1 = "f099133df7ede422e81d1d8448270eeb3e4261f3";
-      };
-    }
-    {
-      name = "platform___platform_1.3.3.tgz";
-      path = fetchurl {
-        name = "platform___platform_1.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/platform/-/platform-1.3.3.tgz";
-        sha1 = "646c77011899870b6a0903e75e997e8e51da7461";
-      };
-    }
-    {
-      name = "pn___pn_1.1.0.tgz";
-      path = fetchurl {
-        name = "pn___pn_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz";
-        sha1 = "e2f4cef0e219f463c179ab37463e4e1ecdccbafb";
-      };
-    }
-    {
-      name = "popper.js___popper.js_1.15.0.tgz";
-      path = fetchurl {
-        name = "popper.js___popper.js_1.15.0.tgz";
-        url  = "https://registry.yarnpkg.com/popper.js/-/popper.js-1.15.0.tgz";
-        sha1 = "5560b99bbad7647e9faa475c6b8056621f5a4ff2";
-      };
-    }
-    {
-      name = "popper.js___popper.js_1.14.7.tgz";
-      path = fetchurl {
-        name = "popper.js___popper.js_1.14.7.tgz";
-        url  = "https://registry.yarnpkg.com/popper.js/-/popper.js-1.14.7.tgz";
-        sha1 = "e31ec06cfac6a97a53280c3e55e4e0c860e7738e";
-      };
-    }
-    {
-      name = "portfinder___portfinder_1.0.25.tgz";
-      path = fetchurl {
-        name = "portfinder___portfinder_1.0.25.tgz";
-        url  = "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz";
-        sha1 = "254fd337ffba869f4b9d37edc298059cb4d35eca";
-      };
-    }
-    {
-      name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
-      path = fetchurl {
-        name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
-        sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
-      };
-    }
-    {
-      name = "postcss_calc___postcss_calc_7.0.1.tgz";
-      path = fetchurl {
-        name = "postcss_calc___postcss_calc_7.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz";
-        sha1 = "36d77bab023b0ecbb9789d84dcb23c4941145436";
-      };
-    }
-    {
-      name = "postcss_colormin___postcss_colormin_4.0.3.tgz";
-      path = fetchurl {
-        name = "postcss_colormin___postcss_colormin_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz";
-        sha1 = "ae060bce93ed794ac71264f08132d550956bd381";
-      };
-    }
-    {
-      name = "postcss_convert_values___postcss_convert_values_4.0.1.tgz";
-      path = fetchurl {
-        name = "postcss_convert_values___postcss_convert_values_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz";
-        sha1 = "ca3813ed4da0f812f9d43703584e449ebe189a7f";
-      };
-    }
-    {
-      name = "postcss_discard_comments___postcss_discard_comments_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_discard_comments___postcss_discard_comments_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz";
-        sha1 = "1fbabd2c246bff6aaad7997b2b0918f4d7af4033";
-      };
-    }
-    {
-      name = "postcss_discard_duplicates___postcss_discard_duplicates_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_discard_duplicates___postcss_discard_duplicates_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz";
-        sha1 = "3fe133cd3c82282e550fc9b239176a9207b784eb";
-      };
-    }
-    {
-      name = "postcss_discard_empty___postcss_discard_empty_4.0.1.tgz";
-      path = fetchurl {
-        name = "postcss_discard_empty___postcss_discard_empty_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz";
-        sha1 = "c8c951e9f73ed9428019458444a02ad90bb9f765";
-      };
-    }
-    {
-      name = "postcss_discard_overridden___postcss_discard_overridden_4.0.1.tgz";
-      path = fetchurl {
-        name = "postcss_discard_overridden___postcss_discard_overridden_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz";
-        sha1 = "652aef8a96726f029f5e3e00146ee7a4e755ff57";
-      };
-    }
-    {
-      name = "postcss_merge_longhand___postcss_merge_longhand_4.0.11.tgz";
-      path = fetchurl {
-        name = "postcss_merge_longhand___postcss_merge_longhand_4.0.11.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz";
-        sha1 = "62f49a13e4a0ee04e7b98f42bb16062ca2549e24";
-      };
-    }
-    {
-      name = "postcss_merge_rules___postcss_merge_rules_4.0.3.tgz";
-      path = fetchurl {
-        name = "postcss_merge_rules___postcss_merge_rules_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz";
-        sha1 = "362bea4ff5a1f98e4075a713c6cb25aefef9a650";
-      };
-    }
-    {
-      name = "postcss_minify_font_values___postcss_minify_font_values_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_minify_font_values___postcss_minify_font_values_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz";
-        sha1 = "cd4c344cce474343fac5d82206ab2cbcb8afd5a6";
-      };
-    }
-    {
-      name = "postcss_minify_gradients___postcss_minify_gradients_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_minify_gradients___postcss_minify_gradients_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz";
-        sha1 = "93b29c2ff5099c535eecda56c4aa6e665a663471";
-      };
-    }
-    {
-      name = "postcss_minify_params___postcss_minify_params_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_minify_params___postcss_minify_params_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz";
-        sha1 = "6b9cef030c11e35261f95f618c90036d680db874";
-      };
-    }
-    {
-      name = "postcss_minify_selectors___postcss_minify_selectors_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_minify_selectors___postcss_minify_selectors_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz";
-        sha1 = "e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8";
-      };
-    }
-    {
-      name = "postcss_modules_extract_imports___postcss_modules_extract_imports_2.0.0.tgz";
-      path = fetchurl {
-        name = "postcss_modules_extract_imports___postcss_modules_extract_imports_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz";
-        sha1 = "818719a1ae1da325f9832446b01136eeb493cd7e";
-      };
-    }
-    {
-      name = "postcss_modules_local_by_default___postcss_modules_local_by_default_3.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_modules_local_by_default___postcss_modules_local_by_default_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz";
-        sha1 = "e8a6561be914aaf3c052876377524ca90dbb7915";
-      };
-    }
-    {
-      name = "postcss_modules_scope___postcss_modules_scope_2.1.0.tgz";
-      path = fetchurl {
-        name = "postcss_modules_scope___postcss_modules_scope_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz";
-        sha1 = "ad3f5bf7856114f6fcab901b0502e2a2bc39d4eb";
-      };
-    }
-    {
-      name = "postcss_modules_values___postcss_modules_values_3.0.0.tgz";
-      path = fetchurl {
-        name = "postcss_modules_values___postcss_modules_values_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz";
-        sha1 = "5b5000d6ebae29b4255301b4a3a54574423e7f10";
-      };
-    }
-    {
-      name = "postcss_normalize_charset___postcss_normalize_charset_4.0.1.tgz";
-      path = fetchurl {
-        name = "postcss_normalize_charset___postcss_normalize_charset_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz";
-        sha1 = "8b35add3aee83a136b0471e0d59be58a50285dd4";
-      };
-    }
-    {
-      name = "postcss_normalize_display_values___postcss_normalize_display_values_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_normalize_display_values___postcss_normalize_display_values_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz";
-        sha1 = "0dbe04a4ce9063d4667ed2be476bb830c825935a";
-      };
-    }
-    {
-      name = "postcss_normalize_positions___postcss_normalize_positions_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_normalize_positions___postcss_normalize_positions_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz";
-        sha1 = "05f757f84f260437378368a91f8932d4b102917f";
-      };
-    }
-    {
-      name = "postcss_normalize_repeat_style___postcss_normalize_repeat_style_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_normalize_repeat_style___postcss_normalize_repeat_style_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz";
-        sha1 = "c4ebbc289f3991a028d44751cbdd11918b17910c";
-      };
-    }
-    {
-      name = "postcss_normalize_string___postcss_normalize_string_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_normalize_string___postcss_normalize_string_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz";
-        sha1 = "cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c";
-      };
-    }
-    {
-      name = "postcss_normalize_timing_functions___postcss_normalize_timing_functions_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_normalize_timing_functions___postcss_normalize_timing_functions_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz";
-        sha1 = "8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9";
-      };
-    }
-    {
-      name = "postcss_normalize_unicode___postcss_normalize_unicode_4.0.1.tgz";
-      path = fetchurl {
-        name = "postcss_normalize_unicode___postcss_normalize_unicode_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz";
-        sha1 = "841bd48fdcf3019ad4baa7493a3d363b52ae1cfb";
-      };
-    }
-    {
-      name = "postcss_normalize_url___postcss_normalize_url_4.0.1.tgz";
-      path = fetchurl {
-        name = "postcss_normalize_url___postcss_normalize_url_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz";
-        sha1 = "10e437f86bc7c7e58f7b9652ed878daaa95faae1";
-      };
-    }
-    {
-      name = "postcss_normalize_whitespace___postcss_normalize_whitespace_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_normalize_whitespace___postcss_normalize_whitespace_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz";
-        sha1 = "bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82";
-      };
-    }
-    {
-      name = "postcss_ordered_values___postcss_ordered_values_4.1.2.tgz";
-      path = fetchurl {
-        name = "postcss_ordered_values___postcss_ordered_values_4.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz";
-        sha1 = "0cf75c820ec7d5c4d280189559e0b571ebac0eee";
-      };
-    }
-    {
-      name = "postcss_reduce_initial___postcss_reduce_initial_4.0.3.tgz";
-      path = fetchurl {
-        name = "postcss_reduce_initial___postcss_reduce_initial_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz";
-        sha1 = "7fd42ebea5e9c814609639e2c2e84ae270ba48df";
-      };
-    }
-    {
-      name = "postcss_reduce_transforms___postcss_reduce_transforms_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_reduce_transforms___postcss_reduce_transforms_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz";
-        sha1 = "17efa405eacc6e07be3414a5ca2d1074681d4e29";
-      };
-    }
-    {
-      name = "postcss_selector_parser___postcss_selector_parser_3.1.1.tgz";
-      path = fetchurl {
-        name = "postcss_selector_parser___postcss_selector_parser_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz";
-        sha1 = "4f875f4afb0c96573d5cf4d74011aee250a7e865";
-      };
-    }
-    {
-      name = "postcss_selector_parser___postcss_selector_parser_5.0.0.tgz";
-      path = fetchurl {
-        name = "postcss_selector_parser___postcss_selector_parser_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz";
-        sha1 = "249044356697b33b64f1a8f7c80922dddee7195c";
-      };
-    }
-    {
-      name = "postcss_selector_parser___postcss_selector_parser_6.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_selector_parser___postcss_selector_parser_6.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz";
-        sha1 = "934cf799d016c83411859e09dcecade01286ec5c";
-      };
-    }
-    {
-      name = "postcss_svgo___postcss_svgo_4.0.2.tgz";
-      path = fetchurl {
-        name = "postcss_svgo___postcss_svgo_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz";
-        sha1 = "17b997bc711b333bab143aaed3b8d3d6e3d38258";
-      };
-    }
-    {
-      name = "postcss_unique_selectors___postcss_unique_selectors_4.0.1.tgz";
-      path = fetchurl {
-        name = "postcss_unique_selectors___postcss_unique_selectors_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz";
-        sha1 = "9446911f3289bfd64c6d680f073c03b1f9ee4bac";
-      };
-    }
-    {
-      name = "postcss_value_parser___postcss_value_parser_3.3.0.tgz";
-      path = fetchurl {
-        name = "postcss_value_parser___postcss_value_parser_3.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz";
-        sha1 = "87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15";
-      };
-    }
-    {
-      name = "postcss_value_parser___postcss_value_parser_3.3.1.tgz";
-      path = fetchurl {
-        name = "postcss_value_parser___postcss_value_parser_3.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz";
-        sha1 = "9ff822547e2893213cf1c30efa51ac5fd1ba8281";
-      };
-    }
-    {
-      name = "postcss_value_parser___postcss_value_parser_4.0.0.tgz";
-      path = fetchurl {
-        name = "postcss_value_parser___postcss_value_parser_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.0.tgz";
-        sha1 = "99a983d365f7b2ad8d0f9b8c3094926eab4b936d";
-      };
-    }
-    {
-      name = "postcss___postcss_5.2.18.tgz";
-      path = fetchurl {
-        name = "postcss___postcss_5.2.18.tgz";
-        url  = "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz";
-        sha1 = "badfa1497d46244f6390f58b319830d9107853c5";
-      };
-    }
-    {
-      name = "postcss___postcss_7.0.16.tgz";
-      path = fetchurl {
-        name = "postcss___postcss_7.0.16.tgz";
-        url  = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.16.tgz";
-        sha1 = "48f64f1b4b558cb8b52c88987724359acb010da2";
-      };
-    }
-    {
-      name = "postcss___postcss_7.0.17.tgz";
-      path = fetchurl {
-        name = "postcss___postcss_7.0.17.tgz";
-        url  = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.17.tgz";
-        sha1 = "4da1bdff5322d4a0acaab4d87f3e782436bad31f";
-      };
-    }
-    {
-      name = "prefix_style___prefix_style_2.0.1.tgz";
-      path = fetchurl {
-        name = "prefix_style___prefix_style_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/prefix-style/-/prefix-style-2.0.1.tgz";
-        sha1 = "66bba9a870cfda308a5dc20e85e9120932c95a06";
-      };
-    }
-    {
-      name = "prelude_ls___prelude_ls_1.1.2.tgz";
-      path = fetchurl {
-        name = "prelude_ls___prelude_ls_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz";
-        sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
-      };
-    }
-    {
-      name = "prepend_http___prepend_http_1.0.4.tgz";
-      path = fetchurl {
-        name = "prepend_http___prepend_http_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz";
-        sha1 = "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc";
-      };
-    }
-    {
-      name = "prettier___prettier_1.19.1.tgz";
-      path = fetchurl {
-        name = "prettier___prettier_1.19.1.tgz";
-        url  = "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz";
-        sha1 = "f7d7f5ff8a9cd872a7be4ca142095956a60797cb";
-      };
-    }
-    {
-      name = "pretty_bytes___pretty_bytes_5.3.0.tgz";
-      path = fetchurl {
-        name = "pretty_bytes___pretty_bytes_5.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz";
-        sha1 = "f2849e27db79fb4d6cfe24764fc4134f165989f2";
-      };
-    }
-    {
-      name = "pretty_error___pretty_error_2.1.1.tgz";
-      path = fetchurl {
-        name = "pretty_error___pretty_error_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz";
-        sha1 = "5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3";
-      };
-    }
-    {
-      name = "pretty_format___pretty_format_24.8.0.tgz";
-      path = fetchurl {
-        name = "pretty_format___pretty_format_24.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.8.0.tgz";
-        sha1 = "8dae7044f58db7cb8be245383b565a963e3c27f2";
-      };
-    }
-    {
-      name = "pretty_format___pretty_format_24.9.0.tgz";
-      path = fetchurl {
-        name = "pretty_format___pretty_format_24.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz";
-        sha1 = "12fac31b37019a4eea3c11aa9a959eb7628aa7c9";
-      };
-    }
-    {
-      name = "pretty_format___pretty_format_25.5.0.tgz";
-      path = fetchurl {
-        name = "pretty_format___pretty_format_25.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz";
-        sha1 = "7873c1d774f682c34b8d48b6743a2bf2ac55791a";
-      };
-    }
-    {
-      name = "private___private_0.1.8.tgz";
-      path = fetchurl {
-        name = "private___private_0.1.8.tgz";
-        url  = "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz";
-        sha1 = "2381edb3689f7a53d653190060fcf822d2f368ff";
-      };
-    }
-    {
-      name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
-      path = fetchurl {
-        name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
-        sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2";
-      };
-    }
-    {
-      name = "process___process_0.11.10.tgz";
-      path = fetchurl {
-        name = "process___process_0.11.10.tgz";
-        url  = "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz";
-        sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182";
-      };
-    }
-    {
-      name = "progress___progress_2.0.3.tgz";
-      path = fetchurl {
-        name = "progress___progress_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz";
-        sha1 = "7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8";
-      };
-    }
-    {
-      name = "promise_inflight___promise_inflight_1.0.1.tgz";
-      path = fetchurl {
-        name = "promise_inflight___promise_inflight_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz";
-        sha1 = "98472870bf228132fcbdd868129bad12c3c029e3";
-      };
-    }
-    {
-      name = "promise_polyfill___promise_polyfill_8.1.3.tgz";
-      path = fetchurl {
-        name = "promise_polyfill___promise_polyfill_8.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.1.3.tgz";
-        sha1 = "8c99b3cf53f3a91c68226ffde7bde81d7f904116";
-      };
-    }
-    {
-      name = "promise___promise_7.3.1.tgz";
-      path = fetchurl {
-        name = "promise___promise_7.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz";
-        sha1 = "064b72602b18f90f29192b8b1bc418ffd1ebd3bf";
-      };
-    }
-    {
-      name = "prompts___prompts_2.1.0.tgz";
-      path = fetchurl {
-        name = "prompts___prompts_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/prompts/-/prompts-2.1.0.tgz";
-        sha1 = "bf90bc71f6065d255ea2bdc0fe6520485c1b45db";
-      };
-    }
-    {
-      name = "prop_types___prop_types_15.5.8.tgz";
-      path = fetchurl {
-        name = "prop_types___prop_types_15.5.8.tgz";
-        url  = "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz";
-        sha1 = "6b7b2e141083be38c8595aa51fc55775c7199394";
-      };
-    }
-    {
-      name = "prop_types___prop_types_15.6.2.tgz";
-      path = fetchurl {
-        name = "prop_types___prop_types_15.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz";
-        sha1 = "05d5ca77b4453e985d60fc7ff8c859094a497102";
-      };
-    }
-    {
-      name = "prop_types___prop_types_15.7.2.tgz";
-      path = fetchurl {
-        name = "prop_types___prop_types_15.7.2.tgz";
-        url  = "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz";
-        sha1 = "52c41e75b8c87e72b9d9360e0206b99dcbffa6c5";
-      };
-    }
-    {
-      name = "proxy_addr___proxy_addr_2.0.4.tgz";
-      path = fetchurl {
-        name = "proxy_addr___proxy_addr_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.4.tgz";
-        sha1 = "ecfc733bf22ff8c6f407fa275327b9ab67e48b93";
-      };
-    }
-    {
-      name = "proxy_addr___proxy_addr_2.0.6.tgz";
-      path = fetchurl {
-        name = "proxy_addr___proxy_addr_2.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz";
-        sha1 = "fdc2336505447d3f2f2c638ed272caf614bbb2bf";
-      };
-    }
-    {
-      name = "prr___prr_1.0.1.tgz";
-      path = fetchurl {
-        name = "prr___prr_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz";
-        sha1 = "d3fc114ba06995a45ec6893f484ceb1d78f5f476";
-      };
-    }
-    {
-      name = "psl___psl_1.2.0.tgz";
-      path = fetchurl {
-        name = "psl___psl_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/psl/-/psl-1.2.0.tgz";
-        sha1 = "df12b5b1b3a30f51c329eacbdef98f3a6e136dc6";
-      };
-    }
-    {
-      name = "public_encrypt___public_encrypt_4.0.3.tgz";
-      path = fetchurl {
-        name = "public_encrypt___public_encrypt_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz";
-        sha1 = "4fcc9d77a07e48ba7527e7cbe0de33d0701331e0";
-      };
-    }
-    {
-      name = "pump___pump_2.0.1.tgz";
-      path = fetchurl {
-        name = "pump___pump_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz";
-        sha1 = "12399add6e4cf7526d973cbc8b5ce2e2908b3909";
-      };
-    }
-    {
-      name = "pump___pump_3.0.0.tgz";
-      path = fetchurl {
-        name = "pump___pump_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz";
-        sha1 = "b4a2116815bde2f4e1ea602354e8c75565107a64";
-      };
-    }
-    {
-      name = "pumpify___pumpify_1.5.1.tgz";
-      path = fetchurl {
-        name = "pumpify___pumpify_1.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz";
-        sha1 = "36513be246ab27570b1a374a5ce278bfd74370ce";
-      };
-    }
-    {
-      name = "punycode___punycode_1.3.2.tgz";
-      path = fetchurl {
-        name = "punycode___punycode_1.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz";
-        sha1 = "9653a036fb7c1ee42342f2325cceefea3926c48d";
-      };
-    }
-    {
-      name = "punycode___punycode_1.4.1.tgz";
-      path = fetchurl {
-        name = "punycode___punycode_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz";
-        sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
-      };
-    }
-    {
-      name = "punycode___punycode_2.1.1.tgz";
-      path = fetchurl {
-        name = "punycode___punycode_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
-        sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
-      };
-    }
-    {
-      name = "q___q_1.5.1.tgz";
-      path = fetchurl {
-        name = "q___q_1.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz";
-        sha1 = "7e32f75b41381291d04611f1bf14109ac00651d7";
-      };
-    }
-    {
-      name = "qs___qs_6.5.1.tgz";
-      path = fetchurl {
-        name = "qs___qs_6.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz";
-        sha1 = "349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8";
-      };
-    }
-    {
-      name = "qs___qs_6.7.0.tgz";
-      path = fetchurl {
-        name = "qs___qs_6.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz";
-        sha1 = "41dc1a015e3d581f1621776be31afb2876a9b1bc";
-      };
-    }
-    {
-      name = "qs___qs_6.9.1.tgz";
-      path = fetchurl {
-        name = "qs___qs_6.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/qs/-/qs-6.9.1.tgz";
-        sha1 = "20082c65cb78223635ab1a9eaca8875a29bf8ec9";
-      };
-    }
-    {
-      name = "qs___qs_6.5.2.tgz";
-      path = fetchurl {
-        name = "qs___qs_6.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
-        sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
-      };
-    }
-    {
-      name = "query_string___query_string_4.3.4.tgz";
-      path = fetchurl {
-        name = "query_string___query_string_4.3.4.tgz";
-        url  = "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz";
-        sha1 = "bbb693b9ca915c232515b228b1a02b609043dbeb";
-      };
-    }
-    {
-      name = "querystring_es3___querystring_es3_0.2.1.tgz";
-      path = fetchurl {
-        name = "querystring_es3___querystring_es3_0.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz";
-        sha1 = "9ec61f79049875707d69414596fd907a4d711e73";
-      };
-    }
-    {
-      name = "querystring___querystring_0.2.0.tgz";
-      path = fetchurl {
-        name = "querystring___querystring_0.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz";
-        sha1 = "b209849203bb25df820da756e747005878521620";
-      };
-    }
-    {
-      name = "querystringify___querystringify_2.1.1.tgz";
-      path = fetchurl {
-        name = "querystringify___querystringify_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz";
-        sha1 = "60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e";
-      };
-    }
-    {
-      name = "raf___raf_3.4.0.tgz";
-      path = fetchurl {
-        name = "raf___raf_3.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/raf/-/raf-3.4.0.tgz";
-        sha1 = "a28876881b4bc2ca9117d4138163ddb80f781575";
-      };
-    }
-    {
-      name = "railroad_diagrams___railroad_diagrams_1.0.0.tgz";
-      path = fetchurl {
-        name = "railroad_diagrams___railroad_diagrams_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz";
-        sha1 = "eb7e6267548ddedfb899c1b90e57374559cddb7e";
-      };
-    }
-    {
-      name = "ramda___ramda_0.26.1.tgz";
-      path = fetchurl {
-        name = "ramda___ramda_0.26.1.tgz";
-        url  = "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz";
-        sha1 = "8d41351eb8111c55353617fc3bbffad8e4d35d06";
-      };
-    }
-    {
-      name = "randexp___randexp_0.4.6.tgz";
-      path = fetchurl {
-        name = "randexp___randexp_0.4.6.tgz";
-        url  = "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz";
-        sha1 = "e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3";
-      };
-    }
-    {
-      name = "randombytes___randombytes_2.1.0.tgz";
-      path = fetchurl {
-        name = "randombytes___randombytes_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz";
-        sha1 = "df6f84372f0270dc65cdf6291349ab7a473d4f2a";
-      };
-    }
-    {
-      name = "randomfill___randomfill_1.0.4.tgz";
-      path = fetchurl {
-        name = "randomfill___randomfill_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz";
-        sha1 = "c92196fc86ab42be983f1bf31778224931d61458";
-      };
-    }
-    {
-      name = "range_parser___range_parser_1.2.1.tgz";
-      path = fetchurl {
-        name = "range_parser___range_parser_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz";
-        sha1 = "3cf37023d199e1c24d1a55b84800c2f3e6468031";
-      };
-    }
-    {
-      name = "range_parser___range_parser_1.2.0.tgz";
-      path = fetchurl {
-        name = "range_parser___range_parser_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz";
-        sha1 = "f49be6b487894ddc40dcc94a322f611092e00d5e";
-      };
-    }
-    {
-      name = "raw_body___raw_body_2.3.2.tgz";
-      path = fetchurl {
-        name = "raw_body___raw_body_2.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz";
-        sha1 = "bcd60c77d3eb93cde0050295c3f379389bc88f89";
-      };
-    }
-    {
-      name = "raw_body___raw_body_2.4.0.tgz";
-      path = fetchurl {
-        name = "raw_body___raw_body_2.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz";
-        sha1 = "a1ce6fb9c9bc356ca52e89256ab59059e13d0332";
-      };
-    }
-    {
-      name = "raw_loader___raw_loader_4.0.1.tgz";
-      path = fetchurl {
-        name = "raw_loader___raw_loader_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.1.tgz";
-        sha1 = "14e1f726a359b68437e183d5a5b7d33a3eba6933";
-      };
-    }
-    {
-      name = "react_codemirror2___react_codemirror2_4.3.0.tgz";
-      path = fetchurl {
-        name = "react_codemirror2___react_codemirror2_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-codemirror2/-/react-codemirror2-4.3.0.tgz";
-        sha1 = "e79aedca4da60d22402d2cd74f2885a3e5c009fd";
-      };
-    }
-    {
-      name = "react_copy_to_clipboard___react_copy_to_clipboard_5.0.1.tgz";
-      path = fetchurl {
-        name = "react_copy_to_clipboard___react_copy_to_clipboard_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.1.tgz";
-        sha1 = "8eae107bb400be73132ed3b6a7b4fb156090208e";
-      };
-    }
-    {
-      name = "react_datepicker___react_datepicker_2.1.0.tgz";
-      path = fetchurl {
-        name = "react_datepicker___react_datepicker_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-datepicker/-/react-datepicker-2.1.0.tgz";
-        sha1 = "d9b9dfe78eaf4214e93a77d150cdafbc49ef522c";
-      };
-    }
-    {
-      name = "react_dimensions___react_dimensions_1.3.1.tgz";
-      path = fetchurl {
-        name = "react_dimensions___react_dimensions_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-dimensions/-/react-dimensions-1.3.1.tgz";
-        sha1 = "89c29bcd48828a74faeb07da1e461e1a354ccc48";
-      };
-    }
-    {
-      name = "react_dnd_html5_backend___react_dnd_html5_backend_9.5.1.tgz";
-      path = fetchurl {
-        name = "react_dnd_html5_backend___react_dnd_html5_backend_9.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-dnd-html5-backend/-/react-dnd-html5-backend-9.5.1.tgz";
-        sha1 = "e6a0aed3ece800c1abe004f9ed9991513e2e644c";
-      };
-    }
-    {
-      name = "react_dnd___react_dnd_9.5.1.tgz";
-      path = fetchurl {
-        name = "react_dnd___react_dnd_9.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-dnd/-/react-dnd-9.5.1.tgz";
-        sha1 = "907e55c791d6c50cbed1a4021c14b989b86ac467";
-      };
-    }
-    {
-      name = "react_dom___react_dom_16.8.2.tgz";
-      path = fetchurl {
-        name = "react_dom___react_dom_16.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/react-dom/-/react-dom-16.8.2.tgz";
-        sha1 = "7c8a69545dd554d45d66442230ba04a6a0a3c3d3";
-      };
-    }
-    {
-      name = "react_draggable___react_draggable_3.0.5.tgz";
-      path = fetchurl {
-        name = "react_draggable___react_draggable_3.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/react-draggable/-/react-draggable-3.0.5.tgz";
-        sha1 = "c031e0ed4313531f9409d6cd84c8ebcec0ddfe2d";
-      };
-    }
-    {
-      name = "react_draggable___react_draggable_3.3.0.tgz";
-      path = fetchurl {
-        name = "react_draggable___react_draggable_3.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-draggable/-/react-draggable-3.3.0.tgz";
-        sha1 = "2ed7ea3f92e7d742d747f9e6324860606cd4d997";
-      };
-    }
-    {
-      name = "react_grid_layout___react_grid_layout_0.16.6.tgz";
-      path = fetchurl {
-        name = "react_grid_layout___react_grid_layout_0.16.6.tgz";
-        url  = "https://registry.yarnpkg.com/react-grid-layout/-/react-grid-layout-0.16.6.tgz";
-        sha1 = "9b2407a2b946c2260ebaf66f13b556e1da4efeb2";
-      };
-    }
-    {
-      name = "react_is___react_is_16.13.1.tgz";
-      path = fetchurl {
-        name = "react_is___react_is_16.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz";
-        sha1 = "789729a4dc36de2999dc156dd6c1d9c18cea56a4";
-      };
-    }
-    {
-      name = "react_is___react_is_16.5.2.tgz";
-      path = fetchurl {
-        name = "react_is___react_is_16.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/react-is/-/react-is-16.5.2.tgz";
-        sha1 = "e2a7b7c3f5d48062eb769fcb123505eb928722e3";
-      };
-    }
-    {
-      name = "react_is___react_is_16.12.0.tgz";
-      path = fetchurl {
-        name = "react_is___react_is_16.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz";
-        sha1 = "2cc0fe0fba742d97fd527c42a13bec4eeb06241c";
-      };
-    }
-    {
-      name = "react_is___react_is_16.11.0.tgz";
-      path = fetchurl {
-        name = "react_is___react_is_16.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-is/-/react-is-16.11.0.tgz";
-        sha1 = "b85dfecd48ad1ce469ff558a882ca8e8313928fa";
-      };
-    }
-    {
-      name = "react_is___react_is_16.8.6.tgz";
-      path = fetchurl {
-        name = "react_is___react_is_16.8.6.tgz";
-        url  = "https://registry.yarnpkg.com/react-is/-/react-is-16.8.6.tgz";
-        sha1 = "5bbc1e2d29141c9fbdfed456343fe2bc430a6a16";
-      };
-    }
-    {
-      name = "react_lifecycles_compat___react_lifecycles_compat_3.0.4.tgz";
-      path = fetchurl {
-        name = "react_lifecycles_compat___react_lifecycles_compat_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz";
-        sha1 = "4f1a273afdfc8f3488a8c516bfda78f872352362";
-      };
-    }
-    {
-      name = "react_loadable___react_loadable_5.5.0.tgz";
-      path = fetchurl {
-        name = "react_loadable___react_loadable_5.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-loadable/-/react-loadable-5.5.0.tgz";
-        sha1 = "582251679d3da86c32aae2c8e689c59f1196d8c4";
-      };
-    }
-    {
-      name = "react_markdown___react_markdown_4.0.4.tgz";
-      path = fetchurl {
-        name = "react_markdown___react_markdown_4.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/react-markdown/-/react-markdown-4.0.4.tgz";
-        sha1 = "bdc882bc3eb4dfac45d57bfe58d8f482c5a85a64";
-      };
-    }
-    {
-      name = "react_monaco_editor___react_monaco_editor_0.33.0.tgz";
-      path = fetchurl {
-        name = "react_monaco_editor___react_monaco_editor_0.33.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-monaco-editor/-/react-monaco-editor-0.33.0.tgz";
-        sha1 = "822c331836ec39b1160faf22b0c722266f822460";
-      };
-    }
-    {
-      name = "react_onclickoutside___react_onclickoutside_6.7.1.tgz";
-      path = fetchurl {
-        name = "react_onclickoutside___react_onclickoutside_6.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-onclickoutside/-/react-onclickoutside-6.7.1.tgz";
-        sha1 = "6a5b5b8b4eae6b776259712c89c8a2b36b17be93";
-      };
-    }
-    {
-      name = "react_popper___react_popper_1.3.3.tgz";
-      path = fetchurl {
-        name = "react_popper___react_popper_1.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/react-popper/-/react-popper-1.3.3.tgz";
-        sha1 = "2c6cef7515a991256b4f0536cd4bdcb58a7b6af6";
-      };
-    }
-    {
-      name = "react_redux___react_redux_7.2.0.tgz";
-      path = fetchurl {
-        name = "react_redux___react_redux_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.0.tgz";
-        sha1 = "f970f62192b3981642fec46fd0db18a074fe879d";
-      };
-    }
-    {
-      name = "react_resizable___react_resizable_1.7.5.tgz";
-      path = fetchurl {
-        name = "react_resizable___react_resizable_1.7.5.tgz";
-        url  = "https://registry.yarnpkg.com/react-resizable/-/react-resizable-1.7.5.tgz";
-        sha1 = "83eb75bb3684da6989bbbf4f826e1470f0af902e";
-      };
-    }
-    {
-      name = "react_router_dom___react_router_dom_5.2.0.tgz";
-      path = fetchurl {
-        name = "react_router_dom___react_router_dom_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz";
-        sha1 = "9e65a4d0c45e13289e66c7b17c7e175d0ea15662";
-      };
-    }
-    {
-      name = "react_router___react_router_5.2.0.tgz";
-      path = fetchurl {
-        name = "react_router___react_router_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz";
-        sha1 = "424e75641ca8747fbf76e5ecca69781aa37ea293";
-      };
-    }
-    {
-      name = "react_scrollbars_custom___react_scrollbars_custom_4.0.0_alpha.8.tgz";
-      path = fetchurl {
-        name = "react_scrollbars_custom___react_scrollbars_custom_4.0.0_alpha.8.tgz";
-        url  = "https://registry.yarnpkg.com/react-scrollbars-custom/-/react-scrollbars-custom-4.0.0-alpha.8.tgz";
-        sha1 = "dc09b61831b59d93e24f0ec18dae84c9f3fc14e8";
-      };
-    }
-    {
-      name = "react_test_renderer___react_test_renderer_16.5.2.tgz";
-      path = fetchurl {
-        name = "react_test_renderer___react_test_renderer_16.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.5.2.tgz";
-        sha1 = "92e9d2c6f763b9821b2e0b22f994ee675068b5ae";
-      };
-    }
-    {
-      name = "react_virtualized___react_virtualized_9.20.1.tgz";
-      path = fetchurl {
-        name = "react_virtualized___react_virtualized_9.20.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-virtualized/-/react-virtualized-9.20.1.tgz";
-        sha1 = "02dc08fe9070386b8c48e2ac56bce7af0208d22d";
-      };
-    }
-    {
-      name = "react___react_16.11.0.tgz";
-      path = fetchurl {
-        name = "react___react_16.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/react/-/react-16.11.0.tgz";
-        sha1 = "d294545fe62299ccee83363599bf904e4a07fdbb";
-      };
-    }
-    {
-      name = "read_pkg_up___read_pkg_up_4.0.0.tgz";
-      path = fetchurl {
-        name = "read_pkg_up___read_pkg_up_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz";
-        sha1 = "1b221c6088ba7799601c808f91161c66e58f8978";
-      };
-    }
-    {
-      name = "read_pkg___read_pkg_3.0.0.tgz";
-      path = fetchurl {
-        name = "read_pkg___read_pkg_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz";
-        sha1 = "9cbc686978fee65d16c00e2b19c237fcf6e38389";
-      };
-    }
-    {
-      name = "readable_stream___readable_stream_2.3.7.tgz";
-      path = fetchurl {
-        name = "readable_stream___readable_stream_2.3.7.tgz";
-        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz";
-        sha1 = "1eca1cf711aef814c04f62252a36a62f6cb23b57";
-      };
-    }
-    {
-      name = "readable_stream___readable_stream_3.6.0.tgz";
-      path = fetchurl {
-        name = "readable_stream___readable_stream_3.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz";
-        sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198";
-      };
-    }
-    {
-      name = "readable_stream___readable_stream_3.4.0.tgz";
-      path = fetchurl {
-        name = "readable_stream___readable_stream_3.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz";
-        sha1 = "a51c26754658e0a3c21dbf59163bd45ba6f447fc";
-      };
-    }
-    {
-      name = "readdirp___readdirp_2.2.1.tgz";
-      path = fetchurl {
-        name = "readdirp___readdirp_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz";
-        sha1 = "0e87622a3325aa33e892285caf8b4e846529a525";
-      };
-    }
-    {
-      name = "readdirp___readdirp_3.1.1.tgz";
-      path = fetchurl {
-        name = "readdirp___readdirp_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/readdirp/-/readdirp-3.1.1.tgz";
-        sha1 = "b158123ac343c8b0f31d65680269cc0fc1025db1";
-      };
-    }
-    {
-      name = "realpath_native___realpath_native_1.1.0.tgz";
-      path = fetchurl {
-        name = "realpath_native___realpath_native_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz";
-        sha1 = "2003294fea23fb0672f2476ebe22fcf498a2d65c";
-      };
-    }
-    {
-      name = "redux_auth_wrapper___redux_auth_wrapper_1.1.0.tgz";
-      path = fetchurl {
-        name = "redux_auth_wrapper___redux_auth_wrapper_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/redux-auth-wrapper/-/redux-auth-wrapper-1.1.0.tgz";
-        sha1 = "ccd4a753fe2134eb93c44f4e5781054577f6244a";
-      };
-    }
-    {
-      name = "redux_thunk___redux_thunk_2.3.0.tgz";
-      path = fetchurl {
-        name = "redux_thunk___redux_thunk_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz";
-        sha1 = "51c2c19a185ed5187aaa9a2d08b666d0d6467622";
-      };
-    }
-    {
-      name = "redux___redux_4.0.0.tgz";
-      path = fetchurl {
-        name = "redux___redux_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/redux/-/redux-4.0.0.tgz";
-        sha1 = "aa698a92b729315d22b34a0553d7e6533555cc03";
-      };
-    }
-    {
-      name = "redux___redux_4.0.5.tgz";
-      path = fetchurl {
-        name = "redux___redux_4.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz";
-        sha1 = "4db5de5816e17891de8a80c424232d06f051d93f";
-      };
-    }
-    {
-      name = "regenerate_unicode_properties___regenerate_unicode_properties_8.1.0.tgz";
-      path = fetchurl {
-        name = "regenerate_unicode_properties___regenerate_unicode_properties_8.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz";
-        sha1 = "ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e";
-      };
-    }
-    {
-      name = "regenerate___regenerate_1.4.0.tgz";
-      path = fetchurl {
-        name = "regenerate___regenerate_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz";
-        sha1 = "4a856ec4b56e4077c557589cae85e7a4c8869a11";
-      };
-    }
-    {
-      name = "regenerator_runtime___regenerator_runtime_0.10.5.tgz";
-      path = fetchurl {
-        name = "regenerator_runtime___regenerator_runtime_0.10.5.tgz";
-        url  = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz";
-        sha1 = "336c3efc1220adcedda2c9fab67b5a7955a33658";
-      };
-    }
-    {
-      name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz";
-      path = fetchurl {
-        name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz";
-        url  = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
-        sha1 = "be05ad7f9bf7d22e056f9726cee5017fbf19e2e9";
-      };
-    }
-    {
-      name = "regenerator_runtime___regenerator_runtime_0.13.3.tgz";
-      path = fetchurl {
-        name = "regenerator_runtime___regenerator_runtime_0.13.3.tgz";
-        url  = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz";
-        sha1 = "7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5";
-      };
-    }
-    {
-      name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
-      path = fetchurl {
-        name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
-        url  = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz";
-        sha1 = "d878a1d094b4306d10b9096484b33ebd55e26697";
-      };
-    }
-    {
-      name = "regenerator_transform___regenerator_transform_0.14.1.tgz";
-      path = fetchurl {
-        name = "regenerator_transform___regenerator_transform_0.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz";
-        sha1 = "3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb";
-      };
-    }
-    {
-      name = "regex_not___regex_not_1.0.2.tgz";
-      path = fetchurl {
-        name = "regex_not___regex_not_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz";
-        sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c";
-      };
-    }
-    {
-      name = "regexp_tree___regexp_tree_0.1.11.tgz";
-      path = fetchurl {
-        name = "regexp_tree___regexp_tree_0.1.11.tgz";
-        url  = "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.11.tgz";
-        sha1 = "c9c7f00fcf722e0a56c7390983a7a63dd6c272f3";
-      };
-    }
-    {
-      name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
-      path = fetchurl {
-        name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz";
-        sha1 = "7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75";
-      };
-    }
-    {
-      name = "regexpp___regexpp_2.0.1.tgz";
-      path = fetchurl {
-        name = "regexpp___regexpp_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz";
-        sha1 = "8d19d31cf632482b589049f8281f93dbcba4d07f";
-      };
-    }
-    {
-      name = "regexpu_core___regexpu_core_4.5.4.tgz";
-      path = fetchurl {
-        name = "regexpu_core___regexpu_core_4.5.4.tgz";
-        url  = "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.4.tgz";
-        sha1 = "080d9d02289aa87fe1667a4f5136bc98a6aebaae";
-      };
-    }
-    {
-      name = "regjsgen___regjsgen_0.5.0.tgz";
-      path = fetchurl {
-        name = "regjsgen___regjsgen_0.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz";
-        sha1 = "a7634dc08f89209c2049adda3525711fb97265dd";
-      };
-    }
-    {
-      name = "regjsparser___regjsparser_0.6.0.tgz";
-      path = fetchurl {
-        name = "regjsparser___regjsparser_0.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz";
-        sha1 = "f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c";
-      };
-    }
-    {
-      name = "relateurl___relateurl_0.2.7.tgz";
-      path = fetchurl {
-        name = "relateurl___relateurl_0.2.7.tgz";
-        url  = "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz";
-        sha1 = "54dbf377e51440aca90a4cd274600d3ff2d888a9";
-      };
-    }
-    {
-      name = "remark_parse___remark_parse_5.0.0.tgz";
-      path = fetchurl {
-        name = "remark_parse___remark_parse_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/remark-parse/-/remark-parse-5.0.0.tgz";
-        sha1 = "4c077f9e499044d1d5c13f80d7a98cf7b9285d95";
-      };
-    }
-    {
-      name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
-      path = fetchurl {
-        name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
-        sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
-      };
-    }
-    {
-      name = "renderkid___renderkid_2.0.3.tgz";
-      path = fetchurl {
-        name = "renderkid___renderkid_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.3.tgz";
-        sha1 = "380179c2ff5ae1365c522bf2fcfcff01c5b74149";
-      };
-    }
-    {
-      name = "repeat_element___repeat_element_1.1.3.tgz";
-      path = fetchurl {
-        name = "repeat_element___repeat_element_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz";
-        sha1 = "782e0d825c0c5a3bb39731f84efee6b742e6b1ce";
-      };
-    }
-    {
-      name = "repeat_string___repeat_string_1.6.1.tgz";
-      path = fetchurl {
-        name = "repeat_string___repeat_string_1.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz";
-        sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
-      };
-    }
-    {
-      name = "replace_ext___replace_ext_1.0.0.tgz";
-      path = fetchurl {
-        name = "replace_ext___replace_ext_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz";
-        sha1 = "de63128373fcbf7c3ccfa4de5a480c45a67958eb";
-      };
-    }
-    {
-      name = "request_progress___request_progress_3.0.0.tgz";
-      path = fetchurl {
-        name = "request_progress___request_progress_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz";
-        sha1 = "4ca754081c7fec63f505e4faa825aa06cd669dbe";
-      };
-    }
-    {
-      name = "request_promise_core___request_promise_core_1.1.2.tgz";
-      path = fetchurl {
-        name = "request_promise_core___request_promise_core_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.2.tgz";
-        sha1 = "339f6aababcafdb31c799ff158700336301d3346";
-      };
-    }
-    {
-      name = "request_promise_native___request_promise_native_1.0.7.tgz";
-      path = fetchurl {
-        name = "request_promise_native___request_promise_native_1.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.7.tgz";
-        sha1 = "a49868a624bdea5069f1251d0a836e0d89aa2c59";
-      };
-    }
-    {
-      name = "request___request_2.88.0.tgz";
-      path = fetchurl {
-        name = "request___request_2.88.0.tgz";
-        url  = "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz";
-        sha1 = "9c2fca4f7d35b592efe57c7f0a55e81052124fef";
-      };
-    }
-    {
-      name = "require_directory___require_directory_2.1.1.tgz";
-      path = fetchurl {
-        name = "require_directory___require_directory_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
-        sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
-      };
-    }
-    {
-      name = "require_main_filename___require_main_filename_1.0.1.tgz";
-      path = fetchurl {
-        name = "require_main_filename___require_main_filename_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz";
-        sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
-      };
-    }
-    {
-      name = "require_main_filename___require_main_filename_2.0.0.tgz";
-      path = fetchurl {
-        name = "require_main_filename___require_main_filename_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz";
-        sha1 = "d0b329ecc7cc0f61649f62215be69af54aa8989b";
-      };
-    }
-    {
-      name = "requires_port___requires_port_1.0.0.tgz";
-      path = fetchurl {
-        name = "requires_port___requires_port_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz";
-        sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff";
-      };
-    }
-    {
-      name = "reselect___reselect_4.0.0.tgz";
-      path = fetchurl {
-        name = "reselect___reselect_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/reselect/-/reselect-4.0.0.tgz";
-        sha1 = "f2529830e5d3d0e021408b246a206ef4ea4437f7";
-      };
-    }
-    {
-      name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
-      path = fetchurl {
-        name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz";
-        sha1 = "00a9f7387556e27038eae232caa372a6a59b665a";
-      };
-    }
-    {
-      name = "resolve_dir___resolve_dir_1.0.1.tgz";
-      path = fetchurl {
-        name = "resolve_dir___resolve_dir_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz";
-        sha1 = "79a40644c362be82f26effe739c9bb5382046f43";
-      };
-    }
-    {
-      name = "resolve_from___resolve_from_3.0.0.tgz";
-      path = fetchurl {
-        name = "resolve_from___resolve_from_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz";
-        sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748";
-      };
-    }
-    {
-      name = "resolve_from___resolve_from_4.0.0.tgz";
-      path = fetchurl {
-        name = "resolve_from___resolve_from_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz";
-        sha1 = "4abcd852ad32dd7baabfe9b40e00a36db5f392e6";
-      };
-    }
-    {
-      name = "resolve_pathname___resolve_pathname_3.0.0.tgz";
-      path = fetchurl {
-        name = "resolve_pathname___resolve_pathname_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz";
-        sha1 = "99d02224d3cf263689becbb393bc560313025dcd";
-      };
-    }
-    {
-      name = "resolve_url___resolve_url_0.2.1.tgz";
-      path = fetchurl {
-        name = "resolve_url___resolve_url_0.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz";
-        sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
-      };
-    }
-    {
-      name = "resolve___resolve_1.1.7.tgz";
-      path = fetchurl {
-        name = "resolve___resolve_1.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz";
-        sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b";
-      };
-    }
-    {
-      name = "resolve___resolve_1.8.1.tgz";
-      path = fetchurl {
-        name = "resolve___resolve_1.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz";
-        sha1 = "82f1ec19a423ac1fbd080b0bab06ba36e84a7a26";
-      };
-    }
-    {
-      name = "resolve___resolve_1.11.1.tgz";
-      path = fetchurl {
-        name = "resolve___resolve_1.11.1.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz";
-        sha1 = "ea10d8110376982fef578df8fc30b9ac30a07a3e";
-      };
-    }
-    {
-      name = "resolve___resolve_1.12.0.tgz";
-      path = fetchurl {
-        name = "resolve___resolve_1.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz";
-        sha1 = "3fc644a35c84a48554609ff26ec52b66fa577df6";
-      };
-    }
-    {
-      name = "restore_cursor___restore_cursor_1.0.1.tgz";
-      path = fetchurl {
-        name = "restore_cursor___restore_cursor_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz";
-        sha1 = "34661f46886327fed2991479152252df92daa541";
-      };
-    }
-    {
-      name = "restore_cursor___restore_cursor_2.0.0.tgz";
-      path = fetchurl {
-        name = "restore_cursor___restore_cursor_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz";
-        sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf";
-      };
-    }
-    {
-      name = "restore_cursor___restore_cursor_3.1.0.tgz";
-      path = fetchurl {
-        name = "restore_cursor___restore_cursor_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz";
-        sha1 = "39f67c54b3a7a58cea5236d95cf0034239631f7e";
-      };
-    }
-    {
-      name = "ret___ret_0.1.15.tgz";
-      path = fetchurl {
-        name = "ret___ret_0.1.15.tgz";
-        url  = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz";
-        sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc";
-      };
-    }
-    {
-      name = "retry___retry_0.12.0.tgz";
-      path = fetchurl {
-        name = "retry___retry_0.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz";
-        sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
-      };
-    }
-    {
-      name = "rgb_regex___rgb_regex_1.0.1.tgz";
-      path = fetchurl {
-        name = "rgb_regex___rgb_regex_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz";
-        sha1 = "c0e0d6882df0e23be254a475e8edd41915feaeb1";
-      };
-    }
-    {
-      name = "rgba_regex___rgba_regex_1.0.0.tgz";
-      path = fetchurl {
-        name = "rgba_regex___rgba_regex_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz";
-        sha1 = "43374e2e2ca0968b0ef1523460b7d730ff22eeb3";
-      };
-    }
-    {
-      name = "right_align___right_align_0.1.3.tgz";
-      path = fetchurl {
-        name = "right_align___right_align_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz";
-        sha1 = "61339b722fe6a3515689210d24e14c96148613ef";
-      };
-    }
-    {
-      name = "rimraf___rimraf_2.6.3.tgz";
-      path = fetchurl {
-        name = "rimraf___rimraf_2.6.3.tgz";
-        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz";
-        sha1 = "b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab";
-      };
-    }
-    {
-      name = "rimraf___rimraf_2.7.1.tgz";
-      path = fetchurl {
-        name = "rimraf___rimraf_2.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz";
-        sha1 = "35797f13a7fdadc566142c29d4f07ccad483e3ec";
-      };
-    }
-    {
-      name = "ripemd160___ripemd160_2.0.2.tgz";
-      path = fetchurl {
-        name = "ripemd160___ripemd160_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz";
-        sha1 = "a1c1a6f624751577ba5d07914cbc92850585890c";
-      };
-    }
-    {
-      name = "rome___rome_2.1.22.tgz";
-      path = fetchurl {
-        name = "rome___rome_2.1.22.tgz";
-        url  = "https://registry.yarnpkg.com/rome/-/rome-2.1.22.tgz";
-        sha1 = "4bf25318cc0522ae92dd090472ce7a6e0b1f5e02";
-      };
-    }
-    {
-      name = "rst_selector_parser___rst_selector_parser_2.2.3.tgz";
-      path = fetchurl {
-        name = "rst_selector_parser___rst_selector_parser_2.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz";
-        sha1 = "81b230ea2fcc6066c89e3472de794285d9b03d91";
-      };
-    }
-    {
-      name = "rsvp___rsvp_4.8.5.tgz";
-      path = fetchurl {
-        name = "rsvp___rsvp_4.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz";
-        sha1 = "c8f155311d167f68f21e168df71ec5b083113734";
-      };
-    }
-    {
-      name = "run_async___run_async_2.3.0.tgz";
-      path = fetchurl {
-        name = "run_async___run_async_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz";
-        sha1 = "0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0";
-      };
-    }
-    {
-      name = "run_queue___run_queue_1.0.3.tgz";
-      path = fetchurl {
-        name = "run_queue___run_queue_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz";
-        sha1 = "e848396f057d223f24386924618e25694161ec47";
-      };
-    }
-    {
-      name = "rxjs___rxjs_6.5.5.tgz";
-      path = fetchurl {
-        name = "rxjs___rxjs_6.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz";
-        sha1 = "c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec";
-      };
-    }
-    {
-      name = "rxjs___rxjs_6.4.0.tgz";
-      path = fetchurl {
-        name = "rxjs___rxjs_6.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.4.0.tgz";
-        sha1 = "f3bb0fe7bda7fb69deac0c16f17b50b0b8790504";
-      };
-    }
-    {
-      name = "safe_buffer___safe_buffer_5.1.1.tgz";
-      path = fetchurl {
-        name = "safe_buffer___safe_buffer_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz";
-        sha1 = "893312af69b2123def71f57889001671eeb2c853";
-      };
-    }
-    {
-      name = "safe_buffer___safe_buffer_5.1.2.tgz";
-      path = fetchurl {
-        name = "safe_buffer___safe_buffer_5.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
-        sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
-      };
-    }
-    {
-      name = "safe_buffer___safe_buffer_5.2.0.tgz";
-      path = fetchurl {
-        name = "safe_buffer___safe_buffer_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz";
-        sha1 = "b74daec49b1148f88c64b68d49b1e815c1f2f519";
-      };
-    }
-    {
-      name = "safe_regex___safe_regex_1.1.0.tgz";
-      path = fetchurl {
-        name = "safe_regex___safe_regex_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz";
-        sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
-      };
-    }
-    {
-      name = "safer_buffer___safer_buffer_2.1.2.tgz";
-      path = fetchurl {
-        name = "safer_buffer___safer_buffer_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
-        sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
-      };
-    }
-    {
-      name = "sane___sane_4.1.0.tgz";
-      path = fetchurl {
-        name = "sane___sane_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz";
-        sha1 = "ed881fd922733a6c461bc189dc2b6c006f3ffded";
-      };
-    }
-    {
-      name = "sass_loader___sass_loader_7.1.0.tgz";
-      path = fetchurl {
-        name = "sass_loader___sass_loader_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.1.0.tgz";
-        sha1 = "16fd5138cb8b424bf8a759528a1972d72aad069d";
-      };
-    }
-    {
-      name = "sass___sass_1.22.7.tgz";
-      path = fetchurl {
-        name = "sass___sass_1.22.7.tgz";
-        url  = "https://registry.yarnpkg.com/sass/-/sass-1.22.7.tgz";
-        sha1 = "5a1a77dc11aa659db4e782d238bf9f3d44a60546";
-      };
-    }
-    {
-      name = "sax___sax_1.2.4.tgz";
-      path = fetchurl {
-        name = "sax___sax_1.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz";
-        sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9";
-      };
-    }
-    {
-      name = "schedule___schedule_0.5.0.tgz";
-      path = fetchurl {
-        name = "schedule___schedule_0.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/schedule/-/schedule-0.5.0.tgz";
-        sha1 = "c128fffa0b402488b08b55ae74bb9df55cc29cc8";
-      };
-    }
-    {
-      name = "scheduler___scheduler_0.13.2.tgz";
-      path = fetchurl {
-        name = "scheduler___scheduler_0.13.2.tgz";
-        url  = "https://registry.yarnpkg.com/scheduler/-/scheduler-0.13.2.tgz";
-        sha1 = "969eaee2764a51d2e97b20a60963b2546beff8fa";
-      };
-    }
-    {
-      name = "schema_utils___schema_utils_1.0.0.tgz";
-      path = fetchurl {
-        name = "schema_utils___schema_utils_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz";
-        sha1 = "0b79a93204d7b600d4b2850d1f66c2a34951c770";
-      };
-    }
-    {
-      name = "schema_utils___schema_utils_2.0.1.tgz";
-      path = fetchurl {
-        name = "schema_utils___schema_utils_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.0.1.tgz";
-        sha1 = "1eec2e059556af841b7f3a83b61af13d7a3f9196";
-      };
-    }
-    {
-      name = "schema_utils___schema_utils_2.5.0.tgz";
-      path = fetchurl {
-        name = "schema_utils___schema_utils_2.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.5.0.tgz";
-        sha1 = "8f254f618d402cc80257486213c8970edfd7c22f";
-      };
-    }
-    {
-      name = "schema_utils___schema_utils_2.7.0.tgz";
-      path = fetchurl {
-        name = "schema_utils___schema_utils_2.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.0.tgz";
-        sha1 = "17151f76d8eae67fbbf77960c33c676ad9f4efc7";
-      };
-    }
-    {
-      name = "seamless_immutable___seamless_immutable_7.1.4.tgz";
-      path = fetchurl {
-        name = "seamless_immutable___seamless_immutable_7.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/seamless-immutable/-/seamless-immutable-7.1.4.tgz";
-        sha1 = "6e9536def083ddc4dea0207d722e0e80d0f372f8";
-      };
-    }
-    {
-      name = "seleccion___seleccion_2.0.0.tgz";
-      path = fetchurl {
-        name = "seleccion___seleccion_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/seleccion/-/seleccion-2.0.0.tgz";
-        sha1 = "0984ac1e8df513e38b41a608e65042e8381e0a73";
-      };
-    }
-    {
-      name = "select_hose___select_hose_2.0.0.tgz";
-      path = fetchurl {
-        name = "select_hose___select_hose_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz";
-        sha1 = "625d8658f865af43ec962bfc376a37359a4994ca";
-      };
-    }
-    {
-      name = "selfsigned___selfsigned_1.10.7.tgz";
-      path = fetchurl {
-        name = "selfsigned___selfsigned_1.10.7.tgz";
-        url  = "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz";
-        sha1 = "da5819fd049d5574f28e88a9bcc6dbc6e6f3906b";
-      };
-    }
-    {
-      name = "sell___sell_1.0.0.tgz";
-      path = fetchurl {
-        name = "sell___sell_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/sell/-/sell-1.0.0.tgz";
-        sha1 = "3baca7e51f78ddee9e22eea1ac747a6368bd1630";
-      };
-    }
-    {
-      name = "semver___semver_5.7.0.tgz";
-      path = fetchurl {
-        name = "semver___semver_5.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz";
-        sha1 = "790a7cf6fea5459bac96110b29b60412dc8ff96b";
-      };
-    }
-    {
-      name = "semver___semver_5.5.1.tgz";
-      path = fetchurl {
-        name = "semver___semver_5.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-5.5.1.tgz";
-        sha1 = "7dfdd8814bdb7cabc7be0fb1d734cfb66c940477";
-      };
-    }
-    {
-      name = "semver___semver_5.7.1.tgz";
-      path = fetchurl {
-        name = "semver___semver_5.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
-        sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
-      };
-    }
-    {
-      name = "semver___semver_6.3.0.tgz";
-      path = fetchurl {
-        name = "semver___semver_6.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz";
-        sha1 = "ee0a64c8af5e8ceea67687b133761e1becbd1d3d";
-      };
-    }
-    {
-      name = "send___send_0.16.2.tgz";
-      path = fetchurl {
-        name = "send___send_0.16.2.tgz";
-        url  = "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz";
-        sha1 = "6ecca1e0f8c156d141597559848df64730a6bbc1";
-      };
-    }
-    {
-      name = "send___send_0.17.1.tgz";
-      path = fetchurl {
-        name = "send___send_0.17.1.tgz";
-        url  = "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz";
-        sha1 = "c1d8b059f7900f7466dd4938bdc44e11ddb376c8";
-      };
-    }
-    {
-      name = "serialize_javascript___serialize_javascript_2.1.0.tgz";
-      path = fetchurl {
-        name = "serialize_javascript___serialize_javascript_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.0.tgz";
-        sha1 = "9310276819efd0eb128258bb341957f6eb2fc570";
-      };
-    }
-    {
-      name = "serialize_javascript___serialize_javascript_2.1.2.tgz";
-      path = fetchurl {
-        name = "serialize_javascript___serialize_javascript_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz";
-        sha1 = "ecec53b0e0317bdc95ef76ab7074b7384785fa61";
-      };
-    }
-    {
-      name = "serve_index___serve_index_1.9.1.tgz";
-      path = fetchurl {
-        name = "serve_index___serve_index_1.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz";
-        sha1 = "d3768d69b1e7d82e5ce050fff5b453bea12a9239";
-      };
-    }
-    {
-      name = "serve_static___serve_static_1.13.2.tgz";
-      path = fetchurl {
-        name = "serve_static___serve_static_1.13.2.tgz";
-        url  = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz";
-        sha1 = "095e8472fd5b46237db50ce486a43f4b86c6cec1";
-      };
-    }
-    {
-      name = "serve_static___serve_static_1.14.1.tgz";
-      path = fetchurl {
-        name = "serve_static___serve_static_1.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz";
-        sha1 = "666e636dc4f010f7ef29970a88a674320898b2f9";
-      };
-    }
-    {
-      name = "set_blocking___set_blocking_2.0.0.tgz";
-      path = fetchurl {
-        name = "set_blocking___set_blocking_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz";
-        sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
-      };
-    }
-    {
-      name = "set_value___set_value_2.0.1.tgz";
-      path = fetchurl {
-        name = "set_value___set_value_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz";
-        sha1 = "a18d40530e6f07de4228c7defe4227af8cad005b";
-      };
-    }
-    {
-      name = "setimmediate___setimmediate_1.0.5.tgz";
-      path = fetchurl {
-        name = "setimmediate___setimmediate_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz";
-        sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285";
-      };
-    }
-    {
-      name = "setprototypeof___setprototypeof_1.0.3.tgz";
-      path = fetchurl {
-        name = "setprototypeof___setprototypeof_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz";
-        sha1 = "66567e37043eeb4f04d91bd658c0cbefb55b8e04";
-      };
-    }
-    {
-      name = "setprototypeof___setprototypeof_1.1.0.tgz";
-      path = fetchurl {
-        name = "setprototypeof___setprototypeof_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz";
-        sha1 = "d0bd85536887b6fe7c0d818cb962d9d91c54e656";
-      };
-    }
-    {
-      name = "setprototypeof___setprototypeof_1.1.1.tgz";
-      path = fetchurl {
-        name = "setprototypeof___setprototypeof_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz";
-        sha1 = "7e95acb24aa92f5885e0abef5ba131330d4ae683";
-      };
-    }
-    {
-      name = "sha.js___sha.js_2.4.11.tgz";
-      path = fetchurl {
-        name = "sha.js___sha.js_2.4.11.tgz";
-        url  = "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz";
-        sha1 = "37a5cf0b81ecbc6943de109ba2960d1b26584ae7";
-      };
-    }
-    {
-      name = "shallow_clone___shallow_clone_1.0.0.tgz";
-      path = fetchurl {
-        name = "shallow_clone___shallow_clone_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz";
-        sha1 = "4480cd06e882ef68b2ad88a3ea54832e2c48b571";
-      };
-    }
-    {
-      name = "shallowequal___shallowequal_1.1.0.tgz";
-      path = fetchurl {
-        name = "shallowequal___shallowequal_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz";
-        sha1 = "188d521de95b9087404fd4dcb68b13df0ae4e7f8";
-      };
-    }
-    {
-      name = "shebang_command___shebang_command_1.2.0.tgz";
-      path = fetchurl {
-        name = "shebang_command___shebang_command_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz";
-        sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
-      };
-    }
-    {
-      name = "shebang_regex___shebang_regex_1.0.0.tgz";
-      path = fetchurl {
-        name = "shebang_regex___shebang_regex_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz";
-        sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
-      };
-    }
-    {
-      name = "shellwords___shellwords_0.1.1.tgz";
-      path = fetchurl {
-        name = "shellwords___shellwords_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz";
-        sha1 = "d6b9181c1a48d397324c84871efbcfc73fc0654b";
-      };
-    }
-    {
-      name = "signal_exit___signal_exit_3.0.2.tgz";
-      path = fetchurl {
-        name = "signal_exit___signal_exit_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz";
-        sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
-      };
-    }
-    {
-      name = "simple_swizzle___simple_swizzle_0.2.2.tgz";
-      path = fetchurl {
-        name = "simple_swizzle___simple_swizzle_0.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz";
-        sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a";
-      };
-    }
-    {
-      name = "sisteransi___sisteransi_1.0.2.tgz";
-      path = fetchurl {
-        name = "sisteransi___sisteransi_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.2.tgz";
-        sha1 = "ec57d64b6f25c4f26c0e2c7dd23f2d7f12f7e418";
-      };
-    }
-    {
-      name = "slash___slash_2.0.0.tgz";
-      path = fetchurl {
-        name = "slash___slash_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz";
-        sha1 = "de552851a1759df3a8f206535442f5ec4ddeab44";
-      };
-    }
-    {
-      name = "slice_ansi___slice_ansi_0.0.4.tgz";
-      path = fetchurl {
-        name = "slice_ansi___slice_ansi_0.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz";
-        sha1 = "edbf8903f66f7ce2f8eafd6ceed65e264c831b35";
-      };
-    }
-    {
-      name = "slice_ansi___slice_ansi_2.1.0.tgz";
-      path = fetchurl {
-        name = "slice_ansi___slice_ansi_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz";
-        sha1 = "cacd7693461a637a5788d92a7dd4fba068e81636";
-      };
-    }
-    {
-      name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
-      path = fetchurl {
-        name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
-        sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b";
-      };
-    }
-    {
-      name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
-      path = fetchurl {
-        name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
-        sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2";
-      };
-    }
-    {
-      name = "snapdragon___snapdragon_0.8.2.tgz";
-      path = fetchurl {
-        name = "snapdragon___snapdragon_0.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz";
-        sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d";
-      };
-    }
-    {
-      name = "sockjs_client___sockjs_client_1.4.0.tgz";
-      path = fetchurl {
-        name = "sockjs_client___sockjs_client_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz";
-        sha1 = "c9f2568e19c8fd8173b4997ea3420e0bb306c7d5";
-      };
-    }
-    {
-      name = "sockjs___sockjs_0.3.19.tgz";
-      path = fetchurl {
-        name = "sockjs___sockjs_0.3.19.tgz";
-        url  = "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz";
-        sha1 = "d976bbe800af7bd20ae08598d582393508993c0d";
-      };
-    }
-    {
-      name = "sort_keys___sort_keys_1.1.2.tgz";
-      path = fetchurl {
-        name = "sort_keys___sort_keys_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz";
-        sha1 = "441b6d4d346798f1b4e49e8920adfba0e543f9ad";
-      };
-    }
-    {
-      name = "source_list_map___source_list_map_2.0.1.tgz";
-      path = fetchurl {
-        name = "source_list_map___source_list_map_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz";
-        sha1 = "3993bd873bfc48479cca9ea3a547835c7c154b34";
-      };
-    }
-    {
-      name = "source_map_loader___source_map_loader_0.2.4.tgz";
-      path = fetchurl {
-        name = "source_map_loader___source_map_loader_0.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.4.tgz";
-        sha1 = "c18b0dc6e23bf66f6792437557c569a11e072271";
-      };
-    }
-    {
-      name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
-      path = fetchurl {
-        name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
-        sha1 = "190866bece7553e1f8f267a2ee82c606b5509a1a";
-      };
-    }
-    {
-      name = "source_map_support___source_map_support_0.5.12.tgz";
-      path = fetchurl {
-        name = "source_map_support___source_map_support_0.5.12.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz";
-        sha1 = "b4f3b10d51857a5af0138d3ce8003b201613d599";
-      };
-    }
-    {
-      name = "source_map_support___source_map_support_0.5.16.tgz";
-      path = fetchurl {
-        name = "source_map_support___source_map_support_0.5.16.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz";
-        sha1 = "0ae069e7fe3ba7538c64c98515e35339eac5a042";
-      };
-    }
-    {
-      name = "source_map_url___source_map_url_0.4.0.tgz";
-      path = fetchurl {
-        name = "source_map_url___source_map_url_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz";
-        sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
-      };
-    }
-    {
-      name = "source_map___source_map_0.4.4.tgz";
-      path = fetchurl {
-        name = "source_map___source_map_0.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz";
-        sha1 = "eba4f5da9c0dc999de68032d8b4f76173652036b";
-      };
-    }
-    {
-      name = "source_map___source_map_0.5.7.tgz";
-      path = fetchurl {
-        name = "source_map___source_map_0.5.7.tgz";
-        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
-        sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
-      };
-    }
-    {
-      name = "source_map___source_map_0.6.1.tgz";
-      path = fetchurl {
-        name = "source_map___source_map_0.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
-        sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
-      };
-    }
-    {
-      name = "spdx_correct___spdx_correct_3.1.0.tgz";
-      path = fetchurl {
-        name = "spdx_correct___spdx_correct_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz";
-        sha1 = "fb83e504445268f154b074e218c87c003cd31df4";
-      };
-    }
-    {
-      name = "spdx_exceptions___spdx_exceptions_2.2.0.tgz";
-      path = fetchurl {
-        name = "spdx_exceptions___spdx_exceptions_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz";
-        sha1 = "2ea450aee74f2a89bfb94519c07fcd6f41322977";
-      };
-    }
-    {
-      name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
-      path = fetchurl {
-        name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
-        sha1 = "99e119b7a5da00e05491c9fa338b7904823b41d0";
-      };
-    }
-    {
-      name = "spdx_license_ids___spdx_license_ids_3.0.5.tgz";
-      path = fetchurl {
-        name = "spdx_license_ids___spdx_license_ids_3.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz";
-        sha1 = "3694b5804567a458d3c8045842a6358632f62654";
-      };
-    }
-    {
-      name = "spdy_transport___spdy_transport_3.0.0.tgz";
-      path = fetchurl {
-        name = "spdy_transport___spdy_transport_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz";
-        sha1 = "00d4863a6400ad75df93361a1608605e5dcdcf31";
-      };
-    }
-    {
-      name = "spdy___spdy_4.0.1.tgz";
-      path = fetchurl {
-        name = "spdy___spdy_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz";
-        sha1 = "6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2";
-      };
-    }
-    {
-      name = "split_string___split_string_3.1.0.tgz";
-      path = fetchurl {
-        name = "split_string___split_string_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz";
-        sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2";
-      };
-    }
-    {
-      name = "sprintf_js___sprintf_js_1.0.3.tgz";
-      path = fetchurl {
-        name = "sprintf_js___sprintf_js_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
-        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
-      };
-    }
-    {
-      name = "sshpk___sshpk_1.16.1.tgz";
-      path = fetchurl {
-        name = "sshpk___sshpk_1.16.1.tgz";
-        url  = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz";
-        sha1 = "fb661c0bef29b39db40769ee39fa70093d6f6877";
-      };
-    }
-    {
-      name = "ssri___ssri_6.0.1.tgz";
-      path = fetchurl {
-        name = "ssri___ssri_6.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz";
-        sha1 = "2a3c41b28dd45b62b63676ecb74001265ae9edd8";
-      };
-    }
-    {
-      name = "ssri___ssri_7.1.0.tgz";
-      path = fetchurl {
-        name = "ssri___ssri_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz";
-        sha1 = "92c241bf6de82365b5c7fb4bd76e975522e1294d";
-      };
-    }
-    {
-      name = "stable___stable_0.1.8.tgz";
-      path = fetchurl {
-        name = "stable___stable_0.1.8.tgz";
-        url  = "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz";
-        sha1 = "836eb3c8382fe2936feaf544631017ce7d47a3cf";
-      };
-    }
-    {
-      name = "stack_utils___stack_utils_1.0.2.tgz";
-      path = fetchurl {
-        name = "stack_utils___stack_utils_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz";
-        sha1 = "33eba3897788558bebfc2db059dc158ec36cebb8";
-      };
-    }
-    {
-      name = "state_toggle___state_toggle_1.0.1.tgz";
-      path = fetchurl {
-        name = "state_toggle___state_toggle_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.1.tgz";
-        sha1 = "c3cb0974f40a6a0f8e905b96789eb41afa1cde3a";
-      };
-    }
-    {
-      name = "static_extend___static_extend_0.1.2.tgz";
-      path = fetchurl {
-        name = "static_extend___static_extend_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz";
-        sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
-      };
-    }
-    {
-      name = "statuses___statuses_1.4.0.tgz";
-      path = fetchurl {
-        name = "statuses___statuses_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz";
-        sha1 = "bb73d446da2796106efcc1b601a253d6c46bd087";
-      };
-    }
-    {
-      name = "statuses___statuses_1.5.0.tgz";
-      path = fetchurl {
-        name = "statuses___statuses_1.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz";
-        sha1 = "161c7dac177659fd9811f43771fa99381478628c";
-      };
-    }
-    {
-      name = "stealthy_require___stealthy_require_1.1.1.tgz";
-      path = fetchurl {
-        name = "stealthy_require___stealthy_require_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz";
-        sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b";
-      };
-    }
-    {
-      name = "stream_browserify___stream_browserify_2.0.2.tgz";
-      path = fetchurl {
-        name = "stream_browserify___stream_browserify_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz";
-        sha1 = "87521d38a44aa7ee91ce1cd2a47df0cb49dd660b";
-      };
-    }
-    {
-      name = "stream_each___stream_each_1.2.3.tgz";
-      path = fetchurl {
-        name = "stream_each___stream_each_1.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz";
-        sha1 = "ebe27a0c389b04fbcc233642952e10731afa9bae";
-      };
-    }
-    {
-      name = "stream_http___stream_http_2.8.3.tgz";
-      path = fetchurl {
-        name = "stream_http___stream_http_2.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz";
-        sha1 = "b2d242469288a5a27ec4fe8933acf623de6514fc";
-      };
-    }
-    {
-      name = "stream_shift___stream_shift_1.0.1.tgz";
-      path = fetchurl {
-        name = "stream_shift___stream_shift_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz";
-        sha1 = "d7088281559ab2778424279b0877da3c392d5a3d";
-      };
-    }
-    {
-      name = "strict_uri_encode___strict_uri_encode_1.1.0.tgz";
-      path = fetchurl {
-        name = "strict_uri_encode___strict_uri_encode_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz";
-        sha1 = "279b225df1d582b1f54e65addd4352e18faa0713";
-      };
-    }
-    {
-      name = "string_length___string_length_2.0.0.tgz";
-      path = fetchurl {
-        name = "string_length___string_length_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz";
-        sha1 = "d40dbb686a3ace960c1cffca562bf2c45f8363ed";
-      };
-    }
-    {
-      name = "string_width___string_width_1.0.2.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz";
-        sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
-      };
-    }
-    {
-      name = "string_width___string_width_2.1.1.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
-        sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
-      };
-    }
-    {
-      name = "string_width___string_width_3.0.0.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-3.0.0.tgz";
-        sha1 = "5a1690a57cc78211fffd9bf24bbe24d090604eb1";
-      };
-    }
-    {
-      name = "string_width___string_width_3.1.0.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz";
-        sha1 = "22767be21b62af1081574306f69ac51b62203961";
-      };
-    }
-    {
-      name = "string_width___string_width_4.1.0.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.1.0.tgz";
-        sha1 = "ba846d1daa97c3c596155308063e075ed1c99aff";
-      };
-    }
-    {
-      name = "string.prototype.trim___string.prototype.trim_1.1.2.tgz";
-      path = fetchurl {
-        name = "string.prototype.trim___string.prototype.trim_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz";
-        sha1 = "d04de2c89e137f4d7d206f086b5ed2fae6be8cea";
-      };
-    }
-    {
-      name = "string.prototype.trimleft___string.prototype.trimleft_2.1.1.tgz";
-      path = fetchurl {
-        name = "string.prototype.trimleft___string.prototype.trimleft_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz";
-        sha1 = "9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74";
-      };
-    }
-    {
-      name = "string.prototype.trimright___string.prototype.trimright_2.1.1.tgz";
-      path = fetchurl {
-        name = "string.prototype.trimright___string.prototype.trimright_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz";
-        sha1 = "440314b15996c866ce8a0341894d45186200c5d9";
-      };
-    }
-    {
-      name = "string_decoder___string_decoder_1.3.0.tgz";
-      path = fetchurl {
-        name = "string_decoder___string_decoder_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz";
-        sha1 = "42f114594a46cf1a8e30b0a84f56c78c3edac21e";
-      };
-    }
-    {
-      name = "string_decoder___string_decoder_1.1.1.tgz";
-      path = fetchurl {
-        name = "string_decoder___string_decoder_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
-        sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8";
-      };
-    }
-    {
-      name = "strip_ansi___strip_ansi_3.0.1.tgz";
-      path = fetchurl {
-        name = "strip_ansi___strip_ansi_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz";
-        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
-      };
-    }
-    {
-      name = "strip_ansi___strip_ansi_4.0.0.tgz";
-      path = fetchurl {
-        name = "strip_ansi___strip_ansi_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz";
-        sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
-      };
-    }
-    {
-      name = "strip_ansi___strip_ansi_5.2.0.tgz";
-      path = fetchurl {
-        name = "strip_ansi___strip_ansi_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz";
-        sha1 = "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae";
-      };
-    }
-    {
-      name = "strip_bom___strip_bom_3.0.0.tgz";
-      path = fetchurl {
-        name = "strip_bom___strip_bom_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz";
-        sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
-      };
-    }
-    {
-      name = "strip_eof___strip_eof_1.0.0.tgz";
-      path = fetchurl {
-        name = "strip_eof___strip_eof_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz";
-        sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
-      };
-    }
-    {
-      name = "strip_json_comments___strip_json_comments_3.0.1.tgz";
-      path = fetchurl {
-        name = "strip_json_comments___strip_json_comments_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz";
-        sha1 = "85713975a91fb87bf1b305cca77395e40d2a64a7";
-      };
-    }
-    {
-      name = "style_loader___style_loader_0.23.1.tgz";
-      path = fetchurl {
-        name = "style_loader___style_loader_0.23.1.tgz";
-        url  = "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz";
-        sha1 = "cb9154606f3e771ab6c4ab637026a1049174d925";
-      };
-    }
-    {
-      name = "stylehacks___stylehacks_4.0.3.tgz";
-      path = fetchurl {
-        name = "stylehacks___stylehacks_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz";
-        sha1 = "6718fcaf4d1e07d8a1318690881e8d96726a71d5";
-      };
-    }
-    {
-      name = "superagent___superagent_3.8.3.tgz";
-      path = fetchurl {
-        name = "superagent___superagent_3.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/superagent/-/superagent-3.8.3.tgz";
-        sha1 = "460ea0dbdb7d5b11bc4f78deba565f86a178e128";
-      };
-    }
-    {
-      name = "supports_color___supports_color_5.4.0.tgz";
-      path = fetchurl {
-        name = "supports_color___supports_color_5.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz";
-        sha1 = "1c6b337402c2137605efe19f10fec390f6faab54";
-      };
-    }
-    {
-      name = "supports_color___supports_color_6.1.0.tgz";
-      path = fetchurl {
-        name = "supports_color___supports_color_6.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz";
-        sha1 = "0764abc69c63d5ac842dd4867e8d025e880df8f3";
-      };
-    }
-    {
-      name = "supports_color___supports_color_2.0.0.tgz";
-      path = fetchurl {
-        name = "supports_color___supports_color_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz";
-        sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
-      };
-    }
-    {
-      name = "supports_color___supports_color_3.2.3.tgz";
-      path = fetchurl {
-        name = "supports_color___supports_color_3.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz";
-        sha1 = "65ac0504b3954171d8a64946b2ae3cbb8a5f54f6";
-      };
-    }
-    {
-      name = "supports_color___supports_color_5.5.0.tgz";
-      path = fetchurl {
-        name = "supports_color___supports_color_5.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz";
-        sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f";
-      };
-    }
-    {
-      name = "supports_color___supports_color_7.1.0.tgz";
-      path = fetchurl {
-        name = "supports_color___supports_color_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz";
-        sha1 = "68e32591df73e25ad1c4b49108a2ec507962bfd1";
-      };
-    }
-    {
-      name = "svgo___svgo_1.2.2.tgz";
-      path = fetchurl {
-        name = "svgo___svgo_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/svgo/-/svgo-1.2.2.tgz";
-        sha1 = "0253d34eccf2aed4ad4f283e11ee75198f9d7316";
-      };
-    }
-    {
-      name = "swagger_methods___swagger_methods_2.0.0.tgz";
-      path = fetchurl {
-        name = "swagger_methods___swagger_methods_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/swagger-methods/-/swagger-methods-2.0.0.tgz";
-        sha1 = "e1260876e7638b8a5d61ae5735ad9d5e97f4f09d";
-      };
-    }
-    {
-      name = "swagger_parser___swagger_parser_8.0.0.tgz";
-      path = fetchurl {
-        name = "swagger_parser___swagger_parser_8.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/swagger-parser/-/swagger-parser-8.0.0.tgz";
-        sha1 = "7a714c98a9a7a4ce81331336c1f53bb89f5d4e2f";
-      };
-    }
-    {
-      name = "symbol_observable___symbol_observable_1.2.0.tgz";
-      path = fetchurl {
-        name = "symbol_observable___symbol_observable_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz";
-        sha1 = "c22688aed4eab3cdc2dfeacbb561660560a00804";
-      };
-    }
-    {
-      name = "symbol_tree___symbol_tree_3.2.2.tgz";
-      path = fetchurl {
-        name = "symbol_tree___symbol_tree_3.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz";
-        sha1 = "ae27db38f660a7ae2e1c3b7d1bc290819b8519e6";
-      };
-    }
-    {
-      name = "symbol_tree___symbol_tree_3.2.4.tgz";
-      path = fetchurl {
-        name = "symbol_tree___symbol_tree_3.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz";
-        sha1 = "430637d248ba77e078883951fb9aa0eed7c63fa2";
-      };
-    }
-    {
-      name = "table___table_5.2.3.tgz";
-      path = fetchurl {
-        name = "table___table_5.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/table/-/table-5.2.3.tgz";
-        sha1 = "cde0cc6eb06751c009efab27e8c820ca5b67b7f2";
-      };
-    }
-    {
-      name = "tapable___tapable_1.1.3.tgz";
-      path = fetchurl {
-        name = "tapable___tapable_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz";
-        sha1 = "a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2";
-      };
-    }
-    {
-      name = "terser_webpack_plugin___terser_webpack_plugin_2.2.1.tgz";
-      path = fetchurl {
-        name = "terser_webpack_plugin___terser_webpack_plugin_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.2.1.tgz";
-        sha1 = "5569e6c7d8be79e5e43d6da23acc3b6ba77d22bd";
-      };
-    }
-    {
-      name = "terser_webpack_plugin___terser_webpack_plugin_1.4.3.tgz";
-      path = fetchurl {
-        name = "terser_webpack_plugin___terser_webpack_plugin_1.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz";
-        sha1 = "5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c";
-      };
-    }
-    {
-      name = "terser___terser_4.6.7.tgz";
-      path = fetchurl {
-        name = "terser___terser_4.6.7.tgz";
-        url  = "https://registry.yarnpkg.com/terser/-/terser-4.6.7.tgz";
-        sha1 = "478d7f9394ec1907f0e488c5f6a6a9a2bad55e72";
-      };
-    }
-    {
-      name = "terser___terser_4.4.0.tgz";
-      path = fetchurl {
-        name = "terser___terser_4.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/terser/-/terser-4.4.0.tgz";
-        sha1 = "22c46b4817cf4c9565434bfe6ad47336af259ac3";
-      };
-    }
-    {
-      name = "test_exclude___test_exclude_5.2.3.tgz";
-      path = fetchurl {
-        name = "test_exclude___test_exclude_5.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz";
-        sha1 = "c3d3e1e311eb7ee405e092dac10aefd09091eac0";
-      };
-    }
-    {
-      name = "text_table___text_table_0.2.0.tgz";
-      path = fetchurl {
-        name = "text_table___text_table_0.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz";
-        sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
-      };
-    }
-    {
-      name = "throat___throat_4.1.0.tgz";
-      path = fetchurl {
-        name = "throat___throat_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz";
-        sha1 = "89037cbc92c56ab18926e6ba4cbb200e15672a6a";
-      };
-    }
-    {
-      name = "throttleit___throttleit_1.0.0.tgz";
-      path = fetchurl {
-        name = "throttleit___throttleit_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.0.tgz";
-        sha1 = "9e785836daf46743145a5984b6268d828528ac6c";
-      };
-    }
-    {
-      name = "through2___through2_2.0.5.tgz";
-      path = fetchurl {
-        name = "through2___through2_2.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz";
-        sha1 = "01c1e39eb31d07cb7d03a96a70823260b23132cd";
-      };
-    }
-    {
-      name = "through___through_2.3.8.tgz";
-      path = fetchurl {
-        name = "through___through_2.3.8.tgz";
-        url  = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
-        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
-      };
-    }
-    {
-      name = "thunky___thunky_1.1.0.tgz";
-      path = fetchurl {
-        name = "thunky___thunky_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz";
-        sha1 = "5abaf714a9405db0504732bbccd2cedd9ef9537d";
-      };
-    }
-    {
-      name = "ticky___ticky_1.0.0.tgz";
-      path = fetchurl {
-        name = "ticky___ticky_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ticky/-/ticky-1.0.0.tgz";
-        sha1 = "e87f38ee0491ea32f62e8f0567ba9638b29f049c";
-      };
-    }
-    {
-      name = "timers_browserify___timers_browserify_2.0.11.tgz";
-      path = fetchurl {
-        name = "timers_browserify___timers_browserify_2.0.11.tgz";
-        url  = "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz";
-        sha1 = "800b1f3eee272e5bc53ee465a04d0e804c31211f";
-      };
-    }
-    {
-      name = "timsort___timsort_0.3.0.tgz";
-      path = fetchurl {
-        name = "timsort___timsort_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz";
-        sha1 = "405411a8e7e6339fe64db9a234de11dc31e02bd4";
-      };
-    }
-    {
-      name = "tiny_invariant___tiny_invariant_1.1.0.tgz";
-      path = fetchurl {
-        name = "tiny_invariant___tiny_invariant_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz";
-        sha1 = "634c5f8efdc27714b7f386c35e6760991d230875";
-      };
-    }
-    {
-      name = "tiny_warning___tiny_warning_1.0.3.tgz";
-      path = fetchurl {
-        name = "tiny_warning___tiny_warning_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz";
-        sha1 = "94a30db453df4c643d0fd566060d60a875d84754";
-      };
-    }
-    {
-      name = "tmp___tmp_0.0.33.tgz";
-      path = fetchurl {
-        name = "tmp___tmp_0.0.33.tgz";
-        url  = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz";
-        sha1 = "6d34335889768d21b2bcda0aa277ced3b1bfadf9";
-      };
-    }
-    {
-      name = "tmp___tmp_0.1.0.tgz";
-      path = fetchurl {
-        name = "tmp___tmp_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/tmp/-/tmp-0.1.0.tgz";
-        sha1 = "ee434a4e22543082e294ba6201dcc6eafefa2877";
-      };
-    }
-    {
-      name = "tmpl___tmpl_1.0.4.tgz";
-      path = fetchurl {
-        name = "tmpl___tmpl_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz";
-        sha1 = "23640dd7b42d00433911140820e5cf440e521dd1";
-      };
-    }
-    {
-      name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
-      path = fetchurl {
-        name = "to_arraybuffer___to_arraybuffer_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
-        sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43";
-      };
-    }
-    {
-      name = "to_camel_case___to_camel_case_1.0.0.tgz";
-      path = fetchurl {
-        name = "to_camel_case___to_camel_case_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/to-camel-case/-/to-camel-case-1.0.0.tgz";
-        sha1 = "1a56054b2f9d696298ce66a60897322b6f423e46";
-      };
-    }
-    {
-      name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
-      path = fetchurl {
-        name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
-        sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
-      };
-    }
-    {
-      name = "to_no_case___to_no_case_1.0.2.tgz";
-      path = fetchurl {
-        name = "to_no_case___to_no_case_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/to-no-case/-/to-no-case-1.0.2.tgz";
-        sha1 = "c722907164ef6b178132c8e69930212d1b4aa16a";
-      };
-    }
-    {
-      name = "to_object_path___to_object_path_0.3.0.tgz";
-      path = fetchurl {
-        name = "to_object_path___to_object_path_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz";
-        sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
-      };
-    }
-    {
-      name = "to_regex_range___to_regex_range_2.1.1.tgz";
-      path = fetchurl {
-        name = "to_regex_range___to_regex_range_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz";
-        sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
-      };
-    }
-    {
-      name = "to_regex_range___to_regex_range_5.0.1.tgz";
-      path = fetchurl {
-        name = "to_regex_range___to_regex_range_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz";
-        sha1 = "1648c44aae7c8d988a326018ed72f5b4dd0392e4";
-      };
-    }
-    {
-      name = "to_regex___to_regex_3.0.2.tgz";
-      path = fetchurl {
-        name = "to_regex___to_regex_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz";
-        sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce";
-      };
-    }
-    {
-      name = "to_space_case___to_space_case_1.0.0.tgz";
-      path = fetchurl {
-        name = "to_space_case___to_space_case_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/to-space-case/-/to-space-case-1.0.0.tgz";
-        sha1 = "b052daafb1b2b29dc770cea0163e5ec0ebc9fc17";
-      };
-    }
-    {
-      name = "toggle_selection___toggle_selection_1.0.6.tgz";
-      path = fetchurl {
-        name = "toggle_selection___toggle_selection_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz";
-        sha1 = "6e45b1263f2017fa0acc7d89d78b15b8bf77da32";
-      };
-    }
-    {
-      name = "toidentifier___toidentifier_1.0.0.tgz";
-      path = fetchurl {
-        name = "toidentifier___toidentifier_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz";
-        sha1 = "7e1be3470f1e77948bc43d94a3c8f4d7752ba553";
-      };
-    }
-    {
-      name = "toposort___toposort_1.0.7.tgz";
-      path = fetchurl {
-        name = "toposort___toposort_1.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz";
-        sha1 = "2e68442d9f64ec720b8cc89e6443ac6caa950029";
-      };
-    }
-    {
-      name = "tough_cookie___tough_cookie_2.4.3.tgz";
-      path = fetchurl {
-        name = "tough_cookie___tough_cookie_2.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz";
-        sha1 = "53f36da3f47783b0925afa06ff9f3b165280f781";
-      };
-    }
-    {
-      name = "tough_cookie___tough_cookie_2.5.0.tgz";
-      path = fetchurl {
-        name = "tough_cookie___tough_cookie_2.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz";
-        sha1 = "cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2";
-      };
-    }
-    {
-      name = "tr46___tr46_1.0.1.tgz";
-      path = fetchurl {
-        name = "tr46___tr46_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz";
-        sha1 = "a8b13fd6bfd2489519674ccde55ba3693b706d09";
-      };
-    }
-    {
-      name = "tr46___tr46_0.0.3.tgz";
-      path = fetchurl {
-        name = "tr46___tr46_0.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz";
-        sha1 = "8184fd347dac9cdc185992f3a6622e14b9d9ab6a";
-      };
-    }
-    {
-      name = "trim_right___trim_right_1.0.1.tgz";
-      path = fetchurl {
-        name = "trim_right___trim_right_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz";
-        sha1 = "cb2e1203067e0c8de1f614094b9fe45704ea6003";
-      };
-    }
-    {
-      name = "trim_trailing_lines___trim_trailing_lines_1.1.1.tgz";
-      path = fetchurl {
-        name = "trim_trailing_lines___trim_trailing_lines_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.1.tgz";
-        sha1 = "e0ec0810fd3c3f1730516b45f49083caaf2774d9";
-      };
-    }
-    {
-      name = "trim___trim_0.0.1.tgz";
-      path = fetchurl {
-        name = "trim___trim_0.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz";
-        sha1 = "5858547f6b290757ee95cccc666fb50084c460dd";
-      };
-    }
-    {
-      name = "trough___trough_1.0.3.tgz";
-      path = fetchurl {
-        name = "trough___trough_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/trough/-/trough-1.0.3.tgz";
-        sha1 = "e29bd1614c6458d44869fc28b255ab7857ef7c24";
-      };
-    }
-    {
-      name = "tryer___tryer_1.0.1.tgz";
-      path = fetchurl {
-        name = "tryer___tryer_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz";
-        sha1 = "f2c85406800b9b0f74c9f7465b81eaad241252f8";
-      };
-    }
-    {
-      name = "ts_jest___ts_jest_24.0.0.tgz";
-      path = fetchurl {
-        name = "ts_jest___ts_jest_24.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ts-jest/-/ts-jest-24.0.0.tgz";
-        sha1 = "3f26bf2ec1fa584863a5a9c29bd8717d549efbf6";
-      };
-    }
-    {
-      name = "ts_loader___ts_loader_5.3.3.tgz";
-      path = fetchurl {
-        name = "ts_loader___ts_loader_5.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/ts-loader/-/ts-loader-5.3.3.tgz";
-        sha1 = "8b4af042e773132d86b3c99ef0acf3b4d325f473";
-      };
-    }
-    {
-      name = "ts_node___ts_node_8.3.0.tgz";
-      path = fetchurl {
-        name = "ts_node___ts_node_8.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/ts-node/-/ts-node-8.3.0.tgz";
-        sha1 = "e4059618411371924a1fb5f3b125915f324efb57";
-      };
-    }
-    {
-      name = "tslib___tslib_1.10.0.tgz";
-      path = fetchurl {
-        name = "tslib___tslib_1.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz";
-        sha1 = "c3c19f95973fb0a62973fb09d90d961ee43e5c8a";
-      };
-    }
-    {
-      name = "tslib___tslib_1.9.3.tgz";
-      path = fetchurl {
-        name = "tslib___tslib_1.9.3.tgz";
-        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz";
-        sha1 = "d7e4dd79245d85428c4d7e4822a79917954ca286";
-      };
-    }
-    {
-      name = "tslint___tslint_5.20.1.tgz";
-      path = fetchurl {
-        name = "tslint___tslint_5.20.1.tgz";
-        url  = "https://registry.yarnpkg.com/tslint/-/tslint-5.20.1.tgz";
-        sha1 = "e401e8aeda0152bc44dd07e614034f3f80c67b7d";
-      };
-    }
-    {
-      name = "tsutils___tsutils_2.29.0.tgz";
-      path = fetchurl {
-        name = "tsutils___tsutils_2.29.0.tgz";
-        url  = "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz";
-        sha1 = "32b488501467acbedd4b85498673a0812aca0b99";
-      };
-    }
-    {
-      name = "tsutils___tsutils_3.17.1.tgz";
-      path = fetchurl {
-        name = "tsutils___tsutils_3.17.1.tgz";
-        url  = "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz";
-        sha1 = "ed719917f11ca0dee586272b2ac49e015a2dd759";
-      };
-    }
-    {
-      name = "tty_browserify___tty_browserify_0.0.0.tgz";
-      path = fetchurl {
-        name = "tty_browserify___tty_browserify_0.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz";
-        sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6";
-      };
-    }
-    {
-      name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
-      path = fetchurl {
-        name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
-        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
-      };
-    }
-    {
-      name = "tweetnacl___tweetnacl_0.14.5.tgz";
-      path = fetchurl {
-        name = "tweetnacl___tweetnacl_0.14.5.tgz";
-        url  = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
-        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
-      };
-    }
-    {
-      name = "type_check___type_check_0.3.2.tgz";
-      path = fetchurl {
-        name = "type_check___type_check_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz";
-        sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
-      };
-    }
-    {
-      name = "type_fest___type_fest_0.5.2.tgz";
-      path = fetchurl {
-        name = "type_fest___type_fest_0.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz";
-        sha1 = "d6ef42a0356c6cd45f49485c3b6281fc148e48a2";
-      };
-    }
-    {
-      name = "type_is___type_is_1.6.16.tgz";
-      path = fetchurl {
-        name = "type_is___type_is_1.6.16.tgz";
-        url  = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz";
-        sha1 = "f89ce341541c672b25ee7ae3c73dee3b2be50194";
-      };
-    }
-    {
-      name = "type_is___type_is_1.6.18.tgz";
-      path = fetchurl {
-        name = "type_is___type_is_1.6.18.tgz";
-        url  = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz";
-        sha1 = "4e552cd05df09467dcbc4ef739de89f2cf37c131";
-      };
-    }
-    {
-      name = "typed_styles___typed_styles_0.0.7.tgz";
-      path = fetchurl {
-        name = "typed_styles___typed_styles_0.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.7.tgz";
-        sha1 = "93392a008794c4595119ff62dde6809dbc40a3d9";
-      };
-    }
-    {
-      name = "typedarray___typedarray_0.0.6.tgz";
-      path = fetchurl {
-        name = "typedarray___typedarray_0.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz";
-        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
-      };
-    }
-    {
-      name = "typescript___typescript_3.8.3.tgz";
-      path = fetchurl {
-        name = "typescript___typescript_3.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz";
-        sha1 = "409eb8544ea0335711205869ec458ab109ee1061";
-      };
-    }
-    {
-      name = "ua_parser_js___ua_parser_js_0.7.18.tgz";
-      path = fetchurl {
-        name = "ua_parser_js___ua_parser_js_0.7.18.tgz";
-        url  = "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.18.tgz";
-        sha1 = "a7bfd92f56edfb117083b69e31d2aa8882d4b1ed";
-      };
-    }
-    {
-      name = "uglify_js___uglify_js_3.4.10.tgz";
-      path = fetchurl {
-        name = "uglify_js___uglify_js_3.4.10.tgz";
-        url  = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz";
-        sha1 = "9ad9563d8eb3acdfb8d38597d2af1d815f6a755f";
-      };
-    }
-    {
-      name = "uglify_js___uglify_js_3.6.0.tgz";
-      path = fetchurl {
-        name = "uglify_js___uglify_js_3.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.6.0.tgz";
-        sha1 = "704681345c53a8b2079fb6cec294b05ead242ff5";
-      };
-    }
-    {
-      name = "uglify_js___uglify_js_2.6.4.tgz";
-      path = fetchurl {
-        name = "uglify_js___uglify_js_2.6.4.tgz";
-        url  = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.6.4.tgz";
-        sha1 = "65ea2fb3059c9394692f15fed87c2b36c16b9adf";
-      };
-    }
-    {
-      name = "uglify_to_browserify___uglify_to_browserify_1.0.2.tgz";
-      path = fetchurl {
-        name = "uglify_to_browserify___uglify_to_browserify_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz";
-        sha1 = "6e0924d6bda6b5afe349e39a6d632850a0f882b7";
-      };
-    }
-    {
-      name = "underscore___underscore_1.9.1.tgz";
-      path = fetchurl {
-        name = "underscore___underscore_1.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz";
-        sha1 = "06dce34a0e68a7babc29b365b8e74b8925203961";
-      };
-    }
-    {
-      name = "underscore___underscore_1.4.4.tgz";
-      path = fetchurl {
-        name = "underscore___underscore_1.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz";
-        sha1 = "61a6a32010622afa07963bf325203cf12239d604";
-      };
-    }
-    {
-      name = "unfetch___unfetch_4.1.0.tgz";
-      path = fetchurl {
-        name = "unfetch___unfetch_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/unfetch/-/unfetch-4.1.0.tgz";
-        sha1 = "6ec2dd0de887e58a4dee83a050ded80ffc4137db";
-      };
-    }
-    {
-      name = "unherit___unherit_1.1.1.tgz";
-      path = fetchurl {
-        name = "unherit___unherit_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/unherit/-/unherit-1.1.1.tgz";
-        sha1 = "132748da3e88eab767e08fabfbb89c5e9d28628c";
-      };
-    }
-    {
-      name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
-      path = fetchurl {
-        name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz";
-        sha1 = "2619800c4c825800efdd8343af7dd9933cbe2818";
-      };
-    }
-    {
-      name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz";
-      path = fetchurl {
-        name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz";
-        sha1 = "8ed2a32569961bce9227d09cd3ffbb8fed5f020c";
-      };
-    }
-    {
-      name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.1.0.tgz";
-      path = fetchurl {
-        name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz";
-        sha1 = "5b4b426e08d13a80365e0d657ac7a6c1ec46a277";
-      };
-    }
-    {
-      name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.0.4.tgz";
-      path = fetchurl {
-        name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz";
-        sha1 = "5a533f31b4317ea76f17d807fa0d116546111dd0";
-      };
-    }
-    {
-      name = "unified___unified_6.2.0.tgz";
-      path = fetchurl {
-        name = "unified___unified_6.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/unified/-/unified-6.2.0.tgz";
-        sha1 = "7fbd630f719126d67d40c644b7e3f617035f6dba";
-      };
-    }
-    {
-      name = "union_value___union_value_1.0.1.tgz";
-      path = fetchurl {
-        name = "union_value___union_value_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz";
-        sha1 = "0b6fe7b835aecda61c6ea4d4f02c14221e109847";
-      };
-    }
-    {
-      name = "uniq___uniq_1.0.1.tgz";
-      path = fetchurl {
-        name = "uniq___uniq_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz";
-        sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff";
-      };
-    }
-    {
-      name = "uniqs___uniqs_2.0.0.tgz";
-      path = fetchurl {
-        name = "uniqs___uniqs_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz";
-        sha1 = "ffede4b36b25290696e6e165d4a59edb998e6b02";
-      };
-    }
-    {
-      name = "unique_filename___unique_filename_1.1.1.tgz";
-      path = fetchurl {
-        name = "unique_filename___unique_filename_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz";
-        sha1 = "1d69769369ada0583103a1e6ae87681b56573230";
-      };
-    }
-    {
-      name = "unique_slug___unique_slug_2.0.2.tgz";
-      path = fetchurl {
-        name = "unique_slug___unique_slug_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz";
-        sha1 = "baabce91083fc64e945b0f3ad613e264f7cd4e6c";
-      };
-    }
-    {
-      name = "unist_util_is___unist_util_is_2.1.2.tgz";
-      path = fetchurl {
-        name = "unist_util_is___unist_util_is_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-2.1.2.tgz";
-        sha1 = "1193fa8f2bfbbb82150633f3a8d2eb9a1c1d55db";
-      };
-    }
-    {
-      name = "unist_util_remove_position___unist_util_remove_position_1.1.2.tgz";
-      path = fetchurl {
-        name = "unist_util_remove_position___unist_util_remove_position_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-1.1.2.tgz";
-        sha1 = "86b5dad104d0bbfbeb1db5f5c92f3570575c12cb";
-      };
-    }
-    {
-      name = "unist_util_stringify_position___unist_util_stringify_position_1.1.2.tgz";
-      path = fetchurl {
-        name = "unist_util_stringify_position___unist_util_stringify_position_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz";
-        sha1 = "3f37fcf351279dcbca7480ab5889bb8a832ee1c6";
-      };
-    }
-    {
-      name = "unist_util_visit_parents___unist_util_visit_parents_1.1.2.tgz";
-      path = fetchurl {
-        name = "unist_util_visit_parents___unist_util_visit_parents_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz";
-        sha1 = "f6e3afee8bdbf961c0e6f028ea3c0480028c3d06";
-      };
-    }
-    {
-      name = "unist_util_visit_parents___unist_util_visit_parents_2.0.1.tgz";
-      path = fetchurl {
-        name = "unist_util_visit_parents___unist_util_visit_parents_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.0.1.tgz";
-        sha1 = "63fffc8929027bee04bfef7d2cce474f71cb6217";
-      };
-    }
-    {
-      name = "unist_util_visit___unist_util_visit_1.4.0.tgz";
-      path = fetchurl {
-        name = "unist_util_visit___unist_util_visit_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.0.tgz";
-        sha1 = "1cb763647186dc26f5e1df5db6bd1e48b3cc2fb1";
-      };
-    }
-    {
-      name = "universalify___universalify_0.1.2.tgz";
-      path = fetchurl {
-        name = "universalify___universalify_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz";
-        sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66";
-      };
-    }
-    {
-      name = "unpipe___unpipe_1.0.0.tgz";
-      path = fetchurl {
-        name = "unpipe___unpipe_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz";
-        sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
-      };
-    }
-    {
-      name = "unquote___unquote_1.1.1.tgz";
-      path = fetchurl {
-        name = "unquote___unquote_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz";
-        sha1 = "8fded7324ec6e88a0ff8b905e7c098cdc086d544";
-      };
-    }
-    {
-      name = "unset_value___unset_value_1.0.0.tgz";
-      path = fetchurl {
-        name = "unset_value___unset_value_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz";
-        sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
-      };
-    }
-    {
-      name = "untildify___untildify_4.0.0.tgz";
-      path = fetchurl {
-        name = "untildify___untildify_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz";
-        sha1 = "2bc947b953652487e4600949fb091e3ae8cd919b";
-      };
-    }
-    {
-      name = "upath___upath_1.2.0.tgz";
-      path = fetchurl {
-        name = "upath___upath_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz";
-        sha1 = "8f66dbcd55a883acdae4408af8b035a5044c1894";
-      };
-    }
-    {
-      name = "upper_case___upper_case_1.1.3.tgz";
-      path = fetchurl {
-        name = "upper_case___upper_case_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz";
-        sha1 = "f6b4501c2ec4cdd26ba78be7222961de77621598";
-      };
-    }
-    {
-      name = "uri_js___uri_js_4.2.2.tgz";
-      path = fetchurl {
-        name = "uri_js___uri_js_4.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz";
-        sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0";
-      };
-    }
-    {
-      name = "urix___urix_0.1.0.tgz";
-      path = fetchurl {
-        name = "urix___urix_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz";
-        sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
-      };
-    }
-    {
-      name = "url_join___url_join_4.0.1.tgz";
-      path = fetchurl {
-        name = "url_join___url_join_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz";
-        sha1 = "b642e21a2646808ffa178c4c5fda39844e12cde7";
-      };
-    }
-    {
-      name = "url_parse___url_parse_1.4.7.tgz";
-      path = fetchurl {
-        name = "url_parse___url_parse_1.4.7.tgz";
-        url  = "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz";
-        sha1 = "a8a83535e8c00a316e403a5db4ac1b9b853ae278";
-      };
-    }
-    {
-      name = "url___url_0.11.0.tgz";
-      path = fetchurl {
-        name = "url___url_0.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz";
-        sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1";
-      };
-    }
-    {
-      name = "use_persisted_state___use_persisted_state_0.3.0.tgz";
-      path = fetchurl {
-        name = "use_persisted_state___use_persisted_state_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/use-persisted-state/-/use-persisted-state-0.3.0.tgz";
-        sha1 = "f8e3d2fd8eee67e0c86fd596c3ea3e8121c07402";
-      };
-    }
-    {
-      name = "use___use_3.1.1.tgz";
-      path = fetchurl {
-        name = "use___use_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz";
-        sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f";
-      };
-    }
-    {
-      name = "util_deprecate___util_deprecate_1.0.2.tgz";
-      path = fetchurl {
-        name = "util_deprecate___util_deprecate_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
-        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
-      };
-    }
-    {
-      name = "util.promisify___util.promisify_1.0.0.tgz";
-      path = fetchurl {
-        name = "util.promisify___util.promisify_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz";
-        sha1 = "440f7165a459c9a16dc145eb8e72f35687097030";
-      };
-    }
-    {
-      name = "util___util_0.10.3.tgz";
-      path = fetchurl {
-        name = "util___util_0.10.3.tgz";
-        url  = "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz";
-        sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
-      };
-    }
-    {
-      name = "util___util_0.11.1.tgz";
-      path = fetchurl {
-        name = "util___util_0.11.1.tgz";
-        url  = "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz";
-        sha1 = "3236733720ec64bb27f6e26f421aaa2e1b588d61";
-      };
-    }
-    {
-      name = "utila___utila_0.4.0.tgz";
-      path = fetchurl {
-        name = "utila___utila_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz";
-        sha1 = "8a16a05d445657a3aea5eecc5b12a4fa5379772c";
-      };
-    }
-    {
-      name = "utils_merge___utils_merge_1.0.1.tgz";
-      path = fetchurl {
-        name = "utils_merge___utils_merge_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz";
-        sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
-      };
-    }
-    {
-      name = "uuid___uuid_3.4.0.tgz";
-      path = fetchurl {
-        name = "uuid___uuid_3.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz";
-        sha1 = "b23e4358afa8a202fe7a100af1f5f883f02007ee";
-      };
-    }
-    {
-      name = "uuid___uuid_3.3.2.tgz";
-      path = fetchurl {
-        name = "uuid___uuid_3.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz";
-        sha1 = "1b4af4955eb3077c501c23872fc6513811587131";
-      };
-    }
-    {
-      name = "uuid___uuid_3.3.3.tgz";
-      path = fetchurl {
-        name = "uuid___uuid_3.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz";
-        sha1 = "4568f0216e78760ee1dbf3a4d2cf53e224112866";
-      };
-    }
-    {
-      name = "v8_compile_cache___v8_compile_cache_2.0.3.tgz";
-      path = fetchurl {
-        name = "v8_compile_cache___v8_compile_cache_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz";
-        sha1 = "00f7494d2ae2b688cfe2899df6ed2c54bef91dbe";
-      };
-    }
-    {
-      name = "v8_compile_cache___v8_compile_cache_2.1.0.tgz";
-      path = fetchurl {
-        name = "v8_compile_cache___v8_compile_cache_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz";
-        sha1 = "e14de37b31a6d194f5690d67efc4e7f6fc6ab30e";
-      };
-    }
-    {
-      name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
-      path = fetchurl {
-        name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
-        sha1 = "fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a";
-      };
-    }
-    {
-      name = "validator___validator_10.11.0.tgz";
-      path = fetchurl {
-        name = "validator___validator_10.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/validator/-/validator-10.11.0.tgz";
-        sha1 = "003108ea6e9a9874d31ccc9e5006856ccd76b228";
-      };
-    }
-    {
-      name = "value_equal___value_equal_1.0.1.tgz";
-      path = fetchurl {
-        name = "value_equal___value_equal_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz";
-        sha1 = "1e0b794c734c5c0cade179c437d356d931a34d6c";
-      };
-    }
-    {
-      name = "vary___vary_1.1.2.tgz";
-      path = fetchurl {
-        name = "vary___vary_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz";
-        sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
-      };
-    }
-    {
-      name = "vendors___vendors_1.0.3.tgz";
-      path = fetchurl {
-        name = "vendors___vendors_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/vendors/-/vendors-1.0.3.tgz";
-        sha1 = "a6467781abd366217c050f8202e7e50cc9eef8c0";
-      };
-    }
-    {
-      name = "verror___verror_1.10.0.tgz";
-      path = fetchurl {
-        name = "verror___verror_1.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
-        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
-      };
-    }
-    {
-      name = "vfile_location___vfile_location_2.0.4.tgz";
-      path = fetchurl {
-        name = "vfile_location___vfile_location_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/vfile-location/-/vfile-location-2.0.4.tgz";
-        sha1 = "2a5e7297dd0d9e2da4381464d04acc6b834d3e55";
-      };
-    }
-    {
-      name = "vfile_message___vfile_message_1.0.2.tgz";
-      path = fetchurl {
-        name = "vfile_message___vfile_message_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.0.2.tgz";
-        sha1 = "0f8a62584c5dff0f81760531b8e34f3cea554ebc";
-      };
-    }
-    {
-      name = "vfile___vfile_2.3.0.tgz";
-      path = fetchurl {
-        name = "vfile___vfile_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/vfile/-/vfile-2.3.0.tgz";
-        sha1 = "e62d8e72b20e83c324bc6c67278ee272488bf84a";
-      };
-    }
-    {
-      name = "vm_browserify___vm_browserify_1.1.2.tgz";
-      path = fetchurl {
-        name = "vm_browserify___vm_browserify_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz";
-        sha1 = "78641c488b8e6ca91a75f511e7a3b32a86e5dda0";
-      };
-    }
-    {
-      name = "vscode_jsonrpc___vscode_jsonrpc_4.1.0_next.3.tgz";
-      path = fetchurl {
-        name = "vscode_jsonrpc___vscode_jsonrpc_4.1.0_next.3.tgz";
-        url  = "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.1.0-next.3.tgz";
-        sha1 = "05fe742959a2726020d4d0bfbc3d3c97873c7fde";
-      };
-    }
-    {
-      name = "vscode_jsonrpc___vscode_jsonrpc_5.0.1.tgz";
-      path = fetchurl {
-        name = "vscode_jsonrpc___vscode_jsonrpc_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-5.0.1.tgz";
-        sha1 = "9bab9c330d89f43fc8c1e8702b5c36e058a01794";
-      };
-    }
-    {
-      name = "vscode_languageclient___vscode_languageclient_5.3.0_next.9.tgz";
-      path = fetchurl {
-        name = "vscode_languageclient___vscode_languageclient_5.3.0_next.9.tgz";
-        url  = "https://registry.yarnpkg.com/vscode-languageclient/-/vscode-languageclient-5.3.0-next.9.tgz";
-        sha1 = "34f58017647f15cd86015f7af45935dc750611f7";
-      };
-    }
-    {
-      name = "vscode_languageserver_protocol___vscode_languageserver_protocol_3.15.2.tgz";
-      path = fetchurl {
-        name = "vscode_languageserver_protocol___vscode_languageserver_protocol_3.15.2.tgz";
-        url  = "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.2.tgz";
-        sha1 = "e52c62923140b2655ad2472f6f29cfb83bacf5b8";
-      };
-    }
-    {
-      name = "vscode_languageserver_types___vscode_languageserver_types_3.15.1.tgz";
-      path = fetchurl {
-        name = "vscode_languageserver_types___vscode_languageserver_types_3.15.1.tgz";
-        url  = "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz";
-        sha1 = "17be71d78d2f6236d414f0001ce1ef4d23e6b6de";
-      };
-    }
-    {
-      name = "vscode_uri___vscode_uri_1.0.8.tgz";
-      path = fetchurl {
-        name = "vscode_uri___vscode_uri_1.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.8.tgz";
-        sha1 = "9769aaececae4026fb6e22359cb38946580ded59";
-      };
-    }
-    {
-      name = "w3c_hr_time___w3c_hr_time_1.0.1.tgz";
-      path = fetchurl {
-        name = "w3c_hr_time___w3c_hr_time_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz";
-        sha1 = "82ac2bff63d950ea9e3189a58a65625fedf19045";
-      };
-    }
-    {
-      name = "walker___walker_1.0.7.tgz";
-      path = fetchurl {
-        name = "walker___walker_1.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz";
-        sha1 = "2f7f9b8fd10d677262b18a884e28d19618e028fb";
-      };
-    }
-    {
-      name = "warning___warning_4.0.3.tgz";
-      path = fetchurl {
-        name = "warning___warning_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz";
-        sha1 = "16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3";
-      };
-    }
-    {
-      name = "watchpack___watchpack_1.6.0.tgz";
-      path = fetchurl {
-        name = "watchpack___watchpack_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz";
-        sha1 = "4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00";
-      };
-    }
-    {
-      name = "wbuf___wbuf_1.7.3.tgz";
-      path = fetchurl {
-        name = "wbuf___wbuf_1.7.3.tgz";
-        url  = "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz";
-        sha1 = "c1d8d149316d3ea852848895cb6a0bfe887b87df";
-      };
-    }
-    {
-      name = "webidl_conversions___webidl_conversions_3.0.1.tgz";
-      path = fetchurl {
-        name = "webidl_conversions___webidl_conversions_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz";
-        sha1 = "24534275e2a7bc6be7bc86611cc16ae0a5654871";
-      };
-    }
-    {
-      name = "webidl_conversions___webidl_conversions_4.0.2.tgz";
-      path = fetchurl {
-        name = "webidl_conversions___webidl_conversions_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz";
-        sha1 = "a855980b1f0b6b359ba1d5d9fb39ae941faa63ad";
-      };
-    }
-    {
-      name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.6.0.tgz";
-      path = fetchurl {
-        name = "webpack_bundle_analyzer___webpack_bundle_analyzer_3.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.0.tgz";
-        sha1 = "39b3a8f829ca044682bc6f9e011c95deb554aefd";
-      };
-    }
-    {
-      name = "webpack_cli___webpack_cli_3.3.10.tgz";
-      path = fetchurl {
-        name = "webpack_cli___webpack_cli_3.3.10.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.10.tgz";
-        sha1 = "17b279267e9b4fb549023fae170da8e6e766da13";
-      };
-    }
-    {
-      name = "webpack_dev_middleware___webpack_dev_middleware_3.7.2.tgz";
-      path = fetchurl {
-        name = "webpack_dev_middleware___webpack_dev_middleware_3.7.2.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz";
-        sha1 = "0019c3db716e3fa5cecbf64f2ab88a74bab331f3";
-      };
-    }
-    {
-      name = "webpack_dev_server___webpack_dev_server_3.10.3.tgz";
-      path = fetchurl {
-        name = "webpack_dev_server___webpack_dev_server_3.10.3.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz";
-        sha1 = "f35945036813e57ef582c2420ef7b470e14d3af0";
-      };
-    }
-    {
-      name = "webpack_log___webpack_log_2.0.0.tgz";
-      path = fetchurl {
-        name = "webpack_log___webpack_log_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz";
-        sha1 = "5b7928e0637593f119d32f6227c1e0ac31e1b47f";
-      };
-    }
-    {
-      name = "webpack_merge___webpack_merge_4.2.1.tgz";
-      path = fetchurl {
-        name = "webpack_merge___webpack_merge_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.1.tgz";
-        sha1 = "5e923cf802ea2ace4fd5af1d3247368a633489b4";
-      };
-    }
-    {
-      name = "webpack_sources___webpack_sources_1.3.0.tgz";
-      path = fetchurl {
-        name = "webpack_sources___webpack_sources_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz";
-        sha1 = "2a28dcb9f1f45fe960d8f1493252b5ee6530fa85";
-      };
-    }
-    {
-      name = "webpack_sources___webpack_sources_1.4.3.tgz";
-      path = fetchurl {
-        name = "webpack_sources___webpack_sources_1.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz";
-        sha1 = "eedd8ec0b928fbf1cbfe994e22d2d890f330a933";
-      };
-    }
-    {
-      name = "webpack___webpack_4.42.0.tgz";
-      path = fetchurl {
-        name = "webpack___webpack_4.42.0.tgz";
-        url  = "https://registry.yarnpkg.com/webpack/-/webpack-4.42.0.tgz";
-        sha1 = "b901635dd6179391d90740a63c93f76f39883eb8";
-      };
-    }
-    {
-      name = "websocket_driver___websocket_driver_0.7.3.tgz";
-      path = fetchurl {
-        name = "websocket_driver___websocket_driver_0.7.3.tgz";
-        url  = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz";
-        sha1 = "a2d4e0d4f4f116f1e6297eba58b05d430100e9f9";
-      };
-    }
-    {
-      name = "websocket_extensions___websocket_extensions_0.1.3.tgz";
-      path = fetchurl {
-        name = "websocket_extensions___websocket_extensions_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz";
-        sha1 = "5d2ff22977003ec687a4b87073dfbbac146ccf29";
-      };
-    }
-    {
-      name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz";
-      path = fetchurl {
-        name = "whatwg_encoding___whatwg_encoding_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz";
-        sha1 = "5abacf777c32166a51d085d6b4f3e7d27113ddb0";
-      };
-    }
-    {
-      name = "whatwg_fetch___whatwg_fetch_3.0.0.tgz";
-      path = fetchurl {
-        name = "whatwg_fetch___whatwg_fetch_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz";
-        sha1 = "fc804e458cc460009b1a2b966bc8817d2578aefb";
-      };
-    }
-    {
-      name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz";
-      path = fetchurl {
-        name = "whatwg_mimetype___whatwg_mimetype_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz";
-        sha1 = "3d4b1e0312d2079879f826aff18dbeeca5960fbf";
-      };
-    }
-    {
-      name = "whatwg_url___whatwg_url_4.8.0.tgz";
-      path = fetchurl {
-        name = "whatwg_url___whatwg_url_4.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.8.0.tgz";
-        sha1 = "d2981aa9148c1e00a41c5a6131166ab4683bbcc0";
-      };
-    }
-    {
-      name = "whatwg_url___whatwg_url_6.5.0.tgz";
-      path = fetchurl {
-        name = "whatwg_url___whatwg_url_6.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz";
-        sha1 = "f2df02bff176fd65070df74ad5ccbb5a199965a8";
-      };
-    }
-    {
-      name = "whatwg_url___whatwg_url_7.0.0.tgz";
-      path = fetchurl {
-        name = "whatwg_url___whatwg_url_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz";
-        sha1 = "fde926fa54a599f3adf82dff25a9f7be02dc6edd";
-      };
-    }
-    {
-      name = "which_module___which_module_2.0.0.tgz";
-      path = fetchurl {
-        name = "which_module___which_module_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz";
-        sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
-      };
-    }
-    {
-      name = "which___which_1.3.1.tgz";
-      path = fetchurl {
-        name = "which___which_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz";
-        sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a";
-      };
-    }
-    {
-      name = "winchan___winchan_0.2.2.tgz";
-      path = fetchurl {
-        name = "winchan___winchan_0.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/winchan/-/winchan-0.2.2.tgz";
-        sha1 = "6766917b88e5e1cb75f455ffc7cc13f51e5c834e";
-      };
-    }
-    {
-      name = "window_size___window_size_0.1.0.tgz";
-      path = fetchurl {
-        name = "window_size___window_size_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz";
-        sha1 = "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d";
-      };
-    }
-    {
-      name = "wordwrap___wordwrap_0.0.2.tgz";
-      path = fetchurl {
-        name = "wordwrap___wordwrap_0.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz";
-        sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f";
-      };
-    }
-    {
-      name = "wordwrap___wordwrap_0.0.3.tgz";
-      path = fetchurl {
-        name = "wordwrap___wordwrap_0.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz";
-        sha1 = "a3d5da6cd5c0bc0008d37234bbaf1bed63059107";
-      };
-    }
-    {
-      name = "wordwrap___wordwrap_1.0.0.tgz";
-      path = fetchurl {
-        name = "wordwrap___wordwrap_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz";
-        sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
-      };
-    }
-    {
-      name = "worker_farm___worker_farm_1.7.0.tgz";
-      path = fetchurl {
-        name = "worker_farm___worker_farm_1.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz";
-        sha1 = "26a94c5391bbca926152002f69b84a4bf772e5a8";
-      };
-    }
-    {
-      name = "worker_rpc___worker_rpc_0.1.1.tgz";
-      path = fetchurl {
-        name = "worker_rpc___worker_rpc_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz";
-        sha1 = "cb565bd6d7071a8f16660686051e969ad32f54d5";
-      };
-    }
-    {
-      name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
-      path = fetchurl {
-        name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
-        sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
-      };
-    }
-    {
-      name = "wrap_ansi___wrap_ansi_3.0.1.tgz";
-      path = fetchurl {
-        name = "wrap_ansi___wrap_ansi_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz";
-        sha1 = "288a04d87eda5c286e060dfe8f135ce8d007f8ba";
-      };
-    }
-    {
-      name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
-      path = fetchurl {
-        name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
-        sha1 = "1fd1f67235d5b6d0fee781056001bfb694c03b09";
-      };
-    }
-    {
-      name = "wrappy___wrappy_1.0.2.tgz";
-      path = fetchurl {
-        name = "wrappy___wrappy_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
-        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
-      };
-    }
-    {
-      name = "write_file_atomic___write_file_atomic_2.4.1.tgz";
-      path = fetchurl {
-        name = "write_file_atomic___write_file_atomic_2.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz";
-        sha1 = "d0b05463c188ae804396fd5ab2a370062af87529";
-      };
-    }
-    {
-      name = "write___write_1.0.3.tgz";
-      path = fetchurl {
-        name = "write___write_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz";
-        sha1 = "0800e14523b923a387e415123c865616aae0f5c3";
-      };
-    }
-    {
-      name = "ws___ws_5.2.2.tgz";
-      path = fetchurl {
-        name = "ws___ws_5.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz";
-        sha1 = "dffef14866b8e8dc9133582514d1befaf96e980f";
-      };
-    }
-    {
-      name = "ws___ws_6.2.1.tgz";
-      path = fetchurl {
-        name = "ws___ws_6.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz";
-        sha1 = "442fdf0a47ed64f59b6a5d8ff130f4748ed524fb";
-      };
-    }
-    {
-      name = "x_is_string___x_is_string_0.1.0.tgz";
-      path = fetchurl {
-        name = "x_is_string___x_is_string_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz";
-        sha1 = "474b50865af3a49a9c4657f05acd145458f77d82";
-      };
-    }
-    {
-      name = "xml_name_validator___xml_name_validator_2.0.1.tgz";
-      path = fetchurl {
-        name = "xml_name_validator___xml_name_validator_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz";
-        sha1 = "4d8b8f1eccd3419aa362061becef515e1e559635";
-      };
-    }
-    {
-      name = "xml_name_validator___xml_name_validator_3.0.0.tgz";
-      path = fetchurl {
-        name = "xml_name_validator___xml_name_validator_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz";
-        sha1 = "6ae73e06de4d8c6e47f9fb181f78d648ad457c6a";
-      };
-    }
-    {
-      name = "xml2js___xml2js_0.4.19.tgz";
-      path = fetchurl {
-        name = "xml2js___xml2js_0.4.19.tgz";
-        url  = "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz";
-        sha1 = "686c20f213209e94abf0d1bcf1efaa291c7827a7";
-      };
-    }
-    {
-      name = "xml___xml_1.0.1.tgz";
-      path = fetchurl {
-        name = "xml___xml_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz";
-        sha1 = "78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5";
-      };
-    }
-    {
-      name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
-      path = fetchurl {
-        name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz";
-        sha1 = "132ee63d2ec5565c557e20f4c22df9aca686b10d";
-      };
-    }
-    {
-      name = "xtend___xtend_4.0.2.tgz";
-      path = fetchurl {
-        name = "xtend___xtend_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz";
-        sha1 = "bb72779f5fa465186b1f438f674fa347fdb5db54";
-      };
-    }
-    {
-      name = "xtend___xtend_4.0.1.tgz";
-      path = fetchurl {
-        name = "xtend___xtend_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz";
-        sha1 = "a5c6d532be656e23db820efb943a1f04998d63af";
-      };
-    }
-    {
-      name = "y18n___y18n_4.0.0.tgz";
-      path = fetchurl {
-        name = "y18n___y18n_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz";
-        sha1 = "95ef94f85ecc81d007c264e190a120f0a3c8566b";
-      };
-    }
-    {
-      name = "yallist___yallist_3.1.1.tgz";
-      path = fetchurl {
-        name = "yallist___yallist_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz";
-        sha1 = "dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd";
-      };
-    }
-    {
-      name = "yallist___yallist_4.0.0.tgz";
-      path = fetchurl {
-        name = "yallist___yallist_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz";
-        sha1 = "9bb92790d9c0effec63be73519e11a35019a3a72";
-      };
-    }
-    {
-      name = "yargs_parser___yargs_parser_10.1.0.tgz";
-      path = fetchurl {
-        name = "yargs_parser___yargs_parser_10.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz";
-        sha1 = "7202265b89f7e9e9f2e5765e0fe735a905edbaa8";
-      };
-    }
-    {
-      name = "yargs_parser___yargs_parser_11.1.1.tgz";
-      path = fetchurl {
-        name = "yargs_parser___yargs_parser_11.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz";
-        sha1 = "879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4";
-      };
-    }
-    {
-      name = "yargs_parser___yargs_parser_13.1.1.tgz";
-      path = fetchurl {
-        name = "yargs_parser___yargs_parser_13.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz";
-        sha1 = "d26058532aa06d365fe091f6a1fc06b2f7e5eca0";
-      };
-    }
-    {
-      name = "yargs___yargs_12.0.5.tgz";
-      path = fetchurl {
-        name = "yargs___yargs_12.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz";
-        sha1 = "05f5997b609647b64f66b81e3b4b10a368e7ad13";
-      };
-    }
-    {
-      name = "yargs___yargs_13.2.4.tgz";
-      path = fetchurl {
-        name = "yargs___yargs_13.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz";
-        sha1 = "0b562b794016eb9651b98bd37acf364aa5d6dc83";
-      };
-    }
-    {
-      name = "yargs___yargs_3.10.0.tgz";
-      path = fetchurl {
-        name = "yargs___yargs_3.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz";
-        sha1 = "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1";
-      };
-    }
-    {
-      name = "yauzl___yauzl_2.10.0.tgz";
-      path = fetchurl {
-        name = "yauzl___yauzl_2.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz";
-        sha1 = "c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9";
-      };
-    }
-    {
-      name = "yn___yn_3.1.0.tgz";
-      path = fetchurl {
-        name = "yn___yn_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/yn/-/yn-3.1.0.tgz";
-        sha1 = "fcbe2db63610361afcc5eb9e0ac91e976d046114";
-      };
-    }
-    {
-      name = "z_schema___z_schema_4.1.0.tgz";
-      path = fetchurl {
-        name = "z_schema___z_schema_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/z-schema/-/z-schema-4.1.0.tgz";
-        sha1 = "8f824eabffdf018875cbcfa9b92dc3a348140b76";
-      };
-    }
-  ];
-}
diff --git a/pkgs/servers/nosql/influxdb2/update-influxdb2.sh b/pkgs/servers/nosql/influxdb2/update-influxdb2.sh
deleted file mode 100755
index 826fa92515778..0000000000000
--- a/pkgs/servers/nosql/influxdb2/update-influxdb2.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -I nixpkgs=../../../../ -i bash -p wget yarn2nix
-
-set -euo pipefail
-
-if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
-    echo "Regenerates the Yarn dependency lock files for the influxdb UI."
-    echo "Usage: $0 <git release tag>"
-    exit 1
-fi
-
-INFLUXDB_SRC="https://raw.githubusercontent.com/influxdata/influxdb/$1"
-
-wget "$INFLUXDB_SRC/ui/package.json" -O influx-ui-package.json
-wget "$INFLUXDB_SRC/ui/yarn.lock" -O influx-ui-yarndeps.lock
-yarn2nix --lockfile=influx-ui-yarndeps.lock > influx-ui-yarndeps.nix
-rm influx-ui-yarndeps.lock
diff --git a/pkgs/servers/nosql/mongodb/v3_6.nix b/pkgs/servers/nosql/mongodb/v3_6.nix
index b55bccab77954..4fc9e3ea90626 100644
--- a/pkgs/servers/nosql/mongodb/v3_6.nix
+++ b/pkgs/servers/nosql/mongodb/v3_6.nix
@@ -9,8 +9,8 @@ let
     inherit cctools;
   };
 in buildMongoDB {
-  version = "3.6.13";
-  sha256 = "1mbvk4bmabrswjdm01jssxcygjpq5799zqyx901nsi12vlcymwg4";
+  version = "3.6.23";
+  sha256 = "sha256-EJpIerW4zcGJvHfqJ65fG8yNsLRlUnRkvYfC+jkoFJ4=";
   patches = [ ./forget-build-dependencies.patch ]
     ++ lib.optionals stdenv.isDarwin [ ./asio-no-experimental-string-view.patch ];
 }
diff --git a/pkgs/servers/nosql/mongodb/v4_0.nix b/pkgs/servers/nosql/mongodb/v4_0.nix
index 7d61ece8cd52a..24349686fbec8 100644
--- a/pkgs/servers/nosql/mongodb/v4_0.nix
+++ b/pkgs/servers/nosql/mongodb/v4_0.nix
@@ -9,8 +9,8 @@ let
     inherit cctools;
   };
 in buildMongoDB {
-  version = "4.0.12";
-  sha256 = "1j8dqa4jr623y87jrdanyib9r7x18srrvdx952q4azcc8zrdwci1";
+  version = "4.0.27";
+  sha256 = "sha256-ct33mnK4pszhYM4Is7j0GZQRyi8i8Qmy0wcklyq5LjM=";
   patches =
     [ ./forget-build-dependencies.patch ./mozjs-45_fix-3-byte-opcode.patch ]
     ++ lib.optionals stdenv.isDarwin [ ./asio-no-experimental-string-view.patch ];
diff --git a/pkgs/servers/nosql/mongodb/v4_2.nix b/pkgs/servers/nosql/mongodb/v4_2.nix
index 43dc41acc38db..e638cddd232ad 100644
--- a/pkgs/servers/nosql/mongodb/v4_2.nix
+++ b/pkgs/servers/nosql/mongodb/v4_2.nix
@@ -9,8 +9,8 @@ let
     inherit cctools;
   };
 in buildMongoDB {
-  version = "4.2.8";
-  sha256 = "13yvhi1258skdni00bh6ph609whqsmhiimhyqy1gs2liwdvh5278";
+  version = "4.2.17";
+  sha256 = "sha256-4ynvImVjN674VdD/bJ55Vy/IrOlMN8iZb2PAhxwbv1A=";
   patches =
     [ ./forget-build-dependencies-4-2.patch ]
     ++ lib.optionals stdenv.isDarwin [ ./asio-no-experimental-string-view-4-2.patch ];
diff --git a/pkgs/servers/oauth2-proxy/default.nix b/pkgs/servers/oauth2-proxy/default.nix
index 8e5f8cfc49033..7002749a0df58 100644
--- a/pkgs/servers/oauth2-proxy/default.nix
+++ b/pkgs/servers/oauth2-proxy/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "oauth2-proxy";
-  version = "7.2.0";
+  version = "7.2.1";
 
   src = fetchFromGitHub {
     repo = pname;
     owner = "oauth2-proxy";
-    sha256 = "1awqada8vwyz3aj1ip9jgmf84hb60jai16in6yhn4b42x9qj8m08";
+    sha256 = "sha256-8hYsyHq0iyWzY/HHE4JWBtlaRcSTyM6BdAPcByThme8=";
     rev = "v${version}";
   };
 
-  vendorSha256 = "1k6ak175z1qikicmqb6c8sc3dnwghpy9rv7ayl8mpq50y3ighwqi";
+  vendorSha256 = "sha256-bmF38dj+ovVlSbTtv2TSXGLe/W1R4NUbeDrpgGlfPf4=";
 
   # Taken from https://github.com/oauth2-proxy/oauth2-proxy/blob/master/Makefile
   ldflags = [ "-X main.VERSION=${version}" ];
diff --git a/pkgs/servers/openafs/1.8/default.nix b/pkgs/servers/openafs/1.8/default.nix
index 918a20ce5a322..e84cac380ab36 100644
--- a/pkgs/servers/openafs/1.8/default.nix
+++ b/pkgs/servers/openafs/1.8/default.nix
@@ -1,7 +1,23 @@
-{ lib, stdenv, buildPackages, fetchurl, which, autoconf, automake, flex
-, bison , glibc, perl, libkrb5, libxslt, docbook_xsl, file
-, docbook_xml_dtd_43, libtool_2
-, withDevdoc ? false, doxygen, dblatex # Extra developer documentation
+{ lib
+, stdenv
+, buildPackages
+, fetchurl
+, which
+, autoconf
+, automake
+, flex
+, bison
+, glibc
+, perl
+, libkrb5
+, libxslt
+, docbook_xsl
+, file
+, docbook_xml_dtd_43
+, libtool_2
+, withDevdoc ? false
+, doxygen
+, dblatex # Extra developer documentation
 , ncurses # Extra ncurses utilities. Needed for debugging and monitoring.
 , tsmbac ? null # Tivoli Storage Manager Backup Client from IBM
 }:
@@ -10,13 +26,22 @@ with (import ./srcs.nix { inherit fetchurl; });
 let
   inherit (lib) optional optionalString optionals;
 
-in stdenv.mkDerivation {
+in
+stdenv.mkDerivation {
   pname = "openafs";
   inherit version srcs;
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
-  nativeBuildInputs = [ autoconf automake flex libxslt libtool_2 perl
-    which bison ] ++ optionals withDevdoc [ doxygen dblatex ];
+  nativeBuildInputs = [
+    autoconf
+    automake
+    flex
+    libxslt
+    libtool_2
+    perl
+    which
+    bison
+  ] ++ optionals withDevdoc [ doxygen dblatex ];
 
   buildInputs = [ libkrb5 ncurses ];
 
diff --git a/pkgs/servers/openafs/1.8/module.nix b/pkgs/servers/openafs/1.8/module.nix
index 2543aef376903..02966d2ac70d1 100644
--- a/pkgs/servers/openafs/1.8/module.nix
+++ b/pkgs/servers/openafs/1.8/module.nix
@@ -1,5 +1,17 @@
-{ lib, stdenv, fetchurl, which, autoconf, automake, flex, bison
-, kernel, glibc, perl, libtool_2, libkrb5, fetchpatch }:
+{ lib
+, stdenv
+, fetchurl
+, which
+, autoconf
+, automake
+, flex
+, bison
+, kernel
+, glibc
+, perl
+, libtool_2
+, libkrb5
+}:
 
 with (import ./srcs.nix {
   inherit fetchurl;
@@ -9,32 +21,17 @@ let
   modDestDir = "$out/lib/modules/${kernel.modDirVersion}/extra/openafs";
   kernelBuildDir = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
 
-in stdenv.mkDerivation {
-  name = "openafs-${version}-${kernel.modDirVersion}";
-  inherit version src;
+in
+stdenv.mkDerivation {
+  pname = "openafs";
+  version = "${version}-${kernel.modDirVersion}";
+  inherit src;
 
   nativeBuildInputs = [ autoconf automake flex libtool_2 perl which bison ]
     ++ kernel.moduleBuildDependencies;
 
   buildInputs = [ libkrb5 ];
 
-  patches = [
-    # LINUX 5.14: explicitly set set_page_dirty to default
-    ((fetchpatch {
-      url = "https://gerrit.openafs.org/changes/14830/revisions/20b8a37950b3718b85a4a3d21b23469a5176eb6a/patch";
-      sha256 = "1mkfwq0pbwvfjspsy2lxhi0f09hljgc6xyn3y97sai0dyivn05jp";
-    }).overrideAttrs (o: {
-      postFetch = "mv $out p; base64 -d p > $out; " + o.postFetch;
-    }))
-    # Linux 5.15: Convert osi_Msg macro to a function
-    ((fetchpatch {
-      url = "https://gerrit.openafs.org/changes/14831/revisions/6cfa9046229d90c0625687e3fddb7877f21fbcff/patch";
-      sha256 = "18rip9a1krxf47fizf3f12ddq55apzb2w3wjj5qs7n3sh2nwks7g";
-    }).overrideAttrs (o: {
-      postFetch = "mv $out p; base64 -d p > $out; " + o.postFetch;
-    }))
-  ];
-
   hardeningDisable = [ "pic" ];
 
   configureFlags = [
diff --git a/pkgs/servers/openafs/1.8/srcs.nix b/pkgs/servers/openafs/1.8/srcs.nix
index f35903e50916f..b8ea522fe4fe5 100644
--- a/pkgs/servers/openafs/1.8/srcs.nix
+++ b/pkgs/servers/openafs/1.8/srcs.nix
@@ -1,14 +1,16 @@
 { fetchurl }:
 rec {
-  version = "1.8.8";
+  version = "1.8.8.1";
   src = fetchurl {
     url = "https://www.openafs.org/dl/openafs/${version}/openafs-${version}-src.tar.bz2";
-    sha256 = "sha256-2qjvhqdyf6z83jvJemrRQxKcHCXuNfM0cIDsfp0oTaA=";
+    sha256 = "sha256-58S+1wdbzWQC4/DC1bnb52rS7jxf1d3DlzozVsoj70Q=";
   };
 
-  srcs = [ src
+  srcs = [
+    src
     (fetchurl {
       url = "https://www.openafs.org/dl/openafs/${version}/openafs-${version}-doc.tar.bz2";
-      sha256 = "sha256-3cxODH1KvOTxrGB+acEudxGCX1iBPjZcTfjpfraOm+U=";
-    })];
+      sha256 = "sha256-y17O3C4WS+o7SMayydbxw2v96R0GikxiqciF30j+jms=";
+    })
+  ];
 }
diff --git a/pkgs/servers/openafs/1.9/module.nix b/pkgs/servers/openafs/1.9/module.nix
index 83fe7ac98a7cb..9799454223b25 100644
--- a/pkgs/servers/openafs/1.9/module.nix
+++ b/pkgs/servers/openafs/1.9/module.nix
@@ -10,8 +10,9 @@ let
   kernelBuildDir = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
 
 in stdenv.mkDerivation {
-  name = "openafs-${version}-${kernel.modDirVersion}";
-  inherit version src;
+  pname = "openafs";
+  version = "${version}-${kernel.modDirVersion}";
+  inherit src;
 
   nativeBuildInputs = [ autoconf automake flex libtool_2 perl which bison ]
     ++ kernel.moduleBuildDependencies;
diff --git a/pkgs/servers/openvscode-server/default.nix b/pkgs/servers/openvscode-server/default.nix
index e6ada50152a4f..67f525d46a078 100644
--- a/pkgs/servers/openvscode-server/default.nix
+++ b/pkgs/servers/openvscode-server/default.nix
@@ -26,13 +26,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "openvscode-server";
-  version = "1.62.0";
+  version = "1.62.3";
 
   src = fetchFromGitHub {
     owner = "gitpod-io";
     repo = "openvscode-server";
     rev = "openvscode-server-v${version}";
-    sha256 = "0lmka1hgf1703h70s7i2lx07535n2l867kmnc5h89c4vaswy6649";
+    sha256 = "0822181gbd6y8bzn65liv7prqv7pg067sbl8nac02zg7268qwi6j";
   };
 
   yarnCache = stdenv.mkDerivation {
@@ -55,7 +55,7 @@ in stdenv.mkDerivation rec {
 
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash = "142m0vkddzv09rbbqw7y7x19q7akkn00dn6az5ppr86k6bmhyk6p";
+    outputHash = "0rmcixcn7lmrndb2pq0x895qp34hc271h1j0n3xq9rv603v1ayvk";
   };
 
   # Extract the Node.js source code which is used to compile packages with
diff --git a/pkgs/servers/piping-server-rust/default.nix b/pkgs/servers/piping-server-rust/default.nix
index 10434c34807c5..1108116af1d35 100644
--- a/pkgs/servers/piping-server-rust/default.nix
+++ b/pkgs/servers/piping-server-rust/default.nix
@@ -1,19 +1,19 @@
-{ lib, rustPlatform, fetchFromGitHub, stdenv, Security }:
+{ lib, rustPlatform, fetchFromGitHub, stdenv, CoreServices, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "piping-server-rust";
-  version = "0.9.1";
+  version = "0.10.2";
 
   src = fetchFromGitHub {
     owner = "nwtgck";
     repo = pname;
     rev = "v${version}";
-    sha256 = "16jzl0nk14gzb5kvilr17f02b41ma7xwh8y0g42pm9sb7jdbcn7g";
+    sha256 = "sha256-3EDUG9W4WzYk/bjUFIQ7Ho0KR6aMykhyTnWR/+VNxz8=";
   };
 
-  cargoSha256 = "sha256-SDAxXYX51/4S7zRTdNZK9uSjKHKrAXpDJgRRDyu6qug=";
+  cargoSha256 = "sha256-8xUhYyjc4560PowCRwYeZMUJLhZFTHcMRLe/iQAwaWE=";
 
-  buildInputs = lib.optional stdenv.isDarwin Security;
+  buildInputs = lib.optionals stdenv.isDarwin [ CoreServices Security ];
 
   meta = with lib; {
     description = "Infinitely transfer between every device over pure HTTP with pipes or browsers";
diff --git a/pkgs/servers/pleroma/0001-move-result-into-with-guard.patch b/pkgs/servers/pleroma/0001-move-result-into-with-guard.patch
new file mode 100644
index 0000000000000..07b224b1f0daa
--- /dev/null
+++ b/pkgs/servers/pleroma/0001-move-result-into-with-guard.patch
@@ -0,0 +1,26 @@
+From 8af53101fbeb0d4855ffa2b33069e833abf2e825 Mon Sep 17 00:00:00 2001
+From: Finn Behrens <me@kloenk.dev>
+Date: Tue, 7 Dec 2021 09:18:53 +0100
+Subject: [PATCH] move result into with guard
+
+---
+ lib/pleroma/web/activity_pub/publisher.ex | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/lib/pleroma/web/activity_pub/publisher.ex b/lib/pleroma/web/activity_pub/publisher.ex
+index 4f29a44..849b359 100644
+--- a/lib/pleroma/web/activity_pub/publisher.ex
++++ b/lib/pleroma/web/activity_pub/publisher.ex
+@@ -63,8 +63,7 @@ def publish_one(%{inbox: inbox, json: json, actor: %User{} = actor, id: id} = pa
+         date: date
+       })
+ 
+-    with {:ok, %{status: code}} when code in 200..299 <-
+-           result =
++    with {:ok, %{status: code}} = result when code in 200..299 <-
+              HTTP.post(
+                inbox,
+                json,
+-- 
+2.34.0
+
diff --git a/pkgs/servers/pleroma/default.nix b/pkgs/servers/pleroma/default.nix
index f8092419215df..5419ad97633bd 100644
--- a/pkgs/servers/pleroma/default.nix
+++ b/pkgs/servers/pleroma/default.nix
@@ -17,6 +17,8 @@ beamPackages.mixRelease rec {
     sha256 = "sha256-XYZIf8/Vznl4FvVAOy5GVfTBTCwhfUol/3vWWIDwIxQ=";
   };
 
+  patches = [ ./0001-move-result-into-with-guard.patch ];
+
   mixNixDeps = import ./mix.nix {
     inherit beamPackages lib;
     overrides = (final: prev: {
@@ -207,6 +209,6 @@ beamPackages.mixRelease rec {
     homepage = "https://git.pleroma.social/pleroma/pleroma";
     license = licenses.agpl3;
     maintainers = with maintainers; [ petabyteboy ninjatrappeur yuka ];
-    platforms = [ "x86_64-linux" "aarch64-linux" ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/plex/raw.nix b/pkgs/servers/plex/raw.nix
index fae6366994ee8..980e64577113a 100644
--- a/pkgs/servers/plex/raw.nix
+++ b/pkgs/servers/plex/raw.nix
@@ -12,16 +12,16 @@
 # server, and the FHS userenv and corresponding NixOS module should
 # automatically pick up the changes.
 stdenv.mkDerivation rec {
-  version = "1.24.5.5173-8dcc73a59";
+  version = "1.25.2.5319-c43dc0277";
   pname = "plexmediaserver";
 
   # Fetch the source
   src = if stdenv.hostPlatform.system == "aarch64-linux" then fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_arm64.deb";
-    sha256 = "0yjnqvy2maym7dmfabj0zjd1gwjnnjwqxzk7j24a1vhwyy0dmjcf";
+    sha256 = "09kkkyli5fygyvlzqd46jzi0y4jp0a24d92ayvfm95gm3fcxl73x";
   } else fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_amd64.deb";
-    sha256 = "1k2plcqlklch2k8akj8m411i3cm0jvzj02f5x43yhjgjpmwww95z";
+    sha256 = "17whd724sjblqxz6d79jb6hrqvkgg5mbh3bh1lr9b8sswa3pxb07";
   };
 
   outputs = [ "out" "basedb" ];
diff --git a/pkgs/servers/polipo/default.nix b/pkgs/servers/polipo/default.nix
index 10c58cfb9588a..d98e0604855af 100644
--- a/pkgs/servers/polipo/default.nix
+++ b/pkgs/servers/polipo/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.pps.jussieu.fr/~jch/software/polipo/";
     description = "A small and fast caching web proxy";
     license = licenses.mit;
-    maintainers = with maintainers; [ phreedom ehmry ];
+    maintainers = with maintainers; [ ehmry ];
     platforms = platforms.all;
     knownVulnerabilities = [
       "Unmaintained upstream: https://github.com/jech/polipo/commit/4d42ca1b5849"
diff --git a/pkgs/servers/prowlarr/default.nix b/pkgs/servers/prowlarr/default.nix
index 3daa69de492b5..d4d00cc4a8139 100644
--- a/pkgs/servers/prowlarr/default.nix
+++ b/pkgs/servers/prowlarr/default.nix
@@ -16,14 +16,14 @@ let
   }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
 
   hash = {
-    x64-linux_hash = "sha256-S3ktqBapIi6YIjDOIMziCzecS86hR2LIUey3SLNuWgg=";
-    arm64-linux_hash = "sha256-lxPglw3whyMQ+v7GpKMygxqINDoczKmh7KpGAuzuQwM=";
-    x64-osx_hash = "sha256-EUg3eC5QwGgCSi9qAPs6s8wenSXEmLvLHUTlvoLWAtc=";
+    x64-linux_hash = "sha256-KPGE9Az98UOBEJ/mUH/RI0zrf1tf90yckAfURvC+lWM=";
+    arm64-linux_hash = "sha256-seJJ2le7Y4x6G5s0ASbN3KzldD9kOmFamwaxnJV3T7c=";
+    x64-osx_hash = "sha256-FA81l/IZWGoAlBUS3irPCdcf3ey9Df3XzDen+4UlZzc=";
   }."${arch}-${os}_hash";
 
 in stdenv.mkDerivation rec {
   pname = "prowlarr";
-  version = "0.1.2.1060";
+  version = "0.1.8.1231";
 
   src = fetchurl {
     url = "https://github.com/Prowlarr/Prowlarr/releases/download/v${version}/Prowlarr.develop.${version}.${os}-core-${arch}.tar.gz";
diff --git a/pkgs/servers/psitransfer/default.nix b/pkgs/servers/psitransfer/default.nix
new file mode 100644
index 0000000000000..d1d1e13d1b83d
--- /dev/null
+++ b/pkgs/servers/psitransfer/default.nix
@@ -0,0 +1,42 @@
+# To update package version:
+#   1. Change version string in node-package.json and this file
+#   2. Run `./generate.sh` to rebuild node dependencies with node2nix
+#   3. Build this package `nix-build -A psitransfer`
+#   4. Profit
+
+{ stdenv
+, pkgs
+, lib
+, nodejs
+, fetchzip
+}:
+
+let
+  nodePackages = import ./node-composition.nix {
+    inherit pkgs nodejs;
+    inherit (stdenv.hostPlatform) system;
+  };
+
+  psitransfer = lib.head (lib.attrValues nodePackages);
+
+  combined = psitransfer.override rec {
+    # version is not defined in source package.json
+    # version must also be maintained in node-packages.json for node2nix
+    version = "2.0.1";
+
+    # override node2nix package src to pull pre-built release of same version
+    src = fetchzip {
+      url = "https://github.com/psi-4ward/psitransfer/releases/download/v${version}/psitransfer-v${version}.tar.gz";
+      sha256 = "mfldWTVmfcIRa+1g8YDnQqem5YmrFRfCxJoitWcXvns=";
+      stripRoot = false;
+    };
+
+    meta = with lib; {
+      homepage = "https://github.com/psi-4ward/psitransfer";
+      description = "Simple open source self-hosted file sharing solution";
+      license = licenses.bsd2;
+      maintainers = with maintainers; [ hyshka ];
+    };
+  };
+in
+  combined
diff --git a/pkgs/servers/psitransfer/generate.sh b/pkgs/servers/psitransfer/generate.sh
new file mode 100755
index 0000000000000..9bf90a5f0096a
--- /dev/null
+++ b/pkgs/servers/psitransfer/generate.sh
@@ -0,0 +1,10 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p nodePackages.node2nix
+set -euo pipefail
+
+node2nix \
+  --input node-packages.json \
+  --output node-packages.nix \
+  --composition node-composition.nix \
+  --node-env ../../development/node-packages/node-env.nix \
+  ;
diff --git a/pkgs/servers/psitransfer/node-composition.nix b/pkgs/servers/psitransfer/node-composition.nix
new file mode 100644
index 0000000000000..749d685105d57
--- /dev/null
+++ b/pkgs/servers/psitransfer/node-composition.nix
@@ -0,0 +1,17 @@
+# This file has been generated by node2nix 1.9.0. Do not edit!
+
+{pkgs ? import <nixpkgs> {
+    inherit system;
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
+
+let
+  nodeEnv = import ../../development/node-packages/node-env.nix {
+    inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
+    inherit pkgs nodejs;
+    libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+  };
+in
+import ./node-packages.nix {
+  inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
+  inherit nodeEnv;
+}
diff --git a/pkgs/servers/psitransfer/node-packages.json b/pkgs/servers/psitransfer/node-packages.json
new file mode 100644
index 0000000000000..eb5d92754750a
--- /dev/null
+++ b/pkgs/servers/psitransfer/node-packages.json
@@ -0,0 +1,3 @@
+[
+  { "psitransfer": "git+https://github.com/psi-4ward/psitransfer#v2.0.1" }
+]
diff --git a/pkgs/servers/psitransfer/node-packages.nix b/pkgs/servers/psitransfer/node-packages.nix
new file mode 100644
index 0000000000000..7453a4ff1b8a7
--- /dev/null
+++ b/pkgs/servers/psitransfer/node-packages.nix
@@ -0,0 +1,1713 @@
+# This file has been generated by node2nix 1.9.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}:
+
+let
+  sources = {
+    "@babel/helper-validator-identifier-7.15.7" = {
+      name = "_at_babel_slash_helper-validator-identifier";
+      packageName = "@babel/helper-validator-identifier";
+      version = "7.15.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz";
+        sha512 = "K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==";
+      };
+    };
+    "@babel/parser-7.16.4" = {
+      name = "_at_babel_slash_parser";
+      packageName = "@babel/parser";
+      version = "7.16.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz";
+        sha512 = "6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==";
+      };
+    };
+    "@babel/types-7.16.0" = {
+      name = "_at_babel_slash_types";
+      packageName = "@babel/types";
+      version = "7.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz";
+        sha512 = "PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==";
+      };
+    };
+    "accepts-1.3.7" = {
+      name = "accepts";
+      packageName = "accepts";
+      version = "1.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
+        sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
+      };
+    };
+    "acorn-7.4.1" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "7.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz";
+        sha512 = "nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==";
+      };
+    };
+    "any-promise-1.3.0" = {
+      name = "any-promise";
+      packageName = "any-promise";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz";
+        sha1 = "abc6afeedcea52e809cdc0376aed3ce39635d17f";
+      };
+    };
+    "archiver-4.0.2" = {
+      name = "archiver";
+      packageName = "archiver";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/archiver/-/archiver-4.0.2.tgz";
+        sha512 = "B9IZjlGwaxF33UN4oPbfBkyA4V1SxNLeIhR1qY8sRXSsbdUkEHrrOvwlYFPx+8uQeCe9M+FG6KgO+imDmQ79CQ==";
+      };
+    };
+    "archiver-utils-2.1.0" = {
+      name = "archiver-utils";
+      packageName = "archiver-utils";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz";
+        sha512 = "bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==";
+      };
+    };
+    "array-flatten-1.1.1" = {
+      name = "array-flatten";
+      packageName = "array-flatten";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz";
+        sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+      };
+    };
+    "asap-2.0.6" = {
+      name = "asap";
+      packageName = "asap";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz";
+        sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46";
+      };
+    };
+    "assert-never-1.2.1" = {
+      name = "assert-never";
+      packageName = "assert-never";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz";
+        sha512 = "TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==";
+      };
+    };
+    "async-3.2.2" = {
+      name = "async";
+      packageName = "async";
+      version = "3.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-3.2.2.tgz";
+        sha512 = "H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==";
+      };
+    };
+    "axios-0.21.4" = {
+      name = "axios";
+      packageName = "axios";
+      version = "0.21.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz";
+        sha512 = "ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==";
+      };
+    };
+    "babel-walk-3.0.0-canary-5" = {
+      name = "babel-walk";
+      packageName = "babel-walk";
+      version = "3.0.0-canary-5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz";
+        sha512 = "GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==";
+      };
+    };
+    "balanced-match-1.0.2" = {
+      name = "balanced-match";
+      packageName = "balanced-match";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz";
+        sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==";
+      };
+    };
+    "base64-js-1.5.1" = {
+      name = "base64-js";
+      packageName = "base64-js";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz";
+        sha512 = "AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==";
+      };
+    };
+    "basic-auth-2.0.1" = {
+      name = "basic-auth";
+      packageName = "basic-auth";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz";
+        sha512 = "NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==";
+      };
+    };
+    "bl-4.1.0" = {
+      name = "bl";
+      packageName = "bl";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz";
+        sha512 = "1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==";
+      };
+    };
+    "body-parser-1.19.0" = {
+      name = "body-parser";
+      packageName = "body-parser";
+      version = "1.19.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz";
+        sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
+      };
+    };
+    "brace-expansion-1.1.11" = {
+      name = "brace-expansion";
+      packageName = "brace-expansion";
+      version = "1.1.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
+        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+      };
+    };
+    "buffer-5.7.1" = {
+      name = "buffer";
+      packageName = "buffer";
+      version = "5.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz";
+        sha512 = "EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==";
+      };
+    };
+    "buffer-crc32-0.2.13" = {
+      name = "buffer-crc32";
+      packageName = "buffer-crc32";
+      version = "0.2.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz";
+        sha1 = "0d333e3f00eac50aa1454abd30ef8c2a5d9a7242";
+      };
+    };
+    "bytes-3.0.0" = {
+      name = "bytes";
+      packageName = "bytes";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz";
+        sha1 = "d32815404d689699f85a4ea4fa8755dd13a96048";
+      };
+    };
+    "bytes-3.1.0" = {
+      name = "bytes";
+      packageName = "bytes";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz";
+        sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
+      };
+    };
+    "call-bind-1.0.2" = {
+      name = "call-bind";
+      packageName = "call-bind";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz";
+        sha512 = "7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==";
+      };
+    };
+    "character-parser-2.2.0" = {
+      name = "character-parser";
+      packageName = "character-parser";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz";
+        sha1 = "c7ce28f36d4bcd9744e5ffc2c5fcde1c73261fc0";
+      };
+    };
+    "common-streams-1.4.0" = {
+      name = "common-streams";
+      packageName = "common-streams";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/common-streams/-/common-streams-1.4.0.tgz";
+        sha1 = "0043ca286768582e701589c7ef42a5a33ff8937a";
+      };
+    };
+    "compress-commons-3.0.0" = {
+      name = "compress-commons";
+      packageName = "compress-commons";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/compress-commons/-/compress-commons-3.0.0.tgz";
+        sha512 = "FyDqr8TKX5/X0qo+aVfaZ+PVmNJHJeckFBlq8jZGSJOgnynhfifoyl24qaqdUdDIBe0EVTHByN6NAkqYvE/2Xg==";
+      };
+    };
+    "compressible-2.0.18" = {
+      name = "compressible";
+      packageName = "compressible";
+      version = "2.0.18";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz";
+        sha512 = "AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==";
+      };
+    };
+    "compression-1.7.4" = {
+      name = "compression";
+      packageName = "compression";
+      version = "1.7.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz";
+        sha512 = "jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==";
+      };
+    };
+    "concat-map-0.0.1" = {
+      name = "concat-map";
+      packageName = "concat-map";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    };
+    "constantinople-4.0.1" = {
+      name = "constantinople";
+      packageName = "constantinople";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz";
+        sha512 = "vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==";
+      };
+    };
+    "content-disposition-0.5.3" = {
+      name = "content-disposition";
+      packageName = "content-disposition";
+      version = "0.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz";
+        sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==";
+      };
+    };
+    "content-type-1.0.4" = {
+      name = "content-type";
+      packageName = "content-type";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
+        sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
+      };
+    };
+    "cookie-0.4.0" = {
+      name = "cookie";
+      packageName = "cookie";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz";
+        sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==";
+      };
+    };
+    "cookie-signature-1.0.6" = {
+      name = "cookie-signature";
+      packageName = "cookie-signature";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz";
+        sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+      };
+    };
+    "core-util-is-1.0.3" = {
+      name = "core-util-is";
+      packageName = "core-util-is";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz";
+        sha512 = "ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==";
+      };
+    };
+    "cors-2.8.5" = {
+      name = "cors";
+      packageName = "cors";
+      version = "2.8.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz";
+        sha512 = "KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==";
+      };
+    };
+    "crc-3.8.0" = {
+      name = "crc";
+      packageName = "crc";
+      version = "3.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz";
+        sha512 = "iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==";
+      };
+    };
+    "crc32-stream-3.0.1" = {
+      name = "crc32-stream";
+      packageName = "crc32-stream";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz";
+        sha512 = "mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==";
+      };
+    };
+    "crypto-js-4.1.1" = {
+      name = "crypto-js";
+      packageName = "crypto-js";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz";
+        sha512 = "o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==";
+      };
+    };
+    "debug-2.6.9" = {
+      name = "debug";
+      packageName = "debug";
+      version = "2.6.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
+        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
+      };
+    };
+    "debug-3.1.0" = {
+      name = "debug";
+      packageName = "debug";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz";
+        sha512 = "OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==";
+      };
+    };
+    "debug-4.3.3" = {
+      name = "debug";
+      packageName = "debug";
+      version = "4.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz";
+        sha512 = "/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==";
+      };
+    };
+    "depd-1.1.2" = {
+      name = "depd";
+      packageName = "depd";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz";
+        sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+      };
+    };
+    "depd-2.0.0" = {
+      name = "depd";
+      packageName = "depd";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz";
+        sha512 = "g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==";
+      };
+    };
+    "destroy-1.0.4" = {
+      name = "destroy";
+      packageName = "destroy";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz";
+        sha1 = "978857442c44749e4206613e37946205826abd80";
+      };
+    };
+    "doctypes-1.1.0" = {
+      name = "doctypes";
+      packageName = "doctypes";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz";
+        sha1 = "ea80b106a87538774e8a3a4a5afe293de489e0a9";
+      };
+    };
+    "ee-first-1.1.1" = {
+      name = "ee-first";
+      packageName = "ee-first";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz";
+        sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+      };
+    };
+    "encodeurl-1.0.2" = {
+      name = "encodeurl";
+      packageName = "encodeurl";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz";
+        sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+      };
+    };
+    "end-of-stream-1.4.4" = {
+      name = "end-of-stream";
+      packageName = "end-of-stream";
+      version = "1.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz";
+        sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==";
+      };
+    };
+    "escape-html-1.0.3" = {
+      name = "escape-html";
+      packageName = "escape-html";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
+        sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+      };
+    };
+    "etag-1.8.1" = {
+      name = "etag";
+      packageName = "etag";
+      version = "1.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz";
+        sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+      };
+    };
+    "express-4.17.1" = {
+      name = "express";
+      packageName = "express";
+      version = "4.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz";
+        sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==";
+      };
+    };
+    "finalhandler-1.1.2" = {
+      name = "finalhandler";
+      packageName = "finalhandler";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz";
+        sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
+      };
+    };
+    "follow-redirects-1.14.5" = {
+      name = "follow-redirects";
+      packageName = "follow-redirects";
+      version = "1.14.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz";
+        sha512 = "wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==";
+      };
+    };
+    "forwarded-0.2.0" = {
+      name = "forwarded";
+      packageName = "forwarded";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz";
+        sha512 = "buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==";
+      };
+    };
+    "fresh-0.5.2" = {
+      name = "fresh";
+      packageName = "fresh";
+      version = "0.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz";
+        sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+      };
+    };
+    "fs-constants-1.0.0" = {
+      name = "fs-constants";
+      packageName = "fs-constants";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz";
+        sha512 = "y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==";
+      };
+    };
+    "fs-extra-2.1.2" = {
+      name = "fs-extra";
+      packageName = "fs-extra";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz";
+        sha1 = "046c70163cef9aad46b0e4a7fa467fb22d71de35";
+      };
+    };
+    "fs-promise-2.0.3" = {
+      name = "fs-promise";
+      packageName = "fs-promise";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-promise/-/fs-promise-2.0.3.tgz";
+        sha1 = "f64e4f854bcf689aa8bddcba268916db3db46854";
+      };
+    };
+    "fs.realpath-1.0.0" = {
+      name = "fs.realpath";
+      packageName = "fs.realpath";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
+        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+      };
+    };
+    "function-bind-1.1.1" = {
+      name = "function-bind";
+      packageName = "function-bind";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
+        sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
+      };
+    };
+    "get-intrinsic-1.1.1" = {
+      name = "get-intrinsic";
+      packageName = "get-intrinsic";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz";
+        sha512 = "kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==";
+      };
+    };
+    "glob-7.2.0" = {
+      name = "glob";
+      packageName = "glob";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz";
+        sha512 = "lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==";
+      };
+    };
+    "graceful-fs-4.2.8" = {
+      name = "graceful-fs";
+      packageName = "graceful-fs";
+      version = "4.2.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz";
+        sha512 = "qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==";
+      };
+    };
+    "has-1.0.3" = {
+      name = "has";
+      packageName = "has";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
+        sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
+      };
+    };
+    "has-symbols-1.0.2" = {
+      name = "has-symbols";
+      packageName = "has-symbols";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz";
+        sha512 = "chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==";
+      };
+    };
+    "has-tostringtag-1.0.0" = {
+      name = "has-tostringtag";
+      packageName = "has-tostringtag";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz";
+        sha512 = "kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==";
+      };
+    };
+    "http-errors-1.7.2" = {
+      name = "http-errors";
+      packageName = "http-errors";
+      version = "1.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz";
+        sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==";
+      };
+    };
+    "http-errors-1.7.3" = {
+      name = "http-errors";
+      packageName = "http-errors";
+      version = "1.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz";
+        sha512 = "ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==";
+      };
+    };
+    "http-errors-1.8.1" = {
+      name = "http-errors";
+      packageName = "http-errors";
+      version = "1.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz";
+        sha512 = "Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==";
+      };
+    };
+    "iconv-lite-0.4.24" = {
+      name = "iconv-lite";
+      packageName = "iconv-lite";
+      version = "0.4.24";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
+        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
+      };
+    };
+    "ieee754-1.2.1" = {
+      name = "ieee754";
+      packageName = "ieee754";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz";
+        sha512 = "dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==";
+      };
+    };
+    "inflight-1.0.6" = {
+      name = "inflight";
+      packageName = "inflight";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
+        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+      };
+    };
+    "inherits-2.0.3" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz";
+        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+      };
+    };
+    "inherits-2.0.4" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
+        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+      };
+    };
+    "ipaddr.js-1.9.1" = {
+      name = "ipaddr.js";
+      packageName = "ipaddr.js";
+      version = "1.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
+        sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
+      };
+    };
+    "is-core-module-2.8.0" = {
+      name = "is-core-module";
+      packageName = "is-core-module";
+      version = "2.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz";
+        sha512 = "vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==";
+      };
+    };
+    "is-expression-4.0.0" = {
+      name = "is-expression";
+      packageName = "is-expression";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz";
+        sha512 = "zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==";
+      };
+    };
+    "is-promise-2.2.2" = {
+      name = "is-promise";
+      packageName = "is-promise";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz";
+        sha512 = "+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==";
+      };
+    };
+    "is-regex-1.1.4" = {
+      name = "is-regex";
+      packageName = "is-regex";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz";
+        sha512 = "kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==";
+      };
+    };
+    "isarray-1.0.0" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+      };
+    };
+    "js-stringify-1.0.2" = {
+      name = "js-stringify";
+      packageName = "js-stringify";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz";
+        sha1 = "1736fddfd9724f28a3682adc6230ae7e4e9679db";
+      };
+    };
+    "jsonfile-2.4.0" = {
+      name = "jsonfile";
+      packageName = "jsonfile";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz";
+        sha1 = "3736a2b428b87bbda0cc83b53fa3d633a35c2ae8";
+      };
+    };
+    "jstransformer-1.0.0" = {
+      name = "jstransformer";
+      packageName = "jstransformer";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz";
+        sha1 = "ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3";
+      };
+    };
+    "lazystream-1.0.1" = {
+      name = "lazystream";
+      packageName = "lazystream";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz";
+        sha512 = "b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==";
+      };
+    };
+    "lodash.defaults-4.2.0" = {
+      name = "lodash.defaults";
+      packageName = "lodash.defaults";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz";
+        sha1 = "d09178716ffea4dde9e5fb7b37f6f0802274580c";
+      };
+    };
+    "lodash.difference-4.5.0" = {
+      name = "lodash.difference";
+      packageName = "lodash.difference";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz";
+        sha1 = "9ccb4e505d486b91651345772885a2df27fd017c";
+      };
+    };
+    "lodash.flatten-4.4.0" = {
+      name = "lodash.flatten";
+      packageName = "lodash.flatten";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz";
+        sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f";
+      };
+    };
+    "lodash.isplainobject-4.0.6" = {
+      name = "lodash.isplainobject";
+      packageName = "lodash.isplainobject";
+      version = "4.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz";
+        sha1 = "7c526a52d89b45c45cc690b88163be0497f550cb";
+      };
+    };
+    "lodash.union-4.6.0" = {
+      name = "lodash.union";
+      packageName = "lodash.union";
+      version = "4.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz";
+        sha1 = "48bb5088409f16f1821666641c44dd1aaae3cd88";
+      };
+    };
+    "media-typer-0.3.0" = {
+      name = "media-typer";
+      packageName = "media-typer";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz";
+        sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+      };
+    };
+    "merge-descriptors-1.0.1" = {
+      name = "merge-descriptors";
+      packageName = "merge-descriptors";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+        sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+      };
+    };
+    "meterstream-1.0.1" = {
+      name = "meterstream";
+      packageName = "meterstream";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/meterstream/-/meterstream-1.0.1.tgz";
+        sha1 = "12496f4bd4c5251c280545bb7303b07be0db8609";
+      };
+    };
+    "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";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz";
+        sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+      };
+    };
+    "mime-1.6.0" = {
+      name = "mime";
+      packageName = "mime";
+      version = "1.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz";
+        sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
+      };
+    };
+    "mime-db-1.51.0" = {
+      name = "mime-db";
+      packageName = "mime-db";
+      version = "1.51.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz";
+        sha512 = "5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==";
+      };
+    };
+    "mime-types-2.1.34" = {
+      name = "mime-types";
+      packageName = "mime-types";
+      version = "2.1.34";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz";
+        sha512 = "6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==";
+      };
+    };
+    "minimatch-3.0.4" = {
+      name = "minimatch";
+      packageName = "minimatch";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+      };
+    };
+    "morgan-1.10.0" = {
+      name = "morgan";
+      packageName = "morgan";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz";
+        sha512 = "AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==";
+      };
+    };
+    "ms-2.0.0" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
+        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+      };
+    };
+    "ms-2.1.1" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
+        sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
+      };
+    };
+    "ms-2.1.2" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
+        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+      };
+    };
+    "mz-2.7.0" = {
+      name = "mz";
+      packageName = "mz";
+      version = "2.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz";
+        sha512 = "z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==";
+      };
+    };
+    "negotiator-0.6.2" = {
+      name = "negotiator";
+      packageName = "negotiator";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
+        sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
+      };
+    };
+    "normalize-path-3.0.0" = {
+      name = "normalize-path";
+      packageName = "normalize-path";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz";
+        sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
+      };
+    };
+    "object-assign-4.1.1" = {
+      name = "object-assign";
+      packageName = "object-assign";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz";
+        sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+      };
+    };
+    "on-finished-2.3.0" = {
+      name = "on-finished";
+      packageName = "on-finished";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz";
+        sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+      };
+    };
+    "on-headers-1.0.2" = {
+      name = "on-headers";
+      packageName = "on-headers";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz";
+        sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==";
+      };
+    };
+    "once-1.4.0" = {
+      name = "once";
+      packageName = "once";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
+        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+      };
+    };
+    "parseurl-1.3.3" = {
+      name = "parseurl";
+      packageName = "parseurl";
+      version = "1.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
+        sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
+      };
+    };
+    "path-is-absolute-1.0.1" = {
+      name = "path-is-absolute";
+      packageName = "path-is-absolute";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    };
+    "path-parse-1.0.7" = {
+      name = "path-parse";
+      packageName = "path-parse";
+      version = "1.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz";
+        sha512 = "LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==";
+      };
+    };
+    "path-to-regexp-0.1.7" = {
+      name = "path-to-regexp";
+      packageName = "path-to-regexp";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
+        sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+      };
+    };
+    "process-nextick-args-2.0.1" = {
+      name = "process-nextick-args";
+      packageName = "process-nextick-args";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+        sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
+      };
+    };
+    "promise-7.3.1" = {
+      name = "promise";
+      packageName = "promise";
+      version = "7.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz";
+        sha512 = "nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==";
+      };
+    };
+    "proxy-addr-2.0.7" = {
+      name = "proxy-addr";
+      packageName = "proxy-addr";
+      version = "2.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz";
+        sha512 = "llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==";
+      };
+    };
+    "pug-3.0.2" = {
+      name = "pug";
+      packageName = "pug";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz";
+        sha512 = "bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==";
+      };
+    };
+    "pug-attrs-3.0.0" = {
+      name = "pug-attrs";
+      packageName = "pug-attrs";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz";
+        sha512 = "azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==";
+      };
+    };
+    "pug-code-gen-3.0.2" = {
+      name = "pug-code-gen";
+      packageName = "pug-code-gen";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz";
+        sha512 = "nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==";
+      };
+    };
+    "pug-error-2.0.0" = {
+      name = "pug-error";
+      packageName = "pug-error";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz";
+        sha512 = "sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==";
+      };
+    };
+    "pug-filters-4.0.0" = {
+      name = "pug-filters";
+      packageName = "pug-filters";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz";
+        sha512 = "yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==";
+      };
+    };
+    "pug-lexer-5.0.1" = {
+      name = "pug-lexer";
+      packageName = "pug-lexer";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz";
+        sha512 = "0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==";
+      };
+    };
+    "pug-linker-4.0.0" = {
+      name = "pug-linker";
+      packageName = "pug-linker";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz";
+        sha512 = "gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==";
+      };
+    };
+    "pug-load-3.0.0" = {
+      name = "pug-load";
+      packageName = "pug-load";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz";
+        sha512 = "OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==";
+      };
+    };
+    "pug-parser-6.0.0" = {
+      name = "pug-parser";
+      packageName = "pug-parser";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz";
+        sha512 = "ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==";
+      };
+    };
+    "pug-runtime-3.0.1" = {
+      name = "pug-runtime";
+      packageName = "pug-runtime";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz";
+        sha512 = "L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==";
+      };
+    };
+    "pug-strip-comments-2.0.0" = {
+      name = "pug-strip-comments";
+      packageName = "pug-strip-comments";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz";
+        sha512 = "zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==";
+      };
+    };
+    "pug-walk-2.0.0" = {
+      name = "pug-walk";
+      packageName = "pug-walk";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz";
+        sha512 = "yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==";
+      };
+    };
+    "qs-6.7.0" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz";
+        sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
+      };
+    };
+    "range-parser-1.2.1" = {
+      name = "range-parser";
+      packageName = "range-parser";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
+        sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
+      };
+    };
+    "raw-body-2.4.0" = {
+      name = "raw-body";
+      packageName = "raw-body";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz";
+        sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==";
+      };
+    };
+    "readable-stream-2.3.7" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "2.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
+        sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
+      };
+    };
+    "readable-stream-3.6.0" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
+        sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
+      };
+    };
+    "resolve-1.20.0" = {
+      name = "resolve";
+      packageName = "resolve";
+      version = "1.20.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz";
+        sha512 = "wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==";
+      };
+    };
+    "safe-buffer-5.1.2" = {
+      name = "safe-buffer";
+      packageName = "safe-buffer";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
+        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+      };
+    };
+    "safer-buffer-2.1.2" = {
+      name = "safer-buffer";
+      packageName = "safer-buffer";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
+        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+      };
+    };
+    "send-0.17.1" = {
+      name = "send";
+      packageName = "send";
+      version = "0.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz";
+        sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
+      };
+    };
+    "serve-static-1.14.1" = {
+      name = "serve-static";
+      packageName = "serve-static";
+      version = "1.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz";
+        sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
+      };
+    };
+    "setprototypeof-1.1.1" = {
+      name = "setprototypeof";
+      packageName = "setprototypeof";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
+        sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
+      };
+    };
+    "setprototypeof-1.2.0" = {
+      name = "setprototypeof";
+      packageName = "setprototypeof";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz";
+        sha512 = "E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==";
+      };
+    };
+    "statuses-1.5.0" = {
+      name = "statuses";
+      packageName = "statuses";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz";
+        sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+      };
+    };
+    "string_decoder-1.1.1" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
+        sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
+      };
+    };
+    "tar-stream-2.2.0" = {
+      name = "tar-stream";
+      packageName = "tar-stream";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz";
+        sha512 = "ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==";
+      };
+    };
+    "thenify-3.3.1" = {
+      name = "thenify";
+      packageName = "thenify";
+      version = "3.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz";
+        sha512 = "RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==";
+      };
+    };
+    "thenify-all-1.6.0" = {
+      name = "thenify-all";
+      packageName = "thenify-all";
+      version = "1.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz";
+        sha1 = "1a1918d402d8fc3f98fbf234db0bcc8cc10e9726";
+      };
+    };
+    "to-fast-properties-2.0.0" = {
+      name = "to-fast-properties";
+      packageName = "to-fast-properties";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+        sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+      };
+    };
+    "to-object-reducer-1.0.1" = {
+      name = "to-object-reducer";
+      packageName = "to-object-reducer";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-object-reducer/-/to-object-reducer-1.0.1.tgz";
+        sha1 = "82445234ff5edc4c00ad4211aa59f96f12354f84";
+      };
+    };
+    "toidentifier-1.0.0" = {
+      name = "toidentifier";
+      packageName = "toidentifier";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz";
+        sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
+      };
+    };
+    "toidentifier-1.0.1" = {
+      name = "toidentifier";
+      packageName = "toidentifier";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz";
+        sha512 = "o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==";
+      };
+    };
+    "token-stream-1.0.0" = {
+      name = "token-stream";
+      packageName = "token-stream";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz";
+        sha1 = "cc200eab2613f4166d27ff9afc7ca56d49df6eb4";
+      };
+    };
+    "type-is-1.6.18" = {
+      name = "type-is";
+      packageName = "type-is";
+      version = "1.6.18";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz";
+        sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
+      };
+    };
+    "unpipe-1.0.0" = {
+      name = "unpipe";
+      packageName = "unpipe";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
+        sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+      };
+    };
+    "util-deprecate-1.0.2" = {
+      name = "util-deprecate";
+      packageName = "util-deprecate";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    };
+    "utils-merge-1.0.1" = {
+      name = "utils-merge";
+      packageName = "utils-merge";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz";
+        sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+      };
+    };
+    "uuid-8.3.2" = {
+      name = "uuid";
+      packageName = "uuid";
+      version = "8.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz";
+        sha512 = "+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==";
+      };
+    };
+    "vary-1.1.2" = {
+      name = "vary";
+      packageName = "vary";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz";
+        sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+      };
+    };
+    "void-elements-3.1.0" = {
+      name = "void-elements";
+      packageName = "void-elements";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz";
+        sha1 = "614f7fbf8d801f0bb5f0661f5b2f5785750e4f09";
+      };
+    };
+    "with-7.0.2" = {
+      name = "with";
+      packageName = "with";
+      version = "7.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/with/-/with-7.0.2.tgz";
+        sha512 = "RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==";
+      };
+    };
+    "wrappy-1.0.2" = {
+      name = "wrappy";
+      packageName = "wrappy";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
+        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+      };
+    };
+    "zip-stream-3.0.1" = {
+      name = "zip-stream";
+      packageName = "zip-stream";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/zip-stream/-/zip-stream-3.0.1.tgz";
+        sha512 = "r+JdDipt93ttDjsOVPU5zaq5bAyY+3H19bDrThkvuVxC0xMQzU1PJcS6D+KrP3u96gH9XLomcHPb+2skoDjulQ==";
+      };
+    };
+  };
+in
+{
+  "psitransfer-git+https://github.com/psi-4ward/psitransfer#v2.0.1" = nodeEnv.buildNodePackage {
+    name = "psitransfer";
+    packageName = "psitransfer";
+    version = "0.0.0";
+    src = fetchgit {
+      url = "https://github.com/psi-4ward/psitransfer";
+      rev = "5647f041302af9f4c7e5fca48b4c663eac72712d";
+      sha256 = "2421deb23c075381476ff3bd3216ac26610a2b403b02e82d47ac214cb4f8dbe2";
+    };
+    dependencies = [
+      sources."@babel/helper-validator-identifier-7.15.7"
+      sources."@babel/parser-7.16.4"
+      sources."@babel/types-7.16.0"
+      sources."accepts-1.3.7"
+      sources."acorn-7.4.1"
+      sources."any-promise-1.3.0"
+      sources."archiver-4.0.2"
+      (sources."archiver-utils-2.1.0" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+        ];
+      })
+      sources."array-flatten-1.1.1"
+      sources."asap-2.0.6"
+      sources."assert-never-1.2.1"
+      sources."async-3.2.2"
+      sources."axios-0.21.4"
+      sources."babel-walk-3.0.0-canary-5"
+      sources."balanced-match-1.0.2"
+      sources."base64-js-1.5.1"
+      sources."basic-auth-2.0.1"
+      sources."bl-4.1.0"
+      (sources."body-parser-1.19.0" // {
+        dependencies = [
+          sources."bytes-3.1.0"
+          sources."debug-2.6.9"
+          sources."http-errors-1.7.2"
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."brace-expansion-1.1.11"
+      sources."buffer-5.7.1"
+      sources."buffer-crc32-0.2.13"
+      sources."bytes-3.0.0"
+      sources."call-bind-1.0.2"
+      sources."character-parser-2.2.0"
+      sources."common-streams-1.4.0"
+      (sources."compress-commons-3.0.0" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+        ];
+      })
+      sources."compressible-2.0.18"
+      (sources."compression-1.7.4" // {
+        dependencies = [
+          sources."debug-2.6.9"
+        ];
+      })
+      sources."concat-map-0.0.1"
+      sources."constantinople-4.0.1"
+      sources."content-disposition-0.5.3"
+      sources."content-type-1.0.4"
+      sources."cookie-0.4.0"
+      sources."cookie-signature-1.0.6"
+      sources."core-util-is-1.0.3"
+      sources."cors-2.8.5"
+      sources."crc-3.8.0"
+      sources."crc32-stream-3.0.1"
+      sources."crypto-js-4.1.1"
+      (sources."debug-4.3.3" // {
+        dependencies = [
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."depd-1.1.2"
+      sources."destroy-1.0.4"
+      sources."doctypes-1.1.0"
+      sources."ee-first-1.1.1"
+      sources."encodeurl-1.0.2"
+      sources."end-of-stream-1.4.4"
+      sources."escape-html-1.0.3"
+      sources."etag-1.8.1"
+      (sources."express-4.17.1" // {
+        dependencies = [
+          sources."debug-2.6.9"
+        ];
+      })
+      (sources."finalhandler-1.1.2" // {
+        dependencies = [
+          sources."debug-2.6.9"
+        ];
+      })
+      sources."follow-redirects-1.14.5"
+      sources."forwarded-0.2.0"
+      sources."fresh-0.5.2"
+      sources."fs-constants-1.0.0"
+      sources."fs-extra-2.1.2"
+      sources."fs-promise-2.0.3"
+      sources."fs.realpath-1.0.0"
+      sources."function-bind-1.1.1"
+      sources."get-intrinsic-1.1.1"
+      sources."glob-7.2.0"
+      sources."graceful-fs-4.2.8"
+      sources."has-1.0.3"
+      sources."has-symbols-1.0.2"
+      sources."has-tostringtag-1.0.0"
+      (sources."http-errors-1.8.1" // {
+        dependencies = [
+          sources."setprototypeof-1.2.0"
+          sources."toidentifier-1.0.1"
+        ];
+      })
+      sources."iconv-lite-0.4.24"
+      sources."ieee754-1.2.1"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."ipaddr.js-1.9.1"
+      sources."is-core-module-2.8.0"
+      sources."is-expression-4.0.0"
+      sources."is-promise-2.2.2"
+      sources."is-regex-1.1.4"
+      sources."isarray-1.0.0"
+      sources."js-stringify-1.0.2"
+      sources."jsonfile-2.4.0"
+      sources."jstransformer-1.0.0"
+      (sources."lazystream-1.0.1" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+        ];
+      })
+      sources."lodash.defaults-4.2.0"
+      sources."lodash.difference-4.5.0"
+      sources."lodash.flatten-4.4.0"
+      sources."lodash.isplainobject-4.0.6"
+      sources."lodash.union-4.6.0"
+      sources."media-typer-0.3.0"
+      sources."merge-descriptors-1.0.1"
+      sources."meterstream-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.51.0"
+      sources."mime-types-2.1.34"
+      sources."minimatch-3.0.4"
+      (sources."morgan-1.10.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."depd-2.0.0"
+        ];
+      })
+      sources."ms-2.0.0"
+      sources."mz-2.7.0"
+      sources."negotiator-0.6.2"
+      sources."normalize-path-3.0.0"
+      sources."object-assign-4.1.1"
+      sources."on-finished-2.3.0"
+      sources."on-headers-1.0.2"
+      sources."once-1.4.0"
+      sources."parseurl-1.3.3"
+      sources."path-is-absolute-1.0.1"
+      sources."path-parse-1.0.7"
+      sources."path-to-regexp-0.1.7"
+      sources."process-nextick-args-2.0.1"
+      sources."promise-7.3.1"
+      sources."proxy-addr-2.0.7"
+      sources."pug-3.0.2"
+      sources."pug-attrs-3.0.0"
+      sources."pug-code-gen-3.0.2"
+      sources."pug-error-2.0.0"
+      sources."pug-filters-4.0.0"
+      sources."pug-lexer-5.0.1"
+      sources."pug-linker-4.0.0"
+      sources."pug-load-3.0.0"
+      sources."pug-parser-6.0.0"
+      sources."pug-runtime-3.0.1"
+      sources."pug-strip-comments-2.0.0"
+      sources."pug-walk-2.0.0"
+      sources."qs-6.7.0"
+      sources."range-parser-1.2.1"
+      (sources."raw-body-2.4.0" // {
+        dependencies = [
+          sources."bytes-3.1.0"
+          sources."http-errors-1.7.2"
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."readable-stream-3.6.0"
+      sources."resolve-1.20.0"
+      sources."safe-buffer-5.1.2"
+      sources."safer-buffer-2.1.2"
+      (sources."send-0.17.1" // {
+        dependencies = [
+          (sources."debug-2.6.9" // {
+            dependencies = [
+              sources."ms-2.0.0"
+            ];
+          })
+          sources."http-errors-1.7.3"
+          sources."ms-2.1.1"
+        ];
+      })
+      sources."serve-static-1.14.1"
+      sources."setprototypeof-1.1.1"
+      sources."statuses-1.5.0"
+      sources."string_decoder-1.1.1"
+      sources."tar-stream-2.2.0"
+      sources."thenify-3.3.1"
+      sources."thenify-all-1.6.0"
+      sources."to-fast-properties-2.0.0"
+      sources."to-object-reducer-1.0.1"
+      sources."toidentifier-1.0.0"
+      sources."token-stream-1.0.0"
+      sources."type-is-1.6.18"
+      sources."unpipe-1.0.0"
+      sources."util-deprecate-1.0.2"
+      sources."utils-merge-1.0.1"
+      sources."uuid-8.3.2"
+      sources."vary-1.1.2"
+      sources."void-elements-3.1.0"
+      sources."with-7.0.2"
+      sources."wrappy-1.0.2"
+      sources."zip-stream-3.0.1"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Simple open source self-hosted file sharing solution";
+      license = "BSD-2-Clause";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+}
diff --git a/pkgs/servers/pulseaudio/default.nix b/pkgs/servers/pulseaudio/default.nix
index 232b228394bb7..47d0384720f4d 100644
--- a/pkgs/servers/pulseaudio/default.nix
+++ b/pkgs/servers/pulseaudio/default.nix
@@ -26,7 +26,7 @@
 , # Whether to build only the library.
   libOnly ? false
 
-, CoreServices, AudioUnit, Cocoa
+, AudioUnit, Cocoa, CoreServices, Libc
 }:
 
 stdenv.mkDerivation rec {
@@ -40,7 +40,8 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ pkg-config autoreconfHook makeWrapper perlPackages.perl perlPackages.XMLParser ];
+  nativeBuildInputs = [ pkg-config autoreconfHook makeWrapper perlPackages.perl perlPackages.XMLParser ]
+    ++ lib.optionals stdenv.isLinux [ glib ];
 
   propagatedBuildInputs =
     lib.optionals stdenv.isLinux [ libcap ];
@@ -48,7 +49,7 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ libtool libsndfile soxr speexdsp fftwFloat ]
     ++ lib.optionals stdenv.isLinux [ glib dbus ]
-    ++ lib.optionals stdenv.isDarwin [ CoreServices AudioUnit Cocoa ]
+    ++ lib.optionals stdenv.isDarwin [ AudioUnit Cocoa CoreServices Libc ]
     ++ lib.optionals (!libOnly) (
       [ libasyncns webrtc-audio-processing ]
       ++ lib.optional jackaudioSupport libjack2
@@ -93,7 +94,6 @@ stdenv.mkDerivation rec {
     ]
     ++ lib.optional (jackaudioSupport && !libOnly) "--enable-jack"
     ++ lib.optionals stdenv.isDarwin [
-      "--with-mac-sysroot=/"
       "--disable-neon-opt"
     ]
     ++ lib.optional (stdenv.isLinux && useSystemd) "--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user"
@@ -101,12 +101,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  # not sure what the best practices are here -- can't seem to find a way
-  # for the compiler to bring in stdlib and stdio (etc.) properly
-  # the alternative is to copy the files from /usr/include to src, but there are
-  # probably a large number of files that would need to be copied (I stopped
-  # after the seventh)
-  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I/usr/include";
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${Libc}";
 
   installFlags =
     [ "sysconfdir=${placeholder "out"}/etc"
diff --git a/pkgs/servers/radicale/3.x.nix b/pkgs/servers/radicale/3.x.nix
index 25f4d4b69c01b..9d9fb16f4eb7d 100644
--- a/pkgs/servers/radicale/3.x.nix
+++ b/pkgs/servers/radicale/3.x.nix
@@ -2,13 +2,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "radicale";
-  version = "3.0.6";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "Kozea";
     repo = "Radicale";
-    rev = version;
-    sha256 = "1xlsvrmx6jhi71j6j8z9sli5vwxasivzjyqf8zq8r0l5p7350clf";
+    rev = "v${version}";
+    hash = "sha256-LtPv+3FQMGC2YP2+1cSPZVUIzrUhteJTl58+JdvGcQg=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/roon-server/default.nix b/pkgs/servers/roon-server/default.nix
index 96b10829d865a..e62f0a9dfd95d 100644
--- a/pkgs/servers/roon-server/default.nix
+++ b/pkgs/servers/roon-server/default.nix
@@ -8,13 +8,14 @@
 , icu66
 , krb5
 , lib
+, libtasn1
 , makeWrapper
 , stdenv
 , openssl
 }:
 stdenv.mkDerivation rec {
   pname = "roon-server";
-  version = "1.8-850";
+  version = "1.8-880";
 
   src =
     let
@@ -22,13 +23,17 @@ stdenv.mkDerivation rec {
     in
     fetchurl {
       url = "http://download.roonlabs.com/builds/RoonServer_linuxx64_${urlVersion}.tar.bz2";
-      sha256 = "sha256-NSNaL0ERYTSYn9ETjWcQiuI4hY+w/lWVOz3n9lt6O+4=";
+      sha256 = "sha256-Td3iRYGmTg8Vx9c4e4ugIIbAqhDFPax9vR2BsCIQCZA=";
     };
 
+  dontConfigure = true;
+  dontBuild = true;
+
   buildInputs = [
     alsa-lib
     freetype
     krb5
+    libtasn1
     stdenv.cc.cc.lib
   ];
 
diff --git a/pkgs/servers/roundcube/default.nix b/pkgs/servers/roundcube/default.nix
index 4ae18f7953328..5fcd2f2d3bc0d 100644
--- a/pkgs/servers/roundcube/default.nix
+++ b/pkgs/servers/roundcube/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "roundcube";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchurl {
     url = "https://github.com/roundcube/roundcubemail/releases/download/${version}/roundcubemail-${version}-complete.tar.gz";
-    sha256 = "sha256-L9x7FmPl6ZcGv/NAk6pHMdS/IqWMtVWiUg7RveeNASw=";
+    sha256 = "sha256-YRsNgCJ9C3AonHFXh7LYX9Fe2RXrVtWFwQTCQ3YDboM=";
   };
 
   patches = [ ./0001-Don-t-resolve-symlinks-when-trying-to-find-INSTALL_P.patch ];
diff --git a/pkgs/servers/rtsp-simple-server/default.nix b/pkgs/servers/rtsp-simple-server/default.nix
index e6605fb6ce261..7be9b53fb9f3d 100644
--- a/pkgs/servers/rtsp-simple-server/default.nix
+++ b/pkgs/servers/rtsp-simple-server/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "rtsp-simple-server";
-  version = "0.17.3";
+  version = "0.17.8";
 
   src = fetchFromGitHub {
     owner = "aler9";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9V6yblRnOAZBYuGChjeDyOTWjCCVhdFxljSndEr7GdY=";
+    hash = "sha256-wjF7XTiUw5lPSmNiHvqUz4ZswpzLBoYF9S25dL8VPMU=";
   };
 
-  vendorSha256 = "sha256-lFyRMoI+frzAa7sL8wIzUgzJRrCQjt9Ri8T9pHIpoug=";
+  vendorSha256 = "sha256-rntfePkwNGnyPjIzjLJhBYLTcndHP605Ah/xPcM6sRo=";
 
   # Tests need docker
   doCheck = false;
diff --git a/pkgs/servers/sabnzbd/default.nix b/pkgs/servers/sabnzbd/default.nix
index 0669d1004be0e..e7f526d3bc137 100644
--- a/pkgs/servers/sabnzbd/default.nix
+++ b/pkgs/servers/sabnzbd/default.nix
@@ -6,6 +6,7 @@
 , unrar
 , p7zip
 , makeWrapper
+, nixosTests
 }:
 
 let
@@ -17,17 +18,19 @@ let
     configobj
     feedparser
     sabyenc3
+    puremagic
+    guessit
   ]);
   path = lib.makeBinPath [ par2cmdline unrar unzip p7zip ];
 in stdenv.mkDerivation rec {
-  version = "3.4.0";
+  version = "3.4.2";
   pname = "sabnzbd";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-zax+PuvCmYOlEhRmiCp7UOd9VI0i8dbgTPyTtqLuGUM=";
+    sha256 = "sha256-Pl2i/k5tilPvMWLRtzZ2imOJQdZYKDAz8bt847ZAXF8=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -46,11 +49,15 @@ in stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
+  passthru.tests = {
+    smoke-test = nixosTests.sabnzbd;
+  };
+
   meta = with lib; {
     description = "Usenet NZB downloader, par2 repairer and auto extracting server";
     homepage = "https://sabnzbd.org";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = with lib.maintainers; [ fridh ];
+    maintainers = with lib.maintainers; [ fridh jojosch ];
   };
 }
diff --git a/pkgs/servers/samba/4.x.nix b/pkgs/servers/samba/4.x.nix
index 88defab930253..47d2c4b4d409d 100644
--- a/pkgs/servers/samba/4.x.nix
+++ b/pkgs/servers/samba/4.x.nix
@@ -45,11 +45,11 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "samba";
-  version = "4.15.0";
+  version = "4.15.1";
 
   src = fetchurl {
     url = "mirror://samba/pub/samba/stable/${pname}-${version}.tar.gz";
-    sha256 = "0h26s9lfdl8mccs9rfv1gr5f8snd95gjkrik6wl5ccb27044gwxi";
+    sha256 = "sha256-oYEfu0EQ1klp9sEI+NFh4sPiDd9HVSmj0yvZS7dFnwA=";
   };
 
   outputs = [ "out" "dev" "man" ];
diff --git a/pkgs/servers/search/elasticsearch/6.x.nix b/pkgs/servers/search/elasticsearch/6.x.nix
index 4b92592f65dfc..56f0779c833a7 100644
--- a/pkgs/servers/search/elasticsearch/6.x.nix
+++ b/pkgs/servers/search/elasticsearch/6.x.nix
@@ -19,8 +19,8 @@ stdenv.mkDerivation (rec {
     url = "https://artifacts.elastic.co/downloads/elasticsearch/${pname}-${version}.tar.gz";
     sha256 =
       if enableUnfree
-      then "09dy3iyzk460vra6na6vk7d3mzpbv4cl0pl7kjmybxy947j7hh42"
-      else "0s04xz3j4psyhawvy503sp2nl5s0gswmpd9wfvwnavgcrr23wk39";
+      then "1hkcgqsrnnx3zjpgar4424mxfaxrx0zbrp7n7n0dlbhphshwnkmd"
+      else "1pglg60aigy31xmpfchnxcc04nd18zwc3av4m0kyp00yk5mnlyqm";
   };
 
   patches = [ ./es-home-6.x.patch ];
diff --git a/pkgs/servers/search/elasticsearch/7.x.nix b/pkgs/servers/search/elasticsearch/7.x.nix
index c254b733837be..592cc947a42e3 100644
--- a/pkgs/servers/search/elasticsearch/7.x.nix
+++ b/pkgs/servers/search/elasticsearch/7.x.nix
@@ -18,9 +18,9 @@ let
   plat = elemAt info 1;
   shas =
     {
-      x86_64-linux  = "1ld7656b37l67vi4pyv0il865b168niqnbd4hzbvdnwrm35prp10";
-      x86_64-darwin = "11b180y11xw5q01l7aw6lyn15lp9ks8xmakjg1j7gp3z6c90hpn3";
-      aarch64-linux = "0s4ph79x17f90jk31wjwk259dk9dmhnmnkxdcn77m191wvf6m3wy";
+      x86_64-linux  = "1s16l95wc589cr69pfbgmkn9rkvxn6sd6jlbiqpm6p6iyxiaxd6c";
+      x86_64-darwin = "05h7pvq4pb816wgcymnfklp3w6sv54x6138v2infw5219dnk8pfs";
+      aarch64-linux = "0q4xnjzhlx1b2lkikca88qh9glfxaifsm419k2bxxlrfrx31zlkq";
     };
 in
 stdenv.mkDerivation rec {
diff --git a/pkgs/servers/search/elasticsearch/plugins.nix b/pkgs/servers/search/elasticsearch/plugins.nix
index f71d7b9cc76cb..03bb24d9a390f 100644
--- a/pkgs/servers/search/elasticsearch/plugins.nix
+++ b/pkgs/servers/search/elasticsearch/plugins.nix
@@ -38,8 +38,8 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
       sha256 =
-        if version == "7.11.1" then "0mi6fmnjbqypa4n1w34dvlmyq793pz4wf1r5srcs7i84kkiddysy"
-        else if version == "6.8.3" then "0vbaqyj0lfy3ijl1c9h92b0nh605h5mjs57bk2zhycdvbw5sx2lv"
+        if version == "7.16.1" then "1sz858m9963xqr5kzjlwnq7k0a146rn60v6xijyfbp8y3brg618p"
+        else if version == "6.8.21" then "06b1pavyggzfp4wwdql0q9nm3r7i9px9cagp4yh4nhxhnk4w5fiq"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -55,8 +55,8 @@ in
     src = fetchurl {
       url = "https://github.com/vhyza/elasticsearch-${pluginName}/releases/download/v${version}/elasticsearch-${pluginName}-${version}-plugin.zip";
       sha256 =
-        if version == "7.11.1" then "0r2k2ndgqiqh27lch8dbay1m09f00h5kjcan87chcvyf623l40a3"
-        else if version == "6.8.3" then "12bshvp01pp2lgwd0cn9l58axg8gdimsh4g9wfllxi1bdpv4cy53"
+        if version == "7.16.1" then "0yjy9yhw77lmalivxnmv2rq8fk93ddxszkk73lgmpffladx2ikir"
+        else if version == "6.8.21" then "0m80cn7vkcvk95v4pdmi6vk5ww7p01k0hj2iqb9g870vs6x2qjzv"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -72,8 +72,8 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
       sha256 =
-        if version == "7.11.1" then "10ln81zyf04qi9wv10mck8iz0xwfvwp4ni0hl1gkgvh44lf1n855"
-        else if version == "6.8.3" then "0ggdhf7w50bxsffmcznrjy14b578fps0f8arg3v54qvj94v9jc37"
+        if version == "7.16.1" then "1w5ndgffqzj5ijglmykifrk1jsgh7qwn8m7sbpiv0r7n3aayhz1x"
+        else if version == "6.8.21" then "07w8s4a5gvr9lzjzf629y8rx3kvs6zd1vl07ksw1paghp42yb354"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -89,8 +89,8 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
       sha256 =
-        if version == "7.11.1" then "09grfvqjmm2rznc48z84awh54afh81qa16amfqw3amsb8dr6czm6"
-        else if version == "6.8.3" then "0pmffz761dqjpvmkl7i7xsyw1iyyspqpddxp89rjsznfc9pak5im"
+        if version == "7.16.1" then "16mv7b9nl96bcygabvjqidxp2sjk340va19mrmliblpq3mxa2sii"
+        else if version == "6.8.21" then "1kdpbrasxwr3dn21zjrklp1s389rwa51fairygdwl8px9liwwfa5"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -106,8 +106,8 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
       sha256 =
-        if version == "7.11.1" then "0imkf3w2fmspb78vkf9k6kqx1crm4f82qgnbk1qa7gbsa2j47hbs"
-        else if version == "6.8.3" then "0kfr4i2rcwinjn31xrc2piicasjanaqcgnbif9xc7lnak2nnzmll"
+        if version == "7.16.1" then "0bf8f8cybsp6s2ai3j04yay9kbhsafpgxivxjvzn2iy9qgc84ls4"
+        else if version == "6.8.21" then "0v31yyhjcdlqnjw1f9kihh7z3c6d31whc57hqqd1dn579n4s9rlz"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -123,8 +123,8 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip";
       sha256 =
-        if version == "7.11.1" then "0ahyb1plgwvq22id2kcx9g076ybb3kvybwakgcvsdjjdyi4cwgjs"
-        else if version == "6.8.3" then "1mm6hj2m1db68n81rzsvlw6nisflr5ikzk5zv9nmk0z641n5vh1x"
+        if version == "7.16.1" then "0sfa0ql3hh8jmha230dyhr51bvsvwmazyycf36ngpmxsysm8ccml"
+        else if version == "6.8.21" then "0sfh1az30q4f34zxig2fz8wn9gk53fmmxyg5pbi1svn9761p5awq"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -140,8 +140,8 @@ in
     src = fetchurl {
       url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip";
       sha256 =
-        if version == "7.11.1" then "0i98b905k1zwm3y9pfhr40v2fm5qdsp3icygibhxf7drffygk4l7"
-        else if version == "6.8.3" then "1s2klpvnhpkrk53p64zbga3b66czi7h1a13f58kfn2cn0zfavnbk"
+        if version == "7.16.1" then "1b95hjr4qhiavm7r7k19bwk5c64r00f1g5s0ydnb6gzym9hdb5s1"
+        else if version == "6.8.21" then "00lwj00rfdk6850gk1n86chiz2w6afpqn7jn588jdbwv41qh5mrv"
         else throw "unsupported version ${version} for plugin ${pluginName}";
     };
     meta = with lib; {
@@ -157,24 +157,24 @@ in
     pluginName = "search-guard";
     version =
       # https://docs.search-guard.com/latest/search-guard-versions
-      if esVersion == "7.11.1" then "${esVersion}-50.0.0"
-      else if esVersion == "6.8.3" then "${esVersion}-25.5"
+      if esVersion == "7.16.1" then "${esVersion}-52.5.0"
+      else if esVersion == "6.8.21" then "${esVersion}-25.6"
       else throw "unsupported version ${esVersion} for plugin ${pluginName}";
     src =
-      if esVersion == "7.11.1" then
+      if esVersion == "7.16.1" 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";
-          sha256 = "1lippygiy0xcxxlakylhvj3bj2i681k6jcfjsprkfk7hlaqsqxkm";
+          sha256 = "1m3nj35qyrkkh3mhmn66nippavima8h8qpaxddalhjsvf70lhnjb";
         }
-      else if esVersion == "6.8.3" then
+      else if esVersion == "6.8.21" then
         fetchurl {
-          url = "mirror://maven/com/floragunn/${pluginName}-${majorVersion}/${version}/${pluginName}-${majorVersion}-${version}.zip";
-          sha256 = "0a7ys9qinc0fjyka03cx9rv0pm7wnvslk234zv5vrphkrj52s1cb";
+          url = "https://maven.search-guard.com/search-guard-release/com/floragunn/search-guard-6/${version}/search-guard-6-${version}.zip";
+          sha256 = "19nj513wigwd0mzq747zax4fzvv5vi24f7j0636rydd9iv9cyhg2";
         }
       else throw "unsupported version ${version} for plugin ${pluginName}";
     meta = with lib; {
       homepage = "https://search-guard.com";
-      description = "Elasticsearch plugin that offers encryption, authentication, and authorisation. ";
+      description = "Elasticsearch plugin that offers encryption, authentication, and authorisation.";
       license = licenses.asl20;
     };
   };
diff --git a/pkgs/servers/search/groonga/default.nix b/pkgs/servers/search/groonga/default.nix
index b405a4c2f09df..f42574884ed99 100644
--- a/pkgs/servers/search/groonga/default.nix
+++ b/pkgs/servers/search/groonga/default.nix
@@ -1,25 +1,32 @@
-{ lib, stdenv, fetchurl, mecab, kytea, libedit, pkg-config
-, suggestSupport ? false, zeromq, libevent, msgpack
+{ lib, stdenv, fetchurl, autoreconfHook, mecab, kytea, libedit, pkg-config
+, suggestSupport ? false, zeromq, libevent, msgpack, openssl
 , lz4Support  ? false, lz4
-, zlibSupport ? false, zlib
+, zlibSupport ? true, zlib
 }:
 
 stdenv.mkDerivation rec {
 
   pname = "groonga";
-  version = "11.0.5";
+  version = "11.0.9";
 
   src = fetchurl {
     url    = "https://packages.groonga.org/source/groonga/${pname}-${version}.tar.gz";
-    sha256 = "sha256-oBABhMKLezjPeHkWfqesy+ze+CPnWfmS17vCKC7fWEU=";
+    sha256 = "sha256-yE/Ok0QNY9+a4vfNJWZjR4W8E/i+lw7T85X2+oOw8m4=";
   };
 
+  preConfigure = ''
+    # To avoid problems due to libc++abi 11 using `#include <version>`.
+    rm version
+  '';
+
   buildInputs = with lib;
-     [ pkg-config mecab kytea libedit ]
+     [ mecab kytea libedit openssl ]
     ++ optional lz4Support lz4
     ++ optional zlibSupport zlib
     ++ optionals suggestSupport [ zeromq libevent msgpack ];
 
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+
   configureFlags = with lib;
        optional zlibSupport "--with-zlib"
     ++ optional lz4Support  "--with-lz4";
diff --git a/pkgs/servers/shairport-sync/default.nix b/pkgs/servers/shairport-sync/default.nix
index 5fa96c91c5ef0..ed3c0dcc7f9de 100644
--- a/pkgs/servers/shairport-sync/default.nix
+++ b/pkgs/servers/shairport-sync/default.nix
@@ -2,11 +2,11 @@
 , libdaemon, popt, pkg-config, libconfig, libpulseaudio, soxr }:
 
 stdenv.mkDerivation rec {
-  version = "3.3.8";
+  version = "3.3.9";
   pname = "shairport-sync";
 
   src = fetchFromGitHub {
-    sha256 = "sha256-YxTJ3XEbBgOQqUJGGsjba2PjyTudWZiH9FqXlnvlsp0=";
+    sha256 = "sha256-JLgnsLjswj0qus1Vd5ZtPQbbIp3dp2pI7OfQG4JrdW8=";
     rev = version;
     repo = "shairport-sync";
     owner = "mikebrady";
diff --git a/pkgs/servers/smcroute/default.nix b/pkgs/servers/smcroute/default.nix
index afb1c9e70e566..be504ec62ab8b 100644
--- a/pkgs/servers/smcroute/default.nix
+++ b/pkgs/servers/smcroute/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "smcroute";
-  version = "2.5.3";
+  version = "2.5.5";
 
   src = fetchFromGitHub {
     owner = "troglobit";
     repo = "smcroute";
     rev = version;
-    sha256 = "sha256-0s4BIJbbygt7Wpxlp13QGbXpvZsdIBszE7TOaN2aq/E=";
+    sha256 = "sha256-kMK2XLyI9GG83gxjVh4I7wSMEPM5iJSmgtwVJNHn9OQ=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/servers/soft-serve/default.nix b/pkgs/servers/soft-serve/default.nix
new file mode 100644
index 0000000000000..b289177e79970
--- /dev/null
+++ b/pkgs/servers/soft-serve/default.nix
@@ -0,0 +1,33 @@
+{ lib, buildGoModule, fetchFromGitHub, makeWrapper, git }:
+
+buildGoModule rec {
+  pname = "soft-serve";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "charmbracelet";
+    repo = "soft-serve";
+    rev = "v${version}";
+    sha256 = "sha256-sRlEF1ee+oBnYOGSN6rDOvNr3OnfAqV+1Wx5XOyIylw=";
+  };
+
+  vendorSha256 = "sha256-FukkmuBTPPhY0UTe3r1iU3nbGoMsPTcRKTLBd+VMGUk=";
+
+  doCheck = false;
+
+  ldflags = [ "-s" "-w" "-X=main.Version=${version}" ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/soft \
+      --prefix PATH : "${lib.makeBinPath [ git ]}"
+  '';
+
+  meta = with lib; {
+    description = "A tasty, self-hosted Git server for the command line";
+    homepage = "https://github.com/charmbracelet/soft-serve";
+    license = licenses.mit;
+    maintainers = with maintainers; [ penguwin ];
+  };
+}
diff --git a/pkgs/servers/sql/mariadb/connector-c/default.nix b/pkgs/servers/sql/mariadb/connector-c/default.nix
index 0767828461fe1..3f0697bd2cc28 100644
--- a/pkgs/servers/sql/mariadb/connector-c/default.nix
+++ b/pkgs/servers/sql/mariadb/connector-c/default.nix
@@ -31,6 +31,13 @@ stdenv.mkDerivation {
     substituteInPlace mariadb_config/mariadb_config.c.in \
       --replace '-I%s/@INSTALL_INCLUDEDIR@' "-I$dev/include" \
       --replace '-L%s/@INSTALL_LIBDIR@' "-L$out/lib/mariadb"
+  '' + lib.optionalString stdenv.hostPlatform.isStatic ''
+    # Disables all dynamic plugins
+    substituteInPlace cmake/plugins.cmake \
+      --replace 'if(''${CC_PLUGIN_DEFAULT} STREQUAL "DYNAMIC")' 'if(''${CC_PLUGIN_DEFAULT} STREQUAL "INVALID")'
+    # Force building static libraries
+    substituteInPlace libmariadb/CMakeLists.txt \
+      --replace 'libmariadb SHARED' 'libmariadb STATIC'
   '';
 
   # The cmake setup-hook uses $out/lib by default, this is not the case here.
@@ -52,6 +59,7 @@ stdenv.mkDerivation {
     ln -sv mariadb $dev/include/mysql
     ln -sv mariadb_version.h $dev/include/mariadb/mysql_version.h
     ln -sv libmariadb.pc $dev/lib/pkgconfig/mysqlclient.pc
+    install -Dm644 include/ma_config.h $dev/include/mariadb/my_config.h
   '';
 
   meta = {
diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix
index 41b7bc383b60f..82fdc2a3a38b6 100644
--- a/pkgs/servers/sql/mariadb/default.nix
+++ b/pkgs/servers/sql/mariadb/default.nix
@@ -164,7 +164,8 @@ server = stdenv.mkDerivation (common // {
     bzip2 lz4 lzo snappy xz zstd
     cracklib judy libevent libxml2
   ] ++ optional (stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAarch32) numactl
-    ++ optionals stdenv.hostPlatform.isLinux [ linux-pam pmdk.dev ]
+    ++ optionals stdenv.hostPlatform.isLinux [ linux-pam ]
+    ++ optional (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64) pmdk.dev
     ++ optional (!stdenv.hostPlatform.isDarwin) mytopEnv
     ++ optionals withStorageMroonga [ kytea libsodium msgpack zeromq ];
 
diff --git a/pkgs/servers/sql/materialize/default.nix b/pkgs/servers/sql/materialize/default.nix
index 0aba7f758c668..5667de22bc339 100644
--- a/pkgs/servers/sql/materialize/default.nix
+++ b/pkgs/servers/sql/materialize/default.nix
@@ -40,17 +40,17 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "materialize";
-  version = "0.9.4";
-  rev = "29d003cae5e9d46f8b11b2102ff0b9abf6608c2f";
+  version = "0.10.0";
+  MZ_DEV_BUILD_SHA = "c14633f59e842fbdd62c7239ffd8c2a16704386e";
 
   src = fetchFromGitHub {
     owner = "MaterializeInc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "021n05csyvza9ifq09qaxypgmlbp3a7xn6r1m4jn8d4rnz38wag6";
+    sha256 = "06290l2xrryx7bc9g1ffyfjm18a34pa2k410qk9w2p0psqiw2v8d";
   };
 
-  cargoSha256 = "12fysxzmqnx7y7yg6fjcv1952s77d46pwi32vnsv62icgqfpw0j4";
+  cargoSha256 = "1bxfp6pidiziiq938ah49pa3qr1dhnfnbihp7jxind9qsb3q9gp0";
 
   nativeBuildInputs = [ cmake perl pkg-config ]
     # Provides the mig command used by the krb5-src build script
@@ -67,8 +67,10 @@ rustPlatform.buildRustPackage rec {
     "--exact"
     "--skip test_client"
     "--skip test_client_errors"
+    "--skip test_client_all_subjects"
     "--skip test_no_block"
     "--skip test_safe_mode"
+    "--skip test_tls"
   ];
 
   postPatch = ''
@@ -78,7 +80,6 @@ rustPlatform.buildRustPackage rec {
       --replace _Materialize root
   '';
 
-  MZ_DEV_BUILD_SHA = rev;
   cargoBuildFlags = [ "--bin materialized" ];
 
   postInstall = ''
diff --git a/pkgs/servers/sql/monetdb/default.nix b/pkgs/servers/sql/monetdb/default.nix
index 0cf704d5f2a91..3a21676e710cf 100644
--- a/pkgs/servers/sql/monetdb/default.nix
+++ b/pkgs/servers/sql/monetdb/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "monetdb";
-  version = "11.39.13";
+  version = "11.41.13";
 
   src = fetchurl {
     url = "https://dev.monetdb.org/downloads/sources/archive/MonetDB-${version}.tar.bz2";
-    sha256 = "sha256-e30Vykwk6U83/0pS3OWPJ2Oq2SAtNc1S6c1ZO42k39c=";
+    sha256 = "sha256-42u/sWUEOlCGe9UaWnUQJJ39TIE6OBI/5P9sKxKvreM=";
   };
 
   postPatch = ''
@@ -17,6 +17,10 @@ stdenv.mkDerivation rec {
       'set(LINUX_DISTRO "nixos")'
   '';
 
+  postInstall = ''
+    rm $out/bin/monetdb_mtest.sh
+  '';
+
   nativeBuildInputs = [ cmake python3 ];
   buildInputs = [ bison openssl readline bzip2 ];
 
diff --git a/pkgs/servers/sql/mssql/jdbc/jtds.nix b/pkgs/servers/sql/mssql/jdbc/jtds.nix
new file mode 100644
index 0000000000000..e67cc1b0ecb95
--- /dev/null
+++ b/pkgs/servers/sql/mssql/jdbc/jtds.nix
@@ -0,0 +1,27 @@
+{lib, stdenv, fetchurl, unzip}:
+
+stdenv.mkDerivation rec {
+  pname = "jtds";
+  version = "1.3.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/jtds/${version}/${pname}-${version}-dist.zip";
+    sha256 = "sha256-eV0P8QdjfuHXzYssH8yHhynuH0Clg7MAece2Up3S9M0";
+  };
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    mkdir -p $out/share/java
+    cp jtds-*.jar $out/share/java/jtds-jdbc.jar
+  '';
+
+  nativeBuildInputs = [ unzip ];
+
+  meta = with lib; {
+    description = "Pure Java (type 4) JDBC 3.0 driver for Microsoft SQL Server";
+    homepage = "http://jtds.sourceforge.net/";
+    license = licenses.lgpl21;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/sql/pgbouncer/default.nix b/pkgs/servers/sql/pgbouncer/default.nix
index e91fa775ddbea..441b99c7bcd66 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.16.0";
+  version = "1.16.1";
 
   src = fetchurl {
     url = "https://pgbouncer.github.io/downloads/files/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0li66jk1v07bpfmmqzcqjn5vkhglfhwnbncc5bpalg5qidhr38x4";
+    sha256 = "1z7p3ghpmbp5qv1bz9s186jn0hfnr300dc5p0hmh6vbnwklpfx08";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix
index fafd5581e5a2c..0af47ccca83a9 100644
--- a/pkgs/servers/sql/postgresql/default.nix
+++ b/pkgs/servers/sql/postgresql/default.nix
@@ -71,7 +71,8 @@ let
       (if stdenv.isDarwin then "--with-uuid=e2fs" else "--with-ossp-uuid")
     ] ++ lib.optionals icuEnabled [ "--with-icu" ]
       ++ lib.optionals lz4Enabled [ "--with-lz4" ]
-      ++ lib.optionals gssSupport [ "--with-gssapi" ];
+      ++ lib.optionals gssSupport [ "--with-gssapi" ]
+      ++ lib.optionals stdenv.hostPlatform.isRiscV [ "--disable-spinlocks" ];
 
     patches =
       [ (if atLeast "9.4" then ./patches/disable-resolve_symlinks-94.patch else ./patches/disable-resolve_symlinks.patch)
@@ -200,19 +201,10 @@ let
 
 in self: {
 
-  postgresql_9_6 = self.callPackage generic {
-    version = "9.6.23";
-    psqlSchema = "9.6";
-    sha256 = "1fa735lrmv2vrfiixg73nh024gxlagcbrssklvgwdf0s82cgfjd8";
-    this = self.postgresql_9_6;
-    thisAttr = "postgresql_9_6";
-    inherit self;
-  };
-
   postgresql_10 = self.callPackage generic {
-    version = "10.18";
+    version = "10.19";
     psqlSchema = "10.0"; # should be 10, but changing it is invasive
-    sha256 = "009qpb02bq0rx0aaw5ck70gk07xwparhfxvlfimgihw2vhp7qisp";
+    sha256 = "sha256-brgwtCi2DoSuh+IENrzmecTZ0CAr567A5BsMZ9kTQjk=";
     this = self.postgresql_10;
     thisAttr = "postgresql_10";
     inherit self;
@@ -220,36 +212,36 @@ in self: {
   };
 
   postgresql_11 = self.callPackage generic {
-    version = "11.13";
+    version = "11.14";
     psqlSchema = "11.1"; # should be 11, but changing it is invasive
-    sha256 = "0j5wnscnxa3sx8d39s55654df8aikmvkihfb0a02hrgmyygnihx0";
+    sha256 = "sha256-llx/S+lvtk+VgYUsWMTwXDgS1K2CPA8+K9/nd8Fi+Zk=";
     this = self.postgresql_11;
     thisAttr = "postgresql_11";
     inherit self;
   };
 
   postgresql_12 = self.callPackage generic {
-    version = "12.8";
+    version = "12.9";
     psqlSchema = "12";
-    sha256 = "0an6v5bsp26d276wbdx76lsq6cq86hgi2fmkzwawnk63j3h02r72";
+    sha256 = "sha256-if2i3jPtBKmFSOQ/PuXxW4gr4XUF1jH+DdGlQKK1bc4=";
     this = self.postgresql_12;
     thisAttr = "postgresql_12";
     inherit self;
   };
 
   postgresql_13 = self.callPackage generic {
-    version = "13.4";
+    version = "13.5";
     psqlSchema = "13";
-    sha256 = "1kf0gcsrl5n25rjlvkh87aywmn28kbwvakm5c7j1qpr4j01y34za";
+    sha256 = "sha256-m4EGelXtuqvEGKrO9FfdhHdkKCdJlWCwBhWm6mwT9rM=";
     this = self.postgresql_13;
     thisAttr = "postgresql_13";
     inherit self;
   };
 
   postgresql_14 = self.callPackage generic {
-    version = "14.0";
+    version = "14.1";
     psqlSchema = "14";
-    sha256 = "08m14zcrcvc2i0xl10p0wgzycsmfmk27gny40a8mwdx74s8xfapf";
+    sha256 = "sha256-TTwQHqeuOJgvBr3HN1i1Nyf7ZALs2TggBvpezHwspB8=";
     this = self.postgresql_14;
     thisAttr = "postgresql_14";
     inherit self;
diff --git a/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix b/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix
index 34654a3d04306..fb62bdd94eee7 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix
+++ b/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, postgresql, openssl, zlib, readline, libkrb5 }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, postgresql, openssl, zlib, readline, libkrb5 }:
 
 stdenv.mkDerivation rec {
   pname = "pg_auto_failover";
@@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-hGpcHV4ai9mxaJ/u/o9LNFWPGsW22W7ak2pbvAUgmwU=";
   };
 
+  patches = [
+    # Pull upstream fix for ncurses-6.3 support:
+    #  https://github.com/citusdata/pg_auto_failover/pull/830
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/citusdata/pg_auto_failover/commit/fc92546965437a6d5f82ed9a6bdc8204a3bca725.patch";
+      sha256 = "sha256-t4DC/d/2s/Mc44rpFxBMOWGhACG0s5wAWyeDD7Mefo8=";
+    })
+  ];
+
   buildInputs = [ postgresql openssl zlib readline libkrb5 ];
 
   installPhase = ''
diff --git a/pkgs/servers/sql/postgresql/ext/pg_partman.nix b/pkgs/servers/sql/postgresql/ext/pg_partman.nix
index d2e7dd37be157..9e4b3171dd382 100644
--- a/pkgs/servers/sql/postgresql/ext/pg_partman.nix
+++ b/pkgs/servers/sql/postgresql/ext/pg_partman.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "pg_partman";
-  version = "4.5.1";
+  version = "4.6.0";
 
   buildInputs = [ postgresql ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner  = "pgpartman";
     repo   = pname;
     rev    = "refs/tags/v${version}";
-    sha256 = "182yqvgcpgw99swn7w516f6d1bid2gnmf6dfsgmldx5viz0d6vi0";
+    sha256 = "sha256-DpK3D7PEZ1sO9bYvwwT9L8jtDmUGMbHtx2s9juzL6RQ=";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/sql/postgresql/ext/pgroonga.nix b/pkgs/servers/sql/postgresql/ext/pgroonga.nix
index 86c9e54526f78..c0d05fc1769fc 100644
--- a/pkgs/servers/sql/postgresql/ext/pgroonga.nix
+++ b/pkgs/servers/sql/postgresql/ext/pgroonga.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pgroonga";
-  version = "2.3.2";
+  version = "2.3.4";
 
   src = fetchurl {
     url = "https://packages.groonga.org/source/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "10rj35xxcfg10nvq3zqxm25hfb3hw58z4dda1b4hh8ibyz2489vy";
+    sha256 = "sha256-XE669KfHEyY5TghMUC0GcIqdPTsdAs04pA/t84k+i2E=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/servers/sql/postgresql/ext/pgrouting.nix b/pkgs/servers/sql/postgresql/ext/pgrouting.nix
index 36d44c82c9dc7..f75fbe7137a40 100644
--- a/pkgs/servers/sql/postgresql/ext/pgrouting.nix
+++ b/pkgs/servers/sql/postgresql/ext/pgrouting.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "pgrouting";
-  version = "3.2.1";
+  version = "3.3.0";
 
   nativeBuildInputs = [ cmake perl ];
   buildInputs = [ postgresql boost ];
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     owner  = "pgRouting";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "1zn3yyp4zz14yn2mmqwn7c4m65zfb2nj9zg4qj97ppsahs5xc6vw";
+    sha256 = "sha256-GWufuOsAYLIOy5MXYVNFWVeVdLntd5ZeUnSdEahlkak=";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/sql/postgresql/ext/pgtap.nix b/pkgs/servers/sql/postgresql/ext/pgtap.nix
index 396e743e70b46..7e59eb4e953ed 100644
--- a/pkgs/servers/sql/postgresql/ext/pgtap.nix
+++ b/pkgs/servers/sql/postgresql/ext/pgtap.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pgtap";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "theory";
     repo = "pgtap";
     rev = "v${version}";
-    sha256 = "09fvzsl8m18yzpvrz6cqvs1ffzs451iwmb2mw39yq69jgqby5kqy";
+    sha256 = "sha256-lb0PRffwo6J5a6Hqw1ggvn0cW7gPZ02OEcLPi9ineI8=";
   };
 
   nativeBuildInputs = [ postgresql perl perlPackages.TAPParserSourceHandlerpgTAP which ];
diff --git a/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix b/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
index 4de703ccded8f..eb04a473d2504 100644
--- a/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
+++ b/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "plpgsql_check";
-  version = "2.0.5";
+  version = "2.0.6";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1n5csi0lxghlrhyk1wz45a95ikzblkvc5r7pb7jqq3cpk110biy4";
+    sha256 = "sha256-M/kvfGhB2s8TvmpL7KihorVTOfwp7HmKka4IAgnIQ6M=";
   };
 
   buildInputs = [ postgresql ];
diff --git a/pkgs/servers/sql/postgresql/ext/plr.nix b/pkgs/servers/sql/postgresql/ext/plr.nix
index 4c05288204dd4..68faa58b2e832 100644
--- a/pkgs/servers/sql/postgresql/ext/plr.nix
+++ b/pkgs/servers/sql/postgresql/ext/plr.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "plr";
-  version = "8.4.4";
+  version = "8.4.5";
 
   src = fetchFromGitHub {
     owner = "postgres-plr";
     repo = "plr";
     rev = "REL${builtins.replaceStrings ["."] ["_"] version}";
-    sha256 = "15dygf8klx2a4kzpmc1qnch629gcaa43ba1p3cqk9r1db4ima24k";
+    sha256 = "sha256-G/V3I1JI6dWto/hK6lfOTBYEvbmkovvnvk2TwSQq4no=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/servers/sql/postgresql/ext/plv8.nix b/pkgs/servers/sql/postgresql/ext/plv8.nix
index a546c3a687f43..6f5411340e457 100644
--- a/pkgs/servers/sql/postgresql/ext/plv8.nix
+++ b/pkgs/servers/sql/postgresql/ext/plv8.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "plv8";
-  version = "2.3.15";
+  version = "3.0.0";
 
   nativeBuildInputs = [ perl ];
   buildInputs = [ v8 postgresql ];
@@ -11,22 +11,42 @@ stdenv.mkDerivation rec {
     owner = "plv8";
     repo = "plv8";
     rev = "v${version}";
-    sha256 = "1cv94n49gq2b377gqyq7pjjzw98czv4mwl3sx97y18c20zwp6rk3";
+    sha256 = "KJz8wnGcTXnVn6umpP+UquuJTtQrkBTJ33rB/JIH4kU=";
   };
 
   makefile = "Makefile.shared";
 
   buildFlags = [ "all" ];
 
+  makeFlags = [
+    # Nixpkgs build a v8 monolith instead of separate v8_libplatform.
+    "V8_OUTDIR=${v8}/lib"
+  ];
+
+  installFlags = [
+    # PGXS only supports installing to postgresql prefix so we need to redirect this
+    "DESTDIR=${placeholder "out"}"
+  ];
+
   preConfigure = ''
     patchShebangs ./generate_upgrade.sh
+    substituteInPlace generate_upgrade.sh \
+      --replace " 2.3.10)" " 2.3.10 2.3.11 2.3.12 2.3.13 2.3.14 2.3.15)"
   '';
 
-  installPhase = ''
-    install -D plv8*.so                                        -t $out/lib
-    install -D {plls,plcoffee,plv8}{--${version}.sql,.control} -t $out/share/postgresql/extension
+  postInstall = ''
+    # Move the redirected to proper directory.
+    # There appear to be no references to the install directories
+    # so changing them does not cause issues.
+    mv "$out/nix/store"/*/* "$out"
+    rmdir "$out/nix/store"/* "$out/nix/store" "$out/nix"
   '';
 
+  # Without this, PostgreSQL will crash at runtime.
+  # The flags are only included in Makefile, not Makefile.shared.
+  # https://github.com/plv8/plv8/pull/469
+  NIX_CFLAGS_COMPILE = "-DJSONB_DIRECT_CONVERSION -DV8_COMPRESS_POINTERS=1 -DV8_31BIT_SMIS_ON_64BIT_ARCH=1";
+
   meta = with lib; {
     description = "V8 Engine Javascript Procedural Language add-on for PostgreSQL";
     homepage = "https://plv8.github.io/";
diff --git a/pkgs/servers/sql/postgresql/ext/postgis.nix b/pkgs/servers/sql/postgresql/ext/postgis.nix
index 245ff62f7c03a..dbb800a276062 100644
--- a/pkgs/servers/sql/postgresql/ext/postgis.nix
+++ b/pkgs/servers/sql/postgresql/ext/postgis.nix
@@ -15,13 +15,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "postgis";
-  version = "3.1.4";
+  version = "3.2.0";
 
   outputs = [ "out" "doc" ];
 
   src = fetchurl {
     url = "https://download.osgeo.org/postgis/source/postgis-${version}.tar.gz";
-    sha256 = "15ip38p7df9d9l6l3xhn2x8marbz8dy5lk3jblpl4bjkpkl3z3nw";
+    sha256 = "sha256-ernhVMaUfAz/uPoS1wgGrdmqBg5itshqLiBvnUtQfP0=";
   };
 
   buildInputs = [ libxml2 postgresql geos proj gdal json_c protobufc ]
diff --git a/pkgs/servers/sql/postgresql/ext/timescaledb.nix b/pkgs/servers/sql/postgresql/ext/timescaledb.nix
index eb02b05e5dc4e..6513617ee2610 100644
--- a/pkgs/servers/sql/postgresql/ext/timescaledb.nix
+++ b/pkgs/servers/sql/postgresql/ext/timescaledb.nix
@@ -8,7 +8,7 @@
 
 stdenv.mkDerivation rec {
   pname = "timescaledb";
-  version = "2.5.0";
+  version = "2.5.1";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ postgresql openssl libkrb5 ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     repo   = "timescaledb";
     # some branches are named like tags which confuses git
     rev    = "refs/tags/${version}";
-    sha256 = "0j8fbhf69q0074c02ilzdrhwc1ciyw6dq48217xxv274df2lcxzd";
+    sha256 = "sha256-3G/foe4TlKEKP0Vi60oD7ZoxYdkNipyoOhGoF+GojZw=";
   };
 
   cmakeFlags = [ "-DSEND_TELEMETRY_DEFAULT=OFF" "-DREGRESS_CHECKS=OFF" "-DTAP_CHECKS=OFF" ]
diff --git a/pkgs/servers/sql/postgresql/packages.nix b/pkgs/servers/sql/postgresql/packages.nix
index 1986ed681997e..e751ae621f32d 100644
--- a/pkgs/servers/sql/postgresql/packages.nix
+++ b/pkgs/servers/sql/postgresql/packages.nix
@@ -26,11 +26,7 @@ self: super: {
 
     plr = super.callPackage ./ext/plr.nix { };
 
-    plv8 = super.callPackage ./ext/plv8.nix {
-        v8 = super.callPackage ../../../development/libraries/v8/plv8_6_x.nix {
-            python = self.python2;
-        };
-    };
+    plv8 = super.callPackage ./ext/plv8.nix { };
 
     pgjwt = super.callPackage ./ext/pgjwt.nix { };
 
diff --git a/pkgs/servers/tailscale/default.nix b/pkgs/servers/tailscale/default.nix
index 85f292711ef4e..77361f3c35e8d 100644
--- a/pkgs/servers/tailscale/default.nix
+++ b/pkgs/servers/tailscale/default.nix
@@ -2,20 +2,20 @@
 
 buildGoModule rec {
   pname = "tailscale";
-  version = "1.14.6";
+  version = "1.18.2";
 
   src = fetchFromGitHub {
     owner = "tailscale";
     repo = "tailscale";
     rev = "v${version}";
-    sha256 = "sha256-Mvt2j1AAkENT0krl2PbtzM7HXgs4miYXDchFm+8cspY=";
+    sha256 = "sha256-8leFG2gYXw+orN/2NfjTvgRqSZSdso7OHIgECEJrO9k=";
   };
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ];
 
   CGO_ENABLED = 0;
 
-  vendorSha256 = "sha256-v/jcNKcjE/c4DuxwfCy09xFTDk3yysP4tBmVW69FI4o=";
+  vendorSha256 = "sha256-ulgTwnuisnkQf0WLQhZ70MwuOpZuroh7ShxBGyv0d0k=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/tautulli/default.nix b/pkgs/servers/tautulli/default.nix
index 8011dc211b85e..96f8dca234fef 100644
--- a/pkgs/servers/tautulli/default.nix
+++ b/pkgs/servers/tautulli/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonApplication rec {
   pname = "Tautulli";
-  version = "2.7.6";
+  version = "2.8.0";
   format = "other";
 
   pythonPath = [ setuptools ];
@@ -12,7 +12,7 @@ buildPythonApplication rec {
     owner = "Tautulli";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1j57n8bi8qzzx1nw23rfr1g8yidg7p600pbbfv4b1dfiw8633jsl";
+    sha256 = "0y4ijjr0sxq72gy22i0q810h64m11vbrz6fk44fpcnj5yab6hv8i";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/teleport/default.nix b/pkgs/servers/teleport/default.nix
index c2711bcc613b0..2b8cdf37fcee5 100644
--- a/pkgs/servers/teleport/default.nix
+++ b/pkgs/servers/teleport/default.nix
@@ -1,28 +1,56 @@
-{ lib, buildGoModule, fetchFromGitHub, makeWrapper, xdg-utils }:
-let
-  webassets = fetchFromGitHub {
-    owner = "gravitational";
-    repo = "webassets";
-    rev = "07493a5e78677de448b0e35bd72bf1dc6498b5ea";
-    sha256 = "sha256-V1vGGC8Q257iQMhxCBEBkZntt0ckppCJMCEr2Nqxo/M=";
-  };
-in
-buildGoModule rec {
-  pname = "teleport";
-  version = "7.3.2";
+{ lib
+, buildGo117Module
+, rustPlatform
+, fetchFromGitHub
+, makeWrapper
+, protobuf
+, stdenv
+, xdg-utils
 
+, withRoleTester ? true
+}:
+let
   # This repo has a private submodule "e" which fetchgit cannot handle without failing.
   src = fetchFromGitHub {
     owner = "gravitational";
     repo = "teleport";
     rev = "v${version}";
-    sha256 = "sha256-ZigVfz4P5bVn+5qApmLGlNmzU52ncFjkSbwbPOKI4MA=";
+    sha256 = "sha256-02Wsj2V7RNjKlkgAqj7IqyRGCxml8pw5h0vflqcGAB8=";
+  };
+  version = "8.0.6";
+
+  roleTester = rustPlatform.buildRustPackage {
+    name = "teleport-roletester";
+    inherit version;
+
+    src = "${src}/lib/datalog";
+    cargoSha256 = "sha256-cpW7kel02t/fB2CvDvVqWlzgS3Vg2qLnemF/bW2Ii1A=";
+    sourceRoot = "datalog/roletester";
+
+    PROTOC = "${protobuf}/bin/protoc";
+    PROTOC_INCLUDE = "${protobuf}/include";
+
+    postInstall = ''
+      cp -r target $out
+    '';
   };
 
+  webassets = fetchFromGitHub {
+    owner = "gravitational";
+    repo = "webassets";
+    rev = "240464d54ac498281592eb0b30c871dc3c7ce09b";
+    sha256 = "sha256-8gt8x2fNh8mA1KCop5dEZmpBWBu7HsrTY5zVUlmKDgs=";
+  };
+in
+buildGo117Module rec {
+  pname = "teleport";
+
+  inherit src version;
   vendorSha256 = null;
 
   subPackages = [ "tool/tctl" "tool/teleport" "tool/tsh" ];
-  tags = [ "webassets_embed" ];
+  tags = [ "webassets_embed" ] ++
+    lib.optional withRoleTester "roletester";
 
   nativeBuildInputs = [ makeWrapper ];
 
@@ -41,8 +69,13 @@ buildGoModule rec {
     echo "making webassets"
     cp -r ${webassets}/* webassets/
     make lib/web/build/webassets
+
+    ${lib.optionalString withRoleTester
+      "cp -r ${roleTester}/target lib/datalog/roletester/."}
   '';
 
+  doCheck = !stdenv.isDarwin;
+
   preCheck = ''
     export HOME=$(mktemp -d)
   '';
@@ -63,7 +96,7 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
-    description = "A SSH CA management suite";
+    description = "Certificate authority and access plane for SSH, Kubernetes, web applications, and databases";
     homepage = "https://goteleport.com/";
     license = licenses.asl20;
     maintainers = with maintainers; [ sigma tomberek freezeboy ];
diff --git a/pkgs/servers/tmate-ssh-server/default.nix b/pkgs/servers/tmate-ssh-server/default.nix
index ea564e6791daa..472bf1f12b9a1 100644
--- a/pkgs/servers/tmate-ssh-server/default.nix
+++ b/pkgs/servers/tmate-ssh-server/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
     license     = licenses.mit;
     platforms   = platforms.unix;
     maintainers = with maintainers; [ ];
+    knownVulnerabilities = [ "CVE-2021-44513" "CVE-2021-44512" ];
   };
 }
 
diff --git a/pkgs/servers/traefik/default.nix b/pkgs/servers/traefik/default.nix
index fab7806bac538..962569d517e27 100644
--- a/pkgs/servers/traefik/default.nix
+++ b/pkgs/servers/traefik/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "traefik";
-  version = "2.5.3";
+  version = "2.5.6";
 
   src = fetchzip {
     url = "https://github.com/traefik/traefik/releases/download/v${version}/traefik-v${version}.src.tar.gz";
-    sha256 = "sha256-Bq7wuc127aC/GO5wsgNkwvZsRbxFnZk2fzTWTygl6Sw=";
+    sha256 = "sha256-HHJTfAigUH7C0VuKUeGypqFlQwVdy05Ki/aTxDsl+tg=";
     stripRoot = false;
   };
 
-  vendorSha256 = "sha256-NyIPT2NmJFB1wjNNteAEpTPYSYQZtEWJBOvG0YtxUGc=";
+  vendorSha256 = "sha256-DqjqJPyoFlCjIIaHYS5jrROQWDxZk+RGfccC2jYZ8LE=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/unifi/default.nix b/pkgs/servers/unifi/default.nix
index 5209927c506de..33f5044cb7640 100644
--- a/pkgs/servers/unifi/default.nix
+++ b/pkgs/servers/unifi/default.nix
@@ -1,10 +1,9 @@
-{ lib, stdenv, dpkg, fetchurl }:
+{ lib, stdenv, dpkg, fetchurl, zip, nixosTests }:
 
 let
-  generic = { version, sha256, suffix ? "" }:
-  stdenv.mkDerivation {
+  generic = { version, sha256, suffix ? "", ... } @ args:
+  stdenv.mkDerivation (args // {
     pname = "unifi-controller";
-    inherit version;
 
     src = fetchurl {
       url = "https://dl.ubnt.com/unifi/${version}${suffix}/unifi_sysvinit_all.deb";
@@ -29,6 +28,10 @@ let
       runHook postInstall
     '';
 
+    passthru.tests = {
+      unifi = nixosTests.unifi;
+    };
+
     meta = with lib; {
       homepage = "http://www.ubnt.com/";
       description = "Controller for Ubiquiti UniFi access points";
@@ -36,7 +39,7 @@ let
       platforms = platforms.unix;
       maintainers = with maintainers; [ erictapen globin patryk27 pennae ];
     };
-  };
+  });
 
 in rec {
   # see https://community.ui.com/releases / https://www.ui.com/download/unifi
@@ -49,10 +52,15 @@ in rec {
   unifi5 = generic {
     version = "5.14.23";
     sha256 = "1aar05yjm3z5a30x505w4kakbyz35i7mk7xyg0wm4ml6h94d84pv";
+
+    postInstall = ''
+      # Remove when log4j is updated to 2.12.2 or 2.16.0.
+      ${zip}/bin/zip -q -d $out/lib/log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
+    '';
   };
 
   unifi6 = generic {
-    version = "6.4.54";
-    sha256 = "05z0r47p6cl7yi7f9a40xrsr61ndm2904vway59q1acws5i5mm9g";
+    version = "6.5.55";
+    sha256 = "sha256-NUGRO+f6JzWvYPwiitZsgp+LQwnGSncnost03mgNVxA=";
   };
 }
diff --git a/pkgs/servers/unifiedpush-common-proxies/default.nix b/pkgs/servers/unifiedpush-common-proxies/default.nix
index 3488083d34c35..9498000c3f9f2 100644
--- a/pkgs/servers/unifiedpush-common-proxies/default.nix
+++ b/pkgs/servers/unifiedpush-common-proxies/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "unifiedpush-common-proxies";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "unifiedpush";
     repo = "common-proxies";
     rev = "v${version}";
-    sha256 = "sha256-1Nl36Ldb0/DrQEKgPBsCgJk7oRCIq2m9Vb8D8wnS1g0=";
+    sha256 = "sha256-V6LTEwdnVkxc2wm8anlYeYJpk/mMQEsKrq69H8okHBg=";
   };
 
-  vendorSha256 = "sha256-7A2ErjqmgberMabayWEc3w53+YierfetzmT8DzHwbpE=";
+  vendorSha256 = "sha256-s0uN6PzIaAHLvRb9T07Xvb6mMAuvKHQ4oFJtl5hsvY4=";
 
   meta = with lib; {
     description = "A set of rewrite proxies and gateways for UnifiedPush";
diff --git a/pkgs/servers/uwsgi/default.nix b/pkgs/servers/uwsgi/default.nix
index c6c65d58e3564..e8bfed1ab89bf 100644
--- a/pkgs/servers/uwsgi/default.nix
+++ b/pkgs/servers/uwsgi/default.nix
@@ -59,16 +59,17 @@ in
 
 stdenv.mkDerivation rec {
   pname = "uwsgi";
-  version = "2.0.19.1";
+  version = "2.0.20";
 
   src = fetchurl {
     url = "https://projects.unbit.it/downloads/${pname}-${version}.tar.gz";
-    sha256 = "0256v72b7zr6ds4srpaawk1px3bp0djdwm239w3wrxpw7dzk1gjn";
+    sha256 = "1yfz5h07rxzrqf1rdj5fzhk47idgglxj7kqr8zl8lgcpv1kriaw8";
   };
 
   patches = [
         ./no-ext-session-php_session.h-on-NixOS.patch
         ./additional-php-ldflags.patch
+        ./missing-arginfo-php8.patch # https://github.com/unbit/uwsgi/issues/2356
   ];
 
   nativeBuildInputs = [ python3 pkg-config ];
@@ -96,6 +97,9 @@ stdenv.mkDerivation rec {
       substituteInPlace "$f" \
         --replace pkg-config "$PKG_CONFIG"
     done
+    ${lib.optionalString (lib.versionAtLeast php.version "8") ''
+        sed -e "s/ + php_version//" -i plugins/php/uwsgiplugin.py
+    ''}
   '';
 
   configurePhase = ''
diff --git a/pkgs/servers/uwsgi/missing-arginfo-php8.patch b/pkgs/servers/uwsgi/missing-arginfo-php8.patch
new file mode 100644
index 0000000000000..98a924e402797
--- /dev/null
+++ b/pkgs/servers/uwsgi/missing-arginfo-php8.patch
@@ -0,0 +1,49 @@
+diff --git a/plugins/php/php_plugin.c b/plugins/php/php_plugin.c
+index ca0ef6c1..00c39b09 100644
+--- a/plugins/php/php_plugin.c
++++ b/plugins/php/php_plugin.c
+@@ -257,6 +257,9 @@ PHP_MINIT_FUNCTION(uwsgi_php_minit) {
+ 	return SUCCESS;
+ }
+ 
++ZEND_BEGIN_ARG_INFO_EX(arginfo_void, 0, 0, 0)
++ZEND_END_ARG_INFO()
++
+ PHP_FUNCTION(uwsgi_version) {
+ 	RETURN_STRING(UWSGI_VERSION);
+ }
+@@ -488,20 +491,20 @@ PHP_FUNCTION(uwsgi_signal) {
+ }
+ 
+ zend_function_entry uwsgi_php_functions[] = {
+-	PHP_FE(uwsgi_version,   NULL)
+-	PHP_FE(uwsgi_setprocname,   NULL)
+-	PHP_FE(uwsgi_worker_id,   NULL)
+-	PHP_FE(uwsgi_masterpid,   NULL)
+-	PHP_FE(uwsgi_signal,   NULL)
+-
+-	PHP_FE(uwsgi_rpc,   NULL)
+-
+-	PHP_FE(uwsgi_cache_get,   NULL)
+-	PHP_FE(uwsgi_cache_set,   NULL)
+-	PHP_FE(uwsgi_cache_update,   NULL)
+-	PHP_FE(uwsgi_cache_del,   NULL)
+-	PHP_FE(uwsgi_cache_clear,   NULL)
+-	PHP_FE(uwsgi_cache_exists,   NULL)
++	PHP_FE(uwsgi_version,   arginfo_void)
++	PHP_FE(uwsgi_setprocname,   arginfo_void)
++	PHP_FE(uwsgi_worker_id,   arginfo_void)
++	PHP_FE(uwsgi_masterpid,   arginfo_void)
++	PHP_FE(uwsgi_signal,   arginfo_void)
++
++	PHP_FE(uwsgi_rpc,   arginfo_void)
++
++	PHP_FE(uwsgi_cache_get,   arginfo_void)
++	PHP_FE(uwsgi_cache_set,   arginfo_void)
++	PHP_FE(uwsgi_cache_update,   arginfo_void)
++	PHP_FE(uwsgi_cache_del,   arginfo_void)
++	PHP_FE(uwsgi_cache_clear,   arginfo_void)
++	PHP_FE(uwsgi_cache_exists,   arginfo_void)
+ 	{ NULL, NULL, NULL},
+ };
+ 
diff --git a/pkgs/servers/varnish/default.nix b/pkgs/servers/varnish/default.nix
index e74b033568b56..5988c3a211e6e 100644
--- a/pkgs/servers/varnish/default.nix
+++ b/pkgs/servers/varnish/default.nix
@@ -47,12 +47,12 @@ let
 in
 {
   varnish60 = common {
-    version = "6.0.8";
-    sha256 = "1zk83hfxgjq1d0n4zx86q3f05y9f2zc6a1miz1zcvfa052q4bljx";
+    version = "6.0.9";
+    sha256 = "1g0pwyckc0xh6ag6wj082x9wn4q6p6krjgc16fkw1arl71c18wsh";
   };
   varnish70 = (common {
-    version = "7.0.0";
-    sha256 = "11z0pa618lh925ih67wmp1gqk7i46l486j4spjy71g1n3w5mqylc";
+    version = "7.0.1";
+    sha256 = "0q265fzarz5530g8lasvfpgks8z1kq1yh7rn88bn2qfly3pmpry4";
   }).overrideAttrs (oA: {
     patches = [
       (fetchpatch {
diff --git a/pkgs/servers/web-apps/bookstack/default.nix b/pkgs/servers/web-apps/bookstack/default.nix
index d8ec99a814154..a1d89f1f82591 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 = "21.10.3";
+  version = "21.12";
 
   src = fetchFromGitHub {
     owner = "bookstackapp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1lg5hwnnb2m8gq6yjfh7jqfnilx06cvdind2n43giy9bnhnpa0wl";
+    sha256 = "1bfwpvawa3pxpdsdbi3nxpjpdv2z1jmv7nk6cs9gs0210jlairsz";
   };
 
   meta = with lib; {
diff --git a/pkgs/servers/web-apps/bookstack/php-packages.nix b/pkgs/servers/web-apps/bookstack/php-packages.nix
index a17c84f5b5e5d..24220da935814 100644
--- a/pkgs/servers/web-apps/bookstack/php-packages.nix
+++ b/pkgs/servers/web-apps/bookstack/php-packages.nix
@@ -15,10 +15,10 @@ let
     "aws/aws-sdk-php" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "aws-aws-sdk-php-fda176884d2952cffc7e67209470bff49609339c";
+        name = "aws-aws-sdk-php-58fa9d8b522b0afa260299179ff950c783ff0ee1";
         src = fetchurl {
-          url = "https://api.github.com/repos/aws/aws-sdk-php/zipball/fda176884d2952cffc7e67209470bff49609339c";
-          sha256 = "07cjzhbw4qv7jvi7lly5zg15dcvpgd1py604pas68al7k1lg4343";
+          url = "https://api.github.com/repos/aws/aws-sdk-php/zipball/58fa9d8b522b0afa260299179ff950c783ff0ee1";
+          sha256 = "1d0v1q2c206jfdkci9d5b5sf94a0nbdh472n3hqlh11pb1lzp3fz";
         };
       };
     };
@@ -52,6 +52,26 @@ let
         };
       };
     };
+    "brick/math" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "brick-math-ca57d18f028f84f777b2168cd1911b0dee2343ae";
+        src = fetchurl {
+          url = "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae";
+          sha256 = "1nr1grrb9g5g3ihx94yk0amp8zx8prkkvg2934ygfc3rrv03cq9w";
+        };
+      };
+    };
+    "composer/package-versions-deprecated" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "composer-package-versions-deprecated-b174585d1fe49ceed21928a945138948cb394600";
+        src = fetchurl {
+          url = "https://api.github.com/repos/composer/package-versions-deprecated/zipball/b174585d1fe49ceed21928a945138948cb394600";
+          sha256 = "0m5hd3wfaka53n51b9aavyifwc2bdyr3jwywpkmpyrlmmn67c8ax";
+        };
+      };
+    };
     "dasprid/enum" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
@@ -75,10 +95,10 @@ let
     "doctrine/dbal" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "doctrine-dbal-2411a55a2a628e6d8dd598388ab13474802c7b6e";
+        name = "doctrine-dbal-5d54f63541d7bed1156cb5c9b79274ced61890e4";
         src = fetchurl {
-          url = "https://api.github.com/repos/doctrine/dbal/zipball/2411a55a2a628e6d8dd598388ab13474802c7b6e";
-          sha256 = "19vyv64ikbzk0pm9nn67a2kidhfvfcm9s5d91h0hk6kbq85f292v";
+          url = "https://api.github.com/repos/doctrine/dbal/zipball/5d54f63541d7bed1156cb5c9b79274ced61890e4";
+          sha256 = "1mqrijv0rrrcil2wcb5jvryfcl9phskbk4llj5gsf1hmrj0pfsgq";
         };
       };
     };
@@ -125,20 +145,20 @@ let
     "dompdf/dompdf" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "dompdf-dompdf-8768448244967a46d6e67b891d30878e0e15d25c";
+        name = "dompdf-dompdf-de4aad040737a89fae2129cdeb0f79c45513128d";
         src = fetchurl {
-          url = "https://api.github.com/repos/dompdf/dompdf/zipball/8768448244967a46d6e67b891d30878e0e15d25c";
-          sha256 = "0mgsry4mq5bx6b74h3akay1bp03rnsl8ppcjxjkfjlq4svq7m5yf";
+          url = "https://api.github.com/repos/dompdf/dompdf/zipball/de4aad040737a89fae2129cdeb0f79c45513128d";
+          sha256 = "1isjhijd3lxsl0k9lzgp7rzqcak3hb7w04cy4pn62wpxckhcc30i";
         };
       };
     };
     "dragonmantank/cron-expression" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "dragonmantank-cron-expression-65b2d8ee1f10915efb3b55597da3404f096acba2";
+        name = "dragonmantank-cron-expression-7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c";
         src = fetchurl {
-          url = "https://api.github.com/repos/dragonmantank/cron-expression/zipball/65b2d8ee1f10915efb3b55597da3404f096acba2";
-          sha256 = "07yqbhf6n4d818gvla60mgg23gichwiafd5ypd70w4b4dlbcxcpl";
+          url = "https://api.github.com/repos/dragonmantank/cron-expression/zipball/7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c";
+          sha256 = "0pl9zrj9254qbwr7vyiilzhmb7bq2ss631iwvlq1mqky2bwinj2l";
         };
       };
     };
@@ -152,33 +172,33 @@ let
         };
       };
     };
-    "fideloper/proxy" = {
+    "filp/whoops" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "fideloper-proxy-c073b2bd04d1c90e04dc1b787662b558dd65ade0";
+        name = "filp-whoops-f056f1fe935d9ed86e698905a957334029899895";
         src = fetchurl {
-          url = "https://api.github.com/repos/fideloper/TrustedProxy/zipball/c073b2bd04d1c90e04dc1b787662b558dd65ade0";
-          sha256 = "05jzgjj4fy5p1smqj41b5qxj42zn0mnczvsaacni4fmq174mz4gy";
+          url = "https://api.github.com/repos/filp/whoops/zipball/f056f1fe935d9ed86e698905a957334029899895";
+          sha256 = "1qqznxsrlvjlnxlnr786a39igvq3pslxrvm5ks1v09ni88w44g7g";
         };
       };
     };
-    "filp/whoops" = {
+    "graham-campbell/result-type" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "filp-whoops-f056f1fe935d9ed86e698905a957334029899895";
+        name = "graham-campbell-result-type-0690bde05318336c7221785f2a932467f98b64ca";
         src = fetchurl {
-          url = "https://api.github.com/repos/filp/whoops/zipball/f056f1fe935d9ed86e698905a957334029899895";
-          sha256 = "1qqznxsrlvjlnxlnr786a39igvq3pslxrvm5ks1v09ni88w44g7g";
+          url = "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/0690bde05318336c7221785f2a932467f98b64ca";
+          sha256 = "0a6kj3vxmhr1wh2kggmrl6y41hkg19jc0iq8qw095lf11mr4bd83";
         };
       };
     };
     "guzzlehttp/guzzle" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "guzzlehttp-guzzle-868b3571a039f0ebc11ac8f344f4080babe2cb94";
+        name = "guzzlehttp-guzzle-ee0a041b1760e6a53d2a39c8c34115adc2af2c79";
         src = fetchurl {
-          url = "https://api.github.com/repos/guzzle/guzzle/zipball/868b3571a039f0ebc11ac8f344f4080babe2cb94";
-          sha256 = "1n8kng76v4gb51z1qq7wx63pwlyiz3pa44shfla4mcxl2js0r6r0";
+          url = "https://api.github.com/repos/guzzle/guzzle/zipball/ee0a041b1760e6a53d2a39c8c34115adc2af2c79";
+          sha256 = "0wa63kw5fr5jhy2cv1g28qy9rsgwhn902447mzmgz17qjx72lzrb";
         };
       };
     };
@@ -225,20 +245,50 @@ let
     "laravel/framework" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "laravel-framework-10f6bfaec9efb68aa88d7196b8b1b162d83040ae";
+        name = "laravel-framework-83fe447ae964dc5f1f829d25fa2f6042d9099834";
+        src = fetchurl {
+          url = "https://api.github.com/repos/laravel/framework/zipball/83fe447ae964dc5f1f829d25fa2f6042d9099834";
+          sha256 = "0843j6am2fmnyvgydd9fkc7fnjbj63ii25mnrbi6xnzqniq2lrrz";
+        };
+      };
+    };
+    "laravel/serializable-closure" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "laravel-serializable-closure-25de3be1bca1b17d52ff0dc02b646c667ac7266c";
         src = fetchurl {
-          url = "https://api.github.com/repos/laravel/framework/zipball/10f6bfaec9efb68aa88d7196b8b1b162d83040ae";
-          sha256 = "1r04396755jixbhbw1zzmyz74ng8np0ysv7g7mgcvv01s6wxw66l";
+          url = "https://api.github.com/repos/laravel/serializable-closure/zipball/25de3be1bca1b17d52ff0dc02b646c667ac7266c";
+          sha256 = "1fk4zbvlc3qcw50pbs1qw5hgc8a3xgv4hn185ghq5kmmxm3q84p6";
         };
       };
     };
     "laravel/socialite" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "laravel-socialite-fd0f6a3dd963ca480b598649b54f92d81a43617f";
+        name = "laravel-socialite-b5c67f187ddcf15529ff7217fa735b132620dfac";
+        src = fetchurl {
+          url = "https://api.github.com/repos/laravel/socialite/zipball/b5c67f187ddcf15529ff7217fa735b132620dfac";
+          sha256 = "0sryq8a6sr7n1b1cajdnd4xkwhfygkb6a7s4b176vvh64lps3nn9";
+        };
+      };
+    };
+    "laravel/tinker" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "laravel-tinker-a9ddee4761ec8453c584e393b393caff189a3e42";
         src = fetchurl {
-          url = "https://api.github.com/repos/laravel/socialite/zipball/fd0f6a3dd963ca480b598649b54f92d81a43617f";
-          sha256 = "08x0pn4ib5nhh9jkkb5brf8yj0fq6v6gn1qg97hss3mvnhazk5wx";
+          url = "https://api.github.com/repos/laravel/tinker/zipball/a9ddee4761ec8453c584e393b393caff189a3e42";
+          sha256 = "1kzwwkxx1lzx6x85z29dd8a35jz3qw416p797s203vidayynn731";
+        };
+      };
+    };
+    "laravel/ui" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "laravel-ui-b3e804559bf3973ecca160a4ae1068e6c7c167c6";
+        src = fetchurl {
+          url = "https://api.github.com/repos/laravel/ui/zipball/b3e804559bf3973ecca160a4ae1068e6c7c167c6";
+          sha256 = "1mf6f7508b3943bsb75x6myh62ry6r5n2iqicdiw3kv5f87c1c5a";
         };
       };
     };
@@ -255,10 +305,10 @@ let
     "league/flysystem" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "league-flysystem-18634df356bfd4119fe3d6156bdb990c414c14ea";
+        name = "league-flysystem-094defdb4a7001845300334e7c1ee2335925ef99";
         src = fetchurl {
-          url = "https://api.github.com/repos/thephpleague/flysystem/zipball/18634df356bfd4119fe3d6156bdb990c414c14ea";
-          sha256 = "1cy0xmnl3ck7cb6ibl9jjw5pmbw15mww5q06vacgq5lnx8r5w700";
+          url = "https://api.github.com/repos/thephpleague/flysystem/zipball/094defdb4a7001845300334e7c1ee2335925ef99";
+          sha256 = "0dn71b1pwikbwz1cmmz9k1fc8k1fsmah3gy8sqxbz7czhqn5qiva";
         };
       };
     };
@@ -275,20 +325,20 @@ let
     "league/html-to-markdown" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "league-html-to-markdown-e5600a2c5ce7b7571b16732c7086940f56f7abec";
+        name = "league-html-to-markdown-4d0394e120dc14b0d5c52fd1755fd48656da2ec9";
         src = fetchurl {
-          url = "https://api.github.com/repos/thephpleague/html-to-markdown/zipball/e5600a2c5ce7b7571b16732c7086940f56f7abec";
-          sha256 = "1a46ki1lbhnc9gqddrka2hypw0h8zcd8dhi8gc1jf5bflhb1wmqk";
+          url = "https://api.github.com/repos/thephpleague/html-to-markdown/zipball/4d0394e120dc14b0d5c52fd1755fd48656da2ec9";
+          sha256 = "0my5k4cf5m3qb6bgq07dyq3347xm64sd1f83nr14ny3w31vb43cm";
         };
       };
     };
     "league/mime-type-detection" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "league-mime-type-detection-b38b25d7b372e9fddb00335400467b223349fd7e";
+        name = "league-mime-type-detection-aa70e813a6ad3d1558fc927863d47309b4c23e69";
         src = fetchurl {
-          url = "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/b38b25d7b372e9fddb00335400467b223349fd7e";
-          sha256 = "02ywmarr58z5w9pf5qvk6hyrnykdh6v7n5jdkgb4ykdn2plinmlz";
+          url = "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/aa70e813a6ad3d1558fc927863d47309b4c23e69";
+          sha256 = "0k2kccf1v0002bb083p1ncmm8fbyflnkjx45808sxlkrxggzqcy3";
         };
       };
     };
@@ -335,20 +385,20 @@ let
     "nesbot/carbon" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "nesbot-carbon-f4655858a784988f880c1b8c7feabbf02dfdf045";
+        name = "nesbot-carbon-8c2a18ce3e67c34efc1b29f64fe61304368259a2";
         src = fetchurl {
-          url = "https://api.github.com/repos/briannesbitt/Carbon/zipball/f4655858a784988f880c1b8c7feabbf02dfdf045";
-          sha256 = "18px9mynqabrhgss5nyhadncdcf7aq1mzbbyrxfqbvyv54zq4zjh";
+          url = "https://api.github.com/repos/briannesbitt/Carbon/zipball/8c2a18ce3e67c34efc1b29f64fe61304368259a2";
+          sha256 = "0ld6pm7sj7myqs1xa9c2bh9l0v2qcr7lcv590sy0mqn0fcx2gqr5";
         };
       };
     };
-    "nunomaduro/collision" = {
+    "nikic/php-parser" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "nunomaduro-collision-f7c45764dfe4ba5f2618d265a6f1f9c72732e01d";
+        name = "nikic-php-parser-210577fe3cf7badcc5814d99455df46564f3c077";
         src = fetchurl {
-          url = "https://api.github.com/repos/nunomaduro/collision/zipball/f7c45764dfe4ba5f2618d265a6f1f9c72732e01d";
-          sha256 = "1cazbjxl5rqw4cl783nrymhcvjhvwwwjswr5w0si1wfhmpvr349q";
+          url = "https://api.github.com/repos/nikic/PHP-Parser/zipball/210577fe3cf7badcc5814d99455df46564f3c077";
+          sha256 = "191ijb7bybqnl1jayx6bipqh91dc9acg9zsbh89fk4h1ff87b1qp";
         };
       };
     };
@@ -412,43 +462,23 @@ let
         };
       };
     };
-    "php-parallel-lint/php-console-color" = {
-      targetDir = "";
-      src = composerEnv.buildZipPackage {
-        name = "php-parallel-lint-php-console-color-b6af326b2088f1ad3b264696c9fd590ec395b49e";
-        src = fetchurl {
-          url = "https://api.github.com/repos/php-parallel-lint/PHP-Console-Color/zipball/b6af326b2088f1ad3b264696c9fd590ec395b49e";
-          sha256 = "030449mkpxs35y8dk336ls3bfdq3zjnxswnk5khlg45z5147cr3k";
-        };
-      };
-    };
-    "php-parallel-lint/php-console-highlighter" = {
-      targetDir = "";
-      src = composerEnv.buildZipPackage {
-        name = "php-parallel-lint-php-console-highlighter-21bf002f077b177f056d8cb455c5ed573adfdbb8";
-        src = fetchurl {
-          url = "https://api.github.com/repos/php-parallel-lint/PHP-Console-Highlighter/zipball/21bf002f077b177f056d8cb455c5ed573adfdbb8";
-          sha256 = "013phmp5n6hp6mvlpbqbrih0zd8h7xc152dpzxxf49b0jczxh8y4";
-        };
-      };
-    };
     "phpoption/phpoption" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "phpoption-phpoption-5455cb38aed4523f99977c4a12ef19da4bfe2a28";
+        name = "phpoption-phpoption-eab7a0df01fe2344d172bff4cd6dbd3f8b84ad15";
         src = fetchurl {
-          url = "https://api.github.com/repos/schmittjoh/php-option/zipball/5455cb38aed4523f99977c4a12ef19da4bfe2a28";
-          sha256 = "009q2afjkjl8psisr8jsw9k08qnkb0f4hgd6izrjmm06bd7bk9ah";
+          url = "https://api.github.com/repos/schmittjoh/php-option/zipball/eab7a0df01fe2344d172bff4cd6dbd3f8b84ad15";
+          sha256 = "1lk50y8jj2mzbwc2mxfm2xdasxf4axya72nv8wfc1vyz9y5ys3li";
         };
       };
     };
     "phpseclib/phpseclib" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "phpseclib-phpseclib-6e794226a35159eb06f355efe59a0075a16551dd";
+        name = "phpseclib-phpseclib-89bfb45bd8b1abc3b37e910d57f5dbd3174f40fb";
         src = fetchurl {
-          url = "https://api.github.com/repos/phpseclib/phpseclib/zipball/6e794226a35159eb06f355efe59a0075a16551dd";
-          sha256 = "1jjgzckgpr6myf4lcngsgmmqib5x2rv93yj7syg1xyawls4qj3yb";
+          url = "https://api.github.com/repos/phpseclib/phpseclib/zipball/89bfb45bd8b1abc3b37e910d57f5dbd3174f40fb";
+          sha256 = "1ahr00g5bpvgjw36ps32aadyvnrsar94p06kar4pxvls4cmixldl";
         };
       };
     };
@@ -472,6 +502,16 @@ let
         };
       };
     };
+    "psr/cache" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "psr-cache-d11b50ad223250cf17b86e38383413f5a6764bf8";
+        src = fetchurl {
+          url = "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8";
+          sha256 = "06i2k3dx3b4lgn9a4v1dlgv8l9wcl4kl7vzhh63lbji0q96hv8qz";
+        };
+      };
+    };
     "psr/container" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
@@ -482,6 +522,16 @@ let
         };
       };
     };
+    "psr/event-dispatcher" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "psr-event-dispatcher-dbefd12671e8a14ec7f180cab83036ed26714bb0";
+        src = fetchurl {
+          url = "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0";
+          sha256 = "05nicsd9lwl467bsv4sn44fjnnvqvzj1xqw2mmz9bac9zm66fsjd";
+        };
+      };
+    };
     "psr/http-client" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
@@ -532,6 +582,16 @@ let
         };
       };
     };
+    "psy/psysh" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "psy-psysh-a0d9981aa07ecfcbea28e4bfa868031cca121e7d";
+        src = fetchurl {
+          url = "https://api.github.com/repos/bobthecow/psysh/zipball/a0d9981aa07ecfcbea28e4bfa868031cca121e7d";
+          sha256 = "1gsmnqshrc97phlinhiina9465lw0ir3xcfl4lbn4f9lm7nxzzs2";
+        };
+      };
+    };
     "ralouphie/getallheaders" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
@@ -542,13 +602,23 @@ let
         };
       };
     };
+    "ramsey/collection" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "ramsey-collection-cccc74ee5e328031b15640b51056ee8d3bb66c0a";
+        src = fetchurl {
+          url = "https://api.github.com/repos/ramsey/collection/zipball/cccc74ee5e328031b15640b51056ee8d3bb66c0a";
+          sha256 = "1i2ga25aj80cci3di58qm17l588lzgank8wqhdbq0dcb3cg6cgr6";
+        };
+      };
+    };
     "ramsey/uuid" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "ramsey-uuid-ffa80ab953edd85d5b6c004f96181a538aad35a3";
+        name = "ramsey-uuid-fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df";
         src = fetchurl {
-          url = "https://api.github.com/repos/ramsey/uuid/zipball/ffa80ab953edd85d5b6c004f96181a538aad35a3";
-          sha256 = "043g1nwpbvqrvq6ri2517254d72538h5jfzv9miafnws4ajwfpzg";
+          url = "https://api.github.com/repos/ramsey/uuid/zipball/fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df";
+          sha256 = "1fhjsyidsj95x5dd42z3hi5qhzii0hhhxa7xvc5jj7spqjdbqln4";
         };
       };
     };
@@ -565,10 +635,10 @@ let
     "sabberworm/php-css-parser" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "sabberworm-php-css-parser-d217848e1396ef962fb1997cf3e2421acba7f796";
+        name = "sabberworm-php-css-parser-e41d2140031d533348b2192a83f02d8dd8a71d30";
         src = fetchurl {
-          url = "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/d217848e1396ef962fb1997cf3e2421acba7f796";
-          sha256 = "17jkly8k02p54qa004spikakxis8syjw3vhwgrsi9g1cb4wsg3g9";
+          url = "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/e41d2140031d533348b2192a83f02d8dd8a71d30";
+          sha256 = "0slqh0ra9cwk1pm4q7bqhndynir0yxypzrxb2vrfzfkmnh0rm02c";
         };
       };
     };
@@ -665,120 +735,100 @@ let
     "symfony/console" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-console-8dbd23ef7a8884051482183ddee8d9061b5feed0";
+        name = "symfony-console-9130e1a0fc93cb0faadca4ee917171bd2ca9e5f4";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/console/zipball/8dbd23ef7a8884051482183ddee8d9061b5feed0";
-          sha256 = "1p03ls8djpyhplf1irbg5ym3rjqviknwvg1mz9v6kdvnr694vzxn";
+          url = "https://api.github.com/repos/symfony/console/zipball/9130e1a0fc93cb0faadca4ee917171bd2ca9e5f4";
+          sha256 = "19b1457cnn8ijbwd4mha6nxhvcsd4kh7dn72klixykj2kvqh0hvg";
         };
       };
     };
     "symfony/css-selector" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-css-selector-7fb120adc7f600a59027775b224c13a33530dd90";
-        src = fetchurl {
-          url = "https://api.github.com/repos/symfony/css-selector/zipball/7fb120adc7f600a59027775b224c13a33530dd90";
-          sha256 = "03jblgg300imj7s731ynxm579a6qj87lhd4lnhahbf4m7y65vj7w";
-        };
-      };
-    };
-    "symfony/debug" = {
-      targetDir = "";
-      src = composerEnv.buildZipPackage {
-        name = "symfony-debug-43ede438d4cb52cd589ae5dc070e9323866ba8e0";
+        name = "symfony-css-selector-44b933f98bb4b5220d10bed9ce5662f8c2d13dcc";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/debug/zipball/43ede438d4cb52cd589ae5dc070e9323866ba8e0";
-          sha256 = "1min1v940rrv83w4fan9ypw4zj62wmi5nwn76pq618pdi8z00kpn";
+          url = "https://api.github.com/repos/symfony/css-selector/zipball/44b933f98bb4b5220d10bed9ce5662f8c2d13dcc";
+          sha256 = "0h05a4jfv64vgbw40r7f0ndz617hmml5kn7wck38fb31mmrprbak";
         };
       };
     };
     "symfony/deprecation-contracts" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-deprecation-contracts-5f38c8804a9e97d23e0c8d63341088cd8a22d627";
+        name = "symfony-deprecation-contracts-6f981ee24cf69ee7ce9736146d1c57c2780598a8";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627";
-          sha256 = "11k6a8v9b6p0j788fgykq6s55baba29lg37fwvmn4igxxkfwmbp3";
+          url = "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8";
+          sha256 = "05jws1g4kcs297bwf5d72z47m2263i2jqpivi3yv8kf50kdjjzba";
         };
       };
     };
     "symfony/error-handler" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-error-handler-51f98f7aa99f00f3b1da6bafe934e67ae6ba6dc5";
+        name = "symfony-error-handler-1e3cb3565af49cd5f93e5787500134500a29f0d9";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/error-handler/zipball/51f98f7aa99f00f3b1da6bafe934e67ae6ba6dc5";
-          sha256 = "1qy8j16crb271pz6frjxyy2b41f1ap8w2mwb2n5zr3gmg0iqm487";
+          url = "https://api.github.com/repos/symfony/error-handler/zipball/1e3cb3565af49cd5f93e5787500134500a29f0d9";
+          sha256 = "1qqgn6ksg7bimcvf5f821zmfhp9zd5x9c9bibvg3qzfzd22zmk11";
         };
       };
     };
     "symfony/event-dispatcher" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-event-dispatcher-2fe81680070043c4c80e7cedceb797e34f377bac";
+        name = "symfony-event-dispatcher-27d39ae126352b9fa3be5e196ccf4617897be3eb";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/event-dispatcher/zipball/2fe81680070043c4c80e7cedceb797e34f377bac";
-          sha256 = "0qf59l1a1h25hl6bp1wwfl5s825f8ybw2jiwhalw7gfnrx8x68fb";
+          url = "https://api.github.com/repos/symfony/event-dispatcher/zipball/27d39ae126352b9fa3be5e196ccf4617897be3eb";
+          sha256 = "01gl3av34p4jk71xjw6bjfsycb0fh02ll1bn3h3jdknzgkg2lsg4";
         };
       };
     };
     "symfony/event-dispatcher-contracts" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-event-dispatcher-contracts-84e23fdcd2517bf37aecbd16967e83f0caee25a7";
+        name = "symfony-event-dispatcher-contracts-66bea3b09be61613cd3b4043a65a8ec48cfa6d2a";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/84e23fdcd2517bf37aecbd16967e83f0caee25a7";
-          sha256 = "1pcfrlc0rg8vdnp23y3y1p5qzng5nxf5i2c36g9x9f480xrnc1fw";
+          url = "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/66bea3b09be61613cd3b4043a65a8ec48cfa6d2a";
+          sha256 = "03bx5j7xh5bv1v17nlaw9wnbad66bzwp5w7npg8w2b01my49phfy";
         };
       };
     };
     "symfony/finder" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-finder-70362f1e112280d75b30087c7598b837c1b468b6";
+        name = "symfony-finder-d2f29dac98e96a98be467627bd49c2efb1bc2590";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/finder/zipball/70362f1e112280d75b30087c7598b837c1b468b6";
-          sha256 = "0f75c5mjig5ypigb4s1av3w67xizx6pl15wrqbyxa39a9qq58x6v";
-        };
-      };
-    };
-    "symfony/http-client-contracts" = {
-      targetDir = "";
-      src = composerEnv.buildZipPackage {
-        name = "symfony-http-client-contracts-7e82f6084d7cae521a75ef2cb5c9457bbda785f4";
-        src = fetchurl {
-          url = "https://api.github.com/repos/symfony/http-client-contracts/zipball/7e82f6084d7cae521a75ef2cb5c9457bbda785f4";
-          sha256 = "04mszmb94y0xjs0cwqxzhpf65kfqhhqznldifbxvrrlxb9nn23qc";
+          url = "https://api.github.com/repos/symfony/finder/zipball/d2f29dac98e96a98be467627bd49c2efb1bc2590";
+          sha256 = "10ham5wrdsmxp8mrzwmxc87dw33fpacrbcaynm5w4v0z1sbvwkpb";
         };
       };
     };
     "symfony/http-foundation" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-http-foundation-b9a91102f548e0111f4996e8c622fb1d1d479850";
+        name = "symfony-http-foundation-5dad3780023a707f4c24beac7d57aead85c1ce3c";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/http-foundation/zipball/b9a91102f548e0111f4996e8c622fb1d1d479850";
-          sha256 = "0f6hxzrcijpjiwfjlw0bgn17a6d7bdfr7bc8nlmhfig7v945rbwq";
+          url = "https://api.github.com/repos/symfony/http-foundation/zipball/5dad3780023a707f4c24beac7d57aead85c1ce3c";
+          sha256 = "0szcq1x9zil11axgjlhcnw3vw48md5k02k3h01sxd8ywlzkjyaz0";
         };
       };
     };
     "symfony/http-kernel" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-http-kernel-6f1fcca1154f782796549f4f4e5090bae9525c0e";
+        name = "symfony-http-kernel-2bdace75c9d6a6eec7e318801b7dc87a72375052";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/http-kernel/zipball/6f1fcca1154f782796549f4f4e5090bae9525c0e";
-          sha256 = "1i9bd9kp1yz55922hf95chdnzxbaavx87hxjzy6dysg81sjw89fw";
+          url = "https://api.github.com/repos/symfony/http-kernel/zipball/2bdace75c9d6a6eec7e318801b7dc87a72375052";
+          sha256 = "1gwpzi97ih9gzddlw8ihyndkyi137r3hyycyb55l01yfq1wl7la1";
         };
       };
     };
     "symfony/mime" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-mime-a756033d0a7e53db389618653ae991eba5a19a11";
+        name = "symfony-mime-d4365000217b67c01acff407573906ff91bcfb34";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/mime/zipball/a756033d0a7e53db389618653ae991eba5a19a11";
-          sha256 = "06awwbkbg6fkkbls4rk4qkdzrigik3zm68cwa8bazsy7izqrh3nj";
+          url = "https://api.github.com/repos/symfony/mime/zipball/d4365000217b67c01acff407573906ff91bcfb34";
+          sha256 = "12q2b5xbc0pyhfn0wyfnjf5sklnsrkafy2yg7d4fb3d8vliv4zzf";
         };
       };
     };
@@ -802,6 +852,16 @@ let
         };
       };
     };
+    "symfony/polyfill-intl-grapheme" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-polyfill-intl-grapheme-16880ba9c5ebe3642d1995ab866db29270b36535";
+        src = fetchurl {
+          url = "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/16880ba9c5ebe3642d1995ab866db29270b36535";
+          sha256 = "0pb57756kvdxksqy2nndf8q7c91p2dzhysa52x2rbhba869760fv";
+        };
+      };
+    };
     "symfony/polyfill-intl-idn" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
@@ -862,83 +922,123 @@ let
         };
       };
     };
+    "symfony/polyfill-php81" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-polyfill-php81-e66119f3de95efc359483f810c4c3e6436279436";
+        src = fetchurl {
+          url = "https://api.github.com/repos/symfony/polyfill-php81/zipball/e66119f3de95efc359483f810c4c3e6436279436";
+          sha256 = "0hg340da7m0yipj2bj5hxhd3mqidz767ivg7w85r8vwz3mr9k1p3";
+        };
+      };
+    };
     "symfony/process" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-process-13d3161ef63a8ec21eeccaaf9a4d7f784a87a97d";
+        name = "symfony-process-5be20b3830f726e019162b26223110c8f47cf274";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/process/zipball/13d3161ef63a8ec21eeccaaf9a4d7f784a87a97d";
-          sha256 = "1h41y2k100fmrjz90m0vafpfgg2da6byy9m6vf1j9q41bhv6zccl";
+          url = "https://api.github.com/repos/symfony/process/zipball/5be20b3830f726e019162b26223110c8f47cf274";
+          sha256 = "03pwf12al7mg2sz3waiqxnqliyzszwiyvzb1f51c1hl57zbj9zz4";
         };
       };
     };
     "symfony/routing" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-routing-9ddf033927ad9f30ba2bfd167a7b342cafa13e8e";
+        name = "symfony-routing-9eeae93c32ca86746e5d38f3679e9569981038b1";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/routing/zipball/9ddf033927ad9f30ba2bfd167a7b342cafa13e8e";
-          sha256 = "1l3b5z0kn7f9q0whrm2wnxv0l038w3la75bf95pbs74szlnibfhz";
+          url = "https://api.github.com/repos/symfony/routing/zipball/9eeae93c32ca86746e5d38f3679e9569981038b1";
+          sha256 = "193vj08r1v3ghvid6jggqy62ip3n56mbwzpai3ldjhm8v8qdc9bs";
         };
       };
     };
     "symfony/service-contracts" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-service-contracts-f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb";
+        name = "symfony-service-contracts-1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/service-contracts/zipball/f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb";
-          sha256 = "1i573rmajc33a9nrgwgc4k3svg29yp9xv17gp133rd1i705hwv1y";
+          url = "https://api.github.com/repos/symfony/service-contracts/zipball/1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc";
+          sha256 = "0c1vq6jv2jc37i9m1ndpbv7g75blgvf1s44vk65nb1jdk3hrbrd1";
+        };
+      };
+    };
+    "symfony/string" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "symfony-string-9ffaaba53c61ba75a3c7a3a779051d1e9ec4fd2d";
+        src = fetchurl {
+          url = "https://api.github.com/repos/symfony/string/zipball/9ffaaba53c61ba75a3c7a3a779051d1e9ec4fd2d";
+          sha256 = "1ml6zra6bynqgi0rqfkz65lgmp0wiay93simx7882wxrcxfkljqf";
         };
       };
     };
     "symfony/translation" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-translation-db0ba1e85280d8ff11e38d53c70f8814d4d740f5";
+        name = "symfony-translation-8c82cd35ed861236138d5ae1c78c0c7ebcd62107";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/translation/zipball/db0ba1e85280d8ff11e38d53c70f8814d4d740f5";
-          sha256 = "08qxma91sffj8vqzb8dshwsxqf80y9kym3bsxx3gz05ksi01hk1d";
+          url = "https://api.github.com/repos/symfony/translation/zipball/8c82cd35ed861236138d5ae1c78c0c7ebcd62107";
+          sha256 = "0yh933f222v98bmvni0rxmvhqlhb1pa6ncwrvf06gly36sl6zkij";
         };
       };
     };
     "symfony/translation-contracts" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-translation-contracts-95c812666f3e91db75385749fe219c5e494c7f95";
+        name = "symfony-translation-contracts-d28150f0f44ce854e942b671fc2620a98aae1b1e";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/translation-contracts/zipball/95c812666f3e91db75385749fe219c5e494c7f95";
-          sha256 = "073l1pbmwbkaviwwjq9ypb1w7dk366nn2vn1vancbal0zqk0zx7b";
+          url = "https://api.github.com/repos/symfony/translation-contracts/zipball/d28150f0f44ce854e942b671fc2620a98aae1b1e";
+          sha256 = "0gwqxhrzb9dzsqvqr9lc3whzl8wwlfhwskr0wdwqri4pq5mspb2w";
         };
       };
     };
     "symfony/var-dumper" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "symfony-var-dumper-50286e2b7189bfb4f419c0731e86632cddf7c5ee";
+        name = "symfony-var-dumper-2366ac8d8abe0c077844613c1a4f0c0a9f522dcc";
         src = fetchurl {
-          url = "https://api.github.com/repos/symfony/var-dumper/zipball/50286e2b7189bfb4f419c0731e86632cddf7c5ee";
-          sha256 = "05yb04dvb5higlbhgdl2hv4wnnmxi6l53xvls5v56wj21ddsk6vf";
+          url = "https://api.github.com/repos/symfony/var-dumper/zipball/2366ac8d8abe0c077844613c1a4f0c0a9f522dcc";
+          sha256 = "0ii4p4rkvrshvdix855p0jwb1snll275286swy95l59m6i76wzy1";
         };
       };
     };
     "tijsverkoyen/css-to-inline-styles" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "tijsverkoyen-css-to-inline-styles-b43b05cf43c1b6d849478965062b6ef73e223bb5";
+        name = "tijsverkoyen-css-to-inline-styles-da444caae6aca7a19c0c140f68c6182e337d5b1c";
         src = fetchurl {
-          url = "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/b43b05cf43c1b6d849478965062b6ef73e223bb5";
-          sha256 = "0lc6jviz8faqxxs453dbqvfdmm6l2iczxla22v2r6xhakl58pf3w";
+          url = "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/da444caae6aca7a19c0c140f68c6182e337d5b1c";
+          sha256 = "13lzhf1kswg626b8zd23z4pa7sg679si368wcg6pklqvijnn0any";
         };
       };
     };
     "vlucas/phpdotenv" = {
       targetDir = "";
       src = composerEnv.buildZipPackage {
-        name = "vlucas-phpdotenv-a1bf4c9853d90ade427b4efe35355fc41b3d6988";
+        name = "vlucas-phpdotenv-264dce589e7ce37a7ba99cb901eed8249fbec92f";
+        src = fetchurl {
+          url = "https://api.github.com/repos/vlucas/phpdotenv/zipball/264dce589e7ce37a7ba99cb901eed8249fbec92f";
+          sha256 = "0z2q376k3rww8qb9jdywm3fj386pqmcx7rg6msd3zdrjxfbqcqnl";
+        };
+      };
+    };
+    "voku/portable-ascii" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "voku-portable-ascii-80953678b19901e5165c56752d087fc11526017c";
+        src = fetchurl {
+          url = "https://api.github.com/repos/voku/portable-ascii/zipball/80953678b19901e5165c56752d087fc11526017c";
+          sha256 = "112sz1jl55l3qm3041ijyzxy7qbv0sa6535hx6sp7nk2c76wjq0d";
+        };
+      };
+    };
+    "webmozart/assert" = {
+      targetDir = "";
+      src = composerEnv.buildZipPackage {
+        name = "webmozart-assert-6964c76c7804814a842473e0c8fd15bab0f18e25";
         src = fetchurl {
-          url = "https://api.github.com/repos/vlucas/phpdotenv/zipball/a1bf4c9853d90ade427b4efe35355fc41b3d6988";
-          sha256 = "04cks58khh2rx1ni5p1v8i37k4hy6zwkazlas0jqlrxhznmd50wi";
+          url = "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25";
+          sha256 = "17xqhb2wkwr7cgbl4xdjf7g1vkal17y79rpp6xjpf1xgl5vypc64";
         };
       };
     };
diff --git a/pkgs/servers/web-apps/discourse/auto_generated_path.patch b/pkgs/servers/web-apps/discourse/auto_generated_path.patch
index 9dcb1cb5595e9..e63d4a283a74d 100644
--- a/pkgs/servers/web-apps/discourse/auto_generated_path.patch
+++ b/pkgs/servers/web-apps/discourse/auto_generated_path.patch
@@ -1,8 +1,8 @@
 diff --git a/lib/plugin/instance.rb b/lib/plugin/instance.rb
-index 380a63e987..b2ce7fa982 100644
+index e59a6fbc05..c773a1356e 100644
 --- a/lib/plugin/instance.rb
 +++ b/lib/plugin/instance.rb
-@@ -403,7 +403,7 @@ class Plugin::Instance
+@@ -447,7 +447,7 @@ class Plugin::Instance
    end
  
    def auto_generated_path
diff --git a/pkgs/servers/web-apps/discourse/default.nix b/pkgs/servers/web-apps/discourse/default.nix
index 9206d39a3466d..0d457debc1477 100644
--- a/pkgs/servers/web-apps/discourse/default.nix
+++ b/pkgs/servers/web-apps/discourse/default.nix
@@ -1,22 +1,22 @@
 { stdenv, pkgs, makeWrapper, runCommand, lib, writeShellScript
 , fetchFromGitHub, bundlerEnv, callPackage
 
-, ruby, replace, gzip, gnutar, git, cacert, util-linux, gawk
+, ruby, replace, gzip, gnutar, git, cacert, util-linux, gawk, nettools
 , imagemagick, optipng, pngquant, libjpeg, jpegoptim, gifsicle, jhead
-, libpsl, redis, postgresql, which, brotli, procps, rsync
-, nodePackages, v8
+, libpsl, redis, postgresql, which, brotli, procps, rsync, icu
+, nodePackages, nodejs-16_x
 
 , plugins ? []
 }@args:
 
 let
-  version = "2.7.9";
+  version = "2.8.0.beta10";
 
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse";
     rev = "v${version}";
-    sha256 = "sha256-SOERjFbG4l/tUfOl51XEW0nVbza3L4adjiPhz4Hj0YU=";
+    sha256 = "sha256-mlTOsHR8p0mTdhZHBESyDAa1XtMJ4uIht0VUcGD6Ses=";
   };
 
   runtimeDeps = [
@@ -33,6 +33,7 @@ let
     procps       # For ps and kill
     util-linux   # For renice
     gawk
+    nettools     # For hostname
 
     # Image optimization
     imagemagick
@@ -110,16 +111,21 @@ let
         gems = import ./rubyEnv/gemset.nix;
       in
         gems // {
+          mini_racer = gems.mini_racer // {
+            buildInputs = [ icu ];
+            dontBuild = false;
+            NIX_LDFLAGS = "-licui18n";
+          };
           libv8-node =
             let
               noopScript = writeShellScript "noop" "exit 0";
               linkFiles = writeShellScript "link-files" ''
                 cd ../..
 
-                mkdir -p vendor/v8/out.gn/libv8/obj/
-                ln -s "${v8}/lib/libv8.a" vendor/v8/out.gn/libv8/obj/libv8_monolith.a
+                mkdir -p vendor/v8/${stdenv.hostPlatform.system}/libv8/obj/
+                ln -s "${nodejs-16_x.libv8}/lib/libv8.a" vendor/v8/${stdenv.hostPlatform.system}/libv8/obj/libv8_monolith.a
 
-                ln -s ${v8}/include vendor/v8/include
+                ln -s ${nodejs-16_x.libv8}/include vendor/v8/include
 
                 mkdir -p ext/libv8-node
                 echo '--- !ruby/object:Libv8::Node::Location::Vendor {}' >ext/libv8-node/.location.yml
@@ -155,13 +161,9 @@ let
     pname = "discourse-assets";
     inherit version src;
 
-    nativeBuildInputs = [
-      rubyEnv.wrappedRuby
+    nativeBuildInputs = runtimeDeps ++ [
       postgresql
       redis
-      which
-      brotli
-      procps
       nodePackages.uglify-js
       nodePackages.terser
     ];
@@ -255,10 +257,6 @@ let
       # one constructed by bundlerEnv
       ./plugin_gem_api_version.patch
 
-      # Use mv instead of rename, since rename doesn't work across
-      # device boundaries
-      ./use_mv_instead_of_rename.patch
-
       # Change the path to the auto generated plugin assets, which
       # defaults to the plugin's directory and isn't writable at the
       # time of asset generation
@@ -266,11 +264,6 @@ let
 
       # Make sure the notification email setting applies
       ./notification_email.patch
-
-      # Change the path to the public directory reported by Discourse
-      # to its real path instead of the symlink in the store, since
-      # the store path won't be matched by any nginx rules
-      ./public_dir_path.patch
     ];
 
     postPatch = ''
@@ -320,7 +313,11 @@ let
       enabledPlugins = plugins;
       plugins = callPackage ./plugins/all-plugins.nix { inherit mkDiscoursePlugin; };
       ruby = rubyEnv.wrappedRuby;
-      tests = import ../../../../nixos/tests/discourse.nix { package = pkgs.discourse.override args; };
+      tests = import ../../../../nixos/tests/discourse.nix {
+        inherit (stdenv) system;
+        inherit pkgs;
+        package = pkgs.discourse.override args;
+      };
     };
   };
 in discourse
diff --git a/pkgs/servers/web-apps/discourse/plugins/README b/pkgs/servers/web-apps/discourse/plugins/README
new file mode 100644
index 0000000000000..e0a88211dae89
--- /dev/null
+++ b/pkgs/servers/web-apps/discourse/plugins/README
@@ -0,0 +1,4 @@
+Run the nixpkgs/pkgs/servers/web-apps/discourse/update.py script to
+update plugins! See the Plugins section of the Discourse chapter in
+the NixOS manual (https://nixos.org/manual/nixos/unstable/index.html#module-services-discourse)
+for more info.
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
index a514425c40311..090bffd966050 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-assign/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-assign";
-    rev = "5124ba0f67e26a075f0a0fc8993273f1211d1c28";
-    sha256 = "1zd2irp5siza0vd5rlwzmjfvcdfw785988jc526xc741flazk1lr";
+    rev = "920503f5fc2cbec1b3ba4d431cffda2281e12509";
+    sha256 = "sha256-qMUlJwETu99Qmbh4sn/1Vn7Xgaj3Jhi+/E8ecIbnVH8=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-docs";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
index d31b4afe51912..218927821f4ee 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/Gemfile.lock
@@ -1,21 +1,19 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (6.1.4.1)
+    activesupport (7.0.0)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
       tzinfo (~> 2.0)
-      zeitwerk (~> 2.3)
     concurrent-ruby (1.1.9)
-    i18n (1.8.10)
+    i18n (1.8.11)
       concurrent-ruby (~> 1.0)
-    minitest (5.14.4)
+    minitest (5.15.0)
     rrule (0.4.2)
       activesupport (>= 4.1)
     tzinfo (2.0.4)
       concurrent-ruby (~> 1.0)
-    zeitwerk (2.4.2)
 
 PLATFORMS
   ruby
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
index a437f293fa6fe..4e9860acdc56c 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-calendar";
-    rev = "2f76cdd3064735d484be1df77f43100aca21aea6";
-    sha256 = "1skpc8p5br1jkii1rksha1q95ias6xxyvi5bnli3q41w7fz1h5j2";
+    rev = "9c5516ff039225be04b1302c5c67837ce64fba9c";
+    sha256 = "sha256-tfQWhkQvHrIUl0+tIv8X65MvoUhUnKD7KHwQbBm3p7U=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-calendar";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix
index 4f1e4c100c0bd..cd8b76c1bfb54 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-calendar/gemset.nix
@@ -1,14 +1,14 @@
 {
   activesupport = {
-    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19gx1jcq46x9d1pi1w8xq0bgvvfw239y4lalr8asm291gj3q3ds4";
+      sha256 = "04bsr3420wb8y5pagg3s0rkx44fix47wrjvfby2d205l9bq6azyk";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "7.0.0";
   };
   concurrent-ruby = {
     groups = ["default"];
@@ -26,20 +26,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
+      sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
       type = "gem";
     };
-    version = "1.8.10";
+    version = "1.8.11";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
+      sha256 = "06xf558gid4w8lwx13jwfdafsch9maz8m0g85wnfymqj63x5nbbd";
       type = "gem";
     };
-    version = "5.14.4";
+    version = "5.15.0";
   };
   rrule = {
     dependencies = ["activesupport"];
@@ -63,14 +63,4 @@
     };
     version = "2.0.4";
   };
-  zeitwerk = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
-      type = "gem";
-    };
-    version = "2.4.2";
-  };
 }
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-canned-replies/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-canned-replies/default.nix
index 7ec87636d1c0e..6bf41b11ec923 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-canned-replies/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-canned-replies/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-canned-replies";
-    rev = "1bb77ebbe0577f257bc16783dc8b7bbf2d915092";
-    sha256 = "0qvx8k9jsxjllqsqpf4k0j4niv1k2sggy6ak067wigs8ha3dkcr0";
+    rev = "dbbb8740287e44b5e9f0d8c968e3d237154e1f3c";
+    sha256 = "sha256-o4yZaXiQpt7Bb29kVKJOiIdNgcSEOnSiFAIhZtiX6ys=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-canned-replies";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
index 3079447dbb0a6..18f1b313048be 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-chat-integration/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-chat-integration";
-    rev = "8ade892b387f0ce843d5e78ef4a271b0d35847ff";
-    sha256 = "1qn1bm09i9gzmh74ws32zgc89hrqzyhmh63qvmv0h00r52rmgxvx";
+    rev = "46b2c05cbd00dbc49bff87d78f8e1ec4fdd43735";
+    sha256 = "sha256-G17obAc03FR3Qzn/IR++Y5Z1TkpP6lY5UDJsm4Lmj0M=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-chat-integration";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix
index 2bcf88da150ae..f8247e84a7eee 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-checklist/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-checklist";
-    rev = "48855d81b7c3a3274f7f78a64312125c344d92d1";
-    sha256 = "0139v5wpyglfzvd07ka6gic1ssfysisgfiq09dsbjy519gnc9kjw";
+    rev = "b4e14bdac40131bd70a698015b35a111a18c9f88";
+    sha256 = "sha256-okxcLu6gXvEY37ylnhit5B+LwCdV5gMKBpC/m/PaGtc=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-checklist";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
index 90218759cac56..0933a347b6201 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-data-explorer/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-data-explorer";
-    rev = "23287ece952cb45203819e7b470ebc194c58cb13";
-    sha256 = "1vc2072r72fkvcfpy6vpn9x4gl9lpjk29pnj8095xs22im8j5in1";
+    rev = "f77f5999069dbe98c49302566c82e5f77bb72db2";
+    sha256 = "sha256-N9LmFnza1pA3JRBE9bT9b/NhdYMKoF5GOUpq9XYdokY=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-data-explorer";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
index 1206fb0cd6ada..9c25200cc425a 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-docs/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-docs";
-    rev = "72cdd8d415ae3f797c0d5e2c857370714a42c54a";
-    sha256 = "07hvw8lpg8873vhwh8rrbml3s5hq606b7sw93r2xv38gxfhmx5lq";
+    rev = "e56816eb502b5ea37606f65a8df188e233f77240";
+    sha256 = "sha256-qvuoFsVXKa2IZgjVeqCca7X9jfohEBaoieZRsSFJCto=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-docs";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
index 0ea57071ebec2..06c4ec85fb0df 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-github/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-github";
-    rev = "9aaf4350968fb758f9bff3588f78e3ad24ddb4b0";
-    sha256 = "0nmpkh1rr0jv68a655f5610v2mn09xriiqv049a0gklap2lgv7p8";
+    rev = "9fae5e365c1330bc25265e3bb2a06d29adb38266";
+    sha256 = "sha256-0HUrhO78XbTr6ygNFT+Uh70n2z9dFpimawh4u8fpNjg=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-github";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile
index 897a808c1d7db..a988913a1bf62 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile
@@ -2,6 +2,9 @@
 
 source "https://rubygems.org"
 
+git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
+
+# gem "rails"
 gem 'pyu-ruby-sasl', '0.0.3.3', require: false
 gem 'rubyntlm', '0.3.4', require: false
 gem 'net-ldap', '0.14.0'
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock
index 2843cb0d8f09d..83e3cd4cbf47b 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    hashie (4.1.0)
+    hashie (5.0.0)
     net-ldap (0.14.0)
     omniauth (1.9.1)
       hashie (>= 3.4.6)
@@ -16,7 +16,7 @@ GEM
     rubyntlm (0.3.4)
 
 PLATFORMS
-  x86_64-linux
+  ruby
 
 DEPENDENCIES
   net-ldap (= 0.14.0)
@@ -25,4 +25,4 @@ DEPENDENCIES
   rubyntlm (= 0.3.4)
 
 BUNDLED WITH
-   2.2.20
+   2.2.24
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix
index 92a3c2544cda2..ea71c69a07d23 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "jonmbake";
     repo = "discourse-ldap-auth";
-    rev = "eca02c560f2f2bf42feeb1923bc17e074f16b891";
-    sha256 = "sha256-HLNoDvvxkBMvqP6WbRrJY0CYnK92W77nzSpuwgl0VPA=";
+    rev = "1c10221836393c3cfac470a7b08de6f31150c802";
+    sha256 = "sha256-IiAl3OTADXSUnL+OKKHJY9Xqd4zCNJ2wOrgTN3nm5Yw=";
   };
   meta = with lib; {
     homepage = "https://github.com/jonmbake/discourse-ldap-auth";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/gemset.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/gemset.nix
index e684a50647914..7d5816cf53cba 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-ldap-auth/gemset.nix
@@ -4,10 +4,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02bsx12ihl78x0vdm37byp78jjw2ff6035y7rrmbd90qxjwxr43q";
+      sha256 = "1nh3arcrbz1rc1cr59qm53sdhqm137b258y8rcb4cvd3y98lwv4x";
       type = "gem";
     };
-    version = "4.1.0";
+    version = "5.0.0";
   };
   net-ldap = {
     groups = ["default"];
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
index 812ea88d04028..d934227556158 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-math/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-math";
-    rev = "d7d0180352dd5a7dcb76c0817bfbb08c2a0f08c7";
-    sha256 = "0y72impvnq965ibbfc9877hr78fxkrwav1xmgyy3r9w87952vcwa";
+    rev = "3de98fc75b7d06d06651edc48449b1bb71d2171b";
+    sha256 = "sha256-HDhy6uvfmBxJq9UobLhAUdFcYULFvPZbb5vT1Sg7ung=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-math";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
index 7162aa8a16ffc..6f1044939a701 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-openid-connect/default.nix
@@ -6,8 +6,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-openid-connect";
-    rev = "615038bd65f4fbe4dfdf8444b2f5eb06986b80b8";
-    sha256 = "n8feZkP80iNc+BzTPyKD7kEgFSIkk091eJYuqonN/NU=";
+    rev = "aa6a628687edc041bd6f46eb2a38e9a71644bdda";
+    sha256 = "sha256-VdaeueESr7X4gB1pW9e//nDLz62GTaZEPyFIvvCfg18=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-openid-connect";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile
index 3a73fc55839dd..ed57d552593ed 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile
@@ -2,7 +2,7 @@
 
 source "https://rubygems.org"
 
-git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
+git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
 
 # gem "rails"
-gem 'prometheus_exporter', '0.5.0'
+gem 'prometheus_exporter', File.read(File.expand_path("../prometheus_exporter_version", __FILE__)).strip
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
index 75c139cbfc0ef..7fbd6680db6cf 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/Gemfile.lock
@@ -10,4 +10,4 @@ DEPENDENCIES
   prometheus_exporter (= 0.5.0)
 
 BUNDLED WITH
-   2.1.4
+   2.2.24
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
index 4c6c12f22b3f6..1300292132fd7 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/default.nix
@@ -6,8 +6,8 @@
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-prometheus";
-    rev = "46260710e8770344af438f86b47409d864a1c499";
-    sha256 = "0nmpi0nysp59x4hyn1c3niypvxw1jkz86acb6m8acacw0c6682k2";
+    rev = "aaaf3eda30e5fc03c880c056c1f2388739569fb0";
+    sha256 = "sha256-8bfjPCcwDjEC7Tu0Jr9VZRpaDlP2nlIOWBH8pUQakxo=";
   };
 
   patches = [
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/prometheus_exporter_version b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/prometheus_exporter_version
new file mode 100644
index 0000000000000..8f0916f768f04
--- /dev/null
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-prometheus/prometheus_exporter_version
@@ -0,0 +1 @@
+0.5.0
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
index a641d51f040ec..c9e0b8a35422f 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-saved-searches/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-saved-searches";
-    rev = "b59e0b60afdd5133e60c5cc6169f42f1edd746be";
-    sha256 = "0yhr7gx35q2nshvfxkplplkq73l7sgqlm8r3g1apniqicpk5flqy";
+    rev = "0c14b9080306c2e35abf32f8211076286fdfbd2f";
+    sha256 = "sha256-ahNw2WL5J4qAyUBgpYWTiS4G+QmQa+gloG2Vu67qXR8=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-saved-searches";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
index b66aa1a7fab85..9ec64d2fde4bb 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-solved/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-solved";
-    rev = "55cb184f7ef2954326561cc44fc8134798b8a9e0";
-    sha256 = "0pv5i216zn0v8xfwlndvhvr06vkmxaynj8xjfnc5amy1sp6k76w7";
+    rev = "6f50e2633545e160c01188bdfa9e57adf1d18adc";
+    sha256 = "sha256-+L4GzJrt15vYY29iYxVpPZFYhLygZJK4I5fqvhdI/HI=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-solved";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
index 5b745cbd603b2..13ea320f743d3 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-spoiler-alert/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-spoiler-alert";
-    rev = "0b93227ea8e2c72afe72029382081ebff89c3638";
-    sha256 = "0x0dxb41ss15sv5ph7z7q55ayf8a7r22bgkmr17924mny5440b5a";
+    rev = "f9545afaa557829f8f0c17a856e028a5be7407cf";
+    sha256 = "sha256-VhA7tK+uE2r6E66yn5FbT+Mdp9Ckj92xCF3Q9Wp60T8=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-spoiler-alert";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
index f7748f5a52d37..708e0b1169178 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-voting/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-voting";
-    rev = "fc4d23174eba1a57ddcba93eaf4a4e75d469d4a4";
-    sha256 = "07mj667qn387kaafg475f36pgnannsrb2bdqi0zj487av43252qb";
+    rev = "c2d8b9456834796e90f2e13e7d11a08f389531e1";
+    sha256 = "sha256-z6JBsuq4nj1eqfU/xoU4xWcVNphuyr3C3iKO0chcSz4=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-voting";
diff --git a/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix b/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
index ea48d9997bb81..95a65f49fb33f 100644
--- a/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
+++ b/pkgs/servers/web-apps/discourse/plugins/discourse-yearly-review/default.nix
@@ -5,8 +5,8 @@ mkDiscoursePlugin {
   src = fetchFromGitHub {
     owner = "discourse";
     repo = "discourse-yearly-review";
-    rev = "cb040562f6af3163d70e8932867b530c6640ab9a";
-    sha256 = "07h6nq4bafs27ly2f5chkn5vb1wdy909qffwkgp5k1fanhbqvhvs";
+    rev = "e42f48a576b753cb1e042e9693af35214333bb0f";
+    sha256 = "sha256-8+pwiQE0Ytva0t80bRDs+7mTZ82fPpmwb7Nk9boPFt8=";
   };
   meta = with lib; {
     homepage = "https://github.com/discourse/discourse-yearly-review";
diff --git a/pkgs/servers/web-apps/discourse/plugins/up-plugin.sh b/pkgs/servers/web-apps/discourse/plugins/up-plugin.sh
deleted file mode 100755
index ba103c5f6b2bc..0000000000000
--- a/pkgs/servers/web-apps/discourse/plugins/up-plugin.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i bash -p bash curl ruby.devEnv git sqlite libpcap postgresql libxml2 libxslt pkg-config bundix gnumake
-# src https://nixos.wiki/wiki/Packaging/Ruby
-
-# This script should be ran afte rupdating a plugin that has a gemset.nix
-# Usage: ./up-plugin.sh <plugin-id>
-# NOTE: Script must be ran directly as ./up-plugin, otherwise the nix-shell won't work
-
-set -exuo pipefail
-
-PLUGIN="$1"
-SELF="$(dirname "$(readlink -f "$0")")"
-
-PL_DIR="$SELF/$PLUGIN"
-TOP="$SELF/../../../../.."
-TMP=$(mktemp -d)
-
-pushd "$TMP"
-
-if cat "$PL_DIR/default.nix" | grep gemdir >/dev/null; then
-  nix-build -A discourse.plugins.$PLUGIN.src "$TOP"
-  if [ -e result/Gemfile ]; then
-    cp result/Gemfile Gemfile
-    if [ -e result/Gemfile.lock ]; then
-      cp result/Gemfile.lock Gemfile.lock
-    fi
-  else
-    echo '# frozen_string_literal: true
-
-source "https://rubygems.org"' > Gemfile
-    cat result/plugin.rb | grep "^gem" >> Gemfile
-  fi
-  if [ ! -e Gemfile.lock ]; then
-    bundle install
-  fi
-  bundix
-  cp Gemfile Gemfile.lock gemset.nix "$PL_DIR"
-fi
-
diff --git a/pkgs/servers/web-apps/discourse/public_dir_path.patch b/pkgs/servers/web-apps/discourse/public_dir_path.patch
deleted file mode 100644
index 0c6579736e22f..0000000000000
--- a/pkgs/servers/web-apps/discourse/public_dir_path.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/lib/file_store/local_store.rb b/lib/file_store/local_store.rb
-index 25649532c0..614e062dc1 100644
---- a/lib/file_store/local_store.rb
-+++ b/lib/file_store/local_store.rb
-@@ -88,7 +88,7 @@ module FileStore
-     end
- 
-     def public_dir
--      File.join(Rails.root, "public")
-+      "/run/discourse/public"
-     end
- 
-     def tombstone_dir
diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
index 71ee3f910c0ea..9cdfbf21a9d8c 100644
--- a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
+++ b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
@@ -18,13 +18,14 @@ else
   # this allows us to include the bits of rails we use without pieces we do not.
   #
   # To issue a rails update bump the version number here
-  gem 'actionmailer', '6.1.3.2'
-  gem 'actionpack', '6.1.3.2'
-  gem 'actionview', '6.1.3.2'
-  gem 'activemodel', '6.1.3.2'
-  gem 'activerecord', '6.1.3.2'
-  gem 'activesupport', '6.1.3.2'
-  gem 'railties', '6.1.3.2'
+  rails_version = '6.1.4.1'
+  gem 'actionmailer', rails_version
+  gem 'actionpack', rails_version
+  gem 'actionview', rails_version
+  gem 'activemodel', rails_version
+  gem 'activerecord', rails_version
+  gem 'activesupport', rails_version
+  gem 'railties', rails_version
   gem 'sprockets-rails'
 end
 
@@ -60,8 +61,6 @@ gem 'redis-namespace'
 # better maintained living fork
 gem 'active_model_serializers', '~> 0.8.3'
 
-gem 'onebox'
-
 gem 'http_accept_language', require: false
 
 # Ember related gems need to be pinned cause they control client side
@@ -90,9 +89,7 @@ gem 'unf', require: false
 
 gem 'email_reply_trimmer'
 
-# Forked until https://github.com/toy/image_optim/pull/162 is merged
-# https://github.com/discourse/image_optim
-gem 'discourse_image_optim', require: 'image_optim'
+gem 'image_optim'
 gem 'multi_json'
 gem 'mustache'
 gem 'nokogiri'
@@ -108,7 +105,10 @@ gem 'omniauth-oauth2', require: false
 
 gem 'omniauth-google-oauth2'
 
-gem 'oj'
+# Pinning oj until https://github.com/ohler55/oj/issues/699 is resolved.
+# Segfaults and stuck processes after upgrading.
+gem 'oj', '3.13.2'
+
 gem 'pg'
 gem 'mini_sql'
 gem 'pry-rails', require: false
@@ -169,6 +169,8 @@ group :test, :development do
   gem 'parallel_tests'
 
   gem 'rswag-specs'
+
+  gem 'annotate'
 end
 
 group :development do
@@ -177,8 +179,16 @@ group :development do
   gem 'better_errors', platform: :mri, require: !!ENV['BETTER_ERRORS']
   gem 'binding_of_caller'
   gem 'yaml-lint'
-  gem 'annotate'
-  gem 'discourse_dev'
+end
+
+if ENV["ALLOW_DEV_POPULATE"] == "1"
+  gem 'discourse_dev_assets'
+  gem 'faker', "~> 2.16"
+else
+  group :development do
+    gem 'discourse_dev_assets'
+    gem 'faker', "~> 2.16"
+  end
 end
 
 # this is an optional gem, it provides a high performance replacement
@@ -205,6 +215,9 @@ gem 'gc_tracer', require: false, platform: :mri
 # required for feed importing and embedding
 gem 'ruby-readability', require: false
 
+# rss gem is a bundled gem from Ruby 3 onwards
+gem 'rss', require: false
+
 gem 'stackprof', require: false, platform: :mri
 gem 'memory_profiler', require: false, platform: :mri
 
@@ -231,6 +244,8 @@ gem 'sshkey', require: false
 gem 'rchardet', require: false
 gem 'lz4-ruby', require: false, platform: :ruby
 
+gem 'sanitize'
+
 if ENV["IMPORT"] == "1"
   gem 'mysql2'
   gem 'redcarpet'
diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
index 0b83d34833925..aec33b300ef30 100644
--- a/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
+++ b/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
@@ -8,22 +8,22 @@ GIT
 GEM
   remote: https://rubygems.org/
   specs:
-    actionmailer (6.1.3.2)
-      actionpack (= 6.1.3.2)
-      actionview (= 6.1.3.2)
-      activejob (= 6.1.3.2)
-      activesupport (= 6.1.3.2)
+    actionmailer (6.1.4.1)
+      actionpack (= 6.1.4.1)
+      actionview (= 6.1.4.1)
+      activejob (= 6.1.4.1)
+      activesupport (= 6.1.4.1)
       mail (~> 2.5, >= 2.5.4)
       rails-dom-testing (~> 2.0)
-    actionpack (6.1.3.2)
-      actionview (= 6.1.3.2)
-      activesupport (= 6.1.3.2)
+    actionpack (6.1.4.1)
+      actionview (= 6.1.4.1)
+      activesupport (= 6.1.4.1)
       rack (~> 2.0, >= 2.0.9)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (6.1.3.2)
-      activesupport (= 6.1.3.2)
+    actionview (6.1.4.1)
+      activesupport (= 6.1.4.1)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
@@ -32,21 +32,21 @@ GEM
       actionview (>= 6.0.a)
     active_model_serializers (0.8.4)
       activemodel (>= 3.0)
-    activejob (6.1.3.2)
-      activesupport (= 6.1.3.2)
+    activejob (6.1.4.1)
+      activesupport (= 6.1.4.1)
       globalid (>= 0.3.6)
-    activemodel (6.1.3.2)
-      activesupport (= 6.1.3.2)
-    activerecord (6.1.3.2)
-      activemodel (= 6.1.3.2)
-      activesupport (= 6.1.3.2)
-    activesupport (6.1.3.2)
+    activemodel (6.1.4.1)
+      activesupport (= 6.1.4.1)
+    activerecord (6.1.4.1)
+      activemodel (= 6.1.4.1)
+      activesupport (= 6.1.4.1)
+    activesupport (6.1.4.1)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
       tzinfo (~> 2.0)
       zeitwerk (~> 2.3)
-    addressable (2.7.0)
+    addressable (2.8.0)
       public_suffix (>= 2.0.2, < 5.0)
     annotate (3.1.1)
       activerecord (>= 3.2, < 7.0)
@@ -59,10 +59,10 @@ GEM
       aws-partitions (~> 1, >= 1.239.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-kms (1.42.0)
+    aws-sdk-kms (1.44.0)
       aws-sdk-core (~> 3, >= 3.112.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.90.0)
+    aws-sdk-s3 (1.96.1)
       aws-sdk-core (~> 3, >= 3.112.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.1)
@@ -80,10 +80,10 @@ GEM
       rack (>= 0.9.0)
     binding_of_caller (1.0.0)
       debug_inspector (>= 0.0.1)
-    bootsnap (1.7.5)
+    bootsnap (1.9.3)
       msgpack (~> 1.0)
     builder (3.2.4)
-    bullet (6.1.4)
+    bullet (7.0.0)
       activesupport (>= 3.0.0)
       uniform_notifier (~> 1.11)
     byebug (11.1.3)
@@ -92,7 +92,7 @@ GEM
     chunky_png (1.4.0)
     coderay (1.1.3)
     colored2 (3.1.2)
-    concurrent-ruby (1.1.8)
+    concurrent-ruby (1.1.9)
     connection_pool (2.2.5)
     cose (1.2.0)
       cbor (~> 0.5.9)
@@ -101,7 +101,7 @@ GEM
     crack (0.4.5)
       rexml
     crass (1.0.6)
-    css_parser (1.9.0)
+    css_parser (1.11.0)
       addressable
     debug_inspector (1.1.0)
     diff-lcs (1.4.4)
@@ -114,15 +114,10 @@ GEM
       jquery-rails (>= 1.0.17)
       railties (>= 3.1)
     discourse-ember-source (3.12.2.3)
-    discourse-fonts (0.0.8)
-    discourse_dev (0.2.1)
+    discourse-fonts (0.0.9)
+    discourse_dev_assets (0.0.3)
       faker (~> 2.16)
-    discourse_image_optim (0.26.2)
-      exifr (~> 1.2, >= 1.2.2)
-      fspath (~> 3.0)
-      image_size (~> 1.5)
-      in_threads (~> 1.3)
-      progress (~> 3.0, >= 3.0.1)
+      literate_randomizer
     docile (1.4.0)
     ecma-re-validator (0.3.0)
       regexp_parser (~> 2.0)
@@ -134,30 +129,40 @@ GEM
       sprockets (>= 3.3, < 4.1)
     ember-source (2.18.2)
     erubi (1.10.0)
-    excon (0.81.0)
+    excon (0.89.0)
     execjs (2.8.1)
     exifr (1.3.9)
-    fabrication (2.22.0)
-    faker (2.17.0)
+    fabrication (2.23.1)
+    faker (2.19.0)
       i18n (>= 1.6, < 2)
     fakeweb (1.3.0)
-    faraday (1.4.1)
+    faraday (1.8.0)
+      faraday-em_http (~> 1.0)
+      faraday-em_synchrony (~> 1.0)
       faraday-excon (~> 1.1)
+      faraday-httpclient (~> 1.0.1)
       faraday-net_http (~> 1.0)
       faraday-net_http_persistent (~> 1.1)
+      faraday-patron (~> 1.0)
+      faraday-rack (~> 1.0)
       multipart-post (>= 1.2, < 3)
       ruby2_keywords (>= 0.0.4)
+    faraday-em_http (1.0.0)
+    faraday-em_synchrony (1.0.0)
     faraday-excon (1.1.0)
+    faraday-httpclient (1.0.1)
     faraday-net_http (1.0.1)
-    faraday-net_http_persistent (1.1.0)
-    fast_blank (1.0.0)
+    faraday-net_http_persistent (1.2.0)
+    faraday-patron (1.0.0)
+    faraday-rack (1.0.0)
+    fast_blank (1.0.1)
     fast_xs (0.8.0)
-    fastimage (2.2.3)
-    ffi (1.15.0)
+    fastimage (2.2.6)
+    ffi (1.15.4)
     fspath (3.1.2)
     gc_tracer (1.5.1)
-    globalid (0.4.2)
-      activesupport (>= 4.2.0)
+    globalid (1.0.0)
+      activesupport (>= 5.0)
     guess_html_encoding (0.0.11)
     hana (1.3.7)
     hashdiff (1.0.1)
@@ -166,16 +171,23 @@ GEM
     hkdf (0.3.0)
     htmlentities (4.3.4)
     http_accept_language (2.1.1)
-    i18n (1.8.10)
+    i18n (1.8.11)
       concurrent-ruby (~> 1.0)
-    image_size (1.5.0)
+    image_optim (0.31.1)
+      exifr (~> 1.2, >= 1.2.2)
+      fspath (~> 3.0)
+      image_size (>= 1.5, < 4)
+      in_threads (~> 1.3)
+      progress (~> 3.0, >= 3.0.1)
+    image_size (3.0.1)
     in_threads (1.5.4)
+    ipaddr (1.2.3)
     jmespath (1.4.0)
     jquery-rails (4.4.0)
       rails-dom-testing (>= 1, < 3)
       railties (>= 4.2.0)
       thor (>= 0.14, < 2.0)
-    json (2.5.1)
+    json (2.6.1)
     json-schema (2.8.1)
       addressable (>= 2.4)
     json_schemer (0.2.18)
@@ -183,12 +195,13 @@ GEM
       hana (~> 1.3)
       regexp_parser (~> 2.0)
       uri_template (~> 0.7)
-    jwt (2.2.3)
-    kgio (2.11.3)
-    libv8-node (15.14.0.1)
-    listen (3.5.1)
+    jwt (2.3.0)
+    kgio (2.11.4)
+    libv8-node (16.10.0.0)
+    listen (3.7.0)
       rb-fsevent (~> 0.10, >= 0.10.3)
       rb-inotify (~> 0.9, >= 0.9.10)
+    literate_randomizer (0.4.0)
     lograge (0.11.2)
       actionpack (>= 4)
       activesupport (>= 4)
@@ -197,53 +210,51 @@ GEM
     logstash-event (1.2.02)
     logstash-logger (0.26.1)
       logstash-event (~> 1.2)
-    logster (2.9.6)
-    loofah (2.9.1)
+    logster (2.10.1)
+    loofah (2.13.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     lru_redux (1.1.0)
     lz4-ruby (0.3.3)
     maxminddb (0.1.22)
     memory_profiler (1.0.0)
-    message_bus (3.3.5)
+    message_bus (3.3.8)
       rack (>= 1.1.3)
     method_source (1.0.0)
-    mini_mime (1.1.0)
-    mini_portile2 (2.5.3)
-    mini_racer (0.4.0)
-      libv8-node (~> 15.14.0.0)
+    mini_mime (1.1.2)
+    mini_portile2 (2.6.1)
+    mini_racer (0.5.0)
+      libv8-node (~> 16.10.0.0)
     mini_scheduler (0.13.0)
       sidekiq (>= 4.2.3)
     mini_sql (1.1.3)
-    mini_suffix (0.3.2)
+    mini_suffix (0.3.3)
       ffi (~> 1.9)
-    minitest (5.14.4)
-    mocha (1.12.0)
-    mock_redis (0.28.0)
+    minitest (5.15.0)
+    mocha (1.13.0)
+    mock_redis (0.29.0)
       ruby2_keywords
     msgpack (1.4.2)
     multi_json (1.15.0)
     multi_xml (0.6.0)
     multipart-post (2.1.1)
     mustache (1.1.1)
-    nio4r (2.5.7)
-    nokogiri (1.11.7)
-      mini_portile2 (~> 2.5.0)
+    nio4r (2.5.8)
+    nokogiri (1.12.5)
+      mini_portile2 (~> 2.6.1)
       racc (~> 1.4)
-    nokogumbo (2.0.5)
-      nokogiri (~> 1.8, >= 1.8.4)
-    oauth (0.5.6)
+    oauth (0.5.8)
     oauth2 (1.4.7)
       faraday (>= 0.8, < 2.0)
       jwt (>= 1.0, < 3.0)
       multi_json (~> 1.3)
       multi_xml (~> 0.5)
       rack (>= 1.2, < 3)
-    oj (3.11.5)
+    oj (3.13.2)
     omniauth (1.9.1)
       hashie (>= 3.4.6)
       rack (>= 1.6.2, < 3)
-    omniauth-facebook (8.0.0)
+    omniauth-facebook (9.0.0)
       omniauth-oauth2 (~> 1.2)
     omniauth-github (1.4.0)
       omniauth (~> 1.5)
@@ -256,27 +267,21 @@ GEM
     omniauth-oauth (1.2.0)
       oauth
       omniauth (>= 1.0, < 3)
-    omniauth-oauth2 (1.7.1)
+    omniauth-oauth2 (1.7.2)
       oauth2 (~> 1.4)
       omniauth (>= 1.9, < 3)
     omniauth-twitter (1.4.0)
       omniauth-oauth (~> 1.1)
       rack
-    onebox (2.2.17)
-      addressable (~> 2.7.0)
-      htmlentities (~> 4.3)
-      multi_json (~> 1.11)
-      mustache
-      nokogiri (~> 1.7)
-      sanitize
-    openssl (2.2.0)
+    openssl (2.2.1)
+      ipaddr
     openssl-signature_algorithm (1.1.1)
       openssl (~> 2.0)
     optimist (3.0.1)
-    parallel (1.20.1)
-    parallel_tests (3.7.0)
+    parallel (1.21.0)
+    parallel_tests (3.7.3)
       parallel
-    parser (3.0.1.1)
+    parser (3.0.3.2)
       ast (~> 2.4.1)
     pg (1.2.3)
     progress (3.6.0)
@@ -289,12 +294,12 @@ GEM
     pry-rails (0.3.9)
       pry (>= 0.10.4)
     public_suffix (4.0.6)
-    puma (5.3.1)
+    puma (5.5.2)
       nio4r (~> 2.0)
     r2 (0.2.7)
-    racc (1.5.2)
+    racc (1.6.0)
     rack (2.2.3)
-    rack-mini-profiler (2.3.2)
+    rack-mini-profiler (2.3.3)
       rack (>= 1.2.0)
     rack-protection (2.1.0)
       rack
@@ -303,24 +308,24 @@ GEM
     rails-dom-testing (2.0.3)
       activesupport (>= 4.2.0)
       nokogiri (>= 1.6)
-    rails-html-sanitizer (1.3.0)
+    rails-html-sanitizer (1.4.2)
       loofah (~> 2.3)
     rails_failover (0.7.3)
       activerecord (~> 6.0)
       concurrent-ruby
       railties (~> 6.0)
-    rails_multisite (3.0.0)
+    rails_multisite (4.0.0)
       activerecord (> 5.0, < 7)
       railties (> 5.0, < 7)
-    railties (6.1.3.2)
-      actionpack (= 6.1.3.2)
-      activesupport (= 6.1.3.2)
+    railties (6.1.4.1)
+      actionpack (= 6.1.4.1)
+      activesupport (= 6.1.4.1)
       method_source
-      rake (>= 0.8.7)
+      rake (>= 0.13)
       thor (~> 1.0)
     rainbow (3.0.0)
-    raindrops (0.19.1)
-    rake (13.0.3)
+    raindrops (0.20.0)
+    rake (13.0.6)
     rb-fsevent (0.11.0)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
@@ -329,19 +334,19 @@ GEM
       msgpack (>= 0.4.3)
       optimist (>= 3.0.0)
     rchardet (1.8.0)
-    redis (4.2.5)
+    redis (4.5.1)
     redis-namespace (1.8.1)
       redis (>= 3.0.4)
-    regexp_parser (2.1.1)
+    regexp_parser (2.2.0)
     request_store (1.5.0)
       rack (>= 1.4)
     rexml (3.2.5)
     rinku (2.0.6)
     rotp (6.2.0)
-    rqrcode (2.0.0)
+    rqrcode (2.1.0)
       chunky_png (~> 1.0)
       rqrcode_core (~> 1.0)
-    rqrcode_core (1.0.0)
+    rqrcode_core (1.2.0)
     rspec (3.10.0)
       rspec-core (~> 3.10.0)
       rspec-expectations (~> 3.10.0)
@@ -357,7 +362,7 @@ GEM
     rspec-mocks (3.10.2)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.10.0)
-    rspec-rails (5.0.1)
+    rspec-rails (5.0.2)
       actionpack (>= 5.2)
       activesupport (>= 5.2)
       railties (>= 5.2)
@@ -365,40 +370,40 @@ GEM
       rspec-expectations (~> 3.10)
       rspec-mocks (~> 3.10)
       rspec-support (~> 3.10)
-    rspec-support (3.10.2)
+    rspec-support (3.10.3)
+    rss (0.2.9)
+      rexml
     rswag-specs (2.4.0)
       activesupport (>= 3.1, < 7.0)
       json-schema (~> 2.2)
       railties (>= 3.1, < 7.0)
     rtlit (0.0.5)
-    rubocop (1.14.0)
+    rubocop (1.23.0)
       parallel (~> 1.10)
       parser (>= 3.0.0.0)
       rainbow (>= 2.2.2, < 4.0)
       regexp_parser (>= 1.8, < 3.0)
       rexml
-      rubocop-ast (>= 1.5.0, < 2.0)
+      rubocop-ast (>= 1.12.0, < 2.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (>= 1.4.0, < 3.0)
-    rubocop-ast (1.5.0)
+    rubocop-ast (1.15.0)
       parser (>= 3.0.1.1)
-    rubocop-discourse (2.4.1)
+    rubocop-discourse (2.5.0)
       rubocop (>= 1.1.0)
       rubocop-rspec (>= 2.0.0)
-    rubocop-rspec (2.3.0)
-      rubocop (~> 1.0)
-      rubocop-ast (>= 1.1.0)
+    rubocop-rspec (2.6.0)
+      rubocop (~> 1.19)
     ruby-prof (1.4.3)
     ruby-progressbar (1.11.0)
     ruby-readability (0.7.0)
       guess_html_encoding (>= 0.0.4)
       nokogiri (>= 1.6.0)
-    ruby2_keywords (0.0.4)
-    rubyzip (2.3.0)
-    sanitize (5.2.3)
+    ruby2_keywords (0.0.5)
+    rubyzip (2.3.2)
+    sanitize (6.0.0)
       crass (~> 1.0.2)
-      nokogiri (>= 1.8.0)
-      nokogumbo (~> 2.0)
+      nokogiri (>= 1.12.0)
     sassc (2.0.1)
       ffi (~> 1.9)
       rake
@@ -411,9 +416,9 @@ GEM
     seed-fu (2.3.9)
       activerecord (>= 3.1)
       activesupport (>= 3.1)
-    shoulda-matchers (4.5.1)
-      activesupport (>= 4.2.0)
-    sidekiq (6.2.1)
+    shoulda-matchers (5.0.0)
+      activesupport (>= 5.2.0)
+    sidekiq (6.3.1)
       connection_pool (>= 2.2.2)
       rack (~> 2.0)
       redis (>= 4.2.0)
@@ -426,13 +431,13 @@ GEM
     sprockets (3.7.2)
       concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
-    sprockets-rails (3.2.2)
-      actionpack (>= 4.0)
-      activesupport (>= 4.0)
+    sprockets-rails (3.4.2)
+      actionpack (>= 5.2)
+      activesupport (>= 5.2)
       sprockets (>= 3.0.0)
     sshkey (2.0.0)
     stackprof (0.2.17)
-    test-prof (1.0.5)
+    test-prof (1.0.7)
     thor (1.1.0)
     tilt (2.0.10)
     tzinfo (2.0.4)
@@ -441,15 +446,15 @@ GEM
       execjs (>= 0.3.0, < 3)
     unf (0.1.4)
       unf_ext
-    unf_ext (0.0.7.7)
-    unicode-display_width (2.0.0)
+    unf_ext (0.0.8)
+    unicode-display_width (2.1.0)
     unicorn (6.0.0)
       kgio (~> 2.6)
       raindrops (~> 0.7)
     uniform_notifier (1.14.2)
     uri_template (0.7.0)
-    webmock (3.12.2)
-      addressable (>= 2.3.6)
+    webmock (3.14.0)
+      addressable (>= 2.8.0)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
     webpush (1.1.0)
@@ -457,20 +462,20 @@ GEM
       jwt (~> 2.0)
     xorcist (1.1.2)
     yaml-lint (0.0.10)
-    zeitwerk (2.4.2)
+    zeitwerk (2.5.1)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  actionmailer (= 6.1.3.2)
-  actionpack (= 6.1.3.2)
-  actionview (= 6.1.3.2)
+  actionmailer (= 6.1.4.1)
+  actionpack (= 6.1.4.1)
+  actionview (= 6.1.4.1)
   actionview_precompiler
   active_model_serializers (~> 0.8.3)
-  activemodel (= 6.1.3.2)
-  activerecord (= 6.1.3.2)
-  activesupport (= 6.1.3.2)
+  activemodel (= 6.1.4.1)
+  activerecord (= 6.1.4.1)
+  activesupport (= 6.1.4.1)
   addressable
   annotate
   aws-sdk-s3
@@ -491,13 +496,13 @@ DEPENDENCIES
   discourse-ember-rails (= 0.18.6)
   discourse-ember-source (~> 3.12.2)
   discourse-fonts
-  discourse_dev
-  discourse_image_optim
+  discourse_dev_assets
   email_reply_trimmer
   ember-handlebars-template (= 0.8.0)
   excon
   execjs
   fabrication
+  faker (~> 2.16)
   fakeweb
   fast_blank
   fast_xs
@@ -506,6 +511,7 @@ DEPENDENCIES
   highline
   htmlentities
   http_accept_language
+  image_optim
   json
   json_schemer
   listen
@@ -531,14 +537,13 @@ DEPENDENCIES
   multi_json
   mustache
   nokogiri
-  oj
+  oj (= 3.13.2)
   omniauth
   omniauth-facebook
   omniauth-github
   omniauth-google-oauth2
   omniauth-oauth2
   omniauth-twitter
-  onebox
   parallel_tests
   pg
   pry-byebug
@@ -550,7 +555,7 @@ DEPENDENCIES
   rack-protection
   rails_failover
   rails_multisite
-  railties (= 6.1.3.2)
+  railties (= 6.1.4.1)
   rake
   rb-fsevent
   rbtrace
@@ -563,12 +568,14 @@ DEPENDENCIES
   rspec
   rspec-html-matchers
   rspec-rails
+  rss
   rswag-specs
   rtlit
   rubocop-discourse
   ruby-prof
   ruby-readability
   rubyzip
+  sanitize
   sassc (= 2.0.1)
   sassc-rails
   seed-fu
@@ -590,4 +597,4 @@ DEPENDENCIES
   yaml-lint
 
 BUNDLED WITH
-   2.2.24
+   2.2.26
diff --git a/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix b/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
index f63b68164ef25..36b50339e037b 100644
--- a/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
+++ b/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nqdaykzgib8fsldkxdkw0w44jzz4grvb028crzg0qpwvv03g2wp";
+      sha256 = "00s07l2ac5igch1g2rpa0linmiq7mhgk6v6wxkckg8gbiqijb592";
       type = "gem";
     };
-    version = "6.1.3.2";
+    version = "6.1.4.1";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wdgv5llgbl4nayx5j78lfvhhjssrzfmypb45mjy37mgm8z5l5m5";
+      sha256 = "0xgysqnibjsy6kdz10x2xb3kwa6lssiqhh0zggrbgs31ypwhlpia";
       type = "gem";
     };
-    version = "6.1.3.2";
+    version = "6.1.4.1";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -27,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1r6db2g3fsrca1hp9kbyvjx9psipsxw0g306qharkcblxl8h1ysn";
+      sha256 = "1yf4ic5kl324rs0raralpwx24s6hvvdzxfhinafylf8f3x7jj23z";
       type = "gem";
     };
-    version = "6.1.3.2";
+    version = "6.1.4.1";
   };
   actionview_precompiler = {
     dependencies = ["actionview"];
@@ -60,32 +60,32 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0p80rbahcxhxlkxgf4bh580hbifn9q4gr5g9fy8fd0z5g6gr9xxq";
+      sha256 = "1q7c0i0kwarxgcbxk71wa9jnlg45grbxmhlrh7dk9bgcv7r7r7hn";
       type = "gem";
     };
-    version = "6.1.3.2";
+    version = "6.1.4.1";
   };
   activemodel = {
     dependencies = ["activesupport"];
-    groups = ["default" "development"];
+    groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gpd3hh4ryyr84drj6m0b5sy6929nyf50bfgksw1hpc594542nal";
+      sha256 = "16ixam4lni8b5lgx0whnax0imzh1dh10fy5r9pxs52n83yz5nbq3";
       type = "gem";
     };
-    version = "6.1.3.2";
+    version = "6.1.4.1";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
-    groups = ["default" "development"];
+    groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fg58qma2zgrz0gr61p61qcz8c3h88fd5lbdrkpkm96aq5shwh68";
+      sha256 = "1ccgvlj767ybps3pxlaa4iw77n7wbriw2sr8754id3ngjfap08ja";
       type = "gem";
     };
-    version = "6.1.3.2";
+    version = "6.1.4.1";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
@@ -93,10 +93,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1csxddyhl6k773ycxjvmyshyr4g9jb1icbs3pnm7crnavqs4h1yr";
+      sha256 = "19gx1jcq46x9d1pi1w8xq0bgvvfw239y4lalr8asm291gj3q3ds4";
       type = "gem";
     };
-    version = "6.1.3.2";
+    version = "6.1.4.1";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -104,10 +104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+      sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp";
       type = "gem";
     };
-    version = "2.7.0";
+    version = "2.8.0";
   };
   annotate = {
     dependencies = ["activerecord" "rake"];
@@ -167,10 +167,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00wgf83cdy6z77b2y0ld0aqiidfyldi71hx0z8b73gxjdlbwpq1i";
+      sha256 = "0407yggwsy89fzh387vq3af5azplci5v0a8y97h7r6da4jrv1ksm";
       type = "gem";
     };
-    version = "1.42.0";
+    version = "1.44.0";
   };
   aws-sdk-s3 = {
     dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
@@ -178,10 +178,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sm1x1pm2wb8gj3p4yv45r7n8m4k3qawk3lrnd2lvk2vg5nyfh61";
+      sha256 = "0q28bdmpm2c2fw9wh00zhqxnb8p2nzdfi5l6wwa6bl63fm28816h";
       type = "gem";
     };
-    version = "1.90.0";
+    version = "1.96.1";
   };
   aws-sdk-sns = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -252,10 +252,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12n09iwpssnsfw9s140ynfxr9psd0xcfx42yqdsk0hq60zhq2nlx";
+      sha256 = "18prmylz53gsw651f0sibb2mvdxgd2zzdzh6a9a1idpqhyxcnbg7";
       type = "gem";
     };
-    version = "1.7.5";
+    version = "1.9.3";
   };
   builder = {
     groups = ["default" "development" "test"];
@@ -273,10 +273,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r8d3vh1xjfx46qlv75228rkshzgqxpmf491vxzpicpqi1xad5ni";
+      sha256 = "0w3jk595azcc9fvklrk2klkljwhgzjhnns7l5iqhnafvr8q60xnr";
       type = "gem";
     };
-    version = "6.1.4";
+    version = "7.0.0";
   };
   byebug = {
     groups = ["development" "test"];
@@ -351,10 +351,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
+      sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f";
       type = "gem";
     };
-    version = "1.1.8";
+    version = "1.1.9";
   };
   connection_pool = {
     groups = ["default"];
@@ -414,10 +414,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xs4ind9xd099rb52b73pch8ha143dl8bhivqsbba4wrvxpbx751";
+      sha256 = "1qbdgp36dhcyljhmfxrvbgp1ha9yqxhxgyg3sdm48y9m371jd2an";
       type = "gem";
     };
-    version = "1.9.0";
+    version = "1.11.0";
   };
   debug_inspector = {
     groups = ["default" "development"];
@@ -475,32 +475,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gr1d80wmb1jvip82jlbsz5bcpwsz9lryxxfnwiw537vx8pqkk3p";
+      sha256 = "1q1q9fmqc7dir2nj94nai58h26zsh6fqmbr6hfax5d6xpy4pm1yf";
       type = "gem";
     };
-    version = "0.0.8";
+    version = "0.0.9";
   };
-  discourse_dev = {
-    dependencies = ["faker"];
+  discourse_dev_assets = {
+    dependencies = ["faker" "literate_randomizer"];
     groups = ["development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sn2lcgjhsbqnaca97a37bfk249c55b3cn1q8abnf1am9jq5hdiw";
+      sha256 = "0c6cxrf6kvv4pg6fsig71dn5nrzy7jxbxmyi8206m1ijgpj8nddg";
       type = "gem";
     };
-    version = "0.2.1";
-  };
-  discourse_image_optim = {
-    dependencies = ["exifr" "fspath" "image_size" "in_threads" "progress"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "11nqmga5ygxyhjmsc07gsa0fwwyhdpwi20yyr4fnh263xs1xylvv";
-      type = "gem";
-    };
-    version = "0.26.2";
+    version = "0.0.3";
   };
   docile = {
     groups = ["default" "test"];
@@ -584,10 +573,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19g5nvkycnkzqq4mqn1zjznq9adrlv2jz0dr9w10cbn42hhqpiz7";
+      sha256 = "0153rr745g48h48vaplgmx7xkfjbc79acpq5jsl7agdrk4yf75ih";
       type = "gem";
     };
-    version = "0.81.0";
+    version = "0.89.0";
   };
   execjs = {
     groups = ["assets" "default"];
@@ -614,21 +603,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1a1zv94hcss44n1b04w0rg0swg8npigrj3nva9h0y2f1iflj124k";
+      sha256 = "1i4pcqmf8q0gkjzhndcbzgg8bg4rkvbpp2gapnqxc8j8gcxzi1fi";
       type = "gem";
     };
-    version = "2.22.0";
+    version = "2.23.1";
   };
   faker = {
     dependencies = ["i18n"];
-    groups = ["default" "development"];
+    groups = ["development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0z3d4y6xg8prn3zdjw1qpqrnziq1d3zigqil4sxjj0pbr46gc1d6";
+      sha256 = "0hb9wfxyb4ss2vl2mrj1zgdk7dh4yaxghq22gbx62yxj5yb9w4zw";
       type = "gem";
     };
-    version = "2.17.0";
+    version = "2.19.0";
   };
   fakeweb = {
     groups = ["test"];
@@ -641,15 +630,35 @@
     version = "1.3.0";
   };
   faraday = {
-    dependencies = ["faraday-excon" "faraday-net_http" "faraday-net_http_persistent" "multipart-post" "ruby2_keywords"];
+    dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "multipart-post" "ruby2_keywords"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0afhlqgby2cizcwgh7h2sq5f77q01axjbdl25bsvfwsry9n7gyyi";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  faraday-em_http = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0q646m07lfahakx5jdq77j004rcgfj6lkg13c0f84993gi78dhvi";
+      sha256 = "12cnqpbak4vhikrh2cdn94assh3yxza8rq2p9w2j34bqg5q4qgbs";
       type = "gem";
     };
-    version = "1.4.1";
+    version = "1.0.0";
+  };
+  faraday-em_synchrony = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vgrbhkp83sngv6k4mii9f2s9v5lmp693hylfxp2ssfc60fas3a6";
+      type = "gem";
+    };
+    version = "1.0.0";
   };
   faraday-excon = {
     groups = ["default"];
@@ -661,6 +670,16 @@
     };
     version = "1.1.0";
   };
+  faraday-httpclient = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fyk0jd3ks7fdn8nv3spnwjpzx2lmxmg2gh4inz3by1zjzqg33sc";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
   faraday-net_http = {
     groups = ["default"];
     platforms = [];
@@ -676,10 +695,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l2c835wl7gv34xp49fhd1bl4czkpw2g3ahqsak2251iqv5589ka";
+      sha256 = "0dc36ih95qw3rlccffcb0vgxjhmipsvxhn6cw71l7ffs0f7vq30b";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.0";
+  };
+  faraday-patron = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19wgsgfq0xkski1g7m96snv39la3zxz6x7nbdgiwhg5v82rxfb6w";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  faraday-rack = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h184g4vqql5jv9s9im6igy00jp6mrah2h14py6mpf9bkabfqq7g";
+      type = "gem";
+    };
+    version = "1.0.0";
   };
   fast_blank = {
     groups = ["default"];
@@ -692,10 +731,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16s1ilyvwzmkcgmklbrn0c2pch5n02vf921njx0bld4crgdr6z56";
+      sha256 = "1shpmamyzyhyxmv95r96ja5rylzaw60r19647d0fdm7y2h2c77r6";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.0.1";
   };
   fast_xs = {
     groups = ["default"];
@@ -718,10 +757,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lgr0vs9kg5622qaf2l3f37b238dncs037fisiygvkbq8sg11i68";
+      sha256 = "0nnggg20za5vamdpkgrxxa32z33d8hf0g2bciswkhqnc6amb3yjr";
       type = "gem";
     };
-    version = "2.2.3";
+    version = "2.2.6";
   };
   ffi = {
     groups = ["default" "development" "test"];
@@ -732,10 +771,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432";
+      sha256 = "0ssxcywmb3flxsjdg13is6k01807zgzasdhj4j48dm7ac59cmksn";
       type = "gem";
     };
-    version = "1.15.0";
+    version = "1.15.4";
   };
   fspath = {
     groups = ["default"];
@@ -767,10 +806,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1";
+      sha256 = "1n5yc058i8xhi1fwcp1w7mfi6xaxfmrifdb4r4hjfff33ldn8lqj";
       type = "gem";
     };
-    version = "0.4.2";
+    version = "1.0.0";
   };
   guess_html_encoding = {
     groups = ["default"];
@@ -858,20 +897,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
+      sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
+      type = "gem";
+    };
+    version = "1.8.11";
+  };
+  image_optim = {
+    dependencies = ["exifr" "fspath" "image_size" "in_threads" "progress"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1l3n59w1cbvfg2srfa14g3jdqwbkf7l86g4qrgfz3qps7zi0drg7";
       type = "gem";
     };
-    version = "1.8.10";
+    version = "0.31.1";
   };
   image_size = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zrn2mqaf1kk548wn1y35i1a6kwh3320q62m929kn9m8sqpy4fk7";
+      sha256 = "130yn87pcnr5sblssm88hnvg8hc76isgrnhlf1d9355zhv4i2hsz";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "3.0.1";
   };
   in_threads = {
     groups = ["default"];
@@ -883,6 +933,16 @@
     };
     version = "1.5.4";
   };
+  ipaddr = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s2cipiyhm1r8igc1n43py5p5r3rdz8lvagaa61jrm62prn7v5b2";
+      type = "gem";
+    };
+    version = "1.2.3";
+  };
   jmespath = {
     groups = ["default"];
     platforms = [];
@@ -909,10 +969,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
+      sha256 = "1z9grvjyfz16ag55hg522d3q4dh07hf391sf9s96npc0vfi85xkz";
       type = "gem";
     };
-    version = "2.5.1";
+    version = "2.6.1";
   };
   json-schema = {
     dependencies = ["addressable"];
@@ -941,10 +1001,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "036i5fc09275ms49mw43mh4i9pwaap778ra2pmx06ipzyyjl6bfs";
+      sha256 = "0bg8pjx0mpvl10k6d8a6gc8dzlv2z5jkqcjbjcirnk032iriq838";
       type = "gem";
     };
-    version = "2.2.3";
+    version = "2.3.0";
   };
   kgio = {
     groups = ["default"];
@@ -957,20 +1017,20 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ai6bzlvxbzpdl466p1qi4dlhx8ri2wcrp6x1l19y3yfs3a29rng";
+      sha256 = "1ipzvw7n0kz1w8rkqybyxvf3hb601a770khm0xdqm68mc4aa59xx";
       type = "gem";
     };
-    version = "2.11.3";
+    version = "2.11.4";
   };
   libv8-node = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xx217hrkpcm41p41inmy05kb7g8p9w5fwabgjgmpvz0d60j2862";
+      sha256 = "102ixp1626b4zjh98h3jxhwv0sdbkgijz38wyb1ffgxqr47c7s0w";
       type = "gem";
     };
-    version = "15.14.0.1";
+    version = "16.10.0.0";
   };
   listen = {
     dependencies = ["rb-fsevent" "rb-inotify"];
@@ -978,10 +1038,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0h2v34xhi30w0d9gfzds2w6v89grq2gkpgvmdj9m8x1ld1845xnj";
+      sha256 = "0ncfhdkjiwq9l1pm87ax2pa20kz2j0dz56vi74cnr5a6cfk0qb5p";
       type = "gem";
     };
-    version = "3.5.1";
+    version = "3.7.0";
+  };
+  literate_randomizer = {
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1c8p8aw93bx4ygpkwfv6dv41psb86jb0pi16gvnv30rr72dkq1q5";
+      type = "gem";
+    };
+    version = "0.4.0";
   };
   lograge = {
     dependencies = ["actionpack" "activesupport" "railties" "request_store"];
@@ -1020,10 +1090,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1a65kp9d3n34nnd0vr49s3gxxjzi4l197s3qyq4njjf81smd2764";
+      sha256 = "09l4rdq5gsnhr7ma7i5ddg8sagkqn122kz8cb244q4hyk9rwmd2w";
       type = "gem";
     };
-    version = "2.9.6";
+    version = "2.10.1";
   };
   loofah = {
     dependencies = ["crass" "nokogiri"];
@@ -1031,10 +1101,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w9mbii8515p28xd4k72f3ab2g6xiyq15497ys5r8jn6m355lgi7";
+      sha256 = "17rvbrqcci1579d7dpbsfmz1f9g7msk82lyh9ip5h29dkrnixcgg";
       type = "gem";
     };
-    version = "2.9.1";
+    version = "2.13.0";
   };
   lru_redux = {
     groups = ["default"];
@@ -1105,10 +1175,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gg8axd71vjanzis8w4h4if2qi4fx0glmc258dwa5b3z6zvzsbz8";
+      sha256 = "0xf3r47qpigg661krwa8z7k4f0z0rx9r5g2mgahrrwgjn67d332l";
       type = "gem";
     };
-    version = "3.3.5";
+    version = "3.3.8";
   };
   method_source = {
     groups = ["default" "development" "test"];
@@ -1125,20 +1195,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kb7jq3wjgckmkzna799y5qmvn6vg52878bkgw35qay6lflcrwih";
+      sha256 = "0lbim375gw2dk6383qirz13hgdmxlan0vc5da2l072j3qw6fqjm5";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.1.2";
   };
   mini_portile2 = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ad0mli9rc0f17zw4ibp24dbj1y39zkykijsjmnzl4gwpg5s0j6k";
+      sha256 = "1lvxm91hi0pabnkkg47wh1siv56s6slm2mdq1idfm86dyfidfprq";
       type = "gem";
     };
-    version = "2.5.3";
+    version = "2.6.1";
   };
   mini_racer = {
     dependencies = ["libv8-node"];
@@ -1146,10 +1216,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0334q46gi3il9izw7k4z32fj06nm8pznqdkr9r51033lnwwy9zy3";
+      sha256 = "1b6lahs31m3ky4maq8s83w35lkariq0g1f6bjhnaxvwzjhhar5cf";
       type = "gem";
     };
-    version = "0.4.0";
+    version = "0.5.0";
   };
   mini_scheduler = {
     dependencies = ["sidekiq"];
@@ -1178,30 +1248,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1r6pwyv1vpyza0rn1pyxls4qdw5jd3vg4k5dp1iaqa57n6fiqrvi";
+      sha256 = "1rr2nx1kixd7ccxqdnswjnflg46s6lr1f9vxkdy298k95zwk67cd";
       type = "gem";
     };
-    version = "0.3.2";
+    version = "0.3.3";
   };
   minitest = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
+      sha256 = "06xf558gid4w8lwx13jwfdafsch9maz8m0g85wnfymqj63x5nbbd";
       type = "gem";
     };
-    version = "5.14.4";
+    version = "5.15.0";
   };
   mocha = {
     groups = ["development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05yw6rwgjppq116jgqfg4pv4bql3ci4r2fmmg0m2c3sqib1bq41a";
+      sha256 = "15s53ggsykk69kxqvs4416s8yxdhz6caggva55n8sjgy4ixzwp10";
       type = "gem";
     };
-    version = "1.12.0";
+    version = "1.13.0";
   };
   mock_redis = {
     dependencies = ["ruby2_keywords"];
@@ -1209,10 +1279,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0x6ng2p1884pjpwj169p6xyas5bvshi4q1wfcfmxvk82jwm0cz3c";
+      sha256 = "10jj7hralc2hmvvm77w71d4dwq9ij5a1lkqyfw6z32saybzmcs99";
       type = "gem";
     };
-    version = "0.28.0";
+    version = "0.29.0";
   };
   msgpack = {
     groups = ["default"];
@@ -1273,10 +1343,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00fwz0qq7agd2xkdz02i8li236qvwhma3p0jdn5bdvc21b7ydzd5";
+      sha256 = "0xk64wghkscs6bv2n22853k2nh39d131c6rfpnlw12mbjnnv9v1v";
       type = "gem";
     };
-    version = "2.5.7";
+    version = "2.5.8";
   };
   nokogiri = {
     dependencies = ["mini_portile2" "racc"];
@@ -1284,31 +1354,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vrn31385ix5k9b0yalnlzv360isv6dincbcvi8psllnwz4sjxj9";
-      type = "gem";
-    };
-    version = "1.11.7";
-  };
-  nokogumbo = {
-    dependencies = ["nokogiri"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0ngsnr0l6r4yccdwvky18n9a81plhpviaw6g7ym45mr1q0y0aj2w";
+      sha256 = "1v02g7k7cxiwdcahvlxrmizn3avj2q6nsjccgilq1idc89cr081b";
       type = "gem";
     };
-    version = "2.0.5";
+    version = "1.12.5";
   };
   oauth = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zwd6v39yqfdrpg1p3d9jvzs9ljg55ana2p06m0l7qn5w0lgx1a0";
+      sha256 = "0h6nfg2pibc17fch0795d4bcy41a92im5zrsrgs31zdhrl6zf4w0";
       type = "gem";
     };
-    version = "0.5.6";
+    version = "0.5.8";
   };
   oauth2 = {
     dependencies = ["faraday" "jwt" "multi_json" "multi_xml" "rack"];
@@ -1326,10 +1385,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cnadm83qwnmbpyild9whb9bgf9r7gs046ydxypclb2l756gcnva";
+      sha256 = "1fh73xl58n696akgarylfdfmv6l93rfwh3csjjbljr6gvhg4qrz9";
       type = "gem";
     };
-    version = "3.11.5";
+    version = "3.13.2";
   };
   omniauth = {
     dependencies = ["hashie" "rack"];
@@ -1348,10 +1407,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1z0f5sr2ddnvfva0jrfd4926nlv4528rfj7z595288n39304r092";
+      sha256 = "0m7q38kjm94wgq6h7hk9546yg33wcs3vf1v6zp0vx7nwkvfxh2j4";
       type = "gem";
     };
-    version = "8.0.0";
+    version = "9.0.0";
   };
   omniauth-github = {
     dependencies = ["omniauth" "omniauth-oauth2"];
@@ -1392,10 +1451,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10fr2b58sp7l6nfdvxpbi67374hkrvsf507cvda89jjs0jacy319";
+      sha256 = "1ry65f309rnzhgdjvqybkd5i4qp9rpk1gbp4dz02h4l6bkk6ya10";
       type = "gem";
     };
-    version = "1.7.1";
+    version = "1.7.2";
   };
   omniauth-twitter = {
     dependencies = ["omniauth-oauth" "rack"];
@@ -1408,26 +1467,16 @@
     };
     version = "1.4.0";
   };
-  onebox = {
-    dependencies = ["addressable" "htmlentities" "multi_json" "mustache" "nokogiri" "sanitize"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1swlysqwfc6mb7smv52yv12sd79dchjf2f6r738wrag0wp5hazqy";
-      type = "gem";
-    };
-    version = "2.2.17";
-  };
   openssl = {
+    dependencies = ["ipaddr"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03wbynzkhay7l1x76srjkg91q48mxl575vrxb3blfxlpqwsvvp0w";
+      sha256 = "0wkx3b598mxmr3idfbgas0cnrds54bfivnn1ip0d7z7kcr5vzbzn";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.2.1";
   };
   openssl-signature_algorithm = {
     dependencies = ["openssl"];
@@ -1459,10 +1508,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0055br0mibnqz0j8wvy20zry548dhkakws681bhj3ycb972awkzd";
+      sha256 = "1hkfpm78c2vs1qblnva3k1grijvxh87iixcnyd83s3lxrxsjvag4";
       type = "gem";
     };
-    version = "1.20.1";
+    version = "1.21.0";
   };
   parallel_tests = {
     dependencies = ["parallel"];
@@ -1470,10 +1519,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vrd24lg1pqxvp63664hrndywpdyn8i38j4gfvqk8zjl1mxy9840";
+      sha256 = "1vsfsfd194xnzjz94ml157w61fnag8jg47b4bssc508kb3vmk20w";
       type = "gem";
     };
-    version = "3.7.0";
+    version = "3.7.3";
   };
   parser = {
     dependencies = ["ast"];
@@ -1481,10 +1530,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pxsi1i5z506xfzhiyavlasf8777h55ab40phvp7pfv9npmd5pnj";
+      sha256 = "0sszdl9mpzqzn9kxrp28sqmg47mjxcwypr4d60vbajqba4v885di";
       type = "gem";
     };
-    version = "3.0.1.1";
+    version = "3.0.3.2";
   };
   pg = {
     groups = ["default"];
@@ -1555,10 +1604,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00839fhvcq73h9a4crbrk87y6bi2z4vp1zazxihn6w0mrwr51c3i";
+      sha256 = "1xblxnrs0c5m326v7kgr32k4m00cl2ipcf5m0qvyisrw62vd5dbn";
       type = "gem";
     };
-    version = "5.3.1";
+    version = "5.5.2";
   };
   r2 = {
     groups = ["default"];
@@ -1575,10 +1624,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      sha256 = "0la56m0z26j3mfn1a9lf2l03qx1xifanndf9p3vx1azf6sqy7v9d";
       type = "gem";
     };
-    version = "1.5.2";
+    version = "1.6.0";
   };
   rack = {
     groups = ["default" "development" "test"];
@@ -1600,10 +1649,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02rkbmi66pqcx8l4yxnhpiywdqhbza4m2i2b457q8imjvw950jhs";
+      sha256 = "03hcvjw9nrv0w6yjy2zkv4ivin9xg2wr7xfcvx7rc2msv1gmjb6z";
       type = "gem";
     };
-    version = "2.3.2";
+    version = "2.3.3";
   };
   rack-protection = {
     dependencies = ["rack"];
@@ -1644,10 +1693,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1icpqmxbppl4ynzmn6dx7wdil5hhq6fz707m9ya6d86c7ys8sd4f";
+      sha256 = "09qrfi3pgllxb08r024lln9k0qzxs57v0slsj8616xf9c0cwnwbk";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.4.2";
   };
   rails_failover = {
     dependencies = ["activerecord" "concurrent-ruby" "railties"];
@@ -1666,10 +1715,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09lwi5pd0bisy45pv85l8w7wm5f7l5bxpva0y7bcvqdrk49ykm1g";
+      sha256 = "1j44n1c19gbskzxskdipr5f6lgglpn398x9kcbpw452wwwav8rmf";
       type = "gem";
     };
-    version = "3.0.0";
+    version = "4.0.0";
   };
   railties = {
     dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
@@ -1677,10 +1726,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17r1pr8d467vh3zkciw4wmrcixj9zjrvd11nxn2z091bkzf66xq2";
+      sha256 = "1kwpm068cqys34p2g0j3l1g0cd5f3kxnsay5v7lmbd0sgarac0vy";
       type = "gem";
     };
-    version = "6.1.3.2";
+    version = "6.1.4.1";
   };
   rainbow = {
     groups = ["default" "development" "test"];
@@ -1703,20 +1752,20 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zjja00mzgx2lddb7qrn14k7qrnwhf4bpmnlqj78m1pfxh7svync";
+      sha256 = "0wb2x51parf6v78w0cic90m33bdc92y5h8rj4wqs75dhw1b69hc7";
       type = "gem";
     };
-    version = "0.19.1";
+    version = "0.20.0";
   };
   rake = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1iik52mf9ky4cgs38fp2m8r6skdkq1yz23vh18lk95fhbcxb6a67";
+      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
       type = "gem";
     };
-    version = "13.0.3";
+    version = "13.0.6";
   };
   rb-fsevent = {
     groups = ["development" "test"];
@@ -1769,10 +1818,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15x2sr6h094rjbvg8pkq6m3lcd5abpyx93aifvfdz3wv6x55xa48";
+      sha256 = "03r9739q3vq38g456snf3rk9hadf955bs5im6qs6m69h19mrz2yw";
       type = "gem";
     };
-    version = "4.2.5";
+    version = "4.5.1";
   };
   redis-namespace = {
     dependencies = ["redis"];
@@ -1790,10 +1839,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vg7imjnfcqjx7kw94ccj5r78j4g190cqzi1i59sh4a0l940b9cr";
+      sha256 = "008yn8j44414qxhn1c0nxp4a70rq0bqhz70hnjpgx8cjh2g0makp";
       type = "gem";
     };
-    version = "2.1.1";
+    version = "2.2.0";
   };
   request_store = {
     dependencies = ["rack"];
@@ -1842,20 +1891,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "073w0qgjydkqpsqsb9yr8qg0mhvwlzx6z53hqr2b5zifvb9wzh02";
+      sha256 = "0444sgvx3ahvgr3c9swpy32kcdpciwgcqahp3pb4m7d23xp1qjdc";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "2.1.0";
   };
   rqrcode_core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1djrfpzdy19c336nlzxdsm9qkrgqnm1himdawflsjsmxpq4j826c";
+      sha256 = "06ld6386hbdhy5h0k09axmgn424kavpc8f27k1vjhknjhbf8jjfg";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.2.0";
   };
   rspec = {
     dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
@@ -1918,20 +1967,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pj2a9vrkp2xzlq0810q90sdc2zcqc7k92n57hxzhri2vcspy7n6";
+      sha256 = "152yz205p8zi5nxxhs8z581rjdvvqsfjndklkvn11f2vi50nv7n9";
       type = "gem";
     };
-    version = "5.0.1";
+    version = "5.0.2";
   };
   rspec-support = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15j52parvb8cgvl6s0pbxi2ywxrv6x0764g222kz5flz0s4mycbl";
+      sha256 = "0pjckrh8q6sqxy38xw7f4ziylq1983k84xh927s6352pps68zj35";
       type = "gem";
     };
-    version = "3.10.2";
+    version = "3.10.3";
+  };
+  rss = {
+    dependencies = ["rexml"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1b1zx07kr64kkpm4lssd4r1a1qyr829ppmfl85i4adcvx9mqfid0";
+      type = "gem";
+    };
+    version = "0.2.9";
   };
   rswag-specs = {
     dependencies = ["activesupport" "json-schema" "railties"];
@@ -1960,10 +2020,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0chjr6i0g7frbp7dhi4d83ppf7akkdaw7mcgcwbxd6a9mairafpp";
+      sha256 = "03ivbqd5blsb7v5mhrzxvn23779rqpyrsm7l086pb6ihp47122qb";
       type = "gem";
     };
-    version = "1.14.0";
+    version = "1.23.0";
   };
   rubocop-ast = {
     dependencies = ["parser"];
@@ -1971,10 +2031,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hx4im1a2qpiwipvsl3fma358ixjp4h0mhj56ichq15xrq709qlf";
+      sha256 = "0bj8ppl4143f7pkcwm4l5wcahid6yzracdlzh1w2fpss89pic2rf";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "1.15.0";
   };
   rubocop-discourse = {
     dependencies = ["rubocop" "rubocop-rspec"];
@@ -1982,21 +2042,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1z1h8spsjnsqz6c25n9ib1yimkwr7a76bas8w1k9c404hcqhlahv";
+      sha256 = "01f4y7am9cq276zl8vsgv64w8wfmhpbzg7vzsifhgnnh92g6s04g";
       type = "gem";
     };
-    version = "2.4.1";
+    version = "2.5.0";
   };
   rubocop-rspec = {
-    dependencies = ["rubocop" "rubocop-ast"];
+    dependencies = ["rubocop"];
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r69qcwm74vsbp1s2gaqaf91kkrsn2mv4gk6rvfb2pxzmgyi0r9g";
+      sha256 = "0g7kwmb1ilmc8pfyvfh87yjp26qzij2ib7h3lqcl42cp33cg2zzk";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.6.0";
   };
   ruby-prof = {
     groups = ["development"];
@@ -2038,31 +2098,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15wfcqxyfgka05v2a7kpg64x57gl1y4xzvnc9lh60bqx5sf1iqrs";
+      sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
       type = "gem";
     };
-    version = "0.0.4";
+    version = "0.0.5";
   };
   rubyzip = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji";
+      sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.3.2";
   };
   sanitize = {
-    dependencies = ["crass" "nokogiri" "nokogumbo"];
+    dependencies = ["crass" "nokogiri"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xi2c9vbfjs0gk4i9y4mrlb3xx6g5lj22hlg5cx6hyc88ri7j4bc";
+      sha256 = "1zq8pxmsd1abw18zz6mazsm2jfpwmbgdxbpawb7bmwvkb2c5yyc1";
       type = "gem";
     };
-    version = "5.2.3";
+    version = "6.0.0";
   };
   sassc = {
     dependencies = ["ffi" "rake"];
@@ -2103,10 +2163,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qi7gzli00mqlaq9an28m6xd323k7grgq19r6dqa2amjnnxy41ld";
+      sha256 = "0z6v2acldnvqrnvfk70f9xq39ppw5j03kbz2hpz7s17lgnn21vx8";
       type = "gem";
     };
-    version = "4.5.1";
+    version = "5.0.0";
   };
   sidekiq = {
     dependencies = ["connection_pool" "rack" "redis"];
@@ -2114,10 +2174,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ac57q6lnqg9h9lsj49wlwhgsfqfr83lgka1c1srk6g8vghhz662";
+      sha256 = "0k38cbwhcj9ncfzlgfmvq2zqfdvldln58w8s8v89m0jqlhnhsqhj";
       type = "gem";
     };
-    version = "6.2.1";
+    version = "6.3.1";
   };
   simplecov = {
     dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"];
@@ -2167,10 +2227,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mwmz36265646xqfyczgr1mhkm1hfxgxxvgdgr4xfcbf2g72p1k2";
+      sha256 = "1b9i14qb27zs56hlcc2hf139l0ghbqnjpmfi0054dxycaxvk5min";
       type = "gem";
     };
-    version = "3.2.2";
+    version = "3.4.2";
   };
   sshkey = {
     groups = ["default"];
@@ -2201,10 +2261,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15jbm45jf1i8s1g5kj6pcfp6ddq9qfyy31lx3pff8g2w2hkhpik4";
+      sha256 = "1vg0zjfgibdcgkzb4c25v0f4v6v8mvpzvgcag194rwglmkkyrwkx";
       type = "gem";
     };
-    version = "1.0.5";
+    version = "1.0.7";
   };
   thor = {
     groups = ["default" "development" "test"];
@@ -2264,20 +2324,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wc47r23h063l8ysws8sy24gzh74mks81cak3lkzlrw4qkqb3sg4";
+      sha256 = "0jmbimpnpjdzz8hlrppgl9spm99qh3qzbx0b81k3gkgwba8nk3yd";
       type = "gem";
     };
-    version = "0.0.7.7";
+    version = "0.0.8";
   };
   unicode-display_width = {
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bilbnc8j6jkb59lrf177i3p1pdyxll0n8400hzqr35vl3r3kv2m";
+      sha256 = "0csjm9shhfik0ci9mgimb7hf3xgh7nx45rkd9rzgdz6vkwr8rzxn";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "2.1.0";
   };
   unicorn = {
     dependencies = ["kgio" "raindrops"];
@@ -2322,10 +2382,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "038igpmkpmn0nw0k7s4db8x88af1nwcy7wzh9m9c9q4p74h7rii0";
+      sha256 = "1l8vh8p0g92cqcvv0ra3mblsa4nczh0rz8nbwbkc3g3yzbva85xk";
       type = "gem";
     };
-    version = "3.12.2";
+    version = "3.14.0";
   };
   webpush = {
     dependencies = ["hkdf" "jwt"];
@@ -2363,9 +2423,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
+      sha256 = "18l4r6layck0d80ydc692mv1lxak5xbf6w2paj1x7m2ggbggzxgj";
       type = "gem";
     };
-    version = "2.4.2";
+    version = "2.5.1";
   };
 }
diff --git a/pkgs/servers/web-apps/discourse/update.py b/pkgs/servers/web-apps/discourse/update.py
index 8352ac09f367a..ebc85c02087a9 100755
--- a/pkgs/servers/web-apps/discourse/update.py
+++ b/pkgs/servers/web-apps/discourse/update.py
@@ -1,5 +1,6 @@
 #!/usr/bin/env nix-shell
 #! nix-shell -i python3 -p bundix bundler nix-update nix-universal-prefetch python3 python3Packages.requests python3Packages.click python3Packages.click-log
+from __future__ import annotations
 
 import click
 import click_log
@@ -13,16 +14,70 @@ import stat
 import json
 import requests
 import textwrap
+from functools import total_ordering
 from distutils.version import LooseVersion
+from itertools import zip_longest
 from pathlib import Path
-from typing import Iterable
+from typing import Union, Iterable
 
 
 logger = logging.getLogger(__name__)
 
 
+@total_ordering
+class DiscourseVersion:
+    """Represents a Discourse style version number and git tag.
+
+    This takes either a tag or version string as input and
+    extrapolates the other. Sorting is implemented to work as expected
+    in regard to A.B.C.betaD version numbers - 2.0.0.beta1 is
+    considered lower than 2.0.0.
+
+    """
+
+    tag: str = ""
+    version: str = ""
+    split_version: Iterable[Union[None, int, str]] = []
+
+    def __init__(self, version: str):
+        """Take either a tag or version number, calculate the other."""
+        if version.startswith('v'):
+            self.tag = version
+            self.version = version.lstrip('v')
+        else:
+            self.tag = 'v' + version
+            self.version = version
+        self.split_version = LooseVersion(self.version).version
+
+    def __eq__(self, other: DiscourseVersion):
+        """Versions are equal when their individual parts are."""
+        return self.split_version == other.split_version
+
+    def __gt__(self, other: DiscourseVersion):
+        """Check if this version is greater than the other.
+
+        Goes through the parts of the version numbers from most to
+        least significant, only continuing on to the next if the
+        numbers are equal and no decision can be made. If one version
+        ends in 'betaX' and the other doesn't, all else being equal,
+        the one without 'betaX' is considered greater, since it's the
+        release version.
+
+        """
+        for (this_ver, other_ver) in zip_longest(self.split_version, other.split_version):
+            if this_ver == other_ver:
+                continue
+            if type(this_ver) is int and type(other_ver) is int:
+                return this_ver > other_ver
+            elif 'beta' in [this_ver, other_ver]:
+                # release version (None) is greater than beta
+                return this_ver is None
+        else:
+            return False
+
+
 class DiscourseRepo:
-    version_regex = re.compile(r'^v\d+\.\d+\.\d+$')
+    version_regex = re.compile(r'^v\d+\.\d+\.\d+(\.beta\d+)?$')
     _latest_commit_sha = None
 
     def __init__(self, owner: str = 'discourse', repo: str = 'discourse'):
@@ -30,15 +85,14 @@ class DiscourseRepo:
         self.repo = repo
 
     @property
-    def tags(self) -> Iterable[str]:
+    def versions(self) -> Iterable[str]:
         r = requests.get(f'https://api.github.com/repos/{self.owner}/{self.repo}/git/refs/tags').json()
         tags = [x['ref'].replace('refs/tags/', '') for x in r]
 
         # filter out versions not matching version_regex
-        versions = list(filter(self.version_regex.match, tags))
-
-        # sort, but ignore v for sorting comparisons
-        versions.sort(key=lambda x: LooseVersion(x.replace('v', '')), reverse=True)
+        versions = filter(self.version_regex.match, tags)
+        versions = [DiscourseVersion(x) for x in versions]
+        versions.sort(reverse=True)
         return versions
 
     @property
@@ -50,24 +104,15 @@ class DiscourseRepo:
 
         return self._latest_commit_sha
 
-    @staticmethod
-    def rev2version(tag: str) -> str:
-        """
-        normalize a tag to a version number.
-        This obviously isn't very smart if we don't pass something that looks like a tag
-        :param tag: the tag to normalize
-        :return: a normalized version number
-        """
-        # strip v prefix
-        return re.sub(r'^v', '', tag)
-
     def get_file(self, filepath, rev):
         """returns file contents at a given rev :param filepath: the path to
         the file, relative to the repo root :param rev: the rev to
         fetch at :return:
 
         """
-        return requests.get(f'https://raw.githubusercontent.com/{self.owner}/{self.repo}/{rev}/{filepath}').text
+        r = requests.get(f'https://raw.githubusercontent.com/{self.owner}/{self.repo}/{rev}/{filepath}')
+        r.raise_for_status()
+        return r.text
 
 
 def _call_nix_update(pkg, version):
@@ -79,7 +124,7 @@ def _call_nix_update(pkg, version):
 def _nix_eval(expr: str):
     nixpkgs_path = Path(__file__).parent / '../../../../'
     try:
-        output = subprocess.check_output(['nix', 'eval', '--json', f'(with import {nixpkgs_path} {{}}; {expr})'], text=True)
+        output = subprocess.check_output(['nix-instantiate', '--strict', '--json', '--eval', '-E', f'(with import {nixpkgs_path} {{}}; {expr})'], text=True)
     except subprocess.CalledProcessError:
         return None
     return json.loads(output)
@@ -89,13 +134,13 @@ def _get_current_package_version(pkg: str):
     return _nix_eval(f'{pkg}.version')
 
 
-def _diff_file(filepath: str, old_version: str, new_version: str):
+def _diff_file(filepath: str, old_version: DiscourseVersion, new_version: DiscourseVersion):
     repo = DiscourseRepo()
 
     current_dir = Path(__file__).parent
 
-    old = repo.get_file(filepath, 'v' + old_version)
-    new = repo.get_file(filepath, 'v' + new_version)
+    old = repo.get_file(filepath, old_version.tag)
+    new = repo.get_file(filepath, new_version.tag)
 
     if old == new:
         click.secho(f'{filepath} is unchanged', fg='green')
@@ -111,7 +156,7 @@ def _diff_file(filepath: str, old_version: str, new_version: str):
             text=True
         )
 
-    click.secho(f'Diff for {filepath} ({old_version} -> {new_version}):', fg='bright_blue', bold=True)
+    click.secho(f'Diff for {filepath} ({old_version.version} -> {new_version.version}):', fg='bright_blue', bold=True)
     click.echo(diff_proc.stdout + '\n')
     return
 
@@ -119,7 +164,7 @@ def _diff_file(filepath: str, old_version: str, new_version: str):
 def _remove_platforms(rubyenv_dir: Path):
     for platform in ['arm64-darwin-20', 'x86_64-darwin-18',
                      'x86_64-darwin-19', 'x86_64-darwin-20',
-                     'x86_64-linux']:
+                     'x86_64-linux', 'aarch64-linux']:
         with open(rubyenv_dir / 'Gemfile.lock', 'r') as f:
             for line in f:
                 if platform in line:
@@ -153,10 +198,10 @@ def print_diffs(rev, reverse):
     """
     if rev == 'latest':
         repo = DiscourseRepo()
-        rev = repo.tags[0]
+        rev = repo.versions[0].tag
 
-    old_version = _get_current_package_version('discourse')
-    new_version = DiscourseRepo.rev2version(rev)
+    old_version = DiscourseVersion(_get_current_package_version('discourse'))
+    new_version = DiscourseVersion(rev)
 
     if reverse:
         old_version, new_version = new_version, old_version
@@ -170,30 +215,32 @@ def print_diffs(rev, reverse):
 def update(rev):
     """Update gem files and version.
 
-    REV should be the git rev to update to ('vX.Y.Z') or 'latest';
-    defaults to 'latest'.
+    REV should be the git rev to update to ('vX.Y.Z[.betaA]') or
+    'latest'; defaults to 'latest'.
 
     """
     repo = DiscourseRepo()
 
     if rev == 'latest':
-        rev = repo.tags[0]
-    logger.debug(f"Using rev {rev}")
+        version = repo.versions[0]
+    else:
+        version = DiscourseVersion(rev)
 
-    version = repo.rev2version(rev)
-    logger.debug(f"Using version {version}")
+    logger.debug(f"Using rev {version.tag}")
+    logger.debug(f"Using version {version.version}")
 
     rubyenv_dir = Path(__file__).parent / "rubyEnv"
 
     for fn in ['Gemfile.lock', 'Gemfile']:
         with open(rubyenv_dir / fn, 'w') as f:
-            f.write(repo.get_file(fn, rev))
+            f.write(repo.get_file(fn, version.tag))
 
     subprocess.check_output(['bundle', 'lock'], cwd=rubyenv_dir)
     _remove_platforms(rubyenv_dir)
     subprocess.check_output(['bundix'], cwd=rubyenv_dir)
 
-    _call_nix_update('discourse', repo.rev2version(rev))
+    _call_nix_update('discourse', version.version)
+
 
 @cli.command()
 def update_plugins():
@@ -212,9 +259,8 @@ def update_plugins():
         {'name': 'discourse-ldap-auth', 'owner': 'jonmbake'},
         {'name': 'discourse-math'},
         {'name': 'discourse-migratepassword', 'owner': 'discoursehosting'},
-        # We can't update this automatically at the moment because the plugin.rb
-        # tries to load a version number which breaks bundler called by this script.
-        # {'name': 'discourse-prometheus'},
+        {'name': 'discourse-prometheus'},
+        {'name': 'discourse-openid-connect'},
         {'name': 'discourse-saved-searches'},
         {'name': 'discourse-solved'},
         {'name': 'discourse-spoiler-alert'},
@@ -230,13 +276,34 @@ def update_plugins():
 
         repo = DiscourseRepo(owner=owner, repo=repo_name)
 
+        # implement the plugin pinning algorithm laid out here:
+        # https://meta.discourse.org/t/pinning-plugin-and-theme-versions-for-older-discourse-installs/156971
+        # this makes sure we don't upgrade plugins to revisions that
+        # are incompatible with the packaged Discourse version
+        try:
+            compatibility_spec = repo.get_file('.discourse-compatibility', repo.latest_commit_sha)
+            versions = [(DiscourseVersion(discourse_version), plugin_rev.strip(' '))
+                        for [discourse_version, plugin_rev]
+                        in [line.split(':')
+                            for line
+                            in compatibility_spec.splitlines()]]
+            discourse_version = DiscourseVersion(_get_current_package_version('discourse'))
+            versions = list(filter(lambda ver: ver[0] >= discourse_version, versions))
+            if versions == []:
+                rev = repo.latest_commit_sha
+            else:
+                rev = versions[0][1]
+                print(rev)
+        except requests.exceptions.HTTPError:
+            rev = repo.latest_commit_sha
+
         filename = _nix_eval(f'builtins.unsafeGetAttrPos "src" discourse.plugins.{name}')
         if filename is None:
             filename = Path(__file__).parent / 'plugins' / name / 'default.nix'
             filename.parent.mkdir()
 
             has_ruby_deps = False
-            for line in repo.get_file('plugin.rb', repo.latest_commit_sha).splitlines():
+            for line in repo.get_file('plugin.rb', rev).splitlines():
                 if 'gem ' in line:
                     has_ruby_deps = True
                     break
@@ -278,7 +345,7 @@ def update_plugins():
 
         prev_commit_sha = _nix_eval(f'discourse.plugins.{name}.src.rev')
 
-        if prev_commit_sha == repo.latest_commit_sha:
+        if prev_commit_sha == rev:
             click.echo(f'Plugin {name} is already at the latest revision')
             continue
 
@@ -287,14 +354,14 @@ def update_plugins():
             'nix-universal-prefetch', fetcher,
             '--owner', owner,
             '--repo', repo_name,
-            '--rev', repo.latest_commit_sha,
+            '--rev', rev,
         ], text=True).strip("\n")
 
-        click.echo(f"Update {name}, {prev_commit_sha} -> {repo.latest_commit_sha} in {filename}")
+        click.echo(f"Update {name}, {prev_commit_sha} -> {rev} in {filename}")
 
         with open(filename, 'r+') as f:
             content = f.read()
-            content = content.replace(prev_commit_sha, repo.latest_commit_sha)
+            content = content.replace(prev_commit_sha, rev)
             content = content.replace(prev_hash, new_hash)
             f.seek(0)
             f.write(content)
@@ -302,11 +369,19 @@ def update_plugins():
 
         rubyenv_dir = Path(filename).parent
         gemfile = rubyenv_dir / "Gemfile"
+        version_file_regex = re.compile(r'.*File\.expand_path\("\.\./(.*)", __FILE__\)')
         gemfile_text = ''
-        for line in repo.get_file('plugin.rb', repo.latest_commit_sha).splitlines():
+        for line in repo.get_file('plugin.rb', rev).splitlines():
             if 'gem ' in line:
                 gemfile_text = gemfile_text + line + os.linesep
 
+                version_file_match = version_file_regex.match(line)
+                if version_file_match is not None:
+                    filename = version_file_match.groups()[0]
+                    content = repo.get_file(filename, rev)
+                    with open(rubyenv_dir / filename, 'w') as f:
+                        f.write(content)
+
         if len(gemfile_text) > 0:
             if os.path.isfile(gemfile):
                 os.remove(gemfile)
diff --git a/pkgs/servers/web-apps/dokuwiki/default.nix b/pkgs/servers/web-apps/dokuwiki/default.nix
index 1f11734692818..7126c5b096e85 100644
--- a/pkgs/servers/web-apps/dokuwiki/default.nix
+++ b/pkgs/servers/web-apps/dokuwiki/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, writeText }:
+{ lib, stdenv, fetchFromGitHub, writeText, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "dokuwiki";
@@ -45,6 +45,10 @@ stdenv.mkDerivation rec {
     cp ${phpPluginsLocalConfig} $out/share/dokuwiki/conf/plugins.local.php
   '';
 
+  passthru.tests = {
+    inherit (nixosTests) dokuwiki;
+  };
+
   meta = with lib; {
     description = "Simple to use and highly versatile Open Source wiki software that doesn't require a database";
     license = licenses.gpl2;
diff --git a/pkgs/servers/web-apps/hedgedoc/default.nix b/pkgs/servers/web-apps/hedgedoc/default.nix
index 62fa819fb8a53..c38aac202d216 100644
--- a/pkgs/servers/web-apps/hedgedoc/default.nix
+++ b/pkgs/servers/web-apps/hedgedoc/default.nix
@@ -7,7 +7,7 @@
 , nodejs
 , mkYarnPackage
 , fetchYarnDeps
-, python2
+, python3
 , nixosTests
 , buildGoModule
 }:
@@ -43,7 +43,7 @@ mkYarnPackage rec {
   };
 
   nativeBuildInputs = [ which makeWrapper ];
-  extraBuildInputs = [ python2 esbuild-hedgedoc ];
+  extraBuildInputs = [ python3 esbuild-hedgedoc ];
 
   offlineCache = fetchYarnDeps {
     inherit yarnLock;
diff --git a/pkgs/servers/web-apps/lemmy/package.json b/pkgs/servers/web-apps/lemmy/package.json
index 8da47bfd5a1c0..5007b55d48114 100644
--- a/pkgs/servers/web-apps/lemmy/package.json
+++ b/pkgs/servers/web-apps/lemmy/package.json
@@ -1,7 +1,7 @@
 {
   "name": "lemmy-ui",
   "description": "An isomorphic UI for lemmy",
-  "version": "0.13.3",
+  "version": "0.14.0",
   "author": "Dessalines <tyhou13@gmx.com>",
   "license": "AGPL-3.0",
   "scripts": {
@@ -12,24 +12,25 @@
     "lint": "node generate_translations.js && tsc --noEmit && eslint --report-unused-disable-directives --ext .js,.ts,.tsx src",
     "prebuild:dev": "yarn clean && node generate_translations.js",
     "prebuild:prod": "yarn clean && node generate_translations.js",
+    "prepare": "husky install",
     "start": "yarn build:dev --watch"
   },
   "repository": "https://github.com/LemmyNet/lemmy-ui",
   "dependencies": {
-    "@typescript-eslint/parser": "^4.32.0",
+    "@typescript-eslint/parser": "^5.4.0",
     "autosize": "^5.0.1",
     "check-password-strength": "^2.0.3",
     "choices.js": "^9.0.1",
     "emoji-short-name": "^1.0.0",
     "express": "~4.17.1",
-    "i18next": "^21.1.1",
-    "inferno": "^7.4.10",
-    "inferno-create-element": "^7.4.10",
+    "i18next": "^21.5.0",
+    "inferno": "^7.4.11",
+    "inferno-create-element": "^7.4.11",
     "inferno-helmet": "^5.2.1",
-    "inferno-hydrate": "^7.4.10",
+    "inferno-hydrate": "^7.4.11",
     "inferno-i18next-dess": "^0.0.1",
-    "inferno-router": "^7.4.10",
-    "inferno-server": "^7.4.10",
+    "inferno-router": "^7.4.11",
+    "inferno-server": "^7.4.11",
     "isomorphic-cookie": "^1.2.4",
     "jwt-decode": "^3.1.2",
     "markdown-it": "^12.1.0",
@@ -40,57 +41,57 @@
     "moment": "^2.29.1",
     "reconnecting-websocket": "^4.4.0",
     "register-service-worker": "^1.7.2",
-    "rxjs": "^7.2.0",
+    "rxjs": "^7.4.0",
     "serialize-javascript": "^6.0.0",
-    "tippy.js": "^6.3.1",
-    "toastify-js": "^1.11.1",
+    "tippy.js": "^6.3.7",
+    "toastify-js": "^1.11.2",
     "tributejs": "^5.1.3",
-    "ws": "^8.2.2"
+    "ws": "^8.2.3"
   },
   "devDependencies": {
-    "@babel/core": "^7.15.5",
-    "@babel/plugin-transform-runtime": "^7.14.5",
-    "@babel/plugin-transform-typescript": "^7.15.4",
-    "@babel/preset-env": "7.15.6",
-    "@babel/preset-typescript": "^7.14.5",
-    "@babel/runtime": "^7.15.4",
+    "@babel/core": "^7.16.0",
+    "@babel/plugin-transform-runtime": "^7.16.0",
+    "@babel/plugin-transform-typescript": "^7.16.1",
+    "@babel/preset-env": "7.16.0",
+    "@babel/preset-typescript": "^7.16.0",
+    "@babel/runtime": "^7.16.3",
     "@types/autosize": "^4.0.0",
     "@types/express": "^4.17.13",
-    "@types/node": "^16.10.1",
+    "@types/node": "^16.11.7",
     "@types/node-fetch": "^2.5.11",
     "@types/serialize-javascript": "^5.0.1",
-    "@typescript-eslint/eslint-plugin": "^4.32.0",
-    "babel-loader": "^8.2.2",
+    "@typescript-eslint/eslint-plugin": "^5.4.0",
+    "babel-loader": "^8.2.3",
     "babel-plugin-inferno": "^6.3.0",
-    "bootstrap": "^5.1.1",
-    "bootswatch": "^5.1.1",
+    "bootstrap": "^5.1.3",
+    "bootswatch": "^5.1.3",
     "clean-webpack-plugin": "^4.0.0",
-    "copy-webpack-plugin": "^9.0.1",
-    "css-loader": "^6.3.0",
-    "eslint": "^7.30.0",
+    "copy-webpack-plugin": "^9.1.0",
+    "css-loader": "^6.5.1",
+    "eslint": "^8.2.0",
     "eslint-plugin-prettier": "^4.0.0",
-    "husky": "^7.0.2",
+    "husky": "^7.0.4",
     "import-sort-style-module": "^6.0.0",
-    "iso-639-1": "^2.1.9",
-    "lemmy-js-client": "0.13.0",
-    "lint-staged": "^11.0.1",
-    "mini-css-extract-plugin": "^2.3.0",
+    "iso-639-1": "^2.1.10",
+    "lemmy-js-client": "0.14.0-rc.1",
+    "lint-staged": "^11.2.6",
+    "mini-css-extract-plugin": "^2.4.4",
     "node-fetch": "^2.6.1",
     "node-sass": "^6.0.1",
     "prettier": "^2.4.1",
     "prettier-plugin-import-sort": "^0.0.7",
     "prettier-plugin-organize-imports": "^2.3.4",
-    "prettier-plugin-packagejson": "^2.2.13",
+    "prettier-plugin-packagejson": "^2.2.15",
     "rimraf": "^3.0.2",
     "run-node-webpack-plugin": "^1.3.0",
-    "sass-loader": "^12.1.0",
+    "sass-loader": "^12.3.0",
     "sortpack": "^2.2.0",
-    "style-loader": "^3.3.0",
-    "terser": "^5.9.0",
-    "typescript": "^4.4.3",
-    "webpack": "5.54.0",
-    "webpack-cli": "^4.7.2",
-    "webpack-dev-server": "4.3.0",
+    "style-loader": "^3.3.1",
+    "terser": "^5.10.0",
+    "typescript": "^4.4.4",
+    "webpack": "5.64.1",
+    "webpack-cli": "^4.9.1",
+    "webpack-dev-server": "4.5.0",
     "webpack-node-externals": "^3.0.0"
   },
   "engines": {
diff --git a/pkgs/servers/web-apps/lemmy/pin.json b/pkgs/servers/web-apps/lemmy/pin.json
index 4fca9035e28ee..399fa68c8d879 100644
--- a/pkgs/servers/web-apps/lemmy/pin.json
+++ b/pkgs/servers/web-apps/lemmy/pin.json
@@ -1,7 +1,7 @@
 {
-  "version": "0.13.3",
-  "serverSha256": "sha256-Ht+gcNv8gQAQtEuAJ/QH4nNvo+PZogNB09f4eRlvIYg=",
-  "serverCargoSha256": "sha256-j/l/muCQefvuuWsi+Iahr1M4V6AUzmxm3pr7cJxw7Ww=",
-  "uiSha256": "sha256-uHb+V3zadiHlExpmAdRLoV3F/0mrYrko6RTDJcw9YO4=",
-  "uiYarnDepsSha256": "sha256-53sa6uL1+SvhtUtKdS36rBcJVgVXhnNdITWPyauLrx4="
+  "version": "0.14.0",
+  "serverSha256": "sha256-rrLOWoy4GkVtfIPpyR0Zwvnqq39CoZRDaVPNSpeJpkA=",
+  "serverCargoSha256": "sha256-6HrsMwzcmNw8udsCdvn8zgIWN0N3Vvsn9bFk+5tBOds=",
+  "uiSha256": "sha256-e+ajyUc2P5eK1dH7qQsC9BmZgT3NCGLbbzbUE3i2rXY=",
+  "uiYarnDepsSha256": "sha256-g3jCc98ftFyvZGD2bESY1eIsLZyQxZpDxgHdRGu78vs="
 }
diff --git a/pkgs/servers/web-apps/lemmy/update.sh b/pkgs/servers/web-apps/lemmy/update.sh
index 846804a97e72f..62159618ce2fa 100755
--- a/pkgs/servers/web-apps/lemmy/update.sh
+++ b/pkgs/servers/web-apps/lemmy/update.sh
@@ -4,27 +4,27 @@
 # TODO set to `verbose` or `extdebug` once implemented in oil
 shopt --set xtrace
 
-var directory = $(dirname $0 | xargs realpath)
-var owner = "LemmyNet"
-var ui_repo = "lemmy-ui"
-var server_repo = "lemmy"
-var latest_rev = $(curl -q https://api.github.com/repos/${owner}/${server_repo}/releases/latest | \
+const directory = $(dirname $0 | xargs realpath)
+const owner = "LemmyNet"
+const ui_repo = "lemmy-ui"
+const server_repo = "lemmy"
+const latest_rev = $(curl -q https://api.github.com/repos/${owner}/${server_repo}/releases/latest | \
   jq -r '.tag_name')
-var latest_version = $(echo $latest_rev)
-var current_version = $(jq -r '.version' $directory/pin.json)
+const latest_version = $(echo $latest_rev)
+const current_version = $(jq -r '.version' $directory/pin.json)
 if ($latest_version === $current_version) {
   echo "lemmy is already up-to-date"
   return 0
 } else {
   # for some strange reason, hydra fails on reading upstream package.json directly
-  var source = "https://raw.githubusercontent.com/$owner/$ui_repo/$latest_version"
-  var package_json = "$(curl -qf $source/package.json)"
+  const source = "https://raw.githubusercontent.com/$owner/$ui_repo/$latest_version"
+  const package_json = $(curl -qf $source/package.json)
   echo $package_json > $directory/package.json
 
-  var server_tarball_meta = $(nix-prefetch-github $owner $server_repo --rev "$latest_rev")
-  var server_tarball_hash = "sha256-$(echo $server_tarball_meta | jq -r '.sha256')"
-  var ui_tarball_meta = $(nix-prefetch-github $owner $ui_repo --rev "$latest_rev")
-  var ui_tarball_hash = "sha256-$(echo $ui_tarball_meta | jq -r '.sha256')"
+  const server_tarball_meta = $(nix-prefetch-github $owner $server_repo --rev $latest_rev)
+  const server_tarball_hash = "sha256-$(echo $server_tarball_meta | jq -r '.sha256')"
+  const ui_tarball_meta = $(nix-prefetch-github $owner $ui_repo --rev $latest_rev)
+  const ui_tarball_hash = "sha256-$(echo $ui_tarball_meta | jq -r '.sha256')"
 
   jq ".version = \"$latest_version\" | \
       .\"serverSha256\" = \"$server_tarball_hash\" | \
@@ -32,12 +32,12 @@ if ($latest_version === $current_version) {
       .\"serverCargoSha256\" = \"\" | \
       .\"uiYarnDepsSha256\" = \"\"" $directory/pin.json | sponge $directory/pin.json
 
-  var new_cargo_sha256 = $(nix-build -A lemmy-server 2>&1 | \
+  const new_cargo_sha256 = $(nix-build -A lemmy-server 2>&1 | \
     tail -n 2 | \
     head -n 1 | \
     sd '\s+got:\s+' '')
 
-  var new_offline_cache_sha256 = $(nix-build -A lemmy-ui 2>&1 | \
+  const new_offline_cache_sha256 = $(nix-build -A lemmy-ui 2>&1 | \
     tail -n 2 | \
     head -n 1 | \
     sd '\s+got:\s+' '')
@@ -46,3 +46,4 @@ if ($latest_version === $current_version) {
       .\"uiYarnDepsSha256\" = \"$new_offline_cache_sha256\"" \
     $directory/pin.json | sponge $directory/pin.json
 }
+
diff --git a/pkgs/servers/web-apps/mediawiki/default.nix b/pkgs/servers/web-apps/mediawiki/default.nix
index d321a3ca11e0e..650b27a7f554c 100644
--- a/pkgs/servers/web-apps/mediawiki/default.nix
+++ b/pkgs/servers/web-apps/mediawiki/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mediawiki";
-  version = "1.36.1";
+  version = "1.37.1";
 
   src = with lib; fetchurl {
     url = "https://releases.wikimedia.org/mediawiki/${versions.majorMinor version}/${pname}-${version}.tar.gz";
-    sha256 = "0ymda3x58a7ic4bwhbkxc7rskkwn164nplxzq9g4w9qnmwcqnsg6";
+    sha256 = "sha256-U0NuktwwrbFLZ5fYE50gaWpUYVJfOKN1yD5DXPBC4uc=";
   };
 
   prePatch = ''
@@ -34,6 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     homepage = "https://www.mediawiki.org/";
     platforms = platforms.all;
-    maintainers = [ maintainers.redvers ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/servers/web-apps/sogo/default.nix b/pkgs/servers/web-apps/sogo/default.nix
index e4dd796317a86..26586fbdabe67 100644
--- a/pkgs/servers/web-apps/sogo/default.nix
+++ b/pkgs/servers/web-apps/sogo/default.nix
@@ -1,19 +1,19 @@
 { gnustep, lib, fetchFromGitHub, fetchpatch, makeWrapper, python3, lndir
-, openssl, openldap, sope, libmemcached, curl, libsodium, libytnef, libzip, pkg-config, nixosTests }:
+, openssl, openldap, sope, libmemcached, curl, libsodium, libytnef, libzip, pkg-config, nixosTests
+, oathToolkit }:
 gnustep.stdenv.mkDerivation rec {
   pname = "SOGo";
-  version = "5.3.0";
+  version = "5.4.0";
 
   src = fetchFromGitHub {
     owner = "inverse-inc";
     repo = pname;
     rev = "SOGo-${version}";
-    sha256 = "0f09b2ga43xdd8w14llclrsdxc1y8xb3g1h15lahxq82xkvixjjl";
+    sha256 = "0fwc9ia84f4ijnl5ymn4f6s1n8v3g7rqvpqaaadyw8jwj9x26a6k";
   };
 
   nativeBuildInputs = [ gnustep.make makeWrapper python3 ];
-  buildInputs = [ gnustep.base sope openssl libmemcached curl libsodium libytnef libzip pkg-config ]
-    ++ lib.optional (openldap != null) openldap;
+  buildInputs = [ gnustep.base sope openssl libmemcached curl libsodium libytnef libzip pkg-config openldap oathToolkit ];
 
   patches = [
     # TODO: take a closer look at other patches in https://sources.debian.org/patches/sogo/ and https://github.com/Skrupellos/sogo-patches
@@ -41,7 +41,11 @@ gnustep.stdenv.mkDerivation rec {
     find . -type f -name GNUmakefile -exec sed -i "s:\\$.GNUSTEP_MAKEFILES.:$PWD/makefiles:g" {} +
   '';
 
-  configureFlags = [ "--disable-debug" "--with-ssl=ssl" ];
+  configureFlags = [
+    "--disable-debug"
+    "--with-ssl=ssl"
+    "--enable-mfa"
+  ];
 
   preFixup = ''
     # Create gnustep.conf
diff --git a/pkgs/servers/web-apps/whitebophir/node-packages-generated.nix b/pkgs/servers/web-apps/whitebophir/node-packages-generated.nix
index d5ecdf2f5d41f..5a511da72a480 100644
--- a/pkgs/servers/web-apps/whitebophir/node-packages-generated.nix
+++ b/pkgs/servers/web-apps/whitebophir/node-packages-generated.nix
@@ -4,13 +4,13 @@
 
 let
   sources = {
-    "@financial-times/polyfill-useragent-normaliser-1.10.0" = {
+    "@financial-times/polyfill-useragent-normaliser-1.10.1" = {
       name = "_at_financial-times_slash_polyfill-useragent-normaliser";
       packageName = "@financial-times/polyfill-useragent-normaliser";
-      version = "1.10.0";
+      version = "1.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@financial-times/polyfill-useragent-normaliser/-/polyfill-useragent-normaliser-1.10.0.tgz";
-        sha512 = "OQYm8qoegUzHZgpNjw0QSmcoH8Tu+fbY9/wTOqbK/2lj3qWNZpGdBimTV1qp8xwF+SVyL2vNzZEjTxSlbjNOSA==";
+        url = "https://registry.npmjs.org/@financial-times/polyfill-useragent-normaliser/-/polyfill-useragent-normaliser-1.10.1.tgz";
+        sha512 = "u+VCD2ISgkh6eoxdyb0L8bTApdU8t3fvHLS9ZXokC02b8iQD8nkRcpui5BIbuF+aYkWkTpaJhUInCueAGDBVAw==";
       };
     };
     "@financial-times/useragent_parser-1.6.0" = {
@@ -22,103 +22,13 @@ let
         sha512 = "v6Ucl//xSVhpyTtHMVCA9uv9W7CVwj8vBAQFKFDkfGC1DquBobOMhnzH9Odc+Tunf+i4WRnNgt90fQ7CSAbU3g==";
       };
     };
-    "@formatjs/ecma402-abstract-1.8.0" = {
-      name = "_at_formatjs_slash_ecma402-abstract";
-      packageName = "@formatjs/ecma402-abstract";
-      version = "1.8.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.8.0.tgz";
-        sha512 = "X+nxZcIQr0YfYNtw1ZkHjN3YSyi0fEmdAJqRzk24KwNvqLv7GmVfw70mf7ADnwOvkcrSaAdx24GfAqckGTv9ww==";
-      };
-    };
-    "@formatjs/intl-datetimeformat-4.1.0" = {
-      name = "_at_formatjs_slash_intl-datetimeformat";
-      packageName = "@formatjs/intl-datetimeformat";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@formatjs/intl-datetimeformat/-/intl-datetimeformat-4.1.0.tgz";
-        sha512 = "rEAPnIIsiOpjXMqoMdxClJ4Q2uhKTN1WH2fQUCJrg4FYdqfevJeymSowdLcOi1AYARIoTXTmlqS8pHIJx62VEw==";
-      };
-    };
-    "@formatjs/intl-displaynames-5.1.0" = {
-      name = "_at_formatjs_slash_intl-displaynames";
-      packageName = "@formatjs/intl-displaynames";
-      version = "5.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-5.1.0.tgz";
-        sha512 = "2pwIlHcNBZ281ySsz/E6JURVDxWsIxHn/HyxmylxBQMeW2HeFq1YuP6ycAxSMfp+EtWAN4v8TgWJQM+YBI22FA==";
-      };
-    };
-    "@formatjs/intl-getcanonicallocales-1.6.0" = {
-      name = "_at_formatjs_slash_intl-getcanonicallocales";
-      packageName = "@formatjs/intl-getcanonicallocales";
-      version = "1.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@formatjs/intl-getcanonicallocales/-/intl-getcanonicallocales-1.6.0.tgz";
-        sha512 = "1967VujZeow0K0NpzerdNOaskcE0KwnnchxT8TzlkLs4RjXx7Uz0bjQPtUYGV7kvbgMJ9qb6tWmCqIwe3sBKUw==";
-      };
-    };
-    "@formatjs/intl-listformat-6.1.0" = {
-      name = "_at_formatjs_slash_intl-listformat";
-      packageName = "@formatjs/intl-listformat";
-      version = "6.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-6.1.0.tgz";
-        sha512 = "NsDKO0U1mVFZmoyZ0ztFL+biqztDKv1qdSvPA1S5yOYZddDy6G9SpnBZgNjhxUFIBqycNW95ibO/jrI5Ou4s5Q==";
-      };
-    };
-    "@formatjs/intl-locale-2.4.26" = {
-      name = "_at_formatjs_slash_intl-locale";
-      packageName = "@formatjs/intl-locale";
-      version = "2.4.26";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@formatjs/intl-locale/-/intl-locale-2.4.26.tgz";
-        sha512 = "f5NyHb5qdfA0oO2IGLhNU0k9BWq8xI26VqxzZqjTfEKnn8xJ+SBE9drwRfTqlRz6pmvztPmkDg3FSflmGdDKGw==";
-      };
-    };
-    "@formatjs/intl-numberformat-7.1.0" = {
-      name = "_at_formatjs_slash_intl-numberformat";
-      packageName = "@formatjs/intl-numberformat";
-      version = "7.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@formatjs/intl-numberformat/-/intl-numberformat-7.1.0.tgz";
-        sha512 = "zwjacMSn+Ide2RXK2PN0veB7N7ay10tQ1Pb8eXeMB7zjRjJXHROi8O1ZA0dpJid0lw/5+5G2/lEdYvsPWLkaZA==";
-      };
-    };
-    "@formatjs/intl-pluralrules-4.0.20" = {
-      name = "_at_formatjs_slash_intl-pluralrules";
-      packageName = "@formatjs/intl-pluralrules";
-      version = "4.0.20";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@formatjs/intl-pluralrules/-/intl-pluralrules-4.0.20.tgz";
-        sha512 = "ayyjvIh9ShXQxo0Y9GhUTyW9zyB3jiBFRIEhMmGowpIlTVRhOwl57XZ+YuUgo/yCvtJqnvGPu/4/fQTouxHuGw==";
-      };
-    };
-    "@formatjs/intl-relativetimeformat-9.1.0" = {
-      name = "_at_formatjs_slash_intl-relativetimeformat";
-      packageName = "@formatjs/intl-relativetimeformat";
-      version = "9.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@formatjs/intl-relativetimeformat/-/intl-relativetimeformat-9.1.0.tgz";
-        sha512 = "F4HmAk/ZYy9VNbrNOayGfPKEnj2ey6M9kMKf+UKL6QL21FOxLyY6e4okSG6VbAjZ0cYgKvEiNDjSuWP86qSo0g==";
-      };
-    };
-    "@juggle/resize-observer-3.3.1" = {
-      name = "_at_juggle_slash_resize-observer";
-      packageName = "@juggle/resize-observer";
-      version = "3.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.3.1.tgz";
-        sha512 = "zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw==";
-      };
-    };
-    "@types/component-emitter-1.2.10" = {
+    "@types/component-emitter-1.2.11" = {
       name = "_at_types_slash_component-emitter";
       packageName = "@types/component-emitter";
-      version = "1.2.10";
+      version = "1.2.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz";
-        sha512 = "bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==";
+        url = "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz";
+        sha512 = "SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==";
       };
     };
     "@types/cookie-0.4.1" = {
@@ -139,40 +49,13 @@ let
         sha512 = "vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==";
       };
     };
-    "@types/node-16.4.11" = {
+    "@types/node-17.0.0" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "16.4.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-16.4.11.tgz";
-        sha512 = "nWSFUbuNiPKJEe1IViuodSI+9cM+vpM8SWF/O6dJK7wmGRNq55U7XavJHrlRrPkSMuUZUFzg1xaZ1B+ZZCrRWw==";
-      };
-    };
-    "@webcomponents/template-1.5.0" = {
-      name = "_at_webcomponents_slash_template";
-      packageName = "@webcomponents/template";
-      version = "1.5.0";
+      version = "17.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webcomponents/template/-/template-1.5.0.tgz";
-        sha512 = "DPQgBAedzjsFD7rgv7b6OKmpHq5VTBUCLmYfDiov2FC2C79QGaz+4iNmlVAem5iSicvN8DWTwU1kZ48XYLtuqg==";
-      };
-    };
-    "Base64-1.1.0" = {
-      name = "Base64";
-      packageName = "Base64";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/Base64/-/Base64-1.1.0.tgz";
-        sha512 = "qeacf8dvGpf+XAT27ESHMh7z84uRzj/ua2pQdJg483m3bEXv/kVFtDnMgvf70BQGqzbZhR9t6BmASzKvqfJf3Q==";
-      };
-    };
-    "abort-controller-3.0.0" = {
-      name = "abort-controller";
-      packageName = "abort-controller";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz";
-        sha512 = "h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==";
+        url = "https://registry.npmjs.org/@types/node/-/node-17.0.0.tgz";
+        sha512 = "eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==";
       };
     };
     "accept-language-parser-1.5.0" = {
@@ -193,49 +76,22 @@ let
         sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
       };
     };
-    "align-text-0.1.4" = {
-      name = "align-text";
-      packageName = "align-text";
-      version = "0.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz";
-        sha1 = "0cd90a561093f35d0a99256c22b7069433fad117";
-      };
-    };
-    "async-mutex-0.3.1" = {
+    "async-mutex-0.3.2" = {
       name = "async-mutex";
       packageName = "async-mutex";
-      version = "0.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/async-mutex/-/async-mutex-0.3.1.tgz";
-        sha512 = "vRfQwcqBnJTLzVQo72Sf7KIUbcSUP5hNchx6udI1U6LuPQpfePgdjJzlCe76yFZ8pxlLjn9lwcl/Ya0TSOv0Tw==";
-      };
-    };
-    "audio-context-polyfill-1.0.0" = {
-      name = "audio-context-polyfill";
-      packageName = "audio-context-polyfill";
-      version = "1.0.0";
+      version = "0.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/audio-context-polyfill/-/audio-context-polyfill-1.0.0.tgz";
-        sha1 = "4b728faf0a19555194d4fbd05582f833fdcd137b";
+        url = "https://registry.npmjs.org/async-mutex/-/async-mutex-0.3.2.tgz";
+        sha512 = "HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA==";
       };
     };
-    "balanced-match-1.0.2" = {
-      name = "balanced-match";
-      packageName = "balanced-match";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz";
-        sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==";
-      };
-    };
-    "base64-arraybuffer-0.1.4" = {
+    "base64-arraybuffer-1.0.1" = {
       name = "base64-arraybuffer";
       packageName = "base64-arraybuffer";
-      version = "0.1.4";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz";
-        sha1 = "9818c79e059b1355f97e0428a017c838e90ba812";
+        url = "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz";
+        sha512 = "vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA==";
       };
     };
     "base64id-2.0.0" = {
@@ -247,51 +103,6 @@ let
         sha512 = "lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==";
       };
     };
-    "brace-expansion-1.1.11" = {
-      name = "brace-expansion";
-      packageName = "brace-expansion";
-      version = "1.1.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
-        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
-      };
-    };
-    "camelcase-1.2.1" = {
-      name = "camelcase";
-      packageName = "camelcase";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz";
-        sha1 = "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39";
-      };
-    };
-    "center-align-0.1.3" = {
-      name = "center-align";
-      packageName = "center-align";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz";
-        sha1 = "aa0d32629b6ee972200411cbd4461c907bc2b7ad";
-      };
-    };
-    "cldr-core-38.1.0" = {
-      name = "cldr-core";
-      packageName = "cldr-core";
-      version = "38.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cldr-core/-/cldr-core-38.1.0.tgz";
-        sha512 = "Da9xKjDp4qGGIX0VDsBqTan09iR5nuYD2a/KkfEaUyqKhu6wFVNRiCpPDXeRbpVwPBY6PgemV8WiHatMhcpy4A==";
-      };
-    };
-    "cliui-2.1.0" = {
-      name = "cliui";
-      packageName = "cliui";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz";
-        sha1 = "4b475760ff80264c762c3a1719032e91c7fea0d1";
-      };
-    };
     "component-emitter-1.3.0" = {
       name = "component-emitter";
       packageName = "component-emitter";
@@ -301,15 +112,6 @@ let
         sha512 = "Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==";
       };
     };
-    "concat-map-0.0.1" = {
-      name = "concat-map";
-      packageName = "concat-map";
-      version = "0.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
-        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
-      };
-    };
     "cookie-0.4.1" = {
       name = "cookie";
       packageName = "cookie";
@@ -319,13 +121,13 @@ let
         sha512 = "ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==";
       };
     };
-    "core-util-is-1.0.2" = {
+    "core-util-is-1.0.3" = {
       name = "core-util-is";
       packageName = "core-util-is";
-      version = "1.0.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
-        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz";
+        sha512 = "ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==";
       };
     };
     "cors-2.8.5" = {
@@ -337,15 +139,6 @@ let
         sha512 = "KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==";
       };
     };
-    "current-script-polyfill-1.0.0" = {
-      name = "current-script-polyfill";
-      packageName = "current-script-polyfill";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/current-script-polyfill/-/current-script-polyfill-1.0.0.tgz";
-        sha1 = "f31cf7e4f3e218b0726e738ca92a02d3488ef615";
-      };
-    };
     "debug-2.6.9" = {
       name = "debug";
       packageName = "debug";
@@ -355,40 +148,13 @@ let
         sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
       };
     };
-    "debug-4.1.1" = {
+    "debug-4.3.3" = {
       name = "debug";
       packageName = "debug";
-      version = "4.1.1";
+      version = "4.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz";
-        sha512 = "pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==";
-      };
-    };
-    "debug-4.3.2" = {
-      name = "debug";
-      packageName = "debug";
-      version = "4.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz";
-        sha512 = "mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==";
-      };
-    };
-    "decamelize-1.2.0" = {
-      name = "decamelize";
-      packageName = "decamelize";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
-        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
-      };
-    };
-    "deep-is-0.1.3" = {
-      name = "deep-is";
-      packageName = "deep-is";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz";
-        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+        url = "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz";
+        sha512 = "/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==";
       };
     };
     "depd-1.1.2" = {
@@ -409,15 +175,6 @@ let
         sha1 = "978857442c44749e4206613e37946205826abd80";
       };
     };
-    "diff-4.0.2" = {
-      name = "diff";
-      packageName = "diff";
-      version = "4.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz";
-        sha512 = "58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==";
-      };
-    };
     "ee-first-1.1.1" = {
       name = "ee-first";
       packageName = "ee-first";
@@ -436,22 +193,22 @@ let
         sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
       };
     };
-    "engine.io-5.1.1" = {
+    "engine.io-6.1.0" = {
       name = "engine.io";
       packageName = "engine.io";
-      version = "5.1.1";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io/-/engine.io-5.1.1.tgz";
-        sha512 = "aMWot7H5aC8L4/T8qMYbLdvKlZOdJTH54FxfdFunTGvhMx1BHkJOntWArsVfgAZVwAO9LC2sryPWRcEeUzCe5w==";
+        url = "https://registry.npmjs.org/engine.io/-/engine.io-6.1.0.tgz";
+        sha512 = "ErhZOVu2xweCjEfYcTdkCnEYUiZgkAcBBAhW4jbIvNG8SLU3orAqoJCiytZjYF7eTpVmmCrLDjLIEaPlUAs1uw==";
       };
     };
-    "engine.io-parser-4.0.2" = {
+    "engine.io-parser-5.0.2" = {
       name = "engine.io-parser";
       packageName = "engine.io-parser";
-      version = "4.0.2";
+      version = "5.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz";
-        sha512 = "sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==";
+        url = "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.2.tgz";
+        sha512 = "wuiO7qO/OEkPJSFueuATIXtrxF7/6GTbAO9QLv7nnbjwZ5tYhLm9zxvLwxstRs0dcT0KUlWTjtIOs1T86jt12g==";
       };
     };
     "escape-html-1.0.3" = {
@@ -472,33 +229,6 @@ let
         sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
       };
     };
-    "event-source-polyfill-1.0.24" = {
-      name = "event-source-polyfill";
-      packageName = "event-source-polyfill";
-      version = "1.0.24";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.24.tgz";
-        sha512 = "aEtMhrH5ww3X6RgbsNcwu0whw8zjOoeRnwPqRKqKuxWS5KlAZhCY+rTm6wMlHOXbxmLGn8lW6Xox7rfpBExzGA==";
-      };
-    };
-    "event-target-shim-5.0.1" = {
-      name = "event-target-shim";
-      packageName = "event-target-shim";
-      version = "5.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz";
-        sha512 = "i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==";
-      };
-    };
-    "fastestsmallesttextencoderdecoder-1.0.22" = {
-      name = "fastestsmallesttextencoderdecoder";
-      packageName = "fastestsmallesttextencoderdecoder";
-      version = "1.0.22";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz";
-        sha512 = "Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==";
-      };
-    };
     "fresh-0.5.2" = {
       name = "fresh";
       packageName = "fresh";
@@ -526,31 +256,13 @@ let
         sha1 = "18282b27d08a267cb3030cd2b8b4b0f212af752a";
       };
     };
-    "fs.realpath-1.0.0" = {
-      name = "fs.realpath";
-      packageName = "fs.realpath";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
-        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
-      };
-    };
-    "glob-7.1.7" = {
-      name = "glob";
-      packageName = "glob";
-      version = "7.1.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz";
-        sha512 = "OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==";
-      };
-    };
-    "graceful-fs-4.2.6" = {
+    "graceful-fs-4.2.8" = {
       name = "graceful-fs";
       packageName = "graceful-fs";
-      version = "4.2.6";
+      version = "4.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz";
-        sha512 = "nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==";
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz";
+        sha512 = "qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==";
       };
     };
     "handlebars-4.7.7" = {
@@ -562,31 +274,13 @@ let
         sha512 = "aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==";
       };
     };
-    "html5shiv-3.7.3" = {
-      name = "html5shiv";
-      packageName = "html5shiv";
-      version = "3.7.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/html5shiv/-/html5shiv-3.7.3.tgz";
-        sha1 = "d78a84a367bcb9a710100d57802c387b084631d2";
-      };
-    };
-    "http-errors-1.7.3" = {
+    "http-errors-1.8.1" = {
       name = "http-errors";
       packageName = "http-errors";
-      version = "1.7.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz";
-        sha512 = "ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==";
-      };
-    };
-    "inflight-1.0.6" = {
-      name = "inflight";
-      packageName = "inflight";
-      version = "1.0.6";
+      version = "1.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
-        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz";
+        sha512 = "Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==";
       };
     };
     "inherits-2.0.4" = {
@@ -598,42 +292,6 @@ let
         sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
       };
     };
-    "ip-regex-2.1.0" = {
-      name = "ip-regex";
-      packageName = "ip-regex";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz";
-        sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
-      };
-    };
-    "is-buffer-1.1.6" = {
-      name = "is-buffer";
-      packageName = "is-buffer";
-      version = "1.1.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz";
-        sha512 = "NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==";
-      };
-    };
-    "is-url-1.2.4" = {
-      name = "is-url";
-      packageName = "is-url";
-      version = "1.2.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz";
-        sha512 = "ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==";
-      };
-    };
-    "is2-2.0.1" = {
-      name = "is2";
-      packageName = "is2";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is2/-/is2-2.0.1.tgz";
-        sha512 = "+WaJvnaA7aJySz2q/8sLjMb2Mw14KTplHmSwcSpZ/fWJPkUmqw3YTzSWbPJ7OAwRvdYTWF2Wg+yYJ1AdP5Z8CA==";
-      };
-    };
     "isarray-1.0.0" = {
       name = "isarray";
       packageName = "isarray";
@@ -643,51 +301,6 @@ let
         sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
       };
     };
-    "js-polyfills-0.1.43" = {
-      name = "js-polyfills";
-      packageName = "js-polyfills";
-      version = "0.1.43";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/js-polyfills/-/js-polyfills-0.1.43.tgz";
-        sha512 = "wWCJcw7uMA12uk7qcqZlIQy9nj+Evh1wVUmn5MOlJ7GPC8HT5PLjB9Uiqjw9ldAbbOuNOWJ6ENb7NwU6qqf48g==";
-      };
-    };
-    "json3-3.3.3" = {
-      name = "json3";
-      packageName = "json3";
-      version = "3.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz";
-        sha512 = "c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==";
-      };
-    };
-    "kind-of-3.2.2" = {
-      name = "kind-of";
-      packageName = "kind-of";
-      version = "3.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz";
-        sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
-      };
-    };
-    "lazy-cache-1.0.4" = {
-      name = "lazy-cache";
-      packageName = "lazy-cache";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz";
-        sha1 = "a1d78fc3a50474cb80845d3b3b6e1da49a446e8e";
-      };
-    };
-    "longest-1.0.1" = {
-      name = "longest";
-      packageName = "longest";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz";
-        sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097";
-      };
-    };
     "lru-cache-6.0.0" = {
       name = "lru-cache";
       packageName = "lru-cache";
@@ -715,31 +328,22 @@ let
         sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
       };
     };
-    "mime-db-1.49.0" = {
+    "mime-db-1.51.0" = {
       name = "mime-db";
       packageName = "mime-db";
-      version = "1.49.0";
+      version = "1.51.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz";
-        sha512 = "CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==";
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz";
+        sha512 = "5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==";
       };
     };
-    "mime-types-2.1.32" = {
+    "mime-types-2.1.34" = {
       name = "mime-types";
       packageName = "mime-types";
-      version = "2.1.32";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz";
-        sha512 = "hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==";
-      };
-    };
-    "minimatch-3.0.4" = {
-      name = "minimatch";
-      packageName = "minimatch";
-      version = "3.0.4";
+      version = "2.1.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
-        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz";
+        sha512 = "6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==";
       };
     };
     "minimist-1.2.5" = {
@@ -751,22 +355,13 @@ let
         sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
       };
     };
-    "mkdirp-1.0.4" = {
-      name = "mkdirp";
-      packageName = "mkdirp";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz";
-        sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==";
-      };
-    };
-    "mnemonist-0.38.3" = {
+    "mnemonist-0.38.5" = {
       name = "mnemonist";
       packageName = "mnemonist";
-      version = "0.38.3";
+      version = "0.38.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.3.tgz";
-        sha512 = "2K9QYubXx/NAjv4VLq1d1Ly8pWNC5L3BrixtdkyTegXWJIqY+zLNDhhX/A+ZwWt70tB1S8H4BE8FLYEFyNoOBw==";
+        url = "https://registry.npmjs.org/mnemonist/-/mnemonist-0.38.5.tgz";
+        sha512 = "bZTFT5rrPKtPJxj8KSV0WkPyNxl72vQepqqVUAW2ARUpUSF2qXMB6jZj7hW5/k7C1rtpzqbD/IIbJwLXUjCHeg==";
       };
     };
     "ms-2.0.0" = {
@@ -778,15 +373,6 @@ let
         sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
       };
     };
-    "ms-2.1.1" = {
-      name = "ms";
-      packageName = "ms";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
-        sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
-      };
-    };
     "ms-2.1.2" = {
       name = "ms";
       packageName = "ms";
@@ -805,15 +391,6 @@ let
         sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==";
       };
     };
-    "mutationobserver-shim-0.3.7" = {
-      name = "mutationobserver-shim";
-      packageName = "mutationobserver-shim";
-      version = "0.3.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mutationobserver-shim/-/mutationobserver-shim-0.3.7.tgz";
-        sha512 = "oRIDTyZQU96nAiz2AQyngwx1e89iApl2hN5AOYwyxLUB47UYsU3Wv9lJWqH5y/QdiYkc5HQLi23ZNB3fELdHcQ==";
-      };
-    };
     "negotiator-0.6.2" = {
       name = "negotiator";
       packageName = "negotiator";
@@ -841,13 +418,13 @@ let
         sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
       };
     };
-    "obliterator-1.6.1" = {
+    "obliterator-2.0.1" = {
       name = "obliterator";
       packageName = "obliterator";
-      version = "1.6.1";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/obliterator/-/obliterator-1.6.1.tgz";
-        sha512 = "9WXswnqINnnhOG/5SLimUlzuU1hFJUc8zkwyD59Sd+dPOMf05PmnYG/d6Q7HZ+KmgkZJa1PxRso6QdM3sTNHig==";
+        url = "https://registry.npmjs.org/obliterator/-/obliterator-2.0.1.tgz";
+        sha512 = "XnkiCrrBcIZQitJPAI36mrrpEUvatbte8hLcTcQwKA1v9NkCKasSi+UAguLsLDs/out7MoRzAlmz7VXvY6ph6w==";
       };
     };
     "on-finished-2.3.0" = {
@@ -859,15 +436,6 @@ let
         sha1 = "20f1336481b083cd75337992a16971aa2d906947";
       };
     };
-    "once-1.4.0" = {
-      name = "once";
-      packageName = "once";
-      version = "1.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
-        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
-      };
-    };
     "parseurl-1.3.3" = {
       name = "parseurl";
       packageName = "parseurl";
@@ -877,31 +445,13 @@ let
         sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
       };
     };
-    "path-is-absolute-1.0.1" = {
-      name = "path-is-absolute";
-      packageName = "path-is-absolute";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
-        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
-      };
-    };
-    "picturefill-3.0.3" = {
-      name = "picturefill";
-      packageName = "picturefill";
-      version = "3.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/picturefill/-/picturefill-3.0.3.tgz";
-        sha512 = "JDdx+3i4fs2pkqwWZJgGEM2vFWsq+01YsQFT9CKPGuv2Q0xSdrQZoxi9XwyNARTgxiOdgoAwWQRluLRe/JQX2g==";
-      };
-    };
-    "polyfill-library-3.107.1" = {
+    "polyfill-library-3.110.1" = {
       name = "polyfill-library";
       packageName = "polyfill-library";
-      version = "3.107.1";
+      version = "3.110.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/polyfill-library/-/polyfill-library-3.107.1.tgz";
-        sha512 = "HrN61Tp8Wjz1xcmYmstm0m6ySeiVSVqadDFhFMZmoiWlRoPQRfdeVWv88IqZKmxYITZ85z26wmOJdGYrGs6tjw==";
+        url = "https://registry.npmjs.org/polyfill-library/-/polyfill-library-3.110.1.tgz";
+        sha512 = "OTgQPd6If8DQSrAXcFU2soHXrCHAJpGkBgWRSqEEcydauxzmuU3T1s15wOPfSd1gj8mXbiIrPaDndt0zy4hFTA==";
       };
     };
     "process-nextick-args-2.0.1" = {
@@ -940,33 +490,6 @@ let
         sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
       };
     };
-    "repeat-string-1.6.1" = {
-      name = "repeat-string";
-      packageName = "repeat-string";
-      version = "1.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz";
-        sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
-      };
-    };
-    "right-align-0.1.3" = {
-      name = "right-align";
-      packageName = "right-align";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz";
-        sha1 = "61339b722fe6a3515689210d24e14c96148613ef";
-      };
-    };
-    "rimraf-3.0.2" = {
-      name = "rimraf";
-      packageName = "rimraf";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz";
-        sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
-      };
-    };
     "safe-buffer-5.1.2" = {
       name = "safe-buffer";
       packageName = "safe-buffer";
@@ -976,15 +499,6 @@ let
         sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
       };
     };
-    "seamless-scroll-polyfill-1.2.3" = {
-      name = "seamless-scroll-polyfill";
-      packageName = "seamless-scroll-polyfill";
-      version = "1.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/seamless-scroll-polyfill/-/seamless-scroll-polyfill-1.2.3.tgz";
-        sha512 = "emnwZtu6NrlBlvT6HrlbAOs024JX4orWew8H5owBOyUJ7eFXn8lGe4bsXTBD6AAWzP/p7LL86AjVIH8Apqec5w==";
-      };
-    };
     "semver-7.3.5" = {
       name = "semver";
       packageName = "semver";
@@ -994,49 +508,49 @@ let
         sha512 = "PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==";
       };
     };
-    "send-0.17.1" = {
+    "send-0.17.2" = {
       name = "send";
       packageName = "send";
-      version = "0.17.1";
+      version = "0.17.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz";
-        sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
+        url = "https://registry.npmjs.org/send/-/send-0.17.2.tgz";
+        sha512 = "UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==";
       };
     };
-    "serve-static-1.14.1" = {
+    "serve-static-1.14.2" = {
       name = "serve-static";
       packageName = "serve-static";
-      version = "1.14.1";
+      version = "1.14.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz";
-        sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
+        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz";
+        sha512 = "+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==";
       };
     };
-    "setprototypeof-1.1.1" = {
+    "setprototypeof-1.2.0" = {
       name = "setprototypeof";
       packageName = "setprototypeof";
-      version = "1.1.1";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
-        sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
+        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz";
+        sha512 = "E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==";
       };
     };
-    "socket.io-4.1.3" = {
+    "socket.io-4.4.0" = {
       name = "socket.io";
       packageName = "socket.io";
-      version = "4.1.3";
+      version = "4.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io/-/socket.io-4.1.3.tgz";
-        sha512 = "tLkaY13RcO4nIRh1K2hT5iuotfTaIQw7cVIe0FUykN3SuQi0cm7ALxuyT5/CtDswOMWUzMGTibxYNx/gU7In+Q==";
+        url = "https://registry.npmjs.org/socket.io/-/socket.io-4.4.0.tgz";
+        sha512 = "bnpJxswR9ov0Bw6ilhCvO38/1WPtE3eA2dtxi2Iq4/sFebiDJQzgKNYA7AuVVdGW09nrESXd90NbZqtDd9dzRQ==";
       };
     };
-    "socket.io-adapter-2.3.1" = {
+    "socket.io-adapter-2.3.3" = {
       name = "socket.io-adapter";
       packageName = "socket.io-adapter";
-      version = "2.3.1";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.1.tgz";
-        sha512 = "8cVkRxI8Nt2wadkY6u60Y4rpW3ejA1rxgcK2JuyIhmF+RMNpTy1QRtkHIDUOf3B4HlQwakMsWbKftMv/71VMmw==";
+        url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz";
+        sha512 = "Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==";
       };
     };
     "socket.io-parser-4.0.4" = {
@@ -1048,15 +562,6 @@ let
         sha512 = "t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==";
       };
     };
-    "source-map-0.5.7" = {
-      name = "source-map";
-      packageName = "source-map";
-      version = "0.5.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz";
-        sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
-      };
-    };
     "source-map-0.6.1" = {
       name = "source-map";
       packageName = "source-map";
@@ -1066,15 +571,6 @@ let
         sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
       };
     };
-    "spdx-licenses-1.0.0" = {
-      name = "spdx-licenses";
-      packageName = "spdx-licenses";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-licenses/-/spdx-licenses-1.0.0.tgz";
-        sha512 = "BmeFZRYH9XXf56omx0LuiG+gBXRqwmrKsOtcsGTJh8tw9U0cgRKTrOnyDpP1uvI1AVEkoRKYaAvR902ByotFOw==";
-      };
-    };
     "statsd-client-0.4.7" = {
       name = "statsd-client";
       packageName = "statsd-client";
@@ -1120,13 +616,13 @@ let
         sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
       };
     };
-    "toidentifier-1.0.0" = {
+    "toidentifier-1.0.1" = {
       name = "toidentifier";
       packageName = "toidentifier";
-      version = "1.0.0";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz";
-        sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
+        url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz";
+        sha512 = "o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==";
       };
     };
     "toposort-2.0.2" = {
@@ -1138,58 +634,22 @@ let
         sha1 = "ae21768175d1559d48bef35420b2f4962f09c330";
       };
     };
-    "tslib-2.3.0" = {
+    "tslib-2.3.1" = {
       name = "tslib";
       packageName = "tslib";
-      version = "2.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz";
-        sha512 = "N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==";
-      };
-    };
-    "uglify-js-2.8.29" = {
-      name = "uglify-js";
-      packageName = "uglify-js";
-      version = "2.8.29";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz";
-        sha1 = "29c5733148057bb4e1f75df35b7a9cb72e6a59dd";
+        url = "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz";
+        sha512 = "77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==";
       };
     };
-    "uglify-js-3.14.1" = {
+    "uglify-js-3.14.5" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.14.1";
+      version = "3.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.1.tgz";
-        sha512 = "JhS3hmcVaXlp/xSo3PKY5R0JqKs5M3IV+exdLHW99qKvKivPO4Z8qbej6mte17SOPqAOVMjt/XGgWacnFSzM3g==";
-      };
-    };
-    "uglify-to-browserify-1.0.2" = {
-      name = "uglify-to-browserify";
-      packageName = "uglify-to-browserify";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz";
-        sha1 = "6e0924d6bda6b5afe349e39a6d632850a0f882b7";
-      };
-    };
-    "unorm-1.6.0" = {
-      name = "unorm";
-      packageName = "unorm";
-      version = "1.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz";
-        sha512 = "b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==";
-      };
-    };
-    "usertiming-0.1.8" = {
-      name = "usertiming";
-      packageName = "usertiming";
-      version = "0.1.8";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/usertiming/-/usertiming-0.1.8.tgz";
-        sha1 = "35378e7f41a248d40e658d05f80423469a7b0650";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.5.tgz";
+        sha512 = "qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ==";
       };
     };
     "util-deprecate-1.0.2" = {
@@ -1210,51 +670,6 @@ let
         sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
       };
     };
-    "web-animations-js-2.3.2" = {
-      name = "web-animations-js";
-      packageName = "web-animations-js";
-      version = "2.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/web-animations-js/-/web-animations-js-2.3.2.tgz";
-        sha512 = "TOMFWtQdxzjWp8qx4DAraTWTsdhxVSiWa6NkPFSaPtZ1diKUxTn4yTix73A1euG1WbSOMMPcY51cnjTIHrGtDA==";
-      };
-    };
-    "whatwg-fetch-3.6.2" = {
-      name = "whatwg-fetch";
-      packageName = "whatwg-fetch";
-      version = "3.6.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz";
-        sha512 = "bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==";
-      };
-    };
-    "wicg-inert-3.1.1" = {
-      name = "wicg-inert";
-      packageName = "wicg-inert";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/wicg-inert/-/wicg-inert-3.1.1.tgz";
-        sha512 = "PhBaNh8ur9Xm4Ggy4umelwNIP6pPP1bv3EaWaKqfb/QNme2rdLjm7wIInvV4WhxVHhzA4Spgw9qNSqWtB/ca2A==";
-      };
-    };
-    "window-size-0.1.0" = {
-      name = "window-size";
-      packageName = "window-size";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz";
-        sha1 = "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d";
-      };
-    };
-    "wordwrap-0.0.2" = {
-      name = "wordwrap";
-      packageName = "wordwrap";
-      version = "0.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz";
-        sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f";
-      };
-    };
     "wordwrap-1.0.0" = {
       name = "wordwrap";
       packageName = "wordwrap";
@@ -1264,31 +679,13 @@ let
         sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
       };
     };
-    "wrappy-1.0.2" = {
-      name = "wrappy";
-      packageName = "wrappy";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
-        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
-      };
-    };
-    "ws-7.4.6" = {
+    "ws-8.2.3" = {
       name = "ws";
       packageName = "ws";
-      version = "7.4.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz";
-        sha512 = "YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==";
-      };
-    };
-    "yaku-1.0.1" = {
-      name = "yaku";
-      packageName = "yaku";
-      version = "1.0.1";
+      version = "8.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yaku/-/yaku-1.0.1.tgz";
-        sha512 = "uZCrhA5DEytGnFfw9XZKIoWRG43v6oCA20vInFS4anPJb3G5Hy+PKuaKSMTJ+aChvFdNDxY5K8jFx5wmlLbTjQ==";
+        url = "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz";
+        sha512 = "wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==";
       };
     };
     "yallist-4.0.0" = {
@@ -1300,198 +697,112 @@ let
         sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
       };
     };
-    "yargs-3.10.0" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "3.10.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz";
-        sha1 = "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1";
-      };
-    };
   };
 in
 {
-  "whitebophir-git+https://github.com/lovasoa/whitebophir.git#v1.14.6" = nodeEnv.buildNodePackage {
+  "whitebophir-git+https://github.com/lovasoa/whitebophir.git#v1.16.0" = nodeEnv.buildNodePackage {
     name = "whitebophir";
     packageName = "whitebophir";
-    version = "1.14.6";
+    version = "1.16.0";
     src = fetchgit {
       url = "https://github.com/lovasoa/whitebophir.git";
-      rev = "37d1d6811af911739d57520dc20dae6cac154464";
-      sha256 = "bda4e0077ef64861146e073c91b7488edfc0290f37478da6563e9ea16e6e4824";
+      rev = "8a3997b26419b3d510ad92c18071c4ce007b0081";
+      sha256 = "8aab3d89c72589d60f956f83a8e33d9d52a5b4da3c13004f9ab75b6dcbdaadcc";
     };
     dependencies = [
-      sources."@financial-times/polyfill-useragent-normaliser-1.10.0"
+      sources."@financial-times/polyfill-useragent-normaliser-1.10.1"
       sources."@financial-times/useragent_parser-1.6.0"
-      sources."@formatjs/ecma402-abstract-1.8.0"
-      sources."@formatjs/intl-datetimeformat-4.1.0"
-      sources."@formatjs/intl-displaynames-5.1.0"
-      sources."@formatjs/intl-getcanonicallocales-1.6.0"
-      sources."@formatjs/intl-listformat-6.1.0"
-      sources."@formatjs/intl-locale-2.4.26"
-      sources."@formatjs/intl-numberformat-7.1.0"
-      sources."@formatjs/intl-pluralrules-4.0.20"
-      sources."@formatjs/intl-relativetimeformat-9.1.0"
-      sources."@juggle/resize-observer-3.3.1"
-      sources."@types/component-emitter-1.2.10"
+      sources."@types/component-emitter-1.2.11"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
-      sources."@types/node-16.4.11"
-      sources."@webcomponents/template-1.5.0"
-      sources."Base64-1.1.0"
-      sources."abort-controller-3.0.0"
+      sources."@types/node-17.0.0"
       sources."accept-language-parser-1.5.0"
       sources."accepts-1.3.7"
-      sources."align-text-0.1.4"
-      sources."async-mutex-0.3.1"
-      sources."audio-context-polyfill-1.0.0"
-      sources."balanced-match-1.0.2"
-      sources."base64-arraybuffer-0.1.4"
+      sources."async-mutex-0.3.2"
+      sources."base64-arraybuffer-1.0.1"
       sources."base64id-2.0.0"
-      sources."brace-expansion-1.1.11"
-      sources."camelcase-1.2.1"
-      sources."center-align-0.1.3"
-      sources."cldr-core-38.1.0"
-      (sources."cliui-2.1.0" // {
-        dependencies = [
-          sources."wordwrap-0.0.2"
-        ];
-      })
       sources."component-emitter-1.3.0"
-      sources."concat-map-0.0.1"
       sources."cookie-0.4.1"
-      sources."core-util-is-1.0.2"
+      sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
-      sources."current-script-polyfill-1.0.0"
-      sources."debug-4.1.1"
-      sources."decamelize-1.2.0"
-      sources."deep-is-0.1.3"
+      (sources."debug-2.6.9" // {
+        dependencies = [
+          sources."ms-2.0.0"
+        ];
+      })
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."diff-4.0.2"
       sources."ee-first-1.1.1"
       sources."encodeurl-1.0.2"
-      (sources."engine.io-5.1.1" // {
+      (sources."engine.io-6.1.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
-      sources."engine.io-parser-4.0.2"
+      sources."engine.io-parser-5.0.2"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      sources."event-source-polyfill-1.0.24"
-      sources."event-target-shim-5.0.1"
-      sources."fastestsmallesttextencoderdecoder-1.0.22"
       sources."fresh-0.5.2"
       sources."from2-2.3.0"
       sources."from2-string-1.1.0"
-      sources."fs.realpath-1.0.0"
-      sources."glob-7.1.7"
-      sources."graceful-fs-4.2.6"
+      sources."graceful-fs-4.2.8"
       sources."handlebars-4.7.7"
-      sources."html5shiv-3.7.3"
-      sources."http-errors-1.7.3"
-      sources."inflight-1.0.6"
+      sources."http-errors-1.8.1"
       sources."inherits-2.0.4"
-      sources."ip-regex-2.1.0"
-      sources."is-buffer-1.1.6"
-      sources."is-url-1.2.4"
-      sources."is2-2.0.1"
       sources."isarray-1.0.0"
-      sources."js-polyfills-0.1.43"
-      sources."json3-3.3.3"
-      sources."kind-of-3.2.2"
-      sources."lazy-cache-1.0.4"
-      sources."longest-1.0.1"
       sources."lru-cache-6.0.0"
       sources."merge2-1.4.1"
       sources."mime-1.6.0"
-      sources."mime-db-1.49.0"
-      sources."mime-types-2.1.32"
-      sources."minimatch-3.0.4"
+      sources."mime-db-1.51.0"
+      sources."mime-types-2.1.34"
       sources."minimist-1.2.5"
-      sources."mkdirp-1.0.4"
-      sources."mnemonist-0.38.3"
+      sources."mnemonist-0.38.5"
       sources."ms-2.1.3"
-      sources."mutationobserver-shim-0.3.7"
       sources."negotiator-0.6.2"
       sources."neo-async-2.6.2"
       sources."object-assign-4.1.1"
-      sources."obliterator-1.6.1"
+      sources."obliterator-2.0.1"
       sources."on-finished-2.3.0"
-      sources."once-1.4.0"
       sources."parseurl-1.3.3"
-      sources."path-is-absolute-1.0.1"
-      sources."picturefill-3.0.3"
-      (sources."polyfill-library-3.107.1" // {
-        dependencies = [
-          sources."source-map-0.5.7"
-          sources."uglify-js-2.8.29"
-        ];
-      })
+      sources."polyfill-library-3.110.1"
       sources."process-nextick-args-2.0.1"
       sources."promise-polyfill-1.1.6"
       sources."range-parser-1.2.1"
       sources."readable-stream-2.3.7"
-      sources."repeat-string-1.6.1"
-      sources."right-align-0.1.3"
-      sources."rimraf-3.0.2"
       sources."safe-buffer-5.1.2"
-      sources."seamless-scroll-polyfill-1.2.3"
       sources."semver-7.3.5"
-      (sources."send-0.17.1" // {
-        dependencies = [
-          (sources."debug-2.6.9" // {
-            dependencies = [
-              sources."ms-2.0.0"
-            ];
-          })
-          sources."ms-2.1.1"
-        ];
-      })
-      sources."serve-static-1.14.1"
-      sources."setprototypeof-1.1.1"
-      (sources."socket.io-4.1.3" // {
+      sources."send-0.17.2"
+      sources."serve-static-1.14.2"
+      sources."setprototypeof-1.2.0"
+      (sources."socket.io-4.4.0" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
-      sources."socket.io-adapter-2.3.1"
+      sources."socket.io-adapter-2.3.3"
       (sources."socket.io-parser-4.0.4" // {
         dependencies = [
-          sources."debug-4.3.2"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
       sources."source-map-0.6.1"
-      sources."spdx-licenses-1.0.0"
       sources."statsd-client-0.4.7"
       sources."statuses-1.5.0"
       sources."stream-from-promise-1.0.0"
       sources."stream-to-string-1.2.0"
       sources."string_decoder-1.1.1"
-      sources."toidentifier-1.0.0"
+      sources."toidentifier-1.0.1"
       sources."toposort-2.0.2"
-      sources."tslib-2.3.0"
-      sources."uglify-js-3.14.1"
-      sources."uglify-to-browserify-1.0.2"
-      sources."unorm-1.6.0"
-      sources."usertiming-0.1.8"
+      sources."tslib-2.3.1"
+      sources."uglify-js-3.14.5"
       sources."util-deprecate-1.0.2"
       sources."vary-1.1.2"
-      sources."web-animations-js-2.3.2"
-      sources."whatwg-fetch-3.6.2"
-      sources."wicg-inert-3.1.1"
-      sources."window-size-0.1.0"
       sources."wordwrap-1.0.0"
-      sources."wrappy-1.0.2"
-      sources."ws-7.4.6"
-      sources."yaku-1.0.1"
+      sources."ws-8.2.3"
       sources."yallist-4.0.0"
-      sources."yargs-3.10.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
diff --git a/pkgs/servers/web-apps/whitebophir/node-packages.json b/pkgs/servers/web-apps/whitebophir/node-packages.json
index 72eabcc7ec119..0d0615804f5a1 100644
--- a/pkgs/servers/web-apps/whitebophir/node-packages.json
+++ b/pkgs/servers/web-apps/whitebophir/node-packages.json
@@ -1,3 +1,3 @@
 [
-  { "whitebophir": "git+https://github.com/lovasoa/whitebophir.git#v1.14.6" }
+  { "whitebophir": "git+https://github.com/lovasoa/whitebophir.git#v1.16.0" }
 ]
diff --git a/pkgs/servers/web-apps/wiki-js/default.nix b/pkgs/servers/web-apps/wiki-js/default.nix
index ca9acdf27cd72..0b6b88f31ba84 100644
--- a/pkgs/servers/web-apps/wiki-js/default.nix
+++ b/pkgs/servers/web-apps/wiki-js/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wiki-js";
-  version = "2.5.219";
+  version = "2.5.260";
 
   src = fetchurl {
     url = "https://github.com/Requarks/wiki/releases/download/${version}/${pname}.tar.gz";
-    sha256 = "sha256-xzxOv17B+9wegtNXGr9SD4KUWlMbrvPtZhvfmoZhBNc=";
+    sha256 = "sha256-X9GmW2m94e7ft+ujJeR3ig5d8rsbEYzmlG52YJt2294=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/servers/webdav-server-rs/default.nix b/pkgs/servers/webdav-server-rs/default.nix
new file mode 100644
index 0000000000000..06c8716ba8778
--- /dev/null
+++ b/pkgs/servers/webdav-server-rs/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, libtirpc
+, pam
+, rpcsvc-proto
+, enablePAM ? stdenv.isLinux
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "webdav-server-rs";
+  # The v0.4.0 tag cannot build.  So we use the 547602e commit.
+  version = "unstable-2021-08-16";
+
+  src = fetchFromGitHub {
+    owner = "miquels";
+    repo = pname;
+    rev = "547602e78783935b4ddd038fb795366c9c476bcc";
+    sha256 = "sha256-nTygUEjAUXD0mRTmjt8/UPVfZA4rP6oop1s/fI5mYeg=";
+  };
+
+  cargoHash = "sha256-TDDfGQig4i/DpsilTPqMQ1oT0mXK5DKlZmwsPPLrzFc=";
+
+  buildInputs = [ libtirpc ] ++ lib.optional enablePAM pam;
+  nativeBuildInputs = [ rpcsvc-proto ];
+
+  buildNoDefaultFeatures = true;
+  buildFeatures = [ "quota" ] ++ lib.optional enablePAM "pam";
+
+  postPatch = ''
+    substituteInPlace fs_quota/build.rs \
+       --replace '/usr/include/tirpc' '${libtirpc.dev}/include/tirpc'
+  '';
+
+  meta = with lib; {
+    description = "An implementation of WebDAV server in Rust";
+    longDescription = ''
+      webdav-server-rs is an implementation of WebDAV with full support for
+      RFC4918.  It also supports local unix accounts, PAM authentication, and
+      quota.
+    '';
+    homepage = "https://github.com/miquels/webdav-server-rs";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ pmy ];
+  };
+}
diff --git a/pkgs/servers/webdav/default.nix b/pkgs/servers/webdav/default.nix
index 2e6a6a891ecfb..4a3aca9f6e918 100644
--- a/pkgs/servers/webdav/default.nix
+++ b/pkgs/servers/webdav/default.nix
@@ -17,6 +17,6 @@ buildGoModule rec {
     description = "Simple WebDAV server";
     homepage = "https://github.com/hacdias/webdav";
     license = licenses.mit;
-    maintainers = with maintainers; [ pengmeiyu ];
+    maintainers = with maintainers; [ pmy ];
   };
 }
diff --git a/pkgs/servers/wsdd/default.nix b/pkgs/servers/wsdd/default.nix
index 07c26872f3fb9..a0a8421a7c2b4 100644
--- a/pkgs/servers/wsdd/default.nix
+++ b/pkgs/servers/wsdd/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wsdd";
-  version = "0.6.4";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "christgau";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0lfvpbk1lkri597ac4gz5x4csfyik8axz4b41i03xsqv9bci2vh6";
+    sha256 = "sha256-9cwzkF2mg6yOIsurLMXTLoEIOsKbPIWMicpWBQ0XVhE=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index 47d2985a0258c..085048ae68dc9 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -2275,21 +2275,6 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   # THIS IS A GENERATED FILE.  DO NOT EDIT!
-  xf86videomach64 = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, libpciaccess, xorgserver }: stdenv.mkDerivation {
-    pname = "xf86-video-mach64";
-    version = "6.9.6";
-    builder = ./builder.sh;
-    src = fetchurl {
-      url = "mirror://xorg/individual/driver/xf86-video-mach64-6.9.6.tar.bz2";
-      sha256 = "171wg8r6py1l138s58rlapin3rlpwsg9spmvhc7l68mm3g3hf1vs";
-    };
-    hardeningDisable = [ "bindnow" "relro" ];
-    nativeBuildInputs = [ pkg-config ];
-    buildInputs = [ xorgproto libdrm libpciaccess xorgserver ];
-    meta.platforms = lib.platforms.unix;
-  }) {};
-
-  # THIS IS A GENERATED FILE.  DO NOT EDIT!
   xf86videomga = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libdrm, libpciaccess, xorgserver }: stdenv.mkDerivation {
     pname = "xf86-video-mga";
     version = "2.0.0";
diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix
index 3a6ec31ad750f..27a4da9622bff 100644
--- a/pkgs/servers/x11/xorg/overrides.nix
+++ b/pkgs/servers/x11/xorg/overrides.nix
@@ -4,7 +4,7 @@
   freetype, tradcpp, fontconfig, meson, ninja, ed, fontforge,
   libGL, spice-protocol, zlib, libGLU, dbus, libunwind, libdrm,
   mesa, udev, bootstrap_cmds, bison, flex, clangStdenv, autoreconfHook,
-  mcpp, epoxy, openssl, pkg-config, llvm, libxslt,
+  mcpp, libepoxy, openssl, pkg-config, llvm, libxslt,
   ApplicationServices, Carbon, Cocoa, Xplugin
 }:
 
@@ -452,6 +452,16 @@ self: super:
   });
 
   xf86videoqxl = super.xf86videoqxl.overrideAttrs (attrs: {
+    # https://gitlab.freedesktop.org/xorg/driver/xf86-video-qxl/-/issues/12
+    postPatch = ''
+      patch -p1 <<EOF
+      --- a/src/qxl_option_helpers.c
+      +++ b/src/qxl_option_helpers.c
+      @@ -37 +37 @@
+      -        return options[option_index].value.bool;
+      +        return options[option_index].value.boolean;
+      EOF
+    '';
     buildInputs =  attrs.buildInputs ++ [ spice-protocol ];
   });
 
@@ -639,18 +649,45 @@ self: super:
         ];
         postInstall = ":"; # prevent infinite recursion
       });
+
+      fpgit = commit: sha256: name: fetchpatch (
+        {
+          url = "https://gitlab.freedesktop.org/xorg/xserver/-/commit/${commit}.diff";
+          inherit sha256;
+        } // lib.optionalAttrs (name != null) {
+            name = name + ".patch";
+          }
+      );
     in
       if (!isDarwin)
       then {
         outputs = [ "out" "dev" ];
         patches = [
+          # https://lists.x.org/archives/xorg-announce/2021-December/003122.html
+          (fpgit "ebce7e2d80e7c80e1dda60f2f0bc886f1106ba60"
+            "sNi16FqN4rS4s8j5+PUVeOQBasccCkB5KvywP7xl28M=" "CVE-2021-4008")
+          (fpgit "b5196750099ae6ae582e1f46bd0a6dad29550e02"
+            "5hgzQXBBaJfhSTa9hs8K2N1fQ6+Vp8TTkertmQhkw8Y=" "CVE-2021-4009")
+          (fpgit "6c4c53010772e3cb4cb8acd54950c8eec9c00d21"
+            "1gGG9RpjLMi7Emwh13/z5CN1+ISLsPL3hJXP5gQcNkE=" "CVE-2021-4010")
+          (fpgit "e56f61c79fc3cee26d83cda0f84ae56d5979f768"
+            "e1KgSXGwwI3GgcYeWaF3KHPmkE4tf9VTqvfTYqRpysY=" "CVE-2021-4011")
+
           # The build process tries to create the specified logdir when building.
           #
           # We set it to /var/log which can't be touched from inside the sandbox causing the build to hard-fail
           ./dont-create-logdir-during-build.patch
+
+          # Fix e.g. xorg.xf86videovmware with libdrm 2.4.108
+          # TODO: remove with xorgserver >= 1.21
+          (fetchpatch {
+            name = "stdbool.patch";
+            url = "https://gitlab.freedesktop.org/xorg/xserver/-/commit/454b3a826edb5fc6d0fea3a9cfd1a5e8fc568747.diff";
+            sha256 = "1l9qg905jvlw3r0kx4xfw5m12pbs0782v2g3267d1m6q4m6fj1zy";
+          })
         ];
         buildInputs = commonBuildInputs ++ [ libdrm mesa ];
-        propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ libpciaccess epoxy ] ++ commonPropagatedBuildInputs ++ lib.optionals stdenv.isLinux [
+        propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ libpciaccess libepoxy ] ++ commonPropagatedBuildInputs ++ lib.optionals stdenv.isLinux [
           udev
         ];
         prePatch = lib.optionalString stdenv.hostPlatform.isMusl ''
diff --git a/pkgs/servers/x11/xorg/tarballs.list b/pkgs/servers/x11/xorg/tarballs.list
index cc41317bf0f86..75503b3a73951 100644
--- a/pkgs/servers/x11/xorg/tarballs.list
+++ b/pkgs/servers/x11/xorg/tarballs.list
@@ -101,7 +101,6 @@ mirror://xorg/individual/driver/xf86-video-glint-1.2.9.tar.bz2
 mirror://xorg/individual/driver/xf86-video-i128-1.4.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-i740-1.4.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-intel-2.99.917.tar.bz2
-mirror://xorg/individual/driver/xf86-video-mach64-6.9.6.tar.bz2
 mirror://xorg/individual/driver/xf86-video-mga-2.0.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-neomagic-1.3.0.tar.bz2
 mirror://xorg/individual/driver/xf86-video-newport-0.2.4.tar.bz2
diff --git a/pkgs/servers/x11/xorg/xcb-util-xrm.nix b/pkgs/servers/x11/xorg/xcb-util-xrm.nix
index ee870f071256f..0235ad29cc6e0 100644
--- a/pkgs/servers/x11/xorg/xcb-util-xrm.nix
+++ b/pkgs/servers/x11/xorg/xcb-util-xrm.nix
@@ -9,10 +9,11 @@ stdenv.mkDerivation rec {
     sha256 = "118cj1ybw86pgw0l5whn9vbg5n5b0ijcpx295mwahzi004vz671h";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [ pkg-config m4 ];
   doCheck = true;
-  buildInputs = [ libxcb xcbutil ];
-  checkInputs = [ libX11 ];
+  buildInputs = [ libxcb xcbutil libX11 ];
 
   meta = with lib; {
     description = "XCB utility functions for the X resource manager";
diff --git a/pkgs/servers/x11/xorg/xwayland.nix b/pkgs/servers/x11/xorg/xwayland.nix
index 7db47f4bf7643..98f2f3c973004 100644
--- a/pkgs/servers/x11/xorg/xwayland.nix
+++ b/pkgs/servers/x11/xorg/xwayland.nix
@@ -1,5 +1,5 @@
 { egl-wayland
-, epoxy
+, libepoxy
 , fetchurl
 , fontutil
 , lib
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   ];
   buildInputs = [
     egl-wayland
-    epoxy
+    libepoxy
     fontutil
     libGL
     libGLU
diff --git a/pkgs/servers/zigbee2mqtt/default.nix b/pkgs/servers/zigbee2mqtt/default.nix
index 3f66afae901a5..379b5368a6427 100644
--- a/pkgs/servers/zigbee2mqtt/default.nix
+++ b/pkgs/servers/zigbee2mqtt/default.nix
@@ -1,22 +1,24 @@
-{ pkgs, stdenv, dataDir ? "/opt/zigbee2mqtt/data", nixosTests }:
+{ pkgs, stdenv, nixosTests }:
 let
   package = (import ./node.nix { inherit pkgs; inherit (stdenv.hostPlatform) system; }).package;
 in
 package.override rec {
-  # don't upgrade! Newer versions cause stack overflows and fail trunk-combined
-  # see https://github.com/NixOS/nixpkgs/pull/118400
-  version = "1.16.2";
+  version = "1.22.1";
   reconstructLock = true;
 
   src = pkgs.fetchFromGitHub {
     owner = "Koenkk";
     repo = "zigbee2mqtt";
     rev = version;
-    sha256 = "0rpmm4pwm8s4i9fl26ql0czg5kijv42k9wwik7jb3ppi5jzxrakd";
+    sha256 = "HoheB+/K4THFqgcC79QZM71rDPv2JB+S6y4K1+sdASo=";
   };
 
   passthru.tests.zigbee2mqtt = nixosTests.zigbee2mqtt;
 
+  postInstall = ''
+    npm run build
+  '';
+
   meta = with pkgs.lib; {
     description = "Zigbee to MQTT bridge using zigbee-shepherd";
     license = licenses.gpl3;
diff --git a/pkgs/servers/zigbee2mqtt/node-env.nix b/pkgs/servers/zigbee2mqtt/node-env.nix
deleted file mode 100644
index 9af216ad1dfee..0000000000000
--- a/pkgs/servers/zigbee2mqtt/node-env.nix
+++ /dev/null
@@ -1,548 +0,0 @@
-# This file originates from node2nix
-
-{lib, stdenv, nodejs, python2, util-linux, libtool, runCommand, writeTextFile}:
-
-let
-  python = if nodejs ? python then nodejs.python else python2;
-
-  # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
-  tarWrapper = runCommand "tarWrapper" {} ''
-    mkdir -p $out/bin
-
-    cat > $out/bin/tar <<EOF
-    #! ${stdenv.shell} -e
-    $(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
-    EOF
-
-    chmod +x $out/bin/tar
-  '';
-
-  # Function that generates a TGZ file from a NPM project
-  buildNodeSourceDist =
-    { name, version, src, ... }:
-
-    stdenv.mkDerivation {
-      name = "node-tarball-${name}-${version}";
-      inherit src;
-      buildInputs = [ nodejs ];
-      buildPhase = ''
-        export HOME=$TMPDIR
-        tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts)
-      '';
-      installPhase = ''
-        mkdir -p $out/tarballs
-        mv $tgzFile $out/tarballs
-        mkdir -p $out/nix-support
-        echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products
-      '';
-    };
-
-  includeDependencies = {dependencies}:
-    lib.optionalString (dependencies != [])
-      (lib.concatMapStrings (dependency:
-        ''
-          # Bundle the dependencies of the package
-          mkdir -p node_modules
-          cd node_modules
-
-          # Only include dependencies if they don't exist. They may also be bundled in the package.
-          if [ ! -e "${dependency.name}" ]
-          then
-              ${composePackage dependency}
-          fi
-
-          cd ..
-        ''
-      ) dependencies);
-
-  # Recursively composes the dependencies of a package
-  composePackage = { name, packageName, src, dependencies ? [], ... }@args:
-    builtins.addErrorContext "while evaluating node package '${packageName}'" ''
-      DIR=$(pwd)
-      cd $TMPDIR
-
-      unpackFile ${src}
-
-      # Make the base dir in which the target dependency resides first
-      mkdir -p "$(dirname "$DIR/${packageName}")"
-
-      if [ -f "${src}" ]
-      then
-          # Figure out what directory has been unpacked
-          packageDir="$(find . -maxdepth 1 -type d | tail -1)"
-
-          # Restore write permissions to make building work
-          find "$packageDir" -type d -exec chmod u+x {} \;
-          chmod -R u+w "$packageDir"
-
-          # Move the extracted tarball into the output folder
-          mv "$packageDir" "$DIR/${packageName}"
-      elif [ -d "${src}" ]
-      then
-          # Get a stripped name (without hash) of the source directory.
-          # On old nixpkgs it's already set internally.
-          if [ -z "$strippedName" ]
-          then
-              strippedName="$(stripHash ${src})"
-          fi
-
-          # Restore write permissions to make building work
-          chmod -R u+w "$strippedName"
-
-          # Move the extracted directory into the output folder
-          mv "$strippedName" "$DIR/${packageName}"
-      fi
-
-      # Unset the stripped name to not confuse the next unpack step
-      unset strippedName
-
-      # Include the dependencies of the package
-      cd "$DIR/${packageName}"
-      ${includeDependencies { inherit dependencies; }}
-      cd ..
-      ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
-    '';
-
-  pinpointDependencies = {dependencies, production}:
-    let
-      pinpointDependenciesFromPackageJSON = writeTextFile {
-        name = "pinpointDependencies.js";
-        text = ''
-          var fs = require('fs');
-          var path = require('path');
-
-          function resolveDependencyVersion(location, name) {
-              if(location == process.env['NIX_STORE']) {
-                  return null;
-              } else {
-                  var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
-
-                  if(fs.existsSync(dependencyPackageJSON)) {
-                      var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
-
-                      if(dependencyPackageObj.name == name) {
-                          return dependencyPackageObj.version;
-                      }
-                  } else {
-                      return resolveDependencyVersion(path.resolve(location, ".."), name);
-                  }
-              }
-          }
-
-          function replaceDependencies(dependencies) {
-              if(typeof dependencies == "object" && dependencies !== null) {
-                  for(var dependency in dependencies) {
-                      var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
-
-                      if(resolvedVersion === null) {
-                          process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
-                      } else {
-                          dependencies[dependency] = resolvedVersion;
-                      }
-                  }
-              }
-          }
-
-          /* Read the package.json configuration */
-          var packageObj = JSON.parse(fs.readFileSync('./package.json'));
-
-          /* Pinpoint all dependencies */
-          replaceDependencies(packageObj.dependencies);
-          if(process.argv[2] == "development") {
-              replaceDependencies(packageObj.devDependencies);
-          }
-          replaceDependencies(packageObj.optionalDependencies);
-
-          /* Write the fixed package.json file */
-          fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
-        '';
-      };
-    in
-    ''
-      node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"}
-
-      ${lib.optionalString (dependencies != [])
-        ''
-          if [ -d node_modules ]
-          then
-              cd node_modules
-              ${lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies}
-              cd ..
-          fi
-        ''}
-    '';
-
-  # Recursively traverses all dependencies of a package and pinpoints all
-  # dependencies in the package.json file to the versions that are actually
-  # being used.
-
-  pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args:
-    ''
-      if [ -d "${packageName}" ]
-      then
-          cd "${packageName}"
-          ${pinpointDependencies { inherit dependencies production; }}
-          cd ..
-          ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
-      fi
-    '';
-
-  # Extract the Node.js source code which is used to compile packages with
-  # native bindings
-  nodeSources = runCommand "node-sources" {} ''
-    tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
-    mv node-* $out
-  '';
-
-  # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
-  addIntegrityFieldsScript = writeTextFile {
-    name = "addintegrityfields.js";
-    text = ''
-      var fs = require('fs');
-      var path = require('path');
-
-      function augmentDependencies(baseDir, dependencies) {
-          for(var dependencyName in dependencies) {
-              var dependency = dependencies[dependencyName];
-
-              // Open package.json and augment metadata fields
-              var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
-              var packageJSONPath = path.join(packageJSONDir, "package.json");
-
-              if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
-                  console.log("Adding metadata fields to: "+packageJSONPath);
-                  var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
-
-                  if(dependency.integrity) {
-                      packageObj["_integrity"] = dependency.integrity;
-                  } else {
-                      packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
-                  }
-
-                  if(dependency.resolved) {
-                      packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
-                  } else {
-                      packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
-                  }
-
-                  if(dependency.from !== undefined) { // Adopt from property if one has been provided
-                      packageObj["_from"] = dependency.from;
-                  }
-
-                  fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
-              }
-
-              // Augment transitive dependencies
-              if(dependency.dependencies !== undefined) {
-                  augmentDependencies(packageJSONDir, dependency.dependencies);
-              }
-          }
-      }
-
-      if(fs.existsSync("./package-lock.json")) {
-          var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
-
-          if(packageLock.lockfileVersion !== 1) {
-             process.stderr.write("Sorry, I only understand lock file version 1!\n");
-             process.exit(1);
-          }
-
-          if(packageLock.dependencies !== undefined) {
-              augmentDependencies(".", packageLock.dependencies);
-          }
-      }
-    '';
-  };
-
-  # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
-  reconstructPackageLock = writeTextFile {
-    name = "addintegrityfields.js";
-    text = ''
-      var fs = require('fs');
-      var path = require('path');
-
-      var packageObj = JSON.parse(fs.readFileSync("package.json"));
-
-      var lockObj = {
-          name: packageObj.name,
-          version: packageObj.version,
-          lockfileVersion: 1,
-          requires: true,
-          dependencies: {}
-      };
-
-      function augmentPackageJSON(filePath, dependencies) {
-          var packageJSON = path.join(filePath, "package.json");
-          if(fs.existsSync(packageJSON)) {
-              var packageObj = JSON.parse(fs.readFileSync(packageJSON));
-              dependencies[packageObj.name] = {
-                  version: packageObj.version,
-                  integrity: "sha1-000000000000000000000000000=",
-                  dependencies: {}
-              };
-              processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies);
-          }
-      }
-
-      function processDependencies(dir, dependencies) {
-          if(fs.existsSync(dir)) {
-              var files = fs.readdirSync(dir);
-
-              files.forEach(function(entry) {
-                  var filePath = path.join(dir, entry);
-                  var stats = fs.statSync(filePath);
-
-                  if(stats.isDirectory()) {
-                      if(entry.substr(0, 1) == "@") {
-                          // When we encounter a namespace folder, augment all packages belonging to the scope
-                          var pkgFiles = fs.readdirSync(filePath);
-
-                          pkgFiles.forEach(function(entry) {
-                              if(stats.isDirectory()) {
-                                  var pkgFilePath = path.join(filePath, entry);
-                                  augmentPackageJSON(pkgFilePath, dependencies);
-                              }
-                          });
-                      } else {
-                          augmentPackageJSON(filePath, dependencies);
-                      }
-                  }
-              });
-          }
-      }
-
-      processDependencies("node_modules", lockObj.dependencies);
-
-      fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
-    '';
-  };
-
-  prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}:
-    let
-      forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
-    in
-    ''
-        # Pinpoint the versions of all dependencies to the ones that are actually being used
-        echo "pinpointing versions of dependencies..."
-        source $pinpointDependenciesScriptPath
-
-        # Patch the shebangs of the bundled modules to prevent them from
-        # calling executables outside the Nix store as much as possible
-        patchShebangs .
-
-        # Deploy the Node.js package by running npm install. Since the
-        # dependencies have been provided already by ourselves, it should not
-        # attempt to install them again, which is good, because we want to make
-        # it Nix's responsibility. If it needs to install any dependencies
-        # anyway (e.g. because the dependency parameters are
-        # incomplete/incorrect), it fails.
-        #
-        # The other responsibilities of NPM are kept -- version checks, build
-        # steps, postprocessing etc.
-
-        export HOME=$TMPDIR
-        cd "${packageName}"
-        runHook preRebuild
-
-        ${lib.optionalString bypassCache ''
-          ${lib.optionalString reconstructLock ''
-            if [ -f package-lock.json ]
-            then
-                echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
-                echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
-                rm package-lock.json
-            else
-                echo "No package-lock.json file found, reconstructing..."
-            fi
-
-            node ${reconstructPackageLock}
-          ''}
-
-          node ${addIntegrityFieldsScript}
-        ''}
-
-        npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} rebuild
-
-        if [ "''${dontNpmInstall-}" != "1" ]
-        then
-            # NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
-            rm -f npm-shrinkwrap.json
-
-            npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${lib.optionalString production "--production"} install
-        fi
-    '';
-
-  # Builds and composes an NPM package including all its dependencies
-  buildNodePackage =
-    { name
-    , packageName
-    , version
-    , dependencies ? []
-    , buildInputs ? []
-    , production ? true
-    , npmFlags ? ""
-    , dontNpmInstall ? false
-    , bypassCache ? false
-    , reconstructLock ? false
-    , preRebuild ? ""
-    , dontStrip ? true
-    , unpackPhase ? "true"
-    , buildPhase ? "true"
-    , meta ? {}
-    , ... }@args:
-
-    let
-      extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" "meta" ];
-    in
-    stdenv.mkDerivation ({
-      name = "node_${name}-${version}";
-      buildInputs = [ tarWrapper python nodejs ]
-        ++ lib.optional (stdenv.isLinux) util-linux
-        ++ lib.optional (stdenv.isDarwin) libtool
-        ++ buildInputs;
-
-      inherit nodejs;
-
-      inherit dontStrip; # Stripping may fail a build for some package deployments
-      inherit dontNpmInstall preRebuild unpackPhase buildPhase;
-
-      compositionScript = composePackage args;
-      pinpointDependenciesScript = pinpointDependenciesOfPackage args;
-
-      passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
-
-      installPhase = ''
-        # Create and enter a root node_modules/ folder
-        mkdir -p $out/lib/node_modules
-        cd $out/lib/node_modules
-
-        # Compose the package and all its dependencies
-        source $compositionScriptPath
-
-        ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
-
-        # Create symlink to the deployed executable folder, if applicable
-        if [ -d "$out/lib/node_modules/.bin" ]
-        then
-            ln -s $out/lib/node_modules/.bin $out/bin
-        fi
-
-        # Create symlinks to the deployed manual page folders, if applicable
-        if [ -d "$out/lib/node_modules/${packageName}/man" ]
-        then
-            mkdir -p $out/share
-            for dir in "$out/lib/node_modules/${packageName}/man/"*
-            do
-                mkdir -p $out/share/man/$(basename "$dir")
-                for page in "$dir"/*
-                do
-                    ln -s $page $out/share/man/$(basename "$dir")
-                done
-            done
-        fi
-
-        # Run post install hook, if provided
-        runHook postInstall
-      '';
-
-      meta = {
-        # default to Node.js' platforms
-        platforms = nodejs.meta.platforms;
-      } // meta;
-    } // extraArgs);
-
-  # Builds a development shell
-  buildNodeShell =
-    { name
-    , packageName
-    , version
-    , src
-    , dependencies ? []
-    , buildInputs ? []
-    , production ? true
-    , npmFlags ? ""
-    , dontNpmInstall ? false
-    , bypassCache ? false
-    , reconstructLock ? false
-    , dontStrip ? true
-    , unpackPhase ? "true"
-    , buildPhase ? "true"
-    , ... }@args:
-
-    let
-      extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
-
-      nodeDependencies = stdenv.mkDerivation ({
-        name = "node-dependencies-${name}-${version}";
-
-        buildInputs = [ tarWrapper python nodejs ]
-          ++ lib.optional (stdenv.isLinux) util-linux
-          ++ lib.optional (stdenv.isDarwin) libtool
-          ++ buildInputs;
-
-        inherit dontStrip; # Stripping may fail a build for some package deployments
-        inherit dontNpmInstall unpackPhase buildPhase;
-
-        includeScript = includeDependencies { inherit dependencies; };
-        pinpointDependenciesScript = pinpointDependenciesOfPackage args;
-
-        passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
-
-        installPhase = ''
-          mkdir -p $out/${packageName}
-          cd $out/${packageName}
-
-          source $includeScriptPath
-
-          # Create fake package.json to make the npm commands work properly
-          cp ${src}/package.json .
-          chmod 644 package.json
-          ${lib.optionalString bypassCache ''
-            if [ -f ${src}/package-lock.json ]
-            then
-                cp ${src}/package-lock.json .
-            fi
-          ''}
-
-          # Go to the parent folder to make sure that all packages are pinpointed
-          cd ..
-          ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
-
-          ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
-
-          # Expose the executables that were installed
-          cd ..
-          ${lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
-
-          mv ${packageName} lib
-          ln -s $out/lib/node_modules/.bin $out/bin
-        '';
-      } // extraArgs);
-    in
-    stdenv.mkDerivation {
-      name = "node-shell-${name}-${version}";
-
-      buildInputs = [ python nodejs ] ++ lib.optional (stdenv.isLinux) util-linux ++ buildInputs;
-      buildCommand = ''
-        mkdir -p $out/bin
-        cat > $out/bin/shell <<EOF
-        #! ${stdenv.shell} -e
-        $shellHook
-        exec ${stdenv.shell}
-        EOF
-        chmod +x $out/bin/shell
-      '';
-
-      # Provide the dependencies in a development shell through the NODE_PATH environment variable
-      inherit nodeDependencies;
-      shellHook = lib.optionalString (dependencies != []) ''
-        export NODE_PATH=${nodeDependencies}/lib/node_modules
-        export PATH="${nodeDependencies}/bin:$PATH"
-      '';
-    };
-in
-{
-  buildNodeSourceDist = lib.makeOverridable buildNodeSourceDist;
-  buildNodePackage = lib.makeOverridable buildNodePackage;
-  buildNodeShell = lib.makeOverridable buildNodeShell;
-}
diff --git a/pkgs/servers/zigbee2mqtt/node-packages.nix b/pkgs/servers/zigbee2mqtt/node-packages.nix
index 6b1e86d30a95b..bb988a02fa9d0 100644
--- a/pkgs/servers/zigbee2mqtt/node-packages.nix
+++ b/pkgs/servers/zigbee2mqtt/node-packages.nix
@@ -1,448 +1,448 @@
-# This file has been generated by node2nix 1.8.0. Do not edit!
+# This file has been generated by node2nix 1.9.0. Do not edit!
 
-{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}:
 
 let
   sources = {
-    "@babel/cli-7.12.1" = {
+    "@babel/cli-7.16.0" = {
       name = "_at_babel_slash_cli";
       packageName = "@babel/cli";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/cli/-/cli-7.12.1.tgz";
-        sha512 = "eRJREyrfAJ2r42Iaxe8h3v6yyj1wu9OyosaUHW6UImjGf9ahGL9nsFNh7OCopvtcPL8WnEo7tp78wrZaZ6vG9g==";
+        url = "https://registry.npmjs.org/@babel/cli/-/cli-7.16.0.tgz";
+        sha512 = "WLrM42vKX/4atIoQB+eb0ovUof53UUvecb4qGjU2PDDWRiZr50ZpiV8NpcLo7iSxeGYrRG0Mqembsa+UrTAV6Q==";
       };
     };
-    "@babel/code-frame-7.10.4" = {
+    "@babel/code-frame-7.16.0" = {
       name = "_at_babel_slash_code-frame";
       packageName = "@babel/code-frame";
-      version = "7.10.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz";
-        sha512 = "vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==";
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz";
+        sha512 = "IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==";
       };
     };
-    "@babel/compat-data-7.12.5" = {
+    "@babel/compat-data-7.16.4" = {
       name = "_at_babel_slash_compat-data";
       packageName = "@babel/compat-data";
-      version = "7.12.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.5.tgz";
-        sha512 = "DTsS7cxrsH3by8nqQSpFSyjSfSYl57D6Cf4q8dW3LK83tBKBDCkfcay1nYkXq1nIHXnpX8WMMb/O25HOy3h1zg==";
-      };
-    };
-    "@babel/core-7.12.3" = {
-      name = "_at_babel_slash_core";
-      packageName = "@babel/core";
-      version = "7.12.3";
+      version = "7.16.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz";
-        sha512 = "0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==";
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz";
+        sha512 = "1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==";
       };
     };
-    "@babel/core-7.12.9" = {
+    "@babel/core-7.16.0" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.12.9";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz";
-        sha512 = "gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz";
+        sha512 = "mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==";
       };
     };
-    "@babel/generator-7.12.5" = {
+    "@babel/generator-7.16.0" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.12.5";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz";
-        sha512 = "m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz";
+        sha512 = "RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==";
       };
     };
-    "@babel/helper-annotate-as-pure-7.10.4" = {
+    "@babel/helper-annotate-as-pure-7.16.0" = {
       name = "_at_babel_slash_helper-annotate-as-pure";
       packageName = "@babel/helper-annotate-as-pure";
-      version = "7.10.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz";
-        sha512 = "XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==";
+        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz";
+        sha512 = "ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==";
       };
     };
-    "@babel/helper-builder-binary-assignment-operator-visitor-7.10.4" = {
+    "@babel/helper-builder-binary-assignment-operator-visitor-7.16.0" = {
       name = "_at_babel_slash_helper-builder-binary-assignment-operator-visitor";
       packageName = "@babel/helper-builder-binary-assignment-operator-visitor";
-      version = "7.10.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz";
-        sha512 = "L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==";
+        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz";
+        sha512 = "9KuleLT0e77wFUku6TUkqZzCEymBdtuQQ27MhEKzf9UOOJu3cYj98kyaDAzxpC7lV6DGiZFuC8XqDsq8/Kl6aQ==";
       };
     };
-    "@babel/helper-compilation-targets-7.12.5" = {
+    "@babel/helper-compilation-targets-7.16.3" = {
       name = "_at_babel_slash_helper-compilation-targets";
       packageName = "@babel/helper-compilation-targets";
-      version = "7.12.5";
+      version = "7.16.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz";
-        sha512 = "+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==";
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz";
+        sha512 = "vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==";
       };
     };
-    "@babel/helper-create-class-features-plugin-7.12.1" = {
+    "@babel/helper-create-class-features-plugin-7.16.0" = {
       name = "_at_babel_slash_helper-create-class-features-plugin";
       packageName = "@babel/helper-create-class-features-plugin";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz";
-        sha512 = "hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==";
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz";
+        sha512 = "XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA==";
       };
     };
-    "@babel/helper-create-regexp-features-plugin-7.12.1" = {
+    "@babel/helper-create-regexp-features-plugin-7.16.0" = {
       name = "_at_babel_slash_helper-create-regexp-features-plugin";
       packageName = "@babel/helper-create-regexp-features-plugin";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz";
-        sha512 = "rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA==";
+        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz";
+        sha512 = "3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA==";
       };
     };
-    "@babel/helper-define-map-7.10.5" = {
-      name = "_at_babel_slash_helper-define-map";
-      packageName = "@babel/helper-define-map";
-      version = "7.10.5";
+    "@babel/helper-define-polyfill-provider-0.3.0" = {
+      name = "_at_babel_slash_helper-define-polyfill-provider";
+      packageName = "@babel/helper-define-polyfill-provider";
+      version = "0.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz";
-        sha512 = "fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==";
+        url = "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz";
+        sha512 = "7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==";
       };
     };
-    "@babel/helper-explode-assignable-expression-7.12.1" = {
+    "@babel/helper-explode-assignable-expression-7.16.0" = {
       name = "_at_babel_slash_helper-explode-assignable-expression";
       packageName = "@babel/helper-explode-assignable-expression";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz";
-        sha512 = "dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==";
+        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz";
+        sha512 = "Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ==";
       };
     };
-    "@babel/helper-function-name-7.10.4" = {
+    "@babel/helper-function-name-7.16.0" = {
       name = "_at_babel_slash_helper-function-name";
       packageName = "@babel/helper-function-name";
-      version = "7.10.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
-        sha512 = "YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==";
+        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz";
+        sha512 = "BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==";
       };
     };
-    "@babel/helper-get-function-arity-7.10.4" = {
+    "@babel/helper-get-function-arity-7.16.0" = {
       name = "_at_babel_slash_helper-get-function-arity";
       packageName = "@babel/helper-get-function-arity";
-      version = "7.10.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
-        sha512 = "EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==";
+        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz";
+        sha512 = "ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==";
       };
     };
-    "@babel/helper-hoist-variables-7.10.4" = {
+    "@babel/helper-hoist-variables-7.16.0" = {
       name = "_at_babel_slash_helper-hoist-variables";
       packageName = "@babel/helper-hoist-variables";
-      version = "7.10.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz";
-        sha512 = "wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==";
+        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz";
+        sha512 = "1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==";
       };
     };
-    "@babel/helper-member-expression-to-functions-7.12.1" = {
+    "@babel/helper-member-expression-to-functions-7.16.0" = {
       name = "_at_babel_slash_helper-member-expression-to-functions";
       packageName = "@babel/helper-member-expression-to-functions";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz";
-        sha512 = "k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ==";
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz";
+        sha512 = "bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==";
       };
     };
-    "@babel/helper-member-expression-to-functions-7.12.7" = {
-      name = "_at_babel_slash_helper-member-expression-to-functions";
-      packageName = "@babel/helper-member-expression-to-functions";
-      version = "7.12.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz";
-        sha512 = "DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==";
-      };
-    };
-    "@babel/helper-module-imports-7.12.5" = {
+    "@babel/helper-module-imports-7.16.0" = {
       name = "_at_babel_slash_helper-module-imports";
       packageName = "@babel/helper-module-imports";
-      version = "7.12.5";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz";
-        sha512 = "SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==";
+        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz";
+        sha512 = "kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==";
       };
     };
-    "@babel/helper-module-transforms-7.12.1" = {
+    "@babel/helper-module-transforms-7.16.0" = {
       name = "_at_babel_slash_helper-module-transforms";
       packageName = "@babel/helper-module-transforms";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz";
-        sha512 = "QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==";
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz";
+        sha512 = "My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==";
       };
     };
-    "@babel/helper-optimise-call-expression-7.10.4" = {
+    "@babel/helper-optimise-call-expression-7.16.0" = {
       name = "_at_babel_slash_helper-optimise-call-expression";
       packageName = "@babel/helper-optimise-call-expression";
-      version = "7.10.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz";
-        sha512 = "n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==";
+        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz";
+        sha512 = "SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==";
       };
     };
-    "@babel/helper-optimise-call-expression-7.12.7" = {
-      name = "_at_babel_slash_helper-optimise-call-expression";
-      packageName = "@babel/helper-optimise-call-expression";
-      version = "7.12.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.7.tgz";
-        sha512 = "I5xc9oSJ2h59OwyUqjv95HRyzxj53DAubUERgQMrpcCEYQyToeHA+NEcUEsVWB4j53RDeskeBJ0SgRAYHDBckw==";
-      };
-    };
-    "@babel/helper-plugin-utils-7.10.4" = {
+    "@babel/helper-plugin-utils-7.14.5" = {
       name = "_at_babel_slash_helper-plugin-utils";
       packageName = "@babel/helper-plugin-utils";
-      version = "7.10.4";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
-        sha512 = "O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==";
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz";
+        sha512 = "/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==";
       };
     };
-    "@babel/helper-regex-7.10.5" = {
-      name = "_at_babel_slash_helper-regex";
-      packageName = "@babel/helper-regex";
-      version = "7.10.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz";
-        sha512 = "68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==";
-      };
-    };
-    "@babel/helper-remap-async-to-generator-7.12.1" = {
+    "@babel/helper-remap-async-to-generator-7.16.4" = {
       name = "_at_babel_slash_helper-remap-async-to-generator";
       packageName = "@babel/helper-remap-async-to-generator";
-      version = "7.12.1";
+      version = "7.16.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz";
-        sha512 = "9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==";
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz";
+        sha512 = "vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA==";
       };
     };
-    "@babel/helper-replace-supers-7.12.5" = {
+    "@babel/helper-replace-supers-7.16.0" = {
       name = "_at_babel_slash_helper-replace-supers";
       packageName = "@babel/helper-replace-supers";
-      version = "7.12.5";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz";
-        sha512 = "5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==";
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz";
+        sha512 = "TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==";
       };
     };
-    "@babel/helper-simple-access-7.12.1" = {
+    "@babel/helper-simple-access-7.16.0" = {
       name = "_at_babel_slash_helper-simple-access";
       packageName = "@babel/helper-simple-access";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz";
-        sha512 = "OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==";
+        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz";
+        sha512 = "o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==";
       };
     };
-    "@babel/helper-skip-transparent-expression-wrappers-7.12.1" = {
+    "@babel/helper-skip-transparent-expression-wrappers-7.16.0" = {
       name = "_at_babel_slash_helper-skip-transparent-expression-wrappers";
       packageName = "@babel/helper-skip-transparent-expression-wrappers";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz";
-        sha512 = "Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==";
+        url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz";
+        sha512 = "+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==";
       };
     };
-    "@babel/helper-split-export-declaration-7.11.0" = {
+    "@babel/helper-split-export-declaration-7.16.0" = {
       name = "_at_babel_slash_helper-split-export-declaration";
       packageName = "@babel/helper-split-export-declaration";
-      version = "7.11.0";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz";
-        sha512 = "74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==";
+        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz";
+        sha512 = "0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==";
       };
     };
-    "@babel/helper-validator-identifier-7.10.4" = {
+    "@babel/helper-validator-identifier-7.15.7" = {
       name = "_at_babel_slash_helper-validator-identifier";
       packageName = "@babel/helper-validator-identifier";
-      version = "7.10.4";
+      version = "7.15.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
-        sha512 = "3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz";
+        sha512 = "K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==";
       };
     };
-    "@babel/helper-validator-option-7.12.1" = {
+    "@babel/helper-validator-option-7.14.5" = {
       name = "_at_babel_slash_helper-validator-option";
       packageName = "@babel/helper-validator-option";
-      version = "7.12.1";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz";
-        sha512 = "YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz";
+        sha512 = "OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==";
       };
     };
-    "@babel/helper-wrap-function-7.12.3" = {
+    "@babel/helper-wrap-function-7.16.0" = {
       name = "_at_babel_slash_helper-wrap-function";
       packageName = "@babel/helper-wrap-function";
-      version = "7.12.3";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz";
-        sha512 = "Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==";
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz";
+        sha512 = "VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g==";
       };
     };
-    "@babel/helpers-7.12.5" = {
+    "@babel/helpers-7.16.3" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.12.5";
+      version = "7.16.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz";
-        sha512 = "lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz";
+        sha512 = "Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==";
       };
     };
-    "@babel/highlight-7.10.4" = {
+    "@babel/highlight-7.16.0" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.10.4";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz";
-        sha512 = "i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz";
+        sha512 = "t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==";
       };
     };
-    "@babel/parser-7.12.5" = {
+    "@babel/parser-7.16.4" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.12.5";
+      version = "7.16.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.12.5.tgz";
-        sha512 = "FVM6RZQ0mn2KCf1VUED7KepYeUWoVShczewOCfm3nzoBybaih51h+sYVVGthW9M6lPByEPTQf+xm27PBdlpwmQ==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz";
+        sha512 = "6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==";
       };
     };
-    "@babel/parser-7.12.7" = {
-      name = "_at_babel_slash_parser";
-      packageName = "@babel/parser";
-      version = "7.12.7";
+    "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2" = {
+      name = "_at_babel_slash_plugin-bugfix-safari-id-destructuring-collision-in-function-expression";
+      packageName = "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression";
+      version = "7.16.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.12.7.tgz";
-        sha512 = "oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==";
+        url = "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz";
+        sha512 = "h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg==";
       };
     };
-    "@babel/plugin-proposal-async-generator-functions-7.12.1" = {
+    "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0" = {
+      name = "_at_babel_slash_plugin-bugfix-v8-spread-parameters-in-optional-chaining";
+      packageName = "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining";
+      version = "7.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz";
+        sha512 = "4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA==";
+      };
+    };
+    "@babel/plugin-proposal-async-generator-functions-7.16.4" = {
       name = "_at_babel_slash_plugin-proposal-async-generator-functions";
       packageName = "@babel/plugin-proposal-async-generator-functions";
-      version = "7.12.1";
+      version = "7.16.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz";
-        sha512 = "d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz";
+        sha512 = "/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==";
       };
     };
-    "@babel/plugin-proposal-class-properties-7.12.1" = {
+    "@babel/plugin-proposal-class-properties-7.16.0" = {
       name = "_at_babel_slash_plugin-proposal-class-properties";
       packageName = "@babel/plugin-proposal-class-properties";
-      version = "7.12.1";
+      version = "7.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz";
+        sha512 = "mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A==";
+      };
+    };
+    "@babel/plugin-proposal-class-static-block-7.16.0" = {
+      name = "_at_babel_slash_plugin-proposal-class-static-block";
+      packageName = "@babel/plugin-proposal-class-static-block";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz";
-        sha512 = "cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.0.tgz";
+        sha512 = "mAy3sdcY9sKAkf3lQbDiv3olOfiLqI51c9DR9b19uMoR2Z6r5pmGl7dfNFqEvqOyqbf1ta4lknK4gc5PJn3mfA==";
       };
     };
-    "@babel/plugin-proposal-dynamic-import-7.12.1" = {
+    "@babel/plugin-proposal-decorators-7.16.4" = {
+      name = "_at_babel_slash_plugin-proposal-decorators";
+      packageName = "@babel/plugin-proposal-decorators";
+      version = "7.16.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.16.4.tgz";
+        sha512 = "RESBNX16eNqnBeEVR5sCJpnW0mHiNLNNvGA8PrRuK/4ZJ4TO+6bHleRUuGQYDERVySOKtOhSya/C4MIhwAMAgg==";
+      };
+    };
+    "@babel/plugin-proposal-dynamic-import-7.16.0" = {
       name = "_at_babel_slash_plugin-proposal-dynamic-import";
       packageName = "@babel/plugin-proposal-dynamic-import";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz";
-        sha512 = "a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.0.tgz";
+        sha512 = "QGSA6ExWk95jFQgwz5GQ2Dr95cf7eI7TKutIXXTb7B1gCLTCz5hTjFTQGfLFBBiC5WSNi7udNwWsqbbMh1c4yQ==";
       };
     };
-    "@babel/plugin-proposal-export-namespace-from-7.12.1" = {
+    "@babel/plugin-proposal-export-namespace-from-7.16.0" = {
       name = "_at_babel_slash_plugin-proposal-export-namespace-from";
       packageName = "@babel/plugin-proposal-export-namespace-from";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz";
-        sha512 = "6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.0.tgz";
+        sha512 = "CjI4nxM/D+5wCnhD11MHB1AwRSAYeDT+h8gCdcVJZ/OK7+wRzFsf7PFPWVpVpNRkHMmMkQWAHpTq+15IXQ1diA==";
       };
     };
-    "@babel/plugin-proposal-json-strings-7.12.1" = {
+    "@babel/plugin-proposal-json-strings-7.16.0" = {
       name = "_at_babel_slash_plugin-proposal-json-strings";
       packageName = "@babel/plugin-proposal-json-strings";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz";
-        sha512 = "GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.0.tgz";
+        sha512 = "kouIPuiv8mSi5JkEhzApg5Gn6hFyKPnlkO0a9YSzqRurH8wYzSlf6RJdzluAsbqecdW5pBvDJDfyDIUR/vLxvg==";
       };
     };
-    "@babel/plugin-proposal-logical-assignment-operators-7.12.1" = {
+    "@babel/plugin-proposal-logical-assignment-operators-7.16.0" = {
       name = "_at_babel_slash_plugin-proposal-logical-assignment-operators";
       packageName = "@babel/plugin-proposal-logical-assignment-operators";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz";
-        sha512 = "k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.0.tgz";
+        sha512 = "pbW0fE30sVTYXXm9lpVQQ/Vc+iTeQKiXlaNRZPPN2A2VdlWyAtsUrsQ3xydSlDW00TFMK7a8m3cDTkBF5WnV3Q==";
       };
     };
-    "@babel/plugin-proposal-nullish-coalescing-operator-7.12.1" = {
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.16.0" = {
       name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
       packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz";
-        sha512 = "nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz";
+        sha512 = "3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ==";
       };
     };
-    "@babel/plugin-proposal-numeric-separator-7.12.5" = {
+    "@babel/plugin-proposal-numeric-separator-7.16.0" = {
       name = "_at_babel_slash_plugin-proposal-numeric-separator";
       packageName = "@babel/plugin-proposal-numeric-separator";
-      version = "7.12.5";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.5.tgz";
-        sha512 = "UiAnkKuOrCyjZ3sYNHlRlfuZJbBHknMQ9VMwVeX97Ofwx7RpD6gS2HfqTCh8KNUQgcOm8IKt103oR4KIjh7Q8g==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.0.tgz";
+        sha512 = "FAhE2I6mjispy+vwwd6xWPyEx3NYFS13pikDBWUAFGZvq6POGs5eNchw8+1CYoEgBl9n11I3NkzD7ghn25PQ9Q==";
       };
     };
-    "@babel/plugin-proposal-object-rest-spread-7.12.1" = {
+    "@babel/plugin-proposal-object-rest-spread-7.16.0" = {
       name = "_at_babel_slash_plugin-proposal-object-rest-spread";
       packageName = "@babel/plugin-proposal-object-rest-spread";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz";
-        sha512 = "s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz";
+        sha512 = "LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg==";
       };
     };
-    "@babel/plugin-proposal-optional-catch-binding-7.12.1" = {
+    "@babel/plugin-proposal-optional-catch-binding-7.16.0" = {
       name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
       packageName = "@babel/plugin-proposal-optional-catch-binding";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz";
-        sha512 = "hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.0.tgz";
+        sha512 = "kicDo0A/5J0nrsCPbn89mTG3Bm4XgYi0CZtvex9Oyw7gGZE3HXGD0zpQNH+mo+tEfbo8wbmMvJftOwpmPy7aVw==";
       };
     };
-    "@babel/plugin-proposal-optional-chaining-7.12.1" = {
+    "@babel/plugin-proposal-optional-chaining-7.16.0" = {
       name = "_at_babel_slash_plugin-proposal-optional-chaining";
       packageName = "@babel/plugin-proposal-optional-chaining";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz";
-        sha512 = "c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz";
+        sha512 = "Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg==";
       };
     };
-    "@babel/plugin-proposal-private-methods-7.12.1" = {
+    "@babel/plugin-proposal-private-methods-7.16.0" = {
       name = "_at_babel_slash_plugin-proposal-private-methods";
       packageName = "@babel/plugin-proposal-private-methods";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz";
-        sha512 = "mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.0.tgz";
+        sha512 = "IvHmcTHDFztQGnn6aWq4t12QaBXTKr1whF/dgp9kz84X6GUcwq9utj7z2wFCUfeOup/QKnOlt2k0zxkGFx9ubg==";
       };
     };
-    "@babel/plugin-proposal-unicode-property-regex-7.12.1" = {
+    "@babel/plugin-proposal-private-property-in-object-7.16.0" = {
+      name = "_at_babel_slash_plugin-proposal-private-property-in-object";
+      packageName = "@babel/plugin-proposal-private-property-in-object";
+      version = "7.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.0.tgz";
+        sha512 = "3jQUr/HBbMVZmi72LpjQwlZ55i1queL8KcDTQEkAHihttJnAPrcvG9ZNXIfsd2ugpizZo595egYV6xy+pv4Ofw==";
+      };
+    };
+    "@babel/plugin-proposal-unicode-property-regex-7.16.0" = {
       name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
       packageName = "@babel/plugin-proposal-unicode-property-regex";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz";
-        sha512 = "MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.0.tgz";
+        sha512 = "ti7IdM54NXv29cA4+bNNKEMS4jLMCbJgl+Drv+FgYy0erJLAxNAIXcNjNjrRZEcWq0xJHsNVwQezskMFpF8N9g==";
       };
     };
     "@babel/plugin-syntax-async-generators-7.8.4" = {
@@ -463,13 +463,31 @@ let
         sha512 = "wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==";
       };
     };
-    "@babel/plugin-syntax-class-properties-7.12.1" = {
+    "@babel/plugin-syntax-class-properties-7.12.13" = {
       name = "_at_babel_slash_plugin-syntax-class-properties";
       packageName = "@babel/plugin-syntax-class-properties";
-      version = "7.12.1";
+      version = "7.12.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz";
+        sha512 = "fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==";
+      };
+    };
+    "@babel/plugin-syntax-class-static-block-7.14.5" = {
+      name = "_at_babel_slash_plugin-syntax-class-static-block";
+      packageName = "@babel/plugin-syntax-class-static-block";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz";
-        sha512 = "U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz";
+        sha512 = "b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==";
+      };
+    };
+    "@babel/plugin-syntax-decorators-7.16.0" = {
+      name = "_at_babel_slash_plugin-syntax-decorators";
+      packageName = "@babel/plugin-syntax-decorators";
+      version = "7.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.16.0.tgz";
+        sha512 = "nxnnngZClvlY13nHJAIDow0S7Qzhq64fQ/NlqS+VER3kjW/4F0jLhXjeL8jcwSwz6Ca3rotT5NJD2T9I7lcv7g==";
       };
     };
     "@babel/plugin-syntax-dynamic-import-7.8.3" = {
@@ -562,409 +580,391 @@ let
         sha512 = "KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==";
       };
     };
-    "@babel/plugin-syntax-top-level-await-7.12.1" = {
+    "@babel/plugin-syntax-private-property-in-object-7.14.5" = {
+      name = "_at_babel_slash_plugin-syntax-private-property-in-object";
+      packageName = "@babel/plugin-syntax-private-property-in-object";
+      version = "7.14.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz";
+        sha512 = "0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==";
+      };
+    };
+    "@babel/plugin-syntax-top-level-await-7.14.5" = {
       name = "_at_babel_slash_plugin-syntax-top-level-await";
       packageName = "@babel/plugin-syntax-top-level-await";
-      version = "7.12.1";
+      version = "7.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz";
-        sha512 = "i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz";
+        sha512 = "hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==";
       };
     };
-    "@babel/plugin-syntax-typescript-7.12.1" = {
+    "@babel/plugin-syntax-typescript-7.16.0" = {
       name = "_at_babel_slash_plugin-syntax-typescript";
       packageName = "@babel/plugin-syntax-typescript";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.1.tgz";
-        sha512 = "UZNEcCY+4Dp9yYRCAHrHDU+9ZXLYaY9MgBXSRLkB9WjYFRR6quJBumfVrEkUxrePPBwFcpWfNKXqVRQQtm7mMA==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.0.tgz";
+        sha512 = "Xv6mEXqVdaqCBfJFyeab0fH2DnUoMsDmhamxsSi4j8nLd4Vtw213WMJr55xxqipC/YVWyPY3K0blJncPYji+dQ==";
       };
     };
-    "@babel/plugin-transform-arrow-functions-7.12.1" = {
+    "@babel/plugin-transform-arrow-functions-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-arrow-functions";
       packageName = "@babel/plugin-transform-arrow-functions";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz";
-        sha512 = "5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.0.tgz";
+        sha512 = "vIFb5250Rbh7roWARvCLvIJ/PtAU5Lhv7BtZ1u24COwpI9Ypjsh+bZcKk6rlIyalK+r0jOc1XQ8I4ovNxNrWrA==";
       };
     };
-    "@babel/plugin-transform-async-to-generator-7.12.1" = {
+    "@babel/plugin-transform-async-to-generator-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-async-to-generator";
       packageName = "@babel/plugin-transform-async-to-generator";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz";
-        sha512 = "SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz";
+        sha512 = "PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw==";
       };
     };
-    "@babel/plugin-transform-block-scoped-functions-7.12.1" = {
+    "@babel/plugin-transform-block-scoped-functions-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-block-scoped-functions";
       packageName = "@babel/plugin-transform-block-scoped-functions";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz";
-        sha512 = "5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.0.tgz";
+        sha512 = "V14As3haUOP4ZWrLJ3VVx5rCnrYhMSHN/jX7z6FAt5hjRkLsb0snPCmJwSOML5oxkKO4FNoNv7V5hw/y2bjuvg==";
       };
     };
-    "@babel/plugin-transform-block-scoping-7.12.1" = {
+    "@babel/plugin-transform-block-scoping-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-block-scoping";
       packageName = "@babel/plugin-transform-block-scoping";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz";
-        sha512 = "zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.0.tgz";
+        sha512 = "27n3l67/R3UrXfizlvHGuTwsRIFyce3D/6a37GRxn28iyTPvNXaW4XvznexRh1zUNLPjbLL22Id0XQElV94ruw==";
       };
     };
-    "@babel/plugin-transform-classes-7.12.1" = {
+    "@babel/plugin-transform-classes-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-classes";
       packageName = "@babel/plugin-transform-classes";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz";
-        sha512 = "/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.0.tgz";
+        sha512 = "HUxMvy6GtAdd+GKBNYDWCIA776byUQH8zjnfjxwT1P1ARv/wFu8eBDpmXQcLS/IwRtrxIReGiplOwMeyO7nsDQ==";
       };
     };
-    "@babel/plugin-transform-computed-properties-7.12.1" = {
+    "@babel/plugin-transform-computed-properties-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-computed-properties";
       packageName = "@babel/plugin-transform-computed-properties";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz";
-        sha512 = "vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.0.tgz";
+        sha512 = "63l1dRXday6S8V3WFY5mXJwcRAnPYxvFfTlt67bwV1rTyVTM5zrp0DBBb13Kl7+ehkCVwIZPumPpFP/4u70+Tw==";
       };
     };
-    "@babel/plugin-transform-destructuring-7.12.1" = {
+    "@babel/plugin-transform-destructuring-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-destructuring";
       packageName = "@babel/plugin-transform-destructuring";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz";
-        sha512 = "fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.0.tgz";
+        sha512 = "Q7tBUwjxLTsHEoqktemHBMtb3NYwyJPTJdM+wDwb0g8PZ3kQUIzNvwD5lPaqW/p54TXBc/MXZu9Jr7tbUEUM8Q==";
       };
     };
-    "@babel/plugin-transform-dotall-regex-7.12.1" = {
+    "@babel/plugin-transform-dotall-regex-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-dotall-regex";
       packageName = "@babel/plugin-transform-dotall-regex";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz";
-        sha512 = "B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.0.tgz";
+        sha512 = "FXlDZfQeLILfJlC6I1qyEwcHK5UpRCFkaoVyA1nk9A1L1Yu583YO4un2KsLBsu3IJb4CUbctZks8tD9xPQubLw==";
       };
     };
-    "@babel/plugin-transform-duplicate-keys-7.12.1" = {
+    "@babel/plugin-transform-duplicate-keys-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-duplicate-keys";
       packageName = "@babel/plugin-transform-duplicate-keys";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz";
-        sha512 = "iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.0.tgz";
+        sha512 = "LIe2kcHKAZOJDNxujvmp6z3mfN6V9lJxubU4fJIGoQCkKe3Ec2OcbdlYP+vW++4MpxwG0d1wSDOJtQW5kLnkZQ==";
       };
     };
-    "@babel/plugin-transform-exponentiation-operator-7.12.1" = {
+    "@babel/plugin-transform-exponentiation-operator-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-exponentiation-operator";
       packageName = "@babel/plugin-transform-exponentiation-operator";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz";
-        sha512 = "7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.0.tgz";
+        sha512 = "OwYEvzFI38hXklsrbNivzpO3fh87skzx8Pnqi4LoSYeav0xHlueSoCJrSgTPfnbyzopo5b3YVAJkFIcUpK2wsw==";
       };
     };
-    "@babel/plugin-transform-for-of-7.12.1" = {
+    "@babel/plugin-transform-for-of-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-for-of";
       packageName = "@babel/plugin-transform-for-of";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz";
-        sha512 = "Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.0.tgz";
+        sha512 = "5QKUw2kO+GVmKr2wMYSATCTTnHyscl6sxFRAY+rvN7h7WB0lcG0o4NoV6ZQU32OZGVsYUsfLGgPQpDFdkfjlJQ==";
       };
     };
-    "@babel/plugin-transform-function-name-7.12.1" = {
+    "@babel/plugin-transform-function-name-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-function-name";
       packageName = "@babel/plugin-transform-function-name";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz";
-        sha512 = "JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.0.tgz";
+        sha512 = "lBzMle9jcOXtSOXUpc7tvvTpENu/NuekNJVova5lCCWCV9/U1ho2HH2y0p6mBg8fPm/syEAbfaaemYGOHCY3mg==";
       };
     };
-    "@babel/plugin-transform-literals-7.12.1" = {
+    "@babel/plugin-transform-literals-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-literals";
       packageName = "@babel/plugin-transform-literals";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz";
-        sha512 = "+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.0.tgz";
+        sha512 = "gQDlsSF1iv9RU04clgXqRjrPyyoJMTclFt3K1cjLmTKikc0s/6vE3hlDeEVC71wLTRu72Fq7650kABrdTc2wMQ==";
       };
     };
-    "@babel/plugin-transform-member-expression-literals-7.12.1" = {
+    "@babel/plugin-transform-member-expression-literals-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-member-expression-literals";
       packageName = "@babel/plugin-transform-member-expression-literals";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz";
-        sha512 = "1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.0.tgz";
+        sha512 = "WRpw5HL4Jhnxw8QARzRvwojp9MIE7Tdk3ez6vRyUk1MwgjJN0aNpRoXainLR5SgxmoXx/vsXGZ6OthP6t/RbUg==";
       };
     };
-    "@babel/plugin-transform-modules-amd-7.12.1" = {
+    "@babel/plugin-transform-modules-amd-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-modules-amd";
       packageName = "@babel/plugin-transform-modules-amd";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz";
-        sha512 = "tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.0.tgz";
+        sha512 = "rWFhWbCJ9Wdmzln1NmSCqn7P0RAD+ogXG/bd9Kg5c7PKWkJtkiXmYsMBeXjDlzHpVTJ4I/hnjs45zX4dEv81xw==";
       };
     };
-    "@babel/plugin-transform-modules-commonjs-7.12.1" = {
+    "@babel/plugin-transform-modules-commonjs-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-modules-commonjs";
       packageName = "@babel/plugin-transform-modules-commonjs";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz";
-        sha512 = "dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz";
+        sha512 = "Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ==";
       };
     };
-    "@babel/plugin-transform-modules-systemjs-7.12.1" = {
+    "@babel/plugin-transform-modules-systemjs-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-modules-systemjs";
       packageName = "@babel/plugin-transform-modules-systemjs";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz";
-        sha512 = "Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.0.tgz";
+        sha512 = "yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg==";
       };
     };
-    "@babel/plugin-transform-modules-umd-7.12.1" = {
+    "@babel/plugin-transform-modules-umd-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-modules-umd";
       packageName = "@babel/plugin-transform-modules-umd";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz";
-        sha512 = "aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.0.tgz";
+        sha512 = "nx4f6no57himWiHhxDM5pjwhae5vLpTK2zCnDH8+wNLJy0TVER/LJRHl2bkt6w9Aad2sPD5iNNoUpY3X9sTGDg==";
       };
     };
-    "@babel/plugin-transform-named-capturing-groups-regex-7.12.1" = {
+    "@babel/plugin-transform-named-capturing-groups-regex-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
       packageName = "@babel/plugin-transform-named-capturing-groups-regex";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz";
-        sha512 = "tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.0.tgz";
+        sha512 = "LogN88uO+7EhxWc8WZuQ8vxdSyVGxhkh8WTC3tzlT8LccMuQdA81e9SGV6zY7kY2LjDhhDOFdQVxdGwPyBCnvg==";
       };
     };
-    "@babel/plugin-transform-new-target-7.12.1" = {
+    "@babel/plugin-transform-new-target-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-new-target";
       packageName = "@babel/plugin-transform-new-target";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz";
-        sha512 = "+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.0.tgz";
+        sha512 = "fhjrDEYv2DBsGN/P6rlqakwRwIp7rBGLPbrKxwh7oVt5NNkIhZVOY2GRV+ULLsQri1bDqwDWnU3vhlmx5B2aCw==";
       };
     };
-    "@babel/plugin-transform-object-super-7.12.1" = {
+    "@babel/plugin-transform-object-super-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-object-super";
       packageName = "@babel/plugin-transform-object-super";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz";
-        sha512 = "AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.0.tgz";
+        sha512 = "fds+puedQHn4cPLshoHcR1DTMN0q1V9ou0mUjm8whx9pGcNvDrVVrgw+KJzzCaiTdaYhldtrUps8DWVMgrSEyg==";
       };
     };
-    "@babel/plugin-transform-parameters-7.12.1" = {
+    "@babel/plugin-transform-parameters-7.16.3" = {
       name = "_at_babel_slash_plugin-transform-parameters";
       packageName = "@babel/plugin-transform-parameters";
-      version = "7.12.1";
+      version = "7.16.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz";
-        sha512 = "xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz";
+        sha512 = "3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==";
       };
     };
-    "@babel/plugin-transform-property-literals-7.12.1" = {
+    "@babel/plugin-transform-property-literals-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-property-literals";
       packageName = "@babel/plugin-transform-property-literals";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz";
-        sha512 = "6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.0.tgz";
+        sha512 = "XLldD4V8+pOqX2hwfWhgwXzGdnDOThxaNTgqagOcpBgIxbUvpgU2FMvo5E1RyHbk756WYgdbS0T8y0Cj9FKkWQ==";
       };
     };
-    "@babel/plugin-transform-regenerator-7.12.1" = {
+    "@babel/plugin-transform-regenerator-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-regenerator";
       packageName = "@babel/plugin-transform-regenerator";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz";
-        sha512 = "gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.0.tgz";
+        sha512 = "JAvGxgKuwS2PihiSFaDrp94XOzzTUeDeOQlcKzVAyaPap7BnZXK/lvMDiubkPTdotPKOIZq9xWXWnggUMYiExg==";
       };
     };
-    "@babel/plugin-transform-reserved-words-7.12.1" = {
+    "@babel/plugin-transform-reserved-words-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-reserved-words";
       packageName = "@babel/plugin-transform-reserved-words";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz";
-        sha512 = "pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.0.tgz";
+        sha512 = "Dgs8NNCehHSvXdhEhln8u/TtJxfVwGYCgP2OOr5Z3Ar+B+zXicEOKNTyc+eca2cuEOMtjW6m9P9ijOt8QdqWkg==";
       };
     };
-    "@babel/plugin-transform-shorthand-properties-7.12.1" = {
+    "@babel/plugin-transform-shorthand-properties-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-shorthand-properties";
       packageName = "@babel/plugin-transform-shorthand-properties";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz";
-        sha512 = "GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.0.tgz";
+        sha512 = "iVb1mTcD8fuhSv3k99+5tlXu5N0v8/DPm2mO3WACLG6al1CGZH7v09HJyUb1TtYl/Z+KrM6pHSIJdZxP5A+xow==";
       };
     };
-    "@babel/plugin-transform-spread-7.12.1" = {
+    "@babel/plugin-transform-spread-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-spread";
       packageName = "@babel/plugin-transform-spread";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz";
-        sha512 = "vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.0.tgz";
+        sha512 = "Ao4MSYRaLAQczZVp9/7E7QHsCuK92yHRrmVNRe/SlEJjhzivq0BSn8mEraimL8wizHZ3fuaHxKH0iwzI13GyGg==";
       };
     };
-    "@babel/plugin-transform-sticky-regex-7.12.1" = {
+    "@babel/plugin-transform-sticky-regex-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-sticky-regex";
       packageName = "@babel/plugin-transform-sticky-regex";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz";
-        sha512 = "CiUgKQ3AGVk7kveIaPEET1jNDhZZEl1RPMWdTBE1799bdz++SwqDHStmxfCtDfBhQgCl38YRiSnrMuUMZIWSUQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.0.tgz";
+        sha512 = "/ntT2NljR9foobKk4E/YyOSwcGUXtYWv5tinMK/3RkypyNBNdhHUaq6Orw5DWq9ZcNlS03BIlEALFeQgeVAo4Q==";
       };
     };
-    "@babel/plugin-transform-template-literals-7.12.1" = {
+    "@babel/plugin-transform-template-literals-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-template-literals";
       packageName = "@babel/plugin-transform-template-literals";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz";
-        sha512 = "b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.0.tgz";
+        sha512 = "Rd4Ic89hA/f7xUSJQk5PnC+4so50vBoBfxjdQAdvngwidM8jYIBVxBZ/sARxD4e0yMXRbJVDrYf7dyRtIIKT6Q==";
       };
     };
-    "@babel/plugin-transform-typeof-symbol-7.12.1" = {
+    "@babel/plugin-transform-typeof-symbol-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-typeof-symbol";
       packageName = "@babel/plugin-transform-typeof-symbol";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz";
-        sha512 = "EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.0.tgz";
+        sha512 = "++V2L8Bdf4vcaHi2raILnptTBjGEFxn5315YU+e8+EqXIucA+q349qWngCLpUYqqv233suJ6NOienIVUpS9cqg==";
       };
     };
-    "@babel/plugin-transform-typescript-7.12.1" = {
+    "@babel/plugin-transform-typescript-7.16.1" = {
       name = "_at_babel_slash_plugin-transform-typescript";
       packageName = "@babel/plugin-transform-typescript";
-      version = "7.12.1";
+      version = "7.16.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.1.tgz";
-        sha512 = "VrsBByqAIntM+EYMqSm59SiMEf7qkmI9dqMt6RbD/wlwueWmYcI0FFK5Fj47pP6DRZm+3teXjosKlwcZJ5lIMw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.1.tgz";
+        sha512 = "NO4XoryBng06jjw/qWEU2LhcLJr1tWkhpMam/H4eas/CDKMX/b2/Ylb6EI256Y7+FVPCawwSM1rrJNOpDiz+Lg==";
       };
     };
-    "@babel/plugin-transform-unicode-escapes-7.12.1" = {
+    "@babel/plugin-transform-unicode-escapes-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-unicode-escapes";
       packageName = "@babel/plugin-transform-unicode-escapes";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz";
-        sha512 = "I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.0.tgz";
+        sha512 = "VFi4dhgJM7Bpk8lRc5CMaRGlKZ29W9C3geZjt9beuzSUrlJxsNwX7ReLwaL6WEvsOf2EQkyIJEPtF8EXjB/g2A==";
       };
     };
-    "@babel/plugin-transform-unicode-regex-7.12.1" = {
+    "@babel/plugin-transform-unicode-regex-7.16.0" = {
       name = "_at_babel_slash_plugin-transform-unicode-regex";
       packageName = "@babel/plugin-transform-unicode-regex";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz";
-        sha512 = "SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.0.tgz";
+        sha512 = "jHLK4LxhHjvCeZDWyA9c+P9XH1sOxRd1RO9xMtDVRAOND/PczPqizEtVdx4TQF/wyPaewqpT+tgQFYMnN/P94A==";
       };
     };
-    "@babel/preset-env-7.12.1" = {
+    "@babel/preset-env-7.16.4" = {
       name = "_at_babel_slash_preset-env";
       packageName = "@babel/preset-env";
-      version = "7.12.1";
+      version = "7.16.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.1.tgz";
-        sha512 = "H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg==";
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.4.tgz";
+        sha512 = "v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==";
       };
     };
-    "@babel/preset-modules-0.1.4" = {
+    "@babel/preset-modules-0.1.5" = {
       name = "_at_babel_slash_preset-modules";
       packageName = "@babel/preset-modules";
-      version = "0.1.4";
+      version = "0.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz";
-        sha512 = "J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==";
+        url = "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz";
+        sha512 = "A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==";
       };
     };
-    "@babel/preset-typescript-7.12.1" = {
+    "@babel/preset-typescript-7.16.0" = {
       name = "_at_babel_slash_preset-typescript";
       packageName = "@babel/preset-typescript";
-      version = "7.12.1";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.1.tgz";
-        sha512 = "hNK/DhmoJPsksdHuI/RVrcEws7GN5eamhi28JkO52MqIxU8Z0QpmiSOQxZHWOHV7I3P4UjHV97ay4TcamMA6Kw==";
+        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.0.tgz";
+        sha512 = "txegdrZYgO9DlPbv+9QOVpMnKbOtezsLHWsnsRF4AjbSIsVaujrq1qg8HK0mxQpWv0jnejt0yEoW1uWpvbrDTg==";
       };
     };
-    "@babel/runtime-7.12.5" = {
+    "@babel/runtime-7.16.3" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.12.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz";
-        sha512 = "plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==";
-      };
-    };
-    "@babel/template-7.10.4" = {
-      name = "_at_babel_slash_template";
-      packageName = "@babel/template";
-      version = "7.10.4";
+      version = "7.16.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz";
-        sha512 = "ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz";
+        sha512 = "WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==";
       };
     };
-    "@babel/template-7.12.7" = {
+    "@babel/template-7.16.0" = {
       name = "_at_babel_slash_template";
       packageName = "@babel/template";
-      version = "7.12.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz";
-        sha512 = "GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==";
-      };
-    };
-    "@babel/traverse-7.12.5" = {
-      name = "_at_babel_slash_traverse";
-      packageName = "@babel/traverse";
-      version = "7.12.5";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.5.tgz";
-        sha512 = "xa15FbQnias7z9a62LwYAA5SZZPkHIXpd42C6uW68o8uTuua96FHZy1y61Va5P/i83FAAcMpW8+A/QayntzuqA==";
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz";
+        sha512 = "MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==";
       };
     };
-    "@babel/traverse-7.12.9" = {
+    "@babel/traverse-7.16.3" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.12.9";
+      version = "7.16.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.9.tgz";
-        sha512 = "iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz";
+        sha512 = "eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==";
       };
     };
-    "@babel/types-7.12.6" = {
+    "@babel/types-7.16.0" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.12.6";
+      version = "7.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.12.6.tgz";
-        sha512 = "hwyjw6GvjBLiyy3W0YQf0Z5Zf4NpYejUnKFcfcUhZCSffoBBp30w6wP2Wn6pk31jMYZvcOrB/1b7cGXvEoKogA==";
-      };
-    };
-    "@babel/types-7.12.7" = {
-      name = "_at_babel_slash_types";
-      packageName = "@babel/types";
-      version = "7.12.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.12.7.tgz";
-        sha512 = "MNyI92qZq6jrQkXvtIiykvl4WtoRrVV9MPn+ZfsoEENjiWcBQ3ZSHrkxnJWgWtLX3XXqX5hrSQ+X69wkmesXuQ==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz";
+        sha512 = "PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==";
       };
     };
     "@bcoe/v8-coverage-0.2.3" = {
@@ -976,15 +976,6 @@ let
         sha512 = "0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==";
       };
     };
-    "@cnakazawa/watch-1.0.4" = {
-      name = "_at_cnakazawa_slash_watch";
-      packageName = "@cnakazawa/watch";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz";
-        sha512 = "v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==";
-      };
-    };
     "@dabh/diagnostics-2.0.2" = {
       name = "_at_dabh_slash_diagnostics";
       packageName = "@dabh/diagnostics";
@@ -994,13 +985,31 @@ let
         sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==";
       };
     };
-    "@eslint/eslintrc-0.2.1" = {
+    "@eslint/eslintrc-1.0.4" = {
       name = "_at_eslint_slash_eslintrc";
       packageName = "@eslint/eslintrc";
-      version = "0.2.1";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz";
+        sha512 = "h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==";
+      };
+    };
+    "@humanwhocodes/config-array-0.6.0" = {
+      name = "_at_humanwhocodes_slash_config-array";
+      packageName = "@humanwhocodes/config-array";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz";
+        sha512 = "JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==";
+      };
+    };
+    "@humanwhocodes/object-schema-1.2.1" = {
+      name = "_at_humanwhocodes_slash_object-schema";
+      packageName = "@humanwhocodes/object-schema";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.1.tgz";
-        sha512 = "XRUeBZ5zBWLYgSANMpThFddrZZkEbGHgUdt5UJjZfnlN9BGCiUBrf+nvbRupSjMvqzwnQN0qwCmOxITt1cfywA==";
+        url = "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz";
+        sha512 = "ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==";
       };
     };
     "@istanbuljs/load-nyc-config-1.1.0" = {
@@ -1012,328 +1021,463 @@ let
         sha512 = "VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==";
       };
     };
-    "@istanbuljs/schema-0.1.2" = {
+    "@istanbuljs/schema-0.1.3" = {
       name = "_at_istanbuljs_slash_schema";
       packageName = "@istanbuljs/schema";
-      version = "0.1.2";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz";
+        sha512 = "ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==";
+      };
+    };
+    "@jest/console-27.3.1" = {
+      name = "_at_jest_slash_console";
+      packageName = "@jest/console";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz";
-        sha512 = "tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==";
+        url = "https://registry.npmjs.org/@jest/console/-/console-27.3.1.tgz";
+        sha512 = "RkFNWmv0iui+qsOr/29q9dyfKTTT5DCuP31kUwg7rmOKPT/ozLeGLKJKVIiOfbiKyleUZKIrHwhmiZWVe8IMdw==";
       };
     };
-    "@jest/console-26.6.2" = {
+    "@jest/console-27.4.2" = {
       name = "_at_jest_slash_console";
       packageName = "@jest/console";
-      version = "26.6.2";
+      version = "27.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz";
-        sha512 = "IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==";
+        url = "https://registry.npmjs.org/@jest/console/-/console-27.4.2.tgz";
+        sha512 = "xknHThRsPB/To1FUbi6pCe43y58qFC03zfb6R7fDb/FfC7k2R3i1l+izRBJf8DI46KhYGRaF14Eo9A3qbBoixg==";
       };
     };
-    "@jest/core-26.6.3" = {
+    "@jest/core-27.3.1" = {
       name = "_at_jest_slash_core";
       packageName = "@jest/core";
-      version = "26.6.3";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz";
-        sha512 = "xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==";
+        url = "https://registry.npmjs.org/@jest/core/-/core-27.3.1.tgz";
+        sha512 = "DMNE90RR5QKx0EA+wqe3/TNEwiRpOkhshKNxtLxd4rt3IZpCt+RSL+FoJsGeblRZmqdK4upHA/mKKGPPRAifhg==";
       };
     };
-    "@jest/environment-26.6.2" = {
+    "@jest/core-27.4.3" = {
+      name = "_at_jest_slash_core";
+      packageName = "@jest/core";
+      version = "27.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/core/-/core-27.4.3.tgz";
+        sha512 = "V9ms3zSxUHxh1E/ZLAiXF7SLejsdFnjWTFizWotMOWvjho0lW5kSjZymhQSodNW0T0ZMQRiha7f8+NcFVm3hJQ==";
+      };
+    };
+    "@jest/environment-27.3.1" = {
+      name = "_at_jest_slash_environment";
+      packageName = "@jest/environment";
+      version = "27.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/environment/-/environment-27.3.1.tgz";
+        sha512 = "BCKCj4mOVLme6Tanoyc9k0ultp3pnmuyHw73UHRPeeZxirsU/7E3HC4le/VDb/SMzE1JcPnto+XBKFOcoiJzVw==";
+      };
+    };
+    "@jest/environment-27.4.2" = {
       name = "_at_jest_slash_environment";
       packageName = "@jest/environment";
-      version = "26.6.2";
+      version = "27.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz";
-        sha512 = "nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==";
+        url = "https://registry.npmjs.org/@jest/environment/-/environment-27.4.2.tgz";
+        sha512 = "uSljKxh/rGlHlmhyeG4ZoVK9hOec+EPBkwTHkHKQ2EqDu5K+MaG9uJZ8o1CbRsSdZqSuhXvJCYhBWsORPPg6qw==";
       };
     };
-    "@jest/fake-timers-26.6.2" = {
+    "@jest/fake-timers-27.3.1" = {
       name = "_at_jest_slash_fake-timers";
       packageName = "@jest/fake-timers";
-      version = "26.6.2";
+      version = "27.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.3.1.tgz";
+        sha512 = "M3ZFgwwlqJtWZ+QkBG5NmC23A9w+A6ZxNsO5nJxJsKYt4yguBd3i8TpjQz5NfCX91nEve1KqD9RA2Q+Q1uWqoA==";
+      };
+    };
+    "@jest/fake-timers-27.4.2" = {
+      name = "_at_jest_slash_fake-timers";
+      packageName = "@jest/fake-timers";
+      version = "27.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.2.tgz";
+        sha512 = "f/Xpzn5YQk5adtqBgvw1V6bF8Nx3hY0OIRRpCvWcfPl0EAjdqWPdhH3t/3XpiWZqtjIEHDyMKP9ajpva1l4Zmg==";
+      };
+    };
+    "@jest/globals-27.3.1" = {
+      name = "_at_jest_slash_globals";
+      packageName = "@jest/globals";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz";
-        sha512 = "14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==";
+        url = "https://registry.npmjs.org/@jest/globals/-/globals-27.3.1.tgz";
+        sha512 = "Q651FWiWQAIFiN+zS51xqhdZ8g9b88nGCobC87argAxA7nMfNQq0Q0i9zTfQYgLa6qFXk2cGANEqfK051CZ8Pg==";
       };
     };
-    "@jest/globals-26.6.2" = {
+    "@jest/globals-27.4.2" = {
       name = "_at_jest_slash_globals";
       packageName = "@jest/globals";
-      version = "26.6.2";
+      version = "27.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz";
-        sha512 = "85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==";
+        url = "https://registry.npmjs.org/@jest/globals/-/globals-27.4.2.tgz";
+        sha512 = "KkfaHEttlGpXYAQTZHgrESiEPx2q/DKAFLGLFda1uGVrqc17snd3YVPhOxlXOHIzVPs+lQ/SDB2EIvxyGzb3Ew==";
       };
     };
-    "@jest/reporters-26.6.2" = {
+    "@jest/reporters-27.3.1" = {
       name = "_at_jest_slash_reporters";
       packageName = "@jest/reporters";
-      version = "26.6.2";
+      version = "27.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/reporters/-/reporters-27.3.1.tgz";
+        sha512 = "m2YxPmL9Qn1emFVgZGEiMwDntDxRRQ2D58tiDQlwYTg5GvbFOKseYCcHtn0WsI8CG4vzPglo3nqbOiT8ySBT/w==";
+      };
+    };
+    "@jest/reporters-27.4.2" = {
+      name = "_at_jest_slash_reporters";
+      packageName = "@jest/reporters";
+      version = "27.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.2.tgz";
+        sha512 = "sp4aqmdBJtjKetEakzDPcZggPcVIF6w9QLkYBbaWDV6e/SIsHnF1S4KtIH91eEc2fp7ep6V/e1xvdfEoho1d2w==";
+      };
+    };
+    "@jest/source-map-27.0.6" = {
+      name = "_at_jest_slash_source-map";
+      packageName = "@jest/source-map";
+      version = "27.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz";
-        sha512 = "h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==";
+        url = "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz";
+        sha512 = "Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==";
       };
     };
-    "@jest/source-map-26.6.2" = {
+    "@jest/source-map-27.4.0" = {
       name = "_at_jest_slash_source-map";
       packageName = "@jest/source-map";
-      version = "26.6.2";
+      version = "27.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz";
-        sha512 = "YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==";
+        url = "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz";
+        sha512 = "Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ==";
       };
     };
-    "@jest/test-result-26.6.2" = {
+    "@jest/test-result-27.3.1" = {
       name = "_at_jest_slash_test-result";
       packageName = "@jest/test-result";
-      version = "26.6.2";
+      version = "27.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/test-result/-/test-result-27.3.1.tgz";
+        sha512 = "mLn6Thm+w2yl0opM8J/QnPTqrfS4FoXsXF2WIWJb2O/GBSyResL71BRuMYbYRsGt7ELwS5JGcEcGb52BNrumgg==";
+      };
+    };
+    "@jest/test-result-27.4.2" = {
+      name = "_at_jest_slash_test-result";
+      packageName = "@jest/test-result";
+      version = "27.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.2.tgz";
+        sha512 = "kr+bCrra9jfTgxHXHa2UwoQjxvQk3Am6QbpAiJ5x/50LW8llOYrxILkqY0lZRW/hu8FXesnudbql263+EW9iNA==";
+      };
+    };
+    "@jest/test-sequencer-27.3.1" = {
+      name = "_at_jest_slash_test-sequencer";
+      packageName = "@jest/test-sequencer";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz";
-        sha512 = "5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==";
+        url = "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.3.1.tgz";
+        sha512 = "siySLo07IMEdSjA4fqEnxfIX8lB/lWYsBPwNFtkOvsFQvmBrL3yj3k3uFNZv/JDyApTakRpxbKLJ3CT8UGVCrA==";
       };
     };
-    "@jest/test-sequencer-26.6.3" = {
+    "@jest/test-sequencer-27.4.2" = {
       name = "_at_jest_slash_test-sequencer";
       packageName = "@jest/test-sequencer";
-      version = "26.6.3";
+      version = "27.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.2.tgz";
+        sha512 = "HmHp5mlh9f9GyNej5yCS1JZIFfUGnP9+jEOH5zoq5EmsuZeYD+dGULqyvGDPtuzzbyAFJ6R4+z4SS0VvnFwwGQ==";
+      };
+    };
+    "@jest/transform-27.3.1" = {
+      name = "_at_jest_slash_transform";
+      packageName = "@jest/transform";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz";
-        sha512 = "YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==";
+        url = "https://registry.npmjs.org/@jest/transform/-/transform-27.3.1.tgz";
+        sha512 = "3fSvQ02kuvjOI1C1ssqMVBKJpZf6nwoCiSu00zAKh5nrp3SptNtZy/8s5deayHnqxhjD9CWDJ+yqQwuQ0ZafXQ==";
       };
     };
-    "@jest/transform-26.6.2" = {
+    "@jest/transform-27.4.2" = {
       name = "_at_jest_slash_transform";
       packageName = "@jest/transform";
-      version = "26.6.2";
+      version = "27.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz";
-        sha512 = "E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==";
+        url = "https://registry.npmjs.org/@jest/transform/-/transform-27.4.2.tgz";
+        sha512 = "RTKcPZllfcmLfnlxBya7aypofhdz05+E6QITe55Ex0rxyerkgjmmpMlvVn11V0cP719Ps6WcDYCnDzxnnJUwKg==";
       };
     };
-    "@jest/types-26.6.2" = {
+    "@jest/types-27.2.5" = {
       name = "_at_jest_slash_types";
       packageName = "@jest/types";
-      version = "26.6.2";
+      version = "27.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz";
-        sha512 = "fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==";
+        url = "https://registry.npmjs.org/@jest/types/-/types-27.2.5.tgz";
+        sha512 = "nmuM4VuDtCZcY+eTpw+0nvstwReMsjPoj7ZR80/BbixulhLaiX+fbv8oeLW8WZlJMcsGQsTmMKT/iTZu1Uy/lQ==";
       };
     };
-    "@nicolo-ribaudo/chokidar-2-2.1.8" = {
+    "@jest/types-27.4.2" = {
+      name = "_at_jest_slash_types";
+      packageName = "@jest/types";
+      version = "27.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz";
+        sha512 = "j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==";
+      };
+    };
+    "@nicolo-ribaudo/chokidar-2-2.1.8-no-fsevents.3" = {
       name = "_at_nicolo-ribaudo_slash_chokidar-2";
       packageName = "@nicolo-ribaudo/chokidar-2";
-      version = "2.1.8";
+      version = "2.1.8-no-fsevents.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8.tgz";
-        sha512 = "FohwULwAebCUKi/akMFyGi7jfc7JXTeMHzKxuP3umRd9mK/2Y7/SMBSI2jX+YLopPXi+PF9l307NmpfxTdCegA==";
+        url = "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz";
+        sha512 = "s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==";
       };
     };
-    "@nodelib/fs.scandir-2.1.3" = {
+    "@nodelib/fs.scandir-2.1.5" = {
       name = "_at_nodelib_slash_fs.scandir";
       packageName = "@nodelib/fs.scandir";
-      version = "2.1.3";
+      version = "2.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz";
-        sha512 = "eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==";
+        url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz";
+        sha512 = "vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==";
       };
     };
-    "@nodelib/fs.stat-2.0.3" = {
+    "@nodelib/fs.stat-2.0.5" = {
       name = "_at_nodelib_slash_fs.stat";
       packageName = "@nodelib/fs.stat";
-      version = "2.0.3";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz";
-        sha512 = "bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==";
+        url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz";
+        sha512 = "RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==";
       };
     };
-    "@nodelib/fs.walk-1.2.4" = {
+    "@nodelib/fs.walk-1.2.8" = {
       name = "_at_nodelib_slash_fs.walk";
       packageName = "@nodelib/fs.walk";
-      version = "1.2.4";
+      version = "1.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz";
-        sha512 = "1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==";
+        url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz";
+        sha512 = "oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==";
       };
     };
-    "@serialport/binding-abstract-9.0.2" = {
+    "@serialport/binding-abstract-9.2.3" = {
       name = "_at_serialport_slash_binding-abstract";
       packageName = "@serialport/binding-abstract";
-      version = "9.0.2";
+      version = "9.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/binding-abstract/-/binding-abstract-9.0.2.tgz";
-        sha512 = "kyMX6usn+VLpidt0YsDq5JwztIan9TPCX6skr0XcalOxI8I7w+/2qVZJzjgo2fSqDnPRcU2jMWTytwzEXFODvQ==";
+        url = "https://registry.npmjs.org/@serialport/binding-abstract/-/binding-abstract-9.2.3.tgz";
+        sha512 = "cQs9tbIlG3P0IrOWyVirqlhWuJ7Ms2Zh9m2108z6Y5UW/iVj6wEOiW8EmK9QX9jmJXYllE7wgGgvVozP5oCj3w==";
       };
     };
-    "@serialport/binding-mock-9.0.2" = {
+    "@serialport/binding-mock-9.2.4" = {
       name = "_at_serialport_slash_binding-mock";
       packageName = "@serialport/binding-mock";
-      version = "9.0.2";
+      version = "9.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-9.0.2.tgz";
-        sha512 = "HfrvJ/LXULHk8w63CGxwDNiDidFgDX8BnadY+cgVS6yHMHikbhLCLjCmUKsKBWaGKRqOznl0w+iUl7TMi1lkXQ==";
+        url = "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-9.2.4.tgz";
+        sha512 = "dpEhACCs44oQhh6ajJfJdvQdK38Vq0N4W6iD/gdplglDCK7qXRQCMUjJIeKdS/HSEiWkC3bwumUhUufdsOyT4g==";
       };
     };
-    "@serialport/bindings-9.0.2" = {
+    "@serialport/bindings-9.2.8" = {
       name = "_at_serialport_slash_bindings";
       packageName = "@serialport/bindings";
-      version = "9.0.2";
+      version = "9.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/bindings/-/bindings-9.0.2.tgz";
-        sha512 = "kQ3co4aGwwbUqkRdJ7UfdlbLB5dUQwNfSglexC8iv65D5HXfjSBR1bE0XUH8PH/v/6Dh6CSnwf6OP0I3H5vMWQ==";
+        url = "https://registry.npmjs.org/@serialport/bindings/-/bindings-9.2.8.tgz";
+        sha512 = "hSLxTe0tADZ3LMMGwvEJWOC/TaFQTyPeFalUCsJ1lSQ0k6bPF04JwrtB/C81GetmDBTNRY0GlD0SNtKCc7Dr5g==";
       };
     };
-    "@serialport/parser-byte-length-9.0.1" = {
+    "@serialport/parser-byte-length-9.2.4" = {
       name = "_at_serialport_slash_parser-byte-length";
       packageName = "@serialport/parser-byte-length";
-      version = "9.0.1";
+      version = "9.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-9.0.1.tgz";
-        sha512 = "1Ikv4lgCNw8OMf35yCpgzjHwkpgBEkhBuXFXIdWZk+ixaHFLlAtp03QxGPZBmzHMK58WDmEQoBHC1V5BkkAKSQ==";
+        url = "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-9.2.4.tgz";
+        sha512 = "sQD/iw4ZMU3xW9PLi0/GlvU6Y623jGeWecbMkO7izUo/6P7gtfv1c9ikd5h0kwL8AoAOpQA1lxdHIKox+umBUg==";
       };
     };
-    "@serialport/parser-cctalk-9.0.1" = {
+    "@serialport/parser-cctalk-9.2.4" = {
       name = "_at_serialport_slash_parser-cctalk";
       packageName = "@serialport/parser-cctalk";
-      version = "9.0.1";
+      version = "9.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-9.0.1.tgz";
-        sha512 = "GtMda2DeJ+23bNqOc79JYV06dax2n3FLLFM3zA7nfReCOi98QbuDj4TUbFESMOnp4DB0oMO0GYHCR9gHOedTkg==";
+        url = "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-9.2.4.tgz";
+        sha512 = "T4TU5vQMwmo9AB3gQLFDWbfJXlW5jd9guEsB/nqKjFHTv0FXPdZ7DQ2TpSp8RnHWxU3GX6kYTaDO20BKzc8GPQ==";
       };
     };
-    "@serialport/parser-delimiter-9.0.1" = {
+    "@serialport/parser-delimiter-9.2.4" = {
       name = "_at_serialport_slash_parser-delimiter";
       packageName = "@serialport/parser-delimiter";
-      version = "9.0.1";
+      version = "9.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-9.0.1.tgz";
-        sha512 = "+oaSl5zEu47OlrRiF5p5tn2qgGqYuhVcE+NI+Pv4E1xsNB/A0fFxxMv/8XUw466CRLEJ5IESIB9qbFvKE6ltaQ==";
+        url = "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-9.2.4.tgz";
+        sha512 = "4nvTAoYAgkxFiXrkI+3CA49Yd43CODjeszh89EK+I9c8wOZ+etZduRCzINYPiy26g7zO+GRAb9FoPCsY+sYcbQ==";
       };
     };
-    "@serialport/parser-readline-9.0.1" = {
+    "@serialport/parser-inter-byte-timeout-9.2.4" = {
+      name = "_at_serialport_slash_parser-inter-byte-timeout";
+      packageName = "@serialport/parser-inter-byte-timeout";
+      version = "9.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-inter-byte-timeout/-/parser-inter-byte-timeout-9.2.4.tgz";
+        sha512 = "SOAdvr0oBQIOCXX198hiTlxs4JTKg9j5piapw5tNq52fwDOWdbYrFneT/wN04UTMKaDrJuEvXq6T4rv4j7nJ5A==";
+      };
+    };
+    "@serialport/parser-readline-9.2.4" = {
       name = "_at_serialport_slash_parser-readline";
       packageName = "@serialport/parser-readline";
-      version = "9.0.1";
+      version = "9.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-9.0.1.tgz";
-        sha512 = "38058gxvyfgdeLpg3aUyD98NuWkVB9yyTLpcSdeQ3GYiupivwH6Tdy/SKPmxlHIw3Ml2qil5MR2mtW2fLPB5CQ==";
+        url = "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-9.2.4.tgz";
+        sha512 = "Z1/qrZTQUVhNSJP1hd9YfDvq0o7d87rNwAjjRKbVpa7Qi51tG5BnKt43IV3NFMyBlVcRe0rnIb3tJu57E0SOwg==";
       };
     };
-    "@serialport/parser-ready-9.0.1" = {
+    "@serialport/parser-ready-9.2.4" = {
       name = "_at_serialport_slash_parser-ready";
       packageName = "@serialport/parser-ready";
-      version = "9.0.1";
+      version = "9.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-9.0.1.tgz";
-        sha512 = "lgzGkVJaaV1rJVx26WwI2UKyPxc0vu1rsOeldzA3VVbF+ABrblUQA06+cRPpT6k96GY+X4+1fB1rWuPpt8HbgQ==";
+        url = "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-9.2.4.tgz";
+        sha512 = "Pyi94Itjl6qAURwIZr/gmZpMAyTmKXThm6vL5DoAWGQjcRHWB0gwv2TY2v7N+mQLJYUKU3cMnvnATXxHm7xjxw==";
       };
     };
-    "@serialport/parser-regex-9.0.1" = {
+    "@serialport/parser-regex-9.2.4" = {
       name = "_at_serialport_slash_parser-regex";
       packageName = "@serialport/parser-regex";
-      version = "9.0.1";
+      version = "9.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-9.0.1.tgz";
-        sha512 = "BHTV+Lkl+J8hSecFtDRENaR4fgA6tw44J+dmA1vEKEyum0iDN4bihbu8yvztYyo4PhBGUKDfm/PnD5EkJm0dPA==";
+        url = "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-9.2.4.tgz";
+        sha512 = "sI/cVvPOYz+Dbv4ZdnW16qAwvXiFf/1pGASQdbveRTlgJDdz7sRNlCBifzfTN2xljwvCTZYqiudKvDdC1TepRQ==";
       };
     };
-    "@serialport/stream-9.0.2" = {
+    "@serialport/stream-9.2.4" = {
       name = "_at_serialport_slash_stream";
       packageName = "@serialport/stream";
-      version = "9.0.2";
+      version = "9.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serialport/stream/-/stream-9.0.2.tgz";
-        sha512 = "0RkVe+gvwZu/PPfbb7ExQ+euGoCTGKD/B8TQ5fuhe+eKk1sh73RwjKmu9gp6veSNqx9Zljnh1dF6mhdEKWZpSA==";
+        url = "https://registry.npmjs.org/@serialport/stream/-/stream-9.2.4.tgz";
+        sha512 = "bLye8Ub4vUFQGmkh8qEqehr7SE7EJs2yDs0h9jzuL5oKi+F34CFmWkEErO8GAOQ8YNn7p6b3GxUgs+0BrHHDZQ==";
       };
     };
-    "@sinonjs/commons-1.8.1" = {
+    "@sinonjs/commons-1.8.3" = {
       name = "_at_sinonjs_slash_commons";
       packageName = "@sinonjs/commons";
-      version = "1.8.1";
+      version = "1.8.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz";
-        sha512 = "892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==";
+        url = "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz";
+        sha512 = "xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==";
       };
     };
-    "@sinonjs/fake-timers-6.0.1" = {
+    "@sinonjs/fake-timers-8.1.0" = {
       name = "_at_sinonjs_slash_fake-timers";
       packageName = "@sinonjs/fake-timers";
-      version = "6.0.1";
+      version = "8.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz";
+        sha512 = "OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==";
+      };
+    };
+    "@tootallnate/once-1.1.2" = {
+      name = "_at_tootallnate_slash_once";
+      packageName = "@tootallnate/once";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz";
-        sha512 = "MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==";
+        url = "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz";
+        sha512 = "RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==";
       };
     };
-    "@types/babel__core-7.1.12" = {
+    "@types/babel__core-7.1.16" = {
       name = "_at_types_slash_babel__core";
       packageName = "@types/babel__core";
-      version = "7.1.12";
+      version = "7.1.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.12.tgz";
-        sha512 = "wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ==";
+        url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.16.tgz";
+        sha512 = "EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==";
       };
     };
-    "@types/babel__generator-7.6.2" = {
+    "@types/babel__generator-7.6.3" = {
       name = "_at_types_slash_babel__generator";
       packageName = "@types/babel__generator";
-      version = "7.6.2";
+      version = "7.6.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz";
-        sha512 = "MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==";
+        url = "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz";
+        sha512 = "/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==";
       };
     };
-    "@types/babel__template-7.4.0" = {
+    "@types/babel__template-7.4.1" = {
       name = "_at_types_slash_babel__template";
       packageName = "@types/babel__template";
-      version = "7.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz";
-        sha512 = "NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==";
-      };
-    };
-    "@types/babel__traverse-7.0.15" = {
-      name = "_at_types_slash_babel__traverse";
-      packageName = "@types/babel__traverse";
-      version = "7.0.15";
+      version = "7.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.15.tgz";
-        sha512 = "Pzh9O3sTK8V6I1olsXpCfj2k/ygO2q1X0vhhnDrEQyYLHZesWz+zMZMVcwXLCYf0U36EtmyYaFGPfXlTtDHe3A==";
+        url = "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz";
+        sha512 = "azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==";
       };
     };
-    "@types/babel__traverse-7.0.16" = {
+    "@types/babel__traverse-7.14.2" = {
       name = "_at_types_slash_babel__traverse";
       packageName = "@types/babel__traverse";
-      version = "7.0.16";
+      version = "7.14.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.16.tgz";
-        sha512 = "S63Dt4CZOkuTmpLGGWtT/mQdVORJOpx6SZWGVaP56dda/0Nx5nEe82K7/LAm8zYr6SfMq+1N2OreIOrHAx656w==";
+        url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz";
+        sha512 = "K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==";
       };
     };
-    "@types/debounce-1.2.0" = {
+    "@types/debounce-1.2.1" = {
       name = "_at_types_slash_debounce";
       packageName = "@types/debounce";
-      version = "1.2.0";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.0.tgz";
-        sha512 = "bWG5wapaWgbss9E238T0R6bfo5Fh3OkeoSt245CM7JJwVwpw6MEBCbIxLq5z8KzsE3uJhzcIuQkyiZmzV3M/Dw==";
+        url = "https://registry.npmjs.org/@types/debounce/-/debounce-1.2.1.tgz";
+        sha512 = "epMsEE85fi4lfmJUH/89/iV/LI+F5CvNIvmgs5g5jYFPfhO2S/ae8WSsLOKWdwtoaZw9Q2IhJ4tQ5tFCcS/4HA==";
       };
     };
-    "@types/debug-4.1.5" = {
+    "@types/debug-4.1.7" = {
       name = "_at_types_slash_debug";
       packageName = "@types/debug";
-      version = "4.1.5";
+      version = "4.1.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz";
-        sha512 = "Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==";
+        url = "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz";
+        sha512 = "9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==";
       };
     };
-    "@types/graceful-fs-4.1.4" = {
+    "@types/finalhandler-1.1.1" = {
+      name = "_at_types_slash_finalhandler";
+      packageName = "@types/finalhandler";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/finalhandler/-/finalhandler-1.1.1.tgz";
+        sha512 = "fT+Qs+kczrGnY9EpJpFHbdfdyKSoHUCKo3gJYbDWSSQFc18Td87AelfhMM8zqHRcP97/tk8AijV2zSUdClJK+Q==";
+      };
+    };
+    "@types/glob-7.2.0" = {
+      name = "_at_types_slash_glob";
+      packageName = "@types/glob";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz";
+        sha512 = "ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==";
+      };
+    };
+    "@types/graceful-fs-4.1.5" = {
       name = "_at_types_slash_graceful-fs";
       packageName = "@types/graceful-fs";
-      version = "4.1.4";
+      version = "4.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.4.tgz";
-        sha512 = "mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg==";
+        url = "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz";
+        sha512 = "anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==";
+      };
+    };
+    "@types/humanize-duration-3.27.0" = {
+      name = "_at_types_slash_humanize-duration";
+      packageName = "@types/humanize-duration";
+      version = "3.27.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/humanize-duration/-/humanize-duration-3.27.0.tgz";
+        sha512 = "ivv1EIdXz20vHPB9xftPvogUEjGLSSlgz2fipK2yyHQZvZeIgUQBZc23Kcuxa4zGbiUcRtr36Sw96CF+TO30Fw==";
       };
     };
     "@types/istanbul-lib-coverage-2.0.3" = {
@@ -1354,229 +1498,274 @@ let
         sha512 = "plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==";
       };
     };
-    "@types/istanbul-reports-3.0.0" = {
+    "@types/istanbul-reports-3.0.1" = {
       name = "_at_types_slash_istanbul-reports";
       packageName = "@types/istanbul-reports";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz";
-        sha512 = "nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==";
+        url = "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz";
+        sha512 = "c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==";
       };
     };
-    "@types/jest-26.0.15" = {
+    "@types/jest-27.0.3" = {
       name = "_at_types_slash_jest";
       packageName = "@types/jest";
-      version = "26.0.15";
+      version = "27.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/jest/-/jest-27.0.3.tgz";
+        sha512 = "cmmwv9t7gBYt7hNKH5Spu7Kuu/DotGa+Ff+JGRKZ4db5eh8PnKS4LuebJ3YLUoyOyIHraTGyULn23YtEAm0VSg==";
+      };
+    };
+    "@types/js-yaml-4.0.5" = {
+      name = "_at_types_slash_js-yaml";
+      packageName = "@types/js-yaml";
+      version = "4.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/jest/-/jest-26.0.15.tgz";
-        sha512 = "s2VMReFXRg9XXxV+CW9e5Nz8fH2K1aEhwgjUqPPbQd7g95T0laAcvLv032EhFHIa5GHsZ8W7iJEQVaJq6k3Gog==";
+        url = "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz";
+        sha512 = "FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==";
       };
     };
-    "@types/json-schema-7.0.6" = {
+    "@types/json-schema-7.0.9" = {
       name = "_at_types_slash_json-schema";
       packageName = "@types/json-schema";
-      version = "7.0.6";
+      version = "7.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz";
-        sha512 = "3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==";
+        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz";
+        sha512 = "qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==";
       };
     };
-    "@types/nedb-1.8.11" = {
+    "@types/minimatch-3.0.5" = {
+      name = "_at_types_slash_minimatch";
+      packageName = "@types/minimatch";
+      version = "3.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz";
+        sha512 = "Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==";
+      };
+    };
+    "@types/ms-0.7.31" = {
+      name = "_at_types_slash_ms";
+      packageName = "@types/ms";
+      version = "0.7.31";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz";
+        sha512 = "iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==";
+      };
+    };
+    "@types/mz-2.7.4" = {
+      name = "_at_types_slash_mz";
+      packageName = "@types/mz";
+      version = "2.7.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/mz/-/mz-2.7.4.tgz";
+        sha512 = "Zs0imXxyWT20j3Z2NwKpr0IO2LmLactBblNyLua5Az4UHuqOQ02V3jPTgyKwDkuc33/ahw+C3O1PIZdrhFMuQA==";
+      };
+    };
+    "@types/nedb-1.8.12" = {
       name = "_at_types_slash_nedb";
       packageName = "@types/nedb";
-      version = "1.8.11";
+      version = "1.8.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/nedb/-/nedb-1.8.11.tgz";
-        sha512 = "qHQRLZ0e6l/XK/2Qb2v5N1ujmdttYkUvnRI4nPIifMy6vYwoAnER10xhX13isWjjQtNsrjNLinZgDDguzPmEKw==";
+        url = "https://registry.npmjs.org/@types/nedb/-/nedb-1.8.12.tgz";
+        sha512 = "ICDoQMORMjOSqfNFXT4ENXfwwCir1BPblXNm0SPH7C4Q10ou+pvVagcFAJ+rrzf3A47tGU4K/KbzKu7wO9j45Q==";
       };
     };
-    "@types/node-14.14.10" = {
+    "@types/node-16.11.10" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "14.14.10";
+      version = "16.11.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz";
-        sha512 = "J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==";
+        url = "https://registry.npmjs.org/@types/node/-/node-16.11.10.tgz";
+        sha512 = "3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA==";
       };
     };
-    "@types/node-14.14.7" = {
+    "@types/node-16.11.11" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "14.14.7";
+      version = "16.11.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.14.7.tgz";
-        sha512 = "Zw1vhUSQZYw+7u5dAwNbIA9TuTotpzY/OF7sJM9FqPOF3SPjKnxrjoTktXDZgUjybf4cWVBP7O8wvKdSaGHweg==";
+        url = "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz";
+        sha512 = "KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==";
       };
     };
-    "@types/normalize-package-data-2.4.0" = {
-      name = "_at_types_slash_normalize-package-data";
-      packageName = "@types/normalize-package-data";
-      version = "2.4.0";
+    "@types/object-assign-deep-0.4.0" = {
+      name = "_at_types_slash_object-assign-deep";
+      packageName = "@types/object-assign-deep";
+      version = "0.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
-        sha512 = "f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==";
+        url = "https://registry.npmjs.org/@types/object-assign-deep/-/object-assign-deep-0.4.0.tgz";
+        sha512 = "3D0F3rHRNDc8cQSXNzwF1jBrJi28Mdrhc10ZLlqbJWDPYRWTTWB9Tc8JoKrgBvLKioXoPoHT6Uzf3s2F7akCUg==";
       };
     };
-    "@types/prettier-2.1.5" = {
+    "@types/prettier-2.4.2" = {
       name = "_at_types_slash_prettier";
       packageName = "@types/prettier";
-      version = "2.1.5";
+      version = "2.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz";
-        sha512 = "UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ==";
+        url = "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.2.tgz";
+        sha512 = "ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==";
       };
     };
-    "@types/serialport-8.0.1" = {
+    "@types/rimraf-3.0.2" = {
+      name = "_at_types_slash_rimraf";
+      packageName = "@types/rimraf";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/rimraf/-/rimraf-3.0.2.tgz";
+        sha512 = "F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==";
+      };
+    };
+    "@types/serialport-8.0.2" = {
       name = "_at_types_slash_serialport";
       packageName = "@types/serialport";
-      version = "8.0.1";
+      version = "8.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/serialport/-/serialport-8.0.1.tgz";
-        sha512 = "IcKHq6b/ynKSF/x4al/Ce8+a0hpbYIEaIcK9Z3l4koLvQqAPSODZ37/hgemQx8dTu7fPZDMHN4bKmu89B3UaGA==";
+        url = "https://registry.npmjs.org/@types/serialport/-/serialport-8.0.2.tgz";
+        sha512 = "z4b1I8/vdZE3upgCcAL9VAWlVVFUVn5uo3faAHavkVfK/Hb1LUxKwp9YCtA5AZqEUCWoSWl20SRTOvAI/5fQWQ==";
       };
     };
-    "@types/stack-utils-2.0.0" = {
+    "@types/stack-utils-2.0.1" = {
       name = "_at_types_slash_stack-utils";
       packageName = "@types/stack-utils";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz";
-        sha512 = "RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==";
+        url = "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz";
+        sha512 = "Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==";
       };
     };
-    "@types/yargs-15.0.10" = {
-      name = "_at_types_slash_yargs";
-      packageName = "@types/yargs";
-      version = "15.0.10";
+    "@types/ws-8.2.0" = {
+      name = "_at_types_slash_ws";
+      packageName = "@types/ws";
+      version = "8.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.10.tgz";
-        sha512 = "z8PNtlhrj7eJNLmrAivM7rjBESG6JwC5xP3RVk12i/8HVP7Xnx/sEmERnRImyEuUaJfO942X0qMOYsoupaJbZQ==";
+        url = "https://registry.npmjs.org/@types/ws/-/ws-8.2.0.tgz";
+        sha512 = "cyeefcUCgJlEk+hk2h3N+MqKKsPViQgF5boi9TTHSK+PoR9KWBb/C5ccPcDyAqgsbAYHTwulch725DV84+pSpg==";
       };
     };
-    "@types/yargs-15.0.9" = {
+    "@types/yargs-16.0.4" = {
       name = "_at_types_slash_yargs";
       packageName = "@types/yargs";
-      version = "15.0.9";
+      version = "16.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.9.tgz";
-        sha512 = "HmU8SeIRhZCWcnRskCs36Q1Q00KBV6Cqh/ora8WN1+22dY07AZdn6Gel8QZ3t26XYPImtcL8WV/eqjhVmMEw4g==";
+        url = "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz";
+        sha512 = "T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==";
       };
     };
-    "@types/yargs-parser-15.0.0" = {
+    "@types/yargs-parser-20.2.1" = {
       name = "_at_types_slash_yargs-parser";
       packageName = "@types/yargs-parser";
-      version = "15.0.0";
+      version = "20.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz";
-        sha512 = "FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==";
+        url = "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz";
+        sha512 = "7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==";
       };
     };
-    "@typescript-eslint/eslint-plugin-4.7.0" = {
+    "@typescript-eslint/eslint-plugin-5.4.0" = {
       name = "_at_typescript-eslint_slash_eslint-plugin";
       packageName = "@typescript-eslint/eslint-plugin";
-      version = "4.7.0";
+      version = "5.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.7.0.tgz";
-        sha512 = "li9aiSVBBd7kU5VlQlT1AqP0uWGDK6JYKUQ9cVDnOg34VNnd9t4jr0Yqc/bKxJr/tDCPDaB4KzoSFN9fgVxe/Q==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.4.0.tgz";
+        sha512 = "9/yPSBlwzsetCsGEn9j24D8vGQgJkOTr4oMLas/w886ZtzKIs1iyoqFrwsX2fqYEeUwsdBpC21gcjRGo57u0eg==";
       };
     };
-    "@typescript-eslint/experimental-utils-4.7.0" = {
+    "@typescript-eslint/experimental-utils-5.4.0" = {
       name = "_at_typescript-eslint_slash_experimental-utils";
       packageName = "@typescript-eslint/experimental-utils";
-      version = "4.7.0";
+      version = "5.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.7.0.tgz";
-        sha512 = "cymzovXAiD4EF+YoHAB5Oh02MpnXjvyaOb+v+BdpY7lsJXZQN34oIETeUwVT2XfV9rSNpXaIcknDLfupO/tUoA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.4.0.tgz";
+        sha512 = "Nz2JDIQUdmIGd6p33A+naQmwfkU5KVTLb/5lTk+tLVTDacZKoGQisj8UCxk7onJcrgjIvr8xWqkYI+DbI3TfXg==";
       };
     };
-    "@typescript-eslint/experimental-utils-4.8.2" = {
+    "@typescript-eslint/experimental-utils-5.5.0" = {
       name = "_at_typescript-eslint_slash_experimental-utils";
       packageName = "@typescript-eslint/experimental-utils";
-      version = "4.8.2";
+      version = "5.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.8.2.tgz";
-        sha512 = "hpTw6o6IhBZEsQsjuw/4RWmceRyESfAiEzAEnXHKG1X7S5DXFaZ4IO1JO7CW1aQ604leQBzjZmuMI9QBCAJX8Q==";
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.5.0.tgz";
+        sha512 = "kjWeeVU+4lQ1SLYErRKV5yDXbWDPkpbzTUUlfAUifPYvpX0qZlrcCZ96/6oWxt3QxtK5WVhXz+KsnwW9cIW+3A==";
       };
     };
-    "@typescript-eslint/parser-4.7.0" = {
+    "@typescript-eslint/parser-5.4.0" = {
       name = "_at_typescript-eslint_slash_parser";
       packageName = "@typescript-eslint/parser";
-      version = "4.7.0";
+      version = "5.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.7.0.tgz";
-        sha512 = "+meGV8bMP1sJHBI2AFq1GeTwofcGiur8LoIr6v+rEmD9knyCqDlrQcFHR0KDDfldHIFDU/enZ53fla6ReF4wRw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.4.0.tgz";
+        sha512 = "JoB41EmxiYpaEsRwpZEYAJ9XQURPFer8hpkIW9GiaspVLX8oqbqNM8P4EP8HOZg96yaALiLEVWllA2E8vwsIKw==";
       };
     };
-    "@typescript-eslint/scope-manager-4.7.0" = {
+    "@typescript-eslint/scope-manager-5.4.0" = {
       name = "_at_typescript-eslint_slash_scope-manager";
       packageName = "@typescript-eslint/scope-manager";
-      version = "4.7.0";
+      version = "5.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.7.0.tgz";
-        sha512 = "ILITvqwDJYbcDCROj6+Ob0oCKNg3SH46iWcNcTIT9B5aiVssoTYkhKjxOMNzR1F7WSJkik4zmuqve5MdnA0DyA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.4.0.tgz";
+        sha512 = "pRxFjYwoi8R+n+sibjgF9iUiAELU9ihPBtHzocyW8v8D8G8KeQvXTsW7+CBYIyTYsmhtNk50QPGLE3vrvhM5KA==";
       };
     };
-    "@typescript-eslint/scope-manager-4.8.2" = {
+    "@typescript-eslint/scope-manager-5.5.0" = {
       name = "_at_typescript-eslint_slash_scope-manager";
       packageName = "@typescript-eslint/scope-manager";
-      version = "4.8.2";
+      version = "5.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.8.2.tgz";
-        sha512 = "qHQ8ODi7mMin4Sq2eh/6eu03uVzsf5TX+J43xRmiq8ujng7ViQSHNPLOHGw/Wr5dFEoxq/ubKhzClIIdQy5q3g==";
+        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.5.0.tgz";
+        sha512 = "0/r656RmRLo7CbN4Mdd+xZyPJ/fPCKhYdU6mnZx+8msAD8nJSP8EyCFkzbd6vNVZzZvWlMYrSNekqGrCBqFQhg==";
       };
     };
-    "@typescript-eslint/types-4.7.0" = {
+    "@typescript-eslint/types-5.4.0" = {
       name = "_at_typescript-eslint_slash_types";
       packageName = "@typescript-eslint/types";
-      version = "4.7.0";
+      version = "5.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.7.0.tgz";
-        sha512 = "uLszFe0wExJc+I7q0Z/+BnP7wao/kzX0hB5vJn4LIgrfrMLgnB2UXoReV19lkJQS1a1mHWGGODSxnBx6JQC3Sg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.4.0.tgz";
+        sha512 = "GjXNpmn+n1LvnttarX+sPD6+S7giO+9LxDIGlRl4wK3a7qMWALOHYuVSZpPTfEIklYjaWuMtfKdeByx0AcaThA==";
       };
     };
-    "@typescript-eslint/types-4.8.2" = {
+    "@typescript-eslint/types-5.5.0" = {
       name = "_at_typescript-eslint_slash_types";
       packageName = "@typescript-eslint/types";
-      version = "4.8.2";
+      version = "5.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.8.2.tgz";
-        sha512 = "z1/AVcVF8ju5ObaHe2fOpZYEQrwHyZ7PTOlmjd3EoFeX9sv7UekQhfrCmgUO7PruLNfSHrJGQvrW3Q7xQ8EoAw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.5.0.tgz";
+        sha512 = "OaYTqkW3GnuHxqsxxJ6KypIKd5Uw7bFiQJZRyNi1jbMJnK3Hc/DR4KwB6KJj6PBRkJJoaNwzMNv9vtTk87JhOg==";
       };
     };
-    "@typescript-eslint/typescript-estree-4.7.0" = {
+    "@typescript-eslint/typescript-estree-5.4.0" = {
       name = "_at_typescript-eslint_slash_typescript-estree";
       packageName = "@typescript-eslint/typescript-estree";
-      version = "4.7.0";
+      version = "5.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.7.0.tgz";
-        sha512 = "5XZRQznD1MfUmxu1t8/j2Af4OxbA7EFU2rbo0No7meb46eHgGkSieFdfV6omiC/DGIBhH9H9gXn7okBbVOm8jw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.4.0.tgz";
+        sha512 = "nhlNoBdhKuwiLMx6GrybPT3SFILm5Gij2YBdPEPFlYNFAXUJWX6QRgvi/lwVoadaQEFsizohs6aFRMqsXI2ewA==";
       };
     };
-    "@typescript-eslint/typescript-estree-4.8.2" = {
+    "@typescript-eslint/typescript-estree-5.5.0" = {
       name = "_at_typescript-eslint_slash_typescript-estree";
       packageName = "@typescript-eslint/typescript-estree";
-      version = "4.8.2";
+      version = "5.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.8.2.tgz";
-        sha512 = "HToGNwI6fekH0dOw3XEVESUm71Onfam0AKin6f26S2FtUmO7o3cLlWgrIaT1q3vjB3wCTdww3Dx2iGq5wtUOCg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.5.0.tgz";
+        sha512 = "pVn8btYUiYrjonhMAO0yG8lm7RApzy2L4RC7Td/mC/qFkyf6vRbGyZozoA94+w6D2Y2GRqpMoCWcwx/EUOzyoQ==";
       };
     };
-    "@typescript-eslint/visitor-keys-4.7.0" = {
+    "@typescript-eslint/visitor-keys-5.4.0" = {
       name = "_at_typescript-eslint_slash_visitor-keys";
       packageName = "@typescript-eslint/visitor-keys";
-      version = "4.7.0";
+      version = "5.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.7.0.tgz";
-        sha512 = "aDJDWuCRsf1lXOtignlfiPODkzSxxop7D0rZ91L6ZuMlcMCSh0YyK+gAfo5zN/ih6WxMwhoXgJWC3cWQdaKC+A==";
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.4.0.tgz";
+        sha512 = "PVbax7MeE7tdLfW5SA0fs8NGVVr+buMPrcj+CWYWPXsZCH8qZ1THufDzbXm1xrZ2b2PA1iENJ0sRq5fuUtvsJg==";
       };
     };
-    "@typescript-eslint/visitor-keys-4.8.2" = {
+    "@typescript-eslint/visitor-keys-5.5.0" = {
       name = "_at_typescript-eslint_slash_visitor-keys";
       packageName = "@typescript-eslint/visitor-keys";
-      version = "4.8.2";
+      version = "5.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.8.2.tgz";
-        sha512 = "Vg+/SJTMZJEKKGHW7YC21QxgKJrSbxoYYd3MEUGtW7zuytHuEcksewq0DUmo4eh/CTNrVJGSdIY9AtRb6riWFw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.5.0.tgz";
+        sha512 = "4GzJ1kRtsWzHhdM40tv0ZKHNSbkDhF0Woi/TDwVJX6UICwJItvP7ZTXbjTkCdrors7ww0sYe0t+cIKDAJwZ7Kw==";
       };
     };
     "abab-2.0.5" = {
@@ -1597,6 +1786,15 @@ let
         sha512 = "nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==";
       };
     };
+    "acorn-8.6.0" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "8.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz";
+        sha512 = "U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==";
+      };
+    };
     "acorn-globals-6.0.0" = {
       name = "acorn-globals";
       packageName = "acorn-globals";
@@ -1606,13 +1804,13 @@ let
         sha512 = "ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==";
       };
     };
-    "acorn-jsx-5.3.1" = {
+    "acorn-jsx-5.3.2" = {
       name = "acorn-jsx";
       packageName = "acorn-jsx";
-      version = "5.3.1";
+      version = "5.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz";
-        sha512 = "K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==";
+        url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz";
+        sha512 = "rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==";
       };
     };
     "acorn-walk-7.2.0" = {
@@ -1642,6 +1840,15 @@ let
         sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==";
       };
     };
+    "ajv-8.8.2" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "8.8.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz";
+        sha512 = "x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==";
+      };
+    };
     "ansi-colors-4.1.1" = {
       name = "ansi-colors";
       packageName = "ansi-colors";
@@ -1651,13 +1858,13 @@ let
         sha512 = "JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==";
       };
     };
-    "ansi-escapes-4.3.1" = {
+    "ansi-escapes-4.3.2" = {
       name = "ansi-escapes";
       packageName = "ansi-escapes";
-      version = "4.3.1";
+      version = "4.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz";
-        sha512 = "JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==";
+        url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz";
+        sha512 = "gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==";
       };
     };
     "ansi-regex-2.1.1" = {
@@ -1669,22 +1876,13 @@ let
         sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
       };
     };
-    "ansi-regex-4.1.0" = {
+    "ansi-regex-5.0.1" = {
       name = "ansi-regex";
       packageName = "ansi-regex";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
-        sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
-      };
-    };
-    "ansi-regex-5.0.0" = {
-      name = "ansi-regex";
-      packageName = "ansi-regex";
-      version = "5.0.0";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz";
-        sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==";
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz";
+        sha512 = "quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==";
       };
     };
     "ansi-styles-3.2.1" = {
@@ -1705,22 +1903,31 @@ let
         sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
       };
     };
-    "anymatch-2.0.0" = {
-      name = "anymatch";
-      packageName = "anymatch";
-      version = "2.0.0";
+    "ansi-styles-5.2.0" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz";
+        sha512 = "Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==";
+      };
+    };
+    "any-promise-1.3.0" = {
+      name = "any-promise";
+      packageName = "any-promise";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz";
-        sha512 = "5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==";
+        url = "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz";
+        sha1 = "abc6afeedcea52e809cdc0376aed3ce39635d17f";
       };
     };
-    "anymatch-3.1.1" = {
+    "anymatch-3.1.2" = {
       name = "anymatch";
       packageName = "anymatch";
-      version = "3.1.1";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz";
-        sha512 = "mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==";
+        url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz";
+        sha512 = "P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==";
       };
     };
     "aproba-1.2.0" = {
@@ -1732,13 +1939,13 @@ let
         sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==";
       };
     };
-    "are-we-there-yet-1.1.5" = {
+    "are-we-there-yet-1.1.7" = {
       name = "are-we-there-yet";
       packageName = "are-we-there-yet";
-      version = "1.1.5";
+      version = "1.1.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
-        sha512 = "5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==";
+        url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz";
+        sha512 = "nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==";
       };
     };
     "argparse-1.0.10" = {
@@ -1750,31 +1957,13 @@ let
         sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
       };
     };
-    "arr-diff-4.0.0" = {
-      name = "arr-diff";
-      packageName = "arr-diff";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz";
-        sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
-      };
-    };
-    "arr-flatten-1.1.0" = {
-      name = "arr-flatten";
-      packageName = "arr-flatten";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz";
-        sha512 = "L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==";
-      };
-    };
-    "arr-union-3.1.0" = {
-      name = "arr-union";
-      packageName = "arr-union";
-      version = "3.1.0";
+    "argparse-2.0.1" = {
+      name = "argparse";
+      packageName = "argparse";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz";
-        sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+        url = "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz";
+        sha512 = "8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==";
       };
     };
     "array-union-2.1.0" = {
@@ -1786,67 +1975,13 @@ let
         sha512 = "HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==";
       };
     };
-    "array-unique-0.3.2" = {
-      name = "array-unique";
-      packageName = "array-unique";
-      version = "0.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz";
-        sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
-      };
-    };
-    "asn1-0.2.4" = {
-      name = "asn1";
-      packageName = "asn1";
-      version = "0.2.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz";
-        sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
-      };
-    };
-    "assert-plus-1.0.0" = {
-      name = "assert-plus";
-      packageName = "assert-plus";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz";
-        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
-      };
-    };
-    "assign-symbols-1.0.0" = {
-      name = "assign-symbols";
-      packageName = "assign-symbols";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz";
-        sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
-      };
-    };
-    "astral-regex-1.0.0" = {
-      name = "astral-regex";
-      packageName = "astral-regex";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz";
-        sha512 = "+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==";
-      };
-    };
-    "async-3.2.0" = {
+    "async-3.2.2" = {
       name = "async";
       packageName = "async";
-      version = "3.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz";
-        sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==";
-      };
-    };
-    "async-each-1.0.3" = {
-      name = "async-each";
-      packageName = "async-each";
-      version = "1.0.3";
+      version = "3.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz";
-        sha512 = "z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==";
+        url = "https://registry.npmjs.org/async/-/async-3.2.2.tgz";
+        sha512 = "H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==";
       };
     };
     "asynckit-0.4.0" = {
@@ -1858,58 +1993,31 @@ let
         sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
       };
     };
-    "at-least-node-1.0.0" = {
-      name = "at-least-node";
-      packageName = "at-least-node";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz";
-        sha512 = "+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==";
-      };
-    };
-    "atob-2.1.2" = {
-      name = "atob";
-      packageName = "atob";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz";
-        sha512 = "Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==";
-      };
-    };
-    "aws-sign2-0.7.0" = {
-      name = "aws-sign2";
-      packageName = "aws-sign2";
-      version = "0.7.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz";
-        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
-      };
-    };
-    "aws4-1.11.0" = {
-      name = "aws4";
-      packageName = "aws4";
-      version = "1.11.0";
+    "axios-0.24.0" = {
+      name = "axios";
+      packageName = "axios";
+      version = "0.24.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz";
-        sha512 = "xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==";
+        url = "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz";
+        sha512 = "Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==";
       };
     };
-    "axios-0.21.0" = {
-      name = "axios";
-      packageName = "axios";
-      version = "0.21.0";
+    "babel-jest-27.3.1" = {
+      name = "babel-jest";
+      packageName = "babel-jest";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/axios/-/axios-0.21.0.tgz";
-        sha512 = "fmkJBknJKoZwem3/IKSSLpkdNXZeBu5Q7GA/aRsr2btgrptmSCxi2oFjZHqGdK9DoTil9PIHlPIZw2EcRJXRvw==";
+        url = "https://registry.npmjs.org/babel-jest/-/babel-jest-27.3.1.tgz";
+        sha512 = "SjIF8hh/ir0peae2D6S6ZKRhUy7q/DnpH7k/V6fT4Bgs/LXXUztOpX4G2tCgq8mLo5HA9mN6NmlFMeYtKmIsTQ==";
       };
     };
-    "babel-jest-26.6.3" = {
+    "babel-jest-27.4.2" = {
       name = "babel-jest";
       packageName = "babel-jest";
-      version = "26.6.3";
+      version = "27.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz";
-        sha512 = "pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==";
+        url = "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.2.tgz";
+        sha512 = "MADrjb3KBO2eyZCAc6QaJg6RT5u+6oEdDyHO5HEalnpwQ6LrhTsQF2Kj1Wnz2t6UPXIXPk18dSXXOT0wF5yTxA==";
       };
     };
     "babel-plugin-dynamic-import-node-2.3.3" = {
@@ -1921,58 +2029,94 @@ let
         sha512 = "jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==";
       };
     };
-    "babel-plugin-istanbul-6.0.0" = {
+    "babel-plugin-istanbul-6.1.1" = {
       name = "babel-plugin-istanbul";
       packageName = "babel-plugin-istanbul";
-      version = "6.0.0";
+      version = "6.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz";
-        sha512 = "AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==";
+        url = "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz";
+        sha512 = "Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==";
       };
     };
-    "babel-plugin-jest-hoist-26.6.2" = {
+    "babel-plugin-jest-hoist-27.2.0" = {
       name = "babel-plugin-jest-hoist";
       packageName = "babel-plugin-jest-hoist";
-      version = "26.6.2";
+      version = "27.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.2.0.tgz";
+        sha512 = "TOux9khNKdi64mW+0OIhcmbAn75tTlzKhxmiNXevQaPbrBYK7YKjP1jl6NHTJ6XR5UgUrJbCnWlKVnJn29dfjw==";
+      };
+    };
+    "babel-plugin-jest-hoist-27.4.0" = {
+      name = "babel-plugin-jest-hoist";
+      packageName = "babel-plugin-jest-hoist";
+      version = "27.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz";
+        sha512 = "Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw==";
+      };
+    };
+    "babel-plugin-polyfill-corejs2-0.3.0" = {
+      name = "babel-plugin-polyfill-corejs2";
+      packageName = "babel-plugin-polyfill-corejs2";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz";
+        sha512 = "wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==";
+      };
+    };
+    "babel-plugin-polyfill-corejs3-0.4.0" = {
+      name = "babel-plugin-polyfill-corejs3";
+      packageName = "babel-plugin-polyfill-corejs3";
+      version = "0.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz";
-        sha512 = "PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==";
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz";
+        sha512 = "YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==";
       };
     };
-    "babel-preset-current-node-syntax-1.0.0" = {
+    "babel-plugin-polyfill-regenerator-0.3.0" = {
+      name = "babel-plugin-polyfill-regenerator";
+      packageName = "babel-plugin-polyfill-regenerator";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz";
+        sha512 = "dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==";
+      };
+    };
+    "babel-preset-current-node-syntax-1.0.1" = {
       name = "babel-preset-current-node-syntax";
       packageName = "babel-preset-current-node-syntax";
-      version = "1.0.0";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.0.tgz";
-        sha512 = "mGkvkpocWJes1CmMKtgGUwCeeq0pOhALyymozzDWYomHTbDLwueDYG6p4TK1YOeYHCzBzYPsWkgTto10JubI1Q==";
+        url = "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz";
+        sha512 = "M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==";
       };
     };
-    "babel-preset-jest-26.6.2" = {
+    "babel-preset-jest-27.2.0" = {
       name = "babel-preset-jest";
       packageName = "babel-preset-jest";
-      version = "26.6.2";
+      version = "27.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz";
-        sha512 = "YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==";
+        url = "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.2.0.tgz";
+        sha512 = "z7MgQ3peBwN5L5aCqBKnF6iqdlvZvFUQynEhu0J+X9nHLU72jO3iY331lcYrg+AssJ8q7xsv5/3AICzVmJ/wvg==";
       };
     };
-    "balanced-match-1.0.0" = {
-      name = "balanced-match";
-      packageName = "balanced-match";
-      version = "1.0.0";
+    "babel-preset-jest-27.4.0" = {
+      name = "babel-preset-jest";
+      packageName = "babel-preset-jest";
+      version = "27.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
-        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+        url = "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz";
+        sha512 = "NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg==";
       };
     };
-    "base-0.11.2" = {
-      name = "base";
-      packageName = "base";
-      version = "0.11.2";
+    "balanced-match-1.0.2" = {
+      name = "balanced-match";
+      packageName = "balanced-match";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/base/-/base-0.11.2.tgz";
-        sha512 = "5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==";
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz";
+        sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==";
       };
     };
     "base64-js-1.5.1" = {
@@ -1984,31 +2128,22 @@ let
         sha512 = "AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==";
       };
     };
-    "bcrypt-pbkdf-1.0.2" = {
-      name = "bcrypt-pbkdf";
-      packageName = "bcrypt-pbkdf";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
-        sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
-      };
-    };
-    "binary-extensions-1.13.1" = {
+    "binary-extensions-2.2.0" = {
       name = "binary-extensions";
       packageName = "binary-extensions";
-      version = "1.13.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz";
-        sha512 = "Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==";
+        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz";
+        sha512 = "jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==";
       };
     };
-    "binary-extensions-2.1.0" = {
-      name = "binary-extensions";
-      packageName = "binary-extensions";
-      version = "2.1.0";
+    "bind-decorator-1.0.11" = {
+      name = "bind-decorator";
+      packageName = "bind-decorator";
+      version = "1.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz";
-        sha512 = "1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==";
+        url = "https://registry.npmjs.org/bind-decorator/-/bind-decorator-1.0.11.tgz";
+        sha1 = "e41bc06a1f65dd9cec476c91c5daf3978488252f";
       };
     };
     "bindings-1.5.0" = {
@@ -2020,13 +2155,13 @@ let
         sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==";
       };
     };
-    "bl-4.0.3" = {
+    "bl-4.1.0" = {
       name = "bl";
       packageName = "bl";
-      version = "4.0.3";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz";
-        sha512 = "fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==";
+        url = "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz";
+        sha512 = "1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==";
       };
     };
     "brace-expansion-1.1.11" = {
@@ -2038,15 +2173,6 @@ let
         sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
       };
     };
-    "braces-2.3.2" = {
-      name = "braces";
-      packageName = "braces";
-      version = "2.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz";
-        sha512 = "aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==";
-      };
-    };
     "braces-3.0.2" = {
       name = "braces";
       packageName = "braces";
@@ -2065,13 +2191,13 @@ let
         sha512 = "9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==";
       };
     };
-    "browserslist-4.14.7" = {
+    "browserslist-4.18.1" = {
       name = "browserslist";
       packageName = "browserslist";
-      version = "4.14.7";
+      version = "4.18.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.14.7.tgz";
-        sha512 = "BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==";
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz";
+        sha512 = "8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==";
       };
     };
     "bser-2.1.1" = {
@@ -2101,40 +2227,22 @@ let
         sha1 = "0d333e3f00eac50aa1454abd30ef8c2a5d9a7242";
       };
     };
-    "buffer-from-1.1.1" = {
+    "buffer-from-1.1.2" = {
       name = "buffer-from";
       packageName = "buffer-from";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz";
-        sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==";
-      };
-    };
-    "cache-base-1.0.1" = {
-      name = "cache-base";
-      packageName = "cache-base";
-      version = "1.0.1";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz";
-        sha512 = "AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==";
+        url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz";
+        sha512 = "E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==";
       };
     };
-    "call-bind-1.0.0" = {
+    "call-bind-1.0.2" = {
       name = "call-bind";
       packageName = "call-bind";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz";
-        sha512 = "AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==";
-      };
-    };
-    "callback-stream-1.1.0" = {
-      name = "callback-stream";
-      packageName = "callback-stream";
-      version = "1.1.0";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/callback-stream/-/callback-stream-1.1.0.tgz";
-        sha1 = "4701a51266f06e06eaa71fc17233822d875f4908";
+        url = "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz";
+        sha512 = "7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==";
       };
     };
     "callsites-3.1.0" = {
@@ -2155,40 +2263,22 @@ let
         sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
       };
     };
-    "camelcase-6.2.0" = {
+    "camelcase-6.2.1" = {
       name = "camelcase";
       packageName = "camelcase";
-      version = "6.2.0";
+      version = "6.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz";
-        sha512 = "c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==";
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz";
+        sha512 = "tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==";
       };
     };
-    "caniuse-lite-1.0.30001157" = {
+    "caniuse-lite-1.0.30001283" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001157";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001157.tgz";
-        sha512 = "gOerH9Wz2IRZ2ZPdMfBvyOi3cjaz4O4dgNwPGzx8EhqAs4+2IL/O+fJsbt+znSigujoZG8bVcIAUM/I/E5K3MA==";
-      };
-    };
-    "capture-exit-2.0.0" = {
-      name = "capture-exit";
-      packageName = "capture-exit";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz";
-        sha512 = "PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==";
-      };
-    };
-    "caseless-0.12.0" = {
-      name = "caseless";
-      packageName = "caseless";
-      version = "0.12.0";
+      version = "1.0.30001283";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz";
-        sha1 = "1b681c21ff84033c826543090689420d187151dc";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz";
+        sha512 = "9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg==";
       };
     };
     "chalk-2.4.2" = {
@@ -2200,13 +2290,13 @@ let
         sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
       };
     };
-    "chalk-4.1.0" = {
+    "chalk-4.1.2" = {
       name = "chalk";
       packageName = "chalk";
-      version = "4.1.0";
+      version = "4.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz";
-        sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==";
+        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz";
+        sha512 = "oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==";
       };
     };
     "char-regex-1.0.2" = {
@@ -2218,22 +2308,13 @@ let
         sha512 = "kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==";
       };
     };
-    "chokidar-2.1.8" = {
+    "chokidar-3.5.2" = {
       name = "chokidar";
       packageName = "chokidar";
-      version = "2.1.8";
+      version = "3.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz";
-        sha512 = "ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==";
-      };
-    };
-    "chokidar-3.4.3" = {
-      name = "chokidar";
-      packageName = "chokidar";
-      version = "3.4.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz";
-        sha512 = "DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==";
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz";
+        sha512 = "ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==";
       };
     };
     "chownr-1.1.4" = {
@@ -2245,40 +2326,31 @@ let
         sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==";
       };
     };
-    "ci-info-2.0.0" = {
+    "ci-info-3.3.0" = {
       name = "ci-info";
       packageName = "ci-info";
-      version = "2.0.0";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz";
-        sha512 = "5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==";
+        url = "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz";
+        sha512 = "riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==";
       };
     };
-    "cjs-module-lexer-0.6.0" = {
+    "cjs-module-lexer-1.2.2" = {
       name = "cjs-module-lexer";
       packageName = "cjs-module-lexer";
-      version = "0.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz";
-        sha512 = "uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==";
-      };
-    };
-    "class-utils-0.3.6" = {
-      name = "class-utils";
-      packageName = "class-utils";
-      version = "0.3.6";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz";
-        sha512 = "qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==";
+        url = "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz";
+        sha512 = "cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==";
       };
     };
-    "cliui-6.0.0" = {
+    "cliui-7.0.4" = {
       name = "cliui";
       packageName = "cliui";
-      version = "6.0.0";
+      version = "7.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz";
-        sha512 = "t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==";
+        url = "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz";
+        sha512 = "OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==";
       };
     };
     "co-4.6.0" = {
@@ -2308,22 +2380,13 @@ let
         sha512 = "iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==";
       };
     };
-    "collection-visit-1.0.0" = {
-      name = "collection-visit";
-      packageName = "collection-visit";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz";
-        sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
-      };
-    };
-    "color-3.0.0" = {
+    "color-3.2.1" = {
       name = "color";
       packageName = "color";
-      version = "3.0.0";
+      version = "3.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/color/-/color-3.0.0.tgz";
-        sha512 = "jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==";
+        url = "https://registry.npmjs.org/color/-/color-3.2.1.tgz";
+        sha512 = "aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==";
       };
     };
     "color-convert-1.9.3" = {
@@ -2362,22 +2425,13 @@ let
         sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
       };
     };
-    "color-string-1.5.4" = {
+    "color-string-1.7.4" = {
       name = "color-string";
       packageName = "color-string";
-      version = "1.5.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz";
-        sha512 = "57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==";
-      };
-    };
-    "colorette-1.2.1" = {
-      name = "colorette";
-      packageName = "colorette";
-      version = "1.2.1";
+      version = "1.7.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz";
-        sha512 = "puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==";
+        url = "https://registry.npmjs.org/color-string/-/color-string-1.7.4.tgz";
+        sha512 = "nVdUvPVgZMpRQad5dcsCMOSB5BXLljklTiaxS6ehhKxDsAI5sD7k5VmFuBt1y3Rlym8uulc/ANUN/bMWtBu6Sg==";
       };
     };
     "colors-1.4.0" = {
@@ -2389,13 +2443,13 @@ let
         sha512 = "a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==";
       };
     };
-    "colorspace-1.1.2" = {
+    "colorspace-1.1.4" = {
       name = "colorspace";
       packageName = "colorspace";
-      version = "1.1.2";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz";
-        sha512 = "vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==";
+        url = "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz";
+        sha512 = "BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==";
       };
     };
     "combined-stream-1.0.8" = {
@@ -2425,15 +2479,6 @@ let
         sha512 = "rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==";
       };
     };
-    "component-emitter-1.3.0" = {
-      name = "component-emitter";
-      packageName = "component-emitter";
-      version = "1.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz";
-        sha512 = "Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==";
-      };
-    };
     "concat-map-0.0.1" = {
       name = "concat-map";
       packageName = "concat-map";
@@ -2443,13 +2488,22 @@ let
         sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
       };
     };
-    "concat-stream-1.6.2" = {
+    "concat-stream-2.0.0" = {
       name = "concat-stream";
       packageName = "concat-stream";
-      version = "1.6.2";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz";
-        sha512 = "27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==";
+        url = "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz";
+        sha512 = "MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==";
+      };
+    };
+    "connect-gzip-static-2.1.1" = {
+      name = "connect-gzip-static";
+      packageName = "connect-gzip-static";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/connect-gzip-static/-/connect-gzip-static-2.1.1.tgz";
+        sha512 = "Ipf0aLx4MmLNMgwBuH8Cv3mk+O2KxshGN9E5I9RsWJObYiMJwC9JVZn9S+PTFpggRnig25WCOkYdFHZJP8vZ6Q==";
       };
     };
     "console-control-strings-1.1.0" = {
@@ -2461,49 +2515,40 @@ let
         sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
       };
     };
-    "convert-source-map-1.7.0" = {
+    "convert-source-map-1.8.0" = {
       name = "convert-source-map";
       packageName = "convert-source-map";
-      version = "1.7.0";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz";
-        sha512 = "4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==";
+        url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz";
+        sha512 = "+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==";
       };
     };
-    "copy-descriptor-0.1.1" = {
-      name = "copy-descriptor";
-      packageName = "copy-descriptor";
-      version = "0.1.1";
+    "core-js-3.19.1" = {
+      name = "core-js";
+      packageName = "core-js";
+      version = "3.19.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
-        sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.19.1.tgz";
+        sha512 = "Tnc7E9iKd/b/ff7GFbhwPVzJzPztGrChB8X8GLqoYGdEOG8IpLnK1xPyo3ZoO3HsK6TodJS58VGPOxA+hLHQMg==";
       };
     };
-    "core-js-compat-3.7.0" = {
+    "core-js-compat-3.19.1" = {
       name = "core-js-compat";
       packageName = "core-js-compat";
-      version = "3.7.0";
+      version = "3.19.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.7.0.tgz";
-        sha512 = "V8yBI3+ZLDVomoWICO6kq/CD28Y4r1M7CWeO4AGpMdMfseu8bkSubBmUPySMGKRTS+su4XQ07zUkAsiu9FCWTg==";
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.1.tgz";
+        sha512 = "Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g==";
       };
     };
-    "core-util-is-1.0.2" = {
+    "core-util-is-1.0.3" = {
       name = "core-util-is";
       packageName = "core-util-is";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
-        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
-      };
-    };
-    "cross-spawn-6.0.5" = {
-      name = "cross-spawn";
-      packageName = "cross-spawn";
-      version = "6.0.5";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz";
-        sha512 = "eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==";
+        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz";
+        sha512 = "ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==";
       };
     };
     "cross-spawn-7.0.3" = {
@@ -2542,24 +2587,6 @@ let
         sha512 = "AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==";
       };
     };
-    "d-1.0.1" = {
-      name = "d";
-      packageName = "d";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/d/-/d-1.0.1.tgz";
-        sha512 = "m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==";
-      };
-    };
-    "dashdash-1.14.1" = {
-      name = "dashdash";
-      packageName = "dashdash";
-      version = "1.14.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz";
-        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
-      };
-    };
     "data-urls-2.0.0" = {
       name = "data-urls";
       packageName = "data-urls";
@@ -2569,13 +2596,13 @@ let
         sha512 = "X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==";
       };
     };
-    "debounce-1.2.0" = {
+    "debounce-1.2.1" = {
       name = "debounce";
       packageName = "debounce";
-      version = "1.2.0";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz";
-        sha512 = "mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==";
+        url = "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz";
+        sha512 = "XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==";
       };
     };
     "debug-2.6.9" = {
@@ -2587,58 +2614,40 @@ let
         sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
       };
     };
-    "debug-4.2.0" = {
-      name = "debug";
-      packageName = "debug";
-      version = "4.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz";
-        sha512 = "IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==";
-      };
-    };
-    "debug-4.3.1" = {
+    "debug-4.3.3" = {
       name = "debug";
       packageName = "debug";
-      version = "4.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz";
-        sha512 = "doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==";
-      };
-    };
-    "decamelize-1.2.0" = {
-      name = "decamelize";
-      packageName = "decamelize";
-      version = "1.2.0";
+      version = "4.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
-        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+        url = "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz";
+        sha512 = "/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==";
       };
     };
-    "decimal.js-10.2.1" = {
+    "decimal.js-10.3.1" = {
       name = "decimal.js";
       packageName = "decimal.js";
-      version = "10.2.1";
+      version = "10.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz";
-        sha512 = "KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==";
+        url = "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz";
+        sha512 = "V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==";
       };
     };
-    "decode-uri-component-0.2.0" = {
-      name = "decode-uri-component";
-      packageName = "decode-uri-component";
-      version = "0.2.0";
+    "decompress-response-6.0.0" = {
+      name = "decompress-response";
+      packageName = "decompress-response";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
-        sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+        url = "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz";
+        sha512 = "aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==";
       };
     };
-    "decompress-response-4.2.1" = {
-      name = "decompress-response";
-      packageName = "decompress-response";
-      version = "4.2.1";
+    "dedent-0.7.0" = {
+      name = "dedent";
+      packageName = "dedent";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz";
-        sha512 = "jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==";
+        url = "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz";
+        sha1 = "2495ddbaf6eb874abb0e1be9df22d2e5a544326c";
       };
     };
     "deep-extend-0.6.0" = {
@@ -2650,13 +2659,22 @@ let
         sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
       };
     };
-    "deep-is-0.1.3" = {
+    "deep-is-0.1.4" = {
       name = "deep-is";
       packageName = "deep-is";
-      version = "0.1.3";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz";
+        sha512 = "oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==";
+      };
+    };
+    "deep-object-diff-1.1.0" = {
+      name = "deep-object-diff";
+      packageName = "deep-object-diff";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz";
-        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+        url = "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.0.tgz";
+        sha512 = "b+QLs5vHgS+IoSNcUE4n9HP2NwcHj7aqnJWsjPtuG75Rh5TOaGt0OjAYInh77d5T16V5cRDC+Pw/6ZZZiETBGw==";
       };
     };
     "deepmerge-4.2.2" = {
@@ -2677,33 +2695,6 @@ let
         sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==";
       };
     };
-    "define-property-0.2.5" = {
-      name = "define-property";
-      packageName = "define-property";
-      version = "0.2.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz";
-        sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
-      };
-    };
-    "define-property-1.0.0" = {
-      name = "define-property";
-      packageName = "define-property";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz";
-        sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
-      };
-    };
-    "define-property-2.0.2" = {
-      name = "define-property";
-      packageName = "define-property";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz";
-        sha512 = "jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==";
-      };
-    };
     "delayed-stream-1.0.0" = {
       name = "delayed-stream";
       packageName = "delayed-stream";
@@ -2758,13 +2749,22 @@ let
         sha512 = "TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==";
       };
     };
-    "diff-sequences-26.6.2" = {
+    "diff-sequences-27.0.6" = {
       name = "diff-sequences";
       packageName = "diff-sequences";
-      version = "26.6.2";
+      version = "27.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz";
-        sha512 = "Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==";
+        url = "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz";
+        sha512 = "ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==";
+      };
+    };
+    "diff-sequences-27.4.0" = {
+      name = "diff-sequences";
+      packageName = "diff-sequences";
+      version = "27.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz";
+        sha512 = "YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==";
       };
     };
     "dir-glob-3.0.1" = {
@@ -2794,22 +2794,13 @@ let
         sha512 = "yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==";
       };
     };
-    "duplexify-3.7.1" = {
+    "duplexify-4.1.2" = {
       name = "duplexify";
       packageName = "duplexify";
-      version = "3.7.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz";
-        sha512 = "07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==";
-      };
-    };
-    "ecc-jsbn-0.1.2" = {
-      name = "ecc-jsbn";
-      packageName = "ecc-jsbn";
-      version = "0.1.2";
+      version = "4.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
-        sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+        url = "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz";
+        sha512 = "fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==";
       };
     };
     "ee-first-1.1.1" = {
@@ -2821,31 +2812,31 @@ let
         sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
       };
     };
-    "electron-to-chromium-1.3.596" = {
+    "electron-to-chromium-1.4.4" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.596";
+      version = "1.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.596.tgz";
-        sha512 = "nLO2Wd2yU42eSoNJVQKNf89CcEGqeFZd++QsnN2XIgje1s/19AgctfjLIbPORlvcCO8sYjLwX4iUgDdusOY8Sg==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.4.tgz";
+        sha512 = "teHtgwcmVcL46jlFvAaqjyiTLWuMrUQO1JqV303JKB4ysXG6m8fXSFhbjal9st0r9mNskI22AraJZorb1VcLVg==";
       };
     };
-    "emittery-0.7.2" = {
-      name = "emittery";
-      packageName = "emittery";
-      version = "0.7.2";
+    "electron-to-chromium-1.4.7" = {
+      name = "electron-to-chromium";
+      packageName = "electron-to-chromium";
+      version = "1.4.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz";
-        sha512 = "A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.7.tgz";
+        sha512 = "UPy2MsQw1OdcbxR7fvwWZH/rXcv+V26+uvQVHx0fGa1kqRfydtfOw+NMGAvZJ63hyaH4aEBxbhSEtqbpliSNWA==";
       };
     };
-    "emoji-regex-7.0.3" = {
-      name = "emoji-regex";
-      packageName = "emoji-regex";
-      version = "7.0.3";
+    "emittery-0.8.1" = {
+      name = "emittery";
+      packageName = "emittery";
+      version = "0.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz";
-        sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==";
+        url = "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz";
+        sha512 = "uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==";
       };
     };
     "emoji-regex-8.0.0" = {
@@ -2893,69 +2884,6 @@ let
         sha512 = "yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==";
       };
     };
-    "error-ex-1.3.2" = {
-      name = "error-ex";
-      packageName = "error-ex";
-      version = "1.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz";
-        sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
-      };
-    };
-    "es5-ext-0.10.53" = {
-      name = "es5-ext";
-      packageName = "es5-ext";
-      version = "0.10.53";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz";
-        sha512 = "Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==";
-      };
-    };
-    "es6-iterator-2.0.3" = {
-      name = "es6-iterator";
-      packageName = "es6-iterator";
-      version = "2.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz";
-        sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7";
-      };
-    };
-    "es6-map-0.1.5" = {
-      name = "es6-map";
-      packageName = "es6-map";
-      version = "0.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz";
-        sha1 = "9136e0503dcc06a301690f0bb14ff4e364e949f0";
-      };
-    };
-    "es6-set-0.1.5" = {
-      name = "es6-set";
-      packageName = "es6-set";
-      version = "0.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz";
-        sha1 = "d2b3ec5d4d800ced818db538d28974db0a73ccb1";
-      };
-    };
-    "es6-symbol-3.1.1" = {
-      name = "es6-symbol";
-      packageName = "es6-symbol";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz";
-        sha1 = "bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77";
-      };
-    };
-    "es6-symbol-3.1.3" = {
-      name = "es6-symbol";
-      packageName = "es6-symbol";
-      version = "3.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz";
-        sha512 = "NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==";
-      };
-    };
     "escalade-3.1.1" = {
       name = "escalade";
       packageName = "escalade";
@@ -2992,31 +2920,31 @@ let
         sha512 = "UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==";
       };
     };
-    "escodegen-1.14.3" = {
-      name = "escodegen";
-      packageName = "escodegen";
-      version = "1.14.3";
+    "escape-string-regexp-4.0.0" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz";
-        sha512 = "qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==";
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
+        sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
       };
     };
-    "eslint-7.13.0" = {
-      name = "eslint";
-      packageName = "eslint";
-      version = "7.13.0";
+    "escodegen-2.0.0" = {
+      name = "escodegen";
+      packageName = "escodegen";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.13.0.tgz";
-        sha512 = "uCORMuOO8tUzJmsdRtrvcGq5qposf7Rw0LwkTJkoDbOycVQtQjmnhZSuLQnozLE4TmAzlMVV45eCHmQ1OpDKUQ==";
+        url = "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz";
+        sha512 = "mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==";
       };
     };
-    "eslint-7.14.0" = {
+    "eslint-8.3.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "7.14.0";
+      version = "8.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.14.0.tgz";
-        sha512 = "5YubdnPXrlrYAFCKybPuHIAH++PINe1pmKNc5wQRB9HSbqIK1ywAnntE3Wwua4giKu0bjligf1gLF6qxMGOYRA==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz";
+        sha512 = "aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==";
       };
     };
     "eslint-config-google-0.14.0" = {
@@ -3028,13 +2956,13 @@ let
         sha512 = "WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==";
       };
     };
-    "eslint-plugin-jest-24.1.3" = {
+    "eslint-plugin-jest-25.3.0" = {
       name = "eslint-plugin-jest";
       packageName = "eslint-plugin-jest";
-      version = "24.1.3";
+      version = "25.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.1.3.tgz";
-        sha512 = "dNGGjzuEzCE3d5EPZQ/QGtmlMotqnYWD/QpCZ1UuZlrMAdhG5rldh0N0haCvhGnUkSeuORS5VNROwF9Hrgn3Lg==";
+        url = "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.3.0.tgz";
+        sha512 = "79WQtuBsTN1S8Y9+7euBYwxIOia/k7ykkl9OCBHL3xuww5ecursHy/D8GCIlvzHVWv85gOkS5Kv6Sh7RxOgK1Q==";
       };
     };
     "eslint-scope-5.1.1" = {
@@ -3046,40 +2974,49 @@ let
         sha512 = "2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==";
       };
     };
-    "eslint-utils-2.1.0" = {
+    "eslint-scope-7.1.0" = {
+      name = "eslint-scope";
+      packageName = "eslint-scope";
+      version = "7.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz";
+        sha512 = "aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==";
+      };
+    };
+    "eslint-utils-3.0.0" = {
       name = "eslint-utils";
       packageName = "eslint-utils";
-      version = "2.1.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz";
-        sha512 = "w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==";
+        url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz";
+        sha512 = "uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==";
       };
     };
-    "eslint-visitor-keys-1.3.0" = {
+    "eslint-visitor-keys-2.1.0" = {
       name = "eslint-visitor-keys";
       packageName = "eslint-visitor-keys";
-      version = "1.3.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
-        sha512 = "6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==";
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz";
+        sha512 = "0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==";
       };
     };
-    "eslint-visitor-keys-2.0.0" = {
+    "eslint-visitor-keys-3.1.0" = {
       name = "eslint-visitor-keys";
       packageName = "eslint-visitor-keys";
-      version = "2.0.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz";
-        sha512 = "QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==";
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz";
+        sha512 = "yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==";
       };
     };
-    "espree-7.3.0" = {
+    "espree-9.1.0" = {
       name = "espree";
       packageName = "espree";
-      version = "7.3.0";
+      version = "9.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz";
-        sha512 = "dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==";
+        url = "https://registry.npmjs.org/espree/-/espree-9.1.0.tgz";
+        sha512 = "ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==";
       };
     };
     "esprima-4.0.1" = {
@@ -3091,13 +3028,13 @@ let
         sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
       };
     };
-    "esquery-1.3.1" = {
+    "esquery-1.4.0" = {
       name = "esquery";
       packageName = "esquery";
-      version = "1.3.1";
+      version = "1.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz";
-        sha512 = "olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==";
+        url = "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz";
+        sha512 = "cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==";
       };
     };
     "esrecurse-4.3.0" = {
@@ -3118,13 +3055,13 @@ let
         sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==";
       };
     };
-    "estraverse-5.2.0" = {
+    "estraverse-5.3.0" = {
       name = "estraverse";
       packageName = "estraverse";
-      version = "5.2.0";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz";
-        sha512 = "BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==";
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz";
+        sha512 = "MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==";
       };
     };
     "esutils-2.0.3" = {
@@ -3145,40 +3082,13 @@ let
         sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
       };
     };
-    "event-emitter-0.3.5" = {
-      name = "event-emitter";
-      packageName = "event-emitter";
-      version = "0.3.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz";
-        sha1 = "df8c69eef1647923c7157b9ce83840610b02cc39";
-      };
-    };
-    "exec-sh-0.3.4" = {
-      name = "exec-sh";
-      packageName = "exec-sh";
-      version = "0.3.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz";
-        sha512 = "sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==";
-      };
-    };
-    "execa-1.0.0" = {
-      name = "execa";
-      packageName = "execa";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz";
-        sha512 = "adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==";
-      };
-    };
-    "execa-4.1.0" = {
+    "execa-5.1.1" = {
       name = "execa";
       packageName = "execa";
-      version = "4.1.0";
+      version = "5.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz";
-        sha512 = "j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==";
+        url = "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz";
+        sha512 = "8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==";
       };
     };
     "exit-0.1.2" = {
@@ -3190,15 +3100,6 @@ let
         sha1 = "0632638f8d877cc82107d30a0fff1a17cba1cd0c";
       };
     };
-    "expand-brackets-2.1.4" = {
-      name = "expand-brackets";
-      packageName = "expand-brackets";
-      version = "2.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz";
-        sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
-      };
-    };
     "expand-template-2.0.3" = {
       name = "expand-template";
       packageName = "expand-template";
@@ -3208,67 +3109,22 @@ let
         sha512 = "XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==";
       };
     };
-    "expect-26.6.2" = {
+    "expect-27.3.1" = {
       name = "expect";
       packageName = "expect";
-      version = "26.6.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz";
-        sha512 = "9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==";
-      };
-    };
-    "ext-1.4.0" = {
-      name = "ext";
-      packageName = "ext";
-      version = "1.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz";
-        sha512 = "Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==";
-      };
-    };
-    "extend-3.0.2" = {
-      name = "extend";
-      packageName = "extend";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
-        sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
-      };
-    };
-    "extend-shallow-2.0.1" = {
-      name = "extend-shallow";
-      packageName = "extend-shallow";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz";
-        sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
-      };
-    };
-    "extend-shallow-3.0.2" = {
-      name = "extend-shallow";
-      packageName = "extend-shallow";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz";
-        sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
-      };
-    };
-    "extglob-2.0.4" = {
-      name = "extglob";
-      packageName = "extglob";
-      version = "2.0.4";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz";
-        sha512 = "Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==";
+        url = "https://registry.npmjs.org/expect/-/expect-27.3.1.tgz";
+        sha512 = "MrNXV2sL9iDRebWPGOGFdPQRl2eDQNu/uhxIMShjjx74T6kC6jFIkmQ6OqXDtevjGUkyB2IT56RzDBqXf/QPCg==";
       };
     };
-    "extsprintf-1.3.0" = {
-      name = "extsprintf";
-      packageName = "extsprintf";
-      version = "1.3.0";
+    "expect-27.4.2" = {
+      name = "expect";
+      packageName = "expect";
+      version = "27.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz";
-        sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+        url = "https://registry.npmjs.org/expect/-/expect-27.4.2.tgz";
+        sha512 = "BjAXIDC6ZOW+WBFNg96J22D27Nq5ohn+oGcuP2rtOtcjuxNoV9McpQ60PcQWhdFOSBIQdR72e+4HdnbZTFSTyg==";
       };
     };
     "fast-deep-equal-3.1.3" = {
@@ -3280,13 +3136,13 @@ let
         sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
       };
     };
-    "fast-glob-3.2.4" = {
+    "fast-glob-3.2.7" = {
       name = "fast-glob";
       packageName = "fast-glob";
-      version = "3.2.4";
+      version = "3.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz";
-        sha512 = "kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==";
+        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz";
+        sha512 = "rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==";
       };
     };
     "fast-json-stable-stringify-2.1.0" = {
@@ -3307,22 +3163,13 @@ let
         sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
       };
     };
-    "fast-safe-stringify-2.0.7" = {
-      name = "fast-safe-stringify";
-      packageName = "fast-safe-stringify";
-      version = "2.0.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz";
-        sha512 = "Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==";
-      };
-    };
-    "fastq-1.9.0" = {
+    "fastq-1.13.0" = {
       name = "fastq";
       packageName = "fastq";
-      version = "1.9.0";
+      version = "1.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz";
-        sha512 = "i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==";
+        url = "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz";
+        sha512 = "YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==";
       };
     };
     "fb-watchman-2.0.1" = {
@@ -3334,22 +3181,22 @@ let
         sha512 = "DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==";
       };
     };
-    "fecha-4.2.0" = {
+    "fecha-4.2.1" = {
       name = "fecha";
       packageName = "fecha";
-      version = "4.2.0";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz";
-        sha512 = "aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==";
+        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz";
+        sha512 = "MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q==";
       };
     };
-    "file-entry-cache-5.0.1" = {
+    "file-entry-cache-6.0.1" = {
       name = "file-entry-cache";
       packageName = "file-entry-cache";
-      version = "5.0.1";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz";
-        sha512 = "bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==";
+        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz";
+        sha512 = "7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==";
       };
     };
     "file-uri-to-path-1.0.0" = {
@@ -3361,15 +3208,6 @@ let
         sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==";
       };
     };
-    "fill-range-4.0.0" = {
-      name = "fill-range";
-      packageName = "fill-range";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz";
-        sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
-      };
-    };
     "fill-range-7.0.1" = {
       name = "fill-range";
       packageName = "fill-range";
@@ -3388,6 +3226,15 @@ let
         sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
       };
     };
+    "find-0.3.0" = {
+      name = "find";
+      packageName = "find";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find/-/find-0.3.0.tgz";
+        sha512 = "iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw==";
+      };
+    };
     "find-up-4.1.0" = {
       name = "find-up";
       packageName = "find-up";
@@ -3397,22 +3244,22 @@ let
         sha512 = "PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==";
       };
     };
-    "flat-cache-2.0.1" = {
+    "flat-cache-3.0.4" = {
       name = "flat-cache";
       packageName = "flat-cache";
-      version = "2.0.1";
+      version = "3.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz";
-        sha512 = "LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==";
+        url = "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz";
+        sha512 = "dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==";
       };
     };
-    "flatted-2.0.2" = {
+    "flatted-3.2.4" = {
       name = "flatted";
       packageName = "flatted";
-      version = "2.0.2";
+      version = "3.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz";
-        sha512 = "r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==";
+        url = "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz";
+        sha512 = "8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==";
       };
     };
     "fn.name-1.1.0" = {
@@ -3424,49 +3271,22 @@ let
         sha512 = "GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==";
       };
     };
-    "follow-redirects-1.13.0" = {
+    "follow-redirects-1.14.5" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.13.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz";
-        sha512 = "aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==";
-      };
-    };
-    "for-in-1.0.2" = {
-      name = "for-in";
-      packageName = "for-in";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz";
-        sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
-      };
-    };
-    "forever-agent-0.6.1" = {
-      name = "forever-agent";
-      packageName = "forever-agent";
-      version = "0.6.1";
+      version = "1.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz";
-        sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.5.tgz";
+        sha512 = "wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==";
       };
     };
-    "form-data-2.3.3" = {
+    "form-data-3.0.1" = {
       name = "form-data";
       packageName = "form-data";
-      version = "2.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz";
-        sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==";
-      };
-    };
-    "fragment-cache-0.2.1" = {
-      name = "fragment-cache";
-      packageName = "fragment-cache";
-      version = "0.2.1";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz";
-        sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+        url = "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz";
+        sha512 = "RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==";
       };
     };
     "fresh-0.5.2" = {
@@ -3487,15 +3307,6 @@ let
         sha512 = "y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==";
       };
     };
-    "fs-extra-9.0.1" = {
-      name = "fs-extra";
-      packageName = "fs-extra";
-      version = "9.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz";
-        sha512 = "h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==";
-      };
-    };
     "fs-readdir-recursive-1.1.0" = {
       name = "fs-readdir-recursive";
       packageName = "fs-readdir-recursive";
@@ -3514,31 +3325,13 @@ let
         sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
       };
     };
-    "fsevents-1.2.13" = {
+    "fsevents-2.3.2" = {
       name = "fsevents";
       packageName = "fsevents";
-      version = "1.2.13";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz";
-        sha512 = "oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==";
-      };
-    };
-    "fsevents-2.1.3" = {
-      name = "fsevents";
-      packageName = "fsevents";
-      version = "2.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz";
-        sha512 = "Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==";
-      };
-    };
-    "fsevents-2.2.1" = {
-      name = "fsevents";
-      packageName = "fsevents";
-      version = "2.2.1";
+      version = "2.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.2.1.tgz";
-        sha512 = "bTLYHSeC0UH/EFXS9KqWnXuOl/wHK5Z/d+ghd5AsFMYN7wIGkUCOJyzy88+wJKkZPGON8u4Z9f6U4FdgURE9qA==";
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz";
+        sha512 = "xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==";
       };
     };
     "function-bind-1.1.1" = {
@@ -3586,13 +3379,13 @@ let
         sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
       };
     };
-    "get-intrinsic-1.0.1" = {
+    "get-intrinsic-1.1.1" = {
       name = "get-intrinsic";
       packageName = "get-intrinsic";
-      version = "1.0.1";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz";
-        sha512 = "ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==";
+        url = "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz";
+        sha512 = "kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==";
       };
     };
     "get-package-type-0.1.0" = {
@@ -3604,49 +3397,22 @@ let
         sha512 = "pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==";
       };
     };
-    "get-stream-4.1.0" = {
+    "get-stream-6.0.1" = {
       name = "get-stream";
       packageName = "get-stream";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz";
-        sha512 = "GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==";
-      };
-    };
-    "get-stream-5.2.0" = {
-      name = "get-stream";
-      packageName = "get-stream";
-      version = "5.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz";
-        sha512 = "nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==";
-      };
-    };
-    "get-value-2.0.6" = {
-      name = "get-value";
-      packageName = "get-value";
-      version = "2.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz";
-        sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
-      };
-    };
-    "getpass-0.1.7" = {
-      name = "getpass";
-      packageName = "getpass";
-      version = "0.1.7";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz";
-        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz";
+        sha512 = "ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==";
       };
     };
-    "git-last-commit-1.0.0" = {
+    "git-last-commit-1.0.1" = {
       name = "git-last-commit";
       packageName = "git-last-commit";
-      version = "1.0.0";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/git-last-commit/-/git-last-commit-1.0.0.tgz";
-        sha512 = "wpnmsd2dW1MnoencljcWO/06VUealfMaY40ZjK5t3v9ljL+bKCMbNaTn/YzwIh4pDo2hk5QcN+pLzUJ8aWB17A==";
+        url = "https://registry.npmjs.org/git-last-commit/-/git-last-commit-1.0.1.tgz";
+        sha512 = "FDSgeMqa7GnJDxt/q0AbrxbfeTyxp4ImxEw1e4nw6NUHA5FMhFUq33dTXI4Xdgcj1VQ1q5QLWF6WxFrJ8KCBOg==";
       };
     };
     "github-from-package-0.0.0" = {
@@ -3658,40 +3424,31 @@ let
         sha1 = "97fb5d96bfde8973313f20e8288ef9a167fa64ce";
       };
     };
-    "glob-7.1.6" = {
+    "glob-7.2.0" = {
       name = "glob";
       packageName = "glob";
-      version = "7.1.6";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
-        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+        url = "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz";
+        sha512 = "lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==";
       };
     };
-    "glob-parent-3.1.0" = {
+    "glob-parent-5.1.2" = {
       name = "glob-parent";
       packageName = "glob-parent";
-      version = "3.1.0";
+      version = "5.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz";
-        sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz";
+        sha512 = "AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==";
       };
     };
-    "glob-parent-5.1.1" = {
+    "glob-parent-6.0.2" = {
       name = "glob-parent";
       packageName = "glob-parent";
-      version = "5.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz";
-        sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==";
-      };
-    };
-    "glob-stream-6.1.0" = {
-      name = "glob-stream";
-      packageName = "glob-stream";
-      version = "6.1.0";
+      version = "6.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz";
-        sha1 = "7045c99413b3eb94888d83ab46d0b404cc7bdde4";
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz";
+        sha512 = "XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==";
       };
     };
     "globals-11.12.0" = {
@@ -3703,22 +3460,22 @@ let
         sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==";
       };
     };
-    "globals-12.4.0" = {
+    "globals-13.12.0" = {
       name = "globals";
       packageName = "globals";
-      version = "12.4.0";
+      version = "13.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz";
-        sha512 = "BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==";
+        url = "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz";
+        sha512 = "uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==";
       };
     };
-    "globby-11.0.1" = {
+    "globby-11.0.4" = {
       name = "globby";
       packageName = "globby";
-      version = "11.0.1";
+      version = "11.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz";
-        sha512 = "iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==";
+        url = "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz";
+        sha512 = "9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==";
       };
     };
     "glossy-0.1.7" = {
@@ -3730,49 +3487,22 @@ let
         sha1 = "769b5984a96f6066ab9ea758224825ee6c210f0b";
       };
     };
-    "graceful-fs-4.2.4" = {
+    "graceful-fs-4.2.8" = {
       name = "graceful-fs";
       packageName = "graceful-fs";
-      version = "4.2.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz";
-        sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==";
-      };
-    };
-    "growly-1.3.0" = {
-      name = "growly";
-      packageName = "growly";
-      version = "1.3.0";
+      version = "4.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz";
-        sha1 = "f10748cbe76af964b7c96c93c6bcc28af120c081";
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz";
+        sha512 = "qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==";
       };
     };
-    "handlebars-4.7.6" = {
+    "handlebars-4.7.7" = {
       name = "handlebars";
       packageName = "handlebars";
-      version = "4.7.6";
+      version = "4.7.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz";
-        sha512 = "1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==";
-      };
-    };
-    "har-schema-2.0.0" = {
-      name = "har-schema";
-      packageName = "har-schema";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz";
-        sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
-      };
-    };
-    "har-validator-5.1.5" = {
-      name = "har-validator";
-      packageName = "har-validator";
-      version = "5.1.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz";
-        sha512 = "nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==";
+        url = "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz";
+        sha512 = "aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==";
       };
     };
     "has-1.0.3" = {
@@ -3802,13 +3532,13 @@ let
         sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
       };
     };
-    "has-symbols-1.0.1" = {
+    "has-symbols-1.0.2" = {
       name = "has-symbols";
       packageName = "has-symbols";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz";
-        sha512 = "PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==";
+        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz";
+        sha512 = "chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==";
       };
     };
     "has-unicode-2.0.1" = {
@@ -3820,67 +3550,13 @@ let
         sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
       };
     };
-    "has-value-0.3.1" = {
-      name = "has-value";
-      packageName = "has-value";
-      version = "0.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz";
-        sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
-      };
-    };
-    "has-value-1.0.0" = {
-      name = "has-value";
-      packageName = "has-value";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz";
-        sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
-      };
-    };
-    "has-values-0.1.4" = {
-      name = "has-values";
-      packageName = "has-values";
-      version = "0.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz";
-        sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
-      };
-    };
-    "has-values-1.0.0" = {
-      name = "has-values";
-      packageName = "has-values";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz";
-        sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
-      };
-    };
-    "help-me-1.1.0" = {
+    "help-me-3.0.0" = {
       name = "help-me";
       packageName = "help-me";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/help-me/-/help-me-1.1.0.tgz";
-        sha1 = "8f2d508d0600b4a456da2f086556e7e5c056a3c6";
-      };
-    };
-    "highlight.js-10.3.2" = {
-      name = "highlight.js";
-      packageName = "highlight.js";
-      version = "10.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-10.3.2.tgz";
-        sha512 = "3jRT7OUYsVsKvukNKZCtnvRcFyCJqSEIuIMsEybAXRiFSwpt65qjPd/Pr+UOdYt7WJlt+lj3+ypUsHiySBp/Jw==";
-      };
-    };
-    "hosted-git-info-2.8.8" = {
-      name = "hosted-git-info";
-      packageName = "hosted-git-info";
-      version = "2.8.8";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
-        sha512 = "f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==";
+        url = "https://registry.npmjs.org/help-me/-/help-me-3.0.0.tgz";
+        sha512 = "hx73jClhyk910sidBB7ERlnhMlFsJJIBqSVMFDwPN8o2v9nmp5KgLq1Xz1Bf1fCMMZ6mPrX159iG0VLy/fPMtQ==";
       };
     };
     "html-encoding-sniffer-2.0.1" = {
@@ -3910,13 +3586,13 @@ let
         sha512 = "ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==";
       };
     };
-    "http-signature-1.2.0" = {
-      name = "http-signature";
-      packageName = "http-signature";
-      version = "1.2.0";
+    "http-proxy-agent-4.0.1" = {
+      name = "http-proxy-agent";
+      packageName = "http-proxy-agent";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz";
-        sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+        url = "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz";
+        sha512 = "k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==";
       };
     };
     "https-proxy-agent-5.0.0" = {
@@ -3928,22 +3604,22 @@ let
         sha512 = "EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==";
       };
     };
-    "human-signals-1.1.1" = {
+    "human-signals-2.1.0" = {
       name = "human-signals";
       packageName = "human-signals";
-      version = "1.1.1";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz";
-        sha512 = "SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==";
+        url = "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz";
+        sha512 = "B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==";
       };
     };
-    "humanize-duration-3.24.0" = {
+    "humanize-duration-3.27.0" = {
       name = "humanize-duration";
       packageName = "humanize-duration";
-      version = "3.24.0";
+      version = "3.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.24.0.tgz";
-        sha512 = "B3udnqisaDeRsvUSb+5n2hjxhABI9jotB+i1IEhgHhguTeM5LxIUKoVIu7UpeyaPOygr/Fnv7UhOi45kYYG+tg==";
+        url = "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.27.0.tgz";
+        sha512 = "qLo/08cNc3Tb0uD7jK0jAcU5cnqCM0n568918E7R2XhMr/+7F37p4EY062W/stg7tmzvknNn9b/1+UhVRzsYrQ==";
       };
     };
     "iconv-lite-0.4.24" = {
@@ -3973,31 +3649,31 @@ let
         sha512 = "cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==";
       };
     };
-    "ignore-5.1.8" = {
+    "ignore-5.1.9" = {
       name = "ignore";
       packageName = "ignore";
-      version = "5.1.8";
+      version = "5.1.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz";
-        sha512 = "BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==";
+        url = "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz";
+        sha512 = "2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==";
       };
     };
-    "import-fresh-3.2.2" = {
+    "import-fresh-3.3.0" = {
       name = "import-fresh";
       packageName = "import-fresh";
-      version = "3.2.2";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz";
-        sha512 = "cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==";
+        url = "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz";
+        sha512 = "veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==";
       };
     };
-    "import-local-3.0.2" = {
+    "import-local-3.0.3" = {
       name = "import-local";
       packageName = "import-local";
-      version = "3.0.2";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz";
-        sha512 = "vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==";
+        url = "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz";
+        sha512 = "bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==";
       };
     };
     "imurmurhash-0.1.4" = {
@@ -4027,67 +3703,13 @@ let
         sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
       };
     };
-    "ini-1.3.5" = {
+    "ini-1.3.8" = {
       name = "ini";
       packageName = "ini";
-      version = "1.3.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz";
-        sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==";
-      };
-    };
-    "interpret-1.4.0" = {
-      name = "interpret";
-      packageName = "interpret";
-      version = "1.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz";
-        sha512 = "agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==";
-      };
-    };
-    "ip-regex-2.1.0" = {
-      name = "ip-regex";
-      packageName = "ip-regex";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz";
-        sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
-      };
-    };
-    "is-absolute-1.0.0" = {
-      name = "is-absolute";
-      packageName = "is-absolute";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz";
-        sha512 = "dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==";
-      };
-    };
-    "is-accessor-descriptor-0.1.6" = {
-      name = "is-accessor-descriptor";
-      packageName = "is-accessor-descriptor";
-      version = "0.1.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
-        sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
-      };
-    };
-    "is-accessor-descriptor-1.0.0" = {
-      name = "is-accessor-descriptor";
-      packageName = "is-accessor-descriptor";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
-        sha512 = "m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==";
-      };
-    };
-    "is-arrayish-0.2.1" = {
-      name = "is-arrayish";
-      packageName = "is-arrayish";
-      version = "0.2.1";
+      version = "1.3.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz";
-        sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+        url = "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz";
+        sha512 = "JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==";
       };
     };
     "is-arrayish-0.3.2" = {
@@ -4099,15 +3721,6 @@ let
         sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==";
       };
     };
-    "is-binary-path-1.0.1" = {
-      name = "is-binary-path";
-      packageName = "is-binary-path";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz";
-        sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
-      };
-    };
     "is-binary-path-2.1.0" = {
       name = "is-binary-path";
       packageName = "is-binary-path";
@@ -4117,103 +3730,13 @@ let
         sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==";
       };
     };
-    "is-buffer-1.1.6" = {
-      name = "is-buffer";
-      packageName = "is-buffer";
-      version = "1.1.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz";
-        sha512 = "NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==";
-      };
-    };
-    "is-ci-2.0.0" = {
-      name = "is-ci";
-      packageName = "is-ci";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz";
-        sha512 = "YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==";
-      };
-    };
-    "is-core-module-2.1.0" = {
-      name = "is-core-module";
-      packageName = "is-core-module";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.1.0.tgz";
-        sha512 = "YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==";
-      };
-    };
-    "is-core-module-2.2.0" = {
+    "is-core-module-2.8.0" = {
       name = "is-core-module";
       packageName = "is-core-module";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz";
-        sha512 = "XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==";
-      };
-    };
-    "is-data-descriptor-0.1.4" = {
-      name = "is-data-descriptor";
-      packageName = "is-data-descriptor";
-      version = "0.1.4";
+      version = "2.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
-        sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
-      };
-    };
-    "is-data-descriptor-1.0.0" = {
-      name = "is-data-descriptor";
-      packageName = "is-data-descriptor";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
-        sha512 = "jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==";
-      };
-    };
-    "is-descriptor-0.1.6" = {
-      name = "is-descriptor";
-      packageName = "is-descriptor";
-      version = "0.1.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz";
-        sha512 = "avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==";
-      };
-    };
-    "is-descriptor-1.0.2" = {
-      name = "is-descriptor";
-      packageName = "is-descriptor";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz";
-        sha512 = "2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==";
-      };
-    };
-    "is-docker-2.1.1" = {
-      name = "is-docker";
-      packageName = "is-docker";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz";
-        sha512 = "ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==";
-      };
-    };
-    "is-extendable-0.1.1" = {
-      name = "is-extendable";
-      packageName = "is-extendable";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz";
-        sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
-      };
-    };
-    "is-extendable-1.0.1" = {
-      name = "is-extendable";
-      packageName = "is-extendable";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz";
-        sha512 = "arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==";
+        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz";
+        sha512 = "vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==";
       };
     };
     "is-extglob-2.1.1" = {
@@ -4234,15 +3757,6 @@ let
         sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
       };
     };
-    "is-fullwidth-code-point-2.0.0" = {
-      name = "is-fullwidth-code-point";
-      packageName = "is-fullwidth-code-point";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
-        sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
-      };
-    };
     "is-fullwidth-code-point-3.0.0" = {
       name = "is-fullwidth-code-point";
       packageName = "is-fullwidth-code-point";
@@ -4261,40 +3775,13 @@ let
         sha512 = "cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==";
       };
     };
-    "is-glob-3.1.0" = {
+    "is-glob-4.0.3" = {
       name = "is-glob";
       packageName = "is-glob";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz";
-        sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
-      };
-    };
-    "is-glob-4.0.1" = {
-      name = "is-glob";
-      packageName = "is-glob";
-      version = "4.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
-        sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
-      };
-    };
-    "is-negated-glob-1.0.0" = {
-      name = "is-negated-glob";
-      packageName = "is-negated-glob";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz";
-        sha1 = "6910bca5da8c95e784b5751b976cf5a10fee36d2";
-      };
-    };
-    "is-number-3.0.0" = {
-      name = "is-number";
-      packageName = "is-number";
-      version = "3.0.0";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz";
-        sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+        url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz";
+        sha512 = "xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==";
       };
     };
     "is-number-7.0.0" = {
@@ -4306,49 +3793,22 @@ let
         sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
       };
     };
-    "is-plain-object-2.0.4" = {
-      name = "is-plain-object";
-      packageName = "is-plain-object";
-      version = "2.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz";
-        sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==";
-      };
-    };
-    "is-potential-custom-element-name-1.0.0" = {
+    "is-potential-custom-element-name-1.0.1" = {
       name = "is-potential-custom-element-name";
       packageName = "is-potential-custom-element-name";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz";
-        sha1 = "0c52e54bcca391bb2c494b21e8626d7336c6e397";
-      };
-    };
-    "is-relative-1.0.0" = {
-      name = "is-relative";
-      packageName = "is-relative";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz";
-        sha512 = "Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==";
-      };
-    };
-    "is-stream-1.1.0" = {
-      name = "is-stream";
-      packageName = "is-stream";
-      version = "1.1.0";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz";
-        sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
+        url = "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz";
+        sha512 = "bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==";
       };
     };
-    "is-stream-2.0.0" = {
+    "is-stream-2.0.1" = {
       name = "is-stream";
       packageName = "is-stream";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz";
-        sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
+        url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz";
+        sha512 = "hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==";
       };
     };
     "is-typedarray-1.0.0" = {
@@ -4360,33 +3820,6 @@ let
         sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
       };
     };
-    "is-unc-path-1.0.0" = {
-      name = "is-unc-path";
-      packageName = "is-unc-path";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz";
-        sha512 = "mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==";
-      };
-    };
-    "is-windows-1.0.2" = {
-      name = "is-windows";
-      packageName = "is-windows";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz";
-        sha512 = "eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==";
-      };
-    };
-    "is-wsl-2.2.0" = {
-      name = "is-wsl";
-      packageName = "is-wsl";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz";
-        sha512 = "fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==";
-      };
-    };
     "isarray-1.0.0" = {
       name = "isarray";
       packageName = "isarray";
@@ -4405,40 +3838,13 @@ let
         sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
       };
     };
-    "isobject-2.1.0" = {
-      name = "isobject";
-      packageName = "isobject";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz";
-        sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
-      };
-    };
-    "isobject-3.0.1" = {
-      name = "isobject";
-      packageName = "isobject";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz";
-        sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
-      };
-    };
-    "isstream-0.1.2" = {
-      name = "isstream";
-      packageName = "isstream";
-      version = "0.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
-        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
-      };
-    };
-    "istanbul-lib-coverage-3.0.0" = {
+    "istanbul-lib-coverage-3.2.0" = {
       name = "istanbul-lib-coverage";
       packageName = "istanbul-lib-coverage";
-      version = "3.0.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz";
-        sha512 = "UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==";
+        url = "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz";
+        sha512 = "eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==";
       };
     };
     "istanbul-lib-instrument-4.0.3" = {
@@ -4450,6 +3856,15 @@ let
         sha512 = "BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==";
       };
     };
+    "istanbul-lib-instrument-5.1.0" = {
+      name = "istanbul-lib-instrument";
+      packageName = "istanbul-lib-instrument";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz";
+        sha512 = "czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==";
+      };
+    };
     "istanbul-lib-report-3.0.0" = {
       name = "istanbul-lib-report";
       packageName = "istanbul-lib-report";
@@ -4459,166 +3874,337 @@ let
         sha512 = "wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==";
       };
     };
-    "istanbul-lib-source-maps-4.0.0" = {
+    "istanbul-lib-source-maps-4.0.1" = {
       name = "istanbul-lib-source-maps";
       packageName = "istanbul-lib-source-maps";
-      version = "4.0.0";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz";
-        sha512 = "c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==";
+        url = "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz";
+        sha512 = "n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==";
       };
     };
-    "istanbul-reports-3.0.2" = {
+    "istanbul-reports-3.0.5" = {
       name = "istanbul-reports";
       packageName = "istanbul-reports";
-      version = "3.0.2";
+      version = "3.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.5.tgz";
+        sha512 = "5+19PlhnGabNWB7kOFnuxT8H3T/iIyQzIbQMxXsURmmvKg86P2sbkrGOT77VnHw0Qr0gc2XzRaRfMZYYbSQCJQ==";
+      };
+    };
+    "istanbul-reports-3.1.0" = {
+      name = "istanbul-reports";
+      packageName = "istanbul-reports";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz";
-        sha512 = "9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==";
+        url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.0.tgz";
+        sha512 = "rgeP8yMlXeH4mfd9K/sQXZv1lvcS7xo379zntcotPDdMwkcGYwMxGHGZYo0/+YW5B/nor2YGKz2BH5ume405ow==";
       };
     };
-    "jest-26.6.3" = {
+    "jest-27.3.1" = {
       name = "jest";
       packageName = "jest";
-      version = "26.6.3";
+      version = "27.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest/-/jest-27.3.1.tgz";
+        sha512 = "U2AX0AgQGd5EzMsiZpYt8HyZ+nSVIh5ujQ9CPp9EQZJMjXIiSZpJNweZl0swatKRoqHWgGKM3zaSwm4Zaz87ng==";
+      };
+    };
+    "jest-27.4.3" = {
+      name = "jest";
+      packageName = "jest";
+      version = "27.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest/-/jest-27.4.3.tgz";
+        sha512 = "jwsfVABBzuN3Atm+6h6vIEpTs9+VApODLt4dk2qv1WMOpb1weI1IIZfuwpMiWZ62qvWj78MvdvMHIYdUfqrFaA==";
+      };
+    };
+    "jest-changed-files-27.3.0" = {
+      name = "jest-changed-files";
+      packageName = "jest-changed-files";
+      version = "27.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz";
-        sha512 = "lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==";
+        url = "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.3.0.tgz";
+        sha512 = "9DJs9garMHv4RhylUMZgbdCJ3+jHSkpL9aaVKp13xtXAD80qLTLrqcDZL1PHA9dYA0bCI86Nv2BhkLpLhrBcPg==";
       };
     };
-    "jest-changed-files-26.6.2" = {
+    "jest-changed-files-27.4.2" = {
       name = "jest-changed-files";
       packageName = "jest-changed-files";
-      version = "26.6.2";
+      version = "27.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.4.2.tgz";
+        sha512 = "/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A==";
+      };
+    };
+    "jest-circus-27.3.1" = {
+      name = "jest-circus";
+      packageName = "jest-circus";
+      version = "27.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-circus/-/jest-circus-27.3.1.tgz";
+        sha512 = "v1dsM9II6gvXokgqq6Yh2jHCpfg7ZqV4jWY66u7npz24JnhP3NHxI0sKT7+ZMQ7IrOWHYAaeEllOySbDbWsiXw==";
+      };
+    };
+    "jest-circus-27.4.2" = {
+      name = "jest-circus";
+      packageName = "jest-circus";
+      version = "27.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz";
-        sha512 = "fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==";
+        url = "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.2.tgz";
+        sha512 = "2ePUSru1BGMyzxsMvRfu+tNb+PW60rUyMLJBfw1Nrh5zC8RoTPfF+zbE0JToU31a6ZVe4nnrNKWYRzlghAbL0A==";
       };
     };
-    "jest-cli-26.6.3" = {
+    "jest-cli-27.3.1" = {
       name = "jest-cli";
       packageName = "jest-cli";
-      version = "26.6.3";
+      version = "27.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-cli/-/jest-cli-27.3.1.tgz";
+        sha512 = "WHnCqpfK+6EvT62me6WVs8NhtbjAS4/6vZJnk7/2+oOr50cwAzG4Wxt6RXX0hu6m1169ZGMlhYYUNeKBXCph/Q==";
+      };
+    };
+    "jest-cli-27.4.3" = {
+      name = "jest-cli";
+      packageName = "jest-cli";
+      version = "27.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.3.tgz";
+        sha512 = "zZSJBXNC/i8UnJPwcKWsqnhGgIF3uoTYP7th32Zej7KNQJdxzOMj+wCfy2Ox3kU7nXErJ36DtYyXDhfiqaiDRw==";
+      };
+    };
+    "jest-config-27.3.1" = {
+      name = "jest-config";
+      packageName = "jest-config";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz";
-        sha512 = "GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==";
+        url = "https://registry.npmjs.org/jest-config/-/jest-config-27.3.1.tgz";
+        sha512 = "KY8xOIbIACZ/vdYCKSopL44I0xboxC751IX+DXL2+Wx6DKNycyEfV3rryC3BPm5Uq/BBqDoMrKuqLEUNJmMKKg==";
       };
     };
-    "jest-config-26.6.3" = {
+    "jest-config-27.4.3" = {
       name = "jest-config";
       packageName = "jest-config";
-      version = "26.6.3";
+      version = "27.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz";
-        sha512 = "t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==";
+        url = "https://registry.npmjs.org/jest-config/-/jest-config-27.4.3.tgz";
+        sha512 = "DQ10HTSqYtC2pO7s9j2jw+li4xUnm2wLYWH2o7K1ftB8NyvToHsXoLlXxtsGh3AW9gUQR6KY/4B7G+T/NswJBw==";
       };
     };
-    "jest-diff-26.6.2" = {
+    "jest-diff-27.3.1" = {
       name = "jest-diff";
       packageName = "jest-diff";
-      version = "26.6.2";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz";
-        sha512 = "6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==";
+        url = "https://registry.npmjs.org/jest-diff/-/jest-diff-27.3.1.tgz";
+        sha512 = "PCeuAH4AWUo2O5+ksW4pL9v5xJAcIKPUPfIhZBcG1RKv/0+dvaWTQK1Nrau8d67dp65fOqbeMdoil+6PedyEPQ==";
       };
     };
-    "jest-docblock-26.0.0" = {
+    "jest-diff-27.4.2" = {
+      name = "jest-diff";
+      packageName = "jest-diff";
+      version = "27.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.2.tgz";
+        sha512 = "ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q==";
+      };
+    };
+    "jest-docblock-27.0.6" = {
       name = "jest-docblock";
       packageName = "jest-docblock";
-      version = "26.0.0";
+      version = "27.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz";
-        sha512 = "RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==";
+        url = "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz";
+        sha512 = "Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==";
       };
     };
-    "jest-each-26.6.2" = {
+    "jest-docblock-27.4.0" = {
+      name = "jest-docblock";
+      packageName = "jest-docblock";
+      version = "27.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.4.0.tgz";
+        sha512 = "7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg==";
+      };
+    };
+    "jest-each-27.3.1" = {
+      name = "jest-each";
+      packageName = "jest-each";
+      version = "27.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-each/-/jest-each-27.3.1.tgz";
+        sha512 = "E4SwfzKJWYcvOYCjOxhZcxwL+AY0uFMvdCOwvzgutJiaiodFjkxQQDxHm8FQBeTqDnSmKsQWn7ldMRzTn2zJaQ==";
+      };
+    };
+    "jest-each-27.4.2" = {
       name = "jest-each";
       packageName = "jest-each";
-      version = "26.6.2";
+      version = "27.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz";
-        sha512 = "Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==";
+        url = "https://registry.npmjs.org/jest-each/-/jest-each-27.4.2.tgz";
+        sha512 = "53V2MNyW28CTruB3lXaHNk6PkiIFuzdOC9gR3C6j8YE/ACfrPnz+slB0s17AgU1TtxNzLuHyvNlLJ+8QYw9nBg==";
       };
     };
-    "jest-environment-jsdom-26.6.2" = {
+    "jest-environment-jsdom-27.3.1" = {
       name = "jest-environment-jsdom";
       packageName = "jest-environment-jsdom";
-      version = "26.6.2";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz";
-        sha512 = "jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==";
+        url = "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.3.1.tgz";
+        sha512 = "3MOy8qMzIkQlfb3W1TfrD7uZHj+xx8Olix5vMENkj5djPmRqndMaXtpnaZkxmxM+Qc3lo+yVzJjzuXbCcZjAlg==";
       };
     };
-    "jest-environment-node-26.6.2" = {
+    "jest-environment-jsdom-27.4.3" = {
+      name = "jest-environment-jsdom";
+      packageName = "jest-environment-jsdom";
+      version = "27.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.3.tgz";
+        sha512 = "x1AUVz3G14LpEJs7KIFUaTINT2n0unOUmvdAby3s/sldUpJJetOJifHo1O/EUQC5fNBowggwJbVulko18y6OWw==";
+      };
+    };
+    "jest-environment-node-27.3.1" = {
       name = "jest-environment-node";
       packageName = "jest-environment-node";
-      version = "26.6.2";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz";
-        sha512 = "zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==";
+        url = "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.3.1.tgz";
+        sha512 = "T89F/FgkE8waqrTSA7/ydMkcc52uYPgZZ6q8OaZgyiZkJb5QNNCF6oPZjH9IfPFfcc9uBWh1574N0kY0pSvTXw==";
       };
     };
-    "jest-get-type-26.3.0" = {
+    "jest-environment-node-27.4.2" = {
+      name = "jest-environment-node";
+      packageName = "jest-environment-node";
+      version = "27.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.2.tgz";
+        sha512 = "nzTZ5nJ+FabuZPH2YVci7SZIHpvtNRHPt8+vipLkCnAgXGjVzHm7XJWdnNqXbAkExIgiKeVEkVMNZOZE/LeiIg==";
+      };
+    };
+    "jest-get-type-27.3.1" = {
       name = "jest-get-type";
       packageName = "jest-get-type";
-      version = "26.3.0";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz";
-        sha512 = "TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==";
+        url = "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.3.1.tgz";
+        sha512 = "+Ilqi8hgHSAdhlQ3s12CAVNd8H96ZkQBfYoXmArzZnOfAtVAJEiPDBirjByEblvG/4LPJmkL+nBqPO3A1YJAEg==";
       };
     };
-    "jest-haste-map-26.6.2" = {
+    "jest-get-type-27.4.0" = {
+      name = "jest-get-type";
+      packageName = "jest-get-type";
+      version = "27.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz";
+        sha512 = "tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==";
+      };
+    };
+    "jest-haste-map-27.3.1" = {
+      name = "jest-haste-map";
+      packageName = "jest-haste-map";
+      version = "27.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.3.1.tgz";
+        sha512 = "lYfNZIzwPccDJZIyk9Iz5iQMM/MH56NIIcGj7AFU1YyA4ewWFBl8z+YPJuSCRML/ee2cCt2y3W4K3VXPT6Nhzg==";
+      };
+    };
+    "jest-haste-map-27.4.2" = {
       name = "jest-haste-map";
       packageName = "jest-haste-map";
-      version = "26.6.2";
+      version = "27.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz";
-        sha512 = "easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==";
+        url = "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.2.tgz";
+        sha512 = "foiyAEePORUN2eeJnOtcM1y8qW0ShEd9kTjWVL4sVaMcuCJM6gtHegvYPBRT0mpI/bs4ueThM90+Eoj2ncoNsA==";
       };
     };
-    "jest-jasmine2-26.6.3" = {
+    "jest-jasmine2-27.3.1" = {
       name = "jest-jasmine2";
       packageName = "jest-jasmine2";
-      version = "26.6.3";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz";
-        sha512 = "kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==";
+        url = "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.3.1.tgz";
+        sha512 = "WK11ZUetDQaC09w4/j7o4FZDUIp+4iYWH/Lik34Pv7ukL+DuXFGdnmmi7dT58J2ZYKFB5r13GyE0z3NPeyJmsg==";
       };
     };
-    "jest-leak-detector-26.6.2" = {
+    "jest-jasmine2-27.4.2" = {
+      name = "jest-jasmine2";
+      packageName = "jest-jasmine2";
+      version = "27.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.2.tgz";
+        sha512 = "VO/fyAJSH9u0THjbteFiL8qc93ufU+yW+bdieDc8tzTCWwlWzO53UHS5nFK1qmE8izb5Smkn+XHlVt6/l06MKQ==";
+      };
+    };
+    "jest-leak-detector-27.3.1" = {
       name = "jest-leak-detector";
       packageName = "jest-leak-detector";
-      version = "26.6.2";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz";
-        sha512 = "i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==";
+        url = "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.3.1.tgz";
+        sha512 = "78QstU9tXbaHzwlRlKmTpjP9k4Pvre5l0r8Spo4SbFFVy/4Abg9I6ZjHwjg2QyKEAMg020XcjP+UgLZIY50yEg==";
       };
     };
-    "jest-matcher-utils-26.6.2" = {
+    "jest-leak-detector-27.4.2" = {
+      name = "jest-leak-detector";
+      packageName = "jest-leak-detector";
+      version = "27.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.4.2.tgz";
+        sha512 = "ml0KvFYZllzPBJWDei3mDzUhyp/M4ubKebX++fPaudpe8OsxUE+m+P6ciVLboQsrzOCWDjE20/eXew9QMx/VGw==";
+      };
+    };
+    "jest-matcher-utils-27.3.1" = {
       name = "jest-matcher-utils";
       packageName = "jest-matcher-utils";
-      version = "26.6.2";
+      version = "27.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.3.1.tgz";
+        sha512 = "hX8N7zXS4k+8bC1Aj0OWpGb7D3gIXxYvPNK1inP5xvE4ztbz3rc4AkI6jGVaerepBnfWB17FL5lWFJT3s7qo8w==";
+      };
+    };
+    "jest-matcher-utils-27.4.2" = {
+      name = "jest-matcher-utils";
+      packageName = "jest-matcher-utils";
+      version = "27.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.2.tgz";
+        sha512 = "jyP28er3RRtMv+fmYC/PKG8wvAmfGcSNproVTW2Y0P/OY7/hWUOmsPfxN1jOhM+0u2xU984u2yEagGivz9OBGQ==";
+      };
+    };
+    "jest-message-util-27.3.1" = {
+      name = "jest-message-util";
+      packageName = "jest-message-util";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz";
-        sha512 = "llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==";
+        url = "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.3.1.tgz";
+        sha512 = "bh3JEmxsTZ/9rTm0jQrPElbY2+y48Rw2t47uMfByNyUVR+OfPh4anuyKsGqsNkXk/TI4JbLRZx+7p7Hdt6q1yg==";
       };
     };
-    "jest-message-util-26.6.2" = {
+    "jest-message-util-27.4.2" = {
       name = "jest-message-util";
       packageName = "jest-message-util";
-      version = "26.6.2";
+      version = "27.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz";
-        sha512 = "rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==";
+        url = "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.2.tgz";
+        sha512 = "OMRqRNd9E0DkBLZpFtZkAGYOXl6ZpoMtQJWTAREJKDOFa0M6ptB7L67tp+cszMBkvSgKOhNtQp2Vbcz3ZZKo/w==";
       };
     };
-    "jest-mock-26.6.2" = {
+    "jest-mock-27.3.0" = {
       name = "jest-mock";
       packageName = "jest-mock";
-      version = "26.6.2";
+      version = "27.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz";
-        sha512 = "YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==";
+        url = "https://registry.npmjs.org/jest-mock/-/jest-mock-27.3.0.tgz";
+        sha512 = "ziZiLk0elZOQjD08bLkegBzv5hCABu/c8Ytx45nJKkysQwGaonvmTxwjLqEA4qGdasq9o2I8/HtdGMNnVsMTGw==";
+      };
+    };
+    "jest-mock-27.4.2" = {
+      name = "jest-mock";
+      packageName = "jest-mock";
+      version = "27.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.2.tgz";
+        sha512 = "PDDPuyhoukk20JrQKeofK12hqtSka7mWH0QQuxSNgrdiPsrnYYLS6wbzu/HDlxZRzji5ylLRULeuI/vmZZDrYA==";
       };
     };
     "jest-pnp-resolver-1.2.2" = {
@@ -4630,103 +4216,202 @@ let
         sha512 = "olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==";
       };
     };
-    "jest-regex-util-26.0.0" = {
+    "jest-regex-util-27.0.6" = {
+      name = "jest-regex-util";
+      packageName = "jest-regex-util";
+      version = "27.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz";
+        sha512 = "SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==";
+      };
+    };
+    "jest-regex-util-27.4.0" = {
       name = "jest-regex-util";
       packageName = "jest-regex-util";
-      version = "26.0.0";
+      version = "27.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz";
-        sha512 = "Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==";
+        url = "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz";
+        sha512 = "WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==";
       };
     };
-    "jest-resolve-26.6.2" = {
+    "jest-resolve-27.3.1" = {
       name = "jest-resolve";
       packageName = "jest-resolve";
-      version = "26.6.2";
+      version = "27.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.3.1.tgz";
+        sha512 = "Dfzt25CFSPo3Y3GCbxynRBZzxq9AdyNN+x/v2IqYx6KVT5Z6me2Z/PsSGFSv3cOSUZqJ9pHxilao/I/m9FouLw==";
+      };
+    };
+    "jest-resolve-27.4.2" = {
+      name = "jest-resolve";
+      packageName = "jest-resolve";
+      version = "27.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.2.tgz";
+        sha512 = "d/zqPjxCzMqHlOdRTg8cTpO9jY+1/T74KazT8Ws/LwmwxV5sRMWOkiLjmzUCDj/5IqA5XHNK4Hkmlq9Kdpb9Sg==";
+      };
+    };
+    "jest-resolve-dependencies-27.3.1" = {
+      name = "jest-resolve-dependencies";
+      packageName = "jest-resolve-dependencies";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz";
-        sha512 = "sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==";
+        url = "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.3.1.tgz";
+        sha512 = "X7iLzY8pCiYOnvYo2YrK3P9oSE8/3N2f4pUZMJ8IUcZnT81vlSonya1KTO9ZfKGuC+svE6FHK/XOb8SsoRUV1A==";
       };
     };
-    "jest-resolve-dependencies-26.6.3" = {
+    "jest-resolve-dependencies-27.4.2" = {
       name = "jest-resolve-dependencies";
       packageName = "jest-resolve-dependencies";
-      version = "26.6.3";
+      version = "27.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.2.tgz";
+        sha512 = "hb++cTpqvOWfU49MCP/JQkxmnrhKoAVqXWFjgYXswRSVGk8Q6bDTSvhbCeYXDtXaymY0y7WrrSIlKogClcKJuw==";
+      };
+    };
+    "jest-runner-27.3.1" = {
+      name = "jest-runner";
+      packageName = "jest-runner";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz";
-        sha512 = "pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==";
+        url = "https://registry.npmjs.org/jest-runner/-/jest-runner-27.3.1.tgz";
+        sha512 = "r4W6kBn6sPr3TBwQNmqE94mPlYVn7fLBseeJfo4E2uCTmAyDFm2O5DYAQAFP7Q3YfiA/bMwg8TVsciP7k0xOww==";
       };
     };
-    "jest-runner-26.6.3" = {
+    "jest-runner-27.4.3" = {
       name = "jest-runner";
       packageName = "jest-runner";
-      version = "26.6.3";
+      version = "27.4.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz";
-        sha512 = "atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==";
+        url = "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.3.tgz";
+        sha512 = "JgR6Om/j22Fd6ZUUIGTWNcCtuZVYbNrecb4k89W4UyFJoRtHpo2zMKWkmFFFJoqwWGrfrcPLnVBIgkJiTV3cyA==";
       };
     };
-    "jest-runtime-26.6.3" = {
+    "jest-runtime-27.3.1" = {
       name = "jest-runtime";
       packageName = "jest-runtime";
-      version = "26.6.3";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz";
-        sha512 = "lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==";
+        url = "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.3.1.tgz";
+        sha512 = "qtO6VxPbS8umqhEDpjA4pqTkKQ1Hy4ZSi9mDVeE9Za7LKBo2LdW2jmT+Iod3XFaJqINikZQsn2wEi0j9wPRbLg==";
       };
     };
-    "jest-serializer-26.6.2" = {
+    "jest-runtime-27.4.2" = {
+      name = "jest-runtime";
+      packageName = "jest-runtime";
+      version = "27.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.2.tgz";
+        sha512 = "eqPgcBaUNaw6j8T5M+dnfAEh6MIrh2YmtskCr9sl50QYpD22Sg+QqHw3J3nmaLzVMbBtOMHFFxLF0Qx8MsZVFQ==";
+      };
+    };
+    "jest-serializer-27.0.6" = {
+      name = "jest-serializer";
+      packageName = "jest-serializer";
+      version = "27.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz";
+        sha512 = "PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==";
+      };
+    };
+    "jest-serializer-27.4.0" = {
       name = "jest-serializer";
       packageName = "jest-serializer";
-      version = "26.6.2";
+      version = "27.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz";
-        sha512 = "S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==";
+        url = "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz";
+        sha512 = "RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==";
       };
     };
-    "jest-snapshot-26.6.2" = {
+    "jest-snapshot-27.3.1" = {
       name = "jest-snapshot";
       packageName = "jest-snapshot";
-      version = "26.6.2";
+      version = "27.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.3.1.tgz";
+        sha512 = "APZyBvSgQgOT0XumwfFu7X3G5elj6TGhCBLbBdn3R1IzYustPGPE38F51dBWMQ8hRXa9je0vAdeVDtqHLvB6lg==";
+      };
+    };
+    "jest-snapshot-27.4.2" = {
+      name = "jest-snapshot";
+      packageName = "jest-snapshot";
+      version = "27.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.2.tgz";
+        sha512 = "DI7lJlNIu6WSQ+esqhnJzEzU70+dV+cNjoF1c+j5FagWEd3KtOyZvVliAH0RWNQ6KSnAAnKSU0qxJ8UXOOhuUQ==";
+      };
+    };
+    "jest-util-27.3.1" = {
+      name = "jest-util";
+      packageName = "jest-util";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz";
-        sha512 = "OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==";
+        url = "https://registry.npmjs.org/jest-util/-/jest-util-27.3.1.tgz";
+        sha512 = "8fg+ifEH3GDryLQf/eKZck1DEs2YuVPBCMOaHQxVVLmQwl/CDhWzrvChTX4efLZxGrw+AA0mSXv78cyytBt/uw==";
       };
     };
-    "jest-util-26.6.2" = {
+    "jest-util-27.4.2" = {
       name = "jest-util";
       packageName = "jest-util";
-      version = "26.6.2";
+      version = "27.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz";
-        sha512 = "MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==";
+        url = "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz";
+        sha512 = "YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==";
       };
     };
-    "jest-validate-26.6.2" = {
+    "jest-validate-27.3.1" = {
       name = "jest-validate";
       packageName = "jest-validate";
-      version = "26.6.2";
+      version = "27.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-validate/-/jest-validate-27.3.1.tgz";
+        sha512 = "3H0XCHDFLA9uDII67Bwi1Vy7AqwA5HqEEjyy934lgVhtJ3eisw6ShOF1MDmRPspyikef5MyExvIm0/TuLzZ86Q==";
+      };
+    };
+    "jest-validate-27.4.2" = {
+      name = "jest-validate";
+      packageName = "jest-validate";
+      version = "27.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz";
+        sha512 = "hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==";
+      };
+    };
+    "jest-watcher-27.3.1" = {
+      name = "jest-watcher";
+      packageName = "jest-watcher";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz";
-        sha512 = "NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==";
+        url = "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.3.1.tgz";
+        sha512 = "9/xbV6chABsGHWh9yPaAGYVVKurWoP3ZMCv6h+O1v9/+pkOroigs6WzZ0e9gLP/njokUwM7yQhr01LKJVMkaZA==";
       };
     };
-    "jest-watcher-26.6.2" = {
+    "jest-watcher-27.4.2" = {
       name = "jest-watcher";
       packageName = "jest-watcher";
-      version = "26.6.2";
+      version = "27.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz";
-        sha512 = "WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==";
+        url = "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.4.2.tgz";
+        sha512 = "NJvMVyyBeXfDezhWzUOCOYZrUmkSCiatpjpm+nFUid74OZEHk6aMLrZAukIiFDwdbqp6mTM6Ui1w4oc+8EobQg==";
       };
     };
-    "jest-worker-26.6.2" = {
+    "jest-worker-27.3.1" = {
       name = "jest-worker";
       packageName = "jest-worker";
-      version = "26.6.2";
+      version = "27.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz";
-        sha512 = "KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==";
+        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-27.3.1.tgz";
+        sha512 = "ks3WCzsiZaOPJl/oMsDjaf0TRiSv7ctNgs0FqRr2nARsovz6AWWy4oLElwcquGSz692DzgZQrCLScPNs5YlC4g==";
+      };
+    };
+    "jest-worker-27.4.2" = {
+      name = "jest-worker";
+      packageName = "jest-worker";
+      version = "27.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz";
+        sha512 = "0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==";
       };
     };
     "js-tokens-4.0.0" = {
@@ -4738,31 +4423,31 @@ let
         sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
       };
     };
-    "js-yaml-3.14.0" = {
+    "js-yaml-3.14.1" = {
       name = "js-yaml";
       packageName = "js-yaml";
-      version = "3.14.0";
+      version = "3.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz";
-        sha512 = "/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==";
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz";
+        sha512 = "okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==";
       };
     };
-    "jsbn-0.1.1" = {
-      name = "jsbn";
-      packageName = "jsbn";
-      version = "0.1.1";
+    "js-yaml-4.1.0" = {
+      name = "js-yaml";
+      packageName = "js-yaml";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz";
-        sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz";
+        sha512 = "wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==";
       };
     };
-    "jsdom-16.4.0" = {
+    "jsdom-16.7.0" = {
       name = "jsdom";
       packageName = "jsdom";
-      version = "16.4.0";
+      version = "16.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz";
-        sha512 = "lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==";
+        url = "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz";
+        sha512 = "u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==";
       };
     };
     "jsesc-0.5.0" = {
@@ -4783,24 +4468,6 @@ let
         sha512 = "OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==";
       };
     };
-    "json-parse-even-better-errors-2.3.1" = {
-      name = "json-parse-even-better-errors";
-      packageName = "json-parse-even-better-errors";
-      version = "2.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz";
-        sha512 = "xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==";
-      };
-    };
-    "json-schema-0.2.3" = {
-      name = "json-schema";
-      packageName = "json-schema";
-      version = "0.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz";
-        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
-      };
-    };
     "json-schema-traverse-0.4.1" = {
       name = "json-schema-traverse";
       packageName = "json-schema-traverse";
@@ -4810,6 +4477,15 @@ let
         sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
       };
     };
+    "json-schema-traverse-1.0.0" = {
+      name = "json-schema-traverse";
+      packageName = "json-schema-traverse";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz";
+        sha512 = "NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==";
+      };
+    };
     "json-stable-stringify-without-jsonify-1.0.1" = {
       name = "json-stable-stringify-without-jsonify";
       packageName = "json-stable-stringify-without-jsonify";
@@ -4819,76 +4495,22 @@ let
         sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
       };
     };
-    "json-stringify-safe-5.0.1" = {
-      name = "json-stringify-safe";
-      packageName = "json-stringify-safe";
-      version = "5.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
-        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
-      };
-    };
-    "json5-2.1.3" = {
+    "json5-2.2.0" = {
       name = "json5";
       packageName = "json5";
-      version = "2.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz";
-        sha512 = "KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==";
-      };
-    };
-    "jsonfile-6.1.0" = {
-      name = "jsonfile";
-      packageName = "jsonfile";
-      version = "6.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz";
-        sha512 = "5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==";
-      };
-    };
-    "jsprim-1.4.1" = {
-      name = "jsprim";
-      packageName = "jsprim";
-      version = "1.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz";
-        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
-      };
-    };
-    "kind-of-3.2.2" = {
-      name = "kind-of";
-      packageName = "kind-of";
-      version = "3.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz";
-        sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
-      };
-    };
-    "kind-of-4.0.0" = {
-      name = "kind-of";
-      packageName = "kind-of";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz";
-        sha1 = "20813df3d712928b207378691a45066fae72dd57";
-      };
-    };
-    "kind-of-5.1.0" = {
-      name = "kind-of";
-      packageName = "kind-of";
-      version = "5.1.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz";
-        sha512 = "NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==";
+        url = "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz";
+        sha512 = "f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==";
       };
     };
-    "kind-of-6.0.3" = {
-      name = "kind-of";
-      packageName = "kind-of";
-      version = "6.0.3";
+    "jsonc-parser-3.0.0" = {
+      name = "jsonc-parser";
+      packageName = "jsonc-parser";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz";
-        sha512 = "dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==";
+        url = "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz";
+        sha512 = "fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==";
       };
     };
     "kleur-3.0.3" = {
@@ -4945,15 +4567,6 @@ let
         sha512 = "+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==";
       };
     };
-    "lines-and-columns-1.1.6" = {
-      name = "lines-and-columns";
-      packageName = "lines-and-columns";
-      version = "1.1.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz";
-        sha1 = "1c00c743b433cd0a4e80758f7b64a57440d9ff00";
-      };
-    };
     "locate-path-5.0.0" = {
       name = "locate-path";
       packageName = "locate-path";
@@ -4963,31 +4576,49 @@ let
         sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==";
       };
     };
-    "lodash-4.17.20" = {
+    "lodash-4.17.21" = {
       name = "lodash";
       packageName = "lodash";
-      version = "4.17.20";
+      version = "4.17.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz";
-        sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==";
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz";
+        sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==";
       };
     };
-    "lodash.sortby-4.7.0" = {
-      name = "lodash.sortby";
-      packageName = "lodash.sortby";
-      version = "4.7.0";
+    "lodash.debounce-4.0.8" = {
+      name = "lodash.debounce";
+      packageName = "lodash.debounce";
+      version = "4.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz";
-        sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438";
+        url = "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz";
+        sha1 = "82d79bff30a67c4005ffd5e2515300ad9ca4d7af";
       };
     };
-    "logform-2.2.0" = {
+    "lodash.merge-4.6.2" = {
+      name = "lodash.merge";
+      packageName = "lodash.merge";
+      version = "4.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz";
+        sha512 = "0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==";
+      };
+    };
+    "logform-2.3.0" = {
       name = "logform";
       packageName = "logform";
-      version = "2.2.0";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/logform/-/logform-2.3.0.tgz";
+        sha512 = "graeoWUH2knKbGthMtuG1EfaSPMZFZBIrhuJHhkS5ZseFBrc7DupCzihOQAzsK/qIKPQaPJ/lFQFctILUY5ARQ==";
+      };
+    };
+    "lru-cache-6.0.0" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz";
-        sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==";
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz";
+        sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==";
       };
     };
     "lunr-2.3.9" = {
@@ -5017,40 +4648,22 @@ let
         sha512 = "g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==";
       };
     };
-    "makeerror-1.0.11" = {
+    "makeerror-1.0.12" = {
       name = "makeerror";
       packageName = "makeerror";
-      version = "1.0.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz";
-        sha1 = "e01a5c9109f2af79660e4e8b9587790184f5a96c";
-      };
-    };
-    "map-cache-0.2.2" = {
-      name = "map-cache";
-      packageName = "map-cache";
-      version = "0.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz";
-        sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
-      };
-    };
-    "map-visit-1.0.0" = {
-      name = "map-visit";
-      packageName = "map-visit";
-      version = "1.0.0";
+      version = "1.0.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz";
-        sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+        url = "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz";
+        sha512 = "JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==";
       };
     };
-    "marked-1.2.3" = {
+    "marked-3.0.8" = {
       name = "marked";
       packageName = "marked";
-      version = "1.2.3";
+      version = "3.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/marked/-/marked-1.2.3.tgz";
-        sha512 = "RQuL2i6I6Gn+9n81IDNGbL0VHnta4a+8ZhqvryXEniTb/hQNtf3i26hi1XWUhzb9BgVyWHKR3UO8MaHtKoYibw==";
+        url = "https://registry.npmjs.org/marked/-/marked-3.0.8.tgz";
+        sha512 = "0gVrAjo5m0VZSJb4rpL59K1unJAMb/hm8HRXqasD8VeC8m91ytDPMritgFSlKonfdt+rRYYpP/JfLxgIX8yoSw==";
       };
     };
     "merge-stream-2.0.0" = {
@@ -5071,22 +4684,13 @@ let
         sha512 = "8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==";
       };
     };
-    "micromatch-3.1.10" = {
+    "micromatch-4.0.4" = {
       name = "micromatch";
       packageName = "micromatch";
-      version = "3.1.10";
+      version = "4.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz";
-        sha512 = "MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==";
-      };
-    };
-    "micromatch-4.0.2" = {
-      name = "micromatch";
-      packageName = "micromatch";
-      version = "4.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz";
-        sha512 = "y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==";
+        url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz";
+        sha512 = "pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==";
       };
     };
     "mime-1.6.0" = {
@@ -5098,22 +4702,22 @@ let
         sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
       };
     };
-    "mime-db-1.44.0" = {
+    "mime-db-1.51.0" = {
       name = "mime-db";
       packageName = "mime-db";
-      version = "1.44.0";
+      version = "1.51.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz";
-        sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz";
+        sha512 = "5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==";
       };
     };
-    "mime-types-2.1.27" = {
+    "mime-types-2.1.34" = {
       name = "mime-types";
       packageName = "mime-types";
-      version = "2.1.27";
+      version = "2.1.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz";
-        sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz";
+        sha512 = "6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==";
       };
     };
     "mimic-fn-2.1.0" = {
@@ -5125,13 +4729,13 @@ let
         sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==";
       };
     };
-    "mimic-response-2.1.0" = {
+    "mimic-response-3.1.0" = {
       name = "mimic-response";
       packageName = "mimic-response";
-      version = "2.1.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz";
-        sha512 = "wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==";
+        url = "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz";
+        sha512 = "z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==";
       };
     };
     "minimatch-3.0.4" = {
@@ -5152,15 +4756,6 @@ let
         sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
       };
     };
-    "mixin-deep-1.3.2" = {
-      name = "mixin-deep";
-      packageName = "mixin-deep";
-      version = "1.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz";
-        sha512 = "WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==";
-      };
-    };
     "mixin-deep-2.0.1" = {
       name = "mixin-deep";
       packageName = "mixin-deep";
@@ -5179,15 +4774,6 @@ let
         sha512 = "gbTtiEu8P/GSMh1lAa0YYNr8XIfDzFgnWtetw3Hfz9nw6YXySHNYOZF/uUTgyp8GHvFnNw/EG7VhOkD6zfVb6A==";
       };
     };
-    "mkdirp-0.5.5" = {
-      name = "mkdirp";
-      packageName = "mkdirp";
-      version = "0.5.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz";
-        sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
-      };
-    };
     "mkdirp-classic-0.5.3" = {
       name = "mkdirp-classic";
       packageName = "mkdirp-classic";
@@ -5206,22 +4792,22 @@ let
         sha512 = "kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==";
       };
     };
-    "mqtt-4.2.1" = {
+    "mqtt-4.2.8" = {
       name = "mqtt";
       packageName = "mqtt";
-      version = "4.2.1";
+      version = "4.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mqtt/-/mqtt-4.2.1.tgz";
-        sha512 = "Iv893r+jWlo5GkNcPOfCGwW8M49IixwHiKLFFYTociEymSibUVCORVEjPXWPGzSxhn7BdlUeHicbRmWiv0Crkg==";
+        url = "https://registry.npmjs.org/mqtt/-/mqtt-4.2.8.tgz";
+        sha512 = "DJYjlXODVXtSDecN8jnNzi6ItX3+ufGsEs9OB3YV24HtkRrh7kpx8L5M1LuyF0KzaiGtWr2PzDcMGAY60KGOSA==";
       };
     };
-    "mqtt-packet-6.6.0" = {
+    "mqtt-packet-6.10.0" = {
       name = "mqtt-packet";
       packageName = "mqtt-packet";
-      version = "6.6.0";
+      version = "6.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.6.0.tgz";
-        sha512 = "LvghnKMFC70hKWMVykmhJarlO5e7lT3t9s9A2qPCUx+lazL3Mq55U+eCV0eLi7/nRRQYvEUWo/2tTo89EjnCJQ==";
+        url = "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.10.0.tgz";
+        sha512 = "ja8+mFKIHdB1Tpl6vac+sktqy3gA8t9Mduom1BA75cI+R9AHnZOiaBQwpGiWnaVJLDGRdNhQmFaAqd7tkKSMGA==";
       };
     };
     "ms-2.0.0" = {
@@ -5251,22 +4837,31 @@ let
         sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
       };
     };
-    "nan-2.14.2" = {
-      name = "nan";
-      packageName = "nan";
-      version = "2.14.2";
+    "ms-2.1.3" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz";
+        sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==";
+      };
+    };
+    "mz-2.7.0" = {
+      name = "mz";
+      packageName = "mz";
+      version = "2.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz";
-        sha512 = "M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==";
+        url = "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz";
+        sha512 = "z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==";
       };
     };
-    "nanomatch-1.2.13" = {
-      name = "nanomatch";
-      packageName = "nanomatch";
-      version = "1.2.13";
+    "nan-2.15.0" = {
+      name = "nan";
+      packageName = "nan";
+      version = "2.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz";
-        sha512 = "fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==";
+        url = "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz";
+        sha512 = "8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==";
       };
     };
     "napi-build-utils-1.0.2" = {
@@ -5296,31 +4891,13 @@ let
         sha512 = "Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==";
       };
     };
-    "next-tick-1.0.0" = {
-      name = "next-tick";
-      packageName = "next-tick";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz";
-        sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c";
-      };
-    };
-    "nice-try-1.0.5" = {
-      name = "nice-try";
-      packageName = "nice-try";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz";
-        sha512 = "1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==";
-      };
-    };
-    "node-abi-2.19.1" = {
+    "node-abi-3.5.0" = {
       name = "node-abi";
       packageName = "node-abi";
-      version = "2.19.1";
+      version = "3.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.19.1.tgz";
-        sha512 = "HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A==";
+        url = "https://registry.npmjs.org/node-abi/-/node-abi-3.5.0.tgz";
+        sha512 = "LtHvNIBgOy5mO8mPEUtkCW/YCRWYEKshIvqhe1GHHyXEHEB5mgICyYnAcl4qan3uFeRROErKGzatFHPf6kDxWw==";
       };
     };
     "node-int64-0.4.0" = {
@@ -5341,49 +4918,13 @@ let
         sha1 = "8d9dbe28964a4ac5712e9131642107c71e90ec40";
       };
     };
-    "node-notifier-8.0.0" = {
-      name = "node-notifier";
-      packageName = "node-notifier";
-      version = "8.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz";
-        sha512 = "46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==";
-      };
-    };
-    "node-releases-1.1.66" = {
+    "node-releases-2.0.1" = {
       name = "node-releases";
       packageName = "node-releases";
-      version = "1.1.66";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.66.tgz";
-        sha512 = "JHEQ1iWPGK+38VLB2H9ef2otU4l8s3yAMt9Xf934r6+ojCYDMHPMqvCc9TnzfeFSP1QEOeU6YZEd3+De0LTCgg==";
-      };
-    };
-    "noop-logger-0.1.1" = {
-      name = "noop-logger";
-      packageName = "noop-logger";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz";
-        sha1 = "94a2b1633c4f1317553007d8966fd0e841b6a4c2";
-      };
-    };
-    "normalize-package-data-2.5.0" = {
-      name = "normalize-package-data";
-      packageName = "normalize-package-data";
-      version = "2.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
-        sha512 = "/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==";
-      };
-    };
-    "normalize-path-2.1.1" = {
-      name = "normalize-path";
-      packageName = "normalize-path";
-      version = "2.1.1";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz";
-        sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz";
+        sha512 = "CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==";
       };
     };
     "normalize-path-3.0.0" = {
@@ -5395,15 +4936,6 @@ let
         sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
       };
     };
-    "npm-run-path-2.0.2" = {
-      name = "npm-run-path";
-      packageName = "npm-run-path";
-      version = "2.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz";
-        sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
-      };
-    };
     "npm-run-path-4.0.1" = {
       name = "npm-run-path";
       packageName = "npm-run-path";
@@ -5440,15 +4972,6 @@ let
         sha512 = "h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==";
       };
     };
-    "oauth-sign-0.9.0" = {
-      name = "oauth-sign";
-      packageName = "oauth-sign";
-      version = "0.9.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz";
-        sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
-      };
-    };
     "object-assign-4.1.1" = {
       name = "object-assign";
       packageName = "object-assign";
@@ -5467,15 +4990,6 @@ let
         sha512 = "54Uvn3s+4A/cMWx9tlRez1qtc7pN7pbQ+Yi7mjLjcBpWLlP+XbSHiHbQW6CElDiV4OvuzqnMrBdkgxI1mT8V/Q==";
       };
     };
-    "object-copy-0.1.0" = {
-      name = "object-copy";
-      packageName = "object-copy";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz";
-        sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
-      };
-    };
     "object-keys-1.1.1" = {
       name = "object-keys";
       packageName = "object-keys";
@@ -5485,15 +4999,6 @@ let
         sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==";
       };
     };
-    "object-visit-1.0.1" = {
-      name = "object-visit";
-      packageName = "object-visit";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz";
-        sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
-      };
-    };
     "object.assign-4.1.2" = {
       name = "object.assign";
       packageName = "object.assign";
@@ -5503,15 +5008,6 @@ let
         sha512 = "ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==";
       };
     };
-    "object.pick-1.3.0" = {
-      name = "object.pick";
-      packageName = "object.pick";
-      version = "1.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz";
-        sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
-      };
-    };
     "on-finished-2.3.0" = {
       name = "on-finished";
       packageName = "on-finished";
@@ -5566,42 +5062,6 @@ let
         sha512 = "74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==";
       };
     };
-    "ordered-read-streams-1.0.1" = {
-      name = "ordered-read-streams";
-      packageName = "ordered-read-streams";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz";
-        sha1 = "77c0cb37c41525d64166d990ffad7ec6a0e1363e";
-      };
-    };
-    "p-each-series-2.1.0" = {
-      name = "p-each-series";
-      packageName = "p-each-series";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz";
-        sha512 = "ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==";
-      };
-    };
-    "p-each-series-2.2.0" = {
-      name = "p-each-series";
-      packageName = "p-each-series";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz";
-        sha512 = "ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==";
-      };
-    };
-    "p-finally-1.0.0" = {
-      name = "p-finally";
-      packageName = "p-finally";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz";
-        sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
-      };
-    };
     "p-limit-2.3.0" = {
       name = "p-limit";
       packageName = "p-limit";
@@ -5638,22 +5098,13 @@ let
         sha512 = "GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==";
       };
     };
-    "parse-json-5.1.0" = {
-      name = "parse-json";
-      packageName = "parse-json";
-      version = "5.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz";
-        sha512 = "+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==";
-      };
-    };
-    "parse5-5.1.1" = {
+    "parse5-6.0.1" = {
       name = "parse5";
       packageName = "parse5";
-      version = "5.1.1";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz";
-        sha512 = "ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==";
+        url = "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz";
+        sha512 = "Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==";
       };
     };
     "parseurl-1.3.3" = {
@@ -5665,24 +5116,6 @@ let
         sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
       };
     };
-    "pascalcase-0.1.1" = {
-      name = "pascalcase";
-      packageName = "pascalcase";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz";
-        sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
-      };
-    };
-    "path-dirname-1.0.2" = {
-      name = "path-dirname";
-      packageName = "path-dirname";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz";
-        sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
-      };
-    };
     "path-exists-4.0.0" = {
       name = "path-exists";
       packageName = "path-exists";
@@ -5701,15 +5134,6 @@ let
         sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
       };
     };
-    "path-key-2.0.1" = {
-      name = "path-key";
-      packageName = "path-key";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz";
-        sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
-      };
-    };
     "path-key-3.1.1" = {
       name = "path-key";
       packageName = "path-key";
@@ -5719,13 +5143,13 @@ let
         sha512 = "ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==";
       };
     };
-    "path-parse-1.0.6" = {
+    "path-parse-1.0.7" = {
       name = "path-parse";
       packageName = "path-parse";
-      version = "1.0.6";
+      version = "1.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
-        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
+        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz";
+        sha512 = "LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==";
       };
     };
     "path-type-4.0.0" = {
@@ -5737,22 +5161,22 @@ let
         sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==";
       };
     };
-    "performance-now-2.1.0" = {
-      name = "performance-now";
-      packageName = "performance-now";
-      version = "2.1.0";
+    "picocolors-1.0.0" = {
+      name = "picocolors";
+      packageName = "picocolors";
+      version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz";
-        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+        url = "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz";
+        sha512 = "1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==";
       };
     };
-    "picomatch-2.2.2" = {
+    "picomatch-2.3.0" = {
       name = "picomatch";
       packageName = "picomatch";
-      version = "2.2.2";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz";
-        sha512 = "q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==";
+        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz";
+        sha512 = "lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==";
       };
     };
     "pify-4.0.1" = {
@@ -5782,22 +5206,13 @@ let
         sha512 = "HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==";
       };
     };
-    "posix-character-classes-0.1.1" = {
-      name = "posix-character-classes";
-      packageName = "posix-character-classes";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
-        sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
-      };
-    };
-    "prebuild-install-5.3.6" = {
+    "prebuild-install-7.0.0" = {
       name = "prebuild-install";
       packageName = "prebuild-install";
-      version = "5.3.6";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz";
-        sha512 = "s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==";
+        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.0.0.tgz";
+        sha512 = "IvSenf33K7JcgddNz2D5w521EgO+4aMMjFt73Uk9FRzQ7P+QZPKrp7qPsDydsSwjGt3T5xRNnM1bj1zMTD5fTA==";
       };
     };
     "prelude-ls-1.1.2" = {
@@ -5818,13 +5233,22 @@ let
         sha512 = "vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==";
       };
     };
-    "pretty-format-26.6.2" = {
+    "pretty-format-27.3.1" = {
+      name = "pretty-format";
+      packageName = "pretty-format";
+      version = "27.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pretty-format/-/pretty-format-27.3.1.tgz";
+        sha512 = "DR/c+pvFc52nLimLROYjnXPtolawm+uWDxr4FjuLDLUn+ktWnSN851KoHwHzzqq6rfCOjkzN8FLgDrSub6UDuA==";
+      };
+    };
+    "pretty-format-27.4.2" = {
       name = "pretty-format";
       packageName = "pretty-format";
-      version = "26.6.2";
+      version = "27.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz";
-        sha512 = "7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==";
+        url = "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz";
+        sha512 = "p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==";
       };
     };
     "process-nextick-args-2.0.1" = {
@@ -5845,13 +5269,13 @@ let
         sha512 = "7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==";
       };
     };
-    "prompts-2.4.0" = {
+    "prompts-2.4.2" = {
       name = "prompts";
       packageName = "prompts";
-      version = "2.4.0";
+      version = "2.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz";
-        sha512 = "awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==";
+        url = "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz";
+        sha512 = "NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==";
       };
     };
     "psl-1.8.0" = {
@@ -5863,15 +5287,6 @@ let
         sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
       };
     };
-    "pump-2.0.1" = {
-      name = "pump";
-      packageName = "pump";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz";
-        sha512 = "ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==";
-      };
-    };
     "pump-3.0.0" = {
       name = "pump";
       packageName = "pump";
@@ -5881,15 +5296,6 @@ let
         sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==";
       };
     };
-    "pumpify-1.5.1" = {
-      name = "pumpify";
-      packageName = "pumpify";
-      version = "1.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz";
-        sha512 = "oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==";
-      };
-    };
     "punycode-2.1.1" = {
       name = "punycode";
       packageName = "punycode";
@@ -5899,13 +5305,13 @@ let
         sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
       };
     };
-    "qs-6.5.2" = {
-      name = "qs";
-      packageName = "qs";
-      version = "6.5.2";
+    "queue-microtask-1.2.3" = {
+      name = "queue-microtask";
+      packageName = "queue-microtask";
+      version = "1.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
-        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
+        url = "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz";
+        sha512 = "NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==";
       };
     };
     "range-parser-1.2.1" = {
@@ -5926,31 +5332,13 @@ let
         sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==";
       };
     };
-    "react-is-17.0.1" = {
+    "react-is-17.0.2" = {
       name = "react-is";
       packageName = "react-is";
-      version = "17.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz";
-        sha512 = "NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==";
-      };
-    };
-    "read-pkg-5.2.0" = {
-      name = "read-pkg";
-      packageName = "read-pkg";
-      version = "5.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz";
-        sha512 = "Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==";
-      };
-    };
-    "read-pkg-up-7.0.1" = {
-      name = "read-pkg-up";
-      packageName = "read-pkg-up";
-      version = "7.0.1";
+      version = "17.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz";
-        sha512 = "zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==";
+        url = "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz";
+        sha512 = "w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==";
       };
     };
     "readable-stream-2.3.7" = {
@@ -5971,31 +5359,13 @@ let
         sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
       };
     };
-    "readdirp-2.2.1" = {
+    "readdirp-3.6.0" = {
       name = "readdirp";
       packageName = "readdirp";
-      version = "2.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz";
-        sha512 = "1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==";
-      };
-    };
-    "readdirp-3.5.0" = {
-      name = "readdirp";
-      packageName = "readdirp";
-      version = "3.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz";
-        sha512 = "cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==";
-      };
-    };
-    "rechoir-0.6.2" = {
-      name = "rechoir";
-      packageName = "rechoir";
-      version = "0.6.2";
+      version = "3.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz";
-        sha1 = "85204b54dba82d5742e28c96756ef43af50e3384";
+        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz";
+        sha512 = "hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==";
       };
     };
     "regenerate-1.4.2" = {
@@ -6007,22 +5377,22 @@ let
         sha512 = "zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==";
       };
     };
-    "regenerate-unicode-properties-8.2.0" = {
+    "regenerate-unicode-properties-9.0.0" = {
       name = "regenerate-unicode-properties";
       packageName = "regenerate-unicode-properties";
-      version = "8.2.0";
+      version = "9.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz";
-        sha512 = "F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==";
+        url = "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz";
+        sha512 = "3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==";
       };
     };
-    "regenerator-runtime-0.13.7" = {
+    "regenerator-runtime-0.13.9" = {
       name = "regenerator-runtime";
       packageName = "regenerator-runtime";
-      version = "0.13.7";
+      version = "0.13.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz";
-        sha512 = "a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==";
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz";
+        sha512 = "p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==";
       };
     };
     "regenerator-transform-0.14.5" = {
@@ -6034,31 +5404,22 @@ let
         sha512 = "eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==";
       };
     };
-    "regex-not-1.0.2" = {
-      name = "regex-not";
-      packageName = "regex-not";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz";
-        sha512 = "J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==";
-      };
-    };
-    "regexpp-3.1.0" = {
+    "regexpp-3.2.0" = {
       name = "regexpp";
       packageName = "regexpp";
-      version = "3.1.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz";
-        sha512 = "ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==";
+        url = "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz";
+        sha512 = "pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==";
       };
     };
-    "regexpu-core-4.7.1" = {
+    "regexpu-core-4.8.0" = {
       name = "regexpu-core";
       packageName = "regexpu-core";
-      version = "4.7.1";
+      version = "4.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz";
-        sha512 = "ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==";
+        url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz";
+        sha512 = "1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==";
       };
     };
     "regjsgen-0.5.2" = {
@@ -6070,13 +5431,13 @@ let
         sha512 = "OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==";
       };
     };
-    "regjsparser-0.6.4" = {
+    "regjsparser-0.7.0" = {
       name = "regjsparser";
       packageName = "regjsparser";
-      version = "0.6.4";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz";
-        sha512 = "64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==";
+        url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz";
+        sha512 = "A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==";
       };
     };
     "reinterval-1.1.0" = {
@@ -6088,60 +5449,6 @@ let
         sha1 = "3361ecfa3ca6c18283380dd0bb9546f390f5ece7";
       };
     };
-    "remove-trailing-separator-1.1.0" = {
-      name = "remove-trailing-separator";
-      packageName = "remove-trailing-separator";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
-        sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
-      };
-    };
-    "repeat-element-1.1.3" = {
-      name = "repeat-element";
-      packageName = "repeat-element";
-      version = "1.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz";
-        sha512 = "ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==";
-      };
-    };
-    "repeat-string-1.6.1" = {
-      name = "repeat-string";
-      packageName = "repeat-string";
-      version = "1.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz";
-        sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
-      };
-    };
-    "request-2.88.2" = {
-      name = "request";
-      packageName = "request";
-      version = "2.88.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz";
-        sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==";
-      };
-    };
-    "request-promise-core-1.1.4" = {
-      name = "request-promise-core";
-      packageName = "request-promise-core";
-      version = "1.1.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz";
-        sha512 = "TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==";
-      };
-    };
-    "request-promise-native-1.0.9" = {
-      name = "request-promise-native";
-      packageName = "request-promise-native";
-      version = "1.0.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz";
-        sha512 = "wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==";
-      };
-    };
     "require-directory-2.1.1" = {
       name = "require-directory";
       packageName = "require-directory";
@@ -6151,22 +5458,22 @@ let
         sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
       };
     };
-    "require-main-filename-2.0.0" = {
-      name = "require-main-filename";
-      packageName = "require-main-filename";
-      version = "2.0.0";
+    "require-from-string-2.0.2" = {
+      name = "require-from-string";
+      packageName = "require-from-string";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz";
-        sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
+        url = "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz";
+        sha512 = "Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==";
       };
     };
-    "resolve-1.19.0" = {
+    "resolve-1.20.0" = {
       name = "resolve";
       packageName = "resolve";
-      version = "1.19.0";
+      version = "1.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz";
-        sha512 = "rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==";
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz";
+        sha512 = "wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==";
       };
     };
     "resolve-cwd-3.0.0" = {
@@ -6196,22 +5503,13 @@ let
         sha512 = "qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==";
       };
     };
-    "resolve-url-0.2.1" = {
-      name = "resolve-url";
-      packageName = "resolve-url";
-      version = "0.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz";
-        sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
-      };
-    };
-    "ret-0.1.15" = {
-      name = "ret";
-      packageName = "ret";
-      version = "0.1.15";
+    "resolve.exports-1.1.0" = {
+      name = "resolve.exports";
+      packageName = "resolve.exports";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz";
-        sha512 = "TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==";
+        url = "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz";
+        sha512 = "J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==";
       };
     };
     "reusify-1.0.4" = {
@@ -6223,15 +5521,6 @@ let
         sha512 = "U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==";
       };
     };
-    "rimraf-2.6.3" = {
-      name = "rimraf";
-      packageName = "rimraf";
-      version = "2.6.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz";
-        sha512 = "mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==";
-      };
-    };
     "rimraf-3.0.2" = {
       name = "rimraf";
       packageName = "rimraf";
@@ -6241,22 +5530,13 @@ let
         sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
       };
     };
-    "rsvp-4.8.5" = {
-      name = "rsvp";
-      packageName = "rsvp";
-      version = "4.8.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz";
-        sha512 = "nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==";
-      };
-    };
-    "run-parallel-1.1.10" = {
+    "run-parallel-1.2.0" = {
       name = "run-parallel";
       packageName = "run-parallel";
-      version = "1.1.10";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz";
-        sha512 = "zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==";
+        url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz";
+        sha512 = "5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==";
       };
     };
     "safe-buffer-5.1.2" = {
@@ -6277,13 +5557,13 @@ let
         sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
       };
     };
-    "safe-regex-1.1.0" = {
-      name = "safe-regex";
-      packageName = "safe-regex";
-      version = "1.1.0";
+    "safe-stable-stringify-1.1.1" = {
+      name = "safe-stable-stringify";
+      packageName = "safe-stable-stringify";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz";
-        sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+        url = "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz";
+        sha512 = "ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw==";
       };
     };
     "safer-buffer-2.1.2" = {
@@ -6295,15 +5575,6 @@ let
         sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
       };
     };
-    "sane-4.1.0" = {
-      name = "sane";
-      packageName = "sane";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz";
-        sha512 = "hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==";
-      };
-    };
     "saxes-5.0.1" = {
       name = "saxes";
       packageName = "saxes";
@@ -6340,13 +5611,13 @@ let
         sha512 = "+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==";
       };
     };
-    "semver-7.3.2" = {
+    "semver-7.3.5" = {
       name = "semver";
       packageName = "semver";
-      version = "7.3.2";
+      version = "7.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz";
-        sha512 = "OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==";
+        url = "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz";
+        sha512 = "PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==";
       };
     };
     "send-0.17.1" = {
@@ -6358,13 +5629,13 @@ let
         sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
       };
     };
-    "serialport-9.0.2" = {
+    "serialport-9.2.8" = {
       name = "serialport";
       packageName = "serialport";
-      version = "9.0.2";
+      version = "9.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/serialport/-/serialport-9.0.2.tgz";
-        sha512 = "N++EVrc2F3kUJ6aCE6BLxHwTrelFAZM3LFw4lo8TV0fDtfrwTc3+aoDpSsvfQg3DxrRf3shCtA6WYEH4g8kapw==";
+        url = "https://registry.npmjs.org/serialport/-/serialport-9.2.8.tgz";
+        sha512 = "FsWpMQgSJxi93JgWl5xM1f9/Z8IjRJuaUEoHqLf8FPBLw7gMhInuHOBhI2onQufWIYPGTz3H3oGcu1nCaK1EfA==";
       };
     };
     "serve-static-1.14.1" = {
@@ -6385,15 +5656,6 @@ let
         sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
       };
     };
-    "set-value-2.0.1" = {
-      name = "set-value";
-      packageName = "set-value";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz";
-        sha512 = "JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==";
-      };
-    };
     "setprototypeof-1.1.1" = {
       name = "setprototypeof";
       packageName = "setprototypeof";
@@ -6403,15 +5665,6 @@ let
         sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
       };
     };
-    "shebang-command-1.2.0" = {
-      name = "shebang-command";
-      packageName = "shebang-command";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz";
-        sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
-      };
-    };
     "shebang-command-2.0.0" = {
       name = "shebang-command";
       packageName = "shebang-command";
@@ -6421,15 +5674,6 @@ let
         sha512 = "kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==";
       };
     };
-    "shebang-regex-1.0.0" = {
-      name = "shebang-regex";
-      packageName = "shebang-regex";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz";
-        sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
-      };
-    };
     "shebang-regex-3.0.0" = {
       name = "shebang-regex";
       packageName = "shebang-regex";
@@ -6439,31 +5683,22 @@ let
         sha512 = "7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==";
       };
     };
-    "shelljs-0.8.4" = {
-      name = "shelljs";
-      packageName = "shelljs";
-      version = "0.8.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz";
-        sha512 = "7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==";
-      };
-    };
-    "shellwords-0.1.1" = {
-      name = "shellwords";
-      packageName = "shellwords";
-      version = "0.1.1";
+    "shiki-0.9.13" = {
+      name = "shiki";
+      packageName = "shiki";
+      version = "0.9.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz";
-        sha512 = "vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==";
+        url = "https://registry.npmjs.org/shiki/-/shiki-0.9.13.tgz";
+        sha512 = "WATIHzLg91SpTj6mLq5i/0NJ94/Rg1t3n9ylC8vgiJ2f5LVandqBi2vS/410SnEd6sNgPdrHLmdcCHML27pTMg==";
       };
     };
-    "signal-exit-3.0.3" = {
+    "signal-exit-3.0.6" = {
       name = "signal-exit";
       packageName = "signal-exit";
-      version = "3.0.3";
+      version = "3.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz";
-        sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==";
+        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz";
+        sha512 = "sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==";
       };
     };
     "simple-concat-1.0.1" = {
@@ -6475,13 +5710,13 @@ let
         sha512 = "cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==";
       };
     };
-    "simple-get-3.1.0" = {
+    "simple-get-4.0.0" = {
       name = "simple-get";
       packageName = "simple-get";
-      version = "3.1.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz";
-        sha512 = "bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==";
+        url = "https://registry.npmjs.org/simple-get/-/simple-get-4.0.0.tgz";
+        sha512 = "ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ==";
       };
     };
     "simple-swizzle-0.2.2" = {
@@ -6520,15 +5755,6 @@ let
         sha512 = "g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==";
       };
     };
-    "slice-ansi-2.1.0" = {
-      name = "slice-ansi";
-      packageName = "slice-ansi";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz";
-        sha512 = "Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==";
-      };
-    };
     "slip-1.0.2" = {
       name = "slip";
       packageName = "slip";
@@ -6538,33 +5764,6 @@ let
         sha1 = "ba45a923034d6cf41b1a27aebe7128282c8d551f";
       };
     };
-    "snapdragon-0.8.2" = {
-      name = "snapdragon";
-      packageName = "snapdragon";
-      version = "0.8.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz";
-        sha512 = "FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==";
-      };
-    };
-    "snapdragon-node-2.1.1" = {
-      name = "snapdragon-node";
-      packageName = "snapdragon-node";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
-        sha512 = "O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==";
-      };
-    };
-    "snapdragon-util-3.0.1" = {
-      name = "snapdragon-util";
-      packageName = "snapdragon-util";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
-        sha512 = "mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==";
-      };
-    };
     "source-map-0.5.7" = {
       name = "source-map";
       packageName = "source-map";
@@ -6592,76 +5791,13 @@ let
         sha512 = "CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==";
       };
     };
-    "source-map-resolve-0.5.3" = {
-      name = "source-map-resolve";
-      packageName = "source-map-resolve";
-      version = "0.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
-        sha512 = "Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==";
-      };
-    };
-    "source-map-support-0.5.19" = {
+    "source-map-support-0.5.21" = {
       name = "source-map-support";
       packageName = "source-map-support";
-      version = "0.5.19";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz";
-        sha512 = "Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==";
-      };
-    };
-    "source-map-url-0.4.0" = {
-      name = "source-map-url";
-      packageName = "source-map-url";
-      version = "0.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz";
-        sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
-      };
-    };
-    "spdx-correct-3.1.1" = {
-      name = "spdx-correct";
-      packageName = "spdx-correct";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz";
-        sha512 = "cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==";
-      };
-    };
-    "spdx-exceptions-2.3.0" = {
-      name = "spdx-exceptions";
-      packageName = "spdx-exceptions";
-      version = "2.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz";
-        sha512 = "/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==";
-      };
-    };
-    "spdx-expression-parse-3.0.1" = {
-      name = "spdx-expression-parse";
-      packageName = "spdx-expression-parse";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz";
-        sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==";
-      };
-    };
-    "spdx-license-ids-3.0.6" = {
-      name = "spdx-license-ids";
-      packageName = "spdx-license-ids";
-      version = "3.0.6";
+      version = "0.5.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz";
-        sha512 = "+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==";
-      };
-    };
-    "split-string-3.1.0" = {
-      name = "split-string";
-      packageName = "split-string";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz";
-        sha512 = "NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==";
+        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz";
+        sha512 = "uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==";
       };
     };
     "split2-3.2.2" = {
@@ -6682,15 +5818,6 @@ let
         sha1 = "04e6926f662895354f3dd015203633b857297e2c";
       };
     };
-    "sshpk-1.16.1" = {
-      name = "sshpk";
-      packageName = "sshpk";
-      version = "1.16.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz";
-        sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==";
-      };
-    };
     "stack-trace-0.0.10" = {
       name = "stack-trace";
       packageName = "stack-trace";
@@ -6700,22 +5827,13 @@ let
         sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0";
       };
     };
-    "stack-utils-2.0.3" = {
+    "stack-utils-2.0.5" = {
       name = "stack-utils";
       packageName = "stack-utils";
-      version = "2.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz";
-        sha512 = "gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==";
-      };
-    };
-    "static-extend-0.1.2" = {
-      name = "static-extend";
-      packageName = "static-extend";
-      version = "0.1.2";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz";
-        sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+        url = "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz";
+        sha512 = "xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==";
       };
     };
     "statuses-1.5.0" = {
@@ -6727,15 +5845,6 @@ let
         sha1 = "161c7dac177659fd9811f43771fa99381478628c";
       };
     };
-    "stealthy-require-1.1.1" = {
-      name = "stealthy-require";
-      packageName = "stealthy-require";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz";
-        sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b";
-      };
-    };
     "stream-shift-1.0.1" = {
       name = "stream-shift";
       packageName = "stream-shift";
@@ -6745,13 +5854,13 @@ let
         sha512 = "AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==";
       };
     };
-    "string-length-4.0.1" = {
+    "string-length-4.0.2" = {
       name = "string-length";
       packageName = "string-length";
-      version = "4.0.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz";
-        sha512 = "PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==";
+        url = "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz";
+        sha512 = "+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==";
       };
     };
     "string-width-1.0.2" = {
@@ -6763,22 +5872,13 @@ let
         sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
       };
     };
-    "string-width-3.1.0" = {
-      name = "string-width";
-      packageName = "string-width";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz";
-        sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
-      };
-    };
-    "string-width-4.2.0" = {
+    "string-width-4.2.3" = {
       name = "string-width";
       packageName = "string-width";
-      version = "4.2.0";
+      version = "4.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz";
-        sha512 = "zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==";
+        url = "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz";
+        sha512 = "wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==";
       };
     };
     "string_decoder-1.1.1" = {
@@ -6808,22 +5908,13 @@ let
         sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
       };
     };
-    "strip-ansi-5.2.0" = {
+    "strip-ansi-6.0.1" = {
       name = "strip-ansi";
       packageName = "strip-ansi";
-      version = "5.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz";
-        sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
-      };
-    };
-    "strip-ansi-6.0.0" = {
-      name = "strip-ansi";
-      packageName = "strip-ansi";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz";
-        sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz";
+        sha512 = "Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==";
       };
     };
     "strip-bom-4.0.0" = {
@@ -6835,15 +5926,6 @@ let
         sha512 = "3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==";
       };
     };
-    "strip-eof-1.0.0" = {
-      name = "strip-eof";
-      packageName = "strip-eof";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz";
-        sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
-      };
-    };
     "strip-final-newline-2.0.0" = {
       name = "strip-final-newline";
       packageName = "strip-final-newline";
@@ -6889,13 +5971,22 @@ let
         sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
       };
     };
-    "supports-hyperlinks-2.1.0" = {
+    "supports-color-8.1.1" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "8.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz";
+        sha512 = "MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==";
+      };
+    };
+    "supports-hyperlinks-2.2.0" = {
       name = "supports-hyperlinks";
       packageName = "supports-hyperlinks";
-      version = "2.1.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz";
-        sha512 = "zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==";
+        url = "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz";
+        sha512 = "6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==";
       };
     };
     "symbol-tree-3.2.4" = {
@@ -6907,15 +5998,6 @@ let
         sha512 = "9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==";
       };
     };
-    "table-5.4.6" = {
-      name = "table";
-      packageName = "table";
-      version = "5.4.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/table/-/table-5.4.6.tgz";
-        sha512 = "wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==";
-      };
-    };
     "tar-fs-2.1.1" = {
       name = "tar-fs";
       packageName = "tar-fs";
@@ -6925,13 +6007,13 @@ let
         sha512 = "V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==";
       };
     };
-    "tar-stream-2.1.4" = {
+    "tar-stream-2.2.0" = {
       name = "tar-stream";
       packageName = "tar-stream";
-      version = "2.1.4";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz";
-        sha512 = "o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==";
+        url = "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz";
+        sha512 = "ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==";
       };
     };
     "terminal-link-2.1.1" = {
@@ -6970,49 +6052,49 @@ let
         sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
       };
     };
-    "throat-5.0.0" = {
-      name = "throat";
-      packageName = "throat";
-      version = "5.0.0";
+    "thenify-3.3.1" = {
+      name = "thenify";
+      packageName = "thenify";
+      version = "3.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz";
-        sha512 = "fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==";
+        url = "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz";
+        sha512 = "RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==";
       };
     };
-    "through2-2.0.5" = {
-      name = "through2";
-      packageName = "through2";
-      version = "2.0.5";
+    "thenify-all-1.6.0" = {
+      name = "thenify-all";
+      packageName = "thenify-all";
+      version = "1.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz";
-        sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==";
+        url = "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz";
+        sha1 = "1a1918d402d8fc3f98fbf234db0bcc8cc10e9726";
       };
     };
-    "through2-filter-3.0.0" = {
-      name = "through2-filter";
-      packageName = "through2-filter";
-      version = "3.0.0";
+    "throat-6.0.1" = {
+      name = "throat";
+      packageName = "throat";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz";
-        sha512 = "jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==";
+        url = "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz";
+        sha512 = "8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==";
       };
     };
-    "tmpl-1.0.4" = {
-      name = "tmpl";
-      packageName = "tmpl";
-      version = "1.0.4";
+    "tmp-0.2.1" = {
+      name = "tmp";
+      packageName = "tmp";
+      version = "0.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz";
-        sha1 = "23640dd7b42d00433911140820e5cf440e521dd1";
+        url = "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz";
+        sha512 = "76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==";
       };
     };
-    "to-absolute-glob-2.0.2" = {
-      name = "to-absolute-glob";
-      packageName = "to-absolute-glob";
-      version = "2.0.2";
+    "tmpl-1.0.5" = {
+      name = "tmpl";
+      packageName = "tmpl";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz";
-        sha1 = "1865f43d9e74b0822db9f145b78cff7d0f7c849b";
+        url = "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz";
+        sha512 = "3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==";
       };
     };
     "to-fast-properties-2.0.0" = {
@@ -7024,33 +6106,6 @@ let
         sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
       };
     };
-    "to-object-path-0.3.0" = {
-      name = "to-object-path";
-      packageName = "to-object-path";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz";
-        sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
-      };
-    };
-    "to-regex-3.0.2" = {
-      name = "to-regex";
-      packageName = "to-regex";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz";
-        sha512 = "FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==";
-      };
-    };
-    "to-regex-range-2.1.1" = {
-      name = "to-regex-range";
-      packageName = "to-regex-range";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz";
-        sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
-      };
-    };
     "to-regex-range-5.0.1" = {
       name = "to-regex-range";
       packageName = "to-regex-range";
@@ -7069,31 +6124,31 @@ let
         sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
       };
     };
-    "tough-cookie-2.5.0" = {
+    "tough-cookie-4.0.0" = {
       name = "tough-cookie";
       packageName = "tough-cookie";
-      version = "2.5.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz";
-        sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==";
+        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz";
+        sha512 = "tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==";
       };
     };
-    "tough-cookie-3.0.1" = {
-      name = "tough-cookie";
-      packageName = "tough-cookie";
-      version = "3.0.1";
+    "tr46-2.1.0" = {
+      name = "tr46";
+      packageName = "tr46";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz";
-        sha512 = "yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==";
+        url = "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz";
+        sha512 = "15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==";
       };
     };
-    "tr46-2.0.2" = {
-      name = "tr46";
-      packageName = "tr46";
-      version = "2.0.2";
+    "traverse-chain-0.1.0" = {
+      name = "traverse-chain";
+      packageName = "traverse-chain";
+      version = "0.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz";
-        sha512 = "3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==";
+        url = "https://registry.npmjs.org/traverse-chain/-/traverse-chain-0.1.0.tgz";
+        sha1 = "61dbc2d53b69ff6091a12a168fd7d433107e40f1";
       };
     };
     "triple-beam-1.3.0" = {
@@ -7114,13 +6169,13 @@ let
         sha512 = "Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==";
       };
     };
-    "tsutils-3.17.1" = {
+    "tsutils-3.21.0" = {
       name = "tsutils";
       packageName = "tsutils";
-      version = "3.17.1";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz";
-        sha512 = "kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==";
+        url = "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz";
+        sha512 = "mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==";
       };
     };
     "tunnel-agent-0.6.0" = {
@@ -7132,33 +6187,6 @@ let
         sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
       };
     };
-    "tweetnacl-0.14.5" = {
-      name = "tweetnacl";
-      packageName = "tweetnacl";
-      version = "0.14.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz";
-        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
-      };
-    };
-    "type-1.2.0" = {
-      name = "type";
-      packageName = "type";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type/-/type-1.2.0.tgz";
-        sha512 = "+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==";
-      };
-    };
-    "type-2.1.0" = {
-      name = "type";
-      packageName = "type";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type/-/type-2.1.0.tgz";
-        sha512 = "G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==";
-      };
-    };
     "type-check-0.3.2" = {
       name = "type-check";
       packageName = "type-check";
@@ -7186,31 +6214,22 @@ let
         sha512 = "0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==";
       };
     };
-    "type-fest-0.11.0" = {
+    "type-fest-0.20.2" = {
       name = "type-fest";
       packageName = "type-fest";
-      version = "0.11.0";
+      version = "0.20.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz";
-        sha512 = "OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==";
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz";
+        sha512 = "Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==";
       };
     };
-    "type-fest-0.6.0" = {
+    "type-fest-0.21.3" = {
       name = "type-fest";
       packageName = "type-fest";
-      version = "0.6.0";
+      version = "0.21.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz";
-        sha512 = "q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==";
-      };
-    };
-    "type-fest-0.8.1" = {
-      name = "type-fest";
-      packageName = "type-fest";
-      version = "0.8.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz";
-        sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==";
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz";
+        sha512 = "t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==";
       };
     };
     "typedarray-0.0.6" = {
@@ -7231,40 +6250,31 @@ let
         sha512 = "zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==";
       };
     };
-    "typedoc-0.19.2" = {
+    "typedoc-0.22.10" = {
       name = "typedoc";
       packageName = "typedoc";
-      version = "0.19.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/typedoc/-/typedoc-0.19.2.tgz";
-        sha512 = "oDEg1BLEzi1qvgdQXc658EYgJ5qJLVSeZ0hQ57Eq4JXy6Vj2VX4RVo18qYxRWz75ifAaYuYNBUCnbhjd37TfOg==";
-      };
-    };
-    "typedoc-default-themes-0.11.4" = {
-      name = "typedoc-default-themes";
-      packageName = "typedoc-default-themes";
-      version = "0.11.4";
+      version = "0.22.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.11.4.tgz";
-        sha512 = "Y4Lf+qIb9NTydrexlazAM46SSLrmrQRqWiD52593g53SsmUFioAsMWt8m834J6qsp+7wHRjxCXSZeiiW5cMUdw==";
+        url = "https://registry.npmjs.org/typedoc/-/typedoc-0.22.10.tgz";
+        sha512 = "hQYZ4WtoMZ61wDC6w10kxA42+jclWngdmztNZsDvIz7BMJg7F2xnT+uYsUa7OluyKossdFj9E9Ye4QOZKTy8SA==";
       };
     };
-    "typedoc-plugin-markdown-3.0.11" = {
+    "typedoc-plugin-markdown-3.11.7" = {
       name = "typedoc-plugin-markdown";
       packageName = "typedoc-plugin-markdown";
-      version = "3.0.11";
+      version = "3.11.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.0.11.tgz";
-        sha512 = "/BE/PqnIVbQJ525czM+T3CVaA1gVN9X1Le100z8TV/Lze8LZVkuAUiHRIgw9BKYFm9IQaB88W55k4EV6uUVwYQ==";
+        url = "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.11.7.tgz";
+        sha512 = "Wm3HP5gcBOGOOTeDA8GLgw+BY+GAI31RP9Lyog21BvTaSeWUcdXls5TG1MK+XDatS2/0dup9gFO+emoyoQJm9Q==";
       };
     };
-    "typedoc-plugin-no-inherit-1.2.0" = {
+    "typedoc-plugin-no-inherit-1.3.1" = {
       name = "typedoc-plugin-no-inherit";
       packageName = "typedoc-plugin-no-inherit";
-      version = "1.2.0";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typedoc-plugin-no-inherit/-/typedoc-plugin-no-inherit-1.2.0.tgz";
-        sha512 = "jAAslwDbm5sVpA6EQIg5twYctRi/bnT9TgZ5SwbrNpCD5xCIIylPRX9KxIoi1RJliVgCIAxWbSUzzLKGwJCkeA==";
+        url = "https://registry.npmjs.org/typedoc-plugin-no-inherit/-/typedoc-plugin-no-inherit-1.3.1.tgz";
+        sha512 = "3fdPHRaIcCVV1W5gJYpZTdZL+F2VZTlUMd3Hw9xIv931ILh18CcD8IfxZtTtOijJRuKbgRLJ+J/+hVlgCbq1RQ==";
       };
     };
     "typedoc-plugin-sourcefile-url-1.0.6" = {
@@ -7276,103 +6286,67 @@ let
         sha512 = "xHq9DzkoQywS7FyPneMm2/Hr9GRoCpjSQXkVN0W6SCJKP7fguqg2tasgh+8l5/mW6YSYvqCqEbkSYLbuD4Y6gA==";
       };
     };
-    "typescript-4.0.5" = {
+    "typescript-4.5.2" = {
       name = "typescript";
       packageName = "typescript";
-      version = "4.0.5";
+      version = "4.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz";
-        sha512 = "ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz";
+        sha512 = "5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw==";
       };
     };
-    "uglify-js-3.11.6" = {
+    "uglify-js-3.14.3" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.11.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.6.tgz";
-        sha512 = "oASI1FOJ7BBFkSCNDZ446EgkSuHkOZBuqRFrwXIKWCoXw8ZXQETooTQjkAcBS03Acab7ubCKsXnwuV2svy061g==";
-      };
-    };
-    "unc-path-regex-0.1.2" = {
-      name = "unc-path-regex";
-      packageName = "unc-path-regex";
-      version = "0.1.2";
+      version = "3.14.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz";
-        sha1 = "e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.3.tgz";
+        sha512 = "mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g==";
       };
     };
-    "unicode-canonical-property-names-ecmascript-1.0.4" = {
+    "unicode-canonical-property-names-ecmascript-2.0.0" = {
       name = "unicode-canonical-property-names-ecmascript";
       packageName = "unicode-canonical-property-names-ecmascript";
-      version = "1.0.4";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz";
-        sha512 = "jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==";
+        url = "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz";
+        sha512 = "yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==";
       };
     };
-    "unicode-match-property-ecmascript-1.0.4" = {
+    "unicode-match-property-ecmascript-2.0.0" = {
       name = "unicode-match-property-ecmascript";
       packageName = "unicode-match-property-ecmascript";
-      version = "1.0.4";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz";
-        sha512 = "L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==";
+        url = "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz";
+        sha512 = "5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==";
       };
     };
-    "unicode-match-property-value-ecmascript-1.2.0" = {
+    "unicode-match-property-value-ecmascript-2.0.0" = {
       name = "unicode-match-property-value-ecmascript";
       packageName = "unicode-match-property-value-ecmascript";
-      version = "1.2.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz";
-        sha512 = "wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==";
+        url = "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz";
+        sha512 = "7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==";
       };
     };
-    "unicode-property-aliases-ecmascript-1.1.0" = {
+    "unicode-property-aliases-ecmascript-2.0.0" = {
       name = "unicode-property-aliases-ecmascript";
       packageName = "unicode-property-aliases-ecmascript";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz";
-        sha512 = "PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==";
-      };
-    };
-    "union-value-1.0.1" = {
-      name = "union-value";
-      packageName = "union-value";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz";
-        sha512 = "tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==";
-      };
-    };
-    "unique-stream-2.3.1" = {
-      name = "unique-stream";
-      packageName = "unique-stream";
-      version = "2.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz";
-        sha512 = "2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==";
-      };
-    };
-    "universalify-1.0.0" = {
-      name = "universalify";
-      packageName = "universalify";
-      version = "1.0.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz";
-        sha512 = "rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==";
+        url = "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz";
+        sha512 = "5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==";
       };
     };
-    "universalify-2.0.0" = {
+    "universalify-0.1.2" = {
       name = "universalify";
       packageName = "universalify";
-      version = "2.0.0";
+      version = "0.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz";
-        sha512 = "hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==";
+        url = "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz";
+        sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==";
       };
     };
     "unix-dgram-2.0.3" = {
@@ -7393,49 +6367,13 @@ let
         sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
       };
     };
-    "unset-value-1.0.0" = {
-      name = "unset-value";
-      packageName = "unset-value";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz";
-        sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
-      };
-    };
-    "upath-1.2.0" = {
-      name = "upath";
-      packageName = "upath";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz";
-        sha512 = "aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==";
-      };
-    };
-    "uri-js-4.4.0" = {
+    "uri-js-4.4.1" = {
       name = "uri-js";
       packageName = "uri-js";
-      version = "4.4.0";
+      version = "4.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz";
-        sha512 = "B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==";
-      };
-    };
-    "urix-0.1.0" = {
-      name = "urix";
-      packageName = "urix";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz";
-        sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
-      };
-    };
-    "use-3.1.1" = {
-      name = "use";
-      packageName = "use";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/use/-/use-3.1.1.tgz";
-        sha512 = "cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==";
+        url = "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz";
+        sha512 = "7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==";
       };
     };
     "util-deprecate-1.0.2" = {
@@ -7447,58 +6385,40 @@ let
         sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
       };
     };
-    "uuid-3.4.0" = {
-      name = "uuid";
-      packageName = "uuid";
-      version = "3.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
-        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
-      };
-    };
-    "uuid-8.3.1" = {
-      name = "uuid";
-      packageName = "uuid";
-      version = "8.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz";
-        sha512 = "FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==";
-      };
-    };
-    "v8-compile-cache-2.2.0" = {
+    "v8-compile-cache-2.3.0" = {
       name = "v8-compile-cache";
       packageName = "v8-compile-cache";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz";
-        sha512 = "gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==";
+        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz";
+        sha512 = "l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==";
       };
     };
-    "v8-to-istanbul-7.0.0" = {
+    "v8-to-istanbul-8.1.0" = {
       name = "v8-to-istanbul";
       packageName = "v8-to-istanbul";
-      version = "7.0.0";
+      version = "8.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.0.0.tgz";
-        sha512 = "fLL2rFuQpMtm9r8hrAV2apXX/WqHJ6+IC4/eQVdMDGBUgH/YMV4Gv3duk3kjmyg6uiQWBAA9nJwue4iJUOkHeA==";
+        url = "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz";
+        sha512 = "/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==";
       };
     };
-    "validate-npm-package-license-3.0.4" = {
-      name = "validate-npm-package-license";
-      packageName = "validate-npm-package-license";
-      version = "3.0.4";
+    "vscode-oniguruma-1.6.1" = {
+      name = "vscode-oniguruma";
+      packageName = "vscode-oniguruma";
+      version = "1.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
-        sha512 = "DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==";
+        url = "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.1.tgz";
+        sha512 = "vc4WhSIaVpgJ0jJIejjYxPvURJavX6QG41vu0mGhqywMkQqulezEqEQ3cO3gc8GvcOpX6ycmKGqRoROEMBNXTQ==";
       };
     };
-    "verror-1.10.0" = {
-      name = "verror";
-      packageName = "verror";
-      version = "1.10.0";
+    "vscode-textmate-5.2.0" = {
+      name = "vscode-textmate";
+      packageName = "vscode-textmate";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz";
-        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+        url = "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz";
+        sha512 = "Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==";
       };
     };
     "w3c-hr-time-1.0.2" = {
@@ -7519,13 +6439,13 @@ let
         sha512 = "4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==";
       };
     };
-    "walker-1.0.7" = {
+    "walker-1.0.8" = {
       name = "walker";
       packageName = "walker";
-      version = "1.0.7";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz";
-        sha1 = "2f7f9b8fd10d677262b18a884e28d19618e028fb";
+        url = "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz";
+        sha512 = "ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==";
       };
     };
     "webidl-conversions-5.0.0" = {
@@ -7564,22 +6484,13 @@ let
         sha512 = "M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==";
       };
     };
-    "whatwg-url-8.4.0" = {
+    "whatwg-url-8.7.0" = {
       name = "whatwg-url";
       packageName = "whatwg-url";
-      version = "8.4.0";
+      version = "8.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz";
-        sha512 = "vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==";
-      };
-    };
-    "which-1.3.1" = {
-      name = "which";
-      packageName = "which";
-      version = "1.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz";
-        sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==";
+        url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz";
+        sha512 = "gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==";
       };
     };
     "which-2.0.2" = {
@@ -7591,31 +6502,13 @@ let
         sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==";
       };
     };
-    "which-module-2.0.0" = {
-      name = "which-module";
-      packageName = "which-module";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz";
-        sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
-      };
-    };
-    "which-pm-runs-1.0.0" = {
-      name = "which-pm-runs";
-      packageName = "which-pm-runs";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz";
-        sha1 = "670b3afbc552e0b55df6b7780ca74615f23ad1cb";
-      };
-    };
-    "wide-align-1.1.3" = {
+    "wide-align-1.1.5" = {
       name = "wide-align";
       packageName = "wide-align";
-      version = "1.1.3";
+      version = "1.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
-        sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
+        url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz";
+        sha512 = "eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==";
       };
     };
     "winston-3.3.3" = {
@@ -7663,13 +6556,13 @@ let
         sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
       };
     };
-    "wrap-ansi-6.2.0" = {
+    "wrap-ansi-7.0.0" = {
       name = "wrap-ansi";
       packageName = "wrap-ansi";
-      version = "6.2.0";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz";
-        sha512 = "r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==";
+        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz";
+        sha512 = "YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==";
       };
     };
     "wrappy-1.0.2" = {
@@ -7681,15 +6574,6 @@ let
         sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
       };
     };
-    "write-1.0.3" = {
-      name = "write";
-      packageName = "write";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/write/-/write-1.0.3.tgz";
-        sha512 = "/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==";
-      };
-    };
     "write-file-atomic-3.0.3" = {
       name = "write-file-atomic";
       packageName = "write-file-atomic";
@@ -7699,13 +6583,22 @@ let
         sha512 = "AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==";
       };
     };
-    "ws-7.4.0" = {
+    "ws-7.5.6" = {
       name = "ws";
       packageName = "ws";
-      version = "7.4.0";
+      version = "7.5.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz";
-        sha512 = "kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==";
+        url = "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz";
+        sha512 = "6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==";
+      };
+    };
+    "ws-8.3.0" = {
+      name = "ws";
+      packageName = "ws";
+      version = "8.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ws/-/ws-8.3.0.tgz";
+        sha512 = "Gs5EZtpqZzLvmIM59w4igITU57lrtYVFneaa434VROv4thzJyV6UjIL3D42lslWlI+D4KzLYnxSwtfuiO79sNw==";
       };
     };
     "xml-name-validator-3.0.0" = {
@@ -7735,205 +6628,944 @@ let
         sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
       };
     };
-    "y18n-4.0.0" = {
+    "y18n-5.0.8" = {
       name = "y18n";
       packageName = "y18n";
+      version = "5.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz";
+        sha512 = "0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==";
+      };
+    };
+    "yallist-4.0.0" = {
+      name = "yallist";
+      packageName = "yallist";
       version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz";
-        sha512 = "r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==";
+        url = "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz";
+        sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
       };
     };
-    "yargs-15.4.1" = {
+    "yargs-16.2.0" = {
       name = "yargs";
       packageName = "yargs";
-      version = "15.4.1";
+      version = "16.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz";
-        sha512 = "aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==";
+        url = "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz";
+        sha512 = "D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==";
       };
     };
-    "yargs-parser-18.1.3" = {
+    "yargs-parser-20.2.9" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
-      version = "18.1.3";
+      version = "20.2.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz";
-        sha512 = "o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==";
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz";
+        sha512 = "y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==";
       };
     };
-    "zigbee-herdsman-0.13.37" = {
+    "zigbee-herdsman-0.13.176" = {
       name = "zigbee-herdsman";
       packageName = "zigbee-herdsman";
-      version = "0.13.37";
+      version = "0.13.176";
       src = fetchurl {
-        url = "https://registry.npmjs.org/zigbee-herdsman/-/zigbee-herdsman-0.13.37.tgz";
-        sha512 = "eK2EK2mqT80ueHvEicKmXGyw+VezoK+7NcHX9WjjeQL6bdOpaLCuDGZY0sOh86Lmodyvdd0ZxY7MwA6z/Ko2PA==";
+        url = "https://registry.npmjs.org/zigbee-herdsman/-/zigbee-herdsman-0.13.176.tgz";
+        sha512 = "gDRj4AEMzE6wmyCR38a06F1hjks7wFUVEqRACZ6c5+8nhHLfR+C06c4nUjN61L9mCDx8pVIV1kuac6mlLbhjkQ==";
       };
     };
-    "zigbee-herdsman-converters-13.0.7" = {
+    "zigbee-herdsman-converters-14.0.336" = {
       name = "zigbee-herdsman-converters";
       packageName = "zigbee-herdsman-converters";
-      version = "13.0.7";
+      version = "14.0.336";
       src = fetchurl {
-        url = "https://registry.npmjs.org/zigbee-herdsman-converters/-/zigbee-herdsman-converters-13.0.7.tgz";
-        sha512 = "aHqcbkQmoSkBth4s94//wJm2UO+0YFQkIndRBbz1XAIdNeHDhUVA6ZT1B1DgJZEbF/HRW8ZZLC+biSF6h/1HvQ==";
+        url = "https://registry.npmjs.org/zigbee-herdsman-converters/-/zigbee-herdsman-converters-14.0.336.tgz";
+        sha512 = "FI11S4AbvOnf/i/S4mtyh9qDFm86fFuYm3p+Gj7e7dH6apnq/iqzXK8mBoXmcYP5UEkUskPtFj2Bqn9JGUS0tw==";
       };
     };
-    "zigbee2mqtt-frontend-0.2.100" = {
+    "zigbee2mqtt-frontend-0.6.46" = {
       name = "zigbee2mqtt-frontend";
       packageName = "zigbee2mqtt-frontend";
-      version = "0.2.100";
+      version = "0.6.46";
       src = fetchurl {
-        url = "https://registry.npmjs.org/zigbee2mqtt-frontend/-/zigbee2mqtt-frontend-0.2.100.tgz";
-        sha512 = "/WASdNtWYAqts8RvC3j6HkdnZifg2KEocGS1eIl1G7Gghoj/80TiF5TVYtU3YG9M40vgMIIMvIwrmc8UOmdJhg==";
+        url = "https://registry.npmjs.org/zigbee2mqtt-frontend/-/zigbee2mqtt-frontend-0.6.46.tgz";
+        sha512 = "YlXFApufmtNNJEsHOfMeSDnjZskMQ33Iij76F4SaeavGPCqifjPy67ACVO4hDQqD7lUGeSeQ+tVAIYpw6p7V5g==";
       };
     };
   };
   args = {
     name = "zigbee2mqtt";
     packageName = "zigbee2mqtt";
-    version = "1.16.2";
+    version = "1.22.1";
     src = ./.;
     dependencies = [
+      sources."@babel/code-frame-7.16.0"
+      sources."@babel/compat-data-7.16.4"
+      (sources."@babel/core-7.16.0" // {
+        dependencies = [
+          sources."debug-4.3.3"
+          sources."ms-2.1.2"
+          sources."semver-6.3.0"
+          sources."source-map-0.5.7"
+        ];
+      })
+      (sources."@babel/generator-7.16.0" // {
+        dependencies = [
+          sources."source-map-0.5.7"
+        ];
+      })
+      sources."@babel/helper-annotate-as-pure-7.16.0"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.0"
+      (sources."@babel/helper-compilation-targets-7.16.3" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@babel/helper-create-class-features-plugin-7.16.0"
+      sources."@babel/helper-create-regexp-features-plugin-7.16.0"
+      (sources."@babel/helper-define-polyfill-provider-0.3.0" // {
+        dependencies = [
+          sources."debug-4.3.3"
+          sources."ms-2.1.2"
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@babel/helper-explode-assignable-expression-7.16.0"
+      sources."@babel/helper-function-name-7.16.0"
+      sources."@babel/helper-get-function-arity-7.16.0"
+      sources."@babel/helper-hoist-variables-7.16.0"
+      sources."@babel/helper-member-expression-to-functions-7.16.0"
+      sources."@babel/helper-module-imports-7.16.0"
+      sources."@babel/helper-module-transforms-7.16.0"
+      sources."@babel/helper-optimise-call-expression-7.16.0"
+      sources."@babel/helper-plugin-utils-7.14.5"
+      sources."@babel/helper-remap-async-to-generator-7.16.4"
+      sources."@babel/helper-replace-supers-7.16.0"
+      sources."@babel/helper-simple-access-7.16.0"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.16.0"
+      sources."@babel/helper-split-export-declaration-7.16.0"
+      sources."@babel/helper-validator-identifier-7.15.7"
+      sources."@babel/helper-validator-option-7.14.5"
+      sources."@babel/helper-wrap-function-7.16.0"
+      sources."@babel/helpers-7.16.3"
+      sources."@babel/highlight-7.16.0"
+      sources."@babel/parser-7.16.4"
+      sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2"
+      sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0"
+      sources."@babel/plugin-proposal-async-generator-functions-7.16.4"
+      sources."@babel/plugin-proposal-class-properties-7.16.0"
+      sources."@babel/plugin-proposal-class-static-block-7.16.0"
+      sources."@babel/plugin-proposal-decorators-7.16.4"
+      sources."@babel/plugin-proposal-dynamic-import-7.16.0"
+      sources."@babel/plugin-proposal-export-namespace-from-7.16.0"
+      sources."@babel/plugin-proposal-json-strings-7.16.0"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.16.0"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.0"
+      sources."@babel/plugin-proposal-numeric-separator-7.16.0"
+      sources."@babel/plugin-proposal-object-rest-spread-7.16.0"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.16.0"
+      sources."@babel/plugin-proposal-optional-chaining-7.16.0"
+      sources."@babel/plugin-proposal-private-methods-7.16.0"
+      sources."@babel/plugin-proposal-private-property-in-object-7.16.0"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.16.0"
+      sources."@babel/plugin-syntax-async-generators-7.8.4"
+      sources."@babel/plugin-syntax-bigint-7.8.3"
+      sources."@babel/plugin-syntax-class-properties-7.12.13"
+      sources."@babel/plugin-syntax-class-static-block-7.14.5"
+      sources."@babel/plugin-syntax-decorators-7.16.0"
+      sources."@babel/plugin-syntax-dynamic-import-7.8.3"
+      sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
+      sources."@babel/plugin-syntax-import-meta-7.10.4"
+      sources."@babel/plugin-syntax-json-strings-7.8.3"
+      sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
+      sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
+      sources."@babel/plugin-syntax-numeric-separator-7.10.4"
+      sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
+      sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
+      sources."@babel/plugin-syntax-optional-chaining-7.8.3"
+      sources."@babel/plugin-syntax-private-property-in-object-7.14.5"
+      sources."@babel/plugin-syntax-top-level-await-7.14.5"
+      sources."@babel/plugin-syntax-typescript-7.16.0"
+      sources."@babel/plugin-transform-arrow-functions-7.16.0"
+      sources."@babel/plugin-transform-async-to-generator-7.16.0"
+      sources."@babel/plugin-transform-block-scoped-functions-7.16.0"
+      sources."@babel/plugin-transform-block-scoping-7.16.0"
+      sources."@babel/plugin-transform-classes-7.16.0"
+      sources."@babel/plugin-transform-computed-properties-7.16.0"
+      sources."@babel/plugin-transform-destructuring-7.16.0"
+      sources."@babel/plugin-transform-dotall-regex-7.16.0"
+      sources."@babel/plugin-transform-duplicate-keys-7.16.0"
+      sources."@babel/plugin-transform-exponentiation-operator-7.16.0"
+      sources."@babel/plugin-transform-for-of-7.16.0"
+      sources."@babel/plugin-transform-function-name-7.16.0"
+      sources."@babel/plugin-transform-literals-7.16.0"
+      sources."@babel/plugin-transform-member-expression-literals-7.16.0"
+      sources."@babel/plugin-transform-modules-amd-7.16.0"
+      sources."@babel/plugin-transform-modules-commonjs-7.16.0"
+      sources."@babel/plugin-transform-modules-systemjs-7.16.0"
+      sources."@babel/plugin-transform-modules-umd-7.16.0"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.0"
+      sources."@babel/plugin-transform-new-target-7.16.0"
+      sources."@babel/plugin-transform-object-super-7.16.0"
+      sources."@babel/plugin-transform-parameters-7.16.3"
+      sources."@babel/plugin-transform-property-literals-7.16.0"
+      sources."@babel/plugin-transform-regenerator-7.16.0"
+      sources."@babel/plugin-transform-reserved-words-7.16.0"
+      sources."@babel/plugin-transform-shorthand-properties-7.16.0"
+      sources."@babel/plugin-transform-spread-7.16.0"
+      sources."@babel/plugin-transform-sticky-regex-7.16.0"
+      sources."@babel/plugin-transform-template-literals-7.16.0"
+      sources."@babel/plugin-transform-typeof-symbol-7.16.0"
+      sources."@babel/plugin-transform-typescript-7.16.1"
+      sources."@babel/plugin-transform-unicode-escapes-7.16.0"
+      sources."@babel/plugin-transform-unicode-regex-7.16.0"
+      (sources."@babel/preset-env-7.16.4" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@babel/preset-modules-0.1.5"
+      sources."@babel/preset-typescript-7.16.0"
+      sources."@babel/runtime-7.16.3"
+      sources."@babel/template-7.16.0"
+      (sources."@babel/traverse-7.16.3" // {
+        dependencies = [
+          sources."debug-4.3.3"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."@babel/types-7.16.0"
+      sources."@bcoe/v8-coverage-0.2.3"
       sources."@dabh/diagnostics-2.0.2"
-      sources."ajv-6.12.6"
-      sources."argparse-1.0.10"
-      sources."async-3.2.0"
-      sources."balanced-match-1.0.0"
-      sources."base64-js-1.5.1"
-      sources."bindings-1.5.0"
-      (sources."bl-4.0.3" // {
+      (sources."@eslint/eslintrc-1.0.4" // {
         dependencies = [
-          sources."readable-stream-3.6.0"
+          sources."ajv-6.12.6"
+          sources."debug-4.3.3"
+          sources."globals-13.12.0"
+          sources."ignore-4.0.6"
+          sources."json-schema-traverse-0.4.1"
+          sources."ms-2.1.2"
+        ];
+      })
+      (sources."@humanwhocodes/config-array-0.6.0" // {
+        dependencies = [
+          sources."debug-4.3.3"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."@humanwhocodes/object-schema-1.2.1"
+      (sources."@istanbuljs/load-nyc-config-1.1.0" // {
+        dependencies = [
+          sources."argparse-1.0.10"
+          sources."js-yaml-3.14.1"
+        ];
+      })
+      sources."@istanbuljs/schema-0.1.3"
+      (sources."@jest/console-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      (sources."@jest/core-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."@jest/environment-27.3.1"
+      sources."@jest/fake-timers-27.3.1"
+      sources."@jest/globals-27.3.1"
+      (sources."@jest/reporters-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."istanbul-lib-instrument-4.0.3"
+          sources."semver-6.3.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."@jest/source-map-27.0.6"
+      sources."@jest/test-result-27.3.1"
+      sources."@jest/test-sequencer-27.3.1"
+      (sources."@jest/transform-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      (sources."@jest/types-27.2.5" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."@nodelib/fs.scandir-2.1.5"
+      sources."@nodelib/fs.stat-2.0.5"
+      sources."@nodelib/fs.walk-1.2.8"
+      sources."@sinonjs/commons-1.8.3"
+      sources."@sinonjs/fake-timers-8.1.0"
+      sources."@tootallnate/once-1.1.2"
+      sources."@types/babel__core-7.1.16"
+      sources."@types/babel__generator-7.6.3"
+      sources."@types/babel__template-7.4.1"
+      sources."@types/babel__traverse-7.14.2"
+      sources."@types/debounce-1.2.1"
+      sources."@types/finalhandler-1.1.1"
+      sources."@types/glob-7.2.0"
+      sources."@types/graceful-fs-4.1.5"
+      sources."@types/humanize-duration-3.27.0"
+      sources."@types/istanbul-lib-coverage-2.0.3"
+      sources."@types/istanbul-lib-report-3.0.0"
+      sources."@types/istanbul-reports-3.0.1"
+      sources."@types/jest-27.0.3"
+      sources."@types/js-yaml-4.0.5"
+      sources."@types/json-schema-7.0.9"
+      sources."@types/minimatch-3.0.5"
+      sources."@types/node-16.11.10"
+      sources."@types/object-assign-deep-0.4.0"
+      sources."@types/prettier-2.4.2"
+      sources."@types/rimraf-3.0.2"
+      sources."@types/stack-utils-2.0.1"
+      sources."@types/ws-8.2.0"
+      sources."@types/yargs-16.0.4"
+      sources."@types/yargs-parser-20.2.1"
+      (sources."@typescript-eslint/eslint-plugin-5.4.0" // {
+        dependencies = [
+          sources."debug-4.3.3"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."@typescript-eslint/experimental-utils-5.4.0"
+      (sources."@typescript-eslint/parser-5.4.0" // {
+        dependencies = [
+          sources."debug-4.3.3"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."@typescript-eslint/scope-manager-5.4.0"
+      sources."@typescript-eslint/types-5.4.0"
+      (sources."@typescript-eslint/typescript-estree-5.4.0" // {
+        dependencies = [
+          sources."debug-4.3.3"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."@typescript-eslint/visitor-keys-5.4.0"
+      sources."abab-2.0.5"
+      sources."acorn-8.6.0"
+      (sources."acorn-globals-6.0.0" // {
+        dependencies = [
+          sources."acorn-7.4.1"
+        ];
+      })
+      sources."acorn-jsx-5.3.2"
+      sources."acorn-walk-7.2.0"
+      (sources."agent-base-6.0.2" // {
+        dependencies = [
+          sources."debug-4.3.3"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."ajv-8.8.2"
+      sources."ansi-colors-4.1.1"
+      (sources."ansi-escapes-4.3.2" // {
+        dependencies = [
+          sources."type-fest-0.21.3"
+        ];
+      })
+      sources."ansi-regex-5.0.1"
+      sources."ansi-styles-3.2.1"
+      sources."anymatch-3.1.2"
+      sources."argparse-2.0.1"
+      sources."array-union-2.1.0"
+      sources."async-3.2.2"
+      sources."asynckit-0.4.0"
+      (sources."babel-jest-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."babel-plugin-dynamic-import-node-2.3.3"
+      sources."babel-plugin-istanbul-6.1.1"
+      sources."babel-plugin-jest-hoist-27.2.0"
+      (sources."babel-plugin-polyfill-corejs2-0.3.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
         ];
       })
+      sources."babel-plugin-polyfill-corejs3-0.4.0"
+      sources."babel-plugin-polyfill-regenerator-0.3.0"
+      sources."babel-preset-current-node-syntax-1.0.1"
+      sources."babel-preset-jest-27.2.0"
+      sources."balanced-match-1.0.2"
+      sources."base64-js-1.5.1"
+      sources."bind-decorator-1.0.11"
+      sources."bindings-1.5.0"
+      sources."bl-4.1.0"
       sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."browser-process-hrtime-1.0.0"
+      sources."browserslist-4.18.1"
+      sources."bser-2.1.1"
       sources."buffer-5.7.1"
-      sources."buffer-from-1.1.1"
-      sources."callback-stream-1.1.0"
-      sources."color-3.0.0"
+      sources."buffer-from-1.1.2"
+      sources."call-bind-1.0.2"
+      sources."callsites-3.1.0"
+      sources."camelcase-5.3.1"
+      sources."caniuse-lite-1.0.30001283"
+      sources."chalk-2.4.2"
+      sources."char-regex-1.0.2"
+      sources."ci-info-3.3.0"
+      sources."cjs-module-lexer-1.2.2"
+      sources."cliui-7.0.4"
+      sources."co-4.6.0"
+      sources."collect-v8-coverage-1.0.1"
+      sources."color-3.2.1"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."color-string-1.5.4"
+      sources."color-string-1.7.4"
       sources."colors-1.4.0"
-      sources."colorspace-1.1.2"
+      sources."colorspace-1.1.4"
+      sources."combined-stream-1.0.8"
       sources."commist-1.1.0"
       sources."concat-map-0.0.1"
-      sources."concat-stream-1.6.2"
-      sources."core-util-is-1.0.2"
-      sources."d-1.0.1"
-      sources."debounce-1.2.0"
+      sources."concat-stream-2.0.0"
+      sources."connect-gzip-static-2.1.1"
+      (sources."convert-source-map-1.8.0" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."core-js-3.19.1"
+      (sources."core-js-compat-3.19.1" // {
+        dependencies = [
+          sources."semver-7.0.0"
+        ];
+      })
+      sources."core-util-is-1.0.3"
+      sources."cross-spawn-7.0.3"
+      sources."cssom-0.4.4"
+      (sources."cssstyle-2.3.0" // {
+        dependencies = [
+          sources."cssom-0.3.8"
+        ];
+      })
+      sources."data-urls-2.0.0"
+      sources."debounce-1.2.1"
       sources."debug-2.6.9"
+      sources."decimal.js-10.3.1"
+      sources."dedent-0.7.0"
+      sources."deep-is-0.1.4"
+      sources."deep-object-diff-1.1.0"
+      sources."deepmerge-4.2.2"
+      sources."define-properties-1.1.3"
+      sources."delayed-stream-1.0.0"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."duplexify-3.7.1"
+      sources."detect-newline-3.1.0"
+      sources."diff-sequences-27.0.6"
+      sources."dir-glob-3.0.1"
+      sources."doctrine-3.0.0"
+      (sources."domexception-2.0.1" // {
+        dependencies = [
+          sources."webidl-conversions-5.0.0"
+        ];
+      })
+      sources."duplexify-4.1.2"
       sources."ee-first-1.1.1"
+      sources."electron-to-chromium-1.4.4"
+      sources."emittery-0.8.1"
+      sources."emoji-regex-8.0.0"
       sources."enabled-2.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      sources."es5-ext-0.10.53"
-      sources."es6-iterator-2.0.3"
-      sources."es6-map-0.1.5"
-      (sources."es6-set-0.1.5" // {
+      sources."enquirer-2.3.6"
+      sources."escalade-3.1.1"
+      sources."escape-html-1.0.3"
+      sources."escape-string-regexp-1.0.5"
+      (sources."escodegen-2.0.0" // {
         dependencies = [
-          sources."es6-symbol-3.1.1"
+          sources."estraverse-5.3.0"
+          sources."levn-0.3.0"
+          sources."optionator-0.8.3"
+          sources."prelude-ls-1.1.2"
+          sources."type-check-0.3.2"
         ];
       })
-      sources."es6-symbol-3.1.3"
-      sources."escape-html-1.0.3"
+      (sources."eslint-8.3.0" // {
+        dependencies = [
+          sources."ajv-6.12.6"
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."debug-4.3.3"
+          sources."escape-string-regexp-4.0.0"
+          sources."eslint-scope-7.1.0"
+          sources."estraverse-5.3.0"
+          sources."glob-parent-6.0.2"
+          sources."globals-13.12.0"
+          sources."has-flag-4.0.0"
+          sources."ignore-4.0.6"
+          sources."json-schema-traverse-0.4.1"
+          sources."ms-2.1.2"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."eslint-config-google-0.14.0"
+      sources."eslint-plugin-jest-25.3.0"
+      sources."eslint-scope-5.1.1"
+      (sources."eslint-utils-3.0.0" // {
+        dependencies = [
+          sources."eslint-visitor-keys-2.1.0"
+        ];
+      })
+      sources."eslint-visitor-keys-3.1.0"
+      sources."espree-9.1.0"
       sources."esprima-4.0.1"
+      (sources."esquery-1.4.0" // {
+        dependencies = [
+          sources."estraverse-5.3.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.3.0"
+        ];
+      })
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
       sources."etag-1.8.1"
-      sources."event-emitter-0.3.5"
-      (sources."ext-1.4.0" // {
+      sources."execa-5.1.1"
+      sources."exit-0.1.2"
+      (sources."expect-27.3.1" // {
         dependencies = [
-          sources."type-2.1.0"
+          sources."ansi-styles-5.2.0"
         ];
       })
-      sources."extend-3.0.2"
       sources."fast-deep-equal-3.1.3"
+      sources."fast-glob-3.2.7"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fast-safe-stringify-2.0.7"
-      sources."fecha-4.2.0"
+      sources."fast-levenshtein-2.0.6"
+      sources."fastq-1.13.0"
+      sources."fb-watchman-2.0.1"
+      sources."fecha-4.2.1"
+      sources."file-entry-cache-6.0.1"
       sources."file-uri-to-path-1.0.0"
+      sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
+      sources."find-0.3.0"
+      sources."find-up-4.1.0"
+      sources."flat-cache-3.0.4"
+      sources."flatted-3.2.4"
       sources."fn.name-1.1.0"
+      sources."form-data-3.0.1"
       sources."fresh-0.5.2"
       sources."fs.realpath-1.0.0"
-      sources."git-last-commit-1.0.0"
-      sources."glob-7.1.6"
-      sources."glob-parent-3.1.0"
-      sources."glob-stream-6.1.0"
+      sources."fsevents-2.3.2"
+      sources."function-bind-1.1.1"
+      sources."functional-red-black-tree-1.0.1"
+      sources."gensync-1.0.0-beta.2"
+      sources."get-caller-file-2.0.5"
+      sources."get-intrinsic-1.1.1"
+      sources."get-package-type-0.1.0"
+      sources."get-stream-6.0.1"
+      sources."git-last-commit-1.0.1"
+      sources."glob-7.2.0"
+      sources."glob-parent-5.1.2"
+      sources."globals-11.12.0"
+      sources."globby-11.0.4"
       sources."glossy-0.1.7"
-      sources."help-me-1.1.0"
+      sources."graceful-fs-4.2.8"
+      sources."has-1.0.3"
+      sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.2"
+      sources."help-me-3.0.0"
+      sources."html-encoding-sniffer-2.0.1"
+      sources."html-escaper-2.0.2"
       sources."http-errors-1.7.3"
-      sources."humanize-duration-3.24.0"
+      (sources."http-proxy-agent-4.0.1" // {
+        dependencies = [
+          sources."debug-4.3.3"
+          sources."ms-2.1.2"
+        ];
+      })
+      (sources."https-proxy-agent-5.0.0" // {
+        dependencies = [
+          sources."debug-4.3.3"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."human-signals-2.1.0"
+      sources."humanize-duration-3.27.0"
+      sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
+      sources."ignore-5.1.9"
+      (sources."import-fresh-3.3.0" // {
+        dependencies = [
+          sources."resolve-from-4.0.0"
+        ];
+      })
+      sources."import-local-3.0.3"
+      sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."is-absolute-1.0.0"
       sources."is-arrayish-0.3.2"
+      sources."is-core-module-2.8.0"
       sources."is-extglob-2.1.1"
-      sources."is-glob-3.1.0"
-      sources."is-negated-glob-1.0.0"
-      sources."is-relative-1.0.0"
-      sources."is-stream-2.0.0"
-      sources."is-unc-path-1.0.0"
-      sources."is-windows-1.0.2"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-generator-fn-2.1.0"
+      sources."is-glob-4.0.3"
+      sources."is-number-7.0.0"
+      sources."is-potential-custom-element-name-1.0.1"
+      sources."is-stream-2.0.1"
+      sources."is-typedarray-1.0.0"
       sources."isarray-1.0.0"
-      sources."js-yaml-3.14.0"
-      sources."json-schema-traverse-0.4.1"
+      sources."isexe-2.0.0"
+      sources."istanbul-lib-coverage-3.2.0"
+      (sources."istanbul-lib-instrument-5.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      (sources."istanbul-lib-report-3.0.0" // {
+        dependencies = [
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      (sources."istanbul-lib-source-maps-4.0.1" // {
+        dependencies = [
+          sources."debug-4.3.3"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."istanbul-reports-3.0.5"
+      (sources."jest-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."jest-cli-27.3.1"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."jest-changed-files-27.3.0"
+      (sources."jest-circus-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      (sources."jest-config-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      (sources."jest-diff-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."jest-docblock-27.0.6"
+      (sources."jest-each-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."jest-environment-jsdom-27.3.1"
+      sources."jest-environment-node-27.3.1"
+      sources."jest-get-type-27.3.1"
+      sources."jest-haste-map-27.3.1"
+      (sources."jest-jasmine2-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."jest-leak-detector-27.3.1"
+      (sources."jest-matcher-utils-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      (sources."jest-message-util-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."jest-mock-27.3.0"
+      sources."jest-pnp-resolver-1.2.2"
+      sources."jest-regex-util-27.0.6"
+      (sources."jest-resolve-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."jest-resolve-dependencies-27.3.1"
+      (sources."jest-runner-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      (sources."jest-runtime-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."jest-serializer-27.0.6"
+      (sources."jest-snapshot-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      (sources."jest-util-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      (sources."jest-validate-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."camelcase-6.2.1"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."leven-3.1.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      (sources."jest-watcher-27.3.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-4.1.2"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      (sources."jest-worker-27.3.1" // {
+        dependencies = [
+          sources."has-flag-4.0.0"
+          sources."supports-color-8.1.1"
+        ];
+      })
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-4.1.0"
+      (sources."jsdom-16.7.0" // {
+        dependencies = [
+          sources."ws-7.5.6"
+        ];
+      })
+      sources."jsesc-2.5.2"
+      sources."json-schema-traverse-1.0.0"
       sources."json-stable-stringify-without-jsonify-1.0.1"
+      sources."json5-2.2.0"
+      sources."kleur-3.0.3"
       sources."kuler-2.0.0"
       sources."leven-2.1.0"
-      (sources."logform-2.2.0" // {
+      sources."levn-0.4.1"
+      sources."locate-path-5.0.0"
+      sources."lodash-4.17.21"
+      sources."lodash.debounce-4.0.8"
+      sources."lodash.merge-4.6.2"
+      (sources."logform-2.3.0" // {
         dependencies = [
-          sources."ms-2.1.2"
+          sources."ms-2.1.3"
         ];
       })
+      sources."lru-cache-6.0.0"
+      (sources."make-dir-3.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."makeerror-1.0.12"
+      sources."merge-stream-2.0.0"
+      sources."merge2-1.4.1"
+      sources."micromatch-4.0.4"
       sources."mime-1.6.0"
+      sources."mime-db-1.51.0"
+      sources."mime-types-2.1.34"
+      sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdir-recursive-0.4.0"
       sources."moment-2.29.1"
-      (sources."mqtt-4.2.1" // {
+      (sources."mqtt-4.2.8" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
+          sources."ws-7.5.6"
         ];
       })
-      (sources."mqtt-packet-6.6.0" // {
+      (sources."mqtt-packet-6.10.0" // {
         dependencies = [
-          sources."debug-4.3.1"
+          sources."debug-4.3.3"
           sources."ms-2.1.2"
         ];
       })
       sources."ms-2.0.0"
-      sources."nan-2.14.2"
-      sources."next-tick-1.0.0"
+      sources."nan-2.15.0"
+      sources."natural-compare-1.4.0"
+      sources."node-int64-0.4.0"
+      sources."node-modules-regexp-1.0.0"
+      sources."node-releases-2.0.1"
+      sources."normalize-path-3.0.0"
+      sources."npm-run-path-4.0.1"
+      sources."nwsapi-2.2.0"
       sources."object-assign-deep-0.4.0"
+      sources."object-keys-1.1.1"
+      sources."object.assign-4.1.2"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
       sources."one-time-1.0.0"
-      sources."ordered-read-streams-1.0.1"
+      sources."onetime-5.1.2"
+      sources."optionator-0.9.1"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-try-2.2.0"
+      sources."parent-module-1.0.1"
+      sources."parse5-6.0.1"
       sources."parseurl-1.3.3"
-      sources."path-dirname-1.0.2"
+      sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."process-nextick-args-2.0.1"
-      sources."pump-3.0.0"
-      (sources."pumpify-1.5.1" // {
+      sources."path-key-3.1.1"
+      sources."path-parse-1.0.7"
+      sources."path-type-4.0.0"
+      sources."picocolors-1.0.0"
+      sources."picomatch-2.3.0"
+      sources."pirates-4.0.1"
+      sources."pkg-dir-4.2.0"
+      sources."prelude-ls-1.2.1"
+      (sources."pretty-format-27.3.1" // {
         dependencies = [
-          sources."pump-2.0.1"
+          sources."ansi-styles-5.2.0"
         ];
       })
+      sources."process-nextick-args-2.0.1"
+      sources."progress-2.0.3"
+      sources."prompts-2.4.2"
+      sources."psl-1.8.0"
+      sources."pump-3.0.0"
       sources."punycode-2.1.1"
+      sources."queue-microtask-1.2.3"
       sources."range-parser-1.2.1"
-      sources."readable-stream-2.3.7"
+      sources."react-is-17.0.2"
+      sources."readable-stream-3.6.0"
+      sources."regenerate-1.4.2"
+      sources."regenerate-unicode-properties-9.0.0"
+      sources."regenerator-runtime-0.13.9"
+      sources."regenerator-transform-0.14.5"
+      sources."regexpp-3.2.0"
+      sources."regexpu-core-4.8.0"
+      sources."regjsgen-0.5.2"
+      (sources."regjsparser-0.7.0" // {
+        dependencies = [
+          sources."jsesc-0.5.0"
+        ];
+      })
       sources."reinterval-1.1.0"
-      sources."remove-trailing-separator-1.1.0"
+      sources."require-directory-2.1.1"
+      sources."require-from-string-2.0.2"
+      sources."resolve-1.20.0"
+      sources."resolve-cwd-3.0.0"
+      sources."resolve-from-5.0.0"
+      sources."resolve.exports-1.1.0"
+      sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
-      sources."safe-buffer-5.1.2"
-      sources."semver-7.3.2"
+      sources."run-parallel-1.2.0"
+      sources."safe-buffer-5.2.1"
+      sources."safe-stable-stringify-1.1.1"
+      sources."safer-buffer-2.1.2"
+      sources."saxes-5.0.1"
+      sources."semver-7.3.5"
       (sources."send-0.17.1" // {
         dependencies = [
           sources."ms-2.1.1"
@@ -7941,91 +7573,177 @@ let
       })
       sources."serve-static-1.14.1"
       sources."setprototypeof-1.1.1"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      sources."signal-exit-3.0.6"
       sources."simple-swizzle-0.2.2"
-      (sources."split2-3.2.2" // {
+      sources."sisteransi-1.0.5"
+      sources."slash-3.0.0"
+      sources."source-map-0.6.1"
+      sources."source-map-support-0.5.21"
+      sources."split2-3.2.2"
+      sources."sprintf-js-1.0.3"
+      sources."stack-trace-0.0.10"
+      (sources."stack-utils-2.0.5" // {
         dependencies = [
-          sources."readable-stream-3.6.0"
+          sources."escape-string-regexp-2.0.0"
         ];
       })
-      sources."sprintf-js-1.0.3"
-      sources."stack-trace-0.0.10"
       sources."statuses-1.5.0"
       sources."stream-shift-1.0.1"
-      sources."string_decoder-1.1.1"
+      sources."string-length-4.0.2"
+      sources."string-width-4.2.3"
+      sources."string_decoder-1.3.0"
+      sources."strip-ansi-6.0.1"
+      sources."strip-bom-4.0.0"
+      sources."strip-final-newline-2.0.0"
+      sources."strip-json-comments-3.1.1"
+      sources."supports-color-5.5.0"
+      (sources."supports-hyperlinks-2.2.0" // {
+        dependencies = [
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."symbol-tree-3.2.4"
+      sources."terminal-link-2.1.1"
+      sources."test-exclude-6.0.0"
       sources."text-hex-1.0.0"
-      sources."through2-2.0.5"
-      sources."through2-filter-3.0.0"
-      sources."to-absolute-glob-2.0.2"
+      sources."text-table-0.2.0"
+      sources."throat-6.0.1"
+      sources."tmp-0.2.1"
+      sources."tmpl-1.0.5"
+      sources."to-fast-properties-2.0.0"
+      sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
+      sources."tough-cookie-4.0.0"
+      sources."tr46-2.1.0"
+      sources."traverse-chain-0.1.0"
       sources."triple-beam-1.3.0"
-      sources."type-1.2.0"
+      sources."tslib-1.14.1"
+      sources."tsutils-3.21.0"
+      sources."type-check-0.4.0"
+      sources."type-detect-4.0.8"
+      sources."type-fest-0.20.2"
       sources."typedarray-0.0.6"
-      sources."unc-path-regex-0.1.2"
-      sources."unique-stream-2.3.1"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."typescript-4.5.2"
+      sources."unicode-canonical-property-names-ecmascript-2.0.0"
+      sources."unicode-match-property-ecmascript-2.0.0"
+      sources."unicode-match-property-value-ecmascript-2.0.0"
+      sources."unicode-property-aliases-ecmascript-2.0.0"
+      sources."universalify-0.1.2"
       sources."unix-dgram-2.0.3"
       sources."unpipe-1.0.0"
-      sources."uri-js-4.4.0"
+      sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
-      (sources."winston-3.3.3" // {
+      sources."v8-compile-cache-2.3.0"
+      (sources."v8-to-istanbul-8.1.0" // {
         dependencies = [
-          sources."readable-stream-3.6.0"
+          sources."source-map-0.7.3"
         ];
       })
+      sources."w3c-hr-time-1.0.2"
+      sources."w3c-xmlserializer-2.0.0"
+      sources."walker-1.0.8"
+      sources."webidl-conversions-6.1.0"
+      sources."whatwg-encoding-1.0.5"
+      sources."whatwg-mimetype-2.3.0"
+      sources."whatwg-url-8.7.0"
+      sources."which-2.0.2"
+      sources."winston-3.3.3"
       sources."winston-syslog-2.4.4"
-      sources."winston-transport-4.4.0"
+      (sources."winston-transport-4.4.0" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."word-wrap-1.2.3"
+      (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."wrappy-1.0.2"
-      sources."ws-7.4.0"
+      sources."write-file-atomic-3.0.3"
+      sources."ws-8.3.0"
+      sources."xml-name-validator-3.0.0"
+      sources."xmlchars-2.2.0"
       sources."xtend-4.0.2"
-      (sources."zigbee-herdsman-0.13.37" // {
+      sources."y18n-5.0.8"
+      sources."yallist-4.0.0"
+      sources."yargs-16.2.0"
+      sources."yargs-parser-20.2.9"
+      (sources."zigbee-herdsman-0.13.176" // {
         dependencies = [
-          sources."@babel/cli-7.12.1"
-          sources."@babel/code-frame-7.10.4"
-          sources."@babel/compat-data-7.12.5"
-          sources."@babel/core-7.12.3"
-          sources."@babel/generator-7.12.5"
-          sources."@babel/helper-annotate-as-pure-7.10.4"
-          sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
-          sources."@babel/helper-compilation-targets-7.12.5"
-          sources."@babel/helper-create-class-features-plugin-7.12.1"
-          sources."@babel/helper-create-regexp-features-plugin-7.12.1"
-          sources."@babel/helper-define-map-7.10.5"
-          sources."@babel/helper-explode-assignable-expression-7.12.1"
-          sources."@babel/helper-function-name-7.10.4"
-          sources."@babel/helper-get-function-arity-7.10.4"
-          sources."@babel/helper-hoist-variables-7.10.4"
-          sources."@babel/helper-member-expression-to-functions-7.12.1"
-          sources."@babel/helper-module-imports-7.12.5"
-          sources."@babel/helper-module-transforms-7.12.1"
-          sources."@babel/helper-optimise-call-expression-7.10.4"
-          sources."@babel/helper-plugin-utils-7.10.4"
-          sources."@babel/helper-regex-7.10.5"
-          sources."@babel/helper-remap-async-to-generator-7.12.1"
-          sources."@babel/helper-replace-supers-7.12.5"
-          sources."@babel/helper-simple-access-7.12.1"
-          sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1"
-          sources."@babel/helper-split-export-declaration-7.11.0"
-          sources."@babel/helper-validator-identifier-7.10.4"
-          sources."@babel/helper-validator-option-7.12.1"
-          sources."@babel/helper-wrap-function-7.12.3"
-          sources."@babel/helpers-7.12.5"
-          sources."@babel/highlight-7.10.4"
-          sources."@babel/parser-7.12.5"
-          sources."@babel/plugin-proposal-async-generator-functions-7.12.1"
-          sources."@babel/plugin-proposal-class-properties-7.12.1"
-          sources."@babel/plugin-proposal-dynamic-import-7.12.1"
-          sources."@babel/plugin-proposal-export-namespace-from-7.12.1"
-          sources."@babel/plugin-proposal-json-strings-7.12.1"
-          sources."@babel/plugin-proposal-logical-assignment-operators-7.12.1"
-          sources."@babel/plugin-proposal-nullish-coalescing-operator-7.12.1"
-          sources."@babel/plugin-proposal-numeric-separator-7.12.5"
-          sources."@babel/plugin-proposal-object-rest-spread-7.12.1"
-          sources."@babel/plugin-proposal-optional-catch-binding-7.12.1"
-          sources."@babel/plugin-proposal-optional-chaining-7.12.1"
-          sources."@babel/plugin-proposal-private-methods-7.12.1"
-          sources."@babel/plugin-proposal-unicode-property-regex-7.12.1"
+          sources."@babel/cli-7.16.0"
+          sources."@babel/code-frame-7.16.0"
+          sources."@babel/compat-data-7.16.4"
+          (sources."@babel/core-7.16.0" // {
+            dependencies = [
+              sources."semver-6.3.0"
+            ];
+          })
+          sources."@babel/generator-7.16.0"
+          sources."@babel/helper-annotate-as-pure-7.16.0"
+          sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.0"
+          (sources."@babel/helper-compilation-targets-7.16.3" // {
+            dependencies = [
+              sources."semver-6.3.0"
+            ];
+          })
+          sources."@babel/helper-create-class-features-plugin-7.16.0"
+          sources."@babel/helper-create-regexp-features-plugin-7.16.0"
+          (sources."@babel/helper-define-polyfill-provider-0.3.0" // {
+            dependencies = [
+              sources."semver-6.3.0"
+            ];
+          })
+          sources."@babel/helper-explode-assignable-expression-7.16.0"
+          sources."@babel/helper-function-name-7.16.0"
+          sources."@babel/helper-get-function-arity-7.16.0"
+          sources."@babel/helper-hoist-variables-7.16.0"
+          sources."@babel/helper-member-expression-to-functions-7.16.0"
+          sources."@babel/helper-module-imports-7.16.0"
+          sources."@babel/helper-module-transforms-7.16.0"
+          sources."@babel/helper-optimise-call-expression-7.16.0"
+          sources."@babel/helper-plugin-utils-7.14.5"
+          sources."@babel/helper-remap-async-to-generator-7.16.4"
+          sources."@babel/helper-replace-supers-7.16.0"
+          sources."@babel/helper-simple-access-7.16.0"
+          sources."@babel/helper-skip-transparent-expression-wrappers-7.16.0"
+          sources."@babel/helper-split-export-declaration-7.16.0"
+          sources."@babel/helper-validator-identifier-7.15.7"
+          sources."@babel/helper-validator-option-7.14.5"
+          sources."@babel/helper-wrap-function-7.16.0"
+          sources."@babel/helpers-7.16.3"
+          sources."@babel/highlight-7.16.0"
+          sources."@babel/parser-7.16.4"
+          sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2"
+          sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0"
+          sources."@babel/plugin-proposal-async-generator-functions-7.16.4"
+          sources."@babel/plugin-proposal-class-properties-7.16.0"
+          sources."@babel/plugin-proposal-class-static-block-7.16.0"
+          sources."@babel/plugin-proposal-dynamic-import-7.16.0"
+          sources."@babel/plugin-proposal-export-namespace-from-7.16.0"
+          sources."@babel/plugin-proposal-json-strings-7.16.0"
+          sources."@babel/plugin-proposal-logical-assignment-operators-7.16.0"
+          sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.0"
+          sources."@babel/plugin-proposal-numeric-separator-7.16.0"
+          sources."@babel/plugin-proposal-object-rest-spread-7.16.0"
+          sources."@babel/plugin-proposal-optional-catch-binding-7.16.0"
+          sources."@babel/plugin-proposal-optional-chaining-7.16.0"
+          sources."@babel/plugin-proposal-private-methods-7.16.0"
+          sources."@babel/plugin-proposal-private-property-in-object-7.16.0"
+          sources."@babel/plugin-proposal-unicode-property-regex-7.16.0"
           sources."@babel/plugin-syntax-async-generators-7.8.4"
           sources."@babel/plugin-syntax-bigint-7.8.3"
-          sources."@babel/plugin-syntax-class-properties-7.12.1"
+          sources."@babel/plugin-syntax-class-properties-7.12.13"
+          sources."@babel/plugin-syntax-class-static-block-7.14.5"
           sources."@babel/plugin-syntax-dynamic-import-7.8.3"
           sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
           sources."@babel/plugin-syntax-import-meta-7.10.4"
@@ -8036,63 +7754,71 @@ let
           sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
           sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
           sources."@babel/plugin-syntax-optional-chaining-7.8.3"
-          sources."@babel/plugin-syntax-top-level-await-7.12.1"
-          sources."@babel/plugin-syntax-typescript-7.12.1"
-          sources."@babel/plugin-transform-arrow-functions-7.12.1"
-          sources."@babel/plugin-transform-async-to-generator-7.12.1"
-          sources."@babel/plugin-transform-block-scoped-functions-7.12.1"
-          sources."@babel/plugin-transform-block-scoping-7.12.1"
-          sources."@babel/plugin-transform-classes-7.12.1"
-          sources."@babel/plugin-transform-computed-properties-7.12.1"
-          sources."@babel/plugin-transform-destructuring-7.12.1"
-          sources."@babel/plugin-transform-dotall-regex-7.12.1"
-          sources."@babel/plugin-transform-duplicate-keys-7.12.1"
-          sources."@babel/plugin-transform-exponentiation-operator-7.12.1"
-          sources."@babel/plugin-transform-for-of-7.12.1"
-          sources."@babel/plugin-transform-function-name-7.12.1"
-          sources."@babel/plugin-transform-literals-7.12.1"
-          sources."@babel/plugin-transform-member-expression-literals-7.12.1"
-          sources."@babel/plugin-transform-modules-amd-7.12.1"
-          sources."@babel/plugin-transform-modules-commonjs-7.12.1"
-          sources."@babel/plugin-transform-modules-systemjs-7.12.1"
-          sources."@babel/plugin-transform-modules-umd-7.12.1"
-          sources."@babel/plugin-transform-named-capturing-groups-regex-7.12.1"
-          sources."@babel/plugin-transform-new-target-7.12.1"
-          sources."@babel/plugin-transform-object-super-7.12.1"
-          sources."@babel/plugin-transform-parameters-7.12.1"
-          sources."@babel/plugin-transform-property-literals-7.12.1"
-          sources."@babel/plugin-transform-regenerator-7.12.1"
-          sources."@babel/plugin-transform-reserved-words-7.12.1"
-          sources."@babel/plugin-transform-shorthand-properties-7.12.1"
-          sources."@babel/plugin-transform-spread-7.12.1"
-          sources."@babel/plugin-transform-sticky-regex-7.12.1"
-          sources."@babel/plugin-transform-template-literals-7.12.1"
-          sources."@babel/plugin-transform-typeof-symbol-7.12.1"
-          sources."@babel/plugin-transform-typescript-7.12.1"
-          sources."@babel/plugin-transform-unicode-escapes-7.12.1"
-          sources."@babel/plugin-transform-unicode-regex-7.12.1"
-          sources."@babel/preset-env-7.12.1"
-          sources."@babel/preset-modules-0.1.4"
-          sources."@babel/preset-typescript-7.12.1"
-          sources."@babel/runtime-7.12.5"
-          sources."@babel/template-7.10.4"
-          sources."@babel/traverse-7.12.5"
-          sources."@babel/types-7.12.6"
+          sources."@babel/plugin-syntax-private-property-in-object-7.14.5"
+          sources."@babel/plugin-syntax-top-level-await-7.14.5"
+          sources."@babel/plugin-syntax-typescript-7.16.0"
+          sources."@babel/plugin-transform-arrow-functions-7.16.0"
+          sources."@babel/plugin-transform-async-to-generator-7.16.0"
+          sources."@babel/plugin-transform-block-scoped-functions-7.16.0"
+          sources."@babel/plugin-transform-block-scoping-7.16.0"
+          sources."@babel/plugin-transform-classes-7.16.0"
+          sources."@babel/plugin-transform-computed-properties-7.16.0"
+          sources."@babel/plugin-transform-destructuring-7.16.0"
+          sources."@babel/plugin-transform-dotall-regex-7.16.0"
+          sources."@babel/plugin-transform-duplicate-keys-7.16.0"
+          sources."@babel/plugin-transform-exponentiation-operator-7.16.0"
+          sources."@babel/plugin-transform-for-of-7.16.0"
+          sources."@babel/plugin-transform-function-name-7.16.0"
+          sources."@babel/plugin-transform-literals-7.16.0"
+          sources."@babel/plugin-transform-member-expression-literals-7.16.0"
+          sources."@babel/plugin-transform-modules-amd-7.16.0"
+          sources."@babel/plugin-transform-modules-commonjs-7.16.0"
+          sources."@babel/plugin-transform-modules-systemjs-7.16.0"
+          sources."@babel/plugin-transform-modules-umd-7.16.0"
+          sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.0"
+          sources."@babel/plugin-transform-new-target-7.16.0"
+          sources."@babel/plugin-transform-object-super-7.16.0"
+          sources."@babel/plugin-transform-parameters-7.16.3"
+          sources."@babel/plugin-transform-property-literals-7.16.0"
+          sources."@babel/plugin-transform-regenerator-7.16.0"
+          sources."@babel/plugin-transform-reserved-words-7.16.0"
+          sources."@babel/plugin-transform-shorthand-properties-7.16.0"
+          sources."@babel/plugin-transform-spread-7.16.0"
+          sources."@babel/plugin-transform-sticky-regex-7.16.0"
+          sources."@babel/plugin-transform-template-literals-7.16.0"
+          sources."@babel/plugin-transform-typeof-symbol-7.16.0"
+          sources."@babel/plugin-transform-typescript-7.16.1"
+          sources."@babel/plugin-transform-unicode-escapes-7.16.0"
+          sources."@babel/plugin-transform-unicode-regex-7.16.0"
+          (sources."@babel/preset-env-7.16.4" // {
+            dependencies = [
+              sources."semver-6.3.0"
+            ];
+          })
+          sources."@babel/preset-modules-0.1.5"
+          sources."@babel/preset-typescript-7.16.0"
+          sources."@babel/runtime-7.16.3"
+          sources."@babel/template-7.16.0"
+          sources."@babel/traverse-7.16.3"
+          sources."@babel/types-7.16.0"
           sources."@bcoe/v8-coverage-0.2.3"
-          sources."@cnakazawa/watch-1.0.4"
-          (sources."@eslint/eslintrc-0.2.1" // {
+          (sources."@eslint/eslintrc-1.0.4" // {
             dependencies = [
-              sources."globals-12.4.0"
+              sources."argparse-2.0.1"
+              sources."globals-13.12.0"
               sources."ignore-4.0.6"
+              sources."js-yaml-4.1.0"
               sources."strip-json-comments-3.1.1"
             ];
           })
+          sources."@humanwhocodes/config-array-0.6.0"
+          sources."@humanwhocodes/object-schema-1.2.1"
           sources."@istanbuljs/load-nyc-config-1.1.0"
-          sources."@istanbuljs/schema-0.1.2"
-          (sources."@jest/console-26.6.2" // {
+          sources."@istanbuljs/schema-0.1.3"
+          (sources."@jest/console-27.3.1" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
@@ -8100,170 +7826,141 @@ let
               sources."supports-color-7.2.0"
             ];
           })
-          (sources."@jest/core-26.6.3" // {
+          (sources."@jest/core-27.3.1" // {
             dependencies = [
-              sources."ansi-regex-5.0.0"
+              sources."ansi-regex-5.0.1"
               sources."ansi-styles-4.3.0"
-              sources."braces-3.0.2"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
-              sources."fill-range-7.0.1"
               sources."has-flag-4.0.0"
-              sources."is-number-7.0.0"
-              sources."micromatch-4.0.2"
-              sources."rimraf-3.0.2"
               sources."slash-3.0.0"
-              sources."strip-ansi-6.0.0"
+              sources."strip-ansi-6.0.1"
               sources."supports-color-7.2.0"
-              sources."to-regex-range-5.0.1"
             ];
           })
-          sources."@jest/environment-26.6.2"
-          sources."@jest/fake-timers-26.6.2"
-          sources."@jest/globals-26.6.2"
-          (sources."@jest/reporters-26.6.2" // {
+          sources."@jest/environment-27.3.1"
+          sources."@jest/fake-timers-27.3.1"
+          sources."@jest/globals-27.3.1"
+          (sources."@jest/reporters-27.3.1" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
+              sources."istanbul-lib-instrument-4.0.3"
+              sources."semver-6.3.0"
               sources."slash-3.0.0"
               sources."source-map-0.6.1"
               sources."supports-color-7.2.0"
             ];
           })
-          (sources."@jest/source-map-26.6.2" // {
+          (sources."@jest/source-map-27.0.6" // {
             dependencies = [
               sources."source-map-0.6.1"
             ];
           })
-          sources."@jest/test-result-26.6.2"
-          sources."@jest/test-sequencer-26.6.3"
-          (sources."@jest/transform-26.6.2" // {
+          sources."@jest/test-result-27.3.1"
+          sources."@jest/test-sequencer-27.3.1"
+          (sources."@jest/transform-27.3.1" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."braces-3.0.2"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
-              sources."fill-range-7.0.1"
               sources."has-flag-4.0.0"
-              sources."is-number-7.0.0"
-              sources."micromatch-4.0.2"
               sources."slash-3.0.0"
               sources."source-map-0.6.1"
               sources."supports-color-7.2.0"
-              sources."to-regex-range-5.0.1"
             ];
           })
-          (sources."@jest/types-26.6.2" // {
+          (sources."@jest/types-27.2.5" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
               sources."supports-color-7.2.0"
             ];
           })
-          (sources."@nicolo-ribaudo/chokidar-2-2.1.8" // {
-            dependencies = [
-              sources."chokidar-2.1.8"
-            ];
-          })
-          sources."@nodelib/fs.scandir-2.1.3"
-          sources."@nodelib/fs.stat-2.0.3"
-          sources."@nodelib/fs.walk-1.2.4"
-          sources."@serialport/binding-abstract-9.0.2"
-          sources."@serialport/binding-mock-9.0.2"
-          sources."@serialport/bindings-9.0.2"
-          sources."@serialport/parser-byte-length-9.0.1"
-          sources."@serialport/parser-cctalk-9.0.1"
-          sources."@serialport/parser-delimiter-9.0.1"
-          sources."@serialport/parser-readline-9.0.1"
-          sources."@serialport/parser-ready-9.0.1"
-          sources."@serialport/parser-regex-9.0.1"
-          sources."@serialport/stream-9.0.2"
-          sources."@sinonjs/commons-1.8.1"
-          sources."@sinonjs/fake-timers-6.0.1"
-          sources."@types/babel__core-7.1.12"
-          sources."@types/babel__generator-7.6.2"
-          sources."@types/babel__template-7.4.0"
-          sources."@types/babel__traverse-7.0.15"
-          sources."@types/debounce-1.2.0"
-          sources."@types/debug-4.1.5"
-          sources."@types/graceful-fs-4.1.4"
+          sources."@nicolo-ribaudo/chokidar-2-2.1.8-no-fsevents.3"
+          sources."@nodelib/fs.scandir-2.1.5"
+          sources."@nodelib/fs.stat-2.0.5"
+          sources."@nodelib/fs.walk-1.2.8"
+          sources."@serialport/binding-abstract-9.2.3"
+          sources."@serialport/binding-mock-9.2.4"
+          sources."@serialport/bindings-9.2.8"
+          sources."@serialport/parser-byte-length-9.2.4"
+          sources."@serialport/parser-cctalk-9.2.4"
+          sources."@serialport/parser-delimiter-9.2.4"
+          sources."@serialport/parser-inter-byte-timeout-9.2.4"
+          sources."@serialport/parser-readline-9.2.4"
+          sources."@serialport/parser-ready-9.2.4"
+          sources."@serialport/parser-regex-9.2.4"
+          sources."@serialport/stream-9.2.4"
+          sources."@sinonjs/commons-1.8.3"
+          sources."@sinonjs/fake-timers-8.1.0"
+          sources."@tootallnate/once-1.1.2"
+          sources."@types/babel__core-7.1.16"
+          sources."@types/babel__generator-7.6.3"
+          sources."@types/babel__template-7.4.1"
+          sources."@types/babel__traverse-7.14.2"
+          sources."@types/debounce-1.2.1"
+          sources."@types/debug-4.1.7"
+          sources."@types/graceful-fs-4.1.5"
           sources."@types/istanbul-lib-coverage-2.0.3"
           sources."@types/istanbul-lib-report-3.0.0"
-          sources."@types/istanbul-reports-3.0.0"
-          sources."@types/jest-26.0.15"
-          sources."@types/json-schema-7.0.6"
-          sources."@types/nedb-1.8.11"
-          sources."@types/node-14.14.7"
-          sources."@types/normalize-package-data-2.4.0"
-          sources."@types/prettier-2.1.5"
-          sources."@types/serialport-8.0.1"
-          sources."@types/stack-utils-2.0.0"
-          sources."@types/yargs-15.0.9"
-          sources."@types/yargs-parser-15.0.0"
-          (sources."@typescript-eslint/eslint-plugin-4.7.0" // {
-            dependencies = [
-              sources."semver-7.3.2"
-            ];
-          })
-          sources."@typescript-eslint/experimental-utils-4.7.0"
-          sources."@typescript-eslint/parser-4.7.0"
-          sources."@typescript-eslint/scope-manager-4.7.0"
-          sources."@typescript-eslint/types-4.7.0"
-          (sources."@typescript-eslint/typescript-estree-4.7.0" // {
+          sources."@types/istanbul-reports-3.0.1"
+          sources."@types/jest-27.0.3"
+          sources."@types/json-schema-7.0.9"
+          sources."@types/ms-0.7.31"
+          sources."@types/mz-2.7.4"
+          sources."@types/nedb-1.8.12"
+          sources."@types/node-16.11.10"
+          sources."@types/prettier-2.4.2"
+          sources."@types/serialport-8.0.2"
+          sources."@types/stack-utils-2.0.1"
+          sources."@types/yargs-16.0.4"
+          sources."@types/yargs-parser-20.2.1"
+          sources."@typescript-eslint/eslint-plugin-5.4.0"
+          sources."@typescript-eslint/experimental-utils-5.4.0"
+          sources."@typescript-eslint/parser-5.4.0"
+          sources."@typescript-eslint/scope-manager-5.4.0"
+          sources."@typescript-eslint/types-5.4.0"
+          sources."@typescript-eslint/typescript-estree-5.4.0"
+          sources."@typescript-eslint/visitor-keys-5.4.0"
+          sources."abab-2.0.5"
+          sources."acorn-8.6.0"
+          (sources."acorn-globals-6.0.0" // {
             dependencies = [
-              sources."semver-7.3.2"
+              sources."acorn-7.4.1"
             ];
           })
-          sources."@typescript-eslint/visitor-keys-4.7.0"
-          sources."abab-2.0.5"
-          sources."acorn-7.4.1"
-          sources."acorn-globals-6.0.0"
-          sources."acorn-jsx-5.3.1"
+          sources."acorn-jsx-5.3.2"
           sources."acorn-walk-7.2.0"
+          sources."agent-base-6.0.2"
           sources."ajv-6.12.6"
           sources."ansi-colors-4.1.1"
-          (sources."ansi-escapes-4.3.1" // {
+          (sources."ansi-escapes-4.3.2" // {
             dependencies = [
-              sources."type-fest-0.11.0"
+              sources."type-fest-0.21.3"
             ];
           })
           sources."ansi-regex-2.1.1"
           sources."ansi-styles-3.2.1"
-          (sources."anymatch-2.0.0" // {
-            dependencies = [
-              sources."normalize-path-2.1.1"
-            ];
-          })
+          sources."any-promise-1.3.0"
+          sources."anymatch-3.1.2"
           sources."aproba-1.2.0"
-          sources."are-we-there-yet-1.1.5"
+          sources."are-we-there-yet-1.1.7"
           sources."argparse-1.0.10"
-          sources."arr-diff-4.0.0"
-          sources."arr-flatten-1.1.0"
-          sources."arr-union-3.1.0"
           sources."array-union-2.1.0"
-          sources."array-unique-0.3.2"
-          sources."asn1-0.2.4"
-          sources."assert-plus-1.0.0"
-          sources."assign-symbols-1.0.0"
-          sources."astral-regex-1.0.0"
-          sources."async-each-1.0.3"
           sources."asynckit-0.4.0"
-          sources."at-least-node-1.0.0"
-          sources."atob-2.1.2"
-          sources."aws-sign2-0.7.0"
-          sources."aws4-1.11.0"
-          (sources."babel-jest-26.6.3" // {
+          (sources."babel-jest-27.3.1" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
@@ -8272,132 +7969,89 @@ let
             ];
           })
           sources."babel-plugin-dynamic-import-node-2.3.3"
-          sources."babel-plugin-istanbul-6.0.0"
-          sources."babel-plugin-jest-hoist-26.6.2"
-          sources."babel-preset-current-node-syntax-1.0.0"
-          sources."babel-preset-jest-26.6.2"
-          sources."balanced-match-1.0.0"
-          (sources."base-0.11.2" // {
+          sources."babel-plugin-istanbul-6.1.1"
+          sources."babel-plugin-jest-hoist-27.2.0"
+          (sources."babel-plugin-polyfill-corejs2-0.3.0" // {
             dependencies = [
-              sources."define-property-1.0.0"
-              sources."is-accessor-descriptor-1.0.0"
-              sources."is-data-descriptor-1.0.0"
-              sources."is-descriptor-1.0.2"
-              sources."is-extendable-1.0.1"
-              sources."mixin-deep-1.3.2"
+              sources."semver-6.3.0"
             ];
           })
+          sources."babel-plugin-polyfill-corejs3-0.4.0"
+          sources."babel-plugin-polyfill-regenerator-0.3.0"
+          sources."babel-preset-current-node-syntax-1.0.1"
+          sources."babel-preset-jest-27.2.0"
+          sources."balanced-match-1.0.2"
           sources."base64-js-1.5.1"
-          sources."bcrypt-pbkdf-1.0.2"
-          sources."binary-extensions-1.13.1"
+          sources."binary-extensions-2.2.0"
           sources."bindings-1.5.0"
-          (sources."bl-4.0.3" // {
+          (sources."bl-4.1.0" // {
             dependencies = [
               sources."readable-stream-3.6.0"
             ];
           })
           sources."brace-expansion-1.1.11"
-          (sources."braces-2.3.2" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
+          sources."braces-3.0.2"
           sources."browser-process-hrtime-1.0.0"
-          sources."browserslist-4.14.7"
+          sources."browserslist-4.18.1"
           sources."bser-2.1.1"
           sources."buffer-5.7.1"
-          sources."buffer-from-1.1.1"
-          sources."cache-base-1.0.1"
-          sources."call-bind-1.0.0"
+          sources."buffer-from-1.1.2"
+          sources."call-bind-1.0.2"
           sources."callsites-3.1.0"
           sources."camelcase-5.3.1"
-          sources."caniuse-lite-1.0.30001157"
-          sources."capture-exit-2.0.0"
-          sources."caseless-0.12.0"
+          sources."caniuse-lite-1.0.30001283"
           sources."chalk-2.4.2"
           sources."char-regex-1.0.2"
-          (sources."chokidar-3.4.3" // {
-            dependencies = [
-              sources."anymatch-3.1.1"
-              sources."binary-extensions-2.1.0"
-              sources."braces-3.0.2"
-              sources."fill-range-7.0.1"
-              sources."fsevents-2.1.3"
-              sources."glob-parent-5.1.1"
-              sources."is-binary-path-2.1.0"
-              sources."is-number-7.0.0"
-              sources."readdirp-3.5.0"
-              sources."to-regex-range-5.0.1"
-            ];
-          })
+          sources."chokidar-3.5.2"
           sources."chownr-1.1.4"
-          sources."ci-info-2.0.0"
-          sources."cjs-module-lexer-0.6.0"
-          (sources."class-utils-0.3.6" // {
-            dependencies = [
-              sources."define-property-0.2.5"
-            ];
-          })
-          (sources."cliui-6.0.0" // {
+          sources."ci-info-3.3.0"
+          sources."cjs-module-lexer-1.2.2"
+          (sources."cliui-7.0.4" // {
             dependencies = [
-              sources."ansi-regex-5.0.0"
-              sources."emoji-regex-8.0.0"
+              sources."ansi-regex-5.0.1"
               sources."is-fullwidth-code-point-3.0.0"
-              sources."string-width-4.2.0"
-              sources."strip-ansi-6.0.0"
+              sources."string-width-4.2.3"
+              sources."strip-ansi-6.0.1"
             ];
           })
           sources."co-4.6.0"
           sources."code-point-at-1.1.0"
           sources."collect-v8-coverage-1.0.1"
-          sources."collection-visit-1.0.0"
           sources."color-convert-1.9.3"
           sources."color-name-1.1.3"
-          sources."colorette-1.2.1"
           sources."combined-stream-1.0.8"
           sources."commander-4.1.1"
-          sources."component-emitter-1.3.0"
           sources."concat-map-0.0.1"
           sources."console-control-strings-1.1.0"
-          sources."convert-source-map-1.7.0"
-          sources."copy-descriptor-0.1.1"
-          (sources."core-js-compat-3.7.0" // {
+          sources."convert-source-map-1.8.0"
+          (sources."core-js-compat-3.19.1" // {
             dependencies = [
               sources."semver-7.0.0"
             ];
           })
-          sources."core-util-is-1.0.2"
-          sources."cross-spawn-6.0.5"
+          sources."core-util-is-1.0.3"
+          sources."cross-spawn-7.0.3"
           sources."cssom-0.4.4"
           (sources."cssstyle-2.3.0" // {
             dependencies = [
               sources."cssom-0.3.8"
             ];
           })
-          sources."dashdash-1.14.1"
           sources."data-urls-2.0.0"
-          sources."debounce-1.2.0"
-          sources."debug-4.2.0"
-          sources."decamelize-1.2.0"
-          sources."decimal.js-10.2.1"
-          sources."decode-uri-component-0.2.0"
-          sources."decompress-response-4.2.1"
+          sources."debounce-1.2.1"
+          sources."debug-4.3.3"
+          sources."decimal.js-10.3.1"
+          sources."decompress-response-6.0.0"
+          sources."dedent-0.7.0"
           sources."deep-extend-0.6.0"
-          sources."deep-is-0.1.3"
+          sources."deep-is-0.1.4"
           sources."deepmerge-4.2.2"
           sources."define-properties-1.1.3"
-          (sources."define-property-2.0.2" // {
-            dependencies = [
-              sources."is-accessor-descriptor-1.0.0"
-              sources."is-data-descriptor-1.0.0"
-              sources."is-descriptor-1.0.2"
-            ];
-          })
           sources."delayed-stream-1.0.0"
           sources."delegates-1.0.0"
           sources."detect-libc-1.0.3"
           sources."detect-newline-3.1.0"
-          sources."diff-sequences-26.6.2"
+          sources."diff-sequences-27.0.6"
           sources."dir-glob-3.0.1"
           sources."doctrine-3.0.0"
           (sources."domexception-2.0.1" // {
@@ -8405,17 +8059,16 @@ let
               sources."webidl-conversions-5.0.0"
             ];
           })
-          sources."ecc-jsbn-0.1.2"
-          sources."electron-to-chromium-1.3.596"
-          sources."emittery-0.7.2"
-          sources."emoji-regex-7.0.3"
+          sources."electron-to-chromium-1.4.4"
+          sources."emittery-0.8.1"
+          sources."emoji-regex-8.0.0"
           sources."end-of-stream-1.4.4"
           sources."enquirer-2.3.6"
-          sources."error-ex-1.3.2"
           sources."escalade-3.1.1"
           sources."escape-string-regexp-1.0.5"
-          (sources."escodegen-1.14.3" // {
+          (sources."escodegen-2.0.0" // {
             dependencies = [
+              sources."estraverse-5.3.0"
               sources."levn-0.3.0"
               sources."optionator-0.8.3"
               sources."prelude-ls-1.1.2"
@@ -8423,228 +8076,132 @@ let
               sources."type-check-0.3.2"
             ];
           })
-          (sources."eslint-7.13.0" // {
+          (sources."eslint-8.3.0" // {
             dependencies = [
-              sources."ansi-regex-5.0.0"
+              sources."ansi-regex-5.0.1"
               sources."ansi-styles-4.3.0"
-              sources."chalk-4.1.0"
+              sources."argparse-2.0.1"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
-              sources."cross-spawn-7.0.3"
-              sources."glob-parent-5.1.1"
-              sources."globals-12.4.0"
+              sources."escape-string-regexp-4.0.0"
+              sources."eslint-scope-7.1.0"
+              sources."estraverse-5.3.0"
+              sources."glob-parent-6.0.2"
+              sources."globals-13.12.0"
               sources."has-flag-4.0.0"
               sources."ignore-4.0.6"
-              sources."path-key-3.1.1"
-              sources."semver-7.3.2"
-              sources."shebang-command-2.0.0"
-              sources."shebang-regex-3.0.0"
-              sources."strip-ansi-6.0.0"
+              sources."js-yaml-4.1.0"
+              sources."strip-ansi-6.0.1"
               sources."strip-json-comments-3.1.1"
               sources."supports-color-7.2.0"
-              sources."which-2.0.2"
             ];
           })
           sources."eslint-scope-5.1.1"
-          (sources."eslint-utils-2.1.0" // {
+          (sources."eslint-utils-3.0.0" // {
             dependencies = [
-              sources."eslint-visitor-keys-1.3.0"
-            ];
-          })
-          sources."eslint-visitor-keys-2.0.0"
-          (sources."espree-7.3.0" // {
-            dependencies = [
-              sources."eslint-visitor-keys-1.3.0"
+              sources."eslint-visitor-keys-2.1.0"
             ];
           })
+          sources."eslint-visitor-keys-3.1.0"
+          sources."espree-9.1.0"
           sources."esprima-4.0.1"
-          (sources."esquery-1.3.1" // {
+          (sources."esquery-1.4.0" // {
             dependencies = [
-              sources."estraverse-5.2.0"
+              sources."estraverse-5.3.0"
             ];
           })
           (sources."esrecurse-4.3.0" // {
             dependencies = [
-              sources."estraverse-5.2.0"
+              sources."estraverse-5.3.0"
             ];
           })
           sources."estraverse-4.3.0"
           sources."esutils-2.0.3"
-          sources."exec-sh-0.3.4"
-          sources."execa-1.0.0"
+          sources."execa-5.1.1"
           sources."exit-0.1.2"
-          (sources."expand-brackets-2.1.4" // {
-            dependencies = [
-              sources."debug-2.6.9"
-              sources."define-property-0.2.5"
-              sources."extend-shallow-2.0.1"
-              sources."ms-2.0.0"
-            ];
-          })
           sources."expand-template-2.0.3"
-          (sources."expect-26.6.2" // {
-            dependencies = [
-              sources."ansi-styles-4.3.0"
-              sources."color-convert-2.0.1"
-              sources."color-name-1.1.4"
-            ];
-          })
-          sources."extend-3.0.2"
-          (sources."extend-shallow-3.0.2" // {
-            dependencies = [
-              sources."is-extendable-1.0.1"
-            ];
-          })
-          (sources."extglob-2.0.4" // {
+          (sources."expect-27.3.1" // {
             dependencies = [
-              sources."define-property-1.0.0"
-              sources."extend-shallow-2.0.1"
-              sources."is-accessor-descriptor-1.0.0"
-              sources."is-data-descriptor-1.0.0"
-              sources."is-descriptor-1.0.2"
+              sources."ansi-styles-5.2.0"
             ];
           })
-          sources."extsprintf-1.3.0"
           sources."fast-deep-equal-3.1.3"
-          (sources."fast-glob-3.2.4" // {
-            dependencies = [
-              sources."braces-3.0.2"
-              sources."fill-range-7.0.1"
-              sources."glob-parent-5.1.1"
-              sources."is-number-7.0.0"
-              sources."micromatch-4.0.2"
-              sources."to-regex-range-5.0.1"
-            ];
-          })
+          sources."fast-glob-3.2.7"
           sources."fast-json-stable-stringify-2.1.0"
           sources."fast-levenshtein-2.0.6"
-          sources."fastq-1.9.0"
+          sources."fastq-1.13.0"
           sources."fb-watchman-2.0.1"
-          sources."file-entry-cache-5.0.1"
+          sources."file-entry-cache-6.0.1"
           sources."file-uri-to-path-1.0.0"
-          (sources."fill-range-4.0.0" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
+          sources."fill-range-7.0.1"
           sources."find-up-4.1.0"
-          sources."flat-cache-2.0.1"
-          sources."flatted-2.0.2"
-          sources."for-in-1.0.2"
-          sources."forever-agent-0.6.1"
-          sources."form-data-2.3.3"
-          sources."fragment-cache-0.2.1"
+          sources."flat-cache-3.0.4"
+          sources."flatted-3.2.4"
+          sources."form-data-3.0.1"
           sources."fs-constants-1.0.0"
-          sources."fs-extra-9.0.1"
           sources."fs-readdir-recursive-1.1.0"
           sources."fs.realpath-1.0.0"
-          sources."fsevents-1.2.13"
+          sources."fsevents-2.3.2"
           sources."function-bind-1.1.1"
           sources."functional-red-black-tree-1.0.1"
           sources."gauge-2.7.4"
           sources."gensync-1.0.0-beta.2"
           sources."get-caller-file-2.0.5"
-          sources."get-intrinsic-1.0.1"
+          sources."get-intrinsic-1.1.1"
           sources."get-package-type-0.1.0"
-          sources."get-stream-4.1.0"
-          sources."get-value-2.0.6"
-          sources."getpass-0.1.7"
+          sources."get-stream-6.0.1"
           sources."github-from-package-0.0.0"
-          sources."glob-7.1.6"
-          (sources."glob-parent-3.1.0" // {
-            dependencies = [
-              sources."is-glob-3.1.0"
-            ];
-          })
+          sources."glob-7.2.0"
+          sources."glob-parent-5.1.2"
           sources."globals-11.12.0"
-          (sources."globby-11.0.1" // {
+          (sources."globby-11.0.4" // {
             dependencies = [
               sources."slash-3.0.0"
             ];
           })
-          sources."graceful-fs-4.2.4"
-          sources."growly-1.3.0"
-          (sources."handlebars-4.7.6" // {
+          sources."graceful-fs-4.2.8"
+          (sources."handlebars-4.7.7" // {
             dependencies = [
               sources."source-map-0.6.1"
             ];
           })
-          sources."har-schema-2.0.0"
-          sources."har-validator-5.1.5"
           sources."has-1.0.3"
           sources."has-flag-3.0.0"
-          sources."has-symbols-1.0.1"
+          sources."has-symbols-1.0.2"
           sources."has-unicode-2.0.1"
-          sources."has-value-1.0.0"
-          (sources."has-values-1.0.0" // {
-            dependencies = [
-              sources."kind-of-4.0.0"
-            ];
-          })
-          sources."highlight.js-10.3.2"
-          sources."hosted-git-info-2.8.8"
           sources."html-encoding-sniffer-2.0.1"
           sources."html-escaper-2.0.2"
-          sources."http-signature-1.2.0"
-          sources."human-signals-1.1.1"
+          sources."http-proxy-agent-4.0.1"
+          sources."https-proxy-agent-5.0.0"
+          sources."human-signals-2.1.0"
           sources."iconv-lite-0.4.24"
           sources."ieee754-1.2.1"
-          sources."ignore-5.1.8"
-          (sources."import-fresh-3.2.2" // {
+          sources."ignore-5.1.9"
+          (sources."import-fresh-3.3.0" // {
             dependencies = [
               sources."resolve-from-4.0.0"
             ];
           })
-          sources."import-local-3.0.2"
+          sources."import-local-3.0.3"
           sources."imurmurhash-0.1.4"
           sources."inflight-1.0.6"
           sources."inherits-2.0.4"
-          sources."ini-1.3.5"
-          sources."interpret-1.4.0"
-          sources."ip-regex-2.1.0"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-arrayish-0.2.1"
-          sources."is-binary-path-1.0.1"
-          sources."is-buffer-1.1.6"
-          sources."is-ci-2.0.0"
-          sources."is-core-module-2.1.0"
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-5.1.0"
-            ];
-          })
-          sources."is-docker-2.1.1"
-          sources."is-extendable-0.1.1"
+          sources."ini-1.3.8"
+          sources."is-binary-path-2.1.0"
+          sources."is-core-module-2.8.0"
           sources."is-extglob-2.1.1"
           sources."is-fullwidth-code-point-1.0.0"
           sources."is-generator-fn-2.1.0"
-          sources."is-glob-4.0.1"
-          (sources."is-number-3.0.0" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-plain-object-2.0.4"
-          sources."is-potential-custom-element-name-1.0.0"
-          sources."is-stream-1.1.0"
+          sources."is-glob-4.0.3"
+          sources."is-number-7.0.0"
+          sources."is-potential-custom-element-name-1.0.1"
+          sources."is-stream-2.0.1"
           sources."is-typedarray-1.0.0"
-          sources."is-windows-1.0.2"
-          sources."is-wsl-2.2.0"
           sources."isarray-1.0.0"
           sources."isexe-2.0.0"
-          sources."isobject-3.0.1"
-          sources."isstream-0.1.2"
-          sources."istanbul-lib-coverage-3.0.0"
-          (sources."istanbul-lib-instrument-4.0.3" // {
+          sources."istanbul-lib-coverage-3.2.0"
+          (sources."istanbul-lib-instrument-5.1.0" // {
             dependencies = [
               sources."semver-6.3.0"
             ];
@@ -8657,130 +8214,109 @@ let
               sources."supports-color-7.2.0"
             ];
           })
-          (sources."istanbul-lib-source-maps-4.0.0" // {
+          (sources."istanbul-lib-source-maps-4.0.1" // {
             dependencies = [
               sources."source-map-0.6.1"
             ];
           })
-          sources."istanbul-reports-3.0.2"
-          (sources."jest-26.6.3" // {
+          sources."istanbul-reports-3.0.5"
+          (sources."jest-27.3.1" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
-              sources."jest-cli-26.6.3"
+              sources."jest-cli-27.3.1"
               sources."supports-color-7.2.0"
             ];
           })
-          (sources."jest-changed-files-26.6.2" // {
-            dependencies = [
-              sources."cross-spawn-7.0.3"
-              sources."execa-4.1.0"
-              sources."get-stream-5.2.0"
-              sources."is-stream-2.0.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."jest-config-26.6.3" // {
+          sources."jest-changed-files-27.3.0"
+          (sources."jest-circus-27.3.1" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."braces-3.0.2"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
-              sources."fill-range-7.0.1"
               sources."has-flag-4.0.0"
-              sources."is-number-7.0.0"
-              sources."micromatch-4.0.2"
+              sources."slash-3.0.0"
               sources."supports-color-7.2.0"
-              sources."to-regex-range-5.0.1"
             ];
           })
-          (sources."jest-diff-26.6.2" // {
+          (sources."jest-config-27.3.1" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
               sources."supports-color-7.2.0"
             ];
           })
-          sources."jest-docblock-26.0.0"
-          (sources."jest-each-26.6.2" // {
+          (sources."jest-diff-27.3.1" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
               sources."supports-color-7.2.0"
             ];
           })
-          sources."jest-environment-jsdom-26.6.2"
-          sources."jest-environment-node-26.6.2"
-          sources."jest-get-type-26.3.0"
-          (sources."jest-haste-map-26.6.2" // {
+          sources."jest-docblock-27.0.6"
+          (sources."jest-each-27.3.1" // {
             dependencies = [
-              sources."anymatch-3.1.1"
-              sources."braces-3.0.2"
-              sources."fill-range-7.0.1"
-              sources."fsevents-2.2.1"
-              sources."is-number-7.0.0"
-              sources."micromatch-4.0.2"
-              sources."to-regex-range-5.0.1"
+              sources."ansi-styles-4.3.0"
+              sources."chalk-4.1.2"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
             ];
           })
-          (sources."jest-jasmine2-26.6.3" // {
+          sources."jest-environment-jsdom-27.3.1"
+          sources."jest-environment-node-27.3.1"
+          sources."jest-get-type-27.3.1"
+          sources."jest-haste-map-27.3.1"
+          (sources."jest-jasmine2-27.3.1" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
               sources."supports-color-7.2.0"
             ];
           })
-          sources."jest-leak-detector-26.6.2"
-          (sources."jest-matcher-utils-26.6.2" // {
+          sources."jest-leak-detector-27.3.1"
+          (sources."jest-matcher-utils-27.3.1" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
               sources."supports-color-7.2.0"
             ];
           })
-          (sources."jest-message-util-26.6.2" // {
+          (sources."jest-message-util-27.3.1" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."braces-3.0.2"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
-              sources."fill-range-7.0.1"
               sources."has-flag-4.0.0"
-              sources."is-number-7.0.0"
-              sources."micromatch-4.0.2"
               sources."slash-3.0.0"
               sources."supports-color-7.2.0"
-              sources."to-regex-range-5.0.1"
             ];
           })
-          sources."jest-mock-26.6.2"
+          sources."jest-mock-27.3.0"
           sources."jest-pnp-resolver-1.2.2"
-          sources."jest-regex-util-26.0.0"
-          (sources."jest-resolve-26.6.2" // {
+          sources."jest-regex-util-27.0.6"
+          (sources."jest-resolve-27.3.1" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
@@ -8788,21 +8324,21 @@ let
               sources."supports-color-7.2.0"
             ];
           })
-          sources."jest-resolve-dependencies-26.6.3"
-          (sources."jest-runner-26.6.3" // {
+          sources."jest-resolve-dependencies-27.3.1"
+          (sources."jest-runner-27.3.1" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
               sources."supports-color-7.2.0"
             ];
           })
-          (sources."jest-runtime-26.6.3" // {
+          (sources."jest-runtime-27.3.1" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
@@ -8810,336 +8346,213 @@ let
               sources."supports-color-7.2.0"
             ];
           })
-          sources."jest-serializer-26.6.2"
-          (sources."jest-snapshot-26.6.2" // {
+          sources."jest-serializer-27.0.6"
+          (sources."jest-snapshot-27.3.1" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
-              sources."semver-7.3.2"
               sources."supports-color-7.2.0"
             ];
           })
-          (sources."jest-util-26.6.2" // {
+          (sources."jest-util-27.3.1" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."braces-3.0.2"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
-              sources."fill-range-7.0.1"
               sources."has-flag-4.0.0"
-              sources."is-number-7.0.0"
-              sources."micromatch-4.0.2"
               sources."supports-color-7.2.0"
-              sources."to-regex-range-5.0.1"
             ];
           })
-          (sources."jest-validate-26.6.2" // {
+          (sources."jest-validate-27.3.1" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."camelcase-6.2.0"
-              sources."chalk-4.1.0"
+              sources."camelcase-6.2.1"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
               sources."supports-color-7.2.0"
             ];
           })
-          (sources."jest-watcher-26.6.2" // {
+          (sources."jest-watcher-27.3.1" // {
             dependencies = [
               sources."ansi-styles-4.3.0"
-              sources."chalk-4.1.0"
+              sources."chalk-4.1.2"
               sources."color-convert-2.0.1"
               sources."color-name-1.1.4"
               sources."has-flag-4.0.0"
               sources."supports-color-7.2.0"
             ];
           })
-          (sources."jest-worker-26.6.2" // {
+          (sources."jest-worker-27.3.1" // {
             dependencies = [
               sources."has-flag-4.0.0"
-              sources."supports-color-7.2.0"
+              sources."supports-color-8.1.1"
             ];
           })
           sources."js-tokens-4.0.0"
-          sources."js-yaml-3.14.0"
-          sources."jsbn-0.1.1"
-          sources."jsdom-16.4.0"
+          sources."js-yaml-3.14.1"
+          sources."jsdom-16.7.0"
           sources."jsesc-2.5.2"
-          sources."json-parse-even-better-errors-2.3.1"
-          sources."json-schema-0.2.3"
           sources."json-schema-traverse-0.4.1"
           sources."json-stable-stringify-without-jsonify-1.0.1"
-          sources."json-stringify-safe-5.0.1"
-          sources."json5-2.1.3"
-          (sources."jsonfile-6.1.0" // {
-            dependencies = [
-              sources."universalify-2.0.0"
-            ];
-          })
-          sources."jsprim-1.4.1"
-          sources."kind-of-6.0.3"
+          sources."json5-2.2.0"
+          sources."jsonc-parser-3.0.0"
           sources."kleur-3.0.3"
           sources."leven-3.1.0"
           sources."levn-0.4.1"
-          sources."lines-and-columns-1.1.6"
           sources."locate-path-5.0.0"
-          sources."lodash-4.17.20"
-          sources."lodash.sortby-4.7.0"
+          sources."lodash-4.17.21"
+          sources."lodash.debounce-4.0.8"
+          sources."lodash.merge-4.6.2"
+          sources."lru-cache-6.0.0"
           sources."lunr-2.3.9"
-          sources."make-dir-2.1.0"
-          sources."makeerror-1.0.11"
-          sources."map-cache-0.2.2"
-          sources."map-visit-1.0.0"
-          sources."marked-1.2.3"
+          (sources."make-dir-2.1.0" // {
+            dependencies = [
+              sources."semver-5.7.1"
+            ];
+          })
+          sources."makeerror-1.0.12"
+          sources."marked-3.0.8"
           sources."merge-stream-2.0.0"
           sources."merge2-1.4.1"
-          sources."micromatch-3.1.10"
-          sources."mime-db-1.44.0"
-          sources."mime-types-2.1.27"
+          sources."micromatch-4.0.4"
+          sources."mime-db-1.51.0"
+          sources."mime-types-2.1.34"
           sources."mimic-fn-2.1.0"
-          sources."mimic-response-2.1.0"
+          sources."mimic-response-3.1.0"
           sources."minimatch-3.0.4"
           sources."minimist-1.2.5"
           sources."mixin-deep-2.0.1"
-          sources."mkdirp-0.5.5"
           sources."mkdirp-classic-0.5.3"
           sources."ms-2.1.2"
-          sources."nan-2.14.2"
-          sources."nanomatch-1.2.13"
+          sources."mz-2.7.0"
+          sources."nan-2.15.0"
           sources."napi-build-utils-1.0.2"
           sources."natural-compare-1.4.0"
           sources."neo-async-2.6.2"
-          sources."nice-try-1.0.5"
-          sources."node-abi-2.19.1"
+          sources."node-abi-3.5.0"
           sources."node-int64-0.4.0"
           sources."node-modules-regexp-1.0.0"
-          (sources."node-notifier-8.0.0" // {
-            dependencies = [
-              sources."semver-7.3.2"
-              sources."which-2.0.2"
-            ];
-          })
-          sources."node-releases-1.1.66"
-          sources."noop-logger-0.1.1"
-          sources."normalize-package-data-2.5.0"
+          sources."node-releases-2.0.1"
           sources."normalize-path-3.0.0"
-          sources."npm-run-path-2.0.2"
+          sources."npm-run-path-4.0.1"
           sources."npmlog-4.1.2"
           sources."number-is-nan-1.0.1"
           sources."nwsapi-2.2.0"
-          sources."oauth-sign-0.9.0"
           sources."object-assign-4.1.1"
-          (sources."object-copy-0.1.0" // {
-            dependencies = [
-              sources."define-property-0.2.5"
-              sources."kind-of-3.2.2"
-            ];
-          })
           sources."object-keys-1.1.1"
-          sources."object-visit-1.0.1"
           sources."object.assign-4.1.2"
-          sources."object.pick-1.3.0"
           sources."once-1.4.0"
           sources."onetime-5.1.2"
           sources."optionator-0.9.1"
-          sources."p-each-series-2.1.0"
-          sources."p-finally-1.0.0"
           sources."p-limit-2.3.0"
           sources."p-locate-4.1.0"
           sources."p-try-2.2.0"
           sources."parent-module-1.0.1"
-          sources."parse-json-5.1.0"
-          sources."parse5-5.1.1"
-          sources."pascalcase-0.1.1"
-          sources."path-dirname-1.0.2"
+          sources."parse5-6.0.1"
           sources."path-exists-4.0.0"
           sources."path-is-absolute-1.0.1"
-          sources."path-key-2.0.1"
-          sources."path-parse-1.0.6"
+          sources."path-key-3.1.1"
+          sources."path-parse-1.0.7"
           sources."path-type-4.0.0"
-          sources."performance-now-2.1.0"
-          sources."picomatch-2.2.2"
+          sources."picocolors-1.0.0"
+          sources."picomatch-2.3.0"
           sources."pify-4.0.1"
           sources."pirates-4.0.1"
           sources."pkg-dir-4.2.0"
-          sources."posix-character-classes-0.1.1"
-          sources."prebuild-install-5.3.6"
+          sources."prebuild-install-7.0.0"
           sources."prelude-ls-1.2.1"
-          (sources."pretty-format-26.6.2" // {
+          (sources."pretty-format-27.3.1" // {
             dependencies = [
-              sources."ansi-regex-5.0.0"
-              sources."ansi-styles-4.3.0"
-              sources."color-convert-2.0.1"
-              sources."color-name-1.1.4"
+              sources."ansi-regex-5.0.1"
+              sources."ansi-styles-5.2.0"
             ];
           })
           sources."process-nextick-args-2.0.1"
           sources."progress-2.0.3"
-          sources."prompts-2.4.0"
+          sources."prompts-2.4.2"
           sources."psl-1.8.0"
           sources."pump-3.0.0"
           sources."punycode-2.1.1"
-          sources."qs-6.5.2"
+          sources."queue-microtask-1.2.3"
           sources."rc-1.2.8"
-          sources."react-is-17.0.1"
-          (sources."read-pkg-5.2.0" // {
-            dependencies = [
-              sources."type-fest-0.6.0"
-            ];
-          })
-          sources."read-pkg-up-7.0.1"
+          sources."react-is-17.0.2"
           sources."readable-stream-2.3.7"
-          sources."readdirp-2.2.1"
-          sources."rechoir-0.6.2"
+          sources."readdirp-3.6.0"
           sources."regenerate-1.4.2"
-          sources."regenerate-unicode-properties-8.2.0"
-          sources."regenerator-runtime-0.13.7"
+          sources."regenerate-unicode-properties-9.0.0"
+          sources."regenerator-runtime-0.13.9"
           sources."regenerator-transform-0.14.5"
-          sources."regex-not-1.0.2"
-          sources."regexpp-3.1.0"
-          sources."regexpu-core-4.7.1"
+          sources."regexpp-3.2.0"
+          sources."regexpu-core-4.8.0"
           sources."regjsgen-0.5.2"
-          (sources."regjsparser-0.6.4" // {
+          (sources."regjsparser-0.7.0" // {
             dependencies = [
               sources."jsesc-0.5.0"
             ];
           })
-          sources."remove-trailing-separator-1.1.0"
-          sources."repeat-element-1.1.3"
-          sources."repeat-string-1.6.1"
-          (sources."request-2.88.2" // {
-            dependencies = [
-              sources."tough-cookie-2.5.0"
-              sources."uuid-3.4.0"
-            ];
-          })
-          sources."request-promise-core-1.1.4"
-          (sources."request-promise-native-1.0.9" // {
-            dependencies = [
-              sources."tough-cookie-2.5.0"
-            ];
-          })
           sources."require-directory-2.1.1"
-          sources."require-main-filename-2.0.0"
-          sources."resolve-1.19.0"
+          sources."resolve-1.20.0"
           sources."resolve-cwd-3.0.0"
           sources."resolve-from-5.0.0"
-          sources."resolve-url-0.2.1"
-          sources."ret-0.1.15"
+          sources."resolve.exports-1.1.0"
           sources."reusify-1.0.4"
-          sources."rimraf-2.6.3"
-          sources."rsvp-4.8.5"
-          sources."run-parallel-1.1.10"
+          sources."rimraf-3.0.2"
+          sources."run-parallel-1.2.0"
           sources."safe-buffer-5.1.2"
-          sources."safe-regex-1.1.0"
           sources."safer-buffer-2.1.2"
-          sources."sane-4.1.0"
           sources."saxes-5.0.1"
-          sources."semver-5.7.1"
-          sources."serialport-9.0.2"
+          sources."semver-7.3.5"
+          sources."serialport-9.2.8"
           sources."set-blocking-2.0.0"
-          (sources."set-value-2.0.1" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
-          sources."shebang-command-1.2.0"
-          sources."shebang-regex-1.0.0"
-          sources."shelljs-0.8.4"
-          sources."shellwords-0.1.1"
-          sources."signal-exit-3.0.3"
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."shiki-0.9.13"
+          sources."signal-exit-3.0.6"
           sources."simple-concat-1.0.1"
-          sources."simple-get-3.1.0"
+          sources."simple-get-4.0.0"
           sources."sisteransi-1.0.5"
           sources."slash-2.0.0"
-          (sources."slice-ansi-2.1.0" // {
-            dependencies = [
-              sources."is-fullwidth-code-point-2.0.0"
-            ];
-          })
           sources."slip-1.0.2"
-          (sources."snapdragon-0.8.2" // {
-            dependencies = [
-              sources."debug-2.6.9"
-              sources."define-property-0.2.5"
-              sources."extend-shallow-2.0.1"
-              sources."ms-2.0.0"
-            ];
-          })
-          (sources."snapdragon-node-2.1.1" // {
-            dependencies = [
-              sources."define-property-1.0.0"
-              sources."is-accessor-descriptor-1.0.0"
-              sources."is-data-descriptor-1.0.0"
-              sources."is-descriptor-1.0.2"
-            ];
-          })
-          (sources."snapdragon-util-3.0.1" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
           sources."source-map-0.5.7"
-          sources."source-map-resolve-0.5.3"
-          (sources."source-map-support-0.5.19" // {
+          (sources."source-map-support-0.5.21" // {
             dependencies = [
               sources."source-map-0.6.1"
             ];
           })
-          sources."source-map-url-0.4.0"
-          sources."spdx-correct-3.1.1"
-          sources."spdx-exceptions-2.3.0"
-          sources."spdx-expression-parse-3.0.1"
-          sources."spdx-license-ids-3.0.6"
-          sources."split-string-3.1.0"
           sources."sprintf-js-1.0.3"
-          sources."sshpk-1.16.1"
-          (sources."stack-utils-2.0.3" // {
+          (sources."stack-utils-2.0.5" // {
             dependencies = [
               sources."escape-string-regexp-2.0.0"
             ];
           })
-          (sources."static-extend-0.1.2" // {
+          (sources."string-length-4.0.2" // {
             dependencies = [
-              sources."define-property-0.2.5"
-            ];
-          })
-          sources."stealthy-require-1.1.1"
-          (sources."string-length-4.0.1" // {
-            dependencies = [
-              sources."ansi-regex-5.0.0"
-              sources."strip-ansi-6.0.0"
+              sources."ansi-regex-5.0.1"
+              sources."strip-ansi-6.0.1"
             ];
           })
           sources."string-width-1.0.2"
           sources."string_decoder-1.1.1"
           sources."strip-ansi-3.0.1"
           sources."strip-bom-4.0.0"
-          sources."strip-eof-1.0.0"
           sources."strip-final-newline-2.0.0"
           sources."strip-json-comments-2.0.1"
           sources."supports-color-5.5.0"
-          (sources."supports-hyperlinks-2.1.0" // {
+          (sources."supports-hyperlinks-2.2.0" // {
             dependencies = [
               sources."has-flag-4.0.0"
               sources."supports-color-7.2.0"
             ];
           })
           sources."symbol-tree-3.2.4"
-          (sources."table-5.4.6" // {
-            dependencies = [
-              sources."ansi-regex-4.1.0"
-              sources."is-fullwidth-code-point-2.0.0"
-              sources."string-width-3.1.0"
-              sources."strip-ansi-5.2.0"
-            ];
-          })
           sources."tar-fs-2.1.1"
-          (sources."tar-stream-2.1.4" // {
+          (sources."tar-stream-2.2.0" // {
             dependencies = [
               sources."readable-stream-3.6.0"
             ];
@@ -9147,146 +8560,131 @@ let
           sources."terminal-link-2.1.1"
           sources."test-exclude-6.0.0"
           sources."text-table-0.2.0"
-          sources."throat-5.0.0"
-          sources."tmpl-1.0.4"
+          sources."thenify-3.3.1"
+          sources."thenify-all-1.6.0"
+          sources."throat-6.0.1"
+          sources."tmpl-1.0.5"
           sources."to-fast-properties-2.0.0"
-          (sources."to-object-path-0.3.0" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."to-regex-3.0.2"
-          sources."to-regex-range-2.1.1"
-          sources."tough-cookie-3.0.1"
-          sources."tr46-2.0.2"
+          sources."to-regex-range-5.0.1"
+          sources."tough-cookie-4.0.0"
+          sources."tr46-2.1.0"
           sources."tslib-1.14.1"
-          sources."tsutils-3.17.1"
+          sources."tsutils-3.21.0"
           sources."tunnel-agent-0.6.0"
-          sources."tweetnacl-0.14.5"
           sources."type-check-0.4.0"
           sources."type-detect-4.0.8"
-          sources."type-fest-0.8.1"
+          sources."type-fest-0.20.2"
           sources."typedarray-to-buffer-3.1.5"
-          (sources."typedoc-0.19.2" // {
-            dependencies = [
-              sources."semver-7.3.2"
-            ];
-          })
-          sources."typedoc-default-themes-0.11.4"
-          sources."typedoc-plugin-markdown-3.0.11"
-          sources."typedoc-plugin-no-inherit-1.2.0"
+          sources."typedoc-0.22.10"
+          sources."typedoc-plugin-markdown-3.11.7"
+          sources."typedoc-plugin-no-inherit-1.3.1"
           sources."typedoc-plugin-sourcefile-url-1.0.6"
-          sources."typescript-4.0.5"
-          sources."uglify-js-3.11.6"
-          sources."unicode-canonical-property-names-ecmascript-1.0.4"
-          sources."unicode-match-property-ecmascript-1.0.4"
-          sources."unicode-match-property-value-ecmascript-1.2.0"
-          sources."unicode-property-aliases-ecmascript-1.1.0"
-          sources."union-value-1.0.1"
-          sources."universalify-1.0.0"
-          (sources."unset-value-1.0.0" // {
-            dependencies = [
-              (sources."has-value-0.3.1" // {
-                dependencies = [
-                  sources."isobject-2.1.0"
-                ];
-              })
-              sources."has-values-0.1.4"
-            ];
-          })
-          sources."upath-1.2.0"
-          sources."uri-js-4.4.0"
-          sources."urix-0.1.0"
-          sources."use-3.1.1"
+          sources."typescript-4.5.2"
+          sources."uglify-js-3.14.3"
+          sources."unicode-canonical-property-names-ecmascript-2.0.0"
+          sources."unicode-match-property-ecmascript-2.0.0"
+          sources."unicode-match-property-value-ecmascript-2.0.0"
+          sources."unicode-property-aliases-ecmascript-2.0.0"
+          sources."universalify-0.1.2"
+          sources."uri-js-4.4.1"
           sources."util-deprecate-1.0.2"
-          sources."uuid-8.3.1"
-          sources."v8-compile-cache-2.2.0"
-          (sources."v8-to-istanbul-7.0.0" // {
+          sources."v8-compile-cache-2.3.0"
+          (sources."v8-to-istanbul-8.1.0" // {
             dependencies = [
               sources."source-map-0.7.3"
             ];
           })
-          sources."validate-npm-package-license-3.0.4"
-          sources."verror-1.10.0"
+          sources."vscode-oniguruma-1.6.1"
+          sources."vscode-textmate-5.2.0"
           sources."w3c-hr-time-1.0.2"
           sources."w3c-xmlserializer-2.0.0"
-          sources."walker-1.0.7"
+          sources."walker-1.0.8"
           sources."webidl-conversions-6.1.0"
           sources."whatwg-encoding-1.0.5"
           sources."whatwg-mimetype-2.3.0"
-          sources."whatwg-url-8.4.0"
-          sources."which-1.3.1"
-          sources."which-module-2.0.0"
-          sources."which-pm-runs-1.0.0"
-          sources."wide-align-1.1.3"
+          sources."whatwg-url-8.7.0"
+          sources."which-2.0.2"
+          sources."wide-align-1.1.5"
           sources."word-wrap-1.2.3"
           sources."wordwrap-1.0.0"
-          (sources."wrap-ansi-6.2.0" // {
+          (sources."wrap-ansi-7.0.0" // {
             dependencies = [
-              sources."ansi-regex-5.0.0"
+              sources."ansi-regex-5.0.1"
               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."is-fullwidth-code-point-3.0.0"
-              sources."string-width-4.2.0"
-              sources."strip-ansi-6.0.0"
+              sources."string-width-4.2.3"
+              sources."strip-ansi-6.0.1"
             ];
           })
           sources."wrappy-1.0.2"
-          sources."write-1.0.3"
           sources."write-file-atomic-3.0.3"
-          sources."ws-7.4.0"
+          sources."ws-7.5.6"
           sources."xml-name-validator-3.0.0"
           sources."xmlchars-2.2.0"
-          sources."y18n-4.0.0"
-          (sources."yargs-15.4.1" // {
+          sources."y18n-5.0.8"
+          sources."yallist-4.0.0"
+          (sources."yargs-16.2.0" // {
             dependencies = [
-              sources."ansi-regex-5.0.0"
-              sources."emoji-regex-8.0.0"
+              sources."ansi-regex-5.0.1"
               sources."is-fullwidth-code-point-3.0.0"
-              sources."string-width-4.2.0"
-              sources."strip-ansi-6.0.0"
+              sources."string-width-4.2.3"
+              sources."strip-ansi-6.0.1"
             ];
           })
-          sources."yargs-parser-18.1.3"
+          sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."zigbee-herdsman-converters-13.0.7" // {
+      (sources."zigbee-herdsman-converters-14.0.336" // {
         dependencies = [
-          sources."@babel/code-frame-7.10.4"
-          (sources."@babel/core-7.12.9" // {
+          sources."@babel/code-frame-7.16.0"
+          sources."@babel/compat-data-7.16.4"
+          (sources."@babel/core-7.16.0" // {
             dependencies = [
-              sources."semver-5.7.1"
+              sources."semver-6.3.0"
               sources."source-map-0.5.7"
             ];
           })
-          (sources."@babel/generator-7.12.5" // {
+          (sources."@babel/generator-7.16.0" // {
             dependencies = [
               sources."source-map-0.5.7"
             ];
           })
-          sources."@babel/helper-function-name-7.10.4"
-          sources."@babel/helper-get-function-arity-7.10.4"
-          sources."@babel/helper-member-expression-to-functions-7.12.7"
-          sources."@babel/helper-module-imports-7.12.5"
-          sources."@babel/helper-module-transforms-7.12.1"
-          sources."@babel/helper-optimise-call-expression-7.12.7"
-          sources."@babel/helper-plugin-utils-7.10.4"
-          sources."@babel/helper-replace-supers-7.12.5"
-          sources."@babel/helper-simple-access-7.12.1"
-          sources."@babel/helper-split-export-declaration-7.11.0"
-          sources."@babel/helper-validator-identifier-7.10.4"
-          sources."@babel/helpers-7.12.5"
-          (sources."@babel/highlight-7.10.4" // {
+          (sources."@babel/helper-compilation-targets-7.16.3" // {
             dependencies = [
+              sources."semver-6.3.0"
+            ];
+          })
+          sources."@babel/helper-function-name-7.16.0"
+          sources."@babel/helper-get-function-arity-7.16.0"
+          sources."@babel/helper-hoist-variables-7.16.0"
+          sources."@babel/helper-member-expression-to-functions-7.16.0"
+          sources."@babel/helper-module-imports-7.16.0"
+          sources."@babel/helper-module-transforms-7.16.0"
+          sources."@babel/helper-optimise-call-expression-7.16.0"
+          sources."@babel/helper-plugin-utils-7.14.5"
+          sources."@babel/helper-replace-supers-7.16.0"
+          sources."@babel/helper-simple-access-7.16.0"
+          sources."@babel/helper-split-export-declaration-7.16.0"
+          sources."@babel/helper-validator-identifier-7.15.7"
+          sources."@babel/helper-validator-option-7.14.5"
+          sources."@babel/helpers-7.16.3"
+          (sources."@babel/highlight-7.16.0" // {
+            dependencies = [
+              sources."ansi-styles-3.2.1"
               sources."chalk-2.4.2"
+              sources."color-convert-1.9.3"
+              sources."color-name-1.1.3"
+              sources."escape-string-regexp-1.0.5"
+              sources."has-flag-3.0.0"
+              sources."supports-color-5.5.0"
             ];
           })
-          sources."@babel/parser-7.12.7"
+          sources."@babel/parser-7.16.4"
           sources."@babel/plugin-syntax-async-generators-7.8.4"
           sources."@babel/plugin-syntax-bigint-7.8.3"
-          sources."@babel/plugin-syntax-class-properties-7.12.1"
+          sources."@babel/plugin-syntax-class-properties-7.12.13"
           sources."@babel/plugin-syntax-import-meta-7.10.4"
           sources."@babel/plugin-syntax-json-strings-7.8.3"
           sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
@@ -9295,162 +8693,132 @@ let
           sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
           sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
           sources."@babel/plugin-syntax-optional-chaining-7.8.3"
-          sources."@babel/plugin-syntax-top-level-await-7.12.1"
-          sources."@babel/template-7.12.7"
-          (sources."@babel/traverse-7.12.9" // {
+          sources."@babel/plugin-syntax-top-level-await-7.14.5"
+          sources."@babel/plugin-syntax-typescript-7.16.0"
+          sources."@babel/template-7.16.0"
+          (sources."@babel/traverse-7.16.3" // {
             dependencies = [
               sources."globals-11.12.0"
             ];
           })
-          sources."@babel/types-7.12.7"
+          sources."@babel/types-7.16.0"
           sources."@bcoe/v8-coverage-0.2.3"
-          sources."@cnakazawa/watch-1.0.4"
-          sources."@eslint/eslintrc-0.2.1"
+          sources."@eslint/eslintrc-1.0.4"
+          sources."@humanwhocodes/config-array-0.6.0"
+          sources."@humanwhocodes/object-schema-1.2.1"
           (sources."@istanbuljs/load-nyc-config-1.1.0" // {
             dependencies = [
+              sources."argparse-1.0.10"
+              sources."js-yaml-3.14.1"
               sources."resolve-from-5.0.0"
             ];
           })
-          sources."@istanbuljs/schema-0.1.2"
-          sources."@jest/console-26.6.2"
-          (sources."@jest/core-26.6.3" // {
-            dependencies = [
-              sources."rimraf-3.0.2"
-            ];
-          })
-          sources."@jest/environment-26.6.2"
-          sources."@jest/fake-timers-26.6.2"
-          sources."@jest/globals-26.6.2"
-          sources."@jest/reporters-26.6.2"
-          sources."@jest/source-map-26.6.2"
-          sources."@jest/test-result-26.6.2"
-          sources."@jest/test-sequencer-26.6.3"
-          sources."@jest/transform-26.6.2"
-          sources."@jest/types-26.6.2"
-          sources."@nodelib/fs.scandir-2.1.3"
-          sources."@nodelib/fs.stat-2.0.3"
-          sources."@nodelib/fs.walk-1.2.4"
-          sources."@sinonjs/commons-1.8.1"
-          sources."@sinonjs/fake-timers-6.0.1"
-          sources."@types/babel__core-7.1.12"
-          sources."@types/babel__generator-7.6.2"
-          sources."@types/babel__template-7.4.0"
-          sources."@types/babel__traverse-7.0.16"
-          sources."@types/graceful-fs-4.1.4"
+          sources."@istanbuljs/schema-0.1.3"
+          sources."@jest/console-27.4.2"
+          sources."@jest/core-27.4.3"
+          sources."@jest/environment-27.4.2"
+          sources."@jest/fake-timers-27.4.2"
+          sources."@jest/globals-27.4.2"
+          sources."@jest/reporters-27.4.2"
+          sources."@jest/source-map-27.4.0"
+          sources."@jest/test-result-27.4.2"
+          sources."@jest/test-sequencer-27.4.2"
+          sources."@jest/transform-27.4.2"
+          sources."@jest/types-27.4.2"
+          sources."@nodelib/fs.scandir-2.1.5"
+          sources."@nodelib/fs.stat-2.0.5"
+          sources."@nodelib/fs.walk-1.2.8"
+          sources."@sinonjs/commons-1.8.3"
+          sources."@sinonjs/fake-timers-8.1.0"
+          sources."@tootallnate/once-1.1.2"
+          sources."@types/babel__core-7.1.16"
+          sources."@types/babel__generator-7.6.3"
+          sources."@types/babel__template-7.4.1"
+          sources."@types/babel__traverse-7.14.2"
+          sources."@types/graceful-fs-4.1.5"
           sources."@types/istanbul-lib-coverage-2.0.3"
           sources."@types/istanbul-lib-report-3.0.0"
-          sources."@types/istanbul-reports-3.0.0"
-          sources."@types/json-schema-7.0.6"
-          sources."@types/node-14.14.10"
-          sources."@types/normalize-package-data-2.4.0"
-          sources."@types/prettier-2.1.5"
-          sources."@types/stack-utils-2.0.0"
-          sources."@types/yargs-15.0.10"
-          sources."@types/yargs-parser-15.0.0"
-          sources."@typescript-eslint/experimental-utils-4.8.2"
-          sources."@typescript-eslint/scope-manager-4.8.2"
-          sources."@typescript-eslint/types-4.8.2"
-          sources."@typescript-eslint/typescript-estree-4.8.2"
-          sources."@typescript-eslint/visitor-keys-4.8.2"
+          sources."@types/istanbul-reports-3.0.1"
+          sources."@types/json-schema-7.0.9"
+          sources."@types/node-16.11.11"
+          sources."@types/prettier-2.4.2"
+          sources."@types/stack-utils-2.0.1"
+          sources."@types/yargs-16.0.4"
+          sources."@types/yargs-parser-20.2.1"
+          (sources."@typescript-eslint/experimental-utils-5.5.0" // {
+            dependencies = [
+              sources."eslint-scope-5.1.1"
+              sources."estraverse-4.3.0"
+            ];
+          })
+          sources."@typescript-eslint/scope-manager-5.5.0"
+          sources."@typescript-eslint/types-5.5.0"
+          sources."@typescript-eslint/typescript-estree-5.5.0"
+          sources."@typescript-eslint/visitor-keys-5.5.0"
           sources."abab-2.0.5"
-          sources."acorn-7.4.1"
-          sources."acorn-globals-6.0.0"
-          sources."acorn-jsx-5.3.1"
+          sources."acorn-8.6.0"
+          (sources."acorn-globals-6.0.0" // {
+            dependencies = [
+              sources."acorn-7.4.1"
+            ];
+          })
+          sources."acorn-jsx-5.3.2"
           sources."acorn-walk-7.2.0"
           sources."agent-base-6.0.2"
           sources."ajv-6.12.6"
           sources."ansi-colors-4.1.1"
-          (sources."ansi-escapes-4.3.1" // {
+          (sources."ansi-escapes-4.3.2" // {
             dependencies = [
-              sources."type-fest-0.11.0"
+              sources."type-fest-0.21.3"
             ];
           })
-          sources."ansi-regex-5.0.0"
-          sources."ansi-styles-3.2.1"
-          sources."anymatch-3.1.1"
-          sources."argparse-1.0.10"
-          sources."arr-diff-4.0.0"
-          sources."arr-flatten-1.1.0"
-          sources."arr-union-3.1.0"
+          sources."ansi-regex-5.0.1"
+          sources."ansi-styles-4.3.0"
+          sources."anymatch-3.1.2"
+          sources."argparse-2.0.1"
           sources."array-union-2.1.0"
-          sources."array-unique-0.3.2"
-          sources."asn1-0.2.4"
-          sources."assert-plus-1.0.0"
-          sources."assign-symbols-1.0.0"
-          sources."astral-regex-1.0.0"
           sources."asynckit-0.4.0"
-          sources."atob-2.1.2"
-          sources."aws-sign2-0.7.0"
-          sources."aws4-1.11.0"
-          sources."axios-0.21.0"
-          sources."babel-jest-26.6.3"
-          sources."babel-plugin-istanbul-6.0.0"
-          sources."babel-plugin-jest-hoist-26.6.2"
-          sources."babel-preset-current-node-syntax-1.0.0"
-          sources."babel-preset-jest-26.6.2"
-          sources."balanced-match-1.0.0"
-          (sources."base-0.11.2" // {
+          sources."axios-0.24.0"
+          sources."babel-jest-27.4.2"
+          (sources."babel-plugin-istanbul-6.1.1" // {
             dependencies = [
-              sources."define-property-1.0.0"
-              sources."is-accessor-descriptor-1.0.0"
-              sources."is-data-descriptor-1.0.0"
-              sources."is-descriptor-1.0.2"
+              sources."istanbul-lib-instrument-5.1.0"
+              sources."semver-6.3.0"
             ];
           })
+          sources."babel-plugin-jest-hoist-27.4.0"
+          sources."babel-preset-current-node-syntax-1.0.1"
+          sources."babel-preset-jest-27.4.0"
+          sources."balanced-match-1.0.2"
           sources."base64-js-1.5.1"
-          sources."bcrypt-pbkdf-1.0.2"
-          sources."bl-4.0.3"
+          sources."bl-4.1.0"
           sources."brace-expansion-1.1.11"
           sources."braces-3.0.2"
           sources."browser-process-hrtime-1.0.0"
+          sources."browserslist-4.18.1"
           sources."bser-2.1.1"
           sources."buffer-5.7.1"
           sources."buffer-crc32-0.2.13"
-          sources."buffer-from-1.1.1"
-          sources."cache-base-1.0.1"
+          sources."buffer-from-1.1.2"
           sources."callsites-3.1.0"
           sources."camelcase-5.3.1"
-          sources."capture-exit-2.0.0"
-          sources."caseless-0.12.0"
-          (sources."chalk-4.1.0" // {
-            dependencies = [
-              sources."ansi-styles-4.3.0"
-              sources."color-convert-2.0.1"
-              sources."color-name-1.1.4"
-              sources."has-flag-4.0.0"
-              sources."supports-color-7.2.0"
-            ];
-          })
+          sources."caniuse-lite-1.0.30001283"
+          sources."chalk-4.1.2"
           sources."char-regex-1.0.2"
-          sources."ci-info-2.0.0"
-          sources."cjs-module-lexer-0.6.0"
-          (sources."class-utils-0.3.6" // {
-            dependencies = [
-              sources."define-property-0.2.5"
-            ];
-          })
-          (sources."cliui-6.0.0" // {
-            dependencies = [
-              sources."emoji-regex-8.0.0"
-              sources."is-fullwidth-code-point-3.0.0"
-              sources."string-width-4.2.0"
-            ];
-          })
+          sources."ci-info-3.3.0"
+          sources."cjs-module-lexer-1.2.2"
+          sources."cliui-7.0.4"
           sources."co-4.6.0"
           sources."collect-v8-coverage-1.0.1"
-          sources."collection-visit-1.0.0"
-          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."combined-stream-1.0.8"
-          sources."component-emitter-1.3.0"
           sources."concat-map-0.0.1"
-          (sources."convert-source-map-1.7.0" // {
+          (sources."convert-source-map-1.8.0" // {
             dependencies = [
               sources."safe-buffer-5.1.2"
             ];
           })
-          sources."copy-descriptor-0.1.1"
-          sources."core-util-is-1.0.2"
           sources."cross-spawn-7.0.3"
           sources."cssom-0.4.4"
           (sources."cssstyle-2.3.0" // {
@@ -9458,24 +8826,15 @@ let
               sources."cssom-0.3.8"
             ];
           })
-          sources."dashdash-1.14.1"
           sources."data-urls-2.0.0"
-          sources."debug-4.3.1"
-          sources."decamelize-1.2.0"
-          sources."decimal.js-10.2.1"
-          sources."decode-uri-component-0.2.0"
-          sources."deep-is-0.1.3"
+          sources."debug-4.3.3"
+          sources."decimal.js-10.3.1"
+          sources."dedent-0.7.0"
+          sources."deep-is-0.1.4"
           sources."deepmerge-4.2.2"
-          (sources."define-property-2.0.2" // {
-            dependencies = [
-              sources."is-accessor-descriptor-1.0.0"
-              sources."is-data-descriptor-1.0.0"
-              sources."is-descriptor-1.0.2"
-            ];
-          })
           sources."delayed-stream-1.0.0"
           sources."detect-newline-3.1.0"
-          sources."diff-sequences-26.6.2"
+          sources."diff-sequences-27.4.0"
           sources."dir-glob-3.0.1"
           sources."doctrine-3.0.0"
           (sources."domexception-2.0.1" // {
@@ -9483,14 +8842,14 @@ let
               sources."webidl-conversions-5.0.0"
             ];
           })
-          sources."ecc-jsbn-0.1.2"
-          sources."emittery-0.7.2"
-          sources."emoji-regex-7.0.3"
+          sources."electron-to-chromium-1.4.7"
+          sources."emittery-0.8.1"
+          sources."emoji-regex-8.0.0"
           sources."end-of-stream-1.4.4"
           sources."enquirer-2.3.6"
-          sources."error-ex-1.3.2"
-          sources."escape-string-regexp-1.0.5"
-          (sources."escodegen-1.14.3" // {
+          sources."escalade-3.1.1"
+          sources."escape-string-regexp-4.0.0"
+          (sources."escodegen-2.0.0" // {
             dependencies = [
               sources."levn-0.3.0"
               sources."optionator-0.8.3"
@@ -9498,580 +8857,1249 @@ let
               sources."type-check-0.3.2"
             ];
           })
-          sources."eslint-7.14.0"
+          sources."eslint-8.3.0"
           sources."eslint-config-google-0.14.0"
-          sources."eslint-plugin-jest-24.1.3"
-          sources."eslint-scope-5.1.1"
-          (sources."eslint-utils-2.1.0" // {
-            dependencies = [
-              sources."eslint-visitor-keys-1.3.0"
-            ];
-          })
-          sources."eslint-visitor-keys-2.0.0"
-          (sources."espree-7.3.0" // {
+          sources."eslint-plugin-jest-25.3.0"
+          sources."eslint-scope-7.1.0"
+          (sources."eslint-utils-3.0.0" // {
             dependencies = [
-              sources."eslint-visitor-keys-1.3.0"
+              sources."eslint-visitor-keys-2.1.0"
             ];
           })
+          sources."eslint-visitor-keys-3.1.0"
+          sources."espree-9.1.0"
           sources."esprima-4.0.1"
-          (sources."esquery-1.3.1" // {
-            dependencies = [
-              sources."estraverse-5.2.0"
-            ];
-          })
-          (sources."esrecurse-4.3.0" // {
-            dependencies = [
-              sources."estraverse-5.2.0"
-            ];
-          })
-          sources."estraverse-4.3.0"
+          sources."esquery-1.4.0"
+          sources."esrecurse-4.3.0"
+          sources."estraverse-5.3.0"
           sources."esutils-2.0.3"
-          sources."exec-sh-0.3.4"
-          (sources."execa-1.0.0" // {
-            dependencies = [
-              sources."cross-spawn-6.0.5"
-              sources."path-key-2.0.1"
-              sources."semver-5.7.1"
-              sources."shebang-command-1.2.0"
-              sources."shebang-regex-1.0.0"
-              sources."which-1.3.1"
-            ];
-          })
+          sources."execa-5.1.1"
           sources."exit-0.1.2"
-          (sources."expand-brackets-2.1.4" // {
-            dependencies = [
-              sources."debug-2.6.9"
-              sources."define-property-0.2.5"
-              sources."extend-shallow-2.0.1"
-              sources."ms-2.0.0"
-            ];
-          })
-          (sources."expect-26.6.2" // {
-            dependencies = [
-              sources."ansi-styles-4.3.0"
-              sources."color-convert-2.0.1"
-              sources."color-name-1.1.4"
-            ];
-          })
-          sources."extend-3.0.2"
-          (sources."extend-shallow-3.0.2" // {
+          (sources."expect-27.4.2" // {
             dependencies = [
-              sources."is-extendable-1.0.1"
+              sources."ansi-styles-5.2.0"
             ];
           })
-          (sources."extglob-2.0.4" // {
+          sources."fast-deep-equal-3.1.3"
+          (sources."fast-glob-3.2.7" // {
             dependencies = [
-              sources."define-property-1.0.0"
-              sources."extend-shallow-2.0.1"
-              sources."is-accessor-descriptor-1.0.0"
-              sources."is-data-descriptor-1.0.0"
-              sources."is-descriptor-1.0.2"
+              sources."glob-parent-5.1.2"
             ];
           })
-          sources."extsprintf-1.3.0"
-          sources."fast-deep-equal-3.1.3"
-          sources."fast-glob-3.2.4"
           sources."fast-json-stable-stringify-2.1.0"
           sources."fast-levenshtein-2.0.6"
-          sources."fastq-1.9.0"
+          sources."fastq-1.13.0"
           sources."fb-watchman-2.0.1"
-          sources."file-entry-cache-5.0.1"
+          sources."file-entry-cache-6.0.1"
           sources."fill-range-7.0.1"
           sources."find-up-4.1.0"
-          sources."flat-cache-2.0.1"
-          sources."flatted-2.0.2"
-          sources."follow-redirects-1.13.0"
-          sources."for-in-1.0.2"
-          sources."forever-agent-0.6.1"
-          sources."form-data-2.3.3"
-          sources."fragment-cache-0.2.1"
+          sources."flat-cache-3.0.4"
+          sources."flatted-3.2.4"
+          sources."follow-redirects-1.14.5"
+          sources."form-data-3.0.1"
           sources."fs-constants-1.0.0"
           sources."fs.realpath-1.0.0"
-          sources."fsevents-2.2.1"
+          sources."fsevents-2.3.2"
           sources."function-bind-1.1.1"
           sources."functional-red-black-tree-1.0.1"
           sources."gensync-1.0.0-beta.2"
           sources."get-caller-file-2.0.5"
           sources."get-package-type-0.1.0"
-          sources."get-stream-4.1.0"
-          sources."get-value-2.0.6"
-          sources."getpass-0.1.7"
-          sources."glob-7.1.6"
-          sources."glob-parent-5.1.1"
-          sources."globals-12.4.0"
-          (sources."globby-11.0.1" // {
+          sources."get-stream-6.0.1"
+          sources."glob-7.2.0"
+          sources."glob-parent-6.0.2"
+          sources."globals-13.12.0"
+          (sources."globby-11.0.4" // {
             dependencies = [
-              sources."ignore-5.1.8"
+              sources."ignore-5.1.9"
             ];
           })
-          sources."graceful-fs-4.2.4"
-          sources."growly-1.3.0"
-          sources."har-schema-2.0.0"
-          sources."har-validator-5.1.5"
+          sources."graceful-fs-4.2.8"
           sources."has-1.0.3"
-          sources."has-flag-3.0.0"
-          sources."has-value-1.0.0"
-          (sources."has-values-1.0.0" // {
-            dependencies = [
-              (sources."is-number-3.0.0" // {
-                dependencies = [
-                  sources."kind-of-3.2.2"
-                ];
-              })
-              sources."kind-of-4.0.0"
-            ];
-          })
-          sources."hosted-git-info-2.8.8"
+          sources."has-flag-4.0.0"
           sources."html-encoding-sniffer-2.0.1"
           sources."html-escaper-2.0.2"
-          sources."http-signature-1.2.0"
+          sources."http-proxy-agent-4.0.1"
           sources."https-proxy-agent-5.0.0"
-          sources."human-signals-1.1.1"
+          sources."human-signals-2.1.0"
           sources."iconv-lite-0.4.24"
           sources."ieee754-1.2.1"
           sources."ignore-4.0.6"
-          sources."import-fresh-3.2.2"
-          sources."import-local-3.0.2"
+          sources."import-fresh-3.3.0"
+          sources."import-local-3.0.3"
           sources."imurmurhash-0.1.4"
           sources."inflight-1.0.6"
           sources."inherits-2.0.4"
-          sources."ip-regex-2.1.0"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-arrayish-0.2.1"
-          sources."is-buffer-1.1.6"
-          sources."is-ci-2.0.0"
-          sources."is-core-module-2.2.0"
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-5.1.0"
-            ];
-          })
-          sources."is-docker-2.1.1"
-          sources."is-extendable-0.1.1"
+          sources."is-core-module-2.8.0"
           sources."is-extglob-2.1.1"
-          sources."is-fullwidth-code-point-2.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
           sources."is-generator-fn-2.1.0"
-          sources."is-glob-4.0.1"
+          sources."is-glob-4.0.3"
           sources."is-number-7.0.0"
-          sources."is-plain-object-2.0.4"
-          sources."is-potential-custom-element-name-1.0.0"
-          sources."is-stream-1.1.0"
+          sources."is-potential-custom-element-name-1.0.1"
+          sources."is-stream-2.0.1"
           sources."is-typedarray-1.0.0"
-          sources."is-windows-1.0.2"
-          sources."is-wsl-2.2.0"
-          sources."isarray-1.0.0"
           sources."isexe-2.0.0"
-          sources."isobject-3.0.1"
-          sources."isstream-0.1.2"
-          sources."istanbul-lib-coverage-3.0.0"
+          sources."istanbul-lib-coverage-3.2.0"
           (sources."istanbul-lib-instrument-4.0.3" // {
             dependencies = [
               sources."semver-6.3.0"
             ];
           })
-          (sources."istanbul-lib-report-3.0.0" // {
-            dependencies = [
-              sources."has-flag-4.0.0"
-              sources."supports-color-7.2.0"
-            ];
-          })
-          sources."istanbul-lib-source-maps-4.0.0"
-          sources."istanbul-reports-3.0.2"
-          (sources."jest-26.6.3" // {
-            dependencies = [
-              sources."jest-cli-26.6.3"
-            ];
-          })
-          (sources."jest-changed-files-26.6.2" // {
-            dependencies = [
-              sources."execa-4.1.0"
-              sources."get-stream-5.2.0"
-              sources."is-stream-2.0.0"
-              sources."npm-run-path-4.0.1"
-            ];
-          })
-          sources."jest-config-26.6.3"
-          sources."jest-diff-26.6.2"
-          sources."jest-docblock-26.0.0"
-          sources."jest-each-26.6.2"
-          sources."jest-environment-jsdom-26.6.2"
-          sources."jest-environment-node-26.6.2"
-          sources."jest-get-type-26.3.0"
-          sources."jest-haste-map-26.6.2"
-          sources."jest-jasmine2-26.6.3"
-          sources."jest-leak-detector-26.6.2"
-          sources."jest-matcher-utils-26.6.2"
-          sources."jest-message-util-26.6.2"
-          sources."jest-mock-26.6.2"
+          sources."istanbul-lib-report-3.0.0"
+          sources."istanbul-lib-source-maps-4.0.1"
+          sources."istanbul-reports-3.1.0"
+          (sources."jest-27.4.3" // {
+            dependencies = [
+              sources."jest-cli-27.4.3"
+            ];
+          })
+          sources."jest-changed-files-27.4.2"
+          sources."jest-circus-27.4.2"
+          sources."jest-config-27.4.3"
+          sources."jest-diff-27.4.2"
+          sources."jest-docblock-27.4.0"
+          sources."jest-each-27.4.2"
+          sources."jest-environment-jsdom-27.4.3"
+          sources."jest-environment-node-27.4.2"
+          sources."jest-get-type-27.4.0"
+          sources."jest-haste-map-27.4.2"
+          sources."jest-jasmine2-27.4.2"
+          sources."jest-leak-detector-27.4.2"
+          sources."jest-matcher-utils-27.4.2"
+          sources."jest-message-util-27.4.2"
+          sources."jest-mock-27.4.2"
           sources."jest-pnp-resolver-1.2.2"
-          sources."jest-regex-util-26.0.0"
-          sources."jest-resolve-26.6.2"
-          sources."jest-resolve-dependencies-26.6.3"
-          sources."jest-runner-26.6.3"
-          sources."jest-runtime-26.6.3"
-          sources."jest-serializer-26.6.2"
-          sources."jest-snapshot-26.6.2"
-          sources."jest-util-26.6.2"
-          (sources."jest-validate-26.6.2" // {
+          sources."jest-regex-util-27.4.0"
+          sources."jest-resolve-27.4.2"
+          sources."jest-resolve-dependencies-27.4.2"
+          sources."jest-runner-27.4.3"
+          sources."jest-runtime-27.4.2"
+          sources."jest-serializer-27.4.0"
+          sources."jest-snapshot-27.4.2"
+          sources."jest-util-27.4.2"
+          (sources."jest-validate-27.4.2" // {
             dependencies = [
-              sources."camelcase-6.2.0"
+              sources."camelcase-6.2.1"
             ];
           })
-          sources."jest-watcher-26.6.2"
-          (sources."jest-worker-26.6.2" // {
+          sources."jest-watcher-27.4.2"
+          (sources."jest-worker-27.4.2" // {
             dependencies = [
-              sources."has-flag-4.0.0"
-              sources."supports-color-7.2.0"
+              sources."supports-color-8.1.1"
             ];
           })
           sources."js-tokens-4.0.0"
-          sources."js-yaml-3.14.0"
-          sources."jsbn-0.1.1"
-          sources."jsdom-16.4.0"
+          sources."js-yaml-4.1.0"
+          sources."jsdom-16.7.0"
           sources."jsesc-2.5.2"
-          sources."json-parse-even-better-errors-2.3.1"
-          sources."json-schema-0.2.3"
           sources."json-schema-traverse-0.4.1"
           sources."json-stable-stringify-without-jsonify-1.0.1"
-          sources."json-stringify-safe-5.0.1"
-          sources."json5-2.1.3"
-          sources."jsprim-1.4.1"
-          sources."kind-of-6.0.3"
+          sources."json5-2.2.0"
           sources."kleur-3.0.3"
           sources."leven-3.1.0"
           sources."levn-0.4.1"
-          sources."lines-and-columns-1.1.6"
           sources."locate-path-5.0.0"
-          sources."lodash-4.17.20"
-          sources."lodash.sortby-4.7.0"
+          sources."lodash-4.17.21"
+          sources."lodash.merge-4.6.2"
+          sources."lru-cache-6.0.0"
           (sources."make-dir-3.1.0" // {
             dependencies = [
               sources."semver-6.3.0"
             ];
           })
-          sources."makeerror-1.0.11"
-          sources."map-cache-0.2.2"
-          sources."map-visit-1.0.0"
+          sources."makeerror-1.0.12"
           sources."merge-stream-2.0.0"
           sources."merge2-1.4.1"
-          sources."micromatch-4.0.2"
-          sources."mime-db-1.44.0"
-          sources."mime-types-2.1.27"
+          sources."micromatch-4.0.4"
+          sources."mime-db-1.51.0"
+          sources."mime-types-2.1.34"
           sources."mimic-fn-2.1.0"
           sources."minimatch-3.0.4"
           sources."minimist-1.2.5"
-          (sources."mixin-deep-1.3.2" // {
-            dependencies = [
-              sources."is-extendable-1.0.1"
-            ];
-          })
-          sources."mkdirp-0.5.5"
           sources."ms-2.1.2"
-          sources."nanomatch-1.2.13"
           sources."natural-compare-1.4.0"
-          sources."nice-try-1.0.5"
           sources."node-int64-0.4.0"
           sources."node-modules-regexp-1.0.0"
-          sources."node-notifier-8.0.0"
-          (sources."normalize-package-data-2.5.0" // {
-            dependencies = [
-              sources."semver-5.7.1"
-            ];
-          })
+          sources."node-releases-2.0.1"
           sources."normalize-path-3.0.0"
-          (sources."npm-run-path-2.0.2" // {
-            dependencies = [
-              sources."path-key-2.0.1"
-            ];
-          })
+          sources."npm-run-path-4.0.1"
           sources."nwsapi-2.2.0"
-          sources."oauth-sign-0.9.0"
-          (sources."object-copy-0.1.0" // {
-            dependencies = [
-              sources."define-property-0.2.5"
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."object-visit-1.0.1"
-          sources."object.pick-1.3.0"
           sources."once-1.4.0"
           sources."onetime-5.1.2"
           sources."optionator-0.9.1"
-          sources."p-each-series-2.2.0"
-          sources."p-finally-1.0.0"
           sources."p-limit-2.3.0"
           sources."p-locate-4.1.0"
           sources."p-try-2.2.0"
           sources."parent-module-1.0.1"
-          sources."parse-json-5.1.0"
-          sources."parse5-5.1.1"
-          sources."pascalcase-0.1.1"
+          sources."parse5-6.0.1"
           sources."path-exists-4.0.0"
           sources."path-is-absolute-1.0.1"
           sources."path-key-3.1.1"
-          sources."path-parse-1.0.6"
+          sources."path-parse-1.0.7"
           sources."path-type-4.0.0"
-          sources."performance-now-2.1.0"
-          sources."picomatch-2.2.2"
+          sources."picocolors-1.0.0"
+          sources."picomatch-2.3.0"
           sources."pirates-4.0.1"
           sources."pkg-dir-4.2.0"
-          sources."posix-character-classes-0.1.1"
           sources."prelude-ls-1.2.1"
-          (sources."pretty-format-26.6.2" // {
+          (sources."pretty-format-27.4.2" // {
             dependencies = [
-              sources."ansi-styles-4.3.0"
-              sources."color-convert-2.0.1"
-              sources."color-name-1.1.4"
+              sources."ansi-styles-5.2.0"
             ];
           })
           sources."progress-2.0.3"
-          sources."prompts-2.4.0"
+          sources."prompts-2.4.2"
           sources."psl-1.8.0"
-          sources."pump-3.0.0"
           sources."punycode-2.1.1"
-          sources."qs-6.5.2"
-          sources."react-is-17.0.1"
-          (sources."read-pkg-5.2.0" // {
-            dependencies = [
-              sources."type-fest-0.6.0"
-            ];
-          })
-          sources."read-pkg-up-7.0.1"
+          sources."queue-microtask-1.2.3"
+          sources."react-is-17.0.2"
           sources."readable-stream-3.6.0"
-          sources."regex-not-1.0.2"
-          sources."regexpp-3.1.0"
-          sources."remove-trailing-separator-1.1.0"
-          sources."repeat-element-1.1.3"
-          sources."repeat-string-1.6.1"
-          (sources."request-2.88.2" // {
-            dependencies = [
-              sources."tough-cookie-2.5.0"
-              sources."uuid-3.4.0"
-            ];
-          })
-          sources."request-promise-core-1.1.4"
-          (sources."request-promise-native-1.0.9" // {
-            dependencies = [
-              sources."tough-cookie-2.5.0"
-            ];
-          })
+          sources."regexpp-3.2.0"
           sources."require-directory-2.1.1"
-          sources."require-main-filename-2.0.0"
-          sources."resolve-1.19.0"
+          sources."resolve-1.20.0"
           (sources."resolve-cwd-3.0.0" // {
             dependencies = [
               sources."resolve-from-5.0.0"
             ];
           })
           sources."resolve-from-4.0.0"
-          sources."resolve-url-0.2.1"
-          sources."ret-0.1.15"
+          sources."resolve.exports-1.1.0"
           sources."reusify-1.0.4"
-          sources."rimraf-2.6.3"
-          sources."rsvp-4.8.5"
-          sources."run-parallel-1.1.10"
+          sources."rimraf-3.0.2"
+          sources."run-parallel-1.2.0"
           sources."safe-buffer-5.2.1"
-          sources."safe-regex-1.1.0"
           sources."safer-buffer-2.1.2"
-          (sources."sane-4.1.0" // {
-            dependencies = [
-              sources."anymatch-2.0.0"
-              (sources."braces-2.3.2" // {
-                dependencies = [
-                  sources."extend-shallow-2.0.1"
-                ];
-              })
-              (sources."fill-range-4.0.0" // {
-                dependencies = [
-                  sources."extend-shallow-2.0.1"
-                ];
-              })
-              (sources."is-number-3.0.0" // {
-                dependencies = [
-                  sources."kind-of-3.2.2"
-                ];
-              })
-              sources."micromatch-3.1.10"
-              sources."normalize-path-2.1.1"
-              sources."to-regex-range-2.1.1"
-            ];
-          })
           sources."saxes-5.0.1"
-          sources."semver-7.3.2"
-          sources."set-blocking-2.0.0"
-          (sources."set-value-2.0.1" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
+          sources."semver-7.3.5"
           sources."shebang-command-2.0.0"
           sources."shebang-regex-3.0.0"
-          sources."shellwords-0.1.1"
-          sources."signal-exit-3.0.3"
+          sources."signal-exit-3.0.6"
           sources."sisteransi-1.0.5"
           sources."slash-3.0.0"
-          sources."slice-ansi-2.1.0"
-          (sources."snapdragon-0.8.2" // {
-            dependencies = [
-              sources."debug-2.6.9"
-              sources."define-property-0.2.5"
-              sources."extend-shallow-2.0.1"
-              sources."ms-2.0.0"
-              sources."source-map-0.5.7"
-            ];
-          })
-          (sources."snapdragon-node-2.1.1" // {
-            dependencies = [
-              sources."define-property-1.0.0"
-              sources."is-accessor-descriptor-1.0.0"
-              sources."is-data-descriptor-1.0.0"
-              sources."is-descriptor-1.0.2"
-            ];
-          })
-          (sources."snapdragon-util-3.0.1" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
           sources."source-map-0.6.1"
-          sources."source-map-resolve-0.5.3"
-          sources."source-map-support-0.5.19"
-          sources."source-map-url-0.4.0"
-          sources."spdx-correct-3.1.1"
-          sources."spdx-exceptions-2.3.0"
-          sources."spdx-expression-parse-3.0.1"
-          sources."spdx-license-ids-3.0.6"
-          sources."split-string-3.1.0"
+          sources."source-map-support-0.5.21"
           sources."sprintf-js-1.0.3"
-          sources."sshpk-1.16.1"
-          (sources."stack-utils-2.0.3" // {
+          (sources."stack-utils-2.0.5" // {
             dependencies = [
               sources."escape-string-regexp-2.0.0"
             ];
           })
-          (sources."static-extend-0.1.2" // {
-            dependencies = [
-              sources."define-property-0.2.5"
-            ];
-          })
-          sources."stealthy-require-1.1.1"
-          sources."string-length-4.0.1"
-          (sources."string-width-3.1.0" // {
-            dependencies = [
-              sources."ansi-regex-4.1.0"
-              sources."strip-ansi-5.2.0"
-            ];
-          })
+          sources."string-length-4.0.2"
+          sources."string-width-4.2.3"
           sources."string_decoder-1.3.0"
-          sources."strip-ansi-6.0.0"
+          sources."strip-ansi-6.0.1"
           sources."strip-bom-4.0.0"
-          sources."strip-eof-1.0.0"
           sources."strip-final-newline-2.0.0"
           sources."strip-json-comments-3.1.1"
-          sources."supports-color-5.5.0"
-          (sources."supports-hyperlinks-2.1.0" // {
-            dependencies = [
-              sources."has-flag-4.0.0"
-              sources."supports-color-7.2.0"
-            ];
-          })
+          sources."supports-color-7.2.0"
+          sources."supports-hyperlinks-2.2.0"
           sources."symbol-tree-3.2.4"
-          sources."table-5.4.6"
-          sources."tar-stream-2.1.4"
+          sources."tar-stream-2.2.0"
           sources."terminal-link-2.1.1"
           sources."test-exclude-6.0.0"
           sources."text-table-0.2.0"
-          sources."throat-5.0.0"
-          sources."tmpl-1.0.4"
+          sources."throat-6.0.1"
+          sources."tmpl-1.0.5"
           sources."to-fast-properties-2.0.0"
-          (sources."to-object-path-0.3.0" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."to-regex-3.0.2"
           sources."to-regex-range-5.0.1"
-          sources."tough-cookie-3.0.1"
-          sources."tr46-2.0.2"
+          sources."tough-cookie-4.0.0"
+          sources."tr46-2.1.0"
           sources."tslib-1.14.1"
-          sources."tsutils-3.17.1"
-          sources."tunnel-agent-0.6.0"
-          sources."tweetnacl-0.14.5"
+          sources."tsutils-3.21.0"
           sources."type-check-0.4.0"
           sources."type-detect-4.0.8"
-          sources."type-fest-0.8.1"
+          sources."type-fest-0.20.2"
           sources."typedarray-to-buffer-3.1.5"
-          sources."union-value-1.0.1"
-          (sources."unset-value-1.0.0" // {
-            dependencies = [
-              (sources."has-value-0.3.1" // {
-                dependencies = [
-                  sources."isobject-2.1.0"
-                ];
-              })
-              sources."has-values-0.1.4"
-            ];
-          })
-          sources."uri-js-4.4.0"
-          sources."urix-0.1.0"
-          sources."use-3.1.1"
+          sources."universalify-0.1.2"
+          sources."uri-js-4.4.1"
           sources."util-deprecate-1.0.2"
-          sources."uuid-8.3.1"
-          sources."v8-compile-cache-2.2.0"
-          (sources."v8-to-istanbul-7.0.0" // {
+          sources."v8-compile-cache-2.3.0"
+          (sources."v8-to-istanbul-8.1.0" // {
             dependencies = [
               sources."source-map-0.7.3"
             ];
           })
-          sources."validate-npm-package-license-3.0.4"
-          sources."verror-1.10.0"
           sources."w3c-hr-time-1.0.2"
           sources."w3c-xmlserializer-2.0.0"
-          sources."walker-1.0.7"
+          sources."walker-1.0.8"
           sources."webidl-conversions-6.1.0"
           sources."whatwg-encoding-1.0.5"
           sources."whatwg-mimetype-2.3.0"
-          sources."whatwg-url-8.4.0"
+          sources."whatwg-url-8.7.0"
           sources."which-2.0.2"
-          sources."which-module-2.0.0"
           sources."word-wrap-1.2.3"
-          (sources."wrap-ansi-6.2.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."is-fullwidth-code-point-3.0.0"
-              sources."string-width-4.2.0"
-            ];
-          })
+          sources."wrap-ansi-7.0.0"
           sources."wrappy-1.0.2"
-          sources."write-1.0.3"
           sources."write-file-atomic-3.0.3"
-          sources."ws-7.4.0"
+          sources."ws-7.5.6"
           sources."xml-name-validator-3.0.0"
           sources."xmlchars-2.2.0"
-          sources."y18n-4.0.0"
-          (sources."yargs-15.4.1" // {
-            dependencies = [
+          sources."y18n-5.0.8"
+          sources."yallist-4.0.0"
+          sources."yargs-16.2.0"
+          sources."yargs-parser-20.2.9"
+          (sources."zigbee-herdsman-0.13.176" // {
+            dependencies = [
+              sources."@babel/cli-7.16.0"
+              sources."@babel/code-frame-7.16.0"
+              sources."@babel/compat-data-7.16.4"
+              (sources."@babel/core-7.16.0" // {
+                dependencies = [
+                  sources."semver-6.3.0"
+                ];
+              })
+              sources."@babel/generator-7.16.0"
+              sources."@babel/helper-annotate-as-pure-7.16.0"
+              sources."@babel/helper-builder-binary-assignment-operator-visitor-7.16.0"
+              (sources."@babel/helper-compilation-targets-7.16.3" // {
+                dependencies = [
+                  sources."semver-6.3.0"
+                ];
+              })
+              sources."@babel/helper-create-class-features-plugin-7.16.0"
+              sources."@babel/helper-create-regexp-features-plugin-7.16.0"
+              (sources."@babel/helper-define-polyfill-provider-0.3.0" // {
+                dependencies = [
+                  sources."semver-6.3.0"
+                ];
+              })
+              sources."@babel/helper-explode-assignable-expression-7.16.0"
+              sources."@babel/helper-function-name-7.16.0"
+              sources."@babel/helper-get-function-arity-7.16.0"
+              sources."@babel/helper-hoist-variables-7.16.0"
+              sources."@babel/helper-member-expression-to-functions-7.16.0"
+              sources."@babel/helper-module-imports-7.16.0"
+              sources."@babel/helper-module-transforms-7.16.0"
+              sources."@babel/helper-optimise-call-expression-7.16.0"
+              sources."@babel/helper-plugin-utils-7.14.5"
+              sources."@babel/helper-remap-async-to-generator-7.16.4"
+              sources."@babel/helper-replace-supers-7.16.0"
+              sources."@babel/helper-simple-access-7.16.0"
+              sources."@babel/helper-skip-transparent-expression-wrappers-7.16.0"
+              sources."@babel/helper-split-export-declaration-7.16.0"
+              sources."@babel/helper-validator-identifier-7.15.7"
+              sources."@babel/helper-validator-option-7.14.5"
+              sources."@babel/helper-wrap-function-7.16.0"
+              sources."@babel/helpers-7.16.3"
+              sources."@babel/highlight-7.16.0"
+              sources."@babel/parser-7.16.4"
+              sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2"
+              sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0"
+              sources."@babel/plugin-proposal-async-generator-functions-7.16.4"
+              sources."@babel/plugin-proposal-class-properties-7.16.0"
+              sources."@babel/plugin-proposal-class-static-block-7.16.0"
+              sources."@babel/plugin-proposal-dynamic-import-7.16.0"
+              sources."@babel/plugin-proposal-export-namespace-from-7.16.0"
+              sources."@babel/plugin-proposal-json-strings-7.16.0"
+              sources."@babel/plugin-proposal-logical-assignment-operators-7.16.0"
+              sources."@babel/plugin-proposal-nullish-coalescing-operator-7.16.0"
+              sources."@babel/plugin-proposal-numeric-separator-7.16.0"
+              sources."@babel/plugin-proposal-object-rest-spread-7.16.0"
+              sources."@babel/plugin-proposal-optional-catch-binding-7.16.0"
+              sources."@babel/plugin-proposal-optional-chaining-7.16.0"
+              sources."@babel/plugin-proposal-private-methods-7.16.0"
+              sources."@babel/plugin-proposal-private-property-in-object-7.16.0"
+              sources."@babel/plugin-proposal-unicode-property-regex-7.16.0"
+              sources."@babel/plugin-syntax-async-generators-7.8.4"
+              sources."@babel/plugin-syntax-bigint-7.8.3"
+              sources."@babel/plugin-syntax-class-properties-7.12.13"
+              sources."@babel/plugin-syntax-class-static-block-7.14.5"
+              sources."@babel/plugin-syntax-dynamic-import-7.8.3"
+              sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
+              sources."@babel/plugin-syntax-import-meta-7.10.4"
+              sources."@babel/plugin-syntax-json-strings-7.8.3"
+              sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
+              sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
+              sources."@babel/plugin-syntax-numeric-separator-7.10.4"
+              sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
+              sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
+              sources."@babel/plugin-syntax-optional-chaining-7.8.3"
+              sources."@babel/plugin-syntax-private-property-in-object-7.14.5"
+              sources."@babel/plugin-syntax-top-level-await-7.14.5"
+              sources."@babel/plugin-syntax-typescript-7.16.0"
+              sources."@babel/plugin-transform-arrow-functions-7.16.0"
+              sources."@babel/plugin-transform-async-to-generator-7.16.0"
+              sources."@babel/plugin-transform-block-scoped-functions-7.16.0"
+              sources."@babel/plugin-transform-block-scoping-7.16.0"
+              sources."@babel/plugin-transform-classes-7.16.0"
+              sources."@babel/plugin-transform-computed-properties-7.16.0"
+              sources."@babel/plugin-transform-destructuring-7.16.0"
+              sources."@babel/plugin-transform-dotall-regex-7.16.0"
+              sources."@babel/plugin-transform-duplicate-keys-7.16.0"
+              sources."@babel/plugin-transform-exponentiation-operator-7.16.0"
+              sources."@babel/plugin-transform-for-of-7.16.0"
+              sources."@babel/plugin-transform-function-name-7.16.0"
+              sources."@babel/plugin-transform-literals-7.16.0"
+              sources."@babel/plugin-transform-member-expression-literals-7.16.0"
+              sources."@babel/plugin-transform-modules-amd-7.16.0"
+              sources."@babel/plugin-transform-modules-commonjs-7.16.0"
+              sources."@babel/plugin-transform-modules-systemjs-7.16.0"
+              sources."@babel/plugin-transform-modules-umd-7.16.0"
+              sources."@babel/plugin-transform-named-capturing-groups-regex-7.16.0"
+              sources."@babel/plugin-transform-new-target-7.16.0"
+              sources."@babel/plugin-transform-object-super-7.16.0"
+              sources."@babel/plugin-transform-parameters-7.16.3"
+              sources."@babel/plugin-transform-property-literals-7.16.0"
+              sources."@babel/plugin-transform-regenerator-7.16.0"
+              sources."@babel/plugin-transform-reserved-words-7.16.0"
+              sources."@babel/plugin-transform-shorthand-properties-7.16.0"
+              sources."@babel/plugin-transform-spread-7.16.0"
+              sources."@babel/plugin-transform-sticky-regex-7.16.0"
+              sources."@babel/plugin-transform-template-literals-7.16.0"
+              sources."@babel/plugin-transform-typeof-symbol-7.16.0"
+              sources."@babel/plugin-transform-typescript-7.16.1"
+              sources."@babel/plugin-transform-unicode-escapes-7.16.0"
+              sources."@babel/plugin-transform-unicode-regex-7.16.0"
+              (sources."@babel/preset-env-7.16.4" // {
+                dependencies = [
+                  sources."semver-6.3.0"
+                ];
+              })
+              sources."@babel/preset-modules-0.1.5"
+              sources."@babel/preset-typescript-7.16.0"
+              sources."@babel/runtime-7.16.3"
+              sources."@babel/template-7.16.0"
+              sources."@babel/traverse-7.16.3"
+              sources."@babel/types-7.16.0"
+              sources."@bcoe/v8-coverage-0.2.3"
+              (sources."@eslint/eslintrc-1.0.4" // {
+                dependencies = [
+                  sources."argparse-2.0.1"
+                  sources."globals-13.12.0"
+                  sources."ignore-4.0.6"
+                  sources."js-yaml-4.1.0"
+                  sources."strip-json-comments-3.1.1"
+                ];
+              })
+              sources."@humanwhocodes/config-array-0.6.0"
+              sources."@humanwhocodes/object-schema-1.2.1"
+              sources."@istanbuljs/load-nyc-config-1.1.0"
+              sources."@istanbuljs/schema-0.1.3"
+              (sources."@jest/console-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."slash-3.0.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              (sources."@jest/core-27.3.1" // {
+                dependencies = [
+                  sources."ansi-regex-5.0.1"
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."slash-3.0.0"
+                  sources."strip-ansi-6.0.1"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              sources."@jest/environment-27.3.1"
+              sources."@jest/fake-timers-27.3.1"
+              sources."@jest/globals-27.3.1"
+              (sources."@jest/reporters-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."istanbul-lib-instrument-4.0.3"
+                  sources."semver-6.3.0"
+                  sources."slash-3.0.0"
+                  sources."source-map-0.6.1"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              (sources."@jest/source-map-27.0.6" // {
+                dependencies = [
+                  sources."source-map-0.6.1"
+                ];
+              })
+              sources."@jest/test-result-27.3.1"
+              sources."@jest/test-sequencer-27.3.1"
+              (sources."@jest/transform-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."slash-3.0.0"
+                  sources."source-map-0.6.1"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              (sources."@jest/types-27.2.5" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              sources."@nicolo-ribaudo/chokidar-2-2.1.8-no-fsevents.3"
+              sources."@nodelib/fs.scandir-2.1.5"
+              sources."@nodelib/fs.stat-2.0.5"
+              sources."@nodelib/fs.walk-1.2.8"
+              sources."@serialport/binding-abstract-9.2.3"
+              sources."@serialport/binding-mock-9.2.4"
+              sources."@serialport/bindings-9.2.8"
+              sources."@serialport/parser-byte-length-9.2.4"
+              sources."@serialport/parser-cctalk-9.2.4"
+              sources."@serialport/parser-delimiter-9.2.4"
+              sources."@serialport/parser-inter-byte-timeout-9.2.4"
+              sources."@serialport/parser-readline-9.2.4"
+              sources."@serialport/parser-ready-9.2.4"
+              sources."@serialport/parser-regex-9.2.4"
+              sources."@serialport/stream-9.2.4"
+              sources."@sinonjs/commons-1.8.3"
+              sources."@sinonjs/fake-timers-8.1.0"
+              sources."@tootallnate/once-1.1.2"
+              sources."@types/babel__core-7.1.16"
+              sources."@types/babel__generator-7.6.3"
+              sources."@types/babel__template-7.4.1"
+              sources."@types/babel__traverse-7.14.2"
+              sources."@types/debounce-1.2.1"
+              sources."@types/debug-4.1.7"
+              sources."@types/graceful-fs-4.1.5"
+              sources."@types/istanbul-lib-coverage-2.0.3"
+              sources."@types/istanbul-lib-report-3.0.0"
+              sources."@types/istanbul-reports-3.0.1"
+              sources."@types/jest-27.0.3"
+              sources."@types/json-schema-7.0.9"
+              sources."@types/ms-0.7.31"
+              sources."@types/mz-2.7.4"
+              sources."@types/nedb-1.8.12"
+              sources."@types/node-16.11.10"
+              sources."@types/prettier-2.4.2"
+              sources."@types/serialport-8.0.2"
+              sources."@types/stack-utils-2.0.1"
+              sources."@types/yargs-16.0.4"
+              sources."@types/yargs-parser-20.2.1"
+              sources."@typescript-eslint/eslint-plugin-5.4.0"
+              sources."@typescript-eslint/experimental-utils-5.4.0"
+              sources."@typescript-eslint/parser-5.4.0"
+              sources."@typescript-eslint/scope-manager-5.4.0"
+              sources."@typescript-eslint/types-5.4.0"
+              sources."@typescript-eslint/typescript-estree-5.4.0"
+              sources."@typescript-eslint/visitor-keys-5.4.0"
+              sources."abab-2.0.5"
+              sources."acorn-8.6.0"
+              (sources."acorn-globals-6.0.0" // {
+                dependencies = [
+                  sources."acorn-7.4.1"
+                ];
+              })
+              sources."acorn-jsx-5.3.2"
+              sources."acorn-walk-7.2.0"
+              sources."agent-base-6.0.2"
+              sources."ajv-6.12.6"
+              sources."ansi-colors-4.1.1"
+              (sources."ansi-escapes-4.3.2" // {
+                dependencies = [
+                  sources."type-fest-0.21.3"
+                ];
+              })
+              sources."ansi-regex-2.1.1"
+              sources."ansi-styles-3.2.1"
+              sources."any-promise-1.3.0"
+              sources."anymatch-3.1.2"
+              sources."aproba-1.2.0"
+              sources."are-we-there-yet-1.1.7"
+              sources."argparse-1.0.10"
+              sources."array-union-2.1.0"
+              sources."asynckit-0.4.0"
+              (sources."babel-jest-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."slash-3.0.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              sources."babel-plugin-dynamic-import-node-2.3.3"
+              sources."babel-plugin-istanbul-6.1.1"
+              sources."babel-plugin-jest-hoist-27.2.0"
+              (sources."babel-plugin-polyfill-corejs2-0.3.0" // {
+                dependencies = [
+                  sources."semver-6.3.0"
+                ];
+              })
+              sources."babel-plugin-polyfill-corejs3-0.4.0"
+              sources."babel-plugin-polyfill-regenerator-0.3.0"
+              sources."babel-preset-current-node-syntax-1.0.1"
+              sources."babel-preset-jest-27.2.0"
+              sources."balanced-match-1.0.2"
+              sources."base64-js-1.5.1"
+              sources."binary-extensions-2.2.0"
+              sources."bindings-1.5.0"
+              (sources."bl-4.1.0" // {
+                dependencies = [
+                  sources."readable-stream-3.6.0"
+                ];
+              })
+              sources."brace-expansion-1.1.11"
+              sources."braces-3.0.2"
+              sources."browser-process-hrtime-1.0.0"
+              sources."browserslist-4.18.1"
+              sources."bser-2.1.1"
+              sources."buffer-5.7.1"
+              sources."buffer-from-1.1.2"
+              sources."call-bind-1.0.2"
+              sources."callsites-3.1.0"
+              sources."camelcase-5.3.1"
+              sources."caniuse-lite-1.0.30001283"
+              sources."chalk-2.4.2"
+              sources."char-regex-1.0.2"
+              sources."chokidar-3.5.2"
+              sources."chownr-1.1.4"
+              sources."ci-info-3.3.0"
+              sources."cjs-module-lexer-1.2.2"
+              (sources."cliui-7.0.4" // {
+                dependencies = [
+                  sources."ansi-regex-5.0.1"
+                  sources."is-fullwidth-code-point-3.0.0"
+                  sources."string-width-4.2.3"
+                  sources."strip-ansi-6.0.1"
+                ];
+              })
+              sources."co-4.6.0"
+              sources."code-point-at-1.1.0"
+              sources."collect-v8-coverage-1.0.1"
+              sources."color-convert-1.9.3"
+              sources."color-name-1.1.3"
+              sources."combined-stream-1.0.8"
+              sources."commander-4.1.1"
+              sources."concat-map-0.0.1"
+              sources."console-control-strings-1.1.0"
+              sources."convert-source-map-1.8.0"
+              (sources."core-js-compat-3.19.1" // {
+                dependencies = [
+                  sources."semver-7.0.0"
+                ];
+              })
+              sources."core-util-is-1.0.3"
+              sources."cross-spawn-7.0.3"
+              sources."cssom-0.4.4"
+              (sources."cssstyle-2.3.0" // {
+                dependencies = [
+                  sources."cssom-0.3.8"
+                ];
+              })
+              sources."data-urls-2.0.0"
+              sources."debounce-1.2.1"
+              sources."debug-4.3.3"
+              sources."decimal.js-10.3.1"
+              sources."decompress-response-6.0.0"
+              sources."dedent-0.7.0"
+              sources."deep-extend-0.6.0"
+              sources."deep-is-0.1.4"
+              sources."deepmerge-4.2.2"
+              sources."define-properties-1.1.3"
+              sources."delayed-stream-1.0.0"
+              sources."delegates-1.0.0"
+              sources."detect-libc-1.0.3"
+              sources."detect-newline-3.1.0"
+              sources."diff-sequences-27.0.6"
+              sources."dir-glob-3.0.1"
+              sources."doctrine-3.0.0"
+              (sources."domexception-2.0.1" // {
+                dependencies = [
+                  sources."webidl-conversions-5.0.0"
+                ];
+              })
+              sources."electron-to-chromium-1.4.4"
+              sources."emittery-0.8.1"
               sources."emoji-regex-8.0.0"
-              sources."is-fullwidth-code-point-3.0.0"
-              sources."string-width-4.2.0"
+              sources."end-of-stream-1.4.4"
+              sources."enquirer-2.3.6"
+              sources."escalade-3.1.1"
+              sources."escape-string-regexp-1.0.5"
+              (sources."escodegen-2.0.0" // {
+                dependencies = [
+                  sources."estraverse-5.3.0"
+                  sources."levn-0.3.0"
+                  sources."optionator-0.8.3"
+                  sources."prelude-ls-1.1.2"
+                  sources."source-map-0.6.1"
+                  sources."type-check-0.3.2"
+                ];
+              })
+              (sources."eslint-8.3.0" // {
+                dependencies = [
+                  sources."ansi-regex-5.0.1"
+                  sources."ansi-styles-4.3.0"
+                  sources."argparse-2.0.1"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."escape-string-regexp-4.0.0"
+                  sources."eslint-scope-7.1.0"
+                  sources."estraverse-5.3.0"
+                  sources."glob-parent-6.0.2"
+                  sources."globals-13.12.0"
+                  sources."has-flag-4.0.0"
+                  sources."ignore-4.0.6"
+                  sources."js-yaml-4.1.0"
+                  sources."strip-ansi-6.0.1"
+                  sources."strip-json-comments-3.1.1"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              sources."eslint-scope-5.1.1"
+              (sources."eslint-utils-3.0.0" // {
+                dependencies = [
+                  sources."eslint-visitor-keys-2.1.0"
+                ];
+              })
+              sources."eslint-visitor-keys-3.1.0"
+              sources."espree-9.1.0"
+              sources."esprima-4.0.1"
+              (sources."esquery-1.4.0" // {
+                dependencies = [
+                  sources."estraverse-5.3.0"
+                ];
+              })
+              (sources."esrecurse-4.3.0" // {
+                dependencies = [
+                  sources."estraverse-5.3.0"
+                ];
+              })
+              sources."estraverse-4.3.0"
+              sources."esutils-2.0.3"
+              sources."execa-5.1.1"
+              sources."exit-0.1.2"
+              sources."expand-template-2.0.3"
+              (sources."expect-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-5.2.0"
+                ];
+              })
+              sources."fast-deep-equal-3.1.3"
+              sources."fast-glob-3.2.7"
+              sources."fast-json-stable-stringify-2.1.0"
+              sources."fast-levenshtein-2.0.6"
+              sources."fastq-1.13.0"
+              sources."fb-watchman-2.0.1"
+              sources."file-entry-cache-6.0.1"
+              sources."file-uri-to-path-1.0.0"
+              sources."fill-range-7.0.1"
+              sources."find-up-4.1.0"
+              sources."flat-cache-3.0.4"
+              sources."flatted-3.2.4"
+              sources."form-data-3.0.1"
+              sources."fs-constants-1.0.0"
+              sources."fs-readdir-recursive-1.1.0"
+              sources."fs.realpath-1.0.0"
+              sources."fsevents-2.3.2"
+              sources."function-bind-1.1.1"
+              sources."functional-red-black-tree-1.0.1"
+              sources."gauge-2.7.4"
+              sources."gensync-1.0.0-beta.2"
+              sources."get-caller-file-2.0.5"
+              sources."get-intrinsic-1.1.1"
+              sources."get-package-type-0.1.0"
+              sources."get-stream-6.0.1"
+              sources."github-from-package-0.0.0"
+              sources."glob-7.2.0"
+              sources."glob-parent-5.1.2"
+              sources."globals-11.12.0"
+              (sources."globby-11.0.4" // {
+                dependencies = [
+                  sources."slash-3.0.0"
+                ];
+              })
+              sources."graceful-fs-4.2.8"
+              (sources."handlebars-4.7.7" // {
+                dependencies = [
+                  sources."source-map-0.6.1"
+                ];
+              })
+              sources."has-1.0.3"
+              sources."has-flag-3.0.0"
+              sources."has-symbols-1.0.2"
+              sources."has-unicode-2.0.1"
+              sources."html-encoding-sniffer-2.0.1"
+              sources."html-escaper-2.0.2"
+              sources."http-proxy-agent-4.0.1"
+              sources."https-proxy-agent-5.0.0"
+              sources."human-signals-2.1.0"
+              sources."iconv-lite-0.4.24"
+              sources."ieee754-1.2.1"
+              sources."ignore-5.1.9"
+              (sources."import-fresh-3.3.0" // {
+                dependencies = [
+                  sources."resolve-from-4.0.0"
+                ];
+              })
+              sources."import-local-3.0.3"
+              sources."imurmurhash-0.1.4"
+              sources."inflight-1.0.6"
+              sources."inherits-2.0.4"
+              sources."ini-1.3.8"
+              sources."is-binary-path-2.1.0"
+              sources."is-core-module-2.8.0"
+              sources."is-extglob-2.1.1"
+              sources."is-fullwidth-code-point-1.0.0"
+              sources."is-generator-fn-2.1.0"
+              sources."is-glob-4.0.3"
+              sources."is-number-7.0.0"
+              sources."is-potential-custom-element-name-1.0.1"
+              sources."is-stream-2.0.1"
+              sources."is-typedarray-1.0.0"
+              sources."isarray-1.0.0"
+              sources."isexe-2.0.0"
+              sources."istanbul-lib-coverage-3.2.0"
+              (sources."istanbul-lib-instrument-5.1.0" // {
+                dependencies = [
+                  sources."semver-6.3.0"
+                ];
+              })
+              (sources."istanbul-lib-report-3.0.0" // {
+                dependencies = [
+                  sources."has-flag-4.0.0"
+                  sources."make-dir-3.1.0"
+                  sources."semver-6.3.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              (sources."istanbul-lib-source-maps-4.0.1" // {
+                dependencies = [
+                  sources."source-map-0.6.1"
+                ];
+              })
+              sources."istanbul-reports-3.0.5"
+              (sources."jest-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."jest-cli-27.3.1"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              sources."jest-changed-files-27.3.0"
+              (sources."jest-circus-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."slash-3.0.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              (sources."jest-config-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              (sources."jest-diff-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              sources."jest-docblock-27.0.6"
+              (sources."jest-each-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              sources."jest-environment-jsdom-27.3.1"
+              sources."jest-environment-node-27.3.1"
+              sources."jest-get-type-27.3.1"
+              sources."jest-haste-map-27.3.1"
+              (sources."jest-jasmine2-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              sources."jest-leak-detector-27.3.1"
+              (sources."jest-matcher-utils-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              (sources."jest-message-util-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."slash-3.0.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              sources."jest-mock-27.3.0"
+              sources."jest-pnp-resolver-1.2.2"
+              sources."jest-regex-util-27.0.6"
+              (sources."jest-resolve-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."slash-3.0.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              sources."jest-resolve-dependencies-27.3.1"
+              (sources."jest-runner-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              (sources."jest-runtime-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."slash-3.0.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              sources."jest-serializer-27.0.6"
+              (sources."jest-snapshot-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              (sources."jest-util-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              (sources."jest-validate-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."camelcase-6.2.1"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              (sources."jest-watcher-27.3.1" // {
+                dependencies = [
+                  sources."ansi-styles-4.3.0"
+                  sources."chalk-4.1.2"
+                  sources."color-convert-2.0.1"
+                  sources."color-name-1.1.4"
+                  sources."has-flag-4.0.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              (sources."jest-worker-27.3.1" // {
+                dependencies = [
+                  sources."has-flag-4.0.0"
+                  sources."supports-color-8.1.1"
+                ];
+              })
+              sources."js-tokens-4.0.0"
+              sources."js-yaml-3.14.1"
+              sources."jsdom-16.7.0"
+              sources."jsesc-2.5.2"
+              sources."json-schema-traverse-0.4.1"
+              sources."json-stable-stringify-without-jsonify-1.0.1"
+              sources."json5-2.2.0"
+              sources."jsonc-parser-3.0.0"
+              sources."kleur-3.0.3"
+              sources."leven-3.1.0"
+              sources."levn-0.4.1"
+              sources."locate-path-5.0.0"
+              sources."lodash-4.17.21"
+              sources."lodash.debounce-4.0.8"
+              sources."lodash.merge-4.6.2"
+              sources."lru-cache-6.0.0"
+              sources."lunr-2.3.9"
+              (sources."make-dir-2.1.0" // {
+                dependencies = [
+                  sources."semver-5.7.1"
+                ];
+              })
+              sources."makeerror-1.0.12"
+              sources."marked-3.0.8"
+              sources."merge-stream-2.0.0"
+              sources."merge2-1.4.1"
+              sources."micromatch-4.0.4"
+              sources."mime-db-1.51.0"
+              sources."mime-types-2.1.34"
+              sources."mimic-fn-2.1.0"
+              sources."mimic-response-3.1.0"
+              sources."minimatch-3.0.4"
+              sources."minimist-1.2.5"
+              sources."mixin-deep-2.0.1"
+              sources."mkdirp-classic-0.5.3"
+              sources."ms-2.1.2"
+              sources."mz-2.7.0"
+              sources."nan-2.15.0"
+              sources."napi-build-utils-1.0.2"
+              sources."natural-compare-1.4.0"
+              sources."neo-async-2.6.2"
+              sources."node-abi-3.5.0"
+              sources."node-int64-0.4.0"
+              sources."node-modules-regexp-1.0.0"
+              sources."node-releases-2.0.1"
+              sources."normalize-path-3.0.0"
+              sources."npm-run-path-4.0.1"
+              sources."npmlog-4.1.2"
+              sources."number-is-nan-1.0.1"
+              sources."nwsapi-2.2.0"
+              sources."object-assign-4.1.1"
+              sources."object-keys-1.1.1"
+              sources."object.assign-4.1.2"
+              sources."once-1.4.0"
+              sources."onetime-5.1.2"
+              sources."optionator-0.9.1"
+              sources."p-limit-2.3.0"
+              sources."p-locate-4.1.0"
+              sources."p-try-2.2.0"
+              sources."parent-module-1.0.1"
+              sources."parse5-6.0.1"
+              sources."path-exists-4.0.0"
+              sources."path-is-absolute-1.0.1"
+              sources."path-key-3.1.1"
+              sources."path-parse-1.0.7"
+              sources."path-type-4.0.0"
+              sources."picocolors-1.0.0"
+              sources."picomatch-2.3.0"
+              sources."pify-4.0.1"
+              sources."pirates-4.0.1"
+              sources."pkg-dir-4.2.0"
+              sources."prebuild-install-7.0.0"
+              sources."prelude-ls-1.2.1"
+              (sources."pretty-format-27.3.1" // {
+                dependencies = [
+                  sources."ansi-regex-5.0.1"
+                  sources."ansi-styles-5.2.0"
+                ];
+              })
+              sources."process-nextick-args-2.0.1"
+              sources."progress-2.0.3"
+              sources."prompts-2.4.2"
+              sources."psl-1.8.0"
+              sources."pump-3.0.0"
+              sources."punycode-2.1.1"
+              sources."queue-microtask-1.2.3"
+              sources."rc-1.2.8"
+              sources."react-is-17.0.2"
+              sources."readable-stream-2.3.7"
+              sources."readdirp-3.6.0"
+              sources."regenerate-1.4.2"
+              sources."regenerate-unicode-properties-9.0.0"
+              sources."regenerator-runtime-0.13.9"
+              sources."regenerator-transform-0.14.5"
+              sources."regexpp-3.2.0"
+              sources."regexpu-core-4.8.0"
+              sources."regjsgen-0.5.2"
+              (sources."regjsparser-0.7.0" // {
+                dependencies = [
+                  sources."jsesc-0.5.0"
+                ];
+              })
+              sources."require-directory-2.1.1"
+              sources."resolve-1.20.0"
+              sources."resolve-cwd-3.0.0"
+              sources."resolve-from-5.0.0"
+              sources."resolve.exports-1.1.0"
+              sources."reusify-1.0.4"
+              sources."rimraf-3.0.2"
+              sources."run-parallel-1.2.0"
+              sources."safe-buffer-5.1.2"
+              sources."safer-buffer-2.1.2"
+              sources."saxes-5.0.1"
+              sources."semver-7.3.5"
+              sources."serialport-9.2.8"
+              sources."set-blocking-2.0.0"
+              sources."shebang-command-2.0.0"
+              sources."shebang-regex-3.0.0"
+              sources."shiki-0.9.13"
+              sources."signal-exit-3.0.6"
+              sources."simple-concat-1.0.1"
+              sources."simple-get-4.0.0"
+              sources."sisteransi-1.0.5"
+              sources."slash-2.0.0"
+              sources."slip-1.0.2"
+              sources."source-map-0.5.7"
+              (sources."source-map-support-0.5.21" // {
+                dependencies = [
+                  sources."source-map-0.6.1"
+                ];
+              })
+              sources."sprintf-js-1.0.3"
+              (sources."stack-utils-2.0.5" // {
+                dependencies = [
+                  sources."escape-string-regexp-2.0.0"
+                ];
+              })
+              (sources."string-length-4.0.2" // {
+                dependencies = [
+                  sources."ansi-regex-5.0.1"
+                  sources."strip-ansi-6.0.1"
+                ];
+              })
+              sources."string-width-1.0.2"
+              sources."string_decoder-1.1.1"
+              sources."strip-ansi-3.0.1"
+              sources."strip-bom-4.0.0"
+              sources."strip-final-newline-2.0.0"
+              sources."strip-json-comments-2.0.1"
+              sources."supports-color-5.5.0"
+              (sources."supports-hyperlinks-2.2.0" // {
+                dependencies = [
+                  sources."has-flag-4.0.0"
+                  sources."supports-color-7.2.0"
+                ];
+              })
+              sources."symbol-tree-3.2.4"
+              sources."tar-fs-2.1.1"
+              (sources."tar-stream-2.2.0" // {
+                dependencies = [
+                  sources."readable-stream-3.6.0"
+                ];
+              })
+              sources."terminal-link-2.1.1"
+              sources."test-exclude-6.0.0"
+              sources."text-table-0.2.0"
+              sources."thenify-3.3.1"
+              sources."thenify-all-1.6.0"
+              sources."throat-6.0.1"
+              sources."tmpl-1.0.5"
+              sources."to-fast-properties-2.0.0"
+              sources."to-regex-range-5.0.1"
+              sources."tough-cookie-4.0.0"
+              sources."tr46-2.1.0"
+              sources."tslib-1.14.1"
+              sources."tsutils-3.21.0"
+              sources."tunnel-agent-0.6.0"
+              sources."type-check-0.4.0"
+              sources."type-detect-4.0.8"
+              sources."type-fest-0.20.2"
+              sources."typedarray-to-buffer-3.1.5"
+              sources."typedoc-0.22.10"
+              sources."typedoc-plugin-markdown-3.11.7"
+              sources."typedoc-plugin-no-inherit-1.3.1"
+              sources."typedoc-plugin-sourcefile-url-1.0.6"
+              sources."typescript-4.5.2"
+              sources."uglify-js-3.14.3"
+              sources."unicode-canonical-property-names-ecmascript-2.0.0"
+              sources."unicode-match-property-ecmascript-2.0.0"
+              sources."unicode-match-property-value-ecmascript-2.0.0"
+              sources."unicode-property-aliases-ecmascript-2.0.0"
+              sources."universalify-0.1.2"
+              sources."uri-js-4.4.1"
+              sources."util-deprecate-1.0.2"
+              sources."v8-compile-cache-2.3.0"
+              (sources."v8-to-istanbul-8.1.0" // {
+                dependencies = [
+                  sources."source-map-0.7.3"
+                ];
+              })
+              sources."vscode-oniguruma-1.6.1"
+              sources."vscode-textmate-5.2.0"
+              sources."w3c-hr-time-1.0.2"
+              sources."w3c-xmlserializer-2.0.0"
+              sources."walker-1.0.8"
+              sources."webidl-conversions-6.1.0"
+              sources."whatwg-encoding-1.0.5"
+              sources."whatwg-mimetype-2.3.0"
+              sources."whatwg-url-8.7.0"
+              sources."which-2.0.2"
+              sources."wide-align-1.1.5"
+              sources."word-wrap-1.2.3"
+              sources."wordwrap-1.0.0"
+              (sources."wrap-ansi-7.0.0" // {
+                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"
+                  sources."is-fullwidth-code-point-3.0.0"
+                  sources."string-width-4.2.3"
+                  sources."strip-ansi-6.0.1"
+                ];
+              })
+              sources."wrappy-1.0.2"
+              sources."write-file-atomic-3.0.3"
+              sources."ws-7.5.6"
+              sources."xml-name-validator-3.0.0"
+              sources."xmlchars-2.2.0"
+              sources."y18n-5.0.8"
+              sources."yallist-4.0.0"
+              (sources."yargs-16.2.0" // {
+                dependencies = [
+                  sources."ansi-regex-5.0.1"
+                  sources."is-fullwidth-code-point-3.0.0"
+                  sources."string-width-4.2.3"
+                  sources."strip-ansi-6.0.1"
+                ];
+              })
+              sources."yargs-parser-20.2.9"
             ];
           })
-          sources."yargs-parser-18.1.3"
         ];
       })
-      sources."zigbee2mqtt-frontend-0.2.100"
+      sources."zigbee2mqtt-frontend-0.6.46"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -10079,7 +10107,7 @@ let
       homepage = "https://koenkk.github.io/zigbee2mqtt";
       license = "GPL-3.0";
     };
-    production = true;
+    production = false;
     bypassCache = true;
     reconstructLock = false;
   };
@@ -10090,4 +10118,16 @@ in
   tarball = nodeEnv.buildNodeSourceDist args;
   package = nodeEnv.buildNodePackage args;
   shell = nodeEnv.buildNodeShell args;
+  nodeDependencies = nodeEnv.buildNodeDependencies (lib.overrideExisting args {
+    src = stdenv.mkDerivation {
+      name = args.name + "-package-json";
+      src = nix-gitignore.gitignoreSourcePure [
+        "*"
+        "!package.json"
+        "!package-lock.json"
+      ] args.src;
+      dontBuild = true;
+      installPhase = "mkdir -p $out; cp -r ./* $out;";
+    };
+  });
 }
diff --git a/pkgs/servers/zigbee2mqtt/node.nix b/pkgs/servers/zigbee2mqtt/node.nix
index 0769168a78fa3..1de33eb05b838 100644
--- a/pkgs/servers/zigbee2mqtt/node.nix
+++ b/pkgs/servers/zigbee2mqtt/node.nix
@@ -1,17 +1,17 @@
-# This file has been generated by node2nix 1.8.0. Do not edit!
+# This file has been generated by node2nix 1.9.0. Do not edit!
 
 {pkgs ? import <nixpkgs> {
     inherit system;
-  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-14_x"}:
 
 let
-  nodeEnv = import ./node-env.nix {
-    inherit (pkgs) lib stdenv python2 util-linux runCommand writeTextFile;
-    inherit nodejs;
+  nodeEnv = import ../../development/node-packages/node-env.nix {
+    inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript;
+    inherit pkgs nodejs;
     libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
   };
 in
 import ./node-packages.nix {
-  inherit (pkgs) fetchurl fetchgit;
+  inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit;
   inherit nodeEnv;
 }
diff --git a/pkgs/servers/zigbee2mqtt/update.sh b/pkgs/servers/zigbee2mqtt/update.sh
index 14c4d93261d13..df4ca62666311 100755
--- a/pkgs/servers/zigbee2mqtt/update.sh
+++ b/pkgs/servers/zigbee2mqtt/update.sh
@@ -1,30 +1,32 @@
 #!/usr/bin/env nix-shell
-#! nix-shell -i bash -p nodePackages.node2nix nodejs-12_x curl jq nix-update
+#! nix-shell -I nixpkgs=../../.. -i bash -p nodePackages.node2nix curl jq nix-update common-updater-scripts
 
-CURRENT_VERSION=$(nix eval --raw '(with import ../../.. {}; zigbee2mqtt.version)')
-TARGET_VERSION=$(curl https://api.github.com/repos/Koenkk/zigbee2mqtt/releases/latest | jq -r ".tag_name")
-ZIGBEE2MQTT=https://github.com/Koenkk/zigbee2mqtt/raw/$TARGET_VERSION
+set -euo pipefail
+
+CURRENT_VERSION=$(nix eval -f ../../.. --raw zigbee2mqtt.version)
+TARGET_VERSION="$(curl https://api.github.com/repos/Koenkk/zigbee2mqtt/releases/latest | jq -r ".tag_name")"
 
 if [[ "$CURRENT_VERSION" == "$TARGET_VERSION" ]]; then
     echo "zigbee2mqtt is up-to-date: ${CURRENT_VERSION}"
     exit 0
 fi
 
+ZIGBEE2MQTT=https://github.com/Koenkk/zigbee2mqtt/raw/$TARGET_VERSION
 curl -LO $ZIGBEE2MQTT/package.json
 curl -LO $ZIGBEE2MQTT/npm-shrinkwrap.json
 
-node2nix --nodejs-12 \
-  -l npm-shrinkwrap.json \
-  -c node.nix \
-  --bypass-cache \
+node2nix \
+  --composition node.nix \
+  --lock npm-shrinkwrap.json \
+  --development \
   --no-copy-node-env \
-  --node-env ../../development/node-packages/node-env.nix
-rm package.json npm-shrinkwrap.json
+  --node-env ../../development/node-packages/node-env.nix \
+  --nodejs-14 \
+  --output node-packages.nix
 
-{
-    cd ../../..
-    nix-update --version "$TARGET_VERSION" --build zigbee2mqtt
-}
+rm package.json npm-shrinkwrap.json
 
-git add ./default.nix ./node-packages.nix ./node.nix
-git commit -m "zigbee2mqtt: ${CURRENT_VERSION} -> ${TARGET_VERSION}"
+(
+    cd ../../../
+    update-source-version zigbee2mqtt "$TARGET_VERSION"
+)
diff --git a/pkgs/shells/bash/bash-5.1-patches.nix b/pkgs/shells/bash/bash-5.1-patches.nix
index aa5ad75fbc702..e6e9461bcbef0 100644
--- a/pkgs/shells/bash/bash-5.1-patches.nix
+++ b/pkgs/shells/bash/bash-5.1-patches.nix
@@ -9,4 +9,8 @@ patch: [
 (patch "006" "051x8wlwrqk0yr0zg378vh824iklfl5g9pkmcdf62qp8gn9pvqbm")
 (patch "007" "0fir80pp1gmlpadmqcgkrv4y119pc7xllchjzg05fd7px73viz5c")
 (patch "008" "1lfjgshk8i9vch92p5wgc9r90j3phw79aa7gbai89w183b2z6b7j")
+(patch "009" "1vn36dzd9g4y1h3jiss6418crla0rbcd0d6wwsyv9d5l7aaxlp74")
+(patch "010" "0amfmvbzsand7bdypylkjdpcp88fa3cplfshn7vyzv2ff2rdgj52")
+(patch "011" "0yq24abb4fzfxqnwl20b330sxl9lr9ds0nc4yi30f81l94b1y6aq")
+(patch "012" "165bff97ffih49vfs4mkr5w3z5gn1w6zfyrf773iajkw6v48kw8h")
 ]
diff --git a/pkgs/shells/bash/nix-bash-completions/default.nix b/pkgs/shells/bash/nix-bash-completions/default.nix
index 2034eed1f5dab..2e8b49385fb43 100644
--- a/pkgs/shells/bash/nix-bash-completions/default.nix
+++ b/pkgs/shells/bash/nix-bash-completions/default.nix
@@ -32,5 +32,7 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     platforms = platforms.all;
     maintainers = with maintainers; [ hedning ];
+    # Set a lower priority such that the newly provided completion from Nix 2.4 are preferred.
+    priority = 10;
   };
 }
diff --git a/pkgs/shells/bash/update-patch-set.sh b/pkgs/shells/bash/update-patch-set.sh
index 03b00228822d0..ee785cc831235 100755
--- a/pkgs/shells/bash/update-patch-set.sh
+++ b/pkgs/shells/bash/update-patch-set.sh
@@ -28,7 +28,7 @@ md5sum -c gpgkey.asc.md5
 gpg --import ./gpgkey.asc
 rm gpgkey.asc{,.md5}
 
-( echo "# Automatically generated by \`$(basename $0)'; do not edit." ;	\
+( echo "# Automatically generated by \`$(basename "$0")'; do not edit." ;	\
   echo "" ;								\
   echo "patch: [" )							\
 >> "$PATCH_LIST"
diff --git a/pkgs/shells/elvish/default.nix b/pkgs/shells/elvish/default.nix
index 961f765dd8728..4a95f1627f439 100644
--- a/pkgs/shells/elvish/default.nix
+++ b/pkgs/shells/elvish/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "elvish";
-  version = "0.16.3";
+  version = "0.17.0";
 
   excludedPackages = [ "website" ];
 
@@ -12,10 +12,10 @@ buildGoModule rec {
     owner = "elves";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1na2fswqp4rbgvlagz9nj3cmlxavlhi2gj6k6jpjq05mcbkxr3bd";
+    sha256 = "sha256-F6yjfsEEBrD6kXUgbMrz+1mxrz0z+sdfeoyztpy7rEk=";
   };
 
-  vendorSha256 = "06rx09vs08d9arim53al73z22hb40xj2101kbvafz6wbyp6pqws1";
+  vendorSha256 = "sha256-810YVxO1rjeDV1XWvE4RmJjGOMdTlicnv7YbvKtoDbM=";
 
   doCheck = false;
 
diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix
index c53a9ed0fe2d9..cf264f11de8cc 100644
--- a/pkgs/shells/fish/default.nix
+++ b/pkgs/shells/fish/default.nix
@@ -2,7 +2,6 @@
 , lib
 , fetchurl
 , coreutils
-, util-linux
 , which
 , gnused
 , gnugrep
@@ -253,8 +252,6 @@ let
       EOF
 
     '' + optionalString stdenv.isLinux ''
-      sed -e "s| ul| ${util-linux}/bin/ul|" \
-          -i "$out/share/fish/functions/__fish_print_help.fish"
       for cur in $out/share/fish/functions/*.fish; do
         sed -e "s|/usr/bin/getent|${getent}/bin/getent|" \
             -i "$cur"
@@ -273,7 +270,7 @@ let
 
     meta = with lib; {
       description = "Smart and user-friendly command line shell";
-      homepage = "http://fishshell.com/";
+      homepage = "https://fishshell.com/";
       license = licenses.gpl2;
       platforms = platforms.unix;
       maintainers = with maintainers; [ cole-h ];
diff --git a/pkgs/shells/fish/plugins/fzf-fish.nix b/pkgs/shells/fish/plugins/fzf-fish.nix
index 3547af490e6ab..9fbc09a831db2 100644
--- a/pkgs/shells/fish/plugins/fzf-fish.nix
+++ b/pkgs/shells/fish/plugins/fzf-fish.nix
@@ -2,13 +2,13 @@
 
 buildFishPlugin rec {
   pname = "fzf.fish";
-  version = "7.3";
+  version = "7.4";
 
   src = fetchFromGitHub {
     owner = "PatrickF1";
     repo = "fzf.fish";
     rev = "v${version}";
-    sha256 = "16mdfyznxjhv7x561srl559misn37a35d2q9fspxa7qg1d0sc3x9";
+    sha256 = "sha256-dngAKzyD+lmqmxsCSOMViyCgA/+Ve35gLtPS+Lgs8Pc=";
   };
 
   checkInputs = [ fzf fd util-linux ];
diff --git a/pkgs/shells/hilbish/default.nix b/pkgs/shells/hilbish/default.nix
index f7e33b88cecc2..55a28ceb8892f 100644
--- a/pkgs/shells/hilbish/default.nix
+++ b/pkgs/shells/hilbish/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "hilbish";
-  version = "0.6.1";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "Rosettea";
     repo = "Hilbish";
     rev = "v${version}";
-    sha256 = "sha256-3qU1gQSWxyKgQcHgT61Q+n6u0rGU0vqTdT/VwMN20yw=";
+    sha256 = "sha256-YQNLv6/4I5WM/xhlWIjThgO23tN+ZCyJVZVatnIUllc=";
     fetchSubmodules = true;
   };
 
-  vendorSha256 = "sha256-xnq0CEfz9uVpDkqY5/Sw9O5uMTHV74vQBXrav3bbH7E=";
+  vendorSha256 = "sha256-xzB6sqBnDuvqTFMmLcXdSj6UFWYzA54PxUBKrFKhyQk=";
 
   buildInputs = [ readline ];
 
diff --git a/pkgs/shells/loksh/default.nix b/pkgs/shells/loksh/default.nix
index d8463d1773c4a..b9f7d5ef7e7f3 100644
--- a/pkgs/shells/loksh/default.nix
+++ b/pkgs/shells/loksh/default.nix
@@ -9,14 +9,14 @@
 
 stdenv.mkDerivation rec {
   pname = "loksh";
-  version = "6.9";
+  version = "7.0";
 
   src = fetchFromGitHub {
     owner = "dimkr";
     repo = pname;
     rev = version;
     fetchSubmodules = true;
-    sha256 = "0x33plxqhh5202hgqidgccz5hpg8d2q71ylgnm437g60mfi9z0px";
+    sha256 = "sha256-q5RiY9/xEFCk+oHlxgNwDOB+TNjRWHKzU2kQH2LjCWY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/shells/nushell/default.nix b/pkgs/shells/nushell/default.nix
index ffc93bff6b735..5ee4f1fc0667f 100644
--- a/pkgs/shells/nushell/default.nix
+++ b/pkgs/shells/nushell/default.nix
@@ -18,16 +18,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nushell";
-  version = "0.39.0";
+  version = "0.41.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-eN1tTKNuZMU3qObHaqq70bdkmZeAD6LNAQau9JGSXpE=";
+    sha256 = "sha256-IMQFOWcHv3gLD+jUJl48IVNv8gu1jMQ0/m4gzSKbHNk=";
   };
 
-  cargoSha256 = "sha256-6TZz8b8fALPTDRxzp+7ZWCHjOwVtqRjdSO6aEwZcMnc=";
+  cargoSha256 = "sha256-usxmfnKIrxX8md7EcmnhP5eFXpik6LZPURX9Ayxs/yo=";
 
   nativeBuildInputs = [ pkg-config ]
     ++ lib.optionals (withExtraFeatures && stdenv.isLinux) [ python3 ];
diff --git a/pkgs/shells/oil/default.nix b/pkgs/shells/oil/default.nix
index 76680c3c3c439..2a019d75e728f 100644
--- a/pkgs/shells/oil/default.nix
+++ b/pkgs/shells/oil/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "oil";
-  version = "0.9.4";
+  version = "0.9.6";
 
   src = fetchurl {
     url = "https://www.oilshell.org/download/oil-${version}.tar.xz";
-    sha256 = "sha256-+sYbzWtowLvy44aqhLEH8mUYUn1DJr9HOgKq3YXlPQI=";
+    sha256 = "sha256-4cfRysJ202y1996TB/7jvlWO5K2vNJ70IjIkANXIpcQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/shells/pash/default.nix b/pkgs/shells/pash/default.nix
index c7c6e4e5a7d41..431091bf8d1cc 100644
--- a/pkgs/shells/pash/default.nix
+++ b/pkgs/shells/pash/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub, buildDotnetPackage }:
 
 buildDotnetPackage {
-  baseName = "pash";
+  pname = "pash";
   version = "git-2016-07-06";
 
   src = fetchFromGitHub {
diff --git a/pkgs/shells/powershell/default.nix b/pkgs/shells/powershell/default.nix
index c34dd472f948f..4efa2cd88a728 100644
--- a/pkgs/shells/powershell/default.nix
+++ b/pkgs/shells/powershell/default.nix
@@ -9,7 +9,7 @@ let archString = if stdenv.isAarch64 then "arm64"
                      else throw "unsupported platform";
     platformSha = if (stdenv.isDarwin && stdenv.isx86_64) then "sha256-h5zjn8wtgHmsJFiGq1rja6kZTZj3Q72W2kH3AexRDQs="
                      else if (stdenv.isDarwin && stdenv.isAarch64) then "sha256-NHM9ZUpBJb59Oq0Ke7DcvaN+bZ9MjSpXBRu5Ng9OVZ0="
-                     else if (stdenv.isLinux && stdenv.isx86_64) then "sha256-gRebkDY0WOKabuLd/WNMoRPL7oGQJtHELFNe+sQ0TwA="
+                     else if (stdenv.isLinux && stdenv.isx86_64) then "sha256-kidPtDMkEZ/1r4WIApPZ/BsdJkolpSZ3f72JyDv3798="
                      else if (stdenv.isLinux && stdenv.isAarch64) then "sha256-bUacA4DwjDNlIG7yooXxUGL9AysAogNWuQDvcTqo1sE="
                      else throw "unsupported platform";
     platformLdLibraryPath = if stdenv.isDarwin then "DYLD_FALLBACK_LIBRARY_PATH"
@@ -20,7 +20,7 @@ let archString = if stdenv.isAarch64 then "arm64"
 in
 stdenv.mkDerivation rec {
   pname = "powershell";
-  version = "7.2.0";
+  version = "7.2.1";
 
   src = fetchzip {
     url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-${platformString}-${archString}.tar.gz";
diff --git a/pkgs/shells/xonsh/default.nix b/pkgs/shells/xonsh/default.nix
index 28f87685166d7..4fa5d9b087be4 100644
--- a/pkgs/shells/xonsh/default.nix
+++ b/pkgs/shells/xonsh/default.nix
@@ -8,14 +8,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "xonsh";
-  version = "0.10.1";
+  version = "0.11.0";
 
   # fetch from github because the pypi package ships incomplete tests
   src = fetchFromGitHub {
     owner = "xonsh";
     repo = "xonsh";
     rev = version;
-    sha256 = "03ahay2rl98a9k4pqkxksmj6mcg554jnbhw9jh8cyvjrygrpcpch";
+    sha256 = "sha256-jfxQMEVABTOhx679V0iGVX9RisuY42lSdztYXMLwdcw=";
   };
 
   LC_ALL = "en_US.UTF-8";
@@ -68,7 +68,8 @@ python3Packages.buildPythonApplication rec {
     HOME=$TMPDIR
   '';
 
-  checkInputs = [ glibcLocales git ] ++ (with python3Packages; [ pytestCheckHook pytest-subprocess ]);
+  checkInputs = [ glibcLocales git ] ++
+    (with python3Packages; [ pyte pytestCheckHook pytest-mock pytest-subprocess ]);
 
   propagatedBuildInputs = with python3Packages; [ ply prompt-toolkit pygments ];
 
diff --git a/pkgs/shells/zsh/antigen/default.nix b/pkgs/shells/zsh/antigen/default.nix
index 935939f90e602..9a69f90dca34b 100644
--- a/pkgs/shells/zsh/antigen/default.nix
+++ b/pkgs/shells/zsh/antigen/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "The plugin manager for zsh";
-    homepage = "http://antigen.sharats.me";
+    homepage = "https://antigen.sharats.me/";
     license = lib.licenses.mit;
   };
 }
diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index 1560cba17f891..d15bd0245731a 100644
--- a/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -5,15 +5,15 @@
 , git, nix, nixfmt, jq, coreutils, gnused, curl, cacert }:
 
 stdenv.mkDerivation rec {
-  version = "2021-11-11";
+  version = "2021-12-18";
   pname = "oh-my-zsh";
-  rev = "b3ba9978cc42a5031c7b68e3cf917ec2e64643bc";
+  rev = "904f8685f75ff5dd3f544f8c6f2cabb8e5952e9a";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "ohmyzsh";
     repo = "ohmyzsh";
-    sha256 = "9a5eVMphQ0jay9ogc/9ZFS+vvHlXhPYCCo8kMdgVsnA=";
+    sha256 = "Pos7LaNQllZrzBUx8a7QXi1sAVcIABQJOLUjIwGIP/U=";
   };
 
   installPhase = ''
diff --git a/pkgs/shells/zsh/zinit/default.nix b/pkgs/shells/zsh/zinit/default.nix
index 126ed8e67c610..9946d7d0c3a5c 100644
--- a/pkgs/shells/zsh/zinit/default.nix
+++ b/pkgs/shells/zsh/zinit/default.nix
@@ -34,7 +34,7 @@ stdenvNoCC.mkDerivation rec {
   #TODO:doc output
 
   meta = with lib; {
-    homepage = "https://github.com/zdharma/zinit";
+    homepage = "https://github.com/zdharma-continuum/zinit";
     description = "Flexible zsh plugin manager";
     license = licenses.mit;
     maintainers = with maintainers; [ pasqui23 sei40kr ];
diff --git a/pkgs/shells/zsh/zsh-better-npm-completion/default.nix b/pkgs/shells/zsh/zsh-better-npm-completion/default.nix
new file mode 100644
index 0000000000000..372d49eaeb7e1
--- /dev/null
+++ b/pkgs/shells/zsh/zsh-better-npm-completion/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "zsh-better-npm-completion";
+  version = "unstable-2019-11-19";
+
+  src = fetchFromGitHub {
+    owner = "lukechilds";
+    repo = "zsh-better-npm-completion";
+    rev = "0a7cf042415324ec38a186fdcbc9af163f0d7e69";
+    sha256 = "16z7k5n1rcl9i61lrm7i5dsqsmhvdp1y4y5ii6hv2xpp470addgy";
+  };
+
+  installPhase = ''
+    install -Dm 0644 zsh-better-npm-completion.plugin.zsh $out/share/zsh-better-npm-completion
+  '';
+
+  meta = with lib; {
+    description = "Better completion for npm";
+    homepage = "https://github.com/lukechilds/zsh-better-npm-completion";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.gerschtli ];
+  };
+}
diff --git a/pkgs/shells/zsh/zsh-deer/default.nix b/pkgs/shells/zsh/zsh-deer/default.nix
index 895ca621cfedd..ab544d7c3147a 100644
--- a/pkgs/shells/zsh/zsh-deer/default.nix
+++ b/pkgs/shells/zsh/zsh-deer/default.nix
@@ -1,10 +1,8 @@
 { lib, stdenv, fetchFromGitHub, perl }:
 
-let
+stdenv.mkDerivation rec {
+  pname = "deer";
   version = "1.4";
-  name = "deer-${version}";
-in stdenv.mkDerivation {
-  inherit name;
 
   src = fetchFromGitHub {
     owner = "Vifon";
diff --git a/pkgs/shells/zsh/zsh-fzf-tab/default.nix b/pkgs/shells/zsh/zsh-fzf-tab/default.nix
index ad1b7d3d740c2..4fc092330e378 100644
--- a/pkgs/shells/zsh/zsh-fzf-tab/default.nix
+++ b/pkgs/shells/zsh/zsh-fzf-tab/default.nix
@@ -4,13 +4,13 @@ let
   INSTALL_PATH="${placeholder "out"}/share/fzf-tab";
 in stdenv.mkDerivation rec {
   pname = "zsh-fzf-tab";
-  version = "unstable-2021-08-05";
+  version = "unstable-2021-11-12";
 
   src = fetchFromGitHub {
     owner = "Aloxaf";
     repo = "fzf-tab";
-    rev = "89a33154707c09789177a893e5a8ebbb131d5d3d";
-    sha256 = "1g8011ldrghbw5ibchsp0p93r31cwyx2r1z5xplksd779jw79wdx";
+    rev = "190500bf1de6a89416e2a74470d3b5cceab102ba";
+    sha256 = "1dipsy0s67fr47ig5559bcp1h5yn8rdjshhs8zsq7j8plvvh99qb";
   };
 
   buildInputs = [ ncurses ];
diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix
index b25a840f460ef..24ad0cb6959f3 100644
--- a/pkgs/stdenv/darwin/default.nix
+++ b/pkgs/stdenv/darwin/default.nix
@@ -4,7 +4,7 @@
 , config
 , overlays
 , crossOverlays ? [ ]
-, bootstrapLlvmVersion ? if localSystem.isAarch64 then "11.1.0" else "7.1.0"
+, bootstrapLlvmVersion ? "11.1.0"
   # 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
@@ -23,7 +23,7 @@
   else
     let
       fetch = { file, sha256, executable ? true }: import <nix/fetchurl.nix> {
-        url = "http://tarballs.nixos.org/stdenv-darwin/x86_64/05ef940b94fe76e7ac06ea45a625adc8e4be96f9/${file}";
+        url = "http://tarballs.nixos.org/stdenv-darwin/x86_64/c253216595572930316f2be737dc288a1da22558/${file}";
         inherit (localSystem) system;
         inherit sha256 executable;
       }; in
@@ -32,7 +32,7 @@
       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-b65dXbIm6o6s6U8tAiGpR6SMfvfn/VFcZgTHBetJZis="; executable = false; };
+      tarball = fetch { file = "bootstrap-tools.cpio.bz2"; sha256 = "sha256-kRC/bhCmlD4L7KAvJQgcukk7AinkMz4IwmG1rqlh5tA="; executable = false; };
     }
 }:
 
@@ -62,9 +62,6 @@ rec {
     export NIX_IGNORE_LD_THROUGH_GCC=1
     unset SDKROOT
 
-    # Workaround for https://openradar.appspot.com/22671534 on 10.11.
-    export gl_cv_func_getcwd_abort_bug=no
-
     stripAllFlags=" " # the Darwin "strip" command doesn't know "-s"
   '';
 
@@ -472,7 +469,7 @@ rec {
               };
               libcxxabi = libSuper.libcxxabi.override ({
                 stdenv = overrideCC self.stdenv self.ccNoLibcxx;
-              } // lib.optionalAttrs (finalLlvmVersion == "7") {
+              } // lib.optionalAttrs (builtins.any (v: finalLlvmVersion == v) [ 7 11 12 13 ]) {
                 # TODO: the bootstrapping of llvm packages isn't consistent.
                 # `standalone` may be redundant if darwin behaves like useLLVM (or
                 # has useLLVM = true).
diff --git a/pkgs/stdenv/darwin/make-bootstrap-tools.nix b/pkgs/stdenv/darwin/make-bootstrap-tools.nix
index 434eadb38bf08..49f884cd8b3d9 100644
--- a/pkgs/stdenv/darwin/make-bootstrap-tools.nix
+++ b/pkgs/stdenv/darwin/make-bootstrap-tools.nix
@@ -32,50 +32,6 @@ in rec {
   # Avoid messing with libkrb5 and libnghttp2.
   curl_ = curlMinimal.override (args: { gssSupport = false; http2Support = false; });
 
-  # Avoid stdenv rebuild.
-  Libsystem_ = (darwin.Libsystem.override (args:
-    { xnu = darwin.xnu.overrideAttrs (oldAttrs:
-      { patches = [ ./fixed-xnu-python3.patch ]; });
-    })).overrideAttrs (oldAttrs:
-    { installPhase = oldAttrs.installPhase + ''
-        cat <<EOF > $out/include/TargetConditionals.h
-        #ifndef __TARGETCONDITIONALS__
-        #define __TARGETCONDITIONALS__
-        #define TARGET_OS_MAC               1
-        #define TARGET_OS_WIN32             0
-        #define TARGET_OS_UNIX              0
-        #define TARGET_OS_OSX               1
-        #define TARGET_OS_IPHONE            0
-        #define TARGET_OS_IOS               0
-        #define TARGET_OS_WATCH             0
-        #define TARGET_OS_BRIDGE            0
-        #define TARGET_OS_TV                0
-        #define TARGET_OS_SIMULATOR         0
-        #define TARGET_OS_EMBEDDED          0
-        #define TARGET_OS_EMBEDDED_OTHER    0 /* Used in configd */
-        #define TARGET_IPHONE_SIMULATOR     TARGET_OS_SIMULATOR /* deprecated */
-        #define TARGET_OS_NANO              TARGET_OS_WATCH /* deprecated */
-
-        #define TARGET_CPU_PPC          0
-        #define TARGET_CPU_PPC64        0
-        #define TARGET_CPU_68K          0
-        #define TARGET_CPU_X86          0
-        #define TARGET_CPU_X86_64       1
-        #define TARGET_CPU_ARM          0
-        #define TARGET_CPU_ARM64        0
-        #define TARGET_CPU_MIPS         0
-        #define TARGET_CPU_SPARC        0
-        #define TARGET_CPU_ALPHA        0
-        #define TARGET_RT_MAC_CFM       0
-        #define TARGET_RT_MAC_MACHO     1
-        #define TARGET_RT_LITTLE_ENDIAN 1
-        #define TARGET_RT_BIG_ENDIAN    0
-        #define TARGET_RT_64_BIT        1
-        #endif  /* __TARGETCONDITIONALS__ */
-        EOF
-      '';
-    });
-
   build = stdenv.mkDerivation {
     name = "stdenv-bootstrap-tools";
 
@@ -87,12 +43,12 @@ in rec {
 
       ${lib.optionalString stdenv.targetPlatform.isx86_64 ''
         # Copy libSystem's .o files for various low-level boot stuff.
-        cp -d ${Libsystem_}/lib/*.o $out/lib
+        cp -d ${lib.getLib darwin.Libsystem}/lib/*.o $out/lib
 
         # Resolv is actually a link to another package, so let's copy it properly
-        cp -L ${Libsystem_}/lib/libresolv.9.dylib $out/lib
+        cp -L ${lib.getLib darwin.Libsystem}/lib/libresolv.9.dylib $out/lib
 
-        cp -rL ${Libsystem_}/include $out
+        cp -rL ${darwin.Libsystem}/include $out
         chmod -R u+w $out/include
         cp -rL ${darwin.ICU}/include*             $out/include
         cp -rL ${libiconv}/include/*       $out/include
@@ -128,21 +84,21 @@ in rec {
 
       cp -d ${gnugrep.pcre.out}/lib/libpcre*.dylib $out/lib
       cp -d ${lib.getLib libiconv}/lib/lib*.dylib $out/lib
-      cp -d ${gettext}/lib/libintl*.dylib $out/lib
+      cp -d ${lib.getLib gettext}/lib/libintl*.dylib $out/lib
       chmod +x $out/lib/libintl*.dylib
       cp -d ${ncurses.out}/lib/libncurses*.dylib $out/lib
       cp -d ${libxml2.out}/lib/libxml2*.dylib $out/lib
 
       # Copy what we need of clang
       cp -d ${llvmPackages.clang-unwrapped}/bin/clang* $out/bin
-      cp -rd ${llvmPackages.clang-unwrapped.lib}/lib/* $out/lib
+      cp -rd ${lib.getLib llvmPackages.clang-unwrapped}/lib/* $out/lib
 
-      cp -d ${llvmPackages.libcxx}/lib/libc++*.dylib $out/lib
-      cp -d ${llvmPackages.libcxxabi}/lib/libc++abi*.dylib $out/lib
-      cp -d ${llvmPackages.compiler-rt}/lib/darwin/libclang_rt* $out/lib/darwin
-      cp -d ${llvmPackages.compiler-rt}/lib/libclang_rt* $out/lib
-      cp -d ${llvmPackages.llvm.lib}/lib/libLLVM.dylib $out/lib
-      cp -d ${libffi}/lib/libffi*.dylib $out/lib
+      cp -d ${lib.getLib llvmPackages.libcxx}/lib/libc++*.dylib $out/lib
+      cp -d ${lib.getLib llvmPackages.libcxxabi}/lib/libc++abi*.dylib $out/lib
+      cp -d ${lib.getLib llvmPackages.compiler-rt}/lib/darwin/libclang_rt* $out/lib/darwin
+      cp -d ${lib.getLib llvmPackages.compiler-rt}/lib/libclang_rt* $out/lib
+      cp -d ${lib.getLib llvmPackages.llvm.lib}/lib/libLLVM.dylib $out/lib
+      cp -d ${lib.getLib libffi}/lib/libffi*.dylib $out/lib
 
       mkdir $out/include
       cp -rd ${llvmPackages.libcxx.dev}/include/c++     $out/include
@@ -150,11 +106,11 @@ in rec {
       ${lib.optionalString targetPlatform.isAarch64 ''
         # copy .tbd assembly utils
         cp -d ${pkgs.darwin.rewrite-tbd}/bin/rewrite-tbd $out/bin
-        cp -d ${pkgs.libyaml}/lib/libyaml*.dylib $out/lib
+        cp -d ${lib.getLib pkgs.libyaml}/lib/libyaml*.dylib $out/lib
 
         # copy package extraction tools
         cp -d ${pkgs.pbzx}/bin/pbzx $out/bin
-        cp -d ${pkgs.xar}/lib/libxar*.dylib $out/lib
+        cp -d ${lib.getLib pkgs.xar}/lib/libxar*.dylib $out/lib
         cp -d ${pkgs.bzip2.out}/lib/libbz2*.dylib $out/lib
 
         # copy sigtool
@@ -162,7 +118,7 @@ in rec {
         cp -d ${pkgs.darwin.sigtool}/bin/codesign $out/bin
       ''}
 
-      cp -d ${darwin.ICU}/lib/libicu*.dylib $out/lib
+      cp -d ${lib.getLib darwin.ICU}/lib/libicu*.dylib $out/lib
       cp -d ${zlib.out}/lib/libz.*       $out/lib
       cp -d ${gmpxx.out}/lib/libgmp*.*   $out/lib
       cp -d ${xz.out}/lib/liblzma*.*     $out/lib
@@ -172,7 +128,7 @@ in rec {
         cp ${cctools_}/bin/$i $out/bin
       done
 
-      cp -d ${darwin.libtapi}/lib/libtapi* $out/lib
+      cp -d ${lib.getLib darwin.libtapi}/lib/libtapi* $out/lib
 
       ${lib.optionalString targetPlatform.isx86_64 ''
         cp -rd ${pkgs.darwin.CF}/Library $out
diff --git a/pkgs/stdenv/default.nix b/pkgs/stdenv/default.nix
index d6c59573f2a58..0d328d98ba110 100644
--- a/pkgs/stdenv/default.nix
+++ b/pkgs/stdenv/default.nix
@@ -56,6 +56,7 @@ in
     powerpc-linux = /* stagesLinux */ stagesNative;
     powerpc64-linux = stagesLinux;
     powerpc64le-linux = stagesLinux;
+    riscv64-linux = stagesLinux;
     x86_64-darwin = stagesDarwin;
     aarch64-darwin = stagesDarwin;
     x86_64-solaris = stagesNix;
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index d7fb1b0ba0635..49ebc67f854e4 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -1,6 +1,6 @@
-let lib = import ../../../lib; in lib.makeOverridable (
+let lib = import ../../../lib; stdenv-overridable = lib.makeOverridable (
 
-{ name ? "stdenv", preHook ? "", initialPath
+argsStdenv@{ name ? "stdenv", preHook ? "", initialPath
 
 , # If we don't have a C compiler, we might either have `cc = null` or `cc =
   # throw ...`, but if we do have a C compiler we should definiely have `cc !=
@@ -81,8 +81,10 @@ let
 
   defaultBuildInputs = extraBuildInputs;
 
+  stdenv = (stdenv-overridable argsStdenv);
+
   # The stdenv that we are producing.
-  stdenv =
+  in
     derivation (
     lib.optionalAttrs (allowedRequisites != null) {
       allowedRequisites = allowedRequisites
@@ -172,6 +174,5 @@ let
     # "lift" packages like curl from the final stdenv for Linux to
     # all-packages.nix for that platform (meaning that it has a line
     # like curl = if stdenv ? curl then stdenv.curl else ...).
-    // extraAttrs;
-
-in stdenv)
+    // extraAttrs
+); in stdenv-overridable
diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix
index 8fa3063704943..2465449867cb2 100644
--- a/pkgs/stdenv/generic/make-derivation.nix
+++ b/pkgs/stdenv/generic/make-derivation.nix
@@ -282,7 +282,7 @@ else let
       ++ [ "-DCMAKE_SYSTEM_NAME=${lib.findFirst lib.isString "Generic" (
            lib.optional (!stdenv.hostPlatform.isRedox) stdenv.hostPlatform.uname.system)}"]
       ++ lib.optional (stdenv.hostPlatform.uname.processor != null) "-DCMAKE_SYSTEM_PROCESSOR=${stdenv.hostPlatform.uname.processor}"
-      ++ lib.optional (stdenv.hostPlatform.uname.release != null) "-DCMAKE_SYSTEM_VERSION=${stdenv.hostPlatform.release}"
+      ++ lib.optional (stdenv.hostPlatform.uname.release != null) "-DCMAKE_SYSTEM_VERSION=${stdenv.hostPlatform.uname.release}"
       ++ lib.optional (stdenv.hostPlatform.isDarwin) "-DCMAKE_OSX_ARCHITECTURES=${stdenv.hostPlatform.darwinArch}"
       ++ lib.optional (stdenv.buildPlatform.uname.system != null) "-DCMAKE_HOST_SYSTEM_NAME=${stdenv.buildPlatform.uname.system}"
       ++ lib.optional (stdenv.buildPlatform.uname.processor != null) "-DCMAKE_HOST_SYSTEM_PROCESSOR=${stdenv.buildPlatform.uname.processor}"
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index b7645547abc99..2951813c0f715 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -986,7 +986,18 @@ patchPhase() {
 
 
 fixLibtool() {
-    sed -i -e 's^eval sys_lib_.*search_path=.*^^' "$1"
+    local search_path
+    for flag in $NIX_LDFLAGS; do
+        case $flag in
+            -L*)
+                search_path+=" ${flag#-L}"
+                ;;
+        esac
+    done
+
+    sed -i "$1" \
+        -e "s^eval \(sys_lib_search_path=\).*^\1'$search_path'^" \
+        -e 's^eval sys_lib_.+search_path=.*^^'
 }
 
 
diff --git a/pkgs/stdenv/linux/bootstrap-files/riscv64.nix b/pkgs/stdenv/linux/bootstrap-files/riscv64.nix
new file mode 100644
index 0000000000000..aaf1f153c7876
--- /dev/null
+++ b/pkgs/stdenv/linux/bootstrap-files/riscv64.nix
@@ -0,0 +1,12 @@
+{
+  busybox = import <nix/fetchurl.nix> {
+    url = "http://tarballs.nixos.org/stdenv-linux/riscv64/9bd3cf0063b80428bd85a286205adab4b6ffcbd6/busybox";
+    sha256 = "6f61912f94bc4ef287d1ff48a9521ed16bd07d8d8ec775e471f32c64d346583d";
+    executable = true;
+  };
+
+  bootstrapTools = import <nix/fetchurl.nix> {
+    url = "http://tarballs.nixos.org/stdenv-linux/riscv64/9bd3cf0063b80428bd85a286205adab4b6ffcbd6/bootstrap-tools.tar.xz";
+    sha256 = "5466b19288e980125fc62ebb864d09908ffe0bc50cebe52cfee89acff14d5b9f";
+  };
+}
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index d2c74f7722d38..d2c28b97ff939 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -16,6 +16,7 @@
       armv7l-linux = import ./bootstrap-files/armv7l.nix;
       aarch64-linux = import ./bootstrap-files/aarch64.nix;
       mipsel-linux = import ./bootstrap-files/loongson2f.nix;
+      riscv64-linux = import ./bootstrap-files/riscv64.nix;
     };
     musl = {
       aarch64-linux = import ./bootstrap-files/aarch64-musl.nix;
@@ -279,6 +280,10 @@ in
         };
       };
     };
+
+    # `libtool` comes with obsolete config.sub/config.guess that don't recognize Risc-V.
+    extraNativeBuildInputs =
+      lib.optional (localSystem.isRiscV) prevStage.updateAutotoolsGnuConfigScriptsHook;
   })
 
 
diff --git a/pkgs/stdenv/linux/make-bootstrap-tools.nix b/pkgs/stdenv/linux/make-bootstrap-tools.nix
index 0eee6e692fd3f..84b63e7b8fd0e 100644
--- a/pkgs/stdenv/linux/make-bootstrap-tools.nix
+++ b/pkgs/stdenv/linux/make-bootstrap-tools.nix
@@ -160,6 +160,11 @@ in with pkgs; rec {
         # pkgs/stdenv/linux/default.nix for the details.
         cp -d ${isl_0_20.out}/lib/libisl*.so* $out/lib
 
+      '' + lib.optionalString (stdenv.hostPlatform.isRiscV) ''
+        # libatomic is required on RiscV platform for C/C++ atomics and pthread
+        # even though they may be translated into native instructions.
+        cp -d ${bootGCC.out}/lib/libatomic.a* $out/lib
+
       '' + ''
         cp -d ${bzip2.out}/lib/libbz2.so* $out/lib
 
diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix
index e3ef7839c4b4d..caed950c57642 100644
--- a/pkgs/test/default.nix
+++ b/pkgs/test/default.nix
@@ -27,6 +27,10 @@ with pkgs;
   cc-multilib-gcc = callPackage ./cc-wrapper/multilib.nix { stdenv = gccMultiStdenv; };
   cc-multilib-clang = callPackage ./cc-wrapper/multilib.nix { stdenv = clangMultiStdenv; };
 
+  fetchpatch = callPackages ../build-support/fetchpatch/tests.nix { };
+  fetchgit = callPackages ../build-support/fetchgit/tests.nix { };
+  fetchFirefoxAddon = callPackages ../build-support/fetchfirefoxaddon/tests.nix { };
+
   install-shell-files = callPackage ./install-shell-files {};
 
   kernel-config = callPackage ./kernel.nix {};
diff --git a/pkgs/test/dhall/default.nix b/pkgs/test/dhall/default.nix
index bdb33acf0238e..4c7eba6c95799 100644
--- a/pkgs/test/dhall/default.nix
+++ b/pkgs/test/dhall/default.nix
@@ -2,4 +2,5 @@
 
 lib.recurseIntoAttrs {
   buildDhallUrl = callPackage ./buildDhallUrl { };
+  generateDhallDirectoryPackage = callPackage ./generateDhallDirectoryPackage { };
 }
diff --git a/pkgs/test/dhall/generateDhallDirectoryPackage/default.nix b/pkgs/test/dhall/generateDhallDirectoryPackage/default.nix
new file mode 100644
index 0000000000000..4771e16298060
--- /dev/null
+++ b/pkgs/test/dhall/generateDhallDirectoryPackage/default.nix
@@ -0,0 +1,17 @@
+{ dhallPackages, fetchFromGitHub }:
+
+# This file tests that dhallPackages.generateDhallDirectoryPackage works.
+#
+# TODO: It would be nice to extend this test to make sure that the resulting
+# Nix file has the expected contents, but it might be tough to do that easily
+# without IFD.
+
+dhallPackages.generateDhallDirectoryPackage {
+  src = fetchFromGitHub {
+    owner = "cdepillabout";
+    repo = "example-dhall-nix";
+    rev = "e6a675c72ecd4dd23d254a02aea8181fe875747f";
+    sha256 = "sha256-c/EZq76s/+hmLkaeJWKqgh2KrHuJRYI6kWry0E0YQ6s=";
+  };
+  file = "mydhallfile.dhall";
+}
diff --git a/pkgs/test/make-binary-wrapper/add-flags.c b/pkgs/test/make-binary-wrapper/add-flags.c
new file mode 100644
index 0000000000000..7ce682c6be647
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/add-flags.c
@@ -0,0 +1,21 @@
+#include <unistd.h>
+#include <stdlib.h>
+#include <assert.h>
+
+int main(int argc, char **argv) {
+    char **argv_tmp = calloc(5 + argc, sizeof(*argv_tmp));
+    assert(argv_tmp != NULL);
+    argv_tmp[0] = argv[0];
+    argv_tmp[1] = "-x";
+    argv_tmp[2] = "-y";
+    argv_tmp[3] = "-z";
+    argv_tmp[4] = "-abc";
+    for (int i = 1; i < argc; ++i) {
+        argv_tmp[4 + i] = argv[i];
+    }
+    argv_tmp[4 + argc] = NULL;
+    argv = argv_tmp;
+
+    argv[0] = "/send/me/flags";
+    return execv("/send/me/flags", argv);
+}
diff --git a/pkgs/test/make-binary-wrapper/add-flags.cmdline b/pkgs/test/make-binary-wrapper/add-flags.cmdline
new file mode 100644
index 0000000000000..f840c772e3494
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/add-flags.cmdline
@@ -0,0 +1,2 @@
+    --add-flags "-x -y -z" \
+    --add-flags -abc
diff --git a/pkgs/test/make-binary-wrapper/add-flags.env b/pkgs/test/make-binary-wrapper/add-flags.env
new file mode 100644
index 0000000000000..9b8d1fb9f6a5d
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/add-flags.env
@@ -0,0 +1,6 @@
+CWD=SUBST_CWD
+SUBST_ARGV0
+-x
+-y
+-z
+-abc
diff --git a/pkgs/test/make-binary-wrapper/argv0.c b/pkgs/test/make-binary-wrapper/argv0.c
new file mode 100644
index 0000000000000..70c36889dc890
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/argv0.c
@@ -0,0 +1,7 @@
+#include <unistd.h>
+#include <stdlib.h>
+
+int main(int argc, char **argv) {
+    argv[0] = "alternative-name";
+    return execv("/send/me/flags", argv);
+}
diff --git a/pkgs/test/make-binary-wrapper/argv0.cmdline b/pkgs/test/make-binary-wrapper/argv0.cmdline
new file mode 100644
index 0000000000000..1cadce8312a44
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/argv0.cmdline
@@ -0,0 +1 @@
+    --argv0 alternative-name
diff --git a/pkgs/test/make-binary-wrapper/argv0.env b/pkgs/test/make-binary-wrapper/argv0.env
new file mode 100644
index 0000000000000..04c13d32ee6d6
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/argv0.env
@@ -0,0 +1,2 @@
+CWD=SUBST_CWD
+alternative-name
diff --git a/pkgs/test/make-binary-wrapper/basic.c b/pkgs/test/make-binary-wrapper/basic.c
new file mode 100644
index 0000000000000..1c1266181377a
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/basic.c
@@ -0,0 +1,7 @@
+#include <unistd.h>
+#include <stdlib.h>
+
+int main(int argc, char **argv) {
+    argv[0] = "/send/me/flags";
+    return execv("/send/me/flags", argv);
+}
diff --git a/pkgs/test/make-binary-wrapper/basic.cmdline b/pkgs/test/make-binary-wrapper/basic.cmdline
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/basic.cmdline
diff --git a/pkgs/test/make-binary-wrapper/basic.env b/pkgs/test/make-binary-wrapper/basic.env
new file mode 100644
index 0000000000000..b0da31959447c
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/basic.env
@@ -0,0 +1,2 @@
+CWD=SUBST_CWD
+SUBST_ARGV0
diff --git a/pkgs/test/make-binary-wrapper/chdir.c b/pkgs/test/make-binary-wrapper/chdir.c
new file mode 100644
index 0000000000000..9e0b7e2c7f52a
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/chdir.c
@@ -0,0 +1,11 @@
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#define assert_success(e) do { if ((e) < 0) { perror(#e); abort(); } } while (0)
+
+int main(int argc, char **argv) {
+    assert_success(chdir("./tmp/foo"));
+    argv[0] = "/send/me/flags";
+    return execv("/send/me/flags", argv);
+}
diff --git a/pkgs/test/make-binary-wrapper/chdir.cmdline b/pkgs/test/make-binary-wrapper/chdir.cmdline
new file mode 100644
index 0000000000000..d6ab081e8d358
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/chdir.cmdline
@@ -0,0 +1 @@
+    --chdir ./tmp/foo
diff --git a/pkgs/test/make-binary-wrapper/chdir.env b/pkgs/test/make-binary-wrapper/chdir.env
new file mode 100644
index 0000000000000..ea1c61054e504
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/chdir.env
@@ -0,0 +1,2 @@
+CWD=SUBST_CWD/tmp/foo
+SUBST_ARGV0
diff --git a/pkgs/test/make-binary-wrapper/combination.c b/pkgs/test/make-binary-wrapper/combination.c
new file mode 100644
index 0000000000000..e9ce5f1d72440
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/combination.c
@@ -0,0 +1,53 @@
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <unistd.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <stdio.h>
+
+#define assert_success(e) do { if ((e) < 0) { perror(#e); abort(); } } while (0)
+
+void set_env_prefix(char *env, char *sep, char *prefix) {
+    char *existing = getenv(env);
+    if (existing) {
+        char *val;
+        assert_success(asprintf(&val, "%s%s%s", prefix, sep, existing));
+        assert_success(setenv(env, val, 1));
+        free(val);
+    } else {
+        assert_success(setenv(env, prefix, 1));
+    }
+}
+
+void set_env_suffix(char *env, char *sep, char *suffix) {
+    char *existing = getenv(env);
+    if (existing) {
+        char *val;
+        assert_success(asprintf(&val, "%s%s%s", existing, sep, suffix));
+        assert_success(setenv(env, val, 1));
+        free(val);
+    } else {
+        assert_success(setenv(env, suffix, 1));
+    }
+}
+
+int main(int argc, char **argv) {
+    assert_success(setenv("MESSAGE", "HELLO", 0));
+    set_env_prefix("PATH", ":", "/usr/bin/");
+    set_env_suffix("PATH", ":", "/usr/local/bin/");
+    putenv("MESSAGE2=WORLD");
+
+    char **argv_tmp = calloc(4 + argc, sizeof(*argv_tmp));
+    assert(argv_tmp != NULL);
+    argv_tmp[0] = argv[0];
+    argv_tmp[1] = "-x";
+    argv_tmp[2] = "-y";
+    argv_tmp[3] = "-z";
+    for (int i = 1; i < argc; ++i) {
+        argv_tmp[3 + i] = argv[i];
+    }
+    argv_tmp[3 + argc] = NULL;
+    argv = argv_tmp;
+
+    argv[0] = "my-wrapper";
+    return execv("/send/me/flags", argv);
+}
diff --git a/pkgs/test/make-binary-wrapper/combination.cmdline b/pkgs/test/make-binary-wrapper/combination.cmdline
new file mode 100644
index 0000000000000..fb3861235c8b4
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/combination.cmdline
@@ -0,0 +1,6 @@
+    --argv0 my-wrapper \
+    --set-default MESSAGE HELLO \
+    --prefix PATH : /usr/bin/ \
+    --suffix PATH : /usr/local/bin/ \
+    --add-flags "-x -y -z" \
+    --set MESSAGE2 WORLD
diff --git a/pkgs/test/make-binary-wrapper/combination.env b/pkgs/test/make-binary-wrapper/combination.env
new file mode 100644
index 0000000000000..886420c01d1ea
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/combination.env
@@ -0,0 +1,8 @@
+MESSAGE=HELLO
+PATH=/usr/bin/:/usr/local/bin/
+MESSAGE2=WORLD
+CWD=SUBST_CWD
+my-wrapper
+-x
+-y
+-z
diff --git a/pkgs/test/make-binary-wrapper/default.nix b/pkgs/test/make-binary-wrapper/default.nix
new file mode 100644
index 0000000000000..b5bbf994ffa3f
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/default.nix
@@ -0,0 +1,54 @@
+{ lib, coreutils, python3, gcc, writeText, writeScript, runCommand, makeBinaryWrapper }:
+
+let
+  env = { buildInputs = [ makeBinaryWrapper ]; };
+  envCheck = runCommand "envcheck" env ''
+    ${gcc}/bin/cc -Wall -Werror -Wpedantic -o $out ${./envcheck.c}
+  '';
+  makeGoldenTest = testname: runCommand "test-wrapper_${testname}" env ''
+    mkdir -p ./tmp/foo
+
+    params=$(<"${./.}/${testname}.cmdline")
+    eval "makeCWrapper /send/me/flags $params" > wrapper.c
+
+    diff wrapper.c "${./.}/${testname}.c"
+
+    if [ -f "${./.}/${testname}.env" ]; then
+      eval "makeWrapper ${envCheck} wrapped $params"
+      env -i ./wrapped > env.txt
+      sed "s#SUBST_ARGV0#${envCheck}#;s#SUBST_CWD#$PWD#" \
+        "${./.}/${testname}.env" > golden-env.txt
+      if ! diff env.txt golden-env.txt; then
+        echo "env/argv should be:"
+        cat golden-env.txt
+        echo "env/argv output is:"
+        cat env.txt
+        exit 1
+      fi
+    else
+      # without a golden env, we expect the wrapper compilation to fail
+      ! eval "makeWrapper ${envCheck} wrapped $params" &> error.txt
+    fi
+
+    cp wrapper.c $out
+  '';
+  tests = let
+    names = [
+      "add-flags"
+      "argv0"
+      "basic"
+      "chdir"
+      "combination"
+      "env"
+      "inherit-argv0"
+      "invalid-env"
+      "prefix"
+      "suffix"
+    ];
+    f = name: lib.nameValuePair name (makeGoldenTest name);
+  in builtins.listToAttrs (builtins.map f names);
+in writeText "make-binary-wrapper-test" ''
+  ${lib.concatStringsSep "\n" (lib.mapAttrsToList (_: test: ''
+    "${test.name}" "${test}"
+  '') tests)}
+'' // tests
diff --git a/pkgs/test/make-binary-wrapper/env.c b/pkgs/test/make-binary-wrapper/env.c
new file mode 100644
index 0000000000000..7e0422dee3bdc
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/env.c
@@ -0,0 +1,14 @@
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#define assert_success(e) do { if ((e) < 0) { perror(#e); abort(); } } while (0)
+
+int main(int argc, char **argv) {
+    putenv("PART1=HELLO");
+    assert_success(setenv("PART2", "WORLD", 0));
+    assert_success(unsetenv("SOME_OTHER_VARIABLE"));
+    putenv("PART3=\"!!\n\"");
+    argv[0] = "/send/me/flags";
+    return execv("/send/me/flags", argv);
+}
diff --git a/pkgs/test/make-binary-wrapper/env.cmdline b/pkgs/test/make-binary-wrapper/env.cmdline
new file mode 100644
index 0000000000000..3c89f33e2dceb
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/env.cmdline
@@ -0,0 +1,4 @@
+    --set PART1 HELLO \
+    --set-default PART2 WORLD \
+    --unset SOME_OTHER_VARIABLE \
+    --set PART3 $'"!!\n"'
diff --git a/pkgs/test/make-binary-wrapper/env.env b/pkgs/test/make-binary-wrapper/env.env
new file mode 100644
index 0000000000000..c7661e165e09e
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/env.env
@@ -0,0 +1,6 @@
+PART1=HELLO
+PART2=WORLD
+PART3="!!
+"
+CWD=SUBST_CWD
+SUBST_ARGV0
diff --git a/pkgs/test/make-binary-wrapper/envcheck.c b/pkgs/test/make-binary-wrapper/envcheck.c
new file mode 100644
index 0000000000000..848fbdaa80f26
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/envcheck.c
@@ -0,0 +1,22 @@
+#include <limits.h>
+#include <stdio.h>
+#include <unistd.h>
+
+int main(int argc, char **argv, char **envp) {
+  for (char **env = envp; *env != 0; ++env) {
+    puts(*env);
+  }
+
+   char cwd[PATH_MAX];
+   if (getcwd(cwd, sizeof(cwd))) {
+     printf("CWD=%s\n", cwd);
+   } else {
+     perror("getcwd() error");
+     return 1;
+   }
+
+  for (int i=0; i < argc; ++i) {
+    puts(argv[i]);
+  }
+  return 0;
+}
diff --git a/pkgs/test/make-binary-wrapper/inherit-argv0.c b/pkgs/test/make-binary-wrapper/inherit-argv0.c
new file mode 100644
index 0000000000000..e1c2bc926aa72
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/inherit-argv0.c
@@ -0,0 +1,6 @@
+#include <unistd.h>
+#include <stdlib.h>
+
+int main(int argc, char **argv) {
+    return execv("/send/me/flags", argv);
+}
diff --git a/pkgs/test/make-binary-wrapper/inherit-argv0.cmdline b/pkgs/test/make-binary-wrapper/inherit-argv0.cmdline
new file mode 100644
index 0000000000000..0880767998357
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/inherit-argv0.cmdline
@@ -0,0 +1 @@
+    --inherit-argv0
diff --git a/pkgs/test/make-binary-wrapper/inherit-argv0.env b/pkgs/test/make-binary-wrapper/inherit-argv0.env
new file mode 100644
index 0000000000000..c46ca95eefbc7
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/inherit-argv0.env
@@ -0,0 +1,2 @@
+CWD=SUBST_CWD
+./wrapped
diff --git a/pkgs/test/make-binary-wrapper/invalid-env.c b/pkgs/test/make-binary-wrapper/invalid-env.c
new file mode 100644
index 0000000000000..4dfd36fb68a0b
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/invalid-env.c
@@ -0,0 +1,14 @@
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#define assert_success(e) do { if ((e) < 0) { perror(#e); abort(); } } while (0)
+
+int main(int argc, char **argv) {
+    putenv("==TEST1");
+    #error Illegal environment variable name `=` (cannot contain `=`)
+    assert_success(setenv("", "TEST2", 0));
+    #error Environment variable name can't be empty.
+    argv[0] = "/send/me/flags";
+    return execv("/send/me/flags", argv);
+}
diff --git a/pkgs/test/make-binary-wrapper/invalid-env.cmdline b/pkgs/test/make-binary-wrapper/invalid-env.cmdline
new file mode 100644
index 0000000000000..a03b001e754e3
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/invalid-env.cmdline
@@ -0,0 +1,2 @@
+    --set "=" "TEST1" \
+    --set-default "" "TEST2"
diff --git a/pkgs/test/make-binary-wrapper/prefix.c b/pkgs/test/make-binary-wrapper/prefix.c
new file mode 100644
index 0000000000000..ea8fbdc64a84e
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/prefix.c
@@ -0,0 +1,26 @@
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <unistd.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <stdio.h>
+
+#define assert_success(e) do { if ((e) < 0) { perror(#e); abort(); } } while (0)
+
+void set_env_prefix(char *env, char *sep, char *prefix) {
+    char *existing = getenv(env);
+    if (existing) {
+        char *val;
+        assert_success(asprintf(&val, "%s%s%s", prefix, sep, existing));
+        assert_success(setenv(env, val, 1));
+        free(val);
+    } else {
+        assert_success(setenv(env, prefix, 1));
+    }
+}
+
+int main(int argc, char **argv) {
+    set_env_prefix("PATH", ":", "/usr/bin/");
+    set_env_prefix("PATH", ":", "/usr/local/bin/");
+    argv[0] = "/send/me/flags";
+    return execv("/send/me/flags", argv);
+}
diff --git a/pkgs/test/make-binary-wrapper/prefix.cmdline b/pkgs/test/make-binary-wrapper/prefix.cmdline
new file mode 100644
index 0000000000000..99cebf9503f47
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/prefix.cmdline
@@ -0,0 +1,2 @@
+    --prefix PATH : /usr/bin/ \
+    --prefix PATH : /usr/local/bin/
diff --git a/pkgs/test/make-binary-wrapper/prefix.env b/pkgs/test/make-binary-wrapper/prefix.env
new file mode 100644
index 0000000000000..033676457c57c
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/prefix.env
@@ -0,0 +1,3 @@
+PATH=/usr/local/bin/:/usr/bin/
+CWD=SUBST_CWD
+SUBST_ARGV0
diff --git a/pkgs/test/make-binary-wrapper/suffix.c b/pkgs/test/make-binary-wrapper/suffix.c
new file mode 100644
index 0000000000000..d33f86c070ca5
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/suffix.c
@@ -0,0 +1,26 @@
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <unistd.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <stdio.h>
+
+#define assert_success(e) do { if ((e) < 0) { perror(#e); abort(); } } while (0)
+
+void set_env_suffix(char *env, char *sep, char *suffix) {
+    char *existing = getenv(env);
+    if (existing) {
+        char *val;
+        assert_success(asprintf(&val, "%s%s%s", existing, sep, suffix));
+        assert_success(setenv(env, val, 1));
+        free(val);
+    } else {
+        assert_success(setenv(env, suffix, 1));
+    }
+}
+
+int main(int argc, char **argv) {
+    set_env_suffix("PATH", ":", "/usr/bin/");
+    set_env_suffix("PATH", ":", "/usr/local/bin/");
+    argv[0] = "/send/me/flags";
+    return execv("/send/me/flags", argv);
+}
diff --git a/pkgs/test/make-binary-wrapper/suffix.cmdline b/pkgs/test/make-binary-wrapper/suffix.cmdline
new file mode 100644
index 0000000000000..95d291f3c169e
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/suffix.cmdline
@@ -0,0 +1,2 @@
+    --suffix PATH : /usr/bin/ \
+    --suffix PATH : /usr/local/bin/
diff --git a/pkgs/test/make-binary-wrapper/suffix.env b/pkgs/test/make-binary-wrapper/suffix.env
new file mode 100644
index 0000000000000..3ce4cc54de41b
--- /dev/null
+++ b/pkgs/test/make-binary-wrapper/suffix.env
@@ -0,0 +1,3 @@
+PATH=/usr/bin/:/usr/local/bin/
+CWD=SUBST_CWD
+SUBST_ARGV0
diff --git a/pkgs/tools/X11/alttab/default.nix b/pkgs/tools/X11/alttab/default.nix
index 591edff2add78..80b87cb2776d8 100644
--- a/pkgs/tools/X11/alttab/default.nix
+++ b/pkgs/tools/X11/alttab/default.nix
@@ -2,7 +2,7 @@
 libpng, uthash , which, xnee, xorg, python3Packages }:
 
 stdenv.mkDerivation rec {
-  version = "1.6.0";
+  version = "1.6.1";
 
   pname = "alttab";
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "sagb";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-G4tu008IC3RCeCRZVKFPY2+ioLuUa9hDDKUx1q5C5FQ=";
+    sha256 = "sha256-g56207IGNDnBIqZmbpcgOLcfAGKwBE0DYu2Dq0bLS8o=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/X11/dex/default.nix b/pkgs/tools/X11/dex/default.nix
index dd1953d783a01..c0d1c5e6e4a18 100644
--- a/pkgs/tools/X11/dex/default.nix
+++ b/pkgs/tools/X11/dex/default.nix
@@ -1,13 +1,12 @@
 { lib, stdenv, fetchFromGitHub, python3 }:
 
 stdenv.mkDerivation rec {
-  program = "dex";
-  name = "${program}-${version}";
+  pname = "dex";
   version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "jceb";
-    repo = program;
+    repo = pname;
     rev = "v${version}";
     sha256 = "03aapcywnz4kl548cygpi25m8adwbmqlmwgxa66v4156ax9dqs86";
   };
diff --git a/pkgs/tools/X11/nx-libs/default.nix b/pkgs/tools/X11/nx-libs/default.nix
index 022111e4b3141..ed28cfbb8d871 100644
--- a/pkgs/tools/X11/nx-libs/default.nix
+++ b/pkgs/tools/X11/nx-libs/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, autoconf, automake, fetchFromGitHub, libgcc, libjpeg_turbo
+{ lib, stdenv, autoconf, automake, fetchFromGitHub, fetchpatch
+, libgcc, libjpeg_turbo
 , libpng, libtool, libxml2, pkg-config, which, xorg
 , libtirpc
 }:
@@ -12,6 +13,14 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-qVOdD85sBMxKYx1cSLAGKeODsKKAm9UPBmYzPBbBOzQ=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "binutils-2.36.patch";
+      url = "https://github.com/ArcticaProject/nx-libs/commit/605a266911b50ababbb3f8a8b224efb42743379c.patch";
+      sha256 = "sha256-kk5ms3i0PrHL74I4OlsqDrdDcCJ0us03cQcBy4zjAoQ=";
+    })
+  ];
+
   nativeBuildInputs = [ autoconf automake libtool pkg-config which
     xorg.gccmakedep xorg.imake ];
   buildInputs = [ libgcc libjpeg_turbo libpng libxml2 xorg.fontutil
diff --git a/pkgs/tools/X11/opentabletdriver/default.nix b/pkgs/tools/X11/opentabletdriver/default.nix
index b205f959ee35a..ff2472294eed8 100644
--- a/pkgs/tools/X11/opentabletdriver/default.nix
+++ b/pkgs/tools/X11/opentabletdriver/default.nix
@@ -1,11 +1,8 @@
-{ stdenv
-, lib
+{ lib
+, buildDotnetModule
 , fetchFromGitHub
 , fetchurl
-, linkFarmFromDrvs
 , dotnetCorePackages
-, dotnetPackages
-, dpkg
 , gtk3
 , libX11
 , libXrandr
@@ -15,16 +12,12 @@
 , udev
 , copyDesktopItems
 , makeDesktopItem
-, makeWrapper
 , nixosTests
 , wrapGAppsHook
+, dpkg
 }:
 
-let
-  dotnet-sdk = dotnetCorePackages.sdk_5_0;
-  dotnet-runtime = dotnetCorePackages.runtime_5_0;
-in
-stdenv.mkDerivation rec {
+buildDotnetModule rec {
   pname = "OpenTabletDriver";
   version = "0.5.3.3";
 
@@ -40,23 +33,22 @@ stdenv.mkDerivation rec {
     sha256 = "0v03qiiz28k1yzgxf5qc1mdg2n7kjx6h8vpx9dxz342wwbgqg6ic";
   };
 
+  dotnet-sdk = dotnetCorePackages.sdk_5_0;
+  dotnet-runtime = dotnetCorePackages.runtime_5_0;
+
+  dotnetInstallFlags = [ "--framework=net5" ];
+
+  projectFile = [ "OpenTabletDriver.Console" "OpenTabletDriver.Daemon" "OpenTabletDriver.UX.Gtk" ];
+  nugetDeps = ./deps.nix;
+
+  executables = [ "OpenTabletDriver.Console" "OpenTabletDriver.Daemon" "OpenTabletDriver.UX.Gtk" ];
+
   nativeBuildInputs = [
-    dotnet-sdk
-    dotnetPackages.Nuget
-    dpkg
     copyDesktopItems
-    makeWrapper
     wrapGAppsHook
+    dpkg
   ];
 
-  nugetDeps = linkFarmFromDrvs "${pname}-nuget-deps" (import ./deps.nix {
-    fetchNuGet = { name, version, sha256 }: fetchurl {
-      name = "nuget-${name}-${version}.nupkg";
-      url = "https://www.nuget.org/api/v2/package/${name}/${version}";
-      inherit sha256;
-    };
-  });
-
   runtimeDeps = [
     gtk3
     libX11
@@ -67,80 +59,27 @@ stdenv.mkDerivation rec {
     udev
   ];
 
-  configurePhase = ''
-    runHook preConfigure
-
-    export HOME=$(mktemp -d)
-    export DOTNET_CLI_TELEMETRY_OPTOUT=1
-    export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+  doCheck = true;
+  testProjectFile = "OpenTabletDriver.Tests/OpenTabletDriver.Tests.csproj";
 
-    nuget sources Add -Name nixos -Source "$PWD/nixos"
-    nuget init "$nugetDeps" "$PWD/nixos"
-
-    # FIXME: https://github.com/NuGet/Home/issues/4413
-    mkdir -p $HOME/.nuget/NuGet
-    cp $HOME/.config/NuGet/NuGet.Config $HOME/.nuget/NuGet
-
-    for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do
-        dotnet restore --source "$PWD/nixos" $project
-    done
-
-    runHook postConfigure
-  '';
-
-  buildPhase = ''
-    runHook preBuild
-
-    for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do
-        dotnet build $project \
-            --no-restore \
-            --configuration Release \
-            --framework net5
-    done
-
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do
-      dotnet publish $project \
-          --no-build \
-          --no-self-contained \
-          --configuration Release \
-          --framework net5 \
-          --output $out/lib
-    done
+  # Require networking
+  disabledTests = [
+    "OpenTabletDriver.Tests.PluginRepositoryTest.ExpandRepositoryTarballFork"
+    "OpenTabletDriver.Tests.PluginRepositoryTest.ExpandRepositoryTarball"
+  ];
 
+  postInstall = ''
     # Give a more "*nix" name to the binaries
-    makeWrapper $out/lib/OpenTabletDriver.Console $out/bin/otd \
-        "''${gappsWrapperArgs[@]}" \
-        --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
-        --set DOTNET_ROOT "${dotnet-runtime}" \
-        --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}"
-
-    makeWrapper $out/lib/OpenTabletDriver.Daemon $out/bin/otd-daemon \
-        "''${gappsWrapperArgs[@]}" \
-        --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
-        --set DOTNET_ROOT "${dotnet-runtime}" \
-        --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}"
-
-    makeWrapper $out/lib/OpenTabletDriver.UX.Gtk $out/bin/otd-gui \
-        "''${gappsWrapperArgs[@]}" \
-        --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \
-        --set DOTNET_ROOT "${dotnet-runtime}" \
-        --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}"
-
-    mkdir -p $out/lib/OpenTabletDriver
-    cp -rv ./OpenTabletDriver/Configurations $out/lib/OpenTabletDriver
+    mv $out/bin/OpenTabletDriver.Console $out/bin/otd
+    mv $out/bin/OpenTabletDriver.Daemon $out/bin/otd-daemon
+    mv $out/bin/OpenTabletDriver.UX.Gtk $out/bin/otd-gui
+
+    cp -r ./OpenTabletDriver/Configurations $out/lib/${pname}
     install -Dm644 $src/OpenTabletDriver.UX/Assets/otd.png -t $out/share/pixmaps
 
     # TODO: Ideally this should be build from OpenTabletDriver/OpenTabletDriver-udev instead
     dpkg-deb --fsys-tarfile ${debPkg} | tar xf - ./usr/lib/udev/rules.d/99-opentabletdriver.rules
     install -Dm644 ./usr/lib/udev/rules.d/99-opentabletdriver.rules -t $out/lib/udev/rules.d
-
-    runHook postInstall
   '';
 
   desktopItems = [
@@ -155,9 +94,6 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  dontWrapGApps = true;
-  dontStrip = true;
-
   passthru = {
     updateScript = ./update.sh;
     tests = {
diff --git a/pkgs/tools/X11/opentabletdriver/deps.nix b/pkgs/tools/X11/opentabletdriver/deps.nix
index 33891b633829f..f1fc303d8cfc6 100644
--- a/pkgs/tools/X11/opentabletdriver/deps.nix
+++ b/pkgs/tools/X11/opentabletdriver/deps.nix
@@ -1,94 +1,176 @@
 { fetchNuGet }: [
-  (fetchNuGet { name = "AtkSharp"; version = "3.24.24.34"; sha256 = "1jn1vgi9xm0jp7769k6sbdi8d273kigjrsh93i6s4c03hqxv7cqs"; })
-  (fetchNuGet { name = "CairoSharp"; version = "3.24.24.34"; sha256 = "0pydn1k0cam1gclg9sc1sbnmbyzh28qlc5qanyxcylwghink3kgz"; })
-  (fetchNuGet { name = "Eto.Forms"; version = "2.5.10"; sha256 = "1d71wglk4ixfqfbm6sxmj753x5iwbar8i9zzjy3bh64fy1dn8lz7"; })
-  (fetchNuGet { name = "Eto.Forms"; version = "2.5.11"; sha256 = "0h86jc19wy3ssj7pb34w1h02v92mg29gdipszwjs3y15piy66z3s"; })
-  (fetchNuGet { name = "Eto.Platform.Gtk"; version = "2.5.11"; sha256 = "1s9njz7l9zghrbzli7lbiav5ss3glqf17npj07f3jldd933nb95j"; })
-  (fetchNuGet { name = "GdkSharp"; version = "3.24.24.34"; sha256 = "0r0x0yib7chwsyrbpvicrfwldwqx5lyqq4p86zaxpmzd6zdaj0x5"; })
-  (fetchNuGet { name = "GioSharp"; version = "3.24.24.34"; sha256 = "02hxvgjd4w9jpzbkk7qf9q9bkvyp5hfzwxfqp10vg5lpl9yl3xpx"; })
-  (fetchNuGet { name = "GLibSharp"; version = "3.24.24.34"; sha256 = "0kvp033fgdwc8p2abfp5z9pzq66cvwbnjfvr4v4bkpy5s5h181kq"; })
-  (fetchNuGet { name = "GtkSharp"; version = "3.24.24.34"; sha256 = "0028hzmmqyfx87qqmaf9cgb5psn7gkbmqvixcid67x1d6mzxjicb"; })
-  (fetchNuGet { name = "HidSharpCore"; version = "1.2.1.1"; sha256 = "1zkndglmz0s8rblfhnqcvv90rkq2i7lf4bc380g7z8h1avf2ikll"; })
-  (fetchNuGet { name = "MessagePack"; version = "2.1.194"; sha256 = "1v2gyd9sd6hppfhlzngmzzhnpr39b95rwrqq0r9zzp480b6vzaj0"; })
-  (fetchNuGet { name = "MessagePack.Annotations"; version = "2.1.194"; sha256 = "1jkhq3hiy4brvzsywl4p4jb9jrnzs3vmgr3s8fxpb1dzafadw8b0"; })
-  (fetchNuGet { name = "Microsoft.Bcl.AsyncInterfaces"; version = "1.1.1"; sha256 = "0a1ahssqds2ympr7s4xcxv5y8jgxs7ahd6ah6fbgglj4rki1f1vw"; })
-  (fetchNuGet { name = "Microsoft.CSharp"; version = "4.4.1"; sha256 = "0z6d1i6xcf0c00z6rs75rgw4ncs9q2m8amasf6mmbf40fm02ry7g"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.1.1"; sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "3.0.0"; sha256 = "1bk8r4r3ihmi6322jmcag14jmw11mjqys202azqjzglcx59pxh51"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
-  (fetchNuGet { name = "Microsoft.VisualStudio.Threading"; version = "16.7.56"; sha256 = "13x0xrsjxd86clf9cjjwmpzlyp8pkrf13riya7igs8zy93zw2qap"; })
-  (fetchNuGet { name = "Microsoft.VisualStudio.Threading.Analyzers"; version = "16.7.56"; sha256 = "04v9df0k7bsc0rzgkw4mnvi43pdrh42vk6xdcwn9m6im33m0nnz2"; })
-  (fetchNuGet { name = "Microsoft.VisualStudio.Validation"; version = "15.5.31"; sha256 = "1ah99rn922qa0sd2k3h64m324f2r32pw8cn4cfihgvwx4qdrpmgw"; })
-  (fetchNuGet { name = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
-  (fetchNuGet { name = "Microsoft.Win32.Registry"; version = "4.6.0"; sha256 = "0i4y782yrqqyx85pg597m20gm0v126w0j9ddk5z7xb3crx4z9f2s"; })
-  (fetchNuGet { name = "Nerdbank.Streams"; version = "2.6.77"; sha256 = "13dnfwxa8syx7vfjmd5pcrqz31k0q8y3mmh6yz6bmljhjri65q5c"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; })
-  (fetchNuGet { name = "Octokit"; version = "0.50.0"; sha256 = "1ignj5i6a1c19qqrw00wlr9fdjmwrxkxz7gdxj0x653w84gbv7qq"; })
-  (fetchNuGet { name = "PangoSharp"; version = "3.24.24.34"; sha256 = "1r0h14cklglfpv1lhv93cxmzi2w7d5s03gzpq3j5dmrz43flg9zw"; })
-  (fetchNuGet { name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i"; })
-  (fetchNuGet { name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1n06gxwlinhs0w7s8a94r1q3lwqzvynxwd3mp10ws9bg6gck8n4r"; })
-  (fetchNuGet { name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0404wqrc7f2yc0wxv71y3nnybvqx8v4j9d47hlscxy759a525mc3"; })
-  (fetchNuGet { name = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
-  (fetchNuGet { name = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
-  (fetchNuGet { name = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
-  (fetchNuGet { name = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0zy5r25jppz48i2bkg8b9lfig24xixg6nm3xyr1379zdnqnpm8f6"; })
-  (fetchNuGet { name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "096ch4n4s8k82xga80lfmpimpzahd2ip1mgwdqgar0ywbbl6x438"; })
-  (fetchNuGet { name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1dm8fifl7rf1gy7lnwln78ch4rw54g0pl5g1c189vawavll7p6rj"; })
-  (fetchNuGet { name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
-  (fetchNuGet { name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1m9z1k9kzva9n9kwinqxl97x2vgl79qhqjlv17k9s2ymcyv2bwr6"; })
-  (fetchNuGet { name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1cpx56mcfxz7cpn57wvj18sjisvzq8b5vd9rw16ihd2i6mcp3wa1"; })
-  (fetchNuGet { name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "15gsm1a8jdmgmf8j5v1slfz8ks124nfdhk2vxs2rw3asrxalg8hi"; })
-  (fetchNuGet { name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0q0n5q1r1wnqmr5i5idsrd9ywl33k0js4pngkwq9p368mbxp8x1w"; })
-  (fetchNuGet { name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c"; })
-  (fetchNuGet { name = "SharpZipLib"; version = "1.3.1"; sha256 = "09zypjfils38143da507s5fi4hzvdlz32wfav219hksnpl35y8x0"; })
-  (fetchNuGet { name = "StreamJsonRpc"; version = "2.6.121"; sha256 = "0xzvpk17w2skndzdg47j7gkrrvw6521db4mv8lc3v8hm97vs9m76"; })
-  (fetchNuGet { name = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
-  (fetchNuGet { name = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
-  (fetchNuGet { name = "System.Collections.Immutable"; version = "1.7.1"; sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq"; })
-  (fetchNuGet { name = "System.CommandLine"; version = "2.0.0-beta1.20253.1"; sha256 = "16saf1fm9q80bb624fkqz0ksrwpnbw9617d7xg3jib7a2wgagm2r"; })
-  (fetchNuGet { name = "System.ComponentModel.Annotations"; version = "4.7.0"; sha256 = "06x1m46ddxj0ng28d7gry9gjkqdg2kp89jyf480g5gznyybbs49z"; })
-  (fetchNuGet { name = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
-  (fetchNuGet { name = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
-  (fetchNuGet { name = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
-  (fetchNuGet { name = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
-  (fetchNuGet { name = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
-  (fetchNuGet { name = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
-  (fetchNuGet { name = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
-  (fetchNuGet { name = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
-  (fetchNuGet { name = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
-  (fetchNuGet { name = "System.IO.Pipelines"; version = "4.7.2"; sha256 = "16v4qaypm72cfsfqr8z3k6yrpzn0m3apgkh6aljfwpycdk150sf9"; })
-  (fetchNuGet { name = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
-  (fetchNuGet { name = "System.Net.Http"; version = "4.3.4"; sha256 = "0kdp31b8819v88l719j6my0yas6myv9d1viql3qz5577mv819jhl"; })
-  (fetchNuGet { name = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
-  (fetchNuGet { name = "System.Net.WebSockets"; version = "4.3.0"; sha256 = "1gfj800078kggcgl0xyl00a6y5k4wwh2k2qm69rjy22wbmq7fy4p"; })
-  (fetchNuGet { name = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
-  (fetchNuGet { name = "System.Reflection.Emit"; version = "4.7.0"; sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; })
-  (fetchNuGet { name = "System.Reflection.Emit.Lightweight"; version = "4.6.0"; sha256 = "0hry2k6b7kicg4zxnq0hhn0ys52711pxy7l9v5sp7gvp9cicwpgp"; })
-  (fetchNuGet { name = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
-  (fetchNuGet { name = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
-  (fetchNuGet { name = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; })
-  (fetchNuGet { name = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
-  (fetchNuGet { name = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
-  (fetchNuGet { name = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
-  (fetchNuGet { name = "System.Security.AccessControl"; version = "4.6.0"; sha256 = "1wl1dyghi0qhpap1vgfhg2ybdyyhy9vc2a7dpm1xb30vfgmlkjmf"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
-  (fetchNuGet { name = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
-  (fetchNuGet { name = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
-  (fetchNuGet { name = "System.Security.Principal.Windows"; version = "4.6.0"; sha256 = "1jmfzfz1n8hp63s5lja5xxpzkinbp6g59l3km9h8avjiisdrg5wm"; })
-  (fetchNuGet { name = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
-  (fetchNuGet { name = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
-  (fetchNuGet { name = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Dataflow"; version = "4.11.1"; sha256 = "09fbfsiay1xcbpvnq2j38b6mb2scvf0s8mpn78bcqsldidg7k2vw"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
-  (fetchNuGet { name = "WaylandNET"; version = "0.2.0"; sha256 = "1qjpvra08vdqdw4j1gamz6451x5sd5r1j86lsvrl8akq4nymfr8k"; })
+  (fetchNuGet { pname = "AtkSharp"; version = "3.24.24.34"; sha256 = "1jn1vgi9xm0jp7769k6sbdi8d273kigjrsh93i6s4c03hqxv7cqs"; })
+  (fetchNuGet { pname = "CairoSharp"; version = "3.24.24.34"; sha256 = "0pydn1k0cam1gclg9sc1sbnmbyzh28qlc5qanyxcylwghink3kgz"; })
+  (fetchNuGet { pname = "coverlet.collector"; version = "3.0.3"; sha256 = "1igcqqr2kh6w9qx0h89y6c2zg4g2h7g8kc2lv5pz3xk6nd8iv7pw"; })
+  (fetchNuGet { pname = "Eto.Forms"; version = "2.5.10"; sha256 = "1d71wglk4ixfqfbm6sxmj753x5iwbar8i9zzjy3bh64fy1dn8lz7"; })
+  (fetchNuGet { pname = "Eto.Forms"; version = "2.5.11"; sha256 = "0h86jc19wy3ssj7pb34w1h02v92mg29gdipszwjs3y15piy66z3s"; })
+  (fetchNuGet { pname = "Eto.Platform.Gtk"; version = "2.5.11"; sha256 = "1s9njz7l9zghrbzli7lbiav5ss3glqf17npj07f3jldd933nb95j"; })
+  (fetchNuGet { pname = "GdkSharp"; version = "3.24.24.34"; sha256 = "0r0x0yib7chwsyrbpvicrfwldwqx5lyqq4p86zaxpmzd6zdaj0x5"; })
+  (fetchNuGet { pname = "GioSharp"; version = "3.24.24.34"; sha256 = "02hxvgjd4w9jpzbkk7qf9q9bkvyp5hfzwxfqp10vg5lpl9yl3xpx"; })
+  (fetchNuGet { pname = "GLibSharp"; version = "3.24.24.34"; sha256 = "0kvp033fgdwc8p2abfp5z9pzq66cvwbnjfvr4v4bkpy5s5h181kq"; })
+  (fetchNuGet { pname = "GtkSharp"; version = "3.24.24.34"; sha256 = "0028hzmmqyfx87qqmaf9cgb5psn7gkbmqvixcid67x1d6mzxjicb"; })
+  (fetchNuGet { pname = "HidSharpCore"; version = "1.2.1.1"; sha256 = "1zkndglmz0s8rblfhnqcvv90rkq2i7lf4bc380g7z8h1avf2ikll"; })
+  (fetchNuGet { pname = "MessagePack"; version = "2.1.194"; sha256 = "1v2gyd9sd6hppfhlzngmzzhnpr39b95rwrqq0r9zzp480b6vzaj0"; })
+  (fetchNuGet { pname = "MessagePack.Annotations"; version = "2.1.194"; sha256 = "1jkhq3hiy4brvzsywl4p4jb9jrnzs3vmgr3s8fxpb1dzafadw8b0"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.1.1"; sha256 = "0a1ahssqds2ympr7s4xcxv5y8jgxs7ahd6ah6fbgglj4rki1f1vw"; })
+  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "16.9.1"; sha256 = "18isx8w4kwnlk6hq5ay8i4lgzwhx0zg9brayfdk2lakagvv6yyaf"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.4.1"; sha256 = "0z6d1i6xcf0c00z6rs75rgw4ncs9q2m8amasf6mmbf40fm02ry7g"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.1"; sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "3.0.0"; sha256 = "1bk8r4r3ihmi6322jmcag14jmw11mjqys202azqjzglcx59pxh51"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
+  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "16.9.1"; sha256 = "1761mvkp5mwhw150fvazdhh4ybvxpvx05g9znf8n1fqx832wxrw5"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "16.9.1"; sha256 = "1igpx7ldxqx9fkrbhakd2bybc0dgpvj86zr30vpfj31ncm6lp4id"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "16.9.1"; sha256 = "1frx5r7l0jd3j6my4s2qas13fkljgfn87a84xk8l7sisafpfsvzp"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Threading"; version = "16.7.56"; sha256 = "13x0xrsjxd86clf9cjjwmpzlyp8pkrf13riya7igs8zy93zw2qap"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Threading.Analyzers"; version = "16.7.56"; sha256 = "04v9df0k7bsc0rzgkw4mnvi43pdrh42vk6xdcwn9m6im33m0nnz2"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Validation"; version = "15.5.31"; sha256 = "1ah99rn922qa0sd2k3h64m324f2r32pw8cn4cfihgvwx4qdrpmgw"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.6.0"; sha256 = "0i4y782yrqqyx85pg597m20gm0v126w0j9ddk5z7xb3crx4z9f2s"; })
+  (fetchNuGet { pname = "MSTest.TestAdapter"; version = "2.1.2"; sha256 = "1390nyc0sf5c4j75cq58bzqjcw77sp2lmpllmm5sp8ysi0fjyfs5"; })
+  (fetchNuGet { pname = "MSTest.TestFramework"; version = "2.1.2"; sha256 = "1617q2accpa8fwy9n1snmjxyx2fz3phks62mdi45cl65kdin0x4z"; })
+  (fetchNuGet { pname = "Nerdbank.Streams"; version = "2.6.77"; sha256 = "13dnfwxa8syx7vfjmd5pcrqz31k0q8y3mmh6yz6bmljhjri65q5c"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.2"; sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
+  (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
+  (fetchNuGet { pname = "Octokit"; version = "0.50.0"; sha256 = "1ignj5i6a1c19qqrw00wlr9fdjmwrxkxz7gdxj0x653w84gbv7qq"; })
+  (fetchNuGet { pname = "PangoSharp"; version = "3.24.24.34"; sha256 = "1r0h14cklglfpv1lhv93cxmzi2w7d5s03gzpq3j5dmrz43flg9zw"; })
+  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
+  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i"; })
+  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
+  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1n06gxwlinhs0w7s8a94r1q3lwqzvynxwd3mp10ws9bg6gck8n4r"; })
+  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
+  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0404wqrc7f2yc0wxv71y3nnybvqx8v4j9d47hlscxy759a525mc3"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
+  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
+  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0zy5r25jppz48i2bkg8b9lfig24xixg6nm3xyr1379zdnqnpm8f6"; })
+  (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
+  (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "096ch4n4s8k82xga80lfmpimpzahd2ip1mgwdqgar0ywbbl6x438"; })
+  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
+  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1dm8fifl7rf1gy7lnwln78ch4rw54g0pl5g1c189vawavll7p6rj"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1m9z1k9kzva9n9kwinqxl97x2vgl79qhqjlv17k9s2ymcyv2bwr6"; })
+  (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
+  (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1cpx56mcfxz7cpn57wvj18sjisvzq8b5vd9rw16ihd2i6mcp3wa1"; })
+  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
+  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "15gsm1a8jdmgmf8j5v1slfz8ks124nfdhk2vxs2rw3asrxalg8hi"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "0q0n5q1r1wnqmr5i5idsrd9ywl33k0js4pngkwq9p368mbxp8x1w"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.2"; sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c"; })
+  (fetchNuGet { pname = "SharpZipLib"; version = "1.3.1"; sha256 = "09zypjfils38143da507s5fi4hzvdlz32wfav219hksnpl35y8x0"; })
+  (fetchNuGet { pname = "StreamJsonRpc"; version = "2.6.121"; sha256 = "0xzvpk17w2skndzdg47j7gkrrvw6521db4mv8lc3v8hm97vs9m76"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.7.1"; sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq"; })
+  (fetchNuGet { pname = "System.CommandLine"; version = "2.0.0-beta1.20253.1"; sha256 = "16saf1fm9q80bb624fkqz0ksrwpnbw9617d7xg3jib7a2wgagm2r"; })
+  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.7.0"; sha256 = "06x1m46ddxj0ng28d7gry9gjkqdg2kp89jyf480g5gznyybbs49z"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
+  (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.TextWriterTraceListener"; version = "4.3.0"; sha256 = "09db74f36wkwg30f7v7zhz1yhkyrnl5v6bdwljq1jdfgzcfch7c3"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
+  (fetchNuGet { pname = "System.Diagnostics.TraceSource"; version = "4.3.0"; sha256 = "1kyw4d7dpjczhw6634nrmg7yyyzq72k75x38y0l0nwhigdlp1766"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
+  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
+  (fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
+  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
+  (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.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
+  (fetchNuGet { pname = "System.IO.Pipelines"; version = "4.7.2"; sha256 = "16v4qaypm72cfsfqr8z3k6yrpzn0m3apgkh6aljfwpycdk150sf9"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
+  (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.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
+  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
+  (fetchNuGet { pname = "System.Net.WebSockets"; version = "4.3.0"; sha256 = "1gfj800078kggcgl0xyl00a6y5k4wwh2k2qm69rjy22wbmq7fy4p"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.7.0"; sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.6.0"; sha256 = "0hry2k6b7kicg4zxnq0hhn0ys52711pxy7l9v5sp7gvp9cicwpgp"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.7.1"; sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
+  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
+  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "4.6.0"; sha256 = "1wl1dyghi0qhpap1vgfhg2ybdyyhy9vc2a7dpm1xb30vfgmlkjmf"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.6.0"; sha256 = "1jmfzfz1n8hp63s5lja5xxpzkinbp6g59l3km9h8avjiisdrg5wm"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Dataflow"; version = "4.11.1"; sha256 = "09fbfsiay1xcbpvnq2j38b6mb2scvf0s8mpn78bcqsldidg7k2vw"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
+  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
+  (fetchNuGet { pname = "WaylandNET"; version = "0.2.0"; sha256 = "1qjpvra08vdqdw4j1gamz6451x5sd5r1j86lsvrl8akq4nymfr8k"; })
 ]
diff --git a/pkgs/tools/X11/opentabletdriver/shell.nix b/pkgs/tools/X11/opentabletdriver/shell.nix
deleted file mode 100644
index bb60dfd503973..0000000000000
--- a/pkgs/tools/X11/opentabletdriver/shell.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ pkgs ? import ../../../../. { } }:
-
-with pkgs;
-
-mkShell {
-  packages = [
-    common-updater-scripts
-    nuget-to-nix
-    curl
-    dotnetCorePackages.sdk_5_0
-    jq
-  ];
-}
diff --git a/pkgs/tools/X11/opentabletdriver/update.sh b/pkgs/tools/X11/opentabletdriver/update.sh
index b73a5a4b7ca96..20820eb69d2ee 100755
--- a/pkgs/tools/X11/opentabletdriver/update.sh
+++ b/pkgs/tools/X11/opentabletdriver/update.sh
@@ -1,16 +1,15 @@
 #!/usr/bin/env nix-shell
-#!nix-shell shell.nix -i bash
-
+#!nix-shell -i bash -p curl gnused jq common-updater-scripts nuget-to-nix dotnet-sdk_5
 set -eo pipefail
-
 cd "$(dirname "${BASH_SOURCE[0]}")"
 
 deps_file="$(realpath "./deps.nix")"
 
-new_version="$(curl -s "https://api.github.com/repos/OpenTabletDriver/OpenTabletDriver/releases" | jq -r '.[0].tag_name' | sed 's|[^0-9.]||g')"
+new_version="$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} -s "https://api.github.com/repos/OpenTabletDriver/OpenTabletDriver/releases" | jq -r  'map(select(.prerelease == false)) | .[0].tag_name' | cut -c2-)"
 old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
+
 if [[ "$new_version" == "$old_version" ]]; then
-  echo "Up to date"
+  echo "Already up to date!"
   [[ "${1}" != "--force" ]] && exit 0
 fi
 
@@ -22,37 +21,22 @@ newDebSha256=$(nix-prefetch-url "$newDebPkgUrl")
 echo "oldDebSha256: $oldDebSha256 newDebSha256: $newDebSha256"
 sed -i ./default.nix -re "s|\"$oldDebSha256\"|\"$newDebSha256\"|"
 
-cd ../../../..
+pushd ../../../..
 update-source-version opentabletdriver "$new_version"
-store_src="$(nix-build . -A opentabletdriver.src --no-out-link)"
+store_src="$(nix-build -A opentabletdriver.src --no-out-link)"
 src="$(mktemp -d /tmp/opentabletdriver-src.XXX)"
-echo "Temp src dir: $src"
 cp -rT "$store_src" "$src"
 chmod -R +w "$src"
 
 pushd "$src"
+trap "rm -rf $src" EXIT
 
-# Setup empty nuget package folder to force reinstall.
-mkdir ./nuget_tmp.packages
-cat >./nuget_tmp.config <<EOF
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
-  <packageSources>
-    <add key="nuget" value="https://api.nuget.org/v3/index.json" />
-  </packageSources>
-  <config>
-    <add key="globalPackagesFolder" value="$(realpath ./nuget_tmp.packages)" />
-  </config>
-</configuration>
-EOF
-
+export DOTNET_NOLOGO=1
 export DOTNET_CLI_TELEMETRY_OPTOUT=1
 
-for project in OpenTabletDriver.{Console,Daemon,UX.Gtk}; do
-    dotnet restore $project --configfile ./nuget_tmp.config
+mkdir ./nuget_pkgs
+for project in OpenTabletDriver.{Console,Daemon,UX.Gtk,Tests}; do
+  dotnet restore $project --packages ./nuget_pkgs
 done
 
-nuget-to-nix ./nuget_tmp.packages > "$deps_file"
-
-popd
-rm -r "$src"
+nuget-to-nix ./nuget_pkgs > "$deps_file"
diff --git a/pkgs/tools/X11/sct/default.nix b/pkgs/tools/X11/sct/default.nix
index 0d74206155ab6..5b361e924eb77 100644
--- a/pkgs/tools/X11/sct/default.nix
+++ b/pkgs/tools/X11/sct/default.nix
@@ -1,7 +1,8 @@
 { lib, stdenv, fetchurl, libX11, libXrandr }:
 
 stdenv.mkDerivation rec {
-  name = "sct";
+  pname = "sct";
+  version = "unstable-2015-11-16";
 
   src = fetchurl {
     url = "http://www.tedunangst.com/flak/files/sct.c";
diff --git a/pkgs/tools/X11/virtualgl/default.nix b/pkgs/tools/X11/virtualgl/default.nix
index fe5ac9410a67a..05c0f1c69b407 100644
--- a/pkgs/tools/X11/virtualgl/default.nix
+++ b/pkgs/tools/X11/virtualgl/default.nix
@@ -4,7 +4,8 @@
 }:
 
 stdenv.mkDerivation {
-  name = "virtualgl-${lib.getVersion virtualglLib}";
+  pname = "virtualgl";
+  version = lib.getVersion virtualglLib;
 
   paths = [ virtualglLib ];
 
diff --git a/pkgs/tools/X11/xgeometry-select/default.nix b/pkgs/tools/X11/xgeometry-select/default.nix
index 87c643af483de..9f9b50feab909 100644
--- a/pkgs/tools/X11/xgeometry-select/default.nix
+++ b/pkgs/tools/X11/xgeometry-select/default.nix
@@ -1,8 +1,7 @@
 { lib, stdenv, fetchurl, libX11 }:
 
 stdenv.mkDerivation rec {
-  name     = "${baseName}-${version}";
-  baseName = "xgeometry-select";
+  pname = "xgeometry-select";
   version  = "0.1";
 
   src = fetchurl {
@@ -15,12 +14,12 @@ stdenv.mkDerivation rec {
   buildInputs = [ libX11 ];
 
   buildPhase = ''
-    gcc -Wall -lX11 ${src} -o ${baseName}
+    gcc -Wall -lX11 ${src} -o xgeometry-select
   '';
 
   installPhase = ''
     mkdir -p $out/bin
-    mv -v ${baseName} $out/bin
+    mv -v xgeometry-select $out/bin
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/X11/xob/default.nix b/pkgs/tools/X11/xob/default.nix
index 754904449efa1..71e50248df979 100644
--- a/pkgs/tools/X11/xob/default.nix
+++ b/pkgs/tools/X11/xob/default.nix
@@ -2,17 +2,17 @@
 
 stdenv.mkDerivation rec {
   pname = "xob";
-  version = "0.2";
+  version = "0.3";
 
   src = fetchFromGitHub {
     owner = "florentc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0jbj61adwrpscfaadjman4hbyxhxv3ac8b4d88d623samx6kbvkk";
+    sha256 = "1x4aafiyd9k4y8cmvn7rgfif3g5s5hhlbj5nz71qsyqg21nn7hrw";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ xorg.libX11 libconfig ];
+  buildInputs = [ xorg.libX11 xorg.libXrender libconfig ];
 
   makeFlags = [ "prefix=$(out)" ];
 
@@ -20,16 +20,16 @@ stdenv.mkDerivation rec {
     description = "A lightweight overlay bar for the X Window System";
     longDescription = ''
       A lightweight configurable overlay volume/backlight/progress/anything bar
-      for the X Window System. Each time a new value is read on the standard
-      input, it is displayed as a tv-like bar over other windows. It then
-      vanishes after a configurable amount of time. A value followed by a bang
-      '!' is displayed using an alternate color to account for special states
-      (e.g. muted audio). There is also support for overflows (when the value
-      exceeds the maximum).
+      for the X Window System (and Wayland compositors with XWayland). Each
+      time a new value is read on the standard input, it is displayed as a
+      tv-like bar over other windows. It then vanishes after a configurable
+      amount of time. A value followed by a bang '!' is displayed using an
+      alternate color to account for special states (e.g. muted audio). There
+      is also support for overflows (when the value exceeds the maximum).
     '';
     inherit (src.meta) homepage;
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ florentc ];
   };
 }
diff --git a/pkgs/tools/admin/aliyun-cli/default.nix b/pkgs/tools/admin/aliyun-cli/default.nix
index 3ff8ae3caa23d..a42ba2e73bb31 100644
--- a/pkgs/tools/admin/aliyun-cli/default.nix
+++ b/pkgs/tools/admin/aliyun-cli/default.nix
@@ -2,28 +2,30 @@
 
 buildGoModule rec {
   pname = "aliyun-cli";
-  version = "3.0.94";
+  version = "3.0.102";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "aliyun";
     repo = pname;
     fetchSubmodules = true;
-    sha256 = "sha256:1l9rzdp9kxxicvp45pa7288zxa07xp7w6aj7d9k9xlzv8l96k6j3";
+    sha256 = "sha256-DUNWfwLA7if9NVUaUlwfW0i2CVcZyg2gIKmi1Nu485k=";
   };
-  vendorSha256 = "sha256:0dklq78bqfidcda8pwd6qwaycah3gndmq9s90h1pqx1isw4frckk";
 
-  subPackages = ["aliyun-openapi-meta" "main"];
+  vendorSha256 = "sha256-c7LsCNcxdHwDBEknXJt9AyrmFcem8YtUYy06vNDBdDY=";
 
-  ldFlags = "-X 'github.com/aliyun/${pname}/cli.Version=${version}'";
+  subPackages = [ "main" ];
+
+  ldFlags = [ "-s" "-w" "-X github.com/aliyun/aliyun-cli/cli.Version=${version}" ];
 
   postInstall = ''
     mv $out/bin/main $out/bin/aliyun
   '';
 
   meta = with lib; {
-    description = "Tool to manage and use Alibaba Cloud resources through a command line interface.";
+    description = "Tool to manage and use Alibaba Cloud resources through a command line interface";
     homepage = "https://github.com/aliyun/aliyun-cli";
+    changelog = "https://github.com/aliyun/aliyun-cli/raw/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ ornxka ];
   };
diff --git a/pkgs/tools/admin/awscli/default.nix b/pkgs/tools/admin/awscli/default.nix
index 0b9d6b4738316..754b2e8cea6ab 100644
--- a/pkgs/tools/admin/awscli/default.nix
+++ b/pkgs/tools/admin/awscli/default.nix
@@ -20,17 +20,18 @@ let
 in
 with py.pkgs; buildPythonApplication rec {
   pname = "awscli";
-  version = "1.20.54"; # N.B: if you change this, change botocore and boto3 to a matching version too
+  version = "1.22.14"; # N.B: if you change this, change botocore and boto3 to a matching version too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-stnuPobBKIpKA4iTKGTO5kmMEl7grFdZNryz40S599M=";
+    sha256 = "sha256-FTGtUqdjZel8XqSrO3s3XQNqR6fyTO3mc1gyIQfk9n8=";
   };
 
   # https://github.com/aws/aws-cli/issues/4837
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "docutils>=0.10,<0.16" "docutils>=0.10"
+      --replace "docutils>=0.10,<0.16" "docutils>=0.10" \
+      --replace "rsa>=3.1.2,<4.8" "rsa<5,>=3.1.2"
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/tools/admin/azure-cli/default.nix b/pkgs/tools/admin/azure-cli/default.nix
index 71d546961fc22..728fcf6eec5b4 100644
--- a/pkgs/tools/admin/azure-cli/default.nix
+++ b/pkgs/tools/admin/azure-cli/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, python3, fetchFromGitHub, installShellFiles }:
 
 let
-  version = "2.29.1";
+  version = "2.30.0";
   srcName = "azure-cli-${version}-src";
 
   src = fetchFromGitHub {
@@ -9,13 +9,12 @@ let
     owner = "Azure";
     repo = "azure-cli";
     rev = "azure-cli-${version}";
-    sha256 = "sha256-9H38dZZz2rGSuWS1T398p+9T+G+Rt5gi3Ip2xIauEWo=";
+    sha256 = "sha256-b4hNacraNomhiFGEiHcMweqbEq3vTHus+xbFPv5X5HQ=";
   };
 
   # put packages that needs to be overriden in the py package scope
   py = import ./python-packages.nix {
-    inherit stdenv lib src version;
-    python = python3;
+    inherit stdenv lib src version python3;
   };
 in
 py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
@@ -117,6 +116,7 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     azure-mgmt-servicebus
     azure-mgmt-servicefabric
     azure-mgmt-servicefabricmanagedclusters
+    azure-mgmt-servicelinker
     azure-mgmt-signalr
     azure-mgmt-sql
     azure-mgmt-sqlvirtualmachine
diff --git a/pkgs/tools/admin/azure-cli/python-packages.nix b/pkgs/tools/admin/azure-cli/python-packages.nix
index 8b93e0825f86b..ab8528595a09d 100644
--- a/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -1,24 +1,7 @@
-{ stdenv, python, lib, src, version }:
+{ stdenv, python3, lib, src, version }:
 
 let
-  buildAzureCliPackage = with py.pkgs; attrs: buildPythonPackage (attrs // {
-    # Remove overly restrictive version contraints and obsolete namespace setup
-    prePatch = (attrs.prePatch or "") + ''
-      rm -f azure_bdist_wheel.py tox.ini
-      substituteInPlace setup.py \
-        --replace "cryptography>=3.2,<3.4" "cryptography"
-      sed -i "/azure-namespace-package/c\ " setup.cfg
-    '';
-
-    # Prevent these __init__'s from violating PEP420, only needed for python2
-    pythonNamespaces = [ "azure.cli" ];
-
-    checkInputs = [ mock pytest ] ++ (attrs.checkInputs or []);
-    checkPhase = attrs.checkPhase or ''
-      cd azure
-      HOME=$TMPDIR pytest
-    '';
-  });
+  buildAzureCliPackage = with py.pkgs; attrs: buildPythonPackage attrs;
 
   overrideAzureMgmtPackage = package: version: extension: sha256:
     # check to make sure overriding is even necessary
@@ -42,7 +25,7 @@ let
       pythonNamespaces = [ "azure.mgmt" ];
     });
 
-  py = python.override {
+  py = python3.override {
     packageOverrides = self: super: {
       inherit buildAzureCliPackage;
 
@@ -55,6 +38,7 @@ let
 
         propagatedBuildInputs = with self; [
           adal
+          antlr4-python3-runtime
           argcomplete
           azure-common
           azure-cli-telemetry
@@ -80,9 +64,7 @@ let
           requests
           six
           tabulate
-        ]
-        ++ lib.optionals isPy3k [ antlr4-python3-runtime ]
-        ++ lib.optionals (!isPy3k) [ enum34 futures antlr4-python2-runtime ndg-httpsclient ];
+        ];
 
         postPatch = ''
           substituteInPlace setup.py \
@@ -91,12 +73,14 @@ let
             --replace "cryptography>=3.2,<3.4" "cryptography"
         '';
 
+        checkInputs = with self; [ pytest ];
         doCheck = stdenv.isLinux;
         # ignore tests that does network call, or assume powershell
         checkPhase = ''
           rm azure/{,cli/}__init__.py
           python -c 'import azure.common; print(azure.common)'
-          PYTHONPATH=$PWD:$PYTHONPATH HOME=$TMPDIR pytest \
+          PYTHONPATH=$PWD:${src}/src/azure-cli-testsdk:$PYTHONPATH HOME=$TMPDIR pytest \
+            azure/cli/core/tests \
             --ignore=azure/cli/core/tests/test_profile.py \
             --ignore=azure/cli/core/tests/test_generic_update.py \
             -k 'not metadata_url and not test_send_raw_requests and not test_format_styled_text_legacy_powershell'
@@ -126,6 +110,7 @@ let
             --replace "portalocker~=1.6" "portalocker"
         '';
 
+        checkInputs = [ py.pkgs.pytest ];
         # ignore flaky test
         checkPhase = ''
           cd azure
@@ -133,9 +118,6 @@ let
         '';
       };
 
-      azure-appconfiguration = overrideAzureMgmtPackage super.azure-appconfiguration "1.1.1" "zip"
-        "sha256-uDzSy2PZMiXehOJ6u/wFkhL43id2b0xY3Tq7g53/C+Q=";
-
       azure-batch = overrideAzureMgmtPackage super.azure-batch "11.0.0" "zip"
         "83d7a2b0be42ca456ac2b56fa3dc6ce704c130e888d37d924072c1d3718f32da";
 
@@ -157,14 +139,14 @@ let
       azure-mgmt-policyinsights = overrideAzureMgmtPackage super.azure-mgmt-policyinsights "1.0.0" "zip"
         "75103fb4541aeae30bb687dee1fedd9ca65530e6b97b2d9ea87f74816905202a";
 
-      azure-mgmt-rdbms = overrideAzureMgmtPackage super.azure-mgmt-rdbms "9.1.0b1" "zip"
-        "sha256-O/6dE6lUnowYTWwQLWt3u1dwV4jBof+Jok0PUhFEEs0=";
+      azure-mgmt-rdbms = overrideAzureMgmtPackage super.azure-mgmt-rdbms "10.0.0" "zip"
+        "bdc479b3bbcac423943d63e746a81dd5fc80b46a4dbb4393e760016e3fa4f74a";
 
       azure-mgmt-recoveryservices = overrideAzureMgmtPackage super.azure-mgmt-recoveryservices "2.0.0" "zip"
         "sha256-p9MTfVxGD1CsLUQGHWCnC08nedTKhEt3QZtXJeZeCb4=";
 
-      azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "0.15.0" "zip"
-        "sha256-y5akbJdqXZsRi+mecq1opR1Ye9yTxNblGp/zjiXEqFY=";
+      azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "3.0.0" "zip"
+        "sha256-GZJIayjd1tT1l/0wBCF80sr09NyKDOcSJrWudnrOOhg=";
 
       azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "19.0.0" "zip"
         "bbb60bb9419633c2339569d4e097908638c7944e782b5aef0f5d9535085a9100";
@@ -175,20 +157,20 @@ let
       azure-mgmt-cognitiveservices = overrideAzureMgmtPackage super.azure-mgmt-cognitiveservices "12.0.0" "zip"
         "73054bd19866577e7e327518afc8f47e1639a11aea29a7466354b81804f4a676";
 
-      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "23.0.0" "zip"
-        "sha256-HrJrllukBJ3c8Q1PJYGHJfwDxJHDvnZTfQ10zrEUawQ=";
+      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "23.1.0" "zip"
+        "sha256-N+zUTEnOyn18lDHlkUj+vRXX/sJhZR7XLd1YdV50ULA=";
 
       azure-mgmt-consumption = overrideAzureMgmtPackage super.azure-mgmt-consumption "2.0.0" "zip"
         "12ai4qps73ivawh0yzvgb148ksx02r30pqlvfihx497j62gsi1cs";
 
-      azure-mgmt-containerinstance = overrideAzureMgmtPackage super.azure-mgmt-containerinstance "9.0.0" "zip"
-        "041431c5a768ac652aac318a17f2a53b90db968494c79abbafec441d0be387ff";
+      azure-mgmt-containerinstance = overrideAzureMgmtPackage super.azure-mgmt-containerinstance "9.1.0" "zip"
+        "sha256-N+zUTEnOyn18lDHlkUj+vRXX/sJhZR7XLd1YdV50ULA=";
 
       azure-mgmt-containerservice = overrideAzureMgmtPackage super.azure-mgmt-containerservice "16.1.0" "zip"
         "sha256-NlTIrOK4ho0OqcTHjHT1HobiMzDH2KY20TIlN0fm8/Q=";
 
-      azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "6.4.0" "zip"
-        "fb6b8ab80ab97214b94ae9e462ba1c459b68a3af296ffc26317ebd3ff500e00b";
+      azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "7.0.0b2" "zip"
+        "sha256-hVvYW9gkfTVMwis3IdD0JXYDxdKcyyzIFx3hNk7VMLI=";
 
       azure-mgmt-databoxedge = overrideAzureMgmtPackage super.azure-mgmt-databoxedge "1.0.0" "zip"
         "04090062bc1e8f00c2f45315a3bceb0fb3b3479ec1474d71b88342e13499b087";
@@ -217,8 +199,8 @@ let
       azure-mgmt-devtestlabs = overrideAzureMgmtPackage super.azure-mgmt-devtestlabs "4.0.0" "zip"
         "1397ksrd61jv7400mgn8sqngp6ahir55fyq9n5k69wk88169qm2r";
 
-      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "4.0.0" "zip"
-        "7195e413a0764684cd42bec9e429c13c290db9ab5c465dbed586a6f6d0ec8a42";
+      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "5.1.0" "zip"
+        "7195e413a0764684cd42bec9e429c13c290db9ab5c465dbed586a6f6d0ec8a4a";
 
       azure-mgmt-dns = overrideAzureMgmtPackage super.azure-mgmt-dns "8.0.0" "zip"
         "407c2dacb33513ffbe9ca4be5addb5e9d4bae0cb7efa613c3f7d531ef7bf8de8";
@@ -226,8 +208,8 @@ let
       azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "11.0.0" "zip"
         "41671fc6e95180fb6147cb40567410c34b85fb69bb0a9b3e09feae1ff370ee9d";
 
-      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "19.0.0" "zip"
-        "5e39a26ae81fa58c13c02029700f8c7b22c3fd832a294c543e3156a91b9459e8";
+      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "19.1.0" "zip"
+        "sha256-Yu9/6LqY5WQStDTJw13HVbPF5GnywBu+0s4NEpc6BEs=";
 
       azure-mgmt-maps = overrideAzureMgmtPackage super.azure-mgmt-maps "2.0.0" "zip"
         "384e17f76a68b700a4f988478945c3a9721711c0400725afdfcb63cf84e85f0e";
@@ -277,11 +259,11 @@ let
       azure-mgmt-sqlvirtualmachine = overrideAzureMgmtPackage super.azure-mgmt-sqlvirtualmachine "1.0.0b1" "zip"
         "sha256-SrFTvU+67U3CpMLPZMawXuRdSIbTsfav2jFZIsZWPmw=";
 
-      azure-mgmt-synapse = overrideAzureMgmtPackage super.azure-mgmt-synapse "2.0.0" "zip"
-        "bec6bdfaeb55b4fdd159f2055e8875bf50a720bb0fce80a816e92a2359b898c8";
+      azure-mgmt-synapse = overrideAzureMgmtPackage super.azure-mgmt-synapse "2.1.0b2" "zip"
+        "sha256-/BAxKDttp/tS/X45y8X4KBm5qxtNuVXhrc5qB3A+wRE=";
 
-      azure-mgmt-datamigration = overrideAzureMgmtPackage super.azure-mgmt-datamigration "9.0.0" "zip"
-        "sha256-cDc9vrNad2ikc0G7O1cMVZGXvBujb8j4vxUTnkyLrXA=";
+      azure-mgmt-datamigration = overrideAzureMgmtPackage super.azure-mgmt-datamigration "10.0.0" "zip"
+        "5cee70f97fe3a093c3cb70c2a190c2df936b772e94a09ef7e3deb1ed177c9f32";
 
       azure-mgmt-relay = overrideAzureMgmtPackage super.azure-mgmt-relay "0.1.0" "zip"
         "1jss6qhvif8l5s0lblqw3qzijjf0h88agciiydaa7f4q577qgyfr";
@@ -289,14 +271,14 @@ let
       azure-mgmt-eventhub = overrideAzureMgmtPackage super.azure-mgmt-eventhub "9.1.0" "zip"
         "0ba9f10e1e8d03247a316e777d6f27fabf268d596dda2af56ac079fcdf5e7afe";
 
-      azure-mgmt-keyvault = overrideAzureMgmtPackage super.azure-mgmt-keyvault "9.1.0" "zip"
-        "sha256-zTXoHEo8+BKt5L3PH3zPS1t4qAHvlnNAASpqyf5h3tI=";
+      azure-mgmt-keyvault = overrideAzureMgmtPackage super.azure-mgmt-keyvault "9.2.0" "zip"
+        "sha256-N+zUTEnOyn18lDHlkUj+vRXX/sJhZR7XLd1YdV50ULA=";
 
       azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "11.0.0" "zip"
         "28e7070001e7208cdb6c2ad253ec78851abdd73be482230d2c0874eed5bc0907";
 
-      azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "8.1.0" "zip"
-        "62efbb03275d920894d79879ad0ed59605163abd32177dcf24e90c1862ebccbd";
+      azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "8.2.0" "zip"
+        "f2bcdbcf0b9fdc2df0df9eccb77cb489091d3c670ed53cba77e5ffd734e9539b";
 
       azure-mgmt-monitor = overrideAzureMgmtPackage super.azure-mgmt-monitor "2.0.0" "zip"
         "e7f7943fe8f0efe98b3b1996cdec47c709765257a6e09e7940f7838a0f829e82";
@@ -319,11 +301,22 @@ let
       azure-mgmt-servicefabric = overrideAzureMgmtPackage super.azure-mgmt-servicefabric "1.0.0" "zip"
         "de35e117912832c1a9e93109a8d24cab94f55703a9087b2eb1c5b0655b3b1913";
 
-      azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "8.0.0" "zip"
-        "2c43f1a62e5b83304392b0ad7cfdaeef2ef2f47cb3fdfa2577b703b6ea126000";
+      azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "9.0.0" "zip"
+        "41ebdc69c0d1f81d25dd30438c14fff4331f66639f55805b918b9649eaffe78a";
+
+      azure-multiapi-storage = overrideAzureMgmtPackage super.azure-multiapi-storage "0.7.0" "tar.gz"
+        "cd4f184be8c9ca8aca969f93ed50dc7fe556d28ca11520440fc182cf876abdf9";
 
-      azure-multiapi-storage = overrideAzureMgmtPackage super.azure-multiapi-storage "0.6.2" "tar.gz"
-        "74061f99730fa82c54d9b8ab3c7d6e219da3f30912740ecf0456b20cb3555ebc";
+      azure-appconfiguration = super.azure-appconfiguration.overrideAttrs(oldAttrs: rec {
+        version = "1.1.1";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "sha256-uDzSy2PZMiXehOJ6u/wFkhL43id2b0xY3Tq7g53/C+Q=";
+          extension = "zip";
+        };
+      });
 
       azure-graphrbac = super.azure-graphrbac.overrideAttrs(oldAttrs: rec {
         version = "0.60.0";
@@ -420,6 +413,17 @@ let
         };
       });
 
+      azure-keyvault-keys = super.azure-keyvault-keys.overridePythonAttrs(oldAttrs: rec {
+        version = "4.5.0b4";
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          extension = "zip";
+          sha256 = "sha256-f43ZTMFc0IVIaa69gEZFOLALREcx3RRCFoYDY2FYLrY=";
+        };
+      });
+
+
       # part of azure.mgmt.datalake namespace
       azure-mgmt-datalake-analytics = super.azure-mgmt-datalake-analytics.overrideAttrs(oldAttrs: rec {
         version = "0.2.1";
diff --git a/pkgs/tools/admin/certigo/default.nix b/pkgs/tools/admin/certigo/default.nix
index 422c6da82d2f0..ff5d6c8f56faf 100644
--- a/pkgs/tools/admin/certigo/default.nix
+++ b/pkgs/tools/admin/certigo/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "certigo";
-  version = "1.12.1";
+  version = "1.13.0";
 
   src = fetchFromGitHub {
     owner = "square";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0siwbxxzknmbsjy23d0lvh591ngabqhr2g8mip0siwa7c1y7ivv4";
+    sha256 = "sha256-3VysSE4N2MlNDOZ27RbCe8rUuYChU5Z3L/CIhtvMp38=";
   };
 
-  vendorSha256 = "1l6ajfl04rfbssvijgd5jrppmqc5svfrswdx01x007lr8rvdfd94";
+  vendorSha256 = "sha256-0wul0f8T7E4cXbsNee1j1orUgjrAToqDLgwCjiyii1Y=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/admin/chamber/default.nix b/pkgs/tools/admin/chamber/default.nix
index ef304ff208b57..777366e16c0f1 100644
--- a/pkgs/tools/admin/chamber/default.nix
+++ b/pkgs/tools/admin/chamber/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "chamber";
-  version = "2.10.6";
+  version = "2.10.7";
 
   src = fetchFromGitHub {
     owner = "segmentio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-8VnFpzm5St0AYFzups2ILQ/MrQRZLQ1xY9JjlGVBmZk=";
+    sha256 = "sha256-HpxHGbgPdu92ha0QO15x1rrJikDmpSA8E8YdgjzQ/Mw=";
   };
 
   CGO_ENABLED = 0;
diff --git a/pkgs/tools/admin/clair/default.nix b/pkgs/tools/admin/clair/default.nix
index 752644c40cb49..bfeb636cb16ef 100644
--- a/pkgs/tools/admin/clair/default.nix
+++ b/pkgs/tools/admin/clair/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "clair";
-  version = "4.3.2";
+  version = "4.3.5";
 
   src = fetchFromGitHub {
     owner = "quay";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-E5hMjGsub3HWzvQYLUnSHmSfiW1uaZCyJndyasrjzw8=";
+    sha256 = "sha256-XV1lSEg6ksa5Y1jPKpVw3l+3pWkf6iBrJ+TBqVoj60k=";
   };
 
-  vendorSha256 = "sha256-J0AOgget9SpV+tKhzHINfsc7Vbxc2zVWIeFHruPc2BE=";
+  vendorSha256 = "sha256-U5uPTd9RHJnt3It7iluu73ihuDiIl3kCy/1f2bRqhBY=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/admin/colmena/default.nix b/pkgs/tools/admin/colmena/default.nix
new file mode 100644
index 0000000000000..e95475be33959
--- /dev/null
+++ b/pkgs/tools/admin/colmena/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, lib, rustPlatform, fetchFromGitHub, installShellFiles, colmena, testVersion }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "colmena";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "zhaofengli";
+    repo = "colmena";
+    rev = "v${version}";
+    sha256 = "sha256-WY8SYapnDcfaoLr1iFgwc9/E7xSfOFN2AvMDpk74AI8=";
+  };
+
+  cargoSha256 = "sha256-ZNSg3hXWKHNQ9yHJS1qW3tFYwzU4ZDa1N0yvoGLmWns=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
+    installShellCompletion --cmd colmena \
+      --bash <($out/bin/colmena gen-completions bash) \
+      --zsh <($out/bin/colmena gen-completions zsh) \
+      --fish <($out/bin/colmena gen-completions fish)
+  '';
+
+  # Recursive Nix is not stable yet
+  doCheck = false;
+
+  passthru = {
+    # We guarantee CLI and Nix API stability for the same minor version
+    apiVersion = builtins.concatStringsSep "." (lib.take 2 (lib.splitString "." version));
+
+    tests.version = testVersion { package = colmena; };
+  };
+
+  meta = with lib; {
+    description = "A simple, stateless NixOS deployment tool";
+    homepage = "https://zhaofengli.github.io/colmena/${passthru.apiVersion}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zhaofengli ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/admin/eksctl/default.nix b/pkgs/tools/admin/eksctl/default.nix
index 80e091845ce27..7208e4e8cdd56 100644
--- a/pkgs/tools/admin/eksctl/default.nix
+++ b/pkgs/tools/admin/eksctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.70.0";
+  version = "0.76.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    sha256 = "sha256-wBDG6um7HCFAEyiubnkCxg91sQ6HX0CTpYItwVkMx28=";
+    sha256 = "sha256-KhAS8JUM6dobcSJ/QaRhxv2jNpn6AFqiDRCdxeKHwZE=";
   };
 
-  vendorSha256 = "sha256-cUo+tcHhnbJbn3HS/I8lnkvfv+6+htIs1dMtKuEArQg=";
+  vendorSha256 = "sha256-6eiJR7DRx3zYKT3B1wBTGSvPQwYw3815K1V/Y9aBX5E=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/admin/exoscale-cli/default.nix b/pkgs/tools/admin/exoscale-cli/default.nix
index af25000833049..182e594084ee0 100644
--- a/pkgs/tools/admin/exoscale-cli/default.nix
+++ b/pkgs/tools/admin/exoscale-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "exoscale-cli";
-  version = "1.46.0";
+  version = "1.49.2";
 
   src = fetchFromGitHub {
     owner  = "exoscale";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-dWbuzzFCBJuSUUQFXY3axK+T9rsMaIMOCKa0ig96bJE=";
+    sha256 = "sha256-8v+U0h0+3NVSXBlulOKY0A5oDlqkgNZPoyflRNycDxU=";
   };
 
   goPackagePath = "github.com/exoscale/cli";
diff --git a/pkgs/tools/admin/fioctl/default.nix b/pkgs/tools/admin/fioctl/default.nix
index 98e68c10fb9db..94ad41ec51441 100644
--- a/pkgs/tools/admin/fioctl/default.nix
+++ b/pkgs/tools/admin/fioctl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "fioctl";
-  version = "0.20";
+  version = "0.22";
 
   src = fetchFromGitHub {
     owner = "foundriesio";
     repo = "fioctl";
     rev = "v${version}";
-    sha256 = "sha256-vc+V69cyJZSJa6GXUUNYeXdKvmUrVIQhsBykptcl85s=";
+    sha256 = "sha256-8YIboaLFc1nliNQJPyTd/JseTbvk2aBTjVEpW3mTkZg=";
   };
 
   vendorSha256 = "sha256-SuUY4xwinky5QO+GxyotrFiYX1LnWQNjwWXIUpfVHUE=";
diff --git a/pkgs/tools/admin/fits-cloudctl/default.nix b/pkgs/tools/admin/fits-cloudctl/default.nix
index 92a77b461b207..a71f6e8f6347d 100644
--- a/pkgs/tools/admin/fits-cloudctl/default.nix
+++ b/pkgs/tools/admin/fits-cloudctl/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "fits-cloudctl";
-  version = "0.10.3";
+  version = "0.10.5";
 
   src = fetchFromGitHub {
     owner = "fi-ts";
     repo = "cloudctl";
     rev = "v${version}";
-    sha256 = "sha256-FbKULHBzx4HcOFhIRdy7DiewOQzBdac3B+N34M/Kbzk=";
+    sha256 = "sha256-l01c1tjS0L+T/kHreYx3A5/N/oRDuDywXS/GAvUCxSk=";
   };
 
-  vendorSha256 = "sha256-ImKN3rNotgUkQaKzoetAEG6Q/zlfH8FTK4HTIO0xn4s=";
+  vendorSha256 = "sha256-iJlNNovsIgTOPfAzwqkumrmCQu2xI/neqH+Z4tvSXeY=";
 
   meta = with lib; {
     description = "Command-line client for FI-TS Finance Cloud Native services";
diff --git a/pkgs/tools/admin/google-cloud-sdk/data.nix b/pkgs/tools/admin/google-cloud-sdk/data.nix
new file mode 100644
index 0000000000000..0ac9e752d8ca0
--- /dev/null
+++ b/pkgs/tools/admin/google-cloud-sdk/data.nix
@@ -0,0 +1,32 @@
+# DO NOT EDIT! This file is generated automatically by update.sh
+{ }:
+{
+  version = "365.0.1";
+  googleCloudSdkPkgs = {
+    x86_64-linux =
+      {
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-365.0.1-linux-x86_64.tar.gz";
+        sha256 = "1c0gwc446y2r8hq8gyx9nwrma5y61nkfy5mc30jqr1kslvdkq00p";
+      };
+    x86_64-darwin =
+      {
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-365.0.1-darwin-x86_64.tar.gz";
+        sha256 = "00nrwklm2cxyzrsqa9hidljqcd5w2gbyxwhyfsjzrdmr9qks7s2a";
+      };
+    aarch64-linux =
+      {
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-365.0.1-linux-arm.tar.gz";
+        sha256 = "0sr8cp3pjz6i7yf2zb178r160hc2krk6qn37plhsqj16bqw8vs7v";
+      };
+    aarch64-darwin =
+      {
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-365.0.1-darwin-arm.tar.gz";
+        sha256 = "0pkdvhlab1rsja6jz68pnkw3w4rbiv3wh3si3w0lj1kkjzjr2rb3";
+      };
+    i686-linux =
+      {
+        url = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-365.0.1-linux-x86.tar.gz";
+        sha256 = "1kqn15akwlqxybrhy4drkfsz5nj3grvmyifv8ffmv4wjc53m9www";
+      };
+  };
+}
diff --git a/pkgs/tools/admin/google-cloud-sdk/default.nix b/pkgs/tools/admin/google-cloud-sdk/default.nix
index ac3f9d65c0fe5..f0b0c042cbe4f 100644
--- a/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -17,39 +17,15 @@ let
     crcmod
   ] ++ lib.optional (with-gce) google-compute-engine);
 
-  baseUrl = "https://dl.google.com/dl/cloudsdk/channels/rapid/downloads";
-  sources = name: system: {
-    x86_64-darwin = {
-      url = "${baseUrl}/${name}-darwin-x86_64.tar.gz";
-      sha256 = "19s3nryngzv7zs7piwx92hii5p2y97fs7wngqrd9v8cxvgavp1dc";
-    };
-
-    aarch64-darwin = {
-      url = "${baseUrl}/${name}-darwin-arm.tar.gz";
-      sha256 = "1iphpkxrrp0gdan7ikbjbhykdpazcs1fnlcwkfyv2m9baggkd53z";
-    };
-
-    x86_64-linux = {
-      url = "${baseUrl}/${name}-linux-x86_64.tar.gz";
-      sha256 = "1z1ymvij9vi8jc05b004jhd08dqbk133wd03fdxnagd6nfr0bjqm";
-    };
-
-    i686-linux = {
-      url = "${baseUrl}/${name}-linux-x86.tar.gz";
-      sha256 = "17i5pkwjmi38klgr12xqgza7iwkx459cbavlq0x33zaq2a4zanlc";
-    };
-
-    aarch64-linux = {
-      url = "${baseUrl}/${name}-linux-arm.tar.gz";
-      sha256 = "17zjnab4ai5w6p3cbxys9zsg4bdlp0lh6pvmkvdz9hszxxch4yms";
-    };
-  }.${system} or (throw "Unsupported system: ${system}");
+  data = import ./data.nix { };
+  sources = system:
+    data.googleCloudSdkPkgs.${system} or (throw "Unsupported system: ${system}");
 
 in stdenv.mkDerivation rec {
   pname = "google-cloud-sdk";
-  version = "362.0.0";
+  inherit (data) version;
 
-  src = fetchurl (sources "${pname}-${version}" stdenv.hostPlatform.system);
+  src = fetchurl (sources stdenv.hostPlatform.system);
 
   buildInputs = [ python ];
 
@@ -135,8 +111,9 @@ in stdenv.mkDerivation rec {
     # This package contains vendored dependencies. All have free licenses.
     license = licenses.free;
     homepage = "https://cloud.google.com/sdk/";
+    changelog = "https://cloud.google.com/sdk/docs/release-notes";
     maintainers = with maintainers; [ iammrinal0 pradyuman stephenmw zimbatm ];
-    platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
+    platforms = builtins.attrNames data.googleCloudSdkPkgs;
     mainProgram = "gcloud";
   };
 }
diff --git a/pkgs/tools/admin/google-cloud-sdk/update.sh b/pkgs/tools/admin/google-cloud-sdk/update.sh
new file mode 100755
index 0000000000000..07148e4e8de7a
--- /dev/null
+++ b/pkgs/tools/admin/google-cloud-sdk/update.sh
@@ -0,0 +1,47 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p nix
+
+BASE_URL="https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk"
+
+# Version of Google Cloud SDK from
+# https://cloud.google.com/sdk/docs/release-notes
+VERSION="365.0.1"
+
+function genMainSrc() {
+    local url="${BASE_URL}-${VERSION}-${1}-${2}.tar.gz"
+    local sha256
+    sha256=$(nix-prefetch-url "$url")
+    echo "      {"
+    echo "        url = \"${url}\";"
+    echo "        sha256 = \"${sha256}\";"
+    echo "      };"
+}
+
+{
+    cat <<EOF
+# DO NOT EDIT! This file is generated automatically by update.sh
+{ }:
+{
+  version = "${VERSION}";
+  googleCloudSdkPkgs = {
+EOF
+
+    echo "    x86_64-linux ="
+    genMainSrc "linux" "x86_64"
+
+    echo "    x86_64-darwin ="
+    genMainSrc "darwin" "x86_64"
+
+    echo "    aarch64-linux ="
+    genMainSrc "linux" "arm"
+
+    echo "    aarch64-darwin ="
+    genMainSrc "darwin" "arm"
+
+    echo "    i686-linux ="
+    genMainSrc "linux" "x86"
+
+    echo "  };"
+    echo "}"
+
+} >data.nix
diff --git a/pkgs/tools/admin/gtk-vnc/default.nix b/pkgs/tools/admin/gtk-vnc/default.nix
index 5e00e487e23e8..060c95a8f7672 100644
--- a/pkgs/tools/admin/gtk-vnc/default.nix
+++ b/pkgs/tools/admin/gtk-vnc/default.nix
@@ -15,6 +15,7 @@
 , vala
 , gettext
 , perl
+, python3
 , gnome
 , gdk-pixbuf
 , zlib
@@ -22,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gtk-vnc";
-  version = "1.2.0";
+  version = "1.3.0";
 
   outputs = [ "out" "bin" "man" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0jmr6igyzcj2wmx5v5ywaazvdz3hx6a6rys26yb4l4s71l281bvs";
+    sha256 = "X6qlgjuMvowLC6HkVsTnDEsa5mhcn+gaQoLZjPAKIR0=";
   };
 
   nativeBuildInputs = [
@@ -39,6 +40,7 @@ stdenv.mkDerivation rec {
     vala
     gettext
     perl # for pod2man
+    python3
   ];
 
   buildInputs = [
diff --git a/pkgs/tools/admin/lxd/default.nix b/pkgs/tools/admin/lxd/default.nix
index 24e241f1b247b..8a3ece8e0f90d 100644
--- a/pkgs/tools/admin/lxd/default.nix
+++ b/pkgs/tools/admin/lxd/default.nix
@@ -11,13 +11,13 @@
 
 buildGoPackage rec {
   pname = "lxd";
-  version = "4.20";
+  version = "4.21";
 
   goPackagePath = "github.com/lxc/lxd";
 
   src = fetchurl {
     url = "https://linuxcontainers.org/downloads/lxd/lxd-${version}.tar.gz";
-    sha256 = "1mcf4i4z9y4l895v50amx8nix6wnaxv9h44012vj8w6wwbr4wl1m";
+    sha256 = "1b2jls3jgvgdl0136nar8zm3hfrp0gqxxq9fh7vxc52r1aslarvs";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/admin/meshcentral/default.nix b/pkgs/tools/admin/meshcentral/default.nix
index b149c14413955..0b397b541e538 100644
--- a/pkgs/tools/admin/meshcentral/default.nix
+++ b/pkgs/tools/admin/meshcentral/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchpatch, fetchzip, yarn2nix-moretea, nodejs, jq, dos2unix }:
 
 yarn2nix-moretea.mkYarnPackage rec {
-  version = "0.9.50";
+  version = "0.9.56";
 
   src = fetchzip {
     url = "https://registry.npmjs.org/meshcentral/-/meshcentral-${version}.tgz";
-    sha256 = "0igkl2ip2mas3djg1rmw209xar1kfiqy277r2lzi5zcnn4hh820m";
+    sha256 = "0yjl931yfn2cz60gh00wyv5zxzqmw9s0r4nf1friqhxs37055278";
   };
 
   packageJSON = ./package.json;
diff --git a/pkgs/tools/admin/meshcentral/package.json b/pkgs/tools/admin/meshcentral/package.json
index 119a3f2b5d17c..7d92ea8606d6a 100644
--- a/pkgs/tools/admin/meshcentral/package.json
+++ b/pkgs/tools/admin/meshcentral/package.json
@@ -1,6 +1,6 @@
 {
   "name": "meshcentral",
-  "version": "0.9.50",
+  "version": "0.9.56",
   "keywords": [
     "Remote Device Management",
     "Remote Device Monitoring",
@@ -117,6 +117,7 @@
     "otplib": "10.2.3",
     "twilio": "*",
     "plivo": "*",
+    "telnyx": "*",
     "web-push": "*",
     "node-xcs": "*",
     "modern-syslog": "*",
diff --git a/pkgs/tools/admin/meshcentral/yarn.lock b/pkgs/tools/admin/meshcentral/yarn.lock
index cba8028834b98..96e80b306bfdd 100644
--- a/pkgs/tools/admin/meshcentral/yarn.lock
+++ b/pkgs/tools/admin/meshcentral/yarn.lock
@@ -63,9 +63,9 @@
     js-tokens "^4.0.0"
 
 "@babel/parser@^7.16.0", "@babel/parser@^7.16.3", "@babel/parser@^7.4.3":
-  version "7.16.3"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.3.tgz#271bafcb811080905a119222edbc17909c82261d"
-  integrity sha512-dcNwU1O4sx57ClvLBVFbEgx0UZWfd0JQX5X6fxFRCLHelFBGXFfSz6Y0FAq2PEwUqlqLkdVjVr4VASEOuUnLJw==
+  version "7.16.4"
+  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e"
+  integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==
 
 "@babel/template@^7.16.0", "@babel/template@^7.4.0":
   version "7.16.0"
@@ -148,14 +148,14 @@
     "@types/node" "*"
 
 "@types/node@*":
-  version "16.11.7"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.7.tgz#36820945061326978c42a01e56b61cd223dfdc42"
-  integrity sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==
+  version "16.11.11"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.11.tgz#6ea7342dfb379ea1210835bada87b3c512120234"
+  integrity sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==
 
 "@types/node@^14.14.14", "@types/node@^14.14.28":
-  version "14.17.33"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.33.tgz#011ee28e38dc7aee1be032ceadf6332a0ab15b12"
-  integrity sha512-noEeJ06zbn3lOh4gqe2v7NMGS33jrulfNqYFDjjEbhpDEHR5VTxgYNQSBqBlJIsBJW3uEYDgD6kvMnrrhGzq8g==
+  version "14.18.0"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.0.tgz#98df2397f6936bfbff4f089e40e06fa5dd88d32a"
+  integrity sha512-0GeIl2kmVMXEnx8tg1SlG6Gg8vkqirrW752KqolYo1PHevhhZN3bhJ67qHj+bQaINhX0Ra3TlWwRvMCd9iEfNQ==
 
 "@types/webidl-conversions@*":
   version "6.1.1"
@@ -473,9 +473,9 @@ acorn@^7.1.1:
   integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
 
 acorn@^8.5.0:
-  version "8.5.0"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2"
-  integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==
+  version "8.6.0"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz#e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895"
+  integrity sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==
 
 aedes-packet@^1.0.0:
   version "1.0.0"
@@ -1526,9 +1526,9 @@ bson@^1.1.4:
   integrity sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==
 
 bson@^4.4.0:
-  version "4.5.4"
-  resolved "https://registry.yarnpkg.com/bson/-/bson-4.5.4.tgz#5f74f1e11f743ea8aec30b5e24bfddae82846873"
-  integrity sha512-wIt0bPACnx8Ju9r6IsS2wVtGDHBr9Dxb+U29A1YED2pu8XOhS8aKjOnLZ8sxyXkPwanoK7iWWVhS1+coxde6xA==
+  version "4.6.0"
+  resolved "https://registry.yarnpkg.com/bson/-/bson-4.6.0.tgz#15c3b39ba3940c3d915a0c44d51459f4b4fbf1b2"
+  integrity sha512-8jw1NU1hglS+Da1jDOUYuNcBJ4cNHCFIqzlwoFNnsTOg2R/ox0aTYcTiBN4dzRa9q7Cvy6XErh3L8ReTEb9AQQ==
   dependencies:
     buffer "^5.6.0"
 
@@ -2255,9 +2255,9 @@ debug@3.1.0:
     ms "2.0.0"
 
 debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2:
-  version "4.3.2"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
-  integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
+  version "4.3.3"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
+  integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
   dependencies:
     ms "2.1.2"
 
@@ -3157,9 +3157,9 @@ globals@^9.18.0:
   integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
 
 google-auth-library@^7.0.2:
-  version "7.10.2"
-  resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-7.10.2.tgz#7e48176f50e725e1d65b6a838ec9e9464e6ba689"
-  integrity sha512-M37o9Kxa/TLvOLgF71SXvLeVEP5sbSTmKl1zlIgl72SFy5PtsU3pOdu8G8MIHHpQ3/NZabDI8rQkA9DvQVKkPA==
+  version "7.10.3"
+  resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-7.10.3.tgz#e553683315b3095eebef3a8c019c09446cb75a3c"
+  integrity sha512-VBwUCrjR+/p/J4ifSZRXG0XEc3Cm+2xnFrJi3A9DC2GzbCUK5j+R6CfqS7jyu1Hureb1PV53ZXZS1QV9PYUCrw==
   dependencies:
     arrify "^2.0.0"
     base64-js "^1.3.0"
@@ -3196,9 +3196,9 @@ googleapis-common@^5.0.2:
     uuid "^8.0.0"
 
 googleapis@*:
-  version "91.0.0"
-  resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-91.0.0.tgz#c5e51ca568ed687f0694a082237c7b7b96a19b3b"
-  integrity sha512-iHqXZwgYam0g8n0Yyi+YHx8kgwT+H5O4k3fe0LB1JhWRp1dSKYu+ShY4PQbW584zLOE4kK3LHf2B+x1THx+ZPQ==
+  version "92.0.0"
+  resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-92.0.0.tgz#291b9826a5a4509a9e9a6974ef942328857bfe18"
+  integrity sha512-5HgJg7XvqEEJ+GO+2gvnzd5cAcDuSS/VB6nW7thoyj2GMq9nH4VvJwncSevinjLCnv06a+VSxrXNiL5vePHojA==
   dependencies:
     google-auth-library "^7.0.2"
     googleapis-common "^5.0.2"
@@ -4077,9 +4077,9 @@ jsdoc2md-stats@^1.0.3:
     feature-detect-es6 "^1.3.1"
 
 jsdom@*:
-  version "18.1.0"
-  resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-18.1.0.tgz#43e88a0e4d6d2aeeec0a18810c0934c02b2ae3e4"
-  integrity sha512-q6QFAfSGLEUqRJ+GCV6vn6ItZCMARWh1d33wiJZPxc+wMNw7HK71JPmQ4C2lIZAsBH8TiJu4uplach/UcrC6bQ==
+  version "19.0.0"
+  resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-19.0.0.tgz#93e67c149fe26816d38a849ea30ac93677e16b6a"
+  integrity sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==
   dependencies:
     abab "^2.0.5"
     acorn "^8.5.0"
@@ -4141,10 +4141,10 @@ json-schema-traverse@^0.4.1:
   resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
   integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
 
-json-schema@0.2.3:
-  version "0.2.3"
-  resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
-  integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
+json-schema@0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5"
+  integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==
 
 json-stringify-safe@~5.0.1:
   version "5.0.1"
@@ -4173,13 +4173,13 @@ jsonwebtoken@^8.5.1:
     semver "^5.6.0"
 
 jsprim@^1.2.2:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
-  integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
+  version "1.4.2"
+  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb"
+  integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==
   dependencies:
     assert-plus "1.0.0"
     extsprintf "1.3.0"
-    json-schema "0.2.3"
+    json-schema "0.4.0"
     verror "1.10.0"
 
 jwa@^1.4.1:
@@ -4998,9 +4998,9 @@ node-xcs@*:
     "@xmpp/debug" "^0.9.2"
 
 nodemailer@*:
-  version "6.7.1"
-  resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.7.1.tgz#09f72f8b375f7b259291757007bcd902c0174c6e"
-  integrity sha512-E1C8G3rnXrGjznwGP1k+OrW5k4rl0XtqTEB19f7vtJAMYwfxZVSsAu2iY5xJkrZsbVYr6PwwAwRmFlakPoFC0A==
+  version "6.7.2"
+  resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.7.2.tgz#44b2ad5f7ed71b7067f7a21c4fedabaec62b85e0"
+  integrity sha512-Dz7zVwlef4k5R71fdmxwR8Q39fiboGbu3xgswkzGwczUfjp873rVxt1O46+Fh0j1ORnAC6L9+heI8uUpO6DT7Q==
 
 nofilter@^1.0.4:
   version "1.0.4"
@@ -5115,9 +5115,9 @@ object-get@^2.0.0, object-get@^2.0.2, object-get@^2.1.0:
   integrity sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==
 
 object-inspect@^1.9.0:
-  version "1.11.0"
-  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1"
-  integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==
+  version "1.11.1"
+  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.1.tgz#d4bd7d7de54b9a75599f59a00bd698c1f1c6549b"
+  integrity sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==
 
 object-keys@^1.0.12, object-keys@^1.1.1:
   version "1.1.1"
@@ -5676,9 +5676,9 @@ please-upgrade-node@^3.2.0:
     semver-compare "^1.0.0"
 
 plivo@*:
-  version "4.23.1"
-  resolved "https://registry.yarnpkg.com/plivo/-/plivo-4.23.1.tgz#bbc680db39a2c539288ae317fcb19dcdf00edcac"
-  integrity sha512-q8I3rcT7/4a+u650i6RzBYJ2v5uDFSfjnAd/FAJ6Wlj9guWA9zoJTdAsk4FhlKkkwvczxS6UigIqI3DORzM8OA==
+  version "4.25.0"
+  resolved "https://registry.yarnpkg.com/plivo/-/plivo-4.25.0.tgz#ba496e0e75dcbe5747d5770e6e07fd9eb153d7dd"
+  integrity sha512-pe3Frvgpk5ks5DwTbUN9DJTNIw2pV2Yip8DXfmBW34SCPdxyXUqsAw8TurDEjxTWEIuck4e4JizpQyv/V9T2tg==
   dependencies:
     "@types/node" "^14.14.14"
     axios "^0.21.1"
@@ -5830,10 +5830,10 @@ qs@6.7.0:
   resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
   integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
 
-qs@^6.7.0, qs@^6.9.4:
-  version "6.10.1"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a"
-  integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==
+qs@^6.6.0, qs@^6.7.0, qs@^6.9.4:
+  version "6.10.2"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.2.tgz#c1431bea37fc5b24c5bdbafa20f16bdf2a4b9ffe"
+  integrity sha512-mSIdjzqznWgfd4pMii7sHtaYF8rx8861hBO80SraY5GT0XQibWZWJSid0avzHGkDIZLImux2S5mXO0Hfct2QCw==
   dependencies:
     side-channel "^1.0.4"
 
@@ -6462,9 +6462,9 @@ side-channel@^1.0.4:
     object-inspect "^1.9.0"
 
 signal-exit@^3.0.0, signal-exit@^3.0.2:
-  version "3.0.5"
-  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f"
-  integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==
+  version "3.0.6"
+  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af"
+  integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==
 
 slash@^1.0.0:
   version "1.0.0"
@@ -6767,9 +6767,9 @@ strip-json-comments@~2.0.1:
   integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
 
 strnum@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.4.tgz#e97e36a7d6ba9f93d0d6b496b2ed0678d422832b"
-  integrity sha512-lMzNMfDpaQOLt4B2mEbfzYS0+T7dvCXeojnlGf6f1AygvWDMcWyXYaLbyICfjVu29sErR8fnRagQfBW/N/hGgw==
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db"
+  integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==
 
 supports-color@^2.0.0:
   version "2.0.0"
@@ -6835,6 +6835,17 @@ tar-stream@^2.1.2, tar-stream@^2.2.0:
     inherits "^2.0.3"
     readable-stream "^3.1.1"
 
+telnyx@*:
+  version "1.23.0"
+  resolved "https://registry.yarnpkg.com/telnyx/-/telnyx-1.23.0.tgz#0d949a11f7c819b0d5ce8ae8c36b80bd02e351c8"
+  integrity sha512-hmXxXVyj+Fi+ips7KwmgUYQrzHCIyGo8bjm/B8tsCAJ7PZ0V3LO330CVOk0gPdlcZxIkITaXWB51swrbK09Wew==
+  dependencies:
+    lodash.isplainobject "^4.0.6"
+    qs "^6.6.0"
+    safe-buffer "^5.1.1"
+    tweetnacl "^1.0.1"
+    uuid "^3.3.2"
+
 temp-path@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/temp-path/-/temp-path-1.0.0.tgz#24b1543973ab442896d9ad367dd9cbdbfafe918b"
@@ -7019,10 +7030,15 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
   resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
   integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
 
+tweetnacl@^1.0.1:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596"
+  integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==
+
 twilio@*:
-  version "3.71.1"
-  resolved "https://registry.yarnpkg.com/twilio/-/twilio-3.71.1.tgz#15bbb4b51c75d91cc07a8149378c4af330e543cc"
-  integrity sha512-P/KFvm33UW15EnpHJKgdTxUa1u6MlR/u+sCVnL4ie2TDRv6t7kX+ieIGQMpH7bP/z7FXkTjEt0lz4M+XJ/XWOg==
+  version "3.71.3"
+  resolved "https://registry.yarnpkg.com/twilio/-/twilio-3.71.3.tgz#a446d2b49f8c1ed60b0dd830c919921358c17203"
+  integrity sha512-m9eda9fvkHxMMDHRtXj8WKI0ViP4EG4xS5au5ay3ScfModhBZ1ZtyfWZ0AfWI++A7a1T1j3ZVNIZ+AMLwxSffw==
   dependencies:
     axios "^0.21.4"
     dayjs "^1.8.29"
@@ -7067,9 +7083,9 @@ uglify-js@^2.6:
     uglify-to-browserify "~1.0.0"
 
 uglify-js@^3.1.4, uglify-js@^3.5.1:
-  version "3.14.3"
-  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.3.tgz#c0f25dfea1e8e5323eccf59610be08b6043c15cf"
-  integrity sha512-mic3aOdiq01DuSVx0TseaEzMIVqebMZ0Z3vaeDhFEh9bsc24hV1TFvN74reA2vs08D0ZWfNjAcJ3UbVLaBss+g==
+  version "3.14.4"
+  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.4.tgz#68756f17d1b90b9d289341736cb9a567d6882f90"
+  integrity sha512-AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA==
 
 uglify-to-browserify@~1.0.0:
   version "1.0.2"
@@ -7527,14 +7543,14 @@ ws@5.2.3, ws@^5.2.0:
     async-limiter "~1.0.0"
 
 ws@^7.0.0:
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz#8b4bc4af518cfabd0473ae4f99144287b33eb881"
-  integrity sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==
+  version "7.5.6"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b"
+  integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==
 
 ws@^8.2.3:
-  version "8.2.3"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba"
-  integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==
+  version "8.3.0"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-8.3.0.tgz#7185e252c8973a60d57170175ff55fdbd116070d"
+  integrity sha512-Gs5EZtpqZzLvmIM59w4igITU57lrtYVFneaa434VROv4thzJyV6UjIL3D42lslWlI+D4KzLYnxSwtfuiO79sNw==
 
 xml-crypto@^2.1.3:
   version "2.1.3"
diff --git a/pkgs/tools/admin/meshcentral/yarn.nix b/pkgs/tools/admin/meshcentral/yarn.nix
index 171abf0fd2542..fd4fe90755b52 100644
--- a/pkgs/tools/admin/meshcentral/yarn.nix
+++ b/pkgs/tools/admin/meshcentral/yarn.nix
@@ -66,11 +66,11 @@
       };
     }
     {
-      name = "_babel_parser___parser_7.16.3.tgz";
+      name = "_babel_parser___parser_7.16.4.tgz";
       path = fetchurl {
-        name = "_babel_parser___parser_7.16.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.3.tgz";
-        sha1 = "271bafcb811080905a119222edbc17909c82261d";
+        name = "_babel_parser___parser_7.16.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz";
+        sha1 = "d5f92f57cf2c74ffe9b37981c0e72fee7311372e";
       };
     }
     {
@@ -154,19 +154,19 @@
       };
     }
     {
-      name = "_types_node___node_16.11.7.tgz";
+      name = "_types_node___node_16.11.11.tgz";
       path = fetchurl {
-        name = "_types_node___node_16.11.7.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-16.11.7.tgz";
-        sha1 = "36820945061326978c42a01e56b61cd223dfdc42";
+        name = "_types_node___node_16.11.11.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-16.11.11.tgz";
+        sha1 = "6ea7342dfb379ea1210835bada87b3c512120234";
       };
     }
     {
-      name = "_types_node___node_14.17.33.tgz";
+      name = "_types_node___node_14.18.0.tgz";
       path = fetchurl {
-        name = "_types_node___node_14.17.33.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.17.33.tgz";
-        sha1 = "011ee28e38dc7aee1be032ceadf6332a0ab15b12";
+        name = "_types_node___node_14.18.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.18.0.tgz";
+        sha1 = "98df2397f6936bfbff4f089e40e06fa5dd88d32a";
       };
     }
     {
@@ -506,11 +506,11 @@
       };
     }
     {
-      name = "acorn___acorn_8.5.0.tgz";
+      name = "acorn___acorn_8.6.0.tgz";
       path = fetchurl {
-        name = "acorn___acorn_8.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz";
-        sha1 = "4512ccb99b3698c752591e9bb4472e38ad43cee2";
+        name = "acorn___acorn_8.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-8.6.0.tgz";
+        sha1 = "e3692ba0eb1a0c83eaa4f37f5fa7368dd7142895";
       };
     }
     {
@@ -1530,11 +1530,11 @@
       };
     }
     {
-      name = "bson___bson_4.5.4.tgz";
+      name = "bson___bson_4.6.0.tgz";
       path = fetchurl {
-        name = "bson___bson_4.5.4.tgz";
-        url  = "https://registry.yarnpkg.com/bson/-/bson-4.5.4.tgz";
-        sha1 = "5f74f1e11f743ea8aec30b5e24bfddae82846873";
+        name = "bson___bson_4.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/bson/-/bson-4.6.0.tgz";
+        sha1 = "15c3b39ba3940c3d915a0c44d51459f4b4fbf1b2";
       };
     }
     {
@@ -2282,11 +2282,11 @@
       };
     }
     {
-      name = "debug___debug_4.3.2.tgz";
+      name = "debug___debug_4.3.3.tgz";
       path = fetchurl {
-        name = "debug___debug_4.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz";
-        sha1 = "f0a49c18ac8779e31d4a0c6029dfb76873c7428b";
+        name = "debug___debug_4.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz";
+        sha1 = "04266e0b70a98d4462e6e288e38259213332b664";
       };
     }
     {
@@ -3274,11 +3274,11 @@
       };
     }
     {
-      name = "google_auth_library___google_auth_library_7.10.2.tgz";
+      name = "google_auth_library___google_auth_library_7.10.3.tgz";
       path = fetchurl {
-        name = "google_auth_library___google_auth_library_7.10.2.tgz";
-        url  = "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-7.10.2.tgz";
-        sha1 = "7e48176f50e725e1d65b6a838ec9e9464e6ba689";
+        name = "google_auth_library___google_auth_library_7.10.3.tgz";
+        url  = "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-7.10.3.tgz";
+        sha1 = "e553683315b3095eebef3a8c019c09446cb75a3c";
       };
     }
     {
@@ -3306,11 +3306,11 @@
       };
     }
     {
-      name = "googleapis___googleapis_91.0.0.tgz";
+      name = "googleapis___googleapis_92.0.0.tgz";
       path = fetchurl {
-        name = "googleapis___googleapis_91.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/googleapis/-/googleapis-91.0.0.tgz";
-        sha1 = "c5e51ca568ed687f0694a082237c7b7b96a19b3b";
+        name = "googleapis___googleapis_92.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/googleapis/-/googleapis-92.0.0.tgz";
+        sha1 = "291b9826a5a4509a9e9a6974ef942328857bfe18";
       };
     }
     {
@@ -4282,11 +4282,11 @@
       };
     }
     {
-      name = "jsdom___jsdom_18.1.0.tgz";
+      name = "jsdom___jsdom_19.0.0.tgz";
       path = fetchurl {
-        name = "jsdom___jsdom_18.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/jsdom/-/jsdom-18.1.0.tgz";
-        sha1 = "43e88a0e4d6d2aeeec0a18810c0934c02b2ae3e4";
+        name = "jsdom___jsdom_19.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/jsdom/-/jsdom-19.0.0.tgz";
+        sha1 = "93e67c149fe26816d38a849ea30ac93677e16b6a";
       };
     }
     {
@@ -4338,11 +4338,11 @@
       };
     }
     {
-      name = "json_schema___json_schema_0.2.3.tgz";
+      name = "json_schema___json_schema_0.4.0.tgz";
       path = fetchurl {
-        name = "json_schema___json_schema_0.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
-        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+        name = "json_schema___json_schema_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz";
+        sha1 = "f7de4cf6efab838ebaeb3236474cbba5a1930ab5";
       };
     }
     {
@@ -4370,11 +4370,11 @@
       };
     }
     {
-      name = "jsprim___jsprim_1.4.1.tgz";
+      name = "jsprim___jsprim_1.4.2.tgz";
       path = fetchurl {
-        name = "jsprim___jsprim_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
-        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+        name = "jsprim___jsprim_1.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz";
+        sha1 = "712c65533a15c878ba59e9ed5f0e26d5b77c5feb";
       };
     }
     {
@@ -5290,11 +5290,11 @@
       };
     }
     {
-      name = "nodemailer___nodemailer_6.7.1.tgz";
+      name = "nodemailer___nodemailer_6.7.2.tgz";
       path = fetchurl {
-        name = "nodemailer___nodemailer_6.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.7.1.tgz";
-        sha1 = "09f72f8b375f7b259291757007bcd902c0174c6e";
+        name = "nodemailer___nodemailer_6.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.7.2.tgz";
+        sha1 = "44b2ad5f7ed71b7067f7a21c4fedabaec62b85e0";
       };
     }
     {
@@ -5410,11 +5410,11 @@
       };
     }
     {
-      name = "object_inspect___object_inspect_1.11.0.tgz";
+      name = "object_inspect___object_inspect_1.11.1.tgz";
       path = fetchurl {
-        name = "object_inspect___object_inspect_1.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz";
-        sha1 = "9dceb146cedd4148a0d9e51ab88d34cf509922b1";
+        name = "object_inspect___object_inspect_1.11.1.tgz";
+        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.1.tgz";
+        sha1 = "d4bd7d7de54b9a75599f59a00bd698c1f1c6549b";
       };
     }
     {
@@ -6058,11 +6058,11 @@
       };
     }
     {
-      name = "plivo___plivo_4.23.1.tgz";
+      name = "plivo___plivo_4.25.0.tgz";
       path = fetchurl {
-        name = "plivo___plivo_4.23.1.tgz";
-        url  = "https://registry.yarnpkg.com/plivo/-/plivo-4.23.1.tgz";
-        sha1 = "bbc680db39a2c539288ae317fcb19dcdf00edcac";
+        name = "plivo___plivo_4.25.0.tgz";
+        url  = "https://registry.yarnpkg.com/plivo/-/plivo-4.25.0.tgz";
+        sha1 = "ba496e0e75dcbe5747d5770e6e07fd9eb153d7dd";
       };
     }
     {
@@ -6258,11 +6258,11 @@
       };
     }
     {
-      name = "qs___qs_6.10.1.tgz";
+      name = "qs___qs_6.10.2.tgz";
       path = fetchurl {
-        name = "qs___qs_6.10.1.tgz";
-        url  = "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz";
-        sha1 = "4931482fa8d647a5aab799c5271d2133b981fb6a";
+        name = "qs___qs_6.10.2.tgz";
+        url  = "https://registry.yarnpkg.com/qs/-/qs-6.10.2.tgz";
+        sha1 = "c1431bea37fc5b24c5bdbafa20f16bdf2a4b9ffe";
       };
     }
     {
@@ -6962,11 +6962,11 @@
       };
     }
     {
-      name = "signal_exit___signal_exit_3.0.5.tgz";
+      name = "signal_exit___signal_exit_3.0.6.tgz";
       path = fetchurl {
-        name = "signal_exit___signal_exit_3.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz";
-        sha1 = "9e3e8cc0c75a99472b44321033a7702e7738252f";
+        name = "signal_exit___signal_exit_3.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz";
+        sha1 = "24e630c4b0f03fea446a2bd299e62b4a6ca8d0af";
       };
     }
     {
@@ -7306,11 +7306,11 @@
       };
     }
     {
-      name = "strnum___strnum_1.0.4.tgz";
+      name = "strnum___strnum_1.0.5.tgz";
       path = fetchurl {
-        name = "strnum___strnum_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/strnum/-/strnum-1.0.4.tgz";
-        sha1 = "e97e36a7d6ba9f93d0d6b496b2ed0678d422832b";
+        name = "strnum___strnum_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz";
+        sha1 = "5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db";
       };
     }
     {
@@ -7386,6 +7386,14 @@
       };
     }
     {
+      name = "telnyx___telnyx_1.23.0.tgz";
+      path = fetchurl {
+        name = "telnyx___telnyx_1.23.0.tgz";
+        url  = "https://registry.yarnpkg.com/telnyx/-/telnyx-1.23.0.tgz";
+        sha1 = "0d949a11f7c819b0d5ce8ae8c36b80bd02e351c8";
+      };
+    }
+    {
       name = "temp_path___temp_path_1.0.0.tgz";
       path = fetchurl {
         name = "temp_path___temp_path_1.0.0.tgz";
@@ -7610,11 +7618,19 @@
       };
     }
     {
-      name = "twilio___twilio_3.71.1.tgz";
+      name = "tweetnacl___tweetnacl_1.0.3.tgz";
+      path = fetchurl {
+        name = "tweetnacl___tweetnacl_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz";
+        sha1 = "ac0af71680458d8a6378d0d0d050ab1407d35596";
+      };
+    }
+    {
+      name = "twilio___twilio_3.71.3.tgz";
       path = fetchurl {
-        name = "twilio___twilio_3.71.1.tgz";
-        url  = "https://registry.yarnpkg.com/twilio/-/twilio-3.71.1.tgz";
-        sha1 = "15bbb4b51c75d91cc07a8149378c4af330e543cc";
+        name = "twilio___twilio_3.71.3.tgz";
+        url  = "https://registry.yarnpkg.com/twilio/-/twilio-3.71.3.tgz";
+        sha1 = "a446d2b49f8c1ed60b0dd830c919921358c17203";
       };
     }
     {
@@ -7650,11 +7666,11 @@
       };
     }
     {
-      name = "uglify_js___uglify_js_3.14.3.tgz";
+      name = "uglify_js___uglify_js_3.14.4.tgz";
       path = fetchurl {
-        name = "uglify_js___uglify_js_3.14.3.tgz";
-        url  = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.3.tgz";
-        sha1 = "c0f25dfea1e8e5323eccf59610be08b6043c15cf";
+        name = "uglify_js___uglify_js_3.14.4.tgz";
+        url  = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.4.tgz";
+        sha1 = "68756f17d1b90b9d289341736cb9a567d6882f90";
       };
     }
     {
@@ -8210,19 +8226,19 @@
       };
     }
     {
-      name = "ws___ws_7.5.5.tgz";
+      name = "ws___ws_7.5.6.tgz";
       path = fetchurl {
-        name = "ws___ws_7.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-7.5.5.tgz";
-        sha1 = "8b4bc4af518cfabd0473ae4f99144287b33eb881";
+        name = "ws___ws_7.5.6.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz";
+        sha1 = "e59fc509fb15ddfb65487ee9765c5a51dec5fe7b";
       };
     }
     {
-      name = "ws___ws_8.2.3.tgz";
+      name = "ws___ws_8.3.0.tgz";
       path = fetchurl {
-        name = "ws___ws_8.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz";
-        sha1 = "63a56456db1b04367d0b721a0b80cae6d8becbba";
+        name = "ws___ws_8.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-8.3.0.tgz";
+        sha1 = "7185e252c8973a60d57170175ff55fdbd116070d";
       };
     }
     {
diff --git a/pkgs/tools/admin/procs/default.nix b/pkgs/tools/admin/procs/default.nix
index 1510226d45bee..7f4068afca19e 100644
--- a/pkgs/tools/admin/procs/default.nix
+++ b/pkgs/tools/admin/procs/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "procs";
-  version = "0.11.10";
+  version = "0.11.13";
 
   src = fetchFromGitHub {
     owner = "dalance";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-kt1qv4x48qXzlqvV2nfFXkYzgeC4m+rA7NA+coznNno=";
+    sha256 = "sha256-OgV4iqtGpia8l+GCySDD+aRIk1mNnJCB0OqZzITTj2I=";
   };
 
-  cargoSha256 = "sha256-itncLfIjNwwAO393gZ5xyRnig/N0JEovBQvOIAC4e9g=";
+  cargoSha256 = "sha256-d5GsCzigR5A1pJnvs6rjqMJqUB+H52Gaa1SzkHK5X+Y=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -29,6 +29,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dalance/procs";
     changelog = "https://github.com/dalance/procs/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ dalance Br1ght0ne ];
+    maintainers = with maintainers; [ dalance Br1ght0ne SuperSandro2000 ];
   };
 }
diff --git a/pkgs/tools/admin/pulumi/data.nix b/pkgs/tools/admin/pulumi/data.nix
index 568ff7292f082..0786f5b017a51 100644
--- a/pkgs/tools/admin/pulumi/data.nix
+++ b/pkgs/tools/admin/pulumi/data.nix
@@ -1,392 +1,392 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "3.17.1";
+  version = "3.19.0";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.17.1-linux-x64.tar.gz";
-        sha256 = "1npm5jv0wcylidirxgfxxmp21mv1r6xl2lz9x0hdjmrs2cr1kmrf";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.19.0-linux-x64.tar.gz";
+        sha256 = "12q3zhwpy8hrg8ivihzqac82xpgj216nscfz66rwhys1aajdvlih";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.6.0-linux-amd64.tar.gz";
-        sha256 = "198m5fdppwzpqr30vpvpl8sjx90rng8q8cxvrbvaj179jnfg3bm2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.10.1-linux-amd64.tar.gz";
+        sha256 = "0hl67xg538arbn7p7qqlx6my9c1ql1q62azwiivrjpj81pfkvx76";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.4.0-linux-amd64.tar.gz";
-        sha256 = "0wzbwpnnjm8lnph6kh2nrb0ns2v4y70sp10pp9qnwhcxggqjpb5r";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.7.0-linux-amd64.tar.gz";
+        sha256 = "1xw8yq4q7d727zqyvc6lfrlf1pl4j0wzmcx5r3gqgv5p44w858vm";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.3.0-linux-amd64.tar.gz";
         sha256 = "05nfdwgfzi5f3hgj2g6dccaidqf9a9xzlv5vp3cd1rsxd159yk9j";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.3.0-linux-amd64.tar.gz";
-        sha256 = "0mckcwyngxiv46khvchaxdylcgk82b5j5hlfjiky5qg60bic4gnr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.29.0-linux-amd64.tar.gz";
+        sha256 = "1y5qspns2zab5k1ajkqkh48li0mvyz1wxjx5svdrzca89bnz63rq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-linux-amd64.tar.gz";
-        sha256 = "1ixmsxawp0qbyjs37c74gcvj2icpbda6znl17yp9bhiyvnrdvxn7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.0-linux-amd64.tar.gz";
+        sha256 = "1f21pz6v6bkx5vb02g113l97q5gw9aj459klq4dc9j75mgfdzvfz";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.2.0-linux-amd64.tar.gz";
-        sha256 = "0d88xfi7zzmpyrnvakwxsyavdx6d5hmfrcf4jhmd53mni0m0551l";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.0.0-linux-amd64.tar.gz";
+        sha256 = "1p21963qr8rdl5jp7f05j02yq0ab3flybvzjn7xadcl7m85mkyxh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.1.0-linux-amd64.tar.gz";
-        sha256 = "1rv6l82b1v44fa685dqq7ivsr1y4xaqln0mqd9hyqnajkb2761d5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.4.0-linux-amd64.tar.gz";
+        sha256 = "14kz4ywhwb0lcsf3nbr9c884x83jdlbxmcg3g9jaq7r739fawpi9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.5.0-linux-amd64.tar.gz";
-        sha256 = "00qvwqynyyj72lp41c4calxx53ckf2dg0cpn9s7sr9alvnffvwzp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.30.0-linux-amd64.tar.gz";
+        sha256 = "1brn2xfvjds5vfpy08r9syss723jw2whn82c8jsfggzfr978i2xh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.0.0-linux-amd64.tar.gz";
-        sha256 = "1p21963qr8rdl5jp7f05j02yq0ab3flybvzjn7xadcl7m85mkyxh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-linux-amd64.tar.gz";
+        sha256 = "1ixmsxawp0qbyjs37c74gcvj2icpbda6znl17yp9bhiyvnrdvxn7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-linux-amd64.tar.gz";
-        sha256 = "0lj01hyjyq3qazkryvvxkx6nwai3bac9shqxb6hcqv4pfdjzzxhr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.4.0-linux-amd64.tar.gz";
+        sha256 = "0wzbwpnnjm8lnph6kh2nrb0ns2v4y70sp10pp9qnwhcxggqjpb5r";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.0.1-linux-amd64.tar.gz";
-        sha256 = "0xrq4ffkaa0z5w2g7b9fdll3sh8wpzd6fg0xay7hfzjnl65dl3mp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.3.0-linux-amd64.tar.gz";
+        sha256 = "0nri27c71kf3pjivd0w9ymkl4rn39flh5n2rphi4gn6v4kfb1192";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.26.0-linux-amd64.tar.gz";
-        sha256 = "1rzwgfz2ikbcjp99yiiai2cqawk80xhwrc7335fylifrvl3wsqis";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.6.0-linux-amd64.tar.gz";
+        sha256 = "1z43qiwyh9ql1kkmdxxnlbsimfihlr8iby93kzipf62wg9y9ag3b";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.3.0-linux-amd64.tar.gz";
-        sha256 = "0nri27c71kf3pjivd0w9ymkl4rn39flh5n2rphi4gn6v4kfb1192";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.7.0-linux-amd64.tar.gz";
+        sha256 = "195259nlcpwl84kl7bf8k4das4444kc3pigv9jzz9z4cynpdqqp4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.26.0-linux-amd64.tar.gz";
-        sha256 = "0pd1a2xhhhxyb2sblq474hrwrm18k2dh4c20r3b2xqz77l25nzig";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.4.0-linux-amd64.tar.gz";
+        sha256 = "0cn25lrd9f8x7ygaq2074dqv59hh71mfprzjpscl8l7zz3ssh8y9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-packet-v3.2.2-linux-amd64.tar.gz";
-        sha256 = "0glbjhgrb2hiyhd6kwmy7v384j8zw641pw9737g1fczv3x16a3s3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-linux-amd64.tar.gz";
+        sha256 = "0ffqah4anhdacmfb8n3hdq17jhqq0qclc0l0cq77hvhvgn39yy4r";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.8.0-linux-amd64.tar.gz";
-        sha256 = "0dc96mvy76i0d70jp8gln14cwzsgdxccyhrxrcf3kq38j4vf3bl1";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.10.0-linux-amd64.tar.gz";
+        sha256 = "19y5gm5s7ps0cwdv8j7lnlx1r4c94qf6cdc28z725wpyyq1grc38";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v4.6.0-linux-amd64.tar.gz";
-        sha256 = "1536pz40m4a34swjxpy7vw7xik6jqfspwdnn2z49n8a42y691cd9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-packet-v3.2.2-linux-amd64.tar.gz";
+        sha256 = "0glbjhgrb2hiyhd6kwmy7v384j8zw641pw9737g1fczv3x16a3s3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.2.0-linux-amd64.tar.gz";
-        sha256 = "1h5159y7xlslnijs8lpi4vqgvj2px6whxk9m17p9n7wiyqbmd5na";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.0-linux-amd64.tar.gz";
+        sha256 = "0w4604mgkq56ilr1k088piwkk676iwqwy2mync9di5iyig0cnrr1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.5.0-linux-amd64.tar.gz";
-        sha256 = "0xy6h16vdg55rc0qmhxc2r1hz3iv78iyjx4i5j6jmlcwpgrwdlii";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.3.0-linux-amd64.tar.gz";
+        sha256 = "1a2529yxrjj0gv89sbk74j1nrphwbbbl6x3hl3pv525xqg6j3r95";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.6.0-linux-amd64.tar.gz";
-        sha256 = "151bw127nxl5bdyqwbvkg0i8fi6060n8yn2skdb95s9p7f1b1fvp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-linux-amd64.tar.gz";
+        sha256 = "0lj01hyjyq3qazkryvvxkx6nwai3bac9shqxb6hcqv4pfdjzzxhr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.9.0-linux-amd64.tar.gz";
-        sha256 = "19rmwbizkhpxlwayd32hfk2dvz9mddkbg956ryckhfgfis6s3scr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.3.1-linux-amd64.tar.gz";
+        sha256 = "0kx0scva1r44ibfqjl7wwcy0fyywrmixdnx0c57fmf5qm2vlfr34";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-linux-amd64.tar.gz";
-        sha256 = "0ffqah4anhdacmfb8n3hdq17jhqq0qclc0l0cq77hvhvgn39yy4r";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.0.0-linux-amd64.tar.gz";
+        sha256 = "16y17hkzp6i3dqv3b41xkl05awkmhpki1bqnnwgl5318hbkvnwab";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.27.2-linux-amd64.tar.gz";
-        sha256 = "0dngfi5yy01yngwl9x65b9w67zrihhkbccfsr989ygbzxs3gi9bj";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.1.0-linux-amd64.tar.gz";
+        sha256 = "0hl5liyga4iz7j3wy3qicx43d4mijnqayrnmpa5rws29lambgrql";
       }
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.17.1-darwin-x64.tar.gz";
-        sha256 = "0cn6zramx5hjwd9w3i0kfpzsdz0j9pskqx43yram6dh7w7vh3wxw";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.19.0-darwin-x64.tar.gz";
+        sha256 = "0sp519ks3glfpmdpmss4pnfnd41ab28k7lm74yl9g96980pcrypd";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.6.0-darwin-amd64.tar.gz";
-        sha256 = "0vh8gnmjkchz5245iwgb1slwahq7cw18g6x9fihyqzzlpz83lr7h";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.10.1-darwin-amd64.tar.gz";
+        sha256 = "0pqcra8fi3kfg1d6ndpbgmzd3przsxrnypa84vsr933x9cp1748l";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.4.0-darwin-amd64.tar.gz";
-        sha256 = "0p3zkgr557ngl6pjdidrp76b741nkdsw4s7wf1aj4mpw74fshm3g";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.7.0-darwin-amd64.tar.gz";
+        sha256 = "0pk15lbjnrq5ria8c6j8ygbq5gngmmb9g9c1sigfxp9iwlfbpa6k";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.3.0-darwin-amd64.tar.gz";
         sha256 = "0q19sh7l1mjl40i5vdsrjfldncxnicalmlgv3yjkw5xpxkgr98z0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.3.0-darwin-amd64.tar.gz";
-        sha256 = "04hhvakbrvjqzlhhacpb4syy6bz8qgkhqfl8339wjapsczy776j5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.29.0-darwin-amd64.tar.gz";
+        sha256 = "1c47ihgvz95r2dzd1s856l0bxh3myvqxmm2izjkpx9il7cqrf1rf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-darwin-amd64.tar.gz";
-        sha256 = "1dy4n03xvirg6fihiid786d88qlkyqkvk4fq6ggnxc92620x7342";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.0-darwin-amd64.tar.gz";
+        sha256 = "09hb618pjfz930i9f9vb5qw9im7c8fwrrz5gbpm37zaskamvx7cw";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.2.0-darwin-amd64.tar.gz";
-        sha256 = "12mkr0xczdnp21k0k7qn4r3swkaq3pr6v2z853p1db7ksz5kds23";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.0.0-darwin-amd64.tar.gz";
+        sha256 = "1idvdcmbbia0cwkw5v7zp7695p1a6sfmrgsfmzn0r9p8lyg66k8w";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.1.0-darwin-amd64.tar.gz";
-        sha256 = "04l07fqzf3fs7hj4giggzyjv9979qcpxrqbiapdjp7x4qsbsz0fv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.4.0-darwin-amd64.tar.gz";
+        sha256 = "15aj3vpafrb6hfrmi46pf6z3wj4y84dljsfzrvd6b5v0svmlr90d";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.5.0-darwin-amd64.tar.gz";
-        sha256 = "09biqsrcd4h01m6dkfdgb2gnly229ci8a0sd2rr1m75j749ijfh7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.30.0-darwin-amd64.tar.gz";
+        sha256 = "050iqf2fls9r81kq5rimnh41gs8pp29scx31l8i2ff0bq5gvbg3h";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.0.0-darwin-amd64.tar.gz";
-        sha256 = "1idvdcmbbia0cwkw5v7zp7695p1a6sfmrgsfmzn0r9p8lyg66k8w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-darwin-amd64.tar.gz";
+        sha256 = "1dy4n03xvirg6fihiid786d88qlkyqkvk4fq6ggnxc92620x7342";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-darwin-amd64.tar.gz";
-        sha256 = "0fhhc2k0g8mpxzcgci4jl3m59q3n8w3nka94l0n7r9cvs81099n6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.4.0-darwin-amd64.tar.gz";
+        sha256 = "0p3zkgr557ngl6pjdidrp76b741nkdsw4s7wf1aj4mpw74fshm3g";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.0.1-darwin-amd64.tar.gz";
-        sha256 = "1qb2gaiinclmbswyn5aakwjmm3gaggscckb1q2syx69k42hvp3s3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.3.0-darwin-amd64.tar.gz";
+        sha256 = "06s58xlwm3wf7895bzsqx4jsfb0kbxanzlaf21jff45y62nk1f1p";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.26.0-darwin-amd64.tar.gz";
-        sha256 = "03ccnifs1maxnr7qnqw1mn3lc7x2c06icbc9m9j218bx16lwf8jq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.6.0-darwin-amd64.tar.gz";
+        sha256 = "0x74zlpzy1ajc9y0jkj32vhn4yn2rhldapdn0zlky7ss844a2gfk";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.3.0-darwin-amd64.tar.gz";
-        sha256 = "06s58xlwm3wf7895bzsqx4jsfb0kbxanzlaf21jff45y62nk1f1p";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.7.0-darwin-amd64.tar.gz";
+        sha256 = "0rggsafqsby8jy905xj0f6m75f2n0mf2z2wcjrsns3fcgcw322q1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.26.0-darwin-amd64.tar.gz";
-        sha256 = "1f06x2h4i15vjzjyzcl5f01by2639hsfij2daayj5xiji3b415ps";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.4.0-darwin-amd64.tar.gz";
+        sha256 = "1pmkwii8bsrr5k3lm0j2hr2fpzrcrwbbfisygr49w5cngx44k5sa";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-packet-v3.2.2-darwin-amd64.tar.gz";
-        sha256 = "0621njipng32x43lw8n49mapq10lnvibg8vlvgciqsfvrbpz1yp5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-darwin-amd64.tar.gz";
+        sha256 = "0j8ysk4wh78xhk3nv6c1dvvyw5ihs7amwlyqicch52yc6jq3v5a6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.8.0-darwin-amd64.tar.gz";
-        sha256 = "1lfai2xd9538cq89b4jg85hj0slnvbwndd24y2g2q9h5qla08cx2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.10.0-darwin-amd64.tar.gz";
+        sha256 = "115lcaqkliaxqg27hb1j773299kgs44d3l7p2da9kzla3sk7dps0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v4.6.0-darwin-amd64.tar.gz";
-        sha256 = "05adn2mnfrhnqvq4cngsvjg489339azzsf6bzd9qj24qqwm9x5v3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-packet-v3.2.2-darwin-amd64.tar.gz";
+        sha256 = "0621njipng32x43lw8n49mapq10lnvibg8vlvgciqsfvrbpz1yp5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.2.0-darwin-amd64.tar.gz";
-        sha256 = "0r2ykjwam5m2mfiibhq993s8n5pzmks837cwb57jwgwx8lc3ra4x";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.0-darwin-amd64.tar.gz";
+        sha256 = "03f0k13qyi40hvhkfnwrdadxv5r1r2jphrf49nq81l35knqvs7fs";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.5.0-darwin-amd64.tar.gz";
-        sha256 = "144wz00hcd6zbybm0b7gqy8by3nnszf3885znvsichig23p1h76c";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.3.0-darwin-amd64.tar.gz";
+        sha256 = "1vdfvybqnvd0s8ln6340608vg00l2zhsndg8r03js57a5asmakyf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.6.0-darwin-amd64.tar.gz";
-        sha256 = "183y60zvh2i20a3wg7yl1dm6bkpka0y6plnmb8746x7v9j5g4xlr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-darwin-amd64.tar.gz";
+        sha256 = "0fhhc2k0g8mpxzcgci4jl3m59q3n8w3nka94l0n7r9cvs81099n6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.9.0-darwin-amd64.tar.gz";
-        sha256 = "148wdcdmip8rlh61clhcg44rk1kmvc15dkga1nhp8ngzry1f7lf2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.3.1-darwin-amd64.tar.gz";
+        sha256 = "0bdhzbhzjdypf5xr756wx061myml9w765zmff7k7pw438hpzln2p";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-darwin-amd64.tar.gz";
-        sha256 = "0j8ysk4wh78xhk3nv6c1dvvyw5ihs7amwlyqicch52yc6jq3v5a6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.0.0-darwin-amd64.tar.gz";
+        sha256 = "0wry626g455r4lp8cfhjlg2zqwbgvbm2pk1qf9kwsisg1fszpq7a";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.27.2-darwin-amd64.tar.gz";
-        sha256 = "0ki3wq879ya82slmz75r6g4hzm4nmmgnwm3pjbhmls09irn46wc3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.1.0-darwin-amd64.tar.gz";
+        sha256 = "1wkyjxgrp3llvis3yjdnw65chscmxxcwigkr71i2crj28db8fhwx";
       }
     ];
     aarch64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.17.1-linux-arm64.tar.gz";
-        sha256 = "1gwcrbwwmclxsviqmqb9q1swg4kz2463p42939vlv2r09lwpfvmi";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.19.0-linux-arm64.tar.gz";
+        sha256 = "1s0k743s7b6d2dccbia8909h7a7xjr8526h3ywkncqxam1gfjjlv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.6.0-linux-arm64.tar.gz";
-        sha256 = "0f2frlkcai1489amas1yglpckwwz93acq1xllv88s2j1l6sab5vd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.10.1-linux-arm64.tar.gz";
+        sha256 = "1zcpqjlgpkjzk2bdy8gcnhpfgzadc7r8z2vb5xc4vvf5q3q25sxy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.4.0-linux-arm64.tar.gz";
-        sha256 = "1hiqcy51ag4y8j47di5h07mnplrhpc5f406ab6car2c06fwr2wdn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.7.0-linux-arm64.tar.gz";
+        sha256 = "07j1gbmmciw9nyy4khhcfj8ayb91pwgrvghwr2i67f9prs570a79";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.3.0-linux-arm64.tar.gz";
         sha256 = "0j2c23ii4dn9yhpw6nymij65gv82y1xp4gi8lgxxf41b1i9bpb2i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.3.0-linux-arm64.tar.gz";
-        sha256 = "1hxaz0m33vf92d1vwksmib5lnpl57yrh8nf90nqmmzvjzajkzzbl";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.29.0-linux-arm64.tar.gz";
+        sha256 = "1fr593m1g2y3k8qw1j20ssv2jd3c5m3cr6h4p5v6fng2ph3m3v7i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-linux-arm64.tar.gz";
-        sha256 = "12iv8vjnal2ym70rxmdnvi02x6md7fxi8jbzhzfw526pzqs1dc47";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.0-linux-arm64.tar.gz";
+        sha256 = "1m5gnc0a6svhzd27z0m151pzws6n3vsgj8bha7jl77znzxqrlxz1";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.2.0-linux-arm64.tar.gz";
-        sha256 = "1l7zpvacq6kyzj8n82drs9gdfa16k4j945w8nsd0z33byrswxr3w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.0.0-linux-arm64.tar.gz";
+        sha256 = "0k4yi9xqrmd5m99lr27h672ycwyh138d9jhh3wvgpmnjpdxy28jm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.1.0-linux-arm64.tar.gz";
-        sha256 = "175bqcamkd2illd57gkycsfh5kyjw700g7phjsg057jij3cdfsr8";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.4.0-linux-arm64.tar.gz";
+        sha256 = "06ii12cl7wsfs9pwjkwz01szacg686vfzc6i253l6xvmmiqp6q0j";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.5.0-linux-arm64.tar.gz";
-        sha256 = "1lz5dm1sgnydyi3rjp33y1lvs8wmy9lg0n71niibh1k4ppqbwm2m";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.30.0-linux-arm64.tar.gz";
+        sha256 = "02whsgdx0cd8nblfjgymsay9vyfmv8aah2y5nqkl7c6dzrlqllav";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.0.0-linux-arm64.tar.gz";
-        sha256 = "0k4yi9xqrmd5m99lr27h672ycwyh138d9jhh3wvgpmnjpdxy28jm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-linux-arm64.tar.gz";
+        sha256 = "12iv8vjnal2ym70rxmdnvi02x6md7fxi8jbzhzfw526pzqs1dc47";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-linux-arm64.tar.gz";
-        sha256 = "17iaf72dzy108v1njan21n72a5gzxbycq396hjh293a141kppn1m";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.4.0-linux-arm64.tar.gz";
+        sha256 = "1hiqcy51ag4y8j47di5h07mnplrhpc5f406ab6car2c06fwr2wdn";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.0.1-linux-arm64.tar.gz";
-        sha256 = "03z7b32l2jp1si13qy2rjvkjw789sqaypza7q2k4vhwaxyiw715z";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.3.0-linux-arm64.tar.gz";
+        sha256 = "14v7wm2gkhd064drw2l894dacdsm5lnndii5qzl5hsl6p9a5m970";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.26.0-linux-arm64.tar.gz";
-        sha256 = "1v5b5bwpzmr124xblrrr0rl0zbvky8ljcilyh0fmjgrmai25zbz2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.6.0-linux-arm64.tar.gz";
+        sha256 = "0rp8qfrm3kgmr19ryg259m3n48wf5fyyff1bvnjinivq5irvl4j9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.3.0-linux-arm64.tar.gz";
-        sha256 = "14v7wm2gkhd064drw2l894dacdsm5lnndii5qzl5hsl6p9a5m970";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.7.0-linux-arm64.tar.gz";
+        sha256 = "0al7hrf3ymsq0h611j4f5i8k94rr19i44ym1gschmn7byn0v3ksa";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.26.0-linux-arm64.tar.gz";
-        sha256 = "0vjdl01ggnf3hj0ak3dak5828d8cj8x05ny9hsii2cqdphxybsj4";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.4.0-linux-arm64.tar.gz";
+        sha256 = "0sfnic280p76d2aa635h1jgjx5lbf1fgm6bkrvq5nx6i5x9vy05x";
       }
-      # pulumi-resource-packet skipped (does not exist on remote)
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.8.0-linux-arm64.tar.gz";
-        sha256 = "0hq4l91ynjk5qzqcwvzqpd978wikqdx6lxngrawdkk501y0yh6f6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-linux-arm64.tar.gz";
+        sha256 = "1lh1g90ab4blqmvx0yfp516hfsd6n1y751ab7fzhv7hcajf3klvi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v4.6.0-linux-arm64.tar.gz";
-        sha256 = "042mdf4l3nb8prialq8isr4iizsq7cjsz001ycshqs21j60kq0dq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.10.0-linux-arm64.tar.gz";
+        sha256 = "1hik4456fdln7hxiw02856v02v0m33zsyiad40c9wg4n772ybchy";
       }
+      # pulumi-resource-packet skipped (does not exist on remote)
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.2.0-linux-arm64.tar.gz";
-        sha256 = "1sc8rf930cz6nkyhqn6p0h7450iqzdsrlw2smhp8yyjjvcjmsksf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.0-linux-arm64.tar.gz";
+        sha256 = "1cz42cbvx4nah5jj712rf1r8r6p35ip6xl1kjgvxlrr23kq5vdjk";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.5.0-linux-arm64.tar.gz";
-        sha256 = "0ybxnskqxry9nbv9y02rqszlykcrihmlpa275s09ypbw3bibrjya";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.3.0-linux-arm64.tar.gz";
+        sha256 = "06pag44k2rg5dhq2x0xrcqs365p49f9fkbp78rb8k31skvlc27jh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.6.0-linux-arm64.tar.gz";
-        sha256 = "1jdjvx123qwd4mncnzms1ps55041ad5wl8ijr5qfay1yjphy4zn8";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-linux-arm64.tar.gz";
+        sha256 = "17iaf72dzy108v1njan21n72a5gzxbycq396hjh293a141kppn1m";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.9.0-linux-arm64.tar.gz";
-        sha256 = "10p015rhp9dsxcwp0a0k3xvkphya8vji4ndv66z73jzr6z3vfqzm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.3.1-linux-arm64.tar.gz";
+        sha256 = "13p2gg9ihwkyx35r7ilkp56qrrj4kcg4x1v8gspsbbahb9cbagvk";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-linux-arm64.tar.gz";
-        sha256 = "1lh1g90ab4blqmvx0yfp516hfsd6n1y751ab7fzhv7hcajf3klvi";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.0.0-linux-arm64.tar.gz";
+        sha256 = "01rxaqzb72y56cwah90ypgrlg8jlajvyb7n6cakhvnn98nb281fi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.27.2-linux-arm64.tar.gz";
-        sha256 = "0zgiaksn6x924g8lwcczfg8sm3jm747s4s6gbxv97p4cby4diw6m";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.1.0-linux-arm64.tar.gz";
+        sha256 = "1f7h6xl3jk9y29ffjxv9r4a748fwip17x7pazs62zwc3h10a65ac";
       }
     ];
     aarch64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.17.1-darwin-arm64.tar.gz";
-        sha256 = "0xl5191acq12ixd4dpcrg5d32dp43qfbj5m2k0q78nsq8p85y772";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.19.0-darwin-arm64.tar.gz";
+        sha256 = "097sqsm53wdal1vnklqcxz8ys95w5ffw0n2gcx5rrgcld3fnrrc6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.6.0-darwin-arm64.tar.gz";
-        sha256 = "0bjpzd81913p6bgcq4al0prnaa66ag3h9v832cvnksm128n5yqmz";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.10.1-darwin-arm64.tar.gz";
+        sha256 = "1laqs75i8fnzg7zzf3v73xxvg1k4n5qazays1wh6id3wamx5mgk4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.4.0-darwin-arm64.tar.gz";
-        sha256 = "18ggnqx9zh8kl5h6nn2sa4zxvyby9pvscrvqnsam2l9yjv86r7i0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.7.0-darwin-arm64.tar.gz";
+        sha256 = "12xnw6gp38dfgc6qvxbipbsv7yqidjazrzjj40aaknk5cqgr0b0f";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.3.0-darwin-arm64.tar.gz";
         sha256 = "1i5ipmidg0yspayxyglbjaihajhj1bsk46saxkncfrkvqnh4iq50";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.3.0-darwin-arm64.tar.gz";
-        sha256 = "09vllijaql7141h0dw3p5ikvv4kp0mzfl5f0n7gd9d4pwl3q3yzv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.29.0-darwin-arm64.tar.gz";
+        sha256 = "0dz698vijizcrfrv4ss4qadxnmklxpz78bwgv4x4crvwr3hjlamr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-darwin-arm64.tar.gz";
-        sha256 = "0jrihnwfh5wvc95nipqv7ak77kq9xj0pk5hlapv9w2ls5pwykv0r";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.0-darwin-arm64.tar.gz";
+        sha256 = "1ziyhvjwkzq0wvxfxbprpprm8hcch75ifrij6fzlw3z0hxdd1bjf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.2.0-darwin-arm64.tar.gz";
-        sha256 = "1rmvc2kgjmb978sfmlga6xy4i0f629lk1l95i30wg0rmj1hx3dag";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.0.0-darwin-arm64.tar.gz";
+        sha256 = "0fsmmgq0hvzyrw6vrdf3pppxjcj94fxxp52dl73r4f5wjkays33c";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.1.0-darwin-arm64.tar.gz";
-        sha256 = "0wzi2mb6jqmzyww2pbdx7cysi0xn4hp74g5n0jyz3mw68s5fm7vf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.4.0-darwin-arm64.tar.gz";
+        sha256 = "0sgg8bnsi5yyfv8gwzy8jw3f0fmkvizrgzh4jyc802qqc449p1ix";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.5.0-darwin-arm64.tar.gz";
-        sha256 = "1y77wjr7mpkf3vvqvp37bcdaci31bsjngg0kcsdwsqn93xs59vww";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.30.0-darwin-arm64.tar.gz";
+        sha256 = "11bhs20hpmgcyvpha8pbg8gd9v2r1fahjsaiif5fdx9dvpqmnsmi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.0.0-darwin-arm64.tar.gz";
-        sha256 = "0fsmmgq0hvzyrw6vrdf3pppxjcj94fxxp52dl73r4f5wjkays33c";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-darwin-arm64.tar.gz";
+        sha256 = "0jrihnwfh5wvc95nipqv7ak77kq9xj0pk5hlapv9w2ls5pwykv0r";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-darwin-arm64.tar.gz";
-        sha256 = "0kym9f36h8b7s1smlmgazbzv8jjfpwxk6wv036bhx2xm3ysc7rgp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.4.0-darwin-arm64.tar.gz";
+        sha256 = "18ggnqx9zh8kl5h6nn2sa4zxvyby9pvscrvqnsam2l9yjv86r7i0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.0.1-darwin-arm64.tar.gz";
-        sha256 = "0ci3xnxnwrk6dds21yifis1mrz24z2nxqdbya0qpqprkq6syvx41";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.3.0-darwin-arm64.tar.gz";
+        sha256 = "0n60fk2nyb1idf4rdc61jxjpzpw4v9106gwn6r1by10g8f1712yr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.26.0-darwin-arm64.tar.gz";
-        sha256 = "141mm2wa211gbs1kzqzq9ivjjz1bd93bb6vh9s28rz4z9ciaq44z";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.6.0-darwin-arm64.tar.gz";
+        sha256 = "1kg60sfa570k55p3fvqa952k1m17z9amr168m4lzqcdp63bfrzay";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.3.0-darwin-arm64.tar.gz";
-        sha256 = "0n60fk2nyb1idf4rdc61jxjpzpw4v9106gwn6r1by10g8f1712yr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.7.0-darwin-arm64.tar.gz";
+        sha256 = "13wxbpsqsh3prq6j12ih6cx6pcrfp97d0i5b7mk3d9imj3qdyf8x";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.26.0-darwin-arm64.tar.gz";
-        sha256 = "1lm26pinz7bjzv7bk22xq2qhyv5a4v7x7kwbl98sdv0gl1alj44f";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.4.0-darwin-arm64.tar.gz";
+        sha256 = "0830la5hb84nv077mlsymrhl4ny4j1xvmqlpvy4r5kldrx0h9pa8";
       }
-      # pulumi-resource-packet skipped (does not exist on remote)
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.8.0-darwin-arm64.tar.gz";
-        sha256 = "1w78lqdf4ynfhl5h0bzxmvqnf4s59mflbdlbqhxq78qxwwq4v193";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-darwin-arm64.tar.gz";
+        sha256 = "1z0gd0fagv55dl3ki340h0ljw7dqj8818w4072pc5xxy5id90gb0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v4.6.0-darwin-arm64.tar.gz";
-        sha256 = "0vh64l3pxg76gxxjg9gsy2jd9zjg6yjr1vx343y7f2g9p0pbir29";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.10.0-darwin-arm64.tar.gz";
+        sha256 = "1agi0dpck35rqsvxikdcl6xl2fpha2l4144mzgyslki4q86rqmhs";
       }
+      # pulumi-resource-packet skipped (does not exist on remote)
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.2.0-darwin-arm64.tar.gz";
-        sha256 = "1c3pchbnk6dsnxsl02ypq7s4mmkxdgxszdhql1klpx5js7i1lv8k";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-equinix-metal-v3.2.0-darwin-arm64.tar.gz";
+        sha256 = "1hinrhq950ah3ngszm2d9hn6i327lxfl0f9d83nxiknzpw395glw";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v3.5.0-darwin-arm64.tar.gz";
-        sha256 = "0wkppnwmij7sy8iwdg9q9aknwckh90ybxpdqpr5brz9ay1svqjix";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.3.0-darwin-arm64.tar.gz";
+        sha256 = "094zffj64rymjcgncbxwkdh6vp7g8s6f1nync9066jh29qzll6mf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.6.0-darwin-arm64.tar.gz";
-        sha256 = "0h06wgmjqqvhsl7arx7k7q0mi9i484fj7bxbh4wvkjgxlhnm93ls";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-darwin-arm64.tar.gz";
+        sha256 = "0kym9f36h8b7s1smlmgazbzv8jjfpwxk6wv036bhx2xm3ysc7rgp";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.9.0-darwin-arm64.tar.gz";
-        sha256 = "07ldq1anzrznan2a1x1igmgljfh6dx12cypggcyma7axiqj95ww1";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.3.1-darwin-arm64.tar.gz";
+        sha256 = "1qixa4vsak042vxqv7xsggvdcqyfs8sl10hnf3chdx2xwspm8hjy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.1.0-darwin-arm64.tar.gz";
-        sha256 = "1z0gd0fagv55dl3ki340h0ljw7dqj8818w4072pc5xxy5id90gb0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.0.0-darwin-arm64.tar.gz";
+        sha256 = "0lh4b6z75yg7zss59bfwmsp2dfryk867845jw5655g7ya15n99da";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.27.2-darwin-arm64.tar.gz";
-        sha256 = "0l8x9b3np0cwk606621vx2c3k7a67hr7022jfdmaa5ajm44fn4ai";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v4.1.0-darwin-arm64.tar.gz";
+        sha256 = "1915f5d24vfrwgzvs5nkj5p05fjgqjyxpm54ym2wshl9s4fjb6sp";
       }
     ];
   };
diff --git a/pkgs/tools/admin/pulumi/update.sh b/pkgs/tools/admin/pulumi/update.sh
index dcd4fd1256dc6..051cf4c90b000 100755
--- a/pkgs/tools/admin/pulumi/update.sh
+++ b/pkgs/tools/admin/pulumi/update.sh
@@ -6,7 +6,7 @@ API_URL="https://api.github.com/repos/pulumi"
 
 # Version of Pulumi from
 # https://www.pulumi.com/docs/get-started/install/versions/
-VERSION="3.17.1"
+VERSION="3.19.0"
 
 # A hashmap containing a plugin's name and it's respective repository inside
 # Pulumi's Github organization
diff --git a/pkgs/tools/admin/salt/default.nix b/pkgs/tools/admin/salt/default.nix
index 9e411e1ae3a4b..6f7b86f044896 100644
--- a/pkgs/tools/admin/salt/default.nix
+++ b/pkgs/tools/admin/salt/default.nix
@@ -5,20 +5,36 @@
   # passing them in this array enables Salt to find them.
 , extraInputs ? []
 }:
-python3.pkgs.buildPythonApplication rec {
+
+let
+  py = python3.override {
+    packageOverrides = self: super: {
+      # Incompatible with pyzmq 22
+      pyzmq = super.pyzmq.overridePythonAttrs (oldAttrs: rec {
+        version = "21.0.2";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "CYwTxhmJE8KgaQI1+nTS5JFhdV9mtmO+rsiWUVVMx5w=";
+        };
+      });
+   };
+  };
+in
+py.pkgs.buildPythonApplication rec {
   pname = "salt";
-  version = "3003.3";
+  version = "3004";
 
-  src = python3.pkgs.fetchPypi {
+  src = py.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "pvnIyLXiYA6oYgtKZzcd4XYRvrT42X5LubCzCKN+0eI=";
+    sha256 = "PVNWG8huAU3KLsPcmBB5vgTVXqBHiQyr3iXlsQv6WxM=";
   };
 
-  propagatedBuildInputs = with python3.pkgs; [
+  propagatedBuildInputs = with py.pkgs; [
     distro
     jinja2
     markupsafe
     msgpack
+    psutil
     pycryptodomex
     pyyaml
     pyzmq
diff --git a/pkgs/tools/admin/scaleway-cli/default.nix b/pkgs/tools/admin/scaleway-cli/default.nix
index 2a8f0d1f1148f..2576208e8d221 100644
--- a/pkgs/tools/admin/scaleway-cli/default.nix
+++ b/pkgs/tools/admin/scaleway-cli/default.nix
@@ -1,18 +1,21 @@
-{ lib, fetchFromGitHub, buildGoPackage }:
+{ lib, fetchFromGitHub, buildGoModule }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "scaleway-cli";
-  version = "1.20";
-
-  goPackagePath = "github.com/scaleway/scaleway-cli";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "scaleway";
     repo = "scaleway-cli";
     rev = "v${version}";
-    sha256 = "14likzp3hl04nq9nmpmh9m5zqjyspy5cyk20dkh03c1nhkd4vcnx";
+    sha256 = "yYzcziEKPSiMvw9LWd60MkHmYFAvN7Qza6Z117NOOv0=";
   };
 
+  vendorSha256 = "0V9sHi/E095txnfF8YFW5O7o0e1H3sdn3tw5LqB92tI=";
+
+  # some tests require network access to scaleway's API, failing when sandboxed
+  doCheck = false;
+
   meta = with lib; {
     description = "Interact with Scaleway API from the command line";
     homepage = "https://github.com/scaleway/scaleway-cli";
diff --git a/pkgs/tools/admin/stripe-cli/default.nix b/pkgs/tools/admin/stripe-cli/default.nix
index ea3ccc8162f88..e843c0d347a0c 100644
--- a/pkgs/tools/admin/stripe-cli/default.nix
+++ b/pkgs/tools/admin/stripe-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "stripe-cli";
-  version = "1.7.4";
+  version = "1.7.9";
 
   src = fetchFromGitHub {
     owner = "stripe";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-2wiry3bBrxrhyyPT/81VpAS34XBZgZsz8Wlq8Qeybgk=";
+    sha256 = "sha256-rCo3iHLfiEH/+APNztKKSdoJerz161jF7sNx8qTFw3U=";
   };
 
-  vendorSha256 = "sha256-Lgd1vGXlZw0s4dVC0TlGEYoGOLrJPc/bZ75Mzke4rrg=";
+  vendorSha256 = "sha256-Duu6lP87KKLC1eGIebycBSIPw7FN6BBxPexize9+jPE=";
 
   subPackages = [
     "cmd/stripe"
diff --git a/pkgs/tools/admin/tigervnc/default.nix b/pkgs/tools/admin/tigervnc/default.nix
index 1ef584ec977f9..1824265b84af3 100644
--- a/pkgs/tools/admin/tigervnc/default.nix
+++ b/pkgs/tools/admin/tigervnc/default.nix
@@ -12,14 +12,14 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "1.11.0";
+  version = "1.12.0";
   pname = "tigervnc";
 
   src = fetchFromGitHub {
     owner = "TigerVNC";
     repo = "tigervnc";
     rev = "v${version}";
-    sha256 = "sha256-IX39oEhTyk7NV+9dD9mFtes22fBdMTAVIv5XkqFK560=";
+    sha256 = "sha256-77X+AvHFWfYYIio3c+EYf11jg/1IbYhNUweRIDHMOZw=";
   };
 
 
diff --git a/pkgs/tools/admin/tightvnc/default.nix b/pkgs/tools/admin/tightvnc/default.nix
index 0da2e7875f08f..e466b95c4f00a 100644
--- a/pkgs/tools/admin/tightvnc/default.nix
+++ b/pkgs/tools/admin/tightvnc/default.nix
@@ -82,5 +82,9 @@ stdenv.mkDerivation rec {
 
     maintainers = [];
     platforms = lib.platforms.unix;
+
+    knownVulnerabilities = [ "CVE-2021-42785" ];
+    # Unfortunately, upstream doesn't maintain the 1.3 branch anymore, and the
+    # new 2.x branch is substantially different (requiring either Windows or Java)
   };
 }
diff --git a/pkgs/tools/admin/trinsic-cli/default.nix b/pkgs/tools/admin/trinsic-cli/default.nix
new file mode 100644
index 0000000000000..fb129760dc2f1
--- /dev/null
+++ b/pkgs/tools/admin/trinsic-cli/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, rustPlatform, fetchurl, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "trinsic-cli";
+  version = "1.1.2";
+
+  src = fetchurl {
+    url = "https://github.com/trinsic-id/sdk/releases/download/v${version}/trinsic-cli-vendor-${version}.tar.gz";
+    sha256 = "7e5377e8460ebb1253b9974e02d0077ffc58f2b4712cf7896f1bef7e9f580cd4";
+  };
+
+  cargoVendorDir = "vendor";
+  doCheck = false;
+
+  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+
+  meta = with lib; {
+    description = "Trinsic CLI";
+    longDescription = ''
+      Command line interface for Trinsic Ecosystems
+    '';
+    homepage = "https://trinsic.id/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ tmarkovski ];
+  };
+}
diff --git a/pkgs/tools/admin/trivy/default.nix b/pkgs/tools/admin/trivy/default.nix
index 4330e11bce618..957ad7f51efcd 100644
--- a/pkgs/tools/admin/trivy/default.nix
+++ b/pkgs/tools/admin/trivy/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "trivy";
-  version = "0.21.0";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-weLzW1pyv9q9VKvFxno+f/L29wlpvxlVUZJUwx6Gn2A=";
+    sha256 = "sha256-DH4vr6WiGwzT9zTMs/UqVoCHhpOSoT5t8P9plTPt8ZQ=";
   };
 
-  vendorSha256 = "sha256-1kQ2m8gFBHKznbjNPtYN0BVrRbxyCs2H1f7+XZqgVvc=";
+  vendorSha256 = "sha256-1m3izHfxMUvUiz21NRjqdNS95sXf8Rwlu5TuQ411190=";
 
   excludedPackages = "misc";
 
@@ -24,7 +24,11 @@ buildGoModule rec {
     "-X main.version=v${version}"
   ];
 
+  # Tests requires network access
+  doCheck = false;
+
   doInstallCheck = true;
+
   installCheckPhase = ''
     runHook preInstallCheck
     $out/bin/trivy --help
diff --git a/pkgs/tools/admin/turbovnc/default.nix b/pkgs/tools/admin/turbovnc/default.nix
index c0af38e10f3b2..26916cc5598c8 100644
--- a/pkgs/tools/admin/turbovnc/default.nix
+++ b/pkgs/tools/admin/turbovnc/default.nix
@@ -22,13 +22,13 @@
 
 stdenv.mkDerivation rec {
   pname = "turbovnc";
-  version = "2.2.6";
+  version = "2.2.7";
 
   src = fetchFromGitHub {
     owner = "TurboVNC";
     repo = "turbovnc";
     rev = version;
-    sha256 = "sha256-HSppHPBBkTf+88ZBaYG6JK4A/5lOBCxPFv6898TD7PE=";
+    sha256 = "sha256-mEdatfTBx4nNmMTgv1Z+xefPFEiE2rCrsxyB7Dd03rg=";
   };
 
   # TODO:
diff --git a/pkgs/tools/admin/winbox/default.nix b/pkgs/tools/admin/winbox/default.nix
index c8595ee107268..38b7318746d02 100644
--- a/pkgs/tools/admin/winbox/default.nix
+++ b/pkgs/tools/admin/winbox/default.nix
@@ -14,15 +14,15 @@ let
   inherit (lib) last splitString;
 
   pname = "winbox";
-  version = "3.31";
+  version = "3.32";
   name = "${pname}-${version}";
 
   executable = fetchurl (if use64 then {
     url = "https://download.mikrotik.com/winbox/${version}/${pname}64.exe";
-    sha256 = "sha256-aE6RZ2bCYahxH5QWxBH4CJOjW9dbzibx8zQ4Z5652V4=";
+    sha256 = "1gf0zdn4ahfp08fn5w0nzigwldl3bjqcj2f08rcvyn0mbwar4znn";
   } else {
     url = "https://download.mikrotik.com/winbox/${version}/${pname}.exe";
-    sha256 = "sha256-yyKiU5xJlp/VQVYuX79pdCEve63yV3SUzi+/c915gAc=";
+    sha256 = "18rmbnv7iwba19sfh4q4wfwh385snrmpvs6dyad2s9rv7vh2nch7";
   });
   # This is from the winbox AUR package:
   # https://aur.archlinux.org/cgit/aur.git/tree/winbox64?h=winbox64&id=8edd93792af84e87592e8645ca09e9795931e60e
diff --git a/pkgs/tools/archivers/cpio/default.nix b/pkgs/tools/archivers/cpio/default.nix
index 1ae8de975a5e2..274fe0ac83267 100644
--- a/pkgs/tools/archivers/cpio/default.nix
+++ b/pkgs/tools/archivers/cpio/default.nix
@@ -30,6 +30,8 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  separateDebugInfo = true;
+
   preConfigure = lib.optionalString stdenv.isCygwin ''
     sed -i gnu/fpending.h -e 's,include <stdio_ext.h>,,'
   '';
diff --git a/pkgs/tools/archivers/tarlz/default.nix b/pkgs/tools/archivers/tarlz/default.nix
new file mode 100644
index 0000000000000..1e1842d2907e0
--- /dev/null
+++ b/pkgs/tools/archivers/tarlz/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchurl, lzip, lzlib, texinfo }:
+
+stdenv.mkDerivation rec {
+  pname = "tarlz";
+  version = "0.21";
+  outputs = [ "out" "man" "info" ];
+
+  nativeBuildInputs = [ lzip texinfo ];
+  buildInputs = [ lzlib ];
+
+  src = fetchurl {
+    url = "mirror://savannah/lzip/${pname}/${pname}-${version}.tar.lz";
+    sha256 = "sha256-D5chEt0/Emo5TVoEEHaVzLu55gPnsZM2e9FxRgfgrfQ=";
+  };
+
+  enableParallelBuilding = true;
+  makeFlags = [ "CXX:=$(CXX)" ];
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://www.nongnu.org/lzip/${pname}.html";
+    description =
+      "Massively parallel combined implementation of the tar archiver and the lzip compressor";
+    license = licenses.gpl2Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ehmry ];
+  };
+}
diff --git a/pkgs/tools/archivers/torrent7z/default.nix b/pkgs/tools/archivers/torrent7z/default.nix
new file mode 100644
index 0000000000000..74eaa4409f75b
--- /dev/null
+++ b/pkgs/tools/archivers/torrent7z/default.nix
@@ -0,0 +1,53 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, ncurses }:
+
+stdenv.mkDerivation rec {
+  pname = "torrent7z";
+  version = "1.3";
+
+  src = fetchFromGitHub {
+    owner = "BubblesInTheTub";
+    repo = pname;
+    rev = version;
+    sha256 = "Y2tr0+z9uij4Ifi6FfWRN24BwcDXUZKVLkLtKUiVjU4=";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "fix-gcc10-compilation.patch"; # Fix compilation on GCC 10. This patch is included on the latest commit
+      url =
+        "https://github.com/paulyc/torrent7z/commit/5958f42a364c430b3ed4ac68911bbbea1f967fc4.patch";
+      sha256 = "vJOv1sG9XwTvvxQiWew0H5ALoUb9wIAouzTsTvKHuPI=";
+    })
+  ];
+
+  buildInputs = [ ncurses ];
+
+  hardeningDisable = [ "format" ];
+
+  postPatch = ''
+    # Remove non-free RAR source code
+    # (see DOC/License.txt, https://fedoraproject.org/wiki/Licensing:Unrar)
+    rm -r linux_src/p7zip_4.65/CPP/7zip/Compress/Rar*
+    find . -name makefile'*' -exec sed -i '/Rar/d' {} +
+  '';
+
+  preConfigure = ''
+    mkdir linux_src/p7zip_4.65/bin
+    cd linux_src/p7zip_4.65/CPP/7zip/Bundles/Alone
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ../../../../bin/t7z $out/bin
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/BubblesInTheTub/torrent7z";
+    description = "A fork of torrent7z, viz a derivative of 7zip that produces invariant .7z archives for torrenting";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ cirno-999 ];
+    mainProgram = "t7z";
+    # RAR code is under non-free UnRAR license, but we remove it
+    license = licenses.gpl3Only;
+  };
+}
diff --git a/pkgs/tools/archivers/unrar/default.nix b/pkgs/tools/archivers/unrar/default.nix
index 25c8ce9b55864..b0c8a5b9ef6dd 100644
--- a/pkgs/tools/archivers/unrar/default.nix
+++ b/pkgs/tools/archivers/unrar/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "unrar";
-  version = "6.0.7";
+  version = "6.1.3";
 
   src = fetchurl {
     url = "https://www.rarlab.com/rar/unrarsrc-${version}.tar.gz";
-    sha256 = "sha256-pwKZQgBsvM7T87cyLsGXaD+Oe+QIlyyggJmxlsA49Rg=";
+    sha256 = "sha256-0FAiRCAJICp5LliL7FiSHBI/8Eb8dV9/InKHGlvXljY=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/archivers/wimlib/default.nix b/pkgs/tools/archivers/wimlib/default.nix
index cca62edfce6da..fa698c1d3e5ac 100644
--- a/pkgs/tools/archivers/wimlib/default.nix
+++ b/pkgs/tools/archivers/wimlib/default.nix
@@ -8,7 +8,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.13.4";
+  version = "1.13.5";
   pname = "wimlib";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://wimlib.net/downloads/${pname}-${version}.tar.gz";
-    sha256 = "sha256-S4fdCtnMGljO5XIa/ruYAR2rVJ5y8rVVM/MV8Isu3hI=";
+    sha256 = "sha256-MvzJ6bFEt8sdtMhuEEyngoPNwiXhP+grJzZgWGrv4yM=";
   };
 
   preBuild = ''
diff --git a/pkgs/tools/archivers/zpaq/default.upstream b/pkgs/tools/archivers/zpaq/default.upstream
deleted file mode 100644
index 84daee900cecd..0000000000000
--- a/pkgs/tools/archivers/zpaq/default.upstream
+++ /dev/null
@@ -1,6 +0,0 @@
-url http://mattmahoney.net/dc/zpaq.html
-version_link 'zpaq[0-9]+[.]zip'
-version "[^0-9]*([0-9]+)[^0-9]*" '\1'
-name zpaq
-attribute_name zpaq
-minimize_overwrite
diff --git a/pkgs/tools/archivers/zpaq/zpaqd.nix b/pkgs/tools/archivers/zpaq/zpaqd.nix
index c2f214ea2a624..1d674911f49ee 100644
--- a/pkgs/tools/archivers/zpaq/zpaqd.nix
+++ b/pkgs/tools/archivers/zpaq/zpaqd.nix
@@ -1,25 +1,17 @@
 { lib, stdenv, fetchurl, unzip }:
 
 let
-  # Generated upstream information
-  s = rec {
-    baseName="zpaqd";
-    version="715";
-    name="${baseName}-${version}";
-    hash="0868lynb45lm79yvx5f10lj5h6bfv0yck8whcls2j080vmk3n7rk";
-    url="http://mattmahoney.net/dc/zpaqd715.zip";
-    sha256="0868lynb45lm79yvx5f10lj5h6bfv0yck8whcls2j080vmk3n7rk";
-  };
-
   compileFlags = lib.concatStringsSep " " ([ "-O3" "-DNDEBUG" ]
     ++ lib.optional (stdenv.hostPlatform.isUnix) "-Dunix -pthread"
     ++ lib.optional (!stdenv.hostPlatform.isx86) "-DNOJIT");
 in
-stdenv.mkDerivation {
-  inherit (s) name version;
+stdenv.mkDerivation rec {
+  pname = "zpaqd";
+  version = "715";
 
   src = fetchurl {
-    inherit (s) url sha256;
+    url = "http://mattmahoney.net/dc/zpaqd${version}.zip";
+    sha256 = "sha256-Mx87Zt0AASk0ZZCjyTzYbhlYJAXBlb59OpUWsqynyCA=";
   };
 
   sourceRoot = ".";
@@ -41,7 +33,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     description = "ZPAQ archive (de)compressor and algorithm development tool";
-    license = licenses.gpl3Plus ;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/tools/archivers/zpaq/zpaqd.upstream b/pkgs/tools/archivers/zpaq/zpaqd.upstream
deleted file mode 100644
index ef83c58e4600c..0000000000000
--- a/pkgs/tools/archivers/zpaq/zpaqd.upstream
+++ /dev/null
@@ -1,5 +0,0 @@
-url http://mattmahoney.net/dc/zpaqutil.html
-version_link 'zpaqd[0-9]+[.]zip'
-version "[^0-9]*([0-9]+)[^0-9]*" '\1'
-name zpaqd
-attribute_name zpaqd
diff --git a/pkgs/tools/audio/abcmidi/default.nix b/pkgs/tools/audio/abcmidi/default.nix
index f10b79d2ab00e..48b4e88b0ae8c 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 = "2021.10.15";
+  version = "2021.12.12";
 
   src = fetchzip {
     url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
-    sha256 = "sha256-OEkSgT3Rg0ZcTCTeOd2+GlopzhI19spOLkH3nDDCWo8=";
+    hash = "sha256-34yRMa68x93u8/fGTzflh1L/Lf7ULPXsDaC7GUy+i8g=";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/audio/alsaequal/default.nix b/pkgs/tools/audio/alsaequal/default.nix
index c6c25fd39966f..13e3e756b6ac8 100644
--- a/pkgs/tools/audio/alsaequal/default.nix
+++ b/pkgs/tools/audio/alsaequal/default.nix
@@ -3,7 +3,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "alsaequal";
+  pname = "alsaequal";
   version = "0.6";
 
   src = fetchurl {
diff --git a/pkgs/tools/audio/beets/bash-completion-always-print.patch b/pkgs/tools/audio/beets/bash-completion-always-print.patch
index 7bc3e57117e32..8a31fe22f7281 100644
--- a/pkgs/tools/audio/beets/bash-completion-always-print.patch
+++ b/pkgs/tools/audio/beets/bash-completion-always-print.patch
@@ -1,33 +1,34 @@
 diff --git i/beets/ui/commands.py w/beets/ui/commands.py
-index 4d010f4b..0b023585 100755
+index 3a337401..d08a6763 100755
 --- i/beets/ui/commands.py
 +++ w/beets/ui/commands.py
-@@ -1741,20 +1741,6 @@ default_commands.append(config_cmd)
+@@ -1759,21 +1759,6 @@ default_commands.append(config_cmd)
  def print_completion(*args):
      for line in completion_script(default_commands + plugins.commands()):
-         print_(line, end=u'')
+         print_(line, end='')
 -    if not any(map(os.path.isfile, BASH_COMPLETION_PATHS)):
--        log.warning(u'Warning: Unable to find the bash-completion package. '
--                    u'Command line completion might not work.')
+-        log.warning('Warning: Unable to find the bash-completion package. '
+-                    'Command line completion might not work.')
+-
 -
 -BASH_COMPLETION_PATHS = map(syspath, [
--    u'/etc/bash_completion',
--    u'/usr/share/bash-completion/bash_completion',
--    u'/usr/local/share/bash-completion/bash_completion',
+-    '/etc/bash_completion',
+-    '/usr/share/bash-completion/bash_completion',
+-    '/usr/local/share/bash-completion/bash_completion',
 -    # SmartOS
--    u'/opt/local/share/bash-completion/bash_completion',
+-    '/opt/local/share/bash-completion/bash_completion',
 -    # Homebrew (before bash-completion2)
--    u'/usr/local/etc/bash_completion',
+-    '/usr/local/etc/bash_completion',
 -])
 -
  
  def completion_script(commands):
      """Yield the full completion shell script as strings.
 diff --git i/test/test_ui.py w/test/test_ui.py
-index 5cfed1fd..9d3dc458 100644
+index 9804b0a1..c3b53243 100644
 --- i/test/test_ui.py
 +++ w/test/test_ui.py
-@@ -1230,12 +1230,7 @@ class CompletionTest(_common.TestCase, TestHelper):
+@@ -1229,12 +1229,7 @@ class CompletionTest(_common.TestCase, TestHelper):
                                    stdout=subprocess.PIPE, env=env)
  
          # Load bash_completion library.
@@ -36,8 +37,8 @@ index 5cfed1fd..9d3dc458 100644
 -                bash_completion = path
 -                break
 -        else:
--            self.skipTest(u'bash-completion script not found')
-+        self.skipTest(u'bash-completion script not found')
+-            self.skipTest('bash-completion script not found')
++        self.skipTest('bash-completion script not found')
          try:
              with open(util.syspath(bash_completion), 'rb') as f:
                  tester.stdin.writelines(f)
diff --git a/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch b/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch
index bcc77179d7968..1bc1789344864 100644
--- a/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch
+++ b/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch
@@ -1,43 +1,34 @@
 diff --git i/beetsplug/convert.py w/beetsplug/convert.py
-index 70363f6e..2962aa4f 100644
+index 6bc07c28..039fb452 100644
 --- i/beetsplug/convert.py
 +++ w/beetsplug/convert.py
-@@ -81,7 +81,7 @@ def get_format(fmt=None):
-         command = config['convert']['command'].as_str()
-     elif 'opts' in keys:
-         # Undocumented option for backwards compatibility with < 1.3.1.
--        command = u'ffmpeg -i $source -y {0} $dest'.format(
-+        command = u'@ffmpeg@/bin/ffmpeg -i $source -y {0} $dest'.format(
-             config['convert']['opts'].as_str()
-         )
-     if 'extension' in keys:
-@@ -121,22 +121,22 @@ class ConvertPlugin(BeetsPlugin):
-             u'id3v23': u'inherit',
-             u'formats': {
-                 u'aac': {
--                    u'command': u'ffmpeg -i $source -y -vn -acodec aac '
-+                    u'command': u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec aac '
-                                 u'-aq 1 $dest',
-                     u'extension': u'm4a',
+@@ -118,22 +118,22 @@ class ConvertPlugin(BeetsPlugin):
+             'id3v23': 'inherit',
+             'formats': {
+                 'aac': {
+-                    'command': 'ffmpeg -i $source -y -vn -acodec aac '
++                    'command': '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec aac '
+                     '-aq 1 $dest',
+                     'extension': 'm4a',
                  },
-                 u'alac': {
--                    u'command': u'ffmpeg -i $source -y -vn -acodec alac $dest',
-+                    u'command': u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec alac $dest',
-                     u'extension': u'm4a',
+                 'alac': {
+-                    'command': 'ffmpeg -i $source -y -vn -acodec alac $dest',
++                    'command': '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec alac $dest',
+                     'extension': 'm4a',
                  },
--                u'flac': u'ffmpeg -i $source -y -vn -acodec flac $dest',
--                u'mp3': u'ffmpeg -i $source -y -vn -aq 2 $dest',
-+                u'flac': u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec flac $dest',
-+                u'mp3': u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -aq 2 $dest',
-                 u'opus':
--                    u'ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest',
-+                    u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest',
-                 u'ogg':
--                    u'ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest',
-+                    u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest',
-                 u'wma':
--                    u'ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest',
-+                    u'@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest',
+-                'flac': 'ffmpeg -i $source -y -vn -acodec flac $dest',
+-                'mp3': 'ffmpeg -i $source -y -vn -aq 2 $dest',
++                'flac': '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec flac $dest',
++                'mp3': '@ffmpeg@/bin/ffmpeg -i $source -y -vn -aq 2 $dest',
+                 'opus':
+-                    'ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest',
++                    '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest',
+                 'ogg':
+-                    'ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest',
++                    '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest',
+                 'wma':
+-                    'ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest',
++                    '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest',
              },
-             u'max_bitrate': 500,
-             u'auto': False,
+             'max_bitrate': 500,
+             'auto': False,
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index 7114d6801b474..6789bd5f96223 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -1,6 +1,18 @@
-{ stdenv, lib, fetchFromGitHub, writeScript, glibcLocales, diffPlugins, substituteAll
-, pythonPackages, imagemagick, gobject-introspection, gst_all_1
-, runtimeShell, unstableGitUpdater
+{ stdenv
+, lib
+, fetchFromGitHub
+, writeScript
+, glibcLocales
+, diffPlugins
+, substituteAll
+, pythonPackages
+# can be null, if you wish to disable a reference to it. It's needed for the
+# artresizer, see:
+# https://beets.readthedocs.io/en/v1.6.0/plugins/fetchart.html#image-resizing
+, imagemagick
+, gobject-introspection
+, gst_all_1
+, runtimeShell
 
 # external plugins package set
 , beetsExternalPlugins
@@ -73,9 +85,9 @@ let
   };
 
   pluginsWithoutDeps = [
-    "bareasc" "bench" "bpd" "bpm" "bucket" "duplicates" "edit" "embedart"
+    "albumtypes" "bareasc" "bench" "bpd" "bpm" "bucket" "duplicates" "edit" "embedart"
     "export" "filefilter" "fish" "freedesktop" "fromfilename" "ftintitle" "fuzzy"
-    "hook" "ihate" "importadded" "importfeeds" "info" "inline" "ipfs"
+    "hook" "ihate" "importadded" "importfeeds" "info" "inline" "ipfs" "gmusic"
     "mbcollection" "mbsubmit" "mbsync" "metasync" "missing" "parentwork" "permissions" "play"
     "plexupdate" "random" "rewrite" "scrub" "smartplaylist" "spotify" "the"
     "types" "unimported" "zero"
@@ -89,24 +101,15 @@ let
   testShell = "${bashInteractive}/bin/bash --norc";
   completion = "${bash-completion}/share/bash-completion/bash_completion";
 
-  # This is a stripped down beets for testing of the external plugins.
-  externalTestArgs.beets = (lib.beets.override {
-    enableAlternatives = false;
-    enableCopyArtifacts = false;
-    enableExtraFiles = false;
-  }).overrideAttrs (lib.const {
-    doInstallCheck = false;
-  });
-
 in pythonPackages.buildPythonApplication rec {
   pname = "beets";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "beetbox";
     repo = "beets";
     rev = "v${version}";
-    sha256 = "sha256-yQMCJUwpjDDhPffBS6LUq6z4iT1VyFQE0R27XEbYXbY=";
+    sha256 = "sha256-fT+rCJJQR7bdfAcmeFRaknmh4ZOP4RCx8MXpq7/D8tM=";
   };
 
   propagatedBuildInputs = [
@@ -152,7 +155,6 @@ in pythonPackages.buildPythonApplication rec {
   ;
 
   buildInputs = [
-    imagemagick
   ] ++ (with gst_all_1; [
     gst-plugins-base
     gst-plugins-good
@@ -167,7 +169,7 @@ in pythonPackages.buildPythonApplication rec {
     responses
     # Although considered as plugin dependencies, they are needed for the
     # tests, for disabling them via an override makes the build fail. see:
-    # https://github.com/beetbox/beets/blob/v1.4.9/setup.py
+    # https://github.com/beetbox/beets/blob/v1.6.0/setup.py
     pylast
     mpd2
     discogs-client
@@ -177,10 +179,14 @@ in pythonPackages.buildPythonApplication rec {
   patches = [
     # Bash completion fix for Nix
     ./bash-completion-always-print.patch
-    # From some reason upstream assumes the program 'keyfinder-cli' is located
-    # in the path as `KeyFinder`
-    ./keyfinder-default-bin.patch
   ]
+    # Fix path to imagemagick, used for the artresizer.py file. This reference
+    # to imagemagick might be expensive for some people, so the patch can be
+    # disabled if imagemagick is set to null
+    ++ lib.optional (imagemagick != null) (substituteAll {
+      src = ./imagemagick-nix-path.patch;
+      inherit imagemagick;
+    })
     # We need to force ffmpeg as the default, since we do not package
     # bs1770gain, and set the absolute path there, to avoid impurities.
     ++ lib.optional enableReplaygain (substituteAll {
@@ -200,13 +206,10 @@ in pythonPackages.buildPythonApplication rec {
 
   # Disable failing tests
   postPatch = ''
-    sed -i -e '/assertIn.*item.*path/d' test/test_info.py
     echo echo completion tests passed > test/rsrc/test_completion.sh
 
+    # https://github.com/beetbox/beets/issues/1187
     sed -i -e 's/len(mf.images)/0/' test/test_zero.py
-
-    # Google Play Music was discontinued
-    rm -r beetsplug/gmusic.py
   '';
 
   postInstall = ''
@@ -256,7 +259,10 @@ in pythonPackages.buildPythonApplication rec {
     runHook postInstallCheck
   '';
 
-  makeWrapperArgs = [ "--set GI_TYPELIB_PATH \"$GI_TYPELIB_PATH\"" "--set GST_PLUGIN_SYSTEM_PATH_1_0 \"$GST_PLUGIN_SYSTEM_PATH_1_0\"" ];
+  makeWrapperArgs = [
+    "--set GI_TYPELIB_PATH \"$GI_TYPELIB_PATH\""
+    "--set GST_PLUGIN_SYSTEM_PATH_1_0 \"$GST_PLUGIN_SYSTEM_PATH_1_0\""
+  ];
 
   passthru = {
     # FIXME: remove in favor of pkgs.beetsExternalPlugins
diff --git a/pkgs/tools/audio/beets/imagemagick-nix-path.patch b/pkgs/tools/audio/beets/imagemagick-nix-path.patch
new file mode 100644
index 0000000000000..9a77703ede7c6
--- /dev/null
+++ b/pkgs/tools/audio/beets/imagemagick-nix-path.patch
@@ -0,0 +1,20 @@
+diff --git i/beets/util/artresizer.py w/beets/util/artresizer.py
+index 8683e228..2f38b4d6 100644
+--- i/beets/util/artresizer.py
++++ w/beets/util/artresizer.py
+@@ -334,13 +334,8 @@ class ArtResizer(metaclass=Shareable):
+         # not, fall back to the older, separate convert and identify
+         # commands.
+         if self.method[0] == IMAGEMAGICK:
+-            self.im_legacy = self.method[2]
+-            if self.im_legacy:
+-                self.im_convert_cmd = ['convert']
+-                self.im_identify_cmd = ['identify']
+-            else:
+-                self.im_convert_cmd = ['magick']
+-                self.im_identify_cmd = ['magick', 'identify']
++            self.im_convert_cmd = ['@imagemagick@/bin/magick']
++            self.im_identify_cmd = ['@imagemagick@/bin/magick', 'identify']
+ 
+     def resize(
+         self, maxwidth, path_in, path_out=None, quality=0, max_filesize=0
diff --git a/pkgs/tools/audio/beets/keyfinder-default-bin.patch b/pkgs/tools/audio/beets/keyfinder-default-bin.patch
deleted file mode 100644
index ec6bc3a5561c5..0000000000000
--- a/pkgs/tools/audio/beets/keyfinder-default-bin.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/beetsplug/keyfinder.py b/beetsplug/keyfinder.py
-index 702003f0..08689cd8 100644
---- a/beetsplug/keyfinder.py
-+++ b/beetsplug/keyfinder.py
-@@ -31,7 +31,7 @@ class KeyFinderPlugin(BeetsPlugin):
-     def __init__(self):
-         super(KeyFinderPlugin, self).__init__()
-         self.config.add({
--            u'bin': u'KeyFinder',
-+            u'bin': u'keyfinder-cli',
-             u'auto': True,
-             u'overwrite': False,
-         })
-diff --git a/test/test_keyfinder.py b/test/test_keyfinder.py
-index c8735e47..d7d670a4 100644
---- a/test/test_keyfinder.py
-+++ b/test/test_keyfinder.py
-@@ -44,7 +44,7 @@ class KeyFinderTest(unittest.TestCase, TestHelper):
-         item.load()
-         self.assertEqual(item['initial_key'], 'C#m')
-         command_output.assert_called_with(
--            ['KeyFinder', '-f', util.syspath(item.path)])
-+            ['keyfinder-cli', util.syspath(item.path)])
-
-     def test_add_key_on_import(self, command_output):
-         command_output.return_value = util.CommandOutput(b"dbm", b"")
diff --git a/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch b/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch
index 0ceba3c094423..e441997cae583 100644
--- a/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch
+++ b/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch
@@ -1,26 +1,26 @@
 diff --git i/beetsplug/replaygain.py w/beetsplug/replaygain.py
-index 9d6fa23c..c5800039 100644
+index b6297d93..5c1cbbc0 100644
 --- i/beetsplug/replaygain.py
 +++ w/beetsplug/replaygain.py
-@@ -391,7 +391,7 @@ class FfmpegBackend(Backend):
+@@ -139,7 +139,7 @@ class FfmpegBackend(Backend):
  
      def __init__(self, config, log):
-         super(FfmpegBackend, self).__init__(config, log)
+         super().__init__(config, log)
 -        self._ffmpeg_path = "ffmpeg"
 +        self._ffmpeg_path = "@ffmpeg@/bin/ffmpeg"
  
          # check that ffmpeg is installed
          try:
-@@ -1228,11 +1228,10 @@ class ReplayGainPlugin(BeetsPlugin):
+@@ -975,11 +975,10 @@ class ReplayGainPlugin(BeetsPlugin):
      def __init__(self):
-         super(ReplayGainPlugin, self).__init__()
+         super().__init__()
  
 -        # default backend is 'command' for backward-compatibility.
          self.config.add({
              'overwrite': False,
              'auto': True,
--            'backend': u'command',
-+            'backend': u'ffmpeg',
+-            'backend': 'command',
++            'backend': 'ffmpeg',
              'threads': cpu_count(),
              'parallel_on_import': False,
              'per_disc': False,
diff --git a/pkgs/tools/audio/kaldi/default.nix b/pkgs/tools/audio/kaldi/default.nix
index ef725408b13e0..662a6f2b5348a 100644
--- a/pkgs/tools/audio/kaldi/default.nix
+++ b/pkgs/tools/audio/kaldi/default.nix
@@ -17,19 +17,19 @@ let
   openfst = fetchFromGitHub {
     owner = "kkm000";
     repo = "openfst";
-    rev = "0bca6e76d24647427356dc242b0adbf3b5f1a8d9";
-    sha256 = "1802rr14a03zl1wa5a0x1fa412kcvbgprgkadfj5s6s3agnn11rx";
+    rev = "338225416178ac36b8002d70387f5556e44c8d05";
+    sha256 = "sha256-MGEUuw7ex+WcujVdxpO2Bf5sB6Z0edcAeLGqW/Lo1Hs=";
   };
 in
 stdenv.mkDerivation {
   pname = "kaldi";
-  version = "2020-12-26";
+  version = "2021-12-03";
 
   src = fetchFromGitHub {
     owner = "kaldi-asr";
     repo = "kaldi";
-    rev = "813b73185a18725e4f6021981d17221d6ee23a19";
-    sha256 = "sha256-lTqXTG5ZTPmhCgt+BVzOwjKEIj+bLGUa+IxJq+XtHUg=";
+    rev = "2b016ab8cb018e031ab3bf01ec36cc2950c7e509";
+    sha256 = "sha256-R8CrY7cwU5XfeGEgeFuZ0ApsEcEmWN/lrZaCjz85tyk=";
   };
 
   cmakeFlags = [
@@ -37,6 +37,8 @@ stdenv.mkDerivation {
     "-DBUILD_SHARED_LIBS=on"
   ];
 
+  enableParallelBuilding = true;
+
   preConfigure = ''
     mkdir bin
     cat > bin/git <<'EOF'
diff --git a/pkgs/tools/audio/yabridge/default.nix b/pkgs/tools/audio/yabridge/default.nix
index 15f89a3296209..c468a845a1a63 100644
--- a/pkgs/tools/audio/yabridge/default.nix
+++ b/pkgs/tools/audio/yabridge/default.nix
@@ -1,96 +1,81 @@
 { lib
 , multiStdenv
 , fetchFromGitHub
-, fetchpatch
 , substituteAll
+, pkgsi686Linux
+, libnotify
 , meson
 , ninja
 , pkg-config
 , wine
 , boost
 , libxcb
-, pkgsi686Linux
+, nix-update-script
 }:
 
 let
   # Derived from subprojects/bitsery.wrap
-  bitsery = rec {
-    version = "5.2.0";
-    src = fetchFromGitHub {
-      owner = "fraillt";
-      repo = "bitsery";
-      rev = "v${version}";
-      hash = "sha256-Bxdtjn2v2lP2lCnvjzmct6QHT7FpwmXoSZtd2oEFS4w=";
-    };
+  bitsery = fetchFromGitHub {
+    owner = "fraillt";
+    repo = "bitsery";
+    rev = "c0fc083c9de805e5825d7553507569febf6a6f93";
+    sha256 = "sha256-VwzVtxt+E/SVcxqIJw8BKPO2q7bu/hkhY+nB7FHrZpY=";
   };
 
   # Derived from subprojects/function2.wrap
-  function2 = rec {
-    version = "4.1.0";
-    src = fetchFromGitHub {
-      owner = "Naios";
-      repo = "function2";
-      rev = version;
-      hash = "sha256-JceZU8ZvtYhFheh8BjMvjjZty4hcYxHEK+IIo5X4eSk=";
-    };
+  function2 = fetchFromGitHub {
+    owner = "Naios";
+    repo = "function2";
+    rev = "02ca99831de59c7c3a4b834789260253cace0ced";
+    sha256 = "sha256-wrt+fCcM6YD4ZRZYvqqB+fNakCNmltdPZKlNkPLtgMs=";
   };
 
   # Derived from subprojects/tomlplusplus.wrap
-  tomlplusplus = rec {
-    version = "2.1.0";
-    src = fetchFromGitHub {
-      owner = "marzer";
-      repo = "tomlplusplus";
-      rev = "v${version}";
-      hash = "sha256-i6yAEqwkinkPEzzb6ynXytS1SEOUDwi8SixMf62NVzs=";
-    };
+  tomlplusplus = fetchFromGitHub {
+    owner = "marzer";
+    repo = "tomlplusplus";
+    rev = "47216c8a73d77e7431ec536fb3e251aed06cc420";
+    sha256 = "sha256-cwAzWu5j3ch/56a6JmEoKCsxVNTk6tiZswNdNT6qzX0=";
   };
 
   # Derived from vst3.wrap
-  vst3 = rec {
-    version = "3.7.3_build_20-patched";
-    src = fetchFromGitHub {
-      owner = "robbert-vdh";
-      repo = "vst3sdk";
-      rev = "v${version}";
-      fetchSubmodules = true;
-      sha256 = "sha256-m2y7No7BNbIjLNgdAqIAEr6UuAZZ/wwM2+iPWKK17gQ=";
-    };
+  vst3 = fetchFromGitHub {
+    owner = "robbert-vdh";
+    repo = "vst3sdk";
+    rev = "v3.7.3_build_20-patched";
+    fetchSubmodules = true;
+    sha256 = "sha256-m2y7No7BNbIjLNgdAqIAEr6UuAZZ/wwM2+iPWKK17gQ=";
   };
 in multiStdenv.mkDerivation rec {
   pname = "yabridge";
-  version = "3.6.0";
+  version = "3.7.0";
 
   # NOTE: Also update yabridgectl's cargoHash when this is updated
   src = fetchFromGitHub {
     owner = "robbert-vdh";
     repo = pname;
     rev = version;
-    hash = "sha256-lgSkZ0i2DojP6HXJP3cC5FUtfv7R/nsSiHT60bPSyLc=";
+    sha256 = "sha256-dz7kScNrVUsjokJntzUCJzDIboqi3vQI+RpXl0UFmUQ=";
   };
 
   # Unpack subproject sources
   postUnpack = ''(
     cd "$sourceRoot/subprojects"
-    cp -R --no-preserve=mode,ownership ${bitsery.src} bitsery-${bitsery.version}
-    tar -xf bitsery-patch-${bitsery.version}.tar.xz
-    cp -R --no-preserve=mode,ownership ${function2.src} function2-${function2.version}
-    tar -xf function2-patch-${function2.version}.tar.xz
-    cp -R --no-preserve=mode,ownership ${tomlplusplus.src} tomlplusplus
-    cp -R --no-preserve=mode,ownership ${vst3.src} vst3
+    cp -R --no-preserve=mode,ownership ${bitsery} bitsery
+    cp packagefiles/bitsery/* bitsery
+    cp -R --no-preserve=mode,ownership ${function2} function2
+    cp packagefiles/function2/* function2
+    cp -R --no-preserve=mode,ownership ${tomlplusplus} tomlplusplus
+    cp -R --no-preserve=mode,ownership ${vst3} vst3
   )'';
 
   patches = [
-    # Hard code wine path so wine version is correct in logs
+    # Hard code bitbridge & runtime dependencies
     (substituteAll {
-      src = ./hardcode-wine.patch;
-      inherit wine;
-    })
-    # Remove with next yabridge update
-    (fetchpatch {
-      name = "fix-for-wine-6.20.patch";
-      url = "https://github.com/robbert-vdh/yabridge/commit/5be149cb525a638f7fc3adf84918c8239ee50ecf.patch";
-      sha256 = "sha256-x/gfn4mKZIGQ4M0o/0LlZF8i8wZDx/bkwf8wp0BGDBo=";
+      src = ./hardcode-dependencies.patch;
+      boost32 = pkgsi686Linux.boost;
+      libxcb32 = pkgsi686Linux.xorg.libxcb;
+      inherit libnotify wine;
     })
   ];
 
@@ -127,11 +112,6 @@ in multiStdenv.mkDerivation rec {
     "-Dtomlplusplus:BUILD_TESTS=disabled"
   ];
 
-  preConfigure = ''
-    sed -i "221s|xcb.*|xcb_32bit_dep = winegcc.find_library('xcb', dirs: [ '${lib.getLib pkgsi686Linux.xorg.libxcb}/lib', ])|" meson.build
-    sed -i "199 i '${lib.getLib pkgsi686Linux.boost}/lib'," meson.build
-  '';
-
   installPhase = ''
     runHook preInstall
     mkdir -p "$out/bin" "$out/lib"
@@ -150,6 +130,10 @@ in multiStdenv.mkDerivation rec {
     done
   '';
 
+  passthru.updateScript = nix-update-script {
+    attrPath = pname;
+  };
+
   meta = with lib; {
     description = "Yet Another VST bridge, run Windows VST2 plugins under Linux";
     homepage = "https://github.com/robbert-vdh/yabridge";
diff --git a/pkgs/tools/audio/yabridge/hardcode-dependencies.patch b/pkgs/tools/audio/yabridge/hardcode-dependencies.patch
new file mode 100644
index 0000000000000..255b0eb88cb13
--- /dev/null
+++ b/pkgs/tools/audio/yabridge/hardcode-dependencies.patch
@@ -0,0 +1,43 @@
+diff --git a/meson.build b/meson.build
+index 8eae0442..ec0649da 100644
+--- a/meson.build
++++ b/meson.build
+@@ -196,6 +196,7 @@ if with_32bit_libraries or with_bitbridge
+       'boost_filesystem',
+       static : with_static_boost,
+       dirs : [
++        '@boost32@/lib',
+         # Used by Arch based distros
+         '/usr/local/lib32',
+         '/usr/lib32',
+@@ -219,7 +220,7 @@ if is_64bit_system
+   xcb_64bit_dep = dependency('xcb')
+ endif
+ if with_32bit_libraries or with_bitbridge
+-  xcb_32bit_dep = winegcc.find_library('xcb')
++  xcb_32bit_dep = winegcc.find_library('xcb', dirs: ['@libxcb32@/lib'])
+ endif
+ 
+ # These are all headers-only libraries, and thus won't require separate 32-bit
+diff --git a/src/plugin/utils.cpp b/src/plugin/utils.cpp
+index 6e32b4c9..f6eb09eb 100644
+--- a/src/plugin/utils.cpp
++++ b/src/plugin/utils.cpp
+@@ -107,7 +107,7 @@ std::string PluginInfo::wine_version() const {
+         access(wineloader_path.c_str(), X_OK) == 0) {
+         wine_path = wineloader_path;
+     } else {
+-        wine_path = bp::search_path("wine").string();
++        wine_path = "@wine@/bin/wine";
+     }
+ 
+     bp::ipstream output;
+@@ -436,7 +436,7 @@ Configuration load_config_for(const fs::path& yabridge_path) {
+ bool send_notification(const std::string& title,
+                        const std::string body,
+                        bool append_origin) {
+-    const fs::path notify_send_path = bp::search_path("notify-send");
++    const fs::path notify_send_path = "@libnotify@/bin/notify-send";
+     if (notify_send_path.empty()) {
+         return false;
+     }
diff --git a/pkgs/tools/audio/yabridge/hardcode-wine.patch b/pkgs/tools/audio/yabridge/hardcode-wine.patch
deleted file mode 100644
index d58aedeb27ffc..0000000000000
--- a/pkgs/tools/audio/yabridge/hardcode-wine.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/plugin/utils.cpp b/src/plugin/utils.cpp
-index 7fb7d1b3..eb227101 100644
---- a/src/plugin/utils.cpp
-+++ b/src/plugin/utils.cpp
-@@ -105,5 +105,5 @@ std::string PluginInfo::wine_version() const {
-         access(wineloader_path.c_str(), X_OK) == 0) {
-         wine_path = wineloader_path;
-     } else {
--        wine_path = bp::search_path("wine").string();
-+        wine_path = "@wine@/bin/wine";
-     }
-
-     bp::ipstream output;
diff --git a/pkgs/tools/audio/yabridgectl/default.nix b/pkgs/tools/audio/yabridgectl/default.nix
index 9e185b3ce72cc..902734de0bd0f 100644
--- a/pkgs/tools/audio/yabridgectl/default.nix
+++ b/pkgs/tools/audio/yabridgectl/default.nix
@@ -11,7 +11,7 @@ rustPlatform.buildRustPackage rec {
 
   src = yabridge.src;
   sourceRoot = "source/tools/yabridgectl";
-  cargoHash = "sha256-20sh9yovZHqoUk+3aVs/D8SWY29FdPjX+NeJt35KfWM=";
+  cargoSha256 = "sha256-/VREh/f4bAt2DXCqK0noEjn+4hcK5VZUn+gdbYbeAmk=";
 
   patches = [
     # By default, yabridgectl locates libyabridge.so by using
diff --git a/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch b/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch
index ec42f98a2e82a..7b8e10b2ba81e 100644
--- a/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch
+++ b/pkgs/tools/audio/yabridgectl/libyabridge-from-nix-profiles.patch
@@ -1,5 +1,5 @@
 diff --git a/tools/yabridgectl/src/config.rs b/tools/yabridgectl/src/config.rs
-index 6e05e34..656eef3 100644
+index bc5ccfc4..c6d119bc 100644
 --- a/tools/yabridgectl/src/config.rs
 +++ b/tools/yabridgectl/src/config.rs
 @@ -23,6 +23,7 @@ use std::collections::{BTreeMap, BTreeSet, HashSet};
@@ -10,7 +10,7 @@ index 6e05e34..656eef3 100644
  use std::path::{Path, PathBuf};
  use which::which;
  use xdg::BaseDirectories;
-@@ -222,34 +223,24 @@ impl Config {
+@@ -233,34 +234,24 @@ impl Config {
                  }
              }
              None => {
@@ -56,10 +56,10 @@ index 6e05e34..656eef3 100644
                          ));
                      }
 diff --git a/tools/yabridgectl/src/main.rs b/tools/yabridgectl/src/main.rs
-index ce701b8..b6b9633 100644
+index 8c273f92..432619ec 100644
 --- a/tools/yabridgectl/src/main.rs
 +++ b/tools/yabridgectl/src/main.rs
-@@ -150,7 +150,7 @@ fn main() -> Result<()> {
+@@ -148,7 +148,7 @@ fn main() -> Result<()> {
                          .about("Path to the directory containing 'libyabridge-{vst2,vst3}.so'")
                          .long_about(
                              "Path to the directory containing 'libyabridge-{vst2,vst3}.so'. If this \
diff --git a/pkgs/tools/backup/autorestic/default.nix b/pkgs/tools/backup/autorestic/default.nix
index 164c609299d7c..8aed05cd6aefb 100644
--- a/pkgs/tools/backup/autorestic/default.nix
+++ b/pkgs/tools/backup/autorestic/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "autorestic";
-  version = "1.3.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "cupcakearmy";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-kd4nhfqKbJM7w1Prqiy+UBaa2SmZDgeSZzZTXTZ30yA=";
+    sha256 = "sha256-6/t7k0PNcRuCsIAV1iyDxDqsgm2fpBj+26MfvebNEBM=";
   };
 
   vendorSha256 = "sha256-eKsPdmPJXiCwvb2A28tNxF4xStry3iA6aLb+XYFJYSg=";
diff --git a/pkgs/tools/backup/bakelite/default.nix b/pkgs/tools/backup/bakelite/default.nix
new file mode 100644
index 0000000000000..15ddd3e2ea63b
--- /dev/null
+++ b/pkgs/tools/backup/bakelite/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "bakelite";
+  version = "unstable-2021-10-19";
+
+  src = fetchFromGitHub {
+    owner = "richfelker";
+    repo = pname;
+    rev = "5fc3cf9704dbaa191b95f97d2a700588ea878a36";
+    sha256 = "xoGor8KMG1vU6hP6v6gHcADKjVpaClvkivxkcPUJtss=";
+  };
+
+  hardeningEnable = [ "pie" ];
+  buildFlags = [ "CFLAGS=-D_GNU_SOURCE" ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp bakelite $out/bin
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/richfelker/bakelite";
+    description = "Incremental backup with strong cryptographic confidentality";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ mvs ];
+  };
+}
diff --git a/pkgs/tools/backup/burp/default.nix b/pkgs/tools/backup/burp/default.nix
index 00b2c71037a82..187fe71896d67 100644
--- a/pkgs/tools/backup/burp/default.nix
+++ b/pkgs/tools/backup/burp/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config
+{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config
 , acl, librsync, ncurses, openssl, zlib, uthash }:
 
 stdenv.mkDerivation rec {
@@ -12,6 +12,15 @@ stdenv.mkDerivation rec {
     sha256 = "1zhq240kz881vs2s620qp0kifmgr582caalm85ls789w9rmdkhjl";
   };
 
+  patches = [
+    # Pull upstream fix for ncurses-6.3 support
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/grke/burp/commit/1d6c931af7c11f164cf7ad3479781e8f03413496.patch";
+      sha256 = "14sfbfahlankz3xg6v10i8fnmpnmqpp73q9xm0l0hnjh25igv6bl";
+    })
+  ];
+
   nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ librsync ncurses openssl zlib uthash ]
     ++ lib.optional (!stdenv.isDarwin) acl;
diff --git a/pkgs/tools/backup/discordchatexporter-cli/deps.nix b/pkgs/tools/backup/discordchatexporter-cli/deps.nix
index 62d0595b4564c..172fe928dd776 100644
--- a/pkgs/tools/backup/discordchatexporter-cli/deps.nix
+++ b/pkgs/tools/backup/discordchatexporter-cli/deps.nix
@@ -1,16 +1,16 @@
 { fetchNuGet }: [
-  (fetchNuGet { name = "CliFx"; version = "2.0.6"; sha256 = "09yyjgpp52b0r3mqlvx75ld4vjp8hry7ql7r20nnvj0lach6fyh6"; })
-  (fetchNuGet { name = "Gress"; version = "1.2.0"; sha256 = "0aidc9whi0718gh896j7xkyndki9x7rifd8n1n681afb2zbxw4bn"; })
-  (fetchNuGet { name = "JsonExtensions"; version = "1.1.0"; sha256 = "1fqxb2jdbvjgg135wmy890qf63r056dq16jy7wgzkgp21m3j0lgy"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.21"; sha256 = "01kbhi29lhv6mg1zfsyakz3z8hfbxnc0kxy0fczl8xqviik9svx7"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; })
-  (fetchNuGet { name = "MiniRazor.CodeGen"; version = "2.1.4"; sha256 = "1856hfw2wl3ilxmpg4jmwpigmq0rm50i9pmy3sq8f1xc8j44kzl2"; })
-  (fetchNuGet { name = "MiniRazor.Runtime"; version = "2.1.4"; sha256 = "1pc3kjbnz810a8bb94k6355rflmayigfmpfmc4jzzx6l6iavnnc4"; })
-  (fetchNuGet { name = "Polly"; version = "7.2.2"; sha256 = "0s15n5zwj44i6sw3v40ca8l6j0ijydxcakvad49j52rp49iwrmkn"; })
-  (fetchNuGet { name = "Spectre.Console"; version = "0.41.0"; sha256 = "104vyzwbbq5m75dm31xk7ilvmik8hw1cj3bc301a8w6gq8i0fpk3"; })
-  (fetchNuGet { name = "Superpower"; version = "2.3.0"; sha256 = "0bdsc3c0d6jb0wr67siqfba0ldl0jxbwis6xr0whzqzf6m2cyahm"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.0"; sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30"; })
-  (fetchNuGet { name = "Tyrrrz.Extensions"; version = "1.6.5"; sha256 = "1yzsii1pbp6b066wxwwws310p7h809apl81bhb8ad55hqlzy1rg3"; })
-  (fetchNuGet { name = "Wcwidth"; version = "0.2.0"; sha256 = "0p7zaisix9ql4v5nyl9gfc93xcyj74j01rwvgm7jw29js3wlj10s"; })
+  (fetchNuGet { pname = "CliFx"; version = "2.0.6"; sha256 = "09yyjgpp52b0r3mqlvx75ld4vjp8hry7ql7r20nnvj0lach6fyh6"; })
+  (fetchNuGet { pname = "Gress"; version = "1.2.0"; sha256 = "0aidc9whi0718gh896j7xkyndki9x7rifd8n1n681afb2zbxw4bn"; })
+  (fetchNuGet { pname = "JsonExtensions"; version = "1.1.0"; sha256 = "1fqxb2jdbvjgg135wmy890qf63r056dq16jy7wgzkgp21m3j0lgy"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.21"; sha256 = "01kbhi29lhv6mg1zfsyakz3z8hfbxnc0kxy0fczl8xqviik9svx7"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; })
+  (fetchNuGet { pname = "MiniRazor.CodeGen"; version = "2.1.4"; sha256 = "1856hfw2wl3ilxmpg4jmwpigmq0rm50i9pmy3sq8f1xc8j44kzl2"; })
+  (fetchNuGet { pname = "MiniRazor.Runtime"; version = "2.1.4"; sha256 = "1pc3kjbnz810a8bb94k6355rflmayigfmpfmc4jzzx6l6iavnnc4"; })
+  (fetchNuGet { pname = "Polly"; version = "7.2.2"; sha256 = "0s15n5zwj44i6sw3v40ca8l6j0ijydxcakvad49j52rp49iwrmkn"; })
+  (fetchNuGet { pname = "Spectre.Console"; version = "0.41.0"; sha256 = "104vyzwbbq5m75dm31xk7ilvmik8hw1cj3bc301a8w6gq8i0fpk3"; })
+  (fetchNuGet { pname = "Superpower"; version = "2.3.0"; sha256 = "0bdsc3c0d6jb0wr67siqfba0ldl0jxbwis6xr0whzqzf6m2cyahm"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.0"; sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30"; })
+  (fetchNuGet { pname = "Tyrrrz.Extensions"; version = "1.6.5"; sha256 = "1yzsii1pbp6b066wxwwws310p7h809apl81bhb8ad55hqlzy1rg3"; })
+  (fetchNuGet { pname = "Wcwidth"; version = "0.2.0"; sha256 = "0p7zaisix9ql4v5nyl9gfc93xcyj74j01rwvgm7jw29js3wlj10s"; })
 ]
diff --git a/pkgs/tools/backup/kopia/default.nix b/pkgs/tools/backup/kopia/default.nix
index 9ae4ad37a1438..a878bcf6c0433 100644
--- a/pkgs/tools/backup/kopia/default.nix
+++ b/pkgs/tools/backup/kopia/default.nix
@@ -1,17 +1,17 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGo117Module, fetchFromGitHub }:
 
-buildGoModule rec {
+buildGo117Module rec {
   pname = "kopia";
-  version = "0.9.6";
+  version = "0.9.8";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lfzlYpkAGGY7fs9PYPSg2XYgW92WV1/zh2oRz4Qw7vs=";
+    sha256 = "sha256-7Bvgtp6egZqpTv4Ac+OUkhKzTZhRRMwpdvwOCBA6Dso=";
   };
 
-  vendorSha256 = "sha256-xa6B3gGgJc7E8VCfpRXlE8Jw3ylNnfynK+QEiqy2yF4=";
+  vendorSha256 = "sha256-/dCRM61Zl5YbIb0mKhcyLU15nQhR31QAaq+5TwRK4pM=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/backup/s3ql/default.nix b/pkgs/tools/backup/s3ql/default.nix
index 00d3b427d60e7..50b5279383db0 100644
--- a/pkgs/tools/backup/s3ql/default.nix
+++ b/pkgs/tools/backup/s3ql/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "s3ql";
-  version = "3.7.3";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "release-${version}";
-    sha256 = "042fvkvranfnv2xxxz9d92cgia14p1hwmpjgm0rr94pjd36n1sfs";
+    sha256 = "0a6ll5vs7faj1klfz3j674399qfbhy3blp3c5wwsqvcdkpcjcx11";
   };
 
   checkInputs = [ which ] ++ (with python3Packages; [ cython pytest pytest-trio ]);
diff --git a/pkgs/tools/backup/zfs-prune-snapshots/default.nix b/pkgs/tools/backup/zfs-prune-snapshots/default.nix
index f8a3adfecda67..ee60eb040116a 100644
--- a/pkgs/tools/backup/zfs-prune-snapshots/default.nix
+++ b/pkgs/tools/backup/zfs-prune-snapshots/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, go-md2man }:
 
 stdenv.mkDerivation rec {
-  version = "1.1.0";
+  version = "1.3.0";
   pname = "zfs-prune-snapshots";
 
   src = fetchFromGitHub {
     owner = "bahamas10";
     repo = pname;
     rev = "v${version}";
-    sha256 = "09dz9v6m47dxfvfncz0k926dqfhagm87kd33dcw66cbw15ac3spx";
+    sha256 = "sha256-udzC4AUXk7h7HpRcz0V+kPECzATAYZtX8z2fvKPCZ/c=";
   };
 
   nativeBuildInputs = [ go-md2man ];
diff --git a/pkgs/tools/backup/znapzend/default.nix b/pkgs/tools/backup/znapzend/default.nix
index 9c3e4fca95deb..5ea220f9e255f 100644
--- a/pkgs/tools/backup/znapzend/default.nix
+++ b/pkgs/tools/backup/znapzend/default.nix
@@ -2,32 +2,32 @@
 
 let
   # when upgrade znapzend, check versions of Perl libs here: https://github.com/oetiker/znapzend/blob/master/cpanfile
-  # pinned versions are listed at https://github.com/oetiker/znapzend/blob/master/thirdparty/cpanfile-5.26.1.snapshot
-  Mojolicious-8-35 = perlPackages.buildPerlPackage rec {
+  # pinned versions are listed at https://github.com/oetiker/znapzend/blob/master/thirdparty/cpanfile-5.30.snapshot
+  Mojolicious' = perlPackages.buildPerlPackage rec {
     pname = "Mojolicious";
-    version = "8.35";
+    version = "8.73";
     src = fetchurl {
       url = "mirror://cpan/authors/id/S/SR/SRI/${pname}-${version}.tar.gz";
-      sha256 = "1bll0ahh5v1y3x0ql29klwsa68cj46wzqc385srsnn2m8kh2ak8h";
+      sha256 = "118y2264f89bbp5ly2dh36xjq25jk85s2ssxa3y4gsgsk6sjzzk1";
     };
   };
-  MojoIOLoopForkCall-0-20 = perlPackages.buildPerlModule rec {
+  MojoIOLoopForkCall' = perlPackages.buildPerlModule rec {
     pname = "Mojo-IOLoop-ForkCall";
     version = "0.20";
     src = fetchurl {
       url = "mirror://cpan/authors/id/J/JB/JBERGER/${pname}-${version}.tar.gz";
       sha256 = "19pih5x0ayxs2m8j29qwdpi6ky3w4ghv6vrmax3ix9r59hj6569b";
     };
-    propagatedBuildInputs = [ perlPackages.IOPipely Mojolicious-8-35 ];
+    propagatedBuildInputs = [ perlPackages.IOPipely Mojolicious' ];
   };
 
   perl' = perl.withPackages (p:
-    [ MojoIOLoopForkCall-0-20
+    [ MojoIOLoopForkCall'
       p.TAPParserSourceHandlerpgTAP
     ]);
 
-  version = "0.20.0";
-  checksum = "15lb5qwksa508m9bj6d3n4rrjpakfaas9qxspg408bcqfp7pqjw3";
+  version = "0.21.0";
+  sha256 = "1lg46rf2ahlclan29zx8ag5k4fjp28sc9l02z76f0pvdlj4qnihl";
 in
 stdenv.mkDerivation {
   pname = "znapzend";
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
     owner = "oetiker";
     repo = "znapzend";
     rev = "v${version}";
-    sha256 = checksum;
+    inherit sha256;
   };
 
   buildInputs = [ wget perl' ];
diff --git a/pkgs/tools/bluetooth/blueberry/default.nix b/pkgs/tools/bluetooth/blueberry/default.nix
index 95413986e8a4a..2ef7fedefc406 100644
--- a/pkgs/tools/bluetooth/blueberry/default.nix
+++ b/pkgs/tools/bluetooth/blueberry/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "blueberry";
-  version = "1.4.4";
+  version = "1.4.6";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "sha256-dz0uGesyuQVXI7aEONCeOsa2vVw5yuStSFPnrqv2VcM=";
+    sha256 = "sha256-4SKEkoIEflOX5WXJ7X3onrieecT2NoH/eV3H3Cx/SYQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/bluetooth/blueman/default.nix b/pkgs/tools/bluetooth/blueman/default.nix
index 528f0999b2c65..e6c2fabeae90b 100644
--- a/pkgs/tools/bluetooth/blueman/default.nix
+++ b/pkgs/tools/bluetooth/blueman/default.nix
@@ -9,11 +9,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "blueman";
-  version = "2.2.2";
+  version = "2.2.3";
 
   src = fetchurl {
     url = "https://github.com/blueman-project/blueman/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-Ge1ZsaE09YT8AF9HKV/vZAqXCf2bmyMHOI4RKjLs0PY=";
+    sha256 = "sha256-bt15Haav2PYQ/7CNUTjPz1DmJXrTDvrWhih/OivhBuk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/bluetooth/bluez-tools/default.nix b/pkgs/tools/bluetooth/bluez-tools/default.nix
index 6b87a54be63ac..dfb7147d08eb4 100644
--- a/pkgs/tools/bluetooth/bluez-tools/default.nix
+++ b/pkgs/tools/bluetooth/bluez-tools/default.nix
@@ -2,14 +2,13 @@
 , fetchFromGitHub, glib, pkg-config }:
 
 stdenv.mkDerivation rec {
-  date    = "2016-12-12";
-  name    = "bluez-tools-${date}";
-  rev     = "97efd29";
+  version = "unstable-2016-12-12";
+  pname = "bluez-tools";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "khvzak";
     repo = "bluez-tools";
+    rev = "97efd293491ad7ec96a655665339908f2478b3d1";
     sha256 = "08xp77sf5wnq5086halmyk3vla4bfls06q1zrqdcq36hw6d409i6";
   };
 
diff --git a/pkgs/tools/cd-dvd/ccd2iso/default.nix b/pkgs/tools/cd-dvd/ccd2iso/default.nix
index ad3fee9792c6a..1fe606e6acc2c 100644
--- a/pkgs/tools/cd-dvd/ccd2iso/default.nix
+++ b/pkgs/tools/cd-dvd/ccd2iso/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     description = "CloneCD to ISO converter";
     homepage = "https://sourceforge.net/projects/ccd2iso/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ yegortimoshenko ];
+    maintainers = with maintainers; [ yana ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/cd-dvd/cdrkit/cdrkit-1.1.11-fno-common.patch b/pkgs/tools/cd-dvd/cdrkit/cdrkit-1.1.11-fno-common.patch
new file mode 100644
index 0000000000000..c7db796cfcfc3
--- /dev/null
+++ b/pkgs/tools/cd-dvd/cdrkit/cdrkit-1.1.11-fno-common.patch
@@ -0,0 +1,11 @@
+--- a/genisoimage/genisoimage.h
++++ b/genisoimage/genisoimage.h
+@@ -377,7 +377,7 @@ extern int	use_fileversion;
+ extern int	split_SL_component;
+ extern int	split_SL_field;
+ extern char	*trans_tbl;
+-char		*outfile;
++extern char	*outfile;
+ 
+ #define	JMAX		64	/* maximum Joliet file name length (spec) */
+ #define	JLONGMAX	103	/* out of spec Joliet file name length */
diff --git a/pkgs/tools/cd-dvd/cdrkit/default.nix b/pkgs/tools/cd-dvd/cdrkit/default.nix
index 1bc84cf59dfee..e3d53297193f3 100644
--- a/pkgs/tools/cd-dvd/cdrkit/default.nix
+++ b/pkgs/tools/cd-dvd/cdrkit/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   # efi-boot-patch extracted from http://arm.koji.fedoraproject.org/koji/rpminfo?rpmID=174244
-  patches = [ ./include-path.patch ./cdrkit-1.1.9-efi-boot.patch ];
+  patches = [ ./include-path.patch ./cdrkit-1.1.9-efi-boot.patch ./cdrkit-1.1.11-fno-common.patch ];
 
   postInstall = ''
     # file name compatibility with the old cdrecord (growisofs wants this name)
diff --git a/pkgs/tools/cd-dvd/cdrtools/default.nix b/pkgs/tools/cd-dvd/cdrtools/default.nix
index bca1a1c689c3c..f49826b99bfa7 100644
--- a/pkgs/tools/cd-dvd/cdrtools/default.nix
+++ b/pkgs/tools/cd-dvd/cdrtools/default.nix
@@ -16,6 +16,10 @@ stdenv.mkDerivation rec {
     sed "/\.mk3/d" -i libschily/Targets.man
     substituteInPlace man/Makefile --replace "man4" ""
     substituteInPlace RULES/rules.prg --replace "/bin/" ""
+  '' + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
+    ln -sv i386-darwin-clang64.rul RULES/arm64-darwin-cc.rul
+    ln -sv i386-darwin-clang64.rul RULES/arm64-darwin-clang.rul
+    ln -sv i386-darwin-clang64.rul RULES/arm64-darwin-clang64.rul
   '';
 
   dontConfigure = true;
diff --git a/pkgs/tools/cd-dvd/nrg2iso/default.nix b/pkgs/tools/cd-dvd/nrg2iso/default.nix
index e57948a80dd62..c0f74b8cddc70 100644
--- a/pkgs/tools/cd-dvd/nrg2iso/default.nix
+++ b/pkgs/tools/cd-dvd/nrg2iso/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nrg2iso";
-  version = "0.4";
+  version = "0.4.1";
 
   src = fetchurl {
     url = "http://gregory.kokanosky.free.fr/v4/linux/${pname}-${version}.tar.gz";
-    sha256 = "18sam7yy50rbfhjixwd7wx7kmfn1x1y5j80vwfxi5v408s39s115";
+    sha256 = "sha256-O+NqQWdY/BkQRztJqNrfKiqj1R8ZdhlzNrwXS8HjBuU=";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/cd-dvd/xorriso/default.nix b/pkgs/tools/cd-dvd/xorriso/default.nix
index e1cd7cc4046e5..2dd1b24adbbad 100644
--- a/pkgs/tools/cd-dvd/xorriso/default.nix
+++ b/pkgs/tools/cd-dvd/xorriso/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, lib, stdenv, libcdio, zlib, bzip2, readline, acl, attr, libiconv }:
 
 stdenv.mkDerivation rec {
-  name = "xorriso-${version}";
+  pname = "xorriso";
   version = "1.5.4.pl02";
 
   src = fetchurl {
-    url = "mirror://gnu/xorriso/${name}.tar.gz";
+    url = "mirror://gnu/xorriso/xorriso-${version}.tar.gz";
     sha256 = "sha256-Psc5PUqdy/X3QwnCikFfVSJ+xidwuVrpk6yNejsVKXI=";
   };
 
diff --git a/pkgs/tools/compression/advancecomp/default.nix b/pkgs/tools/compression/advancecomp/default.nix
index 7f8733b9b4ec0..00ce6af1d593b 100644
--- a/pkgs/tools/compression/advancecomp/default.nix
+++ b/pkgs/tools/compression/advancecomp/default.nix
@@ -26,6 +26,13 @@ stdenv.mkDerivation rec {
       sha256 = "0cdv9g87c1y8zwhqkd9ba2zjw4slcvg7yzcqv43idvnwb5fl29n7";
       excludes = [ "doc/history.d" ];
     })
+
+    # Pull upstream fix for gcc-11:
+    (fetchpatch {
+      name = "gcc-11.patch";
+      url = "https://github.com/amadvance/advancecomp/commit/7b08f7a2af3f66ab95437e4490499cebb20e5e41.patch";
+      sha256 = "0gpppq6b760m1429g7d808ipdgb4lrqc1b6xk2457y66pbaiwc9s";
+    })
   ];
 
   # autover.sh relies on 'git describe', which obviously doesn't work as we're not cloning
diff --git a/pkgs/tools/compression/imagelol/default.nix b/pkgs/tools/compression/imagelol/default.nix
index d54d2da2f90e4..187435d4eb343 100644
--- a/pkgs/tools/compression/imagelol/default.nix
+++ b/pkgs/tools/compression/imagelol/default.nix
@@ -12,6 +12,14 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  # fix for case-sensitive filesystems
+  # https://github.com/MCredstoner2004/ImageLOL/issues/1
+  postPatch = ''
+    mv imagelol src
+    substituteInPlace CMakeLists.txt \
+      --replace 'add_subdirectory("imagelol")' 'add_subdirectory("src")'
+  '';
+
   nativeBuildInputs = [ cmake ];
 
   installPhase = ''
diff --git a/pkgs/tools/filesystems/apfsprogs/default.nix b/pkgs/tools/filesystems/apfsprogs/default.nix
index 04e7cd89ae4b2..2c2aa108077f0 100644
--- a/pkgs/tools/filesystems/apfsprogs/default.nix
+++ b/pkgs/tools/filesystems/apfsprogs/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation {
   pname = "apfsprogs";
-  version = "unstable-2021-08-24";
+  version = "unstable-2021-10-26";
 
   src = fetchFromGitHub {
     owner = "linux-apfs";
     repo = "apfsprogs";
-    rev = "5efac5a701bcb56e23cfc182b5b3901bff27d343";
-    sha256 = "sha256-vQE586HwrPkF0uaTKrJ7yXb24ntRI0QmBla7N2ErAU8=";
+    rev = "05ecfa367a8142e289dc76333294271b5edfe395";
+    sha256 = "sha256-McGQG8f12DTp/It8KjMHGyfE5tgmgLd7MZlZIn/xC+E=";
   };
 
   buildPhase = ''
@@ -23,8 +23,8 @@ stdenv.mkDerivation {
 
   installPhase = ''
     runHook preInstall
-    make -C apfsck install BINDIR="$out/bin" MANDIR="$out/share/man8" $installFlags
-    make -C mkapfs install BINDIR="$out/bin" MANDIR="$out/share/man8" $installFlags
+    make -C apfsck install DESTDIR="$out" $installFlags
+    make -C mkapfs install DESTDIR="$out" $installFlags
     runHook postInstall
   '';
 
diff --git a/pkgs/tools/filesystems/bcachefs-tools/default.nix b/pkgs/tools/filesystems/bcachefs-tools/default.nix
index b8742075dd84b..cb8d74aa1618b 100644
--- a/pkgs/tools/filesystems/bcachefs-tools/default.nix
+++ b/pkgs/tools/filesystems/bcachefs-tools/default.nix
@@ -22,13 +22,13 @@
 
 stdenv.mkDerivation {
   pname = "bcachefs-tools";
-  version = "unstable-2021-11-06";
+  version = "unstable-2021-12-25";
 
   src = fetchFromGitHub {
     owner = "koverstreet";
     repo = "bcachefs-tools";
-    rev = "5b84952401146fec9a181a40877352f7faf9ee7b";
-    sha256 = "09zs2h3vzqn163v4i9lrvgy9gcjlw24lld7715j3kyyxnc5vav32";
+    rev = "07b18011cc885f0ef5cadc299d0321322f442388";
+    sha256 = "0yvdbjasl05w1afiszygrfv7hn39fxx7kcy42vk39rb6fb3xpvzy";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/filesystems/btrfs-snap/default.nix b/pkgs/tools/filesystems/btrfs-snap/default.nix
new file mode 100644
index 0000000000000..e43380e6792e0
--- /dev/null
+++ b/pkgs/tools/filesystems/btrfs-snap/default.nix
@@ -0,0 +1,32 @@
+{ bash, btrfs-progs, coreutils, fetchFromGitHub, gnugrep, lib, makeWrapper, stdenvNoCC, util-linuxMinimal }:
+stdenvNoCC.mkDerivation rec {
+  pname = "btrfs-snap";
+  version = "1.7.3";
+  src = fetchFromGitHub {
+    owner = "jf647";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-SDzLjgNRuR9XpmcYCD9T10MLS+//+pWFGDiTAb8NiLQ=";
+  };
+  buildInputs = [ bash ];
+  nativeBuildInputs = [ makeWrapper ];
+  dontConfigure = true;
+  dontBuild = true;
+  installPhase = ''
+    mkdir -p $out/bin
+    cp btrfs-snap $out/bin/
+    wrapProgram $out/bin/btrfs-snap --prefix PATH : ${lib.makeBinPath [
+      btrfs-progs       # btrfs
+      coreutils         # cut, date, head, ls, mkdir, readlink, stat, tail, touch, test, [
+      gnugrep           # grep
+      util-linuxMinimal # logger, mount
+    ]}
+  '';
+  meta = with lib; {
+    description = "btrfs-snap creates and maintains the history of snapshots of btrfs filesystems.";
+    homepage = "https://github.com/jf647/btrfs-snap";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ lionello ];
+    platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/tools/filesystems/ceph/default.nix b/pkgs/tools/filesystems/ceph/default.nix
index 913367084ed25..2c6175bec13e3 100644
--- a/pkgs/tools/filesystems/ceph/default.nix
+++ b/pkgs/tools/filesystems/ceph/default.nix
@@ -85,7 +85,7 @@ let
   };
 
   getMeta = description: with lib; {
-     homepage = "https://ceph.com/";
+     homepage = "https://ceph.io/";
      inherit description;
      license = with licenses; [ lgpl21 gpl2 bsd3 mit publicDomain ];
      maintainers = with maintainers; [ adev ak johanot krav ];
@@ -104,21 +104,7 @@ let
     meta = getMeta "Ceph common module for code shared by manager modules";
   };
 
-  python = python3.override {
-    packageOverrides = self: super: {
-      # scipy > 1.3 breaks diskprediction_local, leading to mgr hang on startup
-      # Bump once these issues are resolved:
-      # https://tracker.ceph.com/issues/42764 https://tracker.ceph.com/issues/45147
-      scipy = super.scipy.overridePythonAttrs (oldAttrs: rec {
-        version = "1.3.3";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "02iqb7ws7fw5fd1a83hx705pzrw1imj7z0bphjsl4bfvw254xgv4";
-        };
-        doCheck = false;
-      });
-    };
-  };
+  python = python3;
 
   ceph-python-env = python.withPackages (ps: [
     ps.sphinx
@@ -146,10 +132,10 @@ let
   ]);
   sitePackages = ceph-python-env.python.sitePackages;
 
-  version = "16.2.6";
+  version = "16.2.7";
   src = fetchurl {
     url = "http://download.ceph.com/tarballs/ceph-${version}.tar.gz";
-    sha256 = "sha256-TXGyZnyVTYAf7G7BcTv3dAfK/54JfOKObcyTRhCrnYA=";
+    sha256 = "0n7vpdcxji49bqaa5b7zxif1r80rrkbh0dfacbibvf20kzzbn2fz";
   };
 in rec {
   ceph = stdenv.mkDerivation {
diff --git a/pkgs/tools/filesystems/cryfs/default.nix b/pkgs/tools/filesystems/cryfs/default.nix
index 0da6c4c209944..6d93717dd9c86 100644
--- a/pkgs/tools/filesystems/cryfs/default.nix
+++ b/pkgs/tools/filesystems/cryfs/default.nix
@@ -1,48 +1,38 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
-, cmake, pkg-config, python3, gtest
-, boost, cryptopp, curl, fuse, openssl
+{ lib, stdenv, fetchFromGitHub
+, cmake, pkg-config, python3
+, boost175, curl, fuse, openssl, range-v3, spdlog
+# cryptopp and gtest on standby - using the vendored ones for now
+# see https://github.com/cryfs/cryfs/issues/369
+, llvmPackages
 }:
 
 stdenv.mkDerivation rec {
   pname = "cryfs";
-  version = "0.10.2";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
-    owner  = "cryfs";
-    repo   = "cryfs";
-    rev    = version;
-    sha256 = "1m6rcc82hbaiwcwcvf5xmxma8n0jal9zhcykv9xgwiax4ny0l8kz";
+    owner = pname;
+    repo = pname;
+    rev = version;
+    hash = "sha256-029foKJklyOv8qHvgds/yRZ9n1/iA+U7n4O5FViHCOE=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "cryfs-0.10.2-install-targets.patch";
-      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/cryfs/files/cryfs-0.10.2-install-targets.patch?id=192ac7421ddd4093125f4997898fb62e8a140a44";
-      sha256 = "1jz6gpi1i7dnfm88a6n3mccwfmsmvg0d0bmp3fmqqrkbcg7in00l";
-    })
-    (fetchpatch {
-      name = "cryfs-0.10.2-unbundle-libs.patch";
-      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/cryfs/files/cryfs-0.10.2-unbundle-libs.patch?id=192ac7421ddd4093125f4997898fb62e8a140a44";
-      sha256 = "0hzss5rawcjrh8iqzc40w5yjhxdqya4gbg6dzap70180s50mahzs";
-    })
-
-    # Backported from https://github.com/cryfs/cryfs/pull/378
-    ./use-macfuse.patch
-  ];
-
   postPatch = ''
     patchShebangs src
 
-    # remove tests that require network access:
+    # remove tests that require network access
     substituteInPlace test/cpp-utils/CMakeLists.txt \
       --replace "network/CurlHttpClientTest.cpp" "" \
       --replace "network/FakeHttpClientTest.cpp" ""
 
     # remove CLI test trying to access /dev/fuse
     substituteInPlace test/cryfs-cli/CMakeLists.txt \
-      --replace "CliTest_IntegrityCheck.cpp" ""
+      --replace "CliTest_IntegrityCheck.cpp" "" \
+      --replace "CliTest_Setup.cpp" "" \
+      --replace "CliTest_WrongEnvironment.cpp" "" \
+      --replace "CryfsUnmountTest.cpp" ""
 
-    # downsize large file test as 4.5G is too big for Hydra:
+    # downsize large file test as 4.5G is too big for Hydra
     substituteInPlace test/cpp-utils/data/DataTest.cpp \
       --replace "(4.5L*1024*1024*1024)" "(0.5L*1024*1024*1024)"
   '';
@@ -51,32 +41,38 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
 
-  buildInputs = [ boost cryptopp curl fuse openssl ];
+  buildInputs = [ boost175 curl fuse openssl range-v3 spdlog ]
+    ++ lib.optional stdenv.cc.isClang llvmPackages.openmp;
 
-  checkInputs = [ gtest ];
+  #checkInputs = [ gtest ];
 
   cmakeFlags = [
+    "-DDEPENDENCY_CONFIG='../cmake-utils/DependenciesFromLocalSystem.cmake'"
     "-DCRYFS_UPDATE_CHECKS:BOOL=FALSE"
     "-DBoost_USE_STATIC_LIBS:BOOL=FALSE" # this option is case sensitive
-    "-DUSE_SYSTEM_LIBS:BOOL=TRUE"
     "-DBUILD_TESTING:BOOL=${if doCheck then "TRUE" else "FALSE"}"
-  ] ++ lib.optional doCheck "-DCMAKE_PREFIX_PATH=${gtest.dev}/lib/cmake";
+  ]; # ++ lib.optional doCheck "-DCMAKE_PREFIX_PATH=${gtest.dev}/lib/cmake";
 
   # macFUSE needs to be installed for the test to succeed on Darwin
   doCheck = !stdenv.isDarwin;
 
   checkPhase = ''
+    runHook preCheck
+    export HOME=$(mktemp -d)
+
     # Skip CMakeFiles directory and tests depending on fuse (does not work well with sandboxing)
     SKIP_IMPURE_TESTS="CMakeFiles|fspp|my-gtest-main"
 
-    for t in $(ls -d test/*/ | egrep -v "$SKIP_IMPURE_TESTS"); do
+    for t in $(ls -d test/*/ | grep -E -v "$SKIP_IMPURE_TESTS") ; do
       "./$t$(basename $t)-test"
     done
+
+    runHook postCheck
   '';
 
   meta = with lib; {
     description = "Cryptographic filesystem for the cloud";
-    homepage    = "https://www.cryfs.org";
+    homepage    = "https://www.cryfs.org/";
     license     = licenses.lgpl3;
     maintainers = with maintainers; [ peterhoeg c0bw3b ];
     platforms   = platforms.unix;
diff --git a/pkgs/tools/filesystems/cryfs/use-macfuse.patch b/pkgs/tools/filesystems/cryfs/use-macfuse.patch
deleted file mode 100644
index 47e7845cf3dc2..0000000000000
--- a/pkgs/tools/filesystems/cryfs/use-macfuse.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-diff --git a/.travisci/install.sh b/.travisci/install.sh
-index 9057a75b..2929c360 100755
---- a/.travisci/install.sh
-+++ b/.travisci/install.sh
-@@ -6,12 +6,11 @@ set -e
- if [ "${CXX}" == "g++" ]; then
-     # We need to uninstall oclint because it creates a /usr/local/include/c++ symlink that clashes with the gcc5 package
-     # see https://github.com/Homebrew/homebrew-core/issues/21172
--    brew cask uninstall oclint
-+    brew uninstall oclint
-     brew install gcc@7
- fi
- 
--brew cask install osxfuse
--brew install libomp
-+brew install libomp pkg-config macfuse
- 
- # By default, travis only fetches the newest 50 commits. We need more in case we're further from the last version tag, so the build doesn't fail because it can't generate the version number.
- git fetch --unshallow --tags
-diff --git a/README.md b/README.md
-index b0f4a684..7001119a 100644
---- a/README.md
-+++ b/README.md
-@@ -19,7 +19,7 @@ OSX
- 
- CryFS is distributed via Homebrew. Just do
- 
--    brew cask install osxfuse
-+    brew install osxfuse
-     brew install cryfs
-     
- Windows (experimental)
-@@ -45,6 +45,7 @@ Requirements
-   - Git (for getting the source code)
-   - GCC version >= 5.0 or Clang >= 4.0
-   - CMake version >= 3.0 
-+  - pkg-config (on Unix)
-   - libcurl4 (including development headers)
-   - Boost libraries version >= 1.65.1 (including development headers)
-     - filesystem
-@@ -53,20 +54,20 @@ Requirements
-     - program_options
-     - thread
-   - SSL development libraries (including development headers, e.g. libssl-dev)
--  - libFUSE version >= 2.8.6 (including development headers), on Mac OS X instead install osxfuse from https://osxfuse.github.io/
-+  - libFUSE version >= 2.8.6 (including development headers), on Mac OS X instead install macFUSE from https://osxfuse.github.io/
-   - Python >= 2.7
-   - OpenMP
- 
- You can use the following commands to install these requirements
- 
-         # Ubuntu
--        $ sudo apt install git g++ cmake make libcurl4-openssl-dev libboost-filesystem-dev libboost-system-dev libboost-chrono-dev libboost-program-options-dev libboost-thread-dev libssl-dev libfuse-dev python
-+        $ sudo apt install git g++ cmake make pkg-config libcurl4-openssl-dev libboost-filesystem-dev libboost-system-dev libboost-chrono-dev libboost-program-options-dev libboost-thread-dev libssl-dev libfuse-dev python
- 
-         # Fedora
--        sudo dnf install git gcc-c++ cmake make libcurl-devel boost-devel boost-static openssl-devel fuse-devel python
-+        sudo dnf install git gcc-c++ cmake make pkgconf libcurl-devel boost-devel boost-static openssl-devel fuse-devel python
- 
-         # Macintosh
--        brew install cmake boost openssl libomp
-+        brew install cmake pkg-config boost openssl libomp
- 
- Build & Install
- ---------------
-@@ -116,17 +117,17 @@ On most systems, CMake should find the libraries automatically. However, that do
- 
-         cmake .. -DBoost_USE_STATIC_LIBS=off
- 
--2. **Fuse/Osxfuse library not found**
-+2. **Fuse library not found**
- 
-     Pass in the library path with
- 
--        cmake .. -DFUSE_LIB_PATH=/path/to/fuse/or/osxfuse
-+        PKG_CONFIG_PATH=/path-to-fuse-or-macFUSE/lib/pkgconfig cmake ..
- 
--3. **Fuse/Osxfuse headers not found**
-+3. **Fuse headers not found**
- 
-     Pass in the include path with
- 
--        cmake .. -DCMAKE_CXX_FLAGS="-I/path/to/fuse/or/osxfuse/headers"
-+        PKG_CONFIG_PATH=/path-to-fuse-or-macFUSE/lib/pkgconfig cmake ..
- 
- 4. **Openssl headers not found**
- 
-diff --git a/cmake-utils/utils.cmake b/cmake-utils/utils.cmake
-index da4dff8c..66021c5c 100644
---- a/cmake-utils/utils.cmake
-+++ b/cmake-utils/utils.cmake
-@@ -157,33 +157,6 @@ function(require_clang_version VERSION)
-     endif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- endfunction(require_clang_version)
- 
--##################################################
--# Find the location of a library and return its full path in OUTPUT_VARIABLE.
--# If PATH_VARIABLE points to a defined variable, then the library will only be searched in this path.
--# If PATH_VARIABLE points to a undefined variable, default system locations will be searched.
--#
--# Uses (the following will search for fuse in system locations by default, and if the user passes -DFUSE_LIB_PATH to cmake, it will only search in this path.
--#  find_library_with_path(MYLIBRARY fuse FUSE_LIB_PATH)
--#  target_link_library(target ${MYLIBRARY})
--##################################################
--function(find_library_with_path OUTPUT_VARIABLE LIBRARY_NAME PATH_VARIABLE)
--    if(${PATH_VARIABLE})
--        find_library(${OUTPUT_VARIABLE} ${LIBRARY_NAME} PATHS ${${PATH_VARIABLE}} NO_DEFAULT_PATH)
--        if (${OUTPUT_VARIABLE} MATCHES NOTFOUND)
--            message(FATAL_ERROR "Didn't find ${LIBRARY_NAME} in path specified by the ${PATH_VARIABLE} parameter (${${PATH_VARIABLE}}). Pass in the correct path or remove the parameter to try common system locations.")
--        else(${OUTPUT_VARIABLE} MATCHES NOTFOUND)
--            message(STATUS "Found ${LIBRARY_NAME} in user-defined path ${${PATH_VARIABLE}}")
--        endif(${OUTPUT_VARIABLE} MATCHES NOTFOUND)
--    else(${PATH_VARIABLE})
--        find_library(${OUTPUT_VARIABLE} ${LIBRARY_NAME})
--        if (${OUTPUT_VARIABLE} MATCHES NOTFOUND)
--            message(FATAL_ERROR "Didn't find ${LIBRARY_NAME} library. If ${LIBRARY_NAME} is installed, try passing in the library location with -D${PATH_VARIABLE}=/path/to/${LIBRARY_NAME}/lib.")
--        else(${OUTPUT_VARIABLE} MATCHES NOTFOUND)
--            message(STATUS "Found ${LIBRARY_NAME} in system location")
--        endif(${OUTPUT_VARIABLE} MATCHES NOTFOUND)
--    endif(${PATH_VARIABLE})
--endfunction(find_library_with_path)
--
- include(cmake-utils/TargetArch.cmake)
- function(get_target_architecture output_var)
- 	target_architecture(local_output_var)
-diff --git a/src/fspp/fuse/CMakeLists.txt b/src/fspp/fuse/CMakeLists.txt
-index b991bd72..8df3dbb7 100644
---- a/src/fspp/fuse/CMakeLists.txt
-+++ b/src/fspp/fuse/CMakeLists.txt
-@@ -35,12 +35,12 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
-     DESTINATION "${CMAKE_INSTALL_BINDIR}"
-   )
- 
--elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
--  set(CMAKE_FIND_FRAMEWORK LAST)
--  find_library_with_path(FUSE "osxfuse" FUSE_LIB_PATH)
--  target_link_libraries(${PROJECT_NAME} PUBLIC ${FUSE})
--else() # Linux
--  find_library_with_path(FUSE "fuse" FUSE_LIB_PATH)
--  target_link_libraries(${PROJECT_NAME} PUBLIC ${FUSE})
-+else() # Linux and macOS
-+  find_package(PkgConfig REQUIRED)
-+  pkg_check_modules(Fuse REQUIRED IMPORTED_TARGET fuse)
-+  target_link_libraries(${PROJECT_NAME} PUBLIC PkgConfig::Fuse)
- endif()
- 
-+if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-+  set(CMAKE_FIND_FRAMEWORK LAST)
-+endif()
-diff --git a/src/fspp/fuse/Fuse.cpp b/src/fspp/fuse/Fuse.cpp
-index 52cd5644..df0b400d 100644
---- a/src/fspp/fuse/Fuse.cpp
-+++ b/src/fspp/fuse/Fuse.cpp
-@@ -295,7 +295,7 @@ vector<char *> Fuse::_build_argv(const bf::path &mountdir, const vector<string>
-   // Make volume name default to mountdir on macOS
-   _add_fuse_option_if_not_exists(&argv, "volname", mountdir.filename().string());
- #endif
--  // TODO Also set read/write size for osxfuse. The options there are called differently.
-+  // TODO Also set read/write size for macFUSE. The options there are called differently.
-   // large_read not necessary because reads are large anyhow. This option is only important for 2.4.
-   //argv.push_back(_create_c_string("-o"));
-   //argv.push_back(_create_c_string("large_read"));
-diff --git a/src/fspp/fuse/params.h b/src/fspp/fuse/params.h
-index 4a45ef79..9903ac82 100644
---- a/src/fspp/fuse/params.h
-+++ b/src/fspp/fuse/params.h
-@@ -3,14 +3,6 @@
- #define MESSMER_FSPP_FUSE_PARAMS_H_
- 
- #define FUSE_USE_VERSION 26
--#if defined(__linux__) || defined(__FreeBSD__)
- #include <fuse.h>
--#elif __APPLE__
--#include <osxfuse/fuse.h>
--#elif defined(_MSC_VER)
--#include <fuse.h> // Dokany fuse
--#else
--#error System not supported
--#endif
- 
- #endif
-diff --git a/src/fspp/impl/FilesystemImpl.cpp b/src/fspp/impl/FilesystemImpl.cpp
-index bc0ffbd7..23b28601 100644
---- a/src/fspp/impl/FilesystemImpl.cpp
-+++ b/src/fspp/impl/FilesystemImpl.cpp
-@@ -321,7 +321,7 @@ void FilesystemImpl::statfs(struct ::statvfs *fsstat) {
-   fsstat->f_namemax = stat.max_filename_length;
- 
-   //f_frsize, f_favail, f_fsid and f_flag are ignored in fuse, see http://fuse.sourcearchive.com/documentation/2.7.0/structfuse__operations_4e765e29122e7b6b533dc99849a52655.html#4e765e29122e7b6b533dc99849a52655
--  fsstat->f_frsize = fsstat->f_bsize; // even though this is supposed to be ignored, osxfuse needs it.
-+  fsstat->f_frsize = fsstat->f_bsize; // even though this is supposed to be ignored, macFUSE needs it.
- }
- 
- void FilesystemImpl::createSymlink(const bf::path &to, const bf::path &from, ::uid_t uid, ::gid_t gid) {
-diff --git a/test/fspp/testutils/FuseThread.cpp b/test/fspp/testutils/FuseThread.cpp
-index 277a2dac..7f3638db 100644
---- a/test/fspp/testutils/FuseThread.cpp
-+++ b/test/fspp/testutils/FuseThread.cpp
-@@ -23,7 +23,7 @@ void FuseThread::start(const bf::path &mountDir, const vector<string> &fuseOptio
-   //Wait until it is running (busy waiting is simple and doesn't hurt much here)
-   while(!_fuse->running()) {}
- #ifdef __APPLE__
--  // On Mac OS X, _fuse->running() returns true too early, because osxfuse calls init() when it's not ready yet. Give it a bit time.
-+  // On Mac OS X, _fuse->running() returns true too early, because macFUSE calls init() when it's not ready yet. Give it a bit time.
-   std::this_thread::sleep_for(std::chrono::milliseconds(200));
- #endif
- }
diff --git a/pkgs/tools/filesystems/davfs2/default.nix b/pkgs/tools/filesystems/davfs2/default.nix
index 2b573f9afdb11..ab9609635c5ef 100644
--- a/pkgs/tools/filesystems/davfs2/default.nix
+++ b/pkgs/tools/filesystems/davfs2/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "davfs2";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchurl {
     url = "mirror://savannah/davfs2/davfs2-${version}.tar.gz";
-    sha256 = "sha256-LmtnVoW9kXdyvmDwmZrgmMgPef8g3BMej+xFR8u2O1A=";
+    sha256 = "sha256-zj65SOzlgqUck0zLDMcOZZg5FycXyv8XP2ml4q+QxcA=";
   };
 
   buildInputs = [ neon zlib ];
diff --git a/pkgs/tools/filesystems/exfatprogs/default.nix b/pkgs/tools/filesystems/exfatprogs/default.nix
index 88e50a2adc3a3..7bce3ffcf6666 100644
--- a/pkgs/tools/filesystems/exfatprogs/default.nix
+++ b/pkgs/tools/filesystems/exfatprogs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exfatprogs";
-  version = "1.1.2";
+  version = "1.1.3";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "19pbybgbfnvjb3n944ihrn1r8ch4dm8dr0d44d6w7p63dcp372xy";
+    sha256 = "sha256-idP3wEGGJcSH4DDFLj1XPRKcLkFEsvtv0ytK89bmj5I=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook file ];
diff --git a/pkgs/tools/filesystems/fatsort/default.nix b/pkgs/tools/filesystems/fatsort/default.nix
index 7c9edf2f84d9c..6db496242d244 100644
--- a/pkgs/tools/filesystems/fatsort/default.nix
+++ b/pkgs/tools/filesystems/fatsort/default.nix
@@ -1,12 +1,12 @@
 {lib, stdenv, fetchurl, help2man}:
 
 stdenv.mkDerivation rec {
-  version = "1.6.3.622";
+  version = "1.6.4.625";
   pname = "fatsort";
 
   src = fetchurl {
     url = "mirror://sourceforge/fatsort/${pname}-${version}.tar.xz";
-    sha256 = "1z2nabm38lg56h05yx3jjsndbqxk1zbjcisrczzamypn13m98728";
+    sha256 = "sha256-mm+JoGQLt4LYL/I6eAyfCuw9++RoLAqO2hV+CBBkLq0=";
   };
 
   patches = [ ./fatsort-Makefiles.patch ];
diff --git a/pkgs/tools/filesystems/fuse-overlayfs/default.nix b/pkgs/tools/filesystems/fuse-overlayfs/default.nix
index 3fc319d5b7483..28109560ac295 100644
--- a/pkgs/tools/filesystems/fuse-overlayfs/default.nix
+++ b/pkgs/tools/filesystems/fuse-overlayfs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fuse-overlayfs";
-  version = "1.7.1";
+  version = "1.8";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wSJjA9eZCb3DJed07xuCS0M7ey3DnyuIlp9kvFvDDC8=";
+    sha256 = "sha256-VqtBJ8HRyhjwKVoRu6+EArZMVbzXkaK89yV56MzRUJo=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/tools/filesystems/gcsfuse/default.nix b/pkgs/tools/filesystems/gcsfuse/default.nix
index 345b87a911d41..b22273095fa1a 100644
--- a/pkgs/tools/filesystems/gcsfuse/default.nix
+++ b/pkgs/tools/filesystems/gcsfuse/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "gcsfuse";
-  version = "0.37.0";
+  version = "0.38.0";
 
   src = fetchFromGitHub {
     owner = "googlecloudplatform";
     repo = "gcsfuse";
     rev = "v${version}";
-    sha256 = "sha256-X7EZKHdSWQ9HKaXtoeDGNnzsBmffqHvZ6rfQXpjYTB8=";
+    sha256 = "sha256-5qn20Vqtvuld9/IBW/3j+8C3ac8xJ9kRMTiL6GsOrrE=";
   };
 
   goPackagePath = "github.com/googlecloudplatform/gcsfuse";
diff --git a/pkgs/tools/filesystems/glusterfs/default.nix b/pkgs/tools/filesystems/glusterfs/default.nix
index 90148cbf2a456..dab69649fdcf4 100644
--- a/pkgs/tools/filesystems/glusterfs/default.nix
+++ b/pkgs/tools/filesystems/glusterfs/default.nix
@@ -1,8 +1,8 @@
-{lib, stdenv, fetchFromGitHub, fuse, bison, flex_2_5_35, openssl, python3, ncurses, readline,
+{lib, stdenv, fetchFromGitHub, fuse, bison, flex, openssl, python3, ncurses, readline,
  autoconf, automake, libtool, pkg-config, zlib, libaio, libxml2, acl, sqlite,
  liburcu, liburing, attr, makeWrapper, coreutils, gnused, gnugrep, which,
  openssh, gawk, findutils, util-linux, lvm2, btrfs-progs, e2fsprogs, xfsprogs, systemd,
- rsync, glibc, rpcsvc-proto, libtirpc
+ rsync, glibc, rpcsvc-proto, libtirpc, gperftools, nixosTests
 }:
 let
   # NOTE: On each glusterfs release, it should be checked if gluster added
@@ -14,9 +14,9 @@ let
   #       can help with finding new Python scripts.
 
   buildInputs = [
-    fuse bison flex_2_5_35 openssl ncurses readline
+    fuse bison flex openssl ncurses readline
     autoconf automake libtool pkg-config zlib libaio libxml2
-    acl sqlite liburcu attr makeWrapper util-linux libtirpc
+    acl sqlite liburcu attr makeWrapper util-linux libtirpc gperftools
     liburing
     (python3.withPackages (pkgs: [
       pkgs.flask
@@ -55,13 +55,13 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "glusterfs";
-  version = "9.4";
+  version = "10.0";
 
   src = fetchFromGitHub {
     owner = "gluster";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ybs0dm7jskmfnmbg5fj8wi2aapbrwn4gbrx8ix6d8dzcl3pv78k";
+    sha256 = "sha256-n6HdXs5kLbEI8Gaw2KBtO3i8hhadb+MsshUve/DOYg0=";
   };
   inherit buildInputs propagatedBuildInputs;
 
@@ -85,6 +85,7 @@ in stdenv.mkDerivation rec {
   # but fails when the version is empty.
   # See upstream GlusterFS bug https://bugzilla.redhat.com/show_bug.cgi?id=1452705
   preConfigure = ''
+    patchShebangs build-aux/pkg-version
     echo "v${version}" > VERSION
     ./autogen.sh
     export PYTHON=${python3}/bin/python
@@ -181,6 +182,10 @@ in stdenv.mkDerivation rec {
     rm -r $out/bin/conf.py
   '';
 
+  passthru.tests = {
+    glusterfs = nixosTests.glusterfs;
+  };
+
   meta = with lib; {
     description = "Distributed storage system";
     homepage = "https://www.gluster.org";
diff --git a/pkgs/tools/filesystems/goofys/default.nix b/pkgs/tools/filesystems/goofys/default.nix
index 94ce7be08e556..16c555473f3c7 100644
--- a/pkgs/tools/filesystems/goofys/default.nix
+++ b/pkgs/tools/filesystems/goofys/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildGoModule
 , fetchFromGitHub
 }:
@@ -29,6 +30,7 @@ buildGoModule {
     description = "A high-performance, POSIX-ish Amazon S3 file system written in Go.";
     license = [ lib.licenses.mit ];
     maintainers = [ lib.maintainers.adisbladis ];
+    broken = stdenv.isDarwin; # needs to update gopsutil to at least v3.21.3 to include https://github.com/shirou/gopsutil/pull/1042
   };
 
 }
diff --git a/pkgs/tools/filesystems/hfsprogs/default.nix b/pkgs/tools/filesystems/hfsprogs/default.nix
index 8a2a8572b5ca7..877d95c5b3d90 100644
--- a/pkgs/tools/filesystems/hfsprogs/default.nix
+++ b/pkgs/tools/filesystems/hfsprogs/default.nix
@@ -1,12 +1,11 @@
 { lib, stdenv, fetchurl, openssl, libbsd }:
 
-let version = "332.25";
-    package_name = "hfsprogs"; in
-stdenv.mkDerivation {
-  name = "${package_name}-${version}";
+stdenv.mkDerivation rec {
+  version = "332.25";
+  pname = "hfsprogs";
   srcs = [
     (fetchurl {
-      url = "http://ftp.de.debian.org/debian/pool/main/h/hfsprogs/${package_name}_${version}-11.debian.tar.gz";
+      url = "http://ftp.de.debian.org/debian/pool/main/h/hfsprogs/hfsprogs_${version}-11.debian.tar.gz";
       sha256 = "62d9b8599c66ebffbc57ce5d776e20b41341130d9b27341d63bda08460ebde7c";
     })
     (fetchurl {
@@ -29,13 +28,13 @@ stdenv.mkDerivation {
   installPhase = ''
     # Create required package directories
     install -m 755 -d "$out/bin"
-    install -m 755 -d "$out/share/${package_name}"
+    install -m 755 -d "$out/share/hfsprogs"
     install -m 755 -d "$out/share/man/man8/"
     # Copy executables
     install -m 755 "newfs_hfs.tproj/newfs_hfs" "$out/bin/mkfs.hfsplus"
     install -m 755 "fsck_hfs.tproj/fsck_hfs" "$out/bin/fsck.hfsplus"
     # Copy shared data
-    install -m 644 "newfs_hfs.tproj/hfsbootdata.img" "$out/share/${package_name}/hfsbootdata"
+    install -m 644 "newfs_hfs.tproj/hfsbootdata.img" "$out/share/hfsprogs/hfsbootdata"
     # Copy man pages
     install -m 644 "newfs_hfs.tproj/newfs_hfs.8" "$out/share/man/man8/mkfs.hfsplus.8"
     install -m 644 "fsck_hfs.tproj/fsck_hfs.8" "$out/share/man/man8/fsck.hfsplus.8"
diff --git a/pkgs/tools/filesystems/httpdirfs/default.nix b/pkgs/tools/filesystems/httpdirfs/default.nix
new file mode 100644
index 0000000000000..e027d5dd8df52
--- /dev/null
+++ b/pkgs/tools/filesystems/httpdirfs/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, pkg-config, curl, expat, fuse, gumbo, libuuid }:
+
+stdenv.mkDerivation rec {
+  pname = "httpdirfs";
+  version = "1.2.3";
+
+  src = fetchFromGitHub {
+    owner = "fangfufu";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-rdeBlAV3t/si9x488tirUGLZRYAxh13zdRIQe0OPd+A=";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ curl expat fuse gumbo libuuid ];
+
+  makeFlags = [ "prefix=${placeholder "out"}" ];
+
+  meta = with lib; {
+    description = "A FUSE filesystem for HTTP directory listings";
+    homepage = "https://github.com/fangfufu/httpdirfs";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ sbruder schnusch ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/filesystems/lfs/default.nix b/pkgs/tools/filesystems/lfs/default.nix
index 65e446fc42f9e..38746981588e6 100644
--- a/pkgs/tools/filesystems/lfs/default.nix
+++ b/pkgs/tools/filesystems/lfs/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lfs";
-  version = "1.2.1";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Cf9W0LnlvMm0XZe6lvx8hQejcwyfxBC6VKltAAfRD5I=";
+    sha256 = "sha256-3zGCVT3SfQm72CF2MasT7k5r1Jx9DRUrXKHBSpvcv10=";
   };
 
-  cargoSha256 = "sha256-skP9VJuRMCyA06YjGbyNIt/DljP3fQQOIQDy6k10zGI=";
+  cargoSha256 = "sha256-Q4eNvOY5c4KybDKVhcOznxGPUgyjgEYPD8+9r6sECXA=";
 
   meta = with lib; {
     description = "Get information on your mounted disks";
diff --git a/pkgs/tools/filesystems/mergerfs/default.nix b/pkgs/tools/filesystems/mergerfs/default.nix
index 6f0a40d76afef..9a221dcfc2f64 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.32.4";
+  version = "2.33.3";
 
   src = fetchFromGitHub {
     owner = "trapexit";
     repo = pname;
     rev = version;
-    sha256 = "sha256-VTnAAJWya1JLZA0gjzpUsdnO5XQP8sJzEP8qHBH+t5k=";
+    sha256 = "sha256-hZA7AkFEuSHp84Zn+m9+VVr4UewbbzeQL1n2bkUOX0Y=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/filesystems/mp3fs/default.nix b/pkgs/tools/filesystems/mp3fs/default.nix
index 1b80adc843a67..6f872500e6b13 100644
--- a/pkgs/tools/filesystems/mp3fs/default.nix
+++ b/pkgs/tools/filesystems/mp3fs/default.nix
@@ -1,18 +1,35 @@
-{ lib, stdenv, fetchurl, flac, fuse, lame, libid3tag, pkg-config }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, flac
+, fuse
+, lame
+, libid3tag
+, libvorbis
+, autoreconfHook
+, pkg-config
+, pandoc
+}:
 
 stdenv.mkDerivation rec {
   pname = "mp3fs";
-  version = "0.91";
+  version = "1.1.1";
 
-  src = fetchurl {
-    url = "https://github.com/khenriks/mp3fs/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "14ngiqg24p3a0s6hp33zjl4i46d8qn4v9id36psycq3n3csmwyx4";
+  src = fetchFromGitHub {
+    owner = "khenriks";
+    repo = "mp3fs";
+    rev = "v${version}";
+    sha256 = "sha256-dF+DfkNKvYOucS6KjYR1MMGxayM+1HVS8mbmaavmgKM=";
   };
 
-  patches = [ ./fix-statfs-operation.patch ];
+  postPatch = ''
+    substituteInPlace src/mp3fs.cc \
+      --replace "#include <fuse_darwin.h>" "" \
+      --replace "osxfuse_version()" "fuse_version()"
+  '';
 
-  buildInputs = [ flac fuse lame libid3tag ];
-  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ flac fuse lame libid3tag libvorbis ];
+  nativeBuildInputs = [ autoreconfHook pkg-config pandoc ];
 
   enableParallelBuilding = true;
 
@@ -20,13 +37,14 @@ stdenv.mkDerivation rec {
     description = "FUSE file system that transparently transcodes to MP3";
     longDescription = ''
       A read-only FUSE filesystem which transcodes between audio formats
-      (currently only FLAC to MP3) on the fly when files are opened and read.
-      It can let you use a FLAC collection with software and/or hardware
-      which only understands the MP3 format, or transcode files through
-      simple drag-and-drop in a file browser.
+      (currently FLAC and Ogg Vorbis to MP3) on the fly when opened and read.
+      This can let you use a FLAC or Ogg Vorbis collection with software
+      and/or hardware which only understands the MP3 format, or transcode
+      files through simple drag-and-drop in a file browser.
     '';
     homepage = "https://khenriks.github.io/mp3fs/";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
+    maintainers = with maintainers; [ Luflosi ];
   };
 }
diff --git a/pkgs/tools/filesystems/mp3fs/fix-statfs-operation.patch b/pkgs/tools/filesystems/mp3fs/fix-statfs-operation.patch
deleted file mode 100644
index 9b3094e60053d..0000000000000
--- a/pkgs/tools/filesystems/mp3fs/fix-statfs-operation.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From fea072084ff9d7c4d2c688059a2462bb0e59a2ec Mon Sep 17 00:00:00 2001
-From: K Henriksson <kthenriksson@gmail.com>
-Date: Wed, 27 Aug 2014 21:55:18 -0700
-Subject: [PATCH] Fix statfs operation
-
-The statfs implementation does not properly translate names back to the
-original, since the major encoding rewrite. This corrects that, and
-should fix issue #27.
----
- src/fuseops.c | 15 +++++++++++++--
- 1 file changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/src/fuseops.c b/src/fuseops.c
-index e7b4e7e..c333cbd 100644
---- a/src/fuseops.c
-+++ b/src/fuseops.c
-@@ -337,9 +337,20 @@ static int mp3fs_statfs(const char *path, struct statvfs *stbuf) {
-     if (!origpath) {
-         goto translate_fail;
-     }
--    
-+
-+    /* pass-through for regular files */
-+    if (statvfs(origpath, stbuf) == 0) {
-+        goto passthrough;
-+    } else {
-+        /* Not really an error. */
-+        errno = 0;
-+    }
-+
-+    find_original(origpath);
-+
-     statvfs(origpath, stbuf);
--    
-+
-+passthrough:
-     free(origpath);
- translate_fail:
-     return -errno;
diff --git a/pkgs/tools/filesystems/mtools/default.nix b/pkgs/tools/filesystems/mtools/default.nix
index 41259f2a45e56..1f474f5beb075 100644
--- a/pkgs/tools/filesystems/mtools/default.nix
+++ b/pkgs/tools/filesystems/mtools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mtools";
-  version = "4.0.35";
+  version = "4.0.36";
 
   src = fetchurl {
     url = "mirror://gnu/mtools/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-NHaeFzdR0vDYkaCMdsgEJ+kpuO5DQ4AZuGZsw9ekR0k=";
+    sha256 = "sha256-5cDlrfLfu59yZJ06gpn/b7c/Jp+DMKKXXZG8xQVSQPQ=";
   };
 
   patches = lib.optional stdenv.isDarwin ./UNUSED-darwin.patch;
diff --git a/pkgs/tools/filesystems/netatalk/default.nix b/pkgs/tools/filesystems/netatalk/default.nix
index 258b25c3693c8..e5e873b9ac564 100644
--- a/pkgs/tools/filesystems/netatalk/default.nix
+++ b/pkgs/tools/filesystems/netatalk/default.nix
@@ -1,6 +1,6 @@
-{ fetchurl, lib, stdenv, autoreconfHook, pkg-config, perl, python
+{ fetchurl, lib, stdenv, autoreconfHook, pkg-config, perl, python3
 , db, libgcrypt, avahi, libiconv, pam, openssl, acl
-, ed, libtirpc, libevent
+, ed, libtirpc, libevent, fetchpatch
 }:
 
 stdenv.mkDerivation rec {
@@ -15,9 +15,14 @@ stdenv.mkDerivation rec {
   patches = [
     ./no-suid.patch
     ./omitLocalstatedirCreation.patch
+    (fetchpatch {
+      name = "make-afpstats-python3-compatible.patch";
+      url = "https://github.com/Netatalk/Netatalk/commit/916b515705cf7ba28dc53d13202811c6e1fe6a9e.patch";
+      sha256 = "sha256-DAABpYjQPJLsQBhmtP30gA357w0Qn+AsnFgAeyDC/Rg=";
+    })
   ];
 
-  nativeBuildInputs = [ autoreconfHook pkg-config perl python python.pkgs.wrapPython ];
+  nativeBuildInputs = [ autoreconfHook pkg-config perl python3 python3.pkgs.wrapPython ];
 
   buildInputs = [ db libgcrypt avahi libiconv pam openssl acl libevent ];
 
@@ -46,7 +51,7 @@ stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
-    buildPythonPath ${python.pkgs.dbus-python}
+    buildPythonPath ${python3.pkgs.dbus-python}
     patchPythonScript $out/bin/afpstats
   '';
 
diff --git a/pkgs/tools/filesystems/nixpart/0.4/default.nix b/pkgs/tools/filesystems/nixpart/0.4/default.nix
index 7b773a61a5f24..2c024a24ba39c 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/default.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, python, buildPythonApplication
+{ lib, stdenv, fetchurl, fetchFromGitHub, python, buildPythonApplication
 , libselinux
 # Propagated to blivet
 , useNixUdev ? true
@@ -58,9 +58,11 @@ in buildPythonApplication rec {
   version = "0.4.1";
   disabled = python.isPy3k;
 
-  src = fetchurl {
-    url = "https://github.com/NixOS/nixpart/archive/v${version}.tar.gz";
-    sha256 = "0avwd8p47xy9cydlbjxk8pj8q75zyl68gw2w6fnkk78dcb1a3swp";
+  src = fetchFromGitHub {
+    owner = "NixOS";
+    repo = "nixpart";
+    rev = "v${version}";
+    sha256 = "sha256-edl3mRg9Bn9Bd6FJl4zf1WS7XRcHTL5ey9LuKhaZG7I=";
   };
 
   propagatedBuildInputs = [ blivet ];
diff --git a/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix b/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix
index ca349c7f42e4f..95cec1803807a 100644
--- a/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix
+++ b/pkgs/tools/filesystems/nixpart/0.4/lvm2.nix
@@ -1,14 +1,11 @@
 { lib, stdenv, fetchurl, fetchpatch, pkg-config, systemd, util-linux, coreutils }:
 
-let
-  v = "2.02.106";
-in
-
 stdenv.mkDerivation {
-  name = "lvm2-${v}";
+  pname = "lvm2";
+  version = "2.02.106";
 
   src = fetchurl {
-    url = "ftp://sources.redhat.com/pub/lvm2/releases/LVM2.${v}.tgz";
+    url = "ftp://sources.redhat.com/pub/lvm2/releases/LVM2.${version}.tgz";
     sha256 = "0nr833bl0q4zq52drjxmmpf7bs6kqxwa5kahwwxm9411khkxz0vc";
   };
 
diff --git a/pkgs/tools/filesystems/snapraid/default.nix b/pkgs/tools/filesystems/snapraid/default.nix
index 9365497f5fba4..9f5980a07e7df 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 = "11.6";
+  version = "12.0";
 
   src = fetchFromGitHub {
     owner = "amadvance";
     repo = "snapraid";
     rev = "v${version}";
-    sha256 = "sha256-nO0Ujo9je59C+zP7l9Pp7JEdsSfVAv+9EnAq4OtJ78o=";
+    sha256 = "sha256-CcJaxnbRvGYiQjU38qnTgNyim5aDQWmxhQv16ZT1F00=";
   };
 
   VERSION = version;
diff --git a/pkgs/tools/filesystems/wiimms-iso-tools/default.nix b/pkgs/tools/filesystems/wiimms-iso-tools/default.nix
index 70c4450140987..2b107d1af1917 100644
--- a/pkgs/tools/filesystems/wiimms-iso-tools/default.nix
+++ b/pkgs/tools/filesystems/wiimms-iso-tools/default.nix
@@ -1,7 +1,7 @@
-{lib, stdenv, fetchurl, zlib, ncurses, fuse}:
+{lib, stdenv, fetchurl, fetchpatch, zlib, ncurses, fuse}:
 
 stdenv.mkDerivation rec {
-  name = "wiimms-iso-tools";
+  pname = "wiimms-iso-tools";
   version = "3.02a";
 
   src = fetchurl {
@@ -11,7 +11,19 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ zlib ncurses fuse ];
 
-  patches = [ ./fix-paths.diff ];
+  patches = [
+    ./fix-paths.diff
+
+    # Pull pending upstream fix for ncurses-6.3:
+    #  https://github.com/Wiimm/wiimms-iso-tools/pull/14
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/Wiimm/wiimms-iso-tools/commit/3f1e84ec6915cc4f658092d33411985bd3eaf4e6.patch";
+      sha256 = "18cfri4y1082phg6fzh402gk5ri24wr8ff4zl8v5rlgjndh610im";
+      stripLen = 1;
+    })
+  ];
+
   postPatch = ''
     patchShebangs setup.sh
     patchShebangs gen-template.sh
diff --git a/pkgs/tools/games/ajour/default.nix b/pkgs/tools/games/ajour/default.nix
index ed75e347db0b1..49fef3edca9f4 100644
--- a/pkgs/tools/games/ajour/default.nix
+++ b/pkgs/tools/games/ajour/default.nix
@@ -11,6 +11,7 @@
 , kdialog
 , zenity
 , openssl
+, libglvnd
 , libX11
 , libxcb
 , libXcursor
@@ -23,6 +24,7 @@
 
 let
   rpathLibs = [
+    libglvnd
     libXcursor
     libXi
     libxkbcommon
@@ -34,16 +36,16 @@ let
 
 in rustPlatform.buildRustPackage rec {
   pname = "Ajour";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "casperstorm";
     repo = "ajour";
     rev = version;
-    sha256 = "sha256-tUm5d2JTvYyNFnKgId8mivWTB+v4TURZX293fMd11pk=";
+    sha256 = "sha256-oVaNLclU0EVNtxAASE8plXcC+clkwhBeb9pz1vXufV0=";
   };
 
-  cargoSha256 = "sha256-SPmfXJLIA4OGEm/S2mi5xmIE9ng7hY3aHm/PCT7pg0E=";
+  cargoSha256 = "sha256-Q+wYBLsZN8YQtUJfrxmjImbnWRPmngJPB8sDG65LuJY=";
 
   nativeBuildInputs = [
     autoPatchelfHook
diff --git a/pkgs/tools/games/joystickwake/default.nix b/pkgs/tools/games/joystickwake/default.nix
index 4f324c36d84a9..f8f962f6eef74 100644
--- a/pkgs/tools/games/joystickwake/default.nix
+++ b/pkgs/tools/games/joystickwake/default.nix
@@ -1,13 +1,13 @@
 { lib, python3, fetchFromGitHub }:
 python3.pkgs.buildPythonApplication rec {
   pname = "joystickwake";
-  version = "0.2.5";
+  version = "0.3";
 
   src = fetchFromGitHub {
     owner = "foresto";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1yhzv4gbz0c0ircxk91m1d4ygf14mla137z4nfxggmbvjs0aa4y0";
+    sha256 = "0f990bvykjjq2rzzbm158kajnqxigfzcrzap11dc415wkvn25k6q";
   };
 
   propagatedBuildInputs = with python3.pkgs; [ pyudev xlib ];
diff --git a/pkgs/tools/games/jpsxdec/0001-jpsxdec-hackfix-build-with-newer-JDKs.patch b/pkgs/tools/games/jpsxdec/0001-jpsxdec-hackfix-build-with-newer-JDKs.patch
new file mode 100644
index 0000000000000..17899ef328f14
--- /dev/null
+++ b/pkgs/tools/games/jpsxdec/0001-jpsxdec-hackfix-build-with-newer-JDKs.patch
@@ -0,0 +1,43 @@
+From 52662c71f7b043f374d4062d07a28b59ef010cbe Mon Sep 17 00:00:00 2001
+From: Zane van Iperen <zane@zanevaniperen.com>
+Date: Wed, 22 Sep 2021 18:41:36 +1000
+Subject: [PATCH] jpsxdec: hackfix build with newer JDKs
+
+---
+ jpsxdec/build.xml | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/jpsxdec/build.xml b/jpsxdec/build.xml
+index 713941c..f5aa902 100644
+--- a/jpsxdec/build.xml
++++ b/jpsxdec/build.xml
+@@ -43,8 +43,8 @@
+     <property name="build-lgpl.dir" location="${working.dir}/build-lgpl"/>
+     <property name="testbuild.dir"  location="${working.dir}/build-test"/>
+ 
+-    <property name="javac.target.ver" value="1.6"/>
+-    <property name="javac.source.ver" value="1.6" />
++    <property name="javac.target.ver" value="1.8"/>
++    <property name="javac.source.ver" value="1.8" />
+ 
+     <!-- output -->
+     <property name="release.dir"       location="${working.dir}/release"/>
+@@ -76,7 +76,6 @@
+             <compilerarg value="-Xlint:static"/>
+             <compilerarg value="-Xlint:unchecked"/>
+             <compilerarg value="-Xlint:varargs"/>
+-            <compilerarg value="-Werror"/>
+         </javac>
+ 
+         <!-- Copy over resources -->
+@@ -109,7 +108,6 @@
+             <compilerarg value="-Xlint:static"/>
+             <compilerarg value="-Xlint:unchecked"/>
+             <compilerarg value="-Xlint:varargs"/>
+-            <compilerarg value="-Werror"/>
+         </javac>
+             
+         <!-- Copy over resources -->
+-- 
+2.31.1
+
diff --git a/pkgs/tools/games/jpsxdec/default.nix b/pkgs/tools/games/jpsxdec/default.nix
new file mode 100644
index 0000000000000..2c18f29bbf335
--- /dev/null
+++ b/pkgs/tools/games/jpsxdec/default.nix
@@ -0,0 +1,84 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, jdk
+/*
+ * jPSXdec needs to be built with no later than JDK8, but
+ * should be run with the latest to get HiDPI fixes, etc.
+ */
+, jre ? jdk
+, ant
+, unoconv
+, makeWrapper
+, makeDesktopItem
+}:
+let
+  pname = "jpsxdec";
+  version = "1.05";
+
+  description = "Cross-platform PlayStation 1 audio and video converter";
+
+  desktopItem = makeDesktopItem {
+    name = pname;
+    exec = pname;
+    icon = pname;
+    comment = description;
+    desktopName = "jPSXdec";
+    categories = "AudioVideo;Utility;";
+  };
+in
+stdenv.mkDerivation rec {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "m35";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0wnfvvcyldf699b08lzlc0gshl7rn09a6q4i7jmr41izlcdszdbz";
+  };
+
+  nativeBuildInputs = [ ant jdk unoconv makeWrapper ];
+  buildInputs = [ jre ];
+
+  patches = [
+    ./0001-jpsxdec-hackfix-build-with-newer-JDKs.patch
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    cd jpsxdec
+    mkdir -p _ant/release/doc/
+    unoconv -d document -f pdf -o _ant/release/doc/jPSXdec-manual.pdf doc/jPSXdec-manual.odt
+
+    ant release
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,share/pixmaps}
+    mv _ant/release $out/jpsxdec
+
+    makeWrapper ${jre}/bin/java $out/bin/jpsxdec \
+      --add-flags "-jar $out/jpsxdec/jpsxdec.jar"
+
+    cp ${src}/jpsxdec/src/jpsxdec/gui/icon48.png $out/share/pixmaps/${pname}.png
+    ln -s ${desktopItem}/share/applications $out/share
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    inherit description;
+    homepage = "https://jpsxdec.blogspot.com/";
+    platforms = platforms.all;
+    license = {
+      url = "https://raw.githubusercontent.com/m35/jpsxdec/readme/.github/LICENSE.md";
+      free = true;
+    };
+    maintainers = with maintainers; [ zane ];
+  };
+}
diff --git a/pkgs/tools/games/minecraft/fabric-installer/default.nix b/pkgs/tools/games/minecraft/fabric-installer/default.nix
index ef978875049ed..41754ce872da7 100644
--- a/pkgs/tools/games/minecraft/fabric-installer/default.nix
+++ b/pkgs/tools/games/minecraft/fabric-installer/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fabric-installer";
-  version = "0.7.4";
+  version = "0.10.2";
 
   src = fetchurl {
     url = "https://maven.fabricmc.net/net/fabricmc/fabric-installer/${version}/fabric-installer-${version}.jar";
-    sha256 = "0s3nmwpq1qg90c27qh4anvvsg4yzsgcp6kwsb35fsiaaakxn0b8r";
+    sha256 = "sha256-xjnL1nURAr4z2OZKEqiC/E6+rSvDpxrfGwm/5Bvxxno=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/tools/games/minecraft/optifine/default.nix b/pkgs/tools/games/minecraft/optifine/default.nix
index 06425e6b67efe..b7ca74822c40d 100644
--- a/pkgs/tools/games/minecraft/optifine/default.nix
+++ b/pkgs/tools/games/minecraft/optifine/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "optifine";
-  version = "1.16.5_HD_U_G8";
+  version = "1.18.1_HD_U_H4";
 
   src = fetchurl {
     url = "https://optifine.net/download?f=OptiFine_${version}.jar";
-    sha256 = "0ks91d6n4vkgb5ykdrc67br2c69nqjr0xhp7rrkybg24xn8bqxiw";
+    sha256 = "325168569b21a2dcde82999876f69ec9d8af75202a7021691f2abede4d81dcec";
   };
 
   dontUnpack = true;
diff --git a/pkgs/tools/games/opentracker/default.nix b/pkgs/tools/games/opentracker/default.nix
index d774fcb8f1f00..a66d6f4aef53c 100644
--- a/pkgs/tools/games/opentracker/default.nix
+++ b/pkgs/tools/games/opentracker/default.nix
@@ -52,7 +52,6 @@ buildDotnetModule rec {
   ];
 
   autoPatchelfIgnoreMissingDeps = true; # Attempts to patchelf unneeded SOs
-  dontWrapGApps = true; # gappsWrapperArgs gets included when wrapping the application for dotnet.
 
   meta = with lib; {
     description = "A tracking application for A Link to the Past Randomizer";
diff --git a/pkgs/tools/games/opentracker/deps.nix b/pkgs/tools/games/opentracker/deps.nix
index fb3427dbbb49b..7898441d5395e 100644
--- a/pkgs/tools/games/opentracker/deps.nix
+++ b/pkgs/tools/games/opentracker/deps.nix
@@ -1,228 +1,228 @@
 { fetchNuGet }: [
-  (fetchNuGet { name = "Autofac"; version = "6.0.0"; sha256 = "1faz8j3caqh4f2w4bcicz5x67f63f6463jikg89sr9qmqbv778hn"; })
-  (fetchNuGet { name = "Autofac"; version = "6.1.0"; sha256 = "0g1iic7y19rm536dzsllabw7phbgb6wzghhpfmdxz7yp7zrfjk15"; })
-  (fetchNuGet { name = "Autofac.Extras.Moq"; version = "6.0.0"; sha256 = "1jbdzwr712iq11s3i24a4b7g6025djkmf40fcrfiqkihvdrfprcw"; })
-  (fetchNuGet { name = "Avalonia"; version = "0.10.0"; sha256 = "0wf8nqdj0xi6drzw676vm5ac2kaxcd76af4y1cirfw4j7lxvs344"; })
-  (fetchNuGet { name = "Avalonia.Angle.Windows.Natives"; version = "2.1.0.2020091801"; sha256 = "04jm83cz7vkhhr6n2c9hya2k8i2462xbf6np4bidk55as0jdq43a"; })
-  (fetchNuGet { name = "Avalonia.Controls.DataGrid"; version = "0.10.0"; sha256 = "0yry5kwbp03lznv2zay39p2ry2jsdf7s1syjzf93dd64pgl5bwpk"; })
-  (fetchNuGet { name = "Avalonia.Desktop"; version = "0.10.0"; sha256 = "1vwaxxnzcgkdrxvrkjcxpc9c839pxmm6ajq83xiqzn5f4vvx29di"; })
-  (fetchNuGet { name = "Avalonia.Diagnostics"; version = "0.10.0"; sha256 = "1fw6bbbm7g1w4s6hyskkx7p59i3p965bly8p50dmfs31ls01jfrx"; })
-  (fetchNuGet { name = "Avalonia.FreeDesktop"; version = "0.10.0"; sha256 = "08z3vybk474yxaipd7nqqr9xycgprggcri4lp61ns3p3fj599ydp"; })
-  (fetchNuGet { name = "Avalonia.Markup.Xaml.Loader"; version = "0.10.0"; sha256 = "05wdf7gc5v03gia29srq44g49ijqg45vygargm087m2s63i134jk"; })
-  (fetchNuGet { name = "Avalonia.Native"; version = "0.10.0"; sha256 = "1kfzn349rllp7ngydvxqn84hmgxrkbgf7mgrqwcagq809f73mzyp"; })
-  (fetchNuGet { name = "Avalonia.ReactiveUI"; version = "0.10.0"; sha256 = "0azkwfi72gy7158fpfs6i0iixixy00zfkgsh939pfzy7fkz5pq8m"; })
-  (fetchNuGet { name = "Avalonia.Remote.Protocol"; version = "0.10.0"; sha256 = "0527966nmjdhzdq6dwhjhyc79kmy56ymhxsmrp344jn43d67kmnr"; })
-  (fetchNuGet { name = "Avalonia.Skia"; version = "0.10.0"; sha256 = "1d5w7pl1xx9l250mhdq3jnpy5zl77j8n3ccjjxfg8sc7rnyd2fx9"; })
-  (fetchNuGet { name = "Avalonia.Win32"; version = "0.10.0"; sha256 = "0lyfmhh0q1dzzb5blp76phj894wl6ab0kn1pcprxqvj94dcwric8"; })
-  (fetchNuGet { name = "Avalonia.X11"; version = "0.10.0"; sha256 = "0asja6g20c6wzxmvx0knkdk6f5fbrx99n82zcrj4y2irhmmzjhxy"; })
-  (fetchNuGet { name = "Avalonia.Xaml.Behaviors"; version = "0.10.0"; sha256 = "10g6i9y00a13cy3y889y3z8i5p5arpif53q3xx9k6k0qzcq6zq51"; })
-  (fetchNuGet { name = "Avalonia.Xaml.Interactions"; version = "0.10.0"; sha256 = "0s1mha3m912lmzaw87a841807fcx150vmhwcbfb8mnhqf6qgdwjy"; })
-  (fetchNuGet { name = "Avalonia.Xaml.Interactions.DragAndDrop"; version = "0.10.0"; sha256 = "1hi9ii7r6xr6avac0a2fs1fq9x34iw23hn1qmnzskbj6jz1pzsbj"; })
-  (fetchNuGet { name = "Avalonia.Xaml.Interactivity"; version = "0.10.0"; sha256 = "0nqpxbn390g98vyhvp4rvbchxlrcc8vkjjkakgz15crk1irf941b"; })
-  (fetchNuGet { name = "Castle.Core"; version = "4.0.0"; sha256 = "10zq7mb1gvm946grw7fxa5dh1xwccqmk5jmwx6pqn7kbjp9frkpy"; })
-  (fetchNuGet { name = "DotNet.Bundle"; version = "0.9.13"; sha256 = "0awzvk62hgszm9b8ar87y862aj8nlm77d7hgfmp84mxny0ag03jl"; })
-  (fetchNuGet { name = "DynamicData"; version = "7.1.1"; sha256 = "14xcqkw87zbjljy1pb727kwq5a4dfmsf5vg99fq0xxb71q828nvh"; })
-  (fetchNuGet { name = "HarfBuzzSharp"; version = "2.6.1.7"; sha256 = "0xm4dr6cs5n1ywbbpp1jrxfk8rn1iy61kdm29kb6bqj1q0gv8zyv"; })
-  (fetchNuGet { name = "HarfBuzzSharp.NativeAssets.Linux"; version = "2.6.1.7"; sha256 = "1slackrhcwsjn3f6sa0nlrcynzmx5pbqv8j33l9w6z9w7ssq4wkn"; })
-  (fetchNuGet { name = "JetBrains.Annotations"; version = "2020.3.0"; sha256 = "04xlfqnfg3069f014q8f0vx7y70m8nldbf9fia4b50bp3rry2lv2"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "3.1.21"; sha256 = "056g9nv8a7n8zdbgzmyzmn3pbg52yq2kv5d1rcp7h6plwzgpiwql"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "3.1.21"; sha256 = "0akdzi35497v8yxr3a9q1g26cnx9vxnwv81kwxi293jklwnx8gsr"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "3.1.21"; sha256 = "16kya6xvi7k42sr8bxgpbz9116dj7g3i18ylpvji9qngdx41891v"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "3.1.21"; sha256 = "0rd3w3i6fzwhi71jcr8i0mchgfgpp1a0qhancg4dxsva032as4s6"; })
-  (fetchNuGet { name = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.2"; sha256 = "162vb5894zxps0cf5n9gc08an7gwybzz87allx3lsszvllr9ldx4"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.Common"; version = "3.9.0"; sha256 = "1x6l6kn8iv5gk1545nxs2gwzkb8gj4sb9kryai132l7yg9afjqik"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.CSharp"; version = "3.9.0"; sha256 = "0crb9x5rhija8y7b0iya9axcvinz2hv3bgf80bvz7kv6zpbpszkz"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "3.9.0"; sha256 = "0hrihj0q96vjlbfvkq9l4maqdf6rqdznr7cpj82iw51n8kbzj8s3"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.NetAnalyzers"; version = "5.0.3"; sha256 = "1l0zg9wl8yapjq9g2d979zhsmdkr8kfybmxnl7kvgkgldf114fbg"; })
-  (fetchNuGet { name = "Microsoft.CodeAnalysis.Scripting.Common"; version = "3.9.0"; sha256 = "0kds9i8bla540787qchbzayrg50ai40pxyai2vihc1m2l39h4mdf"; })
-  (fetchNuGet { name = "Microsoft.CodeCoverage"; version = "16.9.1"; sha256 = "18isx8w4kwnlk6hq5ay8i4lgzwhx0zg9brayfdk2lakagvv6yyaf"; })
-  (fetchNuGet { name = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
-  (fetchNuGet { name = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.21"; sha256 = "01kbhi29lhv6mg1zfsyakz3z8hfbxnc0kxy0fczl8xqviik9svx7"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.21"; sha256 = "1s5g9gk0hvs268q2zpc32m0my2m2ivlmsmza86797a9vkxr6pzw6"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Host.win-x64"; version = "3.1.21"; sha256 = "0dl4yakfmdkx6xr18f09cdnl11b4fyp23jg3msr8a25zqdqvcr29"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Host.win-x86"; version = "3.1.21"; sha256 = "1l5wh5c9bgnzph07cd72q08mr87lsczwl0vy0rzrsi7xpzryvw7l"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "3.1.21"; sha256 = "13692wqcww0w6x4nhyxpxwprdg6mx9xmlvv38m6fvp6g0m27r43v"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "3.1.21"; sha256 = "1p7fpcmx4m2374zjfh53i3mv4lkr8xrkz5lnawv95s7j005m07pc"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.win-x64"; version = "3.1.21"; sha256 = "02zgxzf8l607mh17900n7msga0yfcnqgd70rj1rlwj23plifykx1"; })
-  (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.win-x86"; version = "3.1.21"; sha256 = "1gsrajdhlyndwb0s1c03cbm7wh1yfiwpk075nrlfvicbc4m7h347"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "5.0.1"; sha256 = "12ilya3x6g5frbwmh41mwygax9v8vrycq3vnzhv3r258jwv69974"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
-  (fetchNuGet { name = "Microsoft.NETCore.Targets"; version = "5.0.0"; sha256 = "0z3qyv7qal5irvabc8lmkh58zsl42mrzd1i0sssvzhv4q4kl3cg6"; })
-  (fetchNuGet { name = "Microsoft.NET.Test.Sdk"; version = "16.9.1"; sha256 = "1761mvkp5mwhw150fvazdhh4ybvxpvx05g9znf8n1fqx832wxrw5"; })
-  (fetchNuGet { name = "Microsoft.TestPlatform.ObjectModel"; version = "16.9.1"; sha256 = "1igpx7ldxqx9fkrbhakd2bybc0dgpvj86zr30vpfj31ncm6lp4id"; })
-  (fetchNuGet { name = "Microsoft.TestPlatform.TestHost"; version = "16.9.1"; sha256 = "1frx5r7l0jd3j6my4s2qas13fkljgfn87a84xk8l7sisafpfsvzp"; })
-  (fetchNuGet { name = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
-  (fetchNuGet { name = "Microsoft.Win32.SystemEvents"; version = "5.0.0"; sha256 = "0sja4ba0mrvdamn0r9mhq38b9dxi08yb3c1hzh29n1z6ws1hlrcq"; })
-  (fetchNuGet { name = "Moq"; version = "4.7.0"; sha256 = "1y1lzg7scrzl5x8cxsbrgkpg79mf3v0ylnpgjw8q6hib2rhsi8ff"; })
-  (fetchNuGet { name = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "12.0.3"; sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x"; })
-  (fetchNuGet { name = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
-  (fetchNuGet { name = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
-  (fetchNuGet { name = "Packaging.Targets"; version = "0.1.155"; sha256 = "0iija7gskcbrj8qgj5lqxqsfpz8k58fbvjnix6rccpzgvb16dkhy"; })
-  (fetchNuGet { name = "ReactiveUI"; version = "12.1.1"; sha256 = "1mwv9fi2zazp9ddwci9xfzrmi4pyp8n69r8ilc4lp5lvr1c6chih"; })
-  (fetchNuGet { name = "ReactiveUI"; version = "13.2.2"; sha256 = "1f9jh3d8lblqpva4iy5c6qvnya3cc0fp6mva3f9z3q7ll8v4h62h"; })
-  (fetchNuGet { name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
-  (fetchNuGet { name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
-  (fetchNuGet { name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
-  (fetchNuGet { name = "runtime.native.System"; version = "4.0.0"; sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf"; })
-  (fetchNuGet { name = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
-  (fetchNuGet { name = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
-  (fetchNuGet { name = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
-  (fetchNuGet { name = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
-  (fetchNuGet { name = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
-  (fetchNuGet { name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
-  (fetchNuGet { name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
-  (fetchNuGet { name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
-  (fetchNuGet { name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
-  (fetchNuGet { name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
-  (fetchNuGet { name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
-  (fetchNuGet { name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
-  (fetchNuGet { name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
-  (fetchNuGet { name = "Serilog"; version = "2.10.0"; sha256 = "08bih205i632ywryn3zxkhb15dwgyaxbhmm1z3b5nmby9fb25k7v"; })
-  (fetchNuGet { name = "Serilog.Sinks.File"; version = "4.1.0"; sha256 = "1ry7p9hf1zlnai1j5zjhjp4dqm2agsbpq6cvxgpf5l8m26x6mgca"; })
-  (fetchNuGet { name = "Serilog.Sinks.File"; version = "5.0.0-dev-00909"; sha256 = "1rz1zzyamnl8g4ccscaaij2bkhpd4md4sr9k28i0zwvij4kpj22z"; })
-  (fetchNuGet { name = "SkiaSharp"; version = "2.80.2"; sha256 = "17n0f4gfxz69fzd7zmgimbxfja15vq902arap2rqjr1hxp8sck7g"; })
-  (fetchNuGet { name = "SkiaSharp.NativeAssets.Linux"; version = "2.80.2"; sha256 = "1951b7rpisaymb37j846jq01pjd05l4fjlnf56blh33ihxyj2jzi"; })
-  (fetchNuGet { name = "Splat"; version = "10.0.1"; sha256 = "18fzrn7xwjzxj4v3drs8djd3yf14bnq5n9n8vdnwfa1zk5jqpsb9"; })
-  (fetchNuGet { name = "Splat"; version = "9.6.1"; sha256 = "1sd3gbcv21vwl3spcpmy4d7nzcs0x6m72qj8qfbv4dvgpvbv5sdy"; })
-  (fetchNuGet { name = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
-  (fetchNuGet { name = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
-  (fetchNuGet { name = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
-  (fetchNuGet { name = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; })
-  (fetchNuGet { name = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
-  (fetchNuGet { name = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
-  (fetchNuGet { name = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; })
-  (fetchNuGet { name = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
-  (fetchNuGet { name = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
-  (fetchNuGet { name = "System.Collections.NonGeneric"; version = "4.0.1"; sha256 = "19994r5y5bpdhj7di6w047apvil8lh06lh2c2yv9zc4fc5g9bl4d"; })
-  (fetchNuGet { name = "System.Collections.Specialized"; version = "4.0.1"; sha256 = "1wbv7y686p5x169rnaim7sln67ivmv6r57falrnx8aap9y33mam9"; })
-  (fetchNuGet { name = "System.ComponentModel"; version = "4.0.1"; sha256 = "0v4qpmqlzyfad2kswxxj2frnaqqhz9201c3yn8fmmarx5vlzg52z"; })
-  (fetchNuGet { name = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
-  (fetchNuGet { name = "System.ComponentModel.Annotations"; version = "5.0.0"; sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j"; })
-  (fetchNuGet { name = "System.ComponentModel.Primitives"; version = "4.1.0"; sha256 = "0wb5mnaag0w4fnyc40x19j8v2vshxp266razw64bcqfyj1whb1q0"; })
-  (fetchNuGet { name = "System.ComponentModel.TypeConverter"; version = "4.1.0"; sha256 = "178cva9p1cs043h5n2fry5xkzr3wc9n0hwbxa8m3ymld9m6wcv0y"; })
-  (fetchNuGet { name = "System.Console"; version = "4.0.0"; sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; })
-  (fetchNuGet { name = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
-  (fetchNuGet { name = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
-  (fetchNuGet { name = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
-  (fetchNuGet { name = "System.Diagnostics.DiagnosticSource"; version = "4.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
-  (fetchNuGet { name = "System.Diagnostics.DiagnosticSource"; version = "4.7.1"; sha256 = "1mivaifniyrqwlnvzsfaxzrh2sd981bwzs3cbvs5wi7jjzbcqr4p"; })
-  (fetchNuGet { name = "System.Diagnostics.DiagnosticSource"; version = "5.0.1"; sha256 = "0mzw44wsm87vpslb9sn7rirxynpq9m3b00l7gl0q71m8shfh66qs"; })
-  (fetchNuGet { name = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
-  (fetchNuGet { name = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
-  (fetchNuGet { name = "System.Diagnostics.TraceSource"; version = "4.0.0"; sha256 = "1mc7r72xznczzf6mz62dm8xhdi14if1h8qgx353xvhz89qyxsa3h"; })
-  (fetchNuGet { name = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; })
-  (fetchNuGet { name = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
-  (fetchNuGet { name = "System.Drawing.Common"; version = "5.0.1"; sha256 = "14h722wq58k1wmgxmpws91xc7kh8109ijw0hcxjq9qkbhbi6pwmb"; })
-  (fetchNuGet { name = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
-  (fetchNuGet { name = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
-  (fetchNuGet { name = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
-  (fetchNuGet { name = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
-  (fetchNuGet { name = "System.Globalization.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; })
-  (fetchNuGet { name = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
-  (fetchNuGet { name = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
-  (fetchNuGet { name = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
-  (fetchNuGet { name = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
-  (fetchNuGet { name = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
-  (fetchNuGet { name = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
-  (fetchNuGet { name = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
-  (fetchNuGet { name = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
-  (fetchNuGet { name = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
-  (fetchNuGet { name = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
-  (fetchNuGet { name = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
-  (fetchNuGet { name = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
-  (fetchNuGet { name = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
-  (fetchNuGet { name = "System.Linq.Queryable"; version = "4.0.1"; sha256 = "11jn9k34g245yyf260gr3ldzvaqa9477w2c5nhb1p8vjx4xm3qaw"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
-  (fetchNuGet { name = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
-  (fetchNuGet { name = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
-  (fetchNuGet { name = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
-  (fetchNuGet { name = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
-  (fetchNuGet { name = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
-  (fetchNuGet { name = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
-  (fetchNuGet { name = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
-  (fetchNuGet { name = "System.Reactive"; version = "5.0.0"; sha256 = "1lafmpnadhiwxyd543kraxa3jfdpm6ipblxrjlibym9b1ykpr5ik"; })
-  (fetchNuGet { name = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
-  (fetchNuGet { name = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
-  (fetchNuGet { name = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
-  (fetchNuGet { name = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
-  (fetchNuGet { name = "System.Reflection.Emit"; version = "4.7.0"; sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; })
-  (fetchNuGet { name = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
-  (fetchNuGet { name = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
-  (fetchNuGet { name = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
-  (fetchNuGet { name = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
-  (fetchNuGet { name = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
-  (fetchNuGet { name = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
-  (fetchNuGet { name = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
-  (fetchNuGet { name = "System.Reflection.Metadata"; version = "5.0.0"; sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; })
-  (fetchNuGet { name = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
-  (fetchNuGet { name = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
-  (fetchNuGet { name = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
-  (fetchNuGet { name = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
-  (fetchNuGet { name = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
-  (fetchNuGet { name = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
-  (fetchNuGet { name = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
-  (fetchNuGet { name = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
-  (fetchNuGet { name = "System.Runtime"; version = "4.3.1"; sha256 = "03ch4d2acf6q037a4njxpll2kkx3dwzlg07yxr4z5m6j1kqgmm27"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "4.6.0"; sha256 = "0xmzi2gpbmgyfr75p24rqqsba3cmrqgmcv45lsqp5amgrdwd0f0m"; })
-  (fetchNuGet { name = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; })
-  (fetchNuGet { name = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
-  (fetchNuGet { name = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
-  (fetchNuGet { name = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
-  (fetchNuGet { name = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
-  (fetchNuGet { name = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
-  (fetchNuGet { name = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
-  (fetchNuGet { name = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
-  (fetchNuGet { name = "System.Runtime.Serialization.Primitives"; version = "4.3.0"; sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
-  (fetchNuGet { name = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
-  (fetchNuGet { name = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
-  (fetchNuGet { name = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
-  (fetchNuGet { name = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
-  (fetchNuGet { name = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
-  (fetchNuGet { name = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
-  (fetchNuGet { name = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; })
-  (fetchNuGet { name = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
-  (fetchNuGet { name = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
-  (fetchNuGet { name = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
-  (fetchNuGet { name = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
-  (fetchNuGet { name = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
-  (fetchNuGet { name = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
-  (fetchNuGet { name = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
-  (fetchNuGet { name = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
-  (fetchNuGet { name = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
-  (fetchNuGet { name = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
-  (fetchNuGet { name = "System.ValueTuple"; version = "4.5.0"; sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"; })
-  (fetchNuGet { name = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
-  (fetchNuGet { name = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
-  (fetchNuGet { name = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
-  (fetchNuGet { name = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
-  (fetchNuGet { name = "System.Xml.XmlDocument"; version = "4.0.1"; sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1"; })
-  (fetchNuGet { name = "System.Xml.XmlSerializer"; version = "4.0.11"; sha256 = "01nzc3gdslw90qfykq4qzr2mdnqxjl4sj0wp3fixiwdmlmvpib5z"; })
-  (fetchNuGet { name = "ThemeEditor.Controls.ColorPicker"; version = "0.10.0"; sha256 = "0sib6cf2xkss48rm3shbwr57rbzz7d2zq0fvjp0hwsa1mb985p2b"; })
-  (fetchNuGet { name = "Tmds.DBus"; version = "0.9.1"; sha256 = "095vinsbb9pbphbhh7x7rxvs8a3b9w1nnz7gxn9bw5is01qnhgdm"; })
-  (fetchNuGet { name = "WebSocketSharp-netstandard"; version = "1.0.1"; sha256 = "0q89wiqpli72333zsa04d1vzq9xj0583hn5mih9sdd84myksz5b0"; })
-  (fetchNuGet { name = "xunit"; version = "2.4.1"; sha256 = "0xf3kaywpg15flqaqfgywqyychzk15kz0kz34j21rcv78q9ywq20"; })
-  (fetchNuGet { name = "xunit.abstractions"; version = "2.0.3"; sha256 = "00wl8qksgkxld76fgir3ycc5rjqv1sqds6x8yx40927q5py74gfh"; })
-  (fetchNuGet { name = "xunit.analyzers"; version = "0.10.0"; sha256 = "15n02q3akyqbvkp8nq75a8rd66d4ax0rx8fhdcn8j78pi235jm7j"; })
-  (fetchNuGet { name = "xunit.assert"; version = "2.4.1"; sha256 = "1imynzh80wxq2rp9sc4gxs4x1nriil88f72ilhj5q0m44qqmqpc6"; })
-  (fetchNuGet { name = "xunit.core"; version = "2.4.1"; sha256 = "1nnb3j4kzmycaw1g76ii4rfqkvg6l8gqh18falwp8g28h802019a"; })
-  (fetchNuGet { name = "xunit.extensibility.core"; version = "2.4.1"; sha256 = "103qsijmnip2pnbhciqyk2jyhdm6snindg5z2s57kqf5pcx9a050"; })
-  (fetchNuGet { name = "xunit.extensibility.execution"; version = "2.4.1"; sha256 = "1pbilxh1gp2ywm5idfl0klhl4gb16j86ib4x83p8raql1dv88qia"; })
-  (fetchNuGet { name = "xunit.runner.console"; version = "2.4.1"; sha256 = "13ykz9anhz72xc4q6byvdfwrp54hlcbl6zsfapwfhnzyvfgb9w13"; })
-  (fetchNuGet { name = "xunit.runner.visualstudio"; version = "2.4.3"; sha256 = "0j1d0rbcm7pp6dypi61sjxp8l22sv261252z55b243l39jgv2rp3"; })
+  (fetchNuGet { pname = "Autofac"; version = "6.0.0"; sha256 = "1faz8j3caqh4f2w4bcicz5x67f63f6463jikg89sr9qmqbv778hn"; })
+  (fetchNuGet { pname = "Autofac"; version = "6.1.0"; sha256 = "0g1iic7y19rm536dzsllabw7phbgb6wzghhpfmdxz7yp7zrfjk15"; })
+  (fetchNuGet { pname = "Autofac.Extras.Moq"; version = "6.0.0"; sha256 = "1jbdzwr712iq11s3i24a4b7g6025djkmf40fcrfiqkihvdrfprcw"; })
+  (fetchNuGet { pname = "Avalonia"; version = "0.10.0"; sha256 = "0wf8nqdj0xi6drzw676vm5ac2kaxcd76af4y1cirfw4j7lxvs344"; })
+  (fetchNuGet { pname = "Avalonia.Angle.Windows.Natives"; version = "2.1.0.2020091801"; sha256 = "04jm83cz7vkhhr6n2c9hya2k8i2462xbf6np4bidk55as0jdq43a"; })
+  (fetchNuGet { pname = "Avalonia.Controls.DataGrid"; version = "0.10.0"; sha256 = "0yry5kwbp03lznv2zay39p2ry2jsdf7s1syjzf93dd64pgl5bwpk"; })
+  (fetchNuGet { pname = "Avalonia.Desktop"; version = "0.10.0"; sha256 = "1vwaxxnzcgkdrxvrkjcxpc9c839pxmm6ajq83xiqzn5f4vvx29di"; })
+  (fetchNuGet { pname = "Avalonia.Diagnostics"; version = "0.10.0"; sha256 = "1fw6bbbm7g1w4s6hyskkx7p59i3p965bly8p50dmfs31ls01jfrx"; })
+  (fetchNuGet { pname = "Avalonia.FreeDesktop"; version = "0.10.0"; sha256 = "08z3vybk474yxaipd7nqqr9xycgprggcri4lp61ns3p3fj599ydp"; })
+  (fetchNuGet { pname = "Avalonia.Markup.Xaml.Loader"; version = "0.10.0"; sha256 = "05wdf7gc5v03gia29srq44g49ijqg45vygargm087m2s63i134jk"; })
+  (fetchNuGet { pname = "Avalonia.Native"; version = "0.10.0"; sha256 = "1kfzn349rllp7ngydvxqn84hmgxrkbgf7mgrqwcagq809f73mzyp"; })
+  (fetchNuGet { pname = "Avalonia.ReactiveUI"; version = "0.10.0"; sha256 = "0azkwfi72gy7158fpfs6i0iixixy00zfkgsh939pfzy7fkz5pq8m"; })
+  (fetchNuGet { pname = "Avalonia.Remote.Protocol"; version = "0.10.0"; sha256 = "0527966nmjdhzdq6dwhjhyc79kmy56ymhxsmrp344jn43d67kmnr"; })
+  (fetchNuGet { pname = "Avalonia.Skia"; version = "0.10.0"; sha256 = "1d5w7pl1xx9l250mhdq3jnpy5zl77j8n3ccjjxfg8sc7rnyd2fx9"; })
+  (fetchNuGet { pname = "Avalonia.Win32"; version = "0.10.0"; sha256 = "0lyfmhh0q1dzzb5blp76phj894wl6ab0kn1pcprxqvj94dcwric8"; })
+  (fetchNuGet { pname = "Avalonia.X11"; version = "0.10.0"; sha256 = "0asja6g20c6wzxmvx0knkdk6f5fbrx99n82zcrj4y2irhmmzjhxy"; })
+  (fetchNuGet { pname = "Avalonia.Xaml.Behaviors"; version = "0.10.0"; sha256 = "10g6i9y00a13cy3y889y3z8i5p5arpif53q3xx9k6k0qzcq6zq51"; })
+  (fetchNuGet { pname = "Avalonia.Xaml.Interactions"; version = "0.10.0"; sha256 = "0s1mha3m912lmzaw87a841807fcx150vmhwcbfb8mnhqf6qgdwjy"; })
+  (fetchNuGet { pname = "Avalonia.Xaml.Interactions.DragAndDrop"; version = "0.10.0"; sha256 = "1hi9ii7r6xr6avac0a2fs1fq9x34iw23hn1qmnzskbj6jz1pzsbj"; })
+  (fetchNuGet { pname = "Avalonia.Xaml.Interactivity"; version = "0.10.0"; sha256 = "0nqpxbn390g98vyhvp4rvbchxlrcc8vkjjkakgz15crk1irf941b"; })
+  (fetchNuGet { pname = "Castle.Core"; version = "4.0.0"; sha256 = "10zq7mb1gvm946grw7fxa5dh1xwccqmk5jmwx6pqn7kbjp9frkpy"; })
+  (fetchNuGet { pname = "DotNet.Bundle"; version = "0.9.13"; sha256 = "0awzvk62hgszm9b8ar87y862aj8nlm77d7hgfmp84mxny0ag03jl"; })
+  (fetchNuGet { pname = "DynamicData"; version = "7.1.1"; sha256 = "14xcqkw87zbjljy1pb727kwq5a4dfmsf5vg99fq0xxb71q828nvh"; })
+  (fetchNuGet { pname = "HarfBuzzSharp"; version = "2.6.1.7"; sha256 = "0xm4dr6cs5n1ywbbpp1jrxfk8rn1iy61kdm29kb6bqj1q0gv8zyv"; })
+  (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "2.6.1.7"; sha256 = "1slackrhcwsjn3f6sa0nlrcynzmx5pbqv8j33l9w6z9w7ssq4wkn"; })
+  (fetchNuGet { pname = "JetBrains.Annotations"; version = "2020.3.0"; sha256 = "04xlfqnfg3069f014q8f0vx7y70m8nldbf9fia4b50bp3rry2lv2"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "3.1.21"; sha256 = "056g9nv8a7n8zdbgzmyzmn3pbg52yq2kv5d1rcp7h6plwzgpiwql"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "3.1.21"; sha256 = "0akdzi35497v8yxr3a9q1g26cnx9vxnwv81kwxi293jklwnx8gsr"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "3.1.21"; sha256 = "16kya6xvi7k42sr8bxgpbz9116dj7g3i18ylpvji9qngdx41891v"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "3.1.21"; sha256 = "0rd3w3i6fzwhi71jcr8i0mchgfgpp1a0qhancg4dxsva032as4s6"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.2"; sha256 = "162vb5894zxps0cf5n9gc08an7gwybzz87allx3lsszvllr9ldx4"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.9.0"; sha256 = "1x6l6kn8iv5gk1545nxs2gwzkb8gj4sb9kryai132l7yg9afjqik"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "3.9.0"; sha256 = "0crb9x5rhija8y7b0iya9axcvinz2hv3bgf80bvz7kv6zpbpszkz"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "3.9.0"; sha256 = "0hrihj0q96vjlbfvkq9l4maqdf6rqdznr7cpj82iw51n8kbzj8s3"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.NetAnalyzers"; version = "5.0.3"; sha256 = "1l0zg9wl8yapjq9g2d979zhsmdkr8kfybmxnl7kvgkgldf114fbg"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Scripting.Common"; version = "3.9.0"; sha256 = "0kds9i8bla540787qchbzayrg50ai40pxyai2vihc1m2l39h4mdf"; })
+  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "16.9.1"; sha256 = "18isx8w4kwnlk6hq5ay8i4lgzwhx0zg9brayfdk2lakagvv6yyaf"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.21"; sha256 = "01kbhi29lhv6mg1zfsyakz3z8hfbxnc0kxy0fczl8xqviik9svx7"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.21"; sha256 = "1s5g9gk0hvs268q2zpc32m0my2m2ivlmsmza86797a9vkxr6pzw6"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "3.1.21"; sha256 = "0dl4yakfmdkx6xr18f09cdnl11b4fyp23jg3msr8a25zqdqvcr29"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "3.1.21"; sha256 = "1l5wh5c9bgnzph07cd72q08mr87lsczwl0vy0rzrsi7xpzryvw7l"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "3.1.21"; sha256 = "13692wqcww0w6x4nhyxpxwprdg6mx9xmlvv38m6fvp6g0m27r43v"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "3.1.21"; sha256 = "1p7fpcmx4m2374zjfh53i3mv4lkr8xrkz5lnawv95s7j005m07pc"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "3.1.21"; sha256 = "02zgxzf8l607mh17900n7msga0yfcnqgd70rj1rlwj23plifykx1"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "3.1.21"; sha256 = "1gsrajdhlyndwb0s1c03cbm7wh1yfiwpk075nrlfvicbc4m7h347"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.1"; sha256 = "12ilya3x6g5frbwmh41mwygax9v8vrycq3vnzhv3r258jwv69974"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "5.0.0"; sha256 = "0z3qyv7qal5irvabc8lmkh58zsl42mrzd1i0sssvzhv4q4kl3cg6"; })
+  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "16.9.1"; sha256 = "1761mvkp5mwhw150fvazdhh4ybvxpvx05g9znf8n1fqx832wxrw5"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "16.9.1"; sha256 = "1igpx7ldxqx9fkrbhakd2bybc0dgpvj86zr30vpfj31ncm6lp4id"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "16.9.1"; sha256 = "1frx5r7l0jd3j6my4s2qas13fkljgfn87a84xk8l7sisafpfsvzp"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
+  (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "5.0.0"; sha256 = "0sja4ba0mrvdamn0r9mhq38b9dxi08yb3c1hzh29n1z6ws1hlrcq"; })
+  (fetchNuGet { pname = "Moq"; version = "4.7.0"; sha256 = "1y1lzg7scrzl5x8cxsbrgkpg79mf3v0ylnpgjw8q6hib2rhsi8ff"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.3"; sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
+  (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
+  (fetchNuGet { pname = "Packaging.Targets"; version = "0.1.155"; sha256 = "0iija7gskcbrj8qgj5lqxqsfpz8k58fbvjnix6rccpzgvb16dkhy"; })
+  (fetchNuGet { pname = "ReactiveUI"; version = "12.1.1"; sha256 = "1mwv9fi2zazp9ddwci9xfzrmi4pyp8n69r8ilc4lp5lvr1c6chih"; })
+  (fetchNuGet { pname = "ReactiveUI"; version = "13.2.2"; sha256 = "1f9jh3d8lblqpva4iy5c6qvnya3cc0fp6mva3f9z3q7ll8v4h62h"; })
+  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
+  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
+  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.0.0"; sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf"; })
+  (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
+  (fetchNuGet { pname = "runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"; })
+  (fetchNuGet { pname = "runtime.native.System.Net.Http"; version = "4.3.0"; sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"; })
+  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
+  (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
+  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple"; version = "4.3.0"; sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"; })
+  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
+  (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
+  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
+  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
+  (fetchNuGet { pname = "Serilog"; version = "2.10.0"; sha256 = "08bih205i632ywryn3zxkhb15dwgyaxbhmm1z3b5nmby9fb25k7v"; })
+  (fetchNuGet { pname = "Serilog.Sinks.File"; version = "4.1.0"; sha256 = "1ry7p9hf1zlnai1j5zjhjp4dqm2agsbpq6cvxgpf5l8m26x6mgca"; })
+  (fetchNuGet { pname = "Serilog.Sinks.File"; version = "5.0.0-dev-00909"; sha256 = "1rz1zzyamnl8g4ccscaaij2bkhpd4md4sr9k28i0zwvij4kpj22z"; })
+  (fetchNuGet { pname = "SkiaSharp"; version = "2.80.2"; sha256 = "17n0f4gfxz69fzd7zmgimbxfja15vq902arap2rqjr1hxp8sck7g"; })
+  (fetchNuGet { pname = "SkiaSharp.NativeAssets.Linux"; version = "2.80.2"; sha256 = "1951b7rpisaymb37j846jq01pjd05l4fjlnf56blh33ihxyj2jzi"; })
+  (fetchNuGet { pname = "Splat"; version = "10.0.1"; sha256 = "18fzrn7xwjzxj4v3drs8djd3yf14bnq5n9n8vdnwfa1zk5jqpsb9"; })
+  (fetchNuGet { pname = "Splat"; version = "9.6.1"; sha256 = "1sd3gbcv21vwl3spcpmy4d7nzcs0x6m72qj8qfbv4dvgpvbv5sdy"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (fetchNuGet { pname = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
+  (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.0.12"; sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc"; })
+  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
+  (fetchNuGet { pname = "System.Collections.NonGeneric"; version = "4.0.1"; sha256 = "19994r5y5bpdhj7di6w047apvil8lh06lh2c2yv9zc4fc5g9bl4d"; })
+  (fetchNuGet { pname = "System.Collections.Specialized"; version = "4.0.1"; sha256 = "1wbv7y686p5x169rnaim7sln67ivmv6r57falrnx8aap9y33mam9"; })
+  (fetchNuGet { pname = "System.ComponentModel"; version = "4.0.1"; sha256 = "0v4qpmqlzyfad2kswxxj2frnaqqhz9201c3yn8fmmarx5vlzg52z"; })
+  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "4.5.0"; sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p"; })
+  (fetchNuGet { pname = "System.ComponentModel.Annotations"; version = "5.0.0"; sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j"; })
+  (fetchNuGet { pname = "System.ComponentModel.Primitives"; version = "4.1.0"; sha256 = "0wb5mnaag0w4fnyc40x19j8v2vshxp266razw64bcqfyj1whb1q0"; })
+  (fetchNuGet { pname = "System.ComponentModel.TypeConverter"; version = "4.1.0"; sha256 = "178cva9p1cs043h5n2fry5xkzr3wc9n0hwbxa8m3ymld9m6wcv0y"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.0.0"; sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
+  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
+  (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 = "4.7.1"; sha256 = "1mivaifniyrqwlnvzsfaxzrh2sd981bwzs3cbvs5wi7jjzbcqr4p"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "5.0.1"; sha256 = "0mzw44wsm87vpslb9sn7rirxynpq9m3b00l7gl0q71m8shfh66qs"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
+  (fetchNuGet { pname = "System.Diagnostics.TraceSource"; version = "4.0.0"; sha256 = "1mc7r72xznczzf6mz62dm8xhdi14if1h8qgx353xvhz89qyxsa3h"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.1.0"; sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394"; })
+  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
+  (fetchNuGet { pname = "System.Drawing.Common"; version = "5.0.1"; sha256 = "14h722wq58k1wmgxmpws91xc7kh8109ijw0hcxjq9qkbhbi6pwmb"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
+  (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
+  (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; })
+  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
+  (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
+  (fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
+  (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"; })
+  (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.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
+  (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
+  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
+  (fetchNuGet { pname = "System.Linq.Queryable"; version = "4.0.1"; sha256 = "11jn9k34g245yyf260gr3ldzvaqa9477w2c5nhb1p8vjx4xm3qaw"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
+  (fetchNuGet { pname = "System.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
+  (fetchNuGet { pname = "System.Net.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
+  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
+  (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
+  (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
+  (fetchNuGet { pname = "System.Reactive"; version = "5.0.0"; sha256 = "1lafmpnadhiwxyd543kraxa3jfdpm6ipblxrjlibym9b1ykpr5ik"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
+  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.7.0"; sha256 = "121l1z2ypwg02yz84dy6gr82phpys0njk7yask3sihgy214w43qp"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
+  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
+  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
+  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "5.0.0"; sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
+  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
+  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
+  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
+  (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
+  (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 = "4.6.0"; sha256 = "0xmzi2gpbmgyfr75p24rqqsba3cmrqgmcv45lsqp5amgrdwd0f0m"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "5.0.0"; sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
+  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
+  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
+  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
+  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
+  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
+  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.3.0"; sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Csp"; version = "4.3.0"; sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
+  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "5.0.0"; sha256 = "1bn2pzaaq4wx9ixirr8151vm5hynn3lmrljcgjx9yghmm4k677k0"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
+  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
+  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
+  (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
+  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
+  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
+  (fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
+  (fetchNuGet { pname = "System.ValueTuple"; version = "4.5.0"; sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
+  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
+  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
+  (fetchNuGet { pname = "System.Xml.XmlDocument"; version = "4.0.1"; sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1"; })
+  (fetchNuGet { pname = "System.Xml.XmlSerializer"; version = "4.0.11"; sha256 = "01nzc3gdslw90qfykq4qzr2mdnqxjl4sj0wp3fixiwdmlmvpib5z"; })
+  (fetchNuGet { pname = "ThemeEditor.Controls.ColorPicker"; version = "0.10.0"; sha256 = "0sib6cf2xkss48rm3shbwr57rbzz7d2zq0fvjp0hwsa1mb985p2b"; })
+  (fetchNuGet { pname = "Tmds.DBus"; version = "0.9.1"; sha256 = "095vinsbb9pbphbhh7x7rxvs8a3b9w1nnz7gxn9bw5is01qnhgdm"; })
+  (fetchNuGet { pname = "WebSocketSharp-netstandard"; version = "1.0.1"; sha256 = "0q89wiqpli72333zsa04d1vzq9xj0583hn5mih9sdd84myksz5b0"; })
+  (fetchNuGet { pname = "xunit"; version = "2.4.1"; sha256 = "0xf3kaywpg15flqaqfgywqyychzk15kz0kz34j21rcv78q9ywq20"; })
+  (fetchNuGet { pname = "xunit.abstractions"; version = "2.0.3"; sha256 = "00wl8qksgkxld76fgir3ycc5rjqv1sqds6x8yx40927q5py74gfh"; })
+  (fetchNuGet { pname = "xunit.analyzers"; version = "0.10.0"; sha256 = "15n02q3akyqbvkp8nq75a8rd66d4ax0rx8fhdcn8j78pi235jm7j"; })
+  (fetchNuGet { pname = "xunit.assert"; version = "2.4.1"; sha256 = "1imynzh80wxq2rp9sc4gxs4x1nriil88f72ilhj5q0m44qqmqpc6"; })
+  (fetchNuGet { pname = "xunit.core"; version = "2.4.1"; sha256 = "1nnb3j4kzmycaw1g76ii4rfqkvg6l8gqh18falwp8g28h802019a"; })
+  (fetchNuGet { pname = "xunit.extensibility.core"; version = "2.4.1"; sha256 = "103qsijmnip2pnbhciqyk2jyhdm6snindg5z2s57kqf5pcx9a050"; })
+  (fetchNuGet { pname = "xunit.extensibility.execution"; version = "2.4.1"; sha256 = "1pbilxh1gp2ywm5idfl0klhl4gb16j86ib4x83p8raql1dv88qia"; })
+  (fetchNuGet { pname = "xunit.runner.console"; version = "2.4.1"; sha256 = "13ykz9anhz72xc4q6byvdfwrp54hlcbl6zsfapwfhnzyvfgb9w13"; })
+  (fetchNuGet { pname = "xunit.runner.visualstudio"; version = "2.4.3"; sha256 = "0j1d0rbcm7pp6dypi61sjxp8l22sv261252z55b243l39jgv2rp3"; })
 ]
diff --git a/pkgs/tools/graphics/aaphoto/default.nix b/pkgs/tools/graphics/aaphoto/default.nix
new file mode 100644
index 0000000000000..744985acfd599
--- /dev/null
+++ b/pkgs/tools/graphics/aaphoto/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, fetchurl
+, jasper
+, libpng
+, libjpeg
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "aaphoto";
+  version = "0.45";
+
+  src = fetchurl {
+    url = "http://log69.com/downloads/aaphoto_sources_${version}.tar.gz";
+    sha256 = "sha256-06koJM7jNVFqVgqg6BmOZ74foqk6yjUIFnwULzPZ4go=";
+  };
+
+  buildInputs = [
+    jasper
+    libpng
+    libjpeg
+    zlib
+  ];
+
+  postInstall = ''
+    install -Dm644 NEWS README REMARKS TODO -t $out/share/doc/${pname}
+  '';
+
+  meta = with lib; {
+    homepage = "http://log69.com/aaphoto_en.html";
+    description = "Free and open source automatic photo adjusting software";
+    longDescription = ''
+      Auto Adjust Photo tries to give a solution for the automatic color
+      correction of photos. This means setting the contrast, color balance,
+      saturation and gamma levels of the image by analization.
+
+      This can be a solution for those kind of users who are not able to manage
+      and correct images with complicated graphical softwares, or just simply
+      don't intend to spend a lot of time with manually correcting the images
+      one-by-one.
+    '';
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.unix;
+    broken = stdenv.isDarwin; # aaphoto.c:237:10: fatal error: 'omp.h' file not found
+  };
+}
diff --git a/pkgs/tools/graphics/agi/default.nix b/pkgs/tools/graphics/agi/default.nix
index 7aaf28764d2be..f1fcf458e63df 100644
--- a/pkgs/tools/graphics/agi/default.nix
+++ b/pkgs/tools/graphics/agi/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "agi";
-  version = "2.1.0-dev-20210820";
+  version = "2.1.0-dev-20210924";
 
   src = fetchzip {
     url = "https://github.com/google/agi-dev-releases/releases/download/v${version}/agi-${version}-linux.zip";
-    sha256 = "sha256-XsjWrih+8D3z1I41N5ZoLar/+5FV9mPN9aMbyZK2m/0=";
+    sha256 = "sha256-OX26qoyJMG54BA/62GbGRjqdYA7n56SUVVOcdyVAGmM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/graphics/astc-encoder/default.nix b/pkgs/tools/graphics/astc-encoder/default.nix
index d5754c7baeb30..a982d329f90bf 100644
--- a/pkgs/tools/graphics/astc-encoder/default.nix
+++ b/pkgs/tools/graphics/astc-encoder/default.nix
@@ -31,13 +31,13 @@ with rec {
 
 gccStdenv.mkDerivation rec {
   pname = "astc-encoder";
-  version = "3.2";
+  version = "3.3";
 
   src = fetchFromGitHub {
     owner = "ARM-software";
     repo = "astc-encoder";
     rev = version;
-    sha256 = "sha256-1GVMzM4+viVqurkzJqTL3Yszld5zLmpjygT/z74HMLs=";
+    sha256 = "sha256-5E26QzphF5HwVTH+92S4rT3IUAp9ravT/wxsmaH9IAM=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/graphics/blockhash/default.nix b/pkgs/tools/graphics/blockhash/default.nix
index b3426722f79f6..4f63cf90a3aeb 100644
--- a/pkgs/tools/graphics/blockhash/default.nix
+++ b/pkgs/tools/graphics/blockhash/default.nix
@@ -1,23 +1,23 @@
-{ lib, stdenv, fetchFromGitHub, python2, pkg-config, imagemagick, wafHook }:
+{ lib, stdenv, fetchFromGitHub, python3, pkg-config, imagemagick, wafHook }:
 
 stdenv.mkDerivation rec {
   pname = "blockhash";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "commonsmachinery";
     repo = "blockhash";
     rev = "v${version}";
-    sha256 = "0m7ikppl42iicgmwsb7baajmag7v0p1ab06xckifvrr0zm21bq9p";
+    sha256 = "0x3lvhnkb4c3pyq6p81qnnqimz35wpippiac506dgjx3b1848v35";
   };
 
-  nativeBuildInputs = [ python2 pkg-config wafHook ];
+  nativeBuildInputs = [ python3 pkg-config wafHook ];
   buildInputs = [ imagemagick ];
 
   strictDeps = true;
 
   meta = with lib; {
-    homepage = "http://blockhash.io/";
+    homepage = "https://github.com/commonsmachinery/blockhash";
     description = ''
       This is a perceptual image hash calculation tool based on algorithm
       descibed in Block Mean Value Based Image Perceptual Hashing by Bian Yang,
diff --git a/pkgs/tools/graphics/escrotum/default.nix b/pkgs/tools/graphics/escrotum/default.nix
index 6a0a2b2683d96..08136f57ef882 100644
--- a/pkgs/tools/graphics/escrotum/default.nix
+++ b/pkgs/tools/graphics/escrotum/default.nix
@@ -1,18 +1,35 @@
-{ lib, python2Packages, fetchFromGitHub
+{ lib, python3Packages, fetchFromGitHub
+, gtk3
+, pango
+, gobject-introspection
+, wrapGAppsHook
 }:
 
-with python2Packages; buildPythonApplication {
+with python3Packages; buildPythonApplication {
   pname = "escrotum";
-  version = "unstable-2019-06-10";
+  version = "unstable-2020-12-07";
 
   src = fetchFromGitHub {
     owner  = "Roger";
     repo   = "escrotum";
-    rev    = "f6c300315cb4402e37f16b56aad2d206e24c5281";
-    sha256 = "0x7za74lkwn3v6j9j04ifgdwdlx9akh1izkw7vkkzj9ag9qjrzb0";
+    rev    = "a41d0f11bb6af4f08e724b8ccddf8513d905c0d1";
+    sha256 = "sha256-z0AyTbOEE60j/883X17mxgoaVlryNtn0dfEB0C18G2s=";
   };
 
-  propagatedBuildInputs = [ pygtk numpy ];
+  buildInputs = [
+    gtk3
+    pango
+  ];
+
+  nativeBuildInputs = [
+    gobject-introspection
+    wrapGAppsHook
+  ];
+
+  propagatedBuildInputs = [ pygobject3 xcffib pycairo numpy ];
+
+  # Cannot find pango without strictDeps = false
+  strictDeps = false;
 
   outputs = [ "out" "man" ];
 
diff --git a/pkgs/tools/graphics/facedetect/default.nix b/pkgs/tools/graphics/facedetect/default.nix
index 26a9b3e24bd58..d62f077e06d7d 100644
--- a/pkgs/tools/graphics/facedetect/default.nix
+++ b/pkgs/tools/graphics/facedetect/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, python2Packages }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, python3Packages }:
 
 stdenv.mkDerivation rec {
   pname = "facedetect";
@@ -11,14 +11,22 @@ stdenv.mkDerivation rec {
     sha256 = "0mddh71cjbsngpvjli406ndi2x613y39ydgb8bi4z1jp063865sd";
   };
 
-  buildInputs = [ python2Packages.python python2Packages.wrapPython ];
-  pythonPath = [ python2Packages.numpy python2Packages.opencv4 ];
+  patches = [
+    (fetchpatch {
+      name = "python3-support.patch";
+      url = "https://gitlab.com/wavexx/facedetect/-/commit/8037d4406eb76dd5c106819f72c3562f8b255b5b.patch";
+      sha256 = "1752k37pbkigiwglx99ba9360ahzzrrb65a8d77k3xs4c3bcmk2p";
+    })
+  ];
+
+  buildInputs = [ python3Packages.python python3Packages.wrapPython ];
+  pythonPath = [ python3Packages.numpy python3Packages.opencv4 ];
 
   dontConfigure = true;
 
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace facedetect \
-      --replace /usr/share/opencv "${python2Packages.opencv4}/share/opencv4"
+      --replace /usr/share/opencv "${python3Packages.opencv4}/share/opencv4"
   '';
 
   installPhase = ''
diff --git a/pkgs/tools/graphics/fgallery/default.nix b/pkgs/tools/graphics/fgallery/default.nix
index 484a11e322a25..66f8d8d841004 100644
--- a/pkgs/tools/graphics/fgallery/default.nix
+++ b/pkgs/tools/graphics/fgallery/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Static photo gallery generator";
-    homepage = "http://www.thregr.org/~wavexx/software/fgallery/";
+    homepage = "https://www.thregr.org/~wavexx/software/fgallery/";
     license = licenses.gpl2;
     platforms = platforms.all;
     maintainers = [ maintainers.bjornfor ];
diff --git a/pkgs/tools/graphics/flam3/default.nix b/pkgs/tools/graphics/flam3/default.nix
index bd959e3227e76..01e3693259a5a 100644
--- a/pkgs/tools/graphics/flam3/default.nix
+++ b/pkgs/tools/graphics/flam3/default.nix
@@ -1,24 +1,42 @@
-{lib, stdenv, fetchFromGitHub, zlib, libpng, libxml2, libjpeg }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, libjpeg
+, libpng
+, libxml2
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "flam3";
-  version = "3.1.1-${lib.strings.substring 0 7 rev}";
-  rev = "e0801543538451234d7a8a240ba3b417cbda5b21";
+  version = "3.1.1+date=2018-04-12";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "scottdraves";
     repo = pname;
-    sha256 = "18iyj16k0sn3fs52fj23lj31xi4avlddhbib6kk309576nlxp17w";
+    rev = "7fb50c82e90e051f00efcc3123d0e06de26594b2";
+    hash = "sha256-cKRfmTcyWY2LyxqojTzxD2wnxu5eh3emHi51bhS3gYg=";
   };
 
-  buildInputs = [ zlib libpng libxml2 libjpeg ];
+  buildInputs = [
+    libjpeg
+    libpng
+    libxml2
+    zlib
+  ];
 
   meta = with lib; {
-    description = "Cosmic recursive fractal flames";
     homepage = "https://flam3.com/";
-    maintainers = with maintainers; [ ];
-    platforms = platforms.linux;
+    description = "Cosmic recursive fractal flames";
+    longDescription = ''
+      Flames are algorithmically generated images and animations. The software
+      was originally written in 1992 and released as open source, aka free
+      software. Over the years it has been greatly expanded, and is now widely
+      used to create art and special effects. The shape and color of each image
+      is specified by a long string of numbers - a genetic code of sorts.
+    '';
     license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/graphics/gifski/default.nix b/pkgs/tools/graphics/gifski/default.nix
index f79b15a9890ad..fcbed6d4fa136 100644
--- a/pkgs/tools/graphics/gifski/default.nix
+++ b/pkgs/tools/graphics/gifski/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gifski";
-  version = "1.4.3";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "ImageOptim";
     repo = "gifski";
     rev = version;
-    sha256 = "034csv43vc0q2ycwjfskv1zx08c40ykf1m22fh9wvms0860k2ysn";
+    sha256 = "sha256-x2p+6m1pwXhmI9JvGUgLhxrGwpJa/e2wb5wOFdKQ2xg=";
   };
 
-  cargoSha256 = "0jgwf30gqwwpaf2g5zbsglcmsa00vixrnlizvcd41afi1wkjgiyd";
+  cargoSha256 = "sha256-8t7VhPby56UX2LlD2xcJKkWamuJxN9LiVEQPEa78EQQ=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/tools/graphics/gmic/default.nix b/pkgs/tools/graphics/gmic/default.nix
index d12a213a31e54..a046aca799c95 100644
--- a/pkgs/tools/graphics/gmic/default.nix
+++ b/pkgs/tools/graphics/gmic/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gmic";
-  version = "2.9.8";
+  version = "3.0.0";
 
   outputs = [ "out" "lib" "dev" "man" ];
 
   src = fetchurl {
     url = "https://gmic.eu/files/source/gmic_${version}.tar.gz";
-    sha256 = "sha256-GNa7xzGuO02oplasGJR2eTsRGp3Rn3LbIxLwdN983II=";
+    sha256 = "sha256-PwVruebb8GdK9Mjc5Z9BmBchh2Yvf7s2zGPryMG3ESA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/graphics/goverlay/default.nix b/pkgs/tools/graphics/goverlay/default.nix
index b8cd6df4751fa..e1e5c36ee8bcc 100644
--- a/pkgs/tools/graphics/goverlay/default.nix
+++ b/pkgs/tools/graphics/goverlay/default.nix
@@ -6,6 +6,7 @@
 , fpc
 , lazarus-qt
 , wrapQtAppsHook
+, breeze-qt5
 , libGL
 , libGLU
 , libqt5pas
@@ -20,6 +21,7 @@
 , util-linux
 , vulkan-tools
 , which
+, nix-update-script
 }:
 
 let
@@ -36,13 +38,13 @@ let
   '';
 in stdenv.mkDerivation rec {
   pname = "goverlay";
-  version = "0.6.4";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "benjamimgois";
     repo = pname;
     rev = version;
-    sha256 = "sha256-xuv7u2lLQAB0Zmu7UHGXP/sJwcb8vHDf9hFL+pF+818=";
+    sha256 = "sha256-oXkGrMHjs8uui0pzGYW8jnttet/5IX0r8eat0n5saFk=";
   };
 
   outputs = [ "out" "man" ];
@@ -67,6 +69,7 @@ in stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    breeze-qt5
     libGL
     libGLU
     libqt5pas
@@ -102,6 +105,10 @@ in stdenv.mkDerivation rec {
     "--set QT_QPA_PLATFORM xcb"
   ];
 
+  passthru.updateScript = nix-update-script {
+    attrPath = pname;
+  };
+
   meta = with lib; {
     description = "An opensource project that aims to create a Graphical UI to help manage Linux overlays";
     homepage = "https://github.com/benjamimgois/goverlay";
diff --git a/pkgs/tools/graphics/goverlay/find-xdg-data-files.patch b/pkgs/tools/graphics/goverlay/find-xdg-data-files.patch
index 96970cd769a1e..17ba9ed1140ed 100644
--- a/pkgs/tools/graphics/goverlay/find-xdg-data-files.patch
+++ b/pkgs/tools/graphics/goverlay/find-xdg-data-files.patch
@@ -1,8 +1,8 @@
 diff --git a/overlayunit.pas b/overlayunit.pas
-index 8c2276d..a62e60a 100644
+index 97a088d..4c42414 100644
 --- a/overlayunit.pas
 +++ b/overlayunit.pas
-@@ -4913,7 +4913,7 @@ begin
+@@ -5007,7 +5007,7 @@ begin
     //Determine Mangohud dependency status
  
            //locate MangoHud and store result in tmp folder
@@ -11,7 +11,7 @@ index 8c2276d..a62e60a 100644
  
            // Assign Text file dependency_mangohud to variable mangohudVAR
            AssignFile(mangohudVAR, '/tmp/goverlay/dependency_mangohud');
-@@ -4922,7 +4922,7 @@ begin
+@@ -5016,7 +5016,7 @@ begin
            CloseFile(mangohudVAR);
  
            // Read String and store value on mangohuddependencyVALUE based on result
@@ -20,7 +20,7 @@ index 8c2276d..a62e60a 100644
            mangohuddependencyVALUE := 1
            else
            mangohuddependencyVALUE := 0;
-@@ -4931,7 +4931,7 @@ begin
+@@ -5025,7 +5025,7 @@ begin
     //Determine vkBasalt dependency staus
  
             //locate vkBasalt and store result in tmp folder
@@ -29,7 +29,7 @@ index 8c2276d..a62e60a 100644
  
             // Assign Text file dependency_mangohud to variable mangohudVAR
             AssignFile(vkbasaltVAR, '/tmp/goverlay/dependency_vkbasalt');
-@@ -4940,7 +4940,7 @@ begin
+@@ -5034,7 +5034,7 @@ begin
             CloseFile(vkbasaltVAR);
  
             // Read String and store value on vkbasaltdependencyVALUE based on result
diff --git a/pkgs/tools/graphics/graphviz/2.32.nix b/pkgs/tools/graphics/graphviz/2.32.nix
deleted file mode 100644
index 544949f33b711..0000000000000
--- a/pkgs/tools/graphics/graphviz/2.32.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-import ./base.nix {
-  rev = "10c3c34c5198beacfba950764f34960c6884a34f";
-  version = "2.32.0";
-  sha256 = "18b2wnz6xk8hndy7dlr1vn9vziyryyflh747n9966778gmh8bick";
-}
diff --git a/pkgs/tools/graphics/graphviz/base.nix b/pkgs/tools/graphics/graphviz/base.nix
deleted file mode 100644
index f225f2196cc80..0000000000000
--- a/pkgs/tools/graphics/graphviz/base.nix
+++ /dev/null
@@ -1,96 +0,0 @@
-{ rev, sha256, version }:
-
-{ lib, stdenv, fetchFromGitLab, autoreconfHook, pkg-config, cairo, expat, flex
-, fontconfig, gd, gettext, gts, libdevil, libjpeg, libpng, libtool, pango
-, bison, fetchpatch, xorg, ApplicationServices, python3 }:
-
-let
-  inherit (lib) optional optionals optionalString;
-  raw_patch =
-    # https://gitlab.com/graphviz/graphviz/issues/1367 CVE-2018-10196
-    fetchpatch {
-      name = "CVE-2018-10196.patch";
-      url = "https://gitlab.com/graphviz/graphviz/uploads/30f8f0b00e357c112ac35fb20241604a/p.diff";
-      sha256 = "074qx6ch9blrnlilmz7p96fkiz2va84x2fbqdza5k4808rngirc7";
-      excludes = ["tests/*"]; # we don't run them and they don't apply
-    };
-  # the patch needs a small adaption for older versions
-  patchToUse = if lib.versionAtLeast version "2.37" then raw_patch else
-  stdenv.mkDerivation {
-    inherit (raw_patch) name;
-    buildCommand = "sed s/dot_root/agroot/g ${raw_patch} > $out";
-  };
-  # 2.42 has the patch included
-  patches = optional (lib.versionOlder version "2.42") patchToUse
-  ++ optionals (lib.versionOlder version "2.46.0") [
-    (fetchpatch {
-      name = "CVE-2020-18032.patch";
-      url = "https://gitlab.com/graphviz/graphviz/-/commit/784411ca3655c80da0f6025ab20634b2a6ff696b.patch";
-      sha256 = "1nkw9ism8lkfvxsp5fh95i2l5s5cbjsidbb3g1kjfv10rxkyb41m";
-    })
-  ];
-in
-
-stdenv.mkDerivation {
-  pname = "graphviz";
-  inherit version;
-
-  src = fetchFromGitLab {
-    owner = "graphviz";
-    repo = "graphviz";
-    inherit sha256 rev;
-  };
-
-  nativeBuildInputs = [ autoreconfHook pkg-config python3 ];
-
-  buildInputs = [
-    libpng libjpeg expat bison libtool fontconfig gd gts libdevil flex pango
-    gettext
-  ] ++ optionals (xorg != null) (with xorg; [ libXrender libXaw libXpm ])
-    ++ optionals (stdenv.isDarwin) [ ApplicationServices ];
-
-  hardeningDisable = [ "fortify" ];
-
-  CPPFLAGS = lib.optionalString (xorg != null && stdenv.isDarwin)
-    "-I${cairo.dev}/include/cairo";
-
-  configureFlags = [
-    "--with-ltdl-lib=${libtool.lib}/lib"
-    "--with-ltdl-include=${libtool}/include"
-  ] ++ lib.optional (xorg == null) "--without-x";
-
-  inherit patches;
-
-  postPatch = ''
-    for f in $(find . -name Makefile.in); do
-      substituteInPlace $f --replace "-lstdc++" "-lc++"
-    done
-  '';
-
-  # ''
-  #   substituteInPlace rtest/rtest.sh \
-  #     --replace "/bin/ksh" "${mksh}/bin/mksh"
-  # '';
-
-  doCheck = false; # fails with "Graphviz test suite requires ksh93" which is not in nixpkgs
-
-  preAutoreconf = "./autogen.sh";
-
-  postFixup = optionalString (xorg != null) ''
-    substituteInPlace $out/bin/dotty --replace '`which lefty`' $out/bin/lefty
-    substituteInPlace $out/bin/vimdot \
-      --replace /usr/bin/vi '$(command -v vi)' \
-      --replace /usr/bin/vim '$(command -v vim)' \
-      --replace /usr/bin/vimdot $out/bin/vimdot \
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    homepage = "https://graphviz.org";
-    description = "Graph visualization tools";
-    license = licenses.epl10;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ bjornfor raskin ];
-  };
-}
diff --git a/pkgs/tools/graphics/graphviz/default.nix b/pkgs/tools/graphics/graphviz/default.nix
index 6dc9e1861ac83..e2c5f9f63fc56 100644
--- a/pkgs/tools/graphics/graphviz/default.nix
+++ b/pkgs/tools/graphics/graphviz/default.nix
@@ -1,5 +1,114 @@
-import ./base.nix rec {
-  rev = "3425dae078262591d04fec107ec71ab010651852"; # use rev as tags have disappeared before
+{ lib
+, stdenv
+, fetchFromGitLab
+, autoreconfHook
+, pkg-config
+, cairo
+, expat
+, flex
+, fontconfig
+, gd
+, gts
+, libdevil
+, libjpeg
+, libpng
+, libtool
+, pango
+, bash
+, bison
+, fetchpatch
+, xorg
+, ApplicationServices
+, python3
+, withXorg ? true
+}:
+
+let
+  inherit (lib) optional optionals optionalString;
+in
+stdenv.mkDerivation {
+  pname = "graphviz";
   version = "2.49.3";
-  sha256 = "1qvyjly7r1ihacdvxq0r59l4csr09sc05palpshzqsiz2wb1izk0";
+
+  src = fetchFromGitLab {
+    owner = "graphviz";
+    repo = "graphviz";
+    # use rev as tags have disappeared before
+    rev = "3425dae078262591d04fec107ec71ab010651852";
+    sha256 = "1qvyjly7r1ihacdvxq0r59l4csr09sc05palpshzqsiz2wb1izk0";
+  };
+
+  patches = [
+    # Fix cross.
+    # https://gitlab.com/graphviz/graphviz/-/merge_requests/2281
+    # Remove when version > 2.49.3.
+    (fetchpatch {
+      url = "https://gitlab.com/graphviz/graphviz/-/commit/0cdb89acbb0caf5baf3d04a8821c9d0dfe065ea8.patch";
+      sha256 = "130mqlxzhzaz3vp4ccaq7z7fd9q6vjxmimz70g8y818igsbb13rf";
+    })
+  ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+    python3
+    bison
+    flex
+  ];
+
+  buildInputs = [
+    libpng
+    libjpeg
+    expat
+    fontconfig
+    gd
+    gts
+    libdevil
+    pango
+    bash
+  ] ++ optionals withXorg (with xorg; [ libXrender libXaw libXpm ])
+  ++ optionals stdenv.isDarwin [ ApplicationServices ];
+
+  hardeningDisable = [ "fortify" ];
+
+  configureFlags = [
+    "--with-ltdl-lib=${libtool.lib}/lib"
+    "--with-ltdl-include=${libtool}/include"
+  ] ++ lib.optional (xorg == null) "--without-x";
+
+  enableParallelBuilding = true;
+
+  CPPFLAGS = lib.optionalString (withXorg && stdenv.isDarwin)
+    "-I${cairo.dev}/include/cairo";
+
+  # ''
+  #   substituteInPlace rtest/rtest.sh \
+  #     --replace "/bin/ksh" "${mksh}/bin/mksh"
+  # '';
+
+  doCheck = false; # fails with "Graphviz test suite requires ksh93" which is not in nixpkgs
+
+  postPatch = ''
+    for f in $(find . -name Makefile.in); do
+      substituteInPlace $f --replace "-lstdc++" "-lc++"
+    done
+  '';
+
+  preAutoreconf = "./autogen.sh";
+
+  postFixup = optionalString withXorg ''
+    substituteInPlace $out/bin/dotty --replace '`which lefty`' $out/bin/lefty
+    substituteInPlace $out/bin/vimdot \
+      --replace /usr/bin/vi '$(command -v vi)' \
+      --replace /usr/bin/vim '$(command -v vim)' \
+      --replace /usr/bin/vimdot $out/bin/vimdot \
+  '';
+
+  meta = with lib; {
+    homepage = "https://graphviz.org";
+    description = "Graph visualization tools";
+    license = licenses.epl10;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ bjornfor raskin ];
+  };
 }
diff --git a/pkgs/tools/graphics/gromit-mpx/default.nix b/pkgs/tools/graphics/gromit-mpx/default.nix
index 710ed04006c4e..9af99a58098b2 100644
--- a/pkgs/tools/graphics/gromit-mpx/default.nix
+++ b/pkgs/tools/graphics/gromit-mpx/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config
 , gtk, glib, pcre, libappindicator, libpthreadstubs, libXdmcp
-, libxkbcommon, epoxy, at-spi2-core, dbus, libdbusmenu
+, libxkbcommon, libepoxy, at-spi2-core, dbus, libdbusmenu
 , wrapGAppsHook
 }:
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config wrapGAppsHook ];
   buildInputs = [
     gtk glib pcre libappindicator libpthreadstubs
-    libXdmcp libxkbcommon epoxy at-spi2-core
+    libXdmcp libxkbcommon libepoxy at-spi2-core
     dbus libdbusmenu
   ];
 
diff --git a/pkgs/tools/graphics/ibniz/default.nix b/pkgs/tools/graphics/ibniz/default.nix
index 227ab5d082dc7..a74267846c1d6 100644
--- a/pkgs/tools/graphics/ibniz/default.nix
+++ b/pkgs/tools/graphics/ibniz/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Virtual machine designed for extremely compact low-level audiovisual programs";
-    homepage = "http://www.pelulamu.net/ibniz/";
+    homepage = "https://github.com/viznut/IBNIZ";
     license = licenses.zlib;
     platforms = platforms.linux;
     maintainers = [ maintainers.dezgeg ];
diff --git a/pkgs/tools/graphics/imageworsener/default.nix b/pkgs/tools/graphics/imageworsener/default.nix
index 120643ddde051..126bcfefc80de 100644
--- a/pkgs/tools/graphics/imageworsener/default.nix
+++ b/pkgs/tools/graphics/imageworsener/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "imageworsener";
-  version = "1.3.3";
+  version = "1.3.4";
 
   src = fetchurl {
     url = "https://entropymine.com/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "099ymaqk7gj0plmdx7fxabbdx2n03d25r00ly0vf6cx37mgnwjvw";
+    sha256 = "1dhjhlfrdng50dxxd306adzm54ir62pz99h4v0yi6rg56nxv5q5s";
   };
 
   postPatch = ''
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     homepage = "https://entropymine.com/imageworsener/";
     changelog = "https://github.com/jsummers/${pname}/blob/${version}/changelog.txt";
     license = licenses.mit;
-    maintainers = with maintainers; [ emily ];
+    maintainers = with maintainers; [ emily smitop ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/graphics/oxipng/default.nix b/pkgs/tools/graphics/oxipng/default.nix
index eab3996811ef6..d081b7eee8166 100644
--- a/pkgs/tools/graphics/oxipng/default.nix
+++ b/pkgs/tools/graphics/oxipng/default.nix
@@ -1,15 +1,15 @@
 { lib, stdenv, fetchCrate, rustPlatform }:
 
 rustPlatform.buildRustPackage rec {
-  version = "5.0.0";
+  version = "5.0.1";
   pname = "oxipng";
 
   src = fetchCrate {
     inherit version pname;
-    sha256 = "sha256-rTAY+3ViPkOsRjT9FHKnVOEGfLscuBdMAiQq+N9PRNU=";
+    sha256 = "1g2m6ifmppgq086w3vzdsihnba4qrzmnf5k13bgah2qasnl97qfh";
   };
 
-  cargoSha256 = "sha256-Z5tA2bUE/5qGKXP2hIKo6tBegaSUALRzEZ/Xext3EWY=";
+  cargoSha256 = "1dkfplmi21wgks8pfxxc3kww89i9wq7fq5j7jm7a8zi59p3xdars";
 
   doCheck = !stdenv.isAarch64 && !stdenv.isDarwin;
 
diff --git a/pkgs/tools/graphics/pfstools/default.nix b/pkgs/tools/graphics/pfstools/default.nix
index a81321204757b..d815b6ac83e2c 100644
--- a/pkgs/tools/graphics/pfstools/default.nix
+++ b/pkgs/tools/graphics/pfstools/default.nix
@@ -6,11 +6,11 @@
 
 mkDerivation rec {
   pname = "pfstools";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}.tgz";
-    sha256 = "04rlb705gmdiphcybf9dyr0d5lla2cfs3c308zz37x0vwi445six";
+    sha256 = "sha256-m/aESYVmMibCGZjutDwmGsuOSziRuakbcpVUQGKJ18o=";
   };
 
   outputs = [ "out" "dev" "man"];
diff --git a/pkgs/tools/graphics/pngquant/default.nix b/pkgs/tools/graphics/pngquant/default.nix
index dd145d48fc1bc..267f2ae217c15 100644
--- a/pkgs/tools/graphics/pngquant/default.nix
+++ b/pkgs/tools/graphics/pngquant/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pngquant";
-  version = "2.16.0";
+  version = "2.17.0";
 
   src = fetchFromGitHub {
     owner = "kornelski";
     repo = "pngquant";
     rev = version;
-    sha256 = "0ny6h3fwf6gvzkqkc3zb5mrkqxm6s7xzb6bvzn6vlamklncqgl78";
+    sha256 = "sha256-D2KNn6AJ4eIHeb/2Oo1Wf0djMCXTtVGrua0D6z7+9V4=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/tools/graphics/pstoedit/default.nix b/pkgs/tools/graphics/pstoedit/default.nix
index dd5b51041b1f6..df3d1c6a69386 100644
--- a/pkgs/tools/graphics/pstoedit/default.nix
+++ b/pkgs/tools/graphics/pstoedit/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pstoedit";
-  version = "3.75";
+  version = "3.78";
 
   src = fetchurl {
     url = "mirror://sourceforge/pstoedit/pstoedit-${version}.tar.gz";
-    sha256 = "1kv46g2wsvsvcngkavxl5gnw3l6g5xqnh4kmyx4b39a01d8xiddp";
+    sha256 = "sha256-jMKONLx/iNkTeA+AdOgT3VqqCsIFams21L8ASg6Q2AE=";
   };
 
   #
diff --git a/pkgs/tools/graphics/vips/default.nix b/pkgs/tools/graphics/vips/default.nix
index bfe9a1875e5ac..26d63791be8ea 100644
--- a/pkgs/tools/graphics/vips/default.nix
+++ b/pkgs/tools/graphics/vips/default.nix
@@ -38,7 +38,7 @@
 
 stdenv.mkDerivation rec {
   pname = "vips";
-  version = "8.11.3";
+  version = "8.12.1";
 
   outputs = [ "bin" "out" "man" "dev" ];
 
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     owner = "libvips";
     repo = "libvips";
     rev = "v${version}";
-    sha256 = "sha256-CWuULuUMBV2VUCZEBg0MzS7rXI8UUkNh5XPV2eA8xt8=";
+    sha256 = "sha256-Zo1Y4pYa+o55+ASrAiDUO7SAC4zpcAniEKkTFvIoU6o=";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     extraPostFetch = ''
diff --git a/pkgs/tools/graphics/viu/default.nix b/pkgs/tools/graphics/viu/default.nix
index 8a02e0fefede6..104a4a81282ae 100644
--- a/pkgs/tools/graphics/viu/default.nix
+++ b/pkgs/tools/graphics/viu/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "viu";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "atanunq";
     repo = "viu";
     rev = "v${version}";
-    sha256 = "1n1qwlh1zinq5ngx04cvs69z8zr12yywr70vbrc946kbh4hx6pk9";
+    sha256 = "sha256-lAuIl25368Gv717a8p2So1o1VMDJJAOlDdqfItYizo4=";
   };
 
   # tests need an interactive terminal
   doCheck = false;
 
-  cargoSha256 = "0s6i42n4jivzj4ad62r7nc6ailydy686ivszcd6cj5f4dinsbgq3";
+  cargoSha256 = "sha256-ildtjaYGbrQacJOdGDVwFv+kod+vZHqukWN6ARtJqI4=";
 
   meta = with lib; {
     description = "A command-line application to view images from the terminal written in Rust";
diff --git a/pkgs/tools/graphics/wdisplays/default.nix b/pkgs/tools/graphics/wdisplays/default.nix
index 073a3b1b6d476..a0803ff2132ab 100644
--- a/pkgs/tools/graphics/wdisplays/default.nix
+++ b/pkgs/tools/graphics/wdisplays/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, gtk3, epoxy, wayland, wrapGAppsHook }:
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, gtk3, libepoxy, wayland, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "wdisplays";
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ meson ninja pkg-config wrapGAppsHook ];
 
-  buildInputs = [ gtk3 epoxy wayland ];
+  buildInputs = [ gtk3 libepoxy wayland ];
 
   src = fetchFromGitHub {
     owner = "luispabon";
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ lheckemann ma27 ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "wdisplays";
   };
 }
diff --git a/pkgs/tools/graphics/zxing/zxing.sh b/pkgs/tools/graphics/zxing/zxing.sh
index ca6ac60bab694..a38558d87026d 100644
--- a/pkgs/tools/graphics/zxing/zxing.sh
+++ b/pkgs/tools/graphics/zxing/zxing.sh
@@ -2,17 +2,17 @@
 choice="$1";
 shift
 case "$choice" in
-	encode | create | write | CommandLineEncoder)
-		zxing-cmdline-encoder "$@";
-		;;
-	decode | read | run | CommandLineRunner)
-		zxing-cmdline-runner "$@";
-		;;
-	help | usage | --help | --usage | -h)
-		zxing read;
-		zxing write;
-		;;
-	*)
-		zxing read "$choice" "$@"
-		;;
+    encode | create | write | CommandLineEncoder)
+        zxing-cmdline-encoder "$@";
+        ;;
+    decode | read | run | CommandLineRunner)
+        zxing-cmdline-runner "$@";
+        ;;
+    help | usage | --help | --usage | -h)
+        zxing read;
+        zxing write;
+        ;;
+    *)
+        zxing read "$choice" "$@"
+        ;;
 esac
diff --git a/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix b/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix
index 94a7d2444bf92..269611f4bd7ca 100644
--- a/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix
+++ b/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix
@@ -13,7 +13,7 @@ let
     sha256 = "10bdjn481jsh32vll7r756l392anz44h6207vjqwby3rplk31np1";
   };
 in clangStdenv.mkDerivation rec {
-  name    = "fcitx-mozc-${version}";
+  pname = "fcitx-mozc";
   version = "2.23.2815.102";
 
   src = fetchFromGitHub {
diff --git a/pkgs/tools/inputmethods/fcitx5/default.nix b/pkgs/tools/inputmethods/fcitx5/default.nix
index 85b6525774373..bae542cefbaea 100644
--- a/pkgs/tools/inputmethods/fcitx5/default.nix
+++ b/pkgs/tools/inputmethods/fcitx5/default.nix
@@ -41,13 +41,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "fcitx5";
-  version = "5.0.9";
+  version = "5.0.11";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "161xgm2fs51v8l46raz6xxkjmshpgaaax64lz8208m7fcd32ll3a";
+    sha256 = "sha256-81FuV6wBDQcOG5TLEJBqSG09BRgLekAo3tqZA40AQYo=";
   };
 
   prePatch = ''
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix
index 3a4a38c6b708b..b52d03b7743f7 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-chinese-addons.nix
@@ -31,13 +31,13 @@ in
 
 mkDerivation rec {
   pname = "fcitx5-chinese-addons";
-  version = "5.0.6";
+  version = "5.0.9";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "fcitx5-chinese-addons";
     rev = version;
-    sha256 = "sha256-+DhXFqUxECGZYHAmEw5cZJQnRHHgvT0nVVqY9DXgWBU=";
+    sha256 = "sha256-GnFIbvbLkL8YkLA3ziS8gBia9juDOkQWRcrXIPJAjLc=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix
index 584a1b932f480..7a7801b352709 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-configtool.nix
@@ -19,13 +19,13 @@
 
 mkDerivation rec {
   pname = "fcitx5-configtool";
-  version = "5.0.5";
+  version = "5.0.9";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "0w6cgg57ldk02j3fs7mm8pn5inblcjyr20d3xl5qbyawwccjsn2m";
+    sha256 = "sha256-QPRaATx6TaysfZrFCR/Itc+4hx3sx7kLbahacQGrccE=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix
index 7b27184cde325..43224553753de 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-gtk.nix
@@ -17,7 +17,7 @@
 , libdatrie
 , libXdmcp
 , libxkbcommon
-, epoxy
+, libepoxy
 , dbus
 , at-spi2-core
 , libXtst
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-gtk";
-  version = "5.0.7";
+  version = "5.0.10";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "0vcikqrxv1xxcdaiz3axgm7rpab4w8aciw838sbpa9l20dp8cnyq";
+    sha256 = "sha256-QR2ZHP6dP7XcOCJw2BE1ak+mnRL0njV2T1+iBeMA+do=";
   };
 
   cmakeFlags = [
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
     libdatrie
     libXdmcp
     libxkbcommon
-    epoxy
+    libepoxy
     dbus
     at-spi2-core
     libXtst
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-m17n.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-m17n.nix
index 9a90ab3ca7d75..a8a1cd0eb7a35 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-m17n.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-m17n.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-m17n";
-  version = "5.0.5";
+  version = "5.0.6";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "sha256-duL9FgXPCr4/rMuguw8cf3EIdK6MW/alUNeh1yduY68=";
+    sha256 = "sha256-w806Xy7S8rhw7ZtMRzHfUD9BDzj3VmCxlP+kHMZgFpc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix
index 40465d55e400d..15b6f51126d9f 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix
@@ -12,13 +12,13 @@
 
 mkDerivation rec {
   pname = "fcitx5-qt";
-  version = "5.0.6";
+  version = "5.0.8";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "fcitx5-qt";
     rev = version;
-    sha256 = "sha256-Y7X4pkBSf5FMpf1mdyLvr1QWhqz3yC4iOGXDvvvV9Yw=";
+    sha256 = "sha256-S7hbcAyoS+gagqoL+C3YgcyjODnE+ZvHEFIoAqAmOxo=";
   };
 
   preConfigure = ''
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
index 86e5b6ca51af5..f25a413063657 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-rime.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-rime";
-  version = "5.0.7";
+  version = "5.0.9";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "1djakg17rxc38smja4y76i0p4gwdj3lgwym8kybkaspk7lxr62zy";
+    sha256 = "sha256-DRT4e59sMgS1xOIVx4t8I4aJGPprvRS6CYcNssIU2iY=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-table-extra.nix
index 570893c2ade4b..65ad408adeba3 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.0.4";
+  version = "5.0.7";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "1rhm9jyqxlsgjsn3f5n9jwm5qjcgg87widp0bv1xa9cc23mydrqv";
+    sha256 = "sha256-K+MeFfst+vxgaHkYgLzfj7wqHYP6dIbh5ZOYHaV0cXo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix b/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix
index 00e13bc756fa8..b6ba9bfd16326 100644
--- a/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix
+++ b/pkgs/tools/inputmethods/fcitx5/fcitx5-table-other.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fcitx5-table-other";
-  version = "5.0.5";
+  version = "5.0.6";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = pname;
     rev = version;
-    sha256 = "0z34y05sbb2qavpa6banv7xvlsmpymmm828265r8bf7r995wx8lz";
+    sha256 = "sha256-NePb2tDy8mSR+cPxhOF4xBnxFRjLKdNs8YNGlvfFKmg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix
index b51efc2cb8100..b5a10a83d8604 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-libpinyin/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-libpinyin";
-  version = "1.12.0";
+  version = "1.12.1";
 
   src = fetchFromGitHub {
     owner = "libpinyin";
     repo = "ibus-libpinyin";
     rev = version;
-    sha256 = "sha256-fEEiwRoGGFAki1DMQvGuzjz2NAjhExyH11l8KTwjjsI=";
+    sha256 = "sha256-tSbH4twU+paCZdmzVQMSSg3AzBNkK4nnmOfbvUzvZTk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-libthai/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-libthai/default.nix
index 1bb2479b49977..c72d7f1a604bb 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-libthai/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-libthai/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-libthai";
-  version = "0.1.4";
+  version = "0.1.5";
 
   src = fetchurl {
     url = "https://linux.thai.net/pub/ThaiLinux/software/libthai/ibus-libthai-${version}.tar.xz";
-    sha256 = "0iam7308rxkx2xwaabc5wyj7vrxgd4cr95pvwrkm8fr9gh2xnwgv";
+    sha256 = "sha256-egAxttjwuKiDoIuJluoOTJdotFZJe6ZOmJgdiFCAwx0=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix
index af3fcbe4e2ccc..d415b6b5a45df 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-rime/default.nix
@@ -39,6 +39,6 @@ stdenv.mkDerivation rec {
     homepage = "https://rime.im/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ pengmeiyu ];
+    maintainers = with maintainers; [ pmy ];
   };
 }
diff --git a/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
index 9dcde821e14d3..410774e3897b8 100644
--- a/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
+++ b/pkgs/tools/inputmethods/ibus-engines/ibus-table/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-table";
-  version = "1.14.0";
+  version = "1.14.1";
 
   src = fetchFromGitHub {
     owner  = "kaio";
     repo   = "ibus-table";
     rev    = version;
-    sha256 = "sha256-HGSa8T1fY3PGow/rB9ixAPTibLCykImcs0kM/dUIwmQ=";
+    sha256 = "sha256-PO5OOIOyolx6PRQ36u0s+oz3elgZzGBZGgOLTxGWbGo=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/inputmethods/ibus/default.nix b/pkgs/tools/inputmethods/ibus/default.nix
index a0aea92ea4afa..50b9dba51d352 100644
--- a/pkgs/tools/inputmethods/ibus/default.nix
+++ b/pkgs/tools/inputmethods/ibus/default.nix
@@ -169,6 +169,6 @@ stdenv.mkDerivation rec {
     description = "Intelligent Input Bus, input method framework";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ ttuegel yegortimoshenko ];
+    maintainers = with maintainers; [ ttuegel yana ];
   };
 }
diff --git a/pkgs/tools/inputmethods/interception-tools/default.nix b/pkgs/tools/inputmethods/interception-tools/default.nix
index ad18becfc72fa..5d5bd7bdfc2be 100644
--- a/pkgs/tools/inputmethods/interception-tools/default.nix
+++ b/pkgs/tools/inputmethods/interception-tools/default.nix
@@ -3,12 +3,12 @@
 
 stdenv.mkDerivation rec {
   pname = "interception-tools";
-  version = "0.6.7";
+  version = "0.6.8";
   src = fetchFromGitLab {
     owner = "interception/linux";
     repo = "tools";
     rev = "v${version}";
-    sha256 = "0wcmppa7092b33wb8vc782day5phf90pc25cn1x7rk0rlw565z36";
+    sha256 = "sha256-jhdgfCWbkF+jD/iXsJ+fYKOtPymxcC46Q4w0aqpvcek=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/tools/inputmethods/m17n-lib/default.nix b/pkgs/tools/inputmethods/m17n-lib/default.nix
index 2ca60bca3e74c..cc290ab0eca94 100644
--- a/pkgs/tools/inputmethods/m17n-lib/default.nix
+++ b/pkgs/tools/inputmethods/m17n-lib/default.nix
@@ -11,9 +11,11 @@ stdenv.mkDerivation rec {
   strictDeps = true;
 
   # reconf needed to sucesfully cross-compile
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-
-  buildInputs = [ m17n_db ];
+  nativeBuildInputs = [
+    autoreconfHook pkg-config
+    # requires m17n-db tool at build time
+    m17n_db
+  ];
 
   # Fails parallel build due to missing intra-package depends:
   #   https://savannah.nongnu.org/bugs/index.php?61377
diff --git a/pkgs/tools/inputmethods/remote-touchpad/default.nix b/pkgs/tools/inputmethods/remote-touchpad/default.nix
index 90a438adb73af..6606f1f0011f2 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.0.2";
+  version = "1.0.4";
 
   src = fetchFromGitHub {
     owner = "unrud";
     repo = pname;
     rev = "v${version}";
-    sha256 = "09a252z69msy4wd5kazpca8dcn0a2djdw0vs663062fl977p73qs";
+    sha256 = "sha256-VgTjQXjJn17+BhREew62RTjNo8UWc4Fn9x+924nGD+I=";
   };
 
   buildInputs = [ libX11 libXi libXt libXtst ];
   tags = [ "portal,x11" ];
 
-  vendorSha256 = "1pgj0m67g759mcs4s34h4pq3mc7gni643z5cp6ffq4rrn8mdi060";
+  vendorSha256 = "sha256-Cw4uMnID0nDhSl+ijHMo1VcXLdY1bHFpEkqDQDJOJOw=";
 
   meta = with lib; {
     description = "Control mouse and keyboard from the webbrowser of a smartphone.";
diff --git a/pkgs/tools/misc/0x0/default.nix b/pkgs/tools/misc/0x0/default.nix
deleted file mode 100644
index 0b9c6f7c3bbb7..0000000000000
--- a/pkgs/tools/misc/0x0/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, stdenv, xsel, curl, fetchFromGitLab, makeWrapper}:
-
-stdenv.mkDerivation {
-  pname = "0x0";
-  version = "2018-06-24";
-
-  src = fetchFromGitLab {
-    owner = "somasis";
-    repo = "scripts";
-    rev  = "70422c83b2ac5856559b0ddaf6e2dc3dbef40dee";
-    sha256 = "1qpylyxrisy3p2lyirfarfj5yzrdjgsgxwf8gqwljpcjn207hr72";
-  };
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  installPhase = ''
-    install -Dm755 0x0 $out/bin/0x0
-
-    patchShebangs $out/bin/0x0
-    wrapProgram $out/bin/0x0 \
-      --prefix PATH : '${lib.makeBinPath [ curl xsel ]}'
-  '';
-
-  meta = with lib; {
-    description = "A client for 0x0.st";
-    homepage = "https://gitlab.com/somasis/scripts/";
-    maintainers = [ maintainers.ar1a ];
-    license = licenses.unlicense;
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/tools/misc/antimicroX/default.nix b/pkgs/tools/misc/antimicrox/default.nix
index 452906a1cf812..e248ac4a0c787 100644
--- a/pkgs/tools/misc/antimicroX/default.nix
+++ b/pkgs/tools/misc/antimicrox/default.nix
@@ -4,40 +4,39 @@
 , extra-cmake-modules
 , pkg-config
 , SDL2
-, qtbase
 , qttools
-, qtx11extras
 , xorg
 , fetchFromGitHub
 , itstool
 }:
 
 mkDerivation rec {
-  pname = "antimicroX";
-  version = "3.0.1";
+  pname = "antimicrox";
+  version = "3.2.0";
 
   src = fetchFromGitHub {
-    owner = "juliagoda";
-    repo = "antimicroX";
+    owner = "AntiMicroX";
+    repo = pname;
     rev = version;
-    sha256 = "05asxlkgb4cgvpcyksw1cx8cz8nzi8hmw8b91lw92892j7a2r7wj";
+    sha256 = "sha256-brG3DTpWRYmDemTeteuuNbF0JoDAXdcFwO12JC6/0/Q=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules pkg-config itstool ];
   buildInputs = [
     SDL2
-    qtbase
     qttools
-    qtx11extras
-    xorg.libX11
     xorg.libXtst
-    xorg.libXi
   ];
 
+  postPatch = ''
+    substituteInPlace CMakeLists.txt \
+        --replace "/usr/lib/udev/rules.d/" "$out/lib/udev/rules.d/"
+  '';
+
   meta = with lib; {
     description = "GUI for mapping keyboard and mouse controls to a gamepad";
     inherit (src.meta) homepage;
-    maintainers = with maintainers; [ jb55 ];
+    maintainers = with maintainers; [ jb55 sbruder ];
     license = licenses.gpl3Plus;
     platforms = with platforms; linux;
   };
diff --git a/pkgs/tools/misc/apkeep/default.nix b/pkgs/tools/misc/apkeep/default.nix
index 4f6d4d983eb83..fb3568451836c 100644
--- a/pkgs/tools/misc/apkeep/default.nix
+++ b/pkgs/tools/misc/apkeep/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "apkeep";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-RTzYvDkmE0kgl4FSOSjDuQ5G1E0ugFU41zVAMMroofM=";
+    sha256 = "0anfp3nwsainx9sw4njcmkzczq1rmib3dyncwhcf7y3j9v978d3h";
   };
 
-  cargoSha256 = "sha256-YFs2AOMGp0WNrceK14AnigZdJl+UsQdUchpxaI7HSXw=";
+  cargoSha256 = "0npw8f8c0qcprcins0pc12c5w47kv8dd1nrzv4xyllr44vx488mc";
 
   prePatch = ''
     rm .cargo/config.toml
diff --git a/pkgs/tools/misc/atuin/default.nix b/pkgs/tools/misc/atuin/default.nix
index 3157fc51b58a5..3817118118752 100644
--- a/pkgs/tools/misc/atuin/default.nix
+++ b/pkgs/tools/misc/atuin/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, installShellFiles
 , rustPlatform
 , libiconv
 , Security
@@ -9,23 +10,37 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "atuin";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "ellie";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-jjGP8YeHnEr0f9RONwA6wZT872C0jXTvSRdt9zAu6KE=";
+    sha256 = "sha256-I/ZDaOAiHdWOkmf+jIWWxZ3C25UHsl6MB7mCRLADFNs=";
   };
 
-  cargoSha256 = "0vy6q3hjp374lyg00zxim8aplh83iq3f4rrmpz5vnpwbag1fdql3";
+  cargoSha256 = "sha256-KMss6Mpn4LHnkhtJyRea+D7mKItBK4lqq9syFEmCiFo=";
+
+  nativeBuildInputs = [ installShellFiles ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security SystemConfiguration ];
 
+  postInstall = ''
+    HOME=$(mktemp -d)
+    for shell in bash fish zsh; do
+      $out/bin/atuin gen-completions -s $shell -o .
+    done
+
+    installShellCompletion --cmd atuin \
+      --bash atuin.bash \
+      --fish atuin.fish \
+      --zsh _atuin
+  '';
+
   meta = with lib; {
     description = "Replacement for a shell history which records additional commands context with optional encrypted synchronization between machines";
     homepage = "https://github.com/ellie/atuin";
     license = licenses.mit;
-    maintainers = [ maintainers.onsails ];
+    maintainers = with maintainers; [ onsails SuperSandro2000 ];
   };
 }
diff --git a/pkgs/tools/misc/autorandr/default.nix b/pkgs/tools/misc/autorandr/default.nix
index 793204014541d..bf54d6a445efd 100644
--- a/pkgs/tools/misc/autorandr/default.nix
+++ b/pkgs/tools/misc/autorandr/default.nix
@@ -2,14 +2,17 @@
 , python3Packages
 , fetchFromGitHub
 , systemd
-, xrandr }:
+, xrandr
+, installShellFiles }:
 
 stdenv.mkDerivation rec {
   pname = "autorandr";
-  version = "1.11";
+  version = "1.12.1";
 
   buildInputs = [ python3Packages.python ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
   # no wrapper, as autorandr --batch does os.environ.clear()
   buildPhase = ''
     substituteInPlace autorandr.py \
@@ -23,7 +26,12 @@ stdenv.mkDerivation rec {
     runHook preInstall
     make install TARGETS='autorandr' PREFIX=$out
 
-    make install TARGETS='bash_completion' DESTDIR=$out/share/bash-completion/completions
+    # zsh completions exist but currently have no make target, use
+    # installShellCompletions for both
+    # see https://github.com/phillipberndt/autorandr/issues/197
+    installShellCompletion --cmd autorandr \
+        --bash contrib/bash_completion/autorandr \
+        --zsh contrib/zsh_completion/_autorandr
 
     make install TARGETS='autostart_config' PREFIX=$out DESTDIR=$out
 
@@ -49,7 +57,7 @@ stdenv.mkDerivation rec {
     owner = "phillipberndt";
     repo = "autorandr";
     rev = version;
-    sha256 = "0rmnqk2bi6bbd2if1rll37mlzlqxzmnazfffdhcpzskxwyaj4yn5";
+    sha256 = "sha256-7SNnbgV6PeseBD6wdilEIOfOL2KVDpnlkSn9SBgRhhM=";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/barman/default.nix b/pkgs/tools/misc/barman/default.nix
index 048fbeba6ffbb..699a38f3a879e 100644
--- a/pkgs/tools/misc/barman/default.nix
+++ b/pkgs/tools/misc/barman/default.nix
@@ -4,13 +4,13 @@
 }:
 python3Packages.buildPythonApplication rec {
   pname = "barman";
-  version = "2.15";
+  version = "2.17";
 
   src = fetchFromGitHub {
     owner = "EnterpriseDB";
     repo = pname;
     rev = "release/${version}";
-    sha256 = "127cqndg0405rad9jzba1mfhpqmyfa3kx16w345kd4n822w17ak9";
+    sha256 = "0c4gcs4kglbb2qma4nlvw0ycj1wnsg934p9vs50dvqi9099hxkmb";
   };
 
   checkInputs = with python3Packages; [
@@ -20,7 +20,6 @@ python3Packages.buildPythonApplication rec {
 
   propagatedBuildInputs = with python3Packages; [
     argcomplete
-    argh
     azure-identity
     azure-storage-blob
     boto3
diff --git a/pkgs/tools/misc/bash_unit/default.nix b/pkgs/tools/misc/bash_unit/default.nix
index 9f574da85a513..e77bf22d826c4 100644
--- a/pkgs/tools/misc/bash_unit/default.nix
+++ b/pkgs/tools/misc/bash_unit/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bash_unit";
-  version = "1.7.2";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "pgrange";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+hEgag5H7PaBwZSBp3D17q3TZRO2SVBe5M1Ep/jeg1w=";
+    sha256 = "sha256-QWZnzliiqUfg6kXq1VGTNczupxNCgz1gFURrB/K2b4A=";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/misc/bibutils/default.nix b/pkgs/tools/misc/bibutils/default.nix
index 03b35811bc5b4..66a518407025e 100644
--- a/pkgs/tools/misc/bibutils/default.nix
+++ b/pkgs/tools/misc/bibutils/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bibutils";
-  version = "6.10";
+  version = "7.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/bibutils/bibutils_${version}_src.tgz";
-    sha256 = "15p4av74ihsg03j854dkdqihpspwnp58p9g1lhx48w8kz91c0ml6";
+    sha256 = "sha256-bgKK7x6Kaz5azvCYWEp7tocI81z+dAEbNBwR/qXktcM=";
   };
 
   preConfigure = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/tools/misc/birdfont/default.nix b/pkgs/tools/misc/birdfont/default.nix
index 5473fa0e78ce2..a6c2ca77c5a76 100644
--- a/pkgs/tools/misc/birdfont/default.nix
+++ b/pkgs/tools/misc/birdfont/default.nix
@@ -4,11 +4,11 @@ gobject-introspection, gsettings-desktop-schemas, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "birdfont";
-  version = "2.29.5";
+  version = "2.29.6";
 
   src = fetchurl {
     url = "https://birdfont.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "sha256-eIqq4ehUB4lF89ikrHeN5Akq14nxYMxREZzPSVnv+nU=";
+    sha256 = "sha256-INHLH3wv1Rr3RLECAN2CQvctIjWdksxdfVfBkWnx+Is=";
   };
 
   nativeBuildInputs = [ python3 pkg-config vala gobject-introspection wrapGAppsHook ];
diff --git a/pkgs/tools/misc/blink1-tool/default.nix b/pkgs/tools/misc/blink1-tool/default.nix
index 23096bb2eafca..fc82d8244970f 100644
--- a/pkgs/tools/misc/blink1-tool/default.nix
+++ b/pkgs/tools/misc/blink1-tool/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, libusb1, pkg-config, ... }:
+{ lib, stdenv, fetchFromGitHub, libusb1, pkg-config, ... }:
 
 stdenv.mkDerivation rec {
   pname = "blink1";
   version = "1.98a";
 
-  src = fetchurl {
-    url = "https://github.com/todbot/blink1/archive/v${version}.tar.gz";
-    sha256 = "1waci6hccv5i50v5d3z7lx4h224fbkj66ywfynnsgn46w0jm6imv";
+  src = fetchFromGitHub {
+    owner = "todbot";
+    repo = "blink1";
+    rev = "v${version}";
+    sha256 = "sha256-o4pOF6Gp70AL63ih6BNOpRTCs7+qzeZrEqaR4hYDTG8=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/misc/bottom-rs/default.nix b/pkgs/tools/misc/bottom-rs/default.nix
index 9e1ecc03c1206..f9a24537676ff 100644
--- a/pkgs/tools/misc/bottom-rs/default.nix
+++ b/pkgs/tools/misc/bottom-rs/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
     description = "Fantastic (maybe) CLI for translating between bottom and human-readable text";
     homepage = "https://github.com/bottom-software-foundation/bottom-rs";
     license = licenses.mit;
-    maintainers = with maintainers; [ winterqt ];
+    maintainers = with maintainers; [ winter ];
     mainProgram = "bottomify";
   };
 }
diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix
index 6a8ace3b2a981..d1cc0503efc22 100644
--- a/pkgs/tools/misc/broot/default.nix
+++ b/pkgs/tools/misc/broot/default.nix
@@ -15,14 +15,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "1.7.3";
+  version = "1.7.4";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-qu8COcMuReV8zbDK5lm378SQY+TwDy/lo9T/ldNMfz0=";
+    sha256 = "sha256-laFLm6A0EeprSHuqBi3p4ykgBbCinYU1sf0iRV0PY/M=";
   };
 
-  cargoHash = "sha256-ndFymXT2hA4ZztePDFhAYlMh8Iwxi1/ULZYGq+W5vpE=";
+  cargoHash = "sha256-0ybig1S56cJjf6QGWuDasfsIiwRhK+bpWNKOjs4D7P8=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -73,9 +73,15 @@ rustPlatform.buildRustPackage rec {
     installManPage man/broot.1
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/broot --version | grep "${version}"
+  '';
+
   meta = with lib; {
     description = "An interactive tree view, a fuzzy search, a balanced BFS descent and customizable commands";
     homepage = "https://dystroy.org/broot/";
+    changelog = "https://github.com/Canop/broot/releases/tag/v${version}";
     maintainers = with maintainers; [ dywedir ];
     license = with licenses; [ mit ];
   };
diff --git a/pkgs/tools/misc/bunnyfetch/default.nix b/pkgs/tools/misc/bunnyfetch/default.nix
index e2b99da82db05..d03fea2cefd28 100644
--- a/pkgs/tools/misc/bunnyfetch/default.nix
+++ b/pkgs/tools/misc/bunnyfetch/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "bunnyfetch";
-  version = "unstable-2021-06-19";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "Rosettea";
     repo = "bunnyfetch";
-    rev = "24370338b936bae1ebdefea73e8372ac0b4d2858";
-    sha256 = "09wcffx6ak4djm2lrxq43n27p9qmczng4rf11qpwx3w4w67jvpz9";
+    rev = "v${version}";
+    sha256 = "sha256-6MnjCXc9/8twdf8PHKsVJY1yWYwUf5R01vtQFJbyy7M=";
   };
 
-  vendorSha256 = "1vv69y0x06kn99lw995sbkb7vgd0yb18flkr2ml8ss7q2yvz37vi";
+  vendorSha256 = "sha256-w+O1dU8t7uNvdlFnYhCdJCDixpWWZAnj9GrtsCbu9SM=";
 
   # No upstream tests
   doCheck = false;
diff --git a/pkgs/tools/misc/byobu/default.nix b/pkgs/tools/misc/byobu/default.nix
index ffe3fd0fe1621..23df93172e999 100644
--- a/pkgs/tools/misc/byobu/default.nix
+++ b/pkgs/tools/misc/byobu/default.nix
@@ -7,7 +7,7 @@ let
 in
 stdenv.mkDerivation rec {
   version = "5.133";
-  name = "byobu-" + version;
+  pname = "byobu";
 
   src = fetchurl {
     url = "https://launchpad.net/byobu/trunk/${version}/+download/byobu_${version}.orig.tar.gz";
diff --git a/pkgs/tools/misc/chezmoi/default.nix b/pkgs/tools/misc/chezmoi/default.nix
index d9ac3a894c67c..932d9c19f3023 100644
--- a/pkgs/tools/misc/chezmoi/default.nix
+++ b/pkgs/tools/misc/chezmoi/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "chezmoi";
-  version = "2.7.4";
+  version = "2.9.4";
 
   src = fetchFromGitHub {
     owner = "twpayne";
     repo = "chezmoi";
     rev = "v${version}";
-    sha256 = "sha256-RX9Hgjl/i/FWXHFp+yYWQEYDiOQijU+eiBnREu4K1Mg=";
+    sha256 = "sha256-idkPhBGrLz4xv/DnFt4iiO4jVRTsBmMXGhM0MQmVtpw=";
   };
 
-  vendorSha256 = "sha256-tz3Vcw/p7BKcgc3EsLsSPOKhwqN5kysOcmER7OoKQ+w=";
+  vendorSha256 = "sha256-9uOlNgMsz4UklSk7UJDKZMjszoxQZK6mLQwhtK8I+Mc=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/misc/cht.sh/default.nix b/pkgs/tools/misc/cht.sh/default.nix
index bff4b5310bd12..e9c045638e442 100644
--- a/pkgs/tools/misc/cht.sh/default.nix
+++ b/pkgs/tools/misc/cht.sh/default.nix
@@ -10,15 +10,15 @@
 
 stdenv.mkDerivation {
   pname = "cht.sh";
-  version = "unstable-2021-11-13";
+  version = "unstable-2021-11-17";
 
   nativeBuildInputs = [ makeWrapper ];
 
   src = fetchFromGitHub {
     owner = "chubin";
     repo = "cheat.sh";
-    rev = "4bb7b14843c302695b7d47d4d814f38998da1a68";
-    sha256 = "NbB+UGydk0zSkqTPYw5KOHR0mv1UHH2pXLYdMRdG8UE=";
+    rev = "e0010117ca3eeb22e79346cb37f3897b7404ed12";
+    sha256 = "GJSJyIQ+8kz/+8/3lgPVr+V6zoo7iW739Z2frLpMTJI=";
   };
 
   # Fix ".cht.sh-wrapped" in the help message
diff --git a/pkgs/tools/misc/clickclack/default.nix b/pkgs/tools/misc/clickclack/default.nix
index 75518e554ca8e..0bcea9a2e8ea3 100644
--- a/pkgs/tools/misc/clickclack/default.nix
+++ b/pkgs/tools/misc/clickclack/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "clickclack";
-  version = "0.1.1";
+  version = "0.2";
 
   src = fetchFromSourcehut {
     owner = "~proycon";
     repo = "clickclack";
     rev = version;
-    sha256 = "1q8r0ng1bld5n82gh7my7ck90f4plf8vf019hm2wz475dl38izd5";
+    sha256 = "sha256-hldtHSRdw6yP9lUFna5yvJ3mOTbQbbQNnGM7fMQmmtM=";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/misc/cloc/default.nix b/pkgs/tools/misc/cloc/default.nix
index 939c9f744f49e..662a72f9e7a09 100644
--- a/pkgs/tools/misc/cloc/default.nix
+++ b/pkgs/tools/misc/cloc/default.nix
@@ -2,13 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "cloc";
-  version = "1.90";
+  version = "1.92";
 
   src = fetchFromGitHub {
     owner = "AlDanial";
     repo = "cloc";
     rev = "v${version}";
-    sha256 = "0ic9q6qqw5f1wafp9lpmhr0miasbdb9zr59c0jlymnzffdmnliyc";
+    sha256 = if stdenv.isDarwin then
+      "1hy1hskiw02b7xaxn2qz0v7znj14l49w1anx20z6rkcps7212l5l"
+    else
+      "sha256-tFARxNGXzWw+EN2qwBOhJEj7zwYfC9tVP0sAHqeGwcM=";
   };
 
   setSourceRoot = ''
@@ -16,7 +19,12 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = (with perlPackages; [ perl AlgorithmDiff ParallelForkManager RegexpCommon ]);
+  buildInputs = with perlPackages; [
+    perl
+    AlgorithmDiff
+    ParallelForkManager
+    RegexpCommon
+  ];
 
   makeFlags = [ "prefix=" "DESTDIR=$(out)" "INSTALL=install" ];
 
diff --git a/pkgs/tools/misc/cloud-sql-proxy/default.nix b/pkgs/tools/misc/cloud-sql-proxy/default.nix
index 7228fb84cb72d..5eff549a6517c 100644
--- a/pkgs/tools/misc/cloud-sql-proxy/default.nix
+++ b/pkgs/tools/misc/cloud-sql-proxy/default.nix
@@ -2,21 +2,20 @@
 
 buildGoModule rec {
   pname = "cloud-sql-proxy";
-  version = "1.27.0";
+  version = "1.27.1";
 
   src = fetchFromGitHub {
     owner = "GoogleCloudPlatform";
     repo = "cloudsql-proxy";
     rev = "v${version}";
-    sha256 = "sha256-x44nG5M2ycBaf/Fbw5crmAV//yv/WtIYbTjJ7/6TnoI=";
+    sha256 = "sha256-xVPs7D639KY2ryDZpivineH4yZSNXi78FWk2SFKX1sk=";
   };
 
   subPackages = [ "cmd/cloud_sql_proxy" ];
 
-  vendorSha256 = "sha256-Uw8YJ1qzLYlTkx6wR/FKeDRHGSwZm2za/c0f/OKHiE0=";
+  vendorSha256 = "sha256-913GJ/rPvDavQQMqDDTe4gBXziPPeQRPpUUG3DAz96g=";
 
-  # Disables tests that require running fuse with a hardcoded path
-  doCheck = false;
+  checkFlags = [ "-short" ];
 
   meta = with lib; {
     description = "An authenticating proxy for Second Generation Google Cloud SQL databases";
diff --git a/pkgs/tools/misc/code-minimap/default.nix b/pkgs/tools/misc/code-minimap/default.nix
index cc2d979ca757a..6723ad98f489a 100644
--- a/pkgs/tools/misc/code-minimap/default.nix
+++ b/pkgs/tools/misc/code-minimap/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "code-minimap";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "wfxr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-eCHmMtndcQJqKmjxhkcLvjMUXApkSnH+7qyG7PDfcwo=";
+    sha256 = "sha256-nUEmlKqCskPEQCOS2NC6jF4yVDarJeb3p+BKZq/2qvw=";
   };
 
-  cargoSha256 = "sha256-wKCANWznOJMlQ8T2q39NNNRmgPYMpbkJhXpxojusNsE=";
+  cargoSha256 = "sha256-yjjoQYYWK9/9fOP5ICnhpuF/07SyCszB9GCDr0GJ0v0=";
 
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
diff --git a/pkgs/tools/misc/coreutils/coreutils-8.23-4.cygwin.patch b/pkgs/tools/misc/coreutils/coreutils-8.23-4.cygwin.patch
deleted file mode 100644
index 2f69347ffabdb..0000000000000
--- a/pkgs/tools/misc/coreutils/coreutils-8.23-4.cygwin.patch
+++ /dev/null
@@ -1,1259 +0,0 @@
---- coreutils-8.23/ChangeLog	2014-07-18 15:22:24.000000000 -0700
-+++ coreutils-8.23/ChangeLog	2014-10-13 08:56:50.775188900 -0700
-@@ -1,3 +1,220 @@
-+2014-10-13  U-WIN-RSJ0SJPBR3E\Administrator  <Administrator@WIN-KQ1OCEBI2E8>
-+
-+	Cygwin release 8.23-4
-+	* copy.c (copy_internal): Fix typo that broke recursive copy
-+	when dealing with directories.
-+
-+2014-09-24  Eric Blake  <eblake@redhat.com>
-+
-+	Cygwin release 8.23-3
-+	* lib/cygwin.c (cygwin_spelling): Skip .exe magic if .exe is
-+	already present.  Also honor .exe magic on symlinks.
-+	* lib/same.c (same_name): Treat files as same if only difference
-+	is .exe magic.
-+	* copy.c (copy): Move symlink special casing here.
-+	* install.c (strip): Update caller.
-+	* ls.c (gobble_file): Likewise.
-+	* stat.c (do_statfs, do_stat): Likewise.
-+
-+2014-08-12  Eric Blake  <eblake@redhat.com>
-+
-+	Cygwin release 8.23-2.
-+	Drop hostname.
-+
-+2014-08-01  Eric Blake  <eblake@redhat.com>
-+
-+	Cygwin release 8.23-1.
-+	* configure.ac: Disable stdbuf.
-+	* lib/local.mk: Upstream switched to flat make, impacting how
-+	we build local cygwin.c code.
-+	* lib/canonicalize.c: Accepted upstream.
-+	* lib/file-has-acl.c: Likewise.
-+	* realpath.c: Likewise.
-+	* su.c: Upstream dropped su.
-+	* Makefile.am: Drop su changes.
-+	* chroot.c: Adapt to new upstream code.
-+
-+2012-02-04  Eric Blake  <eblake@redhat.com>
-+
-+	Cygwin release 8.15-1.
-+	* lib/fts.c: Early gnulib fix is now upstream.
-+	* lib/canonicalize.c: Backport gnulib fix for /// -> /.
-+	* realpath.c: Backport gnulib fix for --relative-to.
-+
-+2011-10-27  Eric Blake  <eblake@redhat.com>
-+
-+	Cygwin release 8.14-1.
-+	* lib/ftc.c: Backport gnulib fix to make rm close before rmdir.
-+	* lib/cygwin.c (cygwin_spelling): Fix logic when 'f' and 'f.exe'
-+	exist but are different files.
-+	* stat.c: Fix --append-exe.
-+
-+2011-02-04  Eric Blake  <eblake@redhat.com>
-+
-+	Cygwin release 8.10-1.
-+
-+2010-12-24  Eric Blake  <eblake@redhat.com>
-+
-+	Cygwin release 8.8-1.
-+	* lib/mountlist.c (ME_REMOTE): Restore previous cygwin hack to
-+	determine remote drives, lost since 6.11-1.
-+
-+2010-04-29  Eric Blake  <eblake@redhat.com>
-+
-+	Cygwin release 8.5-1.
-+
-+2010-03-11  Eric Blake  <eblake@redhat.com>
-+
-+	Cygwin release 8.4-1.
-+	* lib/xfreopen.c (xfreopen): Consolidate workaround for broken
-+	freopen usage into one place.
-+	* copy.c (copy): Reinstate .exe magic handling when copying
-+	files with implicit .exe.
-+
-+2008-12-13  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 7.0-1.
-+
-+2008-06-02  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 6.12-1.
-+
-+2008-05-12  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 6.11-1, requires cygwin 1.7.0.
-+	* lib/cygwin.h (CYGWIN_APPEND_EXE): Accomodate new PATH_MAX.
-+	* lib/cygwin.c (cygwin_spelling): Accomodate new trailing
-+	`.' semantics.
-+	* lib/same.c (same_name): Accomodate new PATH_MAX.
-+
-+2008-01-24  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 6.10-1.
-+	* lib/hash-triple.c (triple_hash): Hash case-insensitively.
-+	* lib/hash-pjw.h (hash_pjw_case): New interface.
-+	* lib/hash-pjw.c (hash_pjw_case): New function.
-+	* chcon.c (main): Support my root_dev_ino tweaks.
-+
-+2007-08-21  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 6.9-5.
-+	* same.c (same_name): Detect same file differing only by case.
-+	* copy.c (same_file_ok): Add parameter to detect when case
-+	change is being attempted.
-+	(triple_hash): Hash names case-insensitively.
-+	(copy_internal): Accommodate case-change attempts.
-+	* mv.c (do_move): Allow 'mv foo/ Foo/' as shorthand for
-+	'mv -T foo/ Foo/'.
-+
-+2007-07-23  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 6.9-4.
-+	* dd.c (main): Fix typo in earlier cygwin patch.
-+
-+2007-05-29  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 6.9-3.
-+	* cksum.c (main): Don't lose append mode.
-+	* md5sum.c (main): Likewise.
-+	* cat.c (main): Likewise.
-+	* head.c (main): Likewise.
-+	* tac.c (main): Likewise.
-+	* tail.c (main): Likewise.
-+	* tee.c (main): Likewise.
-+	* tr.c (main): Likewise.
-+
-+2006-11-24  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 6.6-2.
-+	* lib/cygwin.c (cygwin_spelling): Work even with old-style
-+	symlinks, which lacked .lnk suffix.
-+
-+2006-04-14  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 5.94-5. Experimental only, depends on cygwin
-+	snapshot 20060329 or later.
-+	* dd.c (main): Default to binary mode.
-+	* system.h (rpl_freopen): Remove this hack, now that cygwin
-+	freopen(NULL) works.
-+	* lib/quotearg.c (quote_eight_bit): New variable, so I can...
-+	(quotearg_buffer_restyled): treat 8-bit	characters as printable
-+	when outputting to a terminal.
-+	* lib/quote.c (quote_n): Use it.
-+
-+2006-02-28  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 5.94-4. Experimental only, depends on cygwin
-+	snapshot 20060227 or later.
-+	* lib/root-dev-ino.h (struct root_dev_ino): New struct.
-+	(ROOT_DEV_INO_CHECK, ROOT_DEV_INO_WARN): Also track //.
-+	* lib/root-dev-ino.c (get_root_dev_ino): Also track //.
-+	* chmod.c (root_dev_ino): Use new type.
-+	(main): Ditto.
-+	* chown-core.h (struct Chown_option): Ditto.
-+	* chown.c (main): Ditto.
-+	* remove.h (struct rm_options): Ditto.
-+	* rm.c (main): Ditto.
-+	* pwd.c (robust_getcwd): Ditto.  Also fix bug when in / or //.
-+
-+2006-01-24  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 5.93-3, depends on cygwin-1.5.19-1 or later.
-+	* cksum.c (main): Always output binary files.
-+	* md5sum.c (main): Likewise.
-+	* su.c (correct_password): On NT machines, attempt
-+	passwordless login first, and give better error message if
-+	password check fails.  I still don't know how to distinguish
-+	between insufficient privileges vs. incorrect password.
-+	* dircolors.c (main): Silence warning from tcsh 6.14.00.
-+
-+2005-10-15  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 5.90-3, depends on snapshot 20051003 or later (will
-+	become cygwin 1.5.19).
-+	* doc/coreutils.texi (ls invocation, stat invocation): Document
-+	--append-exe.
-+	* ls.c (usage): Ditto.
-+	(gobble_file): Append .exe as needed when requested.
-+	* stat.c (usage): Document --append-exe.
-+	(do_stat, do_statfs): Append .exe as needed when requested.
-+
-+2005-10-08  Eric Blake  <ebb9@byu.net>
-+
-+	Cygwin release 5.90-2, depends on snapshot 20051003 or later (will
-+	become cygwin 1.5.19).
-+	* lib/mkdir-p.c (make_dir_parents): Fix bug in last patch.
-+	* lib/cygwin.h (CYGWIN_APPEND_EXE): Factor into common macro.
-+	* copy.c (copy): Use new macro.
-+	* install.c (strip): Ditto.
-+	* ln.c (do_link): Ditto.
-+
-+2005-07-13  Eric Blake  <ebb9@byu.net>
-+
-+	* doc/coreutils.texi (ln invocation): Document --disable-exe-magic.
-+	* ln.c (usage): Likewise.
-+	(do_link): Skip .exe magic when requested.
-+
-+2005-07-12  Eric Blake  <ebb9@byu.net>
-+
-+	* lib/cygwin.c (cygwin_spelling): Don't append .exe to directories.
-+	Make sure .exe exists before returning 1, because otherwise
-+	virtual directories such as /cygdrive have problems.
-+
-+2005-07-07  Eric Blake  <ebb9@byu.net>
-+
-+	* lib/cygwin.h: New file, defining cygwin_spelling.
-+	* lib/cygwin.c: New file.
-+	* lib/Makefile.am: Compile it.
-+	* copy.c (copy_internal, copy): Use new cygwin_spelling() to
-+	undo .exe magic.
-+	* link.c (do_link): Likewise.
-+	* install.c (strip): Likewise.
-+
-+2005-01-03  Corinna Vinschen  <corinna@vinschen.de>
-+
-+	* install.c (strip): Check for .exe here since strip doesn't.
-+
-+
- 2014-07-18  Pádraig Brady  <P@draigBrady.com>
- 
- 	version 8.23
---- coreutils-8.23/configure.ac	2014-07-17 18:40:57.000000000 -0700
-+++ coreutils-8.23/configure.ac	2014-10-13 08:30:37.165262300 -0700
-@@ -473,7 +473,7 @@ AC_COMPILE_IFELSE(
-   [stdbuf_supported=yes],
-   [stdbuf_supported=no])
- AC_MSG_RESULT([$stdbuf_supported])
--if test "$stdbuf_supported" = "yes"; then
-+if test "$stdbuf_supported" = "yes" && test -z "$EXEEXT"; then
-   gl_ADD_PROG([optional_bin_progs], [stdbuf])
- fi
- 
---- coreutils-8.23/doc/coreutils.texi	2014-07-13 15:09:52.000000000 -0700
-+++ coreutils-8.23/doc/coreutils.texi	2014-10-13 08:30:37.180881200 -0700
-@@ -7838,6 +7838,14 @@ These options change how file names them
- 
- @table @samp
- 
-+@item --append-exe
-+@opindex --append-exe
-+@cindex appending exe on cygwin
-+Cygwin only: Cygwin normally performs @samp{.exe} magic, where a
-+command line argument typed without an .exe extension transparently
-+refers to the existing file with an extension.  Specifying this option
-+will make the .exe show if cygwin magic was involved.
-+
- @item -b
- @itemx --escape
- @itemx --quoting-style=escape
-@@ -11799,6 +11807,14 @@ With this option, @command{stat} acts on
- by each symbolic link argument.
- Without it, @command{stat} acts on any symbolic link argument directly.
- 
-+@item --append-exe
-+@opindex --append-exe
-+@cindex appending exe on cygwin
-+Cygwin only: Cygwin normally performs .exe magic, where a command line
-+argument typed without an .exe extension transparently refers to the
-+existing file with an extension.  Specifying this option will make
-+the .exe show if cygwin magic was involved.
-+
- @item -f
- @itemx --file-system
- @opindex -f
---- coreutils-8.23/lib/cygwin.c	1969-12-31 16:00:00.000000000 -0800
-+++ coreutils-8.23/lib/cygwin.c	2014-10-13 08:30:37.180881200 -0700
-@@ -0,0 +1,67 @@
-+/* cygwin.c - helper functions unique to Cygwin
-+
-+   Copyright (C) 2005, 2006, 2008, 2011 Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify
-+   it under the terms of the GNU General Public License as published by
-+   the Free Software Foundation; either version 3, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+   GNU General Public License for more details.
-+
-+   You should have received a copy of the GNU General Public License
-+   along with this program; if not, write to the Free Software Foundation,
-+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+
-+   Written by Eric Blake.  */
-+
-+#include <config.h>
-+
-+#include "cygwin.h"
-+
-+#include <errno.h>
-+#include <limits.h>
-+#include <string.h>
-+#include <unistd.h>
-+
-+/* Return -1 if PATH is not found, 0 if PATH will not have .exe
-+   appended (it is possible that a PATH that does not exist still
-+   returns 0 instead of -1, or fails for a PATH that exists but cannot
-+   be stat'ed), and positive if PATH has ".exe" automatically appended
-+   by cygwin (1 if PATH is a symlink, 2 otherwise).  Won't change errno.  */
-+
-+int
-+cygwin_spelling (char const *path)
-+{
-+  int saved_errno = errno;
-+  int result = 0; /* Start with assumption that PATH is okay.  */
-+  int len;
-+  struct stat st1;
-+  struct stat st2;
-+  char *path_exe;
-+
-+  if (! path || ! *path || len > PATH_MAX)
-+    /* PATH will cause EINVAL or ENAMETOOLONG, treat it as non-existing.  */
-+    return -1;
-+  len = strlen (path);
-+  if (path[len - 1] == '/'
-+      || (len > 4 && !strcasecmp (&path[len - 4], ".exe")))
-+    /* Don't change spelling if there is a trailing `/' or '.exe'.  */
-+    return 0;
-+  if (lstat (path, &st1) < 0 || S_ISDIR(st1.st_mode))
-+    {
-+      errno = saved_errno;
-+      return -1;
-+    }
-+  path_exe = malloca (len + 5); /* adding ".exe" and NUL.  */
-+  strcat (stpcpy (path_exe, path), ".exe");
-+  if (lstat (path_exe, &st2) == 0 && st1.st_ino == st2.st_ino)
-+    result = 1 + !S_ISLNK(st1.st_mode);
-+  freea (path_exe);
-+
-+  errno = saved_errno;
-+  return result;
-+}
---- coreutils-8.23/lib/cygwin.h	1969-12-31 16:00:00.000000000 -0800
-+++ coreutils-8.23/lib/cygwin.h	2014-10-13 08:30:37.180881200 -0700
-@@ -0,0 +1,38 @@
-+/* cygwin.h - helper functions unique to Cygwin
-+
-+   Copyright (C) 2005, 2006, 2008, 2010, 2011 Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify
-+   it under the terms of the GNU General Public License as published by
-+   the Free Software Foundation; either version 3, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+   GNU General Public License for more details.
-+
-+   You should have received a copy of the GNU General Public License
-+   along with this program; if not, write to the Free Software Foundation,
-+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+
-+   Written by Eric Blake.  */
-+
-+#ifndef CYGWIN_H
-+# define CYGWIN_H 1
-+
-+#include "malloca.h"
-+
-+int cygwin_spelling (char const *);
-+
-+/* Append ".exe" to char *__NAME_ORIG, where __NAME is either NULL or
-+   between __NAME_ORIG and the nul terminator.  Both params will be
-+   evaluated more than once and assigned the new value.  The user must
-+   later call freea(__NAME).  */
-+#define CYGWIN_APPEND_EXE(__name, __name_orig)                          \
-+  __name_orig = __name =                                                \
-+    strcat (strcpy (malloca (strchr (__name ? __name : __name_orig, '\0') \
-+                             - (__name_orig) + 5),                      \
-+                    __name_orig), ".exe")
-+
-+#endif /* CYGWIN_H */
---- coreutils-8.23/lib/hash-pjw.c	2014-05-29 05:05:50.000000000 -0700
-+++ coreutils-8.23/lib/hash-pjw.c	2014-10-13 08:30:37.180881200 -0700
-@@ -19,6 +19,7 @@
- 
- #include "hash-pjw.h"
- 
-+#include <ctype.h>
- #include <limits.h>
- 
- #define SIZE_BITS (sizeof (size_t) * CHAR_BIT)
-@@ -38,3 +39,16 @@ hash_pjw (const void *x, size_t tablesiz
- 
-   return h % tablesize;
- }
-+
-+/* Likewise, but case-insensitive.  */
-+size_t
-+hash_pjw_case (const void *x, size_t tablesize)
-+{
-+  const unsigned char *s;
-+  size_t h = 0;
-+
-+  for (s = x; *s; s++)
-+    h = tolower (*s) + ((h << 9) | (h >> (SIZE_BITS - 9)));
-+
-+  return h % tablesize;
-+}
---- coreutils-8.23/lib/hash-pjw.h	2014-05-29 05:05:50.000000000 -0700
-+++ coreutils-8.23/lib/hash-pjw.h	2014-10-13 08:30:37.180881200 -0700
-@@ -21,3 +21,4 @@
-    The result is platform dependent: it depends on the size of the 'size_t'
-    type and on the signedness of the 'char' type.  */
- extern size_t hash_pjw (void const *x, size_t tablesize) _GL_ATTRIBUTE_PURE;
-+extern size_t hash_pjw_case (void const *x, size_t tablesize) _GL_ATTRIBUTE_PURE;
---- coreutils-8.23/lib/hash-triple.c	2014-05-29 05:05:50.000000000 -0700
-+++ coreutils-8.23/lib/hash-triple.c	2014-10-13 08:30:37.180881200 -0700
-@@ -34,7 +34,13 @@ size_t
- triple_hash (void const *x, size_t table_size)
- {
-   struct F_triple const *p = x;
-+#if !__CYGWIN__
-   size_t tmp = hash_pjw (p->name, table_size);
-+#else // cygwin
-+  /* Hash case-insensitively, to force collisions on names that differ by
-+     case; copy.c can then account for case-insensitive renames. */
-+  size_t tmp = hash_pjw_case (p->name, table_size);
-+#endif
- 
-   /* Ignoring the device number here should be fine.  */
-   return (tmp ^ p->st_ino) % table_size;
---- coreutils-8.23/lib/local.mk	2013-12-04 06:48:30.000000000 -0800
-+++ coreutils-8.23/lib/local.mk	2014-10-13 08:30:37.180881200 -0700
-@@ -3,3 +3,6 @@ include lib/gnulib.mk
- # Allow "make distdir" to succeed before "make all" has run.
- dist-hook: $(noinst_LIBRARIES)
- .PHONY: dist-hook
-+
-+# Hook in cygwin helper
-+lib_libcoreutils_a_SOURCES += lib/cygwin.c lib/cygwin.h
---- coreutils-8.23/lib/root-dev-ino.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/lib/root-dev-ino.c	2014-10-13 08:30:37.180881200 -0700
-@@ -25,13 +25,17 @@
- /* Call lstat to get the device and inode numbers for '/'.
-    Upon failure, return NULL.  Otherwise, set the members of
-    *ROOT_D_I accordingly and return ROOT_D_I.  */
--struct dev_ino *
--get_root_dev_ino (struct dev_ino *root_d_i)
-+struct root_dev_ino *
-+get_root_dev_ino (struct root_dev_ino *root_d_i)
- {
-   struct stat statbuf;
-   if (lstat ("/", &statbuf))
-     return NULL;
--  root_d_i->st_ino = statbuf.st_ino;
--  root_d_i->st_dev = statbuf.st_dev;
-+  root_d_i->single_slash.st_ino = statbuf.st_ino;
-+  root_d_i->single_slash.st_dev = statbuf.st_dev;
-+  if (lstat ("//", &statbuf))
-+    return NULL;
-+  root_d_i->double_slash.st_ino = statbuf.st_ino;
-+  root_d_i->double_slash.st_dev = statbuf.st_dev;
-   return root_d_i;
- }
---- coreutils-8.23/lib/root-dev-ino.h	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/lib/root-dev-ino.h	2014-10-13 08:30:37.180881200 -0700
-@@ -21,19 +21,26 @@
- # include "dev-ino.h"
- # include "same-inode.h"
- 
--struct dev_ino *
--get_root_dev_ino (struct dev_ino *root_d_i);
-+struct root_dev_ino
-+{
-+  struct dev_ino single_slash;
-+  struct dev_ino double_slash;
-+};
-+
-+struct root_dev_ino *
-+get_root_dev_ino (struct root_dev_ino *root_d_i);
- 
- /* These macros are common to the programs that support the
-    --preserve-root and --no-preserve-root options.  */
- 
- # define ROOT_DEV_INO_CHECK(Root_dev_ino, Dir_statbuf) \
--    (Root_dev_ino && SAME_INODE (*Dir_statbuf, *Root_dev_ino))
-+  (Root_dev_ino && (SAME_INODE (*Dir_statbuf, (Root_dev_ino)->single_slash) \
-+                    || SAME_INODE (*Dir_statbuf, (Root_dev_ino)->double_slash)))
- 
- # define ROOT_DEV_INO_WARN(Dirname)					\
-   do									\
-     {									\
--      if (STREQ (Dirname, "/"))						\
-+      if (STREQ (Dirname, "/") || STREQ (Dirname, "//"))                \
-         error (0, 0, _("it is dangerous to operate recursively on %s"),	\
-                quote (Dirname));					\
-       else								\
---- coreutils-8.23/lib/same.c	2014-05-29 05:05:50.000000000 -0700
-+++ coreutils-8.23/lib/same.c	2014-10-13 08:30:37.180881200 -0700
-@@ -40,6 +40,13 @@
- #include "error.h"
- #include "same-inode.h"
- 
-+#if __CYGWIN__
-+# include <sys/cygwin.h>
-+# include "cygwin.h"
-+# include "malloca.h"
-+# include "memcasecmp.h"
-+#endif
-+
- #ifndef MIN
- # define MIN(a, b) ((a) < (b) ? (a) : (b))
- #endif
-@@ -59,6 +66,45 @@ same_name (const char *source, const cha
-     (source_baselen == dest_baselen
-      && memcmp (source_basename, dest_basename, dest_baselen) == 0);
-   bool compare_dirs = identical_basenames;
-+#if __CYGWIN__
-+  /* If two names differ case-insensitively by only an '.exe' suffix,
-+     do some sleuthing to see if .exe magic matters on the shorter
-+     name.  Swapping the longer name to dest avoids duplication.  */
-+  if (source_baselen == dest_baselen + 4)
-+    {
-+      char const *tmp_basename = source_basename;
-+      size_t tmp_baselen = source_baselen;
-+      source_basename = dest_basename;
-+      source_baselen = dest_baselen;
-+      dest_basename = tmp_basename;
-+      dest_baselen = tmp_baselen;
-+    }
-+  if (source_baselen + 4 == dest_baselen
-+      && !memcasecmp (dest_basename - 4, ".exe", 4)
-+      && !memcasecmp (source_basename, dest_basename, source_baselen)
-+      && 0 < cygwin_spelling(source))
-+    dest_baselen -= 4;
-+  /* Some, but not all, files are case-insensitive (depending on mount
-+     options, CYGWIN=case settings, and virtual file systems).  Do
-+     some sleuthing to decide whether case-insensitivity matters.  */
-+  if (! compare_dirs && source_baselen == dest_baselen)
-+    {
-+      ssize_t wsrclen = cygwin_conv_path (CCP_POSIX_TO_WIN_W,
-+                                          source, NULL, 0);
-+      ssize_t wdstlen = cygwin_conv_path (CCP_POSIX_TO_WIN_W,
-+                                          dest, NULL, 0);
-+      char *wsrc = malloca (wsrclen);
-+      char *wdst = malloca (wdstlen);
-+      if (cygwin_conv_path (CCP_POSIX_TO_WIN_W, source, wsrc, wsrclen))
-+        error (EXIT_FAILURE, errno, "unable to convert path name %s", source);
-+      if (cygwin_conv_path (CCP_POSIX_TO_WIN_W, dest, wdst, wdstlen))
-+        error (EXIT_FAILURE, errno, "unable to convert path name %s", dest);
-+      if (wsrclen == wdstlen && memcasecmp (wsrc, wdst, wsrclen) == 0)
-+        compare_dirs = true;
-+      freea (wsrc);
-+      freea (wdst);
-+    }
-+#endif /* __CYGWIN__ */
-   bool same = false;
- 
- #if ! _POSIX_NO_TRUNC && HAVE_PATHCONF && defined _PC_NAME_MAX
---- coreutils-8.23/lib/xfreopen.c	2014-05-29 05:05:50.000000000 -0700
-+++ coreutils-8.23/lib/xfreopen.c	2014-10-13 08:30:37.180881200 -0700
-@@ -18,6 +18,7 @@
- #include "xfreopen.h"
- 
- #include <errno.h>
-+#include <fcntl.h>
- #include "error.h"
- #include "exitfail.h"
- #include "quote.h"
-@@ -26,9 +27,17 @@
- #include "gettext.h"
- #define _(msgid) gettext (msgid)
- 
-+#define STREQ(s1, s2) (strcmp (s1, s2) == 0)
-+
- void
- xfreopen (char const *filename, char const *mode, FILE *fp)
- {
-+  if (!filename && STREQ (mode, "wb"))
-+    {
-+      int flag = fcntl (fileno (fp), F_GETFL);
-+      if (0 <= flag && (flag & O_APPEND))
-+        mode = "ab";
-+    }
-   if (!freopen (filename, mode, fp))
-     {
-       char const *f = (filename ? filename
---- coreutils-8.23/chcon.c	2014-07-13 15:09:52.000000000 -0700
-+++ coreutils-8.23/src/chcon.c	2014-10-13 08:30:37.180881200 -0700
-@@ -48,7 +48,7 @@ static bool verbose;
- 
- /* Pointer to the device and inode numbers of '/', when --recursive.
-    Otherwise NULL.  */
--static struct dev_ino *root_dev_ino;
-+static struct root_dev_ino *root_dev_ino;
- 
- /* The name of the context file is being given. */
- static char const *specified_context;
-@@ -569,7 +569,7 @@ main (int argc, char **argv)
- 
-   if (recurse && preserve_root)
-     {
--      static struct dev_ino dev_ino_buf;
-+      static struct root_dev_ino dev_ino_buf;
-       root_dev_ino = get_root_dev_ino (&dev_ino_buf);
-       if (root_dev_ino == NULL)
-         error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
---- coreutils-8.23/chgrp.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/chgrp.c	2014-10-13 08:30:37.180881200 -0700
-@@ -299,7 +299,7 @@ main (int argc, char **argv)
- 
-   if (chopt.recurse && preserve_root)
-     {
--      static struct dev_ino dev_ino_buf;
-+      static struct root_dev_ino dev_ino_buf;
-       chopt.root_dev_ino = get_root_dev_ino (&dev_ino_buf);
-       if (chopt.root_dev_ino == NULL)
-         error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
---- coreutils-8.23/chmod.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/chmod.c	2014-10-13 08:30:37.180881200 -0700
-@@ -81,7 +81,7 @@ static enum Verbosity verbosity = V_off;
- 
- /* Pointer to the device and inode numbers of '/', when --recursive.
-    Otherwise NULL.  */
--static struct dev_ino *root_dev_ino;
-+static struct root_dev_ino *root_dev_ino;
- 
- /* For long options that have no equivalent short option, use a
-    non-character as a pseudo short option, starting with CHAR_MAX + 1.  */
-@@ -552,7 +552,7 @@ main (int argc, char **argv)
- 
-   if (recurse && preserve_root)
-     {
--      static struct dev_ino dev_ino_buf;
-+      static struct root_dev_ino dev_ino_buf;
-       root_dev_ino = get_root_dev_ino (&dev_ino_buf);
-       if (root_dev_ino == NULL)
-         error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
---- coreutils-8.23/chown-core.h	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/chown-core.h	2014-10-13 08:30:37.196451900 -0700
-@@ -50,7 +50,7 @@ struct Chown_option
- 
-   /* Pointer to the device and inode numbers of '/', when --recursive.
-      Need not be freed.  Otherwise NULL.  */
--  struct dev_ino *root_dev_ino;
-+  struct root_dev_ino *root_dev_ino;
- 
-   /* This corresponds to the --dereference (opposite of -h) option.  */
-   bool affect_symlink_referent;
---- coreutils-8.23/chown.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/chown.c	2014-10-13 08:30:37.196451900 -0700
-@@ -312,7 +312,7 @@ main (int argc, char **argv)
- 
-   if (chopt.recurse && preserve_root)
-     {
--      static struct dev_ino dev_ino_buf;
-+      static struct root_dev_ino dev_ino_buf;
-       chopt.root_dev_ino = get_root_dev_ino (&dev_ino_buf);
-       if (chopt.root_dev_ino == NULL)
-         error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
---- coreutils-8.23/chroot.c	2014-07-13 16:59:20.000000000 -0700
-+++ coreutils-8.23/src/chroot.c	2014-10-13 08:30:37.196451900 -0700
-@@ -163,7 +163,7 @@ parse_additional_groups (char const *gro
- static bool
- is_root (const char* dir)
- {
--  struct dev_ino root_ino;
-+  struct root_dev_ino root_ino;
-   if (! get_root_dev_ino (&root_ino))
-     error (EXIT_CANCELED, errno, _("failed to get attributes of %s"),
-            quote ("/"));
-@@ -173,7 +173,7 @@ is_root (const char* dir)
-     error (EXIT_CANCELED, errno, _("failed to get attributes of %s"),
-            quote (dir));
- 
--  return SAME_INODE (root_ino, arg_st);
-+  return ROOT_DEV_INO_CHECK (&root_ino, &arg_st);
- }
- 
- void
---- coreutils-8.23/cksum.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/cksum.c	2014-10-13 08:30:37.196451900 -0700
-@@ -301,6 +301,9 @@ main (int argc, char **argv)
- 
-   have_read_stdin = false;
- 
-+  if (O_BINARY)
-+    xfreopen (NULL, "wb", stdout);
-+
-   if (optind == argc)
-     ok = cksum ("-", false);
-   else
---- coreutils-8.23/copy.c	2014-07-13 15:09:52.000000000 -0700
-+++ coreutils-8.23/src/copy.c	2014-10-13 08:49:30.450181800 -0700
-@@ -70,6 +70,10 @@
- # include "verror.h"
- #endif
- 
-+#if __CYGWIN__
-+# include "cygwin.h"
-+#endif
-+
- #ifndef HAVE_FCHOWN
- # define HAVE_FCHOWN false
- # define fchown(fd, uid, gid) (-1)
-@@ -1313,7 +1317,11 @@ close_src_desc:
- static bool
- same_file_ok (char const *src_name, struct stat const *src_sb,
-               char const *dst_name, struct stat const *dst_sb,
--              const struct cp_options *x, bool *return_now, bool *unlink_src)
-+              const struct cp_options *x, bool *return_now, bool *unlink_src
-+#if __CYGWIN__
-+	      , bool *case_change
-+#endif
-+	      )
- {
-   const struct stat *src_sb_link;
-   const struct stat *dst_sb_link;
-@@ -1461,6 +1469,18 @@ same_file_ok (char const *src_name, stru
-       if (S_ISLNK (dst_sb_link->st_mode))
-         return true;
- 
-+#if __CYGWIN__
-+      /* If the files have the same name, but differ in case, then let
-+        rename() change the case.  */
-+      if (same_link && x->move_mode && same_name (src_name, dst_name)
-+         && memcmp (last_component (src_name), last_component (dst_name),
-+                    base_len (src_name)) != 0)
-+       {
-+         *case_change = true;
-+         return true;
-+       }
-+#endif /* __CYGWIN__ */
-+
-       if (same_link
-           && 1 < dst_sb_link->st_nlink
-           && ! same_name (src_name, dst_name))
-@@ -1813,10 +1833,20 @@ copy_internal (char const *src_name, cha
-          && ! (x->move_mode || x->symbolic_link || x->hard_link
-                || x->backup_type != no_backups
-                || x->unlink_dest_before_opening));
--      if ((use_stat
--           ? stat (dst_name, &dst_sb)
--           : lstat (dst_name, &dst_sb))
--          != 0)
-+      int res = (use_stat
-+                 ? stat (dst_name, &dst_sb)
-+                 : lstat (dst_name, &dst_sb));
-+#if __CYGWIN__
-+      /* stat("a") succeeds even if it was really "a.exe".  */
-+      if (! res && 0 < cygwin_spelling (dst_name))
-+        {
-+          /* Only DST_NAME.exe exists, but we want the non-existant
-+             DST_NAME.  */
-+          res = -1;
-+          errno = ENOENT;
-+        }
-+#endif /* __CYGWIN__ */
-+      if (res != 0)
-         {
-           if (errno != ENOENT)
-             {
-@@ -1833,10 +1863,17 @@ copy_internal (char const *src_name, cha
-              that it is stat'able or lstat'able.  */
-           bool return_now;
-           bool unlink_src;
-+#if __CYGWIN__
-+          bool case_change = false;
-+#endif /* __CYGWIN__ */
- 
-           have_dst_lstat = !use_stat;
-           if (! same_file_ok (src_name, &src_sb, dst_name, &dst_sb,
--                              x, &return_now, &unlink_src))
-+                              x, &return_now, &unlink_src
-+#if __CYGWIN__
-+                              , &case_change
-+#endif
-+))
-             {
-               error (0, 0, _("%s and %s are the same file"),
-                      quote_n (0, src_name), quote_n (1, dst_name));
-@@ -1895,6 +1932,9 @@ copy_internal (char const *src_name, cha
-              cp and mv treat -i and -f differently.  */
-           if (x->move_mode)
-             {
-+#if __CYGWIN__
-+              if (!case_change)
-+#endif /* __CYGWIN__ */
-               if (abandon_move (x, dst_name, &dst_sb)
-                   || (unlink_src && unlink (src_name) == 0))
-                 {
-@@ -2058,7 +2098,11 @@ copy_internal (char const *src_name, cha
-                    /* Never unlink dst_name when in move mode.  */
-                    && ! x->move_mode
-                    && (x->unlink_dest_before_opening
--                       || (x->preserve_links && 1 < dst_sb.st_nlink)
-+                       || (x->preserve_links && 1 < dst_sb.st_nlink
-+#if __CYGWIN__
-+                           && !case_change
-+#endif /* __CYGWIN__ */
-+			   )
-                        || (x->dereference == DEREF_NEVER
-                            && ! S_ISREG (src_sb.st_mode))
-                        ))
-@@ -2816,6 +2860,21 @@ copy (char const *src_name, char const *
- {
-   assert (valid_options (options));
- 
-+#if __CYGWIN__
-+  /* .exe magic - if src exists with an implicit .exe suffix and is
-+     not a symlink, but dst does not exist and was also specified
-+     without a suffix, then append .exe to dst.  */
-+  int cygwin = cygwin_spelling (src_name);
-+  char *p;
-+  if (cygwin == 2
-+      && ((p = strchr (dst_name, '\0') - 4) <= dst_name
-+          || strcasecmp (p, ".exe") != 0))
-+    {
-+      cygwin = 3;
-+      CYGWIN_APPEND_EXE (p, dst_name);
-+    }
-+#endif /* __CYGWIN__ */
-+
-   /* Record the file names: they're used in case of error, when copying
-      a directory into itself.  I don't like to make these tools do *any*
-      extra work in the common case when that work is solely to handle
-@@ -2827,10 +2886,15 @@ copy (char const *src_name, char const *
-   top_level_dst_name = dst_name;
- 
-   bool first_dir_created_per_command_line_arg = false;
--  return copy_internal (src_name, dst_name, nonexistent_dst, NULL, NULL,
-+  bool result = copy_internal (src_name, dst_name, nonexistent_dst, NULL, NULL,
-                         options, true,
-                         &first_dir_created_per_command_line_arg,
-                         copy_into_self, rename_succeeded);
-+#if __CYGWIN__
-+  if (cygwin == 3)
-+    freea ((char *) dst_name);
-+#endif /* __CYGWIN__ */
-+  return result;
- }
- 
- /* Set *X to the default options for a value of type struct cp_options.  */
---- coreutils-8.23/dd.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/dd.c	2014-10-13 08:30:37.196451900 -0700
-@@ -37,6 +37,10 @@
- #include "xstrtol.h"
- #include "xtime.h"
- 
-+#if __CYGWIN__
-+# include <io.h>
-+#endif
-+
- /* The official name of this program (e.g., no 'g' prefix).  */
- #define PROGRAM_NAME "dd"
- 
-@@ -1862,6 +1866,13 @@ copy_with_unblock (char const *buf, size
- static void
- set_fd_flags (int fd, int add_flags, char const *name)
- {
-+#if __CYGWIN__
-+  /* Cygwin does not allow fcntl to set the mode.  */
-+  int mode_flags = add_flags & (O_BINARY | O_TEXT);
-+  add_flags &= ~(O_BINARY | O_TEXT);
-+  if (mode_flags && setmode (fd, mode_flags) == -1)
-+    error (EXIT_FAILURE, errno, _("setting flags for %s"), quote (name));
-+#endif /* __CYGWIN__ */
-   /* Ignore file creation flags that are no-ops on file descriptors.  */
-   add_flags &= ~ (O_NOCTTY | O_NOFOLLOW);
- 
-@@ -2242,6 +2253,8 @@ main (int argc, char **argv)
-     }
-   else
-     {
-+      if ((input_flags & (O_BINARY | O_TEXT)) == 0)
-+	input_flags |= O_BINARY;
-       if (fd_reopen (STDIN_FILENO, input_file, O_RDONLY | input_flags, 0) < 0)
-         error (EXIT_FAILURE, errno, _("failed to open %s"), quote (input_file));
-     }
-@@ -2264,6 +2277,8 @@ main (int argc, char **argv)
-            | (conversions_mask & C_NOCREAT ? 0 : O_CREAT)
-            | (conversions_mask & C_EXCL ? O_EXCL : 0)
-            | (seek_records || (conversions_mask & C_NOTRUNC) ? 0 : O_TRUNC));
-+      if ((opts & (O_BINARY | O_TEXT)) == 0)
-+        opts |= O_BINARY;
- 
-       /* Open the output file with *read* access only if we might
-          need to read to satisfy a 'seek=' request.  If we can't read
---- coreutils-8.23/dircolors.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/dircolors.c	2014-10-13 08:30:37.196451900 -0700
-@@ -494,8 +494,12 @@ main (int argc, char **argv)
-             }
-           else
-             {
-+              /* tcsh treats LS_COLORS as a magic shell variable for its
-+                 builtin ls-F, but does not recognize all the categories
-+                 that coreutils ls does.  Therefore, silence stderr to
-+                 avoid messages like "Unknown colorls variable `su'.".  */
-               prefix = "setenv LS_COLORS '";
--              suffix = "'\n";
-+              suffix = "' >&/dev/null\n";
-             }
-           fputs (prefix, stdout);
-           fwrite (s, 1, len, stdout);
---- coreutils-8.23/install.c	2014-07-13 15:09:52.000000000 -0700
-+++ coreutils-8.23/src/install.c	2014-10-13 08:30:37.196451900 -0700
-@@ -44,6 +44,10 @@
- #include "utimens.h"
- #include "xstrtol.h"
- 
-+#if __CYGWIN__
-+# include "cygwin.h"
-+#endif
-+
- /* The official name of this program (e.g., no 'g' prefix).  */
- #define PROGRAM_NAME "install"
- 
-@@ -531,6 +535,16 @@ strip (char const *name)
-       error (0, errno, _("fork system call failed"));
-       break;
-     case 0:			/* Child. */
-+#if __CYGWIN__
-+      {
-+	/* Check for .exe here, since strip doesn't.  */
-+	char *p;
-+	if (((p = strchr (name, '\0') - 4) <= name
-+	     || strcasecmp (p, ".exe") != 0)
-+	    && 0 < cygwin_spelling (name))
-+          CYGWIN_APPEND_EXE (p, name);
-+      }
-+#endif /* __CYGWIN__ */
-       execlp (strip_program, strip_program, name, NULL);
-       error (EXIT_FAILURE, errno, _("cannot run %s"), strip_program);
-       break;
---- coreutils-8.23/ls.c	2014-07-13 15:09:52.000000000 -0700
-+++ coreutils-8.23/src/ls.c	2014-10-13 08:30:37.196451900 -0700
-@@ -117,6 +117,10 @@
- # include <sys/capability.h>
- #endif
- 
-+#if __CYGWIN__
-+# include "cygwin.h"
-+#endif
-+
- #define PROGRAM_NAME (ls_mode == LS_LS ? "ls" \
-                       : (ls_mode == LS_MULTI_COL \
-                          ? "dir" : "vdir"))
-@@ -747,6 +751,11 @@ static char const *long_time_format[2] =
-     N_("%b %e %H:%M")
-   };
- 
-+#if __CYGWIN__
-+/* Whether .exe should be appended to command-line args as needed.  */
-+static bool append_exe;
-+#endif /* __CYGWIN__ */
-+
- /* The set of signals that are caught.  */
- 
- static sigset_t caught_signals;
-@@ -782,6 +791,9 @@ enum
- enum
- {
-   AUTHOR_OPTION = CHAR_MAX + 1,
-+#if __CYGWIN__
-+  APPEND_EXE_OPTION,
-+#endif /* __CYGWIN__ */
-   BLOCK_SIZE_OPTION,
-   COLOR_OPTION,
-   DEREFERENCE_COMMAND_LINE_SYMLINK_TO_DIR_OPTION,
-@@ -843,6 +855,9 @@ static struct option const long_options[
-   {"block-size", required_argument, NULL, BLOCK_SIZE_OPTION},
-   {"context", no_argument, 0, 'Z'},
-   {"author", no_argument, NULL, AUTHOR_OPTION},
-+#if __CYGWIN__
-+  {"append-exe", no_argument, NULL, APPEND_EXE_OPTION},
-+#endif /* __CYGWIN__ */
-   {GETOPT_HELP_OPTION_DECL},
-   {GETOPT_VERSION_OPTION_DECL},
-   {NULL, 0, NULL, 0}
-@@ -1954,6 +1969,12 @@ decode_switches (int argc, char **argv)
-           print_scontext = true;
-           break;
- 
-+#if __CYGWIN__
-+        case APPEND_EXE_OPTION:
-+          append_exe = true;
-+          break;
-+#endif /* __CYGWIN__ */
-+
-         case_GETOPT_HELP_CHAR;
- 
-         case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);
-@@ -2924,6 +2945,12 @@ gobble_file (char const *name, enum file
-   uintmax_t blocks = 0;
-   struct fileinfo *f;
- 
-+#if __CYGWIN__
-+  char *name_alt = NULL;
-+  if (command_line_arg && append_exe && 0 < cygwin_spelling (name))
-+    CYGWIN_APPEND_EXE (name_alt, name);
-+#endif /* __CYGWIN__ */
-+
-   /* An inode value prior to gobble_file necessarily came from readdir,
-      which is not used for command line arguments.  */
-   assert (! command_line_arg || inode == NOT_AN_INODE_NUMBER);
-@@ -3035,11 +3062,19 @@ gobble_file (char const *name, enum file
-           file_failure (command_line_arg,
-                         _("cannot access %s"), absolute_name);
-           if (command_line_arg)
--            return 0;
-+            {
-+#if __CYGWIN__
-+              freea (name_alt);
-+#endif /* __CYGWIN__ */
-+              return 0;
-+            }
- 
-           f->name = xstrdup (name);
-           cwd_n_used++;
- 
-+#if __CYGWIN__
-+          freea (name_alt);
-+#endif /* __CYGWIN__ */
-           return 0;
-         }
- 
-@@ -3223,6 +3258,9 @@ gobble_file (char const *name, enum file
-   f->name = xstrdup (name);
-   cwd_n_used++;
- 
-+#if __CYGWIN__
-+  freea (name_alt);
-+#endif /* __CYGWIN__ */
-   return blocks;
- }
- 
-@@ -4923,6 +4961,11 @@ Sort entries alphabetically if none of -
-   -Z, --context              print any security context of each file\n\
-   -1                         list one file per line\n\
- "), stdout);
-+#if __CYGWIN__
-+      fputs (_("\
-+      --append-exe           append .exe if cygwin magic was needed\n\
-+"), stdout);
-+#endif /* __CYGWIN__ */
-       fputs (HELP_OPTION_DESCRIPTION, stdout);
-       fputs (VERSION_OPTION_DESCRIPTION, stdout);
-       emit_size_note ();
---- coreutils-8.23/md5sum.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/md5sum.c	2014-10-13 08:30:37.212072800 -0700
-@@ -813,6 +813,9 @@ main (int argc, char **argv)
-   if (optind == argc)
-     argv[argc++] = bad_cast ("-");
- 
-+  if (O_BINARY)
-+    xfreopen (NULL, "wb", stdout);
-+
-   for (; optind < argc; ++optind)
-     {
-       char *file = argv[optind];
---- coreutils-8.23/mv.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/mv.c	2014-10-13 08:30:37.212072800 -0700
-@@ -92,7 +92,7 @@ rm_option_init (struct rm_options *x)
-   x->require_restore_cwd = true;
- 
-   {
--    static struct dev_ino dev_ino_buf;
-+    static struct root_dev_ino dev_ino_buf;
-     x->root_dev_ino = get_root_dev_ino (&dev_ino_buf);
-     if (x->root_dev_ino == NULL)
-       error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
-@@ -467,6 +467,16 @@ main (int argc, char **argv)
-   else if (!target_directory)
-     {
-       assert (2 <= n_files);
-+#if __CYGWIN__
-+      struct stat s1, s2;
-+      if (2 == n_files
-+	  && lstat (file[0], &s1) == 0 && lstat (file[1], &s2) == 0
-+	  && s1.st_ino == s2.st_ino)
-+	{
-+	  /* Allow 'mv foo Foo' to change case of the directory foo.  */
-+	}
-+      else
-+#endif /* __CYGWIN__ */
-       if (target_directory_operand (file[n_files - 1]))
-         target_directory = file[--n_files];
-       else if (2 < n_files)
---- coreutils-8.23/pwd.c	2014-07-13 15:09:52.000000000 -0700
-+++ coreutils-8.23/src/pwd.c	2014-10-13 08:30:37.212072800 -0700
-@@ -268,8 +268,8 @@ static void
- robust_getcwd (struct file_name *file_name)
- {
-   size_t height = 1;
--  struct dev_ino dev_ino_buf;
--  struct dev_ino *root_dev_ino = get_root_dev_ino (&dev_ino_buf);
-+  struct root_dev_ino dev_ino_buf;
-+  struct root_dev_ino *root_dev_ino = get_root_dev_ino (&dev_ino_buf);
-   struct stat dot_sb;
- 
-   if (root_dev_ino == NULL)
-@@ -282,7 +282,7 @@ robust_getcwd (struct file_name *file_na
-   while (1)
-     {
-       /* If we've reached the root, we're done.  */
--      if (SAME_INODE (dot_sb, *root_dev_ino))
-+      if (ROOT_DEV_INO_CHECK (root_dev_ino, &dot_sb))
-         break;
- 
-       find_dir_entry (&dot_sb, file_name, height++);
-@@ -291,6 +291,9 @@ robust_getcwd (struct file_name *file_na
-   /* See if a leading slash is needed; file_name_prepend adds one.  */
-   if (file_name->start[0] == '\0')
-     file_name_prepend (file_name, "", 0);
-+  /* If we aren't in `/', we must be in `//'.  */
-+  if (! SAME_INODE (root_dev_ino->single_slash, dot_sb))
-+    file_name_prepend (file_name, "", 0);
- }
- 
- 
---- coreutils-8.23/remove.h	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/remove.h	2014-10-13 08:30:37.212072800 -0700
-@@ -54,7 +54,7 @@ struct rm_options
- 
-   /* Pointer to the device and inode numbers of '/', when --recursive
-      and preserving '/'.  Otherwise NULL.  */
--  struct dev_ino *root_dev_ino;
-+  struct root_dev_ino *root_dev_ino;
- 
-   /* If nonzero, stdin is a tty.  */
-   bool stdin_tty;
---- coreutils-8.23/rm.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/rm.c	2014-10-13 08:30:37.212072800 -0700
-@@ -325,7 +325,7 @@ main (int argc, char **argv)
- 
-   if (x.recursive && preserve_root)
-     {
--      static struct dev_ino dev_ino_buf;
-+      static struct root_dev_ino dev_ino_buf;
-       x.root_dev_ino = get_root_dev_ino (&dev_ino_buf);
-       if (x.root_dev_ino == NULL)
-         error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
---- coreutils-8.23/stat.c	2014-07-11 04:00:07.000000000 -0700
-+++ coreutils-8.23/src/stat.c	2014-10-13 08:30:37.212072800 -0700
-@@ -73,6 +73,13 @@
- #include "find-mount-point.h"
- #include "xvasprintf.h"
- 
-+#if __CYGWIN__
-+# include "cygwin.h"
-+/* Whether .exe should be appended to command-line args as needed.  */
-+static bool append_exe;
-+# define APPEND_EXE_OPTION 10000
-+#endif
-+
- #if USE_STATVFS
- # define STRUCT_STATVFS struct statvfs
- # define STRUCT_STATXFS_F_FSID_IS_INTEGER STRUCT_STATVFS_F_FSID_IS_INTEGER
-@@ -189,6 +196,9 @@ static struct option const long_options[
-   {"format", required_argument, NULL, 'c'},
-   {"printf", required_argument, NULL, PRINTF_OPTION},
-   {"terse", no_argument, NULL, 't'},
-+#if __CYGWIN__
-+  {"append-exe", no_argument, NULL, APPEND_EXE_OPTION},
-+#endif /* __CYGWIN__ */
-   {GETOPT_HELP_OPTION_DECL},
-   {GETOPT_VERSION_OPTION_DECL},
-   {NULL, 0, NULL, 0}
-@@ -1264,14 +1274,26 @@ do_statfs (char const *filename, char co
-       return false;
-     }
- 
-+#if __CYGWIN__
-+  char *name_alt = NULL;
-+  if (append_exe && 0 < cygwin_spelling (filename))
-+    CYGWIN_APPEND_EXE (name_alt, filename);
-+#endif /* __CYGWIN__ */
-+
-   if (STATFS (filename, &statfsbuf) != 0)
-     {
-       error (0, errno, _("cannot read file system information for %s"),
-              quote (filename));
-+#if __CYGWIN__
-+      freea (name_alt);
-+#endif /* __CYGWIN__ */
-       return false;
-     }
- 
-   bool fail = print_it (format, -1, filename, print_statfs, &statfsbuf);
-+#if __CYGWIN__
-+  freea (name_alt);
-+#endif /* __CYGWIN__ */
-   return ! fail;
- }
- 
-@@ -1282,6 +1304,7 @@ do_stat (char const *filename, char cons
- {
-   int fd = STREQ (filename, "-") ? 0 : -1;
-   struct stat statbuf;
-+  char *name_alt = NULL;
- 
-   if (0 <= fd)
-     {
-@@ -1294,18 +1317,29 @@ do_stat (char const *filename, char cons
-   /* We can't use the shorter
-      (follow_links?stat:lstat) (filename, &statbug)
-      since stat might be a function-like macro.  */
--  else if ((follow_links
--            ? stat (filename, &statbuf)
--            : lstat (filename, &statbuf)) != 0)
-+  else
-     {
--      error (0, errno, _("cannot stat %s"), quote (filename));
--      return false;
-+      if ((follow_links
-+	   ? stat (filename, &statbuf)
-+	   : lstat (filename, &statbuf)) != 0)
-+	{
-+	  error (0, errno, _("cannot stat %s"), quote (filename));
-+	  return false;
-+	}
-+
-+#if __CYGWIN__
-+      if (append_exe && 0 < cygwin_spelling (filename))
-+        CYGWIN_APPEND_EXE (name_alt, filename);
-+#endif /* __CYGWIN__ */
-     }
- 
-   if (S_ISBLK (statbuf.st_mode) || S_ISCHR (statbuf.st_mode))
-     format = format2;
- 
-   bool fail = print_it (format, fd, filename, print_stat, &statbuf);
-+#if __CYGWIN__
-+  freea (name_alt);
-+#endif /* __CYGWIN__ */
-   return ! fail;
- }
- 
-@@ -1427,6 +1461,11 @@ Display file or file system status.\n\
-                           if you want a newline, include \\n in FORMAT\n\
-   -t, --terse           print the information in terse form\n\
- "), stdout);
-+#if __CYGWIN__
-+      fputs (_("\
-+      --append-exe      append .exe if cygwin magic was needed\n\
-+"), stdout);
-+#endif /* __CYGWIN__ */
-       fputs (HELP_OPTION_DESCRIPTION, stdout);
-       fputs (VERSION_OPTION_DESCRIPTION, stdout);
- 
-@@ -1547,6 +1586,12 @@ main (int argc, char *argv[])
-           terse = true;
-           break;
- 
-+#if __CYGWIN__
-+        case APPEND_EXE_OPTION:
-+          append_exe = true;
-+          break;
-+#endif /* __CYGWIN__ */
-+
-         case_GETOPT_HELP_CHAR;
- 
-         case_GETOPT_VERSION_CHAR (PROGRAM_NAME, AUTHORS);
diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix
index 75798edf70e89..e6809b474ea2f 100644
--- a/pkgs/tools/misc/coreutils/default.nix
+++ b/pkgs/tools/misc/coreutils/default.nix
@@ -21,11 +21,11 @@ assert selinuxSupport -> libselinux != null && libsepol != null;
 with lib;
 
 stdenv.mkDerivation (rec {
-  pname = "coreutils";
+  pname = "coreutils${optionalString (!minimal) "-full"}";
   version = "9.0";
 
   src = fetchurl {
-    url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
+    url = "mirror://gnu/coreutils/coreutils-${version}.tar.xz";
     sha256 = "sha256-zjCs30pBvFuzDdlV6eqnX6IWtOPesIiJ7TJDPHs7l84=";
   };
 
@@ -33,7 +33,7 @@ stdenv.mkDerivation (rec {
     ./fix-chmod-exit-code.patch
     # Workaround for https://debbugs.gnu.org/cgi/bugreport.cgi?bug=51433
     ./disable-seek-hole.patch
-  ] ++ optional stdenv.hostPlatform.isCygwin ./coreutils-8.23-4.cygwin.patch;
+  ];
 
   postPatch = ''
     # The test tends to fail on btrfs,f2fs and maybe other unusual filesystems.
@@ -43,9 +43,6 @@ stdenv.mkDerivation (rec {
     sed '2i echo Skipping rm deep-2 test && exit 77' -i ./tests/rm/deep-2.sh
     sed '2i echo Skipping du long-from-unreadable test && exit 77' -i ./tests/du/long-from-unreadable.sh
 
-    # Depends on the mountpoints
-    sed '2i echo Skipping df df-symlink test && exit 77' -i ./tests/df/df-symlink.sh
-
     # Some target platforms, especially when building inside a container have
     # issues with the inotify test.
     sed '2i echo Skipping tail inotify dir recreate test && exit 77' -i ./tests/tail-2/inotify-dir-recreate.sh
@@ -55,8 +52,6 @@ stdenv.mkDerivation (rec {
     substituteInPlace ./tests/install/install-C.sh \
       --replace 'mode3=2755' 'mode3=1755'
 
-    sed '2i print "Skipping env -S test";  exit 77;' -i ./tests/misc/env-S.pl
-
     # Fails on systems with a rootfs. Looks like a bug in the test, see
     # https://lists.gnu.org/archive/html/bug-coreutils/2019-12/msg00000.html
     sed '2i print "Skipping df skip-rootfs test"; exit 77' -i ./tests/df/skip-rootfs.sh
@@ -69,11 +64,8 @@ stdenv.mkDerivation (rec {
       echo "int main() { return 77; }" > "$f"
     done
 
-    # tests try to access user 1000 which is forbidden in sandbox
-    sed '2i print "Skipping id uid test"; exit 77' -i ./tests/id/uid.sh
-    sed '2i print "Skipping id zero test"; exit 77' -i ./tests/id/zero.sh
-    sed '2i print "Skipping misc help-versiob test"; exit 77' -i ./tests/misc/help-version.sh
-    sed '2i print "Skipping chown separator test"; exit 77' -i ./tests/chown/separator.sh
+    # intermittent failures on builders, unknown reason
+    sed '2i echo Skipping du basic test && exit 77' -i ./tests/du/basic.sh
   '' + (optionalString (stdenv.hostPlatform.libc == "musl") (lib.concatStringsSep "\n" [
     ''
       echo "int main() { return 77; }" > gnulib-tests/test-parse-datetime.c
@@ -81,6 +73,9 @@ stdenv.mkDerivation (rec {
     ''
   ])) + (optionalString stdenv.isAarch64 ''
     sed '2i print "Skipping tail assert test"; exit 77' -i ./tests/tail-2/assert.sh
+
+    # Sometimes fails: https://github.com/NixOS/nixpkgs/pull/143097#issuecomment-954462584
+    sed '2i echo Skipping cut huge range test && exit 77' -i ./tests/misc/cut-huge-range.sh
   '');
 
   outputs = [ "out" "info" ];
diff --git a/pkgs/tools/misc/cpufetch/default.nix b/pkgs/tools/misc/cpufetch/default.nix
index 46c485f529917..ca38cf8998722 100644
--- a/pkgs/tools/misc/cpufetch/default.nix
+++ b/pkgs/tools/misc/cpufetch/default.nix
@@ -1,17 +1,23 @@
-{ stdenv, lib, fetchFromGitHub, installShellFiles }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, installShellFiles
+}:
 
 stdenv.mkDerivation rec {
   pname = "cpufetch";
-  version = "1.00";
+  version = "1.01";
 
   src = fetchFromGitHub {
-    owner  = "Dr-Noob";
-    repo   = "cpufetch";
-    rev    = "v${version}";
-    sha256 = "sha256-2Iar7RwL3T4DrFbqKJFys/R+VENRg2lmYFkslEaZeVE=";
+    owner = "Dr-Noob";
+    repo = "cpufetch";
+    rev = "v${version}";
+    sha256 = "sha256-vae/59eEDuZUDsTHE93mi+L8WBr3H4zp+mzXg7WWusA=";
   };
 
-  nativeBuildInputs = [ installShellFiles ];
+  nativeBuildInputs = [
+    installShellFiles
+  ];
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/tools/misc/cpuminer-multi/default.nix b/pkgs/tools/misc/cpuminer-multi/default.nix
index fac8fbcfee974..3fbdcfae0fe47 100644
--- a/pkgs/tools/misc/cpuminer-multi/default.nix
+++ b/pkgs/tools/misc/cpuminer-multi/default.nix
@@ -1,17 +1,14 @@
 { lib, stdenv, fetchFromGitHub, curl, jansson, autoconf, automake
 , aesni ? stdenv.hostPlatform.aesSupport }:
 
-let
-  rev = "8393e03089c0abde61bd5d72aba8f926c3d6eca4";
-  date = "20160316";
-in
 stdenv.mkDerivation {
-  name = "cpuminer-multi-${date}-${lib.strings.substring 0 7 rev}";
+  pname = "cpuminer-multi";
+  version = "unstable-2016-03-16";
 
   src = fetchFromGitHub {
     owner = "hyc";
     repo = "cpuminer-multi";
-    inherit rev;
+    rev = "8393e03089c0abde61bd5d72aba8f926c3d6eca4";
     sha256 = "11dg4rra4dgfb9x6q85irn0hrkx2lkwyrdpgdh10pag09s3vhy4v";
   };
 
diff --git a/pkgs/tools/misc/czkawka/default.nix b/pkgs/tools/misc/czkawka/default.nix
index f2a046322d801..4ad51baefe8cc 100644
--- a/pkgs/tools/misc/czkawka/default.nix
+++ b/pkgs/tools/misc/czkawka/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "czkawka";
-  version = "3.3.0";
+  version = "3.3.1";
 
   src = fetchFromGitHub {
     owner = "qarmin";
     repo = "czkawka";
     rev = version;
-    sha256 = "0mikgnsqxj8dgapr2k7i9i8mmsza15kp4nasyd6l1vp2cqy8aki6";
+    sha256 = "0p1j5f5jk0cci6bg4jfnnn80gyi9039ni4ma8zwindk7fyn9gpc8";
   };
 
-  cargoSha256 = "009zfy4lk8y51h1wi71mrjp6kc7xnk3r8jlbxvhyqslhqd9w10fv";
+  cargoSha256 = "1q35c5szavpsnzflw33radg6blzql3sz3jyzyqqz97ac69zns920";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/misc/datefmt/default.nix b/pkgs/tools/misc/datefmt/default.nix
new file mode 100644
index 0000000000000..01927fedc28d7
--- /dev/null
+++ b/pkgs/tools/misc/datefmt/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchurl, datefmt, testVersion }:
+
+stdenv.mkDerivation rec {
+  pname = "datefmt";
+  version = "0.2.1";
+
+  src = fetchurl {
+    url = "http://cdn.jb55.com/tarballs/datefmt/datefmt-${version}.tar.gz";
+    sha256 = "5d5e765380afe39eb39d48f752aed748b57dfd843a4947b2a6d18ab9b5e68092";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  passthru.tests.version = testVersion { package = datefmt; };
+
+  meta = with lib; {
+    homepage = "https://jb55.com/datefmt";
+    description = "A tool that formats timestamps in text streams";
+    platforms = platforms.all;
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ jb55 ];
+  };
+}
diff --git a/pkgs/tools/misc/dateutils/default.nix b/pkgs/tools/misc/dateutils/default.nix
index a43f07c0a2d9e..20837d5ee3ec7 100644
--- a/pkgs/tools/misc/dateutils/default.nix
+++ b/pkgs/tools/misc/dateutils/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     description = "A bunch of tools that revolve around fiddling with dates and times in the command line";
     homepage = "http://www.fresse.org/dateutils/";
     license = licenses.bsd3;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.paperdigits ];
   };
 }
diff --git a/pkgs/tools/misc/ddcutil/default.nix b/pkgs/tools/misc/ddcutil/default.nix
index 0deca19a26637..0a956a325197e 100644
--- a/pkgs/tools/misc/ddcutil/default.nix
+++ b/pkgs/tools/misc/ddcutil/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ddcutil";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "rockowitz";
     repo = "ddcutil";
     rev = "v${version}";
-    sha256 = "sha256-MH7WnJgROgLvttQEbd/21mLRFElObp4KINy8RarqkRo=";
+    sha256 = "sha256-mIYxGoITaFlHgqAfB6ZZFR3spGD0BElJZJJqFGM4r/I=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
diff --git a/pkgs/tools/misc/debootstrap/default.nix b/pkgs/tools/misc/debootstrap/default.nix
index 2f9db4c85cb43..ea9f888b04446 100644
--- a/pkgs/tools/misc/debootstrap/default.nix
+++ b/pkgs/tools/misc/debootstrap/default.nix
@@ -16,13 +16,13 @@ let binPath = lib.makeBinPath [
   ];
 in stdenv.mkDerivation rec {
   pname = "debootstrap";
-  version = "1.0.124";
+  version = "1.0.126";
 
   src = fetchurl {
     # git clone git://git.debian.org/d-i/debootstrap.git
     # I'd like to use the source. However it's lacking the lanny script ? (still true?)
     url = "mirror://debian/pool/main/d/${pname}/${pname}_${version}.tar.gz";
-    sha256 = "sha256-dwDphksp8WaybFQVPtjCdbRvS5pgRou2B+AZpkwWzY8=";
+    sha256 = "sha256-vEjhxQDDO+1QvQDSAfM408ktbA3LHyAsO8AO8B+Wxhg=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/depotdownloader/deps.nix b/pkgs/tools/misc/depotdownloader/deps.nix
index a4e0f796dcb26..bdab9b46b9dab 100644
--- a/pkgs/tools/misc/depotdownloader/deps.nix
+++ b/pkgs/tools/misc/depotdownloader/deps.nix
@@ -1,9 +1,9 @@
 { fetchNuGet }: [
-  (fetchNuGet { name = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
-  (fetchNuGet { name = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
-  (fetchNuGet { name = "protobuf-net"; version = "3.0.101"; sha256 = "0594qckbc0lh61sw74ihaq4qmvf1lf133vfa88n443mh7lxm2fwf"; })
-  (fetchNuGet { name = "protobuf-net.Core"; version = "3.0.101"; sha256 = "1kvn9rnm6f0jxs0s9scyyx2f2p8rk03qzc1f6ijv1g6xgkpxkq1m"; })
-  (fetchNuGet { name = "SteamKit2"; version = "2.4.0-Alpha.3"; sha256 = "0n48yjkyzj49kv89jbkwdq6nm9w9ng6cjhvdv0chpryx9zgasgvv"; })
-  (fetchNuGet { name = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
-  (fetchNuGet { name = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
+  (fetchNuGet { pname = "protobuf-net"; version = "3.0.101"; sha256 = "0594qckbc0lh61sw74ihaq4qmvf1lf133vfa88n443mh7lxm2fwf"; })
+  (fetchNuGet { pname = "protobuf-net.Core"; version = "3.0.101"; sha256 = "1kvn9rnm6f0jxs0s9scyyx2f2p8rk03qzc1f6ijv1g6xgkpxkq1m"; })
+  (fetchNuGet { pname = "SteamKit2"; version = "2.4.0-Alpha.3"; sha256 = "0n48yjkyzj49kv89jbkwdq6nm9w9ng6cjhvdv0chpryx9zgasgvv"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "5.0.0"; sha256 = "17n3lrrl6vahkqmhlpn3w20afgz09n7i6rv0r3qypngwi7wqdr5r"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; })
 ]
diff --git a/pkgs/tools/misc/desktop-file-utils/default.nix b/pkgs/tools/misc/desktop-file-utils/default.nix
index da87d048b7095..af3e907c04ae3 100644
--- a/pkgs/tools/misc/desktop-file-utils/default.nix
+++ b/pkgs/tools/misc/desktop-file-utils/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchurl, pkg-config, glib, libintl }:
+{ lib, stdenv, fetchurl, pkg-config, meson, ninja, glib, libintl }:
 
 with lib;
 
 stdenv.mkDerivation rec {
   pname = "desktop-file-utils";
-  version = "0.24";
+  version = "0.26";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/${pname}/releases/${pname}-${version}.tar.xz";
-    sha256 = "1nc3bwjdrpcrkbdmzvhckq0yngbcxspwj2n1r7jr3gmx1jk5vpm1";
+    sha256 = "02bkfi6fyk4c0gh2avd897882ww5zl7qg7bzzf28qb57kvkvsvdj";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config meson ninja ];
   buildInputs = [ glib libintl ];
 
   postPatch = ''
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index f6f799a9b0c0a..8e10a84762870 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -9,11 +9,11 @@
 # Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
 python3Packages.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "192";
+  version = "197";
 
   src = fetchurl {
     url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    sha256 = "sha256-ZaSE1yYznZIQV7yKyeBlqQzkgUn3CoadZY2fDA1/SnE=";
+    sha256 = "sha256-EKTknFa6gGqd1kpy/k1Vh1Zya+XvBMlU5G6Rg2p66es=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/tools/misc/diffoscope/fix-tests.patch b/pkgs/tools/misc/diffoscope/fix-tests.patch
index b5566cb932f78..7e643f61b0a8c 100644
--- a/pkgs/tools/misc/diffoscope/fix-tests.patch
+++ b/pkgs/tools/misc/diffoscope/fix-tests.patch
@@ -12,3 +12,22 @@ index 8d201ab..05960aa 100644
      return get_data(diff_file)
  
  
+diff --git a/tests/data/pgp_signed_expected_diff b/tests/data/pgp_signed_expected_diff
+index 7e90e428..9628efa0 100644
+--- a/tests/data/pgp_signed_expected_diff
++++ b/tests/data/pgp_signed_expected_diff
+@@ -5,11 +5,11 @@
+  	Key ID - 0x1E953E27D4311E58
+  	Next packet - other than one pass signature
+  Old: Literal Data Packet(tag 11)(10255 bytes)
+- 	Format - binary
++ 	Packet data format - binary
+ -	Filename - test1.tar
+--	File modified time - Tue Aug 25 11:47:35 UTC 2020
++-	Creation time - Tue Aug 25 11:47:35 UTC 2020
+ +	Filename - test2.tar
+-+	File modified time - Tue Aug 25 11:47:38 UTC 2020
+++	Creation time - Tue Aug 25 11:47:38 UTC 2020
+  	Literal - ...
+  Old: Signature Packet(tag 2)(563 bytes)
+  	Ver 4 - new
diff --git a/pkgs/tools/misc/direnv/default.nix b/pkgs/tools/misc/direnv/default.nix
index 5fa6b8db60e7b..fa9be5c84a67d 100644
--- a/pkgs/tools/misc/direnv/default.nix
+++ b/pkgs/tools/misc/direnv/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "direnv";
-  version = "2.28.0";
+  version = "2.30.1";
 
   src = fetchFromGitHub {
     owner = "direnv";
     repo = "direnv";
     rev = "v${version}";
-    sha256 = "sha256-iZ3Lf7Yg+N9BWyLLF+MrT2gpPT9BTcp6pNMpfqwcZXo=";
+    sha256 = "sha256-4ojoV6BtPOaMnDierxlfkOuaP1KZGYNMImSURA33tfg=";
   };
 
-  vendorSha256 = "sha256-P8NLY1iGh86ntmYsTVlnNh5akdaM8nzcxDn6Nfmgr84=";
+  vendorSha256 = "sha256-YhgQUl9fdictEtz6J88vEzznGd8Ipeb9AYo/p1ZLz5k=";
 
   # we have no bash at the moment for windows
   BASH_PATH =
diff --git a/pkgs/tools/misc/dpt-rp1-py/default.nix b/pkgs/tools/misc/dpt-rp1-py/default.nix
index 4fb7acb188ad4..75a95d1530352 100644
--- a/pkgs/tools/misc/dpt-rp1-py/default.nix
+++ b/pkgs/tools/misc/dpt-rp1-py/default.nix
@@ -1,13 +1,13 @@
 { lib, python3Packages, fetchFromGitHub }:
 python3Packages.buildPythonApplication rec {
   pname = "dpt-rp1-py";
-  version = "0.1.13";
+  version = "0.1.15";
 
   src = fetchFromGitHub {
     owner = "janten";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1jgkfn5kfnx98xs0dmym1h9mv1mrzlglk7x0fzs2jlc56c18w9dk";
+    sha256 = "0kmhsx6n3wjzqcvfnpvdxiiwzxr51khgrl0kgaaas8hwq246l65d";
   };
 
   doCheck = false;
diff --git a/pkgs/tools/misc/esphome/dashboard.nix b/pkgs/tools/misc/esphome/dashboard.nix
index 1ce5ced3f3ed2..43f71c2d69ee8 100644
--- a/pkgs/tools/misc/esphome/dashboard.nix
+++ b/pkgs/tools/misc/esphome/dashboard.nix
@@ -4,11 +4,11 @@
 
 with python3.pkgs; buildPythonPackage rec {
   pname = "esphome-dashboard";
-  version = "20211021.0";
+  version = "20211211.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-stJ6fUs02XpCN671EztHTLkXd57eMo6472Q1e1/cbHY=";
+    sha256 = "sha256-xF1/gUJCr4qRO+AnWeFO6b1YnQBOgve/23ZaGmCa910=";
   };
 
   # no tests
diff --git a/pkgs/tools/misc/esphome/default.nix b/pkgs/tools/misc/esphome/default.nix
index dbe57f1bdf5b8..d1b00e74ef7f4 100644
--- a/pkgs/tools/misc/esphome/default.nix
+++ b/pkgs/tools/misc/esphome/default.nix
@@ -2,6 +2,7 @@
 , pkgs
 , python3
 , fetchFromGitHub
+, fetchpatch
 , platformio
 , esptool
 , git
@@ -16,18 +17,19 @@ let
 in
 with python.pkgs; buildPythonApplication rec {
   pname = "esphome";
-  version = "2021.10.1";
+  version = "2021.12.2";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-zVZantMYtDWkvFrXmX0HpUchmc3T2gbkrMiWGP2ibNc=";
+    sha256 = "sha256-Uq+VzU/j14+3LegEA9bQ1JGe5tUBuP0IX34LdritJdA=";
   };
 
   patches = [
     # fix missing write permissions on src files before modifing them
-   ./fix-src-permissions.patch
+    ./fix-src-permissions.patch
   ];
 
   postPatch = ''
diff --git a/pkgs/tools/misc/etcher/default.nix b/pkgs/tools/misc/etcher/default.nix
index 51123f55b60b0..7f746b9a49bbe 100644
--- a/pkgs/tools/misc/etcher/default.nix
+++ b/pkgs/tools/misc/etcher/default.nix
@@ -5,7 +5,7 @@
 , util-linux
 , bash
 , makeWrapper
-, electron_12
+, electron
 }:
 
 let
@@ -23,8 +23,6 @@ let
     "i686-linux" = "i386";
   }."${system}" or throwSystem;
 
-  electron = electron_12;
-
 in
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/tools/misc/ethminer/default.nix b/pkgs/tools/misc/ethminer/default.nix
index e159622bc8e10..ce68e9f82098f 100644
--- a/pkgs/tools/misc/ethminer/default.nix
+++ b/pkgs/tools/misc/ethminer/default.nix
@@ -5,7 +5,7 @@
   opencl-headers,
   cmake,
   jsoncpp,
-  boost,
+  boost16x,
   makeWrapper,
   cudatoolkit,
   cudaSupport,
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     cli11
-    boost
+    boost16x # 1.7x support is broken, see https://github.com/ethereum-mining/ethminer/issues/2393
     opencl-headers
     mesa
     ethash
diff --git a/pkgs/tools/misc/execline/default.nix b/pkgs/tools/misc/execline/default.nix
index 2e1e1b8f7e03c..e1dd404a357e9 100644
--- a/pkgs/tools/misc/execline/default.nix
+++ b/pkgs/tools/misc/execline/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "execline";
-  version = "2.8.1.0";
-  sha256 = "0msmzf5zwjcsgjlvvq28rd2i0fkdb2skmv8ii0ix8dhyckwwjmav";
+  version = "2.8.2.0";
+  sha256 = "0h9kb3cx8dw05md6smvs56i4lr8g5n3ljaxy5vj4zs86yc3pdprg";
 
   description = "A small scripting language, to be used in place of a shell in non-interactive scripts";
 
diff --git a/pkgs/tools/misc/fbcat/default.nix b/pkgs/tools/misc/fbcat/default.nix
index 532d87de669f6..d90ec77b6d5e4 100644
--- a/pkgs/tools/misc/fbcat/default.nix
+++ b/pkgs/tools/misc/fbcat/default.nix
@@ -1,4 +1,8 @@
-{ lib, stdenv, fetchFromGitHub } :
+{ lib
+, stdenv
+, fetchFromGitHub
+, netpbm
+}:
 
 stdenv.mkDerivation rec {
   pname = "fbcat";
@@ -11,17 +15,16 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-ORzcd8XGy2BfwuPK5UX+K5Z+FYkb+tdg/gHl3zHjvbk=";
   };
 
-  # hardcoded because makefile target "install" depends on libxslt dependencies from network
-  # that are just too hard to monkeypatch here
-  # so this is the simple fix.
-  installPhase = ''
-    mkdir -p $out
-    install -d $out/bin
-    install -m755 fbcat $out/bin/
-    install -m755 fbgrab $out/bin/
-    install -d $out/share/man/man1
+  postPatch = ''
+    substituteInPlace fbgrab \
+      --replace 'pnmtopng' '${netpbm}/bin/pnmtopng' \
+      --replace 'fbcat' "$out/bin/fbcat"
   '';
 
+  installFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
+
   meta = with lib; {
     homepage = "http://jwilk.net/software/fbcat";
     description = "Framebuffer screenshot tool";
diff --git a/pkgs/tools/misc/fbmark/default.nix b/pkgs/tools/misc/fbmark/default.nix
new file mode 100644
index 0000000000000..fe8bca0e22409
--- /dev/null
+++ b/pkgs/tools/misc/fbmark/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "fbmark";
+  version = "0.3";
+
+  src = fetchFromGitHub {
+    owner = "caramelli";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0n2czl2sy1k6r5ri0hp7jgq84xcwrx4x43bqvw1b4na99mqhyahn";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "Linux Framebuffer Benchmark";
+    homepage = "https://github.com/caramelli/fbmark";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ davidak ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/fd/default.nix b/pkgs/tools/misc/fd/default.nix
index 9b0c44c3bf5cb..15af175248407 100644
--- a/pkgs/tools/misc/fd/default.nix
+++ b/pkgs/tools/misc/fd/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fd";
-  version = "8.2.1";
+  version = "8.3.0";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = "fd";
     rev = "v${version}";
-    sha256 = "00vlifbri021z8nf7xvbaay8mqvnq58h19va9bqr5lhsqj1f82wq";
+    sha256 = "sha256-MSkQYsBZkQOFkOnjGY+VuifUZnzloSysAO/hsp+fy1A=";
   };
 
-  cargoSha256 = "0n6xqd30b8aiqrvqrmy7q56nh62nx2j1a3yq2dlpc19i2mfw2qd8";
+  cargoSha256 = "sha256-nwgAgyVaxs1ebu9ndUN3FlFiycyEbRgvUhZ8iGmrVhQ=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/misc/fdupes/default.nix b/pkgs/tools/misc/fdupes/default.nix
index 42c1c3a37df44..ef51ad980325c 100644
--- a/pkgs/tools/misc/fdupes/default.nix
+++ b/pkgs/tools/misc/fdupes/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, ncurses, pcre2 }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, ncurses, pcre2 }:
 
 stdenv.mkDerivation rec {
   pname = "fdupes";
-  version = "2.1.1";
+  version = "2.1.2";
 
   src = fetchFromGitHub {
     owner = "adrianlopezroche";
     repo  = "fdupes";
     rev   = "v${version}";
-    sha256 = "1c5hv7vkfxsii1qafhsynzp9zkwim47xkpk27sy64qdsjnhysdak";
+    hash  = "sha256-WtSuFWRqQo5D/FLwl3AaIIfg6q+09A3aP5//J4AUzus=";
   };
 
-  nativeBuildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ ncurses pcre2 ];
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/fend/default.nix b/pkgs/tools/misc/fend/default.nix
index 475d8131dd0f9..8d6b2d3829648 100644
--- a/pkgs/tools/misc/fend/default.nix
+++ b/pkgs/tools/misc/fend/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fend";
-  version = "0.1.26";
+  version = "0.1.27";
 
   src = fetchFromGitHub {
     owner = "printfn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-U5LYjoq11qZYus/McDbtVljj2RSP9MCXXDvOWgbXerk=";
+    sha256 = "sha256-4Zn42GXtX1UZYa8m3Ig90xDkmwDG7egPE5fRzPYj9sw=";
   };
 
-  cargoSha256 = "sha256-E7by7FJfmOBqDoZLA9s/bj/EHaZ4IsHYTHWcvIuaMNg=";
+  cargoSha256 = "sha256-brk6hpBq/wyt0TWQGojTk+bz3/2Jvwx7MoVSkTEq0hU=";
 
   doInstallCheck = true;
 
diff --git a/pkgs/tools/misc/flameshot/default.nix b/pkgs/tools/misc/flameshot/default.nix
index 6c4f71c507e7a..1c0fd19ad2aa9 100644
--- a/pkgs/tools/misc/flameshot/default.nix
+++ b/pkgs/tools/misc/flameshot/default.nix
@@ -21,7 +21,9 @@ mkDerivation rec {
   };
 
   patches = [
-    # Support for USE_LAUNCHER_ABSOLUTE_PATH.
+    # Use absolute install path for `Exec=` in the desktop file.
+    # This is required since KWin relies on absolute paths in `Exec=` to find a process'
+    # corresponding desktop file and check if it's allowed to take screenshot.
     # Should be removed when the next release comes out.
     (fetchpatch {
       url = "https://github.com/flameshot-org/flameshot/commit/1031980ed1e62d24d7f719998b7951d48801e3fa.patch";
@@ -44,9 +46,6 @@ mkDerivation rec {
   nativeBuildInputs = [ cmake qttools qtsvg ];
   buildInputs = [ qtbase ];
 
-  # Use relative path for the .desktop file.
-  cmakeFlags = [ "-DUSE_LAUNCHER_ABSOLUTE_PATH=OFF" ];
-
   meta = with lib; {
     description = "Powerful yet simple to use screenshot software";
     homepage = "https://github.com/flameshot-org/flameshot";
diff --git a/pkgs/tools/misc/flashrom/default.nix b/pkgs/tools/misc/flashrom/default.nix
index 4c227cbe3f96a..dc42510998cdc 100644
--- a/pkgs/tools/misc/flashrom/default.nix
+++ b/pkgs/tools/misc/flashrom/default.nix
@@ -1,6 +1,6 @@
 { fetchurl
 , fetchpatch
-, gcc9Stdenv
+, stdenv
 , installShellFiles
 , lib
 , libftdi1
@@ -11,7 +11,7 @@
 , jlinkSupport ? false
 }:
 
-gcc9Stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "flashrom";
   version = "1.2";
 
@@ -31,6 +31,11 @@ gcc9Stdenv.mkDerivation rec {
       url = "https://github.com/flashrom/flashrom/commit/da6b3b70cb852dd8e9f9e21aef95fa83e7f7ab0d.patch";
       sha256 = "sha256-fXYDXgT/ik+qtxxFEyJ7/axtycbwLkEg0UD+hzsYEwg=";
     })
+    # fix build with gcc 10
+    (fetchpatch {
+      url = "https://github.com/flashrom/flashrom/commit/3a0c1966e4c66f91e6e8551e906b6db38002acb4.patch";
+      sha256 = "sha256-UfXLefMS20VUc7hk4IXECFbDWEbBnHMGSzOYemTfvjI=";
+    })
   ];
 
   postPatch = ''
@@ -51,6 +56,6 @@ gcc9Stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ funfunctor fpletz felixsinger ];
     platforms = platforms.all;
-    broken = gcc9Stdenv.isDarwin; # requires DirectHW
+    broken = stdenv.isDarwin; # requires DirectHW
   };
 }
diff --git a/pkgs/tools/misc/fluent-bit/default.nix b/pkgs/tools/misc/fluent-bit/default.nix
index 713b1df0c4e93..f6dd32396d841 100644
--- a/pkgs/tools/misc/fluent-bit/default.nix
+++ b/pkgs/tools/misc/fluent-bit/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, flex, bison, systemd }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, flex, bison, systemd }:
 
 stdenv.mkDerivation rec {
   pname = "fluent-bit";
@@ -12,7 +12,21 @@ stdenv.mkDerivation rec {
   };
 
   patches = lib.optionals stdenv.isDarwin [
-    ./fix-cmetrics-darwin.patch
+    # Fix compilations errors on darwin
+    (fetchpatch {
+      url = "https://github.com/calyptia/cmetrics/commit/4f0f7ae2eeec148a69156f9fcc05d64bf249d11e.patch";
+      sha256 = "sha256-M1+28mHxpMvcFkOoKxkMMo1VCQsG33ncFZkFalOq2FQ=";
+      stripLen = 1;
+      extraPrefix = "lib/cmetrics/";
+    })
+    (fetchpatch {
+      url = "https://github.com/calyptia/cmetrics/commit/a97999cb6d7299ef230d216b7a1c584b43c64de9.patch";
+      sha256 = "sha256-RuyPEeILc86n/klPIb334XpX0F71nskQ8s/ya0rE2zI=";
+      stripLen = 1;
+      extraPrefix = "lib/cmetrics/";
+    })
+
+    # Fix bundled luajit compilation args
     ./fix-luajit-darwin.patch
   ];
 
diff --git a/pkgs/tools/misc/fluent-bit/fix-cmetrics-darwin.patch b/pkgs/tools/misc/fluent-bit/fix-cmetrics-darwin.patch
deleted file mode 100644
index 8bd77605cbc07..0000000000000
--- a/pkgs/tools/misc/fluent-bit/fix-cmetrics-darwin.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git i/lib/cmetrics/src/cmt_time.c w/lib/cmetrics/src/cmt_time.c
---- i/lib/cmetrics/src/cmt_time.c
-+++ w/lib/cmetrics/src/cmt_time.c
-@@ -20,7 +20,7 @@
- #include <cmetrics/cmt_info.h>
- 
- /* MacOS */
--#ifdef FLB_HAVE_CLOCK_GET_TIME
-+#ifdef CMT_HAVE_CLOCK_GET_TIME
- #include <mach/clock.h>
- #include <mach/mach.h>
- #endif
-@@ -41,8 +41,8 @@
-     mach_timespec_t mts;
-     host_get_clock_service(mach_host_self(), CALENDAR_CLOCK, &cclock);
-     clock_get_time(cclock, &mts);
--    tm->tv_sec = mts.tv_sec;
--    tm->tv_nsec = mts.tv_nsec;
-+    tm.tv_sec = mts.tv_sec;
-+    tm.tv_nsec = mts.tv_nsec;
-     mach_port_deallocate(mach_task_self(), cclock);
- #else /* __STDC_VERSION__ */
-     clock_gettime(CLOCK_REALTIME, &tm);
diff --git a/pkgs/tools/misc/fluentd/Gemfile.lock b/pkgs/tools/misc/fluentd/Gemfile.lock
index 6b3c8dd459ec0..651d9012e005e 100644
--- a/pkgs/tools/misc/fluentd/Gemfile.lock
+++ b/pkgs/tools/misc/fluentd/Gemfile.lock
@@ -1,118 +1,139 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    addressable (2.7.0)
+    addressable (2.8.0)
       public_suffix (>= 2.0.2, < 5.0)
-    aws-eventstream (1.0.3)
-    aws-partitions (1.207.0)
-    aws-sdk-cloudwatchlogs (1.25.0)
-      aws-sdk-core (~> 3, >= 3.61.1)
+    aws-eventstream (1.2.0)
+    aws-partitions (1.540.0)
+    aws-sdk-cloudwatchlogs (1.49.0)
+      aws-sdk-core (~> 3, >= 3.122.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-core (3.65.1)
-      aws-eventstream (~> 1.0, >= 1.0.2)
-      aws-partitions (~> 1.0)
+    aws-sdk-core (3.124.0)
+      aws-eventstream (~> 1, >= 1.0.2)
+      aws-partitions (~> 1, >= 1.525.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-firehose (1.20.0)
-      aws-sdk-core (~> 3, >= 3.61.1)
+    aws-sdk-firehose (1.45.0)
+      aws-sdk-core (~> 3, >= 3.122.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kinesis (1.19.0)
-      aws-sdk-core (~> 3, >= 3.61.1)
+    aws-sdk-kinesis (1.38.0)
+      aws-sdk-core (~> 3, >= 3.122.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kms (1.24.0)
-      aws-sdk-core (~> 3, >= 3.61.1)
+    aws-sdk-kms (1.52.0)
+      aws-sdk-core (~> 3, >= 3.122.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.48.0)
-      aws-sdk-core (~> 3, >= 3.61.1)
+    aws-sdk-s3 (1.109.0)
+      aws-sdk-core (~> 3, >= 3.122.0)
       aws-sdk-kms (~> 1)
+      aws-sigv4 (~> 1.4)
+    aws-sdk-sqs (1.48.0)
+      aws-sdk-core (~> 3, >= 3.122.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-sqs (1.22.0)
-      aws-sdk-core (~> 3, >= 3.61.1)
-      aws-sigv4 (~> 1.1)
-    aws-sigv4 (1.1.0)
-      aws-eventstream (~> 1.0, >= 1.0.2)
-    bson (4.5.0)
-    concurrent-ruby (1.1.5)
-    cool.io (1.5.4)
-    dig_rb (1.0.1)
-    digest-crc (0.4.1)
-    elasticsearch (7.3.0)
-      elasticsearch-api (= 7.3.0)
-      elasticsearch-transport (= 7.3.0)
-    elasticsearch-api (7.3.0)
+    aws-sigv4 (1.4.0)
+      aws-eventstream (~> 1, >= 1.0.2)
+    bson (4.12.1)
+    concurrent-ruby (1.1.9)
+    cool.io (1.7.1)
+    digest-crc (0.6.4)
+      rake (>= 12.0.0, < 14.0.0)
+    elasticsearch (7.16.0)
+      elasticsearch-api (= 7.16.0)
+      elasticsearch-transport (= 7.16.0)
+    elasticsearch-api (7.16.0)
       multi_json
-    elasticsearch-transport (7.3.0)
-      faraday
+    elasticsearch-transport (7.16.0)
+      faraday (~> 1)
       multi_json
-    excon (0.66.0)
-    faraday (0.15.4)
+    excon (0.89.0)
+    faraday (1.8.0)
+      faraday-em_http (~> 1.0)
+      faraday-em_synchrony (~> 1.0)
+      faraday-excon (~> 1.1)
+      faraday-httpclient (~> 1.0.1)
+      faraday-net_http (~> 1.0)
+      faraday-net_http_persistent (~> 1.1)
+      faraday-patron (~> 1.0)
+      faraday-rack (~> 1.0)
       multipart-post (>= 1.2, < 3)
+      ruby2_keywords (>= 0.0.4)
+    faraday-em_http (1.0.0)
+    faraday-em_synchrony (1.0.0)
+    faraday-excon (1.1.0)
+    faraday-httpclient (1.0.1)
+    faraday-net_http (1.0.1)
+    faraday-net_http_persistent (1.2.0)
+    faraday-patron (1.0.0)
+    faraday-rack (1.0.0)
     fluent-config-regexp-type (1.0.0)
       fluentd (> 1.0.0, < 2)
-    fluent-plugin-cloudwatch-logs (0.7.4)
+    fluent-plugin-cloudwatch-logs (0.14.2)
       aws-sdk-cloudwatchlogs (~> 1.0)
-      fluentd (>= 0.14.15)
-    fluent-plugin-elasticsearch (3.5.5)
+      fluentd (>= 1.8.0)
+    fluent-plugin-elasticsearch (5.1.4)
       elasticsearch
       excon
       fluentd (>= 0.14.22)
-    fluent-plugin-kafka (0.11.1)
+    fluent-plugin-kafka (0.17.3)
       fluentd (>= 0.10.58, < 2)
       ltsv
-      ruby-kafka (>= 0.7.8, < 0.8.0)
-    fluent-plugin-kinesis (3.1.0)
-      aws-sdk-firehose (~> 1, != 1.9, != 1.5)
-      aws-sdk-kinesis (~> 1, != 1.5, != 1.4)
-      fluentd (>= 0.14.10, < 2)
+      ruby-kafka (>= 1.4.0, < 2)
+    fluent-plugin-kinesis (3.4.2)
+      aws-sdk-firehose (~> 1, != 1.9, != 1.5, != 1.15)
+      aws-sdk-kinesis (~> 1, != 1.5, != 1.4, != 1.14)
+      fluentd (>= 0.14.22, < 2)
       google-protobuf (~> 3)
-    fluent-plugin-mongo (1.3.0)
+    fluent-plugin-mongo (1.5.0)
       fluentd (>= 0.14.22, < 2)
       mongo (~> 2.6.0)
     fluent-plugin-record-reformer (0.9.1)
       fluentd
-    fluent-plugin-rewrite-tag-filter (2.2.0)
+    fluent-plugin-rewrite-tag-filter (2.4.0)
       fluent-config-regexp-type
       fluentd (>= 0.14.2, < 2)
-    fluent-plugin-s3 (1.1.11)
-      aws-sdk-s3 (~> 1.0)
-      aws-sdk-sqs (~> 1.0)
+    fluent-plugin-s3 (1.6.1)
+      aws-sdk-s3 (~> 1.60)
+      aws-sdk-sqs (~> 1.23)
       fluentd (>= 0.14.22, < 2)
-    fluent-plugin-webhdfs (1.2.4)
+    fluent-plugin-webhdfs (1.5.0)
       fluentd (>= 0.14.22)
-      webhdfs (>= 0.6.0)
-    fluentd (1.7.0)
+      webhdfs (>= 0.10.0)
+    fluentd (1.14.3)
+      bundler
       cool.io (>= 1.4.5, < 2.0.0)
-      dig_rb (~> 1.0.0)
-      http_parser.rb (>= 0.5.1, < 0.7.0)
-      msgpack (>= 0.7.0, < 2.0.0)
-      serverengine (>= 2.0.4, < 3.0.0)
+      http_parser.rb (>= 0.5.1, < 0.9.0)
+      msgpack (>= 1.3.1, < 2.0.0)
+      serverengine (>= 2.2.2, < 3.0.0)
       sigdump (~> 0.2.2)
-      strptime (>= 0.2.2, < 1.0.0)
-      tzinfo (~> 2.0)
+      strptime (>= 0.2.4, < 1.0.0)
+      tzinfo (>= 1.0, < 3.0)
       tzinfo-data (~> 1.0)
+      webrick (>= 1.4.2, < 1.8.0)
       yajl-ruby (~> 1.0)
-    google-protobuf (3.9.1)
-    http_parser.rb (0.6.0)
+    google-protobuf (3.19.1)
+    http_parser.rb (0.8.0)
     jmespath (1.4.0)
     ltsv (0.1.2)
     mongo (2.6.4)
       bson (>= 4.3.0, < 5.0.0)
-    msgpack (1.3.1)
-    multi_json (1.13.1)
+    msgpack (1.4.2)
+    multi_json (1.15.0)
     multipart-post (2.1.1)
-    public_suffix (4.0.1)
-    ruby-kafka (0.7.10)
+    public_suffix (4.0.6)
+    rake (13.0.6)
+    ruby-kafka (1.4.0)
       digest-crc
-    serverengine (2.1.1)
+    ruby2_keywords (0.0.5)
+    serverengine (2.2.4)
       sigdump (~> 0.2.2)
     sigdump (0.2.4)
-    strptime (0.2.3)
-    tzinfo (2.0.0)
+    strptime (0.2.5)
+    tzinfo (2.0.4)
       concurrent-ruby (~> 1.0)
-    tzinfo-data (1.2019.2)
+    tzinfo-data (1.2021.5)
       tzinfo (>= 1.0.0)
-    webhdfs (0.8.0)
+    webhdfs (0.10.2)
       addressable
+    webrick (1.7.0)
     yajl-ruby (1.4.1)
 
 PLATFORMS
@@ -131,4 +152,4 @@ DEPENDENCIES
   fluentd
 
 BUNDLED WITH
-   2.1.4
+   2.2.24
diff --git a/pkgs/tools/misc/fluentd/gemset.nix b/pkgs/tools/misc/fluentd/gemset.nix
index ef063663c1a63..10e2b1678f1eb 100644
--- a/pkgs/tools/misc/fluentd/gemset.nix
+++ b/pkgs/tools/misc/fluentd/gemset.nix
@@ -5,30 +5,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+      sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp";
       type = "gem";
     };
-    version = "2.7.0";
+    version = "2.8.0";
   };
   aws-eventstream = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "100g77a5ixg4p5zwq77f28n2pdkk0y481f7v83qrlmnj22318qq6";
+      sha256 = "1pyis1nvnbjxk12a43xvgj2gv0mvp4cnkc1gzw0v1018r61399gz";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "1.2.0";
   };
   aws-partitions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dr16ryn9514qfdf9zrv06f7gb7gih960b82arkv868nfj4470jx";
+      sha256 = "1ns0378h8qa5vwrq7a7i0xji17japs95mddpvam351k19a79vbwh";
       type = "gem";
     };
-    version = "1.207.0";
+    version = "1.540.0";
   };
   aws-sdk-cloudwatchlogs = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -36,10 +36,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10vracvnmihazs34nlmar813qdigk34afij66182hjcciby0as6x";
+      sha256 = "075qkjzjbi37hnp4qq9gkxy2cfb9v29c66qclfmxqyvfcw5s04b1";
       type = "gem";
     };
-    version = "1.25.0";
+    version = "1.49.0";
   };
   aws-sdk-core = {
     dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
@@ -47,10 +47,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vb49n1ydz1m2l0qhc7gp0rvc7fa7qxczf582kyv7nsfn2k2z9s4";
+      sha256 = "1chpydvgwa48rbd67k39fpg2vjp21v3kmjygbjqv1l1sqn6rjbvw";
       type = "gem";
     };
-    version = "3.65.1";
+    version = "3.124.0";
   };
   aws-sdk-firehose = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -58,10 +58,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1s2rksdk3iv9jvcnyvnpvmh35vbs0ppan9iw4zq6fg87y44j9i74";
+      sha256 = "01vf0xzyj1j85vvl16mhazkgs5zz9ym6rk5v7396mlzm8a67796g";
       type = "gem";
     };
-    version = "1.20.0";
+    version = "1.45.0";
   };
   aws-sdk-kinesis = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -69,10 +69,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w2azv19xi1jmp4dsqjh8af1xdyw4ajd1l5abmx3wpwd8zngxvlp";
+      sha256 = "1xgjmpm2k60sl734g6lv7g8qlm4d6g9pjzgr1825fhd1h492p3dl";
       type = "gem";
     };
-    version = "1.19.0";
+    version = "1.38.0";
   };
   aws-sdk-kms = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -80,10 +80,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14blvvfz67rhffi4ahby50jiip5f0hm85mcxlx6y93g0cfrnxh3m";
+      sha256 = "1br4h5zwb5ir2bf6y0hnlwafkmghxi2fbjqx86agyv838ndy9npd";
       type = "gem";
     };
-    version = "1.24.0";
+    version = "1.52.0";
   };
   aws-sdk-s3 = {
     dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
@@ -91,10 +91,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14iv2wqvvbiz0gdms21i9n6rh8390r1yg4zcf8pzzfplbqfwqw4w";
+      sha256 = "0yc96imi4v043rdxa94ncg15aapzp1i5qx076rv25zxqcbkdwzwd";
       type = "gem";
     };
-    version = "1.48.0";
+    version = "1.109.0";
   };
   aws-sdk-sqs = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -102,10 +102,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pszp0bcgiqn4iskb6xv5j2n540h1k9glz2w85vq5iml1casq769";
+      sha256 = "0vzff2v18098cz8c6pvgfh1lc4l1kk4w5gq76rwjdxw2ahnxf4h9";
       type = "gem";
     };
-    version = "1.22.0";
+    version = "1.48.0";
   };
   aws-sigv4 = {
     dependencies = ["aws-eventstream"];
@@ -113,60 +113,51 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dfc8i5cxjwlvi4b665lbpbwvks8a6wfy3vfmwr3pjdmxwdmc2cs";
+      sha256 = "1wh1y79v0s4zgby2m79bnifk65hwf5pvk2yyrxzn2jkjjq8f8fqa";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.4.0";
   };
   bson = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gxdavhccppnfbmh2cx0qxv6b6rzr5s00dsigazw808dhb34yyg7";
+      sha256 = "0pnr0b7phdzhkw9xqhmqnw5673ndi13ks3dqwqmbxq6v0rsxiapc";
       type = "gem";
     };
-    version = "4.5.0";
+    version = "4.12.1";
   };
   concurrent-ruby = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x07r23s7836cpp5z9yrlbpljcxpax14yw4fy4bnp6crhr6x24an";
+      sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f";
       type = "gem";
     };
-    version = "1.1.5";
+    version = "1.1.9";
   };
   "cool.io" = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l836z3qgrl5829q48qaz1zngqqxy2k0l61swqm0amhyfcgfbz1m";
+      sha256 = "0dfq4h168wzvs9cvn2mm8648ynkl936pgjva2p8ik34p6d620537";
       type = "gem";
     };
-    version = "1.5.4";
-  };
-  dig_rb = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "12dbb1pl2vr9z7yy2zsbsjaj4hw89y56wll6kd8422mylmcw7bx4";
-      type = "gem";
-    };
-    version = "1.0.1";
+    version = "1.7.1";
   };
   digest-crc = {
+    dependencies = ["rake"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08q8p0fk51aa6dwhy2xmjaj76arcq9nn22gyia162jmqpccfx50l";
+      sha256 = "1czaak53w8n13y1fr0q23gp0fhklvxjac5n562qj3xk6sh5ad0x2";
       type = "gem";
     };
-    version = "0.4.1";
+    version = "0.6.4";
   };
   elasticsearch = {
     dependencies = ["elasticsearch-api" "elasticsearch-transport"];
@@ -174,10 +165,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r4gpskjgg8blk7ws9g1p3d5n8bjrggyzxg2v3q40036rjp3fp1h";
+      sha256 = "06vyavz2lcswj32jdcnjccax3flpcb2xnx9f5jxxm95clkpsqnwa";
       type = "gem";
     };
-    version = "7.3.0";
+    version = "7.16.0";
   };
   elasticsearch-api = {
     dependencies = ["multi_json"];
@@ -185,10 +176,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1jyd03ylyvv975iail13cwlkg4h9yknhpm1kcq1dpvmbjqy7q6bz";
+      sha256 = "1vp09waa4bi1xk7ixwldiix27g52fd6xcij6826xgypmzrxrn1hc";
       type = "gem";
     };
-    version = "7.3.0";
+    version = "7.16.0";
   };
   elasticsearch-transport = {
     dependencies = ["faraday" "multi_json"];
@@ -196,31 +187,111 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dqm819iqkhbny5lwkf8mh83fmffpwbscal9vmfdw4g9mf08yfnf";
+      sha256 = "1kpcy250crl9w1jspqw9ykv0ixlnscym93mi9kvgljis2yql0qlx";
       type = "gem";
     };
-    version = "7.3.0";
+    version = "7.16.0";
   };
   excon = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05qmrx7l8abpbvp0z01fdpc731c4k6akk67l424vdp5dywhachpr";
+      sha256 = "0153rr745g48h48vaplgmx7xkfjbc79acpq5jsl7agdrk4yf75ih";
       type = "gem";
     };
-    version = "0.66.0";
+    version = "0.89.0";
   };
   faraday = {
-    dependencies = ["multipart-post"];
+    dependencies = ["faraday-em_http" "faraday-em_synchrony" "faraday-excon" "faraday-httpclient" "faraday-net_http" "faraday-net_http_persistent" "faraday-patron" "faraday-rack" "multipart-post" "ruby2_keywords"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0afhlqgby2cizcwgh7h2sq5f77q01axjbdl25bsvfwsry9n7gyyi";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  faraday-em_http = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12cnqpbak4vhikrh2cdn94assh3yxza8rq2p9w2j34bqg5q4qgbs";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  faraday-em_synchrony = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vgrbhkp83sngv6k4mii9f2s9v5lmp693hylfxp2ssfc60fas3a6";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  faraday-excon = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h09wkb0k0bhm6dqsd47ac601qiaah8qdzjh8gvxfd376x1chmdh";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  faraday-httpclient = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fyk0jd3ks7fdn8nv3spnwjpzx2lmxmg2gh4inz3by1zjzqg33sc";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  faraday-net_http = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s72m05jvzc1pd6cw1i289chas399q0a14xrwg4rvkdwy7bgzrh0";
+      sha256 = "1fi8sda5hc54v1w3mqfl5yz09nhx35kglyx72w7b8xxvdr0cwi9j";
       type = "gem";
     };
-    version = "0.15.4";
+    version = "1.0.1";
+  };
+  faraday-net_http_persistent = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dc36ih95qw3rlccffcb0vgxjhmipsvxhn6cw71l7ffs0f7vq30b";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  faraday-patron = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19wgsgfq0xkski1g7m96snv39la3zxz6x7nbdgiwhg5v82rxfb6w";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  faraday-rack = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1h184g4vqql5jv9s9im6igy00jp6mrah2h14py6mpf9bkabfqq7g";
+      type = "gem";
+    };
+    version = "1.0.0";
   };
   fluent-config-regexp-type = {
     dependencies = ["fluentd"];
@@ -239,10 +310,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "046nx56zgb3l29r5v1s79zhhxsb18fwz2d8v6n6cgbv8i13xhl0l";
+      sha256 = "0z1i1n921i5w43bl6rcsj526a22dzv6lrninwj8ygaksgrg5rr45";
       type = "gem";
     };
-    version = "0.7.4";
+    version = "0.14.2";
   };
   fluent-plugin-elasticsearch = {
     dependencies = ["elasticsearch" "excon" "fluentd"];
@@ -250,10 +321,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19nrhgx8mh59lpcv2jf3gb031x4zan93j9fswzjzvyjh4rlfpbmn";
+      sha256 = "1gfqpl2izz036faaz3qlq61da87avhmc2406s21shayhkf8sx0p9";
       type = "gem";
     };
-    version = "3.5.5";
+    version = "5.1.4";
   };
   fluent-plugin-kafka = {
     dependencies = ["fluentd" "ltsv" "ruby-kafka"];
@@ -261,10 +332,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1km7gjcx2icwj2s2svbmrhwb1gmpk85zfa8pivm04wzc8f6vjhy2";
+      sha256 = "15hdd140nqh9zg10wqdwp3m0k1l5w1xhllvbfs5z21aqwrvwc0mp";
       type = "gem";
     };
-    version = "0.11.1";
+    version = "0.17.3";
   };
   fluent-plugin-kinesis = {
     dependencies = ["aws-sdk-firehose" "aws-sdk-kinesis" "fluentd" "google-protobuf"];
@@ -272,10 +343,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1j0qs09g53xsvbxpdlylwm3h2v8rvr3xpn0kwy63cjnpdf012m8f";
+      sha256 = "07n5pzfz143hlvbzbx5rczb33ai9kdp48vhdak100m6xpaqkvc2p";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "3.4.2";
   };
   fluent-plugin-mongo = {
     dependencies = ["fluentd" "mongo"];
@@ -283,10 +354,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "108gxrgbn0ib70n7gvdlx8xr1i0jdh1cb2n4m4m24ihyfb8i6vli";
+      sha256 = "1rpaglr8hka0prvj5xsrl1af3137c7ma1d1xf1mvib5k9h0aax1f";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.5.0";
   };
   fluent-plugin-record-reformer = {
     dependencies = ["fluentd"];
@@ -305,10 +376,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kf8p1s02pwhkks82kmkkbfbf4qlhhqiczqah4w0dnp86wp6xyw5";
+      sha256 = "1vjvn8ph87cl2dl0dbaap69rciglsdma1y5ghn2vm5mvh5h7xbs6";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.4.0";
   };
   fluent-plugin-s3 = {
     dependencies = ["aws-sdk-s3" "aws-sdk-sqs" "fluentd"];
@@ -316,10 +387,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "093fs43bixd0lmjfpkk1fl24asa1w8kacqrm82lbfx4cq4dg4fif";
+      sha256 = "191j1y76irfgrsj259mj062izkfxrr5kajixdf17h26m3l9n5pgh";
       type = "gem";
     };
-    version = "1.1.11";
+    version = "1.6.1";
   };
   fluent-plugin-webhdfs = {
     dependencies = ["fluentd" "webhdfs"];
@@ -327,41 +398,41 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mhy321gxb59yk0rsawnqf3kfx33ncdlnpmn4rdfzgi0v8ya0fp4";
+      sha256 = "1llpsbd5n2lgxbq16px5hbp3zfw65bdp46b08v87b6rmn3h47aiv";
       type = "gem";
     };
-    version = "1.2.4";
+    version = "1.5.0";
   };
   fluentd = {
-    dependencies = ["cool.io" "dig_rb" "http_parser.rb" "msgpack" "serverengine" "sigdump" "strptime" "tzinfo" "tzinfo-data" "yajl-ruby"];
+    dependencies = ["cool.io" "http_parser.rb" "msgpack" "serverengine" "sigdump" "strptime" "tzinfo" "tzinfo-data" "webrick" "yajl-ruby"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pyjd31z95l819n9sbl6bl5bvjmyi39is0p2i0im3v0r9ydgyf27";
+      sha256 = "1vrw0i286ssrr33g1zayqjk9fxmjz8a4xhrka0id2a9w3ncq275z";
       type = "gem";
     };
-    version = "1.7.0";
+    version = "1.14.3";
   };
   google-protobuf = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pb7v00zya00jddl7cpraz27xi3jsdjn31mm672byqwzdyghpfka";
+      sha256 = "1dwx4ns39bpmzmhglyip9d68i117zspf5lp865pf6hrsmmdf2k53";
       type = "gem";
     };
-    version = "3.9.1";
+    version = "3.19.1";
   };
   "http_parser.rb" = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+      sha256 = "1gj4fmls0mf52dlr928gaq0c0cb0m3aqa9kaa6l0ikl2zbqk42as";
       type = "gem";
     };
-    version = "0.6.0";
+    version = "0.8.0";
   };
   jmespath = {
     groups = ["default"];
@@ -399,20 +470,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qr2mkm2i3m76zarvy7qgjl9596hmvjrg7x6w42vx8cfsbf5p0y1";
+      sha256 = "06iajjyhx0rvpn4yr3h1hc4w4w3k59bdmfhxnjzzh76wsrdxxrc6";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "1.4.2";
   };
   multi_json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
       type = "gem";
     };
-    version = "1.13.1";
+    version = "1.15.0";
   };
   multipart-post = {
     groups = ["default"];
@@ -429,10 +500,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xnfv2j2bqgdpg2yq9i2rxby0w2sc9h5iyjkpaas2xknwrgmhdb0";
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
       type = "gem";
     };
-    version = "4.0.1";
+    version = "4.0.6";
+  };
+  rake = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      type = "gem";
+    };
+    version = "13.0.6";
   };
   ruby-kafka = {
     dependencies = ["digest-crc"];
@@ -440,10 +521,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0m50s1xabvgq36k9jx2qj8bd8ivvkxa6fs2czi22jxhzqsl3xlvc";
+      sha256 = "1bmp3nsf836z3392drhlfmhav2025k46yj8sbhphpphr22v3ka7k";
       type = "gem";
     };
-    version = "0.7.10";
+    version = "1.4.0";
+  };
+  ruby2_keywords = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
+      type = "gem";
+    };
+    version = "0.0.5";
   };
   serverengine = {
     dependencies = ["sigdump"];
@@ -451,10 +542,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10y535621y0kyn40bkcnl01zrsf3z4abf4mdl8m3fdcmj30mazlw";
+      sha256 = "1gzhggx40a53mnv4f32xag4h6ai0s5m3w06s59b0h6ih7rqvwns9";
       type = "gem";
     };
-    version = "2.1.1";
+    version = "2.2.4";
   };
   sigdump = {
     groups = ["default"];
@@ -471,10 +562,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yj5wwa7wbhgi7w8d9ihpzpf99niw956fhyxddhayj09fgmdcxd8";
+      sha256 = "1ycs0xz58kymf7yp4h56f0nid2z7g3s18dj7pa3p790pfzzpgvcq";
       type = "gem";
     };
-    version = "0.2.3";
+    version = "0.2.5";
   };
   tzinfo = {
     dependencies = ["concurrent-ruby"];
@@ -482,10 +573,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jp9f5120az6q84w5w19nnn6g6yl2whc1cbcnnv4xryw9q8vqbkb";
+      sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "2.0.4";
   };
   tzinfo-data = {
     dependencies = ["tzinfo"];
@@ -493,10 +584,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1m507in0d7vlfgasxpkz3y1a44zp532k9qlqcaz90ay939sz9h5q";
+      sha256 = "0w1iyvw0m2xvdr4654jnn1g27jwj84y94dvaj1k2p3lcrvndm698";
       type = "gem";
     };
-    version = "1.2019.2";
+    version = "1.2021.5";
   };
   webhdfs = {
     dependencies = ["addressable"];
@@ -504,10 +595,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gs6xb9dz9bp5xc38yplfy48jcgj7jrj0zg0vgi7ydkxnkzkhbf2";
+      sha256 = "0pkdsj8ybjfp1sr7gzdxd7van5fpmhc9v2c5g3hifdx4s4yzhcq7";
       type = "gem";
     };
-    version = "0.8.0";
+    version = "0.10.2";
+  };
+  webrick = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d4cvgmxhfczxiq5fr534lmizkhigd15bsx5719r5ds7k7ivisc7";
+      type = "gem";
+    };
+    version = "1.7.0";
   };
   yajl-ruby = {
     groups = ["default"];
diff --git a/pkgs/tools/misc/fortune/default.nix b/pkgs/tools/misc/fortune/default.nix
index 6f77c54e30b46..aa18409525d29 100644
--- a/pkgs/tools/misc/fortune/default.nix
+++ b/pkgs/tools/misc/fortune/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fortune-mod";
-  version = "3.6.1";
+  version = "3.10.0";
 
   # We use fetchurl instead of fetchFromGitHub because the release pack has some
   # special files.
   src = fetchurl {
     url = "https://github.com/shlomif/fortune-mod/releases/download/${pname}-${version}/${pname}-${version}.tar.xz";
-    sha256 = "1cw7xf9xhh6d73y4h4q57g6akjhc1gq6xv37k57sx0wx77wjxqdp";
+    sha256 = "sha256-DR73JXpOkpaOsymP9nxAklCxdoxAnjL1GeNF6D/tDTc=";
   };
 
   nativeBuildInputs = [ cmake perl ];
diff --git a/pkgs/tools/misc/fpart/default.nix b/pkgs/tools/misc/fpart/default.nix
index bdb762c98a600..40b6d80199416 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.2.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "martymac";
     repo = "fpart";
     rev = "${pname}-${version}";
-    sha256 = "17zm3cgp3f2plynqhj8a0hbma5rvawrx5kqygjqyynn7cljv458v";
+    sha256 = "sha256-O+OV/uhehKMWhND3L7wtIL9lMUSN5bX2YRRD7ftcIGY=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/misc/fselect/default.nix b/pkgs/tools/misc/fselect/default.nix
index 5bb73e7e14656..0dc15ed603d83 100644
--- a/pkgs/tools/misc/fselect/default.nix
+++ b/pkgs/tools/misc/fselect/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fselect";
-  version = "0.7.7";
+  version = "0.7.8";
 
   src = fetchFromGitHub {
     owner = "jhspetersson";
     repo = "fselect";
     rev = version;
-    sha256 = "sha256-1UpY32itljkpkOjcVEcpZ0iN+PciEnG9tOpbInHwNus=";
+    sha256 = "sha256-L5Ka4nbzLAdiHigb9ByTonCmACtyWgduWOmp9tCqrz8=";
   };
 
-  cargoSha256 = "sha256-M8hnXHVfKK/aQGXlMpuhoTLalpnHjxSkX+LHwpatu90=";
+  cargoSha256 = "sha256-kyA/d9h/FCiX/AliIaMvkNNPqzl19v2WPEYcRWuivNU=";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = lib.optional stdenv.isDarwin libiconv;
diff --git a/pkgs/tools/misc/fx_cast/default.nix b/pkgs/tools/misc/fx_cast/default.nix
index b94b16d7bf545..1e140ecc0282e 100644
--- a/pkgs/tools/misc/fx_cast/default.nix
+++ b/pkgs/tools/misc/fx_cast/default.nix
@@ -21,7 +21,7 @@
   };
 in
 stdenv.mkDerivation rec {
-  name = "fx_cast_bridge-${version}";
+  pname = "fx_cast_bridge";
   version = "0.1.2";
 
   src = pkgs.fetchFromGitHub {
diff --git a/pkgs/tools/misc/fzf/default.nix b/pkgs/tools/misc/fzf/default.nix
index b82232a6b96d7..92c5baa1096ea 100644
--- a/pkgs/tools/misc/fzf/default.nix
+++ b/pkgs/tools/misc/fzf/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "fzf";
-  version = "0.28.0";
+  version = "0.29.0";
 
   src = fetchFromGitHub {
     owner = "junegunn";
     repo = pname;
     rev = version;
-    sha256 = "sha256-28Lu/WYIJWdLmSKX6C3w6F5NXXynPVwmmdH8PcDwC+Y=";
+    sha256 = "sha256-m+mW9R50VXWUMaRmhMzpr7v8iQJxLYexYvcUMHPz3UM=";
   };
 
   vendorSha256 = "sha256-omvCzM5kH3nAE57S33NV0OFRJmU+Ty7hhriaG/Dc0o0=";
diff --git a/pkgs/tools/misc/geekbench/default.nix b/pkgs/tools/misc/geekbench/default.nix
index 5ccdf2e2febaa..2cfd2cdac8bb6 100644
--- a/pkgs/tools/misc/geekbench/default.nix
+++ b/pkgs/tools/misc/geekbench/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "geekbench";
-  version = "5.4.1";
+  version = "5.4.3";
 
   src = fetchurl {
     url = "https://cdn.geekbench.com/Geekbench-${version}-Linux.tar.gz";
-    sha256 = "sha256-0Pg9bHQwWElW4B3oRco5F2FsaEeLC0ZXx7J+hl7dc3Y=";
+    sha256 = "sha256-A/+XnLusceJXik86EiYeVFi4iplp4+izbYpWNp8QPiM=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/tools/misc/git-town/default.nix b/pkgs/tools/misc/git-town/default.nix
index 18f251fb72080..27eb1275a2da6 100644
--- a/pkgs/tools/misc/git-town/default.nix
+++ b/pkgs/tools/misc/git-town/default.nix
@@ -2,14 +2,14 @@
 
 buildGoPackage rec {
   pname = "git-town";
-  version = "7.5.0";
+  version = "7.6.0";
 
   goPackagePath = "github.com/git-town/git-town";
   src = fetchFromGitHub {
     owner = "git-town";
     repo = "git-town";
     rev = "v${version}";
-    sha256 = "sha256-RmLDlTK+JO2KRLuLvO927W3WYdDlteBIpgTgDXh8lC8=";
+    sha256 = "sha256-yarJWIEIZuBcXXxltkiM7LwrEM8fveD3+JVoPGarhJQ=";
   };
 
   ldflags = [ "-X github.com/git-town/git-town/src/cmd.version=v${version}" "-X github.com/git-town/git-town/src/cmd.buildDate=nix" ];
diff --git a/pkgs/tools/misc/gitlint/default.nix b/pkgs/tools/misc/gitlint/default.nix
index 23420a654a1ca..c32171585969a 100644
--- a/pkgs/tools/misc/gitlint/default.nix
+++ b/pkgs/tools/misc/gitlint/default.nix
@@ -5,58 +5,40 @@
 , python3
 }:
 
-let
-  py = python3.override {
-    packageOverrides = self: super: {
-
-      click = super.click.overridePythonAttrs (oldAttrs: rec {
-        version = "8.0.1";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "0ymdyf37acq4qxh038q0xx44qgj6y2kf0jd0ivvix6qij88w214c";
-        };
-      });
-
-      arrow = super.arrow.overridePythonAttrs (oldAttrs: rec {
-        version = "1.2.0";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "0x70a057dqki2z1ny491ixbg980hg4lihc7g1zmy69g4v6xjkz0n";
-        };
-      });
-
-    };
-  };
-in
-with py.pkgs;
-
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "gitlint";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "jorisroovers";
     repo = "gitlint";
     rev = "v${version}";
-    sha256 = "1j6gfgqin5dmqd2qq0vib55d2r07s9sy4hwrvwlichxx5jjwncly";
+    sha256 = "sha256-RXBMb43BBiJ23X0eKC1kqgLw8iFKJnP5iejY0AWcUrU=";
   };
 
-  nativeBuildInputs = [
-    wheel
-  ];
+  # Upstream splitted the project into gitlint and gitlint-core to
+  # simplify the dependency handling
+  sourceRoot = "source/gitlint-core";
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = with python3.pkgs; [
     arrow
     click
     sh
   ];
 
-  preCheck = ''
-    export PATH="$out/bin:$PATH"
+  checkInputs = with python3.pkgs; [
+    gitMinimal
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    # We don't need gitlint-core
+    substituteInPlace setup.py \
+      --replace "'gitlint-core[trusted-deps]==' + version," ""
   '';
 
-  checkInputs = [
-    gitMinimal
+  pythonImportsCheck = [
+    "gitlint"
   ];
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/goaccess/default.nix b/pkgs/tools/misc/goaccess/default.nix
index 008c9b59397f1..fd1c80a35a099 100644
--- a/pkgs/tools/misc/goaccess/default.nix
+++ b/pkgs/tools/misc/goaccess/default.nix
@@ -1,29 +1,51 @@
-{ lib, stdenv, fetchurl, ncurses, gettext, openssl, withGeolocation ? true, libmaxminddb }:
+{ lib
+, stdenv
+, autoreconfHook
+, fetchFromGitHub
+, gettext
+, libmaxminddb
+, ncurses
+, openssl
+, withGeolocation ? true
+}:
 
 stdenv.mkDerivation rec {
-  version = "1.5.2";
+  version = "1.5.4";
   pname = "goaccess";
 
-  src = fetchurl {
-    url = "https://tar.goaccess.io/goaccess-${version}.tar.gz";
-    sha256 = "sha256-oM4vk5OyYiSE5GnpWoCd/VKt5NQgBJHkPt4fy1KrHIo=";
+  src = fetchFromGitHub {
+    owner = "allinurl";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-KDA5R3up37DLS9YIur4IOacwOq0zed5tj58jEmE0vpE=";
   };
 
+  nativeBuildInputs = [
+    autoreconfHook
+  ];
+
+  buildInputs = [
+    ncurses
+    openssl
+  ] ++ lib.optionals withGeolocation [
+    libmaxminddb
+  ] ++ lib.optionals stdenv.isDarwin [
+    gettext
+  ];
+
   configureFlags = [
     "--enable-utf8"
     "--with-openssl"
-  ] ++ lib.optionals withGeolocation [ "--enable-geoip=mmdb" ];
-
-  buildInputs = [ ncurses openssl ]
-    ++ lib.optionals withGeolocation [ libmaxminddb ]
-    ++ lib.optionals stdenv.isDarwin [ gettext ];
+  ] ++ lib.optionals withGeolocation [
+    "--enable-geoip=mmdb"
+  ];
 
-  meta = {
+  meta = with lib; {
     description = "Real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems";
-    homepage    = "https://goaccess.io";
-    changelog   = "https://github.com/allinurl/goaccess/raw/v${version}/ChangeLog";
-    license     = lib.licenses.mit;
-    platforms   = lib.platforms.linux ++ lib.platforms.darwin;
-    maintainers = with lib.maintainers; [ ederoyd46 ];
+    homepage = "https://goaccess.io";
+    changelog = "https://github.com/allinurl/goaccess/raw/v${version}/ChangeLog";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ederoyd46 ];
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/tools/misc/goreleaser/default.nix b/pkgs/tools/misc/goreleaser/default.nix
index 5ff4a9e05e99d..fb82539191813 100644
--- a/pkgs/tools/misc/goreleaser/default.nix
+++ b/pkgs/tools/misc/goreleaser/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "goreleaser";
-  version = "0.184.0";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ujhYcihLJh52cURvQ7p1B4fZTDx8cq3WA4RfKetWEBo=";
+    sha256 = "sha256-p+QLZ0G75Mk0Z9G+u+qcxTTWzPZnuM+inLO0Lkojs84=";
   };
 
-  vendorSha256 = "sha256-J9lAkmLDowMmbwcHV2t9/7iVzkZRnF60/4PSRS8+4Sg=";
+  vendorSha256 = "sha256-mAJrUGgO0iprQnYOa3TMENNJbJcgM1eiV/AG+TYP0Mg=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/misc/gotify-cli/default.nix b/pkgs/tools/misc/gotify-cli/default.nix
index 05a93b44b94ed..7f5eef3b442b9 100644
--- a/pkgs/tools/misc/gotify-cli/default.nix
+++ b/pkgs/tools/misc/gotify-cli/default.nix
@@ -2,18 +2,16 @@
 
 buildGoModule rec {
   pname = "gotify-cli";
-  version = "2.2.0";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = "gotify";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "0hgh1i8rdmf12qmk66cgksv8hz5qzkfbfb6cfmrkhbq765xkm4ir";
+    sha256 = "sha256-X41m7bCilDgnTMJy3ISz8g7dAtaz/lphwaCPZDGMDXk=";
   };
 
-  vendorSha256 = "1l47s0h0v4cgqcsm5008cknvfa4vnv6f7n43d8ga0xq5ikqqzmja";
-
-  doCheck = false;
+  vendorSha256 = "sha256-EKscJM8r1dbKRQPSZFwFqJYACkQynIS347460PuxQiU=";
 
   postInstall = ''
     mv $out/bin/cli $out/bin/gotify
diff --git a/pkgs/tools/misc/graylog/default.nix b/pkgs/tools/misc/graylog/default.nix
index 729cfbc283f9b..1480f099f9f57 100644
--- a/pkgs/tools/misc/graylog/default.nix
+++ b/pkgs/tools/misc/graylog/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "graylog";
-  version = "3.3.14";
+  version = "3.3.16";
 
   src = fetchurl {
     url = "https://packages.graylog2.org/releases/graylog/graylog-${version}.tgz";
-    sha256 = "04dslbvgrraacsw7wydbiv8jc753as2g54wn9sgh3lsryvzrfqfa";
+    sha256 = "sha256-P/cnfYKnMSnDD4otEyirKlLaFduyfSO9sao4BY3c3Z4=";
   };
 
   dontBuild = true;
diff --git a/pkgs/tools/misc/grub/2.0x.nix b/pkgs/tools/misc/grub/2.0x.nix
index d9c4ceeca2c08..ea983d6f0437f 100644
--- a/pkgs/tools/misc/grub/2.0x.nix
+++ b/pkgs/tools/misc/grub/2.0x.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, flex, bison, python3, autoconf, automake, gnulib, libtool
+{ lib, stdenv, fetchurl, flex, bison, python3, autoreconfHook, gnulib, libtool, bash
 , gettext, ncurses, libusb-compat-0_1, freetype, qemu, lvm2, unifont, pkg-config
 , buildPackages
 , fetchpatch
@@ -51,10 +51,9 @@ stdenv.mkDerivation rec {
   pname = "grub";
   inherit version;
 
-  src = fetchgit {
-    url = "git://git.savannah.gnu.org/grub.git";
-    rev = "${pname}-${version}";
-    sha256 = "1vkxr6b4p7h259vayjw8bfgqj57x68byy939y4bmyaz6g7fgrv0f";
+  src = fetchurl {
+    url = "mirror://gnu/grub/grub-${version}.tar.xz";
+    sha256 = "sha256-t56kSvkbk9F80/6Ava5u1DdwZ4qaWuGSzOqAPrtlfuE=";
   };
 
   patches = [
@@ -75,8 +74,8 @@ stdenv.mkDerivation rec {
   '';
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
-  nativeBuildInputs = [ bison flex python3 pkg-config autoconf automake gettext freetype ];
-  buildInputs = [ ncurses libusb-compat-0_1 freetype lvm2 fuse libtool ]
+  nativeBuildInputs = [ bison flex python3 pkg-config gettext freetype autoreconfHook ];
+  buildInputs = [ ncurses libusb-compat-0_1 freetype lvm2 fuse libtool bash ]
     ++ optional doCheck qemu
     ++ optional zfsSupport zfs;
 
@@ -109,8 +108,6 @@ stdenv.mkDerivation rec {
 
       patchShebangs .
 
-      ./bootstrap --no-git --gnulib-srcdir=${gnulib}
-
       substituteInPlace ./configure --replace '/usr/share/fonts/unifont' '${unifont}/share/fonts'
     '';
 
@@ -144,6 +141,9 @@ stdenv.mkDerivation rec {
   postInstall = ''
     # Avoid a runtime reference to gcc
     sed -i $out/lib/grub/*/modinfo.sh -e "/grub_target_cppflags=/ s|'.*'|' '|"
+    # just adding bash to buildInputs wasn't enough to fix the shebang
+    substituteInPlace $out/lib/grub/*/modinfo.sh \
+      --replace ${buildPackages.bash} "/usr/bin/bash"
   '';
 
   passthru.tests = {
diff --git a/pkgs/tools/misc/grub/grub1.patches.sh b/pkgs/tools/misc/grub/grub1.patches.sh
index d3b138ad35770..a7db25afb64f3 100755
--- a/pkgs/tools/misc/grub/grub1.patches.sh
+++ b/pkgs/tools/misc/grub/grub1.patches.sh
@@ -13,39 +13,39 @@ set -u
 
 # https://salsa.debian.org/grub-team/grub-legacy/tree/master/debian/patches
 SERIES=(
-	snapshot.patch
-	menu.lst_gnu-hurd.patch
-	graphics.patch
-	raid.patch
-	raid_cciss.patch
-	xfs_freeze.patch
-	2gb_limit.patch
-	grub-special_device_names.patch
-	grub-xvd_drives.patch
-	initrd_max_address.patch
-	splashimage_help.patch
-	grub-install_addsyncs.patch
-	grub-install_regexp.patch
-	grub-install_aoe_support.patch
-	grub-install_xvd.patch
-	geometry-26kernel.patch
-	print_func.patch
-	mprotect.patch
-	savedefault.patch
-	find-grub-dir.patch
-	intelmac.patch
-	crossreference_manpages.patch
-	ext3_256byte_inode.patch
+    snapshot.patch
+    menu.lst_gnu-hurd.patch
+    graphics.patch
+    raid.patch
+    raid_cciss.patch
+    xfs_freeze.patch
+    2gb_limit.patch
+    grub-special_device_names.patch
+    grub-xvd_drives.patch
+    initrd_max_address.patch
+    splashimage_help.patch
+    grub-install_addsyncs.patch
+    grub-install_regexp.patch
+    grub-install_aoe_support.patch
+    grub-install_xvd.patch
+    geometry-26kernel.patch
+    print_func.patch
+    mprotect.patch
+    savedefault.patch
+    find-grub-dir.patch
+    intelmac.patch
+    crossreference_manpages.patch
+    ext3_256byte_inode.patch
     # Breaks on NixOS.
-	#use_grub-probe_in_grub-install.patch
-	objcopy-absolute.patch
-	no-reorder-functions.patch
+    #use_grub-probe_in_grub-install.patch
+    objcopy-absolute.patch
+    no-reorder-functions.patch
 
-	# We aren't building amd64 binaries, see #244498
-	#fix_amd64_compile.patch
-	modern-automake.patch
-	no-combine-stack-adjustments.patch
-	no-pie.patch
+    # We aren't building amd64 binaries, see #244498
+    #fix_amd64_compile.patch
+    modern-automake.patch
+    no-combine-stack-adjustments.patch
+    no-pie.patch
 )
 
 # Revision mapping to current tip of the 0.97-73 branch.
@@ -63,8 +63,8 @@ in
 EOF
 
 for PATCH in "${SERIES[@]}"; do
-	URL="$prefix/$PATCH"
-	HASH="$(nix-prefetch-url "$URL")"
-	echo "{ url = \"\${prefix}/$PATCH\"; sha256 = \"$HASH\"; }" >> "$FILE"
+    URL="$prefix/$PATCH"
+    HASH="$(nix-prefetch-url "$URL")"
+    echo "{ url = \"\${prefix}/$PATCH\"; sha256 = \"$HASH\"; }" >> "$FILE"
 done
 echo "]" >> "$FILE"
diff --git a/pkgs/tools/misc/gwe/default.nix b/pkgs/tools/misc/gwe/default.nix
index 2eeb2f0d2c546..79c590fe6b305 100644
--- a/pkgs/tools/misc/gwe/default.nix
+++ b/pkgs/tools/misc/gwe/default.nix
@@ -32,13 +32,13 @@ let
  ]);
 in stdenv.mkDerivation rec {
   pname = "gwe";
-  version = "0.15.3";
+  version = "0.15.4";
 
   src = fetchFromGitLab {
     owner = "leinardi";
     repo = pname;
     rev = version;
-    sha256 = "1znd2g02j0klg8w6cgwvaxc8anan6sidadknl0vh9jxmzz75xp9z";
+    sha256 = "sha256-7TVy9k61YA8tDXR2PC7TzwxKykWjnw8hQzgTQQIC0Zg=";
   };
 
   prePatch = ''
diff --git a/pkgs/tools/misc/hdf5/default.nix b/pkgs/tools/misc/hdf5/default.nix
index 43c156de419e8..5671e73c85f81 100644
--- a/pkgs/tools/misc/hdf5/default.nix
+++ b/pkgs/tools/misc/hdf5/default.nix
@@ -67,6 +67,13 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./bin-mv.patch
+
+    # Avoid non-determinism in autoconf build system:
+    # - build time
+    # - build user
+    # - uname -a (kernel version)
+    # Can be dropped once/if we switch to cmake.
+    ./hdf5-more-determinism.patch
   ];
 
   postInstall = ''
diff --git a/pkgs/tools/misc/hdf5/hdf5-more-determinism.patch b/pkgs/tools/misc/hdf5/hdf5-more-determinism.patch
new file mode 100644
index 0000000000000..9a9bfe24af7b5
--- /dev/null
+++ b/pkgs/tools/misc/hdf5/hdf5-more-determinism.patch
@@ -0,0 +1,15 @@
+diff --git a/src/libhdf5.settings.in b/src/libhdf5.settings.in
+index a4d4af6..70f1909 100644
+--- a/src/libhdf5.settings.in
++++ b/src/libhdf5.settings.in
+@@ -4,10 +4,7 @@
+ General Information:
+ -------------------
+                    HDF5 Version: @H5_VERSION@
+-                  Configured on: @CONFIG_DATE@
+-                  Configured by: @CONFIG_USER@
+                     Host system: @host_cpu@-@host_vendor@-@host_os@
+-              Uname information: @UNAME_INFO@
+                        Byte sex: @BYTESEX@
+              Installation point: @prefix@
+ 
diff --git a/pkgs/tools/misc/heimdall/default.nix b/pkgs/tools/misc/heimdall/default.nix
index 3dcefa8b2d0f3..19bc90779d833 100644
--- a/pkgs/tools/misc/heimdall/default.nix
+++ b/pkgs/tools/misc/heimdall/default.nix
@@ -2,10 +2,9 @@
 , enableGUI ? false, qtbase ? null
 }:
 
-let version = "1.4.2"; in
-
-mkDerivation {
-  name = "heimdall-${if enableGUI then "gui-" else ""}${version}";
+mkDerivation rec {
+  pname = "heimdall${lib.optionalString enableGUI "-gui"}";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner  = "Benjamin-Dobell";
@@ -15,7 +14,8 @@ mkDerivation {
   };
 
   buildInputs = [
-    zlib libusb1
+    zlib
+    libusb1
   ] ++ lib.optional enableGUI qtbase;
   nativeBuildInputs = [ cmake ];
 
@@ -44,10 +44,10 @@ mkDerivation {
   '';
 
   meta = with lib; {
-    homepage    = "http://www.glassechidna.com.au/products/heimdall/";
+    homepage = "http://www.glassechidna.com.au/products/heimdall/";
     description = "A cross-platform tool suite to flash firmware onto Samsung Galaxy S devices";
-    license     = licenses.mit;
+    license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
-    platforms   = platforms.unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/jdupes/default.nix b/pkgs/tools/misc/jdupes/default.nix
index 3c08371414cd5..75a3ef92645d6 100644
--- a/pkgs/tools/misc/jdupes/default.nix
+++ b/pkgs/tools/misc/jdupes/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jdupes";
-  version = "1.20.1";
+  version = "1.20.2";
 
   src = fetchFromGitHub {
     owner = "jbruchon";
     repo  = "jdupes";
     rev   = "v${version}";
-    sha256 = "sha256-qGYMLLksbC6bKbK+iRkZ2eSNU5J/wEvTfzT0IkKukvA=";
+    sha256 = "sha256-3hKO+hNwYiJZ9Wn53vM7DHZmtvDhtgtSbW7bCMCT7s0=";
     # Unicode file names lead to different checksums on HFS+ vs. other
     # filesystems because of unicode normalisation. The testdir
     # directories have such files and will be removed.
diff --git a/pkgs/development/python-modules/jsonwatch/default.nix b/pkgs/tools/misc/jsonwatch/default.nix
index aec66d4ec4b77..3fe4f5008fd69 100644
--- a/pkgs/development/python-modules/jsonwatch/default.nix
+++ b/pkgs/tools/misc/jsonwatch/default.nix
@@ -1,37 +1,38 @@
 { lib
-, buildPythonPackage
+, stdenv
 , fetchFromGitHub
-, six
-, isPyPy
+, rustPlatform
+, Security
 }:
 
-buildPythonPackage rec {
+rustPlatform.buildRustPackage rec {
   pname = "jsonwatch";
-  version = "0.2.0";
-  disabled = isPyPy; # doesn't find setuptools
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "dbohdan";
-    repo = "jsonwatch";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-yLN6jOxAz+B7zvV3tGT6Nxi17v9ZOtWpbtSi0o1h48U=";
+    sha256 = "sha256-TGW04P8t0mAXza7I7qp6QRXA/MDE3m1dlRC7bMf2dSk=";
   };
 
-  propagatedBuildInputs = [ six ];
+  cargoSha256 = "sha256-Gjb7v3kz11iOml3Ykxhy43KNxzaprgMbb5DpPNChLTc=";
+
+  buildInputs = lib.optional stdenv.isDarwin [
+    Security
+  ];
 
   meta = with lib; {
     description = "Like watch -d but for JSON";
     longDescription = ''
       jsonwatch is a command line utility with which you can track
       changes in JSON data delivered by a shell command or a web
-      (HTTP/HTTPS) API.  jsonwatch requests data from the designated
+      (HTTP/HTTPS) API. jsonwatch requests data from the designated
       source repeatedly at a set interval and displays the
-      differences when the data changes. It is similar in its
-      behavior to how watch(1) with the -d switch works for
-      plain-text data.
+      differences when the data changes.
     '';
     homepage = "https://github.com/dbohdan/jsonwatch";
     license = licenses.mit;
-    platforms = platforms.all;
+    maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/tools/misc/jugglinglab/default.nix b/pkgs/tools/misc/jugglinglab/default.nix
index f9038da04b577..7b52091104c76 100644
--- a/pkgs/tools/misc/jugglinglab/default.nix
+++ b/pkgs/tools/misc/jugglinglab/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, jre, makeWrapper, ant, jdk }:
 stdenv.mkDerivation rec {
   version = "1.2.1";
-  name = "jugglinglab";
+  pname = "jugglinglab";
   src = fetchFromGitHub {
     owner = "jkboyce";
     repo = "jugglinglab";
diff --git a/pkgs/tools/misc/kak-lsp/default.nix b/pkgs/tools/misc/kak-lsp/default.nix
index 9ba28dd3cf1a0..05abfeaeebad8 100644
--- a/pkgs/tools/misc/kak-lsp/default.nix
+++ b/pkgs/tools/misc/kak-lsp/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kak-lsp";
-  version = "11.0.1";
+  version = "11.1.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-rSUXMQF4V+ToYw3RIfEZd2AfAiHoRPDC3DZBAg2zeKo=";
+    sha256 = "sha256-li7djFP5luEnbKUF+rynEiQbx704KNUJw8/AqwxPRnI=";
   };
 
-  cargoSha256 = "sha256-vcq+WVHmGFrZFLzNWyHU7qN6cDSKP9pAzxZNs2+8jR8=";
+  cargoSha256 = "sha256-X1Qe86U4zlN1umRQOiRPRcbgCayqF6GILSt/nM8m1Yg=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
diff --git a/pkgs/tools/misc/kepubify/default.nix b/pkgs/tools/misc/kepubify/default.nix
index a53ff544ad19c..3a9c83a8dad3e 100644
--- a/pkgs/tools/misc/kepubify/default.nix
+++ b/pkgs/tools/misc/kepubify/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kepubify";
-  version = "4.0.1";
+  version = "4.0.3";
 
   src = fetchFromGitHub {
     owner = "pgaskin";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ZQY5U9uMCwsMl3Ds3bscPYmTt8JdWehOoowb+AmJSbQ=";
+    sha256 = "sha256-pe4jNBoPjrkvsdeFjH4TNwacp0qkf+v+SjIAZqV1GWE=";
   };
 
-  vendorSha256 = "sha256-DcE2MCbH5FIU1UoIF8OF17TfsWS5eQhHnWDEAxy8X6c=";
+  vendorSha256 = "sha256-eiFG6lgsY5hf+XT3Kf5uA4Ai8vBbPsh1T4ObV+rj30Y=";
 
   # remove when built with >= go 1.17
   tags = [ "zip117" ];
diff --git a/pkgs/tools/misc/keymapviz/default.nix b/pkgs/tools/misc/keymapviz/default.nix
index 14c56d48dfc90..c31fbd6e32567 100644
--- a/pkgs/tools/misc/keymapviz/default.nix
+++ b/pkgs/tools/misc/keymapviz/default.nix
@@ -17,6 +17,6 @@ python3.pkgs.buildPythonApplication rec {
     description = "A qmk keymap.c visualizer";
     homepage = "https://github.com/yskoht/keymapviz";
     license = licenses.mit;
-    maintainers = with maintainers; [ legendofmiracles ];
+    maintainers = with maintainers; [ lom ];
   };
 }
diff --git a/pkgs/tools/misc/ksnip/default.nix b/pkgs/tools/misc/ksnip/default.nix
index c93016fe55c77..788f4b75b4aae 100644
--- a/pkgs/tools/misc/ksnip/default.nix
+++ b/pkgs/tools/misc/ksnip/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ksnip";
-  version = "1.9.1";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
     owner = "ksnip";
     repo = "ksnip";
     rev = "v${version}";
-    sha256 = "1izsk586n9fbm0di0hj6pxs7r0a6w554gpad1ghf247icr0pfc1l";
+    sha256 = "sha256-4EIb1cHmScnFN7IralBR5hnvPBCHNQRcTWEWYezoOcQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix b/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix
index 48dab31e9a80c..5d330ee3cacc8 100644
--- a/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix
+++ b/pkgs/tools/misc/libbitcoin/libbitcoin-network.nix
@@ -28,7 +28,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Bitcoin P2P Network Library";
-    homepage = "https://libbitcoin.org/";
+    homepage = "https://libbitcoin.info/";
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ asymmetric ];
 
diff --git a/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix b/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix
index 1d8af4a336b3d..06f6546e964d8 100644
--- a/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix
+++ b/pkgs/tools/misc/libbitcoin/libbitcoin-protocol.nix
@@ -29,7 +29,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "Bitcoin Blockchain Query Protocol";
-    homepage = "https://libbitcoin.org/";
+    homepage = "https://libbitcoin.info/";
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ asymmetric ];
 
diff --git a/pkgs/tools/misc/libbitcoin/libbitcoin.nix b/pkgs/tools/misc/libbitcoin/libbitcoin.nix
index b4f91bc936d24..65bd52a030293 100644
--- a/pkgs/tools/misc/libbitcoin/libbitcoin.nix
+++ b/pkgs/tools/misc/libbitcoin/libbitcoin.nix
@@ -29,7 +29,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     description = "C++ library for building bitcoin applications";
-    homepage = "https://libbitcoin.org/";
+    homepage = "https://libbitcoin.info/";
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ ];
 
diff --git a/pkgs/tools/misc/libcpuid/default.nix b/pkgs/tools/misc/libcpuid/default.nix
index 8c4cb5c1a7593..5abe5673bf298 100644
--- a/pkgs/tools/misc/libcpuid/default.nix
+++ b/pkgs/tools/misc/libcpuid/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "libcpuid";
@@ -14,6 +14,12 @@ stdenv.mkDerivation rec {
   patches = [
     # Work around https://github.com/anrieff/libcpuid/pull/102.
     ./stdint.patch
+    # Fixes cross-compilation to NetBSD, remove me for libcpuid > 0.5.1
+    (fetchpatch {
+      name = "use-popcount-from-libc.patch";
+      url = "https://github.com/anrieff/libcpuid/commit/1acaf9980b55ae180cc08db218b9face28202519.patch";
+      sha256 = "0lvsv9baq0sria1f1ncn1b2783js29lfs5fv8milp54pg1wd5b7q";
+    })
   ];
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/misc/lilo/default.nix b/pkgs/tools/misc/lilo/default.nix
index 2babcb2bedd71..bba9db383907f 100644
--- a/pkgs/tools/misc/lilo/default.nix
+++ b/pkgs/tools/misc/lilo/default.nix
@@ -8,7 +8,12 @@ stdenv.mkDerivation rec {
     hash = "sha256-4VjxneRWDJNevgUHwht5v/F2GLkjDYB2/oxf/5/b1bE=";
   };
   nativeBuildInputs = [ dev86 sharutils ];
-  DESTDIR = placeholder "out";
+  makeFlags = [
+    "DESTDIR=${placeholder "out"}"
+    "SBIN_DIR=/bin"
+    "USRSBIN_DIR=/bin"
+    "MAN_DIR=/share/man"
+  ];
 
   meta = with lib; {
     homepage = "https://www.joonet.de/lilo/";
diff --git a/pkgs/tools/misc/loadlibrary/default.nix b/pkgs/tools/misc/loadlibrary/default.nix
index e6d19fc6d4060..a299a85b6b822 100644
--- a/pkgs/tools/misc/loadlibrary/default.nix
+++ b/pkgs/tools/misc/loadlibrary/default.nix
@@ -4,7 +4,7 @@
 # support for 64-bit yet: it requires libc6-dev:i386, libreadline-dev:i386.
 
 stdenv_32bit.mkDerivation rec {
-  name = "loadlibrary-${version}";
+  pname = "loadlibrary";
   version = "20170525-${lib.strings.substring 0 7 rev}";
   rev = "721b084c088d779075405b7f20c77c2578e2a961";
   src = fetchFromGitHub {
diff --git a/pkgs/tools/misc/logstash/6.x.nix b/pkgs/tools/misc/logstash/6.x.nix
index 1c7ab29cbc863..0b3e17818dcd7 100644
--- a/pkgs/tools/misc/logstash/6.x.nix
+++ b/pkgs/tools/misc/logstash/6.x.nix
@@ -11,14 +11,14 @@ with lib;
 
 let this = stdenv.mkDerivation rec {
   version = elk6Version;
-  name = "logstash-${optionalString (!enableUnfree) "oss-"}${version}";
+  pname = "logstash${optionalString (!enableUnfree) "-oss"}";
 
   src = fetchurl {
-    url = "https://artifacts.elastic.co/downloads/logstash/${name}.tar.gz";
+    url = "https://artifacts.elastic.co/downloads/logstash/${pname}-${version}.tar.gz";
     sha256 =
       if enableUnfree
-      then "00pwi7clgdflzzg15bh3y30gzikvvy7p5fl88fww7xhhy47q8053"
-      else "0spxgqsyh72n0l0xh6rljp0lbqz46xmr02sqz25ybycr4qkxdhgk";
+      then "0hij1byw5b3xmk3vshr9p7gxwbjrywr7ylps05ydc2dmnz8q2a79"
+      else "1fa236pvhj7spys54nqi3k64rwzf6zi6gaccmqg4p4sh92jzsybv";
   };
 
   dontBuild         = true;
diff --git a/pkgs/tools/misc/logstash/7.x.nix b/pkgs/tools/misc/logstash/7.x.nix
index 1e69fbc976d99..636c380817ce3 100644
--- a/pkgs/tools/misc/logstash/7.x.nix
+++ b/pkgs/tools/misc/logstash/7.x.nix
@@ -17,14 +17,14 @@ let
   shas =
     if enableUnfree
     then {
-      x86_64-linux  = "0yjaki7gjffrz86hvqgn1gzhd9dc9llcj50g2x1sgpyn88zk0z0p";
-      x86_64-darwin = "0dqm66c89w1nvmbwqzphlqmf7avrycgv1nwd5b0k1z168fj0c3zm";
-      aarch64-linux = "11hjhyb48mjagmvqyxb780n57kr619h6p4adl2vs1zm97g9gslx8";
+      x86_64-linux  = "1vm53alq9q1qy2jcsjg9z339xrkac5r9qqpdafp53ny4zsv1n7vj";
+      x86_64-darwin = "0hhjyl04h3gd66rdk22272rj419br4v2i59lyrmaj6hmnsqbv968";
+      aarch64-linux = "0yjaki7gjffrz86hvqgn1gzhd9dc9llcj50g2x1sgpyn88zk0z0p";
     }
     else {
-      x86_64-linux  = "14b1649avjcalcsi0ffkgznq6d93qdk6m3j0i73mwfqka5d3dvy3";
-      x86_64-darwin = "0ypgdfklr5rxvsnc3czh231pa1z2h70366j1c6q5g64b3xnxpphs";
-      aarch64-linux = "01ainayr8fwwfix7dmxfhhmb23ji65dn4lbjwnj2w0pl0ym9h9w2";
+      x86_64-linux  = "1f3659vcgczm7v03q3fvsmp1ndp6wm3i7r2b2vbl4xq7hf9v7azk";
+      x86_64-darwin = "10zw9qc0lc0x9in0nkxc1aiazhyd69l8sya2ni46ivyyjwf0sqsn";
+      aarch64-linux = "1czhgmky2zf3mqykn5ww4257yfhd36mi4x6dq569ymly83pivf8v";
     };
   this = stdenv.mkDerivation rec {
     version = elk7Version;
diff --git a/pkgs/tools/misc/macchina/default.nix b/pkgs/tools/misc/macchina/default.nix
index ad6dc1e55dd39..2dc6ba9f89e4c 100644
--- a/pkgs/tools/misc/macchina/default.nix
+++ b/pkgs/tools/misc/macchina/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "macchina";
-  version = "5.0.2";
+  version = "5.0.5";
 
   src = fetchFromGitHub {
     owner = "Macchina-CLI";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9T1baNmgzB3RBlFaaIQ47Yc9gJAgtS42NNEY1Tk/hBs=";
+    sha256 = "sha256-si+5LvRUIWp48vsD1WxGWl2O/2bpaBX+ArkZPbBqtME=";
   };
 
-  cargoSha256 = "sha256-A5C/B9R58p/DR6cONIRTSkmtXEOobtYHGBHxjdwagRA=";
+  cargoSha256 = "sha256-CN7PxPUkfyDGxVaf879Sp6w0UbqwL/is15xcfH2fm1w=";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Foundation ];
diff --git a/pkgs/tools/misc/man-db/default.nix b/pkgs/tools/misc/man-db/default.nix
index f1739cbd50dd2..d495c912f5996 100644
--- a/pkgs/tools/misc/man-db/default.nix
+++ b/pkgs/tools/misc/man-db/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, libpipeline, db, groff, libiconv, makeWrapper, buildPackages }:
+{ lib, stdenv, fetchurl, pkg-config, libpipeline, db, groff, libiconv, makeWrapper, buildPackages, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "man-db";
@@ -73,6 +73,10 @@ stdenv.mkDerivation rec {
 
   doCheck = !stdenv.hostPlatform.isMusl /* iconv binary */ && !stdenv.hostPlatform.isDarwin;
 
+  passthru.tests = {
+    nixos = nixosTests.man;
+  };
+
   meta = with lib; {
     homepage = "http://man-db.nongnu.org";
     description = "An implementation of the standard Unix documentation system accessed using the man command";
diff --git a/pkgs/tools/misc/mandoc/default.nix b/pkgs/tools/misc/mandoc/default.nix
index db0789c112671..2d974b8af63dd 100644
--- a/pkgs/tools/misc/mandoc/default.nix
+++ b/pkgs/tools/misc/mandoc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, zlib, perl }:
+{ lib, stdenv, fetchurl, zlib, perl, nixosTests }:
 
 let
   # check if we can execute binaries for the host platform on the build platform
@@ -42,6 +42,8 @@ stdenv.mkDerivation rec {
     SBINDIR="$PREFIX/bin"
     CC=${stdenv.cc.targetPrefix}cc
     AR=${stdenv.cc.bintools.targetPrefix}ar
+    # Allow makewhatis(8) to follow symlinks from a manpath to the nix store
+    READ_ALLOWED_PATH=${builtins.storeDir}
     # Bypass the locale(1)-based check for UTF-8 support since it causes trouble:
     # * We only have meaningful locale(1) implementations for glibc and macOS
     # * NetBSD's locale(1) (used for macOS) depends on mandoc
@@ -60,6 +62,10 @@ stdenv.mkDerivation rec {
   checkInputs = [ perl ];
   preCheck = "patchShebangs --build regress/regress.pl";
 
+  passthru.tests = {
+    nixos = nixosTests.man;
+  };
+
   meta = with lib; {
     homepage = "https://mandoc.bsd.lv/";
     description = "suite of tools compiling mdoc and man";
diff --git a/pkgs/tools/misc/mbuffer/default.nix b/pkgs/tools/misc/mbuffer/default.nix
index 24ac8e198077e..2a300302f6b20 100644
--- a/pkgs/tools/misc/mbuffer/default.nix
+++ b/pkgs/tools/misc/mbuffer/default.nix
@@ -1,32 +1,40 @@
-{ lib, stdenv, fetchurl,
-  openssl,
- } :
+{ lib
+, stdenv
+, fetchurl
+, openssl
+, which
+}:
 
 stdenv.mkDerivation rec {
-  version = "20210328";
   pname = "mbuffer";
+  version = "20211018";
 
   src = fetchurl {
     url = "http://www.maier-komor.de/software/mbuffer/mbuffer-${version}.tgz";
-    sha256 = "sha256-UbW42EiJkaVf4d/OkBMPnke8HOKGugO09ijAS3hP3F0=";
+    sha256 = "sha256-4kDB5OSsFMKL6MZg7EfUTOFrHo7JKqkHrRMAT/1dtuM=";
   };
 
-  buildInputs = [ openssl ];
+  buildInputs = [
+    openssl
+    which
+  ];
 
   # The mbuffer configure scripts fails to recognize the correct
   # objdump binary during cross-building for foreign platforms.
   # The correct objdump is exposed via the environment variable
   # $OBJDUMP, which should be used in such cases.
   preConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
-    substituteInPlace configure --replace "OBJDUMP=$ac_cv_path_OBJDUMP" 'OBJDUMP=''${OBJDUMP}'
+    substituteInPlace configure \
+      --replace "OBJDUMP=$ac_cv_path_OBJDUMP" 'OBJDUMP=''${OBJDUMP}'
   '';
+
   doCheck = true;
 
-  meta = {
-    homepage = "https://www.maier-komor.de/mbuffer.html";
+  meta = with lib; {
     description  = "A tool for buffering data streams with a large set of unique features";
-    license = lib.licenses.gpl3Only;
-    maintainers = with lib.maintainers; [ tokudan ];
-    platforms = lib.platforms.linux; # Maybe other non-darwin Unix
+    homepage = "https://www.maier-komor.de/mbuffer.html";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ tokudan ];
+    platforms = platforms.linux; # Maybe other non-darwin Unix
   };
 }
diff --git a/pkgs/tools/misc/mc/default.nix b/pkgs/tools/misc/mc/default.nix
index b9ff4ad33d2c1..be24d3e2c0b71 100644
--- a/pkgs/tools/misc/mc/default.nix
+++ b/pkgs/tools/misc/mc/default.nix
@@ -17,6 +17,9 @@
 , coreutils
 , autoreconfHook
 , autoSignDarwinBinariesHook
+
+# updater only
+, writeScript
 }:
 
 stdenv.mkDerivation rec {
@@ -69,6 +72,17 @@ stdenv.mkDerivation rec {
       $out/bin/mc
   '';
 
+  passthru.updateScript = writeScript "update-mc" ''
+   #!/usr/bin/env nix-shell
+   #!nix-shell -i bash -p curl pcre common-updater-scripts
+
+   set -eu -o pipefail
+
+   # Expect the text in format of "Current version is: 4.8.27; ...".
+   new_version="$(curl -s https://midnight-commander.org/ | pcregrep -o1 'Current version is: (([0-9]+\.?)+);')"
+   update-source-version mc "$new_version"
+ '';
+
   meta = with lib; {
     description = "File Manager and User Shell for the GNU Project";
     downloadPage = "https://www.midnight-commander.org/downloads/";
diff --git a/pkgs/tools/misc/mcfly/default.nix b/pkgs/tools/misc/mcfly/default.nix
index e613e4bb3ea17..612d35ffeb38f 100644
--- a/pkgs/tools/misc/mcfly/default.nix
+++ b/pkgs/tools/misc/mcfly/default.nix
@@ -2,22 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mcfly";
-  version = "0.5.9";
+  version = "0.5.11";
 
   src = fetchFromGitHub {
     owner = "cantino";
     repo = "mcfly";
     rev = "v${version}";
-    sha256 = "0i3qjgq1b8h3bzc7rxa60kq1yc2im9m6dgzrvial086a1zk8s81r";
+    sha256 = "sha256-JyNrEIgvL4TQHpAEefDnLirXplGjJcUqsmALKY44VuM=";
   };
 
   postPatch = ''
-    substituteInPlace mcfly.bash --replace '$(which mcfly)' '${placeholder "out"}/bin/mcfly'
-    substituteInPlace mcfly.zsh  --replace '$(which mcfly)' '${placeholder "out"}/bin/mcfly'
-    substituteInPlace mcfly.fish --replace '(which mcfly)'  '${placeholder "out"}/bin/mcfly'
+    substituteInPlace mcfly.bash --replace '$(command which mcfly)' '${placeholder "out"}/bin/mcfly'
+    substituteInPlace mcfly.zsh  --replace '$(command which mcfly)' '${placeholder "out"}/bin/mcfly'
+    substituteInPlace mcfly.fish --replace '(command which mcfly)'  '${placeholder "out"}/bin/mcfly'
   '';
 
-  cargoSha256 = "084v4fsdi25ahz068ssq29z7d5d3k3jh3s8b07irwybdsy18c629";
+  cargoSha256 = "sha256-7wyRHViPL+Hb9Rwrb1dAmmz+faOl9ddNlTdQ/XvTWE8=";
 
   meta = with lib; {
     homepage = "https://github.com/cantino/mcfly";
diff --git a/pkgs/tools/misc/mdbtools/default.nix b/pkgs/tools/misc/mdbtools/default.nix
index 7eb57863575f1..b03ac6c785fe2 100644
--- a/pkgs/tools/misc/mdbtools/default.nix
+++ b/pkgs/tools/misc/mdbtools/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mdbtools";
-  version = "0.9.4";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "mdbtools";
     repo = "mdbtools";
     rev = "v${version}";
-    sha256 = "sha256-Hnub8h0a3qx5cxVn1tp/IVbz9aORjGGWizD3Z4rPl2s=";
+    sha256 = "sha256-e9rgTWu8cwuccpp/wAfas1ZeQPTpGcgE6YjLz7KRnhw=";
   };
 
   configureFlags = [ "--disable-scrollkeeper" ];
diff --git a/pkgs/tools/misc/me_cleaner/default.nix b/pkgs/tools/misc/me_cleaner/default.nix
index f5e8f15247372..4872c349b20da 100644
--- a/pkgs/tools/misc/me_cleaner/default.nix
+++ b/pkgs/tools/misc/me_cleaner/default.nix
@@ -1,6 +1,6 @@
-{ lib, python2, fetchFromGitHub }:
+{ lib, python3, fetchFromGitHub }:
 
-python2.pkgs.buildPythonPackage rec {
+python3.pkgs.buildPythonPackage rec {
   pname = "me_cleaner";
   version = "1.2";
 
diff --git a/pkgs/tools/misc/memtest86-efi/default.nix b/pkgs/tools/misc/memtest86-efi/default.nix
index 125f8f35acca7..264fe013b27a7 100644
--- a/pkgs/tools/misc/memtest86-efi/default.nix
+++ b/pkgs/tools/misc/memtest86-efi/default.nix
@@ -8,23 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "memtest86-efi";
-  version = "8.4";
+  version = "9.3.1000";
 
   src = fetchzip {
-    # TODO: We're using the previous version of memtest86 because the
-    # company developing memtest86 has stopped providing a versioned download
-    # link for the latest version:
-    #
-    # https://www.passmark.com/forum/memtest86/44494-version-8-1-distribution-file-is-not-versioned?p=44505#post44505
-    #
-    # However, versioned links for the previous version are available, so that
-    # is what is being used.
-    #
-    # It does look like redistribution is okay, so if we had somewhere to host
-    # binaries that we make sure to version, then we could probably keep up
-    # with the latest versions released by the company.
-    url = "https://www.memtest86.com/downloads/memtest86-${version}-usb.zip";
-    sha256 = "sha256-jh4FKCYZbOQhRv6B7N8Hmw6RQCQvbBGaGFTMLwM1nk8=";
+    # We're using the Internet Archive Wayback Machine because the company developing MemTest86 has stopped providing a versioned download link for the latest version:
+    # https://forums.passmark.com/memtest86/44494-version-8-1-distribution-file-is-not-versioned
+    url = "https://web.archive.org/web/20211111004725/https://www.memtest86.com/downloads/memtest86-usb.zip";
+    sha256 = "sha256-GJdZCUFw1uX4HcaaAy5QqDGNqHTFtrqla13wF7xCAaM=";
     stripRoot = false;
   };
 
@@ -57,18 +47,16 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "http://memtest86.com/";
+    homepage = "https://www.memtest86.com/";
     downloadPage = "https://www.memtest86.com/download.htm";
+    changelog = "https://www.memtest86.com/whats-new.html";
     description = "A tool to detect memory errors, to be run from a bootloader";
     longDescription = ''
       A UEFI app that is able to detect errors in RAM.  It can be run from a
       bootloader.  Released under a proprietary freeware license.
     '';
-    # The Memtest86 License for the Free Edition states,
-    # "MemTest86 Free Edition is free to download with no restrictions on usage".
-    # However the source code for Memtest86 does not appear to be available.
-    #
-    # https://www.memtest86.com/license.htm
+    # MemTest86 Free Edition is free to download with no restrictions on usage. However, the source code is not available.
+    # https://www.memtest86.com/tech_license-information.html
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ cdepillabout ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/misc/miniserve/default.nix b/pkgs/tools/misc/miniserve/default.nix
index 480201b887925..3f4dbb01e5a95 100644
--- a/pkgs/tools/misc/miniserve/default.nix
+++ b/pkgs/tools/misc/miniserve/default.nix
@@ -41,7 +41,7 @@ rustPlatform.buildRustPackage rec {
     description = "For when you really just want to serve some files over HTTP right now!";
     homepage = "https://github.com/svenstaro/miniserve";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ zowoq ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/mktorrent/default.nix b/pkgs/tools/misc/mktorrent/default.nix
index 194a0c62721d1..089caac7884a5 100644
--- a/pkgs/tools/misc/mktorrent/default.nix
+++ b/pkgs/tools/misc/mktorrent/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "1.1";
 
   src = fetchFromGitHub {
-    owner = "Rudde";
+    owner = "pobrn";
     repo = "mktorrent";
     rev = "v${version}";
     sha256 = "17pdc5mandl739f8q26n5is8ga56s83aqcrwhlnnplbxwx2inidr";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ openssl ];
 
   meta = {
-    homepage = "http://mktorrent.sourceforge.net/";
+    homepage = "https://github.com/pobrn/mktorrent/wiki";
     license = lib.licenses.gpl2Plus;
     description = "Command line utility to create BitTorrent metainfo files";
     maintainers = with lib.maintainers; [Profpatsch];
diff --git a/pkgs/tools/misc/mmctl/default.nix b/pkgs/tools/misc/mmctl/default.nix
new file mode 100644
index 0000000000000..50648716e1c38
--- /dev/null
+++ b/pkgs/tools/misc/mmctl/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+buildGoModule rec {
+  pname = "mmctl";
+  version = "6.2.1";
+
+  src = fetchFromGitHub {
+    owner = "mattermost";
+    repo = "mmctl";
+    rev = "v${version}";
+    sha256 = "sha256-DhkBiczQ+4iwoufHMuy6Fn3a4q7gvkKGXTfLcUCCKis=";
+  };
+
+  vendorSha256 = null;
+
+  checkPhase = "make test";
+
+  meta = with lib; {
+    description = "A remote CLI tool for Mattermost";
+    homepage = "https://github.com/mattermost/mmctl";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ppom ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/tools/misc/mongodb-compass/default.nix b/pkgs/tools/misc/mongodb-compass/default.nix
index e11d0899df4ed..c243e55841252 100644
--- a/pkgs/tools/misc/mongodb-compass/default.nix
+++ b/pkgs/tools/misc/mongodb-compass/default.nix
@@ -34,7 +34,7 @@ xorg,
 }:
 
 let
-  version = "1.29.4";
+  version = "1.29.6";
 
   rpath = lib.makeLibraryPath [
     alsa-lib
@@ -84,7 +84,7 @@ let
     if stdenv.hostPlatform.system == "x86_64-linux" then
       fetchurl {
         url = "https://downloads.mongodb.com/compass/mongodb-compass_${version}_amd64.deb";
-        sha256 = "sha256-CqC6BrRhMfjxamSwC6ub1u3+FtDuIq3/OMNdUZgpCAQ=";
+        sha256 = "sha256-yLbuHvZrI8C4X/burIo5cI+H8KEv++4FyRgtISpmPxE=";
       }
     else
       throw "MongoDB compass is not supported on ${stdenv.hostPlatform.system}";
diff --git a/pkgs/tools/misc/moreutils/default.nix b/pkgs/tools/misc/moreutils/default.nix
index 5a1452007af21..d64b690b7636c 100644
--- a/pkgs/tools/misc/moreutils/default.nix
+++ b/pkgs/tools/misc/moreutils/default.nix
@@ -3,12 +3,12 @@
 with lib;
 stdenv.mkDerivation rec {
   pname = "moreutils";
-  version = "0.65";
+  version = "0.67";
 
   src = fetchgit {
     url = "git://git.joeyh.name/moreutils";
     rev = "refs/tags/${version}";
-    sha256 = "17r80xs756c5vv4ghh901c8abraqqfp7ncagv9ys4il3jngfqbrb";
+    sha256 = "sha256-8Mu7L3KqOsW9OmidMkWB+q9TofHd1P1sbsNrtE4MUoA=";
   };
 
   preBuild = ''
diff --git a/pkgs/tools/misc/mstflint/default.nix b/pkgs/tools/misc/mstflint/default.nix
index 70bace74b1e9a..51fd22b0c35e7 100644
--- a/pkgs/tools/misc/mstflint/default.nix
+++ b/pkgs/tools/misc/mstflint/default.nix
@@ -1,18 +1,25 @@
-{ lib, stdenv, autoreconfHook, fetchFromGitHub, zlib, libibmad, openssl }:
+{ lib
+, stdenv
+, fetchurl
+, libibmad
+, openssl
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "mstflint";
-  version = "4.14.0-3";
+  version = "4.17.0-1";
 
-  src = fetchFromGitHub {
-    owner = "Mellanox";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0zy9npyzf7dkxlfl9mx6997aa61mk23ixpjb01ckb1wvav5k6z82";
+  src = fetchurl {
+    url = "https://github.com/Mellanox/mstflint/releases/download/v${version}/mstflint-${version}.tar.gz";
+    sha256 = "030vpiv44sxmjf0dng91ziq1cggwj33yp0l4xc6cdhnrv2prjs7y";
   };
 
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ zlib libibmad openssl ];
+  buildInputs = [
+    libibmad
+    openssl
+    zlib
+  ];
 
   hardeningDisable = [ "format" ];
 
diff --git a/pkgs/tools/misc/multitail/default.nix b/pkgs/tools/misc/multitail/default.nix
index 3304d3c191202..b551d16480d44 100644
--- a/pkgs/tools/misc/multitail/default.nix
+++ b/pkgs/tools/misc/multitail/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, ncurses, pkg-config }:
+{ lib, stdenv, fetchurl, fetchpatch, ncurses, pkg-config }:
 
 stdenv.mkDerivation rec {
   version = "6.5.0";
@@ -9,6 +9,16 @@ stdenv.mkDerivation rec {
     sha256 = "1vd9vdxyxsccl64ilx542ya5vlw2bpg6gnkq1x8cfqy6vxvmx7dj";
   };
 
+  patches = [
+    # Fix pending upstream inclusion for ncurses-6.3:
+    #  https://github.com/halturin/multitail/pull/4
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/halturin/multitail/commit/d7d10f3bce261074c116eba9f924b61f43777662.patch";
+      sha256 = "0kyp9l6v92mz6d3h34j11gs5kh3sf2nv76mygqfxb800vd8r0cgg";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ ncurses ];
@@ -21,7 +31,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    homepage = "http://www.vanheusden.com/multitail/";
+    homepage = "https://github.com/halturin/multitail";
     description = "tail on Steroids";
     maintainers = with lib.maintainers; [ matthiasbeyer ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/tools/misc/mysqltuner/default.nix b/pkgs/tools/misc/mysqltuner/default.nix
index 2acbfd41adfe4..f4dbf2cef6e12 100644
--- a/pkgs/tools/misc/mysqltuner/default.nix
+++ b/pkgs/tools/misc/mysqltuner/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mysqltuner";
-  version = "1.7.21";
+  version = "1.8.3";
 
   src = fetchFromGitHub {
     owner = "major";
     repo = "MySQLTuner-perl";
     rev = version;
-    sha256 = "sha256-Yv1XjD8sZcmGr2SVD6TEElUH7vspJ61WwQwfXLOrao0=";
+    sha256 = "sha256-ezF0zjQB/KWD5rUcbXx2uwiNLsIJ7ZKMoqkclP7oc98=";
   };
 
   postPatch = ''
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Make recommendations for increased performance and stability of MariaDB/MySQL";
-    homepage = "http://mysqltuner.com";
+    homepage = "https://mysqltuner.com/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ peterhoeg shamilton ];
   };
diff --git a/pkgs/tools/misc/neo-cowsay/default.nix b/pkgs/tools/misc/neo-cowsay/default.nix
index e6e95968a09fb..233ad9fcb66cc 100644
--- a/pkgs/tools/misc/neo-cowsay/default.nix
+++ b/pkgs/tools/misc/neo-cowsay/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "neo-cowsay";
-  version = "1.0.3";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "Code-Hex";
     repo = "Neo-cowsay";
     rev = "v${version}";
-    sha256 = "sha256-n01C6Z9nV2DDbSqgbOIZTqZAWXo6h4/NJdyFiOCh79A=";
+    sha256 = "sha256-VswknPs/yCUOUsXoGlGNF22i7dK8FrYzWkUWlfIPrNo=";
   };
 
-  vendorSha256 = "sha256-4qMsyNFD2MclsseE+IAaNm5r0wHWdcwLLPsZ0JJ3qpw=";
+  vendorSha256 = "sha256-kJSKDqw2NpnPjotUM6Ck6sixCJt3nVOdx800/+JBiWM=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/misc/nncp/default.nix b/pkgs/tools/misc/nncp/default.nix
index 1a20c412edbae..8470837278b0b 100644
--- a/pkgs/tools/misc/nncp/default.nix
+++ b/pkgs/tools/misc/nncp/default.nix
@@ -1,32 +1,23 @@
-{ lib, stdenv
-, go
-, fetchurl
-, redo-apenwarr
-, curl
-, perl
-, genericUpdater
-, writeShellScript
-}:
+{ lib, stdenv, go, fetchurl, redo-apenwarr, curl, perl, genericUpdater
+, writeShellScript, nixosTests, cfgPath ? "/etc/nncp.hjson" }:
 
 stdenv.mkDerivation rec {
   pname = "nncp";
-  version = "7.7.0";
+  version = "8.0.2";
+  outputs = [ "out" "doc" "info" ];
 
   src = fetchurl {
     url = "http://www.nncpgo.org/download/${pname}-${version}.tar.xz";
-    sha256 = "ppKi/JY8sKRb/Vt/SXom0L1zhjBPn6PNUm3Gn8o5Ke4=";
+    sha256 = "sha256-hMb7bAdk3xFcUe5CTu9LnIR3VSJDUKbMSE86s8d5udM=";
   };
 
   nativeBuildInputs = [ go redo-apenwarr ];
 
-  buildPhase = ''
-    runHook preBuild
-    export GOCACHE=$PWD/.cache
-    export CFGPATH=/etc/nncp.hjson
-    export SENDMAIL=sendmail # default value for generated config file
-    redo ''${enableParallelBuilding:+-j''${NIX_BUILD_CORES}}
-    runHook postBuild
-  '';
+  # Build parameters
+  CFGPATH = cfgPath;
+  SENDMAIL = "sendmail";
+
+  preConfigure = "export GOCACHE=$NIX_BUILD_TOP/gocache";
 
   installPhase = ''
     runHook preInstall
@@ -42,7 +33,7 @@ stdenv.mkDerivation rec {
     inherit pname version;
     versionLister = writeShellScript "nncp-versionLister" ''
       echo "# Versions for $1:" >> "$2"
-      ${curl}/bin/curl -s http://www.nncpgo.org/Tarballs.html | ${perl}/bin/perl -lne 'print $1 if /Release.*>([0-9.]+)</'
+      ${curl}/bin/curl -s ${meta.downloadPage} | ${perl}/bin/perl -lne 'print $1 if /Release.*>([0-9.]+)</'
     '';
   };
 
@@ -64,8 +55,9 @@ stdenv.mkDerivation rec {
       transmission exists.
     '';
     homepage = "http://www.nncpgo.org/";
+    downloadPage = "http://www.nncpgo.org/Tarballs.html";
     license = licenses.gpl3Only;
     platforms = platforms.all;
-    maintainers = [ maintainers.woffs ];
+    maintainers = with maintainers; [ ehmry woffs ];
   };
 }
diff --git a/pkgs/tools/misc/ntfy/default.nix b/pkgs/tools/misc/ntfy/default.nix
index 4a2af4895ac49..e976ca5fd691d 100644
--- a/pkgs/tools/misc/ntfy/default.nix
+++ b/pkgs/tools/misc/ntfy/default.nix
@@ -1,4 +1,4 @@
-{ lib, python3Packages, fetchFromGitHub }:
+{ lib, python3Packages, fetchFromGitHub, fetchpatch }:
 
 python3Packages.buildPythonApplication rec {
   pname = "ntfy";
@@ -23,6 +23,17 @@ python3Packages.buildPythonApplication rec {
     matrix-client
     dbus-python
     ntfy-webpush
+    slack-sdk
+  ];
+
+  patches = [
+    # Fix Slack integration no longer working.
+    # From https://github.com/dschep/ntfy/pull/229 - "Swap Slacker for Slack SDK"
+    (fetchpatch {
+      name = "ntfy-Swap-Slacker-for-Slack-SDK.patch";
+      url = "https://github.com/dschep/ntfy/commit/2346e7cfdca84c8f1afc7462a92145c1789deb3e.patch";
+      sha256 = "13k7jbsdx0jx7l5s8whirric76hml5bznkfcxab5xdp88q52kpk7";
+    })
   ];
 
   checkPhase = ''
diff --git a/pkgs/tools/misc/nux/default.nix b/pkgs/tools/misc/nux/default.nix
new file mode 100644
index 0000000000000..d3f26d850e5f1
--- /dev/null
+++ b/pkgs/tools/misc/nux/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, asciidoctor
+, installShellFiles
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nux";
+  version = "0.1.4";
+
+  src = fetchFromGitHub {
+    owner = "NuxPackage";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-k3HRaWN8/MTZRGWBxI8RRK0tcSYBbSLs3vHkUdLGTc8";
+  };
+
+  cargoSha256 = "sha256-wfUr3dcdALMEgJ6CaXhK4Gqk6xflCnov9tELA63drV4=";
+
+  preFixup = ''
+    installManPage $releaseDir/build/nux-*/out/nux.1
+    installShellCompletion $releaseDir/build/nux-*/out/nux.{bash,fish}
+    installShellCompletion $releaseDir/build/nux-*/out/_nux
+
+  '';
+  nativeBuildInputs = [ asciidoctor installShellFiles ];
+
+  meta = with lib; {
+    description = "A wrapper over the nix cli";
+    homepage = "https://github.com/NuxPackage/nux";
+    license = with licenses; [ gpl3 ];
+    maintainers = with maintainers; [ drzoidberg ];
+  };
+}
diff --git a/pkgs/tools/misc/opencbm/default.nix b/pkgs/tools/misc/opencbm/default.nix
new file mode 100644
index 0000000000000..2512747e74aae
--- /dev/null
+++ b/pkgs/tools/misc/opencbm/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cc65
+, ncurses
+, pkg-config
+, libusb1
+}:
+
+stdenv.mkDerivation rec {
+  pname = "opencbm";
+  version = "0.4.99.103";
+
+  src = fetchFromGitHub {
+    owner = "OpenCBM";
+    repo = "OpenCBM";
+    rev = "v${version}";
+    sha256 = "06844yfgcbbwrp3iz5k8zd1zjawzbpvl131lgmkwz6d542c2k4k9";
+  };
+
+  makefile = "LINUX/Makefile";
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "ETCDIR=${placeholder "out"}/etc"
+    "UDEVRULESDIR=${placeholder "out"}/etc/udev/rules.d/"
+    "LDCONFIG=true"
+  ];
+  installTargets = "install-all";
+
+  nativeBuildInputs = [
+    cc65
+    pkg-config
+  ];
+  buildInputs = [
+    libusb1
+    ncurses
+  ];
+
+  meta = with lib; {
+    description = "Kernel driver and development library to control serial CBM devices";
+    longDescription = ''
+      Win 7/8/10, and Linux/i386/AMD64 kernel driver and development library to
+      control serial CBM devices, such as the Commodore 1541 disk drive,
+      connected to the PC's parallel port via a XM1541 or XA1541 cable. Fast
+      disk copier included. Successor of cbm4linux. Also supports the XU1541
+      and the XUM1541 devices (a.k.a. "ZoomFloppy").
+    '';
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.sander ];
+  };
+}
diff --git a/pkgs/tools/misc/opencorsairlink/default.nix b/pkgs/tools/misc/opencorsairlink/default.nix
index 14f955be1cdc2..1c18cb82c5902 100644
--- a/pkgs/tools/misc/opencorsairlink/default.nix
+++ b/pkgs/tools/misc/opencorsairlink/default.nix
@@ -1,8 +1,8 @@
 { lib, stdenv, fetchFromGitHub, libusb1, pkg-config }:
 
 stdenv.mkDerivation rec {
-  name = "OpenCorsairLink-${version}";
-  version = "2019-12-23";
+  pname = "OpenCorsairLink";
+  version = "unstable-2019-12-23";
 
   buildInputs = [ libusb1 ];
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/misc/opentelemetry-collector/default.nix b/pkgs/tools/misc/opentelemetry-collector/default.nix
index 27dc4ee6d5c96..6c83d72976d92 100644
--- a/pkgs/tools/misc/opentelemetry-collector/default.nix
+++ b/pkgs/tools/misc/opentelemetry-collector/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "opentelemetry-collector";
-  version = "0.38.0";
+  version = "0.40.0";
 
   src = fetchFromGitHub {
     owner = "open-telemetry";
     repo = "opentelemetry-collector-contrib";
     rev = "v${version}";
-    sha256 = "1sgzz7p19vy7grvq1qrfgf5rw3yjnidcsdsky2l2g98i54md25ml";
+    sha256 = "sha256-YFgAS4WReyMnzb6FOeRUXHf1LUgknH5gWObiZNKMbv8=";
   };
 
-  vendorSha256 = "1p9i01lwz7yidlmcri3pndmg8brgdrd0ai8sag9xn021hw2sn6qq";
+  vendorSha256 = "sha256-DTZLYF3BoQGou59KaL56pkxySsoQ0xeJ5aF/SkewziE=";
   proxyVendor = true;
 
   CGO_ENABLED = 0;
diff --git a/pkgs/tools/misc/os-prober/default.nix b/pkgs/tools/misc/os-prober/default.nix
index bc5dbe4672e81..7fdbbc1fae656 100644
--- a/pkgs/tools/misc/os-prober/default.nix
+++ b/pkgs/tools/misc/os-prober/default.nix
@@ -11,14 +11,14 @@ lvm2        # lvs
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.78";
+  version = "1.79";
   pname = "os-prober";
   src = fetchFromGitLab {
     domain = "salsa.debian.org";
     owner = "installer-team";
     repo = pname;
     rev = version;
-    sha256 = "sha256-mfv1b40n/opXdyj6IXWVf/32sWlS+/DbXIRwE1zX4KM=";
+    sha256 = "sha256-ntwH5TIA18IOgYPkHMLU0EVykkHs6Z0wseYEPsU0KvQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/ostree/default.nix b/pkgs/tools/misc/ostree/default.nix
index 82851e8aad973..b5b23ee6a2adb 100644
--- a/pkgs/tools/misc/ostree/default.nix
+++ b/pkgs/tools/misc/ostree/default.nix
@@ -41,13 +41,13 @@ let
   ]));
 in stdenv.mkDerivation rec {
   pname = "ostree";
-  version = "2021.4";
+  version = "2021.6";
 
   outputs = [ "out" "dev" "man" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/ostreedev/ostree/releases/download/v${version}/libostree-${version}.tar.xz";
-    sha256 = "sha256-21zgGhYGrzRm7HcjZwD1OmPOIOSYSlSdDquj9mo9k2E=";
+    sha256 = "sha256-6AYxyxNj1HNP6dDJH2mmi+OEgWbW4EgdsZzkSpy09TE=";
   };
 
   patches = [
diff --git a/pkgs/tools/misc/pandoc-lua-filters/default.nix b/pkgs/tools/misc/pandoc-lua-filters/default.nix
index 6eb3359b3b5ec..1323da5104ba8 100644
--- a/pkgs/tools/misc/pandoc-lua-filters/default.nix
+++ b/pkgs/tools/misc/pandoc-lua-filters/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pandoc-lua-filters";
-  version = "2020-11-30";
+  version = "2021-11-05";
 
   src = fetchFromGitHub {
     owner = "pandoc";
     repo = "lua-filters";
     rev = "v${version}";
-    sha256 = "HWBlmlIuJOSgRVrUmXOAI4XTxs1PbZhcwZgZFX0x2wM=";
+    sha256 = "sha256-Y962kdwg2bS3ZoPfsktv4Fy34HUTRhIIuSxPi5ODwWg=";
   };
 
   dontBuild = true;
diff --git a/pkgs/tools/misc/parallel/default.nix b/pkgs/tools/misc/parallel/default.nix
index 519d928c69525..40599ff9c4e4e 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 = "20210722";
+  version = "20211222";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${pname}-${version}.tar.bz2";
-    sha256 = "0jaa5137sjw2szvmnnslkqv1n3gg2rkkgr71j7hpp5a3q15hjf9j";
+    sha256 = "sha256-BYSRz0xSpIVZd73oA8Y2iLLKnFmRvhDnuLDArt5G0Zw=";
   };
 
   outputs = [ "out" "man" "doc" ];
diff --git a/pkgs/tools/misc/parquet-tools/default.nix b/pkgs/tools/misc/parquet-tools/default.nix
index 0ba909e1f6020..46155dcb33236 100644
--- a/pkgs/tools/misc/parquet-tools/default.nix
+++ b/pkgs/tools/misc/parquet-tools/default.nix
@@ -32,7 +32,7 @@ buildPythonApplication rec {
       --replace 'thrift = "^0.13.0"' 'thrift = "*"' \
       --replace 'halo = "^0.0.29"' 'halo = "*"'
     substituteInPlace tests/test_inspect.py \
-      --replace "parquet-cpp-arrow version 5.0.0" "parquet-cpp-arrow version 6.0.0" \
+      --replace "parquet-cpp-arrow version 5.0.0" "parquet-cpp-arrow version ${pyarrow.version}" \
       --replace "serialized_size: 2222" "serialized_size: 2221"
   '';
 
diff --git a/pkgs/tools/misc/phoronix-test-suite/default.nix b/pkgs/tools/misc/phoronix-test-suite/default.nix
index f0f20d4b3a7b7..e0375e2349e33 100644
--- a/pkgs/tools/misc/phoronix-test-suite/default.nix
+++ b/pkgs/tools/misc/phoronix-test-suite/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "phoronix-test-suite";
-  version = "10.2.2";
+  version = "10.6.1";
 
   src = fetchurl {
     url = "https://phoronix-test-suite.com/releases/${pname}-${version}.tar.gz";
-    sha256 = "sha256-g5hUmsn01Msopxzmi/G4LcZISXMD2wFqreaHMkFzF1Y=";
+    sha256 = "sha256-ixDMd9/tO793yVvIE60n5gytfDAmcuA631/ZON9v6LA=";
   };
 
   buildInputs = [ php ];
diff --git a/pkgs/tools/misc/pipe-rename/default.nix b/pkgs/tools/misc/pipe-rename/default.nix
index 15468773e422f..060f3a3e23c0b 100644
--- a/pkgs/tools/misc/pipe-rename/default.nix
+++ b/pkgs/tools/misc/pipe-rename/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pipe-rename";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-AMBdDsn3jS2dXUnEDKZILUlLHS9FIECZhc3EjxLoOZU=";
+    sha256 = "sha256-3Jl/G1QqcChwkI5n1zQLBgGxT2CYdh3XdMHkF+V5SG4=";
   };
 
-  cargoSha256 = "sha256-ulNyTRRFtHQ7+sRaKczLiDPIKG2TIcbbsD9x1di2ypw=";
+  cargoSha256 = "sha256-y5BsdkHrjJHNO66MQTbvA6kKx6tLP7jNk5UmAmslz14=";
 
   checkInputs = [ python3 ];
 
diff --git a/pkgs/tools/misc/pistol/default.nix b/pkgs/tools/misc/pistol/default.nix
index 44edf294f1926..930554d18696a 100644
--- a/pkgs/tools/misc/pistol/default.nix
+++ b/pkgs/tools/misc/pistol/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "pistol";
-  version = "0.2.2";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "doronbehar";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-rpHtU8CnRh4C75tjdyJWCzbyaHvzyBpGSbJpXW8J9VM=";
+    sha256 = "sha256-DGbWlEDI/qGNpdT8N79RsLxnUm4Sw8lHFRIBFd1GmK0=";
   };
 
-  vendorSha256 = "sha256-ivFH7KtWf4nHCdAJrb6HgKP6aIIjgBKG5XwbeJHBDvU=";
+  vendorSha256 = "sha256-poTd0lXRaJeDxwcw+h76NPC0mFB9nwm2vLLB5UUK1dk=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/misc/plantuml/default.nix b/pkgs/tools/misc/plantuml/default.nix
index 14b9733bf69b7..82b0e3dea1052 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.2021.12";
+  version = "1.2021.16";
   pname = "plantuml";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/plantuml/${version}/plantuml.${version}.jar";
-    sha256 = "sha256-t9IQ1D2QJHrQmt/0EWofrqSf6o2YMUdpxFILsV5muog=";
+    sha256 = "sha256-0yN/29VKWiqp2Hi9aIN6GMlfMJPxrewsCQyyPVy6RAM=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/pmbootstrap/default.nix b/pkgs/tools/misc/pmbootstrap/default.nix
index 3f75e8e33af0c..f3cacf32cf1e2 100644
--- a/pkgs/tools/misc/pmbootstrap/default.nix
+++ b/pkgs/tools/misc/pmbootstrap/default.nix
@@ -1,13 +1,13 @@
-{ lib, git, openssl, makeWrapper, buildPythonApplication, pytestCheckHook, ps
+{ stdenv, lib, git, openssl, makeWrapper, buildPythonApplication, pytestCheckHook, ps
 , fetchPypi, fetchFromGitLab }:
 
 buildPythonApplication rec {
   pname = "pmbootstrap";
-  version = "1.30.0";
+  version = "1.39.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-uHN3nplQOMuBeQIxAocCVqwnmJUQZL67+iXLhQ7onps=";
+    sha256 = "13krdb0xmwgldfn8izm1x3j6i6s4n9j8n8n0p4g5kd74ygkvfczz";
   };
 
   repo = fetchFromGitLab {
@@ -15,7 +15,7 @@ buildPythonApplication rec {
     owner = "postmarketOS";
     repo = pname;
     rev = version;
-    sha256 = "sha256-JunI/mqq+UvmzNVt3mdJN3+tKGN4uTrxkUU2imCNCNY=";
+    sha256 = "0mrhgi5y3jwd922cmm2niy9ia0g8p6bsqjjxg523yandshpa3683";
   };
 
   pmb_test = "${repo}/test";
@@ -23,64 +23,65 @@ buildPythonApplication rec {
   checkInputs = [ pytestCheckHook git openssl ps ];
 
   # Add test dependency in PATH
-  checkPhase = "export PYTHONPATH=$PYTHONPATH:${pmb_test}";
+  preCheck = "export PYTHONPATH=$PYTHONPATH:${pmb_test}";
 
   # skip impure tests
   disabledTests = [
-    "test_get_apkbuild"
-    "test_check_build_for_arch"
-    "test_get_depends"
-    "test_build_depends_no_binary_error"
+    "test_apk_static"
+    "test_aportgen"
+    "test_aportgen_device_wizard"
+    "test_bootimg"
     "test_build_depends_binary_outdated"
-    "test_init_buildenv"
-    "test_run_abuild"
-    "test_finish"
-    "test_package"
     "test_build_depends_high_level"
+    "test_build_depends_no_binary_error"
+    "test_build_is_necessary"
     "test_build_local_source_high_level"
-    "test_chroot_interactive_shell"
-    "test_chroot_interactive_shell_user"
-    "test_chroot_arguments"
-    "test_switch_to_channel_branch"
-    "test_read_config_channel"
-    "test_cross_compile_distcc"
     "test_build_src_invalid_path"
     "test_can_fast_forward"
+    "test_check_build_for_arch"
+    "test_chroot_arguments"
+    "test_chroot_interactive_shell"
+    "test_chroot_interactive_shell_user"
     "test_clean_worktree"
-    "test_get_upstream_remote"
-    "test_pull"
-    "test_helpers_package_get_apkindex"
-    "test_filter_missing_packages_invalid"
-    "test_filter_missing_packages_binary_exists"
-    "test_filter_missing_packages_pmaports"
-    "test_filter_aport_packages"
-    "test_pmbootstrap_status"
-    "test_print_checks_git_repo"
-    "test_helpers_ui"
-    "test_newapkbuild"
-    "test_package_from_aports"
-    "test_recurse_invalid"
-    "test_questions_bootimg"
-    "test_questions_keymaps"
-    "test_questions_work_path"
-    "test_questions_channel"
-    "test_apk_static"
-    "test_aportgen"
-    "test_aportgen_device_wizard"
-    "test_bootimg"
-    "test_build_is_necessary"
     "test_config_user"
+    "test_cross_compile_distcc"
     "test_crossdirect"
     "test_file"
+    "test_filter_aport_packages"
+    "test_filter_missing_packages_binary_exists"
+    "test_filter_missing_packages_invalid"
+    "test_filter_missing_packages_pmaports"
+    "test_finish"
     "test_folder_size"
+    "test_get_apkbuild"
+    "test_get_depends"
+    "test_get_upstream_remote"
     "test_helpers_lint"
+    "test_helpers_package_get_apkindex"
     "test_helpers_repo"
+    "test_helpers_ui"
+    "test_init_buildenv"
     "test_kconfig_check"
     "test_keys"
+    "test_newapkbuild"
+    "test_package"
+    "test_package_from_aports"
     "test_pkgrel_bump"
+    "test_pmbootstrap_status"
+    "test_print_checks_git_repo"
+    "test_pull"
     "test_qemu_running_processes"
+    "test_questions_additional_options"
+    "test_questions_bootimg"
+    "test_questions_channel"
+    "test_questions_keymaps"
+    "test_questions_work_path"
+    "test_read_config_channel"
+    "test_recurse_invalid"
+    "test_run_abuild"
     "test_run_core"
     "test_shell_escape"
+    "test_switch_to_channel_branch"
     "test_version"
   ];
 
@@ -91,5 +92,7 @@ buildPythonApplication rec {
     homepage = "https://gitlab.com/postmarketOS/pmbootstrap";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ payas ];
+    # https://github.com/NixOS/nixpkgs/pull/146576#issuecomment-974267651
+    broken = stdenv.isDarwin && stdenv.isAarch64;
   };
 }
diff --git a/pkgs/tools/misc/ponysay/default.nix b/pkgs/tools/misc/ponysay/default.nix
index e75481fcc2c17..2fb48f05850ed 100644
--- a/pkgs/tools/misc/ponysay/default.nix
+++ b/pkgs/tools/misc/ponysay/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, python3, texinfo, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  name = "ponysay";
+  pname = "ponysay";
   version = "unstable-2021-03-27";
 
   src = fetchFromGitHub {
diff --git a/pkgs/development/python-modules/pre-commit/default.nix b/pkgs/tools/misc/pre-commit/default.nix
index 7739c33f7ca28..41d3ecf17872c 100644
--- a/pkgs/development/python-modules/pre-commit/default.nix
+++ b/pkgs/tools/misc/pre-commit/default.nix
@@ -1,47 +1,36 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, aspy-yaml
-, cached-property
-, cfgv
-, identify
-, importlib-metadata
-, importlib-resources
-, nodeenv
-, python
-, six
-, toml
-, virtualenv
-}:
+{ lib, python3Packages }:
 
+with python3Packages;
 buildPythonPackage rec {
   pname = "pre-commit";
-  version = "2.15.0";
+  version = "2.16.0";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit version;
     pname = "pre_commit";
-    sha256 = "sha256-PCWt1429+2ooplF4DVwxGsQN0X8WDrOVSgxZ2kClBac=";
+    sha256 = "sha256-/piXysgwqnFk29AqTnuQyuSWMEUc6IRkvKc9tIa6n2U=";
   };
 
   patches = [
-    ./hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch
     ./languages-use-the-hardcoded-path-to-python-binaries.patch
+    ./hook-tmpl.patch
   ];
 
   propagatedBuildInputs = [
-    aspy-yaml
-    cached-property
     cfgv
     identify
     nodeenv
-    six
+    pyyaml
     toml
     virtualenv
-  ] ++ lib.optional (pythonOlder "3.8") importlib-metadata
-    ++ lib.optional (pythonOlder "3.7") importlib-resources;
+  ] ++ lib.optional (pythonOlder "3.8") [
+    importlib-metadata
+  ] ++ lib.optional (pythonOlder "3.7") [
+    importlib-resources
+  ];
 
   # slow and impure
   doCheck = false;
@@ -55,7 +44,9 @@ buildPythonPackage rec {
       --subst-var-by nodeenv ${nodeenv}
   '';
 
-  pythonImportsCheck = [ "pre_commit" ];
+  pythonImportsCheck = [
+    "pre_commit"
+  ];
 
   meta = with lib; {
     description = "A framework for managing and maintaining multi-language pre-commit hooks";
diff --git a/pkgs/tools/misc/pre-commit/hook-tmpl.patch b/pkgs/tools/misc/pre-commit/hook-tmpl.patch
new file mode 100644
index 0000000000000..1d5fd17274baa
--- /dev/null
+++ b/pkgs/tools/misc/pre-commit/hook-tmpl.patch
@@ -0,0 +1,15 @@
+diff --git a/pre_commit/resources/hook-tmpl b/pre_commit/resources/hook-tmpl
+index 53d29f9..66a8ad3 100755
+--- a/pre_commit/resources/hook-tmpl
++++ b/pre_commit/resources/hook-tmpl
+@@ -10,9 +10,7 @@ ARGS=(hook-impl)
+ HERE="$(cd "$(dirname "$0")" && pwd)"
+ ARGS+=(--hook-dir "$HERE" -- "$@")
+ 
+-if [ -x "$INSTALL_PYTHON" ]; then
+-    exec "$INSTALL_PYTHON" -mpre_commit "${ARGS[@]}"
+-elif command -v pre-commit > /dev/null; then
++if command -v pre-commit > /dev/null; then
+     exec pre-commit "${ARGS[@]}"
+ else
+     echo '`pre-commit` not found.  Did you forget to activate your virtualenv?' 1>&2
diff --git a/pkgs/development/python-modules/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch b/pkgs/tools/misc/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch
index 6d274aae3c073..6d274aae3c073 100644
--- a/pkgs/development/python-modules/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch
+++ b/pkgs/tools/misc/pre-commit/languages-use-the-hardcoded-path-to-python-binaries.patch
diff --git a/pkgs/tools/misc/profile-cleaner/default.nix b/pkgs/tools/misc/profile-cleaner/default.nix
index 0a50ff49f653b..6680fbde2ad04 100644
--- a/pkgs/tools/misc/profile-cleaner/default.nix
+++ b/pkgs/tools/misc/profile-cleaner/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, makeWrapper, parallel, sqlite, bc, file }:
 
 stdenv.mkDerivation rec {
-  version = "2.42";
+  version = "2.44";
   pname = "profile-cleaner";
 
   src = fetchFromGitHub {
     owner = "graysky2";
     repo = "profile-cleaner";
     rev = "v${version}";
-    sha256 = "1d94lp91i4y896vyc7fc3ysha700cwzsdjmmmwlm6h2zp652c73y";
+    sha256 = "sha256-OkrZb8skglczJEjwJSZINELeStdsILQO4GfZ1uLSnQY=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/pspg/default.nix b/pkgs/tools/misc/pspg/default.nix
index ecf59bc47c4ae..882ea148b2017 100644
--- a/pkgs/tools/misc/pspg/default.nix
+++ b/pkgs/tools/misc/pspg/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pspg";
-  version = "5.4.1";
+  version = "5.5.1";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = version;
-    sha256 = "1pi9dbjhd2mj11p3hx74f3rr8ysriq7sy2x012r0kil3b5xzpv2p";
+    sha256 = "sha256-EQOIbpP80t/SVwrY/iEYTdfE1L/VmI5VxBrr+mBvICo=";
   };
 
   nativeBuildInputs = [ pkg-config installShellFiles ];
diff --git a/pkgs/tools/misc/qflipper/default.nix b/pkgs/tools/misc/qflipper/default.nix
new file mode 100644
index 0000000000000..78bb6c839e6e7
--- /dev/null
+++ b/pkgs/tools/misc/qflipper/default.nix
@@ -0,0 +1,31 @@
+{ lib, fetchurl, appimageTools }:
+
+let
+  pname = "qflipper";
+  version = "0.5.3";
+  name = "${pname}-${version}";
+  src = fetchurl {
+    url = "https://update.flipperzero.one/builds/qFlipper/${version}/qFlipper-x86_64-${version}.AppImage";
+    sha256 = "sha256-UFGFl1zb0t1y7FBd5EX1YS3npWM5slL/wLiTOF/CLNM=";
+  };
+  appimageContents = appimageTools.extractType2 { inherit name src; };
+
+in appimageTools.wrapType2 {
+  inherit name src;
+
+  extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ pkgs.libsecret ];
+
+  extraInstallCommands = ''
+    mv $out/bin/${name} $out/bin/qFlipper
+    install -m 444 -D ${appimageContents}/qFlipper.desktop -t $out/share/applications
+    cp -r ${appimageContents}/usr/share/icons $out/share
+  '';
+
+  meta = with lib; {
+    description = "Cross-platform desktop tool to manage your flipper device";
+    homepage = "https://flipperzero.one/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ wolfangaukang ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/tools/misc/recoverjpeg/default.nix b/pkgs/tools/misc/recoverjpeg/default.nix
index 4b8ea50cd4eff..db05aeda96a3f 100644
--- a/pkgs/tools/misc/recoverjpeg/default.nix
+++ b/pkgs/tools/misc/recoverjpeg/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, makeWrapper, python2, exif, imagemagick }:
+{ lib, stdenv, fetchurl, makeWrapper, python3, exif, imagemagick }:
 
 stdenv.mkDerivation rec {
   pname = "recoverjpeg";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ makeWrapper ];
 
-  buildInputs = [ python2 ];
+  buildInputs = [ python3 ];
 
   postFixup = ''
     wrapProgram $out/bin/sort-pictures \
diff --git a/pkgs/tools/misc/remind/default.nix b/pkgs/tools/misc/remind/default.nix
index 59ddc84465b6d..df98ede4f9ffb 100644
--- a/pkgs/tools/misc/remind/default.nix
+++ b/pkgs/tools/misc/remind/default.nix
@@ -16,11 +16,11 @@ let
 in
 tcl.mkTclDerivation rec {
   pname = "remind";
-  version = "03.03.09";
+  version = "03.03.10";
 
   src = fetchurl {
     url = "https://dianne.skoll.ca/projects/remind/download/remind-${version}.tar.gz";
-    sha256 = "sha256-yQh6jGkRNkQvPoguRmd6025pCEsvO7w8W3YNO2vztvM=";
+    sha256 = "sha256-BqFt3f4+hfz4njzOI1mkrUJhR7zOqzT/TNWS+sk2XEc=";
   };
 
   propagatedBuildInputs = tclLibraries;
diff --git a/pkgs/tools/misc/rpm-ostree/default.nix b/pkgs/tools/misc/rpm-ostree/default.nix
index c4764923c7a96..bfc2ce2c0e99f 100644
--- a/pkgs/tools/misc/rpm-ostree/default.nix
+++ b/pkgs/tools/misc/rpm-ostree/default.nix
@@ -40,13 +40,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rpm-ostree";
-  version = "2021.9";
+  version = "2021.14";
 
   outputs = [ "out" "dev" "man" "devdoc" ];
 
   src = fetchurl {
     url = "https://github.com/coreos/${pname}/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-DvATvvAliJhEItbOlK1CA/ibhzImw651pkplqpRG+OQ=";
+    sha256 = "sha256-WOG21wSbjXMc/6OHJBEKFOhvnIt+SFpZikB8XkfN32Y=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/s6-portable-utils/default.nix b/pkgs/tools/misc/s6-portable-utils/default.nix
index 045a8b9ab034d..84877508607e2 100644
--- a/pkgs/tools/misc/s6-portable-utils/default.nix
+++ b/pkgs/tools/misc/s6-portable-utils/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "s6-portable-utils";
-  version = "2.2.3.3";
-  sha256 = "132jj5qk8x40kw6lrrn7jiqhvqj9d2h6g6mhl8zma1sp37bg0i84";
+  version = "2.2.3.4";
+  sha256 = "04n9i9ydaa3cb3pip9d02dm24k26v3djvwrafjzq5qx94zvrifip";
 
   description = "A set of tiny general Unix utilities optimized for simplicity and small size";
 
diff --git a/pkgs/tools/misc/screen/default.nix b/pkgs/tools/misc/screen/default.nix
index d1e02e8b9a364..dd61b82d4080c 100644
--- a/pkgs/tools/misc/screen/default.nix
+++ b/pkgs/tools/misc/screen/default.nix
@@ -39,6 +39,12 @@ stdenv.mkDerivation rec {
   buildInputs = [ ncurses ] ++ lib.optional stdenv.isLinux pam
                             ++ lib.optional stdenv.isDarwin utmp;
 
+  # Build fails due to missing dependencies on autogenerated header:
+  #   screen.h:48:10: fatal error: comm.h: No such file or directory
+  # It will be fixed in next screen-4.9.0 release. The patches are
+  # invasive. Disabling parallelism for 4.8.0.
+  enableParallelBuilding = false;
+
   doCheck = true;
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/sfeed/default.nix b/pkgs/tools/misc/sfeed/default.nix
index 5c39cc803b534..394cd8a8ede38 100644
--- a/pkgs/tools/misc/sfeed/default.nix
+++ b/pkgs/tools/misc/sfeed/default.nix
@@ -1,19 +1,26 @@
-{ stdenv, lib, fetchgit }:
+{ stdenv, lib, fetchgit, ncurses }:
 
 stdenv.mkDerivation rec {
   pname = "sfeed";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchgit {
     url = "git://git.codemadness.org/sfeed";
     rev = version;
-    sha256 = "sha256-pLKWq4KIiT6X37EUIOw5SBb1KWopnFcDO+iE++Uie5s=";
+    sha256 = "sha256-0z9PHni/ni4p4nfeStrZmFFHHtyqT8GYJWVWr5IzFKw=";
   };
 
-  makeFlags = [ "RANLIB:=$(RANLIB)" ];
+  buildInputs = [ ncurses ];
+
+  makeFlags = [ "RANLIB:=$(RANLIB)" "SFEED_CURSES_LDFLAGS:=-lncurses" ]
+    # use macOS's strlcat() and strlcpy() instead of vendored ones
+    ++ lib.optional stdenv.isDarwin "COMPATOBJ:=";
 
   installFlags = [ "PREFIX=$(out)" ];
 
+  # otherwise does not find SIGWINCH
+  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-D_DARWIN_C_SOURCE";
+
   meta = with lib; {
     homepage = "https://codemadness.org/sfeed-simple-feed-parser.html";
     description = "A RSS and Atom parser (and some format programs)";
diff --git a/pkgs/tools/misc/sharedown/default.nix b/pkgs/tools/misc/sharedown/default.nix
index 0dd4c230566c4..2fb9553a7fea9 100644
--- a/pkgs/tools/misc/sharedown/default.nix
+++ b/pkgs/tools/misc/sharedown/default.nix
@@ -13,13 +13,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "Sharedown";
-  version = "2.0.0";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     owner = "kylon";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Z6OsZvVzk//qEkl4ciNz4cQRqC2GFg0qYgmliAyz6fo=";
+    sha256 = "sha256-0moxrRxydH/g3J5cQmaFSDhTZh9OnUi8ncPVw7q1JC0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/misc/sharedown/update.sh b/pkgs/tools/misc/sharedown/update.sh
index 5ba572f23698c..584cb8511a7cd 100755
--- a/pkgs/tools/misc/sharedown/update.sh
+++ b/pkgs/tools/misc/sharedown/update.sh
@@ -3,12 +3,12 @@
 
 set -euo pipefail
 
+nix-update sharedown
+
 dirname="$(realpath "$(dirname "$0")")"
 sourceDir="$(nix-build -A sharedown.src --no-out-link)"
 tempDir="$(mktemp -d)"
 
-nix-update sharedown
-
 cp -r "$sourceDir"/* "$tempDir"
 cd "$tempDir"
 PUPPETEER_SKIP_DOWNLOAD=1 yarn install
diff --git a/pkgs/tools/misc/sharedown/yarn.lock b/pkgs/tools/misc/sharedown/yarn.lock
index 48f5917ec278f..5b5638db5055b 100644
--- a/pkgs/tools/misc/sharedown/yarn.lock
+++ b/pkgs/tools/misc/sharedown/yarn.lock
@@ -16,9 +16,9 @@
     ajv-keywords "^3.4.1"
 
 "@electron/get@^1.13.0":
-  version "1.13.0"
-  resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.13.0.tgz#95c6bcaff4f9a505ea46792424f451efea89228c"
-  integrity sha512-+SjZhRuRo+STTO1Fdhzqnv9D2ZhjxXP6egsJ9kiO8dtP68cDx7dFCwWi64dlMQV7sWcfW1OYCW4wviEBzmRsfQ==
+  version "1.13.1"
+  resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.13.1.tgz#42a0aa62fd1189638bd966e23effaebb16108368"
+  integrity sha512-U5vkXDZ9DwXtkPqlB45tfYnnYBN8PePp1z/XDCupnSpdrxT8/ThCv9WCwPLf9oqiSGZTkH6dx2jDUPuoXpjkcA==
   dependencies:
     debug "^4.1.1"
     env-paths "^2.2.0"
@@ -28,7 +28,7 @@
     semver "^6.2.0"
     sumchecker "^3.0.1"
   optionalDependencies:
-    global-agent "^2.0.2"
+    global-agent "^3.0.0"
     global-tunnel-ng "^2.7.1"
 
 "@electron/universal@1.0.5":
@@ -71,12 +71,12 @@
   dependencies:
     defer-to-connect "^1.0.1"
 
-"@tedconf/fessonia@*":
+"@tedconf/fessonia@^2.2.1":
   version "2.2.1"
   resolved "https://registry.yarnpkg.com/@tedconf/fessonia/-/fessonia-2.2.1.tgz#24499e69c3aeda4926670675b9fdfeb9ab15f19d"
   integrity sha512-eX+O8P/xIkuCDeDI3IOIoyzuTJLVqbGnoBhLiBoFU7MwntF02ygQcByMinhUtXv2zm0pOSy6zeKoQTKAVBK60A==
 
-"@types/debug@^4.1.5":
+"@types/debug@^4.1.6":
   version "4.1.7"
   resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.7.tgz#7cc0ea761509124709b8b2d1090d8f6c17aadb82"
   integrity sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==
@@ -91,9 +91,9 @@
     "@types/node" "*"
 
 "@types/glob@^7.1.1":
-  version "7.1.4"
-  resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.4.tgz#ea59e21d2ee5c517914cb4bc8e4153b99e566672"
-  integrity sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb"
+  integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==
   dependencies:
     "@types/minimatch" "*"
     "@types/node" "*"
@@ -109,14 +109,14 @@
   integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==
 
 "@types/node@*":
-  version "16.9.6"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-16.9.6.tgz#040a64d7faf9e5d9e940357125f0963012e66f04"
-  integrity sha512-YHUZhBOMTM3mjFkXVcK+WwAcYmyhe1wL4lfqNtzI0b3qAy7yuSetnM7QJazgE5PFmgVTNGiLOgRFfJMqW7XpSQ==
+  version "16.11.10"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.10.tgz#2e3ad0a680d96367103d3e670d41c2fed3da61ae"
+  integrity sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA==
 
 "@types/node@^14.6.2":
-  version "14.17.18"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.18.tgz#0198489a751005f71217744aa966cd1f29447c81"
-  integrity sha512-haYyibw4pbteEhkSg0xdDLAI3679L75EJ799ymVrPxOA922bPx3ML59SoDsQ//rHlvqpu+e36kcbR3XRQtFblA==
+  version "14.17.34"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.34.tgz#fe4b38b3f07617c0fa31ae923fca9249641038f0"
+  integrity sha512-USUftMYpmuMzeWobskoPfzDi+vkpe0dvcOBRNOscFrGxVp4jomnRxWuVohgqBow2xyIPC0S3gjxV/5079jhmDg==
 
 "@types/plist@^3.0.1":
   version "3.0.2"
@@ -136,10 +136,10 @@
   resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129"
   integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==
 
-"@types/yargs@^16.0.2":
-  version "16.0.4"
-  resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977"
-  integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==
+"@types/yargs@^17.0.1":
+  version "17.0.7"
+  resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.7.tgz#44a484c634761da4391477515a98772b82b5060f"
+  integrity sha512-OvLKmpKdea1aWtqHv9bxVVcMoT6syAeK+198dfETIFkAevYRGwqh4H+KFxfjUETZuUuE5sQCAFwdOdoHUdo8eg==
   dependencies:
     "@types/yargs-parser" "*"
 
@@ -173,23 +173,18 @@ ajv@^6.10.0, ajv@^6.12.0:
     uri-js "^4.2.2"
 
 ansi-align@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb"
-  integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59"
+  integrity sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==
   dependencies:
-    string-width "^3.0.0"
+    string-width "^4.1.0"
 
 ansi-regex@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
   integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
 
-ansi-regex@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
-  integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
-
-ansi-regex@^5.0.0:
+ansi-regex@^5.0.1:
   version "5.0.1"
   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
   integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
@@ -208,15 +203,15 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
   dependencies:
     color-convert "^2.0.1"
 
-app-builder-bin@3.5.13:
-  version "3.5.13"
-  resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.13.tgz#6dd7f4de34a4e408806f99b8c7d6ef1601305b7e"
-  integrity sha512-ighVe9G+bT1ENGdp9ecO1P+94vv/f+FUwaI+XkNzeg9bYF8Oi3BQ+mJuxS00UgyHs8luuOzjzC+qnAtdb43Mpg==
+app-builder-bin@3.7.1:
+  version "3.7.1"
+  resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.7.1.tgz#cb0825c5e12efc85b196ac3ed9c89f076c61040e"
+  integrity sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw==
 
-app-builder-lib@22.11.7:
-  version "22.11.7"
-  resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.11.7.tgz#c0ad1119ebfbf4189a8280ad693625f5e684dca6"
-  integrity sha512-pS9/cR4/TnNZVAHZECiSvvwTBzbwblj7KBBZkMKDG57nibq0I1XY8zAaYeHFdlYTyrRcz9JUXbAqJKezya7UFQ==
+app-builder-lib@22.14.5:
+  version "22.14.5"
+  resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.14.5.tgz#a61a50b132b858e98fdc70b6b88994ae99b4f96d"
+  integrity sha512-k3VwKP4kpsnUaXoUkm1s4zaSHPHIMFnN4kPMU9yXaKmE1LfHHqBaEah5bXeTAX5V/BC41wFdg8CF5vOjvgy8Rg==
   dependencies:
     "7zip-bin" "~5.1.1"
     "@develar/schema-utils" "~2.6.5"
@@ -224,12 +219,14 @@ app-builder-lib@22.11.7:
     "@malept/flatpak-bundler" "^0.4.0"
     async-exit-hook "^2.0.1"
     bluebird-lst "^1.0.9"
-    builder-util "22.11.7"
-    builder-util-runtime "8.7.7"
+    builder-util "22.14.5"
+    builder-util-runtime "8.9.1"
     chromium-pickle-js "^0.2.0"
     debug "^4.3.2"
     ejs "^3.1.6"
-    electron-publish "22.11.7"
+    electron-osx-sign "^0.5.0"
+    electron-publish "22.14.5"
+    form-data "^4.0.0"
     fs-extra "^10.0.0"
     hosted-git-info "^4.0.2"
     is-ci "^3.0.0"
@@ -279,17 +276,22 @@ async@0.9.x:
   resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d"
   integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=
 
+asynckit@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+  integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
+
 at-least-node@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
   integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
 
-axios@*:
-  version "0.21.4"
-  resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575"
-  integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
+axios@^0.24.0:
+  version "0.24.0"
+  resolved "https://registry.yarnpkg.com/axios/-/axios-0.24.0.tgz#804e6fa1e4b9c5288501dd9dff56a7a0940d20d6"
+  integrity sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==
   dependencies:
-    follow-redirects "^1.14.0"
+    follow-redirects "^1.14.4"
 
 balanced-match@^1.0.0:
   version "1.0.2"
@@ -317,7 +319,7 @@ bluebird-lst@^1.0.9:
   dependencies:
     bluebird "^3.5.5"
 
-bluebird@^3.5.5:
+bluebird@^3.5.0, bluebird@^3.5.5:
   version "3.7.2"
   resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
   integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
@@ -327,10 +329,10 @@ boolean@^3.0.1:
   resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.1.4.tgz#f51a2fb5838a99e06f9b6ec1edb674de67026435"
   integrity sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==
 
-bootstrap@5.1.1:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.1.tgz#9d6eed81e08feaccedf3adaca51fe4b73a2871df"
-  integrity sha512-/jUa4sSuDZWlDLQ1gwQQR8uoYSvLJzDd8m5o6bPKh3asLAMYVZKdRCjb1joUd5WXf0WwCNzd2EjwQQhupou0dA==
+bootstrap@5.1.3:
+  version "5.1.3"
+  resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.3.tgz#ba081b0c130f810fa70900acbc1c6d3c28fa8f34"
+  integrity sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==
 
 boxen@^5.0.0:
   version "5.1.2"
@@ -354,6 +356,19 @@ brace-expansion@^1.1.7:
     balanced-match "^1.0.0"
     concat-map "0.0.1"
 
+buffer-alloc-unsafe@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0"
+  integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==
+
+buffer-alloc@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec"
+  integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==
+  dependencies:
+    buffer-alloc-unsafe "^1.1.0"
+    buffer-fill "^1.0.0"
+
 buffer-crc32@~0.2.3:
   version "0.2.13"
   resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
@@ -364,6 +379,11 @@ buffer-equal@1.0.0:
   resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe"
   integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74=
 
+buffer-fill@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
+  integrity sha1-+PeLdniYiO858gXNY39o5wISKyw=
+
 buffer-from@^1.0.0:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
@@ -377,34 +397,27 @@ buffer@^5.1.0, buffer@^5.2.1, buffer@^5.5.0:
     base64-js "^1.3.1"
     ieee754 "^1.1.13"
 
-builder-util-runtime@8.7.6:
-  version "8.7.6"
-  resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.6.tgz#4b43c96db2bd494ced7694bcd7674934655e8324"
-  integrity sha512-rj9AIY7CzLSuTOXpToiaQkruYh6UEQ+kYnd5UET22ch8MGClEtIZKXHG14qEiXEr2x4EOKDMxkcTa+9TYaE+ug==
-  dependencies:
-    debug "^4.3.2"
-    sax "^1.2.4"
-
-builder-util-runtime@8.7.7:
-  version "8.7.7"
-  resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.7.tgz#6c83cc3abe7a7a5c8b4ec8878f68adc828c07f0d"
-  integrity sha512-RUfoXzVrmFFI0K/Oft0CtP1LpTIOlBeLJatt5DePTI0KlxE156am4SGUpqtbbdqZNm++LkV9mX4olBDcXyGPow==
+builder-util-runtime@8.9.1:
+  version "8.9.1"
+  resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.9.1.tgz#25f066b3fbc20b3e6236a9b956b1ebb0e33ff66a"
+  integrity sha512-c8a8J3wK6BIVLW7ls+7TRK9igspTbzWmUqxFbgK0m40Ggm6efUbxtWVCGIjc+dtchyr5qAMAUL6iEGRdS/6vwg==
   dependencies:
     debug "^4.3.2"
     sax "^1.2.4"
 
-builder-util@22.11.7:
-  version "22.11.7"
-  resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.11.7.tgz#ae9707afa6a31feafa13c274ac83b4fe28ef1467"
-  integrity sha512-ihqUe5ey82LM9qqQe0/oIcaSm9w+B9UjcsWJZxJliTBsbU+sErOpDFpHW+sim0veiTF/EIcGUh9HoduWw+l9FA==
+builder-util@22.14.5:
+  version "22.14.5"
+  resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.14.5.tgz#42a18608d2a566c0846e91266464776c8bfb0cc9"
+  integrity sha512-zqIHDFJwmA7jV7SC9aI+33MWwT2mWoijH+Ol9IntNAwuuRXoS+7XeJwnhLBXOhcDBzXT4kDzHnRk4JKeaygEYA==
   dependencies:
     "7zip-bin" "~5.1.1"
-    "@types/debug" "^4.1.5"
+    "@types/debug" "^4.1.6"
     "@types/fs-extra" "^9.0.11"
-    app-builder-bin "3.5.13"
+    app-builder-bin "3.7.1"
     bluebird-lst "^1.0.9"
-    builder-util-runtime "8.7.7"
+    builder-util-runtime "8.9.1"
     chalk "^4.1.1"
+    cross-spawn "^7.0.3"
     debug "^4.3.2"
     fs-extra "^10.0.0"
     is-ci "^3.0.0"
@@ -427,9 +440,9 @@ cacheable-request@^6.0.0:
     responselike "^1.0.2"
 
 camelcase@^6.2.0:
-  version "6.2.0"
-  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"
-  integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==
+  version "6.2.1"
+  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz#250fd350cfd555d0d2160b1d51510eaf8326e86e"
+  integrity sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==
 
 chalk@^2.4.2:
   version "2.4.2"
@@ -468,10 +481,10 @@ ci-info@^2.0.0:
   resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
   integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
 
-ci-info@^3.1.1:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6"
-  integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==
+ci-info@^3.2.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2"
+  integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==
 
 cli-boxes@^2.2.1:
   version "2.2.1"
@@ -486,7 +499,7 @@ cli-truncate@^1.1.0:
     slice-ansi "^1.0.0"
     string-width "^2.0.0"
 
-clipboardy@^2.3.0:
+clipboardy@2.3.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-2.3.0.tgz#3c2903650c68e46a91b388985bc2774287dba290"
   integrity sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==
@@ -540,6 +553,13 @@ colors@1.0.3:
   resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
   integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=
 
+combined-stream@^1.0.8:
+  version "1.0.8"
+  resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+  integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+  dependencies:
+    delayed-stream "~1.0.0"
+
 commander@2.9.0:
   version "2.9.0"
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
@@ -552,6 +572,11 @@ commander@^5.0.0:
   resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
   integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
 
+compare-version@^0.1.2:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080"
+  integrity sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=
+
 concat-map@0.0.1:
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@@ -587,11 +612,6 @@ configstore@^5.0.1:
     write-file-atomic "^3.0.0"
     xdg-basedir "^4.0.0"
 
-core-js@^3.6.5:
-  version "3.18.0"
-  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.18.0.tgz#9af3f4a6df9ba3428a3fb1b171f1503b3f40cc49"
-  integrity sha512-WJeQqq6jOYgVgg4NrXKL0KLQhi0CT4ZOCvFL+3CQ5o7I6J8HkT5wd53EadMfqTDp1so/MT1J+w2ujhWcCJtN7w==
-
 core-util-is@1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -620,7 +640,7 @@ cross-spawn@^6.0.0:
     shebang-command "^1.2.0"
     which "^1.2.9"
 
-cross-spawn@^7.0.1:
+cross-spawn@^7.0.1, cross-spawn@^7.0.3:
   version "7.0.3"
   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
   integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@@ -639,21 +659,14 @@ crypto-random-string@^2.0.0:
   resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
   integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
 
-debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2:
+debug@4, debug@4.3.2, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2:
   version "4.3.2"
   resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
   integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
   dependencies:
     ms "2.1.2"
 
-debug@4.3.1:
-  version "4.3.1"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
-  integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
-  dependencies:
-    ms "2.1.2"
-
-debug@^2.6.9:
+debug@^2.6.8, debug@^2.6.9:
   version "2.6.9"
   resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
   integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
@@ -684,6 +697,11 @@ define-properties@^1.1.3:
   dependencies:
     object-keys "^1.0.12"
 
+delayed-stream@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+  integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
+
 detect-node@^2.0.4:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1"
@@ -704,14 +722,14 @@ dir-compare@^2.4.0:
     commander "2.9.0"
     minimatch "3.0.4"
 
-dmg-builder@22.11.7:
-  version "22.11.7"
-  resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.11.7.tgz#5956008c18d40ee72c0ea01ffea9590dbf51df89"
-  integrity sha512-+I+XfP2DODHB6PwFANgpH/WMzzCA5r5XoMvbFCIYjQjJpXlO0XnqQaamzFl2vh/Wz/Qt0d0lJMgRy8gKR3MGdQ==
+dmg-builder@22.14.5:
+  version "22.14.5"
+  resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.14.5.tgz#137c0b55e639badcc0b119eb060e6fa4ed61d948"
+  integrity sha512-1GvFGQE332bvPamcMwZDqWqfWfJTyyDLOsHMcGi0zs+Jh7JOn6/zuBkHJIWHdsj2QJbhzLVyd2/ZqttOKv7I8w==
   dependencies:
-    app-builder-lib "22.11.7"
-    builder-util "22.11.7"
-    builder-util-runtime "8.7.6"
+    app-builder-lib "22.14.5"
+    builder-util "22.14.5"
+    builder-util-runtime "8.9.1"
     fs-extra "^10.0.0"
     iconv-lite "^0.6.2"
     js-yaml "^4.1.0"
@@ -762,17 +780,17 @@ ejs@^3.1.6:
   dependencies:
     jake "^10.6.1"
 
-electron-builder@^22.11.7:
-  version "22.11.7"
-  resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.11.7.tgz#cd97a0d9f6e6d388112e66b4376de431cca4d596"
-  integrity sha512-yQExSLt7Hbz/P8lLkZDdE/OnJJ7NCX+uiQcV+XIH0TeEZcD87ZnSqBBzGUN5akySU4BXXlrVZKeUsXACWrm5Kw==
+electron-builder@^22.13.1:
+  version "22.14.5"
+  resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.14.5.tgz#3a25547bd4fe3728d4704da80956a794c5c31496"
+  integrity sha512-N73hSbXFz6Mz5Z6h6C5ly6CB+dUN6k1LuCDJjI8VF47bMXv/QE0HE+Kkb0GPKqTqM7Hsk/yIYX+kHCfSkR5FGg==
   dependencies:
-    "@types/yargs" "^16.0.2"
-    app-builder-lib "22.11.7"
-    builder-util "22.11.7"
-    builder-util-runtime "8.7.7"
+    "@types/yargs" "^17.0.1"
+    app-builder-lib "22.14.5"
+    builder-util "22.14.5"
+    builder-util-runtime "8.9.1"
     chalk "^4.1.1"
-    dmg-builder "22.11.7"
+    dmg-builder "22.14.5"
     fs-extra "^10.0.0"
     is-ci "^3.0.0"
     lazy-val "^1.0.5"
@@ -780,33 +798,40 @@ electron-builder@^22.11.7:
     update-notifier "^5.1.0"
     yargs "^17.0.1"
 
-electron-publish@22.11.7:
-  version "22.11.7"
-  resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.11.7.tgz#4126cbb08ccf082a2aa7fef89ee629b3a4b8ae9a"
-  integrity sha512-A4EhRRNBVz4SPzUlBrPO6BmuyDeI0pyprggPAV9rQ+SDVSnSB/WKPot9JwWMyArkGj3AUUTMNVT6hwZhMvhfqw==
+electron-osx-sign@^0.5.0:
+  version "0.5.0"
+  resolved "https://registry.yarnpkg.com/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz#fc258c5e896859904bbe3d01da06902c04b51c3a"
+  integrity sha512-icoRLHzFz/qxzDh/N4Pi2z4yVHurlsCAYQvsCSG7fCedJ4UJXBS6PoQyGH71IfcqKupcKeK7HX/NkyfG+v6vlQ==
+  dependencies:
+    bluebird "^3.5.0"
+    compare-version "^0.1.2"
+    debug "^2.6.8"
+    isbinaryfile "^3.0.2"
+    minimist "^1.2.0"
+    plist "^3.0.1"
+
+electron-publish@22.14.5:
+  version "22.14.5"
+  resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.14.5.tgz#34bcdce671f0e651330db20040d6919c77c94bd6"
+  integrity sha512-h+NANRdaA0PqGF15GKvorseWPzh1PXa/zx4I37//PIokW8eKIov8ky23foUSb55ZFWUHGpxQJux7y2NCfBtQeg==
   dependencies:
     "@types/fs-extra" "^9.0.11"
-    builder-util "22.11.7"
-    builder-util-runtime "8.7.7"
+    builder-util "22.14.5"
+    builder-util-runtime "8.9.1"
     chalk "^4.1.1"
     fs-extra "^10.0.0"
     lazy-val "^1.0.5"
     mime "^2.5.2"
 
-electron@*:
-  version "15.0.0"
-  resolved "https://registry.yarnpkg.com/electron/-/electron-15.0.0.tgz#b1b6244b1cffddf348c27c54b1310b3a3680246e"
-  integrity sha512-LlBjN5nCJoC7EDrgfDQwEGSGSAo/o08nSP5uJxN2m+ZtNA69SxpnWv4yPgo1K08X/iQPoGhoZu6C8LYYlk1Dtg==
+electron@^15.3.1:
+  version "15.3.2"
+  resolved "https://registry.yarnpkg.com/electron/-/electron-15.3.2.tgz#4f0cbad781d14e0194f5dfef1709e09a70c8074a"
+  integrity sha512-sEpOX10gjAyvq33HDxJrq2HhYZT3qndZjUrHkzG16QTLjykP7lMvGnJ/bt6wn+T75f4wwv59FUbQx2hW3Xz5TQ==
   dependencies:
     "@electron/get" "^1.13.0"
     "@types/node" "^14.6.2"
     extract-zip "^1.0.3"
 
-emoji-regex@^7.0.1:
-  version "7.0.3"
-  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
-  integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
-
 emoji-regex@^8.0.0:
   version "8.0.0"
   resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
@@ -889,9 +914,9 @@ extract-zip@^1.0.3:
     yauzl "^2.10.0"
 
 extsprintf@^1.2.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
-  integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07"
+  integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
 
 fast-deep-equal@^3.1.1:
   version "3.1.3"
@@ -925,16 +950,25 @@ find-up@^4.0.0:
     locate-path "^5.0.0"
     path-exists "^4.0.0"
 
-follow-redirects@^1.14.0:
-  version "1.14.4"
-  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.4.tgz#838fdf48a8bbdd79e52ee51fb1c94e3ed98b9379"
-  integrity sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==
+follow-redirects@^1.14.4:
+  version "1.14.5"
+  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.5.tgz#f09a5848981d3c772b5392309778523f8d85c381"
+  integrity sha512-wtphSXy7d4/OR+MvIFbCVBDzZ5520qV8XfPklSN5QtxuMUJZ+b0Wnst1e1lCDocfzuCkHqj8k0FpZqO+UIaKNA==
 
-font-awesome@*:
+font-awesome@^4.7.0:
   version "4.7.0"
   resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133"
   integrity sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM=
 
+form-data@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
+  integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
+  dependencies:
+    asynckit "^0.4.0"
+    combined-stream "^1.0.8"
+    mime-types "^2.1.12"
+
 fs-constants@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
@@ -993,9 +1027,9 @@ get-stream@^5.1.0:
     pump "^3.0.0"
 
 glob@^7.1.3, glob@^7.1.6:
-  version "7.1.7"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
-  integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
+  integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
   dependencies:
     fs.realpath "^1.0.0"
     inflight "^1.0.4"
@@ -1004,13 +1038,12 @@ glob@^7.1.3, glob@^7.1.6:
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
-global-agent@^2.0.2:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz#566331b0646e6bf79429a16877685c4a1fbf76dc"
-  integrity sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==
+global-agent@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6"
+  integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==
   dependencies:
     boolean "^3.0.1"
-    core-js "^3.6.5"
     es6-error "^4.1.1"
     matcher "^3.0.0"
     roarr "^2.15.3"
@@ -1169,11 +1202,11 @@ is-ci@^2.0.0:
     ci-info "^2.0.0"
 
 is-ci@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994"
-  integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867"
+  integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==
   dependencies:
-    ci-info "^3.1.1"
+    ci-info "^3.2.0"
 
 is-docker@^2.0.0:
   version "2.2.1"
@@ -1240,6 +1273,13 @@ isarray@~1.0.0:
   resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
   integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
 
+isbinaryfile@^3.0.2:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz#5d6def3edebf6e8ca8cae9c30183a804b5f8be80"
+  integrity sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==
+  dependencies:
+    buffer-alloc "^1.2.0"
+
 isbinaryfile@^4.0.8:
   version "4.0.8"
   resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz#5d34b94865bd4946633ecc78a026fc76c5b11fcf"
@@ -1250,7 +1290,7 @@ isexe@^2.0.0:
   resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
   integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
 
-iso8601-duration@*:
+iso8601-duration@^1.3.0:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/iso8601-duration/-/iso8601-duration-1.3.0.tgz#29d7b69e0574e4acdee50c5e5e09adab4137ba5a"
   integrity sha512-K4CiUBzo3YeWk76FuET/dQPH03WE04R94feo5TSKQCXpoXQt9E4yx2CnY737QZnSAI3PI4WlKo/zfqizGx52QQ==
@@ -1372,7 +1412,7 @@ matcher@^3.0.0:
   dependencies:
     escape-string-regexp "^4.0.0"
 
-md5@*:
+md5@^2.3.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f"
   integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==
@@ -1381,10 +1421,22 @@ md5@*:
     crypt "0.0.2"
     is-buffer "~1.1.6"
 
+mime-db@1.51.0:
+  version "1.51.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c"
+  integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==
+
+mime-types@^2.1.12:
+  version "2.1.34"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24"
+  integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==
+  dependencies:
+    mime-db "1.51.0"
+
 mime@^2.5.2:
-  version "2.5.2"
-  resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe"
-  integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==
+  version "2.6.0"
+  resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367"
+  integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
 
 mimic-response@^1.0.0, mimic-response@^1.0.1:
   version "1.0.1"
@@ -1403,7 +1455,12 @@ minimist@^1.2.0, minimist@^1.2.5:
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
   integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
 
-mkdirp@^0.5.1, mkdirp@^0.5.4:
+mkdirp-classic@^0.5.2:
+  version "0.5.3"
+  resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
+  integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
+
+mkdirp@^0.5.4:
   version "0.5.5"
   resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
   integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
@@ -1430,10 +1487,12 @@ node-addon-api@^1.6.3:
   resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d"
   integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==
 
-node-fetch@2.6.1:
-  version "2.6.1"
-  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
-  integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
+node-fetch@2.6.5:
+  version "2.6.5"
+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd"
+  integrity sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==
+  dependencies:
+    whatwg-url "^5.0.0"
 
 normalize-url@^4.1.0:
   version "4.5.1"
@@ -1561,12 +1620,7 @@ process-nextick-args@~2.0.0:
   resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
   integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
 
-progress@2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31"
-  integrity sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==
-
-progress@^2.0.3:
+progress@2.0.3, progress@^2.0.3:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
   integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
@@ -1601,23 +1655,23 @@ pupa@^2.1.1:
   dependencies:
     escape-goat "^2.0.0"
 
-puppeteer@10.2.0:
-  version "10.2.0"
-  resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-10.2.0.tgz#7d8d7fda91e19a7cfd56986e0275448e6351849e"
-  integrity sha512-OR2CCHRashF+f30+LBOtAjK6sNtz2HEyTr5FqAvhf8lR/qB3uBRoIZOwQKgwoyZnMBsxX7ZdazlyBgGjpnkiMw==
+puppeteer@11.0.0:
+  version "11.0.0"
+  resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-11.0.0.tgz#0808719c38e15315ecc1b1c28911f1c9054d201f"
+  integrity sha512-6rPFqN1ABjn4shgOICGDBITTRV09EjXVqhDERBDKwCLz0UyBxeeBH6Ay0vQUJ84VACmlxwzOIzVEJXThcF3aNg==
   dependencies:
-    debug "4.3.1"
+    debug "4.3.2"
     devtools-protocol "0.0.901419"
     extract-zip "2.0.1"
     https-proxy-agent "5.0.0"
-    node-fetch "2.6.1"
+    node-fetch "2.6.5"
     pkg-dir "4.2.0"
-    progress "2.0.1"
+    progress "2.0.3"
     proxy-from-env "1.1.0"
     rimraf "3.0.2"
-    tar-fs "2.0.0"
-    unbzip2-stream "1.3.3"
-    ws "7.4.6"
+    tar-fs "2.1.1"
+    unbzip2-stream "1.4.3"
+    ws "8.2.3"
 
 rc@^1.2.8:
   version "1.2.8"
@@ -1795,9 +1849,9 @@ shebang-regex@^3.0.0:
   integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
 
 signal-exit@^3.0.0, signal-exit@^3.0.2:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.4.tgz#366a4684d175b9cab2081e3681fda3747b6c51d7"
-  integrity sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q==
+  version "3.0.6"
+  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af"
+  integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==
 
 slice-ansi@^1.0.0:
   version "1.0.0"
@@ -1812,9 +1866,9 @@ smart-buffer@^4.0.2:
   integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
 
 source-map-support@^0.5.19:
-  version "0.5.20"
-  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9"
-  integrity sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==
+  version "0.5.21"
+  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
+  integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
   dependencies:
     buffer-from "^1.0.0"
     source-map "^0.6.0"
@@ -1842,23 +1896,14 @@ string-width@^2.0.0:
     is-fullwidth-code-point "^2.0.0"
     strip-ansi "^4.0.0"
 
-string-width@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
-  integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
-  dependencies:
-    emoji-regex "^7.0.1"
-    is-fullwidth-code-point "^2.0.0"
-    strip-ansi "^5.1.0"
-
 string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2:
-  version "4.2.2"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5"
-  integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==
+  version "4.2.3"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+  integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
   dependencies:
     emoji-regex "^8.0.0"
     is-fullwidth-code-point "^3.0.0"
-    strip-ansi "^6.0.0"
+    strip-ansi "^6.0.1"
 
 string_decoder@^1.1.1:
   version "1.3.0"
@@ -1881,19 +1926,12 @@ strip-ansi@^4.0.0:
   dependencies:
     ansi-regex "^3.0.0"
 
-strip-ansi@^5.1.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
-  integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
   dependencies:
-    ansi-regex "^4.1.0"
-
-strip-ansi@^6.0.0:
-  version "6.0.0"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
-  integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
-  dependencies:
-    ansi-regex "^5.0.0"
+    ansi-regex "^5.0.1"
 
 strip-eof@^1.0.0:
   version "1.0.0"
@@ -1926,17 +1964,17 @@ supports-color@^7.1.0:
   dependencies:
     has-flag "^4.0.0"
 
-tar-fs@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.0.tgz#677700fc0c8b337a78bee3623fdc235f21d7afad"
-  integrity sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==
+tar-fs@2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784"
+  integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==
   dependencies:
     chownr "^1.1.1"
-    mkdirp "^0.5.1"
+    mkdirp-classic "^0.5.2"
     pump "^3.0.0"
-    tar-stream "^2.0.0"
+    tar-stream "^2.1.4"
 
-tar-stream@^2.0.0:
+tar-stream@^2.1.4:
   version "2.2.0"
   resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
   integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
@@ -1961,9 +1999,9 @@ through@^2.3.8:
   integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
 
 tmp-promise@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz#6e933782abff8b00c3119d63589ca1fb9caaa62a"
-  integrity sha512-OyCLAKU1HzBjL6Ev3gxUeraJNlbNingmi8IrHHEsYH8LTmEuhvYfqvhn2F/je+mjf4N58UmZ96OMEy1JanSCpA==
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7"
+  integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==
   dependencies:
     tmp "^0.2.0"
 
@@ -1979,6 +2017,11 @@ to-readable-stream@^1.0.0:
   resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771"
   integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==
 
+tr46@~0.0.3:
+  version "0.0.3"
+  resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+  integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
+
 truncate-utf8-bytes@^1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b"
@@ -2013,10 +2056,10 @@ typedarray@^0.0.6:
   resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
   integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
 
-unbzip2-stream@1.3.3:
-  version "1.3.3"
-  resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz#d156d205e670d8d8c393e1c02ebd506422873f6a"
-  integrity sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==
+unbzip2-stream@1.4.3:
+  version "1.4.3"
+  resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7"
+  integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==
   dependencies:
     buffer "^5.2.1"
     through "^2.3.8"
@@ -2083,14 +2126,27 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
   integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
 
 verror@^1.10.0:
-  version "1.10.0"
-  resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
-  integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
+  version "1.10.1"
+  resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.1.tgz#4bf09eeccf4563b109ed4b3d458380c972b0cdeb"
+  integrity sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==
   dependencies:
     assert-plus "^1.0.0"
     core-util-is "1.0.2"
     extsprintf "^1.2.0"
 
+webidl-conversions@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
+  integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
+
+whatwg-url@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
+  integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=
+  dependencies:
+    tr46 "~0.0.3"
+    webidl-conversions "^3.0.0"
+
 which@^1.2.9:
   version "1.3.1"
   resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
@@ -2136,10 +2192,10 @@ write-file-atomic@^3.0.0:
     signal-exit "^3.0.2"
     typedarray-to-buffer "^3.1.5"
 
-ws@7.4.6:
-  version "7.4.6"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
-  integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
+ws@8.2.3:
+  version "8.2.3"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba"
+  integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==
 
 xdg-basedir@^4.0.0:
   version "4.0.0"
@@ -2172,9 +2228,9 @@ yargs-parser@^20.2.2:
   integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
 
 yargs@^17.0.1:
-  version "17.1.1"
-  resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.1.1.tgz#c2a8091564bdb196f7c0a67c1d12e5b85b8067ba"
-  integrity sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==
+  version "17.2.1"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.2.1.tgz#e2c95b9796a0e1f7f3bf4427863b42e0418191ea"
+  integrity sha512-XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q==
   dependencies:
     cliui "^7.0.2"
     escalade "^3.1.1"
diff --git a/pkgs/tools/misc/sharedown/yarndeps.nix b/pkgs/tools/misc/sharedown/yarndeps.nix
index a980ad628f281..046a6c71bad2d 100644
--- a/pkgs/tools/misc/sharedown/yarndeps.nix
+++ b/pkgs/tools/misc/sharedown/yarndeps.nix
@@ -18,11 +18,11 @@
       };
     }
     {
-      name = "_electron_get___get_1.13.0.tgz";
+      name = "_electron_get___get_1.13.1.tgz";
       path = fetchurl {
-        name = "_electron_get___get_1.13.0.tgz";
-        url  = "https://registry.yarnpkg.com/@electron/get/-/get-1.13.0.tgz";
-        sha1 = "95c6bcaff4f9a505ea46792424f451efea89228c";
+        name = "_electron_get___get_1.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/@electron/get/-/get-1.13.1.tgz";
+        sha1 = "42a0aa62fd1189638bd966e23effaebb16108368";
       };
     }
     {
@@ -90,11 +90,11 @@
       };
     }
     {
-      name = "_types_glob___glob_7.1.4.tgz";
+      name = "_types_glob___glob_7.2.0.tgz";
       path = fetchurl {
-        name = "_types_glob___glob_7.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.4.tgz";
-        sha1 = "ea59e21d2ee5c517914cb4bc8e4153b99e566672";
+        name = "_types_glob___glob_7.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz";
+        sha1 = "bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb";
       };
     }
     {
@@ -114,19 +114,19 @@
       };
     }
     {
-      name = "_types_node___node_16.9.6.tgz";
+      name = "_types_node___node_16.11.10.tgz";
       path = fetchurl {
-        name = "_types_node___node_16.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-16.9.6.tgz";
-        sha1 = "040a64d7faf9e5d9e940357125f0963012e66f04";
+        name = "_types_node___node_16.11.10.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-16.11.10.tgz";
+        sha1 = "2e3ad0a680d96367103d3e670d41c2fed3da61ae";
       };
     }
     {
-      name = "_types_node___node_14.17.18.tgz";
+      name = "_types_node___node_14.17.34.tgz";
       path = fetchurl {
-        name = "_types_node___node_14.17.18.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.17.18.tgz";
-        sha1 = "0198489a751005f71217744aa966cd1f29447c81";
+        name = "_types_node___node_14.17.34.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.17.34.tgz";
+        sha1 = "fe4b38b3f07617c0fa31ae923fca9249641038f0";
       };
     }
     {
@@ -154,11 +154,11 @@
       };
     }
     {
-      name = "_types_yargs___yargs_16.0.4.tgz";
+      name = "_types_yargs___yargs_17.0.7.tgz";
       path = fetchurl {
-        name = "_types_yargs___yargs_16.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz";
-        sha1 = "26aad98dd2c2a38e421086ea9ad42b9e51642977";
+        name = "_types_yargs___yargs_17.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.7.tgz";
+        sha1 = "44a484c634761da4391477515a98772b82b5060f";
       };
     }
     {
@@ -194,11 +194,11 @@
       };
     }
     {
-      name = "ansi_align___ansi_align_3.0.0.tgz";
+      name = "ansi_align___ansi_align_3.0.1.tgz";
       path = fetchurl {
-        name = "ansi_align___ansi_align_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz";
-        sha1 = "b536b371cf687caaef236c18d3e21fe3797467cb";
+        name = "ansi_align___ansi_align_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz";
+        sha1 = "0cdf12e111ace773a86e9a1fad1225c43cb19a59";
       };
     }
     {
@@ -210,14 +210,6 @@
       };
     }
     {
-      name = "ansi_regex___ansi_regex_4.1.0.tgz";
-      path = fetchurl {
-        name = "ansi_regex___ansi_regex_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz";
-        sha1 = "8b9f8f08cf1acb843756a839ca8c7e3168c51997";
-      };
-    }
-    {
       name = "ansi_regex___ansi_regex_5.0.1.tgz";
       path = fetchurl {
         name = "ansi_regex___ansi_regex_5.0.1.tgz";
@@ -242,19 +234,19 @@
       };
     }
     {
-      name = "app_builder_bin___app_builder_bin_3.5.13.tgz";
+      name = "app_builder_bin___app_builder_bin_3.7.1.tgz";
       path = fetchurl {
-        name = "app_builder_bin___app_builder_bin_3.5.13.tgz";
-        url  = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.13.tgz";
-        sha1 = "6dd7f4de34a4e408806f99b8c7d6ef1601305b7e";
+        name = "app_builder_bin___app_builder_bin_3.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.7.1.tgz";
+        sha1 = "cb0825c5e12efc85b196ac3ed9c89f076c61040e";
       };
     }
     {
-      name = "app_builder_lib___app_builder_lib_22.11.7.tgz";
+      name = "app_builder_lib___app_builder_lib_22.14.5.tgz";
       path = fetchurl {
-        name = "app_builder_lib___app_builder_lib_22.11.7.tgz";
-        url  = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.11.7.tgz";
-        sha1 = "c0ad1119ebfbf4189a8280ad693625f5e684dca6";
+        name = "app_builder_lib___app_builder_lib_22.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.14.5.tgz";
+        sha1 = "a61a50b132b858e98fdc70b6b88994ae99b4f96d";
       };
     }
     {
@@ -306,6 +298,14 @@
       };
     }
     {
+      name = "asynckit___asynckit_0.4.0.tgz";
+      path = fetchurl {
+        name = "asynckit___asynckit_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
+        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+      };
+    }
+    {
       name = "at_least_node___at_least_node_1.0.0.tgz";
       path = fetchurl {
         name = "at_least_node___at_least_node_1.0.0.tgz";
@@ -314,11 +314,11 @@
       };
     }
     {
-      name = "axios___axios_0.21.4.tgz";
+      name = "axios___axios_0.24.0.tgz";
       path = fetchurl {
-        name = "axios___axios_0.21.4.tgz";
-        url  = "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz";
-        sha1 = "c67b90dc0568e5c1cf2b0b858c43ba28e2eda575";
+        name = "axios___axios_0.24.0.tgz";
+        url  = "https://registry.yarnpkg.com/axios/-/axios-0.24.0.tgz";
+        sha1 = "804e6fa1e4b9c5288501dd9dff56a7a0940d20d6";
       };
     }
     {
@@ -370,11 +370,11 @@
       };
     }
     {
-      name = "bootstrap___bootstrap_5.1.1.tgz";
+      name = "bootstrap___bootstrap_5.1.3.tgz";
       path = fetchurl {
-        name = "bootstrap___bootstrap_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.1.tgz";
-        sha1 = "9d6eed81e08feaccedf3adaca51fe4b73a2871df";
+        name = "bootstrap___bootstrap_5.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.3.tgz";
+        sha1 = "ba081b0c130f810fa70900acbc1c6d3c28fa8f34";
       };
     }
     {
@@ -394,6 +394,22 @@
       };
     }
     {
+      name = "buffer_alloc_unsafe___buffer_alloc_unsafe_1.1.0.tgz";
+      path = fetchurl {
+        name = "buffer_alloc_unsafe___buffer_alloc_unsafe_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz";
+        sha1 = "bd7dc26ae2972d0eda253be061dba992349c19f0";
+      };
+    }
+    {
+      name = "buffer_alloc___buffer_alloc_1.2.0.tgz";
+      path = fetchurl {
+        name = "buffer_alloc___buffer_alloc_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz";
+        sha1 = "890dd90d923a873e08e10e5fd51a57e5b7cce0ec";
+      };
+    }
+    {
       name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
       path = fetchurl {
         name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
@@ -410,6 +426,14 @@
       };
     }
     {
+      name = "buffer_fill___buffer_fill_1.0.0.tgz";
+      path = fetchurl {
+        name = "buffer_fill___buffer_fill_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz";
+        sha1 = "f8f78b76789888ef39f205cd637f68e702122b2c";
+      };
+    }
+    {
       name = "buffer_from___buffer_from_1.1.2.tgz";
       path = fetchurl {
         name = "buffer_from___buffer_from_1.1.2.tgz";
@@ -426,27 +450,19 @@
       };
     }
     {
-      name = "builder_util_runtime___builder_util_runtime_8.7.6.tgz";
-      path = fetchurl {
-        name = "builder_util_runtime___builder_util_runtime_8.7.6.tgz";
-        url  = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.6.tgz";
-        sha1 = "4b43c96db2bd494ced7694bcd7674934655e8324";
-      };
-    }
-    {
-      name = "builder_util_runtime___builder_util_runtime_8.7.7.tgz";
+      name = "builder_util_runtime___builder_util_runtime_8.9.1.tgz";
       path = fetchurl {
-        name = "builder_util_runtime___builder_util_runtime_8.7.7.tgz";
-        url  = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.7.tgz";
-        sha1 = "6c83cc3abe7a7a5c8b4ec8878f68adc828c07f0d";
+        name = "builder_util_runtime___builder_util_runtime_8.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.9.1.tgz";
+        sha1 = "25f066b3fbc20b3e6236a9b956b1ebb0e33ff66a";
       };
     }
     {
-      name = "builder_util___builder_util_22.11.7.tgz";
+      name = "builder_util___builder_util_22.14.5.tgz";
       path = fetchurl {
-        name = "builder_util___builder_util_22.11.7.tgz";
-        url  = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.11.7.tgz";
-        sha1 = "ae9707afa6a31feafa13c274ac83b4fe28ef1467";
+        name = "builder_util___builder_util_22.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.14.5.tgz";
+        sha1 = "42a18608d2a566c0846e91266464776c8bfb0cc9";
       };
     }
     {
@@ -458,11 +474,11 @@
       };
     }
     {
-      name = "camelcase___camelcase_6.2.0.tgz";
+      name = "camelcase___camelcase_6.2.1.tgz";
       path = fetchurl {
-        name = "camelcase___camelcase_6.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz";
-        sha1 = "924af881c9d525ac9d87f40d964e5cea982a1809";
+        name = "camelcase___camelcase_6.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.1.tgz";
+        sha1 = "250fd350cfd555d0d2160b1d51510eaf8326e86e";
       };
     }
     {
@@ -514,11 +530,11 @@
       };
     }
     {
-      name = "ci_info___ci_info_3.2.0.tgz";
+      name = "ci_info___ci_info_3.3.0.tgz";
       path = fetchurl {
-        name = "ci_info___ci_info_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz";
-        sha1 = "2876cb948a498797b5236f0095bc057d0dca38b6";
+        name = "ci_info___ci_info_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz";
+        sha1 = "b4ed1fb6818dea4803a55c623041f9165d2066b2";
       };
     }
     {
@@ -602,6 +618,14 @@
       };
     }
     {
+      name = "combined_stream___combined_stream_1.0.8.tgz";
+      path = fetchurl {
+        name = "combined_stream___combined_stream_1.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz";
+        sha1 = "c3d45a8b34fd730631a110a8a2520682b31d5a7f";
+      };
+    }
+    {
       name = "commander___commander_2.9.0.tgz";
       path = fetchurl {
         name = "commander___commander_2.9.0.tgz";
@@ -618,6 +642,14 @@
       };
     }
     {
+      name = "compare_version___compare_version_0.1.2.tgz";
+      path = fetchurl {
+        name = "compare_version___compare_version_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz";
+        sha1 = "0162ec2d9351f5ddd59a9202cba935366a725080";
+      };
+    }
+    {
       name = "concat_map___concat_map_0.0.1.tgz";
       path = fetchurl {
         name = "concat_map___concat_map_0.0.1.tgz";
@@ -650,14 +682,6 @@
       };
     }
     {
-      name = "core_js___core_js_3.18.0.tgz";
-      path = fetchurl {
-        name = "core_js___core_js_3.18.0.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.18.0.tgz";
-        sha1 = "9af3f4a6df9ba3428a3fb1b171f1503b3f40cc49";
-      };
-    }
-    {
       name = "core_util_is___core_util_is_1.0.2.tgz";
       path = fetchurl {
         name = "core_util_is___core_util_is_1.0.2.tgz";
@@ -722,14 +746,6 @@
       };
     }
     {
-      name = "debug___debug_4.3.1.tgz";
-      path = fetchurl {
-        name = "debug___debug_4.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz";
-        sha1 = "f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee";
-      };
-    }
-    {
       name = "debug___debug_2.6.9.tgz";
       path = fetchurl {
         name = "debug___debug_2.6.9.tgz";
@@ -770,6 +786,14 @@
       };
     }
     {
+      name = "delayed_stream___delayed_stream_1.0.0.tgz";
+      path = fetchurl {
+        name = "delayed_stream___delayed_stream_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
+        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+      };
+    }
+    {
       name = "detect_node___detect_node_2.1.0.tgz";
       path = fetchurl {
         name = "detect_node___detect_node_2.1.0.tgz";
@@ -794,11 +818,11 @@
       };
     }
     {
-      name = "dmg_builder___dmg_builder_22.11.7.tgz";
+      name = "dmg_builder___dmg_builder_22.14.5.tgz";
       path = fetchurl {
-        name = "dmg_builder___dmg_builder_22.11.7.tgz";
-        url  = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.11.7.tgz";
-        sha1 = "5956008c18d40ee72c0ea01ffea9590dbf51df89";
+        name = "dmg_builder___dmg_builder_22.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.14.5.tgz";
+        sha1 = "137c0b55e639badcc0b119eb060e6fa4ed61d948";
       };
     }
     {
@@ -850,35 +874,35 @@
       };
     }
     {
-      name = "electron_builder___electron_builder_22.11.7.tgz";
+      name = "electron_builder___electron_builder_22.14.5.tgz";
       path = fetchurl {
-        name = "electron_builder___electron_builder_22.11.7.tgz";
-        url  = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.11.7.tgz";
-        sha1 = "cd97a0d9f6e6d388112e66b4376de431cca4d596";
+        name = "electron_builder___electron_builder_22.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.14.5.tgz";
+        sha1 = "3a25547bd4fe3728d4704da80956a794c5c31496";
       };
     }
     {
-      name = "electron_publish___electron_publish_22.11.7.tgz";
+      name = "electron_osx_sign___electron_osx_sign_0.5.0.tgz";
       path = fetchurl {
-        name = "electron_publish___electron_publish_22.11.7.tgz";
-        url  = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.11.7.tgz";
-        sha1 = "4126cbb08ccf082a2aa7fef89ee629b3a4b8ae9a";
+        name = "electron_osx_sign___electron_osx_sign_0.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/electron-osx-sign/-/electron-osx-sign-0.5.0.tgz";
+        sha1 = "fc258c5e896859904bbe3d01da06902c04b51c3a";
       };
     }
     {
-      name = "electron___electron_15.0.0.tgz";
+      name = "electron_publish___electron_publish_22.14.5.tgz";
       path = fetchurl {
-        name = "electron___electron_15.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/electron/-/electron-15.0.0.tgz";
-        sha1 = "b1b6244b1cffddf348c27c54b1310b3a3680246e";
+        name = "electron_publish___electron_publish_22.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.14.5.tgz";
+        sha1 = "34bcdce671f0e651330db20040d6919c77c94bd6";
       };
     }
     {
-      name = "emoji_regex___emoji_regex_7.0.3.tgz";
+      name = "electron___electron_15.3.2.tgz";
       path = fetchurl {
-        name = "emoji_regex___emoji_regex_7.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz";
-        sha1 = "933a04052860c85e83c122479c4748a8e4c72156";
+        name = "electron___electron_15.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/electron/-/electron-15.3.2.tgz";
+        sha1 = "4f0cbad781d14e0194f5dfef1709e09a70c8074a";
       };
     }
     {
@@ -978,11 +1002,11 @@
       };
     }
     {
-      name = "extsprintf___extsprintf_1.4.0.tgz";
+      name = "extsprintf___extsprintf_1.4.1.tgz";
       path = fetchurl {
-        name = "extsprintf___extsprintf_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
-        sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
+        name = "extsprintf___extsprintf_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz";
+        sha1 = "8d172c064867f235c0c84a596806d279bf4bcc07";
       };
     }
     {
@@ -1026,11 +1050,11 @@
       };
     }
     {
-      name = "follow_redirects___follow_redirects_1.14.4.tgz";
+      name = "follow_redirects___follow_redirects_1.14.5.tgz";
       path = fetchurl {
-        name = "follow_redirects___follow_redirects_1.14.4.tgz";
-        url  = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.4.tgz";
-        sha1 = "838fdf48a8bbdd79e52ee51fb1c94e3ed98b9379";
+        name = "follow_redirects___follow_redirects_1.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.5.tgz";
+        sha1 = "f09a5848981d3c772b5392309778523f8d85c381";
       };
     }
     {
@@ -1042,6 +1066,14 @@
       };
     }
     {
+      name = "form_data___form_data_4.0.0.tgz";
+      path = fetchurl {
+        name = "form_data___form_data_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz";
+        sha1 = "93919daeaf361ee529584b9b31664dc12c9fa452";
+      };
+    }
+    {
       name = "fs_constants___fs_constants_1.0.0.tgz";
       path = fetchurl {
         name = "fs_constants___fs_constants_1.0.0.tgz";
@@ -1106,19 +1138,19 @@
       };
     }
     {
-      name = "glob___glob_7.1.7.tgz";
+      name = "glob___glob_7.2.0.tgz";
       path = fetchurl {
-        name = "glob___glob_7.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz";
-        sha1 = "3b193e9233f01d42d0b3f78294bbeeb418f94a90";
+        name = "glob___glob_7.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz";
+        sha1 = "d15535af7732e02e948f4c41628bd910293f6023";
       };
     }
     {
-      name = "global_agent___global_agent_2.2.0.tgz";
+      name = "global_agent___global_agent_3.0.0.tgz";
       path = fetchurl {
-        name = "global_agent___global_agent_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz";
-        sha1 = "566331b0646e6bf79429a16877685c4a1fbf76dc";
+        name = "global_agent___global_agent_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz";
+        sha1 = "ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6";
       };
     }
     {
@@ -1306,11 +1338,11 @@
       };
     }
     {
-      name = "is_ci___is_ci_3.0.0.tgz";
+      name = "is_ci___is_ci_3.0.1.tgz";
       path = fetchurl {
-        name = "is_ci___is_ci_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz";
-        sha1 = "c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994";
+        name = "is_ci___is_ci_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz";
+        sha1 = "db6ecbed1bd659c43dac0f45661e7674103d1867";
       };
     }
     {
@@ -1410,6 +1442,14 @@
       };
     }
     {
+      name = "isbinaryfile___isbinaryfile_3.0.3.tgz";
+      path = fetchurl {
+        name = "isbinaryfile___isbinaryfile_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.3.tgz";
+        sha1 = "5d6def3edebf6e8ca8cae9c30183a804b5f8be80";
+      };
+    }
+    {
       name = "isbinaryfile___isbinaryfile_4.0.8.tgz";
       path = fetchurl {
         name = "isbinaryfile___isbinaryfile_4.0.8.tgz";
@@ -1586,11 +1626,27 @@
       };
     }
     {
-      name = "mime___mime_2.5.2.tgz";
+      name = "mime_db___mime_db_1.51.0.tgz";
+      path = fetchurl {
+        name = "mime_db___mime_db_1.51.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz";
+        sha1 = "d9ff62451859b18342d960850dc3cfb77e63fb0c";
+      };
+    }
+    {
+      name = "mime_types___mime_types_2.1.34.tgz";
+      path = fetchurl {
+        name = "mime_types___mime_types_2.1.34.tgz";
+        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz";
+        sha1 = "5a712f9ec1503511a945803640fafe09d3793c24";
+      };
+    }
+    {
+      name = "mime___mime_2.6.0.tgz";
       path = fetchurl {
-        name = "mime___mime_2.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz";
-        sha1 = "6e3dc6cc2b9510643830e5f19d5cb753da5eeabe";
+        name = "mime___mime_2.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz";
+        sha1 = "a2a682a95cd4d0cb1d6257e28f83da7e35800367";
       };
     }
     {
@@ -1618,6 +1674,14 @@
       };
     }
     {
+      name = "mkdirp_classic___mkdirp_classic_0.5.3.tgz";
+      path = fetchurl {
+        name = "mkdirp_classic___mkdirp_classic_0.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz";
+        sha1 = "fa10c9115cc6d8865be221ba47ee9bed78601113";
+      };
+    }
+    {
       name = "mkdirp___mkdirp_0.5.5.tgz";
       path = fetchurl {
         name = "mkdirp___mkdirp_0.5.5.tgz";
@@ -1658,11 +1722,11 @@
       };
     }
     {
-      name = "node_fetch___node_fetch_2.6.1.tgz";
+      name = "node_fetch___node_fetch_2.6.5.tgz";
       path = fetchurl {
-        name = "node_fetch___node_fetch_2.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz";
-        sha1 = "045bd323631f76ed2e2b55573394416b639a0052";
+        name = "node_fetch___node_fetch_2.6.5.tgz";
+        url  = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz";
+        sha1 = "42735537d7f080a7e5f78b6c549b7146be1742fd";
       };
     }
     {
@@ -1834,14 +1898,6 @@
       };
     }
     {
-      name = "progress___progress_2.0.1.tgz";
-      path = fetchurl {
-        name = "progress___progress_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz";
-        sha1 = "c9242169342b1c29d275889c95734621b1952e31";
-      };
-    }
-    {
       name = "progress___progress_2.0.3.tgz";
       path = fetchurl {
         name = "progress___progress_2.0.3.tgz";
@@ -1890,11 +1946,11 @@
       };
     }
     {
-      name = "puppeteer___puppeteer_10.2.0.tgz";
+      name = "puppeteer___puppeteer_11.0.0.tgz";
       path = fetchurl {
-        name = "puppeteer___puppeteer_10.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/puppeteer/-/puppeteer-10.2.0.tgz";
-        sha1 = "7d8d7fda91e19a7cfd56986e0275448e6351849e";
+        name = "puppeteer___puppeteer_11.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/puppeteer/-/puppeteer-11.0.0.tgz";
+        sha1 = "0808719c38e15315ecc1b1c28911f1c9054d201f";
       };
     }
     {
@@ -2098,11 +2154,11 @@
       };
     }
     {
-      name = "signal_exit___signal_exit_3.0.4.tgz";
+      name = "signal_exit___signal_exit_3.0.6.tgz";
       path = fetchurl {
-        name = "signal_exit___signal_exit_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.4.tgz";
-        sha1 = "366a4684d175b9cab2081e3681fda3747b6c51d7";
+        name = "signal_exit___signal_exit_3.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz";
+        sha1 = "24e630c4b0f03fea446a2bd299e62b4a6ca8d0af";
       };
     }
     {
@@ -2122,11 +2178,11 @@
       };
     }
     {
-      name = "source_map_support___source_map_support_0.5.20.tgz";
+      name = "source_map_support___source_map_support_0.5.21.tgz";
       path = fetchurl {
-        name = "source_map_support___source_map_support_0.5.20.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz";
-        sha1 = "12166089f8f5e5e8c56926b377633392dd2cb6c9";
+        name = "source_map_support___source_map_support_0.5.21.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz";
+        sha1 = "04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f";
       };
     }
     {
@@ -2162,19 +2218,11 @@
       };
     }
     {
-      name = "string_width___string_width_3.1.0.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz";
-        sha1 = "22767be21b62af1081574306f69ac51b62203961";
-      };
-    }
-    {
-      name = "string_width___string_width_4.2.2.tgz";
+      name = "string_width___string_width_4.2.3.tgz";
       path = fetchurl {
-        name = "string_width___string_width_4.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz";
-        sha1 = "dafd4f9559a7585cfba529c6a0a4f73488ebd4c5";
+        name = "string_width___string_width_4.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz";
+        sha1 = "269c7117d27b05ad2e536830a8ec895ef9c6d010";
       };
     }
     {
@@ -2202,19 +2250,11 @@
       };
     }
     {
-      name = "strip_ansi___strip_ansi_5.2.0.tgz";
+      name = "strip_ansi___strip_ansi_6.0.1.tgz";
       path = fetchurl {
-        name = "strip_ansi___strip_ansi_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz";
-        sha1 = "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae";
-      };
-    }
-    {
-      name = "strip_ansi___strip_ansi_6.0.0.tgz";
-      path = fetchurl {
-        name = "strip_ansi___strip_ansi_6.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz";
-        sha1 = "0b1571dd7669ccd4f3e06e14ef1eed26225ae532";
+        name = "strip_ansi___strip_ansi_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz";
+        sha1 = "9e26c63d30f53443e9489495b2105d37b67a85d9";
       };
     }
     {
@@ -2258,11 +2298,11 @@
       };
     }
     {
-      name = "tar_fs___tar_fs_2.0.0.tgz";
+      name = "tar_fs___tar_fs_2.1.1.tgz";
       path = fetchurl {
-        name = "tar_fs___tar_fs_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.0.tgz";
-        sha1 = "677700fc0c8b337a78bee3623fdc235f21d7afad";
+        name = "tar_fs___tar_fs_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz";
+        sha1 = "489a15ab85f1f0befabb370b7de4f9eb5cbe8784";
       };
     }
     {
@@ -2290,11 +2330,11 @@
       };
     }
     {
-      name = "tmp_promise___tmp_promise_3.0.2.tgz";
+      name = "tmp_promise___tmp_promise_3.0.3.tgz";
       path = fetchurl {
-        name = "tmp_promise___tmp_promise_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.2.tgz";
-        sha1 = "6e933782abff8b00c3119d63589ca1fb9caaa62a";
+        name = "tmp_promise___tmp_promise_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz";
+        sha1 = "60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7";
       };
     }
     {
@@ -2314,6 +2354,14 @@
       };
     }
     {
+      name = "tr46___tr46_0.0.3.tgz";
+      path = fetchurl {
+        name = "tr46___tr46_0.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz";
+        sha1 = "8184fd347dac9cdc185992f3a6622e14b9d9ab6a";
+      };
+    }
+    {
       name = "truncate_utf8_bytes___truncate_utf8_bytes_1.0.2.tgz";
       path = fetchurl {
         name = "truncate_utf8_bytes___truncate_utf8_bytes_1.0.2.tgz";
@@ -2362,11 +2410,11 @@
       };
     }
     {
-      name = "unbzip2_stream___unbzip2_stream_1.3.3.tgz";
+      name = "unbzip2_stream___unbzip2_stream_1.4.3.tgz";
       path = fetchurl {
-        name = "unbzip2_stream___unbzip2_stream_1.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz";
-        sha1 = "d156d205e670d8d8c393e1c02ebd506422873f6a";
+        name = "unbzip2_stream___unbzip2_stream_1.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz";
+        sha1 = "b0da04c4371311df771cdc215e87f2130991ace7";
       };
     }
     {
@@ -2434,11 +2482,27 @@
       };
     }
     {
-      name = "verror___verror_1.10.0.tgz";
+      name = "verror___verror_1.10.1.tgz";
+      path = fetchurl {
+        name = "verror___verror_1.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/verror/-/verror-1.10.1.tgz";
+        sha1 = "4bf09eeccf4563b109ed4b3d458380c972b0cdeb";
+      };
+    }
+    {
+      name = "webidl_conversions___webidl_conversions_3.0.1.tgz";
+      path = fetchurl {
+        name = "webidl_conversions___webidl_conversions_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz";
+        sha1 = "24534275e2a7bc6be7bc86611cc16ae0a5654871";
+      };
+    }
+    {
+      name = "whatwg_url___whatwg_url_5.0.0.tgz";
       path = fetchurl {
-        name = "verror___verror_1.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
-        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+        name = "whatwg_url___whatwg_url_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz";
+        sha1 = "966454e8765462e37644d3626f6742ce8b70965d";
       };
     }
     {
@@ -2490,11 +2554,11 @@
       };
     }
     {
-      name = "ws___ws_7.4.6.tgz";
+      name = "ws___ws_8.2.3.tgz";
       path = fetchurl {
-        name = "ws___ws_7.4.6.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz";
-        sha1 = "5654ca8ecdeee47c33a9a4bf6d28e2be2980377c";
+        name = "ws___ws_8.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz";
+        sha1 = "63a56456db1b04367d0b721a0b80cae6d8becbba";
       };
     }
     {
@@ -2546,11 +2610,11 @@
       };
     }
     {
-      name = "yargs___yargs_17.1.1.tgz";
+      name = "yargs___yargs_17.2.1.tgz";
       path = fetchurl {
-        name = "yargs___yargs_17.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-17.1.1.tgz";
-        sha1 = "c2a8091564bdb196f7c0a67c1d12e5b85b8067ba";
+        name = "yargs___yargs_17.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-17.2.1.tgz";
+        sha1 = "e2c95b9796a0e1f7f3bf4427863b42e0418191ea";
       };
     }
     {
diff --git a/pkgs/tools/misc/smenu/default.nix b/pkgs/tools/misc/smenu/default.nix
index 5ba4164346f66..3ee4de082bd38 100644
--- a/pkgs/tools/misc/smenu/default.nix
+++ b/pkgs/tools/misc/smenu/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub, ncurses }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.18";
+  version = "0.9.19";
   pname = "smenu";
 
   src = fetchFromGitHub {
     owner = "p-gen";
     repo = "smenu";
     rev = "v${version}";
-    sha256 = "sha256-8ALY3dsUEJxGsDnYTOxNAmJbwmmZIV8GuHjNg0vPFUQ=";
+    sha256 = "sha256-0ZA8Op1IMZMJ7g1waK2uOYOCDfqPfiqnnjopGtBW1w8=";
   };
 
   buildInputs = [ ncurses ];
diff --git a/pkgs/tools/misc/starship/default.nix b/pkgs/tools/misc/starship/default.nix
index 47a81989cde6e..89d4bb662da7d 100644
--- a/pkgs/tools/misc/starship/default.nix
+++ b/pkgs/tools/misc/starship/default.nix
@@ -11,13 +11,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "1.0.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "starship";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-KU9IbvQ6qPbSoHVRN/g7iETV47Y4wMMESzpRHMQ0Uxw=";
+    sha256 = "sha256-Rr0HCr/uJDsBQiKJIPdEL3WOaLgMY2Nq2JGOq4dEUxQ=";
   };
 
   nativeBuildInputs = [ installShellFiles ] ++ lib.optionals stdenv.isLinux [ pkg-config ];
@@ -25,6 +25,8 @@ rustPlatform.buildRustPackage rec {
   buildInputs = lib.optionals stdenv.isLinux [ openssl ]
     ++ lib.optionals stdenv.isDarwin [ libiconv Security ];
 
+  buildFeatures = lib.optional (!stdenv.isDarwin) "notify-rust";
+
   postInstall = ''
     for shell in bash fish zsh; do
       STARSHIP_CACHE=$TMPDIR $out/bin/starship completions $shell > starship.$shell
@@ -32,7 +34,7 @@ rustPlatform.buildRustPackage rec {
     done
   '';
 
-  cargoSha256 = "sha256-IzTRvvQ1uHS2WY2Cf8VQOq423PjwXYNW4bub0ZyvTIE=";
+  cargoSha256 = "sha256-UT6t1GbyON/wrIF/oXXhsT3Z61LFjggSPWKpSDHp+PI=";
 
   preCheck = ''
     HOME=$TMPDIR
diff --git a/pkgs/tools/misc/stderred/default.nix b/pkgs/tools/misc/stderred/default.nix
new file mode 100644
index 0000000000000..f159e4328c9c4
--- /dev/null
+++ b/pkgs/tools/misc/stderred/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, lib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "stderred";
+  version = "unstable-2021-04-28";
+
+  src = fetchFromGitHub {
+    owner = "sickill";
+    repo = "stderred";
+    rev = "b2238f7c72afb89ca9aaa2944d7f4db8141057ea";
+    sha256 = "sha256-k/EA327AsRHgUYu7QqSF5yzOyO6h5XcE9Uv4l1VcIPI=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  sourceRoot = "${src.name}/src";
+
+  meta = with lib; {
+    description = "stderr in red";
+    homepage = "https://github.com/sickill/stderred";
+    license = licenses.mit;
+    maintainers = with maintainers; [ vojta001 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/misc/steampipe/default.nix b/pkgs/tools/misc/steampipe/default.nix
index 4885b48b339cd..f3cd9b785f2fb 100644
--- a/pkgs/tools/misc/steampipe/default.nix
+++ b/pkgs/tools/misc/steampipe/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "steampipe";
-  version = "0.9.1";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "turbot";
     repo = "steampipe";
     rev = "v${version}";
-    sha256 = "sha256-asAqRCJdy8HmzWzuE9nSvxqo6EVY8tkljzEFAClogrs=";
+    sha256 = "sha256-P/Fys9/V71+VL5Az3EGGaW+tdeQbr2wO+jvVSVZmJT0=";
   };
 
-  vendorSha256 = "sha256-3JBCiF1gxGCVn81s7abGvNIAy+eP7orAnSBOXUNImao=";
+  vendorSha256 = "sha256-PYaq74NNEOJ1jZ6PoS6zcTiUN4JA9JDjO7GB9tqgT6c=";
 
   # tests are failing for no obvious reasons
   doCheck = false;
diff --git a/pkgs/tools/misc/svtplay-dl/default.nix b/pkgs/tools/misc/svtplay-dl/default.nix
index ba065d322b86b..ad045aa1d9245 100644
--- a/pkgs/tools/misc/svtplay-dl/default.nix
+++ b/pkgs/tools/misc/svtplay-dl/default.nix
@@ -9,13 +9,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "svtplay-dl";
-  version = "4.9";
+  version = "4.10";
 
   src = fetchFromGitHub {
     owner = "spaam";
     repo = "svtplay-dl";
     rev = version;
-    sha256 = "01jbhydj6q1zgzsrs9prpsc3ycqzisx4jqm70dikkmsr5b64hhni";
+    sha256 = "sha256-JK/JtGDmmTJ+g0kmM7mSJi7+/N552GKtlMkh7quOBjo=";
   };
 
   pythonPaths = [ cryptography pyyaml requests ];
diff --git a/pkgs/tools/misc/synth/default.nix b/pkgs/tools/misc/synth/default.nix
index 1b1efb36fe53b..8bfca884f1f89 100644
--- a/pkgs/tools/misc/synth/default.nix
+++ b/pkgs/tools/misc/synth/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "synth";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "getsynth";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-VsvGrlFmn8Q7dhvo3Buy8G0oeNErtBT4lZ8k8WFC8Zo=";
+    sha256 = "sha256-MeZ5bkOMTJVvaBfGahKsXvaYhfMKcYzPFsBp/p2dPQQ=";
   };
 
-  cargoSha256 = "sha256-10b2n7wMuBt90GZ6AVnSMT7r2501tounw13eJhyrmS4=";
+  cargoSha256 = "sha256-lNeDpUla/PfGd/AogdcOtrmL1Jp+0Ji9LH1CF7uOEe0=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/tools/misc/timidity/default.nix b/pkgs/tools/misc/timidity/default.nix
index 42d6d5da4e087..1f0e68bb9c078 100644
--- a/pkgs/tools/misc/timidity/default.nix
+++ b/pkgs/tools/misc/timidity/default.nix
@@ -1,4 +1,7 @@
-{ lib, stdenv, fetchurl, alsa-lib, libjack2, CoreAudio, ncurses, pkg-config }:
+{ lib, stdenv, fetchurl
+, pkg-config, buildPackages
+, CoreAudio, alsa-lib, libjack2, ncurses
+}:
 
 stdenv.mkDerivation rec {
   pname = "timidity";
@@ -23,12 +26,20 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--enable-ncurses"
+    "lib_cv_va_copy=yes"
+    "lib_cv___va_copy=yes"
   ] ++ lib.optionals stdenv.isLinux [
     "--enable-audio=oss,alsa,jack"
     "--enable-alsaseq"
     "--with-default-output=alsa"
+    "lib_cv_va_val_copy=yes"
   ] ++ lib.optionals stdenv.isDarwin [
     "--enable-audio=darwin,jack"
+    "lib_cv_va_val_copy=no"
+  ];
+
+  makeFlags = [
+    "AR=${stdenv.cc.targetPrefix}ar"
   ];
 
   NIX_LDFLAGS = "-ljack -L${libjack2}/lib";
@@ -38,6 +49,13 @@ stdenv.mkDerivation rec {
     sha256 = "0lsh9l8l5h46z0y8ybsjd4pf6c22n33jsjvapfv3rjlfnasnqw67";
   };
 
+  preBuild = ''
+    # calcnewt has to be built with the host compiler.
+    ${buildPackages.stdenv.cc}/bin/cc -o timidity/calcnewt -lm timidity/calcnewt.c
+    # Remove dependencies of calcnewt so it doesn't try to remake it.
+    sed -i 's/^\(calcnewt\$(EXEEXT):\).*/\1/g' timidity/Makefile
+  '';
+
   # the instruments could be compressed (?)
   postInstall = ''
     mkdir -p $out/share/timidity/;
diff --git a/pkgs/tools/misc/tio/default.nix b/pkgs/tools/misc/tio/default.nix
index 9b8e76f10c435..b49cfa44c18dc 100644
--- a/pkgs/tools/misc/tio/default.nix
+++ b/pkgs/tools/misc/tio/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     description = "Serial console TTY";
     homepage = "https://tio.github.io/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ yegortimoshenko ];
+    maintainers = with maintainers; [ yana ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/tldr/default.nix b/pkgs/tools/misc/tldr/default.nix
index dfde5a9113bee..05d3026e76f4c 100644
--- a/pkgs/tools/misc/tldr/default.nix
+++ b/pkgs/tools/misc/tldr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tldr";
-  version = "1.3.0";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "tldr-pages";
     repo = "tldr-cpp-client";
     rev = "v${version}";
-    sha256 = "10ylpiqc06p0qpma72vwksd7hd107s0vlx9c6s9rz4vc3i274lb6";
+    sha256 = "sha256-dsEqnHIs6vamdfLrkstRcV90tt7QcKIJwrPr+ksTVlQ=";
   };
 
   buildInputs = [ curl libzip ];
diff --git a/pkgs/tools/misc/topgrade/default.nix b/pkgs/tools/misc/topgrade/default.nix
index deb9f9070051d..99d6a0100e564 100644
--- a/pkgs/tools/misc/topgrade/default.nix
+++ b/pkgs/tools/misc/topgrade/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "topgrade";
-  version = "8.0.3";
+  version = "8.1.2";
 
   src = fetchFromGitHub {
     owner = "r-darwish";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-yk8mW07VmABq4XSOcNKYSs04xpZQfzdDBeQFGFP6u/Y=";
+    sha256 = "sha256-2ID3VVT4cQ1yZAD2WVKqkoE7qbe2nNMp1nlwfTxmlZo=";
   };
 
-  cargoSha256 = "sha256-rX4ZfcGlKe+v9UvvfWODaulAVkUbq2jvtuHP504uiX4=";
+  cargoSha256 = "sha256-o1V6u7FmP+p+ApL0AmaqTQTZ2f0sZTpx2ro4lR/DFi8=";
 
   buildInputs = lib.optional stdenv.isDarwin Foundation;
 
diff --git a/pkgs/tools/misc/toybox/default.nix b/pkgs/tools/misc/toybox/default.nix
index 0f41f15d9fdbd..07c875a94ccd2 100644
--- a/pkgs/tools/misc/toybox/default.nix
+++ b/pkgs/tools/misc/toybox/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "toybox";
-  version = "0.8.5";
+  version = "0.8.6";
 
   src = fetchFromGitHub {
     owner = "landley";
     repo = pname;
     rev = version;
-    sha256 = "sha256-32LQiPsBjBh5LpRZuaYT+Dr/oETNTQERGqrpwWPhMTo=";
+    sha256 = "sha256-NbONJten685wekfCwbOOQxdS3B2/Ljfp/jdTa7D4U+M=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ]; # needed for cross
diff --git a/pkgs/tools/misc/trillian/default.nix b/pkgs/tools/misc/trillian/default.nix
index 9959fe9375bea..f86ad7a909a62 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.3.13";
-  vendorSha256 = "1ad0vaw0k57njzk9x233iqjbplyvw66qjk8r9j7sx87pdc6a4lpb";
+  version = "1.4.0";
+  vendorSha256 = "sha256-n5PD3CGgNGrqSYLJS+3joGFNue2fF/tdimC6CtO15yU=";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ns394yd4js9g1psd1dkrffidyzixqvjp5lhw2x2iycrxbnm3y44";
+    sha256 = "sha256-c7Sii6GMWZOeD46OwdkXU/wt9zY+EyPSnahYPJQKJcA=";
   };
 
   subPackages = [
diff --git a/pkgs/tools/misc/vector/default.nix b/pkgs/tools/misc/vector/default.nix
index ab75f4349ccd8..379c896210166 100644
--- a/pkgs/tools/misc/vector/default.nix
+++ b/pkgs/tools/misc/vector/default.nix
@@ -14,6 +14,7 @@
 , coreutils
 , CoreServices
 , tzdata
+, cmake
   # kafka is optional but one of the most used features
 , enableKafka ? true
   # TODO investigate adding "api" "api-client" "vrl-cli" and various "vendor-*"
@@ -28,7 +29,7 @@
 
 let
   pname = "vector";
-  version = "0.18.0";
+  version = "0.19.0";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -37,11 +38,11 @@ rustPlatform.buildRustPackage {
     owner = "timberio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-vkiTvJevslXEF2lDTr2IL2vFBQ+dj1N636Livncsso4=";
+    sha256 = "sha256-A+Ok/BNEs0V00B8P6ghSHZ2pQ8tumfpkurplnvjpWZ8=";
   };
 
-  cargoSha256 = "sha256-u7GzqQex5pqU7DuueMfbxMSOpAzd+uLQTZ2laG/aC+4=";
-  nativeBuildInputs = [ pkg-config ];
+  cargoSha256 = "sha256-B9z+8TqAl0yFaou1LfNcFsDJjw7qGti6MakDPhz49tc=";
+  nativeBuildInputs = [ pkg-config cmake ];
   buildInputs = [ oniguruma openssl protobuf rdkafka zstd ]
     ++ lib.optionals stdenv.isDarwin [ Security libiconv coreutils CoreServices ];
 
diff --git a/pkgs/tools/misc/veikk-linux-driver-gui/default.nix b/pkgs/tools/misc/veikk-linux-driver-gui/default.nix
index a833846dd00f0..1c7dfd20330cb 100644
--- a/pkgs/tools/misc/veikk-linux-driver-gui/default.nix
+++ b/pkgs/tools/misc/veikk-linux-driver-gui/default.nix
@@ -1,12 +1,12 @@
 { lib, mkDerivation, fetchFromGitHub, gnumake, qmake }:
 
 mkDerivation rec {
-  name = "veikk-linux-driver-gui";
+  pname = "veikk-linux-driver-gui";
   version = "2.0";
 
   src = fetchFromGitHub {
     owner = "jlam55555";
-    repo = name;
+    repo = pname;
     rev = "v${version}";
     sha256 = "02g1q79kwjlzg95w38a1d7nxvcry8xcsvhax2js4c7xqvzhkki5j";
   };
diff --git a/pkgs/tools/misc/vial/default.nix b/pkgs/tools/misc/vial/default.nix
index 5685141e4465a..7bc788031675d 100644
--- a/pkgs/tools/misc/vial/default.nix
+++ b/pkgs/tools/misc/vial/default.nix
@@ -1,12 +1,12 @@
 { lib, fetchurl, appimageTools }:
 let
   name = "vial-${version}";
-  version = "0.4.1";
+  version = "0.4.2";
   pname = "Vial";
 
   src = fetchurl {
     url = "https://github.com/vial-kb/vial-gui/releases/download/v${version}/${pname}-v${version}-x86_64.AppImage";
-    sha256 = "sha256-aN0wvgahWPNSXP/JmV1JWaEnARIOTyRdz1ko6eC7Y5s=";
+    sha256 = "sha256-T3aSwv/qTJHR/Fa6qU1fWbp3duvny4lC+9jBwQzpw2w=";
   };
 
   appimageContents = appimageTools.extractType2 { inherit name src; };
@@ -24,7 +24,7 @@ appimageTools.wrapType2 {
   '';
 
   meta = with lib; {
-    description = "An Open-source cross-platform (Windows, Linux and Mac) GUI and a QMK fork for configuring your keyboard in real time";
+    description = "An Open-source QMK GUI fork for configuring your keyboard in real time";
     homepage = "https://get.vial.today";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ kranzes ];
diff --git a/pkgs/tools/misc/viddy/default.nix b/pkgs/tools/misc/viddy/default.nix
index 1b9158df1ae3c..4b65a63431bd0 100644
--- a/pkgs/tools/misc/viddy/default.nix
+++ b/pkgs/tools/misc/viddy/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "viddy";
-  version = "0.3.1";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "sachaos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "18ms4kfv332863vd8b7mmrz39y4b8gvhi6lx9x5385jfzd19w5wx";
+    sha256 = "sha256-V/x969wi5u5ND9QgJfc4vtI2t1G1ETlATzeqnpHMncc=";
   };
 
-  vendorSha256 = "0789wq4d9cynyadvlwahs4586gc3p78gdpv5wf733lpv1h5rjbv3";
+  vendorSha256 = "sha256-iSgFDTNeRPpCMxNqj2LhYV+6/eskGa58e+rT0Nhg+pE=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/misc/websocat/default.nix b/pkgs/tools/misc/websocat/default.nix
index ffbbc0ec8061a..99714df0e81a1 100644
--- a/pkgs/tools/misc/websocat/default.nix
+++ b/pkgs/tools/misc/websocat/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "websocat";
-  version = "1.8.0";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "vi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-jwoWxK4phBqhIeo3+oRnpGsfvtn9gTR1ryd4N+0Lmbw=";
+    sha256 = "sha256-aQWLsdYHmju7tCJfg3a1aOlFYui7qsQ8vJfhyMawXWo=";
   };
 
-  cargoSha256 = "sha256-+3SG1maarY4DJ4+QiYGwltGLksOoOhKtcqstRwgzi2k=";
+  cargoSha256 = "sha256-b/B+K/LMP1XK1QEtFKY4nmy2fAqEmLTN+qL+XlrqA5w=";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
   buildInputs = [ openssl ]
diff --git a/pkgs/tools/misc/wlc/default.nix b/pkgs/tools/misc/wlc/default.nix
index dd7c5f7942f82..2bac81fd3ca0e 100644
--- a/pkgs/tools/misc/wlc/default.nix
+++ b/pkgs/tools/misc/wlc/default.nix
@@ -18,7 +18,6 @@ buildPythonPackage rec {
     python-dateutil
     requests
     pyxdg
-    pre-commit
     responses
     twine
   ];
diff --git a/pkgs/tools/misc/woeusb-ng/default.nix b/pkgs/tools/misc/woeusb-ng/default.nix
new file mode 100644
index 0000000000000..6f922afdf37a7
--- /dev/null
+++ b/pkgs/tools/misc/woeusb-ng/default.nix
@@ -0,0 +1,32 @@
+{ lib, python3Packages, fetchFromGitHub, p7zip, parted, grub2 }:
+with python3Packages;
+
+buildPythonApplication rec {
+  pname = "woeusb-ng";
+  version = "0.2.10";
+
+  propagatedBuildInputs = [ p7zip parted grub2 termcolor wxPython_4_0 six ];
+
+  src = fetchFromGitHub {
+    owner = "WoeUSB";
+    repo = "WoeUSB-ng";
+    rev = "v${version}";
+    sha256 = "sha256-Nsdk3SMRzj1fqLrp5Na5V3rRDMcIReL8uDb8K2GQNWI=";
+  };
+
+  postInstall = ''
+    # TODO: the gui requires additional polkit-actions to work correctly, therefore it is currently disabled
+    rm $out/bin/woeusbgui
+  '';
+
+  # checks fail, because of polkit-actions and should be reenabled when the gui is fixed.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A tool to create a Windows USB stick installer from a real Windows DVD or image";
+    homepage = "https://github.com/WoeUSB/WoeUSB-ng";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ stunkymonkey ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/x11idle/default.nix b/pkgs/tools/misc/x11idle/default.nix
index cd1c11dbdb643..ee64f69897d2f 100644
--- a/pkgs/tools/misc/x11idle/default.nix
+++ b/pkgs/tools/misc/x11idle/default.nix
@@ -1,9 +1,8 @@
 { lib, stdenv, fetchurl, libXScrnSaver, libX11 }:
 
 stdenv.mkDerivation rec {
-
   version = "9.2.4";
-  name = "x11idle-org-${version}";
+  pname = "x11idle-org";
 
   src = fetchurl {
     url = "https://code.orgmode.org/bzg/org-mode/raw/release_${version}/contrib/scripts/x11idle.c";
diff --git a/pkgs/tools/misc/xcp/default.nix b/pkgs/tools/misc/xcp/default.nix
index 907e39a3f27bc..4b649aecb698e 100644
--- a/pkgs/tools/misc/xcp/default.nix
+++ b/pkgs/tools/misc/xcp/default.nix
@@ -20,6 +20,6 @@ rustPlatform.buildRustPackage rec {
     description = "An extended cp(1)";
     homepage = "https://github.com/tarka/xcp";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ legendofmiracles ];
+    maintainers = with maintainers; [ lom ];
   };
 }
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index 20869ac4d7928..4673ab41654ed 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -18,11 +18,11 @@ buildPythonPackage rec {
   # The websites youtube-dl deals with are a very moving target. That means that
   # downloads break constantly. Because of that, updates should always be backported
   # to the latest stable release.
-  version = "2021.06.06";
+  version = "2021.12.17";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1hqan9h55x9gfdakw554vic68w9gpvhblchwxlw265zxp56hxjrw";
+    sha256 = "sha256-nzuZyLd4RVFltFJfIVBehsf/Vl86wxnhlzPYEBlBNd8=";
   };
 
   patches = [
@@ -77,6 +77,6 @@ buildPythonPackage rec {
     '';
     license = licenses.publicDomain;
     platforms = with platforms; linux ++ darwin;
-    maintainers = with maintainers; [ bluescreen303 phreedom AndersonTorres fpletz ma27 ];
+    maintainers = with maintainers; [ bluescreen303 AndersonTorres fpletz ma27 ];
   };
 }
diff --git a/pkgs/tools/misc/yt-dlp/default.nix b/pkgs/tools/misc/yt-dlp/default.nix
index 6a6a019dcbee7..b8e838b4d2283 100644
--- a/pkgs/tools/misc/yt-dlp/default.nix
+++ b/pkgs/tools/misc/yt-dlp/default.nix
@@ -20,12 +20,12 @@ buildPythonPackage rec {
   # The websites yt-dlp deals with are a very moving target. That means that
   # downloads break constantly. Because of that, updates should always be backported
   # to the latest stable release.
-  version = "2021.11.10.1";
+  version = "2021.12.27";
 
   src = fetchPypi {
     inherit pname;
     version = builtins.replaceStrings [ ".0" ] [ "." ] version;
-    sha256 = "f0ad6ae2e2838b608df2fd125f2a777a7ad832d3e757ee6d4583b84b21e44388";
+    sha256 = "sha256-IkTfN1l1FIfnlrI7ZyFr7pjnCDKjpDwlJrCw4Lv7y1s=";
   };
 
   propagatedBuildInputs = [ websockets mutagen ]
diff --git a/pkgs/tools/misc/ytarchive/default.nix b/pkgs/tools/misc/ytarchive/default.nix
new file mode 100644
index 0000000000000..ef4d212a6201f
--- /dev/null
+++ b/pkgs/tools/misc/ytarchive/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "ytarchive";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "Kethsar";
+    repo = "ytarchive";
+    rev = "v${version}";
+    sha256 = "sha256-7D92xKxU2WBMDJSY5uFKDbLHWlyT761xuZDiBJ1GxE4=";
+  };
+
+  vendorSha256 = "sha256-r9fDFSCDItQ7YSj9aTY1LXRrFE9T3XD0X36ywCfu0R8=";
+
+  ldflags = [ "-s" "-w" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/Kethsar/ytarchive";
+    description = "Garbage Youtube livestream downloader";
+    license = licenses.mit;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/pkgs/tools/misc/ytfzf/default.nix b/pkgs/tools/misc/ytfzf/default.nix
index a35e9200a71da..95b4a8907230b 100644
--- a/pkgs/tools/misc/ytfzf/default.nix
+++ b/pkgs/tools/misc/ytfzf/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , fetchFromGitHub
 , makeWrapper
+, chafa
 , coreutils
 , curl
 , dmenu
@@ -9,27 +10,21 @@
 , gnused
 , jq
 , mpv
-, ncurses
 , ueberzug
-, youtube-dl
+, yt-dlp
 }:
 
 stdenv.mkDerivation rec {
   pname = "ytfzf";
-  version = "1.2.0";
+  version = "2.0";
 
   src = fetchFromGitHub {
     owner = "pystardust";
     repo = "ytfzf";
     rev = "v${version}";
-    sha256 = "sha256-3wbjCtRmnd9tm8kqKaIF6VmMdKsWznhOvQkEsrAJpAE=";
+    sha256 = "sha256-JuLfFC3oz2FvCaD+XPuL1N8tGKmv4atyZIBeDKWYgT8=";
   };
 
-  patches = [
-    # Updates have to be installed through Nix.
-    ./no-update.patch
-  ];
-
   nativeBuildInputs = [ makeWrapper ];
 
   makeFlags = [ "PREFIX=${placeholder "out"}/bin" ];
@@ -38,8 +33,13 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     wrapProgram "$out/bin/ytfzf" --prefix PATH : ${lib.makeBinPath [
-      coreutils curl dmenu fzf gnused jq mpv ncurses ueberzug youtube-dl
+      chafa coreutils curl dmenu fzf gnused jq mpv ueberzug yt-dlp
     ]}
+
+    gzip -c docs/man/ytfzf.1 > docs/man/ytfzf.1.gz
+    gzip -c docs/man/ytfzf.5 > docs/man/ytfzf.5.gz
+    install -Dt "$out/share/man/man1" docs/man/ytfzf.1.gz
+    install -Dt "$out/share/man/man5" docs/man/ytfzf.5.gz
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/ytfzf/no-update.patch b/pkgs/tools/misc/ytfzf/no-update.patch
deleted file mode 100644
index e71582f6364f1..0000000000000
--- a/pkgs/tools/misc/ytfzf/no-update.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff --git a/ytfzf b/ytfzf
-index f4d2e0d..7a3b4b6 100755
---- a/ytfzf
-+++ b/ytfzf
-@@ -1260,22 +1260,8 @@ EOF
- }
- 
- update_ytfzf () {
--	branch="$1"
--	updatefile="/tmp/ytfzf-update"
--	curl -L "https://raw.githubusercontent.com/pystardust/ytfzf/$branch/ytfzf" -o "$updatefile"
--
--	if sed -n '1p' < "$updatefile" | grep -q '#!/bin/sh'; then
--		chmod 755 "$updatefile"
--		[ "$(uname)" = "Darwin" ] && prefix="/usr/local/bin" || prefix="/usr/bin"
--		function_exists "sudo" && doasroot="sudo" || doasroot="doas"
--		$doasroot cp "$updatefile" "$prefix/ytfzf"
--		unset prefix doasroot
--	else
--		printf "%bFailed to update ytfzf. Try again later.%b" "$c_red" "$c_reset"
--	fi
--
--	rm "$updatefile"
--	exit 0
-+	printf "%bUpdates have to be installed through Nix.%b\n" "$c_red" "$c_reset"
-+	exit 1
- }
- 
- #gives a value to sort by (this will give the unix time the video was uploaded)
diff --git a/pkgs/tools/misc/zellij/default.nix b/pkgs/tools/misc/zellij/default.nix
index 480334514eddf..2fb985c791620 100644
--- a/pkgs/tools/misc/zellij/default.nix
+++ b/pkgs/tools/misc/zellij/default.nix
@@ -6,20 +6,22 @@
 , pkg-config
 , libiconv
 , openssl
+, zellij
+, testVersion
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "zellij";
-  version = "0.20.1";
+  version = "0.23.0";
 
   src = fetchFromGitHub {
     owner = "zellij-org";
     repo = "zellij";
     rev = "v${version}";
-    sha256 = "sha256-VeFKUNAOhNvNAqIp4yg0dulIVC6vCvD3ClYjMg1vM1g=";
+    sha256 = "sha256-DJ7FGtcsWGk4caS22aXo+8chCcvEdRlVrSRmIHsETD4=";
   };
 
-  cargoSha256 = "sha256-qZjyl+irC5Cj3tpUs97jLxs1UB+7E1xZKbnF3TPFhKE=";
+  cargoSha256 ="sha256-dWdFBSZwTEvxrPiXtTWcYLtC+4XFb5R7Wu4r1YpHQRk=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -43,9 +45,12 @@ rustPlatform.buildRustPackage rec {
       --zsh <($out/bin/zellij setup --generate-completion zsh)
   '';
 
+  passthru.tests.version = testVersion { package = zellij; };
+
   meta = with lib; {
     description = "A terminal workspace with batteries included";
     homepage = "https://zellij.dev/";
+    changelog = "https://github.com/zellij-org/zellij/blob/v${version}/Changelog.md";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ therealansh _0x4A6F ];
   };
diff --git a/pkgs/tools/misc/zoxide/default.nix b/pkgs/tools/misc/zoxide/default.nix
index 13199890ab643..29a9c29aab483 100644
--- a/pkgs/tools/misc/zoxide/default.nix
+++ b/pkgs/tools/misc/zoxide/default.nix
@@ -10,13 +10,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "zoxide";
-  version = "0.7.9";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "ajeetdsouza";
     repo = "zoxide";
     rev = "v${version}";
-    sha256 = "sha256-afjEqHUoLYS+IOMnWocT5dVkjWdWGavJn7q9Fqjliss=";
+    sha256 = "sha256-5syCq2Qjjk/XoYqW4MGoSSTRLqzgBwadBJwZDDdWNgU=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
       --replace '"fzf"' '"${fzf}/bin/fzf"'
   '';
 
-  cargoSha256 = "sha256-CgbjSP8QotCxQ8n8SLVuLpkg8hLuRYZwsl/9HsrkCt8=";
+  cargoSha256 = "sha256-egZqMiN53k2R1b1dbCn4j0KEJqb27TdE25YYEZ4Nvao=";
 
   postInstall = ''
     installManPage man/*
diff --git a/pkgs/tools/networking/amass/default.nix b/pkgs/tools/networking/amass/default.nix
index 63ecdb550a84c..c15633a4f5d4e 100644
--- a/pkgs/tools/networking/amass/default.nix
+++ b/pkgs/tools/networking/amass/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "amass";
-  version = "3.15.0";
+  version = "3.15.2";
 
   src = fetchFromGitHub {
     owner = "OWASP";
     repo = "Amass";
     rev = "v${version}";
-    sha256 = "sha256-AOWVz+JQvri7H2k2vDSuDmTHPAVCb7MCi4uCJcj0Yjs=";
+    sha256 = "sha256-0zTnknpjTvUEai06JsRfQASclxpvaJnEfYK7biZeqU0=";
   };
 
-  vendorSha256 = "sha256-lM/UWrljJHks+by4kUjlk0f39j/Qo+5+kxUVgrsO0zE=";
+  vendorSha256 = "sha256-Lh/VN+IBXpT8e7ok5Qjfk5tgXEUVwKMHYcp9WrChN3A=";
 
   outputs = [ "out" "wordlists" ];
 
diff --git a/pkgs/tools/networking/atinout/default.nix b/pkgs/tools/networking/atinout/default.nix
index 93535531d91bd..6fad1174bbf07 100644
--- a/pkgs/tools/networking/atinout/default.nix
+++ b/pkgs/tools/networking/atinout/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchgit, ronn, mount }:
 
 stdenv.mkDerivation rec {
-  name = "atinout-${version}";
+  pname = "atinout";
   version = "0.9.2-alpha";
 
   NIX_CFLAGS_COMPILE = lib.optionalString (!stdenv.cc.isClang) "-Werror=implicit-fallthrough=0";
diff --git a/pkgs/tools/networking/axel/default.nix b/pkgs/tools/networking/axel/default.nix
index f7e761ac0fd03..eb2b109dbecd9 100644
--- a/pkgs/tools/networking/axel/default.nix
+++ b/pkgs/tools/networking/axel/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "axel";
-  version = "2.17.10";
+  version = "2.17.11";
 
   src = fetchFromGitHub {
     owner = "axel-download-accelerator";
     repo = pname;
     rev = "v${version}";
-    sha256 = "01mpfkz98r2fx4n0gyi3b4zvlyfd5bxydp2wh431lnj0ahrsiikp";
+    sha256 = "sha256-yC4TL8IXWGEwRXAyeon6QnQa+rT1xL/McLsghjZ4ky4=";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config autoconf-archive txt2man ];
diff --git a/pkgs/tools/networking/bacnet-stack/default.nix b/pkgs/tools/networking/bacnet-stack/default.nix
index a4f2ef36360eb..9e47993df6029 100644
--- a/pkgs/tools/networking/bacnet-stack/default.nix
+++ b/pkgs/tools/networking/bacnet-stack/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  name = "bacnet-stack";
+  pname = "bacnet-stack";
   version = "1.0.0";
 
   src = fetchFromGitHub {
diff --git a/pkgs/tools/networking/badvpn/default.nix b/pkgs/tools/networking/badvpn/default.nix
index fd7c3b23adfee..8d1174ac328a9 100644
--- a/pkgs/tools/networking/badvpn/default.nix
+++ b/pkgs/tools/networking/badvpn/default.nix
@@ -1,39 +1,29 @@
-{lib, stdenv, fetchurl, cmake, openssl, nss, pkg-config, nspr, bash, debug ? false}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="badvpn";
-    version="1.999.130";
-    name="${baseName}-${version}";
-    hash="02b1fra43l75mljkhrq45vcrrqv0znicjn15g7nbqx3jppzbpm5z";
-    url="https://github.com/ambrop72/badvpn/archive/1.999.130.tar.gz";
-    sha256="02b1fra43l75mljkhrq45vcrrqv0znicjn15g7nbqx3jppzbpm5z";
-  };
-
+{ lib, stdenv, fetchurl, cmake, openssl, nss, pkg-config, nspr, bash, debug ? false }:
 
-  compileFlags = "-O3 ${lib.optionalString (!debug) "-DNDEBUG"}";
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
+stdenv.mkDerivation rec {
+  pname = "badvpn";
+  version = "1.999.130";
+  src = fetchurl {
+    url = "https://github.com/ambrop72/badvpn/archive/${version}.tar.gz";
+    sha256 = "sha256-v9S7/r1ydLzseSVYyaL9YOOc2S4EZzglreXQQVR2YQk=";
+  };
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [
-    openssl nss nspr
+    openssl
+    nss
+    nspr
   ];
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
 
   preConfigure = ''
     find . -name '*.sh' -exec sed -e 's@#!/bin/sh@${stdenv.shell}@' -i '{}' ';'
     find . -name '*.sh' -exec sed -e 's@#!/bin/bash@${bash}/bin/bash@' -i '{}' ';'
-    cmakeFlagsArray=("-DCMAKE_BUILD_TYPE=" "-DCMAKE_C_FLAGS=${compileFlags}");
+    cmakeFlagsArray=("-DCMAKE_BUILD_TYPE=" "-DCMAKE_C_FLAGS=-O3 ${lib.optionalString (!debug) "-DNDEBUG"}");
   '';
 
-  meta = {
-    inherit (s) version;
+  meta = with lib; {
     description = "A set of network-related (mostly VPN-related) tools";
-    license = lib.licenses.bsd3 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/badvpn/default.upstream b/pkgs/tools/networking/badvpn/default.upstream
deleted file mode 100644
index 2a85ba7cb5193..0000000000000
--- a/pkgs/tools/networking/badvpn/default.upstream
+++ /dev/null
@@ -1,3 +0,0 @@
-url https://github.com/ambrop72/badvpn/releases
-version_link '[0-9][.]tar[.][a-z0-9]+$'
-version '.*/([0-9.]+)[.]tar[.].*' '\1'
diff --git a/pkgs/tools/networking/bgpq3/default.nix b/pkgs/tools/networking/bgpq3/default.nix
index bd0a623a916d4..16bebda7d3dca 100644
--- a/pkgs/tools/networking/bgpq3/default.nix
+++ b/pkgs/tools/networking/bgpq3/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bgpq3";
-  version = "0.1.35";
+  version = "0.1.36";
 
   src = fetchFromGitHub {
     owner = "snar";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0fd5a3krq0i906m0iivgphiqq88cw6c0w1q4n7lmzyq9201mb8wj";
+    sha256 = "sha256-FBtt++w2WzCnSim+r+MVy287w2jmdNEaQIro2KaVeRI=";
   };
 
   # Fix binary install location. Remove with next upstream release.
diff --git a/pkgs/tools/networking/bgpq4/default.nix b/pkgs/tools/networking/bgpq4/default.nix
index bfbb138952a98..e429b5a8cd205 100644
--- a/pkgs/tools/networking/bgpq4/default.nix
+++ b/pkgs/tools/networking/bgpq4/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bgpq4";
-  version = "1.2";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "bgp";
     repo = pname;
     rev = version;
-    sha256 = "sha256-8r70tetbTq8GxxtFe71gDYy+wg8yBwYpl1gsu5aAHTA=";
+    sha256 = "sha256-EFxINRFrcNXGtXpNqvBIN6pE1kG3OdeDIHYOsG2celI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/networking/bore/default.nix b/pkgs/tools/networking/bore/default.nix
index cfe78590483fc..66334e0621034 100644
--- a/pkgs/tools/networking/bore/default.nix
+++ b/pkgs/tools/networking/bore/default.nix
@@ -2,22 +2,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bore";
-  version = "0.3.3";
+  version = "0.4.1";
 
   src = fetchFromBitbucket {
     owner = "delan";
     repo = "nonymous";
-    rev = version;
-    sha256 = "0gws1f625izrb3armh6bay1k8l9p9csl37jx03yss1r720k4vn2x";
+    rev = "${pname}-${version}";
+    sha256 = "1fdnnx7d18gj4rkv1dc6q379dqabl66zks9i0rjarjwcci8m30d9";
   };
 
-  cargoSha256 = "1n09gcp1y885lz6g2f73zw3fd0fmv7nwlvaqba2yl0kylzk7naa6";
+  cargoSha256 = "1xlbfzmy0wjyz3jpr17r4ma4i79d9b32yqwwi10vrcjzr7vsyhmx";
   cargoBuildFlags = "-p ${pname}";
 
   # FIXME can’t test --all-targets and --doc in a single invocation
-  checkFeatures = [ "std" ];
-
   cargoTestFlags = [ "--all-targets" "--workspace" ];
+  checkFeatures = [ "std" ];
 
   nativeBuildInputs = [ installShellFiles ]
     ++ lib.optional stdenv.isDarwin llvmPackages.libclang;
diff --git a/pkgs/tools/networking/burpsuite/default.nix b/pkgs/tools/networking/burpsuite/default.nix
index e4783ddb0ef2b..8a53d144068d6 100644
--- a/pkgs/tools/networking/burpsuite/default.nix
+++ b/pkgs/tools/networking/burpsuite/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "burpsuite";
-  version = "2021.8.1";
+  version = "2021.10.3";
 
   src = fetchurl {
     name = "burpsuite.jar";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
       "https://portswigger.net/Burp/Releases/Download?productId=100&version=${version}&type=Jar"
       "https://web.archive.org/web/https://portswigger.net/Burp/Releases/Download?productId=100&version=${version}&type=Jar"
     ];
-    sha256 = "sha256-R1WV3oaweW4nfszUOtmrfBlbKJm8HDNjwtbj97dFzB0=";
+    sha256 = "sha256-UfxsUrT59hBAnItOv6ScRlVo5N0jP3GpdQHzIy4ztck=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/tools/networking/calendar-cli/default.nix b/pkgs/tools/networking/calendar-cli/default.nix
index 497b77b57ac0a..b2a7b0bd0a131 100644
--- a/pkgs/tools/networking/calendar-cli/default.nix
+++ b/pkgs/tools/networking/calendar-cli/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "calendar-cli";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "tobixen";
     repo = "calendar-cli";
     rev = "v${version}";
-    sha256 = "0qjld2m7hl3dx90491pqbjcja82c1f5gwx274kss4lkb8aw0kmlv";
+    hash = "sha256-wGigrBl5PJL+fVfnFnHDJ5zyB+Rq3Fm+q9vMvLuBBys=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/networking/checkip/default.nix b/pkgs/tools/networking/checkip/default.nix
index b379a1725de9f..94d83b9f3981a 100644
--- a/pkgs/tools/networking/checkip/default.nix
+++ b/pkgs/tools/networking/checkip/default.nix
@@ -5,21 +5,16 @@
 
 buildGoModule rec {
   pname = "checkip";
-  version = "0.2.2";
+  version = "0.16.2";
 
   src = fetchFromGitHub {
     owner = "jreisinger";
     repo = pname;
     rev = "v${version}";
-    sha256 = "065426z4iak72h56qvp1vk86r2vw5rdqy3qi1zbw1l0hnyq83zwq";
+    sha256 = "sha256-ktAb5kUwEE4xCgsuj0gO4jP6EybOBLjdlskUF/zwrqU=";
   };
 
-  vendorSha256 = "10hk2wfkpvnavs20q390qgaj1gj10j1fy8vlqb9s9f76gpb130h4";
-
-  postFixup = ''
-    # Rename binary
-    mv $out/bin/cmd $out/bin/${pname}
-  '';
+  vendorSha256 = "sha256-4XA7B0gmFE52VoKiPLsa0urPS7IdzrTBXuU4wZv/Lag=";
 
   # Requires network
   doCheck = false;
diff --git a/pkgs/tools/networking/cjdns/default.nix b/pkgs/tools/networking/cjdns/default.nix
index 474c9d59c9e55..b68eaeabd633b 100644
--- a/pkgs/tools/networking/cjdns/default.nix
+++ b/pkgs/tools/networking/cjdns/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, nodejs, which, python27, util-linux, nixosTests }:
+{ lib, stdenv, fetchFromGitHub, nodejs, which, python3, util-linux, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "cjdns";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "NOmk+vMZ8i0E2MjrUzksk+tkJ9XVVNEXlE5OOTNa+Y0=";
   };
 
-  buildInputs = [ which python27 nodejs ] ++
+  buildInputs = [ which python3 nodejs ] ++
     # for flock
     lib.optional stdenv.isLinux util-linux;
 
@@ -21,12 +21,8 @@ stdenv.mkDerivation rec {
     + "bash do";
   installPhase = ''
     install -Dt "$out/bin/" cjdroute makekeys privatetopublic publictoip6
-    sed -i 's,/usr/bin/env node,'$(type -P node), \
-      $(find contrib -name "*.js")
-    sed -i 's,/usr/bin/env python,'$(type -P python), \
-      $(find contrib -type f)
     mkdir -p $out/share/cjdns
-    cp -R contrib tools node_build node_modules $out/share/cjdns/
+    cp -R tools node_build node_modules $out/share/cjdns/
   '';
 
   passthru.tests.basic = nixosTests.cjdns;
diff --git a/pkgs/tools/networking/croc/default.nix b/pkgs/tools/networking/croc/default.nix
index 8c9e1bcdf0f7e..57b2f8be52c61 100644
--- a/pkgs/tools/networking/croc/default.nix
+++ b/pkgs/tools/networking/croc/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "croc";
-  version = "9.4.2";
+  version = "9.5.0";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-aB3jYQKyqfaQBcCbFbN8ZIfosyLy+bX6SJF+iiT2ELQ=";
+    sha256 = "sha256-BgUurfzgezbbH0pCTuRINocc5y6ANCM91VlWht86QeE=";
   };
 
-  vendorSha256 = "sha256-bsggZ6e9a7tq0jgOpqIRgfj4FUu/krLWuLBZjaialO0=";
+  vendorSha256 = "sha256-MstlmaMEbbAY9+h5pNVCXqDOqoSv5hjuRSFS/MTg6lo=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix
index 5937249c07947..a5abbc26a7414 100644
--- a/pkgs/tools/networking/curl/default.nix
+++ b/pkgs/tools/networking/curl/default.nix
@@ -43,14 +43,14 @@ assert gssSupport -> libkrb5 != null;
 
 stdenv.mkDerivation rec {
   pname = "curl";
-  version = "7.79.1";
+  version = "7.80.0";
 
   src = fetchurl {
     urls = [
       "https://curl.haxx.se/download/${pname}-${version}.tar.bz2"
       "https://github.com/curl/curl/releases/download/${lib.replaceStrings ["."] ["_"] pname}-${version}/${pname}-${version}.tar.bz2"
     ];
-    sha256 = "0lbq73wz44p4fm2gp05mzrqrzfvhlmvlgfg8c8wkj5lkkamw8qny";
+    sha256 = "170qb2w2p5fga0vqhhnzi417z4h4vy764sz16pzhm5fd9471a3fx";
   };
 
   patches = [
@@ -96,17 +96,17 @@ stdenv.mkDerivation rec {
       # The build fails when using wolfssl with --with-ca-fallback
       (lib.withFeature (!wolfsslSupport) "ca-fallback")
       "--disable-manual"
-      (lib.withFeatureAs opensslSupport "openssl" openssl.dev)
-      (lib.withFeatureAs gnutlsSupport "gnutls" gnutls.dev)
-      (lib.withFeatureAs scpSupport "libssh2" libssh2.dev)
+      (lib.withFeatureAs opensslSupport "openssl" (lib.getDev openssl))
+      (lib.withFeatureAs gnutlsSupport "gnutls" (lib.getDev gnutls))
+      (lib.withFeatureAs scpSupport "libssh2" (lib.getDev libssh2))
       (lib.enableFeature ldapSupport "ldap")
       (lib.enableFeature ldapSupport "ldaps")
-      (lib.withFeatureAs idnSupport "libidn" libidn.dev)
+      (lib.withFeatureAs idnSupport "libidn" (lib.getDev libidn))
       (lib.withFeature brotliSupport "brotli")
     ]
-    ++ lib.optional wolfsslSupport "--with-wolfssl=${wolfssl.dev}"
+    ++ lib.optional wolfsslSupport "--with-wolfssl=${lib.getDev wolfssl}"
     ++ lib.optional c-aresSupport "--enable-ares=${c-ares}"
-    ++ lib.optional gssSupport "--with-gssapi=${libkrb5.dev}"
+    ++ lib.optional gssSupport "--with-gssapi=${lib.getDev libkrb5}"
        # For the 'urandom', maybe it should be a cross-system option
     ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
        "--with-random=/dev/urandom"
@@ -126,7 +126,7 @@ stdenv.mkDerivation rec {
     # Install completions
     make -C scripts install
   '' + lib.optionalString scpSupport ''
-    sed '/^dependency_libs/s|${libssh2.dev}|${libssh2.out}|' -i "$out"/lib/*.la
+    sed '/^dependency_libs/s|${lib.getDev libssh2}|${lib.getLib libssh2}|' -i "$out"/lib/*.la
   '' + lib.optionalString gnutlsSupport ''
     ln $out/lib/libcurl.so $out/lib/libcurl-gnutls.so
     ln $out/lib/libcurl.so $out/lib/libcurl-gnutls.so.4
@@ -139,7 +139,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A command line tool for transferring files with URL syntax";
-    homepage    = "https://curl.haxx.se/";
+    homepage    = "https://curl.se/";
     license = licenses.curl;
     maintainers = with maintainers; [ lovek323 ];
     platforms = platforms.all;
diff --git a/pkgs/tools/networking/dd-agent/datadog-agent.nix b/pkgs/tools/networking/dd-agent/datadog-agent.nix
index e050b68ca2d59..12ac37af71054 100644
--- a/pkgs/tools/networking/dd-agent/datadog-agent.nix
+++ b/pkgs/tools/networking/dd-agent/datadog-agent.nix
@@ -10,15 +10,15 @@ let
 
 in buildGoModule rec {
   pname = "datadog-agent";
-  version = "7.31.0";
+  version = "7.32.4";
 
   src = fetchFromGitHub {
     inherit owner repo;
     rev = version;
-    sha256 = "sha256-APwR3/bvCHNnJWxRPSLLe4lHYv39wfw3WhGDEkxAku8=";
+    sha256 = "sha256-/vHNxcJQb0QHwFq6lxsSh9zc+Bkhb2SUymI5jEzkjm4=";
   };
 
-  vendorSha256 = "sha256-CNQJvnNnB29duALEXPguEJsoRHdieAiPFbwXa89jxUk=";
+  vendorSha256 = "sha256-LyXveLSa+p9GEzcKifTXweY8nJwPISwhboi8zBeBrMo=";
 
   subPackages = [
     "cmd/agent"
diff --git a/pkgs/tools/networking/dhcp/default.nix b/pkgs/tools/networking/dhcp/default.nix
index 7df04ac0c8957..10418d9781059 100644
--- a/pkgs/tools/networking/dhcp/default.nix
+++ b/pkgs/tools/networking/dhcp/default.nix
@@ -24,6 +24,14 @@ stdenv.mkDerivation rec {
         url = "https://gitlab.isc.org/isc-projects/dhcp/-/commit/6c7e61578b1b449272dbb40dd8b98d03dad8a57a.patch";
         sha256 = "1g37ix0yf9zza8ri8bg438ygcjviniblfyb20y4gzc8lysy28m8b";
       })
+
+      # Fix parallel build failure, the patch is pending upstream inclusion:
+      #  https://gitlab.isc.org/isc-projects/dhcp/-/merge_requests/76
+      (fetchpatch {
+        name = "parallel-make.patch";
+        url = "https://gitlab.isc.org/isc-projects/dhcp/-/commit/46d101b97c5a3b19a3f63f7b60e5f88994a64e22.patch";
+        sha256 = "1y3nsmqjzcg4bhp1xmqp47v7rkl3bpcildkx6mlrg255yvxapmdp";
+      })
     ];
 
   nativeBuildInputs = [ perl makeWrapper ];
@@ -43,7 +51,8 @@ stdenv.mkDerivation rec {
     "--sysconfdir=/etc"
     "--localstatedir=/var"
   ] ++ lib.optional stdenv.isLinux "--with-randomdev=/dev/random"
-    ++ lib.optionals (openldap != null) [ "--with-ldap" "--with-ldapcrypto" ];
+    ++ lib.optionals (openldap != null) [ "--with-ldap" "--with-ldapcrypto" ]
+    ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "BUILD_CC=$(CC_FOR_BUILD)";
 
   NIX_CFLAGS_COMPILE = builtins.toString [
     "-Wno-error=pointer-compare"
@@ -79,6 +88,8 @@ stdenv.mkDerivation rec {
       export AR='${stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar'
     '';
 
+  enableParallelBuilding = true;
+
   meta = with lib; {
     description = "Dynamic Host Configuration Protocol (DHCP) tools";
 
diff --git a/pkgs/tools/networking/dhcpcd/default.nix b/pkgs/tools/networking/dhcpcd/default.nix
index 0962335ad1a3d..d60c87e51ff9c 100644
--- a/pkgs/tools/networking/dhcpcd/default.nix
+++ b/pkgs/tools/networking/dhcpcd/default.nix
@@ -1,15 +1,21 @@
-{ lib, stdenv, fetchurl, fetchpatch, pkg-config, udev, runtimeShellPackage,
-runtimeShell }:
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, udev
+, runtimeShellPackage
+, runtimeShell
+, nixosTests
+, enablePrivSep ? true
+}:
 
 stdenv.mkDerivation rec {
-  # when updating this to >=7, check, see previous reverts:
-  # nix-build -A nixos.tests.networking.scripted.macvlan.x86_64-linux nixos/release-combined.nix
   pname = "dhcpcd";
-  version = "8.1.4";
+  version = "9.4.1";
 
   src = fetchurl {
     url = "mirror://roy/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0gf1qif25wy5lffzw39pi4sshmpxz1f4a1m9sglj7am1gaix3817";
+    sha256 = "sha256-gZNXY07+0epc9E7AGyTT0/iFL+yLQkmSXcxWZ8VON2w=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -22,19 +28,17 @@ stdenv.mkDerivation rec {
     substituteInPlace hooks/dhcpcd-run-hooks.in --replace /bin/sh ${runtimeShell}
   '';
 
-  patches = [
-    (fetchpatch {
-      name = "?id=114870290a8d3d696bc4049c32eef3eed03d6070";
-      url = "https://roy.marples.name/git/dhcpcd/commitdiff_plain/114870290a8d3d696bc4049c32eef3eed03d6070";
-      sha256 = "0kzpwjh2gzvl5lvlnw6lis610p67nassk3apns68ga2pyxlky8qb";
-    })
-  ];
-
   preConfigure = "patchShebangs ./configure";
 
   configureFlags = [
     "--sysconfdir=/etc"
     "--localstatedir=/var"
+  ]
+  ++ lib.optionals enablePrivSep [
+    "--enable-privsep"
+    # dhcpcd disables privsep if it can't find the default user,
+    # so we explicitly specify a user.
+    "--privsepuser=dhcpcd"
   ];
 
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
@@ -46,6 +50,8 @@ stdenv.mkDerivation rec {
   # Check that the udev plugin got built.
   postInstall = lib.optionalString (udev != null) "[ -e ${placeholder "out"}/lib/dhcpcd/dev/udev.so ]";
 
+  passthru.tests = { inherit (nixosTests.networking.scripted) macvlan dhcpSimple dhcpOneIf; };
+
   meta = with lib; {
     description = "A client for the Dynamic Host Configuration Protocol (DHCP)";
     homepage = "https://roy.marples.name/projects/dhcpcd";
diff --git a/pkgs/tools/networking/dnsperf/default.nix b/pkgs/tools/networking/dnsperf/default.nix
index bb63e05c0e14a..96fa955a6b667 100644
--- a/pkgs/tools/networking/dnsperf/default.nix
+++ b/pkgs/tools/networking/dnsperf/default.nix
@@ -1,51 +1,44 @@
-{ lib, stdenv, fetchurl, fetchFromGitHub, autoreconfHook, pkg-config
-, openssl, ldns, libck
+{ lib
+, stdenv
+, autoreconfHook
+, fetchFromGitHub
+, ldns
+, libck
+, nghttp2
+, openssl
+, pkg-config
 }:
 
 stdenv.mkDerivation rec {
   pname = "dnsperf";
-  version = "2.5.2";
+  version = "2.9.0";
 
-  # The same as the initial commit of the new GitHub repo (only readme changed).
   src = fetchFromGitHub {
     owner = "DNS-OARC";
     repo = "dnsperf";
     rev = "v${version}";
-    sha256 = "0dzi28z7hnyxbibwdsalvd93czf4d5pgmvrbn6hlh52znsn40gbb";
+    sha256 = "sha256-TWFi3oPTIKjBaw0Rq0AfZgxyVukvL2SWa2qvWw2WAQ4=";
   };
 
-  outputs = [ "out" "man" "doc" ];
-
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
 
   buildInputs = [
-    openssl
     ldns # optional for DDNS (but cheap anyway)
     libck
+    nghttp2
+    openssl
   ];
 
   doCheck = true;
 
-  # For now, keep including the old PDFs as well.
-  # https://github.com/DNS-OARC/dnsperf/issues/27
-  postInstall = let
-    src-doc = fetchurl {
-      url = "ftp://ftp.nominum.com/pub/nominum/dnsperf/2.1.0.0/"
-          + "dnsperf-src-2.1.0.0-1.tar.gz";
-      sha256 = "03kfc65s5a9csa5i7xjsv0psq144k8d9yw7xlny61bg1h2kg1db4";
-    };
-  in ''
-    tar xf '${src-doc}'
-    cp ./dnsperf-src-*/doc/*.pdf "$doc/share/doc/dnsperf/"
-  '';
-
   meta = with lib; {
-    outputsToInstall = outputs; # The man pages and docs are likely useful to most.
-
     description = "Tools for DNS benchmaring";
-    homepage = "https://github.com/DNS-OARC/dnsperf";
+    homepage = "https://www.dns-oarc.net/tools/dnsperf";
     license = licenses.isc;
     platforms = platforms.unix;
-    maintainers = [ maintainers.vcunat ];
+    maintainers = with maintainers; [ vcunat ];
   };
 }
diff --git a/pkgs/tools/networking/dnsproxy/default.nix b/pkgs/tools/networking/dnsproxy/default.nix
index b412c7bf46c85..8a98600f0dcfc 100644
--- a/pkgs/tools/networking/dnsproxy/default.nix
+++ b/pkgs/tools/networking/dnsproxy/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "dnsproxy";
-  version = "0.39.9";
+  version = "0.40.1";
 
   src = fetchFromGitHub {
     owner = "AdguardTeam";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-HcyzrGtBktScTPch6rCKj5Hr7VS9kf3cCHhDVaZKxG0=";
+    sha256 = "sha256-tvYurE+/ZPJeV/ZKMIC0yrwzomxd/3y0KtChei/HO6c=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/tools/networking/dnstwist/default.nix b/pkgs/tools/networking/dnstwist/default.nix
index e19b4dabd78ba..034b69d2ecd7a 100644
--- a/pkgs/tools/networking/dnstwist/default.nix
+++ b/pkgs/tools/networking/dnstwist/default.nix
@@ -5,14 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "dnstwist";
-  version = "20201228";
-  disabled = python3.pythonOlder "3.6";
+  version = "20211204";
 
   src = fetchFromGitHub {
     owner = "elceef";
     repo = pname;
     rev = version;
-    sha256 = "0bxshi1p0va2f449v6vsm8bav5caa3r3pyknj3zf4n5rvk6say70";
+    sha256 = "sha256-D7qesxkJMx/N0oyaw3ev007SLCm4RKhZSNW22CNgKPw=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -26,7 +25,10 @@ python3.pkgs.buildPythonApplication rec {
 
   # Project has no tests
   doCheck = false;
-  pythonImportsCheck = [ "dnstwist" ];
+
+  pythonImportsCheck = [
+    "dnstwist"
+  ];
 
   meta = with lib; {
     description = "Domain name permutation engine for detecting homograph phishing attacks";
diff --git a/pkgs/tools/networking/driftnet/default.nix b/pkgs/tools/networking/driftnet/default.nix
index 042f29d3ca313..1f489b7fbc71d 100644
--- a/pkgs/tools/networking/driftnet/default.nix
+++ b/pkgs/tools/networking/driftnet/default.nix
@@ -35,6 +35,8 @@ stdenv.mkDerivation rec {
       url = "https://github.com/deiv/driftnet/pull/33/commits/bef5f3509ab5710161e9e21ea960a997eada534f.patch";
       sha256 = "1b7p9fkgp7dxv965l7q7y632s80h3nnrkaqnak2h0hakwv0i4pvm";
     })
+    # https://github.com/deiv/driftnet/issues/37
+    ./libwebsockets-4.3.0.patch
   ];
 
   enableParallelBuilding = true;
@@ -59,6 +61,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/deiv/driftnet";
     maintainers = with maintainers; [ offline ];
     platforms = platforms.linux ++ platforms.darwin;
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/tools/networking/driftnet/fix-darwin-build.patch b/pkgs/tools/networking/driftnet/fix-darwin-build.patch
deleted file mode 100644
index d1bde0f2e605f..0000000000000
--- a/pkgs/tools/networking/driftnet/fix-darwin-build.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-diff --git a/src/compat/compat.h b/src/compat/compat.h
-index 6add422..ea80406 100644
---- a/src/compat/compat.h
-+++ b/src/compat/compat.h
-@@ -17,7 +17,7 @@
-     #include <config.h>
- #endif
- 
--#ifdef __FreeBSD__
-+#if defined(__FreeBSD__) || defined(__APPLE__)
-     #include <sys/types.h>
- #endif
- 
-diff --git a/src/network/layer2.c b/src/network/layer2.c
-index 763f0ac..2497b72 100644
---- a/src/network/layer2.c
-+++ b/src/network/layer2.c
-@@ -14,7 +14,7 @@
- 
- #include <string.h>
- 
--#ifdef __FreeBSD__
-+#if defined(__FreeBSD__) || defined(__APPLE__)
- #include <netinet/in_systm.h>
- #include <netinet/in.h>
- #else
-@@ -29,7 +29,7 @@
- /*
-  * Freebsd and Cygwin doesn't define 'ethhdr'
-  */
--#if defined(__FreeBSD__) || defined(__CYGWIN__)
-+#if defined(__FreeBSD__) || defined(__CYGWIN__) || defined(__APPLE__)
- 
- #define ETH_ALEN	6			/* Octets in one ethernet addr	 */
- #define ETH_P_IP	0x0800		/* Internet Protocol packet	*/
-diff --git a/src/network/layer3.c b/src/network/layer3.c
-index 7864126..aae2041 100644
---- a/src/network/layer3.c
-+++ b/src/network/layer3.c
-@@ -15,7 +15,7 @@
- #include <string.h>
- #include <assert.h>
- 
--#ifdef __FreeBSD__
-+#if defined(__FreeBSD__) || defined(__APPLE__)
- #include <netinet/in_systm.h>
- #include <netinet/in.h>
- #include <sys/socket.h>
-diff --git a/src/pid.c b/src/pid.c
-index 621834e..94e7dcc 100644
---- a/src/pid.c
-+++ b/src/pid.c
-@@ -14,7 +14,7 @@
- 
- #include "compat/compat.h"
- 
--#ifdef __FreeBSD__
-+#if defined(__FreeBSD__) || defined(__APPLE__)
- #include <sys/stat.h>
- #endif
- #include <fcntl.h>
diff --git a/pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch b/pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch
new file mode 100644
index 0000000000000..5e5cfd50af3e7
--- /dev/null
+++ b/pkgs/tools/networking/driftnet/libwebsockets-4.3.0.patch
@@ -0,0 +1,12 @@
+diff --git a/src/http_display/httpd.c b/src/http_display/httpd.c
+index f4709ef..7921d23 100644
+--- a/src/http_display/httpd.c
++++ b/src/http_display/httpd.c
+@@ -191,7 +191,6 @@ static void * http_server_dispatch(void *arg)
+         LWSMPRO_FILE,                  /* mount type is a directory in a filesystem */
+         1,                                     /* strlen("/"), ie length of the mountpoint */
+         NULL,
+-        { NULL, NULL } // sentinel
+     };
+
+     memset(&info, 0, sizeof info);
diff --git a/pkgs/tools/networking/easyrsa/2.x.nix b/pkgs/tools/networking/easyrsa/2.x.nix
index 42188cfbfff15..b88aeda0fc5af 100644
--- a/pkgs/tools/networking/easyrsa/2.x.nix
+++ b/pkgs/tools/networking/easyrsa/2.x.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, fetchurl
+, fetchFromGitHub
 , autoreconfHook
 , makeWrapper
 , gnugrep
@@ -11,9 +11,11 @@ stdenv.mkDerivation rec {
   pname = "easyrsa";
   version = "2.2.0";
 
-  src = fetchurl {
-    url = "https://github.com/OpenVPN/easy-rsa/archive/v${version}.tar.gz";
-    sha256 = "1xq4by5frb6ikn53ss3y8v7ss639dccxfq8jfrbk07ynkmk668qk";
+  src = fetchFromGitHub {
+    owner = "OpenVPN";
+    repo = "easy-rsa";
+    rev = "v${version}";
+    sha256 = "sha256-zTdk8mv+gC/SHK813wZ6CWZf9Jm2XkKfAPU3feFpAkY=";
   };
 
   preBuild = ''
diff --git a/pkgs/tools/networking/eggdrop/default.nix b/pkgs/tools/networking/eggdrop/default.nix
index 79ae5a9713be2..a294267bef604 100644
--- a/pkgs/tools/networking/eggdrop/default.nix
+++ b/pkgs/tools/networking/eggdrop/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     license = licenses.gpl2;
     platforms = platforms.unix;
-    homepage = "http://www.eggheads.org";
+    homepage = "https://www.eggheads.org";
     description = "An Internet Relay Chat (IRC) bot";
   };
 }
diff --git a/pkgs/tools/networking/fakeroute/default.nix b/pkgs/tools/networking/fakeroute/default.nix
index 025eef72332f8..6e5fbdb13d288 100644
--- a/pkgs/tools/networking/fakeroute/default.nix
+++ b/pkgs/tools/networking/fakeroute/default.nix
@@ -1,14 +1,18 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "fakeroute";
   version = "0.3";
 
-  src = fetchurl {
-    url = "https://moxie.org/software/fakeroute/${pname}-${version}.tar.gz";
-    sha256 = "1sp342rxgm1gz4mvi5vvz1knz7kn9px9s39ii3jdjp4ks7lr5c8f";
+  src = fetchFromGitHub {
+    owner = "museoa";
+    repo = "fakeroute";
+    rev = "f8cb9c0ae3abb4c0662d9e1fcac67eefeeac3963";
+    sha256 = "12dhahwlpjzv79wpdpryjihamfbh4d8cfzfw4wi1jkl0dv2d41jg";
   };
 
+  sourceRoot = "source/fakeroute-0.3";
+
   meta = with lib; {
     description = ''
       Makes your machine appear to be anywhere on the internet
diff --git a/pkgs/tools/networking/fast-ssh/default.nix b/pkgs/tools/networking/fast-ssh/default.nix
new file mode 100644
index 0000000000000..912cac7586508
--- /dev/null
+++ b/pkgs/tools/networking/fast-ssh/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "fast-ssh";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "julien-r44";
+    repo = "fast-ssh";
+    rev = "v${version}";
+    sha256 = "sha256-eHJdMe8RU6Meg/9+NCfIneD5BqNUc2yIiQ8Z5UqUBUI=";
+  };
+
+  cargoSha256 = "sha256-sIQNoH3UWX3SwCFCPZEREIFR7C28ml4oGsrq6wuOAT0=";
+
+  buildInputs = lib.optional stdenv.isDarwin Security;
+
+  meta = with lib; {
+    description = "TUI tool to use the SSH config for connections";
+    homepage = "https://github.com/julien-r44/fast-ssh";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/networking/findomain/default.nix b/pkgs/tools/networking/findomain/default.nix
index 37499757e7577..09524b80895f1 100644
--- a/pkgs/tools/networking/findomain/default.nix
+++ b/pkgs/tools/networking/findomain/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "findomain";
-  version = "5.0.0";
+  version = "5.1.1";
 
   src = fetchFromGitHub {
     owner = "Edu4rdSHL";
     repo = pname;
     rev = version;
-    sha256 = "sha256-xuabmlpejQVN8pYCNa97aL2IJUAgV7zLXpkEIp9SZRI=";
+    sha256 = "sha256-nfpVW+Y6+YtMhDepj2DbnzItH11zABlnEs9c0FzfouA=";
   };
 
-  cargoSha256 = "sha256-hrgTWB5D0eKmfuR+lrMN4mx6yGomHe/jUJxw2uyrjHg=";
+  cargoSha256 = "sha256-s7xikSZx29zv8TD/YOTckCUh/8MBBIdZOUUwfkVZfx8=";
 
   nativeBuildInputs = [ installShellFiles perl ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
diff --git a/pkgs/tools/networking/flannel/default.nix b/pkgs/tools/networking/flannel/default.nix
index 86010f4adb91c..3bb1ab38e6b36 100644
--- a/pkgs/tools/networking/flannel/default.nix
+++ b/pkgs/tools/networking/flannel/default.nix
@@ -1,26 +1,33 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
 
 with lib;
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "flannel";
-  version = "0.13.0";
+  version = "0.15.1";
   rev = "v${version}";
 
-  goPackagePath = "github.com/coreos/flannel";
+  vendorSha256 = null;
 
   src = fetchFromGitHub {
     inherit rev;
-    owner = "coreos";
+    owner = "flannel-io";
     repo = "flannel";
-    sha256 = "0mmswnaybwpf18h832haapcs5b63wn5w2hax0smm3inldiggsbw8";
+    sha256 = "1p4rz4kdiif8i78zgxhw6dd0c1bq159f6l1idvig5apph7zi2bwm";
   };
 
+  ldflags = [ "-X github.com/flannel-io/flannel/version.Version=${rev}" ];
+
+  # TestRouteCache/TestV6RouteCache fail with "Failed to create newns: operation not permitted"
+  doCheck = false;
+
+  passthru.tests = { inherit (nixosTests) flannel; };
+
   meta = {
     description = "Network fabric for containers, designed for Kubernetes";
     license = licenses.asl20;
-    homepage = "https://github.com/coreos/flannel";
-    maintainers = with maintainers; [johanot offline];
+    homepage = "https://github.com/flannel-io/flannel";
+    maintainers = with maintainers; [ johanot offline ];
     platforms = with platforms; linux;
   };
 }
diff --git a/pkgs/tools/networking/globalprotect-openconnect/default.nix b/pkgs/tools/networking/globalprotect-openconnect/default.nix
index 34fd3ef081f98..f4b0607d49fba 100644
--- a/pkgs/tools/networking/globalprotect-openconnect/default.nix
+++ b/pkgs/tools/networking/globalprotect-openconnect/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchFromGitHub
-, qmake, qtwebsockets, qtwebengine, wrapQtAppsHook, openconnect
+, cmake, qtwebsockets, qtwebengine, wrapQtAppsHook, openconnect
 }:
 
 stdenv.mkDerivation rec {
@@ -9,26 +9,16 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "yuezk";
     repo = "GlobalProtect-openconnect";
-    rev = "c14a6ad1d2b62f8d297bc4cfbcb1dcea4d99112f";
     fetchSubmodules = true;
-    sha256 = "sha256-M3+YGdN7LuuFEP9n94YJ/UDVhti/VlX0FzYMGeYebP4=";
+    rev = "v${version}";
+    sha256 = "sha256-w2y6DOFgQ8Xpi1abibvRNpEUbBsdvwDMGqlJxQSCpVg=";
   };
 
-  nativeBuildInputs = [ qmake wrapQtAppsHook ];
+  nativeBuildInputs = [ cmake wrapQtAppsHook ];
 
   buildInputs = [ openconnect qtwebsockets qtwebengine ];
 
   patchPhase = ''
-    for f in GPClient/GPClient.pro \
-      GPClient/com.yuezk.qt.gpclient.desktop \
-      GPService/GPService.pro \
-      GPService/dbus/com.yuezk.qt.GPService.service \
-      GPService/systemd/gpservice.service; do
-        substituteInPlace $f \
-          --replace /usr $out \
-          --replace /etc $out/lib;
-    done;
-
     substituteInPlace GPService/gpservice.h \
       --replace /usr/local/bin/openconnect ${openconnect}/bin/openconnect;
   '';
diff --git a/pkgs/tools/networking/gobgp/default.nix b/pkgs/tools/networking/gobgp/default.nix
index a89c3d7ec40a2..df159d2923271 100644
--- a/pkgs/tools/networking/gobgp/default.nix
+++ b/pkgs/tools/networking/gobgp/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gobgp";
-  version = "2.32.0";
+  version = "2.34.0";
 
   src = fetchFromGitHub {
     owner = "osrg";
     repo = "gobgp";
     rev = "v${version}";
-    sha256 = "sha256-+FVd/I1folRswTPIq09xpTCai4+FVa6TYDsaPE8sYR4=";
+    sha256 = "sha256-xyakq5DXwzONEP6EvDpAuzCrTDWcs+7asDlq9Vf4c1k=";
   };
 
   vendorSha256 = "sha256-+dX/XByFW5/zvfXvyWePAv9X71dJEKaQf6xNXAXoMxw=";
diff --git a/pkgs/tools/networking/godns/default.nix b/pkgs/tools/networking/godns/default.nix
index f04b40da0c4fb..fffcbbb528b79 100644
--- a/pkgs/tools/networking/godns/default.nix
+++ b/pkgs/tools/networking/godns/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "godns";
-  version = "2.5.1";
+  version = "2.5.3";
 
   src = fetchFromGitHub {
     owner = "TimothyYe";
     repo = "godns";
     rev = "v${version}";
-    sha256 = "sha256-a0wq/qPtwhAtm8khQsusHpsjXzsYixHqH1aAeBs1dKM=";
+    sha256 = "sha256-C2Auk0BJLhW8r4cnmoZiUddb8rcZqND5fER9L+3ooH4=";
   };
 
-  vendorSha256 = "sha256-TYjkow/9W467CMyqV2SSRJAuqXGdnAgR9gtfq4vX4u0=";
+  vendorSha256 = "sha256-/egdqQCkbmrxuQ3vPfHOtHxAgW143Y2eZEzKAsBVmaI=";
 
   # Some tests require internet access, broken in sandbox
   doCheck = false;
diff --git a/pkgs/tools/networking/godspeed/default.nix b/pkgs/tools/networking/godspeed/default.nix
new file mode 100644
index 0000000000000..011d09848d8e6
--- /dev/null
+++ b/pkgs/tools/networking/godspeed/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, libpcap
+}:
+
+buildGoModule rec {
+  pname = "godspeed";
+  version = "unstable-2021-08-27";
+
+  src = fetchFromGitHub {
+    owner = "redcode-labs";
+    repo = "GodSpeed";
+    rev = "c02b184ab0fd304d1bd8cbe1566a3d3de727975e";
+    sha256 = "sha256-y/mCfNWe5ShdxEz8IUQ8zUzgVkUy/+5lX6rcJ3r6KoI=";
+  };
+
+  vendorSha256 = "sha256-MCr1ShhkxM9CeSmqqtgAW0qv0QaIPRSOzASj8gt2ZAg=";
+
+  buildInputs = [
+    libpcap
+  ];
+
+  postFixup = ''
+    mv $out/bin/GodSpeed $out/bin/${pname}
+  '';
+
+  meta = with lib; {
+    description = "Manager for reverse shells";
+    homepage = "https://github.com/redcode-labs/GodSpeed";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
+  };
+}
diff --git a/pkgs/tools/networking/goimapnotify/default.nix b/pkgs/tools/networking/goimapnotify/default.nix
index 968d5774b5b5f..c2581fe3485be 100644
--- a/pkgs/tools/networking/goimapnotify/default.nix
+++ b/pkgs/tools/networking/goimapnotify/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "goimapnotify";
-  version = "2.3.2";
+  version = "2.3.7";
 
   src = fetchFromGitLab {
     owner = "shackra";
     repo = "goimapnotify";
     rev = version;
-    sha256 = "sha256-pkpdIkabxz9bu0LnyU1/wu1qqPc/pQqCn8tePc2fIfg=";
+    sha256 = "sha256-Wot+E+rDgXQ4FVgdfqe6a3O9oYUK3X1xImC33eDuUBo=";
   };
 
-  vendorSha256 = "sha256-4+2p/7BAEk+1V0TII9Q2O2YNX0rvBiw2Ss7k1dsvUbk=";
+  vendorSha256 = "sha256-DphGe9jbKo1aIfpF5kRYNSn/uIYHaRMrygda5t46svw=";
 
   postPatch = ''
     for f in command.go command_test.go; do
diff --git a/pkgs/tools/networking/goimapnotify/deps.nix b/pkgs/tools/networking/goimapnotify/deps.nix
deleted file mode 100644
index fc377c50be4cd..0000000000000
--- a/pkgs/tools/networking/goimapnotify/deps.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
-  {
-    goPackagePath = "github.com/emersion/go-imap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/emersion/go-imap";
-      rev = "b7db4a2bc5cc04fb568fb036a438da43ee9a9f78";
-      sha256 = "1v5hp02k9rfdq7gqiydz575dw6a991pspynhxypv0fvgh1vgqs0s";
-    };
-  }
-  {
-    goPackagePath = "github.com/emersion/go-imap-idle";
-    fetch = {
-      type = "git";
-      url = "https://github.com/emersion/go-imap-idle";
-      rev = "2af93776db6b042cc1116b0d0af00d7f58eea696";
-      sha256 = "19dh8sryjr3a8f0bgwywiz2fqccxhf4j66sm0w1jkjzh131f3pr7";
-    };
-  }
-  {
-    goPackagePath = "github.com/emersion/go-sasl";
-    fetch = {
-      type = "git";
-      url = "https://github.com/emersion/go-sasl";
-      rev = "7e096a0a6197b89989e8cc31016daa67c8c62051";
-      sha256 = "0mr9nzi4wc3ck730zqfqwmy8wk7d90h80yvvivqnxyfyadqy48kd";
-    };
-  }
-  {
-    goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
-    fetch = {
-      type = "git";
-      url = "https://github.com/konsorten/go-windows-terminal-sequences";
-      rev = "f55edac94c9bbba5d6182a4be46d86a2c9b5b50e";
-      sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7";
-    };
-  }
-  {
-    goPackagePath = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev = "8bdbc7bcc01dcbb8ec23dc8a28e332258d25251f";
-      sha256 = "1m7ny9jkb98cxqhsp13xa5hnqh1s9f25x04q6arsala4zswsw33c";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "a129542de9ae0895210abff9c95d67a1f33cb93d";
-      sha256 = "13p5q7s25rsvfkk8fcwf432j8djf7bjg7chs296rzlig4vqcdxi4";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "342b2e1fbaa52c93f31447ad2c6abc048c63e475";
-      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
-    };
-  }
-]
diff --git a/pkgs/tools/networking/gping/default.nix b/pkgs/tools/networking/gping/default.nix
index a08c02806e7dc..24dc47176e899 100644
--- a/pkgs/tools/networking/gping/default.nix
+++ b/pkgs/tools/networking/gping/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , rustPlatform
 , fetchFromGitHub
+, fetchpatch
 , libiconv
 }:
 
@@ -18,6 +19,13 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "sha256-xEASs6r5zxYJXS+at6aX5n0whGp5qwuNwq6Jh0GM+/4=";
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/orf/gping/commit/b843beb9617e4b7b98d4f6d3942067cad59c9d60.patch";
+      sha256 = "sha256-9DIeeweCuGqymvUj4EBct82XVevkFSbHWaV76ExjGbs=";
+    })
+  ];
+
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/gupnp-tools/default.nix b/pkgs/tools/networking/gupnp-tools/default.nix
index cc547cfb7df9e..c29d2c501df89 100644
--- a/pkgs/tools/networking/gupnp-tools/default.nix
+++ b/pkgs/tools/networking/gupnp-tools/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchurl
-, fetchpatch
 , meson
 , ninja
 , gupnp
@@ -18,26 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gupnp-tools";
-  version = "0.10.1";
+  version = "0.10.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "TqltFnRis6VI78T8TqCJ/lGNfSm+NJ0czomCuf+1O0o=";
+    sha256 = "beSe9LN1uKFk90t2YWixGE4NKBlrawek9TQfCN/YXWw=";
   };
 
-  patches = [
-    # Fix compilation with -Werror=format-security.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gupnp-tools/commit/d738baae3bffaf6a8dfc12f5fe1ea13168fe2e48.patch";
-      sha256 = "wrORH4y9Yb0YGAsjzoeN2MM07y9o+91kx078RH0G76w=";
-    })
-    # Fix missing variable reference caused by the previous patch.
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/gupnp-tools/commit/9b852d91175bc7607ad845459ba29d07a16fcbce.patch";
-      sha256 = "WjEBN/+snJSIg4SUP5iChdj2auIyzePI0TH3Ilks7fk=";
-    })
-  ];
-
   nativeBuildInputs = [
     meson
     ninja
diff --git a/pkgs/tools/networking/httping/default.nix b/pkgs/tools/networking/httping/default.nix
index 7389c78ef8db6..77f2b52890e03 100644
--- a/pkgs/tools/networking/httping/default.nix
+++ b/pkgs/tools/networking/httping/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, gettext, libintl, ncurses, openssl
+{ lib, stdenv, fetchurl, fetchpatch, gettext, libintl, ncurses, openssl
 , fftw ? null }:
 
 stdenv.mkDerivation rec {
@@ -10,6 +10,15 @@ stdenv.mkDerivation rec {
     sha256 = "1y7sbgkhgadmd93x1zafqc4yp26ssiv16ni5bbi9vmvvdl55m29y";
   };
 
+  patches = [
+    # Upstream fix for ncurses-6.3.
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/folkertvanheusden/HTTPing/commit/4ea9d5b78540c972e3fe1bf44db9f7b3f87c0ad0.patch";
+      sha256 = "0w3kdkq6c6hz1d9jjnw0ldvd6dy39yamj8haf0hvcyb1sb67qjmp";
+    })
+  ];
+
   buildInputs = [ fftw libintl ncurses openssl ];
   nativeBuildInputs = [ gettext ];
 
diff --git a/pkgs/tools/networking/httplz/default.nix b/pkgs/tools/networking/httplz/default.nix
index 52654a49d65f7..1d482f2bebf1c 100644
--- a/pkgs/tools/networking/httplz/default.nix
+++ b/pkgs/tools/networking/httplz/default.nix
@@ -13,15 +13,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "httplz";
-  version = "1.12.1";
+  version = "1.12.2";
 
   src = fetchCrate {
     inherit version;
     pname = "https";
-    sha256 = "sha256-vMhQHWzsZlqMVkEQHCZTB8T4ETTaf8iAS9QhgYdfcx0=";
+    sha256 = "sha256-FhxNYss6n0AJEszpJ7+6CAJE2sdsflWQkvSLakTnFdY=";
   };
 
-  cargoSha256 = "sha256-9gnKVZ3HQs3kNj4i1cgC+Jl3dhjx7QRaHSih1HOB3nI=";
+  cargoSha256 = "sha256-wyksA3RYpGkD6nhllNv8WkUwEdml4TiPM2a4GzfBD1o=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/tools/networking/hurl/default.nix b/pkgs/tools/networking/hurl/default.nix
index fef2493fed064..1264bc107ea6a 100644
--- a/pkgs/tools/networking/hurl/default.nix
+++ b/pkgs/tools/networking/hurl/default.nix
@@ -12,13 +12,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hurl";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "Orange-OpenSource";
     repo = pname;
     rev = version;
-    sha256 = "sha256-oa9J51Y6Q0nPxA9SdsEZy7F6EopS5xuh1yWyTD21mGI=";
+    sha256 = "sha256-avgi3Y5PRI/RZLYw10ifYV6eKKEBi349NYtYs07GS2k=";
   };
 
   nativeBuildInputs = [
@@ -37,7 +37,7 @@ rustPlatform.buildRustPackage rec {
   # Tests require network access to a test server
   doCheck = false;
 
-  cargoSha256 = "sha256-CwChbp6Un9tgJu1vtfhcFclpbvGANLLEX3lwtTQPuSg=";
+  cargoSha256 = "sha256-GB+MnvWkXcdlJvaxtSItm3nGRyr8zWhxSq58smPk/aY=";
 
   postInstall = ''
     python ci/gen_manpage.py docs/hurl.md > hurl.1
diff --git a/pkgs/tools/networking/i2pd/default.nix b/pkgs/tools/networking/i2pd/default.nix
index a4534d1fc8bb3..7c034a03e2e9d 100644
--- a/pkgs/tools/networking/i2pd/default.nix
+++ b/pkgs/tools/networking/i2pd/default.nix
@@ -9,13 +9,13 @@ assert upnpSupport -> miniupnpc != null;
 
 stdenv.mkDerivation rec {
   pname = "i2pd";
-  version = "2.39.0";
+  version = "2.40.0";
 
   src = fetchFromGitHub {
     owner = "PurpleI2P";
     repo = pname;
     rev = version;
-    sha256 = "sha256-j8kHuX5Ca90ODjmF94HpGvjSpocDSuSxfVmvbIYRAKo=";
+    sha256 = "sha256-Cld5TP2YoLzm73q7uP/pwqEeUsT5uMPAUx9HABOVeZA=";
   };
 
   buildInputs = with lib; [ boost zlib openssl ]
diff --git a/pkgs/tools/networking/innernet/default.nix b/pkgs/tools/networking/innernet/default.nix
index 608a7379ef9a1..5baaf2e122052 100644
--- a/pkgs/tools/networking/innernet/default.nix
+++ b/pkgs/tools/networking/innernet/default.nix
@@ -1,16 +1,27 @@
-{ lib, stdenv, rustPlatform, fetchFromGitHub, llvmPackages, sqlite, installShellFiles, Security, libiconv }:
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, llvmPackages
+, sqlite
+, installShellFiles
+, Security
+, libiconv
+, innernet
+, testVersion
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "innernet";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "tonarino";
     repo = "innernet";
     rev = "v${version}";
-    sha256 = "1ja7khvc4cy317ckglnlf11wfmin62ihic061phdp6rmfv95cza0";
+    sha256 = "141zjfl125m5lrimam1dbpk40dqfq4vnaz42sbiq1v1avyg684fq";
   };
-  cargoSha256 = "18xpwav48xv7xm7r3w9qplmv2i18cg09pkahyvs5l4akdjgxyw10";
+  cargoSha256 = "0559d0ayysvqs4k46fhgd4r8wa89abgx6rvhlh0gnlnga8vacpw5";
 
   nativeBuildInputs = with llvmPackages; [
     llvm
@@ -28,21 +39,10 @@ rustPlatform.buildRustPackage rec {
     installShellCompletion doc/innernet-server.completions.{bash,fish,zsh}
   '';
 
-  doInstallCheck = true;
-  installCheckPhase = ''
-    if [[ "$("$out/bin/${pname}"-server --version)" == "${pname}-server ${version}" ]]; then
-      echo '${pname}-server smoke check passed'
-    else
-      echo '${pname}-server smoke check failed'
-      return 1
-    fi
-    if [[ "$("$out/bin/${pname}" --version)" == "${pname} ${version}" ]]; then
-      echo '${pname} smoke check passed'
-    else
-      echo '${pname} smoke check failed'
-      return 1
-    fi
-  '';
+  passthru.tests = {
+    serverVersion = testVersion { package = innernet; command = "innernet-server --version"; };
+    version = testVersion { package = innernet; command = "innernet --version"; };
+  };
 
   meta = with lib; {
     description = "A private network system that uses WireGuard under the hood";
diff --git a/pkgs/tools/networking/ipinfo/default.nix b/pkgs/tools/networking/ipinfo/default.nix
index 9a48588d3d86d..c67a8747aa897 100644
--- a/pkgs/tools/networking/ipinfo/default.nix
+++ b/pkgs/tools/networking/ipinfo/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "ipinfo";
-  version = "2.1.1";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "cli";
     rev = "${pname}-${version}";
-    sha256 = "15pwx94n4qi02r3ppqkpnkikpnbqmr8rrn9gmkbjy2vbdi147qwl";
+    sha256 = "sha256-5kXFSxdZrlaBX+7R9hlM+40+3KlJ7g8xu4BN2PyxXEc=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/tools/networking/isync/default.nix b/pkgs/tools/networking/isync/default.nix
index a6181e6f2dedb..e26526dc68d57 100644
--- a/pkgs/tools/networking/isync/default.nix
+++ b/pkgs/tools/networking/isync/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "isync";
-  version = "1.4.3";
+  version = "1.4.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/isync/${pname}-${version}.tar.gz";
-    sha256 = "024p3glj4p7fhrssw5sr55arls9zna1igxxrspxlfd6sbds21ixl";
+    sha256 = "1zq0wwvmqsl9y71546dr0aygzn9gjjfiw19hlcq87s929y4p6ckw";
   };
 
   nativeBuildInputs = [ pkg-config perl ];
diff --git a/pkgs/tools/networking/jnettop/default.nix b/pkgs/tools/networking/jnettop/default.nix
index 91f92236ecf83..2c002843eca1f 100644
--- a/pkgs/tools/networking/jnettop/default.nix
+++ b/pkgs/tools/networking/jnettop/default.nix
@@ -18,6 +18,14 @@ stdenv.mkDerivation rec {
       url = "https://sources.debian.net/data/main/j/jnettop/0.13.0-1/debian/patches/0001-Use-64-bit-integers-for-byte-totals-support-bigger-u.patch";
       sha256 = "1b0alc12sj8pzcb66f8xslbqlbsvq28kz34v6jfhbb1q25hyr7jg";
     })
+
+    # Fix pending upstream inclusion for ncurses-6.3:
+    #  https://sourceforge.net/p/jnettop/patches/5/
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://sourceforge.net/p/jnettop/patches/5/attachment/jnettop-0.13.0-ncurses-6.3.patch";
+      sha256 = "1a0g3bal6f2fh1sq9q5kfwljrnskfvrhdzhjadcds34gzsr26v7x";
+    })
   ];
 
   preConfigure = "autoconf ";
@@ -31,7 +39,7 @@ stdenv.mkDerivation rec {
       by bandwidth they use.
     '';
 
-    homepage = "http://jnettop.kubs.info/";
+    homepage = "https://sourceforge.net/projects/jnettop/";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
   };
diff --git a/pkgs/tools/networking/kapp/default.nix b/pkgs/tools/networking/kapp/default.nix
index 115c162e0d292..1c3f2de7212b5 100644
--- a/pkgs/tools/networking/kapp/default.nix
+++ b/pkgs/tools/networking/kapp/default.nix
@@ -1,13 +1,13 @@
 { lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 buildGoModule rec {
   pname = "kapp";
-  version = "0.42.0";
+  version = "0.43.0";
 
   src = fetchFromGitHub {
     owner = "vmware-tanzu";
     repo = "carvel-kapp";
     rev = "v${version}";
-    sha256 = "sha256-unjfUecfvuobhvsSGSqMAs19ncOLkaJZ2uJv5uVcHr0=";
+    sha256 = "sha256-9e5vgOIB8PHbM5nsDaasyEfWP5dr7j3vU3+WzFua6bI=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/tools/networking/kea/default.nix b/pkgs/tools/networking/kea/default.nix
index 9bc3c1e8da3c3..3458e5c6e54b0 100644
--- a/pkgs/tools/networking/kea/default.nix
+++ b/pkgs/tools/networking/kea/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kea";
-  version = "2.0.0"; # only even minor versions are stable
+  version = "2.0.1"; # only even minor versions are stable
 
   src = fetchurl {
     url = "https://ftp.isc.org/isc/${pname}/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-BYVODDhxtFLtrOGOzMarYYlA4CSfvnwjKjbQauWb9B0=";
+    sha256 = "sha256-9Qu5qVTjFDFrQDOhddyAdJa7nBdUEQvZKiHBZanoTFc=";
   };
 
   patches = [ ./dont-create-var.patch ];
diff --git a/pkgs/tools/networking/linkchecker/default.nix b/pkgs/tools/networking/linkchecker/default.nix
index 480321ad15fcb..3cb5ecb015307 100644
--- a/pkgs/tools/networking/linkchecker/default.nix
+++ b/pkgs/tools/networking/linkchecker/default.nix
@@ -4,13 +4,13 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "linkchecker";
-  version = "10.0.0";
+  version = "10.0.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v" + version;
-    sha256 = "sha256-gcaamRxGn124LZ8rU+WzjRookU3akDO0ZyzI7/S6kFA=";
+    sha256 = "sha256-OOssHbX9nTCURpMKIy+95ZTvahuUAabLUhPnRp3xpN4=";
   };
 
   nativeBuildInputs = [ gettext ];
diff --git a/pkgs/tools/networking/lldpd/default.nix b/pkgs/tools/networking/lldpd/default.nix
index a4e5d565756b1..29ca9961546aa 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.11";
+  version = "1.0.13";
 
   src = fetchurl {
     url = "https://media.luffy.cx/files/lldpd/${pname}-${version}.tar.gz";
-    sha256 = "sha256-tR0VcA+678t/uFw1BrSdMxc6DxXXAPkz7wRAZ7QtRuQ=";
+    sha256 = "sha256-1jmCf9iidyDRv9lLxS7KJK9j3cw8nS2mB4h3iInYRwE=";
   };
 
   configureFlags = [
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "802.1ab implementation (LLDP) to help you locate neighbors of all your equipments";
-    homepage = "https://vincentbernat.github.io/lldpd/";
+    homepage = "https://lldpd.github.io/";
     license = licenses.isc;
     maintainers = with maintainers; [ fpletz ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/networking/mailsend/default.nix b/pkgs/tools/networking/mailsend/default.nix
index 9856634116eb2..13a6dc005dd89 100644
--- a/pkgs/tools/networking/mailsend/default.nix
+++ b/pkgs/tools/networking/mailsend/default.nix
@@ -1,24 +1,17 @@
-{lib, stdenv, fetchurl, openssl}:
-let
-  s = # Generated upstream information
-  rec {
-    baseName="mailsend";
-    version="1.19";
-    name="${baseName}-${version}";
-    hash="1xwk6jvl5li8ddlik1lj88qswnyminp9wlf5cm8gg3n54szgcpjn";
-    url="https://github.com/muquit/mailsend/archive/1.19.tar.gz";
-    sha256="1xwk6jvl5li8ddlik1lj88qswnyminp9wlf5cm8gg3n54szgcpjn";
+{ lib, stdenv, fetchurl, openssl }:
+
+stdenv.mkDerivation rec {
+  pname = "mailsend";
+  version = "1.19";
+
+  src = fetchurl {
+    url = "https://github.com/muquit/mailsend/archive/${version}.tar.gz";
+    sha256 = "sha256-Vl72vibFjvdQZcVRnq6N1VuuMUKShhlpayjSQrc0k/c=";
   };
+
   buildInputs = [
     openssl
   ];
-in
-stdenv.mkDerivation {
-  inherit (s) name version;
-  inherit buildInputs;
-  src = fetchurl {
-    inherit (s) url sha256;
-  };
   configureFlags = [
     "--with-openssl=${openssl.dev}"
   ];
@@ -29,12 +22,11 @@ stdenv.mkDerivation {
       sha256 = "0vz373zcfl19inflybfjwshcq06rvhx0i5g0f4b021cxfhyb1sm0";
     })
   ];
-  meta = {
-    inherit (s) version;
+  meta = with lib; {
     description = "CLI email sending tool";
-    license = lib.licenses.bsd3 ;
-    maintainers = [lib.maintainers.raskin];
-    platforms = lib.platforms.linux;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ raskin ];
+    platforms = platforms.linux;
     homepage = "https://github.com/muquit/mailsend";
     downloadPage = "https://github.com/muquit/mailsend/releases";
   };
diff --git a/pkgs/tools/networking/mailsend/default.upstream b/pkgs/tools/networking/mailsend/default.upstream
deleted file mode 100644
index 3d9862a3de21c..0000000000000
--- a/pkgs/tools/networking/mailsend/default.upstream
+++ /dev/null
@@ -1,3 +0,0 @@
-url "https://github.com/muquit/mailsend/releases"
-ensure_choice
-version '.*/([0-9][0-9.a-z]*)[.]tar[.].*' '\1'
diff --git a/pkgs/tools/networking/minio-client/default.nix b/pkgs/tools/networking/minio-client/default.nix
index b448c6d359406..8f0798aa95aa4 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 = "2021-10-07T04-19-58Z";
+  version = "2021-11-16T20-37-36Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "mc";
     rev = "RELEASE.${version}";
-    sha256 = "sha256-FF4blsNzr2M/ZZ2epTBhFkoj6s9Iw5GGXY65mKftojk=";
+    sha256 = "sha256-nNsvHVsVyJNm5ZUU58cymeJCO7uhvVKGpgxaQWCEYvI=";
   };
 
-  vendorSha256 = "sha256-GFxB5Gxnc6m91EjF2z108J1WmggCQrUhxwEA+Sih+94=";
+  vendorSha256 = "sha256-DBRqWgqBv2x/KRATrQ2olDhhWwlSgzckWkRIqmW5+js=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/networking/mqttui/default.nix b/pkgs/tools/networking/mqttui/default.nix
new file mode 100644
index 0000000000000..7945cd168d427
--- /dev/null
+++ b/pkgs/tools/networking/mqttui/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "mqttui";
+  version = "0.13.0";
+
+  src = fetchFromGitHub {
+    owner = "EdJoPaTo";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-taGpVLO9K5VmthWadstQcujcLHTb3fhEWDxKGd3Pj+E=";
+  };
+
+  cargoSha256 = "sha256-aAMDl8GZ+XqA4uBiDm2eHQsNFiqCrMBO66X0ruEjpJg=";
+
+  buildInputs = lib.optional stdenv.isDarwin Security;
+
+  meta = with lib; {
+    description = "Terminal client for MQTT";
+    homepage = "https://github.com/EdJoPaTo/mqttui";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/networking/ndn-tools/default.nix b/pkgs/tools/networking/ndn-tools/default.nix
index 83a8182b42751..1b693f21f62eb 100644
--- a/pkgs/tools/networking/ndn-tools/default.nix
+++ b/pkgs/tools/networking/ndn-tools/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, boost
+, boost175
 , fetchFromGitHub
 , libpcap
 , ndn-cxx
@@ -18,21 +18,23 @@ stdenv.mkDerivation rec {
     owner = "named-data";
     repo = pname;
     rev = "ndn-tools-${version}";
-    sha256 = "1q2d0v8srqjbvigr570qw6ia0d9f88aj26ccyxkzjjwwqdx3y4fy";
+    sha256 = "sha256-3hE/esOcS/ln94wZIRVCLjWgouEYnJJf3EvirNEGTeA=";
   };
 
   nativeBuildInputs = [ pkg-config sphinx wafHook ];
   buildInputs = [ libpcap ndn-cxx openssl ];
 
   wafConfigureFlags = [
-    "--boost-includes=${boost.dev}/include"
-    "--boost-libs=${boost.out}/lib"
-    "--with-tests"
+    "--boost-includes=${boost175.dev}/include"
+    "--boost-libs=${boost175.out}/lib"
+    # "--with-tests"
   ];
 
-  doCheck = true;
+  doCheck = false;
   checkPhase = ''
+    runHook preCheck
     build/unit-tests
+    runHook postCheck
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/nebula/default.nix b/pkgs/tools/networking/nebula/default.nix
index 2aec2fb50c76c..a30c9f3bbdcd4 100644
--- a/pkgs/tools/networking/nebula/default.nix
+++ b/pkgs/tools/networking/nebula/default.nix
@@ -1,17 +1,17 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGo117Module, fetchFromGitHub }:
 
-buildGoModule rec {
+buildGo117Module rec {
   pname = "nebula";
-  version = "1.4.0";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "slackhq";
     repo = pname;
     rev = "v${version}";
-    sha256 = "lu2/rSB9cFD7VUiK+niuqCX9CI2x+k4Pi+U5yksETSU=";
+    sha256 = "kxBu+r99sC3XWDX+xTmhdUJx0HMVWA0Xgy7wgfrjZ5E=";
   };
 
-  vendorSha256 = "p1inJ9+NAb2d81cn+y+ofhxFz9ObUiLgj+9cACa6Jqg=";
+  vendorSha256 = "5Yv2t5vdUNCcCo2KAm1xCkRVrt6gIasKHLqH7VVPDuU=";
 
   doCheck = false;
 
@@ -38,7 +38,7 @@ buildGoModule rec {
     '';
     homepage = "https://github.com/slackhq/nebula";
     license = licenses.mit;
-    maintainers = with maintainers; [ Br1ght0ne ];
+    maintainers = with maintainers; [ Br1ght0ne numinit ];
   };
 
 }
diff --git a/pkgs/tools/networking/netboot/default.nix b/pkgs/tools/networking/netboot/default.nix
index fdd1857ef10e4..cfd768e40ab6a 100644
--- a/pkgs/tools/networking/netboot/default.nix
+++ b/pkgs/tools/networking/netboot/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, bison, lzo, db4 }:
 
 stdenv.mkDerivation rec {
-  name = "netboot";
+  pname = "netboot";
   version = "0.10.2";
 
   src = fetchurl {
diff --git a/pkgs/tools/networking/networkmanager/applet/default.nix b/pkgs/tools/networking/networkmanager/applet/default.nix
index e6cf8d0e09cc5..fbb56f4c5c903 100644
--- a/pkgs/tools/networking/networkmanager/applet/default.nix
+++ b/pkgs/tools/networking/networkmanager/applet/default.nix
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
     homepage = "https://gitlab.gnome.org/GNOME/network-manager-applet/";
     description = "NetworkManager control applet for GNOME";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ phreedom ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/networkmanager/default.nix b/pkgs/tools/networking/networkmanager/default.nix
index 3913cb0520b79..ac261f83d5704 100644
--- a/pkgs/tools/networking/networkmanager/default.nix
+++ b/pkgs/tools/networking/networkmanager/default.nix
@@ -191,7 +191,7 @@ stdenv.mkDerivation rec {
     description = "Network configuration and management tool";
     license = licenses.gpl2Plus;
     changelog = "https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/raw/${version}/NEWS";
-    maintainers = teams.freedesktop.members ++ (with maintainers; [ phreedom domenkozar obadz maxeaubrey ]);
+    maintainers = teams.freedesktop.members ++ (with maintainers; [ domenkozar obadz maxeaubrey ]);
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/nfstrace/default.nix b/pkgs/tools/networking/nfstrace/default.nix
index ca75e50fa5270..7e2b938e4c8b8 100644
--- a/pkgs/tools/networking/nfstrace/default.nix
+++ b/pkgs/tools/networking/nfstrace/default.nix
@@ -22,11 +22,21 @@ stdenv.mkDerivation rec {
       url = "https://github.com/epam/nfstrace/commit/4562a895ed3ac0e811bdd489068ad3ebe4d7b501.patch";
       sha256 = "1fbicbllyykjknik7asa81x0ixxmbwqwkiz74cnznagv10jlkj3p";
     })
+
+    # Fix pending upstream inclusion for ncurses-6.3 support:
+    #  https://github.com/epam/nfstrace/pull/50
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/epam/nfstrace/commit/29c7c415f5412df1aae9b1e6ed3a2760d2c227a0.patch";
+      sha256 = "134709w6bld010jx3xdy9imcjzal904a84n9f8vv0wnas5clxdmx";
+    })
   ];
 
   postPatch = ''
+   # -Wall -Wextra -Werror fails on clang and newer gcc
     substituteInPlace CMakeLists.txt \
-      --replace "-Wno-braced-scalar-init" ""
+      --replace "-Wno-braced-scalar-init" "" \
+      --replace "-Werror" ""
   '';
 
   buildInputs = [ json_c libpcap ncurses libtirpc ];
diff --git a/pkgs/tools/networking/ngrok-2/default.nix b/pkgs/tools/networking/ngrok-2/default.nix
index f1f8545c96de4..6093cea40f079 100644
--- a/pkgs/tools/networking/ngrok-2/default.nix
+++ b/pkgs/tools/networking/ngrok-2/default.nix
@@ -16,8 +16,8 @@ let versions = lib.importJSON ./versions.json;
 
 in
 stdenv.mkDerivation {
-  name = "ngrok-${version}";
-  version = version;
+  pname = "ngrok";
+  inherit version;
 
   # run ./update
   src = fetchurl { inherit sha256 url; };
@@ -34,6 +34,9 @@ stdenv.mkDerivation {
 
   passthru.updateScript = ./update.sh;
 
+  # Stripping causes SEGFAULT on x86_64-darwin
+  dontStrip = true;
+
   meta = {
     description = "Allows you to expose a web server running on your local machine to the internet";
     homepage = "https://ngrok.com/";
diff --git a/pkgs/tools/networking/oapi-codegen/default.nix b/pkgs/tools/networking/oapi-codegen/default.nix
index 47d243782c748..163341d064660 100644
--- a/pkgs/tools/networking/oapi-codegen/default.nix
+++ b/pkgs/tools/networking/oapi-codegen/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "oapi-codegen";
-  version = "1.8.3";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "deepmap";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-VAtfJ1PXTSPMoQ4NqX0GcZMyi15edxWj6Xsj6h1b7hc=";
+    sha256 = "sha256-pGkTCOQ2OR/9c5+L9UgESJjSMmz9FjfJw9NB8Nr6gRQ=";
   };
 
-  vendorSha256 = "sha256-s6+Rs+G4z5fcmUiwGjeDoQYKWJz0a/PCejfKyn8WWxs=";
+  vendorSha256 = "sha256-hvY64cmfvEeHniscD1WDyaeFpWeBJwsDNwr76e9F6ow=";
 
   # Tests use network
   doCheck = false;
diff --git a/pkgs/tools/networking/obfs4/default.nix b/pkgs/tools/networking/obfs4/default.nix
index 0a74deea17d5c..ab13d3f4ef988 100644
--- a/pkgs/tools/networking/obfs4/default.nix
+++ b/pkgs/tools/networking/obfs4/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "obfs4";
-  version = "0.0.10";
+  version = "0.0.11";
 
   src = fetchgit {
     url = meta.repositories.git;
     rev = "refs/tags/${pname}proxy-${version}";
-    sha256 = "05aqmw8x8s0yqyqmdj5zcsq06gsbcmrlcd52gaqm20m1pg9503ad";
+    sha256 = "sha256-VjJ/Pc1YjNB2iLnN/5CxuaxolcaR1IMWgoESMzOXU/g=";
   };
 
-  vendorSha256 = "0h3gjxv26pc6cysvy1hny2f4abw6i847dk8fx0m113ixx9qghk87";
+  vendorSha256 = "sha256-xGCK8biTYcrmKbsl6ZyCjpRrVP9x5xGrC3VcMsR7ETo=";
 
   doCheck = false;
 
@@ -18,6 +18,6 @@ buildGoModule rec {
     description = "A pluggable transport proxy";
     homepage = "https://www.torproject.org/projects/obfsproxy";
     repositories.git = "https://git.torproject.org/pluggable-transports/obfs4.git";
-    maintainers = with maintainers; [ phreedom thoughtpolice ];
+    maintainers = with maintainers; [ thoughtpolice ];
   };
 }
diff --git a/pkgs/tools/networking/ofono/default.nix b/pkgs/tools/networking/ofono/default.nix
index 647cfd4a44ff6..de8b3d6996039 100644
--- a/pkgs/tools/networking/ofono/default.nix
+++ b/pkgs/tools/networking/ofono/default.nix
@@ -12,14 +12,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ofono";
-  version = "1.32";
+  version = "1.33";
 
   outputs = [ "out" "dev" ];
 
   src = fetchgit {
     url = "git://git.kernel.org/pub/scm/network/ofono/ofono.git";
     rev = version;
-    sha256 = "sha256-bJ7Qgau5soPiptrhcMZ8rWxfprRCTeR7OjQ5HZQ9hbc=";
+    sha256 = "sha256-UTFP69yv1epVrqBoRKCRcR2WiKBG01sLTzrsh/Nude4=";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/ookla-speedtest/default.nix b/pkgs/tools/networking/ookla-speedtest/default.nix
index 3834355528e90..5fc03c19c902b 100644
--- a/pkgs/tools/networking/ookla-speedtest/default.nix
+++ b/pkgs/tools/networking/ookla-speedtest/default.nix
@@ -2,16 +2,16 @@
 
 let
   pname = "ookla-speedtest";
-  version = "1.1.0";
+  version = "1.1.1";
 
   srcs = {
     x86_64-linux = fetchurl {
-      url = "https://install.speedtest.net/app/cli/${pname}-${version}-x86_64-linux.tgz";
-      sha256 = "sha256-/NWN8G6uqokjchSnNcC3FU1qDsOjt4Jh2kCnZc5B9H8=";
+      url = "https://install.speedtest.net/app/cli/${pname}-${version}-linux-x86_64.tgz";
+      sha256 = "sha256-lwR3/f7k10HnXwiPr2SPm1HHvgQxP7iP+13gfrGjBAw=";
     };
     aarch64-linux = fetchurl {
-      url = "https://install.speedtest.net/app/cli/${pname}-${version}-aarch64-linux.tgz";
-      sha256 = "sha256-kyOrChC3S8kn4ArO5IylFIstS/N3pXxBVx4ZWI600oU=";
+      url = "https://install.speedtest.net/app/cli/${pname}-${version}-linux-aarch64.tgz";
+      sha256 = "sha256-J2pAhz/hw8okohWAwvxkqpLtNY/8bbYHGhPQOo1DH9k=";
     };
   };
 in
diff --git a/pkgs/tools/networking/oonf-olsrd2/default.nix b/pkgs/tools/networking/oonf-olsrd2/default.nix
new file mode 100644
index 0000000000000..c2ab89834afa9
--- /dev/null
+++ b/pkgs/tools/networking/oonf-olsrd2/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "oonf-olsrd2";
+  version = "0.15.1";
+
+  src = fetchFromGitHub {
+    owner = "OLSR";
+    repo = "OONF";
+    rev = "v${version}";
+    hash = "sha256-7EH2K7gaBGD95WFlG6RRhKEWJm91Xv2GOHYQjZWuzl0=";
+  };
+
+  cmakeFlags = [
+    "-DOONF_NO_WERROR=yes"
+  ];
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  meta = with lib; {
+    description = "An adhoc wireless mesh routing daemon";
+    license = licenses.bsd3;
+    homepage = "http://olsr.org/";
+    maintainers = with maintainers; [ mkg20001 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/openfortivpn/default.nix b/pkgs/tools/networking/openfortivpn/default.nix
index e02782cccbfd1..30495b9184625 100644
--- a/pkgs/tools/networking/openfortivpn/default.nix
+++ b/pkgs/tools/networking/openfortivpn/default.nix
@@ -8,13 +8,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "openfortivpn";
-  version = "1.16.0";
+  version = "1.17.1";
 
   src = fetchFromGitHub {
     owner = "adrienverge";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wijP9VGKXlxCAU3xN6+cv9+NGwBS55ql8WsZZ592b/k=";
+    sha256 = "sha256-wSbE3vq9/o1r80zRT1rO9zAG6ws1nG18ALXYd9BAbLA=";
   };
 
   # we cannot write the config file to /etc and as we don't need the file, so drop it
diff --git a/pkgs/tools/networking/opensnitch/daemon.nix b/pkgs/tools/networking/opensnitch/daemon.nix
index 31057a8f5271a..2ebf9425f0e5f 100644
--- a/pkgs/tools/networking/opensnitch/daemon.nix
+++ b/pkgs/tools/networking/opensnitch/daemon.nix
@@ -7,6 +7,7 @@
 , lib
 , coreutils
 , iptables
+, makeWrapper
 }:
 
 buildGoModule rec {
@@ -32,6 +33,12 @@ buildGoModule rec {
 
   modRoot = "daemon";
 
+  vendorSha256 = "sha256-LMwQBFkHg1sWIUITLOX2FZi5QUfOivvrkcl9ELO3Trk=";
+
+  nativeBuildInputs = [ pkg-config makeWrapper ];
+
+  buildInputs = [ libnetfilter_queue libnfnetlink ];
+
   postBuild = ''
     mv $GOPATH/bin/daemon $GOPATH/bin/opensnitchd
     mkdir -p $out/lib/systemd/system
@@ -39,14 +46,12 @@ buildGoModule rec {
       --replace "/usr/local/bin/opensnitchd" "$out/bin/opensnitchd" \
       --replace "/etc/opensnitchd/rules" "/var/lib/opensnitch/rules" \
       --replace "/bin/mkdir" "${coreutils}/bin/mkdir"
-    sed -i '/\[Service\]/a Environment=PATH=${iptables}/bin' $out/lib/systemd/system/opensnitchd.service
   '';
 
-  vendorSha256 = "sha256-LMwQBFkHg1sWIUITLOX2FZi5QUfOivvrkcl9ELO3Trk=";
-
-  nativeBuildInputs = [ pkg-config ];
-
-  buildInputs = [ libnetfilter_queue libnfnetlink ];
+  postInstall = ''
+    wrapProgram $out/bin/opensnitchd \
+      --prefix PATH : ${lib.makeBinPath [ iptables ]}
+  '';
 
   meta = with lib; {
     description = "An application firewall";
diff --git a/pkgs/tools/networking/openssh/common.nix b/pkgs/tools/networking/openssh/common.nix
index fefa80b9c4f6b..9d5e89980fe3d 100644
--- a/pkgs/tools/networking/openssh/common.nix
+++ b/pkgs/tools/networking/openssh/common.nix
@@ -18,10 +18,12 @@
 , libedit
 , pkg-config
 , pam
+, libredirect
 , etcDir ? null
 , withKerberos ? !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)
 , libkrb5
 , libfido2
+, hostname
 , nixosTests
 , withFIDO ? stdenv.hostPlatform.isUnix && !stdenv.hostPlatform.isMusl
 , linkOpenssl ? true
@@ -100,6 +102,59 @@ stdenv.mkDerivation rec {
 
   hardeningEnable = [ "pie" ];
 
+  doCheck = true;
+  enableParallelChecking = false;
+  checkInputs = optional (!stdenv.isDarwin) hostname;
+  preCheck = ''
+    # construct a dummy HOME
+    export HOME=$(realpath ../dummy-home)
+    mkdir -p ~/.ssh
+
+    # construct a dummy /etc/passwd file for the sshd under test
+    # to use to look up the connecting user
+    DUMMY_PASSWD=$(realpath ../dummy-passwd)
+    cat > $DUMMY_PASSWD <<EOF
+    $(whoami)::$(id -u):$(id -g)::$HOME:$SHELL
+    EOF
+
+    # we need to NIX_REDIRECTS /etc/passwd both for processes
+    # invoked directly and those invoked by the "remote" session
+    cat > ~/.ssh/environment.base <<EOF
+    NIX_REDIRECTS=/etc/passwd=$DUMMY_PASSWD
+    LD_PRELOAD=${libredirect}/lib/libredirect.so
+    EOF
+
+    # use an ssh environment file to ensure environment is set
+    # up appropriately for build environment even when no shell
+    # is invoked by the ssh session. otherwise the PATH will
+    # only contain default unix paths like /bin which we don't
+    # have in our build environment
+    cat - regress/test-exec.sh > regress/test-exec.sh.new <<EOF
+    cp $HOME/.ssh/environment.base $HOME/.ssh/environment
+    echo "PATH=\$PATH" >> $HOME/.ssh/environment
+    EOF
+    mv regress/test-exec.sh.new regress/test-exec.sh
+
+    # explicitly enable the PermitUserEnvironment feature
+    substituteInPlace regress/test-exec.sh \
+      --replace \
+        'cat << EOF > $OBJ/sshd_config' \
+        $'cat << EOF > $OBJ/sshd_config\n\tPermitUserEnvironment yes'
+
+    # some tests want to use files under /bin as example files
+    for f in regress/sftp-cmds.sh regress/forwarding.sh; do
+      substituteInPlace $f --replace '/bin' "$(dirname $(type -p ls))"
+    done
+
+    # set up NIX_REDIRECTS for direct invocations
+    set -a; source ~/.ssh/environment.base; set +a
+  '';
+  # integration tests hard to get working on darwin with its shaky
+  # sandbox
+  checkTarget = optional (!stdenv.isDarwin) "t-exec"
+    # other tests are less demanding of the environment
+    ++ [ "unit" "file-tests" "interop-tests" ];
+
   postInstall = ''
     # Install ssh-copy-id, it's very useful.
     cp contrib/ssh-copy-id $out/bin/
diff --git a/pkgs/tools/networking/p2p/amule/default.nix b/pkgs/tools/networking/p2p/amule/default.nix
index 96bf7656e8ae8..8123b9d91fe06 100644
--- a/pkgs/tools/networking/p2p/amule/default.nix
+++ b/pkgs/tools/networking/p2p/amule/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
 
     homepage = "https://github.com/amule-project/amule";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ phreedom ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.unix;
     # cmake fails: Cannot specify link libraries for target "wxWidgets::ADV" which is not built by this project.
     broken = enableDaemon;
diff --git a/pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix b/pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix
index 08b646421b886..d46e4a159399a 100644
--- a/pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix
+++ b/pkgs/tools/networking/p2p/jesec-rtorrent/libtorrent.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/jesec/libtorrent";
     description = "A BitTorrent library written in C++ for *nix, with focus on high performance and good code (jesec's fork)";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ winterqt AndersonTorres ];
+    maintainers = with maintainers; [ winter AndersonTorres ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/p2p/jesec-rtorrent/rtorrent.nix b/pkgs/tools/networking/p2p/jesec-rtorrent/rtorrent.nix
index 3e69e64de35bc..7fe444228d374 100644
--- a/pkgs/tools/networking/p2p/jesec-rtorrent/rtorrent.nix
+++ b/pkgs/tools/networking/p2p/jesec-rtorrent/rtorrent.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
     description = "An ncurses client for libtorrent, ideal for use with screen, tmux, or dtach (jesec's fork)";
     homepage = "https://github.com/jesec/rtorrent";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ winterqt AndersonTorres ];
+    maintainers = with maintainers; [ winter AndersonTorres ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/pcapfix/default.nix b/pkgs/tools/networking/pcapfix/default.nix
index bdce32f0813eb..5a8f24355c26a 100644
--- a/pkgs/tools/networking/pcapfix/default.nix
+++ b/pkgs/tools/networking/pcapfix/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pcapfix";
-  version = "1.1.4";
+  version = "1.1.7";
 
   src = fetchurl {
     url = "https://f00l.de/pcapfix/pcapfix-${version}.tar.gz";
-    sha256 = "0m6308ka33wqs568b7cwa1f5q0bv61j2nwfizdyzrazw673lnh6d";
+    sha256 = "sha256-bL6/b5npdrGrdok5JK65DNh8MWUILRUmTBkz8POz4Ow=";
   };
 
   postPatch = ''sed -i "s|/usr|$out|" Makefile'';
diff --git a/pkgs/tools/networking/pirate-get/default.nix b/pkgs/tools/networking/pirate-get/default.nix
index dc9133229af78..112b78dcae8b3 100644
--- a/pkgs/tools/networking/pirate-get/default.nix
+++ b/pkgs/tools/networking/pirate-get/default.nix
@@ -4,11 +4,11 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "pirate-get";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07s5ss9dxccx1mip7pyga1fagywkqchxmzz55ng47ac9053ffxkq";
+    sha256 = "0pr703fwinr2f4rba86zp57mpf5j2jgvp5n50rc5vy5g7yfwsddm";
   };
 
   propagatedBuildInputs = [ colorama veryprettytable pyperclip ];
diff --git a/pkgs/tools/networking/prettyping/default.nix b/pkgs/tools/networking/prettyping/default.nix
index 43f32ddb9fb41..16311f5b99612 100644
--- a/pkgs/tools/networking/prettyping/default.nix
+++ b/pkgs/tools/networking/prettyping/default.nix
@@ -1,12 +1,11 @@
 { stdenv, lib, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  name = "${program}-${version}";
-  program = "prettyping";
+  pname = "prettyping";
   version = "1.0.1";
   src = fetchFromGitHub {
     owner = "denilsonsa";
-    repo = program;
+    repo = pname;
     rev = "v${version}";
     sha256 = "05vfaq9y52z40245j47yjk1xaiwrazv15sgjq64w91dfyahjffxf";
   };
diff --git a/pkgs/tools/networking/privoxy/default.nix b/pkgs/tools/networking/privoxy/default.nix
index 9fc159d810c11..33c7584dbdc94 100644
--- a/pkgs/tools/networking/privoxy/default.nix
+++ b/pkgs/tools/networking/privoxy/default.nix
@@ -8,11 +8,11 @@
 stdenv.mkDerivation rec {
 
   pname = "privoxy";
-  version = "3.0.32";
+  version = "3.0.33";
 
   src = fetchurl {
     url = "mirror://sourceforge/ijbswa/Sources/${version}%20%28stable%29/${pname}-${version}-stable-src.tar.gz";
-    sha256 = "sha256-xh3kAIxiRF7Bjx8nBAfL8jcuq6k76szcnjI4uy3v7tc=";
+    sha256 = "sha256-BLEE5w2sYVYbndEQaEslD6/IwT2+Q3pg+uGN3ZqIH64=";
   };
 
   hardeningEnable = [ "pie" ];
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     # GPLv2 (or later). See https://www.privoxy.org/user-manual/copyright.html
     license = licenses.gpl2Plus;
     platforms = platforms.all;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
   };
 
 }
diff --git a/pkgs/tools/networking/proxify/default.nix b/pkgs/tools/networking/proxify/default.nix
index 47e36df3ac64f..36db5037a44c6 100644
--- a/pkgs/tools/networking/proxify/default.nix
+++ b/pkgs/tools/networking/proxify/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "proxify";
-  version = "0.0.4";
+  version = "0.0.5";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "proxify";
     rev = "v${version}";
-    sha256 = "0qhr51naa7ad80fsr12ka432071mfb1zq2wd852p1lyvy0mdf52s";
+    sha256 = "sha256-jITmLJHKTIXnQRUTLaXQPv57gJSbD+6AfJNl36AemR0=";
   };
 
-  vendorSha256 = "0dynyhqh8jzmljqng1yh07r6k6zfzlsgh36rlynbdgcvjl7jdhnx";
+  vendorSha256 = "sha256-Yf1edWWHao2A+iY/5N14mvtvLP+IJDZEEB0Voj47sCs=";
 
   meta = with lib; {
     description = "Proxy tool for HTTP/HTTPS traffic capture";
diff --git a/pkgs/tools/networking/redsocks/default.nix b/pkgs/tools/networking/redsocks/default.nix
index b609cce90bc54..9b8989f30c2ac 100644
--- a/pkgs/tools/networking/redsocks/default.nix
+++ b/pkgs/tools/networking/redsocks/default.nix
@@ -1,15 +1,12 @@
 { lib, stdenv, fetchFromGitHub, libevent }:
 
-let
-  pkg = "redsocks";
+stdenv.mkDerivation rec {
+  pname = "redsocks";
   version = "0.5";
-in
-stdenv.mkDerivation {
-  name = "${pkg}-${version}";
 
   src = fetchFromGitHub {
     owner = "darkk";
-    repo = pkg;
+    repo = "redsocks";
     rev = "release-${version}";
     sha256 = "170cpvvivb6y2kwsqj9ppx5brgds9gkn8mixrnvj8z9c15xhvplm";
   };
diff --git a/pkgs/tools/networking/rp-pppoe/default.nix b/pkgs/tools/networking/rp-pppoe/default.nix
index fd3a563c209d8..572625651e9ab 100644
--- a/pkgs/tools/networking/rp-pppoe/default.nix
+++ b/pkgs/tools/networking/rp-pppoe/default.nix
@@ -1,9 +1,10 @@
 { lib, stdenv, fetchurl, ppp } :
 let
-  version = "3.12";
 in
-stdenv.mkDerivation {
-  name = "rp-pppoe-" + version;
+stdenv.mkDerivation rec {
+  pname = "rp-pppoe";
+  version = "3.12";
+
   src = fetchurl {
     url = "https://www.roaringpenguin.com/files/download/rp-pppoe-${version}.tar.gz";
     sha256 = "1hl6rjvplapgsyrap8xj46kc9kqwdlm6ya6gp3lv0ihm0c24wy80";
@@ -11,7 +12,6 @@ stdenv.mkDerivation {
 
   buildInputs = [ ppp ];
 
-
   preConfigure = ''
     cd src
     export PPPD=${ppp}/sbin/pppd
diff --git a/pkgs/tools/networking/s6-dns/default.nix b/pkgs/tools/networking/s6-dns/default.nix
index 0a7307b6293b4..678b8639f07b1 100644
--- a/pkgs/tools/networking/s6-dns/default.nix
+++ b/pkgs/tools/networking/s6-dns/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "s6-dns";
-  version = "2.3.5.2";
-  sha256 = "0nczzjprvp6wirzycgf5h32dlgx4r8grzkqhif27n3ii6f5g78yw";
+  version = "2.3.5.3";
+  sha256 = "1nknkh2rw7ggf5ncspb11wyp6ldyqc9lf3nmnklwb5fcf5kjzi1a";
 
   description = "A suite of DNS client programs and libraries for Unix systems";
 
diff --git a/pkgs/tools/networking/s6-networking/default.nix b/pkgs/tools/networking/s6-networking/default.nix
index 42f7187fabed9..abdc773280b4b 100644
--- a/pkgs/tools/networking/s6-networking/default.nix
+++ b/pkgs/tools/networking/s6-networking/default.nix
@@ -19,8 +19,8 @@ assert sslSupportEnabled -> sslLibs ? ${sslSupport};
 
 buildPackage {
   pname = "s6-networking";
-  version = "2.5.0.0";
-  sha256 = "1fn3g9gkwgmnxallhk82f5rly81pnkilj7n49g5fbfmaalsq96mh";
+  version = "2.5.1.0";
+  sha256 = "0hgzj68bk17r1gr32ld1dm5s1x1a5x8ac03klykhfbasx8gwa1r5";
 
   description = "A suite of small networking utilities for Unix systems";
 
diff --git a/pkgs/tools/networking/shadowsocks-rust/default.nix b/pkgs/tools/networking/shadowsocks-rust/default.nix
index 065b842c384f5..b6d91da334e44 100644
--- a/pkgs/tools/networking/shadowsocks-rust/default.nix
+++ b/pkgs/tools/networking/shadowsocks-rust/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shadowsocks-rust";
-  version = "1.11.2";
+  version = "1.12.5";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shadowsocks";
     repo = pname;
-    sha256 = "0ry3zfwxs5j243jpbp5ymnz14ycyk6gpgb50lcazhn1yy52p8wac";
+    sha256 = "sha256-whPaFb+4mYOWmtFc/a+NkH9avCfOnGnAvqz3UFTt+RY=";
   };
 
-  cargoSha256 = "1hvrp3zf5h33j6fgqyzn2jvjbyi8c8pyqwrj5wg3lw38h0z5rvaj";
+  cargoSha256 = "sha256-w7AqNsa9lolPEiHEv7E4XGaFV/UbCeYvmWekr9YzO6Q=";
 
   RUSTC_BOOTSTRAP = 1;
 
diff --git a/pkgs/tools/networking/slowlorust/default.nix b/pkgs/tools/networking/slowlorust/default.nix
new file mode 100644
index 0000000000000..dc98d95828f55
--- /dev/null
+++ b/pkgs/tools/networking/slowlorust/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "slowlorust";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "MJVL";
+    repo = pname;
+    rev = version;
+    sha256 = "c4NWkQ/QvlUo1YoV2s7rWB6wQskAP5Qp1WVM23wvV3c=";
+  };
+
+  cargoSha256 = "Wu1mm+yJw2SddddxC5NfnMWLr+dplnRxH3AJ1/mTAKM=";
+
+  meta = with lib; {
+    description = "Lightweight slowloris (HTTP DoS) tool";
+    homepage = "https://github.com/MJVL/slowlorust";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/networking/socat/default.nix b/pkgs/tools/networking/socat/default.nix
index 7a24ccf33b742..b26760a729418 100644
--- a/pkgs/tools/networking/socat/default.nix
+++ b/pkgs/tools/networking/socat/default.nix
@@ -9,13 +9,20 @@
 
 stdenv.mkDerivation rec {
   pname = "socat";
-  version = "1.7.4.1";
+  version = "1.7.4.2";
 
   src = fetchurl {
     url = "http://www.dest-unreach.org/socat/download/${pname}-${version}.tar.bz2";
-    sha256 = "1sbmqqvni3ss9wyay6ik5v81kxffkra80mh4ypgj74g82iba5b1z";
+    sha256 = "sha256-ZpCp+ZkEV7UFCXonK78sv0zDVXYXb3ZkbjUksOkcF2M=";
   };
 
+  patches = [
+    # This adds missing feature checks for TCP_INFO, a Linux feature
+    #
+    # Discussed in https://github.com/Homebrew/homebrew-core/pull/88595
+    ./socat-fix-feature-check-tcpinfo.patch
+  ];
+
   postPatch = ''
     patchShebangs test.sh
     substituteInPlace test.sh \
diff --git a/pkgs/tools/networking/socat/socat-fix-feature-check-tcpinfo.patch b/pkgs/tools/networking/socat/socat-fix-feature-check-tcpinfo.patch
new file mode 100644
index 0000000000000..ec0ea88359c8d
--- /dev/null
+++ b/pkgs/tools/networking/socat/socat-fix-feature-check-tcpinfo.patch
@@ -0,0 +1,21 @@
+diff --git a/filan.c b/filan.c
+index 3465f7c..77c22a4 100644
+--- a/filan.c
++++ b/filan.c
+@@ -905,6 +905,7 @@ int tcpan(int fd, FILE *outfile) {
+ #if WITH_TCP
+ 
+ int tcpan2(int fd, FILE *outfile) {
++#ifdef TCP_INFO
+    struct tcp_info tcpinfo;
+    socklen_t tcpinfolen = sizeof(tcpinfo);
+    int result;
+@@ -930,6 +931,8 @@ int tcpan2(int fd, FILE *outfile) {
+    // fprintf(outfile, "%s={%u}\t", "TCPI_", tcpinfo.tcpi_);
+ 
+    return 0;
++#endif
++   return -1;
+ }
+ 
+ #endif /* WITH_TCP */
diff --git a/pkgs/tools/networking/stubby/default.nix b/pkgs/tools/networking/stubby/default.nix
deleted file mode 100644
index abe11b7bcb910..0000000000000
--- a/pkgs/tools/networking/stubby/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, getdns, doxygen, libyaml, darwin, cmake, systemd }:
-
-stdenv.mkDerivation rec {
-  pname = "stubby";
-  version = "0.3.0";
-
-  src = fetchFromGitHub {
-    owner = "getdnsapi";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "04izd1v4fv9l7r75aafkrp6svczbx4cvv1vnfyx5n9105pin11mx";
-  };
-
-  nativeBuildInputs = [ cmake libyaml ];
-
-  buildInputs = [ doxygen getdns systemd ]
-    ++ lib.optionals stdenv.isDarwin [ darwin.Security ];
-
-  meta = with lib; {
-    description = "A local DNS Privacy stub resolver (using DNS-over-TLS)";
-    longDescription = ''
-      Stubby is an application that acts as a local DNS Privacy stub
-      resolver (using RFC 7858, aka DNS-over-TLS). Stubby encrypts DNS
-      queries sent from a client machine (desktop or laptop) to a DNS
-      Privacy resolver increasing end user privacy. Stubby is developed by
-      the getdns team.
-    '';
-    homepage = "https://dnsprivacy.org/wiki/x/JYAT";
-    downloadPage = "https://github.com/getdnsapi/stubby";
-    maintainers = with maintainers; [ leenaars ehmry ];
-    license = licenses.bsd3; platforms = platforms.all;
-  };
-}
diff --git a/pkgs/tools/networking/stunnel/default.nix b/pkgs/tools/networking/stunnel/default.nix
index 68c2fc935fcdc..5b73e7d3fb489 100644
--- a/pkgs/tools/networking/stunnel/default.nix
+++ b/pkgs/tools/networking/stunnel/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "stunnel";
-  version = "5.60";
+  version = "5.61";
 
   src = fetchurl {
     url    = "https://www.stunnel.org/downloads/${pname}-${version}.tar.gz";
-    sha256 = "sha256-xF12WxUhhh/qmwO0JbndfUizBVEowK7Gc7ul75uPeH0=";
+    sha256 = "sha256-keoMpkgtj359lx7mSrT4aigX0DijcvCJPigxXvIBXXo=";
     # please use the contents of "https://www.stunnel.org/downloads/${name}.tar.gz.sha256",
     # not the output of `nix-prefetch-url`
   };
diff --git a/pkgs/tools/networking/swagger-codegen3/default.nix b/pkgs/tools/networking/swagger-codegen3/default.nix
index 9114df94b540f..ec1e4e3bbda97 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 }:
 
 stdenv.mkDerivation rec {
-  version = "3.0.29";
+  version = "3.0.30";
   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-sEwqUmtWaoBV0QmdP8ibm3neqWHk7+tWLAuO2FaCUtQ=";
+    sha256 = "sha256-ldjs0zEctHOmMf6eJWtjMOxjONWebsy2xlKOi8eFFdE=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/tools/networking/tcpreplay/default.nix b/pkgs/tools/networking/tcpreplay/default.nix
index ed83e4d455493..6e2fb35fd4c21 100644
--- a/pkgs/tools/networking/tcpreplay/default.nix
+++ b/pkgs/tools/networking/tcpreplay/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     "--enable-shared"
     "--enable-tcpreplay-edit"
     "--with-libpcap=${libpcap}"
-    "--with-tcpdump=${tcpdump}/bin"
+    "--with-tcpdump=${tcpdump}/bin/tcpdump"
   ];
 
   meta = with lib; {
diff --git a/pkgs/tools/networking/tdns-cli/default.nix b/pkgs/tools/networking/tdns-cli/default.nix
index 9f1ac89ce8ec5..a38456bcc760a 100644
--- a/pkgs/tools/networking/tdns-cli/default.nix
+++ b/pkgs/tools/networking/tdns-cli/default.nix
@@ -1,17 +1,17 @@
 { lib, fetchFromGitHub, rustPlatform }:
 
 rustPlatform.buildRustPackage rec {
-  name = "tdns-cli";
+  pname = "tdns-cli";
   version = "0.0.5";
 
   src = fetchFromGitHub {
     owner = "rotty";
-    repo = name;
+    repo = pname;
     rev = "v${version}";
     sha256 = "0nn036in5j1h0vxkwif0lf7fn900zy4f4kxlzy6qdx3jakgmxvwh";
   };
 
-  cargoSha256 = "14mmfj5my8gbsdhlhz17w8wjcc085c6dkj78kwr2hhsbcxp1vjgg";
+  cargoSha256 = "sha256-O4n38dla2WgZ4949Ata6AYbZF9LMnXDyuFNoXRrTN7I=";
 
   meta = with lib; {
     description = "DNS tool that aims to replace dig and nsupdate";
diff --git a/pkgs/tools/networking/tendermint/default.nix b/pkgs/tools/networking/tendermint/default.nix
index 4c154df6ebf51..12eb1a7f0a641 100644
--- a/pkgs/tools/networking/tendermint/default.nix
+++ b/pkgs/tools/networking/tendermint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tendermint";
-  version = "0.34.14";
+  version = "0.35.0";
 
   src = fetchFromGitHub {
     owner = "tendermint";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/FYkwHamJTty/h80KaNAmyNg0wCqiOAA3o2whouAOZc=";
+    sha256 = "sha256-fSDmwZNKAHXcMtNZlqJmUFkuFdZLkDbnn+ZrNtnszgU=";
   };
 
-  vendorSha256 = "sha256-9wjiL8/fhWLuGglFkS8OH026zwbrmuadB3goBqFqnvc=";
+  vendorSha256 = "sha256-DktuZ0NUyg8LbYklxde2ZZJ8/WOyBq50E9yEHtS+Hqw=";
 
   subPackages = [ "cmd/tendermint" ];
 
diff --git a/pkgs/tools/networking/tgt/default.nix b/pkgs/tools/networking/tgt/default.nix
index ba1f89af433e0..fdaf0dc177f3e 100644
--- a/pkgs/tools/networking/tgt/default.nix
+++ b/pkgs/tools/networking/tgt/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tgt";
-  version = "1.0.80";
+  version = "1.0.81";
 
   src = fetchFromGitHub {
     owner = "fujita";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5qBqCHbkL6yw/iT2AtSumw8V0bV74TEyYMRgcPHW2lg=";
+    sha256 = "sha256-SgMpoaVAuTbgpmnXRfQFWlK5gl01fsE9vJxu3C2ctPU=";
   };
 
   nativeBuildInputs = [ libxslt docbook_xsl makeWrapper ];
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "iSCSI Target daemon with RDMA support";
-    homepage = "http://stgt.sourceforge.net/";
+    homepage = "https://github.com/fujita/tgt";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ johnazoidberg ];
diff --git a/pkgs/tools/networking/toxvpn/default.nix b/pkgs/tools/networking/toxvpn/default.nix
index c5aaec66d9e32..57a5510bd4306 100644
--- a/pkgs/tools/networking/toxvpn/default.nix
+++ b/pkgs/tools/networking/toxvpn/default.nix
@@ -11,7 +11,7 @@
 }:
 
 stdenv.mkDerivation {
-  name = "toxvpn";
+  pname = "toxvpn";
   version = "unstable-2019-09-09";
 
   src = fetchFromGitHub {
diff --git a/pkgs/tools/networking/unbound/default.nix b/pkgs/tools/networking/unbound/default.nix
index bd994c2640f97..f9ff82735b901 100644
--- a/pkgs/tools/networking/unbound/default.nix
+++ b/pkgs/tools/networking/unbound/default.nix
@@ -12,6 +12,8 @@
 , pkg-config
 , makeWrapper
 , symlinkJoin
+, bison
+, nixosTests
   #
   # By default unbound will not be built with systemd support. Unbound is a very
   # commmon dependency. The transitive dependency closure of systemd also
@@ -30,6 +32,9 @@
 , withDNSTAP ? false
 , withTFO ? false
 , withRedis ? false
+# Avoid .lib depending on openssl.out
+# The build gets a little hacky, so in some cases we disable this approach.
+, withSlimLib ? stdenv.isLinux && !stdenv.hostPlatform.isMusl && !withDNSTAP
 , libnghttp2
 }:
 
@@ -91,6 +96,10 @@ stdenv.mkDerivation rec {
     sed -E '/CONFCMDLINE/ s;${storeDir}/[a-z0-9]{32}-;${storeDir}/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-;g' -i config.h
   '';
 
+  checkInputs = [ bison ];
+
+  doCheck = true;
+
   installFlags = [ "configfile=\${out}/etc/unbound/unbound.conf" ];
 
   postInstall = ''
@@ -99,14 +108,16 @@ stdenv.mkDerivation rec {
       --prefix PATH : ${lib.makeBinPath [ openssl ]}
   '';
 
-  preFixup = lib.optionalString (stdenv.isLinux && !stdenv.hostPlatform.isMusl) # XXX: revisit
+  preFixup = lib.optionalString withSlimLib
     # Build libunbound again, but only against nettle instead of openssl.
     # This avoids gnutls.out -> unbound.lib -> openssl.out.
-    # There was some problem with this on Darwin; let's not complicate non-Linux.
     ''
       configureFlags="$configureFlags --with-nettle=${nettle.dev} --with-libunbound-only"
       configurePhase
       buildPhase
+      if [ -n "$doCheck" ]; then
+          checkPhase
+      fi
       installPhase
     ''
   # get rid of runtime dependencies on $dev outputs
@@ -115,6 +126,8 @@ stdenv.mkDerivation rec {
     (pkg: lib.optionalString (pkg ? dev) " --replace '-L${pkg.dev}/lib' '-L${pkg.out}/lib' --replace '-R${pkg.dev}/lib' '-R${pkg.out}/lib'")
     (builtins.filter (p: p != null) buildInputs);
 
+  passthru.tests = nixosTests.unbound;
+
   meta = with lib; {
     description = "Validating, recursive, and caching DNS resolver";
     license = licenses.bsd3;
diff --git a/pkgs/tools/networking/v2ray/default.nix b/pkgs/tools/networking/v2ray/default.nix
index b37b98d7efc6d..d3ea5a071e107 100644
--- a/pkgs/tools/networking/v2ray/default.nix
+++ b/pkgs/tools/networking/v2ray/default.nix
@@ -1,43 +1,23 @@
-{ lib, fetchFromGitHub, fetchurl, linkFarm, buildGoModule, runCommand, makeWrapper, nixosTests
-, assetOverrides ? {}
+{ lib, fetchFromGitHub, fetchurl, symlinkJoin, buildGoModule, runCommand, makeWrapper, nixosTests
+, v2ray-geoip, v2ray-domain-list-community, assets ? [ v2ray-geoip v2ray-domain-list-community ]
 }:
 
 let
-  version = "4.43.0";
+  version = "4.44.0";
 
   src = fetchFromGitHub {
     owner = "v2fly";
     repo = "v2ray-core";
     rev = "v${version}";
-    sha256 = "sha256-kOTQQUbaRQBABopU0x36j8Qre+Ko0UecUDNN8dvFni8=";
+    sha256 = "1yk02n2lllbcwqkz4f3l3d2df1w3m768zxvdawgmafjgmbqf0gjf";
   };
 
   vendorSha256 = "sha256-7zSIAKcMwtaTvokKuLJ8orqJc2jGuaw5FglEJadeZ9I=";
 
-  assets = {
-    # MIT licensed
-    "geoip.dat" = let
-      geoipRev = "202109300030";
-      geoipSha256 = "1d2z3ljs0v9rd10cfj8cpiijz3ikkplsymr44f7y90g4dmniwqh0";
-    in fetchurl {
-      url = "https://github.com/v2fly/geoip/releases/download/${geoipRev}/geoip.dat";
-      sha256 = geoipSha256;
-    };
-
-    # MIT licensed
-    "geosite.dat" = let
-      geositeRev = "20211001023210";
-      geositeSha256 = "02d55i1pdndwvmi4v42hnncjng517s0k06gr3yn5krnj2qfjli2w";
-    in fetchurl {
-      url = "https://github.com/v2fly/domain-list-community/releases/download/${geositeRev}/dlc.dat";
-      sha256 = geositeSha256;
-    };
-
-  } // assetOverrides;
-
-  assetsDrv = linkFarm "v2ray-assets" (lib.mapAttrsToList (name: path: {
-    inherit name path;
-  }) assets);
+  assetsDrv = symlinkJoin {
+    name = "v2ray-assets";
+    paths = assets;
+  };
 
   core = buildGoModule rec {
     pname = "v2ray-core";
@@ -84,6 +64,6 @@ in runCommand "v2ray-${version}" {
 } ''
   for file in ${core}/bin/*; do
     makeWrapper "$file" "$out/bin/$(basename "$file")" \
-      --set-default V2RAY_LOCATION_ASSET ${assetsDrv}
+      --set-default V2RAY_LOCATION_ASSET ${assetsDrv}/share/v2ray
   done
 ''
diff --git a/pkgs/tools/networking/v2ray/update.sh b/pkgs/tools/networking/v2ray/update.sh
index f645b8ea09396..9b8e4cef13a48 100755
--- a/pkgs/tools/networking/v2ray/update.sh
+++ b/pkgs/tools/networking/v2ray/update.sh
@@ -8,10 +8,8 @@ deps_nix=./deps.nix
 nixpkgs=../../../..
 
 old_core_rev=$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$version_nix")
-old_geoip_rev=$(sed -En 's/.*\bgeoipRev = "(.*?)".*/\1/p' "$version_nix")
-old_geosite_rev=$(sed -En 's/.*\bgeositeRev = "(.*?)".*/\1/p' "$version_nix")
 echo "Current version:" >&2
-echo "core: $old_core_rev, geoip: $old_geoip_rev, geosite: $old_geosite_rev" >&2
+echo "core: $old_core_rev" >&2
 
 function fetch_latest_rev {
     curl "https://api.github.com/repos/v2fly/$1/releases" |
@@ -20,10 +18,8 @@ function fetch_latest_rev {
 
 core_rev=$(fetch_latest_rev 'v2ray-core')
 core_rev=${core_rev:1}
-geoip_rev=$(fetch_latest_rev 'geoip')
-geosite_rev=$(fetch_latest_rev 'domain-list-community')
 echo "Latest version:" >&2
-echo "core: $core_rev, geoip: $geoip_rev, geosite: $geosite_rev" >&2
+echo "core: $core_rev" >&2
 
 if [[ $core_rev != $old_core_rev ]]; then
     echo "Prefetching core..." >&2
@@ -38,24 +34,6 @@ if [[ $core_rev != $old_core_rev ]]; then
         "$version_nix"
 fi
 
-if [[ $geoip_rev != $old_geoip_rev ]]; then
-    echo "Prefetching geoip..." >&2
-    hash=$(nix-prefetch-url "https://github.com/v2fly/geoip/releases/download/$geoip_rev/geoip.dat")
-    sed --in-place \
-        -e "s/\bgeoipRev = \".*\"/geoipRev = \"$geoip_rev\"/" \
-        -e "s/\bgeoipSha256 = \".*\"/geoipSha256 = \"$hash\"/" \
-        "$version_nix"
-fi
-
-if [[ $geosite_rev != $old_geosite_rev ]]; then
-    echo "Prefetching geosite..." >&2
-    hash=$(nix-prefetch-url "https://github.com/v2fly/domain-list-community/releases/download/$geosite_rev/dlc.dat")
-    sed --in-place \
-        -e "s/\bgeositeRev = \".*\"/geositeRev = \"$geosite_rev\"/" \
-        -e "s/\bgeositeSha256 = \".*\"/geositeSha256 = \"$hash\"/" \
-        "$version_nix"
-fi
-
 echo "Prebuilding..." >&2
 set +o pipefail
 vendorSha256=$(
diff --git a/pkgs/tools/networking/vopono/default.nix b/pkgs/tools/networking/vopono/default.nix
index 46fbb1a084f27..aa49d93ef660c 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.8.7";
+  version = "0.8.10";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "0kpkvnw12cvcswsx2p8xicyn57i5fd7p5d7n1dqq9x18q6am181p";
+    sha256 = "sha256-+ZRvuUA7BvM8YW1QZQ7iJrLvleitl1hqEOrTkrLVSes";
   };
 
-  cargoHash = "sha256:1y07iazb7rwgs0viwn81qmwbcnxza9n89w2jh0r4fq98rr337081";
+  cargoHash = "sha256-zM5JufS0qEYPEEwl6iPZYge3cssrsLu835AhAd8F3vc";
 
   meta = with lib; {
     description = "Run applications through VPN connections in network namespaces";
diff --git a/pkgs/tools/networking/vpn-slice/default.nix b/pkgs/tools/networking/vpn-slice/default.nix
index 40ab66255b36b..0e98212ad5a50 100644
--- a/pkgs/tools/networking/vpn-slice/default.nix
+++ b/pkgs/tools/networking/vpn-slice/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonApplication rec {
   pname = "vpn-slice";
-  version = "0.15";
+  version = "0.16.1";
 
   src = fetchFromGitHub {
     owner = "dlenski";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9JnRuJkpcgW1cEgJPiqFDYotNSCl7XcmbHS6D4E13gM=";
+    sha256 = "sha256-T6VULLNRLWO4OcAsuTmhty6H4EhinyxQSg0dfv2DUJs=";
   };
 
   propagatedBuildInputs = with python3Packages; [ setproctitle dnspython ];
diff --git a/pkgs/tools/networking/vpnc-scripts/default.nix b/pkgs/tools/networking/vpnc-scripts/default.nix
index 776e8450d13c3..f0d5991d34bc9 100644
--- a/pkgs/tools/networking/vpnc-scripts/default.nix
+++ b/pkgs/tools/networking/vpnc-scripts/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation {
   pname = "vpnc-scripts";
-  version = "unstable-2021-03-21";
+  version = "unstable-2021-09-24";
   src = fetchgit {
-    url = "git://git.infradead.org/users/dwmw2/vpnc-scripts.git";
-    rev = "8fff06090ed193c4a7285e9a10b42e6679e8ecf3";
-    sha256 = "14bzzpwz7kdmlbx825h6s4jjdml9q6ziyrq8311lp8caql68qdq1";
+    url = "https://gitlab.com/openconnect/vpnc-scripts.git";
+    rev = "b749c2cadc2f32e2efffa69302861f9a7d4a4e5f";
+    sha256 = "sha256:19aj6mfkclbkx6ycyd4xm7id1bq78ismw0y6z23f6s016k3sjc8c";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/networking/waitron/default.nix b/pkgs/tools/networking/waitron/default.nix
index 8364cd5763dc1..c37d82024fe6b 100644
--- a/pkgs/tools/networking/waitron/default.nix
+++ b/pkgs/tools/networking/waitron/default.nix
@@ -2,8 +2,8 @@
 { lib, buildGoPackage, fetchgit, fetchhg, fetchbzr, fetchsvn }:
 
 buildGoPackage rec {
-  name = "waitron-unstable-${version}";
-  version = "2020-01-24";
+  pname = "waitron";
+  version = "unstable-2020-01-24";
   rev = "c96833619cbb0cf2bc71b1d7b534101e139cc6e6";
 
   goPackagePath = "github.com/ns1/waitron";
diff --git a/pkgs/tools/networking/wireguard-go/default.nix b/pkgs/tools/networking/wireguard-go/default.nix
index 3fa487a7dc6d5..6f7bc6caa7f05 100644
--- a/pkgs/tools/networking/wireguard-go/default.nix
+++ b/pkgs/tools/networking/wireguard-go/default.nix
@@ -25,6 +25,6 @@ buildGoPackage rec {
     description = "Userspace Go implementation of WireGuard";
     homepage = "https://git.zx2c4.com/wireguard-go/about/";
     license = licenses.mit;
-    maintainers = with maintainers; [ elseym kirelagin yegortimoshenko zx2c4 ];
+    maintainers = with maintainers; [ elseym kirelagin yana zx2c4 ];
   };
 }
diff --git a/pkgs/tools/networking/wireguard-tools/default.nix b/pkgs/tools/networking/wireguard-tools/default.nix
index 5df98954ae16c..00b91adc27380 100644
--- a/pkgs/tools/networking/wireguard-tools/default.nix
+++ b/pkgs/tools/networking/wireguard-tools/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
     downloadPage = "https://git.zx2c4.com/wireguard-tools/refs/";
     homepage = "https://www.wireguard.com/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ elseym ericsagnes mic92 zx2c4 globin ma27 d-xo ];
+    maintainers = with maintainers; [ elseym ericsagnes zx2c4 globin ma27 d-xo ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/networking/wormhole-william/default.nix b/pkgs/tools/networking/wormhole-william/default.nix
index 4379aa89ceb5a..157119e647502 100644
--- a/pkgs/tools/networking/wormhole-william/default.nix
+++ b/pkgs/tools/networking/wormhole-william/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "wormhole-william";
-  version = "1.0.5";
+  version = "1.0.6";
 
   src = fetchFromGitHub {
     owner = "psanford";
     repo = "wormhole-william";
     rev = "v${version}";
-    sha256 = "sha256-75pSFMzaZW+rtikO0khuxXIgb3Wj8ieSE4sB6quKgo4=";
+    sha256 = "sha256-L/0zgQkwADElpIzOJAROa3CN/YNl76Af2pAhX8y2Wxs=";
   };
 
-  vendorSha256 = "sha256-8GZ4h+DFQaCizOCxsMzAllXyaQgzQQBsbCnVi5MWbFg=";
+  vendorSha256 = "sha256-J6iht3cagcwFekydShgaYJtkNLfEvSDqonkC7+frldM=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/networking/wrk/default.nix b/pkgs/tools/networking/wrk/default.nix
index 4298bd70d600d..74280724ca40c 100644
--- a/pkgs/tools/networking/wrk/default.nix
+++ b/pkgs/tools/networking/wrk/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wrk";
-  version = "4.1.0";
+  version = "4.2.0";
 
   src = fetchFromGitHub {
     owner = "wg";
     repo = "wrk";
     rev = version;
-    sha256 = "0dblb3qdg8mbgb8iiks0g420pza13npbr33b2xkc5dgv7kcwmvqj";
+    sha256 = "sha256-nCfA444p7krXOB3qRtDKWxWj9tsrDZsGf03ThtE1dXM=";
   };
 
   buildInputs = [ luajit openssl perl ];
diff --git a/pkgs/tools/networking/xh/default.nix b/pkgs/tools/networking/xh/default.nix
index 75eaa8774df2a..ad6d02399efe1 100644
--- a/pkgs/tools/networking/xh/default.nix
+++ b/pkgs/tools/networking/xh/default.nix
@@ -1,22 +1,33 @@
-{ stdenv, lib, openssl, pkg-config, rustPlatform, fetchFromGitHub, Security
-, libiconv, installShellFiles }:
+{ stdenv
+, lib
+, pkg-config
+, rustPlatform
+, fetchFromGitHub
+, installShellFiles
+, withNativeTls ? true
+, Security
+, libiconv
+, openssl }:
 
 rustPlatform.buildRustPackage rec {
   pname = "xh";
-  version = "0.13.0";
+  version = "0.14.1";
 
   src = fetchFromGitHub {
     owner = "ducaale";
     repo = "xh";
     rev = "v${version}";
-    sha256 = "sha256-fTd4VSUUj9Im+kCEuFgDsA7eofM1xQfrRzigr1vyJ3I=";
+    sha256 = "sha256-zq1jpkMcq7WHc6weht2iEFMlxIJSoDreWqJCi8F+Lxs=";
   };
 
-  cargoSha256 = "sha256-yZdGw/6iVg8PaUyjTrxj6h/2yhBtqEqvMhdRHhMwDZc=";
+  cargoSha256 = "sha256-NcznWWMcgK4RixqvumPEQUlvIFRyYkbeTTGvjQ91ggE=";
+
+  buildFeatures = lib.optional withNativeTls "native-tls";
 
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
-  buildInputs = if stdenv.isDarwin then [ Security libiconv ] else [ openssl ];
+  buildInputs = lib.optionals withNativeTls
+    (if stdenv.isDarwin then [ Security libiconv ] else [ openssl ]);
 
   # Get openssl-sys to use pkg-config
   OPENSSL_NO_VENDOR = 1;
diff --git a/pkgs/tools/networking/yrd/default.nix b/pkgs/tools/networking/yrd/default.nix
index 75a89b859fe8b..1aace6aefbb5a 100644
--- a/pkgs/tools/networking/yrd/default.nix
+++ b/pkgs/tools/networking/yrd/default.nix
@@ -1,27 +1,37 @@
-{ lib, fetchFromGitHub, pythonPackages }:
+{ lib
+, python3
+, fetchFromGitHub
+}:
 
-let
+python3.pkgs.buildPythonApplication rec {
   pname = "yrd";
   version = "0.5.3";
-  sha256 = "1yx1hr8z4cvlb3yi24dwafs0nxq41k4q477jc9q24w61a0g662ps";
-
-in pythonPackages.buildPythonApplication {
-  name = "${pname}-${version}";
 
   src = fetchFromGitHub {
     owner = "kpcyrd";
     repo = pname;
     rev = "v${version}";
-    inherit sha256;
+    sha256 = "1yx1hr8z4cvlb3yi24dwafs0nxq41k4q477jc9q24w61a0g662ps";
   };
 
-  propagatedBuildInputs = with pythonPackages; [ argh ];
+  propagatedBuildInputs = with python3.pkgs; [
+    argh
+    requests
+  ];
+
+  checkInputs = with python3.pkgs; [
+    nose
+  ];
+
+  checkPhase = ''
+    nosetests -v yrd
+  '';
 
   meta = with lib; {
     description = "Cjdns swiss army knife";
     maintainers = with maintainers; [ akru ];
     platforms = platforms.linux;
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
     homepage = "https://github.com/kpcyrd/yrd";
   };
 }
diff --git a/pkgs/tools/networking/ytcc/default.nix b/pkgs/tools/networking/ytcc/default.nix
index 9062caa11d58a..46b6e649b5c6d 100644
--- a/pkgs/tools/networking/ytcc/default.nix
+++ b/pkgs/tools/networking/ytcc/default.nix
@@ -2,27 +2,20 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "ytcc";
-  version = "2.5.3";
+  version = "2.5.4";
 
   src = fetchFromGitHub {
     owner = "woefe";
     repo = "ytcc";
     rev = "v${version}";
-    sha256 = "1skhg8ca2bjjfi02pjsi3w7v3f4xhzg7bqyy0cajxsymzqzqp7lm";
+    sha256 = "sha256-nYHfmksZnIZGMSSFDhW7ajvv1F5h3aJo8IXw6yYOEw0=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py --replace "youtube_dl" "yt_dlp"
-  '';
-
   nativeBuildInputs = [ gettext installShellFiles ];
 
   propagatedBuildInputs = with python3Packages; [
-    click
-    feedparser
-    lxml
-    sqlalchemy
     yt-dlp
+    click
     wcwidth
   ];
 
diff --git a/pkgs/tools/networking/zap/default.nix b/pkgs/tools/networking/zap/default.nix
index bccc840a27a46..8fdf8a38f3173 100644
--- a/pkgs/tools/networking/zap/default.nix
+++ b/pkgs/tools/networking/zap/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "zap";
-  version = "2.10.0";
+  version = "2.11.1";
   src = fetchurl {
     url = "https://github.com/zaproxy/zaproxy/releases/download/v${version}/ZAP_${version}_Linux.tar.gz";
-    sha256 = "1mz9s56pbs62g4pnd1ml8y6jpf9ilisdwwvjv5kn6yxrcdi2zzqh";
+    sha256 = "0b1qqrjm4m76djy0az9hnz3rqpz1qkql4faqmi7gkx33b1p6d0sz";
   };
 
   buildInputs = [ jre ];
diff --git a/pkgs/tools/networking/zerotierone/default.nix b/pkgs/tools/networking/zerotierone/default.nix
index 94cd645d177cf..3062befe2d3bf 100644
--- a/pkgs/tools/networking/zerotierone/default.nix
+++ b/pkgs/tools/networking/zerotierone/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zerotierone";
-  version = "1.8.3";
+  version = "1.8.4";
 
   src = fetchFromGitHub {
     owner = "zerotier";
     repo = "ZeroTierOne";
     rev = version;
-    sha256 = "sha256-668KZ2E0jx/s+w4pl+oJbPlfdRGr6ypP2/FoFEBReIk=";
+    sha256 = "sha256-aM0FkcrSd5dEJVdJryIGuyWNFwvKH0SBfOuy4dIMK4A=";
   };
 
   preConfigure = ''
diff --git a/pkgs/tools/nix/nix-output-monitor/default.nix b/pkgs/tools/nix/nix-output-monitor/default.nix
index a94ae45ccea5f..a0700e43c5b25 100644
--- a/pkgs/tools/nix/nix-output-monitor/default.nix
+++ b/pkgs/tools/nix/nix-output-monitor/default.nix
@@ -5,11 +5,11 @@
 }:
 mkDerivation rec {
   pname = "nix-output-monitor";
-  version = "1.0.3.3";
+  version = "1.0.4.0";
   src = fetchFromGitHub {
     owner = "maralorn";
     repo = "nix-output-monitor";
-    sha256 = "1x26s9gzcygn96600g0r1a1sxqav6c38iq981rhmc808mqlyxmp8";
+    hash = "sha256-3EQgjrDX8C3qG6danuPRl2gnPlX1qZjxjrROrKitsS0=";
     rev = "v${version}";
   };
   isLibrary = true;
diff --git a/pkgs/tools/nix/statix/default.nix b/pkgs/tools/nix/statix/default.nix
index bb17d8df275dc..fd219935aeebf 100644
--- a/pkgs/tools/nix/statix/default.nix
+++ b/pkgs/tools/nix/statix/default.nix
@@ -1,22 +1,25 @@
-{ lib, rustPlatform, fetchFromGitHub, withJson ? true }:
+{ lib, rustPlatform, fetchFromGitHub, withJson ? true, stdenv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "statix";
   # also update version of the vim plugin in pkgs/misc/vim-plugins/overrides.nix
   # the version can be found in flake.nix of the source code
-  version = "0.4.0";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "nerdypepper";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wqkhtAOO6pKLjUUnDbVFwzm6mbXhP/4iJU7ZKtDKrE8=";
+    sha256 = "sha256-4hVEwm2xuuHFy38/EJLKjGuxTYCAcKRHHfFKLvqp+M0=";
   };
 
-  cargoSha256 = "sha256-e20POz9ZvuT0S+YG+9x7hcudhXQpOR4rVSFJbz76OI0=";
+  cargoSha256 = "sha256-15C/ye8nYLtriBlqbf1ul41IFtShGY2LTX10z1/08Po=";
 
   buildFeatures = lib.optional withJson "json";
 
+  # tests are failing on darwin
+  doCheck = !stdenv.isDarwin;
+
   meta = with lib; {
     description = "Lints and suggestions for the nix programming language";
     homepage = "https://github.com/nerdypepper/statix";
diff --git a/pkgs/tools/package-management/apk-tools/default.nix b/pkgs/tools/package-management/apk-tools/default.nix
index 8d8645de2debf..eda95f25529c8 100644
--- a/pkgs/tools/package-management/apk-tools/default.nix
+++ b/pkgs/tools/package-management/apk-tools/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "apk-tools";
-  version = "2.12.7";
+  version = "2.12.8";
 
   src = fetchFromGitLab {
     domain = "gitlab.alpinelinux.org";
     owner = "alpine";
     repo = "apk-tools";
     rev = "v${version}";
-    sha256 = "sha256-sGAsC5HZV5jaaUXgaPDUf4+vDL4zSGldzhykpdZlFS4=";
+    sha256 = "1bqrvdyqqllzsyx9gdkqmd17wxcmli6ljwxxa8wj9gzg9pqhlhqz";
   };
 
   nativeBuildInputs = [ pkg-config scdoc ]
diff --git a/pkgs/tools/package-management/cargo-about/default.nix b/pkgs/tools/package-management/cargo-about/default.nix
index cf72bd85c083a..74f59d16a4da2 100644
--- a/pkgs/tools/package-management/cargo-about/default.nix
+++ b/pkgs/tools/package-management/cargo-about/default.nix
@@ -1,17 +1,24 @@
-{ lib, rustPlatform, fetchFromGitHub }:
+{ lib, rustPlatform, fetchFromGitHub, pkg-config, zstd, stdenv }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-about";
-  version = "0.4.1";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "EmbarkStudios";
     repo = "cargo-about";
     rev = version;
-    sha256 = "sha256-Am0VwF37fYsZvUogxnSlP/kwy20J7maFu3Is8f/1b1E=";
+    sha256 = "sha256-wBBG4fpUy9EKuWFZNzdXn0B01TY3ETAsvBXk2pLaSSo=";
   };
 
-  cargoSha256 = "sha256-gf5OtRGjXmGbnXA4ZYOys6JU+JkF+rYnRSnjy3JE7c0=";
+  # enable pkg-config feature of zstd
+  cargoPatches = [ ./zstd-pkg-config.patch ];
+
+  cargoSha256 = "sha256-QlUiBxRB9vKY1RCzeARy2b0Cvsh1uYaKkq5GiB1yEwE=";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ zstd ];
 
   meta = with lib; {
     description = "Cargo plugin to generate list of all licenses for a crate";
@@ -19,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/EmbarkStudios/cargo-about/blob/${version}/CHANGELOG.md";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ evanjs figsoda ];
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/tools/package-management/cargo-about/zstd-pkg-config.patch b/pkgs/tools/package-management/cargo-about/zstd-pkg-config.patch
new file mode 100644
index 0000000000000..e084538ca924c
--- /dev/null
+++ b/pkgs/tools/package-management/cargo-about/zstd-pkg-config.patch
@@ -0,0 +1,39 @@
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -183,6 +183,7 @@ dependencies = [
+  "toml_edit",
+  "twox-hash",
+  "url",
++ "zstd",
+ ]
+ 
+ [[package]]
+@@ -1039,6 +1040,12 @@ version = "0.1.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+ 
++[[package]]
++name = "pkg-config"
++version = "0.3.22"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f"
++
+ [[package]]
+ name = "ppv-lite86"
+ version = "0.2.15"
+@@ -1902,4 +1909,5 @@ checksum = "2141bed8922b427761470e6bbfeff255da94fa20b0bbeab0d9297fcaf71e3aa7"
+ dependencies = [
+  "cc",
+  "libc",
++ "pkg-config",
+ ]
+diff --git a/Cargo.toml b/Cargo.toml
+index bf2a896..35cbf7c 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -80,3 +80,5 @@ toml_edit = "0.9"
+ twox-hash = "1.6"
+ # Url parsing
+ url = "2.2"
++
++zstd = { version = "*", features = ["pkg-config"] }
diff --git a/pkgs/tools/package-management/cargo-audit/default.nix b/pkgs/tools/package-management/cargo-audit/default.nix
index 232b6b4b0e834..22a1d3b5f7682 100644
--- a/pkgs/tools/package-management/cargo-audit/default.nix
+++ b/pkgs/tools/package-management/cargo-audit/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-audit";
-  version = "0.15.2";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "RustSec";
     repo = "rustsec";
     rev = "cargo-audit%2Fv${version}";
-    sha256 = "1j5ijrjhzqimamhj51qhpbaxx485hcxhaj64lknkn0xrda3apkx8";
+    sha256 = "sha256-6Jb7ViVY4YcnNvGarnHWyBPnpz7xiHQjumOmVaA8rzg=";
   };
 
-  cargoSha256 = "1qvrzaila3wbjmc7ri5asa3di2nzln78ys9innzd84fr36c90kkc";
+  cargoSha256 = "sha256-31zZMjIFnMIzSmTEACFBE4nSMje9SvE9KzZdoxTg4VM=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/package-management/cargo-outdated/default.nix b/pkgs/tools/package-management/cargo-outdated/default.nix
index 62b91a4e4d1f3..d15cbe8a9ccb5 100644
--- a/pkgs/tools/package-management/cargo-outdated/default.nix
+++ b/pkgs/tools/package-management/cargo-outdated/default.nix
@@ -11,14 +11,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-outdated";
-  version = "0.10.1";
+  version = "0.10.2";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-jg8KuIu1SaIRlEI9yvpLCESZfAyNgSThJ6pe7+IM6j0=";
+    sha256 = "sha256-U6qElZkray4kjScv9X4I5m2z1ZWQzqcPYAuPzpyRpW0=";
   };
 
-  cargoSha256 = "sha256-jfZUtUVHEC8zK+FJHSOQxELWTG/Of2WSDoqdg/Sckws=";
+  cargoSha256 = "sha256-0J02Uz184zx5xZYhqUmyaAFCQ0aogwy0fQTXbteBdV8=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/tools/package-management/cargo-release/default.nix b/pkgs/tools/package-management/cargo-release/default.nix
index 500a7a68f1046..dffe16242a10b 100644
--- a/pkgs/tools/package-management/cargo-release/default.nix
+++ b/pkgs/tools/package-management/cargo-release/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-release";
-  version = "0.18.4";
+  version = "0.18.6";
 
   src = fetchFromGitHub {
     owner = "crate-ci";
     repo = "cargo-release";
     rev = "v${version}";
-    sha256 = "sha256-m+mLnlTBBS3DdxOmOi+NvoSSWgBZ9lI9tqIgq3GHnJI=";
+    sha256 = "sha256-4ZXur3Hja5nlJ2GLGei9r7ZPz+bvw41rm9xzaIo68gw=";
   };
 
-  cargoSha256 = "sha256-L6Izc8OrZ+RnGPpWKWBMpyyOthWzB0DjmQxf20R6dE4=";
+  cargoSha256 = "sha256-vBr3RYBFoeCJquS8ugVpl29J7CUraN/HuxtKv8Dqi/k=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/tools/package-management/cargo-update/default.nix b/pkgs/tools/package-management/cargo-update/default.nix
index f49a74615d12f..28ba43e9d6627 100644
--- a/pkgs/tools/package-management/cargo-update/default.nix
+++ b/pkgs/tools/package-management/cargo-update/default.nix
@@ -15,14 +15,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-update";
-  version = "7.0.1";
+  version = "8.1.2";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-qUrQWXiK4Gb79Wtcj9nM/FFT/C+b3vAgm9JohvIY2NU=";
+    sha256 = "sha256-9/4HQbf6wPNzsYqXbtrWoe9n2iKQoNILhjhwrbOY3Z0=";
   };
 
-  cargoSha256 = "sha256-jCaP6e/z9/gjKJfBKIq+dq7pWs5tWyct+JCnUFVVHBY=";
+  cargoSha256 = "sha256-iUJBhBKWYRpzwMcOvMIP8smmw5OnsTv1olv61pel5dY=";
 
   nativeBuildInputs = [ cmake installShellFiles pkg-config ronn ];
 
diff --git a/pkgs/tools/package-management/disnix/dydisnix/default.nix b/pkgs/tools/package-management/disnix/dydisnix/default.nix
index 924ed8252811f..0c95e41f8c9a2 100644
--- a/pkgs/tools/package-management/disnix/dydisnix/default.nix
+++ b/pkgs/tools/package-management/disnix/dydisnix/default.nix
@@ -4,7 +4,7 @@
 
 stdenv.mkDerivation rec {
   version = "unstable-2020-11-02";
-  name = "dydisnix-${version}";
+  pname = "dydisnix";
 
   src = fetchFromGitHub {
     owner = "svanderburg";
diff --git a/pkgs/tools/package-management/dpkg/default.nix b/pkgs/tools/package-management/dpkg/default.nix
index a4e9ef41fc96e..ad55c6b88b471 100644
--- a/pkgs/tools/package-management/dpkg/default.nix
+++ b/pkgs/tools/package-management/dpkg/default.nix
@@ -1,12 +1,14 @@
-{ lib, stdenv, fetchurl, perl, zlib, bzip2, xz, makeWrapper, coreutils }:
+{ lib, stdenv, fetchurl, perl, zlib, bzip2, xz, zstd
+, makeWrapper, coreutils, autoreconfHook, pkg-config
+}:
 
 stdenv.mkDerivation rec {
   pname = "dpkg";
-  version = "1.20.9";
+  version = "1.20.9ubuntu2";
 
   src = fetchurl {
-    url = "mirror://debian/pool/main/d/dpkg/dpkg_${version}.tar.xz";
-    sha256 = "sha256-XOJCgw8hO1Yg8I5sQYOtse9Nydoo0xmIonyHxx/lNM4=";
+    url = "mirror://ubuntu/pool/main/d/dpkg/dpkg_${version}.tar.xz";
+    sha256 = "sha256-BuCofGpi9R0cyhvkZqu9IxupqZvZhbE2J/B4wgUqMQw=";
   };
 
   configureFlags = [
@@ -17,6 +19,8 @@ stdenv.mkDerivation rec {
     (lib.optionalString stdenv.isDarwin "--disable-start-stop-daemon")
   ];
 
+  enableParallelBuilding = true;
+
   preConfigure = ''
     # Nice: dpkg has a circular dependency on itself. Its configure
     # script calls scripts/dpkg-architecture, which calls "dpkg" in
@@ -49,8 +53,8 @@ stdenv.mkDerivation rec {
        --replace '"diff"' \"${coreutils}/bin/diff\"
   '';
 
-  buildInputs = [ perl zlib bzip2 xz ];
-  nativeBuildInputs = [ makeWrapper perl ];
+  buildInputs = [ perl zlib bzip2 xz zstd ];
+  nativeBuildInputs = [ makeWrapper perl autoreconfHook pkg-config ];
 
   postInstall =
     ''
diff --git a/pkgs/tools/package-management/emplace/default.nix b/pkgs/tools/package-management/emplace/default.nix
index 6b7f51d3ab696..07f17343cb7b8 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.1";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "tversteeg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lBCGSeEVxlXrn1RHqMEYSXLOehJw/DiL+33nx4+rV2Y=";
+    sha256 = "sha256-5PuSIOXns0FVLgyIw1mk8hZ/tYhikMV860BHTDlji78=";
   };
 
-  cargoSha256 = "sha256-7LpUaOeBTIpi6A3cTRQAc1QostRgJp6bOf+AXy3mjyE=";
+  cargoSha256 = "sha256-UbbVjT5JQuVSCgbcelEVaAql4CUnCtO99zHp3Ei31Gs=";
 
   meta = with lib; {
     description = "Mirror installed software on multiple machines";
diff --git a/pkgs/tools/package-management/libdnf/default.nix b/pkgs/tools/package-management/libdnf/default.nix
index 47ce3dad62d6f..3de0bb399d832 100644
--- a/pkgs/tools/package-management/libdnf/default.nix
+++ b/pkgs/tools/package-management/libdnf/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libdnf";
-  version = "0.63.1";
+  version = "0.65.0";
 
   src = fetchFromGitHub {
     owner = "rpm-software-management";
     repo = pname;
     rev = version;
-    sha256 = "sha256-SwkqFSAl99fQoXT96BPRqKFqJg3HEziiT+jXcugPyxM=";
+    sha256 = "sha256-vGXK4pOkff4yGaRZE+FFFIqEizUeCID+lxiE/TWt0Bs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/package-management/microdnf/default.nix b/pkgs/tools/package-management/microdnf/default.nix
index 498d6d21f39c5..03324a447105d 100644
--- a/pkgs/tools/package-management/microdnf/default.nix
+++ b/pkgs/tools/package-management/microdnf/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "microdnf";
-  version = "3.7.1";
+  version = "3.8.0";
 
   src = fetchFromGitHub {
     owner = "rpm-software-management";
     repo = pname;
     rev = version;
-    sha256 = "1is8hqckjdz1h9w44iq1ljyfs5b0qd2cyivl30ny4dv8m8zba4zv";
+    sha256 = "sha256-Ip1XcE8fPXhdgVaR4VPH+ElP6JbnK4JekZuWyT5ot/M=";
   };
 
   nativeBuildInputs = [ pkg-config cmake gettext help2man ];
diff --git a/pkgs/tools/package-management/micromamba/default.nix b/pkgs/tools/package-management/micromamba/default.nix
index ad325cd4f41a3..9f5fbac787df1 100644
--- a/pkgs/tools/package-management/micromamba/default.nix
+++ b/pkgs/tools/package-management/micromamba/default.nix
@@ -38,6 +38,13 @@ let
       rev = "yaml-cpp-${version}";
       sha256 = "0ykkxzxcwwiv8l8r697gyqh1nl582krpvi7m7l6b40ijnk4pw30s";
     };
+
+    patches = [
+      (fetchpatch {
+        url = "https://github.com/jbeder/yaml-cpp/commit/4f48727b365962e31451cd91027bd797bc7d2ee7.patch";
+        sha256 = "sha256-jarZAh7NgwL3xXzxijDiAQmC/EC2WYfNMkYHEIQBPhM=";
+      })
+    ];
   });
 in
 stdenv.mkDerivation rec {
diff --git a/pkgs/tools/package-management/nfpm/default.nix b/pkgs/tools/package-management/nfpm/default.nix
index 6f30a76bcd985..85d8c259d677d 100644
--- a/pkgs/tools/package-management/nfpm/default.nix
+++ b/pkgs/tools/package-management/nfpm/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "nfpm";
-  version = "2.7.1";
+  version = "2.11.2";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-GKX+5N8BPm4VmI10mzPJORjwLpuOLLjO+Q+RNelKUVI=";
+    sha256 = "sha256-ycb5331o/ILz+eUGGipBrjI7/pYnmHUSDRc4UNpJO5s=";
   };
 
-  vendorSha256 = "sha256-NPMJ5sCdbfDraRoK5fSdaxMpYS2i8ir0cklGDoHNLAY=";
+  vendorSha256 = "sha256-RaAb8QDFp/7TolsNZqcXurozr3vvK0SRyyy2h8MPhnk=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/package-management/nix-doc/default.nix b/pkgs/tools/package-management/nix-doc/default.nix
index e12bed7d925ce..d3d45e6bbb725 100644
--- a/pkgs/tools/package-management/nix-doc/default.nix
+++ b/pkgs/tools/package-management/nix-doc/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nix-doc";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "lf-";
     repo = "nix-doc";
-    sha256 = "0yx5y90shdjwihbjrvv2m3bycgpdalafc9q4acfczfaymag8ggad";
+    sha256 = "sha256-P4AX8ERsMHGkGowc05M7xE5HTFSmaJvD2z0Prz4emeQ=";
   };
 
   doCheck = true;
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ pkg-config ];
 
-  cargoSha256 = "11bcn111j4iqwqwpp26w7rnycasbhiixaqb1rq4ry2402hvl90j7";
+  cargoSha256 = "sha256-RxsH4bSAzBslK8MVGmCJxduf6MYOtQEKxt9QjgUCg1o=";
 
   meta = with lib; {
     description = "An interactive Nix documentation tool";
diff --git a/pkgs/tools/package-management/nix-eval-jobs/default.nix b/pkgs/tools/package-management/nix-eval-jobs/default.nix
index 0407ad4528de4..fbab464afd6bf 100644
--- a/pkgs/tools/package-management/nix-eval-jobs/default.nix
+++ b/pkgs/tools/package-management/nix-eval-jobs/default.nix
@@ -4,23 +4,23 @@
 , fetchFromGitHub
 , meson
 , ninja
-, nixUnstable
+, nix
 , nlohmann_json
 , pkg-config
 , stdenv
 }:
 stdenv.mkDerivation rec {
   pname = "nix-eval-jobs";
-  version = "0.0.1";
+  version = "0.0.2";
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-LTMW4356f8pvIyfYdOyZbF9yzU8MH9mryQgB4LrwZMI=";
+    hash = "sha256-kZw/nPJqWuBMMnDWsWF3oMY93QYVRem1XTbaxdbQ2oM=";
   };
   buildInputs = [
     boost
-    nixUnstable
+    nix
     nlohmann_json
   ];
   nativeBuildInputs = [
diff --git a/pkgs/tools/package-management/nix-serve/default.nix b/pkgs/tools/package-management/nix-serve/default.nix
index 93e240ad3463c..d9faea9cea4d4 100644
--- a/pkgs/tools/package-management/nix-serve/default.nix
+++ b/pkgs/tools/package-management/nix-serve/default.nix
@@ -37,7 +37,10 @@ stdenv.mkDerivation {
                 --add-flags $out/libexec/nix-serve/nix-serve.psgi
   '';
 
-  passthru.tests.nix-serve = nixosTests.nix-serve;
+  passthru.tests = {
+    nix-serve = nixosTests.nix-serve;
+    nix-serve-ssh = nixosTests.nix-serve-ssh;
+  };
 
   meta = {
     homepage = "https://github.com/edolstra/nix-serve";
diff --git a/pkgs/tools/package-management/nix-template/default.nix b/pkgs/tools/package-management/nix-template/default.nix
index 13c254cbee290..39a5517ba27be 100644
--- a/pkgs/tools/package-management/nix-template/default.nix
+++ b/pkgs/tools/package-management/nix-template/default.nix
@@ -9,17 +9,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nix-template";
-  version = "0.1.4";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     name = "${pname}-${version}-src";
     owner = "jonringer";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-kNFhSfHUYBUOCXoD6m7thMho4tOIpRHfHGcsW8FTgkc=";
+    sha256 = "sha256-5CIGxm9LJ5GGUM2D2tZxzMsNlWIlfTWCVzyM/VNh15I=";
   };
 
-  cargoSha256 = "sha256-7PthFLCEt+E/Gx5//aulHYYBKZqapNEWKtKfRlDr3Pw=";
+  cargoSha256 = "sha256-enclL7lGwIiJFrMwH/d4vTK+lKbP5ytySKha5mkHsvc=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/tools/package-management/nix-universal-prefetch/default.nix b/pkgs/tools/package-management/nix-universal-prefetch/default.nix
index 802fc4047bfcb..69ebf1c7cd004 100644
--- a/pkgs/tools/package-management/nix-universal-prefetch/default.nix
+++ b/pkgs/tools/package-management/nix-universal-prefetch/default.nix
@@ -6,13 +6,13 @@
 # No gems used, so mkDerivation is fine.
 stdenv.mkDerivation rec {
   pname = "nix-universal-prefetch";
-  version = "0.3.0";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "samueldr";
     repo = "nix-universal-prefetch";
     rev = "v${version}";
-    sha256 = "1nmxp6846ip2x3mibys3ymgi0813g18p9szqnsciiib3dbis4kwf";
+    sha256 = "sha256-HGn4qHWqpUwlS3yQrD3j5oH0yOlphsoSPD2vkyyRv+0=";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index f365348607aa2..146b9311fca68 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -31,10 +31,12 @@ common =
   }:
   let
      sh = busybox-sandbox-shell;
-     nix = stdenv.mkDerivation rec {
-      inherit pname version src patches;
 
-      is24 = lib.versionAtLeast version "2.4pre";
+    is24 = lib.versionAtLeast version "2.4pre";
+    is25 = lib.versionAtLeast version "2.5pre";
+
+    nix = stdenv.mkDerivation {
+      inherit pname version src patches;
 
       VERSION_SUFFIX = suffix;
 
@@ -145,6 +147,10 @@ common =
       # socket path becomes too long otherwise
       preInstallCheck = lib.optionalString stdenv.isDarwin ''
         export TMPDIR=$NIX_BUILD_TOP
+      ''
+      # See https://github.com/NixOS/nix/issues/5687
+      + lib.optionalString (is25 && stdenv.isDarwin) ''
+        echo "exit 99" > tests/gc-non-blocking.sh
       '';
 
       separateDebugInfo = stdenv.isLinux && (is24 -> !enableStatic);
@@ -168,6 +174,9 @@ common =
       };
 
       passthru = {
+        is24 = lib.warn ''nix package: attribute .is24 is deprecated. Please use lib.versionAtLeast X.version "2.4pre".'' is24;
+        is25 = lib.warn ''nix package: attribute .is25 is deprecated. Please use lib.versionAtLeast X.version "2.5pre".'' is25;
+
         perl-bindings = perl.pkgs.toPerlModule (stdenv.mkDerivation {
           pname = "nix-perl";
           inherit version;
@@ -195,11 +204,11 @@ common =
     };
   in nix;
 
-  boehmgc_nix = boehmgc.override {
+  boehmgc_nix_2_3 = boehmgc.override {
     enableLargeConfig = true;
   };
 
-  boehmgc_nixUnstable = boehmgc_nix.overrideAttrs (drv: {
+  boehmgc_nix = boehmgc_nix_2_3.overrideAttrs (drv: {
     patches = (drv.patches or []) ++ [
       # Part of the GC solution in https://github.com/NixOS/nix/pull/4944
       (fetchpatch {
@@ -220,7 +229,7 @@ in rec {
 
   nix = nixStable;
 
-  nixStable = nix_2_4;
+  nixStable = nix_2_5;
 
   nix_2_3 = callPackage common (rec {
     pname = "nix";
@@ -230,7 +239,7 @@ in rec {
       sha256 = "sha256-fuaBtp8FtSVJLSAsO+3Nne4ZYLuBj2JpD2xEk7fCqrw=";
     };
 
-    boehmgc = boehmgc_nix;
+    boehmgc = boehmgc_nix_2_3;
 
     inherit storeDir stateDir confDir;
   });
@@ -246,7 +255,25 @@ in rec {
       sha256 = "sha256-op48CCDgLHK0qV1Batz4Ln5FqBiRjlE6qHTiZgt3b6k=";
     };
 
-    boehmgc = boehmgc_nixUnstable;
+    boehmgc = boehmgc_nix;
+
+    patches = [ installNlohmannJsonPatch ];
+
+    inherit storeDir stateDir confDir;
+  });
+
+  nix_2_5 = callPackage common (rec {
+    pname = "nix";
+    version = "2.5.1";
+
+    src = fetchFromGitHub {
+      owner = "NixOS";
+      repo = "nix";
+      rev = version;
+      sha256 = "sha256-GOsiqy9EaTwDn2PLZ4eFj1VkXcBUbqrqHehRE9GuGdU=";
+    };
+
+    boehmgc = boehmgc_nix;
 
     patches = [ installNlohmannJsonPatch ];
 
@@ -255,17 +282,17 @@ in rec {
 
   nixUnstable = lib.lowPrio (callPackage common rec {
     pname = "nix";
-    version = "2.5${suffix}";
-    suffix = "pre20211007_${lib.substring 0 7 src.rev}";
+    version = "2.6${suffix}";
+    suffix = "pre20211217_${lib.substring 0 7 src.rev}";
 
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
-      rev = "844dd901a7debe8b03ec93a7f717b6c4038dc572";
-      sha256 = "sha256-fe1B4lXkS6/UfpO0rJHwLC06zhOPrdSh4s9PmQ1JgPo=";
+      rev = "6e6e998930f0d7361d64644eb37d9134e74e8501";
+      sha256 = "sha256-RZSWOJUPkXIlMNYMC5a+WNrOjpqAHyhzyqD57BGfNY8=";
     };
 
-    boehmgc = boehmgc_nixUnstable;
+    boehmgc = boehmgc_nix;
 
     patches = [ installNlohmannJsonPatch ];
 
diff --git a/pkgs/tools/package-management/nixpkgs-review/default.nix b/pkgs/tools/package-management/nixpkgs-review/default.nix
index ea2b565be27e0..d21c9b3c568f8 100644
--- a/pkgs/tools/package-management/nixpkgs-review/default.nix
+++ b/pkgs/tools/package-management/nixpkgs-review/default.nix
@@ -7,13 +7,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "nixpkgs-review";
-  version = "2.6.3";
+  version = "2.6.4";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "nixpkgs-review";
     rev = version;
-    sha256 = "sha256-DzqttjYkCSgsHjF1YN93zioGpTGDm9H0F8JzKmHPHro=";
+    sha256 = "sha256-6vKMaCTilPXd8K3AuLqtYInVyyFhdun0o9cX1WRMmWo=";
   };
 
   makeWrapperArgs = [
diff --git a/pkgs/tools/package-management/nox/default.nix b/pkgs/tools/package-management/nox/default.nix
index c949b443e363c..b215a8e1d2853 100644
--- a/pkgs/tools/package-management/nox/default.nix
+++ b/pkgs/tools/package-management/nox/default.nix
@@ -1,7 +1,7 @@
 { lib, python3Packages, fetchurl, git }:
 
 python3Packages.buildPythonApplication rec {
-  name = "nox-${version}";
+  pname = "nox";
   version = "0.0.6";
   namePrefix = "";
 
diff --git a/pkgs/tools/package-management/opkg/default.nix b/pkgs/tools/package-management/opkg/default.nix
index 631274cb7222a..1853c080166c4 100644
--- a/pkgs/tools/package-management/opkg/default.nix
+++ b/pkgs/tools/package-management/opkg/default.nix
@@ -2,11 +2,11 @@
 , autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  version = "0.4.4";
+  version = "0.4.5";
   pname = "opkg";
   src = fetchurl {
     url = "https://downloads.yoctoproject.org/releases/opkg/opkg-${version}.tar.gz";
-    sha256 = "sha256-IhesxYuOsxMAYx66514iLrxwDJwc9kCAiHBdGaRyyDk=";
+    sha256 = "sha256-oSFKdfo0+5Io242kcwjg5xGxyT/Yk4zxZMEP0o61Dx4=";
   };
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/pkgs/tools/package-management/protontricks/default.nix b/pkgs/tools/package-management/protontricks/default.nix
index aab524d77a285..125b969537341 100644
--- a/pkgs/tools/package-management/protontricks/default.nix
+++ b/pkgs/tools/package-management/protontricks/default.nix
@@ -9,17 +9,18 @@
 , winetricks
 , yad
 , pytestCheckHook
+, nix-update-script
 }:
 
 buildPythonApplication rec {
   pname = "protontricks";
-  version = "1.6.1";
+  version = "1.6.2";
 
   src = fetchFromGitHub {
     owner = "Matoking";
     repo = pname;
     rev = version;
-    sha256 = "sha256-2ZOVcPCF1o8mNfHOWRFTjAEu0dWzaMxlMTcctn/ScxY=";
+    sha256 = "sha256-XC5ip12wlXRo/AaTFJWEZvEZPPC1WtXTyeYivvyHZaE=";
   };
 
   patches = [
@@ -55,6 +56,10 @@ buildPythonApplication rec {
 
   pythonImportsCheck = [ "protontricks" ];
 
+  passthru.updateScript = nix-update-script {
+    attrPath = pname;
+  };
+
   meta = with lib; {
     description = "A simple wrapper for running Winetricks commands for Proton-enabled games";
     homepage = "https://github.com/Matoking/protontricks";
diff --git a/pkgs/tools/package-management/protontricks/steam-run.patch b/pkgs/tools/package-management/protontricks/steam-run.patch
index eead5ef6f49ed..d27289bb3f5c0 100644
--- a/pkgs/tools/package-management/protontricks/steam-run.patch
+++ b/pkgs/tools/package-management/protontricks/steam-run.patch
@@ -1,5 +1,5 @@
 diff --git a/src/protontricks/cli/main.py b/src/protontricks/cli/main.py
-index d811cb7..a376a34 100755
+index bd651aa..2b82aea 100755
 --- a/src/protontricks/cli/main.py
 +++ b/src/protontricks/cli/main.py
 @@ -14,8 +14,8 @@ import sys
@@ -57,9 +57,9 @@ index d811cb7..a376a34 100755
              use_steam_runtime=use_steam_runtime,
 -            legacy_steam_runtime_path=legacy_steam_runtime_path,
              use_bwrap=use_bwrap,
-             command=[str(winetricks_path)] + args.winetricks_command)
-     elif args.command:
-@@ -296,7 +285,6 @@ def main(args=None):
+             command=[str(winetricks_path)] + args.winetricks_command
+         )
+@@ -297,7 +286,6 @@ def main(args=None):
              steam_app=steam_app,
              command=args.command,
              use_steam_runtime=use_steam_runtime,
@@ -121,7 +121,7 @@ index be5322b..552f894 100644
  APPINFO_STRUCT_SECTION = "<LLLLQ20sL"
  
 diff --git a/src/protontricks/util.py b/src/protontricks/util.py
-index 5252d6c..f16dfec 100644
+index f2482fc..f9c1c33 100644
 --- a/src/protontricks/util.py
 +++ b/src/protontricks/util.py
 @@ -5,15 +5,14 @@ import shutil
@@ -243,7 +243,7 @@ index 5252d6c..f16dfec 100644
          use_bwrap=True,
          **kwargs):
      """Run an arbitrary command with the correct environment variables
-@@ -351,7 +338,7 @@ def run_command(
+@@ -353,7 +340,7 @@ def run_command(
              os.environ["STEAM_RUNTIME_PATH"] = \
                  str(proton_app.required_tool_app.install_path)
              os.environ["PROTON_LD_LIBRARY_PATH"] = \
@@ -252,7 +252,7 @@ index 5252d6c..f16dfec 100644
  
              runtime_name = proton_app.required_tool_app.name
              logger.info(
-@@ -372,11 +359,8 @@ def run_command(
+@@ -374,11 +361,8 @@ def run_command(
                      "Current Steam Runtime not recognized by Protontricks."
                  )
          else:
@@ -265,7 +265,7 @@ index 5252d6c..f16dfec 100644
  
          # When Steam Runtime is enabled, create a set of helper scripts
          # that load the underlying Proton Wine executables with Steam Runtime
-@@ -384,8 +368,6 @@ def run_command(
+@@ -386,8 +370,6 @@ def run_command(
          wine_bin_dir = create_wine_bin_dir(
              proton_app=proton_app, use_bwrap=use_bwrap
          )
@@ -275,7 +275,7 @@ index 5252d6c..f16dfec 100644
          os.environ["PATH"] = "".join([
              str(wine_bin_dir), os.pathsep, os.environ["PATH"]
 diff --git a/tests/cli/test_main.py b/tests/cli/test_main.py
-index f714f2c..b03fac1 100644
+index 605ae26..4bf7e80 100644
 --- a/tests/cli/test_main.py
 +++ b/tests/cli/test_main.py
 @@ -116,15 +116,10 @@ class TestCLIRun:
@@ -324,7 +324,7 @@ index f714f2c..b03fac1 100644
          assert command.env["STEAM_RUNTIME_PATH"] == \
              str(steam_runtime_soldier.install_path)
  
-@@ -335,7 +326,6 @@ class TestCLIRun:
+@@ -344,7 +335,6 @@ class TestCLIRun:
  
          # Also ensure log messages are included in the error message
          assert b"Found Steam directory at" in message
@@ -332,7 +332,7 @@ index f714f2c..b03fac1 100644
  
      def test_run_gui_provider_not_found(self, cli, home_dir, steam_app_factory):
          """
-@@ -349,20 +339,6 @@ class TestCLIRun:
+@@ -358,20 +348,6 @@ class TestCLIRun:
  
          assert "YAD or Zenity is not installed" in result
  
@@ -345,11 +345,11 @@ index f714f2c..b03fac1 100644
 -        steam_app_factory(name="Fake game 1", appid=10)
 -        result = cli(
 -            ["10", "winecfg"], env={"STEAM_RUNTIME": "invalid/path"},
--            expect_exit=True
+-            expect_returncode=1
 -        )
 -
 -        assert "Steam Runtime was enabled but couldn't be found" in result
 -
      def test_run_proton_not_found(self, cli, steam_dir, steam_app_factory):
          steam_app_factory(name="Fake game 1", appid=10)
-         result = cli(["10", "winecfg"], expect_exit=True)
+         result = cli(["10", "winecfg"], expect_returncode=1)
diff --git a/pkgs/tools/package-management/rpm/default.nix b/pkgs/tools/package-management/rpm/default.nix
index 910b86e13184e..9c0da87a90ae5 100644
--- a/pkgs/tools/package-management/rpm/default.nix
+++ b/pkgs/tools/package-management/rpm/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   outputs = [ "out" "dev" "man" ];
+  separateDebugInfo = true;
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [ cpio zlib zstd bzip2 file libarchive libgcrypt nspr nss db xz python lua sqlite ]
@@ -62,6 +63,8 @@ stdenv.mkDerivation rec {
     ln -sf $out/bin/{rpm,rpmverify}
   '';
 
+  enableParallelBuilding = true;
+
   meta = with lib; {
     homepage = "https://www.rpm.org/";
     license = with licenses; [ gpl2Plus lgpl21Plus ];
diff --git a/pkgs/tools/security/afl/qemu.nix b/pkgs/tools/security/afl/qemu.nix
index b88da7599d1d6..e33c4c2fb03a8 100644
--- a/pkgs/tools/security/afl/qemu.nix
+++ b/pkgs/tools/security/afl/qemu.nix
@@ -5,23 +5,23 @@
 with lib;
 
 let
-  qemuName = "qemu-2.10.0";
   cpuTarget = if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64-linux-user"
     else if stdenv.hostPlatform.system == "i686-linux" then "i386-linux-user"
     else throw "afl: no support for ${stdenv.hostPlatform.system}!";
 in
-stdenv.mkDerivation {
-  name = "afl-${qemuName}";
+stdenv.mkDerivation rec {
+  pname = "afl-qemu";
+  version = "2.10.0";
 
   srcs = [
     (fetchurl {
-      url = "http://wiki.qemu.org/download/${qemuName}.tar.bz2";
+      url = "http://wiki.qemu.org/download/qemu-${version}.tar.bz2";
       sha256 = "0j3dfxzrzdp1w21k21fjvmakzc6lcha1rsclaicwqvbf63hkk7vy";
     })
     afl.src
   ];
 
-  sourceRoot = qemuName;
+  sourceRoot = "qemu-${version}";
 
   postUnpack = ''
     cp ${afl.src.name}/types.h $sourceRoot/afl-types.h
diff --git a/pkgs/tools/security/aflplusplus/qemu.nix b/pkgs/tools/security/aflplusplus/qemu.nix
index 0a98f27182bf3..1fb613aef2e23 100644
--- a/pkgs/tools/security/aflplusplus/qemu.nix
+++ b/pkgs/tools/security/aflplusplus/qemu.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, aflplusplus, python2, zlib, pkg-config, glib, perl
+{ lib, stdenv, fetchurl, aflplusplus, python3, zlib, pkg-config, glib, perl
 , texinfo, libuuid, flex, bison, pixman, autoconf
 }:
 
@@ -44,7 +44,7 @@ stdenv.mkDerivation {
   '';
 
   nativeBuildInputs = [
-    python2 perl pkg-config flex bison autoconf texinfo
+    python3 perl pkg-config flex bison autoconf texinfo
   ];
 
   buildInputs = [
diff --git a/pkgs/tools/security/age-plugin-yubikey/default.nix b/pkgs/tools/security/age-plugin-yubikey/default.nix
new file mode 100644
index 0000000000000..a880f490dc7e5
--- /dev/null
+++ b/pkgs/tools/security/age-plugin-yubikey/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, pcsclite
+, PCSC
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "age-plugin-yubikey";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "str4d";
+    repo = pname;
+    rev = "51910edfab4006a068864602469ff7db3766bfbe"; # no tag for this release
+    sha256 = "sha256-mMqvBlGFdwe5BaC0bXZg/27BGNmFTTYbLUHWUciqxQ0=";
+  };
+
+  cargoSha256 = "sha256-OCbVLSmGx51pJ/EPgPfOyVrYWdloNEbexDV1zMsmEJc=";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs =
+    if stdenv.isDarwin then [
+      PCSC
+    ] else [
+      pcsclite
+    ];
+
+  meta = with lib; {
+    description = "YubiKey plugin for age clients";
+    homepage = "https://github.com/str4d/age-plugin-yubikey";
+    license = with licenses; [ asl20 mit ];
+    maintainers = with maintainers; [ vtuan10 ];
+  };
+}
diff --git a/pkgs/tools/security/arsenal/default.nix b/pkgs/tools/security/arsenal/default.nix
new file mode 100644
index 0000000000000..cd927715d2e83
--- /dev/null
+++ b/pkgs/tools/security/arsenal/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "arsenal";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "Orange-Cyberdefense";
+    repo = "arsenal";
+    rev = version;
+    sha256 = "sha256-RZxGSrtEa3hAtowD2lUb9BgwpSWlYo90fU9nDvUfoAk=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    libtmux
+    docutils
+    pyperclip
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "arsenal"
+  ];
+
+  meta = with lib; {
+    description = "Tool to generate commands for security and network tools";
+    homepage = "https://github.com/Orange-Cyberdefense/arsenal";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+    mainProgram = "arsenal";
+  };
+}
diff --git a/pkgs/tools/security/b3sum/default.nix b/pkgs/tools/security/b3sum/default.nix
index 9c6dca07194b8..b6792763c2315 100644
--- a/pkgs/tools/security/b3sum/default.nix
+++ b/pkgs/tools/security/b3sum/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "b3sum";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchCrate {
     inherit version pname;
-    sha256 = "sha256-x5gdJLcRMnmd0VLbV8cU9vrA6Ef7GysTh25bXnw6tsE=";
+    sha256 = "sha256-v6OCUXes8jaBh+sKqj1yCNOTb1NQY/ENGzKf5XWGZ3w=";
   };
 
-  cargoSha256 = "sha256-+JVivP4Kppb+AoVq4XhXp4k8Hb+e9uX4u5n8KXp0kfk=";
+  cargoSha256 = "sha256-y5QVgu716p8TFoEeWIzX9aJWeT3FKwlh5vUQkKR6pdE=";
 
   meta = {
     description = "BLAKE3 cryptographic hash function";
diff --git a/pkgs/tools/security/beyond-identity/default.nix b/pkgs/tools/security/beyond-identity/default.nix
new file mode 100644
index 0000000000000..121c71fab351d
--- /dev/null
+++ b/pkgs/tools/security/beyond-identity/default.nix
@@ -0,0 +1,89 @@
+{ lib, stdenv, fetchurl, dpkg, buildFHSUserEnv
+, glibc, glib, openssl, tpm2-tss
+, gtk3, gnome, polkit, polkit_gnome
+}:
+
+let
+  pname = "beyond-identity";
+  version = "2.45.0-0";
+  libPath = lib.makeLibraryPath ([ glib glibc openssl tpm2-tss gtk3 gnome.gnome-keyring polkit polkit_gnome ]);
+  meta = with lib; {
+    description = "Passwordless MFA identities for workforces, customers, and developers";
+    homepage = "https://www.beyondidentity.com";
+    downloadPage = "https://app.byndid.com/downloads";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ klden ];
+    platforms = [ "x86_64-linux" ];
+  };
+
+  beyond-identity = stdenv.mkDerivation {
+    inherit pname version meta;
+
+    src = fetchurl {
+      url = "https://packages.beyondidentity.com/public/linux-authenticator/deb/ubuntu/pool/focal/main/b/be/${pname}_${version}/${pname}_${version}_amd64.deb";
+      sha512 = "852689d473b7538cdca60d264295f39972491b5505accad897fd924504189f0a6d8b6481cc0520ee762d4642e0f4fd664a03b5741f9ea513ec46ab16b05158f2";
+    };
+
+    nativeBuildInputs = [
+      dpkg
+    ];
+
+    unpackPhase = ''
+      dpkg -x $src .
+    '';
+
+    installPhase = ''
+      mkdir -p $out/opt/beyond-identity
+
+      rm -rf usr/share/doc
+
+      # https://github.com/NixOS/nixpkgs/issues/42117
+      sed -i -e 's/auth_self/yes/g' usr/share/polkit-1/actions/com.beyondidentity.endpoint.stepup.policy
+
+      cp -ar usr/{bin,share} $out
+      cp -ar opt/beyond-identity/bin $out/opt/beyond-identity
+
+      ln -s $out/opt/beyond-identity/bin/* $out/bin/
+    '';
+
+    postFixup = ''
+      substituteInPlace \
+        $out/share/applications/com.beyondidentity.endpoint.BeyondIdentity.desktop \
+        --replace /usr/bin/ $out/bin/
+      substituteInPlace \
+        $out/share/applications/com.beyondidentity.endpoint.webserver.BeyondIdentity.desktop \
+        --replace /opt/ $out/opt/
+      substituteInPlace \
+        $out/opt/beyond-identity/bin/byndid-web \
+        --replace /opt/ $out/opt/
+      substituteInPlace \
+        $out/bin/beyond-identity \
+        --replace /opt/ $out/opt/ \
+        --replace /usr/bin/gtk-launch ${gtk3}/bin/gtk-launch
+
+      patchelf \
+        --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+        --set-rpath "${libPath}" \
+        --force-rpath \
+        $out/bin/byndid
+    '';
+  };
+# /usr/bin/pkcheck is hardcoded in binary - we need FHS
+in buildFHSUserEnv {
+   inherit meta;
+   name = pname;
+
+   targetPkgs = pkgs: [
+     beyond-identity
+     glib glibc openssl tpm2-tss
+     gtk3 gnome.gnome-keyring
+     polkit polkit_gnome
+   ];
+
+   extraInstallCommands = ''
+     ln -s ${beyond-identity}/share $out
+   '';
+
+   runScript = "beyond-identity";
+}
+
diff --git a/pkgs/tools/security/bitwarden/default.nix b/pkgs/tools/security/bitwarden/default.nix
index 050621cd20ef8..198295fcdfe03 100644
--- a/pkgs/tools/security/bitwarden/default.nix
+++ b/pkgs/tools/security/bitwarden/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bitwarden";
-  version = "1.29.1";
+  version = "1.30.0";
 
   src = fetchurl {
     url = "https://github.com/bitwarden/desktop/releases/download/v${version}/Bitwarden-${version}-amd64.deb";
-    sha256 = "0rxy19bazi7a6m2bpx6wadg5d9p0k324h369vgr5ppmxb69d6zp8";
+    sha256 = "sha256-x0i7MUVr0nhPy8M/dTVtRjaLfJQlzqhzLQ/JHLRmL6E=";
   };
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/tools/security/boofuzz/default.nix b/pkgs/tools/security/boofuzz/default.nix
new file mode 100644
index 0000000000000..353758c3d5f9d
--- /dev/null
+++ b/pkgs/tools/security/boofuzz/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "boofuzz";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "jtpereyda";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "4WtTZ2S2rC2XXN0HbiEht9NW0JXcPnpp66AH67F88yk=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    attrs
+    click
+    colorama
+    flask
+    funcy
+    future
+    psutil
+    pyserial
+    pydot
+    six
+    tornado
+  ];
+
+  checkInputs = with python3.pkgs; [
+    mock
+    netifaces
+    pytest-bdd
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # Tests require socket access
+    "test_raw_l2"
+    "test_raw_l3"
+  ];
+
+  pythonImportsCheck = [
+    "boofuzz"
+  ];
+
+  meta = with lib; {
+    description = "Network protocol fuzzing tool";
+    homepage = "https://github.com/jtpereyda/boofuzz";
+    license = with licenses; [ gpl2Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/cariddi/default.nix b/pkgs/tools/security/cariddi/default.nix
index fe5b2f09507eb..670a03c88810b 100644
--- a/pkgs/tools/security/cariddi/default.nix
+++ b/pkgs/tools/security/cariddi/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "cariddi";
-  version = "1.1.2";
+  version = "1.1.5";
 
   src = fetchFromGitHub {
     owner = "edoardottt";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5FXHJvHrfmttesgI6IE3+AedLXf1skWV12+WjbR4Xy8=";
+    sha256 = "sha256-PXQljC9rwlxXQ96fII3EjD4NXu61EMkYvMWqkcJZ4vU=";
   };
 
-  vendorSha256 = "sha256-ZIlOPOrAWdwHwgUR/9eBEXaIcNfWh7yEQ/c9iE8sLiY=";
+  vendorSha256 = "sha256-yVfRjUlw90oUsbF2P6pW6FhMXok9ZwcKmAWyTFLI/cY=";
 
   meta = with lib; {
     description = "Crawler for URLs and endpoints";
diff --git a/pkgs/tools/security/ccid/default.nix b/pkgs/tools/security/ccid/default.nix
index a7312731203b6..d1b5f4a83c0fb 100644
--- a/pkgs/tools/security/ccid/default.nix
+++ b/pkgs/tools/security/ccid/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ccid";
-  version = "1.4.35";
+  version = "1.4.36";
 
   src = fetchurl {
     url = "https://ccid.apdu.fr/files/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-fD4qeSTt2nIhicpXyNHP+lHn+TVKI+ga7NnRro2XEMo=";
+    sha256 = "sha256-K3OsiF8byrgZ3DV4lE0XQGJB4MckBCmJzqQ3NTtnScE=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/security/cdk-go/default.nix b/pkgs/tools/security/cdk-go/default.nix
index 465b987ec74fc..14f7e05140e0c 100644
--- a/pkgs/tools/security/cdk-go/default.nix
+++ b/pkgs/tools/security/cdk-go/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildGoModule
 , fetchFromGitHub
 }:
@@ -25,5 +26,6 @@ buildGoModule rec {
     license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ fab ];
     mainProgram = "cdk";
+    broken = stdenv.isDarwin; # needs to update gopsutil to at least v3.21.3 to include https://github.com/shirou/gopsutil/pull/1042
   };
 }
diff --git a/pkgs/tools/security/chopchop/default.nix b/pkgs/tools/security/chopchop/default.nix
new file mode 100644
index 0000000000000..10ac9e7f4a770
--- /dev/null
+++ b/pkgs/tools/security/chopchop/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "chopchop";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "michelin";
+    repo = "ChopChop";
+    rev = "v${version}";
+    sha256 = "qSBQdcS6d0tctSHRbkY4T7s6Zj7xI2abaPUvNKh1M2E=";
+  };
+
+  vendorSha256 = "UxWARWOFp8AYKEdiJwRZNwFrphgMTJSZjnvktTNOsgU=";
+
+  meta = with lib; {
+    description = "CLI to search for sensitive services/files/folders";
+    homepage = "https://github.com/michelin/ChopChop";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/clamav/default.nix b/pkgs/tools/security/clamav/default.nix
index 2019f8ac99d1e..8fb66ebcb3fff 100644
--- a/pkgs/tools/security/clamav/default.nix
+++ b/pkgs/tools/security/clamav/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.clamav.net";
     description = "Antivirus engine designed for detecting Trojans, viruses, malware and other malicious threats";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ phreedom robberer qknight fpletz globin ];
+    maintainers = with maintainers; [ robberer qknight fpletz globin ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/security/cosign/default.nix b/pkgs/tools/security/cosign/default.nix
index c66b3a6426f74..0c934e3c6953c 100644
--- a/pkgs/tools/security/cosign/default.nix
+++ b/pkgs/tools/security/cosign/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, lib, buildGoModule, fetchFromGitHub, pcsclite, pkg-config, installShellFiles, PCSC, pivKeySupport ? true }:
+{ stdenv, lib, buildGoModule, fetchFromGitHub, pcsclite, pkg-config, installShellFiles, PCSC, pivKeySupport ? true, pkcs11Support ? true }:
 
 buildGoModule rec {
   pname = "cosign";
-  version = "1.3.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "sigstore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-VKlM+bsK2Oj0UB4LF10pHEIJqXv6cAO5rtxnTogpfOk=";
+    sha256 = "sha256-WjYW9Fo27wE1pg/BqYsdHd8jwd8jG5bk37HmU1DqnyE=";
   };
 
   buildInputs = lib.optional (stdenv.isLinux && pivKeySupport) (lib.getDev pcsclite)
@@ -16,19 +16,23 @@ buildGoModule rec {
 
   nativeBuildInputs = [ pkg-config installShellFiles ];
 
-  vendorSha256 = "sha256-idMvvYeP5rAT6r9RPZ9S8K9KTpVYVq06ZKSBPxWA2ms=";
+  vendorSha256 = "sha256-6T98zu55BQ26e43a1i68rhebaLwY/iFM8CRqRcv2QwI=";
 
   excludedPackages = "\\(sample\\|webhook\\|help\\)";
 
-  tags = lib.optionals pivKeySupport [ "pivkey" ];
+  tags = [] ++ lib.optionals pivKeySupport [ "pivkey" ] ++ lib.optionals pkcs11Support [ "pkcs11key" ];
 
-  ldflags = [ "-s" "-w" "-X github.com/sigstore/cosign/cmd/cosign/cli/options.GitVersion=v${version}" ];
+  ldflags = [ "-s" "-w" "-X github.com/sigstore/cosign/pkg/version.GitVersion=v${version}" ];
 
   postInstall = ''
     installShellCompletion --cmd cosign \
       --bash <($out/bin/cosign completion bash) \
       --fish <($out/bin/cosign completion fish) \
       --zsh <($out/bin/cosign completion zsh)
+    installShellCompletion --cmd sget \
+      --bash <($out/bin/sget completion bash) \
+      --fish <($out/bin/sget completion fish) \
+      --zsh <($out/bin/sget completion zsh)
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/security/cve-bin-tool/default.nix b/pkgs/tools/security/cve-bin-tool/default.nix
index fac922628752d..dd26ce887eaad 100644
--- a/pkgs/tools/security/cve-bin-tool/default.nix
+++ b/pkgs/tools/security/cve-bin-tool/default.nix
@@ -28,13 +28,13 @@
 }:
 buildPythonApplication rec {
   pname = "cve-bin-tool";
-  version = "2.2.1";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "cve-bin-tool";
     rev = "v${version}";
-    sha256 = "087w7fsc4vd4sjz8ww6q71b108yhz94ydr76d99rhlmcqsq7fihs";
+    sha256 = "1fmdnlhi03fdr4d4n7ydf6m0gx0cl77n3db8ldbs3m9zryblhzpr";
   };
 
   # Wants to open a sqlite database, access the internet, etc
diff --git a/pkgs/tools/security/dalfox/default.nix b/pkgs/tools/security/dalfox/default.nix
index d498e69b44484..2919354db4ece 100644
--- a/pkgs/tools/security/dalfox/default.nix
+++ b/pkgs/tools/security/dalfox/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "dalfox";
-  version = "2.5.4";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "hahwul";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zwDdOj6/YcZQZW5WWMZztTVl5QsYMCcqtaAFsM+1bn0=";
+    sha256 = "sha256-QSIaqHUNsVpb1qbQLIxxjoDH1DMM1XpXxWZtImMV1yM=";
   };
 
-  vendorSha256 = "sha256-AZbzcGqje2u9waH2NGWITXpax2GCFqbIEd4uNiDmcIY=";
+  vendorSha256 = "sha256-QtSWlGsbCxLpb4+TZgV0/wfSb5flGG3qHquO2maIOKU=";
 
   meta = with lib; {
     description = "Tool for analysing parameter and XSS scanning";
diff --git a/pkgs/tools/security/dnsrecon/default.nix b/pkgs/tools/security/dnsrecon/default.nix
index 6fa2041de3c0f..e3fe955eb9f13 100644
--- a/pkgs/tools/security/dnsrecon/default.nix
+++ b/pkgs/tools/security/dnsrecon/default.nix
@@ -5,19 +5,20 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "dnsrecon";
-  version = "0.10.1";
+  version = "1.0.0";
+  format = "other";
 
   src = fetchFromGitHub {
     owner = "darkoperator";
     repo = pname;
     rev = version;
-    sha256 = "1ysf8wx287psfk89r0i2vgnrjvxdj44s6nhf6sva59jbwvr9lghy";
+    sha256 = "sha256-VRO5ugr/+iZh+hh3tVs/JNAr7GXao/HK43O3FlkbcSM=";
   };
 
-  format = "other";
-
-  pythonPath = with python3.pkgs; [
-    dnspython netaddr lxml
+  propagatedBuildInputs = with python3.pkgs; [
+    dnspython
+    netaddr
+    lxml
   ];
 
   postPatch = ''
@@ -36,11 +37,11 @@ python3.pkgs.buildPythonApplication rec {
     runHook postInstall
   '';
 
+
   meta = with lib; {
-    description = "DNS Enumeration Script";
+    description = "DNS Enumeration script";
     homepage = "https://github.com/darkoperator/dnsrecon";
     license = licenses.gpl2Only;
-    platforms = platforms.all;
     maintainers = with maintainers; [ c0bw3b fab ];
   };
 }
diff --git a/pkgs/tools/security/doppler/default.nix b/pkgs/tools/security/doppler/default.nix
index 2bd087fe4a46f..27b44ce6042a7 100644
--- a/pkgs/tools/security/doppler/default.nix
+++ b/pkgs/tools/security/doppler/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "doppler";
-  version = "3.35.0";
+  version = "3.36.2";
 
   src = fetchFromGitHub {
     owner = "dopplerhq";
     repo = "cli";
     rev = version;
-    sha256 = "sha256-Eb6msMl5X8ct9XlVlrxbnkXSEouzK/jCW94qm3PTXBQ=";
+    sha256 = "sha256-T8WqQTB3ogxGiImkyZUUbKcXTdSgGM0Vb4OkckslzYE=";
   };
 
   vendorSha256 = "sha256-VPxHxNtDeP5CFDMTeMsZYED9ZGWMquJdeupeCVldY/E=";
diff --git a/pkgs/tools/security/echidna/default.nix b/pkgs/tools/security/echidna/default.nix
index 70628b75fd6af..88deac03a8f73 100644
--- a/pkgs/tools/security/echidna/default.nix
+++ b/pkgs/tools/security/echidna/default.nix
@@ -12,23 +12,15 @@
 }:
 mkDerivation rec {
   pname = "echidna";
-  version = "1.7.2";
+  version = "1.7.3";
 
   src = fetchFromGitHub {
     owner = "crytic";
     repo = "echidna";
     rev = "v${version}";
-    sha256 = "sha256-eFhL8Zn8204JRrF69ibPtd7VpFW63i1iVXoGwXHlqps=";
+    sha256 = "sha256-NkAAXYa1bbCNUO0eDM7LQbyC3//RRFAKmEHGH2Dhl/M=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "update-hevm-to-0.47.0.patch";
-      url = "https://github.com/crytic/echidna/commit/25dfdad93d0e0dd822f22a1c1e63a0ecf2b22a23.patch";
-      sha256 = "sha256-dj3Ie+Z4zE1fgROE/KuWZXaH9knsXJi1ai3gu5zyw/E=";
-    })
-  ];
-
   isLibrary = true;
   isExecutable = true;
   libraryHaskellDepends = [
diff --git a/pkgs/tools/security/enum4linux/default.nix b/pkgs/tools/security/enum4linux/default.nix
index 9a9f2039ac20e..b6da742dc6fad 100644
--- a/pkgs/tools/security/enum4linux/default.nix
+++ b/pkgs/tools/security/enum4linux/default.nix
@@ -1,16 +1,34 @@
-{ lib, stdenv, fetchurl, makeWrapper, samba, perl, openldap }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeWrapper
+, samba
+, perl
+, openldap
+}:
 
 stdenv.mkDerivation rec {
   pname = "enum4linux";
-  version = "0.8.9";
-  src = fetchurl {
-    url = "https://labs.portcullis.co.uk/download/enum4linux-${version}.tar.gz";
-    sha256 = "41334df0cb1ba82db9e3212981340372bb355a8160073331d2a1610908a62d85";
+  version = "0.9.1";
+
+  src = fetchFromGitHub {
+    owner = "CiscoCXSecurity";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-/R0P4Ft9Y0LZwKwhDGAe36UKviih6CNbJbj1lcNKEkM=";
   };
 
   dontBuild = true;
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ samba perl openldap ];
+
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  buildInputs = [
+    openldap
+    perl
+    samba
+  ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -23,9 +41,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A tool for enumerating information from Windows and Samba systems";
     homepage = "https://labs.portcullis.co.uk/tools/enum4linux/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ fishi0x01 ];
     platforms = platforms.unix;
-    maintainers = [ maintainers.fishi0x01 ];
   };
 }
 
diff --git a/pkgs/tools/security/expliot/default.nix b/pkgs/tools/security/expliot/default.nix
index 2a3c1df0e8f74..848ee536380f2 100644
--- a/pkgs/tools/security/expliot/default.nix
+++ b/pkgs/tools/security/expliot/default.nix
@@ -22,8 +22,6 @@ buildPythonApplication rec {
   pname = "expliot";
   version = "0.9.8";
 
-  disabled = python3.pythonOlder "3.7";
-
   src = fetchFromGitLab {
     owner = "expliot_framework";
     repo = pname;
@@ -50,10 +48,18 @@ buildPythonApplication rec {
     zeroconf
   ];
 
+  postPatch = ''
+    # https://gitlab.com/expliot_framework/expliot/-/merge_requests/113
+    substituteInPlace setup.py \
+      --replace "pynetdicom>=1.5.1,<2" "pynetdicom>=2,<3"
+  '';
+
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [ "expliot" ];
+  pythonImportsCheck = [
+    "expliot"
+  ];
 
   meta = with lib; {
     description = "IoT security testing and exploitation framework";
diff --git a/pkgs/tools/security/exploitdb/default.nix b/pkgs/tools/security/exploitdb/default.nix
index d5d37cd70a0f8..a6d5a3855a876 100644
--- a/pkgs/tools/security/exploitdb/default.nix
+++ b/pkgs/tools/security/exploitdb/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exploitdb";
-  version = "2021-11-18";
+  version = "2021-12-21";
 
   src = fetchFromGitHub {
     owner = "offensive-security";
     repo = pname;
     rev = version;
-    sha256 = "sha256-GSqJIM/wAgSKn9BWOSEwmrVTwI6ZOTZGNHRcepDT7MI=";
+    sha256 = "sha256-HTs8dGDSYU/Ih/8CS+4C4AtERxQHwlmpfrA0YrrKoyY=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/fierce/default.nix b/pkgs/tools/security/fierce/default.nix
index 95be0dcaedde1..9b8d8735b0798 100644
--- a/pkgs/tools/security/fierce/default.nix
+++ b/pkgs/tools/security/fierce/default.nix
@@ -1,31 +1,40 @@
-{ lib, fetchFromGitHub, python3 }:
+{ lib
+, fetchFromGitHub
+, python3
+}:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "fierce";
-  version = "1.4.0";
+  version = "1.5.0";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "mschwager";
     repo = pname;
     rev = version;
-    sha256 = "11yaz8ap9swx95j3wpqh0b6jhw6spqgfnsyn1liw9zqi4jwgiax7";
+    sha256 = "sha256-9VTPD5i203BTl2nADjq131W9elgnaHNIWGIUuCiYlHg=";
   };
 
+  propagatedBuildInputs = with python3.pkgs; [
+    dnspython
+  ];
+
   postPatch = ''
-    substituteInPlace requirements.txt --replace 'dnspython==1.16.0' 'dnspython'
+    substituteInPlace requirements.txt \
+      --replace 'dnspython==1.16.0' 'dnspython'
   '';
 
-  propagatedBuildInputs = [ python3.pkgs.dnspython ];
-
   # tests require network access
   doCheck = false;
-  pythonImportsCheck = [ "fierce" ];
+
+  pythonImportsCheck = [
+    "fierce"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/mschwager/fierce";
     description = "DNS reconnaissance tool for locating non-contiguous IP space";
+    homepage = "https://github.com/mschwager/fierce";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ c0bw3b ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/security/fprot/default.nix b/pkgs/tools/security/fprot/default.nix
index 22779327a9bf1..6b930adcc26b2 100644
--- a/pkgs/tools/security/fprot/default.nix
+++ b/pkgs/tools/security/fprot/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation {
     homepage = "http://www.f-prot.com";
     description = "A popular proprietary antivirus program";
     license = licenses.unfree;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/security/genpass/default.nix b/pkgs/tools/security/genpass/default.nix
index e726da3403160..9565bf80c9505 100644
--- a/pkgs/tools/security/genpass/default.nix
+++ b/pkgs/tools/security/genpass/default.nix
@@ -7,15 +7,15 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "genpass";
-  version = "0.4.12";
+  version = "0.5.1";
 
   src = fetchgit {
     url = "https://git.sr.ht/~cyplo/genpass";
     rev = "v${version}";
-    sha256 = "154kprbqc59f06ciz60il4ax299zapwa0hz8vjn25rl4gr5gzn4l";
+    sha256 = "UyEgOlKtDyneRteN3jHA2BJlu5U1HFL8HA2MTQz5rns=";
   };
 
-  cargoSha256 = "1b9jqkg11d0ih46km063inqqjwfy1nrwb2xb3dagg3hi8hahpqpb";
+  cargoSha256 = "ls3tzZ+gtZQlObmbtwJDq6N/f5nY+Ps7RL5R/fR5Vgg=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreFoundation libiconv Security ];
 
diff --git a/pkgs/tools/security/ghdorker/default.nix b/pkgs/tools/security/ghdorker/default.nix
new file mode 100644
index 0000000000000..c6882fb110a80
--- /dev/null
+++ b/pkgs/tools/security/ghdorker/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "ghdorker";
+  version = "0.3.2";
+  format = "setuptools";
+
+  src = python3.pkgs.fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-wF4QoXxH55SpdYgKLHf4sCwUk1rkCpSdnIX5FvFi/BU=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    ghapi
+    glom
+    python-dotenv
+    pyyaml
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "GHDorker"
+  ];
+
+  meta = with lib; {
+    description = "Extensible GitHub dorking tool";
+    homepage = "https://github.com/dtaivpp/ghdorker";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/ghidra/default.nix b/pkgs/tools/security/ghidra/default.nix
index 3b3f5ed44e708..e57f60637e25b 100644
--- a/pkgs/tools/security/ghidra/default.nix
+++ b/pkgs/tools/security/ghidra/default.nix
@@ -24,12 +24,12 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "ghidra";
-  version = "10.0";
-  versiondate = "20210621";
+  version = "10.1.1";
+  versiondate = "20211221";
 
   src = fetchzip {
     url = "https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_${version}_build/ghidra_${version}_PUBLIC_${versiondate}.zip";
-    sha256 = "0m1ksng2fkmcg7m22lqil10qn95s06gxnxdz7ih9qpbx67pmmq9x";
+    sha256 = "1aib24hjfavy31vq0pasbzix9lpqrb90m3hp4n0iakg6ck8jcl5r";
   };
 
   nativeBuildInputs = [
@@ -70,7 +70,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A software reverse engineering (SRE) suite of tools developed by NSA's Research Directorate in support of the Cybersecurity mission";
-    homepage = "https://ghidra-sre.org/";
+    homepage = "https://github.com/NationalSecurityAgency/ghidra";
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     license = licenses.asl20;
     maintainers = with maintainers; [ ck3d govanify mic92 ];
diff --git a/pkgs/tools/security/gitleaks/default.nix b/pkgs/tools/security/gitleaks/default.nix
index 16e1013c7c015..e37accbe7c351 100644
--- a/pkgs/tools/security/gitleaks/default.nix
+++ b/pkgs/tools/security/gitleaks/default.nix
@@ -5,26 +5,31 @@
 
 buildGoModule rec {
   pname = "gitleaks";
-  version = "7.6.1";
+  version = "8.2.5";
 
   src = fetchFromGitHub {
     owner = "zricethezav";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-52Wi3bQvKdHoJ1nVb4OVJ9wd8hDVF+6zlVSpsEai0Jw=";
+    sha256 = "sha256-lHKdIQyGbQt6PmMaTRIUx1q/81Q4KOfQ8zLnpt9aGbk=";
   };
 
-  vendorSha256 = "sha256-86PspExE+T/IuCvpf6LAkWcCRlHPqP5VUbHAckEzALc=";
+  vendorSha256 = "sha256-cIwte59AdVOWMBUWE4gKZSHhU37HgEW4k0v+jUUyj1Q=";
 
   ldflags = [
-    "-s" "-w" "-X github.com/zricethezav/gitleaks/v${lib.versions.major version}/version.Version=${version}"
+    "-s"
+    "-w"
+    "-X github.com/zricethezav/gitleaks/v${lib.versions.major version}/version.Version=${version}"
   ];
 
+  # With v8 the config tests are are blocking
+  doCheck = false;
+
   meta = with lib; {
     description = "Scan git repos (or files) for secrets";
     longDescription = ''
       Gitleaks is a SAST tool for detecting hardcoded secrets like passwords,
-      API keys, and tokens in git repos.
+      API keys and tokens in git repos.
     '';
     homepage = "https://github.com/zricethezav/gitleaks";
     license = with licenses; [ mit ];
diff --git a/pkgs/tools/security/gnupg/1compat.nix b/pkgs/tools/security/gnupg/1compat.nix
index 371a7ca67afde..6625a45679549 100644
--- a/pkgs/tools/security/gnupg/1compat.nix
+++ b/pkgs/tools/security/gnupg/1compat.nix
@@ -1,7 +1,8 @@
 { stdenv, gnupg, coreutils, writeScript }:
 
 stdenv.mkDerivation {
-  name = "gnupg1compat-${gnupg.version}";
+  pname = "gnupg1compat";
+  version = gnupg.version;
 
   builder = writeScript "gnupg1compat-builder" ''
     PATH=${coreutils}/bin
diff --git a/pkgs/tools/security/gomapenum/default.nix b/pkgs/tools/security/gomapenum/default.nix
new file mode 100644
index 0000000000000..f77b513c42da5
--- /dev/null
+++ b/pkgs/tools/security/gomapenum/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "gomapenum";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "nodauf";
+    repo = "GoMapEnum";
+    rev = "v${version}";
+    sha256 = "sha256-6WZTmRse3mj1bimHE81JdSc4VKpMFbcJN3U4zgHMzJc=";
+  };
+
+  vendorSha256 = "sha256-Z/uLZIPKd75P9nI7kTFOwzWFkRTVwUojYEQms4OJ6Bk=";
+
+  postInstall = ''
+    mv $out/bin/src $out/bin/$pname
+  '';
+
+  meta = with lib; {
+    description = "Tools for user enumeration and password bruteforce";
+    homepage = "https://github.com/nodauf/GoMapEnum";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/gosh/default.nix b/pkgs/tools/security/gosh/default.nix
index 5c5ad25e6d9e4..20cdd25e72849 100644
--- a/pkgs/tools/security/gosh/default.nix
+++ b/pkgs/tools/security/gosh/default.nix
@@ -26,6 +26,6 @@ buildGoModule rec {
     description = "Reverse/bind shell generator";
     homepage = "https://github.com/redcode-labs/GoSH";
     license = licenses.mit;
-    maintainers = with maintainers; [ fab ];
+    maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
   };
 }
diff --git a/pkgs/tools/security/gospider/default.nix b/pkgs/tools/security/gospider/default.nix
index f4b750d394a01..469be63a90247 100644
--- a/pkgs/tools/security/gospider/default.nix
+++ b/pkgs/tools/security/gospider/default.nix
@@ -1,20 +1,20 @@
-{ buildGoModule
+{ lib
+, buildGoModule
 , fetchFromGitHub
-, lib
 }:
 
 buildGoModule rec {
   pname = "gospider";
-  version = "1.1.5";
+  version = "1.1.6";
 
   src = fetchFromGitHub {
     owner = "jaeles-project";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-yfW94sQzT1u6O0s1sqpeANlukC5y8fNvHNL2c77+dxU=";
+    rev = "v${version}";
+    sha256 = "sha256-1EnKheHaS1kxw0cjxCahT3rUWBXiqxjKefrDBI2xIvY=";
   };
 
-  vendorSha256 = "sha256-1aOw0lk+khcX9IETA0+wGx91BFXrJ79zYWhEI2JrhDU=";
+  vendorSha256 = "sha256-egjjSEZH8F6UMbnkz3xytIzdW/oITB3RL1ddxrmvSZM=";
 
   # tests require internet access and API keys
   doCheck = false;
diff --git a/pkgs/tools/security/gpg-tui/default.nix b/pkgs/tools/security/gpg-tui/default.nix
index ea144e67a4168..636358f6ea63f 100644
--- a/pkgs/tools/security/gpg-tui/default.nix
+++ b/pkgs/tools/security/gpg-tui/default.nix
@@ -16,16 +16,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gpg-tui";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = "gpg-tui";
     rev = "v${version}";
-    sha256 = "sha256-2fTJHcJJzQIAyxLnWdoyR77tA9p/3s3UescypGwKfc0=";
+    hash = "sha256-jddkws4TXuW0AdLBEpS5RPk1a/mEkwYWMbYiLjt22LU=";
   };
 
-  cargoSha256 = "sha256-8dWMJZiWy0cO0CGAFEmtGYZ8bVK1ZR7qBkjKn6rLC+k=";
+  cargoHash = "sha256-bj77fMmpXeOqb1MzOPsEPQUh5AnZxBrapzt864V+IUU=";
 
   nativeBuildInputs = [
     gpgme # for gpgme-config
diff --git a/pkgs/tools/security/grype/default.nix b/pkgs/tools/security/grype/default.nix
index 8bf0c2e8dc8a9..9d327f37af6a3 100644
--- a/pkgs/tools/security/grype/default.nix
+++ b/pkgs/tools/security/grype/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "grype";
-  version = "0.24.0";
+  version = "0.28.0";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-6OCtyB5hzG3QPmXNlT8VvN8oFjaTeqEAuMFKXG0DvII=";
+    sha256 = "sha256-Mc0bO9BDcIXEoHwhQDbX9g84kagcT3gVz8PPxXpG7dw=";
   };
 
-  vendorSha256 = "sha256-kvfzeJoonHI5Z7roHwN1ANYWyKROUd6slRb/VLbU3xo=";
+  vendorSha256 = "sha256-su0dg9Gidd8tQKM5IzX6/GC5jk8SCIO+qsI3UGlvpwg=";
 
   propagatedBuildInputs = [ docker ];
 
diff --git a/pkgs/tools/security/hashcat/default.nix b/pkgs/tools/security/hashcat/default.nix
index c45724e80e0a5..ed06ee992e4af 100644
--- a/pkgs/tools/security/hashcat/default.nix
+++ b/pkgs/tools/security/hashcat/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname   = "hashcat";
-  version = "6.2.4";
+  version = "6.2.5";
 
   src = fetchurl {
     url = "https://hashcat.net/files/hashcat-${version}.tar.gz";
-    sha256 = "sha256-kCA5b/kzaT4xC0ebZB6G8Xg9mBnWDR2Qd1KtjSSmDDE=";
+    sha256 = "sha256-b2iZ162Jlln3tDpNaAmFQ6tUbSFx+OUdaR0Iplk3iWk=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/hcxtools/default.nix b/pkgs/tools/security/hcxtools/default.nix
index 2a08ce6a1c8f3..15abe8449eb03 100644
--- a/pkgs/tools/security/hcxtools/default.nix
+++ b/pkgs/tools/security/hcxtools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hcxtools";
-  version = "6.2.4";
+  version = "6.2.5";
 
   src = fetchFromGitHub {
     owner = "ZerBea";
     repo = pname;
     rev = version;
-    sha256 = "sha256-C6nAZkkdtBSv4WDxoXPsHzcGglB8PEX3ioFaTydiHsU=";
+    sha256 = "sha256-f8QNP4ApBdgZooeWOs4Om2LtIFoiBbe1ZfCzokyzs0I=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/security/httpx/default.nix b/pkgs/tools/security/httpx/default.nix
index 07becc2c3488d..3e9164befc96c 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.1.3";
+  version = "1.1.4";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = "httpx";
     rev = "v${version}";
-    sha256 = "sha256-sB/z7Z35SQt2D6YHgSJjXS/O9qbkqVrcl/OB+YhGhwQ=";
+    sha256 = "sha256-Mis3DQwcTazHVF7hkTRQ2OtQxeGut5LRUAloBXCdq3s=";
   };
 
-  vendorSha256 = "sha256-/GC81ukWpC7h86noPv6zayS9fxWhJpWGXPM8u56F5c4=";
+  vendorSha256 = "sha256-53Mvc637J306MJLw+l1amAuZhUE/NdDvuWEe0fg4Hog=";
 
   meta = with lib; {
     description = "Fast and multi-purpose HTTP toolkit";
diff --git a/pkgs/tools/security/inql/default.nix b/pkgs/tools/security/inql/default.nix
new file mode 100644
index 0000000000000..28abbe075bf4a
--- /dev/null
+++ b/pkgs/tools/security/inql/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "inql";
+  version = "4.0.5";
+
+  src = fetchFromGitHub {
+    owner = "doyensec";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-0LPJMCg7F9kcPcq4jkADdCPNLfRThXu8QHy4qOn7+QU=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    stickytape
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "inql"
+  ];
+
+  meta = with lib; {
+    description = "Security testing tool for GraphQL";
+    homepage = "https://github.com/doyensec/inql";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/jadx/default.nix b/pkgs/tools/security/jadx/default.nix
index 02533f7f6f5fc..ec94b0e73d4f7 100644
--- a/pkgs/tools/security/jadx/default.nix
+++ b/pkgs/tools/security/jadx/default.nix
@@ -2,13 +2,13 @@
 
 let
   pname = "jadx";
-  version = "1.2.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "skylot";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1w1wc81mkjcsgjbrihbsphxkcmwnfnf555pmlsd2vs2a04nki01y";
+    hash = "sha256-6I8pK1DZkjAf6XljREMasoZQGR9YGDxn6+sdQ/nf31A=";
   };
 
   deps = stdenv.mkDerivation {
@@ -21,6 +21,14 @@ let
       export GRADLE_USER_HOME=$(mktemp -d)
       export JADX_VERSION=${version}
       gradle --no-daemon jar
+
+      # Apparently, Gradle won't cache the `compileOnlyApi` dependency
+      # `org.jetbrains:annotations:22.0.0` which is defined in
+      # `io.github.skylot:raung-common`. To make it available in the
+      # output, we patch `build.gradle` and run Gradle again.
+      substituteInPlace build.gradle \
+        --replace 'org.jetbrains:annotations:23.0.0' 'org.jetbrains:annotations:22.0.0'
+      gradle --no-daemon jar
     '';
 
     # Mavenize dependency paths
@@ -31,9 +39,8 @@ let
         | sh
     '';
 
-    outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "05fsycpd90dbak2vgdpd9cz08liq5j78ag9ry9y1s62ld776g0hz";
+    outputHash = "sha256-i+vK085P1T182wW4PajpDyZgyupKHlrx1yJgzJdHETU=";
   };
 in stdenv.mkDerivation {
   inherit pname version src;
diff --git a/pkgs/tools/security/kube-hunter/default.nix b/pkgs/tools/security/kube-hunter/default.nix
new file mode 100644
index 0000000000000..6f15bde0104e3
--- /dev/null
+++ b/pkgs/tools/security/kube-hunter/default.nix
@@ -0,0 +1,57 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "kube-hunter";
+  version = "0.6.3";
+
+  src = fetchFromGitHub {
+    owner = "aquasecurity";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-OXiFWdbp6L9S57gRIROzuvXZ0R16lvKDqZR0kW0eEYQ=";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    netaddr
+    netifaces
+    scapy
+    requests
+    prettytable
+    urllib3
+    ruamel-yaml
+    future
+    packaging
+    pluggy
+    kubernetes
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
+    requests-mock
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "dataclasses" "" \
+      --replace "kubernetes==12.0.1" "kubernetes" \
+      --replace "--cov=kube_hunter" ""
+  '';
+
+  pythonImportsCheck = [
+    "kube_hunter"
+  ];
+
+  meta = with lib; {
+    description = "Tool to search issues in Kubernetes clusters";
+    homepage = "https://github.com/aquasecurity/kube-hunter";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/kubeaudit/default.nix b/pkgs/tools/security/kubeaudit/default.nix
new file mode 100644
index 0000000000000..76cf9f65c36c6
--- /dev/null
+++ b/pkgs/tools/security/kubeaudit/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "kubeaudit";
+  version = "0.16.0";
+
+  src = fetchFromGitHub {
+    owner = "Shopify";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-AIvH9HF0Ha1b+NZiJmiT6beYuKnCqJMXKzDFUzV9J4c=";
+  };
+
+  vendorSha256 = "sha256-XrEzkhQU/KPElQNgCX6yWDMQXZSd3lRXmUDJpsj5ACY=";
+
+  postInstall = ''
+    mv $out/bin/cmd $out/bin/$pname
+  '';
+
+  # Tests require a running Kubernetes instance
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Audit tool for Kubernetes";
+    homepage = "https://github.com/Shopify/kubeaudit";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/kubescape/default.nix b/pkgs/tools/security/kubescape/default.nix
index e68980cc9659c..0a13b54d2bfa5 100644
--- a/pkgs/tools/security/kubescape/default.nix
+++ b/pkgs/tools/security/kubescape/default.nix
@@ -6,20 +6,20 @@
 
 buildGoModule rec {
   pname = "kubescape";
-  version = "1.0.131";
+  version = "1.0.136";
 
   src = fetchFromGitHub {
     owner = "armosec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-DcReo4pTdI8ssWH1IqD8gDUm4jQ0jBBJ+ltxSpdkxQE=";
+    sha256 = "sha256-g7gM+fZIDb6YK3QDiBqiQaTEyFtIQ30mTe6AAR3S3iw=";
   };
 
   nativeBuildInputs = [
     installShellFiles
   ];
 
-  vendorSha256 = "sha256-SxJnYJyKFed1c+zgeeXQQhsKHlaDevJGMwqA5gPef3s=";
+  vendorSha256 = "sha256-hEj69RsYj+KxfZPri2j+vFxUU2S8wuK85EYGND5wtWg=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/security/lethe/default.nix b/pkgs/tools/security/lethe/default.nix
index 4f9e65b49b8b0..502757262787e 100644
--- a/pkgs/tools/security/lethe/default.nix
+++ b/pkgs/tools/security/lethe/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lethe";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "kostassoid";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-WYDO44S2cBPe14vv/4i51tgtnoR+6FN2GyAbjJ7AYy8=";
+    sha256 = "sha256-0UYUzef7ja8nc2zs7eWqqXQfVVbEJEH9/NRRHVkvkYk=";
   };
 
-  cargoSha256 = "sha256-5fWclZgt5EuWrsYRheTX9otNiGbJ41Q/fTYdKMWRMHc=";
+  cargoSha256 = "sha256-suE8USKTZECVlTX4Wpz3vapo/Wmn7qaC3eyAJ3gmzqk=";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/tools/security/libtpms/default.nix b/pkgs/tools/security/libtpms/default.nix
index 9877aaad7e98a..b49ce7305deb6 100644
--- a/pkgs/tools/security/libtpms/default.nix
+++ b/pkgs/tools/security/libtpms/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libtpms";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "stefanberger";
     repo = "libtpms";
     rev = "v${version}";
-    sha256 = "sha256-9u5Yq9PXMADvyWZo5aFa0GNzqVsbyN25o/cYQdbrUO0=";
+    sha256 = "sha256-30P/YggrPEVpsh2qo751aW6RtrpIVe1XQWyYZm8P4yA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/lmp/default.nix b/pkgs/tools/security/lmp/default.nix
new file mode 100644
index 0000000000000..6fd544df20a4d
--- /dev/null
+++ b/pkgs/tools/security/lmp/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "lmp";
+  version = "2.0";
+
+  src = fetchFromGitHub {
+    owner = "0xInfection";
+    repo = "LogMePwn";
+    rev = "v${version}";
+    sha256 = "sha256-VL/Hp7YaXNcV9JPb3kgRHcdhJJ5p3KHUf3hHbT3gKVk=";
+  };
+
+  vendorSha256 = "sha256-K3jD+r/JFQH5QeLHatCzTdgiABbmKOd/jR3Di10w6mo=";
+
+  meta = with lib; {
+    description = "Scanning and validation toolkit for the Log4J vulnerability";
+    homepage = "https://github.com/0xInfection/LogMePwn";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/log4j-detect/default.nix b/pkgs/tools/security/log4j-detect/default.nix
new file mode 100644
index 0000000000000..aaad1fb94efbc
--- /dev/null
+++ b/pkgs/tools/security/log4j-detect/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "log4j-detect";
+  version = "unstable-2021-12-14";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "takito1812";
+    repo = pname;
+    rev = "2f5b7a598a6d0b4aee8111bb574ea72c6a1c76d6";
+    sha256 = "sha256-fFKW7uPBfrnze0UoPL3Mfwd4sFOuHYuDP7kv6VtdM3o=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    requests
+  ];
+
+  postPatch = ''
+    sed -i "1 i #!/usr/bin/python" ${pname}.py
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -vD ${pname}.py $out/bin/${pname}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Tool to detect the log4j vulnerability";
+    homepage = "https://github.com/takito1812/log4j-detect";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/log4j-scan/default.nix b/pkgs/tools/security/log4j-scan/default.nix
new file mode 100644
index 0000000000000..bd2772efb416b
--- /dev/null
+++ b/pkgs/tools/security/log4j-scan/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "log4j-scan";
+  version = "unstable-2021-12-18";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "fullhunt";
+    repo = pname;
+    rev = "070fbd00f0945645bd5e0daa199a554ef3884b95";
+    sha256 = "sha256-ORSc4KHyAMjuA7QHReDh6SYY5yZRunBBN1+lkCayqL4=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pycryptodome
+    requests
+    termcolor
+  ];
+
+  postPatch = ''
+    substituteInPlace log4j-scan.py \
+      --replace "headers.txt" "../share/headers.txt"
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -vD ${pname}.py $out/bin/${pname}
+    install -vD headers.txt headers-large.txt -t $out/share
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Scanner for finding hosts which are vulnerable for log4j";
+    homepage = "https://github.com/fullhunt/log4j-scan";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/log4j-sniffer/default.nix b/pkgs/tools/security/log4j-sniffer/default.nix
new file mode 100644
index 0000000000000..07d966353abfd
--- /dev/null
+++ b/pkgs/tools/security/log4j-sniffer/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, git
+}:
+
+buildGoModule rec {
+  pname = "log4j-sniffer";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "palantir";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-2scESCuENM4m3YrxPjoXcPKEkBPTMWOGJR3WenkTNBA=";
+  };
+
+  vendorSha256 = null;
+
+  checkInputs = [
+    git
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d);
+    cd $HOME
+    git init
+  '';
+
+  meta = with lib; {
+    description = "Tool that scans archives to check for vulnerable log4j versions";
+    homepage = "https://github.com/palantir/log4j-sniffer";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/log4j-vuln-scanner/default.nix b/pkgs/tools/security/log4j-vuln-scanner/default.nix
new file mode 100644
index 0000000000000..67bfa89ad2eb4
--- /dev/null
+++ b/pkgs/tools/security/log4j-vuln-scanner/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "log4j-vuln-scanner";
+  version = "0.11";
+
+  src = fetchFromGitHub {
+    owner = "hillu";
+    repo = "local-log4j-vuln-scanner";
+    rev = "v${version}";
+    sha256 = "sha256-YGo2dhfqLPNP8O9gdRJfxKmEK/pKd17WNTXQ2cq78qg=";
+  };
+
+  vendorSha256 = null;
+
+  postInstall = ''
+    mv $out/bin/scanner $out/bin/$pname
+    mv $out/bin/patcher $out/bin/log4j-vuln-patcher
+  '';
+
+  meta = with lib; {
+    description = "Local log4j vulnerability scanner";
+    homepage = "https://github.com/hillu/local-log4j-vuln-scanner";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/log4jcheck/default.nix b/pkgs/tools/security/log4jcheck/default.nix
new file mode 100644
index 0000000000000..291bf1ff96b4b
--- /dev/null
+++ b/pkgs/tools/security/log4jcheck/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "log4jcheck";
+  version = "unstable-2021-12-14";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "NorthwaveSecurity";
+    repo = pname;
+    rev = "736f1f4044e8a9b7bf5db515e2d1b819253f0f6d";
+    sha256 = "sha256-1al7EMYbE/hFXKV4mYZlkEWTUIKYxgXYU3qBLlczYvs=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    requests
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -vD nw_log4jcheck.py $out/bin/${pname}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Tool to check for vulnerable Log4j (CVE-2021-44228) systems";
+    homepage = "https://github.com/NorthwaveSecurity/log4jcheck";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/log4shell-detector/default.nix b/pkgs/tools/security/log4shell-detector/default.nix
new file mode 100644
index 0000000000000..6c51c5bcd6e9c
--- /dev/null
+++ b/pkgs/tools/security/log4shell-detector/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "log4shell-detector";
+  version = "unstable-2021-12-16";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "Neo23x0";
+    repo = pname;
+    rev = "622b88e7ea36819da23ce6ac090785cd6cca77f9";
+    sha256 = "sha256-N81x9hq473LfM+bQIQLWizCAsVc/pzyB84PV7/N5jk4=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    zstandard
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -vD ${pname}.py $out/bin/${pname}
+    install -vd $out/${python3.sitePackages}/
+    cp -R Log4ShellDetector $out/${python3.sitePackages}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Detector for Log4Shell exploitation attempts";
+    homepage = "https://github.com/Neo23x0/log4shell-detector";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/logmap/default.nix b/pkgs/tools/security/logmap/default.nix
new file mode 100644
index 0000000000000..d6d4cb0f1a54e
--- /dev/null
+++ b/pkgs/tools/security/logmap/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "logmap";
+  version = "unstable-2021-12-15";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "zhzyker";
+    repo = pname;
+    rev = "5040707b4ae260830072de93ccd6a23615073abf";
+    sha256 = "sha256-LOGjK5l/gaKObWbC9vaLruE8DdDsabztnEW/TjvCdtE=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    requests
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -vD ${pname}.py $out/bin/${pname}
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Tools for fuzzing Log4j2 jndi injection";
+    homepage = "https://github.com/zhzyker/logmap";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/maigret/default.nix b/pkgs/tools/security/maigret/default.nix
new file mode 100644
index 0000000000000..08ef82ff9d6ea
--- /dev/null
+++ b/pkgs/tools/security/maigret/default.nix
@@ -0,0 +1,92 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "maigret";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "soxoj";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "cq7pATICVQa2yTx2uiP58OBTn4B6iCjIB6LMmpaQfx0=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    aiodns
+    aiohttp
+    aiohttp-socks
+    arabic-reshaper
+    async-timeout
+    attrs
+    beautifulsoup4
+    certifi
+    chardet
+    colorama
+    future
+    html5lib
+    idna
+    jinja2
+    lxml
+    markupsafe
+    mock
+    multidict
+    networkx
+    pycountry
+    pypdf2
+    pysocks
+    python-bidi
+    pyvis
+    requests
+    requests-futures
+    six
+    socid-extractor
+    soupsieve
+    stem
+    torrequest
+    tqdm
+    typing-extensions
+    webencodings
+    xhtml2pdf
+    xmind
+    yarl
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytest-httpserver
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    # Remove all version pinning
+    sed -i -e "s/==[0-9.]*//" requirements.txt
+    # We are not build for Python < 3.7
+    sed -i -e '/future-annotations/d' requirements.txt
+    # We can't work with dummy packages
+    sed -i -e 's/bs4/beautifulsoup4/g' requirements.txt
+  '';
+
+  disabledTests = [
+    # Tests require network access
+    "test_extract_ids_from_page"
+    "test_import_aiohttp_cookies"
+    "test_maigret_results"
+    "test_pdf_report"
+    "test_self_check_db_negative_enabled"
+    "test_self_check_db_positive_enable"
+  ];
+
+  pythonImportsCheck = [
+    "maigret"
+  ];
+
+  meta = with lib; {
+    description = "Tool to collect details about an username";
+    homepage = "https://maigret.readthedocs.io";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/metasploit/Gemfile b/pkgs/tools/security/metasploit/Gemfile
index c4e5370fb5ecf..a5808532cafc8 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.1.15"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.1.21"
diff --git a/pkgs/tools/security/metasploit/Gemfile.lock b/pkgs/tools/security/metasploit/Gemfile.lock
index 3ec1ed8963b55..84330722835ea 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: 1dd828ca9f705d3f05d273b535ff666b5941ddd6
-  ref: refs/tags/6.1.15
+  revision: 0b16a2cd771a6afd286188da1c60c9fd772ab0f1
+  ref: refs/tags/6.1.21
   specs:
-    metasploit-framework (6.1.15)
+    metasploit-framework (6.1.21)
       actionpack (~> 6.0)
       activerecord (~> 6.0)
       activesupport (~> 6.0)
@@ -31,9 +31,9 @@ GIT
       metasploit-concern
       metasploit-credential
       metasploit-model
-      metasploit-payloads (= 2.0.60)
+      metasploit-payloads (= 2.0.66)
       metasploit_data_models
-      metasploit_payloads-mettle (= 1.0.15)
+      metasploit_payloads-mettle (= 1.0.17)
       mqtt
       msgpack
       nessus_rest
@@ -98,25 +98,25 @@ GEM
   remote: https://rubygems.org/
   specs:
     Ascii85 (1.1.0)
-    actionpack (6.1.4.1)
-      actionview (= 6.1.4.1)
-      activesupport (= 6.1.4.1)
+    actionpack (6.1.4.4)
+      actionview (= 6.1.4.4)
+      activesupport (= 6.1.4.4)
       rack (~> 2.0, >= 2.0.9)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionview (6.1.4.1)
-      activesupport (= 6.1.4.1)
+    actionview (6.1.4.4)
+      activesupport (= 6.1.4.4)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activemodel (6.1.4.1)
-      activesupport (= 6.1.4.1)
-    activerecord (6.1.4.1)
-      activemodel (= 6.1.4.1)
-      activesupport (= 6.1.4.1)
-    activesupport (6.1.4.1)
+    activemodel (6.1.4.4)
+      activesupport (= 6.1.4.4)
+    activerecord (6.1.4.4)
+      activemodel (= 6.1.4.4)
+      activesupport (= 6.1.4.4)
+    activesupport (6.1.4.4)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -125,26 +125,26 @@ GEM
     addressable (2.8.0)
       public_suffix (>= 2.0.2, < 5.0)
     afm (0.2.2)
-    arel-helpers (2.12.1)
-      activerecord (>= 3.1.0, < 7)
+    arel-helpers (2.14.0)
+      activerecord (>= 3.1.0, < 8)
     aws-eventstream (1.2.0)
-    aws-partitions (1.533.0)
-    aws-sdk-core (3.122.1)
+    aws-partitions (1.543.0)
+    aws-sdk-core (3.125.0)
       aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.525.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1.0)
-    aws-sdk-ec2 (1.281.0)
-      aws-sdk-core (~> 3, >= 3.122.0)
+    aws-sdk-ec2 (1.288.0)
+      aws-sdk-core (~> 3, >= 3.125.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-iam (1.63.0)
-      aws-sdk-core (~> 3, >= 3.122.0)
+    aws-sdk-iam (1.65.0)
+      aws-sdk-core (~> 3, >= 3.125.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-kms (1.51.0)
-      aws-sdk-core (~> 3, >= 3.122.0)
+    aws-sdk-kms (1.53.0)
+      aws-sdk-core (~> 3, >= 3.125.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.106.0)
-      aws-sdk-core (~> 3, >= 3.122.0)
+    aws-sdk-s3 (1.110.0)
+      aws-sdk-core (~> 3, >= 3.125.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.4)
     aws-sigv4 (1.4.0)
@@ -152,7 +152,7 @@ GEM
     bcrypt (3.1.16)
     bcrypt_pbkdf (1.1.0)
     bindata (2.4.10)
-    bson (4.12.1)
+    bson (4.13.0)
     builder (3.2.4)
     concurrent-ruby (1.0.5)
     cookiejar (0.3.3)
@@ -225,7 +225,7 @@ GEM
     logging (2.3.0)
       little-plugger (~> 1.1)
       multi_json (~> 1.14)
-    loofah (2.12.0)
+    loofah (2.13.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     metasm (1.0.5)
@@ -247,7 +247,7 @@ GEM
       activemodel (~> 6.0)
       activesupport (~> 6.0)
       railties (~> 6.0)
-    metasploit-payloads (2.0.60)
+    metasploit-payloads (2.0.66)
     metasploit_data_models (5.0.4)
       activerecord (~> 6.0)
       activesupport (~> 6.0)
@@ -258,10 +258,10 @@ GEM
       railties (~> 6.0)
       recog (~> 2.0)
       webrick
-    metasploit_payloads-mettle (1.0.15)
+    metasploit_payloads-mettle (1.0.17)
     method_source (1.0.0)
     mini_portile2 (2.6.1)
-    minitest (5.14.4)
+    minitest (5.15.0)
     mqtt (0.5.0)
     msgpack (1.4.2)
     multi_json (1.15.0)
@@ -288,7 +288,7 @@ GEM
       pcaprub
     patch_finder (1.0.2)
     pcaprub (0.12.4)
-    pdf-reader (2.6.0)
+    pdf-reader (2.7.0)
       Ascii85 (~> 1.0)
       afm (~> 0.2.1)
       hashery (~> 2.0)
@@ -309,15 +309,15 @@ GEM
       nokogiri (>= 1.6)
     rails-html-sanitizer (1.4.2)
       loofah (~> 2.3)
-    railties (6.1.4.1)
-      actionpack (= 6.1.4.1)
-      activesupport (= 6.1.4.1)
+    railties (6.1.4.4)
+      actionpack (= 6.1.4.4)
+      activesupport (= 6.1.4.4)
       method_source
       rake (>= 0.13)
       thor (~> 1.0)
     rake (13.0.6)
     rb-readline (0.5.5)
-    recog (2.3.21)
+    recog (2.3.22)
       nokogiri
     redcarpet (3.5.1)
     reline (0.2.5)
@@ -375,7 +375,7 @@ GEM
     ruby-macho (2.5.1)
     ruby-rc4 (0.1.5)
     ruby2_keywords (0.0.5)
-    ruby_smb (2.0.11)
+    ruby_smb (2.0.12)
       bindata
       openssl-ccm
       openssl-cmac
diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix
index 4a691122cf419..e2659abe6ab34 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.1.15";
+  version = "6.1.21";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = version;
-    sha256 = "sha256-Wz5FeM7AvRS4mV3BJcWOdp1GgAzTOqRnjBAQp4/Oj5E=";
+    sha256 = "sha256-43abc6XUmLZZ+KuaAqyT/fJT+79JWKeRRA41NJOWoPY=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/metasploit/gemset.nix b/pkgs/tools/security/metasploit/gemset.nix
index ff8d0da3f3a87..9e6f49e96d7fc 100644
--- a/pkgs/tools/security/metasploit/gemset.nix
+++ b/pkgs/tools/security/metasploit/gemset.nix
@@ -4,50 +4,50 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xgysqnibjsy6kdz10x2xb3kwa6lssiqhh0zggrbgs31ypwhlpia";
+      sha256 = "171ida68hrk21cq1zz1kfl9h94a3qw5p3afviqzsirl0kx6qjyv9";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.4";
   };
   actionview = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yf4ic5kl324rs0raralpwx24s6hvvdzxfhinafylf8f3x7jj23z";
+      sha256 = "1lm2pf35p6q4ff78z175h6ihmzfg2j7ssn41374rb9iy9gpiiidm";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.4";
   };
   activemodel = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16ixam4lni8b5lgx0whnax0imzh1dh10fy5r9pxs52n83yz5nbq3";
+      sha256 = "0g3qdz8dw6zkgz45jd13lwfdnm7rhgczv1pssw63g9k6qj3bkxjm";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.4";
   };
   activerecord = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ccgvlj767ybps3pxlaa4iw77n7wbriw2sr8754id3ngjfap08ja";
+      sha256 = "090d4wl1pq06m9mibpck0m5nm8h45fwhs3fjx27297kjmnv4gzik";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.4";
   };
   activesupport = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19gx1jcq46x9d1pi1w8xq0bgvvfw239y4lalr8asm291gj3q3ds4";
+      sha256 = "0rvnz9lsf9mrkpji748sf51f54m027snkw6rm8flyvf7fq18rm98";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.4";
   };
   addressable = {
     groups = ["default"];
@@ -74,10 +74,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1733g96xxmmgjxambhnr98aj2yq401vgg0afyf46ayzgablij4cb";
+      sha256 = "1b14yqwfjynlvl6x7jclhr4b2imik2cvabwxn9cpylabdnhr7gza";
       type = "gem";
     };
-    version = "2.12.1";
+    version = "2.14.0";
   };
   Ascii85 = {
     groups = ["default"];
@@ -104,60 +104,60 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "052y91z5xqysfmnclcp0k9cy7dgjk28xv6dskwww42ljdgjxcmxi";
+      sha256 = "07ydbhiyncl0l1dwy09z8inf72x1k961qlcwwg62l4yacv0a74wq";
       type = "gem";
     };
-    version = "1.533.0";
+    version = "1.543.0";
   };
   aws-sdk-core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07cdd2jiydn663xgqv5fykd9zfiv96ma3j4k2khwf06czy40cvwq";
+      sha256 = "06mkw688mrhz4j2d2ajzigr87041hxczy2w45j0iv1mnvs5yrhan";
       type = "gem";
     };
-    version = "3.122.1";
+    version = "3.125.0";
   };
   aws-sdk-ec2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01ywgc5mh1h19ac10l1ck911qgkxqavwbanp4i6h9ddlcd9jmhm1";
+      sha256 = "0s67sgpv7b6asg3am157brsclq15p8r3fm2gc741zz546xfbfpm3";
       type = "gem";
     };
-    version = "1.281.0";
+    version = "1.288.0";
   };
   aws-sdk-iam = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ms76yn9iprmvjw1ijrgasss70398i8wmkwmgpghn5wc37z59x2s";
+      sha256 = "0gss3wi1csngmd2iirxznnhafr0yvgqnkr0cksz7dk9kqrly04gl";
       type = "gem";
     };
-    version = "1.63.0";
+    version = "1.65.0";
   };
   aws-sdk-kms = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qac9dd6qriz6ldghkr8ga74zz28jl109kmvhvag74a3qf7k9dwj";
+      sha256 = "044nzbh16x4vx7kbjv1hfh553sp126kcdk2x99apr52j506sk87c";
       type = "gem";
     };
-    version = "1.51.0";
+    version = "1.53.0";
   };
   aws-sdk-s3 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06ix8lw1r0mw77hnc7ns0fqrsl616g35xw8qcsihzwzgvwb2z0mb";
+      sha256 = "1587v0xh0hcrxn0ki0ahx70kkpny4pm32fj4bh7500wzvjki6d6v";
       type = "gem";
     };
-    version = "1.106.0";
+    version = "1.110.0";
   };
   aws-sigv4 = {
     groups = ["default"];
@@ -204,10 +204,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pnr0b7phdzhkw9xqhmqnw5673ndi13ks3dqwqmbxq6v0rsxiapc";
+      sha256 = "0ir2fml3d6gjzqhiqpxl8rqmgrp5lqrx8xdwz9cmcnxhfzmqgxbp";
       type = "gem";
     };
-    version = "4.12.1";
+    version = "4.13.0";
   };
   builder = {
     groups = ["default"];
@@ -624,10 +624,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nqcya57x2n58y1dify60i0dpla40n4yir928khp4nj5jrn9mgmw";
+      sha256 = "17rvbrqcci1579d7dpbsfmz1f9g7msk82lyh9ip5h29dkrnixcgg";
       type = "gem";
     };
-    version = "2.12.0";
+    version = "2.13.0";
   };
   metasm = {
     groups = ["default"];
@@ -664,12 +664,12 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "1dd828ca9f705d3f05d273b535ff666b5941ddd6";
-      sha256 = "14cgrs7sf40hiiks8fnk1j04d7bniv2jbhaxk6w19gf0rrw4agjv";
+      rev = "0b16a2cd771a6afd286188da1c60c9fd772ab0f1";
+      sha256 = "1xm0js9k8d8f8j8sfn29pzxm7wpxjfn056mbz1cvd66llmrrnxp3";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.1.15";
+    version = "6.1.21";
   };
   metasploit-model = {
     groups = ["default"];
@@ -686,10 +686,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rg11gjy590cixfy6lmwgd76ai0s2gs4w8m379bkkx2f12lkibhn";
+      sha256 = "0gpsxysd6lg4falybci1fwlxjmxazjx5birqppdyc9wkqha58j9r";
       type = "gem";
     };
-    version = "2.0.60";
+    version = "2.0.66";
   };
   metasploit_data_models = {
     groups = ["default"];
@@ -706,10 +706,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kl7plipccqgrjlm6aqdnp1xz44f6hnb2qmljhqay8ln2kg9f1aa";
+      sha256 = "06v72lyj08haqzs5a12ds6vadq6r2kxy50s7jxp1vxq5i2j4p2gm";
       type = "gem";
     };
-    version = "1.0.15";
+    version = "1.0.17";
   };
   method_source = {
     groups = ["default"];
@@ -736,10 +736,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
+      sha256 = "06xf558gid4w8lwx13jwfdafsch9maz8m0g85wnfymqj63x5nbbd";
       type = "gem";
     };
-    version = "5.14.4";
+    version = "5.15.0";
   };
   mqtt = {
     groups = ["default"];
@@ -947,10 +947,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zgv9pp9cqd1cf8bwk7pb5lkm81gn7znnan0a7s42wd0qavs4nnz";
+      sha256 = "0c8s9p3s7z39zv9s6avaf5ddqncpglraqpqn50yhb1lrnna3akgi";
       type = "gem";
     };
-    version = "2.6.0";
+    version = "2.7.0";
   };
   pg = {
     groups = ["default"];
@@ -1047,10 +1047,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kwpm068cqys34p2g0j3l1g0cd5f3kxnsay5v7lmbd0sgarac0vy";
+      sha256 = "1nmyds2www6dmqbbd5ggq31gxxb9mwxd5llzmb3iyczssk6l7lla";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.4.4";
   };
   rake = {
     groups = ["default"];
@@ -1077,10 +1077,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ndzawr0rd3jdizxgjyrgipi3ccn9jpagvplxk91kb5spy9lnsy2";
+      sha256 = "0ml58i34gjpgmpl392c77v2n50w2w233gwxgy6cxq81bp58ywj92";
       type = "gem";
     };
-    version = "2.3.21";
+    version = "2.3.22";
   };
   redcarpet = {
     groups = ["default"];
@@ -1337,10 +1337,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06szny4dcbwlcq2fki1fbrghsbk2dgwy3zyl9y8zjkf334yjb57k";
+      sha256 = "103rm0p44w8q2gyw3yigb6k2v12hi7gkj71b2wkj4859jzi96vyb";
       type = "gem";
     };
-    version = "2.0.11";
+    version = "2.0.12";
   };
   rubyntlm = {
     groups = ["default"];
diff --git a/pkgs/tools/security/nmap/default.nix b/pkgs/tools/security/nmap/default.nix
index ff416f793e1c2..69bea2ac54ff5 100644
--- a/pkgs/tools/security/nmap/default.nix
+++ b/pkgs/tools/security/nmap/default.nix
@@ -11,7 +11,7 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  name = "nmap${optionalString graphicalSupport "-graphical"}-${version}";
+  pname = "nmap${optionalString graphicalSupport "-graphical"}";
   version = "7.92";
 
   src = fetchurl {
diff --git a/pkgs/tools/security/nuclei/default.nix b/pkgs/tools/security/nuclei/default.nix
index a9785cde190b5..396b8e03792c3 100644
--- a/pkgs/tools/security/nuclei/default.nix
+++ b/pkgs/tools/security/nuclei/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "nuclei";
-  version = "2.5.3";
+  version = "2.5.4";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-LcOErqnjnBjC2OKObI1r4ydJ2mes2j6WdQpyHi0rLoU=";
+    sha256 = "sha256-r6nOVTg/vZr2somTCoEJQHtbMMZ1RCkdDzGQeTISreU=";
   };
 
-  vendorSha256 = "sha256-lC88sV/WGZuiFZhXNdmMhDyrBdCxbspvpl8JPBS4in4=";
+  vendorSha256 = "sha256-/TFg+ztubfZfyUbRabVr943oF9R0Xg8mIDxUl/MFbJE=";
 
   modRoot = "./v2";
   subPackages = [
diff --git a/pkgs/tools/security/onioncircuits/default.nix b/pkgs/tools/security/onioncircuits/default.nix
index f5d9185dc9869..0186accc24a84 100644
--- a/pkgs/tools/security/onioncircuits/default.nix
+++ b/pkgs/tools/security/onioncircuits/default.nix
@@ -24,7 +24,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://tails.boum.org";
     description = "GTK application to display Tor circuits and streams";
     license = licenses.gpl3;
-    maintainers = [ maintainers.phreedom ];
+    maintainers = [ ];
   };
 }
 
diff --git a/pkgs/tools/security/open-ecard/default.nix b/pkgs/tools/security/open-ecard/default.nix
index 00ff112ba844c..470e5f6530fcb 100644
--- a/pkgs/tools/security/open-ecard/default.nix
+++ b/pkgs/tools/security/open-ecard/default.nix
@@ -2,7 +2,6 @@
 
 let
   version = "1.2.4";
-
   srcs = {
     richclient = fetchurl {
       url = "https://jnlp.openecard.org/richclient-${version}-20171212-0958.jar";
@@ -18,8 +17,8 @@ let
     };
   };
 in stdenv.mkDerivation rec {
-  appName = "open-ecard";
-  name = "${appName}-${version}";
+  pname = "open-ecard";
+  inherit version;
 
   src = srcs.richclient;
 
@@ -28,12 +27,12 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper ];
 
   desktopItem = makeDesktopItem {
-    name = appName;
+    name = pname;
     desktopName = "Open eCard App";
     genericName = "eCard App";
     comment = "Client side implementation of the eCard-API-Framework";
     icon = "oec_logo_bg-transparent.svg";
-    exec = appName;
+    exec = pname;
     categories = "Utility;Security;";
   };
 
@@ -47,7 +46,7 @@ in stdenv.mkDerivation rec {
     cp ${srcs.logo} $out/share/pixmaps/oec_logo_bg-transparent.svg
 
     mkdir -p $out/bin
-    makeWrapper ${jre}/bin/java $out/bin/${appName} \
+    makeWrapper ${jre}/bin/java $out/bin/${pname} \
       --add-flags "-cp $out/share/java/cifs-${version}.jar" \
       --add-flags "-jar $out/share/java/richclient-${version}.jar" \
       --suffix LD_LIBRARY_PATH ':' ${lib.getLib pcsclite}/lib
diff --git a/pkgs/tools/security/passff-host/default.nix b/pkgs/tools/security/passff-host/default.nix
index 87b349c63a464..4eb615b79032b 100644
--- a/pkgs/tools/security/passff-host/default.nix
+++ b/pkgs/tools/security/passff-host/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "passff-host";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchFromGitHub {
     owner = "passff";
     repo = pname;
     rev = version;
-    sha256 = "sha256-9q4onU/e/pzLp5lGQjf/ScOOCVMiMQRaLGEm8K8flX4=";
+    sha256 = "sha256-1JPToJF/ruu69TEZAAvV3Zl0qcTpEyMb2qQDAWWgKNw=";
   };
 
   buildInputs = [ python3 ];
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
       /etc/opt/chrome/native-messaging-hosts
       /etc/chromium/native-messaging-hosts
       /etc/vivaldi/native-messaging-hosts
+      /lib/librewolf/native-messaging-hosts
     )
 
     for manifestDir in "''${nativeMessagingPaths[@]}"; do
@@ -42,6 +43,6 @@ stdenv.mkDerivation rec {
     description = "Host app for the WebExtension PassFF";
     homepage = "https://github.com/passff/passff-host";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ nadrieril ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/tools/security/pcsctools/default.nix b/pkgs/tools/security/pcsctools/default.nix
index 51813526de152..cf8ecf180b3a0 100644
--- a/pkgs/tools/security/pcsctools/default.nix
+++ b/pkgs/tools/security/pcsctools/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pcsc-tools";
-  version = "1.5.7";
+  version = "1.5.8";
 
   src = fetchurl {
     url = "http://ludovic.rousseau.free.fr/softwares/pcsc-tools/${pname}-${version}.tar.bz2";
-    sha256 = "17b9jxvcxmn007lavan20l25v4jvm6dqc4x9dlqzbg6mjs28zsp0";
+    sha256 = "sha256-h8HtvbjJc1Bj9oiqPgXjiTqI54syLcaa+AdX7ZAoIhI=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/security/pgpdump/default.nix b/pkgs/tools/security/pgpdump/default.nix
index c0f496438a4ea..f6fade16b8680 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.33";
+  version = "0.34";
 
   src = fetchFromGitHub {
     owner = "kazu-yamamoto";
     repo = "pgpdump";
     rev = "v${version}";
-    sha256 = "0pi9qdbmcmi58gmljin51ylbi3zkknl8fm26jm67cpl55hvfsn23";
+    sha256 = "1vvxhbz8nqzw9gf7cdmas2shzziznsqj84w6w74h8zzgb4m3byzz";
   };
 
   buildInputs = lib.optionals supportCompressedPackets [ zlib bzip2 ];
diff --git a/pkgs/tools/security/polkit-gnome/default.nix b/pkgs/tools/security/polkit-gnome/default.nix
index c4c9e9929d537..e0d57d9bde236 100644
--- a/pkgs/tools/security/polkit-gnome/default.nix
+++ b/pkgs/tools/security/polkit-gnome/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     homepage = "https://gitlab.gnome.org/Archive/policykit-gnome";
     description = "A dbus session bus service that is used to bring up authentication dialogs";
     license = lib.licenses.lgpl2Plus;
-    maintainers = with lib.maintainers; [ phreedom ];
+    maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/tools/security/qdigidoc/default.nix b/pkgs/tools/security/qdigidoc/default.nix
index 86dc3dfff335f..b47a2455b672d 100644
--- a/pkgs/tools/security/qdigidoc/default.nix
+++ b/pkgs/tools/security/qdigidoc/default.nix
@@ -1,25 +1,22 @@
-{ lib, mkDerivation, fetchgit, fetchurl, cmake, darkhttpd, gettext, makeWrapper, pkg-config
-, libdigidocpp, opensc, openldap, openssl, pcsclite, qtbase, qttranslations, qtsvg }:
+{ lib, mkDerivation, fetchurl, cmake, darkhttpd, gettext, makeWrapper
+, pkg-config, libdigidocpp, opensc, openldap, openssl, pcsclite, qtbase
+, qttranslations, qtsvg }:
 
 mkDerivation rec {
   pname = "qdigidoc";
-  version = "4.2.8";
+  version = "4.2.9";
 
-  src = fetchgit {
-    url = "https://github.com/open-eid/DigiDoc4-Client";
-    rev = "v${version}";
-    sha256 = "02k2s6l79ssvrksa0midm7bq856llrmq0n40yxwm3j011nvc8vsm";
-    fetchSubmodules = true;
+  src = fetchurl {
+    url =
+      "https://github.com/open-eid/DigiDoc4-Client/releases/download/v${version}/qdigidoc4-${version}.tar.gz";
+    sha256 = "1rhd3mvj6ld16zgfscj81f1vhs2nvifsizky509l1av7dsjfbbzr";
   };
 
   tsl = fetchurl {
-    url = "https://ec.europa.eu/information_society/policy/esignature/trusted-list/tl-mp.xml";
-    sha256 = "0klz9blrp0jjhlr9k1i266afp44pqmii1x0y8prk0417ia3fxpli";
+    url = "https://ec.europa.eu/tools/lotl/eu-lotl-pivot-300.xml";
+    sha256 = "1cikz36w9phgczcqnwk4k3mx3kk919wy2327jksmfa4cjfjq4a8d";
   };
 
-  # Adds explicit imports for QPainterPath, fixed in upstream (https://github.com/open-eid/DigiDoc4-Client/pull/914)
-  patches = [ ./qt5.15.patch ];
-
   nativeBuildInputs = [ cmake darkhttpd gettext makeWrapper pkg-config ];
 
   postPatch = ''
@@ -48,6 +45,6 @@ mkDerivation rec {
     homepage = "https://www.id.ee/";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ yegortimoshenko mmahut ];
+    maintainers = with maintainers; [ mmahut yana ];
   };
 }
diff --git a/pkgs/tools/security/qdigidoc/qt5.15.patch b/pkgs/tools/security/qdigidoc/qt5.15.patch
deleted file mode 100644
index 6f390702348b1..0000000000000
--- a/pkgs/tools/security/qdigidoc/qt5.15.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 1aa314f5433b9b3e89a1c05b5c465fb477435e23 Mon Sep 17 00:00:00 2001
-From: Dmitri Smirnov <dmitri@smirnov.ee>
-Date: Mon, 8 Mar 2021 14:15:27 +0100
-Subject: [PATCH] =?UTF-8?q?Added=20explicit=20imports=20for=20QPainterPath?=
- =?UTF-8?q?=20to=20fix=20builds=20with=20Qt=20=E2=89=A5=205.15?=
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Dmitri Smirnov <dmitri@smirnov.ee>
----
- client/widgets/CheckBox.cpp   | 1 +
- client/widgets/MainAction.cpp | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/client/widgets/CheckBox.cpp b/client/widgets/CheckBox.cpp
-index a03b56e5d..725d585b7 100644
---- a/client/widgets/CheckBox.cpp
-+++ b/client/widgets/CheckBox.cpp
-@@ -22,6 +22,7 @@
- #include <QBrush>
- #include <QPaintEvent>
- #include <QPainter>
-+#include <QPainterPath>
- #include <QStyleOptionButton>
- 
- CheckBox::CheckBox(QWidget *parent)
-diff --git a/client/widgets/MainAction.cpp b/client/widgets/MainAction.cpp
-index 4cf4bb1cf..a46c193e3 100644
---- a/client/widgets/MainAction.cpp
-+++ b/client/widgets/MainAction.cpp
-@@ -24,6 +24,7 @@
- 
- #include <QtCore/QSettings>
- #include <QtGui/QPainter>
-+#include <QtGui/QPainterPath>
- #include <QtGui/QPaintEvent>
- 
- using namespace ria::qdigidoc4;
diff --git a/pkgs/tools/security/rekor/default.nix b/pkgs/tools/security/rekor/default.nix
index 4ff36910bb1b9..d982d73f54119 100644
--- a/pkgs/tools/security/rekor/default.nix
+++ b/pkgs/tools/security/rekor/default.nix
@@ -1,23 +1,32 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 let
   generic = { pname, packageToBuild, description }:
     buildGoModule rec {
       inherit pname;
-      version = "0.3.0";
+      version = "0.4.0";
 
       src = fetchFromGitHub {
         owner = "sigstore";
         repo = "rekor";
         rev = "v${version}";
-        sha256 = "sha256-FaVZm9C1pewJCZlYgNyD/ZYr/UIRvhqVTUhFTmysxeg=";
+        sha256 = "sha256-15p4hm4Cvs/yLaQIcxctVdMKRWPjIIFwBcbru6QcjXo=";
       };
 
-      vendorSha256 = "sha256-EBKj/+ruE88qvlbOme4GBfAqt3/1jHcqhY0IHxh6Y5U=";
+      vendorSha256 = "sha256-XCCO4Vamzj5pJFmu1A8mpTLlVAtocrn20myYJVWtBrY=";
+
+      nativeBuildInputs = [ installShellFiles ];
 
       subPackages = [ packageToBuild ];
 
-      ldflags = [ "-s" "-w" "-X github.com/sigstore/rekor/${packageToBuild}/app.gitVersion=v${version}" ];
+      ldflags = [ "-s" "-w" "-X github.com/sigstore/rekor/${packageToBuild}/app.GitVersion=v${version}" ];
+
+      postInstall = ''
+        installShellCompletion --cmd ${pname} \
+          --bash <($out/bin/${pname} completion bash) \
+          --fish <($out/bin/${pname} completion fish) \
+          --zsh <($out/bin/${pname} completion zsh)
+      '';
 
       meta = with lib; {
         inherit description;
diff --git a/pkgs/tools/security/rhash/default.nix b/pkgs/tools/security/rhash/default.nix
index 68bf35a751e7b..e82052d961b8c 100644
--- a/pkgs/tools/security/rhash/default.nix
+++ b/pkgs/tools/security/rhash/default.nix
@@ -1,23 +1,37 @@
-{ lib, stdenv, fetchFromGitHub, which
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, which
 , enableStatic ? stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.4.1";
+  version = "1.4.2";
   pname = "rhash";
 
   src = fetchFromGitHub {
     owner = "rhash";
     repo = "RHash";
     rev = "v${version}";
-    sha256 = "sha256-kmi1FtJYPBUdMfJlzEsQkTwcYB99isP3yzH1EYlk54g=";
+    sha256 = "sha256-HkDgWwHoRWCNtWyfP4sj3veEd+KT5J7yL4J4Z/hJcrE=";
   };
 
+  patches = [
+    # Fix clang configuration; remove with next release
+    (fetchpatch {
+      url = "https://github.com/rhash/RHash/commit/4dc506066cf1727b021e6352535a8bb315c3f8dc.patch";
+      sha256 = "0i5jz2s37h278c8d36pzphhp8rjy660zmhpg2cqlp960f6ny8wwj";
+    })
+  ];
+
   nativeBuildInputs = [ which ];
 
   # configure script is not autotools-based, doesn't support these options
   dontAddStaticConfigureFlags = true;
+
   configurePlatforms = [ ];
+
   configureFlags = [
     "--ar=${stdenv.cc.targetPrefix}ar"
     (lib.enableFeature enableStatic "static")
@@ -28,14 +42,18 @@ stdenv.mkDerivation rec {
 
   checkTarget = "test-full";
 
-  installTargets = [ "install" "install-lib-headers" ]
-    ++ lib.optional (!enableStatic) "install-lib-so-link";
+  installTargets = [
+    "install"
+    "install-lib-headers"
+  ] ++ lib.optional (!enableStatic) [
+    "install-lib-so-link"
+  ];
 
   meta = with lib; {
     homepage = "http://rhash.sourceforge.net/";
     description = "Console utility and library for computing and verifying hash sums of files";
     license = licenses.bsd0;
     platforms = platforms.all;
-    maintainers = [ maintainers.andrewrk ];
+    maintainers = with maintainers; [ andrewrk ];
   };
 }
diff --git a/pkgs/tools/security/ripasso/cursive.nix b/pkgs/tools/security/ripasso/cursive.nix
index 3126dd9fe57f5..1a2ed13746118 100644
--- a/pkgs/tools/security/ripasso/cursive.nix
+++ b/pkgs/tools/security/ripasso/cursive.nix
@@ -2,19 +2,19 @@
 
 with rustPlatform;
 buildRustPackage rec {
-  version = "0.5.1";
+  version = "0.5.2";
   pname = "ripasso-cursive";
 
   src = fetchFromGitHub {
     owner = "cortex";
     repo = "ripasso";
     rev  = "release-${version}";
-    sha256 = "1jx6qv7skikl1ap3g1r34rkz4ab756kra7dgwwv45vl2fb6x74k4";
+    sha256 = "sha256-De/xCDzdRHCslD0j6vT8bwjcMTf5R8KZ32aaB3i+Nig=";
   };
 
   patches = [ ./fix-tests.patch ];
 
-  cargoSha256 = "1li1gmcs7lnjr4qhzs0rrgngdcxy1paiibjwk9zx2rrs71021cgk";
+  cargoSha256 = "sha256-ZmHzxHV4uIxPlLkkOLJApPNLo0GGVj9EopoIwi/j6DE=";
 
   cargoBuildFlags = [ "-p ripasso-cursive" ];
 
diff --git a/pkgs/tools/security/safe/default.nix b/pkgs/tools/security/safe/default.nix
index 747528b0ac4e7..6b5160e7e7534 100644
--- a/pkgs/tools/security/safe/default.nix
+++ b/pkgs/tools/security/safe/default.nix
@@ -1,22 +1,22 @@
 { lib
-, buildGoPackage
+, buildGoModule
 , fetchFromGitHub
 }:
 
-with builtins;
-
-buildGoPackage rec {
+buildGoModule rec {
   pname = "safe";
-  version = "1.5.1";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "starkandwayne";
     repo = "safe";
     rev = "v${version}";
-    sha256 = "12gzxrnyl890h79z9yx23m1wwgy8ahm74q4qwi8n2nh7ydq6mn2d";
+    sha256 = "sha256-ankX4BeMvBEd0e01mQHfaPg4z1z+IZqELaSEJ5deF8Y=";
   };
 
-  goPackagePath = "github.com/starkandwayne/safe";
+  vendorSha256 = "sha256-7hX35FfFxfoiI/dSxWhZH8iJoRWa4slAJF0lULq8KL4=";
+
+  subPackages = [ "." ];
 
   ldflags = [
     "-X main.Version=${version}"
diff --git a/pkgs/tools/security/sammler/default.nix b/pkgs/tools/security/sammler/default.nix
index f5bfab987a17b..f9567147e4e60 100644
--- a/pkgs/tools/security/sammler/default.nix
+++ b/pkgs/tools/security/sammler/default.nix
@@ -25,6 +25,6 @@ buildGoModule rec {
     description = "Tool to extract useful data from documents";
     homepage = "https://github.com/redcode-labs/Sammler";
     license = licenses.mit;
-    maintainers = with maintainers; [ fab ];
+    maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
   };
 }
diff --git a/pkgs/tools/security/scorecard/default.nix b/pkgs/tools/security/scorecard/default.nix
index 0cc94c63c9f00..e08ff55bc18b2 100644
--- a/pkgs/tools/security/scorecard/default.nix
+++ b/pkgs/tools/security/scorecard/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "scorecard";
-  version = "3.0.1";
+  version = "3.2.1";
 
   src = fetchFromGitHub {
     owner = "ossf";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-19XDAgv9ARCZ7eNlWUPcsbGNyKA9vYFry8m6D3+vQP8=";
+    sha256 = "sha256-MVFhw/r1sws82oofV4LHmiSlKxyYd8abYq8oFiB0HH8=";
     # populate values otherwise taken care of by goreleaser,
     # unfortunately these require us to use git. By doing
     # this in postFetch we can delete .git afterwards and
@@ -27,7 +27,7 @@ buildGoModule rec {
       find "$out" -name .git -print0 | xargs -0 rm -rf
     '';
   };
-  vendorSha256 = "sha256-ucF26pTEvG8tkzsyC9WNbvl8QCeetKBvBIcQL2NTfjo=";
+  vendorSha256 = "sha256-WrM2aE0z6SnfoPEBqgn1TO6sSGPMrQvL6+ddvOS2w1k=";
 
   # Install completions post-install
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/tools/security/scrypt/default.nix b/pkgs/tools/security/scrypt/default.nix
index 89ff50e0a8a07..5a3ab9cb68b4f 100644
--- a/pkgs/tools/security/scrypt/default.nix
+++ b/pkgs/tools/security/scrypt/default.nix
@@ -1,4 +1,10 @@
-{ lib, stdenv, fetchurl, openssl, util-linux, getconf }:
+{ lib
+, stdenv
+, fetchurl
+, openssl
+, getconf
+, util-linux
+}:
 
 stdenv.mkDerivation rec {
   pname = "scrypt";
@@ -27,7 +33,7 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
   checkTarget = "test";
-  checkInputs = [ util-linux ];
+  checkInputs = lib.optionals stdenv.isLinux [ util-linux ];
 
   meta = with lib; {
     description = "Encryption utility";
diff --git a/pkgs/tools/security/sn0int/default.nix b/pkgs/tools/security/sn0int/default.nix
index 42f8c8beaefc3..b2d812d521af4 100644
--- a/pkgs/tools/security/sn0int/default.nix
+++ b/pkgs/tools/security/sn0int/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sn0int";
-  version = "0.23.0";
+  version = "0.24.1";
 
   src = fetchFromGitHub {
     owner = "kpcyrd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-DsDSGF43yEyYYduRHu4+VRrPZ89Ce1fwtDxit0x8Apo=";
+    sha256 = "sha256-AP/3QCol2qOvRqNW9F/m9JpiZrqtfXvr//Ku2XE3vqY=";
   };
 
-  cargoSha256 = "sha256-dXNIbngfwMVvLx4uSO6MWpSrZfUGhlggGvXHysYAJIE=";
+  cargoSha256 = "sha256-gdDQjYU8hJdkQCh1Iswn5KlPW2BT/J5vCSOS/KHvbH4=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/tools/security/snallygaster/default.nix b/pkgs/tools/security/snallygaster/default.nix
index e77743d864800..31619ea7f543c 100644
--- a/pkgs/tools/security/snallygaster/default.nix
+++ b/pkgs/tools/security/snallygaster/default.nix
@@ -5,13 +5,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "snallygaster";
-  version = "0.0.10";
+  version = "0.0.11";
 
   src = fetchFromGitHub {
     owner = "hannob";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1xd483sl94zhs7yhc52s0zrn3pj7vf5izggp4ap1d2j0lbwwcyka";
+    sha256 = "sha256-xUWnu+T6+5Ro6TrmtFD/Qd40FffY5rfuAvWzNkBhTME=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/tools/security/snowcrash/default.nix b/pkgs/tools/security/snowcrash/default.nix
index cd85ff90bf910..18325e4094a34 100644
--- a/pkgs/tools/security/snowcrash/default.nix
+++ b/pkgs/tools/security/snowcrash/default.nix
@@ -28,6 +28,6 @@ buildGoModule rec {
     description = "Polyglot payload generator";
     homepage = "https://github.com/redcode-labs/SNOWCRASH";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ fab ];
+    maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
   };
 }
diff --git a/pkgs/tools/security/srm/default.nix b/pkgs/tools/security/srm/default.nix
index 587d7782e765f..8e4b3e697312b 100644
--- a/pkgs/tools/security/srm/default.nix
+++ b/pkgs/tools/security/srm/default.nix
@@ -1,12 +1,11 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-
-  name = "srm-" + version;
+  pname = "srm";
   version = "1.2.15";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/srm/${version}/${name}.tar.gz";
+    url = "mirror://sourceforge/project/srm/${version}/srm-${version}.tar.gz";
     sha256 = "10sjarhprs6s4zandndg720528rcnd4xk8dl48pjj7li1q9c30vm";
   };
 
diff --git a/pkgs/tools/security/sslscan/default.nix b/pkgs/tools/security/sslscan/default.nix
index 4bd7a3ff22146..1c9dfc36107a3 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.0.10";
+  version = "2.0.11";
 
   src = fetchFromGitHub {
     owner = "rbsec";
     repo = "sslscan";
     rev = version;
-    sha256 = "sha256-L6cNmvR6zy2tkMHh+LBsQ3VZDUr0tD5AlOEj+dTLV5k=";
+    sha256 = "sha256-ROdi1pU2VeswmItHOSZimOkPYlgdqEMg2b7zt0f9WrM=";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/security/stacs/default.nix b/pkgs/tools/security/stacs/default.nix
new file mode 100644
index 0000000000000..352c217b76a4b
--- /dev/null
+++ b/pkgs/tools/security/stacs/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "stacs";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "stacscan";
+    repo = pname;
+    rev = version;
+    sha256 = "00ZYdpJktqUXdzPcouHyZcOQyFm7jdFNVuDqsufOviE=";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [
+    setupmeta
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    click
+    pydantic
+    typing-extensions
+    yara-python
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "stacs"
+  ];
+
+  meta = with lib; {
+    description = "Static token and credential scanner";
+    homepage = "https://github.com/stacscan/stacs";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/step-ca/default.nix b/pkgs/tools/security/step-ca/default.nix
index 3a12761ee87fe..d403d72831712 100644
--- a/pkgs/tools/security/step-ca/default.nix
+++ b/pkgs/tools/security/step-ca/default.nix
@@ -7,20 +7,21 @@
 , PCSC
 , pkg-config
 , hsmSupport ? true
+, nixosTests
 }:
 
 buildGoModule rec {
   pname = "step-ca";
-  version = "0.17.6";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "smallstep";
     repo = "certificates";
     rev = "v${version}";
-    sha256 = "sha256-hZdsxSEfb+DwnVOnnp9cT6diQWkFVPSa/T8YDsGlg3k=";
+    sha256 = "sha256-f9sp5sAWysOOoIdCiCJxTWRhyt0wfpO5p4pxW6jj0xc=";
   };
 
-  vendorSha256 = "sha256-OcnqMEotc18rX6BYs3oj8+83MRf7iJJNwjjXUQ5xfp4=";
+  vendorSha256 = "sha256-iDfPCRU91cuZsKqNOjkLGYmWf8i5FO4NmDsfD5Xqip0=";
 
   ldflags = [ "-buildid=" ];
 
@@ -46,6 +47,8 @@ buildGoModule rec {
   # panic: httptest: failed to listen on a port: listen tcp6 [::1]:0: bind: operation not permitted
   __darwinAllowLocalNetworking = true;
 
+  passthru.tests.step-ca = nixosTests.step-ca;
+
   meta = with lib; {
     description = "A private certificate authority (X.509 & SSH) & ACME server for secure automated certificate management, so you can use TLS everywhere & SSO for SSH";
     homepage = "https://smallstep.com/certificates/";
diff --git a/pkgs/tools/security/swtpm/default.nix b/pkgs/tools/security/swtpm/default.nix
index 7f2352c7282c9..f05658f8a98e4 100644
--- a/pkgs/tools/security/swtpm/default.nix
+++ b/pkgs/tools/security/swtpm/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, fetchFromGitHub, fetchpatch
+, fetchFromGitHub
 , autoreconfHook
 , pkg-config
 , libtasn1, openssl, fuse, glib, libseccomp, json-glib
@@ -8,32 +8,32 @@
 , unixtools, expect, socat
 , gnutls
 , perl
+
+# Tests
+, python3, which
 }:
 
 stdenv.mkDerivation rec {
   pname = "swtpm";
-  version = "0.6.1";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "stefanberger";
     repo = "swtpm";
     rev = "v${version}";
-    sha256 = "sha256-iy8xjKnPLq1ntZa9x+KtLDznzu6m+1db3NPeGQESUVo=";
+    sha256 = "sha256-5MKQmZxTW8WofmTkV9kGeGN5RxsgVVMFZEF3rPDUO6Q=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/stefanberger/swtpm/pull/527.patch";
-      sha256 = "sha256-cpKHP15a27ifmmswSgHoNzGPO6TY/ZuJIfM5xLOlqlU=";
-    })
-  ];
-
   nativeBuildInputs = [
     pkg-config unixtools.netstat expect socat
     perl # for pod2man
     autoreconfHook
   ];
 
+  checkInputs = [
+    python3 which
+  ];
+
   buildInputs = [
     libtpms
     openssl libtasn1 libseccomp
@@ -47,17 +47,20 @@ stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
+    patchShebangs tests/*
+
     # Makefile tries to create the directory /var/lib/swtpm-localca, which fails
     substituteInPlace samples/Makefile.am \
         --replace 'install-data-local:' 'do-not-execute:'
 
     # Use the correct path to the certtool binary
     # instead of relying on it being in the environment
-    substituteInPlace samples/swtpm_localca.c --replace \
+    substituteInPlace src/swtpm_localca/swtpm_localca.c --replace \
         '# define CERTTOOL_NAME "certtool"' \
         '# define CERTTOOL_NAME "${gnutls}/bin/certtool"'
   '';
 
+  doCheck = true;
   enableParallelBuilding = true;
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/tools/security/tboot/default.nix b/pkgs/tools/security/tboot/default.nix
index 86051c51dece9..d11426a2b48cf 100644
--- a/pkgs/tools/security/tboot/default.nix
+++ b/pkgs/tools/security/tboot/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tboot";
-  version = "1.10.2";
+  version = "1.10.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/tboot/${pname}-${version}.tar.gz";
-    sha256 = "sha256-Lheco7ULg87lbC8qXkCWwG3R8jiPdQgznDkPBPy6sRE=";
+    sha256 = "sha256-ixFs9Bd6VNT1n5RU6n38hFR+m4+SBNzwrCNXRmCHgOQ=";
   };
 
   buildInputs = [ openssl trousers zlib ];
diff --git a/pkgs/tools/security/theharvester/default.nix b/pkgs/tools/security/theharvester/default.nix
index 5e7b2dbd04f16..81bcd66948f3e 100644
--- a/pkgs/tools/security/theharvester/default.nix
+++ b/pkgs/tools/security/theharvester/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "theharvester";
-  version = "4.0.2";
+  version = "4.0.3";
 
   src = fetchFromGitHub {
     owner = "laramies";
     repo = pname;
     rev = version;
-    sha256 = "sha256-jG0uVfeAfbX809XTUhoSpYdh2i42NoGzortv96dWEAs=";
+    sha256 = "sha256-Ckouhe/Uq6Dv9p/LRpPQkiKuYrwrl/Z7KkYYamDHav8=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index 87be68c9975b0..76bfee421968f 100644
--- a/pkgs/tools/security/tor/default.nix
+++ b/pkgs/tools/security/tor/default.nix
@@ -30,11 +30,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "tor";
-  version = "0.4.6.8";
+  version = "0.4.6.9";
 
   src = fetchurl {
     url = "https://dist.torproject.org/${pname}-${version}.tar.gz";
-    sha256 = "0sj7qn6d6js6gk4vjfkc7p9g021czbfaq00yfq3mn5ycnhvimkhm";
+    sha256 = "1ad99k4wysxrnlaprv7brxr2nc0h5zdnrh0rma10pqlck2037sf7";
   };
 
   outputs = [ "out" "geoip" ];
@@ -61,7 +61,14 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  doCheck = true;
+  # disable tests on aarch64-darwin, the following tests fail there:
+  # oom/circbuf: [forking]
+  #   FAIL src/test/test_oom.c:187: assert(c1->marked_for_close)
+  #   [circbuf FAILED]
+  # oom/streambuf: [forking]
+  #   FAIL src/test/test_oom.c:287: assert(x_ OP_GE 500 - 5): 0 vs 495
+  #   [streambuf FAILED]
+  doCheck = !(stdenv.isDarwin && stdenv.isAarch64);
 
   postInstall = ''
     mkdir -p $geoip/share/tor
@@ -106,7 +113,7 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
 
     maintainers = with maintainers;
-      [ phreedom thoughtpolice joachifm prusnak ];
+      [ thoughtpolice joachifm prusnak ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/security/tor/disable-monotonic-timer-tests.patch b/pkgs/tools/security/tor/disable-monotonic-timer-tests.patch
index a95a373bbb643..bb124c394f25d 100644
--- a/pkgs/tools/security/tor/disable-monotonic-timer-tests.patch
+++ b/pkgs/tools/security/tor/disable-monotonic-timer-tests.patch
@@ -2,7 +2,7 @@ diff --git a/src/test/test_util.c b/src/test/test_util.c
 index 0d86a5ab5..e93c6ba89 100644
 --- a/src/test/test_util.c
 +++ b/src/test/test_util.c
-@@ -5829,13 +5829,9 @@ test_util_monotonic_time(void *arg)
+@@ -6490,13 +6490,9 @@ test_util_monotonic_time(void *arg)
    /* We need to be a little careful here since we don't know the system load.
     */
    tt_i64_op(monotime_diff_msec(&mt1, &mt2), OP_GE, 175);
@@ -16,11 +16,33 @@ index 0d86a5ab5..e93c6ba89 100644
  
    tt_u64_op(msec1, OP_GE, nsec1 / 1000000);
    tt_u64_op(usec1, OP_GE, nsec1 / 1000);
-@@ -5849,7 +5845,6 @@ test_util_monotonic_time(void *arg)
+@@ -6509,8 +6509,6 @@ test_util_monotonic_time(void *arg)
+ 
    uint64_t coarse_stamp_diff =
      monotime_coarse_stamp_units_to_approx_msec(stamp2-stamp1);
-   tt_u64_op(coarse_stamp_diff, OP_GE, 120);
+-  tt_u64_op(coarse_stamp_diff, OP_GE, 120);
 -  tt_u64_op(coarse_stamp_diff, OP_LE, 1200);
  
    {
      uint64_t units = monotime_msec_to_approx_coarse_stamp_units(5000);
+@@ -6515,8 +6515,8 @@ test_util_monotonic_time(void *arg)
+   {
+     uint64_t units = monotime_msec_to_approx_coarse_stamp_units(5000);
+     uint64_t ms = monotime_coarse_stamp_units_to_approx_msec(units);
+-    tt_u64_op(ms, OP_GE, 4950);
+-    tt_u64_op(ms, OP_LT, 5050);
++    tt_u64_op(ms, OP_GE, 4000);
++    tt_u64_op(ms, OP_LT, 6000);
+   }
+ 
+  done:
+@@ -6640,9 +6640,6 @@ test_util_monotonic_time_add_msec(void *arg)
+   monotime_coarse_add_msec(&ct2, &ct1, 1337);
+   tt_i64_op(monotime_diff_msec(&t1, &t2), OP_EQ, 1337);
+   tt_i64_op(monotime_coarse_diff_msec(&ct1, &ct2), OP_EQ, 1337);
+-  // The 32-bit variant must be within 1% of the regular one.
+-  tt_int_op(monotime_coarse_diff_msec32_(&ct1, &ct2), OP_GT, 1323);
+-  tt_int_op(monotime_coarse_diff_msec32_(&ct1, &ct2), OP_LT, 1350);
+ 
+   /* Add 1337 msec twice more; make sure that any second rollover issues
+    * worked. */
diff --git a/pkgs/tools/security/tor/torsocks.nix b/pkgs/tools/security/tor/torsocks.nix
index 22cfa51d4e52a..399afe7f75cb2 100644
--- a/pkgs/tools/security/tor/torsocks.nix
+++ b/pkgs/tools/security/tor/torsocks.nix
@@ -38,6 +38,6 @@ stdenv.mkDerivation rec {
     repositories.git = "https://git.torproject.org/torsocks.git";
     license          = lib.licenses.gpl2;
     platforms        = lib.platforms.unix;
-    maintainers      = with lib.maintainers; [ phreedom thoughtpolice ];
+    maintainers      = with lib.maintainers; [ thoughtpolice ];
   };
 }
diff --git a/pkgs/tools/security/vault/default.nix b/pkgs/tools/security/vault/default.nix
index 1c8682e93bc0e..b50604bf15fac 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.8.4";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "vault";
     rev = "v${version}";
-    sha256 = "sha256-t/BQu6nq0FcmqTc/vo3bTUbVNDqzePqlOMFkl4pD598=";
+    sha256 = "sha256-vuwVPBB7zxpmJsBZ+J/vl0E49gx7CUGGi5j1Grgv2Jo=";
   };
 
-  vendorSha256 = "sha256-9eXDcuVm+N4nenotUtCvyp2qB5uPDwzGHk43Y4uTT14=";
+  vendorSha256 = "sha256-OHGQ6v51jfxEhe7v8b9/yh7aPZmgTod+WFKFzwXk4LU=";
 
   subPackages = [ "." ];
 
@@ -38,7 +38,7 @@ buildGoModule rec {
       --prefix PATH ${lib.makeBinPath [ gawk glibc ]}
   '';
 
-  passthru.tests.vault = nixosTests.vault;
+  passthru.tests = { inherit (nixosTests) vault vault-postgresql; };
 
   meta = with lib; {
     homepage = "https://www.vaultproject.io/";
diff --git a/pkgs/tools/security/vault/vault-bin.nix b/pkgs/tools/security/vault/vault-bin.nix
index b67d63938c951..1ffd793be8b23 100644
--- a/pkgs/tools/security/vault/vault-bin.nix
+++ b/pkgs/tools/security/vault/vault-bin.nix
@@ -1,26 +1,30 @@
 { lib, stdenv, fetchurl, unzip, makeWrapper, gawk, glibc }:
 
 let
-  version = "1.8.4";
+  version = "1.9.1";
 
   sources = let
     base = "https://releases.hashicorp.com/vault/${version}";
   in {
     x86_64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_amd64.zip";
-      sha256 = "sha256-zrCRnIScIWJ8ocrgYPNhtvuX3PBLF9HX0dyZU/zY4yk=";
+      sha256 = "sha256-kP1wLbkktVCTZopVaT0h/WKqAG3Pd9g7qeruk4MIWJM=";
     };
     i686-linux = fetchurl {
       url = "${base}/vault_${version}_linux_386.zip";
-      sha256 = "0sh9q29b0bi5ap6nvll0ykxd5vf4wliksj31cmm4gw5vp90irvl3";
+      sha256 = "sha256-cTZ/hek8wQo9FxIRQ/cc23h7Nqjfonvprf492/lSzLw=";
     };
     x86_64-darwin = fetchurl {
       url = "${base}/vault_${version}_darwin_amd64.zip";
-      sha256 = "09nhfdw20g46fnrn82my7a59pfa81dxncxhiswmha3cdy8n0p6wb";
+      sha256 = "sha256-uKW9Yl4PjxWJ886OVAHl1sbPhgYWoL6IJK44vczLQsY=";
+    };
+    aarch64-darwin = fetchurl {
+      url = "${base}/vault_${version}_darwin_arm64.zip";
+      sha256 = "sha256-J0qwUBcnZRZU5TTQB3K8wNE6rdQC1Boy/gKNQRvUYEI=";
     };
     aarch64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_arm64.zip";
-      sha256 = "01ra0xrgivf01ff87p0gqmi1flnac9y02x7jpv5j6a9czr1sqw1j";
+      sha256 = "sha256-eU5s15tBuZFThJGNtnjOV07tiBoVjSSHMS9sY2WqO1o=";
     };
   };
 
@@ -47,10 +51,12 @@ in stdenv.mkDerivation {
     runHook postInstall
   '';
 
+  dontStrip = stdenv.isDarwin;
+
   meta = with lib; {
     homepage = "https://www.vaultproject.io";
     description = "A tool for managing secrets, this binary includes the UI";
-    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" ];
+    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-darwin" "aarch64-linux" ];
     license = licenses.mpl20;
     maintainers = with maintainers; teams.serokell.members ++ [ offline psyanticy Chili-Man ];
   };
diff --git a/pkgs/tools/security/vaultwarden/default.nix b/pkgs/tools/security/vaultwarden/default.nix
index 77ec5a1e8132d..13399698c0ede 100644
--- a/pkgs/tools/security/vaultwarden/default.nix
+++ b/pkgs/tools/security/vaultwarden/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "vaultwarden";
-  version = "1.23.0";
+  version = "1.23.1";
 
   src = fetchFromGitHub {
     owner = "dani-garcia";
     repo = pname;
     rev = version;
-    sha256 = "sha256-lbOsJsmZxdBNTbhsGJ1mcjWlJ6802GYM3waTiWYOErY=";
+    sha256 = "sha256-UMeltpuGUPdB5j4NBxA6SuLUqzinrF8USCaJk9SjDJA=";
   };
 
-  cargoSha256 = "sha256-ViXpoPkBznB0o/dc/l1r3m0y+z2w58wqlU8/cg8u7tI=";
+  cargoSha256 = "sha256-8SjCWioOK/bk6G+0Yfl0ilgbLu83hn+AtuX9QWrnQEc=";
 
   postPatch = ''
     # Upstream specifies 1.57; nixpkgs has 1.56 which also produces a working
diff --git a/pkgs/tools/security/vaultwarden/vault.nix b/pkgs/tools/security/vaultwarden/vault.nix
index 0d4070e47ab99..5ec014de9593b 100644
--- a/pkgs/tools/security/vaultwarden/vault.nix
+++ b/pkgs/tools/security/vaultwarden/vault.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "vaultwarden-vault";
-  version = "2.22.3";
+  version = "2.25.0";
 
   src = fetchurl {
     url = "https://github.com/dani-garcia/bw_web_builds/releases/download/v${version}/bw_web_v${version}.tar.gz";
-    sha256 = "sha256-cPyh6Hyvqw6ygmOP+qiyhSNAwdryC4nowm8n2ULOJxs=";
+    sha256 = "sha256-0uxkHz/oHWl4MdzV7zRVKgkEqOkrl7Fd405TOf472gw=";
   };
 
   buildCommand = ''
diff --git a/pkgs/tools/security/verifpal/default.nix b/pkgs/tools/security/verifpal/default.nix
index 02f41477c7efc..821118f598c5a 100644
--- a/pkgs/tools/security/verifpal/default.nix
+++ b/pkgs/tools/security/verifpal/default.nix
@@ -6,15 +6,15 @@
 
 buildGoModule rec {
   pname = "verifpal";
-  version = "0.26.0";
+  version = "0.26.1";
 
   src = fetchgit {
     url = "https://source.symbolic.software/verifpal/verifpal.git";
     rev = "v${version}";
-    sha256 = "1ag1fpgk4xa5041y6a0pchmh32j876bl0iqjb7lxxqg5nc76d3v1";
+    sha256 = "sha256-y07RXv2QSyUJpGuFsLJ2sGNo4YzhoCYQr3PkUj4eIOY=";
   };
 
-  vendorSha256 = "XHeXonzRDHXayge5G3apvDarbOfTiV+UQ+IqSbrLkCk=";
+  vendorSha256 = "sha256-gUpgnd/xiLqRNl1bPzVp+0GM/J5GEx0VhUfo6JsX8N8=";
 
   nativeBuildInputs = [ pigeon ];
 
diff --git a/pkgs/tools/security/wad/default.nix b/pkgs/tools/security/wad/default.nix
index ee731798097de..9b284a42a0186 100644
--- a/pkgs/tools/security/wad/default.nix
+++ b/pkgs/tools/security/wad/default.nix
@@ -1,31 +1,32 @@
 { lib
-, buildPythonApplication
-, fetchPypi
-, mock
-, pytestCheckHook
-, six
+, fetchFromGitHub
+, python3
 }:
 
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "wad";
   version = "0.4.6";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname;
-    inherit version;
-    sha256 = "02jq77h6g9v7n4qqq7qri6wmhggy257983dwgmpjsf4qsagkgwy8";
+  src = fetchFromGitHub {
+    owner = "CERN-CERT";
+    repo = "WAD";
+    rev = "v${version}";
+    hash = "sha256-/mlmOzFkyKpmK/uk4813Wk0cf/+ynX3Qxafnd1mGR5k=";
   };
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = with python3.pkgs; [
     six
   ];
 
-  checkInputs = [
-    pytestCheckHook
+  checkInputs = with python3.pkgs; [
     mock
+    pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "wad" ];
+  pythonImportsCheck = [
+    "wad"
+  ];
 
   meta = with lib; {
     description = "Tool for detecting technologies used by web applications";
diff --git a/pkgs/tools/security/wapiti/default.nix b/pkgs/tools/security/wapiti/default.nix
index 38ba47a512234..e27851f618d69 100644
--- a/pkgs/tools/security/wapiti/default.nix
+++ b/pkgs/tools/security/wapiti/default.nix
@@ -5,13 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "wapiti";
-  version = "3.0.5";
+  version = "3.0.9";
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "wapiti-scanner";
     repo = pname;
     rev = version;
-    sha256 = "0663hzpmn6p5xh65d2gk4yk2zh992lfd9lhdwwabhpv3n85nza75";
+    sha256 = "sha256-olqPM8EQ8LxQQM7kqcjbT9RMdBeYdhfn6Qp6BUu8K5Q=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
@@ -19,19 +20,29 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
+    aiocache
+    aiosqlite
     beautifulsoup4
+    brotli
     browser-cookie3
     cryptography
-    Mako
-    markupsafe
-    pysocks
+    dnspython
     httpx
     httpx-ntlm
     httpx-socks
+    humanize
+    loguru
+    Mako
+    markupsafe
+    pysocks
     six
+    sslyze
+    sqlalchemy
     tld
     yaswfp
-  ] ++ lib.optionals (python3.pythonOlder "3.8") [ importlib-metadata ];
+  ] ++ lib.optionals (python3.pythonOlder "3.8") [
+    importlib-metadata
+  ];
 
   checkInputs = with python3.pkgs; [
     respx
@@ -42,9 +53,10 @@ python3.pkgs.buildPythonApplication rec {
   postPatch = ''
     # Ignore pinned versions
     substituteInPlace setup.py \
-      --replace "==" ">="
+      --replace "httpx-socks[asyncio] == 0.6.0" "httpx-socks[asyncio]"
+    sed -i -e "s/==[0-9.]*//" setup.py
     substituteInPlace setup.cfg \
-      --replace " --cov" ""
+      --replace " --cov --cov-report=xml" ""
   '';
 
   preCheck = ''
@@ -87,11 +99,13 @@ python3.pkgs.buildPythonApplication rec {
     "test_request_object"
     "test_script"
     "test_ssrf"
+    "test_merge_with_and_without_redirection"
     "test_tag_name_escape"
     "test_timeout"
     "test_title_false_positive"
     "test_title_positive"
     "test_true_positive_request_count"
+    "test_unregistered_cname"
     "test_url_detection"
     "test_warning"
     "test_whole"
@@ -104,11 +118,13 @@ python3.pkgs.buildPythonApplication rec {
     # Requires a PHP installation
     "test_timesql"
     "test_cookies"
-    # E           TypeError: Expected bytes or bytes-like object got: <class 'str'>
+    # TypeError: Expected bytes or bytes-like object got: <class 'str'>
     "test_persister_upload"
   ];
 
-  pythonImportsCheck = [ "wapitiCore" ];
+  pythonImportsCheck = [
+    "wapitiCore"
+  ];
 
   meta = with lib; {
     description = "Web application vulnerability scanner";
diff --git a/pkgs/tools/security/whispers/default.nix b/pkgs/tools/security/whispers/default.nix
new file mode 100644
index 0000000000000..07c1f1e707e40
--- /dev/null
+++ b/pkgs/tools/security/whispers/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "whispers";
+  version = "1.5.3";
+
+  src = fetchFromGitHub {
+    owner = "Skyscanner";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-jruUGyoZCyMu015QKtlvfx5WRMfxo/eYUue9wUIWb6o=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    astroid
+    beautifulsoup4
+    jproperties
+    luhn
+    lxml
+    python-Levenshtein
+    pyyaml
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace '"pytest-runner"' ""
+  '';
+
+  preCheck = ''
+    # Some tests need the binary available in PATH
+    export PATH=$out/bin:$PATH
+  '';
+
+  pythonImportsCheck = [
+    "whispers"
+  ];
+
+  meta = with lib; {
+    description = "Tool to identify hardcoded secrets in static structured text";
+    homepage = "https://github.com/Skyscanner/whispers";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/system/bottom/default.nix b/pkgs/tools/system/bottom/default.nix
index ad049784c3c87..6a6ae20dfa98c 100644
--- a/pkgs/tools/system/bottom/default.nix
+++ b/pkgs/tools/system/bottom/default.nix
@@ -11,13 +11,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bottom";
-  version = "0.6.4";
+  version = "0.6.6";
 
   src = fetchFromGitHub {
     owner = "ClementTsang";
     repo = pname;
     rev = version;
-    sha256 = "sha256-4L8TUfpEfhjfE1E8GjpRnXPf8kfXdJ02FEusXB/dZWo=";
+    sha256 = "sha256-nE718NA3oLkBTTjewypYyUVRgTm4xiDTui5kEPYYCBc=";
   };
 
   prePatch = ''
@@ -33,7 +33,7 @@ rustPlatform.buildRustPackage rec {
     libiconv
   ];
 
-  cargoSha256 = "sha256-pfDj3lbJpoqnUnzGL64Azcj2HU/UhRe1k55Unh85C/k=";
+  cargoSha256 = "sha256-M6LgriXjhxlnoky+TNU7Eb15M+uTgbVKk3g/Sk90xsg=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/system/bpytop/default.nix b/pkgs/tools/system/bpytop/default.nix
index f552ede91b5e4..eb0630d33eea7 100644
--- a/pkgs/tools/system/bpytop/default.nix
+++ b/pkgs/tools/system/bpytop/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bpytop";
-  version = "1.0.67";
+  version = "1.0.68";
 
   src = fetchFromGitHub {
     owner = "aristocratos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-nvpIqX16WP9kslFo1ne5+QAZcvG+WFm5kDVOLN4C+b0=";
+    sha256 = "sha256-NHfaWWwNpGhqu/ALcW4p4X6sktEyLbKQuNHpAUUw4LY=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -47,6 +47,6 @@ stdenv.mkDerivation rec {
     platforms = with platforms; linux ++ freebsd ++ darwin;
 
     # https://github.com/NixOS/nixpkgs/pull/94625#issuecomment-668509399
-    broken = stdenv.isDarwin;
+    broken = stdenv.isDarwin && stdenv.isx86_64;
   };
 }
diff --git a/pkgs/tools/system/btop/default.nix b/pkgs/tools/system/btop/default.nix
index 131b5a8af1067..70b1a78586cf7 100644
--- a/pkgs/tools/system/btop/default.nix
+++ b/pkgs/tools/system/btop/default.nix
@@ -1,19 +1,41 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, runCommand
+, darwin
 }:
 
 stdenv.mkDerivation rec {
   pname = "btop";
-  version = "1.1.0";
+  version = "1.1.3";
 
   src = fetchFromGitHub {
     owner = "aristocratos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-VA5n2gIFRUUsp4jBG1j5dqH5/tP5VAChm5kqexdD24k=";
+    sha256 = "sha256-uKR1ogQwEoyxyWBiLnW8BsOsYgTpeIpKrKspq0JwYjY=";
   };
 
+  hardeningDisable = lib.optionals (stdenv.isAarch64 && stdenv.isDarwin) [ "stackprotector" ];
+
+  ADDFLAGS = with darwin.apple_sdk.frameworks;
+    lib.optional stdenv.isDarwin
+      "-F${IOKit}/Library/Frameworks/";
+
+  buildInputs = with darwin.apple_sdk;
+    lib.optionals stdenv.isDarwin [
+      frameworks.CoreFoundation
+      frameworks.IOKit
+    ] ++ lib.optional (stdenv.isDarwin && stdenv.isx86_64) (
+      # Found this explanation for needing to create a header directory for libproc.h alone.
+      # https://github.com/NixOS/nixpkgs/blob/049e5e93af9bbbe06b4c40fd001a4e138ce1d677/pkgs/development/libraries/webkitgtk/default.nix#L154
+      # TL;DR, the other headers in the include path for the macOS SDK is not compatible with the C++ stdlib and causes issues, so we copy
+      # this to avoid those issues
+      runCommand "${pname}_headers" { } ''
+        install -Dm444 "${lib.getDev sdk}"/include/libproc.h "$out"/include/libproc.h
+      ''
+    );
+
   installFlags = [ "PREFIX=$(out)" ];
 
   meta = with lib; {
@@ -21,7 +43,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/aristocratos/btop";
     changelog = "https://github.com/aristocratos/btop/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ rmcgibbo ];
   };
 }
diff --git a/pkgs/tools/system/collectd/default.nix b/pkgs/tools/system/collectd/default.nix
index 600c5cbfecd33..8d272b15acf1f 100644
--- a/pkgs/tools/system/collectd/default.nix
+++ b/pkgs/tools/system/collectd/default.nix
@@ -2,6 +2,7 @@
 , autoreconfHook
 , pkg-config
 , libtool
+, nixosTests
 , ...
 }@args:
 let
@@ -16,6 +17,15 @@ stdenv.mkDerivation rec {
     sha256 = "1mh97afgq6qgmpvpr84zngh58m0sl1b4wimqgvvk376188q09bjv";
   };
 
+  patches = [
+    # fix -t never printing syntax errors
+    # should be included in next release
+    (fetchpatch {
+      url = "https://github.com/collectd/collectd/commit/3f575419e7ccb37a3b10ecc82adb2e83ff2826e1.patch";
+      sha256 = "0jwjdlfl0dp7mlbwygp6h0rsbaqfbgfm5z07lr5l26z6hhng2h2y";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config autoreconfHook ];
   buildInputs = [
     libtool
@@ -41,6 +51,10 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.tests = {
+    inherit (nixosTests) collectd;
+  };
+
   meta = with lib; {
     description = "Daemon which collects system performance statistics periodically";
     homepage = "https://collectd.org";
diff --git a/pkgs/tools/system/fcron/default.nix b/pkgs/tools/system/fcron/default.nix
index 9e3b3c2c16d3e..8b54b77e8a2c2 100644
--- a/pkgs/tools/system/fcron/default.nix
+++ b/pkgs/tools/system/fcron/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fcron";
-  version = "3.3.0";
+  version = "3.3.1";
 
   src = fetchurl {
     url = "http://fcron.free.fr/archives/${pname}-${version}.src.tar.gz";
-    sha256 = "0q5b1fdq1rpsd4lj7v717x47pmn62hhm13394g0yxqi614xd7sls";
+    sha256 = "sha256-81naoIpj3ft/4vlkuz9cUiRMJao2+SJaPMVNNvRoEQY=";
   };
 
   buildInputs = [ perl ];
diff --git a/pkgs/tools/system/gdu/default.nix b/pkgs/tools/system/gdu/default.nix
index 730a5d6cd2386..a771e3967c80a 100644
--- a/pkgs/tools/system/gdu/default.nix
+++ b/pkgs/tools/system/gdu/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "gdu";
-  version = "5.10.0";
+  version = "5.12.1";
 
   src = fetchFromGitHub {
     owner = "dundee";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-JXjlK/XTIJeJj8do7JsoZQ8kE+bgy6czXAam/cj7IQo=";
+    sha256 = "sha256-pXHMNyebUkHEZvUWtDkyp5Fqk07GA5sd+254fls8PjU=";
   };
 
   vendorSha256 = "0ls0pw1m6hy203cdkmp9847h2fmvc4hjkv5x2v6r7516cqbs25ac";
diff --git a/pkgs/tools/system/gotop/default.nix b/pkgs/tools/system/gotop/default.nix
index dffbaaa818327..27b24b869cf29 100644
--- a/pkgs/tools/system/gotop/default.nix
+++ b/pkgs/tools/system/gotop/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     changelog = "https://github.com/xxxserxxx/gotop/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = [ maintainers.magnetophon ];
+    broken = stdenv.isDarwin; # needs to update gopsutil to at least v3.21.3 to include https://github.com/shirou/gopsutil/pull/1042
   };
 }
diff --git a/pkgs/tools/system/gptfdisk/default.nix b/pkgs/tools/system/gptfdisk/default.nix
index 0e7aff32bf07d..fc6bf89e44982 100644
--- a/pkgs/tools/system/gptfdisk/default.nix
+++ b/pkgs/tools/system/gptfdisk/default.nix
@@ -11,6 +11,12 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-ldGYVvAE2rxLjDQrJhLo0KnuvdUgBClxiDafFS6dxt8=";
   };
 
+  patches = [
+    # fix build failure against ncurses-6.3 (pending upstream inclusion):
+    #  https://sourceforge.net/p/gptfdisk/mailman/message/37392412/
+    ./ncurses-6.3.patch
+  ];
+
   postPatch = ''
     patchShebangs gdisk_test.sh
   '' + lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/tools/system/gptfdisk/ncurses-6.3.patch b/pkgs/tools/system/gptfdisk/ncurses-6.3.patch
new file mode 100644
index 0000000000000..4b8ec91aa04e3
--- /dev/null
+++ b/pkgs/tools/system/gptfdisk/ncurses-6.3.patch
@@ -0,0 +1,96 @@
+From 9d5032d1487a8fe6ef7229d413418a27e32a28e5 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Mon, 1 Nov 2021 07:51:10 +0000
+Subject: [PATCH:gptfdisk] gptcurses.cc: always use "%s"-style format for printf()-style
+ functions
+
+`ncuses-6.3` added printf-style function attributes and now makes
+it easier to catch cases when user input is used in palce of format
+string when built with CFLAGS=-Werror=format-security:
+
+    gptcurses.cc:274:10: error:
+        format not a string literal and no format arguments [-Werror=format-security]
+      274 |    printw(theLine.c_str());
+          |    ~~~~~~^~~~~~~~~~~~~~~~~
+
+Let's wrap all the missing places with "%s" format.
+---
+ gptcurses.cc | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+--- a/gptcurses.cc
++++ b/gptcurses.cc
+@@ -239,22 +239,22 @@ Space* GPTDataCurses::ShowSpace(int spaceNum, int lineNum) {
+       ClearLine(lineNum);
+       if (space->partNum == -1) { // space is empty
+          move(lineNum, 12);
+-         printw(BytesToIeee((space->lastLBA - space->firstLBA + 1), blockSize).c_str());
++         printw("%s", BytesToIeee((space->lastLBA - space->firstLBA + 1), blockSize).c_str());
+          move(lineNum, 24);
+          printw("free space");
+       } else { // space holds a partition
+          move(lineNum, 3);
+          printw("%d", space->partNum + 1);
+          move(lineNum, 12);
+-         printw(BytesToIeee((space->lastLBA - space->firstLBA + 1), blockSize).c_str());
++         printw("%s", BytesToIeee((space->lastLBA - space->firstLBA + 1), blockSize).c_str());
+          move(lineNum, 24);
+-         printw(space->origPart->GetTypeName().c_str());
++         printw("%s", space->origPart->GetTypeName().c_str());
+          move(lineNum, 50);
+          #ifdef USE_UTF16
+          space->origPart->GetDescription().extract(0, 39, temp, 39);
+-         printw(temp);
++         printw("%s", temp);
+          #else
+-         printw(space->origPart->GetDescription().c_str());
++         printw("%s", space->origPart->GetDescription().c_str());
+          #endif
+       } // if/else
+    } // if
+@@ -271,10 +271,10 @@ int GPTDataCurses::DisplayParts(int selected) {
+ 
+    move(lineNum++, 0);
+    theLine = "Part. #     Size        Partition Type            Partition Name";
+-   printw(theLine.c_str());
++   printw("%s", theLine.c_str());
+    move(lineNum++, 0);
+    theLine = "----------------------------------------------------------------";
+-   printw(theLine.c_str());
++   printw("%s", theLine.c_str());
+    numToShow = LINES - RESERVED_TOP - RESERVED_BOTTOM;
+    pageNum = selected / numToShow;
+    for (i = pageNum * numToShow; i <= (pageNum + 1) * numToShow - 1; i++) {
+@@ -636,7 +636,7 @@ void GPTDataCurses::DisplayOptions(char selectedKey) {
+          } // if/else
+       } // for
+       move(LINES - 1, (COLS - optionDesc.length()) / 2);
+-      printw(optionDesc.c_str());
++      printw("%s", optionDesc.c_str());
+       currentKey = selectedKey;
+    } // if
+ } // GPTDataCurses::DisplayOptions()
+@@ -748,11 +748,11 @@ void GPTDataCurses::DrawMenu(void) {
+ 
+    clear();
+    move(0, (COLS - title.length()) / 2);
+-   printw(title.c_str());
++   printw("%s", title.c_str());
+    move(2, (COLS - drive.length()) / 2);
+-   printw(drive.c_str());
++   printw("%s", drive.c_str());
+    move(3, (COLS - size.str().length()) / 2);
+-   printw(size.str().c_str());
++   printw("%s", size.str().c_str());
+    DisplayParts(currentSpaceNum);
+ } // DrawMenu
+ 
+@@ -802,7 +802,7 @@ void PromptToContinue(void) {
+ void Report(string theText) {
+    clear();
+    move(0, 0);
+-   printw(theText.c_str());
++   printw("%s", theText.c_str());
+    move(LINES - 2, (COLS - 29) / 2);
+    printw("Press any key to continue....");
+    cbreak();
diff --git a/pkgs/tools/system/htop/default.nix b/pkgs/tools/system/htop/default.nix
index 8a3664b854771..26d10d1278da2 100644
--- a/pkgs/tools/system/htop/default.nix
+++ b/pkgs/tools/system/htop/default.nix
@@ -11,13 +11,13 @@ assert systemdSupport -> stdenv.isLinux;
 
 stdenv.mkDerivation rec {
   pname = "htop";
-  version = "3.1.1";
+  version = "3.1.2";
 
   src = fetchFromGitHub {
     owner = "htop-dev";
     repo = pname;
     rev = version;
-    sha256 = "JnpuBa09U086wWp0OtsDnStF4aLjhvtEj371u5XFtqc=";
+    sha256 = "sha256-RKYS8UYZTVKMR/3DG31eqkG4knPRl8WXsZU/XGmGmAg=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/system/htop/htop-vim.nix b/pkgs/tools/system/htop/htop-vim.nix
new file mode 100644
index 0000000000000..05af41ae0ce4e
--- /dev/null
+++ b/pkgs/tools/system/htop/htop-vim.nix
@@ -0,0 +1,22 @@
+{ lib, htop, fetchFromGitHub }:
+
+htop.overrideAttrs (oldAttrs: rec {
+  pname = "htop-vim";
+  version = "unstable-2021-10-11";
+
+  src = fetchFromGitHub {
+    owner = "KoffeinFlummi";
+    repo = pname;
+    rev = "ba6fd3891e9af60b41bd092524cc05f2469fec4b";
+    sha256 = "sha256-G83+5GgEz41begDkdK8zNx48UleufFCJ9pOQ9nbtFNs=";
+  };
+
+  meta = with lib; {
+    description = "An interactive process viewer for Linux, with vim-style keybindings";
+    homepage = "https://github.com/KoffeinFlummi/htop-vim";
+    license = licenses.gpl2Only;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ thiagokokada ];
+    mainProgram = "htop";
+  };
+})
diff --git a/pkgs/tools/system/hwinfo/default.nix b/pkgs/tools/system/hwinfo/default.nix
index bf9e5cd9438bf..815f162fb96b7 100644
--- a/pkgs/tools/system/hwinfo/default.nix
+++ b/pkgs/tools/system/hwinfo/default.nix
@@ -1,16 +1,33 @@
-{ lib, stdenv, fetchFromGitHub, libx86emu, flex, perl, libuuid }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, flex
+, libuuid
+, libx86emu
+, perl
+}:
 
 stdenv.mkDerivation rec {
   pname = "hwinfo";
-  version = "21.76";
+  version = "21.78";
 
   src = fetchFromGitHub {
     owner = "opensuse";
     repo = "hwinfo";
     rev = version;
-    sha256 = "sha256-C0aYEgJC+ITxWcYBLPehNz9J1Y25gS1+UDVc3+7nIKQ=";
+    sha256 = "sha256-uYI7nFwUJwuxAoa6+ZxYcFb3kI2DtxTobgxAetuvemw=";
   };
 
+  nativeBuildInputs = [
+    flex
+  ];
+
+  buildInputs = [
+    libuuid
+    libx86emu
+    perl
+  ];
+
   postPatch = ''
     # VERSION and changelog are usually generated using Git
     # unless HWINFO_VERSION is defined (see Makefile)
@@ -22,13 +39,13 @@ stdenv.mkDerivation rec {
     substituteInPlace hwinfo.pc.in --replace "prefix=/usr" "prefix=$out"
   '';
 
-  nativeBuildInputs = [ flex ];
-  buildInputs = [ libx86emu perl libuuid ];
-
-  makeFlags = [ "LIBDIR=/lib" ];
-  #enableParallelBuilding = true;
+  makeFlags = [
+    "LIBDIR=/lib"
+  ];
 
-  installFlags = [ "DESTDIR=$(out)" ];
+  installFlags = [
+    "DESTDIR=$(out)"
+  ];
 
   meta = with lib; {
     description = "Hardware detection tool from openSUSE";
diff --git a/pkgs/tools/system/ipmiutil/default.nix b/pkgs/tools/system/ipmiutil/default.nix
index a11890dabd6f2..2166a671ab1cc 100644
--- a/pkgs/tools/system/ipmiutil/default.nix
+++ b/pkgs/tools/system/ipmiutil/default.nix
@@ -1,12 +1,11 @@
 { lib, stdenv, fetchurl, openssl }:
 
 stdenv.mkDerivation rec {
-  baseName = "ipmiutil";
+  pname = "ipmiutil";
   version = "3.1.6";
-  name = "${baseName}-${version}";
 
   src = fetchurl {
-    url = "mirror://sourceforge/project/${baseName}/${name}.tar.gz";
+    url = "mirror://sourceforge/project/ipmiutil/pmiutil-${version}.tar.gz";
     sha256 = "0jlfb4firph3hc0854n7cw7yjwlax3wdxn37r2jl0l94dj684548";
   };
 
diff --git a/pkgs/tools/system/localtime/default.nix b/pkgs/tools/system/localtime/default.nix
index 0ad17c6c6595a..943651fa24973 100644
--- a/pkgs/tools/system/localtime/default.nix
+++ b/pkgs/tools/system/localtime/default.nix
@@ -1,38 +1,40 @@
-{ lib, fetchFromGitHub, buildGoPackage, m4 }:
-
-buildGoPackage rec {
+{ buildGoModule
+, fetchFromGitHub
+, geoclue2-with-demo-agent
+, lib
+, m4
+}:
+
+buildGoModule {
   pname = "localtime";
-  version = "unstable-2017-11-07";
+  version = "unstable-2021-11-23";
 
   src = fetchFromGitHub {
     owner = "Stebalien";
     repo = "localtime";
-    rev = "2e7b4317c723406bd75b2a1d640219ab9f8090ce";
-    sha256 = "04fyna8p7q7skzx9fzmncd6gx7x5pwa9jh8a84hpljlvj0kldfs8";
+    rev = "3e5d6cd64444b2164e87cea03448bfb8eefd6ccd";
+    sha256 = "sha256-6uxxPq6abtRqM/R2Fw46ynP9PEkHggTSUymLYlQXQRU=";
   };
 
-  goPackagePath = "github.com/Stebalien/localtime";
-
-  nativeBuildInputs = [ m4 ];
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-    "BINDIR=${placeholder "out"}/bin"
-  ];
+  vendorSha256 = "sha256-sf3sL6aO5jSytT2NtBkA3lhg77RIzbYkSC4fkH+cwwk=";
 
-  buildPhase = ''
-    cd go/src/${goPackagePath}
-    make $makeFlags
+  postPatch = ''
+    demoPath="${geoclue2-with-demo-agent}/libexec/geoclue-2.0/demos/agent"
+    sed -i localtimed.go -e "s#/usr/lib/geoclue-2.0/demos/agent#$demoPath#"
   '';
 
+  nativeBuildInputs = [ m4 ];
+
   installPhase = ''
-    make install $makeFlags
+    runHook preInstall
+    make PREFIX="$out" install
+    runHook postInstall
   '';
 
   meta = with lib; {
     description = "A daemon for keeping the system timezone up-to-date based on the current location";
     homepage = "https://github.com/Stebalien/localtime";
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ lovesegfault ];
     platforms = platforms.linux;
     license = licenses.gpl3;
   };
diff --git a/pkgs/tools/system/lshw/default.nix b/pkgs/tools/system/lshw/default.nix
index 040f065acd72f..25bf79cadddf7 100644
--- a/pkgs/tools/system/lshw/default.nix
+++ b/pkgs/tools/system/lshw/default.nix
@@ -2,14 +2,12 @@
 , withGUI ? false, gtk2, pkg-config, sqlite # compile GUI
 }:
 
-let numVersion = "02.18"; # :(
-in
 stdenv.mkDerivation rec {
-  name = "lshw-${numVersion}b";
-  version = numVersion;
+  pname = "lshw";
+  version = "B.02.18";
 
   src = fetchurl {
-    url = "https://ezix.org/software/files/lshw-B.${version}.tar.gz";
+    url = "https://ezix.org/software/files/lshw-${version}.tar.gz";
     sha256 = "0brwra4jld0d53d7jsgca415ljglmmx1l2iazpj4ndilr48yy8mf";
   };
 
@@ -48,7 +46,7 @@ stdenv.mkDerivation rec {
     homepage = "https://ezix.org/project/wiki/HardwareLiSter";
     description = "Provide detailed information on the hardware configuration of the machine";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ phreedom ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/system/natscli/default.nix b/pkgs/tools/system/natscli/default.nix
index 226528782e5fb..97a690690ac4a 100644
--- a/pkgs/tools/system/natscli/default.nix
+++ b/pkgs/tools/system/natscli/default.nix
@@ -5,12 +5,12 @@
 
 buildGoModule rec {
   pname = "natscli";
-  version = "0.0.26";
+  version = "0.0.28";
 
   src = fetchFromGitHub {
     owner = "nats-io";
     repo = pname;
-    rev = version;
+    rev = "v${version}";
     sha256 = "sha256-w0a2BzfRKf55hFgdaDLsR2YeC5Jqa2uynlRN2oGPX8g=";
   };
 
diff --git a/pkgs/tools/system/openipmi/default.nix b/pkgs/tools/system/openipmi/default.nix
index 06df9afa8139b..7e54a5549b714 100644
--- a/pkgs/tools/system/openipmi/default.nix
+++ b/pkgs/tools/system/openipmi/default.nix
@@ -2,19 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "OpenIPMI";
-  version = "2.0.31";
+  version = "2.0.32";
 
   src = fetchurl {
     url = "mirror://sourceforge/openipmi/OpenIPMI-${version}.tar.gz";
-    sha256 = "05wpkn74nxqp5p6sa2yaf2ajrh8b0gfkb7y4r86lnigz4rvz6lkh";
+    sha256 = "sha256-9tD9TAp0sF+AkHIp0LJw9UyiMpS8wRl5+LjRJ2Z4aUU=";
   };
 
-  patches = [
-    # fix assertion when used as a library in collectd
-    # taken from https://sourceforge.net/p/openipmi/code/ci/d613d279dbce2d5e4594f6fed39653d83af0d99b/
-    ./fix-collectd-assertion.diff
-  ];
-
   buildInputs = [ ncurses popt python3 readline ];
 
   outputs = [ "out" "lib" "dev" "man" ];
diff --git a/pkgs/tools/system/openipmi/fix-collectd-assertion.diff b/pkgs/tools/system/openipmi/fix-collectd-assertion.diff
deleted file mode 100644
index af39fcc056777..0000000000000
--- a/pkgs/tools/system/openipmi/fix-collectd-assertion.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/unix/posix_thread_os_hnd.c
-+++ b/unix/posix_thread_os_hnd.c
-@@ -140,8 +140,6 @@
-     fd_data->data_ready = data_ready;
-     fd_data->handler = handler;
-     fd_data->freed = freed;
--    sel_set_fd_write_handler(posix_sel, fd, SEL_FD_HANDLER_DISABLED);
--    sel_set_fd_except_handler(posix_sel, fd, SEL_FD_HANDLER_DISABLED);
-     rv = sel_set_fd_handlers(posix_sel, fd, fd_data, fd_handler, NULL, NULL,
- 			     free_fd_data);
-     if (rv) {
diff --git a/pkgs/tools/system/plan9port/default.nix b/pkgs/tools/system/plan9port/default.nix
index 88c786e30b6e9..d6c8833618cda 100644
--- a/pkgs/tools/system/plan9port/default.nix
+++ b/pkgs/tools/system/plan9port/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation {
     IOKit
     Metal
     QuartzCore
+    darwin.DarwinTools
   ]);
 
   builder = ./builder.sh;
diff --git a/pkgs/tools/system/rocm-smi/default.nix b/pkgs/tools/system/rocm-smi/default.nix
index 52b75b7a4e9ed..c91f5d818b173 100644
--- a/pkgs/tools/system/rocm-smi/default.nix
+++ b/pkgs/tools/system/rocm-smi/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rocm-smi";
-  version = "4.3.1";
+  version = "4.5.2";
 
   src = fetchFromGitHub {
     owner = "RadeonOpenCompute";
     repo = "rocm_smi_lib";
     rev = "rocm-${version}";
-    hash = "sha256-Ckno73Otkc9rHEUkSgNoOui+6ZHGUF+B9iAoe0NQH0c=";
+    hash = "sha256-zfsNGDAwBD91w0loWxd8AwuZ3kZSPCXMxxQnX6ktOiE=";
   };
 
   nativeBuildInputs = [ cmake wrapPython ];
diff --git a/pkgs/tools/system/rsyslog/default.nix b/pkgs/tools/system/rsyslog/default.nix
index 22c093303afc7..acf56b1558f10 100644
--- a/pkgs/tools/system/rsyslog/default.nix
+++ b/pkgs/tools/system/rsyslog/default.nix
@@ -14,11 +14,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "rsyslog";
-  version = "8.2110.0";
+  version = "8.2112.0";
 
   src = fetchurl {
     url = "https://www.rsyslog.com/files/download/rsyslog/${pname}-${version}.tar.gz";
-    sha256 = "sha256-P5BOwTfKZBLoJz94ltli7LWJ99DFib3xaxcJ7CfiTzE=";
+    sha256 = "sha256-aiqXOGHpJm2ze9K3ufZytrlwv810Ojl7ju5rDcSFLEE=";
   };
 
   #patches = [ ./fix-gnutls-detection.patch ];
diff --git a/pkgs/tools/system/s6-rc/default.nix b/pkgs/tools/system/s6-rc/default.nix
index ab4ea78049421..0144a605e4087 100644
--- a/pkgs/tools/system/s6-rc/default.nix
+++ b/pkgs/tools/system/s6-rc/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "s6-rc";
-  version = "0.5.2.3";
-  sha256 = "1xyaplwzvqnb53mg59a7jklakzwsiqivp6qggsry3sbaw4hf3d5j";
+  version = "0.5.3.0";
+  sha256 = "09rznjlz988fk9pff6mxc3dknwh2mibbawr9g62gcscmscmiv8wk";
 
   description = "A service manager for s6-based systems";
   platforms = lib.platforms.unix;
diff --git a/pkgs/tools/system/s6/default.nix b/pkgs/tools/system/s6/default.nix
index dc64afa6246fc..f1215f9934d7f 100644
--- a/pkgs/tools/system/s6/default.nix
+++ b/pkgs/tools/system/s6/default.nix
@@ -4,8 +4,8 @@ with skawarePackages;
 
 buildPackage {
   pname = "s6";
-  version = "2.11.0.0";
-  sha256 = "1a3lj0xfhn1w3a4ygqsxy8q4dr3n48hnwml4xzdpz3nrikhy8if5";
+  version = "2.11.0.1";
+  sha256 = "02pr4q4cr9wc8i8ad8s6184a6fyndpmpnylgxwhfnkk3hx2j0zxd";
 
   description = "skarnet.org's small & secure supervision software suite";
 
diff --git a/pkgs/tools/system/stress-ng/default.nix b/pkgs/tools/system/stress-ng/default.nix
index 46a1fdfd8d3ef..3fda2ec6a3762 100644
--- a/pkgs/tools/system/stress-ng/default.nix
+++ b/pkgs/tools/system/stress-ng/default.nix
@@ -1,14 +1,16 @@
-{ lib, stdenv, fetchurl
+{ lib, stdenv, fetchFromGitHub
 , attr, judy, keyutils, libaio, libapparmor, libbsd, libcap, libgcrypt, lksctp-tools, zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "stress-ng";
-  version = "0.13.03";
+  version = "0.13.09";
 
-  src = fetchurl {
-    url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-PmDWBeN42GqFkaMNblV77XCdgqWxlhY3gALNj/ADeos=";
+  src = fetchFromGitHub {
+    owner = "ColinIanKing";
+    repo = pname;
+    rev = "V${version}";
+    hash = "sha256-BOOB5fA/Cy1gsRA4j8aj3lVY2y4OvIfoiRqOIY9nZzM=";
   };
 
   postPatch = ''
@@ -62,9 +64,9 @@ stdenv.mkDerivation rec {
       hardware. However, it has never been intended to be used as a precise benchmark
       test suite, so do NOT use it in this manner.
     '';
-    homepage = "https://kernel.ubuntu.com/~cking/stress-ng/";
-    downloadPage = "https://kernel.ubuntu.com/~cking/tarballs/stress-ng/";
-    changelog = "https://kernel.ubuntu.com/git/cking/stress-ng.git/plain/debian/changelog?h=V${version}";
+    homepage = "https://github.com/ColinIanKing/stress-ng";
+    downloadPage = "https://github.com/ColinIanKing/stress-ng/tags";
+    changelog = "https://github.com/ColinIanKing/stress-ng/raw/V${version}/debian/changelog";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ c0bw3b ];
     platforms = platforms.unix;
diff --git a/pkgs/tools/text/crowdin-cli/default.nix b/pkgs/tools/text/crowdin-cli/default.nix
index 72c7eccf1ad92..9b2726443f406 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.7.1";
+  version = "3.7.4";
 
   src = fetchurl {
     url = "https://github.com/crowdin/${pname}/releases/download/${version}/${pname}.zip";
-    sha256 = "sha256-WoDFBV1Nid1y57MIrTFMOB2yqHRUrvhp974Dz5agar0=";
+    sha256 = "sha256-zsd95dkKzuhqtWFwc84tjZ05MnzE25UvfF459gfp+lA=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper unzip ];
diff --git a/pkgs/tools/text/csvdiff/default.nix b/pkgs/tools/text/csvdiff/default.nix
new file mode 100644
index 0000000000000..f85d725d6ca44
--- /dev/null
+++ b/pkgs/tools/text/csvdiff/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "csvdiff";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "aswinkarthik";
+    repo = "csvdiff";
+    rev = "v${version}";
+    sha256 = "0cd1ikxsypjqisfnmr7zix3g7x8p892w77086465chyd39gpk97b";
+  };
+
+  vendorSha256 = "1612s4kc0r8zw5y2n6agwdx9kwhxkdrjzagn4g22lzmjq02a64xf";
+
+  meta = with lib; {
+    homepage = "https://aswinkarthik.github.io/csvdiff/";
+    description = "A fast diff tool for comparing csv files";
+    license = licenses.mit;
+    maintainers = with maintainers; [ turion ];
+  };
+}
diff --git a/pkgs/tools/text/csview/default.nix b/pkgs/tools/text/csview/default.nix
index 60186a6b3b750..58d1fe2a7a68f 100644
--- a/pkgs/tools/text/csview/default.nix
+++ b/pkgs/tools/text/csview/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "csview";
-  version = "0.3.8";
+  version = "0.3.10";
 
   src = fetchFromGitHub {
     owner = "wfxr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "18bz12yn85h9vj0b18iaziix9km2iwh8gwfs93fddjv6kg87p38q";
+    sha256 = "sha256-ezN/hU8SdC/ox+l1KJQixzFwGvfmg3zfUjf/bAtnYRU=";
   };
 
-  cargoSha256 = "1my6gl8zq5k7clzapgbf1mmcgq8mmdbhl250rdd1fvfd59wkrwra";
+  cargoSha256 = "sha256-gEiZIwISlazkBwQPFaIWM6dViumc55no8RQ8E30JfUo=";
 
   meta = with lib; {
     description = "A high performance csv viewer with cjk/emoji support";
diff --git a/pkgs/tools/text/dcs/default.nix b/pkgs/tools/text/dcs/default.nix
index 511931f03808a..e33c1b44cdf23 100644
--- a/pkgs/tools/text/dcs/default.nix
+++ b/pkgs/tools/text/dcs/default.nix
@@ -41,6 +41,7 @@ buildGoModule {
     homepage = "https://github.com/Debian/dcs";
     license = licenses.bsd3;
     maintainers = teams.determinatesystems.members;
-    broken = stdenv.isAarch64;
+    broken = stdenv.isAarch64
+      || stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/dcs.x86_64-darwin
   };
 }
diff --git a/pkgs/tools/text/difftastic/default.nix b/pkgs/tools/text/difftastic/default.nix
index f8ceec253a63f..ee86bcd635e3e 100644
--- a/pkgs/tools/text/difftastic/default.nix
+++ b/pkgs/tools/text/difftastic/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "difftastic";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "wilfred";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Arg1n5WFCNGHZay56BvLrPDAvvUKVurVNEKgTzHgIzI=";
+    sha256 = "sha256-A6Z3g6fbYBynyN4OhRrZNO0ZghvT3XnIahdUQ8SE8tU=";
   };
 
-  cargoSha256 = "sha256-ArIyIAxVgGmI+MdkVBo0xihDdw3RlRiPLJOhPcC1KLw=";
+  cargoSha256 = "sha256-6/JwrPymtpj/CXqx3Pe43v+MJTNONArU2WEo/zgJhT4=";
 
   postPatch = ''
     pushd vendor
@@ -30,5 +30,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Wilfred/difftastic/raw/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ ethancedwards8 figsoda ];
+    mainProgram = "difft";
   };
 }
diff --git a/pkgs/tools/text/fanficfare/default.nix b/pkgs/tools/text/fanficfare/default.nix
index 5fb70f63dc31d..dec0a1949225b 100644
--- a/pkgs/tools/text/fanficfare/default.nix
+++ b/pkgs/tools/text/fanficfare/default.nix
@@ -2,18 +2,20 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "FanFicFare";
-  version = "3.21.0";
+  version = "4.8.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "16hklfbww6ibmjr32gg98nlnzl4dwanz6lm3fzg2x3vd7d54m92c";
+    sha256 = "0h20cw9z6k3z42fhl48pfxcqrk3i45zp4f4xm6pz7jqjzi17h9fk";
   };
 
   propagatedBuildInputs = with python3Packages; [
     beautifulsoup4
     chardet
+    cloudscraper
     html5lib
     html2text
+    requests-file
   ];
 
   doCheck = false; # no tests exist
diff --git a/pkgs/tools/text/gawk/default.nix b/pkgs/tools/text/gawk/default.nix
index 3eb9ed3000c2b..d66d3763c0360 100644
--- a/pkgs/tools/text/gawk/default.nix
+++ b/pkgs/tools/text/gawk/default.nix
@@ -17,11 +17,11 @@ assert (doCheck && stdenv.isLinux) -> glibcLocales != null;
 
 stdenv.mkDerivation rec {
   pname = "gawk";
-  version = "5.1.0";
+  version = "5.1.1";
 
   src = fetchurl {
     url = "mirror://gnu/gawk/gawk-${version}.tar.xz";
-    sha256 = "1gc2cccqy1x1bf6rhwlmd8q7dz7gnam6nwgl38bxapv6qm5flpyg";
+    sha256 = "18kybw47fb1sdagav7aj95r9pp09r5gm202y3ahvwjw9dqw2jxnq";
   };
 
   # When we do build separate interactive version, it makes sense to always include man.
diff --git a/pkgs/tools/text/grin/default.nix b/pkgs/tools/text/grin/default.nix
index 5d89619001b42..ffa80baf6eac1 100644
--- a/pkgs/tools/text/grin/default.nix
+++ b/pkgs/tools/text/grin/default.nix
@@ -1,22 +1,21 @@
-{ lib, fetchFromGitHub, python2Packages }:
+{ lib, fetchFromGitHub, python3Packages }:
 
-python2Packages.buildPythonApplication rec {
-  program = "grin";
-  version = "1.2.1";
-  name = "${program}-${version}";
+python3Packages.buildPythonApplication rec {
+  pname = "grin";
+  version = "1.3.0";
   namePrefix = "";
 
   src = fetchFromGitHub {
-    owner = "rkern";
-    repo = program;
-    rev = "8dd4b5309b3bc04fe9d3e71836420f7d8d4a293f";
-    sha256 = "0vz2aahwdcy1296g4w3i79dkvmzk9jc2n2zmlcvlg5m3s6h7b6jd";
+    owner = "matthew-brett";
+    repo = pname;
+    rev = "1.3.0";
+    sha256 = "057d05vzx4sf415vnh3qj2g351xhb3illjxjs9mdl3nsnb5r84kv";
   };
 
-  buildInputs = with python2Packages; [ nose ];
+  buildInputs = with python3Packages; [ nose ];
 
   meta = {
-    homepage = "https://github.com/rkern/grin";
+    homepage = "https://github.com/matthew-brett/grin";
     description = "A grep program configured the way I like it";
     platforms = lib.platforms.all;
     maintainers = [ lib.maintainers.sjagoe ];
diff --git a/pkgs/tools/text/groff/default.nix b/pkgs/tools/text/groff/default.nix
index 5b158f2cbb0ee..cb57fb2bb07f1 100644
--- a/pkgs/tools/text/groff/default.nix
+++ b/pkgs/tools/text/groff/default.nix
@@ -55,10 +55,10 @@ stdenv.mkDerivation rec {
   # have to pass "--with-appresdir", too.
   configureFlags = [
     "--without-x"
+    "ac_cv_path_PERL=${buildPackages.perl}/bin/perl"
   ] ++ lib.optionals (ghostscript != null) [
     "--with-gs=${ghostscript}/bin/gs"
   ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
-    "ac_cv_path_PERL=${buildPackages.perl}/bin/perl"
     "gl_cv_func_signbit=yes"
   ];
 
@@ -106,7 +106,6 @@ stdenv.mkDerivation rec {
     substituteInPlace $perl/bin/grog \
       --replace $out/lib/groff/grog $perl/lib/groff/grog
 
-  '' + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
     find $perl/ -type f -print0 | xargs --null sed -i 's|${buildPackages.perl}|${perl}|'
   '';
 
diff --git a/pkgs/tools/text/hck/default.nix b/pkgs/tools/text/hck/default.nix
index 88ad2308913aa..ebb66a07a8bf5 100644
--- a/pkgs/tools/text/hck/default.nix
+++ b/pkgs/tools/text/hck/default.nix
@@ -9,21 +9,30 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hck";
-  version = "0.6.7";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "sstadick";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-m4YVz3kh4nOkdf6PbbyxjKacUVKdFQet76CMrFYMRHI=";
+    sha256 = "sha256-6PXhFOXWplj7yEyn7hOQSPS2YDGc1nxTs6wRseRvEVk=";
   };
 
-  cargoSha256 = "sha256-4z1kHSev+5+0wpYFEGvvafB50Wz1wr6zObCjvHR9FPU=";
+  cargoSha256 = "sha256-VAtvc8K4282twB1MRY72+dCky3JmrTRjOPx1Ft7Oqt8=";
 
   nativeBuildInputs = [ cmake ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreFoundation Security ];
 
+  # link System as a dylib instead of a framework on macos
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    core_affinity=../$(stripHash $cargoDeps)/core_affinity
+    oldHash=$(sha256sum $core_affinity/src/lib.rs | cut -d " " -f 1)
+    substituteInPlace $core_affinity/src/lib.rs --replace framework dylib
+    substituteInPlace $core_affinity/.cargo-checksum.json \
+      --replace $oldHash $(sha256sum $core_affinity/src/lib.rs | cut -d " " -f 1)
+  '';
+
   meta = with lib; {
     description = "A close to drop in replacement for cut that can use a regex delimiter instead of a fixed string";
     homepage = "https://github.com/sstadick/hck";
diff --git a/pkgs/tools/text/hyx/default.nix b/pkgs/tools/text/hyx/default.nix
index c287b37dd1b57..28b4765ede4a7 100644
--- a/pkgs/tools/text/hyx/default.nix
+++ b/pkgs/tools/text/hyx/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "hyx";
-  version = "2020-06-09";
+  version = "2021.06.09";
 
   src = fetchurl {
     url = "https://yx7.cc/code/hyx/hyx-${lib.replaceStrings [ "-" ] [ "." ] version}.tar.xz";
-    sha256 = "1x8dmll93hrnj24kn5knpwj36y6r1v2ygwynpjwrg2hwd4c1a8hi";
+    sha256 = "sha256-jU8U5YWE1syPBOQ8o4BC7tIYiCo4kknCCwhnMCVtpes=";
   };
 
   postPatch = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/tools/text/mark/default.nix b/pkgs/tools/text/mark/default.nix
index 229be7448c529..a0abd672559eb 100644
--- a/pkgs/tools/text/mark/default.nix
+++ b/pkgs/tools/text/mark/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "mark";
-  version = "6.4";
+  version = "6.5.1";
 
   src = fetchFromGitHub {
     owner  = "kovetskiy";
     repo   = "mark";
     rev    = version;
-    sha256 = "sha256-Ti7qxNb+7S67bXdvEWPyi/v/OAsAI4pd41dlF7GFjjo=";
+    sha256 = "sha256-NTe7J08Lu4uVI/mLj4m87n1BZXiUPDvi5OtjJfddJw8=";
   };
 
-  vendorSha256 = "sha256-y3Q8UebNbLy1jmxUC37mv+2l8dCU3b/Fk8XHn5u57p0=";
+  vendorSha256 = "sha256-Yp47FBS8JN/idBfZG0z0f2A1bzob8KTPtZ7u0cNCrM8=";
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" ];
 
diff --git a/pkgs/tools/text/mdbook-graphviz/default.nix b/pkgs/tools/text/mdbook-graphviz/default.nix
index d8412605dcbe5..d61daf262d9c1 100644
--- a/pkgs/tools/text/mdbook-graphviz/default.nix
+++ b/pkgs/tools/text/mdbook-graphviz/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-graphviz";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "dylanowen";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wIgWaCjJrrajvUZbJjpx9P4urN2/eVo3+Za2NjTKWvM=";
+    sha256 = "sha256-yY8ZdRNP0G9dwrwUtNZIaodIlEK4GRgZQ5D1GpLhDGg=";
   };
 
-  cargoSha256 = "sha256-F8JuEk0ztB7jfcPNjU9vGsr3HLEJ2DmWGWxvdbLuyvQ=";
+  cargoSha256 = "sha256-d8/xa2Aq6g0Kvqq11kzVTp1oooN6dPowpKW0uenBevw=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
diff --git a/pkgs/tools/text/mdbook-plantuml/default.nix b/pkgs/tools/text/mdbook-plantuml/default.nix
new file mode 100644
index 0000000000000..0b26bee09538d
--- /dev/null
+++ b/pkgs/tools/text/mdbook-plantuml/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub, stdenv, rustPlatform, darwin, pkg-config, openssl
+, libiconv, CoreServices }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "mdbook-plantuml";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "sytsereitsma";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1m53sp3k387injn6mwk2c6rkzw16b12m4j7q0p69fdb3fiqbkign";
+  };
+
+  cargoSha256 = "0xi14k86ym3rfz6901lmj444y814m7vp90bwsyjmcph3hdv6mjp0";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [ CoreServices ];
+
+  meta = with lib; {
+    description = "mdBook preprocessor to render PlantUML diagrams to png images in the book output directory";
+    homepage = "https://github.com/sytsereitsma/mdbook-plantuml";
+    license = [ licenses.mit ];
+    maintainers = with maintainers; [ jcouyang ];
+  };
+}
diff --git a/pkgs/tools/text/mdcat/default.nix b/pkgs/tools/text/mdcat/default.nix
index ceea698080220..6cdd90f2be3d3 100644
--- a/pkgs/tools/text/mdcat/default.nix
+++ b/pkgs/tools/text/mdcat/default.nix
@@ -12,20 +12,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdcat";
-  version = "0.24.1";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "lunaryorn";
     repo = pname;
     rev = "mdcat-${version}";
-    sha256 = "sha256-fAbiPzyPaHy0KQb/twCovjgqIRzib7JZslb9FdVlQEg=";
+    sha256 = "sha256-wrtvVFOSqpNBWLRGPL+08WBS4ltQyZwRE3/dqqT6IXg=";
   };
 
   nativeBuildInputs = [ pkg-config asciidoctor installShellFiles ];
   buildInputs = [ openssl ]
     ++ lib.optional stdenv.isDarwin Security;
 
-  cargoSha256 = "sha256-UgCFlzihBvZywDNir/92lub9R6yYPJSK8S4mlMk2sMk=";
+  cargoSha256 = "sha256-9I6/lt5VXfZp2/W6EoXtagcNj2kfxB5ZT2GkWgsUyM8=";
 
   checkInputs = [ ansi2html ];
   # Skip tests that use the network and that include files.
diff --git a/pkgs/tools/text/mecab/default.nix b/pkgs/tools/text/mecab/default.nix
index c579dcb8a175b..04293d29efb27 100644
--- a/pkgs/tools/text/mecab/default.nix
+++ b/pkgs/tools/text/mecab/default.nix
@@ -4,7 +4,8 @@ let
   mecab-base = import ./base.nix { inherit fetchurl; };
 in
 stdenv.mkDerivation (mecab-base // {
-    name = "mecab-${mecab-base.version}";
+    pname = "mecab";
+    version = mecab-base.version;
 
     postInstall = ''
       sed -i 's|^dicdir = .*$|dicdir = ${mecab-ipadic}|' "$out/etc/mecabrc"
diff --git a/pkgs/tools/text/mecab/nodic.nix b/pkgs/tools/text/mecab/nodic.nix
index 1cbc31be4ee17..be9003623e05e 100644
--- a/pkgs/tools/text/mecab/nodic.nix
+++ b/pkgs/tools/text/mecab/nodic.nix
@@ -4,5 +4,6 @@ let
   mecab-base = import ./base.nix { inherit fetchurl; };
 in
 stdenv.mkDerivation (mecab-base // {
-    name = "mecab-nodic-${mecab-base.version}";
+    pname = "mecab-nodic";
+    version = mecab-base.version;
 })
diff --git a/pkgs/tools/text/miller/default.nix b/pkgs/tools/text/miller/default.nix
index 670c0612b3914..f64f195db9511 100644
--- a/pkgs/tools/text/miller/default.nix
+++ b/pkgs/tools/text/miller/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "miller";
 
-  version = "5.10.2";
+  version = "5.10.3";
 
   src = fetchFromGitHub {
     owner = "johnkerl";
     repo = "miller";
     rev = "v${version}";
-    sha256 = "sha256-NI57U3FpUfQ6ouBEYrzzG+9kpL58BD4HoAuRAFJMO9k=";
+    sha256 = "sha256-Mag7bIfZNdp+sM54yKp8HdH3kWjwWRfyPBGthej2jd8=";
   };
 
   nativeBuildInputs = [ autoreconfHook flex libtool ];
diff --git a/pkgs/tools/text/morsel/default.nix b/pkgs/tools/text/morsel/default.nix
new file mode 100644
index 0000000000000..3968eb2cc4a29
--- /dev/null
+++ b/pkgs/tools/text/morsel/default.nix
@@ -0,0 +1,22 @@
+{ lib, stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "morsel";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "SamLee514";
+    repo = "morsel";
+    rev = "v${version}";
+    sha256 = "sha256-m4bCni/9rMTPhZSogpd5+ARrW11TPHSvQpdz3wUr9H4=";
+  };
+
+  cargoSha256 = "sha256-2xR2/013ocDKWS1oWitpAbSDPRwEJJqFcCIm6ZQpCoc=";
+
+  meta = with lib; {
+    description = "Command line tool to translate morse code input to text in real time";
+    homepage = "https://github.com/SamLee514/morsel";
+    license = licenses.mit;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/pkgs/tools/text/opencc/default.nix b/pkgs/tools/text/opencc/default.nix
index f99062de41310..cbb055323a68a 100644
--- a/pkgs/tools/text/opencc/default.nix
+++ b/pkgs/tools/text/opencc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "opencc";
-  version = "1.1.2";
+  version = "1.1.3";
 
   src = fetchFromGitHub {
     owner = "BYVoid";
     repo = "OpenCC";
     rev = "ver.${version}";
-    sha256 = "1a15p9idznh23b44r7rw2zjnirbxjs5pyq3k6xkz0k64cdh2zq6h";
+    sha256 = "sha256-q/y4tRov/BYCAiE4i7fT6ysTerxxOHMZUWT2Jlo/0rI=";
   };
 
   nativeBuildInputs = [ cmake python ];
diff --git a/pkgs/tools/text/papertrail/default.nix b/pkgs/tools/text/papertrail/default.nix
index c3d005a97e08d..afc9d2d89e7a6 100644
--- a/pkgs/tools/text/papertrail/default.nix
+++ b/pkgs/tools/text/papertrail/default.nix
@@ -9,7 +9,8 @@ let
     gemset = ./gemset.nix;
   };
 in stdenv.mkDerivation {
-  name = "papertrail-${(import ./gemset.nix).papertrail.version}";
+  pname = "papertrail";
+  version = (import ./gemset.nix).papertrail.version;
 
   dontUnpack = true;
 
diff --git a/pkgs/tools/text/poedit/default.nix b/pkgs/tools/text/poedit/default.nix
index 4c45e5dbeea93..fcb2a7019acad 100644
--- a/pkgs/tools/text/poedit/default.nix
+++ b/pkgs/tools/text/poedit/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "poedit";
-  version = "3.0";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     owner = "vslavik";
     repo = "poedit";
     rev = "v${version}-oss";
-    sha256 = "0bxhyxsa641ip6wab9ms9g4w6mb1bv46y5h5b436spl5c70rcn4z";
+    sha256 = "sha256-PBAOCAO3OrBE7lOho7nJNEpqwds7XiblN/f+GonrXHA=";
   };
 
   nativeBuildInputs = [ autoconf automake asciidoc wrapGAppsHook
diff --git a/pkgs/tools/text/popfile/default.nix b/pkgs/tools/text/popfile/default.nix
index 7cfb2d2d6a4bc..7dec478a63423 100644
--- a/pkgs/tools/text/popfile/default.nix
+++ b/pkgs/tools/text/popfile/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "An email classification system that automatically sorts messages and fights spam";
-    homepage = "http://getpopfile.org";
+    homepage = "https://getpopfile.org/";
     license = lib.licenses.gpl2;
 
     # Should work on macOS, but havent tested it.
diff --git a/pkgs/tools/text/replace/default.nix b/pkgs/tools/text/replace/default.nix
index a0873d1c8d2b7..058c2ba3daa54 100644
--- a/pkgs/tools/text/replace/default.nix
+++ b/pkgs/tools/text/replace/default.nix
@@ -11,7 +11,11 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "man" ];
 
-  makeFlags = [ "TREE=\$(out)" "MANTREE=\$(TREE)/share/man" ];
+  makeFlags = [
+    "TREE=\$(out)"
+    "MANTREE=\$(TREE)/share/man"
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
 
   preBuild = ''
     sed -e "s@/bin/mv@$(type -P mv)@" -i replace.h
diff --git a/pkgs/tools/text/sgml/jade/default.nix b/pkgs/tools/text/sgml/jade/default.nix
index c599375bc1cc6..8aeaaaa424940 100644
--- a/pkgs/tools/text/sgml/jade/default.nix
+++ b/pkgs/tools/text/sgml/jade/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, gnum4 }:
 
 stdenv.mkDerivation rec {
-  name = "jade-${version}-${debpatch}";
+  pname = "jade";
   version = "1.2.1";
   debpatch = "47.3";
 
@@ -21,6 +21,11 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = "-Wno-deprecated";
 
+  # Makefile is missing intra-library depends, fails build as:
+  # ld: cannot find -lsp
+  # ld: cannot find -lspgrove
+  enableParallelBuilding = false;
+
   preInstall = ''
     install -d -m755 "$out"/lib
   '';
diff --git a/pkgs/tools/text/sgml/opensp/default.nix b/pkgs/tools/text/sgml/opensp/default.nix
index 6924c8953eef0..d55afbc5dd9b5 100644
--- a/pkgs/tools/text/sgml/opensp/default.nix
+++ b/pkgs/tools/text/sgml/opensp/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv, fetchurl, fetchpatch, xmlto, docbook_xml_dtd_412
-, libxslt, docbook_xsl, autoconf, automake, gettext, libiconv, libtool}:
+, libxslt, docbook_xsl, autoconf, automake, gettext, libiconv, libtool
+}:
 
 stdenv.mkDerivation rec {
   pname = "opensp";
@@ -30,19 +31,25 @@ stdenv.mkDerivation rec {
     sed -i -e 's/name="idm.*"//g' $out/share/doc/OpenSP/releasenotes.html
     '';
 
-  preConfigure = if stdenv.isCygwin then "autoreconf -fi" else null;
+  preConfigure = lib.optionalString stdenv.isCygwin ''
+    autoreconf -fi
+  '';
 
-  # need autoconf, automake, gettext, and libtool for reconfigure
-  nativeBuildInputs = lib.optionals stdenv.isCygwin [ autoconf automake libtool ];
+  strictDeps = true;
 
-  buildInputs = [ xmlto docbook_xml_dtd_412 libxslt docbook_xsl gettext libiconv ];
+  nativeBuildInputs = [
+    xmlto
+    docbook_xml_dtd_412
+    docbook_xsl
+  ] ++ lib.optionals stdenv.isCygwin [ autoconf automake libtool ];
 
   doCheck = false; # fails
 
-  meta = {
+  meta = with lib; {
     description = "A suite of SGML/XML processing tools";
-    license = lib.licenses.mit;
+    license = licenses.mit;
     homepage = "http://openjade.sourceforge.net/";
-    platforms = lib.platforms.unix;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/tools/text/shfmt/default.nix b/pkgs/tools/text/shfmt/default.nix
index faf813fb905bc..5309ee01b9ac9 100644
--- a/pkgs/tools/text/shfmt/default.nix
+++ b/pkgs/tools/text/shfmt/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "shfmt";
-  version = "3.4.0";
+  version = "3.4.2";
 
   src = fetchFromGitHub {
     owner = "mvdan";
     repo = "sh";
     rev = "v${version}";
-    sha256 = "sha256-Bxb4BlvAmJQhog3bZEGHJlrpXNqXpokkipBszPzRHSk=";
+    sha256 = "sha256-xJlOEjGhxpfH3w+RvjXKjXoWPzQ6JkpldxLuKMkVvq0=";
   };
 
   vendorSha256 = "sha256-ZYsQ+wE+G7xNrBN29npSxxPCz9+Wb/RsBzM5uwJkhO8=";
diff --git a/pkgs/tools/text/smu/default.nix b/pkgs/tools/text/smu/default.nix
index 854e70c7622b8..02a29a91f47d9 100644
--- a/pkgs/tools/text/smu/default.nix
+++ b/pkgs/tools/text/smu/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  name = "smu";
+  pname = "smu";
   version = "1.5";
 
   src = fetchFromGitHub {
diff --git a/pkgs/tools/text/source-highlight/default.nix b/pkgs/tools/text/source-highlight/default.nix
index 4a7b588cd9d43..289740854f2e9 100644
--- a/pkgs/tools/text/source-highlight/default.nix
+++ b/pkgs/tools/text/source-highlight/default.nix
@@ -18,6 +18,13 @@ stdenv.mkDerivation rec {
       sha256 = "1wnj0jmkmrwjww7qk9dvfxh8h06jdn7mi8v2fvwh95b6x87z5l47";
       excludes = [ "ChangeLog" ];
     })
+
+    # Upstream fix for clang-13 and gcc-12 test support
+    (fetchpatch {
+      name = "gcc-12.patch";
+      url = "http://git.savannah.gnu.org/cgit/src-highlite.git/patch/?id=ab9fe5cb9b85c5afab94f2a7f4b6d7d473c14ee9";
+      sha256 = "1v33zd2766k7cdgmajw2lffw9wd7v4f8z01f40z53f6bp608nr62";
+    })
   ];
 
   # source-highlight uses it's own binary to generate documentation.
@@ -35,7 +42,7 @@ stdenv.mkDerivation rec {
     "--with-bash-completion=${placeholder "out"}/share/bash_completion.d"
   ];
 
-  doCheck = !stdenv.cc.isClang;
+  doCheck = true;
 
   enableParallelBuilding = true;
   # Upstream uses the same intermediate files in multiple tests, running
diff --git a/pkgs/tools/text/transifex-client/default.nix b/pkgs/tools/text/transifex-client/default.nix
index f1b2928c79412..1174c2f382e36 100644
--- a/pkgs/tools/text/transifex-client/default.nix
+++ b/pkgs/tools/text/transifex-client/default.nix
@@ -3,7 +3,7 @@
 
 buildPythonApplication rec {
   pname = "transifex-client";
-  version = "0.14.3";
+  version = "0.14.4";
 
   propagatedBuildInputs = [
     urllib3 requests python-slugify six setuptools GitPython
@@ -11,7 +11,7 @@ buildPythonApplication rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-sKol67lRaYPFa7Bg9KNa1rDrNoT9DtUd48NY8jqK1iw=";
+    sha256 = "11dc95cefe90ebf0cef3749c8c7d85b9d389c05bd0e3389bf117685df562bd5c";
   };
 
   # https://github.com/transifex/transifex-client/issues/323
diff --git a/pkgs/tools/text/ugrep/default.nix b/pkgs/tools/text/ugrep/default.nix
index 8ea5833464289..38e534932a440 100644
--- a/pkgs/tools/text/ugrep/default.nix
+++ b/pkgs/tools/text/ugrep/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ugrep";
-  version = "3.3.8";
+  version = "3.4.0";
 
   src = fetchFromGitHub {
     owner = "Genivia";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-xVkInB2QmZjdcwzXQtmqKhuOjtkVDfY4fDB/wIqA3Jc=";
+    sha256 = "sha256-G9MM5dIc1B8tggCQKIk+f39cv/Xb0rTLOqDYEsHwI4A=";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/text/vale/default.nix b/pkgs/tools/text/vale/default.nix
index fc350162845a6..7b4cde33f5d1e 100644
--- a/pkgs/tools/text/vale/default.nix
+++ b/pkgs/tools/text/vale/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "vale";
-  version = "2.11.2";
+  version = "2.13.0";
 
   subPackages = [ "cmd/vale" ];
   outputs = [ "out" "data" ];
@@ -11,10 +11,10 @@ buildGoModule rec {
     owner = "errata-ai";
     repo = "vale";
     rev = "v${version}";
-    sha256 = "1g8k9723d1xmx918f60lpla52ly90rz6z0ffzwsb2rh62r3h80h5";
+    sha256 = "sha256-I1hrmlNZUDhjWTsOzmp8xIc8rv2gTGRx2/yiAmCy9IY=";
   };
 
-  vendorSha256 = "0czxigagjbqdzzgmh1iw3q0d4sj6635384lnn1w5smws8nsqr9ia";
+  vendorSha256 = "sha256-tZarz6xwZo9IFfKB9qGxqezYaFrPyQp3wcug5jGaElY=";
 
   postInstall = ''
     mkdir -p $data/share/vale
diff --git a/pkgs/tools/text/vgrep/default.nix b/pkgs/tools/text/vgrep/default.nix
index 1269d1a66c16f..928f401c38390 100644
--- a/pkgs/tools/text/vgrep/default.nix
+++ b/pkgs/tools/text/vgrep/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "vgrep";
-  version = "2.5.3";
+  version = "2.5.5";
 
   src = fetchFromGitHub {
     owner = "vrothberg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-AFjVgFWNhRt8co2eeSGRutNA9peb3xd5sOW0QMSPufw=";
+    sha256 = "sha256-pWRc1EjL09zFT/8HLrosuCJ5qTDj2VaizoI/Eu8jsgM=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/tools/text/xml/jing-trang/default.nix b/pkgs/tools/text/xml/jing-trang/default.nix
index 542a4709efebd..02f745575adb9 100644
--- a/pkgs/tools/text/xml/jing-trang/default.nix
+++ b/pkgs/tools/text/xml/jing-trang/default.nix
@@ -1,20 +1,25 @@
 { lib, stdenv, fetchFromGitHub, jre_headless, jdk, ant, saxon }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "jing-trang";
-  version = "20151127";
+  version = "20181222";
 
   src = fetchFromGitHub {
     owner = "relaxng";
     repo = "jing-trang";
-    rev = "47a0cbdaec2d48824b78a1c19879ac7875509598"; # needed to compile with jdk8
-    sha256 = "1hhn52z9mv1x9nyvyqnmzg5yrs2lzm9xac7i15izppv02wp32qha";
+    rev = "V${version}";
+    sha256 = "sha256-Krupa3MGk5UaaQsaNpPMZuIUzHJytDiksz9ysCPkFS4=";
+    fetchSubmodules = true;
   };
 
   buildInputs = [ jdk ant saxon ];
 
   CLASSPATH = "lib/saxon.jar";
 
+  patches = [
+    ./no-git-during-build.patch
+  ];
+
   preBuild = "ant";
 
   installPhase = ''
@@ -32,6 +37,9 @@ stdenv.mkDerivation {
     chmod +x "$out"/bin/*
   '';
 
+  doCheck = true;
+  checkPhase = "ant test";
+
   meta = with lib; {
     description = "A RELAX NG validator in Java";
     # The homepage is www.thaiopensource.com, but it links to googlecode.com
diff --git a/pkgs/tools/text/xml/jing-trang/no-git-during-build.patch b/pkgs/tools/text/xml/jing-trang/no-git-during-build.patch
new file mode 100644
index 0000000000000..3fc9b3f6ef53c
--- /dev/null
+++ b/pkgs/tools/text/xml/jing-trang/no-git-during-build.patch
@@ -0,0 +1,47 @@
+From db0ed6267f1a85f0785c81b8ee396f74795c77c0 Mon Sep 17 00:00:00 2001
+From: Thomas Gerbet <thomas@gerbet.me>
+Date: Sat, 27 Nov 2021 10:24:07 +0100
+Subject: [PATCH] Do not rely on Git during the build
+
+---
+ build.xml | 6 ------
+ build.xsl | 6 ------
+ 2 files changed, 12 deletions(-)
+
+diff --git a/build.xml b/build.xml
+index e8ebaed8..2d26c72f 100644
+--- a/build.xml
++++ b/build.xml
+@@ -431,12 +431,6 @@
+ <target name="clean" 
+ 	description="Remove almost all files created during the build process">
+   <delete dir="${build.dir}"/>
+-  <exec executable="git">
+-    <arg value="clean"/>
+-    <arg value="-d"/>
+-    <arg value="--force"/>
+-    <arg value="${doc.dir}"/>
+-  </exec>
+ </target>
+ 
+ <target name="realclean" depends="clean"
+diff --git a/build.xsl b/build.xsl
+index fb9f3fef..fa384a27 100644
+--- a/build.xsl
++++ b/build.xsl
+@@ -23,12 +23,6 @@
+     <target name="dummy"/>
+     <target name="init">
+       <mkdir dir="{$build}"/>
+-      <exec executable="git">
+-        <arg value="submodule"/>
+-        <arg value="update"/>
+-        <arg value="--init"/>
+-        <arg value="--recursive"/>
+-      </exec>
+       <copy todir="{$doc}">
+         <fileset dir="relaxng.org/jclark" includes="**"/>
+       </copy>
+-- 
+2.34.1
+
diff --git a/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile b/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile
new file mode 100644
index 0000000000000..feb1437d6d400
--- /dev/null
+++ b/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile
@@ -0,0 +1,11 @@
+source 'https://rubygems.org'
+gem 'asciidoctor'
+gem 'asciidoctor-diagram'
+gem 'asciidoctor-pdf'
+gem 'asciidoctor-epub3'
+gem 'asciidoctor-mathematical'
+gem 'asciidoctor-bibtex'
+gem 'asciidoctor-revealjs'
+gem 'coderay'
+gem 'pygments.rb'
+gem 'rouge'
diff --git a/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock b/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock
new file mode 100644
index 0000000000000..14829ed7b0a64
--- /dev/null
+++ b/pkgs/tools/typesetting/asciidoctor-with-extensions/Gemfile.lock
@@ -0,0 +1,131 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    Ascii85 (1.1.0)
+    addressable (2.8.0)
+      public_suffix (>= 2.0.2, < 5.0)
+    afm (0.2.2)
+    asciidoctor (2.0.16)
+    asciidoctor-bibtex (0.8.0)
+      asciidoctor (~> 2.0)
+      bibtex-ruby (~> 5.1)
+      citeproc-ruby (~> 1)
+      csl-styles (~> 1)
+      latex-decode (~> 0.2)
+    asciidoctor-diagram (2.2.1)
+      asciidoctor (>= 1.5.7, < 3.x)
+      asciidoctor-diagram-ditaamini (~> 1.0)
+      asciidoctor-diagram-plantuml (~> 1.2021)
+      rexml
+    asciidoctor-diagram-ditaamini (1.0.1)
+    asciidoctor-diagram-plantuml (1.2021.8)
+    asciidoctor-epub3 (1.5.1)
+      asciidoctor (>= 1.5.6, < 3.0.0)
+      gepub (~> 1.0.0)
+      mime-types (~> 3.0)
+    asciidoctor-mathematical (0.3.5)
+      asciidoctor (~> 2.0)
+      asciimath (~> 2.0)
+      mathematical (~> 1.6.0)
+    asciidoctor-pdf (1.6.1)
+      asciidoctor (~> 2.0)
+      concurrent-ruby (~> 1.1)
+      prawn (~> 2.4.0)
+      prawn-icon (~> 3.0.0)
+      prawn-svg (~> 0.32.0)
+      prawn-table (~> 0.2.0)
+      prawn-templates (~> 0.1.0)
+      safe_yaml (~> 1.0.0)
+      treetop (~> 1.6.0)
+    asciidoctor-revealjs (4.1.0)
+      asciidoctor (>= 2.0.0, < 3.0.0)
+      concurrent-ruby (~> 1.0)
+      thread_safe (~> 0.3.5)
+    asciimath (2.0.3)
+    bibtex-ruby (5.1.6)
+      latex-decode (~> 0.0)
+    citeproc (1.0.10)
+      namae (~> 1.0)
+    citeproc-ruby (1.1.14)
+      citeproc (~> 1.0, >= 1.0.9)
+      csl (~> 1.6)
+    coderay (1.1.3)
+    concurrent-ruby (1.1.9)
+    csl (1.6.0)
+      namae (~> 1.0)
+      rexml
+    csl-styles (1.0.1.11)
+      csl (~> 1.0)
+    css_parser (1.10.0)
+      addressable
+    gepub (1.0.15)
+      nokogiri (>= 1.8.2, < 2.0)
+      rubyzip (> 1.1.1, < 2.4)
+    hashery (2.1.2)
+    i18n (1.8.11)
+      concurrent-ruby (~> 1.0)
+    latex-decode (0.3.2)
+    mathematical (1.6.14)
+      ruby-enum (~> 0.4)
+    mime-types (3.4.1)
+      mime-types-data (~> 3.2015)
+    mime-types-data (3.2021.1115)
+    mini_portile2 (2.6.1)
+    namae (1.1.1)
+    nokogiri (1.12.5)
+      mini_portile2 (~> 2.6.1)
+      racc (~> 1.4)
+    pdf-core (0.9.0)
+    pdf-reader (2.6.0)
+      Ascii85 (~> 1.0)
+      afm (~> 0.2.1)
+      hashery (~> 2.0)
+      ruby-rc4
+      ttfunk
+    polyglot (0.3.5)
+    prawn (2.4.0)
+      pdf-core (~> 0.9.0)
+      ttfunk (~> 1.7)
+    prawn-icon (3.0.0)
+      prawn (>= 1.1.0, < 3.0.0)
+    prawn-svg (0.32.0)
+      css_parser (~> 1.6)
+      prawn (>= 0.11.1, < 3)
+      rexml (~> 3.2)
+    prawn-table (0.2.2)
+      prawn (>= 1.3.0, < 3.0.0)
+    prawn-templates (0.1.2)
+      pdf-reader (~> 2.0)
+      prawn (~> 2.2)
+    public_suffix (4.0.6)
+    pygments.rb (2.2.0)
+    racc (1.6.0)
+    rexml (3.2.5)
+    rouge (3.26.1)
+    ruby-enum (0.9.0)
+      i18n
+    ruby-rc4 (0.1.5)
+    rubyzip (2.3.2)
+    safe_yaml (1.0.5)
+    thread_safe (0.3.6)
+    treetop (1.6.11)
+      polyglot (~> 0.3)
+    ttfunk (1.7.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  asciidoctor
+  asciidoctor-bibtex
+  asciidoctor-diagram
+  asciidoctor-epub3
+  asciidoctor-mathematical
+  asciidoctor-pdf
+  asciidoctor-revealjs
+  coderay
+  pygments.rb
+  rouge
+
+BUNDLED WITH
+   2.2.24
diff --git a/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix b/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix
new file mode 100644
index 0000000000000..6bb0eac62f12e
--- /dev/null
+++ b/pkgs/tools/typesetting/asciidoctor-with-extensions/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, bundlerApp
+, bundlerUpdateScript
+, makeWrapper
+}:
+
+bundlerApp {
+  pname = "asciidoctor";
+  gemdir = ./.;
+
+  exes = [
+    "asciidoctor"
+    "asciidoctor-pdf"
+    "asciidoctor-epub3"
+    "asciidoctor-revealjs"
+  ];
+
+  passthru = {
+    updateScript = bundlerUpdateScript "asciidoctor-with-extensions";
+  };
+
+  meta = with lib; {
+    description = "A faster Asciidoc processor written in Ruby, with many extensions enabled";
+    homepage = "https://asciidoctor.org/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix b/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix
new file mode 100644
index 0000000000000..6bd49e0996235
--- /dev/null
+++ b/pkgs/tools/typesetting/asciidoctor-with-extensions/gemset.nix
@@ -0,0 +1,538 @@
+{
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp";
+      type = "gem";
+    };
+    version = "2.8.0";
+  };
+  afm = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06kj9hgd0z8pj27bxp2diwqh6fv7qhwwm17z64rhdc4sfn76jgn8";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
+  Ascii85 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ds4v9xgsyvijnlflak4dzf1qwmda9yd5bv8jwsb56nngd399rlw";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  asciidoctor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10h4pmmkbcrpy7bn76wxzkb0hriabh1k3ii1g8lm0mdji5drlhq2";
+      type = "gem";
+    };
+    version = "2.0.16";
+  };
+  asciidoctor-bibtex = {
+    dependencies = ["asciidoctor" "bibtex-ruby" "citeproc-ruby" "csl-styles" "latex-decode"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fx80bpykixvnlscyz2c4dnjr1063r5ar7j1zn2977vsr8fi8ial";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  asciidoctor-diagram = {
+    dependencies = ["asciidoctor" "asciidoctor-diagram-ditaamini" "asciidoctor-diagram-plantuml" "rexml"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1z1ilpczjaydhcwpz3yygn03yrx2ljjj55xczwkrlb8rzgh03br3";
+      type = "gem";
+    };
+    version = "2.2.1";
+  };
+  asciidoctor-diagram-ditaamini = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nva5n6nyns0xp77d1dxng1rjhc8ma6gyd8hczjq3h9qqxcw2q4h";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  asciidoctor-diagram-plantuml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n018kmqzapf5y1bacb5yyvb9jfwxdkfqnviwxivwz9322b9w6j7";
+      type = "gem";
+    };
+    version = "1.2021.8";
+  };
+  asciidoctor-epub3 = {
+    dependencies = ["asciidoctor" "gepub" "mime-types"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05lylv2k18vcnf3647n47zdqxpa70bg16znzn252ymp8say25zzg";
+      type = "gem";
+    };
+    version = "1.5.1";
+  };
+  asciidoctor-mathematical = {
+    dependencies = ["asciidoctor" "asciimath" "mathematical"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lxfq7qn3ql642pva6jh3h1abm9j9daxg5icfn1h73k6cjsmcisp";
+      type = "gem";
+    };
+    version = "0.3.5";
+  };
+  asciidoctor-pdf = {
+    dependencies = ["asciidoctor" "concurrent-ruby" "prawn" "prawn-icon" "prawn-svg" "prawn-table" "prawn-templates" "safe_yaml" "treetop"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17d3fa6ix6r5ikydqz41r620mm98s076wdg4w6ydsr655r7mvnpk";
+      type = "gem";
+    };
+    version = "1.6.1";
+  };
+  asciidoctor-revealjs = {
+    dependencies = ["asciidoctor" "concurrent-ruby" "thread_safe"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03vmbcc3x059h17ry4qwk1p0yar9wgh87l2qssi307gy45cjw2mq";
+      type = "gem";
+    };
+    version = "4.1.0";
+  };
+  asciimath = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h4fz93pf96y5syxwpv0vibjf7lidv2718ikpvyd2vy8c1am8zyn";
+      type = "gem";
+    };
+    version = "2.0.3";
+  };
+  bibtex-ruby = {
+    dependencies = ["latex-decode"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0adh2x935r69nm8qmns5fjsjw034xlyaqddzza2jr2npvf41g34r";
+      type = "gem";
+    };
+    version = "5.1.6";
+  };
+  citeproc = {
+    dependencies = ["namae"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13vl5sjmksk5a8kjcqnjxh7kn9gn1n4f9p1rvqfgsfhs54p0m6l2";
+      type = "gem";
+    };
+    version = "1.0.10";
+  };
+  citeproc-ruby = {
+    dependencies = ["citeproc" "csl"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0a8ahyhhmdinl4kcyv51r74ipnclmfyz4zjv366dns8v49n5vkk3";
+      type = "gem";
+    };
+    version = "1.1.14";
+  };
+  coderay = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  concurrent-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f";
+      type = "gem";
+    };
+    version = "1.1.9";
+  };
+  csl = {
+    dependencies = ["namae" "rexml"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n8iqmzvvqy2b1wfr4c7yj28x4z3zgm36628y8ybl49dgnmjycrk";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  csl-styles = {
+    dependencies = ["csl"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0l29qlk7i74088fpba5iqhhgiqkj7glcmc42nbmvgqysx577nag8";
+      type = "gem";
+    };
+    version = "1.0.1.11";
+  };
+  css_parser = {
+    dependencies = ["addressable"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q8gj3wkc2mbzsqw5zcsr3kyzrrb2pda03pi769rjbvqr94g3bm5";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  gepub = {
+    dependencies = ["nokogiri" "rubyzip"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08fny807zd4700f263ckc76bladjipsniyk3clv8a7x76x3fqshx";
+      type = "gem";
+    };
+    version = "1.0.15";
+  };
+  hashery = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qj8815bf7q6q7llm5rzdz279gzmpqmqqicxnzv066a020iwqffj";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
+      type = "gem";
+    };
+    version = "1.8.11";
+  };
+  latex-decode = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wnxg82lfkb8bl5la9nmg1434rpkcygygm0ckixjn6ah2dy6i53m";
+      type = "gem";
+    };
+    version = "0.3.2";
+  };
+  mathematical = {
+    dependencies = ["ruby-enum"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05mn68gxhfa37qsnzsmdqaa005hf511j5lga76qsrad2gcnhan1b";
+      type = "gem";
+    };
+    version = "1.6.14";
+  };
+  mime-types = {
+    dependencies = ["mime-types-data"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb";
+      type = "gem";
+    };
+    version = "3.4.1";
+  };
+  mime-types-data = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03m3fkix2haah20kvh1jgv262yg9jlzn6wq0y31kafxk8fysfy27";
+      type = "gem";
+    };
+    version = "3.2021.1115";
+  };
+  mini_portile2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lvxm91hi0pabnkkg47wh1siv56s6slm2mdq1idfm86dyfidfprq";
+      type = "gem";
+    };
+    version = "2.6.1";
+  };
+  namae = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1j3nl1klkx3gymrdxfc1hlq4a8qlvhhl9aj5v1v08b9fz27sky0l";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2" "racc"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1v02g7k7cxiwdcahvlxrmizn3avj2q6nsjccgilq1idc89cr081b";
+      type = "gem";
+    };
+    version = "1.12.5";
+  };
+  pdf-core = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fz0yj4zrlii2j08kaw11j769s373ayz8jrdhxwwjzmm28pqndjg";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  pdf-reader = {
+    dependencies = ["Ascii85" "afm" "hashery" "ruby-rc4" "ttfunk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zgv9pp9cqd1cf8bwk7pb5lkm81gn7znnan0a7s42wd0qavs4nnz";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
+  polyglot = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr";
+      type = "gem";
+    };
+    version = "0.3.5";
+  };
+  prawn = {
+    dependencies = ["pdf-core" "ttfunk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g9avv2rprsjisdk137s9ljr05r7ajhm78hxa1vjsv0jyx22f1l2";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  prawn-icon = {
+    dependencies = ["prawn"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xdnjik5zinnkjavmybbh2s52wzcpb8hzaqckiv0mxp0vs0x9j6s";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  prawn-svg = {
+    dependencies = ["css_parser" "prawn" "rexml"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mbxzw7r7hv43db9422flc24ib9d8bdy1nasbni2h998jc5a5lb6";
+      type = "gem";
+    };
+    version = "0.32.0";
+  };
+  prawn-table = {
+    dependencies = ["prawn"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nxd6qmxqwl850icp18wjh5k0s3amxcajdrkjyzpfgq0kvilcv9k";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
+  prawn-templates = {
+    dependencies = ["pdf-reader" "prawn"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1w9irn3rllm992c6j7fsx81gg539i7yy8zfddyw7q53hnlys0yhi";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      type = "gem";
+    };
+    version = "4.0.6";
+  };
+  "pygments.rb" = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mshqjh8v0v8k29f8annqfr4qlgkp39nbwx3sgm69aymv4skfddb";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0la56m0z26j3mfn1a9lf2l03qx1xifanndf9p3vx1azf6sqy7v9d";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  rexml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53";
+      type = "gem";
+    };
+    version = "3.2.5";
+  };
+  rouge = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "197k0vskf72wxx0gzwld2jzg27bb7982xlvnzy9adlvkzp7nh8vf";
+      type = "gem";
+    };
+    version = "3.26.1";
+  };
+  ruby-enum = {
+    dependencies = ["i18n"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pys90hxylhyg969iw9lz3qai5lblf8xwbdg1g5aj52731a9k83p";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
+  ruby-rc4 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00vci475258mmbvsdqkmqadlwn6gj9m01sp7b5a3zd90knil1k00";
+      type = "gem";
+    };
+    version = "0.1.5";
+  };
+  rubyzip = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz";
+      type = "gem";
+    };
+    version = "2.3.2";
+  };
+  safe_yaml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j7qv63p0vqcd838i2iy2f76c3dgwzkiz1d1xkg7n0pbnxj2vb56";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
+  thread_safe = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  treetop = {
+    dependencies = ["polyglot"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0697qz1akblf8r3wi0s2dsjh468hfsd57fb0mrp93z35y2ni6bhh";
+      type = "gem";
+    };
+    version = "1.6.11";
+  };
+  ttfunk = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15iaxz9iak5643bq2bc0jkbjv8w2zn649lxgvh5wg48q9d4blw13";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+}
diff --git a/pkgs/tools/typesetting/asciidoctor/Gemfile b/pkgs/tools/typesetting/asciidoctor/Gemfile
index 702dabee2e07b..32e18b53aa657 100644
--- a/pkgs/tools/typesetting/asciidoctor/Gemfile
+++ b/pkgs/tools/typesetting/asciidoctor/Gemfile
@@ -1,10 +1,6 @@
 source 'https://rubygems.org'
 gem 'asciidoctor'
-gem 'asciidoctor-diagram'
 gem 'asciidoctor-pdf'
-gem 'asciidoctor-epub3'
-gem 'asciidoctor-mathematical'
-gem 'asciidoctor-revealjs'
 gem 'coderay'
 gem 'pygments.rb'
 gem 'rouge'
diff --git a/pkgs/tools/typesetting/asciidoctor/Gemfile.lock b/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
index e7a1bdcfd800b..5c607d269b22a 100644
--- a/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
+++ b/pkgs/tools/typesetting/asciidoctor/Gemfile.lock
@@ -6,21 +6,6 @@ GEM
       public_suffix (>= 2.0.2, < 5.0)
     afm (0.2.2)
     asciidoctor (2.0.16)
-    asciidoctor-diagram (2.2.1)
-      asciidoctor (>= 1.5.7, < 3.x)
-      asciidoctor-diagram-ditaamini (~> 1.0)
-      asciidoctor-diagram-plantuml (~> 1.2021)
-      rexml
-    asciidoctor-diagram-ditaamini (1.0.1)
-    asciidoctor-diagram-plantuml (1.2021.8)
-    asciidoctor-epub3 (1.5.1)
-      asciidoctor (>= 1.5.6, < 3.0.0)
-      gepub (~> 1.0.0)
-      mime-types (~> 3.0)
-    asciidoctor-mathematical (0.3.5)
-      asciidoctor (~> 2.0)
-      asciimath (~> 2.0)
-      mathematical (~> 1.6.0)
     asciidoctor-pdf (1.6.1)
       asciidoctor (~> 2.0)
       concurrent-ruby (~> 1.1)
@@ -31,32 +16,13 @@ GEM
       prawn-templates (~> 0.1.0)
       safe_yaml (~> 1.0.0)
       treetop (~> 1.6.0)
-    asciidoctor-revealjs (4.1.0)
-      asciidoctor (>= 2.0.0, < 3.0.0)
-      concurrent-ruby (~> 1.0)
-      thread_safe (~> 0.3.5)
-    asciimath (2.0.3)
     coderay (1.1.3)
     concurrent-ruby (1.1.9)
     css_parser (1.10.0)
       addressable
-    gepub (1.0.15)
-      nokogiri (>= 1.8.2, < 2.0)
-      rubyzip (> 1.1.1, < 2.4)
     hashery (2.1.2)
-    i18n (1.8.11)
-      concurrent-ruby (~> 1.0)
-    mathematical (1.6.14)
-      ruby-enum (~> 0.4)
-    mime-types (3.3.1)
-      mime-types-data (~> 3.2015)
-    mime-types-data (3.2021.0901)
-    mini_portile2 (2.6.1)
-    nokogiri (1.12.5)
-      mini_portile2 (~> 2.6.1)
-      racc (~> 1.4)
     pdf-core (0.9.0)
-    pdf-reader (2.5.0)
+    pdf-reader (2.6.0)
       Ascii85 (~> 1.0)
       afm (~> 0.2.1)
       hashery (~> 2.0)
@@ -79,15 +45,10 @@ GEM
       prawn (~> 2.2)
     public_suffix (4.0.6)
     pygments.rb (2.2.0)
-    racc (1.6.0)
     rexml (3.2.5)
     rouge (3.26.1)
-    ruby-enum (0.9.0)
-      i18n
     ruby-rc4 (0.1.5)
-    rubyzip (2.3.2)
     safe_yaml (1.0.5)
-    thread_safe (0.3.6)
     treetop (1.6.11)
       polyglot (~> 0.3)
     ttfunk (1.7.0)
@@ -97,11 +58,7 @@ PLATFORMS
 
 DEPENDENCIES
   asciidoctor
-  asciidoctor-diagram
-  asciidoctor-epub3
-  asciidoctor-mathematical
   asciidoctor-pdf
-  asciidoctor-revealjs
   coderay
   pygments.rb
   rouge
diff --git a/pkgs/tools/typesetting/asciidoctor/default.nix b/pkgs/tools/typesetting/asciidoctor/default.nix
index 73fb46d2e6064..5f78c12508d14 100644
--- a/pkgs/tools/typesetting/asciidoctor/default.nix
+++ b/pkgs/tools/typesetting/asciidoctor/default.nix
@@ -1,39 +1,26 @@
-{ lib, bundlerApp, makeWrapper,
-  # Optional dependencies, can be null
-  epubcheck,
-  bundlerUpdateScript
+{ lib
+, bundlerApp
+, bundlerUpdateScript
 }:
 
-let
-  app = bundlerApp {
-    pname = "asciidoctor";
-    gemdir = ./.;
+bundlerApp {
+  pname = "asciidoctor";
+  gemdir = ./.;
 
-    exes = [
-      "asciidoctor"
-      "asciidoctor-pdf"
-      "asciidoctor-epub3"
-      "asciidoctor-revealjs"
-    ];
+  exes = [
+    "asciidoctor"
+    "asciidoctor-pdf"
+  ];
 
-    buildInputs = [ makeWrapper ];
-
-    postBuild = ''
-        wrapProgram "$out/bin/asciidoctor-epub3" \
-          ${lib.optionalString (epubcheck != null) "--set EPUBCHECK ${epubcheck}/bin/epubcheck"}
-      '';
-
-    passthru = {
-      updateScript = bundlerUpdateScript "asciidoctor";
-    };
+  passthru = {
+    updateScript = bundlerUpdateScript "asciidoctor";
+  };
 
-    meta = with lib; {
-      description = "A faster Asciidoc processor written in Ruby";
-      homepage = "https://asciidoctor.org/";
-      license = licenses.mit;
-      maintainers = with maintainers; [ gpyh nicknovitski ];
-      platforms = platforms.unix;
-    };
+  meta = with lib; {
+    description = "A faster Asciidoc processor written in Ruby";
+    homepage = "https://asciidoctor.org/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ gpyh nicknovitski ];
+    platforms = platforms.unix;
   };
-in
-  app
+}
diff --git a/pkgs/tools/typesetting/asciidoctor/gemset.nix b/pkgs/tools/typesetting/asciidoctor/gemset.nix
index b227121d6b86b..b57d1e5ac4add 100644
--- a/pkgs/tools/typesetting/asciidoctor/gemset.nix
+++ b/pkgs/tools/typesetting/asciidoctor/gemset.nix
@@ -40,59 +40,6 @@
     };
     version = "2.0.16";
   };
-  asciidoctor-diagram = {
-    dependencies = ["asciidoctor" "asciidoctor-diagram-ditaamini" "asciidoctor-diagram-plantuml" "rexml"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1z1ilpczjaydhcwpz3yygn03yrx2ljjj55xczwkrlb8rzgh03br3";
-      type = "gem";
-    };
-    version = "2.2.1";
-  };
-  asciidoctor-diagram-ditaamini = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1nva5n6nyns0xp77d1dxng1rjhc8ma6gyd8hczjq3h9qqxcw2q4h";
-      type = "gem";
-    };
-    version = "1.0.1";
-  };
-  asciidoctor-diagram-plantuml = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0n018kmqzapf5y1bacb5yyvb9jfwxdkfqnviwxivwz9322b9w6j7";
-      type = "gem";
-    };
-    version = "1.2021.8";
-  };
-  asciidoctor-epub3 = {
-    dependencies = ["asciidoctor" "gepub" "mime-types"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "05lylv2k18vcnf3647n47zdqxpa70bg16znzn252ymp8say25zzg";
-      type = "gem";
-    };
-    version = "1.5.1";
-  };
-  asciidoctor-mathematical = {
-    dependencies = ["asciidoctor" "asciimath" "mathematical"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1lxfq7qn3ql642pva6jh3h1abm9j9daxg5icfn1h73k6cjsmcisp";
-      type = "gem";
-    };
-    version = "0.3.5";
-  };
   asciidoctor-pdf = {
     dependencies = ["asciidoctor" "concurrent-ruby" "prawn" "prawn-icon" "prawn-svg" "prawn-table" "prawn-templates" "safe_yaml" "treetop"];
     groups = ["default"];
@@ -104,27 +51,6 @@
     };
     version = "1.6.1";
   };
-  asciidoctor-revealjs = {
-    dependencies = ["asciidoctor" "concurrent-ruby" "thread_safe"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "03vmbcc3x059h17ry4qwk1p0yar9wgh87l2qssi307gy45cjw2mq";
-      type = "gem";
-    };
-    version = "4.1.0";
-  };
-  asciimath = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0h4fz93pf96y5syxwpv0vibjf7lidv2718ikpvyd2vy8c1am8zyn";
-      type = "gem";
-    };
-    version = "2.0.3";
-  };
   coderay = {
     groups = ["default"];
     platforms = [];
@@ -156,17 +82,6 @@
     };
     version = "1.10.0";
   };
-  gepub = {
-    dependencies = ["nokogiri" "rubyzip"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "08fny807zd4700f263ckc76bladjipsniyk3clv8a7x76x3fqshx";
-      type = "gem";
-    };
-    version = "1.0.15";
-  };
   hashery = {
     groups = ["default"];
     platforms = [];
@@ -177,70 +92,6 @@
     };
     version = "2.1.2";
   };
-  i18n = {
-    dependencies = ["concurrent-ruby"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
-      type = "gem";
-    };
-    version = "1.8.11";
-  };
-  mathematical = {
-    dependencies = ["ruby-enum"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "05mn68gxhfa37qsnzsmdqaa005hf511j5lga76qsrad2gcnhan1b";
-      type = "gem";
-    };
-    version = "1.6.14";
-  };
-  mime-types = {
-    dependencies = ["mime-types-data"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1zj12l9qk62anvk9bjvandpa6vy4xslil15wl6wlivyf51z773vh";
-      type = "gem";
-    };
-    version = "3.3.1";
-  };
-  mime-types-data = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1z5wvk6qi4ws1kjh7xn1rfirqw5m72bwvqacck1fjpbh33pcrwxv";
-      type = "gem";
-    };
-    version = "3.2021.0901";
-  };
-  mini_portile2 = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1lvxm91hi0pabnkkg47wh1siv56s6slm2mdq1idfm86dyfidfprq";
-      type = "gem";
-    };
-    version = "2.6.1";
-  };
-  nokogiri = {
-    dependencies = ["mini_portile2" "racc"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1v02g7k7cxiwdcahvlxrmizn3avj2q6nsjccgilq1idc89cr081b";
-      type = "gem";
-    };
-    version = "1.12.5";
-  };
   pdf-core = {
     groups = ["default"];
     platforms = [];
@@ -257,10 +108,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14cxj3ra9nnn334qpm2vsx9s0zk3095s8ih6cwcp47h3hv03c73y";
+      sha256 = "0zgv9pp9cqd1cf8bwk7pb5lkm81gn7znnan0a7s42wd0qavs4nnz";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "2.6.0";
   };
   polyglot = {
     groups = ["default"];
@@ -347,16 +198,6 @@
     };
     version = "2.2.0";
   };
-  racc = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0la56m0z26j3mfn1a9lf2l03qx1xifanndf9p3vx1azf6sqy7v9d";
-      type = "gem";
-    };
-    version = "1.6.0";
-  };
   rexml = {
     groups = ["default"];
     platforms = [];
@@ -377,17 +218,6 @@
     };
     version = "3.26.1";
   };
-  ruby-enum = {
-    dependencies = ["i18n"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1pys90hxylhyg969iw9lz3qai5lblf8xwbdg1g5aj52731a9k83p";
-      type = "gem";
-    };
-    version = "0.9.0";
-  };
   ruby-rc4 = {
     groups = ["default"];
     platforms = [];
@@ -398,16 +228,6 @@
     };
     version = "0.1.5";
   };
-  rubyzip = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz";
-      type = "gem";
-    };
-    version = "2.3.2";
-  };
   safe_yaml = {
     groups = ["default"];
     platforms = [];
@@ -418,16 +238,6 @@
     };
     version = "1.0.5";
   };
-  thread_safe = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
-      type = "gem";
-    };
-    version = "0.3.6";
-  };
   treetop = {
     dependencies = ["polyglot"];
     groups = ["default"];
diff --git a/pkgs/tools/typesetting/docbook2x/default.nix b/pkgs/tools/typesetting/docbook2x/default.nix
index aac992552d317..42ac92698b0d6 100644
--- a/pkgs/tools/typesetting/docbook2x/default.nix
+++ b/pkgs/tools/typesetting/docbook2x/default.nix
@@ -1,6 +1,6 @@
 { fetchurl, lib, stdenv, texinfo, perlPackages
 , groff, libxml2, libxslt, gnused, libiconv, opensp
-, docbook_xml_dtd_43
+, docbook_xml_dtd_43, bash
 , makeWrapper }:
 
 stdenv.mkDerivation rec {
@@ -16,8 +16,8 @@ stdenv.mkDerivation rec {
   # writes its output to stdout instead of creating a file.
   patches = [ ./db2x_texixml-to-stdout.patch ];
 
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ texinfo groff libxml2 libxslt opensp libiconv ]
+  nativeBuildInputs = [ makeWrapper perlPackages.perl texinfo libxslt ];
+  buildInputs = [ groff libxml2 opensp libiconv bash ]
     ++ (with perlPackages; [ perl XMLSAX XMLParser XMLNamespaceSupport ]);
 
   postConfigure = ''
diff --git a/pkgs/tools/typesetting/docbookrx/Gemfile b/pkgs/tools/typesetting/docbookrx/Gemfile
index 73fee2920d5e1..d5290dcb0093f 100644
--- a/pkgs/tools/typesetting/docbookrx/Gemfile
+++ b/pkgs/tools/typesetting/docbookrx/Gemfile
@@ -1,2 +1,2 @@
 source 'https://rubygems.org'
-gem 'nokogiri', '~> 1.8.0'
+gem 'nokogiri', '~> 1.11.7'
diff --git a/pkgs/tools/typesetting/docbookrx/Gemfile.lock b/pkgs/tools/typesetting/docbookrx/Gemfile.lock
index 423fac6c30a9f..07b58b649f4c0 100644
--- a/pkgs/tools/typesetting/docbookrx/Gemfile.lock
+++ b/pkgs/tools/typesetting/docbookrx/Gemfile.lock
@@ -1,15 +1,38 @@
+PATH
+  remote: .
+  specs:
+    docbookrx (1.0.0.dev)
+      nokogiri (~> 1.11.7)
+
 GEM
   remote: https://rubygems.org/
   specs:
-    mini_portile2 (2.3.0)
-    nokogiri (1.8.5)
-      mini_portile2 (~> 2.3.0)
+    diff-lcs (1.4.4)
+    nokogiri (1.11.7-x86_64-linux)
+      racc (~> 1.4)
+    racc (1.6.0)
+    rake (13.0.6)
+    rspec (3.9.0)
+      rspec-core (~> 3.9.0)
+      rspec-expectations (~> 3.9.0)
+      rspec-mocks (~> 3.9.0)
+    rspec-core (3.9.3)
+      rspec-support (~> 3.9.3)
+    rspec-expectations (3.9.4)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.9.0)
+    rspec-mocks (3.9.1)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.9.0)
+    rspec-support (3.9.4)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  nokogiri (~> 1.8.0)
+  docbookrx!
+  rake (~> 13.0.0)
+  rspec (~> 3.9.0)
 
 BUNDLED WITH
-   2.1.4
+   2.2.24
diff --git a/pkgs/tools/typesetting/docbookrx/default.nix b/pkgs/tools/typesetting/docbookrx/default.nix
index a41276ea4328c..059233d09b08a 100644
--- a/pkgs/tools/typesetting/docbookrx/default.nix
+++ b/pkgs/tools/typesetting/docbookrx/default.nix
@@ -3,7 +3,6 @@
 , stdenv
 , ruby
 , bundlerEnv
-# , libxml2
 }:
 
 let
@@ -13,10 +12,6 @@ let
 
     inherit ruby;
 
-    # buildInputs = [
-    #   libxml2
-    # ];
-
     gemfile = ./Gemfile;
     lockfile = ./Gemfile.lock;
     gemset = ./gemset.nix;
@@ -25,15 +20,15 @@ let
 in stdenv.mkDerivation {
 
   pname = "docbookrx";
-  version = "unstable-2018-05-02";
+  version = "unstable-2018-05-18";
 
   buildInputs = [ env.wrappedRuby ];
 
   src = fetchFromGitHub {
     owner = "asciidoctor";
     repo = "docbookrx";
-    rev = "682d8c2f7a9e1e6f546c5f7d0067353621c68a7a";
-    sha256 = "07jilh17gj8xx4ps4ln787izmhv8xwwwv6fkqqg3pwjni5qikx7w";
+    rev = "83d1d1235e3bb44506123eda337780a912581cd0";
+    sha256 = "sha256-OdPRh7ZIhgM7hs5qPiuxLEUuMEtaXcgZ83M6i6CV6AY=";
   };
 
   # TODO: I don't know ruby packaging but this does the trick for now
diff --git a/pkgs/tools/typesetting/docbookrx/gemset.nix b/pkgs/tools/typesetting/docbookrx/gemset.nix
index bd756b996bbc7..fde67f2d4ee99 100644
--- a/pkgs/tools/typesetting/docbookrx/gemset.nix
+++ b/pkgs/tools/typesetting/docbookrx/gemset.nix
@@ -1,23 +1,107 @@
 {
-  mini_portile2 = {
-    groups = ["default"];
+  diff-lcs = {
+    groups = ["default" "development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
+      sha256 = "0m925b8xc6kbpnif9dldna24q1szg4mk0fvszrki837pfn46afmz";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "1.4.4";
+  };
+  docbookrx = {
+    dependencies = ["nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      path = ./.;
+      type = "path";
+    };
+    version = "1.0.0.dev";
   };
   nokogiri = {
-    dependencies = ["mini_portile2"];
+    dependencies = ["racc"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "4976a9c9e796527d51dc6c311b9bd93a0233f6a7962a0f569aa5c782461836ef";
+      type = "gem";
+    };
+    version = "1.11.7";
+  };
+  racc = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0byyxrazkfm29ypcx5q4syrv126nvjnf7z6bqi01sqkv4llsi4qz";
+      sha256 = "0la56m0z26j3mfn1a9lf2l03qx1xifanndf9p3vx1azf6sqy7v9d";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  rake = {
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      type = "gem";
+    };
+    version = "13.0.6";
+  };
+  rspec = {
+    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hzsig4pi9ybr0xl5540m1swiyxa74c8h09225y5sdh2rjkkg84h";
+      type = "gem";
+    };
+    version = "3.9.0";
+  };
+  rspec-core = {
+    dependencies = ["rspec-support"];
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b8891149l4rdlaz58k1dprc09rhpvq98bblk4qpd3dvcvqklkvh";
+      type = "gem";
+    };
+    version = "3.9.3";
+  };
+  rspec-expectations = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gjqa3h4r8jna8dh22al4f6ks4x6l4knshx2b8jygkd1gk68n92q";
+      type = "gem";
+    };
+    version = "3.9.4";
+  };
+  rspec-mocks = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "19vmdqym1v2g1zbdnq37zwmyj87y9yc9ijwc8js55igvbb9hx0mr";
+      type = "gem";
+    };
+    version = "3.9.1";
+  };
+  rspec-support = {
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ig6wk1ln6wy0d6fjlbfwxibps1nidc6111fcnm0jfa1z5nkqczl";
       type = "gem";
     };
-    version = "1.8.5";
+    version = "3.9.4";
   };
 }
diff --git a/pkgs/tools/typesetting/halibut/default.nix b/pkgs/tools/typesetting/halibut/default.nix
index ec5598e4d689f..de76c4956d7a3 100644
--- a/pkgs/tools/typesetting/halibut/default.nix
+++ b/pkgs/tools/typesetting/halibut/default.nix
@@ -1,29 +1,15 @@
-{lib, stdenv, fetchurl, perl}:
+{lib, stdenv, fetchurl, cmake, perl}:
 
 stdenv.mkDerivation rec {
   pname = "halibut";
-  version = "1.2";
+  version = "1.3";
 
   src = fetchurl {
-    url = "http://ww.chiark.greenend.org.uk/~sgtatham/halibut/halibut-${version}/halibut-${version}.tar.gz";
-    sha256 = "0gqnhfqf555rfpk5xj1imbdxnbkkrv4wl3rrdb1r0wgj81igpv8s";
+    url = "https://www.chiark.greenend.org.uk/~sgtatham/halibut/halibut-${version}/halibut-${version}.tar.gz";
+    sha256 = "0ciikn878vivs4ayvwvr63nnhpcg12m8023xv514zxqpdxlzg85a";
   };
 
-  buildInputs = [ perl ];
-
-  patchPhase = ''
-    sed -i -e s@/usr/local@$out@ Makefile
-    sed -i -e 's@(prefix)/man@(prefix)/share/man@' doc/Makefile
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    mkdir -p $out/share/man/man1
-    pushd doc
-    make halibut.1
-    popd
-    make install
-  '';
+  nativeBuildInputs = [ cmake perl ];
 
   meta = with lib; {
     description = "Documentation production system for software manuals";
diff --git a/pkgs/tools/typesetting/htmldoc/default.nix b/pkgs/tools/typesetting/htmldoc/default.nix
index aaea9090b72ef..cd48a3fd8765a 100644
--- a/pkgs/tools/typesetting/htmldoc/default.nix
+++ b/pkgs/tools/typesetting/htmldoc/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "htmldoc";
-  version = "1.9.12";
+  version = "1.9.14";
   src = fetchFromGitHub {
     owner = "michaelrsweet";
     repo = "htmldoc";
     rev = "v${version}";
-    sha256 = "1dqima0g3j301wwzjxdhzk5pvfj724rl615gf8ssxxajfnid1gl0";
+    sha256 = "sha256-mPykntRKu2NrIIGYGNCATUC3k/dvRmVkjHyhBeFfQ2U=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/typesetting/lout/builder.sh b/pkgs/tools/typesetting/lout/builder.sh
index 61459e48b7f02..eab37c3c68fb5 100755
--- a/pkgs/tools/typesetting/lout/builder.sh
+++ b/pkgs/tools/typesetting/lout/builder.sh
@@ -15,28 +15,28 @@ installDoc ()
     echo "building \`$doc' document..."
     if [ ! -f "doc/$doc/outfile.ps" ]
     then
-      ( PATH="$PWD:$PATH" ;				\
-        cd "doc/$doc" && lout -r4 -o outfile.ps all )	\
+      ( PATH="$PWD:$PATH" ; \
+        cd "doc/$doc" && lout -r4 -o outfile.ps all ) \
       || return 1
     fi
-    cp "doc/$doc/outfile.ps" "$out/doc/lout/$doc.ps" &&		\
-    ps2pdf -dPDFSETTINGS=/prepress -sPAPERSIZE=a4		\
+    cp "doc/$doc/outfile.ps" "$out/doc/lout/$doc.ps" && \
+    ps2pdf -dPDFSETTINGS=/prepress -sPAPERSIZE=a4 \
            "doc/$doc/outfile.ps" "$out/doc/lout/$doc.pdf"
   done
 
   return 0
 }
 
-unpackPhase &&									\
-cd lout-*.* &&									\
-cat makefile |									\
-  sed -e "s|^PREFIX[[:blank:]]*=.*\$|PREFIX = $out|g ;				\
-          s|^LOUTLIBDIR[[:blank:]]*=.*$|LOUTLIBDIR = \$(PREFIX)/lib/lout|g ;	\
-	  s|^LOUTDOCDIR[[:blank:]]*=.*$|LOUTDOCDIR = \$(PREFIX)/doc/lout|g ;	\
-	  s|^MANDIR[[:blank:]]*=.*$|MANDIR = \$(PREFIX)/man|g"			\
-  > "$nixMakefile" &&								\
-mkdir -p "$out/bin" && mkdir -p "$out/lib"					\
-mkdir -p "$out/man" && mkdir -p "$out/doc/lout" &&				\
-make -f "$nixMakefile" CC=cc install installman &&					\
-installDoc &&									\
+unpackPhase && \
+cd lout-*.* && \
+cat makefile | \
+  sed -e "s|^PREFIX[[:blank:]]*=.*\$|PREFIX = $out|g ; \
+    s|^LOUTLIBDIR[[:blank:]]*=.*$|LOUTLIBDIR = \$(PREFIX)/lib/lout|g ; \
+    s|^LOUTDOCDIR[[:blank:]]*=.*$|LOUTDOCDIR = \$(PREFIX)/doc/lout|g ; \
+    s|^MANDIR[[:blank:]]*=.*$|MANDIR = \$(PREFIX)/man|g" \
+  > "$nixMakefile" && \
+mkdir -p "$out/bin" && mkdir -p "$out/lib" \
+mkdir -p "$out/man" && mkdir -p "$out/doc/lout" && \
+make -f "$nixMakefile" CC=cc install installman && \
+installDoc && \
 fixupPhase
diff --git a/pkgs/tools/typesetting/pdftk/default.nix b/pkgs/tools/typesetting/pdftk/default.nix
index c1f04616729c8..fd801527e1121 100644
--- a/pkgs/tools/typesetting/pdftk/default.nix
+++ b/pkgs/tools/typesetting/pdftk/default.nix
@@ -2,13 +2,13 @@
 
 let
   pname = "pdftk";
-  version = "3.2.1";
+  version = "3.3.2";
 
   src = fetchFromGitLab {
     owner = "pdftk-java";
     repo = "pdftk";
     rev = "v${version}";
-    sha256 = "056db8rjczdfkq7fm3bv5g15y042rc9hb4zh5qccjrdw630vk9y4";
+    sha256 = "1gji1a06g3p6r4v5dx6h9kbvnf95d0lsjvp0c7daw5l8xhsrvijx";
   };
 
   deps = stdenv.mkDerivation {
@@ -32,7 +32,7 @@ let
 
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "0p59myc5m3ds7fh0zdz3n7l7hx6dj8bpyqxzlhdrqybsyxwpw4w3";
+    outputHash = "0qx1axqr0h5zbn2z9bnb1d0rbs0vajw4p8szw34nicngnn213g7k";
   };
 
   # Point to our local deps repo
diff --git a/pkgs/tools/typesetting/tex/blahtexml/default.nix b/pkgs/tools/typesetting/tex/blahtexml/default.nix
new file mode 100644
index 0000000000000..039b11a6746f9
--- /dev/null
+++ b/pkgs/tools/typesetting/tex/blahtexml/default.nix
@@ -0,0 +1,48 @@
+{ fetchFromGitHub, lib, stdenv, libiconv, texlive, xercesc }:
+
+stdenv.mkDerivation {
+  pname = "blahtexml";
+  version = "0.9+date=2020-05-16";
+
+  src = fetchFromGitHub {
+    owner = "gvanas";
+    repo = "blahtexml";
+    rev = "92f2c5ff1f2b00a541b2222facc51ec72e5f6559";
+    hash = "sha256-ts+2gWsp7+rQu1US2/qEdbttB2Ps12efTSrcioZYsmE=";
+  };
+
+  outputs = [ "out" "doc" ];
+
+  nativeBuildInputs = [ texlive.combined.scheme-full ];
+  buildInputs = [ xercesc ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
+
+  buildFlags =
+    [ "doc" ] ++
+    (if stdenv.isDarwin
+     then [ "blahtex-mac" "blahtexml-mac" ]
+     else [ "blahtex-linux" "blahtexml-linux" ]);
+
+  installPhase = ''
+    install -D -t "$out/bin" blahtex blahtexml
+    install -m644 -D -t "$doc/share/doc/blahtexml" Documentation/manual.pdf
+  '';
+
+  meta = with lib; {
+    homepage = "http://gva.noekeon.org/blahtexml/";
+    description = "A TeX to MathML converter";
+    longDescription = ''
+      Blahtex is a program written in C++, which converts an equation given in
+      a syntax close to TeX into MathML. It is designed by David Harvey and is
+      aimed at supporting equations in MediaWiki.
+
+      Blahtexml is a simple extension of blahtex, written by Gilles Van Assche.
+      In addition to the functionality of blahtex, blahtexml has XML processing
+      in mind and is able to process a whole XML document into another XML
+      document. Instead of converting only one formula at a time, blahtexml can
+      convert all the formulas of the given XML file into MathML.
+    '';
+    license = licenses.bsd3;
+    maintainers = [ maintainers.xworld21 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/tools/video/rav1e/default.nix b/pkgs/tools/video/rav1e/default.nix
index d6fc422b4cd40..bbf1e81a83d31 100644
--- a/pkgs/tools/video/rav1e/default.nix
+++ b/pkgs/tools/video/rav1e/default.nix
@@ -16,6 +16,8 @@ in rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ nasm cargo-c ];
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
+  checkType = "debug";
+
   postBuild = ''
     cargo cbuild --release --frozen --prefix=${placeholder "out"} --target ${rustTargetPlatformSpec}
   '';
diff --git a/pkgs/tools/virtualization/alpine-make-vm-image/default.nix b/pkgs/tools/virtualization/alpine-make-vm-image/default.nix
index 239a00a665d8b..f6cfe011488cf 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.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "alpinelinux";
     repo = "alpine-make-vm-image";
     rev = "v${version}";
-    sha256 = "0cjcwq957nsml06kdnnvgzki84agjfvqw3mpyiix4i4q5by91lcl";
+    sha256 = "14rkqlg319h8agiydgknjfv2f7vl6rdj848xfkngvydrf1rr38j6";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/virtualization/cloud-init/default.nix b/pkgs/tools/virtualization/cloud-init/default.nix
index dd30969ed8bd3..6bc070d2cbbfc 100644
--- a/pkgs/tools/virtualization/cloud-init/default.nix
+++ b/pkgs/tools/virtualization/cloud-init/default.nix
@@ -1,36 +1,30 @@
 { lib
-, fetchFromGitHub
 , buildPythonApplication
-, jinja2
-, oauthlib
-, configobj
-, pyyaml
-, requests
-, jsonschema
-, jsonpatch
-, httpretty
-, dmidecode
-, pytestCheckHook
-, shadow
 , cloud-utils
+, dmidecode
+, fetchFromGitHub
 , openssh
+, python3
+, shadow
 }:
 
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "cloud-init";
-  version = "21.2";
+  version = "21.4";
   namePrefix = "";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = "cloud-init";
     rev = version;
-    sha256 = "0vhjkgs49ixfa3kkj5s3v3gcxvypm3cdvfk6adrk2bx3wv2cbhvz";
+    sha256 = "09413qz9y2csvhjb4krjnkfj97vlykx79j912p27jjcrg82f1nib";
   };
 
   patches = [ ./0001-add-nixos-support.patch ];
+
   prePatch = ''
-    substituteInPlace setup.py --replace /lib/systemd $out/lib/systemd
+    substituteInPlace setup.py \
+      --replace /lib/systemd $out/lib/systemd
   '';
 
   postInstall = ''
@@ -40,17 +34,18 @@ buildPythonApplication rec {
     done
   '';
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = with python3.pkgs; [
+    configobj
     jinja2
+    jsonpatch
+    jsonschema
+    netifaces
     oauthlib
-    configobj
     pyyaml
     requests
-    jsonschema
-    jsonpatch
   ];
 
-  checkInputs = [
+  checkInputs = with python3.pkgs; [
     pytestCheckHook
     httpretty
     dmidecode
@@ -78,6 +73,16 @@ buildPythonApplication rec {
     "TestInstallChefOmnibus"
     # https://github.com/canonical/cloud-init/pull/893
     "TestGetPackageMirrorInfo"
+    # Disable failing VMware and PuppetAio tests
+    "test_get_data_iso9660_with_network_config"
+    "test_get_data_vmware_guestinfo_with_network_config"
+    "test_get_host_info"
+    "test_no_data_access_method"
+    "test_install_with_collection"
+    "test_install_with_custom_url"
+    "test_install_with_default_arguments"
+    "test_install_with_no_cleanup"
+    "test_install_with_version"
   ];
 
   disabledTestPaths = [
@@ -99,7 +104,9 @@ buildPythonApplication rec {
     export TMPDIR=/tmp
   '';
 
-  pythonImportsCheck = [ "cloudinit" ];
+  pythonImportsCheck = [
+    "cloudinit"
+  ];
 
   meta = with lib; {
     homepage = "https://cloudinit.readthedocs.org";
diff --git a/pkgs/tools/virtualization/cloudmonkey/default.nix b/pkgs/tools/virtualization/cloudmonkey/default.nix
index 1945e56b96e7b..ca1c4caf03b3d 100644
--- a/pkgs/tools/virtualization/cloudmonkey/default.nix
+++ b/pkgs/tools/virtualization/cloudmonkey/default.nix
@@ -2,17 +2,15 @@
 
 buildGoModule rec {
   pname = "cloudmonkey";
-  version = "6.1.0";
+  version = "6.2.0";
 
   src = fetchFromGitHub {
     owner = "apache";
     repo = "cloudstack-cloudmonkey";
     rev = version;
-    sha256 = "sha256-OmVM6ayrtrLl+PADnkUnrssbsq1GZp2KiMBOXPgfi5Y=";
+    sha256 = "sha256-C9e2KsnoggjWZp8gx757MbFdGxmfh+TtAd+luS3ycHU=";
   };
 
-  runVend = true;
-
   vendorSha256 = null;
 
   meta = with lib; {
diff --git a/pkgs/tools/virtualization/ec2-utils/default.nix b/pkgs/tools/virtualization/ec2-utils/default.nix
index 1605bcfa43b67..283219108424e 100644
--- a/pkgs/tools/virtualization/ec2-utils/default.nix
+++ b/pkgs/tools/virtualization/ec2-utils/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, rpmextract, fetchurl, python2, tree }:
 
 stdenv.mkDerivation {
-  name = "ec2-utils";
+  pname = "ec2-utils";
   version = "0.5.1";
 
   # The url can be determined by booting an "Amazon Linux 2" and running:
diff --git a/pkgs/tools/virtualization/google-compute-engine/default.nix b/pkgs/tools/virtualization/google-compute-engine/default.nix
index fef461be7d74a..ad187544aea26 100644
--- a/pkgs/tools/virtualization/google-compute-engine/default.nix
+++ b/pkgs/tools/virtualization/google-compute-engine/default.nix
@@ -3,85 +3,26 @@
 , buildPythonPackage
 , bash
 , bashInteractive
+, systemd
 , util-linux
 , boto
 , setuptools
 , distro
-, stdenv
-, pythonOlder
-, pytestCheckHook
 }:
 
-let
-  guest-configs = stdenv.mkDerivation rec {
-    pname = "guest-configs";
-    version = "20210702.00";
-
-    src = fetchFromGitHub {
-      owner = "GoogleCloudPlatform";
-      repo = "guest-configs";
-      rev = version;
-      sha256 = "1965kdrb1ig3z4qwzvyzx1fb4282ak5vgxcvvg5k9c759pzbc5nn";
-    };
-
-    buildInputs = [ bash ];
-
-    dontConfigure = true;
-    dontBuild = true;
-
-    installPhase = ''
-      runHook preInstall
-
-      # allows to install the package in `services.udev.packages` in NixOS
-      mkdir -p $out/lib/udev $out/bin
-
-      cp -r "src/lib/udev/rules.d" $out/lib/udev
-      cp "src/lib/udev/google_nvme_id" $out/bin
-
-      for rules in $out/lib/udev/*.rules; do
-        substituteInPlace "$rules" \
-          --replace /bin/sh "${bash}/bin/sh" \
-          --replace /bin/umount "${util-linux}/bin/umount" \
-          --replace /usr/bin/logger "${util-linux}/bin/logger"
-      done
-
-      # sysctl snippets will be used by google-compute-config.nix
-      cp -r "src/etc/sysctl.d" $out
-
-      patchShebangs $out/bin/*
-
-      runHook postInstall
-    '';
-  };
-in
 buildPythonPackage rec {
   pname = "google-compute-engine";
-  version = "20200113.0";
+  version = "20190124";
 
   src = fetchFromGitHub {
     owner = "GoogleCloudPlatform";
     repo = "compute-image-packages";
-    rev = "506b9a0dbffec5620887660cd42c57b3cbbadba6";
-    sha256 = "0lmc426mvrajghpavhs6hwl19mgnnh08ziqx5yi15fzpnvwmb8vz";
+    rev = version;
+    sha256 = "08cy0jd463kng6hwbd3nfldsp4dpd2lknlvdm88cq795wy0kh4wp";
   };
 
-  buildInputs = [ bash guest-configs ];
-  propagatedBuildInputs = [ (if pythonOlder "3.7" then boto else distro) setuptools ];
-
-  preBuild = ''
-    cd packages/python-google-compute-engine
-  '';
-
-  disabledTests = [
-    "testExtractInterfaceMetadata"
-    "testCallDhclientIpv6"
-    "testWriteConfig"
-    "testCreateInterfaceMapNetifaces"
-    "testCreateInterfaceMapSysfs"
-    "testGetNetworkInterface"
-  ];
-
-  checkInputs = [ pytestCheckHook ];
+  buildInputs = [ bash ];
+  propagatedBuildInputs = [ boto setuptools distro ];
 
   postPatch = ''
     for file in $(find google_compute_engine -type f); do
@@ -91,15 +32,33 @@ buildPythonPackage rec {
         --replace /sbin/hwclock "${util-linux}/bin/hwclock"
       # SELinux tool ???  /sbin/restorecon
     done
+
+    substituteInPlace google_config/udev/64-gce-disk-removal.rules \
+      --replace /bin/sh "${bash}/bin/sh" \
+      --replace /bin/umount "${util-linux}/bin/umount" \
+      --replace /usr/bin/logger "${util-linux}/bin/logger"
+  '';
+
+  postInstall = ''
+    # allows to install the package in `services.udev.packages` in NixOS
+    mkdir -p $out/lib/udev/rules.d
+    cp -r google_config/udev/*.rules $out/lib/udev/rules.d
+
+    # sysctl snippets will be used by google-compute-config.nix
+    mkdir -p $out/sysctl.d
+    cp google_config/sysctl/*.conf $out/sysctl.d
+
+    patchShebangs $out/bin/*
   '';
 
+  doCheck = false;
   pythonImportsCheck = [ "google_compute_engine" ];
 
   meta = with lib; {
     description = "Google Compute Engine tools and services";
     homepage = "https://github.com/GoogleCloudPlatform/compute-image-packages";
     license = licenses.asl20;
-    maintainers = with maintainers; [ cpcloud zimbatm ];
+    maintainers = with maintainers; [ zimbatm ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/virtualization/linode-cli/default.nix b/pkgs/tools/virtualization/linode-cli/default.nix
index 3faddb498ba99..5704922955429 100644
--- a/pkgs/tools/virtualization/linode-cli/default.nix
+++ b/pkgs/tools/virtualization/linode-cli/default.nix
@@ -11,10 +11,10 @@
 }:
 
 let
-  sha256 = "1hhbwyhw6nmzb2a88papfca5rjavav6srcnvmbni5l6ln79pgqj7";
+  sha256 = "10mlkkprky7qqjrkv43v1lzmlgdjpkzy3729k9xxdm5mpq5bjdwj";
   # specVersion taken from: https://www.linode.com/docs/api/openapi.yaml at `info.version`.
-  specVersion = "4.107.0";
-  specSha256 = "1z260w0517k3sgd2ygzwzkhq5w9rbkls69mnl84501fpd2nx7qvi";
+  specVersion = "4.112.0";
+  specSha256 = "1z509qf5iidn6q5x3p7m8aifxn4bmwifx36wv8ii3nn7l4s9aymr";
   spec = fetchurl {
     url = "https://raw.githubusercontent.com/linode/linode-api-docs/v${specVersion}/openapi.yaml";
     sha256 = specSha256;
@@ -24,7 +24,7 @@ in
 
 buildPythonApplication rec {
   pname = "linode-cli";
-  version = "5.11.1";
+  version = "5.14.0";
 
   src = fetchFromGitHub {
     owner = "linode";
diff --git a/pkgs/tools/virtualization/nixos-shell/default.nix b/pkgs/tools/virtualization/nixos-shell/default.nix
index 9f34fb99c7543..4e54a8db6bf42 100644
--- a/pkgs/tools/virtualization/nixos-shell/default.nix
+++ b/pkgs/tools/virtualization/nixos-shell/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nixos-shell";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "nixos-shell";
     rev = version;
-    sha256 = "sha256-HoY2diusDHXwR0BjYwKR3svLz5LrviE03yxyjWG9oPQ=";
+    sha256 = "sha256-a3NJJv7MscAXhIdr07gEAQDYX0Qgb6ax5E8zSdCIgE8=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/wayland/clipman/default.nix b/pkgs/tools/wayland/clipman/default.nix
index d5ed6ae88ffef..3c974f4cb7798 100644
--- a/pkgs/tools/wayland/clipman/default.nix
+++ b/pkgs/tools/wayland/clipman/default.nix
@@ -7,13 +7,13 @@
 
 buildGoModule rec {
   pname = "clipman";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "yory8";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Yq71nYNL3bFvwhVzrQ1g8n7/4tMmLuYUJ9pMBmxL8e8=";
+    sha256 = "sha256-aZvtgeaS3xxl5/A/Pwlbu0sI7bw2MONbEIK42IDcMy0=";
   };
 
   vendorSha256 = "sha256-Z/sVCJz/igPDdeczC6pemLub6X6z4ZGlBwBmRsEnXKI=";
diff --git a/pkgs/tools/wayland/swaycwd/default.nix b/pkgs/tools/wayland/swaycwd/default.nix
index d8fec3fd15c6c..9214f38b33037 100644
--- a/pkgs/tools/wayland/swaycwd/default.nix
+++ b/pkgs/tools/wayland/swaycwd/default.nix
@@ -4,13 +4,12 @@
 , enableShells ? [ "bash" "zsh" "fish" "sh" "posh" ]
 }:
 nimPackages.buildNimPackage rec{
-
-  name = "swaycwd";
+  pname = "swaycwd";
   version = "0.0.2";
 
   src = fetchFromGitLab {
     owner = "cab404";
-    repo = name;
+    repo = pname;
     rev = "v${version}";
     hash = "sha256-OZWOPtOqcX+fVQCxWntrn98EzFu70WH55rfYCPDMSKk=";
   };
diff --git a/pkgs/tools/wayland/swayr/default.nix b/pkgs/tools/wayland/swayr/default.nix
index 195c0b1bf3851..9ccc13532c2a6 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.7.0";
+  version = "0.11.2";
 
   src = fetchFromSourcehut {
     owner = "~tsdh";
     repo = "swayr";
     rev = "v${version}";
-    sha256 = "sha256-B19cHdoiCbxhvRGi3NzKPKneKgOI4+l8+Qg9/YVgUV8=";
+    sha256 = "sha256-IjOoQbKCiwuoCsh2bOmvcSH3/9KMmavmn1Ib1TLBH8w=";
   };
 
-  cargoSha256 = "sha256-iO64K+d/wEyY/tVztIG8zYSha5X0iTHV7IDVthMJQGA=";
+  cargoSha256 = "sha256-EYaISBnWKplKUAKa9SZufWcykeR/qeApvqwIGB9jt3Q=";
 
   patches = [
     ./icon-paths.patch
diff --git a/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix b/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
index 8673200172e4e..4008461cc15f2 100644
--- a/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
+++ b/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
@@ -1,17 +1,18 @@
 { lib
 , fetchFromGitHub
 , ocamlPackages
+, buildPackages
 }:
 
 ocamlPackages.buildDunePackage rec {
   pname = "wayland-proxy-virtwl";
-  version = "unstable-2021-04-15";
+  version = "unstable-2021-12-05";
 
   src = fetchFromGitHub {
     owner = "talex5";
     repo = pname;
-    rev = "09321a28f3d4c0fa7e41ebb3014106b62090b649";
-    sha256 = "03rc2jp5d2y9y7mfis6kk9gchd49gvq0jg6fq5gi9r21ckb4k5v4";
+    rev = "d7f58d405514dd031f2f12e402c8c6a58e62a885";
+    sha256 = "0riwaqdlrx2gzkrb02v4zdl4ivpmz9g5w87lj3bhqs0l3s6c249s";
   };
 
   postPatch = ''
@@ -22,12 +23,19 @@ ocamlPackages.buildDunePackage rec {
   useDune2 = true;
   minimumOCamlVersion = "4.08";
 
+  nativeBuildInputs = [
+    buildPackages.ocamlPackages.ppx_cstruct
+  ];
+
   buildInputs = with ocamlPackages; [
     wayland
     cmdliner
     logs
+    cstruct-lwt
   ];
 
+  doCheck = true;
+
   meta = {
     homepage = "https://github.com/talex5/wayland-virtwl-proxy";
     description = "Proxy Wayland connections across a VM boundary";
diff --git a/pkgs/tools/wayland/wl-clipboard-x11/default.nix b/pkgs/tools/wayland/wl-clipboard-x11/default.nix
new file mode 100644
index 0000000000000..5e87342dff89d
--- /dev/null
+++ b/pkgs/tools/wayland/wl-clipboard-x11/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, wl-clipboard }:
+
+stdenv.mkDerivation rec {
+  pname = "wl-clipboard-x11";
+  version = "5";
+
+  src = fetchFromGitHub {
+    owner = "brunelli";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-i+oF1Mu72O5WPTWzqsvo4l2CERWWp4Jq/U0DffPZ8vg=";
+  };
+
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  postPatch = ''
+    substituteInPlace src/wl-clipboard-x11 \
+      --replace '$(command -v wl-copy)' ${wl-clipboard}/bin/wl-copy \
+      --replace '$(command -v wl-paste)' ${wl-clipboard}/bin/wl-paste
+  '';
+
+  meta = with lib; {
+    description = "A wrapper to use wl-clipboard as a drop-in replacement for X11 clipboard tools";
+    homepage = "https://github.com/brunelli/wl-clipboard-x11";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ samuelgrf ];
+    mainProgram = "xclip";
+  };
+}
diff --git a/pkgs/tools/wayland/wl-mirror/default.nix b/pkgs/tools/wayland/wl-mirror/default.nix
new file mode 100644
index 0000000000000..0836723760e77
--- /dev/null
+++ b/pkgs/tools/wayland/wl-mirror/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, wayland
+, wayland-protocols
+, wayland-scanner
+, wlr-protocols
+, libGL
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wl-mirror";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "Ferdi265";
+    repo = "wl-mirror";
+    rev = "v${version}";
+    sha256 = "1wjdjzj6h1q51yg70gdrq2yrgg6ihamcwhizxfrjq8955yy2y6ly";
+  };
+
+  patchPhase = ''
+    substituteInPlace CMakeLists.txt \
+      --replace 'WL_PROTOCOL_DIR "/usr' 'WL_PROTOCOL_DIR "${wayland-protocols}' \
+      --replace 'WLR_PROTOCOL_DIR "/usr' 'WLR_PROTOCOL_DIR "${wlr-protocols}'
+  '';
+
+  nativeBuildInputs = [ cmake pkg-config wayland-scanner ];
+  buildInputs = [
+    libGL
+    wayland
+    wayland-protocols
+    wlr-protocols
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/Ferdi265/wl-mirror";
+    description = "Mirrors an output onto a Wayland surface.";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ twitchyliquid64 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/wayland/wluma/default.nix b/pkgs/tools/wayland/wluma/default.nix
new file mode 100644
index 0000000000000..2921e3858b416
--- /dev/null
+++ b/pkgs/tools/wayland/wluma/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, fetchFromGitHub
+, makeWrapper
+, rustPlatform
+, vulkan-loader
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "wluma";
+  version = "2.0.1";
+
+  src = fetchFromGitHub {
+    owner = "maximbaz";
+    repo = "wluma";
+    rev = version;
+    sha256 = "sha256-fqBEJS+SQoPNNEw6jyoiZjq/chY73bQ+cM21F8RdNPE=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/wluma \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ vulkan-loader ]}"
+  '';
+
+  cargoSha256 = "sha256-dZBA6VeJRHmqpazRwjLP1kYcYYN5LCFWkIaXqp4/RkQ=";
+
+  meta = with lib; {
+    description = "Automatic brightness adjustment based on screen contents and ALS";
+    homepage = "https://github.com/maximbaz/wluma";
+    license = licenses.isc;
+    maintainers = with maintainers; [ yevhenshymotiuk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 99e365540a518..4ff9904893803 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -33,6 +33,7 @@ in
   ### Deprecated aliases - for backward compatibility
 
 mapAliases ({
+  _0x0 = throw "0x0 upstream is abandoned and no longer exists: https://gitlab.com/somasis/scripts/";
   PPSSPP = ppsspp; # added 2017-10-01
   QmidiNet = qmidinet;  # added 2016-05-22
   accounts-qt = libsForQt5.accounts-qt; # added 2015-12-19
@@ -54,7 +55,8 @@ mapAliases ({
   ammonite-repl = ammonite; # added 2017-05-02
   amsn = throw "amsn has been removed due to being unmaintained."; # added 2020-12-09
   angelfish = libsForQt5.plasmaMobileGear.angelfish; # added 2021-10-06
-  antimicro = throw "antimicro has been removed as it was broken, see antimicroX instead."; # added 2020-08-06
+  antimicro = throw "antimicro has been removed as it was broken, see antimicrox instead."; # added 2020-08-06
+  antimicroX = antimicrox; # added 2021-10-31
   arduino_core = arduino-core;  # added 2015-02-04
   ardour_5 = throw "ardour_5 has been removed. see https://github.com/NixOS/nixpkgs/issues/139549"; # added 2021-09-28
   arora = throw "arora has been removed."; # added 2020-09-09
@@ -130,6 +132,7 @@ mapAliases ({
   clangAnalyzer = clang-analyzer;  # added 2015-02-20
   claws-mail-gtk3 = claws-mail; # added 2021-07-10
   clawsMail = claws-mail; # added 2016-04-29
+  claws-mail-gtk2 = throw "claws-mail-gtk2 was removed to get rid of Python 2, please use claws-mail"; # added 2021-12-05
   clutter_gtk = clutter-gtk; # added 2018-02-25
   cmakeWithQt4Gui = throw "cmakeWithQt4Gui has been removed in favor of cmakeWithGui (Qt 5)"; # added 2021-05
   codimd = hedgedoc; # added 2020-11-29
@@ -185,6 +188,7 @@ mapAliases ({
   deadbeef-mpris2-plugin = deadbeefPlugins.mpris2; # added 2018-02-23
   deadpixi-sam = deadpixi-sam-unstable;
   debian_devscripts = debian-devscripts; # added 2016-03-23
+  debugedit-unstable = debugedit; # added 2021-11-22
   deepin = throw "deepin was a work in progress and it has been canceled and removed https://github.com/NixOS/nixpkgs/issues/94870"; # added 2020-08-31
   deepspeech = throw "deepspeech was removed in favor of stt. https://github.com/NixOS/nixpkgs/issues/119496"; # added 2021-05-05
   deltachat-electron = deltachat-desktop; # added 2021-07-18
@@ -227,6 +231,7 @@ mapAliases ({
   emacsPackages = emacs.pkgs; # added 2020-12-18
   enblendenfuse = enblend-enfuse; # 2015-09-30
   envelope = throw "envelope has been removed from nixpkgs, as it was unmaintained."; # added 2021-08-05
+  epoxy = libepoxy; # 2021-11-11
   esniper = throw "esniper has been removed because upstream no longer maintains it (and it no longer works)"; # added 2021-04-12
   evolution_data_server = evolution-data-server; # added 2018-02-25
   etcdctl = etcd; # added 2018-04-25
@@ -276,6 +281,7 @@ mapAliases ({
   fuseki = apache-jena-fuseki; # added 2018-04-25
   fwupdate = throw "fwupdate was merged into fwupd"; # added 2020-05-19
   g4py = python3Packages.geant4; # added 2020-06-06
+  gaia = throw "gaia has been removed because it seems abandoned upstream and uses no longer supported dependencies"; # added 2020-06-06
   gdal_1_11 = throw "gdal_1_11 was removed. Use gdal instead."; # added 2021-04-03
   gdb-multitarget = gdb; # added 2017-11-13
   gdk_pixbuf = gdk-pixbuf; # added 2019-05-22
@@ -290,6 +296,7 @@ mapAliases ({
     svn_all_fast_export = svn-all-fast-export;
     topGit = top-git;
   };
+  gitin = throw "gitin has been remove because it was unmaintained and depended on an insecure version of libgit2"; # added 2021-12-07
   glib_networking = glib-networking; # added 2018-02-25
   gmailieer = lieer; # added 2020-04-19
   gmvault = throw "gmvault has been removed because it is unmaintained, mostly broken, and insecure"; # added 2021-03-08
@@ -377,6 +384,7 @@ mapAliases ({
   jbuilder = dune_1; # added 2018-09-09
   jikes = throw "jikes was deprecated on 2019-10-07: abandoned by upstream";
   joseki = apache-jena-fuseki; # added 2016-02-28
+  journalbeat7 = throw "journalbeat has been removed upstream. Use filebeat with the journald input instead.";
   jvmci8 = throw "graalvm8 and its tools were deprecated in favor of graalvm8-ce"; # added 2021-10-15
   json_glib = json-glib; # added 2018-02-25
   kafkacat = kcat; # added 2021-10-07
@@ -391,6 +399,7 @@ mapAliases ({
   julia_1 = throw "julia_1 has been deprecated in favor of julia_10 as it was ambiguous"; # added 2021-03-13
   julia_11 = throw "julia_11 has been deprecated in favor of the latest stable version"; # added 2020-09-15
   julia_13 = throw "julia_13 has been deprecated in favor of the latest stable version"; # added 2021-03-13
+  julia_10-bin = throw "julia_10-bin has been deprecated in favor of the latest LTS version"; # added 2021-12-02
   kbdKeymaps = throw "kbdKeymaps is not needed anymore since dvp and neo are now part of kbd"; # added 2021-04-11
   kdeconnect = plasma5Packages.kdeconnect-kde; # added 2020-10-28
   kdiff3-qt5 = kdiff3; # added 2017-02-18
@@ -409,6 +418,7 @@ mapAliases ({
   kerberos = libkrb5; # moved from top-level 2021-03-14
   keymon = throw "keymon has been removed from nixpkgs, as it's abandoned and archived."; # added 2019-12-10
   kramdown-rfc2629 = rubyPackages.kramdown-rfc2629; # added 2021-03-23
+  krita-beta = krita; # moved from top-level 2021-12-23
   kvm = qemu_kvm; # added 2018-04-25
   latinmodern-math = lmmath;
   letsencrypt = certbot; # added 2016-05-16
@@ -459,6 +469,7 @@ mapAliases ({
   libwnck3 = libwnck;
   lilypond-unstable = lilypond; # added 2021-03-11
   links = links2; # added 2016-01-31
+  linuxband = throw "linuxband has been removed from nixpkgs, as it's abandoned upstream."; # added 2021-12-09
   linux_rpi0 = linuxKernel.kernels.linux_rpi1;
   linuxPackages_rpi0 = linuxKernel.packages.linux_rpi1;
   linuxPackages_rt_5_4 = linuxKernel.packages.linux_rt_5_4;
@@ -474,7 +485,6 @@ mapAliases ({
   linuxPackages_4_19 = linuxKernel.packages.linux_4_19;
   linuxPackages_5_4 = linuxKernel.packages.linux_5_4;
   linuxPackages_5_10 = linuxKernel.packages.linux_5_10;
-  linuxPackages_5_14 = linuxKernel.packages.linux_5_14;
   linuxPackages_5_15 = linuxKernel.packages.linux_5_15;
 
   linux_mptcp_95 = linuxKernel.kernels.linux_mptcp_95;
@@ -490,7 +500,6 @@ mapAliases ({
   linux-rt_5_4 = linuxKernel.kernels.linux_rt_5_4;
   linux_5_10 = linuxKernel.kernels.linux_5_10;
   linux-rt_5_10 = linuxKernel.kernels.linux_rt_5_10;
-  linux_5_14 = linuxKernel.kernels.linux_5_14;
   linux_5_15 = linuxKernel.kernels.linux_5_15;
 
   # added 2020-04-04
@@ -547,6 +556,7 @@ mapAliases ({
   minergate = throw "minergate has been removed from nixpkgs, because the package is unmaintained and the site has a bad reputation"; # added 2021-08-13
   minergate-cli = throw "minergatecli has been removed from nixpkgs, because the package is unmaintained and the site has a bad reputation"; # added 2021-08-13
   minetime = throw "minetime has been removed from nixpkgs, because it was discontinued 2021-06-22"; # added 2021-10-14
+  monero = monero-cli; # added 2021-11-28
   mopidy-gmusic = throw "mopidy-gmusic has been removed because Google Play Music was discontinued"; # added 2021-03-07
   mopidy-local-images = throw "mopidy-local-images has been removed as it's unmaintained. Its functionality has been merged into the mopidy-local extension."; # added 2020-10-18
   mopidy-local-sqlite = throw "mopidy-local-sqlite has been removed as it's unmaintained. Its functionality has been merged into the mopidy-local extension."; # added 2020-10-18
@@ -713,6 +723,7 @@ mapAliases ({
   polarssl = mbedtls; # added 2018-04-25
   poppler_qt5 = libsForQt5.poppler;  # added 2015-12-19
   postgresql96 = postgresql_9_6;
+  postgresql_9_6 = throw "postgresql_9_6 has been removed from nixpkgs, as this version is no longer supported by upstream"; # added 2021-12-03
   # postgresql plugins
   pgjwt = postgresqlPackages.pgjwt;
   pg_repack = postgresqlPackages.pg_repack;
@@ -759,6 +770,7 @@ mapAliases ({
   qcsxcad = libsForQt5.qcsxcad;  # added 2020-11-05
   qmk_firmware = throw "qmk_firmware has been removed because it was broken"; # added 2021-04-02
   qr-filetransfer = throw ''"qr-filetransfer" has been renamed to "qrcp"''; # added 2020-12-02
+  qt5ct = libsForQt5.qt5ct; # added 2021-12-27
   quake3game = ioquake3; # added 2016-01-14
   quilter = throw "quilter has been removed from nixpkgs, as it was unmaintained."; # added 2021-08-03
   qvim = throw "qvim has been removed."; # added 2020-08-31
@@ -781,6 +793,7 @@ mapAliases ({
   # due to it being inside the linuxPackagesFor function.
   rtlwifi_new-firmware = rtw88-firmware; # added 2021-03-14
   recordmydesktop = throw "recordmydesktop has been removed from nixpkgs, as it's unmaintained and uses deprecated libraries"; # added 2019-12-10
+  residualvm = throw "residualvm was merged to scummvm code in 2018-06-15; consider using scummvm"; # added 2021-11-27
   retroshare06 = retroshare;
   gtk-recordmydesktop = throw "gtk-recordmydesktop has been removed from nixpkgs, as it's unmaintained and uses deprecated libraries"; # added 2019-12-10
   qt-recordmydesktop = throw "qt-recordmydesktop has been removed from nixpkgs, as it's abandoned and uses deprecated libraries"; # added 2019-12-10
@@ -829,9 +842,11 @@ mapAliases ({
   scaff = throw "scaff is deprecated - replaced by https://gitlab.com/jD91mZM2/inc (not in nixpkgs yet)"; # added 2020-03-01
   scim = sc-im; # added 2016-01-22
   scollector = bosun; # added 2018-04-25
+  scyther = throw "scyther has been removed since it currently only supports Python 2, see https://github.com/cascremers/scyther/issues/20"; # added 2021-10-07
   sdlmame = mame; # added 2019-10-30
   seeks = throw "seeks has been removed from nixpkgs, as it was unmaintained"; # added 2020-06-21
   seg3d = throw "seg3d has been removed from nixpkgs (2019-11-10)";
+  sepolgen = throw "sepolgen was merged into selinux-python"; # added 2021-11-11
   shared_mime_info = shared-mime-info; # added 2018-02-25
   skrooge2 = skrooge; # added 2017-02-18
   sky = throw "sky has been removed from nixpkgs (2020-09-16)";
@@ -919,7 +934,8 @@ mapAliases ({
   telepathy_salut = telepathy-salut; # added 2018-02-25
   telnet = inetutils; # added 2018-05-15
   terminus = throw "terminus has been removed, it was unmaintained in nixpkgs"; # added 2021-08-21
-  terraform_1_0_0 = terraform_1_0; # added 2021-06-15
+  terraform_1_0_0 = throw "terraform_1_0_0 has been renamed to terraform_1"; # added 2021-06-15
+  terraform_1_0 = throw "terraform_1_0 has been renamed to terraform_1"; # added 2021-12-08
   terraform-provider-ibm = terraform-providers.ibm; # added 2018-09-28
   terraform-provider-libvirt = terraform-providers.libvirt; # added 2018-09-28
   terraform-provider-lxd = terraform-providers.lxd; # added 2020-03-16
@@ -1209,6 +1225,8 @@ mapAliases ({
     qqc2-breeze-style
     sddm-kcm systemsettings
     xdg-desktop-portal-kde
+    plasma-phone-components
+    plasma-nano
   ;
   inherit (plasma5Packages.thirdParty)
     plasma-applet-caffeine-plus
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index cf107454f8080..e5ae544ba32c6 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -186,6 +186,10 @@ with pkgs;
 
   antsimulator = callPackage ../games/antsimulator { };
 
+  aocd = with python3Packages; toPythonApplication aocd;
+
+  astrolog = callPackage ../applications/science/astronomy/astrolog { };
+
   atkinson-hyperlegible = callPackage ../data/fonts/atkinson-hyperlegible { };
 
   atuin = callPackage ../tools/misc/atuin {
@@ -204,6 +208,10 @@ with pkgs;
 
   bacnet-stack = callPackage ../tools/networking/bacnet-stack {};
 
+  bakelite = callPackage ../tools/backup/bakelite { };
+
+  beyond-identity = callPackage ../tools/security/beyond-identity {};
+
   breakpad = callPackage ../development/misc/breakpad { };
 
   buf = callPackage ../development/tools/buf { };
@@ -273,6 +281,8 @@ with pkgs;
 
   corgi = callPackage ../development/tools/corgi { };
 
+  colmena = callPackage ../tools/admin/colmena { };
+
   colobot = callPackage ../games/colobot {};
 
   colorz = callPackage ../tools/misc/colorz { };
@@ -295,9 +305,11 @@ with pkgs;
 
   crow-translate = libsForQt5.callPackage ../applications/misc/crow-translate { };
 
-  dhallToNix = callPackage ../build-support/dhall-to-nix.nix {
-    inherit dhall-nix;
-  };
+  dhallDirectoryToNix = callPackage ../build-support/dhall/directory-to-nix.nix { };
+
+  dhallPackageToNix = callPackage ../build-support/dhall/package-to-nix.nix { };
+
+  dhallToNix = callPackage ../build-support/dhall/to-nix.nix { };
 
   deadcode = callPackage ../development/tools/deadcode { };
 
@@ -337,6 +349,8 @@ with pkgs;
 
   protoc-gen-go-grpc = callPackage ../development/tools/protoc-gen-go-grpc { };
 
+  protoc-gen-go-vtproto = callPackage ../development/tools/protoc-gen-go-vtproto { };
+
   protoc-gen-grpc-web = callPackage ../development/tools/protoc-gen-grpc-web { };
 
   protoc-gen-twirp = callPackage ../development/tools/protoc-gen-twirp { };
@@ -363,6 +377,8 @@ with pkgs;
 
   onesixtyone = callPackage ../tools/security/onesixtyone {};
 
+  oletools = with python3.pkgs; toPythonApplication oletools;
+
   creddump = callPackage ../tools/security/creddump {};
 
   credential-detector = callPackage ../tools/security/credential-detector { };
@@ -476,7 +492,7 @@ with pkgs;
     cacert = buildPackages.cacert;
     git-lfs = buildPackages.git-lfs;
   }) // { # fetchgit is a function, so we use // instead of passthru.
-    tests = callPackages ../build-support/fetchgit/tests.nix {};
+    tests = pkgs.tests.fetchgit;
   };
 
   fetchgitLocal = callPackage ../build-support/fetchgitlocal { };
@@ -503,6 +519,8 @@ with pkgs;
 
   packr = callPackage ../development/libraries/packr { };
 
+  perseus-cli = callPackage ../development/tools/perseus-cli { };
+
   pet = callPackage ../development/tools/pet { };
 
   pkger = callPackage ../development/libraries/pkger { };
@@ -519,7 +537,7 @@ with pkgs;
 
   fetchpatch = callPackage ../build-support/fetchpatch { }
     // {
-      tests = callPackages ../build-support/fetchpatch/tests.nix { };
+      tests = pkgs.tests.fetchpatch;
     };
 
   fetchs3 = callPackage ../build-support/fetchs3 { };
@@ -537,7 +555,7 @@ with pkgs;
 
   fetchFirefoxAddon = callPackage ../build-support/fetchfirefoxaddon { }
     // {
-      tests = callPackages ../build-support/fetchfirefoxaddon/tests.nix { };
+      tests = pkgs.tests.fetchFirefoxAddon;
     };
 
   fetchNextcloudApp = callPackage ../build-support/fetchnextcloudapp {};
@@ -678,6 +696,31 @@ with pkgs;
   makeWrapper = makeSetupHook { deps = [ dieHook ]; substitutions = { shell = targetPackages.runtimeShell; }; }
                               ../build-support/setup-hooks/make-wrapper.sh;
 
+  makeBinaryWrapper = let
+    f = { cc, sanitizers }: let
+      san = lib.concatMapStringsSep " " (s: "-fsanitize=${s}") sanitizers;
+      script = runCommand "make-binary-wrapper.sh" {} ''
+        substitute ${../build-support/setup-hooks/make-binary-wrapper.sh} $out \
+          --replace " @CC@ " " ${cc}/bin/cc ${san} "
+      '';
+    in
+      makeSetupHook {
+        deps = [ dieHook cc ];
+        substitutions.passthru.tests = callPackage ../test/make-binary-wrapper {
+          makeBinaryWrapper = makeBinaryWrapper.override {
+            sanitizers = (if stdenv.isDarwin && stdenv.isAarch64
+              then [ ]
+              else [ "undefined" "address" ]
+            );
+          };
+        };
+      } script;
+  in
+    lib.makeOverridable f {
+      cc = stdenv.cc;
+      sanitizers = [ ];
+    };
+
   makeModulesClosure = { kernel, firmware, rootModules, allowMissing ? false }:
     callPackage ../build-support/kernel/modules-closure.nix {
       inherit kernel firmware rootModules allowMissing;
@@ -789,8 +832,6 @@ with pkgs;
 
   ### TOOLS
 
-  _0x0 = callPackage ../tools/misc/0x0 { };
-
   _3llo = callPackage ../tools/misc/3llo { };
 
   _3mux = callPackage ../tools/misc/3mux { };
@@ -844,7 +885,9 @@ with pkgs;
     type = "OPN";
   };
 
-  arc_unpacker = callPackage ../tools/archivers/arc_unpacker { };
+  arc_unpacker = callPackage ../tools/archivers/arc_unpacker {
+    boost = boost16x; # checkPhase fails with Boost 1.77
+  };
 
   adminer = callPackage ../servers/adminer { };
 
@@ -964,6 +1007,8 @@ with pkgs;
 
   godns = callPackage ../tools/networking/godns { };
 
+  godspeed = callPackage ../tools/networking/godspeed { };
+
   ksnip = libsForQt5.callPackage ../tools/misc/ksnip { };
 
   linux-router = callPackage ../tools/networking/linux-router { };
@@ -974,6 +1019,8 @@ with pkgs;
 
   pferd = callPackage ../tools/misc/pferd {};
 
+  qflipper = callPackage ../tools/misc/qflipper { };
+
   quich = callPackage ../tools/misc/quich { } ;
 
   redfang = callPackage ../tools/networking/redfang { };
@@ -1087,6 +1134,8 @@ with pkgs;
 
   nimmm = callPackage ../applications/terminal-emulators/nimmm { };
 
+  notion-app-enhanced = callPackage ../applications/office/notion-app-enhanced { };
+
   pikchr = callPackage ../tools/graphics/pikchr { };
 
   roxterm = callPackage ../applications/terminal-emulators/roxterm { };
@@ -1263,7 +1312,8 @@ with pkgs;
 
   arduino-cli = callPackage ../development/embedded/arduino/arduino-cli { };
 
-  arduino-core = callPackage ../development/embedded/arduino/arduino-core { };
+  arduino-core = callPackage ../development/embedded/arduino/arduino-core/chrootenv.nix { };
+  arduino-core-unwrapped = callPackage ../development/embedded/arduino/arduino-core { };
 
   arduino-mk = callPackage ../development/embedded/arduino/arduino-mk {};
 
@@ -1474,7 +1524,7 @@ with pkgs;
   bic = callPackage ../development/interpreters/bic { };
 
   binance = callPackage ../applications/misc/binance {
-    electron = electron_12;
+    electron = electron_13;
   };
 
   bit = callPackage ../applications/version-management/git-and-tools/bit { };
@@ -1697,6 +1747,8 @@ with pkgs;
 
   foxdot = with python3Packages; toPythonApplication foxdot;
 
+  fspy = callPackage ../applications/misc/fspy { };
+
   fxlinuxprintutil = callPackage ../tools/misc/fxlinuxprintutil { };
 
   genann = callPackage ../development/libraries/genann { };
@@ -1707,8 +1759,6 @@ with pkgs;
 
   genymotion = callPackage ../development/mobile/genymotion { };
 
-  gaia = callPackage ../development/libraries/gaia { };
-
   galene = callPackage ../servers/web-apps/galene {
     buildGoModule = buildGo115Module;
   };
@@ -1769,10 +1819,14 @@ with pkgs;
 
   gomatrix = callPackage ../applications/misc/gomatrix { };
 
+  gomapenum = callPackage ../tools/security/gomapenum { };
+
   gopacked = callPackage ../applications/misc/gopacked { };
 
   gucci = callPackage ../tools/text/gucci { };
 
+  guglielmo = libsForQt5.callPackage ../applications/radio/guglielmo { };
+
   grc = python3Packages.callPackage ../tools/misc/grc { };
 
   green-pdfviewer = callPackage ../applications/misc/green-pdfviewer {
@@ -1837,10 +1891,14 @@ with pkgs;
 
   mdr = callPackage ../tools/misc/mdr { };
 
+  mobilecoin-wallet = callPackage ../applications/misc/mobilecoin-wallet { };
+
   mpdevil = callPackage ../applications/audio/mpdevil { };
 
   pacparser = callPackage ../tools/networking/pacparser { };
 
+  opencbm = callPackage ../tools/misc/opencbm { };
+
   parquet-tools = callPackage ../tools/misc/parquet-tools { };
 
   pass = callPackage ../tools/security/pass { };
@@ -1861,6 +1919,10 @@ with pkgs;
 
   passExtensions = recurseIntoAttrs pass.extensions;
 
+  inherd-quake = callPackage ../applications/misc/inherd-quake {
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
+  };
+
   xjadeo = callPackage ../tools/video/xjadeo { };
 
   asc-key-to-qr-code-gif = callPackage ../tools/security/asc-key-to-qr-code-gif { };
@@ -1988,6 +2050,8 @@ with pkgs;
 
   asmfmt = callPackage ../development/tools/asmfmt { };
 
+  asmrepl = callPackage ../development/interpreters/asmrepl { };
+
   aspcud = callPackage ../tools/misc/aspcud { };
 
   at = callPackage ../tools/system/at { };
@@ -2104,8 +2168,7 @@ with pkgs;
     filebeat7
     heartbeat7
     metricbeat7
-    packetbeat7
-    journalbeat7;
+    packetbeat7;
 
   filebeat = filebeat6;
   heartbeat = heartbeat6;
@@ -2276,6 +2339,8 @@ with pkgs;
 
   btrfs-progs = callPackage ../tools/filesystems/btrfs-progs { };
 
+  btrfs-snap = callPackage ../tools/filesystems/btrfs-snap { };
+
   btlejack = python3Packages.callPackage ../applications/radio/btlejack { };
 
   btrbk = callPackage ../tools/backup/btrbk {
@@ -2296,6 +2361,8 @@ with pkgs;
 
   bwm_ng = callPackage ../tools/networking/bwm-ng { };
 
+  bwbasic = callPackage ../development/interpreters/bwbasic { };
+
   byobu = callPackage ../tools/misc/byobu {
     # Choices: [ tmux screen ];
     textual-window-manager = tmux;
@@ -2345,7 +2412,7 @@ with pkgs;
     '';
   };
 
-  stack2nix = with haskell.lib; overrideCabal (justStaticExecutables haskellPackages.stack2nix) (drv: {
+  stack2nix = with haskell.lib; overrideCabal (justStaticExecutables haskellPackages.stack2nix) (_: {
     executableToolDepends = [ makeWrapper ];
     postInstall = ''
       wrapProgram $out/bin/stack2nix \
@@ -2427,6 +2494,8 @@ with pkgs;
 
   cfdyndns = callPackage ../applications/networking/dyndns/cfdyndns { };
 
+  cfm = callPackage ../applications/misc/cfm { };
+
   charliecloud = callPackage ../applications/virtualization/charliecloud { };
 
   chelf = callPackage ../tools/misc/chelf { };
@@ -2455,6 +2524,8 @@ with pkgs;
 
   clickclack = callPackage ../tools/misc/clickclack { };
 
+  clickgen = with python3Packages; toPythonApplication clickgen;
+
   clog-cli = callPackage ../development/tools/clog-cli { };
 
   cloud-init = python3.pkgs.callPackage ../tools/virtualization/cloud-init { };
@@ -2519,6 +2590,8 @@ with pkgs;
 
   chntpw = callPackage ../tools/security/chntpw { };
 
+  chopchop = callPackage ../tools/security/chopchop { };
+
   cliphist = callPackage ../tools/wayland/cliphist { };
 
   clipman = callPackage ../tools/wayland/clipman { };
@@ -2545,6 +2618,10 @@ with pkgs;
 
   wl-clipboard = callPackage ../tools/wayland/wl-clipboard { };
 
+  wl-clipboard-x11 = callPackage ../tools/wayland/wl-clipboard-x11 { };
+
+  wl-mirror = callPackage ../tools/wayland/wl-mirror { };
+
   wlogout = callPackage ../tools/wayland/wlogout { };
 
   wlr-randr = callPackage ../tools/wayland/wlr-randr { };
@@ -2553,6 +2630,8 @@ with pkgs;
 
   wlsunset = callPackage ../tools/wayland/wlsunset { };
 
+  wluma = callPackage ../tools/wayland/wluma {  };
+
   wob = callPackage ../tools/wayland/wob { };
 
   wshowkeys = callPackage ../tools/wayland/wshowkeys { };
@@ -2563,6 +2642,10 @@ with pkgs;
 
   clipster = callPackage ../tools/misc/clipster { };
 
+  clockify = callPackage ../applications/office/clockify {
+    electron = electron_11;
+  };
+
   contrast = callPackage ../applications/accessibility/contrast { };
 
   cplex = callPackage ../applications/science/math/cplex (config.cplex or {});
@@ -2612,6 +2695,8 @@ with pkgs;
 
   csv2odf = callPackage ../applications/office/csv2odf { };
 
+  csvdiff = callPackage ../tools/text/csvdiff { };
+
   csview = callPackage ../tools/text/csview { };
 
   csvkit = callPackage ../tools/text/csvkit { };
@@ -2646,12 +2731,16 @@ with pkgs;
 
   howard-hinnant-date = callPackage ../development/libraries/howard-hinnant-date { };
 
+  datefmt = callPackage ../tools/misc/datefmt { };
+
   datefudge = callPackage ../tools/system/datefudge { };
 
   dateutils = callPackage ../tools/misc/dateutils { };
 
   datovka = libsForQt5.callPackage ../applications/networking/datovka { };
 
+  dave = callPackage ../servers/http/dave { };
+
   dconf = callPackage ../development/libraries/dconf { };
 
   dcw-gmt = callPackage ../applications/gis/gmt/dcw.nix { };
@@ -2859,6 +2948,8 @@ with pkgs;
 
   elogind = callPackage ../applications/misc/elogind { };
 
+  elpa = callPackage ../development/libraries/elpa { };
+
   enca = callPackage ../tools/text/enca { };
 
   enigma = callPackage ../games/enigma {};
@@ -2909,6 +3000,10 @@ with pkgs;
 
   fast-cpp-csv-parser = callPackage ../development/libraries/fast-cpp-csv-parser { };
 
+  fast-ssh = callPackage ../tools/networking/fast-ssh {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   faudio = callPackage ../development/libraries/faudio { };
 
   fd = callPackage ../tools/misc/fd { };
@@ -3018,6 +3113,8 @@ with pkgs;
 
   gh-ost = callPackage ../tools/misc/gh-ost { };
 
+  ghdorker = callPackage ../tools/security/ghdorker { };
+
   ghidra-bin = callPackage ../tools/security/ghidra { };
 
   gif-for-cli = callPackage ../tools/misc/gif-for-cli { };
@@ -3082,6 +3179,8 @@ with pkgs;
 
   gotify-desktop = callPackage ../tools/misc/gotify-desktop { };
 
+  gotypist = callPackage ../games/gotypist { };
+
   gping = callPackage ../tools/networking/gping { };
 
   gpu-burn = callPackage ../applications/misc/gpu-burn { };
@@ -3118,6 +3217,8 @@ with pkgs;
 
   hebcal = callPackage ../tools/misc/hebcal {};
 
+  heroic = callPackage ../games/heroic {};
+
   hexio = callPackage ../development/tools/hexio { };
 
   hexyl = callPackage ../tools/misc/hexyl { };
@@ -3226,6 +3327,8 @@ with pkgs;
 
   libxnd = callPackage ../development/libraries/libxnd { };
 
+  lifeograph = callPackage ../applications/editors/lifeograph { };
+
   link-grammar = callPackage ../tools/text/link-grammar { };
 
   linuxptp = callPackage ../os-specific/linux/linuxptp { };
@@ -3262,6 +3365,12 @@ with pkgs;
 
   lynis = callPackage ../tools/security/lynis { };
 
+  maigret = callPackage ../tools/security/maigret { };
+
+  maliit-framework = libsForQt5.callPackage ../applications/misc/maliit-framework { };
+
+  maliit-keyboard = libsForQt5.callPackage ../applications/misc/maliit-keyboard { };
+
   mapcidr = callPackage ../tools/misc/mapcidr { };
 
   mapproxy = callPackage ../applications/misc/mapproxy { };
@@ -3280,7 +3389,9 @@ with pkgs;
 
   medusa = callPackage ../tools/security/medusa { };
 
-  megasync = libsForQt515.callPackage ../applications/misc/megasync { };
+  megasync = libsForQt5.callPackage ../applications/misc/megasync {
+    ffmpeg = ffmpeg-full;
+  };
 
   megacmd = callPackage ../applications/misc/megacmd { };
 
@@ -3294,7 +3405,9 @@ with pkgs;
 
   merriweather-sans = callPackage ../data/fonts/merriweather-sans { };
 
-  meson = callPackage ../development/tools/build-managers/meson { };
+  # TODO: call a sprintable to deprecate Meson 0.57 as soon as possible
+  meson = callPackage ../development/tools/build-managers/meson/0.57 { };
+  meson_0_60 = callPackage ../development/tools/build-managers/meson/0.60 { };
 
   meson-tools = callPackage ../misc/meson-tools { };
 
@@ -3316,6 +3429,8 @@ with pkgs;
 
   mlarchive2maildir = callPackage ../applications/networking/mailreaders/mlarchive2maildir { };
 
+  mmctl = callPackage ../tools/misc/mmctl { };
+
   molly-brown = callPackage ../servers/gemini/molly-brown { };
 
   monetdb = callPackage ../servers/sql/monetdb { };
@@ -3332,6 +3447,8 @@ with pkgs;
 
   moonraker = callPackage ../servers/moonraker { };
 
+  morsel = callPackage ../tools/text/morsel {};
+
   mousetweaks = callPackage ../applications/accessibility/mousetweaks {
     inherit (xorg) libX11 libXtst libXfixes;
   };
@@ -3457,7 +3574,7 @@ with pkgs;
   pn = callPackage ../tools/text/pn { };
 
   pocket-casts = callPackage ../applications/audio/pocket-casts {
-    electron = electron_12;
+    electron = electron_14;
   };
 
   poweralertd = callPackage ../tools/misc/poweralertd { };
@@ -3509,6 +3626,8 @@ with pkgs;
 
   restream = callPackage ../applications/misc/remarkable/restream { };
 
+  ropgadget = with python3Packages; toPythonApplication ropgadget;
+
   ryujinx = callPackage ../misc/emulators/ryujinx { };
 
   scour = with python3Packages; toPythonApplication scour;
@@ -3545,8 +3664,12 @@ with pkgs;
 
   spacevim = callPackage ../applications/editors/spacevim { };
 
+  space-cadet-pinball = callPackage ../games/space-cadet-pinball { };
+
   ssmsh = callPackage ../tools/admin/ssmsh { };
 
+  stacs = callPackage ../tools/security/stacs { };
+
   stagit = callPackage ../development/tools/stagit { };
 
   starboard = callPackage ../applications/networking/cluster/starboard { };
@@ -3710,10 +3833,9 @@ with pkgs;
     enableExtraPlugins = true;
   });
 
-  asciidoctor = callPackage ../tools/typesetting/asciidoctor {
-    # epubcheck pulls in Java, which is problematic on some platforms
-    epubcheck = null;
-  };
+  asciidoctor = callPackage ../tools/typesetting/asciidoctor { };
+
+  asciidoctor-with-extensions = callPackage ../tools/typesetting/asciidoctor-with-extensions { };
 
   asciidoctorj = callPackage ../tools/typesetting/asciidoctorj { };
 
@@ -3812,6 +3934,8 @@ with pkgs;
 
   blastem = callPackage ../misc/emulators/blastem { };
 
+  blahtexml = callPackage ../tools/typesetting/tex/blahtexml { };
+
   blueberry = callPackage ../tools/bluetooth/blueberry { };
 
   blueman = callPackage ../tools/bluetooth/blueman { };
@@ -3822,6 +3946,8 @@ with pkgs;
 
   bomutils = callPackage ../tools/archivers/bomutils { };
 
+  boofuzz= callPackage ../tools/security/boofuzz { };
+
   bsdbuild = callPackage ../development/tools/misc/bsdbuild { };
 
   bsdiff = callPackage ../tools/compression/bsdiff { };
@@ -3920,7 +4046,7 @@ with pkgs;
 
   libceph = ceph.lib;
   inherit (callPackages ../tools/filesystems/ceph {
-    boost = boost17x.override { enablePython = true; python = python3; };
+    boost = boost175.override { enablePython = true; python = python3; };
     lua = lua5_4;
   })
     ceph
@@ -3983,7 +4109,7 @@ with pkgs;
 
   circus = callPackage ../tools/networking/circus { };
 
-  citrix_workspace = citrix_workspace_21_09_0;
+  citrix_workspace = citrix_workspace_21_12_0;
 
   inherit (callPackage ../applications/networking/remote/citrix-workspace { })
     citrix_workspace_20_04_0
@@ -3996,6 +4122,7 @@ with pkgs;
     citrix_workspace_21_06_0
     citrix_workspace_21_08_0
     citrix_workspace_21_09_0
+    citrix_workspace_21_12_0
   ;
 
   citra = libsForQt5.callPackage ../misc/emulators/citra { };
@@ -4147,7 +4274,7 @@ with pkgs;
 
     mozc = callPackage ../tools/inputmethods/ibus-engines/ibus-mozc {
       stdenv = clangStdenv;
-      protobuf = pkgs.protobuf3_8.overrideDerivation (oldAttrs: { stdenv = clangStdenv; });
+      protobuf = pkgs.protobuf3_8.overrideDerivation (_: { stdenv = clangStdenv; });
     };
 
     rime = callPackage ../tools/inputmethods/ibus-engines/ibus-rime { };
@@ -4185,6 +4312,10 @@ with pkgs;
 
   agebox = callPackage ../tools/security/agebox { };
 
+  age-plugin-yubikey = callPackage ../tools/security/age-plugin-yubikey {
+    inherit (pkgs.darwin.apple_sdk.frameworks) PCSC;
+  };
+
   bore = callPackage ../tools/networking/bore {
     inherit (darwin) Libsystem;
     inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
@@ -4201,11 +4332,9 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
   };
 
-  code-browser-qt = libsForQt5.callPackage ../applications/editors/code-browser { withQt = true;
-                                                                                };
-  code-browser-gtk = callPackage ../applications/editors/code-browser { withGtk = true;
-                                                                        qtbase = qt5.qtbase;
-                                                                      };
+  code-browser-qt = libsForQt5.callPackage ../applications/editors/code-browser { withQt = true; };
+  code-browser-gtk2 = callPackage ../applications/editors/code-browser { withGtk2 = true; };
+  code-browser-gtk = callPackage ../applications/editors/code-browser { withGtk3 = true; };
 
   c14 = callPackage ../applications/networking/c14 { };
 
@@ -4301,6 +4430,8 @@ with pkgs;
 
   crackxls = callPackage ../tools/security/crackxls { };
 
+  crd2pulumi = callPackage ../development/tools/crd2pulumi { };
+
   create-cycle-app = nodePackages.create-cycle-app;
 
   createrepo_c = callPackage ../tools/package-management/createrepo_c { };
@@ -4436,12 +4567,12 @@ with pkgs;
 
   debootstrap = callPackage ../tools/misc/debootstrap { };
 
-  debugedit-unstable = callPackage ../development/tools/misc/debugedit { };
+  debugedit = callPackage ../development/tools/misc/debugedit { };
 
   deer = callPackage ../shells/zsh/zsh-deer { };
 
   delta = callPackage ../applications/version-management/git-and-tools/delta {
-    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin.apple_sdk.frameworks) DiskArbitration Foundation Security;
   };
 
   deno = callPackage ../development/web/deno {
@@ -4615,6 +4746,9 @@ with pkgs;
   dolphin-emu-beta = qt5.callPackage ../misc/emulators/dolphin-emu/master.nix {
     inherit (darwin.apple_sdk.frameworks) CoreBluetooth ForceFeedback IOKit OpenGL;
   };
+  dolphin-emu-primehack = qt5.callPackage ../misc/emulators/dolphin-emu/primehack.nix {
+    inherit (darwin.apple_sdk.frameworks) CoreBluetooth ForceFeedback IOKit OpenGL;
+  };
 
   domoticz = callPackage ../servers/domoticz { };
 
@@ -4640,6 +4774,8 @@ with pkgs;
 
   driftnet = callPackage ../tools/networking/driftnet {};
 
+  driftctl = callPackage ../applications/networking/cluster/driftctl { };
+
   drill = callPackage ../tools/networking/drill {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -4845,9 +4981,7 @@ with pkgs;
 
   vorta = libsForQt5.callPackage ../applications/backup/vorta { };
 
-  vowpal-wabbit = callPackage ../applications/science/machine-learning/vowpal-wabbit {
-    boost = boost17x;
-  };
+  vowpal-wabbit = callPackage ../applications/science/machine-learning/vowpal-wabbit { };
 
   utahfs = callPackage ../applications/networking/utahfs { };
 
@@ -4907,8 +5041,8 @@ 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!
-  elk6Version = "6.8.3";
-  elk7Version = "7.11.1";
+  elk6Version = "6.8.21";
+  elk7Version = "7.16.1";
 
   elasticsearch6 = callPackage ../servers/search/elasticsearch/6.x.nix {
     util-linux = util-linuxMinimal;
@@ -4955,7 +5089,9 @@ with pkgs;
 
   emv = callPackage ../tools/misc/emv { };
 
-  enblend-enfuse = callPackage ../tools/graphics/enblend-enfuse { };
+  enblend-enfuse = callPackage ../tools/graphics/enblend-enfuse {
+    boost = boost172;
+  };
 
   endlessh = callPackage ../servers/endlessh { };
 
@@ -4985,7 +5121,9 @@ with pkgs;
 
   escrotum = callPackage ../tools/graphics/escrotum { };
 
-  etcher = callPackage ../tools/misc/etcher { };
+  etcher = callPackage ../tools/misc/etcher {
+    electron = electron_14;
+  };
 
   ethtool = callPackage ../tools/misc/ethtool { };
 
@@ -5076,7 +5214,7 @@ with pkgs;
     mozc = callPackage ../tools/inputmethods/fcitx-engines/fcitx-mozc {
       python = python2;
       inherit (python2Packages) gyp;
-      protobuf = pkgs.protobuf3_8.overrideDerivation (oldAttrs: { stdenv = clangStdenv; });
+      protobuf = pkgs.protobuf3_8.overrideDerivation (_: { stdenv = clangStdenv; });
     };
 
     table-extra = callPackage ../tools/inputmethods/fcitx-engines/fcitx-table-extra { };
@@ -5313,6 +5451,8 @@ with pkgs;
     mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { };
   };
 
+  fq = callPackage ../development/tools/fq { };
+
   franz = callPackage ../applications/networking/instant-messengers/franz {
     mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { };
   };
@@ -5465,6 +5605,8 @@ with pkgs;
 
   genimage = callPackage ../tools/filesystems/genimage { };
 
+  genmap = callPackage ../applications/science/biology/genmap { };
+
   geonkick = callPackage ../applications/audio/geonkick {};
 
   gerrit = callPackage ../applications/version-management/gerrit { };
@@ -5503,6 +5645,8 @@ with pkgs;
 
   ghr = callPackage ../applications/version-management/git-and-tools/ghr { };
 
+  ghrepo-stats = with python3Packages; toPythonApplication ghrepo-stats;
+
   gibberish-detector = with python3Packages; toPythonApplication gibberish-detector;
 
   gibo = callPackage ../tools/misc/gibo { };
@@ -5580,6 +5724,8 @@ with pkgs;
 
   git-cola = callPackage ../applications/version-management/git-and-tools/git-cola { };
 
+  git-credential-1password = callPackage ../applications/version-management/git-and-tools/git-credential-1password { };
+
   git-crecord = callPackage ../applications/version-management/git-crecord { };
 
   git-crypt = callPackage ../applications/version-management/git-and-tools/git-crypt { };
@@ -5596,9 +5742,7 @@ with pkgs;
 
   git-fast-export = callPackage ../applications/version-management/git-and-tools/fast-export { };
 
-  git-filter-repo = callPackage ../applications/version-management/git-and-tools/git-filter-repo {
-    pythonPackages = python3Packages;
-  };
+  git-filter-repo = with python3Packages; toPythonApplication git-filter-repo;
 
   git-gone = callPackage ../applications/version-management/git-and-tools/git-gone {
     inherit (darwin.apple_sdk.frameworks) Security;
@@ -5704,8 +5848,6 @@ with pkgs;
 
   github-runner = callPackage ../development/tools/continuous-integration/github-runner { };
 
-  gitin = callPackage ../applications/version-management/git-and-tools/gitin { };
-
   gitinspector = callPackage ../applications/version-management/gitinspector { };
 
   gitkraken = callPackage ../applications/version-management/gitkraken { };
@@ -5725,9 +5867,7 @@ with pkgs;
 
   gitleaks = callPackage ../tools/security/gitleaks { };
 
-  gitaly = callPackage ../applications/version-management/gitlab/gitaly {
-    libgit2 = libgit2_1_1; # git2go only supports v1.1.x
-  };
+  gitaly = callPackage ../applications/version-management/gitlab/gitaly { };
 
   gitstats = callPackage ../applications/version-management/gitstats { };
 
@@ -5886,7 +6026,7 @@ with pkgs;
 
   google-clasp = callPackage ../development/misc/google-clasp { };
 
-  google-compute-engine = with python3.pkgs; toPythonApplication google-compute-engine;
+  google-compute-engine = with python38.pkgs; toPythonApplication google-compute-engine;
 
   google-compute-engine-oslogin = callPackage ../tools/virtualization/google-compute-engine-oslogin { };
 
@@ -5908,6 +6048,7 @@ with pkgs;
 
   goverlay = callPackage ../tools/graphics/goverlay {
     inherit (qt5) wrapQtAppsHook;
+    inherit (plasma5Packages) breeze-qt5;
   };
 
   gpart = callPackage ../tools/filesystems/gpart { };
@@ -5946,18 +6087,10 @@ with pkgs;
   };
 
   graphviz-nox = graphviz.override {
-    xorg = null;
+    withXorg = false;
     libdevil = libdevil-nox;
   };
 
-  /* Readded by Michael Raskin. There are programs in the wild
-   * that do want 2.32 but not 2.0 or 2.36. Please give a day's notice for
-   * objections before removal. The feature is libgraph.
-   */
-  graphviz_2_32 = (callPackage ../tools/graphics/graphviz/2.32.nix {
-    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
-  }).overrideAttrs(x: { configureFlags = x.configureFlags ++ ["--with-cgraph=no"];});
-
   grin = callPackage ../tools/text/grin { };
 
   ripgrep = callPackage ../tools/text/ripgrep {
@@ -6010,7 +6143,7 @@ with pkgs;
 
   grub2_full = callPackage ../tools/misc/grub/2.0x.nix {
     # update breaks grub2
-    gnulib = pkgs.gnulib.overrideAttrs (oldAttrs: rec {
+    gnulib = pkgs.gnulib.overrideAttrs (_: rec {
       version = "20200223";
       src = fetchgit {
         url = "https://git.savannah.gnu.org/r/gnulib.git";
@@ -6287,6 +6420,8 @@ with pkgs;
 
   host = bind.host;
 
+  hostess = callPackage ../development/tools/hostess {};
+
   hotpatch = callPackage ../development/libraries/hotpatch { };
 
   hotspot = libsForQt5.callPackage ../development/tools/analysis/hotspot { };
@@ -6307,6 +6442,8 @@ with pkgs;
 
   http-getter = callPackage ../applications/networking/flent/http-getter.nix { };
 
+  httpdirfs = callPackage ../tools/filesystems/httpdirfs { };
+
   httpdump = callPackage ../tools/security/httpdump { };
 
   httpie = callPackage ../tools/networking/httpie { };
@@ -6406,7 +6543,7 @@ with pkgs;
 
     jupyter = python3.withPackages (ps: [ ps.jupyter ps.notebook ]);
 
-    packages = config.ihaskell.packages or (self: []);
+    packages = config.ihaskell.packages or (_: []);
   };
 
   ijq = callPackage ../development/tools/ijq { };
@@ -6451,6 +6588,8 @@ with pkgs;
 
   input-utils = callPackage ../os-specific/linux/input-utils { };
 
+  inql = callPackage ../tools/security/inql { };
+
   intecture-agent = callPackage ../tools/admin/intecture/agent.nix { };
 
   intecture-auth = callPackage ../tools/admin/intecture/auth.nix { };
@@ -6539,7 +6678,9 @@ with pkgs;
   isl_0_20 = callPackage ../development/libraries/isl/0.20.0.nix { };
   isl_0_24 = callPackage ../development/libraries/isl/0.24.0.nix { };
 
-  ispike = callPackage ../development/libraries/science/robotics/ispike { };
+  ispike = callPackage ../development/libraries/science/robotics/ispike {
+    boost = boost16x;
+  };
 
   isrcsubmit = callPackage ../tools/audio/isrcsubmit { };
 
@@ -6658,6 +6799,10 @@ with pkgs;
 
   json-schema-for-humans = with python3Packages; toPythonApplication json-schema-for-humans;
 
+  jsonwatch = callPackage ../tools/misc/jsonwatch {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   jtc = callPackage ../development/tools/jtc { };
 
   jumpapp = callPackage ../tools/X11/jumpapp {};
@@ -6695,6 +6840,8 @@ with pkgs;
   };
   kakouneUtils = callPackage ../applications/editors/kakoune/plugins/kakoune-utils.nix { };
 
+  kaffeine = libsForQt5.callPackage ../applications/video/kaffeine { };
+
   kak-lsp = callPackage ../tools/misc/kak-lsp {
     inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
   };
@@ -6794,6 +6941,8 @@ with pkgs;
 
   kubepug = callPackage ../development/tools/kubepug { };
 
+  kubergrunt = callPackage ../applications/networking/cluster/kubergrunt { };
+
   kwalletcli = libsForQt5.callPackage ../tools/security/kwalletcli { };
 
   peruse = libsForQt5.callPackage ../tools/misc/peruse { };
@@ -6947,6 +7096,8 @@ with pkgs;
 
   makebootfat = callPackage ../tools/misc/makebootfat { };
 
+  mani = callPackage ../development/tools/mani { };
+
   mapcache = callPackage ../servers/mapcache { };
 
   mapserver = callPackage ../servers/mapserver { };
@@ -7005,6 +7156,10 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   };
 
+  mdbook-plantuml = callPackage ../tools/text/mdbook-plantuml {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
   mdcat = callPackage ../tools/text/mdcat {
     inherit (darwin.apple_sdk.frameworks) Security;
     inherit (python3Packages) ansi2html;
@@ -7048,6 +7203,8 @@ with pkgs;
 
   motion = callPackage ../applications/video/motion { };
 
+  moz-phab = python3Packages.callPackage ../applications/misc/moz-phab { };
+
   mtail = callPackage ../servers/monitoring/mtail { };
 
   multitail = callPackage ../tools/misc/multitail { };
@@ -7099,9 +7256,9 @@ with pkgs;
 
   nixnote2 = libsForQt514.callPackage ../applications/misc/nixnote2 { };
 
-  nodejs = hiPrio nodejs-14_x;
+  nodejs = hiPrio nodejs-16_x;
 
-  nodejs-slim = nodejs-slim-14_x;
+  nodejs-slim = nodejs-slim-16_x;
 
 
   nodejs-10_x = callPackage ../development/web/nodejs/v10.nix {
@@ -7134,7 +7291,10 @@ with pkgs;
 
   nodePackages_latest = dontRecurseIntoAttrs nodejs_latest.pkgs;
 
-  nodePackages = dontRecurseIntoAttrs nodejs.pkgs;
+  nodePackages = (dontRecurseIntoAttrs nodejs.pkgs).override {
+    # It does not work on 16.x: https://github.com/NixOS/nixpkgs/issues/132456
+    nodejs = nodejs-14_x;
+  };
 
   np2kai = callPackage ../misc/emulators/np2kai { };
 
@@ -7265,6 +7425,8 @@ with pkgs;
 
   libtins = callPackage ../development/libraries/libtins { };
 
+  libtree = callPackage ../development/tools/misc/libtree { };
+
   libshout = callPackage ../development/libraries/libshout { };
 
   libqb = callPackage ../development/libraries/libqb { };
@@ -7358,10 +7520,26 @@ with pkgs;
 
   liquidctl = with python3Packages; toPythonApplication liquidctl;
 
+  lmp = callPackage ../tools/security/lmp { };
+
   localtime = callPackage ../tools/system/localtime { };
 
+  log4j-detect = callPackage ../tools/security/log4j-detect { };
+
+  log4j-scan = callPackage ../tools/security/log4j-scan { };
+
+  log4j-sniffer = callPackage ../tools/security/log4j-sniffer { };
+
+  log4j-vuln-scanner = callPackage ../tools/security/log4j-vuln-scanner { };
+
+  log4jcheck = callPackage ../tools/security/log4jcheck { };
+
+  log4shell-detector = callPackage ../tools/security/log4shell-detector { };
+
   logcheck = callPackage ../tools/system/logcheck { };
 
+  logmap = callPackage ../tools/security/logmap { };
+
   logmein-hamachi = callPackage ../tools/networking/logmein-hamachi { };
 
   logkeys = callPackage ../tools/security/logkeys { };
@@ -7545,9 +7723,7 @@ with pkgs;
 
   mednafen-server = callPackage ../misc/emulators/mednafen/server.nix { };
 
-  mednaffe = callPackage ../misc/emulators/mednaffe {
-    gtk2 = null;
-  };
+  mednaffe = callPackage ../misc/emulators/mednaffe { };
 
   megacli = callPackage ../tools/misc/megacli { };
 
@@ -7795,7 +7971,9 @@ with pkgs;
 
   netcdfcxx4 = callPackage ../development/libraries/netcdf-cxx4 { };
 
-  netcdffortran = callPackage ../development/libraries/netcdf-fortran { };
+  netcdffortran = callPackage ../development/libraries/netcdf-fortran {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation;
+  };
 
   networking-ts-cxx = callPackage ../development/libraries/networking-ts-cxx { };
 
@@ -7871,7 +8049,7 @@ with pkgs;
   grocy = callPackage ../servers/grocy { };
 
   inherit (callPackage ../servers/nextcloud {})
-    nextcloud20 nextcloud21 nextcloud22;
+    nextcloud20 nextcloud21 nextcloud22 nextcloud23;
 
   nextcloud-client = libsForQt5.callPackage ../applications/networking/nextcloud-client { };
 
@@ -8223,7 +8401,9 @@ with pkgs;
 
   openrgb = libsForQt5.callPackage ../applications/misc/openrgb { };
 
-  openrussian-cli = callPackage ../misc/openrussian-cli { };
+  openrussian-cli = callPackage ../misc/openrussian-cli {
+    luaPackages = lua53Packages;
+  };
 
   opensc = callPackage ../tools/security/opensc {
     inherit (darwin.apple_sdk.frameworks) Carbon PCSC;
@@ -8307,6 +8487,8 @@ with pkgs;
 
   olsrd = callPackage ../tools/networking/olsrd { };
 
+  oonf-olsrd2 = callPackage ../tools/networking/oonf-olsrd2 { };
+
   opl3bankeditor = libsForQt5.callPackage ../tools/audio/opl3bankeditor { };
   opn2bankeditor = libsForQt5.callPackage ../tools/audio/opl3bankeditor/opn2bankeditor.nix { };
 
@@ -8382,7 +8564,7 @@ with pkgs;
 
   pamtester = callPackage ../tools/security/pamtester { };
 
-  pantheon-tweaks = callPackage ../applications/system/pantheon-tweaks { };
+  pantheon-tweaks = callPackage ../desktops/pantheon/third-party/pantheon-tweaks { };
 
   paperless-ng = callPackage ../applications/office/paperless-ng { };
 
@@ -8577,7 +8759,7 @@ with pkgs;
   pinnwand = callPackage ../servers/pinnwand { };
 
   piping-server-rust = callPackage ../servers/piping-server-rust {
-    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin.apple_sdk.frameworks) CoreServices Security;
   };
 
   pirate-get = callPackage ../tools/networking/pirate-get { };
@@ -8617,6 +8799,8 @@ with pkgs;
   plex = callPackage ../servers/plex { };
   plexRaw = callPackage ../servers/plex/raw.nix { };
 
+  psitransfer = callPackage ../servers/psitransfer { };
+
   tab = callPackage ../tools/text/tab { };
 
   tabview = with python3Packages; toPythonApplication tabview;
@@ -8687,7 +8871,9 @@ with pkgs;
 
   postscript-lexmark = callPackage ../misc/drivers/postscript-lexmark { };
 
-  povray = callPackage ../tools/graphics/povray { };
+  povray = callPackage ../tools/graphics/povray {
+    boost = boost175;
+  };
 
   power-profiles-daemon = callPackage ../os-specific/linux/power-profiles-daemon { };
 
@@ -8701,7 +8887,7 @@ with pkgs;
 
   pptpd = callPackage ../tools/networking/pptpd {};
 
-  pre-commit = with python3Packages; toPythonApplication pre-commit;
+  pre-commit = callPackage ../tools/misc/pre-commit { };
 
   pretty-simple = callPackage ../development/tools/pretty-simple { };
 
@@ -8811,6 +8997,8 @@ with pkgs;
 
   pyspread = libsForQt5.callPackage ../applications/office/pyspread { };
 
+  teapot = callPackage ../applications/office/teapot { };
+
   pythonIRClib = pythonPackages.pythonIRClib;
 
   pyditz = callPackage ../applications/misc/pyditz {
@@ -8922,6 +9110,8 @@ with pkgs;
 
   quickserve = callPackage ../tools/networking/quickserve { };
 
+  quictls = callPackage ../development/libraries/quictls { };
+
   quicktun = callPackage ../tools/networking/quicktun { };
 
   quilt = callPackage ../development/tools/quilt { };
@@ -9490,6 +9680,8 @@ with pkgs;
 
   slirp4netns = callPackage ../tools/networking/slirp4netns { };
 
+  slowlorust = callPackage ../tools/networking/slowlorust { };
+
   slsnif = callPackage ../tools/misc/slsnif { };
 
   slstatus = callPackage ../applications/misc/slstatus {
@@ -9590,6 +9782,8 @@ with pkgs;
 
   soundkonverter = libsForQt5.soundkonverter;
 
+  soundwireserver = callPackage ../applications/audio/soundwireserver { };
+
   sozu = callPackage ../servers/sozu { };
 
   sparsehash = callPackage ../development/libraries/sparsehash { };
@@ -9610,13 +9804,15 @@ with pkgs;
 
   stdman = callPackage ../data/documentation/stdman { };
 
+  stderred = callPackage ../tools/misc/stderred { };
+
   steck = callPackage ../servers/pinnwand/steck.nix { };
 
   stenc = callPackage ../tools/backup/stenc { };
 
   stm32loader = with python3Packages; toPythonApplication stm32loader;
 
-  stubby = callPackage ../tools/networking/stubby { };
+  stremio = qt5.callPackage ../applications/video/stremio { };
 
   sunwait = callPackage ../applications/misc/sunwait { };
 
@@ -9779,6 +9975,8 @@ with pkgs;
 
   subfinder = callPackage ../tools/networking/subfinder { };
 
+  subzerod = with python3Packages; toPythonApplication subzerod;
+
   suckit = callPackage ../tools/networking/suckit {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -9840,6 +10038,8 @@ with pkgs;
     inherit (xorg) xauth xorgserver;
   };
 
+  systemdgenie = libsForQt5.callPackage ../applications/system/systemdgenie { };
+
   t = callPackage ../tools/misc/t { };
 
   tabnine = callPackage ../development/tools/tabnine { };
@@ -9865,12 +10065,16 @@ with pkgs;
 
   target-isns = callPackage ../os-specific/linux/target-isns { };
 
+  tarlz = callPackage ../tools/archivers/tarlz { };
+
   tarsnap = callPackage ../tools/backup/tarsnap { };
 
   tarsnapper = callPackage ../tools/backup/tarsnapper { };
 
   tarssh = callPackage ../servers/tarssh { };
 
+  tartan = callPackage ../development/tools/analysis/tartan {};
+
   tartube = callPackage ../applications/video/tartube { };
 
   tartube-yt-dlp = callPackage ../applications/video/tartube {
@@ -9923,6 +10127,8 @@ with pkgs;
 
   telescope = callPackage ../applications/networking/browsers/telescope { };
 
+  termcolor = callPackage ../development/libraries/termcolor { };
+
   termscp = callPackage ../tools/networking/termscp {
     inherit (darwin.apple_sdk.frameworks) Foundation Security;
   };
@@ -9961,6 +10167,10 @@ with pkgs;
 
   thc-ipv6 = callPackage ../tools/security/thc-ipv6 { };
 
+  thedesk = callPackage ../applications/misc/thedesk {
+    electron = electron_14;
+  };
+
   theharvester = callPackage ../tools/security/theharvester { };
 
   inherit (nodePackages) thelounge;
@@ -10079,6 +10289,8 @@ with pkgs;
 
   touchegg = callPackage ../tools/inputmethods/touchegg { };
 
+  torrent7z = callPackage ../tools/archivers/torrent7z { };
+
   torsocks = callPackage ../tools/security/tor/torsocks.nix { };
 
   toss = callPackage ../tools/networking/toss { };
@@ -10327,6 +10539,8 @@ with pkgs;
 
   v2ray-domain-list-community = callPackage ../data/misc/v2ray-domain-list-community { };
 
+  v2ray-geoip = callPackage ../data/misc/v2ray-geoip { };
+
   vacuum = callPackage ../applications/networking/instant-messengers/vacuum {};
 
   vampire = callPackage ../applications/science/logic/vampire {};
@@ -10469,7 +10683,6 @@ with pkgs;
 
   sssd = callPackage ../os-specific/linux/sssd {
     inherit (perlPackages) Po4a;
-    inherit (python27Packages) ldap;
   };
 
   sentry-cli = callPackage ../development/tools/sentry-cli {
@@ -10810,7 +11023,7 @@ with pkgs;
 
   wget2 = callPackage ../tools/networking/wget2 {
     # update breaks grub2
-    gnulib = pkgs.gnulib.overrideAttrs (oldAttrs: rec {
+    gnulib = pkgs.gnulib.overrideAttrs (_: rec {
       version = "20210208";
       src = fetchgit {
         url = "https://git.savannah.gnu.org/r/gnulib.git";
@@ -10835,10 +11048,14 @@ with pkgs;
 
   woeusb = callPackage ../tools/misc/woeusb { };
 
+  woeusb-ng = callPackage ../tools/misc/woeusb-ng { };
+
   wslu = callPackage ../tools/system/wslu { };
 
   chase = callPackage ../tools/system/chase { };
 
+  wingpanel-indicator-ayatana = callPackage ../desktops/pantheon/third-party/wingpanel-indicator-ayatana { };
+
   wimlib = callPackage ../tools/archivers/wimlib { };
 
   wipe = callPackage ../tools/security/wipe { };
@@ -10998,6 +11215,8 @@ with pkgs;
 
   yank = callPackage ../tools/misc/yank { };
 
+  yamlfix = with python3Packages; toPythonApplication yamlfix;
+
   yamllint = with python3Packages; toPythonApplication yamllint;
 
   yaml-merge = callPackage ../tools/text/yaml-merge { };
@@ -11088,6 +11307,8 @@ with pkgs;
 
   zsh-bd = callPackage ../shells/zsh/zsh-bd { };
 
+  zsh-better-npm-completion = callPackage ../shells/zsh/zsh-better-npm-completion { };
+
   zsh-clipboard = callPackage ../shells/zsh/zsh-clipboard { };
 
   zsh-git-prompt = callPackage ../shells/zsh/zsh-git-prompt { };
@@ -11430,6 +11651,8 @@ with pkgs;
     inherit (darwin) cctools;
   };
 
+  chez-racket = callPackage ../development/compilers/chez-racket {};
+
   chez-srfi = callPackage ../development/chez-modules/chez-srfi { };
 
   chez-mit = callPackage ../development/chez-modules/chez-mit { };
@@ -11535,7 +11758,7 @@ with pkgs;
 
   dictu = callPackage ../development/compilers/dictu { };
 
-  dotty = callPackage ../development/compilers/scala/dotty.nix { jre = jre8;};
+  dotty = callPackage ../development/compilers/scala/dotty.nix { };
 
   ecl = callPackage ../development/compilers/ecl { };
   ecl_16_1_2 = callPackage ../development/compilers/ecl/16.1.2.nix { };
@@ -11572,7 +11795,7 @@ with pkgs;
   flutter = flutterPackages.stable;
 
   fnm = callPackage ../development/tools/fnm {
-    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin.apple_sdk.frameworks) DiskArbitration Foundation Security;
   };
 
   fnlfmt = callPackage ../development/tools/fnlfmt { };
@@ -12042,7 +12265,15 @@ with pkgs;
   # current default compiler is”, if you bump this:
   haskellPackages = dontRecurseIntoAttrs haskell.packages.ghc8107;
 
-  inherit (haskellPackages) ghc;
+  # haskellPackages.ghc is build->host (it exposes the compiler used to build the
+  # set, similarly to stdenv.cc), but pkgs.ghc should be host->target to be more
+  # consistent with the gcc, gnat, clang etc. derivations
+  #
+  # We use targetPackages.haskellPackages.ghc if available since this also has
+  # the withPackages wrapper available. In the final cross-compiled package set
+  # however, targetPackages won't be populated, so we need to fall back to the
+  # plain, cross-compiled compiler (which is only theoretical at the moment).
+  ghc = targetPackages.haskellPackages.ghc or haskell.compiler.ghc8107;
 
   cabal-install = haskell.lib.compose.justStaticExecutables haskellPackages.cabal-install;
 
@@ -12069,7 +12300,7 @@ with pkgs;
 
   pscid = nodePackages.pscid;
 
-  coreboot-toolchain = callPackages ../development/tools/misc/coreboot-toolchain { };
+  coreboot-toolchain = recurseIntoAttrs (callPackage ../development/tools/misc/coreboot-toolchain { });
 
   remarkable-toolchain = callPackage ../development/tools/misc/remarkable/remarkable-toolchain { };
 
@@ -12186,116 +12417,31 @@ with pkgs;
 
   hugs = callPackage ../development/interpreters/hugs { };
 
-  openjfx11 = callPackage ../development/compilers/openjdk/openjfx/11.nix { };
-
-  openjfx15 = callPackage ../development/compilers/openjdk/openjfx/15.nix { };
-
-  openjdk8-bootstrap =
-    if adoptopenjdk-hotspot-bin-8.meta.available then
-      adoptopenjdk-hotspot-bin-8
-    else
-      callPackage ../development/compilers/openjdk/bootstrap.nix { version = "8"; };
-
-  /* legacy jdk for use as needed by older apps */
-  openjdk8 =
-    if stdenv.isDarwin then
-      callPackage ../development/compilers/openjdk/darwin/8.nix { }
-    else
-      callPackage ../development/compilers/openjdk/8.nix {
-        inherit (gnome2) GConf gnome_vfs;
-      };
-
-  openjdk8_headless =
-    if stdenv.isDarwin || stdenv.isAarch64 then
-      openjdk8
-    else
-      openjdk8.override { headless = true; };
+  inherit (javaPackages) openjfx11 openjfx15;
+  openjfx = openjfx15;
 
+  openjdk8-bootstrap = javaPackages.compiler.openjdk8-bootstrap;
+  openjdk8 = javaPackages.compiler.openjdk8;
+  openjdk8_headless = javaPackages.compiler.openjdk8.headless;
   jdk8 = openjdk8;
   jdk8_headless = openjdk8_headless;
   jre8 = openjdk8.jre;
   jre8_headless = openjdk8_headless.jre;
 
-  openjdk11-bootstrap =
-    if adoptopenjdk-hotspot-bin-11.meta.available then
-      adoptopenjdk-hotspot-bin-11
-    else
-      callPackage ../development/compilers/openjdk/bootstrap.nix { version = "10"; };
-
-  openjdk11 =
-    if stdenv.isDarwin then
-      callPackage ../development/compilers/openjdk/darwin/11.nix { }
-    else
-      callPackage ../development/compilers/openjdk/11.nix {
-        openjfx = openjfx11;
-        inherit (gnome2) GConf gnome_vfs;
-      };
-
-  openjdk11_headless =
-    if stdenv.isDarwin then
-      openjdk11
-    else
-      openjdk11.override { headless = true; };
-
-  openjdk17-bootstrap =
-    if adoptopenjdk-hotspot-bin-16.meta.available then
-      adoptopenjdk-hotspot-bin-16
-    else
-      /* adoptopenjdk not available for i686, so fall back to our old builds for bootstrapping */
-      callPackage ../development/compilers/openjdk/16.nix {
-        openjfx = openjfx11; /* need this despite next line :-( */
-        enableJavaFX = false;
-        headless = true;
-        inherit (gnome2) GConf gnome_vfs;
-        openjdk16-bootstrap = callPackage ../development/compilers/openjdk/15.nix {
-          openjfx = openjfx11; /* need this despite next line :-( */
-          enableJavaFX = false;
-          headless = true;
-          inherit (gnome2) GConf gnome_vfs;
-          openjdk15-bootstrap = callPackage ../development/compilers/openjdk/14.nix {
-            openjfx = openjfx11; /* need this despite next line :-( */
-            enableJavaFX = false;
-            headless = true;
-            inherit (gnome2) GConf gnome_vfs;
-            openjdk14-bootstrap = callPackage ../development/compilers/openjdk/13.nix {
-              openjfx = openjfx11; /* need this despite next line :-( */
-              enableJavaFX = false;
-              headless = true;
-              inherit (gnome2) GConf gnome_vfs;
-              openjdk13-bootstrap = callPackage ../development/compilers/openjdk/12.nix {
-                stdenv = gcc8Stdenv; /* build segfaults with gcc9 or newer, so use gcc8 like Debian does */
-                openjfx = openjfx11; /* need this despite next line :-( */
-                enableJavaFX = false;
-                headless = true;
-                inherit (gnome2) GConf gnome_vfs;
-              };
-            };
-          };
-        };
-      };
-
+  openjdk11-bootstrap = javaPackages.compiler.openjdk11-bootstrap;
+  openjdk11 = javaPackages.compiler.openjdk11;
+  openjdk11_headless = javaPackages.compiler.openjdk11.headless;
   jdk11 = openjdk11;
   jdk11_headless = openjdk11_headless;
 
-  /* Latest JDK */
-  openjdk17 =
-    if stdenv.isDarwin then
-      callPackage ../development/compilers/openjdk/darwin { }
-    else
-      callPackage ../development/compilers/openjdk/17.nix {
-        openjfx = openjfx15;
-        inherit (gnome2) GConf gnome_vfs;
-      };
-
-  openjdk17_headless =
-    if stdenv.isDarwin then
-      openjdk17
-    else
-      openjdk17.override { headless = true; };
-
+  openjdk17-bootstrap = javaPackages.compiler.openjdk17-bootstrap;
+  openjdk17 = javaPackages.compiler.openjdk17;
+  openjdk17_headless = javaPackages.compiler.openjdk17.headless;
   jdk17 = openjdk17;
   jdk17_headless = openjdk17_headless;
 
+  openjdk16-bootstrap = javaPackages.compiler.openjdk16-bootstrap;
+
   /* default JDK */
   jdk = jdk17;
 
@@ -12320,6 +12466,7 @@ with pkgs;
     });
   graalvm11-ce = graalvmCEPackages.graalvm11-ce;
   graalvm17-ce = graalvmCEPackages.graalvm17-ce;
+  buildGraalvmNativeImage = callPackage ../build-support/build-graalvm-native-image { };
 
   inherit (callPackages ../development/compilers/graalvm/enterprise-edition.nix { })
     graalvm8-ee
@@ -12377,11 +12524,11 @@ with pkgs;
   julia-stable = julia_15;
   julia = julia-stable;
 
-  julia_10-bin = callPackage ../development/compilers/julia/1.0-bin.nix { };
   julia_16-bin = callPackage ../development/compilers/julia/1.6-bin.nix { };
+  julia_17-bin = callPackage ../development/compilers/julia/1.7-bin.nix { };
 
-  julia-lts-bin = julia_10-bin;
-  julia-stable-bin = julia_16-bin;
+  julia-lts-bin = julia_16-bin;
+  julia-stable-bin = julia_17-bin;
   julia-bin = julia-stable-bin;
 
   jwasm =  callPackage ../development/compilers/jwasm { };
@@ -12413,6 +12560,8 @@ with pkgs;
   kotlin = callPackage ../development/compilers/kotlin { };
   kotlin-native = callPackage ../development/compilers/kotlin/native.nix { };
 
+  kotlin-language-server = callPackage ../development/tools/kotlin-language-server {};
+
   lazarus = callPackage ../development/compilers/fpc/lazarus.nix {
     fpc = fpc;
   };
@@ -12476,7 +12625,7 @@ with pkgs;
     # This returns the minimum supported version for the platform. The
     # assumption is that or any later version is good.
     choose = platform:
-      /**/ if platform.isDarwin then (if platform.isAarch64 then 11 else 7)
+      /**/ if platform.isDarwin then 11
       else if platform.isFreeBSD then 7
       else if platform.isAndroid then 12
       else if platform.isLinux then
@@ -12495,31 +12644,31 @@ with pkgs;
   llvmPackages_5 = recurseIntoAttrs (callPackage ../development/compilers/llvm/5 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_5.tools;
-    targetLlvmLibraries = targetPackages.llvmPackages_5.libraries;
+    targetLlvmLibraries = targetPackages.llvmPackages_5.libraries or llvmPackages_5.libraries;
   });
 
   llvmPackages_6 = recurseIntoAttrs (callPackage ../development/compilers/llvm/6 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_6.tools;
-    targetLlvmLibraries = targetPackages.llvmPackages_6.libraries;
+    targetLlvmLibraries = targetPackages.llvmPackages_6.libraries or llvmPackages_6.libraries;
   });
 
   llvmPackages_7 = recurseIntoAttrs (callPackage ../development/compilers/llvm/7 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_7.tools;
-    targetLlvmLibraries = targetPackages.llvmPackages_7.libraries;
+    targetLlvmLibraries = targetPackages.llvmPackages_7.libraries or llvmPackages_7.libraries;
   });
 
   llvmPackages_8 = recurseIntoAttrs (callPackage ../development/compilers/llvm/8 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_8.tools;
-    targetLlvmLibraries = targetPackages.llvmPackages_8.libraries;
+    targetLlvmLibraries = targetPackages.llvmPackages_8.libraries or llvmPackages_8.libraries;
   });
 
   llvmPackages_9 = recurseIntoAttrs (callPackage ../development/compilers/llvm/9 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_9.tools;
-    targetLlvmLibraries = targetPackages.llvmPackages_9.libraries;
+    targetLlvmLibraries = targetPackages.llvmPackages_9.libraries or llvmPackages_9.libraries;
   });
 
   llvmPackages_10 = recurseIntoAttrs (callPackage ../development/compilers/llvm/10 {
@@ -12531,7 +12680,7 @@ with pkgs;
   llvmPackages_11 = recurseIntoAttrs (callPackage ../development/compilers/llvm/11 ({
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_11.tools;
-    targetLlvmLibraries = targetPackages.llvmPackages_11.libraries;
+    targetLlvmLibraries = targetPackages.llvmPackages_11.libraries or llvmPackages_11.libraries;
   } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) {
     stdenv = gcc7Stdenv;
   }));
@@ -12539,7 +12688,7 @@ with pkgs;
   llvmPackages_12 = recurseIntoAttrs (callPackage ../development/compilers/llvm/12 ({
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_12.tools;
-    targetLlvmLibraries = targetPackages.llvmPackages_12.libraries;
+    targetLlvmLibraries = targetPackages.llvmPackages_12.libraries or llvmPackages_12.libraries;
   } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) {
     stdenv = gcc7Stdenv;
   }));
@@ -12547,7 +12696,7 @@ with pkgs;
   llvmPackages_13 = recurseIntoAttrs (callPackage ../development/compilers/llvm/13 ({
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_13.tools;
-    targetLlvmLibraries = targetPackages.llvmPackages_13.libraries;
+    targetLlvmLibraries = targetPackages.llvmPackages_13.libraries or llvmPackages_13.libraries;
   } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && buildPackages.stdenv.cc.isGNU) {
     stdenv = gcc7Stdenv;
   }));
@@ -12696,7 +12845,11 @@ with pkgs;
 
   opam-installer = callPackage ../development/tools/ocaml/opam/installer.nix { };
 
-  open-watcom-bin = callPackage ../development/compilers/open-watcom-bin { };
+  wrapWatcom = callPackage ../development/compilers/open-watcom/wrapper.nix { };
+  open-watcom-v2-unwrapped = callPackage ../development/compilers/open-watcom/v2.nix { };
+  open-watcom-v2 = wrapWatcom open-watcom-v2-unwrapped { };
+  open-watcom-bin-unwrapped = callPackage ../development/compilers/open-watcom/bin.nix { };
+  open-watcom-bin = wrapWatcom open-watcom-bin-unwrapped { };
 
   passerine = callPackage ../development/compilers/passerine { };
 
@@ -12720,9 +12873,7 @@ with pkgs;
 
   rgxg = callPackage ../tools/text/rgxg { };
 
-  rocclr = callPackage ../development/libraries/rocclr {
-    inherit (llvmPackages_rocm) clang;
-  };
+  rocclr = callPackage ../development/libraries/rocclr { };
 
   hip = callPackage ../development/compilers/hip {
     inherit (llvmPackages_rocm) clang clang-unwrapped compiler-rt lld llvm;
@@ -12758,18 +12909,18 @@ with pkgs;
     inherit (darwin) apple_sdk;
   };
 
-  rust_1_56 = callPackage ../development/compilers/rust/1_56.nix {
+  rust_1_57 = callPackage ../development/compilers/rust/1_57.nix {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security SystemConfiguration;
     llvm_13 = llvmPackages_13.libllvm;
   };
-  rust = rust_1_56;
+  rust = rust_1_57;
 
   mrustc = callPackage ../development/compilers/mrustc { };
   mrustc-minicargo = callPackage ../development/compilers/mrustc/minicargo.nix { };
   mrustc-bootstrap = callPackage ../development/compilers/mrustc/bootstrap.nix { };
 
-  rustPackages_1_56 = rust_1_56.packages.stable;
-  rustPackages = rustPackages_1_56;
+  rustPackages_1_57 = rust_1_57.packages.stable;
+  rustPackages = rustPackages_1_57;
 
   inherit (rustPackages) cargo clippy rustc rustPlatform;
 
@@ -12967,14 +13118,16 @@ with pkgs;
   sbcl_2_1_1 = callPackage ../development/compilers/sbcl/2.1.1.nix {};
   sbcl_2_1_2 = callPackage ../development/compilers/sbcl/2.1.2.nix {};
   sbcl_2_1_9 = callPackage ../development/compilers/sbcl/2.1.9.nix {};
-  sbcl = sbcl_2_1_9;
+  sbcl_2_1_10 = callPackage ../development/compilers/sbcl/2.1.10.nix {};
+  sbcl_2_1_11 = callPackage ../development/compilers/sbcl/2.1.11.nix {};
+  sbcl = sbcl_2_1_11;
 
   roswell = callPackage ../development/tools/roswell { };
 
   scala_2_10 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.10"; jre = jdk8; };
   scala_2_11 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.11"; jre = jdk8; };
-  scala_2_12 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.12"; jre = jdk8; };
-  scala_2_13 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.13"; jre = jdk8; };
+  scala_2_12 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.12"; };
+  scala_2_13 = callPackage ../development/compilers/scala/2.x.nix { majorVersion = "2.13"; };
 
   scala = scala_2_13;
   scala-runners = callPackage ../development/compilers/scala-runners {
@@ -13011,7 +13164,9 @@ with pkgs;
 
   smlpkg = callPackage ../tools/package-management/smlpkg { };
 
-  solc = callPackage ../development/compilers/solc { };
+  solc = callPackage ../development/compilers/solc {
+    boost = boost172;
+  };
 
   souffle = callPackage ../development/compilers/souffle {
     autoreconfHook = buildPackages.autoreconfHook269;
@@ -13034,7 +13189,7 @@ with pkgs;
   squeak = callPackage ../development/compilers/squeak { };
 
   squirrel-sql = callPackage ../development/tools/database/squirrel-sql {
-    drivers = [ mssql_jdbc mysql_jdbc postgresql_jdbc ];
+    drivers = [ jtds_jdbc mssql_jdbc mysql_jdbc postgresql_jdbc ];
   };
 
   stalin = callPackage ../development/compilers/stalin { };
@@ -13096,9 +13251,7 @@ with pkgs;
 
   inherit (callPackage ../development/compilers/vala { })
     vala_0_40
-    vala_0_46
     vala_0_48
-    vala_0_50
     vala_0_52
     vala_0_54
     vala;
@@ -13270,6 +13423,8 @@ with pkgs;
 
   dhall-nix = haskell.lib.compose.justStaticExecutables haskellPackages.dhall-nix;
 
+  dhall-nixpkgs = haskell.lib.compose.justStaticExecutables haskellPackages.dhall-nixpkgs;
+
   dhall-text = haskell.lib.compose.justStaticExecutables haskellPackages.dhall-text;
 
   dhallPackages = recurseIntoAttrs (callPackage ./dhall-packages.nix { });
@@ -13291,7 +13446,7 @@ with pkgs;
   inherit (beam.interpreters)
     erlang erlangR24 erlangR23 erlangR22 erlangR21
     erlang_odbc erlang_javac erlang_odbc_javac erlang_basho_R16B02
-    elixir elixir_1_12 elixir_1_11 elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7
+    elixir elixir_1_13 elixir_1_12 elixir_1_11 elixir_1_10 elixir_1_9
     elixir_ls;
 
   erlang_nox = beam_nox.interpreters.erlang;
@@ -13410,8 +13565,6 @@ with pkgs;
 
   ### End of CuboCore
 
-  lush2 = callPackage ../development/interpreters/lush {};
-
   maude = callPackage ../development/interpreters/maude {
     stdenv = if stdenv.cc.isClang then llvmPackages_5.stdenv else stdenv;
   };
@@ -13459,6 +13612,13 @@ with pkgs;
   phpExtensions = php.extensions;
   phpPackages = php.packages;
 
+  # Import PHP81 interpreter, extensions and packages
+  php81 = callPackage ../development/interpreters/php/8.1.nix {
+    stdenv = if stdenv.cc.isClang then llvmPackages.stdenv else stdenv;
+  };
+  php81Extensions = recurseIntoAttrs php81.extensions;
+  php81Packages = recurseIntoAttrs php81.packages;
+
   # Import PHP80 interpreter, extensions and packages
   php80 = callPackage ../development/interpreters/php/8.0.nix {
     stdenv = if stdenv.cc.isClang then llvmPackages.stdenv else stdenv;
@@ -13495,7 +13655,7 @@ with pkgs;
   python3 = python39;
   pypy = pypy2;
   pypy2 = pypy27;
-  pypy3 = pypy37;
+  pypy3 = pypy38;
 
   # Python interpreter that is build with all modules, including tkinter.
   # These are for compatibility and should not be used inside Nixpkgs.
@@ -13545,7 +13705,7 @@ with pkgs;
   python3Packages = python3.pkgs;
 
   pythonInterpreters = callPackage ./../development/interpreters/python { };
-  inherit (pythonInterpreters) python27 python37 python38 python39 python310 python3Minimal pypy27 pypy37;
+  inherit (pythonInterpreters) python27 python37 python38 python39 python310 python311 python3Minimal pypy27 pypy38 pypy37 rustpython;
 
   # Python package sets.
   python27Packages = python27.pkgs;
@@ -13553,10 +13713,13 @@ with pkgs;
   python38Packages = recurseIntoAttrs python38.pkgs;
   python39Packages = recurseIntoAttrs python39.pkgs;
   python310Packages = python310.pkgs;
+  python311Packages = python311.pkgs;
   pypyPackages = pypy.pkgs;
   pypy2Packages = pypy2.pkgs;
   pypy27Packages = pypy27.pkgs;
   pypy3Packages = pypy3.pkgs;
+  pypy37Packages = pypy37.pkgs;
+  pypy38Packages = pypy38.pkgs;
 
   py3c = callPackage ../development/libraries/py3c { };
 
@@ -13861,8 +14024,8 @@ with pkgs;
   inherit (callPackage ../development/tools/alloy {
     jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   })
-    alloy4
     alloy5
+    alloy6
     alloy;
 
   altair = callPackage ../development/tools/altair-graphql-client { };
@@ -13898,6 +14061,8 @@ with pkgs;
     jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
 
+  antlr4_9 = callPackage ../development/tools/parsing/antlr/4.9.nix { };
+
   antlr4 = antlr4_8;
 
   antlr = antlr4;
@@ -14161,6 +14326,12 @@ with pkgs;
 
   bpftools = callPackage ../os-specific/linux/bpftools { };
 
+  bcc = callPackage ../os-specific/linux/bcc {
+    python = pkgs.python3;
+  };
+
+  bpftrace = callPackage ../os-specific/linux/bpftrace { };
+
   bpm-tools = callPackage ../tools/audio/bpm-tools { };
 
   byacc = callPackage ../development/tools/parsing/byacc { };
@@ -14338,7 +14509,8 @@ with pkgs;
   cvehound = callPackage ../development/tools/analysis/cvehound { };
 
   cvise = python3Packages.callPackage ../development/tools/misc/cvise {
-    inherit (llvmPackages_11) llvm libclang;
+    # cvise keeps up with fresh llvm releases and supports wide version range
+    inherit (llvmPackages_latest) llvm libclang;
   };
 
   cwltool = callPackage ../applications/science/misc/cwltool { };
@@ -14385,6 +14557,8 @@ with pkgs;
 
   cli11 = callPackage ../development/tools/misc/cli11 { };
 
+  datree = callPackage ../development/tools/datree { };
+
   dcadec = callPackage ../development/tools/dcadec { };
 
   dejagnu = callPackage ../development/tools/misc/dejagnu { };
@@ -14517,7 +14691,6 @@ with pkgs;
   ffuf = callPackage ../tools/security/ffuf { };
 
   flow = callPackage ../development/tools/analysis/flow {
-    ocamlPackages = ocaml-ng.ocamlPackages_4_10;
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   };
 
@@ -14644,14 +14817,15 @@ with pkgs;
 
   gpuvis = callPackage ../development/tools/misc/gpuvis { };
 
-  gradleGen = callPackage ../development/tools/build-managers/gradle {
-    java = jdk8; # TODO: upgrade https://github.com/NixOS/nixpkgs/pull/89731
+  gradle-packages = import ../development/tools/build-managers/gradle {
+    inherit jdk8 jdk11 jdk17;
   };
-  gradle = res.gradleGen.gradle_latest;
-  gradle_4 = res.gradleGen.gradle_4_10;
-  gradle_5 = res.gradleGen.gradle_5_6;
-  gradle_6 = res.gradleGen.gradle_6_9;
-  gradle_7 = res.gradleGen.gradle_7_3;
+  gradleGen = gradle-packages.gen;
+  gradle_4 = callPackage gradle-packages.gradle_4 { };
+  gradle_5 = callPackage gradle-packages.gradle_5 { };
+  gradle_6 = callPackage gradle-packages.gradle_6 { };
+  gradle_7 = callPackage gradle-packages.gradle_7 { };
+  gradle = gradle_7;
 
   gperf = callPackage ../development/tools/misc/gperf { };
   # 3.1 changed some parameters from int to size_t, leading to mismatches.
@@ -14714,7 +14888,7 @@ with pkgs;
   img = callPackage ../development/tools/img { };
 
   include-what-you-use = callPackage ../development/tools/analysis/include-what-you-use {
-    llvmPackages = llvmPackages_12;
+    llvmPackages = llvmPackages_13;
   };
 
   indent = callPackage ../development/tools/misc/indent { };
@@ -14757,6 +14931,8 @@ with pkgs;
 
   k2tf = callPackage ../development/tools/misc/k2tf { };
 
+  kafka-delta-ingest = callPackage ../development/tools/kafka-delta-ingest { };
+
   kati = callPackage ../development/tools/build-managers/kati { };
 
   kcat = callPackage ../development/tools/kcat { };
@@ -14785,6 +14961,10 @@ with pkgs;
 
   kube-aws = callPackage ../development/tools/kube-aws { };
 
+  kube-hunter = callPackage ../tools/security/kube-hunter { };
+
+  kubeaudit = callPackage ../tools/security/kubeaudit { };
+
   kubectx = callPackage ../development/tools/kubectx { };
 
   kube-prompt = callPackage ../development/tools/kube-prompt { };
@@ -14855,10 +15035,12 @@ with pkgs;
 
   lttng-ust = callPackage ../development/tools/misc/lttng-ust { };
 
+  lttng-ust_2_12 = callPackage ../development/tools/misc/lttng-ust/2.12.nix { };
+
   lttv = callPackage ../development/tools/misc/lttv { };
 
   luaformatter = callPackage ../development/tools/luaformatter
-    (lib.optionalAttrs stdenv.isDarwin {
+    (lib.optionalAttrs (stdenv.cc.isClang && lib.versionOlder stdenv.cc.version "9") {
       stdenv = overrideCC stdenv llvmPackages_9.clang;
     });
 
@@ -14881,9 +15063,7 @@ with pkgs;
 
   mdl = callPackage ../development/tools/misc/mdl { };
 
-  python-language-server = callPackage ../development/dotnet-modules/python-language-server {
-    inherit (dotnetPackages) Nuget;
-  };
+  python-language-server = callPackage ../development/dotnet-modules/python-language-server { };
 
   minify = callPackage ../development/web/minify { };
 
@@ -14929,6 +15109,7 @@ with pkgs;
   nimbo = with python3Packages; callPackage ../applications/misc/nimbo { };
 
   gn = callPackage ../development/tools/build-managers/gn { };
+  gn1924 = callPackage ../development/tools/build-managers/gn/rev1924.nix { };
 
   nixbang = callPackage ../development/tools/misc/nixbang {
     pythonPackages = python3Packages;
@@ -14969,6 +15150,8 @@ with pkgs;
 
   omniorb = callPackage ../development/tools/omniorb { };
 
+  openai = with python3Packages; toPythonApplication openai;
+
   opengrok = callPackage ../development/tools/misc/opengrok { };
 
   openocd = callPackage ../development/embedded/openocd { };
@@ -15145,6 +15328,8 @@ with pkgs;
 
   rnix-lsp = callPackage ../development/tools/rnix-lsp { };
 
+  rnginline = with python3Packages; toPythonApplication rnginline;
+
   rolespec = callPackage ../development/tools/misc/rolespec { };
 
   rr = callPackage ../development/tools/analysis/rr { };
@@ -15210,7 +15395,9 @@ with pkgs;
     shards_0_16
     shards;
 
-  shellcheck = callPackage ../development/tools/shellcheck {};
+  shellcheck = callPackage ../development/tools/shellcheck {
+    ShellCheck = haskellPackages.ShellCheck_0_8_0;
+  };
 
   shellharden = callPackage ../development/tools/shellharden {};
 
@@ -15401,9 +15588,7 @@ with pkgs;
 
   ttyd = callPackage ../servers/ttyd { };
 
-  turbogit = callPackage ../development/tools/turbogit {
-    libgit2 = libgit2_1_1; # git2go only supports v1.1.x
-  };
+  turbogit = callPackage ../development/tools/turbogit { };
 
   tweak = callPackage ../applications/editors/tweak { };
 
@@ -15418,9 +15603,7 @@ with pkgs;
   uefi-firmware-parser = callPackage ../development/tools/analysis/uefi-firmware-parser { };
 
   uhd3_5 = callPackage ../applications/radio/uhd/3.5.nix { };
-  uhd = callPackage ../applications/radio/uhd {
-    boost = boost17x;
-  };
+  uhd = callPackage ../applications/radio/uhd { };
 
   uisp = callPackage ../development/embedded/uisp { };
 
@@ -15515,6 +15698,7 @@ with pkgs;
   ycmd = callPackage ../development/tools/misc/ycmd {
     inherit (darwin.apple_sdk.frameworks) Cocoa;
     python = python3;
+    boost = boost174;
   };
 
   yodl = callPackage ../development/tools/misc/yodl { };
@@ -15620,6 +15804,8 @@ with pkgs;
     stdenv = overrideCC stdenv buildPackages.gcc6; # hidden symbol `__divmoddi4'
   });
 
+  arsenal = callPackage ../tools/security/arsenal { };
+
   assimp = callPackage ../development/libraries/assimp { };
 
   asio_1_10 = callPackage ../development/libraries/asio/1.10.nix { };
@@ -15719,7 +15905,7 @@ with pkgs;
 
   bicpl = callPackage ../development/libraries/science/biology/bicpl { };
 
-  bicgl = callPackage ../development/libraries/science/biology/bicgl { };
+  bicgl = callPackage ../development/libraries/science/biology/bicgl { inherit (darwin.apple_sdk.frameworks) GLUT; };
 
   # TODO(@Ericson2314): Build bionic libc from source
   bionic = if stdenv.hostPlatform.useAndroidPrebuilt
@@ -15746,12 +15932,13 @@ with pkgs;
     boost173
     boost174
     boost175
+    boost177
   ;
 
   boost15x = boost159;
   boost16x = boost169;
-  boost17x = boost175;
-  boost = boost16x;
+  boost17x = boost177;
+  boost = boost17x;
 
   boost_process = callPackage ../development/libraries/boost-process { };
 
@@ -15772,6 +15959,8 @@ with pkgs;
 
   buddy = callPackage ../development/libraries/buddy { };
 
+  buildkit-nix = callPackage ../applications/virtualization/buildkit-nix { };
+
   bulletml = callPackage ../development/libraries/bulletml { };
 
   bwidget = callPackage ../development/libraries/bwidget { };
@@ -15805,6 +15994,8 @@ with pkgs;
 
   ndn-tools = callPackage ../tools/networking/ndn-tools { };
 
+  nfd = callPackage ../servers/nfd { };
+
   cddlib = callPackage ../development/libraries/cddlib {};
 
   cdk = callPackage ../development/libraries/cdk {};
@@ -15923,6 +16114,8 @@ with pkgs;
 
   ctpl = callPackage ../development/libraries/ctpl { };
 
+  cppe = callPackage ../development/libraries/science/chemistry/cppe { };
+
   cppdb = callPackage ../development/libraries/cppdb { };
 
   cpp-utilities = callPackage ../development/libraries/cpp-utilities { };
@@ -15931,7 +16124,9 @@ with pkgs;
 
   cpp-ipfs-api = callPackage ../development/libraries/cpp-ipfs-api { };
 
-  cpp-netlib = callPackage ../development/libraries/cpp-netlib {};
+  cpp-netlib = callPackage ../development/libraries/cpp-netlib {
+    boost = boost169; # fatal error: 'boost/asio/stream_socket_service.hpp' file not found
+  };
 
   ubus = callPackage ../development/libraries/ubus { };
 
@@ -16093,6 +16288,8 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Cocoa;
   };
 
+  elfio = callPackage ../development/libraries/elfio { };
+
   enchant1 = callPackage ../development/libraries/enchant/1.x.nix { };
 
   enchant2 = callPackage ../development/libraries/enchant/2.x.nix { };
@@ -16102,7 +16299,9 @@ with pkgs;
 
   entt = callPackage ../development/libraries/entt { };
 
-  epoxy = callPackage ../development/libraries/epoxy {};
+  libepoxy = callPackage ../development/libraries/libepoxy {
+    inherit (darwin.apple_sdk.frameworks) Carbon OpenGL;
+  };
 
   libesmtp = callPackage ../development/libraries/libesmtp { };
 
@@ -16118,9 +16317,8 @@ with pkgs;
 
   faad2 = callPackage ../development/libraries/faad2 { };
 
-  factor-lang = callPackage ../development/compilers/factor-lang {
-    inherit (gnome2) gtkglext;
-  };
+  factor-lang-scope = callPackage ../development/compilers/factor-lang/scope.nix { };
+  factor-lang = factor-lang-scope.interpreter;
 
   far2l = callPackage ../applications/misc/far2l {
     stdenv = if stdenv.cc.isClang then llvmPackages.stdenv else stdenv;
@@ -16143,7 +16341,9 @@ with pkgs;
 
   fflas-ffpack = callPackage ../development/libraries/fflas-ffpack { };
 
-  forge = callPackage ../development/libraries/forge { };
+  forge = callPackage ../development/libraries/forge {
+    cudatoolkit = buildPackages.cudatoolkit_11;
+  };
 
   linbox = callPackage ../development/libraries/linbox { };
 
@@ -16163,6 +16363,7 @@ with pkgs;
   ffmpeg-full = callPackage ../development/libraries/ffmpeg-full {
     svt-av1 = if stdenv.isAarch64 then null else svt-av1;
     rav1e = null; # We already have SVT-AV1 for faster encoding
+    rtmpdump = null; # Prefer the built-in RTMP implementation
     # The following need to be fixed on Darwin
     libjack2 = if stdenv.isDarwin then null else libjack2;
     libmodplug = if stdenv.isDarwin then null else libmodplug;
@@ -16324,6 +16525,8 @@ with pkgs;
 
   geoclue2 = callPackage ../development/libraries/geoclue {};
 
+  geoclue2-with-demo-agent = geoclue2.override { withDemoAgent = true; };
+
   geocode-glib = callPackage ../development/libraries/geocode-glib {};
 
   geoipWithDatabase = makeOverridable (callPackage ../development/libraries/geoip) {
@@ -16339,7 +16542,8 @@ with pkgs;
 
   getdata = callPackage ../development/libraries/getdata { };
 
-  getdns = callPackage ../development/libraries/getdns { };
+  inherit (callPackages ../development/libraries/getdns { })
+    getdns stubby;
 
   gettext = callPackage ../development/libraries/gettext { };
 
@@ -16388,7 +16592,7 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
-  libgit2_0_27 = libgit2.overrideAttrs (oldAttrs: rec {
+  libgit2_0_27 = libgit2.overrideAttrs (_: rec {
     version = "0.27.10";
     src = fetchFromGitHub {
       owner = "libgit2";
@@ -16402,7 +16606,7 @@ with pkgs;
     ];
   });
 
-  libgit2_1_1 = libgit2.overrideAttrs (oldAttrs: rec {
+  libgit2_1_1 = libgit2.overrideAttrs (_: rec {
     version = "1.1.1";
     src = fetchFromGitHub {
       owner = "libgit2";
@@ -17007,6 +17211,8 @@ with pkgs;
 
   ilmbase = callPackage ../development/libraries/ilmbase { };
 
+  imgui = callPackage ../development/libraries/imgui { };
+
   imlib = callPackage ../development/libraries/imlib {
     libpng = libpng12;
   };
@@ -17088,9 +17294,11 @@ with pkgs;
 
   jbigkit = callPackage ../development/libraries/jbigkit { };
 
-  jemalloc = callPackage ../development/libraries/jemalloc { };
-
-  jemalloc450 = callPackage ../development/libraries/jemalloc/jemalloc450.nix { };
+  jemalloc = callPackage ../development/libraries/jemalloc {
+    # tests fail with LLVM 11+
+    # https://github.com/jemalloc/jemalloc/issues/2091
+    stdenv = if stdenv.cc.isClang then llvmPackages_10.stdenv else stdenv;
+  };
 
   jose = callPackage ../development/libraries/jose { };
 
@@ -17628,7 +17836,9 @@ with pkgs;
 
   libgtop = callPackage ../development/libraries/libgtop {};
 
-  libLAS = callPackage ../development/libraries/libLAS { };
+  libLAS = callPackage ../development/libraries/libLAS {
+    boost = boost172;
+  };
 
   liblaxjson = callPackage ../development/libraries/liblaxjson { };
 
@@ -17849,7 +18059,9 @@ with pkgs;
 
   librevisa = callPackage ../development/libraries/librevisa { };
 
-  librime = callPackage ../development/libraries/librime {};
+  librime = callPackage ../development/libraries/librime {
+    boost = boost174;
+  };
 
   librsb = callPackage ../development/libraries/librsb {
     # Taken from https://build.opensuse.org/package/view_file/science/librsb/librsb.spec
@@ -18041,7 +18253,9 @@ with pkgs;
 
   libndctl = callPackage ../development/libraries/libndctl { };
 
-  libnest2d = callPackage ../development/libraries/libnest2d { };
+  libnest2d = callPackage ../development/libraries/libnest2d {
+    boost = boost174;
+  };
 
   libnet = callPackage ../development/libraries/libnet { };
 
@@ -18223,6 +18437,8 @@ with pkgs;
 
   libstrophe = callPackage ../development/libraries/libstrophe { };
 
+  libspatialaudio = callPackage ../development/libraries/libspatialaudio { };
+
   libspatialindex = callPackage ../development/libraries/libspatialindex { };
 
   libspatialite = callPackage ../development/libraries/libspatialite { };
@@ -18257,7 +18473,9 @@ with pkgs;
 
   libtiff = if stdenv.isDarwin && stdenv.isAarch64
     then callPackage ../development/libraries/libtiff/aarch64-darwin.nix { }
-    else callPackage ../development/libraries/libtiff { };
+    else callPackage ../development/libraries/libtiff {
+      inherit (darwin.apple_sdk.frameworks) Cocoa GLUT;
+    };
 
   libtiger = callPackage ../development/libraries/libtiger { };
 
@@ -18302,6 +18520,8 @@ with pkgs;
 
   libubox = callPackage ../development/libraries/libubox { };
 
+  libudev-zero = callPackage ../development/libraries/libudev-zero { };
+
   libuecc = callPackage ../development/libraries/libuecc { };
 
   libui = callPackage ../development/libraries/libui {
@@ -18348,7 +18568,7 @@ with pkgs;
 
   libunwind =
     if stdenv.isDarwin then darwin.libunwind
-    else if stdenv.hostPlatform.isRiscV then llvmPackages_latest.libunwind
+    else if stdenv.hostPlatform.system == "riscv32-linux" then llvmPackages_latest.libunwind
     else callPackage ../development/libraries/libunwind { };
 
   libuv = callPackage ../development/libraries/libuv {
@@ -18551,6 +18771,8 @@ with pkgs;
 
   lyra = callPackage ../development/libraries/lyra { };
 
+  lzlib = callPackage ../development/libraries/lzlib { };
+
   lzo = callPackage ../development/libraries/lzo { };
 
   opencl-clang = callPackage ../development/libraries/opencl-clang { };
@@ -18562,6 +18784,7 @@ with pkgs;
       proj = proj_7;
     };
     proj = proj_7;
+    boost = boost175;
   };
 
 
@@ -18676,8 +18899,14 @@ with pkgs;
 
   mqtt-bench = callPackage ../applications/misc/mqtt-bench {};
 
+  mqttui = callPackage ../tools/networking/mqttui {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   msgpack = callPackage ../development/libraries/msgpack { };
 
+  msoffcrypto-tool = with python3.pkgs; toPythonApplication msoffcrypto-tool;
+
   msilbc = callPackage ../development/libraries/msilbc { };
 
   mp4v2 = callPackage ../development/libraries/mp4v2 { };
@@ -18772,7 +19001,11 @@ with pkgs;
   nghttp2 = callPackage ../development/libraries/nghttp2 { };
   libnghttp2 = nghttp2.lib;
 
-  nix-plugins = callPackage ../development/libraries/nix-plugins { nix = nix_2_3; };
+  nghttp3 = callPackage ../development/libraries/nghttp3 { };
+
+  ngtcp2 = callPackage ../development/libraries/ngtcp2 { };
+
+  nix-plugins = callPackage ../development/libraries/nix-plugins { };
 
   nika-fonts = callPackage ../data/fonts/nika-fonts { };
 
@@ -19095,7 +19328,7 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) AudioToolbox AudioUnit CoreAudio CoreServices Carbon;
   };
 
-  portaudio2014 = portaudio.overrideAttrs (oldAttrs: {
+  portaudio2014 = portaudio.overrideAttrs (_: {
     src = fetchurl {
       url = "http://www.portaudio.com/archives/pa_stable_v19_20140130.tgz";
       sha256 = "0mwddk4qzybaf85wqfhxqlf0c5im9il8z03rd4n127k8y2jj9q4g";
@@ -19112,6 +19345,8 @@ with pkgs;
 
   prime-server = callPackage ../development/libraries/prime-server { };
 
+  primecount = callPackage ../development/libraries/science/math/primecount { };
+
   primesieve = callPackage ../development/libraries/science/math/primesieve { };
 
   prison = callPackage ../development/libraries/prison { };
@@ -19180,6 +19415,8 @@ with pkgs;
 
   pyotherside = libsForQt5.callPackage ../development/libraries/pyotherside {};
 
+  plasma-hud = callPackage ../misc/plasma-hud { };
+
   re2 = callPackage ../development/libraries/re2 { };
 
   qbs = libsForQt5.callPackage ../development/tools/build-managers/qbs { };
@@ -19225,7 +19462,7 @@ with pkgs;
       inherit lib stdenv fetchurl fetchpatch fetchFromGitHub makeSetupHook makeWrapper;
       inherit bison cups dconf harfbuzz libGL perl gtk3;
       inherit (gst_all_1) gstreamer gst-plugins-base;
-      inherit llvmPackages_5 darwin;
+      inherit darwin;
     });
 
   qt514 = recurseIntoAttrs (makeOverridable
@@ -19234,7 +19471,7 @@ with pkgs;
       inherit lib stdenv fetchurl fetchpatch fetchFromGitHub makeSetupHook makeWrapper;
       inherit bison cups dconf harfbuzz libGL perl gtk3;
       inherit (gst_all_1) gstreamer gst-plugins-base;
-      inherit llvmPackages_5 darwin;
+      inherit darwin;
     });
 
   qt515 = recurseIntoAttrs (makeOverridable
@@ -19243,7 +19480,7 @@ with pkgs;
       inherit lib stdenv fetchurl fetchpatch fetchgit fetchFromGitHub makeSetupHook makeWrapper;
       inherit bison cups dconf harfbuzz libGL perl gtk3;
       inherit (gst_all_1) gstreamer gst-plugins-base;
-      inherit llvmPackages_5 darwin;
+      inherit darwin;
     });
 
   libsForQt512 = recurseIntoAttrs (import ./qt5-packages.nix {
@@ -19268,8 +19505,6 @@ with pkgs;
   # plasma5Packages maps to the Qt5 packages set that is used to build the plasma5 desktop
   plasma5Packages = libsForQt515;
 
-  qt5ct = libsForQt5.callPackage ../tools/misc/qt5ct { };
-
   qtEnv = qt5.env;
   qt5Full = qt5.full;
 
@@ -19393,7 +19628,7 @@ with pkgs;
 
   rocksdb_lite = rocksdb.override { enableLite = true; };
 
-  rocksdb_6_23 = rocksdb.overrideAttrs (old: rec {
+  rocksdb_6_23 = rocksdb.overrideAttrs (_: rec {
     pname = "rocksdb";
     version = "6.23.3";
     src = fetchFromGitHub {
@@ -19523,7 +19758,7 @@ with pkgs;
 
   simp_le = callPackage ../tools/admin/simp_le { };
 
-  simpleitk = callPackage ../development/libraries/simpleitk { };
+  simpleitk = callPackage ../development/libraries/simpleitk { lua = lua5_3; };
 
   sfml = callPackage ../development/libraries/sfml {
     inherit (darwin.apple_sdk.frameworks) IOKit Foundation AppKit OpenAL;
@@ -20089,8 +20324,12 @@ with pkgs;
 
   wiredtiger = callPackage ../development/libraries/wiredtiger { };
 
+  wlr-protocols = callPackage ../development/libraries/wlroots/protocols.nix { };
+
   wt = wt4;
-  inherit (callPackages ../development/libraries/wt {})
+  inherit (callPackages ../development/libraries/wt {
+    boost = boost175;
+  })
     wt3
     wt4;
 
@@ -20476,11 +20715,11 @@ with pkgs;
 
   sqitchMysql = (callPackage ../development/tools/misc/sqitch {
     mysqlSupport = true;
-  }).overrideAttrs (oldAttrs: { pname = "sqitch-mysql"; });
+  }).overrideAttrs (_: { pname = "sqitch-mysql"; });
 
   sqitchPg = (callPackage ../development/tools/misc/sqitch {
     postgresqlSupport = true;
-  }).overrideAttrs (oldAttrs: { pname = "sqitch-pg"; });
+  }).overrideAttrs (_: { pname = "sqitch-pg"; });
 
   ### DEVELOPMENT / R MODULES
 
@@ -20514,7 +20753,7 @@ with pkgs;
   };
 
   rPackages = dontRecurseIntoAttrs (callPackage ../development/r-modules {
-    overrides = (config.rPackageOverrides or (p: {})) pkgs;
+    overrides = (config.rPackageOverrides or (_: {})) pkgs;
   });
 
   ### SERVERS
@@ -20561,6 +20800,8 @@ with pkgs;
     mod_wsgi2 = callPackage ../servers/http/apache-modules/mod_wsgi { python = python2; ncurses = null; };
     mod_wsgi3 = callPackage ../servers/http/apache-modules/mod_wsgi { python = python3; };
 
+    mod_itk = callPackage ../servers/http/apache-modules/mod_itk { };
+
     php = pkgs.php.override { inherit apacheHttpd; };
 
     subversion = pkgs.subversion.override { httpServer = true; inherit apacheHttpd; };
@@ -20638,6 +20879,8 @@ with pkgs;
 
   clickhouse-cli = with python3Packages; toPythonApplication clickhouse-cli;
 
+  clickhouse-backup = callPackage ../development/tools/database/clickhouse-backup { };
+
   couchdb3 = callPackage ../servers/http/couchdb/3.nix {
     erlang = erlangR22;
   };
@@ -20689,6 +20932,7 @@ with pkgs;
   envoy = callPackage ../servers/http/envoy {
     go = go_1_15;
     jdk = openjdk11;
+    gn = gn1924;
   };
 
   etcd = callPackage ../servers/etcd { };
@@ -20893,9 +21137,13 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) DiskArbitration Foundation;
   };
 
+  matrix-alertmanager = callPackage ../servers/monitoring/matrix-alertmanager { };
+
   mattermost = callPackage ../servers/mattermost { };
   matterircd = callPackage ../servers/mattermost/matterircd.nix { };
-  matterbridge = callPackage ../servers/matterbridge { };
+  matterbridge = callPackage ../servers/matterbridge {
+    buildGoModule = buildGo117Module;
+  };
 
   mattermost-desktop = callPackage ../applications/networking/instant-messengers/mattermost-desktop { };
 
@@ -20981,7 +21229,7 @@ with pkgs;
     # See https://github.com/NixOS/nixpkgs/pull/10474#discussion_r42369334
     modules = [ nginxModules.rtmp nginxModules.dav nginxModules.moreheaders ];
     # Use latest boringssl to allow http3 support
-    openssl = boringssl;
+    openssl = quictls;
   };
 
   nginxStable = callPackage ../servers/http/nginx/stable.nix {
@@ -20994,6 +21242,7 @@ with pkgs;
 
   nginxMainline = callPackage ../servers/http/nginx/mainline.nix {
     zlib = zlib-ng.override { withZlibCompat = true; };
+    withKTLS = true;
     withPerl = false;
     # We don't use `with` statement here on purpose!
     # See https://github.com/NixOS/nixpkgs/pull/10474#discussion_r42369334
@@ -21078,6 +21327,8 @@ with pkgs;
 
   quark = callPackage ../servers/http/quark { };
 
+  soft-serve = callPackage ../servers/soft-serve { };
+
   sympa = callPackage ../servers/mail/sympa { };
 
   system-sendmail = lowPrio (callPackage ../servers/mail/system-sendmail { });
@@ -21091,6 +21342,7 @@ with pkgs;
   };
 
   pulseaudio = callPackage ../servers/pulseaudio ({
+    inherit (darwin) Libc;
     inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
   } // lib.optionalAttrs stdenv.isDarwin {
     # Default autoreconfHook (2.70) fails on darwin,
@@ -21204,7 +21456,16 @@ with pkgs;
   };
 
   influxdb = callPackage ../servers/nosql/influxdb { };
-  influxdb2 = callPackage ../servers/nosql/influxdb2 { };
+  influxdb2-server = callPackage ../servers/nosql/influxdb2 {
+    buildGoModule = buildGo117Module;
+  };
+  influxdb2-cli = callPackage ../servers/nosql/influxdb2/cli.nix {
+    buildGoModule = buildGo117Module;
+  };
+  # For backwards compatibility with older versions of influxdb2,
+  # which bundled the server and CLI into the same derivation. Will be
+  # removed in a few releases.
+  influxdb2 = callPackage ../servers/nosql/influxdb2/combined.nix { };
 
   mysql57 = callPackage ../servers/sql/mysql/5.7.x.nix {
     inherit (darwin) cctools developer_cmds;
@@ -21224,6 +21485,7 @@ with pkgs;
   mysql_jdbc = callPackage ../servers/sql/mysql/jdbc { };
 
   mssql_jdbc = callPackage ../servers/sql/mssql/jdbc { };
+  jtds_jdbc = callPackage ../servers/sql/mssql/jdbc/jtds.nix { };
 
   azuredatastudio = callPackage ../applications/misc/azuredatastudio { };
 
@@ -21309,14 +21571,13 @@ with pkgs;
     asciidoc = asciidoc-full;
   };
 
-  promscale = callPackage ../servers/monitoring/prometheus/promscale.nix { };
+  promscale = callPackage ../servers/monitoring/prometheus/promscale { };
 
   timescaledb-parallel-copy = callPackage ../development/tools/database/timescaledb-parallel-copy { };
 
   timescaledb-tune = callPackage ../development/tools/database/timescaledb-tune { };
 
   inherit (import ../servers/sql/postgresql pkgs)
-    postgresql_9_6
     postgresql_10
     postgresql_11
     postgresql_12
@@ -21381,6 +21642,7 @@ with pkgs;
   prometheus-rabbitmq-exporter = callPackage ../servers/monitoring/prometheus/rabbitmq-exporter.nix { };
   prometheus-rtl_433-exporter = callPackage ../servers/monitoring/prometheus/rtl_433-exporter.nix { };
   prometheus-script-exporter = callPackage ../servers/monitoring/prometheus/script-exporter.nix { };
+  prometheus-smartctl-exporter = callPackage ../servers/monitoring/prometheus/smartctl-exporter { };
   prometheus-smokeping-prober = callPackage ../servers/monitoring/prometheus/smokeping-prober.nix { };
   prometheus-snmp-exporter = callPackage ../servers/monitoring/prometheus/snmp-exporter.nix { };
   prometheus-statsd-exporter = callPackage ../servers/monitoring/prometheus/statsd-exporter.nix { };
@@ -21448,14 +21710,12 @@ with pkgs;
     libtool = darwin.cctools;
   };
 
-  # Fails to compile with boost >= 1.72
+  # Fails to compile with boost <= 1.72
   rippled = callPackage ../servers/rippled {
-    boost = boost17x;
+    boost = boost172;
   };
 
-  rippled-validator-keys-tool = callPackage ../servers/rippled/validator-keys-tool.nix {
-    boost = boost17x;
-  };
+  rippled-validator-keys-tool = callPackage ../servers/rippled/validator-keys-tool.nix { };
 
   roon-bridge = callPackage ../servers/roon-bridge { };
 
@@ -21543,6 +21803,8 @@ with pkgs;
 
   squid = callPackage ../servers/squid { };
 
+  duckling-proxy = callPackage ../servers/duckling-proxy { };
+
   sslh = callPackage ../servers/sslh { };
 
   thttpd = callPackage ../servers/http/thttpd { };
@@ -21559,7 +21821,9 @@ with pkgs;
 
   syncserver = callPackage ../servers/syncserver { };
 
-  tailscale = callPackage ../servers/tailscale { };
+  tailscale = callPackage ../servers/tailscale {
+    buildGoModule = buildGo117Module;
+  };
 
   thanos = callPackage ../servers/monitoring/thanos { };
 
@@ -21636,6 +21900,8 @@ with pkgs;
 
   webdav = callPackage ../servers/webdav { };
 
+  webdav-server-rs = callPackage ../servers/webdav-server-rs { };
+
   webmetro = callPackage ../servers/webmetro { };
 
   wsdd = callPackage ../servers/wsdd { };
@@ -21752,7 +22018,7 @@ with pkgs;
 
   iucode-tool = callPackage ../os-specific/linux/microcode/iucode-tool.nix { };
 
-  inherit (callPackages ../os-specific/linux/apparmor { python = python3; })
+  inherit (callPackages ../os-specific/linux/apparmor { })
     libapparmor apparmor-utils apparmor-bin-utils apparmor-parser apparmor-pam
     apparmor-profiles apparmor-kernel-patches apparmorRulesFromClosure;
 
@@ -21987,6 +22253,8 @@ with pkgs;
     inherit (darwin) IOKit;
   };
 
+  htop-vim = callPackage ../tools/system/htop/htop-vim.nix { };
+
   btop = callPackage ../tools/system/btop {
     stdenv = gcc11Stdenv;
   };
@@ -22182,8 +22450,6 @@ with pkgs;
   linux_5_4_hardened = linuxKernel.kernels.linux_5_4_hardened;
   linuxPackages_5_10_hardened = linuxKernel.packages.linux_5_10_hardened;
   linux_5_10_hardened = linuxKernel.kernels.linux_5_10_hardened;
-  linuxPackages_5_14_hardened = linuxKernel.packages.linux_5_14_hardened;
-  linux_5_14_hardened = linuxKernel.kernels.linux_5_14_hardened;
   linuxPackages_5_15_hardened = linuxKernel.packages.linux_5_15_hardened;
   linux_5_15_hardened = linuxKernel.kernels.linux_5_15_hardened;
 
@@ -22203,6 +22469,7 @@ with pkgs;
 
   # XanMod kernel
   linuxPackages_xanmod = linuxKernel.packages.linux_xanmod;
+  linux_xanmod = linuxKernel.kernels.linux_xanmod;
 
   cryptodev = linuxKernel.packages.linux_4_9.cryptodev;
 
@@ -22246,6 +22513,8 @@ with pkgs;
 
   lsiutil = callPackage ../os-specific/linux/lsiutil { };
 
+  kaitai-struct-compiler = callPackage ../development/compilers/kaitai-struct-compiler { };
+
   kmod = callPackage ../os-specific/linux/kmod { };
 
   kmod-blacklist-ubuntu = callPackage ../os-specific/linux/kmod-blacklist-ubuntu { };
@@ -22346,6 +22615,8 @@ with pkgs;
 
   system76-firmware = callPackage ../os-specific/linux/firmware/system76-firmware { };
 
+  ocf-resource-agents = callPackage ../os-specific/linux/ocf-resource-agents { };
+
   open-vm-tools = callPackage ../applications/virtualization/open-vm-tools { };
   open-vm-tools-headless = open-vm-tools.override { withX = false; };
 
@@ -22459,6 +22730,10 @@ with pkgs;
 
   ofono = callPackage ../tools/networking/ofono { };
 
+  okapi = callPackage ../development/libraries/okapi {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   openpam = callPackage ../development/libraries/openpam { };
 
   openbsm = callPackage ../development/libraries/openbsm { };
@@ -22519,7 +22794,9 @@ with pkgs;
 
   semodule-utils = callPackage ../os-specific/linux/semodule-utils { };
 
-  powerdns = callPackage ../servers/dns/powerdns { };
+  powerdns = callPackage ../servers/dns/powerdns {
+    boost = boost172;
+  };
 
   powerdns-admin = callPackage ../applications/networking/powerdns-admin { };
 
@@ -22610,13 +22887,13 @@ with pkgs;
 
   sdrangel = libsForQt5.callPackage ../applications/radio/sdrangel {  };
 
-  sepolgen = callPackage ../os-specific/linux/sepolgen { };
-
   setools = callPackage ../os-specific/linux/setools { };
 
   seturgent = callPackage ../os-specific/linux/seturgent { };
 
-  sgx-sdk = callPackage ../os-specific/linux/sgx-sdk { };
+  sgx-sdk = callPackage ../os-specific/linux/sgx/sdk { };
+
+  sgx-psw = callPackage ../os-specific/linux/sgx/psw { };
 
   shadow = callPackage ../os-specific/linux/shadow { };
 
@@ -22734,6 +23011,10 @@ with pkgs;
 
   trinity = callPackage ../os-specific/linux/trinity { };
 
+  trinsic-cli = callPackage ../tools/admin/trinsic-cli {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   tunctl = callPackage ../os-specific/linux/tunctl { };
 
   twa = callPackage ../tools/networking/twa { };
@@ -23369,6 +23650,8 @@ with pkgs;
 
   material-icons = callPackage ../data/fonts/material-icons { };
 
+  material-kwin-decoration = libsForQt5.callPackage ../data/themes/material-kwin-decoration { };
+
   meslo-lg = callPackage ../data/fonts/meslo-lg {};
 
   meslo-lgs-nf = callPackage ../data/fonts/meslo-lgs-nf {};
@@ -23427,6 +23710,8 @@ with pkgs;
 
   nordic = callPackage ../data/themes/nordic { };
 
+  nordzy-cursor-theme = callPackage ../data/icons/nordzy-cursor-theme { };
+
   inherit (callPackages ../data/fonts/noto-fonts {})
     noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-emoji-blob-bin noto-fonts-extra;
 
@@ -23525,7 +23810,7 @@ with pkgs;
   pop-gtk-theme = callPackage ../data/themes/pop-gtk { };
 
   pop-icon-theme = callPackage ../data/icons/pop-icon-theme {
-    inherit (plasma5Packages) breeze-icons;
+    inherit (gnome) adwaita-icon-theme;
   };
 
   powerline-fonts = callPackage ../data/fonts/powerline-fonts { };
@@ -23776,6 +24061,8 @@ with pkgs;
 
   undefined-medium = callPackage ../data/fonts/undefined-medium { };
 
+  unfonts-core = callPackage ../data/fonts/unfonts-core { };
+
   uni-vga = callPackage ../data/fonts/uni-vga
     { inherit (buildPackages.xorg) fonttosfnt mkfontscale; };
 
@@ -23897,6 +24184,8 @@ with pkgs;
 
   foxitreader = libsForQt512.callPackage ../applications/misc/foxitreader { };
 
+  pdfstudio = callPackage ../applications/misc/pdfstudio { };
+
   aeolus = callPackage ../applications/audio/aeolus { };
 
   aewan = callPackage ../applications/editors/aewan { };
@@ -23918,6 +24207,8 @@ with pkgs;
 
   alembic = callPackage ../development/libraries/alembic {};
 
+  alfaview = callPackage ../applications/networking/instant-messengers/alfaview { };
+
   alchemy = callPackage ../applications/graphics/alchemy { };
 
   alock = callPackage ../misc/screensavers/alock { };
@@ -23993,10 +24284,14 @@ with pkgs;
 
   arion = callPackage ../applications/virtualization/arion { };
 
+  arkade = callPackage ../applications/networking/cluster/arkade { };
+
   asuka = callPackage ../applications/networking/browsers/asuka {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  ascii-image-converter = callPackage ../applications/graphics/ascii-image-converter { };
+
   artha = callPackage ../applications/misc/artha { };
 
   atlassian-cli = callPackage ../applications/office/atlassian-cli { };
@@ -24025,7 +24320,14 @@ with pkgs;
 
   audacity-gtk2 = callPackage ../applications/audio/audacity { wxGTK = wxGTK31-gtk2; };
   audacity-gtk3 = callPackage ../applications/audio/audacity { wxGTK = wxGTK31-gtk3; };
-  audacity = audacity-gtk2;
+  audacity =
+    if stdenv.isDarwin then
+      callPackage ../applications/audio/audacity {
+        inherit (darwin.apple_sdk.frameworks) AppKit AudioToolbox AudioUnit Carbon Cocoa CoreAudio CoreAudioKit CoreServices;
+        suil = suil-qt5;
+      }
+    else
+      audacity-gtk2;
 
   audio-recorder = callPackage ../applications/audio/audio-recorder { };
 
@@ -24053,17 +24355,27 @@ with pkgs;
 
   milkytracker = callPackage ../applications/audio/milkytracker { };
 
-  ptcollab = libsForQt5.callPackage ../applications/audio/ptcollab { };
+  ptcollab = libsForQt515.callPackage ../applications/audio/ptcollab { };
 
   schismtracker = callPackage ../applications/audio/schismtracker { };
 
   jnetmap = callPackage ../applications/networking/jnetmap {};
 
-  libbitcoin = callPackage ../tools/misc/libbitcoin/libbitcoin.nix { };
-  libbitcoin-protocol = callPackage ../tools/misc/libbitcoin/libbitcoin-protocol.nix { };
-  libbitcoin-client   = callPackage ../tools/misc/libbitcoin/libbitcoin-client.nix { };
-  libbitcoin-network  = callPackage ../tools/misc/libbitcoin/libbitcoin-network.nix { };
-  libbitcoin-explorer = callPackage ../tools/misc/libbitcoin/libbitcoin-explorer.nix { };
+  libbitcoin = callPackage ../tools/misc/libbitcoin/libbitcoin.nix {
+    boost = boost175; # fatal error: 'boost/interprocess/detail/posix_time_types_wrk.hpp' file not found
+  };
+  libbitcoin-protocol = callPackage ../tools/misc/libbitcoin/libbitcoin-protocol.nix {
+    boost = boost175;
+  };
+  libbitcoin-client   = callPackage ../tools/misc/libbitcoin/libbitcoin-client.nix {
+    boost = boost175;
+  };
+  libbitcoin-network  = callPackage ../tools/misc/libbitcoin/libbitcoin-network.nix {
+    boost = boost175;
+  };
+  libbitcoin-explorer = callPackage ../tools/misc/libbitcoin/libbitcoin-explorer.nix {
+    boost = boost175;
+  };
 
 
   aumix = callPackage ../applications/audio/aumix {
@@ -24342,13 +24654,8 @@ with pkgs;
 
   ciscoPacketTracer8 = callPackage ../applications/networking/cisco-packet-tracer/8.nix { };
 
-  claws-mail-gtk2 = callPackage ../applications/networking/mailreaders/claws-mail {
-    inherit (xorg) libSM;
-    useGtk3 = false;
-  };
   claws-mail = callPackage ../applications/networking/mailreaders/claws-mail {
     inherit (xorg) libSM;
-    useGtk3 = true;
   };
 
   clfswm = callPackage ../applications/window-managers/clfswm { };
@@ -24409,6 +24716,8 @@ with pkgs;
     ffmpeg = ffmpeg-full;
   };
 
+  cpeditor = libsForQt515.callPackage ../applications/editors/cpeditor { };
+
   csa = callPackage ../applications/audio/csa { };
 
   csound = callPackage ../applications/audio/csound { };
@@ -24814,6 +25123,8 @@ with pkgs;
 
   fnott = callPackage ../applications/misc/fnott { };
 
+  gg-scm = callPackage ../applications/version-management/git-and-tools/gg { };
+
   gigalixir = with python3Packages; toPythonApplication gigalixir;
 
   go-libp2p-daemon = callPackage ../servers/go-libp2p-daemon { };
@@ -24834,6 +25145,8 @@ with pkgs;
 
   icesl = callPackage ../applications/misc/icesl { };
 
+  kalendar = libsForQt5.callPackage ../applications/office/kalendar { };
+
   keepassx = callPackage ../applications/misc/keepassx { };
   keepassx2 = callPackage ../applications/misc/keepassx/2.0.nix { };
   keepassxc = libsForQt5.callPackage ../applications/misc/keepassx/community.nix { };
@@ -24848,20 +25161,28 @@ with pkgs;
 
   keepass = callPackage ../applications/misc/keepass { };
 
+  keepass-charactercopy = callPackage ../applications/misc/keepass-plugins/charactercopy { };
+
   keepass-keeagent = callPackage ../applications/misc/keepass-plugins/keeagent { };
 
   keepass-keepasshttp = callPackage ../applications/misc/keepass-plugins/keepasshttp { };
 
   keepass-keepassrpc = callPackage ../applications/misc/keepass-plugins/keepassrpc { };
 
+  keepass-keetraytotp = callPackage ../applications/misc/keepass-plugins/keetraytotp { };
+
   keepass-otpkeyprov = callPackage ../applications/misc/keepass-plugins/otpkeyprov { };
 
+  keepass-qrcodeview = callPackage ../applications/misc/keepass-plugins/qrcodeview { };
+
   kerbrute = callPackage ../tools/security/kerbrute { };
 
   exrdisplay = callPackage ../applications/graphics/exrdisplay { };
 
   exrtools = callPackage ../applications/graphics/exrtools { };
 
+  f1viewer = callPackage ../applications/video/f1viewer {};
+
   fasttext = callPackage ../applications/science/machine-learning/fasttext { };
 
   fbmenugen = callPackage ../applications/misc/fbmenugen { };
@@ -24989,7 +25310,6 @@ with pkgs;
     unwrapped = callPackage ../applications/radio/gnuradio {
       inherit (darwin.apple_sdk.frameworks) CoreAudio;
       python = python3;
-      boost = boost17x;
     };
   };
   gnuradioPackages = lib.recurseIntoAttrs gnuradio.pkgs;
@@ -25022,7 +25342,6 @@ with pkgs;
     unwrapped = callPackage ../applications/radio/gnuradio/3.8.nix {
       inherit (darwin.apple_sdk.frameworks) CoreAudio;
       python = python3;
-      boost = boost17x;
     };
   };
   gnuradio3_8Packages = lib.recurseIntoAttrs gnuradio3_8.pkgs;
@@ -25115,6 +25434,14 @@ with pkgs;
   gpx = callPackage ../applications/misc/gpx { };
 
   gqrx = callPackage ../applications/radio/gqrx { };
+  gqrx-portaudio = callPackage ../applications/radio/gqrx {
+    portaudioSupport = true;
+    pulseaudioSupport = false;
+  };
+  gqrx-gr-audio = callPackage ../applications/radio/gqrx {
+    portaudioSupport = false;
+    pulseaudioSupport = false;
+  };
 
   gpx-viewer = callPackage ../applications/misc/gpx-viewer { };
 
@@ -25283,9 +25610,9 @@ with pkgs;
   fragments = callPackage ../applications/networking/p2p/fragments { };
 
   freecad = libsForQt5.callPackage ../applications/graphics/freecad {
+    boost = python3Packages.boost169;
     inherit (python3Packages)
       GitPython
-      boost
       matplotlib
       pivy
       ply
@@ -25471,6 +25798,8 @@ with pkgs;
 
   lollypop = callPackage ../applications/audio/lollypop { };
 
+  losslessaudiochecker = callPackage ../applications/audio/losslessaudiochecker { };
+
   m32edit = callPackage ../applications/audio/midas/m32edit.nix {};
 
   manim = python3Packages.callPackage ../applications/video/manim {
@@ -25619,10 +25948,6 @@ with pkgs;
 
   guardian-agent = callPackage ../tools/networking/guardian-agent { };
 
-  guitone = callPackage ../applications/version-management/guitone {
-    graphviz = graphviz_2_32;
-  };
-
   gv = callPackage ../applications/misc/gv { };
 
   gvisor = callPackage ../applications/virtualization/gvisor {
@@ -25773,9 +26098,9 @@ with pkgs;
 
   hyperledger-fabric = callPackage ../tools/misc/hyperledger-fabric { };
 
-  jackline = callPackage ../applications/networking/instant-messengers/jackline {
-    ocamlPackages = ocaml-ng.ocamlPackages_4_08;
-  };
+  indigenous-desktop = callPackage ../applications/networking/feedreaders/indigenous-desktop { };
+
+  jackline = callPackage ../applications/networking/instant-messengers/jackline { };
 
   leftwm = callPackage ../applications/window-managers/leftwm { };
 
@@ -25787,6 +26112,8 @@ with pkgs;
 
   musikcube = callPackage ../applications/audio/musikcube {};
 
+  p2pool = callPackage ../applications/misc/p2pool { };
+
   pass2csv = python3Packages.callPackage ../tools/security/pass2csv {};
 
   pass-secret-service = callPackage ../applications/misc/pass-secret-service { };
@@ -25797,10 +26124,14 @@ with pkgs;
 
   pixelnuke = callPackage ../applications/graphics/pixelnuke { };
 
+  pixeluvo = callPackage ../applications/graphics/pixeluvo { };
+
   pmbootstrap = python3Packages.callPackage ../tools/misc/pmbootstrap { };
 
   shepherd = nodePackages."@nerdwallet/shepherd";
 
+  skate = callPackage ../applications/misc/skate { };
+
   slack = callPackage ../applications/networking/instant-messengers/slack { };
 
   slack-cli = callPackage ../tools/networking/slack-cli { };
@@ -25831,7 +26162,9 @@ with pkgs;
 
   srain = callPackage ../applications/networking/irc/srain { };
 
-  super-productivity = callPackage ../applications/office/super-productivity { };
+  super-productivity = callPackage ../applications/office/super-productivity {
+    electron = electron_13;
+  };
 
   wlroots = callPackage ../development/libraries/wlroots {
     inherit (xorg) xcbutilrenderutil;
@@ -25939,6 +26272,8 @@ with pkgs;
 
   icecat-bin = callPackage ../applications/networking/browsers/icecat-bin { };
 
+  icon-library = callPackage ../applications/graphics/icon-library { };
+
   id3v2 = callPackage ../applications/audio/id3v2 { };
 
   ideamaker = libsForQt5.callPackage ../applications/misc/ideamaker { };
@@ -26188,6 +26523,8 @@ with pkgs;
 
   kbibtex = libsForQt5.callPackage ../applications/office/kbibtex { };
 
+  kbst = callPackage ../applications/networking/cluster/kbst { };
+
   kaidan = libsForQt5.callPackage ../applications/networking/instant-messengers/kaidan { };
 
   kde-gruvbox = callPackage ../data/themes/kde-gruvbox { };
@@ -26266,7 +26603,6 @@ with pkgs;
   krane = callPackage ../applications/networking/cluster/krane { };
 
   krita = libsForQt5.callPackage ../applications/graphics/krita { };
-  krita-beta = libsForQt5.callPackage ../applications/graphics/krita/beta.nix { };
 
   krusader = libsForQt5.callPackage ../applications/misc/krusader { };
 
@@ -26296,6 +26632,8 @@ with pkgs;
 
   kubeconform = callPackage ../applications/networking/cluster/kubeconform { };
 
+  kubecolor = callPackage ../applications/networking/cluster/kubecolor { };
+
   kubectl = callPackage ../applications/networking/cluster/kubectl { };
 
   kubebuilder = callPackage ../applications/networking/cluster/kubebuilder { };
@@ -26308,6 +26646,8 @@ with pkgs;
 
   kubectl-example = callPackage ../applications/networking/cluster/kubectl-example { };
 
+  kubectl-tree = callPackage ../applications/networking/cluster/kubectl-tree { };
+
   kubeless = callPackage ../applications/networking/cluster/kubeless { };
 
   kubelogin = callPackage ../applications/networking/cluster/kubelogin { };
@@ -26330,7 +26670,28 @@ with pkgs;
   linkerd_edge = callPackage ../applications/networking/cluster/linkerd/edge.nix { };
   linkerd_stable = linkerd;
 
-  kumactl = callPackage ../applications/networking/cluster/kumactl { };
+  kuma = callPackage ../applications/networking/cluster/kuma { isFull = true; };
+  kuma-experimental = callPackage ../applications/networking/cluster/kuma {
+    isFull = true;
+    enableGateway = true;
+    pname = "kuma-experimental";
+  };
+  kumactl = callPackage ../applications/networking/cluster/kuma {
+    components = ["kumactl"];
+    pname = "kumactl";
+  };
+  kuma-cp = callPackage ../applications/networking/cluster/kuma {
+    components = ["kuma-cp"];
+    pname = "kuma-cp";
+  };
+  kuma-dp = callPackage ../applications/networking/cluster/kuma {
+    components = ["kuma-dp"];
+    pname = "kuma-dp";
+  };
+  kuma-prometheus-sd = callPackage ../applications/networking/cluster/kuma {
+    components = ["kuma-prometheus-sd"];
+    pname = "kuma-prometheus-sd";
+  };
 
   kile-wl = callPackage ../applications/misc/kile-wl { };
 
@@ -26402,7 +26763,9 @@ with pkgs;
 
   libowlevelzs = callPackage ../development/libraries/libowlevelzs { };
 
-  librecad = libsForQt514.callPackage ../applications/misc/librecad { };
+  librecad = libsForQt514.callPackage ../applications/misc/librecad {
+    boost = boost175;
+  };
 
   libreoffice = hiPrio libreoffice-still;
   libreoffice-unwrapped = libreoffice.libreoffice;
@@ -26465,8 +26828,6 @@ with pkgs;
 
   lingot = callPackage ../applications/audio/lingot { };
 
-  linuxband = callPackage ../applications/audio/linuxband { };
-
   littlegptracker = callPackage ../applications/audio/littlegptracker {
     inherit (darwin.apple_sdk.frameworks) Foundation;
   };
@@ -26766,6 +27127,8 @@ with pkgs;
 
   moc = callPackage ../applications/audio/moc { };
 
+  mod-arpeggiator-lv2 = callPackage ../applications/audio/mod-arpeggiator-lv2 { };
+
   mod-distortion = callPackage ../applications/audio/mod-distortion { };
 
   xmr-stak = callPackage ../applications/misc/xmr-stak {
@@ -26788,6 +27151,7 @@ with pkgs;
 
   monotone = callPackage ../applications/version-management/monotone {
     lua = lua5;
+    boost = boost170;
   };
 
   monotoneViz = callPackage ../applications/version-management/monotone-viz {
@@ -26813,6 +27177,7 @@ with pkgs;
   inherit (mopidyPackages)
     mopidy
     mopidy-iris
+    mopidy-jellyfin
     mopidy-local
     mopidy-moped
     mopidy-mopify
@@ -26879,6 +27244,8 @@ with pkgs;
 
   rofi-power-menu = callPackage ../applications/misc/rofi-power-menu { };
 
+  rofi-pulse-select = callPackage ../applications/audio/rofi-pulse-select { };
+
   rofi-vpn = callPackage ../applications/networking/rofi-vpn { };
 
   ympd = callPackage ../applications/audio/ympd { };
@@ -26925,6 +27292,7 @@ with pkgs;
     sponsorblock = callPackage ../applications/video/mpv/scripts/sponsorblock.nix {};
     thumbnail = callPackage ../applications/video/mpv/scripts/thumbnail.nix { };
     youtube-quality = callPackage ../applications/video/mpv/scripts/youtube-quality.nix { };
+    cutter = callPackage ../applications/video/mpv/scripts/cutter.nix { };
   };
 
   mrpeach = callPackage ../applications/audio/pd-plugins/mrpeach { };
@@ -26968,7 +27336,7 @@ with pkgs;
     if stdenv.isDarwin then
       callPackage ../applications/audio/musescore/darwin.nix { }
     else
-      libsForQt514.callPackage ../applications/audio/musescore { };
+      libsForQt5.callPackage ../applications/audio/musescore { };
 
   mmh = callPackage ../applications/networking/mailreaders/mmh { };
   mutt = callPackage ../applications/networking/mailreaders/mutt { };
@@ -27009,9 +27377,7 @@ with pkgs;
 
   ninjas2 = callPackage ../applications/audio/ninjas2 {};
 
-  nncp = callPackage ../tools/misc/nncp {
-    go = go_1_15;
-  };
+  nncp = callPackage ../tools/misc/nncp { };
 
   notion = callPackage ../applications/window-managers/notion { };
 
@@ -27096,8 +27462,6 @@ with pkgs;
 
   yambar = callPackage ../applications/misc/yambar { };
 
-  yambar-wayland = callPackage ../applications/misc/yambar { waylandSupport = true; };
-
   polyphone = libsForQt514.callPackage ../applications/audio/polyphone { };
 
   portfolio = callPackage ../applications/office/portfolio {
@@ -27296,7 +27660,9 @@ with pkgs;
 
   notmuch-addrlookup = callPackage ../applications/networking/mailreaders/notmuch-addrlookup { };
 
-  nova-filters =  callPackage ../applications/audio/nova-filters { };
+  nova-filters =  callPackage ../applications/audio/nova-filters {
+    boost = boost172;
+  };
 
   nvi = callPackage ../applications/editors/nvi { };
 
@@ -27344,7 +27710,9 @@ with pkgs;
 
   openfx = callPackage ../development/libraries/openfx {};
 
-  openimageio = callPackage ../applications/graphics/openimageio { };
+  openimageio = callPackage ../applications/graphics/openimageio {
+    boost = boost175;
+  };
 
   openimageio2 = callPackage ../applications/graphics/openimageio/2.x.nix { };
 
@@ -27448,6 +27816,8 @@ with pkgs;
 
   capture = callPackage ../tools/misc/capture {};
 
+  patchmatrix = callPackage ../applications/audio/patchmatrix { };
+
   pbrt = callPackage ../applications/graphics/pbrt { };
 
   pcloud = callPackage ../applications/networking/pcloud { };
@@ -27458,6 +27828,10 @@ with pkgs;
     wxGTK = wxGTK30-gtk3;
   };
 
+  jpsxdec = callPackage ../tools/games/jpsxdec {
+    jdk = openjdk8;
+  };
+
   pdfslicer = callPackage ../applications/misc/pdfslicer { };
 
   pekwm = callPackage ../applications/window-managers/pekwm { };
@@ -27481,8 +27855,6 @@ with pkgs;
   pdfgrep  = callPackage ../tools/typesetting/pdfgrep { };
 
   pdfpc = callPackage ../applications/misc/pdfpc {
-    # https://github.com/pdfpc/pdfpc/issues/594
-    vala = vala_0_50;
     inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-libav;
   };
 
@@ -27754,9 +28126,7 @@ with pkgs;
 
   qmapshack = libsForQt5.callPackage ../applications/gis/qmapshack { };
 
-  qmediathekview = libsForQt5.callPackage ../applications/video/qmediathekview {
-    boost = boost17x;
-  };
+  qmediathekview = libsForQt5.callPackage ../applications/video/qmediathekview { };
 
   qmplay2 = libsForQt5.callPackage ../applications/video/qmplay2 { };
 
@@ -27772,6 +28142,8 @@ with pkgs;
 
   qnotero = libsForQt5.callPackage ../applications/office/qnotero { };
 
+  qpwgraph = libsForQt5.callPackage ../applications/audio/qpwgraph { };
+
   qrcode = callPackage ../tools/graphics/qrcode {};
 
   qsampler = libsForQt5.callPackage ../applications/audio/qsampler { };
@@ -27952,9 +28324,7 @@ with pkgs;
 
   rocketchat-desktop = callPackage ../applications/networking/instant-messengers/rocketchat-desktop { };
 
-  rofi-unwrapped = callPackage ../applications/misc/rofi {
-    autoreconfHook = buildPackages.autoreconfHook269;
-  };
+  rofi-unwrapped = callPackage ../applications/misc/rofi { };
   rofi = callPackage ../applications/misc/rofi/wrapper.nix { };
 
   rofi-pass = callPackage ../tools/security/pass/rofi-pass.nix { };
@@ -28104,6 +28474,8 @@ with pkgs;
 
   spotify-qt = libsForQt5.callPackage ../applications/audio/spotify-qt { };
 
+  spotify-tray = callPackage ../applications/misc/spotify-tray { };
+
   spotify-tui = callPackage ../applications/audio/spotify-tui {
     inherit (darwin.apple_sdk.frameworks) AppKit Security;
   };
@@ -28237,6 +28609,8 @@ with pkgs;
 
   soci = callPackage ../development/libraries/soci { };
 
+  socialscan = with python3.pkgs; toPythonApplication socialscan;
+
   sonic-lineup = libsForQt5.callPackage ../applications/audio/sonic-lineup { };
 
   sonic-visualiser = libsForQt5.callPackage ../applications/audio/sonic-visualiser { };
@@ -28270,6 +28644,7 @@ with pkgs;
     jdk = jdk8;
     pythonPackages = python3Packages;
     inherit llvmPackages;
+    boost = boost16x; # Filesystem tests in the checkPhase fail with Boost 1.77
   };
 
   spotifywm = callPackage ../applications/audio/spotifywm { };
@@ -28292,7 +28667,7 @@ with pkgs;
 
   stalonetray = callPackage ../applications/window-managers/stalonetray {};
 
-  inherit (ocaml-ng.ocamlPackages_4_07) stog;
+  inherit (ocamlPackages) stog;
 
   stp = callPackage ../applications/science/logic/stp { };
 
@@ -28361,6 +28736,10 @@ with pkgs;
 
   sylpheed = callPackage ../applications/networking/mailreaders/sylpheed { };
 
+  symbolic-preview = callPackage ../applications/graphics/symbolic-preview {
+    libhandy = libhandy_0;
+  };
+
   symlinks = callPackage ../tools/system/symlinks { };
 
   syncplay = python3.pkgs.callPackage ../applications/networking/syncplay { };
@@ -28521,10 +28900,19 @@ with pkgs;
   thunderbird = wrapThunderbird thunderbird-unwrapped { };
   thunderbird-wayland = wrapThunderbird thunderbird-unwrapped { forceWayland = true; };
 
-  thunderbolt = callPackage ../os-specific/linux/thunderbolt {};
-
   thunderbird-bin = thunderbird-bin-91;
-  thunderbird-bin-91 = callPackage ../applications/networking/mailreaders/thunderbird-bin { };
+  thunderbird-bin-unwrapped = thunderbird-bin-91-unwrapped;
+
+  thunderbird-bin-91 = wrapThunderbird thunderbird-bin-91-unwrapped {
+    applicationName = "thunderbird";
+    pname = "thunderbird-bin";
+    desktopName = "Thunderbird";
+  };
+  thunderbird-bin-91-unwrapped = callPackage ../applications/networking/mailreaders/thunderbird-bin {
+    inherit (gnome) adwaita-icon-theme;
+  };
+
+  thunderbolt = callPackage ../os-specific/linux/thunderbolt {};
 
   ticpp = callPackage ../development/libraries/ticpp { };
 
@@ -28675,7 +29063,9 @@ with pkgs;
     swt = swt_jdk8;
   };
 
-  twister = callPackage ../applications/networking/p2p/twister { };
+  twister = callPackage ../applications/networking/p2p/twister {
+    boost = boost16x;
+  };
 
   twmn = libsForQt5.callPackage ../applications/misc/twmn { };
 
@@ -28753,6 +29143,10 @@ with pkgs;
 
   vdpauinfo = callPackage ../tools/X11/vdpauinfo { };
 
+  vengi-tools = callPackage ../applications/graphics/vengi-tools {
+    inherit (darwin.apple_sdk.frameworks) Carbon OpenCL;
+  };
+
   verbiste = callPackage ../applications/misc/verbiste {
     inherit (gnome2) libgnomeui;
   };
@@ -28785,7 +29179,7 @@ with pkgs;
         darwin = true;
       };
     };
-  }).overrideAttrs (oldAttrs: rec {
+  }).overrideAttrs (_: rec {
     pname = "vim-darwin";
     meta = {
       platforms = lib.platforms.darwin;
@@ -28977,10 +29371,12 @@ with pkgs;
 
   vym = qt5.callPackage ../applications/misc/vym { };
 
-  wad = python3Packages.callPackage ../tools/security/wad { };
+  wad = callPackage ../tools/security/wad { };
 
   wafw00f = python3Packages.callPackage ../tools/security/wafw00f { };
 
+  whispers = callPackage ../tools/security/whispers { };
+
   waon = callPackage ../applications/audio/waon { };
 
   w3m = callPackage ../applications/networking/browsers/w3m { };
@@ -29066,7 +29462,7 @@ with pkgs;
   weston = callPackage ../applications/window-managers/weston { pipewire = pipewire_0_2; };
 
   whalebird = callPackage ../applications/misc/whalebird {
-    electron = electron_12;
+    electron = electron_14;
   };
 
   wio = callPackage ../applications/window-managers/wio { };
@@ -29173,7 +29569,7 @@ with pkgs;
   };
 
   xastir = callPackage ../applications/misc/xastir {
-    rastermagick = imagemagick;
+    rastermagick = imagemagick6;
     inherit (xorg) libXt;
   };
 
@@ -29240,8 +29636,6 @@ with pkgs;
 
   xdg-desktop-portal-gtk = callPackage ../development/libraries/xdg-desktop-portal-gtk { };
 
-  xdg-desktop-portal-pantheon = callPackage ../development/libraries/xdg-desktop-portal-pantheon { };
-
   xdg-desktop-portal-wlr = callPackage ../development/libraries/xdg-desktop-portal-wlr { };
 
   xdg-user-dirs = callPackage ../tools/X11/xdg-user-dirs { };
@@ -29338,7 +29732,7 @@ with pkgs;
 
   xmonad-with-packages = callPackage ../applications/window-managers/xmonad/wrapper.nix {
     inherit (haskellPackages) ghcWithPackages;
-    packages = self: [ haskellPackages.xmonad-contrib ];
+    packages = _: [ haskellPackages.xmonad-contrib ];
   };
 
   xmonad_log_applet = callPackage ../applications/window-managers/xmonad/log-applet {
@@ -29445,7 +29839,7 @@ with pkgs;
 
   yoshimi = callPackage ../applications/audio/yoshimi { };
 
-  your-editor = callPackage ../applications/editors/your-editor { };
+  your-editor = callPackage ../applications/editors/your-editor { stdenv = gccStdenv; };
 
   youtube-dl = with python3Packages; toPythonApplication youtube-dl;
 
@@ -29459,6 +29853,8 @@ with pkgs;
 
   ytalk = callPackage ../applications/networking/instant-messengers/ytalk { };
 
+  ytarchive = callPackage ../tools/misc/ytarchive { };
+
   ytcc = callPackage ../tools/networking/ytcc { };
 
   ytmdesktop = callPackage ../applications/audio/ytmdesktop { };
@@ -29542,7 +29938,9 @@ with pkgs;
 
   ### BLOCKCHAINS / CRYPTOCURRENCIES / WALLETS
 
-  aeon = callPackage ../applications/blockchains/aeon { };
+  aeon = callPackage ../applications/blockchains/aeon {
+    boost = boost172;
+  };
 
   alfis = callPackage ../applications/blockchains/alfis {
     inherit (darwin.apple_sdk.frameworks) Cocoa Security WebKit;
@@ -29631,10 +30029,14 @@ with pkgs;
   dcrd = callPackage ../applications/blockchains/dcrd { };
   dcrwallet = callPackage ../applications/blockchains/dcrwallet { };
 
-  dero = callPackage ../applications/blockchains/dero { boost = boost165; };
-
-  digibyte = libsForQt514.callPackage ../applications/blockchains/digibyte { withGui = true; };
-  digibyted = callPackage ../applications/blockchains/digibyte { withGui = false; };
+  digibyte = libsForQt514.callPackage ../applications/blockchains/digibyte {
+    withGui = true;
+    boost = boost170;
+  };
+  digibyted = callPackage ../applications/blockchains/digibyte {
+    withGui = false;
+    boost = boost170;
+  };
 
   dogecoin  = callPackage ../applications/blockchains/dogecoin {
     boost = boost165;
@@ -29654,10 +30056,12 @@ with pkgs;
   elements  = libsForQt5.callPackage ../applications/blockchains/elements {
     miniupnpc = miniupnpc_2;
     withGui = true;
+    boost = boost175;
   };
   elementsd = callPackage ../applications/blockchains/elements {
     miniupnpc = miniupnpc_2;
     withGui = false;
+    boost = boost175;
   };
 
   ergo = callPackage ../applications/blockchains/ergo { };
@@ -29694,22 +30098,23 @@ with pkgs;
 
   lndmanage = callPackage ../applications/blockchains/lndmanage { };
 
-  monero = callPackage ../applications/blockchains/monero {
+  monero-cli = callPackage ../applications/blockchains/monero-cli {
     inherit (darwin.apple_sdk.frameworks) CoreData IOKit PCSC;
-    boost = boost17x;
   };
 
-  oxen = callPackage ../applications/blockchains/oxen {
+  monero-gui = libsForQt5.callPackage ../applications/blockchains/monero-gui {
     boost = boost17x;
   };
 
-  monero-gui = libsForQt5.callPackage ../applications/blockchains/monero-gui {
+  oxen = callPackage ../applications/blockchains/oxen {
     boost = boost17x;
   };
 
   masari = callPackage ../applications/blockchains/masari { boost = boost165; };
 
-  nano-wallet = libsForQt5.callPackage ../applications/blockchains/nano-wallet { };
+  nano-wallet = libsForQt5.callPackage ../applications/blockchains/nano-wallet {
+    boost = boost172;
+  };
 
   namecoin  = callPackage ../applications/blockchains/namecoin { withGui = true; };
   namecoind = callPackage ../applications/blockchains/namecoin { withGui = false; };
@@ -29748,7 +30153,9 @@ with pkgs;
 
   wasabibackend = callPackage ../applications/blockchains/wasabibackend { Nuget = dotnetPackages.Nuget; };
 
-  wownero = callPackage ../applications/blockchains/wownero { };
+  wownero = callPackage ../applications/blockchains/wownero {
+    boost = boost175;
+  };
 
   zcash = callPackage ../applications/blockchains/zcash { stdenv = llvmPackages_11.stdenv; };
 
@@ -30054,7 +30461,7 @@ with pkgs;
 
   fishfight = callPackage ../games/fishfight {
     inherit (xorg) libX11 libXi;
-    inherit (darwin.apple_sdk.frameworks) AudioToolbox Cocoa CoreAudio CoreFoundation IOKit OpenGL;
+    inherit (darwin.apple_sdk.frameworks) AudioToolbox Cocoa CoreAudio OpenGL;
   };
 
   flightgear = libsForQt5.callPackage ../games/flightgear { };
@@ -30260,10 +30667,16 @@ with pkgs;
 
   methane = callPackage ../games/methane { };
 
-  mindustry = callPackage ../games/mindustry { };
-  mindustry-wayland = callPackage ../games/mindustry { glew = glew-egl; };
+  mindustry = callPackage ../games/mindustry {
+    jdk = adoptopenjdk-hotspot-bin-15;
+  };
+  mindustry-wayland = callPackage ../games/mindustry {
+    jdk = adoptopenjdk-hotspot-bin-15;
+    glew = glew-egl;
+  };
 
   mindustry-server = callPackage ../games/mindustry {
+    jdk = adoptopenjdk-hotspot-bin-15;
     enableClient = false;
     enableServer = true;
   };
@@ -30299,6 +30712,8 @@ with pkgs;
 
   naev = callPackage ../games/naev { };
 
+  nanosaur = callPackage ../games/nanosaur { };
+
   nethack = callPackage ../games/nethack { };
 
   nethack-qt = callPackage ../games/nethack {
@@ -30314,6 +30729,8 @@ with pkgs;
 
   nexuiz = callPackage ../games/nexuiz { };
 
+  nux = callPackage ../tools/misc/nux { };
+
   ninvaders = callPackage ../games/ninvaders { };
 
   njam = callPackage ../games/njam { };
@@ -30453,8 +30870,6 @@ with pkgs;
 
   redeclipse = callPackage ../games/redeclipse { };
 
-  residualvm = callPackage ../games/residualvm { };
-
   rftg = callPackage ../games/rftg { };
 
   rigsofrods = callPackage ../games/rigsofrods {
@@ -30884,10 +31299,14 @@ with pkgs;
   inherit (callPackage ../desktops/gnome/extensions { })
     gnomeExtensions
     gnome38Extensions
-    gnome40Extensions;
+    gnome40Extensions
+    gnome41Extensions
+  ;
 
   gnome-connections = callPackage ../desktops/gnome/apps/gnome-connections { };
 
+  gnome-text-editor = callPackage ../desktops/gnome/apps/gnome-text-editor { };
+
   gnome-tour = callPackage ../desktops/gnome/core/gnome-tour { };
 
   hhexen = callPackage ../games/hhexen { };
@@ -31069,6 +31488,8 @@ with pkgs;
 
   deeptools = callPackage ../applications/science/biology/deeptools { python = python3; };
 
+  deep-translator = with python3Packages; toPythonApplication deep-translator;
+
   delly = callPackage ../applications/science/biology/delly { };
 
   diamond = callPackage ../applications/science/biology/diamond { };
@@ -31119,7 +31540,9 @@ with pkgs;
 
   minia = callPackage ../applications/science/biology/minia { };
 
-  mirtk = callPackage ../development/libraries/science/biology/mirtk { };
+  mirtk = callPackage ../development/libraries/science/biology/mirtk {
+    boost = boost16x;
+  };
 
   muscle = callPackage ../applications/science/biology/muscle { };
 
@@ -31369,6 +31792,8 @@ with pkgs;
   sage = callPackage ../applications/science/math/sage { };
   sageWithDoc = sage.override { withDoc = true; };
 
+  subread = callPackage ../applications/science/biology/subread { };
+
   suitesparse_4_2 = callPackage ../development/libraries/science/math/suitesparse/4.2.nix { };
   suitesparse_4_4 = callPackage ../development/libraries/science/math/suitesparse/4.4.nix {};
   suitesparse_5_3 = callPackage ../development/libraries/science/math/suitesparse {};
@@ -31464,8 +31889,6 @@ with pkgs;
 
   plm = callPackage ../applications/science/programming/plm { };
 
-  scyther = callPackage ../applications/science/programming/scyther { };
-
   ### SCIENCE/LOGIC
 
   abc-verifier = callPackage ../applications/science/logic/abc {};
@@ -31485,7 +31908,7 @@ with pkgs;
   cadical = callPackage ../applications/science/logic/cadical {};
 
   inherit (callPackage ./coq-packages.nix {
-    inherit (ocaml-ng) ocamlPackages_4_05 ocamlPackages_4_09 ocamlPackages_4_10;
+    inherit (ocaml-ng) ocamlPackages_4_05 ocamlPackages_4_09 ocamlPackages_4_10 ocamlPackages_4_12;
   }) mkCoqPackages
     coqPackages_8_5  coq_8_5
     coqPackages_8_6  coq_8_6
@@ -31497,6 +31920,7 @@ with pkgs;
     coqPackages_8_12 coq_8_12
     coqPackages_8_13 coq_8_13
     coqPackages_8_14 coq_8_14
+    coqPackages_8_15 coq_8_15
     coqPackages      coq
   ;
 
@@ -31513,7 +31937,7 @@ with pkgs;
   };
 
   cvc3 = callPackage ../applications/science/logic/cvc3 {
-    gmp = lib.overrideDerivation gmp (a: { dontDisableStatic = true; });
+    gmp = lib.overrideDerivation gmp (_: { dontDisableStatic = true; });
     stdenv = gccStdenv;
   };
   cvc4 = callPackage ../applications/science/logic/cvc4 {
@@ -31557,7 +31981,7 @@ with pkgs;
   ifstat-legacy = callPackage ../tools/networking/ifstat-legacy { };
 
   isabelle = callPackage ../applications/science/logic/isabelle {
-    polyml = lib.overrideDerivation polyml (attrs: {
+    polyml = lib.overrideDerivation polyml (_: {
       configureFlags = [ "--enable-intinf-as-int" "--with-gmp" "--disable-shared" ];
     });
 
@@ -31791,20 +32215,19 @@ with pkgs;
   gap-full = lowPrio (gap.override { packageSet = "full"; });
 
   geogebra = callPackage ../applications/science/math/geogebra { };
-  geogebra6 = callPackage ../applications/science/math/geogebra/geogebra6.nix { };
+  geogebra6 = callPackage ../applications/science/math/geogebra/geogebra6.nix {
+    electron = electron_14;
+   };
 
   maxima = callPackage ../applications/science/math/maxima {
-    ecl = null;
+    lisp-compiler = sbcl;
   };
   maxima-ecl = maxima.override {
-    inherit ecl;
-    ecl-fasl = true;
-    sbcl = null;
+    lisp-compiler = ecl;
   };
 
   mxnet = callPackage ../applications/science/math/mxnet {
     inherit (linuxPackages) nvidia_x11;
-    stdenv = gcc9Stdenv;
   };
 
   wxmaxima = callPackage ../applications/science/math/wxmaxima { wxGTK = wxGTK30; };
@@ -31848,7 +32271,12 @@ with pkgs;
 
   yad = callPackage ../tools/misc/yad { };
 
-  yacas = callPackage ../applications/science/math/yacas { };
+  yacas = libsForQt5.callPackage ../applications/science/math/yacas { };
+
+  yacas-gui = yacas.override {
+    enableGui = true;
+    enableJupyter = false;
+  };
 
   speedcrunch = libsForQt5.callPackage ../applications/science/math/speedcrunch { };
 
@@ -31873,7 +32301,9 @@ with pkgs;
 
   gildas = callPackage ../applications/science/astronomy/gildas { };
 
-  gplates = libsForQt5.callPackage ../applications/science/misc/gplates { };
+  gplates = libsForQt5.callPackage ../applications/science/misc/gplates {
+    boost = boost175;
+  };
 
   gravit = callPackage ../applications/science/astronomy/gravit { };
 
@@ -32001,7 +32431,9 @@ with pkgs;
 
   android-file-transfer = libsForQt5.callPackage ../tools/filesystems/android-file-transfer { };
 
-  antimicroX = libsForQt5.callPackage ../tools/misc/antimicroX { };
+  antimicrox = libsForQt5.callPackage ../tools/misc/antimicrox { };
+
+  ares = callPackage ../misc/emulators/ares { };
 
   atari800 = callPackage ../misc/emulators/atari800 { };
 
@@ -32106,6 +32538,8 @@ with pkgs;
 
   cups-brother-hll2340dw = pkgsi686Linux.callPackage  ../misc/cups/drivers/hll2340dw { };
 
+  cups-brother-hll2350dw = callPackage  ../misc/cups/drivers/hll2350dw { };
+
   cups-drv-rastertosag-gdi = callPackage ../misc/cups/drivers/cups-drv-rastertosag-gdi { };
 
   # this driver ships with pre-compiled 32-bit binary libraries
@@ -32159,6 +32593,8 @@ with pkgs;
 
   electricsheep = callPackage ../misc/screensavers/electricsheep { };
 
+  aaphoto = callPackage ../tools/graphics/aaphoto {};
+
   flam3 = callPackage ../tools/graphics/flam3 { };
 
   glee = callPackage ../tools/graphics/glee { };
@@ -32205,6 +32641,8 @@ with pkgs;
   fahcontrol = callPackage ../applications/science/misc/foldingathome/control.nix {};
   fahviewer = callPackage ../applications/science/misc/foldingathome/viewer.nix {};
 
+  fbmark = callPackage ../tools/misc/fbmark { };
+
   foma = callPackage ../tools/misc/foma { };
 
   foo2zjs = callPackage ../misc/drivers/foo2zjs {};
@@ -32286,12 +32724,18 @@ with pkgs;
 
   hjson = with python3Packages; toPythonApplication hjson;
 
+  hjson-go = callPackage ../development/tools/hjson-go { };
+
   epkowa = callPackage ../misc/drivers/epkowa { };
 
   utsushi = callPackage ../misc/drivers/utsushi { };
 
+  utsushi-networkscan = callPackage ../misc/drivers/utsushi/networkscan.nix { };
+
   idsk = callPackage ../tools/filesystems/idsk { };
 
+  colima = callPackage ../applications/virtualization/colima {};
+
   lima = callPackage ../applications/virtualization/lima {};
 
   logtop = callPackage ../tools/misc/logtop { };
@@ -32339,11 +32783,11 @@ with pkgs;
   # Exceptions are versions that we need to keep to allow upgrades from older NixOS releases
   inherit (callPackage ../applications/networking/cluster/kops {})
     mkKops
-    kops_1_19
     kops_1_20
     kops_1_21
+    kops_1_22
     ;
-  kops = kops_1_21;
+  kops = kops_1_22;
 
   lguf-brightness = callPackage ../misc/lguf-brightness { };
 
@@ -32365,12 +32809,6 @@ with pkgs;
 
   mame = libsForQt514.callPackage ../misc/emulators/mame {
     inherit (darwin.apple_sdk.frameworks) CoreAudioKit ForceFeedback;
-    # TODO: remove it on mame 0.238
-    stdenv =
-      if stdenv.cc.isClang then
-        overrideCC stdenv clang_6
-      else
-        stdenv;
   };
 
   martyr = callPackage ../development/libraries/martyr { };
@@ -32399,6 +32837,8 @@ with pkgs;
 
   nar-serve = callPackage ../tools/nix/nar-serve { };
 
+  neo = callPackage ../applications/misc/neo { };
+
   inherit (callPackage ../tools/package-management/nix {
       storeDir = config.nix.storeDir or "/nix/store";
       stateDir = config.nix.stateDir or "/nix/var";
@@ -32408,6 +32848,7 @@ with pkgs;
     nixStable
     nix_2_3
     nix_2_4
+    nix_2_5
     nixUnstable;
 
   nixStatic = pkgsStatic.nix;
@@ -32559,7 +33000,7 @@ with pkgs;
 
   nix-eval-jobs = callPackage ../tools/package-management/nix-eval-jobs { };
 
-  nix-doc = callPackage ../tools/package-management/nix-doc { nix = nix_2_3; };
+  nix-doc = callPackage ../tools/package-management/nix-doc { };
 
   nix-bundle = callPackage ../tools/package-management/nix-bundle { };
 
@@ -32992,11 +33433,11 @@ with pkgs;
     terraform_0_13
     terraform_0_14
     terraform_0_15
-    terraform_1_0
+    terraform_1
     terraform_plugins_test
     ;
 
-  terraform = terraform_1_0;
+  terraform = terraform_1;
   # deprecated
   terraform-full = terraform.full;
 
@@ -33304,9 +33745,7 @@ with pkgs;
 
   xzoom = callPackage ../tools/X11/xzoom {};
 
-  yabai = callPackage ../os-specific/darwin/yabai {
-    inherit (darwin.apple_sdk.frameworks) Carbon Cocoa ScriptingBridge;
-  };
+  yabai = callPackage ../os-specific/darwin/yabai { };
 
   yabause = libsForQt5.callPackage ../misc/emulators/yabause {
     freeglut = null;
@@ -33495,7 +33934,9 @@ with pkgs;
 
   NSPlist = callPackage ../development/libraries/NSPlist {};
 
-  PlistCpp = callPackage ../development/libraries/PlistCpp {};
+  PlistCpp = callPackage ../development/libraries/PlistCpp {
+    boost = boost172;
+  };
 
   xib2nib = callPackage ../development/tools/xib2nib {};
 
@@ -33739,6 +34180,8 @@ with pkgs;
 
   xcfun = callPackage ../development/libraries/science/chemistry/xcfun { };
 
+  xsos = callPackage ../os-specific/linux/xsos { };
+
   zesarux = callPackage ../misc/emulators/zesarux { };
 
   zk = callPackage ../applications/office/zk {};
diff --git a/pkgs/top-level/beam-packages.nix b/pkgs/top-level/beam-packages.nix
index bdd8b6e325164..828545ff7fa06 100644
--- a/pkgs/top-level/beam-packages.nix
+++ b/pkgs/top-level/beam-packages.nix
@@ -89,9 +89,9 @@ with beam; {
 
     # Other Beam languages. These are built with `beam.interpreters.erlang`. To
     # access for example elixir built with different version of Erlang, use
-    # `beam.packages.erlangR23.elixir`.
+    # `beam.packages.erlangR24.elixir`.
     inherit (packages.erlang)
-      elixir elixir_1_12 elixir_1_11 elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7 elixir_ls;
+      elixir elixir_1_13 elixir_1_12 elixir_1_11 elixir_1_10 elixir_1_9 elixir_ls;
 
     inherit (packages.erlang) lfe lfe_1_3;
   };
diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix
index bf5b65f938856..704457453779f 100644
--- a/pkgs/top-level/coq-packages.nix
+++ b/pkgs/top-level/coq-packages.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, callPackage, newScope, recurseIntoAttrs, ocamlPackages_4_05, ocamlPackages_4_09
-, ocamlPackages_4_10, fetchpatch, makeWrapper, coq2html
+, ocamlPackages_4_10, ocamlPackages_4_12, fetchpatch, makeWrapper, coq2html
 }@args:
 let lib = import ../build-support/coq/extra-lib.nix {inherit (args) lib;}; in
 let
@@ -24,13 +24,13 @@ let
       Cheerios = callPackage ../development/coq-modules/Cheerios {};
       CoLoR = callPackage ../development/coq-modules/CoLoR {};
       compcert = callPackage ../development/coq-modules/compcert {
-        ocamlPackages = ocamlPackages_4_05;
         inherit fetchpatch makeWrapper coq2html lib stdenv;
       };
       coq-bits = callPackage ../development/coq-modules/coq-bits {};
       coq-elpi = callPackage ../development/coq-modules/coq-elpi {};
       coq-ext-lib = callPackage ../development/coq-modules/coq-ext-lib {};
       coq-haskell = callPackage ../development/coq-modules/coq-haskell { };
+      coq-record-update = callPackage ../development/coq-modules/coq-record-update { };
       coqeal = callPackage ../development/coq-modules/coqeal {};
       coqhammer = callPackage ../development/coq-modules/coqhammer {};
       coqprime = callPackage ../development/coq-modules/coqprime {};
@@ -73,6 +73,7 @@ let
       mathcomp-finmap = callPackage ../development/coq-modules/mathcomp-finmap {};
       mathcomp-bigenough = callPackage ../development/coq-modules/mathcomp-bigenough {};
       mathcomp-real-closed = callPackage ../development/coq-modules/mathcomp-real-closed {};
+      mathcomp-word = callPackage ../development/coq-modules/mathcomp-word {};
       mathcomp-zify = callPackage ../development/coq-modules/mathcomp-zify {};
       mathcomp-tarjan = callPackage ../development/coq-modules/mathcomp-tarjan {};
       metalib = callPackage ../development/coq-modules/metalib { };
@@ -95,7 +96,9 @@ let
       topology = callPackage ../development/coq-modules/topology {};
       Velisarios = callPackage ../development/coq-modules/Velisarios {};
       Verdi = callPackage ../development/coq-modules/Verdi {};
-      VST = callPackage ../development/coq-modules/VST {};
+      VST = callPackage ../development/coq-modules/VST {
+        compcert = self.compcert.override { version = "3.9"; };
+      };
       zorns-lemma = callPackage ../development/coq-modules/zorns-lemma {};
       filterPackages = doesFilter: if doesFilter then filterCoqPackages self else self;
     };
@@ -111,7 +114,12 @@ let
       ) (lib.attrNames set)
     );
   mkCoq = version: callPackage ../applications/science/logic/coq {
-    inherit version ocamlPackages_4_05 ocamlPackages_4_09 ocamlPackages_4_10;
+    inherit version
+      ocamlPackages_4_05
+      ocamlPackages_4_09
+      ocamlPackages_4_10
+      ocamlPackages_4_12
+    ;
   };
 in rec {
 
@@ -137,6 +145,7 @@ in rec {
   coq_8_12 = mkCoq "8.12";
   coq_8_13 = mkCoq "8.13";
   coq_8_14 = mkCoq "8.14";
+  coq_8_15 = mkCoq "8.15";
 
   coqPackages_8_5 = mkCoqPackages coq_8_5;
   coqPackages_8_6 = mkCoqPackages coq_8_6;
@@ -148,6 +157,7 @@ in rec {
   coqPackages_8_12 = mkCoqPackages coq_8_12;
   coqPackages_8_13 = mkCoqPackages coq_8_13;
   coqPackages_8_14 = mkCoqPackages coq_8_14;
+  coqPackages_8_15 = mkCoqPackages coq_8_15;
   coqPackages = recurseIntoAttrs coqPackages_8_13;
   coq = coqPackages.coq;
 
diff --git a/pkgs/top-level/dhall-packages.nix b/pkgs/top-level/dhall-packages.nix
index 1910cb3727419..646f2b7e9d399 100644
--- a/pkgs/top-level/dhall-packages.nix
+++ b/pkgs/top-level/dhall-packages.nix
@@ -20,6 +20,9 @@ let
       buildDhallUrl =
         callPackage ../development/interpreters/dhall/build-dhall-url.nix { };
 
+      generateDhallDirectoryPackage =
+        callPackage ../development/interpreters/dhall/generate-dhall-directory-package.nix { };
+
     in
       { inherit
           callPackage
@@ -27,6 +30,7 @@ let
           buildDhallGitHubPackage
           buildDhallDirectoryPackage
           buildDhallUrl
+          generateDhallDirectoryPackage
         ;
 
         lib = import ../development/dhall-modules/lib.nix { inherit lib; };
diff --git a/pkgs/top-level/dotnet-packages.nix b/pkgs/top-level/dotnet-packages.nix
index f0fcef7338373..10188cee9148b 100644
--- a/pkgs/top-level/dotnet-packages.nix
+++ b/pkgs/top-level/dotnet-packages.nix
@@ -15,14 +15,14 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
   # BINARY PACKAGES
 
   NUnit3 = fetchNuGet {
-    baseName = "NUnit";
+    pname = "NUnit";
     version = "3.0.1";
     sha256 = "1g3j3kvg9vrapb1vjgq65nvn1vg7bzm66w7yjnaip1iww1yn1b0p";
     outputFiles = [ "lib/*" ];
   };
 
   NUnit2 = fetchNuGet {
-    baseName = "NUnit";
+    pname = "NUnit";
     version = "2.6.4";
     sha256 = "1acwsm7p93b1hzfb83ia33145x0w6fvdsfjm9xflsisljxpdx35y";
     outputFiles = [ "lib/*" ];
@@ -31,91 +31,91 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
   NUnit = NUnit2;
 
   NUnitConsole = fetchNuGet {
-    baseName = "NUnit.Console";
+    pname = "NUnit.Console";
     version = "3.0.1";
     sha256 = "154bqwm2n95syv8nwd67qh8qsv0b0h5zap60sk64z3kd3a9ffi5p";
     outputFiles = [ "tools/*" ];
   };
 
   MaxMindDb = fetchNuGet {
-    baseName = "MaxMind.Db";
+    pname = "MaxMind.Db";
     version = "1.1.0.0";
     sha256 = "0lixl76f7k3ldiqzg94zh13gn82w5mm5dx72y97fcqvp8g6nj3ds";
     outputFiles = [ "lib/*" ];
   };
 
   MaxMindGeoIP2 = fetchNuGet {
-    baseName = "MaxMind.GeoIP2";
+    pname = "MaxMind.GeoIP2";
     version = "2.3.1";
     sha256 = "1s44dvjnmj1aimbrgkmpj6h5dn1w6acgqjch1axc76yz6hwknqgf";
     outputFiles = [ "lib/*" ];
   };
 
   SharpZipLib = fetchNuGet {
-    baseName = "SharpZipLib";
+    pname = "SharpZipLib";
     version = "0.86.0";
     sha256 = "01w2038gckfnq31pncrlgm7d0c939pwr1x4jj5450vcqpd4c41jr";
     outputFiles = [ "lib/*" ];
   };
 
   StyleCopMSBuild = fetchNuGet {
-    baseName = "StyleCop.MSBuild";
+    pname = "StyleCop.MSBuild";
     version = "4.7.49.0";
     sha256 = "0rpfyvcggm881ynvgr17kbx5hvj7ivlms0bmskmb2zyjlpddx036";
     outputFiles = [ "tools/*" ];
   };
 
   StyleCopPlusMSBuild = fetchNuGet {
-    baseName = "StyleCopPlus.MSBuild";
+    pname = "StyleCopPlus.MSBuild";
     version = "4.7.49.5";
     sha256 = "1hv4lfxw72aql8siyqc4n954vzdz8p6jx9f2wrgzz0jy1k98x2mr";
     outputFiles = [ "tools/*" ];
   };
 
   RestSharp = fetchNuGet {
-    baseName = "RestSharp";
+    pname = "RestSharp";
     version = "105.2.3";
     sha256 = "1br48124ppz80x92m84sfyil1gn23hxg2ml9i9hsd0lp86vlaa1m";
     outputFiles = [ "lib/*" ];
   };
 
   SharpFont = fetchNuGet {
-    baseName = "SharpFont";
+    pname = "SharpFont";
     version = "4.0.1";
     sha256 = "1yd3cm4ww0hw2k3aymf792hp6skyg8qn491m2a3fhkzvsl8z7vs8";
     outputFiles = [ "lib/*" "config/*" ];
   };
 
   SmartIrc4net = fetchNuGet {
-    baseName = "SmartIrc4net";
+    pname = "SmartIrc4net";
     version = "0.4.5.1";
     sha256 = "1d531sj39fvwmj2wgplqfify301y3cwp7kwr9ai5hgrq81jmjn2b";
     outputFiles = [ "lib/*" ];
   };
 
   FuzzyLogicLibrary = fetchNuGet {
-    baseName = "FuzzyLogicLibrary";
+    pname = "FuzzyLogicLibrary";
     version = "1.2.0";
     sha256 = "0x518i8d3rw9n51xwawa4sywvqd722adj7kpcgcm63r66s950r5l";
     outputFiles = [ "bin/*" ];
   };
 
   OpenNAT = fetchNuGet {
-    baseName = "Open.NAT";
+    pname = "Open.NAT";
     version = "2.1.0";
     sha256 = "1jyd30fwycdwx5ck96zhp2xf20yz0sp7g3pjbqhmay4kd322mfwk";
     outputFiles = [ "lib/*" ];
   };
 
   MonoNat = fetchNuGet {
-    baseName = "Mono.Nat";
+    pname = "Mono.Nat";
     version = "1.2.24";
     sha256 = "0vfkach11kkcd9rcqz3s38m70d5spyb21gl99iqnkljxj5555wjs";
     outputFiles = [ "lib/*" ];
   };
 
   NUnitRunners = fetchNuGet {
-    baseName = "NUnit.Runners";
+    pname = "NUnit.Runners";
     version = "2.6.4";
     sha256 = "11nmi7vikn9idz8qcad9z7f73arsh5rw18fc1sri9ywz77mpm1s4";
     outputFiles = [ "tools/*" ];
@@ -125,7 +125,7 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
   # SOURCE PACKAGES
 
   Boogie = buildDotnetPackage rec {
-    baseName = "Boogie";
+    pname = "Boogie";
     version = "2.4.1";
 
     src = fetchFromGitHub {
@@ -152,8 +152,8 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
     outputFiles = [ "Binaries/*" ];
 
     postInstall = ''
-        mkdir -pv "$out/lib/dotnet/${baseName}"
-        ln -sv "${pkgs.z3}/bin/z3" "$out/lib/dotnet/${baseName}/z3.exe"
+        mkdir -pv "$out/lib/dotnet/${pname}"
+        ln -sv "${pkgs.z3}/bin/z3" "$out/lib/dotnet/${pname}/z3.exe"
 
         # so that this derivation can be used as a vim plugin to install syntax highlighting
         vimdir=$out/share/vim-plugins/boogie
@@ -194,7 +194,7 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
     });
     Boogie = assert self'.Boogie.version == "2.4.1"; self'.Boogie;
   in buildDotnetPackage rec {
-    baseName = "Dafny";
+    pname = "Dafny";
     version = "2.3.0";
 
     src = fetchurl {
@@ -229,11 +229,11 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
     # Boogie as an input is not enough. Boogie libraries need to be at the same
     # place as Dafny ones. Same for "*.dll.mdb". No idea why or how to fix.
     postFixup = ''
-      for lib in ${Boogie}/lib/dotnet/${Boogie.baseName}/*.dll{,.mdb}; do
-        ln -s $lib $out/lib/dotnet/${baseName}/
+      for lib in ${Boogie}/lib/dotnet/${Boogie.pname}/*.dll{,.mdb}; do
+        ln -s $lib $out/lib/dotnet/${pname}/
       done
       # We generate our own executable scripts
-      rm -f $out/lib/dotnet/${baseName}/dafny{,-server}
+      rm -f $out/lib/dotnet/${pname}/dafny{,-server}
     '';
 
     meta = with lib; {
@@ -246,7 +246,7 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
   };
 
   MonoAddins = buildDotnetPackage rec {
-    baseName = "Mono.Addins";
+    pname = "Mono.Addins";
     version = "1.2";
 
     xBuildFiles = [
@@ -278,14 +278,14 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
   };
 
   NewtonsoftJson = fetchNuGet {
-    baseName = "Newtonsoft.Json";
+    pname = "Newtonsoft.Json";
     version = "11.0.2";
     sha256 = "07na27n4mlw77f3hg5jpayzxll7f4gyna6x7k9cybmxpbs6l77k7";
     outputFiles = [ "*" ];
   };
 
   Nuget = buildDotnetPackage rec {
-    baseName = "Nuget";
+    pname = "Nuget";
     version = "5.6.0.6489";
 
     src = fetchFromGitHub {
@@ -306,7 +306,7 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
   };
 
   Paket = fetchNuGet {
-    baseName = "Paket";
+    pname = "Paket";
     version = "5.179.1";
     sha256 = "11rzna03i145qj08hwrynya548fwk8xzxmg65swyaf19jd7gzg82";
     outputFiles = [ "*" ];
diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix
index ba1ed113ab60a..0ac3ae8b43392 100644
--- a/pkgs/top-level/emacs-packages.nix
+++ b/pkgs/top-level/emacs-packages.nix
@@ -45,10 +45,6 @@ let
     inherit lib pkgs;
   };
 
-  mkOrgPackages = { lib }: import ../applications/editors/emacs/elisp-packages/org-packages.nix {
-    inherit lib;
-  };
-
   mkManualPackages = { pkgs, lib }: import ../applications/editors/emacs/elisp-packages/manual-packages.nix {
     inherit lib pkgs;
   };
@@ -66,14 +62,12 @@ in makeScope pkgs'.newScope (self: makeOverridable ({
   , nongnuPackages ? mkNongnuPackages { inherit pkgs lib; } self
   , melpaStablePackages ? melpaGeneric { inherit pkgs lib; } "stable" self
   , melpaPackages ? melpaGeneric { inherit pkgs lib; } "unstable" self
-  , orgPackages ? mkOrgPackages { inherit lib; } self
   , manualPackages ? mkManualPackages { inherit pkgs lib; } self
 }: ({}
   // elpaPackages // { inherit elpaPackages; }
   // nongnuPackages // { inherit nongnuPackages; }
   // melpaStablePackages // { inherit melpaStablePackages; }
   // melpaPackages // { inherit melpaPackages; }
-  // orgPackages // { inherit orgPackages; }
   // manualPackages // { inherit manualPackages; }
   // {
 
diff --git a/pkgs/top-level/gnuradio-packages.nix b/pkgs/top-level/gnuradio-packages.nix
index eaffce4c6e2c6..d291c1e830cda 100644
--- a/pkgs/top-level/gnuradio-packages.nix
+++ b/pkgs/top-level/gnuradio-packages.nix
@@ -37,6 +37,8 @@ in {
 
   ais = callPackage ../development/gnuradio-modules/ais/default.nix { };
 
+  grnet = callPackage ../development/gnuradio-modules/grnet/default.nix { };
+
   gsm = callPackage ../development/gnuradio-modules/gsm/default.nix { };
 
   nacl = callPackage ../development/gnuradio-modules/nacl/default.nix { };
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index bf340c10cb3b4..089450ef97d5b 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -1,4 +1,4 @@
-{ buildPackages, pkgs, newScope, stdenv }:
+{ buildPackages, pkgsBuildTarget, pkgs, newScope, stdenv }:
 
 let
   # These are attributes in compiler and packages that don't support integer-simple.
@@ -50,7 +50,9 @@ in {
 
   compiler = {
 
-    ghc865Binary = callPackage ../development/compilers/ghc/8.6.5-binary.nix { };
+    ghc865Binary = callPackage ../development/compilers/ghc/8.6.5-binary.nix {
+      llvmPackages = pkgs.llvmPackages_6;
+    };
 
     ghc8102Binary = callPackage ../development/compilers/ghc/8.10.2-binary.nix {
       llvmPackages = pkgs.llvmPackages_9;
@@ -62,11 +64,11 @@ in {
     };
 
     ghc8107Binary = callPackage ../development/compilers/ghc/8.10.7-binary.nix {
-      llvmPackages = pkgs.llvmPackages_11;
+      llvmPackages = pkgs.llvmPackages_12;
     };
 
     ghc8107BinaryMinimal = callPackage ../development/compilers/ghc/8.10.7-binary.nix {
-      llvmPackages = pkgs.llvmPackages_11;
+      llvmPackages = pkgs.llvmPackages_12;
       minimal = true;
     };
 
@@ -79,7 +81,7 @@ in {
         else
           packages.ghc865Binary;
       inherit (buildPackages.python3Packages) sphinx;
-      buildLlvmPackages = buildPackages.llvmPackages_7;
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_7;
       llvmPackages = pkgs.llvmPackages_7;
     };
     ghc8107 = callPackage ../development/compilers/ghc/8.10.7.nix {
@@ -96,8 +98,8 @@ in {
       # https://github.com/xattr/xattr/issues/44 and
       # https://github.com/xattr/xattr/issues/55 are solved.
       inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
-      buildLlvmPackages = buildPackages.llvmPackages_9;
-      llvmPackages = pkgs.llvmPackages_9;
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
+      llvmPackages = pkgs.llvmPackages_12;
     };
     ghc901 = callPackage ../development/compilers/ghc/9.0.1.nix {
       bootPkgs =
@@ -109,8 +111,8 @@ in {
           packages.ghc8107Binary;
       inherit (buildPackages.python3Packages) sphinx;
       inherit (buildPackages.darwin) autoSignDarwinBinariesHook;
-      buildLlvmPackages = buildPackages.llvmPackages_10;
-      llvmPackages = pkgs.llvmPackages_10;
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_9;
+      llvmPackages = pkgs.llvmPackages_9;
     };
     ghc921 = callPackage ../development/compilers/ghc/9.2.1.nix {
       bootPkgs =
@@ -124,8 +126,8 @@ in {
       # https://github.com/xattr/xattr/issues/44 and
       # https://github.com/xattr/xattr/issues/55 are solved.
       inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
-      buildLlvmPackages = buildPackages.llvmPackages_10;
-      llvmPackages = pkgs.llvmPackages_10;
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
+      llvmPackages = pkgs.llvmPackages_12;
     };
     ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
       bootPkgs = packages.ghc8107Binary;
@@ -134,8 +136,8 @@ in {
       # https://github.com/xattr/xattr/issues/44 and
       # https://github.com/xattr/xattr/issues/55 are solved.
       inherit (buildPackages.darwin) xattr autoSignDarwinBinariesHook;
-      buildLlvmPackages = buildPackages.llvmPackages_10;
-      llvmPackages = pkgs.llvmPackages_10;
+      buildTargetLlvmPackages = pkgsBuildTarget.llvmPackages_12;
+      llvmPackages = pkgs.llvmPackages_12;
       libffi = pkgs.libffi;
     };
 
diff --git a/pkgs/top-level/impure.nix b/pkgs/top-level/impure.nix
index 6f7383c8e7a05..242596d28c6b0 100644
--- a/pkgs/top-level/impure.nix
+++ b/pkgs/top-level/impure.nix
@@ -1,14 +1,13 @@
 /* Impure default args for `pkgs/top-level/default.nix`. See that file
    for the meaning of each argument. */
 
-with builtins;
 
 let
 
   homeDir = builtins.getEnv "HOME";
 
   # Return ‘x’ if it evaluates, or ‘def’ if it throws an exception.
-  try = x: def: let res = tryEval x; in if res.success then res.value else def;
+  try = x: def: let res = builtins.tryEval x; in if res.success then res.value else def;
 
 in
 
@@ -25,20 +24,20 @@ in
 , # Fallback: The contents of the configuration file found at $NIXPKGS_CONFIG or
   # $HOME/.config/nixpkgs/config.nix.
   config ? let
-      configFile = getEnv "NIXPKGS_CONFIG";
+      configFile = builtins.getEnv "NIXPKGS_CONFIG";
       configFile2 = homeDir + "/.config/nixpkgs/config.nix";
       configFile3 = homeDir + "/.nixpkgs/config.nix"; # obsolete
     in
-      if configFile != "" && pathExists configFile then import configFile
-      else if homeDir != "" && pathExists configFile2 then import configFile2
-      else if homeDir != "" && pathExists configFile3 then import configFile3
+      if configFile != "" && builtins.pathExists configFile then import configFile
+      else if homeDir != "" && builtins.pathExists configFile2 then import configFile2
+      else if homeDir != "" && builtins.pathExists configFile3 then import configFile3
       else {}
 
 , # Overlays are used to extend Nixpkgs collection with additional
   # collections of packages.  These collection of packages are part of the
   # fix-point made by Nixpkgs.
   overlays ? let
-      isDir = path: pathExists (path + "/.");
+      isDir = path: builtins.pathExists (path + "/.");
       pathOverlays = try (toString <nixpkgs-overlays>) "";
       homeOverlaysFile = homeDir + "/.config/nixpkgs/overlays.nix";
       homeOverlaysDir = homeDir + "/.config/nixpkgs/overlays";
@@ -46,25 +45,25 @@ in
         # check if the path is a directory or a file
         if isDir path then
           # it's a directory, so the set of overlays from the directory, ordered lexicographically
-          let content = readDir path; in
+          let content = builtins.readDir path; in
           map (n: import (path + ("/" + n)))
-            (builtins.filter (n: builtins.match ".*\\.nix" n != null || pathExists (path + ("/" + n + "/default.nix")))
-              (attrNames content))
+            (builtins.filter (n: builtins.match ".*\\.nix" n != null || builtins.pathExists (path + ("/" + n + "/default.nix")))
+              (builtins.attrNames content))
         else
           # it's a file, so the result is the contents of the file itself
           import path;
     in
-      if pathOverlays != "" && pathExists pathOverlays then overlays pathOverlays
-      else if pathExists homeOverlaysFile && pathExists homeOverlaysDir then
+      if pathOverlays != "" && builtins.pathExists pathOverlays then overlays pathOverlays
+      else if builtins.pathExists homeOverlaysFile && builtins.pathExists homeOverlaysDir then
         throw ''
           Nixpkgs overlays can be specified with ${homeOverlaysFile} or ${homeOverlaysDir}, but not both.
           Please remove one of them and try again.
         ''
-      else if pathExists homeOverlaysFile then
+      else if builtins.pathExists homeOverlaysFile then
         if isDir homeOverlaysFile then
           throw (homeOverlaysFile + " should be a file")
         else overlays homeOverlaysFile
-      else if pathExists homeOverlaysDir then
+      else if builtins.pathExists homeOverlaysDir then
         if !(isDir homeOverlaysDir) then
           throw (homeOverlaysDir + " should be a directory")
         else overlays homeOverlaysDir
diff --git a/pkgs/top-level/java-packages.nix b/pkgs/top-level/java-packages.nix
index 7f1bb6e89a7c5..cf6474f0da5b9 100644
--- a/pkgs/top-level/java-packages.nix
+++ b/pkgs/top-level/java-packages.nix
@@ -5,8 +5,174 @@ with pkgs;
 let
   mavenbuild = callPackage ../development/java-modules/build-maven-package.nix { };
   fetchMaven = callPackage ../development/java-modules/m2install.nix { };
+
+  openjfx11 = callPackage ../development/compilers/openjdk/openjfx/11.nix { };
+  openjfx15 = callPackage ../development/compilers/openjdk/openjfx/15.nix { };
+
 in {
-  inherit mavenbuild fetchMaven;
+  inherit mavenbuild fetchMaven openjfx11 openjfx15;
+
+  compiler = let
+
+    gnomeArgs = {
+      inherit (gnome2) GConf gnome_vfs;
+    };
+
+    bootstrapArgs = gnomeArgs // {
+      openjfx = openjfx11; /* need this despite next line :-( */
+      enableJavaFX = false;
+      headless = true;
+    };
+
+    mkAdoptopenjdk = path-linux: path-darwin: let
+      package-linux  = import path-linux { inherit lib; };
+      package-darwin = import path-darwin { inherit lib; };
+      package = if stdenv.isLinux
+        then package-linux
+        else package-darwin;
+    in rec {
+      inherit package-linux package-darwin;
+
+      jdk-hotspot = callPackage package.jdk-hotspot {};
+      jre-hotspot = callPackage package.jre-hotspot {};
+      jdk-openj9  = callPackage package.jdk-openj9  {};
+      jre-openj9  = callPackage package.jre-openj9  {};
+    };
+
+    mkBootstrap = adoptopenjdk: path: args:
+      /* adoptopenjdk not available for i686, so fall back to our old builds for bootstrapping */
+      if   adoptopenjdk.jdk-hotspot.meta.available
+      then adoptopenjdk.jdk-hotspot
+      else callPackage path args;
+
+    mkOpenjdk = path-linux: path-darwin: args:
+      if stdenv.isLinux
+      then mkOpenjdkLinuxOnly path-linux args
+      else let
+        openjdk = callPackage path-darwin {};
+      in openjdk // { headless = openjdk; };
+
+    mkOpenjdkLinuxOnly = path-linux: args: let
+      openjdk = callPackage path-linux  (gnomeArgs // args);
+    in openjdk // {
+      headless = openjdk.override { headless = true; };
+    };
+
+    openjdkDarwinMissing = version:
+      abort "OpenJDK ${builtins.toString version} is currently not supported on Darwin by nixpkgs.";
+
+  in rec {
+
+    adoptopenjdk-8 = mkAdoptopenjdk
+      ../development/compilers/adoptopenjdk-bin/jdk8-linux.nix
+      ../development/compilers/adoptopenjdk-bin/jdk8-darwin.nix;
+
+    adoptopenjdk-11 = mkAdoptopenjdk
+      ../development/compilers/adoptopenjdk-bin/jdk11-linux.nix
+      ../development/compilers/adoptopenjdk-bin/jdk11-darwin.nix;
+
+    adoptopenjdk-13 = mkAdoptopenjdk
+      ../development/compilers/adoptopenjdk-bin/jdk13-linux.nix
+      ../development/compilers/adoptopenjdk-bin/jdk13-darwin.nix;
+
+    adoptopenjdk-14 = mkAdoptopenjdk
+      ../development/compilers/adoptopenjdk-bin/jdk14-linux.nix
+      ../development/compilers/adoptopenjdk-bin/jdk14-darwin.nix;
+
+    adoptopenjdk-15 = mkAdoptopenjdk
+      ../development/compilers/adoptopenjdk-bin/jdk15-linux.nix
+      ../development/compilers/adoptopenjdk-bin/jdk15-darwin.nix;
+
+    adoptopenjdk-16 = mkAdoptopenjdk
+      ../development/compilers/adoptopenjdk-bin/jdk16-linux.nix
+      ../development/compilers/adoptopenjdk-bin/jdk16-darwin.nix;
+
+    openjdk8-bootstrap = mkBootstrap adoptopenjdk-8
+      ../development/compilers/openjdk/bootstrap.nix
+      { version = "8"; };
+
+    openjdk11-bootstrap = mkBootstrap adoptopenjdk-11
+      ../development/compilers/openjdk/bootstrap.nix
+      { version = "10"; };
+
+    openjdk13-bootstrap = mkBootstrap adoptopenjdk-13
+      ../development/compilers/openjdk/12.nix
+      (bootstrapArgs // {
+        /* build segfaults with gcc9 or newer, so use gcc8 like Debian does */
+        stdenv = gcc8Stdenv;
+      });
+
+    openjdk14-bootstrap = mkBootstrap adoptopenjdk-14
+      ../development/compilers/openjdk/13.nix
+      (bootstrapArgs // {
+        inherit openjdk13-bootstrap;
+      });
+
+    openjdk15-bootstrap = mkBootstrap adoptopenjdk-15
+      ../development/compilers/openjdk/14.nix
+      (bootstrapArgs // {
+        inherit openjdk14-bootstrap;
+      });
+
+    openjdk16-bootstrap = mkBootstrap adoptopenjdk-16
+      ../development/compilers/openjdk/15.nix
+      (bootstrapArgs // {
+        inherit openjdk15-bootstrap;
+      });
+
+    openjdk17-bootstrap = mkBootstrap adoptopenjdk-16
+      ../development/compilers/openjdk/16.nix
+      (bootstrapArgs // {
+        inherit openjdk16-bootstrap;
+      });
+
+    openjdk8 = mkOpenjdk
+      ../development/compilers/openjdk/8.nix
+      ../development/compilers/openjdk/darwin/8.nix
+      { };
+
+    openjdk11 = mkOpenjdk
+      ../development/compilers/openjdk/11.nix
+      ../development/compilers/openjdk/darwin/11.nix
+      { openjfx = openjfx11; };
+
+    openjdk12 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/12.nix {
+        /* build segfaults with gcc9 or newer, so use gcc8 like Debian does */
+        stdenv = gcc8Stdenv;
+        openjfx = openjfx11;
+    };
+
+    openjdk13 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/13.nix {
+      inherit openjdk13-bootstrap;
+      openjfx = openjfx11;
+    };
+
+    openjdk14 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/14.nix {
+      inherit openjdk14-bootstrap;
+      openjfx = openjfx11;
+    };
+
+    openjdk15 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/15.nix {
+      inherit openjdk15-bootstrap;
+      openjfx = openjfx15;
+    };
+
+    openjdk16 = mkOpenjdk
+      ../development/compilers/openjdk/16.nix
+      ../development/compilers/openjdk/darwin/16.nix
+      {
+        inherit openjdk16-bootstrap;
+        openjfx = openjfx15;
+      };
+
+    openjdk17 = mkOpenjdk
+      ../development/compilers/openjdk/17.nix
+      ../development/compilers/openjdk/darwin/17.nix
+      {
+        inherit openjdk17-bootstrap;
+        openjfx = openjfx15;
+      };
+  };
 
   mavenPlugins = recurseIntoAttrs (callPackage ../development/java-modules/mavenPlugins.nix { });
 
diff --git a/pkgs/top-level/kodi-packages.nix b/pkgs/top-level/kodi-packages.nix
index 175e940eed290..ed5799eab4f70 100644
--- a/pkgs/top-level/kodi-packages.nix
+++ b/pkgs/top-level/kodi-packages.nix
@@ -36,7 +36,7 @@ let self = rec {
 
   # package update scripts
 
-  addonUpdateScript = callPackage ../applications/video/kodi-packages/addon-update-script { };
+  addonUpdateScript = callPackage ../applications/video/kodi/addons/addon-update-script { };
 
   # package builders
 
@@ -46,112 +46,112 @@ let self = rec {
 
   # regular packages
 
-  kodi-platform = callPackage ../applications/video/kodi-packages/kodi-platform { };
+  kodi-platform = callPackage ../applications/video/kodi/addons/kodi-platform { };
 
   # addon packages
 
-  a4ksubtitles = callPackage ../applications/video/kodi-packages/a4ksubtitles { };
+  a4ksubtitles = callPackage ../applications/video/kodi/addons/a4ksubtitles { };
 
   controllers = {
-    default = callPackage ../applications/video/kodi-packages/controllers { controller = "default"; };
+    default = callPackage ../applications/video/kodi/addons/controllers { controller = "default"; };
 
-    dreamcast = callPackage ../applications/video/kodi-packages/controllers { controller = "dreamcast"; };
+    dreamcast = callPackage ../applications/video/kodi/addons/controllers { controller = "dreamcast"; };
 
-    gba = callPackage ../applications/video/kodi-packages/controllers { controller = "gba"; };
+    gba = callPackage ../applications/video/kodi/addons/controllers { controller = "gba"; };
 
-    genesis = callPackage ../applications/video/kodi-packages/controllers { controller = "genesis"; };
+    genesis = callPackage ../applications/video/kodi/addons/controllers { controller = "genesis"; };
 
-    mouse = callPackage ../applications/video/kodi-packages/controllers { controller = "mouse"; };
+    mouse = callPackage ../applications/video/kodi/addons/controllers { controller = "mouse"; };
 
-    n64 = callPackage ../applications/video/kodi-packages/controllers { controller = "n64"; };
+    n64 = callPackage ../applications/video/kodi/addons/controllers { controller = "n64"; };
 
-    nes = callPackage ../applications/video/kodi-packages/controllers { controller = "nes"; };
+    nes = callPackage ../applications/video/kodi/addons/controllers { controller = "nes"; };
 
-    ps = callPackage ../applications/video/kodi-packages/controllers { controller = "ps"; };
+    ps = callPackage ../applications/video/kodi/addons/controllers { controller = "ps"; };
 
-    snes = callPackage ../applications/video/kodi-packages/controllers { controller = "snes"; };
+    snes = callPackage ../applications/video/kodi/addons/controllers { controller = "snes"; };
   };
 
-  iagl = callPackage ../applications/video/kodi-packages/iagl { };
+  iagl = callPackage ../applications/video/kodi/addons/iagl { };
 
-  libretro = callPackage ../applications/video/kodi-packages/libretro { };
+  libretro = callPackage ../applications/video/kodi/addons/libretro { };
 
-  libretro-genplus = callPackage ../applications/video/kodi-packages/libretro-genplus { inherit genesis-plus-gx; };
+  libretro-genplus = callPackage ../applications/video/kodi/addons/libretro-genplus { inherit genesis-plus-gx; };
 
-  libretro-mgba = callPackage ../applications/video/kodi-packages/libretro-mgba { inherit mgba; };
+  libretro-mgba = callPackage ../applications/video/kodi/addons/libretro-mgba { inherit mgba; };
 
-  libretro-snes9x = callPackage ../applications/video/kodi-packages/libretro-snes9x { inherit snes9x; };
+  libretro-snes9x = callPackage ../applications/video/kodi/addons/libretro-snes9x { inherit snes9x; };
 
-  jellyfin = callPackage ../applications/video/kodi-packages/jellyfin { };
+  jellyfin = callPackage ../applications/video/kodi/addons/jellyfin { };
 
-  joystick = callPackage ../applications/video/kodi-packages/joystick { };
+  joystick = callPackage ../applications/video/kodi/addons/joystick { };
 
-  keymap = callPackage ../applications/video/kodi-packages/keymap { };
+  keymap = callPackage ../applications/video/kodi/addons/keymap { };
 
-  netflix = callPackage ../applications/video/kodi-packages/netflix { };
+  netflix = callPackage ../applications/video/kodi/addons/netflix { };
 
-  svtplay = callPackage ../applications/video/kodi-packages/svtplay { };
+  svtplay = callPackage ../applications/video/kodi/addons/svtplay { };
 
-  steam-controller = callPackage ../applications/video/kodi-packages/steam-controller { };
+  steam-controller = callPackage ../applications/video/kodi/addons/steam-controller { };
 
-  steam-launcher = callPackage ../applications/video/kodi-packages/steam-launcher { };
+  steam-launcher = callPackage ../applications/video/kodi/addons/steam-launcher { };
 
-  steam-library = callPackage ../applications/video/kodi-packages/steam-library { };
+  steam-library = callPackage ../applications/video/kodi/addons/steam-library { };
 
-  pdfreader = callPackage ../applications/video/kodi-packages/pdfreader { };
+  pdfreader = callPackage ../applications/video/kodi/addons/pdfreader { };
 
-  pvr-hts = callPackage ../applications/video/kodi-packages/pvr-hts { };
+  pvr-hts = callPackage ../applications/video/kodi/addons/pvr-hts { };
 
-  pvr-hdhomerun = callPackage ../applications/video/kodi-packages/pvr-hdhomerun { };
+  pvr-hdhomerun = callPackage ../applications/video/kodi/addons/pvr-hdhomerun { };
 
-  pvr-iptvsimple = callPackage ../applications/video/kodi-packages/pvr-iptvsimple { };
+  pvr-iptvsimple = callPackage ../applications/video/kodi/addons/pvr-iptvsimple { };
 
-  osmc-skin = callPackage ../applications/video/kodi-packages/osmc-skin { };
+  osmc-skin = callPackage ../applications/video/kodi/addons/osmc-skin { };
 
-  vfs-sftp = callPackage ../applications/video/kodi-packages/vfs-sftp { };
+  vfs-sftp = callPackage ../applications/video/kodi/addons/vfs-sftp { };
 
-  vfs-libarchive = callPackage ../applications/video/kodi-packages/vfs-libarchive { };
+  vfs-libarchive = callPackage ../applications/video/kodi/addons/vfs-libarchive { };
 
-  youtube = callPackage ../applications/video/kodi-packages/youtube { };
+  youtube = callPackage ../applications/video/kodi/addons/youtube { };
 
   # addon packages (dependencies)
 
-  archive_tool = callPackage ../applications/video/kodi-packages/archive_tool { };
+  archive_tool = callPackage ../applications/video/kodi/addons/archive_tool { };
 
-  certifi = callPackage ../applications/video/kodi-packages/certifi { };
+  certifi = callPackage ../applications/video/kodi/addons/certifi { };
 
-  chardet = callPackage ../applications/video/kodi-packages/chardet { };
+  chardet = callPackage ../applications/video/kodi/addons/chardet { };
 
-  dateutil = callPackage ../applications/video/kodi-packages/dateutil { };
+  dateutil = callPackage ../applications/video/kodi/addons/dateutil { };
 
-  defusedxml = callPackage ../applications/video/kodi-packages/defusedxml { };
+  defusedxml = callPackage ../applications/video/kodi/addons/defusedxml { };
 
-  idna = callPackage ../applications/video/kodi-packages/idna { };
+  idna = callPackage ../applications/video/kodi/addons/idna { };
 
-  inputstream-adaptive = callPackage ../applications/video/kodi-packages/inputstream-adaptive { };
+  inputstream-adaptive = callPackage ../applications/video/kodi/addons/inputstream-adaptive { };
 
-  inputstream-ffmpegdirect = callPackage ../applications/video/kodi-packages/inputstream-ffmpegdirect { };
+  inputstream-ffmpegdirect = callPackage ../applications/video/kodi/addons/inputstream-ffmpegdirect { };
 
-  inputstream-rtmp = callPackage ../applications/video/kodi-packages/inputstream-rtmp { };
+  inputstream-rtmp = callPackage ../applications/video/kodi/addons/inputstream-rtmp { };
 
-  inputstreamhelper = callPackage ../applications/video/kodi-packages/inputstreamhelper { };
+  inputstreamhelper = callPackage ../applications/video/kodi/addons/inputstreamhelper { };
 
-  kodi-six = callPackage ../applications/video/kodi-packages/kodi-six { };
+  kodi-six = callPackage ../applications/video/kodi/addons/kodi-six { };
 
-  myconnpy = callPackage ../applications/video/kodi-packages/myconnpy { };
+  myconnpy = callPackage ../applications/video/kodi/addons/myconnpy { };
 
-  requests = callPackage ../applications/video/kodi-packages/requests { };
+  requests = callPackage ../applications/video/kodi/addons/requests { };
 
-  requests-cache = callPackage ../applications/video/kodi-packages/requests-cache { };
+  requests-cache = callPackage ../applications/video/kodi/addons/requests-cache { };
 
-  routing = callPackage ../applications/video/kodi-packages/routing { };
+  routing = callPackage ../applications/video/kodi/addons/routing { };
 
-  signals = callPackage ../applications/video/kodi-packages/signals { };
+  signals = callPackage ../applications/video/kodi/addons/signals { };
 
-  six = callPackage ../applications/video/kodi-packages/six { };
+  six = callPackage ../applications/video/kodi/addons/six { };
 
-  urllib3 = callPackage ../applications/video/kodi-packages/urllib3 { };
+  urllib3 = callPackage ../applications/video/kodi/addons/urllib3 { };
 
-  websocket = callPackage ../applications/video/kodi-packages/websocket { };
+  websocket = callPackage ../applications/video/kodi/addons/websocket { };
 
 }; in self
diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix
index 2aa9f8482f187..5adb2cc17364d 100644
--- a/pkgs/top-level/linux-kernels.nix
+++ b/pkgs/top-level/linux-kernels.nix
@@ -159,13 +159,6 @@ in {
       ];
     };
 
-    linux_5_14 = callPackage ../os-specific/linux/kernel/linux-5.14.nix {
-      kernelPatches = [
-        kernelPatches.bridge_stp_helper
-        kernelPatches.request_key_helper
-      ];
-    };
-
     linux_5_15 = callPackage ../os-specific/linux/kernel/linux-5.15.nix {
       kernelPatches = [
         kernelPatches.bridge_stp_helper
@@ -229,7 +222,6 @@ in {
     linux_4_19_hardened = hardenedKernelFor kernels.linux_4_19 { };
     linux_5_4_hardened = hardenedKernelFor kernels.linux_5_4 { };
     linux_5_10_hardened = hardenedKernelFor kernels.linux_5_10 { };
-    linux_5_14_hardened = hardenedKernelFor kernels.linux_5_14 { };
     linux_5_15_hardened = hardenedKernelFor kernels.linux_5_15 { };
 
   }));
@@ -250,6 +242,7 @@ in {
     inherit (kernel) kernelOlder kernelAtLeast;
     # Obsolete aliases (these packages do not depend on the kernel).
     inherit (pkgs) odp-dpdk pktgen; # added 2018-05
+    inherit (pkgs) bcc bpftrace; # added 2021-12
 
     acpi_call = callPackage ../os-specific/linux/acpi-call {};
 
@@ -263,12 +256,6 @@ in {
 
     batman_adv = callPackage ../os-specific/linux/batman-adv {};
 
-    bcc = callPackage ../os-specific/linux/bcc {
-      python = pkgs.python3;
-    };
-
-    bpftrace = callPackage ../os-specific/linux/bpftrace { };
-
     bbswitch = callPackage ../os-specific/linux/bbswitch {};
 
     chipsec = callPackage ../tools/security/chipsec {
@@ -305,10 +292,14 @@ in {
 
     it87 = callPackage ../os-specific/linux/it87 {};
 
+    asus-ec-sensors = callPackage ../os-specific/linux/asus-ec-sensors {};
+
     asus-wmi-sensors = callPackage ../os-specific/linux/asus-wmi-sensors {};
 
     ena = callPackage ../os-specific/linux/ena {};
 
+    liquidtux = callPackage ../os-specific/linux/liquidtux {};
+
     v4l2loopback = callPackage ../os-specific/linux/v4l2loopback { };
 
     lttng-modules = callPackage ../os-specific/linux/lttng-modules { };
@@ -472,7 +463,6 @@ in {
     linux_4_19 = recurseIntoAttrs (packagesFor kernels.linux_4_19);
     linux_5_4 = recurseIntoAttrs (packagesFor kernels.linux_5_4);
     linux_5_10 = recurseIntoAttrs (packagesFor kernels.linux_5_10);
-    linux_5_14 = recurseIntoAttrs (packagesFor kernels.linux_5_14);
     linux_5_15 = recurseIntoAttrs (packagesFor kernels.linux_5_15);
   };
 
@@ -502,7 +492,6 @@ in {
     linux_4_19_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_4_19 { });
     linux_5_4_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_5_4 { });
     linux_5_10_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_5_10 { });
-    linux_5_14_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_5_14 { });
     linux_5_15_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_5_15 { });
 
     linux_zen = recurseIntoAttrs (packagesFor kernels.linux_zen);
diff --git a/pkgs/top-level/nim-packages.nix b/pkgs/top-level/nim-packages.nix
index 6c8c5ff7cc700..fa78e6ed9aa93 100644
--- a/pkgs/top-level/nim-packages.nix
+++ b/pkgs/top-level/nim-packages.nix
@@ -48,8 +48,6 @@ lib.makeScope newScope (self:
 
     pixie = callPackage ../development/nim-packages/pixie { };
 
-    python = callPackage ../development/nim-packages/python { };
-
     redis = callPackage ../development/nim-packages/redis { };
 
     redpool = callPackage ../development/nim-packages/redpool { };
diff --git a/pkgs/top-level/nixpkgs-basic-release-checks.nix b/pkgs/top-level/nixpkgs-basic-release-checks.nix
index 350dd273fe2ec..758c8bf06c367 100644
--- a/pkgs/top-level/nixpkgs-basic-release-checks.nix
+++ b/pkgs/top-level/nixpkgs-basic-release-checks.nix
@@ -36,6 +36,7 @@ pkgs.runCommand "nixpkgs-release-checks" { src = nixpkgs; buildInputs = [nix]; }
         nix-env -f $src \
             --show-trace --argstr system "$platform" \
             --arg config '{ allowAliases = false; }' \
+            --option experimental-features 'no-url-literals' \
             -qa --drv-path --system-filter \* --system \
             "''${opts[@]}" 2>&1 >/dev/null | tee eval-warnings.log
 
@@ -48,6 +49,7 @@ pkgs.runCommand "nixpkgs-release-checks" { src = nixpkgs; buildInputs = [nix]; }
         nix-env -f $src \
             --show-trace --argstr system "$platform" \
             --arg config '{ allowAliases = false; }' \
+            --option experimental-features 'no-url-literals' \
             -qa --drv-path --system-filter \* --system --meta --xml \
             "''${opts[@]}" > /dev/null
     done
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index b2d2d2415e245..aed6268686514 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -135,8 +135,6 @@ let
       then callPackage ../development/ocaml-modules/biniou { }
       else callPackage ../development/ocaml-modules/biniou/1.0.nix { };
 
-    bin_prot_p4 = callPackage ../development/ocaml-modules/bin_prot { };
-
     bisect_ppx = callPackage ../development/ocaml-modules/bisect_ppx { };
 
     ocaml_cairo = callPackage ../development/ocaml-modules/ocaml-cairo { };
@@ -361,8 +359,6 @@ let
 
     erm_xmpp = callPackage ../development/ocaml-modules/erm_xmpp { };
 
-    estring = callPackage ../development/ocaml-modules/estring { };
-
     ethernet = callPackage ../development/ocaml-modules/ethernet { };
 
     ezjsonm = callPackage ../development/ocaml-modules/ezjsonm { };
@@ -371,8 +367,6 @@ let
 
     facile = callPackage ../development/ocaml-modules/facile { };
 
-    faillib = callPackage ../development/ocaml-modules/faillib { };
-
     faraday = callPackage ../development/ocaml-modules/faraday { };
 
     faraday-async = callPackage ../development/ocaml-modules/faraday/async.nix { };
@@ -391,8 +385,6 @@ let
 
     fiat-p256 = callPackage ../development/ocaml-modules/fiat-p256 { };
 
-    fieldslib_p4 = callPackage ../development/ocaml-modules/fieldslib { };
-
     fileutils = callPackage ../development/ocaml-modules/fileutils { };
 
     findlib = callPackage ../development/tools/ocaml/findlib { };
@@ -912,8 +904,6 @@ let
 
     ocaml_oasis = callPackage ../development/tools/ocaml/oasis { };
 
-    ocaml_optcomp = callPackage ../development/ocaml-modules/optcomp { };
-
     ocaml_pcre = callPackage ../development/ocaml-modules/pcre {};
 
     ocaml-print-intf = callPackage ../development/ocaml-modules/ocaml-print-intf { };
@@ -942,6 +932,8 @@ let
 
     ocf = callPackage ../development/ocaml-modules/ocf { };
 
+    ocf_ppx = callPackage ../development/ocaml-modules/ocf/ppx.nix { };
+
     ocp-build = callPackage ../development/tools/ocaml/ocp-build { };
 
     ocp-indent = callPackage ../development/tools/ocaml/ocp-indent { };
@@ -1136,10 +1128,6 @@ let
 
     ocurl = callPackage ../development/ocaml-modules/ocurl { };
 
-    pa_ounit = callPackage ../development/ocaml-modules/pa_ounit { };
-
-    pa_bench = callPackage ../development/ocaml-modules/pa_bench { };
-
     parany = callPackage ../development/ocaml-modules/parany { };
 
     pipebang = callPackage ../development/ocaml-modules/pipebang { };
@@ -1353,8 +1341,6 @@ let
 
     twt = callPackage ../development/ocaml-modules/twt { };
 
-    typerep_p4 = callPackage ../development/ocaml-modules/typerep { };
-
     uchar = callPackage ../development/ocaml-modules/uchar { };
 
     uecc = callPackage ../development/ocaml-modules/uecc { };
@@ -1382,8 +1368,6 @@ let
 
     uuuu = callPackage ../development/ocaml-modules/uuuu { };
 
-    variantslib_p4 = callPackage ../development/ocaml-modules/variantslib { };
-
     vchan = callPackage ../development/ocaml-modules/vchan { };
 
     vg = callPackage ../development/ocaml-modules/vg { };
@@ -1422,6 +1406,8 @@ let
 
     xtmpl = callPackage ../development/ocaml-modules/xtmpl { };
 
+    xtmpl_ppx = callPackage ../development/ocaml-modules/xtmpl/ppx.nix { };
+
     yaml = callPackage ../development/ocaml-modules/yaml { };
 
     yaml-sexp = callPackage ../development/ocaml-modules/yaml/yaml-sexp.nix { };
@@ -1485,152 +1471,6 @@ let
       inherit (pkgs) stdenv lib openssl;
     };
 
-    js_build_tools = callPackage ../development/ocaml-modules/janestreet/js-build-tools.nix {};
-
-    buildOcamlJane = callPackage ../development/ocaml-modules/janestreet/buildOcamlJane.nix {};
-
-    ppx_optcomp =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_optcomp
-      else callPackage ../development/ocaml-modules/janestreet/ppx-optcomp.nix {};
-
-    ppx_compare =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_compare
-      else callPackage ../development/ocaml-modules/janestreet/ppx-compare.nix {};
-
-    ppx_here =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_here
-      else callPackage ../development/ocaml-modules/janestreet/ppx-here.nix {};
-
-    ppx_sexp_conv =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_sexp_conv
-      else callPackage ../development/ocaml-modules/janestreet/ppx-sexp-conv.nix {};
-
-    ppx_assert =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_assert
-      else callPackage ../development/ocaml-modules/janestreet/ppx-assert.nix {};
-
-    ppx_inline_test =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_inline_test
-      else callPackage ../development/ocaml-modules/janestreet/ppx-inline-test.nix {};
-
-    ppx_bench =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_bench
-      else callPackage ../development/ocaml-modules/janestreet/ppx-bench.nix {};
-
-    ppx_bin_prot =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_bin_prot
-      else callPackage ../development/ocaml-modules/janestreet/ppx-bin-prot.nix {};
-
-    ppx_custom_printf =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_custom_printf
-      else callPackage ../development/ocaml-modules/janestreet/ppx-custom-printf.nix {};
-
-    ppx_enumerate =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_enumerate
-      else callPackage ../development/ocaml-modules/janestreet/ppx-enumerate.nix {};
-
-    ppx_fields_conv =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_fields_conv
-      else callPackage ../development/ocaml-modules/janestreet/ppx-fields-conv.nix {};
-
-    ppx_let =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_let
-      else callPackage ../development/ocaml-modules/janestreet/ppx-let.nix {};
-
-    ppx_pipebang =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_pipebang
-      else callPackage ../development/ocaml-modules/janestreet/ppx-pipebang.nix {};
-
-    ppx_sexp_message =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_sexp_message
-      else callPackage ../development/ocaml-modules/janestreet/ppx-sexp-message.nix {};
-
-    ppx_sexp_value =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_sexp_value
-      else callPackage ../development/ocaml-modules/janestreet/ppx-sexp-value.nix {};
-
-    ppx_typerep_conv =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_typerep_conv
-      else callPackage ../development/ocaml-modules/janestreet/ppx-typerep-conv.nix {};
-
-    ppx_variants_conv =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_variants_conv
-      else callPackage ../development/ocaml-modules/janestreet/ppx-variants-conv.nix {};
-
-    ppx_expect =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_expect
-      else callPackage ../development/ocaml-modules/janestreet/ppx-expect.nix {};
-
-    ppx_jane =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.ppx_jane
-      else callPackage ../development/ocaml-modules/janestreet/ppx-jane.nix {};
-
-
-    # Core sublibs
-    typerep =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.typerep
-      else if lib.versionOlder "4.02" ocaml.version
-      then callPackage ../development/ocaml-modules/janestreet/typerep.nix {}
-      else typerep_p4;
-
-    fieldslib =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.fieldslib
-      else if lib.versionOlder "4.02" ocaml.version
-      then callPackage ../development/ocaml-modules/janestreet/fieldslib.nix {}
-      else fieldslib_p4;
-
-    sexplib =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.sexplib
-      else if lib.versionOlder "4.02" ocaml.version
-      then callPackage ../development/ocaml-modules/janestreet/sexplib.nix {}
-      else null;
-
-    variantslib =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.variantslib
-      else if lib.versionOlder "4.02" ocaml.version
-      then callPackage ../development/ocaml-modules/janestreet/variantslib.nix {}
-      else variantslib_p4;
-
-    bin_prot =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.bin_prot
-      else if lib.versionOlder "4.02" ocaml.version
-      then callPackage ../development/ocaml-modules/janestreet/bin_prot.nix {}
-      else bin_prot_p4;
-
-    core_bench =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.core_bench else
-      callPackage ../development/ocaml-modules/janestreet/core_bench.nix {};
-
-    async_rpc_kernel =
-      if lib.versionOlder "4.03" ocaml.version
-      then janeStreet.async_rpc_kernel
-      else callPackage ../development/ocaml-modules/janestreet/async-rpc-kernel.nix {};
-
     # Apps / from all-packages
 
     ocamlnat = callPackage  ../development/ocaml-modules/ocamlnat { };
diff --git a/pkgs/top-level/octave-packages.nix b/pkgs/top-level/octave-packages.nix
index b4aeb905280d5..3895d7871f91e 100644
--- a/pkgs/top-level/octave-packages.nix
+++ b/pkgs/top-level/octave-packages.nix
@@ -54,7 +54,7 @@ makeScope newScope (self:
       writeRequiredOctavePackagesHook;
 
     arduino = callPackage ../development/octave-modules/arduino {
-      inherit (pkgs) arduino;
+      inherit (pkgs) arduino-core-unwrapped;
     };
 
     audio = callPackage ../development/octave-modules/audio { };
diff --git a/pkgs/top-level/packages-config.nix b/pkgs/top-level/packages-config.nix
index d7dfbf5860bb5..1602eaf9f45f2 100644
--- a/pkgs/top-level/packages-config.nix
+++ b/pkgs/top-level/packages-config.nix
@@ -31,6 +31,13 @@
       zeroadPackages
     ;
 
+    # Make sure haskell.compiler is included, so alternative GHC versions show up,
+    # but don't add haskell.packages.* since they contain the same packages (at
+    # least by name) as haskellPackages.
+    haskell = super.haskell // {
+      compiler = recurseIntoAttrs super.haskell.compiler;
+    };
+
     # This is an alias which we disallow by default; explicitly allow it
     emacs27Packages = emacs27.pkgs;
   };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 3b427030756b3..f24f8defb9545 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -277,6 +277,7 @@ let
     meta = {
       description = "Gumbo parser library";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.AlienLibGumbo.x86_64-darwin
     };
   };
 
@@ -4421,10 +4422,10 @@ let
 
   CryptPassphraseArgon2 = buildPerlPackage {
     pname = "Crypt-Passphrase-Argon2";
-    version = "0.002";
+    version = "0.003";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Passphrase-Argon2-0.002.tar.gz";
-      sha256 = "3906ff81697d13804ee21bd5ab78ffb1c4408b4822ce020e92ecf4737ba1f3a8";
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Passphrase-Argon2-0.003.tar.gz";
+      sha256 = "sha256-cCkLtb3GfBcBKN8+UWexfQS7eTkzqubAWnWGfao/OTg=";
     };
     propagatedBuildInputs = with perlPackages; [ CryptArgon2 CryptPassphrase ];
     meta = {
@@ -4433,6 +4434,21 @@ let
     };
   };
 
+  CryptPassphraseBcrypt = buildPerlPackage {
+    pname = "Crypt-Passphrase-Bcrypt";
+    version = "0.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Passphrase-Bcrypt-0.001.tar.gz";
+      sha256 = "sha256-M44nA4RH/eAjznyaC1dPR+4zeQRKDAgxrJRx8UMNxMU=";
+    };
+    propagatedBuildInputs = [ CryptEksblowfish CryptPassphrase ];
+    meta = {
+      homepage = "https://github.com/Leont/crypt-passphrase-bcrypt";
+      description = "A bcrypt encoder for Crypt::Passphrase";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   CryptPasswdMD5 = buildPerlModule {
     pname = "Crypt-PasswdMD5";
     version = "1.40";
@@ -5159,6 +5175,7 @@ let
       description = "MessagePack serializing/deserializing";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DataMessagePack.x86_64-darwin
     };
   };
 
@@ -5403,6 +5420,7 @@ let
       description = "A selection of utilities for data and data types";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       homepage = "https://github.com/gfx/Perl-Data-Util";
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DataUtil.x86_64-darwin
     };
   };
 
@@ -6078,11 +6096,11 @@ let
 
   DBDSQLite = buildPerlPackage {
     pname = "DBD-SQLite";
-    version = "1.66";
+    version = "1.70";
 
     src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/DBD-SQLite-1.66.tar.gz";
-      sha256 = "1zljln5nh61gj3k22a1fv2vhx5l83waizmarwkh77hk6kzzmvrw9";
+      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/DBD-SQLite-1.70.tar.gz";
+      sha256 = "0gpyv89p3yfwifbm005bz5ci8c63jikkfvafg8x7f3lyaggqvza0";
     };
 
     propagatedBuildInputs = [ DBI ];
@@ -6091,6 +6109,13 @@ let
     patches = [
       # Support building against our own sqlite.
       ../development/perl-modules/DBD-SQLite/external-sqlite.patch
+
+      # Pull upstream fix for test failures against sqlite-3.37.
+      (fetchpatch {
+        name = "sqlite-3.37-compat.patch";
+        url = "https://github.com/DBD-SQLite/DBD-SQLite/commit/ba4f472e7372dbf453444c7764d1c342e7af12b8.patch";
+        sha256 = "02lg1y6px7h89pfvgrf23anhbl3v050gn0kmaajvv5h6layhjzly";
+      })
     ];
 
     makeMakerFlags = "SQLITE_INC=${pkgs.sqlite.dev}/include SQLITE_LIB=${pkgs.sqlite.out}/lib";
@@ -6201,6 +6226,10 @@ let
     propagatedBuildInputs = [ DBI ];
 
     doCheck = false;
+
+    meta = {
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DBDsybase.x86_64-darwin
+    };
   };
 
   DBFile = buildPerlPackage {
@@ -6298,6 +6327,13 @@ let
       url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/DBIx-Class-0.082842.tar.gz";
       sha256 = "1rh7idjjbibc1zmiaaarask434lh0lx7f2xyfwmy37k9fa0xcpmh";
     };
+    patches = [
+      # https://github.com/Perl5/DBIx-Class/pull/141
+      (fetchpatch {
+        url = "https://github.com/Perl5/DBIx-Class/commit/fb896701d23fa4da622b5b1b2afbbba3da2dd8f3.patch";
+        sha256 = "sha256-MSbV9UfHu90NCdC5IFwuy/vpSDw4atfellYh7Ydvkm4=";
+      })
+    ];
     buildInputs = [ DBDSQLite TestDeep TestException TestWarn ];
     propagatedBuildInputs = [ ClassAccessorGrouped ClassC3Componentised ConfigAny ContextPreserve DBI DataDumperConcise DataPage DevelGlobalDestruction ModuleFind PathClass SQLAbstractClassic ScopeGuard SubName namespaceclean ];
     meta = {
@@ -6887,6 +6923,10 @@ let
     };
     buildInputs = [ CPANMetaCheck TestDeep TestFailWarnings TestFatal TestFileShareDir ];
     propagatedBuildInputs = [ AppCmd CPANUploader ConfigMVPReaderINI DateTime FileCopyRecursive FileFindRule FileShareDirInstall Filepushd LogDispatchouli MooseXLazyRequire MooseXSetOnce MooseXTypesPerl PathTiny PerlPrereqScanner SoftwareLicense TermEncoding TermUI YAMLTiny ];
+    nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/dzil
+    '';
     meta = {
       homepage = "http://dzil.org/";
       description = "Distribution builder; installer not included!";
@@ -8046,6 +8086,11 @@ let
     };
     nativeBuildInputs = [ buildPackages.pkg-config ];
     propagatedBuildInputs = [ pkgs.pkg-config ];
+    postPatch = ''
+      # no pkg-config binary when cross-compiling so the check fails
+      substituteInPlace Makefile.PL \
+        --replace "pkg-config" "$PKG_CONFIG"
+    '';
     doCheck = false; # expects test_glib-2.0.pc in PKG_CONFIG_PATH
     meta = {
       homepage = "http://gtk2-perl.sourceforge.net";
@@ -8507,6 +8552,7 @@ let
     meta = {
       description = "Determine MIME types of data or files using libmagic";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.FileLibMagic.x86_64-darwin
     };
   };
 
@@ -9034,10 +9080,10 @@ let
 
   Future = buildPerlModule {
     pname = "Future";
-    version = "0.46";
+    version = "0.47";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-0.46.tar.gz";
-      sha256 = "0zx4cabzz5zyzvyvc7mvl0cc7zkslp0jnxsv41yii76dal8blcbq";
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-0.47.tar.gz";
+      sha256 = "1pmhkhrmvaf8c3jbrfqqhmxjrzcsxdn2q7apj033gwxggland88h";
     };
     buildInputs = [ TestFatal TestIdentity TestRefcount ];
     meta = {
@@ -9342,6 +9388,7 @@ let
       homepage = "http://gtk2-perl.sourceforge.net";
       description = "Perl interface to the 2.x series of the GNOME libraries";
       license = lib.licenses.lgpl21Plus;
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Gnome2Canvas.x86_64-darwin
     };
   };
 
@@ -9640,6 +9687,7 @@ let
     meta = {
       description = "Create user interfaces directly from Glade XML files";
       license = lib.licenses.lgpl2Plus;
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Gtk2GladeXML.x86_64-darwin
     };
   };
 
@@ -9653,6 +9701,7 @@ let
     propagatedBuildInputs = [ pkgs.gtk2 Gtk2 ];
     meta = {
       license = lib.licenses.gpl2;
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Gtk2TrayIcon.x86_64-darwin
     };
   };
 
@@ -9703,6 +9752,7 @@ let
     meta = {
       description = "Use single instance applications";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Gtk2Unique.x86_64-darwin
     };
   };
 
@@ -9896,6 +9946,7 @@ let
     meta = {
       description = "Efficient shared mutable hash";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HashSharedMem.x86_64-darwin
     };
   };
 
@@ -9968,6 +10019,7 @@ let
       homepage = "https://github.com/tokuhirom/HTML-Escape";
       description = "Extremely fast HTML escaping";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HTMLEscape.x86_64-darwin
     };
   };
 
@@ -10501,7 +10553,9 @@ let
       url = "mirror://cpan/authors/id/M/MA/MARKSMITH/HTTP-HeaderParser-XS-0.20.tar.gz";
       sha256 = "1vs6sw431nnlnbdy6jii9vqlz30ndlfwdpdgm8a1m6fqngzhzq59";
     };
-    meta.broken = stdenv.isi686; # loadable library and perl binaries are mismatched (got handshake key 0x7d40080, needed 0x7dc0080)
+    meta.broken =
+      stdenv.isi686 # loadable library and perl binaries are mismatched (got handshake key 0x7d40080, needed 0x7dc0080)
+      || stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HTTPHeaderParserXS.x86_64-darwin
   };
 
   HTTPHeadersFast = buildPerlModule {
@@ -10734,6 +10788,7 @@ let
     meta = {
       description = "Perl interface to the C library \"libpng\"";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.ImagePNGLibpng.x86_64-darwin
     };
   };
 
@@ -11467,6 +11522,7 @@ let
       '';
 
       license = lib.licenses.artistic2;
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.InlineJava.x86_64-darwin
     };
   };
 
@@ -13476,6 +13532,7 @@ let
     meta = {
       description = "Fast XS implementation of MaxMind DB reader";
       license = with lib.licenses; [ artistic2 ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.MaxMindDBReaderXS.x86_64-darwin
     };
   };
 
@@ -13492,6 +13549,7 @@ let
     meta = {
       description = "Create MaxMind DB database files";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.MaxMindDBWriter.x86_64-darwin
     };
   };
 
@@ -14500,10 +14558,10 @@ let
 
   MojoliciousPluginSyslog = buildPerlPackage {
     pname = "Mojolicious-Plugin-Syslog";
-    version = "0.04";
+    version = "0.05";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-Syslog-0.04.tar.gz";
-      sha256 = "807d06b88304675a2bb9181bab123a0e16d3cf2f6a5753a168090ed88085a492";
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-Syslog-0.05.tar.gz";
+      sha256 = "sha256-G5Ur6EJ00gAeawLkqw93Et8O4wiPk2qFRlQofh0BPp8=";
     };
     propagatedBuildInputs = [ Mojolicious ];
     meta = {
@@ -16243,6 +16301,7 @@ let
     meta = {
       description = "Perl interface to freedb server(s)";
       license = with lib.licenses; [ artistic1 ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.NetFreeDB.x86_64-darwin
     };
   };
 
@@ -17506,6 +17565,7 @@ let
       description = "Communicate with a smart card using PC/SC";
       license = lib.licenses.gpl2Plus;
       maintainers = with maintainers; [ abbradar ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.pcscperl.x86_64-darwin
     };
   };
 
@@ -17626,10 +17686,10 @@ let
 
   PerlCritic = buildPerlModule {
     pname = "Perl-Critic";
-    version = "1.138";
+    version = "1.140";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PETDANCE/Perl-Critic-1.138.tar.gz";
-      sha256 = "2ad194f91ef24df4698369c2562d4164e9bf74f2d5565c681841abf79789ed82";
+      url = "mirror://cpan/authors/id/P/PE/PETDANCE/Perl-Critic-1.140.tar.gz";
+      sha256 = "1nzxpn71mrpp85yxrxlraj52q2skvf9ja887ls11d57h6smg1vmz";
     };
     buildInputs = [ TestDeep ];
     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
@@ -17840,10 +17900,10 @@ let
 
   PerlTidy = buildPerlPackage rec {
     pname = "Perl-Tidy";
-    version = "20201207";
+    version = "20211029";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHANCOCK/Perl-Tidy-20201207.tar.gz";
-      sha256 = "049x02awvpfr7m8dai04ya61jzs6cl45qplxzx7nf8x6jgj08i9f";
+      url = "mirror://cpan/authors/id/S/SH/SHANCOCK/Perl-Tidy-20211029.tar.gz";
+      sha256 = "1nhfi3gb8gif9p34m4ycqw0k8992yy42c21hk9b99l2pdbiv20zc";
     };
     meta = {
       description = "Indent and reformat perl scripts";
@@ -18081,6 +18141,22 @@ let
     };
   };
 
+  PLS = buildPerlPackage {
+    pname = "PLS";
+    version = "0.897";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MREISNER/PLS-0.897.tar.gz";
+      sha256 = "0278anidj7bgassj32g20cbki2kkqakkr3axyq4k90nj4snw7p6x";
+    };
+    propagatedBuildInputs = [ Future IOAsync PPI PPR PathTiny PerlCritic PerlTidy PodMarkdown URI ];
+    meta = {
+      homepage = "https://github.com/FractalBoy/perl-language-server";
+      description = "Perl Language Server";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.artturin ];
+    };
+  };
+
   Po4a = callPackage ../development/perl-modules/Po4a { };
 
   PodMinimumVersion = buildPerlPackage {
@@ -18210,6 +18286,20 @@ let
     };
   };
 
+  PPR = buildPerlPackage {
+    pname = "PPR";
+    version = "0.000028";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCONWAY/PPR-0.000028.tar.gz";
+      sha256 = "1adrd189rnfl1fgv14inchvrgjqjbpnviisqsz3y8ds3gisafzfk";
+    };
+    meta = {
+      description = "Pattern-based Perl Recognizer";
+      license = lib.licenses.artistic2;
+      maintainers = [ maintainers.artturin ];
+    };
+  };
+
   ProcBackground = buildPerlPackage {
     pname = "Proc-Background";
     version = "1.21";
@@ -18958,6 +19048,29 @@ let
     };
   };
 
+  RegexpCommontime = buildPerlPackage {
+    pname = "Regexp-Common-time";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MANWAR/Regexp-Common-time-0.16.tar.gz";
+      sha256 = "1jjay5gybbls3xn5ihc6q5ig3kf4i28nq4gvg2zp4p5m1ajhg08w";
+    };
+    propagatedBuildInputs = [ RegexpCommon ];
+    meta = {
+      homepage = "https://github.com/manwar/Regexp-Common-time";
+      description = "Date and time regexps.";
+      maintainers = [ maintainers.artturin ];
+      # This module is copyrighted only to ensure proper attribution of
+      # authorship and to ensure that it remains available to all.  This
+      # module is free, open-source software.  This module may be freely used
+      # for any purpose, commercial, public, or private, provided that proper
+      # credit is given, and that no more-restrictive license is applied to
+      # derivative (not dependent) works.
+      # https://metacpan.org/release/MANWAR/Regexp-Common-time-0.13/view/lib/Regexp/Common/time.pm#LICENSE-AND-COPYRIGHT
+      license = lib.licenses.free;
+    };
+  };
+
   RegexpGrammars = buildPerlModule {
     pname = "Regexp-Grammars";
     version = "1.057";
@@ -20641,6 +20754,9 @@ let
     nativeBuildInputs = [ pkgs.pkg-config ];
     buildInputs = [ pkgs.libvirt CPANChanges TestPod TestPodCoverage XMLXPath ];
     perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
+    meta = {
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.SysVirt.x86_64-darwin
+    };
   };
 
   TAPParserSourceHandlerpgTAP = buildPerlModule {
@@ -21130,6 +21246,7 @@ let
     meta = {
       description = "A new and improved test harness with better Test2 integration";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Test2Harness.x86_64-darwin
     };
   };
 
@@ -21757,6 +21874,7 @@ let
       description = "A LWP::UserAgent suitable for simulating and testing network calls";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       homepage = "https://github.com/karenetheridge/Test-LWP-UserAgent";
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TestLWPUserAgent.x86_64-darwin
     };
   };
 
@@ -21832,6 +21950,7 @@ let
     meta = {
       description = "assert that code does not cause growth in memory usage";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TestMemoryGrowth.x86_64-darwin
     };
   };
 
@@ -22953,6 +23072,9 @@ let
       url = "mirror://cpan/authors/id/M/MP/MPIOTR/Text-Iconv-1.7.tar.gz";
       sha256 = "5b80b7d5e709d34393bcba88971864a17b44a5bf0f9e4bcee383d029e7d2d5c3";
     };
+    meta = {
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TextIconv.x86_64-darwin
+    };
   };
 
   TestInDistDir = buildPerlPackage {
@@ -23035,6 +23157,22 @@ let
     buildInputs = [ ListMoreUtils TestDifferences TestException ];
   };
 
+  TextMarkdownHoedown = buildPerlModule {
+    pname = "Text-Markdown-Hoedown";
+    version = "1.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Text-Markdown-Hoedown-1.03.tar.gz";
+      sha256 = "sha256-U6cw/29IgrmavYVW8mqRH1gvZ1tZ8OFnJe0ey8CE7lA=";
+    };
+    buildInputs = [ Filepushd ];
+    perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
+    meta = {
+      homepage = "https://github.com/tokuhirom/Text-Markdown-Hoedown";
+      description = "hoedown for Perl5";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   TestMinimumVersion = buildPerlPackage {
     pname = "Test-MinimumVersion";
     version = "0.101082";
@@ -23335,6 +23473,9 @@ let
     };
     # https://rt.cpan.org/Public/Bug/Display.html?id=124815
     NIX_CFLAGS_COMPILE = "-DHAS_VPRINTF";
+    meta = {
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TextUnaccent.x86_64-darwin
+    };
   };
 
   TextUnidecode = buildPerlPackage {
@@ -24395,6 +24536,9 @@ let
       substituteInPlace t/cgi-bin/script.cgi \
         --replace '#!/usr/bin/perl' '#!${perl}/bin/perl'
     '';
+    meta = {
+      broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.WWWMechanizeCGI.x86_64-darwin
+    };
   };
 
   WWWRobotRules = buildPerlPackage {
@@ -24561,6 +24705,7 @@ let
       })
     ];
     AUTOMATED_TESTING = false;
+    nativeBuildInputs = [ pkgs.pkg-config ];
     buildInputs = [ pkgs.xorg.libxcb pkgs.xorg.xcbproto pkgs.xorg.xcbutil pkgs.xorg.xcbutilwm ExtUtilsDepends ExtUtilsPkgConfig TestDeep TestException XSObjectMagic ];
     propagatedBuildInputs = [ DataDump MouseXNativeTraits XMLDescent XMLSimple ];
     NIX_CFLAGS_LINK = "-lxcb -lxcb-util -lxcb-xinerama -lxcb-icccm";
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index afcee93c3b21e..25dda00172023 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -107,7 +107,11 @@ lib.makeScope pkgs.newScope (self: with self; {
           (dep: "mkdir -p ext; ln -s ${dep.dev}/include ext/${dep.extensionName}")
           internalDeps}
       '';
-      checkPhase = "runHook preCheck; NO_INTERACTON=yes make test; runHook postCheck";
+      checkPhase = ''
+        runHook preCheck
+        NO_INTERACTON=yes SKIP_PERF_SENSITIVE=yes make test
+        runHook postCheck
+      '';
       outputs = [ "out" "dev" ];
       installPhase = ''
         mkdir -p $out/lib/php/extensions
@@ -173,6 +177,8 @@ lib.makeScope pkgs.newScope (self: with self; {
 
     event = callPackage ../development/php-packages/event { };
 
+    gnupg = callPackage ../development/php-packages/gnupg { };
+
     igbinary = callPackage ../development/php-packages/igbinary { };
 
     imagick = callPackage ../development/php-packages/imagick { };
@@ -541,7 +547,11 @@ lib.makeScope pkgs.newScope (self: with self; {
         { name = "sysvsem"; }
         { name = "sysvshm"; }
         { name = "tidy"; configureFlags = [ "--with-tidy=${html-tidy}" ]; doCheck = false; }
-        { name = "tokenizer"; }
+        {
+          name = "tokenizer";
+          patches = lib.optional (lib.versionAtLeast php.version "8.1")
+            ../development/interpreters/php/fix-tokenizer-php81.patch;
+        }
         {
           name = "wddx";
           buildInputs = [ libxml2 ];
@@ -563,6 +573,7 @@ lib.makeScope pkgs.newScope (self: with self; {
           buildInputs = [ libxml2 ];
           internalDeps = [ php.extensions.dom ];
           NIX_CFLAGS_COMPILE = [ "-I../.." "-DHAVE_DOM" ];
+          doCheck = false;
           configureFlags = [ "--enable-xmlreader" ]
             # Required to build on darwin.
             ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ];
diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix
index 578803d0da735..3438d68a2b1f5 100644
--- a/pkgs/top-level/python-aliases.nix
+++ b/pkgs/top-level/python-aliases.nix
@@ -59,6 +59,7 @@ mapAliases ({
   hbmqtt = throw "hbmqtt was removed because it is no longer maintained"; # added 2021-11-07
   IMAPClient = imapclient; # added 2021-10-28
   jupyter_client = jupyter-client; # added 2021-10-15
+  Keras = keras; # added 2021-11-25
   lammps-cython = throw "lammps-cython no longer builds and is unmaintained"; # added 2021-07-04
   MechanicalSoup = mechanicalsoup; # added 2021-06-01
   pam = python-pam; # added 2020-09-07.
@@ -92,13 +93,19 @@ mapAliases ({
   scikitlearn = scikit-learn; # added 2021-07-21
   selectors34 = throw "selectors34 has been removed: functionality provided by Python itself; archived by upstream."; # added 2021-06-10
   setuptools_scm = setuptools-scm; # added 2021-06-03
+  ROPGadget = ropgadget; # added 2021-07-06
   smart_open = smart-open; # added 2021-03-14
   smmap2 = throw "smmap2 has been deprecated, use smmap instead."; # added 2020-03-14
   sphinxcontrib_plantuml = sphinxcontrib-plantuml; # added 2021-08-02
   sqlalchemy_migrate = sqlalchemy-migrate; # added 2021-10-28
+  tensorflow-bin_2 = tensorflow-bin; # added 2021-11-25
+  tensorflow-build_2 = tensorflow-build; # added 2021-11-25
+  tensorflow-estimator_2 = tensorflow-estimator; # added 2021-11-25
+  tensorflow-tensorboard_2 = tensorflow-tensorboard; # added 2021-11-25
   topydo = throw "topydo was moved to pkgs.topydo"; # added 2017-09-22
   tvnamer = throw "tvnamer was moved to pkgs.tvnamer"; # added 2021-07-05
   WazeRouteCalculator = wazeroutecalculator; # added 2021-09-29
   websocket_client = websocket-client; # added 2021-06-15
   zc-buildout221 = zc-buildout; # added 2021-07-21
+  zc_buildout_nix = throw "zc_buildout_nix was pinned to a version no longer compatible with other modules";
 })
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 9916b8250e9c8..1a392dee5d8bc 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -100,6 +100,12 @@ let
 
   disabledIf = x: drv: if x then disabled drv else drv;
 
+  # CUDA-related packages that are compatible with the currently packaged version
+  # of TensorFlow, used to keep these versions in sync in related packages like `jaxlib`.
+  tensorflow_compat_cudatoolkit = pkgs.cudatoolkit_11_2;
+  tensorflow_compat_cudnn = pkgs.cudnn_cudatoolkit_11_2;
+  tensorflow_compat_nccl = pkgs.nccl_cudatoolkit_11;
+
 in {
 
   inherit pkgs stdenv;
@@ -137,6 +143,11 @@ in {
   # it should not override the version of pytest that is used for say
   # Python 2. This is an ugly hack that is needed now because the hook
   # propagates the package.
+  pytestCheckHook_5 = if isPy3k then
+    self.pytestCheckHook.override { pytest = self.pytest_5; }
+  else
+    self.pytestCheckHook;
+
   pytestCheckHook_6_1 = if isPy3k then
     self.pytestCheckHook.override { pytest = self.pytest_6_1; }
   else
@@ -267,6 +278,8 @@ in {
 
   aiocontextvars = callPackage ../development/python-modules/aiocontextvars { };
 
+  aiocurrencylayer = callPackage ../development/python-modules/aiocurrencylayer { };
+
   aiodiscover = callPackage ../development/python-modules/aiodiscover { };
 
   aiodns = callPackage ../development/python-modules/aiodns { };
@@ -297,9 +310,7 @@ in {
 
   aiohomekit = callPackage ../development/python-modules/aiohomekit { };
 
-  aiohttp = callPackage ../development/python-modules/aiohttp {
-    pytestCheckHook = self.pytestCheckHook_6_1;
-  };
+  aiohttp = callPackage ../development/python-modules/aiohttp { };
 
   aiohttp-cors = callPackage ../development/python-modules/aiohttp-cors { };
 
@@ -317,6 +328,8 @@ in {
 
   aiobotocore = callPackage ../development/python-modules/aiobotocore { };
 
+  aiobroadlink = callPackage ../development/python-modules/aiobroadlink { };
+
   aiohue = callPackage ../development/python-modules/aiohue { };
 
   aiohwenergy = callPackage ../development/python-modules/aiohwenergy { };
@@ -379,6 +392,8 @@ in {
 
   aiorun = callPackage ../development/python-modules/aiorun { };
 
+  aiosenz = callPackage ../development/python-modules/aiosenz { };
+
   aioserial = callPackage ../development/python-modules/aioserial { };
 
   aioshelly = callPackage ../development/python-modules/aioshelly { };
@@ -437,6 +452,12 @@ in {
 
   allpairspy = callPackage ../development/python-modules/allpairspy { };
 
+  allure-python-commons = callPackage ../development/python-modules/allure-python-commons { };
+
+  allure-python-commons-test = callPackage ../development/python-modules/allure-python-commons-test { };
+
+  allure-pytest = callPackage ../development/python-modules/allure-pytest { };
+
   alot = callPackage ../development/python-modules/alot { };
 
   alpha-vantage = callPackage ../development/python-modules/alpha-vantage { };
@@ -525,6 +546,8 @@ in {
     inherit (pkgs) graphviz;
   };
 
+  aocd = callPackage ../development/python-modules/aocd { };
+
   apache-airflow = callPackage ../development/python-modules/apache-airflow { };
 
   apcaccess = callPackage ../development/python-modules/apcaccess { };
@@ -537,6 +560,8 @@ in {
 
   appdirs = callPackage ../development/python-modules/appdirs { };
 
+  appleseed = toPythonModule (pkgs.appleseed.override { python3 = self.python; });
+
   applicationinsights = callPackage ../development/python-modules/applicationinsights { };
 
   appnope = callPackage ../development/python-modules/appnope { };
@@ -595,6 +620,8 @@ in {
 
   asana = callPackage ../development/python-modules/asana { };
 
+  ascii-magic = callPackage ../development/python-modules/ascii-magic { };
+
   asciimatics = callPackage ../development/python-modules/asciimatics { };
 
   asciitree = callPackage ../development/python-modules/asciitree { };
@@ -659,6 +686,10 @@ in {
 
   asyncio-nats-client = callPackage ../development/python-modules/asyncio-nats-client { };
 
+  asyncio-rlock = callPackage ../development/python-modules/asyncio-rlock { };
+
+  asyncmy = callPackage ../development/python-modules/asyncmy { };
+
   asyncio-throttle = callPackage ../development/python-modules/asyncio-throttle { };
 
   asyncpg = callPackage ../development/python-modules/asyncpg { };
@@ -735,6 +766,8 @@ in {
 
   automat = callPackage ../development/python-modules/automat { };
 
+  automate-home = callPackage ../development/python-modules/automate-home { };
+
   autopage = callPackage ../development/python-modules/autopage { };
 
   autopep8 = callPackage ../development/python-modules/autopep8 { };
@@ -969,6 +1002,8 @@ in {
 
   azure-mgmt-servicefabricmanagedclusters = callPackage ../development/python-modules/azure-mgmt-servicefabricmanagedclusters { };
 
+  azure-mgmt-servicelinker = callPackage ../development/python-modules/azure-mgmt-servicelinker { };
+
   azure-mgmt-signalr = callPackage ../development/python-modules/azure-mgmt-signalr { };
 
   azure-mgmt-sql = callPackage ../development/python-modules/azure-mgmt-sql { };
@@ -1240,6 +1275,11 @@ in {
     enablePython = true;
   });
 
+  boost169 = toPythonModule (pkgs.boost169.override {
+    inherit (self) python numpy;
+    enablePython = true;
+  });
+
   boschshcpy = callPackage ../development/python-modules/boschshcpy { };
 
   boost-histogram = callPackage ../development/python-modules/boost-histogram {
@@ -1274,10 +1314,14 @@ in {
 
   breezy = callPackage ../development/python-modules/breezy { };
 
+  brelpy = callPackage ../development/python-modules/brelpy { };
+
   broadlink = callPackage ../development/python-modules/broadlink { };
 
   brother = callPackage ../development/python-modules/brother { };
 
+  brother-ql = callPackage ../development/python-modules/brother-ql { };
+
   brotli = callPackage ../development/python-modules/brotli { };
 
   brotlicffi = callPackage ../development/python-modules/brotlicffi {
@@ -1389,6 +1433,8 @@ in {
 
   carrot = callPackage ../development/python-modules/carrot { };
 
+  cart = callPackage ../development/python-modules/cart { };
+
   cartopy = callPackage ../development/python-modules/cartopy { };
 
   casa-formats-io = callPackage ../development/python-modules/casa-formats-io { };
@@ -1517,6 +1563,8 @@ in {
 
   ci-py = callPackage ../development/python-modules/ci-py { };
 
+  circuitbreaker = callPackage ../development/python-modules/circuitbreaker { };
+
   cirq = callPackage ../development/python-modules/cirq { };
 
   cirq-aqt = callPackage ../development/python-modules/cirq-aqt { };
@@ -1587,6 +1635,8 @@ in {
 
   click-threading = callPackage ../development/python-modules/click-threading { };
 
+  clickgen = callPackage ../development/python-modules/clickgen { };
+
   clickhouse-cityhash = callPackage ../development/python-modules/clickhouse-cityhash { };
 
   clickhouse-cli = callPackage ../development/python-modules/clickhouse-cli { };
@@ -1693,6 +1743,8 @@ in {
 
   colour = callPackage ../development/python-modules/colour { };
 
+  cometblue-lite = callPackage ../development/python-modules/cometblue-lite { };
+
   commandparse = callPackage ../development/python-modules/commandparse { };
 
   commentjson = callPackage ../development/python-modules/commentjson { };
@@ -1765,6 +1817,10 @@ in {
 
   cozy = callPackage ../development/python-modules/cozy { };
 
+  cppe = callPackage ../development/python-modules/cppe {
+    cppe = pkgs.cppe;
+  };
+
   cppheaderparser = callPackage ../development/python-modules/cppheaderparser { };
 
   cppy = callPackage ../development/python-modules/cppy { };
@@ -1988,10 +2044,14 @@ in {
 
   deepdiff = callPackage ../development/python-modules/deepdiff { };
 
+  deepdish = callPackage ../development/python-modules/deepdish { };
+
   deepmerge = callPackage ../development/python-modules/deepmerge { };
 
   deeptoolsintervals = callPackage ../development/python-modules/deeptoolsintervals { };
 
+  deep-translator = callPackage ../development/python-modules/deep-translator { };
+
   deezer-py = callPackage ../development/python-modules/deezer-py { };
 
   deezer-python = callPackage ../development/python-modules/deezer-python { };
@@ -2064,6 +2124,8 @@ in {
 
   dill = callPackage ../development/python-modules/dill { };
 
+  dingz = callPackage ../development/python-modules/dingz { };
+
   diofant = callPackage ../development/python-modules/diofant { };
 
   dipy = callPackage ../development/python-modules/dipy { };
@@ -2261,6 +2323,8 @@ in {
 
   dm-sonnet = callPackage ../development/python-modules/dm-sonnet { };
 
+  dm-tree = callPackage ../development/python-modules/dm-tree { };
+
   dnachisel = callPackage ../development/python-modules/dnachisel { };
 
   dnslib = callPackage ../development/python-modules/dnslib { };
@@ -2404,6 +2468,8 @@ in {
 
   ecpy = callPackage ../development/python-modules/ecpy { };
 
+  ecs-logging =  callPackage ../development/python-modules/ecs-logging { };
+
   ed25519 = callPackage ../development/python-modules/ed25519 { };
 
   editables = callPackage ../development/python-modules/editables { };
@@ -2428,6 +2494,8 @@ in {
 
   elkm1-lib = callPackage ../development/python-modules/elkm1-lib { };
 
+  elastic-apm = callPackage ../development/python-modules/elastic-apm { };
+
   elasticsearch = callPackage ../development/python-modules/elasticsearch { };
 
   elasticsearch-dsl = callPackage ../development/python-modules/elasticsearch-dsl { };
@@ -2444,6 +2512,8 @@ in {
 
   elmax = callPackage ../development/python-modules/elmax { };
 
+  elmax-api = callPackage ../development/python-modules/elmax-api { };
+
   emailthreads = callPackage ../development/python-modules/emailthreads { };
 
   email_validator = callPackage ../development/python-modules/email-validator { };
@@ -2456,6 +2526,8 @@ in {
 
   emoji = callPackage ../development/python-modules/emoji { };
 
+  empy = callPackage ../development/python-modules/empy { };
+
   emulated-roku = callPackage ../development/python-modules/emulated-roku { };
 
   enaml = callPackage ../development/python-modules/enaml { };
@@ -2512,6 +2584,8 @@ in {
 
   eradicate = callPackage ../development/python-modules/eradicate { };
 
+  esprima = callPackage ../development/python-modules/esprima { };
+
   escapism = callPackage ../development/python-modules/escapism { };
 
   etcd = callPackage ../development/python-modules/etcd { };
@@ -2636,6 +2710,8 @@ in {
 
   fastcache = callPackage ../development/python-modules/fastcache { };
 
+  fastcore = callPackage ../development/python-modules/fastcore { };
+
   fastdiff = callPackage ../development/python-modules/fastdiff { };
 
   fastdtw = callPackage ../development/python-modules/fastdtw { };
@@ -2660,6 +2736,8 @@ in {
     inherit python;
   });
 
+  fastnumbers = callPackage ../development/python-modules/fastnumbers { };
+
   fastpair = callPackage ../development/python-modules/fastpair { };
 
   fastparquet = callPackage ../development/python-modules/fastparquet { };
@@ -2697,6 +2775,8 @@ in {
 
   fido2 = callPackage ../development/python-modules/fido2 { };
 
+  fields = callPackage ../development/python-modules/fields { };
+
   filebrowser_safe = callPackage ../development/python-modules/filebrowser_safe { };
 
   filebytes = callPackage ../development/python-modules/filebytes { };
@@ -2713,6 +2793,8 @@ in {
 
   fingerprints = callPackage ../development/python-modules/fingerprints { };
 
+  finitude = callPackage ../development/python-modules/finitude { };
+
   fints = callPackage ../development/python-modules/fints { };
 
   fiona = callPackage ../development/python-modules/fiona {
@@ -2825,6 +2907,8 @@ in {
 
   flask-seasurf = callPackage ../development/python-modules/flask-seasurf { };
 
+  flask-session = callPackage ../development/python-modules/flask-session { };
+
   flask-silk = callPackage ../development/python-modules/flask-silk { };
 
   flask-socketio = callPackage ../development/python-modules/flask-socketio { };
@@ -2906,6 +2990,8 @@ in {
 
   forecast-solar = callPackage ../development/python-modules/forecast-solar { };
 
+  formbox = callPackage ../development/python-modules/formbox { };
+
   fortiosapi = callPackage ../development/python-modules/fortiosapi { };
 
   FormEncode = callPackage ../development/python-modules/FormEncode { };
@@ -2975,6 +3061,8 @@ in {
 
   future-fstrings = callPackage ../development/python-modules/future-fstrings { };
 
+  future-typing = callPackage ../development/python-modules/future-typing { };
+
   fuzzyfinder = callPackage ../development/python-modules/fuzzyfinder { };
 
   fuzzywuzzy = callPackage ../development/python-modules/fuzzywuzzy { };
@@ -3022,6 +3110,10 @@ in {
 
   geeknote = callPackage ../development/python-modules/geeknote { };
 
+  gehomesdk = callPackage ../development/python-modules/gehomesdk { };
+
+  gekitchen = callPackage ../development/python-modules/gekitchen { };
+
   gemfileparser = callPackage ../development/python-modules/gemfileparser { };
 
   genanki = callPackage ../development/python-modules/genanki { };
@@ -3092,10 +3184,14 @@ in {
 
   gflags = callPackage ../development/python-modules/gflags { };
 
+  ghapi = callPackage ../development/python-modules/ghapi { };
+
   ghdiff = callPackage ../development/python-modules/ghdiff { };
 
   ghp-import = callPackage ../development/python-modules/ghp-import { };
 
+  ghrepo-stats = callPackage ../development/python-modules/ghrepo-stats { };
+
   gibberish-detector = callPackage ../development/python-modules/gibberish-detector { };
 
   gidgethub = callPackage ../development/python-modules/gidgethub { };
@@ -3134,6 +3230,10 @@ in {
 
   glcontext = callPackage ../development/python-modules/glcontext { };
 
+  glean-parser = callPackage ../development/python-modules/glean-parser { };
+
+  glean-sdk = callPackage ../development/python-modules/glean-sdk { };
+
   glfw = callPackage ../development/python-modules/glfw { };
 
   glob2 = callPackage ../development/python-modules/glob2 { };
@@ -3270,6 +3370,8 @@ in {
 
   google-i18n-address = callPackage ../development/python-modules/google-i18n-address { };
 
+  google-nest-sdm = callPackage ../development/python-modules/google-nest-sdm { };
+
   googlemaps = callPackage ../development/python-modules/googlemaps { };
 
   google-pasta = callPackage ../development/python-modules/google-pasta { };
@@ -3282,6 +3384,8 @@ in {
 
   gorilla = callPackage ../development/python-modules/gorilla { };
 
+  goveelights = callPackage ../development/python-modules/goveelights { };
+
   gpapi = callPackage ../development/python-modules/gpapi { };
 
   gplaycli = callPackage ../development/python-modules/gplaycli { };
@@ -3373,6 +3477,8 @@ in {
 
   grpcio-gcp = callPackage ../development/python-modules/grpcio-gcp { };
 
+  grpcio-status = callPackage ../development/python-modules/grpcio-status { };
+
   grpcio-tools = callPackage ../development/python-modules/grpcio-tools { };
 
   gruut = callPackage ../development/python-modules/gruut { };
@@ -3464,6 +3570,8 @@ in {
 
   ha-philipsjs = callPackage ../development/python-modules/ha-philipsjs{ };
 
+  hahomematic = callPackage ../development/python-modules/hahomematic { };
+
   halo = callPackage ../development/python-modules/halo { };
 
   halohome = callPackage ../development/python-modules/halohome { };
@@ -3498,6 +3606,8 @@ in {
 
   heapdict = callPackage ../development/python-modules/heapdict { };
 
+  heatzypy = callPackage ../development/python-modules/heatzypy { };
+
   helpdev = callPackage ../development/python-modules/helpdev { };
 
   helper = callPackage ../development/python-modules/helper { };
@@ -3927,6 +4037,8 @@ in {
 
   j2cli = callPackage ../development/python-modules/j2cli { };
 
+  jaconv = callPackage ../development/python-modules/jaconv { };
+
   jaeger-client = callPackage ../development/python-modules/jaeger-client { };
 
   janus = callPackage ../development/python-modules/janus { };
@@ -3935,6 +4047,8 @@ in {
 
   jaraco_collections = callPackage ../development/python-modules/jaraco_collections { };
 
+  jaraco-context = callPackage ../development/python-modules/jaraco-context { };
+
   jaraco_functools = callPackage ../development/python-modules/jaraco_functools { };
 
   jaraco_itertools = callPackage ../development/python-modules/jaraco_itertools { };
@@ -3951,7 +4065,17 @@ in {
 
   jax = callPackage ../development/python-modules/jax { };
 
-  jaxlib = callPackage ../development/python-modules/jaxlib { };
+  jaxlib-bin = callPackage ../development/python-modules/jaxlib/bin.nix { };
+
+  jaxlib-build = callPackage ../development/python-modules/jaxlib {
+    # Some platforms don't have `cudaSupport` defined, hence the need for 'or false'.
+    cudaSupport = pkgs.config.cudaSupport or false;
+    cudatoolkit = tensorflow_compat_cudatoolkit;
+    cudnn = tensorflow_compat_cudnn;
+    nccl = tensorflow_compat_nccl;
+  };
+
+  jaxlib = self.jaxlib-build;
 
   JayDeBeApi = callPackage ../development/python-modules/JayDeBeApi { };
 
@@ -4001,6 +4125,8 @@ in {
     inherit (self) systemd pytest;
   };
 
+  jproperties = callPackage ../development/python-modules/jproperties { };
+
   jpylyzer = callPackage ../development/python-modules/jpylyzer { };
 
   JPype1 = callPackage ../development/python-modules/JPype1 { };
@@ -4011,6 +4137,8 @@ in {
 
   jsbeautifier = callPackage ../development/python-modules/jsbeautifier { };
 
+  jschema-to-python = callPackage ../development/python-modules/jschema-to-python { };
+
   jsmin = callPackage ../development/python-modules/jsmin { };
 
   json5 = callPackage ../development/python-modules/json5 { };
@@ -4061,8 +4189,6 @@ in {
 
   jsonstreams = callPackage ../development/python-modules/jsonstreams { };
 
-  jsonwatch = callPackage ../development/python-modules/jsonwatch { };
-
   jug = callPackage ../development/python-modules/jug { };
 
   junitparser = callPackage ../development/python-modules/junitparser { };
@@ -4173,12 +4299,14 @@ in {
 
   keras-applications = callPackage ../development/python-modules/keras-applications { };
 
-  Keras = callPackage ../development/python-modules/keras { };
+  keras = callPackage ../development/python-modules/keras { };
 
   keras-preprocessing = callPackage ../development/python-modules/keras-preprocessing { };
 
   kerberos = callPackage ../development/python-modules/kerberos { };
 
+  keyboard = callPackage ../development/python-modules/keyboard { };
+
   keyring = callPackage ../development/python-modules/keyring { };
 
   keyrings-cryptfile = callPackage ../development/python-modules/keyrings-cryptfile { };
@@ -4242,6 +4370,8 @@ in {
 
   langdetect = callPackage ../development/python-modules/langdetect { };
 
+  language-data = callPackage ../development/python-modules/language-data { };
+
   lark-parser = callPackage ../development/python-modules/lark-parser { };
 
   latexcodec = callPackage ../development/python-modules/latexcodec { };
@@ -4458,6 +4588,8 @@ in {
 
   lightparam = callPackage ../development/python-modules/lightparam { };
 
+  lightwave2 = callPackage ../development/python-modules/lightwave2 { };
+
   lima = callPackage ../development/python-modules/lima { };
 
   limiter= callPackage ../development/python-modules/limiter { };
@@ -4551,6 +4683,8 @@ in {
 
   loo-py = callPackage ../development/python-modules/loo-py { };
 
+  losant-rest = callPackage ../development/python-modules/losant-rest { };
+
   lsassy = callPackage ../development/python-modules/lsassy { };
 
   luddite = callPackage ../development/python-modules/luddite { };
@@ -4559,6 +4693,10 @@ in {
 
   luftdaten = callPackage ../development/python-modules/luftdaten { };
 
+  luhn = callPackage ../development/python-modules/luhn { };
+
+  luxor = callPackage ../development/python-modules/luxor { };
+
   luxtronik = callPackage ../development/python-modules/luxtronik { };
 
   lupa = callPackage ../development/python-modules/lupa { };
@@ -4643,6 +4781,8 @@ in {
 
   mapbox = callPackage ../development/python-modules/mapbox { };
 
+  mariadb = callPackage ../development/python-modules/mariadb { };
+
   marisa-trie = callPackage ../development/python-modules/marisa-trie { };
 
   markdown2 = callPackage ../development/python-modules/markdown2 { };
@@ -4685,6 +4825,8 @@ in {
 
   mathlibtools = callPackage ../development/python-modules/mathlibtools { };
 
+  matlink-gpapi = callPackage ../development/python-modules/matlink-gpapi { };
+
   matplotlib = callPackage ../development/python-modules/matplotlib {
     stdenv = if stdenv.isDarwin then pkgs.clangStdenv else pkgs.stdenv;
     inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
@@ -4729,6 +4871,8 @@ in {
 
   mdit-py-plugins = callPackage ../development/python-modules/mdit-py-plugins { };
 
+  mdurl = callPackage ../development/python-modules/mdurl { };
+
   MDP = callPackage ../development/python-modules/mdp { };
 
   measurement = callPackage ../development/python-modules/measurement { };
@@ -4761,6 +4905,8 @@ in {
 
   merkletools = callPackage ../development/python-modules/merkletools { };
 
+  meross-iot = callPackage ../development/python-modules/meross-iot { };
+
   mesa = callPackage ../development/python-modules/mesa { };
 
   meshio = callPackage ../development/python-modules/meshio { };
@@ -4834,8 +4980,12 @@ in {
 
   mixpanel = callPackage ../development/python-modules/mixpanel { };
 
+  mizani = callPackage ../development/python-modules/mizani { };
+
   mkl-service = callPackage ../development/python-modules/mkl-service { };
 
+  ml-collections = callPackage ../development/python-modules/ml-collections { };
+
   mlflow = callPackage ../development/python-modules/mlflow { };
 
   mlrose = callPackage ../development/python-modules/mlrose { };
@@ -4894,6 +5044,8 @@ in {
 
   monty = callPackage ../development/python-modules/monty { };
 
+  moonraker-api = callPackage ../development/python-modules/moonraker-api { };
+
   more-itertools = callPackage ../development/python-modules/more-itertools { };
 
   moretools = callPackage ../development/python-modules/moretools { };
@@ -4910,6 +5062,8 @@ in {
 
   motor = callPackage ../development/python-modules/motor { };
 
+  mouseinfo = callPackage ../development/python-modules/mouseinfo { };
+
   moviepy = callPackage ../development/python-modules/moviepy { };
 
   mox3 = callPackage ../development/python-modules/mox3 { };
@@ -4936,6 +5090,8 @@ in {
 
   mrkd = callPackage ../development/python-modules/mrkd { };
 
+  ms-active-directory = callPackage ../development/python-modules/ms-active-directory { };
+
   ms-cv = callPackage ../development/python-modules/ms-cv { };
 
   msal = callPackage ../development/python-modules/msal { };
@@ -4948,6 +5104,8 @@ in {
 
   msldap = callPackage ../development/python-modules/msldap { };
 
+  msoffcrypto-tool = callPackage ../development/python-modules/msoffcrypto-tool { };
+
   mss = callPackage ../development/python-modules/mss { };
 
   msrestazure = callPackage ../development/python-modules/msrestazure { };
@@ -5008,6 +5166,8 @@ in {
 
   mygpoclient = callPackage ../development/python-modules/mygpoclient { };
 
+  myhome = callPackage ../development/python-modules/myhome { };
+
   myjwt = callPackage ../development/python-modules/myjwt { };
 
   mypy = callPackage ../development/python-modules/mypy { };
@@ -5092,6 +5252,8 @@ in {
 
   neo = callPackage ../development/python-modules/neo { };
 
+  neo4j-driver = callPackage ../development/python-modules/neo4j-driver { };
+
   nessclient = callPackage ../development/python-modules/nessclient { };
 
   nest-asyncio = callPackage ../development/python-modules/nest-asyncio { };
@@ -5156,6 +5318,8 @@ in {
 
   nitpick = callPackage ../applications/version-management/nitpick { };
 
+  nitransforms = callPackage ../development/python-modules/nitransforms { };
+
   nix-kernel = callPackage ../development/python-modules/nix-kernel {
     inherit (pkgs) nix;
   };
@@ -5168,6 +5332,8 @@ in {
 
   nltk = callPackage ../development/python-modules/nltk { };
 
+  nmapthon2 = callPackage ../development/python-modules/nmapthon2 { };
+
   nmigen-boards = callPackage ../development/python-modules/nmigen-boards { };
 
   nmigen = callPackage ../development/python-modules/nmigen { };
@@ -5220,10 +5386,12 @@ in {
 
   notedown = callPackage ../development/python-modules/notedown { };
 
-  notify2 = callPackage ../development/python-modules/notify2 { };
+  notifications-python-client = callPackage ../development/python-modules/notifications-python-client { };
 
   notify-py = callPackage ../development/python-modules/notify-py { };
 
+  notify2 = callPackage ../development/python-modules/notify2 { };
+
   notmuch = callPackage ../development/python-modules/notmuch {
     inherit (pkgs) notmuch;
   };
@@ -5321,8 +5489,12 @@ in {
 
   olefile = callPackage ../development/python-modules/olefile { };
 
+  oletools = callPackage ../development/python-modules/oletools { };
+
   omegaconf = callPackage ../development/python-modules/omegaconf { };
 
+  omnikinverter = callPackage ../development/python-modules/omnikinverter { };
+
   omnilogic = callPackage ../development/python-modules/omnilogic { };
 
   ondilo = callPackage ../development/python-modules/ondilo { };
@@ -5339,6 +5511,8 @@ in {
 
   open-garage = callPackage ../development/python-modules/open-garage { };
 
+  open-meteo = callPackage ../development/python-modules/open-meteo { };
+
   openant = callPackage ../development/python-modules/openant { };
 
   openapi-schema-validator = callPackage ../development/python-modules/openapi-schema-validator { };
@@ -5385,10 +5559,10 @@ in {
 
   opentracing = callPackage ../development/python-modules/opentracing { };
 
-  openvino = disabledIf isPy27 (toPythonModule (pkgs.openvino.override {
+  openvino = toPythonModule (pkgs.openvino.override {
     inherit (self) python;
     enablePython = true;
-  }));
+  });
 
   openwebifpy = callPackage ../development/python-modules/openwebifpy { };
 
@@ -5472,6 +5646,8 @@ in {
 
   packaging = callPackage ../development/python-modules/packaging { };
 
+  packbits = callPackage ../development/python-modules/packbits { };
+
   packet-python = callPackage ../development/python-modules/packet-python { };
 
   pafy = callPackage ../development/python-modules/pafy { };
@@ -5604,6 +5780,8 @@ in {
 
   pc-ble-driver-py = toPythonModule (callPackage ../development/python-modules/pc-ble-driver-py { });
 
+  pcodedmp = callPackage ../development/python-modules/pcodedmp { };
+
   pcpp = callPackage ../development/python-modules/pcpp { };
 
   pdf2image = callPackage ../development/python-modules/pdf2image { };
@@ -5638,6 +5816,8 @@ in {
 
   pep257 = callPackage ../development/python-modules/pep257 { };
 
+  pep440 = callPackage ../development/python-modules/pep440 { };
+
   pep517 = callPackage ../development/python-modules/pep517 { };
 
   pep8 = callPackage ../development/python-modules/pep8 { };
@@ -5658,6 +5838,8 @@ in {
 
   persisting-theory = callPackage ../development/python-modules/persisting-theory { };
 
+  pescea = callPackage ../development/python-modules/pescea { };
+
   pex = callPackage ../development/python-modules/pex { };
 
   pexif = callPackage ../development/python-modules/pexif { };
@@ -5690,8 +5872,12 @@ in {
 
   netmap = callPackage ../development/python-modules/netmap { };
 
+  openai = callPackage ../development/python-modules/openai { };
+
   openapi-core = callPackage ../development/python-modules/openapi-core { };
 
+  pandas-stubs = callPackage ../development/python-modules/pandas-stubs { };
+
   parameterizedtestcase = callPackage ../development/python-modules/parameterizedtestcase { };
 
   pdunehd = callPackage ../development/python-modules/pdunehd { };
@@ -5767,6 +5953,8 @@ in {
 
   ppdeep = callPackage ../development/python-modules/ppdeep { };
 
+  proxy_tools = callPackage ../development/python-modules/proxy_tools { };
+
   pyaehw4a1 = callPackage ../development/python-modules/pyaehw4a1 { };
 
   pyatag = callPackage ../development/python-modules/pyatag { };
@@ -5821,6 +6009,10 @@ in {
 
   pyskyqhub = callPackage ../development/python-modules/pyskyqhub { };
 
+  pyskyqremote = callPackage ../development/python-modules/pyskyqremote { };
+
+  pysolcast = callPackage ../development/python-modules/pysolcast { };
+
   pysyncthru = callPackage ../development/python-modules/pysyncthru { };
 
   python-codon-tables = callPackage ../development/python-modules/python-codon-tables { };
@@ -5833,6 +6025,8 @@ in {
 
   python-glanceclient = callPackage ../development/python-modules/python-glanceclient { };
 
+  python-google-nest = callPackage ../development/python-modules/python-google-nest { };
+
   python-heatclient = callPackage ../development/python-modules/python-heatclient { };
 
   python-ipmi = callPackage ../development/python-modules/python-ipmi { };
@@ -5929,6 +6123,8 @@ in {
 
   poezio = callPackage ../applications/networking/instant-messengers/poezio { };
 
+  polarizationsolver = callPackage ../development/python-modules/polarizationsolver { };
+
   polib = callPackage ../development/python-modules/polib { };
 
   policy-sentry = callPackage ../development/python-modules/policy-sentry { };
@@ -6008,8 +6204,6 @@ in {
 
   prefixed = callPackage ../development/python-modules/prefixed { };
 
-  pre-commit = callPackage ../development/python-modules/pre-commit { };
-
   pre-commit-hooks = callPackage ../development/python-modules/pre-commit-hooks { };
 
   preggy = callPackage ../development/python-modules/preggy { };
@@ -6030,8 +6224,6 @@ in {
 
   privacyidea-ldap-proxy = callPackage ../development/python-modules/privacyidea-ldap-proxy { };
 
-  pyjwt1 = callPackage ../development/python-modules/pyjwt/1.nix { };
-
   proboscis = callPackage ../development/python-modules/proboscis { };
 
   process-tests = callPackage ../development/python-modules/process-tests { };
@@ -6081,6 +6273,8 @@ in {
 
   proxmoxer = callPackage ../development/python-modules/proxmoxer { };
 
+  proxy-py = callPackage ../development/python-modules/proxy-py { };
+
   psautohint = callPackage ../development/python-modules/psautohint { };
 
   psd-tools = callPackage ../development/python-modules/psd-tools { };
@@ -6137,6 +6331,8 @@ in {
 
   pvlib = callPackage ../development/python-modules/pvlib { };
 
+  pvo = callPackage ../development/python-modules/pvo { };
+
   Pweave = callPackage ../development/python-modules/pweave { };
 
   pwntools = callPackage ../development/python-modules/pwntools {
@@ -6217,6 +6413,8 @@ in {
 
   pyaudio = callPackage ../development/python-modules/pyaudio { };
 
+  pyautogui = callPackage ../development/python-modules/pyautogui { };
+
   pyavm = callPackage ../development/python-modules/pyavm { };
 
   pyaxmlparser = callPackage ../development/python-modules/pyaxmlparser { };
@@ -6252,7 +6450,7 @@ in {
   pybullet = callPackage ../development/python-modules/pybullet { };
 
   pycairo = callPackage ../development/python-modules/pycairo {
-    inherit (pkgs) meson;
+    inherit (pkgs.buildPackages) meson;
   };
 
   pycallgraph = callPackage ../development/python-modules/pycallgraph { };
@@ -6402,6 +6600,8 @@ in {
 
   pydub = callPackage ../development/python-modules/pydub { };
 
+  pyduke-energy = callPackage ../development/python-modules/pyduke-energy { };
+
   pydy = callPackage ../development/python-modules/pydy { };
 
   pydyf = callPackage ../development/python-modules/pydyf { };
@@ -6414,6 +6614,8 @@ in {
 
   pyeconet = callPackage ../development/python-modules/pyeconet { };
 
+  pyecowitt = callPackage ../development/python-modules/pyecowitt { };
+
   pyedimax = callPackage ../development/python-modules/pyedimax { };
 
   pyee = callPackage ../development/python-modules/pyee { };
@@ -6524,6 +6726,8 @@ in {
 
   pygeoip = callPackage ../development/python-modules/pygeoip { };
 
+  pygetwindow = callPackage ../development/python-modules/pygetwindow { };
+
   pygit2 = callPackage ../development/python-modules/pygit2 { };
 
   PyGithub = callPackage ../development/python-modules/pyGithub { };
@@ -6582,6 +6786,8 @@ in {
 
   pyhomepilot = callPackage ../development/python-modules/pyhomepilot { };
 
+  pyhomeworks = callPackage ../development/python-modules/pyhomeworks { };
+
   pyhs100 = callPackage ../development/python-modules/pyhs100 { };
 
   pyi2cflash = callPackage ../development/python-modules/pyi2cflash { };
@@ -6620,6 +6826,8 @@ in {
 
   pyjwt = callPackage ../development/python-modules/pyjwt { };
 
+  pykakasi = callPackage ../development/python-modules/pykakasi { };
+
   pykdl = callPackage ../development/python-modules/pykdl { };
 
   pykdtree = callPackage ../development/python-modules/pykdtree {
@@ -6630,6 +6838,8 @@ in {
 
   pykerberos = callPackage ../development/python-modules/pykerberos { };
 
+  pykeyatome = callPackage ../development/python-modules/pykeyatome { };
+
   pykira = callPackage ../development/python-modules/pykira { };
 
   pykka = callPackage ../development/python-modules/pykka { };
@@ -6852,6 +7062,8 @@ in {
     tesseract = pkgs.tesseract4;
   };
 
+  pyoctoprintapi = callPackage ../development/python-modules/pyoctoprintapi { };
+
   pyodbc = callPackage ../development/python-modules/pyodbc { };
 
   pyogg = callPackage ../development/python-modules/pyogg { };
@@ -7031,6 +7243,8 @@ in {
     pythonPackages = self;
   });
 
+  pyrect = callPackage ../development/python-modules/pyrect { };
+
   pyregion = callPackage ../development/python-modules/pyregion { };
 
   pyres = callPackage ../development/python-modules/pyres { };
@@ -7101,6 +7315,8 @@ in {
 
   pyscreenshot = callPackage ../development/python-modules/pyscreenshot { };
 
+  pyscreeze = callPackage ../development/python-modules/pyscreeze { };
+
   py_scrypt = callPackage ../development/python-modules/py_scrypt { };
 
   pyscrypt = callPackage ../development/python-modules/pyscrypt { };
@@ -7149,6 +7365,8 @@ in {
 
   pysigset = callPackage ../development/python-modules/pysigset { };
 
+  pysimplegui = callPackage ../development/python-modules/pysimplegui { };
+
   pysingleton = callPackage ../development/python-modules/pysingleton { };
 
   pyslurm = callPackage ../development/python-modules/pyslurm {
@@ -7308,6 +7526,8 @@ in {
     '';
   });
 
+  pytest-aio = callPackage ../development/python-modules/pytest-aio { };
+
   pytest-aiohttp = callPackage ../development/python-modules/pytest-aiohttp { };
 
   pytest-annotate = callPackage ../development/python-modules/pytest-annotate { };
@@ -7397,6 +7617,8 @@ in {
 
   pytest-isort = callPackage ../development/python-modules/pytest-isort { };
 
+  pytest-json-report = callPackage ../development/python-modules/pytest-json-report { };
+
   pytest-lazy-fixture = callPackage ../development/python-modules/pytest-lazy-fixture { };
 
   pytest-localserver = callPackage ../development/python-modules/pytest-localserver { };
@@ -7431,6 +7653,8 @@ in {
 
   pytest-raisesregexp = callPackage ../development/python-modules/pytest-raisesregexp { };
 
+  pytest-raisin = callPackage ../development/python-modules/pytest-raisin { };
+
   pytest-randomly = callPackage ../development/python-modules/pytest-randomly { };
 
   pytest-random-order = callPackage ../development/python-modules/pytest-random-order { };
@@ -7535,6 +7759,8 @@ in {
 
   python-daemon = callPackage ../development/python-modules/python-daemon { };
 
+  python-datemath = callPackage ../development/python-modules/python-datemath { };
+
   python-dateutil = callPackage ../development/python-modules/dateutil { };
 
   python-dbusmock = callPackage ../development/python-modules/python-dbusmock { };
@@ -7577,6 +7803,8 @@ in {
 
   python-gvm = callPackage ../development/python-modules/python-gvm { };
 
+  python-hglib = callPackage ../development/python-modules/python-hglib { };
+
   python-hosts = callPackage ../development/python-modules/python-hosts { };
 
   python-hpilo = callPackage ../development/python-modules/python-hpilo { };
@@ -7627,7 +7855,7 @@ in {
   python-manilaclient = callPackage ../development/python-modules/python-manilaclient { };
 
   python-mapnik = let
-    boost = pkgs.boost.override {
+    boost = pkgs.boost175.override {
       enablePython = true;
       inherit python;
     };
@@ -7830,10 +8058,14 @@ in {
 
   pyturbojpeg = callPackage ../development/python-modules/pyturbojpeg { };
 
+  pytweening = callPackage ../development/python-modules/pytweening { };
+
   pytwitchapi = callPackage ../development/python-modules/pytwitchapi { };
 
   pytz = callPackage ../development/python-modules/pytz { };
 
+  pytz-deprecation-shim = callPackage ../development/python-modules/pytz-deprecation-shim { };
+
   pytzdata = callPackage ../development/python-modules/pytzdata { };
 
   pyu2f = callPackage ../development/python-modules/pyu2f { };
@@ -7925,6 +8157,8 @@ in {
     inherit (pkgs) libxml2;
   };
 
+  pyweatherflowrest = callPackage ../development/python-modules/pyweatherflowrest { };
+
   pywebpush = callPackage ../development/python-modules/pywebpush { };
 
   pywebview = callPackage ../development/python-modules/pywebview { };
@@ -8038,6 +8272,8 @@ in {
 
   quantities = callPackage ../development/python-modules/quantities { };
 
+  quantum-gateway = callPackage ../development/python-modules/quantum-gateway { };
+
   querystring_parser = callPackage ../development/python-modules/querystring-parser { };
 
   questionary = callPackage ../development/python-modules/questionary { };
@@ -8114,9 +8350,9 @@ in {
 
   recaptcha_client = callPackage ../development/python-modules/recaptcha_client { };
 
-  recoll = disabledIf (!isPy3k) (toPythonModule (pkgs.recoll.override {
+  recoll = toPythonModule (pkgs.recoll.override {
     python3Packages = self;
-  }));
+  });
 
   recommonmark = callPackage ../development/python-modules/recommonmark { };
 
@@ -8148,6 +8384,8 @@ in {
 
   rencode = callPackage ../development/python-modules/rencode { };
 
+  reolink = callPackage ../development/python-modules/reolink { };
+
   reparser = callPackage ../development/python-modules/reparser { };
 
   repeated_test = callPackage ../development/python-modules/repeated_test { };
@@ -8262,12 +8500,16 @@ in {
 
   rjsmin = callPackage ../development/python-modules/rjsmin { };
 
+  rki-covid-parser = callPackage ../development/python-modules/rki-covid-parser { };
+
   rl-coach = callPackage ../development/python-modules/rl-coach { };
 
   rlp = callPackage ../development/python-modules/rlp { };
 
   rnc2rng = callPackage ../development/python-modules/rnc2rng { };
 
+  rnginline = callPackage ../development/python-modules/rnginline { };
+
   robomachine = callPackage ../development/python-modules/robomachine { };
 
   roboschool = callPackage ../development/python-modules/roboschool {
@@ -8312,7 +8554,7 @@ in {
 
   rope = callPackage ../development/python-modules/rope { };
 
-  ROPGadget = callPackage ../development/python-modules/ROPGadget { };
+  ropgadget = callPackage ../development/python-modules/ropgadget { };
 
   ropper = callPackage ../development/python-modules/ropper { };
 
@@ -8424,6 +8666,8 @@ in {
 
   sapi-python-client = callPackage ../development/python-modules/sapi-python-client { };
 
+  sarif-om = callPackage ../development/python-modules/sarif-om { };
+
   sarge = callPackage ../development/python-modules/sarge { };
 
   sasmodels = callPackage ../development/python-modules/sasmodels { };
@@ -8502,6 +8746,8 @@ in {
 
   seaserv = toPythonModule pkgs.seafile-server;
 
+  seatconnect = callPackage ../development/python-modules/seatconnect { };
+
   seccomp = callPackage ../development/python-modules/seccomp { };
 
   secp256k1 = callPackage ../development/python-modules/secp256k1 {
@@ -8559,6 +8805,8 @@ in {
 
   setproctitle = callPackage ../development/python-modules/setproctitle { };
 
+  setupmeta = callPackage ../development/python-modules/setupmeta { };
+
   setuptools-declarative-requirements = callPackage ../development/python-modules/setuptools-declarative-requirements { };
 
   setuptools-git = callPackage ../development/python-modules/setuptools-git { };
@@ -8639,6 +8887,8 @@ in {
 
   simplekml = callPackage ../development/python-modules/simplekml { };
 
+  simplenote = callPackage ../development/python-modules/simplenote { };
+
   simple-di = callPackage ../development/python-modules/simple-di { };
 
   simple-rest-client = callPackage ../development/python-modules/simple-rest-client { };
@@ -8653,6 +8903,8 @@ in {
 
   signify = callPackage ../development/python-modules/signify { };
 
+  siosocks = callPackage ../development/python-modules/siosocks { };
+
   sip = callPackage ../development/python-modules/sip { };
 
   sip_4 = callPackage ../development/python-modules/sip/4.x.nix { };
@@ -8667,6 +8919,8 @@ in {
 
   sklearn-deap = callPackage ../development/python-modules/sklearn-deap { };
 
+  skodaconnect = callPackage ../development/python-modules/skodaconnect { };
+
   skorch = callPackage ../development/python-modules/skorch { };
 
   skybellpy = callPackage ../development/python-modules/skybellpy { };
@@ -8769,6 +9023,10 @@ in {
     usePython = true;
   });
 
+  socialscan = callPackage ../development/python-modules/socialscan { };
+
+  socid-extractor =  callPackage ../development/python-modules/socid-extractor { };
+
   sockjs = callPackage ../development/python-modules/sockjs { };
 
   sockjs-tornado = callPackage ../development/python-modules/sockjs-tornado { };
@@ -8931,6 +9189,8 @@ in {
 
   spotipy = callPackage ../development/python-modules/spotipy { };
 
+  spur = callPackage ../development/python-modules/spur { };
+
   spyder = callPackage ../development/python-modules/spyder { };
 
   spyder-kernels = callPackage ../development/python-modules/spyder-kernels { };
@@ -8951,6 +9211,8 @@ in {
 
   sqlalchemy-migrate = callPackage ../development/python-modules/sqlalchemy-migrate { };
 
+  sqlalchemy-mixins = callPackage ../development/python-modules/sqlalchemy-mixins { };
+
   sqlalchemy-utils = callPackage ../development/python-modules/sqlalchemy-utils { };
 
   sqlitedict = callPackage ../development/python-modules/sqlitedict { };
@@ -8977,7 +9239,9 @@ in {
 
   srvlookup = callPackage ../development/python-modules/srvlookup { };
 
-  ssdeep = callPackage ../development/python-modules/ssdeep { };
+  ssdeep = callPackage ../development/python-modules/ssdeep {
+    inherit (pkgs) ssdeep;
+  };
 
   ssdp = callPackage ../development/python-modules/ssdp { };
 
@@ -9025,6 +9289,8 @@ in {
 
   stevedore = callPackage ../development/python-modules/stevedore { };
 
+  stickytape = callPackage ../development/python-modules/stickytape { };
+
   stm32loader = callPackage ../development/python-modules/stm32loader { };
 
   stone = callPackage ../development/python-modules/stone { };
@@ -9081,6 +9347,8 @@ in {
 
   subunit2sql = callPackage ../development/python-modules/subunit2sql { };
 
+  subzerod = callPackage ../development/python-modules/subzerod { };
+
   suds-jurko = callPackage ../development/python-modules/suds-jurko { };
 
   sumo = callPackage ../development/python-modules/sumo { };
@@ -9163,6 +9431,8 @@ in {
 
   tag-expressions = callPackage ../development/python-modules/tag-expressions { };
 
+  tago = callPackage ../development/python-modules/tago { };
+
   tahoma-api = callPackage ../development/python-modules/tahoma-api { };
 
   tailer = callPackage ../development/python-modules/tailer { };
@@ -9209,39 +9479,33 @@ in {
 
   tensorboardx = callPackage ../development/python-modules/tensorboardx { };
 
-  tensorflow-bin_2 = callPackage ../development/python-modules/tensorflow/bin.nix {
+  tensorflow-bin = callPackage ../development/python-modules/tensorflow/bin.nix {
     cudaSupport = pkgs.config.cudaSupport or false;
-    cudatoolkit = pkgs.cudatoolkit_11_0;
-    cudnn = pkgs.cudnn_cudatoolkit_11_0;
+    cudatoolkit = tensorflow_compat_cudatoolkit;
+    cudnn = tensorflow_compat_cudnn;
   };
 
-  tensorflow-bin = self.tensorflow-bin_2;
-
-  tensorflow-build_2 = callPackage ../development/python-modules/tensorflow {
+  tensorflow-build = callPackage ../development/python-modules/tensorflow {
+    inherit (pkgs.darwin) cctools;
     cudaSupport = pkgs.config.cudaSupport or false;
-    cudatoolkit = pkgs.cudatoolkit_11_0;
-    cudnn = pkgs.cudnn_cudatoolkit_11_0;
-    nccl = pkgs.nccl_cudatoolkit_11;
+    cudatoolkit = tensorflow_compat_cudatoolkit;
+    cudnn = tensorflow_compat_cudnn;
+    nccl = tensorflow_compat_nccl;
     inherit (pkgs.darwin.apple_sdk.frameworks) Foundation Security;
     flatbuffers-core = pkgs.flatbuffers;
     flatbuffers-python = self.flatbuffers;
+    protobuf-core = pkgs.protobuf;
+    protobuf-python = self.protobuf;
     lmdb-core = pkgs.lmdb;
   };
 
-  tensorflow-build = self.tensorflow-build_2;
-
-  tensorflow-estimator_2 = callPackage ../development/python-modules/tensorflow-estimator { };
-
-  tensorflow-estimator = self.tensorflow-estimator_2;
+  tensorflow-estimator = callPackage ../development/python-modules/tensorflow-estimator { };
 
   tensorflow-probability = callPackage ../development/python-modules/tensorflow-probability { };
 
-  tensorflow = self.tensorflow_2;
-  tensorflow_2 = self.tensorflow-build_2;
+  tensorflow = self.tensorflow-build;
 
-  tensorflow-tensorboard_2 = callPackage ../development/python-modules/tensorflow-tensorboard { };
-
-  tensorflow-tensorboard = self.tensorflow-tensorboard_2;
+  tensorflow-tensorboard = callPackage ../development/python-modules/tensorflow-tensorboard { };
 
   tensorflowWithCuda = self.tensorflow.override {
     cudaSupport = true;
@@ -9267,6 +9531,8 @@ in {
 
   tern = callPackage ../development/python-modules/tern { };
 
+  tesla-wall-connector = callPackage ../development/python-modules/tesla-wall-connector { };
+
   teslajsonpy = callPackage ../development/python-modules/teslajsonpy { };
 
   tess = callPackage ../development/python-modules/tess { };
@@ -9408,6 +9674,8 @@ in {
 
   tokenlib = callPackage ../development/python-modules/tokenlib { };
 
+  tololib = callPackage ../development/python-modules/tololib { };
+
   toml = callPackage ../development/python-modules/toml { };
 
   tomli = callPackage ../development/python-modules/tomli { };
@@ -9492,6 +9760,8 @@ in {
 
   trio = callPackage ../development/python-modules/trio { };
 
+  trio-asyncio = callPackage ../development/python-modules/trio-asyncio { };
+
   trueskill = callPackage ../development/python-modules/trueskill { };
 
   trustme = callPackage ../development/python-modules/trustme { };
@@ -9506,7 +9776,9 @@ in {
 
   tubeup = callPackage ../development/python-modules/tubeup { };
 
-  tumpa = callPackage ../development/python-modules/tumpa { };
+  tumpa = callPackage ../development/python-modules/tumpa {
+    inherit (pkgs.libsForQt5) wrapQtAppsHook;
+  };
 
   tuya-iot-py-sdk = callPackage ../development/python-modules/tuya-iot-py-sdk { };
 
@@ -9594,10 +9866,14 @@ in {
 
   types-toml = callPackage ../development/python-modules/types-toml { };
 
+  types-typed-ast = callPackage ../development/python-modules/types-typed-ast { };
+
   typesentry = callPackage ../development/python-modules/typesentry { };
 
   typesystem = callPackage ../development/python-modules/typesystem { };
 
+  typical = callPackage ../development/python-modules/typical { };
+
   typing = null;
 
   typing-extensions = callPackage ../development/python-modules/typing-extensions { };
@@ -9850,6 +10126,8 @@ in {
 
   vowpalwabbit = callPackage ../development/python-modules/vowpalwabbit { };
 
+  vpk = callPackage ../development/python-modules/vpk { };
+
   vsts = callPackage ../development/python-modules/vsts { };
 
   vsts-cd-manager = callPackage ../development/python-modules/vsts-cd-manager { };
@@ -9914,6 +10192,8 @@ in {
 
   wavefile = callPackage ../development/python-modules/wavefile { };
 
+  wavinsentio = callPackage ../development/python-modules/wavinsentio { };
+
   wazeroutecalculator = callPackage ../development/python-modules/wazeroutecalculator { };
 
   wcmatch = callPackage ../development/python-modules/wcmatch { };
@@ -9922,6 +10202,8 @@ in {
 
   weasyprint = callPackage ../development/python-modules/weasyprint { };
 
+  webargs = callPackage ../development/python-modules/webargs { };
+
   webapp2 = callPackage ../development/python-modules/webapp2 { };
 
   webassets = callPackage ../development/python-modules/webassets { };
@@ -9940,8 +10222,6 @@ in {
 
   webhelpers = callPackage ../development/python-modules/webhelpers { };
 
-  webargs = callPackage ../development/python-modules/webargs { };
-
   webob = callPackage ../development/python-modules/webob { };
 
   weboob = callPackage ../development/python-modules/weboob { };
@@ -9962,6 +10242,10 @@ in {
 
   webthing = callPackage ../development/python-modules/webthing { };
 
+  weconnect = callPackage ../development/python-modules/weconnect { };
+
+  weconnect-mqtt = callPackage ../development/python-modules/weconnect-mqtt { };
+
   werkzeug = callPackage ../development/python-modules/werkzeug { };
 
   werkzeug1 = callPackage ../development/python-modules/werkzeug/1.nix { };
@@ -10089,7 +10373,9 @@ in {
 
   xdis = callPackage ../development/python-modules/xdis { };
 
-  xdot = callPackage ../development/python-modules/xdot { };
+  xdot = callPackage ../development/python-modules/xdot {
+    inherit (pkgs) graphviz;
+  };
 
   xenomapper = callPackage ../applications/science/biology/xenomapper { };
 
@@ -10115,6 +10401,8 @@ in {
 
   xlwt = callPackage ../development/python-modules/xlwt { };
 
+  xmind = callPackage ../development/python-modules/xmind { };
+
   xml2rfc = callPackage ../development/python-modules/xml2rfc { };
 
   xmldiff = callPackage ../development/python-modules/xmldiff { };
@@ -10169,6 +10457,8 @@ in {
 
   yamale = callPackage ../development/python-modules/yamale { };
 
+  yamlfix = callPackage ../development/python-modules/yamlfix { };
+
   yamllint = callPackage ../development/python-modules/yamllint { };
 
   yamlloader = callPackage ../development/python-modules/yamlloader { };
@@ -10247,8 +10537,6 @@ in {
 
   zc-buildout = callPackage ../development/python-modules/buildout { };
 
-  zc_buildout_nix = callPackage ../development/python-modules/buildout-nix { };
-
   zc_lockfile = callPackage ../development/python-modules/zc_lockfile { };
 
   zconfig = callPackage ../development/python-modules/zconfig { };
@@ -10273,6 +10561,8 @@ in {
 
   zetup = callPackage ../development/python-modules/zetup { };
 
+  zeversolarlocal = callPackage ../development/python-modules/zeversolarlocal { };
+
   zfec = callPackage ../development/python-modules/zfec { };
 
   zha-quirks = callPackage ../development/python-modules/zha-quirks { };
diff --git a/pkgs/top-level/python2-packages.nix b/pkgs/top-level/python2-packages.nix
index 56b39b5087ae7..5efc400537382 100644
--- a/pkgs/top-level/python2-packages.nix
+++ b/pkgs/top-level/python2-packages.nix
@@ -12,7 +12,7 @@ with self; with super; {
     inherit (pkgs) antlr4;
   };
 
-  appleseed = toPythonModule (pkgs.appleseed.override { inherit (self) python; });
+  appleseed = disabled super.appleseed;
 
   application = callPackage ../development/python-modules/application { };
 
@@ -132,11 +132,6 @@ with self; with super; {
 
   gdcm = disabled super.gdcm;
 
-  gaia = disabledIf (isPyPy || isPy3k) (toPythonModule (pkgs.gaia.override {
-    pythonPackages = self;
-    pythonSupport = true;
-  })); # gaia isn't supported with python3 and it's not available from pypi
-
   geant4 = disabled super.geant4;
 
   geopy = callPackage ../development/python-modules/geopy/2.nix { };
@@ -218,8 +213,6 @@ with self; with super; {
 
   jupyter_console = callPackage ../development/python-modules/jupyter_console/5.nix { };
 
-  keyring = callPackage ../development/python-modules/keyring/2.nix { };
-
   koji = callPackage ../development/python-modules/koji { };
 
   konfig = callPackage ../development/python-modules/konfig { };
@@ -380,6 +373,8 @@ with self; with super; {
 
   openpyxl = callPackage ../development/python-modules/openpyxl/2.nix { };
 
+  openvino = disabled super.openvino;
+
   openwrt-luci-rpc = disabled super.openwrt-luci-rpc;
 
   opt-einsum = callPackage ../development/python-modules/opt-einsum/2.nix { };
@@ -401,6 +396,8 @@ with self; with super; {
 
   pip = callPackage ../development/python-modules/pip/20.nix { };
 
+  platformdirs = callPackage ../development/python-modules/platformdirs/2.nix { };
+
   pluggy = callPackage ../development/python-modules/pluggy/0.nix { };
 
   postorius = disabled super.postorius;
@@ -425,7 +422,7 @@ with self; with super; {
   pyblosxom = callPackage ../development/python-modules/pyblosxom { };
 
   pycairo = callPackage ../development/python-modules/pycairo/1.18.nix {
-    inherit (pkgs) meson;
+    inherit (pkgs.buildPackages) meson;
   };
 
   pycangjie = disabled pycangjie;
@@ -440,8 +437,6 @@ with self; with super; {
 
   pydns = callPackage ../development/python-modules/pydns { };
 
-  pydocstyle = callPackage ../development/python-modules/pydocstyle/2.nix { };
-
   pyechonest = callPackage ../development/python-modules/pyechonest { };
 
   pyexcelerator = callPackage ../development/python-modules/pyexcelerator { };
@@ -529,6 +524,8 @@ with self; with super; {
 
   remotecv = callPackage ../development/python-modules/remotecv { };
 
+  recoll = disabled super.recoll;
+
   rhpl = callPackage ../development/python-modules/rhpl { };
 
   rivet = disabled super.rivet;
@@ -625,6 +622,8 @@ with self; with super; {
 
   tarman = callPackage ../development/python-modules/tarman { };
 
+  tensorflow-bin = disabled super.tensorflow-bin;
+
   thumbor = callPackage ../development/python-modules/thumbor { };
 
   tmdb3 = callPackage ../development/python-modules/tmdb3 { };
@@ -647,6 +646,8 @@ with self; with super; {
 
   typing = callPackage ../development/python-modules/typing { };
 
+  tzlocal = callPackage ../development/python-modules/tzlocal/2.nix { };
+
   ujson = callPackage ../development/python-modules/ujson/2.nix { };
 
   umemcache = callPackage ../development/python-modules/umemcache { };
diff --git a/pkgs/top-level/qt5-packages.nix b/pkgs/top-level/qt5-packages.nix
index c80462d9d1ed5..a2bd8dc6a547f 100644
--- a/pkgs/top-level/qt5-packages.nix
+++ b/pkgs/top-level/qt5-packages.nix
@@ -194,6 +194,8 @@ in (kdeFrameworks // plasmaMobileGear // plasma5 // plasma5.thirdParty // kdeGea
     withQt5 = true;
   };
 
+  qt5ct = callPackage ../tools/misc/qt5ct { };
+
   qtfeedback = callPackage ../development/libraries/qtfeedback { };
 
   qtutilities = callPackage ../development/libraries/qtutilities { };
diff --git a/pkgs/top-level/release-cross.nix b/pkgs/top-level/release-cross.nix
index dae1244786e3f..205558d666a19 100644
--- a/pkgs/top-level/release-cross.nix
+++ b/pkgs/top-level/release-cross.nix
@@ -134,8 +134,9 @@ in
   /* Test some cross builds on 64 bit mingw-w64 */
   crossMingwW64 = mapTestOnCross lib.systems.examples.mingwW64 windowsCommon;
 
-  /* Linux on the fuloong */
+  /* Linux on mipsel */
   fuloongminipc = mapTestOnCross lib.systems.examples.fuloongminipc linuxCommon;
+  ben-nanonote = mapTestOnCross lib.systems.examples.ben-nanonote linuxCommon;
 
   /* Javacript */
   ghcjs = mapTestOnCross lib.systems.examples.ghcjs {
@@ -146,9 +147,32 @@ in
   rpi = mapTestOnCross lib.systems.examples.raspberryPi rpiCommon;
   rpi-musl = mapTestOnCross lib.systems.examples.muslpi rpiCommon;
 
+  /* Linux on the Remarkable */
+  remarkable1 = mapTestOnCross lib.systems.examples.remarkable1 linuxCommon;
+  remarkable2 = mapTestOnCross lib.systems.examples.remarkable2 linuxCommon;
+
+  /* Linux on armv7l-hf */
+  armv7l-hf = mapTestOnCross lib.systems.examples.armv7l-hf-multiplatform linuxCommon;
+  scaleway-c1 = mapTestOnCross lib.systems.examples.scaleway-c1 linuxCommon;
+
+  pogoplug4 = mapTestOnCross lib.systems.examples.pogoplug4 linuxCommon;
+
+  /* Linux on aarch64 */
+  aarch64 = mapTestOnCross lib.systems.examples.aarch64-multiplatform linuxCommon;
   aarch64-musl = mapTestOnCross lib.systems.examples.aarch64-multiplatform-musl linuxCommon;
 
+  /* Linux on RISCV */
+  riscv64 = mapTestOnCross lib.systems.examples.riscv64 linuxCommon;
+  riscv32 = mapTestOnCross lib.systems.examples.riscv32 linuxCommon;
+
+  m68k = mapTestOnCross lib.systems.examples.m68k linuxCommon;
+  s390x = mapTestOnCross lib.systems.examples.s390x linuxCommon;
+
+  /* (Cross-compiled) Linux on x86 */
   x86_64-musl = mapTestOnCross lib.systems.examples.musl64 linuxCommon;
+  x86_64-gnu = mapTestOnCross lib.systems.examples.gnu64 linuxCommon;
+  i686-musl = mapTestOnCross lib.systems.examples.musl32 linuxCommon;
+  i686-gnu = mapTestOnCross lib.systems.examples.gnu32 linuxCommon;
 
   ppc64le = mapTestOnCross lib.systems.examples.powernv linuxCommon;
   ppc64le-musl = mapTestOnCross lib.systems.examples.musl-power linuxCommon;
@@ -159,15 +183,22 @@ in
   wasi32 = mapTestOnCross lib.systems.examples.wasi32 wasiCommon;
 
   msp430 = mapTestOnCross lib.systems.examples.msp430 embedded;
+  mmix = mapTestOnCross lib.systems.examples.mmix embedded;
+  vc4 = mapTestOnCross lib.systems.examples.vc4 embedded;
+  or1k = mapTestOnCross lib.systems.examples.or1k embedded;
   avr = mapTestOnCross lib.systems.examples.avr embedded;
   arm-embedded = mapTestOnCross lib.systems.examples.arm-embedded embedded;
-  powerpc-embedded = mapTestOnCross lib.systems.examples.ppc-embedded embedded;
+  armhf-embedded = mapTestOnCross lib.systems.examples.armhf-embedded embedded;
   aarch64-embedded = mapTestOnCross lib.systems.examples.aarch64-embedded embedded;
+  aarch64be-embedded = mapTestOnCross lib.systems.examples.aarch64be-embedded embedded;
+  powerpc-embedded = mapTestOnCross lib.systems.examples.ppc-embedded embedded;
+  powerpcle-embedded = mapTestOnCross lib.systems.examples.ppcle-embedded embedded;
   i686-embedded = mapTestOnCross lib.systems.examples.i686-embedded embedded;
   x86_64-embedded = mapTestOnCross lib.systems.examples.x86_64-embedded embedded;
+  riscv64-embedded = mapTestOnCross lib.systems.examples.riscv64 embedded;
+  riscv32-embedded = mapTestOnCross lib.systems.examples.riscv32 embedded;
 
-  # TODO: fix cross compilation of nix{,Unstable} to netbsd and switch to common
-  x86_64-netbsd = mapTestOnCross lib.systems.examples.x86_64-netbsd embedded;
+  x86_64-netbsd = mapTestOnCross lib.systems.examples.x86_64-netbsd common;
 
   # we test `embedded` instead of `linuxCommon` because very few packages
   # successfully cross-compile to Redox so far
diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix
index f6e34e7084b7e..a9e4ea32ccdc6 100644
--- a/pkgs/top-level/release-haskell.nix
+++ b/pkgs/top-level/release-haskell.nix
@@ -52,6 +52,7 @@ let
     ghc884
     ghc8107
     ghc901
+    ghc921
   ];
 
   # packagePlatforms applied to `haskell.packages.*`
@@ -304,19 +305,28 @@ let
       # and to confirm that critical packages for the
       # package sets (like Cabal, jailbreak-cabal) are
       # working as expected.
-      cabal-install = released ++ [ compilerNames.ghc921 ];
-      Cabal_3_6_2_0 = released ++ [ compilerNames.ghc921 ];
-      cabal2nix = released ++ [ compilerNames.ghc921 ];
-      cabal2nix-unstable = released ++ [ compilerNames.ghc921 ];
-      funcmp = released ++ [ compilerNames.ghc921 ];
-      haskell-language-server = released;
+      cabal-install = released;
+      Cabal_3_6_2_0 = released;
+      cabal2nix = released;
+      cabal2nix-unstable = released;
+      funcmp = released;
+      haskell-language-server = [
+        compilerNames.ghc884
+        compilerNames.ghc8107
+        compilerNames.ghc901
+      ];
       hoogle = released;
-      hsdns = released ++ [ compilerNames.ghc921 ];
-      jailbreak-cabal = released ++ [ compilerNames.ghc921 ];
-      language-nix = released ++ [ compilerNames.ghc921 ];
-      nix-paths = released ++ [ compilerNames.ghc921 ];
-      titlecase = released ++ [ compilerNames.ghc921 ];
-      ghc-api-compat = released;
+      hlint = released;
+      hsdns = released;
+      jailbreak-cabal = released;
+      language-nix = released;
+      nix-paths = released;
+      titlecase = released;
+      ghc-api-compat = [
+        compilerNames.ghc884
+        compilerNames.ghc8107
+        compilerNames.ghc901
+      ];
     })
     {
       mergeable = pkgs.releaseTools.aggregate {
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index fca5d37609426..13526349dfc59 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -95,6 +95,8 @@ let
               jobs.lib-tests
               jobs.pkgs-lib-tests
               jobs.stdenv.x86_64-linux
+              jobs.cargo.x86_64-linux
+              jobs.go.x86_64-linux
               jobs.linux.x86_64-linux
               jobs.pandoc.x86_64-linux
               jobs.python.x86_64-linux
@@ -130,6 +132,8 @@ let
             ++ lib.collect lib.isDerivation jobs.stdenvBootstrapTools
             ++ lib.optionals supportDarwin [
               jobs.stdenv.x86_64-darwin
+              jobs.cargo.x86_64-darwin
+              jobs.go.x86_64-darwin
               jobs.python.x86_64-darwin
               jobs.python3.x86_64-darwin
               jobs.nixpkgs-review.x86_64-darwin
@@ -175,8 +179,7 @@ let
               # Lightweight distribution and test
               inherit (bootstrap) dist test;
               # Test a full stdenv bootstrap from the bootstrap tools definition
-              # TODO re-enable with https://github.com/NixOS/nixpkgs/pull/126411
-              # inherit (bootstrap.test-pkgs) stdenv;
+              inherit (bootstrap.test-pkgs) stdenv;
             };
 
           # Cross compiled bootstrap tools
diff --git a/pkgs/top-level/ruby-packages.nix b/pkgs/top-level/ruby-packages.nix
index 4587f2548f2ec..3a7c16c087142 100644
--- a/pkgs/top-level/ruby-packages.nix
+++ b/pkgs/top-level/ruby-packages.nix
@@ -270,10 +270,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00s388z1akvj2j77ylr1mgp02zxp4ybcgc4ds3bz4647dfk0cwxk";
+      sha256 = "193l8r1ycd3dcxa7lsb4pqcghbk56dzc5244m6y8xmv88z6m31d7";
       type = "gem";
     };
-    version = "3.0.4";
+    version = "3.0.5";
   };
   charlock_holmes = {
     groups = ["default"];
@@ -311,10 +311,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1y04ig8p9rparhff5dh3781pwf1xlirgq8p0fzvggjjpx761bvra";
+      sha256 = "10vcm1dadj5sjrg31afzv7h1f0irhc7va5sr5y0fcvlkg2hms8jk";
       type = "gem";
     };
-    version = "3.4.2";
+    version = "3.4.3";
   };
   cocoapods = {
     dependencies = ["activesupport" "claide" "cocoapods-core" "cocoapods-deintegrate" "cocoapods-downloader" "cocoapods-plugins" "cocoapods-search" "cocoapods-stats" "cocoapods-trunk" "cocoapods-try" "colored" "escape" "fourflusher" "molinillo" "nap" "xcodeproj"];
@@ -603,10 +603,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1z50v9y66kl0s9s84syd8vai77hhysdaymmgbdmpaq54bra6xk72";
+      sha256 = "09g67hih1y1ibj85mc9w6xrwwv3402620i031jivc55msm6dmdvs";
       type = "gem";
     };
-    version = "0.2.0";
+    version = "0.2.1";
   };
   cocoapods-wholemodule = {
     groups = ["default"];
@@ -868,10 +868,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g45ib20cjwkf4lzgm30cl6n7b6h1k8p6pdg4vh8s1rllrzrz342";
+      sha256 = "0153rr745g48h48vaplgmx7xkfjbc79acpq5jsl7agdrk4yf75ih";
       type = "gem";
     };
-    version = "0.87.0";
+    version = "0.89.0";
   };
   execjs = {
     groups = ["default"];
@@ -1128,10 +1128,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xnlra517pfj3hx07kasbqlcw51ix4xajr6bsd3mwg8bc92dlwy7";
+      sha256 = "11kc33j6m0nayppkb7645w0ldh8g18pgmxgb8wz39pd5vilr6qpv";
       type = "gem";
     };
-    version = "1.7.1";
+    version = "1.8.0";
   };
   glib2 = {
     dependencies = ["native-package-installer" "pkg-config"];
@@ -1150,10 +1150,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k6ww3shk3mv119xvr9m99l6ql0czq91xhd66hm8hqssb18r2lvm";
+      sha256 = "1n5yc058i8xhi1fwcp1w7mfi6xaxfmrifdb4r4hjfff33ldn8lqj";
       type = "gem";
     };
-    version = "0.5.2";
+    version = "1.0.0";
   };
   gobject-introspection = {
     dependencies = ["glib2"];
@@ -1193,10 +1193,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02bsx12ihl78x0vdm37byp78jjw2ff6035y7rrmbd90qxjwxr43q";
+      sha256 = "1nh3arcrbz1rc1cr59qm53sdhqm137b258y8rcb4cvd3y98lwv4x";
       type = "gem";
     };
-    version = "4.1.0";
+    version = "5.0.0";
   };
   highline = {
     groups = ["default"];
@@ -1286,10 +1286,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
+      sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
       type = "gem";
     };
-    version = "1.8.10";
+    version = "1.8.11";
   };
   iconv = {
     groups = ["default"];
@@ -1306,10 +1306,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1papdw0503grmbl51jwaa2yn7ndvm94vbdqzz46r25hp3r6d1pls";
+      sha256 = "1xjr8nxpq6vsa4kd7pvd14xxiba9y4dais1yyz4dj567hsqdrhcm";
       type = "gem";
     };
-    version = "0.1.2";
+    version = "0.1.4";
   };
   jaro_winkler = {
     groups = ["default"];
@@ -1327,10 +1327,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vz0vp5lbp1bz2samyn8nk49vyh6zhvcqz35faq4i3kgsd4xlnhp";
+      sha256 = "1a8fhj01wqsjyr3cm6fzrv54p879v83xpm2vrh7if9q5zwvkqmfn";
       type = "gem";
     };
-    version = "2.11.2";
+    version = "2.11.3";
   };
   jekyll = {
     dependencies = ["colorator" "jekyll-sass-converter" "jekyll-watch" "kramdown" "liquid" "mercenary" "rouge" "safe_yaml"];
@@ -1487,10 +1487,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0a7p95md8j8lbgxx9dzygysxmrg1s80895f46f1y47k9kq9q56ry";
+      sha256 = "1z9grvjyfz16ag55hg522d3q4dh07hf391sf9s96npc0vfi85xkz";
       type = "gem";
     };
-    version = "2.6.0";
+    version = "2.6.1";
   };
   jwt = {
     groups = ["default"];
@@ -1570,10 +1570,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nqcya57x2n58y1dify60i0dpla40n4yir928khp4nj5jrn9mgmw";
+      sha256 = "17rvbrqcci1579d7dpbsfmz1f9g7msk82lyh9ip5h29dkrnixcgg";
       type = "gem";
     };
-    version = "2.12.0";
+    version = "2.13.0";
   };
   mab = {
     groups = ["default"];
@@ -1674,20 +1674,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zj12l9qk62anvk9bjvandpa6vy4xslil15wl6wlivyf51z773vh";
+      sha256 = "0ipw892jbksbxxcrlx9g5ljq60qx47pm24ywgfbyjskbcl78pkvb";
       type = "gem";
     };
-    version = "3.3.1";
+    version = "3.4.1";
   };
   mime-types-data = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1z5wvk6qi4ws1kjh7xn1rfirqw5m72bwvqacck1fjpbh33pcrwxv";
+      sha256 = "03m3fkix2haah20kvh1jgv262yg9jlzn6wq0y31kafxk8fysfy27";
       type = "gem";
     };
-    version = "3.2021.0901";
+    version = "3.2021.1115";
   };
   mini_magick = {
     groups = ["default"];
@@ -2018,6 +2018,16 @@
     };
     version = "0.3.5";
   };
+  prettier = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vi8yzllqgjnmx0lcqrcyqw5lah06w4qln0mg8nczvgp8finflcb";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
   pry = {
     dependencies = ["coderay" "method_source"];
     groups = ["default"];
@@ -2288,10 +2298,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vg7imjnfcqjx7kw94ccj5r78j4g190cqzi1i59sh4a0l940b9cr";
+      sha256 = "008yn8j44414qxhn1c0nxp4a70rq0bqhz70hnjpgx8cjh2g0makp";
       type = "gem";
     };
-    version = "2.1.1";
+    version = "2.2.0";
   };
   rest-client = {
     dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"];
@@ -2310,10 +2320,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w6fv779542vdliq2kmikfhymjv55z8mgzblkfjdy2agl07da9c6";
+      sha256 = "0087vhw5ik50lxvddicns01clkx800fk5v5qnrvi3b42nrk6885j";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "2.1.1";
   };
   rexml = {
     groups = ["default"];
@@ -2404,10 +2414,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15j52parvb8cgvl6s0pbxi2ywxrv6x0764g222kz5flz0s4mycbl";
+      sha256 = "0pjckrh8q6sqxy38xw7f4ziylq1983k84xh927s6352pps68zj35";
       type = "gem";
     };
-    version = "3.10.2";
+    version = "3.10.3";
   };
   rubocop = {
     dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
@@ -2458,10 +2468,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0d754d6pgdqyq52pl9hp0x38q1vn3vf9nz4nm5gqdj5i4fw7pba6";
+      sha256 = "0rnmbfhdz270fky0cm8w1i73gkrnlf3s1hdkm5yxjkdbvapwvjsd";
       type = "gem";
     };
-    version = "0.7.1";
+    version = "0.8.0";
   };
   ruby-lxc = {
     groups = ["default"];
@@ -2499,10 +2509,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qx9r75bfwglzv03lwvghd9gzw66wnbhdj5pc1qg896cbzna2cc0";
+      sha256 = "19pzpx406rr9s3qk527rn9y3b76sjq5pi7y0xzqiy50q3k0hhg7g";
       type = "gem";
     };
-    version = "2.1.3";
+    version = "2.1.4";
   };
   ruby2_keywords = {
     groups = ["default"];
@@ -2615,20 +2625,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13mlccf70slrjpxvpvmnk2cls39nkpgksa7sd90jlnm0s0z7lhdd";
+      sha256 = "0hiifw2zm2w00h3c7hfqy9n23q270aq18wwd5fs8wh9f6ap0vjvz";
       type = "gem";
     };
-    version = "0.11.4";
+    version = "0.11.6";
   };
   sequel = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fmk4fkmqnh033sdsvbb6r2dadir0f9zaq0z2jyx1wfnvv5712md";
+      sha256 = "0kx1vvld5n51jamvgv4xj14fq9jqw93vjwkalx4809z8jh08znbz";
       type = "gem";
     };
-    version = "5.49.0";
+    version = "5.51.0";
   };
   sequel_pg = {
     dependencies = ["pg" "sequel"];
@@ -2752,10 +2762,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mwmz36265646xqfyczgr1mhkm1hfxgxxvgdgr4xfcbf2g72p1k2";
+      sha256 = "1b9i14qb27zs56hlcc2hf139l0ghbqnjpmfi0054dxycaxvk5min";
       type = "gem";
     };
-    version = "3.2.2";
+    version = "3.4.2";
   };
   sqlite3 = {
     groups = ["default"];
@@ -2902,6 +2912,16 @@
     };
     version = "0.2.0";
   };
+  webrick = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d4cvgmxhfczxiq5fr534lmizkhigd15bsx5719r5ds7k7ivisc7";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
   websocket-driver = {
     dependencies = ["websocket-extensions"];
     groups = ["default"];
@@ -2956,24 +2976,25 @@
     version = "0.6.0";
   };
   yard = {
+    dependencies = ["webrick"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qzr5j1a1cafv81ib3i51qyl8jnmwdxlqi3kbiraldzpbjh4ln9h";
+      sha256 = "0d08gkis1imlvppyh8dbslk89hwj5af2fmlzvmwahgx2bm48d9sn";
       type = "gem";
     };
-    version = "0.9.26";
+    version = "0.9.27";
   };
   zeitwerk = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
+      sha256 = "18l4r6layck0d80ydc692mv1lxak5xbf6w2paj1x7m2ggbggzxgj";
       type = "gem";
     };
-    version = "2.4.2";
+    version = "2.5.1";
   };
   ZenTest = {
     groups = ["default"];
@@ -2990,9 +3011,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1prdwbi9prykva3iqyk23fzgi0z7pphldybba8s76mil1fd3svif";
+      sha256 = "06i33nf1b9hsb19na42yvxmiplijw994dhij1f71cp8n4krhymhv";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "1.5.1";
   };
 }
diff --git a/pkgs/top-level/splice.nix b/pkgs/top-level/splice.nix
index a093442d3698c..459baaca2e636 100644
--- a/pkgs/top-level/splice.nix
+++ b/pkgs/top-level/splice.nix
@@ -42,7 +42,7 @@ let
         valueBuildBuild = pkgsBuildBuild.${name} or {};
         valueBuildHost = pkgsBuildHost.${name} or {};
         valueBuildTarget = pkgsBuildTarget.${name} or {};
-        valueHostHost = throw "`valueHostHost` unimplemented: pass manually rather than relying on splice.";
+        valueHostHost = pkgsHostHost.${name} or {};
         valueHostTarget = pkgsHostTarget.${name} or {};
         valueTargetTarget = pkgsTargetTarget.${name} or {};
         augmentedValue = defaultValue
@@ -53,7 +53,7 @@ let
             __spliced =
                  (lib.optionalAttrs (pkgsBuildBuild ? ${name}) { buildBuild = valueBuildBuild; })
               // (lib.optionalAttrs (pkgsBuildTarget ? ${name}) { buildTarget = valueBuildTarget; })
-              // { hostHost = valueHostHost; }
+              // (lib.optionalAttrs (pkgsHostHost ? ${name}) { hostHost = valueHostHost; })
               // (lib.optionalAttrs (pkgsTargetTarget ? ${name}) { targetTarget = valueTargetTarget;
           });
         };
@@ -81,7 +81,7 @@ let
           pkgsBuildBuild = valueBuildBuild;
           pkgsBuildHost = valueBuildHost;
           pkgsBuildTarget = valueBuildTarget;
-          pkgsHostHost = {};
+          pkgsHostHost = valueHostHost;
           pkgsHostTarget = valueHostTarget;
           pkgsTargetTarget = valueTargetTarget;
         # Don't be fancy about non-derivations. But we could have used used